{"version":3,"sources":["ug-theme-tiles.js","unitegallery.js","drupal-attach-behaviors.js","modernizr-custom.js","chosen.jquery.js","jquery-accessible-simple-tooltip-aria.js","jquery-modal-video.js","jquery.clientRect.js","priority-nav.js","scrollnav.min.umd.js","slick.js"],"names":["UGTheme_tiles","g_objGallery","g_objects","g_objWrapper","g_objPreloader","g_objTilesWrapper","g_gallery","UniteGalleryMain","g_tiles","UGTiles","g_lightbox","UGLightbox","g_functions","UGFunctions","g_objTileDesign","UGTileDesign","g_options","theme_enable_preloader","theme_preloading_height","theme_preloader_vertpos","theme_gallery_padding","theme_appearance_order","theme_auto_open","g_defaults","gallery_width","g_temp","showPreloader","initTheme","gallery","customOptions","jQuery","extend","shuffleItems","tiles_keep_order","modifyOptions","setOptions","setFreestyleMode","getObjects","init","getObjTileDesign","actualRun","fadeTo","height","placeElement","onEvent","events","TILES_FIRST_PLACED","hide","on","TILE_CLICK","onTileClick","GALLERY_BEFORE_REQUEST_ITEMS","onBeforeReqestItems","LIGHTBOX_INIT","onLightboxInit","initEvents","run","runTheme","addClass","append","children","css","padding-left","padding-right","setHtml","putHtml","data","objTile","index","getItemByTile","open","show","galleryHeight","getElementSize","bottom","this","destroy","off","destroyEvent","addItems","runNewItems","debugLine","html","addRandom","addHtml","output","name","value","Math","random","objLine","width","debugSide","obj","trace","str","console","log","g_browserPrefix","t","starTime","arrThemes","isTouchDevice","isRgbaSupported","timeCache","dataCache","lastEventType","lastEventTime","lastTouchStartElement","touchThreshold","handle","addEvent","evnt","elem","func","addEventListener","attachEvent","debugVar","z__________FULL_SCREEN___________","toFullscreen","element","fullscreenID","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","isFullScreen","document","cancelFullScreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","addFullScreenChangeEvent","destroyFullScreenChangeEvent","unbind","getFullScreenElement","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","fullscreen","mozFullScreen","webkitIsFullScreen","z__________GET_PROPS___________","getBrowserPrefix","arrayOfPrefixes","div","createElement","prefix","style","toLowerCase","getImageInsideParentDataByImage","objImage","scaleMode","objPadding","objParent","parent","objOrgSize","getImageOriginalSize","getImageInsideParentData","originalWidth","originalHeight","maxWidth","maxHeight","objOutput","padding_left","padding_right","padding_top","padding_bottom","imageWidth","imageHeight","imageTop","imageLeft","ratio","round","floor","imageRight","imageBottom","getElementCenterPosition","objSize","objSizeParent","parentWidth","parentHeight","undefined","left","top","getElementCenterPoint","includeParent","x","y","getMousePosition","event","pageX","pageY","clientX","clientY","originalEvent","touches","length","elementPos","offset","mouseX","mouseY","getMouseElementPoint","point","newPoint","getElementLocalPoint","elementPoint","htmlImage","Error","naturalWidth","newImg","Image","src","complete","naturalHeight","getimageRatio","originalSize","isImageFitParent","sizeImage","sizeParent","position","outerHeight","outerWidth","right","isElementBiggerThenParent","objSizeElement","isPointInsideElement","getElementRelativePos","pos","elementSize","parentSize","z_________SET_ELEMENT_PROPS_______","zoomImageInsideParent","zoomIn","step","maxZoomRatio","newHeight","newWidth","newX","newY","zoomRatio","objOriginalSize","isMouseInside","panX","panY","panOrientX","panOrientY","pointImg","imgCenterPoint","scaleImageFitParent","expectedZoomRatio","setElementSize","posCenter","offsetLeft","offsetTop","isNumeric","objCss","margin","placeElementInParentCenter","setElementSizeAndPosition","cloneElementSizeAndPos","objSource","objTarget","isOuter","offsetX","offsetY","placeImageInsideParent","urlImage","escapeDoubleSlash","scaleImageCoverParent","pHeight","fitHeight","fitWidth","posy","posx","updateCss","removeAttr","scaleImageByHeight","scaleImageByWidth","scaleImageExactSizeInParent","exactWidth","exactHeight","diff","paddingLeft","paddingRight","paddingTop","paddingBottom","objReturn","showElement","element2","element3","z_________GALLERY_RELATED_FUNCTIONS_______","disableButton","objButton","className","isButtonDisabled","convertCustomPrefixOptions","objOptions","base","modifiedOptions","each","key","option","indexOf","newKey","replace","enableButton","removeClass","hasClass","z_________MATH_FUNCTIONS_______","normalizeSetting","realMin","realMax","settingMin","settingMax","fixBounds","getNormalizedValue","realValue","getDistance","x1","y1","x2","y2","sqrt","abs","getMiddlePoint","getNumItemsInSpace","spaceSize","itemsSize","gapSize","getNumItemsInSpaceRound","getSpaceByNumItems","numItems","itemSize","getItemSizeInSpace","getColX","col","colWidth","colGap","getColByIndex","numCols","getColRowByIndex","row","getIndexByRowCol","getPrevRowSameColIndex","getNextRowSameColIndex","z_________DATA_FUNCTIONS_______","setGlobalData","body","getGlobalData","z_________EVENT_DATA_FUNCTIONS_______","handleScrollTop","storedEventID","objData","getStoredEventData","scrollDir","diffMouseX","diffMouseY","scrollStartY","lastMouseClientY","scrollOrigin","scrollTop","scrollPos","wasVerticalScroll","storeEventData","id","addData","mousePos","time","now","startTime","lastTime","startMouseX","startMouseY","lastMouseX","lastMouseY","startMouseClientY","updateStoredEventData","isVertical","diffMouseClientY","diffTime","startMousePos","lastMousePos","diffMousePos","isApproveStoredEventClick","passedDistanceAbs","clearStoredEventData","z_________CHECK_SUPPORT_FUNCTIONS_______","isCanvasExists","getContext","isScrollbarExists","window","innerWidth","documentElement","clientWidth","createEvent","e","scriptElement","getElementsByTagName","prevColor","color","result","z_________GENERAL_FUNCTIONS_______","checkMinJqueryVersion","version","arrCurrent","fn","jquery","split","arrMin","i","len","numCurrent","parseInt","numMin","getCssSizeParam","sizeParam","convertHexToRGB","hexInput","opacity","hex","r","substring","g","b","timestampToString","stamp","d","Date","getDate","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","getArrTouches","arrTouches","getArrTouchPositions","arrOutput","push","startTimeDebug","showTimeDebug","Time Passed","initProgressIndicator","type","options","g_objProgress","UGProgressBar","putHidden","UGProgressPie","type_fill","setButtonMobileReady","stopPropagation","stopImmediatePropagation","registerTheme","themeName","getArrThemes","isThemeRegistered","theme","inArray","getFirstRegisteredTheme","isTimePassed","handlerName","timeLimit","currentTime","hasOwnProperty","whenContiniousEventOver","onEventOver","clearTimeout","setTimeout","validateClickTouchstartEvent","eventType","returnVal","addClassOnHover","hover","destroyButton","setButtonOnClick","onClickFunction","objThis","setButtonOnTap","objElement","trigger","is","loadJs","url","addProtocol","location","protocol","tag","firstScriptTag","parentNode","insertBefore","loadCss","setAttribute","appendChild","checkImagesLoaded","objImages","onComplete","onProgress","counter","numImages","checkComplete","image","isError","proxyImage","attr","waitForWidth","setInterval","clearInterval","arrayShuffle","arr","j","getObjectLength","object","num","item","normalizePercent","percent","stripTags","htmlentitles","text","z_________END_GENERAL_FUNCTIONS_______","Drupal","behaviors","locale","$","attachBehaviors","context","settings","attach","ready","n","a","arguments","createElementNS","call","apply","l","toUpperCase","u","p","s","getComputedStyle","o","getPropertyValue","error","currentStyle","m","f","fake","c","styleSheet","cssText","createTextNode","background","overflow","_","removeChild","offsetHeight","CSS","supports","join","E","modElem","v","shift","h","charAt","slice","T","P","C","S","w","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","addTest","addAsyncTest","Modernizr","prototype","nodeName","_cssomPrefixes","_domPrefixes","z","unshift","testAllProps","N","aliases","Boolean","baseVal","RegExp","k","AbstractChosen","Chosen","SelectParser","bind","me","hasProp","options_index","parsed","add_node","child","add_group","add_option","group","group_position","ref","results1","array_index","label","title","disabled","classes","childNodes","group_disabled","innerHTML","selected","group_array_index","group_label","empty","select_to_array","select","parser","form_field","options1","label_click_handler","browser_is_supported","is_multiple","multiple","set_default_text","set_default_values","setup","set_up_html","register_observers","on_ready","_this","click_test_action","evt","test_active_click","activate_action","activate_field","active_field","mouse_on_container","results_showing","result_highlighted","is_rtl","rtl","test","allow_single_deselect","disable_search_threshold","disable_search","enable_split_word_search","group_search","search_contains","single_backstroke_delete","max_selected_options","Infinity","inherit_select_classes","display_selected_options","display_disabled_options","include_group_label_in_selected","max_shown_results","Number","POSITIVE_INFINITY","case_sensitive_search","hide_results_on_select","getAttribute","default_text","placeholder_text_multiple","placeholder_text","default_multiple_text","placeholder_text_single","default_single_text","escape_html","results_none_found","no_results_text","default_no_result_text","choice_label","mouse_enter","mouse_leave","input_focus","container_mousedown","input_blur","blur_test","results_option_build","content","data_content","shown_results","results_data","result_add_group","result_add_option","first","choice_build","single_set_selected_text","option_el","search_match","include_option_in_results","highlighted_html","outerHTML","group_el","group_match","active_options","results_update_field","results_reset_cleanup","result_clear_highlight","results_build","winnow_results","reset_single_select_options","results_toggle","results_hide","results_show","results_search","escapedQuery","fix","query","regex","results","results_group","startpos","suffix","no_results_clear","get_search_text","get_search_regex","search_string_match","update_results_content","no_results","skip_highlight","winnow_results_set_highlight","escaped_search_string","regex_flag","regex_string","search_string","match","exec","choices_count","selected_option_count","choices_click","preventDefault","is_disabled","keydown_checker","stroke","which","keyCode","search_field_scale","pending_backstroke","clear_backstroke","backstroke_length","get_search_field_value","result_select","keyup_arrow","keydown_arrow","keyup_checker","keydown_backstroke","clipboard_event_checker","container_width","offsetWidth","search_results_touchstart","touch_started","search_results_mouseover","search_results_touchmove","search_results_mouseout","search_results_touchend","search_results_mouseup","tmp","get_single_html","get_multi_html","get_no_results_html","terms","navigator","appName","documentMode","userAgent","chosen","input_field","$this","superClass","__super__","constructor","ctor","form_field_jq","current_selectedIndex","selectedIndex","container_classes","container_props","class","container","after","dropdown","find","search_field","search_results","search_no_results","search_choices","search_container","selected_item","set_tab_index","set_label_behavior","container_mouseup","search_results_mousewheel","close_field","ownerDocument","form_field_label","tabIndex","remove","removeData","search_field_disabled","parents","toggleClass","target","val","results_reset","delta","deltaY","wheelDelta","detail","show_search_field_default","blur","focus","active_container","closest","parsing","readOnly","result_do_highlight","el","high_bottom","high_top","visible_bottom","visible_top","result_highlight","ti","choice","close_link","data-option-array-index","choice_destroy_link_click","before","choice_destroy","link","result_deselect","trigger_form_field_change","high","metaKey","ctrlKey","single_deselect_control_build","result_data","deselected","trim","do_high","selected_results","no_results_html","next_sib","nextAll","prev_sibs","prevAll","next_available_destroy","siblings","last","style_block","styles","display","whiteSpace","min","extra","accessibleSimpleTooltipAria","simpletooltipText","prefix_class","simpletooltipPrefixClass","content_id","simpletooltipContentId","index_lisible","toString","aria_describedby","aria-describedby","wrap","$contentId","insertAfter","tooltip_to_show_id","substr","$tooltip_to_show","require","code","exports","1","module","ce","CustomEvent","defaultPrevented","params","origPrevent","bubbles","cancelable","initCustomEvent","Object","defineProperty","get","Event","2","assign","firstSource","TypeError","to","nextSource","keysArray","keys","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","polyfill","configurable","writable","3","ModalVideo","applyJQuery","modalVideo","define","amd","jq","../index","4","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","_util","defaults","channel","facebook","youtube","autoplay","cc_load_policy","controls","disablekb","enablejsapi","end","fs","h1","iv_load_policy","list","listType","loop","modestbranding","origin","playlist","playsinline","rel","showinfo","start","wmode","nocookie","vimeo","api","autopause","byline","callback","maxheight","maxwidth","player_id","portrait","xhtml","allowFullScreen","animationSpeed","classNames","modalVideoClose","modalVideoBody","modalVideoInner","modalVideoIframeWrap","modalVideoCloseBtn","aria","openMessage","dismissBtnMessage","ele","instance","_classCallCheck","opt","selectors","querySelectorAll","querySelector","speed","forEach","selector","tagName","videoId","dataset","getUniqId","videoUrl","getVideoUrl","getHtml","modal","getElementById","btn","activeElement","triggerEvent","getYoutubeUrl","getVimeoUrl","getFacebookUrl","getQueryString","padding","getPadding","default","../lib/util","custom-event-polyfill","es6-object-assign","5","./core/","6","string","classList","add","eventName","dispatchEvent","support","getBoundingClientRect","clientRect","rect","box","doc","docElem","contains","win","isWindow","nodeType","defaultView","parentWindow","getWindow","pageYOffset","clientTop","pageXOffset","scrollLeft","clientLeft","root","factory","priorityNav","mainNavWrapper","totalWidth","restWidth","mainNav","navDropdown","navDropdownToggle","toggleWrapper","breaks","count","viewportWidth","initClass","navDropdownClassName","navDropdownToggleClassName","navDropdownLabel","navDropdownBreakpointLabel","breakPoint","throttleDelay","offsetPixels","moved","movedBack","collection","scope","prop","toggle","existingIndex","splice","calculateWidths","docEl","parseFloat","getChildrenWidth","compatMode","clientHeight","innerHeight","doesItFit","wait","immediate","timeout","delay","identifier","toDropdown","updateLabel","toMenu","showToggle","args","later","callNow","updateCount","firstChild","lastElementChild","firstElementChild","pop","sum","isNaN","listeners","firstChar","hasAttribute","getClosest","onkeydown","Element","parentElement","NodeList","HTMLCollection","Node","nextSibling","checkForSymbols","extended","elements","warn","prepareHtml","scrollnav","Promise","reject","L","O","subSections","matches","sections","nextElementSibling","innerText","textContent","pow","I","Q","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","M","max","scroll","B","insertTarget","insertLocation","easingStyle","updateHistory","includes","F","R","nav","map","then","history","replaceState","onScroll","scrollY","removeAttribute","q","debug","onInit","removeEventListener","onDestroy","updatePositions","onUpdatePositions","instanceUid","Slick","dataSettings","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","slider","dots","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","focusOnChange","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","slide","slidesPerRow","slidesToShow","slidesToScroll","swipe","swipeToSlide","touchMove","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","zIndex","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","direction","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","scrolling","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","swiping","$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","proxy","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","htmlExpr","registerBreakpoints","activateADA","aria-hidden","tabindex","addSlide","slickAdd","markup","addBefore","unload","appendTo","eq","prependTo","detach","reinit","animateHeight","targetHeight","animate","animateSlide","targetLeft","animProps","animStart","duration","ceil","applyTransition","disableTransition","getNavTarget","not","slick","slideHandler","transition","slideTo","buildArrows","aria-disabled","buildDots","dot","getDotCount","buildOut","wrapAll","setupInfinite","updateDots","setSlideClasses","buildRows","newSlides","numOfSlides","originalSlides","slidesPerSection","createDocumentFragment","checkResponsive","initial","forceUpdate","breakpoint","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","unslick","refresh","dontAnimate","indexOffset","$target","currentTarget","message","checkNavigable","navigables","prevNavigable","getNavigableIndexes","cleanUpEvents","interrupt","visibility","cleanUpSlideEvents","orientationChange","resize","cleanUpRows","fadeSlide","slideIndex","fadeSlideOut","filterSlides","slickFilter","filter","focusHandler","$sf","getCurrent","slickCurrentSlide","pagerQty","getLeft","verticalHeight","targetSlide","coef","verticalOffset","getOption","slickGetOption","indexes","getSlick","getSlideCount","swipedSlide","centerOffset","goTo","slickGoTo","creation","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","numDotGroups","tabControlIndexes","slideControlIndex","role","ariaButtonControl","mappedSlideIndex","aria-controls","aria-label","aria-selected","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","loadRange","rangeStart","rangeEnd","loadImages","imagesScope","imageSource","imageSrcSet","imageSizes","imageToLoad","onload","onerror","prevSlide","nextSlide","progressiveLazyLoad","next","slickNext","pause","slickPause","play","slickPlay","postSlide","prev","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","sort","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","setFade","setHeight","setOption","slickSetOption","bodyStyle","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","transform","allSlides","remainder","evenCoef","infiniteCount","clone","targetElement","sync","animSlide","oldSlide","slideLeft","navTarget","swipeDirection","xDist","yDist","swipeAngle","startX","curX","startY","curY","atan2","PI","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","swipeStart","swipeMove","curLeft","positionOffset","verticalSwipeLength","unfilterSlides","slickUnfilter","fromBreakpoint","ret","Array","g_ugFunctions","UGThumbsGeneral","g_arrItems","g_objParent","g_objThis","GET_THUMBS_ALL","GET_THUMBS_RATIO","GET_THUMBS_NO_RATIO","GET_THUMBS_NEW","SETOVERSTYLE","SETNORMALSTYLE","SETSELECTEDSTYLE","PLACEIMAGE","AFTERPLACEIMAGE","IMAGELOADERROR","THUMB_IMAGE_LOADED","thumb_width","thumb_height","thumb_fixed_size","thumb_resize_by","thumb_border_effect","thumb_border_width","thumb_border_color","thumb_over_border_width","thumb_over_border_color","thumb_selected_border_width","thumb_selected_border_color","thumb_round_corners_radius","thumb_color_overlay_effect","thumb_overlay_color","thumb_overlay_opacity","thumb_overlay_reverse","thumb_image_overlay_effect","thumb_image_overlay_type","thumb_transition_duration","thumb_transition_easing","thumb_show_loader","thumb_loader_type","thumb_wrapper_as_link","thumb_link_newpage","touchEnabled","num_thumbs_checking","customThumbs","funcSetCustomThumbHtml","isEffectBorder","isEffectOverlay","isEffectImage","colorOverlayOpacity","thumbInnerReduce","allowOnResize","classNewThumb","g_serviceParams","appendHtmlThumbFromItem","itemIndex","imageEffectClass","objItem","classAddition","htmlThumb","urlLink","linkTarget","objThumbWrapper","objThumbImage","loaderClass","objImageOverlay","setThumbSize","objThumb","innerOnly","objCssInner","selectorsString","setThumbBorderEffect","borderWidth","borderColor","noAnimation","isFakeFullscreen","objBorderOverlay","stop","fadeOut","fadeIn","objThumbCss","queue","animateThumb","setThumbColorOverlayEffect","isActive","objOverlay","animationDuration","setThumbImageOverlayEffect","setThumbSelectedStyle","redrawThumbStyle","isThumbSelected","setThumbNormalStyle","placeThumbImage","imageSize","objImageBW","copyPositionToThumbOverlayImage","onThumbSizeChange","temp","getItemByThumb","onImageLoaded","isForce","isLoaded","triggerImageLoadedEvent","onThumbImageLoaded","isThumbImageLoaded","thumbWidth","thumbHeight","thumbRatioByWidth","thumbRatioByHeight","_____________EXTERNAL_SETTERS__________","setHtmlThumbs","isAppend","arrEffects","getImageEffectsClass","getNumItems","getThumbs","arrNewIndexes","getNewAddedItemsIndexes","fromWhere","setThumbOverStyle","setHtmlProperties","objThumbs","border-radius","setThumbsBorderRadius","colorRGB","setThumbSelected","setThumbUnselected","setThumbInnerReduce","innerReduce","setCustomThumbs","funcSetHtml","arrAlowedEffects","allow_onresize","_____________EXTERNAL_GETTERS__________","getOptions","getNumThumbs","getThumbImage","getThumbByIndex","mode","thumbClass","isThumbLoaded","getGlobalThumbSize","_____________EXTERNAL_OTHERS__________","onMouseOver","onMouseOut","loadThumbsImages","setItemThumbLoadedError","hideThumbs","UGThumbsStrip","g_objStrip","g_objStripInner","g_aviaControl","g_touchThumbsControl","g_isVertical","g_thumbs","strip_vertical_type","strip_thumbs_align","strip_space_between_thumbs","strip_thumb_touch_sensetivity","strip_scroll_to_thumb_duration","strip_scroll_to_thumb_easing","strip_control_avia","strip_control_touch","strip_padding_top","strip_padding_bottom","strip_padding_left","strip_padding_right","isRunOnce","is_placed","isNotFixedThumbs","g_sizes","stripSize","stripActiveSize","stripInnerSize","thumbSize","thumbSecondSize","STRIP_MOVE","INNER_SIZE_CHANGE","g_defaultsVertical","onAfterSetOptions","thumbsOptions","runStrip","arrThumbs","firstThumb","thumbsRealWidth","thumbsRealHeight","thumbs_options","storeStripSize","objCssStrip","fixSize","positionThumbs","UGTouchThumbsControl","UGAviaControl","checkControlsEnableDisable","isTouchMotionActive","isSignificantPassed","selectItem","onThumbClick","ITEM_CHANGE","onItemChange","onThumbPlaced","size","innerSize","innerStripSize","scrollBy","scrollStep","finalPos","getInnerStripPos","fixInnerStripLimits","positionInnerStrip","scrollToThumbMin","getThumbPos","scrollToThumbMax","scrollToThumb","isStripMovingEnabled","innerPos","objBounds","minPosThumbs","maxPosThumbs","objThumbPos","prevThumb","nextThumb","enable","disable","getSelectedItem","objPos","parent_container","________EXTERNAL_GENERAL___________","attachThumbsPanel","initStrip","isAnimate","objPosition","triggerStripMoveEvent","progress","always","isTouchActive","isItemThumbVisible","thumbPos","posMin","posMax","thumbPosMin","thumbPosMax","isVisible","getInnerStripLimits","maxPos","minPos","distPos","objLimits","scrollForeward","scrollBack","________EXTERNAL_SETTERS___________","setSizeVertical","setSizeHorizontal","innerLeft","newSize","posFixed","checkAndRepositionInnerStrip","alignInnerStrip","selectedItem","scrollToSelectedThumb","________EXTERNAL_GETTERS___________","commonOpitions","getObjThumbs","getSelectedThumb","getSelectedItemIndex","getSizeAndPosition","getHeight","getWidth","getSizes","isPlaced","isMoveEnabled","g_parent","touch_portion_time","thumb_touch_slowFactor","minDeltaTime","minPath","limitsBreakAddition","returnAnimateSpeed","animationEasing","returnAnimationEasing","touch_active","loop_active","startPos","buttonReleaseTime","lastPos","lastPortionPos","lastDeltaTime","lastDeltaPos","isControlEnabled","getActionVars","passedTime","lastActiveTime","passedDistance","getMouseOrientPosition","storeTouchPortionData","onAnimateProgress","endStripTouchLoop","slowFactor","currentInnerPos","deltaTime","deltaPos","path","innerStripPos","newPos","correctPos","doQueue","returnPos","maxStopPos","correctPath","animateSpeed","animateProps","returnAnimateProps","continueTouchMotion","onTouchEnd","onTouchStart","pagePos","storeInitTouchValues","startStripTouchLoop","onTouchMove","buttons","handleStripDrag","objStrip","objVars","UGPanelsBase","g_panel","g_objPanel","g_objHandle","placePanelAnimation","panelDest","functionOnComplete","orientation","placePanelNoAnimation","onPanelSlideFinish","FINISH_MOVE","g_tempArg","g_panelArg","g_objThisArg","g_objPanelArg","panelType","enable_handle","strippanel_enable_handle","gridpanel_enable_handle","UGPanelHandle","isDisabledAtStart","disabledAtStartTimeout","placeElements","placeHandle","SLIDER_ACTION_START","hideHandle","SLIDER_ACTION_END","showHandle","openPanel","isClosed","OPEN_PANEL","originalPos","closePanel","getClosedPanelDest","CLOSE_PANEL","setClosedState","setOpenedState","objPanelSize","panelWidth","getSize","panelHeight","isPanelClosed","setDisabledAtStart","g_objHandleTip","panel_handle_align","panel_handle_offset","panel_handle_skin","removeHoverState","onHandleClick","panel","objPanel","panelOptions","gridpanel_handle_align","gridpanel_handle_offset","gridpanel_handle_skin","strippanel_handle_align","strippanel_handle_offset","strippanel_handle_skin","globalSkin","gallery_skin","classTip","getOrientation","handleSize","checkAndFixAlign","UGStripPanel","g_objButtonNext","g_objButtonPrev","g_panelBase","strippanel_vertical_type","strippanel_padding_top","strippanel_padding_bottom","strippanel_padding_left","strippanel_padding_right","strippanel_enable_buttons","strippanel_buttons_skin","strippanel_padding_buttons","strippanel_buttons_role","strippanel_background_color","g_defaults_vertical","g_defaults_no_buttons","isEventsInited","isFirstRun","runPanel","validatePanelBeforeRun","setElementsSize","onPrevButtonClick","onNextButtonClick","onStripMove","checkSideButtons","SIZE_CHANGE","gallery_carousel","setPanelHtml","parentContainer","arrowPrevClass","arrowNextClass","stripHeight","prevTip","nextTip","stripWidth","setElementsSize_hor","setElementsSize_vert","stripX","placeElements_hor","stripY","placeElements_vert","nextItem","prevItem","limits","isLastItem","isFirstItem","setOrientation","repeatCustomOptions","getElement","initPanel","setWidth","__________Functions_From_Base_____","UGGridPanel","g_objArrowNext","g_objArrowPrev","g_objGrid","UGThumbsGrid","gridpanel_vertical_scroll","gridpanel_grid_align","gridpanel_padding_border_top","gridpanel_padding_border_bottom","gridpanel_padding_border_left","gridpanel_padding_border_right","gridpanel_arrows_skin","gridpanel_arrows_align_vert","gridpanel_arrows_padding_vert","gridpanel_arrows_align_hor","gridpanel_arrows_padding_hor","gridpanel_space_between_arrows","gridpanel_arrows_always_on","gridpanel_background_color","g_defaultsHorType","isHorType","arrowsVisible","originalPosX","validateOrientation","showArrows","getNumPanes","setArrows","gridSize","setPanelSize","gridY","prevArrowY","nextArrowY","nextArrowPaddingY","objArrowSize","objGridSize","gridPanelLeft","getGridPaddingLeft","gridElement","gridpanel_arrows_padding_vert_vert","placeElementsVert_arrows","placeElements_noarrows","arrowsY","prevArrowPadding","arrowsPaddingY","elementsHeight","remainHeight","nextArrowPadding","placeElementsHor_arrows","gridX","prevArrowX","nextArrowX","placeElementsHorType_arrows","placeElementHorType_noarrows","attachPrevPaneButton","attachNextPaneButton","setHtmlPanel","gridPaddingY","spaceTaken","maxGridHeight","gridMaxHeight","getNumPanesEstimationByHeight","setMaxHeight","maxGridWidth","gridMaxWidth","getNumPanesEstimationByWidth","setMaxWidth","vertical_scroll","grid_panes_direction","objects","initGridPanel","g_objInner","g_tilesDesign","grid_num_cols","grid_min_cols","grid_num_rows","grid_space_between_cols","grid_space_between_rows","grid_space_between_mobile","grid_transition_duration","grid_transition_easing","grid_carousel","grid_padding","grid_vertical_scroll_ondrag","PANE_CHANGE","eventSizeChange","isHorizontal","isMaxHeight","isMaxWidth","gridHeight","gridWidth","numPanes","arrPanes","numThumbs","currentPane","numThumbsInPane","isNavigationVertical","touchActive","startScrollPos","isFirstTimeRun","isTilesMode","tileMaxWidth","tileMaxHeight","spaceBetweenCols","spaceBetweenRows","setFixedMode","setApproveClickFunction","isApproveTileClick","options_td","tile_height","tile_width","validateBeforeRun","initGridDynamicSize","initSizeParams","maxy","baseX","paneStartY","endy","paneMaxY","positionThumb_vert","maxx","endY","endX","positionThumb_hor","baseY","gridMaxY","rowsCounter","positionThumb_hortype","objTiles","tile","getThumbsSize","objThumbSize","getGlobalTileSize","isChanged","isMobile","isMobileMode","spaceOld","lastThumbWidth","tileWidth","setTileSizeOptions","thumbsWidth","thumbsHeight","initSizeParamsHor","thumbIndex","paneIndex","getPaneIndexByThumbIndex","gotoPane","validatePaneIndex","animateInnerTo","getInnerPosObj","animateToCurrentPane","getInnerPos","validateThumbIndex","isMovementValidForChange","diffPos","startInnerPos","paneSize","breakSize","lastPaneSize","setInnerPos","isLastPane","nextPane","isFirstPane","prevPane","__________EXTERNAL_GENERAL_________","__________EXTERNAL_API_________","numRows","totalHeight","getHeightEstimationByWidth","getPaneInfo","pane","total","getPane","nextPaneIndex","prevPaneIndex","attachBullets","objBullets","setActive","BULLET_CLICK","numBullet","numPane","g_arrNestedGridRow","g_arrNestedItems","g_vars","tiles_type","tiles_col_width","tiles_align","tiles_exact_width","tiles_space_between_cols","tiles_space_between_cols_mobile","tiles_include_padding","tiles_min_columns","tiles_max_columns","tiles_set_initial_height","tiles_justified_row_height","tiles_justified_space_between","tiles_nested_optimal_tile_width","tiles_nested_col_width","tiles_nested_debug","tiles_enable_transition","THUMB_SIZE_CHANGE","ALL_TILES_LOADED","isTransActive","isTransInited","isFirstPlaced","isAllLoaded","g_nestedWork","nestedOptimalCols","maxColumns","columnsValueToEnableHeightResize","resizeLeftRightToColumn","currentItem","currentGap","optimalTileWidth","maxGridY","setTransition","optionsTile","tile_enable_image_effect","tile_image_effect_reverse","getParentWidth","doBeforeTransition","disableEvents","doAfterTransition_setClasses","doAfterTransition","enableEvents","triggerSizeChangeEventAllTiles","fillTilesVars_countWidthByCols","availWidth","fillTilesVars","minCols","maxCols","galleryWidth","addX","arrPosx","colX","initColHeights","maxColHeight","colHeights","placeTile","toShow","setGalleryHeight","numCol","minHeight","getTilesMinCol","itemHeight","getTileHeightByWidth","realHeight","placeTiles","resizeAllTiles","resizemode","VISIBLE_ELEMENTS","placeOrderedTile","getItem","ordered_placed","prevIndex","isOrderedTilePlaceAlowed","resizeTile","nextTile","runColumnsType","diffWidth","estimateHeight","initNumCols","initWidth","onSingleImageLoad","getJustifiedData","rowHeightOpt","arrWidths","gap","numTiles","finalRowWidth","arrRows","eachRowWidth","rowsWidths","progressWidth","numRow","arrRowWidths","arrRowHeights","rowWidth","gapWidth","rowHeight","ratioHeights","arrRowTileWidths","actualRowWidth","indexInRow","tileIndex","placeJustified","tileHeight","fillNestedVars","sizes","dimWidth","dimHeight","objImageSize","getTileImageSize","maxDim","sin","getPresettedRandomByWidth","imgWidth","imgHeight","setNestedSize","placeNestedImages","placeNestedImagesCycle","drawNestedImage","drawNestedImages","placeOne","placeNestedImage","placeNestedImagesDebug","tileID","rowsValue","column","isGridRowExists","isGridCellTaken","calculateOptimalStretchAndPosition","getTotalFreeFromPosition","totalFree","currentWidth","placeForNextImage","optimalWidth","resizeToNewWidth","isGridImageAligned","columnInfo","tempY","curImage","prevImage","columnHeight","imagesIDs","toReturn","getGridColumnHeight","sideHelper","newHeightR","newHeightL","leftID","rightID","array","idToResize","getGridImageVerticalDifference","columnSizes","resizeToNewHeight","columnResizes","columnWidth","cordX","cordY","currentTile","tempHeight","redistributeColumnItems","disableColumnResizes","tilesAndSizes","crosshairsCountR","crosshairsCountL","topItem","bottomItem","getColumnCrosshairsCount","sideResizes","tileLeft","tileTop","sideSizes","getSideResizeInfo","calcResizeRatio","applyResizes","putImageToGridRow","resizeTilesAndSizes","newDimWidth","newDimHeight","objTilesAndSizes","tempResizes","tempNum","resizeVal","addGridRow","setGridCellValue","onResize","runNestedType","tilesType","g_objParentWrapper","FULL","WRAPPER_ONLY","sizeby","GLOBAL_RATIO","TILE_RATIO","IMAGE_RATIO","CUSTOM","tile_size_by","tile_visible_before_image","tile_enable_background","tile_background_color","tile_enable_border","tile_border_width","tile_border_color","tile_border_radius","tile_enable_outline","tile_outline_color","tile_enable_shadow","tile_shadow_h","tile_shadow_v","tile_shadow_blur","tile_shadow_spread","tile_shadow_color","tile_enable_action","tile_as_link","tile_link_newpage","tile_enable_overlay","tile_overlay_opacity","tile_overlay_color","tile_enable_icons","tile_show_link_icon","tile_videoplay_icon_always_on","tile_space_between_icons","tile_image_effect_type","tile_enable_textpanel","tile_textpanel_source","tile_textpanel_always_on","tile_textpanel_appear_type","tile_textpanel_position","tile_textpanel_offset","tile_textpanel_enable_description","tile_textpanel_bg_opacity","tile_textpanel_padding_top","tile_textpanel_padding_bottom","ratioByHeight","ratioByWidth","funcCustomTileHtml","funcCustomPositionElements","funcParentApproveClick","isSaparateIcons","tileInnerReduce","isTextpanelOutside","hasImageContainer","isVideoplayIconAlwaysOn","isTextPanelHidden","getArrItems","tile_textpanel_align","tile_textpanel_margin","tile_textpanel_desc_style_as_title","customThumbsAdd","setHtmlThumb","thumbOptions","modifyOptionsBeforeRender","classImage","imageAlt","urlThumb","htmlShadow","htmlAdd","iconPlayClass","toSaparateIcon","objButtonZoom","objButtonLink","imageEffectClassAdd","imageOverlayHtml","objTextPanel","UGTextPanel","textpanelAddClass","appendHTML","panelTitle","panelDesc","description","setTextPlain","getTextPanelElement","objCloneWrapper","objTextPanelClone","getTileOverlayImage","getTextPanel","getTextPanelHeight","getTextPanelCloneElement","getButtonLink","getButtonZoom","isOverStyle","isTileClickable","isItemIconAlwaysOn","positionElements_images","visibleOnly","getTileImage","objImageEffect","getTileImageEffect","imagePosy","textHeight","objImageContainer","getTileImageContainer","dontResize","positionElements_textpanel","getTextPanelClone","textPanelCloneSizeSet","positionPanel","positionElements","sizeTile","overlayWidth","overlayHeight","overlayY","getTileOverlay","gapVert","objTextPanelElement","texPanelSize","sizeZoom","sizeLink","spaceBetween","buttonsWidth","buttonsX","setImageOverlayEffect","objOverlayImage","setTextpanelEffect","panelSize","startClass","endClass","posName","endPos","setIconsEffect","g_objIconZoom","g_objIconLink","setOverStyle","isSet","setNormalStyle","onSizeChange","forcePosition","onPlaceImage","onMobileClick","objTileExcept","tagname","isApproved","onZoomButtonClick","onLinkButtonClick","loadTileImage","thumb","textPanel","funcApprove","resizeMode","triggerSizeChangeEvent","newOptions","newTileWidth","setCustomFunctions","funcCustomHtml","funcPositionElements","newOnly","getMode","_____________EXTERNAL_GETTERS____________","getTileRatio","isMouseInsideStrip","strip_finalPos","handle_timeout","isStripMoving","moveStripStep","is_strip_moving","stopStripMovingLoop","dpos","mousemove","ismouseover","strip_touch_active","innerOffsetLeft","innerOffsetRight","mlineStart","mlineEnd","innerPosX","getInnerPosX","innerOffsetTop","innerPosY","getInnerPosY","startStripMovingLoop","moveStripToMousePosition","getMousePos","UGSlider","g_objSlider","g_objSlide1","g_objSlide2","g_objSlide3","g_objArrowLeft","g_objArrowRight","g_objTouchSlider","g_objZoomSlider","g_objZoomPanel","g_optionsPrefix","g_objButtonPlay","g_objButtonFullscreen","g_objBullets","g_objVideoPlayer","UGVideoPlayer","g_objTextPanel","ITEM_CHANGED","BEFORE_SWITCH_SLIDES","BEFORE_RETURN","AFTER_RETURN","ZOOM_START","ZOOM_END","ZOOMING","ZOOM_CHANGE","START_DRAG","AFTER_DRAG_CHANGE","ACTION_START","ACTION_END","CLICK","TRANSITION_START","TRANSITION_END","AFTER_PUT_IMAGE","IMAGE_MOUSEENTER","IMAGE_MOUSELEAVE","CURRENTSLIDE_LOAD_START","CURRENTSLIDE_LOAD_END","slider_scale_mode","slider_scale_mode_media","slider_scale_mode_fullscreen","slider_item_padding_top","slider_item_padding_bottom","slider_item_padding_left","slider_item_padding_right","slider_background_color","slider_background_opacity","slider_image_padding_top","slider_image_padding_bottom","slider_image_padding_left","slider_image_padding_right","slider_image_border","slider_image_border_width","slider_image_border_color","slider_image_border_radius","slider_image_border_maxratio","slider_image_shadow","slider_video_constantsize","slider_video_constantsize_scalemode","slider_video_constantsize_width","slider_video_constantsize_height","slider_video_padding_top","slider_video_padding_bottom","slider_video_padding_left","slider_video_padding_right","slider_video_enable_closebutton","slider_transition","slider_transition_speed","slider_transition_easing","slider_control_swipe","slider_control_zoom","slider_zoom_mousewheel","slider_vertical_scroll_ondrag","slider_loader_type","slider_loader_color","slider_enable_links","slider_links_newpage","slider_enable_bullets","slider_bullets_skin","slider_bullets_space_between","slider_bullets_align_hor","slider_bullets_align_vert","slider_bullets_offset_hor","slider_bullets_offset_vert","slider_enable_arrows","slider_arrows_skin","slider_arrow_left_align_hor","slider_arrow_left_align_vert","slider_arrow_left_offset_hor","slider_arrow_left_offset_vert","slider_arrow_right_align_hor","slider_arrow_right_align_vert","slider_arrow_right_offset_hor","slider_arrow_right_offset_vert","slider_enable_progress_indicator","slider_progress_indicator_type","slider_progress_indicator_align_hor","slider_progress_indicator_align_vert","slider_progress_indicator_offset_hor","slider_progress_indicator_offset_vert","slider_enable_play_button","slider_play_button_skin","slider_play_button_align_hor","slider_play_button_align_vert","slider_play_button_offset_hor","slider_play_button_offset_vert","slider_play_button_mobilehide","slider_enable_fullscreen_button","slider_fullscreen_button_skin","slider_fullscreen_button_align_hor","slider_fullscreen_button_align_vert","slider_fullscreen_button_offset_hor","slider_fullscreen_button_offset_vert","slider_fullscreen_button_mobilehide","slider_enable_zoom_panel","slider_zoompanel_skin","slider_zoompanel_align_hor","slider_zoompanel_align_vert","slider_zoompanel_offset_hor","slider_zoompanel_offset_vert","slider_zoompanel_mobilehide","slider_controls_always_on","slider_controls_appear_ontap","slider_controls_appear_duration","slider_enable_text_panel","slider_textpanel_always_on","slider_videoplay_button_type","g_defaultsProgressBar","isTextPanelSaparateHover","numPrev","numNext","isControlsVisible","currentControlsMode","initSlider","objGallery","optionsPrefix","g_objThumbs","galleryOptions","video_enable_closebutton","gallery_mousewheel_role","processOptions","UGBullets","bulletsOptions","bullets_skin","bullets_space_between","UGZoomButtonsPanel","galleryID","getGalleryID","runSlider","bgColor","UGTouchSliderControl","UGZoomSliderControl","ITEM_IMAGE_UPDATED","onItemImageUpdate","onBulletClick","setNextButton","setPrevButton","onMouseEnter","onMouseLeave","onClick","onActualClick","showTextPanel","hideTextPanel","setPlayButton","setFullScreenToggleButton","onZoomChange","SHOW","onVideoPlayerShow","HIDE","onVideoPlayerHide","onSlideImageLoaded","isMouseInsideSlideImage","getHtmlSlide","numSlide","classVideoplay","setHtmlSlider","getLoaderClass","getType","setProgressIndicator","positionSlideElements","objSlide","objPreloader","getSlidePreloader","objVideoPlayButton","getSlideVideoPlayButton","hideControls","objProgressElement","setSize","zoomPanelElement","placeControlsElements","positionSlides","posXNext","nextHasItem","prevHasItem","slides","getSlidesReference","posXCurrent","isSlideHasItem","objNextSlide","objPrevSlide","objCurrentSlide","resizeSlideItem","setItemToSlide","hidePreloader","setImageDesign","slideType","imageData","totalSize","getImageBorderWidth","scaleImageConstantSize","constantWidth","constantHeight","setImageToSlide","objItemWrapper","currentImage","getScaleMode","getSlideType","getObjImagePadding","checkFillImageSize","objImageData","isBigImageLoaded","isSlideCurrent","onItemBigImageLoaded","fileName","showErrorMessageReplaceGallery","panelElement","animationTime","setVideoPlayerPosition","getCurrentSlide","getSlideImage","slideSize","setVideoPlayerConstantSize","videoWidth","videoHeight","getObject","doTransition","forceTransition","stopSlideAction","transitionFade","transitionSlide","isAnimating","itemWaiting","destX","switchSlideNums","transSpeed","transEasing","animateParams","currentIndex","getSlideDirection","placeNabourItems","animateOpacity","completeFunction","noHidePlayer","objCurrentPos","currentNum","getControlsObjects","objControls","showControls","setControlsMode","arg_objItem","setItem","bulletIndex","isTapEventOccured","isClickable","getCurrentItem","href","isCurrentSlideType","isCurrentSlideImageFit","objVideoPlayClick","startSlideAction","isPlayMode","pausePlaying","continuePlaying","objButtonVideoPlay","getSlideByNum","getSlideItem","isInnerInPlace","getCurrentItemIndex","getLastMousePos","isCurrentSlideLoadingImage","forseTransition","itemPrev","getPrevItem","itemNext","getNextItem","________EXTERNAL_API___________","isPause","playYoutube","videoid","playVimeo","playHtml5Video","videoogv","videowebm","videomp4","playSoundCloud","trackid","playWistia","getObjZoom","getVideoObject","validateSlideType","isCurrentImageInPlace","objFitSize","isSlideActionActive","isSwiping","isPreloading","objCssSlider","objCssSlide","itemWidth","objCssItemWrapper","setSizeByParent","refreshSlideItems","isMouseOver","zoomOut","zoomBack","g_objTitle","g_objDesc","g_objBG","g_objTextWrapper","textpanel_align","textpanel_margin","textpanel_text_valign","textpanel_padding_top","textpanel_padding_bottom","textpanel_height","textpanel_padding_title_description","textpanel_padding_right","textpanel_padding_left","textpanel_fade_duration","textpanel_enable_title","textpanel_enable_description","textpanel_enable_bg","textpanel_bg_color","textpanel_bg_opacity","textpanel_title_color","textpanel_title_font_family","textpanel_title_text_align","textpanel_title_font_size","textpanel_title_bold","textpanel_css_title","textpanel_desc_color","textpanel_desc_font_family","textpanel_desc_text_align","textpanel_desc_font_size","textpanel_desc_bold","textpanel_css_description","textpanel_desc_style_as_title","textpanel_bg_css","isFirstTime","setInternalHeight","lastTitleBottom","lastDescHeight","positionElementsTop","titleY","textDesc","descY","objDescSize","descHeight","currentHeight","getTotalTextHeight","setCss","objCssBG","background-color","objCssTitle","objCssDesc","setText","totalTextHeight","positionElementsMiddle","textWrapperWidth","textWrapperLeft","customTop","customLeft","noPosition","optionName","g_objButtonPlus","g_objButtonMinus","g_objButtonReturn","g_slider","objSlider","setObjects","objButtonPlus","objButtonMinus","objButtonReturn","g_bulletWidth","g_numBullets","isInited","bullets_addclass","setHtmlBullets","objBullet","validateIndex","validateInited","numBullets","getBulletsWidth","updateNumBullets","getNumBullets","g_objBar","g_percent","slider_progressbar_color","slider_progressbar_opacity","slider_progressbar_line_width","put","userOptions","objInnerHTML","draw","setProgress","g_objPie","g_isInited","slider_progresspie_type_fill","slider_progresspie_color1","slider_progresspie_color2","slider_progresspie_stroke_width","slider_progresspie_width","slider_progresspie_height","radius","ctx","rotate","translate","clearRect","centerX","centerY","startPoint","endPoint","beginPath","moveTo","arc","lineTo","fillStyle","fill","closePath","globalCompositeOperation","radius2","slider_transition_continuedrag_speed","slider_transition_continuedrag_easing","slider_transition_return_speed","slider_transition_return_easing","startPosx","isInitDataValid","lastNumTouches","isDragging","videoStartX","isDragVideo","videoObject","getDiffPosFromCurrentItem","returnToPlace","animation","number","remainingMS","posDiff","videoPosX","continueSlideDragChange","isReturn","changeItem","storeInitTouchData","startArrTouches","disableTouchActive","who","enableTouchActive","objZoomSlider","isPanEnabled","currentPosx","handleSliderDrag","numTouches","isValid","diffX","diffY","slider_zoom_step","slider_zoom_max_ratio","slider_zoom_return_pan_duration","slider_zoom_return_pan_easing","isPanActive","startImageX","startImageY","panXActive","panYActive","objParentSize","storeImageLastTime","isZoomActive","startDistance","startMiddlePoint","imageOrientPoint","objFitImageSize","isZoomedOnce","initObject","onSliderMouseWheel","checkReturnFromZoom","getFitScaleMode","storeCurrentImage","zoomCurrentImage","isZoomed","isPanPosible","stictTouchesCheck","startPan","storePanInitValues","checkTouchZoomEnd","checkTouchZoomStart","startTouchZoom","isReturnX","isReturnY","objImagePadding","objCenterPos","checkReturnAfterPan","panWasActive","zoomWasActive","panPosible","middlePoint","diffMiddleX","diffMiddleY","doTouchZoom","diffLastX","diffLastY","directionX","directionY","posImage","imageX","imageY","panImage","deltaX","________EXTERNAL_____________","UGWistiaAPI","isAPILoaded","g_intHandle","g_player","g_isPlayerReady","isWistiaActive","Wistia","putVideoActually","divID","videoID","isAutoplay","htmlID","embed","START_PLAYING","STOP_PLAYING","VIDEO_ENDED","loadAPI","g_ugWistiaAPI","doCommand","command","putVideo","isPlayerReady","UGSoundCloudAPI","g_lastContainerID","isSCActive","SC","putSoundActually","trackID","iframeID","Widget","Events","READY","PLAY","PAUSE","FINISH","g_ugSoundCloudAPI","putSound","UGHtml5MediaAPI","isMediaElementActive","mejs","urlFlash","urlSilverlight","htmlAutoplay","htmlPoster","posterImage","mp4","webm","ogv","MediaElement","enablePluginDebug","flashName","silverlightName","success","mediaElement","domObject","objError","g_ugHtml5MediaAPI","UGVimeoAPI","g_lastCotnainerID","g_cueChangeAutoplay","isFroogaloopActive","Froogaloop","iframe","g_ugVimeoAPI","changeVideo","getVideoImages","onSuccessFunction","preview","thumbnail_large","thumbnail_medium","UGYoutubeAPI","g_prevState","video_youtube_showinfo","playerVars","YT","Player","onReady","onPlayerReady","onStateChange","onPlayerStateChange","isYTActive","getPlayerState","state","PlayerState","PLAYING","ENDED","g_ugYoutubeAPI","opt1","playVideo","pauseVideo","seekTo","PAUSED","clearVideo","stopToBeginning","loadVideoById","cueVideoById","g_galleryID","g_objPlayer","g_objYoutube","g_objVimeo","g_objHtml5","g_objButtonClose","g_objSoundCloud","g_objWistia","g_youtubeAPI","g_vimeoAPI","g_html5API","g_soundCloudAPI","g_wistiaAPI","g_activePlayerType","PLAY_START","PLAY_STOP","standAloneMode","youtubeInnerID","vimeoPlayerID","html5PlayerID","wistiaPlayerID","soundCloudPlayerID","onCloseButtonClick","onPlayStart","onPlayStop","onVideoEnded","stopAndHidePlayers","except","arrPlayers","player","optOptions","isStandAloneMode","getActiveAPI","activeAPI","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaMode","deltaFactor","dispatch","adjustOldDeltas","fixHooks","mouseHooks","special","mousewheel","onmousewheel","getLineHeight","getPageHeight","teardown","unmousewheel","cos","c1","c2","c4","c5","bounceOut","n1","d1","def","swing","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","cssHooks","mod","_rgba","re","parse","space","cache","transparent","Color","rgba","red","idx","green","blue","hsla","hue","saturation","lightness","byte","degrees","backgroundColor","alpha","_default","from","_space","blend","toRgbaString","toHslaString","toHexString","_hsla","hook","set","fx","colorInit","expand","names","aqua","black","fuchsia","gray","lime","maroon","navy","olive","purple","silver","teal","white","yellow","mlp","contents","ugCheckForMinJQueryVersion","ugCheckForErrors","checkForJqueryPresents","unitegallery","errorMessage","checkForDoubleJQuery","g_objTabs","g_objLoadMore","g_numItems","g_selectedItem","g_selectedItemIndex","g_objTheme","g_objCache","ENTER_FULLSCREEN","EXIT_FULLSCREEN","START_PLAY","STOP_PLAY","PAUSE_PLAYING","CONTINUE_PLAYING","GALLERY_KEYPRESS","OPEN_LIGHTBOX","CLOSE_LIGHTBOX","gallery_height","gallery_min_width","gallery_min_height","gallery_theme","gallery_images_preload_type","gallery_autoplay","gallery_play_interval","gallery_pause_on_mouseover","gallery_control_keyboard","gallery_preserve_ratio","gallery_background_color","gallery_debug_errors","gallery_shuffle","gallery_urlajax","gallery_enable_tabs","gallery_enable_loadmore","gallery_enable_cache","gallery_initial_catid","objCustomOptions","isAllItemsPreloaded","isFreestyleMode","lastWidth","lastHeigh","handleResize","isPlayModePaused","playTimePassed","playTimeLastStep","playHandle","playStepInterval","objProgress","thumbsType","isYoutubePresent","isVimeoPresent","isHtml5VideoPresent","isSoundCloudPresent","isWistiaPresent","resizeDelay","isRunFirstTime","originalOptions","funcCustomHeight","__________INIT_GALLERY_______","getThemeFunction","themeFunction","defaultTheme","eval","resetOptions","checkForStartupErrors","throwErrorShowMessage","runGallery","htmlItems","cacheID","isCustomOptions","cacheItems","setSizeClass","fillItemsArray","loadAPIs","clearInitData","showErrorMessage","UGTabs","UGLoadMore","modifyInitParams","validateParams","setGalleryHtml","setHtmlObjectsProperties","runGalleryActually","setHeightByOriginalRatio","preloadBigImages","startPlayMode","storeLastSize","lastHeight","orig_ratio","max-width","min-width","fillItemByChild","objChild","itemLink","itemType","lasyLoadSrc","imageSrc","urlThumbMobile","urlImageMobile","isNewAdded","objPreloadImage","isBigImageLoadStarted","isBigImageLoadError","dataWidth","dataHeight","isImageMissing","isThumbMissing","objChildImage","objChildren","arrChildren","numIndex","preloadItemImage","checkPreloadItemImage","imageUrl","checkAllItemsStartedPreloading","preloadNearBigImages","lastItemIndex","nextItemIndex","__________END_INIT_GALLERY_______","__________EVENTS_____________","onSliderMouseEnter","onSliderMouseLeave","onKeyPress","charCode","wasAction","onGalleryResized","heightWasSet","onThumbsChange","onFullScreenChange","isFullscreen","onItemImageUpdated","onCurrentSlideImageLoadEnd","onGalleryMouseWheel","sliderIndex","retriggerEvent","keydown","__________GENERAL_______","htmlItemsArg","removeAllSizeClasses","objWrapper","newEvent","advanceNextStep","timeNow","timeDiff","isGalleryVisible","unselectSeletedItem","toFakeFullScreen","exitFakeFullscreen","sliderElement","getObjSlider","orig_width","orig_height","forceCarousel","___________SET_CONTROLS___________","toggleFullscreen","destroyFullscreenButton","togglePlayMode","destroyPlayButton","setTextContainers","objTitle","objDescription","showDisabledOverlay","hideDisabledOverlay","___________END_SET_CONTROLS___________","___________PLAY_MODE___________","resetPlaying","stopPlayMode","___________GENERAL_EXTERNAL___________","newItemIndex","toFullScreen","divGallery","exitFullScreen","noevent","isSmallWindow","changeItems","itemsContent","objNewItemsWrapper","arrIndexes","setFuncCustomHeight","__________EXTERNAL_EVENTS_______","arrParams","__________AJAX_REQUEST_______","ajaxRequest","successFunction","errorFunction","urlAjax","client_action","ajax","dataType","response","jqXHR","textStatus","errorThrown","responseText","requestNewItems","catID","checkCache","catid","objParams","lineNumber","stack","g_objOverlay","g_objNumbers","g_objTopPanel","lightbox_type","lightbox_show_textpanel","lightbox_textpanel_width","lightbox_hide_arrows_onvideoplay","lightbox_arrows_position","lightbox_arrows_offset","lightbox_arrows_inside_offset","lightbox_arrows_inside_alwayson","lightbox_overlay_color","lightbox_overlay_opacity","lightbox_top_panel_opacity","lightbox_show_numbers","lightbox_numbers_size","lightbox_numbers_color","lightbox_numbers_padding_top","lightbox_numbers_padding_right","lightbox_compact_closebutton_offsetx","lightbox_compact_closebutton_offsety","lightbox_close_on_emptyspace","topPanelHeight","initTextPanelHeight","isOpened","isRightNowOpened","putSlider","isCompact","fadeDuration","positionFrom","textPanelTop","textPanelLeft","isArrowsInside","isArrowsOnHoverMode","isSliderChangedOnce","isTopPanelEnabled","lightbox_slider_controls_always_on","lightbox_slider_enable_bullets","lightbox_slider_enable_arrows","lightbox_slider_enable_progress_indicator","lightbox_slider_enable_play_button","lightbox_slider_enable_fullscreen_button","lightbox_slider_enable_zoom_panel","lightbox_slider_enable_text_panel","lightbox_slider_scale_mode_media","lightbox_slider_scale_mode","lightbox_slider_loader_type","lightbox_slider_loader_color","lightbox_slider_transition","lightbox_slider_image_padding_top","lightbox_slider_image_padding_bottom","lightbox_slider_video_padding_top","lightbox_slider_video_padding_bottom","lightbox_textpanel_align","lightbox_textpanel_padding_top","lightbox_textpanel_padding_bottom","lightbox_slider_image_border","lightbox_textpanel_enable_title","lightbox_textpanel_enable_description","lightbox_textpanel_desc_style_as_title","lightbox_textpanel_enable_bg","lightbox_slider_video_enable_closebutton","lightbox_slider_enable_links","g_defaultsCompact","lightbox_slider_image_shadow","lightbox_textpanel_title_text_align","lightbox_textpanel_desc_text_align","lightbox_textpanel_padding_left","lightbox_textpanel_padding_right","refreshSliderItem","handlePanelHeight","newPanelHeight","textPanelHeight","handleCompactHeight","wrapperSize","textPanelSize","sliderOptions","imagePaddingBottom","handleCompactTextpanelSizes","showTextpanel","textPanelWidth","objNumbersSize","numbersLeft","setCompactTextpanelTop","showNumbers","isSliderImageInPlace","positionArrowsInside","isAnimation","isImageInPlace","isMouseInsideImage","hideArrows","leftArrowLeft","leftArrowTop","rightArrowLeft","rightArrowTop","objCssLeft","objCssRight","positionCloseButton","maxButtonLeft","closeButtonTop","closeButtonLeft","objSliderSize","objButtonSize","noStop","showCloseButton","hideCompactElements","hideNumbers","textWidth","positionTextPanelWide","sliderHeight","fromHover","updateTextPanelText","updateNumbersText","numCurrentItem","onSliderDragStart","onSliderAfterReturn","onSliderAfterPutImage","onSliderTransitionEnd","imagePaddingTop","onSliderClick","close","onPlayVideo","hideTopPanel","onStopVideo","showTopPanel","isScrollKey","onImageMouseEnter","onImageMouseLeave","onMouseMove","onMouseWheel","objVideo","initLightbox","cssNumbers","setProperties","click","UGCarousel","g_objCarouselWrapper","carousel_padding","carousel_space_between_tiles","carousel_navigation_numtiles","carousel_scroll_duration","carousel_scroll_easing","carousel_autoplay","carousel_autoplay_timeout","carousel_autoplay_direction","carousel_autoplay_pause_onhover","carousel_vertical_scroll_ondrag","PAUSE_PLAY","carouselMaxWidth","initTileWidth","initTileHeight","sideSpace","spaceActionSize","scrollShortDuration","scrollShortEasing","isPaused","resizeTiles","newTileHeight","optUpdate","positionTiles","realWidth","objTileOriginal","startAutoplay","pauseAutoplay","scrollToTile","fillSidesWithTiles","getTiles","getNumTilesInSpace","getNumTiles","getTile","numTile","validateTileNum","getNumTilesInCarousel","tileSize","addTiles","dir","anchorTile","arrNewTiles","numClones","arrClonedItems","itemToAdd","clonedTile","getTileClones","prepend","removeTiles","numTilesToRemove","arrTiles","isShort","scrollToNeerestTile","tile1Pos","tile2Pos","spaceLeft","spaceRight","getRemainSpaceRight","numItemsLeft","numItemsRight","numItemsRemoveLeft","numItemsRemoveRight","isPositioned","autoplayStep","scrollRight","unpauseAutoplay","stopAutoplay","getEstimatedHeight","tilesToScroll","numTilesInCarousel","setScrollLeftButton","setScrollRightButton","setPlayPauseButton","g_objSelect","tabs_type","tabs_container","tabs_class_selected","runTabs","change","onSelectChange","onTabClick","requestGalleryItems","classSelected","objTab","initTabs","UG_API","g_arrEvents","convertItemDataForOutput","API_INIT_FUNCTIONS","API_ON_EVENT","handlerFunction","notCache","togglePlay","enterFullscreen","resetZoom","numItem","reloadGallery","g_objButton","g_objLoader","g_objError","loadmore_container","showLoadmore","onLoadmoreClick","numitems","html_items","show_loadmore","errorText"],"mappings":"AAUA,SAAAA,gBAEA,IACAC,EAAAC,EAAAC,EACAC,EAAAC,EADAC,EAAA,IAAAC,iBACAC,EAAA,IAAAC,QAAAC,EAAA,IAAAC,WACAC,EAAA,IAAAC,YAAAC,EAAA,IAAAC,aAEAC,EAAA,CACAC,wBAAA,EACAC,wBAAA,IACAC,wBAAA,IACAC,sBAAA,EACAC,uBAAA,SACAC,gBAAA,MAGAC,EAAA,CACAC,cAAA,QAIAC,EAAA,CACAC,eAAA,GAOA,SAAAC,EAAAC,EAAAC,GAEAvB,EAAAsB,EAGAZ,EAAAc,OAAAC,OAAAf,EAAAO,GAGAP,EAAAc,OAAAC,OAAAf,EAAAa,GA4BA,WAEA,GAAAb,EAAAC,yBACAQ,EAAAC,eAAA,GAEA,OAAAV,EAAAK,wBACA,QACA,IAAA,SACA,MACA,IAAA,UACAf,EAAA0B,eACA,MACA,IAAA,OACAhB,EAAAiB,kBAAA,GAvCAC,GAGA5B,EAAA6B,WAAAnB,GAEAV,EAAA8B,mBAEAlC,EAAA0B,EAAAS,aAGApC,EAAA6B,OAAAF,GACAzB,EAAAD,EAAAC,aAGAK,EAAA8B,KAAAV,EAAAZ,GACAN,EAAA4B,KAAAV,EAAAZ,GAEAF,EAAAN,EAAA+B,mBA8DA,SAAAC,IAGApC,IACAA,EAAAqC,OAAA,EAAA,GACAtC,EAAAuC,OAAA1B,EAAAE,yBACAN,EAAA+B,aAAAvC,EAAA,SAAAY,EAAAG,0BAyFA,WAGAf,GAEAE,EAAAsC,QAAApC,EAAAqC,OAAAC,oBAAA,WAEA3C,EAAAuC,OAAA,QACAtC,EAAA2C,UAIAjB,OAAAhB,GAAAkC,GAAAlC,EAAA+B,OAAAI,WAAAC,GAEAjD,EAAA+C,GAAA1C,EAAAuC,OAAAM,6BAAAC,GAEAtB,OAAApB,GAAAsC,GAAAtC,EAAAmC,OAAAQ,cAAAC,GAtGAC,GAEA/C,EAAAgD,MACA9C,EAAA8C,MAQA,SAAAC,IA/CAtD,EAAAuD,SAAA,kBAEAvD,EAAAwD,OAAA,kEAGA,GAAAlC,EAAAC,gBACAvB,EAAAwD,OAAA,8DACAvD,EAAAD,EAAAyD,SAAA,wBACAnB,OAAA,EAAA,IAGApC,EAAAF,EAAAyD,SAAA,qBAGA5C,EAAAI,uBACAjB,EAAA0D,IAAA,CACAC,eAAA9C,EAAAI,sBAAA,KACA2C,gBAAA/C,EAAAI,sBAAA,OAGAZ,EAAAwD,QAAA3D,GACAK,EAAAuD,UA8BAzB,IA0BA,SAAAU,EAAAgB,EAAAC,GAEAA,EAAArC,OAAAqC,GAEA,IACAC,EADAtD,EAAAuD,cAAAF,GACAC,MAEA1D,EAAA4D,KAAAF,GAOA,SAAAhB,IAIA,GAFA/C,EAAA0C,OAEA3C,EAAA,CACAA,EAAAmE,OAEA,IACAC,EADA5D,EAAA6D,eAAArE,GACAsE,OAAA,GAEAvE,EAAAuC,OAAA8B,IAQA,SAAAlB,IAEA,OAAAtC,EAAAM,kBACAZ,EAAA4D,KAAAtD,EAAAM,iBACAN,EAAAM,gBAAA,MAiCAqD,KAAAC,QAAA,WAEA9C,OAAAhB,GAAA+D,IAAA/D,EAAA+B,OAAAI,YAEA3C,EAAAwE,aAAAtE,EAAAqC,OAAAC,oBAEA7C,EAAA4E,IAAAvE,EAAAuC,OAAAM,8BAEArB,OAAApB,GAAAmE,IAAAnE,EAAAmC,OAAAQ,eAEA7C,EAAAoE,UACAlE,EAAAkE,WAOAD,KAAAnB,IAAA,WAEAC,KAOAkB,KAAAI,SAAA,WAEAvE,EAAAwE,eAOAL,KAAArC,KAAA,SAAAV,EAAAC,GAEAF,EAAAC,EAAAC,ICtRA,SAAAoD,UAAAC,EAAAC,EAAAC,IAEA,IAAAF,IACAA,EAAA,SAEA,IAAAA,IACAA,EAAA,SAEA,IAAAG,EAAAH,EAEA,GAAA,iBAAAA,EAEA,IAAAI,QADAD,EAAA,GACAH,EAAA,CACA,IAAAK,EAAAL,EAAAI,MACAD,GAAA,IAAAC,KAAA,KAAAC,EAOA,GAHA,GAAAJ,GAAAC,IACAC,GAAA,IAAAG,KAAAC,UAEA,GAAAL,EAAA,CACA,IAAAM,EAAA5D,OAAA,eACA4D,EAAAC,MAAA,KAEAD,EAAAhD,UAAA,KACAgD,EAAAR,KAAA,IAGAG,EADAK,EAAAR,OACA,2BAAAG,EAGAvD,OAAA,eAAAyC,OAAAW,KAAAG,GAQA,SAAAO,UAAAC,GAEA,IAAAX,EAAA,GACA,IAAAI,QAAAO,EAAA,CACA,IAAAN,EAAAM,EAAAP,MACAJ,GAAAI,KAAA,MAAAC,EAAA,OAGAzD,OAAA,eAAAyC,OAAAW,KAAAA,GAQA,SAAAY,MAAAC,GAEA,oBAAAC,SACAA,QAAAC,IAAAF,GASA,SAAAlF,cAEA,IAAAqF,EAAA,KACAC,EAAAxB,KACAlD,EAAA,CACA2E,SAAA,EACAC,UAAA,GACAC,eAAA,EACAC,iBAAA,EACAC,UAAA,GACAC,UAAA,GACAC,cAAA,GACAC,cAAA,EACAC,sBAAA,KACAC,eAAA,IACAC,OAAA,MAgEA,SAAAC,EAAAC,EAAAC,EAAAC,GACAD,EAAAE,iBACAF,EAAAE,iBAAAH,EAAAE,GAAA,GACAD,EAAAG,YACAH,EAAAG,YAAA,KAAAJ,EAAAE,GAGAD,EAAAD,GAAAE,EApEAvC,KAAA0C,SAAA,GAEA1C,KAAA2C,kCAAA,aAQA3C,KAAA4C,aAAA,SAAAC,EAAAC,GAEA,GAAAD,EAAAE,kBACAF,EAAAE,yBACA,GAAAF,EAAAG,qBACAH,EAAAG,4BACA,GAAAH,EAAAI,wBACAJ,EAAAI,8BACA,CAAA,IAAAJ,EAAAK,oBAGA,OAAA,EAFAL,EAAAK,sBAKA,OAAA,GAQAlD,KAAAmD,eAAA,WACA,GAAA,GAAA3B,EAAA4B,eACA,OAAA,EAEA,GAAAC,SAAAF,eACAE,SAAAF,sBAEA,GAAAE,SAAAC,iBACAD,SAAAC,wBAEA,GAAAD,SAAAE,oBACAF,SAAAE,2BAEA,GAAAF,SAAAG,qBACAH,SAAAG,2BAEA,CAAA,IAAAH,SAAAI,iBAIA,OAAA,EAHAJ,SAAAI,mBAMA,OAAA,GAqBAzD,KAAA0D,yBAAA,SAAAnB,GAEAc,SAAA,uBACAjB,EAAA,yBAAAiB,SAAAd,GACAc,SAAA,iBACAjB,EAAA,qBAAAiB,SAAAd,GACAc,SAAA,oBACAjB,EAAA,sBAAAiB,SAAAd,GAEAH,EAAA,mBAAAiB,SAAAd,IAOAvC,KAAA2D,6BAAA,WAEAxG,OAAAkG,UAAAO,OAAA,oBACAzG,OAAAkG,UAAAO,OAAA,uBACAzG,OAAAkG,UAAAO,OAAA,0BACAzG,OAAAkG,UAAAO,OAAA,uBAOA5D,KAAA6D,qBAAA,WAIA,OAFAR,SAAAS,mBAAAT,SAAAU,sBAAAV,SAAAW,yBAAAX,SAAAY,qBAQAjE,KAAAoD,aAAA,WAEA,IAAAA,EAAAC,SAAAa,YAAAb,SAAAc,eAAAd,SAAAe,oBAAAf,SAAAY,oBAOA,OAFAb,IAHAA,GAUApD,KAAAqE,gCAAA,aAKArE,KAAAsE,iBAAA,WAEA,GAAA,OAAA/C,EACA,OAAAA,EAEA,IAAAgD,EAAA,CAAA,SAAA,MAAA,KAAA,KAEAC,EAAAnB,SAAAoB,cAAA,OAEA,IAAA,IAAAhF,KAAA8E,EAAA,CACA,IAAAG,EAAAH,EAAA9E,GAEA,GAAAiF,EAAA,cAAAF,EAAAG,MAGA,OAFAD,EAAAA,EAAAE,cACArD,EAAAmD,EACA,EAKA,OADAnD,EAAA,GACA,IAOAvB,KAAA6E,gCAAA,SAAAC,EAAAC,EAAAC,GAEA,IAAAC,EAAAH,EAAAI,SAEAC,EAAA3D,EAAA4D,qBAAAN,GAIA,OAFAtD,EAAA6D,yBAAAJ,EAAAE,EAAAnE,MAAAmE,EAAApH,OAAAgH,EAAAC,IAUAhF,KAAAqF,yBAAA,SAAAJ,EAAAK,EAAAC,EAAAR,EAAAC,EAAAQ,EAAAC,GAEA,IAAAT,EACAA,EAAA,GAEA,IAAAU,EAAA,GAEA,QAAA,IAAAF,EACAA,EAAAP,EAAAjE,QAEA,QAAA,IAAAyE,EACAA,EAAAR,EAAAlH,SAEAiH,EAAAW,eACAH,GAAAR,EAAAW,cAEAX,EAAAY,gBACAJ,GAAAR,EAAAY,eAEAZ,EAAAa,cACAJ,GAAAT,EAAAa,aAEAb,EAAAc,iBACAL,GAAAT,EAAAc,gBAEA,IAAAC,EAAA,KACAC,EAAA,OACAC,EAAA,KACAC,EAAA,KACAvB,EAAA,iCAEA,GAAAW,EAAA,GAAAC,EAAA,EAAA,CAIA,GAAA,QAAAR,GAAAO,EAAAE,GAAAD,EAAAE,EAIAS,GAAAV,GADAO,EAAAT,IACA,EACAW,GAAAR,GAHAO,EAAAT,IAGA,OAEA,GAAA,QAAAR,EAAA,EAIAgB,GADAC,EAAAP,IAFAU,EAAAb,EAAAC,IAKAC,GAEAQ,GADAD,EAAAP,GACAW,EAGAD,EAAA,EACAD,EAAApF,KAAAuF,OAAAJ,EAAAP,GAAA,GAAA,KAEAQ,EAAA,EACAC,EAAArF,KAAAuF,OAAAL,EAAAP,GAAA,GAAA,QAIA,CACA,IAAAW,EAGAF,EAAA,EACAC,GAAAV,GAFAO,GADAC,EAAAP,IADAU,EAAAb,EAAAC,KAIA,EAEA,WAAAR,GAAAgB,EAAAP,IAGAU,EAAA,EACAD,GAAAR,GAFAO,GADAD,EAAAP,GACAW,IAEA,GAKAJ,EAAAlF,KAAAwF,MAAAN,GACAC,EAAAnF,KAAAwF,MAAAL,GAEAC,EAAApF,KAAAwF,MAAAJ,GACAC,EAAArF,KAAAwF,MAAAH,GAEAvB,EAAA,qBAsBA,OAlBAK,EAAAa,cACAI,GAAAjB,EAAAa,aAEAb,EAAAW,eACAO,GAAAlB,EAAAW,cAEAD,EAAAK,WAAAA,EACAL,EAAAM,YAAAA,EACAN,EAAAO,SAAAA,EACAP,EAAAQ,UAAAA,EACAR,EAAAY,WAAAJ,EAAAH,EAEAL,EAAAa,YADA,GAAAN,GAAA,QAAAD,EACA,KAEAC,EAAAD,EAEAN,EAAAf,MAAAA,EAEA,GAQA3E,KAAAwG,yBAAA,SAAA3D,EAAAmC,GAEA,IAAAE,EAAArC,EAAAqC,SACAuB,EAAAjF,EAAA1B,eAAA+C,GACA6D,EAAAlF,EAAA1B,eAAAoF,GAEAyB,EAAAD,EAAA1F,MACA4F,EAAAF,EAAA3I,OAEAiH,QAAA6B,IAAA7B,EAAAa,cACAe,GAAA5B,EAAAa,aAEAb,QAAA6B,IAAA7B,EAAAc,iBACAc,GAAA5B,EAAAc,gBAEAd,QAAA6B,IAAA7B,EAAAW,eACAgB,GAAA3B,EAAAW,cAEAX,QAAA6B,IAAA7B,EAAAY,gBACAe,GAAA3B,EAAAY,eAGA,IAAAlF,EAAA,GAWA,OAVAA,EAAAoG,KAAAjG,KAAAuF,OAAAO,EAAAF,EAAAzF,OAAA,GACAN,EAAAqG,IAAAlG,KAAAuF,OAAAQ,EAAAH,EAAA1I,QAAA,GAEAiH,QAAA6B,IAAA7B,EAAAa,cACAnF,EAAAqG,KAAA/B,EAAAa,aAEAb,QAAA6B,IAAA7B,EAAAW,eACAjF,EAAAoG,MAAA9B,EAAAW,cAGA,GAQA3F,KAAAgH,sBAAA,SAAAnE,EAAAoE,GAEA,IAAAA,EACAA,GAAA,EAEA,IAAAR,EAAAjF,EAAA1B,eAAA+C,GACAnC,EAAA,GAaA,OAXAA,EAAAwG,EAAAT,EAAAzF,MAAA,EACAN,EAAAyG,EAAAV,EAAA1I,OAAA,EAEA,GAAAkJ,IACAvG,EAAAwG,GAAAT,EAAAK,KACApG,EAAAyG,GAAAV,EAAAM,KAGArG,EAAAwG,EAAArG,KAAAuF,MAAA1F,EAAAwG,GACAxG,EAAAyG,EAAAtG,KAAAuF,MAAA1F,EAAAyG,GAEA,GASAnH,KAAAoH,iBAAA,SAAAC,EAAAxE,GAEA,IAAAnC,EAAA,CACA4G,MAAAD,EAAAC,MACAC,MAAAF,EAAAE,MACAC,QAAAH,EAAAG,QACAC,QAAAJ,EAAAI,SAaA,GAVAJ,EAAAK,eAAAL,EAAAK,cAAAC,SAAAN,EAAAK,cAAAC,QAAAC,OAAA,IACAlH,EAAA4G,MAAAD,EAAAK,cAAAC,QAAA,GAAAL,MACA5G,EAAA6G,MAAAF,EAAAK,cAAAC,QAAA,GAAAJ,MACA7G,EAAA8G,QAAAH,EAAAK,cAAAC,QAAA,GAAAH,QACA9G,EAAA+G,QAAAJ,EAAAK,cAAAC,QAAA,GAAAF,SAMA5E,EAAA,CACA,IAAAgF,EAAAhF,EAAAiF,SACApH,EAAAqH,OAAArH,EAAA4G,MAAAO,EAAAf,KACApG,EAAAsH,OAAAtH,EAAA6G,MAAAM,EAAAd,IAGA,OAAA,GAMA/G,KAAAiI,qBAAA,SAAAC,EAAArF,GAGA,IAAAsF,EAAA,CAAAjB,EAAAgB,EAAAZ,MAAAH,EAAAe,EAAAX,OAIA,OAFA/F,EAAA4G,qBAAAD,EAAAtF,IASA7C,KAAAoI,qBAAA,SAAAF,EAAArF,GAEA,IAAAwF,EAAA,GACAR,EAAAhF,EAAAiF,SAKA,OAHAO,EAAAnB,EAAArG,KAAAuF,MAAA8B,EAAAhB,EAAAW,EAAAf,MACAuB,EAAAlB,EAAAtG,KAAAuF,MAAA8B,EAAAf,EAAAU,EAAAd,KAEA,GAQA/G,KAAAoF,qBAAA,SAAAN,EAAAQ,EAAAC,GAEA,QAAA,IAAAD,QAAA,IAAAC,EACA,MAAA,CAAAvE,MAAAsE,EAAAvH,OAAAwH,GAEA,IAAA+C,EAAAxD,EAAA,GAEA,QAAA,IAAAwD,EACA,MAAA,IAAAC,MAAA,gDAEA,IAAA7H,EAAA,GAEA,QAAA,IAAA4H,EAAAE,aAAA,CAGA,GAAA,iBAAA1D,EAAAvF,KAAA,gBAIA,OAHAmB,EAAA,IACAM,MAAA8D,EAAAvF,KAAA,gBACAmB,EAAA3C,OAAA+G,EAAAvF,KAAA,iBACA,EAIA,IAAAkJ,EAAA,IAAAC,MAGA,OAFAD,EAAAE,IAAAL,EAAAK,IAEAF,EAAAG,UACAlI,EAAAM,MAAAyH,EAAAzH,MACAN,EAAA3C,OAAA0K,EAAA1K,OAGA+G,EAAAvF,KAAA,eAAAmB,EAAAM,OACA8D,EAAAvF,KAAA,gBAAAmB,EAAA3C,QACA,GAIA,CAAAiD,MAAA,EAAAjD,OAAA,GAOA,OAHA2C,EAAAM,MAAAsH,EAAAE,aACA9H,EAAA3C,OAAAuK,EAAAO,cAEA,GASA7I,KAAA8I,cAAA,SAAAhE,GAEA,IAAAiE,EAAAvH,EAAA4D,qBAAAN,GAIA,OAHAtD,EAAA1B,eAAAgF,GACA9D,MAAA+H,EAAA/H,OAQAhB,KAAAgJ,iBAAA,SAAAlE,GACA,IAAAG,EAAAH,EAAAI,SACA+D,EAAAzH,EAAA1B,eAAAgF,GACAoE,EAAA1H,EAAA1B,eAAAmF,GAEA,OAAAgE,EAAAjI,OAAAkI,EAAAlI,OAAAiI,EAAAlL,QAAAmL,EAAAnL,QASAiC,KAAAF,eAAA,SAAA+C,GAEA,QAAAgE,IAAAhE,EACA,MAAA,IAAA0F,MAAA,iCAGA,IAAArH,EAAA2B,EAAAsG,WAWA,OATAjI,EAAAnD,OAAA8E,EAAAuG,cACAlI,EAAAF,MAAA6B,EAAAwG,aAEAnI,EAAA4F,KAAAjG,KAAAuF,MAAAlF,EAAA4F,MACA5F,EAAA6F,IAAAlG,KAAAuF,MAAAlF,EAAA6F,KAEA7F,EAAAoI,MAAApI,EAAA4F,KAAA5F,EAAAF,MACAE,EAAAnB,OAAAmB,EAAA6F,IAAA7F,EAAAnD,OAEA,GAQAiC,KAAAuJ,0BAAA,SAAA1G,GAEA,IAAAoC,EAAApC,EAAAqC,SACAsE,EAAAhI,EAAA1B,eAAA+C,GACA6D,EAAAlF,EAAA1B,eAAAmF,GAEA,OAAAuE,EAAAxI,MAAA0F,EAAA1F,OAAAwI,EAAAzL,OAAA2I,EAAA3I,QAWAiC,KAAAyJ,qBAAA,SAAAvB,EAAAzB,GAGA,OAAA,IADAyB,EAAAhB,GAAA,GAAAgB,EAAAhB,EAAAT,EAAAzF,QAKA,IADAkH,EAAAf,GAAA,GAAAe,EAAAf,EAAAV,EAAA1I,SAaAiC,KAAA0J,sBAAA,SAAA7G,EAAA8G,EAAA7B,EAAA7C,GAEA,IAAAA,EACAA,EAAApC,EAAAqC,SAEA,GAAA,iBAAArC,EACA,IAAA+G,EAAA,CACA5I,MAAA6B,EACA9E,OAAA8E,QAGA+G,EAAApI,EAAA1B,eAAA+C,GAEA,IAAAgH,EAAArI,EAAA1B,eAAAmF,GAGA,OAAA0E,GACA,IAAA,MACA,IAAA,OACAA,EAAA,EACA7B,IACA6B,GAAA7B,GACA,MACA,IAAA,SACA6B,EAAA9I,KAAAuF,OAAAyD,EAAA7I,MAAA4I,EAAA5I,OAAA,GACA8G,IACA6B,GAAA7B,GAEA,MACA,IAAA,QACA6B,EAAAE,EAAA7I,MAAA4I,EAAA5I,MACA8G,IACA6B,GAAA7B,GACA,MACA,IAAA,SACA6B,EAAA9I,KAAAuF,OAAAyD,EAAA9L,OAAA6L,EAAA7L,QAAA,GACA+J,IACA6B,GAAA7B,GACA,MACA,IAAA,SACA6B,EAAAE,EAAA9L,OAAA6L,EAAA7L,OACA+J,IACA6B,GAAA7B,GAIA,OAAA,GAKA9H,KAAA8J,mCAAA,aASA9J,KAAA+J,sBAAA,SAAAjF,EAAAkF,EAAAC,EAAA/B,EAAAnD,EAAAmF,EAAAlF,GAEA,IAAAiF,EACAA,EAAA,IAEA,IAAAlF,EACAA,EAAA,MAEA,IASAoF,EAAAC,EAAAC,EAAAC,EATAC,EAAAN,EAEAhF,EAAAH,EAAAI,SAEAuB,EAAAjF,EAAA1B,eAAAgF,GACA0F,EAAAhJ,EAAA4D,qBAAAN,GAGA2F,GAAA,EACAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAEA,GAAA3C,EAEA,CACA,IAAA4C,EAAAtJ,EAAAyG,qBAAAC,EAAApD,GACA2F,EAAAjJ,EAAAiI,qBAAAqB,EAAArE,GAGAmE,EAAAE,EAAA5D,EACA2D,EAAAC,EAAA3D,OAPAsD,GAAA,EAUA,GAAA,GAAAA,EAAA,CACA,IAAAM,EAAAvJ,EAAAwF,sBAAAlC,GACA8F,EAAAG,EAAA7D,EACA2D,EAAAE,EAAA5D,EAIA,GAAA,GAAA6C,EAEAG,EAAA1D,EAAA1I,OAAAwM,EACAH,EAAA3D,EAAAzF,MAAAuJ,EAEA,GAAAK,IACAF,IAAAE,EAAAL,EAAAK,IAEA,GAAAC,IACAF,IAAAE,EAAAN,EAAAM,QAGA,CAQA,GANAV,EAAA1D,EAAA1I,OAAAwM,GACAH,EAAA3D,EAAAzF,MAAAuJ,GAEA/I,EAAA6D,yBAAAJ,EAAAuF,EAAAxJ,MAAAwJ,EAAAzM,OAAAgH,EAAAC,GAGAe,WAGA,OADAvE,EAAAwJ,oBAAAlG,EAAA0F,EAAAxJ,MAAAwJ,EAAAzM,OAAAgH,EAAAC,IACA,EAGA,GAAAyF,IACA,GAAAG,IACAF,IAAAE,EAAAL,EAAAK,IAEA,GAAAC,IACAF,IAAAE,EAAAN,EAAAM,KAMA,GAAAX,EAAA,CACA,IAAAe,EAAA,EAIA,GAHA,GAAAT,EAAAxJ,QACAiK,EAAAb,EAAAI,EAAAxJ,OAEAiK,EAAAf,EACA,OAAA,EAUA,GANA1I,EAAA0J,eAAApG,EAAAsF,EAAAD,GAMA,GAAAH,GAAA,GAAAS,EAAA,CACA,IAAAU,EAAA3J,EAAAgF,yBAAA1B,GACAuF,EAAAc,EAAArE,KACAwD,EAAAa,EAAApE,SAGAsD,EAAA5D,EAAAK,KAAA4D,EACAJ,EAAA7D,EAAAM,IAAA4D,EAKA,OAFAnJ,EAAAxD,aAAA8G,EAAAuF,EAAAC,IAEA,GAUAtK,KAAAhC,aAAA,SAAA6E,EAAAiE,EAAAC,EAAAqE,EAAAC,EAAApG,GAGA,GAAA,GAAA9H,OAAAmO,UAAAxE,IAAA,GAAA3J,OAAAmO,UAAAvE,GAAA,CAEA,IAAA9B,EACAA,EAAApC,EAAAqC,SAEA,IAAA0E,EAAApI,EAAA1B,eAAA+C,GACAgH,EAAArI,EAAA1B,eAAAmF,GAIA,GAAA,GAAA9H,OAAAmO,UAAAxE,GAEA,OAAAA,GACA,IAAA,OACAA,EAAA,EACAsE,IACAtE,GAAAsE,GACA,MACA,IAAA,SACAtE,EAAAjG,KAAAuF,OAAAyD,EAAA7I,MAAA4I,EAAA5I,OAAA,GACAoK,IACAtE,GAAAsE,GACA,MACA,IAAA,QACAtE,EAAA+C,EAAA7I,MAAA4I,EAAA5I,MACAoK,IACAtE,GAAAsE,GAMA,GAAA,GAAAjO,OAAAmO,UAAAvE,GAEA,OAAAA,GACA,IAAA,MACAA,EAAA,EACAsE,IACAtE,GAAAsE,GACA,MACA,IAAA,SACA,IAAA,SACAtE,EAAAlG,KAAAuF,OAAAyD,EAAA9L,OAAA6L,EAAA7L,QAAA,GACAsN,IACAtE,GAAAsE,GACA,MACA,IAAA,SACAtE,EAAA8C,EAAA9L,OAAA6L,EAAA7L,OACAsN,IACAtE,GAAAsE,GAOA,IAAAE,EAAA,CACApC,SAAA,WACAqC,OAAA,OAGA,OAAA1E,IACAyE,EAAAzE,KAAAA,GAEA,OAAAC,IACAwE,EAAAxE,IAAAA,GAEAlE,EAAA3D,IAAAqM,IAQAvL,KAAAyL,2BAAA,SAAA5I,GAEArB,EAAAxD,aAAA6E,EAAA,SAAA,WAOA7C,KAAA0L,0BAAA,SAAA7I,EAAAiE,EAAAC,EAAA/F,EAAAjD,GAEA,IAAAwN,EAAA,CACAvK,MAAAA,EAAA,KACAjD,OAAAA,EAAA,KACA+I,KAAAA,EAAA,KACAC,IAAAA,EAAA,KACAoC,SAAA,WACAqC,OAAA,OAGA3I,EAAA3D,IAAAqM,IAMAvL,KAAAkL,eAAA,SAAArI,EAAA7B,EAAAjD,GAEA,IAAAwN,EAAA,CACAvK,MAAAA,EAAA,MAGAjD,MAAAA,IACAwN,EAAA,OAAAxN,EAAA,MAEA8E,EAAA3D,IAAAqM,IAOAvL,KAAA2L,uBAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAEA,IAAAvF,EAAAmF,EAAAzC,WAEA,GAAAtC,MAAAJ,EACA,MAAA,IAAA8B,MAAA,kCAGA,IAAAuD,GACArF,EAAA1I,OAAA6N,EAAAxC,cACA3C,EAAAzF,MAAA4K,EAAAvC,eAEA5C,EAAA1I,OAAA6N,EAAA7N,SACA0I,EAAAzF,MAAA4K,EAAA5K,SAGAyF,EAAAK,KAAAjG,KAAAuF,MAAAK,EAAAK,MACAL,EAAAM,IAAAlG,KAAAuF,MAAAK,EAAAM,KAEAgF,IACAtF,EAAAK,MAAAiF,GAEAC,IACAvF,EAAAM,KAAAiF,GAEAxK,EAAAkK,0BAAAG,EAAApF,EAAAK,KAAAL,EAAAM,IAAAN,EAAAzF,MAAAyF,EAAA1I,SASAiC,KAAAiM,uBAAA,SAAAC,EAAAjH,EAAAK,EAAAC,EAAAR,EAAAC,GACA,IAAA9D,EAAAM,EAAA6D,yBAAAJ,EAAAK,EAAAC,EAAAR,EAAAC,GAGAsD,EAAA,OAqCA,OAnCA,OAAApH,EAAA6E,aACAuC,GAAA,aAAApH,EAAA6E,WAAA,IACA7E,EAAAyD,OAAA,SAAAzD,EAAA6E,WAAA,KAGA,MAAA7E,EAAA8E,cAEA,QAAA9E,EAAA8E,aACAsC,GAAA,cAAApH,EAAA8E,YAAA,IACA9E,EAAAyD,OAAA,UAAAzD,EAAA8E,YAAA,MAEAsC,GAAA,cAAApH,EAAA8E,YAAA,IACA9E,EAAAyD,OAAA,UAAAzD,EAAA8E,YAAA,QAKA,OAAA9E,EAAA+E,WACA/E,EAAAyD,OAAA,OAAAzD,EAAA+E,SAAA,OAEA,OAAA/E,EAAAgF,YACAhF,EAAAyD,OAAA,QAAAzD,EAAAgF,UAAA,OAGAgG,EAAA1K,EAAA2K,kBAAAD,GAEA5D,GAAA,WAAApH,EAAAyD,MAAA,IACA2D,GAAA,SAAA4D,EAAA,IACA5D,GAAA,IAEArD,EAAA1E,KAAA+H,GAGArD,EAAAhG,SAAA,QAUAe,KAAAoM,sBAAA,SAAAtH,EAAAG,EAAAoH,GAEA,GAAA,iBAAApH,EACA,IAAA0B,EAAA1B,EACA2B,EAAAyF,OAEA1F,EAAA1B,EAAAoE,aACAzC,EAAA3B,EAAAmE,cAGA,IAAAoB,EAAAhJ,EAAA4D,qBAAAN,GAKAqB,EAHAqE,EAAAxJ,MACAwJ,EAAAzM,OAIAuO,EAAA1F,EACA2F,EAAAD,EAAAnG,EACAqG,EAAA,EAAAC,EAAA,EAEAF,EAAA5F,GAEA2F,GADAC,EAAA5F,GACAR,EAGAsG,EAAA,EACAD,EAAA3L,KAAAuF,OAAAkG,EAAA1F,GAAA,GAAA,KAEA4F,EAAA,EACAC,EAAA5L,KAAAuF,OAAAmG,EAAA5F,GAAA,GAAA,IAGA4F,EAAA1L,KAAAuF,MAAAmG,GACAD,EAAAzL,KAAAuF,MAAAkG,GAEAxH,EAAA5F,IAAA,CAAA8B,MAAAuL,EAAA,KACAxO,OAAAuO,EAAA,KACAxF,KAAA2F,EAAA,KACA1F,IAAAyF,EAAA,QAUAxM,KAAAgL,oBAAA,SAAAlG,EAAAQ,EAAAC,EAAAR,EAAAC,GAEA,IAAAC,EAAAH,EAAAI,SAEAhE,EAAAM,EAAA6D,yBAAAJ,EAAAK,EAAAC,EAAAR,EAAAC,GAEA0H,GAAA,EAEAnB,EAAA,GAiCA,OA/BA,OAAArK,EAAA6E,aACA2G,GAAA,EACA5H,EAAA6H,WAAA,SACApB,EAAA,MAAArK,EAAA6E,WAAA,MAGA,MAAA7E,EAAA8E,cACA0G,GAAA,EACA5H,EAAA6H,WAAA,UACApB,EAAA,OAAArK,EAAA8E,YAAA,MAGA,OAAA9E,EAAA+E,WACAyG,GAAA,EACAnB,EAAAxE,IAAA7F,EAAA+E,SAAA,MAGA,OAAA/E,EAAAgF,YACAwG,GAAA,EACAnB,EAAAzE,KAAA5F,EAAAgF,UAAA,MAGA,GAAAwG,IAEAnB,EAAApC,SAAA,WACAoC,EAAAC,OAAA,UAEA1G,EAAA5F,IAAAqM,IAIA,GAOAvL,KAAA4M,mBAAA,SAAA9H,EAAA/G,EAAAuH,EAAAC,GAEA,IAAAiF,EAAAhJ,EAAA4D,qBAAAN,EAAAQ,EAAAC,GAEAY,EAAAqE,EAAAxJ,MAAAwJ,EAAAzM,OACAiD,EAAAH,KAAAuF,MAAArI,EAAAoI,GACApI,EAAA8C,KAAAuF,MAAArI,GAEAyD,EAAA0J,eAAApG,EAAA9D,EAAAjD,IAOAiC,KAAA6M,kBAAA,SAAA/H,EAAA9D,EAAAsE,EAAAC,GAEA,IAAAiF,EAAAhJ,EAAA4D,qBAAAN,EAAAQ,EAAAC,GAEAY,EAAAqE,EAAAxJ,MAAAwJ,EAAAzM,OAEAA,EAAA8C,KAAAuF,MAAApF,EAAAmF,GACAnF,EAAAH,KAAAuF,MAAApF,GAEAQ,EAAA0J,eAAApG,EAAA9D,EAAAjD,IAQAiC,KAAA8M,4BAAA,SAAAhI,EAAAQ,EAAAC,EAAAwH,EAAAC,EAAAjI,GAEA,IAAAE,EAAAH,EAAAI,SACA2E,EAAArI,EAAA1B,eAAAmF,GAEA4E,EAAA7I,MAAA+L,IACAA,EAAAlD,EAAA7I,OAEA6I,EAAA9L,OAAAiP,IACAA,EAAAnD,EAAA9L,QAEA,IAmBAkP,EAnBA/L,EAAAM,EAAA6D,yBAAA,KAAAC,EAAAC,EAAAR,EAAA,KAAAgI,EAAAC,GAEAjH,EAAAgH,EACA/G,EAAAgH,EAEAE,EAAAhM,EAAAgF,UACAiH,EAAAjM,EAAAgF,UACAkH,EAAAlM,EAAA+E,SACAoH,EAAAnM,EAAA+E,SACAC,EAAArF,KAAAuF,OAAAyD,EAAA7I,MAAA+L,GAAA,GACA9G,EAAApF,KAAAuF,OAAAyD,EAAA9L,OAAAiP,GAAA,GAIA,IADAC,EAAAF,GADA7L,EAAA6E,WAAAmH,EAAAC,MAGAA,GAAAF,GAKA,IADAA,EAAAD,GAFA9L,EAAA8E,YAAAoH,EAAAC,MAIAA,GAAAJ,GAGAnI,EAAA6H,WAAA,SACA7H,EAAA6H,WAAA,UAEA,IAAApB,EAAA,CACApC,SAAA,WACAqC,OAAA,WAGAD,EAAA,MAAAxF,EAAA,KACAwF,EAAA,OAAAvF,EAAA,KACAuF,EAAA,KAAArF,EAAA,KACAqF,EAAA,IAAAtF,EAAA,KACAsF,EAAA,gBAAA2B,EAAA,KACA3B,EAAA,eAAA6B,EAAA,KACA7B,EAAA,iBAAA4B,EAAA,KACA5B,EAAA,kBAAA8B,EAAA,KAEAvI,EAAA5F,IAAAqM,GAIA,IAAA+B,EAAA,GAGA,OAFAA,EAAA,WAAAvH,EACAuH,EAAA,YAAAtH,EACA,GAOAhG,KAAAuN,YAAA,SAAA1K,EAAA2K,EAAAC,GAEA5K,EAAAjD,OAAA9B,OAAA,EAAA,GAEA0P,GACAA,EAAA5N,OAAA9B,OAAA,EAAA,GAEA2P,GACAA,EAAA7N,OAAA9B,OAAA,EAAA,IAKAkC,KAAA0N,2CAAA,aAKA1N,KAAA2N,cAAA,SAAAC,EAAAC,GACA,IAAAA,EACAA,EAAA,qBAEA,GAAArM,EAAAsM,iBAAAF,EAAAC,IACAD,EAAA7O,SAAA8O,IASA7N,KAAA+N,2BAAA,SAAAC,EAAAtJ,EAAAuJ,GAEA,IAAAvJ,EACA,OAAA,EAEA,IAAAwJ,EAAA,GAaA,OAXA/Q,OAAAgR,KAAAH,GAAA,SAAAI,EAAAC,GAEA,GAAA,IAAAD,EAAAE,QAAA5J,EAAA,IAAAuJ,EAAA,KAAA,CACA,IAAAM,EAAAH,EAAAI,QAAA9J,EAAA,IAAAuJ,EAAA,IAAAA,EAAA,KACAC,EAAAK,GAAAF,OAEAH,EAAAE,GAAAC,KAKA,GAOArO,KAAAyO,aAAA,SAAAb,EAAAC,GACA,IAAAA,EACAA,EAAA,qBAEA,GAAArM,EAAAsM,iBAAAF,EAAAC,IACAD,EAAAc,YAAAb,IAOA7N,KAAA8N,iBAAA,SAAAF,EAAAC,GACA,IAAAA,EACAA,EAAA,qBAEA,QAAAD,EAAAe,SAAAd,IAQA7N,KAAA4O,gCAAA,aAMA5O,KAAA6O,iBAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAArO,EAAAsO,GACA,IAAAA,EACAA,GAAA,EAaA,OAVAtO,EAAAkO,GAAAC,EAAAD,KADAlO,EAAAoO,IAAAC,EAAAD,IAGA,GAAAE,IACAtO,EAAAkO,IACAlO,EAAAkO,GAEAlO,EAAAmO,IACAnO,EAAAmO,IAGA,GAQA/O,KAAAmP,mBAAA,SAAAL,EAAAC,EAAAC,EAAAC,EAAAG,GAKA,OAFAA,EAAAN,GAAAG,EAAAD,KADAI,EAAAN,IAAAC,EAAAD,KAUA9O,KAAAqP,YAAA,SAAAC,EAAAC,EAAAC,EAAAC,GAIA,OAFA5O,KAAAuF,MAAAvF,KAAA6O,KAAA7O,KAAA8O,KAAAH,EAAAF,IAAAE,EAAAF,IAAAG,EAAAF,IAAAE,EAAAF,OASAvP,KAAA4P,eAAA,SAAAN,EAAAC,EAAAC,EAAAC,GACA,IAAA/O,EAAA,GAIA,OAHAA,EAAAwG,EAAAoI,EAAAzO,KAAAuF,OAAAoJ,EAAAF,GAAA,GACA5O,EAAAyG,EAAAoI,EAAA1O,KAAAuF,OAAAqJ,EAAAF,GAAA,GAEA,GASAvP,KAAA6P,mBAAA,SAAAC,EAAAC,EAAAC,GAEA,OADAnP,KAAAwF,OAAAyJ,EAAAE,IAAAD,EAAAC,KASAhQ,KAAAiQ,wBAAA,SAAAH,EAAAC,EAAAC,GAEA,OADAnP,KAAAuF,OAAA0J,EAAAE,IAAAD,EAAAC,KAOAhQ,KAAAkQ,mBAAA,SAAAC,EAAAC,EAAAJ,GAEA,OADAG,EAAAC,GAAAD,EAAA,GAAAH,GAQAhQ,KAAAqQ,mBAAA,SAAAP,EAAAK,EAAAH,GAGA,OAFAnP,KAAAwF,OAAAyJ,GAAAK,EAAA,GAAAH,GAAAG,IASAnQ,KAAAsQ,QAAA,SAAAC,EAAAC,EAAAC,GAIA,OAFAF,GAAAC,EAAAC,IASAzQ,KAAA0Q,cAAA,SAAAC,EAAAlR,GAEA,OADAA,EAAAkR,GAQA3Q,KAAA4Q,iBAAA,SAAAnR,EAAAkR,GAEA,IAAAE,EAAAhQ,KAAAwF,MAAA5G,EAAAkR,GAGA,MAAA,CAAAJ,IAFA1P,KAAAwF,MAAA5G,EAAAkR,GAEAE,IAAAA,IAOA7Q,KAAA8Q,iBAAA,SAAAD,EAAAN,EAAAI,GAEA,OAAAE,EAAA,GACA,EAEAN,EAAA,GACA,EAEAM,EAAAF,EAAAJ,GAOAvQ,KAAA+Q,uBAAA,SAAAtR,EAAAkR,GACA,IAAAzP,EAAAM,EAAAoP,iBAAAnR,EAAAkR,GAEA,OADAnP,EAAAsP,iBAAA5P,EAAA2P,IAAA,EAAA3P,EAAAqP,IAAAI,IAOA3Q,KAAAgR,uBAAA,SAAAvR,EAAAkR,GACA,IAAAzP,EAAAM,EAAAoP,iBAAAnR,EAAAkR,GAEA,OADAnP,EAAAsP,iBAAA5P,EAAA2P,IAAA,EAAA3P,EAAAqP,IAAAI,IAKA3Q,KAAAiR,gCAAA,aAKAjR,KAAAkR,cAAA,SAAA9C,EAAAxN,GAEAzD,OAAAoC,KAAA8D,SAAA8N,KAAA/C,EAAAxN,IAOAZ,KAAAoR,cAAA,SAAAhD,GAIA,OAFAjR,OAAAoC,KAAA8D,SAAA8N,KAAA/C,IAKApO,KAAAqR,sCAAA,aAMArR,KAAAsR,gBAAA,SAAAC,GAEA,GAAA,GAAA/P,EAAAG,gBACA,OAAA,KAEA,IAAA6P,EAAAhQ,EAAAiQ,mBAAAF,GAwBA,GAlBA,OAAAC,EAAAE,YAEA7Q,KAAA8O,IAAA6B,EAAAG,YANA,GAOAH,EAAAE,UAAA,MAEA7Q,KAAA8O,IAAA6B,EAAAI,YARA,IAQA/Q,KAAA8O,IAAA6B,EAAAI,YAAA/Q,KAAA8O,IAAA6B,EAAAG,cACAH,EAAAE,UAAA,OACAF,EAAAK,aAAAL,EAAAM,iBACAN,EAAAO,aAAA5U,OAAAkG,UAAA2O,YAEAlV,EAAAgF,UAAAyP,GAAAM,aAAAL,EAAAM,iBACAhV,EAAAgF,UAAAyP,GAAAQ,aAAAP,EAAAO,cAIAjV,EAAAgF,UAAAyP,GAAAG,UAAAF,EAAAE,WAGA,SAAAF,EAAAE,UACA,OAAAF,EAAA,UAGArU,OAAAkG,UAAA2O,YAAA,IAEAC,EAAAT,EAAAO,cAAAP,EAAAM,iBAAAN,EAAAK,cAKA,OAHAI,GAAA,GACA9U,OAAAkG,UAAA2O,UAAAC,GAEAT,EAAA,WAOAxR,KAAAkS,kBAAA,SAAAX,GAGA,MAAA,SAFA/P,EAAAiQ,mBAAAF,GAEAG,WAUA1R,KAAAmS,eAAA,SAAA9K,EAAA+K,EAAAC,GAEA,IAAAC,EAAA9Q,EAAA4F,iBAAAC,GACAkL,EAAApV,OAAAqV,MAEAtR,EAAA,CACAuR,UAAAF,EACAG,SAAAH,EACAI,YAAAL,EAAAhL,MACAsL,YAAAN,EAAA/K,MACAsL,WAAAP,EAAAhL,MACAwL,WAAAR,EAAA/K,MAEAwL,kBAAAT,EAAA7K,QACAqK,iBAAAQ,EAAA7K,QAEAuK,UAAA7U,OAAAkG,UAAA2O,YACAN,UAAA,MAGAW,IACAnR,EAAA/D,OAAAC,OAAA8D,EAAAmR,IAEAvV,EAAAgF,UAAAsQ,GAAAlR,GAQAlB,KAAAgT,sBAAA,SAAA3L,EAAA+K,EAAAC,GAEA,IAAAvV,EAAAgF,UAAAsQ,GACA,MAAA,IAAA7J,MAAA,wDAEA,IAAArH,EAAApE,EAAAgF,UAAAsQ,GAEAE,EAAA9Q,EAAA4F,iBAAAC,GACAnG,EAAAwR,SAAAvV,OAAAqV,WAEA3L,IAAAyL,EAAAhL,QACApG,EAAA2R,WAAAP,EAAAhL,MACApG,EAAA4R,WAAAR,EAAA/K,MACArG,EAAA4Q,iBAAAQ,EAAA7K,SAGA4K,IACAnR,EAAA/D,OAAAC,OAAA8D,EAAAmR,IAEAvV,EAAAgF,UAAAsQ,GAAAlR,GAMAlB,KAAAyR,mBAAA,SAAAW,EAAAa,GACA,IAAAnW,EAAAgF,UAAAsQ,GACA,MAAA,IAAA7J,MAAA,wDAEA,IAAArH,EAAApE,EAAAgF,UAAAsQ,GAoBA,OAlBAlR,EAAAyQ,WAAAzQ,EAAA2R,WAAA3R,EAAAyR,YACAzR,EAAA0Q,WAAA1Q,EAAA4R,WAAA5R,EAAA0R,YAEA1R,EAAAgS,iBAAAhS,EAAA4Q,iBAAA5Q,EAAA6R,kBAEA7R,EAAAiS,SAAAjS,EAAAwR,SAAAxR,EAAAuR,WAGA,IAAAQ,GACA/R,EAAAkS,cAAAlS,EAAA4R,WACA5R,EAAAmS,aAAAnS,EAAA4R,WACA5R,EAAAoS,aAAApS,EAAA0Q,aAEA1Q,EAAAkS,cAAAlS,EAAA2R,WACA3R,EAAAmS,aAAAnS,EAAA2R,WACA3R,EAAAoS,aAAApS,EAAAyQ,YAGA,GAMA3R,KAAAuT,0BAAA,SAAAnB,EAAAa,GAEA,IAAAnW,EAAAgF,UAAAsQ,GACA,OAAA,EAEA,IAAAZ,EAAAhQ,EAAAiQ,mBAAAW,EAAAa,GAEAO,EAAA3S,KAAA8O,IAAA6B,EAAA8B,cAEA,QAAA9B,EAAA2B,SAAA,QAGAK,EAAA,KAWAxT,KAAAyT,qBAAA,SAAArB,GACAtV,EAAAgF,UAAAsQ,GAAA,MAGApS,KAAA0T,yCAAA,aAOA1T,KAAA2T,eAAA,WAIA,MAAA,mBAFAxW,OAAA,gDAAA,GAEAyW,YASA5T,KAAA6T,kBAAA,WAEA,OADAC,OAAAC,WAAA1Q,SAAA2Q,gBAAAC,aAOAjU,KAAA2B,cAAA,WAGA,IAAA,IAAA7E,EAAA6E,cACA,OAAA7E,EAAA,cAEA,IACAuG,SAAA6Q,YAAA,cACApX,EAAA6E,eAAA,EAEA,MAAAwS,GACArX,EAAA6E,eAAA,EAGA,OAAA7E,EAAA,eAQAkD,KAAA4B,gBAAA,WAEA,IAAA,IAAA9E,EAAA8E,gBACA,OAAA9E,EAAA,gBAEA,IAAAsX,EAAA/Q,SAAAgR,qBAAA,UAAA,GACAC,EAAAF,EAAAzP,MAAA4P,MACA,IACAH,EAAAzP,MAAA4P,MAAA,oBACA,MAAAJ,IACA,IAAAK,EAAAJ,EAAAzP,MAAA4P,OAAAD,EAKA,OAJAF,EAAAzP,MAAA4P,MAAAD,EAEAxX,EAAA8E,gBAAA4S,EAEAA,GAGAxU,KAAAyU,mCAAA,aAOAzU,KAAA0U,sBAAA,SAAAC,GAKA,IAHA,IAAAC,EAAAzX,OAAA0X,GAAAC,OAAAC,MAAA,KACAC,EAAAL,EAAAI,MAAA,KAEAE,EAAA,EAAAC,EAAAN,EAAAhN,OAAAqN,EAAAC,EAAAD,IAAA,CAEA,IAAAE,EAAAC,SAAAR,EAAAK,IACAI,EAAAD,SAAAJ,EAAAC,IAEA,QAAA,IAAAD,EAAAC,GACA,OAAA,EAEA,GAAAI,EAAAF,EACA,OAAA,EAEA,GAAAA,EAAAE,EACA,OAAA,EAKA,OAAA,GAOArV,KAAAsV,gBAAA,SAAAC,GACA,OAAApY,OAAAmO,UAAAiK,GACAA,EAAA,KAEA,GAMAvV,KAAAwV,gBAAA,SAAAC,EAAAC,GAEA,IAAAC,EAAAF,EAAAjH,QAAA,IAAA,IACA,OAAAmH,IAAAF,EACA,GAEAG,EAAAR,SAAAO,EAAAE,UAAA,EAAA,GAAA,IACAC,EAAAV,SAAAO,EAAAE,UAAA,EAAA,GAAA,IACAE,EAAAX,SAAAO,EAAAE,UAAA,EAAA,GAAA,IACArB,OAAA,QAAAoB,EAAA,IAAAE,EAAA,IAAAC,EAAA,IAAAL,EAAA,IACAlB,SAMAxU,KAAAgW,kBAAA,SAAAC,GAEA,IAAAC,EAAA,IAAAC,KAAAF,GACA7U,EAAA8U,EAAAE,UAAA,IAAAF,EAAAG,WAGA,OAFAjV,GAAA,IAAA8U,EAAAI,WAAA,IAAAJ,EAAAK,aAAA,IAAAL,EAAAM,aAAA,IAAAN,EAAAO,mBAQAzW,KAAA0W,cAAA,SAAArP,GAEA,IAAAsP,EAAA,GAMA,OAJAtP,EAAAK,eAAAL,EAAAK,cAAAC,SAAAN,EAAAK,cAAAC,QAAAC,OAAA,IACA+O,EAAAtP,EAAAK,cAAAC,SAGA,GAMA3H,KAAA4W,qBAAA,SAAAD,GAIA,IAFA,IAAAE,EAAA,GAEA5B,EAAA,EAAAA,EAAA0B,EAAA/O,OAAAqN,IAAA,CAEA,IAAA/M,EAAA,CACAZ,MAAAqP,EAAA1B,GAAA3N,MACAC,MAAAoP,EAAA1B,GAAA1N,OAGAsP,EAAAC,KAAA5O,GAGA,OAAA,GAOAlI,KAAA+W,eAAA,WACAja,EAAA2E,SAAAtE,OAAAqV,OAMAxS,KAAAgX,cAAA,WAKA1W,UAAA,CAAA2W,cAHA9Z,OAAAqV,MACA1V,EAAA2E,WAEA,IAQAzB,KAAAkX,sBAAA,SAAAC,EAAAC,EAAAnS,GAOA,OAJA,OAAAkS,GAAA,GAAA3V,EAAAmS,mBACAwD,EAAA,OAGAA,GACA,IAAA,OACAE,EAAA,IAAAC,eACAC,UAAAtS,EAAAmS,GACA,MACA,QACA,IAAA,OACAC,EAAA,IAAAG,eACAD,UAAAtS,EAAAmS,GACA,MACA,IAAA,OAGA,IAAAC,EAFAD,EAAAK,WAAA,GAEAJ,EAAA,IAAAG,eACAD,UAAAtS,EAAAmS,GAIA,OAAA,GAQApX,KAAA0X,qBAAA,SAAA9J,GAEAA,EAAAvP,GAAA,cAAA,SAAAgJ,GAEAlK,OAAA6C,MAAAjB,SAAA,iBAGA6O,EAAAvP,GAAA,sBAAA,SAAAgJ,GASA,OALAA,EAAAsQ,kBACAtQ,EAAAuQ,4BAIA,MASA5X,KAAA6X,cAAA,SAAAC,GAEAhb,EAAA4E,UAAAoV,KAAAgB,IAMA9X,KAAA+X,aAAA,WAEA,OAAAjb,EAAA,WAOAkD,KAAAgY,kBAAA,SAAAC,GAEA,OAAA,IAAA9a,OAAA+a,QAAAD,EAAAnb,EAAA4E,YASA1B,KAAAmY,wBAAA,WACA,OAAA,GAAArb,EAAA4E,UAAAkG,OACA,GACA9K,EAAA4E,UAAA,IAYA1B,KAAAoY,aAAA,SAAAC,EAAAC,GAEA,IAAAA,EACAA,EAAA,IAEA,IAAAC,EAAApb,OAAAqV,MACA,GAAA1V,EAAA+E,UAAA2W,eAAAH,GACA3F,SAAA,EAEAA,SAAA5V,EAAA+E,UAAAwW,GAEA,IAAAlF,EAAAoF,EAAA7F,SAMA,OAJA5V,EAAA+E,UAAAwW,GAAAE,IAIApF,GAAAmF,IAUAtY,KAAAyY,wBAAA,SAAAJ,EAAAK,EAAAJ,GAEA,IAAAA,EACAA,EAAA,IAGA,GAAAxb,EAAA+E,UAAA2W,eAAAH,IAAA,MAAAvb,EAAA+E,UAAAwW,KACAM,aAAA7b,EAAA+E,UAAAwW,IACAvb,EAAA+E,UAAAwW,GAAA,MAGAvb,EAAA+E,UAAAwW,GAAAO,WAAAF,EAAAJ,IAQAtY,KAAA6Y,6BAAA,SAAAC,GAEA,IAAAC,GAAA,EAEA9L,EAAA9P,OAAAqV,MAAA1V,EAAAkF,cAUA,MANA,SAAA8W,GAAA,cAAAhc,EAAAiF,eAAAkL,EAAA,MACA8L,GAAA,GAEAjc,EAAAkF,cAAA7E,OAAAqV,MACA1V,EAAAiF,cAAA+W,EAEA,GAMA9Y,KAAAgZ,gBAAA,SAAAnW,EAAAgL,GACA,IAAAA,EACAA,EAAA,kBAEAhL,EAAAoW,OAAA,WACA9b,OAAA6C,MAAAjB,SAAA8O,MACA,WACA1Q,OAAA6C,MAAA0O,YAAAb,OAQA7N,KAAAkZ,cAAA,SAAArW,GACAA,EAAA3C,IAAA,cACA2C,EAAA3C,IAAA,cACA2C,EAAA3C,IAAA,SACA2C,EAAA3C,IAAA,cACA2C,EAAA3C,IAAA,YACA2C,EAAA3C,IAAA,aACA2C,EAAA3C,IAAA,QAMAF,KAAAmZ,iBAAA,SAAAvL,EAAAwL,GAEA5X,EAAAkW,qBAAA9J,GAEAA,EAAAvP,GAAA,oBAAA,SAAAgJ,GAOA,GALAgS,QAAAlc,OAAA6C,MAEAqH,EAAAsQ,kBACAtQ,EAAAuQ,2BAEA,GAAApW,EAAAqX,6BAAAxR,EAAA8P,MACA,OAAA,EAEAiC,EAAAC,QAAAhS,OASArH,KAAAsZ,eAAA,SAAA1L,EAAAwL,GAGAxL,EAAAvP,GAAA,MAAA+a,GAGA,GAAA5X,EAAAG,gBAEAiM,EAAAvP,GAAA,SAAA,SAAAgJ,GACA,IAAAkS,EAAApc,OAAA6C,MAEA,GAAA,GAAAwB,EAAAqX,6BAAAxR,EAAA8P,MACA,OAAA,EAEAoC,EAAAC,QAAA,WAMA5L,EAAAvP,GAAA,cAAA,SAAAgJ,GAEAlK,OAAA6C,MAEAjB,SAAA,cAEAjC,EAAAmF,sBAAA9E,OAAA6C,MACAlD,EAAAkF,cAAA7E,OAAAqV,SAGA5E,EAAAvP,GAAA,YAAA,SAAAgJ,GACA,IAAAkS,EAAApc,OAAA6C,MAGA,OAAA,GAAAuZ,EAAAE,GAAA3c,EAAAmF,0BAIAnF,EAAAkF,gBAGA7E,OAAAqV,MAAA1V,EAAAkF,cACAlF,EAAAoF,qBAGAqX,EAAAC,QAAA,cAYAxZ,KAAA0Z,OAAA,SAAAC,EAAAC,IAEA,IAAAA,IACAD,EAAAE,SAAAC,SAAA,KAAAH,GAEA,IAAAI,EAAA1W,SAAAoB,cAAA,UACAsV,EAAApR,IAAAgR,EACA,IAAAK,EAAA3W,SAAAgR,qBAAA,UAAA,GACA2F,EAAAC,WAAAC,aAAAH,EAAAC,IAMAha,KAAAma,QAAA,SAAAR,EAAAC,IACA,IAAAA,IACAD,EAAAE,SAAAC,SAAA,KAAAH,GAEA,IAAAI,EAAA1W,SAAAoB,cAAA,QACAsV,EAAAK,aAAA,MAAA,cACAL,EAAAK,aAAA,OAAA,YACAL,EAAAK,aAAA,OAAAT,GAEAtW,SAAAgR,qBAAA,QAAA,GAAAgG,YAAAN,IAMA/Z,KAAAoC,SAAA,SAAAE,EAAA+E,EAAA9E,QAEA,IAAAD,EAAA,iBACAA,EAAAE,iBAAA6E,EAAA9E,GAAA,GACAD,EAAAG,aACAH,EAAAG,YAAA,KAAA4E,EAAA9E,IAWAvC,KAAAsa,kBAAA,SAAAC,EAAAC,EAAAC,GAEA,IACAC,EAAA,EACAC,EAAAJ,EAAA3S,OAGA,GAAA,GAAA+S,GAAAH,EAEA,OADAA,KACA,EAIA,SAAAI,EAAAC,EAAAC,GACAJ,IAEA,mBAAAD,GAEA7B,YAAA,WACA6B,EAAAI,EAAAC,MAIAJ,GAAAC,GAAA,mBAAAH,GACA5B,YAAA,WACA4B,OAQA5B,YAAA,WAGA,IAAA,IAAAnZ,EAAA,EAAAA,EAAAkb,EAAAlb,IAAA,CACA,IAAAob,EAAAN,EAAA9a,GAGA,QAAAoH,IAAAgU,EAAArS,cAAA,IAAAqS,EAAArS,aACAoS,EAAAL,EAAA9a,IAAA,OAEA,CACA,IAAAsb,EAAA5d,OAAA,UACA4d,EAAAxb,KAAA,QAAAE,GAEAsb,EAAA1c,GAAA,QAAA,WACA,IAAAoB,EAAAtC,OAAA6C,MAAAT,KAAA,SACAqb,EAAAL,EAAA9a,IAAA,MAEAsb,EAAA1c,GAAA,SAAA,WACA,IAAAoB,EAAAtC,OAAA6C,MAAAT,KAAA,SACAqb,EAAAL,EAAA9a,IAAA,MAEAsb,EAAAC,KAAA,MAAAH,EAAAlS,WAaA3I,KAAAib,aAAA,SAAApY,EAAAN,GACA,IAAAvB,EAAA6B,EAAA7B,QACA,GAAA,GAAAA,EAEA,OADAuB,KACA,EAGAzF,EAAAqF,OAAA+Y,aAAA,WAEA,IADAla,EAAA6B,EAAA7B,WAEAma,cAAAre,EAAAqF,QACAI,OAGA,MAOAvC,KAAAob,aAAA,SAAAC,GAEA,GAAA,iBAAAA,EACA,OAAA,EAEA,IAAA,IAAAC,EAAApU,EAAA+N,EAAAoG,EAAAzT,OAAAqN,EAAAqG,EAAAlG,SAAAvU,KAAAC,SAAAmU,GAAA/N,EAAAmU,IAAApG,GAAAoG,EAAApG,GAAAoG,EAAAC,GAAAD,EAAAC,GAAApU,GACA,OAAAmU,GAOArb,KAAAub,gBAAA,SAAAC,GACA,IAAAC,EAAA,EACA,IAAA,IAAAC,KAAAF,EACAC,IACA,OAAAA,GAMAzb,KAAA2b,iBAAA,SAAAC,GAQA,OANAA,EAAA,IACAA,EAAA,GAEAA,EAAA,IACAA,EAAA,GAEA,GAOA5b,KAAA6b,UAAA,SAAAtb,GAIA,OAFAA,EAAAiO,QAAA,gBAAA,KASAxO,KAAAmM,kBAAA,SAAA/K,GAEA,OAAAA,EAAAoN,QAAA,IAAA,MAOAxO,KAAA8b,aAAA,SAAAvb,GAEA,OADApD,OAAA,UAAA4e,KAAAxb,GAAAA,QAKAP,KAAAgc,uCAAA,aCxxEAlI,OAAAmI,OAAA,CAAAC,UAAA,GAAAC,OAAA,IAEA,SAAAC,GACAH,OAAAI,gBAAA,SAAAC,EAAAC,GACAD,EAAAA,GAAAjZ,SACAkZ,EAAAA,GAAA,GACA,IAAAL,EAAAD,OAAAC,UAEA,IAAA,IAAAjH,KAAAiH,EACA,GAAAA,EAAA1D,eAAAvD,IAAA,mBAAAiH,EAAAjH,GAAAuH,OAEA,IACAN,EAAAjH,GAAAuH,OAAAF,EAAAC,GAEA,MAAApI,GACA9S,QAAAC,IAAA6S,KAOAiI,EAAA,YAAAK,OAAA,WAAAR,OAAAI,gBAAAhZ,SAAA,OApBA,CAqBAlG,QChCA,SAAAgX,EAAAuI,EAAAlb,GAAA,SAAAoU,EAAAzB,EAAAuI,GAAA,cAAAvI,IAAAuI,EAAA,SAAAzH,EAAAd,EAAAuI,GAAA,UAAA,GAAAvI,GAAA7F,QAAAoO,GAAA,SAAAC,IAAA,MAAA,mBAAAD,EAAAjY,cAAAiY,EAAAjY,cAAAmY,UAAA,IAAA1V,EAAAwV,EAAAG,gBAAAC,KAAAJ,EAAA,6BAAAE,UAAA,IAAAF,EAAAjY,cAAAsY,MAAAL,EAAAE,WAAA,SAAAI,EAAA7I,GAAA,OAAAA,EAAA3F,QAAA,oBAAA,SAAA2F,EAAAuI,EAAAlb,GAAA,OAAAkb,EAAAlb,EAAAyb,iBAAAzO,QAAA,KAAA,IAAA,SAAA0O,EAAA/I,EAAAuI,GAAA,OAAA,WAAA,OAAAvI,EAAA4I,MAAAL,EAAAE,YAAA,SAAA1G,EAAA/B,GAAA,OAAAA,EAAA3F,QAAA,YAAA,SAAA2F,EAAAuI,GAAA,MAAA,IAAAA,EAAA9X,iBAAA4J,QAAA,OAAA,QAAA,SAAA2O,EAAAT,EAAAlb,EAAAoU,GAAA,IAAAwH,EAAA,GAAA,qBAAAjJ,EAAA,CAAAiJ,EAAAC,iBAAAP,KAAA3I,EAAAuI,EAAAlb,GAAA,IAAA8b,EAAAnJ,EAAA9S,QAAA,GAAA,OAAA+b,EAAAxH,IAAAwH,EAAAA,EAAAG,iBAAA3H,SAAA,GAAA0H,EAAA,CAAAA,EAAAA,EAAAE,MAAA,QAAA,OAAAV,KAAAQ,EAAA,6FAAAF,GAAA5b,GAAAkb,EAAAe,cAAAf,EAAAe,aAAA7H,GAAA,OAAAwH,EAAA,SAAAM,EAAAvJ,EAAA3S,EAAAoU,EAAAwH,GAAA,IAAAE,EAAArI,EAAA+H,EAAAE,EAAAS,EAAA,YAAAzH,EAAAyG,EAAA,OAAAQ,EAAA,WAAA,IAAAhJ,EAAAuI,EAAAvL,KAAA,OAAAgD,KAAAA,EAAAwI,EAAAzV,EAAA,MAAA,SAAA0W,MAAA,GAAAzJ,EAAA0J,GAAA,GAAAzI,SAAAQ,EAAA,IAAA,KAAAA,MAAAoH,EAAAL,EAAA,QAAAvK,GAAAgL,EAAAA,EAAAxH,GAAA+H,GAAA/H,EAAA,GAAAM,EAAAmE,YAAA2C,GAAA,OAAAM,EAAAX,EAAA,UAAAxF,KAAA,WAAAmG,EAAAlL,GAAA,IAAAuL,GAAAR,EAAAS,KAAAT,EAAAjH,GAAAmE,YAAAiD,GAAAH,EAAA9C,YAAAnE,GAAAoH,EAAAQ,WAAAR,EAAAQ,WAAAC,QAAA5J,EAAAmJ,EAAAjD,YAAAqC,EAAAsB,eAAA7J,IAAA+B,EAAA9D,GAAAuL,EAAAR,EAAAS,OAAAT,EAAAxY,MAAAsZ,WAAA,GAAAd,EAAAxY,MAAAuZ,SAAA,SAAAhB,EAAAiB,EAAAxZ,MAAAuZ,SAAAC,EAAAxZ,MAAAuZ,SAAA,SAAAC,EAAA9D,YAAA8C,IAAAlI,EAAAzT,EAAA0U,EAAA/B,GAAAgJ,EAAAS,MAAAT,EAAAlD,WAAAmE,YAAAjB,GAAAgB,EAAAxZ,MAAAuZ,SAAAhB,EAAAiB,EAAAE,cAAAnI,EAAA+D,WAAAmE,YAAAlI,KAAAjB,EAAA,SAAAa,EAAA4G,EAAA9G,GAAA,IAAAwH,EAAAV,EAAA9U,OAAA,GAAA,QAAAuM,GAAA,aAAAA,EAAAmK,IAAA,CAAA,KAAAlB,KAAA,GAAAjJ,EAAAmK,IAAAC,SAAArI,EAAAwG,EAAAU,IAAAxH,GAAA,OAAA,EAAA,OAAA,EAAA,GAAA,oBAAAzB,EAAA,CAAA,IAAA,IAAAmJ,EAAA,GAAAF,KAAAE,EAAAxG,KAAA,IAAAZ,EAAAwG,EAAAU,IAAA,IAAAxH,EAAA,KAAA,OAAA8H,EAAA,eAAAJ,EAAAA,EAAAkB,KAAA,SAAA,4CAAA,SAAArK,GAAA,MAAA,YAAAgJ,EAAAhJ,EAAA,KAAA,eAAA,OAAA3S,EAAA,SAAA2F,EAAAgN,EAAAuI,EAAAU,EAAAE,GAAA,SAAAJ,IAAAhH,WAAAuI,EAAA9Z,aAAA8Z,EAAAC,SAAA,GAAApB,GAAA1H,EAAA0H,EAAA,cAAAA,GAAA1H,EAAAwH,EAAA,aAAA,CAAA,IAAAO,EAAA7H,EAAA3B,EAAAiJ,GAAA,IAAAxH,EAAA+H,EAAA,aAAA,OAAAA,EAAA,IAAA,IAAAzH,EAAAiH,EAAAU,EAAAH,EAAAvW,EAAAwX,EAAA,CAAA,YAAA,QAAA,SAAAF,EAAA9Z,OAAAga,EAAA/W,QAAAsO,GAAA,EAAAuI,EAAAC,QAAA/B,EAAAgC,EAAAC,SAAAH,EAAA9Z,MAAA8Z,EAAAC,QAAA/Z,MAAA,IAAAkZ,EAAA1J,EAAAvM,OAAAuV,EAAA,EAAAU,EAAAV,EAAAA,IAAA,GAAAO,EAAAvJ,EAAAgJ,GAAAhW,EAAAsX,EAAA9Z,MAAA+Y,GAAAzI,EAAAyI,EAAA,OAAAA,EAAAV,EAAAU,IAAAe,EAAA9Z,MAAA+Y,KAAAlc,EAAA,CAAA,GAAA8b,GAAA1H,EAAAwH,EAAA,aAAA,OAAAF,IAAA,OAAAR,GAAAgB,EAAA,IAAAe,EAAA9Z,MAAA+Y,GAAAN,EAAA,MAAAyB,IAAA,GAAAJ,EAAA9Z,MAAA+Y,IAAAvW,EAAA,OAAA+V,IAAA,OAAAR,GAAAgB,EAAA,OAAAR,KAAA,EAAA,SAAAyB,EAAAxK,EAAAuI,EAAAlb,EAAA4b,EAAAE,GAAA,IAAArI,EAAAd,EAAA2K,OAAA,GAAA7B,cAAA9I,EAAA4K,MAAA,GAAApC,GAAAxI,EAAA,IAAA6K,EAAAR,KAAAvJ,EAAA,KAAAA,GAAAF,MAAA,KAAA,OAAAa,EAAA8G,EAAA,WAAA9G,EAAA8G,EAAA,aAAAvV,EAAAwV,EAAAD,EAAAU,EAAAE,GAAA,SAAAnJ,EAAAuI,EAAAlb,GAAA,IAAA4b,EAAA,IAAA,IAAAE,KAAAnJ,EAAA,GAAAA,EAAAmJ,KAAAZ,EAAA,OAAA,IAAAlb,EAAA2S,EAAAmJ,GAAA1H,EAAAwH,EAAAV,EAAAvI,EAAAmJ,IAAA,YAAAJ,EAAAE,EAAA5b,GAAAkb,GAAAU,EAAA,OAAA,EAAAO,CAAAhB,GAAAxI,EAAA,IAAA8K,EAAAT,KAAAvJ,EAAA,KAAAA,GAAAF,MAAA,KAAA2H,EAAAlb,GAAA,SAAAqd,EAAA1K,EAAAuI,EAAA9G,GAAA,OAAA+I,EAAAxK,EAAA3S,EAAAA,EAAAkb,EAAA9G,GAAA,IAAAsJ,EAAA,GAAAC,EAAA,GAAAC,EAAA,CAAAC,SAAA,QAAAC,QAAA,CAAAC,YAAA,GAAAC,eAAA,EAAAC,eAAA,EAAAC,aAAA,GAAAC,GAAA,GAAAthB,GAAA,SAAA8V,EAAAuI,GAAA,IAAAlb,EAAAxB,KAAA4Y,YAAA,WAAA8D,EAAAlb,EAAA2S,MAAA,IAAAyL,QAAA,SAAAzL,EAAAuI,EAAAlb,GAAA2d,EAAArI,KAAA,CAAAnW,KAAAwT,EAAAU,GAAA6H,EAAAtF,QAAA5V,KAAAqe,aAAA,SAAA1L,GAAAgL,EAAArI,KAAA,CAAAnW,KAAA,KAAAkU,GAAAV,MAAA2L,EAAA,aAAAA,EAAAC,UAAAX,EAAAU,EAAA,IAAAA,EAAA,IAAA3B,EAAAzB,EAAA1I,gBAAA9M,EAAA,QAAAiX,EAAA6B,SAAApb,cAAAmR,EAAA,kBAAAiJ,EAAAI,EAAAE,QAAAI,YAAA3J,EAAAhB,MAAA,KAAA,GAAAqK,EAAAa,eAAAjB,EAAA,IAAAC,EAAAG,EAAAE,QAAAI,YAAA3J,EAAAnR,cAAAmQ,MAAA,KAAA,GAAAqK,EAAAc,aAAAjB,EAAA,IAAAkB,EAAA,CAAA7d,KAAAqa,EAAA,cAAAmD,EAAAH,GAAA7I,MAAA,kBAAAqJ,EAAA7d,QAAA,IAAAmc,EAAA,CAAA9Z,MAAAwb,EAAA7d,KAAAqC,OAAAmb,EAAAH,GAAAS,SAAA,kBAAA3B,EAAA9Z,SAAAya,EAAAiB,aAAA1B,EAAAS,EAAAiB,aAAAxB,EAAAiB,EAAAF,QAAA,gBAAAf,EAAA,eAAA,QAAA,IAAAiB,EAAAF,QAAA,UAAAf,EAAA,qBAAA,QAAA,IAAAiB,EAAAF,QAAA,gBAAAf,EAAA,gBAAA,KAAA,IAAA,IAAAyB,EAAA,QAAAnM,GAAA,aAAAA,EAAAmK,IAAAhD,EAAA,gBAAAnH,EAAA2L,EAAAF,QAAA,WAAAU,GAAAhF,GAAAwE,EAAAF,QAAA,mBAAA,WAAA,QAAAf,EAAA,cAAA,OAAA,MAAA,WAAA,IAAA1K,EAAAuI,EAAAlb,EAAA4b,EAAAE,EAAAX,EAAA,IAAA,IAAAK,KAAAmC,EAAA,GAAAA,EAAA3G,eAAAwE,GAAA,CAAA,GAAA7I,EAAA,IAAAuI,EAAAyC,EAAAnC,IAAArc,OAAAwT,EAAA2C,KAAA4F,EAAA/b,KAAAiE,eAAA8X,EAAAtF,SAAAsF,EAAAtF,QAAAmJ,SAAA7D,EAAAtF,QAAAmJ,QAAA3Y,QAAA,IAAApG,EAAA,EAAAA,EAAAkb,EAAAtF,QAAAmJ,QAAA3Y,OAAApG,IAAA2S,EAAA2C,KAAA4F,EAAAtF,QAAAmJ,QAAA/e,GAAAoD,eAAA,IAAAwY,EAAAxH,EAAA8G,EAAA7H,GAAA,YAAA6H,EAAA7H,KAAA6H,EAAA7H,GAAAyI,EAAA,EAAAA,EAAAnJ,EAAAvM,OAAA0V,IAAA,KAAAX,EAAAxI,EAAAmJ,GAAAvI,MAAA,MAAAnN,OAAAkY,EAAAnD,EAAA,IAAAS,IAAA0C,EAAAnD,EAAA,KAAAmD,EAAAnD,EAAA,cAAA6D,UAAAV,EAAAnD,EAAA,IAAA,IAAA6D,QAAAV,EAAAnD,EAAA,MAAAmD,EAAAnD,EAAA,IAAAA,EAAA,IAAAS,GAAA8B,EAAApI,MAAAsG,EAAA,GAAA,OAAAT,EAAA6B,KAAA,OAAApB,GAAA,SAAAjJ,GAAA,IAAAuI,EAAAyB,EAAAtQ,UAAArM,EAAAse,EAAAR,QAAAC,aAAA,GAAA,GAAArY,IAAAwV,EAAAA,EAAA+D,SAAAX,EAAAR,QAAAG,cAAA,CAAA,IAAA7J,EAAA,IAAA8K,OAAA,UAAAlf,EAAA,gBAAAkb,EAAAA,EAAAlO,QAAAoH,EAAA,KAAApU,EAAA,QAAAse,EAAAR,QAAAE,gBAAA9C,GAAA,IAAAlb,EAAA2S,EAAAqK,KAAA,IAAAhd,GAAA0F,EAAAiX,EAAAtQ,UAAA4S,QAAA/D,EAAAyB,EAAAtQ,UAAA6O,GAAAY,CAAA4B,UAAAE,EAAAQ,eAAAR,EAAAS,aAAA,IAAA,IAAAc,EAAA,EAAAA,EAAAb,EAAAH,GAAA/X,OAAA+Y,IAAAb,EAAAH,GAAAgB,KAAAxM,EAAA2L,UAAAA,EAAA,CAAAhM,OAAAzQ;;;;;;;;;;;;ACUA,WACA,IAAA+Y,EAAAwE,EAAAC,EAAAC,EACAC,EAAA,SAAAlM,EAAAmM,GAAA,OAAA,WAAA,OAAAnM,EAAAkI,MAAAiE,EAAApE,aAEAqE,EAAA,GAAAzI,gBAEAsI,EAAA,WACA,SAAAA,IACA9gB,KAAAkhB,cAAA,EACAlhB,KAAAmhB,OAAA,GA+DA,OA5DAL,EAAAf,UAAAqB,SAAA,SAAAC,GACA,MAAA,aAAAA,EAAArB,SAAA/C,cACAjd,KAAAshB,UAAAD,GAEArhB,KAAAuhB,WAAAF,IAIAP,EAAAf,UAAAuB,UAAA,SAAAE,GACA,IAAAC,EAAAxM,EAAAC,EAAA7G,EAAAqT,EAAAC,EAaA,IAZAF,EAAAzhB,KAAAmhB,OAAAvZ,OACA5H,KAAAmhB,OAAArK,KAAA,CACA8K,YAAAH,EACAD,OAAA,EACAK,MAAAL,EAAAK,MACAC,MAAAN,EAAAM,MAAAN,EAAAM,WAAA,EACA7iB,SAAA,EACA8iB,SAAAP,EAAAO,SACAC,QAAAR,EAAA3T,YAGA8T,EAAA,GACA1M,EAAA,EAAAC,GAFAwM,EAAAF,EAAAS,YAEAra,OAAAqN,EAAAC,EAAAD,IACA5G,EAAAqT,EAAAzM,GACA0M,EAAA7K,KAAA9W,KAAAuhB,WAAAlT,EAAAoT,EAAAD,EAAAO,WAEA,OAAAJ,GAGAb,EAAAf,UAAAwB,WAAA,SAAAlT,EAAAoT,EAAAS,GACA,GAAA,WAAA7T,EAAA2R,SAAA/C,cA0BA,MAzBA,KAAA5O,EAAA0N,MACA,MAAA0F,IACAzhB,KAAAmhB,OAAAM,GAAAxiB,UAAA,GAEAe,KAAAmhB,OAAArK,KAAA,CACA8K,YAAA5hB,KAAAmhB,OAAAvZ,OACAsZ,cAAAlhB,KAAAkhB,cACAtgB,MAAAyN,EAAAzN,MACAmb,KAAA1N,EAAA0N,KACAxb,KAAA8N,EAAA8T,UACAL,MAAAzT,EAAAyT,MAAAzT,EAAAyT,WAAA,EACAM,SAAA/T,EAAA+T,SACAL,UAAA,IAAAG,EAAAA,EAAA7T,EAAA0T,SACAM,kBAAAZ,EACAa,YAAA,MAAAb,EAAAzhB,KAAAmhB,OAAAM,GAAAI,MAAA,KACAG,QAAA3T,EAAAR,UACAlJ,MAAA0J,EAAA1J,MAAAoZ,WAGA/d,KAAAmhB,OAAArK,KAAA,CACA8K,YAAA5hB,KAAAmhB,OAAAvZ,OACAsZ,cAAAlhB,KAAAkhB,cACAqB,OAAA,IAGAviB,KAAAkhB,eAAA,GAIAJ,EAlEA,IAsEA0B,gBAAA,SAAAC,GACA,IAAApB,EAAApM,EAAAC,EAAAwN,EAAAhB,EAGA,IAFAgB,EAAA,IAAA5B,EAEA7L,EAAA,EAAAC,GADAwM,EAAAe,EAAAR,YACAra,OAAAqN,EAAAC,EAAAD,IACAoM,EAAAK,EAAAzM,GACAyN,EAAAtB,SAAAC,GAEA,OAAAqB,EAAAvB,QAGAP,EAAA,WACA,SAAAA,EAAA+B,EAAAC,GACA5iB,KAAA2iB,WAAAA,EACA3iB,KAAAoX,QAAA,MAAAwL,EAAAA,EAAA,GACA5iB,KAAA6iB,oBAAA9B,EAAA/gB,KAAA6iB,oBAAA7iB,MACA4gB,EAAAkC,yBAGA9iB,KAAA+iB,YAAA/iB,KAAA2iB,WAAAK,SACAhjB,KAAAijB,mBACAjjB,KAAAkjB,qBACAljB,KAAAmjB,QACAnjB,KAAAojB,cACApjB,KAAAqjB,qBACArjB,KAAAsjB,YAwfA,OArfA1C,EAAAb,UAAAmD,mBAAA,WACA,IAAAK,EA6BA,OA7BAvjB,KAAAwjB,mBAAAD,EAIAvjB,KAHA,SAAAyjB,GACA,OAAAF,EAAAG,kBAAAD,KAGAzjB,KAAA2jB,gBAAA,SAAAJ,GACA,OAAA,SAAAE,GACA,OAAAF,EAAAK,eAAAH,IAFA,CAIAzjB,MACAA,KAAA6jB,cAAA,EACA7jB,KAAA8jB,oBAAA,EACA9jB,KAAA+jB,iBAAA,EACA/jB,KAAAgkB,mBAAA,KACAhkB,KAAAikB,OAAAjkB,KAAAoX,QAAA8M,KAAA,iBAAAC,KAAAnkB,KAAA2iB,WAAA9U,WACA7N,KAAAokB,sBAAA,MAAApkB,KAAAoX,QAAAgN,uBAAA,MAAApkB,KAAA2iB,WAAAvL,QAAA,IAAA,KAAApX,KAAA2iB,WAAAvL,QAAA,GAAA2E,MAAA/b,KAAAoX,QAAAgN,sBACApkB,KAAAqkB,yBAAArkB,KAAAoX,QAAAiN,0BAAA,EACArkB,KAAAskB,eAAAtkB,KAAAoX,QAAAkN,iBAAA,EACAtkB,KAAAukB,yBAAA,MAAAvkB,KAAAoX,QAAAmN,0BAAAvkB,KAAAoX,QAAAmN,yBACAvkB,KAAAwkB,aAAA,MAAAxkB,KAAAoX,QAAAoN,cAAAxkB,KAAAoX,QAAAoN,aACAxkB,KAAAykB,gBAAAzkB,KAAAoX,QAAAqN,kBAAA,EACAzkB,KAAA0kB,yBAAA,MAAA1kB,KAAAoX,QAAAsN,0BAAA1kB,KAAAoX,QAAAsN,yBACA1kB,KAAA2kB,qBAAA3kB,KAAAoX,QAAAuN,sBAAAC,EAAAA,EACA5kB,KAAA6kB,uBAAA7kB,KAAAoX,QAAAyN,yBAAA,EACA7kB,KAAA8kB,yBAAA,MAAA9kB,KAAAoX,QAAA0N,0BAAA9kB,KAAAoX,QAAA0N,yBACA9kB,KAAA+kB,yBAAA,MAAA/kB,KAAAoX,QAAA2N,0BAAA/kB,KAAAoX,QAAA2N,yBACA/kB,KAAAglB,gCAAAhlB,KAAAoX,QAAA4N,kCAAA,EACAhlB,KAAAilB,kBAAAjlB,KAAAoX,QAAA6N,mBAAAC,OAAAC,kBACAnlB,KAAAolB,sBAAAplB,KAAAoX,QAAAgO,wBAAA,EACAplB,KAAAqlB,uBAAA,MAAArlB,KAAAoX,QAAAiO,wBAAArlB,KAAAoX,QAAAiO,wBAGAzE,EAAAb,UAAAkD,iBAAA,WASA,OARAjjB,KAAA2iB,WAAA2C,aAAA,oBACAtlB,KAAAulB,aAAAvlB,KAAA2iB,WAAA2C,aAAA,oBACAtlB,KAAA+iB,YACA/iB,KAAAulB,aAAAvlB,KAAAoX,QAAAoO,2BAAAxlB,KAAAoX,QAAAqO,kBAAA7E,EAAA8E,sBAEA1lB,KAAAulB,aAAAvlB,KAAAoX,QAAAuO,yBAAA3lB,KAAAoX,QAAAqO,kBAAA7E,EAAAgF,oBAEA5lB,KAAAulB,aAAAvlB,KAAA6lB,YAAA7lB,KAAAulB,cACAvlB,KAAA8lB,mBAAA9lB,KAAA2iB,WAAA2C,aAAA,yBAAAtlB,KAAAoX,QAAA2O,iBAAAnF,EAAAoF,wBAGApF,EAAAb,UAAAkG,aAAA,SAAAvK,GACA,OAAA1b,KAAAglB,iCAAA,MAAAtJ,EAAA4G,YACA,yBAAAtiB,KAAA6lB,YAAAnK,EAAA4G,aAAA,OAAA5G,EAAAnb,KAEAmb,EAAAnb,MAIAqgB,EAAAb,UAAAmG,YAAA,WACA,OAAAlmB,KAAA8jB,oBAAA,GAGAlD,EAAAb,UAAAoG,YAAA,WACA,OAAAnmB,KAAA8jB,oBAAA,GAGAlD,EAAAb,UAAAqG,YAAA,SAAA3C,GACA,GAAAzjB,KAAA+iB,aACA,IAAA/iB,KAAA6jB,aACA,OAAAjL,YAAA2K,EAIAvjB,KAHA,WACA,OAAAujB,EAAA8C,wBAEA,SAGA,IAAArmB,KAAA6jB,aACA,OAAA7jB,KAAA4jB,iBARA,IAAAL,GAaA3C,EAAAb,UAAAuG,WAAA,SAAA7C,GACA,IAAAzjB,KAAA8jB,mBAEA,OADA9jB,KAAA6jB,cAAA,EACAjL,YAAA2K,EAIAvjB,KAHA,WACA,OAAAujB,EAAAgD,cAEA,KAJA,IAAAhD,GAQA3C,EAAAb,UAAA8C,oBAAA,SAAAY,GACA,OAAAzjB,KAAA+iB,YACA/iB,KAAAqmB,oBAAA5C,GAEAzjB,KAAA4jB,kBAIAhD,EAAAb,UAAAyG,qBAAA,SAAApP,GACA,IAAAqP,EAAAlnB,EAAAmnB,EAAAzR,EAAAC,EAAAwM,EAAAiF,EAIA,IAHAF,EAAA,GACAE,EAAA,EAEA1R,EAAA,EAAAC,GADAwM,EAAA1hB,KAAA4mB,cACAhf,OAAAqN,EAAAC,IAEAwR,EAAA,GAMA,MAJAA,GAHAnnB,EAAAmiB,EAAAzM,IAEAuM,MACAxhB,KAAA6mB,iBAAAtnB,GAEAS,KAAA8mB,kBAAAvnB,MAGAonB,IACAF,GAAAC,IAEA,MAAAtP,EAAAA,EAAA2P,WAAA,KACAxnB,EAAA6iB,UAAApiB,KAAA+iB,YACA/iB,KAAAgnB,aAAAznB,GACAA,EAAA6iB,WAAApiB,KAAA+iB,aACA/iB,KAAAinB,yBAAAjnB,KAAAimB,aAAA1mB,OAGAonB,GAAA3mB,KAAAilB,oBAnBAhQ,KAuBA,OAAAwR,GAGA7F,EAAAb,UAAA+G,kBAAA,SAAAzY,GACA,IAAA2T,EAAAkF,EACA,OAAA7Y,EAAA8Y,cAGAnnB,KAAAonB,0BAAA/Y,IAGA2T,EAAA,GACA3T,EAAA0T,UAAA1T,EAAA+T,UAAApiB,KAAA+iB,aACAf,EAAAlL,KAAA,kBAEAzI,EAAA0T,UAAA1T,EAAA+T,UAAApiB,KAAA+iB,aACAf,EAAAlL,KAAA,mBAEAzI,EAAA+T,UACAJ,EAAAlL,KAAA,mBAEA,MAAAzI,EAAAgU,mBACAL,EAAAlL,KAAA,gBAEA,KAAAzI,EAAA2T,SACAA,EAAAlL,KAAAzI,EAAA2T,UAEAkF,EAAA7jB,SAAAoB,cAAA,OACAoJ,UAAAmU,EAAAxD,KAAA,KACAnQ,EAAA1J,QACAuiB,EAAAviB,MAAAoZ,QAAA1P,EAAA1J,OAEAuiB,EAAA9M,aAAA,0BAAA/L,EAAAuT,aACAsF,EAAA/E,UAAA9T,EAAAgZ,kBAAAhZ,EAAA9N,KACA8N,EAAAyT,QACAoF,EAAApF,MAAAzT,EAAAyT,OAEA9hB,KAAAsnB,UAAAJ,IA/BA,IAkCAtG,EAAAb,UAAA8G,iBAAA,SAAArF,GACA,IAAAQ,EAAAuF,EACA,OAAA/F,EAAA2F,cAAA3F,EAAAgG,cAGAhG,EAAAiG,eAAA,IAGAzF,EAAA,IACAlL,KAAA,gBACA0K,EAAAQ,SACAA,EAAAlL,KAAA0K,EAAAQ,UAEAuF,EAAAlkB,SAAAoB,cAAA,OACAoJ,UAAAmU,EAAAxD,KAAA,KACA+I,EAAApF,UAAAX,EAAA6F,kBAAArnB,KAAA6lB,YAAArE,EAAAK,OACAL,EAAAM,QACAyF,EAAAzF,MAAAN,EAAAM,OAEA9hB,KAAAsnB,UAAAC,IAhBA,IAmBA3G,EAAAb,UAAA2H,qBAAA,WAOA,GANA1nB,KAAAijB,mBACAjjB,KAAA+iB,aACA/iB,KAAA2nB,wBAEA3nB,KAAA4nB,yBACA5nB,KAAA6nB,gBACA7nB,KAAA+jB,gBACA,OAAA/jB,KAAA8nB,kBAIAlH,EAAAb,UAAAgI,4BAAA,WACA,IAAA9S,EAAAC,EAAAwM,EAAAlN,EAAAmN,EAGA,IADAA,EAAA,GACA1M,EAAA,EAAAC,GAFAwM,EAAA1hB,KAAA4mB,cAEAhf,OAAAqN,EAAAC,EAAAD,KACAT,EAAAkN,EAAAzM,IACAmN,SACAT,EAAA7K,KAAAtC,EAAA4N,UAAA,GAEAT,EAAA7K,UAAA,GAGA,OAAA6K,GAGAf,EAAAb,UAAAiI,eAAA,WACA,OAAAhoB,KAAA+jB,gBACA/jB,KAAAioB,eAEAjoB,KAAAkoB,gBAIAtH,EAAAb,UAAAoI,eAAA,SAAA1E,GACA,OAAAzjB,KAAA+jB,gBACA/jB,KAAA8nB,iBAEA9nB,KAAAkoB,gBAIAtH,EAAAb,UAAA+H,eAAA,SAAA1Q,GACA,IAAAgR,EAAAC,EAAApT,EAAAC,EAAA7G,EAAA3J,EAAA4jB,EAAA5G,EAAA6G,EAAAC,EAAAC,EAAAtB,EAAAuB,EAAAC,EAAA5M,EAOA,IANA/b,KAAA4oB,mBACAJ,EAAA,EAEAJ,GADAE,EAAAtoB,KAAA6oB,mBACAra,QAAA,2BAAA,QACA+Z,EAAAvoB,KAAA8oB,iBAAAV,GAEAnT,EAAA,EAAAC,GADAwM,EAAA1hB,KAAA4mB,cACAhf,OAAAqN,EAAAC,EAAAD,KACA5G,EAAAqT,EAAAzM,IACAkS,cAAA,EACAsB,EAAA,KACAtB,EAAA,KACA9Y,EAAAgZ,iBAAA,GACArnB,KAAAonB,0BAAA/Y,KACAA,EAAAmT,QACAnT,EAAAmZ,aAAA,EACAnZ,EAAAoZ,eAAA,GAEA,MAAApZ,EAAAgU,mBAAAriB,KAAA4mB,aAAAvY,EAAAgU,qBAEA,KADAoG,EAAAzoB,KAAA4mB,aAAAvY,EAAAgU,oBACAoF,gBAAAgB,EAAAtB,eACAqB,GAAA,GAEAC,EAAAhB,gBAAA,GAEA1L,EAAA1N,EAAAmT,MAAAnT,EAAAwT,MAAAxT,EAAA0N,KACA1N,EAAAmT,QAAAxhB,KAAAwkB,eACA2C,EAAAnnB,KAAA+oB,oBAAAhN,EAAAwM,GACAla,EAAA8Y,aAAA,MAAAA,EACA9Y,EAAA8Y,eAAA9Y,EAAAmT,QACAgH,GAAA,GAEAna,EAAA8Y,cACAmB,EAAA1gB,SACA8gB,EAAAvB,EAAA1nB,MACAiF,EAAAqX,EAAAgD,MAAA,EAAA2J,GACAL,EAAAtM,EAAAgD,MAAA2J,EAAAA,EAAAJ,EAAA1gB,QACA+gB,EAAA5M,EAAAgD,MAAA2J,EAAAJ,EAAA1gB,QACAyG,EAAAgZ,iBAAArnB,KAAA6lB,YAAAnhB,GAAA,OAAA1E,KAAA6lB,YAAAwC,GAAA,QAAAroB,KAAA6lB,YAAA8C,IAEA,MAAAF,IACAA,EAAAjB,aAAA,IAEA,MAAAnZ,EAAAgU,mBAAAriB,KAAA4mB,aAAAvY,EAAAgU,mBAAA8E,eACA9Y,EAAA8Y,cAAA,KAMA,OADAnnB,KAAA4nB,yBACAY,EAAA,GAAAF,EAAA1gB,QACA5H,KAAAgpB,uBAAA,IACAhpB,KAAAipB,WAAAX,KAEAtoB,KAAAgpB,uBAAAhpB,KAAAwmB,yBACA,MAAApP,EAAAA,EAAA8R,oBAAA,QAAA,EACAlpB,KAAAmpB,iCAKAvI,EAAAb,UAAA+I,iBAAA,SAAAM,GACA,IAAAC,EAAAC,EAMA,OALAA,EAAAtpB,KAAAykB,gBAAA2E,EAAA,cAAAA,EAAA,UACAppB,KAAAukB,0BAAAvkB,KAAAykB,kBACA6E,EAAA,IAAAA,GAEAD,EAAArpB,KAAAolB,sBAAA,GAAA,IACA,IAAA1E,OAAA4I,EAAAD,IAGAzI,EAAAb,UAAAgJ,oBAAA,SAAAQ,EAAAhB,GACA,IAAAiB,EAKA,OAJAA,EAAAjB,EAAAkB,KAAAF,IACAvpB,KAAAykB,kBAAA,MAAA+E,EAAAA,EAAA,QAAA,KACAA,EAAA/pB,OAAA,GAEA+pB,GAGA5I,EAAAb,UAAA2J,cAAA,WACA,IAAAzU,EAAAC,EAAAwM,EACA,GAAA,MAAA1hB,KAAA2pB,sBACA,OAAA3pB,KAAA2pB,sBAIA,IAFA3pB,KAAA2pB,sBAAA,EAEA1U,EAAA,EAAAC,GADAwM,EAAA1hB,KAAA2iB,WAAAvL,SACAxP,OAAAqN,EAAAC,EAAAD,IACAyM,EAAAzM,GACAmN,WACApiB,KAAA2pB,uBAAA,GAGA,OAAA3pB,KAAA2pB,uBAGA/I,EAAAb,UAAA6J,cAAA,SAAAnG,GAGA,GAFAA,EAAAoG,iBACA7pB,KAAA4jB,kBACA5jB,KAAA+jB,kBAAA/jB,KAAA8pB,YACA,OAAA9pB,KAAAkoB,gBAIAtH,EAAAb,UAAAgK,gBAAA,SAAAtG,GACA,IAAA/B,EAAAsI,EAMA,OALAA,EAAA,OAAAtI,EAAA+B,EAAAwG,OAAAvI,EAAA+B,EAAAyG,QACAlqB,KAAAmqB,qBACA,IAAAH,GAAAhqB,KAAAoqB,oBACApqB,KAAAqqB,mBAEAL,GACA,KAAA,EACAhqB,KAAAsqB,kBAAAtqB,KAAAuqB,yBAAA3iB,OACA,MACA,KAAA,EACA5H,KAAA+jB,kBAAA/jB,KAAA+iB,aACA/iB,KAAAwqB,cAAA/G,GAEAzjB,KAAA8jB,oBAAA,EACA,MACA,KAAA,GAKA,KAAA,GACA9jB,KAAA+jB,iBACAN,EAAAoG,iBAEA,MACA,KAAA,GACA7pB,KAAAskB,gBACAb,EAAAoG,iBAEA,MACA,KAAA,GACApG,EAAAoG,iBACA7pB,KAAAyqB,cACA,MACA,KAAA,GACAhH,EAAAoG,iBACA7pB,KAAA0qB,kBAKA9J,EAAAb,UAAA4K,cAAA,SAAAlH,GACA,IAAA/B,EAAAsI,EAGA,OAFAA,EAAA,OAAAtI,EAAA+B,EAAAwG,OAAAvI,EAAA+B,EAAAyG,QACAlqB,KAAAmqB,qBACAH,GACA,KAAA,EACAhqB,KAAA+iB,aAAA/iB,KAAAsqB,kBAAA,GAAAtqB,KAAA0pB,gBAAA,EACA1pB,KAAA4qB,qBACA5qB,KAAAoqB,qBACApqB,KAAA4nB,yBACA5nB,KAAAmoB,kBAEA,MACA,KAAA,GACA1E,EAAAoG,iBACA7pB,KAAA+jB,iBACA/jB,KAAAwqB,cAAA/G,GAEA,MACA,KAAA,GACAzjB,KAAA+jB,iBACA/jB,KAAAioB,eAEA,MACA,KAAA,EACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,MACA,QACAjoB,KAAAmoB,mBAKAvH,EAAAb,UAAA8K,wBAAA,SAAApH,GAIA,IAAAF,EAHA,IAAAvjB,KAAA8pB,YAGA,OAAAlR,YAAA2K,EAIAvjB,KAHA,WACA,OAAAujB,EAAA4E,mBAEA,KAGAvH,EAAAb,UAAA+K,gBAAA,WACA,OAAA,MAAA9qB,KAAAoX,QAAApW,MACAhB,KAAAoX,QAAApW,MAEAhB,KAAA2iB,WAAAoI,YAAA,MAIAnK,EAAAb,UAAAqH,0BAAA,SAAA/Y,GACA,QAAArO,KAAA+iB,cAAA/iB,KAAA8kB,0BAAAzW,EAAA+T,eAGApiB,KAAA+kB,0BAAA1W,EAAA0T,YAGA1T,EAAAkU,QAMA3B,EAAAb,UAAAiL,0BAAA,SAAAvH,GAEA,OADAzjB,KAAAirB,eAAA,EACAjrB,KAAAkrB,yBAAAzH,IAGA7C,EAAAb,UAAAoL,yBAAA,SAAA1H,GAEA,OADAzjB,KAAAirB,eAAA,EACAjrB,KAAAorB,wBAAA3H,IAGA7C,EAAAb,UAAAsL,wBAAA,SAAA5H,GACA,GAAAzjB,KAAAirB,cACA,OAAAjrB,KAAAsrB,uBAAA7H,IAIA7C,EAAAb,UAAAuH,UAAA,SAAAzkB,GACA,IAAA0oB,EACA,OAAA1oB,EAAAykB,UACAzkB,EAAAykB,YAEAiE,EAAAloB,SAAAoB,cAAA,QACA4V,YAAAxX,GACA0oB,EAAApJ,YAGAvB,EAAAb,UAAAyL,gBAAA,WACA,MAAA,qDAAAxrB,KAAAulB,aAAA,iOAGA3E,EAAAb,UAAA0L,eAAA,WACA,MAAA,0IAAAzrB,KAAAulB,aAAA,+FAGA3E,EAAAb,UAAA2L,oBAAA,SAAAC,GACA,MAAA,8BAAA3rB,KAAA8lB,mBAAA,UAAA9lB,KAAA6lB,YAAA8F,GAAA,kBAGA/K,EAAAkC,qBAAA,WACA,MAAA,gCAAAhP,OAAA8X,UAAAC,QACAxoB,SAAAyoB,cAAA,IAEA,eAAA3H,KAAArQ,OAAA8X,UAAAG,YAAA,YAAA5H,KAAArQ,OAAA8X,UAAAG,YAAA,iBAAA5H,KAAArQ,OAAA8X,UAAAG,YAAA,cAAA5H,KAAArQ,OAAA8X,UAAAG,YAAA,QAAA5H,KAAArQ,OAAA8X,UAAAG,YAAA,mBAAA5H,KAAArQ,OAAA8X,UAAAG,aAMAnL,EAAA8E,sBAAA,sBAEA9E,EAAAgF,oBAAA,mBAEAhF,EAAAoF,uBAAA,mBAEApF,EAtgBA,IA0gBAxE,EAAAjf,QAEA0X,GAAAzX,OAAA,CACA4uB,OAAA,SAAA5U,GACA,OAAAwJ,EAAAkC,uBAGA9iB,KAAAmO,MAAA,SAAA8d,GACA,IAAAC,EAAAF,EAEAA,GADAE,EAAA9P,EAAApc,OACAT,KAAA,UACA,YAAA6X,EAMA4U,aAAAnL,GACAqL,EAAA3sB,KAAA,SAAA,IAAAshB,EAAA7gB,KAAAoX,IANA4U,aAAAnL,GACAmL,EAAA/rB,aARAD,QAmBA6gB,EAAA,SAAAsL,GAGA,SAAAtL,IACA,OAAAA,EAAAuL,UAAAC,YAAAtP,MAAA/c,KAAA4c,WAisBA,OA3zCA,SAAAyE,EAAAnc,GAAA,IAAA,IAAAkJ,KAAAlJ,EAAA+b,EAAAnE,KAAA5X,EAAAkJ,KAAAiT,EAAAjT,GAAAlJ,EAAAkJ,IAAA,SAAAke,IAAAtsB,KAAAqsB,YAAAhL,EAAAiL,EAAAvM,UAAA7a,EAAA6a,UAAAsB,EAAAtB,UAAA,IAAAuM,EAAAjL,EAAA+K,UAAAlnB,EAAA6a,UAunBA3iB,CAAAyjB,EAAAsL,GAMAtL,EAAAd,UAAAoD,MAAA,WAEA,OADAnjB,KAAAusB,cAAAnQ,EAAApc,KAAA2iB,YACA3iB,KAAAwsB,sBAAAxsB,KAAA2iB,WAAA8J,eAGA5L,EAAAd,UAAAqD,YAAA,WACA,IAAAsJ,EAAAC,EAsCA,OArCAD,EAAA,CAAA,qBACA5V,KAAA,qBAAA9W,KAAA+iB,YAAA,QAAA,WACA/iB,KAAA6kB,wBAAA7kB,KAAA2iB,WAAA9U,WACA6e,EAAA5V,KAAA9W,KAAA2iB,WAAA9U,WAEA7N,KAAAikB,QACAyI,EAAA5V,KAAA,cAEA6V,EAAA,CACAC,MAAAF,EAAAlO,KAAA,KACAsD,MAAA9hB,KAAA2iB,WAAAb,OAEA9hB,KAAA2iB,WAAAvQ,GAAAxK,SACA+kB,EAAAva,GAAApS,KAAA2iB,WAAAvQ,GAAA5D,QAAA,SAAA,KAAA,WAEAxO,KAAA6sB,UAAAzQ,EAAA,UAAAuQ,GACA3sB,KAAA6sB,UAAA7rB,MAAAhB,KAAA8qB,mBACA9qB,KAAA+iB,YACA/iB,KAAA6sB,UAAAtsB,KAAAP,KAAAyrB,kBAEAzrB,KAAA6sB,UAAAtsB,KAAAP,KAAAwrB,mBAEAxrB,KAAAusB,cAAAnuB,OAAA0uB,MAAA9sB,KAAA6sB,WACA7sB,KAAA+sB,SAAA/sB,KAAA6sB,UAAAG,KAAA,mBAAAjG,QACA/mB,KAAAitB,aAAAjtB,KAAA6sB,UAAAG,KAAA,SAAAjG,QACA/mB,KAAAktB,eAAAltB,KAAA6sB,UAAAG,KAAA,qBAAAjG,QACA/mB,KAAAmqB,qBACAnqB,KAAAmtB,kBAAAntB,KAAA6sB,UAAAG,KAAA,iBAAAjG,QACA/mB,KAAA+iB,aACA/iB,KAAAotB,eAAAptB,KAAA6sB,UAAAG,KAAA,qBAAAjG,QACA/mB,KAAAqtB,iBAAArtB,KAAA6sB,UAAAG,KAAA,mBAAAjG,UAEA/mB,KAAAqtB,iBAAArtB,KAAA6sB,UAAAG,KAAA,qBAAAjG,QACA/mB,KAAAstB,cAAAttB,KAAA6sB,UAAAG,KAAA,kBAAAjG,SAEA/mB,KAAA6nB,gBACA7nB,KAAAutB,gBACAvtB,KAAAwtB,sBAGA3M,EAAAd,UAAAuD,SAAA,WACA,OAAAtjB,KAAAusB,cAAA/S,QAAA,eAAA,CACAwS,OAAAhsB,QAIA6gB,EAAAd,UAAAsD,mBAAA,WACA,IAAAE,EAmHA,OAnHAvjB,KAAA6sB,UAAAxuB,GAAA,qBAAAklB,EAIAvjB,KAHA,SAAAyjB,GACAF,EAAA8C,oBAAA5C,MAGAzjB,KAAA6sB,UAAAxuB,GAAA,kBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAkK,kBAAAhK,IAFA,CAIAzjB,OACAA,KAAA6sB,UAAAxuB,GAAA,mBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA8C,oBAAA5C,IAFA,CAIAzjB,OACAA,KAAA6sB,UAAAxuB,GAAA,iBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAkK,kBAAAhK,IAFA,CAIAzjB,OACAA,KAAA6sB,UAAAxuB,GAAA,oBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA2C,YAAAzC,IAFA,CAIAzjB,OACAA,KAAA6sB,UAAAxuB,GAAA,oBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA4C,YAAA1C,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,iBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA+H,uBAAA7H,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,mBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA2H,yBAAAzH,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,kBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA6H,wBAAA3H,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,0CAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAmK,0BAAAjK,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,oBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAyH,0BAAAvH,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,mBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA4H,yBAAA1H,IAFA,CAIAzjB,OACAA,KAAAktB,eAAA7uB,GAAA,kBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA8H,wBAAA5H,IAFA,CAIAzjB,OACAA,KAAAusB,cAAAluB,GAAA,wBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAmE,qBAAAjE,IAFA,CAIAzjB,OACAA,KAAAusB,cAAAluB,GAAA,yBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAK,eAAAH,IAFA,CAIAzjB,OACAA,KAAAusB,cAAAluB,GAAA,qBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA8C,oBAAA5C,IAFA,CAIAzjB,OACAA,KAAAusB,cAAAluB,GAAA,sBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAoK,YAAAlK,IAFA,CAIAzjB,OACAA,KAAAitB,aAAA5uB,GAAA,cAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA+C,WAAA7C,IAFA,CAIAzjB,OACAA,KAAAitB,aAAA5uB,GAAA,eAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAoH,cAAAlH,IAFA,CAIAzjB,OACAA,KAAAitB,aAAA5uB,GAAA,iBAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAwG,gBAAAtG,IAFA,CAIAzjB,OACAA,KAAAitB,aAAA5uB,GAAA,eAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAA6C,YAAA3C,IAFA,CAIAzjB,OACAA,KAAAitB,aAAA5uB,GAAA,aAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAsH,wBAAApH,IAFA,CAIAzjB,OACAA,KAAAitB,aAAA5uB,GAAA,eAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAsH,wBAAApH,IAFA,CAIAzjB,OACAA,KAAA+iB,YACA/iB,KAAAotB,eAAA/uB,GAAA,eAAA,SAAAklB,GACA,OAAA,SAAAE,GACAF,EAAAqG,cAAAnG,IAFA,CAIAzjB,OAEAA,KAAA6sB,UAAAxuB,GAAA,gBAAA,SAAAolB,GACAA,EAAAoG,qBAKAhJ,EAAAd,UAAA9f,QAAA,WAUA,OATAmc,EAAApc,KAAA6sB,UAAA,GAAAe,eAAA1tB,IAAA,eAAAF,KAAAwjB,mBACAxjB,KAAA6tB,iBAAAjmB,OAAA,GACA5H,KAAA6tB,iBAAA3tB,IAAA,gBAEAF,KAAAitB,aAAA,GAAAa,WACA9tB,KAAAusB,cAAA,GAAAuB,SAAA9tB,KAAAitB,aAAA,GAAAa,UAEA9tB,KAAA6sB,UAAAkB,SACA/tB,KAAAusB,cAAAyB,WAAA,UACAhuB,KAAAusB,cAAA3sB,QAGAihB,EAAAd,UAAAkO,sBAAA,WAOA,OANAjuB,KAAA8pB,YAAA9pB,KAAA2iB,WAAAZ,UAAA/hB,KAAAusB,cAAA2B,QAAA,YAAAzU,GAAA,aACAzZ,KAAA6sB,UAAAsB,YAAA,kBAAAnuB,KAAA8pB,aACA9pB,KAAAitB,aAAA,GAAAlL,SAAA/hB,KAAA8pB,YACA9pB,KAAA+iB,aACA/iB,KAAAstB,cAAAptB,IAAA,eAAAF,KAAA4jB,gBAEA5jB,KAAA8pB,YACA9pB,KAAA2tB,cACA3tB,KAAA+iB,iBAAA,EACA/iB,KAAAstB,cAAAjvB,GAAA,eAAA2B,KAAA4jB,iBAIA/C,EAAAd,UAAAsG,oBAAA,SAAA5C,GACA,IAAA/B,EACA,IAAA1hB,KAAA8pB,YAMA,OAHArG,GAAA,eAAA/B,EAAA+B,EAAAtM,OAAA,eAAAuK,GAAA1hB,KAAA+jB,iBACAN,EAAAoG,iBAEA,MAAApG,GAAArH,EAAAqH,EAAA2K,QAAAzf,SAAA,4BAAA,GACA3O,KAAA6jB,aAMA7jB,KAAA+iB,cAAAU,GAAArH,EAAAqH,EAAA2K,QAAA,KAAApuB,KAAAstB,cAAA,KAAAlR,EAAAqH,EAAA2K,QAAAF,QAAA,mBAAAtmB,SACA6b,EAAAoG,iBACA7pB,KAAAgoB,mBAPAhoB,KAAA+iB,aACA/iB,KAAAitB,aAAAoB,IAAA,IAEAjS,EAAApc,KAAA6sB,UAAA,GAAAe,eAAAvvB,GAAA,eAAA2B,KAAAwjB,mBACAxjB,KAAAkoB,gBAKAloB,KAAA4jB,mBAIA/C,EAAAd,UAAA0N,kBAAA,SAAAhK,GACA,GAAA,SAAAA,EAAA2K,OAAApO,WAAAhgB,KAAA8pB,YACA,OAAA9pB,KAAAsuB,cAAA7K,IAIA5C,EAAAd,UAAA2N,0BAAA,SAAAjK,GACA,IAAA8K,EAIA,GAHA9K,EAAA/b,gBACA6mB,EAAA9K,EAAA/b,cAAA8mB,SAAA/K,EAAA/b,cAAA+mB,YAAAhL,EAAA/b,cAAAgnB,QAEA,MAAAH,EAKA,OAJA9K,EAAAoG,iBACA,mBAAApG,EAAAtM,OACAoX,GAAA,IAEAvuB,KAAAktB,eAAAlb,UAAAuc,EAAAvuB,KAAAktB,eAAAlb,cAIA6O,EAAAd,UAAAwG,UAAA,SAAA9C,GACA,IAAAzjB,KAAA6jB,cAAA7jB,KAAA6sB,UAAAle,SAAA,2BACA,OAAA3O,KAAA2tB,eAIA9M,EAAAd,UAAA4N,YAAA,WAQA,OAPAvR,EAAApc,KAAA6sB,UAAA,GAAAe,eAAA1tB,IAAA,eAAAF,KAAAwjB,mBACAxjB,KAAA6jB,cAAA,EACA7jB,KAAAioB,eACAjoB,KAAA6sB,UAAAne,YAAA,2BACA1O,KAAAqqB,mBACArqB,KAAA2uB,4BACA3uB,KAAAmqB,qBACAnqB,KAAAitB,aAAA2B,QAGA/N,EAAAd,UAAA6D,eAAA,WACA,IAAA5jB,KAAA8pB,YAMA,OAHA9pB,KAAA6sB,UAAA9tB,SAAA,2BACAiB,KAAA6jB,cAAA,EACA7jB,KAAAitB,aAAAoB,IAAAruB,KAAAitB,aAAAoB,OACAruB,KAAAitB,aAAA4B,SAGAhO,EAAAd,UAAA2D,kBAAA,SAAAD,GACA,IAAAqL,EAEA,OADAA,EAAA1S,EAAAqH,EAAA2K,QAAAW,QAAA,sBACAnnB,QAAA5H,KAAA6sB,UAAA,KAAAiC,EAAA,GACA9uB,KAAA6jB,cAAA,EAEA7jB,KAAA2tB,eAIA9M,EAAAd,UAAA8H,cAAA,WAsBA,OArBA7nB,KAAAgvB,SAAA,EACAhvB,KAAA2pB,sBAAA,KACA3pB,KAAA4mB,aAAA9F,EAAA0B,gBAAAxiB,KAAA2iB,YACA3iB,KAAA+iB,YACA/iB,KAAAotB,eAAAJ,KAAA,oBAAAe,UAEA/tB,KAAAinB,2BACAjnB,KAAAskB,gBAAAtkB,KAAA2iB,WAAAvL,QAAAxP,QAAA5H,KAAAqkB,0BACArkB,KAAAitB,aAAA,GAAAgC,UAAA,EACAjvB,KAAA6sB,UAAA9tB,SAAA,sCAEAiB,KAAAitB,aAAA,GAAAgC,UAAA,EACAjvB,KAAA6sB,UAAAne,YAAA,sCAGA1O,KAAAgpB,uBAAAhpB,KAAAwmB,qBAAA,CACAO,OAAA,KAEA/mB,KAAAiuB,wBACAjuB,KAAA2uB,4BACA3uB,KAAAmqB,qBACAnqB,KAAAgvB,SAAA,GAGAnO,EAAAd,UAAAmP,oBAAA,SAAAC,GACA,IAAAC,EAAAC,EAAA5pB,EAAA6pB,EAAAC,EACA,GAAAJ,EAAAvnB,OAAA,CASA,GARA5H,KAAA4nB,yBACA5nB,KAAAwvB,iBAAAL,EACAnvB,KAAAwvB,iBAAAzwB,SAAA,eAGAuwB,GAFA7pB,EAAA2P,SAAApV,KAAAktB,eAAAhuB,IAAA,aAAA,MACAqwB,EAAAvvB,KAAAktB,eAAAlb,cAGAod,GADAC,EAAArvB,KAAAwvB,iBAAArmB,WAAApC,IAAA/G,KAAAktB,eAAAlb,aACAhS,KAAAwvB,iBAAApmB,gBACAkmB,EACA,OAAAtvB,KAAAktB,eAAAlb,UAAAod,EAAA3pB,EAAA,EAAA2pB,EAAA3pB,EAAA,GACA,GAAA4pB,EAAAE,EACA,OAAAvvB,KAAAktB,eAAAlb,UAAAqd,KAKAxO,EAAAd,UAAA6H,uBAAA,WAIA,OAHA5nB,KAAAwvB,kBACAxvB,KAAAwvB,iBAAA9gB,YAAA,eAEA1O,KAAAwvB,iBAAA,MAGA3O,EAAAd,UAAAmI,aAAA,WACA,OAAAloB,KAAA+iB,aAAA/iB,KAAA2kB,sBAAA3kB,KAAA0pB,iBACA1pB,KAAAusB,cAAA/S,QAAA,qBAAA,CACAwS,OAAAhsB,QAEA,IAEAA,KAAA6sB,UAAA9tB,SAAA,oBACAiB,KAAA+jB,iBAAA,EACA/jB,KAAAitB,aAAA4B,QACA7uB,KAAAitB,aAAAoB,IAAAruB,KAAAuqB,0BACAvqB,KAAA8nB,iBACA9nB,KAAAusB,cAAA/S,QAAA,0BAAA,CACAwS,OAAAhsB,SAIA6gB,EAAAd,UAAAiJ,uBAAA,SAAAvC,GACA,OAAAzmB,KAAAktB,eAAA3sB,KAAAkmB,IAGA5F,EAAAd,UAAAkI,aAAA,WAQA,OAPAjoB,KAAA+jB,kBACA/jB,KAAA4nB,yBACA5nB,KAAA6sB,UAAAne,YAAA,oBACA1O,KAAAusB,cAAA/S,QAAA,yBAAA,CACAwS,OAAAhsB,QAGAA,KAAA+jB,iBAAA,GAGAlD,EAAAd,UAAAwN,cAAA,SAAA4B,GACA,IAAAM,EACA,GAAAzvB,KAAA2iB,WAAAmL,SAGA,OAFA2B,EAAAzvB,KAAA2iB,WAAAmL,SACA9tB,KAAA2iB,WAAAmL,UAAA,EACA9tB,KAAAitB,aAAA,GAAAa,SAAA2B,GAIA5O,EAAAd,UAAAyN,mBAAA,WAKA,GAJAxtB,KAAA6tB,iBAAA7tB,KAAAusB,cAAA2B,QAAA,UACAluB,KAAA6tB,iBAAAjmB,QAAA5H,KAAA2iB,WAAAvQ,GAAAxK,SACA5H,KAAA6tB,iBAAAzR,EAAA,cAAApc,KAAA2iB,WAAAvQ,GAAA,OAEApS,KAAA6tB,iBAAAjmB,OAAA,EACA,OAAA5H,KAAA6tB,iBAAAxvB,GAAA,eAAA2B,KAAA6iB,sBAIAhC,EAAAd,UAAA4O,0BAAA,WACA,OAAA3uB,KAAA+iB,aAAA/iB,KAAA0pB,gBAAA,IAAA1pB,KAAA6jB,cACA7jB,KAAAitB,aAAAoB,IAAAruB,KAAAulB,cACAvlB,KAAAitB,aAAAluB,SAAA,aAEAiB,KAAAitB,aAAAoB,IAAA,IACAruB,KAAAitB,aAAAve,YAAA,aAIAmS,EAAAd,UAAAuL,uBAAA,SAAA7H,GACA,IAAA2K,EAEA,IADAA,EAAAhS,EAAAqH,EAAA2K,QAAAzf,SAAA,iBAAAyN,EAAAqH,EAAA2K,QAAAhS,EAAAqH,EAAA2K,QAAAF,QAAA,kBAAAnH,SACAnf,OAGA,OAFA5H,KAAAwvB,iBAAApB,EACApuB,KAAAwqB,cAAA/G,GACAzjB,KAAAitB,aAAA4B,SAIAhO,EAAAd,UAAAmL,yBAAA,SAAAzH,GACA,IAAA2K,EAEA,GADAA,EAAAhS,EAAAqH,EAAA2K,QAAAzf,SAAA,iBAAAyN,EAAAqH,EAAA2K,QAAAhS,EAAAqH,EAAA2K,QAAAF,QAAA,kBAAAnH,QAEA,OAAA/mB,KAAAkvB,oBAAAd,IAIAvN,EAAAd,UAAAqL,wBAAA,SAAA3H,GACA,GAAArH,EAAAqH,EAAA2K,QAAAzf,SAAA,kBAAAyN,EAAAqH,EAAA2K,QAAAF,QAAA,kBAAAnH,QACA,OAAA/mB,KAAA4nB,0BAIA/G,EAAAd,UAAAiH,aAAA,SAAAtL,GACA,IAAAgU,EAAAC,EAWApM,EAOA,OAjBAmM,EAAAtT,EAAA,SAAA,CACAwQ,MAAA,kBACArsB,KAAA,SAAAP,KAAAimB,aAAAvK,GAAA,WACAA,EAAAqG,SACA2N,EAAA3wB,SAAA,4BAEA4wB,EAAAvT,EAAA,QAAA,CACAwQ,MAAA,sBACAgD,0BAAAlU,EAAAkG,eAEAvjB,GAAA,gBAAAklB,EAIAvjB,KAHA,SAAAyjB,GACA,OAAAF,EAAAsM,0BAAApM,MAGAiM,EAAA1wB,OAAA2wB,IAEA3vB,KAAAqtB,iBAAAyC,OAAAJ,IAGA7O,EAAAd,UAAA8P,0BAAA,SAAApM,GAGA,GAFAA,EAAAoG,iBACApG,EAAA9L,mBACA3X,KAAA8pB,YACA,OAAA9pB,KAAA+vB,eAAA3T,EAAAqH,EAAA2K,UAIAvN,EAAAd,UAAAgQ,eAAA,SAAAC,GACA,GAAAhwB,KAAAiwB,gBAAAD,EAAA,GAAA1K,aAAA,4BAUA,OATAtlB,KAAA6jB,aACA7jB,KAAAitB,aAAA4B,QAEA7uB,KAAA2uB,4BAEA3uB,KAAA+iB,aAAA/iB,KAAA0pB,gBAAA,GAAA1pB,KAAAuqB,yBAAA3iB,OAAA,GACA5H,KAAAioB,eAEA+H,EAAA9B,QAAA,MAAAnH,QAAAgH,SACA/tB,KAAAmqB,sBAIAtJ,EAAAd,UAAAuO,cAAA,WAOA,GANAtuB,KAAA+nB,8BACA/nB,KAAA2iB,WAAAvL,QAAA,GAAAgL,UAAA,EACApiB,KAAAinB,2BACAjnB,KAAA2uB,4BACA3uB,KAAA2nB,wBACA3nB,KAAAkwB,4BACAlwB,KAAA6jB,aACA,OAAA7jB,KAAAioB,gBAIApH,EAAAd,UAAA4H,sBAAA,WAEA,OADA3nB,KAAAwsB,sBAAAxsB,KAAA2iB,WAAA8J,cACAzsB,KAAAstB,cAAAN,KAAA,QAAAe,UAGAlN,EAAAd,UAAAyK,cAAA,SAAA/G,GACA,IAAA0M,EAAAzU,EACA,GAAA1b,KAAAwvB,iBAGA,OAFAW,EAAAnwB,KAAAwvB,iBACAxvB,KAAA4nB,yBACA5nB,KAAA+iB,aAAA/iB,KAAA2kB,sBAAA3kB,KAAA0pB,iBACA1pB,KAAAusB,cAAA/S,QAAA,qBAAA,CACAwS,OAAAhsB,QAEA,IAEAA,KAAA+iB,YACAoN,EAAAzhB,YAAA,iBAEA1O,KAAA+nB,8BAEAoI,EAAApxB,SAAA,oBACA2c,EAAA1b,KAAA4mB,aAAAuJ,EAAA,GAAA7K,aAAA,6BACAlD,UAAA,EACApiB,KAAA2iB,WAAAvL,QAAAsE,EAAAwF,eAAAkB,UAAA,EACApiB,KAAA2pB,sBAAA,KACA3pB,KAAA+iB,YACA/iB,KAAAgnB,aAAAtL,GAEA1b,KAAAinB,yBAAAjnB,KAAAimB,aAAAvK,IAEA1b,KAAA+iB,eAAA/iB,KAAAqlB,wBAAA5B,EAAA2M,SAAA3M,EAAA4M,SACA5M,EAAA2M,SAAA3M,EAAA4M,QACArwB,KAAA8nB,eAAA,CACAoB,gBAAA,KAGAlpB,KAAAitB,aAAAoB,IAAA,IACAruB,KAAA8nB,mBAGA9nB,KAAAioB,eACAjoB,KAAA2uB,8BAEA3uB,KAAA+iB,aAAA/iB,KAAA2iB,WAAA8J,gBAAAzsB,KAAAwsB,wBACAxsB,KAAAkwB,0BAAA,CACA9N,SAAApiB,KAAA2iB,WAAAvL,QAAAsE,EAAAwF,eAAAtgB,QAGAZ,KAAAwsB,sBAAAxsB,KAAA2iB,WAAA8J,cACAhJ,EAAAoG,iBACA7pB,KAAAmqB,uBAIAtJ,EAAAd,UAAAkH,yBAAA,SAAAlL,GAUA,OATA,MAAAA,IACAA,EAAA/b,KAAAulB,cAEAxJ,IAAA/b,KAAAulB,aACAvlB,KAAAstB,cAAAvuB,SAAA,mBAEAiB,KAAAswB,gCACAtwB,KAAAstB,cAAA5e,YAAA,mBAEA1O,KAAAstB,cAAAN,KAAA,QAAAzsB,KAAAwb,IAGA8E,EAAAd,UAAAkQ,gBAAA,SAAAtmB,GACA,IAAA4mB,EAEA,OADAA,EAAAvwB,KAAA4mB,aAAAjd,IACA3J,KAAA2iB,WAAAvL,QAAAmZ,EAAArP,eAAAa,WACAwO,EAAAnO,UAAA,EACApiB,KAAA2iB,WAAAvL,QAAAmZ,EAAArP,eAAAkB,UAAA,EACApiB,KAAA2pB,sBAAA,KACA3pB,KAAA4nB,yBACA5nB,KAAA+jB,iBACA/jB,KAAA8nB,iBAEA9nB,KAAAkwB,0BAAA,CACAM,WAAAxwB,KAAA2iB,WAAAvL,QAAAmZ,EAAArP,eAAAtgB,QAEAZ,KAAAmqB,sBACA,IAMAtJ,EAAAd,UAAAuQ,8BAAA,WACA,GAAAtwB,KAAAokB,sBAMA,OAHApkB,KAAAstB,cAAAN,KAAA,QAAAplB,QACA5H,KAAAstB,cAAAN,KAAA,QAAAjG,QAAA+F,MAAA,6CAEA9sB,KAAAstB,cAAAvuB,SAAA,gCAGA8hB,EAAAd,UAAAwK,uBAAA,WACA,OAAAvqB,KAAAitB,aAAAoB,OAGAxN,EAAAd,UAAA8I,gBAAA,WACA,OAAAzM,EAAAqU,KAAAzwB,KAAAuqB,2BAGA1J,EAAAd,UAAA8F,YAAA,SAAA9J,GACA,OAAAK,EAAA,UAAAL,KAAAA,GAAAxb,QAGAsgB,EAAAd,UAAAoJ,6BAAA,WACA,IAAAuH,EAAAC,EAGA,GAAA,OADAD,GADAC,EAAA3wB,KAAA+iB,YAAA,GAAA/iB,KAAAktB,eAAAF,KAAA,mCACAplB,OAAA+oB,EAAA5J,QAAA/mB,KAAAktB,eAAAF,KAAA,kBAAAjG,SAEA,OAAA/mB,KAAAkvB,oBAAAwB,IAIA7P,EAAAd,UAAAkJ,WAAA,SAAA0C,GACA,IAAAiF,EAGA,OAFAA,EAAA5wB,KAAA0rB,oBAAAC,GACA3rB,KAAAktB,eAAAluB,OAAA4xB,GACA5wB,KAAAusB,cAAA/S,QAAA,oBAAA,CACAwS,OAAAhsB,QAIA6gB,EAAAd,UAAA6I,iBAAA,WACA,OAAA5oB,KAAAktB,eAAAF,KAAA,eAAAe,UAGAlN,EAAAd,UAAA2K,cAAA,WACA,IAAAmG,EACA,OAAA7wB,KAAA+jB,iBAAA/jB,KAAAwvB,kBACAqB,EAAA7wB,KAAAwvB,iBAAAsB,QAAA,oBAAA/J,SAEA/mB,KAAAkvB,oBAAA2B,QADA,EAIA7wB,KAAAkoB,gBAIArH,EAAAd,UAAA0K,YAAA,WACA,IAAAsG,EACA,OAAA/wB,KAAA+jB,iBAAA/jB,KAAA+iB,YAEA/iB,KAAAwvB,kBACAuB,EAAA/wB,KAAAwvB,iBAAAwB,QAAA,qBACAppB,OACA5H,KAAAkvB,oBAAA6B,EAAAhK,UAEA/mB,KAAA0pB,gBAAA,GACA1pB,KAAAioB,eAEAjoB,KAAA4nB,+BARA,EADA5nB,KAAAkoB,gBAcArH,EAAAd,UAAA6K,mBAAA,WACA,IAAAqG,EACA,OAAAjxB,KAAAoqB,oBACApqB,KAAA+vB,eAAA/vB,KAAAoqB,mBAAA4C,KAAA,KAAAjG,SACA/mB,KAAAqqB,qBAEA4G,EAAAjxB,KAAAqtB,iBAAA6D,SAAA,oBAAAC,QACAvpB,SAAAqpB,EAAAtiB,SAAA,2BACA3O,KAAAoqB,mBAAA6G,EACAjxB,KAAA0kB,yBACA1kB,KAAA4qB,qBAEA5qB,KAAAoqB,mBAAArrB,SAAA,6BALA,GAWA8hB,EAAAd,UAAAsK,iBAAA,WAIA,OAHArqB,KAAAoqB,oBACApqB,KAAAoqB,mBAAA1b,YAAA,uBAEA1O,KAAAoqB,mBAAA,MAGAvJ,EAAAd,UAAAoK,mBAAA,WACA,IAAA3lB,EAAAyQ,EAAAC,EAAAvQ,EAAAysB,EAAAC,EAAArwB,EACA,GAAAhB,KAAA+iB,YAAA,CAWA,IARAqO,EAAA,CACAjoB,SAAA,WACArC,KAAA,UACAC,IAAA,UACAuqB,QAAA,OACAC,WAAA,OAGAtc,EAAA,EAAAC,GADAmc,EAAA,CAAA,WAAA,YAAA,aAAA,aAAA,aAAA,gBAAA,kBACAzpB,OAAAqN,EAAAC,EAAAD,IAEAmc,EADAzsB,EAAA0sB,EAAApc,IACAjV,KAAAitB,aAAA/tB,IAAAyF,GAUA,OARAH,EAAA4X,EAAA,WAAAld,IAAAkyB,IACArV,KAAA/b,KAAAuqB,0BACAnO,EAAA,QAAApd,OAAAwF,GACAxD,EAAAwD,EAAAxD,QAAA,GACAwD,EAAAupB,SACA/tB,KAAA6sB,UAAApT,GAAA,cACAzY,EAAAH,KAAA2wB,IAAAxxB,KAAA6sB,UAAAxjB,aAAA,GAAArI,IAEAhB,KAAAitB,aAAAjsB,MAAAA,KAGA6f,EAAAd,UAAAmQ,0BAAA,SAAAuB,GAEA,OADAzxB,KAAAusB,cAAA/S,QAAA,QAAAiY,GACAzxB,KAAAusB,cAAA/S,QAAA,SAAAiY,IAGA5Q,EArsBA,CAusBAD,IAEA9D,KAAA9c,MC90CA,WAEA,aASA,SAAA0xB,EAAAta,GACA,IAAAvU,EAAAuZ,EAAApc,MAEA+b,GADA3E,EAAAA,GAAAvU,EAAAtD,QACAoyB,mBAAA,GACAC,OAAA,IAAAxa,EAAAya,yBAAAza,EAAAya,yBAAA,IAAA,GACAC,OAAA,IAAA1a,EAAA2a,uBAAA,IAAA3a,EAAA2a,uBAAA,GAEAC,EAAAnxB,KAAAC,SAAAmxB,SAAA,IAAAlT,MAAA,EAAA,IACAmT,EAAArvB,EAAAmY,KAAA,qBAAA,GAEAnY,EAAAmY,KAAA,CACAmX,mBAAA,uBAAAH,EAAA,IAAAE,IAGArvB,EAAAuvB,KAAA,gBAAAR,EAAA,oCAEA,IAAArxB,EAAA,iCAAAqxB,EAAA,0CAAAI,EAAA,uCAEA,GAAA,KAAAjW,EACAxb,GAAA,GAAAwb,MACA,CACA,IAAAsW,EAAAjW,EAAA0V,GACA,KAAAA,GAAAO,EAAAzqB,SACArH,GAAA8xB,EAAA9xB,QAGAA,GAAA,UAEA6b,EAAA7b,GAAA+xB,YAAAzvB,GAIAuZ,EAAAvH,GAAA6c,4BAAAA,EAEAtV,EAAA/Y,UAAAoZ,OAAA,WAEAL,EAAA,sBACAjO,MAAA,WAEAujB,EAAA3U,MAAA/c,SAIAoc,EAAA,QACA/d,GAAA,qBAAA,sBAAA,WACA,IACA6zB,EADA9V,EAAApc,MACAgb,KAAA,oBACAuX,EAAAL,EAAAM,OAAA,EAAAN,EAAA5jB,QAAA,MACA8N,EAAA,IAAAmW,GACAvX,KAAA,cAAA,YAEA3c,GAAA,aAAA,sBAAA,SAAAgJ,GACA,IACA6qB,EADA9V,EAAApc,MACAgb,KAAA,oBACAuX,EAAAL,EAAAM,OAAA,EAAAN,EAAA5jB,QAAA,MACAmkB,EAAArW,EAAA,IAAAmW,GACAE,EAAAhZ,GAAA,WAKAgZ,EAAAzX,KAAA,cAAA,WAGA3c,GAAA,WAAA,sBAAA,SAAAgJ,GACA,IACA6qB,EADA9V,EAAApc,MACAgb,KAAA,oBACAuX,EAAAL,EAAAM,OAAA,EAAAN,EAAA5jB,QAAA,MACA8N,EAAA,IAAAmW,GAEAvX,KAAA,cAAA,WAEA3c,GAAA,aAAA,qBAAA,WACA+d,EAAApc,MACAgb,KAAA,cAAA,WAEA3c,GAAA,UAAA,sBAAA,SAAAgJ,GAGA,IACA6qB,EADA9V,EAAApc,MACAgb,KAAA,oBACAuX,EAAAL,EAAAM,OAAA,EAAAN,EAAA5jB,QAAA,MACAmkB,EAAArW,EAAA,IAAAmW,GAEA,IAAAlrB,EAAA6iB,SACAuI,EAAAzX,KAAA,cAAA,cAhGA;;;;;;;;;;;;;;;;;;;;;;;;;;ACyBA,SAAA7G,EAAA3S,EAAAkb,EAAA9G,GAAA,SAAAwH,EAAAE,EAAAJ,GAAA,IAAAR,EAAAY,GAAA,CAAA,IAAA9b,EAAA8b,GAAA,CAAA,IAAAX,EAAA,mBAAA+V,SAAAA,QAAA,IAAAxV,GAAAP,EAAA,OAAAA,EAAAW,GAAA,GAAA,GAAArI,EAAA,OAAAA,EAAAqI,GAAA,GAAA,IAAAK,EAAA,IAAApV,MAAA,uBAAA+U,EAAA,KAAA,MAAAK,EAAAgV,KAAA,mBAAAhV,EAAA,IAAAX,EAAAN,EAAAY,GAAA,CAAAsV,QAAA,IAAApxB,EAAA8b,GAAA,GAAAR,KAAAE,EAAA4V,SAAA,SAAAze,GAAA,IAAAuI,EAAAlb,EAAA8b,GAAA,GAAAnJ,GAAA,OAAAiJ,EAAAV,GAAAvI,KAAA6I,EAAAA,EAAA4V,QAAAze,EAAA3S,EAAAkb,EAAA9G,GAAA,OAAA8G,EAAAY,GAAAsV,QAAA,IAAA,IAAA3d,EAAA,mBAAAyd,SAAAA,QAAApV,EAAA,EAAAA,EAAA1H,EAAAhO,OAAA0V,IAAAF,EAAAxH,EAAA0H,IAAA,OAAAF,EAAA,CAAA,CAAAyV,EAAA,CAAA,SAAAH,EAAAI,EAAAF,GAOA,IACA,IAAAG,EAAA,IAAAjf,OAAAkf,YAAA,QAEA,GADAD,EAAAlJ,kBACA,IAAAkJ,EAAAE,iBAGA,MAAA,IAAA1qB,MAAA,6BAEA,MAAA4L,GACA,IAAA6e,EAAA,SAAA3rB,EAAA6rB,GACA,IAAAzP,EAAA0P,EAsBA,OArBAD,EAAAA,GAAA,CACAE,SAAA,EACAC,YAAA,EACA3E,YAAA7nB,IAGA4c,EAAApgB,SAAA6Q,YAAA,gBACAof,gBAAAjsB,EAAA6rB,EAAAE,QAAAF,EAAAG,WAAAH,EAAAxE,QACAyE,EAAA1P,EAAAoG,eACApG,EAAAoG,eAAA,WACAsJ,EAAArW,KAAA9c,MACA,IACAuzB,OAAAC,eAAAxzB,KAAA,mBAAA,CACAyzB,IAAA,WACA,OAAA,KAGA,MAAAtf,GACAnU,KAAAizB,kBAAA,IAGAxP,GAGAuP,EAAAjT,UAAAjM,OAAA4f,MAAA3T,UACAjM,OAAAkf,YAAAA,IAGA,IAAAW,EAAA,CAAA,SAAAjB,EAAAI,EAAAF,GAMA,aAEA,SAAAgB,EAAAxF,EAAAyF,GACA,GAAAzF,MAAAA,EACA,MAAA,IAAA0F,UAAA,2CAIA,IADA,IAAAC,EAAAR,OAAAnF,GACAnZ,EAAA,EAAAA,EAAA2H,UAAAhV,OAAAqN,IAAA,CACA,IAAA+e,EAAApX,UAAA3H,GACA,GAAA+e,MAAAA,EAKA,IADA,IAAAC,EAAAV,OAAAW,KAAAX,OAAAS,IACAG,EAAA,EAAAjf,EAAA+e,EAAArsB,OAAAusB,EAAAjf,EAAAif,IAAA,CACA,IAAAC,EAAAH,EAAAE,GACAE,EAAAd,OAAAe,yBAAAN,EAAAI,QACAvtB,IAAAwtB,GAAAA,EAAAE,aACAR,EAAAK,GAAAJ,EAAAI,KAIA,OAAAL,EAcAjB,EAAAF,QAAA,CACAgB,OAAAA,EACAY,SAbA,WACAjB,OAAAK,QACAL,OAAAC,eAAAD,OAAA,SAAA,CACAgB,YAAA,EACAE,cAAA,EACAC,UAAA,EACA9zB,MAAAgzB,OAUA,IAAAe,EAAA,CAAA,SAAAjC,EAAAI,EAAAF,GACA,aAEA,IAAAgC,EAAAlC,EAAA,YAEAmC,EAAA,SAAA13B,GACAA,EAAA0X,GAAAigB,WAAA,SAAAvY,GAIA,MAHA,kBAAAA,GACA,IAAAqY,EAAA50B,KAAAuc,GAEAvc,OAIA,GAAA,mBAAA+0B,QAAAA,OAAAC,IACAD,OAAA,CAAA,UAAAF,OACA,CACA,IAAAI,EAAAnhB,OAAA3W,OAAA2W,OAAA3W,OAAA2W,OAAAsI,OACA,IAAA6Y,GACAJ,EAAAI,GAIAnC,EAAAF,QAAAiC,GAEA,CAAAK,WAAA,IAAAC,EAAA,CAAA,SAAAzC,EAAAI,EAAAF,GACA,aAEAW,OAAAC,eAAAZ,EAAA,aAAA,CACAhyB,OAAA,IAGA,IAAAw0B,EAAA,WAAA,SAAAC,EAAAjH,EAAAkH,GAAA,IAAA,IAAArgB,EAAA,EAAAA,EAAAqgB,EAAA1tB,OAAAqN,IAAA,CAAA,IAAAsgB,EAAAD,EAAArgB,GAAAsgB,EAAAhB,WAAAgB,EAAAhB,aAAA,EAAAgB,EAAAd,cAAA,EAAA,UAAAc,IAAAA,EAAAb,UAAA,GAAAnB,OAAAC,eAAApF,EAAAmH,EAAAnnB,IAAAmnB,IAAA,OAAA,SAAAC,EAAAC,EAAAC,GAAA,OAAAD,GAAAJ,EAAAG,EAAAzV,UAAA0V,GAAAC,GAAAL,EAAAG,EAAAE,GAAAF,GAAA,GAEA9C,EAAA,yBAEA,IAAAiD,EAAAjD,EAAA,eAIA,IAAAkB,EAAAlB,EAAA,qBAAAkB,OAEAgC,EAAA,CACAC,QAAA,UACAC,SAAA,GACAC,QAAA,CACAC,SAAA,EACAC,eAAA,EACA1hB,MAAA,KACA2hB,SAAA,EACAC,UAAA,EACAC,YAAA,EACAC,IAAA,KACAC,GAAA,EACAC,GAAA,KACAC,eAAA,EACAC,KAAA,KACAC,SAAA,KACAC,KAAA,EACAC,eAAA,KACAC,OAAA,KACAC,SAAA,KACAC,YAAA,KACAC,IAAA,EACAC,SAAA,EACAC,MAAA,EACAC,MAAA,cACAlf,MAAA,OACAmf,UAAA,GAEAjxB,MAAA,OACAkxB,MAAA,CACAC,KAAA,EACAC,WAAA,EACAvB,UAAA,EACAwB,QAAA,EACAC,SAAA,KACAljB,MAAA,KACAxW,OAAA,KACA44B,MAAA,EACAe,UAAA,KACAC,SAAA,KACAC,UAAA,KACAC,UAAA,EACA/V,OAAA,EACA9gB,MAAA,KACA82B,OAAA,GAEAC,iBAAA,EACAC,eAAA,IACAC,WAAA,CACAnD,WAAA,cACAoD,gBAAA,oBACAC,eAAA,mBACAC,gBAAA,oBACAC,qBAAA,yBACAC,mBAAA,yBAEAC,KAAA,CACAC,YAAA,mCACAC,kBAAA,qCAIA7D,EAAA,WACA,SAAAA,EAAA8D,EAAArqB,GACA,IAAAkV,EAAAvjB,MApEA,SAAA24B,EAAAnD,GAAA,KAAAmD,aAAAnD,GAAA,MAAA,IAAA1B,UAAA,qCAsEA8E,CAAA54B,KAAA40B,GAEA,IAAAiE,EAAAjF,EAAA,GAAAgC,EAAAvnB,GACAyqB,EAAA,iBAAAJ,EAAAr1B,SAAA01B,iBAAAL,GAAAA,EACAvnB,EAAA9N,SAAA21B,cAAA,QACAf,EAAAY,EAAAZ,WACAgB,EAAAJ,EAAAb,eACA,GAAAkB,QAAApc,KAAAgc,GAAA,SAAAK,GACAA,EAAA32B,iBAAA,SAAA,SAAA6E,GACA,MAAA8xB,EAAAC,SACA/xB,EAAAwiB,iBAEA,IAAAwP,EAAAF,EAAAG,QAAAD,QACAxD,EAAAsD,EAAAG,QAAAzD,SAAAgD,EAAAhD,QACAzjB,GAAA,EAAAujB,EAAA4D,aACAC,EAAAL,EAAAG,QAAAE,UAAAjW,EAAAkW,YAAAZ,EAAAhD,EAAAwD,GACA94B,EAAAgjB,EAAAmW,QAAAb,EAAAW,EAAApnB,IACA,EAAAujB,EAAA32B,QAAAmS,EAAA5Q,GACA,IAAAo5B,EAAAt2B,SAAAu2B,eAAAxnB,GACAynB,EAAAF,EAAAX,cAAA,+BACAW,EAAA9K,QACA8K,EAAAn3B,iBAAA,SAAA,YACA,EAAAmzB,EAAA52B,UAAA46B,EAAA1B,EAAAC,iBACAtf,YAAA,YACA,EAAA+c,EAAA5H,QAAA4L,GACAR,EAAAtK,UACAoK,MAEAU,EAAAn3B,iBAAA,WAAA,SAAA2R,GACA,IAAAA,EAAA8V,QACA9V,EAAA0V,iBACAxmB,SAAAy2B,gBAAAH,EACAE,EAAAhL,SAEA8K,EAAAvf,aAAA,aAAA,IACAuf,EAAA9K,aAIAgL,EAAAr3B,iBAAA,SAAA,YACA,EAAAmzB,EAAAoE,cAAAJ,EAAA,kBAkEA,OA5DAvE,EAAAR,EAAA,CAAA,CACAxmB,IAAA,aACAxN,MAAA,SAAAuF,GACA,IAAAkV,EAAAlV,EAAA4O,MAAA,KACA/T,EAAAkkB,OAAA7J,EAAA,IAGA,OADA,IADA6J,OAAA7J,EAAA,IACAra,EACA,MAEA,CACAoN,IAAA,iBACAxN,MAAA,SAAAM,GACA,IAAAyY,EAAA,GAIA,OAHA4Z,OAAAW,KAAAhzB,GAAAg4B,SAAA,SAAA9qB,GACAuL,GAAAvL,EAAA,IAAAlN,EAAAkN,GAAA,OAEAuL,EAAA6Y,OAAA,EAAA7Y,EAAA/R,OAAA,KAEA,CACAwG,IAAA,cACAxN,MAAA,SAAAi4B,EAAAhD,EAAAwD,GACA,MAAA,YAAAxD,EACA71B,KAAAg6B,cAAAnB,EAAA9C,QAAAsD,GACA,UAAAxD,EACA71B,KAAAi6B,YAAApB,EAAAxB,MAAAgC,GACA,aAAAxD,EACA71B,KAAAk6B,eAAArB,EAAA/C,SAAAuD,GAEA,KAEA,CACAjrB,IAAA,cACAxN,MAAA,SAAAy2B,EAAAgC,GAEA,MAAA,4BAAAA,EAAA,IADAr5B,KAAAm6B,eAAA9C,KAGA,CACAjpB,IAAA,gBACAxN,MAAA,SAAAm1B,EAAAsD,GACA,IAAA/Q,EAAAtoB,KAAAm6B,eAAApE,GACA,OAAA,IAAAA,EAAAqB,SACA,oCAAAiC,EAAA,IAAA/Q,EAGA,2BAAA+Q,EAAA,IAAA/Q,IAEA,CACAla,IAAA,iBACAxN,MAAA,SAAAk1B,EAAAuD,GACA,MAAA,4FAAAA,EAAA,IAAAr5B,KAAAm6B,eAAArE,KAEA,CACA1nB,IAAA,UACAxN,MAAA,SAAAi4B,EAAAW,EAAApnB,GACA,IAAAgoB,EAAAp6B,KAAAq6B,WAAAxB,EAAA1yB,OACA8xB,EAAAY,EAAAZ,WACA,MAAA,uBAAAA,EAAAnD,WAAA,6CAAA+D,EAAAN,KAAAC,YAAA,SAAApmB,EAAA,2BAAA6lB,EAAAE,eAAA,6BAAAF,EAAAG,gBAAA,+BAAAH,EAAAI,qBAAA,2BAAA+B,EAAA,oCAAAnC,EAAAK,mBAAA,4CAAAO,EAAAN,KAAAE,kBAAA,sEAAAe,EAAA,sCAAAX,EAAAd,gBAAA,iGAIAnD,EA9GA,GAiHAhC,EAAA0H,QAAA1F,EACA9B,EAAAF,QAAAA,EAAA,SAEA,CAAA2H,cAAA,EAAAC,wBAAA,EAAAC,oBAAA,IAAAC,EAAA,CAAA,SAAAhI,EAAAI,EAAAF,GACA,aAEAE,EAAAF,QAAAF,EAAA,YAEA,CAAAiI,UAAA,IAAAC,EAAA,CAAA,SAAAlI,EAAAI,EAAAF,GACA,aAEAW,OAAAC,eAAAZ,EAAA,aAAA,CACAhyB,OAAA,IAEAgyB,EAAA5zB,OAAA,SAAA6D,EAAAg4B,GACA,IAAAr2B,EAAAnB,SAAAoB,cAAA,OAEA,IADAD,EAAA2d,UAAA0Y,EACAr2B,EAAAvF,SAAA2I,OAAA,GACA/E,EAAAwX,YAAA7V,EAAAvF,SAAA,KAIA2zB,EAAA2G,UAAA,WACA,OAAApjB,KAAA3D,MAAAyf,SAAA,IAAApxB,KAAAC,SAAAmxB,SAAA,IAAAO,OAAA,EAAA,IAAAvV,eAGA2V,EAAA7E,OAAA,SAAAlrB,GACAA,GAAAA,EAAAoX,YACApX,EAAAoX,WAAAmE,YAAAvb,IAIA+vB,EAAA7zB,SAAA,SAAA8D,EAAAgL,GACAhL,EAAAi4B,UACAj4B,EAAAi4B,UAAAC,IAAAltB,GAEAhL,EAAAgL,WAAA,IAAAA,GAIA+kB,EAAAmH,aAAA,SAAA5K,EAAA6L,EAAA5jB,GACA,IAAA/P,OAAA,EACAyM,OAAAkf,YACA3rB,EAAA,IAAA2rB,YAAAgI,EAAA,CAAA3H,YAAA,KAEAhsB,EAAAhE,SAAA6Q,YAAA,gBACAof,gBAAA0H,GAAA,GAAA,EAAA5jB,GAEA+X,EAAA8L,cAAA5zB,KAGA,KAAA,GAAA,CAAA,ICjYA,SAAA+U,GAGAA,EAAA8e,QAAAC,sBAAA,0BAAA93B,SAAA2Q,gBAYAoI,EAAAvH,GAAAumB,WAAA,WACA,IAAAC,EAAA,CACAt0B,IAAA,EACAD,KAAA,EACA9F,MAAA,EACAjD,OAAA,EACAgC,OAAA,EACAuJ,MAAA,GAGA,GAAA,IAAAtJ,KAAA4H,OACA,OAAAyzB,EAGA,IAGAC,EAHAh5B,EAAAtC,KAAA,GACAu7B,EAAAj5B,EAAAsrB,cACA4N,EAAAD,EAAAvnB,gBAIA,IAAAoI,EAAAqf,SAAAD,EAAAl5B,GACA,OAAA+4B,EAIA,GAAAjf,EAAA8e,QAAAC,sBAAA,CAEA,IACAG,EAAAh5B,EAAA64B,wBACA,MAAAhnB,IAMA,IAAAmnB,EACA,OAAAD,EAKA,GAAAC,EAAAhyB,QAAAgyB,EAAAx0B,MACAw0B,EAAAv0B,MAAAu0B,EAAAv7B,OACA,OAAAs7B,EAIA,IAAAK,EAxDA,SAAAp5B,GACA,OAAA8Z,EAAAuf,SAAAr5B,GACAA,EACA,IAAAA,EAAAs5B,WACAt5B,EAAAu5B,aAAAv5B,EAAAw5B,cAoDAC,CAAAR,GAEAF,EAAAt0B,IAAAu0B,EAAAv0B,KAAA20B,EAAAM,aAAAR,EAAAxpB,YAAAwpB,EAAAS,WAAA,GACAZ,EAAAv0B,KAAAw0B,EAAAx0B,MAAA40B,EAAAQ,aAAAV,EAAAW,aAAAX,EAAAY,YAAA,GAEAf,EAAAr6B,MAAAs6B,EAAAhyB,MAAAgyB,EAAAx0B,KACAu0B,EAAAt9B,OAAAu9B,EAAAv7B,OAAAu7B,EAAAv0B,QACA,CAEA,GAAA,QAAA/G,KAAAd,IAAA,WACA,OAAAm8B,GAGAA,EAAAr7B,KAAA8H,UACA9G,MAAAhB,KAAAqJ,aACAgyB,EAAAt9B,OAAAiC,KAAAoJ,cAMA,OAHAiyB,EAAAt7B,OAAAs7B,EAAAt0B,IAAAs0B,EAAAt9B,OACAs9B,EAAA/xB,MAAA+xB,EAAAv0B,KAAAu0B,EAAAr6B,MAEAq6B,GAnFA,CAsFAl+B,QClFA,SAAAk/B,EAAAC,GACA,mBAAAvH,QAAAA,OAAAC,IACAD,OAAA,cAAAuH,EAAAD,IACA,iBAAAzJ,QACAE,OAAAF,QAAA0J,EAAAD,GAEAA,EAAAE,YAAAD,EAAAD,GANA,CAQAvoB,QAAA9T,MAAA,SAAAq8B,GAEA,aAKA,IAMAG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EANAP,EAAA,GACAQ,EAAA,GACAxe,IAAAlb,SAAA21B,iBAAAqD,EAAA75B,iBACA+Z,EAAA,GAEAygB,EAAA,EAEAC,EAAA,EAMArH,EAAA,CACAsH,UAAA,iBACAV,eAAA,MACAG,QAAA,KACAQ,qBAAA,gBACAC,2BAAA,uBACAC,iBAAA,OACAC,2BAAA,OACAC,WAAA,IACAC,cAAA,GACAC,aAAA,EACAT,OAAA,EAGAU,MAAA,aAEAC,UAAA,cAYAzE,EAAA,SAAA0E,EAAAnG,EAAAoG,GACA,GAAA,oBAAAtK,OAAAxT,UAAAkS,SAAAnV,KAAA8gB,GACA,IAAA,IAAAE,KAAAF,EACArK,OAAAxT,UAAAvH,eAAAsE,KAAA8gB,EAAAE,IACArG,EAAA3a,KAAA+gB,EAAAD,EAAAE,GAAAA,EAAAF,QAIA,IAAA,IAAA3oB,EAAA,EAAAC,EAAA0oB,EAAAh2B,OAAAqN,EAAAC,EAAAD,IACAwiB,EAAA3a,KAAA+gB,EAAAD,EAAA3oB,GAAAA,EAAA2oB,IAgFA,IAAAzP,EAAA,SAAAgB,EAAAthB,GACA,GAAAshB,EAAA2L,UACA3L,EAAA2L,UAAAiD,OAAAlwB,OACA,CACA,IAAAmU,EAAAmN,EAAAthB,UAAAkH,MAAA,KACAipB,EAAAhc,EAAA1T,QAAAT,GAEAmwB,GAAA,EACAhc,EAAAic,OAAAD,EAAA,GACAhc,EAAAlL,KAAAjJ,GAEAshB,EAAAthB,UAAAmU,EAAAxD,KAAA,OA0GA0f,EAAA,SAAA3a,GApCA,IAAA1gB,EACAwuB,EACA+I,EAYAmB,EAAAnc,EACA+e,EAGAn9B,EACAjD,EAnBA8E,EAqCA0gB,EApCA8N,EAAAvd,OAAAuJ,iBAAAxa,GACAu3B,EAAAgE,WAAA/M,EAAAnkB,aACAkxB,WAAA/M,EAAAlkB,cAkCAsvB,EAhCA55B,EAAAoR,YAAAmmB,EAkCA7W,EAAAyV,cAAA4D,GAAA3iB,aAAAsJ,EACAA,EAAAyV,cAAA4D,GAAA7R,YAEA,EAEA2R,EAAA2B,EAAA9a,GAAAhH,EAAAkhB,aACAR,GA/BA1B,EAAAl4B,SAAA+b,EAAAtL,OACAqqB,EAAA5C,EAAA+C,YAAA,eAAA/C,EAAA+C,WACA/C,EAAAvnB,gBAAAunB,EAAApqB,KAEAnQ,EAAAm9B,EAAAlqB,YACAlW,EAAAogC,EAAAI,aAGAnf,EAAArL,YAAA/S,EAAAoe,EAAArL,aACA/S,EAAAoe,EAAArL,WACAhW,EAAAqhB,EAAAof,aAGA,CAAAx9B,MAAAA,EAAAjD,OAAAA,IAkBAiD,OAQAu7B,EAAAkC,UAAA,SAAAlb,GAKA,IAhKAhhB,EAAAm8B,EAAAC,EACAC,EA+JAC,EAAA,IAAAtb,EAAA+B,aAAA,YAAAuZ,EAAAtiB,EAAAihB,eAhKAj7B,EA0KA,WAMA,IAAAu8B,EAAAvb,EAAA+B,aAAA,YAUA,IALA4Y,EAAA3a,GAKAkZ,GAAAC,GAAAnZ,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,GAAAq1B,EAAA1gB,EAAAghB,YAAAha,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,GAEA20B,EAAAwC,WAAAxb,EAAAub,GAEAZ,EAAA3a,GAEA0Z,EAAA1gB,EAAAghB,YAAAyB,EAAAzb,EAAAub,EAAAviB,EAAA+gB,4BAMA,KAAAb,GAAAM,EAAA+B,GAAA/B,EAAA+B,GAAAl3B,OAAA,IAAAq1B,EAAA1gB,EAAAghB,YAEAhB,EAAA0C,OAAA1b,EAAAub,GAEA7B,EAAA1gB,EAAAghB,YAAAyB,EAAAzb,EAAAub,EAAAviB,EAAA8gB,kBAMAN,EAAA+B,GAAAl3B,OAAA,IACA2b,EAAAyV,cAAA4D,GAAA9B,UAAA/M,OAAA,QAEAiR,EAAAzb,EAAAub,EAAAviB,EAAA8gB,mBAMA9Z,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,GAEA2b,EAAAuX,UAAAC,IAAA,YACAiE,EAAAzb,EAAAub,EAAAviB,EAAA+gB,6BAEA/Z,EAAAuX,UAAA/M,OAAA,YAMAmR,EAAA3b,EAAAub,IApOAJ,EAsOAG,EApOA,WACA,IAAAviB,EAAAtc,KAAAm/B,EAAAviB,UACAwiB,EAAA,WACAR,EAAA,KACAD,GAAAp8B,EAAAwa,MAAAT,EAAA6iB,IAEAE,EAAAV,IAAAC,EACAjmB,aAAAimB,GACAA,EAAAhmB,WAAAwmB,EAAAV,GACAW,GAAA98B,EAAAwa,MAAAT,EAAA6iB,QAkOA,IAAAD,EAAA,SAAA3b,EAAAub,GACA/B,EAAA+B,GAAAl3B,OAAA,GACA2b,EAAAyV,cAAA6D,GAAA/B,UAAAC,IAAA,0BACAxX,EAAAyV,cAAA6D,GAAA/B,UAAA/M,OAAA,2BACAxK,EAAAuX,UAAA/M,OAAA,6BAKAxK,EAAAyV,cAAA,0BAAA5e,aAAA,gBAAA,WAGAmJ,EAAAyV,cAAA6D,GAAA/B,UAAAC,IAAA,2BACAxX,EAAAyV,cAAA6D,GAAA/B,UAAA/M,OAAA,0BACAxK,EAAAuX,UAAAC,IAAA,6BAKAxX,EAAAyV,cAAA,0BAAA5e,aAAA,gBAAA,UAQAklB,EAAA,SAAA/b,EAAAub,GACAvb,EAAAyV,cAAA6D,GAAAziB,aAAA,oBAAA2iB,EAAA+B,GAAAl3B,SAGAo3B,EAAA,SAAAzb,EAAAub,EAAAjd,GACA0B,EAAAyV,cAAA6D,GAAA1a,UAAAN,GAOA0a,EAAAwC,WAAA,SAAAxb,EAAAub,GAMAvb,EAAAyV,cAAA4D,GAAA2C,YAAAhc,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,EACA2b,EAAAyV,cAAA4D,GAAA1iB,aAAAqJ,EAAAyV,cAAA2D,GAAA6C,iBAAAjc,EAAAyV,cAAA4D,GAAA2C,YACAhc,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,GACA2b,EAAAyV,cAAA4D,GAAAviB,YAAAkJ,EAAAyV,cAAA2D,GAAA6C,kBAMAzC,EAAA+B,GAAAhoB,KAAA4lB,GAKAwC,EAAA3b,EAAAub,GAKAvb,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,GAAA2U,EAAAygB,OACAsC,EAAA/b,EAAAub,GAMAviB,EAAAmhB,SAOAnB,EAAA0C,OAAA,SAAA1b,EAAAub,GAKAvb,EAAAyV,cAAA4D,GAAA39B,SAAA2I,OAAA,GAAA2b,EAAAyV,cAAA2D,GAAAtiB,YAAAkJ,EAAAyV,cAAA4D,GAAA6C,mBAKA1C,EAAA+B,GAAAY,MAKAR,EAAA3b,EAAAub,GAKAvb,EAAAyV,cAAA2D,GAAA19B,SAAA2I,OAAA,GAAA2U,EAAAygB,OACAsC,EAAA/b,EAAAub,GAMAviB,EAAAohB,aAQA,IAAAU,EAAA,SAAAlqB,GAGA,IAFA,IAAAlV,EAAAkV,EAAA8N,WACA0d,EAAA,EACA1qB,EAAA,EAAAA,EAAAhW,EAAA2I,OAAAqN,IACA,IAAAhW,EAAAgW,GAAA2mB,WACAgE,MAAA3gC,EAAAgW,GAAA8V,eACA4U,GAAA1gC,EAAAgW,GAAA8V,cAKA,OAAA4U,GAQAE,EAAA,SAAAtc,EAAAhH,GAGAzI,OAAArR,YACAqR,OAAArR,YAAA,YAAA,WACA85B,EAAAkC,WAAAlC,EAAAkC,UAAAlb,MAGAzP,OAAAtR,kBACAsR,OAAAtR,iBAAA,UAAA,WACA+5B,EAAAkC,WAAAlC,EAAAkC,UAAAlb,MACA,GAIAA,EAAAyV,cAAA6D,GAAAr6B,iBAAA,SAAA,WACA2rB,EAAA5K,EAAAyV,cAAA4D,GAAA,QACAzO,EAAAnuB,KAAA,WACAmuB,EAAA5K,EAAA,YAKA,IAAAA,EAAA1V,UAAAS,QAAA,WACAiV,EAAAyV,cAAA4D,GAAAxiB,aAAA,cAAA,UAEAmJ,EAAAyV,cAAA4D,GAAAxiB,aAAA,cAAA,QACAmJ,EAAAyV,cAAA4D,GAAAhO,WAOAvrB,SAAAb,iBAAA,SAAA,SAAA6E,IAlcA,SAAA/E,EAAA62B,GAEA,IADA,IAAA2G,EAAA3G,EAAAra,OAAA,GACAxc,GAAAA,IAAAe,SAAAf,EAAAA,EAAA2X,WACA,GAAA,MAAA6lB,GACA,GAAAx9B,EAAAw4B,UAAAW,SAAAtC,EAAA3G,OAAA,IACA,OAAAlwB,OAEA,GAAA,MAAAw9B,GACA,GAAAx9B,EAAA8P,KAAA+mB,EAAA3G,OAAA,GACA,OAAAlwB,OAEA,GAAA,MAAAw9B,GACAx9B,EAAAy9B,aAAA5G,EAAA3G,OAAA,EAAA2G,EAAAvxB,OAAA,IACA,OAAAtF,EAIA,OAAA,GAkbA09B,CAAA34B,EAAA+mB,OAAA,IAAA7R,EAAA4gB,uBAAA91B,EAAA+mB,SAAA7K,EAAAyV,cAAA6D,KACAtZ,EAAAyV,cAAA4D,GAAA9B,UAAA/M,OAAA,QACAxK,EAAAyV,cAAA6D,GAAA/B,UAAA/M,OAAA,WACAxK,EAAAuX,UAAA/M,OAAA,eAOA1qB,SAAA48B,UAAA,SAAAxc,GAEA,MADAA,EAAAA,GAAA3P,OAAAzM,OACA6iB,UACA7mB,SAAA21B,cAAA4D,GAAA9B,UAAA/M,OAAA,QACA1qB,SAAA21B,cAAA6D,GAAA/B,UAAA/M,OAAA,WACAyO,EAAA1B,UAAA/M,OAAA,cASAmS,QAAAngB,UAAAgO,OAAA,WACA/tB,KAAAmgC,cAAA/hB,YAAApe,OAIAogC,SAAArgB,UAAAgO,OAAAsS,eAAAtgB,UAAAgO,OAAA,WACA,IAAA,IAAA9Y,EAAA,EAAAC,EAAAlV,KAAA4H,OAAAqN,EAAAC,EAAAD,IACAjV,KAAAiV,IAAAjV,KAAAiV,GAAAkrB,eACAngC,KAAAiV,GAAAkrB,cAAA/hB,YAAApe,KAAAiV,KAUAsnB,EAAAt8B,QAAA,WAEAsc,IAEAlZ,SAAA2Q,gBAAA8mB,UAAA/M,OAAAxR,EAAA2gB,WAEAJ,EAAA/O,SAEAxR,EAAA,YACAggB,EAAA5+B,YACA4+B,EAAAkC,YASAlgB,GAAA,oBAAA+hB,OACAA,KAAAvgB,UAAAuS,YAAA,SAAA5V,EAAA9G,GAAA5V,KAAAka,aAAAwC,EAAA9G,EAAA2qB,eAGA,IAAAC,EAAA,SAAA3F,GACA,IAAAiF,EAAAjF,EAAA/b,OAAA,GACA,MAAA,MAAAghB,GAAA,MAAAA,GA2HA,OA9GAvD,EAAA5+B,KAAA,SAAAyZ,GASA,GAHAmF,EA7fA,SAAAqZ,EAAAxe,GACA,IAAAqpB,EAAA,GAOA,OANAvH,EAAAtD,GAAA,SAAAh1B,EAAAk9B,GACA2C,EAAA3C,GAAAlI,EAAAkI,MAEA5E,EAAA9hB,GAAA,SAAAxW,EAAAk9B,GACA2C,EAAA3C,GAAA1mB,EAAA0mB,MAEA2C,EAqfArjC,CAAAw4B,EAAAxe,GAAA,IAGAmH,GAAA,oBAAA+hB,KAMA,GAAAE,EAAAjkB,EAAA4gB,uBAAAqD,EAAAjkB,EAAA6gB,4BAAA,CASA,IAAAsD,EAAAr9B,SAAA01B,iBAAAxc,EAAAigB,gBAKAtD,EAAAwH,GAAA,SAAAnd,GAMAwZ,EAAAC,GAAA,GAKAzZ,EAAAnJ,aAAA,WAAA4iB,MAKAR,EAAAjZ,IASAoZ,EAAApgB,EAAAogB,QACApZ,EAAAyV,cAAA2D,KAlfA,SAAApZ,EAAAhH,GAMAugB,EAAAz5B,SAAAoB,cAAA,QACAm4B,EAAAv5B,SAAAoB,cAAA,OACAo4B,EAAAx5B,SAAAoB,cAAA,MAMA0d,UAAA5F,EAAA8gB,iBAKAR,EAAAziB,aAAA,gBAAA,QACAyiB,EAAAziB,aAAA,OAAA,KACAwiB,EAAAxiB,aAAA,cAAA,QAMAmJ,EAAAyV,cAAA2D,GAAA1iB,aAAAsJ,GAKAA,EAAA+O,YAAAwK,EAAAvZ,EAAAyV,cAAA2D,IAEAG,EAAAziB,YAAAwiB,GACAC,EAAAziB,YAAAuiB,GAKAA,EAAA9B,UAAAC,IAAAxe,EAAA4gB,sBACAP,EAAA9B,UAAAC,IAAA,0BAEA8B,EAAA/B,UAAAC,IAAAxe,EAAA6gB,4BACAP,EAAA/B,UAAAC,IAAA,iCAGA8B,EAAAziB,aAAA,OAAA,KAEA0iB,EAAAhC,UAAAC,IAAAxe,EAAA4gB,qBAAA,YACAL,EAAAhC,UAAAC,IAAA,yBAEAxX,EAAAuX,UAAAC,IAAA,iBAxBA15B,QAAAs/B,KAAA,wEA8dAC,CAAArd,EAAAhH,GAKAqgB,EAAA,IAAArgB,EAAA4gB,qBACA5Z,EAAAyV,cAAA4D,IAQAC,EAAA,IAAAtgB,EAAA6gB,2BACA7Z,EAAAyV,cAAA6D,IAQAgD,EAAAtc,EAAAhH,GAKAggB,EAAAkC,UAAAlb,IAZAliB,QAAAs/B,KAAA,0DATAt/B,QAAAs/B,KAAA,oDAdAt/B,QAAAs/B,KAAA,gDATAt/B,QAAAs/B,KAAA,yDAwDAt9B,SAAA2Q,gBAAA8mB,UAAAC,IAAAxe,EAAA2gB,gBAvFA77B,QAAAs/B,KAAA,0GANAt/B,QAAAs/B,KAAA,6CAoGApE,KCptBA,SAAA5e,EAAAkB,GAAA,iBAAA+T,SAAA,oBAAAE,OAAAA,OAAAF,QAAA/T,IAAA,mBAAAkW,QAAAA,OAAAC,IAAAD,OAAAlW,GAAAlB,EAAAkjB,UAAAhiB,IAAA,CAAA7e,MAAA,WAAA,SAAA2d,EAAAA,EAAAkB,GAAA,IAAA1X,EAAAiY,EAAA,GAAA,IAAAjY,KAAAwW,EAAA4V,OAAAxT,UAAAvH,eAAAsE,KAAAa,EAAAxW,KAAAiY,EAAAjY,GAAAwW,EAAAxW,IAAA,IAAAA,KAAA0X,EAAA0U,OAAAxT,UAAAvH,eAAAsE,KAAA+B,EAAA1X,KAAAiY,EAAAjY,GAAA0X,EAAA1X,IAAA,OAAAiY,EAAA,SAAAP,EAAAlB,EAAAkB,GAAA,GAAA,iBAAAlB,EAAA,OAAAmjB,QAAAC,OAAA,IAAAx4B,MAAA,qCAAA,GAAA,iBAAAsW,EAAAA,GAAAxb,SAAA8N,MAAA,OAAA2vB,QAAAC,OAAA,IAAAx4B,MAAA,sCAAA,IAAApB,EAAA0X,EAAAsc,wBAAA,OAAAxd,EAAAwd,wBAAAp0B,IAAAI,EAAAJ,IAAA,SAAAI,EAAAwW,EAAAyB,EAAAX,QAAA,IAAAA,IAAAA,EAAA,cAAA,IAAAuiB,EAAA,GAAA,OAAAviB,GAAA,KAAAd,EAAAub,SAAA,SAAAvb,EAAAsjB,GAAA,IAAA/5B,EAAA,GAAAoU,EAAA,SAAAqC,EAAAkB,GAAA,GAAA,iBAAAlB,EAAA,OAAAmjB,QAAAC,OAAA,IAAAx4B,MAAA,qCAAA,IAAApB,EAAAwW,EAAAvL,GAAA,IAAAjL,EAAA,CAAA,GAAA,iBAAA0X,EAAA,OAAAiiB,QAAAC,OAAA,IAAAx4B,MAAA,qCAAAoV,EAAAvL,GAAAjL,EAAA0X,EAAA,OAAA1X,EAAA,CAAAwW,EAAAc,GAAAwiB,EAAA,IAAA7hB,EAAA8hB,aAAAvjB,EAAAwjB,QAAA/hB,EAAAgiB,YAAAl6B,EAAAC,EAAA,SAAAwW,EAAAkB,EAAA1X,GAAA,IAAAiY,EAAA,GAAA,IAAAzB,EAAAA,EAAA0jB,mBAAA1jB,IAAAA,EAAAwjB,QAAAtiB,KAAA1X,GAAAwW,EAAAwjB,QAAAh6B,IAAAiY,EAAAtI,KAAA6G,GAAAA,EAAAA,EAAA0jB,oBAAA1jB,EAAAA,EAAA0jB,mBAAA,OAAAjiB,EAAA,CAAAzB,EAAAyB,EAAAgiB,SAAAhiB,EAAA8hB,aAAA9hB,EAAA9D,IAAA0lB,EAAAlqB,KAAA,CAAA1E,GAAAkJ,EAAAS,KAAA4B,EAAA2jB,WAAA3jB,EAAA4jB,YAAAl2B,UAAAwT,EAAAlB,GAAAujB,YAAAh6B,OAAA85B,EAAA,SAAAviB,EAAAd,GAAA,OAAAA,EAAAub,SAAA,SAAAvb,GAAA,IAAAxW,EAAA9D,SAAA21B,cAAA,IAAArb,EAAAvL,IAAAuL,EAAAtS,UAAAwT,EAAA1X,GAAAwW,EAAAujB,YAAAt5B,SAAA+V,EAAAujB,YAAAziB,EAAAd,EAAAujB,iBAAAvjB,EAAA,IAAAsjB,EAAA/5B,EAAAoU,EAAA6C,EAAA,SAAAR,GAAA,OAAA,SAAAkB,GAAA,OAAAhe,KAAA2gC,IAAA3iB,EAAAlB,KAAA8jB,EAAA,SAAA9jB,GAAA,OAAA,SAAAkB,GAAA,OAAA,EAAAhe,KAAA8O,IAAA9O,KAAA2gC,IAAA3iB,EAAA,EAAAlB,MAAA+jB,EAAA,SAAA/jB,GAAA,OAAA,SAAAkB,GAAA,OAAAA,EAAA,GAAAV,EAAAR,EAAAQ,CAAA,EAAAU,GAAA,EAAA4iB,EAAA9jB,EAAA8jB,CAAA,EAAA5iB,EAAA,GAAA,EAAA,KAAAK,EAAA,CAAAyiB,OAAAD,EAAA,GAAAE,WAAAzjB,EAAA,GAAA0jB,YAAAJ,EAAA,GAAAK,cAAAJ,EAAA,GAAAK,YAAA5jB,EAAA,GAAA6jB,aAAAP,EAAA,GAAAQ,eAAAP,EAAA,GAAAQ,YAAA/jB,EAAA,GAAAgkB,aAAAV,EAAA,GAAAW,eAAAV,EAAA,GAAAW,YAAAlkB,EAAA,GAAAmkB,aAAAb,EAAA,GAAAc,eAAAb,EAAA,IAAA,SAAAc,EAAA7kB,EAAAkB,GAAA,OAAA,IAAAiiB,SAAA,SAAA35B,EAAAiY,GAAA,GAAA,iBAAAzB,EAAA,OAAAyB,EAAA,IAAA7W,MAAA,oCAAA,GAAA,iBAAAsW,EAAAA,GAAA,UAAA,OAAAO,EAAA,IAAA7W,MAAA,qCAAA,IAAAkW,EAAAuiB,EAAAltB,OAAAkoB,YAAAiF,EAAAtjB,EAAAqjB,EAAA95B,EAAA,SAAAyW,GAAA,IAAAkB,EAAAhe,KAAA8O,IAAAgO,EAAA,GAAA,OAAA9c,KAAA2wB,IAAA3wB,KAAA4hC,IAAA5jB,EAAA,KAAA,MAAA,CAAAoiB,GAAA9iB,EAAA,GAAA,SAAAR,IAAAc,EAAAS,EAAAL,IAAAV,GAAA,IAAAjX,GAAA4M,OAAA4uB,OAAA,EAAAjkB,EAAAwiB,EAAAD,GAAA7iB,EAAAjX,EAAA0R,WAAA+E,EAAA,IAAAxW,EAAA2M,OAAAkoB,aAAA,MAAA,SAAA2G,EAAAhlB,GAAA,OAAAA,aAAAuiB,QAAA,MAAA,CAAAviC,KAAA,SAAAkhB,EAAAV,GAAA,GAAAne,KAAAuc,SAAAoB,EAAA,CAAAyjB,SAAA,KAAAwB,aAAA/jB,EAAAgkB,eAAA,SAAAC,YAAA,cAAAC,eAAA,GAAA5kB,GAAAwkB,EAAA9jB,GAAA,IAAA7e,KAAAuc,SAAAqmB,cAAAD,EAAA3iC,KAAAuc,SAAAqmB,cAAA,GAAA,CAAA,SAAA,UAAA,QAAA,UAAAI,SAAAhjC,KAAAuc,SAAAsmB,gBAAA,CAAA,IAAApB,EAAAC,EAAAxiB,EAAA+jB,EAAAC,EAAArkB,EAAAka,iBAAA/4B,KAAAuc,SAAA6kB,UAAA,GAAA8B,EAAAt7B,OAAA,OAAA5H,KAAAT,KAAA4H,EAAA+7B,EAAAljC,KAAAuc,UAAAvc,KAAAmjC,IAAA,SAAAxlB,GAAA,IAAAkB,EAAAxb,SAAAoB,cAAA,OAAA,OAAAoa,EAAAhR,UAAA,aAAAgR,EAAAsD,UAAA,SAAAxE,EAAAkB,EAAA1X,QAAA,IAAAA,IAAAA,GAAA,GAAA,IAAAiY,EAAA,cAAAjY,EAAA,SAAA,MAAAsX,EAAA,SAAAI,EAAAukB,KAAA,SAAAvkB,GAAA,MAAA,cAAAO,EAAA,0BAAAP,EAAAzM,GAAA,6BAAAgN,EAAA,gBAAAP,EAAAzM,GAAA,KAAAyM,EAAA9C,KAAA,sBAAA8C,EAAAqiB,aAAAriB,EAAAqiB,YAAAt5B,OAAA,GAAA+V,EAAAkB,EAAAqiB,aAAA,GAAA,IAAA,uBAAA1iB,KAAA,IAAA,OAAA,MAAA,oBAAAY,EAAA,iBAAAX,EAAA,kBAAA,CAAAd,GAAAkB,EAAAO,CAAApf,KAAAT,MAAAmiC,GAAAD,EAAAzhC,MAAAuc,SAAAqmB,aAAA,YAAA1jB,EAAAuiB,EAAAllB,SAAAsmB,gBAAAnB,EAAArnB,YAAAonB,EAAA0B,KAAA,YAAAjkB,EAAAwiB,EAAAxnB,aAAAunB,EAAA0B,IAAAzB,EAAAnC,YAAA,WAAArgB,EAAAwiB,EAAAznB,WAAAC,aAAAunB,EAAA0B,IAAAzB,GAAA,UAAAxiB,GAAAwiB,EAAAznB,WAAAC,aAAAunB,EAAA0B,IAAAzB,EAAAnB,aAAAU,EAAA,SAAAtjB,GAAA,IAAAkB,EAAAlB,EAAApB,SAAA,SAAApV,EAAAA,GAAAA,EAAA0iB,iBAAA,IAAAzK,EAAA,IAAAtL,OAAA0qB,YAAA,OAAAgE,EAAA,SAAA7kB,EAAAkB,GAAA,IAAA1X,EAAAwW,EAAA2H,aAAA,QAAA,MAAA,MAAAne,EAAA2X,OAAA,KAAA3X,EAAAA,EAAAqrB,OAAA,IAAA,SAAA7U,EAAAkB,EAAA1X,GAAA,IAAAiY,EAAA,OAAAP,EAAAqa,SAAA,SAAAra,GAAAA,EAAAzM,KAAAjL,IAAAiY,EAAAP,GAAAA,EAAAqiB,kBAAA,IAAA9hB,IAAAA,EAAAzB,EAAAkB,EAAAqiB,YAAA/5B,OAAAiY,EAAA,CAAAP,EAAA1X,GAAAkE,UAAA21B,CAAA75B,EAAAinB,OAAAzQ,EAAApe,MAAA6f,EAAAP,EAAAikB,aAAAO,MAAA,WAAAxkB,EAAAkkB,eAAAO,QAAAC,aAAA,GAAA,GAAAp8B,EAAAinB,OAAA9I,aAAA,SAAAzG,EAAA2kB,UAAA3kB,EAAA2kB,cAAA,OAAA7lB,EAAAwlB,IAAApK,iBAAA,KAAAG,SAAA,SAAAvb,GAAAA,EAAAnb,iBAAA,QAAA2E,MAAAA,EAAA,CAAAnH,MAAAkH,EAAA,SAAAyW,GAAA,SAAAkB,IAAA,IAAAA,EAAA/K,OAAA2vB,SAAA3vB,OAAAkoB,aAAA34B,SAAA8N,KAAAa,UAAA7K,EAAA0X,EAAA,GAAA/K,OAAA0qB,YAAApf,EAAA,SAAAzB,EAAAkB,EAAA1X,EAAAiY,GAAA,IAAAX,EAAAuiB,EAAA,OAAAniB,EAAAqa,SAAA,SAAAvb,GAAAA,EAAAtS,UAAA+T,GAAAX,GAAAd,EAAAtS,UAAAlE,IAAAsX,EAAAd,GAAAc,EAAAd,KAAAc,GAAAA,EAAAyiB,YAAAt5B,SAAAo5B,EAAArjB,EAAAc,EAAAyiB,YAAA/5B,EAAAiY,MAAAX,EAAAuiB,GAAAviB,EAAA,CAAAd,EAAApe,KAAAsf,EAAA1X,GAAA,OAAA,SAAAwW,EAAAkB,GAAA,IAAA1X,EAAA0X,EAAAma,cAAA,oBAAA,GAAArb,EAAA,CAAA,IAAAyB,EAAAP,EAAAma,cAAA,oBAAArb,EAAAvL,GAAA,KAAAgN,GAAAA,IAAAjY,IAAAA,IAAAA,EAAA2zB,UAAA/M,OAAA,4BAAA5mB,EAAAu8B,gBAAA,mBAAAtkB,EAAA0b,UAAAC,IAAA,4BAAA3b,EAAAhF,aAAA,kBAAA,SAAAjT,IAAAA,EAAA2zB,UAAA/M,OAAA,4BAAA5mB,EAAAu8B,gBAAA,mBAAA,CAAAtkB,EAAAzB,EAAAwlB,KAAA/jB,EAAA,OAAAtL,OAAAtR,iBAAA,SAAAqc,GAAAA,EAAA8kB,CAAA3jC,MAAAsb,EAAA,SAAAqC,GAAA,SAAAkB,IAAAlB,EAAApe,KAAAkf,EAAAd,EAAApe,MAAA,OAAAuU,OAAAtR,iBAAA,SAAAqc,GAAAA,EAAA,CAAA7e,MAAAA,KAAAuc,SAAAqnB,SAAAX,EAAA5/B,SAAAoB,cAAA,QAAAoJ,UAAA,aAAAo1B,EAAA7oB,aAAA,QAAA,mNAAA/W,SAAA8N,KAAAkJ,YAAA4oB,IAAAjjC,KAAAuc,SAAAsnB,OAAA7jC,KAAAuc,SAAAsnB,cAAA,EAAA7jC,KAAAuc,SAAAqnB,OAAAviC,QAAAmc,MAAA,yDAAAxd,KAAAuc,SAAA6kB,SAAA,kCAAAviB,EAAA,kBAAA7e,KAAAuc,SAAAqnB,OAAAviC,QAAAmc,MAAA,6DAAAxd,KAAAuc,SAAAsmB,eAAA,wCAAA7iC,KAAAuc,SAAAqnB,OAAAviC,QAAAmc,MAAA,2DAAAqB,EAAA,yCAAA7e,KAAAuc,SAAAqnB,OAAAviC,QAAAmc,MAAA,uDAAAqB,EAAA,qCAAA5e,QAAA,SAAA4e,GAAA,GAAA7e,KAAAuc,SAAAoB,EAAA3d,KAAAuc,SAAAsC,GAAA,SAAAlB,EAAAkB,GAAAlB,EAAAob,iBAAA,KAAAG,SAAA,SAAAvb,GAAAA,EAAAmmB,oBAAA,QAAAjlB,MAAA,CAAA7e,KAAAmjC,IAAAlC,GAAA,SAAAtjB,GAAA7J,OAAAgwB,oBAAA,SAAAnmB,GAAA,CAAAzW,GAAA,SAAAyW,GAAA7J,OAAAgwB,oBAAA,SAAAnmB,GAAA,CAAArC,GAAAtb,KAAAmjC,IAAApV,SAAA/tB,KAAAuc,SAAAwnB,UAAA,OAAA/jC,KAAAuc,SAAAwnB,aAAAC,gBAAA,SAAAnlB,GAAA,GAAA7e,KAAAuc,SAAAoB,EAAA3d,KAAAuc,SAAAsC,GAAA7e,KAAAT,KAAAkf,EAAAze,KAAAT,MAAAS,KAAAuc,SAAA0nB,kBAAA,OAAAjkC,KAAAuc,SAAA0nB,yBCiBA,SAAA3H,GACA,aACA,mBAAAvH,QAAAA,OAAAC,IACAD,OAAA,CAAA,UAAAuH,GACA,oBAAA1J,QACAE,OAAAF,QAAA0J,EAAA5J,QAAA,WAEA4J,EAAAn/B,QAPA,EAUA,SAAAif,GACA,aACA,IAIA8nB,EAJAC,EAAArwB,OAAAqwB,OAAA,GAIAD,EAAA,GAFAC,EAIA,SAAAthC,EAAA0Z,GAEA,IAAA6nB,EAAAjmB,EAAAne,KAEAme,EAAAyX,SAAA,CACAyO,eAAA,EACAC,gBAAA,EACAC,aAAAnoB,EAAAvZ,GACA2hC,WAAApoB,EAAAvZ,GACA4hC,QAAA,EACAC,SAAA,KACAC,UAAA,mFACAC,UAAA,2EACA5O,UAAA,EACA6O,cAAA,IACAC,YAAA,EACAC,cAAA,OACAC,QAAA,OACAC,aAAA,SAAAC,EAAAjwB,GACA,OAAAmH,EAAA,4BAAAL,KAAA9G,EAAA,IAEAkwB,MAAA,EACAC,UAAA,aACAC,WAAA,EACAC,OAAA,SACAC,aAAA,IACAC,MAAA,EACAC,eAAA,EACAC,eAAA,EACAC,UAAA,EACAC,aAAA,EACAC,SAAA,WACAC,aAAA,EACAC,cAAA,EACAC,cAAA,EACAC,kBAAA,EACAC,UAAA,SACAC,WAAA,KACAC,KAAA,EACAliB,KAAA,EACAmiB,MAAA,GACAC,aAAA,EACAC,aAAA,EACAC,eAAA,EACAvN,MAAA,IACAwN,OAAA,EACAC,cAAA,EACAC,WAAA,EACAzkC,eAAA,EACA0kC,QAAA,EACAC,cAAA,EACAC,eAAA,EACAC,UAAA,EACAC,iBAAA,EACAC,gBAAA,EACAC,OAAA,KAGA/oB,EAAAgpB,SAAA,CACAC,WAAA,EACAC,UAAA,EACAC,cAAA,KACAC,iBAAA,EACAC,YAAA,KACAC,aAAA,EACAC,UAAA,EACAC,MAAA,KACAC,UAAA,KACAC,WAAA,KACAC,UAAA,EACAC,WAAA,KACAC,WAAA,KACAC,WAAA,EACAC,WAAA,KACAC,WAAA,KACAC,YAAA,KACAC,QAAA,KACAC,SAAA,EACAC,YAAA,EACAC,UAAA,KACAC,SAAA,EACAC,MAAA,KACAC,YAAA,GACAC,mBAAA,EACAC,WAAA,GAGAzsB,EAAAhf,OAAA+gB,EAAAA,EAAAgpB,UAEAhpB,EAAA2qB,iBAAA,KACA3qB,EAAA4qB,SAAA,KACA5qB,EAAA6qB,SAAA,KACA7qB,EAAA8qB,YAAA,GACA9qB,EAAA+qB,mBAAA,GACA/qB,EAAAgrB,gBAAA,EACAhrB,EAAAirB,UAAA,EACAjrB,EAAAkrB,aAAA,EACAlrB,EAAAmrB,OAAA,SACAnrB,EAAAorB,QAAA,EACAprB,EAAAqrB,aAAA,KACArrB,EAAA+nB,UAAA,KACA/nB,EAAAsrB,SAAA,EACAtrB,EAAAurB,aAAA,EACAvrB,EAAAwrB,QAAAvtB,EAAAvZ,GACAsb,EAAAyrB,aAAA,KACAzrB,EAAA0rB,cAAA,KACA1rB,EAAA2rB,eAAA,KACA3rB,EAAA4rB,iBAAA,mBACA5rB,EAAA6rB,YAAA,EACA7rB,EAAA8rB,YAAA,KAEA7F,EAAAhoB,EAAAvZ,GAAAtD,KAAA,UAAA,GAEA4e,EAAA/G,QAAAgF,EAAAhf,OAAA,GAAA+gB,EAAAyX,SAAArZ,EAAA6nB,GAEAjmB,EAAAspB,aAAAtpB,EAAA/G,QAAAwuB,aAEAznB,EAAA+rB,iBAAA/rB,EAAA/G,aAEA,IAAA/T,SAAA8mC,WACAhsB,EAAAmrB,OAAA,YACAnrB,EAAA4rB,iBAAA,4BACA,IAAA1mC,SAAA+mC,eACAjsB,EAAAmrB,OAAA,eACAnrB,EAAA4rB,iBAAA,0BAGA5rB,EAAAksB,SAAAjuB,EAAAkuB,MAAAnsB,EAAAksB,SAAAlsB,GACAA,EAAAosB,cAAAnuB,EAAAkuB,MAAAnsB,EAAAosB,cAAApsB,GACAA,EAAAqsB,iBAAApuB,EAAAkuB,MAAAnsB,EAAAqsB,iBAAArsB,GACAA,EAAAssB,YAAAruB,EAAAkuB,MAAAnsB,EAAAssB,YAAAtsB,GACAA,EAAAusB,aAAAtuB,EAAAkuB,MAAAnsB,EAAAusB,aAAAvsB,GACAA,EAAAwsB,cAAAvuB,EAAAkuB,MAAAnsB,EAAAwsB,cAAAxsB,GACAA,EAAAysB,YAAAxuB,EAAAkuB,MAAAnsB,EAAAysB,YAAAzsB,GACAA,EAAA0sB,aAAAzuB,EAAAkuB,MAAAnsB,EAAA0sB,aAAA1sB,GACAA,EAAA2sB,YAAA1uB,EAAAkuB,MAAAnsB,EAAA2sB,YAAA3sB,GACAA,EAAA4sB,WAAA3uB,EAAAkuB,MAAAnsB,EAAA4sB,WAAA5sB,GAEAA,EAAA+lB,YAAAA,IAKA/lB,EAAA6sB,SAAA,4BAGA7sB,EAAA8sB,sBACA9sB,EAAAxgB,MAAA,KAQAoiB,UAAAmrB,YAAA,WACAlrC,KAEAooC,YAAApb,KAAA,iBAAAhS,KAAA,CACAmwB,cAAA,UACAne,KAAA,4BAAAhS,KAAA,CACAowB,SAAA,OAKAjH,EAAApkB,UAAAsrB,SAAAlH,EAAApkB,UAAAurB,SAAA,SAAAC,EAAA9rC,EAAA+rC,GAEA,IAAArtB,EAAAne,KAEA,GAAA,kBAAA,EACAwrC,EAAA/rC,EACAA,EAAA,UACA,GAAAA,EAAA,GAAAA,GAAA0e,EAAA+pB,WACA,OAAA,EAGA/pB,EAAAstB,SAEA,iBAAA,EACA,IAAAhsC,GAAA,IAAA0e,EAAAkqB,QAAAzgC,OACAwU,EAAAmvB,GAAAG,SAAAvtB,EAAAiqB,aACAoD,EACApvB,EAAAmvB,GAAArxB,aAAAiE,EAAAkqB,QAAAsD,GAAAlsC,IAEA2c,EAAAmvB,GAAAjZ,YAAAnU,EAAAkqB,QAAAsD,GAAAlsC,KAGA,IAAA+rC,EACApvB,EAAAmvB,GAAAK,UAAAztB,EAAAiqB,aAEAhsB,EAAAmvB,GAAAG,SAAAvtB,EAAAiqB,aAIAjqB,EAAAkqB,QAAAlqB,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAEAloB,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAAAwF,SAEA1tB,EAAAiqB,YAAAppC,OAAAmf,EAAAkqB,SAEAlqB,EAAAkqB,QAAAl6B,MAAA,SAAA1O,EAAAoD,GACAuZ,EAAAvZ,GAAAmY,KAAA,mBAAAvb,MAGA0e,EAAAyrB,aAAAzrB,EAAAkqB,QAEAlqB,EAAA2tB,UAIA3H,EAAApkB,UAAAgsB,cAAA,WACA,IAAA5tB,EAAAne,KACA,GAAA,IAAAme,EAAA/G,QAAAmvB,eAAA,IAAApoB,EAAA/G,QAAAktB,iBAAA,IAAAnmB,EAAA/G,QAAA2vB,SAAA,CACA,IAAAiF,EAAA7tB,EAAAkqB,QAAAsD,GAAAxtB,EAAAspB,cAAAr+B,aAAA,GACA+U,EAAAuqB,MAAAuD,QAAA,CACAluC,OAAAiuC,GACA7tB,EAAA/G,QAAA6hB,SAIAkL,EAAApkB,UAAAmsB,aAAA,SAAAC,EAAA1U,GAEA,IAAA2U,EAAA,GACAjuB,EAAAne,KAEAme,EAAA4tB,iBAEA,IAAA5tB,EAAA/G,QAAA8M,MAAA,IAAA/F,EAAA/G,QAAA2vB,WACAoF,GAAAA,IAEA,IAAAhuB,EAAAyqB,mBACA,IAAAzqB,EAAA/G,QAAA2vB,SACA5oB,EAAAiqB,YAAA6D,QAAA,CACAnlC,KAAAqlC,GACAhuB,EAAA/G,QAAA6hB,MAAA9a,EAAA/G,QAAAkuB,OAAA7N,GAEAtZ,EAAAiqB,YAAA6D,QAAA,CACAllC,IAAAolC,GACAhuB,EAAA/G,QAAA6hB,MAAA9a,EAAA/G,QAAAkuB,OAAA7N,IAKA,IAAAtZ,EAAAgrB,iBACA,IAAAhrB,EAAA/G,QAAA8M,MACA/F,EAAAqpB,aAAArpB,EAAA,aAEA/B,EAAA,CACAiwB,UAAAluB,EAAAqpB,cACAyE,QAAA,CACAI,UAAAF,GACA,CACAG,SAAAnuB,EAAA/G,QAAA6hB,MACAqM,OAAAnnB,EAAA/G,QAAAkuB,OACAr7B,KAAA,SAAAuI,GACAA,EAAA3R,KAAA0rC,KAAA/5B,IACA,IAAA2L,EAAA/G,QAAA2vB,UACAqF,EAAAjuB,EAAA4qB,UAAA,aACAv2B,EAAA,WACA2L,EAAAiqB,YAAAlpC,IAAAktC,KAEAA,EAAAjuB,EAAA4qB,UAAA,iBACAv2B,EAAA,MACA2L,EAAAiqB,YAAAlpC,IAAAktC,KAGAxjC,SAAA,WACA6uB,GACAA,EAAA3a,YAOAqB,EAAAquB,kBACAL,EAAAtrC,KAAA0rC,KAAAJ,IAEA,IAAAhuB,EAAA/G,QAAA2vB,SACAqF,EAAAjuB,EAAA4qB,UAAA,eAAAoD,EAAA,gBAEAC,EAAAjuB,EAAA4qB,UAAA,mBAAAoD,EAAA,WAEAhuB,EAAAiqB,YAAAlpC,IAAAktC,GAEA3U,GACA7e,YAAA,WAEAuF,EAAAsuB,oBAEAhV,EAAA3a,SACAqB,EAAA/G,QAAA6hB,SASAkL,EAAApkB,UAAA2sB,aAAA,WAEA,IACAhI,EADA1kC,KACAoX,QAAAstB,SAMA,OAJAA,GAAA,OAAAA,IACAA,EAAAtoB,EAAAsoB,GAAAiI,IAJA3sC,KAIA2pC,UAGAjF,GAIAP,EAAApkB,UAAA2kB,SAAA,SAAAjlC,GAEA,IACAilC,EADA1kC,KACA0sC,eAEA,OAAAhI,GAAA,iBAAAA,GACAA,EAAAv2B,MAAA,WACA,IAAAigB,EAAAhS,EAAApc,MAAA4sC,MAAA,YACAxe,EAAAya,WACAza,EAAAye,aAAAptC,GAAA,OAOA0kC,EAAApkB,UAAAysB,gBAAA,SAAAnG,GAEA,IAAAloB,EAAAne,KACA8sC,EAAA,IAEA,IAAA3uB,EAAA/G,QAAAouB,KACAsH,EAAA3uB,EAAA2rB,gBAAA3rB,EAAA0rB,cAAA,IAAA1rB,EAAA/G,QAAA6hB,MAAA,MAAA9a,EAAA/G,QAAA4tB,QAEA8H,EAAA3uB,EAAA2rB,gBAAA,WAAA3rB,EAAA/G,QAAA6hB,MAAA,MAAA9a,EAAA/G,QAAA4tB,SAGA,IAAA7mB,EAAA/G,QAAAouB,KACArnB,EAAAiqB,YAAAlpC,IAAA4tC,GAEA3uB,EAAAkqB,QAAAsD,GAAAtF,GAAAnnC,IAAA4tC,IAKA3I,EAAApkB,UAAAsqB,SAAA,WAEA,IAAAlsB,EAAAne,KAEAme,EAAAosB,gBAEApsB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAAmpB,cAAApsB,YAAAiD,EAAAqsB,iBAAArsB,EAAA/G,QAAAytB,iBAKAV,EAAApkB,UAAAwqB,cAAA,WAEAvqC,KAEAsnC,eACAnsB,cAHAnb,KAGAsnC,gBAKAnD,EAAApkB,UAAAyqB,iBAAA,WAEA,IAAArsB,EAAAne,KACA+sC,EAAA5uB,EAAAspB,aAAAtpB,EAAA/G,QAAAovB,eAEAroB,EAAAorB,QAAAprB,EAAAkrB,aAAAlrB,EAAAirB,YAEA,IAAAjrB,EAAA/G,QAAAuuB,WAEA,IAAAxnB,EAAAupB,WAAAvpB,EAAAspB,aAAA,IAAAtpB,EAAA+pB,WAAA,EACA/pB,EAAAupB,UAAA,EAGA,IAAAvpB,EAAAupB,YAEAqF,EAAA5uB,EAAAspB,aAAAtpB,EAAA/G,QAAAovB,eAEAroB,EAAAspB,aAAA,GAAA,IACAtpB,EAAAupB,UAAA,KAOAvpB,EAAA0uB,aAAAE,KAMA5I,EAAApkB,UAAAitB,YAAA,WAEA,IAAA7uB,EAAAne,MAEA,IAAAme,EAAA/G,QAAAqtB,SAEAtmB,EAAA6pB,WAAA5rB,EAAA+B,EAAA/G,QAAAutB,WAAA5lC,SAAA,eACAof,EAAA4pB,WAAA3rB,EAAA+B,EAAA/G,QAAAwtB,WAAA7lC,SAAA,eAEAof,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAEApoB,EAAA6pB,WAAAt5B,YAAA,gBAAA/B,WAAA,wBACAwR,EAAA4pB,WAAAr5B,YAAA,gBAAA/B,WAAA,wBAEAwR,EAAA6sB,SAAA7mB,KAAAhG,EAAA/G,QAAAutB,YACAxmB,EAAA6pB,WAAA4D,UAAAztB,EAAA/G,QAAAmtB,cAGApmB,EAAA6sB,SAAA7mB,KAAAhG,EAAA/G,QAAAwtB,YACAzmB,EAAA4pB,WAAA2D,SAAAvtB,EAAA/G,QAAAmtB,eAGA,IAAApmB,EAAA/G,QAAAuuB,UACAxnB,EAAA6pB,WACAjpC,SAAA,kBACAic,KAAA,gBAAA,SAKAmD,EAAA6pB,WAAAjN,IAAA5c,EAAA4pB,YAEAhpC,SAAA,gBACAic,KAAA,CACAiyB,gBAAA,OACA7B,SAAA,SASAjH,EAAApkB,UAAAmtB,UAAA,WAEA,IACAj4B,EAAAk4B,EADAhvB,EAAAne,KAGA,IAAA,IAAAme,EAAA/G,QAAA+tB,MAAAhnB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aAAA,CAMA,IAJApoB,EAAAwrB,QAAA5qC,SAAA,gBAEAouC,EAAA/wB,EAAA,UAAArd,SAAAof,EAAA/G,QAAAguB,WAEAnwB,EAAA,EAAAA,GAAAkJ,EAAAivB,cAAAn4B,GAAA,EACAk4B,EAAAnuC,OAAAod,EAAA,UAAApd,OAAAmf,EAAA/G,QAAA6tB,aAAAnoB,KAAA9c,KAAAme,EAAAlJ,KAGAkJ,EAAAwpB,MAAAwF,EAAAzB,SAAAvtB,EAAA/G,QAAAotB,YAEArmB,EAAAwpB,MAAA3a,KAAA,MAAAjG,QAAAhoB,SAAA,kBAMAolC,EAAApkB,UAAAstB,SAAA,WAEA,IAAAlvB,EAAAne,KAEAme,EAAAkqB,QACAlqB,EAAAwrB,QACA1qC,SAAAkf,EAAA/G,QAAAivB,MAAA,uBACAtnC,SAAA,eAEAof,EAAA+pB,WAAA/pB,EAAAkqB,QAAAzgC,OAEAuW,EAAAkqB,QAAAl6B,MAAA,SAAA1O,EAAAoD,GACAuZ,EAAAvZ,GACAmY,KAAA,mBAAAvb,GACAF,KAAA,kBAAA6c,EAAAvZ,GAAAmY,KAAA,UAAA,OAGAmD,EAAAwrB,QAAA5qC,SAAA,gBAEAof,EAAAiqB,YAAA,IAAAjqB,EAAA+pB,WACA9rB,EAAA,8BAAAsvB,SAAAvtB,EAAAwrB,SACAxrB,EAAAkqB,QAAAiF,QAAA,8BAAApoC,SAEAiZ,EAAAuqB,MAAAvqB,EAAAiqB,YAAAhW,KACA,6BAAAltB,SACAiZ,EAAAiqB,YAAAlpC,IAAA,UAAA,IAEA,IAAAif,EAAA/G,QAAA0tB,aAAA,IAAA3mB,EAAA/G,QAAAsvB,eACAvoB,EAAA/G,QAAAovB,eAAA,GAGApqB,EAAA,iBAAA+B,EAAAwrB,SAAAgD,IAAA,SAAA5tC,SAAA,iBAEAof,EAAAovB,gBAEApvB,EAAA6uB,cAEA7uB,EAAA+uB,YAEA/uB,EAAAqvB,aAGArvB,EAAAsvB,gBAAA,iBAAAtvB,EAAAspB,aAAAtpB,EAAAspB,aAAA,IAEA,IAAAtpB,EAAA/G,QAAAiuB,WACAlnB,EAAAuqB,MAAA3pC,SAAA,cAKAolC,EAAApkB,UAAA2tB,UAAA,WAEA,IAAA/wB,EAAA5G,EAAA8H,EAAA8vB,EAAAC,EAAAC,EAAAC,EAAA3vB,EAAAne,KAKA,GAHA2tC,EAAAtqC,SAAA0qC,yBACAF,EAAA1vB,EAAAwrB,QAAA1qC,WAEAkf,EAAA/G,QAAAgvB,KAAA,EAAA,CAOA,IALA0H,EAAA3vB,EAAA/G,QAAAkvB,aAAAnoB,EAAA/G,QAAAgvB,KACAwH,EAAA/sC,KAAA0rC,KACAsB,EAAAjmC,OAAAkmC,GAGAnxB,EAAA,EAAAA,EAAAixB,EAAAjxB,IAAA,CACA,IAAA0pB,EAAAhjC,SAAAoB,cAAA,OACA,IAAAsR,EAAA,EAAAA,EAAAoI,EAAA/G,QAAAgvB,KAAArwB,IAAA,CACA,IAAAlF,EAAAxN,SAAAoB,cAAA,OACA,IAAAoZ,EAAA,EAAAA,EAAAM,EAAA/G,QAAAkvB,aAAAzoB,IAAA,CACA,IAAAuQ,EAAAzR,EAAAmxB,GAAA/3B,EAAAoI,EAAA/G,QAAAkvB,aAAAzoB,GACAgwB,EAAApa,IAAArF,IACAvd,EAAAwJ,YAAAwzB,EAAApa,IAAArF,IAGAiY,EAAAhsB,YAAAxJ,GAEA88B,EAAAtzB,YAAAgsB,GAGAloB,EAAAwrB,QAAApnB,QAAAvjB,OAAA2uC,GACAxvB,EAAAwrB,QAAA1qC,WAAAA,WAAAA,WACAC,IAAA,CACA8B,MAAA,IAAAmd,EAAA/G,QAAAkvB,aAAA,IACAhV,QAAA,mBAOA6S,EAAApkB,UAAAiuB,gBAAA,SAAAC,EAAAC,GAEA,IACAC,EAAAC,EAAAC,EADAlwB,EAAAne,KACAsuC,GAAA,EACAC,EAAApwB,EAAAwrB,QAAA3oC,QACAgpC,EAAAl2B,OAAAC,YAAAqI,EAAAtI,QAAA9S,QAUA,GARA,WAAAmd,EAAA+nB,UACAmI,EAAArE,EACA,WAAA7rB,EAAA+nB,UACAmI,EAAAE,EACA,QAAApwB,EAAA+nB,YACAmI,EAAAxtC,KAAA2wB,IAAAwY,EAAAuE,IAGApwB,EAAA/G,QAAA+uB,YACAhoB,EAAA/G,QAAA+uB,WAAAv+B,QACA,OAAAuW,EAAA/G,QAAA+uB,WAAA,CAIA,IAAAgI,KAFAC,EAAA,KAEAjwB,EAAA8qB,YACA9qB,EAAA8qB,YAAAzwB,eAAA21B,MACA,IAAAhwB,EAAA+rB,iBAAApE,YACAuI,EAAAlwB,EAAA8qB,YAAAkF,KACAC,EAAAjwB,EAAA8qB,YAAAkF,IAGAE,EAAAlwB,EAAA8qB,YAAAkF,KACAC,EAAAjwB,EAAA8qB,YAAAkF,KAMA,OAAAC,EACA,OAAAjwB,EAAA2qB,kBACAsF,IAAAjwB,EAAA2qB,kBAAAoF,KACA/vB,EAAA2qB,iBACAsF,EACA,YAAAjwB,EAAA+qB,mBAAAkF,GACAjwB,EAAAqwB,QAAAJ,IAEAjwB,EAAA/G,QAAAgF,EAAAhf,OAAA,GAAA+gB,EAAA+rB,iBACA/rB,EAAA+qB,mBACAkF,KACA,IAAAH,IACA9vB,EAAAspB,aAAAtpB,EAAA/G,QAAAwuB,cAEAznB,EAAAswB,QAAAR,IAEAK,EAAAF,IAGAjwB,EAAA2qB,iBAAAsF,EACA,YAAAjwB,EAAA+qB,mBAAAkF,GACAjwB,EAAAqwB,QAAAJ,IAEAjwB,EAAA/G,QAAAgF,EAAAhf,OAAA,GAAA+gB,EAAA+rB,iBACA/rB,EAAA+qB,mBACAkF,KACA,IAAAH,IACA9vB,EAAAspB,aAAAtpB,EAAA/G,QAAAwuB,cAEAznB,EAAAswB,QAAAR,IAEAK,EAAAF,GAGA,OAAAjwB,EAAA2qB,mBACA3qB,EAAA2qB,iBAAA,KACA3qB,EAAA/G,QAAA+G,EAAA+rB,kBACA,IAAA+D,IACA9vB,EAAAspB,aAAAtpB,EAAA/G,QAAAwuB,cAEAznB,EAAAswB,QAAAR,GACAK,EAAAF,GAKAH,IAAA,IAAAK,GACAnwB,EAAAwrB,QAAAnwB,QAAA,aAAA,CAAA2E,EAAAmwB,MAMAnK,EAAApkB,UAAA0qB,YAAA,SAAApjC,EAAAqnC,GAEA,IAEAC,EAAApG,EAFApqB,EAAAne,KACA4uC,EAAAxyB,EAAA/U,EAAAwnC,eAgBA,OAZAD,EAAAn1B,GAAA,MACApS,EAAAwiB,iBAIA+kB,EAAAn1B,GAAA,QACAm1B,EAAAA,EAAA7f,QAAA,OAIA4f,EADAxwB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,gBAAA,EACA,GAAAroB,EAAA+pB,WAAA/pB,EAAAspB,cAAAtpB,EAAA/G,QAAAovB,eAEAn/B,EAAA9H,KAAAuvC,SAEA,IAAA,WACAvG,EAAA,IAAAoG,EAAAxwB,EAAA/G,QAAAovB,eAAAroB,EAAA/G,QAAAmvB,aAAAoI,EACAxwB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cACApoB,EAAA0uB,aAAA1uB,EAAAspB,aAAAc,GAAA,EAAAmG,GAEA,MAEA,IAAA,OACAnG,EAAA,IAAAoG,EAAAxwB,EAAA/G,QAAAovB,eAAAmI,EACAxwB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cACApoB,EAAA0uB,aAAA1uB,EAAAspB,aAAAc,GAAA,EAAAmG,GAEA,MAEA,IAAA,QACA,IAAAjvC,EAAA,IAAA4H,EAAA9H,KAAAE,MAAA,EACA4H,EAAA9H,KAAAE,OAAAmvC,EAAAnvC,QAAA0e,EAAA/G,QAAAovB,eAEAroB,EAAA0uB,aAAA1uB,EAAA4wB,eAAAtvC,IAAA,EAAAivC,GACAE,EAAA3vC,WAAAua,QAAA,SACA,MAEA,QACA,SAKA2qB,EAAApkB,UAAAgvB,eAAA,SAAAtvC,GAEA,IACAuvC,EAAAC,EAIA,GADAA,EAAA,EACAxvC,GAFAuvC,EAHAhvC,KAGAkvC,uBAEAF,EAAApnC,OAAA,GACAnI,EAAAuvC,EAAAA,EAAApnC,OAAA,QAEA,IAAA,IAAA8U,KAAAsyB,EAAA,CACA,GAAAvvC,EAAAuvC,EAAAtyB,GAAA,CACAjd,EAAAwvC,EACA,MAEAA,EAAAD,EAAAtyB,GAIA,OAAAjd,GAGA0kC,EAAApkB,UAAAovB,cAAA,WAEA,IAAAhxB,EAAAne,KAEAme,EAAA/G,QAAA+tB,MAAA,OAAAhnB,EAAAwpB,QAEAvrB,EAAA,KAAA+B,EAAAwpB,OACAznC,IAAA,cAAAie,EAAAssB,aACAvqC,IAAA,mBAAAkc,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,IACAje,IAAA,mBAAAkc,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,KAEA,IAAAA,EAAA/G,QAAAitB,eACAlmB,EAAAwpB,MAAAznC,IAAA,gBAAAie,EAAA4sB,aAIA5sB,EAAAwrB,QAAAzpC,IAAA,2BAEA,IAAAie,EAAA/G,QAAAqtB,QAAAtmB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAA6pB,YAAA7pB,EAAA6pB,WAAA9nC,IAAA,cAAAie,EAAAssB,aACAtsB,EAAA4pB,YAAA5pB,EAAA4pB,WAAA7nC,IAAA,cAAAie,EAAAssB,cAEA,IAAAtsB,EAAA/G,QAAAitB,gBACAlmB,EAAA6pB,YAAA7pB,EAAA6pB,WAAA9nC,IAAA,gBAAAie,EAAA4sB,YACA5sB,EAAA4pB,YAAA5pB,EAAA4pB,WAAA7nC,IAAA,gBAAAie,EAAA4sB,cAIA5sB,EAAAuqB,MAAAxoC,IAAA,mCAAAie,EAAA0sB,cACA1sB,EAAAuqB,MAAAxoC,IAAA,kCAAAie,EAAA0sB,cACA1sB,EAAAuqB,MAAAxoC,IAAA,+BAAAie,EAAA0sB,cACA1sB,EAAAuqB,MAAAxoC,IAAA,qCAAAie,EAAA0sB,cAEA1sB,EAAAuqB,MAAAxoC,IAAA,cAAAie,EAAAusB,cAEAtuB,EAAA/Y,UAAAnD,IAAAie,EAAA4rB,iBAAA5rB,EAAAkxB,YAEAlxB,EAAAmxB,sBAEA,IAAAnxB,EAAA/G,QAAAitB,eACAlmB,EAAAuqB,MAAAxoC,IAAA,gBAAAie,EAAA4sB,aAGA,IAAA5sB,EAAA/G,QAAAquB,eACArpB,EAAA+B,EAAAiqB,aAAAnpC,WAAAiB,IAAA,cAAAie,EAAAwsB,eAGAvuB,EAAAtI,QAAA5T,IAAA,iCAAAie,EAAA+lB,YAAA/lB,EAAAoxB,mBAEAnzB,EAAAtI,QAAA5T,IAAA,sBAAAie,EAAA+lB,YAAA/lB,EAAAqxB,QAEApzB,EAAA,oBAAA+B,EAAAiqB,aAAAloC,IAAA,YAAAie,EAAA0L,gBAEAzN,EAAAtI,QAAA5T,IAAA,oBAAAie,EAAA+lB,YAAA/lB,EAAAysB,cAIAzG,EAAApkB,UAAAuvB,mBAAA,WAEA,IAAAnxB,EAAAne,KAEAme,EAAAuqB,MAAAxoC,IAAA,mBAAAkc,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,IACAA,EAAAuqB,MAAAxoC,IAAA,mBAAAkc,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,KAIAgmB,EAAApkB,UAAA0vB,YAAA,WAEA,IAAA5B,EAAA1vB,EAAAne,KAEAme,EAAA/G,QAAAgvB,KAAA,KACAyH,EAAA1vB,EAAAkqB,QAAAppC,WAAAA,YACA0N,WAAA,SACAwR,EAAAwrB,QAAApnB,QAAAvjB,OAAA6uC,KAKA1J,EAAApkB,UAAA2qB,aAAA,SAAArjC,IAIA,IAFArH,KAEA0pC,cACAriC,EAAAuQ,2BACAvQ,EAAAsQ,kBACAtQ,EAAAwiB,mBAKAsa,EAAApkB,UAAA9f,QAAA,SAAAwuC,GAEA,IAAAtwB,EAAAne,KAEAme,EAAAosB,gBAEApsB,EAAAwqB,YAAA,GAEAxqB,EAAAgxB,gBAEA/yB,EAAA,gBAAA+B,EAAAwrB,SAAAkC,SAEA1tB,EAAAwpB,OACAxpB,EAAAwpB,MAAA5Z,SAGA5P,EAAA6pB,YAAA7pB,EAAA6pB,WAAApgC,SAEAuW,EAAA6pB,WACAt5B,YAAA,2CACA/B,WAAA,sCACAzN,IAAA,UAAA,IAEAif,EAAA6sB,SAAA7mB,KAAAhG,EAAA/G,QAAAutB,YACAxmB,EAAA6pB,WAAAja,UAIA5P,EAAA4pB,YAAA5pB,EAAA4pB,WAAAngC,SAEAuW,EAAA4pB,WACAr5B,YAAA,2CACA/B,WAAA,sCACAzN,IAAA,UAAA,IAEAif,EAAA6sB,SAAA7mB,KAAAhG,EAAA/G,QAAAwtB,YACAzmB,EAAA4pB,WAAAha,UAKA5P,EAAAkqB,UAEAlqB,EAAAkqB,QACA35B,YAAA,qEACA/B,WAAA,eACAA,WAAA,oBACAwB,MAAA,WACAiO,EAAApc,MAAAgb,KAAA,QAAAoB,EAAApc,MAAAT,KAAA,uBAGA4e,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAAAwF,SAEA1tB,EAAAiqB,YAAAyD,SAEA1tB,EAAAuqB,MAAAmD,SAEA1tB,EAAAwrB,QAAA3qC,OAAAmf,EAAAkqB,UAGAlqB,EAAAsxB,cAEAtxB,EAAAwrB,QAAAj7B,YAAA,gBACAyP,EAAAwrB,QAAAj7B,YAAA,qBACAyP,EAAAwrB,QAAAj7B,YAAA,gBAEAyP,EAAA0qB,WAAA,EAEA4F,GACAtwB,EAAAwrB,QAAAnwB,QAAA,UAAA,CAAA2E,KAKAgmB,EAAApkB,UAAA0sB,kBAAA,SAAApG,GAEA,IAAAloB,EAAAne,KACA8sC,EAAA,GAEAA,EAAA3uB,EAAA2rB,gBAAA,IAEA,IAAA3rB,EAAA/G,QAAAouB,KACArnB,EAAAiqB,YAAAlpC,IAAA4tC,GAEA3uB,EAAAkqB,QAAAsD,GAAAtF,GAAAnnC,IAAA4tC,IAKA3I,EAAApkB,UAAA2vB,UAAA,SAAAC,EAAAlY,GAEA,IAAAtZ,EAAAne,MAEA,IAAAme,EAAAgrB,gBAEAhrB,EAAAkqB,QAAAsD,GAAAgE,GAAAzwC,IAAA,CACAgoC,OAAA/oB,EAAA/G,QAAA8vB,SAGA/oB,EAAAkqB,QAAAsD,GAAAgE,GAAA1D,QAAA,CACAv2B,QAAA,GACAyI,EAAA/G,QAAA6hB,MAAA9a,EAAA/G,QAAAkuB,OAAA7N,KAIAtZ,EAAAquB,gBAAAmD,GAEAxxB,EAAAkqB,QAAAsD,GAAAgE,GAAAzwC,IAAA,CACAwW,QAAA,EACAwxB,OAAA/oB,EAAA/G,QAAA8vB,SAGAzP,GACA7e,YAAA,WAEAuF,EAAAsuB,kBAAAkD,GAEAlY,EAAA3a,SACAqB,EAAA/G,QAAA6hB,SAOAkL,EAAApkB,UAAA6vB,aAAA,SAAAD,GAEA,IAAAxxB,EAAAne,MAEA,IAAAme,EAAAgrB,eAEAhrB,EAAAkqB,QAAAsD,GAAAgE,GAAA1D,QAAA,CACAv2B,QAAA,EACAwxB,OAAA/oB,EAAA/G,QAAA8vB,OAAA,GACA/oB,EAAA/G,QAAA6hB,MAAA9a,EAAA/G,QAAAkuB,SAIAnnB,EAAAquB,gBAAAmD,GAEAxxB,EAAAkqB,QAAAsD,GAAAgE,GAAAzwC,IAAA,CACAwW,QAAA,EACAwxB,OAAA/oB,EAAA/G,QAAA8vB,OAAA,MAOA/C,EAAApkB,UAAA8vB,aAAA1L,EAAApkB,UAAA+vB,YAAA,SAAAC,GAEA,IAAA5xB,EAAAne,KAEA,OAAA+vC,IAEA5xB,EAAAyrB,aAAAzrB,EAAAkqB,QAEAlqB,EAAAstB,SAEAttB,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAAAwF,SAEA1tB,EAAAyrB,aAAAmG,OAAAA,GAAArE,SAAAvtB,EAAAiqB,aAEAjqB,EAAA2tB,WAMA3H,EAAApkB,UAAAiwB,aAAA,WAEA,IAAA7xB,EAAAne,KAEAme,EAAAwrB,QACAzpC,IAAA,0BACA7B,GAAA,yBAAA,KAAA,SAAAgJ,GAEAA,EAAAuQ,2BACA,IAAAq4B,EAAA7zB,EAAApc,MAEA4Y,YAAA,WAEAuF,EAAA/G,QAAA4uB,eACA7nB,EAAAirB,SAAA6G,EAAAx2B,GAAA,UACA0E,EAAAksB,cAGA,OAKAlG,EAAApkB,UAAAmwB,WAAA/L,EAAApkB,UAAAowB,kBAAA,WAGA,OADAnwC,KACAynC,cAIAtD,EAAApkB,UAAAqtB,YAAA,WAEA,IAAAjvB,EAAAne,KAEAu9B,EAAA,EACA7iB,EAAA,EACA01B,EAAA,EAEA,IAAA,IAAAjyB,EAAA/G,QAAAuuB,SACA,GAAAxnB,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,eACA6J,OAEA,KAAA7S,EAAApf,EAAA+pB,cACAkI,EACA7S,EAAA7iB,EAAAyD,EAAA/G,QAAAovB,eACA9rB,GAAAyD,EAAA/G,QAAAovB,gBAAAroB,EAAA/G,QAAAmvB,aAAApoB,EAAA/G,QAAAovB,eAAAroB,EAAA/G,QAAAmvB,kBAGA,IAAA,IAAApoB,EAAA/G,QAAA0tB,WACAsL,EAAAjyB,EAAA+pB,gBACA,GAAA/pB,EAAA/G,QAAAstB,SAGA,KAAAnH,EAAApf,EAAA+pB,cACAkI,EACA7S,EAAA7iB,EAAAyD,EAAA/G,QAAAovB,eACA9rB,GAAAyD,EAAA/G,QAAAovB,gBAAAroB,EAAA/G,QAAAmvB,aAAApoB,EAAA/G,QAAAovB,eAAAroB,EAAA/G,QAAAmvB,kBALA6J,EAAA,EAAAvvC,KAAA0rC,MAAApuB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAAApoB,EAAA/G,QAAAovB,gBASA,OAAA4J,EAAA,GAIAjM,EAAApkB,UAAAswB,QAAA,SAAAV,GAEA,IACAxD,EACAmE,EAEAC,EACAC,EALAryB,EAAAne,KAGAywC,EAAA,EAkGA,OA9FAtyB,EAAAoqB,YAAA,EACA+H,EAAAnyB,EAAAkqB,QAAAthB,QAAA3d,aAAA,IAEA,IAAA+U,EAAA/G,QAAAuuB,UACAxnB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAAoqB,YAAApqB,EAAAgqB,WAAAhqB,EAAA/G,QAAAmvB,cAAA,EACAiK,GAAA,GAEA,IAAAryB,EAAA/G,QAAA2vB,WAAA,IAAA5oB,EAAA/G,QAAA0tB,aACA,IAAA3mB,EAAA/G,QAAAmvB,aACAiK,GAAA,IACA,IAAAryB,EAAA/G,QAAAmvB,eACAiK,GAAA,IAGAC,EAAAH,EAAAnyB,EAAA/G,QAAAmvB,aAAAiK,GAEAryB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,gBAAA,GACAmJ,EAAAxxB,EAAA/G,QAAAovB,eAAAroB,EAAA+pB,YAAA/pB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACAoJ,EAAAxxB,EAAA+pB,YACA/pB,EAAAoqB,aAAApqB,EAAA/G,QAAAmvB,cAAAoJ,EAAAxxB,EAAA+pB,aAAA/pB,EAAAgqB,YAAA,EACAsI,GAAAtyB,EAAA/G,QAAAmvB,cAAAoJ,EAAAxxB,EAAA+pB,aAAAoI,GAAA,IAEAnyB,EAAAoqB,YAAApqB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,eAAAroB,EAAAgqB,YAAA,EACAsI,EAAAtyB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,eAAA8J,GAAA,KAKAX,EAAAxxB,EAAA/G,QAAAmvB,aAAApoB,EAAA+pB,aACA/pB,EAAAoqB,aAAAoH,EAAAxxB,EAAA/G,QAAAmvB,aAAApoB,EAAA+pB,YAAA/pB,EAAAgqB,WACAsI,GAAAd,EAAAxxB,EAAA/G,QAAAmvB,aAAApoB,EAAA+pB,YAAAoI,GAIAnyB,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAAoqB,YAAA,EACAkI,EAAA,IAGA,IAAAtyB,EAAA/G,QAAA0tB,YAAA3mB,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,aACApoB,EAAAoqB,YAAApqB,EAAAgqB,WAAAtnC,KAAAwF,MAAA8X,EAAA/G,QAAAmvB,cAAA,EAAApoB,EAAAgqB,WAAAhqB,EAAA+pB,WAAA,GACA,IAAA/pB,EAAA/G,QAAA0tB,aAAA,IAAA3mB,EAAA/G,QAAAuuB,SACAxnB,EAAAoqB,aAAApqB,EAAAgqB,WAAAtnC,KAAAwF,MAAA8X,EAAA/G,QAAAmvB,aAAA,GAAApoB,EAAAgqB,YACA,IAAAhqB,EAAA/G,QAAA0tB,aACA3mB,EAAAoqB,YAAA,EACApqB,EAAAoqB,aAAApqB,EAAAgqB,WAAAtnC,KAAAwF,MAAA8X,EAAA/G,QAAAmvB,aAAA,IAIA4F,GADA,IAAAhuB,EAAA/G,QAAA2vB,SACA4I,EAAAxxB,EAAAgqB,YAAA,EAAAhqB,EAAAoqB,YAEAoH,EAAAW,GAAA,EAAAG,GAGA,IAAAtyB,EAAA/G,QAAA0vB,gBAGAyJ,EADApyB,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,eAAA,IAAApoB,EAAA/G,QAAAuuB,SACAxnB,EAAAiqB,YAAAnpC,SAAA,gBAAA0sC,GAAAgE,GAEAxxB,EAAAiqB,YAAAnpC,SAAA,gBAAA0sC,GAAAgE,EAAAxxB,EAAA/G,QAAAmvB,cAKA4F,GAFA,IAAAhuB,EAAA/G,QAAA8M,IACAqsB,EAAA,IACA,GAAApyB,EAAAiqB,YAAApnC,QAAAuvC,EAAA,GAAAnlC,WAAAmlC,EAAAvvC,SAEA,EAGAuvC,EAAA,IAAA,EAAAA,EAAA,GAAAnlC,WAAA,GAGA,IAAA+S,EAAA/G,QAAA0tB,aAEAyL,EADApyB,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,eAAA,IAAApoB,EAAA/G,QAAAuuB,SACAxnB,EAAAiqB,YAAAnpC,SAAA,gBAAA0sC,GAAAgE,GAEAxxB,EAAAiqB,YAAAnpC,SAAA,gBAAA0sC,GAAAgE,EAAAxxB,EAAA/G,QAAAmvB,aAAA,GAKA4F,GAFA,IAAAhuB,EAAA/G,QAAA8M,IACAqsB,EAAA,IACA,GAAApyB,EAAAiqB,YAAApnC,QAAAuvC,EAAA,GAAAnlC,WAAAmlC,EAAAvvC,SAEA,EAGAuvC,EAAA,IAAA,EAAAA,EAAA,GAAAnlC,WAAA,EAGA+gC,IAAAhuB,EAAAuqB,MAAA1nC,QAAAuvC,EAAAlnC,cAAA,IAIA8iC,GAIAhI,EAAApkB,UAAA2wB,UAAAvM,EAAApkB,UAAA4wB,eAAA,SAAAtiC,GAIA,OAFArO,KAEAoX,QAAA/I,IAIA81B,EAAApkB,UAAAmvB,oBAAA,WAEA,IAIAzM,EAJAtkB,EAAAne,KACAu9B,EAAA,EACA7iB,EAAA,EACAk2B,EAAA,GAWA,KARA,IAAAzyB,EAAA/G,QAAAuuB,SACAlD,EAAAtkB,EAAA+pB,YAEA3K,GAAA,EAAApf,EAAA/G,QAAAovB,eACA9rB,GAAA,EAAAyD,EAAA/G,QAAAovB,eACA/D,EAAA,EAAAtkB,EAAA+pB,YAGA3K,EAAAkF,GACAmO,EAAA95B,KAAAymB,GACAA,EAAA7iB,EAAAyD,EAAA/G,QAAAovB,eACA9rB,GAAAyD,EAAA/G,QAAAovB,gBAAAroB,EAAA/G,QAAAmvB,aAAApoB,EAAA/G,QAAAovB,eAAAroB,EAAA/G,QAAAmvB,aAGA,OAAAqK,GAIAzM,EAAApkB,UAAA8wB,SAAA,WAEA,OAAA7wC,MAIAmkC,EAAApkB,UAAA+wB,cAAA,WAEA,IACAC,EAAAC,EADA7yB,EAAAne,KAKA,OAFAgxC,GAAA,IAAA7yB,EAAA/G,QAAA0tB,WAAA3mB,EAAAgqB,WAAAtnC,KAAAwF,MAAA8X,EAAA/G,QAAAmvB,aAAA,GAAA,GAEA,IAAApoB,EAAA/G,QAAAsvB,cACAvoB,EAAAiqB,YAAApb,KAAA,gBAAA7e,MAAA,SAAA1O,EAAA4mC,GACA,GAAAA,EAAAj7B,WAAA4lC,EAAA50B,EAAAiqB,GAAAh9B,aAAA,GAAA,EAAA8U,EAAAqqB,UAEA,OADAuI,EAAA1K,GACA,KAIAxlC,KAAA8O,IAAAyM,EAAA20B,GAAA/1B,KAAA,oBAAAmD,EAAAspB,eAAA,GAKAtpB,EAAA/G,QAAAovB,gBAKArC,EAAApkB,UAAAkxB,KAAA9M,EAAApkB,UAAAmxB,UAAA,SAAA7K,EAAAqI,GAEA1uC,KAEAyqC,YAAA,CACAlrC,KAAA,CACAuvC,QAAA,QACArvC,MAAA2V,SAAAixB,KAEAqI,IAIAvK,EAAApkB,UAAApiB,KAAA,SAAAwzC,GAEA,IAAAhzB,EAAAne,KAEAoc,EAAA+B,EAAAwrB,SAAAh7B,SAAA,uBAEAyN,EAAA+B,EAAAwrB,SAAA5qC,SAAA,qBAEAof,EAAAuvB,YACAvvB,EAAAkvB,WACAlvB,EAAAizB,WACAjzB,EAAAkzB,YACAlzB,EAAAmzB,aACAnzB,EAAAozB,mBACApzB,EAAAqzB,eACArzB,EAAAqvB,aACArvB,EAAA6vB,iBAAA,GACA7vB,EAAA6xB,gBAIAmB,GACAhzB,EAAAwrB,QAAAnwB,QAAA,OAAA,CAAA2E,KAGA,IAAAA,EAAA/G,QAAAitB,eACAlmB,EAAAszB,UAGAtzB,EAAA/G,QAAA4e,WAEA7X,EAAAorB,QAAA,EACAprB,EAAAksB,aAMAlG,EAAApkB,UAAA0xB,QAAA,WACA,IAAAtzB,EAAAne,KACA0xC,EAAA7wC,KAAA0rC,KAAApuB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cACAoL,EAAAxzB,EAAA+wB,sBAAAa,QAAA,SAAA1hB,GACA,OAAAA,GAAA,GAAAA,EAAAlQ,EAAA+pB,cAGA/pB,EAAAkqB,QAAAtN,IAAA5c,EAAAiqB,YAAApb,KAAA,kBAAAhS,KAAA,CACAmwB,cAAA,OACAC,SAAA,OACApe,KAAA,4BAAAhS,KAAA,CACAowB,SAAA,OAGA,OAAAjtB,EAAAwpB,QACAxpB,EAAAkqB,QAAAsE,IAAAxuB,EAAAiqB,YAAApb,KAAA,kBAAA7e,MAAA,SAAA8G,GACA,IAAA28B,EAAAD,EAAArjC,QAAA2G,GAQA,GANAmH,EAAApc,MAAAgb,KAAA,CACA62B,KAAA,WACAz/B,GAAA,cAAA+L,EAAA+lB,YAAAjvB,EACAm2B,UAAA,KAGA,IAAAwG,EAAA,CACA,IAAAE,EAAA,sBAAA3zB,EAAA+lB,YAAA0N,EACAx1B,EAAA,IAAA01B,GAAAlqC,QACAwU,EAAApc,MAAAgb,KAAA,CACAmX,mBAAA2f,QAMA3zB,EAAAwpB,MAAA3sB,KAAA,OAAA,WAAAgS,KAAA,MAAA7e,MAAA,SAAA8G,GACA,IAAA88B,EAAAJ,EAAA18B,GAEAmH,EAAApc,MAAAgb,KAAA,CACA62B,KAAA,iBAGAz1B,EAAApc,MAAAgtB,KAAA,UAAAjG,QAAA/L,KAAA,CACA62B,KAAA,MACAz/B,GAAA,sBAAA+L,EAAA+lB,YAAAjvB,EACA+8B,gBAAA,cAAA7zB,EAAA+lB,YAAA6N,EACAE,aAAAh9B,EAAA,EAAA,OAAAy8B,EACAQ,gBAAA,KACA9G,SAAA,UAGAO,GAAAxtB,EAAAspB,cAAAza,KAAA,UAAAhS,KAAA,CACAk3B,gBAAA,OACA9G,SAAA,MACA/U,OAGA,IAAA,IAAAphB,EAAAkJ,EAAAspB,aAAAhF,EAAAxtB,EAAAkJ,EAAA/G,QAAAmvB,aAAAtxB,EAAAwtB,EAAAxtB,IACAkJ,EAAA/G,QAAAsuB,cACAvnB,EAAAkqB,QAAAsD,GAAA12B,GAAA+F,KAAA,CAAAowB,SAAA,MAEAjtB,EAAAkqB,QAAAsD,GAAA12B,GAAAtI,WAAA,YAIAwR,EAAA+sB,eAIA/G,EAAApkB,UAAAoyB,gBAAA,WAEA,IAAAh0B,EAAAne,MAEA,IAAAme,EAAA/G,QAAAqtB,QAAAtmB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAA6pB,WACA9nC,IAAA,eACA7B,GAAA,cAAA,CACAywC,QAAA,YACA3wB,EAAAssB,aACAtsB,EAAA4pB,WACA7nC,IAAA,eACA7B,GAAA,cAAA,CACAywC,QAAA,QACA3wB,EAAAssB,cAEA,IAAAtsB,EAAA/G,QAAAitB,gBACAlmB,EAAA6pB,WAAA3pC,GAAA,gBAAA8f,EAAA4sB,YACA5sB,EAAA4pB,WAAA1pC,GAAA,gBAAA8f,EAAA4sB,eAMA5G,EAAApkB,UAAAqyB,cAAA,WAEA,IAAAj0B,EAAAne,MAEA,IAAAme,EAAA/G,QAAA+tB,MAAAhnB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACAnqB,EAAA,KAAA+B,EAAAwpB,OAAAtpC,GAAA,cAAA,CACAywC,QAAA,SACA3wB,EAAAssB,cAEA,IAAAtsB,EAAA/G,QAAAitB,eACAlmB,EAAAwpB,MAAAtpC,GAAA,gBAAA8f,EAAA4sB,cAIA,IAAA5sB,EAAA/G,QAAA+tB,OAAA,IAAAhnB,EAAA/G,QAAA6uB,kBAAA9nB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAEAnqB,EAAA,KAAA+B,EAAAwpB,OACAtpC,GAAA,mBAAA+d,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,IACA9f,GAAA,mBAAA+d,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,KAMAgmB,EAAApkB,UAAAsyB,gBAAA,WAEA,IAAAl0B,EAAAne,KAEAme,EAAA/G,QAAA2uB,eAEA5nB,EAAAuqB,MAAArqC,GAAA,mBAAA+d,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,IACAA,EAAAuqB,MAAArqC,GAAA,mBAAA+d,EAAAkuB,MAAAnsB,EAAAixB,UAAAjxB,GAAA,MAMAgmB,EAAApkB,UAAAwxB,iBAAA,WAEA,IAAApzB,EAAAne,KAEAme,EAAAg0B,kBAEAh0B,EAAAi0B,gBACAj0B,EAAAk0B,kBAEAl0B,EAAAuqB,MAAArqC,GAAA,mCAAA,CACAi0C,OAAA,SACAn0B,EAAA0sB,cACA1sB,EAAAuqB,MAAArqC,GAAA,kCAAA,CACAi0C,OAAA,QACAn0B,EAAA0sB,cACA1sB,EAAAuqB,MAAArqC,GAAA,+BAAA,CACAi0C,OAAA,OACAn0B,EAAA0sB,cACA1sB,EAAAuqB,MAAArqC,GAAA,qCAAA,CACAi0C,OAAA,OACAn0B,EAAA0sB,cAEA1sB,EAAAuqB,MAAArqC,GAAA,cAAA8f,EAAAusB,cAEAtuB,EAAA/Y,UAAAhF,GAAA8f,EAAA4rB,iBAAA3tB,EAAAkuB,MAAAnsB,EAAAkxB,WAAAlxB,KAEA,IAAAA,EAAA/G,QAAAitB,eACAlmB,EAAAuqB,MAAArqC,GAAA,gBAAA8f,EAAA4sB,aAGA,IAAA5sB,EAAA/G,QAAAquB,eACArpB,EAAA+B,EAAAiqB,aAAAnpC,WAAAZ,GAAA,cAAA8f,EAAAwsB,eAGAvuB,EAAAtI,QAAAzV,GAAA,iCAAA8f,EAAA+lB,YAAA9nB,EAAAkuB,MAAAnsB,EAAAoxB,kBAAApxB,IAEA/B,EAAAtI,QAAAzV,GAAA,sBAAA8f,EAAA+lB,YAAA9nB,EAAAkuB,MAAAnsB,EAAAqxB,OAAArxB,IAEA/B,EAAA,oBAAA+B,EAAAiqB,aAAA/pC,GAAA,YAAA8f,EAAA0L,gBAEAzN,EAAAtI,QAAAzV,GAAA,oBAAA8f,EAAA+lB,YAAA/lB,EAAAysB,aACAxuB,EAAA+B,EAAAysB,cAIAzG,EAAApkB,UAAAwyB,OAAA,WAEA,IAAAp0B,EAAAne,MAEA,IAAAme,EAAA/G,QAAAqtB,QAAAtmB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eAEApoB,EAAA6pB,WAAApoC,OACAue,EAAA4pB,WAAAnoC,SAIA,IAAAue,EAAA/G,QAAA+tB,MAAAhnB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAEApoB,EAAAwpB,MAAA/nC,QAMAukC,EAAApkB,UAAAgrB,WAAA,SAAA1jC,GAEA,IAAA8W,EAAAne,KAEAqH,EAAA+mB,OAAAgL,QAAA5P,MAAA,2BACA,KAAAniB,EAAA6iB,UAAA,IAAA/L,EAAA/G,QAAAitB,cACAlmB,EAAAssB,YAAA,CACAlrC,KAAA,CACAuvC,SAAA,IAAA3wB,EAAA/G,QAAA8M,IAAA,OAAA,cAGA,KAAA7c,EAAA6iB,UAAA,IAAA/L,EAAA/G,QAAAitB,eACAlmB,EAAAssB,YAAA,CACAlrC,KAAA,CACAuvC,SAAA,IAAA3wB,EAAA/G,QAAA8M,IAAA,WAAA,YAQAigB,EAAApkB,UAAA8lB,SAAA,WAEA,IACA2M,EAAAC,EAAAC,EADAv0B,EAAAne,KAGA,SAAA2yC,EAAAC,GAEAx2B,EAAA,iBAAAw2B,GAAAzkC,MAAA,WAEA,IAAA0M,EAAAuB,EAAApc,MACA6yC,EAAAz2B,EAAApc,MAAAgb,KAAA,aACA83B,EAAA12B,EAAApc,MAAAgb,KAAA,eACA+3B,EAAA32B,EAAApc,MAAAgb,KAAA,eAAAmD,EAAAwrB,QAAA3uB,KAAA,cACAg4B,EAAA3vC,SAAAoB,cAAA,OAEAuuC,EAAAC,OAAA,WAEAp4B,EACAoxB,QAAA,CAAAv2B,QAAA,GAAA,KAAA,WAEAo9B,IACAj4B,EACAG,KAAA,SAAA83B,GAEAC,GACAl4B,EACAG,KAAA,QAAA+3B,IAIAl4B,EACAG,KAAA,MAAA63B,GACA5G,QAAA,CAAAv2B,QAAA,GAAA,KAAA,WACAmF,EACAlO,WAAA,oCACA+B,YAAA,oBAEAyP,EAAAwrB,QAAAnwB,QAAA,aAAA,CAAA2E,EAAAtD,EAAAg4B,QAKAG,EAAAE,QAAA,WAEAr4B,EACAlO,WAAA,aACA+B,YAAA,iBACA3P,SAAA,wBAEAof,EAAAwrB,QAAAnwB,QAAA,gBAAA,CAAA2E,EAAAtD,EAAAg4B,KAIAG,EAAArqC,IAAAkqC,KAyBA,IAnBA,IAAA10B,EAAA/G,QAAA0tB,YACA,IAAA3mB,EAAA/G,QAAAuuB,SAEA+M,GADAD,EAAAt0B,EAAAspB,cAAAtpB,EAAA/G,QAAAmvB,aAAA,EAAA,IACApoB,EAAA/G,QAAAmvB,aAAA,GAEAkM,EAAA5xC,KAAA4hC,IAAA,EAAAtkB,EAAAspB,cAAAtpB,EAAA/G,QAAAmvB,aAAA,EAAA,IACAmM,EAAAv0B,EAAA/G,QAAAmvB,aAAA,EAAA,EAAA,EAAApoB,EAAAspB,eAGAgL,EAAAt0B,EAAA/G,QAAAuuB,SAAAxnB,EAAA/G,QAAAmvB,aAAApoB,EAAAspB,aAAAtpB,EAAAspB,aACAiL,EAAA7xC,KAAA0rC,KAAAkG,EAAAt0B,EAAA/G,QAAAmvB,eACA,IAAApoB,EAAA/G,QAAAouB,OACAiN,EAAA,GAAAA,IACAC,GAAAv0B,EAAA+pB,YAAAwK,MAIAF,EAAAr0B,EAAAwrB,QAAA3c,KAAA,gBAAAjO,MAAA0zB,EAAAC,GAEA,gBAAAv0B,EAAA/G,QAAAyuB,SAKA,IAJA,IAAAsN,EAAAV,EAAA,EACAW,EAAAV,EACArK,EAAAlqB,EAAAwrB,QAAA3c,KAAA,gBAEA/X,EAAA,EAAAA,EAAAkJ,EAAA/G,QAAAovB,eAAAvxB,IACAk+B,EAAA,IAAAA,EAAAh1B,EAAA+pB,WAAA,GAEAsK,GADAA,EAAAA,EAAAzX,IAAAsN,EAAAsD,GAAAwH,KACApY,IAAAsN,EAAAsD,GAAAyH,IACAD,IACAC,IAIAT,EAAAH,GAEAr0B,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,aAEAoM,EADAx0B,EAAAwrB,QAAA3c,KAAA,iBAGA7O,EAAAspB,cAAAtpB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aAEAoM,EADAx0B,EAAAwrB,QAAA3c,KAAA,iBAAAjO,MAAA,EAAAZ,EAAA/G,QAAAmvB,eAEA,IAAApoB,EAAAspB,cAEAkL,EADAx0B,EAAAwrB,QAAA3c,KAAA,iBAAAjO,OAAA,EAAAZ,EAAA/G,QAAAmvB,gBAMApC,EAAApkB,UAAAuxB,WAAA,WAEA,IAAAnzB,EAAAne,KAEAme,EAAAysB,cAEAzsB,EAAAiqB,YAAAlpC,IAAA,CACAwW,QAAA,IAGAyI,EAAAwrB,QAAAj7B,YAAA,iBAEAyP,EAAAo0B,SAEA,gBAAAp0B,EAAA/G,QAAAyuB,UACA1nB,EAAAk1B,uBAKAlP,EAAApkB,UAAAuzB,KAAAnP,EAAApkB,UAAAwzB,UAAA,WAEAvzC,KAEAyqC,YAAA,CACAlrC,KAAA,CACAuvC,QAAA,WAMA3K,EAAApkB,UAAAwvB,kBAAA,WAEAvvC,KAEAguC,kBAFAhuC,KAGA4qC,eAIAzG,EAAApkB,UAAAyzB,MAAArP,EAAApkB,UAAA0zB,WAAA,WAEAzzC,KAEAuqC,gBAFAvqC,KAGAupC,QAAA,GAIApF,EAAApkB,UAAA2zB,KAAAvP,EAAApkB,UAAA4zB,UAAA,WAEA,IAAAx1B,EAAAne,KAEAme,EAAAksB,WACAlsB,EAAA/G,QAAA4e,UAAA,EACA7X,EAAAorB,QAAA,EACAprB,EAAAirB,UAAA,EACAjrB,EAAAkrB,aAAA,GAIAlF,EAAApkB,UAAA6zB,UAAA,SAAAn0C,GAEA,IAAA0e,EAAAne,KAEAme,EAAA0qB,YAEA1qB,EAAAwrB,QAAAnwB,QAAA,cAAA,CAAA2E,EAAA1e,IAEA0e,EAAAipB,WAAA,EAEAjpB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cACApoB,EAAAysB,cAGAzsB,EAAAqqB,UAAA,KAEArqB,EAAA/G,QAAA4e,UACA7X,EAAAksB,YAGA,IAAAlsB,EAAA/G,QAAAitB,gBACAlmB,EAAAszB,UAEAtzB,EAAA/G,QAAAsuB,eACAtpB,EAAA+B,EAAAkqB,QAAA5U,IAAAtV,EAAAspB,eACAzsB,KAAA,WAAA,GAAA6T,WAQAsV,EAAApkB,UAAA8zB,KAAA1P,EAAApkB,UAAA+zB,UAAA,WAEA9zC,KAEAyqC,YAAA,CACAlrC,KAAA,CACAuvC,QAAA,eAMA3K,EAAApkB,UAAA8J,eAAA,SAAAxiB,GAEAA,EAAAwiB,kBAIAsa,EAAApkB,UAAAszB,oBAAA,SAAAU,GAEAA,EAAAA,GAAA,EAEA,IAEAl5B,EACAg4B,EACAC,EACAC,EACAC,EANA70B,EAAAne,KACAg0C,EAAA53B,EAAA,iBAAA+B,EAAAwrB,SAOAqK,EAAApsC,QAEAiT,EAAAm5B,EAAAjtB,QACA8rB,EAAAh4B,EAAAG,KAAA,aACA83B,EAAAj4B,EAAAG,KAAA,eACA+3B,EAAAl4B,EAAAG,KAAA,eAAAmD,EAAAwrB,QAAA3uB,KAAA,eACAg4B,EAAA3vC,SAAAoB,cAAA,QAEAwuC,OAAA,WAEAH,IACAj4B,EACAG,KAAA,SAAA83B,GAEAC,GACAl4B,EACAG,KAAA,QAAA+3B,IAIAl4B,EACAG,KAAA,MAAA63B,GACAlmC,WAAA,oCACA+B,YAAA,kBAEA,IAAAyP,EAAA/G,QAAAktB,gBACAnmB,EAAAysB,cAGAzsB,EAAAwrB,QAAAnwB,QAAA,aAAA,CAAA2E,EAAAtD,EAAAg4B,IACA10B,EAAAk1B,uBAIAL,EAAAE,QAAA,WAEAa,EAAA,EAOAn7B,YAAA,WACAuF,EAAAk1B,oBAAAU,EAAA,KACA,MAIAl5B,EACAlO,WAAA,aACA+B,YAAA,iBACA3P,SAAA,wBAEAof,EAAAwrB,QAAAnwB,QAAA,gBAAA,CAAA2E,EAAAtD,EAAAg4B,IAEA10B,EAAAk1B,wBAMAL,EAAArqC,IAAAkqC,GAIA10B,EAAAwrB,QAAAnwB,QAAA,kBAAA,CAAA2E,KAMAgmB,EAAApkB,UAAA0uB,QAAA,SAAAwF,GAEA,IAAAxM,EAAAyM,EAAA/1B,EAAAne,KAEAk0C,EAAA/1B,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAIApoB,EAAA/G,QAAAuuB,UAAAxnB,EAAAspB,aAAAyM,IACA/1B,EAAAspB,aAAAyM,GAIA/1B,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAAspB,aAAA,GAIAA,EAAAtpB,EAAAspB,aAEAtpB,EAAAle,SAAA,GAEAmc,EAAAhf,OAAA+gB,EAAAA,EAAAgpB,SAAA,CAAAM,aAAAA,IAEAtpB,EAAAxgB,OAEAs2C,GAEA91B,EAAAssB,YAAA,CACAlrC,KAAA,CACAuvC,QAAA,QACArvC,MAAAgoC,KAEA,IAMAtD,EAAApkB,UAAAkrB,oBAAA,WAEA,IAAAkD,EAAAgG,EAAAn3B,EAAAmB,EAAAne,KACAo0C,EAAAj2B,EAAA/G,QAAA+uB,YAAA,KAEA,GAAA,UAAA/pB,EAAAjF,KAAAi9B,IAAAA,EAAAxsC,OAAA,CAIA,IAAAumC,KAFAhwB,EAAA+nB,UAAA/nB,EAAA/G,QAAA8uB,WAAA,SAEAkO,EAIA,GAFAp3B,EAAAmB,EAAA8qB,YAAArhC,OAAA,EAEAwsC,EAAA57B,eAAA21B,GAAA,CAKA,IAJAgG,EAAAC,EAAAjG,GAAAA,WAIAnxB,GAAA,GACAmB,EAAA8qB,YAAAjsB,IAAAmB,EAAA8qB,YAAAjsB,KAAAm3B,GACAh2B,EAAA8qB,YAAAhL,OAAAjhB,EAAA,GAEAA,IAGAmB,EAAA8qB,YAAAnyB,KAAAq9B,GACAh2B,EAAA+qB,mBAAAiL,GAAAC,EAAAjG,GAAA5xB,SAMA4B,EAAA8qB,YAAAoL,MAAA,SAAA13B,EAAA5G,GACA,OAAAoI,EAAA/G,QAAA,YAAAuF,EAAA5G,EAAAA,EAAA4G,OAOAwnB,EAAApkB,UAAA+rB,OAAA,WAEA,IAAA3tB,EAAAne,KAEAme,EAAAkqB,QACAlqB,EAAAiqB,YACAnpC,SAAAkf,EAAA/G,QAAAivB,OACAtnC,SAAA,eAEAof,EAAA+pB,WAAA/pB,EAAAkqB,QAAAzgC,OAEAuW,EAAAspB,cAAAtpB,EAAA+pB,YAAA,IAAA/pB,EAAAspB,eACAtpB,EAAAspB,aAAAtpB,EAAAspB,aAAAtpB,EAAA/G,QAAAovB,gBAGAroB,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAAspB,aAAA,GAGAtpB,EAAA8sB,sBAEA9sB,EAAAizB,WACAjzB,EAAAovB,gBACApvB,EAAA6uB,cACA7uB,EAAAqzB,eACArzB,EAAAg0B,kBACAh0B,EAAA+uB,YACA/uB,EAAAqvB,aACArvB,EAAAi0B,gBACAj0B,EAAAmxB,qBACAnxB,EAAAk0B,kBAEAl0B,EAAA6vB,iBAAA,GAAA,IAEA,IAAA7vB,EAAA/G,QAAAquB,eACArpB,EAAA+B,EAAAiqB,aAAAnpC,WAAAZ,GAAA,cAAA8f,EAAAwsB,eAGAxsB,EAAAsvB,gBAAA,iBAAAtvB,EAAAspB,aAAAtpB,EAAAspB,aAAA,GAEAtpB,EAAAysB,cACAzsB,EAAA6xB,eAEA7xB,EAAAorB,QAAAprB,EAAA/G,QAAA4e,SACA7X,EAAAksB,WAEAlsB,EAAAwrB,QAAAnwB,QAAA,SAAA,CAAA2E,KAIAgmB,EAAApkB,UAAAyvB,OAAA,WAEA,IAAArxB,EAAAne,KAEAoc,EAAAtI,QAAA9S,UAAAmd,EAAA6rB,cACArxB,aAAAwF,EAAAm2B,aACAn2B,EAAAm2B,YAAAxgC,OAAA8E,YAAA,WACAuF,EAAA6rB,YAAA5tB,EAAAtI,QAAA9S,QACAmd,EAAA6vB,kBACA7vB,EAAA0qB,WAAA1qB,EAAAysB,gBACA,MAIAzG,EAAApkB,UAAAw0B,YAAApQ,EAAApkB,UAAAy0B,YAAA,SAAA/0C,EAAAg1C,EAAAC,GAEA,IAAAv2B,EAAAne,KASA,GALAP,EAFA,kBAAA,GAEA,KADAg1C,EAAAh1C,GACA,EAAA0e,EAAA+pB,WAAA,GAEA,IAAAuM,IAAAh1C,EAAAA,EAGA0e,EAAA+pB,WAAA,GAAAzoC,EAAA,GAAAA,EAAA0e,EAAA+pB,WAAA,EACA,OAAA,EAGA/pB,EAAAstB,UAEA,IAAAiJ,EACAv2B,EAAAiqB,YAAAnpC,WAAA8uB,SAEA5P,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAAAsF,GAAAlsC,GAAAsuB,SAGA5P,EAAAkqB,QAAAlqB,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAEAloB,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAAAwF,SAEA1tB,EAAAiqB,YAAAppC,OAAAmf,EAAAkqB,SAEAlqB,EAAAyrB,aAAAzrB,EAAAkqB,QAEAlqB,EAAA2tB,UAIA3H,EAAApkB,UAAA40B,OAAA,SAAAxrC,GAEA,IAEAjC,EAAAC,EAFAgX,EAAAne,KACA40C,EAAA,IAGA,IAAAz2B,EAAA/G,QAAA8M,MACA/a,GAAAA,GAEAjC,EAAA,QAAAiX,EAAAqrB,aAAA3oC,KAAA0rC,KAAApjC,GAAA,KAAA,MACAhC,EAAA,OAAAgX,EAAAqrB,aAAA3oC,KAAA0rC,KAAApjC,GAAA,KAAA,MAEAyrC,EAAAz2B,EAAAqrB,cAAArgC,GAEA,IAAAgV,EAAAyqB,kBACAzqB,EAAAiqB,YAAAlpC,IAAA01C,IAEAA,EAAA,IACA,IAAAz2B,EAAAgrB,gBACAyL,EAAAz2B,EAAA4qB,UAAA,aAAA7hC,EAAA,KAAAC,EAAA,IACAgX,EAAAiqB,YAAAlpC,IAAA01C,KAEAA,EAAAz2B,EAAA4qB,UAAA,eAAA7hC,EAAA,KAAAC,EAAA,SACAgX,EAAAiqB,YAAAlpC,IAAA01C,MAMAzQ,EAAApkB,UAAA80B,cAAA,WAEA,IAAA12B,EAAAne,MAEA,IAAAme,EAAA/G,QAAA2vB,UACA,IAAA5oB,EAAA/G,QAAA0tB,YACA3mB,EAAAuqB,MAAAxpC,IAAA,CACAk7B,QAAA,OAAAjc,EAAA/G,QAAA2tB,iBAIA5mB,EAAAuqB,MAAA3qC,OAAAogB,EAAAkqB,QAAAthB,QAAA3d,aAAA,GAAA+U,EAAA/G,QAAAmvB,eACA,IAAApoB,EAAA/G,QAAA0tB,YACA3mB,EAAAuqB,MAAAxpC,IAAA,CACAk7B,QAAAjc,EAAA/G,QAAA2tB,cAAA,UAKA5mB,EAAAypB,UAAAzpB,EAAAuqB,MAAA1nC,QACAmd,EAAA0pB,WAAA1pB,EAAAuqB,MAAA3qC,UAGA,IAAAogB,EAAA/G,QAAA2vB,WAAA,IAAA5oB,EAAA/G,QAAA0vB,eACA3oB,EAAAgqB,WAAAtnC,KAAA0rC,KAAApuB,EAAAypB,UAAAzpB,EAAA/G,QAAAmvB,cACApoB,EAAAiqB,YAAApnC,MAAAH,KAAA0rC,KAAApuB,EAAAgqB,WAAAhqB,EAAAiqB,YAAAnpC,SAAA,gBAAA2I,WAEA,IAAAuW,EAAA/G,QAAA0vB,cACA3oB,EAAAiqB,YAAApnC,MAAA,IAAAmd,EAAA+pB,aAEA/pB,EAAAgqB,WAAAtnC,KAAA0rC,KAAApuB,EAAAypB,WACAzpB,EAAAiqB,YAAArqC,OAAA8C,KAAA0rC,KAAApuB,EAAAkqB,QAAAthB,QAAA3d,aAAA,GAAA+U,EAAAiqB,YAAAnpC,SAAA,gBAAA2I,UAGA,IAAAE,EAAAqW,EAAAkqB,QAAAthB,QAAA1d,YAAA,GAAA8U,EAAAkqB,QAAAthB,QAAA/lB,SACA,IAAAmd,EAAA/G,QAAA0vB,eAAA3oB,EAAAiqB,YAAAnpC,SAAA,gBAAA+B,MAAAmd,EAAAgqB,WAAArgC,IAIAq8B,EAAApkB,UAAA+0B,QAAA,WAEA,IACA3I,EADAhuB,EAAAne,KAGAme,EAAAkqB,QAAAl6B,MAAA,SAAA1O,EAAAoD,GACAspC,EAAAhuB,EAAAgqB,WAAA1oC,GAAA,GACA,IAAA0e,EAAA/G,QAAA8M,IACA9H,EAAAvZ,GAAA3D,IAAA,CACAiK,SAAA,WACAG,MAAA6iC,EACAplC,IAAA,EACAmgC,OAAA/oB,EAAA/G,QAAA8vB,OAAA,EACAxxB,QAAA,IAGA0G,EAAAvZ,GAAA3D,IAAA,CACAiK,SAAA,WACArC,KAAAqlC,EACAplC,IAAA,EACAmgC,OAAA/oB,EAAA/G,QAAA8vB,OAAA,EACAxxB,QAAA,OAKAyI,EAAAkqB,QAAAsD,GAAAxtB,EAAAspB,cAAAvoC,IAAA,CACAgoC,OAAA/oB,EAAA/G,QAAA8vB,OAAA,EACAxxB,QAAA,KAKAyuB,EAAApkB,UAAAg1B,UAAA,WAEA,IAAA52B,EAAAne,KAEA,GAAA,IAAAme,EAAA/G,QAAAmvB,eAAA,IAAApoB,EAAA/G,QAAAktB,iBAAA,IAAAnmB,EAAA/G,QAAA2vB,SAAA,CACA,IAAAiF,EAAA7tB,EAAAkqB,QAAAsD,GAAAxtB,EAAAspB,cAAAr+B,aAAA,GACA+U,EAAAuqB,MAAAxpC,IAAA,SAAA8sC,KAKA7H,EAAApkB,UAAAi1B,UACA7Q,EAAApkB,UAAAk1B,eAAA,WAeA,IAAAj4B,EAAAtB,EAAArN,EAAAzN,EAAAuW,EAAAgH,EAAAne,KAAAyuC,GAAA,EA0BA,GAxBA,WAAAryB,EAAAjF,KAAAyF,UAAA,KAEAvO,EAAAuO,UAAA,GACA6xB,EAAA7xB,UAAA,GACAzF,EAAA,YAEA,WAAAiF,EAAAjF,KAAAyF,UAAA,MAEAvO,EAAAuO,UAAA,GACAhc,EAAAgc,UAAA,GACA6xB,EAAA7xB,UAAA,GAEA,eAAAA,UAAA,IAAA,UAAAR,EAAAjF,KAAAyF,UAAA,IAEAzF,EAAA,kBAEA,IAAAyF,UAAA,KAEAzF,EAAA,WAMA,WAAAA,EAEAgH,EAAA/G,QAAA/I,GAAAzN,OAGA,GAAA,aAAAuW,EAEAiF,EAAAjO,KAAAE,GAAA,SAAAwqB,EAAAxK,GAEAlQ,EAAA/G,QAAAyhB,GAAAxK,UAKA,GAAA,eAAAlX,EAEA,IAAAuE,KAAA9a,EAEA,GAAA,UAAAwb,EAAAjF,KAAAgH,EAAA/G,QAAA+uB,YAEAhoB,EAAA/G,QAAA+uB,WAAA,CAAAvlC,EAAA8a,QAEA,CAKA,IAHAsB,EAAAmB,EAAA/G,QAAA+uB,WAAAv+B,OAAA,EAGAoV,GAAA,GAEAmB,EAAA/G,QAAA+uB,WAAAnpB,GAAAmxB,aAAAvtC,EAAA8a,GAAAyyB,YAEAhwB,EAAA/G,QAAA+uB,WAAAlI,OAAAjhB,EAAA,GAIAA,IAIAmB,EAAA/G,QAAA+uB,WAAArvB,KAAAlW,EAAA8a,IAQA+yB,IAEAtwB,EAAAstB,SACAttB,EAAA2tB,WAMA3H,EAAApkB,UAAA6qB,YAAA,WAEA,IAAAzsB,EAAAne,KAEAme,EAAA02B,gBAEA12B,EAAA42B,aAEA,IAAA52B,EAAA/G,QAAAouB,KACArnB,EAAAw2B,OAAAx2B,EAAAkyB,QAAAlyB,EAAAspB,eAEAtpB,EAAA22B,UAGA32B,EAAAwrB,QAAAnwB,QAAA,cAAA,CAAA2E,KAIAgmB,EAAApkB,UAAAqxB,SAAA,WAEA,IAAAjzB,EAAAne,KACAk1C,EAAA7xC,SAAA8N,KAAAxM,MAEAwZ,EAAAqrB,cAAA,IAAArrB,EAAA/G,QAAA2vB,SAAA,MAAA,OAEA,QAAA5oB,EAAAqrB,aACArrB,EAAAwrB,QAAA5qC,SAAA,kBAEAof,EAAAwrB,QAAAj7B,YAAA,uBAGA7H,IAAAquC,EAAAC,uBACAtuC,IAAAquC,EAAAE,oBACAvuC,IAAAquC,EAAAG,eACA,IAAAl3B,EAAA/G,QAAAwvB,SACAzoB,EAAAgrB,gBAAA,GAIAhrB,EAAA/G,QAAAouB,OACA,iBAAArnB,EAAA/G,QAAA8vB,OACA/oB,EAAA/G,QAAA8vB,OAAA,IACA/oB,EAAA/G,QAAA8vB,OAAA,GAGA/oB,EAAA/G,QAAA8vB,OAAA/oB,EAAAyX,SAAAsR,aAIArgC,IAAAquC,EAAAI,aACAn3B,EAAA4qB,SAAA,aACA5qB,EAAA0rB,cAAA,eACA1rB,EAAA2rB,eAAA,mBACAjjC,IAAAquC,EAAAK,0BAAA1uC,IAAAquC,EAAAM,oBAAAr3B,EAAA4qB,UAAA,SAEAliC,IAAAquC,EAAAO,eACAt3B,EAAA4qB,SAAA,eACA5qB,EAAA0rB,cAAA,iBACA1rB,EAAA2rB,eAAA,qBACAjjC,IAAAquC,EAAAK,0BAAA1uC,IAAAquC,EAAAQ,iBAAAv3B,EAAA4qB,UAAA,SAEAliC,IAAAquC,EAAAS,kBACAx3B,EAAA4qB,SAAA,kBACA5qB,EAAA0rB,cAAA,oBACA1rB,EAAA2rB,eAAA,wBACAjjC,IAAAquC,EAAAK,0BAAA1uC,IAAAquC,EAAAM,oBAAAr3B,EAAA4qB,UAAA,SAEAliC,IAAAquC,EAAAU,cACAz3B,EAAA4qB,SAAA,cACA5qB,EAAA0rB,cAAA,gBACA1rB,EAAA2rB,eAAA,oBACAjjC,IAAAquC,EAAAU,cAAAz3B,EAAA4qB,UAAA,SAEAliC,IAAAquC,EAAAW,YAAA,IAAA13B,EAAA4qB,WACA5qB,EAAA4qB,SAAA,YACA5qB,EAAA0rB,cAAA,YACA1rB,EAAA2rB,eAAA,cAEA3rB,EAAAyqB,kBAAAzqB,EAAA/G,QAAAyvB,cAAA,OAAA1oB,EAAA4qB,WAAA,IAAA5qB,EAAA4qB,UAIA5E,EAAApkB,UAAA0tB,gBAAA,SAAAhuC,GAEA,IACAuxC,EAAA8E,EAAAnH,EAAAoH,EADA53B,EAAAne,KAYA,GATA81C,EAAA33B,EAAAwrB,QACA3c,KAAA,gBACAte,YAAA,2CACAsM,KAAA,cAAA,QAEAmD,EAAAkqB,QACAsD,GAAAlsC,GACAV,SAAA,kBAEA,IAAAof,EAAA/G,QAAA0tB,WAAA,CAEA,IAAAkR,EAAA73B,EAAA/G,QAAAmvB,aAAA,GAAA,EAAA,EAAA,EAEAyK,EAAAnwC,KAAAwF,MAAA8X,EAAA/G,QAAAmvB,aAAA,IAEA,IAAApoB,EAAA/G,QAAAuuB,WAEAlmC,GAAAuxC,GAAAvxC,GAAA0e,EAAA+pB,WAAA,EAAA8I,EACA7yB,EAAAkqB,QACAtpB,MAAAtf,EAAAuxC,EAAAgF,EAAAv2C,EAAAuxC,EAAA,GACAjyC,SAAA,gBACAic,KAAA,cAAA,UAIA2zB,EAAAxwB,EAAA/G,QAAAmvB,aAAA9mC,EACAq2C,EACA/2B,MAAA4vB,EAAAqC,EAAA,EAAAgF,EAAArH,EAAAqC,EAAA,GACAjyC,SAAA,gBACAic,KAAA,cAAA,UAIA,IAAAvb,EAEAq2C,EACAnK,GAAAmK,EAAAluC,OAAA,EAAAuW,EAAA/G,QAAAmvB,cACAxnC,SAAA,gBAEAU,IAAA0e,EAAA+pB,WAAA,GAEA4N,EACAnK,GAAAxtB,EAAA/G,QAAAmvB,cACAxnC,SAAA,iBAMAof,EAAAkqB,QACAsD,GAAAlsC,GACAV,SAAA,qBAIAU,GAAA,GAAAA,GAAA0e,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aAEApoB,EAAAkqB,QACAtpB,MAAAtf,EAAAA,EAAA0e,EAAA/G,QAAAmvB,cACAxnC,SAAA,gBACAic,KAAA,cAAA,SAEA86B,EAAAluC,QAAAuW,EAAA/G,QAAAmvB,aAEAuP,EACA/2C,SAAA,gBACAic,KAAA,cAAA,UAIA+6B,EAAA53B,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aACAoI,GAAA,IAAAxwB,EAAA/G,QAAAuuB,SAAAxnB,EAAA/G,QAAAmvB,aAAA9mC,EAAAA,EAEA0e,EAAA/G,QAAAmvB,cAAApoB,EAAA/G,QAAAovB,gBAAAroB,EAAA+pB,WAAAzoC,EAAA0e,EAAA/G,QAAAmvB,aAEAuP,EACA/2B,MAAA4vB,GAAAxwB,EAAA/G,QAAAmvB,aAAAwP,GAAApH,EAAAoH,GACAh3C,SAAA,gBACAic,KAAA,cAAA,SAIA86B,EACA/2B,MAAA4vB,EAAAA,EAAAxwB,EAAA/G,QAAAmvB,cACAxnC,SAAA,gBACAic,KAAA,cAAA,UAQA,aAAAmD,EAAA/G,QAAAyuB,UAAA,gBAAA1nB,EAAA/G,QAAAyuB,UACA1nB,EAAA0nB,YAIA1B,EAAApkB,UAAAwtB,cAAA,WAEA,IACAt4B,EAAA06B,EAAAsG,EADA93B,EAAAne,KAOA,IAJA,IAAAme,EAAA/G,QAAAouB,OACArnB,EAAA/G,QAAA0tB,YAAA,IAGA,IAAA3mB,EAAA/G,QAAAuuB,WAAA,IAAAxnB,EAAA/G,QAAAouB,OAEAmK,EAAA,KAEAxxB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAAA,CAQA,IALA0P,GADA,IAAA93B,EAAA/G,QAAA0tB,WACA3mB,EAAA/G,QAAAmvB,aAAA,EAEApoB,EAAA/G,QAAAmvB,aAGAtxB,EAAAkJ,EAAA+pB,WAAAjzB,EAAAkJ,EAAA+pB,WACA+N,EAAAhhC,GAAA,EACA06B,EAAA16B,EAAA,EACAmH,EAAA+B,EAAAkqB,QAAAsH,IAAAuG,OAAA,GAAAl7B,KAAA,KAAA,IACAA,KAAA,mBAAA20B,EAAAxxB,EAAA+pB,YACA0D,UAAAztB,EAAAiqB,aAAArpC,SAAA,gBAEA,IAAAkW,EAAA,EAAAA,EAAAghC,EAAA93B,EAAA+pB,WAAAjzB,GAAA,EACA06B,EAAA16B,EACAmH,EAAA+B,EAAAkqB,QAAAsH,IAAAuG,OAAA,GAAAl7B,KAAA,KAAA,IACAA,KAAA,mBAAA20B,EAAAxxB,EAAA+pB,YACAwD,SAAAvtB,EAAAiqB,aAAArpC,SAAA,gBAEAof,EAAAiqB,YAAApb,KAAA,iBAAAA,KAAA,QAAA7e,MAAA,WACAiO,EAAApc,MAAAgb,KAAA,KAAA,SASAmpB,EAAApkB,UAAAqvB,UAAA,SAAArR,GAIAA,GAFA/9B,KAGAqqC,WAHArqC,KAKAqpC,YAAAtL,GAIAoG,EAAApkB,UAAA4qB,cAAA,SAAAtjC,GAEA,IAAA8W,EAAAne,KAEAm2C,EACA/5B,EAAA/U,EAAA+mB,QAAA3U,GAAA,gBACA2C,EAAA/U,EAAA+mB,QACAhS,EAAA/U,EAAA+mB,QAAAF,QAAA,gBAEAzuB,EAAA2V,SAAA+gC,EAAAn7B,KAAA,qBAEAvb,IAAAA,EAAA,GAEA0e,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,aAEApoB,EAAA0uB,aAAAptC,GAAA,GAAA,GAKA0e,EAAA0uB,aAAAptC,IAIA0kC,EAAApkB,UAAA8sB,aAAA,SAAAptC,EAAA22C,EAAA1H,GAEA,IAAA6B,EAAA8F,EAAAC,EAAAC,EAAApK,EACAqK,EAAAr4B,EAAAne,KAIA,GAFAo2C,EAAAA,IAAA,KAEA,IAAAj4B,EAAAipB,YAAA,IAAAjpB,EAAA/G,QAAA6vB,iBAIA,IAAA9oB,EAAA/G,QAAAouB,MAAArnB,EAAAspB,eAAAhoC,GAcA,IAVA,IAAA22C,GACAj4B,EAAAumB,SAAAjlC,GAGA8wC,EAAA9wC,EACA0sC,EAAAhuB,EAAAkyB,QAAAE,GACAgG,EAAAp4B,EAAAkyB,QAAAlyB,EAAAspB,cAEAtpB,EAAAqpB,YAAA,OAAArpB,EAAAqqB,UAAA+N,EAAAp4B,EAAAqqB,WAEA,IAAArqB,EAAA/G,QAAAuuB,WAAA,IAAAxnB,EAAA/G,QAAA0tB,aAAArlC,EAAA,GAAAA,EAAA0e,EAAAivB,cAAAjvB,EAAA/G,QAAAovB,iBACA,IAAAroB,EAAA/G,QAAAouB,OACA+K,EAAApyB,EAAAspB,cACA,IAAAiH,GAAAvwB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aACApoB,EAAA+tB,aAAAqK,GAAA,WACAp4B,EAAAy1B,UAAArD,MAGApyB,EAAAy1B,UAAArD,SAIA,IAAA,IAAApyB,EAAA/G,QAAAuuB,WAAA,IAAAxnB,EAAA/G,QAAA0tB,aAAArlC,EAAA,GAAAA,EAAA0e,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,iBACA,IAAAroB,EAAA/G,QAAAouB,OACA+K,EAAApyB,EAAAspB,cACA,IAAAiH,GAAAvwB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aACApoB,EAAA+tB,aAAAqK,GAAA,WACAp4B,EAAAy1B,UAAArD,MAGApyB,EAAAy1B,UAAArD,QARA,CAyDA,GA3CApyB,EAAA/G,QAAA4e,UACA7a,cAAAgD,EAAAmpB,eAKA+O,EAFA9F,EAAA,EACApyB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,gBAAA,EACAroB,EAAA+pB,WAAA/pB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,eAEAroB,EAAA+pB,WAAAqI,EAEAA,GAAApyB,EAAA+pB,WACA/pB,EAAA+pB,WAAA/pB,EAAA/G,QAAAovB,gBAAA,EACA,EAEA+J,EAAApyB,EAAA+pB,WAGAqI,EAGApyB,EAAAipB,WAAA,EAEAjpB,EAAAwrB,QAAAnwB,QAAA,eAAA,CAAA2E,EAAAA,EAAAspB,aAAA4O,IAEAC,EAAAn4B,EAAAspB,aACAtpB,EAAAspB,aAAA4O,EAEAl4B,EAAAsvB,gBAAAtvB,EAAAspB,cAEAtpB,EAAA/G,QAAAstB,WAGA8R,GADAA,EAAAr4B,EAAAuuB,gBACAE,MAAA,aAEA1E,YAAAsO,EAAAp/B,QAAAmvB,cACAiQ,EAAA/I,gBAAAtvB,EAAAspB,cAKAtpB,EAAAqvB,aACArvB,EAAAqzB,gBAEA,IAAArzB,EAAA/G,QAAAouB,KAaA,OAZA,IAAAkJ,GAEAvwB,EAAAyxB,aAAA0G,GAEAn4B,EAAAuxB,UAAA2G,GAAA,WACAl4B,EAAAy1B,UAAAyC,OAIAl4B,EAAAy1B,UAAAyC,QAEAl4B,EAAA4tB,iBAIA,IAAA2C,GAAAvwB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,aACApoB,EAAA+tB,aAAAC,GAAA,WACAhuB,EAAAy1B,UAAAyC,MAGAl4B,EAAAy1B,UAAAyC,KAKAlS,EAAApkB,UAAAsxB,UAAA,WAEA,IAAAlzB,EAAAne,MAEA,IAAAme,EAAA/G,QAAAqtB,QAAAtmB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eAEApoB,EAAA6pB,WAAA5pC,OACA+f,EAAA4pB,WAAA3pC,SAIA,IAAA+f,EAAA/G,QAAA+tB,MAAAhnB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,cAEApoB,EAAAwpB,MAAAvpC,OAIA+f,EAAAwrB,QAAA5qC,SAAA,kBAIAolC,EAAApkB,UAAA02B,eAAA,WAEA,IAAAC,EAAAC,EAAA/gC,EAAAghC,EAAAz4B,EAAAne,KAWA,OATA02C,EAAAv4B,EAAAwqB,YAAAkO,OAAA14B,EAAAwqB,YAAAmO,KACAH,EAAAx4B,EAAAwqB,YAAAoO,OAAA54B,EAAAwqB,YAAAqO,KACAphC,EAAA/U,KAAAo2C,MAAAN,EAAAD,IAEAE,EAAA/1C,KAAAuF,MAAA,IAAAwP,EAAA/U,KAAAq2C,KACA,IACAN,EAAA,IAAA/1C,KAAA8O,IAAAinC,IAGAA,GAAA,IAAAA,GAAA,GACA,IAAAz4B,EAAA/G,QAAA8M,IAAA,OAAA,QAEA0yB,GAAA,KAAAA,GAAA,KACA,IAAAz4B,EAAA/G,QAAA8M,IAAA,OAAA,QAEA0yB,GAAA,KAAAA,GAAA,KACA,IAAAz4B,EAAA/G,QAAA8M,IAAA,QAAA,QAEA,IAAA/F,EAAA/G,QAAA4vB,gBACA4P,GAAA,IAAAA,GAAA,IACA,OAEA,KAIA,YAIAzS,EAAApkB,UAAAo3B,SAAA,SAAA9vC,GAEA,IACA6gC,EACAR,EAFAvpB,EAAAne,KAOA,GAHAme,EAAAkpB,UAAA,EACAlpB,EAAAsqB,SAAA,EAEAtqB,EAAA8pB,UAEA,OADA9pB,EAAA8pB,WAAA,GACA,EAMA,GAHA9pB,EAAAkrB,aAAA,EACAlrB,EAAAurB,cAAAvrB,EAAAwqB,YAAAyO,YAAA,SAEAvwC,IAAAsX,EAAAwqB,YAAAmO,KACA,OAAA,EAOA,IAJA,IAAA34B,EAAAwqB,YAAA0O,SACAl5B,EAAAwrB,QAAAnwB,QAAA,OAAA,CAAA2E,EAAAA,EAAAs4B,mBAGAt4B,EAAAwqB,YAAAyO,aAAAj5B,EAAAwqB,YAAA2O,SAAA,CAIA,OAFA5P,EAAAvpB,EAAAs4B,kBAIA,IAAA,OACA,IAAA,OAEAvO,EACA/pB,EAAA/G,QAAAsvB,aACAvoB,EAAA4wB,eAAA5wB,EAAAspB,aAAAtpB,EAAA2yB,iBACA3yB,EAAAspB,aAAAtpB,EAAA2yB,gBAEA3yB,EAAAopB,iBAAA,EAEA,MAEA,IAAA,QACA,IAAA,KAEAW,EACA/pB,EAAA/G,QAAAsvB,aACAvoB,EAAA4wB,eAAA5wB,EAAAspB,aAAAtpB,EAAA2yB,iBACA3yB,EAAAspB,aAAAtpB,EAAA2yB,gBAEA3yB,EAAAopB,iBAAA,EASA,YAAAG,IAEAvpB,EAAA0uB,aAAA3E,GACA/pB,EAAAwqB,YAAA,GACAxqB,EAAAwrB,QAAAnwB,QAAA,QAAA,CAAA2E,EAAAupB,UAMAvpB,EAAAwqB,YAAAkO,SAAA14B,EAAAwqB,YAAAmO,OAEA34B,EAAA0uB,aAAA1uB,EAAAspB,cACAtpB,EAAAwqB,YAAA,KAQAxE,EAAApkB,UAAA8qB,aAAA,SAAAxjC,GAEA,IAAA8W,EAAAne,KAEA,MAAA,IAAAme,EAAA/G,QAAAqvB,OAAA,eAAApjC,WAAA,IAAA8a,EAAA/G,QAAAqvB,QAEA,IAAAtoB,EAAA/G,QAAAiuB,YAAA,IAAAh+B,EAAA8P,KAAA7I,QAAA,UAeA,OAXA6P,EAAAwqB,YAAA4O,YAAAlwC,EAAAK,oBAAAb,IAAAQ,EAAAK,cAAAC,QACAN,EAAAK,cAAAC,QAAAC,OAAA,EAEAuW,EAAAwqB,YAAA2O,SAAAn5B,EAAAypB,UAAAzpB,EAAA/G,QACAlV,gBAEA,IAAAic,EAAA/G,QAAA4vB,kBACA7oB,EAAAwqB,YAAA2O,SAAAn5B,EAAA0pB,WAAA1pB,EAAA/G,QACAlV,gBAGAmF,EAAA9H,KAAA+yC,QAEA,IAAA,QACAn0B,EAAAq5B,WAAAnwC,GACA,MAEA,IAAA,OACA8W,EAAAs5B,UAAApwC,GACA,MAEA,IAAA,MACA8W,EAAAg5B,SAAA9vC,KAOA88B,EAAApkB,UAAA03B,UAAA,SAAApwC,GAEA,IAEAqwC,EAAAjB,EAAAW,EAAAO,EAAAhwC,EAAAiwC,EAFAz5B,EAAAne,KAMA,OAFA2H,OAAAd,IAAAQ,EAAAK,cAAAL,EAAAK,cAAAC,QAAA,QAEAwW,EAAAkpB,UAAAlpB,EAAA8pB,WAAAtgC,GAAA,IAAAA,EAAAC,UAIA8vC,EAAAv5B,EAAAkyB,QAAAlyB,EAAAspB,cAEAtpB,EAAAwqB,YAAAmO,UAAAjwC,IAAAc,EAAAA,EAAA,GAAAL,MAAAD,EAAAG,QACA2W,EAAAwqB,YAAAqO,UAAAnwC,IAAAc,EAAAA,EAAA,GAAAJ,MAAAF,EAAAI,QAEA0W,EAAAwqB,YAAAyO,YAAAv2C,KAAAuF,MAAAvF,KAAA6O,KACA7O,KAAA2gC,IAAArjB,EAAAwqB,YAAAmO,KAAA34B,EAAAwqB,YAAAkO,OAAA,KAEAe,EAAA/2C,KAAAuF,MAAAvF,KAAA6O,KACA7O,KAAA2gC,IAAArjB,EAAAwqB,YAAAqO,KAAA74B,EAAAwqB,YAAAoO,OAAA,MAEA54B,EAAA/G,QAAA4vB,kBAAA7oB,EAAAsqB,SAAAmP,EAAA,GACAz5B,EAAA8pB,WAAA,GACA,KAGA,IAAA9pB,EAAA/G,QAAA4vB,kBACA7oB,EAAAwqB,YAAAyO,YAAAQ,GAGAnB,EAAAt4B,EAAAs4B,sBAEA5vC,IAAAQ,EAAAK,eAAAyW,EAAAwqB,YAAAyO,YAAA,IACAj5B,EAAAsqB,SAAA,EACAphC,EAAAwiB,kBAGA8tB,IAAA,IAAAx5B,EAAA/G,QAAA8M,IAAA,GAAA,IAAA/F,EAAAwqB,YAAAmO,KAAA34B,EAAAwqB,YAAAkO,OAAA,GAAA,IACA,IAAA14B,EAAA/G,QAAA4vB,kBACA2Q,EAAAx5B,EAAAwqB,YAAAqO,KAAA74B,EAAAwqB,YAAAoO,OAAA,GAAA,GAIAK,EAAAj5B,EAAAwqB,YAAAyO,YAEAj5B,EAAAwqB,YAAA0O,SAAA,GAEA,IAAAl5B,EAAA/G,QAAAuuB,WACA,IAAAxnB,EAAAspB,cAAA,UAAAgP,GAAAt4B,EAAAspB,cAAAtpB,EAAAivB,eAAA,SAAAqJ,KACAW,EAAAj5B,EAAAwqB,YAAAyO,YAAAj5B,EAAA/G,QAAAmuB,aACApnB,EAAAwqB,YAAA0O,SAAA,IAIA,IAAAl5B,EAAA/G,QAAA2vB,SACA5oB,EAAAqqB,UAAAkP,EAAAN,EAAAO,EAEAx5B,EAAAqqB,UAAAkP,EAAAN,GAAAj5B,EAAAuqB,MAAA3qC,SAAAogB,EAAAypB,WAAA+P,GAEA,IAAAx5B,EAAA/G,QAAA4vB,kBACA7oB,EAAAqqB,UAAAkP,EAAAN,EAAAO,IAGA,IAAAx5B,EAAA/G,QAAAouB,OAAA,IAAArnB,EAAA/G,QAAAuvB,aAIA,IAAAxoB,EAAAipB,WACAjpB,EAAAqqB,UAAA,MACA,QAGArqB,EAAAw2B,OAAAx2B,EAAAqqB,eAIArE,EAAApkB,UAAAy3B,WAAA,SAAAnwC,GAEA,IACAM,EADAwW,EAAAne,KAKA,GAFAme,EAAAkrB,aAAA,EAEA,IAAAlrB,EAAAwqB,YAAA4O,aAAAp5B,EAAA+pB,YAAA/pB,EAAA/G,QAAAmvB,aAEA,OADApoB,EAAAwqB,YAAA,IACA,OAGA9hC,IAAAQ,EAAAK,oBAAAb,IAAAQ,EAAAK,cAAAC,UACAA,EAAAN,EAAAK,cAAAC,QAAA,IAGAwW,EAAAwqB,YAAAkO,OAAA14B,EAAAwqB,YAAAmO,UAAAjwC,IAAAc,EAAAA,EAAAL,MAAAD,EAAAG,QACA2W,EAAAwqB,YAAAoO,OAAA54B,EAAAwqB,YAAAqO,UAAAnwC,IAAAc,EAAAA,EAAAJ,MAAAF,EAAAI,QAEA0W,EAAAkpB,UAAA,GAIAlD,EAAApkB,UAAA83B,eAAA1T,EAAApkB,UAAA+3B,cAAA,WAEA,IAAA35B,EAAAne,KAEA,OAAAme,EAAAyrB,eAEAzrB,EAAAstB,SAEAttB,EAAAiqB,YAAAnpC,SAAAe,KAAAoX,QAAAivB,OAAAwF,SAEA1tB,EAAAyrB,aAAA8B,SAAAvtB,EAAAiqB,aAEAjqB,EAAA2tB,WAMA3H,EAAApkB,UAAA0rB,OAAA,WAEA,IAAAttB,EAAAne,KAEAoc,EAAA,gBAAA+B,EAAAwrB,SAAA5b,SAEA5P,EAAAwpB,OACAxpB,EAAAwpB,MAAA5Z,SAGA5P,EAAA6pB,YAAA7pB,EAAA6sB,SAAA7mB,KAAAhG,EAAA/G,QAAAutB,YACAxmB,EAAA6pB,WAAAja,SAGA5P,EAAA4pB,YAAA5pB,EAAA6sB,SAAA7mB,KAAAhG,EAAA/G,QAAAwtB,YACAzmB,EAAA4pB,WAAAha,SAGA5P,EAAAkqB,QACA35B,YAAA,wDACAsM,KAAA,cAAA,QACA9b,IAAA,QAAA,KAIAilC,EAAApkB,UAAAyuB,QAAA,SAAAuJ,GAEA,IAAA55B,EAAAne,KACAme,EAAAwrB,QAAAnwB,QAAA,UAAA,CAAA2E,EAAA45B,IACA55B,EAAAle,WAIAkkC,EAAApkB,UAAAyxB,aAAA,WAEA,IAAArzB,EAAAne,KAGAa,KAAAwF,MAAA8X,EAAA/G,QAAAmvB,aAAA,IAEA,IAAApoB,EAAA/G,QAAAqtB,QACAtmB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eACApoB,EAAA/G,QAAAuuB,WAEAxnB,EAAA6pB,WAAAt5B,YAAA,kBAAAsM,KAAA,gBAAA,SACAmD,EAAA4pB,WAAAr5B,YAAA,kBAAAsM,KAAA,gBAAA,SAEA,IAAAmD,EAAAspB,cAEAtpB,EAAA6pB,WAAAjpC,SAAA,kBAAAic,KAAA,gBAAA,QACAmD,EAAA4pB,WAAAr5B,YAAA,kBAAAsM,KAAA,gBAAA,UAEAmD,EAAAspB,cAAAtpB,EAAA+pB,WAAA/pB,EAAA/G,QAAAmvB,eAAA,IAAApoB,EAAA/G,QAAA0tB,YAEA3mB,EAAA4pB,WAAAhpC,SAAA,kBAAAic,KAAA,gBAAA,QACAmD,EAAA6pB,WAAAt5B,YAAA,kBAAAsM,KAAA,gBAAA,UAEAmD,EAAAspB,cAAAtpB,EAAA+pB,WAAA,IAAA,IAAA/pB,EAAA/G,QAAA0tB,aAEA3mB,EAAA4pB,WAAAhpC,SAAA,kBAAAic,KAAA,gBAAA,QACAmD,EAAA6pB,WAAAt5B,YAAA,kBAAAsM,KAAA,gBAAA,YAQAmpB,EAAApkB,UAAAytB,WAAA,WAEA,IAAArvB,EAAAne,KAEA,OAAAme,EAAAwpB,QAEAxpB,EAAAwpB,MACA3a,KAAA,MACAte,YAAA,gBACA2nB,MAEAlY,EAAAwpB,MACA3a,KAAA,MACA2e,GAAA9qC,KAAAwF,MAAA8X,EAAAspB,aAAAtpB,EAAA/G,QAAAovB,iBACAznC,SAAA,kBAMAolC,EAAApkB,UAAAsvB,WAAA,WAEA,IAAAlxB,EAAAne,KAEAme,EAAA/G,QAAA4e,WAEA3yB,SAAA8a,EAAAmrB,QAEAnrB,EAAAkrB,aAAA,EAIAlrB,EAAAkrB,aAAA,IAQAjtB,EAAAvH,GAAA+3B,MAAA,WACA,IAIA33B,EACA+iC,EALA75B,EAAAne,KACA64B,EAAAjc,UAAA,GACAuiB,EAAA8Y,MAAAl4B,UAAAhB,MAAAjC,KAAAF,UAAA,GACAI,EAAAmB,EAAAvW,OAGA,IAAAqN,EAAA,EAAAA,EAAA+H,EAAA/H,IAKA,GAJA,iBAAA4jB,QAAA,IAAAA,EACA1a,EAAAlJ,GAAA23B,MAAA,IAAAzI,EAAAhmB,EAAAlJ,GAAA4jB,GAEAmf,EAAA75B,EAAAlJ,GAAA23B,MAAA/T,GAAA9b,MAAAoB,EAAAlJ,GAAA23B,MAAAzN,QACA,IAAA6Y,EAAA,OAAAA,EAEA,OAAA75B,WV97FA,IAAA+5B,cACAA,cAAArgC,cAAA,SAEA1a,OAAAkG,UAAAoZ,OAAA,WAAAy7B,cAAArgC,cAAA,YCqyEA,IAAAqgC,cAAA,IAAAh8C,YAgCA,SAAAi8C,kBAEA,IAEA58C,EAAAC,EACA48C,EAAAC,EAHA72C,EAAAxB,KAAAs4C,EAAAn7C,OAAAqE,GAEA7F,EAAA,IAAAC,iBAEAK,EAAA,IAAAC,YAIA8D,KAAAmX,KAAA,CACAohC,eAAA,MACAC,iBAAA,QACAC,oBAAA,WACAC,eAAA,OAGA14C,KAAA9B,OAAA,CACAy6C,aAAA,iBACAC,eAAA,gBACAC,iBAAA,mBAEAC,WAAA,kBACAC,gBAAA,0BACAC,eAAA,sBACAC,mBAAA,sBAGA,IAAA58C,EAAA,CACA68C,YAAA,GACAC,aAAA,GACAC,kBAAA,EACAC,gBAAA,SAEAC,qBAAA,EACAC,mBAAA,EACAC,mBAAA,UACAC,wBAAA,EACAC,wBAAA,UACAC,4BAAA,EACAC,4BAAA,UAEAC,2BAAA,EAEAC,4BAAA,EACAC,oBAAA,UACAC,sBAAA,GACAC,uBAAA,EAEAC,4BAAA,EACAC,yBAAA,KAEAC,0BAAA,IACAC,wBAAA,cAEAC,mBAAA,EACAC,kBAAA,OAEAC,uBAAA,EACAC,oBAAA,GAGA39C,EAAA,CACA49C,cAAA,EACAC,oBAAA,EACAC,cAAA,EACAC,uBAAA,KACAC,gBAAA,EACAC,iBAAA,EACAC,eAAA,EACAC,oBAAA,EACAC,iBAAA,EACAC,eAAA,EACAC,cAAA,gBAIAC,EAGA,oBA4BA,SAAAC,EAAAC,EAAAC,GAEA,IAAAC,EAAArD,EAAAmD,GAEAG,EAAA,GACA,GAAA5+C,EAAA89C,eACAc,EAAA,uBAEA,IAGAC,EAAA,+BAAAD,EAAA,MAFA,mBADAD,EAAAh8C,MAAA,GACA,MAEA,UAEA,GAAA,GAAApD,EAAAm+C,sBAAA,CACA,IAAAoB,EAAAH,EAAAzrB,KACA,IAAAyrB,EAAAzrB,OACA4rB,EAAA,sBAEA,IAAAC,EAAA,GACA,GAAAx/C,EAAAo+C,oBAAAgB,EAAAzrB,OACA6rB,EAAA,oBAEAF,EAAA,YAAAC,EAAA,IAAAC,EAAA,2BAAAH,EAAA,SAGA,IAAAI,EAAA3+C,OAAAw+C,GAEA72C,EAAA22C,EAAAM,cAEA,GAAA,GAAAj/C,EAAA89C,aAAA,CAEA,GAAA,GAAAv+C,EAAAi+C,mBAAAx1C,EAAA,CAEA,IAAAk3C,EAAA,uBACA,UAAA3/C,EAAAk+C,oBACAyB,EAAA,0BAEAF,EAAA98C,OAAA,+BAAAg9C,EAAA,YACAF,EAAA98C,OAAA,2DAGA,GAAA8F,EAAA,CAIA,GAHAA,EAAA/F,SAAA,kBAGA,GAAA1C,EAAA69C,2BAAA,CACA,IAAA+B,EAAAn3C,EAAAoxC,QAAAxK,SAAAoQ,GAEAG,EAAAl9C,SAAA,0BAAAy8C,GAAA9sC,YAAA,kBACAutC,EAAAn+C,OAAA,EAAA,GACA29C,EAAAQ,gBAAAA,EAGAH,EAAA98C,OAAA8F,IAuBA,OAlBAhI,EAAAg+C,gBACAgB,EAAA98C,OAAA,+CAEAlC,EAAAi+C,iBACAe,EAAA98C,OAAA,wCAEAq5C,EAAAr5C,OAAA88C,GAGAh/C,EAAA89C,cAEA99C,EAAA+9C,uBAAAiB,EAAAL,GAKArD,EAAAmD,GAAAO,gBAAAA,EAEA,EAoDA,SAAAI,EAAAl7C,EAAAjD,EAAAo+C,EAAAC,GAEA,IAAA7wC,EAAA,CACAvK,MAAAA,EAAA,KACAjD,OAAAA,EAAA,MAGAs+C,EAAA,CACAr7C,MAAAA,EAAAlE,EAAAo+C,iBAAA,KACAn9C,OAAAA,EAAAjB,EAAAo+C,iBAAA,MAGAoB,EAAA,iFAGAH,IACA,IAAAC,GACAD,EAAAj9C,IAAAqM,GAEA4wC,EAAAnvB,KAAAsvB,GAAAp9C,IAAAm9C,KAGAhE,EAAAp5C,SAAA,qBAAAC,IAAAqM,GACA8sC,EAAArrB,KAAAsvB,GAAAp9C,IAAAm9C,IASA,SAAAE,EAAAJ,EAAAK,EAAAC,EAAAC,GAEA,IAAAA,EACAA,GAAA,EAEA/gD,EAAAghD,qBACAD,GAAA,GAEA,IAAAE,EAAAT,EAAAl9C,SAAA,4BASAsM,EAAA,GAEAA,EAAA,gBAAAixC,EAAA,KAEA,GAAAA,IACAjxC,EAAA,gBAAAkxC,GAEAC,IAAA,IAAAA,GACAE,EAAA19C,IAAAqM,GAEA,GAAAixC,EACAI,EAAAx+C,OAEAw+C,EAAAh9C,SAIA,GAAA48C,EACAI,EAAAC,OAAAC,QAAAzgD,EAAA+9C,2BAEAwC,EAAAh9C,OAAAi9C,OAAAE,OAAA1gD,EAAA+9C,2BAgLA,SAAA+B,EAAAa,GAEAb,EAAAU,MAAA,GAAA5Q,QAAA+Q,EAAA,CACA1Q,SAAAjwC,EAAA+9C,0BACA9U,OAAAjpC,EAAAg+C,wBACA4C,OAAA,IAnLAC,CAAAN,EAAArxC,IASA,SAAA4xC,EAAAhB,EAAAiB,EAAAV,GAEA,IAAAW,EAAAlB,EAAAl9C,SAAA,qBAEAq+C,EAAAjhD,EAAA+9C,0BACAsC,IAAA,IAAAA,IACAY,EAAA,GAEAF,EACAC,EAAAR,MAAA,GAAA/+C,OAAAw/C,EAAAxgD,EAAAm+C,qBAEAoC,EAAAR,MAAA,GAAA/+C,OAAAw/C,EAAA,GASA,SAAAC,EAAApB,EAAAiB,EAAAV,GAEA,IAAA53C,EAAAq3C,EAAAl9C,SAAA,sBACAg9C,EAAAE,EAAAl9C,SAAA,8BAEAq+C,EAAAjhD,EAAA+9C,0BACAsC,IAAA,IAAAA,IACAY,EAAA,GAEAF,EACAnB,EAAAY,MAAA,GAAA/+C,OAAAw/C,EAAA,IAGAx4C,EAAAhH,OAAA,EAAA,GACAm+C,EAAAY,MAAA,GAAA/+C,OAAAw/C,EAAA,IA+DA,SAAAE,EAAArB,EAAAO,IAEA5/C,EAAAg+C,gBACAyB,EAAAJ,EAAA9/C,EAAAs9C,4BAAAt9C,EAAAu9C,4BAAA8C,GAEA5/C,EAAAi+C,kBAEAoC,EAAAhB,EADA,GAAA9/C,EAAA49C,sBACAyC,GAIA5/C,EAAAk+C,eACAuC,EAAApB,GAAA,EAAAO,GAGApE,EAAA9+B,QAAAhY,EAAAtD,OAAA26C,iBAAAsD,GAmEA,SAAAsB,EAAAtB,GAEA,GAAAuB,EAAAvB,GACAqB,EAAArB,GAAA,GAEA36C,EAAAm8C,oBAAAxB,GAAA,EAAA,UAYA,SAAAyB,EAAAzB,EAAAr3C,EAAA22C,GAGA,GAAA,GAAAp/C,EAAA+8C,iBACAn9C,EAAAmQ,sBAAAtH,EAAAq3C,OAEA,CAIA,UAAA9/C,EAAAg9C,gBACAp9C,EAAA2Q,mBAAA9H,EAAAzI,EAAA88C,cAEAl9C,EAAA4Q,kBAAA/H,EAAAzI,EAAA68C,aAEA,IAAA2E,EAAA5hD,EAAA6D,eAAAgF,GACA7I,EAAA+B,aAAA8G,EAAA,EAAA,GACAo3C,EAAA2B,EAAA78C,MAAA68C,EAAA9/C,OAAAo+C,GAKAA,EAAAl9C,SAAA,oBAAAb,OAGA0G,EAAAlF,OAGA,GAAAvD,EAAA69C,2BACAp1C,EAAAhH,OAAA,EAAA,IAKA,GAAAzB,EAAA69C,4BAoBA,SAAAp1C,GAEA,IAAAg5C,EAAAh5C,EAAAosB,SAAA,2BACA,GAAA,GAAA4sB,EAAAl2C,OACA,OAAA,EAEA,IAAAnB,EAAAxK,EAAA6D,eAAAgF,GAEAyG,EAAA,CACAvK,MAAAyF,EAAAzF,MAAA,KACAjD,OAAA0I,EAAA1I,OAAA,KACA+I,KAAAL,EAAAK,KAAA,KACAC,IAAAN,EAAAM,IAAA,MAGA+2C,EAAA5+C,IAAAqM,GAGA,GAAAzO,EAAA89C,cACAkD,EAAAhgD,OAAA,EAAA,GAtCAigD,CAAAj5C,GAIAA,EAAAhH,OAAA,EAAA,GAGA2/C,EAAAtB,IAGA7D,EAAA9+B,QAAAhY,EAAAtD,OAAA66C,gBAAAoD,GAoEA,SAAAuB,EAAA5B,GAEA,QAAAA,EAAAntC,SAAA,qBAYA,SAAAqvC,EAAAC,EAAA9B,GAEAA,EAAAh/C,OAAAg/C,GACA36C,EAAA08C,eAAA/B,GAAA,IAEA11C,EAAAxK,EAAA6D,eAAAq8C,GAEAD,EAAAz1C,EAAAzF,MAAAyF,EAAA1I,OAAAo+C,GAAA,GAEAsB,EAAAtB,GAsCA,SAAAgC,EAAAtjC,EAAAujC,GAEA,IAAAA,EACAA,GAAA,EAEA,IAAAt5C,EAAA3H,OAAA0d,GACAshC,EAAAr3C,EAAAopB,QAAA,qBAEA,OAAA,GAAAiuB,EAAAj3C,SAAA0C,SAGA6zC,QAAAj6C,EAAA08C,eAAA/B,IAEA,GAAAV,QAAA4C,WAAA,IAAAD,KAGA58C,EAAA88C,wBAAAnC,EAAAr3C,QAEA,GAAAhI,EAAA89C,aAEAtC,EAAA9+B,QAAAhY,EAAAtD,OAAA46C,WAAA,CAAAqD,EAAAr3C,IAIA84C,EAAAzB,EAAAr3C,EAAA22C,YAUA,SAAA8C,EAAAh/C,EAAA48C,EAAAr3C,GAEA22C,QAAAj6C,EAAA08C,eAAA/B,GAEAV,QAAA4C,UAAA,EACA5C,QAAA+C,oBAAA,EAEA,IAAA/3C,EAAAxK,EAAAmJ,qBAAAN,GAEA22C,QAAAgD,WAAAh4C,EAAAzF,MACAy6C,QAAAiD,YAAAj4C,EAAA1I,OACA09C,QAAAkD,kBAAAl4C,EAAAzF,MAAAyF,EAAA1I,OACA09C,QAAAmD,mBAAAn4C,EAAA1I,OAAA0I,EAAAzF,MAEAm7C,EAAAp9C,SAAA,sBAxoBAiB,KAAArC,KAAA,SAAAV,EAAAC,GACA3B,EAAA0B,EAAAS,aACA/B,EAAAsB,EACAE,OAAAF,GACAzB,EAAAD,EAAAC,aACA48C,EAAA78C,EAAA68C,WAEA/7C,EAAAc,OAAAC,OAAAf,EAAAa,GAGAJ,EAAAg+C,eAAAz+C,EAAAi9C,oBACAx8C,EAAAi+C,gBAAA1+C,EAAAy9C,2BACAh9C,EAAAk+C,cAAA3+C,EAAA69C,4BAIAl6C,KAAA6+C,wCAAA,aAyFA7+C,KAAA8+C,cAAA,SAAA75C,EAAA85C,GAKA,GAHA1G,EAAApzC,EAGA,GAAAnI,EAAAk+C,cACA,IAAAQ,EAiZA,WAEA,IAAAA,EAAA,GACAwD,EAAA3iD,EAAA89C,yBAAAplC,MAAA,KAEA,IAAA,IAAAtV,KAAAu/C,EAAA,CAGA,OAFAA,EAAAv/C,IAGA,IAAA,KACA+7C,GAAA,gBACA,MACA,IAAA,OACAA,GAAA,kBACA,MACA,IAAA,QACAA,GAAA,oBAKA,OAAA,EAtaAyD,GAGA,IAAA,IAAAF,EAIA,IAHA,IAAA5uC,EAAAxU,EAAAujD,cAGAjqC,EAAA,EAAAA,EAAA9E,EAAA8E,IACAqmC,EAAArmC,EAAAumC,OAGA,CAEAh6C,EAAA29C,YAEAzwC,YAAA5R,EAAAs+C,eAEA,IAAAgE,EAAAzjD,EAAA0jD,0BAEAliD,OAAAgR,KAAAixC,GAAA,SAAAnqC,EAAAsmC,GAEAD,EAAAC,EAAAC,GACAz8C,SAAAjC,EAAAs+C,oBA4IAp7C,KAAA29C,oBAAA,SAAAxB,EAAAO,EAAA4C,IAEA,GAAAxiD,EAAA89C,cACAuB,EAAAztC,YAAA,iBAGA5R,EAAAg+C,gBACAyB,EAAAJ,EAAA9/C,EAAAk9C,mBAAAl9C,EAAAm9C,mBAAAkD,GAEA5/C,EAAAi+C,kBAEAoC,EAAAhB,EADA,GAAA9/C,EAAA49C,sBACAyC,GAGA5/C,EAAAk+C,eACAuC,EAAApB,GAAA,EAAAO,GAGApE,EAAA9+B,QAAAhY,EAAAtD,OAAA06C,eAAAuD,IAOAn8C,KAAAu/C,kBAAA,SAAApD,IAEA,GAAAr/C,EAAA89C,cACAuB,EAAAp9C,SAAA,iBAIAjC,EAAAg+C,gBACAyB,EAAAJ,EAAA9/C,EAAAo9C,wBAAAp9C,EAAAq9C,yBAGA58C,EAAAi+C,kBAEAoC,EAAAhB,EADA,GAAA9/C,EAAA49C,uBAKA,GAAAn9C,EAAAk+C,eACAuC,EAAApB,GAAA,GAIA7D,EAAA9+B,QAAAhY,EAAAtD,OAAAy6C,aAAAwD,IAgVAn8C,KAAAw/C,kBAAA,SAAAC,GAEA,IAAAA,EACAA,EAAAj+C,EAAA29C,YAGA,GAAA,GAAAriD,EAAA89C,aAAA,CAIA,GAAAv+C,EAAA+8C,kBACA8C,EAAA7/C,EAAA68C,YAAA78C,EAAA88C,aAAAsG,GAvSA,SAAAA,GAEA,GAAApjD,EAAAw9C,4BAAA,EACA,OAAA,EAGA,IAAAtuC,EAAA,CACAm0C,gBAAArjD,EAAAw9C,2BAAA,MAGA4F,GACAA,EAAAvgD,IAAAqM,GACAk0C,EAAAzyB,KAAA,4BAAA9tB,IAAAqM,IAEA8sC,EAAArrB,KAAA,iEAAA9tB,IAAAqM,GA2RAo0C,CAAAF,GAWA,GAPAA,EAAAtxC,MAAA,WAEAsvC,EADAtgD,OAAA6C,UAMAlD,EAAAi+C,iBAEA1+C,EAAA09C,oBAAA,CAEA,IAAAxuC,EAAA,GACA,GAAAtP,EAAA2F,kBAAA,CACA,IAAAg+C,EAAA3jD,EAAAuZ,gBAAAnZ,EAAA09C,oBAAA19C,EAAA29C,uBACAzuC,EAAA,oBAAAq0C,OAEAr0C,EAAA,oBAAAlP,EAAA09C,oBACAj9C,EAAAm+C,oBAAA5+C,EAAA29C,sBAGAyF,EAAAzyB,KAAA,qBAAA9tB,IAAAqM,KAWAvL,KAAA6/C,iBAAA,SAAA/D,GAKA,GAHA,GAAAh/C,EAAA89C,cACAkB,EAAAptC,YAAA,iBAEA,GAAAgvC,EAAA5B,GACA,OAAA,EAEAA,EAAA/8C,SAAA,qBAGAy+C,EAAA1B,IAMA97C,KAAA8/C,mBAAA,SAAAhE,GAGAA,EAAAptC,YAAA,qBAEAlN,EAAAm8C,oBAAA7B,GAAA,EAAA,mBAOA97C,KAAAxC,WAAA,SAAAwQ,GAEA3R,EAAAc,OAAAC,OAAAf,EAAA2R,IAQAhO,KAAA+/C,oBAAA,SAAAC,GAEAljD,EAAAo+C,iBAAA8E,GAQAhgD,KAAAigD,gBAAA,SAAAC,EAAAC,EAAAjjD,GAIA,GAFAJ,EAAA89C,cAAA,EAEA,mBAAAsF,EACA,MAAA,IAAA33C,MAAA,mCAGAzL,EAAA+9C,uBAAAqF,GAGA,GAAA/iD,OAAA+a,QAAA,UAAAioC,KACArjD,EAAAi+C,iBAAA,IAEA,GAAA59C,OAAA+a,QAAA,SAAAioC,KACArjD,EAAAg+C,gBAAA,GAEAh+C,EAAAk+C,eAAA,EAGA99C,IAAA,IAAAA,EAAAkjD,iBACAtjD,EAAAq+C,eAAA,IAUAn7C,KAAAqgD,wCAAA,aAKArgD,KAAAsgD,WAAA,WAEA,OAAA,GAOAtgD,KAAAugD,aAAA,WAEA,OADAnI,EAAAxwC,QAQA5H,KAAAwgD,cAAA,SAAArE,GAGA,OADAA,EAAAnvB,KAAA,oBAQAhtB,KAAAygD,gBAAA,SAAAhhD,GACA,IAAAggD,EAAAj+C,EAAA29C,YAEA,GAAA1/C,GAAAggD,EAAA73C,QAAAnI,EAAA,EACA,MAAA,IAAA8I,MAAA,qBAIA,OAFApL,OAAAsiD,EAAAhgD,KASAO,KAAAm/C,UAAA,SAAAuB,GAKA,OAAAA,GACA,QACA,KAAAl/C,EAAA2V,KAAAohC,eACA,IAAAkH,EAAApH,EAAAp5C,SANA,qBAOA,MACA,KAAAuC,EAAA2V,KAAAshC,oBACAgH,EAAApH,EAAAp5C,SATA,qBASA0tC,IARA,uBASA,MACA,KAAAnrC,EAAA2V,KAAAqhC,iBACAiH,EAAApH,EAAAp5C,SAAA0hD,wCACA,MACA,KAAAn/C,EAAA2V,KAAAuhC,eACA+G,EAAApH,EAAAp5C,SAAA,IAAAnC,EAAAs+C,eAIA,OAAA,GAOAp7C,KAAAk+C,eAAA,SAAA/B,GAEA,IAAA18C,EAAA08C,EAAA58C,KAAA,SAMA,YAJAsH,IAAApH,IACAA,EAAA08C,EAAA18C,SAEA24C,EAAA34C,IAQAO,KAAA4gD,cAAA,SAAAzE,GAIA,OAFA36C,EAAA08C,eAAA/B,GAEA,UAOAn8C,KAAA6gD,mBAAA,WAOA,MALA,CACA7/C,MAAA3E,EAAA68C,YACAn7C,OAAA1B,EAAA88C,eAOAn5C,KAAA8gD,uCAAA,aAMA9gD,KAAApB,WAAA,WAKA,GAAA9B,EAAAq+C,eACA3/C,EAAA6C,GAAAg9C,EAAA2C,GAGA1F,EAAAj6C,GAAAmD,EAAAtD,OAAA+6C,mBAAAsF,GAGAlG,EAAAh6C,GAAA,aAVA,qBAUA,WACAvB,EAAA49C,cAAA,EACArC,EAAAn4C,IAAA,cAAAA,IAAA,iBAGAm4C,EAAAh6C,GAAA,aAfA,qBAeA,SAAAgJ,IA/VA,SAAA80C,GAIA,GAAA,GAAAr/C,EAAA49C,aAEA,OADA+E,UAAAv/C,IAAA,cAAAA,IAAA,eACA,EAGA,GAAAw9C,EAAAvB,IACA36C,EAAA+9C,kBAAApD,GAuVA4E,CADA5jD,OAAA6C,UAIAq4C,EAAAh6C,GAAA,aApBA,qBAoBA,SAAAgJ,IAlVA,SAAA80C,GAEA,GAAA,GAAAr/C,EAAA49C,aACA,OAAA,EAEA,GAAAgD,EAAAvB,IACA36C,EAAAm8C,oBAAAxB,GAAA,GA8UA6E,CADA7jD,OAAA6C,WAWAA,KAAAC,QAAA,WAIAo4C,EAAAn4C,IAAA,aAFA,qBAGA1E,EAAA0E,IAAAm7C,GACAhD,EAAAn4C,IAAA,aAJA,qBAKAm4C,EAAAn4C,IAAA,aALA,qBAMAo4C,EAAAp4C,IAAAsB,EAAAtD,OAAA+6C,qBAOAj5C,KAAAihD,iBAAA,WAEA,IAAA1mC,EAAA89B,EAAArrB,KAAA,mBACA/wB,EAAAqe,kBAAAC,EAAA,MAAA,SAAAzV,EAAAgW,GAEA,GAAAA,EACAqjC,EAAAr5C,GAAA,GAhmBA,SAAAq3C,GAEA,IAAAV,EAAAj6C,EAAA08C,eAAA/B,GAKA,GAHAV,EAAA4C,UAAA,EACA5C,EAAA+C,oBAAA,EAEA,GAAA1hD,EAAA89C,aAGA,OADAtC,EAAA9+B,QAAAhY,EAAAtD,OAAA86C,eAAAmD,IACA,EAIAA,EAAAl9C,SAAA,oBAAAb,OACA+9C,EAAAl9C,SAAA,mBAAAW,OAqlBAshD,CADA/jD,OAAA2H,GAAAI,cAUAlF,KAAAs+C,wBAAA,SAAAnC,EAAAr3C,GAEAwzC,EAAA9+B,QAAAhY,EAAAtD,OAAA+6C,mBAAA,CAAAkD,EAAAr3C,KAQA9E,KAAAmhD,WAAA,WAEA9I,EAAArrB,KAAA,qBAAA5uB,QAUA,SAAAgjD,gBAEA,IACA9lD,EAAAC,EAAAC,EACA48C,EAAAiJ,EAAAC,EACAC,EAAAC,EAHAhgD,EAAAxB,KACArE,EAAA,IAAAC,iBAEAK,EAAA,IAAAC,YACAulD,GAAA,EAAAC,EAAA,IAAAvJ,gBAGA97C,GAFAJ,EAAA,IAAAC,YAEA,CACAylD,qBAAA,EACAC,mBAAA,OACAC,2BAAA,EACAC,8BAAA,GACAC,+BAAA,IACAC,6BAAA,eACAC,oBAAA,EACAC,qBAAA,EACAC,kBAAA,EACAC,qBAAA,EACAC,mBAAA,EACAC,oBAAA,IAGAxlD,EAAA,CACAylD,WAAA,EACAC,WAAA,EACAC,kBAAA,EACAtgD,OAAA,MAGAugD,EAAA,CACAC,UAAA,EACAC,gBAAA,EACAC,eAAA,EACAC,UAAA,EACAC,gBAAA,GAGA/iD,KAAA9B,OAAA,CACA8kD,WAAA,YACAC,kBAAA,eAIA,IAAAC,EAAA,CACAtB,mBAAA,MACAvI,gBAAA,SAmEA,SAAA8J,IAEA,IAAAC,EAAA1B,EAAApB,aAEAxjD,EAAA2lD,kBAAA,IAAAW,EAAAhK,iBACAqI,EAAAplD,EAAAslD,oBAOA,SAAA0B,IA4DA,IAGAC,EACAC,EACAC,EACAC,EACAC,EAjEAhC,EAAAlC,oBA6DA8D,EAAAhC,EAAAriD,SAAA,qBACAskD,EAAApmD,OAAAmmD,EAAA,IACAE,EAAAD,EAAAl6C,aACAo6C,EAAAF,EAAAn6C,cACAs6C,EAAAhC,EAAApB,aAEA,GAAAmB,GAEAiB,EAAAI,UAAAU,EAEA,GAAAE,EAAAtK,iBACAsJ,EAAAK,gBAAAU,EAEAf,EAAAK,gBAAAW,EAAAvK,aAGAwK,EAAAtC,EAAArgD,SACA0hD,EAAAG,eAAAvB,EAAAtgD,UAGA0hD,EAAAI,UAAAW,EAEA,GAAAC,EAAAtK,iBACAsJ,EAAAK,gBAAAS,EAEAd,EAAAK,gBAAAW,EAAAxK,YAGAyK,EAAAtC,EAAAtjD,UAEA2kD,EAAAG,eAAAvB,EAAAvjD,UA4EA,WAEA,GAAA,GAAA0jD,EAAA,CAEA,IAAA1jD,EAAA2kD,EAAAK,iBAEAa,EAAA,IACA,OAAA7lD,EAAA,MAGAs+C,EAAA,IACA,OAAAt+C,EAAA,SAEA,CAEA,IAEA6lD,EAIAvH,EANAr7C,EAAA0hD,EAAAK,iBAEAa,EAAA,IACA,MAAA5iD,EAAA,MAGAq7C,EAAA,IACA,MAAAr7C,EAAA,KAIAqgD,EAAAniD,IAAA0kD,GACAtC,EAAApiD,IAAAm9C,GA9LAwH,GAEAC,IAGA,GAAAhnD,EAAAylD,YAGA,GAAAlmD,EAAA6lD,sBACAV,EAAA,IAAAuC,sBACApmD,KAAA6D,GAIA,GAAAnF,EAAA4lD,qBACAV,EAAA,IAAAyC,eACArmD,KAAA6D,GAGAyiD,IAEAvC,EAAAT,mBA2XAS,EAAA9iD,aAEAyiD,EAAAr0B,KAAA,qBAEA3uB,GAAA,kBAAA,SAAAgJ,IArDA,SAAA80C,GAGA,GAAA36C,EAAA0iD,uBAGA,GADA1C,EAAA2C,sBAEA,OAAA,EAIA,IAAA1I,EAAAiG,EAAAxD,eAAA/B,GAEAxgD,EAAAyoD,WAAA3I,GA2CA4I,CADAlnD,OAAA6C,UAKA1E,EAAA+C,GAAA1C,EAAAuC,OAAAomD,YAAAC,GAIAznD,EAAA2lD,kBAEAtlD,OAAAukD,GAAArjD,GAAAqjD,EAAAxjD,OAAA66C,gBAAAyL,IAtYA1nD,EAAAylD,WAAA,EASA,SAAAoB,EAAAc,GAEA/B,EAAAC,UAAA8B,EAGA/B,EAAAE,gBADA,GAAAnB,EACAiB,EAAAC,UAAAtmD,EAAAgmD,mBAAAhmD,EAAAimD,oBAEAI,EAAAC,UAAAtmD,EAAA8lD,kBAAA9lD,EAAA+lD,qBAEAM,EAAAE,gBAAA,IACAF,EAAAE,gBAAA,GAuEA,SAAAkB,IAEA,IApBAY,EAoBApB,EAAAhC,EAAAriD,SAAA,qBAEAwN,EAAA,EACAD,EAAA,EAKA,IAHA,GAAAi1C,IACAj1C,EAAAnQ,EAAA8lD,mBAEAltC,EAAA,EAAAA,EAAAquC,EAAA17C,OAAAqN,IAAA,CAEA,IAAAknC,EAAAh/C,OAAAmmD,EAAAruC,IAGA,GAAA,GAAAnY,EAAA2lD,iBAAA,CAEA,GADAhH,QAAAiG,EAAAxD,eAAA/B,GACA,GAAAV,QAAA4C,SACA,SAGAlC,EAAAv8C,OAGA3D,EAAA+B,aAAAm+C,EAAA1vC,EAAAD,GAEA,GAAAi1C,EACAh1C,GAAA0vC,EAAA9yC,aAAAhN,EAAAwlD,2BAEAr1C,GAAA2vC,EAAA/yC,cAAA/M,EAAAwlD,2BAIA,GAAA,GAAAJ,EACA,IAAAkD,EAAAl4C,EAAApQ,EAAAwlD,gCAEA8C,EAAAn4C,EAAAnQ,EAAAwlD,2BAtDA6C,EAwDAC,EAtDA,GAAAlD,EACAH,EAAAtgD,MAAA0jD,GAEApD,EAAAvjD,OAAA2mD,GAEAhC,EAAAG,eAAA6B,EAEAT,IAEA9mD,OAAAqE,GAAAgY,QAAAhY,EAAAtD,OAAA+kD,mBAyFA,SAAA2B,EAAAC,GAEA,IACAC,EADAtjD,EAAAujD,mBACAF,EAEAC,EAAAtjD,EAAAwjD,oBAAAF,GAEAtjD,EAAAyjD,mBAAAH,GAAA,GAOA,SAAAI,EAAA/I,GAEA,IAEAlqC,GAAA,EAFAkzC,EAAAhJ,GAEA3qB,IACAvf,EAAAzQ,EAAAwjD,oBAAA/yC,GAEAzQ,EAAAyjD,mBAAAhzC,GAAA,GAOA,SAAAmzC,EAAAjJ,GAEA,IAEAlqC,GAAA,EAFAkzC,EAAAhJ,GAEA1Z,IAAAigB,EAAAC,UACA1wC,EAAAzQ,EAAAwjD,oBAAA/yC,GAEAzQ,EAAAyjD,mBAAAhzC,GAAA,GAOA,SAAAozC,EAAAlJ,GAEA,GAAA,GAAAmJ,IACA,OAAA,EAEA,IA8NApkD,EACAqkD,EA/NAC,GA8NAtkD,EAAA,GACAqkD,EAAA/jD,EAAAujD,mBAGA7jD,EAAAukD,cAAA,EAAAF,EAAA,EACArkD,EAAAwkD,cAAA,EAAAH,EAAA7C,EAAAC,UAAA,EAEA,GAnOAgD,EAAAR,EAAAhJ,GAEA,GAAAwJ,EAAAn0B,IAAAg0B,EAAAC,aAAA,CAEA,IAAAG,EAAAzJ,EAAAtI,OACA+R,EAAAh+C,OACAs9C,EAAAU,GAEAV,EAAA/I,QAEA,GAAAwJ,EAAAljB,IAAA+iB,EAAAE,aAAA,CAEA,IAAAG,EAAA1J,EAAA7I,OACAuS,EAAAj+C,OACAw9C,EAAAS,GAEAT,EAAAjJ,IA0CA,SAAA8H,IAIA,GAFAqB,KAIA/D,GACAA,EAAAuE,SAEAtE,GACAA,EAAAsE,WAIAvE,GACAA,EAAAwE,UAEAvE,GACAA,EAAAuE,WA+CA,SAAAvB,IAEA7rC,aAAA7b,EAAAqF,QAEArF,EAAAqF,OAAAyW,YAAA,WAEAkrC,MAEA,IAQA,SAAAS,IAEA,IAAA9I,EAAA9/C,EAAAqqD,kBACAtE,EAAA7B,iBAAApE,EAAAK,iBACAuJ,EAAA5J,EAAAK,iBA8DA,SAAAwJ,IAEA,OAAA5C,EAAAG,eAAAH,EAAAE,gBA2BA,SAAAuC,EAAAhJ,GAEA,IAAA7uC,EAAA,GAEA24C,EAAA9J,EAAAhzC,WAWA,OATA,GAAAs4C,GACAn0C,EAAAkkB,IAAAy0B,EAAAn/C,KACAwG,EAAAm1B,IAAAwjB,EAAAn/C,KAAA47C,EAAAI,YAEAx1C,EAAAkkB,IAAAy0B,EAAAl/C,IACAuG,EAAAm1B,IAAAwjB,EAAAl/C,IAAA27C,EAAAI,WAIA,EA/jBA9iD,KAAAX,QAAA,SAAA4F,GAEA,IAAAA,EAAA,CACAA,EAAAzJ,EACA,MAAAa,EAAA6pD,mBACAjhD,EAAA5I,EAAA6pD,kBAGAjhD,EAAAjG,OAAA,gFACAqiD,EAAAp8C,EAAAhG,SAAA,oBAEAqiD,EAAAD,EAAApiD,SAAA,0BAGAyiD,EAAA5C,cAAAwC,GAGA,GAAAxkD,EAAA2lD,kBACAf,EAAAP,cAueAnhD,KAAAC,QAAA,WAEA,IAAAw/C,EAAA4B,EAAAr0B,KAAA,qBAEAyyB,EAAAv/C,IAAA,SACAu/C,EAAAv/C,IAAA,YACA5E,EAAA4E,IAAAvE,EAAAuC,OAAAomD,aAEAnnD,OAAAukD,GAAAxhD,IAAAwhD,EAAAxjD,OAAA66C,iBAEAyI,GACAA,EAAAvhD,UAEAshD,GACAA,EAAAthD,UAEAyhD,EAAAzhD,WA4DAD,KAAAmmD,oCAAA,aAKAnmD,KAAArC,KAAA,SAAAV,EAAAC,IA7iBA,SAAAD,EAAAC,GAEA3B,EAAA0B,EAAAS,cACA/B,EAAAsB,GAEAmpD,kBAAA,QAAA5kD,GAEAlG,EAAA6B,OAAAF,GACAzB,EAAAD,EAAAC,aACA48C,EAAA78C,EAAA68C,WAEA/7C,EAAAc,OAAAC,OAAAf,EAAAa,GAIA,IAHAukD,EAAAplD,EAAAslD,uBAIAtlD,EAAAc,OAAAC,OAAAf,EAAA6mD,GACA7mD,EAAAc,OAAAC,OAAAf,EAAAa,GAEAA,EAAAm8C,gBAAA,SAGAqI,EAAA/jD,KAAAV,EAAAC,GAEAimD,IAuhBAkD,CAAAppD,EAAAC,IAOA8C,KAAAnB,IAAA,WACAwkD,KASArjD,KAAAilD,mBAAA,SAAAt7C,EAAA28C,GAEA,QAAAz/C,IAAAy/C,EACAA,GAAA,EAEA,GAAA,GAAA7E,EACA,IAAA8E,EAAA,CAAAz/C,KAAA6C,EAAA,WAEA48C,EAAA,CAAAx/C,IAAA4C,EAAA,MAEA,GAAA28C,GAEAhF,EAAApiD,IAAAqnD,GACA/kD,EAAAglD,0BAIAhlD,EAAAglD,wBAEAlF,EAAAzE,MAAA,GAAA5Q,QAAAsa,EAAA,CACAja,SAAAjwC,EAAA0lD,+BACAzc,OAAAjpC,EAAA2lD,6BACA/E,OAAA,EACAwJ,SAAA,WAAAjlD,EAAAglD,yBACAE,OAAA,WAAAllD,EAAAglD,6BAUAxmD,KAAAwmD,sBAAA,WAGArpD,OAAAqE,GAAAgY,QAAAhY,EAAAtD,OAAA8kD,aASAhjD,KAAAkkD,oBAAA,WACA,QAAA1C,GAGAA,EAAAmF,iBASA3mD,KAAA4mD,mBAAA,SAAAnL,GAEA,IAAAU,EAAAV,EAAAK,gBACA+K,EAAA1K,EAAAhzC,WAEA29C,GAAA,EAAAtlD,EAAAujD,mBAEA,GAAA,GAAAtD,EACA,IAAAsF,EAAAD,EAAApE,EAAAC,UACAqE,EAAAH,EAAA//C,KACAmgD,EAAAJ,EAAA//C,KAAAq1C,EAAAn7C,aAEA+lD,EAAAD,EAAApE,EAAAC,UACAqE,EAAAH,EAAA9/C,IACAkgD,EAAAJ,EAAA9/C,IAAAo1C,EAAAp+C,SAGA,IAAAmpD,GAAA,EAIA,OAHAD,GAAAH,GAAAE,GAAAD,IACAG,GAAA,GAEA,GAMAlnD,KAAA+kD,iBAAA,WAEA,OAAA,GAAAtD,EACAH,EAAAn4C,WAAArC,KAEAw6C,EAAAn4C,WAAApC,KAOA/G,KAAAmnD,oBAAA,WAEA,IAAAzmD,EAAA,GAWA,OARAA,EAAA0mD,OADA,GAAA3F,EACAplD,EAAAgmD,mBAEAhmD,EAAA8lD,kBAIAzhD,EAAA2mD,SAAA3E,EAAAG,eAAAH,EAAAE,iBAEA,GAOA5iD,KAAAglD,oBAAA,SAAAsC,GAEA,IAEAC,EAAA/lD,EAAA2lD,sBAQA,OANAG,EAAAC,EAAAH,SACAE,EAAAC,EAAAH,QAEAE,EAAAC,EAAAF,SACAC,EAAAC,EAAAF,QAEA,GAQArnD,KAAAwnD,eAAA,WACA5C,GAAAlC,EAAAC,YAOA3iD,KAAAynD,WAAA,WAEA7C,EAAAlC,EAAAC,YAIA3iD,KAAA0nD,oCAAA,aAMA1nD,KAAAxC,WAAA,SAAAwQ,GAEA3R,EAAAc,OAAAC,OAAAf,EAAA2R,GAEA0zC,EAAAlkD,WAAAwQ,GAEAm1C,KAQAnjD,KAAA2nD,gBAAA,SAAA5pD,GAEA,GAAA,GAAA0jD,EACA,MAAA,IAAAl5C,MAAA,yDAIA,IAAAvH,EAAA0hD,EAAAK,gBAEAa,EAAA,GACAA,EAAA,MAAA5iD,EAAA,KACA4iD,EAAA,OAAA7lD,EAAA,KAEAsjD,EAAAniD,IAAA0kD,GAEAD,EAAA5lD,GAGA,IAAAs+C,EAAA,GACAA,EAAA,MAAAr7C,EAAA,KACAq7C,EAAA,KAAA,MACAA,EAAA,IAAA,MAEAiF,EAAApiD,IAAAm9C,GAEAv/C,EAAA0lD,WAAA,EAEAyB,KAQAjkD,KAAA4nD,kBAAA,SAAA5mD,GAEA,GAAA,GAAAygD,EACA,MAAA,IAAAl5C,MAAA,6DAIA,IAAAxK,EAAA2kD,EAAAK,gBAAA1mD,EAAA8lD,kBAAA9lD,EAAA+lD,qBAEAwB,EAAA,GACAA,EAAA,MAAA5iD,EAAA,KACA4iD,EAAA,OAAA7lD,EAAA,KAEAsjD,EAAAniD,IAAA0kD,GAEAD,EAAA3iD,GAEA,IAAA6mD,EAAAxrD,EAAAgmD,mBAGAhG,EAAA,GACAA,EAAA,OAAAt+C,EAAA,KACAs+C,EAAA,KAAAwL,EAAA,KACAxL,EAAA,IAAA,MAEAiF,EAAApiD,IAAAm9C,GAEAv/C,EAAA0lD,WAAA,EAEAyB,KAOAjkD,KAAA4qC,YAAA,SAAA9jC,EAAAC,EAAAqE,EAAAC,GACApP,EAAA+B,aAAAqjD,EAAAv6C,EAAAC,EAAAqE,EAAAC,IAOArL,KAAAwvC,OAAA,SAAAsY,GAEA,GAAArG,GAEAJ,EAAArgD,MAAA8mD,GACApF,EAAAE,gBAAAkF,EAAAzrD,EAAAgmD,mBAAAhmD,EAAAimD,sBAGAjB,EAAAtjD,OAAA+pD,GACApF,EAAAE,gBAAAkF,EAAAzrD,EAAA8lD,kBAAA9lD,EAAA+lD,sBAGAuB,EAAAmE,GAEA7D,IAtfA,WACA,GAAA,GAAAqB,IACA,OAAA,EAEA,IAAA37C,EAAAnI,EAAAujD,mBAEAgD,EAAAvmD,EAAAwjD,oBAAAr7C,GAEAA,GAAAo+C,GACAvmD,EAAAyjD,mBAAA8C,GAAA,GA+eAC,GA7cA,WAEA,GAAA1C,IACA,OAAA,EAEA,GAAA7D,EACAxlD,EAAA+B,aAAAsjD,EAAAjlD,EAAAulD,mBAAA,GAEA3lD,EAAA+B,aAAAsjD,EAAA,EAAAjlD,EAAAulD,oBAucAqG,GA3gBA,WAEA,IAAAC,EAAAvsD,EAAAqqD,kBACA,GAAA,MAAAkC,EACA,OAAA,EAEA,IAAA/L,EAAA+L,EAAApM,gBACAK,GACAkJ,EAAAlJ,GAqgBAgM,IAOAnoD,KAAA8/C,mBAAA,SAAAhE,GAEA4F,EAAA5B,mBAAAhE,IAQA97C,KAAAigD,gBAAA,SAAAC,GAEAwB,EAAAzB,gBAAAC,IAOAlgD,KAAAooD,oCAAA,aAKApoD,KAAAtC,WAAA,WAEA,IAAA0lD,EAAA1B,EAAApB,aACA+H,EAAAlrD,OAAAC,OAAAf,EAAA+mD,GAgBA,MAdA,CACAznD,UAAAA,EACAL,aAAAA,EACAE,aAAAA,EACA48C,WAAAA,EACAiJ,WAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,qBAAAA,EACAvuC,WAAAwuC,EACAplD,UAAAgsD,EACA3G,SAAAA,IAUA1hD,KAAAsoD,aAAA,WAEA,OAAA,GAOAtoD,KAAAuoD,iBAAA,WAEA,IAAA97B,EAAA9wB,EAAA6sD,uBACA,OAAA,GAAA/7B,EACA,KAEAi1B,EAAAjB,gBAAAh0B,IAOAzsB,KAAAyoD,mBAAA,WAIA,OAFAxsD,EAAA6D,eAAAuhD,IAQArhD,KAAA0oD,UAAA,WAIA,OAFArH,EAAAj4C,eASApJ,KAAA2oD,SAAA,WAIA,OAFAtH,EAAAh4C,cAUArJ,KAAA4oD,SAAA,WAEA,OAAA,GAOA5oD,KAAAiT,WAAA,WACA,OAAA,GAOAjT,KAAA6oD,SAAA,WAEA,OAAA/rD,EAAA,WAMAkD,KAAA8oD,cAAA,WAEA,OADAxD,KAWA,SAAAvB,uBAEA,IAAAgF,EAAAxtD,EACA8lD,EAAAC,EAAAjlD,EAAAolD,EACAxlD,EAAA,IAAAC,YAGAm/C,EAAA,CACA2N,mBAAA,IACAC,uBAAA,EACAC,aAAA,GACAC,QAAA,GACAC,oBAAA,GACAC,mBAAA,IACAC,gBAAA,eACAC,sBAAA,gBAIAzsD,EAAA,CACA0sD,cAAA,EACAC,aAAA,EACAn3C,SAAA,EACAizC,SAAA,EACAmE,SAAA,EACAj3C,UAAA,EACAC,SAAA,EACAi3C,kBAAA,EACAC,QAAA,EACAC,eAAA,EACAC,cAAA,EACAC,aAAA,EACA9wB,MAAA,EACA92B,OAAA,GACAu4C,cAAA,EACAsP,kBAAA,GA2CA,SAAAC,IAEA,IAAA1xC,EAAApb,OAAAqV,MAEAtR,EAAA,GAMA,OALAA,EAAAgpD,WAAAptD,EAAA4V,SAAA5V,EAAA2V,UACAvR,EAAAipD,eAAA5xC,EAAAzb,EAAA6sD,kBACAzoD,EAAAkpD,eAAAttD,EAAA8sD,QAAA9sD,EAAA4sD,SACAxoD,EAAAsS,kBAAA3S,KAAA8O,IAAAzO,EAAAkpD,gBAEA,EAqDA,SAAAC,EAAAhjD,GAEA,OAAA,GAAAo6C,EACAxlD,EAAAmL,iBAAAC,GAAA,MAEApL,EAAAmL,iBAAAC,GAAA,MAqDA,SAAAijD,IAGA,IAAA/xC,EAAApb,OAAAqV,MACA+F,EAAAzb,EAAA4V,UAEA2oC,EAAA2N,qBACAlsD,EAAAgtD,cAAAvxC,EAAAzb,EAAA4V,SACA5V,EAAAgtD,cAAAzO,EAAA2N,qBACAlsD,EAAAgtD,cAAAzO,EAAA2N,oBAEAlsD,EAAAitD,aAAAjtD,EAAA8sD,QAAA9sD,EAAA+sD,eAEA/sD,EAAA+sD,eAAA/sD,EAAA8sD,QACA9sD,EAAA4V,SAAA6F,GA6HA,SAAAgyC,IACAztD,EAAA8sD,QAAAb,EAAAhE,mBACAgE,EAAAvC,wBAmBA,SAAAgE,EAAAnjD,GAEA,GAAA,GAAAvK,EAAA2sD,YACA,OAAA,EAEA,GAAApiD,EAAA,CACAgjD,EAAAhjD,IA9IA,WAEA,IAAAojD,EAAApP,EAAA4N,uBAGAC,EAAA7N,EAAA6N,aAGAC,EAAA9N,EAAA8N,QAEAuB,EAAA3B,EAAAhE,mBAGA4F,EADAxtD,OAAAqV,MACA1V,EAAA4V,SACAk4C,EAAAF,EAAA5tD,EAAA+sD,eAGAc,EAAAzB,GAAApsD,EAAAgtD,cAAA,IACAa,EAAA7tD,EAAAgtD,cACAc,EAAA9tD,EAAAitD,aAAAa,GAIAD,EAAAzB,IACAyB,EAAAzB,GAEA,IAEAjwB,EAAA,EACA0xB,EAAA,IACA1xB,EAAA2xB,EAAAD,GAEA,IAAAE,EAAA5xB,EAAAA,GAAA,EAAAwxB,IANAG,EAAA,EAAA,GAAA,GASA/pD,KAAA8O,IAAAk7C,IAAA1B,IACA0B,EAAA,GAGA,IAAAC,EAAA/B,EAAAhE,mBACAgG,EAAAD,EAAAD,EAEAG,EAAAjC,EAAA/D,oBAAA+F,GACAxD,EAAAwB,EAAA5B,sBAGAiC,EAAA/N,EAAA+N,oBACA6B,GAAA,EACAC,EAAAF,EAUA,GAPAD,EAAAxD,EAAAH,SACA6D,GAAA,EACAD,EAAA5B,EACA2B,EAAA3B,IACA4B,EAAAD,IAGAA,EAAAxD,EAAAF,OAAA,CACA4D,GAAA,EACA,IAAAE,EAAA5D,EAAAF,OAAA+B,EACA4B,EAAAG,EACAJ,EAAAI,IACAH,EAAAD,GAGA,IAAAK,EAAAJ,EAAAF,EAGAO,EAAAxqD,KAAA8O,IAAA9O,KAAAuF,MAAA6yB,EAAAwxB,IAQA,GALA,GAAAI,IACAQ,EAAAA,EAAAD,EAAAP,GAIAC,GAAAE,EAAA,CAEA,IAAAM,EAAA,CAAAxkD,KAAAkkD,EAAA,MACA,GAAAvJ,IACA6J,EAAA,CAAAvkD,IAAAikD,EAAA,OAEA1J,EAAArV,QAAAqf,EAAA,CACAhf,SAAA+e,EACA/lB,OAAA+V,EAAAiO,gBACArM,OAAA,EACAwJ,SAAA8D,IAOA,GAAA,GAAAU,EAAA,CACA,IAAA5B,EAAAhO,EAAAgO,mBAEAkC,EAAA,CAAAzkD,KAAAokD,EAAA,MACA,GAAAzJ,IACA8J,EAAA,CAAAxkD,IAAAmkD,EAAA,OAGA5J,EAAArV,QAAAsf,EAAA,CACAjf,SAAA+c,EACA/jB,OAAA+V,EAAAkO,sBACAtM,OAAA,EACAwJ,SAAA8D,KAqCAiB,GAGA1uD,EAAA2sD,aAAA,EACA3sD,EAAAqF,OAAAgZ,cAAAre,EAAAqF,QAOA,SAAAspD,EAAApkD,GAEA,OAAA,GAAAvK,EAAAktD,mBAGAltD,EAAA6sD,kBAAAxsD,OAAAqV,MAEA,GAAA1V,EAAA0sD,cACAgB,EAAAnjD,IACA,IAGAA,EAAAwiB,iBAEA/sB,EAAA0sD,cAAA,EAEAgB,EAAAnjD,QAEAg6C,EAAA3yC,YAAA,iBASA,SAAAg9C,EAAArkD,GAEA,GAAA,GAAAvK,EAAAktD,iBACA,OAAA,EAEA3iD,EAAAwiB,iBAEA/sB,EAAA0sD,cAAA,EAEA,IAAAmC,EAAAtB,EAAAhjD,GAGAi6C,EAAAzE,MAAA,GAhPA,SAAA8O,GACA,IAAAjB,EAAA3B,EAAAhE,mBAGAjoD,EAAAwV,SAAAq5C,EACA7uD,EAAAyoD,SAAAmF,EACA5tD,EAAA+sD,eAAAa,EACA5tD,EAAAgtD,cAAA,EACAhtD,EAAAitD,aAAA,EAGAjtD,EAAA2V,UAAAtV,OAAAqV,MACA1V,EAAA4sD,SAAA5sD,EAAAyoD,SAEAzoD,EAAA4V,SAAA5V,EAAA2V,UACA3V,EAAA8sD,QAAA9sD,EAAA4sD,SACA5sD,EAAAm8B,MAAA,EAmOA2yB,CAAAD,GAzEA,WAEA,GAAA,GAAA7uD,EAAA2sD,YACA,OAAA,EAEA3sD,EAAA2sD,aAAA,EACA3sD,EAAAqF,OAAA+Y,YAAAovC,EAAA,IAoEAuB,GAEAxK,EAAAtiD,SAAA,eAOA,SAAA+sD,EAAAzkD,GAEA,GAAA,GAAAvK,EAAAktD,iBACA,OAAA,EAEA,GAAA,GAAAltD,EAAA0sD,aACA,OAAA,EAKA,GAHAniD,EAAAwiB,iBAGA,GAAAxiB,EAAA0kD,QAIA,OAHAjvD,EAAA0sD,cAAA,EAEAgB,EAAAnjD,IACA,EAIA,IAAAskD,EAAAtB,EAAAhjD,GACAvK,EAAA8sD,QAAAb,EAAAhE,mBAzSA,SAAAzyC,GACA,IAAArF,EAAAnQ,EAAAwV,SAAAA,EACAg1C,EAAAxqD,EAAAyoD,SAAAt4C,EAGAs6C,EAAAwB,EAAA5B,sBAEA,GAAAG,EAAAC,EAAAH,OAAA,CACA,IAAAyD,EAAAvD,EAAAC,EAAAH,OACAE,EAAAC,EAAAH,OAAAyD,EAAA,EAGA,GAAAvD,EAAAC,EAAAF,OAAA,CACAwD,EAAAtD,EAAAF,OAAAC,EACAA,EAAAC,EAAAF,OAAAwD,EAAA,EAGA9B,EAAA9D,mBAAAqC,GA0RA0E,CAAAL,GAEArB,IA3ZAtqD,KAAA8lD,OAAA,WACAhpD,EAAAktD,kBAAA,GAOAhqD,KAAA+lD,QAAA,WACAjpD,EAAAktD,kBAAA,GAMAhqD,KAAArC,KAAA,SAAAsuD,GAEAlD,EAAAkD,EACA1wD,EAAA0wD,EAAAvuD,aAEAnC,EAAAI,UACAJ,EAAAD,aAEA+lD,EAAA9lD,EAAA8lD,WACAC,EAAA/lD,EAAA+lD,gBACAjlD,EAAAd,EAAAc,UACAolD,EAAAlmD,EAAA0X,WAgEAooC,EAAA4N,uBAAAhtD,EAAA4S,iBAAA,KAAA,IAAA,EAAA,IAAAxS,EAAAylD,+BAAA,GA4UAT,EAAAtgC,KAAA,uBAAA2qC,GAIAvuD,OAAA2W,QAAAinB,IAAA,QAAAha,KAAA,mBAAA0qC,GAGAtuD,OAAA,QAAA4jB,KAAA,sBAAA+qC,IAzXA9rD,KAAAmkD,oBAAA,WACA,IAAA+H,EAAAjC,IACA,OAAAiC,EAAAhC,WAAA,KAGAgC,EAAA14C,kBAAA,IAUAxT,KAAA2mD,cAAA,WAEA,OAAA,GAAA7pD,EAAA0sD,eAIA,GAAAlI,EAAA7nC,GAAA,cAIAwwC,IACAE,eAAA,KAuWAnqD,KAAAC,QAAA,WACAohD,EAAAz9C,OAAA,aACAy9C,EAAAz9C,OAAA,cACAzG,OAAA2W,QAAAinB,IAAA,QAAAn3B,OAAA,WAAAA,OAAA,YACAzG,OAAA,QAAAyG,OAAA,aAAAA,OAAA,cAOA,SAAAuoD,eAEA,IAAArvD,EAAAsvD,EAAAC,EAAAhwD,EAAAi8C,EAEAgU,EAAAhxD,EADAK,EAAA,IAAAC,iBACA4F,EAAAxB,KACA/D,EAAA,IAAAC,YAmGA,SAAAqwD,EAAAC,EAAAC,GAEA,OAAA3vD,EAAA4vD,aACA,IAAA,QACA,IAAA,OACA,IAAAnhD,EAAA,CACAzE,KAAA0lD,EAAA,MAEA,MACA,IAAA,MACA,IAAA,SACAjhD,EAAA,CACAxE,IAAAylD,EAAA,MAKAH,EAAAxP,MAAA,GAAA5Q,QAAA1gC,EAAA,CACA+gC,SAAA,IACAhH,OAAA,gBACA2X,OAAA,EACAr0C,SAAA,WACA6jD,GACAA,OAYA,SAAAE,EAAAH,GAEA,OAAA1vD,EAAA4vD,aACA,IAAA,QACA,IAAA,OACAzwD,EAAA+B,aAAAquD,EAAAG,EAAA,MACA,MACA,IAAA,MACA,IAAA,SACAvwD,EAAA+B,aAAAquD,EAAA,KAAAG,IAQA,SAAAI,IAEAtU,EAAA9+B,QAAA4yC,EAAAluD,OAAA2uD,aAnJA7sD,KAAArC,KAAA,SAAAV,EAAA6vD,EAAAC,EAAA31C,EAAA41C,GACAlwD,EAAAgwD,EACAV,EAAAW,EACApxD,EAAAsB,EACAZ,EAAA+a,EACAkhC,EAAA0U,EAEA1xD,EAAA6B,OAAAxB,IAMAqE,KAAAX,QAAA,SAAA4tD,GAIA,GAFAZ,EAAAY,EAEA,SAAAnwD,EAAAowD,UACA,IAAAC,EAAA9wD,EAAA+wD,8BAEAD,EAAA9wD,EAAAgxD,wBAWA,GARA,GAAAF,KACAb,EAAA,IAAAgB,eACA3vD,KAAAyuD,EAAAC,EAAAhwD,EAAAS,EAAAowD,UAAAvxD,GACA2wD,EAAAjtD,YAKA,IAAAvC,EAAAywD,kBAAA,CAEAlB,EAAArtD,OADA,2CAGA4Z,YAAA,WACAyzC,EAAAptD,SAAA,wBAAAb,SACAtB,EAAA0wD,0BAUAxtD,KAAAytD,cAAA,WAGAnB,GACAA,EAAAoB,eAOA1tD,KAAApB,WAAA,WAGA0tD,IACAA,EAAA1tD,aAGAtD,EAAA+C,GAAA1C,EAAAuC,OAAAyvD,qBAAA,WACArB,EAAAsB,gBAGAtyD,EAAA+C,GAAA1C,EAAAuC,OAAA2vD,mBAAA,WACAvB,EAAAwB,kBAUA9tD,KAAAC,QAAA,WAEAqsD,IACAA,EAAArsD,UACA3E,EAAA4E,IAAAvE,EAAAuC,OAAAyvD,qBACAryD,EAAA4E,IAAAvE,EAAAuC,OAAA2vD,qBAsEA7tD,KAAA+tD,UAAA,SAAArR,GAEA,IAAAA,EACAA,GAAA,EAEA,OAAA2P,EAAA5yC,GAAA,eAGA,GAAA3c,EAAAkxD,WAGAlxD,EAAAkxD,UAAA,EAEA1V,EAAA9+B,QAAA4yC,EAAAluD,OAAA+vD,kBAEA,IAAAvR,EACA6P,EAAAzvD,EAAAoxD,YAAAtB,IAGAD,EAAA7vD,EAAAoxD,aACAtB,SASA5sD,KAAAmuD,WAAA,SAAAzR,GAEA,IAAAA,EACAA,GAAA,EAEA,GAAA2P,EAAA5yC,GAAA,aACA,OAAA,EAEA,GAAA,GAAA3c,EAAAkxD,SACA,OAAA,EAEA,IAAAxB,EAAAhrD,EAAA4sD,qBAEAtxD,EAAAkxD,UAAA,EAEA1V,EAAA9+B,QAAA4yC,EAAAluD,OAAAmwD,cAEA,IAAA3R,EACA6P,EAAAC,EAAAI,IAEAD,EAAAH,GACAI,MASA5sD,KAAAsuD,eAAA,SAAAJ,GAEApxD,EAAAoxD,YAAAA,EACA5V,EAAA9+B,QAAA4yC,EAAAluD,OAAAmwD,aAEAvxD,EAAAkxD,UAAA,GAMAhuD,KAAAuuD,eAAA,SAAAL,GACA5V,EAAA9+B,QAAA4yC,EAAAluD,OAAA+vD,YAEAnxD,EAAAkxD,UAAA,GAMAhuD,KAAAouD,mBAAA,WAEA,IAAA5B,EAAAgC,EAAAvyD,EAAA6D,eAAAusD,GAEA,OAAAvvD,EAAA4vD,aACA,IAAA,OACA5vD,EAAAoxD,YAAAM,EAAA1nD,KACA0lD,GAAA1vD,EAAA2xD,WACA,MACA,IAAA,QACA3xD,EAAAoxD,YAAAM,EAAA1nD,KAEA0lD,EADA7wD,EAAA+yD,UACA1tD,MACA,MACA,IAAA,MACAlE,EAAAoxD,YAAAM,EAAAznD,IACAylD,GAAA1vD,EAAA6xD,YACA,MACA,IAAA,SACA7xD,EAAAoxD,YAAAM,EAAAznD,IAEAylD,EADA7wD,EAAA+yD,UACA3wD,OAIA,OAAA,GAOAiC,KAAA4uD,cAAA,WAEA,OAAA9xD,EAAA,UAQAkD,KAAA6uD,mBAAA,SAAAjwB,GAEA,GAAAA,GAAA,EACA,OAAA,EAEA9hC,EAAAywD,mBAAA,EACAzwD,EAAA0wD,uBAAA5uB,GAUA,SAAA0uB,gBAEA,IAAAjB,EAAAD,EAAA0C,EACA7yD,EAAA,IAAAC,YAEAG,EAAA,CACA0yD,mBAAA,MACAC,oBAAA,EACAC,kBAAA,GAsEA,SAAAC,IAEAJ,EAAApgD,YAAA,mBAqBA,SAAAygD,EAAA9nD,GAKA,GAHAA,EAAAsQ,kBACAtQ,EAAAuQ,2BAEA,GAAA3b,EAAA4c,6BAAAxR,EAAA8P,MACA,OAAA,EAEAi1C,EAAAwC,gBACAxC,EAAA2B,YAEA3B,EAAA+B,aAjGAnuD,KAAArC,KAAA,SAAAyxD,EAAAC,EAAAC,EAAApC,EAAAjwD,GAKA,OAJAmvD,EAAAgD,EACA/C,EAAAgD,EAGAnC,GACA,IAAA,OACA7wD,EAAA0yD,mBAAAO,EAAAC,uBACAlzD,EAAA2yD,oBAAAM,EAAAE,wBACAnzD,EAAA4yD,kBAAAK,EAAAG,sBACA,MACA,IAAA,QACApzD,EAAA0yD,mBAAAO,EAAAI,wBACArzD,EAAA2yD,oBAAAM,EAAAK,yBACAtzD,EAAA4yD,kBAAAK,EAAAM,uBACA,MACA,QACA,MAAA,IAAArnD,MAAA,yCAAA2kD,GAKA,IACA2C,EADA5yD,EAAAqjD,aACAwP,aACA,IAAAzzD,EAAA4yD,oBACA5yD,EAAA4yD,kBAAAY,IASA7vD,KAAAX,QAAA,WAEA,IAEA0wD,EAAA,sBAEA,OAJA3D,EAAA4D,kBAKA,IAAA,QACAD,GAAA,sBACA,MACA,IAAA,OACAA,GAAA,uBACA,MACA,IAAA,SACAA,GAAA,qBACA,MACA,IAAA,MACAA,GAAA,wBAIA1D,EAAArtD,OAAA,eAAA+wD,EAAA,YAAA1zD,EAAA4yD,kBAAA,YACAH,EAAAzC,EAAAptD,SAAA,yBA+CAe,KAAApB,WAAA,WACA3C,EAAA+c,gBAAA81C,GACAA,EAAA/tC,KAAA,mBAAAouC,GAGAhyD,OAAAivD,GAAA/tD,GAAA+tD,EAAAluD,OAAA+vD,YAAA,WACAiB,IA7BAJ,EAAApgD,YAAA,uBAkCAvR,OAAAivD,GAAA/tD,GAAA+tD,EAAAluD,OAAAmwD,aAAA,WACAa,IA1CAJ,EAAA/vD,SAAA,wBAmDAiB,KAAAC,QAAA,WACAhE,EAAAid,cAAA41C,GACA3xD,OAAAivD,GAAAlsD,IAAAksD,EAAAluD,OAAA+vD,YACA9wD,OAAAivD,GAAAlsD,IAAAksD,EAAAluD,OAAAmwD,cAiCAruD,KAAA0tD,YAAA,WACA,IAAAuC,EAAAh0D,EAAA6D,eAAAgvD,IA1BA,WAGA,OAFA1C,EAAA4D,kBAGA,IAAA,QACA,IAAA,OACA,OAAA3zD,EAAA0yD,oBAAA,UAAA1yD,EAAA0yD,qBACA1yD,EAAA0yD,mBAAA,OACA,MACA,IAAA,SACA,QAAA1yD,EAAA0yD,oBAAA,SAAA1yD,EAAA0yD,qBACA1yD,EAAA0yD,mBAAA,QACA,MACA,IAAA,MACA,QAAA1yD,EAAA0yD,oBAAA,SAAA1yD,EAAA0yD,qBACA1yD,EAAA0yD,mBAAA,UAaAmB,GAEA,IAAAxD,EAAAN,EAAA4D,iBAEA,OAAAtD,GACA,IAAA,OACAzwD,EAAA+B,aAAA8wD,EAAA,QAAAzyD,EAAA0yD,oBAAAkB,EAAAjvD,OACA,MACA,IAAA,QACA/E,EAAA+B,aAAA8wD,GAAAmB,EAAAjvD,MAAA3E,EAAA0yD,mBAAA,EAAA1yD,EAAA2yD,qBACA,MACA,IAAA,MACA/yD,EAAA+B,aAAA8wD,EAAAzyD,EAAA0yD,mBAAA,SAAA1yD,EAAA2yD,qBAAAiB,EAAAlyD,QACA,MACA,IAAA,SACA9B,EAAA+B,aAAA8wD,EAAAzyD,EAAA0yD,mBAAA,MAAA1yD,EAAA2yD,qBAAAiB,EAAAlyD,QACA,MACA,QACA,MAAA,IAAAwK,MAAA,4BAAAmkD,KASA1sD,KAAA4tD,WAAA,WAEA,GAAAkB,EAAAr1C,GAAA,aACAq1C,EAAA1wD,QAOA4B,KAAA8tD,WAAA,WAEA,GAAAgB,EAAAr1C,GAAA,aACAq1C,EAAAlvD,QAUA,SAAAuwD,eAEA,IACA70D,EAAAE,EAAA6wD,EAEA+D,EAAAC,EAHA7uD,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAK,EAAA,IAAAC,YAAAmlD,EAAA,IAAAD,cAAAkP,EAAA,IAAAnE,aAGAnsD,KAAA9B,OAAA,CACA2uD,YAAA,wBACAoB,WAAA,aACAI,YAAA,eAGA,IAAAhyD,EAAA,CAEAk0D,0BAAA,EAEAC,uBAAA,EACAC,0BAAA,EAEAC,wBAAA,EACAC,yBAAA,EAEAC,2BAAA,EACAC,wBAAA,GAEAC,2BAAA,EAEAC,wBAAA,eAEA3D,0BAAA,EACAsC,wBAAA,MACAC,yBAAA,EAEAC,uBAAA,GAEAoB,4BAAA,IAIAC,EAAA,CACAtP,qBAAA,EACA+O,wBAAA,EACAC,yBAAA,EACAH,uBAAA,EACAC,0BAAA,GAGAS,EAAA,CACAR,wBAAA,EACAC,yBAAA,EACAH,uBAAA,EACAC,0BAAA,GAGA3zD,EAAA,CACAowD,UAAA,QACAuB,WAAA,EACAE,YAAA,EACAwC,gBAAA,EACAnD,UAAA,EACAtB,YAAA,KACAwB,YAAA,KACAkD,YAAA,GAmFA,SAAAC,IAGA,GAAA,GAAAv0D,EAAAs0D,YAAA,GApCA,WAEA,GAAA,GAAA/0D,EAAAk0D,0BAEA,GAAA,GAAAzzD,EAAA2xD,WACA,MAAA,IAAAlmD,MACA,+DAMA,GAAA,GAAAzL,EAAA6xD,YACA,MAAA,IAAApmD,MACA,4DAOA,GAAA,MAAAzL,EAAA4vD,YACA,MAAA,IAAAnkD,MACA,8DAIA,OAAA,EASA+oD,GACA,OAAA,EAEAjQ,EAAAxiD,MAEA0yD,IACA9D,IAgUA,WAEA,GAAA,GAAA3wD,EAAAq0D,eACA,OAAA,EAKA,GAHAr0D,EAAAq0D,gBAAA,EAGAf,EAAA,CAWA,GARAn0D,EAAA+c,gBAAAo3C,EAAA,mBACAn0D,EAAA+c,gBAAAq3C,EAAA,mBAGAp0D,EAAAkd,iBAAAk3C,EAAAmB,GACAv1D,EAAAkd,iBAAAi3C,EAAAqB,GAGA,gBAAAp1D,EAAA00D,wBAEA5zD,OAAAkkD,GAAAhjD,GAAAgjD,EAAAnjD,OAAA8kD,WAAA0O,GAEAv0D,OAAAkkD,GAAAhjD,GAAAgjD,EAAAnjD,OAAA+kD,kBAAA0O,GAEAr2D,EAAA+C,GAAA1C,EAAAuC,OAAA0zD,YAAAD,QAIA,GADAh2D,EAAA2kD,aACAuR,kBACA10D,OAAAxB,GAAA0C,GAAA1C,EAAAuC,OAAAomD,YAAAC,GAKA+L,EAAA1xD,aAjWAA,GAEA9B,EAAAs0D,YAAA,EAEAO,IAMA,SAAAG,EAAAC,GAEA,IAAAA,EACAA,EAAAv2D,EAQA,GALAu2D,EAAA/yD,OAAA,sCAEAqtD,EAAA0F,EAAA9yD,SAAA,mBAGA,GAAA5C,EAAAu0D,0BAAA,CAEA,IAAAoB,EAAA,sBACAC,EAAA,uBACA,GAAA51D,EAAAk0D,2BACAyB,EAAA,oBACAC,EAAA,uBAGA5F,EAAArtD,OAAA,8BAAAgzD,EACA,YAAA31D,EAAAw0D,wBACA,kDACAxE,EAAArtD,OAAA,8BAAAizD,EACA,YAAA51D,EAAAw0D,wBACA,kDAIAP,EAAAjxD,QAAAgtD,GAEAhL,EAAAhiD,QAAAgtD,GAEA,GAAAhwD,EAAAu0D,4BACAP,EAAAhE,EAAAptD,SAAA,IAAA+yD,GACA5B,EAAA/D,EAAAptD,SAAA,IAAAgzD,IAYA,IAAA51D,EAAA20D,6BACA3E,EAAAntD,IAAA,mBACA7C,EAAA20D,6BA+FA,SAAAO,IAEA,GAAAl1D,EAAAk0D,yBA1FA,WAGA,IAAA2B,EAAA7Q,EAAAqH,YACA+F,EAAA3xD,EAAA2xD,WAGA,GAAA2B,EAAA,CACAC,EAAAtyD,OAAAm0D,GACA9B,EAAAryD,OAAAm0D,GAGA,IAAAC,EAAA9B,EAAApxD,SAAA,uBACAhD,EAAA+B,aAAAm0D,EAAA,SAAA,UAEA,IAAAC,EAAAhC,EAAAnxD,SAAA,uBACAhD,EAAA+B,aAAAo0D,EAAA,SAAA,UAIA,IAAAzD,EAAAuD,EAAA71D,EAAAm0D,uBACAn0D,EAAAo0D,0BAGApE,EAAArrD,MAAAytD,GACApC,EAAAtuD,OAAA4wD,GAEA7xD,EAAA6xD,YAAAA,EAGA,IAAA0D,EAAA5D,EAAApyD,EAAAq0D,wBAAAr0D,EAAAs0D,yBAEAP,IAEAiC,EAAAA,EAAA,EADAjC,EAAA/mD,aACA,EAAAhN,EAAAy0D,4BAGAzP,EAAA7R,OAAA6iB,GAsDAC,GAhDA,WAGA,IAAAD,EAAAhR,EAAAsH,WACAgG,EAAA7xD,EAAA6xD,YAGA,GAAAyB,EAAA,CACAC,EAAArvD,MAAAqxD,GACAjC,EAAApvD,MAAAqxD,GAGA,IAAAF,EAAA9B,EAAApxD,SAAA,uBACAhD,EAAA+B,aAAAm0D,EAAA,SAAA,UAEA,IAAAC,EAAAhC,EAAAnxD,SAAA,uBACAhD,EAAA+B,aAAAo0D,EAAA,SAAA,UAIA,IAAA3D,EAAA4D,EAAAh2D,EAAAq0D,wBACAr0D,EAAAs0D,yBAGAtE,EAAArrD,MAAAytD,GACApC,EAAAtuD,OAAA4wD,GAEA7xD,EAAA2xD,WAAAA,EAGA,IAAAyD,EAAAvD,EAAAtyD,EAAAm0D,uBACAn0D,EAAAo0D,0BAEAL,IAEA8B,EAAAA,EAAA,EADA9B,EAAAhnD,cAEA,EAAA/M,EAAAy0D,4BAGAzP,EAAA7R,OAAA0iB,GAWAK,GAqDA,SAAA9E,IAEA,GAAApxD,EAAAk0D,yBAjDA,WAGAH,IACAn0D,EAAA+B,aAAAqyD,EAAA,OAAA,MACAh0D,EAAAq0D,wBACAr0D,EAAAm0D,wBACAv0D,EAAA+B,aAAAoyD,EAAA,QAAA,MACA/zD,EAAAs0D,yBACAt0D,EAAAm0D,yBAGA,IAAAgC,EAAAn2D,EAAAq0D,wBACAN,IACAoC,GAAApC,EAAA/mD,aACAhN,EAAAy0D,4BAEAzP,EAAAzW,YAAA4nB,EAAAn2D,EAAAm0D,wBAiCAiC,GA1BA,WAGArC,IACAn0D,EAAA+B,aAAAqyD,EAAA,OAAA,MACAh0D,EAAAq0D,wBACAr0D,EAAAm0D,wBACAv0D,EAAA+B,aAAAoyD,EAAA,OAAA,SACA/zD,EAAAq0D,wBACAr0D,EAAAo0D,4BAGA,IAAAiC,EAAAr2D,EAAAm0D,uBACAJ,IACAsC,GAAAtC,EAAAhnD,cACA/M,EAAAy0D,4BAEAzP,EAAAzW,YAAAvuC,EAAAq0D,wBAAAgC,GAWAC,GAEArC,EAAA7C,gBAaA,SAAAgE,EAAA7jD,GAEA,GAAA3R,EAAA6R,iBAAAF,GACA,OAAA,EAEA,gBAAAvR,EAAA00D,wBACAp1D,EAAAi3D,WAEAvR,EAAAmG,iBAMA,SAAAgK,EAAA5jD,GAEA,GAAA3R,EAAA6R,iBAAAF,GACA,OAAA,EAEA,gBAAAvR,EAAA00D,wBACAp1D,EAAAk3D,WAEAxR,EAAAoG,aAMA,SAAAkK,IAEA,IAAAvB,EACA,OAAA,EAGA,GAAA,GAAA/O,EAAAyH,gBAGA,OAFA7sD,EAAA0R,cAAA0iD,GACAp0D,EAAA0R,cAAAyiD,IACA,EAIA,IAAA0C,EAAAzR,EAAA8F,sBACAx9C,EAAA03C,EAAA0D,mBAEAp7C,GAAAmpD,EAAA1L,OACAnrD,EAAA0R,cAAA0iD,GAEAp0D,EAAAwS,aAAA4hD,GAGA1mD,GAAAmpD,EAAAzL,OACAprD,EAAA0R,cAAAyiD,GAEAn0D,EAAAwS,aAAA2hD,GAOA,SAAAsB,IACAC,IAOA,SAAApN,IAEA5oD,EAAAo3D,aACA92D,EAAA0R,cAAAyiD,GAEAn0D,EAAAwS,aAAA2hD,GAEAz0D,EAAAq3D,cACA/2D,EAAA0R,cAAA0iD,GAEAp0D,EAAAwS,aAAA4hD,GAiDArwD,KAAAC,QAAA,WAEAmwD,IACAn0D,EAAAid,cAAAk3C,GACAn0D,EAAAid,cAAAm3C,GACAlzD,OAAAkkD,GAAAnhD,IAAAmhD,EAAAnjD,OAAA8kD,YACA7lD,OAAAxB,GAAAuE,IAAAvE,EAAAuC,OAAAomD,aACAnnD,OAAAxB,GAAAuE,IAAAvE,EAAAuC,OAAA0zD,cAGAtB,EAAArwD,UACAohD,EAAAphD,WAOAD,KAAAgwD,eAAA,WAEA,OAAAlzD,EAAA,aAMAkD,KAAAizD,eAAA,SAAAvG,GAEA5vD,EAAA4vD,YAAAA,GAOA1sD,KAAArC,KAAA,SAAAV,EAAAC,IAleA,SAAAD,EAAAC,GACAvB,EAAAsB,EAEA3B,EAAA6B,OAAAxB,GAIA,IAAAu3D,GAAA,EAEA,IAJA72D,EAAAc,OAAAC,OAAAf,EAAAa,IAIAqzD,2BACAl0D,EAAAc,OAAAC,OAAAf,EAAA40D,GACAiC,GAAA,GAGA,GAAA72D,EAAAu0D,4BACAv0D,EAAAc,OAAAC,OAAAf,EAAA60D,GACAgC,GAAA,GAGA,GAAAA,IACA72D,EAAAc,OAAAC,OAAAf,EAAAa,IAIA,IACA2yD,EADAl0D,EAAA2kD,aACAwP,aACA,IAAAzzD,EAAAw0D,0BACAx0D,EAAAw0D,wBAAAhB,GAEAr0D,EAAAG,EAAAw3D,aAGA7C,EAAA3yD,KAAAhC,EAAAmB,EAAA0E,EAAAnF,EAAAi8C,IAGA+I,EAAA,IAAAD,eACAzjD,KAAAhC,EAAAU,GA+bA+2D,CAAAn2D,EAAAC,IAMA8C,KAAAnB,IAAA,WACAwyD,KAMArxD,KAAAX,QAAA,SAAA0yD,GACAD,EAAAC,IAMA/xD,KAAAmzD,WAAA,WACA,OAAA,GAMAnzD,KAAA0uD,QAAA,WAIA,OAFAzyD,EAAA6D,eAAAusD,IAQArsD,KAAAqzD,SAAA,SAAAryD,GAEAlE,EAAA2xD,WAAAztD,GAOAhB,KAAA+0C,UAAA,SAAAh3C,GAEAjB,EAAA6xD,YAAA5wD,GAOAiC,KAAAwvC,OAAA,SAAAplC,GACA5I,EAAA6xD,SAAAjpD,GACAmnD,IACA9D,KAGAztD,KAAAszD,mCAAA,aAKAtzD,KAAA4uD,cAAA,WACA,OAAA0B,EAAA1B,iBAMA5uD,KAAAouD,mBAAA,WACA,OAAAkC,EAAAlC,sBAMApuD,KAAA+tD,UAAA,SAAArR,GACA4T,EAAAvC,UAAArR,IAOA18C,KAAAmuD,WAAA,SAAAzR,GACA4T,EAAAnC,WAAAzR,IAMA18C,KAAAuuD,eAAA,SAAAL,GACAoC,EAAA/B,eAAAL,IAMAluD,KAAAsuD,eAAA,SAAAJ,GACAoC,EAAAhC,eAAAJ,IAMAluD,KAAAigD,gBAAA,SAAAC,GAEAmB,EAAApB,gBAAAC,IAOAlgD,KAAA6uD,mBAAA,SAAAjwB,GAEA0xB,EAAAzB,mBAAAjwB,IAWA,SAAA20B,cAEA,IACA/3D,EAAA6wD,EAIAmH,EAAAC,EALAjyD,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAK,EAAA,IAAAC,YACAw3D,EAAA,IAAAC,aACArD,EAAA,IAAAnE,aAGAnsD,KAAA9B,OAAA,CACA2uD,YAAA,wBACAoB,WAAA,aACAI,YAAA,eAGA,IAAAhyD,EAAA,CACAu3D,2BAAA,EACAC,qBAAA,SACAC,6BAAA,GACAC,gCAAA,EACAC,8BAAA,GACAC,+BAAA,GAEAC,sBAAA,GACAC,4BAAA,SACAC,8BAAA,EACAC,2BAAA,SACAC,6BAAA,GAEAC,+BAAA,GACAC,4BAAA,EAEAnH,yBAAA,EACAkC,uBAAA,MACAC,wBAAA,EACAC,sBAAA,GAEAgF,2BAAA,IAKAvR,EAAA,CACA2Q,qBAAA,SACAC,6BAAA,EACAC,gCAAA,GAIAW,EAAA,CACAb,qBAAA,UAGA/2D,EAAA,CACAowD,UAAA,OACAyH,WAAA,EACAC,eAAA,EACAjG,YAAA,EACAF,WAAA,EACAoG,aAAA,KACA1D,gBAAA,EACAnD,UAAA,EACAtB,YAAA,MA0DA,SAAAoI,IAEA,GAAA,MAAAh4D,EAAA4vD,YACA,MAAA,IAAAnkD,MAAA,8DAOA,SAAA8oD,IAGAyD,IA4EA,UAAAz4D,EAAAw3D,uBACAx3D,EAAAw3D,qBAAA,UAzEAH,EAAA70D,MAkKA,WAEA,IAAAk2D,GAAA,EACA,GAAA,GAAA14D,EAAAm4D,2BACAO,GAAA,MAEA,CACArB,EAAAsB,cACA,IACAD,GAAA,GAGA,GAAAA,GAEAvB,EAAA5zD,OAAA9B,OAAA,EAAA,GACA21D,EAAA7zD,OAAA9B,OAAA,EAAA,GACAhB,EAAA83D,eAAA,IAIApB,EAAAp1D,OACAq1D,EAAAr1D,OACAtB,EAAA83D,eAAA,GAtLAK,GAgMA,WACA,IAAAC,EAAAxB,EAAAhF,UAGA,GAAA5xD,EAAA63D,UACA73D,EAAA6xD,YAAAuG,EAAAn3D,OAAA1B,EAAAy3D,6BAAAz3D,EAAA03D,gCAEAj3D,EAAA2xD,WAAAyG,EAAAl0D,MAAA3E,EAAA23D,8BAAA33D,EAAA43D,+BAEAh4D,EAAAiP,eAAAmhD,EAAAvvD,EAAA2xD,WAAA3xD,EAAA6xD,aAxMAwG,GAykBA,WAEA,GAAAr4D,EAAA63D,UAEA,GAAAt4D,EAAAu3D,0BA7MA,GAAA92D,EAAA83D,cA9DA,WAGA,IAAAQ,EAAAC,EAAAC,EAAAC,EACAC,EAAAv5D,EAAA6D,eAAA2zD,GACAgC,EAAA/B,EAAAhF,UAGA,OAAAryD,EAAAw3D,sBACA,QACA,IAAA,MACAuB,EAAA/4D,EAAAy3D,6BAAA0B,EAAAz3D,OAAA1B,EAAA+3D,8BACA,MACA,IAAA,SACAgB,EAAA,SACA,MACA,IAAA,SACAA,EAAAt4D,EAAA6xD,YAAA8G,EAAA13D,OAAAy3D,EAAAz3D,OAAA1B,EAAA03D,gCAAA13D,EAAA+3D,8BAKA,IAAAsB,EAAAC,IAEAC,EAAAlC,EAAAP,aAMA,OALAl3D,EAAA+B,aAAA43D,EAAAF,EAAAN,GAEAK,EAAA/B,EAAAhF,UAGAryD,EAAA83D,6BACA,QACA,IAAA,SACA,IAAA,SACAkB,GAAAI,EAAA1uD,IAAAyuD,EAAAz3D,QAAA,EACAu3D,EAAAG,EAAA11D,QAAAjD,EAAA6xD,YAAA8G,EAAA11D,OAAAy1D,EAAAz3D,QAAA,EACAw3D,EAAA,EACA,MACA,IAAA,OACAF,EAAAI,EAAA1uD,IAAAyuD,EAAAz3D,OAAA1B,EAAAw5D,mCACAP,EAAAG,EAAA11D,OAAA1D,EAAA+3D,8BACAmB,EAAA,EACA,MACA,IAAA,SACA,IAAA,UACAF,EAAAh5D,EAAAy3D,6BACAwB,EAAA,SACAC,EAAAl5D,EAAA03D,gCAIA93D,EAAA+B,aAAAy1D,EAAA,SAAA4B,GAEAp5D,EAAA+B,aAAAw1D,EAAA,SAAA8B,EAAA,EAAAC,GAUAO,GAEAC,IAgFA,GAAAj5D,EAAA83D,cAzEA,WAEA,IAAAoB,EAAAC,EAAAC,EACAV,EAAAv5D,EAAA6D,eAAA2zD,GACAgC,EAAA/B,EAAAhF,UAGA0G,EAAA/4D,EAAAy3D,6BAEA,OAAAz3D,EAAAw3D,sBACA,IAAA,SAEA,OAAAx3D,EAAA83D,6BACA,QACA,IAAAgC,EAAAV,EAAA13D,OAAA1B,EAAA+3D,8BAAAoB,EAAAz3D,OACAq3D,GAAAt4D,EAAA6xD,YAAAwH,GAAA,EACA,MACA,IAAA,SACA,IAAA,UACA,IAAAC,EAAAt5D,EAAA6xD,YAAA6G,EAAAz3D,OAAA1B,EAAA03D,gCACAqB,GAAAgB,EAAAX,EAAA13D,QAAA,EAIA,MACA,IAAA,SACAo4D,EAAAV,EAAA13D,OAAAy3D,EAAAz3D,OAAA1B,EAAA+3D,8BACAgB,EAAAt4D,EAAA6xD,YAAAwH,EAAA95D,EAAA03D,gCAIA,IAAA6B,EAAAlC,EAAAP,aACAuC,EAAAC,IAMA,OAJA15D,EAAA+B,aAAA43D,EAAAF,EAAAN,GAEAK,EAAA/B,EAAAhF,UAEAryD,EAAA83D,6BACA,QACA,IAAA,SACA,IAAA,SACA6B,EAAAP,EAAA11D,QAAAjD,EAAA6xD,YAAA8G,EAAA11D,OAAAy1D,EAAAz3D,QAAA,EACAm4D,EAAA,EACA,MACA,IAAA,OACAF,EAAAP,EAAA11D,OAAA1D,EAAA+3D,8BACA8B,EAAA,EACA,MACA,IAAA,SACA,IAAA,UACAF,EAAA,SACAE,EAAA75D,EAAA03D,gCAIAkC,GAAAT,EAAAx0D,MAAA,EAAA3E,EAAAk4D,+BAAA,EAEAt4D,EAAA+B,aAAAy1D,EAAA,SAAAuC,EAAAC,EAAAC,GAGA,IAAAG,EAAAx1D,KAAA8O,IAAAsmD,GAEAh6D,EAAA+B,aAAAw1D,EAAA,SAAAwC,EAAAK,EAAAH,GAWAI,GAEAP,IAwGA,GAAAj5D,EAAA83D,cAhGA,WAGA,IAAA2B,EAAAC,EAAAC,EAAAT,EACAR,EAAAv5D,EAAA6D,eAAA2zD,GACAgC,EAAA/B,EAAAhF,UAEA,OAAAryD,EAAAw3D,sBACA,QACA,IAAA,OACA0C,EAAAl6D,EAAA23D,8BAAA33D,EAAAi4D,6BAAAkB,EAAAx0D,MACA,MACA,IAAA,SACA,IAAA,SACAu1D,EAAA,SACA,MACA,IAAA,QACAA,EAAAz5D,EAAA2xD,WAAAgH,EAAAz0D,MAAAw0D,EAAAx0D,MAAA3E,EAAA43D,+BAAA53D,EAAAi4D,6BAKA,IAAAsB,EAAAlC,EAAAP,aAKA,OAJAl3D,EAAA+B,aAAA43D,EAAAW,EAAAl6D,EAAAy3D,8BACA2B,EAAA/B,EAAAhF,UAGAryD,EAAA83D,6BACA,QACA,IAAA,SACA,IAAA,SACA6B,GAAAP,EAAA13D,OAAAy3D,EAAAz3D,QAAA,EAAA03D,EAAA1uD,IACA,MACA,IAAA,MACAivD,EAAA35D,EAAAy3D,6BAAAz3D,EAAA+3D,8BACA,MACA,IAAA,SACA4B,EAAAl5D,EAAA6xD,YAAAtyD,EAAA03D,gCAAA13D,EAAA+3D,8BAAAoB,EAAAz3D,OAKA,OAAA1B,EAAAg4D,4BACA,QACA,IAAA,UACAmC,EAAAn6D,EAAA23D,8BACAyC,EAAA35D,EAAA2xD,WAAApyD,EAAA43D,+BAAAuB,EAAAx0D,MACA,MACA,IAAA,OACAw1D,EAAAf,EAAA3uD,KAAAzK,EAAAi4D,6BAAAkB,EAAAx0D,MACAy1D,EAAAhB,EAAAnsD,MAAAjN,EAAAi4D,6BACA,MACA,IAAA,SACAkC,GAAAf,EAAA3uD,KAAA0uD,EAAAx0D,OAAA,EACAy1D,EAAAhB,EAAAnsD,OAAAxM,EAAA2xD,WAAAgH,EAAAnsD,MAAAksD,EAAAx0D,OAAA,EAIA/E,EAAA+B,aAAAy1D,EAAA+C,EAAAR,GACA/5D,EAAA+B,aAAAw1D,EAAAiD,EAAAT,GAsCAU,GA/BA,WAEA,IAAAH,EACAd,EAAA/B,EAAAhF,UAEA,OAAAryD,EAAAw3D,sBACA,QACA,IAAA,OACA0C,EAAAl6D,EAAA23D,8BACA,MACA,IAAA,SACA,IAAA,SACAuC,EAAA,SACA,MACA,IAAA,QACAA,EAAAz5D,EAAA2xD,WAAAgH,EAAAz0D,MAAA3E,EAAA43D,+BAKA,IAAA2B,EAAAlC,EAAAP,aACAl3D,EAAA+B,aAAA43D,EAAAW,EAAAl6D,EAAAy3D,8BAYA6C,GAqBArG,EAAA7C,gBArlBAA,GA8OA,WAEA,GAAA,GAAA3wD,EAAAq0D,eACA,OAAA,EAEAr0D,EAAAq0D,gBAAA,EAEAsC,IACAx3D,EAAA+c,gBAAAy6C,GACAC,EAAAkD,qBAAAnD,IAIAD,IACAv3D,EAAA+c,gBAAAw6C,GACAE,EAAAmD,qBAAArD,IAGAlD,EAAA1xD,aA9PAA,GAOA,SAAAk4D,IAGAt7D,EAAAwD,OAAA,qCAEAqtD,EAAA7wD,EAAAyD,SAAA,kBAGAnC,EAAA63D,WAEAtI,EAAArtD,OAAA,0DAAA3C,EAAA63D,sBAAA,YACA7H,EAAArtD,OAAA,2DAAA3C,EAAA63D,sBAAA,YAEAT,EAAApH,EAAAptD,SAAA,4BACAu0D,EAAAnH,EAAAptD,SAAA,8BAEA,GAAA5C,EAAAu3D,2BACAvH,EAAArtD,OAAA,kDAAA3C,EAAA63D,sBAAA,YACA7H,EAAArtD,OAAA,mDAAA3C,EAAA63D,sBAAA,YAEAT,EAAApH,EAAAptD,SAAA,oBACAu0D,EAAAnH,EAAAptD,SAAA,uBAGAotD,EAAArtD,OAAA,gDAAA3C,EAAA63D,sBAAA,YACA7H,EAAArtD,OAAA,kDAAA3C,EAAA63D,sBAAA,YAEAT,EAAApH,EAAAptD,SAAA,kBACAu0D,EAAAnH,EAAAptD,SAAA,qBAGAqxD,EAAAjxD,QAAAgtD,GAGAoH,EAAA31D,OAAA,EAAA,GACA01D,EAAA11D,OAAA,EAAA,GAEA41D,EAAAr0D,QAAAgtD,GAYA,IAAAhwD,EAAAo4D,4BACApI,EAAAntD,IAAA,mBAAA7C,EAAAo4D,4BAiOA,SAAAkB,IAIA,OAFAt5D,EAAA23D,8BASA,SAAA+B,IAGA,IAAAX,EAAA/4D,EAAAw3D,qBAAAkD,EAAA,EAEA,OAAA3B,GACA,IAAA,MACA2B,EAAA16D,EAAAy3D,6BAEA,MACA,IAAA,SACAiD,EAAA16D,EAAA03D,gCAIA,IAAA2B,EAAAC,IAEAC,EAAAlC,EAAAP,aACAl3D,EAAA+B,aAAA43D,EAAAF,EAAAN,EAAA,EAAA2B,GAjDA/2D,KAAAC,QAAA,WAEAwzD,GACAx3D,EAAAid,cAAAu6C,GAEAD,GACAv3D,EAAAid,cAAAs6C,GAEAlD,EAAArwD,UAEAyzD,EAAAzzD,WA0UAD,KAAAgwD,eAAA,WAEA,OAAAlzD,EAAA,aAOAkD,KAAAizD,eAAA,SAAAvG,GAKA,OAHA5vD,EAAA4vD,YAAAA,EAGAA,GACA,IAAA,QACA,IAAA,OACA5vD,EAAA63D,WAAA,EACA,MACA,IAAA,MACA,IAAA,SACA73D,EAAA63D,WAAA,EACA,MACA,QACA,MAAA,IAAApsD,MAAA,iCAAAmkD,KASA1sD,KAAA+0C,UAAA,SAAAh3C,GAEA,GAAA,GAAAjB,EAAA63D,UACA,MAAA,IAAApsD,MAAA,kDAAAzL,EAAA4vD,YAAA,0BAEA5vD,EAAA6xD,YAAA5wD,EACA,IA/hBAi5D,EACAC,EA8hBAC,GA/hBAF,EAAA36D,EAAAy3D,6BAAAz3D,EAAA03D,gCACAkD,EAAAn6D,EAAA6xD,YAAAqI,EAEA,GAAA36D,EAAAm4D,4BAEA,GADAd,EAAAyD,8BAAAF,GAEA,GAOAD,EAHA/6D,EAAA6D,eAAA0zD,GACAz1D,OAEA1B,EAAA+3D,8BAEA,GAAA/3D,EAAAu3D,4BACAoD,GAAA,GAEAA,GAAA36D,EAAAy3D,6BAAAz3D,EAAA03D,gCAEAkD,EAAAn6D,EAAA6xD,YAAAqI,IA6gBAtD,EAAA0D,aAAAF,IAOAl3D,KAAAqzD,SAAA,SAAAryD,GAEA,GAAA,GAAAlE,EAAA63D,UACA,MAAA,IAAApsD,MAAA,iDAAAzL,EAAA4vD,YAAA,2BAEA5vD,EAAA2xD,WAAAztD,EAEA,IA/gBAg2D,EAEAK,EA6gBAC,GA/gBAN,EAAA36D,EAAA23D,8BAAA33D,EAAA43D,+BAEAoD,EAAAv6D,EAAA2xD,WAAAuI,EAEA,GAAA36D,EAAAm4D,4BAGA,GAFAd,EAAA6D,6BAAAF,GAGA,GAOAL,GAAA,GAHA/6D,EAAA6D,eAAA0zD,GACAxyD,MAEA3E,EAAAi4D,8BAEA+C,EAAAv6D,EAAA2xD,WAAAuI,IAggBAtD,EAAA8D,YAAAF,IAOAt3D,KAAArC,KAAA,SAAAV,EAAAC,IApuBA,SAAAD,EAAAC,GAEAvB,EAAAsB,EAEA63D,IAGA53D,GAAAA,EAAAu6D,kBACAp7D,EAAAu3D,0BAAA12D,EAAAu6D,iBAGAp7D,EAAAc,OAAAC,OAAAf,EAAAa,GAGA,GAAAJ,EAAA63D,WAEAt4D,EAAAc,OAAAC,OAAAf,EAAAq4D,GACAr4D,EAAAc,OAAAC,OAAAf,EAAAa,IAEA,GAAAb,EAAAu3D,4BAGAv3D,EAAAc,OAAAC,OAAAf,EAAA6mD,IACA7mD,EAAAc,OAAAC,OAAAf,EAAAa,IACAw6D,qBAAA,UAIA,IACA7H,EADAl0D,EAAA2kD,aACAwP,aACA,IAAAzzD,EAAA63D,wBACA73D,EAAA63D,sBAAArE,GAIA,IAAA8H,EAAA16D,EAAAS,aACAlC,EAAAm8D,EAAAn8D,aAGA80D,EAAA3yD,KAAAhC,EAAAmB,EAAA0E,EAAAnF,EAAAi8C,IAGAob,EAAA,IAAAC,cACAh2D,KAAAhC,EAAAU,GA2rBAu7D,CAAA36D,EAAAC,IAMA8C,KAAAX,QAAA,WACAy3D,KAOA92D,KAAAnB,IAAA,WAEAwyD,KAOArxD,KAAAmzD,WAAA,WACA,OAAA,GAOAnzD,KAAA0uD,QAAA,WAIA,OAFAzyD,EAAA6D,eAAAusD,IAKArsD,KAAAszD,mCAAA,aAKAtzD,KAAA4uD,cAAA,WACA,OAAA0B,EAAA1B,iBAMA5uD,KAAAouD,mBAAA,WACA,OAAAkC,EAAAlC,sBAMApuD,KAAA+tD,UAAA,SAAArR,GACA4T,EAAAvC,UAAArR,IAOA18C,KAAAmuD,WAAA,SAAAzR,GACA4T,EAAAnC,WAAAzR,IAMA18C,KAAAuuD,eAAA,SAAAL,GACAoC,EAAA/B,eAAAL,IAMAluD,KAAAsuD,eAAA,SAAAJ,GACAoC,EAAAhC,eAAAJ,IAOAluD,KAAA6uD,mBAAA,SAAAjwB,GAEA0xB,EAAAzB,mBAAAjwB,IAWA,SAAA+0B,eAEA,IACAr4D,EAAAC,EAAAC,EACA48C,EAAAsb,EAAAmE,EAFAr2D,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAK,EAAA,IAAAC,YACAwlD,EAAA,IAAAvJ,gBAAA2f,EAAA,IAAA17D,aAEAC,EAAA,CACAq7D,qBAAA,OACAK,cAAA,EACAC,cAAA,EACAC,cAAA,EACAC,wBAAA,GACAC,wBAAA,GACAC,0BAAA,GACAC,yBAAA,IACAC,uBAAA,gBACAC,eAAA,EACAC,aAAA,EACAC,6BAAA,GAGAz4D,KAAA9B,OAAA,CACAw6D,YAAA,eAGA,IAAA57D,EAAA,CACA67D,gBAAA,oBACAC,cAAA,EACAC,aAAA,EACAC,YAAA,EACAC,WAAA,EACAC,UAAA,EACAjlD,WAAA,EACAyqB,YAAA,EACAy6B,SAAA,EACAC,SAAA,EACAC,UAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,sBAAA,EACAC,aAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,aAAA,EACAnoD,cAAA,aACAooD,aAAA,KACAC,cAAA,KACAC,iBAAA,KACAC,iBAAA,MASA,SAAAn8D,EAAAV,EAAAC,EAAAw8D,GAiSA,IAAA1rD,EA/QA,GAhBAzS,EAAA0B,EAAAS,cACA/B,EAAAsB,GAEAmpD,kBAAA,OAAA5kD,GAEAlG,EAAA6B,OAAAF,GACAzB,EAAAD,EAAAC,aACA48C,EAAA78C,EAAA68C,YAEA,IAAAshB,IACA58D,EAAA48D,aAAA,GAEA58D,EAAAq8D,UAAA/gB,EAAAxwC,OAmRAoG,EAjRA9Q,EAmRAb,EAAAc,OAAAC,OAAAf,EAAA2R,GAEA0zC,EAAAlkD,WAAAwQ,GAGAlR,EAAAw8D,qBAAA,OAAAj9D,EAAAq7D,sBAAA,UAAAr7D,EAAAq7D,qBAEA56D,EAAA+8D,iBAAAx9D,EAAA67D,wBACAp7D,EAAAg9D,iBAAAz9D,EAAA87D,wBAzRA,GAAAr7D,EAAA48D,YAAA,CAEA5B,EAAAiC,eACAjC,EAAAkC,wBAAAC,GACAnC,EAAAn6D,KAAAV,EAAAZ,GAEA,IAAA69D,EAAApC,EAAAxX,aACAxjD,EAAA88D,cAAAM,EAAAC,YACAr9D,EAAA68D,aAAAO,EAAAE,WAEA1Y,EAAAoW,EAAAxP,oBAIAprD,EAAAk8C,kBAAA,EAEAsI,EAAA/jD,KAAAV,EAAAC,GAiDA,SAAA2B,IAEA,IAAAqpD,EAAAvsD,EAAAqqD,mBAlBA,WAEA,GAAA,GAAAlpD,EAAA87D,cACA,GAAA,GAAA97D,EAAAi8D,WACA,MAAA,IAAAxwD,MAAA,wCAEA,GAAA,GAAAzL,EAAAk8D,UACA,MAAA,IAAAzwD,MAAA,kCAaA8xD,GAEA,GAAAv9D,EAAA28D,kBAk8BA,WAEA,GAAA,GAAA38D,EAAA48D,YAAA,CAEAhY,EAAA9iD,aACA80D,EAAA1mC,KAAA,qBACA3uB,GAAA,iBAAAgmD,GAEA/oD,EAAA+C,GAAA1C,EAAAuC,OAAAomD,YAAAC,QAGAuT,EAAAl5D,aAMA80D,EAAA3yC,KAAA,uBAAA2qC,GAGAvuD,OAAA,QAAA4jB,KAAA,sBAAA+qC,GAGA3uD,OAAA2W,QAAAinB,IAAA,QAAAha,KAAA,mBAAA0qC,GAv9BA7sD,GAEA,GAAA9B,EAAA48D,aAEAY,IACAC,IACAzC,EAAAj5D,QAGA6iD,EAAAlC,oBACA+a,IACA7Y,EAAAT,qBAKA,GAAAnkD,EAAA48D,aAKA,GAFAY,MAGAC,IACAzC,EAAAj5D,OAQA,GA4eA,GAAA/B,EAAA87D,aAEA97D,EAAAw8D,qBAvNA,WACA,IAAAhW,EAAAuU,EAAA54D,SAAA,qBAEAwN,EAAA,EACAD,EAAA,EACAguD,EAAA,EACA9/C,EAAA,EACA+/C,EAAA,EACAC,EAAA,EAEA59D,EAAAiX,WAAA,EACAjX,EAAAm8D,SAAA,EACAn8D,EAAAo8D,SAAA,GACAp8D,EAAAu8D,gBAAA,EAGAv8D,EAAAo8D,SAAApiD,KAAA2jD,GAEA,IAAAtB,EAAA7V,EAAA17C,OAEA,IAAAqN,EAAA,EAAAA,EAAAkkD,EAAAlkD,IAAA,CACA,IAAAknC,EAAAh/C,OAAAmmD,EAAAruC,IACAhZ,EAAA+B,aAAAm+C,EAAA1vC,EAAAD,GAEA,IAAAiyC,EAAAtC,EAAA9yC,aACAq1C,EAAAvC,EAAA/yC,cAEAqD,GAAAgyC,EAAA3hD,EAAA+8D,iBAEA,IAAAc,EAAAnuD,EAAAkyC,EACAic,EAAAH,IACAA,EAAAG,KAGAjgD,GACAre,EAAA07D,gBACAvrD,GAAAkyC,EAAA5hD,EAAAg9D,iBACArtD,EAAAguD,EACA//C,EAAA,GAIA,GAAA5d,EAAAm8D,UACAn8D,EAAAu8D,kBAGAsB,EAAAnuD,EAAAkyC,EACA,IAAAkc,EAAAF,EAAA59D,EAAAi8D,WAGA4B,EAAAC,IAGA,GAAA99D,EAAA+7D,aAAA,GAAA/7D,EAAAm8D,WACAn8D,EAAAi8D,WAAAyB,EACA9G,EAAA31D,OAAAjB,EAAAi8D,YACA6B,EAAA99D,EAAAi8D,YAGAvsD,EAAAouD,EAAA99D,EAAAg9D,iBACAY,EAAAluD,EAEAC,EADAguD,EAAA,EAEA//C,EAAA,EAGAzF,EAAAkkD,EAAA,IACAr8D,EAAAm8D,WAGAn8D,EAAAo8D,SAAApiD,KAAAtK,KAQAqrD,EAAA95D,OAAAy8D,GACA19D,EAAA0hC,YAAAg8B,EAGA,GAAA19D,EAAA+7D,aAAA,GAAA/7D,EAAAm8D,WACAn8D,EAAAi8D,WAAAyB,EACA9G,EAAA31D,OAAAy8D,IAoIAK,GAtTA,WAEA,IAAAvX,EAAAuU,EAAA54D,SAAA,qBAEAwN,EAAA,EACAD,EAAA,EACAkO,EAAA,EACA+/C,EAAA,EACAK,EAAA,EAAAN,EAAA,EACA19D,EAAAiX,WAAA,EACAjX,EAAAm8D,SAAA,EACAn8D,EAAAo8D,SAAA,GACAp8D,EAAAu8D,gBAAA,EAGAv8D,EAAAo8D,SAAApiD,KAAA2jD,GAEA,IAAAtB,EAAA7V,EAAA17C,OAEA,IAAAqN,EAAA,EAAAA,EAAAkkD,EAAAlkD,IAAA,CACA,IAAAknC,EAAAh/C,OAAAmmD,EAAAruC,IACAhZ,EAAA+B,aAAAm+C,EAAA1vC,EAAAD,GAEA,IAAAiyC,EAAAtC,EAAA9yC,aACAq1C,EAAAvC,EAAA/yC,cAGAqD,EAAAquD,IACAA,EAAAruD,GAGA,IAAAsuD,EAAAvuD,EAAAkyC,EACAqc,EAAAP,IACAA,EAAAO,GAGA,IAAAC,EAAAF,EAAArc,EACAuc,EAAAl+D,EAAAiX,aACAjX,EAAAiX,WAAAinD,GAEAvuD,GAAAgyC,EAAA3hD,EAAA+8D,mBAGAn/C,GACAre,EAAA07D,gBACAvrD,GAAAkyC,EAAA5hD,EAAAg9D,iBACArtD,EAAAguD,EACA//C,EAAA,GAIA,GAAA5d,EAAAm8D,UACAn8D,EAAAu8D,kBAGA7sD,EAAAkyC,EAAA5hD,EAAAi8D,aACAvsD,EAAA,EACAiuD,EAAA39D,EAAAiX,WAAAjX,EAAA+8D,iBACAptD,EAAAguD,EACA//C,EAAA,EAGA,GAAA5d,EAAA+7D,aAAA,GAAA/7D,EAAAm8D,WACAn8D,EAAAi8D,WAAAyB,EACA9G,EAAA31D,OAAAjB,EAAAi8D,aAIA9jD,EAAAkkD,EAAA,IACAr8D,EAAAm8D,WAGAn8D,EAAAo8D,SAAApiD,KAAA2jD,KAQA5C,EAAA72D,MAAAlE,EAAAiX,YAGA,GAAAjX,EAAA+7D,aAAA,GAAA/7D,EAAAm8D,WACAn8D,EAAAi8D,WAAAyB,EACA9G,EAAA31D,OAAAy8D,IAmOAS,GA7HA,WAEA,IAAA3X,EAAAuU,EAAA54D,SAAA,qBAEAw7D,EAAAp+D,EAAAm8D,aACA0C,EAAA7+D,EAAAm8D,aACAhsD,EAAA0uD,EACAzuD,EAAAguD,EACAK,EAAA,EAAAN,EAAA,EAAAI,EAAA,EAAAO,EAAA,EACAC,EAAA,EAEAt+D,EAAAiX,WAAA,EACAjX,EAAAm8D,SAAA,EACAn8D,EAAAo8D,SAAA,GACAp8D,EAAAu8D,gBAAA,EAGAv8D,EAAAo8D,SAAApiD,KAAA2jD,EAAAp+D,EAAAm8D,cAEA,IAAAW,EAAA7V,EAAA17C,OAEA,IAAAqN,EAAA,EAAAA,EAAAkkD,EAAAlkD,IAAA,CACA,IAAAknC,EAAAh/C,OAAAmmD,EAAAruC,IAEAwpC,EAAAtC,EAAA9yC,aACAq1C,EAAAvC,EAAA/yC,cAGAqD,EAAAguD,EAAAhc,EAAA3hD,EAAAk8D,YACAoC,IACA5uD,EAAA,EAEA4uD,GAAA/+D,EAAA47D,eAGAmD,EAAA,EACAX,EAAAhuD,EACAD,EAAA0uD,EACAN,EAAA,EAGA,GAAA99D,EAAAm8D,WACAn8D,EAAAk8D,UAAA8B,EAAAz+D,EAAAm8D,aACA9E,EAAA1yD,MAAAlE,EAAAk8D,WAEAl8D,EAAAi8D,WAAAoC,EAAA9+D,EAAAm8D,aACA9E,EAAA31D,OAAAjB,EAAAi8D,aAIAj8D,EAAAm8D,WACAn8D,EAAAo8D,SAAApiD,KAAA2jD,EAAAp+D,EAAAm8D,gBAGA/rD,EAAAguD,EACAjuD,EAAAouD,EAAA99D,EAAAg9D,mBAKA79D,EAAA+B,aAAAm+C,EAAA1vC,EAAAD,IAGAwuD,EAAAvuD,EAAAgyC,GACAqc,IACAA,EAAAE,GAGA,IAYAA,EAZAD,EAAAvuD,EAAAkyC,EAEAqc,EAAAH,IACAA,EAAAG,GAEAA,EAAAI,IACAA,EAAAJ,GAEAA,EAAAP,IACAA,EAAAO,IAGAC,EAAAF,EAAArc,GACA3hD,EAAAiX,aACAjX,EAAAiX,WAAAinD,GAEAvuD,GAAAgyC,EAAA3hD,EAAA+8D,iBAGA,GAAA/8D,EAAAm8D,UACAn8D,EAAAu8D,kBAMAv8D,EAAAiX,WAAA+mD,EAAAz+D,EAAAm8D,aACA17D,EAAA0hC,YAAA28B,EAAA9+D,EAAAm8D,aAEAX,EAAA72D,MAAAlE,EAAAiX,YACA8jD,EAAA95D,OAAAjB,EAAA0hC,aAIA,GAAA1hC,EAAAm8D,WACAn8D,EAAAk8D,UAAA8B,EAAAz+D,EAAAm8D,aACA17D,EAAAi8D,WAAAoC,EAAA9+D,EAAAm8D,aAEA9E,EAAA1yD,MAAAlE,EAAAk8D,WACAtF,EAAA31D,OAAAjB,EAAAi8D,aAqBAsC,GApfA,GAAAv+D,EAAA28D,gBAAA38D,EAAA48D,YAAA,CAEA,IAAA4B,EAAA5Z,EAAAvC,YAGAmc,EAAAntD,MAAA,SAAA1O,EAAA87D,GAEA//D,EAAAge,QAAA1c,EAAA67D,gBAAAx7D,OAAAo+D,OAGAD,EAAAx9D,OAAA,EAAA,GAGA,MAAAoqD,GACA7C,EAAA6C,EAAAzoD,OAGA64C,EAAA9+B,QAAAhY,EAAAtD,OAAAw6D,YAAA57D,EAAAs8D,aAEAt8D,EAAA28D,gBAAA,EAMA,SAAA+B,IACA,GAAA,GAAA1+D,EAAA48D,YACA,IAAA+B,EAAA3D,EAAA4D,yBAEAD,EAAA/Z,EAAAb,qBAEA,OAAA,EAOA,SAAAyZ,IAEA,GAAA,GAAAx9D,EAAA48D,YACA,MAAA,IAAAnxD,MAAA,8CAEA,IAAAozD,GAAA,EACAC,EAAAjgE,EAAAkgE,eAIAC,EAAAh/D,EAAA+8D,iBAEA,GAAA+B,GACA9+D,EAAA+8D,iBAAAx9D,EAAA+7D,0BACAt7D,EAAAg9D,iBAAAz9D,EAAA+7D,4BAEAt7D,EAAA+8D,iBAAAx9D,EAAA67D,wBACAp7D,EAAAg9D,iBAAAz9D,EAAA87D,yBAGAr7D,EAAA+8D,kBAAAiC,IACAH,GAAA,GAIA,IACAI,EADAP,IACAx6D,MAEAg7D,EAAAl/D,EAAA68D,aAaA,OAZA19D,EAAA4T,mBAAA/S,EAAAk8D,UAAAl8D,EAAA68D,aAAA78D,EAAA+8D,kBAEAx9D,EAAA27D,gBACAgE,EAAA//D,EAAAoU,mBAAAvT,EAAAk8D,UAAA38D,EAAA27D,cAAAl7D,EAAA+8D,mBAGA/B,EAAAmE,mBAAAD,GAEAA,GAAAD,IACAJ,GAAA,GAGA,EA4DA,SAAApB,IA1BA,IAIA2B,EAGAlD,EACAD,EAoBA,GAAAj8D,EAAA87D,cAxBAsD,EAFAV,IAEAx6D,MAGAg4D,EAAA38D,EAAA07D,cAAAmE,GAAA7/D,EAAA07D,cAAA,GAAAj7D,EAAA+8D,iBAAA,EAAAx9D,EAAAm8D,aACAO,EAAAj8D,EAAAi8D,WAEAj8D,EAAAk8D,UAAAA,EAEA/8D,EAAAiP,eAAAwoD,EAAAsF,EAAAD,GAGA98D,EAAAiP,eAAA2sD,EAAAmB,EAAAD,GAGAj8D,EAAAiX,WAAAilD,EACAl8D,EAAA0hC,YAAAu6B,GA7CA,WAEA,IAEAoD,EAFAX,IAEAz9D,OAGAi7D,EAAAl8D,EAAAk8D,UACAD,EAAA18D,EAAA47D,cAAAkE,GAAA9/D,EAAA47D,cAAA,GAAAn7D,EAAAg9D,iBAAA,EAAAz9D,EAAAm8D,aAEA17D,EAAAi8D,WAAAA,EAEA98D,EAAAiP,eAAAwoD,EAAAsF,EAAAD,GAGA98D,EAAAiP,eAAA2sD,EAAAmB,EAAAD,GAGAj8D,EAAAiX,WAAAilD,EACAl8D,EAAA0hC,YAAAu6B,EAsCAqD,GASA,SAAA/W,EAAAgX,GAEA,IAAAC,EAAAC,EAAAF,GACA,IAAA,GAAAC,EACA,OAAA,EAEA96D,EAAAg7D,SAAAF,EAAA,UA6WA,SAAAG,EAAAH,GAEA,GAAAA,GAAAx/D,EAAAm8D,UAAAqD,EAAA,EACA,MAAA,IAAA/zD,MAAA,QAAA9I,MAAA,oBAIA,OAAA,EAiDA,SAAAi9D,EAAA/yD,GAEA,IAAA4B,EAAAoxD,EAAAhzD,GACA,GAAA,GAAA4B,EACA,OAAA,EAEAssD,EAAAhb,MAAA,GAAA5Q,QAAA1gC,EAAA,CACA+gC,SAAAjwC,EAAAg8D,yBACA/yB,OAAAjpC,EAAAi8D,uBACArb,OAAA,IAQA,SAAA2f,IAGAF,GADA5/D,EAAAo8D,SAAAp8D,EAAAs8D,cAmCA,SAAAuD,EAAAhzD,GAEA,IAAAzI,EAAA,GAMA,OALA,GAAApE,EAAAw8D,qBACAp4D,EAAA6F,IAAA4C,EAAA,KAEAzI,EAAA4F,KAAA6C,EAAA,KAEA,EAsBA,SAAAkzD,IAEA,IAAAp2D,EAAAxK,EAAA6D,eAAA+3D,GAEA,OAAA,GAAA/6D,EAAAw8D,qBACA7yD,EAAA,IAEAA,EAAA,KAOA,SAAA81D,EAAAF,GAGA,OAAA,GA5KA,SAAAA,GAEA,GAAAA,EAAA,GAAAA,GAAAv/D,EAAAq8D,UACA,MAAA,IAAA5wD,MAAA,qBAAA8zD,GAIA,OAAA,EAqKAS,CAAAT,IACA,EAEAx7D,KAAAwF,MAAAg2D,EAAAv/D,EAAAu8D,iBA4CA,SAAA0D,IAEA,IAAAvrD,EAAAvV,EAAAwV,mBAAA3U,EAAAyU,eAGAm5C,EAAAmS,IACAG,QAAAn8D,KAAA8O,IAAA6B,EAAAyrD,cAAAvS,GAEA,IAAAwS,EAhHA,GAAApgE,EAAAw8D,qBACAx8D,EAAA,WAEAA,EAAA,UA8GAqgE,EAAAt8D,KAAAuF,MAAA,EAAA82D,EAAA,GAEA,OAAAF,SAAAG,GAGA3rD,EAAA2B,SAAA,KAAA6pD,QAAA,GAUA,SAAA/C,IAEA,OAAA,GAAAn9D,EAAAm8D,UAGAh9D,EAAAsX,0BAAAzW,EAAAyU,cAAAzU,EAAAw8D,sBAYA,SAAAjV,EAAAh9C,GAGA,GAAA,GAtEA,WAEA,GAAA,GAAAvK,EAAAm8D,SACA,OAAA,EAEA,IAAAznD,EAAAvV,EAAAwV,mBAAA3U,EAAAyU,eAEA24C,EAAA14C,EAAA2B,SAEAu3C,EAAAmS,IACArpD,EAAA3S,KAAA8O,IAAA+6C,EAAAl5C,EAAAyrD,eAEA,OAAAzpD,EAAA,IAGAA,EAAA,GAAA02C,EAAA,IAuDA/F,GACA,OAAA,EAGA,IAAAhI,EAAAh/C,OAAA6C,MACAy7C,EAAAiG,EAAAxD,eAAA/B,GAEAxgD,EAAAyoD,WAAA3I,GAOA,SAAAiQ,EAAArkD,GAEA,GAAA,GAAAvK,EAAAm8D,SACA,OAAA,EAEA,GAAA,GAAAn8D,EAAAy8D,YACA,OAAA,EAEA,GAAAz8D,EAAA48D,aACAryD,EAAAwiB,iBAEA/sB,EAAAy8D,aAAA,EAEA,IAAAlnD,EAAA,CACA4qD,cAAAJ,KAGA5gE,EAAAkW,eAAA9K,EAAAvK,EAAAyU,cAAAc,GA4BA,SAAAy5C,EAAAzkD,GAEA,GAAA,GAAAvK,EAAAy8D,YACA,OAAA,EAEAlyD,EAAAwiB,iBAEA5tB,EAAA+W,sBAAA3L,EAAAvK,EAAAyU,eAEA,IAAAC,EAAAvV,EAAAwV,mBAAA3U,EAAAyU,cAAAzU,EAAAw8D,sBAIA,GA/BA,GAAAj9D,EAAAo8D,6BAGA,GAAA37D,EAAAw8D,sBAKA,SAFAr9D,EAAAqV,gBAAAxU,EAAAyU,eA0BA,OAAA,EAGA,IAAAtE,EAAAuE,EAAA8B,aACAiyC,EAAA/zC,EAAAyrD,cAAAhwD,EACAy6B,EAAAz6B,EAAA,EAAA,OAAA,OACAmwD,EAAAtgE,EAAAo8D,SAAAp8D,EAAAm8D,SAAA,GAGA,GAAA58D,EAAAk8D,eAAAhT,EAAA,GAAA,QAAA7d,IACA6d,GAAA,GAKA,GAAAlpD,EAAAk8D,eAAAhT,GAAA6X,GAAA,QAAA11B,IACA6d,EAAA/zC,EAAAyrD,cAAAhwD,EAAA,GAtSA,SAAAtD,GAEA,IAAA4B,EAAAoxD,EAAAhzD,GACA,GAAA,GAAA4B,EACA,OAAA,EAEAssD,EAAA34D,IAAAqM,GAmSA8xD,CAAA9X,GASA,SAAAkG,EAAApkD,GAEA,GAAA,GAAAvK,EAAAy8D,YACA,OAAA,EAEAt9D,EAAA+W,sBAAA3L,EAAAvK,EAAAyU,eACA,IAAAC,EAAAvV,EAAAwV,mBAAA3U,EAAAyU,cAAAzU,EAAAw8D,sBAKA,GAFAx8D,EAAAy8D,aAAA,EAEA,GAAAwD,IAEA,OADAH,KACA,EAQA,SAJAC,IACArrD,EAAAyrD,cACA,EAAA,OAAA,QAIA,GAAA5gE,EAAAk8D,eAAA/2D,EAAA87D,aACAV,IAEAp7D,EAAA+7D,WAIA,GAAAlhE,EAAAk8D,eAAA/2D,EAAAg8D,cACAZ,IAGAp7D,EAAAi8D,WASA,SAAAlZ,IAEA,IAAA9I,EAAA9/C,EAAAqqD,kBACAtE,EAAA7B,iBAAApE,EAAAK,iBAEAuJ,EAAA5J,EAAAh8C,OAuCAO,KAAAC,QAAA,WAEA,GAAA,GAAAnD,EAAA48D,YAAA,CAEA,IAAAja,EAAAiU,EAAA1mC,KAAA,qBACAyyB,EAAAv/C,IAAA,SACAu/C,EAAAv/C,IAAA,YACA5E,EAAA+C,GAAA1C,EAAAuC,OAAAomD,aACA5C,EAAAzhD,eAGA63D,EAAA73D,UAGAyzD,EAAA9vD,OAAA,aACA8vD,EAAA9vD,OAAA,cACAzG,OAAA,QAAAyG,OAAA,aACAzG,OAAA,QAAAyG,OAAA,aAEAzG,OAAA2W,QAAAinB,IAAA,QAAAn3B,OAAA,YACAzG,OAAA2W,QAAAinB,IAAA,QAAAn3B,OAAA,WAEA00C,EAAAp4C,IAAAsB,EAAAtD,OAAAw6D,cAMA14D,KAAA09D,oCAAA,aAKA19D,KAAA8/C,mBAAA,SAAAhE,GAEA4F,EAAA5B,mBAAAhE,IAOA97C,KAAA4mD,mBAAA,SAAAnL,GAIA,OAFA8gB,EADA9gB,EAAAh8C,QAGA3C,EAAAs8D,aAOAp5D,KAAA29D,gCAAA,aAKA39D,KAAAm3D,8BAAA,SAAA4B,GAEA,GAAA,GAAAj8D,EAAA48D,YAEA,IAAAhb,EAAAriD,EAAA89D,iBAIAzb,EADAgD,EAAApB,aACAnH,aAGA,IAAAggB,EAAAzX,EAAAnB,eACAqd,EAAA/8D,KAAA0rC,KAAA4sB,EAAA98D,EAAA07D,eAEA8F,EAAAD,EAAAlf,GAAAkf,EAAA,GAAA9gE,EAAAg9D,iBAIA,OAFAj5D,KAAA0rC,KAAAsxB,EAAA9E,IAQA/4D,KAAAu3D,6BAAA,SAAAyB,GAEA,GAAAl8D,EAAA48D,YACA,IAAAjb,EAAApiD,EAAA+9D,gBAGA3b,EADAiD,EAAApB,aACApH,YAGA,IAAAigB,EAAAzX,EAAAnB,eACA5vC,EAAA9P,KAAA0rC,KAAA4sB,EAAA98D,EAAA47D,eAEAx7B,EAAA9rB,EAAA8tC,GAAA9tC,EAAA,GAAA7T,EAAA+8D,iBAIA,OAFAh5D,KAAA0rC,KAAA9P,EAAAu8B,IASAh5D,KAAA89D,2BAAA,SAAA98D,GAEA,GAAA,GAAAlE,EAAA48D,YACA,MAAA,IAAAnxD,MAAA,4CAEA,IAAA4wD,EAAAzX,EAAAnB,eACA5vC,EAAA1U,EAAA4T,mBAAA7O,EAAA3E,EAAA+9D,WAAAt9D,EAAA+8D,kBACA+D,EAAA/8D,KAAA0rC,KAAA4sB,EAAAxoD,GAEAitD,EAAAvhE,EAAA47D,gBACA2F,EAAAvhE,EAAA47D,eAEA,IAAAc,EAAA98D,EAAAiU,mBAAA0tD,EAAAvhE,EAAA89D,YAAAr9D,EAAAg9D,kBAGA,OAFAf,GAAA,EAAA18D,EAAAm8D,cAQAx4D,KAAAmzD,WAAA,WACA,OAAA,GAMAnzD,KAAA0uD,QAAA,WAGA,OADAzyD,EAAA6D,eAAA4zD,IAQA1zD,KAAAg1D,YAAA,WAEA,OAAAl4D,EAAA,UAMAkD,KAAAw9D,YAAA,WAEA,OAAA,GAAA1gE,EAAAs8D,aAUAp5D,KAAAs9D,WAAA,WAEA,OAAAxgE,EAAAs8D,aAAAt8D,EAAAm8D,SAAA,GAUAj5D,KAAA+9D,YAAA,WAOA,MALA,CACAC,KAAAlhE,EAAAs8D,YACA6E,MAAAnhE,EAAAm8D,WAUAj5D,KAAAk+D,QAAA,WAEA,OAAAphE,EAAA,aAOAkD,KAAAqzD,SAAA,SAAA2F,GACAl8D,EAAAk8D,UAAAA,EACAl8D,EAAA87D,cAAA,GAOA54D,KAAAw3D,YAAA,SAAAhyD,GACA1I,EAAAk8D,UAAAxzD,EACA1I,EAAAg8D,YAAA,EACAh8D,EAAA87D,cAAA,GAOA54D,KAAA+0C,UAAA,SAAAgkB,GACAj8D,EAAAi8D,WAAAA,EACAj8D,EAAA87D,cAAA,GAQA54D,KAAAo3D,aAAA,SAAA3xD,GACA3I,EAAAi8D,WAAAtzD,EACA3I,EAAA+7D,aAAA,EACA/7D,EAAA87D,cAAA,GAQA54D,KAAAw8D,SAAA,SAAA/8D,EAAA6/C,GAEA,GAAA,GAAAmd,EAAAh9D,GACA,OAAA,EAEA,GAAAA,GAAA3C,EAAAs8D,YACA,OAAA,EAEA,IAAA7T,GAAAzoD,EAAAo8D,SAAAz5D,GAEA3C,EAAAs8D,YAAA35D,EACAi9D,EAAAnX,GAGAjN,EAAA9+B,QAAAhY,EAAAtD,OAAAw6D,YAAAj5D,IAOAO,KAAAu9D,SAAA,WAEA,IAAAY,EAAArhE,EAAAs8D,YAAA,EAEA,GAAA+E,GAAArhE,EAAAm8D,SAAA,CAEA,GAAA,GAAA58D,EAAAk8D,cACA,OAAA,EAEA4F,EAAA,EAGA38D,EAAAg7D,SAAA2B,EAAA,SAOAn+D,KAAAy9D,SAAA,WAEA,IAAAW,EAAAthE,EAAAs8D,YAAA,EACA,GAAAgF,EAAA,IACAA,EAAAthE,EAAAm8D,SAAA,EAEA,GAAA58D,EAAAk8D,eACA,OAAA,EAGA/2D,EAAAg7D,SAAA4B,EAAA,SAOAp+D,KAAA62D,qBAAA,SAAAjpD,GAIA,GAFA3R,EAAAkd,iBAAAvL,EAAApM,EAAA+7D,UAEA,GAAAlhE,EAAAk8D,cACA,OAAA,EAEA/2D,EAAA87D,cACA1vD,EAAA7O,SAAA,sBAGAu5C,EAAAj6C,GAAAmD,EAAAtD,OAAAw6D,aAAA,WAEAl3D,EAAA87D,aACA1vD,EAAA7O,SAAA,sBAEA6O,EAAAc,YAAA,0BAUA1O,KAAA42D,qBAAA,SAAAhpD,GAIA,GAFA3R,EAAAkd,iBAAAvL,EAAApM,EAAAi8D,UAEA,GAAAphE,EAAAk8D,cACA,OAAA,EAEA/2D,EAAAg8D,eACA5vD,EAAA7O,SAAA,sBAGAu5C,EAAAj6C,GAAAmD,EAAAtD,OAAAw6D,aAAA,WAEAl3D,EAAAg8D,cACA5vD,EAAA7O,SAAA,sBAEA6O,EAAAc,YAAA,0BAUA1O,KAAAq+D,cAAA,SAAAC,GAEAA,EAAAC,UAAAzhE,EAAAs8D,aAEAj8D,OAAAmhE,GAAAjgE,GAAAigE,EAAApgE,OAAAsgE,cAAA,SAAAj/D,EAAAk/D,GACAj9D,EAAAg7D,SAAAiC,EAAA,SACAH,EAAAC,UAAAE,MAGAthE,OAAAqE,GAAAnD,GAAAmD,EAAAtD,OAAAw6D,aAAA,SAAAn5D,EAAAm/D,GACAJ,EAAAC,UAAAG,OASA1+D,KAAApC,iBAAA,WACA,OAAAk6D,GAOA93D,KAAArC,KAAA,SAAAV,EAAAC,EAAAw8D,GAEA/7D,EAAAV,EAAAC,EAAAw8D,IAQA15D,KAAAnB,IAAA,WACAA,KAOAmB,KAAAX,QAAA,SAAA0yD,IAv5CA,SAAAA,GAEA,IAAA9sD,EAAAzJ,EAEAu2D,IACA9sD,EAAA8sD,GAEA9sD,EAAAjG,OAAA,8EACA00D,EAAAzuD,EAAAhG,SAAA,mBACA44D,EAAAnE,EAAAz0D,SAAA,yBAIA,GAAAnC,EAAA48D,YACA5B,EAAAz4D,QAAAw4D,GAEAnW,EAAA5C,cAAA+Y,GAy4CAx4D,CAAA0yD,IAUA,SAAAj2D,UAEA,IACAR,EAAAE,EAAA68C,EAGAsmB,EAAAC,EAJAp9D,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAK,EAAA,IAAAC,YAAAC,EAAA,IAAAC,aACAslD,EAAA,IAAAvJ,gBAAA0mB,EAAA,GAIAxiE,EAAA,CACAyiE,WAAA,UACAC,gBAAA,IACAC,YAAA,SACAC,mBAAA,EACAC,yBAAA,EACAC,gCAAA,EACAC,uBAAA,EACAC,kBAAA,EACAC,kBAAA,EACAhiE,kBAAA,EACAiiE,0BAAA,EAEAC,2BAAA,IACAC,8BAAA,EAEAC,gCAAA,IACAC,uBAAA,KACAC,oBAAA,EAEAC,yBAAA,GAGA7/D,KAAA9B,OAAA,CACA4hE,kBAAA,oBACA3hE,mBAAA,qBACA4hE,iBAAA,oBAGA,IAAAjjE,EAAA,CACA28D,gBAAA,EACAt3D,OAAA,KACA69D,eAAA,EACAC,eAAA,EACAC,eAAA,EACAC,aAAA,GAGAC,EAAA,CACA5vD,SAAA,KACA6vD,kBAAA,EACAjL,MAAA,EACAkL,WAAA,EACAC,iCAAA,EACAC,yBAAA,EACAC,YAAA,EACAC,WAAA,KACAC,iBAAA,KACAC,SAAA,GAUA,SAAAjjE,EAAAV,EAAAC,GAEA3B,UAAA0B,EAAAS,aACA/B,EAAAsB,EACA3B,EAAA6B,OAAAF,GACAzB,EAAAD,UAAAC,aACAD,UAAA68C,WAEA/7C,EAAAc,OAAAC,OAAAf,EAAAa,GAcA,WAEAb,EAAAgjE,kBAAA,IACAhjE,EAAAgjE,kBAAA,GAGA,GAAAhjE,EAAAijE,mBAAAjjE,EAAAijE,kBAAAjjE,EAAAgjE,oBACAhjE,EAAAijE,kBAAAjjE,EAAAgjE,mBAnBA9hE,GAEApB,EAAAwB,KAAAV,EAAAZ,GAEAqlD,EAAAvlD,EAAAmsD,eA+CA,SAAAuY,IAQA,GALAxoB,EAAAt5C,SAAA,sBAEAjC,EAAAmjE,eAAA,EAGA,GAAA5jE,EAAAwjE,wBAAA,CACAxnB,EAAAt5C,SAAA,oBAGA,IAAA+hE,EAAA3kE,EAAAmkD,aAEA,GAAAwgB,EAAAC,0BAAA,GAAAD,EAAAE,2BACA3oB,EAAAt5C,SAAA,6BAEAjC,EAAAkjE,eAAA,GASA,SAAAiB,IACA,OAAAhlE,EAAA6D,eAAAu4C,GAAAr3C,MAOA,SAAAkgE,IAEA,OAAA,GAAApkE,EAAAmjE,gBAGA5nB,EAAAt5C,SAAA,8BACAs5C,EAAA3pC,YAAA,sBAGA,GAAA5R,EAAAkjE,oBAGA7jE,EAAAglE,iBAOA,SAAAC,IAEA,GAAA,GAAAtkE,EAAAmjE,cACA,OAAA,EAEA5nB,EAAA3pC,YAAA,8BACA2pC,EAAAt5C,SAAA,sBAOA,SAAAsiE,IAGA,GAAAvkE,EAAAkjE,eAGApnD,YAAA,WAEAzc,EAAAmlE,eACAnlE,EAAAolE,iCAEAH,MAGA,KAGAtkE,EAAAqF,QACAwW,aAAA7b,EAAAqF,QAEArF,EAAAqF,OAAAyW,YAAA,WAEAwoD,IAEAjlE,EAAAolE,iCACAzkE,EAAAqF,OAAA,OAEA,OAKAhG,EAAAolE,iCAEAH,KAYA,SAAAI,IAEA3C,EAAAruD,UAAAquD,EAAA4C,WAAA5C,EAAApuD,QAAAouD,EAAAluD,QAAA,IAAAkuD,EAAAluD,QACAkuD,EAAAruD,SAAA3P,KAAAwF,MAAAw4D,EAAAruD,UAEAquD,EAAApiC,WAAAxgC,EAAAiU,mBAAA2uD,EAAAluD,QAAAkuD,EAAAruD,SAAAquD,EAAApuD,QASA,SAAAixD,IAqBA,GAnBA7C,EAAAruD,SAAAnU,EAAA0iE,gBACAF,EAAA8C,QAAAtlE,EAAAgjE,kBACAR,EAAA+C,QAAAvlE,EAAAijE,kBAEA,GAAA3jE,EAAAkgE,eACAgD,EAAApuD,OAAApU,EAAA6iE,yBAEAL,EAAApuD,OAAApU,EAAA8iE,gCAIAN,EAAAgD,aAAAZ,IAEApC,EAAA4C,WAAA5C,EAAAgD,aAEA,GAAAxlE,EAAA+iE,wBACAP,EAAA4C,WAAA5C,EAAAgD,aAAA,EAAAhD,EAAApuD,QAGA,GAAApU,EAAA4iE,kBAEAJ,EAAAluD,QAAA1U,EAAA4T,mBAAAgvD,EAAA4C,WAAA5C,EAAAruD,SAAAquD,EAAApuD,QAEAouD,EAAA+C,QAAA,GAAA/C,EAAAluD,QAAAkuD,EAAA+C,UACA/C,EAAAluD,QAAAkuD,EAAA+C,SAGA/C,EAAAluD,QAAAkuD,EAAA8C,SACA9C,EAAAluD,QAAAkuD,EAAA8C,QAEAH,KAGA3C,EAAApiC,WAAAoiC,EAAAluD,SAAAkuD,EAAAruD,SAAAquD,EAAApuD,QAAAouD,EAAApuD,WAGA,CAIA,IAAAE,EAAA1U,EAAAgU,wBAAA4uD,EAAA4C,WAAA5C,EAAAruD,SAAAquD,EAAApuD,QAEAE,EAAAkuD,EAAA8C,QACAhxD,EAAAkuD,EAAA8C,QAEA,GAAA9C,EAAA+C,SAAAjxD,EAAAkuD,EAAA+C,UACAjxD,EAAAkuD,EAAA+C,SAEA/C,EAAAluD,QAAAA,EAEA6wD,IAIA,OAAAnlE,EAAA2iE,aACA,IAAA,SACA,QAEAH,EAAAiD,KAAAjhE,KAAAuF,OAAAy4D,EAAAgD,aAAAhD,EAAApiC,YAAA,GACA,MACA,IAAA,OACAoiC,EAAAiD,KAAA,EACA,MACA,IAAA,QACAjD,EAAAiD,KAAAjD,EAAAgD,aAAAhD,EAAApiC,WAMA,IADAoiC,EAAAkD,QAAA,GACAxxD,IAAA,EAAAA,IAAAsuD,EAAAluD,QAAAJ,MAAA,CACA,IAAAyxD,EAAA/lE,EAAAqU,QAAAC,IAAAsuD,EAAAruD,SAAAquD,EAAApuD,QACAouD,EAAAkD,QAAAxxD,KAAAyxD,EAAAnD,EAAAiD,MASA,SAAAG,IAEApD,EAAAqD,aAAA,EAGArD,EAAAsD,WAAA,CAAA,GAiCA,SAAAC,EAAA5iE,EAAA6iE,EAAAC,EAAAC,GAEA,GAAAA,MAAAA,EACAA,EA3BA,WACA,IAAAA,EAAA,EAEAC,EAAA,UAEA,IAAAjyD,IAAA,EAAAA,IAAAsuD,EAAAluD,QAAAJ,MAAA,CAEA,GAAA1J,MAAAg4D,EAAAsD,WAAA5xD,MAAA,GAAAsuD,EAAAsD,WAAA5xD,KACA,OAAAA,IAEAsuD,EAAAsD,WAAA5xD,KAAAiyD,IACAD,EAAAhyD,IACAiyD,EAAA3D,EAAAsD,WAAA5xD,MAKA,OAAA,EAUAkyD,GAGA,IAAAj2D,EAAA,OACA3F,IAAAg4D,EAAAsD,WAAAI,KACA/1D,EAAAqyD,EAAAsD,WAAAI,IAEA,IAAAG,EAAAvmE,EAAAwmE,qBAAA9D,EAAAruD,SAAAhR,GAEA,GAAA,OAAAkjE,EAAA,CACA,GAAA,GAAArmE,EAAAwjE,wBACA,MAAA,IAAAt3D,MAAA,sDAGAm6D,EADAzmE,EAAA6D,eAAAN,GACAzB,OAGA,IAAA0O,EAAAoyD,EAAAkD,QAAAQ,GAEAtmE,EAAA+B,aAAAwB,EAAAiN,EAAAD,GAEA,IAAAo2D,EAAAp2D,EAAAk2D,EAEA7D,EAAAsD,WAAAI,GAAAK,EAAA/D,EAAApuD,OAGAouD,EAAAqD,aAAAU,IACA/D,EAAAqD,aAAAU,GAEA,GAAAP,GACA7iE,EAAAI,OAAA9B,OAAA,EAAA,GAEA,GAAAwkE,GACAjqB,EAAAt6C,OAAA8gE,EAAAqD,cASA,SAAAW,EAAAR,GAEAA,IACAA,GAAA,GAEAX,IACAO,IAEA,IAAAxiB,EAAAiC,EAAAvC,UAAAuC,EAAAvqC,KAAAqhC,kBAGA0oB,IAGA/kE,EAAA2mE,eAAAjE,EAAAruD,SAAArU,EAAA4mE,WAAAC,iBAAAvjB,GAGA,IAAA,IAAAhgD,EAAA,EAAAA,EAAAggD,EAAA73C,OAAAnI,IAAA,CACA,IAAAD,EAAArC,OAAAsiD,EAAAhgD,IACA8Q,OAAA1J,EACA,GAAAxK,EAAAiB,mBACAiT,EAAAtU,EAAAyU,cAAAmuD,EAAAluD,QAAAlR,IAEA2iE,EAAA5iE,EAAA6iE,GAAA,EAAA9xD,GAIA8wD,IAGA,IAAAxhE,EAAAw4C,EAAAt6C,SAEA,GAAAjB,EAAAkjE,eAAAngE,EAAAg/D,EAAAqD,aACAtpD,YAAA,WACAy/B,EAAAt6C,OAAA8gE,EAAAqD,gBACA,KAEA7pB,EAAAt6C,OAAA8gE,EAAAqD,cAmCA,SAAAe,EAAAzjE,EAAA4+C,GAEA,IAAA,IAAAA,GAIA,GAlCA,SAAA5+C,GAEA,IAAAC,EAAAD,EAAAC,QAIA,IAAA,IADA9D,EAAAunE,QAAAzjE,GACA0jE,eACA,OAAA,EAGA,IAAAC,EAAAnnE,EAAA8U,uBAAAtR,EAAAo/D,EAAAluD,SAGA,OAAAyyD,EAAA,IAKA,IADAznE,EAAAunE,QAAAE,GACAD,eAcAE,CAAA7jE,GAGA,OAAA,EAGA,IAAAC,EAAAD,EAAAC,QAEA8Q,EAAAtU,EAAAyU,cAAAmuD,EAAAluD,QAAAlR,GAEAg8C,EAAA9/C,EAAAunE,QAAAzjE,GAEAtD,EAAAmnE,WAAA9jE,EAAAq/D,EAAAruD,UAEA4xD,EAAA5iE,GAAA,GAAA,EAAA+Q,GAEAkrC,EAAA0nB,gBAAA,EAGA,IAAAhzD,EAAAxU,EAAAujD,cACA/qB,EAAAl4B,EAAA+U,uBAAAvR,EAAAo/D,EAAAluD,SACA,GAAAwjB,GAAAhkB,EACA,OAAA,EAEA,IAAAozD,EAAA7hB,EAAAjB,gBAAAtsB,GACAy+B,EAAAj3D,EAAAunE,QAAA/uC,GAEAutB,EAAAd,cAAA2iB,GAEA7hB,EAAAd,cAAA2iB,KAAA3Q,EAAAuQ,gBACAF,EAAAM,GAAA,GAiCA,SAAAC,IAGA,IAAA/jB,EAAAiC,EAAAvC,UAAAuC,EAAAvqC,KAAAshC,qBAEA,IAAAgH,GAAA,GAAAA,EAAA73C,OACA,OAAA,EAIA,GAFA9K,EAAAqjE,aAAA,EAEA,GAAArjE,EAAAojE,cAAA,CAEAwB,IACAO,IAEA,IAAAwB,EAAA5iE,KAAA8O,IAAAkvD,EAAAgD,aAAAhD,EAAApiC,YAGA,GAAA,GAAApgC,EAAAkjE,0BAAA,GAAAtjE,EAAA4X,qBAAA4vD,EAAA,GAAA,CAEAhkB,EAAA73C,OAAA,IAEA87D,EADA7iE,KAAA0rC,KAAAkT,EAAA73C,OAAAi3D,EAAAluD,SACAtU,EAAA0iE,gBAAA,IAEA1mB,EAAAt6C,OAAA2lE,GACAhC,KAMAjiB,EAAA3hD,OAAA,EAAA,GACA,IAAAyc,EAAAklC,EAAAzyB,KAAA,sBAEA22C,EAAA9E,EAAAluD,QACAizD,EAAA/E,EAAAgD,aAGA5lE,EAAAqe,kBAAAC,GAAA,WAEAmnD,IAEAiC,GAAA9E,EAAAluD,SAAAizD,GAAA/E,EAAAgD,cACAgB,GAAA,GAGAhC,IACAvoB,EAAA9+B,QAAAhY,EAAAtD,OAAA6hE,qBAEA,SAAAj7D,EAAAgW,GAEA,GAAAhe,EAAAojE,eACAvkE,EAAAo+B,aAAAv4B,EAAAtD,OAAAC,oBA9EA,SAAA2G,EAAAgW,GAEA,GAAA,GAAAA,EACA,OAAA,EAEAhW,EAAA3H,OAAA2H,GACA,IAAAtF,EAAArC,OAAA2H,GAAAI,SAEAw8C,EAAApD,wBAAA9+C,EAAAsF,GAEA,GAAAzI,EAAAiB,iBAEA2lE,EAAAzjE,IAIArD,EAAAmnE,WAAA9jE,EAAAq/D,EAAAruD,UACA4xD,EAAA5iE,GAAA,GAAA,IA+DAqkE,CAAA/+D,EAAAgW,MAcA,SAAAgpD,IAEA,IAAAjC,EAAAZ,IAEA3F,EAAA5Z,EAAAvC,WAAA,GACA4kB,EAAA1nE,EAAAmjE,2BACAwE,EAAA,GACAvnC,EAAA,EACAwnC,EAAA5nE,EAAAojE,8BACAyE,EAAA5I,EAAA1zD,OAGAzK,OAAAgR,KAAAmtD,GAAA,SAAA77D,EAAAD,GACAA,EAAArC,OAAAqC,GAEA,IAAAi8C,EAAAiG,EAAAxD,eAAA1+C,GAEAw8D,EAAAvgB,EAAAgD,WACAhD,EAAAiD,cAEAqlB,IACA/H,EAAAn7D,KAAAwF,MAAAo1C,EAAAkD,kBAAAolB,IAEAC,EAAAvkE,GAAAu8D,EAEAv/B,GAAAu/B,KAIA,IAAA4B,EAAA/8D,KAAA0rC,KAAA9P,EAAAolC,GAEAjE,EAAAsG,IACAtG,EAAAsG,GAEA,IAAAC,EAAA1nC,EAAAmhC,EAGAwG,EAAA,GAAAC,EAAA,EACAC,EAAA,GAAAzzD,EAAA,GACA0zD,EAAA,EAAAC,EAAA,EAEArnE,OAAAgR,KAAAmtD,GAAA,SAAA77D,EAAAD,GACA,IAAAw8D,EAAAgI,EAAAvkE,GAEA8kE,EAAAvI,EAAA,GAAAwI,EAAA,GAAAL,IAEAG,EAAAF,EAAAx8D,QAAAy8D,EACAD,EAAAttD,KAAAjG,GACAA,EAAA,GACAwzD,EAAA,EACAG,KAGAD,GAAAvI,EACAqI,GAAArI,EAEAnrD,EAAAiG,KAAAtX,MAGA8kE,EAAAF,EAAAx8D,QAAAy8D,EACAD,EAAAttD,KAAAjG,GAIA,IAAA4zD,EAAA,GACAC,EAAA,GACA7G,EAAA,EAsEA,OApEA1gE,OAAAgR,KAAAi2D,GAAA,SAAA3kE,EAAAoR,GAEAA,EAAAjJ,OAAA,IACA+8D,EAAAL,EAAA7kE,GAEAmlE,GAAA/zD,EAAAjJ,OAAA,GAAAq8D,EAEA99D,GAAA07D,EAAA+C,GAAAD,EACAE,EAAAhkE,KAAAuF,MAAA29D,EAAA59D,GAGA03D,GAAAgH,EACAplE,EAAA,IACAo+D,GAAAoG,GAEAS,EAAA5tD,KAAA+tD,GAGA,IAAAC,EAAAD,EAAAd,EAGAgB,EAAA,GACAC,EAAAJ,EAEAznE,OAAAgR,KAAA0C,GAAA,SAAAo0D,EAAA1J,GACA,IACA2J,EADA/nE,OAAAo+D,GACA97D,QACAu8D,EAAAgI,EAAAkB,GACA96D,EAAAvJ,KAAAuF,MAAA41D,EAAA8I,GAEAC,EAAAE,GAAA76D,EACA46D,GAAA56D,KAIA,IAAA6C,EAAA+3D,EAAAnD,EAGA1kE,OAAAgR,KAAA42D,GAAA,SAAAE,EAAAjkE,GAEA,GAAA,GAAAiM,EACA,OAAA,EAEAA,EAAA,GACA83D,EAAAE,GAAAjkE,EAAA,EACAiM,MAEA83D,EAAAE,GAAAjkE,EAAA,EACAiM,KAIAg4D,GAAAF,EAAAn9D,OAAA,GAAA,GAAAqF,IACA83D,EAAAE,IAAAh4D,MAGAw3D,EAAAhlE,GAAAslE,KAIA,CACAX,QAAAA,EACAK,aAAAA,EACAC,cAAAA,EACAT,IAAAA,EACApG,YAAAA,GAUA,SAAAsH,EAAA9C,GAEA,IAAAA,EACAA,GAAA,EAEA,IAAA17D,EAAAs6D,IAEAzvD,EAAAsyD,IAGAzrB,EAAAt6C,OAAAyT,EAAAqsD,aAEAoD,KACAt6D,IACA6K,EAAAsyD,KAEA5C,IAEA,IAAA10D,EAAA,EACAiwB,EAAA,EACAt/B,OAAAgR,KAAAqD,EAAA4yD,SAAA,SAAA3kE,EAAAoR,GAEA,IAAAk0D,EAAAvzD,EAAAizD,aAAAhlE,GACAolE,EAAArzD,EAAAkzD,cAAAjlE,GAGAgN,EAAA,EACAtP,OAAAgR,KAAA0C,GAAA,SAAAo0D,EAAA1J,GAEA,IAAA/7D,EAAArC,OAAAo+D,GACA6J,EAAAP,EACA7I,EAAA+I,EAAAE,GAEA9oE,EAAAmnE,WAAA9jE,EAAAw8D,EAAAoJ,EAAAjpE,EAAA4mE,WAAAC,kBACA/mE,EAAA+B,aAAAwB,EAAAiN,EAAAD,IAEAC,GAAAuvD,GAEAv/B,IACAA,EAAAhwB,GAEAA,GAAA+E,EAAAyyD,IAEA,GAAA5B,GACAllE,OAAAo+D,GAAA37D,UAIA4M,GAAAq4D,EAAArzD,EAAAyyD,OAIA5C,IAoFA,SAAAgE,IAEA,IAAAxD,EAAAZ,IA2CA,OA1CAb,EAAAyB,aAAAA,EAEAlD,EAAA,GACAyB,EAAA5vD,SAAAnU,EAAAsjE,uBACAS,EAAAO,iBAAAtkE,EAAAqjE,gCAEAU,EAAAM,WAAArkE,EAAA6iE,yBAEA,GAAAvjE,EAAAkgE,iBACAuE,EAAAM,WAAArkE,EAAA8iE,iCAEA,MAAAiB,EAAA5vD,SACA4vD,EAAA5vD,SAAA3P,KAAAwF,MAAA+5D,EAAAO,iBAAAP,EAAAC,mBACAD,EAAAO,iBAAAP,EAAA5vD,SACA4vD,EAAAC,kBAAAx/D,KAAA0rC,KAAA6zB,EAAAO,iBAAAP,EAAA5vD,UAEA4vD,EAAAC,kBAAA,EAGAD,EAAAE,WAAArkE,EAAA4T,mBAAAgyD,EAAAzB,EAAA5vD,SAAA4vD,EAAAM,YAGAN,EAAA5vD,SAAAvU,EAAAoU,mBAAAwxD,EAAAzB,EAAAE,WAAAF,EAAAM,YAEAN,EAAAhL,MAAA,EACAwJ,EAAA,GAEAld,EAAAvC,WAAA,GACAhxC,MAAA,WACA,IACAm3D,EA8DA,SAAA9lE,GAEA,IAAA+lE,EAAAC,EACA9kE,EAAA,GAEA8P,EAAA4vD,EAAA5vD,SACAo0D,EAAAxE,EAAAM,WAEA+E,EAAAtpE,EAAAupE,iBAAAlmE,GACAC,EAAAD,EAAAC,QAEAkmE,EAAA9kE,KAAA0rC,KAoCA,SAAA9sC,GACA,OAAAoB,KAAA8O,IAAA9O,KAAA+kE,IAAA/kE,KAAA8O,IAAA,IAAA9O,KAAA+kE,IAAAnmE,MArCAomE,CAAApmE,IAAA,EAAA2gE,EAAAC,kBAAA,GAAA,EAAAD,EAAAC,kBAAA,GAEAyF,EAAAL,EAAAzkE,MACA+kE,EAAAN,EAAA1nE,OAEAoI,EAAA2/D,EAAAC,EAEAD,EAAAC,GACAR,EAAAI,EAEA,IADAH,EAAA3kE,KAAAuF,MAAAm/D,EAAAp/D,MAEAq/D,EAAA,KAGAA,EAAAG,EAEA,IADAJ,EAAA1kE,KAAAuF,MAAAo/D,EAAAr/D,MAEAo/D,EAAA,IAYA,OARA7kE,EAAA6kE,SAAAA,EACA7kE,EAAA8kE,UAAAA,EACA9kE,EAAAM,MAAAukE,EAAA/0D,EAAAo0D,GAAAW,EAAA,GACA7kE,EAAA3C,OAAAynE,EAAAh1D,EAAAo0D,GAAAY,EAAA,GACA9kE,EAAAolE,SAAAA,EACAplE,EAAAqlE,UAAAA,EACArlE,EAAAoG,KAAA,EACApG,EAAAqG,IAAA,EACArG,EAtGAslE,CADA7oE,OAAA6C,OAEA4+D,EAAA9nD,KAAAwuD,MAGAlF,EAAAO,iBAAAP,EAAA5vD,SACA4vD,EAAAC,kBAAAx/D,KAAA0rC,KAAA6zB,EAAAO,iBAAAP,EAAA5vD,UAEA4vD,EAAAC,kBAAA,EAGAD,EAAA3jC,WAAA2jC,EAAAE,YAAAF,EAAA5vD,SAAA4vD,EAAAM,YAAAN,EAAAM,WAEArkE,EAAA2iE,aACA,IAAA,SACA,QAEAoB,EAAA0B,KAAAjhE,KAAAuF,OAAAg6D,EAAAyB,aAAAzB,EAAA3jC,YAAA,GACA,MACA,IAAA,OACA2jC,EAAA0B,KAAA,EACA,MACA,IAAA,QACA1B,EAAA0B,KAAA1B,EAAAyB,aAAAzB,EAAA3jC,WAKA2jC,EAAAQ,SAAA,EAOA,SAAAqF,EAAA5D,GAEA,IAAA17D,EAAAs6D,IAEAoE,IACAa,IAEA,IAAArI,EAAAuC,EAAAQ,UAAAR,EAAA5vD,SAAA4vD,EAAAM,YAAAN,EAAAM,WAGAroB,EAAAt6C,OAAA8/D,GAEAoD,KAEAt6D,IACA0+D,IACAa,KAGA,GAAA7pE,EAAAujE,oBAimBA,SAAAyC,GAEA,IAAAA,EACAA,GAAA,EAEAnB,IAEA,IAAA,IAAAjsD,EAAA,EAAAA,EAAA2pD,EAAAh3D,OAAAqN,IACAkxD,EAAAlxD,EAAAotD,GAGAhqB,EAAAt6C,OAAAqiE,EAAA8B,cAEAb,IA7mBA+E,CAAA/D,GAsFA,SAAA6D,EAAAG,GAEA,GAAA,GAAAhqE,EAAAujE,mBAOA,YALA,IAAAyG,IACAA,GAAA,GA5BA,SAAAhE,EAAAgE,GAEA,GAAA,GAAAA,EAAA,CACA,IAAA,IAAApxD,EAAAmrD,EAAAK,YAAAxrD,EAAA2pD,EAAAh3D,OAAAqN,IACAqxD,EAAArxD,GAAA,GAEAmrD,EAAAK,YAAA7B,EAAAh3D,OAAA,OAEA0+D,EAAAlG,EAAAK,aAAA,GAGA,IAAAxrD,EAAA,EAAAA,GAAAmrD,EAAAK,YAAAxrD,IACAkxD,EAAAlxD,GAAA,GAGAmrD,EAAAK,cAeA8F,CAAA,EAAAF,IAEA,EAGA,IAAA,IAAApxD,EAAA,EAAAA,EAAA2pD,EAAAh3D,OAAAqN,IACAqxD,EAAArxD,GAAA,GAQA,SAAAqxD,EAAAE,EAAAnE,GAEA,IAAAA,EACAA,GAAA,EAEAjC,EAAA8B,aAAA,EAIA,IAFA,IAAAuE,EAAAxqE,EAAAsf,gBAAAojD,GAEA9tD,EAAAuvD,EAAAhL,MAAAvkD,GAAA41D,EAAA,EAAA51D,IAAA,CACA,IAAA,IAAA61D,EAAA,EAAAA,EAAAtG,EAAAE,WAAAoG,IAAA,CACA,GAAA,GAAAC,EAAAvG,EAAAhL,QAAA,GAAAwR,EAAAxG,EAAAhL,MAAAsR,GAIA,YAFAG,EAAAL,EADAM,EAAAJ,GACAA,GAKAtG,EAAAhL,SASA,SAAAyR,EAAAL,EAAAO,EAAAL,GAEA,IAAApB,EAAAnoE,OAAAC,QAAA,EAAA,GAAAwhE,EAAA4H,IACAQ,EAAA1B,EAAAC,SACA0B,EAAAF,EAAAzB,EAAAC,SACA2B,EAAA9G,EAAAC,kBAIA,GAHA0G,GAAAzB,EAAAC,UAAA0B,GAAA,IAAAC,GAAAH,GAAAG,EAIAC,EAAAX,EAAAO,QACA,GAAAE,GAAAC,EACAA,GAAA,EACA,GAAAE,EAAAvmE,KAAAwF,MAAA0gE,EAAA,GAAAL,GACAS,EAAAX,EAAA3lE,KAAAwF,MAAA0gE,EAAA,GAAA,GAEAI,EAAAX,EAAA3lE,KAAAwF,MAAA0gE,EAAA,IAGAI,EAAAriE,SAAAiiE,QAGA,GAAA,GAAAK,EAAAJ,EAAAN,GACA,OAAAM,GAAAE,GACA,KAAA,EACAC,EAAAX,EAAAQ,EAAA,GACA,MACA,KAAA,EACAG,EAAAX,EAAAQ,EAAA,GASA,IAAAK,EA6KA,SAAAb,EAAAjB,EAAAmB,GACA,IAAAY,EAAAlH,EAAAhL,MAAA,EACAmS,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,GACAC,EAAA,GAEA,GADAD,EAAA5wD,KAAA0vD,GACAc,GAAA,EAAA,CAEA,IADAE,EAAA,EACAF,GAAA,GAAA,CAEA,GADAC,EAAA5I,EAAA2I,GAAAZ,QACA,IAAA/H,EAAA2I,GAAAZ,EAAA,IAAA/H,EAAA2I,GAAAZ,EAAA,IAAA/H,EAAA2I,GAAAZ,SACA,IAAA/H,EAAA2I,GAAAZ,EAAAnB,IAAA5G,EAAA2I,GAAAZ,EAAAnB,EAAA,IAAA5G,EAAA2I,GAAAZ,EAAAnB,IACA5G,EAAA2I,GAAAZ,IAAA/H,EAAA2I,GAAAZ,EAAAnB,EAAA,GAQA,OAFAoC,EAAA7wD,KAAA2wD,GACAE,EAAA7wD,KAAA4wD,GACAC,EAPAH,GAAAD,IACAE,IACAC,EAAA5wD,KAAAywD,IAOAD,IACAE,EAAAD,EAIA,OAFAI,EAAA7wD,KAAA2wD,GACAE,EAAA7wD,KAAA4wD,GACAC,EAEA,MAAA,CAAA,EAAA,IA5MAC,CAAApB,GADAlB,EAAAnoE,OAAAC,QAAA,EAAA,GAAAwhE,EAAA4H,KACAjB,SAAAmB,GAEA,GAAAtG,EAAAG,kCAAA8G,EAAA,IAAAjH,EAAAE,YAAA,EAAAF,EAAAC,kBAAA,CAEA,IAAAwH,EA8MA,SAAAnB,EAAApB,GACA,IAAAwC,EAAA,EACAC,EAAA,EACAxC,EAAAD,EAAAC,SACAC,EAAAF,EAAAE,UACAwC,EAAA,EACAC,EAAA,EACAC,EAAA/qE,OAAAimC,IAAAu7B,GAAA,SAAA/9D,EAAAnB,GACA,MAAA,CAAAmB,MAGA,QAAA,IAAAsnE,EAAA9H,EAAAhL,aAAA,IAAA8S,EAAA9H,EAAAhL,OAAAsR,EAAA,GACAqB,EAAA,OAGA,IADA,IAAAT,EAAA,OAEA,IAAA3I,EAAAyB,EAAAhL,MAAAkS,KAAA,GAAA3I,EAAAyB,EAAAhL,MAAAkS,GAAAZ,EAAA,IACAsB,EAAArJ,EAAAyB,EAAAhL,MAAAkS,GAAAZ,EAAA,GACAY,IACAS,IAOA,QAAA,IAAAG,EAAA9H,EAAAhL,aAAA,IAAA8S,EAAA9H,EAAAhL,OAAAsR,EAAAnB,GACAuC,EAAA,OAGA,IADAR,EAAA,OAEA,IAAA3I,EAAAyB,EAAAhL,MAAAkS,KAAA,GAAA3I,EAAAyB,EAAAhL,MAAAkS,GAAAZ,EAAAnB,IACA0C,EAAAtJ,EAAAyB,EAAAhL,MAAAkS,GAAAZ,EAAAnB,EAAA,GACA+B,IACAQ,IAOA,IAAA39D,EAAA,EACAg+D,EAAA,EACAtnE,KAAA8O,IAAA61D,EAAAuC,GAAAlnE,KAAA8O,IAAA61D,EAAAsC,IAAA,GAAAC,GACA59D,EAAA49D,EACAI,EAAAH,GACA,GAAAF,GACA39D,EAAA29D,EACAK,EAAAF,GAEA99D,EAAAq7D,EAKA,MAFA,CAAAr7D,UAAAA,EAAAg+D,WAAAA,GAnQAC,CAAA1B,EAAApB,GACA+C,EAAAC,EAAA9B,EAAAqB,EAAA19D,WAAA,GACAy0D,EAAA4H,GAAAhB,UAAA6C,EAAA7C,UACA,IAAA+C,EAkHA,SAAAlB,EAAAmB,GAOA,IALA,IAGAC,EAHAljE,EAAA,EACAkiE,EAAA,EACAnM,EAAA,GACAoN,EAAA,EAEAzzD,EAAA,EAAAA,EAAAoyD,EAAA,GAAAz/D,OAAAqN,IAAA,CACA,IAAAuxD,EAAAa,EAAA,GAAApyD,GACA0zD,EAAA/J,EAAAyI,EAAA,GAAApyD,IAEA,GADAwyD,GAAAkB,EAAAnD,UACA,GAAAvwD,EAMA1P,GAAAojE,EAAAnD,UACAlK,EAAAxkD,KAAA,CAAA0vD,EAAAmC,EAAAnD,gBAPA,CACA,IAAAF,EAAA6B,EAAAX,EAAAgC,GAAA,GACAjjE,GAAA+/D,EAAAE,UACAlK,EAAAxkD,KAAA,CAAAuwD,EAAA,GAAApyD,GAAAqwD,EAAAE,aAOAiD,EAAAE,EAAA7hE,KACA4hE,EAAAC,EAAA5hE,IAEA,IAAA6hE,EAAAnB,EACA/mE,EAAA,GAEA,IAAAuU,EAAAqmD,EAAA1zD,OAAA,EAAAqN,GAAA,EAAAA,IAAA,CACA,IACA9K,EADAq8D,EAAAlL,EAAArmD,GAAA,GAEA,GAAAA,GACA9K,EAAAtJ,KAAA4hC,IAAA5hC,KAAAuF,MAAA,EAAAqhE,EAAA,GAAA5mE,KAAAwF,MAAAi1D,EAAArmD,GAAA,IAAAwyD,EAAAliE,KACAqjE,GAAAz+D,GACAm7D,EAAAgD,EAAA9B,EAAAr8D,GAAA,IACArD,KAAA2hE,EACAnD,EAAAv+D,IAAA2hE,EACAhoE,EAAAoW,KAAA,CAAA0vD,OAAAA,EAAAlB,MAAAA,IACAoD,GAAApD,EAAAE,aAGAF,EAAAgD,EAAA9B,EADAr8D,EAAAy+D,GACA,IACA9hE,KAAA2hE,EACAnD,EAAAv+D,IAAA2hE,EACAhoE,EAAAoW,KAAA,CAAA0vD,OAAAA,EAAAlB,MAAAA,KAGA,OAAA5kE,EAhKAmoE,CAAAxB,EAAAgB,EAAA9C,UAEAuD,GAAA,GAuCA,SAAAC,GAKA,IAHA,IAAAC,EAAA,EACAC,EAAA,EAEAh0D,EAAA,EAAAA,EAAA8zD,EAAAnhE,OAAA,EAAAqN,IAAA,CAEA,IAAAqwD,EAAAyD,EAAA9zD,GAAAqwD,MACA4D,GAAA,EACAC,GAAA,EACAxC,EAAArB,EAAAv+D,IAAAu+D,EAAAE,YAAApF,EAAAE,WAAAgF,EAAAx+D,KAAAw+D,EAAAC,WACA2D,EAAAvK,EAAA2G,EAAAv+D,IAAAu+D,EAAAE,UAAA,GAAAF,EAAAx+D,KAAAw+D,EAAAC,UACA4D,EAAAxK,EAAA2G,EAAAv+D,IAAAu+D,EAAAE,WAAAF,EAAAx+D,KAAAw+D,EAAAC,WAEA2D,GAAAC,GACAH,IAIA,IAAA/zD,EAAA,EAAAA,EAAA8zD,EAAAnhE,OAAA,EAAAqN,IAAA,CAEAqwD,EAAAyD,EAAA9zD,GAAAqwD,MACA4D,GAAA,EACAC,GAAA,EACAxC,EAAArB,EAAAv+D,IAAAu+D,EAAAE,YAAAF,EAAAx+D,KAAA,GAAA,IACAoiE,EAAAvK,EAAA2G,EAAAv+D,IAAAu+D,EAAAE,UAAA,GAAAF,EAAAx+D,KAAA,GACAqiE,EAAAxK,EAAA2G,EAAAv+D,IAAAu+D,EAAAE,WAAAF,EAAAx+D,KAAA,IAEAoiE,GAAAC,GACAF,IAGA,OAAApoE,KAAA4hC,IAAAwmC,EAAAD,IAxEAI,CAAAb,IAGA,IACAO,GAAA,GAGAjB,EAAA19D,WAAAm7D,EAAAE,YACAF,EAAAgD,EAAA9B,EAAAqB,EAAA19D,WAAA,IAEA,IAAAk/D,EAoEA,SAAAlB,EAAAh+D,EAAAq7D,GAEA,IAAAmD,EAAA/J,EAAAuJ,GACA/C,EAAAuD,EAAAnD,UAEA8D,GADAX,EAAApD,SACAoD,EAAA7hE,MACAyiE,EAAAZ,EAAA5hE,IAKAyiE,GAJAp0D,SAAAm0D,GAAAnJ,EAAA5vD,SAAA4vD,EAAAM,aACAtrD,SAAAk0D,GAAAlJ,EAAA5vD,SAAA4vD,EAAAM,aAGA4H,EAAAH,EAFA/C,EAAAj7D,EAAAq7D,GAEA,IACA9kE,EAAA,GAEA,OADAA,EAAAoW,KAAA,CAAA0vD,OAAA2B,EAAA7C,MAAAkE,IACA9oE,EAlFA+oE,CAAA5B,EAAAM,WAAAN,EAAA19D,UAAAm7D,EAAAE,WAQA,OAPAF,EAAAv+D,IAAAq5D,EAAAhL,MACAkQ,EAAAx+D,KAAA4/D,EACA2C,EAAAvyD,KAAA,CAAA0vD,OAAAA,EAAAlB,MAAAA,IAEAoE,EAAAL,GACAK,EAAAnB,IAEA,GAAAO,OACAa,EAAAN,QAGAM,EAAApB,GAMAjD,EAAAx+D,KAAA4/D,EACApB,EAAAv+D,IAAAq5D,EAAAhL,MACAwJ,EAAA4H,GAAAlB,EACAsE,EAAApD,EAAAlB,EAAAoB,EAAAtG,EAAAhL,OAEAgL,EAAAQ,SAAA0E,EAAAv+D,IAAAu+D,EAAAE,UAiEA,SAAAmE,EAAAE,GAEA,IAAA,IAAA50D,EAAA,EAAAA,EAAA40D,EAAAjiE,OAAAqN,IAAA,CACA,IAAAqwD,EAAAuE,EAAA50D,GAAAqwD,MACAkB,EAAAqD,EAAA50D,GAAAuxD,OACA5H,EAAA4H,GAAArpE,OAAAC,QAAA,EAAA,GAAAkoE,GACAsE,EAAApD,EAAAlB,EAAAA,EAAAx+D,KAAAw+D,EAAAv+D,MA+JA,SAAAogE,EAAAX,EAAAsD,EAAAnC,GACAA,IACAA,GAAA,GAGA,IAAAn3D,EAAA4vD,EAAA5vD,SACAo0D,EAAAxE,EAAAM,WACAiI,EAAA/J,EAAA4H,GAGArgE,EAFAwiE,EAAA7C,SACA6C,EAAA5C,UAIA,GAFAR,SAAAuE,EACAtE,UAAA3kE,KAAAuF,MAAAm/D,SAAAp/D,GACA,GAAAwhE,EAAA,CACA,IAAArC,EAAAnoE,OAAAC,QAAA,EAAA,GAAAurE,GAKA,OAJArD,EAAAC,SAAAA,SACAD,EAAAE,UAAAA,UACAF,EAAAtkE,MAAAukE,SAAA/0D,EAAAo0D,GAAAW,SAAA,GACAD,EAAAvnE,OAAAynE,UAAAh1D,EAAAo0D,GAAAY,UAAA,GACAF,EAEAqD,EAAApD,SAAAA,SACAoD,EAAAnD,UAAAA,UACAmD,EAAA3nE,MAAAukE,SAAA/0D,EAAAo0D,GAAAW,SAAA,GACAoD,EAAA5qE,OAAAynE,UAAAh1D,EAAAo0D,GAAAY,UAAA,GAMA,SAAA8C,EAAA9B,EAAAuD,EAAApC,GAEAA,IACAA,GAAA,GAGA,IAAAgB,EAAA/J,EAAA4H,GACAjB,EAAAoD,EAAApD,SACA/0D,EAAA4vD,EAAA5vD,SACAo0D,EAAAxE,EAAAM,WAEA,GAAA,GAAAiH,EAAA,CACA,IAAArC,EAAAnoE,OAAAC,QAAA,EAAA,GAAAurE,GAMA,OAJArD,EAAAE,UAAAuE,EACAzE,EAAAtkE,MAAAukE,EAAA/0D,EAAAo0D,GAAAW,EAAA,GACAD,EAAAvnE,OAAAgsE,EAAAv5D,EAAAo0D,GAAAmF,EAAA,GAEAzE,EAGAqD,EAAAnD,UAAAuE,EACApB,EAAA3nE,MAAAukE,EAAA/0D,EAAAo0D,GAAAW,EAAA,GACAoD,EAAA5qE,OAAAgsE,EAAAv5D,EAAAo0D,GAAAmF,EAAA,GAMA,SAAAL,EAAAM,GAIA,IAHA,IAAAC,EAAA,EACAC,EAAA,EAEAj1D,EAAA,EAAAA,EAAA+0D,EAAApiE,OAAAqN,IAAA,CACA,IAAAqwD,EAAA1G,EAAAoL,EAAA/0D,GAAAuxD,QACA,GAAA,GAAAlB,EAAAE,WAAA,GAAAF,EAAAvnE,OAGA,OAFAosE,UAAA7E,EAAAC,SAAAD,EAAAE,WAAAF,EAAAQ,SAAAR,EAAAS,WAIAoE,UAAA,IACAA,UAAA,EAAAA,WAEAF,GAAAE,UACAD,IAEA,OAAAD,EAAAC,EAMA,SAAA9C,EAAA7B,EAAAmB,GACA,IAAAv/D,EAAAi5D,EAAAhL,MAAA,EACA,QAAAjuD,GAAA,GAAA,GAAAw/D,EAAAx/D,KAGAw3D,EAAAx3D,GAAAu/D,EAAAnB,EAAA,IAAA5G,EAAAx3D,GAAAu/D,EAAAnB,GAUA,SAAAuB,EAAAJ,GACA,IAAAx/D,EAAAw/D,EACAK,EAAA,EACA,GAAA,GAAAJ,EAAAvG,EAAAhL,OACA,KAAA,GAAAwR,EAAAxG,EAAAhL,MAAAluD,IACA6/D,IACA7/D,SAGA6/D,EAAA3G,EAAAE,WAEA,OAAAyG,EAMA,SAAAJ,EAAAx/D,GACA,YAAA,IAAAw3D,EAAAx3D,GAUA,SAAAyiE,EAAAx3D,EAAAkzD,EAAA/O,EAAAnB,GAEA,IAAA,IAAAjuD,EAAA,EAAAA,EAAAm+D,EAAAE,UAAAr+D,IACA,IAAA,IAAAD,EAAA,EAAAA,EAAAo+D,EAAAC,SAAAr+D,IACA,GAAAy/D,EAAAvR,EAAAjuD,IACAijE,EAAAhV,EAAAjuD,GAGAkjE,EAAAjV,EAAAjuD,EAAAovD,EAAArvD,EAAAkL,GAQA,SAAAg4D,EAAAjjE,GACAw3D,EAAAx3D,GAAA,IAAAosB,OACA,IAAA,IAAA/xB,EAAA,EAAAA,EAAA4+D,EAAAE,WAAA9+D,IACAm9D,EAAAx3D,GAAA3F,IAAA,EAOA,SAAAolE,EAAAz/D,EAAAD,GACA,OAAA,GAAAy3D,EAAAx3D,GAAAD,GAMA,SAAAmjE,EAAAljE,EAAAD,EAAAtG,GACA+9D,EAAAx3D,GAAAD,GAAAtG,EA2BA,SAAAulE,EAAAlxD,EAAAotD,GAEA,IAAA7iE,EAAAkiD,EAAAjB,gBAAAxrC,GAEAqwD,EAAA1G,EAAA3pD,GACA3K,EAAAg7D,EAAAv+D,KAAAq5D,EAAA5vD,SAAA4vD,EAAAM,YACAr2D,EAAA+1D,EAAA0B,KAAAwD,EAAAx+D,MAAAs5D,EAAA5vD,SAAA4vD,EAAAM,YAEAvkE,EAAAmnE,WAAA9jE,EAAA8lE,EAAAtkE,MAAAskE,EAAAvnE,OAAA5B,EAAA4mE,WAAAC,kBAEA/mE,EAAA+B,aAAAwB,EAAA6K,EAAAC,GAEAA,EAAAg7D,EAAAvnE,OAAAqiE,EAAA8B,eACA9B,EAAA8B,aAAA53D,EAAAg7D,EAAAvnE,QAGA,GAAAskE,GACA7iE,EAAA1B,OAAA,EAAA,GAYA,SAAAwsE,IAEA,GAAA,GAAAxtE,EAAA28D,eACA,OAAA,EAEA,GAAA,GAAA38D,EAAAqjE,YACA,OAAA,EAEA,OAAA9jE,EAAAyiE,YACA,IAAA,UACA+D,GAAA,GACA,MACA,IAAA,YACAsC,GAAA,GACA,MACA,IAAA,SAGA,GADAxpE,EAAAkgE,eAEAgH,GAAA,GAGAoD,GAAA,IAiCA,SAAApnE,IAWA,OARArD,EAAAyD,SAAA,YAAAW,OAEA,GAAA9C,EAAA28D,iBAzBAnhB,EAAAj6C,GAAAmD,EAAAtD,OAAA6hE,kBAAA,WAEAjjE,EAAAqjE,aAAA,KAIA7kE,EAAA+C,GAAA1C,EAAAuC,OAAA0zD,YAAA0Y,GAEAhvE,EAAA+C,GAAAmD,EAAAtD,OAAAC,oBAAA,WACArB,EAAAojE,eAAA,KAGA/jE,EAAAyC,cAiBAzC,EAAA0C,MAEAxC,EAAAyiE,YACA,QACA,IAAA,UACA0E,IACA,MACA,IAAA,YAx3BAjpD,EAAApd,OAAA3B,GAAAwxB,KAAA,sBACAsuC,EAAA5Z,EAAAvC,YAEAriD,EAAAqjE,aAAA,EAEA7E,EAAAx9D,OAAA,EAAA,GAEA7B,EAAAqe,kBAAAC,GAAA,WAEA3B,YAAA,WACAusD,GAAA,GACA7J,EAAAx9D,OAAA,EAAA,GACAnC,EAAAo+B,aAAAv4B,EAAAtD,OAAAC,oBACA0iE,IAEAvoB,EAAA9+B,QAAAhY,EAAAtD,OAAA6hE,wBAIA,SAAAj7D,EAAAgW,GAEAhW,EAAA3H,OAAA2H,GACA,IAAAtF,EAAArC,OAAA2H,GAAAI,SACAw8C,EAAApD,wBAAA9+C,EAAAsF,MAm2BA,MACA,IAAA,UAr1BA,WAEA,IAAAyV,EAAApd,OAAA3B,GAAAwxB,KAAA,sBACAsuC,EAAA5Z,EAAAvC,YAEAriD,EAAAqjE,aAAA,EAEA7E,EAAAx9D,OAAA,EAAA,GAEA7B,EAAAqe,kBAAAC,GAAA,WAEA,GAAA5e,EAAAkgE,eACAgH,GAAA,GAGAoD,GAAA,GAEAtqE,EAAAo+B,aAAAv4B,EAAAtD,OAAAC,oBACA0iE,IACAvoB,EAAA9+B,QAAAhY,EAAAtD,OAAA6hE,qBAEA,SAAAj7D,EAAAgW,GAEAhW,EAAA3H,OAAA2H,GACA,IAAAtF,EAAArC,OAAA2H,GAAAI,SACAw8C,EAAApD,wBAAA9+C,EAAAsF,MA6zBAylE,GA93BA,IAEAhwD,EACA+gD,EAg4BAx+D,EAAA28D,gBAAA,EAOAz5D,KAAAC,QAAA,WAEA3E,EAAA4E,IAAAvE,EAAAuC,OAAA0zD,aACAz1D,EAAA8D,UACA3E,EAAA4E,IAAAsB,EAAAtD,OAAAC,qBASA6B,KAAArC,KAAA,SAAAV,EAAAC,GAEAS,EAAAV,EAAAC,IAOA8C,KAAAX,QAAA,SAAA4F,IAtnDA,SAAAA,GAEA,IAAAA,EACA,GAAAozC,EACApzC,EAAAozC,OAEApzC,EAAAzJ,EAGA68C,EAAApzC,EAEA,IAAAulE,EAAAnuE,EAAAyiE,WACA75D,EAAAlG,SAAA,eAAAyrE,GAEAruE,EAAAkD,QAAA4F,GAEAA,EAAAhG,SAAA,qBAAAb,OAumDAiB,CAAA4F,IAMAjF,KAAApC,iBAAA,WACA,OAAA,GAMAoC,KAAAnB,IAAA,WACAA,KAOAmB,KAAAK,YAAA,WAEA,IAAAg4C,EACA,MAAA,IAAA9vC,MAAA,wCAOA,OALApM,EAAAkD,QAAAg5C,GAAA,GAEAl8C,EAAA0C,KAAA,GAGAxC,EAAAyiE,YACA,IAAA,UAEA0E,IAEA,MACA,QACA,IAAA,YACA,IAAA,SACA,MAAA,IAAAj7D,MAAA,eAAAlM,EAAAyiE,WAAA,gCAaA,SAAA1iE,eAEA,IAEAquE,EAAAjvE,EAFAgG,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAK,EAAA,IAAAC,YACAwlD,EAAA,IAAAvJ,gBAEAn4C,KAAA+iE,WAAA,CACA2H,KAAA,OACAC,aAAA,eACA3H,iBAAA,oBAGAhjE,KAAA4qE,OAAA,CACAC,aAAA,eACAC,WAAA,aACAC,YAAA,cACAC,OAAA,UAGAhrE,KAAA9B,OAAA,CACAI,WAAA,cAGA,IAAAjC,EAAA,CAEA+9D,WAAA,IACAD,YAAA,IACA8Q,aAAAzpE,EAAAopE,OAAAG,YACAG,2BAAA,EAEAC,wBAAA,EACAC,sBAAA,UAEAC,oBAAA,EACAC,kBAAA,EACAC,kBAAA,UACAC,mBAAA,EAEAC,qBAAA,EACAC,mBAAA,UAEAC,oBAAA,EACAC,cAAA,EACAC,cAAA,EACAC,iBAAA,EACAC,mBAAA,EACAC,kBAAA,UAEAC,oBAAA,EACAC,cAAA,EACAC,mBAAA,EAEAC,qBAAA,EACAC,qBAAA,GACAC,mBAAA,UAEAC,mBAAA,EACAC,qBAAA,EACAC,8BAAA,QACAC,yBAAA,GAEA3L,0BAAA,EACA4L,uBAAA,KACA3L,2BAAA,EAEA4L,uBAAA,EACAC,sBAAA,QACAC,0BAAA,EACAC,2BAAA,QACAC,wBAAA,gBACAC,sBAAA,GAIArwE,EAAA,CACAk9C,4BAAA,EACAG,uBAAA,EACAC,4BAAA,EACAgzB,mCAAA,EACAC,0BAAA,GACAC,2BAAA,EACAC,8BAAA,GAGAvwE,EAAA,CACAwwE,cAAA,EACAC,aAAA,EACA5U,gBAAA,oBACA6U,mBAAA,KACAC,2BAAA,KACAC,uBAAA,KACAC,iBAAA,EACAC,gBAAA,EACAC,oBAAA,EACAC,mBAAA,EACAC,yBAAA,EACAC,mBAAA,GAOA,SAAArwE,EAAAV,EAAAC,GAEAvB,EAAAsB,EAEAE,OAAAF,GAEA,IAAA06D,EAAAh8D,EAAA+B,aACAlC,EAAAm8D,EAAAn8D,aAEAG,EAAAsyE,cAEA5xE,EAAAc,OAAAC,OAAAf,EAAAO,GAEAP,EAAAc,OAAAC,OAAAf,EAAAa,GAkCA,WAGA,GAAAb,EAAA+vE,qBAEA/vE,EAAA29C,sBAAA39C,EAAAgwE,qBACAhwE,EAAA09C,oBAAA19C,EAAAiwE,oBAEA,GAAAjwE,EAAAkwE,kBACAlwE,EAAAy9C,4BAAA,EAEAz9C,EAAA29C,sBAAA,EAIA39C,EAAA6vE,eACA7vE,EAAAm+C,uBAAA,EACAn+C,EAAAo+C,mBAAAp+C,EAAA8vE,mBAIA,GAAA9vE,EAAAovE,qBAAA,GAAApvE,EAAAgvE,qBACAhvE,EAAAovE,qBAAA,GAGA3uE,EAAA8wE,gBAAA,EACAvxE,EAAAgvE,qBACAvuE,EAAA8wE,gBAAA,EAAAvxE,EAAAivE,kBACA5pB,EAAA3B,oBAAAjjD,EAAA8wE,kBAOA,GAHA9wE,EAAA6wE,iBAAA1xE,EAAA2F,kBAGA,GAAAvF,EAAAuwE,sBAAA,CAGA,OAAAvwE,EAAA2wE,yBACA,IAAA,MACA3wE,EAAA6xE,qBAAA,MACA,IAAA,SACApxE,EAAA+wE,oBAAA,EACAxxE,EAAAywE,0BAAA,EACAzwE,EAAA4wE,sBAAA,EACA,MACA,IAAA,aACA5wE,EAAA6xE,qBAAA,MACA,MACA,IAAA,SACA7xE,EAAA6xE,qBAAA,SACA7xE,EAAA0wE,2BAAA,OAKA,GAAA1wE,EAAAywE,2BACAhwE,EAAA6wE,iBAAA,GAMA,GAAAtxE,EAAA4wE,wBACA5wE,EAAA0wE,2BAAA,OACA1wE,EAAA8xE,sBAAA9xE,EAAA4wE,uBAIA,kBAAA5wE,EAAAwwE,wBACAxwE,EAAA6wE,mCAAA,EACA7wE,EAAA+xE,oCAAA,GAvGA7wE,GAEAmkD,EAAA/jD,KAAAV,EAAAZ,GAEA,IAEAgyE,EAAA,CAAA,WAEAvxE,EAAA0wE,qBACAa,EAAA,IAEA3sB,EAAAzB,gBAAAquB,EAAAD,EAPA,CAAAjuB,gBAAA,IAUA,IAAAmuB,EAAA7sB,EAAApB,aACAjkD,EAAAc,OAAAC,OAAAf,EAAAkyE,GAGAzxE,EAAAywE,aAAAlxE,EAAA+9D,WAAA/9D,EAAA89D,YACAr9D,EAAAwwE,cAAAjxE,EAAA89D,YAAA99D,EAAA+9D,WAIA/9D,EAAA4uE,cAAAzpE,EAAAopE,OAAAC,cAAA/tE,EAAA+wE,qBACA/wE,EAAAgxE,mBAAA,GAwFA,SAAAU,IAEA,IAAA5S,EAAAjgE,EAAAkgE,eAaA,OATA/+D,EAAAkxE,mBAAA,EACA,GAAApS,GAAA,GAAAv/D,EAAAywE,2BACAhwE,EAAAkxE,mBAAA,GAKAlxE,EAAAixE,wBAAA1xE,EAAAowE,8BAEApwE,EAAAowE,+BACA,IAAA,SACA3vE,EAAAixE,yBAAA,EACA,MACA,IAAA,QACAjxE,EAAAixE,yBAAA,EACA,MACA,IAAA,cACAjxE,EAAAixE,wBAAA,GAAAnS,EACA,MACA,IAAA,eACA9+D,EAAAixE,wBAAA,GAAAnS,GAWA,SAAA0S,EAAAxyB,EAAAL,GAIA,GAFAK,EAAA/8C,SAAA,WAEAjC,EAAA0wE,mBAEA,OADA1wE,EAAA0wE,mBAAA1xB,EAAAL,IACA,EAGA,IAAAl7C,EAAA,GAGA,GAAAzD,EAAAgxE,oBACAvtE,GAAA,qDAIA,IAAAkuE,EAAA,iBAEA,GAAApyE,EAAA0kE,0BAAA,GAAA1kE,EAAA2kE,4BACAyN,GAAA,qBAEA,IAAAC,EAAAzyE,EAAA4f,UAAA4/B,EAAA35B,OACA4sD,EAAAzyE,EAAA6f,aAAA4yD,GAEAnuE,GAAA,aAAAtE,EAAAkQ,kBAAAsvC,EAAAkzB,UAAA,WAAAD,EAAA,YAAAD,EAAA,KAEA,GAAA3xE,EAAAgxE,oBACAvtE,GAAA,UAGAu7C,EAAA98C,OAAAuB,GAGAlE,EAAA4uE,cAAAzpE,EAAAopE,OAAAC,cACA/uB,EAAAh+C,OAAA,EAAA,GAMA,IAAAyN,EAAA,GAqBA,GAnBA,GAAAlP,EAAA8uE,yBACA5/D,EAAA,oBAAAlP,EAAA+uE,uBAGA,GAAA/uE,EAAAgvE,qBACA9/D,EAAA,gBAAAlP,EAAAivE,kBAAA,KACA//D,EAAA,gBAAA,QACAA,EAAA,gBAAAlP,EAAAkvE,kBAEAlvE,EAAAmvE,qBACAjgE,EAAA,iBAAAlP,EAAAmvE,mBAAA,OAIA,GAAAnvE,EAAAovE,sBACAlgE,EAAA,QAAA,aAAAlP,EAAAqvE,oBAIA,GAAArvE,EAAAsvE,mBAAA,CACA,IAAAiD,EAAAvyE,EAAAuvE,cAAA,MACAgD,GAAAvyE,EAAAwvE,cAAA,MACA+C,GAAAvyE,EAAAyvE,iBAAA,MACA8C,GAAAvyE,EAAA0vE,mBAAA,MACA6C,GAAAvyE,EAAA2vE,kBAEAzgE,EAAA,cAAAqjE,EAGA9yB,EAAA58C,IAAAqM,GAKA,IAAAsjE,EAAA,GAEA,GAAAxyE,EAAAkwE,kBAAA,CAGA,GAAA,GAAAlwE,EAAA6vE,cAAA,GAAA7vE,EAAA4vE,mBAAA,CACA,IAAA6C,EAAA,8BACA,SAAArzB,EAAAtkC,OACA23D,EAAA,+BAEAD,GAAA,4BAAAC,EAAA,gCAIA,GAAArzB,EAAAzrB,MAAA,GAAA3zB,EAAAmwE,qBAAA,GAAAnwE,EAAA6vE,aAEA,GAAA,GAAA7vE,EAAA6vE,aAAA,CACA,IAAArwB,EAAA,GACA,GAAAx/C,EAAA8vE,oBACAtwB,EAAA,oBAEAgzB,GAAA,YAAApzB,EAAAzrB,KAAA,IAAA6rB,EAAA,+CAEAgzB,GAAA,qEAKA,IAAAE,EAAAjyE,EAAA6wE,gBAIA,GAHA,GAAAoB,GAAA,SAAAtzB,EAAAtkC,MAAA,GAAAra,EAAAixE,0BACAgB,GAAA,GAEAA,EACA,IAAA1xB,EAAAvB,OAEAuB,EAAAvB,EAAA78C,SAAA,qBAEAo+C,EAAAr+C,OAAA6vE,GAEA,IAAAG,EAAA3xB,EAAAp+C,SAAA,IAAA6vE,GAEA,GAAAE,EAAApnE,OACAonE,EAAA,KAEAA,EAAA5wE,OAEA,IAAA6wE,EAAA5xB,EAAAp+C,SAAA,iBAEA,GAAAgwE,EAAArnE,OACAqnE,EAAA,KAEAA,EAAA7wE,OAGA6wE,GAAA,GAAA5yE,EAAA4vE,oBACAnwB,EAAA/8C,SAAA,0BAKA,GAAA1C,EAAA4vE,oBACAnwB,EAAA/8C,SAAA,qBAKA,GAAA,GAAA1C,EAAA0kE,yBAAA,CAEA,IAAAmO,EAAA,GACA,GAAA7yE,EAAA2kE,4BACAkO,EAAA,qBAEA,IAAAC,EAAA,oCAAAD,EAAA,MACA1zB,EAAA,OAAAn/C,EAAAswE,uBAAA,UAEAwC,GAAA,aAAAlzE,EAAAkQ,kBAAAsvC,EAAAkzB,UAAA,WAAAlzB,EAAA35B,MAAA,YAAA05B,EAAA0zB,EAAA,KACAC,GAAA,SAEArzB,EAAA98C,OAAAmwE,GAGA,GAAA9yE,EAAA2kE,2BACAllB,EAAA78C,SAAA,0BAAAnB,OAAA,EAAA,GAOA,GAAA,GAAAzB,EAAAuwE,sBAAA,CAEA,IAAAwC,EAAA,IAAAC,YACAD,EAAAzxE,KAAAhC,EAAAU,EAAA,QAGA,IAAAizE,EAAA,GACA,GAAAjzE,EAAAywE,0BAAA,GAAAhwE,EAAA+wE,qBACAyB,EAAA,oBAEAF,EAAAG,WAAAzzB,EAAAwzB,GAEA,IAAAE,EAAA/zB,EAAA35B,MACA2tD,EAAA,GAEA,OAAApzE,EAAAwwE,uBACA,IAAA,OACA,IAAA,cACA2C,EAAA/zB,EAAAi0B,YACA,MACA,IAAA,aACA,IAAAj0B,EAAAi0B,cACAF,EAAA/zB,EAAAi0B,aACA,MACA,IAAA,iBACAF,EAAA/zB,EAAA35B,MACA2tD,EAAAh0B,EAAAi0B,YAYA,GARAN,EAAAO,aAAAH,EAAAC,GAEA,GAAApzE,EAAAywE,0BACAsC,EAAAjc,aAAAr1D,OAAA,EAAA,GAEAg+C,EAAAv8C,KAAA,eAAA6vE,GAGA,GAAA/yE,EAAAywE,yBACA8C,EAAA9zB,GACA58C,IAAA,UAAA,GAIA,GAAA,GAAApC,EAAA+wE,mBAAA,CAGA/xB,EAAA98C,OADA,6CAEA,IAAA6wE,EAAA/zB,EAAA78C,SAAA,0BAEA6wE,EAAA,IAAAT,YACAS,EAAAnyE,KAAAhC,EAAAU,EAAA,QACAyzE,EAAAP,WAAAM,GACAC,EAAAH,aAAAH,EAAAC,GACA3zB,EAAAv8C,KAAA,oBAAAuwE,IAMA,OAAAr0B,EAAAh7C,SACAq7C,EAAA98C,OAAAy8C,EAAAh7C,SAyBA,SAAAsvE,EAAAvwE,GAEA,OADAA,EAAAP,SAAA,0BAsCA,SAAA+wE,EAAAxwE,GAGA,OAFAA,EAAAD,KAAA,gBAoBA,SAAAqwE,EAAApwE,GAGA,OAFAA,EAAAP,SAAA,iBAuBA,SAAAgxE,EAAAzwE,GAEA,GAAA,GAAA1C,EAAA+wE,mBACA,IAAAuB,EAjBA,SAAA5vE,GACA,IAAA4vE,EAAA5vE,EAAAwtB,KAAA,wCAEA,GAAA,GAAAoiD,EAAAxnE,OACA,MAAA,IAAAW,MAAA,uCAEA,OAAA,EAWA2nE,CAAA1wE,QAEA4vE,EAAAQ,EAAApwE,GAGA,OAAA4vE,EAGAnzE,EAAA6D,eAAAsvE,GACA,OAHA,EAUA,SAAAe,EAAA3wE,GACA,IAAAoO,EAAApO,EAAAwtB,KAAA,iBACA,OAAA,GAAApf,EAAAhG,OACA,KAEAgG,EA8CA,SAAAwiE,EAAA5wE,GACA,IAAAoO,EAAApO,EAAAwtB,KAAA,mBAEA,OAAA,GAAApf,EAAAhG,OACA,KAEAgG,EAOA,SAAAyiE,EAAA7wE,GAEA,QAAAA,EAAAmP,SAAA,iBAUA,SAAA2hE,EAAA9wE,GAEA,OAAAA,EAAAmP,SAAA,qBAOA,SAAA4hE,EAAA90B,GAEA,OAAA,GAAAp/C,EAAAkwE,mBAAA,GAAAzvE,EAAAixE,yBAAA,SAAAtyB,EAAAtkC,KAcA,SAAAq5D,EAAAhxE,EAAAwB,EAAAjD,EAAA0yE,GAEA,IAAAx0B,EAAA8zB,EAAAvwE,GACAu8C,EAAAv6C,EAAAkvE,aAAAlxE,GACAmxE,EAlLA,SAAAnxE,GAEA,OADAA,EAAAwtB,KAAA,8BAiLA4jD,CAAApxE,GAGAwB,GAAAlE,EAAA8wE,gBACA7vE,GAAAjB,EAAA8wE,gBAEA,IAAAiD,EAAA,KAGA,GAAA,GAAA/zE,EAAA+wE,mBAAA,CAEA,IAAAiD,EAAAb,EAAAzwE,GAUA,GATAzB,GAAA+yE,EAEA,OAAAz0E,EAAA2wE,0BACA6D,EAAAC,GAMA,GAAAh0E,EAAAgxE,kBAAA,CACA,IAAAiD,EArNA,SAAAvxE,GACA,OAAA,GAAA1C,EAAAgxE,kBACA,KAEAtuE,EAAAP,SAAA,uBAiNA+xE,CAAAxxE,GACAvD,EAAAiP,eAAA6lE,EAAA/vE,EAAAjD,GAEA,OAAA8yE,GACA50E,EAAA+B,aAAA+yE,EAAA,EAAAF,IAMA,GAAA,GAAAx0E,EAAA0kE,yBAEA9kE,EAAAmQ,sBAAA2vC,EAAA/6C,EAAAjD,GAEA,GAAAjB,EAAAgxE,mBAAA,OAAA+C,GACA50E,EAAA+B,aAAA+9C,EAAA,EAAA80B,OAEA,CAGA,IAAAI,EAAA,WACA,IAAAR,GAAA,GAAA3zE,EAAA+wE,qBAEAoD,EADA,GAAA50E,EAAA2kE,0BACA,SAEA,SAKA,UAAAiQ,IACAh1E,EAAAiP,eAAA+wC,EAAAj7C,EAAAjD,GAEA,OAAA8yE,GACA50E,EAAA+B,aAAAi+C,EAAA,EAAA40B,GAEA50E,EAAAmQ,sBAAAukE,EAAA3vE,EAAAjD,IAKA,SAAAkzE,IAEA,GAAAn0E,EAAAgxE,kBACA7xE,EAAAmQ,sBAAA2vC,EAAA/6C,EAAAjD,GAIA,UAAAkzE,GACAh1E,EAAAmQ,sBAAA2vC,EAAA/6C,EAAAjD,GACA,OAAA8yE,GACA50E,EAAA+B,aAAA+9C,EAAA,EAAA80B,IAGA50E,EAAA0P,uBAAAglE,EAAA50B,GAAA,EAAA,KAAA80B,KAiBA,SAAAK,EAAA1xE,EAAA0tD,EAAA8O,EAAAoJ,GAEA,IAAA3W,EAAA,KAOA,GANAuN,IACAvN,EAAAuN,EAAAl/D,EAAA8wE,iBAEAxI,IACAA,GAAAtoE,EAAA8wE,iBAEA,SAAA1gB,EAMA,OA3QA,SAAA1tD,GAGA,OAFAA,EAAAD,KAAA,qBAqQA4xE,CAAA3xE,GACAivC,SAAA,GAAA,EAAAggB,GACAjtD,EAAA9B,cAAAF,GACA4xE,uBAAA,GAEA,EAGA,IAAAhC,EAAAY,EAAAxwE,GAEA,IAAA4vE,EACA,OAAA,EAEA,IAAAzgB,EAAA,KAUA,GAPA,GAAA7xD,EAAA+wE,qBACAlf,EAAAshB,EAAAzwE,IAEA4vE,EAAA3gC,SAAA,GAAA,EAAAggB,EAAAE,GAEA,GAAAtyD,EAAAywE,0BAAA,QAAAzwE,EAAA0wE,2BAIA,GAAA,GAAAjwE,EAAA+wE,oBAAAzI,GAAA,UAAA/oE,EAAA2wE,wBAAA,CAEA,IAAAxgE,EAAA44D,EAAAzW,EACAygB,EAAAiC,cAAA7kE,QAEA4iE,EAAAiC,gBASA,SAAAC,EAAA9xE,GAEAgC,EAAA9B,cAAAF,GAAA,IACAwvE,EAAAoB,EAAA5wE,GACAyvE,EAAAkB,EAAA3wE,GACA+xE,EAAAt1E,EAAA6D,eAAAN,GAEAgxE,EAAAhxE,EAAA+xE,EAAAvwE,MAAAuwE,EAAAxzE,QAGA,GAAA1B,EAAAuwE,uBACAsE,EAAA1xE,EAAA,UAAA+xE,EAAAvwE,MAAAuwE,EAAAxzE,QAIA,IAAAyzE,EAAAD,EAAAvwE,MAAAlE,EAAA8wE,gBACA6D,EAAAF,EAAAxzE,OAAAjB,EAAA8wE,gBACA8D,EAAA,EACA,GAAA,GAAA50E,EAAA+wE,mBAAA,CACA,IAAAiD,EAAAb,EAAAzwE,GACAiyE,GAAAX,EACA,OAAAz0E,EAAA2wE,0BACA0E,EAAAZ,GAGA,IAAAzzB,EA/WA,SAAA79C,GAEA,OADAA,EAAAP,SAAA,qBA8WA0yE,CAAAnyE,GAIA,GAHAvD,EAAAyP,0BAAA2xC,EAAA,EAAAq0B,EAAAF,EAAAC,GAGAzC,GAAAC,EAAA,CAEA,IAAA2C,EAAA,EACA,GAAA,GAAAv1E,EAAAuwE,uBAAA,GAAA9vE,EAAAkxE,mBAAA,GAAAlxE,EAAA+wE,mBAAA,CACA,IAAAgE,EAAAjC,EAAApwE,GACAsyE,EAAA71E,EAAA6D,eAAA+xE,GACAC,EAAA/zE,OAAA,IACA6zE,EAAA/wE,KAAAwF,MAAAyrE,EAAA/zE,OAAA,GAAA,KAKA,GAAAixE,GAAAC,EAAA,CACA,IAAA8C,EAAA91E,EAAA6D,eAAAkvE,GACAgD,EAAA/1E,EAAA6D,eAAAmvE,GACAgD,EAAA51E,EAAAqwE,yBAEAwF,EAAAH,EAAA/wE,MAAAixE,EAAAD,EAAAhxE,MACAmxE,EAAAtxE,KAAAwF,OAAAkrE,EAAAvwE,MAAAkxE,GAAA,GAKAC,EAAAF,IACAA,EAAApxE,KAAAwF,OAAAkrE,EAAAvwE,MAAA+wE,EAAA/wE,MAAAgxE,EAAAhxE,OAAA,GACAkxE,EAAAH,EAAA/wE,MAAAixE,EAAAD,EAAAhxE,MACAmxE,EAAAtxE,KAAAwF,OAAAkrE,EAAAvwE,MAAAkxE,GAAA,IAGAj2E,EAAA+B,aAAAgxE,EAAAmD,EAAA,SAAA,EAAAP,GACA31E,EAAA+B,aAAAixE,EAAAkD,EAAAJ,EAAA/wE,MAAAixE,EAAA,SAAA,EAAAL,QAIA5C,GACA/yE,EAAA+B,aAAAgxE,EAAA,SAAA,SAAA,EAAA4C,GAEA3C,GACAhzE,EAAA+B,aAAAixE,EAAA,SAAA,SAAA,EAAA2C,GAIA5C,GACAA,EAAApvE,OAEAqvE,GACAA,EAAArvE,OAqBA,SAAAwyE,EAAA5yE,EAAA49C,GAEA57C,EAAA9B,cAAAF,GAAA,IACA6yE,EAAAtC,EAAAvwE,GAEA89C,EAAAjhD,EAAA+9C,0BAEA,GAAA,GAAA/9C,EAAA2kE,0BAAA,CAEA,IAAAjlB,EAAAv6C,EAAAkvE,aAAAlxE,GAEA49C,GACArB,EAAAj+C,OAAA,EAAA,GACAu0E,EAAAx1B,MAAA,GAAA/+C,OAAAw/C,EAAA,IAGA+0B,EAAAx1B,MAAA,GAAA/+C,OAAAw/C,EAAA,QAIAF,EACAi1B,EAAAx1B,MAAA,GAAA/+C,OAAAw/C,EAAA,GAGA+0B,EAAAx1B,MAAA,GAAA/+C,OAAAw/C,EAAA,GAUA,SAAAg1B,EAAA9yE,EAAA49C,GAEA,IAAAE,EAAAjhD,EAAA+9C,0BAEAg1B,EAAAQ,EAAApwE,GACA,IAAA4vE,EACA,OAAA,EAEA,GAAA,SAAA/yE,EAAA0wE,2BAAA,CAEA,IAAAwF,EAAAt2E,EAAA6D,eAAAsvE,GACA,GAAA,GAAAmD,EAAAvxE,MACA,OAAA,EAEA,IAAA0oD,GAAA6oB,EAAAx0E,OAEAy0E,EAAA,GAAAC,EAAA,GAEAC,EAAA,SACA,cAAAr2E,EAAA2wE,0BACA0F,EAAA,OAEAF,EAAAE,GAAAhpB,EAAA,KACA+oB,EAAAC,GAAAC,MAEA,GAAAv1B,GAEAgyB,EAAAtxE,OAAA,EAAA,GAEA,GAAAsxE,EAAA31D,GAAA,cACA21D,EAAAlwE,IAAAszE,GAEAC,EAAA,QAAA,EAEArD,EAAAvyB,MAAA,GAAA5Q,QAAAwmC,EAAAn1B,IAIA8xB,EAAAvyB,MAAA,GAAA5Q,QAAAumC,EAAAl1B,QAMA,GAAAF,EACAgyB,EAAAvyB,MAAA,GAAA/+C,OAAAw/C,EAAA,GAEA8xB,EAAAvyB,MAAA,GAAA/+C,OAAAw/C,EAAA,GAWA,SAAAs1B,EAAApzE,EAAA49C,EAAAV,GAEA,IAAAY,EAAAjhD,EAAA+9C,0BACAsC,IAAA,IAAAA,IACAY,EAAA,GAEA,IAAAu1B,EAAAzC,EAAA5wE,GACAszE,EAAA3C,EAAA3wE,GACAkW,EAAA0nC,EAAA,EAAA,EAEAy1B,GACAA,EAAAh2B,MAAA,GAAA/+C,OAAAw/C,EAAA5nC,GAEAo9D,GACAA,EAAAj2B,MAAA,GAAA/+C,OAAAw/C,EAAA5nC,GASA,SAAAq9D,EAAAxzE,EAAAC,GAYA,GAVAA,EAAArC,OAAAqC,GAEAnD,EAAA0kE,0BACAqR,EAAA5yE,GAAA,GAEA,GAAAnD,EAAAuwE,uBAAA,GAAAvwE,EAAAywE,0BAAA,GAAAhwE,EAAAkxE,mBACAsE,EAAA9yE,GAAA,GAIA1C,EAAA6wE,iBAAA,GAAAtxE,EAAAkwE,kBAAA,CACA,IAAAyG,EAAA,GAAA32E,EAAA49C,sBAGA,GAAAs2B,EADA/uE,EAAA9B,cAAAF,KAEAozE,EAAApzE,EAAAwzE,GAAA,IAUA,SAAAC,EAAA1zE,EAAAC,GAWA,GATAA,EAAArC,OAAAqC,GAEAnD,EAAA0kE,0BACAqR,EAAA5yE,GAAA,GAEA,GAAAnD,EAAAuwE,uBAAA,GAAAvwE,EAAAywE,0BACAwF,EAAA9yE,GAAA,GAGA,GAAA1C,EAAA6wE,iBAAA,GAAAtxE,EAAAkwE,kBAAA,CAEA,IAAAyG,EAAA,GAAA32E,EAAA49C,sBAGA,GAAAs2B,EADA/uE,EAAA9B,cAAAF,IAEAozE,EAAApzE,EAAAwzE,GAAA,GAEAJ,EAAApzE,GAAA,GAAA,IA2BA,SAAA0zE,EAAA3zE,EAAAC,EAAA2zE,GAKA,GAHA3zE,EAAArC,OAAAqC,GAGA,GAAAnD,EAAA6uE,4BAAA,IAAA1rE,EAAAD,KAAA,kBAAA,IAAA4zE,EACA,OAAA,EAEA7B,EAAA9xE,GAEAkiD,EAAA/D,oBAAAn+C,GAOA,SAAA4zE,EAAA7zE,EAAAC,EAAAsF,GAEAwsE,EAAA9xE,GACAsF,EAAAhH,OAAA,EAAA,GAEA0B,EAAAD,KAAA,gBAAA,GAQA,SAAA8zE,EAAA7zE,GAEA,GAAA,GAAA8wE,EAAA9wE,GAEA,OADA84C,EAAA9+B,QAAAhY,EAAAtD,OAAAI,WAAAkB,IACA,EAlDA,IAAA8zE,EAqDA,GAAAjD,EAAA7wE,KArDA8zE,EAsDA9zE,EApDAkiD,EAAAvC,YAAAxS,IAAA2mC,GACAnlE,MAAA,SAAA1O,EAAAD,GACAkiD,EAAA/D,oBAAAxgD,OAAAqC,OAmDAkiD,EAAAnC,kBAAA//C,IASA,SAAAjB,EAAA8I,GAEA,IAAA7H,EAAArC,OAAA6C,MAEAuzE,EAAA/zE,EAAAs+B,KAAA,WAAAl5B,cACA4uE,GAAA,EAIA,GAHA12E,EAAA4wE,wBAAA,GAAA5wE,EAAA4wE,2BACA8F,GAAA,GAEA,KAAAD,EAEA,GAAAC,GACAnsE,EAAAwiB,sBAIA,GAAA,GAAAwmD,EAAA7wE,GAEA,GAAAg0E,GACAH,EAAA7zE,OAEA,CACA,GAAA,GAAA8wE,EAAA9wE,GACA,OAAA,EAEA,GAAAg0E,GACAl7B,EAAA9+B,QAAAhY,EAAAtD,OAAAI,WAAAkB,IAYA,SAAAi0E,EAAApsE,GAEAA,EAAAsQ,kBAEA,IAAAnY,EAAArC,OAAA6C,MAAAkuB,QAAA,YAEAslD,GAAA,EAKA,OAHA12E,EAAA4wE,wBAAA,GAAA5wE,EAAA4wE,2BACA8F,GAAA,GAEA,GAAAnD,EAAA7wE,IACA6zE,EAAA7zE,IACA,GAGA,GAAAg0E,GACAl7B,EAAA9+B,QAAAhY,EAAAtD,OAAAI,WAAAkB,IACA,QAFA,EAWA,SAAAk0E,EAAArsE,GACA,IAAA7H,EAAArC,OAAA6C,MAAAkuB,QAAA,YAEApxB,EAAA4wE,wBAAA,GAAA5wE,EAAA4wE,0BACArmE,EAAAwiB,iBAGA,GAAAwmD,EAAA7wE,IAAA,GAAAnD,EAAA6vE,eACA7kE,EAAAwiB,iBACAwpD,EAAA7zE,IArwBAQ,KAAA2zE,cAAA,SAAAn0E,GAEA,IAAAsF,EAAAtD,EAAAkvE,aAAAlxE,GAEAvD,EAAAqe,kBAAAxV,EAAA,MAAA,SAAAA,EAAAgW,GACAs4D,EAAA,KAAA5zE,EAAArC,OAAA2H,QA4bA9E,KAAAX,QAAA,SAAA4F,EAAA85C,GACA0rB,EAAAxlE,GAEA,IAAA85C,GACAyvB,IAEA9sB,EAAA5C,cAAA75C,EAAA85C,IAuUA/+C,KAAApB,WAAA,WAEA8iD,EAAA9iD,aAGAzB,OAAAukD,GAAArjD,GAAAqjD,EAAAxjD,OAAAy6C,aAAAo6B,GACA51E,OAAAukD,GAAArjD,GAAAqjD,EAAAxjD,OAAA06C,eAAAq6B,GACA91E,OAAAukD,GAAArjD,GAAAqjD,EAAAxjD,OAAA46C,WAAAs6B,GAEA53E,EAAA6C,GAAAvB,EAAA67D,gBAAAua,GAEAzI,EAAApsE,GAAA,QAAA,WAAAE,GAEAksE,EAAApsE,GAAA,QAAA,2BAAAo1E,GAEAhJ,EAAApsE,GAAA,QAAA,yBAAAq1E,IAOA1zE,KAAAC,QAAA,WAWA,GATAwqE,EAAAvqE,IAAA,QAAA,YACAuqE,EAAAvqE,IAAA,QAAA,4BACAuqE,EAAAvqE,IAAA,QAAA,0BAEA/C,OAAAukD,GAAAxhD,IAAAwhD,EAAAxjD,OAAAy6C,cACAx7C,OAAAukD,GAAAxhD,IAAAwhD,EAAAxjD,OAAA06C,gBACAz7C,OAAAukD,GAAAxhD,IAAAwhD,EAAAxjD,OAAA46C,YACAt9C,EAAA0E,IAAApD,EAAA67D,iBAEA,GAAAt8D,EAAAuwE,sBAAA,CACA,IAAAntB,EAAAiC,EAAAvC,YACAhiD,OAAAgR,KAAAsxC,GAAA,SAAAhgD,EAAAm0E,GACA,IAAAC,EAAA7D,EAAA7yE,OAAAy2E,IACAC,GACAA,EAAA5zE,aAIAyhD,EAAAzhD,WAQAD,KAAArC,KAAA,SAAAV,EAAAykD,EAAAxkD,GAEAS,EAAAV,EAAAykD,IAMA1hD,KAAA+5D,aAAA,WAEA19D,EAAA4uE,aAAAzpE,EAAAopE,OAAAC,aACAxuE,EAAA6uE,2BAAA,GAOAlrE,KAAAg6D,wBAAA,SAAA8Z,GACAh3E,EAAA4wE,uBAAAoG,GASA9zE,KAAAsjE,WAAA,SAAA9jE,EAAA4K,EAAAD,EAAA4pE,GAMA,GAHA,GAAAj3E,EAAA+wE,oBACAqD,EAAA1xE,EAAA,QAAA4K,GAEAA,GAMA,IAAAD,EAEAA,EAAA3I,EAAAmhE,qBAAAv4D,EAAA5K,OANA,CAAA4K,EAAA/N,EAAA+9D,WAAA,IACAjwD,EAAA9N,EAAA89D,YAWA,OAFAl+D,EAAAiP,eAAA1L,EAAA4K,EAAAD,GAEA4pE,GACA,QACA,KAAAvyE,EAAAuhE,WAAA2H,KACAlpE,EAAAwyE,uBAAAx0E,GAAA,GACA,MACA,KAAAgC,EAAAuhE,WAAA4H,aACA,OAAA,EAEA,KAAAnpE,EAAAuhE,WAAAC,iBAEA,GAAAlmE,EAAA0wE,mBAEA,OADAhsE,EAAAwyE,uBAAAx0E,GAAA,IACA,EAIAgxE,EAAAhxE,EAAA4K,EAAAD,GAAA,GAGA,GAAA9N,EAAAuwE,uBAAA,GAAAvwE,EAAAywE,0BAAA1iE,GACA8mE,EAAA1xE,EAAA,UAAA4K,EAAAD,KAYAnK,KAAA8iE,eAAA,SAAA14D,EAAA2pE,EAAAzY,GAEAkT,IAEA,IAAArkE,EAAA,KAKA,GAHA9N,EAAA4uE,cAAAzpE,EAAAopE,OAAAC,eACA1gE,EAAA3I,EAAAmhE,qBAAAv4D,KAEAkxD,EACAA,EAAA5Z,EAAAvC,YAEAmc,EAAAntD,MAAA,SAAA1O,EAAAD,GACAgC,EAAA8hE,WAAAnmE,OAAAqC,GAAA4K,EAAAD,EAAA4pE,OAUA/zE,KAAAg0E,uBAAA,SAAAx0E,EAAA4+C,GAEA,IAAA5+C,EACA,OAAA,EAEA,IAAA4+C,EACAA,GAAA,EAEA5iD,EAAAge,QAAA1c,EAAA67D,gBAAA,CAAAn5D,EAAA4+C,KASAp+C,KAAAuhE,+BAAA,SAAAnjB,GAEAsD,EAAAvC,YAEAhxC,MAAA,WACA,IAAA3O,EAAArC,OAAA6C,MAEAwB,EAAAwyE,uBAAAx0E,EAAA4+C,OAaAp+C,KAAAmhE,cAAA,WACAzf,EAAAvC,YACAjgD,IAAA,iBAAA,SAOAc,KAAAshE,aAAA,WACA5f,EAAAvC,YACAjgD,IAAA,iBAAA,SAOAc,KAAAxC,WAAA,SAAAy2E,GACA53E,EAAAc,OAAAC,OAAAf,EAAA43E,GACAvyB,EAAAlkD,WAAAy2E,IAOAj0E,KAAAi8D,mBAAA,SAAAiY,GAEA,GAAA73E,EAAA4uE,eAAAzpE,EAAAopE,OAAAC,aACA,MAAA,IAAAtiE,MAAA,mDAEAlM,EAAA+9D,WAAA8Z,EACA73E,EAAA89D,YAAAt5D,KAAAwF,MAAA6tE,EAAAp3E,EAAAwwE,gBASAttE,KAAAm0E,mBAAA,SAAAC,EAAAC,GACAv3E,EAAA0wE,mBAAA4G,EACAt3E,EAAA2wE,2BAAA4G,GAOAr0E,KAAAnB,IAAA,SAAAy1E,GAGA,IAAAC,EAAA7yB,EAAAvqC,KAAAohC,gBACA,IAAA+7B,IACAC,EAAA7yB,EAAAvqC,KAAAuhC,gBAEA,IAAA+G,EAAAiC,EAAAvC,UAAAo1B,GAEAl4E,EAAA4uE,cAAAzpE,EAAAopE,OAAAC,cACArpE,EAAAshE,eAAAzmE,EAAA+9D,WAAA54D,EAAAuhE,WAAA4H,aAAAlrB,GAIA,GAAApjD,EAAA0kE,0BAAA,GAAA1kE,EAAA2kE,2BACAvhB,EAAAxgD,SAAA,mBAAAnB,OAAA,EAAA,GAEA4jD,EAAAlC,kBAAAC,GAEA,GAAApjD,EAAA6uE,4BAGAzrB,EAAAxgD,SAAA,mBAAAnB,OAAA,EAAA,GACA4jD,EAAAT,qBAMAjhD,KAAAw0E,0CAAA,aAMAx0E,KAAAsoD,aAAA,WACA,OAAA5G,GAMA1hD,KAAAsgD,WAAA,WACA,OAAAjkD,GAMA2D,KAAA0wE,aAAA,SAAAlxE,GAEA,OADAA,EAAAwtB,KAAA,uBAQAhtB,KAAAN,cAAA,SAAAF,GACA,OAAAkiD,EAAAxD,eAAA1+C,IAOAQ,KAAA2iE,qBAAA,SAAAv4D,EAAA5K,GAEA,IAAA2G,EA/7BA,SAAA3G,GAGA,IAAA2G,EAAArJ,EAAAwwE,cAEA,OAAAjxE,EAAA4uE,cACA,QACA9kE,EAAArJ,EAAAwwE,cACA,MACA,KAAA9rE,EAAAopE,OAAAG,YAEA,IAAAvrE,EACA,MAAA,IAAA+I,MAAA,uCAEA,IAAAmT,EAAAla,EAAA9B,cAAAF,GAEA,QAAA,IAAAkc,EAAAkjC,mBAAA,CAEA,GAAA,GAAAljC,EAAAkjC,mBAEA,MADAz9C,MAAAua,GACA,IAAAnT,MAAA,iCAGApC,EAAAuV,EAAAkjC,mBAGA,MACA,KAAAp9C,EAAAopE,OAAAI,OACA,OAAA,KAIA,OAAA,EA+5BAyJ,CAAAj1E,GAEA,GAAA,OAAA2G,EACA,OAAA,KAEA,IAAApI,EAAA8C,KAAAwF,OAAA+D,EAAAtN,EAAA8wE,iBAAAznE,GAAArJ,EAAA8wE,gBAKA,OAHApuE,GAAA,GAAA1C,EAAA+wE,oBAAAxxE,EAAA4uE,cAAAzpE,EAAAopE,OAAAG,cACAhtE,GAAAkyE,EAAAzwE,IAEA,GAOAQ,KAAA0lE,iBAAA,SAAAlmE,GACA,IAAAi8C,EAAAj6C,EAAA9B,cAAAF,GACA,IAAAi8C,EAAAgD,aAAAhD,EAAAiD,YACA,MAAA,IAAAn2C,MAAA,4CAOA,MALA,CACAvH,MAAAy6C,EAAAgD,WACA1gD,OAAA09C,EAAAiD,cAUA1+C,KAAA07D,kBAAA,WAEA,GAAAr/D,EAAA4uE,cAAAzpE,EAAAopE,OAAAC,aACA,MAAA,IAAAtiE,MAAA,mCAOA,MALA,CACAvH,MAAA3E,EAAA+9D,WACAr8D,OAAA1B,EAAA89D,cAaA,SAAAnW,gBAEA,IAAA+E,EAAAxtD,EAAA8lD,EAAAC,EAAAjlD,EACAolD,EAEA3kD,EAAA,CACA49C,cAAA,EACAg6B,oBAAA,EACAC,eAAA,EACAC,eAAA,GACAC,eAAA,EACA7qB,kBAAA,GA6LA,SAAA8qB,IAEA,GAAA,GAAAh4E,EAAAi4E,gBACA,OAAA,EAGA,IAAAxvB,EAAAwD,EAAAhE,mBAEAlkD,KAAAwF,MAAAk/C,IAAA1kD,KAAAwF,MAAAvJ,EAAA63E,iBACAK,IAIA,IAEAC,EAFAhoE,EAAApM,KAAA8O,IAAA7S,EAAA63E,eAAApvB,GAGAt4C,EAAA,EACAgoE,EAAAhoE,GAIAgoE,EAAAhoE,EAAA,GACA,GAAAgoE,EAAA,IACAA,EAAA,GAGAn4E,EAAA63E,eAAApvB,IACA0vB,IAAA,GAEA,IAAAlqB,EAAAxF,EAAA0vB,EAEAlsB,EAAA9D,mBAAA8F,GAoBA,SAAAiqB,IAEA,GAAA,GAAAl4E,EAAA+3E,cACA,OAAA,EAEA/3E,EAAA+3E,eAAA,EACA/3E,EAAA83E,eAAAz5D,cAAAre,EAAA83E,gBA/OA50E,KAAA8lD,OAAA,WACAhpD,EAAAktD,kBAAA,GAMAhqD,KAAA+lD,QAAA,WACAjpD,EAAAktD,kBAAA,GAMAhqD,KAAArC,KAAA,SAAAsH,GACA8jD,EAAA9jD,EAEA1J,EAAA0J,EAAAvH,aAEAnC,EAAAI,UAEA0lD,EAAA9lD,EAAA8lD,WACAC,EAAA/lD,EAAA+lD,gBACAjlD,EAAAd,EAAAc,UACAolD,EAAAlmD,EAAA0X,WAsBA9V,OAAA,QAAAkB,GAAA,cAAA,SAAAgJ,GAEA,GAAA,GAAAvK,EAAAktD,iBACA,OAAA,EAEAltD,EAAA49C,cAAA,KAKAv9C,OAAA,QAAA+3E,WAAA,SAAA7tE,GAEA,GAAA,GAAAvK,EAAAktD,iBACA,OAAA,EAGA,GAAA,GAAAltD,EAAA49C,aAEA,OADAv9C,OAAA,QAAA+C,IAAA,cACA,EAGApD,EAAA43E,mBAAArzB,EAAA8zB,cACA,IAAAC,EAAArsB,EAAA7E,sBAEA,GAAApnD,EAAA43E,oBAAA,GAAAU,EA8LA,SAAA9iE,GAEA,IAAAizC,EAhBA,SAAAjzC,GAEA,OAAA,GAAAmvC,EA3GA,SAAA15C,GAEA,IAAAstE,EAAAh5E,EAAAgmD,mBACAizB,EAAAj5E,EAAAimD,oBAEA+P,EAAAhR,EAAArgD,QAAAq0E,EAAAC,EACAvhE,EAAAutC,EAAAtgD,QAGA,GAAAqxD,EAAAt+C,EACA,OAAA,KAEA,IACAhI,EADAs1C,EAAAv5C,SACAhB,KACA2F,EAAA1E,EAAAgE,EAAAspE,EAGAE,EAAAl5E,EAAA68C,YACAs8B,EAAAnjB,EAAAh2D,EAAA68C,YAIAzsC,EAAA8oE,IACA9oE,EAAA8oE,GAEA9oE,EAAA+oE,IACA/oE,EAAA+oE,GAGA,IACAC,GADAhpE,EAAA8oE,IAVAC,EAAAD,IAWAxhE,EAAAs+C,GAIA,OAHAojB,GAAA,EAAA50E,KAAAuF,MAAAqvE,GAAAJ,EA6EAK,CAAApjE,GAvJA,SAAAtK,GAEA,IAAA2tE,EAAAt5E,EAAA8lD,kBAGA+P,GAFA71D,EAAA+lD,qBAEAf,EAAAtjD,UACAygC,EAAA8iB,EAAAvjD,SAGA,GAAAm0D,EAAA1zB,EACA,OAAA,KAGA,IACAxyB,EADAq1C,EAAAv5C,SACAf,IACAyF,EAAAxE,EAAAgE,EAAA2pE,EACA,GAAAnpE,EAAA,EACA,OAAA,KAGA,IAAA+oE,EAAAl5E,EAAA88C,aACAq8B,EAAAtjB,EAAA71D,EAAA88C,aAIA3sC,EAAA+oE,IACA/oE,EAAA+oE,GAEA/oE,EAAAgpE,IACAhpE,EAAAgpE,GAGA,IACAI,GADAppE,EAAA+oE,IAVAC,EAAAD,IAWA/2C,EAAA0zB,GAGA,OAFA0jB,GAAA,EAAA/0E,KAAAuF,MAAAwvE,GAAAD,EAuHAE,CAAAvjE,GAWAuqD,CAAAvqD,GAEA,GAAA,OAAAizC,EACA,OAAA,EAEAzoD,EAAAi4E,iBAAA,EACAj4E,EAAA63E,eAAApvB,EA/CA,WAEA,GAAA,GAAAzoD,EAAA+3E,cACA,OAAA,EAEA/3E,EAAA+3E,eAAA,EACA/3E,EAAA83E,eAAA15D,YAAA45D,EAAA,IA2CAgB,GApMAC,CA1CA,SAAA1uE,GAEA,OAAA,GAAAo6C,EACAp6C,EAAA,MAEAA,EAAA,MAmCA2uE,CAAA3uE,IAIA2tE,QAWAh1E,KAAAC,QAAA,WAEA9C,OAAA,QAAA+C,IAAA,cACA/C,OAAA,QAAA+C,IAAA,cA6LA,SAAA+1E,WAEA,IACA36E,EAAAE,EAEA06E,EAAAre,EAAAse,EAAAC,EAAAC,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,EACAC,EALAn1E,EAAAxB,KAAAs4C,EAAAn7C,OAAAqE,GACA7F,EAAA,IAAAC,iBAGAg7E,EAAA,KAAAC,EAAA,KAAAC,EAAA,KACAC,EAAA,IAAAC,cACA/6E,EAAA,IAAAC,YAAAmb,EAAA,KAAA4/D,EAAA,KAGAj3E,KAAA9B,OAAA,CACAg5E,aAAA,eACAC,qBAAA,gBACAC,cAAA,gBACAC,aAAA,eACAC,WAAA,oBACAC,SAAA,kBACAC,QAAA,iBACAC,YAAA,qBACAC,WAAA,aACAC,kBAAA,oBACAC,aAAA,eACAC,WAAA,aACAC,MAAA,eACAC,iBAAA,0BACAC,eAAA,wBACAC,gBAAA,kBACAC,iBAAA,0BACAC,iBAAA,0BACAC,wBAAA,2BACAC,sBAAA,0BAGA,IAAAh8E,EAAA,CACAi8E,kBAAA,OAIAC,wBAAA,OACAC,6BAAA,OAEAC,wBAAA,EACAC,2BAAA,EACAC,yBAAA,EACAC,0BAAA,EAEAC,wBAAA,GACAC,0BAAA,EAEAC,yBAAA,EACAC,4BAAA,EACAC,0BAAA,EACAC,2BAAA,EAEAC,qBAAA,EACAC,0BAAA,GACAC,0BAAA,UACAC,2BAAA,EACAC,6BAAA,IACAC,qBAAA,EAEAC,2BAAA,EACAC,oCAAA,MACAC,gCAAA,IACAC,iCAAA,IAEAC,yBAAA,EACAC,4BAAA,EACAC,0BAAA,EACAC,2BAAA,EAEAC,iCAAA,EAEAC,kBAAA,QACAC,wBAAA,IACAC,yBAAA,gBAEAC,sBAAA,EACAC,qBAAA,EACAC,wBAAA,EACAC,+BAAA,EACAC,mBAAA,EACAC,oBAAA,QACAC,qBAAA,EACAC,sBAAA,EAEAC,uBAAA,EACAC,oBAAA,GACAC,8BAAA,EACAC,yBAAA,SACAC,0BAAA,SACAC,0BAAA,EACAC,2BAAA,GAEAC,sBAAA,EACAC,mBAAA,GAEAC,4BAAA,OACAC,6BAAA,SACAC,6BAAA,GACAC,8BAAA,EAEAC,6BAAA,QACAC,8BAAA,SACAC,8BAAA,GACAC,+BAAA,EAEAC,kCAAA,EACAC,+BAAA,MACAC,oCAAA,QACAC,qCAAA,MACAC,qCAAA,GACAC,sCAAA,GAEAC,2BAAA,EACAC,wBAAA,GACAC,6BAAA,OACAC,8BAAA,MACAC,8BAAA,GACAC,+BAAA,EACAC,+BAAA,EAEAC,iCAAA,EACAC,8BAAA,GACAC,mCAAA,OACAC,oCAAA,MACAC,oCAAA,GACAC,qCAAA,EACAC,qCAAA,EAEAC,0BAAA,EACAC,sBAAA,GACAC,2BAAA,OACAC,4BAAA,MACAC,4BAAA,GACAC,6BAAA,GACAC,6BAAA,EAEAC,2BAAA,EACAC,8BAAA,EACAC,gCAAA,IAEAC,0BAAA,EACAC,4BAAA,EAEAC,6BAAA,UAKAC,EAAA,CACA/B,oCAAA,OACAC,qCAAA,SACAC,qCAAA,EACAC,sCAAA,GAGAr/E,EAAA,CACAylD,WAAA,EACAy7B,0BAAA,EACAC,QAAA,EACA9oE,WAAA,EACA+oE,QAAA,EACAC,mBAAA,EACAC,oBAAA,SASA,SAAAC,EAAAC,EAAAtwE,EAAAuwE,GACA5iF,EAAA2iF,EAGAC,IACA5H,EAAA4H,EACAvwE,EAAA/R,EAAA8R,2BAAAC,EAAA2oE,EAAA,WAGAr7E,EAAA6B,OAAAmhF,GAEA,IAAA3mB,EAAAh8D,EAAA+B,aAkBA,GAjBAlC,EAAAm8D,EAAAn8D,aACAm8D,EAAA6mB,YAGAxwE,EAAAwK,eAAA,oCACAnc,EAAA0/E,+BAAA/tE,EAAA+tE,gCAEA,OAAA1/E,EAAA0/E,iCACA1/E,EAAAc,OAAAC,OAAAf,EAAA0hF,IAGA/vE,GACAxM,EAAAhE,WAAAwQ,GAiFA,WACA,IAAAywE,EAAA9iF,EAAA2kD,aAGAuP,EAAA4uB,EAAA3uB,aAEA,IAAAzzD,EAAAy+E,sBACAz+E,EAAAy+E,oBAAAjrB,GAEA,IAAAxzD,EAAAg/E,qBACAh/E,EAAAg/E,mBAAAxrB,GAEA,IAAAxzD,EAAA8gF,wBACA9gF,EAAA8gF,sBAAAttB,GAEA,IAAAxzD,EAAAggF,0BACAhgF,EAAAggF,wBAAAxsB,GAEA,IAAAxzD,EAAAugF,gCACAvgF,EAAAugF,8BAAA/sB,GAEAxzD,EAAAqiF,yBAAAriF,EAAA49E,gCAGA,QAAAwE,EAAAE,0BACAtiF,EAAAk+E,wBAAA,GAxGAqE,GAGA,GAAAviF,EAAAw+E,sBAAA,CACA/D,EAAA,IAAA+H,UACA,IAAAC,EAAA,CACAC,aAAA1iF,EAAAy+E,oBACAkE,sBAAA3iF,EAAA0+E,8BAEAjE,EAAAn5E,KAAAhC,EAAAmjF,GAIAziF,EAAAuhF,2BACA3G,EAAA,IAAA5H,aACA1xE,KAAAhC,EAAAU,EAAA,UAGAA,EAAA6gF,2BACAxG,EAAA,IAAAuI,oBACAthF,KAAA6D,EAAAnF,GAGA,IAAA6iF,EAAAvjF,EAAAwjF,eAGApI,EAAAp5E,KAAAtB,GAAA,EAAA6iF,GAOA,SAAAE,IAEA,GAAA,GAAAtiF,EAAAylD,UACA,OAAA,EAKA,GAHAzlD,EAAAylD,WAAA,EAGAlmD,EAAAw8E,wBAAA,CACA,IAAAwG,EAAAhjF,EAAAw8E,wBAEA,GAAAx8E,EAAAy8E,4BACAuG,EAAApjF,EAAAuZ,gBAAA6pE,EAAAhjF,EAAAy8E,4BAEA5C,EAAAh3E,IAAA,mBAAAmgF,QAEA,GAAAhjF,EAAAy8E,4BAEAuG,EAAApjF,EAAAuZ,gBAAA,UAAAnZ,EAAAy8E,2BACA5C,EAAAh3E,IAAA,mBAAAmgF,IAKA,GAAAhjF,EAAAg+E,uBACA7D,EAAA,IAAA8I,sBACA3hF,KAAA6D,EAAAnF,GAIA,GAAAA,EAAAi+E,sBACA7D,EAAA,IAAA8I,qBACA5hF,KAAA6D,EAAAnF,GAIA46E,GACAA,EAAAp4E,MA82CA,WAGAvD,EAAA+C,GAAA1C,EAAAuC,OAAAshF,mBAAAC,IAIAnkF,EAAA+C,GAAA1C,EAAAuC,OAAAomD,YAAAC,GAEAuyB,GACA35E,OAAA25E,GAAAz4E,GAAAy4E,EAAA54E,OAAAsgE,aAAAkhB,GAGA,GAAArjF,EAAA++E,uBAEAn/E,EAAA+c,gBAAAu9D,EAAA,kBACAt6E,EAAA+c,gBAAAs9D,EAAA,kBAEA36E,EAAAgkF,cAAApJ,GACA56E,EAAAikF,cAAAtJ,IAKA,GAAAj6E,EAAAohF,2BAGAvH,EAAAj9D,MAAA4mE,GAAAC,IAKA5J,EAAA73E,GAAA,iBAAA0hF,GAGAznC,EAAAj6C,GAAAmD,EAAAtD,OAAA45E,MAAAkI,IAGA/I,GAAA,GAAAn6E,EAAAkhF,0BACA9H,EAAAj9D,MAAAgnE,EAAAC,GAIAtJ,IACA36E,EAAA+c,gBAAA49D,EAAA,mBACAj7E,EAAAwkF,cAAAvJ,IAIAC,IACA56E,EAAA+c,gBAAA69D,EAAA,mBACAl7E,EAAAykF,0BAAAvJ,IAIAJ,GACAn+B,EAAAj6C,GAAAmD,EAAAtD,OAAAu5E,YAAA4I,IAGA3J,GACAA,EAAA93E,aAGAm4E,EAAAn4E,aAGAzB,OAAA45E,GAAA14E,GAAA04E,EAAA74E,OAAAoiF,KAAAC,IACApjF,OAAA45E,GAAA14E,GAAA04E,EAAA74E,OAAAsiF,KAAAC,IAGApuC,GAAA8jC,GACA9jC,GAAA+jC,GACA/jC,GAAAgkC,GAGA/9B,EAAAj6C,GAAAmD,EAAAtD,OAAA+5E,gBAAAyI,IAKAxK,EAAA73E,GAAA,aAAA,wBAAA,SAAAgJ,GACAixC,EAAA9+B,QAAAhY,EAAAtD,OAAAg6E,qBAGAhC,EAAA73E,GAAA,aAAA,wBAAA,SAAAgJ,GAGA,GAFA7F,EAAAm/E,wBAAAt5E,IAGAixC,EAAA9+B,QAAAhY,EAAAtD,OAAAi6E,qBAp8CAv5E,GAyCA,SAAAgiF,EAAA5kC,EAAA6kC,GAEA,IAAAC,EAAA,iBACA,SAAAzkF,EAAAyhF,+BACAgD,EAAA,iBAEA,IAAAvgF,EAAA,GAOA,OANAA,GAAA,wCAAAsgF,EAAA,KACAtgF,GAAA,sCACAA,GAAA,mCAAAy7C,EAAA,WACAz7C,GAAA,mCAAAugF,EAAA,gCACAvgF,GAAA,SASA,SAAAwgF,EAAA97E,GAEAA,IACAzJ,EAAAyJ,GAGA,IAAA+2C,EA86CA,WACA,IAAAA,EACA,OAAA3/C,EAAAo+E,oBACA,QACA,KAAA,EAAAz+B,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAAA,MACA,KAAA,EAAAA,EAAA,aAGA,SAAA3/C,EAAAq+E,sBACA1+B,GAAA,oBAEA,OAAA,EAh8CAglC,GAGAzgF,GAFA5E,EAAA2kD,aAEA,oCAEA//C,GAAA,gCACAA,GAAAqgF,EAAA5kC,EAAA,GACAz7C,GAAAqgF,EAAA5kC,EAAA,GACAz7C,GAAAqgF,EAAA5kC,EAAA,GAEAz7C,GAAA,SAKA,GAAAlE,EAAA++E,uBACA76E,GAAA,uDAAAlE,EAAAg/E,mBAAA,WACA96E,GAAA,wDAAAlE,EAAAg/E,mBAAA,YAIA,GAAAh/E,EAAA+/E,4BACA77E,GAAA,wDAAAlE,EAAAggF,wBAAA,YAIA,GAAAhgF,EAAAsgF,kCACAp8E,GAAA,8DAAAlE,EAAAugF,8BAAA,YAIAr8E,GAAA,SAGA/E,EAAAwD,OAAAuB,GAKA21E,EAAA16E,EAAAyD,SAAA,sBACA44D,EAAAqe,EAAAj3E,SAAA,oBAGAk3E,EAAAte,EAAA54D,SAAA,cACAm3E,EAAAve,EAAA54D,SAAA,cACAo3E,EAAAxe,EAAA54D,SAAA,cAGAk3E,EAAA52E,KAAA,WAAA,GACA62E,EAAA72E,KAAA,WAAA,GACA82E,EAAA92E,KAAA,WAAA,GAGAu3E,GACAA,EAAAvH,WAAA2G,GAKA,GAAA75E,EAAA++E,uBACA9E,EAAAJ,EAAAj3E,SAAA,kBACAs3E,EAAAL,EAAAj3E,SAAA,oBAIA,GAAA5C,EAAA+/E,4BACAxF,EAAAV,EAAAj3E,SAAA,oBAIA,GAAA5C,EAAAsgF,kCACA9F,EAAAX,EAAAj3E,SAAA,0BAOA,GAAA5C,EAAAy/E,oCAOA,QALAzkE,EAAApb,EAAAib,sBAAA7a,EAAA0/E,+BAAA1/E,EAAA65E,IAEA+K,WAGA,OAAA5kF,EAAA0/E,iCACA1/E,EAAA0/E,+BAAA,MACA1/E,EAAAc,OAAAC,OAAAf,EAAA0hF,IAGApiF,EAAAulF,qBAAA7pE,IAMA,GAAAhb,EAAAuhF,2BAEA3G,EAAA1H,WAAA2G,GAGA,GAAA75E,EAAAwhF,6BAGA5G,EAAA9jB,aACA/0D,OAAAmB,KAAA,YAAA,GAEAzC,EAAAkhF,0BAAA,IASA,GAAA3hF,EAAA6gF,0BACAxG,EAAAnH,WAAA2G,GAKAa,EAAA13E,QAAAw4D,GAOA,SAAAspB,EAAAC,GAGA,IAAAC,EAAAC,GAAAF,GACAnlF,EAAAwP,2BAAA41E,GAGA,IAAAE,EAAAC,GAAAJ,GACAnlF,EAAAwP,2BAAA81E,GAOA,SAAAjQ,IAuBA,GApBAwF,IACAxY,WAAAwY,EAAA3jB,aAGAl3D,EAAA+B,aAAAsgE,WAAAjiE,EAAA2+E,yBAAA3+E,EAAA4+E,0BAAA5+E,EAAA6+E,0BAAA7+E,EAAA8+E,4BACAl/E,EAAA+B,aAAAsgE,WAAAjiE,EAAA2+E,yBAAA3+E,EAAA4+E,0BAAA5+E,EAAA6+E,0BAAA7+E,EAAA8+E,6BAKA,GAAA9+E,EAAA++E,uBACAn/E,EAAA+B,aAAAs4E,EAAAj6E,EAAAi/E,4BAAAj/E,EAAAk/E,6BAAAl/E,EAAAm/E,6BAAAn/E,EAAAo/E,+BACAx/E,EAAA+B,aAAAu4E,EAAAl6E,EAAAq/E,6BAAAr/E,EAAAk/E,6BAAAl/E,EAAAu/E,8BAAAv/E,EAAAw/E,iCAIA,GAAAx/E,EAAAohF,2BACAgE,GAAA,GAGApqE,EAAA,CAEA,IAAAqqE,EAAArqE,EAAA87C,aAEA,GAAA,OAAA92D,EAAA0/E,+BAAA,CACA,IAAAxtC,EAAA2nC,EAAAl1E,QACAqW,EAAAsqE,QAAApzC,GACAtyC,EAAA+B,aAAA0jF,EAAA,OAAArlF,EAAA4/E,qCAAA,EAAA5/E,EAAA8/E,4CAGAlgF,EAAA+B,aAAA0jF,EAAArlF,EAAA2/E,oCAAA3/E,EAAA4/E,qCAAA5/E,EAAA6/E,qCAAA7/E,EAAA8/E,uCAMAlF,GACAA,EAAA5F,gBAkBA,WAEAuF,GACA36E,EAAA+B,aAAA44E,EAAAv6E,EAAAigF,6BAAAjgF,EAAAkgF,8BAAAlgF,EAAAmgF,8BAAAngF,EAAAogF,gCAGA5F,GACA56E,EAAA+B,aAAA64E,EAAAx6E,EAAAwgF,mCAAAxgF,EAAAygF,oCAAAzgF,EAAA0gF,oCAAA1gF,EAAA2gF,sCAGA,GAAAtG,EAAA,CACA,IAAAkL,EAAAlL,EAAAvjB,aACAl3D,EAAA+B,aAAA4jF,EAAAvlF,EAAA+gF,2BAAA/gF,EAAAghF,4BAAAhhF,EAAAihF,4BAAAjhF,EAAAkhF,+BA3BAsE,GAGAV,EAAAhL,GACAgL,EAAA/K,GACA+K,EAAA9K,GA8wBA16E,EAAAkgE,gBAlCA,GAAAx/D,EAAA4gF,qCAAApG,GACAA,EAAAz4E,OAEA,GAAA/B,EAAAqgF,+BAAA9F,GACAA,EAAAx4E,OAEA,GAAA/B,EAAAmhF,6BAAA9G,GACAA,EAAAvjB,aAAA/0D,SAUA,GAAA/B,EAAA4gF,qCAAApG,GACAA,EAAAj3E,OAEA,GAAAvD,EAAAqgF,+BAAA9F,GACAA,EAAAh3E,OAEA,GAAAvD,EAAAmhF,6BAAA9G,GACAA,EAAAvjB,aAAAvzD,QAruBA,SAAAkiF,IAEA,IACA/tE,EACAguE,EAAAC,EAAAC,EAFAC,EAAA1gF,EAAA2gF,qBAEAC,EAAA,EAEAJ,EAAAxgF,EAAA6gF,eAAAH,EAAAI,eACAL,EAAAzgF,EAAA6gF,eAAAH,EAAAK,gBAGAH,EAAAF,EAAAK,aAAAl5E,aACA64E,EAAAK,aAAArjF,IAAA,UAAA,IAEAgjF,EAAAK,aAAAnkF,OAIA2V,EAFAguE,EAAAK,EAAAF,EAAAM,gBAAAn5E,aAGA24E,GACAjuE,EAAAguE,EAAAG,EAAAI,aAAAj5E,aACA64E,EAAAK,aAAArjF,IAAA,UAAA,IAEAgjF,EAAAI,aAAAlkF,OAEA8jF,EAAAM,gBAAAtjF,IAAA,UAAA,GAGAjD,EAAA+B,aAAAkkF,EAAAM,gBAAAJ,EAxBA,GAyBAvqB,EAAA34D,IAAA,CAAA4H,MAAAs7E,EAAA,KAAAphF,MAAA+S,EAAA,OAGAkuE,IACAhmF,EAAA+B,aAAAkkF,EAAAK,aA5BA,EADA,GA8BAtmF,EAAAsR,YAAA20E,EAAAK,eAGAP,IACA/lF,EAAAsR,YAAA20E,EAAAI,cACArmF,EAAA+B,aAAAkkF,EAAAI,aAAAP,EAnCA,IA6CA,SAAAU,EAAArB,GACA,IAAA3hF,EAAA2hF,EAAA7hF,KAAA,SACA,QAAAsH,IAAApH,GAAA,MAAAA,EACA,OAAA,EAEA,IAAAg8C,EAAA9/C,EAAAunE,QAAAzjE,GAEA,IAAAg8C,EACA,OAAA,EAEAinC,EAAAtB,EAAA3lC,GAiBA,SAAAknC,EAAAtB,GAEAA,EAAAxkC,MAAA,GAAAz+C,KAAA,KAoDA,SAAAwkF,EAAA99E,EAAA+9E,EAAAC,GAEA,IAAA5jF,EAAA,GACA,GAAA,GAAA7C,EAAA88E,oBAAA,CACAj6E,EAAA,gBAAA,QAEA,IAAAs9C,EApDA,SAAA13C,EAAAg+E,GAIA,IAFAtmC,EAAAngD,EAAA+8E,4BAEA,GACA,OAAA,EAGA,IAAAv7B,EAAA5hD,EAAA6D,eAAAgF,GACAiB,EAAA83C,EAAA78C,MACAgF,EAAA63C,EAAA9/C,OAWA,GATA+kF,IACAA,EAAAtqE,eAAA,gBACAzS,EAAA+8E,EAAA/8E,YAEA+8E,EAAAtqE,eAAA,iBACAxS,EAAA88E,EAAA98E,cAIAD,GAAA,EACA,OAAA,EAGA,IAAAg9E,EAAAh9E,EAAAC,EAAAD,EAAAC,EAKA,GAJA,EAAAw2C,EAEAumC,EAEA1mF,EAAAk9E,6BACA,OAAA,EAGA,IAAA/8B,EAAAumC,EAAA1mF,EAAAk9E,6BAAA,EAIA,OAFA/8B,EAAA37C,KAAAuF,MAAAo2C,GAgBAwmC,CAAAl+E,EAAAg+E,GAEA5jF,EAAA,gBAAAs9C,EAAA,KACAt9C,EAAA,gBAAA7C,EAAAg9E,0BACAn6E,EAAA,iBAAA7C,EAAAi9E,2BAGA,SAAAuJ,GAAA,GAAAxmF,EAAAo9E,4BACAv6E,EAAA,oBAAA,WAEA,GAAA7C,EAAAm9E,sBACAt6E,EAAA,cAAA,4BAGA4F,EAAA5F,IAAAA,GAOA,SAAA+jF,EAAAn+E,EAAA22C,GAEA,IAAAynC,EAAA7mF,EAAAs9E,gCACAwJ,EAAA9mF,EAAAu9E,iCACA70E,EAAA1I,EAAAq9E,oCAKA,OAHAz9E,EAAA6Q,4BAAAhI,EAAA22C,EAAA11C,WAAA01C,EAAAz1C,YAAAk9E,EAAAC,EAAAp+E,GAWA,SAAAq+E,EAAAhC,EAAA3lC,EAAA2C,GAEA,IAAAilC,EAAAjC,EAAAniF,SAAA,oBAEAoiF,EAAAC,GAAAF,GAEA,QAAA,IAAA3lC,EAAAvvC,UAAA,IAAAuvC,EAAAvvC,SACA,MAAA,IAAA3D,MAAA,gGAAA,WAEA,IAAA2D,EAAAuvC,EAAAvvC,SAEAo3E,EAAAlC,EAAA7hF,KAAA,YAEA6hF,EAAA7hF,KAAA,WAAA2M,GAEA,IAAAnH,EAAAvD,EAAA+hF,aAAAnC,GAEAyB,EAAArhF,EAAAgiF,aAAApC,GAKA,GAHAp8E,WAAAxD,EAAAiiF,qBAGAH,GAAAp3E,IAAA,IAAAkyC,EAAA,CAEA,IAAAt5C,EAAAu+E,EAAApkF,SAAA,OAEA,GAAAw8C,EAAA11C,YAAA,GAAA01C,EAAAz1C,aACArK,EAAA+nF,mBAAA5+E,EAAA22C,GAGA,IAAAkoC,EAAA,GASAf,EAAA99E,EAAA+9E,EANAc,EADA,SAAAd,GAAA,GAAAxmF,EAAAo9E,0BACAwJ,EAAAn+E,EAAA22C,GAGAx/C,EAAA+O,oBAAAlG,EAAA22C,EAAA11C,WAAA01C,EAAAz1C,YAAAjB,EAAAC,aAIAszC,EAAA9+B,QAAAhY,EAAAtD,OAAA+5E,gBAAAmJ,QAQA,GAHAt8E,EAAA7I,EAAAgQ,uBAAAC,EAAAm3E,EAAA5nC,EAAA11C,WAAA01C,EAAAz1C,YAAAjB,EAAAC,YAGA,GAAAy2C,EAAAmoC,iBAAA,CAIA,GAHA9+E,EAAAhH,OAAA,EAAA,GACA6kF,EAAAtB,GAEA,SAAAwB,GAAA,GAAAxmF,EAAAo9E,0BACAkK,EAAAV,EAAAn+E,EAAA22C,QAEAkoC,EAAA1nF,EAAAoJ,yBAAAg+E,EAAA5nC,EAAA11C,WAAA01C,EAAAz1C,YAAAjB,EAAAC,YAGAF,EAAA5F,IAAA,QAAAykF,EAAA59E,WAAA,MAEA68E,EAAA99E,EAAA+9E,EAAAc,GAEArrC,EAAA9+B,QAAAhY,EAAAtD,OAAA+5E,gBAAAmJ,QAGAt8E,EAAAhH,OAAA,EAAA,GA5KA,SAAAujF,GAEAA,EAAAxkC,MAAA,GAAAj9C,KAAA,KA2KA7C,CAAAskF,GACAD,EAAA7hF,KAAA,aAAA,GAEAiC,EAAAqiF,eAAAzC,IACA9oC,EAAA9+B,QAAAhY,EAAAtD,OAAAk6E,yBAEAtzE,EAAAvF,KAAA,YAAAk8C,EAAAh8C,OACAqF,EAAAzG,GAAA,QAAA,WAGA,IAAAyG,EAAA3H,OAAA6C,MACAu7C,EAAAz2C,EAAAvF,KAAA,aAEAuF,EAAAhH,OAAA,EAAA,GAGA,IAAAsjF,EAAAt8E,EAAAI,SAAAA,SACA29E,EAAArhF,EAAAgiF,aAAApC,GACAC,EAAAC,GAAAF,GACAp8E,EAAAxD,EAAAiiF,qBACA1+E,EAAAvD,EAAA+hF,aAAAnC,GAEAuB,EAAAtB,GACAD,EAAA7hF,KAAA,aAAA,GAEAiC,EAAAqiF,eAAAzC,IACA9oC,EAAA9+B,QAAAhY,EAAAtD,OAAAm6E,uBAEA18E,EAAAmoF,qBAAA,KAAAh/E,GAEA,IAAA22C,EAAA9/C,EAAAunE,QAAA3nB,GAEAooC,EAAA,GAEA,SAAAd,GAAA,GAAAxmF,EAAAo9E,0BACAwJ,EAAAn+E,EAAA22C,GAEAkoC,EAAA1nF,EAAA+O,oBAAAlG,EAAA22C,EAAA11C,WAAA01C,EAAAz1C,YAAAjB,EAAAC,GAGAF,EAAAhH,OAAA,EAAA,GAEA8kF,EAAA99E,EAAA+9E,EAAAc,GAEArrC,EAAA9+B,QAAAhY,EAAAtD,OAAA+5E,gBAAAmJ,MAeA,SAAAsB,EAAAtB,EAAA3lC,GAEA,IAEA,IAAA4nC,EAAAjC,EAAAniF,SAAA,oBAGA,GAAA,MAAAw8C,EAKA,OAJA4nC,EAAA9iF,KAAA,IACA6gF,EAAApzD,WAAA,SACAozD,EAAApzD,WAAA,QACAozD,EAAApzD,WAAA,aACA,EAGAozD,EAAA7hF,KAAA,SAEA6hF,EAAA7hF,KAAA,QAAAk8C,EAAAh8C,OACA2hF,EAAA7hF,KAAA,OAAAk8C,EAAAtkC,MAGA,GAAA9a,EAAAs+E,qBAAA,SAAAl/B,EAAAtkC,OAEAskC,EAAAzrB,KACAoxD,EAAAriF,SAAA,sBAEAqiF,EAAA1yE,YAAA,uBAGA00E,EAAAhC,EAAA3lC,GAGA,IAAA8lC,EAAAC,GAAAJ,GACA,OAAA3lC,EAAAtkC,MACA,IAAA,QACAoqE,EAAAnjF,OACA,MACA,QACAmjF,EAAA3hF,QAIA,MAAA4d,GAMA,WAJA,IAAAA,EAAAumE,UAAA,WAAAvmE,EAAAumE,UACApoF,EAAAqoF,+BAAAxmE,EAAAsxB,SAEAu0C,EAAA9iF,KAAA,IACA,IAAAgI,MAAAiV,IAWA,SAAA0iE,IAEA,IAAAjJ,EACA,OAAA,EAEA,GAAA,GAAAjJ,IACA,OAAA,EAEA,IAAAiW,EAAAhN,EAAA9jB,aAEA+wB,EAAA,EACA,GAAApnF,EAAAkhF,0BAAA,GAAA3hF,EAAAwhF,6BACAqG,EAAA7nF,EAAAshF,iCAGAsG,EAAApnC,OAAA/+C,OAAAomF,EAAA,GAEAD,EAAA1kF,KAAA,YAAA,GAOA,SAAA0gF,IAEA,IAAAhJ,EACA,OAAA,EAEA,GAAA,GAAAjJ,IACA,OAAA,EAEA,IAAAiW,EAAAhN,EAAA9jB,aAEA+wB,EAAA,EAEA,GAAApnF,EAAAkhF,0BAAA,GAAA3hF,EAAAwhF,6BAEAoG,EAAArkF,OACAq3E,EAAA3F,mBAEA4S,EAAA7nF,EAAAshF,iCAGAsG,EAAApnC,OAAAj9C,OAAA9B,OAAAomF,EAAA,GAEAD,EAAA1kF,KAAA,YAAA,GAQA,SAAAyuE,IAKA,OAAA,IAHAiJ,EAAA9jB,aAEA5zD,KAAA,YAgCA,SAAA4kF,IAEA,IAAA3B,EAAAhhF,EAAA4iF,kBACAt/E,EAAAtD,EAAA6iF,cAAA7B,GAEA8B,EAAAroF,EAAA6D,eAAA0iF,GACA17E,EAAAw9E,EAAAx9E,KACAC,EAAAu9E,EAAAv9E,IAGA,GAAA,GAAA1K,EAAAo9E,0BAAA,CAEA,IAAA57B,EAAA5hD,EAAA6D,eAAAgF,GACAgC,GAAA+2C,EAAA/2C,KACAC,GAAA82C,EAAA92C,SAIAD,GAAAzK,EAAA09E,0BACAhzE,GAAA1K,EAAAw9E,yBAIA9C,EAAAnsC,YAAA9jC,EAAAC,GAOA,SAAAw9E,IAEA,IAAAC,EAAAnoF,EAAAs9E,gCACA8K,EAAApoF,EAAAu9E,iCAEA7C,EAAA4K,QAAA6C,EAAAC,GAKA7B,EAFA7L,EAAA2N,YAEA,SAWA,SAAAC,EAAAj9C,EAAA+T,EAAAmpC,GAEAtsC,EAAA9+B,QAAAhY,EAAAtD,OAAA65E,kBAEA,IAAAjrC,EAAAzwC,EAAA69E,kBAOA,OANA0K,IACA93C,EAAA83C,GAGApjF,EAAAqjF,gBAAA,MAAA,GAEA/3C,GACA,QACA,IAAA,OACAg4C,EAAArpC,GACA,MACA,IAAA,SAgDA,SAAAspC,EAAAr9C,EAAA+T,GAIA,GAAA,GAFAj6C,EAAAwjF,cAIA,OADAloF,EAAAmoF,YAAAxpC,GACA,EAKA,MAAA3+C,EAAAmoF,cACAnoF,EAAAmoF,YAAA,MAEA,IAAA/C,EAAA1gF,EAAA2gF,qBAGA,OAAAz6C,GACA,IAAA,QACAg7C,EAAAR,EAAAK,aAAA9mC,GACAqmC,IAEA,IACAoD,GADAjpF,EAAA6D,eAAAoiF,EAAAK,cACAz7E,KAEAtF,EAAA2jF,gBAAA,SAEA,MACA,IAAA,OACAzC,EAAAR,EAAAI,aAAA7mC,GACAqmC,IAGAoD,GADAjpF,EAAA6D,eAAAoiF,EAAAI,cACAx7E,KAEAtF,EAAA2jF,gBAAA,QAEA,MACA,QACA,MAAA,IAAA58E,MAAA,oBAAAm/B,GAIA,IAAA09C,EAAA/oF,EAAA89E,wBACAkL,EAAAhpF,EAAA+9E,yBAGAkL,EAAA,CACAh5C,SAAA84C,EACA9/C,OAAA+/C,EACApoC,OAAA,EACAyJ,OAAA,WAMA,GAJAllD,EAAAqjF,kBACA9N,EAAA34E,OAGA,MAAAtB,EAAAmoF,YAAA,CACA,IAAAv9C,EAqpBA,SAAA+T,GAEA,IAGA8pC,EAHA/jF,EAAA2gF,qBAGAK,gBAAAjjF,KAAA,SACA40B,EAAAsnB,EAAAh8C,MAEAioC,EAAA,OACA69C,EAAApxD,IACAuT,EAAA,SAEA,OAAA,EAjqBA89C,CAAA1oF,EAAAmoF,aACAF,EAAAr9C,EAAA5qC,EAAAmoF,kBAGAzjF,EAAAikF,mBACAntC,EAAA9+B,QAAAhY,EAAAtD,OAAA85E,kBAOAngB,EAAA5rB,QAAA,CAAAnlC,KAAAo+E,EAAA,MAAAI,GArHAP,CAAAr9C,EAAA+T,GACA,MACA,IAAA,gBACAqpC,EAAArpC,GAAA,GAAA,IA2HA,SAAAiqC,EAAAjqC,EAAA/lC,EAAAiwE,GAEAA,EACAlqC,EAAA39C,OAAAzB,EAAA89E,wBAAAzkE,EAAAiwE,GAEAlqC,EAAA39C,OAAAzB,EAAA89E,wBAAAzkE,GAOA,SAAAovE,EAAArpC,EAAAiB,EAAAkpC,GAEA,IAAAlpC,EACAA,GAAA,EAEA,IAAAwlC,EAAA1gF,EAAA2gF,qBAEAO,EAAAR,EAAAI,aAAA7mC,GAEA,IAAAoqC,EAAA5pF,EAAA6D,eAAAoiF,EAAAM,iBAEAvmF,EAAA+B,aAAAkkF,EAAAI,aAAAuD,EAAA/+E,KAAA++E,EAAA9+E,KAGA,IAAA++E,EAAAhpF,EAAAqY,WASA,GARArY,EAAAqY,WAAArY,EAAAohF,QACAphF,EAAAohF,QAAA4H,EAEAxtC,EAAA9+B,QAAAhY,EAAAtD,OAAAg5E,cAEAgL,EAAAI,aAAAzlC,MAAA,GACAqlC,EAAAM,gBAAA3lC,MAAA,GAEA,GAAAH,EAEAwlC,EAAAM,gBAAA1kF,OAAA,EAAA,GACAokF,EAAAI,aAAAxkF,OAAA,EAAA,GACA0D,EAAAikF,mBACAntC,EAAA9+B,QAAAhY,EAAAtD,OAAA85E,iBAEA,IAAA4N,GACA7O,EAAA34E,WAEA,CAUA,GATA8jF,EAAAI,aAAAxkF,OAAA,EAAA,GAEA4nF,EAAAxD,EAAAM,gBAAA,GAAA,WACAhhF,EAAAikF,mBACAntC,EAAA9+B,QAAAhY,EAAAtD,OAAA85E,iBACA,IAAA4N,GACA7O,EAAA34E,UAGA,GAAA24E,EAAA7vB,YAEAw+B,EADA3O,EAAA2N,YACA,GAIAgB,EAAAxD,EAAAI,aAAA,IA8DA,SAAAyD,IAIA,OAFA7P,EAAAj3E,SAAA,sBASA,SAAAwiF,EAAA/kC,GAEA,GAAA,GAAAzgD,EAAAmc,aAAA,wBACA,OAAA,EAEA,GAAA,GAAAtb,EAAAqhF,kBACA,OAAA,EAEA,IAAAzhC,EACAA,GAAA,EAEA,IAAAspC,EAAAD,KAEA,IAAArpC,EACAspC,EAAAnpC,OAAA/+C,OAAA,EAAA,GAAAM,OAEA4nF,EAAAnpC,OAAA/+C,OAAAzB,EAAAshF,gCAAA,GAAA,WAAAqI,EAAA5nF,UAGAtB,EAAAqhF,mBAAA,EAkBA,SAAA8H,EAAAvpC,GAGA,GAAA,GAAAzgD,EAAAmc,aAAA,wBACA,OAAA,EAEA,GAAA,GAAAtb,EAAAqhF,kBACA,OAAA,EAGA,IAAAzhC,EACAA,GAAA,EAEA,IAAAspC,EAAAD,KAEA,IAAArpC,EACAspC,EAAAnpC,OAAAj9C,QAGAomF,EAAAnpC,OAAAj9C,OAAA9B,OAAA,EAAA,GACAkoF,EAAAloF,OAAAzB,EAAAshF,gCAAA,IAIA7gF,EAAAqhF,mBAAA,EAsBA,SAAA+H,EAAAxlC,GAEA,GAAAA,GAAA5jD,EAAAshF,oBACA,OAAA,EAEA,OAAA19B,GACA,IAAA,QACAg2B,GACAA,EAAAvjB,aAAAvzD,OACA,MACA,IAAA,QACA82E,GACAA,EAAAvjB,aAAA/0D,OACA,MACA,QACA,MAAA,IAAAmK,MAAA,wBAAAm4C,GAIA5jD,EAAAshF,oBAAA19B,EAWA,SAAA6D,EAAAhlD,EAAA4mF,EAAAt0C,GAIA,IAAA4J,EAAA9/C,EAAAqqD,kBAEAxkD,EAAA4kF,QAAA3qC,GAAA,EAAA5J,GAEA,IAAA0J,EAAAE,EAAAh8C,MAGAq3E,GACAA,EAAAvY,UAAAhjB,GAGA07B,GACA,GAAAn6E,EAAAkhF,0BACAiC,IAGA,SAAAxkC,EAAAtkC,KACA+uE,EAAA,SAIAA,EAAA,SASA,SAAAxG,EAAAr4E,EAAAg/E,GACA1qF,EAAAyoD,WAAAiiC,GAQA,SAAAtG,EAAA14E,GAGA,GAAAmvE,GAAA,GAAAA,EAAA8P,kBAAAj/E,GACA,OAAA,EAEAixC,EAAA9+B,QAAAhY,EAAAtD,OAAA45E,MAAAzwE,GASA,SAAA24E,KAGA,IACAuG,EADA/kF,EAAA4iF,kBACAz1E,SAAA,sBACA8sC,EAAAj6C,EAAAglF,iBAEA,GAAAD,EASA,OANA,GAAAlqF,EAAAu+E,qBACA/gE,SAAA4sE,KAAAhrC,EAAAzrB,KAEAlc,OAAAnU,KAAA87C,EAAAzrB,KAAA,WAGA,EAIA,GAAA3zB,EAAAohF,2BACA,GAAAphF,EAAAqhF,8BAAA,GAAAl8E,EAAAklF,mBAAA,WAxHA,GAAA5pF,EAAAqhF,kBACA8H,IAEAxE,IA0HAxK,GAAA,GAAA56E,EAAAwhF,4BAAAr8E,EAAAklF,mBAAA,UAAAllF,EAAAmlF,0BACA1G,KAUA,SAAAI,GAAAh5E,GAEA4vE,GAAAz1E,EAAAklF,mBAAA,UAAA,GAAAllF,EAAAmlF,0BACAzG,IAOA,SAAAL,KAEAoG,IAQA,SAAAnG,KAEA2B,IAQA,SAAAmF,GAAAh5E,GACA,IAAAwzE,EAAAxzE,EAAA1I,SACA1D,EAAAqlF,iBAAAzF,GAMA,SAAAb,KAEA5kF,EAAAmrF,cACAnrF,EAAAorF,eAGAzuC,EAAA9+B,QAAAhY,EAAAtD,OAAA05E,cAOA,SAAA6I,KAEA9kF,EAAAmrF,cACAnrF,EAAAqrF,kBAGA1uC,EAAA9+B,QAAAhY,EAAAtD,OAAA25E,YAOA,SAAA4H,GAAAp4E,EAAA5H,EAAAyM,GAEAiqE,EAAA52E,KAAA,UAAAE,IACAg8C,QAAA9/C,EAAAunE,QAAAzjE,GACA2jF,EAAAjN,EAAA16B,SAAA,IAGA26B,EAAA72E,KAAA,UAAAE,IACAg8C,QAAA9/C,EAAAunE,QAAAzjE,GACA2jF,EAAAhN,EAAA36B,SAAA,IAGA46B,EAAA92E,KAAA,UAAAE,IACAg8C,QAAA9/C,EAAAunE,QAAAzjE,GACA2jF,EAAA/M,EAAA56B,SAAA,IASA,SAAAilC,GAAAnhF,EAAA6hF,GAEAA,EAAAjkF,OAAAikF,GACA,IAAAt8E,EAAAtD,EAAA6iF,cAAAjD,GACA6F,EAAAzF,GAAAJ,GACA36E,EAAAxK,EAAA6D,eAAAgF,GAEA7I,EAAA+B,aAAAipF,EAAA,SAAA,SAAAxgF,EAAAK,KAAAL,EAAAM,IAAAjC,GAOA,SAAAutC,GAAA+uC,GAGA,IAAAG,EAAAC,GAAAJ,GACAnlF,EAAA+c,gBAAAuoE,GAEAtlF,EAAAkd,iBAAAooE,EAAAqF,IAwKA,SAAAM,GAAAzrE,GAEA,OAAAA,GACA,KAAA,EACA,OAAA,EAEA,KAAA,EACA,OAAA,EAEA,KAAA,EACA,OAAA,EAEA,QACA,MAAA,IAAAlT,MAAA,cAAAkT,IA6BA,SAAA6lE,GAAAF,GAEA,IAAAA,EACAA,EAAA5/E,EAAA4iF,kBAGA,OADAhD,EAAAniF,SAAA,wBAOA,SAAAuiF,GAAAJ,GAEA,OADAA,EAAAniF,SAAA,wBASA,SAAAkoF,GAAA/F,GACA,IAAAA,EACAA,EAAA5/E,EAAA4iF,kBAEA,IAAA3kF,EAAA2hF,EAAA7hF,KAAA,SACA,OAAAsH,MAAApH,EACA,KAEA9D,EAAAunE,QAAAzjE,GAjyBAO,KAAAmlF,gBAAA,SAAAz9C,GAKA,OAFA4Q,EAAA9+B,QAAAhY,EAAAtD,OAAAi5E,sBAEAzvC,GACA,IAAA,OACA,IAAAo+C,EAAAhpF,EAAAqY,WACArY,EAAAqY,WAAArY,EAAAohF,QACAphF,EAAAohF,QAAAphF,EAAAmhF,QACAnhF,EAAAmhF,QAAA6H,EACA,MACA,IAAA,QACAA,EAAAhpF,EAAAqY,WACArY,EAAAqY,WAAArY,EAAAmhF,QACAnhF,EAAAmhF,QAAAnhF,EAAAohF,QACAphF,EAAAohF,QAAA4H,EACA,MACA,QACA,MAAA,IAAAv9E,MAAA,oBAAAm/B,GAOA4Q,EAAA9+B,QAAAhY,EAAAtD,OAAAg5E,eAgoBAl3E,KAAAC,QAAA,WAEAq4C,EAAAp4C,IAAAsB,EAAAtD,OAAA+5E,iBAEA38E,EAAA4E,IAAAvE,EAAAuC,OAAAshF,oBACAlkF,EAAA4E,IAAAvE,EAAAuC,OAAAomD,aAEAwyB,GACA35E,OAAA25E,GAAAz4E,GAAAy4E,EAAA54E,OAAAsgE,cAEA0X,EAAAh2E,IAAA,cACAg2E,EAAAh2E,IAAA,cAEAg2E,EAAAh2E,IAAA,YACAg2E,EAAAh2E,IAAA,SACAo4C,EAAAp4C,IAAAsB,EAAAtD,OAAA45E,OAEArB,GACAn+B,EAAAp4C,IAAAsB,EAAAtD,OAAAu5E,aAEAn/B,EAAAp4C,IAAAsB,EAAAtD,OAAAi5E,sBACAh6E,OAAA45E,GAAA72E,IAAA62E,EAAA74E,OAAAoiF,MACAnjF,OAAA45E,GAAA72E,IAAA62E,EAAA74E,OAAAsiF,MAEAzJ,EAAA92E,UAEAi2E,EAAAh2E,IAAA,aAAA,wBACAg2E,EAAAh2E,IAAA,aAAA,yBA2HAF,KAAAmmD,oCAAA,aAOAnmD,KAAArC,KAAA,SAAA2gF,EAAAtwE,EAAAuwE,GAEAF,EAAAC,EAAAtwE,EAAAuwE,IAMAv+E,KAAAqkF,cAAA,SAAAjD,GAEA,IAAAA,EACAA,EAAA5/E,EAAA4iF,kBAGA,OADAhD,EAAAp0D,KAAA,yBAQAhtB,KAAAX,QAAA,SAAA4F,GAEA87E,EAAA97E,IAOAjF,KAAAnB,IAAA,WAEAugF,KAOAp/E,KAAAonF,eAAA,WAEA,IAAAlF,EAAA1gF,EAAA2gF,qBAMA,OAJAlmF,EAAA6D,eAAAoiF,EAAAM,iBACA17E,MACA7K,EAAA6D,eAAA+3D,GAEA/wD,MASA9G,KAAAglF,YAAA,WAIA,OAFAntB,EAAAp+C,GAAA,cAQAzZ,KAAA6jF,eAAA,SAAAzC,GACA,IAAAP,EAAAO,EAAA7hF,KAAA,YACA,OAAAzC,EAAAqY,YAAA0rE,GAWA7gF,KAAAqiF,eAAA,SAAAjB,GACA,IAAA3hF,EAAA2hF,EAAA7hF,KAAA,SACA,OAAAE,MAAAA,GAUAO,KAAAyjF,mBAAA,WASA,MAPA,CACA59E,YAAAxJ,EAAA08E,yBACAjzE,eAAAzJ,EAAA28E,4BACArzE,aAAAtJ,EAAA48E,0BACArzE,cAAAvJ,EAAA68E,6BAUAl5E,KAAAmiF,mBAAA,WAQA,MANA,CACAI,aAAA2E,GAAApqF,EAAAmhF,SACAqE,aAAA4E,GAAApqF,EAAAohF,SACAsE,gBAAA0E,GAAApqF,EAAAqY,cAUAnV,KAAAokF,gBAAA,WAIA,OAFA5iF,EAAA2gF,qBAEA,iBAOAniF,KAAAqnF,oBAAA,WAEA,IAEA9B,EAFA/jF,EAAA2gF,qBAEAK,gBAAAjjF,KAAA,SAIA,OAHAgmF,MAAAA,IACAA,GAAA,GAEA,GAOAvlF,KAAAwmF,eAAA,WACA,IAAAjB,EAAA/jF,EAAA6lF,sBACA,OAAA,GAAA9B,EACA,KAEA5pF,EAAAunE,QAAAqiB,IASAvlF,KAAAwjF,aAAA,SAAApC,GAMA,OAJAv6E,MAAAu6E,IACAA,EAAA5/E,EAAA4iF,mBAEAhD,EAAA7hF,KAAA,SASAS,KAAA2gF,wBAAA,SAAAt5E,GAEA,IAAAvC,EAAAtD,EAAA6iF,gBAEAn8E,EAAAjM,EAAAmL,iBAAAC,QACAR,IAAAqB,EAAAZ,QACAY,EAAAsuE,EAAA8Q,mBAEA,IAAAx8E,EAAA7O,EAAAgM,qBAAAC,EAAApD,GACA2B,EAAAxK,EAAA6D,eAAAgF,GAGA,OAFA2F,cAAAxO,EAAAwN,qBAAAqB,EAAArE,GAEA,eAOAzG,KAAA0mF,mBAAA,SAAAvvE,GAEA,OADA3V,EAAAgiF,gBACArsE,GAUAnX,KAAAunF,2BAAA,WAGA,OAAA,IAFA/lF,EAAA4iF,kBACA7kF,KAAA,cAWAS,KAAAomF,QAAA,SAAA3qC,EAAA+rC,EAAA31C,GAEA,IAAAqwC,EAAA1gF,EAAA2gF,qBAGAoD,EAAArD,EAAAM,gBAAAjjF,KAAA,SACA40B,EAAAsnB,EAAAh8C,MAEA,GAAA00B,GAAAoxD,EACA,OAAA,EAKA,GAFA1+E,MAAA0+E,EAGA7C,EAAAR,EAAAM,gBAAA/mC,GACAj6C,EAAAikF,uBAEA,CAEA,IAAA/9C,EAAA,OAEA/rC,EAAAujD,cAEA,QAAArN,EACAnK,EAAA,OACA,QAAAmK,GAAA0zC,EAAApxD,EACAuT,EAAA,QACA69C,EAAApxD,IACAuT,EAAA,SAEAi9C,EAAAj9C,EAAA+T,EAAA+rC,KASAxnF,KAAAylF,iBAAA,WAEA,IAAAvD,EAAA1gF,EAAA2gF,qBACAoD,EAAArD,EAAAM,gBAAAjjF,KAAA,SAEAkoF,EAAA9rF,EAAA+rF,YAAAnC,GACAoC,EAAAhsF,EAAAisF,YAAArC,GAOA7C,EAAAR,EAAAI,aAAAqF,GACAjF,EAAAR,EAAAK,aAAAkF,GAEA3F,KAKA9hF,KAAA6nF,gCAAA,aAMA7nF,KAAA6kF,gBAAA,SAAAzD,EAAA0G,GAEA1G,IACAA,EAAA5/E,EAAA4iF,oBAEA,IAAA0D,EACA/Q,EAAAvjC,QAEAujC,EAAA34E,QAWA4B,KAAA6mF,iBAAA,SAAAzF,GAIAA,IACAA,EAAA5/E,EAAA4iF,mBAEA,IAAA3oC,EAAA0rC,GAAA/F,GAEA,GAAA,SAAA3lC,EAAAtkC,KACA,OAAA,EASA,OAPA,GAAA9a,EAAAo9E,2BACA8K,IAEAJ,IAEApN,EAAAn3E,OAEA67C,EAAAtkC,MACA,IAAA,UACA4/D,EAAAgR,YAAAtsC,EAAAusC,SACA,MACA,IAAA,QACAjR,EAAAkR,UAAAxsC,EAAAusC,SACA,MACA,IAAA,aACAjR,EAAAmR,eAAAzsC,EAAA0sC,SAAA1sC,EAAA2sC,UAAA3sC,EAAA4sC,SAAA5sC,EAAAvvC,UACA,MACA,IAAA,aACA6qE,EAAAuR,eAAA7sC,EAAA8sC,SACA,MACA,IAAA,SACAxR,EAAAyR,WAAA/sC,EAAAusC,WAUAhoF,KAAAujF,aAAA,SAAAnC,GAEA,IAAAA,EACAA,EAAA5/E,EAAA4iF,kBAKA,MAAA,SAHA5iF,EAAAgiF,aAAApC,GAIA/kF,EAAA,wBAEAA,EAAAi8E,mBAAAj8E,EAAAm8E,6BACAn8E,EAAA,kBAEA,GAAAV,EAAAyH,eACA/G,EAAA,6BAEAA,EAAA,mBAQA2D,KAAAtC,WAAA,WASA,MAPA,CACAw4E,YAAAA,EACAre,WAAAA,EACAx7D,UAAAA,EACAo6E,gBAAAA,IAUAz2E,KAAAyoF,WAAA,WAEA,OAAA,GAQAzoF,KAAAsgD,WAAA,WAEA,OAAA,GAOAtgD,KAAAmzD,WAAA,WAEA,OAAA,GAMAnzD,KAAA0oF,eAAA,WACA,OAAA,GAQA1oF,KAAA2mF,uBAAA,WACA,IAAAvF,EAAA5/E,EAAA4iF,kBAEA5iF,EAAAgiF,aAAApC,IA30CA,SAAAjqE,EAAAiqE,GACA,GAAAv6E,MAAAu6E,EACAA,EAAA5/E,EAAA4iF,kBAEA,IAAAvB,EAAArhF,EAAAgiF,aAAApC,GAEA,GAAAyB,GAAA1rE,EACA,MAAA,IAAA5O,MAAA,qBAAAs6E,EAAA,gBAAA1rE,GAs0CAwxE,CAAA,QAAAvH,GAEA,IAAAt8E,EAAAtD,EAAA6iF,cAAAjD,GAGA,OAAA,GAAAt8E,EAAA8C,QAGA3L,EAAA+M,iBAAAlE,IASA9E,KAAA4oF,sBAAA,WAEA,IAAA9jF,EAAAtD,EAAA6iF,gBACA,GAAA,GAAAv/E,EAAA8C,OACA,OAAA,EAEA,IAAA7C,EAAAvD,EAAA+hF,eACAv+E,EAAAxD,EAAAiiF,qBACAhoC,EAAA0rC,KAEAliF,EAAAH,EAAAI,SAEA2jF,EAAA5sF,EAAAoJ,yBAAAJ,EAAAw2C,EAAA11C,WAAA01C,EAAAz1C,YAAAjB,EAAAC,GACAyB,EAAAxK,EAAA6D,eAAAgF,GAEApE,GAAA,EAKA,OAHAmoF,EAAA9iF,YAAAU,EAAAzF,QACAN,GAAA,GAEA,GAOAV,KAAA8oF,oBAAA,WAEA,OAAA/R,EAAA7vB,aAMAlnD,KAAA+oF,UAAA,WACA,QAAAvS,GAGAA,EAAA7vB,iBASA3mD,KAAAgpF,aAAA,WAGA,QADA1H,KACA7nE,GAAA,aASAzZ,KAAAxC,WAAA,SAAAwQ,GAGA2oE,IACA3oE,EAAA/R,EAAA8R,2BAAAC,EAAA2oE,EAAA,WAEAt6E,EAAAc,OAAAC,OAAAf,EAAA2R,IASAhO,KAAA2hF,QAAA,SAAA3gF,EAAAjD,GAEA,GAAAiD,EAAA,GAAAjD,EAAA,EACA,OAAA,EAEA,IAAAkrF,EAAA,GACAA,EAAA,MAAAjoF,EAAA,KACAioF,EAAA,OAAAlrF,EAAA,KACAm4E,EAAAh3E,IAAA+pF,GAGA,IAAA5sC,EAAA,GACAA,EAAA,OAAAt+C,EAAA,KACAs+C,EAAA,IAAA,MACAA,EAAA,KAAA,MACAwb,EAAA34D,IAAAm9C,GAGA,IAAA6sC,EAAA,GACAA,EAAA,OAAAnrF,EAAA,KACAmrF,EAAA,MAAAloF,EAAA,KAEAm1E,EAAAj3E,IAAAgqF,GACA9S,EAAAl3E,IAAAgqF,GACA7S,EAAAn3E,IAAAgqF,GAEA,IAAAC,EAAAnoF,EAAA3E,EAAAs8E,yBAAAt8E,EAAAu8E,0BACAlW,EAAA3kE,EAAA1B,EAAAo8E,wBAAAp8E,EAAAq8E,2BAGA0Q,EAAA,GA0BA,GAzBAA,EAAA,MAAAD,EAAA,KACAC,EAAA,OAAA1mB,EAAA,KACA0mB,EAAA,IAAA/sF,EAAAo8E,wBAAA,KACA2Q,EAAA,KAAA/sF,EAAAs8E,yBAAA,KAEAzC,EAAAlpD,KAAA,oBAAA9tB,IAAAkqF,GAIAnS,GACAA,EAAAoS,kBAGA/X,IAGAmR,EAAAtM,GACAsM,EAAArM,GACAqM,EAAApM,GAEAyL,IAKA,SAFAtgF,EAAAgiF,gBAEA,GAAAnnF,EAAAo9E,0BAEA8K,QACA,CACA,IAAAC,EAAAxjF,EAAA3E,EAAA09E,0BAAA19E,EAAA29E,2BACAyK,EAAA1mF,EAAA1B,EAAAw9E,yBAAAx9E,EAAAy9E,4BAGA/C,EAAA4K,QAAA6C,EAAAC,GAGAN,KAQAnkF,KAAAspF,kBAAA,WAEA,GAAA,GAAA9nF,EAAAwjF,cACA,OAAA,EAEAvC,EAAAtM,GACAsM,EAAArM,GACAqM,EAAApM,GACAyL,KAQA9hF,KAAAupF,YAAA,WAEA,OAAArT,EAAAf,eAMAn1E,KAAA4qC,YAAA,SAAA9jC,EAAAC,GAEA9K,EAAA+B,aAAAk4E,EAAApvE,EAAAC,IAQA/G,KAAAgK,OAAA,WACA,IAAAysE,EACA,OAAA,EAEAA,EAAAzsE,UAMAhK,KAAAwpF,QAAA,WAEA,IAAA/S,EACA,OAAA,EAEAA,EAAA+S,WAOAxpF,KAAAypF,SAAA,WAEA,IAAAhT,EACA,OAAA,EAEAA,EAAAgT,YAQA,SAAApa,cAEA,IACAhjB,EAAAhU,EAAAqxC,EAAAC,EACAC,EAAAC,EAAAluF,EAFA6F,EAAAxB,KAGA/D,EAAA,IAAAC,YAAAy6E,EAAA,GAEAt6E,EAAA,CACAytF,gBAAA,SACAC,iBAAA,EACAC,sBAAA,SACAC,sBAAA,GACAC,yBAAA,GACAC,iBAAA,KACAC,oCAAA,EACAC,wBAAA,GACAC,uBAAA,GACAC,wBAAA,IACAC,wBAAA,EACAC,8BAAA,EACAC,qBAAA,EACAC,mBAAA,UACAC,qBAAA,GAEAC,sBAAA,KACAC,4BAAA,KACAC,2BAAA,KACAC,0BAAA,KACAC,qBAAA,KACAC,oBAAA,GAEAC,qBAAA,KACAC,2BAAA,KACAC,0BAAA,KACAC,yBAAA,KACAC,oBAAA,KACAC,0BAAA,GAEAC,+BAAA,EAEAC,iBAAA,IAGA5uF,EAAA,CACA6uF,aAAA,EACAC,mBAAA,EACAC,gBAAA,EACAC,eAAA,GAOA,SAAAC,EAAAhgD,EAAAgL,GAEA,IAAAA,EACAA,EAAA16C,EAAA4tF,sBAGA,IAAAzvB,EAAAzjB,EAGA,GAAA2yC,EAAA,CACA,IAAAsC,EAAAxxB,EAIA,GAHAv+D,EAAA+B,aAAA0rF,EAAA,EAAAsC,GAGA,GADAtC,EAAAjwE,GAAA,YACA,EAGA+gD,EAFAv+D,EAAA6D,eAAA4pF,GAEA3pF,QACA,IACAjD,EAAA+uF,gBAAArxB,OACA,CACAA,EAAA,GAEA19D,EAAA+uF,gBAAA,IACArxB,EAAA19D,EAAA+uF,kBAOA,IAAAI,EAAA,GAIA,GAHAtC,IACAsC,EAAA9uF,OAAAszB,KAAAk5D,EAAA5tE,SAEA,IAAAkwE,EAAA,CAEA,IAAAC,EAAA1xB,EASA,GAPAkvB,IACAwC,GAAA7vF,EAAA+tF,qCAEAnuF,EAAA+B,aAAA2rF,EAAA,EAAAuC,GAIA,GAFA/uF,OAAAwsF,GAAAlwE,GAAA,YAEA,CACA,IAAA0yE,EAAAlwF,EAAA6D,eAAA6pF,GACAnvB,EAAA2xB,EAAApsF,OAEAosF,EAAApuF,OAAA,IACAjB,EAAAgvF,eAAAK,EAAApuF,YAEA,CACA,IAAAquF,EAAA,GACAtvF,EAAAgvF,eAAA,IACAM,EAAAtvF,EAAAgvF,gBAEAtxB,EAAA0xB,EAAAE,GAOA/vF,EAAA8tF,kBAAA,GAAArtF,EAAA8uF,mBA+FA,SAAA7tF,EAAAguC,GAEA,IAAAA,EACAA,GAAA,EAEA,GAAA,GAAAA,EAAA,CAEA,GAAA69C,EAAA,CAGA,IAAAyC,EAAAzC,EAAA7rF,SACAA,EAAAsuF,GACAzC,EAAA7rF,OAAAA,GAGA,IAAAwN,EAAA,CAAAxN,OAAAA,EAAA,MACAsuD,EAAAtxB,IAAA8uD,GAAA59C,QAAA1gC,EAAAlP,EAAAkuF,8BAIAX,GACAA,EAAA7rF,OAAAA,GAEAsuD,EAAAtxB,IAAA8uD,GAAA9rF,OAAAA,GAlHAg3C,CAFAylB,EAAAn+D,EAAA6tF,yBAEAn+C,GAQA,SAAAugD,IACA,IAAAzuB,EAAA,EAKA,GAHA6rB,IACA7rB,GAAA6rB,EAAAtgF,eAEAugF,EAAA,CACA,IAAAsC,EAAA,GACAtC,IACAsC,EAAA9uF,OAAAszB,KAAAk5D,EAAA5tE,SAEA,IAAAkwE,IACAvC,IACA7rB,GAAAxhE,EAAA+tF,qCAEAvsB,GAAA8rB,EAAAvgF,eAMA,OAAA,EAiLA,SAAAmjF,IAGA,GAAA,GAAAlwF,EAAAquF,oBAAA,EACAd,EAAAv9B,EAAAptD,SAAA,qBACAnB,OAAA,EAAAzB,EAAAuuF,sBAEA,IAAA4B,EAAA,CAAAC,mBAAApwF,EAAAsuF,oBACA6B,EAAArvF,OAAAC,OAAAovF,EAAAnwF,EAAAqvF,kBAEA9B,EAAA1qF,IAAAstF,GAKA,GAAA,GAAAnwF,EAAAmuF,uBAAA,CACAd,EAAAG,EAAA5qF,SAAA,uBACA,IAAAytF,EAAA,GAEA,OAAArwF,EAAAwuF,wBACA6B,EAAA,MAAArwF,EAAAwuF,uBAEA,OAAAxuF,EAAAyuF,8BACA4B,EAAA,eAAArwF,EAAAyuF,6BAEA,OAAAzuF,EAAA0uF,6BACA2B,EAAA,cAAArwF,EAAA0uF,4BAEA,OAAA1uF,EAAA2uF,4BACA0B,EAAA,aAAArwF,EAAA2uF,0BAAA,MAEA,OAAA3uF,EAAA4uF,wBAEA,IAAA5uF,EAAA4uF,qBACAyB,EAAA,eAAA,OAEAA,EAAA,eAAA,UAKArwF,EAAA6uF,sBACAwB,EAAAvvF,OAAAC,OAAAsvF,EAAArwF,EAAA6uF,sBAEAxB,EAAAxqF,IAAAwtF,GAIA,GAAA,GAAArwF,EAAAouF,6BAAA,CACAd,EAAAE,EAAA5qF,SAAA,6BAEA,IAAA0tF,EAAA,GAEA,OAAAtwF,EAAA8uF,uBACAwB,EAAA,MAAAtwF,EAAA8uF,sBAEA,OAAA9uF,EAAA+uF,6BACAuB,EAAA,eAAAtwF,EAAA+uF,4BAEA,OAAA/uF,EAAAgvF,4BACAsB,EAAA,cAAAtwF,EAAAgvF,2BAEA,OAAAhvF,EAAAivF,2BACAqB,EAAA,aAAAtwF,EAAAivF,yBAAA,MAEA,OAAAjvF,EAAAkvF,uBAEA,IAAAlvF,EAAAkvF,oBACAoB,EAAA,eAAA,OAEAA,EAAA,eAAA,UAKAtwF,EAAA6uF,sBACAyB,EAAAxvF,OAAAC,OAAAuvF,EAAAtwF,EAAAmvF,4BAEA7B,EAAAzqF,IAAAytF,IAQA,SAAApoC,IACA,IAAA9I,EAAA9/C,EAAAqqD,kBACAxkD,EAAAorF,QAAAnxC,EAAA35B,MAAA25B,EAAAi0B,aA1OA1vE,KAAAsxE,iBAAA,SAAAvlC,GAMA,IAAA1vC,EAAA8tF,kBAAA,OAAA9tF,EAAA2tF,sBAEA,OADA+B,EAAAhgD,IACA,EAGA,OAAA1vC,EAAA2tF,uBACA,QACA,IAAA,MACA+B,GAAA,GACA,MACA,IAAA,SA1BAc,EAAAP,IAGAP,GAAA,EAFAlC,EAAA9rF,SAAA8uF,EAAAxwF,EAAA6tF,0BA2BA,MACA,IAAA,SACA,IAAA,UA5CA,WAEA,IAAA2C,EAAAP,IAGAP,GAAA,GAFAlC,EAAA9rF,SAAA8uF,GAAA,GA0CAC,GAjCA,IAEAD,GA2EA7sF,KAAArC,KAAA,SAAA2gF,EAAAphF,EAAAqhF,GAeA,GAbA5iF,EAAA2iF,EAGAC,IACA5H,EAAA4H,EACArhF,EAAAjB,EAAA8R,2BAAA7Q,EAAAy5E,EAAA,cAIAz5E,IACAb,EAAAc,OAAAC,OAAAf,EAAAa,IAGA,GAAAb,EAAAmuF,wBAAA,GAAAnuF,EAAAouF,6BACA,MAAA,IAAAliF,MAAA,6DAEAlM,EAAA8tF,kBAAA9tF,EAAA8tF,iBAAA,IACA9tF,EAAA8tF,iBAAA,MAGA,GAAA9tF,EAAAovF,gCACApvF,EAAA8uF,uBACA9uF,EAAA8uF,qBAAA9uF,EAAAwuF,uBAEAxuF,EAAAkvF,sBACAlvF,EAAAkvF,oBAAAlvF,EAAA4uF,sBAEA5uF,EAAA+uF,6BACA/uF,EAAA+uF,2BAAA/uF,EAAAyuF,6BAEAzuF,EAAAivF,2BACAjvF,EAAAivF,yBAAAjvF,EAAA2uF,2BAEA3uF,EAAAgvF,4BACAhvF,EAAAgvF,0BAAAhvF,EAAA0uF,8BASA/qF,KAAAuvE,WAAA,SAAAtqE,EAAAlG,GACAs5C,EAAApzC,EAOA,IAAA1E,EAAA,4BAJAxB,EADAA,EACA,IAAAA,EAEA,IAEA,KAEA,GAAA1C,EAAAquF,sBACAnqF,GAAA,8BAAAxB,EAAA,YAEAwB,GAAA,uCAAAxB,EAAA,KAEA,GAAA1C,EAAAmuF,yBACAjqF,GAAA,iCAAAxB,EAAA,YAEA,GAAA1C,EAAAouF,+BACAlqF,GAAA,uCAAAxB,EAAA,YAEAwB,GAAA,eAEA0E,EAAAjG,OAAAuB,GAEA8rD,EAAApnD,EAAAhG,SAAA,iBACA4qF,EAAAx9B,EAAAptD,SAAA,6BAEAstF,KAiHAvsF,KAAAC,QAAA,WACA9C,OAAAxB,GAAAuE,IAAAvE,EAAAuC,OAAAomD,cAMAtkD,KAAAnB,IAAA,WAEA2C,EAAA6nF,kBAhBAlsF,OAAAxB,GAAA0C,GAAA1C,EAAAuC,OAAAomD,YAAAC,IAwBAvkD,KAAAm1D,aAAA,SAAA1G,EAAAE,GAIA,GAFA7xD,EAAA8uF,mBAAA,EAEAj9B,EAGA7xD,EAAA8uF,mBAAA,OAFAj9B,EAAA,GAIAtyD,EAAA8tF,mBACAx7B,EAAAtyD,EAAA8tF,kBAEA99B,EAAArrD,MAAAytD,GACApC,EAAAtuD,OAAA4wD,GAGAi7B,IACAA,EAAA5oF,MAAAytD,GACAm7B,EAAA7rF,OAAA4wD,IAIA,IAAAo+B,EAAAt+B,EAAApyD,EAAAiuF,uBAAAjuF,EAAAguF,wBACA2C,EAAA3wF,EAAAiuF,uBAEAruF,EAAAyP,0BAAAm+E,EAAAmD,EAAA,EAAAD,EAAAp+B,GAGA+6B,GACAA,EAAA1oF,MAAA+rF,GAGApD,GACAA,EAAA3oF,MAAA+rF,GAEA,GAAAjwF,EAAA6uF,aACAnqF,EAAA8vE,kBAAA,IAOAtxE,KAAAqpF,gBAAA,WAEA,IAAA5iF,EAAAxK,EAAA6D,eAAAu4C,GACA72C,EAAA2zD,aAAA1uD,EAAAzF,QAMAhB,KAAA2vE,aAAA,SAAA7tD,EAAA4tD,GAEAga,GACAA,EAAAnpF,KAAAuhB,GAEA6nE,GACAA,EAAAppF,KAAAmvE,IAQA1vE,KAAA4sF,QAAA,SAAA9qE,EAAA4tD,GAEA,GAAA5yE,EAAA6uF,aAEAnqF,EAAAmuE,aAAA7tD,EAAA4tD,GAEA5yE,EAAA6uF,aAAA,EAEAnqF,EAAA8vE,kBAAA,IAIAuY,EAAAhtC,OAAA/+C,OAAAzB,EAAAkuF,wBAAA,GAAA,WAEA/oF,EAAAmuE,aAAA7tD,EAAA4tD,GAEAluE,EAAA8vE,kBAAA,GAEAn0E,OAAA6C,MAAAlC,OAAAzB,EAAAkuF,wBAAA,OAaAvqF,KAAAqxE,cAAA,SAAA4b,EAAAC,GAEA,IAAA3hF,EAAA,GAEA,GAAA0hF,MAAAA,EACA1hF,EAAAxE,IAAAkmF,EACA1hF,EAAAxL,OAAA,YAGA,OAAA1D,EAAAytF,iBACA,IAAA,MACAv+E,EAAAxE,IAAA1K,EAAA0tF,iBAAA,KACA,MACA,IAAA,SACAx+E,EAAAxE,IAAA,OACAwE,EAAAxL,OAAA1D,EAAA0tF,iBAAA,KACA,MACA,IAAA,SACAx+E,EAAAxE,IAAA9K,EAAAyN,sBAAA2iD,EAAA,SAAAhwD,EAAA0tF,kBAMAmD,MAAAA,IACA3hF,EAAAzE,KAAAomF,GAEA7gC,EAAAntD,IAAAqM,IAOAvL,KAAAxC,WAAA,SAAAwQ,GAEA2oE,IACA3oE,EAAA/R,EAAA8R,2BAAAC,EAAA2oE,EAAA,cAEAt6E,EAAAc,OAAAC,OAAAf,EAAA2R,IAQAhO,KAAAmzD,WAAA,WAEA,OAAA,GAMAnzD,KAAA0uD,QAAA,WAGA,OADAzyD,EAAA6D,eAAAusD,IAQArsD,KAAAyuC,QAAA,SAAA4zB,EAAA8qB,EAAA1+B,EAAAE,GAEA49B,IAEA99B,EAGAjtD,EAAA2zD,aAAA1G,EAAAE,GAFAntD,EAAA6nF,kBAIA7nF,EAAA8vE,kBAAA,IAEA,IAAA6b,GACA3rF,EAAA6vE,iBAEA,IAAAhP,GACA7gE,EAAA5B,QAOAI,KAAA5B,KAAA,WAEAiuD,EAAAjuD,QAMA4B,KAAAJ,KAAA,WACAysD,EAAAzsD,QAMAI,KAAAsgD,WAAA,WACA,OAAA,GAMAtgD,KAAA0wC,UAAA,SAAA08C,GAEA,OAAA,GAAA/wF,EAAAmc,eAAA40E,GACA,KAEA/wF,EAAA+wF,IAWA,SAAAnO,qBAEA,IACA5yB,EAAAghC,EAAAC,EAAAC,EACAC,EAAA,IAAAvX,SACAh6E,EAAA,IAAAC,YAEAG,EAAA,CACA8gF,sBAAA,IA0EA,SAAArvE,EAAAF,GAEA,OAAAA,KAGAA,EAAAe,SAAA,gCAUA,SAAAhB,EAAAC,GAEAA,GACAA,EAAA7O,SAAA,gCAMA,SAAA0P,EAAAb,GAEAA,GACAA,EAAAc,YAAA,gCAOA,SAAA2xE,IAGA,GAAA,GAAAmN,EAAA9G,mBAAA,SACA,OAAA,EAIA,GAFA8G,EAAA7G,yBAIA,GAAA74E,EAAAw/E,KACA3/E,EAAA2/E,GACA3/E,EAAA4/E,IAKA,GAAAz/E,EAAAw/E,KACA7+E,EAAA6+E,GACA7+E,EAAA8+E,IApHAvtF,KAAArC,KAAA,SAAA8vF,EAAAvwF,GAEAswF,EAAAC,EAEAvwF,IACAb,EAAAc,OAAAC,OAAAf,EAAAa,KAOA8C,KAAAuvE,WAAA,SAAAtqE,GACAA,EAEA,IAAA1E,EAAA,sDAAAlE,EAAA8gF,sBAAA,KAEA58E,GAAA,4DACAA,GAAA,0FACAA,GAAA,2FAEAA,GAAA,SAEA0E,EAAAjG,OAAAuB,GAEA8rD,EAAApnD,EAAAhG,SAAA,iBACAouF,EAAAhhC,EAAAptD,SAAA,sBACAquF,EAAAjhC,EAAAptD,SAAA,uBACAsuF,EAAAlhC,EAAAptD,SAAA,yBAQAe,KAAA0tF,WAAA,SAAAC,EAAAC,EAAAC,GAEAR,EAAAM,EAEAJ,EAAAM,GADAP,EAAAM,IAIAN,EAAAvuF,SAAA,gCAEAwuF,GACAA,EAAAxuF,SAAA,iCAQAiB,KAAAmzD,WAAA,WAEA,OAAA,GAzEAnzD,KA+IApB,WAAA,WAGA3C,EAAA+c,gBAAAq0E,EAAA,mBACApxF,EAAA+c,gBAAAs0E,EAAA,mBACArxF,EAAA+c,gBAAAu0E,EAAA,mBAIAtxF,EAAAkd,iBAAAk0E,GAAA,WAEA,GAAA,GAAAv/E,EAAAu/E,GACA,OAAA,EAEAG,EAAAxjF,YAGA/N,EAAAkd,iBAAAm0E,GAAA,WAEA,GAAA,GAAAx/E,EAAAw/E,GACA,OAAA,EAEAE,EAAAhE,aAGAvtF,EAAAkd,iBAAAo0E,GAAA,WAEA,GAAA,GAAAz/E,EAAAy/E,GACA,OAAA,EAEAC,EAAA/D,cAIAtsF,OAAAqwF,GAAAnvF,GAAAmvF,EAAAtvF,OAAAu5E,YAAA4I,GACAljF,OAAAqwF,GAAAnvF,GAAAmvF,EAAAtvF,OAAAg5E,aAAAmJ,IAUA,SAAAxB,YAEA,IACA/H,EAAAgX,EADAtsF,EAAAxB,KAAA+tF,EAAA,EAAApyF,EAAA,IAAAC,iBAEAK,EAAA,IAAAC,YAEAY,EAAA,CACAkxF,UAAA,GAGA3xF,EAAA,CACA0iF,aAAA,GACAkP,iBAAA,GACAjP,uBAAA,GAiCA,SAAAkP,IACA,IAAA3tF,EAAA,GAEAE,EAAA,IACA,GAAApE,EAAA2iF,wBACAv+E,EAAA,uBAAApE,EAAA2iF,sBAAA,OAEA,IAAA,IAAA/pE,EAAA,EAAAA,EAAA84E,EAAA94E,IAEA1U,GADA,GAAA0U,EACA,gCAEA,yBAAAxU,EAAA,UAMA,GAHAq2E,EAAAv2E,KAAAA,IAGAutF,EAAA,CACA,IAAAK,EAAArX,EAAA9pD,KAAA,0BACAmhE,EAAAvmF,SACAkmF,EAAAK,EAAAntF,UA2DA,SAAA0+E,EAAAyO,GAGA,GAAA,GAAA3sF,EAAA47C,SAAA+wC,GACA,OAAA,EAEA,IAAA1uF,EAAA0uF,EAAA1uF,QAEAtC,OAAAqE,GAAAgY,QAAAhY,EAAAtD,OAAAsgE,aAAA/+D,GAQA,SAAAb,IAEA,IAAA0/D,EAAAwY,EAAA73E,SAAA,cAEAhD,EAAAkd,iBAAAmlD,EAAAohB,GAEAphB,EAAAjgE,GAAA,qBAAA,SAAAgJ,GAEA,OAAA,KA4DA,SAAA+mF,EAAA3uF,GACA,GAAAA,EAAA,GAAAA,GAAAsuF,EACA,MAAA,IAAAxlF,MAAA,uBAAA9I,GAOA,SAAA4uF,IAEA,GAAA,GAAAvxF,EAAAkxF,SACA,OAAA,EAEA,MAAA,IAAAzlF,MAAA,+BA3MAvI,KAAA9B,OAAA,CACAsgE,aAAA,gBAMAx+D,KAAArC,KAAA,SAAAV,EAAAC,EAAAoxF,GACA3yF,EAAAsB,EAGA8wF,EADAO,GAGA3yF,EAAAujD,cAEApiD,EAAAkxF,UAAA,EAGA,KAFA3xF,EAAAc,OAAAC,OAAAf,EAAAa,IAEA6hF,eACA1iF,EAAA0iF,aAAA1iF,EAAAyzD,eAkCA9vD,KAAAuuF,gBAAA,WACA,OAAA,GAAAR,EACA,EAEAD,EAGAC,EAAAD,GAAAC,EAAA,GAAA1xF,EAAA2iF,sBAFA,GAUAh/E,KAAAuvE,WAAA,SAAAtqE,GACAA,EAEAopF,IACA,IAAAtvF,EAAA,GACA,IAAA1C,EAAA4xF,mBACAlvF,EAAA,IAAA1C,EAAA4xF,kBAEA,IAAA1tF,EAAA,oDAAAlE,EAAA0iF,aAAAhgF,EAAA,KAIA+3E,EAAA35E,OAFAoD,GAAA,UAIA0E,EAAAjG,OAAA83E,GAEAoX,IAEAtvF,KAOAoB,KAAAwuF,iBAAA,SAAAF,GAEAP,EAAAO,EACAJ,IACAtvF,KAyCAoB,KAAAmzD,WAAA,WACA,OAAA2jB,GAOA92E,KAAAu+D,UAAA,SAAA9+D,GACA4uF,IACAD,EAAA3uF,GAEA,IAAAR,EAAA63E,EAAA73E,SAAA,cACAA,EAAAyP,YAAA,oBAEAvR,OAAA8B,EAAAQ,IACAV,SAAA,oBAEAU,GAOAO,KAAAo9C,SAAA,SAAA39C,GAGA,GAFA2uF,EAAA3uF,GAEA,iBAAAA,EACA,IAAA0uF,EAAA1uF,OAEA0uF,EAAArX,EAAA73E,SAAA,cAAAQ,GAGA,QAAA0uF,EAAAx/E,SAAA,qBAUA3O,KAAAyuF,cAAA,WACA,OAAA,GA6BA,SAAAn3E,gBAEA,IACAo3E,EAAA72B,EADAr2D,EAAAxB,KACA2uF,EAAA,EAAA1yF,EAAA,IAAAC,YAEAG,EAAA,CACAuyF,yBAAA,UACAC,2BAAA,GACAC,8BAAA,GAOA9uF,KAAA+uF,IAAA,SAAAvzF,EAAAwzF,GAEAA,IACA3yF,EAAAc,OAAAC,OAAAf,EAAA2yF,IAEAxzF,EAAAwD,OAAA,gFACA0vF,EAAAlzF,EAAAyD,SAAA,qBACA44D,EAAA62B,EAAAzvF,SAAA,2BAGAC,IAAA,mBAAA7C,EAAAuyF,0BACAF,EAAA3wF,OAAA1B,EAAAyyF,+BACAj3B,EAAA95D,OAAA1B,EAAAyyF,+BACAj3B,EAAA72D,MAAA,MAGA,IAAA0U,EAAArZ,EAAAwyF,2BAEAI,EAAAp3B,EAAA,GACAo3B,EAAAtqF,MAAA+Q,QAAAA,EACAu5E,EAAAtqF,MAAAorC,OAAA,iBAAA,IAAAr6B,EAAA,KAOA1V,KAAAuX,UAAA,SAAA/b,EAAAwzF,GACAxtF,EAAAutF,IAAAvzF,EAAAwzF,GACAN,EAAAtwF,QAMA4B,KAAAmzD,WAAA,WAEA,OAAA,GAMAnzD,KAAA2hF,QAAA,SAAA3gF,GAEA0tF,EAAA1tF,MAAAA,GACA62D,EAAA72D,MAAAA,GACAQ,EAAA0tF,QAOAlvF,KAAA4qC,YAAA,SAAA9jC,EAAAC,EAAAqE,EAAAC,GAEApP,EAAA+B,aAAA0wF,EAAA5nF,EAAAC,EAAAqE,EAAAC,IAOArL,KAAAkvF,KAAA,WACA,IAAAn7E,EAAA,IAAA46E,EAEA92B,EAAA72D,MAAA+S,EAAA,MAOA/T,KAAAmvF,YAAA,SAAAvzE,GAEA+yE,EAAA1yF,EAAA0f,iBAAAC,GAIApa,EAAA0tF,QAMAlvF,KAAAihF,QAAA,WACA,MAAA,OAOA,SAAAzpE,gBAEA,IACA43E,EADA5tF,EAAAxB,KAAAqvF,GAAA,EACApzF,EAAA,IAAAC,YAEAG,EAAA,CACAizF,8BAAA,EACAC,0BAAA,UACAC,0BAAA,UACAC,gCAAA,EACAC,yBAAA,GACAC,0BAAA,IA2DA,SAAAT,EAAAtzE,GAEA,IAAAA,EACAA,EAAA,EAEA,IAAAg0E,EAAA/uF,KAAA2wB,IAAAn1B,EAAAqzF,yBAAArzF,EAAAszF,2BAAA,EAEAE,EAAAT,EAAA,GAAAx7E,WAAA,MAGA,GAAAy7E,IAEAA,GAAA,EAEAQ,EAAAC,OAAA,IAAAjvF,KAAAq2C,IACA24C,EAAAE,WAAA,EAAAH,EAAA,IAGAC,EAAAG,UAAA,EAAA,EAAA3zF,EAAAqzF,yBAAArzF,EAAAszF,2BAEA,IAAAM,EAAA5zF,EAAAqzF,yBAAA,EACAQ,EAAA7zF,EAAAszF,0BAAA,EAGAQ,EAAA,EACAC,EAAAx0E,EAAA/a,KAAAq2C,GAAA,EAGA,GAAA,GAAA76C,EAAAizF,6BAEAO,EAAAQ,YACAR,EAAAS,OAAAL,EAAAC,GACAL,EAAAU,IAAAN,EAAAC,EAAAN,EAAAO,EAAAC,GACAP,EAAAW,OAAAP,EAAAC,GAEAL,EAAAY,UAAAp0F,EAAAkzF,0BACAM,EAAAa,OACAb,EAAAc,gBAEA,CACAd,EAAAe,yBAAA,cAEAf,EAAAQ,YACAR,EAAAS,OAAAL,EAAAC,GACAL,EAAAU,IAAAN,EAAAC,EAAAN,EAAAO,EAAAC,GACAP,EAAAW,OAAAP,EAAAC,GAEAL,EAAAY,UAAAp0F,EAAAkzF,0BACAM,EAAAa,OACAb,EAAAc,YAEAd,EAAAe,yBAAA,kBAEA,IAAAC,EAAAjB,EAAAvzF,EAAAozF,gCAEAI,EAAAQ,YAEAR,EAAAS,OAAAL,EAAAC,GACAL,EAAAU,IAAAN,EAAAC,EAAAW,EAAAV,EAAAC,GACAP,EAAAW,OAAAP,EAAAC,GAEAL,EAAAY,UAAAp0F,EAAAkzF,0BACAM,EAAAa,OAEAb,EAAAc,YAKA,GAAAt0F,EAAAizF,+BACAa,EAAAC,EACAA,EAAA,EAAAvvF,KAAAq2C,GACA24C,EAAAQ,YACAR,EAAAU,IAAAN,EAAAC,EAAAN,EAAAO,EAAAC,GACAP,EAAAW,OAAAP,EAAAC,GACAL,EAAAY,UAAAp0F,EAAAmzF,0BACAK,EAAAa,OACAb,EAAAc,aAjIA3wF,KAAA+uF,IAAA,SAAAvzF,EAAAwzF,GAEAA,IACA3yF,EAAAc,OAAAC,OAAAf,EAAA2yF,IAEAxzF,EAAAwD,OAAA,wCAAA3C,EAAAqzF,yBAAA,aAAArzF,EAAAszF,0BAAA,eACAP,EAAA5zF,EAAAyD,SAAA,mBAOAe,KAAAuX,UAAA,SAAA/b,EAAAwzF,GACAxtF,EAAAutF,IAAAvzF,EAAAwzF,GACAE,EAAA,IACAE,EAAAhxF,QAOA4B,KAAAmzD,WAAA,WACA,OAAA,GAMAnzD,KAAA4qC,YAAA,SAAA9jC,EAAAC,GAEA9K,EAAA+B,aAAAoxF,EAAAtoF,EAAAC,IAOA/G,KAAA0uD,QAAA,WAOA,MALA,CACA1tD,MAAA3E,EAAAqzF,yBACA3xF,OAAA1B,EAAAszF,4BA+FA3vF,KAAAmvF,YAAA,SAAAvzE,GAEAA,EAAA3f,EAAA0f,iBAAAC,GAEAA,EACAszE,EAAAtzE,IAMA5b,KAAAihF,QAAA,WACA,MAAA,OASA,SAAA3B,uBAEA,IAAApJ,EAAAre,EACAxf,EADA0Q,EAAA,IAAAktB,SAGAh6E,EAAA,IAAAC,YAGAG,EAAA,CACAy0F,qCAAA,IACAC,sCAAA,SACAC,+BAAA,IACAC,gCAAA,iBAGAn0F,EAAA,CACA0sD,cAAA,EACA72C,YAAA,EACAC,YAAA,EACAC,WAAA,EACAC,WAAA,EACAo+E,UAAA,EACAz+E,UAAA,EACA0+E,iBAAA,EACAjP,OAAA,KACAkP,eAAA,EACAC,YAAA,EACA9/E,cAAA,cACA+/E,YAAA,EACAC,aAAA,EACAC,YAAA,MAOA,SAAAC,EAAAvP,GAEA,IAAAA,EACAA,EAAAn5B,EAAAo5B,qBAOA,OALAlmF,EAAA6D,eAAAoiF,EAAAM,iBACA17E,KACA7K,EAAA6D,eAAA+3D,GACA/wD,KAqFA,SAAA4qF,EAAAxP,GAEA,GAAA,GAAAn5B,EAAAq+B,iBACA,OAAA,EAKA,GAFA/uC,EAAA7+B,QAAAuvC,EAAA7qD,OAAAk5E,gBAEA8K,EACAA,EAAAn5B,EAAAo5B,qBAEA,IACA+C,GADAjpF,EAAA6D,eAAAoiF,EAAAM,iBACA17E,KAGA+wD,EAAA5rB,QAAA,CAAAnlC,KAAAo+E,EAAA,MAAA,CACA54C,SAAAjwC,EAAA20F,+BACA1rD,OAAAjpC,EAAA00F,sCACA9zC,OAAA,EACAwJ,SAAA,SAAAkrC,EAAAC,EAAAC,GAGA,GAAA,GAAA/0F,EAAAy0F,YAAA,CACA,IAGAO,EAHA71F,EAAA6D,eAAA+3D,GACA/wD,KAEAo+E,EAEA6M,EAAAj1F,EAAAw0F,YAAAQ,EACAh1F,EAAA00F,YAAAtyF,IAAA,OAAA6yF,KAIAnpF,SAAA,WACAyvC,EAAA7+B,QAAAuvC,EAAA7qD,OAAAm5E,iBAsBA,SAAA2a,IAGA,IAAA9P,EAAAn5B,EAAAo5B,qBAEAnlB,EAAAy0B,EAAAvP,GAEA,GAAA,GAAAllB,EACA,OAAA,EAEA,IAAAt1B,EAAAs1B,EAAA,EAAA,OAAA,QAEAi1B,GAAA,EAEA,OAAAvqD,GACA,IAAA,QAEA,GAAAqhB,EAAAs5B,eAAAH,EAAAK,cAEA,IACA2C,GADAjpF,EAAA6D,eAAAoiF,EAAAK,cACAz7E,UAGAmrF,GAAA,EAEA,MACA,IAAA,OAEA,GAAAlpC,EAAAs5B,eAAAH,EAAAI,cAGA4C,GADAjpF,EAAA6D,eAAAoiF,EAAAI,cACAx7E,UAGAmrF,GAAA,EAKA,GAAAA,EACAP,EAAAxP,GAKArqB,EAAAhb,OAAA5Q,QAAA,CAAAnlC,KAAAo+E,EAAA,MAAA,CACA54C,SAAAjwC,EAAAy0F,qCACAxrD,OAAAjpC,EAAA00F,sCACA9zC,OAAA,EACAwJ,SAAA,WAGA,GAAA,GAAA3pD,EAAAy0F,YAAA,CACA,IAEAO,EAFA71F,EAAA6D,eAAA+3D,GACA/wD,KACAhK,EAAAo0F,UACAa,EAAAj1F,EAAAw0F,YAAAQ,EACAh1F,EAAA00F,YAAAtyF,IAAA,OAAA6yF,KAIArrC,OAAA,YAxEA,SAAAhf,GAEAqhB,EAAA2/B,iBAAAtqF,OACA2qD,EAAAo8B,gBAAAz9C,GACAqhB,EAAA08B,mBAqEAyM,CAAAxqD,GACA2Q,EAAA7+B,QAAAuvC,EAAA7qD,OAAAy5E,sBAgFA,SAAAwa,EAAA9qF,GAEA,IAAAiL,EAAArW,EAAAmL,iBAAAC,GAEAvK,EAAA6V,YAAAL,EAAAhL,MAIAxK,EAAA8V,YAAAN,EAAA/K,MAEAzK,EAAA+V,WAAA/V,EAAA6V,YACA7V,EAAAgW,WAAAhW,EAAA8V,YACA9V,EAAA2V,UAAAtV,OAAAqV,MAEA,IAAAmE,EAAA1a,EAAAya,cAAArP,GACAvK,EAAAs1F,gBAAAn2F,EAAA2a,qBAAAD,GAEA,IAAAsvC,EAAAhqD,EAAA6D,eAAA+3D,GAEA/6D,EAAAo0F,UAAAjrC,EAAAn/C,KAEAhK,EAAAq0F,iBAAA,EAGAr0F,EAAAy0F,aAAA,EAGAt1F,EAAAkW,eAAA9K,EAAAvK,EAAAyU,eAMA,SAAA8gF,EAAAC,GAEAx1F,EAAA0sD,cAAA,EAQA,SAAA+oC,EAAAD,EAAAjrF,GAEAvK,EAAA0sD,cAAA,EACA2oC,EAAA9qF,GAUA,SAAAqkD,EAAArkD,GAeA,OAbAA,EAAAwiB,iBAEA/sB,EAAAu0F,YAAA,EAKA,GAAAtoC,EAAAi8B,eACAntB,EAAAhb,MAAA,GAAA,GAIA5gD,EAAAya,cAAArP,GACAO,OAAA,GAEA,GAAA9K,EAAA0sD,cACA6oC,KAGA,GAGA,GAAAv1F,EAAA0sD,mBAIA+oC,EAAA,EAAAlrF,GASA,SAAAykD,EAAAzkD,GAEA,GAAA,GAAAvK,EAAA0sD,aACA,OAAA,EAGA,GAAA,GAAAniD,EAAA0kD,QAKA,OAJAsmC,IAEAL,KAEA,EAGA/1F,EAAA+W,sBAAA3L,EAAAvK,EAAAyU,eAEAlK,EAAAwiB,iBAEA,IAAAvX,EAAArW,EAAAmL,iBAAAC,GACAvK,EAAA+V,WAAAP,EAAAhL,MACAxK,EAAAgW,WAAAR,EAAA/K,MAIA,IAAAmK,EAAA,KAEA,GAAArV,EAAAm+E,gCACA9oE,EAAAzV,EAAAqV,gBAAAxU,EAAAyU,gBAEA,SAAAG,GA7LA,SAAArK,GAEA,IAAA4F,EAAAnQ,EAAA+V,WAAA/V,EAAA6V,YAEA,GAAA,GAAA1F,EACA,OAAA,EAEA,IAAAy6B,EAAAz6B,EAAA,EAAA,OAAA,QAEAulF,EAAAzpC,EAAA0/B,aAIA,GAAA+J,EAAA,CAIA,GAAA,GAFAA,EAAAC,aAAAprF,EAAAqgC,GAIA,OADA5qC,EAAAq0F,iBAAA,GACA,EAGA,GAAA,GAAAr0F,EAAAq0F,gBAEA,OADAgB,EAAA9qF,IACA,EAOA,IAAAqrF,EAAA51F,EAAAo0F,UAAAjkF,EAGA,GAAAA,EAAA,GAAAylF,EAAA,EACAA,GAAA,OAEA,GAAAzlF,EAAA,EAAA,CAEAylF,EAAA76B,EAAA72D,QACAk1E,EAAAl1E,UAGA0xF,EAAA51F,EAAAo0F,UAAAjkF,EAAA,GAYA,GARA,GAAAnQ,EAAAu0F,aACAv0F,EAAAu0F,YAAA,EACAh5C,EAAA7+B,QAAAuvC,EAAA7qD,OAAAw5E,aAGA7f,EAAA34D,IAAA,OAAAwzF,EAAA,MAGA,GAAA51F,EAAAy0F,YAAA,CACA,IAAAO,EAAAY,EAAA51F,EAAAo0F,UACAa,EAAAj1F,EAAAw0F,YAAAQ,EAEAh1F,EAAA00F,YAAAtyF,IAAA,OAAA6yF,IAmIAY,CAAAtrF,GAOA,SAAAokD,EAAApkD,GAIA,IACAurF,EADA32F,EAAAya,cAAArP,GACAO,OAGA,GAAA,GAFAmhD,EAAAq+B,kBAEA,GAAAtqF,EAAA0sD,cAAA,GAAAopC,EAEA,OAAA,EAGA,GAAA,GAAAA,GAAA,GAAA91F,EAAA0sD,aAAA,CAEA6oC,IAEA,IAAAQ,GAAA,EAIA,GAFA52F,EAAAiW,kBAAApV,EAAAyU,iBAGAshF,EA5aA,WAEA,IAAA3Q,EAAAn5B,EAAAo5B,qBAGAnlB,EAAAy0B,EAAAvP,GAEA/kB,EAAAt8D,KAAAuF,MAAA,EAAA87E,EAAAM,gBAAAxhF,QAAA,GAEA,GAAAH,KAAA8O,IAAAqtD,IAAAG,EACA,OAAA,EAGA,IAAA21B,EAAAjyF,KAAA8O,IAAA7S,EAAA+V,WAAA/V,EAAA6V,aAKA,OAJA9R,KAAA8O,IAAA7S,EAAAgW,WAAAhW,EAAA8V,eAIAkgF,EAAA,KAOA31F,OAAAqV,MACA1V,EAAA2V,UAIA,IA8YAsqD,IAEA,GAAA81B,EACAb,IAEAN,SAIA,GAAAkB,GAAA,GAAA91F,EAAA0sD,cAEA+oC,EAAA,EAAAlrF,GA9YArH,KAAAsmF,kBAAA,SAAAj/E,GAGA,IACAurF,EADA32F,EAAAya,cAAArP,GACAO,OAEA,GAAA,GAAAgrF,GAAA,GAAA91F,EAAAs0F,eAEA,OADAt0F,EAAAs0F,eAAAwB,GACA,EAGA91F,EAAAs0F,eAAAwB,EAKAnB,EAHA1oC,EAAAo5B,sBAAA,IAMA2Q,EAAAjyF,KAAA8O,IAAA7S,EAAA+V,WAAA/V,EAAA6V,aACAogF,EAAAlyF,KAAA8O,IAAA7S,EAAAgW,WAAAhW,EAAA8V,aAIAO,EADAhW,OAAAqV,MACA1V,EAAA2V,UAGA,OAAAqgF,EAAA,IAAAC,EAAA,IAAA5/E,EAAA,KAgZAnT,KAAArC,KAAA,SAAA8vF,EAAAvwF,GAEA6rD,EAAA0kC,EACAp1C,EAAAl7C,OAAA4rD,GACAxtD,UAAAkyF,EAAA/vF,aAEAw4E,EAAA36E,UAAA26E,YACAre,EAAAt8D,UAAAs8D,WAEAx7D,EAAAc,OAAAC,OAAAf,EAAAa,GAxBAg5E,EAAAn1D,KAAA,uBAAA2qC,GAGAvuD,OAAA,QAAA4jB,KAAA,sBAAA+qC,GAGA3uD,OAAA2W,QAAAinB,IAAA,QAAAha,KAAA,mBAAA0qC,IA2BAzrD,KAAAsnF,gBAAA,WAMA,MALA,CACAhgF,MAAAxK,EAAA+V,WACAtL,MAAAzK,EAAAgW,aAUA9S,KAAA2mD,cAAA,WAEA,OAAA7pD,EAAA,cAUA,SAAAyiF,sBAEA,IAAArJ,EAAA79B,EAAA0Q,EAAA,IAAAktB,SAEAh6E,EAAA,IAAAC,YAIAG,EAAA,CACA22F,iBAAA,IACAC,sBAAA,EACAC,gCAAA,IACAC,8BAAA,gBAGAr2F,EAAA,CACAs2F,aAAA,EACAzgF,YAAA,EACAC,YAAA,EACAC,WAAA,EACAC,WAAA,EACAugF,YAAA,EACAC,YAAA,EACAC,YAAA,EACAC,YAAA,EACA1uF,SAAA,KACA2gE,aAAA,KACAxgE,UAAA,KACAwuF,cAAA,KACArS,SAAA,KACAsS,mBAAA,EAEAC,cAAA,EACAC,cAAA,EACAC,iBAAA,KACAC,iBAAA,KACAC,gBAAA,KACAC,cAAA,GAOA,SAAAC,EAAAxG,EAAAvwF,GAEA6rD,EAAA0kC,EACAp1C,EAAAl7C,OAAA4rD,GACAxtD,UAAAkyF,EAAA/vF,aACAw4E,EAAA36E,UAAA26E,YACA36E,UAAAs8D,WAEAx7D,EAAAc,OAAAC,OAAAf,EAAAa,GAqqBAg5E,EAAA73E,GAAA,aAAA61F,GAGAhe,EAAAn1D,KAAA,uBAAA2qC,GAGAvuD,OAAA,QAAA4jB,KAAA,sBAAA+qC,GAGA3uD,OAAA2W,QAAAinB,IAAA,QAAAha,KAAA,mBAAA0qC,GAGApT,EAAAt3B,KAAAgoC,EAAA7qD,OAAAk5E,eAAA,WAEA+c,OAIA97C,EAAAt3B,KAAAgoC,EAAA7qD,OAAAg5E,cAAA,WACAp6E,EAAAk3F,cAAA,KAGA37C,EAAAt3B,KAAAgoC,EAAA7qD,OAAAu5E,aAAA,WACA36E,EAAAk3F,cAAA,KAlrBA,SAAAI,IAEA,IAAArvF,EAAAgkD,EAAAw6B,eAKA,MAHA,QAAAx+E,IACAA,EAAA,OAEA,EAOA,SAAAsvF,IAMA,IAHA97E,EAAApb,OAAAqV,OACA1V,EAAA42F,mBAEA,GACA,OAAA,EAEA,IAAAxR,EAAAn5B,EAAAo5B,qBAIA,GAHArlF,EAAAskF,SAAAc,EAAAM,gBACA1lF,EAAAgI,SAAAo9E,EAAAM,gBAAAx1D,KAAA,OAEA,GAAAlwB,EAAAgI,SAAA8C,OACA,OAAA,EAEA9K,EAAA2oE,aAAAxpE,EAAA6D,eAAAhD,EAAAgI,UACAhI,EAAAmI,UAAAnI,EAAAgI,SAAAI,SACApI,EAAA22F,cAAAx3F,EAAA6D,eAAAhD,EAAAmI,WAEA,IAAAF,EAAAqvF,IAEApvF,WAAA+jD,EAAA06B,qBAEA3mF,EAAAi3F,gBAAA93F,EAAA4I,gCAAA/H,EAAAgI,SAAAC,EAAAC,YAEA,IAAAuT,EAAApb,OAAAqV,MAGA,OAFA1V,EAAA42F,mBAAAn7E,GAEA,EAQA,SAAA+7E,EAAA5zC,EAAApuC,GAEA,IACAxN,EADAikD,EAAAo5B,qBACAK,gBAAAx1D,KAAA,OACAjoB,EAAAqvF,IAEA/7C,EAAA7+B,QAAAuvC,EAAA7qD,OAAAo5E,YAGA,IAAAid,GAAA,EAEAvvF,EAAA+jD,EAAA06B,qBAEA,GAAA,QAAA/iC,EAAA,CACA,IAAAl2C,EAAAvO,EAAAmJ,qBAAAN,GACA7I,EAAA+O,oBAAAlG,EAAA0F,EAAAxJ,MAAAwJ,EAAAzM,OAAAgH,EAAAC,OAEA,CACA,IAAAgF,EAAA,MAAA02C,EAEA6zC,EAAAt4F,EAAA8N,sBAAAjF,EAAAkF,EAAA3N,EAAA22F,iBAAA1gF,EAAAvN,EAAA1I,EAAA42F,sBAAAjuF,GAGA,GAAAuvF,IACAl8C,EAAA7+B,QAAAuvC,EAAA7qD,OAAAs5E,SACAn/B,EAAA7+B,QAAAuvC,EAAA7qD,OAAAu5E,aACAp/B,EAAA7+B,QAAAuvC,EAAA7qD,OAAAq5E,WAaA,SAAAid,EAAA1vF,EAAAuC,EAAAotF,GAGA,IAAA99E,EAAA1a,EAAAya,cAAArP,GAEA,IAAA,IAAAotF,GAEA,GAAA,GAAA99E,EAAA/O,OACA,OAAA,OAEA,GAAA+O,EAAA/O,OAAA,EACA,OAAA,EAGA,QAAA3L,EAAAsN,0BAAAzE,GAgCA,SAAA4vF,EAAArtF,GAEAvK,EAAAs2F,aAAA,EAxBA,SAAA/rF,GAEA,IAAAiL,EAAArW,EAAAmL,iBAAAC,GAEAvK,EAAA6V,YAAAL,EAAAhL,MACAxK,EAAA8V,YAAAN,EAAA/K,MAEAzK,EAAA+V,WAAA/V,EAAA6V,YACA7V,EAAAgW,WAAAhW,EAAA8V,YAEA9V,EAAAu2F,YAAAv2F,EAAA2oE,aAAA3+D,KACAhK,EAAAw2F,YAAAx2F,EAAA2oE,aAAA1+D,IAEAjK,EAAAy2F,WAAAz2F,EAAA2oE,aAAAzkE,MAAAlE,EAAA22F,cAAAzyF,MACAlE,EAAA02F,WAAA12F,EAAA2oE,aAAA1nE,OAAAjB,EAAA22F,cAAA11F,OAWA42F,CAAAttF,GA0NA,SAAAutF,EAAAvtF,GAEA,GAAA,GAAAvK,EAAA62F,aACA,OAAA,EAGA,GADA13F,EAAAya,cAAArP,GACAO,SAEA9K,EAAA62F,cAAA,EAGAt7C,EAAA7+B,QAAAuvC,EAAA7qD,OAAAq5E,WASA,SAAAsd,EAAAxtF,GAEA,GAAA,GAAAvK,EAAA62F,aACA,OAAA,EAGA,IAAAh9E,EAAA1a,EAAAya,cAAArP,GAEA,GAAA,GAAAsP,EAAA/O,OACA,OAAA,GA/DA,SAAA+O,GAEA7Z,EAAA62F,cAAA,EAGA72F,EAAA82F,cAAA33F,EAAAoT,YAAAsH,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,MAAAoP,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,OACA,GAAAzK,EAAA82F,gBACA92F,EAAA82F,cAAA,GAIA92F,EAAA+2F,iBAAA53F,EAAA2T,eAAA+G,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,MAAAoP,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,OAEAzK,EAAA2oE,aAAAxpE,EAAA6D,eAAAhD,EAAAgI,UAEAhI,EAAAu2F,YAAAv2F,EAAA2oE,aAAA3+D,KACAhK,EAAAw2F,YAAAx2F,EAAA2oE,aAAA1+D,IAGAjK,EAAAg3F,iBAAA73F,EAAAmM,qBAAAtL,EAAA+2F,iBAAA/2F,EAAAgI,UAGA,GADA7I,EAAAwN,qBAAA3M,EAAAg3F,iBAAAh3F,EAAA2oE,gBAEA3oE,EAAAg3F,iBAAA73F,EAAA+K,sBAAAlK,EAAAgI,WAIAuzC,EAAA7+B,QAAAuvC,EAAA7qD,OAAAo5E,YAsCAwd,CAAAn+E,GA6DA,SAAAw9E,IAEA,GAAAttF,MAAA/J,EAAAgI,UAAA,GAAAhI,EAAAgI,SAAA8C,OACA,OAAA,EAIA,GAFA3L,EAAA6D,eAAAhD,EAAAgI,UAEA9D,MAAAlE,EAAAi3F,gBAAAhuF,WAAA,CAEAjJ,EAAAgI,SAAA5F,IAAA,CACAiK,SAAA,WACAqC,OAAA,SAGA,IAAAD,EAAA,CACAxE,IAAAjK,EAAAi3F,gBAAA9tF,SAAA,KACAa,KAAAhK,EAAAi3F,gBAAA7tF,UAAA,KACAlF,MAAAlE,EAAAi3F,gBAAAhuF,WAAA,KACAhI,OAAAjB,EAAAi3F,gBAAA/tF,YAAA,MAGAlJ,EAAAgI,SAAAmnC,QAAA1gC,EAAA,CACA+gC,SAAAjwC,EAAA62F,gCACA5tD,OAAAjpC,EAAA82F,8BACAl2C,OAAA,SA3PA,WAEA,IAAA83C,GAAA,EAAAC,GAAA,EAAA3qF,EAAA,EAAAC,EAAA,EACA7D,EAAAxK,EAAA6D,eAAAhD,EAAAgI,UACAmwF,EAAAlsC,EAAA06B,qBAEAyR,EAAAj5F,EAAAuK,yBAAA1J,EAAAgI,SAAAmwF,GAEAn4F,EAAAy2F,WAAAz2F,EAAA2oE,aAAAzkE,MAAAlE,EAAA22F,cAAAzyF,MACAlE,EAAA02F,WAAA12F,EAAA2oE,aAAA1nE,OAAAjB,EAAA22F,cAAA11F,OAGA,GAAAjB,EAAA02F,WAEA/sF,EAAAM,IAAA,GAEAuD,EAAA,EACA0qF,GAAA,GAEAvuF,EAAA1G,OAAAjD,EAAA22F,cAAA11F,SAEAuM,EAAAxN,EAAA22F,cAAA11F,OAAA0I,EAAA1I,OACAi3F,GAAA,GAMAvuF,EAAAM,KAAAmuF,EAAAnuF,MACAiuF,GAAA,EACA1qF,EAAA4qF,EAAAnuF,KAOA,GAAAjK,EAAAy2F,WAEA9sF,EAAAK,KAAA,GAEAuD,EAAA,EACA0qF,GAAA,GAEAtuF,EAAA6C,MAAAxM,EAAA22F,cAAAzyF,QAEAqJ,EAAAvN,EAAA22F,cAAAzyF,MAAAyF,EAAAzF,MACA+zF,GAAA,GAQAtuF,EAAAK,MAAAouF,EAAApuF,OACAiuF,GAAA,EACA1qF,EAAA6qF,EAAApuF,MAMA,IAAAyE,EAAA,GACA,GAAAypF,IACAzpF,EAAAxE,IAAAuD,EAAA,MAEA,GAAAyqF,IACAxpF,EAAAzE,KAAAuD,EAAA,MAGA,GAAA2qF,GAAA,GAAAD,GAEAj4F,EAAAgI,SAAAmnC,QAAA1gC,EAAA,CACA+gC,SAAAjwC,EAAA62F,gCACA5tD,OAAAjpC,EAAA82F,8BACAl2C,OAAA,IAmLAk4C,GAaA,SAAAzpC,EAAArkD,GAGA,GAAA,GAAA0hD,EAAA29B,mBAAA,SACA,OAAA,EAEA2N,IAEA,GAAAxtF,MAAA/J,EAAAgI,UAAA,GAAAhI,EAAAgI,SAAA8C,OACA,OAAA,EAEAP,EAAAwiB,iBAGA,MAlMA/sB,EAAAgI,WAAAhI,EAAAgI,SAAA2U,GAAA,eAmMA3c,EAAAgI,SAAA+3C,MAAA,GAGA,GAAA//C,EAAA62F,aAEAiB,EAAAvtF,GAIAwtF,EAAAxtF,GAKA,GAAAvK,EAAA62F,aAEA72F,EAAAs2F,aAAA,EAEA,GAAAoB,EAAA13F,EAAAgI,SAAAuC,IAAA,GAAAvK,EAAAk3F,cAEAU,EAAArtF,GAiBA,SAAAokD,EAAApkD,GAEA,GAAA,GAAA0hD,EAAA29B,mBAAA,SACA,OAAA,EAIA,GAAA,GADAvpF,OAAAkK,EAAA+mB,QACA7uB,KAAA,aAEA,OAAA,EAGA80F,IAEA,GAAAxtF,MAAA/J,EAAAgI,UAAA,GAAAhI,EAAAgI,SAAA8C,OACA,OAAA,EAEA,IAAAwtF,EAAAt4F,EAAAs2F,YACAiC,EAAAv4F,EAAA62F,aAGA,GAAA,GAAA5qC,EAAAq+B,iBAGA,OAFAtqF,EAAA62F,cAAA,EACA72F,EAAAs2F,aAAA,GACA,EAWA,GAPA,GAAAt2F,EAAA62F,aACAiB,EAAAvtF,GAEAwtF,EAAAxtF,GAIA,GAAAvK,EAAA62F,aAEA72F,EAAAs2F,aAAA,MAEA,CAEA,IAAAkC,EAAAd,EAAA13F,EAAAgI,SAAAuC,GAAA,GAEA,GAAAvK,EAAAs2F,YAEAt2F,EAAAs2F,aAAA,EAEA,GAAAkC,GAEAZ,EAAArtF,IAYA+tF,GAAAC,IAAA,GAAAv4F,EAAA62F,cAAA,GAAA72F,EAAAs2F,aACAe,IAWA,SAAAroC,EAAAzkD,GAEA,GAAA,GAAA0hD,EAAA29B,mBAAA,SACA,OAAA,EAGA,GAAA5pF,EAAA62F,aAlOA,SAAAtsF,GAEA,IAAAsP,EAAA1a,EAAAya,cAAArP,GAGAkD,EADAtO,EAAAoT,YAAAsH,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,MAAAoP,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,OACAzK,EAAA82F,cAEA2B,EAAAt5F,EAAA2T,eAAA+G,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,MAAAoP,EAAA,GAAArP,MAAAqP,EAAA,GAAApP,OAGA6C,EAAAtN,EAAA2oE,aAAAzkE,MAAAuJ,EACAJ,EAAArN,EAAA2oE,aAAA1nE,OAAAwM,EAGAC,EAAAvO,EAAAmJ,qBAAAtI,EAAAgI,UACAmG,EAAA,EAIA,GAHAT,EAAAxJ,MAAA,IACAiK,EAAAb,EAAAI,EAAAxJ,OAEAiK,EAAA5O,EAAA42F,sBACA,OAAA,EAGAvoF,OAAA5N,EAAAg3F,iBAAA5sF,EAAAqD,EAAAzN,EAAAg3F,iBAAA5sF,GACAyD,OAAA7N,EAAAg3F,iBAAA3sF,EAAAoD,EAAAzN,EAAAg3F,iBAAA3sF,GAEA,IAAAquF,EAAAD,EAAAruF,EAAApK,EAAA+2F,iBAAA3sF,EACAuuF,EAAAF,EAAApuF,EAAArK,EAAA+2F,iBAAA1sF,EAEAsF,EAAA3P,EAAAu2F,YAAA3oF,KAAA8qF,EACAhpF,EAAA1P,EAAAw2F,YAAA3oF,KAAA8qF,EAIAx5F,EAAAyP,0BAAA5O,EAAAgI,SAAA2H,EAAAD,EAAApC,EAAAD,GAGAkuC,EAAA7+B,QAAAuvC,EAAA7qD,OAAAs5E,SACAn/B,EAAA7+B,QAAAuvC,EAAA7qD,OAAAu5E,aA8LAie,CAAAruF,GAEA,GAAAvK,EAAAs2F,aA9dA,SAAA/rF,GAEA,GAAAR,MAAA/J,EAAAgI,UAAA,GAAAhI,EAAAgI,SAAA8C,OACA,OAAA,EAEA,IAAA0K,EAAArW,EAAAmL,iBAAAC,GAMAsuF,GAJArjF,EAAAhL,MAAAxK,EAAA6V,YACAL,EAAA/K,MAAAzK,EAAA8V,YAGAN,EAAAhL,MAAAxK,EAAA+V,YACA+iF,EAAAtjF,EAAA/K,MAAAzK,EAAAgW,WAEA+iF,EAAAF,EAAA,EAAA,OAAA,QACAG,EAAAF,EAAA,EAAA,KAAA,OAEA94F,EAAA+V,WAAAP,EAAAhL,MACAxK,EAAAgW,WAAAR,EAAA/K,MAEA,IAAAwuF,EAAA95F,EAAA6D,eAAAhD,EAAAgI,UASA,GAAAhI,EAAA02F,WAEAoC,EAAA,EAIA,QAAAE,GAAAC,EAAAhvF,IAAA,EAEA6uF,GAAA,EAEA,MAAAE,GAAAC,EAAAh2F,OAAAjD,EAAA22F,cAAA11F,SAEA63F,GAAA,GAMA,GAAA94F,EAAAy2F,YAAA,GAAAxqC,EAAAq+B,iBAEAuO,EAAA,EAIA,SAAAE,GAAAE,EAAAjvF,KAAA,EACA6uF,GAAA,EAEA,QAAAE,GAAAE,EAAAzsF,MAAAxM,EAAA22F,cAAAzyF,QACA20F,GAAA,GAIA,IAAAK,EAAAD,EAAAjvF,KAAA6uF,EACAM,EAAAF,EAAAhvF,IAAA6uF,EAGA35F,EAAA+B,aAAAlB,EAAAgI,SAAAkxF,EAAAC,GA+ZAC,CAAA7uF,GAWA,SAAA6sF,EAAA7sF,EAAAknB,EAAA4nE,EAAA3nE,GAEA,OAAA,GAAAnyB,EAAAk+E,yBAGA,GAAAxxB,EAAA29B,mBAAA,WAGAr/E,EAAAwiB,sBAWAyqE,EAFA,GAFA/lE,EAAA,EAEA,KAAA,MADAtyB,EAAAmL,iBAAAC,MAyCArH,KAAAo2F,8BAAA,aAKAp2F,KAAAyyF,aAAA,SAAAprF,EAAAqgC,GAIA,GAFA2sD,IAEAxtF,MAAA/J,EAAAgI,UAAA,GAAAhI,EAAAgI,SAAA8C,OACA,OAAA,EAEA,GAAA,GAAA9K,EAAAk3F,aACA,OAAA,EAEA,GAAA,GAAAQ,EAAA13F,EAAAgI,SAAAuC,GACA,OAAA,EAEA,GAAA,GAAA0hD,EAAAq+B,iBACA,OAAA,EAEA,GAAA,QAAA1/C,GAEA,GAAA5qC,EAAA2oE,aAAAn8D,OAAAxM,EAAA22F,cAAAzyF,MACA,OAAA,OAIA,GAAAlE,EAAA2oE,aAAA3+D,MAAA,EACA,OAAA,EAGA,OAAA,GAOA9G,KAAArC,KAAA,SAAA8vF,EAAAvwF,GAEA+2F,EAAAxG,EAAAvwF,IAMA8C,KAAAgK,OAAA,WACAsqF,EAAA,OAMAt0F,KAAAwpF,QAAA,WACA8K,EAAA,QAMAt0F,KAAAypF,SAAA,WAEA6K,EAAA,SAKA,SAAA+B,cAEAr2F,KAAAs2F,aAAA,EACA,IAAAC,EACAC,EADAh1F,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACAy2F,GAAA,EAYA,SAAAC,IAEA,MAAA,oBAAAC,OAyBA,SAAAC,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GAEAP,EAAA,KACAC,GAAA,EAEA,IAAAO,EAAAH,EAAA,SAEAt2F,EAAA,YAAAy2F,EAAA,uCAAAh2F,EAAA,WAAAjD,EAAA,wBAAAiD,EAAA,wBAAAjD,EAAA,iBAEAZ,OAAA,IAAA05F,GAAAt2F,KAAAA,GAEAi2F,EAAAG,OAAAM,MAAAH,EAAA,CACAniF,QAAA,KACA6vE,WAAAxjF,EACAyjF,YAAA1mF,EACA8uB,UAAAmqE,EACA3sD,SAAA0sD,IAGAN,GAAA,EAaAD,EAAAz1E,KAAA,QAAA,WACAu3B,EAAA9+B,QAAAhY,EAAAtD,OAAAg5F,kBAIAV,EAAAz1E,KAAA,SAAA,WACAu3B,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,iBAGAX,EAAAz1E,KAAA,OAAA,WACAu3B,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,cACA7+C,EAAA9+B,QAAAhY,EAAAtD,OAAAk5F,gBAhFAp3F,KAAA9B,OAAA,CACAg5F,cAAA,gBACAC,aAAA,eACAC,YAAA,eAeAp3F,KAAAq3F,QAAA,WAEA,OAAA,GAAAC,cAAAhB,cAGAI,KACAY,cAAAhB,aAAA,GACA,IAGAp+C,cAAAx+B,OAAA,2CAAA,QAEA49E,cAAAhB,aAAA,MA2DAt2F,KAAAu3F,UAAA,SAAAC,GAEA,GAAA,MAAAhB,EACA,OAAA,EAEA,GAAA,GAAAC,EACA,OAAA,EAEA,OAAAe,GACA,IAAA,OACAhB,EAAA9iD,OACA,MACA,IAAA,QACA8iD,EAAAhjD,UASAxzC,KAAAwzC,MAAA,WACAhyC,EAAA+1F,UAAA,UAMAv3F,KAAA0zC,KAAA,WACAlyC,EAAA+1F,UAAA,SAOAv3F,KAAAy3F,SAAA,SAAAZ,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GAEA,GAAAL,IAEA,OADAE,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,IACA,EAKA/2F,KAAAq3F,UACAd,EAAAr7E,aAAA,WAEAw7E,MACAE,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GACA57E,cAAAo7E,MAGA,MAQAv2F,KAAA03F,cAAA,WAEA,SAAAjB,IAAAD,IAWA,SAAAmB,kBAEA33F,KAAAs2F,aAAA,EACA,IAAAC,EACAC,EAAAoB,EADAp2F,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MAYA,SAAA63F,IAEA,MAAA,oBAAAC,GAwBA,SAAAC,EAAAlB,EAAAmB,EAAAh3F,EAAAjD,EAAAg5F,GAEAP,EAAA,KACAC,iBAAA,EAEA,IAAAwB,EAAApB,EAAA,UAEAl9E,EAAAE,SAAAC,SAAA,mEAAAk+E,EACAr+E,GAAA,0OAOA,IAAApZ,EAAA,eAAA03F,EAAA,UAJAt+E,IADA,IAAAo9E,EACA,sBAEA,wBAEA,WAAA/1F,EAAA,aAAAjD,EAAA,sGAEAZ,OAAA,IAAA05F,GAAAt2F,KAAAA,IAGAi2F,EAAAsB,GAAAI,OAAAD,IAEAl3E,KAAA+2E,GAAAI,OAAAC,OAAAC,OAAA,WAEA5B,IACAC,iBAAA,EAiBAD,EAAAz1E,KAAA+2E,GAAAI,OAAAC,OAAAE,MAAA,WACA//C,EAAA9+B,QAAAhY,EAAAtD,OAAAg5F,kBAIAV,EAAAz1E,KAAA+2E,GAAAI,OAAAC,OAAAG,OAAA,WACAhgD,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,iBAGAX,EAAAz1E,KAAA+2E,GAAAI,OAAAC,OAAAI,QAAA,WACAjgD,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,cACA7+C,EAAA9+B,QAAAhY,EAAAtD,OAAAk5F,oBAtBAQ,EAAAf,EAlEA72F,KAAA9B,OAAA,CACAg5F,cAAA,gBACAC,aAAA,eACAC,YAAA,eAcAp3F,KAAAq3F,QAAA,WAEA,OAAA,GAAAmB,kBAAAlC,cAGAuB,KACAW,kBAAAlC,aAAA,GACA,IAGAp+C,cAAAx+B,OAAA,kCAAA,QAEA8+E,kBAAAlC,aAAA,MAoEAt2F,KAAAy4F,SAAA,SAAA5B,EAAAmB,EAAAh3F,EAAAjD,EAAAg5F,GAEA,GAAAc,IAEA,OADAE,EAAAlB,EAAAmB,EAAAh3F,EAAAjD,EAAAg5F,IACA,EAKA/2F,KAAAq3F,UACAd,EAAAr7E,aAAA,WAEA28E,MACAE,EAAAlB,EAAAmB,EAAAh3F,EAAAjD,EAAAg5F,GACA57E,cAAAo7E,MAGA,MAQAv2F,KAAAu3F,UAAA,SAAAC,GAEA,GAAA,MAAAhB,EACA,OAAA,EAEA,GAAA,GAAAC,gBACA,OAAA,EAEA,OAAAe,GACA,IAAA,OACAhB,EAAA9iD,OACA,MACA,IAAA,QACA8iD,EAAAhjD,UAUAxzC,KAAAwzC,MAAA,WACAhyC,EAAA+1F,UAAA,UAOAv3F,KAAA0zC,KAAA,WACAlyC,EAAA+1F,UAAA,SAMAv3F,KAAAC,QAAA,WAEAw2F,iBAAA,EACAD,EAAA,KAEAoB,IACAz6F,OAAA,IAAAy6F,GAAAr3F,KAAA,IACAq3F,EAAA,OASA,SAAAc,kBAEA14F,KAAAs2F,aAAA,EACA,IAAAC,EACAC,EADAh1F,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MAgCA,SAAA24F,IAEA,MAAA,oBAAAC,KAOA,SAAAhC,EAAAC,EAAAt3F,EAAAyB,EAAAjD,EAAAg5F,GAEAP,EAAA,KACAC,iBAAA,EAEA,IAAAoC,EAAAh/E,SAAAC,SAAA,iFACAg/E,EAAAj/E,SAAAC,SAAA,mFAEAk9E,EAAAH,EAAA,SACAkC,EAAA,GACAhC,IAAA,IAAAA,IACAgC,EAAA,uBAEA,IAAAC,EAAA,GACAz5F,EAAA05F,cACAD,EAAA,WAAAz5F,EAAA05F,YAAA,KAEA,IAAA14F,EAAA,cAAAy2F,EAAA,YAAAh2F,EAAA,aAAAjD,EAAA,yCAAAg7F,EAAA,IAAAC,EAAA,IAEA,IAAAz5F,EAAA25F,MACA34F,GAAA,iCAAAhB,EAAA25F,IAAA,QAEA,IAAA35F,EAAA45F,OACA54F,GAAA,kCAAAhB,EAAA45F,KAAA,QAEA,IAAA55F,EAAA65F,MACA74F,GAAA,iCAAAhB,EAAA65F,IAAA,QAEA74F,GAAA,kBAAAS,EAAA,aAAAjD,EAAA,gDAAA86F,EAAA,KACAt4F,GAAA,8BAAAs4F,EAAA,OACAt4F,GAAA,qDAAAhB,EAAA25F,IAAA,OACA34F,GAAA,YAEAA,GAAA,WAEApD,OAAA,IAAA05F,GAAAt2F,KAAAA,GAEA,IAAA84F,aAAArC,EAAA,CACAsC,mBAAA,EACAC,UAAAV,EACAW,gBAAAV,EACAW,QAAA,SAAAC,EAAAC,GACAlD,iBAAA,EACAD,EAAAkD,EAEA,GAAA3C,GACAP,EAAAhjD,QAiBA0E,cAAA91C,SAAAo0F,EAAA,QAAA,WACAl+C,EAAA9+B,QAAAhY,EAAAtD,OAAAg5F,kBAGAh/C,cAAA91C,SAAAo0F,EAAA,SAAA,WACAl+C,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,iBAGAj/C,cAAA91C,SAAAo0F,EAAA,SAAA,WACAl+C,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,cACA7+C,EAAA9+B,QAAAhY,EAAAtD,OAAAk5F,iBAvBA55E,MAAA,SAAAo8E,GACAz4F,MAAAy4F,MAzFA55F,KAAA9B,OAAA,CACAg5F,cAAA,gBACAC,aAAA,eACAC,YAAA,eAMAp3F,KAAAq3F,QAAA,WAEA,OAAA,GAAAwC,kBAAAvD,cAIAqC,KACAkB,kBAAAvD,aAAA,GACA,IAGAp+C,cAAAx+B,OAAA,0EAAA,GACAw+B,cAAA/9B,QAAA,iFAAA,QAEA0/E,kBAAAvD,aAAA,MAiGAt2F,KAAAy3F,SAAA,SAAAZ,EAAAt3F,EAAAyB,EAAAjD,EAAAg5F,GAEA,GAAA4B,IAEA,OADA/B,EAAAC,EAAAt3F,EAAAyB,EAAAjD,EAAAg5F,IACA,EAKA/2F,KAAAq3F,UACAd,EAAAr7E,aAAA,WAEAy9E,MACA/B,EAAAC,EAAAt3F,EAAAyB,EAAAjD,EAAAg5F,GACA57E,cAAAo7E,MAGA,MAOAv2F,KAAAu3F,UAAA,SAAAC,GAEA,GAAA,MAAAhB,EACA,OAAA,EAEA,GAAA,GAAAC,gBACA,OAAA,EAEA,OAAAe,GACA,IAAA,OACAhB,EAAA9iD,OACA,MACA,IAAA,QACA8iD,EAAAhjD,UAUAxzC,KAAAwzC,MAAA,WACAhyC,EAAA+1F,UAAA,UAOAv3F,KAAA0zC,KAAA,WACAlyC,EAAA+1F,UAAA,SAQA,SAAAuC,aAEA95F,KAAAs2F,aAAA,EAEA,IAAAC,EACAwD,EADAv4F,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACAw2F,EAAA,KAAAC,GAAA,EAAAuD,GAAA,EAgCA,SAAAC,IAEA,MAAA,oBAAAC,WAOA,SAAAtD,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GAEAP,EAAA,KACAC,GAAA,EAEA,IAAA98E,EAAAE,SAAAC,SAAA,4BAAAg9E,EAAA,UAEA,IAAAC,IACAp9E,GAAA,2DAEA,IAAApZ,EAAA,eAAAoZ,EAAA,WAAA3Y,EAAA,aAAAjD,EAAA,uFAEAZ,OAAA,IAAA05F,GAAAt2F,KAAAA,GAGA,IAAA45F,EAAAh9F,OAAA,IAAA05F,EAAA,WAAA,IAEAL,EAAA0D,WAAAC,IAEA/3F,SAAA,SAAA,WAEAo0F,IACAC,GAAA,EAYA,WAEA,IAAAD,EACA,OAAA,EAGAA,EAAAp0F,SAAA,aAAA,WAEA,GAAA43F,GACAx4F,EAAAkyC,UAKA8iD,EAAAp0F,SAAA,QAAA,WACAk2C,EAAA9+B,QAAAhY,EAAAtD,OAAAg5F,kBAIAV,EAAAp0F,SAAA,SAAA,WACAk2C,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,iBAGAX,EAAAp0F,SAAA,UAAA,WACAk2C,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,cACA7+C,EAAA9+B,QAAAhY,EAAAtD,OAAAk5F,gBApCAx4F,OAKAm7F,EAAAlD,EAlEA72F,KAAA9B,OAAA,CACAg5F,cAAA,gBACAC,aAAA,eACAC,YAAA,eAMAp3F,KAAAq3F,QAAA,WAEA,OAAA,GAAA+C,aAAA9D,cAGA2D,KACAG,aAAA9D,aAAA,GACA,IAGAp+C,cAAAx+B,OAAA,wCAAA,QAEA0gF,aAAA9D,aAAA,MAqFAt2F,KAAAu3F,UAAA,SAAAC,GAEA,OAAA,MAAAhB,IAGA,GAAAC,QAKAD,EAAAl/D,IAAAkgE,KASAx3F,KAAAwzC,MAAA,WACAhyC,EAAA+1F,UAAA,UAMAv3F,KAAA0zC,KAAA,WACAlyC,EAAA+1F,UAAA,SAMAv3F,KAAAC,QAAA,WAEAu2F,IACAA,EAAAl/D,IAAA,UACAk/D,EAAA,KACAC,GAAA,GAGAsD,GACA58F,OAAA,IAAA48F,GAAAx5F,KAAA,KAQAP,KAAAy3F,SAAA,SAAAZ,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GAEA,GAAAkD,IAEA,OADArD,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,IACA,EAKA/2F,KAAAq3F,UACAd,EAAAr7E,aAAA,WAEA++E,MACArD,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GACA57E,cAAAo7E,MAGA,MAQAv2F,KAAA03F,cAAA,WAEA,SAAAjB,IAAAD,IASAx2F,KAAAq6F,YAAA,SAAAvD,EAAAC,GAEA,GAAA,GAAAv1F,EAAAk2F,gBACA,OAAA,EAEAsC,EAAAjD,EAEAP,EAAAl/D,IAAA,YAAAw/D,IAOA92F,KAAAs6F,eAAA,SAAAxD,EAAAv7C,EAAAg/C,GAEA,IAAA5gF,EAAAE,SAAAC,SAAA,4BAAAg9E,EAAA,QACA35F,OAAAs2B,IAAA9Z,EAAA,IAAA,SAAApa,GACA,IAAA2B,EAAA,GACAA,EAAAs5F,QAAAj7F,EAAA,GAAAk7F,gBACAv5F,EAAA0yE,MAAAr0E,EAAA,GAAAm7F,iBACAH,EAAAh/C,EAAAr6C,OAUA,SAAAy5F,eAEA36F,KAAAs2F,aAAA,EACA,IAAAC,EACAqB,EADAp2F,EAAAxB,KAAAw2F,EAAA,KAAAC,GAAA,EACAn+C,EAAAn7C,OAAA6C,MAAA46F,GAAA,EAEAv+F,EAAA,CACAw+F,wBAAA,GAaA,SAAAjE,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GAEAP,GAAAC,GACAD,EAAAv2F,UAGA,IAAA66F,EAAA,CACA5kE,SAAA,EACAe,SAAA56B,EAAAw+F,uBACA7jE,IAAA,IAGA,IAAA+/D,IACA+D,EAAA9kE,SAAA,GAEAygE,GAAA,EAEAD,EAAA,IAAAuE,GAAAC,OAAAnE,EAAA,CACA94F,OAAAA,EACAiD,MAAAA,EACAq4B,QAAAy9D,EACAgE,WAAAA,EACA58F,OAAA,CACA+8F,QAAAC,EACAC,cAAAC,KAIAxD,EAAAf,EAOA,SAAAwE,IAEA,MAAA,oBAAAN,SAAA,IAAAA,GAAAC,OA0CA,SAAAE,IACAzE,GAAA,EAQA,SAAA2E,IAEA,GAAA,mBAAA5E,EAAA8E,eAEA,OADAn6F,MAAA,8CACA,EAGA,IAAAo6F,EAAA/E,EAAA8E,iBAEA,OAAAC,GACA,KAAAR,GAAAS,YAAAC,QACAnjD,EAAA9+B,QAAAhY,EAAAtD,OAAAg5F,eACA,MACA,KAAA6D,GAAAS,YAAAE,MACApjD,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,cACA7+C,EAAA9+B,QAAAhY,EAAAtD,OAAAk5F,aACA,MACA,QACAwD,GAAAG,GAAAS,YAAAC,SACAnjD,EAAA9+B,QAAAhY,EAAAtD,OAAAi5F,cAIAyD,EAAAW,EAzHAv7F,KAAA9B,OAAA,CACAg5F,cAAA,gBACAC,aAAA,eACAC,YAAA,eAsDAp3F,KAAAxC,WAAA,SAAAwQ,GACA3R,EAAAc,OAAAC,OAAAf,EAAA2R,IAOAhO,KAAAy3F,SAAA,SAAAZ,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GAEA,GAAAsE,IAEA,OADAzE,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,IACA,EAIA/2F,KAAAq3F,UACAd,EAAAr7E,aAAA,WAEAmgF,MACAzE,EAAAC,EAAAC,EAAA91F,EAAAjD,EAAAg5F,GACA57E,cAAAo7E,MAGA,MA+CAv2F,KAAAq3F,QAAA,WAEA,OAAA,GAAAsE,eAAArF,cAGA,oBAAAyE,IACAY,eAAArF,aAAA,GACA,IAGAp+C,cAAAx+B,OAAA,sCAAA,QAEAiiF,eAAArF,aAAA,MAQAt2F,KAAAu3F,UAAA,SAAAC,EAAAoE,GAEA,IAAApF,EACA,OAAA,EAEA,GAAA,GAAAC,EACA,OAAA,EAEA,OAAAe,GACA,IAAA,OACA,GAAA,mBAAAhB,EAAAqF,UACA,OAAA,EAEArF,EAAAqF,YACA,MACA,IAAA,QACA,GAAA,mBAAArF,EAAAsF,WACA,OAAA,EAEAtF,EAAAsF,aACA,MACA,IAAA,OACA,GAAA,mBAAAtF,EAAAuF,OACA,OAAA,EAEAvF,EAAAuF,OAAAH,GACA,MACA,IAAA,kBACA,IAAAL,EAAA/E,EAAA8E,iBAIA,OAFA9E,EAAAsF,aAEAP,GACA,KAAAR,GAAAS,YAAAC,QACA,KAAAV,GAAAS,YAAAE,MACA,KAAAX,GAAAS,YAAAQ,OACAxF,EAAAuF,OAAA,MAUA/7F,KAAA0zC,KAAA,WACAlyC,EAAA+1F,UAAA,SAMAv3F,KAAAwzC,MAAA,WACAhyC,EAAA+1F,UAAA,UAMAv3F,KAAAC,QAAA,WACA,IAEAu2F,IACAC,GAAA,EACAD,EAAAyF,aACAzF,EAAAv2F,WAGA,MAAA25F,GAEAz8F,OAAA,IAAAy6F,GAAAr3F,KAAA,MASAP,KAAAk8F,gBAAA,WACA16F,EAAA+1F,UAAA,oBAMAv3F,KAAAq6F,YAAA,SAAAvD,EAAAC,GAEA,GAAA,GAAAv1F,EAAAk2F,gBACA,OAAA,EAEAX,GAAA,GAAAA,EACAP,EAAA2F,cAAArF,EAAA,EAAA,SAEAN,EAAA4F,aAAAtF,EAAA,EAAA,UAOA92F,KAAA03F,cAAA,WAEA,SAAAjB,IAAAD,IAWAx2F,KAAAs6F,eAAA,SAAAxD,GACA,IAAA51F,EAAA,GAGA,OAFAA,EAAAs5F,QAAA,0BAAA1D,EAAA,iBACA51F,EAAA0yE,MAAA,0BAAAkjB,EAAA,eACA,GASA,SAAA9f,gBAEA,IAAAqlB,EAGAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAHAp7F,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MAAA/D,EAAA,IAAAC,YACA2gG,EAAA,IAAAlC,aAAAmC,EAAA,IAAAhD,WACAiD,EAAA,IAAArE,gBAAAsE,EAAA,IAAArF,gBAAAsF,EAAA,IAAA5G,YAEA6G,EAAA,KAEA7gG,EAAA,CACAqiF,0BAAA,GAGA1+E,KAAA9B,OAAA,CACAoiF,KAAA,aACAE,KAAA,aACA2c,WAAA,mBACAC,UAAA,kBACAhG,YAAA,eAGA,IAAAt6F,EAAA,CACAugG,gBAAA,EACAC,eAAA,GACAC,cAAA,GACAC,cAAA,GACAC,eAAA,GACAC,mBAAA,IAkEA,SAAAC,IACAn8F,EAAApD,OAMA,SAAAw/F,IAEAtlD,EAAA9+B,QAAAhY,EAAAtD,OAAAi/F,YAEAT,GACAA,EAAAt+F,OAOA,SAAAy/F,IAEAvlD,EAAA9+B,QAAAhY,EAAAtD,OAAAk/F,WAEAV,GACAA,EAAA98F,OAMA,SAAAk+F,IAEAxlD,EAAA9+B,QAAAhY,EAAAtD,OAAAk5F,aA4MA,SAAA2G,EAAAC,GAEA,IAAAC,EAAA,CAAA,UAAA,QAAA,QAAA,aAAA,UACA,IAAA,IAAAx+F,KAAAw+F,EAAA,CACA,IAAAC,EAAAD,EAAAx+F,GACA,GAAAy+F,GAAAF,EAEA,OAAAE,GACA,IAAA,UACArB,EAAArpD,QACAqpD,EAAA58F,UACAs8F,EAAAn+F,OACA,MACA,IAAA,QACA0+F,EAAAtpD,QACAspD,EAAA78F,UACAu8F,EAAAp+F,OACA,MACA,IAAA,QACA2+F,EAAAvpD,QACAipD,EAAAr+F,OACA,MACA,IAAA,aACA4+F,EAAAxpD,QACAwpD,EAAA/8F,UACA08F,EAAAv+F,OACA,MACA,IAAA,SACA6+F,EAAAzpD,QACAopD,EAAAx+F,SApUA4B,KAAArC,KAAA,SAAAwgG,EAAAC,EAAAlf,GAGA,KAFAmd,EAAAnd,GAGA,MAAA,IAAA32E,MAAA,qDAEAlM,EAAAc,OAAAC,OAAAf,EAAA8hG,GAEAtB,EAAAr/F,WAAAnB,GAEA+hG,GAAA,GAAAA,IACAthG,EAAAugG,gBAAA,IAQAr9F,KAAAX,QAAA,SAAA4F,GAEAnI,EAAAwgG,eAAAjB,EAAA,iBACAv/F,EAAAygG,cAAAlB,EAAA,qBACAv/F,EAAA0gG,cAAAnB,EAAA,qBACAv/F,EAAA2gG,eAAApB,EAAA,sBACAv/F,EAAA4gG,mBAAArB,EAAA,0BAGA,IAAA97F,EAAA,oDACAA,GAAA,4FAAAzD,EAAAwgG,eAAA,iBACA/8F,GAAA,YAAAzD,EAAAygG,cAAA,oFACAh9F,GAAA,YAAAzD,EAAA0gG,cAAA,+DACAj9F,GAAA,YAAAzD,EAAA4gG,mBAAA,oEACAn9F,GAAA,YAAAzD,EAAA2gG,eAAA,gEAEA,GAAA3gG,EAAAugG,gBAAA,GAAAhhG,EAAAqiF,2BACAn+E,GAAA,mDAEAA,GAAA,SAEA0E,EAAAjG,OAAAuB,GAEA+7F,EAAAr3F,EAAAhG,SAAA,mBACAs9F,EAAAD,EAAAr9F,SAAA,2BACAu9F,EAAAF,EAAAr9F,SAAA,yBACAw9F,EAAAH,EAAAr9F,SAAA,yBACA09F,EAAAL,EAAAr9F,SAAA,8BACA29F,EAAAN,EAAAr9F,SAAA,0BAEA,GAAAnC,EAAAugG,gBAAA,GAAAhhG,EAAAqiF,2BACAge,EAAAJ,EAAAr9F,SAAA,kCAsFAe,KAAAC,QAAA,WAEAy8F,IACAA,EAAAx8F,IAAA,SACAw8F,EAAAx8F,IAAA,aAIA/C,OAAA0/F,GAAA38F,IAAA28F,EAAA3+F,OAAAg5F,eACA/5F,OAAA0/F,GAAA38F,IAAA28F,EAAA3+F,OAAAi5F,cAGAh6F,OAAA2/F,GAAA58F,IAAA48F,EAAA5+F,OAAAg5F,eACA/5F,OAAA2/F,GAAA58F,IAAA48F,EAAA5+F,OAAAi5F,cAGAh6F,OAAA4/F,GAAA78F,IAAA68F,EAAA7+F,OAAAg5F,eACA/5F,OAAA4/F,GAAA78F,IAAA68F,EAAA7+F,OAAAi5F,cAEAh6F,OAAA6/F,GAAA98F,IAAA88F,EAAA9+F,OAAAg5F,cAAA0G,GACAzgG,OAAA6/F,GAAA98F,IAAA88F,EAAA9+F,OAAAi5F,aAAA0G,GAEA1gG,OAAA8/F,GAAA/8F,IAAA+8F,EAAA/+F,OAAAg5F,cAAA0G,GACAzgG,OAAA8/F,GAAA/8F,IAAA+8F,EAAA/+F,OAAAi5F,aAAA0G,GAEAX,EAAA,MAOAl9F,KAAApB,WAAA,WAlEA89F,IACAzgG,EAAAyb,qBAAAglF,GACAzgG,EAAAkd,iBAAAujF,EAAAiB,IAIAxgG,OAAA0/F,GAAAx+F,GAAAw+F,EAAA3+F,OAAAg5F,cAAA0G,GACAzgG,OAAA0/F,GAAAx+F,GAAAw+F,EAAA3+F,OAAAi5F,aAAA0G,GACA1gG,OAAA0/F,GAAAx+F,GAAAw+F,EAAA3+F,OAAAk5F,YAAA0G,GAGA3gG,OAAA2/F,GAAAz+F,GAAAy+F,EAAA5+F,OAAAg5F,cAAA0G,GACAzgG,OAAA2/F,GAAAz+F,GAAAy+F,EAAA5+F,OAAAi5F,aAAA0G,GACA1gG,OAAA2/F,GAAAz+F,GAAAy+F,EAAA5+F,OAAAk5F,YAAA0G,GAGA3gG,OAAA4/F,GAAA1+F,GAAA0+F,EAAA7+F,OAAAg5F,cAAA0G,GACAzgG,OAAA4/F,GAAA1+F,GAAA0+F,EAAA7+F,OAAAi5F,aAAA0G,GACA1gG,OAAA4/F,GAAA1+F,GAAA0+F,EAAA7+F,OAAAk5F,YAAA0G,GAEA3gG,OAAA6/F,GAAA3+F,GAAA2+F,EAAA9+F,OAAAg5F,cAAA0G,GACAzgG,OAAA6/F,GAAA3+F,GAAA2+F,EAAA9+F,OAAAi5F,aAAA0G,GACA1gG,OAAA6/F,GAAA3+F,GAAA2+F,EAAA9+F,OAAAk5F,YAAA0G,GAEA3gG,OAAA8/F,GAAA5+F,GAAA4+F,EAAA/+F,OAAAg5F,cAAA0G,GACAzgG,OAAA8/F,GAAA5+F,GAAA4+F,EAAA/+F,OAAAi5F,aAAA0G,GACA1gG,OAAA8/F,GAAA5+F,GAAA4+F,EAAA/+F,OAAAk5F,YAAA0G,IAiDA99F,KAAA2hF,QAAA,SAAA3gF,EAAAjD,GAEA9B,EAAAiP,eAAAoxF,EAAAt7F,EAAAjD,GAEA2+F,GACAzgG,EAAA+B,aAAA0+F,EAAA,QAAA,QAQA18F,KAAA4qC,YAAA,SAAA9jC,EAAAC,GACA9K,EAAA+B,aAAAs+F,EAAAx1F,EAAAC,IAMA/G,KAAA0kF,UAAA,WACA,OAAA,GAOA1kF,KAAAJ,KAAA,WAEA,GAAA,GAAA4B,EAAA0lD,YACA,OAAA,EAEAo1C,EAAA18F,OAEA08F,EAAAx+F,OAAA,EAAA,GAEA4+F,GACAA,EAAA98F,OAEA04C,EAAA9+B,QAAAhY,EAAAtD,OAAAoiF,OAOAtgF,KAAA5B,KAAA,WAEA,GAAA,GAAAoD,EAAA0lD,YACA,OAAA,EAGA62C,IAEAb,EAAA,KAEAZ,EAAAl+F,OAEAk6C,EAAA9+B,QAAAhY,EAAAtD,OAAAsiF,OAOAxgF,KAAAq+F,aAAA,WAEA,OAAAnB,GACA,IAAA,UACA,OAAAL,EAEA,IAAA,QACA,OAAAC,EAEA,IAAA,SACA,OAAAG,EAEA,IAAA,aACA,OAAAD,EAEA,IAAA,QACA,OAAAD,EAEA,QACA,OAAA,OASA/8F,KAAAwzC,MAAA,WAEA,IAAA8qD,EAAA98F,EAAA68F,eACA,GAAA,MAAAC,EACA,OAAA,EAEA,mBAAAA,EAAA9qD,OACA8qD,EAAA9qD,SAQAxzC,KAAAknD,UAAA,WAEA,OAAAo1C,EAAA7iF,GAAA,aA+CAzZ,KAAA+nF,YAAA,SAAA+O,EAAAC,GAEA,QAAA,IAAAA,EACAA,GAAA,EAEAgH,EAAA,WAEAxB,EAAA38F,OAGA,GADA28F,EAAAt9F,SAAA,IAAAnC,EAAAwgG,gBACA11F,QACA20F,EAAAv9F,OAAA,YAAAlC,EAAAwgG,eAAA,YAGA,GAAAT,EAAAnF,iBAAA,GAAA56F,EAAAugG,eACAR,EAAAxC,YAAAvD,EAAAC,GAEA8F,EAAApF,SAAA36F,EAAAwgG,eAAAxG,EAAA,OAAA,OAAAC,GAGAmG,EAAA,WAOAl9F,KAAAioF,UAAA,SAAA6O,EAAAC,GAEA,QAAA,IAAAA,EACAA,GAAA,EAEAgH,EAAA,SAEAvB,EAAA58F,OAEAk9F,EAAArF,SAAA36F,EAAAygG,cAAAzG,EAAA,OAAA,OAAAC,GAUAmG,EAAA,SAQAl9F,KAAAkoF,eAAA,SAAAkR,EAAAD,EAAAD,EAAAD,EAAAlC,GAEA,QAAA,IAAAA,EACAA,GAAA,EAEAgH,EAAA,SAEAtB,EAAA78F,OAIA,IAAAL,EAAA,CACA65F,IAAAA,EACAD,KAAAA,EACAD,IAAAA,EACAD,YAAAA,GAGA8D,EAAAtF,SAAA36F,EAAA0gG,cAAAj+F,EAAA,OAAA,OAAAw3F,GAEAmG,EAAA,SAOAl9F,KAAAsoF,eAAA,SAAA0P,EAAAjB,GAEA,QAAA,IAAAA,EACAA,GAAA,EAEAgH,EAAA,cAEApB,EAAA/8F,OAEAo9F,EAAAvE,SAAA37F,EAAA4gG,mBAAA1F,EAAA,OAAA,OAAAjB,GAEAmG,EAAA,cAQAl9F,KAAAwoF,WAAA,SAAAsO,EAAAC,GAEA,QAAA,IAAAA,EACAA,GAAA,EAEAgH,EAAA,UAEAnB,EAAAh9F,OAEAq9F,EAAAxF,SAAA36F,EAAA2gG,eAAA3G,EAAA,OAAA,OAAAC,GAEAmG,EAAA,WA1lhBA,SAAA/oF,GAAA,mBAAA4gB,QAAAA,OAAAC,IAAAD,OAAA,CAAA,UAAA5gB,GAAA,iBAAAye,QAAAE,OAAAF,QAAAze,EAAAA,EAAAhX,QAAA,EAAA,SAAAgX,GAAA,SAAA3S,EAAAA,GAAA,IAAA4b,EAAA5b,GAAAsS,OAAAzM,MAAAsV,EAAAkC,EAAA/B,KAAAF,UAAA,GAAAM,EAAA,EAAAtH,EAAA,EAAAM,EAAA,EAAAyH,EAAA,EAAA,IAAAnc,EAAA2S,EAAA9M,MAAAghB,IAAAjL,IAAAjG,KAAA,aAAA,WAAAiG,IAAAlH,GAAA,EAAAkH,EAAAsR,QAAA,eAAAtR,IAAAlH,EAAAkH,EAAAqR,YAAA,gBAAArR,IAAAlH,EAAAkH,EAAAmhF,aAAA,gBAAAnhF,IAAAxH,GAAA,EAAAwH,EAAAohF,aAAA,SAAAphF,GAAAA,EAAAqhF,OAAArhF,EAAAshF,kBAAA9oF,GAAA,EAAAM,EAAAA,EAAA,GAAAgH,EAAA,IAAAhH,EAAAN,EAAAM,EAAA,WAAAkH,IAAAF,EAAAhH,GAAA,EAAAkH,EAAAoR,QAAA,WAAApR,IAAAxH,EAAAwH,EAAA+4E,OAAA,IAAAjgF,IAAAgH,GAAA,EAAAtH,IAAA,IAAAM,GAAA,IAAAN,EAAA,CAAA,GAAA,IAAAwH,EAAAuhF,UAAA,CAAA,IAAA9gF,EAAA1J,EAAA5U,KAAAS,KAAA,0BAAAkd,GAAAW,EAAA3H,GAAA2H,EAAAjI,GAAAiI,OAAA,GAAA,IAAAT,EAAAuhF,UAAA,CAAA,IAAAjhF,EAAAvJ,EAAA5U,KAAAS,KAAA,0BAAAkd,GAAAQ,EAAAxH,GAAAwH,EAAA9H,GAAA8H,EAAA,OAAAC,EAAA9c,KAAA4hC,IAAA5hC,KAAA8O,IAAAuG,GAAArV,KAAA8O,IAAAiG,MAAAoH,GAAAA,EAAAW,KAAAX,EAAAW,EAAA1I,EAAAmI,EAAAO,KAAAX,GAAA,KAAA/H,EAAAmI,EAAAO,KAAAT,GAAA,GAAAtH,GAAA,GAAAM,GAAA,IAAAgH,EAAArc,KAAAqc,GAAA,EAAA,QAAA,QAAAA,EAAAF,GAAApH,EAAA/U,KAAA+U,GAAA,EAAA,QAAA,QAAAA,EAAAoH,GAAA9G,EAAArV,KAAAqV,GAAA,EAAA,QAAA,QAAAA,EAAA8G,GAAAxb,EAAA20F,OAAAvgF,EAAApU,EAAAgtB,OAAAtY,EAAA1U,EAAAo9F,YAAA5hF,EAAAxb,EAAAm9F,UAAA,EAAAhiF,EAAAyD,QAAA5e,EAAA0b,EAAAtH,EAAAM,GAAAoH,GAAA3E,aAAA2E,GAAAA,EAAA1E,WAAA8D,EAAA,MAAAvI,EAAA9M,MAAAw3F,UAAA1qF,EAAA9M,MAAAlF,QAAA4a,MAAA/c,KAAA2c,IAAA,SAAAD,IAAAM,EAAA,KAAA,SAAA/H,EAAAd,EAAA3S,GAAA,OAAAoU,EAAA2G,SAAAuiF,iBAAA,eAAA3qF,EAAAgD,MAAA3V,EAAA,KAAA,EAAA,IAAA8b,EAAAN,EAAAI,EAAA,CAAA,QAAA,aAAA,iBAAA,uBAAAT,EAAA,YAAAtZ,UAAAA,SAAAyoB,cAAA,EAAA,CAAA,SAAA,CAAA,aAAA,iBAAA,uBAAAjN,EAAAo5B,MAAAl4B,UAAAhB,MAAA,GAAA5K,EAAA9M,MAAA03F,SAAA,IAAA,IAAA7hF,EAAAE,EAAAxV,OAAAsV,GAAA/I,EAAA9M,MAAA03F,SAAA3hF,IAAAF,IAAA/I,EAAA9M,MAAA23F,WAAA,IAAAppF,EAAAzB,EAAA9M,MAAA43F,QAAAC,WAAA,CAAAvqF,QAAA,QAAAwO,MAAA,WAAA,GAAAnjB,KAAAwC,iBAAA,IAAA,IAAAka,EAAAC,EAAA/U,OAAA8U,GAAA1c,KAAAwC,iBAAAma,IAAAD,GAAAlb,GAAA,QAAAxB,KAAAm/F,aAAA39F,EAAA2S,EAAA5U,KAAAS,KAAA,yBAAA4V,EAAAwpF,cAAAp/F,OAAAmU,EAAA5U,KAAAS,KAAA,yBAAA4V,EAAAypF,cAAAr/F,QAAAs/F,SAAA,WAAA,GAAAt/F,KAAA8jC,oBAAA,IAAA,IAAA3vB,EAAAwI,EAAA/U,OAAAuM,GAAAnU,KAAA8jC,oBAAAnnB,IAAAxI,GAAA3S,GAAA,QAAAxB,KAAAm/F,aAAA,MAAAC,cAAA,SAAA59F,GAAA,OAAA4T,SAAAjB,EAAA3S,GAAA,iBAAA2S,EAAAU,GAAA,eAAA,YAAA3V,IAAA,YAAA,KAAAmgG,cAAA,SAAA79F,GAAA,OAAA2S,EAAA3S,GAAAzD,UAAAwe,SAAA,CAAAuiF,iBAAA,IAAA3qF,EAAAU,GAAAzX,OAAA,CAAA8hG,WAAA,SAAA/qF,GAAA,OAAAA,EAAAnU,KAAA+gB,KAAA,aAAA5M,GAAAnU,KAAAwZ,QAAA,eAAA+lF,aAAA,SAAAprF,GAAA,OAAAnU,KAAA4D,OAAA,aAAAuQ,SAIA,SAAAmoB,GAAA,mBAAAvH,QAAAA,OAAAC,IAAAD,OAAA,CAAA,WAAA,SAAA3Y,GAAA,OAAAkgB,EAAAlgB,MAAA,iBAAA0W,QAAA,iBAAAA,OAAAF,QAAAA,QAAA0J,EAAA5J,QAAA,WAAA4J,EAAAn/B,QAAA,EAAA,SAAAif,GAAAA,EAAAkpB,OAAA,OAAAlpB,EAAAkpB,OAAA,MAAA,IAAA9D,EAAA3gC,KAAA2gC,IAAA9xB,EAAA7O,KAAA6O,KAAAk2D,EAAA/kE,KAAA+kE,IAAA45B,EAAA3+F,KAAA2+F,IAAAtoD,EAAAr2C,KAAAq2C,GAAAuoD,EAAA,QAAAC,EAAA,MAAAD,EAAAE,EAAA,EAAAzoD,EAAA,EAAA0oD,EAAA,EAAA1oD,EAAA,IAAA,SAAA2oD,EAAA34F,GAAA,IAAA44F,EAAA,OAAAC,EAAA,KAAA,OAAA74F,EAAA,EAAA64F,EAAAD,EAAA54F,EAAAA,EAAAA,EAAA,EAAA64F,EAAAD,GAAA54F,GAAA,IAAA64F,GAAA74F,EAAA,IAAAA,EAAA,IAAA64F,EAAAD,GAAA54F,GAAA,KAAA64F,GAAA74F,EAAA,MAAA44F,GAAA54F,GAAA,MAAA64F,GAAA74F,EAAA,QAAAkV,EAAAhf,OAAAgf,EAAAkpB,OAAA,CAAA06D,IAAA,cAAAC,MAAA,SAAA/4F,GAAA,OAAAkV,EAAAkpB,OAAAlpB,EAAAkpB,OAAA06D,KAAA94F,IAAA06B,WAAA,SAAA16B,GAAA,OAAAA,EAAAA,GAAA26B,YAAA,SAAA36B,GAAA,OAAA,GAAA,EAAAA,IAAA,EAAAA,IAAA46B,cAAA,SAAA56B,GAAA,OAAAA,EAAA,GAAA,EAAAA,EAAAA,EAAA,EAAAs6B,GAAA,EAAAt6B,EAAA,EAAA,GAAA,GAAA66B,YAAA,SAAA76B,GAAA,OAAAA,EAAAA,EAAAA,GAAA86B,aAAA,SAAA96B,GAAA,OAAA,EAAAs6B,EAAA,EAAAt6B,EAAA,IAAA+6B,eAAA,SAAA/6B,GAAA,OAAAA,EAAA,GAAA,EAAAA,EAAAA,EAAAA,EAAA,EAAAs6B,GAAA,EAAAt6B,EAAA,EAAA,GAAA,GAAAg7B,YAAA,SAAAh7B,GAAA,OAAAA,EAAAA,EAAAA,EAAAA,GAAAi7B,aAAA,SAAAj7B,GAAA,OAAA,EAAAs6B,EAAA,EAAAt6B,EAAA,IAAAk7B,eAAA,SAAAl7B,GAAA,OAAAA,EAAA,GAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,EAAAs6B,GAAA,EAAAt6B,EAAA,EAAA,GAAA,GAAAm7B,YAAA,SAAAn7B,GAAA,OAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAo7B,aAAA,SAAAp7B,GAAA,OAAA,EAAAs6B,EAAA,EAAAt6B,EAAA,IAAAq7B,eAAA,SAAAr7B,GAAA,OAAAA,EAAA,GAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,EAAAs6B,GAAA,EAAAt6B,EAAA,EAAA,GAAA,GAAAg5F,WAAA,SAAAh5F,GAAA,OAAA,EAAAs4F,EAAAt4F,EAAAgwC,EAAA,IAAAipD,YAAA,SAAAj5F,GAAA,OAAA0+D,EAAA1+D,EAAAgwC,EAAA,IAAAkpD,cAAA,SAAAl5F,GAAA,QAAAs4F,EAAAtoD,EAAAhwC,GAAA,GAAA,GAAAm5F,WAAA,SAAAn5F,GAAA,OAAA,IAAAA,EAAA,EAAAs6B,EAAA,EAAA,GAAAt6B,EAAA,KAAAo5F,YAAA,SAAAp5F,GAAA,OAAA,IAAAA,EAAA,EAAA,EAAAs6B,EAAA,GAAA,GAAAt6B,IAAAq5F,cAAA,SAAAr5F,GAAA,OAAA,IAAAA,EAAA,EAAA,IAAAA,EAAA,EAAAA,EAAA,GAAAs6B,EAAA,EAAA,GAAAt6B,EAAA,IAAA,GAAA,EAAAs6B,EAAA,GAAA,GAAAt6B,EAAA,KAAA,GAAAs5F,WAAA,SAAAt5F,GAAA,OAAA,EAAAwI,EAAA,EAAA8xB,EAAAt6B,EAAA,KAAAu5F,YAAA,SAAAv5F,GAAA,OAAAwI,EAAA,EAAA8xB,EAAAt6B,EAAA,EAAA,KAAAw5F,cAAA,SAAAx5F,GAAA,OAAAA,EAAA,IAAA,EAAAwI,EAAA,EAAA8xB,EAAA,EAAAt6B,EAAA,KAAA,GAAAwI,EAAA,EAAA8xB,GAAA,EAAAt6B,EAAA,EAAA,IAAA,GAAA,GAAAy5F,cAAA,SAAAz5F,GAAA,OAAA,IAAAA,EAAA,EAAA,IAAAA,EAAA,GAAAs6B,EAAA,EAAA,GAAAt6B,EAAA,IAAA0+D,GAAA,GAAA1+D,EAAA,OAAAy4F,IAAAiB,eAAA,SAAA15F,GAAA,OAAA,IAAAA,EAAA,EAAA,IAAAA,EAAA,EAAAs6B,EAAA,GAAA,GAAAt6B,GAAA0+D,GAAA,GAAA1+D,EAAA,KAAAy4F,GAAA,GAAAkB,iBAAA,SAAA35F,GAAA,OAAA,IAAAA,EAAA,EAAA,IAAAA,EAAA,EAAAA,EAAA,IAAAs6B,EAAA,EAAA,GAAAt6B,EAAA,IAAA0+D,GAAA,GAAA1+D,EAAA,QAAA04F,GAAA,EAAAp+D,EAAA,GAAA,GAAAt6B,EAAA,IAAA0+D,GAAA,GAAA1+D,EAAA,QAAA04F,GAAA,EAAA,GAAAkB,WAAA,SAAA55F,GAAA,OAAAu4F,QAAAv4F,EAAAA,EAAAA,EAAAu4F,EAAAv4F,EAAAA,GAAA65F,YAAA,SAAA75F,GAAA,OAAA,EAAAu4F,QAAAj+D,EAAAt6B,EAAA,EAAA,GAAAu4F,EAAAj+D,EAAAt6B,EAAA,EAAA,IAAA85F,cAAA,SAAA95F,GAAA,OAAAA,EAAA,GAAAs6B,EAAA,EAAAt6B,EAAA,IAAA,SAAAA,EAAAw4F,GAAA,GAAAl+D,EAAA,EAAAt6B,EAAA,EAAA,KAAAw4F,EAAA,IAAA,EAAAx4F,EAAA,GAAAw4F,GAAA,GAAA,GAAAuB,aAAA,SAAA/5F,GAAA,OAAA,EAAA24F,EAAA,EAAA34F,IAAAg6F,cAAArB,EAAAsB,gBAAA,SAAAj6F,GAAA,OAAAA,EAAA,IAAA,EAAA24F,EAAA,EAAA,EAAA34F,IAAA,GAAA,EAAA24F,EAAA,EAAA34F,EAAA,IAAA,QAIA,SAAA0O,EAAA8G,GACA,QAAA,IAAA9G,EAAAwrF,SACA,OAAA,EACA,SAAA5/F,EAAAoU,EAAA8G,EAAAlb,GAAA,IAAA2S,EAAAwJ,EAAAjB,EAAAvF,OAAA,GAAA,OAAA,MAAAvB,EAAApU,IAAAkb,EAAAsjF,IAAA,KAAAtjF,EAAAsjF,KAAApqF,EAAAzB,EAAA9N,QAAAuP,EAAAwoB,WAAAxoB,GAAAgqB,MAAAhqB,GAAA8G,EAAAsjF,IAAA7rF,EAAAktF,KAAAzrF,EAAAzB,EAAAktF,KAAAltF,EAAAktF,IAAA,EAAAzrF,EAAA,EAAAzB,EAAAsuB,IAAA7sB,EAAAzB,EAAAsuB,IAAA7sB,GAAA,SAAAzB,EAAAuI,GAAA,IAAAlb,EAAAwb,IAAA7I,EAAA3S,EAAA8/F,MAAA,GAAA,OAAA5kF,EAAAA,EAAA9X,cAAAia,EAAA3B,GAAA,SAAAtH,EAAA0H,GAAA,IAAAX,EAAAS,EAAAE,EAAAikF,GAAA93E,KAAA/M,GAAAzH,EAAAmI,GAAAE,EAAAkkF,MAAApkF,GAAAF,EAAAI,EAAAmkF,OAAA,OAAA,OAAAxsF,GAAA0H,EAAAnb,EAAA0b,GAAAjI,GAAAzT,EAAAqc,EAAAX,GAAAwkF,OAAA/kF,EAAAkB,EAAAX,GAAAwkF,OAAAvtF,EAAA3S,EAAA8/F,MAAA3kF,EAAA2kF,OAAA,QAAA,KAAAntF,EAAAvM,QAAA,YAAAuM,EAAAqK,QAAA5I,EAAAxY,OAAA+W,EAAAwI,EAAAglF,aAAAngG,GAAAmb,EAAAD,GAAA,SAAAY,EAAA1H,EAAA8G,EAAAlb,GAAA,OAAA,EAAA,GAAAA,GAAAA,EAAA,GAAA,GAAAoU,GAAA8G,EAAA9G,GAAApU,EAAA,EAAA,EAAA,EAAAA,EAAAkb,EAAA,EAAA,EAAAlb,EAAAoU,GAAA8G,EAAA9G,IAAA,EAAA,EAAApU,GAAA,EAAAoU,EAAA,IAAA+G,EAAA1H,EAAA,0BAAAiI,EAAA,CAAA,CAAAqkF,GAAA,sFAAAC,MAAA,SAAA5rF,GAAA,MAAA,CAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,MAAA,CAAA2rF,GAAA,8GAAAC,MAAA,SAAA5rF,GAAA,MAAA,CAAA,KAAAA,EAAA,GAAA,KAAAA,EAAA,GAAA,KAAAA,EAAA,GAAAA,EAAA,MAAA,CAAA2rF,GAAA,2CAAAC,MAAA,SAAA5rF,GAAA,MAAA,CAAAR,SAAAQ,EAAA,GAAA,IAAAR,SAAAQ,EAAA,GAAA,IAAAR,SAAAQ,EAAA,GAAA,OAAA,CAAA2rF,GAAA,kCAAAC,MAAA,SAAA5rF,GAAA,MAAA,CAAAR,SAAAQ,EAAA,GAAAA,EAAA,GAAA,IAAAR,SAAAQ,EAAA,GAAAA,EAAA,GAAA,IAAAR,SAAAQ,EAAA,GAAAA,EAAA,GAAA,OAAA,CAAA2rF,GAAA,4GAAAE,MAAA,OAAAD,MAAA,SAAA5rF,GAAA,MAAA,CAAAA,EAAA,GAAAA,EAAA,GAAA,IAAAA,EAAA,GAAA,IAAAA,EAAA,OAAAoH,EAAApH,EAAAgsF,MAAA,SAAAllF,EAAAlb,EAAA2S,EAAAmJ,GAAA,OAAA,IAAA1H,EAAAgsF,MAAA/sF,GAAA2sF,MAAA9kF,EAAAlb,EAAA2S,EAAAmJ,IAAAO,EAAA,CAAAgkF,KAAA,CAAAvsE,MAAA,CAAAwsE,IAAA,CAAAC,IAAA,EAAA5qF,KAAA,QAAA6qF,MAAA,CAAAD,IAAA,EAAA5qF,KAAA,QAAA8qF,KAAA,CAAAF,IAAA,EAAA5qF,KAAA,UAAA+qF,KAAA,CAAA5sE,MAAA,CAAA6sE,IAAA,CAAAJ,IAAA,EAAA5qF,KAAA,WAAAirF,WAAA,CAAAL,IAAA,EAAA5qF,KAAA,WAAAkrF,UAAA,CAAAN,IAAA,EAAA5qF,KAAA,cAAAwG,EAAA,CAAA2kF,KAAA,CAAAj8F,OAAA,EAAAo8B,IAAA,KAAA7mB,QAAA,CAAA6mB,IAAA,GAAA8/D,QAAA,CAAAlB,IAAA,IAAAh7F,OAAA,IAAA8W,EAAAH,EAAAke,QAAA,GAAAhlB,EAAAN,EAAA,OAAA,GAAAiJ,EAAAjJ,EAAAzH,KAAA+H,EAAAvR,MAAAoZ,QAAA,kCAAAZ,EAAA0kF,KAAA3rF,EAAAvR,MAAA69F,gBAAAl0F,QAAA,SAAA,EAAAuQ,EAAAhB,GAAA,SAAAjI,EAAA8G,GAAAA,EAAAglF,MAAA,IAAA9rF,EAAA8G,EAAA4Y,MAAAmtE,MAAA,CAAAV,IAAA,EAAA5qF,KAAA,UAAA6oF,IAAA,MAAAhjF,EAAAnI,GAAAe,EAAAxY,OAAA4f,EAAA+C,UAAA,CAAAyhF,MAAA,SAAAlkF,EAAAF,EAAAnI,EAAAiI,GAAA,GAAAI,IAAAZ,EAAA,OAAA1c,KAAAshG,MAAA,CAAA,KAAA,KAAA,KAAA,MAAAthG,MAAAsd,EAAAxI,QAAAwI,EAAAse,YAAAte,EAAA1H,EAAA0H,GAAApe,IAAAke,GAAAA,EAAAV,GAAA,IAAAiB,EAAA3d,KAAAmd,EAAAvH,EAAAuB,KAAAmG,GAAApH,EAAAlW,KAAAshG,MAAA,GAAA,OAAAlkF,IAAAV,IAAAY,EAAA,CAAAA,EAAAF,EAAAnI,EAAAiI,GAAAC,EAAA,SAAA,WAAAA,EAAAnd,KAAAwhG,MAAArtF,EAAAmJ,IAAAX,EAAA+lF,UAAA,UAAAvlF,GAAA0B,EAAAhB,EAAAgkF,KAAAvsE,OAAA,SAAA1f,EAAA8G,GAAAxG,EAAAwG,EAAAqlF,KAAAvgG,EAAA8b,EAAAZ,EAAAqlF,KAAArlF,MAAA1c,MAAA,WAAAmd,GAAA0B,EAAAhB,EAAAP,aAAAN,EAAA,SAAApH,EAAA8G,GAAAY,EAAAZ,EAAAglF,SAAA/jF,EAAAjB,EAAAglF,OAAApkF,EAAAZ,EAAAglF,OAAA3iF,UAAA,SAAArC,EAAAvI,GAAA,IAAAwI,EAAAxI,EAAAutF,MAAA7iF,EAAA1K,EAAAmhB,OAAA,SAAA1f,EAAA8G,GAAA,IAAAiB,EAAAhB,IAAAxI,EAAA4f,GAAA,CAAA,GAAA,UAAAne,GAAA,MAAA0H,EAAA1H,GAAA,OAAA+H,EAAAhB,GAAAxI,EAAA4f,GAAApW,EAAA2jF,OAAA3jF,EAAAhB,GAAAD,EAAAqlF,KAAAvgG,EAAA8b,EAAA1H,GAAA8G,GAAA,MAAAiB,EAAAhB,IAAA/G,EAAAsC,QAAA,KAAAyF,EAAAhB,GAAAoC,MAAA,EAAA,IAAA,IAAApB,EAAAhB,GAAA,GAAA,EAAAxI,EAAAwuF,OAAAhlF,EAAA2jF,MAAAntF,EAAAwuF,KAAAhlF,EAAAhB,QAAA3c,WAAA,GAAAyZ,GAAA,SAAA7D,GAAA,IAAA8G,EAAAM,EAAApH,GAAApU,GAAA,EAAA2S,EAAAnU,KAAA,OAAA6e,EAAAhB,GAAA,SAAAjI,EAAA0H,GAAA,IAAAX,EAAAS,EAAAV,EAAAY,EAAAokF,OAAA,OAAAtkF,IAAAT,EAAAxI,EAAAmJ,EAAAokF,QAAApkF,EAAAyW,IAAAzW,EAAAyW,GAAA5f,EAAAmtF,QAAA,GAAAziF,EAAAvB,EAAAgY,OAAA,SAAA1f,EAAA8G,GAAA,OAAA,MAAAU,EAAAV,EAAAqlF,KAAAvgG,EAAA4b,EAAAV,EAAAqlF,OAAAplF,EAAAD,EAAAqlF,UAAA,MAAAvgG,KAAAA,GAAAohG,OAAA,WAAA,IAAAhtF,EAAA,GAAA8G,EAAA1c,KAAA,OAAA6e,EAAAhB,GAAA,SAAArc,EAAA2S,GAAAuI,EAAAvI,EAAAutF,QAAA9rF,EAAAkB,KAAAtV,MAAAoU,EAAA8pB,OAAAoN,WAAA,SAAAl3B,EAAA8G,GAAA,IAAAvI,EAAA6I,EAAApH,GAAA0H,EAAAnJ,EAAAyuF,SAAAjmF,EAAAkB,EAAAP,GAAAF,EAAA,IAAApd,KAAAyiG,QAAAzlF,EAAA,eAAAhd,KAAAiV,EAAAmI,EAAAT,EAAA+kF,QAAA/kF,EAAAoX,GAAA3W,EAAAkkF,OAAApkF,EAAAjI,EAAA8J,QAAA,OAAA5K,EAAAA,EAAAwI,EAAA+kF,OAAA7iF,EAAAlC,EAAA2Y,OAAA,SAAA1f,EAAA0H,GAAA,IAAAX,EAAAW,EAAAykF,IAAA3kF,EAAAnI,EAAA0H,GAAAK,EAAA7I,EAAAwI,GAAAkB,EAAAF,EAAAL,EAAAnG,OAAA,GAAA,OAAA6F,IAAA,OAAAI,EAAAF,EAAAP,GAAAK,GAAAa,EAAAwjF,MAAArkF,EAAAI,EAAAS,EAAAwjF,IAAA,EAAAjkF,GAAAS,EAAAwjF,IAAAjkF,EAAAJ,EAAAa,EAAAwjF,IAAA,IAAAjkF,GAAAS,EAAAwjF,MAAAnkF,EAAAP,GAAAnb,GAAAwb,EAAAI,GAAAV,EAAAU,EAAAE,QAAAtd,KAAAsd,GAAAJ,IAAA2lF,MAAA,SAAAnmF,GAAA,GAAA,IAAA1c,KAAAshG,MAAA,GAAA,OAAAthG,KAAA,IAAAwB,EAAAxB,KAAAshG,MAAAviF,QAAA5K,EAAA3S,EAAAk+B,MAAApiB,EAAAN,EAAAN,GAAA4kF,MAAA,OAAAtkF,EAAApH,EAAAwtB,IAAA5hC,GAAA,SAAAoU,EAAA8G,GAAA,OAAA,EAAAvI,GAAAmJ,EAAAZ,GAAAvI,EAAAyB,OAAAktF,aAAA,WAAA,IAAApmF,EAAA,QAAAlb,EAAAoU,EAAAwtB,IAAApjC,KAAAshG,OAAA,SAAA1rF,EAAA8G,GAAA,OAAA,MAAA9G,EAAA8G,EAAA,EAAA,EAAA,EAAA9G,KAAA,OAAA,IAAApU,EAAA,KAAAA,EAAAk+B,MAAAhjB,EAAA,QAAAA,EAAAlb,EAAAgd,OAAA,KAAAukF,aAAA,WAAA,IAAArmF,EAAA,QAAAlb,EAAAoU,EAAAwtB,IAAApjC,KAAAkiG,QAAA,SAAAtsF,EAAA8G,GAAA,OAAA,MAAA9G,IAAAA,EAAA8G,EAAA,EAAA,EAAA,GAAAA,GAAA,EAAAA,IAAA9G,EAAA/U,KAAAuF,MAAA,IAAAwP,GAAA,KAAAA,KAAA,OAAA,IAAApU,EAAA,KAAAA,EAAAk+B,MAAAhjB,EAAA,QAAAA,EAAAlb,EAAAgd,OAAA,KAAAwkF,YAAA,SAAAtmF,GAAA,IAAAlb,EAAAxB,KAAAshG,MAAAviF,QAAA5K,EAAA3S,EAAAk+B,MAAA,OAAAhjB,GAAAlb,EAAAsV,QAAA,IAAA3C,IAAA,IAAAyB,EAAAwtB,IAAA5hC,GAAA,SAAAoU,GAAA,OAAA,KAAAA,GAAAA,GAAA,GAAAqc,SAAA,KAAArqB,OAAA,IAAAgO,EAAAA,KAAA4I,KAAA,KAAAyT,SAAA,WAAA,OAAA,IAAAjyB,KAAAshG,MAAA,GAAA,cAAAthG,KAAA8iG,kBAAA9lF,EAAAnI,GAAA2sF,MAAAzhF,UAAA/C,EAAAnI,GAAAgJ,EAAAqkF,KAAAnuE,GAAA,SAAAne,GAAA,GAAA,MAAAA,EAAA,IAAA,MAAAA,EAAA,IAAA,MAAAA,EAAA,GAAA,MAAA,CAAA,KAAA,KAAA,KAAAA,EAAA,IAAA,IAAA8G,EAAAlb,EAAA2S,EAAAyB,EAAA,GAAA,IAAA0H,EAAA1H,EAAA,GAAA,IAAA+G,EAAA/G,EAAA,GAAA,IAAAwH,EAAAxH,EAAA,GAAAX,EAAApU,KAAA4hC,IAAAtuB,EAAAmJ,EAAAX,GAAAO,EAAArc,KAAA2wB,IAAArd,EAAAmJ,EAAAX,GAAAK,EAAA/H,EAAAiI,EAAAW,EAAA5I,EAAAiI,EAAAS,EAAA,GAAAE,EAAA,OAAAnB,EAAAQ,IAAAjI,EAAA,EAAAd,IAAAc,EAAA,IAAAqI,EAAAX,GAAAK,EAAA,IAAAM,IAAArI,EAAA,IAAA0H,EAAAxI,GAAA6I,EAAA,IAAA,IAAA7I,EAAAmJ,GAAAN,EAAA,IAAAxb,EAAA,IAAAwb,EAAA,EAAA,IAAAW,EAAAX,EAAAa,EAAAb,GAAA,EAAAa,GAAA,CAAAhd,KAAAuF,MAAAsW,GAAA,IAAAlb,EAAAmc,EAAA,MAAAP,EAAA,EAAAA,IAAAS,EAAAqkF,KAAAS,KAAA,SAAA/sF,GAAA,GAAA,MAAAA,EAAA,IAAA,MAAAA,EAAA,IAAA,MAAAA,EAAA,GAAA,MAAA,CAAA,KAAA,KAAA,KAAAA,EAAA,IAAA,IAAA8G,EAAA9G,EAAA,GAAA,IAAApU,EAAAoU,EAAA,GAAAzB,EAAAyB,EAAA,GAAA+G,EAAA/G,EAAA,GAAAwH,EAAA,IAAAjJ,EAAAA,GAAA,EAAA3S,GAAA2S,EAAA3S,EAAA2S,EAAA3S,EAAAyT,EAAA,EAAAd,EAAAiJ,EAAA,MAAA,CAAAvc,KAAAuF,MAAA,IAAAkX,EAAArI,EAAAmI,EAAAV,EAAA,EAAA,IAAA7b,KAAAuF,MAAA,IAAAkX,EAAArI,EAAAmI,EAAAV,IAAA7b,KAAAuF,MAAA,IAAAkX,EAAArI,EAAAmI,EAAAV,EAAA,EAAA,IAAAC,IAAAkC,EAAAhB,GAAA,SAAA1J,EAAAmJ,GAAA,IAAAX,EAAAW,EAAAgY,MAAAlY,EAAAE,EAAAokF,MAAAxkF,EAAAI,EAAAyW,GAAAlW,EAAAP,EAAAqlF,KAAA3lF,EAAAnI,GAAAV,GAAA,SAAAA,GAAA,GAAA+I,IAAAld,KAAAod,KAAApd,KAAAod,GAAAF,EAAAld,KAAAshG,QAAAntF,IAAAuI,EAAA,OAAA1c,KAAAod,GAAA2B,QAAA,IAAAzB,EAAArI,EAAAW,EAAAuB,KAAAhD,GAAAwJ,EAAA,UAAA1I,GAAA,WAAAA,EAAAd,EAAAyI,UAAAO,EAAAnd,KAAAod,GAAA2B,QAAA,OAAAF,EAAAlC,GAAA,SAAA/G,EAAA8G,GAAA,IAAAvI,EAAAwJ,EAAA,WAAA1I,EAAAW,EAAA8G,EAAAqlF,KAAA,MAAA5tF,IAAAA,EAAAgJ,EAAAT,EAAAqlF,MAAA5kF,EAAAT,EAAAqlF,KAAAvgG,EAAA2S,EAAAuI,MAAAmB,IAAAP,EAAAN,EAAAa,EAAAV,KAAAC,GAAAD,EAAAG,GAAAN,EAAAG,IAAA0B,EAAAlC,GAAA,SAAAD,EAAAlb,GAAAwb,EAAAnI,GAAA6H,KAAAM,EAAAnI,GAAA6H,GAAA,SAAAY,GAAA,IAAAX,EAAAS,EAAAxH,EAAAuB,KAAAmG,GAAAJ,EAAA,UAAAR,EAAA1c,KAAAijG,MAAA,OAAA,OAAA9uF,EAAA6I,EAAAhd,KAAAkd,KAAAW,EAAAb,EAAAxb,EAAAugG,KAAA,MAAA,cAAA3kF,EAAAS,GAAA,aAAAT,IAAAE,EAAAA,EAAAR,KAAA9c,KAAA6d,GAAAT,EAAAxH,EAAAuB,KAAAmG,IAAA,MAAAA,GAAA9b,EAAA+gB,MAAAviB,MAAA,WAAAod,KAAAT,EAAA1H,EAAAwU,KAAAnM,MAAAA,EAAAO,EAAAugB,WAAAzhB,EAAA,KAAA,MAAAA,EAAA,GAAA,GAAA,KAAAK,EAAAxb,EAAAugG,KAAAzkF,EAAAtd,KAAAkd,GAAAF,aAAAA,EAAAkmF,KAAA,SAAAxmF,GAAA,IAAAlb,EAAAkb,EAAA3H,MAAA,KAAA8J,EAAArd,GAAA,SAAAkb,EAAAlb,GAAAoU,EAAAwrF,SAAA5/F,GAAA,CAAA2hG,IAAA,SAAAzmF,EAAAY,GAAA,IAAAX,EAAAS,EAAAnI,EAAA,GAAA,GAAA,gBAAAqI,IAAA,WAAA1H,EAAAuB,KAAAmG,KAAAX,EAAAxI,EAAAmJ,KAAA,CAAA,GAAAA,EAAAN,EAAAL,GAAAW,IAAAH,EAAA0kF,MAAA,IAAAvkF,EAAAgkF,MAAA,GAAA,CAAA,IAAAlkF,EAAA,oBAAA5b,EAAAkb,EAAAzC,WAAAyC,GAAA,KAAAzH,GAAA,gBAAAA,IAAAmI,GAAAA,EAAAzY,OAAA,IAAAsQ,EAAAW,EAAA1W,IAAAke,EAAA,mBAAAA,EAAAA,EAAAnD,WAAA,MAAAiD,IAAAI,EAAAA,EAAAulF,MAAA5tF,GAAA,gBAAAA,EAAAA,EAAA,YAAAqI,EAAAA,EAAAwlF,eAAA,IAAApmF,EAAA/X,MAAAnD,GAAA8b,EAAA,MAAAJ,OAAAtH,EAAAwtF,GAAAn5F,KAAAzI,GAAA,SAAAkb,GAAAA,EAAA2mF,YAAA3mF,EAAAwa,MAAAla,EAAAN,EAAApa,KAAAd,GAAAkb,EAAA2Z,IAAArZ,EAAAN,EAAA2Z,KAAA3Z,EAAA2mF,WAAA,GAAAztF,EAAAwrF,SAAA5/F,GAAA2hG,IAAAzmF,EAAApa,KAAAoa,EAAAwa,MAAA4V,WAAApwB,EAAA2Z,IAAA3Z,EAAA/S,WAAAqT,EAAAkmF,KAAA,8JAAAttF,EAAAwrF,SAAA3kD,YAAA,CAAA6mD,OAAA,SAAA1tF,GAAA,IAAA8G,EAAA,GAAA,OAAAmC,EAAA,CAAA,MAAA,QAAA,SAAA,SAAA,SAAArd,EAAA2S,GAAAuI,EAAA,SAAAvI,EAAA,SAAAyB,KAAA8G,IAAAC,EAAA/G,EAAAgsF,MAAA2B,MAAA,CAAAC,KAAA,UAAAC,MAAA,UAAAxB,KAAA,UAAAyB,QAAA,UAAAC,KAAA,UAAA3B,MAAA,UAAA4B,KAAA,UAAAC,OAAA,UAAAC,KAAA,UAAAC,MAAA,UAAAC,OAAA,UAAAlC,IAAA,UAAAmC,OAAA,UAAAC,KAAA,UAAAC,MAAA,UAAAC,OAAA,UAAAzC,YAAA,CAAA,KAAA,KAAA,KAAA,GAAAe,SAAA,WAHA,CAGAvlG,QAQA,SAAAqE,GAAAA,EAAA6iG,IAAA,CAAAn9F,EAAA,EAAAC,EAAA,GAAA3F,GAAA,SAAA2S,IAAA,IAAA,IAAAc,EAAAjV,OAAAqD,SAAA7B,EAAAxB,MAAAwB,EAAAxB,MAAAskG,WAAA,MAAA9mF,GAAA,OAAA,EAAAvI,EAAAigE,WAAA,SAAA/gE,GAAA3S,EAAA6iG,IAAA,CAAAn9F,EAAAiN,EAAA7M,MAAAH,EAAAgN,EAAA5M,UAAA0N,EAAA+X,KAAA,UAAA3uB,GAAA,OAAA8V,MAAA3S,EAAAqT,GAAAsgE,YAAA,WAAA,IAAAhhE,GAAA,EAAA,OAAAnU,KAAA2rC,GAAA,GAAAx9B,MAAA,WAAA,IAAA8G,EAAAzT,EAAAxB,MAAAyZ,GAAA,UAAAjY,EAAAxB,MAAAskG,WAAAt3E,KAAA,QAAAxrB,EAAAxB,MAAA0c,EAAAzH,EAAAnN,SAAAqM,EAAAuI,EAAA5V,MAAAtF,EAAA6iG,IAAAn9F,GAAAwV,EAAA5V,KAAAmO,EAAA5L,aAAA7H,EAAA6iG,IAAAn9F,GAAAwV,EAAA3V,KAAAvF,EAAA6iG,IAAAl9F,GAAAuV,EAAA3V,IAAAkO,EAAA7L,cAAA5H,EAAA6iG,IAAAl9F,KAAAgN,GAAA,CAAAhX,QA8khBA,IAAAw+F,eAAA,IAAAhB,aACAP,aAAA,IAAAN,WACAD,kBAAA,IAAAnB,gBACAF,kBAAA,IAAAb,gBACAL,cAAA,IAAAjB,YAyBA,SAAAkO,6BAIA,GAAA,GAFArsD,cAAAxjC,sBAAA,SAGA,MAAA,IAAAnM,MAAA,uDAAApL,OAAA0X,GAAAC,OAAA,uCAOA,SAAA0vF,iBAAAtlB,EAAA/nE,GAgCA,IACA,UAAAA,IA5BA,WACA,GAAA,oBAAAha,OACA,MAAA,IAAAoL,MAAA,+BA2BAk8F,GACAF,+BAEAA,6BAxBA,WAEA,GAAA,mBAAApnG,OAAA0X,GAAA6vF,aACA,OAAA,EAEA,IAAAC,EAAA,yFAWA,MAVAA,GAAA,4EAEA,OAAAxtF,GACAwtF,GAAA,+KACAA,GAAA,8EAEAA,GAAA,gLAIA,IAAAp8F,MAAAo8F,GASAC,IAGA,MAAAhL,GAEA,IAAA9qD,EAAA8qD,EAAA9qD,QAIA,GAFAA,EAAA,iGADAA,EAAA,wBAAAA,GACA,SAEA,UAAA33B,EAAA,CACA,IAAAmnE,EAAAj7E,SAAAu2B,eAAAslD,GACAZ,EAAAn8D,UAAA2sB,EACAwvC,EAAA35E,MAAA2sB,QAAA,aAGAn0B,OAAA+hF,GAAAt/E,OAAAW,KAAAuuC,GAEA,OAAA,EAGA,OAAA,EAIA,SAAAlzC,mBAEA,IAAA4F,EAAAxB,KACAq8F,YACA/gG,aAAA6B,OAAAqE,GAAAhG,aAAA68C,YACAmmC,YAAAtI,YAAAj6E,YAAA,IAAAC,YAAA2oG,UAAAC,cACA1sD,WAAA,GAAA2sD,WAAAC,eAAA,KAAAC,qBAAA,EACAC,WAAAC,WAAA,GAEAnlG,KAAA9B,OAAA,CACAomD,YAAA,cACAsN,YAAA,cACAwzC,iBAAA,mBACAC,gBAAA,kBACAC,WAAA,aACAC,UAAA,YACAC,cAAA,gBACAC,iBAAA,mBACA93C,oBAAA,sBACAE,kBAAA,oBACA2xB,mBAAA,qBACAkmB,iBAAA,mBACAlnG,6BAAA,+BACAmnG,cAAA,gBACAC,eAAA,kBAKA,IAAAvpG,UAAA,CACAQ,cAAA,IACAgpG,eAAA,IAEAC,kBAAA,IACAC,mBAAA,IAEAC,cAAA,UACAl2C,aAAA,UAEAm2C,4BAAA,UAKAC,kBAAA,EACAC,sBAAA,IACAC,4BAAA,EAEAznB,wBAAA,OACA0nB,0BAAA,EACAx0C,kBAAA,EAEAy0C,wBAAA,EACAC,yBAAA,GACAC,sBAAA,EACAC,iBAAA,EACAC,gBAAA,KACAC,qBAAA,EACAC,yBAAA,EACAC,sBAAA,EACAC,sBAAA,IAKAhqG,OAAA,CACAiqG,iBAAA,GACAC,qBAAA,EACAC,iBAAA,EACAC,UAAA,EACAC,UAAA,EACAC,aAAA,KACApZ,UAAA,EACAlH,YAAA,EACAugB,kBAAA,EACAC,eAAA,EACAC,iBAAA,EACAC,WAAA,GACAC,iBAAA,GACAC,YAAA,KACA/qD,kBAAA,EACAgrD,WAAA,KACAC,kBAAA,EACAC,gBAAA,EACAC,qBAAA,EACAC,qBAAA,EACAC,iBAAA,EACAC,YAAA,IACAC,gBAAA,EACAC,gBAAA,GACAC,iBAAA,MAKA,SAAAC,iCAKA,SAAAC,iBAAAxwF,GACA,IAAAywF,EAAAzwF,EAIA,OAHA,GAAAywF,EAAAj6F,QAAA,cACAi6F,EAAA,WAAAA,GAEA,EAMA,SAAAvrG,UAAA+pG,kBAGA,GAAAA,iBAAAvuF,eAAA,iBACAnc,UAAA2pG,cAAAe,iBAAAf,kBACA,CACA,IAAAwC,aAAAnsG,UAAA2pG,cACA,GAAA9tD,cAAAlgC,kBAAAwwF,gBACAnsG,UAAA2pG,cAAA9tD,cAAA//B,2BAGA,IAAAowF,cAAAD,iBAAAjsG,UAAA2pG,eAEA,IACA3pG,UAAA2pG,cAAAyC,KAAAF,eACA,MAAAp0F,IAIA9X,UAAA2pG,cAAAyC,KAAAF,eAGArD,WAAA,IAAA7oG,UAAA2pG,cACAd,WAAAvnG,KAAA6D,EAAAulG,kBAOA,SAAA2B,eAEArsG,UAAAc,OAAAC,OAAA,GAAAN,OAAAqrG,iBAEAlD,qBAAA,EACAD,eAAA,KACA9uB,iBAAArvE,EACA23E,iBAAA33E,EACAqvE,iBAAArvE,EAOA,SAAA8hG,wBAGA,IACApE,6BACA,MAAApwF,GACAy0F,sBAAAz0F,EAAA26B,SAIA,iBAAAtzC,aAAA6N,cACAu/F,sBAAA,qLAGAhwF,YAAA,WAAA4rF,iBAAAnI,YAAA,SAAA,KASA,SAAAwM,WAAA3pB,EAAA6nB,EAAA+B,EAAAC,GAEA,IAAAC,EAAA,iBAAAjC,EAKA,GAHAiC,IACAlsG,OAAAiqG,iBAAAA,GAEA,GAAAjqG,OAAAorG,eAAA,CAIA,GAFA7L,YAAAnd,EAEA,IADA1jF,aAAA2B,OAAAk/F,cACAz0F,OAEA,OADAzG,MAAA,gBAAAk7F,YAAA,eACA,EAGAhkD,YAAA78C,aAAA0J,SAEAyjG,wBAEA7rG,OAAAqrG,gBAAAhrG,OAAAC,OAAA,GAAAf,WAGA2sG,IACA3sG,UAAAc,OAAAC,OAAAf,UAAA0qG,IAGA,GAAA1qG,UAAAwqG,sBAAAxqG,UAAAyqG,uBACAmC,WAAA5sG,UAAAyqG,uBAGAtlG,EAAA0nG,eAKAC,eAFA3tG,aAAAyD,YAGAmqG,WAGA5tG,aAAAwxB,KAAA,OAAAlvB,OAAA,EAAA,GAAAM,OACA5C,aAAAoE,OAEAypG,qBAUA,GANA7nG,EAAAvB,UAEAyoG,eAEArsG,UAAAc,OAAAC,OAAAf,UAAAS,OAAAiqG,kBAEA+B,EAAA,CAMA,GAHAC,GAAA,GAAA1sG,UAAAwqG,sBACAoC,WAAAF,EAAAD,GAEA,WAAAA,EAEA,OADAQ,iBAAA,4BAAA,KACA,EAGA9tG,aAAA+E,KAAAuoG,GAGAK,eADA3tG,aAAAyD,YAGAmqG,WAEA5tG,aAAAyD,WAAAnB,OAAA,EAAA,GAAAM,OAEA5C,aAAAoE,OACAypG,gBAMA,GAAAvsG,OAAAorG,gBAAA,GAAA7rG,UAAAsqG,sBACA9B,UAAA,IAAA0E,QACA5rG,KAAA6D,EAAAnF,WAIA,GAAAS,OAAAorG,gBAAA,GAAA7rG,UAAAuqG,0BACA9B,cAAA,IAAA0E,YACA7rG,KAAA6D,EAAAnF,WAIA2sG,GACAS,iBAAA3sG,OAAAiqG,kBAEA2C,iBAGA,GAAArtG,UAAAoqG,iBACAjlG,EAAAnE,eAGAL,UAAAF,OAAAiqG,kBAGA4C,iBAGAC,2BAIA,GAFApuG,aAAAwF,QAGA/E,YAAAgf,aAAAzf,aAAAquG,oBAEAA,qBAQA,SAAAA,qBAEAroG,EAAA0nG,eAEA,GAAApsG,OAAAmqG,iBAEA,GAAA5qG,UAAAiqG,wBACAwD,2BAGA5E,WAAArmG,MAEAgmG,WAAA/nG,OAAAorG,gBACArD,UAAAhmG,MAGAkrG,mBAEAnrG,aAGAmmG,WAAA,GACAvjG,EAAA4iD,WAAA,GAIA,GAAA/nD,UAAA6pG,kBACA1kG,EAAAwoG,gBAEAltG,OAAAorG,gBAAA,EASA,SAAAoB,iBAAAx6D,EAAApqC,GAEA,QAAA,IAAAA,EACAA,EAAA,oCAEAA,EAAA,MAAAA,EAAA,SAIA,IAAAnE,EAAA,wEAFAuuC,EAAApqC,EAAAoqC,GAEA,eAEAtzC,aAAAyD,WAAA8uB,SAEAvyB,aAAA+E,KAAAA,GACA/E,aAAAoE,OAMA,SAAAgpG,sBAAA95D,GAEA,MADAw6D,iBAAAx6D,GACA,IAAAvmC,MAAAumC,GAQA,SAAA26D,mBAGAptG,UAAA4pG,8BACA5pG,UAAA4pG,4BAAA,YAGAp/F,MAAAxK,UAAA0pG,oBAAA1pG,UAAAwpG,eAAAxpG,UAAA0pG,sBACA1pG,UAAA0pG,mBAAA,IAGAl/F,MAAAxK,UAAAypG,mBAAAzpG,UAAAQ,cAAAR,UAAAypG,qBACAzpG,UAAAypG,kBAAA,GASA,SAAA4D,iBAGA,IAAArtG,UAAA2pG,cACA,MAAA,IAAAz9F,MAAA,uCAMA,GAAApL,OAAAmO,UAAAjP,UAAAwpG,iBAAAxpG,UAAAwpG,eAAAxpG,UAAA0pG,mBACA,MAAA,IAAAx9F,MAAA,yFAEA,GAAAlM,UAAAQ,cAAAR,UAAAypG,kBACA,MAAA,IAAAv9F,MAAA,uFASA,SAAAohG,iBAGAnuG,aAAAuD,SAAA,sBAEAvD,aAAAwD,OAAA,gEAEAwC,EAAA0nG,eAOA,SAAAG,gBAEA7tG,aAAAyD,WAAA8uB,SAOA,SAAAk8E,gBACA,IAAAxjG,EAAAjF,EAAAktD,UAEA5xD,OAAAoqG,UAAAzgG,EAAAzF,MACAlE,OAAAotG,WAAAzjG,EAAA1I,OAOA,SAAA+rG,2BAEA,IAAArjG,EAAAjF,EAAAktD,UAIA,GAFAjoD,EAAAzF,MAAAyF,EAAA1I,QAEA0I,EAAA0jG,WAAA,CAEA,IAAAhgG,EAAA1D,EAAAzF,MAAAyF,EAAA0jG,YACAhgG,EAAAtJ,KAAAuF,MAAA+D,IAEA9N,UAAA0pG,qBACA57F,EAAA9N,UAAA0pG,oBAEAvqG,aAAAuC,OAAAoM,IASA,SAAAy/F,2BAEA,IAGAr+F,EAAA,CAEA6+F,YALAnuG,YAAAqZ,gBAAAjZ,UAAAQ,eAMAwtG,YAAApuG,YAAAqZ,gBAAAjZ,UAAAypG,oBAGA,GAAA,GAAAhpG,OAAAmqG,gBAAA,CAEA,IAAApnG,EAAA5D,YAAAqZ,gBAAAjZ,UAAAwpG,gBACAt6F,EAAA,OAAA1L,OAGA0L,EAAA,SAAA,UAIAlP,UAAAkqG,2BACAh7F,EAAA,oBAAAlP,UAAAkqG,0BAGA/qG,aAAA0D,IAAAqM,GAQA,SAAA++F,gBAAAC,GAEA,IAAA3uC,EAAAp6D,EAAAq6D,eAKA2uC,EAAA,GACA,GAAA,MAJAj3B,EAAAg3B,EAAAzsE,KAAA,WAAAl5B,eAIA,CACA4lG,EAAAD,EAAAvvF,KAAA,QAEA,IAAAu4D,GADAg3B,EAAAA,EAAAtrG,YACA6+B,KAAA,WAAAl5B,cAGA,IAAA6lG,EAAAF,EAAAhrG,KAAA,QACAsH,MAAA4jG,IACAA,EAAA,SAEA,IAAAhvD,EAAA,GAGA,GAFAA,EAAAtkC,KAAAszF,EAEA,OAAAl3B,EAAA,CAGA,IAAAm3B,EAAAH,EAAAhrG,KAAA,gBACAmrG,GAAA,IAAAA,IACAH,EAAAvvF,KAAA,MAAA0vF,GACAvtG,OAAA6wB,WAAAu8E,EAAA,iBAIA,IAAAr+F,EAAAq+F,EAAAhrG,KAAA,SACAovE,EAAA47B,EAAAhrG,KAAA,cAEA,IAAA,IACA2M,EAAA,WAEA,IAAA,IACAyiE,EAAA,MAEA,IAAAg8B,EAAAJ,EAAAvvF,KAAA,OAEA9O,IACAA,EAAAy+F,GAEAh8B,IACAA,EAAAg8B,GAEAh8B,IACAA,EAAAziE,GAEAA,IACAA,EAAAyiE,GAEAlzB,EAAAkzB,SAAAA,EACAlzB,EAAAvvC,SAAAA,EAEAuvC,EAAA35B,MAAAyoF,EAAAvvF,KAAA,OAGAygC,EAAAM,cAAAwuD,EAEA9uD,EAAAM,cAAA/gC,KAAA,MAAAygC,EAAAkzB,cAEA,CAEA,GAAA,SAAA87B,EAIA,MAHAtpG,MAAA,mCACAA,MAAAopG,GACAppG,MAAA,sFACA,IAAAoH,MAAA,qCAGAkzC,EAAAkzB,SAAA47B,EAAAhrG,KAAA,SACAk8C,EAAA35B,MAAAyoF,EAAAhrG,KAAA,SACAk8C,EAAAM,cAAA,KACAN,EAAAvvC,SAAAq+F,EAAAhrG,KAAA,SAMA,GAAA,GAAAq8D,EAAA,CAEA,IAAAgvC,EAAAL,EAAAhrG,KAAA,qBACA,IAAAqrG,GAAA,IAAAA,IACAnvD,EAAAkzB,SAAAi8B,EAEA,OAAAr3B,GACAg3B,EAAAvvF,KAAA,MAAAygC,EAAAkzB,WAGA,IAAAk8B,EAAAN,EAAAhrG,KAAA,qBACA,IAAAsrG,GAAA,IAAAA,IACApvD,EAAAvvC,SAAA2+F,GAGApvD,EAAAzrB,KAAAw6E,EAGA/uD,EAAAi0B,YAAA66B,EAAAvvF,KAAA,SACAygC,EAAAi0B,cACAj0B,EAAAi0B,YAAA66B,EAAAhrG,KAAA,gBAEAk8C,EAAAi0B,cACAj0B,EAAAi0B,YAAA,IAEAj0B,EAAAqvD,YAAA,EACArvD,EAAA4C,UAAA,EACA5C,EAAA+C,oBAAA,EACA/C,EAAAsvD,gBAAA,KACAtvD,EAAAuvD,uBAAA,EACAvvD,EAAAmoC,kBAAA,EACAnoC,EAAAwvD,qBAAA,EACAxvD,EAAA11C,WAAA,EACA01C,EAAAz1C,YAAA,EAGAy1C,EAAAgD,WAAA,EACAhD,EAAAiD,YAAA,EACAjD,EAAAkD,kBAAA,EACAlD,EAAAmD,mBAAA,EAEA,IAAAssD,EAAAX,EAAAhrG,KAAA,SACA4rG,EAAAZ,EAAAhrG,KAAA,UACA2rG,GAAA,iBAAAA,GAAAC,GAAA,iBAAAA,IACA1vD,EAAAgD,WAAAysD,EACAzvD,EAAAiD,YAAAysD,EACA1vD,EAAAkD,kBAAAusD,EAAAC,EACA1vD,EAAAmD,mBAAAusD,EAAAD,GAGAzvD,EAAAh7C,QAAA,KAEA,IAAA2qG,EAAAvkG,MAAA40C,EAAAvvC,UAAA,IAAAuvC,EAAAvvC,SACAm/F,EAAAxkG,MAAA40C,EAAAkzB,UAAA,IAAAlzB,EAAAkzB,SAEA,OAAAlzB,EAAAtkC,MACA,IAAA,UAGA,GAFAskC,EAAAusC,QAAAuiB,EAAAhrG,KAAA,WAEA6rG,GAAAC,EAAA,CAEA,IAAA9wF,EAAAohF,eAAArB,eAAA7+C,EAAAusC,SAGAojB,IACA3vD,EAAAvvC,SAAAqO,EAAAigF,SAGA6Q,IACA5vD,EAAAkzB,SAAAp0D,EAAAq5D,MAEA,OAAAL,GACAg3B,EAAAvvF,KAAA,MAAAygC,EAAAkzB,WAKA7xE,OAAA8qG,kBAAA,EACA,MACA,IAAA,QAEAnsD,EAAAusC,QAAAuiB,EAAAhrG,KAAA,WAEAzC,OAAA+qG,gBAAA,EACA,MACA,IAAA,aACApsD,EAAA0sC,SAAAoiB,EAAAhrG,KAAA,YACAk8C,EAAA2sC,UAAAmiB,EAAAhrG,KAAA,aACAk8C,EAAA4sC,SAAAkiB,EAAAhrG,KAAA,YAEAzC,OAAAgrG,qBAAA,EACA,MACA,IAAA,aACArsD,EAAA8sC,QAAAgiB,EAAAhrG,KAAA,WACAzC,OAAAirG,qBAAA,EACA,MACA,IAAA,SACAtsD,EAAAusC,QAAAuiB,EAAAhrG,KAAA,WACAzC,OAAAkrG,iBAAA,EACA,MACA,IAAA,SACA,IAAAsD,EAAAf,EAAAtrG,SAAA,OAEAqsG,EAAA1jG,SACA0jG,EAAAnuG,OAAAmuG,EAAA,IAEA7vD,EAAAkzB,SAAA28B,EAAAtwF,KAAA,OACAygC,EAAA35B,MAAAwpF,EAAAtwF,KAAA,OACAygC,EAAAM,cAAAuvD,GAIA,IAAAC,EAAAhB,EAAAtrG,WAAA0tC,IAAA,mBAEA4+D,EAAA3jG,SACA6zC,EAAAh7C,QAAA8qG,EAAAr1D,SAcA,OARAuF,EAAAM,gBACAN,EAAAM,cAAApvC,WAAA,mBAAA,IACA8uC,EAAAM,cAAApvC,WAAA,aAAA,IACA8uC,EAAAM,cAAApvC,WAAA,aAAA,IACA8uC,EAAAM,cAAApvC,WAAA,QAAA,KAIA,EAOA,SAAAw8F,eAAAqC,EAAAzsD,GAEA,IAAA,IAAAA,EACA3G,WAAA,QAIA,IAAA,IAAAnjC,EAAA,EAAAA,EAAA8vF,WAAA9vF,IACAmjC,WAAAnjC,GAAA61F,YAAA,EAIA,IAAA71F,EAAA,EAAAA,EAAAu2F,EAAA5jG,OAAAqN,IAAA,CACA,IAEAwmC,EAAA6uD,gBAFAntG,OAAAquG,EAAAv2F,KAGAw2F,SAAArzD,WAAAxwC,OACA6zC,EAAAh8C,MAAAgsG,UAEA,IAAA1sD,IACAtD,EAAAqvD,YAAA,GAGA1yD,WAAAthC,KAAA2kC,GAGAspD,WAAA3sD,WAAAxwC,OAQA,SAAAwhG,WAGAtsG,OAAA8qG,kBACAjM,eAAAtE,UAEAv6F,OAAA+qG,gBACAzN,aAAA/C,UAEAv6F,OAAAgrG,qBACAjO,kBAAAxC,UAEAv6F,OAAAirG,qBACAvP,kBAAAnB,UAEAv6F,OAAAkrG,iBACA1Q,cAAAD,UAQA,SAAA0S,mBAMA,GAHA,WAAA1tG,UAAA4pG,6BAAAznB,cACAniF,UAAA4pG,4BAAA,WAEA,GAAAnpG,OAAAkqG,oBACA,OAAA,EAEA,OAAA3qG,UAAA4pG,6BACA,QACA,IAAA,UACA,MACA,IAAA,MAEA9oG,OAAAi7C,YAAAjqC,MAAA,WACAu9F,iBAAA1rG,SAGA,MACA,IAAA,UACA7C,OAAAi7C,YAAAjqC,MAAA,WAIA,GAFAqwE,YAAA53B,mBADA5mD,OAIA0rG,iBAJA1rG,UAeA,SAAA2rG,sBAAAlwD,GAEA,GAAA,GAAAA,EAAAuvD,uBACA,GAAAvvD,EAAAmoC,kBACA,GAAAnoC,EAAAwvD,oBACA,OAAA,EAGA,OAAA5uG,UAAA4pG,6BACA,QACA,IAAA,UACA,MACA,IAAA,MACAyF,iBAAAjwD,GACA,MACA,IAAA,UAEA,GADA+iC,YAAA53B,mBAAAnL,IAEAiwD,iBAAAjwD,IASA,SAAAiwD,iBAAAjwD,GAEA,GAAA,GAAAA,EAAAuvD,uBACA,GAAAvvD,EAAAmoC,kBACA,GAAAnoC,EAAAwvD,oBACA,OAAA,EAGA,IAAAW,EAAAnwD,EAAAvvC,SACA,GAAA,IAAA0/F,GAAA/kG,MAAA+kG,EAEA,OADAnwD,EAAAwvD,qBAAA,GACA,EAGAxvD,EAAAuvD,uBAAA,EAEAvvD,EAAAsvD,gBAAA5tG,OAAA,UAAA6d,KAAA,MAAA4wF,GACAnwD,EAAAsvD,gBAAAxrG,KAAA,YAAAk8C,EAAAh8C,OAGAg8C,EAAAsvD,gBAAA1sG,GAAA,OAAAmD,EAAAsiF,sBAGAroC,EAAAsvD,gBAAA1sG,GAAA,SAAA,WACA,IACAk9C,EADAp+C,OAAA6C,MACAT,KAAA,aACAk8C,EAAArD,WAAAmD,GAGAE,EAAAwvD,qBAAA,EACAxvD,EAAAmoC,kBAAA,EAGA,IAAAgoB,EAAAzuG,OAAA6C,MAAAgb,KAAA,OACA3Z,QAAAC,IAAA,qBAAAsqG,GAGAtwG,aAAAke,QAAAhY,EAAAtD,OAAAshF,mBAAA,CAAAjkC,EAAAE,EAAAvvC,WACAuvC,EAAAM,cAAA/gC,KAAA,MAAAygC,EAAAkzB,aAKAk9B,iCAmDA,SAAAC,qBAAArwD,GAEA,GAAA,GAAA3+C,OAAAkqG,oBACA,OAAA,EAEA,IAAAvrD,EACAA,EAAAupD,eAEA,IAAAvpD,EACA,OAAA,EAEA,IAAA8pC,EAAA9pC,EAAAh8C,MACAssG,EAAAxmB,EAAA,EACAymB,EAAAzmB,EAAA,EAEAwmB,EAAA,GACAL,iBAAAtzD,WAAA2zD,IAEAC,EAAAjH,YACA2G,iBAAAtzD,WAAA4zD,IASA,SAAAH,iCAEA,GAAA,GAAA/uG,OAAAkqG,oBACA,OAAA,EAGA,IAAA,IAAAvnG,KAAA24C,WACA,GAAA,GAAAA,WAAA34C,GAAAurG,sBACA,OAAA,EAIAluG,OAAAkqG,qBAAA,EAuCA,SAAAiF,qCAEA,SAAAC,iCAoBA,SAAAC,mBAAA9kG,GAEA,GAAAhL,UAAA+pG,4BAAA,GAAA5kG,EAAA4B,gBAAA,GAAAtG,OAAAgqF,YAAA5Q,aAAA,GAAAA,YAAA4S,uBACAtnF,EAAAulF,eAOA,SAAAqlB,mBAAA/kG,GAEA,GAAAhL,UAAA+pG,4BAAA,GAAAtpG,OAAAgqF,YAAA5Q,aAAA,GAAAA,YAAA4S,wBAIA,GAFA5S,YAAAqR,8BAGA/lF,EAAAwlF,mBASA,SAAAqlB,WAAAhlG,GAEA,IAAAnG,EAAA/D,OAAAkK,EAAA+mB,QACA,GAAAltB,EAAAuY,GAAA,aAAAvY,EAAAuY,GAAA,WAAAvY,EAAAuY,GAAA,SACA,OAAA,EAEA,IAAAyQ,EAAA7iB,EAAA,SAAAA,EAAAilG,SAAAjlG,EAAA,QAAAA,EAAA6iB,QAAA7iB,EAAA,MAAAA,EAAA4iB,MAAA,EAEAsiF,GAAA,EAEA,OAAAriF,GACA,KAAA,GACA1oB,EAAAoxD,WACA,MACA,KAAA,GACApxD,EAAAqxD,WACA,MACA,QACA05C,GAAA,EAMA,GAAAA,IACAllG,EAAAwiB,iBACAxiB,EAAAsQ,kBACAtQ,EAAAuQ,4BAGAtc,aAAAke,QAAAhY,EAAAtD,OAAAwnG,iBAAA,CAAAx7E,EAAA7iB,IAOA,SAAAmlG,mBAEA,IAOA/lG,EALA,GAAA,IAFAA,EAAAjF,EAAAktD,WAEA1tD,MACA,OAAA,EAMA,GAJAQ,EAAA0nG,gBAEAziG,EAAAjF,EAAAktD,WAEA1tD,OAAAlE,OAAAoqG,WAAA,GAAApqG,OAAAmqG,iBAAAxgG,EAAA1I,QAAAjB,OAAAotG,WAAA,CAEA,IAAAuC,GAAA,EAGA,GAAA3vG,OAAAsrG,iBAAA,CACA,IAAAj+F,EAAArN,OAAAsrG,iBAAA3hG,GACA0D,IACA3O,aAAAuC,OAAAoM,GACAsiG,GAAA,GAIA,GAAAA,GAAA,GAAApwG,UAAAiqG,wBAAA,GAAAxpG,OAAAmqG,iBACA6C,2BAEAG,gBACA3uG,aAAAke,QAAAhY,EAAAtD,OAAA0zD,cAWA,SAAA86C,eAAArlG,GAGA,WAAAhL,UAAA4pG,6BAAA,GAAAnpG,OAAAkqG,qBACA+C,mBASA,SAAA4C,qBAGA,IAAAC,EAAA3wG,YAAAmH,eACAiE,EAAAulG,EAAAprG,EAAAtD,OAAAknG,iBAAA5jG,EAAAtD,OAAAmnG,gBAEAviG,EAAA7G,YAAAmV,cAAA,gBAGA,GAAAirF,cAAAv5F,EACA,OAAA,EAGA8pG,EACApxG,aAAAuD,SAAA,iBAEAvD,aAAAkT,YAAA,iBAGApT,aAAAke,QAAAnS,GAEAmlG,mBAMA,SAAAK,mBAAAxlG,EAAA5H,GAGAksG,sBADAnqG,EAAA0hE,QAAAzjE,IAOA,SAAAqtG,6BAEA,GAAAtrG,EAAAslF,cACAtlF,EAAAwlF,kBAOA,SAAApoF,aAWA,GARApD,aAAA6C,GAAA,aAAA,SAAAgJ,GACAA,EAAAwiB,oBAIAvuB,aAAA+C,GAAAmD,EAAAtD,OAAAshF,mBAAAqtB,oBAGAruB,YACA,OAAA1hF,OAAA6qG,YACA,IAAA,QACAxqG,OAAAqhF,aAAAngF,GAAAmgF,YAAAtgF,OAAA8kD,WAAA0pD,gBACA,MACA,IAAA,OACAvvG,OAAAqhF,aAAAngF,GAAAmgF,YAAAtgF,OAAAw6D,YAAAg0C,gBA0BA,GApBA,WAAArwG,UAAAsiF,yBAAA,GAAA7hF,OAAAmqG,iBACAzrG,aAAA6C,GAAA,aAAAmD,EAAAurG,qBAGA9C,gBAEA9sG,OAAA2W,QAAA07B,QAAA,WACAh0C,aAAA0D,IAAA,QAAA,QACAjD,YAAAwc,wBAAA,iBAAA+zF,iBAAA1vG,OAAAmrG,gBAIArvF,YAAA,WACAsC,YAAAsxF,iBAAA,OACA,KAGAvwG,YAAAyH,yBAAAipG,oBAGAz2B,YAAA,CAUA,GARA/4E,OAAA+4E,aAAA73E,GAAA63E,YAAAh4E,OAAAg5E,cAAA,WACA,IAAA81B,EAAA92B,YAAAmR,uBAEA,GAAA2lB,GACAxrG,EAAA4iD,WAAA4oD,MAIA,GAAA3wG,UAAA+pG,2BACAlwB,YAAA/iB,aACAl6C,MAAAkzF,mBAAAC,oBAGA9wG,aAAA+C,GAAAmD,EAAAtD,OAAAknG,kBAAA,WACAgH,wBAMAa,eAAA/2B,YAAAA,YAAAh4E,OAAA05E,aAAAp2E,EAAAtD,OAAAyvD,qBACAs/C,eAAA/2B,YAAAA,YAAAh4E,OAAA25E,WAAAr2E,EAAAtD,OAAA2vD,mBAEA1wD,OAAA+4E,aAAA73E,GAAA63E,YAAAh4E,OAAAm6E,sBAAAy0B,4BAKA,GAAAzwG,UAAAgqG,0BACAlpG,OAAAkG,UAAA6pG,QAAAb,YA8DA,SAAAc,4BA6VA,SAAAlE,WAAAF,EAAAqE,GAEA,GAAAA,EAEA,YADAtE,EAAAsE,KAEAtE,EAAA3rG,OAAAiwG,GAAAl3D,cAEA,IAAA4yD,EAAAttG,aAAAyD,WAAAi3C,QAGAivD,WAAA4D,GAAAD,EAOA,SAAAuE,qBAAAC,GAEAA,IACAA,EAAA9xG,cAEA8xG,EAAA5+F,YAAA,gBACA4+F,EAAA5+F,YAAA,gBACA4+F,EAAA5+F,YAAA,gBAQA,SAAAu+F,eAAAzxF,EAAA9T,EAAA6lG,GAEApwG,OAAAqe,GAAAnd,GAAAqJ,GAAA,SAAAL,GACA/L,aAAAke,QAAA+zF,EAAA,CAAAvtG,UAUA,SAAAwtG,kBAEA,IAAAC,EAAAtwG,OAAAqV,MACAk7F,EAAAD,EAAA3wG,OAAAyqG,iBAIA,GAHAzqG,OAAAyqG,iBAAAkG,EAGA,GADAjsG,EAAAmsG,mBAEA,OAAA,EAMA,GAHA7wG,OAAAwqG,gBAAAoG,EAGA5wG,OAAA4qG,YAAA,CACA,IAAA9rF,EAAA9e,OAAAwqG,eAAAjrG,UAAA8pG,sBACArpG,OAAA4qG,YAAAvY,YAAAvzE,GAIA9e,OAAAwqG,gBAAAjrG,UAAA8pG,wBAEA3kG,EAAAoxD,WACA91D,OAAAwqG,eAAA,GA6HA,SAAAsG,sBAEA,GAAA,MAAA5I,eACA,OAAA,EAEAxmB,aACAA,YAAA1+B,mBAAAklD,eAAAlpD,iBAEAkpD,eAAA,KACAC,qBAAA,EA8GA,SAAA4I,mBAEA1wG,OAAA,QAAA4B,SAAA,sBACAvD,aAAAuD,SAAA,sBAEAjC,OAAA6/C,kBAAA,EAEArhD,aAAAke,QAAAhY,EAAAtD,OAAAknG,kBACA9pG,aAAAke,QAAAhY,EAAAtD,OAAA0zD,aAOA,SAAAk8C,qBAEA3wG,OAAA,QAAAuR,YAAA,sBACAlT,aAAAkT,YAAA,sBAEA5R,OAAA6/C,kBAAA,EAEArhD,aAAAke,QAAAhY,EAAAtD,OAAAmnG,iBACA/pG,aAAAke,QAAAhY,EAAAtD,OAAA0zD,aAnmCA5xD,KAAA8jF,qBAAA,SAAAz8E,EAAAvC,GAEA,IAAAA,EACAA,EAAA3H,OAAA6C,MAEA,IAAAu7C,EAAAz2C,EAAAvF,KAAA,aAEAk8C,EAAArD,WAAAmD,GAEAE,EAAAmoC,kBAAA,EAGA,IAAAn9E,EAAAxK,YAAAmJ,qBAAAN,GAEA22C,EAAA11C,WAAAU,EAAAzF,MACAy6C,EAAAz1C,YAAAS,EAAA1I,QAMAiC,KAAA0jF,mBAAA,SAAA5+E,EAAA22C,GAEA,IAAAA,EAAA,CACA,IAAAF,EAAAz2C,EAAAvF,KAAA,aACA,QAAAsH,IAAA00C,EACA,MAAA,IAAAhzC,MAAA,mDAEAkzC,EAAArD,WAAAmD,GAGA,IAAA90C,EAAAxK,YAAAmJ,qBAAAN,GAEA22C,EAAA11C,WAAAU,EAAAzF,MACAy6C,EAAAz1C,YAAAS,EAAA1I,QAsDAiC,KAAAvC,iBAAA,WAEAX,OAAAmqG,iBAAA,GAQAjnG,KAAAomD,kBAAA,SAAAjvC,EAAAsoC,GACA3iD,OAAA6qG,WAAAxwF,EACAqnE,YAAA/+B,GAOAz/C,KAAAq+E,WAAA,SAAAnhF,EAAAqhF,GAGA,IAAArhF,EACAA,EAAA,GAEAA,EAAAC,OAAAC,OAAAN,OAAAiqG,iBAAA7pG,IAEAg5E,YAAA,IAAAD,UACAt4E,KAAA6D,EAAAtE,EAAAqhF,IAYAv+E,KAAA+sG,oBAAA,SAAA1lG,EAAAknB,EAAA4nE,EAAA3nE,GAEAnnB,EAAAwiB,iBAEA0E,EAAA,EACA/sB,EAAAqxD,WAEArxD,EAAAoxD,YA0PA5yD,KAAAC,QAAA,WAMA,GAJAzE,aAAA0E,IAAA,aACA5E,aAAA4E,IAAAsB,EAAAtD,OAAAshF,oBAGAhB,YACA,OAAA1hF,OAAA6qG,YACA,IAAA,QACAxqG,OAAAqhF,aAAAt+E,IAAAs+E,YAAAtgF,OAAA8kD,YACA,MACA,IAAA,OACA7lD,OAAAqhF,aAAAt+E,IAAAs+E,YAAAtgF,OAAAw6D,aAaA,GARAl9D,aAAA0E,IAAA,cAEA/C,OAAA2W,QAAA5T,IAAA,UAGAjE,YAAA0H,+BAGAuyE,YAAA,CAEA/4E,OAAA+4E,aAAAh2E,IAAAg2E,YAAAh4E,OAAAg5E,cAGA,IAAA62B,EAAA73B,YAAA/iB,aACA46C,EAAA7tG,IAAA,cACA6tG,EAAA7tG,IAAA,cAEA5E,aAAA4E,IAAAsB,EAAAtD,OAAAknG,kBACAjoG,OAAA+4E,aAAAh2E,IAAAg2E,YAAAh4E,OAAA05E,cACAz6E,OAAA+4E,aAAAh2E,IAAAg2E,YAAAh4E,OAAA25E,YACA16E,OAAA+4E,aAAAh2E,IAAAg2E,YAAAh4E,OAAAm6E,uBAIA,GAAAh8E,UAAAgqG,0BACAlpG,OAAAkG,UAAAnD,IAAA,WAGAglG,YAAA,mBAAAA,WAAAjlG,SACAilG,WAAAjlG,UAGAzE,aAAA+E,KAAA,KAUAP,KAAAiuE,YAAA,WACA,OAAA71B,YAMAp4C,KAAAtC,WAAA,WAYA,MAVA,CACA2+F,YAAAA,YACA7gG,aAAAA,aACAgjF,YAAAA,YACAtI,YAAAA,YACA75E,UAAAA,UACA+7C,WAAAA,WACA2sD,WAAAA,aASA/kG,KAAAguG,aAAA,WAEA,OAAA,aAQAhuG,KAAAkjE,QAAA,SAAAzjE,GACA,GAAAA,EAAA,EACA,MAAA,IAAA8I,MAAA,oBAAA9I,EAAA,cAGA,GAAAA,GAAAslG,WACA,MAAA,IAAAx8F,MAAA,oBAAA9I,EAAA,cAIA,OAAA24C,WAAA34C,IAOAO,KAAA2oD,SAAA,WAIA,OAFAnnD,EAAAktD,UAEA,OAMA1uD,KAAA0oD,UAAA,WAIA,OAFAlnD,EAAAktD,UAEA,QAOA1uD,KAAA0uD,QAAA,WAEA,IAAAjoD,EAAAxK,YAAA6D,eAAAtE,cAMA,OAJAiL,EAAAwnG,WAAA5xG,UAAAQ,cACA4J,EAAAynG,YAAA7xG,UAAAwpG,eACAp/F,EAAA0jG,WAAA1jG,EAAAwnG,WAAAxnG,EAAAynG,YAEA,GAMAluG,KAAAm/E,aAAA,WAIA,OAFAkd,YAAA7tF,QAAA,IAAA,KAQAxO,KAAA4nF,YAAA,SAAAnoF,EAAA0uG,GAEA,iBAAA1uG,IACAA,EAAAA,EAAAA,OAEA,IAAA00B,EAAA10B,EAAA,EAEA,IAAA,IAAA0uG,GAAA,GAAApJ,WACA,OAAA,KAEA,GAAA5wE,GAAA4wE,WAAA,CAEA,GAAA,GAAA1oG,UAAAw1D,mBAAA,IAAAs8C,EAGA,OAAA,KAFAh6E,EAAA,EAOA,OAFAikB,WAAAjkB,IASAn0B,KAAA0nF,YAAA,SAAAjoF,GAEA,iBAAAA,IACAA,EAAAA,EAAAA,OAEA,IAAA2jE,EAAA3jE,EAAA,EAEA,GAAA2jE,EAAA,EAAA,CACA,GAAA,GAAA/mE,UAAAw1D,mBAAA,IAAAs8C,cAGA,OAAA,KAFA/qC,EAAA2hC,WAAA,EAOA,OAFA3sD,WAAAgrB,IAUApjE,KAAAgmD,gBAAA,WAEA,OAAA,gBAMAhmD,KAAAwoD,qBAAA,WAEA,OAAA,qBAOAxoD,KAAAk/C,YAAA,WACA,OAAA6lD,YAMA/kG,KAAA+yD,WAAA,WACA,OAAAkyC,qBAAAF,WAAA,GAUA/kG,KAAAgzD,YAAA,WACA,OAAA,GAAAiyC,qBASAjlG,KAAAsgD,WAAA,WACA,OAAAjkD,WAOA2D,KAAAmzD,WAAA,WACA,OAAA,cAIAnzD,KAAAouG,mCAAA,aAMApuG,KAAA2/E,cAAA,SAAA/xE,GAGAA,EAAArO,KAAA,aAAA,GAEAtD,YAAAkd,iBAAAvL,EAAApM,EAAAoxD,WASA5yD,KAAA4/E,cAAA,SAAAhyE,GAGAA,EAAArO,KAAA,aAAA,GAEAtD,YAAAkd,iBAAAvL,EAAApM,EAAAqxD,WASA7yD,KAAAogF,0BAAA,SAAAxyE,GAGAA,EAAArO,KAAA,aAAA,GAEAtD,YAAAqd,eAAA1L,EAAApM,EAAA6sG,kBAEA/yG,aAAA+C,GAAAmD,EAAAtD,OAAAknG,kBAAA,WACAx3F,EAAA7O,SAAA,wBAGAzD,aAAA+C,GAAAmD,EAAAtD,OAAAmnG,iBAAA,WACAz3F,EAAAc,YAAA,yBASA1O,KAAAsuG,wBAAA,SAAA1gG,GAEA3R,YAAAid,cAAAtL,GAEAtS,aAAA4E,IAAAsB,EAAAtD,OAAAknG,kBACA9pG,aAAA4E,IAAAsB,EAAAtD,OAAAmnG,kBAOArlG,KAAAmgF,cAAA,SAAAvyE,GAGAA,EAAArO,KAAA,aAAA,GAEAtD,YAAAkd,iBAAAvL,EAAApM,EAAA+sG,gBAEAjzG,aAAA+C,GAAAmD,EAAAtD,OAAAonG,YAAA,WACA13F,EAAA7O,SAAA,mBAGAzD,aAAA+C,GAAAmD,EAAAtD,OAAAqnG,WAAA,WACA33F,EAAAc,YAAA,oBAQA1O,KAAAwuG,kBAAA,SAAA5gG,GACA3R,YAAAid,cAAAtL,GACAtS,aAAA4E,IAAAsB,EAAAtD,OAAAonG,YACAhqG,aAAA4E,IAAAsB,EAAAtD,OAAAqnG,YAMAvlG,KAAAkhF,qBAAA,SAAAwmB,GAEA5qG,OAAA4qG,YAAAA,GAOA1nG,KAAAyuG,kBAAA,SAAAC,EAAAC,GAEArzG,aAAA+C,GAAAmD,EAAAtD,OAAAomD,aAAA,WAEA,IAAA7I,EAAAj6C,EAAAwkD,kBACA0oD,EAAAnuG,KAAAk7C,EAAA35B,OACA6sF,EAAApuG,KAAAk7C,EAAAi0B,iBASA1vE,KAAA4uG,oBAAA,WACApzG,aAAAyD,SAAA,wBAAAW,QAMAI,KAAA6uG,oBAAA,WACArzG,aAAAyD,SAAA,wBAAAb,QAGA4B,KAAA8uG,uCAAA,aAiFA9uG,KAAA+uG,gCAAA,aAMA/uG,KAAAgqG,cAAA,WAWA,GATAltG,OAAAgqF,YAAA,EACAhqF,OAAAuqG,kBAAA,EAEAvqG,OAAAwqG,eAAA,EACAxqG,OAAAyqG,iBAAApqG,OAAAqV,MAEA1V,OAAA0qG,WAAAtsF,YAAAsyF,gBAAA1wG,OAAA2qG,kBAGA3qG,OAAA4qG,YAAA,CACA,IAAAnuF,EAAAzc,OAAA4qG,YAAAv0C,aACAr2D,OAAA4qG,YAAAvY,YAAA,GACA51E,EAAA3Z,OAGAtE,aAAAke,QAAAhY,EAAAtD,OAAAonG,YAGApvB,aAAA,GAAAA,YAAAqR,8BACA/lF,EAAAulF,gBASA/mF,KAAAgvG,aAAA,WAEA,GAAA,GAAAlyG,OAAAgqF,WACA,OAAA,EAEAhqF,OAAAwqG,eAAA,EACAxqG,OAAAyqG,iBAAApqG,OAAAqV,OAOAxS,KAAA+mF,aAAA,WAEA,GAAA,GAAAjqF,OAAAuqG,iBACA,OAAA,EAEAvqG,OAAAuqG,kBAAA,EACAlsF,cAAAre,OAAA0qG,YAEAlsG,aAAAke,QAAAhY,EAAAtD,OAAAsnG,gBAOAxlG,KAAAgnF,gBAAA,WAEA,GAAA,GAAAlqF,OAAAuqG,iBACA,OAAA,EAEAvqG,OAAAuqG,kBAAA,EACAvqG,OAAAyqG,iBAAApqG,OAAAqV,MACA1V,OAAA0qG,WAAAtsF,YAAAsyF,gBAAA1wG,OAAA2qG,mBAQAznG,KAAAivG,aAAA,YACAnyG,OAAAgqF,YAAA,EACA3rE,cAAAre,OAAA0qG,YAEA1qG,OAAAwqG,eAAA,EAGAxqG,OAAA4qG,cACA5qG,OAAA4qG,YAAAv0C,aACA/0D,OAGA9C,aAAAke,QAAAhY,EAAAtD,OAAAqnG,YAOAvlG,KAAA8mF,WAAA,WAEA,OAAAhqF,OAAA,YAOAkD,KAAAuuG,eAAA,WAEA,GAAA/sG,EAAAslF,aACAtlF,EAAAwoG,gBAEAxoG,EAAAytG,gBAoBAjvG,KAAAkvG,uCAAA,aAKAlvG,KAAA3C,aAAA,WAIA,IAAA,IAAAoC,KAFA24C,WAAAn8C,YAAAmf,aAAAg9B,YAGAA,WAAA34C,GAAAA,MAAA2V,SAAA3V,IAOAO,KAAAxC,WAAA,SAAAN,GAEAb,UAAAc,OAAAC,OAAAf,UAAAa,IASA8C,KAAAokD,WAAA,SAAA3I,EAAA5J,GAEA,iBAAA4J,IACAA,EAAAj6C,EAAA0hE,QAAAznB,IAEA,IAAAF,EAAAE,EAAAh8C,MACA,GAAA87C,GAAA0pD,oBACA,OAAA,GAEA2I,sBAGA5I,eAAAvpD,EACAwpD,oBAAA1pD,EAEAjgD,aAAAke,QAAAhY,EAAAtD,OAAAomD,YAAA,CAAA7I,EAAA5J,IAGA,GAAA/0C,OAAAgqF,cACAtlF,EAAAwtG,eAGA,GADA94B,YAAAqR,8BAEA/lF,EAAAulF,iBASA/mF,KAAA4yD,SAAA,WAEA,IAAAu8C,EAAAlK,oBAAA,EAEA,OAAA,GAAAF,aAGA,GAAA1oG,UAAAw1D,kBAAAs9C,GAAApK,aAGAoK,GAAApK,aACAoK,EAAA,QAIA3tG,EAAA4iD,WAAA+qD,EAAA,WAOAnvG,KAAA6yD,SAAA,WAEA,IAAAs8C,EAAAlK,oBAAA,EAKA,OAHA,GAAAA,sBACAkK,EAAA,GAEA,GAAApK,aAGA,GAAA1oG,UAAAw1D,kBAAAs9C,EAAA,IAGAA,EAAA,IACAA,EAAApK,WAAA,QAEAvjG,EAAA4iD,WAAA+qD,EAAA,WAsCAnvG,KAAAoD,aAAA,WAEA,OAAA,GAAAtG,OAAA6/C,kBAGA,GAAA1gD,YAAAmH,gBAUApD,KAAA28C,iBAAA,WAEA,OAAA7/C,OAAA,kBAOAkD,KAAAovG,aAAA,WAEAnzG,YAAAiV,cAAA,eAAAmrF,aAEA,IAAAgT,EAAA7zG,aAAAi4B,IAAA,GAIA,GAFAx3B,YAAA2G,aAAAysG,IAGAxB,oBAQA7tG,KAAAsvG,eAAA,WAEA,GAAAxyG,OAAA6/C,iBACAmxD,qBAEA7xG,YAAAkH,kBAOAnD,KAAAquG,iBAAA,WAEA,GAAA7sG,EAAA4B,eACA5B,EAAA4tG,eAEA5tG,EAAA8tG,kBASAtvG,KAAAwvC,OAAA,SAAAplC,EAAAD,EAAAolG,GAEA/zG,aAAA0D,IAAA,QAAA,QACA1D,aAAA0D,IAAA,YAAAkL,EAAA,MAEAD,GACA3O,aAAAuC,OAAAoM,GAEAolG,IAAA,IAAAA,GACA/C,oBASAxsG,KAAAkpG,aAAA,SAAAoE,EAAAtsG,GAEA,IAAAssG,EACAA,EAAA9xG,aAEA,IAAAwF,EAEAA,EADAQ,EAAAktD,UACA1tD,MAGA,GAAA,GAAAA,EACAA,EAAA7D,OAAA2W,QAAA9S,QAEA,IAAAjC,EAAA,GAYA,GAVAiC,GAAA,IACAjC,EAAA,eAEAiC,GAAA,IACAjC,EAAA,eAEAiC,EAAA,MACAjC,EAAA,gBAGA,GAAAuuG,EAAA3+F,SAAA5P,GACA,OAAA,EAEAsuG,qBAAAC,GACA,IAAAvuG,GACAuuG,EAAAvuG,SAAAA,IAOAiB,KAAA67D,aAAA,WAEA,QAAArgE,aAAAmT,SAAA,iBAUA3O,KAAAwvG,cAAA,WAEA,IAAAxlE,EAAA7sC,OAAA2W,QAAA9S,QAGA,OAAAgpC,GAGAA,GAAA,KAUAhqC,KAAA2tG,iBAAA,WAIA,OAFAnyG,aAAAie,GAAA,aASAzZ,KAAAyvG,YAAA,SAAAC,EAAA3G,GAEA,IAAA2G,EACAA,EAAA,UAEA7G,WAAAxM,YAAA,WAAAqT,EAAA3G,IAQA/oG,KAAAI,SAAA,SAAAsvG,GAEA,IAAAA,GAAA,GAAAA,EAAA9nG,OACA,OAAA,EAGA,IAAA+nG,EAAAn0G,aAAAyD,SAAA,wBAeA,GAdA,GAAA0wG,EAAA/nG,QACApM,aAAAwD,OAAA,iEAEA2wG,EAAAn0G,aAAAyD,SAAA,yBAGAD,OAAA0wG,GAIAvG,eAFAhsG,OAAAwyG,EAAA1wG,aAEA,GAEAmqG,YAEAlE,YAAA,mBAAAA,WAAA9kG,SACA,MAAA,IAAAmI,MAAA,4CAEAonG,EAAA5hF,SAEAm3E,WAAA9kG,YAOAJ,KAAAq/C,wBAAA,WAEA,IAAAuwD,EAAA,GAQA,OANAzyG,OAAAgR,KAAAiqC,YAAA,SAAA34C,EAAAg8C,GAEA,GAAAA,EAAAqvD,YACA8E,EAAA94F,KAAArX,MAGA,GAOAO,KAAAgkF,+BAAA,SAAAl1C,GACAw6D,iBAAAx6D,IAMA9uC,KAAA6vG,oBAAA,SAAAttG,GACAzF,OAAAsrG,iBAAA7lG,GAIAvC,KAAA8vG,iCAAA,aAMA9vG,KAAA+5B,aAAA,SAAA1yB,EAAA0oG,GAEAA,GAGA,SAAA5yG,OAAAga,KAAA44F,KACAA,EAAA,CAAAA,IAEAz0G,aAAAke,QAAAnS,EAAA0oG,IALAz0G,aAAAke,QAAAnS,IAaArH,KAAA/B,QAAA,SAAAoJ,EAAA9E,GAEAjH,aAAA+C,GAAAgJ,EAAA9E,IAOAvC,KAAAG,aAAA,SAAAkH,GAEA/L,aAAA4E,IAAAmH,IAIArH,KAAAgwG,8BAAA,aAMAhwG,KAAAiwG,YAAA,SAAA39D,EAAA/yC,EAAA2wG,EAAAC,GAEA,IAAAD,GAAA,mBAAAA,EACA,MAAA,IAAA3nG,MAAA,wDAEA,IAAA6nG,EAAA/zG,UAAAqqG,gBACA,IAAA0J,GAAA,IAAAA,EACA,MAAA,IAAA7nG,MAAA,4CAEA,QAAA,IAAAhJ,EACAA,EAAA,GAGA,IAAAiS,EAAA,CACA8gC,OAAA,2BACA+9D,cAAA/9D,EACA4sC,UAAAmd,YACA98F,KAAAA,GAGApC,OAAAmzG,KAAA,CACAn5F,KAAA,OACAwC,IAAAtd,UAAAqqG,gBACA6J,SAAA,OACAhxG,KAAAiS,EACAioF,QAAA,SAAA+W,GAEA,IAAAA,EACA,MAAA,IAAAjoG,MAAA,wBAGA,IAAA,GAAAioG,GAAA,IAAAA,EACA,MAAA,IAAAjoG,MAAA,iBAGA,QAAA,IAAAioG,EAAA/W,QACA,MAAA,IAAAlxF,MAAA,iBAEA,GAAA,GAAAioG,EAAA/W,QAEA,OADA6P,iBAAAkH,EAAA1hE,QAAA,eACA,EAGAohE,EAAAM,IAEAhzF,MAAA,SAAAizF,EAAAC,EAAAC,GACAtvG,QAAAC,IAAA,iBAAAovG,GACAE,aAAAH,EAAAG,aACAT,GAAA,mBAAAA,EACAA,EAAAS,cAEAzvG,MAAAyvG,kBAWA5wG,KAAA6wG,gBAAA,SAAAC,EAAA1yD,EAAA2qD,GAEA,IAAAgI,EAAA10G,UAAAwqG,qBASA,GAPAkC,IACAA,EAAA+H,GAEA,GAAA1yD,IACA2yD,GAAA,GAGA,GAAAA,GAAA5L,WAAA3sF,eAAAuwF,GAAA,CAEA,IAAAD,EAAA3D,WAAA4D,GAEAvnG,EAAAiuG,YAAA3G,EAAAC,QAIAztG,aAAAke,QAAAhY,EAAAtD,OAAAM,8BAEAgD,EAAAyuG,YAAA,sBAAA,CAAAe,MAAAF,IAAA,SAAAN,GAEA,IAAA1H,EAAA0H,EAAAjwG,KAEAiB,EAAAiuG,YAAA3G,EAAAC,OAYA/oG,KAAAnB,IAAA,SAAAqgF,EAAA+xB,GAGA50G,UAAAmqG,qBAKA,GAJAyK,GAAAA,EAAAz4F,eAAA,0BACAnc,UAAAmqG,qBAAAyK,EAAAzK,sBAGA,GAAAnqG,UAAAmqG,qBAEA,IAEAqC,WAAA3pB,EAAA+xB,GAGA,MAAArX,GACA,GAAA,iBAAAA,EAAA,CAEA,IAAA9qD,EAAA8qD,EAAA9qD,QACAoiE,EAAAtX,EAAAsX,WACAntB,EAAA6V,EAAA7V,SACA6V,EAAAuX,MAEAriE,GAAA,sBAAAi1C,EACAj1C,GAAA,aAAAoiE,EAAA,OAEA/vG,MAAAy4F,QAGA9qD,EAAA8qD,EAMA0P,iBAFAx6D,EAAAA,EAAAtgC,QAAA,SAAA,UAMAq6F,WAAA3pB,EAAA+xB,IAaA,SAAAj1G,aAEA,IACAV,EAAAE,EACA41G,EAAA96B,EAAAC,EAAAmmB,EACA2U,EACAC,EAJA9vG,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAs6E,EAAA,IAAAD,SACAh6E,EAAA,IAAAC,YAAA+6E,EAAA,IAAA5H,YAGAhzE,EAAA,CACAk1G,cAAA,OAEAC,yBAAA,EACAC,yBAAA,IAEAC,kCAAA,EACAC,yBAAA,QACAC,uBAAA,GACAC,8BAAA,GACAC,iCAAA,EAEAC,uBAAA,KACAC,yBAAA,EACAC,2BAAA,KAEAC,uBAAA,EACAC,sBAAA,KACAC,uBAAA,KACAC,6BAAA,KACAC,+BAAA,KAEAC,qCAAA,EACAC,qCAAA,EAEAC,8BAAA,GAGAzyG,KAAA9B,OAAA,CACAQ,cAAA,iBAGA,IAAA5B,EAAA,CACA41G,eAAA,GACAC,oBAAA,GACAC,UAAA,EACAC,kBAAA,EACAC,WAAA,EACAC,WAAA,EACAC,aAAA,IACAC,aAAA,KACAC,aAAA,KACAC,cAAA,KACAC,gBAAA,EACAC,qBAAA,EACAxgG,WAAA,KACAC,WAAA,KACAq1F,gBAAA,KACAmL,qBAAA,EACAC,mBAAA,GAGA32G,EAAA,CACA42G,oCAAA,EACAC,gCAAA,EACAC,+BAAA,EACAC,2CAAA,EACAC,oCAAA,EACAC,0CAAA,EACAC,mCAAA,EACAC,mCAAA,EACAC,iCAAA,OACAC,2BAAA,OACAC,4BAAA,EACAC,6BAAA,QACAC,2BAAA,OAEAC,kCAAAv3G,EAAA41G,eACA4B,qCAAA,EAEAC,kCAAA,EACAC,qCAAA,EAEAC,yBAAA,SACAC,+BAAA,EACAC,kCAAA,EAEAl7B,2BAAA,EACAm7B,8BAAA,EAEAC,iCAAA,EACAC,uCAAA,EACAC,wCAAA,EAEAC,8BAAA,EAEAt2B,0BAAA,EACAu2B,0CAAA,EACApa,wBAAA,EACAqa,8BAAA,GAGAC,EAAA,CACAnD,yBAAA,GAEA4C,8BAAA,EACAQ,8BAAA,EACAf,kCAAA,GACAC,qCAAA,GAEA76B,2BAAA,EAEAg7B,yBAAA,SACAY,oCAAA,OACAC,mCAAA,OACAC,gCAAA,GACAC,iCAAA,IAoDA,SAAAj4G,IAEA,GAAAT,EAAAi2G,WAAA,GAAA12G,EAAAm1G,0BACAn1G,EAAAi4G,qCAAAx3G,EAAA61G,qBAGA,GAAA71G,EAAAi2G,WAAA,UAAA12G,EAAAs1G,2BACA70G,EAAAs2G,gBAAA,GAGA,GAAAt2G,EAAAs2G,gBAAA,GAAA/2G,EAAAy1G,kCACAh1G,EAAAu2G,qBAAA,GAGA,GAAAh3G,EAAAm1G,0BACA10G,EAAAy2G,mBAAA,EACAz2G,EAAA41G,eAAA,EACAr2G,EAAAg4G,kCAAA,GA0HA,SAAAoB,EAAAtrG,GAEA,IAAA+rE,EACA,OAAA,EAGA,IAAAloE,EAAA,CACA+qE,yBAAA5uE,GAGA+rE,EAAA14E,WAAAwQ,GACAkoE,EAAAoT,oBAUA,SAAAosB,EAAAp2D,GAEA,IAAAgyD,EACA,OAAA,EAEA,IAAAr6B,EACA,OAAA,EAGA,IAAAtoB,EAAA2iD,EAAAvzG,SACA,GAAA,GAAA4wD,EACA,OAAA,EAEA,GAAA,GAAA2iD,EAAA73F,GAAA,YACA,OAAA,EAEA,IAAAk8F,EAAAhnD,EAIAinD,EAFA3+B,EAAAvoB,UAEA3wD,OAEA4wD,GAAA7xD,EAAA41G,iBACAiD,EAAA74G,EAAA41G,gBAEAkD,EAAAD,IACAA,EAAAC,GAEAjnD,GAAAgnD,IACArE,EAAAvzG,OAAA43G,GAEAz/B,GAAA,GAAAA,EAAA8O,eACAywB,EAAAE,IA8EA,SAAAE,EAAApwC,GAEA,GAAA,GAAA3oE,EAAA81G,SACA,OAAA,EAEA,IAAA37B,EACA,OAAA,EAEA,IAAAf,EACA,OAAA,EAEA,IAAA4/B,EAAA75G,EAAA6D,eAAAtE,GACAu6G,EAAA9+B,EAAAvoB,UAEA,GAAA,GAAAqnD,EAAA/0G,OAAA+0G,EAAAh4G,OAAA,IACA,OAAA,EAEA,IAAA0nE,EACA,CAAA,IAAA3gE,EAAAoxE,EAAAmO,gBACA5e,EAAAxpE,EAAA6D,eAAAgF,GAGA,GAAA,GAAA2gE,EAAA1nE,QAAA,GAAA0nE,EAAAzkE,MACA,OAAA,EAKA,GAFAykE,EAAA1lE,OAAAg2G,EAAAh4G,OAEA+3G,EAAA/3G,OACA,OAAA,EAEA,IAAAi4G,EAAA9/B,EAAA51B,aAEA21D,EAAAF,EAAAh4G,OAEA,GAAAk4G,GAAAD,EAAAh9B,4BAAA,CAEA,IAAAhrE,EAAA,CACAgrE,4BAAAi9B,GAGA,GAAA,GAAA//B,EAAA8O,cAGA,OAFA9O,EAAA14E,WAAAwQ,GACAkoE,EAAAoT,qBACA,EAKA,OAAA,EA0BA,SAAA4sB,EAAAC,GAEAl6G,EAAA6D,eAAAtE,GAAA,IACAsJ,EAAAoxE,EAAAmO,gBACA5e,EAAAxpE,EAAA6D,eAAAgF,GAEA,GAAA,GAAA2gE,EAAAzkE,MACA,OAAA,EAGAlE,EAAAq2G,cAAA1tC,EAAA3+D,KACAhK,EAAAo2G,aAAAztC,EAAA1lE,OAEA,IAAAq2G,EAAA3wC,EAAAzkE,MAEA,GAAAqwG,EAAA,CAEA,IAAAgF,EAAAp6G,EAAA6D,eAAAuxG,GACA+E,GAAAC,EAAAr1G,MAGA,IAAAs1G,EAAA7wC,EAAAn8D,MAAA+sG,EAAAr1G,MACA/E,EAAA+B,aAAAqzG,EAAAiF,EAAAx5G,EAAAo2G,cAIAj8B,IACAA,EAAAr3E,OACAq3E,EAAAxoC,SAAA,GAAA,EAAA2nE,GAhDA,SAAA3wC,EAAA4L,GAEA,IAAA5L,EACA,CAAA,IAAA3gE,EAAAoxE,EAAAmO,gBACA5e,EAAAxpE,EAAA6D,eAAAgF,GAGAhI,EAAAo2G,aAAAztC,EAAA1lE,QAEA,IAAAsxE,GACA4F,EAAA5F,cAAAv0E,EAAAo2G,aAAAp2G,EAAAq2G,eAuCAoD,CAAA9wC,IAKA,GAFAowC,EAAApwC,KAIA3oE,EAAAm2G,aAAA,8BAEAh8B,IACAA,EAAA5F,cAAAv0E,EAAAo2G,aAAAp2G,EAAAq2G,gBACA,IAAAgD,IACAA,IACAK,OAaA,SAAAC,IAEA,OAAA,GAAAvgC,EAAAwQ,mBAAA,UAGA,GAAAxQ,EAAA0S,wBASA,SAAA8tB,EAAAr0C,EAAAs0C,GAEA,GAAA,GAAA75G,EAAAs2G,eACA,OAAA,EAEA,IAAA98B,EACA,OAAA,EAEA,IAAAsgC,EAAAH,IAUA,GARAngC,EAAA12E,OACA22E,EAAA32E,OAEA9C,EAAAm2G,aAAA,uBAEA,GAAAn2G,EAAAu2G,qBAAA,GAAAuD,GAAA,GAAAC,KACAC,GAAA,GAEA,GAAAF,EACA,IAAAG,EAAA96G,EAAAyN,sBAAA4sE,EAAA,OAAAj6E,EAAAu1G,wBACAoF,EAAA/6G,EAAAyN,sBAAA4sE,EAAA,UAEA2gC,EAAAh7G,EAAAyN,sBAAA6sE,EAAA,QAAAl6E,EAAAu1G,wBACAsF,EAAAF,MAIA,CAAA,IAAAlyG,EAAAoxE,EAAAmO,gBACA5e,EAAAxpE,EAAA6D,eAAAgF,GACA7I,EAAA6D,eAAAo2E,EAAA/iB,cAEA4jD,EAAA96G,EAAAyN,sBAAA4sE,EAAA,OAAA,EAAAxxE,GAAA2gE,EAAA3+D,KAAAzK,EAAAw1G,8BACAmF,EAAA/6G,EAAAyN,sBAAA4sE,EAAA,SAAA,EAAAxxE,GAAA2gE,EAAA1+D,IACAkwG,EAAAh7G,EAAAyN,sBAAA4sE,EAAA,QAAA,EAAAxxE,GAAA2gE,EAAA3+D,KAAAzK,EAAAw1G,8BACAqF,EAAAF,EAMA,IAAA,IAAAL,EAAA,CAEA,IAAAQ,EAAA,CACArwG,KAAAiwG,EACAhwG,IAAAiwG,GAGAI,EAAA,CACAtwG,KAAAmwG,EACAlwG,IAAAmwG,GAGA5gC,EAAAz5B,OAAA5Q,QAAAkrE,EAAA,CACA7qE,SAAAxvC,EAAAk2G,eAGAz8B,EAAA15B,OAAA5Q,QAAAmrE,EAAA,CACA9qE,SAAAxvC,EAAAk2G,oBAKA18B,EAAAz5B,OACA05B,EAAA15B,OAEA5gD,EAAA+B,aAAAs4E,EAAAygC,EAAAC,GACA/6G,EAAA+B,aAAAu4E,EAAA0gC,EAAAC,GAIA,GAAA70C,GACAtN,EAAA4hD,GASA,SAAAU,EAAAh1C,EAAAs0C,GAEA75G,EAAAm2G,aAAA,KAEA,IAAA2D,EAAAH,IAGAa,EAAAr7G,EAAAyN,sBAAAgzF,EAAA,QAAA,EAAAlhG,GAEA,GAAA,GAAAo7G,EAEA,IAAAW,EALA,EAMAC,EAAAF,MAEA,CACA,IAAAxyG,EAAAoxE,EAAAmO,gBACA5e,EAAAxpE,EAAA6D,eAAAgF,GACA2yG,EAAAx7G,EAAA6D,eAAAo2E,EAAA/iB,cACAukD,EAAAz7G,EAAA6D,eAAA48F,GAGA+a,EAAA1wG,KAAA0wG,EAAA15G,SACA05G,EAAA1wG,IAAA,GAEAywG,EAAAC,EAAA3wG,KAAA2+D,EAAAn8D,MAAAouG,EAAA12G,MAAA,EAAA3E,EAAAk2G,sCACAgF,EAAAE,EAAA1wG,IAAA0+D,EAAA1+D,IAAA2wG,EAAA35G,OAAA,EAAA1B,EAAAm2G,sCAnBA,IAsBA+E,EAtBA,GAwBAC,EAAAF,IACAE,EAAAF,GAKA,IAAA,IAAAX,EAAA,CACA,IAAAprG,EAAA,CACAzE,KAAA0wG,EACAzwG,IAAAwwG,GAGA7a,EAAA7/C,OAAA5Q,QAAA1gC,EAAA,CACA+gC,SAAAxvC,EAAAk2G,oBAIAtW,EAAA7/C,OACA5gD,EAAA+B,aAAA0+F,EAAA8a,EAAAD,IAGA,IAAAl1C,GA+NA,SAAAs1C,IAEA,IAAAA,GACAjb,EAAA7/C,OAEA6/C,EAAA5+F,OAAAhB,EAAAk2G,aAAA,GAnOA4E,CAAAjB,GAQA,SAAAkB,IAEAnb,GACAA,EAAA7/C,OAAA/+C,OAAAhB,EAAAk2G,aAAA,GAEA9yB,IAEA43B,IAEAh7G,EAAAm2G,aAAA,sBACA,GAAAn2G,EAAAs2G,gBACA0D,IAgCA,SAAAxlC,IAEA,IAAA7sB,EAAAxoD,EAAA6D,eAAAtE,GAGA81G,GACAr1G,EAAAyP,0BAAA4lG,EAAA,EAAA,EAAA7sD,EAAAzjD,MAAAlE,EAAA41G,gBAGAp8B,GAAA,GAAAx5E,EAAAs2G,iBAEA,GAAA/2G,EAAAq1G,mCACAp7B,EAAA12E,OACA22E,EAAA32E,QAGA3D,EAAA+B,aAAAs4E,EAAA,OAAA,SAAAj6E,EAAAu1G,wBACA31G,EAAA+B,aAAAu4E,EAAA,QAAA,SAAAl6E,EAAAu1G,yBAGA,GAAA90G,EAAAi2G,WACA92G,EAAA+B,aAAA0+F,EAAA,QAAA,MAAA,EAAA,GAGAzlB,IAEAn6E,EAAAm2G,aAAA,mBAEA,GAAAn2G,EAAAi2G,UAvaA,SAAAtuD,GAEA,IAAAz2C,EAAA,GAEA+pG,EAAA17G,EAAAo1G,yBAKAsG,EAFAtzD,EAAAzjD,MAFA,GACA,IAKAgN,EAAAs8E,uBANA,GAOAt8E,EAAAq8E,wBANA,GAQAr8E,EAAA+8E,2BAAA,SACA/8E,EAAAq9E,0BAAA,WAEAr9E,EAAAs8E,uBAAAzpF,KAAAwF,OAAAo+C,EAAAzjD,MAAA+2G,GAAA,GACA/pG,EAAAq8E,wBAAAr8E,EAAAs8E,uBACAt8E,EAAA+8E,2BAAA,OACA/8E,EAAAq9E,0BAAA,OAEAhvF,EAAAg5G,sCACArnG,EAAA+8E,2BAAA1uF,EAAAi5G,oCAEAj5G,EAAAi5G,qCACAtnG,EAAAq9E,0BAAAhvF,EAAAi5G,qCAIAr+B,EAAAz5E,WAAAwQ,GAEAipE,EAAAxoC,SAAA,GAAA,GAEAinE,IACAz+B,EAAA5F,gBAqYA2mC,CAAAvzD,IAEAw7B,IACAu2B,MAKA,IAAAjoE,EAAAkW,EAAAzjD,MACAi3G,EAAAxzD,EAAA1mD,OAIA,GAAAm4E,EAAA,CAEA,GAAAo7B,EAAA,CACA,IACAtjG,EAAA,CACA+qE,yBAFAu4B,EAAAvzG,UAIAm4E,EAAA14E,WAAAwQ,GAGAkoE,EAAAyL,QAAApzC,EAAA0pE,GACA/hC,EAAAtrC,YAbA,EADA,IAuBA,SAAAs1C,IAEAjJ,GACAA,EAAA9jB,aAAAtW,OAAA/+C,OAAAhB,EAAAk2G,aAAA,GAQA,SAAA8E,IAEAzG,GACAA,EAAAx0D,OAAA/+C,OAAAhB,EAAAk2G,aAAA,GAOA,SAAA6D,IACA,IAAA/5G,EAAA+V,WACA,OAAA,EACA,IAAA3R,EAAA,CACAoG,MAAAxK,EAAA+V,WACAtL,MAAAzK,EAAAgW,YAKA,OAFAojE,EAAAyK,wBAAAz/E,GASA,SAAA41G,EAAAp6D,EAAA0B,GAEA,QAAAk4B,IAIA,GAAAx5E,EAAAu2G,sBAAA,IAAAj1D,GACAy4D,KACA,SAGA,IAAAn6D,GACA45B,EAAAz5B,OAAA/+C,OAAA,EAAA,GACAy4E,EAAA15B,OAAA/+C,OAAA,EAAA,KAEAw4E,EAAAz5B,OAAA/+C,OAAAhB,EAAAk2G,aAAA,GACAz8B,EAAA15B,OAAA/+C,OAAAhB,EAAAk2G,aAAA,MAyBA,SAAAj+C,EAAA4iD,EAAAO,GAEA,QAAA5hC,IAIA,GAAAx5E,EAAAu2G,sBAAA,IAAA6E,GAAA,GAAAzB,MAIA,GAAAvgC,EAAA6S,eAGA,IAAA4uB,IACArhC,EAAAz5B,OACA05B,EAAA15B,QAGAy5B,EAAAx4E,OAAAhB,EAAAk2G,aAAA,QACAz8B,EAAAz4E,OAAAhB,EAAAk2G,aAAA,MAuBA,SAAAmF,EAAA13C,GAEA,IAAAwW,EACA,OAAA,EAEA,IAAAxW,EACAA,EAAAyV,EAAAsQ,iBAEAvP,EAAAtH,aAAAlP,EAAA3+C,MAAA2+C,EAAAiP,aAOA,SAAA0oC,EAAA33C,GAEA,IAAA4wC,EACA,OAAA,EAEA,IAAA5wC,EACAA,EAAAyV,EAAAsQ,iBAEA,IAAAr2E,EAAAxU,EAAAujD,cACAm5D,EAAA53C,EAAAhhE,MAAA,EACA4xG,EAAA9wG,KAAA83G,EAAA,MAAAloG,GAOA,SAAA8vE,IAEA,IAAAhJ,EACA,OAAA,EAEAA,EAAA9jB,aAAAvzD,OAAAi9C,OAAA/+C,OAAAhB,EAAAk2G,aAAA,GAQA,SAAAwD,IAEAnF,GACAA,EAAAx0D,OAAA/+C,OAAAhB,EAAAk2G,aAAA,GAUA,SAAAsF,IACA,GAAA,GAAAx7G,EAAAi2G,UACA,OAAA,EAEA8E,IAQA,SAAAx3B,IACA,GAAA,GAAAvjF,EAAAi2G,UACA,OAAA,GAEAj2G,EAAAm2G,aAAA,eAEAoE,GAAA,GAAA,GACAX,GAAA,GAAA,GAGA,GAAA55G,EAAAi2G,aAEA,IADA78B,EAAAwQ,mBAAA,UAAA,GAAAxQ,EAAA0S,0BAEA1I,IACA43B,MAGAh7G,EAAAm2G,aAAA,eACAhzB,IACAu2B,MAWA,SAAA+B,IAEA,GAAA,GAAAz7G,EAAAi2G,UACA,OAAA,EAEAj2G,EAAAm2G,aAAA,sBAEAoE,GAAA,GACAX,GAAA,GAGA,GADAb,KAEAK,IAEAj2B,IACAu2B,IAQA,SAAAgC,EAAAj5G,EAAA6hF,GAIA,OAFAA,EAAAjkF,OAAAikF,GAEA,GAAAtkF,EAAAi2G,YAGA,GAAA78B,EAAA2N,eAAAzC,KAGAtkF,EAAAm2G,aAAA,wBAEAoE,GAAA,GAEAX,GAAA,QAEAR,MAOA,SAAAuC,IAEA,IACAC,EADAxiC,EAAA51B,aACAy4B,yBAGA,GAAAu4B,EAAA,CACA,IAAA3iD,EAAA2iD,EAAAvzG,SAEA4wD,GAAA+pD,GACAjD,EAAA9mD,GAIA,GAAA,GAAA7xD,EAAAi2G,UAAA,CAUA,GARAoF,IACAC,IAEAt7G,EAAAm2G,aAAA,wBAEAoE,GAAA,GACAX,GAAA,GAEA,GAAAxgC,EAAA4S,sBAEA,GADA+sB,KAEAK,IAGAj2B,IACAu2B,KAWA,SAAAjyD,EAAAhlD,EAAAkhE,GAEA,GAAA3jE,EAAAi2G,WAEA1B,GACA+G,EAAA33C,GAEAwW,IACAkhC,EAAA13C,GAGA,GAAA3jE,EAAA+1G,mBACA57B,EAAA3F,kBAAA,GACAokC,IACAz+B,EAAA5F,mBAOA,GAAA6E,EAAA8O,gBAEA/N,GACAkhC,EAAA13C,GAEA4wC,GACA+G,EAAA33C,IAOA,GAAA3jE,EAAAw2G,sBACAx2G,EAAAw2G,qBAAA,EACAh7D,EAAA9+B,QAAAhY,EAAAtD,OAAAQ,gBASA,SAAAi6G,EAAAp5G,EAAA8H,GAGA,GAAA,SADA6uE,EAAAsN,gBACA,GAAA1mF,EAAAi2G,WAAA78B,EAAA4S,sBACA,OAAA,EAGA,GAAA,GADA5S,EAAA8S,eAGA,OADAxnF,EAAAo3G,MAAA,WACA,EAIA,GAAAv8G,EAAAo2G,+BAIA,GAFAv8B,EAAAyK,wBAAAt5E,IAGA7F,EAAAo3G,MAAA,kBASA,SAAAtuC,IAEAgH,IAQA,SAAAunC,IAEAvH,EAzyBA,WAEA,IAAAA,EACA,OAAA,EAEAA,EAAAlzG,OAqyBA06G,GAEAzH,GACAA,EAAAjzG,OAGAk4E,GAAA,GAAAj6E,EAAAq1G,mCACAp7B,EAAAl4E,OACAm4E,EAAAn4E,QASA,SAAA26G,IAEAzH,IAjzBA,WAEA,IAAAA,EACA,OAAA,EAEAA,EAAA1xG,OA6yBAo5G,GACAtD,KAGArE,GACAA,EAAAzxG,OAGA02E,GAAA,GAAAj6E,EAAAq1G,mCACAp7B,EAAA12E,OACA22E,EAAA32E,QAQA,SAAAysG,EAAA9sG,EAAA6O,EAAA/G,GAEA,IAAA4xG,GAAA,EAEA,OAAA7qG,GACA,KAAA,GACA,GAAAtR,EAAA81G,UACApxG,EAAAo3G,MAAA,YACA,MACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACAK,GAAA,EAIA,GAAAn8G,EAAA81G,UAAA,GAAAqG,GACA5xG,EAAAwiB,iBAQA,SAAAqvF,IAEA,GAAAp8G,EAAAu2G,qBACAt+C,GAAA,GAAA,GAOA,SAAAokD,EAAA9xG,GAEAvK,EAAAm2G,aAAA,sBAEA,GAAAn2G,EAAAu2G,qBAAA,GAAAoD,KACAK,GAAA,GAAA,GASA,SAAAsC,EAAA/xG,GACAvK,EAAA+V,WAAAxL,EAAAC,MACAxK,EAAAgW,WAAAzL,EAAAE,MAKA,KAzaA+uE,GAEA,GAAAA,EAAA78D,GAAA,aAIA,GADA68D,EAAAp3E,IAAA,aAoaA23G,KAAA,GAAA3gC,EAAA8O,gBACAloF,EAAAm2G,aAAA,cACA38B,GAAA,GAAAA,EAAA78D,GAAA,cACAs7C,GAAA,GAAA,IASA,SAAAskD,EAAAhyG,EAAAknB,EAAA4nE,EAAA3nE,GAEA,GAAA,GAAA1xB,EAAA81G,SACA,OAAA,EAEA,OAAAv2G,EAAAsiF,yBACA,QACA,IAAA,OAEA,SADAzI,EAAAsN,gBAEAn8E,EAAAwiB,iBACA,MACA,IAAA,OACAxiB,EAAAwiB,iBACA,MACA,IAAA,UACAluB,EAAAoxG,oBAAA1lG,EAAAknB,EAAA4nE,EAAA3nE,IAyFAxuB,KAAAC,QAAA,WASA,GAPA9C,OAAAkG,UAAAO,OAAA,aAEAwtG,EAAAlxG,IAAA,cACAkxG,EAAAlxG,IAAA,YACAw8F,EAAAx8F,IAAA,SACA5E,EAAA4E,IAAAvE,EAAAuC,OAAAomD,aAEA4xB,EAAA,CACA/4E,OAAA+4E,GAAAh2E,IAAAg2E,EAAAh4E,OAAA85E,gBACA76E,OAAA+4E,GAAAh2E,IAAAg2E,EAAAh4E,OAAA45E,OACA36E,OAAA+4E,GAAAh2E,IAAAg2E,EAAAh4E,OAAAw5E,YACAv6E,OAAA+4E,GAAAh2E,IAAAg2E,EAAAh4E,OAAA65E,kBACA56E,OAAA+4E,GAAAh2E,IAAAg2E,EAAAh4E,OAAAy5E,mBACAx6E,OAAA+4E,GAAAh2E,IAAAg2E,EAAAh4E,OAAAm5E,cAEA,IAAAiiC,EAAApjC,EAAAwS,iBACAvrF,OAAAm8G,GAAAp5G,IAAAo5G,EAAAp7G,OAAAi/F,YACAhgG,OAAAm8G,GAAAp5G,IAAAo5G,EAAAp7G,OAAAk/F,WAEAjgG,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAg6E,iBAAAghC,GACA/7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAi6E,iBAAAghC,GAEAjjC,EAAAj2E,UAGA9C,OAAA2W,QAAAlQ,OAAA,UACAtI,EAAA4E,IAAAvE,EAAAuC,OAAAwnG,iBAAA2G,GAEA7wG,EAAA0E,IAAA,cAGA1E,EAAAuyB,UAOA/tB,KAAAL,KAAA,SAAAF,GAEA,IAAAg8C,EAAA9/C,EAAAunE,QAAAzjE,IAEA3C,EAAA81G,UAAA,EAGA91G,EAAA+1G,kBAAA,EACAj6F,YAAA,WAAA9b,EAAA+1G,kBAAA,IAAA,KAEA38B,GACAA,EAAAkQ,QAAA3qC,EAAA,iBAGAw7B,GACAA,EAAAtH,aAAAl0B,EAAA35B,MAAA25B,EAAAi0B,aAGA0hC,EAAAv0D,OAAA/+C,OAAA,EAAA,GACAtC,EAAAoE,OACApE,EAAAsC,OAAA,EAAA,GAGAszG,EAAAv0D,OAAA/+C,OAAAhB,EAAAk2G,aAAA32G,EAAA21G,0BAEA1gC,IAEA,GAAAx0E,EAAAi2G,aAGA,GADA78B,EAAA8S,gBAxvBA0T,GACAA,EAAAt+F,OAEAk4E,GAAA,GAAAx5E,EAAAs2G,iBACA98B,EAAAl4E,OACAm4E,EAAAn4E,QAGAizG,GACAA,EAAAjzG,OAEA64E,GACAA,EAAA74E,QAovBA,GAAAtB,EAAAs2G,iBACA98B,EAAAl4E,OACAm4E,EAAAn4E,SAOA83E,GACAA,EAAA2Q,mBAGAvrF,EAAAke,QAAA7d,EAAAuC,OAAAynG,cAAAlqD,IAQAz7C,KAAA44G,MAAA,SAAAt5D,GAEAxiD,EAAA81G,UAAA,EAEA,GAAA91G,EAAAi2G,WACA8E,IAEA3hC,GACAA,EAAA2O,kBAIA,SAFA3O,EAAAsN,eAGAhoF,EAAA4C,OAEA5C,EAAAsC,OAAAhB,EAAAk2G,aAAA,GAAA,WACAx3G,EAAA4C,UAIA9C,EAAAke,QAAA7d,EAAAuC,OAAA0nG,iBAQA5lG,KAAArC,KAAA,SAAAV,EAAAC,IAz5CA,SAAAD,EAAAC,GAEAvB,EAAAsB,EACA3B,EAAA6B,OAAAF,GAEAZ,EAAAc,OAAAC,OAAAf,EAAAO,GACAP,EAAAc,OAAAC,OAAAf,EAAAa,GAEAJ,EAAAqrG,gBAAAhrG,OAAAC,OAAA,GAAAf,GAEA,WAAAA,EAAAk1G,gBACAz0G,EAAAi2G,WAAA,EACA12G,EAAAc,OAAAC,OAAAf,EAAA84G,GACA94G,EAAAc,OAAAC,OAAAf,EAAAa,IAIAK,IAEA,GAAAT,EAAAg2G,WAEAn3G,EAAA0iF,WAAAhiF,EAAA,YACAd,UAAA0B,EAAAS,aACAw4E,EAAA36E,UAAA26E,aAGAA,EAAA,KAGA,GAAA75E,EAAAm1G,wBACAv6B,EAAAt5E,KAAAhC,EAAAU,EAAA,YAGA46E,EAAA,KA03CAsiC,CAAAt8G,EAAAC,IAyBA8C,KAAAV,QAAA,WAGA,IA92CAiB,EACAm7C,EA62CA//C,EAAA6zG,iBAEA,GAAA1yG,EAAAi2G,YAtBAj2G,EAAAi2G,WAAA,EACAx1G,IAEAT,EAAAs2G,gBAAA,EACAt2G,EAAAu2G,qBAAA,GAEAh3G,EAAAc,OAAAC,OAAA,GAAAN,EAAAqrG,kBAEAwJ,yBAAA,QAEAz7B,EAAA14E,WAAAnB,IAp2CAkE,EAAA,GACAm7C,EAAA,GACA,GAAA5+C,EAAAi2G,YACAr3D,EAAA,wBAGAn7C,GAAA,6CAAAm7C,EAAA,KACAn7C,GAAA,0CAGA,GAAAzD,EAAAi2G,WAAAj2G,EAAAy2G,mBACAhzG,GAAA,sCACAA,GAAA,oDAEAlE,EAAA61G,wBACA3xG,GAAA,2CAEAA,GAAA,UAIAlE,EAAA61G,wBACA3xG,GAAA,2CAKAA,GAAA,+CAEAA,GAAA,6CACAA,GAAA,8CAEAA,GAAA,SAEA/E,EAAA2B,OAAAoD,GAEApD,OAAA,QAAA6B,OAAAxD,GAEA06E,GACAA,EAAA72E,QAAA7D,GAEA41G,EAAA51G,EAAAyD,SAAA,wBAEA,GAAAnC,EAAAi2G,WAAA,GAAAj2G,EAAAy2G,mBAEA,IADAjC,EAAA91G,EAAAyD,SAAA,2BACA2I,SACA0pG,EAAA,MAGA5U,EAAAlhG,EAAAwxB,KAAA,6BAEA3wB,EAAA61G,wBACAb,EAAA71G,EAAAwxB,KAAA,yBAEAspD,EAAA96E,EAAAyD,SAAA,2BACAs3E,EAAA/6E,EAAAyD,SAAA,4BAEAg4E,IACAq6B,EACAr6B,EAAA1H,WAAA+hC,GAEAr6B,EAAA1H,WAAA/zE,KA6zCAwE,KAAAnB,IAAA,YApzCA,WAaA,GAXA,OAAAxC,EAAA01G,wBACAX,EAAAlyG,IAAA,mBAAA7C,EAAA01G,wBAEA,OAAA11G,EAAA21G,0BACAZ,EAAAtzG,OAAA,EAAAzB,EAAA21G,0BAEAV,GAAA,OAAAj1G,EAAA41G,4BACAX,EAAAryG,SAAA,kCAAAnB,OAAA,EAAAzB,EAAA41G,4BAIAZ,EAAA,CACA,IAAAmI,EAAA,GAEA,OAAAn9G,EAAA81G,wBACAqH,EAAA,aAAAn9G,EAAA81G,sBAAA,MAEA91G,EAAA+1G,yBACAoH,EAAA,MAAAn9G,EAAA+1G,wBAEA,OAAA/1G,EAAAi2G,iCACAkH,EAAA,iBAAAn9G,EAAAi2G,+BAAA,MAEA,OAAAj2G,EAAAg2G,+BACAmH,EAAA,eAAAn9G,EAAAg2G,6BAAA,MAGAhB,EAAAnyG,IAAAs6G,IAyxCAC,GAEAvjC,GACAA,EAAAr3E,MA5PA,WAyBA,GAvBAuyG,EAAA/yG,GAAA,cAAA,SAAAgJ,GACAA,EAAAwiB,oBAGAunF,EAAA/yG,GAAA,YAAA,SAAAgJ,GACA7F,EAAAo3G,MAAA,cAIA38G,EAAA+c,gBAAAu9D,EAAA,kBACAt6E,EAAA+c,gBAAAs9D,EAAA,kBAEAr6E,EAAA+c,gBAAA0jF,GAEA/gG,EAAAgkF,cAAApJ,GACA56E,EAAAikF,cAAAtJ,GAEAomB,EAAAgd,OAAA,WACAl4G,EAAAo3G,MAAA,aAGAt9G,EAAA+C,GAAA1C,EAAAuC,OAAAomD,YAAAC,GAEA2xB,EAAA,CACA/4E,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAA85E,eAAAygC,GAGAt7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAA45E,MAAA6gC,GAGA,IAAAW,EAAApjC,EAAAwS,iBAEAvrF,OAAAm8G,GAAAj7G,GAAAi7G,EAAAp7G,OAAAi/F,WAAA0b,GACA17G,OAAAm8G,GAAAj7G,GAAAi7G,EAAAp7G,OAAAk/F,UAAA2b,GAGA57G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAw5E,WAAA4gC,GACAn7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAA65E,iBAAAugC,GAEAn7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAy5E,kBAAA4gC,GACAp7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAm5E,aAAAkhC,GACAp7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAA+5E,gBAAAugC,GAEAr7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAu5E,YAAA4I,GAEAljF,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAg6E,iBAAAghC,GACA/7G,OAAA+4E,GAAA73E,GAAA63E,EAAAh4E,OAAAi6E,iBAAAghC,GAKAh8G,OAAA2W,QAAA07B,QAAA,WAEA,GAAA,GAAA1yC,EAAA81G,SACA,OAAA,EAEA32G,EAAAwc,wBAAA,kBAAA6xD,EAAA,QAGAhvE,EAAA+C,GAAA1C,EAAAuC,OAAAwnG,iBAAA2G,GAGA,GAAAvvG,EAAAu2G,qBAEAl2G,OAAAkG,UAAA0d,KAAA,YAAAq4F,GAKA59G,EAAA6C,GAAA,aAAAg7G,GAuLAz6G,IAYA,SAAA+6G,aAEA,IACAn+G,EACA48C,EACAwhE,EAAA/hD,EAHAr2D,EAAAxB,KAAAs4C,EAAAn7C,OAAA6C,MACArE,EAAA,IAAAC,iBACAK,EAAA,IAAAC,YAAAC,EAAA,IAAAC,aACAslD,EAAA,IAAAvJ,gBAEA97C,EAAA,CACAw9G,iBAAA,EACAC,6BAAA,GACAC,6BAAA,EACAC,yBAAA,IACAC,uBAAA,eAEAC,mBAAA,EACAC,0BAAA,IACAC,4BAAA,QACAC,iCAAA,EACAC,iCAAA,GAGAt6G,KAAA9B,OAAA,CACAonG,WAAA,sBACAiV,WAAA,sBACAhV,UAAA,sBAGA,IAAAzoG,EAAA,CACA67D,gBAAA,oBACAc,gBAAA,EACA+gD,iBAAA,KACAx+C,UAAA,EACAy+C,cAAA,EACAC,eAAA,EACAC,UAAA,KACAC,gBAAA,IACAzlG,WAAA,EACAokD,aAAA,EACA0D,cAAA,EACAvqD,SAAA,EACAD,UAAA,EACAW,cAAA,EACAC,aAAA,EACAwnG,oBAAA,IACAC,kBAAA,cACA34G,OAAA,KACA2kF,YAAA,EACAi0B,UAAA,EACAxpG,cAAA,YAyDA,SAAAypG,EAAA9mC,EAAA+mC,GAEA,IAAAA,EAEAA,EAAAn+G,EAAA49G,eAAA59G,EAAA29G,cAAAvmC,EAIAp3E,EAAAk/D,UAAAkY,EAGA,IAAAgnC,EAAA,CACA9gD,WAAA8Z,EACA/Z,YAAA8gD,GAGA9+G,EAAAqB,WAAA09G,GAEA7+G,EAAA+9D,WAAA8Z,EACA73E,EAAA89D,YAAA8gD,EAGA9+G,EAAA2mE,eAAAoR,GAGAinC,GAAA,GAMA,SAAAt8G,IAGA,GAAA,OAAA/B,EAAA09G,iBACA,MAAA,IAAAjyG,MAAA,8BAKA,GAAAzL,EAAAk/D,UAAAl/D,EAAA29G,cAAA,EAEAvmC,EAAAp3E,EAAA09G,iBAAA,EAAAn+G,EAAAw9G,kBACA/8G,EAAA29G,gBACAvmC,EAAAp3E,EAAA29G,eAEAO,EAAA9mC,GAEA,IAAAhQ,EAAAjoE,EAAA4T,mBAAA/S,EAAA09G,iBAAAtmC,EAAA73E,EAAAy9G,kCAEA,CAGA,IAMA5lC,EAHA,IAHAhQ,EAAAjoE,EAAA4T,mBAAA/S,EAAA09G,iBAAA19G,EAAAk/D,UAAA3/D,EAAAy9G,gCAGA,EACA51C,EAAA,EAIA82C,EAFA9mC,EAAAp3E,EAAA09G,iBAAA,EAAAn+G,EAAAw9G,kBAQA,IAAAuB,EAAAn/G,EAAAiU,mBAAAg0D,EAAApnE,EAAAk/D,UAAA3/D,EAAAy9G,8BACAsB,GAAA,EAAA/+G,EAAAw9G,iBAEAD,EAAA54G,MAAAo6G,GAEA,GAAAt+G,EAAA28D,gBAspBAt9D,EAAAyC,aAIAg7G,EAAA74F,KAAA,uBAAA2qC,GAGAvuD,OAAA,QAAA4jB,KAAA,sBAAA+qC,GAGA3uD,OAAA2W,QAAAinB,IAAA,QAAAha,KAAA,mBAAA0qC,GAEAmuD,EAAA3gG,MAAA4mE,EAAAC,GA9pBA3jF,EAAA0C,MAGA1B,OAAAgR,KAAAiqC,GAAA,SAAA34C,EAAAic,GACAA,EAAAogC,gBAAAv8C,KAAA,QAAAE,GAEAjE,EAAAge,QAAA1c,EAAA67D,gBAAA,CAAAj9C,EAAAogC,iBAAA,IACApgC,EAAA2/F,gBAAA3/F,EAAAogC,gBAAA5F,OAAA,GAAA,MAGAilE,GAAA,GAEA,GAAA9+G,EAAA69G,mBACA14G,EAAA85G,kBAGA,GAAAj/G,EAAA69G,mBACA14G,EAAA+5G,gBAEAC,EAAA,GAAA,GAEA,GAAAn/G,EAAA69G,mBACA14G,EAAA85G,iBAgbAr/G,EAAA+B,aAAA65D,EAAA,EAAAx7D,EAAAw9G,kBAGA4B,IA9aA3+G,EAAA28D,gBAAA,EAUA,SAAAoD,IACA,OAAA5gE,EAAA6D,eAAA+3D,GAAA/wD,KAMA,SAAAkvE,EAAA3uE,GACA,OAAApL,EAAAmL,iBAAAC,GAAAC,MAOA,SAAAo0G,IAIA,OAFA7jD,EAAA54D,SAAA,qBASA,SAAA08G,EAAAla,GAIA,OAFAxlG,EAAA4T,mBAAA4xF,EAAA3kG,EAAAk/D,UAAA3/D,EAAAy9G,8BASA,SAAA8B,IACA,OAAAF,IAAA9zG,OAOA,SAAAi0G,EAAAC,GACAC,EAAAD,GACA,IAAAxgD,EAAAogD,IAGA,OAFAv+G,OAAAm+D,EAAAwgD,IA+FA,SAAAE,IAMA,OAFAL,EAXA1/G,EAAA6D,eAAA85G,GACA,OAsBA,SAAAuB,EAAApmE,GAEA,IAAAA,EACAA,GAAA,EAEA,IAGAtY,EAHA6+B,EAAAogD,IAEAjvG,EAAA,EACAhH,EAAA,EAwBA,OAtBAtI,OAAAgR,KAAAmtD,GAAA,SAAA77D,EAAAD,GACAA,EAAArC,OAAAqC,GACAvD,EAAA+B,aAAAwB,EAAAiN,EAAA,GACA,IAAAwvG,EAAAhgH,EAAA6D,eAAAN,GACAiN,GAAAwvG,EAAAj7G,MAAA3E,EAAAy9G,6BACAr0G,EAAA5E,KAAA4hC,IAAAh9B,EAAAw2G,EAAAl+G,QACA0B,GAAA67D,EAAA1zD,OAAA,IACA60B,EAAAw/E,EAAA3yG,UAIAuuD,EAAA72D,MAAAy7B,GAEAh3B,GAAA,EAAApJ,EAAAw9G,kBAEA,IAAA9kE,IACA8iB,EAAA95D,OAAA0H,GACAm0G,EAAA77G,OAAA0H,IAGA+1G,EAAA1+G,EAAAqY,YAAA,GAEA,EAOA,SAAA4mG,EAAAD,GAEA,GAAAA,EAAAJ,IAAA9zG,OAAA,EACA,MAAA,IAAAW,MAAA,sBAAAuzG,GAOA,SAAAI,EAAAh4C,EAAAi4C,GAEA,GAAA,QAAAA,EACA,IAAAC,EAxJAvkD,EAAA54D,SAAA,qBAAA8nB,aA0JAq1F,EAlJAvkD,EAAA54D,SAAA,qBAAAkyB,OAoJA,IAEAkrF,EA9IA,SAAA78G,EAAA88G,EAAAH,GAEA,IAAA18G,EAAAD,EAAAD,KAAA,SACA,GAAAsH,MAAApH,EACA,MAAA,IAAA8I,MAAA,iCAKA,IAFA,IAAAg0G,EAAA,GAEAtnG,EAAA,EAAAA,EAAAqnG,EAAArnG,IAAA,CAEA,GAAA,QAAAknG,EACA,IAAAK,EAAA7gH,EAAA+rF,YAAAjoF,GAAA,QAEA+8G,EAAA7gH,EAAAisF,YAAAnoF,GAAA,GAEA,IAAA+8G,EACA,MAAA,IAAAj0G,MAAA,4BAGA,IAAAk0G,EAAAD,EAAAnB,gBAAAnlE,OAAA,GAAA,GAGAz2C,EAAA+8G,EAAA/8G,MAEAg9G,EAAA19G,SAAA,UACAw9G,EAAAzlG,KAAA2lG,GAGA,OAAA,EAiHAC,CAAAN,EAAAl4C,EAFA,QAAAi4C,EAAA,OAAA,QAIAh/G,OAAAgR,KAAAkuG,GAAA,SAAA58G,EAAAD,GAEA,QAAA28G,EACAtkD,EAAA8kD,QAAAn9G,GAEAq4D,EAAA74D,OAAAQ,GAEAhE,EAAAge,QAAA1c,EAAA67D,gBAAAn5D,GACArD,EAAAw3E,cAAAn0E,MAUA,SAAAo9G,EAAAC,EAAAn1E,GAEAq0E,EAAA73C,GAKA,IAHA,IAAA44C,EAAApB,IACAx3C,EAAA44C,EAAAl1G,OAEAqN,EAAA,EAAAA,EAAA4nG,EAAA5nG,IAEA,QAAAyyB,EACAvqC,OAAA2/G,EAAA7nG,IAAA8Y,SAEA5wB,OAAA2/G,EAAA54C,EAAA,EAAAjvD,IAAA8Y,SAqBA,SAAAytF,EAAAM,EAAAnF,EAAAoG,GAEA,QAAAl2G,IAAA8vG,EAAA,CACAA,GAAA,EACA,GAAA9+C,EAAAp+C,GAAA,aACA,OAAA,EAGA,IAAAja,EAAAq8G,EAAAC,GAIAvwG,EAAA,CACAzE,MAJA7K,EAAA6D,eAAAN,GACAsH,KAAAzK,EAAAw9G,iBAGA,MAGA,IAAA,IAAAlD,EAAA,CAEA,IAAArqE,EAAAjwC,EAAA29G,yBACA10E,EAAAjpC,EAAA49G,wBAEA,IAAA8C,IACAzwE,EAAAxvC,EAAA+9G,oBACAv1E,EAAAxoC,EAAAg+G,mBAGAjjD,EAAAhb,MAAA,GAAA5Q,QAAA1gC,EAAA,CACA+gC,SAAAA,EACAhH,OAAAA,EACA2X,OAAA,EAEAr0C,SAAA,WACA9L,EAAAqY,WAAA2mG,EAEAL,YAKA3+G,EAAAqY,WAAA2mG,EAEAjkD,EAAA34D,IAAAqM,GAyBA,SAAAyxG,IAEA,IAjBAz3D,EACA2e,EACA+4C,EACAC,EAeA1B,GAlBAj2D,GAAAsX,IACAqH,EAAAy3C,EAAAp2D,GACA03D,EAAAhhH,EAAA6D,eAAA+7G,EAAA33C,IAAAp9D,KACAo2G,EAAAjhH,EAAA6D,eAAA+7G,EAAA33C,EAAA,IAAAp9D,KAEAjG,KAAA8O,IAAAstG,EAAA13D,GAAA1kD,KAAA8O,IAAAutG,EAAA33D,GACA,EAEA2e,EAAA,IAUA,GAAA,GAOA,SAAAu3C,IAEA,IA9NAzkD,EA8NAmmD,GA9NAnmD,GAAA6F,IACA//D,EAAA69G,UAAA3jD,GA8NAomD,EA9OA,WACA,IAAAtH,EAAA75G,EAAA6D,eAAA85G,GACAl1D,EAAAzoD,EAAA6D,eAAA+3D,GAEAb,EAAAtS,EAAA1jD,MAAA80G,EAAA90G,MAAA0jD,EAAA59C,KAGA,OAFAhK,EAAA69G,UAAA3jD,EAyOAqmD,GAEAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAIAv5C,EAAA03C,IAGA,GAAAuB,EAAArgH,EAAA89G,gBAEAsB,EADAoB,EAAA3B,EAAAwB,GACA,QAEArgH,EAAAqY,YAAAmoG,OAEA,GAAAH,GAAArgH,EAAA89G,gBAAA,CAEAgC,EADAY,EAAA7B,EAAA96G,KAAA8O,IAAAwtG,IACA,QACArgH,EAAAqY,YAAAqoG,EAcA,GAVAJ,EAAAtgH,EAAA89G,gBAEAsB,EADAqB,EAAA5B,EAAAyB,GACA,SACAA,GAAAtgH,EAAA89G,iBAEAgC,EADAa,EAAA9B,EAAA96G,KAAA8O,IAAAytG,IACA,SAKAK,EAAAv5C,EAEA,MAAA,IAAA37D,MAAA,oCAOA,IAAAm1G,GAAA,EAiBA,OAhBAJ,GAAAC,GAAAC,GAAAC,KAYAtC,IACAuC,GAAA,GAGA,EA6FA,SAAAC,IAEA,QAAAthH,EAAA+9G,4BACA54G,EAAAo8G,YAAA,GAEAp8G,EAAA26B,WAAA,GAWA,SAAAuvB,EAAArkD,GAEA,GAAA,GAAAvK,EAAAy8D,YACA,OAAA,EAEAz8D,EAAAy8D,aAAA,EAEA/3D,EAAA+5G,gBAEAz+G,EAAA2V,UAAAtV,OAAAqV,MACA1V,EAAAsW,cAAA4iE,EAAA3uE,GACAvK,EAAAmgE,cAAAJ,IACA//D,EAAA4V,SAAA5V,EAAA2V,UACA3V,EAAAuW,aAAAvW,EAAAsW,cAEAnX,EAAAkW,eAAA9K,EAAAvK,EAAAyU,eAOA,SAAAu6C,EAAAzkD,GAEA,GAAA,GAAAvK,EAAAy8D,YACA,OAAA,EAEAt9D,EAAA+W,sBAAA3L,EAAAvK,EAAAyU,eAEAlK,EAAAwiB,iBAEA,IAAAnY,EAAA,KAKA,GAHA,GAAArV,EAAAi+G,kCACA5oG,EAAAzV,EAAAqV,gBAAAxU,EAAAyU,gBAEA,SAAAG,EACA,OAAA,EAEA5U,EAAAuW,aAAA2iE,EAAA3uE,GAEA,IA1SAkE,EA0SA0B,EAAAnQ,EAAAuW,aAAAvW,EAAAsW,cACAmyC,EAAAzoD,EAAAmgE,cAAAhwD,EACAy6B,EAAAz6B,EAAA,EAAA,OAAA,OAIAs4C,EAAA,GAAA,QAAA7d,IACA6d,GAAA,GAGAA,GAPAtpD,EAAA6D,eAAA+3D,GAAA72D,OAOA,QAAA0mC,IACA6d,EAAAzoD,EAAAmgE,cAAAhwD,EAAA,GArTA1B,EAAA,CACAzE,KAuTAy+C,EAvTA,MAGAsS,EAAA34D,IAAAqM,GA4TA,SAAAkgD,EAAApkD,GAEA,GAAA,GAAAvK,EAAAy8D,YACA,OAAA,EAGAz8D,EAAAy8D,aAAA,EAEAyjD,IAEAx7G,EAAAq8G,kBAMA,SAAAh+B,EAAAx4E,GAEA,GAAA,GAAAhL,EAAAg+G,gCACA,OAAA,EAEA,GAAAv9G,EAAAgqF,YAAA,GAAAhqF,EAAAi+G,UACAv5G,EAAA+5G,gBAMA,SAAAz7B,EAAAz4E,GAEA,GAAA,GAAAhL,EAAAg+G,gCACA,OAAA,EAEA74G,EAAAq8G,kBA6MA,SAAA5jD,IAEA,IAAA/P,EAAAptD,EAAA4V,SAAA5V,EAAA2V,UACAe,EAAA3S,KAAA8O,IAAA7S,EAAAuW,aAAAvW,EAAAsW,eAEA,QAAA82C,EAAA,QAGA12C,EAAA,IA1YAxT,KAAAs7G,cAAA,WAEAx+G,EAAAgqF,YAAA,EACAhqF,EAAAi+G,UAAA,EAEAziE,EAAA9+B,QAAAhY,EAAAtD,OAAAonG,YAEAxoG,EAAAqF,QACAgZ,cAAAre,EAAAqF,QAEArF,EAAAqF,OAAA+Y,YAAAyiG,EAAAthH,EAAA89G,4BAQAn6G,KAAA69G,gBAAA,WAEA,OAAA,GAAA/gH,EAAAgqF,aAGA,GAAAhqF,EAAAi+G,eAGAv5G,EAAA85G,kBAOAt7G,KAAAu7G,cAAA,WAEA,GAAA,GAAAz+G,EAAAgqF,WACA,OAAA,EAEAhqF,EAAAi+G,UAAA,EAEAj+G,EAAAqF,QACAgZ,cAAAre,EAAAqF,QAEAm2C,EAAA9+B,QAAAhY,EAAAtD,OAAAq8G,aAQAv6G,KAAA89G,aAAA,WAEA,GAAA,GAAAhhH,EAAAgqF,WACA,OAAA,EAEAhqF,EAAAi+G,UAAA,EACAj+G,EAAAgqF,YAAA,EAEAhqF,EAAAqF,QACAgZ,cAAAre,EAAAqF,QAEAm2C,EAAA9+B,QAAAhY,EAAAtD,OAAAqnG,YAoJAvlG,KAAAC,QAAA,WAEAnD,EAAAqF,QACAgZ,cAAAre,EAAAqF,QAEAm2C,EAAAp4C,IAAAsB,EAAAtD,OAAAonG,YACAhtD,EAAAp4C,IAAAsB,EAAAtD,OAAAqnG,WAIAqU,EAAAh2G,OAAA,aACAg2G,EAAAh2G,OAAA,cAGAzG,OAAA,QAAAyG,OAAA,aACAzG,OAAA,QAAAyG,OAAA,aAGAzG,OAAA2W,QAAAinB,IAAA,QAAAn3B,OAAA,WAAAA,OAAA,YAEAg2G,EAAA15G,IAAA,cAAAA,IAAA,cAEA/D,EAAA8D,WAOAD,KAAArC,KAAA,SAAAV,EAAAC,EAAA8D,GACAA,GACAhB,KAAAw3D,YAAAx2D,GAj0BA,SAAA/D,EAAAC,GAEA3B,UAAA0B,EAAAS,aACA/B,EAAAsB,EACAE,OAAAF,GACAzB,EAAAD,UAAAC,aACA48C,EAAA78C,UAAA68C,WAEA/7C,EAAAc,OAAAC,OAAAf,EAAAa,GAEAf,EAAA49D,eACA59D,EAAA69D,wBAAAC,GACA99D,EAAAwB,KAAAV,EAAAZ,GAEAqlD,EAAAvlD,EAAAmsD,eACAjsD,EAAAF,EAAAmkD,aAEAxjD,EAAA29G,cAAAp+G,EAAA+9D,WACAt9D,EAAA49G,eAAAr+G,EAAA89D,YAEAr9D,EAAAk/D,UAAA3/D,EAAA+9D,WA+yBAz8D,CAAAV,EAAAC,IAOA8C,KAAAw3D,YAAA,SAAAx2D,GAEAlE,EAAA09G,iBAAAx5G,GAOAhB,KAAAX,QAAA,SAAA4F,IAxzBA,SAAAA,GAEA,IAAAA,EACAA,EAAAzJ,EAGAA,EAAAwD,OADA,gFAGA46G,EAAAp+G,EAAAyD,SAAA,wBACA44D,EAAA+hD,EAAA36G,SAAA,sBAEA9C,EAAAkD,QAAAw4D,GAEAnW,EAAAvC,YAAArhD,OAAA,EAAA,GA4yBAuB,CAAA4F,IAMAjF,KAAAmzD,WAAA,WACA,OAAAymD,GAMA55G,KAAApC,iBAAA,WACA,OAAA,GAOAoC,KAAA+9G,mBAAA,WAEA,OADA1hH,EAAA89D,YAAA,EAAA99D,EAAAw9G,kBAQA75G,KAAAnB,IAAA,WACAA,KAOAmB,KAAA49G,YAAA,SAAAI,GAEA,IAAAA,GAAA,iBAAAA,EACAA,EAAA3hH,EAAA09G,6BAEA,IAAAkE,EAAAjC,IACAgC,EAAAC,IACAD,EAAAC,GAEA,IAAAhgC,EAAAnhF,EAAAqY,WAAA6oG,EACA//B,GAAA,IACAA,EAAA,GAEAu9B,EAAAv9B,IAOAj+E,KAAAm8B,WAAA,SAAA6hF,GAEA,IAAAA,GAAA,iBAAAA,EACAA,EAAA3hH,EAAA09G,6BAEA,IAAAkE,EAAAjC,IACAgC,EAAAC,IACAD,EAAAC,GAEA,IAAA/5C,EAAA03C,IAEA19B,EAAAphF,EAAAqY,WAAA6oG,EACA9/B,GAAAha,IACAga,EAAAha,EAAA,GAEAs3C,EAAAt9B,IAMAl+E,KAAAk+G,oBAAA,SAAAtwG,GACA3R,EAAAyb,qBAAA9J,GACA3R,EAAAkd,iBAAAvL,EAAApM,EAAA26B,aAOAn8B,KAAAm+G,qBAAA,SAAAvwG,GACA3R,EAAAyb,qBAAA9J,GACA3R,EAAAkd,iBAAAvL,EAAApM,EAAAo8G,cAOA59G,KAAAo+G,mBAAA,SAAAxwG,GACA3R,EAAAyb,qBAAA9J,GAEA,GAAA9Q,EAAAgqF,YAAA,GAAAhqF,EAAAi+G,UACAntG,EAAA7O,SAAA,iBAGAu5C,EAAAj6C,GAAAmD,EAAAtD,OAAAonG,YAAA,WACA13F,EAAA7O,SAAA,oBAGAu5C,EAAAj6C,GAAAmD,EAAAtD,OAAAqnG,WAAA,WACA33F,EAAAc,YAAA,oBAGAzS,EAAAkd,iBAAAvL,GAAA,WAEA,GAAA9Q,EAAAgqF,YAAA,GAAAhqF,EAAAi+G,SACAv5G,EAAA85G,gBAEA95G,EAAAs8G,mBA+BA,SAAAvU,SAEApsG,OAAA6C,MAAA,IAEA6kG,EAAAwZ,EADA1iH,EAAA,IAAAC,iBAIAS,GAJA,IAAAH,YAIA,CACAoiH,UAAA,OACAC,eAAA,WACAC,oBAAA,oBA8BA,SAAAC,IA0DA,UAAApiH,EAAAiiH,UACAD,EAAAK,OAAAC,GAEA9Z,EAAA6U,MAAAkF,GApDA,SAAAC,EAAA7N,GAEAr1G,EAAAk1G,gBAAAG,GAQA,SAAA4N,IAEA,IAAAE,EAAAziH,EAAAmiH,oBAEAO,EAAA5hH,OAAA6C,MACA,GAAA++G,EAAApwG,SAAAmwG,GACA,OAAA,EAEAja,EAAAl4D,IAAAoyE,GAAArwG,YAAAowG,GACAC,EAAAhgH,SAAA+/G,GAEA,IAAAhO,EAAAiO,EAAAx/G,KAAA,SACA,IAAAuxG,EACA,OAAA,EAEA+N,EAAA/N,GAQA,SAAA6N,IACA,IACA7N,EADA3zG,OAAA6C,MACAquB,MAEA,IAAAyiF,EACA,OAAA,EAEA+N,EAAA/N,GA5EA9wG,KAAA9B,OAAA,GA8FA8B,KAAAC,QAAA,WAEAo+G,GACAA,EAAAn+G,IAAA,UAEA2kG,GACAA,EAAA3kG,IAAA,UAOAF,KAAArC,KAAA,SAAAV,EAAAC,IAnGA,SAAAD,EAAAC,GACAvB,EAAAsB,EAEAE,OAAAxB,GAIA,WAFAU,EAAAc,OAAAC,OAAAf,EAAAa,IAEAohH,UACAD,EAAAlhH,OAAAd,EAAAkiH,gBAEA1Z,EAAA1nG,OAAAd,EAAAkiH,eAAA,YA0FAS,CAAA/hH,EAAAC,IAOA8C,KAAAnB,IAAA,WAEA4/G,KAWA,SAAAQ,OAAAhiH,GAEA,IACA3B,EADAkG,EAAAxB,KACArE,GADAwB,OAAAqE,GACA,IAAA5F,kBACAsjH,EAAA,GAeA,SAAAC,EAAAzjG,GAEA,IAAAhb,EAAA,CACAjB,MAAAic,EAAAjc,MACAqiB,MAAApG,EAAAoG,MACA4tD,YAAAh0D,EAAAg0D,YACAxjE,SAAAwP,EAAAxP,SACAyiE,SAAAjzD,EAAAizD,UAIAt8D,EAAAqJ,EAAAqgC,cAAAx8C,OAEA,IAAA,IAAA6O,KAAAiE,EAAA,CACA,OAAAjE,GACA,IAAA,QACA,IAAA,cACA,SAGA1N,EAAA0N,GAAAiE,EAAAjE,GAGA,OAAA,EApCAzS,EAAAsB,EACA3B,EAAA6B,OAAAF,GAGA+C,KAAA9B,OAAA,CACAkhH,mBAAA,WACAC,aAAA,gBAqCAr/G,KAAA3B,GAAA,SAAAgJ,EAAAi4G,EAAAC,GAOA,QAJA,IAAAA,GACAL,EAAApoG,KAAA,CAAAzP,MAAAA,EAAA9E,KAAA+8G,IAGAj4G,GACA,IAAA,cAEA/L,EAAA+C,GAAA1C,EAAAuC,OAAAomD,aAAA,WACA,IACA5jD,EAAAy+G,EADAxjH,EAAAqqD,mBAEAs5D,EAAA5+G,EAAAjB,MAAAiB,MAGA,MACA,IAAA,SACApF,EAAA+C,GAAA1C,EAAAuC,OAAA0zD,YAAA0tD,GACA,MACA,IAAA,mBACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAknG,iBAAAka,GACA,MACA,IAAA,kBACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAmnG,gBAAAia,GACA,MACA,IAAA,OACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAonG,WAAAga,GACA,MACA,IAAA,OACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAqnG,UAAA+Z,GACA,MACA,IAAA,QACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAsnG,cAAA8Z,GACA,MACA,IAAA,WACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAunG,iBAAA6Z,GACA,MACA,IAAA,gBACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAAynG,cAAA2Z,GACA,MACA,IAAA,iBACAhkH,EAAA+C,GAAA1C,EAAAuC,OAAA0nG,eAAA0Z,GACA,MACA,QACAj+G,SACAA,QAAAC,IAAA,oBAAA+F,GAIA/L,EAAAke,QAAAhY,EAAAtD,OAAAmhH,aAAA,CAAAh4G,EAAAi4G,KAOAt/G,KAAA0zC,KAAA,WACA/3C,EAAAquG,iBAOAhqG,KAAA68C,KAAA,WACAlhD,EAAAszG,gBAOAjvG,KAAAw/G,WAAA,WACA7jH,EAAA4yG,kBAOAvuG,KAAAy/G,gBAAA,WACA9jH,EAAAyzG,gBAMApvG,KAAAmD,eAAA,WACAxH,EAAA2zG,kBAMAtvG,KAAAquG,iBAAA,WAEA1yG,EAAA0yG,oBAOAruG,KAAA0/G,UAAA,WACA,IAAAjyB,EAAA9xF,EAAAqyG,eACA,IAAAvgB,EACA,OAAA,EAEAA,EAAAhE,YAOAzpF,KAAAgK,OAAA,WAEA,IAAAyjF,EAAA9xF,EAAAqyG,eACA,IAAAvgB,EACA,OAAA,EAEAA,EAAAzjF,UAMAhK,KAAAwpF,QAAA,WAEA,IAAAiE,EAAA9xF,EAAAqyG,eACA,IAAAvgB,EACA,OAAA,EAEAA,EAAAjE,WAMAxpF,KAAA4yD,SAAA,WACAj3D,EAAAi3D,YAOA5yD,KAAA6yD,SAAA,WACAl3D,EAAAk3D,YAMA7yD,KAAAokD,WAAA,SAAAu7D,GAEAhkH,EAAAyoD,WAAAu7D,IAQA3/G,KAAAwvC,OAAA,SAAAxuC,EAAAjD,GAEAA,EACApC,EAAA6zC,OAAAxuC,EAAAjD,GAEApC,EAAA6zC,OAAAxuC,IAOAhB,KAAAkjE,QAAA,SAAAy8C,GAKA,OAFAR,EADAxjH,EAAAunE,QAAAy8C,KAUA3/G,KAAAk/C,YAAA,WAEA,OADAvjD,EAAAujD,eAOAl/C,KAAA4/G,cAAA,SAAA1iH,GACA,IAAAA,EACAA,EAAA,GAEAvB,EAAAkD,IAAA,KAAA3B,GAGAgiH,EAAA97E,KAAA,SAAAliC,GACAM,EAAAnD,GAAA6C,EAAAmG,MAAAnG,EAAAqB,MAAA,OASAvC,KAAAC,QAAA,WACAtE,EAAAsE,WAIA3E,EAAAke,QAAAhY,EAAAtD,OAAAkhH,mBAAA59G,GAOA,SAAAgoG,aAEArsG,OAAA6C,MAAA,IAEAxE,EAAAqkH,EAAAC,EAAAC,EADApkH,EAAA,IAAAC,iBAGAkB,GAHA,IAAAZ,YAGA,CACA8xF,UAAA,IAGA3xF,EAAA,CACA2jH,mBAAA,uBAqCA,SAAAC,IAEAzkH,EAAAoE,OAOA,SAAAsgH,IAEAL,EAAAzhH,OACA0hH,EAAAlgH,OAEA,IAAAL,EAAA,CACA4gH,SAAAxkH,EAAAujD,eAGAvjD,EAAAs0G,YAAA,iBAAA1wG,GAAA,SAAAixG,GAEAsP,EAAA1hH,OAEA,IAAA0qG,EAAA0H,EAAA4P,WAGA,GAFA5P,EAAA6P,eAGAR,EAAAjxF,OAAAhvB,OACAkgH,EAAA1hH,QAEA5C,EAAA4C,OAGAzC,EAAAyE,SAAA0oG,MAEA,SAAAwX,GACAA,EAAA,cAAAA,EAEAR,EAAA1hH,OACA2hH,EAAAngH,OACAmgH,EAAAx/G,KAAA+/G,MAxEAtgH,KAAA9B,OAAA,GA6FA8B,KAAAC,QAAA,WACA,GAAA,GAAAnD,EAAAkxF,SACA,OAAA,GAOAhuF,KAAArC,KAAA,SAAAV,EAAAC,GAQA,GAPAvB,EAAAsB,EAEAE,OAAAxB,GACAU,EAAAc,OAAAC,OAAAf,EAAAa,GA/FA,IADA1B,EAAA2B,OAAA,IAAAd,EAAA2jH,qBACAp4G,QAIA,IADAi4G,EAAArkH,EAAAwxB,KAAA,wBACAplB,QAIA,IADAk4G,EAAAtkH,EAAAwxB,KAAA,wBACAplB,QAIA,IADAm4G,EAAAvkH,EAAAwxB,KAAA,uBACAplB,SAGA9K,EAAAkxF,UAAA,GAoFA,GAAAlxF,EAAAkxF,SAEA,OADA7sF,MAAA,6CACA,EA5BAxF,EAAAsC,QAAA,qBAAAgiH,GAEAJ,EAAAnG,MAAAwG,IAhnLA/iH,OAAA0X,GAAA6vF,aAAA,SAAAttF,GACA,IACA8nE,EAAA,IADA/hF,OAAA6C,MACAgb,KAAA,MAEA,IAAA5D,EACAA,EAAA,GAEA,IAAAknE,EAAA,IAAA1iF,iBAKA,OAJA0iF,EAAAz/E,IAAAqgF,EAAA9nE,GAEA,IAAA6nG,OAAA3gC","file":"libraries.min.js","sourcesContent":["\nif(typeof g_ugFunctions != \"undefined\")\n\tg_ugFunctions.registerTheme(\"tiles\");\nelse \n\tjQuery(document).ready(function(){g_ugFunctions.registerTheme(\"tiles\")});\n\n\n/**\n * Grid gallery theme\n */\nfunction UGTheme_tiles(){\n\n\tvar t = this;\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper; \n\tvar g_tiles = new UGTiles(), g_lightbox = new UGLightbox(), g_objPreloader, g_objTilesWrapper;\n\tvar g_functions = new UGFunctions(), g_objTileDesign = new UGTileDesign();\n\t\n\tvar g_options = {\n\t\t\ttheme_enable_preloader: true,\t\t//enable preloader circle\n\t\t\ttheme_preloading_height: 200,\t\t//the height of the preloading div, it show before the gallery\n\t\t\ttheme_preloader_vertpos: 100,\t\t//the vertical position of the preloader\n\t\t\ttheme_gallery_padding: 0,\t\t\t//the horizontal padding of the gallery from the sides\n\t\t\ttheme_appearance_order: \"normal\",\t//normal, shuffle, keep - the appearance order of the tiles. applying only to columns type\n\t\t\ttheme_auto_open:null\t\t\t\t//auto open lightbox at start\n\t};\n\t\n\tvar g_defaults = {\n\t\t\tgallery_width: \"100%\"\n\t};\n\t\n\t//temp variables\n\tvar g_temp = {\n\t\t\tshowPreloader: false\n\t};\n\t\n\t\n\t/**\n\t * Init the theme\n\t */\n\tfunction initTheme(gallery, customOptions){\n\t\t\n\t\tg_gallery = gallery;\n\t\t\n\t\t//set default options\n\t\tg_options = jQuery.extend(g_options, g_defaults);\n\t\t\n\t\t//set custom options\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\tmodifyOptions();\n\t\t\n\t\t//set gallery options\n\t\tg_gallery.setOptions(g_options);\n\t\t\n\t\tg_gallery.setFreestyleMode();\n\t\t\n\t\tg_objects = gallery.getObjects();\n\t\t\n\t\t//get some objects for local use\n\t\tg_objGallery = jQuery(gallery);\t\t\n\t\tg_objWrapper = g_objects.g_objWrapper;\n\t\t\n\t\t//init objects\n\t\tg_tiles.init(gallery, g_options);\n\t\tg_lightbox.init(gallery, g_options);\n\t\t\n\t\tg_objTileDesign = g_tiles.getObjTileDesign();\n\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * modift options\n\t */\n\tfunction modifyOptions(){\n\t\t\n\t\tif(g_options.theme_enable_preloader == true)\n\t\t\tg_temp.showPreloader = true;\n\t\t\n\t\tswitch(g_options.theme_appearance_order){\n\t\t\tdefault:\n\t\t\tcase \"normal\":\n\t\t\tbreak;\n\t\t\tcase \"shuffle\":\n\t\t\t\tg_gallery.shuffleItems();\n\t\t\tbreak;\n\t\t\tcase \"keep\":\n\t\t\t\tg_options.tiles_keep_order = true;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * set gallery html elements\n\t */\n\tfunction setHtml(){\n\t\t\n\t\t//add html elements\n\t\tg_objWrapper.addClass(\"ug-theme-tiles\");\n\t\t\n\t\tg_objWrapper.append(\"
\");\n\t\t\n\t\t//add preloader\n\t\tif(g_temp.showPreloader == true){\n\t\t\tg_objWrapper.append(\"
\");\n\t\t\tg_objPreloader = g_objWrapper.children(\".ug-tiles-preloader\");\n\t\t\tg_objPreloader.fadeTo(0,0);\n\t\t}\n\t\t\n\t\tg_objTilesWrapper = g_objWrapper.children(\".ug-tiles-wrapper\");\n\t\t\n\t\t//set padding\n\t\tif(g_options.theme_gallery_padding)\n\t\t\tg_objWrapper.css({\n\t\t\t\t\"padding-left\":g_options.theme_gallery_padding+\"px\",\n\t\t\t\t\"padding-right\":g_options.theme_gallery_padding+\"px\"\n\t\t\t});\n\t\t\n\t\tg_tiles.setHtml(g_objTilesWrapper);\n\t\tg_lightbox.putHtml();\n\t}\n\t\n\t/**\n\t * actually run the theme\n\t */\n\tfunction actualRun(){\n\t\t\n\t\t//set preloader mode\n\t\tif(g_objPreloader){\n\t\t\tg_objPreloader.fadeTo(0,1);\n\t\t\tg_objWrapper.height(g_options.theme_preloading_height);\n\t\t\tg_functions.placeElement(g_objPreloader, \"center\", g_options.theme_preloader_vertpos);\n\t\t}\n\t\t\n\t\tinitEvents();\n\t\t\n\t\tg_tiles.run();\n\t\tg_lightbox.run();\n\t\t\n\t}\n\n\t\n\t/**\n\t * run the theme\n\t */\n\tfunction runTheme(){\n\t\t\n\t\tsetHtml();\n\t\t\n\t\tactualRun();\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * init size of the thumbs panel\n\t */\n\tfunction initThumbsPanel(){\n\t\t\n\t\t//set size:\n\t\tvar objGallerySize = g_gallery.getSize();\n\t\t\t\n\t\tif(g_temp.isVertical == false)\t\t\t\n\t\t\tg_objPanel.setWidth(objGallerySize.width);\n\t\telse\n\t\t\tg_objPanel.setHeight(objGallerySize.height);\n\t\t\n\t\tg_objPanel.run();\n\t}\n\t\n\t\n\t/**\n\t * on tile click - open lightbox\n\t */\n\tfunction onTileClick(data, objTile){\n\t\t\n\t\tobjTile = jQuery(objTile);\t\t\n\t\t\n\t\tvar objItem = g_objTileDesign.getItemByTile(objTile);\n\t\tvar index = objItem.index;\t\t\n\t\t\n\t\tg_lightbox.open(index);\n\t}\n\t\n\t\n\t/**\n\t * before items request: hide items, show preloader\n\t */\n\tfunction onBeforeReqestItems(){\n\t\t\t\t\n\t\tg_objTilesWrapper.hide();\n\t\t\n\t\tif(g_objPreloader){\n\t\t\tg_objPreloader.show();\n\t\t\n\t\t\tvar preloaderSize = g_functions.getElementSize(g_objPreloader);\n\t\t\tvar galleryHeight = preloaderSize.bottom + 30;\n\t\t\t\n\t\t\tg_objWrapper.height(galleryHeight);\n\t\t}\n\t\t\n\t}\n\n\t/**\n\t * open lightbox at start if needed\n\t */\n\tfunction onLightboxInit(){\n\n\t\tif(g_options.theme_auto_open !== null){\n\t\t\tg_lightbox.open(g_options.theme_auto_open);\n\t\t\tg_options.theme_auto_open = null;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init buttons functionality and events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//remove preloader on tiles first placed\n\t\tif(g_objPreloader){\n\t\t\t\n\t\t\tg_gallery.onEvent(g_tiles.events.TILES_FIRST_PLACED, function(){\n\t\t\t\t\n\t\t\t\tg_objWrapper.height(\"auto\");\n\t\t\t\tg_objPreloader.hide();\n\t\t\t});\t\t\t\n\t\t}\n\t\t\n\t\tjQuery(g_objTileDesign).on(g_objTileDesign.events.TILE_CLICK, onTileClick);\n\t\t\n\t\tg_objGallery.on(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS, onBeforeReqestItems);\n\n\t\tjQuery(g_lightbox).on(g_lightbox.events.LIGHTBOX_INIT, onLightboxInit);\n\n\t}\n\t\n\t\n\t/**\n\t * destroy the theme\n\t */\n\tthis.destroy = function(){\n\t\t\t\t\n\t\tjQuery(g_objTileDesign).off(g_objTileDesign.events.TILE_CLICK);\n\t\t\n\t\tg_gallery.destroyEvent(g_tiles.events.TILES_FIRST_PLACED);\n\t\t\t\t\n\t\tg_objGallery.off(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS);\n\n\t\tjQuery(g_lightbox).off(g_lightbox.events.LIGHTBOX_INIT);\n\t\t\n\t\tg_tiles.destroy();\n\t\tg_lightbox.destroy();\n\t}\n\t\n\t\n\t/**\n\t * run the theme setting\n\t */\n\tthis.run = function(){\n\t\t\n\t\trunTheme();\n\t}\n\t\n\t\n\t/**\n\t * add items\n\t */\n\tthis.addItems = function(){\n\t\t\n\t\tg_tiles.runNewItems();\n\t}\n\t\n\t\n\t/**\n\t * init \n\t */\n\tthis.init = function(gallery, customOptions){\n\t\t\t\t\n\t\tinitTheme(gallery, customOptions);\n\t\t\n\t}\n\t\n\t\n}\n","// Unite Gallery, Version: 1.7.45, released 27 Feb 2017 \n\n\n\n/**\n * write something to debug line\n */\nfunction debugLine(html,addRandom, addHtml){\n\t\n\tif(html === true)\n\t\thtml = \"true\";\n\t\n\tif(html === false)\n\t\thtml = \"false\";\t\t\n\t\n\tvar output = html;\n\t\n\tif(typeof html == \"object\"){\n\t\toutput = \"\";\n\t\tfor(name in html){\n\t\t\tvar value = html[name];\n\t\t\toutput += \" \" + name + \": \" + value;\n\t\t}\n\t}\n\t\n\tif(addRandom == true && !addHtml)\n\t\toutput += \" \" + Math.random();\t\n\t\n\tif(addHtml == true){\n\t\tvar objLine = jQuery(\"#debug_line\");\n\t\tobjLine.width(200);\n\t\t\n\t\tif(objLine.height() >= 500)\n\t\t\tobjLine.html(\"\");\n\t\t\n\t\tvar currentHtml = objLine.html();\n\t\toutput = currentHtml + \"
--------------
\" + output;\t\t\n\t}\n\t\n\tjQuery(\"#debug_line\").show().html(output);\t\t\n\t\t\n}\n\n/**\n * \n * debug side some object\n */\nfunction debugSide(obj){\n\t\n\tvar html = \"\";\n\tfor(name in obj){\n\t\tvar value = obj[name];\n\t\thtml += name+\" : \" + value + \"
\";\t\t\n\t}\n\t\n\tjQuery(\"#debug_side\").show().html(html);\n\n}\n\n\n/**\n * output some string to console\n */\nfunction trace(str){\n\t\n\tif(typeof console != \"undefined\")\n\t\tconsole.log(str);\n\n}\n\n\n\n\n/** -------------- UgFunctions class ---------------------*/\n\nfunction UGFunctions(){\n\t\n\tvar g_browserPrefix = null;\t\n\tvar t = this;\n\tvar g_temp = {\n\t\tstarTime:0,\n\t\tarrThemes:[],\n\t\tisTouchDevice:-1,\n\t\tisRgbaSupported: -1,\n\t\ttimeCache:{},\n\t\tdataCache:{},\n\t\tlastEventType:\"\",\t\t//for validate touchstart click\n\t\tlastEventTime:0,\n\t\tlastTouchStartElement:null,\n\t\ttouchThreshold:700,\n\t\thandle: null\t\t\t//interval handle\n\t};\n\t\n\tthis.debugVar = \"\";\n\n\tthis.z__________FULL_SCREEN___________ = function(){}\n\t\n\t\n\t\n\t/**\n\t * move to full screen mode\n\t * fullscreen ID - the ID of current fullscreen\n\t */\n\tthis.toFullscreen = function(element, fullscreenID) {\n\t\t \t \n\t\t if(element.requestFullscreen) {\n\t\t element.requestFullscreen();\n\t\t } else if(element.mozRequestFullScreen) {\n\t\t element.mozRequestFullScreen();\n\t\t } else if(element.webkitRequestFullscreen) {\n\t\t element.webkitRequestFullscreen(); \n\t\t } else if(element.msRequestFullscreen) {\n\t\t\t element.msRequestFullscreen(); \n\t\t } else{\n\t\t\t return(false);\n\t\t }\n\t\t \n\t\t return(true);\n\t}\t\n\t\n\t\n\t/**\n\t * exit full screen mode\n\t * return if operation success (or if fullscreen mode supported)\n\t */\n\tthis.exitFullscreen = function() {\n\t\t if(t.isFullScreen() == false)\n\t\t\t return(false);\n\t\t\t \n\t\t if(document.exitFullscreen) {\n\t\t document.exitFullscreen();\n\n\t\t } else if(document.cancelFullScreen) {\n\t\t\t document.cancelFullScreen();\n\t\t \n\t\t } else if(document.mozCancelFullScreen) {\n\t\t document.mozCancelFullScreen();\n\t\t \n\t\t } else if(document.webkitExitFullscreen) {\n\t\t document.webkitExitFullscreen();\n\t\t \n\t\t } else if(document.msExitFullscreen) {\n\t\t\t document.msExitFullscreen();\n\t\t\t \n\t\t }else{\n\t\t\t return(false);\n\t\t }\n\t\t \n\t\t return(true);\n\t}\t\n\n\t/**\n\t * cross browser attach even function\n\t */\n\tfunction addEvent(evnt, elem, func) {\n\t\t if (elem.addEventListener) // W3C DOM\n\t\t elem.addEventListener(evnt,func,false);\n\t\t else if (elem.attachEvent) { // IE DOM\n\t\t elem.attachEvent(\"on\"+evnt, func);\n\t\t }\n\t\t else { // No much to do\n\t\t elem[evnt] = func;\n\t\t }\n\t}\n\t\n\t\n\t/**\n\t * add fullscreen event to some function\n\t */\n\tthis.addFullScreenChangeEvent = function(func){\n\t\t\n\t\tif(document[\"webkitCancelFullScreen\"])\n\t\t\taddEvent(\"webkitfullscreenchange\",document,func);\n\t\telse if(document[\"msExitFullscreen\"])\n\t\t\taddEvent(\"MSFullscreenChange\",document,func);\n\t\telse if(document[\"mozCancelFullScreen\"])\n\t\t\taddEvent(\"mozfullscreenchange\",document,func);\n\t\telse\n\t\t\taddEvent(\"fullscreenchange\",document,func);\n\t}\n\t\n\t\n\t/**\n\t * destroy the full screen change event\n\t */\n\tthis.destroyFullScreenChangeEvent = function(){\n\t\t\n\t\tjQuery(document).unbind(\"fullscreenChange\");\n\t\tjQuery(document).unbind(\"mozfullscreenchange\");\n\t\tjQuery(document).unbind(\"webkitfullscreenchange\");\n\t\tjQuery(document).unbind(\"MSFullscreenChange\");\n\t}\n\t\n\t\n\t/**\n\t * get the fullscreen element\n\t */\n\tthis.getFullScreenElement = function(){\n\t\t\n\t\tvar fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;\n\t\t\n\t\treturn(fullscreenElement);\n\t}\n\n\t/**\n\t * return if fullscreen enabled\n\t */\n\tthis.isFullScreen = function(){\n\t\t\n\t\tvar isFullScreen = document.fullscreen || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement;\n\t\t\n\t\tif(!isFullScreen)\n\t\t\tisFullScreen = false;\n\t\telse\n\t\t\tisFullScreen = true;\n\t\t\n\t\treturn(isFullScreen);\n\t}\n\t\n\t\n\t\n\tthis.z__________GET_PROPS___________ = function(){}\n\t\n\t/**\n\t * get browser prefix, can be empty if not detected.\n\t */\n\tthis.getBrowserPrefix = function(){\n\t\t\n\t if(g_browserPrefix !== null)\n\t\t return g_browserPrefix;\n\t\t\t\t\n\t var arrayOfPrefixes = ['webkit','Moz','ms','O'];\n\t \n\t var div = document.createElement(\"div\");\n\t \n\t for(var index in arrayOfPrefixes){\n\t\t var prefix = arrayOfPrefixes[index];\n\t\t \n\t\t if(prefix+\"Transform\" in div.style){\n\t\t\t prefix = prefix.toLowerCase();\n\t\t\t g_browserPrefix = prefix;\n\t\t\t return(prefix);\n\t\t }\n\t }\n\t \n\t g_browserPrefix = \"\";\n\t return \"\";\n\t}\n\t\n\t/**\n\t * get image inside parent data by image (find parent and size)\n\t * scaleMode: fit, down, fill, fitvert\n\t */\n\tthis.getImageInsideParentDataByImage = function(objImage, scaleMode, objPadding){\n\t\t\n\t\tvar objParent = objImage.parent();\n\t\t\n\t\tvar objOrgSize = t.getImageOriginalSize(objImage);\n\t\t\n\t\tvar objData = t.getImageInsideParentData(objParent, objOrgSize.width, objOrgSize.height, scaleMode, objPadding);\n\t\t\n\t\treturn(objData);\n\t}\n\t\n\t\n\t/**\n\t * get data of image inside parent\n\t * scaleMode: fit, down, fill, fitvert\n\t */\n\tthis.getImageInsideParentData = function(objParent, originalWidth, originalHeight, scaleMode, objPadding, maxWidth, maxHeight){\n\t\t\n\t\tif(!objPadding)\n\t\t\tvar objPadding = {};\n\t\t\n\t\tvar objOutput = {};\n\t\t\n\t\tif(typeof maxWidth === \"undefined\")\n\t\t\tvar maxWidth = objParent.width();\n\t\t\n\t\tif(typeof maxHeight === \"undefined\")\n\t\t\tvar maxHeight = objParent.height();\n\t\t\n\t\tif(objPadding.padding_left)\n\t\t\tmaxWidth -= objPadding.padding_left;\n\t\t\n\t\tif(objPadding.padding_right)\n\t\t\tmaxWidth -= objPadding.padding_right;\n\t\t\n\t\tif(objPadding.padding_top)\n\t\t\tmaxHeight -= objPadding.padding_top;\n\t\t\n\t\tif(objPadding.padding_bottom)\n\t\t\tmaxHeight -= objPadding.padding_bottom;\n\t\t\n\t\tvar imageWidth = null;\n\t\tvar imageHeight = \"100%\";\n\t\tvar imageTop = null;\n\t\tvar imageLeft = null;\t\t\n\t\tvar style = \"display:block;margin:0px auto;\";\n\t\t\n\t\tif(originalWidth > 0 && originalHeight > 0){\n\t\t\t\n\t\t\t//get image size and position\n\t\t\t\n\t\t\tif(scaleMode == \"down\" && originalWidth < maxWidth && originalHeight < maxHeight){\n\t\t\t\n\t\t\t\timageHeight = originalHeight;\n\t\t\t\timageWidth = originalWidth;\n\t\t\t\timageLeft = (maxWidth - imageWidth) / 2;\n\t\t\t\timageTop = (maxHeight - imageHeight) / 2;\n\t\t\t\t\n\t\t\t}else if(scaleMode == \"fill\"){\n\t\t\t\tvar ratio = originalWidth / originalHeight;\n\t\t\t\t\n\t\t\t\timageHeight = maxHeight;\n\t\t\t\timageWidth = imageHeight * ratio;\n\t\t\t\t\t\t\t\t\n\t\t\t\tif(imageWidth < maxWidth){\n\t\t\t\t\timageWidth = maxWidth;\n\t\t\t\t\timageHeight = imageWidth / ratio;\n\t\t\t\t\t\n\t\t\t\t\t//center y position\n\t\t\t\t\timageLeft = 0;\n\t\t\t\t\timageTop = Math.round((imageHeight - maxHeight) / 2 * -1);\n\t\t\t\t}else{\t//center x position\n\t\t\t\t\timageTop = 0;\n\t\t\t\t\timageLeft = Math.round((imageWidth - maxWidth) / 2 * -1);\n\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t}\n\t\t\telse{\t\t//fit to borders\n\t\t\t\tvar ratio = originalWidth / originalHeight;\n\t\t\t\timageHeight = maxHeight;\n\t\t\t\timageWidth = imageHeight * ratio;\n\t\t\t\timageTop = 0;\n\t\t\t\timageLeft = (maxWidth - imageWidth) / 2;\n\t\t\t\t\n\t\t\t\tif(scaleMode != \"fitvert\" && imageWidth > maxWidth){\n\t\t\t\t\timageWidth = maxWidth;\n\t\t\t\t\timageHeight = imageWidth / ratio;\n\t\t\t\t\timageLeft = 0;\n\t\t\t\t\timageTop = (maxHeight - imageHeight) / 2;\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\timageWidth = Math.floor(imageWidth);\n\t\t\timageHeight = Math.floor(imageHeight);\n\t\t\t\n\t\t\timageTop = Math.floor(imageTop);\n\t\t\timageLeft = Math.floor(imageLeft);\n\t\t\t\n\t\t\tstyle=\"position:absolute;\";\n\t\t}\n\t\t\n\t\t//set padding\n\t\tif(objPadding.padding_top)\n\t\t\timageTop += objPadding.padding_top;\n\t\t\n\t\tif(objPadding.padding_left)\n\t\t\timageLeft += objPadding.padding_left;\n\t\t\n\t\tobjOutput.imageWidth = imageWidth;\n\t\tobjOutput.imageHeight = imageHeight;\n\t\tobjOutput.imageTop = imageTop;\n\t\tobjOutput.imageLeft = imageLeft;\n\t\tobjOutput.imageRight = imageLeft + imageWidth;\n\t\tif(imageTop == 0 || imageHeight == \"100%\")\n\t\t\tobjOutput.imageBottom = null;\n\t\telse\n\t\t\tobjOutput.imageBottom = imageTop + imageHeight;\n\t\t\n\t\tobjOutput.style = style;\n\t\t\n\t\treturn(objOutput);\t\t\n\t}\n\t\n\t\n\t/**\n\t * get element center position inside parent \n\t * even if the object bigger than the parent\n\t */\n\tthis.getElementCenterPosition = function(element, objPadding){\n\t\t\n\t\tvar parent = element.parent();\n\t\tvar objSize = t.getElementSize(element);\n\t\tvar objSizeParent = t.getElementSize(parent);\n\t\t\n\t\tvar parentWidth = objSizeParent.width;\n\t\tvar parentHeight = objSizeParent.height;\n\t\t\n\t\tif(objPadding && objPadding.padding_top !== undefined)\n\t\t\tparentHeight -= objPadding.padding_top;\n\t\t\n\t\tif(objPadding && objPadding.padding_bottom !== undefined)\n\t\t\tparentHeight -= objPadding.padding_bottom;\n\t\t\n\t\tif(objPadding && objPadding.padding_left !== undefined)\n\t\t\tparentWidth -= objPadding.padding_left;\n\t\t\n\t\tif(objPadding && objPadding.padding_right !== undefined)\n\t\t\tparentWidth -= objPadding.padding_right;\n\t\t\n\t\t\n\t\tvar output = {};\n\t\toutput.left = Math.round((parentWidth - objSize.width) / 2);\n\t\toutput.top = Math.round((parentHeight - objSize.height) / 2);\n\t\t\n\t\tif(objPadding && objPadding.padding_top !== undefined)\n\t\t\toutput.top += objPadding.padding_top;\n\t\t\n\t\tif(objPadding && objPadding.padding_left !== undefined)\n\t\t\toutput.left += objPadding.padding_left;\n\t\t\n\t\t\n\t\treturn(output);\n\t}\n\t\n\t\n\t/**\n\t * get the center of the element \n\t * includeParent - including left / right related to the parent\n\t */\n\tthis.getElementCenterPoint = function(element, includeParent){\n\t\t\n\t\tif(!includeParent)\n\t\t\tvar includeParent = false;\n\t\t\n\t\tvar objSize = t.getElementSize(element);\n\t\tvar output = {};\n\t\t\n\t\toutput.x = objSize.width / 2;\n\t\toutput.y = objSize.height / 2;\n\t\t\n\t\tif(includeParent == true){\n\t\t\toutput.x += objSize.left;\n\t\t\toutput.y += objSize.top;\n\t\t}\n\t\t\n\t\toutput.x = Math.round(output.x);\n\t\toutput.y = Math.round(output.y);\n\t\t\n\t\treturn(output);\n\t}\n\t\n\t\n\t/**\n\t * \n\t * get mouse position from the event\n\t * optimised to every device\n\t */\n\tthis.getMousePosition = function(event, element){\n\t\t\n\t\tvar output = {\n\t\t\tpageX: \tevent.pageX,\n\t\t\tpageY: \tevent.pageY,\n\t\t\tclientX: \tevent.clientX,\n\t\t\tclientY: \tevent.clientY\n\t\t};\n\t\t\n\t\tif(event.originalEvent && event.originalEvent.touches && event.originalEvent.touches.length > 0){\n\t\t\toutput.pageX = event.originalEvent.touches[0].pageX;\n\t\t\toutput.pageY = event.originalEvent.touches[0].pageY;\n\t\t\toutput.clientX = event.originalEvent.touches[0].clientX;\n\t\t\toutput.clientY = event.originalEvent.touches[0].clientY;\n\t\t}\n\t\t\n\t\t/**\n\t\t * get element's mouse position\n\t\t */\n\t\tif(element){\n\t\t\tvar elementPos = element.offset();\n\t\t\toutput.mouseX = output.pageX - elementPos.left;\n\t\t\toutput.mouseY = output.pageY - elementPos.top;\n\t\t}\n\t\t\n\t\treturn(output);\n\t}\n\t\n\t/**\n\t * get mouse element related point from page related point\n\t */\n\tthis.getMouseElementPoint = function(point, element){\n\t\t\n\t\t//rename the input and output\n\t\tvar newPoint = {x: point.pageX, y: point.pageY};\n\t\t\n\t\tvar elementPoint = t.getElementLocalPoint(newPoint, element);\n\t\t\n\t\treturn(elementPoint);\n\t}\n\t\n\t\n\t/**\n\t * get element local point from global point position\n\t */\n\tthis.getElementLocalPoint = function(point, element){\n\t\t\n\t\tvar elementPoint = {};\n\t\tvar elementPos = element.offset();\n\t\t\n\t\telementPoint.x = Math.round(point.x - elementPos.left);\n\t\telementPoint.y = Math.round(point.y - elementPos.top);\n\t\t\n\t\treturn(elementPoint);\n\t}\n\n\t\n\t/**\n\t * get image oritinal size\n\t * if originalWidth, originalHeight is set, just return them.\n\t */\t\t\n\tthis.getImageOriginalSize = function(objImage, originalWidth, originalHeight){\n\t\t\n\t\tif(typeof originalWidth != \"undefined\" && typeof originalHeight != \"undefined\")\n\t\t\treturn({width:originalWidth, height:originalHeight});\n\t\t\n\t\tvar htmlImage = objImage[0];\n\t\t\n\t\tif(typeof htmlImage == \"undefined\")\n\t\t\tthrow new Error(\"getImageOriginalSize error - Image not found\");\n\t\t\n\t\tvar output = {};\n\t\t\n\t\tif(typeof htmlImage.naturalWidth == \"undefined\"){\n\n\t\t\t//check from cache\n\t\t\tif(typeof objImage.data(\"naturalWidth\") == \"number\"){\n\t\t\t\tvar output = {};\n\t\t\t\toutput.width = objImage.data(\"naturalWidth\");\n\t\t\t\toutput.height = objImage.data(\"naturalHeight\");\n\t\t\t\treturn(output);\n\t\t\t}\n\t\t\t\n\t\t //load new image\n\t\t var newImg = new Image();\n\t newImg.src = htmlImage.src;\n\t \n\t if (newImg.complete) {\n\t \toutput.width = newImg.width;\n\t \toutput.height = newImg.height;\n\n\t \t//caching\n\t\t\t\tobjImage.data(\"naturalWidth\", output.width);\n\t\t\t\tobjImage.data(\"naturalHeight\", output.height);\n\t \treturn(output);\n\t \t\n\t }\n\t \n\t return({width:0,height:0});\n\t\t \n\t\t}else{\n\t\t\t\n\t\t\toutput.width = htmlImage.naturalWidth;\n\t\t\toutput.height = htmlImage.naturalHeight;\n\t\t\t\n\t\t\treturn(output);\n\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * get current image ratio from original size\n\t */\n\tthis.getimageRatio = function(objImage){\n\t\t\n\t\tvar originalSize = t.getImageOriginalSize(objImage);\n\t\tvar size = t.getElementSize(objImage);\n\t\tvar ratio = size.width / originalSize.width;\n\t\t\n\t\treturn(ratio);\n\t}\n\t\n\t/**\n\t * tells if the image fit the parent (smaller then the parent)\n\t */\n\tthis.isImageFitParent = function(objImage){\n\t\tvar objParent = objImage.parent();\n\t\tvar sizeImage = t.getElementSize(objImage);\n\t\tvar sizeParent = t.getElementSize(objParent);\n\t\t\n\t\tif(sizeImage.width <= sizeParent.width && sizeImage.height <= sizeParent.height)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * get size and position of some object\n\t */\n\tthis.getElementSize = function(element){\n\n\t\tif(element === undefined){\n\t\t\tthrow new Error(\"Can't get size, empty element\");\n\t\t}\n\t\t\t\t\n\t\tvar obj = element.position();\n\t\t\t\t\n\t\tobj.height = element.outerHeight();\n\t\tobj.width = element.outerWidth();\n\t\t\n\t\tobj.left = Math.round(obj.left);\n\t\tobj.top = Math.round(obj.top);\n\t\t\n\t\tobj.right = obj.left + obj.width;\n\t\tobj.bottom = obj.top + obj.height;\n\t\t\n\t\treturn(obj);\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * return true if the element is bigger then it's parent\n\t */\n\tthis.isElementBiggerThenParent = function(element){\n\t\t\n\t\tvar objParent = element.parent();\n\t\tvar objSizeElement = t.getElementSize(element);\n\t\tvar objSizeParent = t.getElementSize(objParent);\n\t\t\n\t\tif(objSizeElement.width > objSizeParent.width || objSizeElement.height > objSizeParent.height)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * tells if the mouse point inside image\n\t * the mouse point is related to image pos\n\t */\n\tthis.isPointInsideElement = function(point, objSize){\n\t\t\n\t\tvar isMouseXInside = (point.x >= 0 && point.x < objSize.width);\n\t\tif(isMouseXInside == false)\n\t\t\treturn(false);\n\t\t\n\t\tvar isMouseYInside = (point.y >= 0 && point.y < objSize.height);\n\t\tif(isMouseYInside == false)\n\t\t\treturn(false);\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n\t/**\n\t * get element relative position according the parent\n\t * if the left / top is offset text (left , center, right / top, middle , bottom)\n\t * the element can be number size as well\n\t */\n\tthis.getElementRelativePos = function(element, pos, offset, objParent){\n\t\t\n\t\tif(!objParent)\n\t\t\tvar objParent = element.parent();\n\t\t\n\t\tif(typeof element == \"number\"){\n\t\t\tvar elementSize = {\n\t\t\t\t\twidth: element,\n\t\t\t\t\theight: element\n\t\t\t};\n\t\t}else\n\t\t\tvar elementSize = t.getElementSize(element);\n\t\t\n\t\tvar parentSize = t.getElementSize(objParent);\n\t\t\n\t\t\n\t\tswitch(pos){\n\t\t\tcase \"top\":\n\t\t\tcase \"left\":\n\t\t\t\tpos = 0;\n\t\t\t\tif(offset)\n\t\t\t\t\tpos += offset;\n\t\t\tbreak;\n\t\t\tcase \"center\":\n\t\t\t\tpos = Math.round((parentSize.width - elementSize.width) / 2);\n\t\t\t\tif(offset)\n\t\t\t\t\tpos += offset;\n\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tpos = parentSize.width - elementSize.width;\n\t\t\t\tif(offset)\n\t\t\t\t\tpos -= offset;\n\t\t\tbreak;\n\t\t\tcase \"middle\":\n\t\t\t\tpos = Math.round((parentSize.height - elementSize.height) / 2);\n\t\t\t\tif(offset)\n\t\t\t\t\tpos += offset;\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tpos = parentSize.height - elementSize.height;\n\t\t\t\tif(offset)\n\t\t\t\t\tpos -= offset;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\treturn(pos);\n\t}\n\t\n\t\t\n\t\n\tthis.z_________SET_ELEMENT_PROPS_______ = function(){}\n\t\t\n\t\n\t/**\n\t * \n\t * zoom image inside parent\n\t * the mouse point is page offset position, can be null\n\t * return true if zoomed and false if not zoomed\n\t */\n\tthis.zoomImageInsideParent = function(objImage, zoomIn, step, point, scaleMode, maxZoomRatio, objPadding){\n\t\t\n\t\tif(!step)\n\t\t\tvar step = 1.2;\n\t\t\n\t\tif(!scaleMode)\n\t\t\tvar scaleMode = \"fit\";\n\t\t\n\t\tvar zoomRatio = step;\n\t\t\n\t\tvar objParent = objImage.parent();\t\t\n\t\t\n\t\tvar objSize = t.getElementSize(objImage);\n\t\tvar objOriginalSize = t.getImageOriginalSize(objImage);\n\t\t\n\t\t\n\t\tvar isMouseInside = false;\n\t\tvar newHeight,newWidth, panX = 0, panY = 0, newX, newY,panOrientX = 0, panOrientY = 0;\n\t\t\n\t\tif(!point){\n\t\t\tisMouseInside = false;\n\t\t}else{\n\t\t\tvar pointImg = t.getMouseElementPoint(point, objImage);\t\t\t\t\n\t\t\tisMouseInside = t.isPointInsideElement(pointImg, objSize);\n\t\t\t\n\t\t\t//if mouse point outside image, set orient to image center\n\t\t\tpanOrientX = pointImg.x;\n\t\t\tpanOrientY = pointImg.y;\n\t\t}\n\t\t\t\t\n\t\tif(isMouseInside == false){\n\t\t\tvar imgCenterPoint = t.getElementCenterPoint(objImage);\n\t\t\tpanOrientX = imgCenterPoint.x;\n\t\t\tpanOrientY = imgCenterPoint.y;\n\t\t}\n\t\t\t\t\t\t\n\t\t//zoom:\n\t\tif(zoomIn == true){\t\t//zoom in\n\t\t\t\n\t\t\tnewHeight = objSize.height * zoomRatio;\n\t\t\tnewWidth = objSize.width * zoomRatio;\n\t\t\t\n\t\t\tif(panOrientX != 0)\n\t\t\t\tpanX = -(panOrientX * zoomRatio - panOrientX);\n\t\t\t\n\t\t\tif(panOrientY != 0)\n\t\t\t\tpanY = -(panOrientY * zoomRatio - panOrientY);\n\t\t\t\n\t\t\t\n\t\t}else{\t\t//zoom out\n\t\t\t\n\t\t\tnewHeight = objSize.height / zoomRatio;\n\t\t\tnewWidth = objSize.width / zoomRatio;\n\t\t\t\n\t\t\tvar objScaleData = t.getImageInsideParentData(objParent, objOriginalSize.width, objOriginalSize.height, scaleMode, objPadding);\n\t\t\t\n\t\t\t//go back to original size\n\t\t\tif(newWidth < objScaleData.imageWidth){\n\t\t\t\t\n\t\t\t\tt.scaleImageFitParent(objImage, objOriginalSize.width, objOriginalSize.height, scaleMode, objPadding);\n\t\t\t\treturn(true);\n\t\t\t}\n\t\t\t\n\t\t\tif(isMouseInside == true){\n\t\t\t\tif(panOrientX != 0)\n\t\t\t\t\tpanX = -(panOrientX / zoomRatio - panOrientX);\n\t\t\t\t\n\t\t\t\tif(panOrientY != 0)\t\t\t\n\t\t\t\t\tpanY = -(panOrientY / zoomRatio - panOrientY);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t//check max zoom ratio, ix exeeded, abort\n\t\tif(maxZoomRatio){\n\t\t\tvar expectedZoomRatio = 1;\n\t\t\tif(objOriginalSize.width != 0)\n\t\t\t\texpectedZoomRatio = newWidth / objOriginalSize.width;\n\t\t\t\n\t\t\tif(expectedZoomRatio > maxZoomRatio)\n\t\t\t\treturn(false);\n\t\t}\n\t\t\n\t\t//resize the element\n\t\tt.setElementSize(objImage, newWidth, newHeight);\n\t\t\n\t\t//set position:\n\t\t\n\t\t//if zoom out and mouse point not inside image, \n\t\t//get the image to center\n\t\tif(zoomIn == false && isMouseInside == false){\n\t\t\tvar posCenter = t.getElementCenterPosition(objImage);\n\t\t\tnewX = posCenter.left;\n\t\t\tnewY = posCenter.top;\n\t\t}else{\n\t\t\t\n\t\t\tnewX = objSize.left + panX;\n\t\t\tnewY = objSize.top + panY;\n\t\t}\n\t\t\n\t\tt.placeElement(objImage, newX, newY);\n\t\t\n\t\treturn(true);\n\t}\n\t\n\n\t\n\t/**\n\t * place some element to some position\n\t * if the left / top is offset text (left , center, right / top, middle , bottom)\n\t * then put it in parent by the offset.\n\t */\n\tthis.placeElement = function(element, left, top, offsetLeft, offsetTop, objParent){\n\t\t\n\t\t\n\t\tif(jQuery.isNumeric(left) == false || jQuery.isNumeric(top) == false){\n\t\t\t\n\t\t\tif(!objParent)\n\t\t\t\tvar objParent = element.parent();\n\t\t\t\n\t\t\tvar elementSize = t.getElementSize(element);\n\t\t\tvar parentSize = t.getElementSize(objParent);\n\t\t}\n\t\t\n\t\t//select left position\n\t\tif(jQuery.isNumeric(left) == false){\n\t\t\t\n\t\t\tswitch(left){\n\t\t\t\tcase \"left\":\n\t\t\t\t\tleft = 0;\n\t\t\t\t\tif(offsetLeft)\n\t\t\t\t\t\tleft += offsetLeft;\n\t\t\t\tbreak;\n\t\t\t\tcase \"center\":\n\t\t\t\t\tleft = Math.round((parentSize.width - elementSize.width) / 2);\n\t\t\t\t\tif(offsetLeft)\n\t\t\t\t\t\tleft += offsetLeft;\n\t\t\t\tbreak;\n\t\t\t\tcase \"right\":\n\t\t\t\t\tleft = parentSize.width - elementSize.width;\n\t\t\t\t\tif(offsetLeft)\n\t\t\t\t\t\tleft -= offsetLeft;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\t//select top position\n\t\tif(jQuery.isNumeric(top) == false){\n\t\t\t\n\t\t\tswitch(top){\n\t\t\t\tcase \"top\":\n\t\t\t\t\ttop = 0;\n\t\t\t\t\tif(offsetTop)\n\t\t\t\t\t\ttop += offsetTop;\n\t\t\t\tbreak;\n\t\t\t\tcase \"middle\":\n\t\t\t\tcase \"center\":\n\t\t\t\t\ttop = Math.round((parentSize.height - elementSize.height) / 2);\n\t\t\t\t\tif(offsetTop)\n\t\t\t\t\t\ttop += offsetTop;\n\t\t\t\tbreak;\n\t\t\t\tcase \"bottom\":\n\t\t\t\t\ttop = parentSize.height - elementSize.height;\n\t\t\t\t\tif(offsetTop)\n\t\t\t\t\t\ttop -= offsetTop;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\tvar objCss = {\n\t\t\t\t\"position\":\"absolute\",\n\t\t\t\t\"margin\":\"0px\"\t\t\t\t\n\t\t};\n\t\t\n\t\tif(left !== null)\n\t\t\tobjCss.left = left;\n\t\t\n\t\tif(top !== null)\n\t\t\tobjCss.top = top;\n\t\t\t\t\n\t\telement.css(objCss);\t\t\n\t}\n\t\n\t\n\t/**\n\t * place element inside parent center.\n\t * the element should be absolute position\n\t */\n\tthis.placeElementInParentCenter = function(element){\n\t\t\t\t\n\t\tt.placeElement(element, \"center\", \"middle\");\n\t}\n\t\n\t\n\t/**\n\t * set element size and position\n\t */\n\tthis.setElementSizeAndPosition = function(element,left,top,width,height){\n\t\t\n\t\tvar objCss = {\n\t\t\t\"width\":width+\"px\",\n\t\t\t\"height\":height+\"px\",\n\t\t\t\"left\":left+\"px\",\n\t\t\t\"top\":top+\"px\",\n\t\t\t\"position\":\"absolute\",\n\t\t\t\"margin\":\"0px\"\n\t\t}\n\t\t\n\t\telement.css(objCss);\n\t}\n\t\n\t/**\n\t * set widht and height of the element\n\t */\n\tthis.setElementSize = function(element, width, height){\n\t\t\n\t var objCss = {\n\t\t\t\"width\":width+\"px\"\n\t\t}\n\t \n\t if(height !== null && typeof height != \"undefined\")\n\t \tobjCss[\"height\"] = height+\"px\"\n\t \n\t\telement.css(objCss);\t\n\t}\n\t\n\t\n\t/**\n\t * clone element size and position\n\t */\n\tthis.cloneElementSizeAndPos = function(objSource, objTarget, isOuter, offsetX, offsetY){\n\t\t\n\t\tvar objSize = objSource.position();\n\t\t\n\t\tif(objSize == undefined){\n\t\t\tthrow new Error(\"Can't get size, empty element\");\n\t\t}\n\t\t\n\t\tif(isOuter === true){\n\t\t\tobjSize.height = objSource.outerHeight();\n\t\t\tobjSize.width = objSource.outerWidth();\n\t\t}else{\n\t\t\tobjSize.height = objSource.height();\n\t\t\tobjSize.width = objSource.width();\n\t\t}\n\t\t\n\t\tobjSize.left = Math.round(objSize.left);\n\t\tobjSize.top = Math.round(objSize.top);\n\t\t\n\t\tif(offsetX)\n\t\t\tobjSize.left += offsetX;\n\t\t\n\t\tif(offsetY)\n\t\t\tobjSize.top += offsetY;\n\t\t\n\t\tt.setElementSizeAndPosition(objTarget, objSize.left, objSize.top, objSize.width, objSize.height);\n\t}\n\n\t\n\t/**\n\t * place image inside parent, scale it by the options\n\t * and scale it to fit the parent.\n\t * scaleMode: fit, down, fill\n\t */\n\tthis.placeImageInsideParent = function(urlImage, objParent, originalWidth, originalHeight, scaleMode, objPadding){\n\t\tvar obj = t.getImageInsideParentData(objParent, originalWidth, originalHeight, scaleMode, objPadding);\n\t\t\n\t\t//set html image:\n\t\tvar htmlImage = \"\";\n\t\t\t\t\n\t\tobjParent.html(htmlImage);\n\t\t\n\t\t//return the image just created\n\t\tvar objImage = objParent.children(\"img\");\n\t\t\n\t\treturn(objImage);\n\t}\n\t\n\t\n\t/**\n\t * scale image to fit parent, and place it into parent\n\t * parent can be width , height, or object\n\t */\t\n\tthis.scaleImageCoverParent = function(objImage, objParent, pHeight){\n\t\t\n\t\tif(typeof objParent == \"number\"){\n\t\t\tvar parentWidth = objParent;\n\t\t\tvar parentHeight = pHeight;\n\t\t}else{\n\t\t\tvar parentWidth = objParent.outerWidth();\n\t\t\tvar parentHeight = objParent.outerHeight();\n\t\t}\n\t\t\n\t\tvar objOriginalSize = t.getImageOriginalSize(objImage);\n\n\t\tvar imageWidth = objOriginalSize.width;\n\t\tvar imageHeight = objOriginalSize.height;\n\t\t\n\t\tvar ratio = imageWidth / imageHeight;\n\t\t\n\t\tvar fitHeight = parentHeight;\n\t\tvar fitWidth = fitHeight * ratio;\n\t\tvar posy = 0, posx = 0;\n\t\t\n\t\tif(fitWidth < parentWidth){\n\t\t\tfitWidth = parentWidth;\n\t\t\tfitHeight = fitWidth / ratio;\n\t\t\t\n\t\t\t//center y position\n\t\t\tposx = 0;\n\t\t\tposy = Math.round((fitHeight - parentHeight) / 2 * -1);\n\t\t}else{\t//center x position\n\t\t\tposy = 0;\n\t\t\tposx = Math.round((fitWidth - parentWidth) / 2 * -1);\n\t\t}\n\t\t\n\t\tfitWidth = Math.round(fitWidth);\n\t\tfitHeight = Math.round(fitHeight);\n\t\t\n\t\tobjImage.css({\"width\":fitWidth+\"px\",\n\t\t\t\t\t \"height\":fitHeight+\"px\",\n\t\t\t\t\t \"left\":posx+\"px\",\n\t\t\t\t\t \"top\":posy+\"px\"});\t\t\n\t}\n\n\n\t\n\t\n\t/**\n\t * resize image to fit the parent, scale it by the options\n\t * scaleMode: fit, down, fill\n\t */\n\tthis.scaleImageFitParent = function(objImage, originalWidth, originalHeight, scaleMode, objPadding){\n\t\t\n\t\tvar objParent = objImage.parent();\n\t\t\n\t\tvar obj = t.getImageInsideParentData(objParent, originalWidth, originalHeight, scaleMode, objPadding);\n\t\t\n\t\tvar updateCss = false;\n\t\t\n\t\tvar objCss = {};\n\t\t\n\t\tif(obj.imageWidth !== null){\n\t\t\tupdateCss = true\n\t\t\tobjImage.removeAttr(\"width\");\n\t\t\tobjCss[\"width\"] = obj.imageWidth+\"px\";\n\t\t}\n\t\t\n\t\tif(obj.imageHeight != null){\n\t\t\tupdateCss = true\n\t\t\tobjImage.removeAttr(\"height\");\n\t\t\tobjCss[\"height\"] = obj.imageHeight+\"px\";\n\t\t}\n\t\t\n\t\tif(obj.imageTop !== null){\n\t\t\tupdateCss = true;\t\t\t\n\t\t\tobjCss.top = obj.imageTop+\"px\";\n\t\t}\n\t\t\n\t\tif(obj.imageLeft !== null){\n\t\t\tupdateCss = true;\t\t\n\t\t\tobjCss.left = obj.imageLeft+\"px\";\n\t\t}\n\t\t\t\n\t\tif(updateCss == true){\n\t\t\t\n\t\t\tobjCss.position = \"absolute\";\n\t\t\tobjCss.margin = \"0px 0px\";\n\t\t\t\n\t\t\tobjImage.css(objCss);\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * scale image by height\n\t */\n\tthis.scaleImageByHeight = function(objImage, height, originalWidth, originalHeight){\n\t\t\n\t\tvar objOriginalSize = t.getImageOriginalSize(objImage, originalWidth, originalHeight);\n\t\t\n\t\tvar ratio = objOriginalSize.width / objOriginalSize.height;\n\t\tvar width = Math.round(height * ratio);\n\t\theight = Math.round(height);\n\t\t\n\t\tt.setElementSize(objImage, width, height);\n\t}\n\n\t\n\t/**\n\t * scale image by height\n\t */\n\tthis.scaleImageByWidth = function(objImage, width, originalWidth, originalHeight){\n\t\t\n\t\tvar objOriginalSize = t.getImageOriginalSize(objImage, originalWidth, originalHeight);\n\t\t\n\t\tvar ratio = objOriginalSize.width / objOriginalSize.height;\n\t\t\n\t\tvar height = Math.round(width / ratio);\n\t\twidth = Math.round(width);\n\t\t\n\t\tt.setElementSize(objImage, width, height);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * scale image to exact size in parent, by setting image size and padding\n\t */\n\tthis.scaleImageExactSizeInParent = function(objImage, originalWidth, originalHeight, exactWidth, exactHeight, scaleMode){\n\t\t\n\t\tvar objParent = objImage.parent();\n\t\tvar parentSize = t.getElementSize(objParent);\n\t\t\n\t\tif(parentSize.width < exactWidth)\n\t\t\texactWidth = parentSize.width;\n\t\t\n\t\tif(parentSize.height < exactHeight)\n\t\t\texactHeight = parentSize.height;\n\t\t\n\t\tvar obj = t.getImageInsideParentData(null, originalWidth, originalHeight, scaleMode, null, exactWidth, exactHeight);\n\t\t\n\t\tvar imageWidth = exactWidth;\n\t\tvar imageHeight = exactHeight;\n\t\t\n\t\tvar paddingLeft = obj.imageLeft;\n\t\tvar paddingRight = obj.imageLeft;\n\t\tvar paddingTop = obj.imageTop;\n\t\tvar paddingBottom = obj.imageTop;\n\t\tvar imageLeft = Math.round((parentSize.width - exactWidth) / 2);\n\t\tvar imageTop = Math.round((parentSize.height - exactHeight) / 2);\n\t\t\n\t\tvar totalWidth = obj.imageWidth + paddingLeft + paddingRight;\n\t\tvar diff = exactWidth - totalWidth;\n\t\tif(diff != 0)\n\t\t\tpaddingRight += diff;\n\t\t\n\t\tvar totalHeight = obj.imageHeight + paddingTop + paddingBottom;\n\t\t\n\t\tvar diff = exactHeight - totalHeight;\n\t\tif(diff != 0)\n\t\t\tpaddingBottom += diff;\n\t\t\n\t\t//update css:\n\t\tobjImage.removeAttr(\"width\");\n\t\tobjImage.removeAttr(\"height\");\n\n\t\tvar objCss = {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tmargin: \"0px 0px\"\n\t\t};\n\t\t\n\t\tobjCss[\"width\"] = imageWidth+\"px\";\n\t\tobjCss[\"height\"] = imageHeight+\"px\";\n\t\tobjCss[\"left\"] = imageLeft+\"px\";\n\t\tobjCss[\"top\"] = imageTop+\"px\";\n\t\tobjCss[\"padding-left\"] = paddingLeft+\"px\";\n\t\tobjCss[\"padding-top\"] = paddingTop+\"px\";\n\t\tobjCss[\"padding-right\"] = paddingRight+\"px\";\n\t\tobjCss[\"padding-bottom\"] = paddingBottom+\"px\";\n\t\t\t\t\n\t\tobjImage.css(objCss);\n\t\t\n\t\t//return size object\n\t\t\n\t\tvar objReturn = {};\n\t\tobjReturn[\"imageWidth\"] = imageWidth;\n\t\tobjReturn[\"imageHeight\"] = imageHeight;\n\t\treturn(objReturn);\n\t}\n\t\n\t\n\t/**\n\t * show some element and make opacity:1\n\t */\n\tthis.showElement = function(element, element2, element3){\n\t\t\n\t\telement.show().fadeTo(0,1);\n\t\t\n\t\tif(element2)\n\t\t\telement2.show().fadeTo(0,1);\n\t\t\t\n\t\tif(element3)\n\t\t\t\telement3.show().fadeTo(0,1);\n\t\t\t\n\t}\n\t\n\t\t\n\tthis.z_________GALLERY_RELATED_FUNCTIONS_______ = function(){}\n\t\n\t/**\n\t * disable button\n\t */\n\tthis.disableButton = function(objButton, className){\n\t\tif(!className)\n\t\t\tvar className = \"ug-button-disabled\";\n\t\t\n\t\tif(t.isButtonDisabled(objButton, className) == false)\t\t\n\t\t\tobjButton.addClass(className);\t\t\n\t}\n\n\t\n\t/**\n\t * convert custom prefix options\n\t * prefix - the prefix.\n\t * base - after the prefix text. example lightbox_slider_option (lightbox - prefix, slider - base)\n\t */\n\tthis.convertCustomPrefixOptions = function(objOptions, prefix, base){\n\t\t\t\n\t\tif(!prefix)\n\t\t\treturn(objOptions);\n\t\t\n\t\tvar modifiedOptions = {};\n\t\t\n\t\tjQuery.each(objOptions, function(key, option){\n\t\t\t\n\t\t\tif(key.indexOf(prefix + \"_\"+base+\"_\") === 0){\n\t\t\t\tvar newKey = key.replace(prefix+\"_\"+base+\"_\", base+\"_\");\n\t\t\t\tmodifiedOptions[newKey] = option;\n\t\t\t}else{\n\t\t\t\tmodifiedOptions[key] = option;\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\n\t\treturn(modifiedOptions);\n\t}\n\t\n\t\n\t/**\n\t * enable button\n\t */\n\tthis.enableButton = function(objButton, className){\n\t\tif(!className)\n\t\t\tvar className = \"ug-button-disabled\";\n\t\t\n\t\tif(t.isButtonDisabled(objButton, className) == true)\t\t\n\t\t\tobjButton.removeClass(className);\n\t}\n\t\n\t\n\t/**\n\t * check if some buggon disabled\n\t */\n\tthis.isButtonDisabled = function(objButton, className){\n\t\tif(!className)\n\t\t\tvar className = \"ug-button-disabled\";\n\t\t\n\t\tif(objButton.hasClass(className))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\n\tthis.z_________MATH_FUNCTIONS_______ = function(){}\n\t\n\t/**\n\t * \n\t * normalize the value for readable \"human\" setting value.\n\t */\n\tthis.normalizeSetting = function(realMin, realMax, settingMin, settingMax, value, fixBounds){\n\t\tif(!fixBounds)\n\t\t\tvar fixBounds = false;\n\t\t\n\t\tvar ratio = (value - settingMin) / (settingMax - settingMin);\n\t\tvalue = realMin + (realMax - realMin) * ratio;\n\t\t\n\t\tif(fixBounds == true){\n\t\t\tif(value < realMin)\n\t\t\t\tvalue = realMin;\n\t\t\t\n\t\t\tif(value > realMax)\n\t\t\t\tvalue = realMax;\n\t\t}\n\t\t\n\t\treturn(value);\n\t}\n\n\t\n\t/**\n\t * \n\t * get \"real\" setting from normalized setting\n\t */\n\tthis.getNormalizedValue = function(realMin, realMax, settingMin, settingMax, realValue){\n\t\t\n\t\tvar ratio = (realValue - realMin) / (realMax - realMin);\n\t\trealValue = realMin + (settingMax - settingMin) * ratio;\n\t\t\n\t\treturn(realValue);\n\t}\n\t\n\t\n\t/**\n\t * get distance between 2 points\n\t */\n\tthis.getDistance = function(x1,y1,x2,y2) {\n\t\t\n\t\tvar distance = Math.round(Math.sqrt(Math.abs(((x2-x1)*(x2-x1)) + ((y2-y1)*(y2-y1)))));\n\t\t\n\t\treturn distance;\n\t}\n\t\n\t\n\t/**\n\t * get center point of the 2 points\n\t */\n\tthis.getMiddlePoint = function(x1,y1,x2,y2){\n\t\tvar output = {}\n\t\toutput.x = x1 + Math.round((x2 - x1) / 2);\n\t\toutput.y = y1 + Math.round((y2 - y1) / 2);\n\t\t\n\t\treturn(output);\n\t}\n\t\n\t\n\t/**\n\t * get number of items in space width gap\n\t * even item sizes\n\t * by lowest\n\t */\n\tthis.getNumItemsInSpace = function(spaceSize, itemsSize, gapSize){\n\t\tvar numItems = Math.floor((spaceSize + gapSize) / (itemsSize + gapSize));\n\t\treturn(numItems);\n\t}\n\n\t/**\n\t * get number of items in space width gap\n\t * even item sizes\n\t * by Math.round\n\t */\n\tthis.getNumItemsInSpaceRound = function(spaceSize, itemsSize, gapSize){\n\t\tvar numItems = Math.round((spaceSize + gapSize) / (itemsSize + gapSize));\n\t\treturn(numItems);\n\t}\n\n\t/**\n\t * get space (width in carousel for example) by num items, item size, and gap size\n\t */\n\tthis.getSpaceByNumItems = function(numItems, itemSize, gapSize){\n\t\tvar space = numItems * itemSize + (numItems-1) * gapSize;\n\t\treturn(space);\n\t}\n\t\n\n\t/**\n\t * get item size by space and gap\n\t */\n\tthis.getItemSizeInSpace = function(spaceSize, numItems, gapSize){\n\t\tvar itemSize = Math.floor((spaceSize - (numItems-1) * gapSize) / numItems);\n\t\t\n\t\treturn(itemSize);\n\t}\n\t\n\t\n\t/**\n\t * get column x pos with even column sizes, start from 0\n\t */\n\tthis.getColX = function(col, colWidth, colGap){\n\t\t\n\t\tvar posx = col * (colWidth + colGap);\n\t\t\n\t\treturn posx;\n\t}\n\t\n\n\t/**\n\t * get column number by index\n\t */\n\tthis.getColByIndex = function(numCols, index){\n\t\tvar col = index % numCols;\n\t\treturn(col);\n\t}\n\t\n\t\n\t/**\n\t * get col and row by index\n\t */\n\tthis.getColRowByIndex = function(index, numCols){\n\t\t\n\t\tvar row = Math.floor(index / numCols);\n\t\tvar col = Math.floor(index % numCols);\n\t\t\n\t\treturn({col:col,row:row});\n\t}\n\t\n\t\n\t/**\n\t * get index by row, col, numcols\n\t */\n\tthis.getIndexByRowCol = function(row, col, numCols){\n\t\t\n\t\tif(row < 0)\n\t\t\treturn(-1);\n\t\t\n\t\tif(col < 0)\n\t\t\treturn(-1);\n\t\t\n\t\tvar index = row * numCols + col;\n\t\treturn(index);\n\t}\n\t\n\t/**\n\t * get previous row item in the same column\n\t */\n\tthis.getPrevRowSameColIndex = function(index, numCols){\n\t\tvar obj = t.getColRowByIndex(index, numCols);\n\t\tvar prevIndex = t.getIndexByRowCol(obj.row-1, obj.col, numCols);\n\t\treturn(prevIndex);\n\t}\n\t\n\t/**\n\t * get next row item in the same column\n\t */\n\tthis.getNextRowSameColIndex = function(index, numCols){\n\t\tvar obj = t.getColRowByIndex(index, numCols);\n\t\tvar nextIndex = t.getIndexByRowCol(obj.row+1, obj.col, numCols);\n\t\treturn(nextIndex);\n\t}\n\t\n\t\n\tthis.z_________DATA_FUNCTIONS_______ = function(){}\n\t\n\t/**\n\t * set data value\n\t */\n\tthis.setGlobalData = function(key, value){\n\t\t\n\t\tjQuery.data(document.body, key, value);\n\t\t\n\t}\n\t\n\t/**\n\t * get global data\n\t */\n\tthis.getGlobalData = function(key){\n\t\t\n\t\tvar value = jQuery.data(document.body, key);\n\t\t\n\t\treturn(value);\n\t}\n\t\n\tthis.z_________EVENT_DATA_FUNCTIONS_______ = function(){}\n\n\t\n\t/**\n\t * handle scroll top, return if scroll mode or not\n\t */\n\tthis.handleScrollTop = function(storedEventID){\n\t\t\n\t\tif(t.isTouchDevice() == false)\n\t\t\treturn(null);\n\t\t\n\t\tvar objData = t.getStoredEventData(storedEventID);\n\t\t\n\t\tvar horPass = 15;\n\t\tvar vertPass = 15;\n\t\t\n\t\t//check if need to set some movement\n\t\tif(objData.scrollDir === null){\n\t\t\t\n\t\t\tif(Math.abs(objData.diffMouseX) > horPass)\n\t\t\t\tobjData.scrollDir = \"hor\";\n\t\t\telse\n\t\t\t\tif(Math.abs(objData.diffMouseY) > vertPass && Math.abs(objData.diffMouseY) > Math.abs(objData.diffMouseX) ){\n\t\t\t\t\tobjData.scrollDir = \"vert\";\n\t\t\t\t\tobjData.scrollStartY = objData.lastMouseClientY;\n\t\t\t\t\tobjData.scrollOrigin = jQuery(document).scrollTop();\n\t\t\t\t\t\n\t\t\t\t\tg_temp.dataCache[storedEventID].scrollStartY = objData.lastMouseClientY;\n\t\t\t\t\tg_temp.dataCache[storedEventID].scrollOrigin = objData.scrollOrigin;\n\t\t\t\t}\n\t\t\t\n\t\t\t//update scrollDir\n\t\t\tg_temp.dataCache[storedEventID].scrollDir = objData.scrollDir;\n\t\t}\n\t\t\t\t\n\t\tif(objData.scrollDir !== \"vert\")\n\t\t\treturn(objData.scrollDir);\n\t\t\n\t\t\n\t\tvar currentScroll = jQuery(document).scrollTop();\n\t\t\n\t\tvar scrollPos = objData.scrollOrigin - (objData.lastMouseClientY - objData.scrollStartY);\n\t\t\n\t\tif(scrollPos >= 0)\n\t\t\tjQuery(document).scrollTop(scrollPos);\n\t\t\n\t\treturn(objData.scrollDir);\n\t}\n\n\t\n\t/**\n\t * return true / false if was vertical scrolling\n\t */\n\tthis.wasVerticalScroll = function(storedEventID){\n\t\tvar objData = t.getStoredEventData(storedEventID);\n\t\t\n\t\tif(objData.scrollDir === \"vert\")\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * store event data\n\t */\n\tthis.storeEventData = function(event, id, addData){\n\t\t\t\t\n\t\tvar mousePos = t.getMousePosition(event);\n\t\tvar time = jQuery.now();\n\t\t\n\t\tvar obj = {\n\t\t\t\tstartTime: time,\n\t\t\t\tlastTime: time,\n\t\t\t\tstartMouseX: mousePos.pageX,\n\t\t\t\tstartMouseY: mousePos.pageY,\n\t\t\t\tlastMouseX: mousePos.pageX,\n\t\t\t\tlastMouseY: mousePos.pageY,\n\t\t\t\t\n\t\t\t\tstartMouseClientY: mousePos.clientY,\n\t\t\t\tlastMouseClientY: mousePos.clientY,\n\t\t\t\t\n\t\t\t\tscrollTop: jQuery(document).scrollTop(),\n\t\t\t\tscrollDir: null\n\t\t};\n\t\t\n\t\tif(addData)\n\t\t\tobj = jQuery.extend(obj, addData);\n\t\t\n\t\tg_temp.dataCache[id] = obj;\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * update event data with last position\n\t */\n\tthis.updateStoredEventData = function(event, id, addData){\n\t\t\n\t\tif(!g_temp.dataCache[id])\n\t\t\tthrow new Error(\"updateEventData error: must have stored cache object\");\n\t\t\n\t\tvar obj = g_temp.dataCache[id];\n\t\t\n\t\tvar mousePos = t.getMousePosition(event);\n\t\tobj.lastTime = jQuery.now();\n\t\t\n\t\tif(mousePos.pageX !== undefined){\n\t\t\tobj.lastMouseX = mousePos.pageX;\n\t\t\tobj.lastMouseY = mousePos.pageY;\n\t\t\tobj.lastMouseClientY = mousePos.clientY;\n\t\t}\n\t\t\n\t\tif(addData)\n\t\t\tobj = jQuery.extend(obj, addData);\n\t\t\n\t\tg_temp.dataCache[id] = obj;\n\t}\n\t\n\t/**\n\t * get stored event data\n\t */\n\tthis.getStoredEventData = function(id, isVertical){\n\t\tif(!g_temp.dataCache[id])\n\t\t\tthrow new Error(\"updateEventData error: must have stored cache object\");\n\t\t\n\t\tvar obj = g_temp.dataCache[id];\n\t\t\n\t\tobj.diffMouseX = obj.lastMouseX - obj.startMouseX;\n\t\tobj.diffMouseY = obj.lastMouseY - obj.startMouseY;\n\t\t\n\t\tobj.diffMouseClientY = obj.lastMouseClientY - obj.startMouseClientY;\n\t\t\n\t\tobj.diffTime = obj.lastTime - obj.startTime;\n\t\t\n\t\t//get mouse position according orientation\n\t\tif(isVertical === true){\n\t\t\tobj.startMousePos = obj.lastMouseY;\n\t\t\tobj.lastMousePos = obj.lastMouseY;\n\t\t\tobj.diffMousePos = obj.diffMouseY;\n\t\t}else{\n\t\t\tobj.startMousePos = obj.lastMouseX;\n\t\t\tobj.lastMousePos = obj.lastMouseX;\n\t\t\tobj.diffMousePos = obj.diffMouseX;\t\t\t\n\t\t}\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t/**\n\t * return if click event approved according the done motion\n\t */\n\tthis.isApproveStoredEventClick = function(id, isVertical){\n\t\t\n\t\tif(!g_temp.dataCache[id])\n\t\t\treturn(true);\n\t\t\n\t\tvar objData = t.getStoredEventData(id, isVertical);\n\t\t\n\t\tvar passedDistanceAbs = Math.abs(objData.diffMousePos);\n\t\t\n\t\tif(objData.diffTime > 400)\n\t\t\treturn(false);\n\t\t\n\t\tif(passedDistanceAbs > 30)\n\t\t\treturn(false);\n\t\t\n\t\treturn(true);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * clear stored event data\n\t */\n\tthis.clearStoredEventData = function(id){\n\t\tg_temp.dataCache[id] = null;\n\t}\n\n\tthis.z_________CHECK_SUPPORT_FUNCTIONS_______ = function(){}\n\t\n\t\n\t\n\t/**\n\t * is canvas exists in the browser\n\t */\n\tthis.isCanvasExists = function(){\n\t\t\n\t\tvar canvas = jQuery(' ')[0];\n\t\t\n\t\tif(typeof canvas.getContext == \"function\")\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * tells if vertical scrollbar exists\n\t */\n\tthis.isScrollbarExists = function(){\n\t\tvar hasScrollbar = window.innerWidth > document.documentElement.clientWidth;\n\t\treturn(hasScrollbar);\n\t}\n\t\n\t/**\n\t * check if this device are touch enabled\n\t */\n\tthis.isTouchDevice = function(){\n\t\t\n\t\t //get from cache\n\t\t if(g_temp.isTouchDevice !== -1)\n\t\t\t return(g_temp.isTouchDevice);\n\t\t \n\t\t try{ \n\t\t\t document.createEvent(\"TouchEvent\"); \n\t\t\t g_temp.isTouchDevice = true; \n\t\t }\n\t\t catch(e){ \n\t\t\t g_temp.isTouchDevice = false; \n\t\t }\n\t\t \n\t\t return(g_temp.isTouchDevice);\n\t}\n\t\n\t\n\t\n\t/**\n\t * check if \n\t */\n\tthis.isRgbaSupported = function(){\n\t\t\n\t\tif(g_temp.isRgbaSupported !== -1)\n\t\t\treturn(g_temp.isRgbaSupported);\n\t\t\n\t\tvar scriptElement = document.getElementsByTagName('script')[0];\n\t\tvar prevColor = scriptElement.style.color;\n\t\ttry {\n\t\t\tscriptElement.style.color = 'rgba(1,5,13,0.44)';\n\t\t} catch(e) {}\n\t\tvar result = scriptElement.style.color != prevColor;\n\t\tscriptElement.style.color = prevColor;\n\t\t\n\t\tg_temp.isRgbaSupported = result;\n\t\t\n\t\treturn result;\n\t}\n\t\n\tthis.z_________GENERAL_FUNCTIONS_______ = function(){}\n\t\n\t\n\t/**\n\t * check if current jquery version is more then minimal version\n\t * version can be \"1.8.0\" for example\n\t */\n\tthis.checkMinJqueryVersion = function(version){\n\n\t var arrCurrent = jQuery.fn.jquery.split('.');\n var arrMin = version.split('.');\n\t \n\t for (var i=0, len=arrCurrent.length; i numCurrent)\n\t \t return(false);\n\t \n\t if(numCurrent > numMin)\n\t \t return(true);\n\t }\n\t \n\t \n\t //if all equal then all ok\n\t return true;\n\t}\n\n\t\n\t/**\n\t * get css size parameter, like width. if % given, leave it, if number without px - add px.\n\t */\n\tthis.getCssSizeParam = function(sizeParam){\n\t\tif(jQuery.isNumeric(sizeParam))\n\t\t\treturn(sizeParam + \"px\");\n\t\t\t\n\t\treturn(sizeParam);\n\t}\n\t\n\t/**\n\t * convert hex color to rgb color\n\t */\n\tthis.convertHexToRGB = function(hexInput, opacity){\n\t \n\t\tvar hex = hexInput.replace('#','');\n\t if(hex === hexInput)\n\t \treturn(hexInput);\n\t \n\t r = parseInt(hex.substring(0,2), 16);\n\t g = parseInt(hex.substring(2,4), 16);\n\t b = parseInt(hex.substring(4,6), 16);\n\t result = 'rgba('+r+','+g+','+b+','+opacity+')';\n\t return result;\n\t}\t\n\t\n\t/**\n\t * get timestamp to string\n\t */\n\tthis.timestampToString = function(stamp){\n\t\t\n\t\tvar d = new Date(stamp);\n\t\tvar str = d.getDate() + \"/\" + d.getMonth();\n\t\tstr += \" \" + d.getHours() + \":\" + d.getMinutes() + \":\" + d.getSeconds() + \":\" + d.getMilliseconds();\n\t\t\n\t\treturn(str);\n\t}\n\t\n\t/**\n\t * get touches array (if exists) from the event\n\t */\n\tthis.getArrTouches = function(event){\n\t\t\n\t\tvar arrTouches = [];\n\t\t\t\t\n\t\tif(event.originalEvent && event.originalEvent.touches && event.originalEvent.touches.length > 0){\t\t\t\n\t\t\tarrTouches = event.originalEvent.touches;\n\t\t}\n\t\t\n\t\treturn(arrTouches);\n\t}\n\t\n\t/**\n\t * extract touch positions from arrTouches\n\t */\n\tthis.getArrTouchPositions = function(arrTouches){\n\t\t\n\t\tvar arrOutput = [];\n\t\t\n\t\tfor(var i=0;i g_temp.touchThreshold)\n\t\t\t\t\treturn(true);\n\t\t\t\t\n\t\t\t\tobjElement.trigger(\"tap\");\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * load javascript dynamically\n\t */\n\tthis.loadJs = function(url, addProtocol){\n\t\t\n\t\tif(addProtocol === true)\n\t\t\turl = location.protocol + \"//\" + url;\n\t\t\n\t\tvar tag = document.createElement('script');\n\t\ttag.src = url;\n\t\tvar firstScriptTag = document.getElementsByTagName('script')[0];\n\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\t\t\n\t}\n\t\n\t/**\n\t * load css dymanically\n\t */\n\tthis.loadCss = function(url, addProtocol){\n\t\tif(addProtocol === true)\n\t\t\turl = location.protocol + \"//\" + url;\n\t\t\n\t\tvar tag=document.createElement(\"link\");\n\t\t tag.setAttribute(\"rel\", \"stylesheet\");\n\t\t tag.setAttribute(\"type\", \"text/css\");\n\t\t tag.setAttribute(\"href\", url);\n\t\t \n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(tag);\n\t}\n\t\n\t/**\n\t * add event listener with old browsers fallback\n\t */\n\t this.addEvent = function(elem, event, func ) {\n\t\t \n\t\t if (typeof (elem.addEventListener) != \"undefined\") {\n\t\t\t elem.addEventListener(event, func, false);\n\t\t } else if (elem.attachEvent) {\n\t\t \telem.attachEvent('on' + event, func);\n\t\t }\n\t\t \n\t }\n\n\n\n\n\t/**\n\t * fire event where all images are loaded\n\t */\n\tthis.checkImagesLoaded = function(objImages, onComplete, onProgress){\n\t\t\n\t\tvar arrImages = [];\n\t\tvar counter = 0;\n\t\tvar numImages = objImages.length;\n\t\t\n\t\t//if no images - exit\n\t\tif(numImages == 0 && onComplete){\n\t\t\tonComplete();\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\t//nested function\n\t\tfunction checkComplete(image, isError){\n\t\t\tcounter++;\n\t\t\t\t\t\t\n\t\t\tif(typeof onProgress == \"function\"){\n\t\t\t\t\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\tonProgress(image, isError);\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tif(counter == numImages && typeof onComplete == \"function\"){\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\tonComplete();\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t}\n\n\n\t\t//start a little later\n\t\tsetTimeout(function(){\n\t\t\t\n\t\t\t//start the function\n\t\t\tfor(var index=0;index < numImages; index++){\n\t\t\t\tvar image = objImages[index];\n\t\t\t\t\n\t\t\t\t//arrImages.push(jQuery(image));\n\t\t\t\tif(image.naturalWidth !== undefined && image.naturalWidth !== 0){\n\t\t\t\t\tcheckComplete(objImages[index], false);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tvar proxyImage = jQuery('');\n\t\t\t\t\tproxyImage.data(\"index\", index);\n\t\t\t\t\t\n\t\t\t\t\tproxyImage.on(\"load\", function(){\n\t\t\t\t\t\tvar index = jQuery(this).data(\"index\");\n\t\t\t\t\t\tcheckComplete(objImages[index], false);\n\t\t\t\t\t});\n\t\t\t\t\tproxyImage.on(\"error\", function(){\n\t\t\t\t\t\tvar index = jQuery(this).data(\"index\");\n\t\t\t\t\t\tcheckComplete(objImages[index], true);\n\t\t\t\t\t});\n\t\t\t\t\tproxyImage.attr(\"src\", image.src);\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * run the function when the element size will be not 0\n\t */\n\tthis.waitForWidth = function(element, func){\n\t\tvar width = element.width();\n\t\tif(width != 0){\n\t\t\tfunc();\n\t\t\treturn(false);\n\t\t}\n\n\t\tg_temp.handle = setInterval(function(){\n\t\t\twidth = element.width();\n\t\t\tif(width != 0){\n\t\t\t\tclearInterval(g_temp.handle);\n\t\t\t\tfunc();\t\t\t\t\n\t\t\t}\n\n\t\t}, 300);\n\t\t\n\t}\n\t\n\t/**\n\t * shuffle (randomise) array\n\t */\n\tthis.arrayShuffle = function(arr){\n\t\t\n\t\tif(typeof arr != \"object\")\n\t\t\treturn(arr);\n\t\t\t\n\t for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);\n\t return arr;\n\t}\n\n\t\n\t/**\n\t * get object length\n\t */\n\tthis.getObjectLength = function(object){\n\t\tvar num = 0;\n\t\tfor(var item in object)\n\t\t\tnum++;\n\t\treturn num;\n\t}\n\n\t/**\n\t * normalize the percent, return always between 0 and 1\n\t */\n\tthis.normalizePercent = function(percent){\n\t\t\n\t\tif(percent < 0)\n\t\t\tpercent = 0;\n\t\t\n\t\tif(percent > 1)\n\t\t\tpercent = 1;\n\t\t\n\t\treturn(percent);\n\t}\n\t\n\t\n\t/**\n\t * strip tags from string\n\t */\n\tthis.stripTags = function(html){\n\t\t\n\t\tvar text = html.replace(/(<([^>]+)>)/ig,\"\");\n\t\t\n\t\treturn(text);\n\t}\n\t\n\t\n\t/**\n\t * escape double slash\n\t */\n\tthis.escapeDoubleSlash = function(str){\n\t\t\n\t\treturn str.replace('\"','\\\"');\n\t}\n\t\n\t\n\t/**\n\t * html entitles\n\t */\n\tthis.htmlentitles = function(html){\n\t\tvar text = jQuery('
').text(html).html();\n\t\treturn(text);\n\t}\n\t\n\t\n\tthis.z_________END_GENERAL_FUNCTIONS_______ = function(){}\n\t\n}\n\n\n\nvar g_ugFunctions = new UGFunctions();\n\n\n/** -------------- END UgFunctions class ---------------------*/\n\n\n\n/** -------------- MouseWheel ---------------------*/\n\n!function(e){\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?module.exports=e:e(jQuery)}(function(e){function t(t){var s=t||window.event,a=h.call(arguments,1),u=0,r=0,d=0,f=0;if(t=e.event.fix(s),t.type=\"mousewheel\",\"detail\"in s&&(d=-1*s.detail),\"wheelDelta\"in s&&(d=s.wheelDelta),\"wheelDeltaY\"in s&&(d=s.wheelDeltaY),\"wheelDeltaX\"in s&&(r=-1*s.wheelDeltaX),\"axis\"in s&&s.axis===s.HORIZONTAL_AXIS&&(r=-1*d,d=0),u=0===d?r:d,\"deltaY\"in s&&(d=-1*s.deltaY,u=d),\"deltaX\"in s&&(r=s.deltaX,0===d&&(u=-1*r)),0!==d||0!==r){if(1===s.deltaMode){var c=e.data(this,\"mousewheel-line-height\");u*=c,d*=c,r*=c}else if(2===s.deltaMode){var m=e.data(this,\"mousewheel-page-height\");u*=m,d*=m,r*=m}return f=Math.max(Math.abs(d),Math.abs(r)),(!l||l>f)&&(l=f,i(s,f)&&(l/=40)),i(s,f)&&(u/=40,r/=40,d/=40),u=Math[u>=1?\"floor\":\"ceil\"](u/l),r=Math[r>=1?\"floor\":\"ceil\"](r/l),d=Math[d>=1?\"floor\":\"ceil\"](d/l),t.deltaX=r,t.deltaY=d,t.deltaFactor=l,t.deltaMode=0,a.unshift(t,u,r,d),o&&clearTimeout(o),o=setTimeout(n,200),(e.event.dispatch||e.event.handle).apply(this,a)}}function n(){l=null}function i(e,t){return r.settings.adjustOldDeltas&&\"mousewheel\"===e.type&&t%120===0}var o,l,s=[\"wheel\",\"mousewheel\",\"DOMMouseScroll\",\"MozMousePixelScroll\"],a=\"onwheel\"in document||document.documentMode>=9?[\"wheel\"]:[\"mousewheel\",\"DomMouseScroll\",\"MozMousePixelScroll\"],h=Array.prototype.slice;if(e.event.fixHooks)for(var u=s.length;u;)e.event.fixHooks[s[--u]]=e.event.mouseHooks;var r=e.event.special.mousewheel={version:\"3.1.9\",setup:function(){if(this.addEventListener)for(var n=a.length;n;)this.addEventListener(a[--n],t,!1);else this.onmousewheel=t;e.data(this,\"mousewheel-line-height\",r.getLineHeight(this)),e.data(this,\"mousewheel-page-height\",r.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=a.length;e;)this.removeEventListener(a[--e],t,!1);else this.onmousewheel=null},getLineHeight:function(t){return parseInt(e(t)[\"offsetParent\"in e.fn?\"offsetParent\":\"parent\"]().css(\"fontSize\"),10)},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0}};e.fn.extend({mousewheel:function(e){return e?this.bind(\"mousewheel\",e):this.trigger(\"mousewheel\")},unmousewheel:function(e){return this.unbind(\"mousewheel\",e)}})});\n\n/** -------------- EASING FUNCTIONS ---------------------*/\n\n(function(factory){if(typeof define===\"function\"&&define.amd){define([\"jquery\"],function($){return factory($)})}else if(typeof module===\"object\"&&typeof module.exports===\"object\"){exports=factory(require(\"jquery\"))}else{factory(jQuery)}})(function($){$.easing[\"jswing\"]=$.easing[\"swing\"];var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:\"easeOutQuad\",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});\n\n/** -------------- JQuery Color Animations ---------------------*/\n\n!function(r,n){\n\tif(typeof r.cssHooks == \"undefined\")\t\t//error protection\n\t\treturn(false);\n\tfunction t(r,n,t){var e=f[n.type]||{};return null==r?t||!n.def?null:n.def:(r=e.floor?~~r:parseFloat(r),isNaN(r)?n.def:e.mod?(r+e.mod)%e.mod:0>r?0:e.max6*t?r+(n-r)*t*6:1>2*t?n:2>3*t?r+(n-r)*(2/3-t)*6:r}var a,s=\"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",i=/^([\\-+])=\\s*(\\d+\\.?\\d*)/,u=[{re:/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(r){return[r[1],r[2],r[3],r[4]]}},{re:/rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(r){return[2.55*r[1],2.55*r[2],2.55*r[3],r[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(r){return[parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(r){return[parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)]}},{re:/hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,space:\"hsla\",parse:function(r){return[r[1],r[2]/100,r[3]/100,r[4]]}}],l=r.Color=function(n,t,e,o){return new r.Color.fn.parse(n,t,e,o)},c={rgba:{props:{red:{idx:0,type:\"byte\"},green:{idx:1,type:\"byte\"},blue:{idx:2,type:\"byte\"}}},hsla:{props:{hue:{idx:0,type:\"degrees\"},saturation:{idx:1,type:\"percent\"},lightness:{idx:2,type:\"percent\"}}}},f={\"byte\":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},p=l.support={},d=r(\"

\")[0],h=r.each;d.style.cssText=\"background-color:rgba(1,1,1,.5)\",p.rgba=d.style.backgroundColor.indexOf(\"rgba\")>-1,h(c,function(r,n){n.cache=\"_\"+r,n.props.alpha={idx:3,type:\"percent\",def:1}}),l.fn=r.extend(l.prototype,{parse:function(o,s,i,u){if(o===n)return this._rgba=[null,null,null,null],this;(o.jquery||o.nodeType)&&(o=r(o).css(s),s=n);var f=this,p=r.type(o),d=this._rgba=[];return s!==n&&(o=[o,s,i,u],p=\"array\"),\"string\"===p?this.parse(e(o)||a._default):\"array\"===p?(h(c.rgba.props,function(r,n){d[n.idx]=t(o[n.idx],n)}),this):\"object\"===p?(o instanceof l?h(c,function(r,n){o[n.cache]&&(f[n.cache]=o[n.cache].slice())}):h(c,function(n,e){var a=e.cache;h(e.props,function(r,n){if(!f[a]&&e.to){if(\"alpha\"===r||null==o[r])return;f[a]=e.to(f._rgba)}f[a][n.idx]=t(o[r],n,!0)}),f[a]&&r.inArray(null,f[a].slice(0,3))<0&&(f[a][3]=1,e.from&&(f._rgba=e.from(f[a])))}),this):void 0},is:function(r){var n=l(r),t=!0,e=this;return h(c,function(r,o){var a,s=n[o.cache];return s&&(a=e[o.cache]||o.to&&o.to(e._rgba)||[],h(o.props,function(r,n){return null!=s[n.idx]?t=s[n.idx]===a[n.idx]:void 0})),t}),t},_space:function(){var r=[],n=this;return h(c,function(t,e){n[e.cache]&&r.push(t)}),r.pop()},transition:function(r,n){var e=l(r),o=e._space(),a=c[o],s=0===this.alpha()?l(\"transparent\"):this,i=s[a.cache]||a.to(s._rgba),u=i.slice();return e=e[a.cache],h(a.props,function(r,o){var a=o.idx,s=i[a],l=e[a],c=f[o.type]||{};null!==l&&(null===s?u[a]=l:(c.mod&&(l-s>c.mod/2?s+=c.mod:s-l>c.mod/2&&(s-=c.mod)),u[a]=t((l-s)*n+s,o)))}),this[o](u)},blend:function(n){if(1===this._rgba[3])return this;var t=this._rgba.slice(),e=t.pop(),o=l(n)._rgba;return l(r.map(t,function(r,n){return(1-e)*o[n]+e*r}))},toRgbaString:function(){var n=\"rgba(\",t=r.map(this._rgba,function(r,n){return null==r?n>2?1:0:r});return 1===t[3]&&(t.pop(),n=\"rgb(\"),n+t.join()+\")\"},toHslaString:function(){var n=\"hsla(\",t=r.map(this.hsla(),function(r,n){return null==r&&(r=n>2?1:0),n&&3>n&&(r=Math.round(100*r)+\"%\"),r});return 1===t[3]&&(t.pop(),n=\"hsl(\"),n+t.join()+\")\"},toHexString:function(n){var t=this._rgba.slice(),e=t.pop();return n&&t.push(~~(255*e)),\"#\"+r.map(t,function(r){return r=(r||0).toString(16),1===r.length?\"0\"+r:r}).join(\"\")},toString:function(){return 0===this._rgba[3]?\"transparent\":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(r){if(null==r[0]||null==r[1]||null==r[2])return[null,null,null,r[3]];var n,t,e=r[0]/255,o=r[1]/255,a=r[2]/255,s=r[3],i=Math.max(e,o,a),u=Math.min(e,o,a),l=i-u,c=i+u,f=.5*c;return n=u===i?0:e===i?60*(o-a)/l+360:o===i?60*(a-e)/l+120:60*(e-o)/l+240,t=0===l?0:.5>=f?l/c:l/(2-c),[Math.round(n)%360,t,f,null==s?1:s]},c.hsla.from=function(r){if(null==r[0]||null==r[1]||null==r[2])return[null,null,null,r[3]];var n=r[0]/360,t=r[1],e=r[2],a=r[3],s=.5>=e?e*(1+t):e+t-e*t,i=2*e-s;return[Math.round(255*o(i,s,n+1/3)),Math.round(255*o(i,s,n)),Math.round(255*o(i,s,n-1/3)),a]},h(c,function(e,o){var a=o.props,s=o.cache,u=o.to,c=o.from;l.fn[e]=function(e){if(u&&!this[s]&&(this[s]=u(this._rgba)),e===n)return this[s].slice();var o,i=r.type(e),f=\"array\"===i||\"object\"===i?e:arguments,p=this[s].slice();return h(a,function(r,n){var e=f[\"object\"===i?r:n.idx];null==e&&(e=p[n.idx]),p[n.idx]=t(e,n)}),c?(o=l(c(p)),o[s]=p,o):l(p)},h(a,function(n,t){l.fn[n]||(l.fn[n]=function(o){var a,s=r.type(o),u=\"alpha\"===n?this._hsla?\"hsla\":\"rgba\":e,l=this[u](),c=l[t.idx];return\"undefined\"===s?c:(\"function\"===s&&(o=o.call(this,c),s=r.type(o)),null==o&&t.empty?this:(\"string\"===s&&(a=i.exec(o),a&&(o=c+parseFloat(a[2])*(\"+\"===a[1]?1:-1))),l[t.idx]=o,this[u](l)))})})}),l.hook=function(n){var t=n.split(\" \");h(t,function(n,t){r.cssHooks[t]={set:function(n,o){var a,s,i=\"\";if(\"transparent\"!==o&&(\"string\"!==r.type(o)||(a=e(o)))){if(o=l(a||o),!p.rgba&&1!==o._rgba[3]){for(s=\"backgroundColor\"===t?n.parentNode:n;(\"\"===i||\"transparent\"===i)&&s&&s.style;)try{i=r.css(s,\"backgroundColor\"),s=s.parentNode}catch(u){}o=o.blend(i&&\"transparent\"!==i?i:\"_default\")}o=o.toRgbaString()}try{n.style[t]=o}catch(u){}}},r.fx.step[t]=function(n){n.colorInit||(n.start=l(n.elem,t),n.end=l(n.end),n.colorInit=!0),r.cssHooks[t].set(n.elem,n.start.transition(n.end,n.pos))}})},l.hook(s),r.cssHooks.borderColor={expand:function(r){var n={};return h([\"Top\",\"Right\",\"Bottom\",\"Left\"],function(t,e){n[\"border\"+e+\"Color\"]=r}),n}},a=r.Color.names={aqua:\"#00ffff\",black:\"#000000\",blue:\"#0000ff\",fuchsia:\"#ff00ff\",gray:\"#808080\",green:\"#008000\",lime:\"#00ff00\",maroon:\"#800000\",navy:\"#000080\",olive:\"#808000\",purple:\"#800080\",red:\"#ff0000\",silver:\"#c0c0c0\",teal:\"#008080\",white:\"#ffffff\",yellow:\"#ffff00\",transparent:[null,null,null,0],_default:\"#ffffff\"}}(jQuery);\n\n\n/** -------------- SOME GENERAL FUNCTIONS ---------------------*/\n\n/**\n * ismouseover function - check if the mouse over some object\n */\n!function(t){function e(){try{var i=this===document?t(this):t(this).contents();}catch(error){return(false);}i.mousemove(function(e){t.mlp={x:e.pageX,y:e.pageY}}),i.find(\"iframe\").on(\"load\",e)}t.mlp={x:0,y:0},t(e),t.fn.ismouseover=function(){var e=!1;return this.eq(0).each(function(){var i=t(this).is(\"iframe\")?t(this).contents().find(\"body\"):t(this),n=i.offset();e=n.left<=t.mlp.x&&n.left+i.outerWidth()>t.mlp.x&&n.top<=t.mlp.y&&n.top+i.outerHeight()>t.mlp.y}),e}}(jQuery);\n\n\n\nfunction UGThumbsGeneral(){\n\t\n\tvar t = this, g_objThis = jQuery(t);\n\t\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper; \n\tvar g_arrItems, g_objStrip, g_objParent;\n\tvar g_functions = new UGFunctions();\n\tvar g_strip;\n\tvar outer_options;\n\t\n\tthis.type = {\n\t\t\tGET_THUMBS_ALL: \"all\",\n\t\t\tGET_THUMBS_RATIO: \"ratio\",\n\t\t\tGET_THUMBS_NO_RATIO: \"no_ratio\",\n\t\t\tGET_THUMBS_NEW:\"new\"\n\t};\n\t\n\tthis.events = {\t\t\n\t\tSETOVERSTYLE: \"thumbmouseover\",\n\t\tSETNORMALSTYLE: \"thumbmouseout\",\n\t\tSETSELECTEDSTYLE: \"thumbsetselected\",\n\t\t\n\t\tPLACEIMAGE: \"thumbplaceimage\",\n\t\tAFTERPLACEIMAGE: \"thumb_after_place_image\",\n\t\tIMAGELOADERROR: \"thumbimageloaderror\",\n\t\tTHUMB_IMAGE_LOADED: \"thumb_image_loaded\"\n\t};\n\t\n\tvar g_options = {\n\t\t\tthumb_width:88,\t\t\t\t\t\t\t\t//thumb width\n\t\t\tthumb_height:50,\t\t\t\t\t\t\t//thumb height\n\t\t\tthumb_fixed_size: true,\t\t\t\t\t\t//true,false - fixed/dynamic thumbnail width\n\t\t\tthumb_resize_by: \"height\",\t\t\t\t\t//set resize by width or height of the image in case of non fixed size, \n\t\t\t\n\t\t\tthumb_border_effect:true,\t\t\t\t\t//true, false - specify if the thumb has border\n\t\t\tthumb_border_width: 0,\t\t\t\t\t\t//thumb border width\n\t\t\tthumb_border_color: \"#000000\",\t\t\t\t//thumb border color\n\t\t\tthumb_over_border_width: 0,\t\t\t\t\t//thumb border width in mouseover state\n\t\t\tthumb_over_border_color: \"#d9d9d9\",\t\t\t//thumb border color in mouseover state\n\t\t\tthumb_selected_border_width: 1,\t\t\t\t//thumb width in selected state\n\t\t\tthumb_selected_border_color: \"#d9d9d9\",\t\t//thumb border color in selected state\n\t\t\t\n\t\t\tthumb_round_corners_radius:0,\t\t\t\t//thumb border radius\n\t\t\t\n\t\t\tthumb_color_overlay_effect: true,\t\t\t//true,false - thumb color overlay effect, release the overlay on mouseover and selected states\n\t\t\tthumb_overlay_color: \"#000000\",\t\t\t\t//thumb overlay color\n\t\t\tthumb_overlay_opacity: 0.4,\t\t\t\t\t//thumb overlay color opacity\n\t\t\tthumb_overlay_reverse:false,\t\t\t\t//true,false - reverse the overlay, will be shown on selected state only\n\t\t\t\n\t\t\tthumb_image_overlay_effect: false,\t\t\t//true,false - images orverlay effect on normal state only\n\t\t\tthumb_image_overlay_type: \"bw\",\t\t\t\t//bw , blur, sepia - the type of image effect overlay, black and white, sepia and blur.\n\t\t\t\n\t\t\tthumb_transition_duration: 200,\t\t\t\t//thumb effect transition duration\n\t\t\tthumb_transition_easing: \"easeOutQuad\",\t\t//thumb effect transition easing\n\t\t\t\n\t\t\tthumb_show_loader: true,\t\t\t\t\t//show thumb loader while loading the thumb\n\t\t\tthumb_loader_type: \"dark\",\t\t\t\t\t//dark, light - thumb loader type\n\t\t\t\n\t\t\tthumb_wrapper_as_link: false,\t\t\t\t//set thumb as link\n\t\t\tthumb_link_newpage: false\t\t\t\t\t//set the link to open newpage\n\t\t}\n\t\n\t\tvar g_temp = {\n\t\t\ttouchEnabled: false,\n\t\t\tnum_thumbs_checking:0,\n\t\t\tcustomThumbs:false,\n\t\t\tfuncSetCustomThumbHtml:null,\n\t\t\tisEffectBorder: false,\n\t\t\tisEffectOverlay: false,\n\t\t\tisEffectImage: false,\n\t\t\tcolorOverlayOpacity: 1,\n\t\t\tthumbInnerReduce: 0,\n\t\t\tallowOnResize: true,\t\t//allow onresize event\n\t\t\tclassNewThumb: \"ug-new-thumb\"\n\t\t};\n\t\t\n\t\n\t\tvar g_serviceParams = {\t\t\t//service variables\t\n\t\t\ttimeout_thumb_check:100,\n\t\t\tthumb_max_check_times:600,\t//60 seconds\n\t\t\teventSizeChange: \"thumb_size_change\"\n\t\t};\n\n\t\t/**\n\t\t * init the thumbs object\n\t\t */\n\t\tthis.init = function(gallery, customOptions){\n\t\t\tg_objects = gallery.getObjects();\n\t\t\tg_gallery = gallery;\n\t\t\tg_objGallery = jQuery(gallery);\n\t\t\tg_objWrapper = g_objects.g_objWrapper;\n\t\t\tg_arrItems = g_objects.g_arrItems;\n\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\n\n\t\t\t//set effects vars:\n\t\t\tg_temp.isEffectBorder = g_options.thumb_border_effect;\n\t\t\tg_temp.isEffectOverlay = g_options.thumb_color_overlay_effect;\n\t\t\tg_temp.isEffectImage = g_options.thumb_image_overlay_effect;\n\t\t\n\t\t}\n\t\t\n\t\tthis._____________EXTERNAL_SETTERS__________ = function(){};\n\t\t\n\t\t\n\t\t/**\n\t\t * append html from item\n\t\t */\n\t\tfunction appendHtmlThumbFromItem(itemIndex, imageEffectClass){\n\t\t\t\n\t\t\tvar objItem = g_arrItems[itemIndex];\n\t\t\t \n\t\t\t var classAddition = \"\";\n\t\t\t if(g_temp.customThumbs == false)\n\t\t\t\t classAddition = \" ug-thumb-generated\";\n\t\t\t\n\t\t\tvar zIndex = objItem.index + 1;\n\t\t\tvar thumbStyle = \"style='z-index:\"+zIndex+\";'\";\n\t\t\t\n\t\t \tvar htmlThumb = \"

\";\n\n\t\t\t if(g_options.thumb_wrapper_as_link == true){\n\t\t\t\t var urlLink = objItem.link;\n\t\t\t\t if(objItem.link == \"\")\n\t\t\t\t\t urlLink = \"javascript:void(0)\";\n\t\t\t\t\n\t\t\t\t var linkTarget = \"\";\n\t\t\t\t\tif(g_options.thumb_link_newpage == true && objItem.link)\n\t\t\t\t\t\tlinkTarget = \" target='_blank'\";\n\t\t\t\t \n\t\t\t\t var htmlThumb = \"\";\n\t\t\t }\n\t\t\t \n\t\t\t var objThumbWrapper = jQuery(htmlThumb);\n\t\t\t \n\t\t\t var objImage = objItem.objThumbImage;\n\t\t\t\n\t\t\t if(g_temp.customThumbs == false){\n\t\t\t\t \n\t\t\t\t if(g_options.thumb_show_loader == true && objImage){\n\t\t\t\t\t \n\t\t\t\t\t var loaderClass = \"ug-thumb-loader-dark\";\n\t\t\t\t\t if(g_options.thumb_loader_type == \"bright\")\n\t\t\t\t\t\t loaderClass = \"ug-thumb-loader-bright\";\n\t\t\t\t\t \n\t\t\t\t\t objThumbWrapper.append(\"
\");\n\t\t\t\t\t objThumbWrapper.append(\"\");\n\t\t\t\t }\n\t\t\t\t \t\t\t\t\t \n\t\t\t\t if(objImage){\n\t\t\t\t\t objImage.addClass(\"ug-thumb-image\");\n\t\t\t\t\t \n\t\t\t\t\t //if image overlay effects active, clone the image, and set the effects class on it\n\t\t\t\t\t if(g_options.thumb_image_overlay_effect == true){\n\t\t\t\t\t\tvar objImageOverlay = objImage.clone().appendTo(objThumbWrapper);\n\t\t\t\t\t\t\n\t\t\t\t\t\tobjImageOverlay.addClass(\"ug-thumb-image-overlay \" + imageEffectClass).removeClass(\"ug-thumb-image\");\n\t\t\t\t\t\tobjImageOverlay.fadeTo(0,0);\n\t\t\t\t\t\tobjItem.objImageOverlay = objImageOverlay;\n\t\t\t\t\t }\n\t\t\t\t\t\t\t \n\t\t\t\t\t objThumbWrapper.append(objImage);\n\t\t\t\t }\n\t\t\t\t \n\t\t\t }//end if not custom thumb\n\t\t\t \n\t\t\t if(g_temp.isEffectBorder)\n\t\t\t\t objThumbWrapper.append(\"
\");\n\t\t\t \n\t\t\t if(g_temp.isEffectOverlay)\n\t\t\t\t objThumbWrapper.append(\"
\");\n\t\t\t \n\t\t\t g_objParent.append(objThumbWrapper);\n\n\t\t\t //only custom thumbs function\n\t\t\t if(g_temp.customThumbs){\n\t\t\t\t \n\t\t\t\t g_temp.funcSetCustomThumbHtml(objThumbWrapper, objItem);\n\t\t\t\t \n\t\t\t }\n\t\t\t \n\t\t\t //add thumb wrapper object to items array\n\t\t\t g_arrItems[itemIndex].objThumbWrapper = objThumbWrapper;\n\t\t\t\n\t\t\t return(objThumbWrapper);\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * append the thumbs html to some parent\n\t\t */\n\t\tthis.setHtmlThumbs = function(objParent, isAppend){\n\t\t\t\n\t\t\tg_objParent = objParent;\n\t\t\t\n\t\t\t//set image effect class\n\t\t\tif(g_temp.isEffectImage == true){\n\t\t\t\tvar imageEffectClass = getImageEffectsClass();\n\t\t\t}\n\t\t\t\n\t\t\tif(isAppend !== true){\t\t//set all thumbs\n\t\t\t\tvar numItems = g_gallery.getNumItems();\n\t\t\t\t\n\t\t\t\t //append thumbs to strip\n\t\t\t\t for(var i=0;i= objThumbs.length || index < 0)\n\t\t\t\tthrow new Error(\"Wrong thumb index\");\n\t\t\t\n\t\t\tvar objThumb = jQuery(objThumbs[index]);\n\t\t\t\n\t\t\treturn(objThumb);\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * get all thumbs jquery object\n\t\t */\n\t\tthis.getThumbs = function(mode){\n\t\t\t\n\t\t\tvar thumbClass = \".ug-thumb-wrapper\";\n\t\t\tvar classRatio = \".ug-thumb-ratio-set\";\n\t\t\t\n\t\t\tswitch(mode){\n\t\t\t\tdefault:\n\t\t\t\tcase t.type.GET_THUMBS_ALL:\n\t\t\t\t\tvar objThumbs = g_objParent.children(thumbClass)\n\t\t\t\tbreak;\n\t\t\t\tcase t.type.GET_THUMBS_NO_RATIO:\n\t\t\t\t\tvar objThumbs = g_objParent.children(thumbClass).not(classRatio);\n\t\t\t\tbreak;\n\t\t\t\tcase t.type.GET_THUMBS_RATIO:\n\t\t\t\t\tvar objThumbs = g_objParent.children(thumbClass + classRatio);\n\t\t\t\tbreak;\n\t\t\t\tcase t.type.GET_THUMBS_NEW:\n\t\t\t\t\tvar objThumbs = g_objParent.children(\".\"+g_temp.classNewThumb);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\treturn(objThumbs);\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * get item by thumb object\n\t\t */\n\t\tthis.getItemByThumb = function(objThumb){\n\t\t\t\n\t\t\tvar index = objThumb.data(\"index\");\n\t\t\t\n\t\t\tif(index === undefined)\n\t\t\t\tindex = objThumb.index();\n\t\t\t\n\t\t\tvar arrItem = g_arrItems[index];\n\t\t\treturn(arrItem);\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * is thumb loaded\n\t\t */\n\t\tthis.isThumbLoaded = function(objThumb){\n\t\t\t\n\t\t\tvar objItem = t.getItemByThumb(objThumb);\n\t\t\t\n\t\t\treturn(objItem.isLoaded);\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * get global thumb size\n\t\t */\n\t\tthis.getGlobalThumbSize = function(){\n\t\t\t\n\t\t\tvar objSize = {\n\t\t\t\twidth:g_options.thumb_width,\n\t\t\t\theight: g_options.thumb_height\n\t\t\t};\n\t\t\t\n\t\t\treturn(objSize);\n\t\t}\n\t\t\n\t\t\n\t\tthis._____________EXTERNAL_OTHERS__________ = function(){};\n\n\n\t\t/**\n\t\t * init events\n\t\t */\n\t\tthis.initEvents = function(){\n\t\t\t\n\t\t\tvar selectorThumb = \".ug-thumb-wrapper\";\n\t\t\t\n\t\t\t//one time event\n\t\t\tif(g_temp.allowOnResize == true)\n\t\t\t\tg_objWrapper.on(g_serviceParams.eventSizeChange, onThumbSizeChange);\n\t\t\t\n\t\t\t//on image loaded event - for setting the image sizes\n\t\t\tg_objThis.on(t.events.THUMB_IMAGE_LOADED, onThumbImageLoaded);\n\t\t\t\t\t\t\t\t\t\n\t\t\t//thumbs events\t\t\t\t\t\t\n\t\t\tg_objParent.on(\"touchstart\",selectorThumb,function(){\n\t\t\t\tg_temp.touchEnabled = true;\n\t\t\t\tg_objParent.off(\"mouseenter\").off(\"mouseleave\");\n\t\t\t});\n\t\t\t\n\t\t\tg_objParent.on(\"mouseenter\",selectorThumb,function(event){\t\t\t\t\n\t\t\t\tvar objThumb = jQuery(this);\n\t\t\t\tonMouseOver(objThumb);\n\t\t\t});\n\n\t\t\tg_objParent.on(\"mouseleave\",selectorThumb,function(event){\n\t\t\t\tvar objThumb = jQuery(this);\n\t\t\t\tonMouseOut(objThumb);\n\t\t\t});\n\t\t\t\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * destroy the thumb element\n\t\t */\n\t\tthis.destroy = function(){\n\t\t\t\n\t\t\tvar selectorThumb = \".ug-thumb-wrapper\";\n\t\t\t\n\t\t\tg_objParent.off(\"touchstart\",selectorThumb);\n\t\t\tg_objWrapper.off(g_serviceParams.eventSizeChange);\n\t\t\tg_objParent.off(\"mouseenter\",selectorThumb);\n\t\t\tg_objParent.off(\"mouseleave\",selectorThumb);\n\t\t\tg_objThis.off(t.events.THUMB_IMAGE_LOADED);\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * preload thumbs images and put them into the thumbnails\n\t\t */\n\t\tthis.loadThumbsImages = function(){\n\n\t\t\tvar objImages = g_objParent.find(\".ug-thumb-image\");\n\t\t\tg_functions.checkImagesLoaded(objImages, null, function(objImage,isError){\n\t\t\t\t\n\t\t\t\tif(isError == false){\n\t\t\t\t\tonImageLoaded(objImage, true);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tvar objItem = jQuery(objImage).parent();\n\t\t\t\t\tsetItemThumbLoadedError(objItem);\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * trigger image loaded event\n\t\t */\n\t\tthis.triggerImageLoadedEvent = function(objThumb, objImage){\n\n\t\t\tg_objThis.trigger(t.events.THUMB_IMAGE_LOADED, [objThumb, objImage]);\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t/**\n\t\t * hide thumbs\n\t\t */\n\t\tthis.hideThumbs = function(){\n\t\t\t\n\t\t\tg_objParent.find(\".ug-thumb-wrapper\").hide();\n\t\t\t\n\t\t}\n\t\t\n}\n\n/**\n * thumbs class\n * addon to strip gallery\n */\nfunction UGThumbsStrip(){\n\n\tvar t = this;\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper; \n\tvar g_arrItems, g_objStrip, g_objStripInner;\n\tvar g_aviaControl, g_touchThumbsControl, g_functions = new UGFunctions();\t\n\tvar g_isVertical = false, g_thumbs = new UGThumbsGeneral();\n\tvar g_functions = new UGFunctions();\n\t\n\tvar g_options = {\n\t\tstrip_vertical_type: false,\n\t\tstrip_thumbs_align: \"left\",\t\t\t\t\t//left, center, right, top, middle, bottom - the align of the thumbs when they smaller then the strip size.\n\t\tstrip_space_between_thumbs:6,\t\t\t\t//space between thumbs\n\t\tstrip_thumb_touch_sensetivity:15, \t\t\t//from 1-100, 1 - most sensetive, 100 - most unsensetive\n\t\tstrip_scroll_to_thumb_duration:500,\t\t\t//duration of scrolling to thumb\n\t\tstrip_scroll_to_thumb_easing:\"easeOutCubic\",\t\t//easing of scrolling to thumb animation\n\t\tstrip_control_avia:true,\t\t\t\t\t//avia control - move the strip according strip moseover position\n\t\tstrip_control_touch:true,\t\t\t\t\t//touch control - move the strip by dragging it\n\t\tstrip_padding_top: 0,\t\t\t\t\t\t//add some space from the top\t\t\t\t\t\n\t\tstrip_padding_bottom: 0,\t\t\t\t\t//add some space from the bottom\n\t\tstrip_padding_left: 0,\t\t\t\t\t\t//add some space from left\n\t\tstrip_padding_right: 0\t\t\t\t\t\t//add some space from right\n\t}\n\t\n\tvar g_temp = {\n\t\tisRunOnce:false,\n\t\tis_placed:false,\n\t\tisNotFixedThumbs: false,\n\t\thandle: null\n\t};\n\t\n\tvar g_sizes = {\n\t\tstripSize:0,\t\t//set after position thumbs\n\t\tstripActiveSize:0,\t//strip size without the padding\n\t\tstripInnerSize:0,\t\n\t\tthumbSize:0,\n\t\tthumbSecondSize:0\t//size of the height and width of the strip\n\t}\n\t\n\tthis.events = {\t\t//events variables\n\t\t\tSTRIP_MOVE:\"stripmove\",\n\t\t\tINNER_SIZE_CHANGE:\"size_change\"\n\t}\t\n\t\n\t//the defaults for vertical align\n\tvar g_defaultsVertical = {\n\t\tstrip_thumbs_align: \"top\",\n\t\tthumb_resize_by: \"width\"\n\t}\n\t\n\t\n\t/**\n\t * set the thumbs strip html\n\t */\t\n\tthis.setHtml = function(objParent){\n\t\t\n\t\tif(!objParent){\n\t\t\tvar objParent = g_objWrapper;\n\t\t\tif(g_options.parent_container != null)\n\t\t\t\tobjParent = g_options.parent_container;\t\t\t\n\t\t}\n\t\t\t\t\n\t\tobjParent.append(\"
\");\t\t \n\t\tg_objStrip = objParent.children(\".ug-thumbs-strip\");\n\t\t\n\t\tg_objStripInner = g_objStrip.children(\".ug-thumbs-strip-inner\");\t\t\n\t\t\t\t\n\t\t//put the thumbs to inner strip\n\t\tg_thumbs.setHtmlThumbs(g_objStripInner);\n\t\t\n\t\t//hide thumbs on not fixed mode\n\t\tif(g_temp.isNotFixedThumbs == true)\n\t\t\tg_thumbs.hideThumbs();\n\t\t\n\t}\n\n\t\n\tfunction ___________GENERAL___________(){};\n\t\n\t\n\t/**\n\t * init the strip\n\t */\n\tfunction initStrip(gallery, customOptions){\n\t\t\n\t\tg_objects = gallery.getObjects();\n\t\tg_gallery = gallery;\n\t\t\n\t\tg_gallery.attachThumbsPanel(\"strip\", t);\n\t\t\n\t\tg_objGallery = jQuery(gallery);\n\t\tg_objWrapper = g_objects.g_objWrapper;\n\t\tg_arrItems = g_objects.g_arrItems;\n\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\tg_isVertical = g_options.strip_vertical_type;\n\t\t\n\t\t//set vertical defaults\n\t\tif(g_isVertical == true){\n\t\t\tg_options = jQuery.extend(g_options, g_defaultsVertical);\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\t\n\t\t\tcustomOptions.thumb_resize_by = \"width\";\n\t\t}\n\t\t\n\t\tg_thumbs.init(gallery, customOptions);\n\t\t\n\t\tonAfterSetOptions();\n\t}\n\t\n\t\n\t/**\n\t * run this funcion after set options.\n\t */\n\tfunction onAfterSetOptions(){\n\n\t\tvar thumbsOptions = g_thumbs.getOptions();\n\t\t\n\t\tg_temp.isNotFixedThumbs = (thumbsOptions.thumb_fixed_size === false);\n\t\tg_isVertical = g_options.strip_vertical_type;\n\t}\n\t\n\t\n\t/**\n\t * run the strip\n\t */\n\tfunction runStrip(){\n\t\t\n\t\tg_thumbs.setHtmlProperties();\n\t\t\n\t\tinitSizeParams();\n\n\t\tfixSize();\n\n\t\tpositionThumbs();\n\t\t\n\t\t//run only once\n\t\tif(g_temp.isRunOnce == false){\n\n\t\t\t//init thumbs strip touch\n\t\t\tif(g_options.strip_control_touch == true){\n\t\t\t\tg_touchThumbsControl = new UGTouchThumbsControl();\n\t\t\t\tg_touchThumbsControl.init(t);\n\t\t\t}\n\n\t\t\t//init thumbs strip avia control\n\t\t\tif(g_options.strip_control_avia == true){\n\t\t\t\tg_aviaControl = new UGAviaControl();\n\t\t\t\tg_aviaControl.init(t);\n\t\t\t}\n\n\t\t\tcheckControlsEnableDisable();\n\n\t\t\tg_thumbs.loadThumbsImages();\n\t\t\t\n\t\t\tinitEvents();\n\t\t}\n\t\t\n\t\t\t\t\t\t\n\t\tg_temp.isRunOnce = true;\n\n\t}\n\t\n\t\n\t/**\n\t * store strip size and strip active size in vars\n\t * do after all strip size change\n\t */\n\tfunction storeStripSize(size){\n\t\t\n\t\tg_sizes.stripSize = size;\n\n\t\tif(g_isVertical == false)\n\t\t\tg_sizes.stripActiveSize = g_sizes.stripSize - g_options.strip_padding_left - g_options.strip_padding_right;\n\t\telse\n\t\t\tg_sizes.stripActiveSize = g_sizes.stripSize - g_options.strip_padding_top - g_options.strip_padding_bottom;\n\t\t\t\n\t\tif(g_sizes.stripActiveSize < 0)\n\t\t\tg_sizes.stripActiveSize = 0;\n\n\t}\n\t\n\t\n\t/**\n\t * init some size parameters, before size init and after position thumbs\n\t */\n\tfunction initSizeParams(){\n\t\t\n\t\t//set thumb outer size:\n\t\tvar arrThumbs = g_objStripInner.children(\".ug-thumb-wrapper\");\n\t\tvar firstThumb = jQuery(arrThumbs[0]);\n\t\tvar thumbsRealWidth = firstThumb.outerWidth();\n\t\tvar thumbsRealHeight = firstThumb.outerHeight();\n\t\tvar thumbs_options = g_thumbs.getOptions();\n\t\t\n\t\tif(g_isVertical == false){\t\t\t//horizontal\n\t\t\t\n\t\t\tg_sizes.thumbSize = thumbsRealWidth;\n\t\t\n\t\t\tif(thumbs_options.thumb_fixed_size == true){\n\t\t\t\tg_sizes.thumbSecondSize = thumbsRealHeight;\n\t\t\t} else {\n\t\t\t\tg_sizes.thumbSecondSize = thumbs_options.thumb_height;\n\t\t\t}\n\t\t\t\n\t\t\tstoreStripSize(g_objStrip.width());\n\t\t\tg_sizes.stripInnerSize = g_objStripInner.width();\n\t\t\n\t\t}else{\t\t//vertical\n\t\t\tg_sizes.thumbSize = thumbsRealHeight;\n\t\t\t\n\t\t\tif(thumbs_options.thumb_fixed_size == true){\n\t\t\t\tg_sizes.thumbSecondSize = thumbsRealWidth;\n\t\t\t} else {\n\t\t\t\tg_sizes.thumbSecondSize = thumbs_options.thumb_width;\n\t\t\t}\n\t\t\t\n\t\t\tstoreStripSize(g_objStrip.height());\n\n\t\t\tg_sizes.stripInnerSize = g_objStripInner.height();\t\t\t\n\t\t}\n\n\t\t\n\t}\n\t\n\t\n\n\t\n\t/**\n\t * set size of inner strip according the orientation\n\t */\n\tfunction setInnerStripSize(innerSize){\n\n\t\tif(g_isVertical == false)\n\t\t\tg_objStripInner.width(innerSize);\n\t\telse\n\t\t\tg_objStripInner.height(innerSize);\n\t\t\t\n\t\tg_sizes.stripInnerSize = innerSize;\n\t\t\n\t\tcheckControlsEnableDisable();\n\t\t\n\t\tjQuery(t).trigger(t.events.INNER_SIZE_CHANGE);\n\t}\n\t\n\t\n\t/**\n\t * position thumbnails in the thumbs panel\n\t */\n\tfunction positionThumbs(){\n\t\t\n\t\tvar arrThumbs = g_objStripInner.children(\".ug-thumb-wrapper\");\n\t\t\n\t\tvar posx = 0;\n\t\tvar posy = 0;\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\tposy = g_options.strip_padding_top;\n\t\t\n\t\tfor (i = 0; i < arrThumbs.length; i++) {\n\t\t\t\n\t\t\tvar objThumb = jQuery(arrThumbs[i]);\n\t\t\t\n\t\t\t//skip from placing if not loaded yet on non fixed mode\n\t\t\tif(g_temp.isNotFixedThumbs == true){\n\t\t\t\tobjItem = g_thumbs.getItemByThumb(objThumb);\n\t\t\t\tif(objItem.isLoaded == false)\n\t\t\t\t\tcontinue;\n\t\t\t\t\n\t\t\t\t//the thumb is hidden if not placed\n\t\t\t\tobjThumb.show();\n\t\t\t}\n\t\t\t\n\t\t\tg_functions.placeElement(objThumb, posx, posy);\n\t\t\t\n\t\t\tif(g_isVertical == false)\n\t\t\t\tposx += objThumb.outerWidth() + g_options.strip_space_between_thumbs;\n\t\t\telse\n\t\t\t\tposy += objThumb.outerHeight() + g_options.strip_space_between_thumbs;\n\t\t}\n\t\t\n\t\t//set strip size, width or height\n\t\tif(g_isVertical == false)\n\t\t\tvar innerStripSize = posx - g_options.strip_space_between_thumbs;\n\t\telse\n\t\t\tvar innerStripSize = posy - g_options.strip_space_between_thumbs;\n\t\t\t\n\t\tsetInnerStripSize(innerStripSize);\n\t}\n\n\t\n\t\n\t/**\n\t * fix strip and inner size\n\t */\n\tfunction fixSize(){\n\t\t\n\t\tif(g_isVertical == false){\t\t//fix horizontal\n\t\t\t\n\t\t\tvar height = g_sizes.thumbSecondSize;\n\t\t\t\n\t\t\t var objCssStrip = {};\n\t\t\t objCssStrip[\"height\"] = height+\"px\";\n\t\t\t \t\t \n\t\t\t //set inner strip params\n\t\t\t var objCssInner = {};\n\t\t\t objCssInner[\"height\"] = height+\"px\";\n\n\t\t}else{\t//fix vertical\n\t\t\t\n\t\t\tvar width = g_sizes.thumbSecondSize;\n\t\t\t\n\t\t\t var objCssStrip = {};\n\t\t\t objCssStrip[\"width\"] = width+\"px\";\n\t\t\t \t\t \n\t\t\t //set inner strip params\n\t\t\t var objCssInner = {};\n\t\t\t objCssInner[\"width\"] = width+\"px\";\n\t\t\t \n\t\t}\n\t\t \n\t\tg_objStrip.css(objCssStrip);\n\t\tg_objStripInner.css(objCssInner);\t\t\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * scroll by some number\n\t * .\n\t */\n\tfunction scrollBy(scrollStep){\n\t\t\n\t\tvar innerPos = t.getInnerStripPos();\n\t\tvar finalPos = innerPos + scrollStep;\n\t\t\n\t\tfinalPos = t.fixInnerStripLimits(finalPos);\n\t\t\n\t\tt.positionInnerStrip(finalPos, true);\t\t\n\t}\n\t\n\n\t/**\n\t * scroll to thumb from min. (left or top) position\n\t */\n\tfunction scrollToThumbMin(objThumb){\n\t\t\n\t\tvar objThumbPos = getThumbPos(objThumb);\n\t\t\n\t\tvar scrollPos = objThumbPos.min * -1;\n\t\tscrollPos = t.fixInnerStripLimits(scrollPos);\n\n\t\tt.positionInnerStrip(scrollPos, true);\n\t}\n\t\n\t\n\t/**\n\t * scroll to thumb from max. (right or bottom) position\n\t */\n\tfunction scrollToThumbMax(objThumb){\n\t\t\n\t\tvar objThumbPos = getThumbPos(objThumb);\t\t\n\t\t\n\t\tvar scrollPos = objThumbPos.max * -1 + g_sizes.stripSize;\n\t\tscrollPos = t.fixInnerStripLimits(scrollPos);\n\t\t\n\t\tt.positionInnerStrip(scrollPos, true);\n\t}\n\n\t\n\t/**\n\t * scroll to some thumbnail\n\t */\n\tfunction scrollToThumb(objThumb){\n\t\t\n\t\tif(isStripMovingEnabled() == false)\n\t\t\treturn(false);\n\t\t\n\t\tvar objBounds = getThumbsInsideBounds();\n\t\t\n\t\tvar objThumbPos = getThumbPos(objThumb);\n\t\t\n\t\tif(objThumbPos.min < objBounds.minPosThumbs){\t\t\t\n\t\t\t\n\t\t\tvar prevThumb = objThumb.prev();\n\t\t\tif(prevThumb.length)\n\t\t\t\tscrollToThumbMin(prevThumb);\n\t\t\telse \n\t\t\t\tscrollToThumbMin(objThumb);\t\t\t\t\n\t\t\t\n\t\t}else if(objThumbPos.max > objBounds.maxPosThumbs){\t\t\t\n\t\t\t\n\t\t\tvar nextThumb = objThumb.next();\n\t\t\tif(nextThumb.length)\n\t\t\t\tscrollToThumbMax(nextThumb);\n\t\t\telse\n\t\t\t\tscrollToThumbMax(objThumb);\n\t\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * scroll to selected thumb\n\t */\n\tfunction scrollToSelectedThumb(){\n\t\t\n\t\tvar selectedItem = g_gallery.getSelectedItem();\n\t\tif(selectedItem == null)\n\t\t\treturn(true);\n\t\t\n\t\tvar objThumb = selectedItem.objThumbWrapper;\n\t\tif(objThumb)\n\t\t\tscrollToThumb(objThumb);\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * check that the inner strip off the limits position, and reposition it if there is a need\n\t */\n\tfunction checkAndRepositionInnerStrip(){\n\t\tif(isStripMovingEnabled() == false)\n\t\t\treturn(false);\n\t\t\n\t\tvar pos = t.getInnerStripPos();\n\t\t\n\t\tvar posFixed = t.fixInnerStripLimits(pos);\n\t\t\t\t\n\t\tif(pos != posFixed)\n\t\t\tt.positionInnerStrip(posFixed, true);\n\t}\n\t\n\t\n\t/**\n\t * enable / disable controls according inner width (move enabled).\n\t */\n\tfunction checkControlsEnableDisable(){\n\t\t\n\t\tvar isMovingEndbled = isStripMovingEnabled();\n\t\t\n\t\tif(isMovingEndbled == true){\n\t\t\t\n\t\t\tif(g_aviaControl)\n\t\t\t\tg_aviaControl.enable();\n\t\t\t\n\t\t\tif(g_touchThumbsControl)\n\t\t\t\tg_touchThumbsControl.enable();\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(g_aviaControl)\n\t\t\t\tg_aviaControl.disable();\n\t\t\t\n\t\t\tif(g_touchThumbsControl)\n\t\t\t\tg_touchThumbsControl.disable();\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * align inner strip according the options\n\t */\n\tfunction alignInnerStrip(){\n\t\t\n\t\tif(isStripMovingEnabled())\n\t\t\treturn(false);\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\tg_functions.placeElement(g_objStripInner, g_options.strip_thumbs_align, 0);\n\t\telse\n\t\t\tg_functions.placeElement(g_objStripInner, 0, g_options.strip_thumbs_align);\n\t\t\t\n\t}\n\t\n\t\n\tfunction ___________EVENTS___________(){};\n\t\n\t/**\n\t * on thumb click event. Select the thumb\n\t */\n\tfunction onThumbClick(objThumb){\n\n\t\t//cancel click event only if passed significant movement\n\t\tif(t.isTouchMotionActive()){\n\n\t\t\tvar isSignificantPassed = g_touchThumbsControl.isSignificantPassed();\n\t\t\tif(isSignificantPassed == true)\n\t\t\t\treturn(true);\n\t\t}\n\n\t\t//run select item operation\n\t\tvar objItem = g_thumbs.getItemByThumb(objThumb);\n\n\t\tg_gallery.selectItem(objItem);\n\t}\n\t\n\t\n\t/**\n\t * on some thumb placed, run the resize, but with time passed\n\t */\n\tfunction onThumbPlaced(){\n\t\t\n\t\tclearTimeout(g_temp.handle);\n\t\t\n\t\tg_temp.handle = setTimeout(function(){\n\t\t\t\n\t\t\tpositionThumbs();\n\t\t\t\n\t\t},50);\n\t\t\t\n\t\t\n\t}\n\t\n\t/**\n\t * on item change\n\t */\n\tfunction onItemChange(){\n\n\t\tvar objItem = g_gallery.getSelectedItem();\n\t\tg_thumbs.setThumbSelected(objItem.objThumbWrapper);\n\t\tscrollToThumb(objItem.objThumbWrapper);\n\t}\n\t\n\t\n\t/**\n\t * init panel events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tg_thumbs.initEvents();\n\n\t\tvar objThumbs = g_objStrip.find(\".ug-thumb-wrapper\");\n\t\t\t\t\n\t\tobjThumbs.on(\"click touchend\", function(event){\n\t\t\t\n\t\t\tvar clickedThumb = jQuery(this);\n\t\t\tonThumbClick(clickedThumb);\n\t\t});\n\t\t\n\t\t//on item change, make the thumb selected\n\t\tg_objGallery.on(g_gallery.events.ITEM_CHANGE, onItemChange);\n\n\t\t\n\t\t//position thumbs after each load on non fixed mode\n\t\tif(g_temp.isNotFixedThumbs){\n\t\t\t\n\t\t\tjQuery(g_thumbs).on(g_thumbs.events.AFTERPLACEIMAGE, onThumbPlaced);\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the strip panel events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tvar objThumbs = g_objStrip.find(\".ug-thumb-wrapper\");\n\t\t\n\t\tobjThumbs.off(\"click\");\n\t\tobjThumbs.off(\"touchend\");\n\t\tg_objGallery.off(g_gallery.events.ITEM_CHANGE);\n\n\t\tjQuery(g_thumbs).off(g_thumbs.events.AFTERPLACEIMAGE);\n\t\t\n\t\tif(g_touchThumbsControl)\n\t\t\tg_touchThumbsControl.destroy();\n\t\t\n\t\tif(g_aviaControl)\n\t\t\tg_aviaControl.destroy();\n\t\t\n\t\tg_thumbs.destroy();\n\t}\n\t\n\t\n\tfunction ____________GETTERS___________(){};\n\t\t\n\n\t/**\n\t * check if the inner width is more then strip width\n\t */\n\tfunction isStripMovingEnabled(){\n\t\t\n\t\tif(g_sizes.stripInnerSize > g_sizes.stripActiveSize)\n\t\t\treturn(true);\n\t\telse\n\t\t\treturn(false);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get bounds, if the thumb not in them, it need to be scrolled\n\t * minPosThumbs, maxPosThumbs - the min and max position that the thumbs should be located to be visible\n\t */\n\tfunction getThumbsInsideBounds(){\n\t\tvar obj = {};\n\t\tvar innerPos = t.getInnerStripPos();\n\t\t\n\t\t//the 1 is gap that avoid exact bounds\n\t\tobj.minPosThumbs = innerPos * -1 + 1;\t\t\t\t\n\t\tobj.maxPosThumbs = innerPos * -1 + g_sizes.stripSize - 1;\t\t\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * get thumb position according the orientation in the inner strip\n\t */\n\tfunction getThumbPos(objThumb){\n\t\t\n\t\tvar objReturn = {};\n\t\t\n\t\tvar objPos = objThumb.position();\n\t\t\n\t\tif(g_isVertical == false){\n\t\t\tobjReturn.min = objPos.left;\n\t\t\tobjReturn.max = objPos.left + g_sizes.thumbSize;\n\t\t}else{\n\t\t\tobjReturn.min = objPos.top;\n\t\t\tobjReturn.max = objPos.top + g_sizes.thumbSize;\n\t\t}\n\n\t\t\n\t\treturn(objReturn);\n\t}\n\t\n\t\n\t\n\t\n\tthis.________EXTERNAL_GENERAL___________ = function(){};\n\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(gallery, customOptions){\n\t\t\n\t\tinitStrip(gallery, customOptions);\n\t}\n\t\n\t\n\t/**\n\t * set html and properties\n\t */\t\n\tthis.run = function(){\n\t\trunStrip();\n\t}\n\t\n\t\n\t\n\t\n\t/**\n\t* position inner strip on some pos according the orientation\n\t*/\n\tthis.positionInnerStrip = function(pos, isAnimate){\n\t\t\n\t\tif(isAnimate === undefined)\n\t\t\tvar isAnimate = false;\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\tvar objPosition = {\"left\": pos + \"px\"};\n\t\telse\n\t\t\tvar objPosition = {\"top\": pos + \"px\"};\n\t\t\n\t\tif(isAnimate == false){\t\t//normal position\n\t\t\t\n\t\t\tg_objStripInner.css(objPosition);\n\t\t\tt.triggerStripMoveEvent();\n\t\t}\n\t\telse{\t\t//position with animation\n\t\t\t\n\t\t\tt.triggerStripMoveEvent();\n\t\t\t\n\t\t\tg_objStripInner.stop(true).animate(objPosition ,{\n\t\t\t\tduration: g_options.strip_scroll_to_thumb_duration,\n\t\t\t\teasing: g_options.strip_scroll_to_thumb_easing,\n\t\t\t\tqueue: false,\n\t\t\t\tprogress:function(){t.triggerStripMoveEvent()},\n\t\t\t\talways: function(){t.triggerStripMoveEvent()}\n\t\t\t});\t\t\t\t\t\n\t\t\t\n\t\t}\n\t\t\n\t}\n\n\t/**\n\t * trigger event - on strip move\n\t */\n\tthis.triggerStripMoveEvent = function(){\n\t\t\n\t\t//trigger onstripmove event\n\t\tjQuery(t).trigger(t.events.STRIP_MOVE);\n\t\t\n\t}\n\t\n\t\t\n\t\n\t/**\n\t * return true if the touch animation or dragging is active\n\t */\n\tthis.isTouchMotionActive = function(){\n\t\tif(!g_touchThumbsControl)\n\t\t\treturn(false);\n\t\t\n\t\tvar isActive = g_touchThumbsControl.isTouchActive();\n\t\t\n\t\treturn(isActive);\n\t}\n\t\n\t\n\t/**\n\t * check if thmb item visible, means inside the visible part of the inner strip\n\t */\n\tthis.isItemThumbVisible = function(objItem){\n\t\t\n\t\tvar objThumb = objItem.objThumbWrapper;\n\t\tvar thumbPos = objThumb.position();\n\t\t\n\t\tvar posMin = t.getInnerStripPos() * -1;\n\t\t\n\t\tif(g_isVertical == false){\n\t\t\tvar posMax = posMin + g_sizes.stripSize;\n\t\t\tvar thumbPosMin = thumbPos.left;\n\t\t\tvar thumbPosMax = thumbPos.left + objThumb.width();\t\t\t\n\t\t}else{\n\t\t\tvar posMax = posMin + g_sizes.stripSize;\n\t\t\tvar thumbPosMin = thumbPos.top;\n\t\t\tvar thumbPosMax = thumbPos.top + objThumb.height();\t\t\t\n\t\t}\n\t\t\t\t\n\t\tvar isVisible = false;\n\t\tif(thumbPosMax >= posMin && thumbPosMin <= posMax)\n\t\t\tisVisible = true;\n\t\t\n\t\treturn(isVisible);\n\t}\n\t\n\t/**\n\t * get inner strip position according the orientation\n\t */\n\tthis.getInnerStripPos = function(){\n\t\t\n\t\tif(g_isVertical == false)\t\t\t\n\t\t\treturn g_objStripInner.position().left;\n\t\telse\n\t\t\treturn g_objStripInner.position().top;\n\t}\n\t\n\t\n\t/**\n\t * get inner strip limits\n\t */\n\tthis.getInnerStripLimits = function(){\n\t\t\n\t\tvar output = {};\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\toutput.maxPos = g_options.strip_padding_left;\n\t\telse\n\t\t\toutput.maxPos = g_options.strip_padding_top;\n\t\t\n\t\t//debugLine(g_sizes.stripActiveSize);\n\t\t\n\t\toutput.minPos = -(g_sizes.stripInnerSize - g_sizes.stripActiveSize);\n\t\t\n\t\treturn(output);\n\t}\n\n\t\n\t/**\n\t * fix inner position by check boundaries limit\n\t */\n\tthis.fixInnerStripLimits = function(distPos){\n\t\t\n\t\tvar minPos;\n\t\t\n\t\tvar objLimits = t.getInnerStripLimits();\n\t\t\n\t\tif(distPos > objLimits.maxPos)\n\t\t\tdistPos = objLimits.maxPos;\n\t\t\n\t\tif(distPos < objLimits.minPos)\n\t\t\tdistPos = objLimits.minPos;\n\t\t\n\t\treturn(distPos);\n\t}\n\t\n\t\n\t\n\t/**\n\t * scroll left or down\n\t */\n\tthis.scrollForeward = function(){\n\t\tscrollBy(-g_sizes.stripSize);\n\t}\n\t\n\t\n\t/**\n\t * scroll left or down\n\t */\n\tthis.scrollBack = function(){\n\t\t\t\t\n\t\tscrollBy(g_sizes.stripSize);\n\t}\n\t\n\t\n\tthis.________EXTERNAL_SETTERS___________ = function(){};\n\n\t\n\t/**\n\t * set the options of the strip\n\t */\n\tthis.setOptions = function(objOptions){\n\t\t\n\t\tg_options = jQuery.extend(g_options, objOptions);\n\t\t\n\t\tg_thumbs.setOptions(objOptions);\n\t\t\n\t\tonAfterSetOptions();\n\t}\n\t\n\t\n\t/**\n\t * set size of the strip\n\t * the height size is set automatically from options\n\t */\n\tthis.setSizeVertical = function(height){\n\t\t\n\t\t if(g_isVertical == false){\n\t\t\t throw new Error(\"setSizeVertical error, the strip size is not vertical\");\n\t\t\t return(false);\n\t\t }\n\t\t\n\t\t var width = g_sizes.thumbSecondSize;\n\t\t\n\t\t var objCssStrip = {};\n\t\t objCssStrip[\"width\"] = width+\"px\";\n\t\t objCssStrip[\"height\"] = height+\"px\";\n\t\t \n\t\t g_objStrip.css(objCssStrip);\n\n\t\t storeStripSize(height);\n\t\t \n\t\t //set inner strip params\n\t\t var objCssInner = {};\n\t\t objCssInner[\"width\"] = width+\"px\";\n\t\t objCssInner[\"left\"] = \"0px\";\n\t\t objCssInner[\"top\"] = \"0px\";\n\t\t \n\t\t g_objStripInner.css(objCssInner);\n\t\t \n\t\t g_temp.is_placed = true;\n\t\t \n\t\t checkControlsEnableDisable();\n\t}\n\n\t\n\t/**\n\t * set size of the strip\n\t * the height size is set automatically from options\n\t */\n\tthis.setSizeHorizontal = function(width){\n\t\t\t\t\n\t\t if(g_isVertical == true){\n\t\t\t throw new Error(\"setSizeHorizontal error, the strip size is not horizontal\");\n\t\t\t return(false);\n\t\t }\n\t\t\n\t\tvar height = g_sizes.thumbSecondSize + g_options.strip_padding_top + g_options.strip_padding_bottom;\n\t\t\n\t\tvar objCssStrip = {};\n\t\tobjCssStrip[\"width\"] = width+\"px\";\n\t\tobjCssStrip[\"height\"] = height+\"px\";\n\t\t \n\t\tg_objStrip.css(objCssStrip);\n\t\t\n\t\tstoreStripSize(width);\n\t\t\n\t\tvar innerLeft = g_options.strip_padding_left;\n\t\t\n\t\t //set inner strip params\n\t\t var objCssInner = {};\n\t\t objCssInner[\"height\"] = height+\"px\";\n\t\t objCssInner[\"left\"] = innerLeft + \"px\";\n\t\t objCssInner[\"top\"] = \"0px\";\n\t\t \n\t\t g_objStripInner.css(objCssInner);\n\t\t \n\t\t g_temp.is_placed = true;\n\t\t\n\t\t checkControlsEnableDisable();\n\t}\n\t\n\t\n\t/**\n\t * set position of the strip\n\t */\n\tthis.setPosition = function(left, top, offsetLeft, offsetTop){\n\t\tg_functions.placeElement(g_objStrip, left, top, offsetLeft, offsetTop);\t\t\n\t}\n\t\n\t\n\t/**\n\t * resize the panel according the orientation\n\t */\n\tthis.resize = function(newSize){\n\t\t\n\t\tif(g_isVertical == false){\n\t\t\t\n\t\t\tg_objStrip.width(newSize);\n\t\t\tg_sizes.stripActiveSize = newSize - g_options.strip_padding_left - g_options.strip_padding_right;\n\n\t\t}else{\n\t\t\tg_objStrip.height(newSize);\n\t\t\tg_sizes.stripActiveSize = newSize - g_options.strip_padding_top - g_options.strip_padding_bottom;\n\t\t}\n\t\t\n\t\tstoreStripSize(newSize);\n\t\t\n\t\tcheckControlsEnableDisable();\n\t\t\n\t\tcheckAndRepositionInnerStrip();\n\t\t\n\t\talignInnerStrip();\n\t\t\n\t\tscrollToSelectedThumb();\n\t}\n\t\n\t\n\t/**\n\t * set the thumb unselected state\n\t */\n\tthis.setThumbUnselected = function(objThumbWrapper){\n\t\t\n\t\tg_thumbs.setThumbUnselected(objThumbWrapper);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set custom thumbs\n\t */\n\tthis.setCustomThumbs = function(funcSetHtml){\n\t\t\n\t\tg_thumbs.setCustomThumbs(funcSetHtml);\n\t\t\n\t}\n\t\n\t\n\t\n\t\n\tthis.________EXTERNAL_GETTERS___________ = function(){};\n\t\n\t/**\n\t * get objects\n\t */\t\n\tthis.getObjects = function(){\n\t\t\n\t\tvar thumbsOptions = g_thumbs.getOptions();\n\t\tvar commonOpitions = jQuery.extend(g_options, thumbsOptions);\n\t\t\n\t\tvar obj = {\n\t\t\tg_gallery: g_gallery,\n\t\t\tg_objGallery: g_objGallery,\n\t\t\tg_objWrapper:g_objWrapper,\n\t\t\tg_arrItems:g_arrItems,\n\t\t\tg_objStrip : g_objStrip,\n\t\t\tg_objStripInner : g_objStripInner,\n\t\t\tg_aviaControl:g_aviaControl,\n\t\t\tg_touchThumbsControl:g_touchThumbsControl,\n\t\t\tisVertical: g_isVertical,\n\t\t\tg_options: commonOpitions,\n\t\t\tg_thumbs: g_thumbs\n\t\t};\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * get thumbs onject\n\t */\n\tthis.getObjThumbs = function(){\n\t\t\n\t\treturn(g_thumbs);\n\t}\n\t\n\t\n\t/**\n\t * get selected thumb\n\t */\n\tthis.getSelectedThumb = function(){\n\t\t\n\t\tvar selectedIndex = g_gallery.getSelectedItemIndex();\n\t\tif(selectedIndex == -1)\n\t\t\treturn(null);\n\t\t\n\t\treturn g_thumbs.getThumbByIndex(selectedIndex);\n\t}\n\t\n\t\n\t/**\n\t * get strip size and position object\n\t */\n\tthis.getSizeAndPosition = function(){\n\t\t\n\t\tvar obj = g_functions.getElementSize(g_objStrip);\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t/**\n\t * get thumbs strip height\n\t */\n\tthis.getHeight = function(){\n\t\t\n\t\tvar stripHeight = g_objStrip.outerHeight();\n\t\t\n\t\treturn(stripHeight)\n\t}\n\t\n\t\n\t/**\n\t * get thumbs strip width\n\t */\n\tthis.getWidth = function(){\n\t\t\n\t\tvar stripWidth = g_objStrip.outerWidth();\n\t\t\n\t\treturn(stripWidth);\n\t}\n\t\n\t\n\t\n\t/**\n\t * get all stored sizes object\n\t */\n\tthis.getSizes = function(){\n\t\t\n\t\treturn(g_sizes);\n\t}\n\t\n\t\n\t/**\n\t * return if vertical orientation or not\n\t */\n\tthis.isVertical = function(){\n\t\treturn(g_isVertical);\n\t}\n\t\n\t\n\t/**\n\t * return if the strip is placed or not\n\t */\n\tthis.isPlaced = function(){\n\t\t\n\t\treturn(g_temp.is_placed);\n\t}\n\t\n\t/**\n\t * return if the strip moving enabled or not\n\t */\n\tthis.isMoveEnabled = function(){\n\t\tvar isEnabled = isStripMovingEnabled();\n\t\treturn(isEnabled);\n\t}\n\n}\n\n\n/**\n * touch thumbs control class\n * addon to strip gallery\n */\nfunction UGTouchThumbsControl(){\n\t\n\tvar g_parent, g_gallery, g_objGallery, g_objects;\n\tvar g_objStrip, g_objStripInner, g_options, g_isVertical;\n\tvar g_functions = new UGFunctions();\n\t\n\t//service variables\t\n\tvar g_serviceParams = {\t\t\t\n\t\ttouch_portion_time:200,\t\t\t\t\t//the time in ms that the potion is counts for continue touch movement\n\t\tthumb_touch_slowFactor:0,\t\t\t\t//set from user\n\t\tminDeltaTime: 70,\t\t\t\t\t\t//don't alow portion less then the minTime\n\t\tminPath: 10,\t\t\t\t\t\t\t//if less then this path, dont' continue motion\n\t\tlimitsBreakAddition: 30,\t\t\t\t//the limits break addition for second return animation\n\t\treturnAnimateSpeed: 500,\t\t\t\t//the speed of return animation\n\t\tanimationEasing: \"easeOutCubic\",\t\t//animation easing function\n\t\treturnAnimationEasing: \"easeOutCubic\"\t//return animation easing function\n\t};\n\t\n\t\n\tvar g_temp = {\t\t\t\t\t//temp variables\n\t\ttouch_active:false,\n\t\tloop_active:false,\n\t\tmousePos:0,\n\t\tinnerPos:0,\n\t\tstartPos:0,\n\t\tstartTime:0,\t\t\n\t\tlastTime:0,\n\t\tbuttonReleaseTime:0,\n\t\tlastPos:0,\n\t\tlastPortionPos:0,\n\t\tlastDeltaTime:0,\n\t\tlastDeltaPos:0,\n\t\tspeed:0,\n\t\thandle:\"\",\n\t\ttouchEnabled: false, \n\t\tisControlEnabled: true\n\t};\n\n\n\t/**\n\t * enable the control\n\t */\n\tthis.enable = function(){\n\t\tg_temp.isControlEnabled = true;\n\t}\n\t\n\t\n\t/**\n\t * disable the control\n\t */\n\tthis.disable = function(){\n\t\tg_temp.isControlEnabled = false;\t\t\n\t}\n\t\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(objStrip){\n\t\t\n\t\tg_parent = objStrip;\n\t\tg_objects = objStrip.getObjects();\n\t\t\n\t\tg_gallery = g_objects.g_gallery;\n\t\tg_objGallery = g_objects.g_objGallery;\t//jquery object\n\t\t\t\t\n\t\tg_objStrip = g_objects.g_objStrip;\n\t\tg_objStripInner = g_objects.g_objStripInner;\n\t\tg_options = g_objects.g_options;\n\t\tg_isVertical = g_objects.isVertical;\n\t\t\n\t\tsetServiceParams();\n\t\t\n\t\tinitEvents();\n\t}\n\t\n\t/**\n\t * get action related variables\n\t */\n\tfunction getActionVars(){\n\t\t\n\t\tvar currentTime = jQuery.now();\n\n\t\tvar obj = {};\n\t\tobj.passedTime = g_temp.lastTime - g_temp.startTime;\n\t\tobj.lastActiveTime = currentTime - g_temp.buttonReleaseTime;\n\t\tobj.passedDistance = g_temp.lastPos - g_temp.startPos;\n\t\tobj.passedDistanceAbs = Math.abs(obj.passedDistance);\n\t\t\t\t\n\t\treturn(obj);\n\t}\n\t\n\t/**\n\t * return if passed some significant movement\n\t */\n\tthis.isSignificantPassed = function(){\n\t\tvar objVars = getActionVars();\n\t\tif(objVars.passedTime > 300)\n\t\t\treturn(true);\n\t\t\n\t\tif(objVars.passedDistanceAbs > 30)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\t\t\n\t}\n\t\n\t\n\t/**\n\t * return true if the touch dragging or animate motion is active\n\t */\n\tthis.isTouchActive = function(){\n\t\t\n\t\tif(g_temp.touch_active == true)\n\t\t\treturn(true);\n\t\t\t\n\t\t//check if still animating\n\t\tif(g_objStripInner.is(\":animated\") == true)\n\t\t\treturn(true);\n\t\t\n\t\t//check if just ended, the touch active continue for a few moments.\n\t\tvar objVars = getActionVars();\n\t\tif(objVars.lastActiveTime < 50) \n\t\t\treturn(true);\n\t\t\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * set service parameters from user parameters\n\t */\n\tfunction setServiceParams(){\n\t\t\t\t\n\t\t//set slow factor by sensetivity of touch motion\t\t\n\t\tg_serviceParams.thumb_touch_slowFactor = g_functions.normalizeSetting(0.00005, 0.01, 1, 100, g_options.strip_thumb_touch_sensetivity, true);\n\t\t\t\t\n\t\t//debugLine(\"slowfactor \"+ g_serviceParams.thumb_touch_slowFactor);\n\t}\n\t\n\t\n\t/**\n\t * get mouse position based on orientation\n\t */\n\tfunction getMouseOrientPosition(event){\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\treturn(g_functions.getMousePosition(event).pageX);\n\t\telse\n\t\t\treturn(g_functions.getMousePosition(event).pageY);\t\t\t\n\t}\n\t\n\t/**\n\t * position the strip according the touch drag diff\n\t */\n\tfunction handleStripDrag(mousePos){\n\t\tvar diff = g_temp.mousePos - mousePos;\n\t\tvar distPos = g_temp.innerPos - diff;\n\t\t\n\t\t//make harder to drag the limits\n\t\tvar objLimits = g_parent.getInnerStripLimits();\n\t\t\n\t\tif(distPos > objLimits.maxPos){\n\t\t\tvar path = distPos - objLimits.maxPos;\n\t\t\tdistPos = objLimits.maxPos + path/3;\t\t\t\n\t\t}\n\t\t\n\t\tif(distPos < objLimits.minPos){\n\t\t\tvar path = objLimits.minPos - distPos;\n\t\t\tdistPos = objLimits.minPos - path/3;\t\t\t\t\t\t\n\t\t}\n\t\t\n\t\tg_parent.positionInnerStrip(distPos);\n\t}\n\t\n\t\n\t/**\n\t * store initial touch values\n\t */\n\tfunction storeInitTouchValues(pagePos){\n\t\tvar currentInnerPos = g_parent.getInnerStripPos();\n\t\t\n\t\t//remember current mouse position and inner strip position\n\t\tg_temp.mousePos = pagePos;\n\t\tg_temp.innerPos = currentInnerPos;\n\t\tg_temp.lastPortionPos = currentInnerPos;\n\t\tg_temp.lastDeltaTime = 0;\n\t\tg_temp.lastDeltaPos = 0;\n\t\t\n\t\t//init position and time related variables\n\t\tg_temp.startTime = jQuery.now();\n\t\tg_temp.startPos = g_temp.innerPos;\n\t\t\n\t\tg_temp.lastTime = g_temp.startTime;\n\t\tg_temp.lastPos = g_temp.startPos;\n\t\tg_temp.speed = 0;\n\t}\n\t\n\t\n\t/**\n\t * store touch portion data\n\t */\n\tfunction storeTouchPortionData(){\n\t\t\t\t\n\t\t//calc speed\n\t\tvar currentTime = jQuery.now();\n\t\tvar deltaTime = currentTime - g_temp.lastTime;\n\t\t\n\t\tif(deltaTime >= g_serviceParams.touch_portion_time){\n\t\t\tg_temp.lastDeltaTime = currentTime - g_temp.lastTime;\n\t\t\tif(g_temp.lastDeltaTime > g_serviceParams.touch_portion_time)\n\t\t\t\tg_temp.lastDeltaTime = g_serviceParams.touch_portion_time;\n\t\t\t\t\n\t\t\tg_temp.lastDeltaPos = g_temp.lastPos - g_temp.lastPortionPos;\n\t\t\t\t\t\t\n\t\t\tg_temp.lastPortionPos = g_temp.lastPos;\n\t\t\tg_temp.lastTime = currentTime;\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * continue touch motion - touch motion ending.\n\t */\n\tfunction continueTouchMotion(){\n\t\t\t\t\n\t\tvar slowFactor = g_serviceParams.thumb_touch_slowFactor;\n\t\t\n\t\t//don't alow portion less then the minTime\n\t\tvar minDeltaTime = g_serviceParams.minDeltaTime;\n\t\t\n\t\t//if less then this path, dont' continue motion\n\t\tvar minPath = g_serviceParams.minPath;\t\n\t\t\n\t\tvar currentInnerPos = g_parent.getInnerStripPos();\n\t\t\n\t\tvar currentTime = jQuery.now();\n\t\tvar deltaTime = currentTime - g_temp.lastTime;\n\t\tvar deltaPos = currentInnerPos - g_temp.lastPortionPos;\n\t\t\n\t\t//if time too fast, take last portion values\n\t\tif(deltaTime < minDeltaTime && g_temp.lastDeltaTime > 0){\n\t\t\tdeltaTime = g_temp.lastDeltaTime;\n\t\t\tdeltaPos = g_temp.lastDeltaPos + deltaPos;\n\t\t}\n\t\t\n\t\t//fix delta time\n\t\tif(deltaTime < minDeltaTime)\n\t\t\tdeltaTime = minDeltaTime;\n\t\t\t\t\t\n\t\tvar dir = (deltaPos > 0)?1:-1;\n\t\t\n\t\tvar speed = 0;\n\t\tif(deltaTime > 0)\n\t\t\tspeed = deltaPos / deltaTime;\t\n\t\t\n\t\tvar path = (speed * speed) / (slowFactor * 2) * dir;\n\t\t\n\t\t//disable path for very slow motions\n\t\tif(Math.abs(path) <= minPath)\n\t\t\tpath = 0;\n\t\t\n\t\t\n\t\tvar innerStripPos = g_parent.getInnerStripPos();\n\t\tvar newPos = innerStripPos + path;\t\n\t\t\n\t\tvar correctPos = g_parent.fixInnerStripLimits(newPos);\n\t\tvar objLimits = g_parent.getInnerStripLimits();\n\t\t\n\t\t//check the off the limits and return (second animation)\n\t\tvar limitsBreakAddition = g_serviceParams.limitsBreakAddition;\n\t\tvar doQueue = false;\n\t\tvar returnPos = correctPos;\n\t\t\n\t\t//fix the first animation position (off the limits)\n\t\tif(newPos > objLimits.maxPos){\n\t\t\tdoQueue = true;\n\t\t\tcorrectPos = limitsBreakAddition;\n\t\t\tif(newPos < limitsBreakAddition)\n\t\t\t\tcorrectPos = newPos;\t\t\t\n\t\t}\n\t\t\t\t\n\t\tif(newPos < objLimits.minPos){\n\t\t\tdoQueue = true;\n\t\t\tvar maxStopPos = objLimits.minPos - limitsBreakAddition;\n\t\t\tcorrectPos = maxStopPos;\n\t\t\tif(newPos > maxStopPos)\n\t\t\t\tcorrectPos = newPos;\n\t\t}\n\t\t\t\t\n\t\tvar correctPath = correctPos - innerStripPos;\n\t\t\n\t\t//set animation speed\t\t\n\t\tvar animateSpeed = Math.abs(Math.round(speed / slowFactor));\n\t\t\n\t\t//fix animation speed according the paths difference\n\t\tif(path != 0)\n\t\t\tanimateSpeed = animateSpeed * correctPath / path;\t\t\n\t\t\n\t\t\n\t\t//Do first animation\n\t\tif(innerStripPos != correctPos){\n\t\t\t\n\t\t\tvar animateProps = {\"left\":correctPos+\"px\"};\n\t\t\tif(g_isVertical == true)\n\t\t\t\tanimateProps = {\"top\":correctPos+\"px\"};\t\t\n\t\t\t\n\t\t\tg_objStripInner.animate(animateProps ,{\n\t\t\t\t\tduration: animateSpeed,\n\t\t\t\t\teasing: g_serviceParams.animationEasing,\n\t\t\t\t\tqueue: true,\n\t\t\t\t\tprogress:onAnimateProgress \n\t\t\t});\n\t\t\t\t\t\t\n\t\t}\n\t\t\n\t\t\t\t\n\t\t//do second animation if off limits\n\t\tif(doQueue == true){\n\t\t\tvar returnAnimateSpeed = g_serviceParams.returnAnimateSpeed;\n\t\t\t\n\t\t\tvar returnAnimateProps = {\"left\":returnPos+\"px\"};\n\t\t\tif(g_isVertical == true)\n\t\t\t\treturnAnimateProps = {\"top\":returnPos+\"px\"};\t\t\n\t\t\t\n\t\t\t\n\t\t\tg_objStripInner.animate(returnAnimateProps,{\t\t\t\t\n\t\t\t\tduration: returnAnimateSpeed,\n\t\t\t\teasing: g_serviceParams.returnAnimationEasing,\n\t\t\t\tqueue: true,\n\t\t\t\tprogress:onAnimateProgress \n\t\t\t});\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * on animate progress event. store position and trigger event to gallery\n\t */\n\tfunction onAnimateProgress(){\n\t\tg_temp.lastPos = g_parent.getInnerStripPos();\n\t\tg_parent.triggerStripMoveEvent();\n\t}\n\t\n\t/**\n\t * start loop while touching strip\n\t */\n\tfunction startStripTouchLoop(){\n\t\t\n\t\tif(g_temp.loop_active == true)\n\t\t\treturn(true);\n\t\t\t\n\t\tg_temp.loop_active = true;\n\t\tg_temp.handle = setInterval(storeTouchPortionData,10);\n\t}\n\t\n\t\n\t/**\n\t * end loop when not touching\n\t */\n\tfunction endStripTouchLoop(event){\n\t\t\n\t\tif(g_temp.loop_active == false)\n\t\t\treturn(true);\n\t\t\n\t\tif(event){\n\t\t\tvar pagePos = getMouseOrientPosition(event);\n\t\t\tcontinueTouchMotion(pagePos);\n\t\t}\n\t\t\n\t\tg_temp.loop_active = false;\n\t\tg_temp.handle = clearInterval(g_temp.handle);\n\t}\n\t\n\t\n\t/**\n\t * on tuch end event\n\t */\n\tfunction onTouchEnd(event){\n\t\t\n\t\tif(g_temp.isControlEnabled == false)\n\t\t\treturn(true);\n\t\t\t\t\n\t\tg_temp.buttonReleaseTime = jQuery.now();\n\t\t\n\t\tif(g_temp.touch_active == false){\n\t\t\tendStripTouchLoop(event);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tevent.preventDefault();\n\t\t\t\n\t\tg_temp.touch_active = false;\n\t\t\n\t\tendStripTouchLoop(event);\n\t\t\n\t\tg_objStrip.removeClass(\"ug-dragging\");\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on touch start - start the motion\n\t * @param event\n\t */\n\tfunction onTouchStart(event){\n\t\t\n\t\tif(g_temp.isControlEnabled == false)\n\t\t\treturn(true);\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\tg_temp.touch_active = true;\t\t//don't move this up\n\t\t\n\t\tvar pagePos = getMouseOrientPosition(event);\n\t\t\t\t\t\n\t\t//stop inner animation if exist\n\t\tg_objStripInner.stop(true);\n\t\t\n\t\t//store initial touch values\n\t\tstoreInitTouchValues(pagePos);\n\t\tstartStripTouchLoop();\n\t\t\n\t\tg_objStrip.addClass(\"ug-dragging\");\n\t}\n\t\n\t\n\t/**\n\t * on touch move event, move the strip\n\t */\n\tfunction onTouchMove(event){\n\t\t\n\t\tif(g_temp.isControlEnabled == false)\n\t\t\treturn(true);\t\t\n\t\t\n\t\tif(g_temp.touch_active == false)\n\t\t\treturn(true);\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\t//detect moving without button press\n\t\tif(event.buttons == 0){\n\t\t\tg_temp.touch_active = false;\n\t\t\t\n\t\t\tendStripTouchLoop(event);\n\t\t\treturn(true);\n\t\t}\n\t\n\t\t//store current position\n\t\tvar pagePos = getMouseOrientPosition(event);\n\t\tg_temp.lastPos = g_parent.getInnerStripPos();\n\t\t\n\t\thandleStripDrag(pagePos);\n\t\t\n\t\tstoreTouchPortionData();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init strip touch events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//strip mouse down - drag start\n\t\tg_objStrip.bind(\"mousedown touchstart\",onTouchStart);\n\n\t\t\n\t\t//on body mouse up - drag end\n\t\tjQuery(window).add(\"body\").bind(\"mouseup touchend\",onTouchEnd);\n\t\t\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").bind(\"mousemove touchmove\", onTouchMove);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the touch events\n\t */\n\tthis.destroy = function(){\n\t\tg_objStrip.unbind(\"mousedown\");\n\t\tg_objStrip.unbind(\"touchstart\");\n\t\tjQuery(window).add(\"body\").unbind(\"mouseup\").unbind(\"touchend\");\n\t\tjQuery(\"body\").unbind(\"mousemove\").unbind(\"touchmove\");\n\t}\n}\n\n\n/** -------------- Panel Base Functions ---------------------*/\n\nfunction UGPanelsBase(){\n\t\n\tvar g_temp, g_panel, g_objPanel, g_options, g_objThis;\n\tvar g_gallery = new UniteGalleryMain();\n\tvar t = this, g_objHandle, g_objGallery;\n\tvar g_functions = new UGFunctions();\n\t\n\t\n\t/**\n\t * init the base panel\n\t */\n\tthis.init = function(gallery, g_tempArg, g_panelArg, options, g_objThisArg){\n\t\tg_temp = g_tempArg; \n\t\tg_panel = g_panelArg;\n\t\tg_gallery = gallery;\n\t\tg_options = options;\n\t\tg_objThis = g_objThisArg;\n\t\t\n\t\tg_objGallery = jQuery(g_gallery);\n\t}\n\n\t/**\n\t * set common panels html\n\t */\n\tthis.setHtml = function(g_objPanelArg){\n\t\t\n\t\tg_objPanel = g_objPanelArg;\n\t\t\n\t\tif(g_temp.panelType == \"strip\")\n\t\t\tvar enable_handle = g_options.strippanel_enable_handle;\n\t\telse\n\t\t\tvar enable_handle = g_options.gridpanel_enable_handle;\n\t\t\n\t\t// add handle\n\t\tif (enable_handle == true) {\n\t\t\tg_objHandle = new UGPanelHandle();\n\t\t\tg_objHandle.init(g_panel, g_objPanel, g_options, g_temp.panelType, g_gallery);\n\t\t\tg_objHandle.setHtml();\n\t\t}\n\t\t\n\t\t\n\t\t//set disabled at start if exists\n\t\tif(g_temp.isDisabledAtStart === true){\n\t\t\tvar html = \"
\";\n\t\t\tg_objPanel.append(html);\n\t\t\t\n\t\t\tsetTimeout(function(){\n\t\t\t\tg_objPanel.children(\".ug-overlay-disabled\").hide();\n\t\t\t}, g_temp.disabledAtStartTimeout);\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place common elements\n\t */\n\tthis.placeElements = function(){\n\t\t\n\t\t// place handle\n\t\tif (g_objHandle)\n\t\t\tg_objHandle.placeHandle();\t\t\n\t}\n\t\n\t\n\t/**\n\t * init common events\n\t */\n\tthis.initEvents = function(){\n\t\t\n\t\t// set handle events\n\t\tif (g_objHandle){\n\t\t\tg_objHandle.initEvents();\n\t\t\t\n\t\t\t//set on slider action events\n\t\t\tg_objGallery.on(g_gallery.events.SLIDER_ACTION_START, function(){\t\t\t\n\t\t\t\tg_objHandle.hideHandle();\n\t\t\t});\n\t\t\t\n\t\t\tg_objGallery.on(g_gallery.events.SLIDER_ACTION_END, function(){\t\t\t\n\t\t\t\tg_objHandle.showHandle();\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * destroy the panel events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_objHandle){\n\t\t\tg_objHandle.destroy();\n\t\t\tg_objGallery.off(g_gallery.events.SLIDER_ACTION_START);\n\t\t\tg_objGallery.off(g_gallery.events.SLIDER_ACTION_END);\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * place panel with some animation\n\t */\n\tfunction placePanelAnimation(panelDest, functionOnComplete) {\n\n\t\tswitch (g_temp.orientation) {\n\t\tcase \"right\": // vertical\n\t\tcase \"left\":\n\t\t\tvar objCss = {\n\t\t\t\tleft : panelDest + \"px\"\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"top\":\n\t\tcase \"bottom\":\n\t\t\tvar objCss = {\n\t\t\t\ttop : panelDest + \"px\"\n\t\t\t};\n\t\t\tbreak;\n\t\t}\n\n\t\tg_objPanel.stop(true).animate(objCss, {\n\t\t\tduration : 300,\n\t\t\teasing : \"easeInOutQuad\",\n\t\t\tqueue : false,\n\t\t\tcomplete : function() {\n\t\t\t\tif (functionOnComplete)\n\t\t\t\t\tfunctionOnComplete();\n\t\t\t}\n\t\t});\n\n\t}\n\t\n\t\n\t/**\n\t * place the panel without animation\n\t * \n\t * @param panelDest\n\t */\n\tfunction placePanelNoAnimation(panelDest) {\n\n\t\tswitch (g_temp.orientation) {\n\t\tcase \"right\": // vertical\n\t\tcase \"left\":\n\t\t\tg_functions.placeElement(g_objPanel, panelDest, null);\n\t\t\tbreak;\n\t\tcase \"top\":\n\t\tcase \"bottom\":\n\t\t\tg_functions.placeElement(g_objPanel, null, panelDest);\n\t\t\tbreak;\n\t\t}\n\t}\n\t\n\t/**\n\t * event on panel slide finish\n\t */\n\tfunction onPanelSlideFinish() {\n\n\t\tg_objThis.trigger(g_panel.events.FINISH_MOVE);\n\n\t}\n\t\n\t\n\t/**\n\t * open the panel\n\t */\n\tthis.openPanel = function(noAnimation) {\n\n\t\tif (!noAnimation)\n\t\t\tvar noAnimation = false;\n\n\t\tif (g_objPanel.is(\":animated\"))\n\t\t\treturn (false);\n\n\t\tif (g_temp.isClosed == false)\n\t\t\treturn (false);\n\n\t\tg_temp.isClosed = false;\n\n\t\tg_objThis.trigger(g_panel.events.OPEN_PANEL);\n\n\t\tif (noAnimation === false)\n\t\t\tplacePanelAnimation(g_temp.originalPos, onPanelSlideFinish);\n\t\telse {\n\n\t\t\tplacePanelNoAnimation(g_temp.originalPos);\n\t\t\tonPanelSlideFinish();\n\t\t}\n\n\t}\n\n\t\n\t/**\n\t * close the panel (slide in)\n\t */\n\tthis.closePanel = function(noAnimation) {\n\n\t\tif (!noAnimation)\n\t\t\tvar noAnimation = false;\n\n\t\tif (g_objPanel.is(\":animated\"))\n\t\t\treturn (false);\n\n\t\tif (g_temp.isClosed == true)\n\t\t\treturn (false);\n\n\t\tvar panelDest = t.getClosedPanelDest();\n\n\t\tg_temp.isClosed = true;\n\n\t\tg_objThis.trigger(g_panel.events.CLOSE_PANEL);\n\n\t\tif (noAnimation === false)\n\t\t\tplacePanelAnimation(panelDest, onPanelSlideFinish);\n\t\telse {\n\t\t\tplacePanelNoAnimation(panelDest);\n\t\t\tonPanelSlideFinish();\n\t\t}\n\n\t}\n\t\n\t/**\n\t * set the panel that it's in closed state, and set original pos for opening\n\t * later\n\t */\n\tthis.setClosedState = function(originalPos) {\n\t\t\n\t\tg_temp.originalPos = originalPos;\n\t\tg_objThis.trigger(g_panel.events.CLOSE_PANEL);\n\n\t\tg_temp.isClosed = true;\n\t}\n\n\t/**\n\t * set the panel opened state\n\t */\n\tthis.setOpenedState = function(originalPos) {\n\t\tg_objThis.trigger(g_panel.events.OPEN_PANEL);\n\n\t\tg_temp.isClosed = false;\n\t}\n\n\t/**\n\t * get closed panel destanation\n\t */\n\tthis.getClosedPanelDest = function() {\n\n\t\tvar objPanelSize = g_functions.getElementSize(g_objPanel), panelDest;\n\n\t\tswitch (g_temp.orientation) {\n\t\tcase \"left\":\n\t\t\tg_temp.originalPos = objPanelSize.left;\n\t\t\tpanelDest = -g_temp.panelWidth;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tg_temp.originalPos = objPanelSize.left;\n\t\t\tvar gallerySize = g_gallery.getSize();\n\t\t\tpanelDest = gallerySize.width;\n\t\t\tbreak;\n\t\tcase \"top\":\n\t\t\tg_temp.originalPos = objPanelSize.top;\n\t\t\tpanelDest = -g_temp.panelHeight;\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\tg_temp.originalPos = objPanelSize.top;\n\t\t\tvar gallerySize = g_gallery.getSize();\n\t\t\tpanelDest = gallerySize.height;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn (panelDest);\n\t}\n\n\n\t/**\n\t * tells if the panel is closed\n\t */\n\tthis.isPanelClosed = function() {\n\n\t\treturn (g_temp.isClosed);\n\t}\n\t\n\t\n\t/**\n\t * set the panel disabled at start, called after init before setHtml\n\t * it's enabled again after timeout end\n\t */\n\tthis.setDisabledAtStart = function(timeout){\n\t\t\n\t\tif(timeout <= 0)\n\t\t\treturn(false);\n\t\t\t\n\t\tg_temp.isDisabledAtStart = true;\n\t\tg_temp.disabledAtStartTimeout = timeout;\n\t\t\n\t}\n\t\n\t\n}\n\n\n/** -------------- Panel Handle object ---------------------*/\n\nfunction UGPanelHandle(){\n\t\n\tvar t = this, g_objPanel, g_panel, g_objHandleTip, g_panelOptions = {};\n\tvar g_functions = new UGFunctions();\n\t\n\tvar g_options = {\n\t\t\tpanel_handle_align: \"top\",\t\t//top, middle, bottom , left, right, center - close handle tip align on the handle bar according panel orientation\n\t\t\tpanel_handle_offset: 0,\t\t\t//offset of handle bar according the valign\n\t\t\tpanel_handle_skin: 0\t\t\t//skin of the handle, if empty inherit from gallery skin\n\t};\n\t\n\t\n\t/**\n\t * init the handle\n\t */\n\tthis.init = function(panel, objPanel, panelOptions, panelType, gallery){\n\t\tg_panel = panel;\n\t\tg_objPanel = objPanel;\n\t\t\n\t\t//set needed options\n\t\tswitch(panelType){\t\t\n\t\t\tcase \"grid\":\n\t\t\t\tg_options.panel_handle_align = panelOptions.gridpanel_handle_align;\n\t\t\t\tg_options.panel_handle_offset = panelOptions.gridpanel_handle_offset;\n\t\t\t\tg_options.panel_handle_skin = panelOptions.gridpanel_handle_skin;\n\t\t\tbreak;\n\t\t\tcase \"strip\":\n\t\t\t\tg_options.panel_handle_align = panelOptions.strippanel_handle_align;\n\t\t\t\tg_options.panel_handle_offset = panelOptions.strippanel_handle_offset;\n\t\t\t\tg_options.panel_handle_skin = panelOptions.strippanel_handle_skin;\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Panel handle error: wrong panel type: \" + panelType);\t\t\t\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t//set arrows skin:\n\t\tvar galleryOptions = gallery.getOptions();\n\t\tvar globalSkin = galleryOptions.gallery_skin;\t\t\n\t\tif(g_options.panel_handle_skin == \"\")\n\t\t\tg_options.panel_handle_skin = globalSkin;\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set handle html\n\t */\n\tthis.setHtml = function(){\n\t\t\n\t\tvar orientation = g_panel.getOrientation();\n\t\t\t\t\n\t\tvar classTip = \"ug-panel-handle-tip\";\n\t\t\n\t\tswitch(orientation){\n\t\t\tcase \"right\":\n\t\t\t\tclassTip += \" ug-handle-tip-left\";\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"left\":\n\t\t\t\tclassTip += \" ug-handle-tip-right\";\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tclassTip += \" ug-handle-tip-top\";\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\t\tclassTip += \" ug-handle-tip-bottom\";\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tg_objPanel.append(\"
\");\n\t\tg_objHandleTip = g_objPanel.children(\".ug-panel-handle-tip\");\n\t}\n\t\n\t\n\t/**\n\t * remove hover state of the tip\n\t */\n\tfunction removeHoverState(){\n\t\t\t\t\n\t\tg_objHandleTip.removeClass(\"ug-button-hover\");\n\t}\n\t\n\t/**\n\t * add closed state class\n\t */\n\tfunction setClosedState(){\n\t\t\t\t\n\t\tg_objHandleTip.addClass(\"ug-button-closed\");\t\t\n\t}\n\t\n\t/**\n\t * add closed state class\n\t */\n\tfunction removeClosedState(){\n\t\tg_objHandleTip.removeClass(\"ug-button-closed\");\t\t\n\t}\n\n\t/**\n\t * on handle click, close or open panel\n\t */\n\tfunction onHandleClick(event){\n\t\t\n\t\tevent.stopPropagation();\n\t\tevent.stopImmediatePropagation();\n\t\t\n\t\tif(g_functions.validateClickTouchstartEvent(event.type) == false)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_panel.isPanelClosed())\n\t\t\tg_panel.openPanel();\n\t\telse\n\t\t\tg_panel.closePanel();\n\t}\n\t\n\t/**\n\t * init events\n\t */\n\tthis.initEvents = function(){\n\t\tg_functions.addClassOnHover(g_objHandleTip);\n\t\tg_objHandleTip.bind(\"click touchstart\", onHandleClick);\n\t\t\n\t\t//on panel open\n\t\tjQuery(g_panel).on(g_panel.events.OPEN_PANEL, function(){\n\t\t\tremoveHoverState();\n\t\t\tremoveClosedState();\n\t\t});\n\t\t\n\t\t//one panel close\n\t\tjQuery(g_panel).on(g_panel.events.CLOSE_PANEL, function(){\n\t\t\tremoveHoverState();\n\t\t\tsetClosedState();\n\t\t});\n\t\t\n\t}\n\t\n\t/**\n\t * destroy the handle panel events\n\t */\n\tthis.destroy = function(){\n\t\tg_functions.destroyButton(g_objHandleTip);\n\t\tjQuery(g_panel).off(g_panel.events.OPEN_PANEL);\n\t\tjQuery(g_panel).off(g_panel.events.CLOSE_PANEL);\n\t}\n\t\n\t\n\t\n\t/**\n\t * check and fix align option, set write direction\n\t */\n\tfunction checkAndFixAlign(){\n\t\tvar orientation = g_panel.getOrientation();\n\t\t\n\t\tswitch(orientation){\n\t\t\tcase \"right\":\n\t\t\tcase \"left\":\n\t\t\t\tif(g_options.panel_handle_align != \"top\" && g_options.panel_handle_align != \"bottom\")\n\t\t\t\t\tg_options.panel_handle_align = \"top\";\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tif(g_options.panel_handle_align != \"left\" && g_options.panel_handle_align != \"right\")\n\t\t\t\t\tg_options.panel_handle_align = \"left\";\n\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\t\tif(g_options.panel_handle_align != \"left\" && g_options.panel_handle_align != \"right\")\n\t\t\t\t\tg_options.panel_handle_align = \"right\";\t\t\t\t\n\t\t\tbreak;\n\t\t}\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place the panel\n\t */\n\tthis.placeHandle = function(){\n\t\tvar handleSize = g_functions.getElementSize(g_objHandleTip);\n\t\t\n\t\tcheckAndFixAlign();\n\t\t\t\t\n\t\tvar orientation = g_panel.getOrientation();\n\t\t\n\t\tswitch(orientation){\n\t\t\tcase \"left\":\n\t\t\t\tg_functions.placeElement(g_objHandleTip, \"right\", g_options.panel_handle_align, -handleSize.width);\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tg_functions.placeElement(g_objHandleTip, -handleSize.width, g_options.panel_handle_align, 0 ,g_options.panel_handle_offset);\n\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\t\tg_functions.placeElement(g_objHandleTip, g_options.panel_handle_align, \"bottom\", g_options.panel_handle_offset, -handleSize.height);\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tg_functions.placeElement(g_objHandleTip, g_options.panel_handle_align, \"top\", g_options.panel_handle_offset, -handleSize.height);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Wrong panel orientation: \" + orientation);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * hide the handle\n\t */\n\tthis.hideHandle = function(){\n\t\t\n\t\tif(g_objHandleTip.is(\":visible\") == true)\n\t\t\tg_objHandleTip.hide();\n\t\n\t}\n\t\n\t/**\n\t * show the handle\n\t */\n\tthis.showHandle = function(){\n\t\t\n\t\tif(g_objHandleTip.is(\":visible\") == false)\n\t\t\tg_objHandleTip.show();\n\t\t\n\t}\n\t\n\t\n}\n\n/**\n * grid panel class addon to grid gallery\n */\nfunction UGStripPanel() {\n\n\tvar t = this, g_objThis = jQuery(this);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objWrapper, g_objPanel;\n\tvar g_functions = new UGFunctions(), g_objStrip = new UGThumbsStrip(), g_panelBase = new UGPanelsBase();\n\tvar g_objButtonNext, g_objButtonPrev;\n\n\tthis.events = {\n\t\tFINISH_MOVE : \"gridpanel_move_finish\", // called after close or open panel (slide finish).\n\t\tOPEN_PANEL : \"open_panel\", \t\t\t // called before opening the panel.\n\t\tCLOSE_PANEL : \"close_panel\" \t\t // called before closing the panel.\n\t};\n\n\tvar g_options = {\n\n\t\tstrippanel_vertical_type : false, // true, false - specify if the panel is vertical or horizonatal type\n\n\t\tstrippanel_padding_top : 8, // space from top of the panel\n\t\tstrippanel_padding_bottom : 8, // space from bottom of the panel\n\n\t\tstrippanel_padding_left : 0, // space from left of the panel\n\t\tstrippanel_padding_right : 0, // space from right of the panel\n\n\t\tstrippanel_enable_buttons : true, // enable buttons from the sides of the panel\n\t\tstrippanel_buttons_skin : \"\", // skin of the buttons, if empty inherit from gallery skin\n\t\t\t\t\t\t\t\t\t\t \n\t\tstrippanel_padding_buttons : 2, // padding between the buttons and the panel\n\n\t\tstrippanel_buttons_role : \"scroll_strip\", // scroll_strip, advance_item - the role of the side buttons\n\t\t\n\t\tstrippanel_enable_handle : true, // enable grid handle\n\t\tstrippanel_handle_align : \"top\", // top, middle, bottom , left, right, center - close handle tip align on the handle bar according panel orientation\n\t\tstrippanel_handle_offset : 0, \t // offset of handle bar according the valign\n\t\t\t\t\t\t\t\t\t\t\n\t\tstrippanel_handle_skin : \"\", \t // skin of the handle, if empty inherit from gallery skin\n\n\t\tstrippanel_background_color : \"\" // background color of the strip wrapper, if not set, it will be taken from the css\n\t\t\n\t};\n\n\tvar g_defaults_vertical = {\n\t\tstrip_vertical_type : true,\n\t\tstrippanel_padding_left : 8,\n\t\tstrippanel_padding_right : 8,\n\t\tstrippanel_padding_top : 0,\n\t\tstrippanel_padding_bottom : 0\n\t};\n\n\tvar g_defaults_no_buttons = {\n\t\tstrippanel_padding_left : 8,\n\t\tstrippanel_padding_right : 8,\n\t\tstrippanel_padding_top : 8,\n\t\tstrippanel_padding_bottom : 8\n\t};\n\n\tvar g_temp = {\n\t\tpanelType: \"strip\",\n\t\tpanelWidth : 0,\n\t\tpanelHeight : 0,\n\t\tisEventsInited : false,\n\t\tisClosed : false,\n\t\torientation : null,\n\t\toriginalPos : null,\n\t\tisFirstRun : true\n\t};\n\n\t/**\n\t * init the panel\n\t */\n\tfunction initPanel(gallery, customOptions) {\n\t\tg_gallery = gallery;\n\n\t\tg_objGallery = jQuery(g_gallery);\n\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\n\t\tvar repeatCustomOptions = false;\n\n\t\tif (g_options.strippanel_vertical_type == true) {\n\t\t\tg_options = jQuery.extend(g_options, g_defaults_vertical);\n\t\t\trepeatCustomOptions = true;\n\t\t}\n\n\t\tif (g_options.strippanel_enable_buttons == false) {\n\t\t\tg_options = jQuery.extend(g_options, g_defaults_no_buttons);\n\t\t\trepeatCustomOptions = true;\n\t\t}\n\n\t\tif (repeatCustomOptions == true)\n\t\t\tg_options = jQuery.extend(g_options, customOptions); // do the\n\t\t\n\t\t\n\t\t// set arrows skin:\n\t\tvar galleryOptions = g_gallery.getOptions();\n\t\tvar globalSkin = galleryOptions.gallery_skin;\n\t\tif (g_options.strippanel_buttons_skin == \"\")\n\t\t\tg_options.strippanel_buttons_skin = globalSkin;\n\n\t\tg_objWrapper = g_gallery.getElement();\n\t\t\n\t\t//init the base panel object:\n\t\tg_panelBase.init(g_gallery, g_temp, t, g_options, g_objThis);\n\t\t\n\t\t//init thumbs strip\n\t\tg_objStrip = new UGThumbsStrip();\n\t\tg_objStrip.init(g_gallery, g_options);\n\t\t\n\t}\n\n\t\n\t/**\n\t * validate panel before run\n\t */\n\tfunction validatePanelBeforeRun() {\n\t\t\n\t\tif (g_options.strippanel_vertical_type == false) { // horizontal\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// validate\n\t\t\tif (g_temp.panelWidth == 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Strip panel error: The width not set, please set width\");\n\t\t\t\treturn (false);\n\t\t\t}\n\n\t\t} else { // vertical validate\n\n\t\t\tif (g_temp.panelHeight == 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Strip panel error: The height not set, please set height\");\n\t\t\t\treturn (false);\n\t\t\t}\n\n\t\t}\n\n\t\t// validate orientation\n\t\tif (g_temp.orientation == null) {\n\t\t\tthrow new Error(\n\t\t\t\t\t\"Wrong orientation, please set panel orientation before run\");\n\t\t\treturn (false);\n\t\t}\n\n\t\treturn (true);\n\t}\n\n\t/**\n\t * run the panel\n\t */\n\tfunction runPanel() {\n\n\t\t// validation\n\t\tif (g_temp.isFirstRun == true && validatePanelBeforeRun() == false)\n\t\t\treturn (false);\n\n\t\tg_objStrip.run();\n\t\t\n\t\tsetElementsSize();\n\t\tplaceElements();\n\t\t\t\t\n\t\tinitEvents();\n\n\t\tg_temp.isFirstRun = false;\n\n\t\tcheckSideButtons();\n\t}\n\n\t/**\n\t * set panel html\n\t */\n\tfunction setPanelHtml(parentContainer) {\n\t\t\n\t\tif (!parentContainer)\n\t\t\tvar parentContainer = g_objWrapper;\n\n\t\t// add panel wrapper\n\t\tparentContainer.append(\"
\");\n\n\t\tg_objPanel = parentContainer.children('.ug-strip-panel');\n\n\t\t// add arrows:\n\t\tif (g_options.strippanel_enable_buttons == true) {\n\n\t\t\tvar arrowPrevClass = \"ug-strip-arrow-left\";\n\t\t\tvar arrowNextClass = \"ug-strip-arrow-right\";\n\t\t\tif (g_options.strippanel_vertical_type == true) {\n\t\t\t\tarrowPrevClass = \"ug-strip-arrow-up\";\n\t\t\t\tarrowNextClass = \"ug-strip-arrow-down\";\n\t\t\t}\n\n\t\t\tg_objPanel.append(\"
\");\n\t\t\tg_objPanel.append(\"
\");\n\n\t\t}\n\t\t\n\t\tg_panelBase.setHtml(g_objPanel);\n\t\t\n\t\tg_objStrip.setHtml(g_objPanel);\n\t\t\n\t\tif (g_options.strippanel_enable_buttons == true) {\n\t\t\tg_objButtonPrev = g_objPanel.children(\".\" + arrowPrevClass);\n\t\t\tg_objButtonNext = g_objPanel.children(\".\" + arrowNextClass);\n\t\t}\n\n\t\tsetHtmlProperties();\n\t}\n\n\t/**\n\t * set html properties according the options\n\t */\n\tfunction setHtmlProperties() {\n\n\t\t// set panel background color\n\t\tif (g_options.strippanel_background_color != \"\")\n\t\t\tg_objPanel.css(\"background-color\",\n\t\t\t\t\tg_options.strippanel_background_color);\n\n\t}\n\n\t/**\n\t * set elements size horizontal type\n\t */\n\tfunction setElementsSize_hor() {\n\t\t\n\t\t// get strip height\n\t\tvar stripHeight = g_objStrip.getHeight();\n\t\tvar panelWidth = g_temp.panelWidth;\n\n\t\t// set buttons height\n\t\tif (g_objButtonNext) {\n\t\t\tg_objButtonPrev.height(stripHeight);\n\t\t\tg_objButtonNext.height(stripHeight);\n\n\t\t\t// arrange buttons tip\n\t\t\tvar prevTip = g_objButtonPrev.children(\".ug-strip-arrow-tip\");\n\t\t\tg_functions.placeElement(prevTip, \"center\", \"middle\");\n\n\t\t\tvar nextTip = g_objButtonNext.children(\".ug-strip-arrow-tip\");\n\t\t\tg_functions.placeElement(nextTip, \"center\", \"middle\");\n\t\t}\n\n\t\t// set panel height\n\t\tvar panelHeight = stripHeight + g_options.strippanel_padding_top\n\t\t\t\t+ g_options.strippanel_padding_bottom;\n\n\t\t// set panel size\n\t\tg_objPanel.width(panelWidth);\n\t\tg_objPanel.height(panelHeight);\n\n\t\tg_temp.panelHeight = panelHeight;\n\n\t\t// set strip size\n\t\tvar stripWidth = panelWidth - g_options.strippanel_padding_left\t- g_options.strippanel_padding_right;\n\n\t\tif (g_objButtonNext) {\n\t\t\tvar buttonWidth = g_objButtonNext.outerWidth();\n\t\t\tstripWidth = stripWidth - buttonWidth * 2 - g_options.strippanel_padding_buttons * 2;\n\t\t}\n\n\t\tg_objStrip.resize(stripWidth);\n\t}\n\n\t/**\n\t * set elements size vertical type\n\t */\n\tfunction setElementsSize_vert() {\n\t\t\t\t\n\t\t// get strip width\n\t\tvar stripWidth = g_objStrip.getWidth();\n\t\tvar panelHeight = g_temp.panelHeight;\n\t\t\n\t\t// set buttons height\n\t\tif (g_objButtonNext) {\n\t\t\tg_objButtonPrev.width(stripWidth);\n\t\t\tg_objButtonNext.width(stripWidth);\n\n\t\t\t// arrange buttons tip\n\t\t\tvar prevTip = g_objButtonPrev.children(\".ug-strip-arrow-tip\");\n\t\t\tg_functions.placeElement(prevTip, \"center\", \"middle\");\n\n\t\t\tvar nextTip = g_objButtonNext.children(\".ug-strip-arrow-tip\");\n\t\t\tg_functions.placeElement(nextTip, \"center\", \"middle\");\n\t\t}\n\n\t\t// set panel width\n\t\tvar panelWidth = stripWidth + g_options.strippanel_padding_left\n\t\t\t\t+ g_options.strippanel_padding_right;\n\n\t\t// set panel size\n\t\tg_objPanel.width(panelWidth);\n\t\tg_objPanel.height(panelHeight);\n\n\t\tg_temp.panelWidth = panelWidth;\n\n\t\t// set strip size\n\t\tvar stripHeight = panelHeight - g_options.strippanel_padding_top\n\t\t\t\t- g_options.strippanel_padding_bottom;\n\n\t\tif (g_objButtonNext) {\n\t\t\tvar buttonHeight = g_objButtonNext.outerHeight();\n\t\t\tstripHeight = stripHeight - buttonHeight * 2\n\t\t\t\t\t- g_options.strippanel_padding_buttons * 2;\n\t\t}\n\n\t\tg_objStrip.resize(stripHeight);\n\t}\n\n\t/**\n\t * set elements size and place the elements\n\t */\n\tfunction setElementsSize() {\n\n\t\tif (g_options.strippanel_vertical_type == false)\n\t\t\tsetElementsSize_hor();\n\t\telse\n\t\t\tsetElementsSize_vert();\n\t}\n\n\t/**\n\t * place elements horizontally\n\t */\n\tfunction placeElements_hor() {\n\n\t\t// place buttons\n\t\tif (g_objButtonNext) {\n\t\t\tg_functions.placeElement(g_objButtonPrev, \"left\", \"top\",\n\t\t\t\t\tg_options.strippanel_padding_left,\n\t\t\t\t\tg_options.strippanel_padding_top);\n\t\t\tg_functions.placeElement(g_objButtonNext, \"right\", \"top\",\n\t\t\t\t\tg_options.strippanel_padding_right,\n\t\t\t\t\tg_options.strippanel_padding_top);\n\t\t}\n\n\t\tvar stripX = g_options.strippanel_padding_left;\n\t\tif (g_objButtonNext)\n\t\t\tstripX += g_objButtonNext.outerWidth()\n\t\t\t\t\t+ g_options.strippanel_padding_buttons;\n\n\t\tg_objStrip.setPosition(stripX, g_options.strippanel_padding_top);\n\n\t}\n\n\t/**\n\t * place elements vertically\n\t */\n\tfunction placeElements_vert() {\n\n\t\t// place buttons\n\t\tif (g_objButtonNext) {\n\t\t\tg_functions.placeElement(g_objButtonPrev, \"left\", \"top\",\n\t\t\t\t\tg_options.strippanel_padding_left,\n\t\t\t\t\tg_options.strippanel_padding_top);\n\t\t\tg_functions.placeElement(g_objButtonNext, \"left\", \"bottom\",\n\t\t\t\t\tg_options.strippanel_padding_left,\n\t\t\t\t\tg_options.strippanel_padding_bottom);\n\t\t}\n\n\t\tvar stripY = g_options.strippanel_padding_top;\n\t\tif (g_objButtonNext)\n\t\t\tstripY += g_objButtonNext.outerHeight()\n\t\t\t\t\t+ g_options.strippanel_padding_buttons;\n\n\t\tg_objStrip.setPosition(g_options.strippanel_padding_left, stripY);\n\t}\n\n\t/**\n\t * place elements\n\t */\n\tfunction placeElements() {\n\n\t\tif (g_options.strippanel_vertical_type == false)\n\t\t\tplaceElements_hor();\n\t\telse\n\t\t\tplaceElements_vert();\n\n\t\tg_panelBase.placeElements();\n\n\t}\n\n\n\n\tfunction __________EVENTS___________() {\n\t}\n\t;\n\n\t/**\n\t * on next button click\n\t */\n\tfunction onNextButtonClick(objButton) {\n\n\t\tif (g_functions.isButtonDisabled(objButton))\n\t\t\treturn (true);\n\n\t\tif (g_options.strippanel_buttons_role == \"advance_item\")\n\t\t\tg_gallery.nextItem();\n\t\telse\n\t\t\tg_objStrip.scrollForeward();\n\t}\n\n\t/**\n\t * on previous button click\n\t */\n\tfunction onPrevButtonClick(objButton) {\n\n\t\tif (g_functions.isButtonDisabled(objButton))\n\t\t\treturn (true);\n\n\t\tif (g_options.strippanel_buttons_role == \"advance_item\")\n\t\t\tg_gallery.prevItem();\n\t\telse\n\t\t\tg_objStrip.scrollBack();\n\t}\n\n\t/**\n\t * check buttons if they need to be disabled or not\n\t */\n\tfunction checkSideButtons() {\n\t\t\t\t\n\t\tif (!g_objButtonNext)\n\t\t\treturn (true);\n\n\t\t// if the strip not movable - disable both buttons\n\t\tif (g_objStrip.isMoveEnabled() == false) {\n\t\t\tg_functions.disableButton(g_objButtonPrev);\n\t\t\tg_functions.disableButton(g_objButtonNext);\n\t\t\treturn (true);\n\t\t}\n\t\t\n\t\t// check the limits\n\t\tvar limits = g_objStrip.getInnerStripLimits();\n\t\tvar pos = g_objStrip.getInnerStripPos();\n\t\t\n\t\tif (pos >= limits.maxPos) {\n\t\t\tg_functions.disableButton(g_objButtonPrev);\n\t\t} else {\n\t\t\tg_functions.enableButton(g_objButtonPrev);\n\t\t}\n\n\t\tif (pos <= limits.minPos)\n\t\t\tg_functions.disableButton(g_objButtonNext);\n\t\telse\n\t\t\tg_functions.enableButton(g_objButtonNext);\n\n\t}\n\n\t/**\n\t * on strip move event\n\t */\n\tfunction onStripMove() {\n\t\tcheckSideButtons();\n\t}\n\n\t/**\n\t * on item change event, disable or enable buttons according the images\n\t * position\n\t */\n\tfunction onItemChange() {\n\n\t\tif (g_gallery.isLastItem())\n\t\t\tg_functions.disableButton(g_objButtonNext);\n\t\telse\n\t\t\tg_functions.enableButton(g_objButtonNext);\n\n\t\tif (g_gallery.isFirstItem())\n\t\t\tg_functions.disableButton(g_objButtonPrev);\n\t\telse\n\t\t\tg_functions.enableButton(g_objButtonPrev);\n\n\t}\n\n\n\t/**\n\t * init panel events\n\t */\n\tfunction initEvents() {\n\n\t\tif (g_temp.isEventsInited == true)\n\t\t\treturn (false);\n\t\t\n\t\tg_temp.isEventsInited = true;\n\t\t\n\t\t// buttons events\n\t\tif (g_objButtonNext) {\n\n\t\t\t// add hove class\n\t\t\tg_functions.addClassOnHover(g_objButtonNext, \"ug-button-hover\");\n\t\t\tg_functions.addClassOnHover(g_objButtonPrev, \"ug-button-hover\");\n\n\t\t\t// add click events\n\t\t\tg_functions.setButtonOnClick(g_objButtonPrev, onPrevButtonClick);\n\t\t\tg_functions.setButtonOnClick(g_objButtonNext, onNextButtonClick);\n\n\t\t\t// add disable / enable buttons on strip move event\n\t\t\tif (g_options.strippanel_buttons_role != \"advance_item\") {\n\t\t\t\t\n\t\t\t\tjQuery(g_objStrip).on(g_objStrip.events.STRIP_MOVE, onStripMove);\n\t\t\t\t\n\t\t\t\tjQuery(g_objStrip).on(g_objStrip.events.INNER_SIZE_CHANGE, checkSideButtons);\n\t\t\t\t\n\t\t\t\tg_objGallery.on(g_gallery.events.SIZE_CHANGE, checkSideButtons);\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tvar galleryOptions = g_gallery.getOptions();\n\t\t\t\tif (galleryOptions.gallery_carousel == false)\n\t\t\t\t\tjQuery(g_gallery).on(g_gallery.events.ITEM_CHANGE, onItemChange);\n\t\t\t}\n\n\t\t}\n\n\t\tg_panelBase.initEvents();\n\t}\n\t\n\t/**\n\t * destroy the strip panel events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_objButtonNext){\n\t\t\tg_functions.destroyButton(g_objButtonNext);\n\t\t\tg_functions.destroyButton(g_objButtonPrev);\n\t\t\tjQuery(g_objStrip).off(g_objStrip.events.STRIP_MOVE);\n\t\t\tjQuery(g_gallery).off(g_gallery.events.ITEM_CHANGE);\n\t\t\tjQuery(g_gallery).off(g_gallery.events.SIZE_CHANGE);\n\t\t}\n\t\t\n\t\tg_panelBase.destroy();\n\t\tg_objStrip.destroy();\n\t}\n\t\n\t\n\t/**\n\t * get panel orientation\n\t */\n\tthis.getOrientation = function() {\n\n\t\treturn (g_temp.orientation);\n\t}\n\n\t/**\n\t * set panel orientation (left, right, top, bottom)\n\t */\n\tthis.setOrientation = function(orientation) {\n\n\t\tg_temp.orientation = orientation;\n\t}\n\n\t\n\t/**\n\t * init the panel\n\t */\n\tthis.init = function(gallery, customOptions) {\n\t\tinitPanel(gallery, customOptions);\n\t}\n\n\t/**\n\t * run the panel\n\t */\n\tthis.run = function() {\n\t\trunPanel();\n\t}\n\n\t/**\n\t * place panel html\n\t */\n\tthis.setHtml = function(parentContainer) {\n\t\tsetPanelHtml(parentContainer);\n\t}\n\n\t/**\n\t * get the panel element\n\t */\n\tthis.getElement = function() {\n\t\treturn (g_objPanel);\n\t}\n\n\t/**\n\t * get panel size object\n\t */\n\tthis.getSize = function() {\n\n\t\tvar objSize = g_functions.getElementSize(g_objPanel);\n\n\t\treturn (objSize);\n\t}\n\n\t/**\n\t * set panel width (for horizonal type)\n\t */\n\tthis.setWidth = function(width) {\n\n\t\tg_temp.panelWidth = width;\n\n\t}\n\n\t/**\n\t * set panel height (for vertical type)\n\t */\n\tthis.setHeight = function(height) {\n\n\t\tg_temp.panelHeight = height;\n\n\t}\n\n\t/**\n\t * resize the panel\n\t */\n\tthis.resize = function(newWidth) {\n\t\tt.setWidth(newWidth);\n\t\tsetElementsSize();\n\t\tplaceElements();\n\t}\n\t\n\tthis.__________Functions_From_Base_____ = function() {}\n\t\n\t/**\n\t * tells if the panel is closed\n\t */\n\tthis.isPanelClosed = function() {\t\t\n\t\treturn (g_panelBase.isPanelClosed());\n\t}\n\n\t/**\n\t * get closed panel destanation\n\t */\n\tthis.getClosedPanelDest = function() {\n\t\treturn g_panelBase.getClosedPanelDest();\n\t}\t\n\t\t\n\t/**\n\t * open the panel\n\t */\t\n\tthis.openPanel = function(noAnimation) {\n\t\tg_panelBase.openPanel(noAnimation);\n\t}\n\t\n\t\n\t/**\n\t * close the panel (slide in)\n\t */\n\tthis.closePanel = function(noAnimation) {\n\t\tg_panelBase.closePanel(noAnimation);\t\t\n\t}\t\n\t\n\t/**\n\t * set the panel opened state\n\t */\n\tthis.setOpenedState = function(originalPos) {\n\t\tg_panelBase.setOpenedState(originalPos);\n\t}\n\n\t/**\n\t * set the panel that it's in closed state, and set original pos for opening later\n\t */\n\tthis.setClosedState = function(originalPos) {\n\t\tg_panelBase.setClosedState(originalPos);\t\n\t}\n\t\n\t/**\n\t * set custom thumbs of the strip\n\t */\n\tthis.setCustomThumbs = function(funcSetHtml){\n\t\t\n\t\tg_objStrip.setCustomThumbs(funcSetHtml);\n\t\n\t}\n\t\n\t/**\n\t * set panel disabled at start\n\t */\n\tthis.setDisabledAtStart = function(timeout){\n\t\t\n\t\tg_panelBase.setDisabledAtStart(timeout);\n\t\t\n\t}\n\t\n}\n\n\n/**\n * grid panel class\n * addon to grid gallery\n */\nfunction UGGridPanel(){\n\t\n\tvar t = this, g_objThis = jQuery(this);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objWrapper, g_objPanel;\n\tvar g_functions = new UGFunctions();\n\tvar g_objGrid = new UGThumbsGrid();\n\tvar g_panelBase = new UGPanelsBase();\n\tvar g_objArrowNext, g_objArrowPrev;\n\t\n\tthis.events = {\n\t\tFINISH_MOVE: \"gridpanel_move_finish\",\t//called after close or open panel (slide finish).\n\t\tOPEN_PANEL: \"open_panel\",\t\t\t\t//called before opening the panel.\n\t\tCLOSE_PANEL: \"close_panel\"\t\t\t\t//called before closing the panel.\n\t};\n\t\n\tvar g_options = {\n\t\t\tgridpanel_vertical_scroll: true,\t\t\t//vertical or horizontal grid scroll and arrows\n\t\t\tgridpanel_grid_align: \"middle\",\t\t\t\t//top , middle , bottom, left, center, right - the align of the grid panel in the gallery \n\t\t\tgridpanel_padding_border_top: 10,\t\t //padding between the top border of the panel\n\t\t\tgridpanel_padding_border_bottom: 4,\t\t\t//padding between the bottom border of the panel\n\t\t\tgridpanel_padding_border_left: 10,\t\t\t//padding between the left border of the panel\n\t\t\tgridpanel_padding_border_right: 10,\t\t\t//padding between the right border of the panel\n\t\t\t\n\t\t\tgridpanel_arrows_skin: \"\",\t\t\t\t\t//skin of the arrows, if empty inherit from gallery skin\n\t\t\tgridpanel_arrows_align_vert: \"middle\",\t\t//borders, grid, middle - vertical align of arrows, to the top and bottom botders, to the grid, or in the middle space.\n\t\t\tgridpanel_arrows_padding_vert: 4,\t\t\t//padding between the arrows and the grid, in case of middle align, it will be minimal padding\n\t\t\tgridpanel_arrows_align_hor: \"center\",\t\t//borders, grid, center - horizontal align of arrows, to the left and right botders, to the grid, or in the center space.\n\t\t\tgridpanel_arrows_padding_hor: 10,\t\t\t//in case of horizontal type only, minimal size from the grid in case of \"borders\" and size from the grid in case of \"grid\"\n\t\t\t\n\t\t\tgridpanel_space_between_arrows: 20,\t\t\t//space between arrows on horizontal grids only\n\t\t\tgridpanel_arrows_always_on: false,\t\t\t//always show arrows even if the grid is one pane only\n\n\t\t\tgridpanel_enable_handle: true,\t\t\t\t//enable grid handle\t\t\t\n\t\t\tgridpanel_handle_align: \"top\",\t\t\t\t//top, middle, bottom , left, right, center - close handle tip align on the handle bar according panel orientation\n\t\t\tgridpanel_handle_offset: 0,\t\t\t\t\t//offset of handle bar according the valign\n\t\t\tgridpanel_handle_skin: \"\",\t\t\t\t\t//skin of the handle, if empty inherit from gallery skin\n\t\t\t\n\t\t\tgridpanel_background_color:\"\"\t\t\t\t//background color of the grid wrapper, if not set, it will be taken from the css\n\t};\n\t\n\t\n\t//default options for vertical scroll\n\tvar g_defaultsVertical = {\n\t\t\tgridpanel_grid_align: \"middle\",\t\t\t//top , middle , bottom\n\t\t\tgridpanel_padding_border_top: 2,\t\t//padding between the top border of the panel\n\t\t\tgridpanel_padding_border_bottom: 2\t\t//padding between the bottom border of the panel\n\t};\n\t\n\t//default options for horizontal type panel\n\tvar g_defaultsHorType = {\n\t\t\tgridpanel_grid_align: \"center\"\t\t\t//left, center, right\t\t\t\n\t};\n\t\n\tvar g_temp = {\n\t\tpanelType: \"grid\",\n\t\tisHorType: false,\n\t\tarrowsVisible: false,\n\t\tpanelHeight: 0,\n\t\tpanelWidth: 0,\n\t\toriginalPosX:null,\n\t\tisEventsInited: false,\n\t\tisClosed: false,\n\t\torientation: null\n\t};\n\t\n\t\n\t/**\n\t * init the grid panel\n\t */\n\tfunction initGridPanel(gallery, customOptions){\n\t\t\n\t\tg_gallery = gallery;\n\t\t\n\t\tvalidateOrientation();\n\t\t\n\t\t//set defaults and custom options\n\t\tif(customOptions && customOptions.vertical_scroll){\n\t\t\tg_options.gridpanel_vertical_scroll = customOptions.vertical_scroll;\t\t\t\n\t\t}\n\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\t\t\n\t\t//set defautls for horizontal panel type\n\t\tif(g_temp.isHorType == true){\n\t\t\t\t\t\t\n\t\t\tg_options = jQuery.extend(g_options, g_defaultsHorType);\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\t\t\t\n\t\t}else if(g_options.gridpanel_vertical_scroll == true){\n\n\t\t\t//set defaults for vertical scroll\n\t\t\tg_options = jQuery.extend(g_options, g_defaultsVertical);\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\tg_options.grid_panes_direction = \"bottom\";\t\t\n\t\t}\n\t\t\n\t\t//set arrows skin:\n\t\tvar galleryOptions = g_gallery.getOptions();\n\t\tvar globalSkin = galleryOptions.gallery_skin;\t\t\n\t\tif(g_options.gridpanel_arrows_skin == \"\")\n\t\t\tg_options.gridpanel_arrows_skin = globalSkin;\n\t\t\n\t\t\n\t\t//get the gallery wrapper\n\t\tvar objects = gallery.getObjects();\n\t\tg_objWrapper = objects.g_objWrapper;\n\t\t\n\t\t//init the base panel object:\n\t\tg_panelBase.init(g_gallery, g_temp, t, g_options, g_objThis);\t\t\n\n\t\t//init the grid \n\t\tg_objGrid = new UGThumbsGrid();\n\t\tg_objGrid.init(g_gallery, g_options);\n\n\t}\n\t\n\t\n\t/**\n\t * validate the orientation if exists\n\t */\n\tfunction validateOrientation(){\n\t\t\n\t\tif(g_temp.orientation == null)\n\t\t\tthrow new Error(\"Wrong orientation, please set panel orientation before run\");\n\t\t\n\t}\n\t\n\t/**\n\t * run the rid panel\n\t */\n\tfunction runPanel(){\n\t\t\n\t\t//validate orientation\n\t\tvalidateOrientation();\n\t\t\n\t\tprocessOptions();\n\t\t\n\t\tg_objGrid.run();\n\t\t\n\t\tsetArrows();\n\t\tsetPanelSize();\n\t\tplaceElements();\n\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * set html of the grid panel\n\t */\n\tfunction setHtmlPanel(){\n\t\t\n\t\t//add panel wrapper\n\t\tg_objWrapper.append(\"
\");\n\t\t\n\t\tg_objPanel = g_objWrapper.children('.ug-grid-panel');\n\t\t\n\t\t//add arrows:\n\t\tif(g_temp.isHorType){\n\t\t\t\n\t\t\tg_objPanel.append(\"
\");\n\t\t\tg_objPanel.append(\"
\");\n\t\t\t\n\t\t\tg_objArrowPrev = g_objPanel.children(\".grid-arrow-left-hortype\");\n\t\t\tg_objArrowNext = g_objPanel.children(\".grid-arrow-right-hortype\");\n\t\t}\n\t\telse if(g_options.gridpanel_vertical_scroll == false){\t\t//horizonatl arrows\n\t\t\tg_objPanel.append(\"
\");\n\t\t\tg_objPanel.append(\"
\");\n\t\t\t\n\t\t\tg_objArrowPrev = g_objPanel.children(\".grid-arrow-left\");\n\t\t\tg_objArrowNext = g_objPanel.children(\".grid-arrow-right\");\n\t\t\t\n\t\t}else{\t\t//vertical arrows\n\t\t\tg_objPanel.append(\"
\");\n\t\t\tg_objPanel.append(\"
\");\n\t\t\t\n\t\t\tg_objArrowPrev = g_objPanel.children(\".grid-arrow-up\");\n\t\t\tg_objArrowNext = g_objPanel.children(\".grid-arrow-down\");\n\t\t}\n\t\t\n\t\tg_panelBase.setHtml(g_objPanel);\n\t\t\n\t\t//hide the arrows\n\t\tg_objArrowPrev.fadeTo(0,0);\n\t\tg_objArrowNext.fadeTo(0,0);\n\t\t\n\t\tg_objGrid.setHtml(g_objPanel);\n\t\t\n\t\tsetHtmlProperties();\n\t}\n\t\n\t\n\t/**\n\t * set html properties according the options\n\t */\n\tfunction setHtmlProperties(){\n\t\t\n\t\t//set panel background color\n\t\tif(g_options.gridpanel_background_color != \"\")\n\t\t\tg_objPanel.css(\"background-color\",g_options.gridpanel_background_color);\n\t}\n\t\n\t\n\t/**\n\t * process and fix certain options, avoid arrows and validate options\n\t */\n\tfunction processOptions(){\n\t\t\n\t\tif(g_options.gridpanel_grid_align == \"center\")\n\t\t\tg_options.gridpanel_grid_align = \"middle\";\n\t}\n\t\n\t\t\n\t/**\n\t * place panel with some animation\n\t */\n\tfunction placePanelAnimation(panelX, functionOnComplete){\n\t\t\t\t\t\t\n\t\tvar objCss = {left: panelX + \"px\"};\n\t\t\n\t\tg_objPanel.stop(true).animate(objCss ,{\n\t\t\tduration: 300,\n\t\t\teasing: \"easeInOutQuad\",\n\t\t\tqueue: false,\n\t\t\tcomplete: function(){\n\t\t\t\tif(functionOnComplete)\n\t\t\t\t\tfunctionOnComplete();\n\t\t\t}\n\t\t});\n\t\t\n\t}\n\t\n\t\t\n\t\n\t/**\n\t * get max height of the grid according the arrows size\n\t */\n\tfunction getGridMaxHeight(){\n\t\t\n\t\t//check space taken without arrows for one pane grids\n\t\tvar spaceTaken = g_options.gridpanel_padding_border_top + g_options.gridpanel_padding_border_bottom;\n\t\tvar maxGridHeight = g_temp.panelHeight - spaceTaken;\n\t\t\n\t\tif(g_options.gridpanel_arrows_always_on == false){\n\t\t\tvar numPanes = g_objGrid.getNumPanesEstimationByHeight(maxGridHeight);\n\t\t\tif(numPanes == 1)\n\t\t\t\treturn(maxGridHeight);\n\t\t}\n\t\t\n\t\t//count the size with arrows\n\t\tvar arrowsSize = g_functions.getElementSize(g_objArrowNext);\n\t\tvar arrowsHeight = arrowsSize.height;\n\t\t\n\t\tvar spaceTaken = arrowsHeight + g_options.gridpanel_arrows_padding_vert;\n\t\t\n\t\tif(g_options.gridpanel_vertical_scroll == true)\t//in case of 2 arrows multiply by 2\n\t\t\tspaceTaken *= 2;\n\t\t\t\t\n\t\tspaceTaken += g_options.gridpanel_padding_border_top + g_options.gridpanel_padding_border_bottom;\n\t\t\n\t\tmaxGridHeight = g_temp.panelHeight - spaceTaken;\t\t\t\n\t\t\n\t\treturn(maxGridHeight);\n\t}\n\t\n\t\n\t/**\n\t * get grid maximum width\n\t */\n\tfunction getGridMaxWidth(){\n\t\t\t\t\n\t\t//check space taken without arrows for one pane grids\n\t\tvar spaceTaken = g_options.gridpanel_padding_border_left + g_options.gridpanel_padding_border_right;\n\t\t\t\t\n\t\tvar maxGridWidth = g_temp.panelWidth - spaceTaken;\n\t\t\n\t\tif(g_options.gridpanel_arrows_always_on == false){\n\t\t\tvar numPanes = g_objGrid.getNumPanesEstimationByWidth(maxGridWidth);\n\t\t\t\t\t\t\n\t\t\tif(numPanes == 1)\n\t\t\t\treturn(maxGridWidth);\n\t\t}\n\t\t\n\t\t//count the size with arrows\n\t\tvar arrowsSize = g_functions.getElementSize(g_objArrowNext);\n\t\tvar arrowsWidth = arrowsSize.width;\n\t\t\n\t\tspaceTaken += (arrowsWidth + g_options.gridpanel_arrows_padding_hor) * 2;\n\t\t\t\t\t\t\t\t\n\t\tmaxGridWidth = g_temp.panelWidth - spaceTaken;\t\t\t\n\t\t\n\t\treturn(maxGridWidth);\n\t}\n\t\t\n\t\n\t/**\n\t * enable / disable arrows according the grid\n\t */\n\tfunction setArrows(){\n\t\t\n\t\tvar showArrows = false;\n\t\tif(g_options.gridpanel_arrows_always_on == true){\n\t\t\tshowArrows = true;\n\t\t}\n\t\telse{\n\t\t\tvar numPanes = g_objGrid.getNumPanes();\n\t\t\tif(numPanes > 1)\n\t\t\t\tshowArrows = true;\n\t\t}\n\t\t\n\t\tif(showArrows == true){\t\t//show arrows\n\t\t\t\n\t\t\tg_objArrowNext.show().fadeTo(0,1);\n\t\t\tg_objArrowPrev.show().fadeTo(0,1);\n\t\t\tg_temp.arrowsVisible = true;\n\t\t\t\n\t\t}else{\t\t//hide arrows\n\t\t\t\n\t\t\tg_objArrowNext.hide();\n\t\t\tg_objArrowPrev.hide();\n\t\t\tg_temp.arrowsVisible = false;\t\t\t\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set panel size by the given height and grid width\n\t */\n\tfunction setPanelSize(){\n\t\tvar gridSize = g_objGrid.getSize();\n\t\t\t\t\n\t\t//set panel size\n\t\tif(g_temp.isHorType == true)\n\t\t\tg_temp.panelHeight = gridSize.height + g_options.gridpanel_padding_border_top + g_options.gridpanel_padding_border_bottom;\n\t\telse\n\t\t\tg_temp.panelWidth = gridSize.width + g_options.gridpanel_padding_border_left + g_options.gridpanel_padding_border_right;\n\t\t\n\t\tg_functions.setElementSize(g_objPanel, g_temp.panelWidth, g_temp.panelHeight);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place the panel without animation\n\t * @param panelDest\n\t */\n\tfunction placePanelNoAnimation(panelDest){\n\t\t\n\t\tswitch(g_temp.orientation){\n\t\t\tcase \"right\":\t\t//vertical\n\t\t\tcase \"left\":\n\t\t\t\tg_functions.placeElement(g_objPanel, panelDest, null);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n\tfunction __________EVENTS___________(){};\n\t\n\t\n\t\n\t/**\n\t * event on panel slide finish\n\t */\n\tfunction onPanelSlideFinish(){\n\t\t\t\t\n\t\tg_objThis.trigger(t.events.FINISH_MOVE);\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * init panel events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tif(g_temp.isEventsInited == true)\n\t\t\treturn(false);\n\t\t\n\t\tg_temp.isEventsInited = true;\n\t\t\t\t\n\t\tif(g_objArrowPrev){\n\t\t\tg_functions.addClassOnHover(g_objArrowPrev);\n\t\t\tg_objGrid.attachPrevPaneButton(g_objArrowPrev);\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\tif(g_objArrowNext){\n\t\t\tg_functions.addClassOnHover(g_objArrowNext);\n\t\t\tg_objGrid.attachNextPaneButton(g_objArrowNext);\t\t\t\n\t\t}\n\t\t\n\t\tg_panelBase.initEvents();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_objArrowPrev)\n\t\t\tg_functions.destroyButton(g_objArrowPrev);\n\t\t\n\t\tif(g_objArrowNext)\n\t\t\tg_functions.destroyButton(g_objArrowNext);\n\t\t\n\t\tg_panelBase.destroy();\n\t\t\n\t\tg_objGrid.destroy();\n\t}\n\t\n\t\n\tfunction ______PLACE_ELEMENTS___________(){};\n\t\n\t\n\t/**\n\t * get padding left of the grid\n\t */\n\tfunction getGridPaddingLeft(){\n\t\t\n\t\tvar gridPanelLeft = g_options.gridpanel_padding_border_left;\n\t\t\n\t\treturn(gridPanelLeft);\n\t}\n\t\n\t\n\t/**\n\t * place elements vertical - grid only\n\t */\n\tfunction placeElements_noarrows(){\n\t\t\n\t\t//place grid\n\t\tvar gridY = g_options.gridpanel_grid_align, gridPaddingY = 0;\n\t\t\n\t\tswitch(gridY){\n\t\t\tcase \"top\":\n\t\t\t\tgridPaddingY = g_options.gridpanel_padding_border_top;\n\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tgridPaddingY = g_options.gridpanel_padding_border_bottom;\t\t\t\t\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tvar gridPanelLeft = getGridPaddingLeft();\n\t\t\n\t\tvar gridElement = g_objGrid.getElement();\t\t\n\t\tg_functions.placeElement(gridElement, gridPanelLeft, gridY, 0 , gridPaddingY);\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * place elements vertical - with arrows\n\t */\n\tfunction placeElementsVert_arrows(){\n\t\t\n\t\t//place grid\n\t\tvar gridY, prevArrowY, nextArrowY, nextArrowPaddingY;\n\t\tvar objArrowSize = g_functions.getElementSize(g_objArrowPrev);\t\t\n\t\tvar objGridSize = g_objGrid.getSize();\t\t\n\t\t\n\t\t\n\t\tswitch(g_options.gridpanel_grid_align){\n\t\t\tdefault:\n\t\t\tcase \"top\":\n\t\t\t\tgridY = g_options.gridpanel_padding_border_top + objArrowSize.height + g_options.gridpanel_arrows_padding_vert;\n\t\t\tbreak;\n\t\t\tcase \"middle\":\n\t\t\t\tgridY = \"middle\";\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tgridY = g_temp.panelHeight - objGridSize.height - objArrowSize.height - g_options.gridpanel_padding_border_bottom - g_options.gridpanel_arrows_padding_vert;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t//place the grid\n\t\tvar gridPanelLeft = getGridPaddingLeft();\n\t\t\n\t\tvar gridElement = g_objGrid.getElement();\t\t\n\t\tg_functions.placeElement(gridElement, gridPanelLeft, gridY);\n\t\t\n\t\tvar objGridSize = g_objGrid.getSize();\t\t\n\t\t\t\t\t\t\n\t\t//place arrows\n\t\tswitch(g_options.gridpanel_arrows_align_vert){\n\t\t\tdefault:\n\t\t\tcase \"center\":\n\t\t\tcase \"middle\":\n\t\t\t\tprevArrowY = (objGridSize.top - objArrowSize.height) / 2;\n\t\t\t\tnextArrowY = objGridSize.bottom + (g_temp.panelHeight - objGridSize.bottom - objArrowSize.height) / 2;\n\t\t\t\tnextArrowPaddingY = 0;\n\t\t\tbreak;\n\t\t\tcase \"grid\":\n\t\t\t\tprevArrowY = objGridSize.top - objArrowSize.height - g_options.gridpanel_arrows_padding_vert_vert\n\t\t\t\tnextArrowY = objGridSize.bottom + g_options.gridpanel_arrows_padding_vert;\n\t\t\t\tnextArrowPaddingY = 0;\n\t\t\tbreak;\n\t\t\tcase \"border\":\n\t\t\tcase \"borders\":\n\t\t\t\tprevArrowY = g_options.gridpanel_padding_border_top;\t\t\t\t\n\t\t\t\tnextArrowY = \"bottom\"; \n\t\t\t\tnextArrowPaddingY = g_options.gridpanel_padding_border_bottom;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tg_functions.placeElement(g_objArrowPrev, \"center\", prevArrowY);\n\t\t\t\t\t\t\n\t\tg_functions.placeElement(g_objArrowNext, \"center\", nextArrowY, 0, nextArrowPaddingY);\n\t}\n\t\n\t\n\t/**\n\t * place elements vertical\n\t */\n\tfunction placeElementsVert(){\n\t\t\n\t\tif(g_temp.arrowsVisible == true)\n\t\t\tplaceElementsVert_arrows();\n\t\telse\n\t\t\tplaceElements_noarrows();\n\t}\n\t\n\t\n\t/**\n\t * place elements horizontal with arrows\n\t */\n\tfunction placeElementsHor_arrows(){\n\t\t\n\t\tvar arrowsY, prevArrowPadding, arrowsPaddingY, nextArrowPadding;\n\t\tvar objArrowSize = g_functions.getElementSize(g_objArrowPrev);\t\t\n\t\tvar objGridSize = g_objGrid.getSize();\n\t\t\n\t\t//place grid\n\t\tvar gridY = g_options.gridpanel_padding_border_top;\n\t\t\n\t\tswitch(g_options.gridpanel_grid_align){\n\t\t\tcase \"middle\":\n\t\t\t\t\n\t\t\t\tswitch(g_options.gridpanel_arrows_align_vert){\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar elementsHeight = objGridSize.height + g_options.gridpanel_arrows_padding_vert + objArrowSize.height;\n\t\t\t\t\t\tgridY = (g_temp.panelHeight - elementsHeight) / 2;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"border\":\n\t\t\t\t\tcase \"borders\":\n\t\t\t\t\t\tvar remainHeight = g_temp.panelHeight - objArrowSize.height - g_options.gridpanel_padding_border_bottom;\n\t\t\t\t\t\tgridY = (remainHeight - objGridSize.height) / 2;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tvar elementsHeight = objGridSize.height + objArrowSize.height + g_options.gridpanel_arrows_padding_vert;\n\t\t\t\tgridY = g_temp.panelHeight - elementsHeight - g_options.gridpanel_padding_border_bottom;\n\t\t\tbreak;\n\t\t}\n\t\t\t\t\n\t\tvar gridElement = g_objGrid.getElement();\t\t\n\t\tvar gridPanelLeft = getGridPaddingLeft();\n\t\t\n\t\tg_functions.placeElement(gridElement, gridPanelLeft, gridY);\n\t\t\n\t\tvar objGridSize = g_objGrid.getSize();\n\t\t\n\t\tswitch(g_options.gridpanel_arrows_align_vert){\n\t\t\tdefault:\n\t\t\tcase \"center\":\n\t\t\tcase \"middle\":\n\t\t\t\tarrowsY = objGridSize.bottom + (g_temp.panelHeight - objGridSize.bottom - objArrowSize.height) / 2;\n\t\t\t\tarrowsPaddingY = 0;\t\t\t\t\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"grid\":\n\t\t\t\tarrowsY = objGridSize.bottom + g_options.gridpanel_arrows_padding_vert;\n\t\t\t\tarrowsPaddingY = 0;\n\t\t\tbreak;\n\t\t\tcase \"border\":\n\t\t\tcase \"borders\":\n\t\t\t\tarrowsY = \"bottom\";\n\t\t\t\tarrowsPaddingY = g_options.gridpanel_padding_border_bottom;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tprevArrowPadding = -objArrowSize.width/2 - g_options.gridpanel_space_between_arrows / 2;\n\t\t\t\t\n\t\tg_functions.placeElement(g_objArrowPrev, \"center\", arrowsY, prevArrowPadding, arrowsPaddingY);\n\t\t\t\t\t\t\n\t\t//place next arrow\n\t\tvar nextArrowPadding = Math.abs(prevArrowPadding);\t\t//make positive\n\t\t\t\t\n\t\tg_functions.placeElement(g_objArrowNext, \"center\", arrowsY, nextArrowPadding, arrowsPaddingY);\n\t\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * place elements horizonatal\n\t */\n\tfunction placeElementsHor(){\n\t\t\n\t\tif(g_temp.arrowsVisible == true)\n\t\t\tplaceElementsHor_arrows();\n\t\telse\n\t\t\tplaceElements_noarrows();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place elements horizontal type with arrows\n\t */\n\tfunction placeElementsHorType_arrows(){\n\t\t\n\t\t//place grid\n\t\tvar gridX, prevArrowX, nextArrowX, arrowsY;\n\t\tvar objArrowSize = g_functions.getElementSize(g_objArrowPrev);\t\t\n\t\tvar objGridSize = g_objGrid.getSize();\n\t\t\n\t\tswitch(g_options.gridpanel_grid_align){\n\t\t\tdefault:\n\t\t\tcase \"left\":\n\t\t\t\tgridX = g_options.gridpanel_padding_border_left + g_options.gridpanel_arrows_padding_hor + objArrowSize.width;\n\t\t\tbreak;\n\t\t\tcase \"middle\":\n\t\t\tcase \"center\":\n\t\t\t\tgridX = \"center\";\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tgridX = g_temp.panelWidth - objGridSize.width - objArrowSize.width - g_options.gridpanel_padding_border_right - g_options.gridpanel_arrows_padding_hor;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t//place the grid\t\t\n\t\tvar gridElement = g_objGrid.getElement();\n\t\tg_functions.placeElement(gridElement, gridX, g_options.gridpanel_padding_border_top);\n\t\tobjGridSize = g_objGrid.getSize();\n\t\t\n\t\t//place arrows, count Y\n\t\tswitch(g_options.gridpanel_arrows_align_vert){\n\t\t\tdefault:\n\t\t\tcase \"center\":\n\t\t\tcase \"middle\":\n\t\t\t\tarrowsY = (objGridSize.height - objArrowSize.height) / 2 + objGridSize.top;\n\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\t\tarrowsY = g_options.gridpanel_padding_border_top + g_options.gridpanel_arrows_padding_vert;\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tarrowsY = g_temp.panelHeight - g_options.gridpanel_padding_border_bottom - g_options.gridpanel_arrows_padding_vert - objArrowSize.height;\n\t\t\tbreak;\n\t\t}\n\t\t\t\t\n\t\t//get arrows X\n\t\tswitch(g_options.gridpanel_arrows_align_hor){\n\t\t\tdefault:\n\t\t\tcase \"borders\":\n\t\t\t\tprevArrowX = g_options.gridpanel_padding_border_left;\n\t\t\t\tnextArrowX = g_temp.panelWidth - g_options.gridpanel_padding_border_right - objArrowSize.width;\n\t\t\tbreak;\n\t\t\tcase \"grid\":\n\t\t\t\tprevArrowX = objGridSize.left - g_options.gridpanel_arrows_padding_hor - objArrowSize.width;\n\t\t\t\tnextArrowX = objGridSize.right + g_options.gridpanel_arrows_padding_hor;\n\t\t\tbreak;\n\t\t\tcase \"center\":\n\t\t\t\tprevArrowX = (objGridSize.left - objArrowSize.width) / 2;\n\t\t\t\tnextArrowX = objGridSize.right + (g_temp.panelWidth - objGridSize.right - objArrowSize.width) / 2;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tg_functions.placeElement(g_objArrowPrev, prevArrowX, arrowsY);\t\t\n\t\tg_functions.placeElement(g_objArrowNext, nextArrowX, arrowsY);\n\t}\n\t\n\t\n\t/**\n\t * place elements horizontal type without arrows\n\t */\n\tfunction placeElementHorType_noarrows(){\n\t\t\n\t\tvar gridX;\n\t\tvar objGridSize = g_objGrid.getSize();\n\t\t\n\t\tswitch(g_options.gridpanel_grid_align){\n\t\t\tdefault:\n\t\t\tcase \"left\":\n\t\t\t\tgridX = g_options.gridpanel_padding_border_left;\n\t\t\tbreak;\n\t\t\tcase \"middle\":\n\t\t\tcase \"center\":\n\t\t\t\tgridX = \"center\";\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tgridX = g_temp.panelWidth - objGridSize.width - g_options.gridpanel_padding_border_right;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t//place the grid\t\t\n\t\tvar gridElement = g_objGrid.getElement();\n\t\tg_functions.placeElement(gridElement, gridX, g_options.gridpanel_padding_border_top);\n\t}\n\t\n\t\n\t/**\n\t * place elements when the grid in horizontal position\n\t */\n\tfunction placeElementsHorType(){\n\t\t\n\t\tif(g_temp.arrowsVisible == true)\n\t\t\tplaceElementsHorType_arrows();\n\t\telse\n\t\t\tplaceElementHorType_noarrows();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place the arrows\n\t */\n\tfunction placeElements(){\n\t\t\n\t\tif(g_temp.isHorType == false){\n\t\t\t\n\t\t\tif(g_options.gridpanel_vertical_scroll == true)\n\t\t\t\tplaceElementsVert();\n\t\t\telse\n\t\t\t\tplaceElementsHor();\n\t\t\t\n\t\t}else{\n\t\t\tplaceElementsHorType();\n\t\t}\n\t\t\n\t\tg_panelBase.placeElements();\n\t}\n\t\n\t\n\t/**\n\t * get panel orientation\n\t */\n\tthis.getOrientation = function(){\n\t\t\n\t\treturn(g_temp.orientation);\n\t}\n\t\n\t\n\t/**\n\t * set panel orientation (left, right, top, bottom)\n\t */\n\tthis.setOrientation = function(orientation){\n\t\t\n\t\tg_temp.orientation = orientation;\n\t\t\n\t\t//set isHorType temp variable for ease of use\n\t\tswitch(orientation){\n\t\t\tcase \"right\":\n\t\t\tcase \"left\":\n\t\t\t\tg_temp.isHorType = false;\n\t\t\tbreak;\n\t\t\tcase \"top\":\n\t\t\tcase \"bottom\":\n\t\t\t\tg_temp.isHorType = true;\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Wrong grid panel orientation: \" + orientation);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * set panel height\n\t */\n\tthis.setHeight = function(height){\n\t\t\n\t\tif(g_temp.isHorType == true)\n\t\t\tthrow new Error(\"setHeight is not appliable to this orientatio (\"+g_temp.orientation+\"). Please use setWidth\");\t\t\n\t\t\n\t\tg_temp.panelHeight = height;\n\t\tvar gridMaxHeight = getGridMaxHeight();\n\t\t\n\t\tg_objGrid.setMaxHeight(gridMaxHeight);\n\t}\n\t\n\t\n\t/**\n\t * set panel width\n\t */\n\tthis.setWidth = function(width){\n\n\t\tif(g_temp.isHorType == false)\n\t\t\tthrow new Error(\"setWidth is not appliable to this orientatio (\"+g_temp.orientation+\"). Please use setHeight\");\t\t\n\t\t\n\t\tg_temp.panelWidth = width;\n\t\t\n\t\tvar gridMaxWidth = getGridMaxWidth();\n\t\t\t\t\n\t\tg_objGrid.setMaxWidth(gridMaxWidth);\n\t}\n\t\n\t\n\t/**\n\t * init the panel\n\t */\n\tthis.init = function(gallery, customOptions){\n\t\t\n\t\tinitGridPanel(gallery, customOptions);\n\t}\n\t\n\t/**\n\t * place panel html\n\t */\n\tthis.setHtml = function(){\n\t\tsetHtmlPanel();\n\t}\n\t\n\t\n\t/**\n\t * run the panel\n\t */\n\tthis.run = function(){\n\t\t\n\t\trunPanel();\n\t}\n\t\n\t\n\t/**\n\t * get the panel element\n\t */\n\tthis.getElement = function(){\n\t\treturn(g_objPanel);\n\t}\n\t\n\t\n\t/**\n\t * get panel size object\n\t */\n\tthis.getSize = function(){\n\t\t\n\t\tvar objSize = g_functions.getElementSize(g_objPanel);\n\t\t\n\t\treturn(objSize);\n\t}\n\t\n\tthis.__________Functions_From_Base_____ = function() {}\n\t\n\t/**\n\t * tells if the panel is closed\n\t */\n\tthis.isPanelClosed = function() {\t\t\n\t\treturn (g_panelBase.isPanelClosed());\n\t}\n\n\t/**\n\t * get closed panel destanation\n\t */\n\tthis.getClosedPanelDest = function() {\n\t\treturn g_panelBase.getClosedPanelDest();\n\t}\t\n\t\t\n\t/**\n\t * open the panel\n\t */\t\n\tthis.openPanel = function(noAnimation) {\n\t\tg_panelBase.openPanel(noAnimation);\n\t}\n\t\n\t\n\t/**\n\t * close the panel (slide in)\n\t */\n\tthis.closePanel = function(noAnimation) {\n\t\tg_panelBase.closePanel(noAnimation);\t\t\n\t}\t\n\t\n\t/**\n\t * set the panel opened state\n\t */\n\tthis.setOpenedState = function(originalPos) {\n\t\tg_panelBase.setOpenedState(originalPos);\n\t}\n\n\t/**\n\t * set the panel that it's in closed state, and set original pos for opening later\n\t */\n\tthis.setClosedState = function(originalPos) {\n\t\tg_panelBase.setClosedState(originalPos);\t\n\t}\n\t\n\t\n\t/**\n\t * set panel disabled at start\n\t */\n\tthis.setDisabledAtStart = function(timeout){\n\t\t\n\t\tg_panelBase.setDisabledAtStart(timeout);\n\t\t\n\t}\n\t\n\t\n}\n\n/**\n * thumbs class\n * addon to strip gallery\n */\nfunction UGThumbsGrid(){\n\n\tvar t = this, g_objThis = jQuery(this);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper;\n\tvar g_functions = new UGFunctions(), g_arrItems, g_objGrid, g_objInner;\n\tvar g_thumbs = new UGThumbsGeneral(), g_tilesDesign = new UGTileDesign();\n\t\n\tvar g_options = {\n\t\tgrid_panes_direction: \"left\",\t\t\t\t//where panes will move -> left, bottom\n\t\tgrid_num_cols: 2,\t\t\t\t\t\t\t//number of grid columns\n\t\tgrid_min_cols: 2,\t\t\t\t\t\t\t//minimum number of columns (for horizontal type) - the tile size is dynamic \n\t\tgrid_num_rows: 2,\t\t\t\t\t\t\t//number of grid rows (for horizontal type)\n\t\tgrid_space_between_cols: 10,\t\t\t\t//space between columns\n\t\tgrid_space_between_rows: 10,\t\t\t\t//space between rows\n\t\tgrid_space_between_mobile: 10,\t\t\t\t//space between rows and cols mobile\n\t\tgrid_transition_duration: 300,\t\t\t\t//transition of the panes change duration \n\t\tgrid_transition_easing: \"easeInOutQuad\",\t//transition of the panes change easing function\n\t\tgrid_carousel: false,\t\t\t\t\t\t//next pane goes to first when last\n\t\tgrid_padding: 0,\t\t\t\t\t\t\t//set padding to the grid\n\t\tgrid_vertical_scroll_ondrag: false\t\t\t//scroll the gallery on vertical drag\n\t};\n\t\n\tthis.events = {\n\t\tPANE_CHANGE: \"pane_change\"\n\t};\n\t\n\tvar g_temp = {\n\t\t\teventSizeChange: \"thumb_size_change\",\n\t\t\tisHorizontal: false,\n\t\t\tisMaxHeight:false,\t\t//set if the height that set is max height. In that case need a height correction\n\t\t\tisMaxWidth:false,\t\t//set if the height that set is max height. In that case need a height correction\n\t\t\tgridHeight: 0,\n\t\t\tgridWidth: 0,\n\t\t\tinnerWidth: 0,\n\t\t\tinnerHeight:0,\n\t\t\tnumPanes:0,\n\t\t\tarrPanes:0,\n\t\t\tnumThumbs:0,\n\t\t\tcurrentPane:0,\n\t\t\tnumThumbsInPane:0,\n\t\t\tisNavigationVertical:false,\n\t\t\ttouchActive: false,\n\t\t\tstartScrollPos:0,\n\t\t\tisFirstTimeRun:true,\n\t\t\tisTilesMode: false,\n\t\t\tstoredEventID: \"thumbsgrid\",\n\t\t\ttileMaxWidth:null,\n\t\t\ttileMaxHeight:null,\n\t\t\tspaceBetweenCols: null,\n\t\t\tspaceBetweenRows: null\n\t\t};\n\t\n\t\n\tfunction __________GENERAL_________(){};\n\t\n\t/**\n\t * init the gallery\n\t */\n\tfunction init(gallery, customOptions, isTilesMode){\n\t\t\t\t\n\t\tg_objects = gallery.getObjects();\n\t\tg_gallery = gallery;\n\t\t\n\t\tg_gallery.attachThumbsPanel(\"grid\", t);\n\t\t\n\t\tg_objGallery = jQuery(gallery);\n\t\tg_objWrapper = g_objects.g_objWrapper;\n\t\tg_arrItems = g_objects.g_arrItems;\n\t\t\n\t\tif(isTilesMode === true)\n\t\t\tg_temp.isTilesMode = true;\n\t\t\n\t\tg_temp.numThumbs = g_arrItems.length;\n\t\t\n\t\tsetOptions(customOptions);\n\t\t\n\t\tif(g_temp.isTilesMode == true){\n\t\t\t\n\t\t\tg_tilesDesign.setFixedMode();\n\t\t\tg_tilesDesign.setApproveClickFunction(isApproveTileClick);\n\t\t\tg_tilesDesign.init(gallery, g_options);\n\t\t\t\n\t\t\tvar options_td = g_tilesDesign.getOptions();\n\t\t\tg_temp.tileMaxHeight = options_td.tile_height;\n\t\t\tg_temp.tileMaxWidth = options_td.tile_width;\n\t\t\t\n\t\t\tg_thumbs = g_tilesDesign.getObjThumbs();\n\t\t}else{\n\t\t\t\n\t\t\t//disable the dynamic size in thumbs\n\t\t\tcustomOptions.thumb_fixed_size = true;\n\t\t\t\n\t\t\tg_thumbs.init(gallery, customOptions);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set the grid panel html\n\t */\n\tfunction setHtml(parentContainer){\n\t\t\n\t\tvar objParent = g_objWrapper;\n\t\t\n\t\tif(parentContainer)\n\t\t\tobjParent = parentContainer;\n\t\t\n\t\tobjParent.append(\"
\");\t\t \n\t\tg_objGrid = objParent.children(\".ug-thumbs-grid\");\n\t\tg_objInner = g_objGrid.children(\".ug-thumbs-grid-inner\");\t\t\n\t\t\n\t\t//put the thumbs to inner strip\n\t\t\n\t\tif(g_temp.isTilesMode == true)\n\t\t\tg_tilesDesign.setHtml(g_objInner);\n\t\telse\n\t\t\tg_thumbs.setHtmlThumbs(g_objInner);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * validate before running the grid\n\t */\n\tfunction validateBeforeRun(){\n\t\t\n\t\tif(g_temp.isHorizontal == false){\t//vertical type\t\t\t\n\t\t\tif(g_temp.gridHeight == 0)\n\t\t\t\tthrow new Error(\"You must set height before run.\");\t\t\n\t\t}else{\n\t\t\tif(g_temp.gridWidth == 0)\n\t\t\t\tthrow new Error(\"You must set width before run.\");\t\t\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * run the gallery after init and set html\n\t */\n\tfunction run(){\n\t\t\n\t\tvar selectedItem = g_gallery.getSelectedItem();\n\t\t\n\t\tvalidateBeforeRun();\n\t\t\n\t\tif(g_temp.isFirstTimeRun == true){\n\t\t\t\n\t\t\tinitEvents();\n\t\t\t\t\t\t\n\t\t\tif(g_temp.isTilesMode == true){\n\t\t\t\t\n\t\t\t\tinitGridDynamicSize();\n\t\t\t\tinitSizeParams();\t\t\t\t\t\n\t\t\t\tg_tilesDesign.run();\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\tg_thumbs.setHtmlProperties();\n\t\t\t\tinitSizeParams();\t\t\t\n\t\t\t\tg_thumbs.loadThumbsImages();\n\t\t\t}\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(g_temp.isTilesMode == true){\n\t\t\t\t\n\t\t\t\t//check if dynamic size changed. If do, run the thumbs again\n\t\t\t\tvar isChanged = initGridDynamicSize();\n\t\t\t\t\n\t\t\t\tif(isChanged == true){\n\t\t\t\t\tinitSizeParams();\t\t\t\t\t\n\t\t\t\t\tg_tilesDesign.run();\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\t\t\n\t\tpositionThumbs();\n\t\t\n\t\tif(g_temp.isFirstTimeRun == true && g_temp.isTilesMode){\n\t\t\t\n\t\t\tvar objTiles = g_thumbs.getThumbs();\n\t\t\t\n\t\t\t//fire size change event\n\t\t\tobjTiles.each(function(index, tile){\n\t\t\t\t\n\t\t\t\tg_objWrapper.trigger(g_temp.eventSizeChange, jQuery(tile));\n\t\t\t});\n\t\t\t\n\t\t\tobjTiles.fadeTo(0,1);\n\t\t}\n\t\t\t\n\t\tif(selectedItem != null)\n\t\t\tscrollToThumb(selectedItem.index);\n\t\t\n\t\t//trigger pane change event on the start\n\t\tg_objThis.trigger(t.events.PANE_CHANGE, g_temp.currentPane);\n\t\t\n\t\tg_temp.isFirstTimeRun = false;\n\t}\n\t\n\t/**\n\t * get thumb size object\n\t */\n\tfunction getThumbsSize(){\n\t\tif(g_temp.isTilesMode == true)\n\t\t\tvar objThumbSize = g_tilesDesign.getGlobalTileSize();\n\t\telse\n\t\t\tvar objThumbSize = g_thumbs.getGlobalThumbSize();\n\t\t\n\t\treturn(objThumbSize);\n\t}\n\t\n\t\n\t/**\n\t * init grid dynamic size (tiles mode)\n\t */\n\tfunction initGridDynamicSize(){\n\t\t\n\t\tif(g_temp.isTilesMode == false)\n\t\t\tthrow new Error(\"Dynamic size can be set only in tiles mode\");\n\t\t\n\t\tvar isChanged = false;\n\t\tvar isMobile = g_gallery.isMobileMode();\n\t\t\n\t\t//--- set space between cols and rows\n\t\t\n\t\tvar spaceOld = g_temp.spaceBetweenCols;\n\t\t\n\t\tif(isMobile == true){\n\t\t\tg_temp.spaceBetweenCols = g_options.grid_space_between_mobile;\n\t\t\tg_temp.spaceBetweenRows = g_options.grid_space_between_mobile;\n\t\t}else{\n\t\t\tg_temp.spaceBetweenCols = g_options.grid_space_between_cols;\n\t\t\tg_temp.spaceBetweenRows = g_options.grid_space_between_rows;\n\t\t}\n\t\t\n\t\tif(g_temp.spaceBetweenCols != spaceOld)\n\t\t\tisChanged = true;\n\t\t\n\t\t//set tile size\n\t\t\n\t\tvar lastThumbSize = getThumbsSize();\n\t\tvar lastThumbWidth = lastThumbSize.width;\n\t\t\n\t\tvar tileWidth = g_temp.tileMaxWidth;\n\t\tvar numCols = g_functions.getNumItemsInSpace(g_temp.gridWidth, g_temp.tileMaxWidth, g_temp.spaceBetweenCols);\n\t\t\n\t\tif(numCols < g_options.grid_min_cols){\n\t\t\ttileWidth = g_functions.getItemSizeInSpace(g_temp.gridWidth, g_options.grid_min_cols, g_temp.spaceBetweenCols);\n\t\t}\n\t\t\n\t\tg_tilesDesign.setTileSizeOptions(tileWidth);\n\t\t\n\t\tif(tileWidth != lastThumbWidth)\n\t\t\tisChanged = true;\n\t\t\n\t\t\n\t\treturn(isChanged);\n\t}\n\t\n\t\n\t/**\n\t * init grid size horizontal\n\t * get height param\n\t */\n\tfunction initSizeParamsHor(){\n\t\t\t\t\n\t\tvar objThumbSize = getThumbsSize();\n\t\t\n\t\tvar thumbsHeight = objThumbSize.height;\n\t\t\n\t\t//set grid size\n\t\tvar gridWidth = g_temp.gridWidth;\n\t\tvar gridHeight = g_options.grid_num_rows * thumbsHeight + (g_options.grid_num_rows-1) * g_temp.spaceBetweenRows + g_options.grid_padding*2;\n\t\t\n\t\tg_temp.gridHeight = gridHeight;\n\t\t\n\t\tg_functions.setElementSize(g_objGrid, gridWidth, gridHeight);\n\t\n\t\t//set inner size (as grid size, will be corrected after placing thumbs\n\t\tg_functions.setElementSize(g_objInner, gridWidth, gridHeight);\n\t\t\n\t\t//set initial inner size params\n\t\tg_temp.innerWidth = gridWidth;\n\t\tg_temp.innerHeight = gridHeight;\n\t}\n\t\n\t\n\t/**\n\t * init size params vertical\n\t */\n\tfunction initSizeParamsVert(){\n\n\t\tvar objThumbSize = getThumbsSize();\n\t\t\n\t\tvar thumbsWidth = objThumbSize.width;\n\t\t\n\t\t//set grid size\n\t\tvar gridWidth = g_options.grid_num_cols * thumbsWidth + (g_options.grid_num_cols-1) * g_temp.spaceBetweenCols + g_options.grid_padding*2;\n\t\tvar gridHeight = g_temp.gridHeight;\n\t\t\n\t\tg_temp.gridWidth = gridWidth;\n\t\t\n\t\tg_functions.setElementSize(g_objGrid, gridWidth, gridHeight);\n\t\n\t\t//set inner size (as grid size, will be corrected after placing thumbs\n\t\tg_functions.setElementSize(g_objInner, gridWidth, gridHeight);\n\t\t\n\t\t//set initial inner size params\n\t\tg_temp.innerWidth = gridWidth;\n\t\tg_temp.innerHeight = gridHeight;\n\t\t\n\t}\n\t\n\t/**\n\t * init grid size\n\t */\n\tfunction initSizeParams(){\n\t\t\n\t\tif(g_temp.isHorizontal == false)\n\t\t\tinitSizeParamsVert();\n\t\telse\n\t\t\tinitSizeParamsHor();\n\t\t\n\t}\n\n\t\n\n\t/**\n\t * goto pane by index\n\t */\n\tfunction scrollToThumb(thumbIndex){\n\t\t\n\t\tvar paneIndex = getPaneIndexByThumbIndex(thumbIndex);\n\t\tif(paneIndex == -1)\n\t\t\treturn(false);\n\t\t\t\t\n\t\tt.gotoPane(paneIndex, \"scroll\");\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * set the options of the strip\n\t */\n\tfunction setOptions(objOptions){\n\t\t\n\t\tg_options = jQuery.extend(g_options, objOptions);\n\t\t\n\t\tg_thumbs.setOptions(objOptions);\n\t\t\n\t\t//set vertical or horizon\n\t\tg_temp.isNavigationVertical = (g_options.grid_panes_direction == \"top\" || g_options.grid_panes_direction == \"bottom\")\n\t\t\n\t\tg_temp.spaceBetweenCols = g_options.grid_space_between_cols;\n\t\tg_temp.spaceBetweenRows = g_options.grid_space_between_rows;\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * position the thumbs and init panes horizontally\n\t */\n\tfunction positionThumb_hor(){\n\t\t\t\t\n\t\tvar arrThumbs = g_objInner.children(\".ug-thumb-wrapper\");\n\t\t\n\t\tvar posx = 0;\n\t\tvar posy = 0;\n\t\tvar counter = 0;\n\t\tvar baseX = 0;\n\t\tvar maxx = 0, maxy = 0;\n\t\tg_temp.innerWidth = 0;\n\t\tg_temp.numPanes = 1;\n\t\tg_temp.arrPanes = [];\n\t\tg_temp.numThumbsInPane = 0;\n\t\t\n\t\t//set first pane position\n\t\tg_temp.arrPanes.push(baseX);\t\n\t\t\n\t\tvar numThumbs = arrThumbs.length;\n\t\t\t\n\t\tfor(i=0;i < numThumbs; i++){\n\t\t\tvar objThumb = jQuery(arrThumbs[i]);\n\t\t\tg_functions.placeElement(objThumb, posx, posy);\n\t\t\t\n\t\t\tvar thumbWidth = objThumb.outerWidth();\n\t\t\tvar thumbHeight = objThumb.outerHeight();\n\t\t\t\n\t\t\t//count maxx\n\t\t\tif(posx > maxx)\n\t\t\t\tmaxx = posx;\n\t\t\t\n\t\t\t//count maxy\n\t\t\tvar endY = posy + thumbHeight;\n\t\t\tif(endY > maxy)\n\t\t\t\tmaxy = endY;\n\t\t\t\n\t\t\t//count maxx end\n\t\t\tvar endX = maxx + thumbWidth;\n\t\t\tif(endX > g_temp.innerWidth)\n\t\t\t\tg_temp.innerWidth = endX;\n\t\t\t\t\t\t\n\t\t\tposx += thumbWidth + g_temp.spaceBetweenCols;\n\t\t\t\n\t\t\t//next row\n\t\t\tcounter++;\n\t\t\tif(counter >= g_options.grid_num_cols){\n\t\t\t\tposy += thumbHeight + g_temp.spaceBetweenRows;\n\t\t\t\tposx = baseX;\n\t\t\t\tcounter = 0;\n\t\t\t}\n\t\t\t\n\t\t\t//count number thumbs in pane\n\t\t\tif(g_temp.numPanes == 1)\n\t\t\t\tg_temp.numThumbsInPane++;\n\t\t\t\n\t\t\t//prepare next pane\n\t\t\tif((posy + thumbHeight) > g_temp.gridHeight){\n\t\t\t\tposy = 0;\n\t\t\t\tbaseX = g_temp.innerWidth + g_temp.spaceBetweenCols;\n\t\t\t\tposx = baseX;\n\t\t\t\tcounter = 0;\n\t\t\t\t\t\t\t\t\n\t\t\t\t//correct max height size (do it once only)\n\t\t\t\tif(g_temp.isMaxHeight == true && g_temp.numPanes == 1){\n\t\t\t\t\tg_temp.gridHeight = maxy;\n\t\t\t\t\tg_objGrid.height(g_temp.gridHeight);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t//save next pane props (if exists)\n\t\t\t\tif(i < (numThumbs - 1)){\n\t\t\t\t\tg_temp.numPanes++;\n\t\t\t\t\t\n\t\t\t\t\t//set next pane position\n\t\t\t\t\tg_temp.arrPanes.push(baseX);\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t//set inner strip width and height\n\t\tg_objInner.width(g_temp.innerWidth);\n\t\t\n\t\t//set grid height\n\t\tif(g_temp.isMaxHeight == true && g_temp.numPanes == 1){\n\t\t\tg_temp.gridHeight = maxy;\n\t\t\tg_objGrid.height(maxy);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * position the thumbs and init panes vertically\n\t */\n\tfunction positionThumb_vert(){\n\t\tvar arrThumbs = g_objInner.children(\".ug-thumb-wrapper\");\n\t\t\n\t\tvar posx = 0;\n\t\tvar posy = 0;\n\t\tvar maxy = 0;\n\t\tvar counter = 0;\n\t\tvar baseX = 0;\n\t\tvar paneStartY = 0;\n\t\t\n\t\tg_temp.innerWidth = 0;\n\t\tg_temp.numPanes = 1;\n\t\tg_temp.arrPanes = [];\n\t\tg_temp.numThumbsInPane = 0;\n\t\t\n\t\t//set first pane position\n\t\tg_temp.arrPanes.push(baseX);\n\t\t\n\t\tvar numThumbs = arrThumbs.length;\n\t\t\t\n\t\tfor(i=0;i < numThumbs; i++){\n\t\t\tvar objThumb = jQuery(arrThumbs[i]);\n\t\t\tg_functions.placeElement(objThumb, posx, posy);\n\t\t\t\n\t\t\tvar thumbWidth = objThumb.outerWidth();\n\t\t\tvar thumbHeight = objThumb.outerHeight();\n\t\t\t\t\t\t\t\t\t\n\t\t\tposx += thumbWidth + g_temp.spaceBetweenCols;\n\t\t\t\n\t\t\tvar endy = (posy + thumbHeight);\n\t\t\tif(endy > maxy)\n\t\t\t\tmaxy = endy;\n\t\t\t\n\t\t\t//next row\n\t\t\tcounter++;\n\t\t\tif(counter >= g_options.grid_num_cols){\n\t\t\t\tposy += thumbHeight + g_temp.spaceBetweenRows;\n\t\t\t\tposx = baseX;\n\t\t\t\tcounter = 0;\n\t\t\t}\n\t\t\t\n\t\t\t//count number thumbs in pane\n\t\t\tif(g_temp.numPanes == 1)\n\t\t\t\tg_temp.numThumbsInPane++;\n\t\t\t\t\t\t\n\t\t\t//prepare next pane\n\t\t\tendy = (posy + thumbHeight);\n\t\t\tvar paneMaxY = paneStartY + g_temp.gridHeight;\n\t\t\t\n\t\t\t//advance next pane\n\t\t\tif(endy > paneMaxY){\n\t\t\t\t\n\t\t\t\t//correct max height size (do it once only)\n\t\t\t\tif(g_temp.isMaxHeight == true && g_temp.numPanes == 1){\n\t\t\t\t\tg_temp.gridHeight = maxy;\n\t\t\t\t\tg_objGrid.height(g_temp.gridHeight);\n\t\t\t\t\tpaneMaxY = g_temp.gridHeight;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tposy = paneMaxY + g_temp.spaceBetweenRows;\t\t\t\t\t\n\t\t\t\tpaneStartY = posy;\n\t\t\t\tbaseX = 0;\n\t\t\t\tposx = baseX;\n\t\t\t\tcounter = 0;\n\t\t\t\t\n\t\t\t\t//save next pane props (if exists)\n\t\t\t\tif(i < (numThumbs - 1)){\n\t\t\t\t\tg_temp.numPanes++;\n\t\t\t\t\t\n\t\t\t\t\t//set next pane position\n\t\t\t\t\tg_temp.arrPanes.push(posy);\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}//for\n\t\t\t\t\n\t\t//set inner height \n\t\tg_objInner.height(maxy);\n\t\tg_temp.innerHeight = maxy;\n\t\t\n\t\t//set grid height\n\t\tif(g_temp.isMaxHeight == true && g_temp.numPanes == 1){\n\t\t\tg_temp.gridHeight = maxy;\n\t\t\tg_objGrid.height(maxy);\n\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * position the thumbs horizontal type\n\t */\t\n\tfunction positionThumb_hortype(){\n\t\t\t\t\n\t\tvar arrThumbs = g_objInner.children(\".ug-thumb-wrapper\");\n\t\t\n\t\tvar baseX = g_options.grid_padding;\n\t\tvar baseY = g_options.grid_padding;\n\t\tvar posy = baseY;\n\t\tvar posx = baseX;\n\t\tvar maxx = 0, maxy = 0, paneMaxY = 0, gridMaxY = 0;\n\t\tvar rowsCounter = 0;\n\t\t\n\t\tg_temp.innerWidth = 0;\n\t\tg_temp.numPanes = 1;\n\t\tg_temp.arrPanes = [];\n\t\tg_temp.numThumbsInPane = 0;\n\t\t\n\t\t//set first pane position\n\t\tg_temp.arrPanes.push(baseX-g_options.grid_padding);\t\n\t\t\n\t\tvar numThumbs = arrThumbs.length;\n\t\t\t\t\n\t\tfor(i=0;i < numThumbs; i++){\n\t\t\tvar objThumb = jQuery(arrThumbs[i]);\n\t\t\t\n\t\t\tvar thumbWidth = objThumb.outerWidth();\n\t\t\tvar thumbHeight = objThumb.outerHeight();\n\t\t\t\n\t\t\t//check end of the size, start a new row\n\t\t\tif((posx - baseX + thumbWidth) > g_temp.gridWidth){\n\t\t\t\trowsCounter++;\n\t\t\t\tposy = 0;\n\t\t\t\t\n\t\t\t\tif(rowsCounter >= g_options.grid_num_rows){\n\t\t\t\t\t\n\t\t\t\t\t//change to a new pane\t\t\t\t\t\n\t\t\t\t\trowsCounter = 0;\n\t\t\t\t\tbaseX = posx;\n\t\t\t\t\tposy = baseY;\n\t\t\t\t\tpaneMaxY = 0;\n\t\t\t\t\t\n\t\t\t\t\t//change grid width to max width\n\t\t\t\t\tif(g_temp.numPanes == 1){\n\t\t\t\t\t\tg_temp.gridWidth = maxx+g_options.grid_padding;\n\t\t\t\t\t\tg_objGrid.width(g_temp.gridWidth);\n\t\t\t\t\t\t\n\t\t\t\t\t\tg_temp.gridHeight = gridMaxY + g_options.grid_padding;\n\t\t\t\t\t\tg_objGrid.height(g_temp.gridHeight);\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tg_temp.numPanes++;\n\t\t\t\t\tg_temp.arrPanes.push(baseX-g_options.grid_padding);\n\t\t\t\t\t\n\t\t\t\t}else{\t\t\t//start new line in existing pane\n\t\t\t\t\tposx = baseX;\n\t\t\t\t\tposy = paneMaxY + g_temp.spaceBetweenRows;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t//place the thumb\n\t\t\tg_functions.placeElement(objThumb, posx, posy);\n\t\t\t\n\t\t\t//count maxx\n\t\t\tvar endX = posx + thumbWidth;\n\t\t\tif(endX > maxx)\n\t\t\t\tmaxx = endX;\n\t\t\t\n\t\t\t//count maxy\n\t\t\tvar endY = posy + thumbHeight;\n\t\t\t\n\t\t\tif(endY > paneMaxY)\t\t//pane height\n\t\t\t\tpaneMaxY = endY;\n\t\t\t\n\t\t\tif(endY > gridMaxY)\t\t//total height\n\t\t\t\tgridMaxY = endY;\n\t\t\t\n\t\t\tif(endY > maxy)\n\t\t\t\tmaxy = endY;\n\t\t\t\n\t\t\t//count maxx end\n\t\t\tvar endX = maxx + thumbWidth;\n\t\t\tif(endX > g_temp.innerWidth)\n\t\t\t\tg_temp.innerWidth = endX;\n\t\t\t\t\t\t\n\t\t\tposx += thumbWidth + g_temp.spaceBetweenCols;\n\t\t\t\t\t\t\n\t\t\t//count number thumbs in pane\n\t\t\tif(g_temp.numPanes == 1)\n\t\t\t\tg_temp.numThumbsInPane++;\n\t\t\t\n\t\t\t\n\t\t}//end for\n\t\t\n\t\t//set inner strip width and height\n\t\tg_temp.innerWidth = maxx + g_options.grid_padding;\n\t\tg_temp.innerHeight = gridMaxY + g_options.grid_padding;\n\t\t\n\t\tg_objInner.width(g_temp.innerWidth);\n\t\tg_objInner.height(g_temp.innerHeight);\n\n\n\t\t//set grid height\n\t\tif(g_temp.numPanes == 1){\n\t\t\tg_temp.gridWidth = maxx + g_options.grid_padding;\n\t\t\tg_temp.gridHeight = gridMaxY + g_options.grid_padding;\n\t\t\t\n\t\t\tg_objGrid.width(g_temp.gridWidth);\n\t\t\tg_objGrid.height(g_temp.gridHeight);\n\t\t\t\t\t\t\n\t\t}\n\t\t\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * position the thumbs and init panes related and width related vars\n\t */\n\tfunction positionThumbs(){\n\t\t\n\t\tif(g_temp.isHorizontal == false){\t\t//position vertical type\n\t\t\t\n\t\t\tif(g_temp.isNavigationVertical)\n\t\t\t\tpositionThumb_vert();\n\t\t\telse\n\t\t\t\tpositionThumb_hor();\n\t\t\t\n\t\t}else{\n\t\t\tpositionThumb_hortype();\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * validate thumb index\n\t */\n\tfunction validateThumbIndex(thumbIndex){\n\t\t\n\t\tif(thumbIndex < 0 || thumbIndex >= g_temp.numThumbs){\n\t\t\tthrow new Error(\"Thumb not exists: \" + thumbIndex);\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n\t/**\n\t * \n\t * validate that the pane index exists\n\t */\n\tfunction validatePaneIndex(paneIndex){\n\t\t\n\t\tif(paneIndex >= g_temp.numPanes || paneIndex < 0){\n\t\t\tthrow new Error(\"Pane \" + index + \" doesn't exists.\");\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t/**\n\t * validate inner position\n\t */\n\tfunction validateInnerPos(pos){\n\t\t\t\t\n\t\tvar absPos = Math.abs(pos);\n\t\t\n\t\tif(g_temp.isNavigationVertical == false){\n\t\t\t\n\t\t\tif(absPos < 0 || absPos >= g_temp.innerWidth){\n\t\t\t\tthrow new Error(\"wrong inner x position: \" + pos);\n\t\t\t\treturn(false);\n\t\t\t}\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(absPos < 0 || absPos >= g_temp.innerHeight){\n\t\t\t\tthrow new Error(\"wrong inner y position: \" + pos);\n\t\t\t\treturn(false);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n\t\n\t\n\t/**\n\t * \n\t * set inner strip position\n\t */\n\tfunction setInnerPos(pos){\n\t\t\n\t\tvar objCss = getInnerPosObj(pos);\n\t\tif(objCss == false)\n\t\t\treturn(false);\n\t\t\n\t\tg_objInner.css(objCss);\n\t}\n\t\n\t\n\t/**\n\t * animate inner to some position\n\t */\n\tfunction animateInnerTo(pos){\n\t\t\n\t\tvar objCss = getInnerPosObj(pos);\n\t\tif(objCss == false)\n\t\t\treturn(false);\n\t\t\n\t\tg_objInner.stop(true).animate(objCss ,{\n\t\t\tduration: g_options.grid_transition_duration,\n\t\t\teasing: g_options.grid_transition_easing,\n\t\t\tqueue: false\n\t\t});\n\t\t\n\t}\n\t\n\t/**\n\t * animate back to current pane\n\t */\n\tfunction animateToCurrentPane(){\n\t\t\n\t\tvar innerPos = -g_temp.arrPanes[g_temp.currentPane];\n\t\tanimateInnerTo(innerPos);\n\t}\n\t\n\t\t\n\t\n\tfunction __________GETTERS_________(){};\n\t\n\t/**\n\t * get inner object size according the orientation\n\t */\n\tfunction getInnerSize(){\n\t\t\n\t\tif(g_temp.isNavigationVertical == true)\n\t\t\treturn(g_temp.innerHeight);\n\t\telse\n\t\t\treturn(g_temp.innerWidth);\n\t}\n\t\n\t\n\t/**\n\t * get pane width or height according the orientation\n\t */\n\tfunction getPaneSize(){\n\t\t\n\t\tif(g_temp.isNavigationVertical == true)\n\t\t\treturn(g_temp.gridHeight);\n\t\telse\n\t\t\treturn(g_temp.gridWidth);\n\t}\n\t\n\t\n\t/**\n\t * get object of iner position move\n\t */\n\tfunction getInnerPosObj(pos){\n\t\t\t\t\n\t\tvar obj = {};\n\t\tif(g_temp.isNavigationVertical == true)\n\t\t\tobj.top = pos + \"px\";\n\t\telse\n\t\t\tobj.left = pos + \"px\";\n\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * get mouse position according the orientation\n\t */\n\tfunction getMousePos(event){\n\t\t\n\t\tvar mousePos = g_functions.getMousePosition(event);\n\t\t\n\t\tif(g_temp.isNavigationVertical == true)\n\t\t\treturn(mousePos.pageY);\n\t\telse\n\t\t\treturn(mousePos.pageX);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get inner position according the orientation\n\t */\n\tfunction getInnerPos(){\n\t\t\n\t\tvar objSize = g_functions.getElementSize(g_objInner);\n\t\t\n\t\tif(g_temp.isNavigationVertical == true)\n\t\t\treturn(objSize.top);\n\t\telse\n\t\t\treturn(objSize.left);\n\t\n\t}\n\t\n\t/**\n\t * get pane by thumb index\n\t */\n\tfunction getPaneIndexByThumbIndex(thumbIndex){\n\t\t\n\t\t//validate thumb index\n\t\tif(validateThumbIndex(thumbIndex) == false)\n\t\t\treturn(-1);\n\t\t\n\t\tvar numPane = Math.floor(thumbIndex / g_temp.numThumbsInPane);\n\t\t\n\t\treturn(numPane);\n\t}\n\t\n\t/**\n\t * get position of some pane\n\t */\n\tfunction getPanePosition(index){\n\t\t\t\t\t\t\t\t\n\t\tvar pos = g_temp.arrPanes[index];\n\t\treturn(pos);\n\t}\n\t\n\t\n\t/**\n\t * return if passed some significant movement, for thumb click\n\t */\n\tfunction isSignificantPassed(){\n\t\t\n\t\tif(g_temp.numPanes == 1)\n\t\t\treturn(false);\n\t\t\n\t\tvar objData = g_functions.getStoredEventData(g_temp.storedEventID);\n\t\t\n\t\tvar passedTime = objData.diffTime;\n\t\t\n\t\tvar currentInnerPos = getInnerPos();\n\t\tvar passedDistanceAbs = Math.abs(currentInnerPos - objData.startInnerPos);\n\t\t\n\t\tif(passedDistanceAbs > 30)\n\t\t\treturn(true);\n\t\t\n\t\tif(passedDistanceAbs > 5 && passedTime > 300)\n\t\t\treturn(true);\n\t\t\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t\n\t/**\n\t * check if the movement that was held is valid for pane change\n\t */\n\tfunction isMovementValidForChange(){\n\t\t\n\t\tvar objData = g_functions.getStoredEventData(g_temp.storedEventID);\n\t\t\n\t\t//check position, if more then half, move\n\t\tvar currentInnerPos = getInnerPos();\n\t\tdiffPos = Math.abs(objData.startInnerPos - currentInnerPos);\n\t\t\t\t\n\t\tvar paneSize = getPaneSize();\n\t\tvar breakSize = Math.round(paneSize * 3 / 8);\n\t\t\n\t\tif(diffPos >= breakSize)\n\t\t\treturn(true);\n\t\t\n\t\tif(objData.diffTime < 300 && diffPos > 25)\n\t\t\treturn(true);\n\t\t\t\t\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * return if passed some significant movement\n\t */\n\tfunction isApproveTileClick(){\n\t\t\n\t\tif(g_temp.numPanes == 1)\n\t\t\treturn(true);\n\t\t\t\n\t\tvar isApprove = g_functions.isApproveStoredEventClick(g_temp.storedEventID, g_temp.isNavigationVertical);\n\t\t\n\t\treturn(isApprove);\n\t}\n\t\n\t\n\tfunction __________EVENTS_______(){};\n\t\n\t\n\t/**\n\t * on thumb click event\n\t */\n\tfunction onThumbClick(event){\n\t\t\n\t\t//event.preventDefault();\n\t\tif(isSignificantPassed() == true)\n\t\t\treturn(true);\n\t\t\n\t\t//run select item operation\n\t\tvar objThumb = jQuery(this);\n\t\tvar objItem = g_thumbs.getItemByThumb(objThumb);\n\t\t\n\t\tg_gallery.selectItem(objItem);\n\t}\n\t\n\t\n\t/**\n\t * on touch start\n\t */\n\tfunction onTouchStart(event){\n\t\t\t\t\n\t\tif(g_temp.numPanes == 1)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_temp.touchActive == true)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_temp.isTilesMode == false)\n\t\t\tevent.preventDefault();\n\t\t\n\t\tg_temp.touchActive = true;\n\t\t\n\t\tvar addData = {\n\t\t\t\tstartInnerPos: getInnerPos()\n\t\t};\n\t\t\n\t\tg_functions.storeEventData(event, g_temp.storedEventID, addData);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * handle scroll top, return if scroll mode or not\n\t */\n\tfunction handleScrollTop(){\n\t\t\n\t\tif(g_options.grid_vertical_scroll_ondrag == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_temp.isNavigationVertical == true)\n\t\t\treturn(false);\n\t\t\n\t\tvar scrollDir = g_functions.handleScrollTop(g_temp.storedEventID);\n\t\t\n\t\tif(scrollDir === \"vert\")\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * on touch move\n\t */\n\tfunction onTouchMove(event){\n\t\t\t\t\n\t\tif(g_temp.touchActive == false)\n\t\t\treturn(true);\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\tg_functions.updateStoredEventData(event, g_temp.storedEventID);\n\t\t\n\t\tvar objData = g_functions.getStoredEventData(g_temp.storedEventID, g_temp.isNavigationVertical);\n\t\t\n\t\t//check if was vertical scroll\n\t\tvar isScroll = handleScrollTop();\n\t\tif(isScroll)\n\t\t\treturn(true);\n\t\t\n\t\t\n\t\tvar diff = objData.diffMousePos;\n\t\tvar innerPos = objData.startInnerPos + diff;\n\t\tvar direction = (diff > 0) ? \"prev\":\"next\";\n\t\tvar lastPaneSize = g_temp.arrPanes[g_temp.numPanes-1];\n\t\t\n\t\t//slow down when off limits\n\t\tif(g_options.grid_carousel == false && innerPos > 0 && direction == \"prev\"){\n\t\t\tinnerPos = innerPos / 3;\n\t\t}\n\t\t\n\t\t//debugLine({lastSize:lastPaneSize,innerPos: innerPos});\n\t\t\n\t\tif(g_options.grid_carousel == false && innerPos < -lastPaneSize && direction == \"next\"){\n\t\t\tinnerPos = objData.startInnerPos + diff / 3;\n\t\t}\n\t\t\n\t\tsetInnerPos(innerPos);\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * on touch end\n\t * change panes or return to current pane\n\t */\n\tfunction onTouchEnd(event){\n\t\t\n\t\tif(g_temp.touchActive == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_functions.updateStoredEventData(event, g_temp.storedEventID);\n\t\tvar objData = g_functions.getStoredEventData(g_temp.storedEventID, g_temp.isNavigationVertical);\n\t\t\n\t\t//event.preventDefault();\n\t\tg_temp.touchActive = false;\n\t\t\n\t\tif(isMovementValidForChange() == false){\n\t\t\tanimateToCurrentPane();\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t//move pane or return back\n\t\tvar innerPos = getInnerPos();\n\t\tvar diff = innerPos - objData.startInnerPos;\n\t\tvar direction = (diff > 0) ? \"prev\":\"next\";\n\t\t\n\t\tif(direction == \"next\"){\n\t\t\t\t\t\t\n\t\t\tif(g_options.grid_carousel == false && t.isLastPane())\n\t\t\t\tanimateToCurrentPane();\n\t\t\telse\n\t\t\t\tt.nextPane();\t\t\t\n\t\t}\n\t\telse{\n\t\t\t\t\t\t\n\t\t\tif(g_options.grid_carousel == false && t.isFirstPane()){\n\t\t\t\tanimateToCurrentPane();\n\t\t\t}\n\t\t\telse\n\t\t\t\tt.prevPane();\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on item change\n\t */\n\tfunction onItemChange(){\n\t\t\t\n\t\tvar objItem = g_gallery.getSelectedItem();\n\t\tg_thumbs.setThumbSelected(objItem.objThumbWrapper);\n\t\t\n\t\tscrollToThumb(objItem.index);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init panel events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tif(g_temp.isTilesMode == false){\n\t\t\t\n\t\t\tg_thumbs.initEvents();\t\t\n\t\t\tvar objThumbs = g_objGrid.find(\".ug-thumb-wrapper\");\n\t\t\tobjThumbs.on(\"click touchend\",onThumbClick);\n\t\t\t\n\t\t\tg_objGallery.on(g_gallery.events.ITEM_CHANGE, onItemChange);\n\t\t\t\n\t\t}else{\n\t\t\tg_tilesDesign.initEvents();\n\t\t}\n\t\t\n\t\t//touch drag events\n\t\t\n\t\t//slider mouse down - drag start\n\t\tg_objGrid.bind(\"mousedown touchstart\",onTouchStart);\n\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").bind(\"mousemove touchmove\",onTouchMove);\n\t\t\n\t\t//on body mouse up - drag end\n\t\tjQuery(window).add(\"body\").bind(\"mouseup touchend\", onTouchEnd);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_temp.isTilesMode == false){\n\t\t\t\n\t\t\tvar objThumbs = g_objGrid.find(\".ug-thumb-wrapper\");\n\t\t\tobjThumbs.off(\"click\");\n\t\t\tobjThumbs.off(\"touchend\");\n\t\t\tg_objGallery.on(g_gallery.events.ITEM_CHANGE);\n\t\t\tg_thumbs.destroy();\t\t\n\t\t\t\t\t\t\n\t\t}else{\n\t\t\tg_tilesDesign.destroy();\n\t\t}\n\t\t\n\t\tg_objGrid.unbind(\"mousedown\");\n\t\tg_objGrid.unbind(\"touchstart\");\n\t\tjQuery(\"body\").unbind(\"mousemove\");\n\t\tjQuery(\"body\").unbind(\"touchmove\");\n\t\t\n\t\tjQuery(window).add(\"body\").unbind(\"touchend\");\n\t\tjQuery(window).add(\"body\").unbind(\"mouseup\");\n\t\t\n\t\tg_objThis.off(t.events.PANE_CHANGE);\n\t\t\n\t}\n\t\n\t\n\t\n\tthis.__________EXTERNAL_GENERAL_________ = function(){};\n\t\n\t/**\n\t * set the thumb unselected state\n\t */\n\tthis.setThumbUnselected = function(objThumbWrapper){\n\t\t\n\t\tg_thumbs.setThumbUnselected(objThumbWrapper);\n\t\t\n\t}\n\t\n\t/**\n\t * check if thmb item visible, means inside the visible part of the inner strip\n\t */\n\tthis.isItemThumbVisible = function(objItem){\n\t\tvar itemIndex = objItem.index;\n\t\tvar paneIndex = getPaneIndexByThumbIndex(itemIndex);\n\t\t\n\t\tif(paneIndex == g_temp.currentPane)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\tthis.__________EXTERNAL_API_________ = function(){};\n\t\n\t/**\n\t * get estimation of number of panes by the height of the grid.\n\t */\n\tthis.getNumPanesEstimationByHeight = function(gridHeight){\n\t\t\n\t\tif(g_temp.isTilesMode == true){\n\t\t\t\n\t\t\tvar thumbHeight = g_options.tile_height;\n\t\t\t\n\t\t}else{\n\t\t\tvar thumbsOptions = g_thumbs.getOptions();\t\t\n\t\t\tvar thumbHeight = thumbsOptions.thumb_height;\n\t\t}\n\t\t\n\t\tvar numThumbs = g_thumbs.getNumThumbs();\n\t\tvar numRows = Math.ceil(numThumbs / g_options.grid_num_cols);\n\t\t\n\t\tvar totalHeight = numRows * thumbHeight + (numRows-1) * g_temp.spaceBetweenRows;\n\t\t\t\n\t\tvar numPanes = Math.ceil(totalHeight / gridHeight);\n\t\t\n\t\treturn(numPanes);\n\t}\n\t\n\t/**\n\t * get estimation of number of panes by the width of the grid.\n\t */\n\tthis.getNumPanesEstimationByWidth = function(gridWidth){\n\t\t\n\t\tif(g_temp.isTilesMode){\n\t\t\tvar thumbWidth = g_options.tile_width;\t\t\t\n\t\t}else{\n\t\t\tvar thumbsOptions = g_thumbs.getOptions();\t\t\n\t\t\tvar thumbWidth = thumbsOptions.thumb_width;\n\t\t}\n\t\t\n\t\tvar numThumbs = g_thumbs.getNumThumbs();\n\t\tvar numCols = Math.ceil(numThumbs / g_options.grid_num_rows);\n\t\t\n\t\tvar totalWidth = numCols * thumbWidth + (numCols-1) * g_temp.spaceBetweenCols;\n\t\t\n\t\tvar numPanes = Math.ceil(totalWidth / gridWidth);\n\t\t\t\t\n\t\treturn(numPanes);\n\t}\n\t\n\t\n\t/**\n\t * get height estimation by width, works only in tiles mode\n\t */\n\tthis.getHeightEstimationByWidth = function(width){\n\t\t\n\t\tif(g_temp.isTilesMode == false)\n\t\t\tthrow new Error(\"This function works only with tiles mode\");\n\t\t\n\t\tvar numThumbs = g_thumbs.getNumThumbs();\n\t\tvar numCols = g_functions.getNumItemsInSpace(width, g_options.tile_width, g_temp.spaceBetweenCols);\n\t\tvar numRows = Math.ceil(numThumbs / numCols);\n\t\t\n\t\tif(numRows > g_options.grid_num_rows)\n\t\t\tnumRows = g_options.grid_num_rows;\n\t\t\n\t\tvar gridHeight = g_functions.getSpaceByNumItems(numRows, g_options.tile_height, g_temp.spaceBetweenRows);\n\t\tgridHeight += g_options.grid_padding * 2;\n\t\t\n\t\treturn(gridHeight);\n\t}\n\t\n\t/**\n\t * get the grid element\n\t */\n\tthis.getElement = function(){\n\t\treturn(g_objGrid);\n\t}\n\t\n\t/**\n\t * get element size and position\n\t */\n\tthis.getSize = function(){\n\t\t\n\t\tvar objSize = g_functions.getElementSize(g_objGrid);\n\t\treturn(objSize);\n\t\t\n\t}\n\t\n\t/**\n\t * get number of panes\n\t */\n\tthis.getNumPanes = function(){\n\t\t\n\t\treturn(g_temp.numPanes);\n\t}\n\t\n\t/**\n\t * get if the current pane is first\n\t */\n\tthis.isFirstPane = function(){\n\t\t\n\t\tif(g_temp.currentPane == 0)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * get if the current pane is last\n\t */\n\tthis.isLastPane = function(){\n\t\t\n\t\tif(g_temp.currentPane == (g_temp.numPanes -1) )\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * get pane number, and num panes\n\t */\n\tthis.getPaneInfo = function(){\n\t\t\n\t\tvar obj = {\n\t\t\tpane: g_temp.currentPane,\n\t\t\ttotal: g_temp.numPanes\n\t\t};\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * get current pane\n\t */\n\tthis.getPane = function(){\n\t\t\n\t\treturn(g_temp.currentPane);\n\t}\n\t\n\t\n\t/**\n\t * set grid width (horizontal type)\n\t */\n\tthis.setWidth = function(gridWidth){\n\t\tg_temp.gridWidth = gridWidth;\n\t\tg_temp.isHorizontal = true;\n\t}\n\t\n\t/**\n\t * set max width, the width will be corrected by the number of items\n\t * set vertical type\n\t */\n\tthis.setMaxWidth = function(maxWidth){\n\t\tg_temp.gridWidth = maxWidth;\n\t\tg_temp.isMaxWidth = true;\n\t\tg_temp.isHorizontal = true;\n\t}\n\t\n\t\n\t/**\n\t * set grid height (vertical type)\n\t */\n\tthis.setHeight = function(gridHeight){\n\t\tg_temp.gridHeight = gridHeight;\n\t\tg_temp.isHorizontal = false;\n\t\t\n\t}\n\t\n\t/**\n\t * set max height, the height will be corrected by the number of items\n\t * set the vertical type\n\t */\n\tthis.setMaxHeight = function(maxHeight){\n\t\tg_temp.gridHeight = maxHeight;\n\t\tg_temp.isMaxHeight = true;\n\t\tg_temp.isHorizontal = false;\n\t}\n\t\n\t\n\t/**\n\t * goto some pane\n\t * force skip current pane checks\n\t */\n\tthis.gotoPane = function(index, fromWhere){\n\t\t\n\t\tif(validatePaneIndex(index) == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(index == g_temp.currentPane)\n\t\t\treturn(false);\n\t\t\n\t\tvar innerPos = -g_temp.arrPanes[index];\n\t\t\n\t\tg_temp.currentPane = index;\n\t\tanimateInnerTo(innerPos);\n\t\t\n\t\t//trigger pane change event\n\t\tg_objThis.trigger(t.events.PANE_CHANGE, index);\n\t}\n\t\n\t\n\t/**\n\t * foreward to the next pane\n\t */\n\tthis.nextPane = function(){\n\t\t\t\t\n\t\tvar nextPaneIndex = g_temp.currentPane+1;\n\t\t\n\t\tif(nextPaneIndex >= g_temp.numPanes){\n\t\t\t\n\t\t\tif(g_options.grid_carousel == false)\n\t\t\t\treturn(true);\n\t\t\t\n\t\t\tnextPaneIndex = 0;\n\t\t}\n\t\t\n\t\tt.gotoPane(nextPaneIndex, \"next\");\n\t}\n\t\n\t\n\t/**\n\t * foreward to the next pane\n\t */\n\tthis.prevPane = function(){\n\t\t\n\t\tvar prevPaneIndex = g_temp.currentPane-1;\n\t\tif(prevPaneIndex < 0){\n\t\t\tprevPaneIndex = g_temp.numPanes-1;\n\t\t\t\n\t\t\tif(g_options.grid_carousel == false)\n\t\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tt.gotoPane(prevPaneIndex, \"prev\");\n\t}\n\t\n\t\n\t/**\n\t * set next pane button\n\t */\n\tthis.attachNextPaneButton = function(objButton){\n\t\t\n\t\tg_functions.setButtonOnClick(objButton, t.nextPane);\n\n\t\tif(g_options.grid_carousel == true)\t\t\n\t\t\treturn(true);\n\t\t\n\t\tif(t.isLastPane())\n\t\t\tobjButton.addClass(\"ug-button-disabled\");\n\t\t\n\t\t//set disabled button class if first pane\n\t\tg_objThis.on(t.events.PANE_CHANGE, function(){\n\t\t\t\n\t\t\tif(t.isLastPane())\n\t\t\t\tobjButton.addClass(\"ug-button-disabled\");\n\t\t\telse\n\t\t\t\tobjButton.removeClass(\"ug-button-disabled\");\n\t\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set prev pane button\n\t */\n\tthis.attachPrevPaneButton = function(objButton){\n\t\t\t\t\n\t\tg_functions.setButtonOnClick(objButton, t.prevPane);\n\t\t\n\t\tif(g_options.grid_carousel == true)\t\t\n\t\t\treturn(true);\n\t\t\n\t\tif(t.isFirstPane())\n\t\t\tobjButton.addClass(\"ug-button-disabled\");\n\t\t\n\t\t//set disabled button class if first pane\n\t\tg_objThis.on(t.events.PANE_CHANGE, function(){\n\t\t\t\n\t\t\tif(t.isFirstPane())\n\t\t\t\tobjButton.addClass(\"ug-button-disabled\");\n\t\t\telse\n\t\t\t\tobjButton.removeClass(\"ug-button-disabled\");\n\t\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * attach bullets object\n\t */\n\tthis.attachBullets = function(objBullets){\n\t\t\n\t\tobjBullets.setActive(g_temp.currentPane);\n\t\t\n\t\tjQuery(objBullets).on(objBullets.events.BULLET_CLICK, function(data, numBullet){\n\t\t\tt.gotoPane(numBullet, \"theme\");\n\t\t\tobjBullets.setActive(numBullet);\t\t\t\t\n\t\t});\n\t\t\n\t\tjQuery(t).on(t.events.PANE_CHANGE, function(data, numPane){\n\t\t\tobjBullets.setActive(numPane);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get tile design object\n\t */\n\tthis.getObjTileDesign = function(){\n\t\treturn g_tilesDesign;\n\t}\n\t\n\t\n\t/**\n\t * init function \n\t */\n\tthis.init = function(gallery, customOptions, isTilesMode){\n\t\t\n\t\tinit(gallery, customOptions, isTilesMode);\n\t}\n\t\n\t\t\n\t\n\t/**\n\t * set html and properties\n\t */\t\n\tthis.run = function(){\n\t\trun();\n\t}\n\n\t\n\t/**\n\t * set html \n\t */\n\tthis.setHtml = function(parentContainer){\n\t\t\n\t\tsetHtml(parentContainer);\n\t}\n\t\n}\n\n\n\n/**\n * tiles class\n */\nfunction UGTiles(){\n\n\tvar t = this, g_objThis = jQuery(this);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objWrapper, g_objParent;\t\n\tvar g_functions = new UGFunctions(), g_arrItems, g_objTileDesign = new UGTileDesign();\n\tvar g_thumbs = new UGThumbsGeneral(), g_vars = {};\n var g_arrNestedGridRow, g_arrNestedItems;\n\t\n\t\n\tvar g_options = {\n\t\t tiles_type: \"columns\",\t\t\t\t\t//columns / justified - tiles layout type\n\t\t tiles_col_width: 250,\t\t\t\t\t//column width - exact or base according the settings\n\t\t tiles_align:\"center\",\t\t\t\t\t//align of the tiles in the space\n\t\t tiles_exact_width: false,\t\t\t\t//exact width of column - disables the min and max columns\n\t\t tiles_space_between_cols: 3,\t\t\t//space between images\n\t\t tiles_space_between_cols_mobile: 3, //space between cols for mobile type\n\t\t tiles_include_padding: true,\t\t\t//include padding at the sides of the columns, equal to current space between cols\n\t\t tiles_min_columns: 2,\t\t\t\t\t//min columns\n\t\t tiles_max_columns: 0,\t\t\t\t\t//max columns (0 for unlimited)\n\t\t tiles_keep_order: false,\t\t\t\t//keep order - slower algorytm\n\t\t tiles_set_initial_height: true,\t\t//set some estimated height before images show\n\t\t \n\t\t tiles_justified_row_height: 150,\t\t//base row height of the justified type\n\t\t tiles_justified_space_between: 3,\t\t//space between the tiles justified type\n\n\t\t tiles_nested_optimal_tile_width: 250,\t// tiles optimal width\n\t tiles_nested_col_width: null,\t\t\t// nested tiles column width\n\t tiles_nested_debug: false,\n\t \n\t\t tiles_enable_transition: true\t\t\t//enable transition when screen width change\n\t};\n\t\n\tthis.events = {\n\t\t\tTHUMB_SIZE_CHANGE: \"thumb_size_change\",\n\t\t\tTILES_FIRST_PLACED: \"tiles_first_placed\",\t\t//only in case of justified\n\t\t\tALL_TILES_LOADED: \"all_tiles_loaded\"\n\t};\n\t\n\tvar g_temp = {\n\t\t\tisFirstTimeRun:true, //if run once\n\t\t\thandle:null,\t\t //interval handle\n\t\t\tisTransActive: false, //is transition active\n\t\t\tisTransInited: false, //if the transition function is set\n\t\t\tisFirstPlaced: true, //is first time placed\n\t\t\tisAllLoaded: false\n\t};\n\t\n var g_nestedWork = {\n \t\tcolWidth: null,\n nestedOptimalCols: 5,\n gridY: 0,\n maxColumns: 0,\t\t\t\t\t\t //maxColumns\n columnsValueToEnableHeightResize: 3, //columns Value To Enable Height Resize\n resizeLeftRightToColumn: true,\n currentItem: 0,\n\t currentGap: null,\n\t optimalTileWidth: null,\n\t maxGridY:0\n }\n\t\n\t\n\tfunction __________GENERAL_________(){};\n\t\n\t\n\t/**\n\t * init the gallery\n\t */\n\tfunction init(gallery, customOptions){\n\t\t\n\t\tg_objects = gallery.getObjects();\n\t\tg_gallery = gallery;\n\t\tg_objGallery = jQuery(gallery);\n\t\tg_objWrapper = g_objects.g_objWrapper;\n\t\tg_arrItems = g_objects.g_arrItems;\n\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\n\t\tmodifyOptions();\n\t\t\n\t\tg_objTileDesign.init(gallery, g_options);\n\t\t\n\t\tg_thumbs = g_objTileDesign.getObjThumbs();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * modify options\n\t */\n\tfunction modifyOptions(){\n\t\t\n\t\tif(g_options.tiles_min_columns < 1)\n\t\t\tg_options.tiles_min_columns = 1;\n\t\t\n\t\t//protection of max columns, can't be more then min columns\n\t\tif(g_options.tiles_max_columns != 0 && g_options.tiles_max_columns < g_options.tiles_min_columns){\n\t\t\tg_options.tiles_max_columns = g_options.tiles_min_columns;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set the grid panel html\n\t */\n\tfunction setHtml(objParent){\n\t\t\n\t\tif(!objParent){\n\t\t\tif(g_objParent)\n\t\t\t\tobjParent = g_objParent;\n\t\t\telse\n\t\t\t\tvar objParent = g_objWrapper;\n\t\t}\n\t\t\n\t\tg_objParent = objParent;\n\t\t\n\t\tvar tilesType = g_options.tiles_type;\n\t\tobjParent.addClass(\"ug-tiletype-\"+tilesType);\n\t\t\n\t\tg_objTileDesign.setHtml(objParent);\n\t\t\n\t\tobjParent.children(\".ug-thumb-wrapper\").hide();\n\t}\n\t\n\t\n\t/**\n\t * set class that enables transition\n\t */\n\tfunction setTransition(){\n\t\t\n\t\t//set the tiles in resting mode, to activate their own transitions\n\t\tg_objParent.addClass(\"ug-tiles-rest-mode\");\n\t\t\n\t\tg_temp.isTransInited = true;\n\t\t\n\t\t//add css tansition\n\t\tif(g_options.tiles_enable_transition == true){\n\t\t\tg_objParent.addClass(\"ug-tiles-transit\");\n\t\t\t\n\t\t\t//add image overlay transition\n\t\t\tvar optionsTile = g_objTileDesign.getOptions();\n\t\t\t\n\t\t\tif(optionsTile.tile_enable_image_effect == true && optionsTile.tile_image_effect_reverse == false)\n\t\t\t\tg_objParent.addClass(\"ug-tiles-transit-overlays\");\n\t\t\t\n\t\t\tg_temp.isTransActive = true;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get parent width\n\t */\n\tfunction getParentWidth(){\n\t\treturn g_functions.getElementSize(g_objParent).width;\n\t}\n\t\n\t\n\t/**\n\t * do some actions before transition\n\t */\n\tfunction doBeforeTransition(){\n\t\t\n\t\tif(g_temp.isTransInited == false)\n\t\t\treturn(false);\n\t\t\t\n\t\tg_objParent.addClass(\"ug-tiles-transition-active\");\n\t\tg_objParent.removeClass(\"ug-tiles-rest-mode\");\n\t\t\n\t\t//prepare for transition\n\t\tif(g_temp.isTransActive == false)\n\t\t\treturn(false);\n\t\t\t\t\n\t\tg_objTileDesign.disableEvents();\n\t}\n\t\n\t\n\t/**\n\t * set after transition classes\n\t */\n\tfunction doAfterTransition_setClasses(){\n\t\t\n\t\tif(g_temp.isTransInited == false)\n\t\t\treturn(false);\n\t\t\n\t\tg_objParent.removeClass(\"ug-tiles-transition-active\");\n\t\tg_objParent.addClass(\"ug-tiles-rest-mode\");\n\t}\n\t\n\t\n\t/**\n\t * do some actions after transition\n\t */\n\tfunction doAfterTransition(){\n\n\t\t\n\t\tif(g_temp.isTransActive == true){\n\t\t\t\t\t\t\n\t\t\t//trigger size change after transition\n\t\t\tsetTimeout(function(){\n\t\t\t\t\n\t\t\t\tg_objTileDesign.enableEvents();\n\t\t\t\tg_objTileDesign.triggerSizeChangeEventAllTiles();\n\t\t\t\t\n\t\t\t\tdoAfterTransition_setClasses();\n\t\t\t\t\n\n\t\t\t}, 800);\n\t\t\t\n\t\t\t//control size change \n\t\t\tif(g_temp.handle)\n\t\t\t\tclearTimeout(g_temp.handle);\n\t\t\t\t\n\t\t\tg_temp.handle = setTimeout(function(){\n\t\t\t\t\n\t\t\t\tdoAfterTransition_setClasses();\n\t\t\t\t\n\t\t\t\tg_objTileDesign.triggerSizeChangeEventAllTiles();\n\t\t\t\tg_temp.handle = null;\n\t\t\t\t\t\t\t\t\n\t\t\t}, 2000);\n\t\t\t\n\t\t\t\n\t\t}else{\n\t\t\t\t\t\t\n\t\t\tg_objTileDesign.triggerSizeChangeEventAllTiles();\n\n\t\t\tdoAfterTransition_setClasses();\n\n\t\t}\n\n\t}\n\n\t\n\tfunction __________COLUMN_TYPE_RELATED_________(){};\n\t\n\t/**\n\t * count width by number of columns\n\t */\n\tfunction fillTilesVars_countWidthByCols(){\n\n\t\tg_vars.colWidth = (g_vars.availWidth - g_vars.colGap * (g_vars.numCols-1)) / g_vars.numCols;\n\t\tg_vars.colWidth = Math.floor(g_vars.colWidth);\n\n\t\tg_vars.totalWidth = g_functions.getSpaceByNumItems(g_vars.numCols, g_vars.colWidth, g_vars.colGap);\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * fill common tiles vars\n\t */\n\tfunction fillTilesVars(){\n\t\t\n\t\tg_vars.colWidth = g_options.tiles_col_width;\n\t\tg_vars.minCols = g_options.tiles_min_columns;\n\t\tg_vars.maxCols = g_options.tiles_max_columns;\n\t\t\n\t\tif(g_gallery.isMobileMode() == false){\n\t\t\tg_vars.colGap = g_options.tiles_space_between_cols;\n\t\t} else {\n\t\t\tg_vars.colGap = g_options.tiles_space_between_cols_mobile;\n\t\t}\n\t\t\n\t\t//set gallery width\n\t\tg_vars.galleryWidth = getParentWidth();\n\t\t\n\t\tg_vars.availWidth = g_vars.galleryWidth;\n\t\t\n\t\tif(g_options.tiles_include_padding == true)\n\t\t\tg_vars.availWidth = g_vars.galleryWidth - g_vars.colGap*2;\n\t\t\n\t\t//set the column number by exact width\n\t\tif(g_options.tiles_exact_width == true){\n\t\t\t\n\t\t\tg_vars.numCols = g_functions.getNumItemsInSpace(g_vars.availWidth, g_vars.colWidth, g_vars.colGap);\n\n\t\t\tif(g_vars.maxCols > 0 && g_vars.numCols > g_vars.maxCols)\n\t\t\t\tg_vars.numCols = g_vars.maxCols;\n\n\t\t\t//if less then min cols count width by cols\n\t\t\tif(g_vars.numCols < g_vars.minCols){\n\t\t\t\tg_vars.numCols = g_vars.minCols;\n\n\t\t\t\tfillTilesVars_countWidthByCols();\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\tg_vars.totalWidth = g_vars.numCols * (g_vars.colWidth + g_vars.colGap) - g_vars.colGap;\n\t\t\t}\n\t\t\t\n\t\t} else {\n\t\t\t\n\t\t\t//set dynamic column number\n\t\t\t\n\t\t\tvar numCols = g_functions.getNumItemsInSpaceRound(g_vars.availWidth, g_vars.colWidth, g_vars.colGap);\n\t\t\t\t\t\t\n\t\t\tif(numCols < g_vars.minCols)\n\t\t\t\tnumCols = g_vars.minCols;\n\t\t\telse\n\t\t\t\tif(g_vars.maxCols != 0 && numCols > g_vars.maxCols)\n\t\t\t\t\tnumCols = g_vars.maxCols;\n\n\t\t\tg_vars.numCols = numCols;\n\t\t\t\n\t\t\tfillTilesVars_countWidthByCols();\n\t\t\t\n\t\t}\n\n\t\tswitch(g_options.tiles_align){\n\t\t\tcase \"center\":\n\t\t\tdefault:\n\t\t\t\t//add x to center point\n\t\t\t\tg_vars.addX = Math.round( (g_vars.galleryWidth - g_vars.totalWidth) / 2 );\n\t\t\tbreak;\n\t\t\tcase \"left\":\n\t\t\t\tg_vars.addX = 0;\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tg_vars.addX = g_vars.galleryWidth - g_vars.totalWidth;\n\t\t\tbreak;\n\t\t}\n\t\t\t\t\n\t\t//get posx array (constact to all columns)\n\t\tg_vars.arrPosx = [];\t\t\n\t\tfor(col = 0; col < g_vars.numCols; col++){\n\t\t\tvar colX = g_functions.getColX(col, g_vars.colWidth, g_vars.colGap);\n\t\t\tg_vars.arrPosx[col] = colX + g_vars.addX;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init col heights\n\t */\n\tfunction initColHeights(){\n\t\t\n\t\tg_vars.maxColHeight = 0;\n\t\t\n\t\t//empty heights array\n\t\tg_vars.colHeights = [0];\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * get column with minimal height\n\t */\n\tfunction getTilesMinCol(){\n\t\tvar numCol = 0;\n\t\t\n\t\tvar minHeight = 999999999;\n\t\t\n\t\tfor(col = 0; col < g_vars.numCols; col++){\n\t\t\t\n\t\t\tif(g_vars.colHeights[col] == undefined || g_vars.colHeights[col] == 0)\n\t\t\t\treturn col;\n\t\t\t\n\t\t\tif(g_vars.colHeights[col] < minHeight){\n\t\t\t\tnumCol = col;\n\t\t\t\tminHeight = g_vars.colHeights[col];\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\treturn(numCol);\n\t}\n\t\n\t\n\t/**\n\t * place tile as it loads\n\t */\n\tfunction placeTile(objTile, toShow, setGalleryHeight, numCol){\n\t\t\n\t\tif(numCol === null || typeof numCol == \"undefined\")\n\t\t\tvar numCol = getTilesMinCol();\n\t\t\n\t\t//set posy\n\t\tvar posy = 0;\n\t\tif(g_vars.colHeights[numCol] !== undefined)\n\t\t\tposy = g_vars.colHeights[numCol];\n\t\t\n\t\tvar itemHeight = g_objTileDesign.getTileHeightByWidth(g_vars.colWidth, objTile);\n\t\t\n\t\tif(itemHeight === null){\t//for custom html tile\n\t\t\tif(g_options.tiles_enable_transition == true)\n\t\t\t\tthrow new Error(\"Can't know tile height, please turn off transition\");\n\t\t\t\n\t\t\tvar itemSize = g_functions.getElementSize(objTile);\n\t\t\titemHeight = itemSize.height;\n\t\t}\n\t\t\n\t\tvar posx = g_vars.arrPosx[numCol];\n\t\t\n\t\tg_functions.placeElement(objTile, posx, posy);\n\t\t\n\t\tvar realHeight = posy + itemHeight;\n\t\t\t\t\n\t\tg_vars.colHeights[numCol] = realHeight + g_vars.colGap;\n\t\t\n\t\t//set max height\n\t\tif(g_vars.maxColHeight < realHeight)\n\t\t\tg_vars.maxColHeight = realHeight;\n\n\t\tif(toShow == true)\n\t\t\tobjTile.show().fadeTo(0,1);\n\t\t\n\t\tif(setGalleryHeight == true){\n\t\t\tg_objParent.height(g_vars.maxColHeight);\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place the tiles\n\t */\n\tfunction placeTiles(toShow){\n\t\t\n\t\tif(!toShow)\n\t\t\ttoShow = false;\n\t\t\n\t\tfillTilesVars();\n\t\tinitColHeights();\n\t\t\n\t\tvar objThumbs = g_thumbs.getThumbs(g_thumbs.type.GET_THUMBS_RATIO);\n\t\t\t\t\n\t\t//do some operation before the transition\n\t\tdoBeforeTransition();\n\t\t\n\t\t//resize all thumbs\n\t\tg_objTileDesign.resizeAllTiles(g_vars.colWidth, g_objTileDesign.resizemode.VISIBLE_ELEMENTS, objThumbs);\n\t\t\n\t\t//place elements\n\t\tfor(var index = 0; index < objThumbs.length; index++){\n\t\t\tvar objTile = jQuery(objThumbs[index]);\n\t\t\tvar col = undefined;\n\t\t\tif(g_options.tiles_keep_order == true)\n\t\t\t\tcol = g_functions.getColByIndex(g_vars.numCols, index);\n\t\t\t\n\t\t\tplaceTile(objTile, toShow, false, col);\n\t\t}\n\t\t\n\t\t//bring back the state after transition\n\t\tdoAfterTransition();\n\t\t\n\t\t//set gallery height, according the transition\n\t\tvar galleryHeight = g_objParent.height();\n\t\t\n\t\tif(g_temp.isTransActive == true && galleryHeight > g_vars.maxColHeight)\n\t\t\tsetTimeout(function(){\n\t\t\t\tg_objParent.height(g_vars.maxColHeight);\n\t\t\t},700);\n\t\telse\n\t\t\tg_objParent.height(g_vars.maxColHeight);\n\t}\n\t\n\t\n\t/**\n\t * check if alowed to place ordered tile\n\t */\n\tfunction isOrderedTilePlaceAlowed(objTile){\n\t\t\n\t\tvar index = objTile.index();\n\n\t\t//don't allow double put items\n\t\tvar currentItem = g_gallery.getItem(index);\n\t\tif(currentItem.ordered_placed === true)\n\t\t\treturn(false);\n\n\t\t\n\t\tvar prevIndex = g_functions.getPrevRowSameColIndex(index, g_vars.numCols);\n\n\t\t//put first item in the column\n\t\tif(prevIndex < 0)\n\t\t\treturn(true);\n\t\t\t\t\n\t\t//check if previous tile in column is placed\n\t\tvar objPrevItem = g_gallery.getItem(prevIndex);\n\t\tif(objPrevItem.ordered_placed === true)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * place ordered tile\n\t */\n\tfunction placeOrderedTile(objTile, isForce){\n\t\t\n\t\tif(isForce !== true){\n\n\t\t\tvar isAlowed = isOrderedTilePlaceAlowed(objTile);\n\t\t\t\n\t\t\tif(isAlowed == false)\n\t\t\t\treturn(false);\n\t\t}\n\t\t\t\n\t\tvar index = objTile.index();\n\t\t\t\t\n\t\tvar col = g_functions.getColByIndex(g_vars.numCols, index);\n\n\t\tvar objItem = g_gallery.getItem(index);\n\t\t\n\t\tg_objTileDesign.resizeTile(objTile, g_vars.colWidth);\n\t\t\n\t\tplaceTile(objTile, true, true, col);\n\t\t\n\t\tobjItem.ordered_placed = true;\n\t\t\n\t\t//check by recursion and place next items in column\n\t\tvar numItems = g_gallery.getNumItems();\n\t\tvar nextIndex = g_functions.getNextRowSameColIndex(index, g_vars.numCols);\n\t\tif(nextIndex >= numItems)\n\t\t\treturn(false);\n\t\t\n\t\tvar nextTile = g_thumbs.getThumbByIndex(nextIndex);\n\t\tvar nextItem = g_gallery.getItem(nextIndex);\n\t\t\n\t\tvar isLoaded = g_thumbs.isThumbLoaded(nextTile);\n\t\t\n\t\tif(g_thumbs.isThumbLoaded(nextTile) && !nextItem.ordered_placed)\n\t\t\tplaceOrderedTile(nextTile, true);\n\t}\n\t\n\t\n\t/**\n\t * on single image load\n\t */\n\tfunction onSingleImageLoad(objImage, isError){\n\t\t\n\t\tif(isError == true)\n\t\t\treturn(false);\n\t\t\n\t\tobjImage = jQuery(objImage);\n\t\tvar objTile = jQuery(objImage).parent();\n\t\t\n\t\tg_thumbs.triggerImageLoadedEvent(objTile, objImage);\n\t\t\n\t\tif(g_options.tiles_keep_order == true){\n\n\t\t\tplaceOrderedTile(objTile);\n\t\t\n\t\t}else{\n\t\t\t\t\t\t\n\t\t\tg_objTileDesign.resizeTile(objTile, g_vars.colWidth);\n\t\t\tplaceTile(objTile, true, true);\n\t\t}\n\t\n\t}\n\t\n\t\n\t/**\n\t * run columns type - place tiles that are not loaded yet\n\t */\n\tfunction runColumnsType(){\n\t\t\n\t\t//get thumbs only when the ratio not set\n\t\tvar objThumbs = g_thumbs.getThumbs(g_thumbs.type.GET_THUMBS_NO_RATIO);\n\t\t\n\t\tif(!objThumbs || objThumbs.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tg_temp.isAllLoaded = false;\n\t\t\t\t\n\t\tif(g_temp.isFirstPlaced == true){\n\t\t\t\n\t\t\tfillTilesVars();\n\t\t\tinitColHeights();\n\t\t\t\n\t\t\tvar diffWidth = Math.abs(g_vars.galleryWidth - g_vars.totalWidth);\n\t\t\t\n\t\t\t//set initial height of the parent by estimation\n\t\t\tif(g_options.tiles_set_initial_height == true && g_functions.isScrollbarExists() == false && diffWidth < 25){\n\t\t\t\t\n\t\t\t\tvar numThumbs = objThumbs.length;\n\t\t\t\tvar numRows = Math.ceil(objThumbs.length / g_vars.numCols);\n\t\t\t\tvar estimateHeight = numRows * g_options.tiles_col_width * 0.75;\n\t\t\t\t\n\t\t\t\tg_objParent.height(estimateHeight);\n\t\t\t\tfillTilesVars();\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\tobjThumbs.fadeTo(0,0);\n\t\tvar objImages = objThumbs.find(\"img.ug-thumb-image\");\n\t\t\n\t\tvar initNumCols = g_vars.numCols;\n\t\tvar initWidth = g_vars.galleryWidth;\n\t\t\n\t\t//on place the tile as it loads. After all tiles loaded,check position again.\n\t\tg_functions.checkImagesLoaded(objImages, function(){\n\t\t\t\t\t\t\n\t\t\tfillTilesVars();\n\t\t\t\n\t\t\tif(initNumCols != g_vars.numCols || initWidth != g_vars.galleryWidth){\n\t\t\t\tplaceTiles(false);\n\t\t\t}\n\t\t\t\n\t\t\tsetTransition();\n\t\t\tg_objThis.trigger(t.events.ALL_TILES_LOADED);\n\t\t\t\n\t\t} ,function(objImage, isError){\n\t\t\t\n\t\t\tif(g_temp.isFirstPlaced == true)\n\t\t\t\tg_gallery.triggerEvent(t.events.TILES_FIRST_PLACED);\t//set to false\n\t\t\t\n\t\t\tonSingleImageLoad(objImage, isError);\n\t\t\n\t\t});\n\t\t\t\t\t\n\t\t\n\t}\n\t\n\t\n\tfunction __________JUSTIFIED_TYPE_RELATED_________(){};\n\n\t/**\n\t * ------------ JUSTIFIED TYPE RELATED FUNCTIONS ----------------\n\t */\n\t\n\tfunction getJustifiedData(){\n\t\t\n\t\tvar galleryWidth = getParentWidth();\n\t\t\n\t\tvar objTiles = g_thumbs.getThumbs(true);\n\t\tvar rowHeightOpt = g_options.tiles_justified_row_height;\n\t\tvar arrWidths = [];\n\t\tvar totalWidth = 0;\n\t\tvar gap = g_options.tiles_justified_space_between;\n\t\tvar numTiles = objTiles.length;\n\t\t\n\t\t//get arr widths and total width\n\t\tjQuery.each(objTiles, function(index, objTile){\n\t\t\tobjTile = jQuery(objTile);\n\t\t\t\n\t\t\tvar objItem = g_thumbs.getItemByThumb(objTile);\n\t\t\t\n\t\t\tvar tileWidth = objItem.thumbWidth;\n\t\t\tvar tileHeight = objItem.thumbHeight;\n\t\t\t\n\t\t\tif (tileHeight !== rowHeightOpt) \n\t\t\t\ttileWidth = Math.floor(objItem.thumbRatioByWidth * rowHeightOpt);\n\t\t\t\n\t\t\tarrWidths[index] = tileWidth;\n\t\t\t\n\t\t\ttotalWidth += tileWidth;\n\t\t});\n\n\t\t\n\t\tvar numRows = Math.ceil(totalWidth / galleryWidth);\n\t\t\n\t\tif(numRows > numTiles)\n\t\t\tnumRows = numTiles;\n\t\t\n\t\tvar finalRowWidth = totalWidth / numRows;\n\t\t\n\t\t//fill rows array, break tiles to rows\n\t\tvar arrRows = [], eachRowWidth = 0;\n\t\tvar rowsWidths = [], rowsTiles = [], row = [];\n\t\tvar progressWidth = 0, numRow = 0;\n\t\t\n\t\tjQuery.each(objTiles, function(index, objTile){\n\t\t\tvar tileWidth = arrWidths[index];\n\t\t\t\t\t\t\n\t\t\tif( (progressWidth + tileWidth / 2) > (numRow+1) * finalRowWidth){\n\t\t\t\t\n\t\t\t\trowsWidths[arrRows.length] = eachRowWidth;\t\t\t\t\n\t\t\t\tarrRows.push(row);\n\t\t\t\trow = [];\n\t\t\t\teachRowWidth = 0;\n\t\t\t\tnumRow++;\n\t\t\t}\n\t\t\t\n\t\t\tprogressWidth += tileWidth;\n\t\t\teachRowWidth += tileWidth;\n\t\t\t\n\t\t\trow.push(objTile);\n\t\t});\n\t\t\n\t\trowsWidths[arrRows.length] = eachRowWidth;\n\t\tarrRows.push(row);\n\t\t\t\t\n\t\t\n\t\t//set heights and position images:\t\n\t\tvar arrRowWidths = [];\n\t\tvar arrRowHeights = [];\n\t\tvar totalHeight = 0;\n\t\t\n\t\tjQuery.each(arrRows, function(index, row){\n\t\t\t\n\t\t\tvar numTiles = row.length;\n\t\t\tvar rowWidth = rowsWidths[index];\n\t\t\t\n\t\t\tvar gapWidth = (row.length-1) * gap;\n\n\t\t\tvar ratio = (galleryWidth - gapWidth) / rowWidth;\n\t\t\tvar rowHeight = Math.round(rowHeightOpt * ratio);\n\t\t\t\n\t\t\t//count total height\n\t\t\ttotalHeight += rowHeight;\n\t\t\tif(index > 0)\n\t\t\t\ttotalHeight += gap;\n\t\t\t\n\t\t\tarrRowHeights.push(rowHeight);\n\t\t\t\n\t\t\t//ratio between 2 heights for fixing image width:\n var ratioHeights = rowHeight / rowHeightOpt;\n\t\t\t\n //set tiles sizes:\n var arrRowTileWidths = [];\n var actualRowWidth = gapWidth;\n \n jQuery.each(row, function(indexInRow, tile){\n \tvar objTile = jQuery(tile);\n \tvar tileIndex = objTile.index();\n \tvar tileWidth = arrWidths[tileIndex];\n \tvar newWidth = Math.round(tileWidth * ratioHeights);\n \t\n \tarrRowTileWidths[indexInRow] = newWidth;\n \tactualRowWidth += newWidth; \t\n });\n \t\n //fix images widths by adding or reducing 1 pixel\n var diff = actualRowWidth - galleryWidth;\n \n var newTotal = 0;\n jQuery.each(arrRowTileWidths, function(indexInRow, width){\n \t\n \tif(diff == 0) \t\t\n \t\treturn(false);\n \t\n \tif(diff < 0){\n \t\tarrRowTileWidths[indexInRow] = width + 1;\n \t\tdiff++;\n \t}else{\n \t\tarrRowTileWidths[indexInRow] = width - 1;\n \t\tdiff--;\n \t}\n \t\n \t//if at last item diff stays, add all diff\n \tif(indexInRow == (arrRowTileWidths.length-1) && diff != 0)\n \t\tarrRowTileWidths[indexInRow] -= diff;\n });\n \n arrRowWidths[index] = arrRowTileWidths;\n\t\t});\n\t\t\n\t\t\n\t\tvar objData = {\n\t\t\t\tarrRows: arrRows,\n\t\t\t\tarrRowWidths: arrRowWidths,\n\t\t\t\tarrRowHeights: arrRowHeights,\n\t\t\t\tgap: gap,\n\t\t\t\ttotalHeight: totalHeight\n\t\t};\n\t\t\n\t\treturn(objData);\n\t}\n\n\t\n\t/**\n\t * put justified images\n\t */\n\tfunction placeJustified(toShow){\n\t\t\n\t\tif(!toShow)\n\t\t\tvar toShow = false;\n\t\t\n\t\tvar parentWidth = getParentWidth();\n\n\t\tvar objData = getJustifiedData();\n\t\t\n\t\t//if the width changed after height change (because of scrollbar), recalculate\n\t\tg_objParent.height(objData.totalHeight);\n\t\n\t\tvar parentWidthAfter = getParentWidth();\n\t\tif(parentWidthAfter != parentWidth)\n\t\t\tobjData = getJustifiedData();\n\t\t\n\t\tdoBeforeTransition();\n\t\t\n\t\tvar posy = 0;\n\t\tvar totalWidth = 0;\t\t//just count total widht for check / print\n\t\tjQuery.each(objData.arrRows, function(index, row){\n \t\n\t\t\tvar arrRowTileWidths = objData.arrRowWidths[index];\n\t\t\tvar rowHeight = objData.arrRowHeights[index];\n\t\t\t\n\t\t\t//resize and place tiles\n var posx = 0;\n jQuery.each(row, function(indexInRow, tile){\n \t \t \t\n \tvar objTile = jQuery(tile);\n \tvar tileHeight = rowHeight;\n \tvar tileWidth = arrRowTileWidths[indexInRow];\n \t\n \tg_objTileDesign.resizeTile(objTile, tileWidth, tileHeight, g_objTileDesign.resizemode.VISIBLE_ELEMENTS);\n \tg_functions.placeElement(objTile, posx, posy);\n \t\n \tposx += tileWidth;\n \t\n \tif(posx > totalWidth)\n \t\ttotalWidth = posx;\n \t\n \tposx += objData.gap;\n \t\n \tif(toShow == true)\n \t\tjQuery(tile).show();\n \n });\n \n posy += (rowHeight + objData.gap);\n \n\t\t});\n\t\t\n\t\tdoAfterTransition();\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * run justified type gallery\n\t */\n\tfunction runJustifiedType(){\n\t\t\n\t\tvar objImages = jQuery(g_objWrapper).find(\"img.ug-thumb-image\");\n\t\tvar objTiles = g_thumbs.getThumbs();\n\t\t\n\t\tg_temp.isAllLoaded = false;\n\t\t\n\t\tobjTiles.fadeTo(0,0);\t\t\t\t\n\t\t\n\t\tg_functions.checkImagesLoaded(objImages, function(){\n\t\t\t\n\t\t\tsetTimeout(function(){\n\t\t\t\tplaceJustified(true);\n\t\t\t\tobjTiles.fadeTo(0,1);\n\t\t\t\tg_gallery.triggerEvent(t.events.TILES_FIRST_PLACED);\n\t\t\t\tsetTransition();\n\t\t\t\t\n\t\t\t\tg_objThis.trigger(t.events.ALL_TILES_LOADED);\n\t\t\t\t\n\t\t\t});\n\t\t\t\n\t\t}, function(objImage, isError){\n\n\t\t\tobjImage = jQuery(objImage);\n\t\t\tvar objTile = jQuery(objImage).parent();\n\t\t\tg_thumbs.triggerImageLoadedEvent(objTile, objImage);\n\t\t\n\t\t});\n\t\t\t\t\n\t}\n\t\n\n\t\n\t\t\n function __________NESTED_TYPE_RELATED_________() { };\n \n \n /**\n * ------------ NESTED TYPE RELATED FUNCTIONS ----------------\n */\n function runNestedType() {\n\n var objImages = jQuery(g_objWrapper).find(\"img.ug-thumb-image\");\n var objTiles = g_thumbs.getThumbs();\n \n g_temp.isAllLoaded = false;\n \n objTiles.fadeTo(0, 0);\n \n g_functions.checkImagesLoaded(objImages, function () {\n \t\n \tif(g_gallery.isMobileMode() == true){\n \t\tplaceTiles(true);\n \t}\n \telse\n \t\tplaceNestedImages(true);\n \n \tg_gallery.triggerEvent(t.events.TILES_FIRST_PLACED);\n setTransition();\n g_objThis.trigger(t.events.ALL_TILES_LOADED);\n\n }, function (objImage, isError) {\n\n objImage = jQuery(objImage);\n var objTile = jQuery(objImage).parent();\n g_thumbs.triggerImageLoadedEvent(objTile, objImage);\n\n });\n\n }\n\n \n /**\n * fill nested vars\n */\n function fillNestedVars(){\n\n \tvar galleryWidth = getParentWidth();\n \tg_nestedWork.galleryWidth = galleryWidth;\n \n g_arrNestedGridRow = {};\n \tg_nestedWork.colWidth = g_options.tiles_nested_col_width;\n \tg_nestedWork.optimalTileWidth = g_options.tiles_nested_optimal_tile_width;\n \t\n \tg_nestedWork.currentGap = g_options.tiles_space_between_cols;\n\n \tif(g_gallery.isMobileMode() == true)\n g_nestedWork.currentGap = g_options.tiles_space_between_cols_mobile;\n \t\n if(g_nestedWork.colWidth == null){\n\t\t\tg_nestedWork.colWidth = Math.floor(g_nestedWork.optimalTileWidth/g_nestedWork.nestedOptimalCols);\n\t\t} else if (g_nestedWork.optimalTileWidth > g_nestedWork.colWidth) {\n g_nestedWork.nestedOptimalCols = Math.ceil(g_nestedWork.optimalTileWidth / g_nestedWork.colWidth);\n } else {\n g_nestedWork.nestedOptimalCols = 1;\n }\n \t\n \tg_nestedWork.maxColumns = g_functions.getNumItemsInSpace(galleryWidth, g_nestedWork.colWidth, g_nestedWork.currentGap);\n \t\n //fix col width - justify tiles\n g_nestedWork.colWidth = g_functions.getItemSizeInSpace(galleryWidth, g_nestedWork.maxColumns, g_nestedWork.currentGap);\n \n g_nestedWork.gridY = 0;\n g_arrNestedItems = []\n \n \tvar objTiles = g_thumbs.getThumbs(true);\n\t\tobjTiles.each(function(){\n\t\t\tvar objTile = jQuery(this);\n\t\t var sizes = setNestedSize(objTile);\n\t\t g_arrNestedItems.push(sizes);\n\t\t });\n \n if (g_nestedWork.optimalTileWidth > g_nestedWork.colWidth) {\n g_nestedWork.nestedOptimalCols = Math.ceil(g_nestedWork.optimalTileWidth / g_nestedWork.colWidth);\n } else {\n g_nestedWork.nestedOptimalCols = 1;\n }\n \n g_nestedWork.totalWidth = g_nestedWork.maxColumns*(g_nestedWork.colWidth+g_nestedWork.currentGap)-g_nestedWork.currentGap;\n\n switch(g_options.tiles_align){\n\t\t\tcase \"center\":\n\t\t\tdefault:\n\t\t\t\t//add x to center point\n\t\t\t\tg_nestedWork.addX = Math.round( (g_nestedWork.galleryWidth - g_nestedWork.totalWidth) / 2 );\n\t\t\tbreak;\n\t\t\tcase \"left\":\n\t\t\t\tg_nestedWork.addX = 0;\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tg_nestedWork.addX = g_nestedWork.galleryWidth - g_nestedWork.totalWidth;\n\t\t\tbreak;\n\t\t}\n \n \n g_nestedWork.maxGridY = 0;\n }\n \n \n /**\n * place Nested type images\n */\n function placeNestedImages(toShow){\n \t\n \tvar parentWidth = getParentWidth();\n \t\n \tfillNestedVars();\n placeNestedImagesCycle();\n \t\n var totalHeight = g_nestedWork.maxGridY * (g_nestedWork.colWidth + g_nestedWork.currentGap) - g_nestedWork.currentGap;\n\n \t//if the width changed after height change (because of scrollbar), recalculate\n\t\tg_objParent.height(totalHeight);\n\t\t\n\t\tvar parentWidthAfter = getParentWidth();\n\t\t\n\t\tif(parentWidthAfter != parentWidth){\n \t\tfillNestedVars();\n \tplaceNestedImagesCycle();\n }\n \n if(g_options.tiles_nested_debug == false)\n \tdrawNestedImages(toShow);\n\n }\n\n \n /**\n * set Nested size\n */\n function setNestedSize(objTile){\n\n var dimWidth, dimHeight;\n var output = {};\n \n var colWidth = g_nestedWork.colWidth;\n var gapWidth = g_nestedWork.currentGap;\n \n var objImageSize = g_objTileDesign.getTileImageSize(objTile);\n var index = objTile.index();\n \n var maxDim = Math.ceil(getPresettedRandomByWidth(index)*(g_nestedWork.nestedOptimalCols*1/3) + g_nestedWork.nestedOptimalCols * 2/3);\n \n var imgWidth = objImageSize.width;\n var imgHeight = objImageSize.height;\n \n var ratio = imgWidth/imgHeight;\n \n if(imgWidth>imgHeight){\n dimWidth = maxDim;\n dimHeight = Math.round(dimWidth/ratio);\n if(dimHeight == 0){\n dimHeight = 1;\n }\n } else {\n dimHeight = maxDim;\n dimWidth = Math.round(dimHeight*ratio);\n if(dimWidth == 0){\n dimWidth = 1;\n }\n }\n\n output.dimWidth = dimWidth;\n output.dimHeight = dimHeight;\n output.width = dimWidth * colWidth + gapWidth*(dimWidth-1);\n output.height = dimHeight * colWidth + gapWidth*(dimHeight-1);\n output.imgWidth = imgWidth;\n output.imgHeight = imgHeight;\n output.left = 0;\n output.top = 0;\n return output;\n }\n\n \n /**\n * get presetted random [0,1] from int\n */\n function getPresettedRandomByWidth(index){\n return Math.abs(Math.sin(Math.abs(Math.sin(index)*1000)));\n }\n\n \n /**\n * place nested images debug\n */\n function placeNestedImagesDebug(toShow, placeOne){\n \n \tif(placeOne == false){\n for(var i = g_nestedWork.currentItem; i=4){\n if(isGridImageAligned(Math.floor(totalFree/2), column) == true){\n resizeToNewWidth(tileID, Math.floor(totalFree/2)+1);\n } else {\n resizeToNewWidth(tileID, Math.floor(totalFree/2));\n }\n } else {\n resizeToNewWidth(objImage, totalFree);\n }\n } else {\n if(isGridImageAligned(currentWidth, column) == true){\n switch(currentWidth>=optimalWidth){\n case true:\n resizeToNewWidth(tileID, currentWidth-1);\n break\n case false:\n resizeToNewWidth(tileID, currentWidth+1);\n break\n\n }\n }\n }\n\n //Height stretching if needed\n sizes = jQuery.extend(true, {}, g_arrNestedItems[tileID]);\n var columnInfo = getGridColumnHeight(tileID, sizes.dimWidth, column); \t// [columnHeight, imagesIDs]\n\n if(g_nestedWork.columnsValueToEnableHeightResize <= columnInfo[0] && g_nestedWork.maxColumns>=2*g_nestedWork.nestedOptimalCols){\n\n var sideHelper = getGridImageVerticalDifference(column, sizes);\n var columnSizes = resizeToNewHeight(tileID, sideHelper.newHeight, true);\n g_arrNestedItems[tileID].dimHeight = columnSizes.dimHeight;\n var columnResizes = redistributeColumnItems(columnInfo, columnSizes.dimWidth, column);\n var columnCrosshairs = getColumnCrosshairsCount(columnResizes);\n var disableColumnResizes = false;\n\n if(columnCrosshairs >= 2){\n disableColumnResizes = true;\n }\n\n if(sideHelper.newHeight>=sizes.dimHeight){\n sizes = resizeToNewHeight(tileID, sideHelper.newHeight, true);\n }\n var sideResizes = getSideResizeInfo(sideHelper.idToResize, sideHelper.newHeight, sizes.dimHeight);\n sizes.top = g_nestedWork.gridY;\n sizes.left = column;\n sideResizes.push({\"tileID\": tileID, \"sizes\": sizes});\n\n var sideResizesVal = calcResizeRatio(sideResizes);\n var columnResizesVal = calcResizeRatio(columnResizes);\n\n if(sideResizesValsizes.left+sizes.dimWidth){\n topItem = g_arrNestedGridRow[sizes.top+sizes.dimHeight-1][sizes.left+sizes.dimWidth];\n bottomItem = g_arrNestedGridRow[sizes.top+sizes.dimHeight][sizes.left+sizes.dimWidth];\n }\n if(topItem != bottomItem){\n crosshairsCountR++;\n }\n }\n\n for(var i = 0; i=0){\n topItem = g_arrNestedGridRow[sizes.top+sizes.dimHeight-1][sizes.left-1];\n bottomItem = g_arrNestedGridRow[sizes.top+sizes.dimHeight][sizes.left-1];\n }\n if(topItem != bottomItem){\n crosshairsCountL++;\n }\n }\n return Math.max(crosshairsCountL, crosshairsCountR);\n }\n\n /**\n * get size resize info\n */\n function getSideResizeInfo(idToResize, newHeight, dimHeight){\n\n var currentTile = g_arrNestedItems[idToResize];\n var\ttileHeight = currentTile.dimHeight;\n var tileWidth = currentTile.dimWidth;\n var tileLeft = currentTile.left;\n var tileTop = currentTile.top;\n var tileDimTop = parseInt(tileTop / (g_nestedWork.colWidth + g_nestedWork.currentGap));\n var tileDimLeft = parseInt(tileLeft / (g_nestedWork.colWidth + g_nestedWork.currentGap));\n var newSideHeight = tileHeight - newHeight + dimHeight;\n\n var sideSizes = resizeToNewHeight(idToResize, newSideHeight, true);\n var output = [];\n output.push({\"tileID\": idToResize, \"sizes\": sideSizes});\n return output;\n }\n\n /**\n * apply resizes to fix column\n */\n function applyResizes(resizeTilesAndSizes){\n\n for(var i = 0; i=0; i--){\n var tileID = objTiles[i][0];\n var newHeight;\n if(i != 0) {\n newHeight = Math.max(Math.round(columnHeight*1/3),Math.floor(objTiles[i][1] * (columnHeight / originalHeight)));\n tempHeight = tempHeight - newHeight;\n sizes = resizeToNewHeight(tileID, newHeight, true);\n sizes.left = cordX;\n sizes.top = cordY;\n output.push({\"tileID\": tileID, \"sizes\": sizes});\n cordY += sizes.dimHeight;\n } else {\n newHeight = tempHeight;\n sizes = resizeToNewHeight(tileID, newHeight, true);\n sizes.left = cordX;\n sizes.top = cordY;\n output.push({\"tileID\": tileID, \"sizes\": sizes});\n }\n }\n return output;\n }\n\n /**\n * Calculate num of objects in current column and return they are ID's\n */\n function getGridColumnHeight(tileID, dimWidth, column){\n var tempY = g_nestedWork.gridY-1;\n var curImage = 0;\n var prevImage = 0;\n var columnHeight = 1;\n var imagesIDs = [];\n var toReturn = [];\n imagesIDs.push(tileID);\n if(tempY>=0){\n prevImage = 0;\n while(tempY>=0){\n curImage = g_arrNestedGridRow[tempY][column];\n if( (typeof g_arrNestedGridRow[tempY][column-1] === 'undefined' || g_arrNestedGridRow[tempY][column-1] != g_arrNestedGridRow[tempY][column])\n &&(typeof g_arrNestedGridRow[tempY][column+dimWidth] === 'undefined' || g_arrNestedGridRow[tempY][column+dimWidth-1] != g_arrNestedGridRow[tempY][column+dimWidth])\n &&(g_arrNestedGridRow[tempY][column]==g_arrNestedGridRow[tempY][column+dimWidth-1])){\n if(prevImage != curImage){\n columnHeight++;\n imagesIDs.push(curImage);\n }\n } else {\n toReturn.push(columnHeight);\n toReturn.push(imagesIDs);\n return toReturn;\n }\n tempY--;\n prevImage = curImage;\n }\n toReturn.push(columnHeight);\n toReturn.push(imagesIDs);\n return toReturn;\n }\n return [0, []];\n }\n\n /**\n * get new height based on left and right difference\n */\n function getGridImageVerticalDifference(column, sizes){\n var newHeightR = 0;\n var newHeightL = 0;\n var dimWidth = sizes.dimWidth;\n var dimHeight = sizes.dimHeight;\n var leftID = 0;\n var rightID = 0;\n var array = jQuery.map(g_arrNestedGridRow, function(value, index) {\n return [value];\n });\n\n if(typeof array[g_nestedWork.gridY] === 'undefined' || typeof array[g_nestedWork.gridY][column-1]=== 'undefined'){\n newHeightL = 0;\n } else {\n var tempY=0;\n while(true){\n if(typeof g_arrNestedGridRow[g_nestedWork.gridY+tempY] !== 'undefined' && g_arrNestedGridRow[g_nestedWork.gridY+tempY][column-1] != -1 ){\n leftID = g_arrNestedGridRow[g_nestedWork.gridY+tempY][column-2];\n tempY++;\n newHeightL++;\n } else {\n break;\n }\n }\n }\n\n if(typeof array[g_nestedWork.gridY] === 'undefined' || typeof array[g_nestedWork.gridY][column+dimWidth]=== 'undefined'){\n newHeightR = 0;\n } else {\n tempY=0;\n while(true){\n if(typeof g_arrNestedGridRow[g_nestedWork.gridY+tempY] !== 'undefined' && g_arrNestedGridRow[g_nestedWork.gridY+tempY][column+dimWidth] != -1 ){\n rightID = g_arrNestedGridRow[g_nestedWork.gridY+tempY][column+dimWidth+1];\n tempY++;\n newHeightR++;\n } else {\n break;\n }\n }\n }\n\n var newHeight = 0;\n var idToResize = 0;\n if(Math.abs(dimHeight - newHeightL) < Math.abs(dimHeight - newHeightR) && newHeightL != 0) {\n newHeight = newHeightL;\n idToResize = leftID;\n } else if (newHeightR !=0) {\n newHeight = newHeightR;\n idToResize = rightID;\n } else {\n newHeight = dimHeight; //malo li\n }\n\n var output = {\"newHeight\": newHeight, \"idToResize\": idToResize};\n\n return output;\n }\n\n /**\n * resize to new Dim width\n */\n function resizeToNewWidth(tileID, newDimWidth, toReturn) {\n if(!toReturn){\n toReturn = false;\n }\n \n var colWidth = g_nestedWork.colWidth;\n var gapWidth = g_nestedWork.currentGap;\n var currentTile = g_arrNestedItems[tileID];\n var imgWidth = currentTile.imgWidth;\n var imgHeight = currentTile.imgHeight;\n var ratio = imgWidth / imgHeight;\n dimWidth = newDimWidth;\n dimHeight = Math.round(dimWidth / ratio);\n if(toReturn == true){\n var sizes = jQuery.extend(true, {}, currentTile);\n sizes.dimWidth = dimWidth;\n sizes.dimHeight = dimHeight;\n sizes.width = dimWidth * colWidth + gapWidth * (dimWidth - 1);\n sizes.height = dimHeight * colWidth + gapWidth * (dimHeight - 1);\n return sizes;\n }\n currentTile.dimWidth = dimWidth;\n currentTile.dimHeight = dimHeight;\n currentTile.width = dimWidth * colWidth + gapWidth * (dimWidth - 1);\n currentTile.height = dimHeight * colWidth + gapWidth * (dimHeight - 1);\n }\n\n /**\n * resize to new height without width changing\n */\n function resizeToNewHeight(tileID, newDimHeight, toReturn) {\n\n if(!toReturn){\n toReturn = false;\n }\n\n var currentTile = g_arrNestedItems[tileID];\n var dimWidth = currentTile.dimWidth;\n var colWidth = g_nestedWork.colWidth;\n var gapWidth = g_nestedWork.currentGap;\n\n if(toReturn == true){\n var sizes = jQuery.extend(true, {}, currentTile);\n\n sizes.dimHeight = newDimHeight;\n sizes.width = dimWidth * colWidth + gapWidth * (dimWidth - 1);\n sizes.height = newDimHeight * colWidth + gapWidth * (newDimHeight - 1);\n \n return sizes;\n }\n\n currentTile.dimHeight = newDimHeight;\n currentTile.width = dimWidth * colWidth + gapWidth * (dimWidth - 1);\n currentTile.height = newDimHeight * colWidth + gapWidth * (newDimHeight - 1);\n }\n\n /**\n * calc resize koef\n */\n function calcResizeRatio(objTilesAndSizes){\n var tempResizes = 0;\n var tempNum = 0;\n\n for(var i = 0; i g_nestedWork.maxColHeight){\n g_nestedWork.maxColHeight = newY + sizes.height;\n };\n \n if(toShow == true){\n objTile.fadeTo(0, 1);\n }\n \n }\n\t\n\t\n\tfunction __________COMMON_AND_EVENTS_______(){};\n\t\n\t\n\t/**\n\t * on resize event\n\t */\n\tfunction onResize(){\n\t\t\n\t\tif(g_temp.isFirstTimeRun == true)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_temp.isAllLoaded == false)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(g_options.tiles_type){\n\t\t\tcase \"columns\":\n\t\t\t\tplaceTiles(false);\n\t\t\tbreak;\n\t\t\tcase \"justified\":\n\t\t\t\tplaceJustified(false);\n\t\t\tbreak;\n case \"nested\":\n \t\n \tvar isMobileMode = g_gallery.isMobileMode();\n \tif(isMobileMode == true){\n \t\tplaceTiles(false);\n \t}\n \telse\n \t\tplaceNestedImages(false);\n \n break;\n\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * init panel events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tg_objThis.on(t.events.ALL_TILES_LOADED, function(){\n\t\t\t\n\t\t\tg_temp.isAllLoaded = true;\n\t\t\t\n\t\t});\n\t\t\n\t\tg_objGallery.on(g_gallery.events.SIZE_CHANGE, onResize);\n\t\t\n\t\tg_objGallery.on(t.events.TILES_FIRST_PLACED,function(){\n\t\t\tg_temp.isFirstPlaced = false;\n\t\t});\n\t\t\n\t\tg_objTileDesign.initEvents();\n\t\t\t\t\n\t}\n\n\t\n\t/**\n\t * run the gallery after init and set html\n\t */\n\tfunction run(){\n\t\t\t\t\n\t\t//show tiles\n\t\tg_objWrapper.children(\".ug-tile\").show();\n\n\t\tif(g_temp.isFirstTimeRun == true){\n\t\t\tinitEvents();\n\t\t}\n\t\t\n\t\tg_objTileDesign.run();\n\t\t\n\t\tswitch(g_options.tiles_type){\n\t\t\tdefault:\n\t\t\tcase \"columns\":\n\t\t\t\trunColumnsType();\n\t\t\tbreak;\n\t\t\tcase \"justified\":\n\t\t\t\trunJustifiedType();\n\t\t\tbreak;\n\t\t\tcase \"nested\":\n\t\t\t\trunNestedType();\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t\n\t\tg_temp.isFirstTimeRun = false;\n\t}\n\t\n\t\n\t/**\n\t * destroy the events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tg_objGallery.off(g_gallery.events.SIZE_CHANGE);\n\t\tg_objTileDesign.destroy();\n\t\tg_objGallery.off(t.events.TILES_FIRST_PLACED);\n\t\t\n\t}\n\t\n\t\t\n\t\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(gallery, customOptions){\n\t\t\n\t\tinit(gallery, customOptions);\n\t}\n\n\t\n\t/**\n\t * set html\n\t */\n\tthis.setHtml = function(objParent){\n\t\tsetHtml(objParent);\n\t}\n\t\n\t/**\n\t * get tile design object\n\t */\n\tthis.getObjTileDesign = function(){\n\t\treturn(g_objTileDesign);\n\t}\n\t\n\t/**\n\t * set html and properties\n\t */\t\n\tthis.run = function(){\n\t\trun();\n\t}\n\t\n\t\n\t/**\n\t * run the new items\n\t */\n\tthis.runNewItems = function(){\n\t\t\n\t\tif(!g_objParent)\n\t\t\tthrow new Error(\"Can't run new items - parent not set\");\n\t\t\n\t\tg_objTileDesign.setHtml(g_objParent, true);\n\t\t\n\t\tg_objTileDesign.run(true);\n\t\t\n\t\t\n\t\tswitch(g_options.tiles_type){\n\t\t\tcase \"columns\":\n\t\t\t\t\n\t\t\t\trunColumnsType();\n\t\t\t\t\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tcase \"justified\":\n\t\t\tcase \"nested\":\n\t\t\t\tthrow new Error(\"Tiles type: \"+g_options.tiles_type+\" not support load more yet\");\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n}\n\n\n\n/**\n * tiles design class\n */\nfunction UGTileDesign(){\n\t\n\tvar t = this, g_objThis = jQuery(this);\t\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery;\n\tvar g_functions = new UGFunctions(), g_objParentWrapper, g_objWrapper;\n\tvar g_thumbs = new UGThumbsGeneral(), g_items;\n\t\n\tthis.resizemode = {\t\t\t//modes constants for resize tile\n\t\tFULL: \"full\",\n\t\tWRAPPER_ONLY: \"wrapper_only\",\n\t\tVISIBLE_ELEMENTS: \"visible_elements\"\n\t};\n\t\n\tthis.sizeby = {\t\t\t\t//sizeby option constants\n\t\tGLOBAL_RATIO: \"global_ratio\",\n\t\tTILE_RATIO: \"tile_ratio\",\n\t\tIMAGE_RATIO: \"image_ratio\",\n\t\tCUSTOM: \"custom\"\n\t};\n\t\n\tthis.events = {\n\t\t\tTILE_CLICK: \"tile_click\"\n\t};\n\t\n\tvar g_options = {\n\t\t\t\t\t\t\n\t\t\ttile_width: 250,\t\t\t\t\t\t//in case of fixed size: tile width\n\t\t\ttile_height: 200,\t\t\t\t\t\t//in case of fixed size: tile height\n\t\t\ttile_size_by:t.sizeby.IMAGE_RATIO,\t\t//image ratio, tile ratio , global_ratio - decide by what parameter resize the tile\n\t\t\ttile_visible_before_image:false,\t\t//tile visible before image load\n\t\t\t\n\t\t\ttile_enable_background:true,\t\t\t//enable backgruond of the tile\n\t\t\ttile_background_color: \"#F0F0F0\",\t\t//tile background color\n\t\t\t\n\t\t\ttile_enable_border:false,\t\t\t\t//enable border of the tile\n\t\t\ttile_border_width:3,\t\t\t\t\t//tile border width\n\t\t\ttile_border_color:\"#F0F0F0\",\t\t\t//tile border color\n\t\t\ttile_border_radius:0,\t\t\t\t\t//tile border radius (applied to border only, not to outline)\n\t\t\t\n\t\t\ttile_enable_outline: false,\t\t\t\t//enable outline of the tile (works only together with the border)\n\t\t\ttile_outline_color: \"#8B8B8B\",\t\t\t//tile outline color\n\t\t\t\n\t\t\ttile_enable_shadow:false,\t\t\t\t//enable shadow of the tile\n\t\t\ttile_shadow_h:1,\t\t\t\t\t\t//position of horizontal shadow\n\t\t\ttile_shadow_v:1,\t\t\t\t\t\t//position of vertical shadow\n\t\t\ttile_shadow_blur:3,\t\t\t\t\t\t//shadow blur\n\t\t\ttile_shadow_spread:2,\t\t\t\t\t//shadow spread\n\t\t\ttile_shadow_color:\"#8B8B8B\",\t\t\t//shadow color\n\t\t\t\n\t\t\ttile_enable_action:\ttrue,\t\t\t\t//enable tile action on click like lightbox\n\t\t\ttile_as_link: false,\t\t\t\t\t//act the tile as link, no lightbox will appear\n\t\t\ttile_link_newpage: true,\t\t\t\t//open the tile link in new page\n\n\t\t\ttile_enable_overlay: true,\t\t\t\t//enable tile color overlay (on mouseover)\n\t\t\ttile_overlay_opacity: 0.4,\t\t\t\t//tile overlay opacity\n\t\t\ttile_overlay_color: \"#000000\",\t\t\t//tile overlay color\n\t\t\t\n\t\t\ttile_enable_icons: true,\t\t\t\t//enable icons in mouseover mode\n\t\t\ttile_show_link_icon: false,\t\t\t\t//show link icon (if the tile has a link). In case of tile_as_link this option not enabled\n\t\t\ttile_videoplay_icon_always_on: 'never',\t//'always', 'never', 'mobile_only', 'desktop_only' always show video play icon\n\t\t\ttile_space_between_icons: 26,\t\t\t//initial space between icons, (on small tiles it may change)\n\t\t\t\n\t\t\ttile_enable_image_effect:false,\t\t\t//enable tile image effect\n\t\t\ttile_image_effect_type: \"bw\",\t\t\t//bw, blur, sepia - tile effect type\n\t\t\ttile_image_effect_reverse: false,\t\t//reverce the image, set only on mouseover state\n\t\t\t\n\t\t\ttile_enable_textpanel: false,\t\t\t //enable textpanel\n\t\t\ttile_textpanel_source: \"title\",\t\t\t //title,desc,desc_title,title_and_desc. source of the textpanel. desc_title - if description empty, put title\n\t\t\ttile_textpanel_always_on: false,\t\t //textpanel always visible - for inside type\n\t\t\ttile_textpanel_appear_type: \"slide\",\t //slide, fade - appear type of the textpanel on mouseover\n\t\t\ttile_textpanel_position:\"inside_bottom\", //inside_bottom, inside_top, inside_center, top, bottom the position of the textpanel\n\t\t\ttile_textpanel_offset:0\t\t\t\t\t //vertical offset of the textpanel\n\t};\n\t\n\t\n\tvar g_defaults = {\n\t\t\tthumb_color_overlay_effect: true,\n\t\t\tthumb_overlay_reverse: true,\n\t\t\tthumb_image_overlay_effect: false,\n\t\t\ttile_textpanel_enable_description: false,\n\t\t\ttile_textpanel_bg_opacity: 0.6,\n\t\t\ttile_textpanel_padding_top:8,\n\t\t\ttile_textpanel_padding_bottom: 8\n\t};\n\t\n\tvar g_temp = {\n\t\tratioByHeight:0,\n\t\tratioByWidth:0,\n\t\teventSizeChange: \"thumb_size_change\",\n\t\tfuncCustomTileHtml: null,\n\t\tfuncCustomPositionElements: null,\n\t\tfuncParentApproveClick: null,\n\t\tisSaparateIcons: false,\n\t\ttileInnerReduce: 0,\t\t//how much reduce from the tile inner elements from border mostly\n\t\tisTextpanelOutside: false,\t//is the textpanel is out of tile image border\n\t\thasImageContainer:false,\n\t\tisVideoplayIconAlwaysOn:false,\n\t\tisTextPanelHidden:false\n\t};\n\t\n\t\n\t/**\n\t * init the tile object\n\t */\n\tfunction init(gallery, customOptions){\n\t\t\n\t\tg_gallery = gallery;\n\t\t\n\t\tg_objGallery = jQuery(gallery);\t\t\n\t\t\n\t\tvar objects = g_gallery.getObjects();\n\t\tg_objWrapper = objects.g_objWrapper;\n\t\t\n\t\tg_items = g_gallery.getArrItems();\n\t\t\t\t\n\t\tg_options = jQuery.extend(g_options, g_defaults);\n\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\t\t\n\t\tmodifyOptions();\n\t\t\t\t\n\t\tg_thumbs.init(gallery, g_options);\t\n\t\t\n\t\tvar objCustomOptions = {allow_onresize:false};\n\t\t\n\t\tvar customThumbsAdd = [\"overlay\"];\n\t\t\n\t\tif(g_temp.funcCustomTileHtml)\n\t\t\tcustomThumbsAdd = [];\n\t\t\n\t\tg_thumbs.setCustomThumbs(setHtmlThumb, customThumbsAdd, objCustomOptions);\n\t\t\n\t\t//get thumb default options too:\n\t\tvar thumbOptions = g_thumbs.getOptions();\n\t\tg_options = jQuery.extend(g_options, thumbOptions);\n\t\t\n\t\t//set ratios of fixed mode\n\t\tg_temp.ratioByWidth = g_options.tile_width / g_options.tile_height;\n\t\tg_temp.ratioByHeight = g_options.tile_height / g_options.tile_width;\n\t\t\n\t\t\n\t\t//set if tile has image container\n\t\tif(g_options.tile_size_by == t.sizeby.GLOBAL_RATIO && g_temp.isTextpanelOutside)\n\t\t\tg_temp.hasImageContainer = true;\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set thumb and textpanel options according tile options\n\t */\n\tfunction modifyOptions(){\n\n\t\t//set overlay related options\n\t\tif(g_options.tile_enable_overlay == true){\n\t\t\t\n\t\t\tg_options.thumb_overlay_opacity = g_options.tile_overlay_opacity;\n\t\t\tg_options.thumb_overlay_color = g_options.tile_overlay_color;\n\t\t\n\t\t}else if(g_options.tile_enable_icons == false){\t\t//if nothing on overlay - turn it off\n\t\t\tg_options.thumb_color_overlay_effect = false;\t\t\n\t\t}else{\t\t\t\t\t\t\t\t\t\t\t//if icons enabled - make it transparent\n\t\t\tg_options.thumb_overlay_opacity = 0;\n\t\t}\n\t\t\n\t\t//set item as link\n\t\tif(g_options.tile_as_link){\n\t\t\tg_options.thumb_wrapper_as_link = true;\n\t\t\tg_options.thumb_link_newpage = g_options.tile_link_newpage;\n\t\t}\n\t\t\n\t\t//outline cannot appear without border\n\t\tif(g_options.tile_enable_outline == true && g_options.tile_enable_border == false)\n\t\t\tg_options.tile_enable_outline = false;\n\t\t\n\t\t//set inner reduce value - in case of the border\n\t\tg_temp.tileInnerReduce = 0;\n\t\tif(g_options.tile_enable_border){\n\t\t\tg_temp.tileInnerReduce = g_options.tile_border_width * 2;\n\t\t\tg_thumbs.setThumbInnerReduce(g_temp.tileInnerReduce);\n\t\t}\n\n\t\t//check if saparate icons\n\t\tg_temp.isSaparateIcons = !g_functions.isRgbaSupported();\n\t\t\n\t\t//set if the textpanel is enabled and outside\n\t\tif(g_options.tile_enable_textpanel == true){\n\t\t\t\n\t\t\t//optimize for touch device\n\t\t\tswitch(g_options.tile_textpanel_position){\n\t\t\t\tcase \"top\":\n\t\t\t\t\tg_options.tile_textpanel_align = \"top\";\n\t\t\t\tcase \"bottom\":\n\t\t\t\t\tg_temp.isTextpanelOutside = true;\n\t\t\t\t\tg_options.tile_textpanel_always_on = true;\n\t\t\t\t\tg_options.tile_textpanel_offset = 0;\n\t\t\t\tbreak;\n\t\t\t\tcase \"inside_top\":\n\t\t\t\t\tg_options.tile_textpanel_align = \"top\";\n\t\t\t\tbreak;\n\t\t\t\tcase \"middle\":\n\t\t\t\t\tg_options.tile_textpanel_align = \"middle\";\n\t\t\t\t\tg_options.tile_textpanel_appear_type = \"fade\";\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\t//if text panel oppearing with the overlay, icons should be saparated\n\t\t\tif(g_options.tile_textpanel_always_on == false)\n\t\t\t\tg_temp.isSaparateIcons = true;\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//if the textpanel offset is not from the border, it's always fade.\n\t\tif(g_options.tile_textpanel_offset != 0){\n\t\t\tg_options.tile_textpanel_appear_type = \"fade\";\n\t\t\tg_options.tile_textpanel_margin = g_options.tile_textpanel_offset;\n\t\t}\n\t\t\n\t\t//enable description if needed\n\t\tif(g_options.tile_textpanel_source == \"title_and_desc\"){\n\t\t\tg_options.tile_textpanel_enable_description = true;\n\t\t\tg_options.tile_textpanel_desc_style_as_title = true;\n\t\t}\n\t\t\n\t}\n\t\n\n\t/**\n\t * set options before render\n\t */\n\tfunction modifyOptionsBeforeRender(){\n\t\t\n\t\tvar isMobile = g_gallery.isMobileMode();\n\t\t\n\t\t//set text panel show / hide\n\t\t\n\t\tg_temp.isTextPanelHidden = false;\n\t\tif(isMobile == true && g_options.tile_textpanel_always_on == false)\n\t\t\tg_temp.isTextPanelHidden = true;\n\t\t\n\t\t\n\t\t//set video icon always on true / false\n\t\t\n\t\tg_temp.isVideoplayIconAlwaysOn = g_options.tile_videoplay_icon_always_on;\n\t\t\n\t\tswitch(g_options.tile_videoplay_icon_always_on){\n\t\t\tcase \"always\":\n\t\t\t\tg_temp.isVideoplayIconAlwaysOn = true;\n\t\t\tbreak;\n\t\t\tcase \"never\":\n\t\t\t\tg_temp.isVideoplayIconAlwaysOn = false;\n\t\t\tbreak;\n\t\t\tcase \"mobile_only\":\n\t\t\t\tg_temp.isVideoplayIconAlwaysOn = (isMobile == true)?true:false;\n\t\t\tbreak;\n\t\t\tcase \"desktop_only\":\n\t\t\t\tg_temp.isVideoplayIconAlwaysOn = (isMobile == false)?true:false;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t\n\t}\n\n\t\n\t/**\n\t * set thumb html\n\t */\n\tfunction setHtmlThumb(objThumbWrapper, objItem){\n\t\t\n\t\tobjThumbWrapper.addClass(\"ug-tile\");\n\t\t\n\t\tif(g_temp.funcCustomTileHtml){\n\t\t\tg_temp.funcCustomTileHtml(objThumbWrapper, objItem);\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tvar html = \"\";\n\t\t\t\n\t\t//add image container\n\t\tif(g_temp.hasImageContainer == true){\n\t\t\thtml += \"
\";\n\t\t}\n\t\t\n\t\t//add thumb image:\n\t\tvar classImage = \"ug-thumb-image\";\n\n\t\tif(g_options.tile_enable_image_effect == false || g_options.tile_image_effect_reverse == true)\n\t\t\tclassImage += \" ug-trans-enabled\";\n\t\t\n\t\tvar imageAlt = g_functions.stripTags(objItem.title);\n\t\timageAlt = g_functions.htmlentitles(imageAlt);\n\t\t\n\t\thtml += \"\"+imageAlt+\"\";\n\n\t\tif(g_temp.hasImageContainer == true){\n\t\t\thtml += \"
\";\n\t\t}\t\n\t\t\n\t\tobjThumbWrapper.append(html);\n\t\t\n\t\t\n\t\tif(g_options.tile_size_by == t.sizeby.GLOBAL_RATIO){\n\t\t\tobjThumbWrapper.fadeTo(0,0);\t\t//turn on in thumbsGeneral\n\t\t}\n\t\t\n\t\t//---- set thumb styles ---- \n\t\t\n\t\t//set border:\n\t\tvar objCss = {};\n\t\t\n\t\tif(g_options.tile_enable_background == true){\n\t\t\tobjCss[\"background-color\"] = g_options.tile_background_color;\n\t\t}\n\t\t\n\t\tif(g_options.tile_enable_border == true){\n\t\t\tobjCss[\"border-width\"] = g_options.tile_border_width+\"px\";\n\t\t\tobjCss[\"border-style\"] = \"solid\";\n\t\t\tobjCss[\"border-color\"] = g_options.tile_border_color;\n\t\t\t\n\t\t\tif(g_options.tile_border_radius)\n\t\t\t\tobjCss[\"border-radius\"] = g_options.tile_border_radius+\"px\";\n\t\t}\n\t\t\n\t\t//set outline:\n\t\tif(g_options.tile_enable_outline == true){\n\t\t\tobjCss[\"outline\"] = \"1px solid \" + g_options.tile_outline_color;\n\t\t}\n\t\t\n\t\t//set shadow\n\t\tif(g_options.tile_enable_shadow == true){\n\t\t\tvar htmlShadow = g_options.tile_shadow_h+\"px \";\n\t\t\thtmlShadow += g_options.tile_shadow_v+\"px \";\n\t\t\thtmlShadow += g_options.tile_shadow_blur+\"px \";\n\t\t\thtmlShadow += g_options.tile_shadow_spread+\"px \";\n\t\t\thtmlShadow += g_options.tile_shadow_color;\n\t\t\t\n\t\t\tobjCss[\"box-shadow\"] = htmlShadow;\n\t\t}\n\t\t\n\t\tobjThumbWrapper.css(objCss);\n\t\t\n\t\t\n\t\t//----- add icons\n\t\t\n\t\tvar htmlAdd = \"\";\n\t\t\n\t\tif(g_options.tile_enable_icons){\n\t\t\t\n\t\t\t//add zoom icon\n\t\t\tif(g_options.tile_as_link == false && g_options.tile_enable_action == true){\n\t\t\t\tvar iconPlayClass = \"ug-button-play ug-icon-zoom\";\n\t\t\t\tif(objItem.type != \"image\")\n\t\t\t\t\ticonPlayClass = \"ug-button-play ug-icon-play\";\n\t\t\t\t\n\t\t\t\thtmlAdd += \"\";\n\t\t\t}\n\t\t\t\n\t\t\t//add link icon\n\t\t\tif(objItem.link && g_options.tile_show_link_icon == true || g_options.tile_as_link == true){\n\t\t\t\t\n\t\t\t\tif(g_options.tile_as_link == false){\n\t\t\t\t\tvar linkTarget = \"\";\n\t\t\t\t\tif(g_options.tile_link_newpage == true)\n\t\t\t\t\t\tlinkTarget = \" target='_blank'\";\n\t\t\t\t\t\n\t\t\t\t\thtmlAdd += \"\";\t\t\t\t\t\n\t\t\t\t}else{\n\t\t\t\t\thtmlAdd += \"\";\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\tvar toSaparateIcon = g_temp.isSaparateIcons;\n\t\tif(toSaparateIcon == false && objItem.type != \"image\" && g_temp.isVideoplayIconAlwaysOn == true)\n\t\t\ttoSaparateIcon = true;\n\t\t\n\t\tif(toSaparateIcon)\t\t//put the icons on the thumb\n\t\t\tvar objOverlay = objThumbWrapper;\n\t\telse\n\t\t\tvar objOverlay = objThumbWrapper.children(\".ug-thumb-overlay\");\n\t\t\n\t\tobjOverlay.append(htmlAdd);\t\t\n\t\t\n\t\tvar objButtonZoom = objOverlay.children(\".\" + iconPlayClass);\n\t\t\n\t\tif(objButtonZoom.length == 0)\n\t\t\tobjButtonZoom = null;\n\t\telse\n\t\t\tobjButtonZoom.hide();\n\t\t\n\t\tvar objButtonLink = objOverlay.children(\".ug-icon-link\");\n\t\t\n\t\tif(objButtonLink.length == 0)\n\t\t\tobjButtonLink = null;\n\t\telse\n\t\t\tobjButtonLink.hide();\n\t\t\n\t\t//if only zoom icon, make the tile clickable for lightbox open\n\t\tif(!objButtonLink && g_options.tile_enable_action == true)\n\t\t\tobjThumbWrapper.addClass(\"ug-tile-clickable\");\n\t\t\n\t\t} //if icons enabled\n\t\telse{\t\t//if the icons don't enabled, set the tile clickable\n\t\t\t\n\t\t\tif(g_options.tile_enable_action == true)\n\t\t\t\tobjThumbWrapper.addClass(\"ug-tile-clickable\");\n\t\t\n\t\t}\n\t\t\n\t\t//add image overlay\n\t\tif(g_options.tile_enable_image_effect == true){\n\t\t\t\n\t\t\tvar imageEffectClassAdd = \"\";\n\t\t\tif(g_options.tile_image_effect_reverse == false)\n\t\t\t\timageEffectClassAdd = \" ug-trans-enabled\";\n\t\t\t\n\t\t\tvar imageOverlayHtml = \"
\";\n\t\t\tvar imageEffectClass = \" ug-\"+g_options.tile_image_effect_type+\"-effect\";\n\t\t\t\n\t\t\timageOverlayHtml += \"\"+objItem.title+\"\";\n\t\t\timageOverlayHtml += \"
\";\n\t\t\t\n\t\t\tobjThumbWrapper.append(imageOverlayHtml);\n\n\t\t\t//hide the image overlay if reversed\n\t\t\tif(g_options.tile_image_effect_reverse == true){\n\t\t\t\tobjThumbWrapper.children(\".ug-tile-image-overlay\").fadeTo(0,0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//add text panel\n\t\tif(g_options.tile_enable_textpanel == true){\n\t\t\t\n\t\t\tvar objTextPanel = new UGTextPanel();\t\t\t \n\t\t\tobjTextPanel.init(g_gallery, g_options, \"tile\");\n\t\t\t\n\t\t\t//set transition class\n\t\t\tvar textpanelAddClass = \"\";\n\t\t\tif(g_options.tile_textpanel_always_on == true || g_temp.isTextpanelOutside == true)\n\t\t\t\ttextpanelAddClass = \"ug-trans-enabled\";\n\t\t\t\n\t\t\tobjTextPanel.appendHTML(objThumbWrapper, textpanelAddClass);\n\t\t\t\n\t\t\tvar panelTitle = objItem.title;\n\t\t\tvar panelDesc = \"\";\n\t\t\t\n\t\t\tswitch(g_options.tile_textpanel_source){\n\t\t\t\tcase \"desc\":\n\t\t\t\tcase \"description\":\n\t\t\t\t\tpanelTitle = objItem.description;\n\t\t\t\tbreak;\n\t\t\t\tcase \"desc_title\":\n\t\t\t\t\tif(objItem.description != \"\")\n\t\t\t\t\t\tpanelTitle = objItem.description;\n\t\t\t\tbreak;\n\t\t\t\tcase \"title_and_desc\":\n\t\t\t\t\tpanelTitle = objItem.title;\n\t\t\t\t\tpanelDesc = objItem.description;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tobjTextPanel.setTextPlain(panelTitle, panelDesc);\n\t\t\t\n\t\t\tif(g_options.tile_textpanel_always_on == false)\n\t\t\t\tobjTextPanel.getElement().fadeTo(0,0);\n\t\t\t\n\t\t\tobjThumbWrapper.data(\"objTextPanel\", objTextPanel);\n\n\t\t\t//if textpanel always on, it has to be under the overlay\n\t\t\tif(g_options.tile_textpanel_always_on == true){\n\t\t\t\tvar textPanelElement = getTextPanelElement(objThumbWrapper);\n\t\t\t\ttextPanelElement.css(\"z-index\",2);\n\t\t\t}\n\t\t\t\n\t\t\t//if text panel is outside, clone textpanel\n\t\t\tif(g_temp.isTextpanelOutside == true){\n\t\t\t\t\n\t\t\t\tvar htmlClone = \"
\";\n\t\t\t\tobjThumbWrapper.append(htmlClone);\n\t\t\t\tvar objCloneWrapper = objThumbWrapper.children(\".ug-tile-cloneswrapper\");\n\t\t\t\t\n\t\t\t\tvar objTextPanelClone = new UGTextPanel(); \n\t\t\t\tobjTextPanelClone.init(g_gallery, g_options, \"tile\");\t\t\t\t\n\t\t\t\tobjTextPanelClone.appendHTML(objCloneWrapper);\n\t\t\t\tobjTextPanelClone.setTextPlain(panelTitle, panelDesc);\n\t\t\t\tobjThumbWrapper.data(\"objTextPanelClone\", objTextPanelClone);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t//add additional html\n\t\tif(objItem.addHtml !== null)\n\t\t\tobjThumbWrapper.append(objItem.addHtml);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * load tile image, place the image on load\n\t */\n\tthis.loadTileImage = function(objTile){\n\t\t\n\t\tvar objImage = t.getTileImage(objTile);\n\t\t\t\n\t\tg_functions.checkImagesLoaded(objImage, null, function(objImage,isError){\n\t\t\tonPlaceImage(null, objTile, jQuery(objImage));\n\t\t});\n\t\t\n\t}\n\t\n\tfunction _________________GETTERS________________(){};\n\t\n\t\n\t\n\t/**\n\t * get image overlay\n\t */\n\tfunction getTileOverlayImage(objTile){\n\t\tvar objOverlayImage = objTile.children(\".ug-tile-image-overlay\");\n\t\treturn(objOverlayImage);\n\t}\n\t\n\t/**\n\t * get tile color overlay\n\t */\n\tfunction getTileOverlay(objTile){\n\t\tvar objOverlay = objTile.children(\".ug-thumb-overlay\");\n\t\treturn(objOverlay);\t\t\n\t}\n\t\n\t\n\t/**\n\t * get image container\n\t */\n\tfunction getTileImageContainer(objTile){\n\t\tif(g_temp.hasImageContainer == false)\n\t\t\treturn(null);\n\t\t\n\t\tvar objImageContainer = objTile.children(\".ug-image-container\");\n\t\t\n\t\treturn(objImageContainer);\n\t}\n\t\n\t\n\t/**\n\t * get image effect\n\t */\n\tfunction getTileImageEffect(objTile){\t\t\n\t\tvar objImageEffect = objTile.find(\".ug-tile-image-overlay img\");\t\t\t\n\t\treturn(objImageEffect);\n\t}\n\t\n\t\n\t/**\n\t * get text panel\n\t */\n\tfunction getTextPanel(objTile){\n\t\tvar objTextPanel = objTile.data(\"objTextPanel\");\n\t\t\n\t\treturn(objTextPanel);\n\t}\n\t\n\t\n\t/**\n\t * get cloned text panel\n\t */\n\tfunction getTextPanelClone(objTile){\n\t\tvar objTextPanelClone = objTile.data(\"objTextPanelClone\");\n\t\t\n\t\treturn(objTextPanelClone);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get text panel element from the tile\n\t */\n\tfunction getTextPanelElement(objTile){\n\t\tvar objTextPanel = objTile.children(\".ug-textpanel\");\n\t\t\n\t\treturn(objTextPanel);\n\t}\n\t\n\t\n\t/**\n\t * get text panel element cloned\n\t */\n\tfunction getTextPanelCloneElement(objTile){\n\t\tvar objTextPanel = objTile.find(\".ug-tile-cloneswrapper .ug-textpanel\");\n\t\t\n\t\tif(objTextPanel.length == 0)\n\t\t\tthrow new Error(\"text panel cloned element not found\");\n\t\t\n\t\treturn(objTextPanel);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get text panel height\n\t */\n\tfunction getTextPanelHeight(objTile){\n\t\t\n\t\tif(g_temp.isTextpanelOutside == true)\n\t\t\tvar objTextPanel = getTextPanelCloneElement(objTile);\n\t\telse\n\t\t\tvar objTextPanel = getTextPanelElement(objTile);\n\t\t\n\t\t\n\t\tif(!objTextPanel)\n\t\t\treturn(0);\n\t\t\n\t\tvar objSize = g_functions.getElementSize(objTextPanel);\n\t\treturn(objSize.height);\n\t}\n\t\n\t\n\t/**\n\t * get button link\n\t */\n\tfunction getButtonLink(objTile){\n\t\tvar objButton = objTile.find(\".ug-icon-link\");\n\t\tif(objButton.length == 0)\n\t\t\treturn(null);\n\t\t\n\t\treturn objButton;\n\t}\n\n\t\n\t/**\n\t * get tile ratio\n\t */\n\tfunction getTileRatio(objTile){\n\t\t\n\t\t//global ratio\n\t\tvar ratio = g_temp.ratioByHeight;\n\t\t\n\t\tswitch(g_options.tile_size_by){\n\t\t\tdefault:\t\t//global ratio\n\t\t\t\tratio = g_temp.ratioByHeight;\n\t\t\tbreak;\n\t\t\tcase t.sizeby.IMAGE_RATIO:\n\n\t\t\t\tif(!objTile)\n\t\t\t\t\tthrow new Error(\"tile should be given for tile ratio\");\n\t\t\t\t\n\t\t\t\tvar item = t.getItemByTile(objTile);\n\t\t\t\t\t\t\t\t\n\t\t\t\tif(typeof item.thumbRatioByHeight != \"undefined\"){\n\t\t\t\t\n\t\t\t\t\tif(item.thumbRatioByHeight == 0){\n\t\t\t\t\t\ttrace(item);\n\t\t\t\t\t\tthrow new Error(\"the item ratio not inited yet\");\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\tratio = item.thumbRatioByHeight;\n\t\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\t\tcase t.sizeby.CUSTOM:\n\t\t\t\treturn null;\n\t\t\tbreak;\n\t\t}\n\t\t\t\t\n\t\treturn(ratio);\n\t}\n\t\n\t\n\t/**\n\t * get button zoom\n\t */\n\tfunction getButtonZoom(objTile){\n\t\tvar objButton = objTile.find(\".ug-button-play\");\n\t\t\n\t\tif(objButton.length == 0)\n\t\t\treturn(null);\n\t\t\n\t\treturn objButton;\n\t}\n\t\n\t\n\t/**\n\t * tells if the tile is over style\n\t */\n\tfunction isOverStyle(objTile){\n\t\t\n\t\tif(objTile.hasClass(\"ug-thumb-over\"))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * check if the tile is clickable\n\t */\n\tfunction isTileClickable(objTile){\n\t\t\n\t\treturn objTile.hasClass(\"ug-tile-clickable\");\n\t}\n\t\n\t\n\t/**\n\t * return if the items icon always on\n\t */\n\tfunction isItemIconAlwaysOn(objItem){\n\t\t\n\t\tif(g_options.tile_enable_icons == true && g_temp.isVideoplayIconAlwaysOn == true && objItem.type != \"image\")\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\n\t\n\tfunction _________________SETTERS________________(){};\n\t\n\t\n\t/**\n\t * position tile images elements\n\t * width, height - tile width height\n\t */\n\tfunction positionElements_images(objTile, width, height, visibleOnly){\n\t\t\n\t\tvar objImageOverlay = getTileOverlayImage(objTile);\n\t\tvar objThumbImage = t.getTileImage(objTile);\n\t\tvar objImageEffect = getTileImageEffect(objTile);\n\t\t\n\t\t//reduce borders\n\t\twidth -= g_temp.tileInnerReduce;\n\t\theight -= g_temp.tileInnerReduce;\n\t\t\n\t\tvar imagePosy = null;\n\t\t\n\t\t//reduce textpanel height\n\t\tif(g_temp.isTextpanelOutside == true){\n\n\t\t\tvar textHeight = getTextPanelHeight(objTile);\n\t\t\theight -= textHeight;\n\n\t\t\tif(g_options.tile_textpanel_position == \"top\"){\n\t\t\t\timagePosy = textHeight;\n\t\t\t}\n\t\t\t\n\t\t\t/**\n\t\t\t * if has image container\n\t\t\t */\n\t\t\tif(g_temp.hasImageContainer == true){\n\t\t\t\tvar objImageContainer = getTileImageContainer(objTile);\n\t\t\t\tg_functions.setElementSize(objImageContainer, width, height);\n\t\t\t\t\n\t\t\t\tif(imagePosy !== null)\n\t\t\t\t\tg_functions.placeElement(objImageContainer, 0, imagePosy);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t//scale image\n\t\tif(g_options.tile_enable_image_effect == false){\n\n\t\t\tg_functions.scaleImageCoverParent(objThumbImage, width, height);\n\t\t\t\n\t\t\tif(g_temp.hasImageContainer == false && imagePosy !== null)\n\t\t\t\tg_functions.placeElement(objThumbImage, 0, imagePosy);\n\n\t\t}else{\t//width the effect\n\t\t\t\n\t\t\t//set what to resize\n\t\t\tvar dontResize = \"nothing\";\n\t\t\tif(visibleOnly === true && g_temp.isTextpanelOutside == false){\n\t\t\t\tif(g_options.tile_image_effect_reverse == true){\n\t\t\t\t\tdontResize = \"effect\";\n\t\t\t\t}else{\n\t\t\t\t\tdontResize = \"image\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//resize image effect\n\t\t\tif(dontResize != \"effect\"){\n\t\t\t\tg_functions.setElementSize(objImageOverlay, width, height);\n\t\t\t\t\n\t\t\t\tif(imagePosy !== null)\n\t\t\t\t\tg_functions.placeElement(objImageOverlay, 0, imagePosy);\n\t\t\t\t\n\t\t\t\tg_functions.scaleImageCoverParent(objImageEffect, width, height);\n\t\t\t}\n\t\t\t\n\n\t\t\t//resize image\n\t\t\tif(dontResize != \"image\"){\n\t\t\t\t\n\t\t\t\tif(g_temp.hasImageContainer == true){\n\t\t\t\t\tg_functions.scaleImageCoverParent(objThumbImage, width, height);\n\t\t\t\t}else{\n\t\t\t\t\t\n\t\t\t\t\t//if can't clone, resize\n\t\t\t\t\tif(dontResize == \"effect\"){\n\t\t\t\t\t\tg_functions.scaleImageCoverParent(objThumbImage, width, height);\n\t\t\t\t\t\tif(imagePosy !== null)\n\t\t\t\t\t\t\tg_functions.placeElement(objThumbImage, 0, imagePosy);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tg_functions.cloneElementSizeAndPos(objImageEffect, objThumbImage, false, null, imagePosy);\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t\n\t\t\t\n\t\t}\n\n\t}\n\t\n\t\n\t/**\n\t * position text panel\n\t * panelType - default or clone\n\t */\n\tfunction positionElements_textpanel(objTile, panelType, tileWidth, tileHeight){\n\t\t\n\t\tvar panelWidth = null;\n\t\tif(tileWidth)\n\t\t\tpanelWidth = tileWidth - g_temp.tileInnerReduce;\n\n\t\tif(tileHeight)\n\t\t\ttileHeight -= g_temp.tileInnerReduce;\n\t\t\n\t\tif(panelType == \"clone\"){\n\t\t\tvar objTextPanelClone = getTextPanelClone(objTile);\n\t\t\tobjTextPanelClone.refresh(true, true, panelWidth);\n\t\t\tvar objItem = t.getItemByTile(objTile);\n\t\t\tobjItem.textPanelCloneSizeSet = true;\n\t\t\t\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tvar objTextPanel = getTextPanel(objTile);\n\t\t\n\t\tif(!objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\tvar panelHeight = null;\n\t\t\t\t\n\t\t//set panel height also\n\t\tif(g_temp.isTextpanelOutside == true)\n\t\t\tpanelHeight = getTextPanelHeight(objTile);\n\t\t\n\t\tobjTextPanel.refresh(false, true, panelWidth, panelHeight);\n\t\t\n\t\tvar isPosition = (g_options.tile_textpanel_always_on == true || g_options.tile_textpanel_appear_type == \"fade\");\n\t\t\n\t\tif(isPosition){\n\t\t\t\n\t\t\tif(g_temp.isTextpanelOutside == true && tileHeight && g_options.tile_textpanel_position == \"bottom\"){\n\t\t\t\n\t\t\t\tvar posy = tileHeight - panelHeight;\n\t\t\t\tobjTextPanel.positionPanel(posy);\n\t\t\t}else\n\t\t\t\tobjTextPanel.positionPanel();\n\t\t}\n\t\t\n\t}\n\t\t\n\t\n\t/**\n\t * position the elements\n\t */\n\tfunction positionElements(objTile){\n\t\t\n\t\tvar objItem = t.getItemByTile(objTile);\n\t\tvar objButtonZoom = getButtonZoom(objTile);\n\t\tvar objButtonLink = getButtonLink(objTile);\n\t\tvar sizeTile = g_functions.getElementSize(objTile);\n\t\t\t\t\n\t\tpositionElements_images(objTile, sizeTile.width, sizeTile.height);\n\t\t\n\t\t//position text panel:\n\t\tif(g_options.tile_enable_textpanel == true)\n\t\t\tpositionElements_textpanel(objTile, \"regular\", sizeTile.width, sizeTile.height);\n\t\t\n\t\t\n\t\t//position overlay:\n\t\tvar overlayWidth = sizeTile.width - g_temp.tileInnerReduce;\n\t\tvar overlayHeight = sizeTile.height - g_temp.tileInnerReduce;\n\t\tvar overlayY = 0;\n\t\tif(g_temp.isTextpanelOutside == true){\n\t\t\tvar textHeight = getTextPanelHeight(objTile);\n\t\t\toverlayHeight -= textHeight;\n\t\t\tif(g_options.tile_textpanel_position == \"top\")\n\t\t\t\toverlayY = textHeight;\n\t\t}\n\t\t\n\t\tvar objOverlay = getTileOverlay(objTile);\n\t\tg_functions.setElementSizeAndPosition(objOverlay, 0, overlayY, overlayWidth, overlayHeight);\n\t\t\n\t\t//set vertical gap for icons\n\t\tif(objButtonZoom || objButtonLink){\n\n\t\t\tvar gapVert = 0;\n\t\t\tif( g_options.tile_enable_textpanel == true && g_temp.isTextPanelHidden == false && g_temp.isTextpanelOutside == false){\n\t\t\t\tvar objTextPanelElement = getTextPanelElement(objTile);\n\t\t\t\tvar texPanelSize = g_functions.getElementSize(objTextPanelElement);\n\t\t\t\tif(texPanelSize.height > 0)\n\t\t\t\t\tgapVert = Math.floor((texPanelSize.height / 2) * -1);\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tif(objButtonZoom && objButtonLink){\n\t\t\tvar sizeZoom = g_functions.getElementSize(objButtonZoom);\n\t\t\tvar sizeLink = g_functions.getElementSize(objButtonLink);\n\t\t\tvar spaceBetween = g_options.tile_space_between_icons;\n\t\t\t\n\t\t\tvar buttonsWidth = sizeZoom.width + spaceBetween + sizeLink.width;\n\t\t\tvar buttonsX = Math.floor((sizeTile.width - buttonsWidth) / 2);\n\t\t\t\n\t\t\t//trace(\"X: \"+buttonsX+\" \"+\"space: \" + spaceBetween);\n\t\t\t\n\t\t\t//if space more then padding, calc even space.\n\t\t\tif(buttonsX < spaceBetween){\n\t\t\t\tspaceBetween = Math.floor((sizeTile.width - sizeZoom.width - sizeLink.width) / 3);\n\t\t\t\tbuttonsWidth = sizeZoom.width + spaceBetween + sizeLink.width;\n\t\t\t\tbuttonsX = Math.floor((sizeTile.width - buttonsWidth) / 2);\n\t\t\t}\n\n\t\t\tg_functions.placeElement(objButtonZoom, buttonsX, \"middle\", 0 ,gapVert);\n\t\t\tg_functions.placeElement(objButtonLink, buttonsX + sizeZoom.width + spaceBetween, \"middle\", 0, gapVert);\n\t\t\t\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(objButtonZoom)\n\t\t\t\tg_functions.placeElement(objButtonZoom, \"center\", \"middle\", 0, gapVert);\n\t\t\t\n\t\t\tif(objButtonLink)\n\t\t\t\tg_functions.placeElement(objButtonLink, \"center\", \"middle\", 0, gapVert);\n\t\t\t\t\n\t\t}\n\t\t\n\t\tif(objButtonZoom)\n\t\t\tobjButtonZoom.show();\n\t\t\n\t\tif(objButtonLink)\n\t\t\tobjButtonLink.show();\n\t}\n\n\t\n\t/**\n\t * set tiles htmls\n\t */\n\tthis.setHtml = function(objParent, isAppend){\n\t\tg_objParentWrapper = objParent;\n\t\t\n\t\tif(isAppend !== true)\n\t\t\tmodifyOptionsBeforeRender();\n\t\t\n\t\tg_thumbs.setHtmlThumbs(objParent, isAppend);\n\t}\n\t\n\t\n\t\n\t/**\n\t * set the overlay effect\n\t */\n\tfunction setImageOverlayEffect(objTile, isActive){\n\t\t\n\t\tvar objItem = t.getItemByTile(objTile);\n\t\tvar objOverlayImage = getTileOverlayImage(objTile);\n\t\t\n\t\tvar animationDuration = g_options.thumb_transition_duration;\n\t\t\n\t\tif(g_options.tile_image_effect_reverse == false){\n\t\t\t\n\t\t\tvar objThumbImage = t.getTileImage(objTile);\n\t\t\t\n\t\t\tif(isActive){\n\t\t\t\tobjThumbImage.fadeTo(0,1);\t\t\t\n\t\t\t\tobjOverlayImage.stop(true).fadeTo(animationDuration, 0);\n\t\t\t}\n\t\t\telse\n\t\t\t\tobjOverlayImage.stop(true).fadeTo(animationDuration, 1);\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(isActive){\n\t\t\t\tobjOverlayImage.stop(true).fadeTo(animationDuration, 1);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tobjOverlayImage.stop(true).fadeTo(animationDuration, 0);\n\t\t\t}\n\t\t}\n\n\t}\n\t\n\t\n\t/**\n\t * set textpanel effect\n\t */\n\tfunction setTextpanelEffect(objTile, isActive){\n\t\t\n\t\tvar animationDuration = g_options.thumb_transition_duration;\n\t\t\n\t\tvar objTextPanel = getTextPanelElement(objTile);\n\t\tif(!objTextPanel)\n\t\t\treturn(true);\n\t\t\t\t\n\t\tif(g_options.tile_textpanel_appear_type == \"slide\"){\n\t\t\t\n\t\t\tvar panelSize = g_functions.getElementSize(objTextPanel);\n\t\t\tif(panelSize.width == 0)\n\t\t\t\treturn(false);\n\t\t\t\n\t\t\tvar startPos = -panelSize.height;\n\t\t\tvar endPos = 0;\n\t\t\tvar startClass = {}, endClass = {};\n\t\t\t\n\t\t\tvar posName = \"bottom\";\n\t\t\tif(g_options.tile_textpanel_position == \"inside_top\")\n\t\t\t\tposName = \"top\";\n\t\t\t\n\t\t\tstartClass[posName] = startPos+\"px\";\n\t\t\tendClass[posName] = endPos+\"px\";\n\t\t\t\t\t\t\n\t\t\tif(isActive == true){\n\t\t\t\t\t\t\t\t\n\t\t\t\tobjTextPanel.fadeTo(0,1);\n\t\t\t\t\n\t\t\t\tif(objTextPanel.is(\":animated\") == false)\n\t\t\t\t\tobjTextPanel.css(startClass);\n\t\t\t\t\n\t\t\t\tendClass[\"opacity\"] = 1;\n\t\t\t\t\t\n\t\t\t\tobjTextPanel.stop(true).animate(endClass, animationDuration);\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\t\n\t\t\t\tobjTextPanel.stop(true).animate(startClass, animationDuration);\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}else{\t\t//fade effect\n\t\t\t\n\t\t\tif(isActive == true){\n\t\t\t\tobjTextPanel.stop(true).fadeTo(animationDuration, 1);\n\t\t\t}else{\n\t\t\t\tobjTextPanel.stop(true).fadeTo(animationDuration, 0);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\n\t/**\n\t * set thumb border effect\n\t */\n\tfunction setIconsEffect(objTile, isActive, noAnimation){\n\t\t\n\t\tvar animationDuration = g_options.thumb_transition_duration;\n\t\tif(noAnimation && noAnimation === true)\n\t\t\tanimationDuration = 0;\n\t\t\n\t\tvar g_objIconZoom = getButtonZoom(objTile);\n\t\tvar g_objIconLink = getButtonLink(objTile);\n\t\tvar opacity = isActive?1:0;\n\t\t\n\t\tif(g_objIconZoom)\n\t\t\tg_objIconZoom.stop(true).fadeTo(animationDuration, opacity);\n\t\t\n\t\tif(g_objIconLink)\n\t\t\tg_objIconLink.stop(true).fadeTo(animationDuration, opacity);\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * set tile over style\n\t */\n\tfunction setOverStyle(data, objTile){\n\t\t\t\t\n\t\tobjTile = jQuery(objTile);\n\t\t\t\t\n\t\tif(g_options.tile_enable_image_effect)\n\t\t\tsetImageOverlayEffect(objTile, true);\n\n\t\tif(g_options.tile_enable_textpanel == true && g_options.tile_textpanel_always_on == false && g_temp.isTextPanelHidden == false)\n\t\t\tsetTextpanelEffect(objTile, true);\n\t\t\n\t\t//show/hide icons - if saparate (if not, they are part of the overlay)\n\t\t//if the type is video and icon always on - the icon should stay\n\t\tif(g_temp.isSaparateIcons && g_options.tile_enable_icons == true){\n\t\t\tvar isSet = (g_options.thumb_overlay_reverse == true);\n\t\t\t\n\t\t\tvar objItem = t.getItemByTile(objTile);\n\t\t\tif(isItemIconAlwaysOn(objItem) == false)\n\t\t\t\tsetIconsEffect(objTile, isSet, false);\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set normal style\n\t */\n\tfunction setNormalStyle(data, objTile){\n\t\t\n\t\tobjTile = jQuery(objTile);\n\t\t\n\t\tif(g_options.tile_enable_image_effect)\n\t\t\tsetImageOverlayEffect(objTile, false);\n\t\t\n\t\tif(g_options.tile_enable_textpanel == true && g_options.tile_textpanel_always_on == false)\n\t\t\tsetTextpanelEffect(objTile, false);\n\t\t\n\t\t//show/hide icons - if saparate (if not, they are part of the overlay)\n\t\tif(g_temp.isSaparateIcons == true && g_options.tile_enable_icons == true){\n\t\t\t\n\t\t\tvar isSet = (g_options.thumb_overlay_reverse == true)?false:true;\n\t\t\t\n\t\t\tvar objItem = t.getItemByTile(objTile);\n\t\t\tif(isItemIconAlwaysOn(objItem) == false)\n\t\t\t\tsetIconsEffect(objTile, isSet, false);\n\t\t\telse{\t//make icon always appear\n\t\t\t\tsetIconsEffect(objTile, true, true);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set all tiles normal style\n\t */\n\tfunction setAllTilesNormalStyle(objTileExcept){\n\t\t\n\t\tvar objTiles = g_thumbs.getThumbs().not(objTileExcept);\n\t\tobjTiles.each(function(index, objTile){\n\t\t\tg_thumbs.setThumbNormalStyle(jQuery(objTile));\n\t\t});\n\t\t\n\t}\n\t\n\t\n\tfunction _________________EVENTS________________(){};\n\t\n\t\n\t/**\n\t * on tile size change, place elements\n\t */\n\tfunction onSizeChange(data, objTile, forcePosition){\n\n\t\tobjTile = jQuery(objTile);\n\t\t\n\t\t//position elements only if the image loaded (placed)\n\t\tif(g_options.tile_visible_before_image == true && objTile.data(\"image_placed\") !== true && forcePosition !== true)\n\t\t\treturn(true);\n\n\t\tpositionElements(objTile);\n\t\t\n\t\tg_thumbs.setThumbNormalStyle(objTile);\n\t}\n\t\n\t\n\t/**\n\t * on place image event after images loaded\n\t */\n\tfunction onPlaceImage(data, objTile, objImage){\n\t\t\n\t\tpositionElements(objTile);\n\t\tobjImage.fadeTo(0,1);\n\t\t\n\t\tobjTile.data(\"image_placed\", true);\n\t}\n\t\n\t\n\t/**\n\t * on tile click on mobile devices on normal state\n\t * set the tile over state\n\t */\n\tfunction onMobileClick(objTile){\n\n\t\tif(isTileClickable(objTile) == true){\n\t\t\tg_objThis.trigger(t.events.TILE_CLICK, objTile);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tif(isOverStyle(objTile) == false){\n\t\t\tsetAllTilesNormalStyle(objTile);\t\t\t\n\t\t\tg_thumbs.setThumbOverStyle(objTile);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on tile click event\n\t */\n\tfunction onTileClick(event){\n\t\t\t\t\n\t\tvar objTile = jQuery(this);\n\t\t\n\t\tvar tagname = objTile.prop(\"tagName\").toLowerCase();\n\t\tvar isApproved = true;\n\t\tif(g_temp.funcParentApproveClick && g_temp.funcParentApproveClick() == false)\n\t\t\tisApproved = false;\n\t\t\t\t\n\t\tif(tagname == \"a\"){\n\t\t\t\n\t\t\tif(isApproved == false)\n\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\n\t\t}else{\t\t//in case of div\n\t\t\t\n\t\t\tif(isOverStyle(objTile) == false){\t//mobile click version\n\t\t\t\t\n\t\t\t\tif(isApproved == true)\n\t\t\t\t\tonMobileClick(objTile);\n\t\t\t\t\t\t\t\t\n\t\t\t}else{\n\t\t\t\tif(isTileClickable(objTile) == false)\n\t\t\t\t\treturn(true);\n\t\t\t\t\n\t\t\t\tif(isApproved == true)\n\t\t\t\t\tg_objThis.trigger(t.events.TILE_CLICK, objTile);\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * click on zoom button (as tile click)\n\t */\n\tfunction onZoomButtonClick(event){\n\t\t\t\t\n\t\tevent.stopPropagation();\n\t\t\n\t\tvar objTile = jQuery(this).parents(\".ug-tile\");\n\t\t\n\t\tvar isApproved = true;\n\t\t\n\t\tif(g_temp.funcParentApproveClick && g_temp.funcParentApproveClick() == false)\n\t\t\tisApproved = false;\n\t\t\n\t\tif(isOverStyle(objTile) == false){\n\t\t\tonMobileClick(objTile);\n\t\t\treturn(true);\n\t\t}\n\t\t\t\n\t\tif(isApproved == true){\n\t\t\tg_objThis.trigger(t.events.TILE_CLICK, objTile);\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on link icon click\n\t */\n\tfunction onLinkButtonClick(event){\n\t\tvar objTile = jQuery(this).parents(\".ug-tile\");\n\t\t\t\t\n\t\tif(g_temp.funcParentApproveClick && g_temp.funcParentApproveClick() == false)\n\t\t\tevent.preventDefault();\n\t\t\n\t\t//allow click only from over style\n\t\tif(isOverStyle(objTile) == false && g_options.tile_as_link == false){\n\t\t\tevent.preventDefault();\n\t\t\tonMobileClick(objTile);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tthis.initEvents = function(){\n\t\t\t\t\n\t\tg_thumbs.initEvents();\n\t\t\n\t\t//connect the over and normal style of the regular thumbs\n\t\tjQuery(g_thumbs).on(g_thumbs.events.SETOVERSTYLE, setOverStyle);\n\t\tjQuery(g_thumbs).on(g_thumbs.events.SETNORMALSTYLE, setNormalStyle);\n\t\tjQuery(g_thumbs).on(g_thumbs.events.PLACEIMAGE, onPlaceImage);\n\t\t\n\t\tg_objWrapper.on(g_temp.eventSizeChange, onSizeChange);\n\t\t\n\t\tg_objParentWrapper.on(\"click\", \".ug-tile\", onTileClick);\n\t\t\n\t\tg_objParentWrapper.on(\"click\", \".ug-tile .ug-button-play\", onZoomButtonClick);\n\t\t\n\t\tg_objParentWrapper.on(\"click\", \".ug-tile .ug-icon-link\", onLinkButtonClick);\n\t}\n\t\n\t\n\t/**\n\t * destroy the element events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tg_objParentWrapper.off(\"click\", \".ug-tile\");\n\t\tg_objParentWrapper.off(\"click\", \".ug-tile .ug-button-play\");\n\t\tg_objParentWrapper.off(\"click\", \".ug-tile .ug-icon-link\");\n\t\t\n\t\tjQuery(g_thumbs).off(g_thumbs.events.SETOVERSTYLE);\n\t\tjQuery(g_thumbs).off(g_thumbs.events.SETNORMALSTYLE);\n\t\tjQuery(g_thumbs).off(g_thumbs.events.PLACEIMAGE);\n\t\tg_objWrapper.off(g_temp.eventSizeChange);\n\t\t\n\t\tif(g_options.tile_enable_textpanel == true){\n\t\t\tvar objThumbs = g_thumbs.getThumbs();\n\t\t\tjQuery.each(objThumbs, function(index, thumb){\t\t\t\t\n\t\t\t\tvar textPanel = getTextPanel(jQuery(thumb));\n\t\t\t\tif(textPanel)\n\t\t\t\t\ttextPanel.destroy();\n\t\t\t});\n\t\t}\n\t\t\n\t\tg_thumbs.destroy();\n\n\t}\n\n\t\n\t/**\n\t * external init\n\t */\n\tthis.init = function(gallery, g_thumbs, customOptions){\n\t\t\n\t\tinit(gallery, g_thumbs, customOptions);\n\t}\n\t\n\t/**\n\t * set fixed mode\n\t */\n\tthis.setFixedMode = function(){\n\t\t\n\t\tg_options.tile_size_by = t.sizeby.GLOBAL_RATIO;\n\t\tg_options.tile_visible_before_image = true;\n\t}\n\t\n\t\n\t/**\n\t * set parent approve click function\n\t */\n\tthis.setApproveClickFunction = function(funcApprove){\n\t\tg_temp.funcParentApproveClick = funcApprove;\n\t}\n\t\n\t\n\t\n\t/**\n\t * resize tile. If no size given, resize to original size\n\t * the resize mode taken from resize modes constants, default is full\n\t */\n\tthis.resizeTile = function(objTile, newWidth, newHeight, resizeMode){\n\t\t\n\t\t\t//if textpanel outside - refresh the textpanel first\n\t\t\tif(g_temp.isTextpanelOutside == true)\n\t\t\t\tpositionElements_textpanel(objTile, \"clone\", newWidth);\n\t\t\t\n\t\t\tif(!newWidth){\n\t\t\t\t\n\t\t\t\tvar newWidth = g_options.tile_width;\n\t\t\t\tvar newHeight = g_options.tile_height;\n\t\t\t\t\n\t\t\t}else{\t\t//only height is missing\n\t\t\t\tif(!newHeight){\n\t\t\t\t\t\n\t\t\t\t\tvar newHeight = t.getTileHeightByWidth(newWidth, objTile);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\tg_functions.setElementSize(objTile, newWidth, newHeight);\n\t\t\t\n\t\t\tswitch(resizeMode){\n\t\t\t\tdefault:\n\t\t\t\tcase t.resizemode.FULL:\n\t\t\t\t\tt.triggerSizeChangeEvent(objTile, true);\n\t\t\t\tbreak;\n\t\t\t\tcase t.resizemode.WRAPPER_ONLY:\n\t\t\t\t\treturn(true);\n\t\t\t\tbreak;\n\t\t\t\tcase t.resizemode.VISIBLE_ELEMENTS:\n\t\t\t\t\t\n\t\t\t\t\tif(g_temp.funcCustomTileHtml){\n\t\t\t\t\t\tt.triggerSizeChangeEvent(objTile, true);\n\t\t\t\t\t\treturn(true);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//resize images\n\t\t\t\t\tpositionElements_images(objTile, newWidth, newHeight, true);\n\t\t\t\t\t\n\t\t\t\t\t//resize text panel, if visible\n\t\t\t\t\tif(g_options.tile_enable_textpanel == true && g_options.tile_textpanel_always_on == true && newWidth){\n\t\t\t\t\t\tpositionElements_textpanel(objTile, \"regular\", newWidth, newHeight);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * resize all tiles \n\t */\n\tthis.resizeAllTiles = function(newWidth, resizeMode, objTiles){\n\t\t\n\t\tmodifyOptionsBeforeRender();\n\t\t\n\t\tvar newHeight = null;\n\t\t\n\t\tif(g_options.tile_size_by == t.sizeby.GLOBAL_RATIO)\n\t\t\tnewHeight = t.getTileHeightByWidth(newWidth);\n\t\t\n\t\tif(!objTiles)\n\t\t\tvar objTiles = g_thumbs.getThumbs();\n\t\t\n\t\tobjTiles.each(function(index, objTile){\n\t\t\tt.resizeTile(jQuery(objTile), newWidth, newHeight, resizeMode);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * trigger size change events\n\t * the force is only for fixed size mode\n\t */\n\tthis.triggerSizeChangeEvent = function(objTile, isForce){\n\t\t\n\t\tif(!objTile)\n\t\t\treturn(false);\n\t\t\n\t\tif(!isForce)\n\t\t\tvar isForce = false;\n\t\t\n\t\tg_objWrapper.trigger(g_temp.eventSizeChange, [objTile, isForce]);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * trigger size change event to all tiles\n\t * the force is only for fixed mode\n\t */\n\tthis.triggerSizeChangeEventAllTiles = function(isForce){\n\t\t\n\t\tvar objThumbs = g_thumbs.getThumbs();\n\n\t\tobjThumbs.each(function(){\n\t\t\tvar objTile = jQuery(this);\n\t\t\t\n\t\t\tt.triggerSizeChangeEvent(objTile, isForce);\n\t\t\t\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t\n\t\n\t\n\t/**\n\t * disable all events\n\t */\n\tthis.disableEvents = function(){\n\t\tvar objThumbs = g_thumbs.getThumbs();\n\t\tobjThumbs.css(\"pointer-events\", \"none\");\n\t}\n\t\n\t\n\t/**\n\t * enable all events\n\t */\n\tthis.enableEvents = function(){\n\t\tvar objThumbs = g_thumbs.getThumbs();\n\t\tobjThumbs.css(\"pointer-events\", \"auto\");\n\t}\n\t\n\t\n\t/**\n\t * set new options\n\t */\n\tthis.setOptions = function(newOptions){\n\t\tg_options = jQuery.extend(g_options, newOptions);\n\t\tg_thumbs.setOptions(newOptions);\n\t}\n\t\n\t\n\t/**\n\t * set new tile size, this function will not resize, and keep ratio\n\t */\n\tthis.setTileSizeOptions = function(newTileWidth){\n\t\t\n\t\tif(g_options.tile_size_by !== t.sizeby.GLOBAL_RATIO)\n\t\t\tthrow new Error(\"setNewTileOptions works with global ration only\");\n\t\t\n\t\tg_options.tile_width = newTileWidth;\n\t\tg_options.tile_height = Math.floor(newTileWidth * g_temp.ratioByHeight);\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set custom tile html function\n\t */\n\tthis.setCustomFunctions = function(funcCustomHtml, funcPositionElements){\n\t\tg_temp.funcCustomTileHtml = funcCustomHtml;\n\t\tg_temp.funcCustomPositionElements = funcPositionElements;\n\t}\n\t\n\t\n\t/**\n\t * run the tile design\n\t */\n\tthis.run = function(newOnly){\n\t\t\n\t\t//resize all tiles\n\t\tvar getMode = g_thumbs.type.GET_THUMBS_ALL;\n\t\tif(newOnly === true)\n\t\t\tgetMode = g_thumbs.type.GET_THUMBS_NEW;\n\t\t\n\t\tvar objThumbs = g_thumbs.getThumbs(getMode);\n\t\t\n\t\tif(g_options.tile_size_by == t.sizeby.GLOBAL_RATIO){\n\t\t\tt.resizeAllTiles(g_options.tile_width, t.resizemode.WRAPPER_ONLY, objThumbs);\n\t\t}\n\t\t\n\t\t//hide original image if image effect active\n\t\tif(g_options.tile_enable_image_effect == true && g_options.tile_image_effect_reverse == false)\n\t\t\tobjThumbs.children(\".ug-thumb-image\").fadeTo(0,0);\n\t\t\n\t\tg_thumbs.setHtmlProperties(objThumbs);\n\t\t\n\t\tif(g_options.tile_visible_before_image == true){\n\t\t\t\n\t\t\t//if textpanel outside - refresh the textpanel first\t\t\t\n\t\t\tobjThumbs.children(\".ug-thumb-image\").fadeTo(0,0);\n\t\t\tg_thumbs.loadThumbsImages();\n\t\t}\n\t\t\n\t}\n\n\t\n\tthis._____________EXTERNAL_GETTERS____________=function(){};\n\t\n\t\n\t/**\n\t * get thumbs general option\n\t */\n\tthis.getObjThumbs = function(){\n\t\treturn g_thumbs;\n\t}\n\t\n\t/**\n\t * get options\n\t */\n\tthis.getOptions = function(){\n\t\treturn g_options;\n\t}\n\n\t/**\n\t * get tile image\n\t */\n\tthis.getTileImage = function(objTile){\n\t\tvar objImage = objTile.find(\"img.ug-thumb-image\");\n\t\treturn(objImage);\n\t}\n\n\t\n\t/**\n\t * get item from tile\n\t */\n\tthis.getItemByTile = function(objTile){\n\t\treturn g_thumbs.getItemByThumb(objTile);\n\t}\n\t\n\t\n\t/**\n\t * get tile height by width\n\t */\n\tthis.getTileHeightByWidth = function(newWidth, objTile){\n\t\t\n\t\tvar ratio = getTileRatio(objTile);\n\t\t\n\t\tif(ratio === null)\n\t\t\treturn(null);\n\t\t\n\t\tvar height = Math.floor( (newWidth - g_temp.tileInnerReduce) * ratio) + g_temp.tileInnerReduce;\n\t\t\n\t\tif(objTile && g_temp.isTextpanelOutside == true && g_options.tile_size_by == t.sizeby.IMAGE_RATIO)\n\t\t\theight += getTextPanelHeight(objTile);\n\t\t\n\t\treturn(height);\n\t}\n\t\n\t\n\t/**\n\t * get tile original size\n\t */\n\tthis.getTileImageSize = function(objTile){\n var objItem = t.getItemByTile(objTile);\n if(!objItem.thumbWidth || !objItem.thumbHeight)\n \tthrow new Error(\"Can't get image size - image not inited.\");\n \n var objSize = {\n \t\twidth: objItem.thumbWidth,\n \t\theight: objItem.thumbHeight\n };\n \n return(objSize);\n\t}\n\t\n\t\n\t/**\n\t * get tile size\n\t */\n\tthis.getGlobalTileSize = function(){\n\t\t\n\t\tif(g_options.tile_size_by != t.sizeby.GLOBAL_RATIO)\n\t\t\tthrow new Error(\"The size has to be global ratio\");\n\t\t\n\t\tvar objSize = {\n\t\t\t\twidth: g_options.tile_width,\n\t\t\t\theight: g_options.tile_height\n\t\t};\n\t\t\n\t\treturn(objSize);\n\t}\n\t\n\t\n}\n\n/**\n * avia control class\n * addon to strip gallery\n */\nfunction UGAviaControl(){\n\n\tvar g_parent, g_gallery, g_objects, g_objStrip, g_objStripInner, g_options;\n\tvar g_isVertical;\n\t\n\tvar g_temp = {\n\t\ttouchEnabled:false,\t\t\t//variable that tells if touch event was before move event\n\t\tisMouseInsideStrip: false,\n\t\tstrip_finalPos:0,\n\t\thandle_timeout:\"\",\n\t\tisStripMoving:false,\n\t\tisControlEnabled: true\n\t};\n\t\n\t\n\t/**\n\t * enable the control\n\t */\n\tthis.enable = function(){\n\t\tg_temp.isControlEnabled = true;\n\t}\n\t\n\t/**\n\t * disable the control\n\t */\n\tthis.disable = function(){\n\t\tg_temp.isControlEnabled = false;\t\t\n\t}\n\t\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(objParent){\n\t\tg_parent = objParent;\n\t\t\n\t\tg_objects = objParent.getObjects();\n\t\t\t\t\n\t\tg_gallery = g_objects.g_gallery;\n\t\t\n\t\tg_objStrip = g_objects.g_objStrip;\n\t\tg_objStripInner = g_objects.g_objStripInner;\n\t\tg_options = g_objects.g_options;\n\t\tg_isVertical = g_objects.isVertical;\t\t\n\t\t\t\t\n\t\tinitEvents();\n\t}\n\t\n\t/**\n\t * get mouse position from event according the orientation\n\t */\n\tfunction getMousePos(event){\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\treturn(event.pageX);\n\t\t\n\t\treturn(event.pageY);\n\t}\n\t\n\t/**\n\t * handle avia strip control event on body mouse move\n\t */\n\tfunction initEvents(event){\n\t\t\n\t\t//make sure that the avia control will not work on touch devices\n\t\tjQuery(\"body\").on(\"touchstart\", function(event){\n\t\t\t\n\t\t\tif(g_temp.isControlEnabled == false)\n\t\t\t\treturn(true);\n\t\t\t\n\t\t\tg_temp.touchEnabled = true;\n\t\t\t\n\t\t});\n\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").mousemove(function(event){\n\t\t\t\n\t\t\tif(g_temp.isControlEnabled == false)\n\t\t\t\treturn(true);\n\t\t\t\t\t\t\t\t\t\n\t\t\t//protection for touch devices, disable the avia events\n\t\t\tif(g_temp.touchEnabled == true){\n\t\t\t\tjQuery(\"body\").off(\"mousemove\");\n\t\t\t\treturn(true);\n\t\t\t}\n\t\t\t\n\t\t\tg_temp.isMouseInsideStrip = g_objStrip.ismouseover();\n\t\t\tvar strip_touch_active = g_parent.isTouchMotionActive();\n\t\t\t\n\t\t\tif(g_temp.isMouseInsideStrip == true && strip_touch_active == false){\n\t\t\t\t\n\t\t\t\tvar mousePos = getMousePos(event);\n\t\t\t\t\n\t\t\t\tmoveStripToMousePosition(mousePos);\n\t\t\t}else{\n\t\t\t\tstopStripMovingLoop();\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the avia control events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tjQuery(\"body\").off(\"touchstart\");\n\t\tjQuery(\"body\").off(\"mousemove\");\n\n\t}\n\t\n\t\n\t/**\n\t * get inner y position according mouse y position on the strip\n\t */\n\tfunction getInnerPosY(mouseY){\n\n\t\tvar innerOffsetTop = g_options.strip_padding_top;\n\t\tvar innerOffsetBottom = g_options.strip_padding_bottom;\n\n\t\tvar stripHeight = g_objStrip.height();\n\t\tvar innerHeight = g_objStripInner.height();\t\t\n\t\t\n\t\t//if all thumbs visible, no need to move\n\t\tif(stripHeight > innerHeight)\n\t\t\treturn(null);\n\t\t\n\t\t//find y position inside the strip\n\t\tvar stripOffset = g_objStrip.offset();\t\t\n\t\tvar offsetY = stripOffset.top;\n\t\tvar posy = mouseY - offsetY - innerOffsetTop;\n\t\tif(posy < 0)\n\t\t\treturn(null);\n\t\t\n\t\t//set measure line parameters\n\t\tvar mlineStart = g_options.thumb_height;\n\t\tvar mlineEnd = stripHeight - g_options.thumb_height;\n\t\tvar mLineSize = mlineEnd - mlineStart;\n\t\t\t\t\n\t\t//fix position borders on the measure line\n\t\tif(posy < mlineStart)\n\t\t\tposy = mlineStart;\n\t\t\n\t\tif(posy > mlineEnd)\n\t\t\tposy = mlineEnd;\n\t\t\n\t\t//count the ratio of the position on the measure line\n\t\tvar ratio = (posy - mlineStart) / mLineSize;\n\t\tvar innerPosY = (innerHeight - stripHeight) * ratio;\n\t\tinnerPosY = Math.round(innerPosY) * -1 + innerOffsetTop;\n\t\t\n\t\treturn(innerPosY);\n\t}\n\n\t\n\t/**\n\t * get inner x position according mouse x position on the strip\n\t */\n\tfunction getInnerPosX(mouseX){\n\t\t\n\t\tvar innerOffsetLeft = g_options.strip_padding_left;\n\t\tvar innerOffsetRight = g_options.strip_padding_right;\n\t\t\n\t\tvar stripWidth = g_objStrip.width() - innerOffsetLeft - innerOffsetRight;\n\t\tvar innerWidth = g_objStripInner.width();\n\t\t\n\t\t//if all thumbs visible, no need to move\n\t\tif(stripWidth > innerWidth)\n\t\t\treturn(null);\n\t\t\n\t\tvar stripOffset = g_objStrip.offset();\n\t\tvar offsetX = stripOffset.left;\n\t\tvar posx = mouseX - offsetX - innerOffsetLeft;\n\t\t\n\t\t//set measure line parameters\n\t\tvar mlineStart = g_options.thumb_width;\n\t\tvar mlineEnd = stripWidth - g_options.thumb_width;\n\t\tvar mLineSize = mlineEnd - mlineStart;\n\t\t\n\t\t//fix position borders on the measure line\n\t\tif(posx < mlineStart)\n\t\t\tposx = mlineStart;\n\t\t\n\t\tif(posx > mlineEnd)\n\t\t\tposx = mlineEnd;\n\t\t\n\t\t//count the ratio of the position on the measure line\n\t\tvar ratio = (posx - mlineStart) / mLineSize;\n\t\tvar innerPosX = (innerWidth - stripWidth) * ratio;\n\t\tinnerPosX = Math.round(innerPosX) * -1 + innerOffsetLeft;\n\t\t\n\t\t\n\t\treturn(innerPosX);\n\t}\n\t\t\n\t\t\n\t/**\n\t * move strip stap to final position\n\t */\n\tfunction moveStripStep(){\n\t\t\n\t\tif(g_temp.is_strip_moving == false){\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tvar innerPos = g_parent.getInnerStripPos();\n\t\t\t\t\n\t\tif(Math.floor(innerPos) == Math.floor(g_temp.strip_finalPos)){\n\t\t\tstopStripMovingLoop();\n\t\t}\n\t\t\n\t\t//calc step\n\t\tvar diff = Math.abs(g_temp.strip_finalPos - innerPos);\n\t\t\n\t\tvar dpos;\n\t\tif(diff < 1){\n\t\t\tdpos = diff;\n\t\t}\n\t\telse{\n\t\t\n\t\t\tdpos = diff / 4;\n\t\t\tif(dpos > 0 && dpos < 1)\n\t\t\t\tdpos = 1;\n\t\t}\t\t\n\t\t\n\t\tif(g_temp.strip_finalPos < innerPos)\n\t\t\tdpos = dpos * -1;\n\t\t\t\t\n\t\tvar newPos = innerPos + dpos;\n\t\t\n\t\tg_parent.positionInnerStrip(newPos);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * start loop of strip moving\n\t */\n\tfunction startStripMovingLoop(){\n\t\t\n\t\tif(g_temp.isStripMoving == true)\n\t\t\treturn(false);\n\t\t\t\n\t\tg_temp.isStripMoving = true;\n\t\tg_temp.handle_timeout = setInterval(moveStripStep,10);\n\t}\n\t\n\t/**\n\t * stop loop of strip moving\n\t */\n\tfunction stopStripMovingLoop(){\n\t\t\n\t\tif(g_temp.isStripMoving == false)\n\t\t\treturn(false);\n\t\t\t\n\t\tg_temp.isStripMoving = false;\n\t\tg_temp.handle_timeout = clearInterval(g_temp.handle_timeout);\n\t}\n\n\t/**\n\t * get inner position according the orientation\n\t * taken by the mouse position\n\t */\n\tfunction getInnerPos(mousePos){\n\t\t\n\t\tif(g_isVertical == false)\n\t\t\treturn getInnerPosX(mousePos);\n\t\telse\n\t\t\treturn getInnerPosY(mousePos);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * move the strip to mouse position on it\n\t * mousex - mouse position relative to the document\n\t */\n\tfunction moveStripToMousePosition(mousePos){\t\t\n\t\t\n\t\tvar innerPos = getInnerPos(mousePos);\n\t\t\n\t\tif(innerPos === null)\n\t\t\treturn(false);\n\t\t\n\t\tg_temp.is_strip_moving = true;\n\t\tg_temp.strip_finalPos = innerPos;\n\t\t\t\t\n\t\tstartStripMovingLoop();\n\t}\n\t\n}\n\n/**\n * slider class\n * addon to strip gallery\n */\nfunction UGSlider(){\n\t\n\tvar t = this, g_objThis = jQuery(t);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objWrapper, g_objThumbs;\t\n\t//the video arrows is independent arrows that is not sitting on the controls\n\tvar g_objSlider, g_objInner, g_objSlide1, g_objSlide2, g_objSlide3, g_objArrowLeft, g_objArrowRight;\n\tvar g_objTouchSlider, g_objZoomSlider, g_objZoomPanel, g_objButtonPlay = null, g_objButtonFullscreen = null, g_objBullets = null;\n\tvar g_objVideoPlayer = new UGVideoPlayer(), g_optionsPrefix;\n\tvar g_functions = new UGFunctions(), g_objProgress = null, g_objTextPanel = null;\n\t\n\t\n\tthis.events = {\t\t\n\t\tITEM_CHANGED: \"item_changed\",\t\t\t\t//on item changed\n\t\tBEFORE_SWITCH_SLIDES: \"before_switch\",\t\t//before slides switching\n\t\tBEFORE_RETURN: \"before_return\",\t\t\t\t//before return from pan or from zoom\n\t\tAFTER_RETURN: \"after_return\",\t\t\t\t//after return from pan or from zoom\n\t\tZOOM_START: \"slider_zoom_start\",\t\t\t//on zoom start \n\t\tZOOM_END: \"slider_zoom_end\",\t\t\t\t//on zoom move \n\t\tZOOMING: \"slider_zooming\",\t\t\t\t\t//on zooming\n\t\tZOOM_CHANGE: \"slider_zoom_change\",\t\t\t//on slide image image zoom change\t\n\t\tSTART_DRAG: \"start_drag\",\t\t\t\t\t//on slider drag start\n\t\tAFTER_DRAG_CHANGE: \"after_drag_change\",\t\t//after finish drag chagne transition\n\t\tACTION_START: \"action_start\",\t\t\t\t//on slide action start\n\t\tACTION_END: \"action_end\",\t\t\t\t\t//on slide action stop\n\t\tCLICK: \"slider_click\",\t\t\t\t\t\t//on click event\n\t\tTRANSITION_START:\"slider_transition_start\",\t//before transition start event\n\t\tTRANSITION_END:\"slider_transition_end\",\t\t//on transition end event\n\t\tAFTER_PUT_IMAGE: \"after_put_image\",\t\t\t//after put slide image\n\t\tIMAGE_MOUSEENTER: \"slider_image_mouseenter\", //on slide image mouseonter\n\t\tIMAGE_MOUSELEAVE: \"slider_image_mouseleave\",\t \t\t//on slide image mouseleave\n\t\tCURRENTSLIDE_LOAD_START: \"slider_current_loadstart\",\t//on current slide load image start\n\t\tCURRENTSLIDE_LOAD_END: \"slider_current_loadend\"\t\t//on finish load current slide image\n\t}\n\t\n\tvar g_options = {\n\t\t slider_scale_mode: \"fill\",\t\t\t\t\t//fit: scale down and up the image to always fit the slider\n\t\t \t\t\t\t\t\t\t\t\t\t\t\t//down: scale down only, smaller images will be shown, don't enlarge images (scale up)\n\t\t \t\t\t\t\t\t\t\t\t\t\t\t//fill: fill the entire slider space by scaling, cropping and centering the image\n\t\t \t\t\t\t\t\t\t\t\t\t\t\t//fitvert: make the image always fill the vertical slider area\n\t\t slider_scale_mode_media: \"fill\",\t\t\t\t//fill, fit, down, fitvert - scale mode on media items\n\t\t slider_scale_mode_fullscreen: \"down\",\t\t\t//fill, fit, down, fitvert - scale mode on fullscreen.\n\t\t \t\t \n\t\t slider_item_padding_top: 0,\t\t\t\t\t//padding top of the slider item\n\t\t slider_item_padding_bottom: 0,\t\t\t\t//padding bottom of the slider item\n\t\t slider_item_padding_left: 0,\t\t\t\t\t//padding left of the slider item\n\t\t slider_item_padding_right: 0,\t\t\t\t\t//padding right of the slider item\n\t\t \n\t\t slider_background_color: \"\",\t\t\t\t\t//slider background color, set if you want to change default\n\t\t slider_background_opacity: 1,\t\t\t\t\t//slider background opacity\n\t\t \n\t\t slider_image_padding_top: 0,\t\t\t\t\t//padding top of the image inside the item\n\t\t slider_image_padding_bottom: 0,\t\t\t\t//padding bottom of the image inside the item\n\t\t slider_image_padding_left: 0,\t\t\t\t\t//padding left of the image inside the item\n\t\t slider_image_padding_right: 0,\t\t\t\t//padding right of the image inside the item\n\n\t\t slider_image_border: false,\t\t\t\t\t//enable border around the image\n\t\t slider_image_border_width: 10,\t\t\t\t//image border width\n\t\t slider_image_border_color: \"#ffffff\",\t\t\t//image border color\n\t\t slider_image_border_radius: 0,\t\t\t\t//image border radius\n\t\t slider_image_border_maxratio: 0.35,\t\t\t//max ratio that the border can take from the image\n\t\t slider_image_shadow: false,\t\t\t\t\t//enable border shadow the image\n\t\t \n\t\t slider_video_constantsize: false, \t\t\t//constant video size mode for video items\n\t\t slider_video_constantsize_scalemode: \"fit\", \t//fit,down: constant video size scale mode\n\t\t slider_video_constantsize_width: 854,\t\t\t//constant video size width\n\t\t slider_video_constantsize_height: 480,\t\t//constant video size height\n\t\t \n\t\t slider_video_padding_top: 0,\t\t\t\t\t//padding top of the video player inside the item\n\t\t slider_video_padding_bottom: 0,\t\t\t\t//padding bottom of the video player inside the item\n\t\t slider_video_padding_left: 0,\t\t\t\t\t//padding left of the video player inside the item\n\t\t slider_video_padding_right: 0,\t\t\t\t//padding right of the video player inside the item\n\t\t \n\t\t slider_video_enable_closebutton: true,\t\t//enable video close button\n\t\t \n\t\t slider_transition: \"slide\",\t\t\t\t\t//fade, slide - the transition of the slide change\n\t\t slider_transition_speed:300,\t\t\t\t \t//transition duration of slide change\n\t\t slider_transition_easing: \"easeInOutQuad\",\t//transition easing function of slide change\n\t\t \n\t\t slider_control_swipe:true,\t\t\t\t\t//true,false - enable swiping control\n\t\t slider_control_zoom:true,\t\t\t\t\t\t//true, false - enable zooming control\n\t\t slider_zoom_mousewheel: true,\t\t\t\t\t//enable zoom on mousewheel\n\t\t slider_vertical_scroll_ondrag: false,\t\t\t//vertical scroll on slider area drag\t\t\t\t\t \n\t\t slider_loader_type: 1,\t\t\t\t\t\t//shape of the loader (1-7)\n\t\t slider_loader_color:\"white\",\t\t\t\t\t//color of the loader: (black , white)\n\t\t slider_enable_links: true,\t\t\t\t\t//enable slide as link functionality\n\t\t slider_links_newpage: false,\t\t\t\t\t//open the slide link in new page\n\t\t \n\t\t slider_enable_bullets: false,\t\t\t\t\t//enable the bullets onslider element\n\t\t slider_bullets_skin: \"\",\t\t\t\t\t\t//skin of the bullets, if empty inherit from gallery skin\n\t\t slider_bullets_space_between: -1,\t\t\t\t//set the space between bullets. If -1 then will be set default space from the skins\n\t\t slider_bullets_align_hor:\"center\",\t\t\t//left, center, right - bullets horizontal align\n\t\t slider_bullets_align_vert:\"bottom\",\t\t\t//top, middle, bottom - bullets vertical algin\n\t\t slider_bullets_offset_hor:0,\t\t\t\t\t//bullets horizontal offset \n\t\t slider_bullets_offset_vert:10,\t\t\t\t//bullets vertical offset\n\t\t \n\t\t slider_enable_arrows: true,\t\t\t\t\t//enable arrows onslider element\n\t\t slider_arrows_skin: \"\",\t\t\t\t\t\t//skin of the slider arrows, if empty inherit from gallery skin\n\t\t \n\t\t slider_arrow_left_align_hor:\"left\",\t \t\t//left, center, right - left arrow horizonal align\n\t\t slider_arrow_left_align_vert:\"middle\", \t\t//top, middle, bottom - left arrow vertical align\n\t\t slider_arrow_left_offset_hor:20,\t\t \t\t//left arrow horizontal offset\n\t\t slider_arrow_left_offset_vert:0,\t\t \t\t//left arrow vertical offset\n\t\t \n\t\t slider_arrow_right_align_hor:\"right\", \t\t//left, center, right - right arrow horizontal algin\n\t\t slider_arrow_right_align_vert:\"middle\", \t\t//top, middle, bottom - right arrow vertical align\n\t\t slider_arrow_right_offset_hor:20,\t \t\t\t//right arrow horizontal offset \n\t\t slider_arrow_right_offset_vert:0,\t \t\t\t//right arrow vertical offset\n\t\t \n\t\t slider_enable_progress_indicator: true,\t\t //enable progress indicator element\n\t\t slider_progress_indicator_type: \"pie\",\t\t //pie, pie2, bar (if pie not supported, it will switch to bar automatically)\n\t\t slider_progress_indicator_align_hor:\"right\", //left, center, right - progress indicator horizontal align\n\t\t slider_progress_indicator_align_vert:\"top\", //top, middle, bottom - progress indicator vertical align\n\t\t slider_progress_indicator_offset_hor:10,\t //progress indicator horizontal offset \n\t\t slider_progress_indicator_offset_vert:10,\t //progress indicator vertical offset\n\t\t \n\t\t slider_enable_play_button: true,\t\t\t\t //true,false - enable play / pause button onslider element\n\t\t slider_play_button_skin: \"\",\t\t\t\t\t //skin of the slider play button, if empty inherit from gallery skin\n\t\t slider_play_button_align_hor:\"left\", \t\t //left, center, right - play button horizontal align\n\t\t slider_play_button_align_vert:\"top\", \t\t //top, middle, bottom - play button vertical align\n\t\t slider_play_button_offset_hor:40,\t \t\t //play button horizontal offset \n\t\t slider_play_button_offset_vert:8,\t \t\t\t //play button vertical offset\n\t\t slider_play_button_mobilehide:false,\t\t \t //hide the play button on mobile\n\t\t \n\t\t slider_enable_fullscreen_button: true,\t\t //true,false - enable fullscreen button onslider element\n\t\t slider_fullscreen_button_skin: \"\",\t\t\t //skin of the slider fullscreen button, if empty inherit from gallery skin\n\t\t slider_fullscreen_button_align_hor:\"left\", //left, center, right\t- fullscreen button horizonatal align\n\t\t slider_fullscreen_button_align_vert:\"top\", //top, middle, bottom - fullscreen button vertical align\n\t\t slider_fullscreen_button_offset_hor:11,\t //fullscreen button horizontal offset \n\t\t slider_fullscreen_button_offset_vert:9,\t \t //fullscreen button vertical offset\n\t\t slider_fullscreen_button_mobilehide:false,\t //hide the button on mobile\n\t\t \n\t\t slider_enable_zoom_panel: true,\t\t\t\t //true,false - enable the zoom buttons, works together with zoom control.\n\t\t slider_zoompanel_skin: \"\",\t\t\t\t\t //skin of the slider zoom panel, if empty inherit from gallery skin\t\t \n\t\t slider_zoompanel_align_hor:\"left\", \t\t //left, center, right - zoom panel horizontal align\n\t\t slider_zoompanel_align_vert:\"top\", \t \t //top, middle, bottom - zoom panel vertical align\n\t\t slider_zoompanel_offset_hor:12,\t \t\t //zoom panel horizontal offset \n\t\t slider_zoompanel_offset_vert:92,\t \t\t\t //zoom panel vertical offset\n\t\t slider_zoompanel_mobilehide:false,\t\t //hide the zoom panel on mobile\n\t\t \n\t\t slider_controls_always_on: false,\t\t\t\t//true,false - controls are always on, false - show only on mouseover\n\t\t slider_controls_appear_ontap: true,\t\t\t//true,false - appear controls on tap event on touch devices\n\t\t slider_controls_appear_duration: 300,\t\t\t//the duration of appearing controls\n\t\t \n\t\t slider_enable_text_panel: true,\t\t\t\t//true,false - enable the text panel\n\t\t slider_textpanel_always_on: true,\t\t\t\t//true,false - text panel are always on, false - show only on mouseover\n\t\t \n\t\t slider_videoplay_button_type: \"square\"\t\t//square, round - the videoplay button type, square or round\t\n\t};\n\t\n\t\n\t//default options for bar progress incicator\n\tvar g_defaultsProgressBar = {\n\t\t slider_progress_indicator_align_hor:\"left\", \t//left, center, right\n\t\t slider_progress_indicator_align_vert:\"bottom\", //top, middle, bottom\n\t\t slider_progress_indicator_offset_hor:0,\t \t//horizontal offset \n\t\t slider_progress_indicator_offset_vert:0\t \t\t//vertical offset\n\t};\n\t\n\tvar g_temp = {\n\t\tisRunOnce: false,\n\t\tisTextPanelSaparateHover: false,\t\t\t\t\t//if the panel need to be appeared without the controls object on mouseover\n\t\tnumPrev:1,\n\t\tnumCurrent:2,\n\t\tnumNext: 3,\n\t\tisControlsVisible: true,\n\t\tcurrentControlsMode: \"image\"\n\t};\n\t\n\tfunction __________GENERAL___________(){};\n\t\n\t\n\t/**\n\t * init the slider\n\t */\n\tfunction initSlider(objGallery, objOptions, optionsPrefix){\n\t\tg_gallery = objGallery;\n\t\t\t\t\n\t\t//change options by prefix\n\t\tif(optionsPrefix){\n\t\t\tg_optionsPrefix = optionsPrefix;\n\t\t\tobjOptions = g_functions.convertCustomPrefixOptions(objOptions, g_optionsPrefix, \"slider\");\n\t\t}\n\t\t\n\t\tg_objGallery = jQuery(objGallery);\n\t\t\n\t\tvar objects = g_gallery.getObjects();\t\t\n\t\tg_objWrapper = objects.g_objWrapper;\n\t\tg_objThumbs = objects.g_objThumbs;\n\t\t\n\t\t//set progress indicator bar defaults if type bar\n\t\tif(objOptions.hasOwnProperty(\"slider_progress_indicator_type\"))\n\t\t\tg_options.slider_progress_indicator_type = objOptions.slider_progress_indicator_type;\n\t\t\n\t\tif(g_options.slider_progress_indicator_type == \"bar\"){\n\t\t\tg_options = jQuery.extend(g_options, g_defaultsProgressBar);\n\t\t}\n\t\t\t\t\n\t\tif(objOptions)\n\t\t\tt.setOptions(objOptions);\n\t\t\n\t\tprocessOptions();\n\t\t\n\t\t//init bullets:\n\t\tif(g_options.slider_enable_bullets == true){\n\t\t\tg_objBullets = new UGBullets();\n\t\t\tvar bulletsOptions = {\n\t\t\t\t\tbullets_skin: g_options.slider_bullets_skin,\n\t\t\t\t\tbullets_space_between: g_options.slider_bullets_space_between\n\t\t\t}\n\t\t\tg_objBullets.init(g_gallery, bulletsOptions);\n\t\t}\n\t\t\n\t\t//init text panel\n\t\tif(g_options.slider_enable_text_panel){\n\t\t\tg_objTextPanel = new UGTextPanel();\n\t\t\tg_objTextPanel.init(g_gallery, g_options, \"slider\");\n\t\t}\n\t\t\n\t\tif(g_options.slider_enable_zoom_panel){\n\t\t\tg_objZoomPanel = new UGZoomButtonsPanel();\n\t\t\tg_objZoomPanel.init(t, g_options);\n\t\t}\n\t\t\n\t\tvar galleryID = g_gallery.getGalleryID();\n\t\t\n\t\t//init video player\n\t\tg_objVideoPlayer.init(g_options, false, galleryID);\t\t\n\t}\n\t\n\t\n\t/**\n\t * run the slider functionality\n\t */\n\tfunction runSlider(){\n\t\t\n\t\tif(g_temp.isRunOnce == true)\n\t\t\treturn(false);\n\t\t\n\t\tg_temp.isRunOnce = true;\n\t\t\n\t\t//set background color\n\t if(g_options.slider_background_color){\t \t\t\n\t\t var bgColor = g_options.slider_background_color;\n\t\t \n\t\t if(g_options.slider_background_opacity != 1)\n\t\t\t bgColor = g_functions.convertHexToRGB(bgColor, g_options.slider_background_opacity);\n\t\t \n\t\t g_objSlider.css(\"background-color\", bgColor);\n\t \n\t }else if(g_options.slider_background_opacity != 1){\t//set opacity with default color\n\t\t\n\t\t bgColor = g_functions.convertHexToRGB(\"#000000\", g_options.slider_background_opacity);\n\t\t g_objSlider.css(\"background-color\", bgColor);\n\t \n\t }\n\t \n\t\t//init touch slider control\n\t\tif(g_options.slider_control_swipe == true){\n\t\t\tg_objTouchSlider = new UGTouchSliderControl();\n\t\t\tg_objTouchSlider.init(t, g_options);\n\t\t}\n\n\t\t//init zoom slider control\n\t\tif(g_options.slider_control_zoom == true){\n\t\t\tg_objZoomSlider = new UGZoomSliderControl();\n\t\t\tg_objZoomSlider.init(t, g_options);\n\t\t}\n\t\t\n\t\t//run the text panel\n\t\tif(g_objTextPanel)\n\t\t\tg_objTextPanel.run();\n\t\t\n\t\tinitEvents();\t\t\n\t}\n\t\n\t\n\t/**\n\t * process the options\n\t */\n\tfunction processOptions(){\n\t\tvar galleryOptions = g_gallery.getOptions();\n\t\t\n\t\t//set skins:\n\t\tvar globalSkin = galleryOptions.gallery_skin;\n\t\t\n\t\tif(g_options.slider_bullets_skin == \"\")\n\t\t\tg_options.slider_bullets_skin = globalSkin;\n\t\t\n\t\tif(g_options.slider_arrows_skin == \"\")\n\t\t\tg_options.slider_arrows_skin = globalSkin;\n\t\t\n\t\tif(g_options.slider_zoompanel_skin == \"\")\n\t\t\tg_options.slider_zoompanel_skin = globalSkin;\n\t\t\n\t\tif(g_options.slider_play_button_skin == \"\")\n\t\t\tg_options.slider_play_button_skin = globalSkin;\n\t\t\n\t\tif(g_options.slider_fullscreen_button_skin == \"\")\n\t\t\tg_options.slider_fullscreen_button_skin = globalSkin;\n\t\t\n\t\tg_options.video_enable_closebutton = g_options.slider_video_enable_closebutton;\n\t\t\n\t\t//set mousewheel option depends on the gallery option\n\t\tif(galleryOptions.gallery_mousewheel_role != \"zoom\")\n\t\t\tg_options.slider_zoom_mousewheel = false;\n\t\n\t}\n\t\n\t\n\t/**\n\t * \n\t * get html slide\n\t */\n\tfunction getHtmlSlide(loaderClass, numSlide){\n\t\t\n\t\tvar classVideoplay = \"ug-type-square\";\n\t\tif(g_options.slider_videoplay_button_type == \"round\")\n\t\t\tclassVideoplay = \"ug-type-round\";\n\t\t\n\t\tvar html = \"\";\n\t\thtml += \"
\";\n\t\thtml += \"
\";\n\t\thtml += \"
\";\n\t\thtml += \"\";\n\t\thtml += \"
\";\n\t\t\n\t\treturn(html);\n\t}\n\t\n\t\n\t/**\n\t * set the slider html\n\t */\n\tfunction setHtmlSlider(objParent){\n\t\t\n\t\tif(objParent)\n\t\t\tg_objWrapper = objParent;\n\t\t\n\t\t//get if the slide has controls\n\t\tvar loaderClass = getLoaderClass();\n\t\tvar galleryOptions = g_gallery.getOptions();\n\t\t\n\t\tvar html = \"
\";\n\t\t\n\t\thtml += \"
\";\n\t\thtml += getHtmlSlide(loaderClass,1);\n\t\thtml += getHtmlSlide(loaderClass,2);\n\t\thtml += getHtmlSlide(loaderClass,3);\n\t\t\t\t\n\t\thtml += \"
\";\t//end inner\n\t\t\n\t\t//----------------\n\t\t\t\t\n\t\t//add arrows\n\t\tif(g_options.slider_enable_arrows == true){\n\t\t\thtml += \"
\";\n\t\t\thtml += \"
\";\n\t\t}\n\t\t\n\t\t//add play button\n\t\tif(g_options.slider_enable_play_button == true){\n\t\t\thtml += \"
\";\n\t\t}\n\t\t\n\t\t//add fullscreen button\n\t\tif(g_options.slider_enable_fullscreen_button == true){\n\t\t\thtml += \"
\";\n\t\t}\n\t\t\n\t\t\n\t\thtml +=\t\"
\";\t//end slider\n\t\t\n\t\t\n\t\tg_objWrapper.append(html);\n\t\t\n\t\t//----------------\n\t\t\n\t\t//set objects\n\t\tg_objSlider = g_objWrapper.children(\".ug-slider-wrapper\");\n\t\tg_objInner = g_objSlider.children(\".ug-slider-inner\");\n\t\t\n\t\t\n\t\tg_objSlide1 = g_objInner.children(\".ug-slide1\");\n\t\tg_objSlide2 = g_objInner.children(\".ug-slide2\");\n\t\tg_objSlide3 = g_objInner.children(\".ug-slide3\");\n\t\t\n\t\t//set slides data\n\t\tg_objSlide1.data(\"slidenum\",1);\n\t\tg_objSlide2.data(\"slidenum\",2);\n\t\tg_objSlide3.data(\"slidenum\",3);\n\t\t\t\t\n\t\t//add bullets\n\t\tif(g_objBullets)\n\t\t\tg_objBullets.appendHTML(g_objSlider);\n\t\t\n\t\t//----------------\n\t\t\n\t\t//get arrows object\n\t\tif(g_options.slider_enable_arrows == true){\n\t\t\tg_objArrowLeft = g_objSlider.children(\".ug-arrow-left\");\n\t\t\tg_objArrowRight = g_objSlider.children(\".ug-arrow-right\");\n\t\t}\n\t\t\t\t\n\t\t//get play button\n\t\tif(g_options.slider_enable_play_button == true){\n\t\t\tg_objButtonPlay = g_objSlider.children(\".ug-button-play\");\n\t\t}\n\t\t\n\t\t//get fullscreen button\n\t\tif(g_options.slider_enable_fullscreen_button == true){\n\t\t\tg_objButtonFullscreen = g_objSlider.children(\".ug-button-fullscreen\");\n\t\t}\n\t\t\n\t\t\n\t\t//----------------\n\t\t\n\t\t//add progress indicator\n\t\tif(g_options.slider_enable_progress_indicator == true){\n\t\t\t\n\t\t\tg_objProgress = g_functions.initProgressIndicator(g_options.slider_progress_indicator_type, g_options, g_objSlider);\n\t\t\t\n\t\t\tvar finalType = g_objProgress.getType();\n\t\t\t\n\t\t\t//change options in case of type change\n\t\t\tif(finalType == \"bar\" && g_options.slider_progress_indicator_type == \"pie\"){\n\t\t\t\tg_options.slider_progress_indicator_type = \"bar\";\n\t\t\t\tg_options = jQuery.extend(g_options, g_defaultsProgressBar);\n\t\t\t}\t\n\t\t\t\n\t\t\tg_gallery.setProgressIndicator(g_objProgress);\n\t\t}\n\t\t\n\t\t//----------------\n\t\t\n\t\t//add text panel (hidden)\n\t\tif(g_options.slider_enable_text_panel == true){\n\t\t\t\n\t\t\t\tg_objTextPanel.appendHTML(g_objSlider);\n\t\t\t\t\t\t\t\t\n\t\t\t\t//hide panel saparatelly from the controls object\n\t\t\t\tif(g_options.slider_textpanel_always_on == false){\n\t\t\t\t\t\n\t\t\t\t\t//hide the panel\n\t\t\t\t\tvar panelElement = g_objTextPanel.getElement();\n\t\t\t\t\tpanelElement.hide().data(\"isHidden\", true);\n\t\n\t\t\t\t\tg_temp.isTextPanelSaparateHover = true;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t}\n\t\t\t\n\t\t//----------------\n\t\t\n\t\t//add zoom buttons panel:\n\t\tif(g_options.slider_enable_zoom_panel == true){\n\t\t\tg_objZoomPanel.appendHTML(g_objSlider);\n\t\t}\n\t\n\t\t\n\t\t//add video player\n\t\tg_objVideoPlayer.setHtml(g_objInner);\n\t}\n\t\n\t\n\t/**\n\t * position elements that related to slide\n\t */\n\tfunction positionSlideElements(objSlide){\n\t\t\n\t\t//position preloader\n\t\tvar objPreloader = getSlidePreloader(objSlide);\n\t\tg_functions.placeElementInParentCenter(objPreloader);\n\t\t\n\t\t//position video play button\n\t\tvar objVideoPlayButton = getSlideVideoPlayButton(objSlide);\n\t\tg_functions.placeElementInParentCenter(objVideoPlayButton);\t\t\n\t}\n\t\n\t\n\t/**\n\t * position elements\n\t */\n\tfunction positionElements(){\n\t\t\n\t\t//place bullets\n\t\tif(g_objBullets){\n\t\t\tobjBullets = g_objBullets.getElement();\n\t\t\t\n\t\t\t//strange bug fix (bullets width: 20) by double placing\n\t\t\tg_functions.placeElement(objBullets, g_options.slider_bullets_align_hor, g_options.slider_bullets_align_vert, g_options.slider_bullets_offset_hor, g_options.slider_bullets_offset_vert);\n\t\t\tg_functions.placeElement(objBullets, g_options.slider_bullets_align_hor, g_options.slider_bullets_align_vert, g_options.slider_bullets_offset_hor, g_options.slider_bullets_offset_vert);\n\t\t\t\n\t\t}\n\t\t\n\t\t//place arrows\n\t\tif(g_options.slider_enable_arrows == true){\n\t\t\tg_functions.placeElement(g_objArrowLeft, g_options.slider_arrow_left_align_hor, g_options.slider_arrow_left_align_vert, g_options.slider_arrow_left_offset_hor, g_options.slider_arrow_left_offset_vert);\n\t\t\tg_functions.placeElement(g_objArrowRight, g_options.slider_arrow_right_align_hor, g_options.slider_arrow_left_align_vert, g_options.slider_arrow_right_offset_hor, g_options.slider_arrow_right_offset_vert);\n\t\t}\n\t\t\n\t\t//hide controls\n\t\tif(g_options.slider_controls_always_on == false)\n\t\t\thideControls(true);\n\t\t\n\t\t//place progress indicator\n\t\tif(g_objProgress){\n\t\t\t\n\t\t\tvar objProgressElement = g_objProgress.getElement();\n\t\t\t\n\t\t\tif(g_options.slider_progress_indicator_type == \"bar\"){\n\t\t\t\tvar sliderWidth = g_objSlider.width();\t\t\t\t\n\t\t\t\tg_objProgress.setSize(sliderWidth);\n\t\t\t\tg_functions.placeElement(objProgressElement, \"left\", g_options.slider_progress_indicator_align_vert, 0, g_options.slider_progress_indicator_offset_vert);\t\t\t\t\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\tg_functions.placeElement(objProgressElement, g_options.slider_progress_indicator_align_hor, g_options.slider_progress_indicator_align_vert, g_options.slider_progress_indicator_offset_hor, g_options.slider_progress_indicator_offset_vert);\t\t\t\t\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t}\n\t\t\t\t\n\t\t//position text panel\n\t\tif(g_objTextPanel)\n\t\t\tg_objTextPanel.positionPanel();\n\t\t\n\t\t//position controls elements\n\t\tplaceControlsElements();\n\t\t\n\t\t//place slide elements\n\t\tpositionSlideElements(g_objSlide1);\n\t\tpositionSlideElements(g_objSlide2);\n\t\tpositionSlideElements(g_objSlide3);\n\t\t\n\t\tcheckMobileModify();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * place elements that located on \"controls\" div\n\t */\n\tfunction placeControlsElements(){\n\t\t\n\t\tif(g_objButtonPlay)\t\t\t\n\t\t\tg_functions.placeElement(g_objButtonPlay, g_options.slider_play_button_align_hor, g_options.slider_play_button_align_vert, g_options.slider_play_button_offset_hor, g_options.slider_play_button_offset_vert);\t\t\t\n\t\t\n\t\t//position fullscreen button\n\t\tif(g_objButtonFullscreen)\t\t\t\n\t\t\tg_functions.placeElement(g_objButtonFullscreen, g_options.slider_fullscreen_button_align_hor, g_options.slider_fullscreen_button_align_vert, g_options.slider_fullscreen_button_offset_hor, g_options.slider_fullscreen_button_offset_vert);\n\t\t\n\t\t//position zoom panel\n\t\tif(g_objZoomPanel){\n\t\t\tvar zoomPanelElement = g_objZoomPanel.getElement();\n\t\t\tg_functions.placeElement(zoomPanelElement, g_options.slider_zoompanel_align_hor, g_options.slider_zoompanel_align_vert, g_options.slider_zoompanel_offset_hor, g_options.slider_zoompanel_offset_vert);\n\t\t}\n\t}\n\t\n\t\n\t\t\n\t/**\n\t * position slides by their order\n\t */\n\tfunction positionSlides(){\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\tvar posX = 0, posY = 0, innerWidth;\n\t\tvar posXPrev=0, posXCurrent = 0, posXNext, nextHasItem, prevHasItem;\n\t\t\t\t\n\t\tnextHasItem = t.isSlideHasItem(slides.objNextSlide);\n\t\tprevHasItem = t.isSlideHasItem(slides.objPrevSlide);\n\t\t\n\t\tif(prevHasItem){\n\t\t\tposXCurrent = slides.objPrevSlide.outerWidth();\n\t\t\tslides.objPrevSlide.css(\"z-index\",1);\n\t\t}else\n\t\t\tslides.objPrevSlide.hide();\t\t\t\n\t\t\n\t\tposXNext = posXCurrent + slides.objCurrentSlide.outerWidth();\n\t\t\n\t\tinnerWidth = posXNext;\n\t\tif(nextHasItem){\n\t\t\tinnerWidth = posXNext + slides.objNextSlide.outerWidth();\n\t\t\tslides.objPrevSlide.css(\"z-index\",2);\t\t\n\t\t}else\n\t\t\tslides.objNextSlide.hide();\n\t\t\n\t\tslides.objCurrentSlide.css(\"z-index\",3);\n\t\t\n\t\t//set inner size and position\n\t\tg_functions.placeElement(slides.objCurrentSlide, posXCurrent, posY);\t\t\n\t\tg_objInner.css({\"left\":-posXCurrent+\"px\", width:innerWidth+\"px\"});\n\n\t\t//position prev\n\t\tif(prevHasItem){\n\t\t\tg_functions.placeElement(slides.objPrevSlide, posXPrev, posY);\n\t\t\tg_functions.showElement(slides.objPrevSlide);\n\t\t}\n\t\t\n\t\tif(nextHasItem){\n\t\t\tg_functions.showElement(slides.objNextSlide);\n\t\t\tg_functions.placeElement(slides.objNextSlide, posXNext, posY);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * resize the slide image inside item\n\t */\n\tfunction resizeSlideItem(objSlide){\n\t\tvar index = objSlide.data(\"index\");\n\t\tif(index === undefined || index == null)\n\t\t\treturn(false);\n\t\t\n\t\tvar objItem = g_gallery.getItem(index);\n\t\t\n\t\tif(!objItem)\n\t\t\treturn(false);\n\t\t\n\t\tsetItemToSlide(objSlide, objItem);\n\t}\n\t\n\t\n\t/**\n\t * show the preloader\n\t * show the index, so only the current index load will hide.\n\t */\t\n\tfunction showPreloader(objPreloader){\n\t\t\n\t\tobjPreloader.stop(true).show(100);\n\t\n\t}\n\t\n\t/**\n\t * hide the preloader\n\t */\n\tfunction hidePreloader(objPreloader){\n\t\t\n\t\tobjPreloader.stop(true).hide(100);\n\t}\n\t\n\t/**\n\t * get proper image border width\n\t */\n\tfunction getImageBorderWidth(objImage, imageData){\n\t\t\n\t\tvar borderWidth = g_options.slider_image_border_width;\n\t\t\n\t\tif(borderWidth <= 10)\n\t\t\treturn(borderWidth);\n\n\t\t//set image size\n\t\tvar imageSize = g_functions.getElementSize(objImage);\n\t\tvar imageWidth = imageSize.width;\n\t\tvar imageHeight = imageSize.height;\n\t\t\n\t\tif(imageData){\n\t\t\tif(imageData.hasOwnProperty(\"imageWidth\"))\n\t\t\t\timageWidth = imageData.imageWidth;\n\t\t\t\n\t\t\tif(imageData.hasOwnProperty(\"imageHeight\"))\n\t\t\t\timageHeight = imageData.imageHeight;\n\t\t\t\n\t\t}\n\t\t\n\t\tif(imageWidth <= 0)\n\t\t\treturn(borderWidth);\n\t\t\n\t\t//take the less size\n\t\tvar totalSize = (imageWidth < imageHeight)?imageWidth:imageHeight;\n\t\tvar borderSize = borderWidth * 2;\n\t\t\n\t\tvar borderRatio = borderSize / totalSize;\n\t\t\n\t\tif(borderRatio < g_options.slider_image_border_maxratio)\n\t\t\treturn(borderWidth);\n\t\t\n\t\t//change border width\t\t\n\t\tvar borderWidth = (totalSize * g_options.slider_image_border_maxratio)/2; \n\t\t\n\t\tborderWidth = Math.round(borderWidth);\n\t\t\n\t\treturn(borderWidth);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set slider image css design according the settings\n\t */\n\tfunction setImageDesign(objImage, slideType, imageData){\n\t\t\n\t\tvar css = {};\n\t\tif(g_options.slider_image_border == true){\n\t\t\tcss[\"border-style\"] = \"solid\";\n\t\t\t\n\t\t\tvar borderWidth = getImageBorderWidth(objImage, imageData);\n\t\t\t\n\t\t\tcss[\"border-width\"] = borderWidth+\"px\";\n\t\t\tcss[\"border-color\"] = g_options.slider_image_border_color;\n\t\t\tcss[\"border-radius\"] = g_options.slider_image_border_radius;\n\t\t}\n\t\t\n\t\tif(slideType != \"image\" && g_options.slider_video_constantsize == true)\n\t\t\tcss[\"background-color\"] = \"#000000\";\n\t\t\n\t\tif(g_options.slider_image_shadow == true){\n\t\t\tcss[\"box-shadow\"] = \"3px 3px 10px 0px #353535\";\n\t\t}\n\t\t\n\t\tobjImage.css(css);\n\t}\n\t\n\t\n\t/**\n\t * scale image constant size (for video items)\n\t */\n\tfunction scaleImageConstantSize(objImage, objItem){\n\t\t\n\t\tvar constantWidth = g_options.slider_video_constantsize_width;\n\t\tvar constantHeight = g_options.slider_video_constantsize_height;\n\t\tvar scaleMode = g_options.slider_video_constantsize_scalemode;\n\t\t\n\t\tvar objSize = g_functions.scaleImageExactSizeInParent(objImage, objItem.imageWidth, objItem.imageHeight, constantWidth, constantHeight, scaleMode);\n\t\t\n\t\t\n\t\treturn(objSize);\n\t}\n\n\t\n\t/**\n\t * \n\t * set item to slide\n\t */\n\tfunction setImageToSlide(objSlide, objItem, isForce){\n\t\t\n\t\tvar objItemWrapper = objSlide.children(\".ug-item-wrapper\");\n\t\t\n\t\tvar objPreloader = getSlidePreloader(objSlide);\n\t\t\n\t\tif(typeof objItem.urlImage == \"undefined\" || objItem.urlImage == \"\")\n\t\t\tthrow new Error(\"The slide don't have big image defined ( data-image='imageurl' ). Please check gallery items.\", \"showbig\");\n\t\t\n\t\tvar urlImage = objItem.urlImage;\n\t\t\n\t\tvar currentImage = objSlide.data(\"urlImage\");\n\t\t\t\t\n\t\tobjSlide.data(\"urlImage\",urlImage);\n\t\t\n\t\tvar scaleMode = t.getScaleMode(objSlide);\n\t\t\n\t\tvar slideType = t.getSlideType(objSlide);\n\t\t\n\t\tobjPadding = t.getObjImagePadding();\n\t\t\n\t\t\n\t\tif(currentImage == urlImage && isForce !== true){\n\t\t\t\n\t\t\tvar objImage = objItemWrapper.children(\"img\");\n\t\t\t\t\t\t\n\t\t\tif(objItem.imageWidth == 0 || objItem.imageHeight == 0){\n\t\t\t\tg_gallery.checkFillImageSize(objImage, objItem);\n\t\t\t}\n\t\t\t\n\t\t\tvar objImageData = {};\n\t\t\t\n\t\t\tif(slideType != \"image\" && g_options.slider_video_constantsize == true){\n\t\t\t\tobjImageData = scaleImageConstantSize(objImage, objItem);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tobjImageData = g_functions.scaleImageFitParent(objImage, objItem.imageWidth, objItem.imageHeight, scaleMode, objPadding);\n\t\t\t}\n\t\t\t\n\t\t\tsetImageDesign(objImage, slideType, objImageData);\n\t\t\tg_objThis.trigger(t.events.AFTER_PUT_IMAGE, objSlide);\n\t\t\t\n\t\t}\n\t\telse{\t\t//place the image inside parent first time\n\t\t\t\n\t\t\tobjImage = g_functions.placeImageInsideParent(urlImage, objItemWrapper, objItem.imageWidth, objItem.imageHeight, scaleMode, objPadding);\n\t\t\t\n\t\t\t//set image loaded on load:\n\t\t\tif(objItem.isBigImageLoaded == true){\n\t\t\t\tobjImage.fadeTo(0,1);\n\t\t\t\thidePreloader(objPreloader);\n\t\t\t\t\n\t\t\t\tif(slideType != \"image\" && g_options.slider_video_constantsize == true)\n\t\t\t\t\tvar objImageData = scaleImageConstantSize(objImage, objItem);\n\t\t\t\telse\n\t\t\t\t\tvar objImageData = g_functions.getImageInsideParentData(objItemWrapper, objItem.imageWidth, objItem.imageHeight, scaleMode, objPadding);\n\t\t\t\t\n\t\t\t\t//set missing css width\n\t\t\t\tobjImage.css(\"width\",objImageData.imageWidth+\"px\");\n\t\t\t\t\t\t\n\t\t\t\tsetImageDesign(objImage, slideType, objImageData);\n\t\t\t\t\n\t\t\t\tg_objThis.trigger(t.events.AFTER_PUT_IMAGE, objSlide);\n\t\t\t}\n\t\t\telse{\t\t//if the image not loaded, load the image and show it after.\n\t\t\t\tobjImage.fadeTo(0,0);\n\t\t\t\tshowPreloader(objPreloader);\n\t\t\t\tobjSlide.data(\"isLoading\", true);\n\t\t\t\t\n\t\t\t\tif(t.isSlideCurrent(objSlide))\n\t\t\t\t\tg_objThis.trigger(t.events.CURRENTSLIDE_LOAD_START);\n\t\t\t\t\n\t\t\t\tobjImage.data(\"itemIndex\", objItem.index);\n\t\t\t\tobjImage.on(\"load\",function(){\n\t\t\t\t\t\n\t\t\t\t\t//place the image normally with coordinates\n\t\t\t\t\tvar objImage = jQuery(this);\n\t\t\t\t\tvar itemIndex = objImage.data(\"itemIndex\");\n\t\t\t\t\t\n\t\t\t\t\tobjImage.fadeTo(0,1);\n\t\t\t\t\t\n\t\t\t\t\t//get and hide preloader\n\t\t\t\t\tvar objSlide = objImage.parent().parent();\n\t\t\t\t\tvar slideType = t.getSlideType(objSlide);\n\t\t\t\t\tvar objPreloader = getSlidePreloader(objSlide);\n\t\t\t\t\tvar objPadding = t.getObjImagePadding();\n\t\t\t\t\tvar scaleMode = t.getScaleMode(objSlide);\n\t\t\t\t\t\n\t\t\t\t\thidePreloader(objPreloader);\n\t\t\t\t\tobjSlide.data(\"isLoading\", false);\n\t\t\t\t\t\n\t\t\t\t\tif(t.isSlideCurrent(objSlide))\n\t\t\t\t\t\tg_objThis.trigger(t.events.CURRENTSLIDE_LOAD_END);\n\t\t\t\t\t\n\t\t\t\t\tg_gallery.onItemBigImageLoaded(null, objImage);\n\t\t\t\t\t\n\t\t\t\t\tvar objItem = g_gallery.getItem(itemIndex);\n\t\t\t\t\t\n\t\t\t\t\tvar objImageData = {};\n\t\t\t\t\t\n\t\t\t\t\tif(slideType != \"image\" && g_options.slider_video_constantsize == true)\n\t\t\t\t\t\tscaleImageConstantSize(objImage, objItem);\n\t\t\t\t\telse{\n\t\t\t\t\t\tobjImageData = g_functions.scaleImageFitParent(objImage, objItem.imageWidth, objItem.imageHeight, scaleMode, objPadding);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tobjImage.fadeTo(0,1);\n\t\t\t\t\t\n\t\t\t\t\tsetImageDesign(objImage, slideType, objImageData);\n\t\t\t\t\t\n\t\t\t\t\tg_objThis.trigger(t.events.AFTER_PUT_IMAGE, objSlide);\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t}\n\t\n\t\t\n\t\n\t/**\n\t * set slider image by url\n\t * if item not set, get current slide item\n\t */\n\tfunction setItemToSlide(objSlide, objItem){\n\t\t\n\t\ttry{\n\n\t\t\tvar objItemWrapper = objSlide.children(\".ug-item-wrapper\");\n\t\t\t\t\t\n\t\t\t//if the item is empty, remove the image from slide\n\t\t\tif(objItem == null){\n\t\t\t\tobjItemWrapper.html(\"\");\n\t\t\t\tobjSlide.removeData(\"index\");\n\t\t\t\tobjSlide.removeData(\"type\");\n\t\t\t\tobjSlide.removeData(\"urlImage\");\n\t\t\t\treturn(false);\n\t\t\t}\n\t\t\t\n\t\t\tvar currentIndex = objSlide.data(\"index\");\n\t\t\t\n\t\t\tobjSlide.data(\"index\",objItem.index);\n\t\t\tobjSlide.data(\"type\", objItem.type);\n\t\t\t\n\t\t\t//set link class\n\t\t\tif(g_options.slider_enable_links == true && objItem.type == \"image\"){\n\t\t\t\t\n\t\t\t\tif(objItem.link)\n\t\t\t\t\tobjSlide.addClass(\"ug-slide-clickable\");\n\t\t\t\telse\n\t\t\t\t\tobjSlide.removeClass(\"ug-slide-clickable\");\n\t\t\t}\n\t\t\t\n\t\t\tsetImageToSlide(objSlide, objItem);\n\t\t\t\n\t\t\t//show type related elements\n\t\t\tvar objVideoPlayButton = getSlideVideoPlayButton(objSlide);\n\t\t\tswitch(objItem.type){\n\t\t\t\tcase \"image\":\n\t\t\t\t\tobjVideoPlayButton.hide();\n\t\t\t\tbreak;\n\t\t\t\tdefault:\t\t//video\n\t\t\t\t\tobjVideoPlayButton.show();\t\t\t\t\t\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t}catch(error){\n\t\t\t\n\t\t\tif(typeof error.fileName != \"undefined\" && error.fileName == \"showbig\")\n\t\t\t\tg_gallery.showErrorMessageReplaceGallery(error.message);\n\t\t\t\n\t\t\tobjItemWrapper.html(\"\");\n\t\t\tthrow new Error(error);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t}\t\n\t\n\t\n\t\n\t/**\n\t * hide the panel\n\t */\n\tfunction hideTextPanel(){\n\t\t\n\t\tif(!g_objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\tif(isTextPanelHidden() == true)\n\t\t\treturn(false);\n\t\t\n\t\tvar panelElement = g_objTextPanel.getElement();\n\t\n\t\tvar animationTime = 0;\n\t\tif(g_temp.isTextPanelSaparateHover == true || g_options.slider_textpanel_always_on == true){\n\t\t\tanimationTime = g_options.slider_controls_appear_duration;\n\t\t}\n\t\t\n\t\tpanelElement.stop().fadeTo(animationTime, 0);\n\t\t\n\t\tpanelElement.data(\"isHidden\", true);\n\t}\n\t\n\t\n\t/**\n\t * show the text panel\n\t */\n\tfunction showTextPanel(){\n\t\t\n\t\tif(!g_objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\tif(isTextPanelHidden() == false)\n\t\t\treturn(false);\n\t\t\n\t\tvar panelElement = g_objTextPanel.getElement();\n\t\t\n\t\tvar animationTime = 0;\n\t\t\n\t\tif(g_temp.isTextPanelSaparateHover == true || g_options.slider_textpanel_always_on == true){\n\t\t\t\n\t\t\tpanelElement.show();\n\t\t\tg_objTextPanel.positionElements();\n\t\t\t\n\t\t\tanimationTime = g_options.slider_controls_appear_duration;\n\t\t}\n\t\t\n\t\tpanelElement.stop().show().fadeTo(animationTime,1);\n\t\t\n\t\tpanelElement.data(\"isHidden\", false);\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * check if the text panel is hidden or not\n\t */\n\tfunction isTextPanelHidden(){\n\n\t\tvar panelElement = g_objTextPanel.getElement();\n\n\t\tvar isHidden = panelElement.data(\"isHidden\");\n\t\tif(isHidden === false)\n\t\t\treturn(false);\n\t\t\n\t\treturn(true);\t\t\n\t}\t\n\t\n\t\n\t/**\n\t * validate that the slide is certain type, if not, throw error\n\t */\n\tfunction validateSlideType(type, objSlide){\n\t\tif(objSlide == undefined)\n\t\t\tvar objSlide = t.getCurrentSlide();\n\t\t\n\t\tvar slideType = t.getSlideType(objSlide);\n\t\t\t\t\n\t\tif(slideType != type){\n\t\t\tthrow new Error(\"Wrong slide type: \"+ slideType +\", should be: \"+type);\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\treturn(true);\n\t}\n\t\n\tfunction __________VIDEO_PLAYER_______(){};\n\n\t\n\t\n\t/**\n\t * set video player position\n\t */\n\tfunction setVideoPlayerPosition(){\n\t\t\n\t\tvar objCurrentSlide = t.getCurrentSlide();\n\t\tvar objImage = t.getSlideImage(objCurrentSlide);\n\t\t\n\t\tvar slideSize = g_functions.getElementSize(objCurrentSlide);\n\t\tvar left = slideSize.left;\n\t\tvar top = slideSize.top;\n\t\t\t\t\n\t\t//set by image position\n\t\tif(g_options.slider_video_constantsize == true){\n\t\t\t\n\t\t\tvar imageSize = g_functions.getElementSize(objImage);\n\t\t\tleft += imageSize.left;\n\t\t\ttop += imageSize.top;\n\t\t\t\n\t\t}else{\t//set video padding\n\t\t\t\n\t\t\tleft += g_options.slider_video_padding_left;\n\t\t\ttop += g_options.slider_video_padding_top;\n\t\t\n\t\t}\n\t\t\n\t\tg_objVideoPlayer.setPosition(left, top);\n\t}\n\t\n\t\n\t/**\n\t * set video player constant size\n\t */\n\tfunction setVideoPlayerConstantSize(){\n\t\t\n\t\tvar videoWidth = g_options.slider_video_constantsize_width;\n\t\tvar videoHeight = g_options.slider_video_constantsize_height;\n\t\t\n\t\tg_objVideoPlayer.setSize(videoWidth, videoHeight);\n\t\t\n\t\t//set video design\n\t\tvar videoElement = g_objVideoPlayer.getObject();\n\t\t\n\t\tsetImageDesign(videoElement, \"video\");\n\t}\n\t\n\t\n\tfunction __________TRANSITION_______(){};\n\n\t\n\t\n\t/**\n\t * do the transition between the current and the next\n\t */\n\tfunction doTransition(direction, objItem, forceTransition){\n\t\t\n\t\tg_objThis.trigger(t.events.TRANSITION_START);\n\t\t\n\t\tvar transition = g_options.slider_transition;\n\t\tif(forceTransition)\n\t\t\ttransition = forceTransition;\n\n\t\t//stop current slide action\n\t\tt.stopSlideAction(null, true);\n\t\t\n\t\tswitch(transition){\n\t\t\tdefault:\n\t\t\tcase \"fade\":\n\t\t\t\ttransitionFade(objItem);\n\t\t\tbreak;\n\t\t\tcase \"slide\":\t\t\t\t\n\t\t\t\ttransitionSlide(direction, objItem);\n\t\t\tbreak;\n\t\t\tcase \"lightbox_open\":\t\t//fade transition without animation\n\t\t\t\ttransitionFade(objItem, false, true);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * switch slide numbers after transition (by direction)\n\t * \n\t */\n\tthis.switchSlideNums = function(direction){\n\t\t\n\t\t//trigger item changed effect\n\t\tg_objThis.trigger(t.events.BEFORE_SWITCH_SLIDES);\n\t\t\n\t\tswitch(direction){\n\t\t\tcase \"left\":\n\t\t\t\tvar currentNum = g_temp.numCurrent;\n\t\t\t\tg_temp.numCurrent = g_temp.numNext;\n\t\t\t\tg_temp.numNext = g_temp.numPrev;\n\t\t\t\tg_temp.numPrev = currentNum;\n\t\t\tbreak;\n\t\t\tcase \"right\":\n\t\t\t\tvar currentNum = g_temp.numCurrent;\n\t\t\t\tg_temp.numCurrent = g_temp.numPrev;\n\t\t\t\tg_temp.numPrev = g_temp.numNext;\n\t\t\t\tg_temp.numNext = currentNum;\t\t\t\t\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"wrong direction: \"+ direction);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\t//trace(g_temp.numCurrent);\n\t\t\n\t\t//trigger item changed effect\n\t\tg_objThis.trigger(t.events.ITEM_CHANGED);\n\t}\n\t\n\t\n\t/**\n\t * do slide transition\n\t */\n\tfunction transitionSlide(direction, objItem){\n\t\t\n\t\tvar animating = t.isAnimating();\n\n\t\tif(animating == true){\n\t\t\tg_temp.itemWaiting = objItem;\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t//always clear next item on transition start\n\t\t// next item can be only in the middle of the transition.\n\t\tif(g_temp.itemWaiting != null)\n\t\t\tg_temp.itemWaiting = null;\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t\n\t\t\n\t\tswitch(direction){\n\t\t\tcase \"right\":\t//change to prev item\n\t\t\t\tsetItemToSlide(slides.objPrevSlide, objItem);\n\t\t\t\tpositionSlides();\n\t\t\t\t\n\t\t\t\tvar posPrev = g_functions.getElementSize(slides.objPrevSlide);\n\t\t\t\tvar destX = -posPrev.left;\n\t\t\t\t\n\t\t\t\tt.switchSlideNums(\"right\");\n\t\t\t\t\n\t\t\tbreak;\t\n\t\t\tcase \"left\":\t\t//change to next item\n\t\t\t\tsetItemToSlide(slides.objNextSlide, objItem);\n\t\t\t\tpositionSlides();\n\t\t\t\t\n\t\t\t\tvar posNext = g_functions.getElementSize(slides.objNextSlide);\n\t\t\t\tvar destX = -posNext.left;\n\t\t\t\t\n\t\t\t\tt.switchSlideNums(\"left\");\n\t\t\t\t\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"wrong direction: \"+direction);\n\t\t\tbreak;\n\t\t}\n\t\t\t\t\n\t\tvar transSpeed = g_options.slider_transition_speed;\n\t\tvar transEasing = g_options.slider_transition_easing;\n\n\t\t\n\t\tvar animateParams = {\n\t\t\t\tduration: transSpeed,\n\t\t\t\teasing: transEasing,\n\t\t\t\tqueue: false,\n\t\t\t\talways:function(){\n\t\t\t\t\t\t\n\t\t\t\t\t\tt.stopSlideAction();\n\t\t\t\t\t\tg_objVideoPlayer.hide();\n\t\t\t\t\t\t\n\t\t\t\t\t\t//transit next item if waiting\n\t\t\t\t\t\tif(g_temp.itemWaiting != null){\n\t\t\t\t\t\t\tvar direction = getSlideDirection(g_temp.itemWaiting);\n\t\t\t\t\t\t\ttransitionSlide(direction, g_temp.itemWaiting);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t//if no item waiting, please neighbour items in places\n\t\t\t\t\t\t\tt.placeNabourItems();\n\t\t\t\t\t\t\tg_objThis.trigger(t.events.TRANSITION_END);\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t};\n\t\t\n\t\t\n\t\tg_objInner.animate({left:destX+\"px\"}, animateParams);\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * \n\t * animate opacity in and out\n\t */\n\tfunction animateOpacity(objItem, opacity, completeFunction){\n\t\t\n\t\tif(completeFunction)\n\t\t\tobjItem.fadeTo(g_options.slider_transition_speed, opacity, completeFunction);\n\t\telse\n\t\t\tobjItem.fadeTo(g_options.slider_transition_speed, opacity);\n\t}\n\t\n\t\n\t/**\n\t * do fade transition\n\t */\n\tfunction transitionFade(objItem, noAnimation, noHidePlayer){\n\t\t\n\t\tif(!noAnimation)\n\t\t\tvar noAnimation = false;\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t \n\t\tsetItemToSlide(slides.objNextSlide, objItem);\n\t\t\n\t\tvar objCurrentPos = g_functions.getElementSize(slides.objCurrentSlide);\n\t\t\t\t\n\t\tg_functions.placeElement(slides.objNextSlide,objCurrentPos.left,objCurrentPos.top);\n\t\t\n\t\t//switch slide nums\n\t\tvar currentNum = g_temp.numCurrent;\n\t\tg_temp.numCurrent = g_temp.numNext;\n\t\tg_temp.numNext = currentNum;\n\t\t\n\t\tg_objThis.trigger(t.events.ITEM_CHANGED);\n\t\t\n\t\tslides.objNextSlide.stop(true);\t\t\n\t\tslides.objCurrentSlide.stop(true);\n\t\t\n\t\tif(noAnimation == true){\n\t\t\t\n\t\t\tslides.objCurrentSlide.fadeTo(0, 0);\n\t\t\tslides.objNextSlide.fadeTo(0, 1);\t\n\t\t\tt.placeNabourItems();\n\t\t\tg_objThis.trigger(t.events.TRANSITION_END);\n\t\t\t\n\t\t\tif(noHidePlayer !== true)\n\t\t\t\tg_objVideoPlayer.hide();\n\t\t\n\t\t}else{\n\t\t\tslides.objNextSlide.fadeTo(0,0);\t\n\t\t\t\n\t\t\tanimateOpacity(slides.objCurrentSlide,0,function(){\n\t\t\t\tt.placeNabourItems();\n\t\t\t\tg_objThis.trigger(t.events.TRANSITION_END);\n\t\t\t\tif(noHidePlayer !== true)\n\t\t\t\t\tg_objVideoPlayer.hide();\n\t\t\t});\n\t\t\t\n\t\t\tif(g_objVideoPlayer.isVisible() == true){\n\t\t\t\tvar videoElement = g_objVideoPlayer.getObject();\n\t\t\t\tanimateOpacity(videoElement, 0);\n\t\t\t}\n\t\t\t\n\t\t\t//animate to next show next\n\t\t\tanimateOpacity(slides.objNextSlide,1);\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n\t\n\tfunction __________CONTROLS_OBJECT_______(){};\n\t\n\t/**\n\t * modify the slider for mobile\n\t */\n\tfunction modifyForMobile(){\n\t\t\n\t\tif(g_options.slider_fullscreen_button_mobilehide == true && g_objButtonFullscreen)\n\t\t\tg_objButtonFullscreen.hide();\n\t\t\n\t\tif(g_options.slider_play_button_mobilehide == true && g_objButtonPlay)\n\t\t\tg_objButtonPlay.hide();\n\t\t\n\t\tif(g_options.slider_zoompanel_mobilehide == true && g_objZoomPanel)\n\t\t\tg_objZoomPanel.getElement().hide();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * modify for no mobile\n\t */\n\tfunction modifyForDesctop(){\n\t\t\n\t\tif(g_options.slider_fullscreen_button_mobilehide == true && g_objButtonFullscreen)\n\t\t\tg_objButtonFullscreen.show();\n\n\t\tif(g_options.slider_play_button_mobilehide == true && g_objButtonPlay)\n\t\t\tg_objButtonPlay.show();\n\t\t\n\t\tif(g_options.slider_zoompanel_mobilehide == true && g_objZoomPanel)\n\t\t\tg_objZoomPanel.getElement().show();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * check and modify for mobile or desctop\n\t */\n\tfunction checkMobileModify(){\n\t\t\n\t\tvar isMobile = g_gallery.isMobileMode();\n\t\t\n\t\tif(isMobile)\n\t\t\tmodifyForMobile();\n\t\telse\n\t\t\tmodifyForDesctop();\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * get a jquery set of the controls objects\n\t */\n\tfunction getControlsObjects(){\n\t\t\n\t\tvar objControl = g_objSlider.children(\".ug-slider-control\");\n\t\t\n\t\treturn(objControl);\n\t}\n\t\n\t\n\t/**\n\t * hide the controls\n\t */\n\tfunction hideControls(noAnimation){\n\t\t\t\t\n\t\tif(g_functions.isTimePassed(\"sliderControlsToggle\") == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_temp.isControlsVisible == false)\n\t\t\treturn(false);\n\t\t\t\t\n\t\tif(!noAnimation)\n\t\t\tvar noAnimation = false;\n\t\t\n\t\tvar objControls = getControlsObjects();\n\t\t\n\t\tif(noAnimation === true)\n\t\t\tobjControls.stop().fadeTo(0,0).hide();\n\t\telse{\n\t\t\tobjControls.stop().fadeTo(g_options.slider_controls_appear_duration, 0, function(){objControls.hide()});\n\t\t}\n\t\t\n\t\tg_temp.isControlsVisible = false;\n\t}\n\t\n\t\n\t/**\n\t * show controls only if they meaned to be shown\n\t * @param noAnimation\n\t */\n\tfunction checkAndShowControls(noAnimation){\n\t\t\n\t\tif(g_options.slider_controls_always_on == true)\n\t\t\tshowControls(noAnimation);\t\t\n\t}\n\t\n\t\n\t/**\n\t * hide the controls\n\t */\n\tfunction showControls(noAnimation){\n\t\t\t\t\n\t\t//validate for short time pass\n\t\tif(g_functions.isTimePassed(\"sliderControlsToggle\") == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_temp.isControlsVisible == true)\n\t\t\treturn(true);\n\t\t\n\t\t\n\t\tif(!noAnimation)\n\t\t\tvar noAnimation = false;\n\t\t\n\t\tvar objControls = getControlsObjects();\n\t\t\t\t\n\t\tif(noAnimation === true)\n\t\t\tobjControls.stop().show();\n\t\telse{\n\t\t\n\t\t\tobjControls.stop().show().fadeTo(0,0);\n\t\t\tobjControls.fadeTo(g_options.slider_controls_appear_duration, 1);\n\t\t\t\n\t\t}\n\t\t\n\t\tg_temp.isControlsVisible = true;\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * toggle the controls (show, hide)\n\t */\n\tfunction toggleControls(){\n\t\t\t\t\t\t\t\t\n\t\tif(g_temp.isControlsVisible == false)\n\t\t\tshowControls();\n\t\telse\n\t\t\thideControls();\n\t}\n\t\n\t\n\t/**\n\t * set controls mode\n\t * modes: image, video\n\t */\n\tfunction setControlsMode(mode){\n\t\t\t\t\n\t\tif(mode == g_temp.currentControlsMode)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(mode){\n\t\t\tcase \"image\":\n\t\t\t\tif(g_objZoomPanel)\n\t\t\t\t\tg_objZoomPanel.getElement().show();\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"video\":\n\t\t\t\tif(g_objZoomPanel)\n\t\t\t\t\tg_objZoomPanel.getElement().hide();\t\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"wrong controld mode: \" + mode);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tg_temp.currentControlsMode = mode;\n\t\t\t\n\t}\n\t\n\t\n\t\n\tfunction __________EVENTS___________(){};\n\n\t/**\n\t * on item change event\n\t */\n\tfunction onItemChange(data, arg_objItem, role){\n\t\t\n\t\t//trace(\"slider on change\");\n\t\t\n\t\tvar objItem = g_gallery.getSelectedItem();\n\t\t\t\t\n\t\tt.setItem(objItem, false, role);\n\t\t\n\t\tvar itemIndex = objItem.index;\n\t\t\n\t\t//set active bullet\n\t\tif(g_objBullets)\n\t\t\tg_objBullets.setActive(itemIndex);\n\t\t\n\t\t//handle text panel\n\t\tif(g_objTextPanel){\t\t\t\n\t\t\tif(g_temp.isTextPanelSaparateHover == false)\n\t\t\t\tshowTextPanel();\n\t\t}\n\t\t\t\t\n\t\tif(objItem.type == \"image\"){\n\t\t\tsetControlsMode(\"image\");\n\t\t\t//placeControlsElements();\n\t\t}\n\t\telse{\n\t\t\tsetControlsMode(\"video\");\n\t\t}\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * on bullet click - change the item to selected\n\t */\n\tfunction onBulletClick(event, bulletIndex){\n\t\tg_gallery.selectItem(bulletIndex);\t\t\n\t}\n\t\n\t\n\t/**\n\t * on touch end\n\t * toggle controls\n\t */\n\tfunction onClick(event){\n\t\t\n\t\t//double tap action\n\t\tif(g_objTouchSlider && g_objTouchSlider.isTapEventOccured(event) == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_objThis.trigger(t.events.CLICK, event);\n\t\t\t\n\t\t\n\t}\n\n\t\n\t/**\n\t * on actual click event\n\t */\n\tfunction onActualClick(){\n\n\t\t//check link\n\t\tvar currentSlide = t.getCurrentSlide();\n\t\tvar isClickable = currentSlide.hasClass(\"ug-slide-clickable\");\n\t\tvar objItem = t.getCurrentItem();\n\t\t\n\t\tif(isClickable){\n\t\t\t\n\t\t\t//redirect to link\n\t\t\tif(g_options.slider_links_newpage == false){\n\t\t\t\tlocation.href = objItem.link;\n\t\t\t}else{\n\t\t\t\twindow.open(objItem.link, '_blank');\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t//check toggle controls\n\t\tif(g_options.slider_controls_always_on == false && \n\t\t g_options.slider_controls_appear_ontap == true && t.isCurrentSlideType(\"image\") == true){\n\t\t\t\n\t\t\ttoggleControls();\n\t\t\t\n\t\t\t//show text panel if hidden\n\t\t\tif(g_objTextPanel && g_options.slider_textpanel_always_on == true && t.isCurrentSlideType(\"image\") && t.isCurrentSlideImageFit())\n\t\t\t\tshowTextPanel();\n\t\t}\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on zoom start event\n\t */\n\tfunction onZoomChange(event){\n\t\t\n\t\tif(g_objTextPanel && t.isCurrentSlideType(\"image\") && t.isCurrentSlideImageFit() == false)\n\t\t\thideTextPanel();\n\t}\n\t\n\t\n\t/**\n\t * on mouse enter\n\t */\n\tfunction onMouseEnter(){\n\t\t\n\t\tshowControls();\n\t\n\t}\n\t\n\t\n\t/**\n\t * on mouse leave\n\t */\n\tfunction onMouseLeave(){\n\n\t\thideControls();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on slide video play button click\n\t */\n\tfunction objVideoPlayClick(objButton){\n\t\tvar objSlide = objButton.parent();\n\t\tt.startSlideAction(objSlide);\n\t}\n\n\t/**\n\t * on video player show event\n\t */\n\tfunction onVideoPlayerShow(){\n\t\t\n\t\tif(g_gallery.isPlayMode()){\n\t\t\tg_gallery.pausePlaying();\n\t\t}\n\t\t\n\t\tg_objThis.trigger(t.events.ACTION_START);\n\t}\n\t\n\t\n\t/**\n\t * on video player hide event\n\t */\n\tfunction onVideoPlayerHide(){\n\t\t\n\t\tif(g_gallery.isPlayMode()){\n\t\t\tg_gallery.continuePlaying();\n\t\t}\n\t\t\n\t\tg_objThis.trigger(t.events.ACTION_END);\t\t\n\t}\n\t\n\t\n\t/**\n\t * on item image update, update the image inside the slider if relevant\n\t */\n\tfunction onItemImageUpdate(event, index, urlImage){\n\t\t\t\t\n\t\tif(g_objSlide1.data(\"index\") == index){\n\t\t\tobjItem = g_gallery.getItem(index);\n\t\t\tsetImageToSlide(g_objSlide1, objItem, true);\t//force\n\t\t}\n\t\t\n\t\tif(g_objSlide2.data(\"index\") == index){\n\t\t\tobjItem = g_gallery.getItem(index);\n\t\t\tsetImageToSlide(g_objSlide2, objItem, true);\n\t\t}\n\t\t\n\t\tif(g_objSlide3.data(\"index\") == index){\n\t\t\tobjItem = g_gallery.getItem(index);\n\t\t\tsetImageToSlide(g_objSlide3, objItem, true);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * after image loaded. position video play button\n\t */\n\tfunction onSlideImageLoaded(data, objSlide){\n\t\t\n\t\tobjSlide = jQuery(objSlide);\n\t\tvar objImage = t.getSlideImage(objSlide);\n\t\tvar objButtonVideoPlay = getSlideVideoPlayButton(objSlide);\n\t\tvar objSize = g_functions.getElementSize(objImage);\n\t\t\n\t\tg_functions.placeElement(objButtonVideoPlay, \"center\", \"middle\", objSize.left, objSize.top, objImage);\n\t}\n\t\n\t\n\t/**\n\t * init event of current slide\n\t */\n\tfunction initSlideEvents(objSlide){\n\t\t\n\t\t//set video player events\n\t\tvar objVideoPlayButton = getSlideVideoPlayButton(objSlide);\n\t\tg_functions.addClassOnHover(objVideoPlayButton);\n\t\t\n\t\tg_functions.setButtonOnClick(objVideoPlayButton, objVideoPlayClick);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//on item image update, update the image inside the slider if relevant\n\t\tg_objGallery.on(g_gallery.events.ITEM_IMAGE_UPDATED, onItemImageUpdate);\n\t\t\n\t\t\n\t\t//on item change, change the item in the slider.\n\t\tg_objGallery.on(g_gallery.events.ITEM_CHANGE, onItemChange);\n\t\t\n\t\tif(g_objBullets)\n\t\t\tjQuery(g_objBullets).on(g_objBullets.events.BULLET_CLICK,onBulletClick);\n\t\t\n\t\t//arrows events\n\t\tif(g_options.slider_enable_arrows == true){\n\t\t\t\n\t\t\tg_functions.addClassOnHover(g_objArrowRight, \"ug-arrow-hover\");\n\t\t\tg_functions.addClassOnHover(g_objArrowLeft, \"ug-arrow-hover\");\n\t\t\t\n\t\t\tg_gallery.setNextButton(g_objArrowRight);\n\t\t\tg_gallery.setPrevButton(g_objArrowLeft);\n\t\t}\n\t\t\n\t\t\n\t\t//show / hide controls\n\t\tif(g_options.slider_controls_always_on == false){\n\t\t\t\n\t\t\t//assign hover evens only if no touch device\n\t\t\tg_objSlider.hover(onMouseEnter, onMouseLeave);\n\t\t\t\n\t\t}\n\t\t\n\t\t//touch events appear on tap event\n\t\tg_objSlider.on(\"touchend click\", onClick);\n\t\t\n\t\t//actual click event\n\t\tg_objThis.on(t.events.CLICK, onActualClick);\n\t\t\n\t\t//show / hide text panel, if it's saparate from controls\n\t\tif(g_objTextPanel && g_temp.isTextPanelSaparateHover == true){\n\t\t\tg_objSlider.hover(showTextPanel, hideTextPanel);\n\t\t}\n\t\t\n\t\t//init play / pause button\n\t\tif(g_objButtonPlay){\n\t\t\tg_functions.addClassOnHover(g_objButtonPlay, \"ug-button-hover\");\n\t\t\tg_gallery.setPlayButton(g_objButtonPlay);\n\t\t}\n\t\t\n\t\t//init fullscreen button\n\t\tif(g_objButtonFullscreen){\n\t\t\tg_functions.addClassOnHover(g_objButtonFullscreen, \"ug-button-hover\");\n\t\t\tg_gallery.setFullScreenToggleButton(g_objButtonFullscreen);\n\t\t}\n\t\t\n\t\t//on zoom start / end events\n\t\tif(g_objZoomSlider){\n\t\t\tg_objThis.on(t.events.ZOOM_CHANGE, onZoomChange);\n\t\t}\n\t\t\n\t\tif(g_objZoomPanel)\n\t\t\tg_objZoomPanel.initEvents();\n\t\t\t\t\n\t\t//init video player related events\n\t\tg_objVideoPlayer.initEvents();\n\t\t\n\t\t//video API events\n\t\tjQuery(g_objVideoPlayer).on(g_objVideoPlayer.events.SHOW, onVideoPlayerShow);\t\t\n\t\tjQuery(g_objVideoPlayer).on(g_objVideoPlayer.events.HIDE, onVideoPlayerHide);\n\t\t\n\t\t//add slide events\n\t\tinitSlideEvents(g_objSlide1);\n\t\tinitSlideEvents(g_objSlide2);\n\t\tinitSlideEvents(g_objSlide3);\n\t\t\n\t\t//on image loaded\n\t\tg_objThis.on(t.events.AFTER_PUT_IMAGE, onSlideImageLoaded);\n\t\t\n\t\t//image mouseenter / mouseleave event\n\t\t\n\t\t//set mouseover events on the images\n\t\tg_objSlider.on(\"mouseenter\",\".ug-item-wrapper img\",function(event){\n\t\t\tg_objThis.trigger(t.events.IMAGE_MOUSEENTER);\n\t\t});\n\t\t\n\t\tg_objSlider.on(\"mouseleave\",\".ug-item-wrapper img\",function(event){\n\t\t\tvar isMouseOver = t.isMouseInsideSlideImage(event);\n\t\t\t\n\t\t\tif(isMouseOver == false)\n\t\t\t\tg_objThis.trigger(t.events.IMAGE_MOUSELEAVE);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy slider events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tg_objThis.off(t.events.AFTER_PUT_IMAGE);\n\t\t\t\t\n\t\tg_objGallery.off(g_gallery.events.ITEM_IMAGE_UPDATED);\n\t\tg_objGallery.off(g_gallery.events.ITEM_CHANGE);\n\t\t\n\t\tif(g_objBullets)\n\t\t\tjQuery(g_objBullets).on(g_objBullets.events.BULLET_CLICK);\n\t\t\n\t\tg_objSlider.off(\"mouseenter\");\n\t\tg_objSlider.off(\"mouseleave\");\n\t\t\n\t\tg_objSlider.off(\"touchend\");\n\t\tg_objSlider.off(\"click\");\n\t\tg_objThis.off(t.events.CLICK);\n\t\t\n\t\tif(g_objZoomSlider)\n\t\t\tg_objThis.off(t.events.ZOOM_CHANGE);\n\t\t\n\t\tg_objThis.off(t.events.BEFORE_SWITCH_SLIDES);\n\t\tjQuery(g_objVideoPlayer).off(g_objVideoPlayer.events.SHOW);\t\t\n\t\tjQuery(g_objVideoPlayer).off(g_objVideoPlayer.events.HIDE);\n\t\t\n\t\tg_objVideoPlayer.destroy();\n\t\t\n\t\tg_objSlider.off(\"mouseenter\",\".ug-item-wrapper img\");\n\t\tg_objSlider.off(\"mouseleave\",\".ug-item-wrapper img\");\n\t}\n\t\n\t\n\tfunction __________GETTERS___________(){};\n\t\n\t/**\n\t * get loader class by loader type\n\t */\n\tfunction getLoaderClass(){\n\t\tvar loaderClass;\n\t\tswitch(g_options.slider_loader_type){\n\t\t\tdefault:\n\t\t\tcase 1: loaderClass = \"ug-loader1\";break;\n\t\t\tcase 2: loaderClass = \"ug-loader2\";break;\n\t\t\tcase 3: loaderClass = \"ug-loader3\";break;\n\t\t\tcase 4: loaderClass = \"ug-loader4\";break;\n\t\t\tcase 5: loaderClass = \"ug-loader5\";break;\n\t\t\tcase 6: loaderClass = \"ug-loader6\";break;\n\t\t\tcase 7: loaderClass = \"ug-loader7\";break;\n\t\t\tcase 8: loaderClass = \"ug-loader8\";break;\n\t\t\tcase 9: loaderClass = \"ug-loader9\";break;\n\t\t}\n\t\t\t\t\n\t\tif(g_options.slider_loader_color == \"black\")\n\t\t\tloaderClass += \" ug-loader-black\";\n\t\t\n\t\treturn(loaderClass);\n\t}\n\t\n\t\n\t\n\t/**\n\t * \n\t * get slide by number\n\t */\n\tfunction getSlideByNum(num){\n\t\t\t\t\n\t\tswitch(num){\n\t\t\tcase 1:\n\t\t\t\treturn(g_objSlide1);\n\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\treturn(g_objSlide2);\n\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\treturn(g_objSlide3);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"wrong num: \" + num);\n\t\t\tbreak;\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * \n\t * get slide direction of current item\n\t */\n\tfunction getSlideDirection(objItem){\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t\n\t\t//validate if the item is not selected already\n\t\tvar currentIndex = slides.objCurrentSlide.data(\"index\");\n\t\tvar nextIndex = objItem.index;\n\t\t\n\t\tvar direction = \"left\";\n\t\tif(currentIndex > nextIndex)\n\t\t\tdirection = \"right\";\n\t\t\t\t\n\t\treturn(direction);\n\t}\n\t\n\t\n\t/**\n\t * get slide preloader\n\t */\n\tfunction getSlidePreloader(objSlide){\n\t\t\n\t\tif(!objSlide)\n\t\t\tvar objSlide = t.getCurrentSlide();\n\t\t\n\t\tvar objPreloader = objSlide.children(\".ug-slider-preloader\");\n\t\treturn(objPreloader);\n\t}\n\t\n\t/**\n\t * get slide videoplay button\n\t */\n\tfunction getSlideVideoPlayButton(objSlide){\n\t\tvar objButton = objSlide.children(\".ug-button-videoplay\");\n\t\treturn(objButton);\n\t}\n\t\n\t\n\t\n\t/**\n\t * get slide item\n\t */\n\tfunction getSlideItem(objSlide){\n\t\tif(!objSlide)\n\t\t\tvar objSlide = t.getCurrentSlide();\n\t\t\t\n\t\tvar index = objSlide.data(\"index\");\n\t\tif(index == undefined)\n\t\t\treturn(null);\n\t\t\n\t\tvar objItem = g_gallery.getItem(index);\n\t\treturn(objItem);\n\t}\n\t\n\t\n\t/**\n\t * get slide number\n\t */\n\tfunction getNumSlide(objSlide){\n\t\tvar numSlide = objSlide.data(\"slidenum\");\n\t\treturn(numSlide);\n\t}\n\t\n\t\n\t\n\tthis.________EXTERNAL_GENERAL___________ = function(){};\n\t\n\t\n\t/**\n\t * init function for avia controls\n\t * options: width / height\n\t */\n\tthis.init = function(objGallery, objOptions, optionsPrefix){\n\t\t\t\t\n\t\tinitSlider(objGallery, objOptions, optionsPrefix);\n\t}\n\n\t/**\n\t * get slide image\n\t */\n\tthis.getSlideImage = function(objSlide){\n\t\t\n\t\tif(!objSlide)\n\t\t\tvar objSlide = t.getCurrentSlide();\n\t\t\n\t\tvar objImage = objSlide.find(\".ug-item-wrapper img\");\n\t\treturn(objImage);\n\t}\n\t\n\t\n\t/**\n\t * set slider html\n\t */\n\tthis.setHtml = function(objParent){\n\t\t\n\t\tsetHtmlSlider(objParent);\n\t}\n\t\n\t\n\t/**\n\t * run the slider\n\t */\n\tthis.run = function(){\n\t\t\n\t\trunSlider();\n\t}\n\t\n\t\n\t/**\n\t * check if the inner object in place, for panning znd zooming posibility check\n\t */\n\tthis.isInnerInPlace = function(){\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t\n\t\tvar posCurrent = g_functions.getElementSize(slides.objCurrentSlide);\n\t\tvar inPlaceX = -posCurrent.left;\n\t\tvar objInnerSize = g_functions.getElementSize(g_objInner);\n\t\t\n\t\tif(inPlaceX == objInnerSize.left)\n\t\t\treturn(true);\n\t\telse\n\t\t\treturn(false);\n\t}\n\t\n\t/**\n\t * is animating\n\t */\n\tthis.isAnimating = function(){\n\t\t\n\t\tvar isAnimated = g_objInner.is(\":animated\");\n\t\t\n\t\treturn(isAnimated);\n\t}\n\t\n\t/**\n\t * check if the slide is current\n\t */\n\tthis.isSlideCurrent = function(objSlide){\n\t\tvar numSlide = objSlide.data(\"slidenum\");\n\t\tif(g_temp.numCurrent == numSlide)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * \n\t * tells if the slide has item\n\t */\n\tthis.isSlideHasItem = function(objSlide){\n\t\tvar index = objSlide.data(\"index\");\n\t\tif(index === undefined || index === null)\n\t\t\treturn(false);\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n\t/**\n\t * get image padding object for scaling the image\n\t */\n\tthis.getObjImagePadding = function(){\n\t\t\n\t\tvar objPadding = {\n\t\t\t\tpadding_top: g_options.slider_image_padding_top,\n\t\t\t\tpadding_bottom: g_options.slider_image_padding_bottom,\n\t\t\t\tpadding_left: g_options.slider_image_padding_left,\n\t\t\t\tpadding_right: g_options.slider_image_padding_right\n\t\t};\n\t\t\n\t\treturn(objPadding);\n\t}\n\t\t\t\n\t\n\t/**\n\t * get items reference by their order\n\t */\n\tthis.getSlidesReference = function(){\n\t\t\n\t\tvar obj = {\n\t\t\t\tobjPrevSlide: getSlideByNum(g_temp.numPrev),\n\t\t\t\tobjNextSlide: getSlideByNum(g_temp.numNext),\n\t\t\t\tobjCurrentSlide: getSlideByNum(g_temp.numCurrent)\n\t\t};\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * get current slide\n\t */\n\tthis.getCurrentSlide = function(){\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t\n\t\treturn(slides.objCurrentSlide);\n\t}\n\t\n\t\n\t/**\n\t * get index of current item\n\t */\n\tthis.getCurrentItemIndex = function(){\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t\n\t\tvar currentIndex = slides.objCurrentSlide.data(\"index\");\n\t\tif(currentIndex === null || currentIndex === undefined)\n\t\t\tcurrentIndex = -1;\n\t\t\n\t\treturn(currentIndex);\n\t}\n\t\n\t\n\t/**\n\t * get current slide item\n\t */\n\tthis.getCurrentItem = function(){\n\t\tvar currentIndex = t.getCurrentItemIndex();\n\t\tif(currentIndex == -1)\n\t\t\treturn(null);\n\t\t\n\t\tvar objItem = g_gallery.getItem(currentIndex);\n\t\t\n\t\treturn(objItem);\n\t}\n\t\t\n\t\n\t/**\n\t * get type of some slide\n\t */\n\tthis.getSlideType = function(objSlide){\n\t\t\n\t\tif(objSlide == undefined)\n\t\t\tobjSlide = t.getCurrentSlide();\n\t\t\t\n\t\tvar type = objSlide.data(\"type\");\n\t\treturn(type);\t\t\n\t}\n\n\t\n\t/**\n\t * is mouse inside slide image\n\t * get mouse position from event\n\t */\n\tthis.isMouseInsideSlideImage = function(event){\n\t\t\n\t\tvar objImage = t.getSlideImage();\n\t\t\n\t\tvar point = g_functions.getMousePosition(event);\n\t\tif(point.pageX === undefined)\n\t\t\tpoint = g_objTouchSlider.getLastMousePos();\n\t\t\n\t\tvar pointImg = g_functions.getMouseElementPoint(point, objImage);\n\t\tvar objSize = g_functions.getElementSize(objImage);\n\t\tisMouseInside = g_functions.isPointInsideElement(pointImg, objSize);\n\t\t\n\t\treturn(isMouseInside);\n\t}\n\t\n\t\n\t/**\n\t * check if current slide type is certain type\n\t */\n\tthis.isCurrentSlideType = function(type){\n\t\tvar currentSlideType = t.getSlideType();\n\t\tif(currentSlideType == type)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * check if current slide is loading image\n\t */\n\tthis.isCurrentSlideLoadingImage = function(){\n\t\tvar currentSlide = t.getCurrentSlide();\n\t\tvar isLoading = currentSlide.data(\"isLoading\");\n\t\tif(isLoading === true)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * change the slider to some item content\n\t */\n\tthis.setItem = function(objItem, forseTransition, role){\n\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\t\n\t\t//validate if the item is not selected already\n\t\tvar currentIndex = slides.objCurrentSlide.data(\"index\");\n\t\tvar nextIndex = objItem.index;\n\t\t\n\t\tif(nextIndex == currentIndex){\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tvar isFirstSlide = (currentIndex == undefined);\n\t\t\n\t\tif(isFirstSlide){\t\t\t\n\t\t\tsetItemToSlide(slides.objCurrentSlide, objItem);\n\t\t\tt.placeNabourItems();\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tvar direction = \"left\";\t\t//move foreward\n\t\t\t\n\t\t\tvar numItems = g_gallery.getNumItems();\n\t\t\t\n\t\t\tif(role == \"next\")\n\t\t\t\tdirection = \"left\";\n\t\t\telse if(role == \"prev\" || currentIndex > nextIndex)\n\t\t\t\tdirection = \"right\";\n\t\t\telse if(currentIndex > nextIndex)\n\t\t\t\t\tdirection = \"right\";\n\t\t\t\t\t\t\n\t\t\tdoTransition(direction, objItem, forseTransition);\n\t\t}\n\t\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * when the transition complete, put the next / prev items at their place\n\t */\n\tthis.placeNabourItems = function(){\n\t\t\t\t\n\t\tvar slides = t.getSlidesReference();\n\t\tvar currentIndex = slides.objCurrentSlide.data(\"index\");\n\t\t\t\t\n\t\tvar itemPrev = g_gallery.getPrevItem(currentIndex);\n\t\tvar itemNext = g_gallery.getNextItem(currentIndex);\n\t\t\n\t\t//trace(itemPrev);\n\t\t//trace(itemNext);\n\t\t\n\t\t//trace(\"place \" + currentIndex, \"next: \"+);\n\t\t\n\t\tsetItemToSlide(slides.objNextSlide, itemNext);\n\t\tsetItemToSlide(slides.objPrevSlide, itemPrev);\n\t\t\n\t\tpositionSlides();\n\t}\n\t\n\t\n\t\n\tthis.________EXTERNAL_API___________ = function(){};\n\t\n\t\n\t/**\n\t * stop some slide action if active\n\t */\n\tthis.stopSlideAction = function(objSlide, isPause){\n\t\t\n\t\tif(!objSlide)\n\t\t\tobjSlide = t.getCurrentSlide();\n\t\t\n\t\tif(isPause === true)\n\t\t\tg_objVideoPlayer.pause();\n\t\telse\n\t\t\tg_objVideoPlayer.hide();\n\t\t\n\t//\ttrace(\"stop action\");\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * start some slide action if exists\n\t */\n\tthis.startSlideAction = function(objSlide){\n\t\t\n\t//\ttrace(\"start action\");\n\t\t\n\t\tif(!objSlide)\n\t\t\tobjSlide = t.getCurrentSlide();\n\t\t\n\t\tvar objItem = getSlideItem(objSlide);\n\t\t\n\t\tif(objItem.type == \"image\")\n\t\t\treturn(true)\n\t\t\n\t\tif(g_options.slider_video_constantsize == true)\n\t\t\tsetVideoPlayerConstantSize();\n\t\t\n\t\tsetVideoPlayerPosition();\n\t\t\n\t\tg_objVideoPlayer.show();\n\t\t\n\t\tswitch(objItem.type){\n\t\t\tcase \"youtube\":\n\t\t\t\tg_objVideoPlayer.playYoutube(objItem.videoid);\n\t\t\tbreak;\n\t\t\tcase \"vimeo\":\n\t\t\t\tg_objVideoPlayer.playVimeo(objItem.videoid);\n\t\t\tbreak;\n\t\t\tcase \"html5video\":\n\t\t\t\tg_objVideoPlayer.playHtml5Video(objItem.videoogv, objItem.videowebm, objItem.videomp4, objItem.urlImage);\n\t\t\tbreak;\n\t\t\tcase \"soundcloud\":\n\t\t\t\tg_objVideoPlayer.playSoundCloud(objItem.trackid);\n\t\t\tbreak;\t\t\t\n\t\t\tcase \"wistia\":\n\t\t\t\tg_objVideoPlayer.playWistia(objItem.videoid);\n\t\t\tbreak;\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get the scale mode according the state (normal, fullscreen).\n\t */\n\tthis.getScaleMode = function(objSlide){\n\t\t\n\t\tif(!objSlide)\n\t\t\tvar objSlide = t.getCurrentSlide();\n\t\t\n\t\tvar slideType = t.getSlideType(objSlide);\n\t\t\t\t\n\t\t//return media scale mode\n\t\tif(slideType != \"image\")\n\t\t\treturn(g_options.slider_scale_mode_media);\n\t\t\n\t\tif(g_options.slider_scale_mode == g_options.slider_scale_mode_fullscreen)\n\t\t\treturn(g_options.slider_scale_mode);\n\t\t\n\t\tif(g_gallery.isFullScreen() == true)\n\t\t\treturn(g_options.slider_scale_mode_fullscreen);\n\t\telse\n\t\t\treturn(g_options.slider_scale_mode);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get slider objects\n\t */\n\tthis.getObjects = function(){\n\t\t\n\t\tvar obj = {\n\t\t\t\tg_objSlider: g_objSlider,\n\t\t\t\tg_objInner: g_objInner,\n\t\t\t\tg_options: g_options,\n\t\t\t\tg_objZoomSlider: g_objZoomSlider\n\t\t};\n\t\t\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * get zoom object\n\t */\n\tthis.getObjZoom = function(){\n\t\t\n\t\treturn(g_objZoomSlider);\n\t}\n\t\n\t\n\t\n\t/**\n\t * get slider options\n\t */\n\tthis.getOptions = function(){\n\t\t\n\t\treturn(g_options);\n\t}\n\t\n\t\n\t/**\n\t * get slider element\n\t */\n\tthis.getElement = function(){\n\t\t\n\t\treturn(g_objSlider);\n\t}\n\t\n\t/**\n\t * get video object\n\t */\n\tthis.getVideoObject = function(){\n\t\treturn(g_objVideoPlayer);\n\t}\n\t\n\t\n\t/**\n\t * return true if current slider image fit the slider\n\t * @returns\n\t */\n\tthis.isCurrentSlideImageFit = function(){\n\t\tvar objSlide = t.getCurrentSlide();\n\n\t\tvar slideType = t.getSlideType(objSlide);\n\t\t\n\t\tvalidateSlideType(\"image\", objSlide);\n\t\t\n\t\tvar objImage = t.getSlideImage(objSlide);\n\t\t\n\t\t//if image don't yet added to dom, return false\n\t\tif(objImage.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tvar isFit = g_functions.isImageFitParent(objImage);\n\t\t\n\t\treturn(isFit);\n\t}\n\t\n\t\n\t/**\n\t * check if current image in place\n\t */\n\tthis.isCurrentImageInPlace = function(){\n\t\t\n\t\tvar objImage = t.getSlideImage();\n\t\tif(objImage.length == 0)\n\t\t\treturn(false);\n\n\t\tvar scaleMode = t.getScaleMode();\n\t\tvar objPadding = t.getObjImagePadding();\n\t\tvar objItem = getSlideItem();\n\t\t\n\t\tvar objParent = objImage.parent();\n\t\t\n\t\tvar objFitSize = g_functions.getImageInsideParentData(objParent, objItem.imageWidth, objItem.imageHeight, scaleMode, objPadding);\n\t\tvar objSize = g_functions.getElementSize(objImage);\n\n\t\tvar output = false;\n\t\t\n\t\tif(objFitSize.imageWidth == objSize.width)\n\t\t\toutput = true;\n\t\t\t\t\n\t\treturn(output);\n\t}\n\t\n\t\n\t/**\n\t * if slide is bussy in some action\n\t */\n\tthis.isSlideActionActive = function(){\n\t\t\n\t\treturn g_objVideoPlayer.isVisible();\n\t}\n\t\n\t/**\n\t * return if swipe action active\n\t */\n\tthis.isSwiping = function(){\n\t\tif(!g_objTouchSlider)\n\t\t\treturn(false);\n\t\t\n\t\tvar isActive = g_objTouchSlider.isTouchActive();\n\t\t\n\t\treturn(isActive);\n\t}\n\t\n\t\n\t/**\n\t * if slider preloading image (if preloader visible)\n\t */\n\tthis.isPreloading = function(){\n\t\t\n\t\tvar objPreloader = getSlidePreloader();\n\t\tif(objPreloader.is(\":visible\"))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * set the options\n\t */\n\tthis.setOptions = function(objOptions){\n\n\t\t//change options by prefix\n\t\tif(g_optionsPrefix)\n\t\t\tobjOptions = g_functions.convertCustomPrefixOptions(objOptions, g_optionsPrefix, \"slider\");\n\t\t\n\t\tg_options = jQuery.extend(g_options, objOptions);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set the slider size\n\t * works well on resize too.\n\t */\n\tthis.setSize = function(width, height){\n\t\t\n\t\t if(width < 0 || height < 0)\n\t\t\t return(true);\n\t\t\n\t\t var objCssSlider = {};\n\t\t objCssSlider[\"width\"] = width + \"px\";\n\t\t objCssSlider[\"height\"] = height + \"px\";\n\t\t g_objSlider.css(objCssSlider);\n\t\t \t\t \n\t\t //set inner:\n\t\t var objCssInner = {};\n\t\t objCssInner[\"height\"] = height + \"px\";\n\t\t objCssInner[\"top\"] = \"0px\";\n\t\t objCssInner[\"left\"] = \"0px\";\n\t\t g_objInner.css(objCssInner);\n\t\t \n\t\t//set slide wrapper\n\t\t var objCssSlide = {};\n\t\t objCssSlide[\"height\"] = height + \"px\";\n\t\t objCssSlide[\"width\"] = width + \"px\";\n\t\t \n\t\t g_objSlide1.css(objCssSlide);\n\t\t g_objSlide2.css(objCssSlide);\n\t\t g_objSlide3.css(objCssSlide);\n\t\t \n\t\t var itemWidth = width - g_options.slider_item_padding_left - g_options.slider_item_padding_right;\n\t\t var itemHeight = height - g_options.slider_item_padding_top - g_options.slider_item_padding_bottom;\n\t\t \t\n\t\t //set item wrapper\n\t\t var objCssItemWrapper = {};\n\t\t objCssItemWrapper[\"width\"] = itemWidth + \"px\";\n\t\t objCssItemWrapper[\"height\"] = itemHeight + \"px\";\n\t\t objCssItemWrapper[\"top\"] = g_options.slider_item_padding_top + \"px\";\n\t\t objCssItemWrapper[\"left\"] = g_options.slider_item_padding_left + \"px\";\n\t\t \n\t\t g_objSlider.find(\".ug-item-wrapper\").css(objCssItemWrapper);\t\t \n\t\t \n\t\t \n\t\t //set text panel size\n\t\t if(g_objTextPanel){\n\t\t\t g_objTextPanel.setSizeByParent();\n\t\t }\n\t\t \n\t\t positionElements();\n\t\t \n\t\t //set image to slides\n\t\t resizeSlideItem(g_objSlide1);\n\t\t resizeSlideItem(g_objSlide2);\n\t\t resizeSlideItem(g_objSlide3);\n\t\t \n\t\t positionSlides();\n\t\t \t\t \n\t\t //set video player size\n\t\t var currentSlideType = t.getSlideType();\n\t\t\n\t\t if(currentSlideType != \"image\" && g_options.slider_video_constantsize == true){\n\t\t\t \n\t\t\t setVideoPlayerConstantSize();\n\t\t }else{\t\n\t\t\t var videoWidth = width - g_options.slider_video_padding_left - g_options.slider_video_padding_right;\n\t\t\t var videoHeight = height - g_options.slider_video_padding_top - g_options.slider_video_padding_bottom;\n\t\t\t \n\t\t\t //set video player size\n\t\t\t g_objVideoPlayer.setSize(videoWidth, videoHeight);\n\t\t }\n\t\t \n\t\t setVideoPlayerPosition();\n\t\t \n\t}\n\t\n\t\n\t/**\n\t * refresh slide items after options change\n\t */\n\tthis.refreshSlideItems = function(){\n\t\t \n\t\tif(t.isAnimating() == true)\n\t\t\treturn(true);\n\t\t\n\t\t resizeSlideItem(g_objSlide1);\n\t\t resizeSlideItem(g_objSlide2);\n\t\t resizeSlideItem(g_objSlide3);\n\t\t positionSlides();\n\t\t \n\t}\n\t\n\t\n\t/**\n\t * is mouse over the slider\n\t */\n\tthis.isMouseOver = function(){\n\t\t\n\t\treturn g_objSlider.ismouseover();\n\t}\n\t\n\t/**\n\t * set slider position\n\t */\n\tthis.setPosition = function(left, top){\n\t\t\n\t\tg_functions.placeElement(g_objSlider, left, top);\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * zoom in\n\t */\n\tthis.zoomIn = function(){\n\t\tif(!g_objZoomSlider)\n\t\t\treturn(true);\n\t\t\n\t\tg_objZoomSlider.zoomIn();\n\t}\n\t\n\t/**\n\t * zoom out\n\t */\n\tthis.zoomOut = function(){\n\t\t\n\t\tif(!g_objZoomSlider)\n\t\t\treturn(true);\n\t\t\n\t\tg_objZoomSlider.zoomOut();\n\t\t\t\n\t}\n\t\n\t/**\n\t * zoom back to original\n\t */\n\tthis.zoomBack = function(){\n\t\t\n\t\tif(!g_objZoomSlider)\n\t\t\treturn(true);\n\t\t\n\t\tg_objZoomSlider.zoomBack();\t\n\t}\n\t\n\t\n}\n\n/** -------------- TextPanel class ---------------------*/\n\nfunction UGTextPanel(){\n\t\n\tvar t = this;\n\tvar g_objPanel, g_objParent, g_objTitle, g_objDesc;\n\tvar g_objBG, g_objTextWrapper, g_gallery;\n\tvar g_functions = new UGFunctions(), g_optionsPrefix = \"\";\n\t\n\tvar g_options = {\n\t\t\ttextpanel_align:\"bottom\",\t\t\t\t\t//(top , bottom), textpanel align according the parent\n\t\t\ttextpanel_margin:0,\t\t\t\t\t\t\t//margin from the textpanel position according the textpanel_align\n\t\t\ttextpanel_text_valign:\"middle\",\t\t\t\t//middle, top, bottom - text vertical align\n\t\t\ttextpanel_padding_top:10,\t\t\t\t\t//textpanel padding top \n\t\t\ttextpanel_padding_bottom:10,\t\t\t\t//textpanel padding bottom\n\t\t\ttextpanel_height: null,\t\t\t\t\t\t//textpanel height. if null it will be set dynamically\n\t\t\ttextpanel_padding_title_description: 5,\t\t//the space between the title and the description\n\t\t\ttextpanel_padding_right: 11,\t\t\t\t//cut some space for text from right\n\t\t\ttextpanel_padding_left: 11,\t\t\t\t\t//cut some space for text from left\n\t\t\ttextpanel_fade_duration: 200,\t\t\t\t//the fade duration of textpanel appear\n\t\t\ttextpanel_enable_title: true,\t\t\t\t//enable the title text\n\t\t\ttextpanel_enable_description: true,\t\t\t//enable the description text\n\t\t\ttextpanel_enable_bg: true,\t\t\t\t\t//enable the textpanel background\n\t\t\ttextpanel_bg_color:\"#000000\",\t\t\t\t//textpanel background color\n\t\t\ttextpanel_bg_opacity: 0.4,\t\t\t\t\t//textpanel background opacity\n\t\t\t\n\t\t\ttextpanel_title_color:null,\t\t\t\t\t//textpanel title color. if null - take from css\n\t\t\ttextpanel_title_font_family:null,\t\t\t//textpanel title font family. if null - take from css\n\t\t\ttextpanel_title_text_align:null,\t\t\t//textpanel title text align. if null - take from css\n\t\t\ttextpanel_title_font_size:null,\t\t\t\t//textpanel title font size. if null - take from css\n\t\t\ttextpanel_title_bold:null,\t\t\t\t\t//textpanel title bold. if null - take from css\n\t\t\ttextpanel_css_title:{},\t\t\t\t\t\t//textpanel additional css of the title\n\n\t\t\ttextpanel_desc_color:null,\t\t\t\t\t//textpanel description font family. if null - take from css\n\t\t\ttextpanel_desc_font_family:null,\t\t\t//textpanel description font family. if null - take from css\n\t\t\ttextpanel_desc_text_align:null,\t\t\t\t//textpanel description text align. if null - take from css\n\t\t\ttextpanel_desc_font_size:null,\t\t\t\t//textpanel description font size. if null - take from css\n\t\t\ttextpanel_desc_bold:null,\t\t\t\t\t//textpanel description bold. if null - take from css\n\t\t\ttextpanel_css_description:{},\t\t\t\t//textpanel additional css of the description\n\t\t\t\n\t\t\ttextpanel_desc_style_as_title: false,\t\t//set that the description style will be as title\n\t\t\t\n\t\t\ttextpanel_bg_css:{}\t\t\t\t\t\t\t//textpanel background css\n\t};\n\t\n\tvar g_temp = {\n\t\t\tisFirstTime: true,\n\t\t\tsetInternalHeight: true,\t//flag if set internal height or not\n\t\t\tlastTitleBottom: 0,\n\t\t\tlastDescHeight: 0\n\t};\n\t\n\t\n\t/**\n\t * position elements from top\n\t */\n\tfunction positionElementsTop(animateHeight, startY){\n\t\t\n\t\tif(!startY)\n\t\t\tvar startY = g_options.textpanel_padding_top;\n\t\t\n\t\t//place title\n\t\tvar maxy = startY;\n\t\t\n\t\t//place title\n\t\tif(g_objTitle){\n\t\t\tvar titleY = maxy;\n\t\t\tg_functions.placeElement(g_objTitle, 0, titleY);\n\t\t\t\n\t\t\tvar isTitleVisible = g_objTitle.is(\":visible\");\n\t\t\tif(isTitleVisible == true){\n\t\t\t\tvar objTitleSize = g_functions.getElementSize(g_objTitle);\n\t\t\t\t\n\t\t\t\tvar maxy = objTitleSize.bottom;\n\t\t\t\tif(maxy > 0)\n\t\t\t\t\tg_temp.lastTitleBottom = maxy;\n\t\t\t}else{\n\t\t\t\tvar maxy = 20;\t\t//get last or assumed maxy\n\t\t\t\t\n\t\t\t\tif(g_temp.lastTitleBottom > 0)\n\t\t\t\t\tmaxy = g_temp.lastTitleBottom;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\t\t\n\t\t//place description\n\t\tvar textDesc = \"\";\n\t\tif(g_objDesc)\n\t\t\ttextDesc = jQuery.trim(g_objDesc.text());\n\t\t\n\t\tif(textDesc != \"\"){\n\t\t\t\n\t\t\tvar descY = maxy;\n\t\t\t\t\t\t\n\t\t\tif(g_objTitle)\n\t\t\t\tdescY += g_options.textpanel_padding_title_description;\n\t\t\t\n\t\t\tg_functions.placeElement(g_objDesc, 0, descY);\n\t\t\t\n\t\t\tvar isVisible = jQuery(g_objDesc).is(\":visible\");\n\t\t\t\n\t\t\tif(isVisible == true){\n\t\t\t\tvar objDescSize = g_functions.getElementSize(g_objDesc);\n\t\t\t\tmaxy = objDescSize.bottom;\n\t\t\t\t\n\t\t\t\tif(objDescSize.height > 0)\n\t\t\t\t\tg_temp.lastDescHeight = objDescSize.height;\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\tvar descHeight = 16;\t\t\t//take from last saved\n\t\t\t\tif(g_temp.lastDescHeight > 0)\n\t\t\t\t\tdescHeight = g_temp.lastDescHeight;\n\t\t\t\t\n\t\t\t\tmaxy = descY + descHeight;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//change panel height\n\t\tif(!g_options.textpanel_height && g_temp.setInternalHeight == true){\n\t\t\t\n\t\t\tvar panelHeight = maxy + g_options.textpanel_padding_bottom;\t\t\n\t\t\t\n\t\t\tsetHeight(panelHeight, animateHeight);\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * get total text and description height\n\t */\n\tfunction getTotalTextHeight(){\n\t\tvar totalHeight = 0;\n\t\t\n\t\tif(g_objTitle)\n\t\t\ttotalHeight += g_objTitle.outerHeight();\n\t\t\n\t\tif(g_objDesc){\n\t\t\tvar textDesc = \"\";\n\t\t\tif(g_objDesc)\n\t\t\t\ttextDesc = jQuery.trim(g_objDesc.text());\n\t\t\t\n\t\t\tif(textDesc != \"\"){\n\t\t\t\tif(g_objTitle)\n\t\t\t\t\ttotalHeight += g_options.textpanel_padding_title_description;\n\t\t\t\t\n\t\t\t\ttotalHeight += g_objDesc.outerHeight();\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t\n\t\treturn(totalHeight);\n\t}\n\t\n\t\n\t/**\n\t * position elements to center\n\t */\n\tfunction positionElementsMiddle(){\n\t\t\n\t\tvar totalTextHeight = getTotalTextHeight();\n\t\tvar startY = (g_objTextWrapper.height() - totalTextHeight) / 2;\n\t\t\n\t\tpositionElementsTop(false, startY);\n\t}\n\t\n\t\n\t/**\n\t * position elements to bottom\n\t */\n\tfunction positionElementBottom(){\n\t\t\n\t\tvar totalTextHeight = getTotalTextHeight();\n\t\tvar startY = g_objTextWrapper.height() - totalTextHeight - g_options.textpanel_padding_bottom;\n\t\t\n\t\tpositionElementsTop(false, startY);\n\t}\n\t\n\t\n\t/**\n\t * position elements inside the panel\n\t */\n\tthis.positionElements = function(animateHeight){\n\n\t\t//if(g_objPanel.is(\":visible\") == false)\n\t\t\t//trace(\"the text panel is hidden. can't position elements\")\n\t\t\n\t\t//if height not set, position only top\n\t\tif(!g_options.textpanel_height || g_options.textpanel_text_valign == \"top\"){\n\t\t\tpositionElementsTop(animateHeight);\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tswitch(g_options.textpanel_text_valign){\n\t\t\tdefault:\n\t\t\tcase \"top\":\n\t\t\t\tpositionElementsTop(false);\t\t//no animation in this case\n\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tpositionElementBottom();\n\t\t\tbreak;\n\t\t\tcase \"center\":\n\t\t\tcase \"middle\":\n\t\t\t\tpositionElementsMiddle();\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set new panel height\n\t */\n\tfunction setHeight(height, animateHeight){\n\t\t\n\t\tif(!animateHeight)\n\t\t\tvar animateHeight = false;\n\t\t\n\t\tif(animateHeight == true){\n\t\t\t\n\t\t\tif(g_objBG){\n\t\t\t\t\n\t\t\t\t//avoid background jumps\n\t\t\t\tvar currentHeight = g_objBG.height();\n\t\t\t\tif(height > currentHeight)\n\t\t\t\t\tg_objBG.height(height);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tvar objCss = {height: height+\"px\"};\n\t\t\tg_objPanel.add(g_objTextWrapper).animate(objCss, g_options.textpanel_fade_duration);\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(g_objBG)\n\t\t\t\tg_objBG.height(height);\t\t\n\t\t\t\n\t\t\tg_objPanel.add(g_objTextWrapper).height(height);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n\t\n\t/**\n\t * init the panel\n\t */\n\tthis.init = function(objGallery, customOptions, optionsPrefix){\n\t\t\t\t\n\t\tg_gallery = objGallery;\n\t\t\n\t\t//change options by prefix\n\t\tif(optionsPrefix){\n\t\t\tg_optionsPrefix = optionsPrefix;\n\t\t\tcustomOptions = g_functions.convertCustomPrefixOptions(customOptions,g_optionsPrefix,\"textpanel\");\t\t\t\n\t\t\t\n\t\t}\n\t\t\n\t\tif(customOptions)\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\t//validation:\n\t\tif(g_options.textpanel_enable_title == false && g_options.textpanel_enable_description == false)\n\t\t\tthrow new Error(\"Textpanel Error: The title or description must be enabled\");\n\t\t\n\t\tif(g_options.textpanel_height && g_options.textpanel_height < 0)\n\t\t\tg_options.textpanel_height = null;\n\t\t\n\t\t//copy desc style from title\n\t\tif(g_options.textpanel_desc_style_as_title == true){\n\t\t\tif(!g_options.textpanel_desc_color)\n\t\t\t\tg_options.textpanel_desc_color = g_options.textpanel_title_color;\n\t\t\t\n\t\t\tif(!g_options.textpanel_desc_bold)\n\t\t\t\tg_options.textpanel_desc_bold = g_options.textpanel_title_bold;\n\t\t\t\n\t\t\tif(!g_options.textpanel_desc_font_family)\n\t\t\t\tg_options.textpanel_desc_font_family = g_options.textpanel_title_font_family;\n\t\t\t\n\t\t\tif(!g_options.textpanel_desc_font_size)\n\t\t\t\tg_options.textpanel_desc_font_size = g_options.textpanel_title_font_size;\n\t\t\t\n\t\t\tif(!g_options.textpanel_desc_text_align)\n\t\t\t\tg_options.textpanel_desc_text_align = g_options.textpanel_title_text_align;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * append the bullets html to some parent\n\t */\n\tthis.appendHTML = function(objParent, addClass){\n\t\tg_objParent = objParent;\n\t\t\n\t\tif(addClass){\n\t\t\taddClass = \" \"+addClass;\n\t\t}else\n\t\t\taddClass = \"\";\n\t\t\n\t\tvar html = \"
\";\n\t\t\n\t\tif(g_options.textpanel_enable_bg == true)\n\t\t\thtml += \"
\";\n\t\t\n\t\thtml += \"
\";\n\t\t\n\t\tif(g_options.textpanel_enable_title == true)\n\t\t\thtml += \"
\";\n\t\t\n\t\tif(g_options.textpanel_enable_description == true)\n\t\t\thtml += \"
\";\n\t\t\n\t\thtml += \"
\";\n\t\t\n\t\tobjParent.append(html);\n\t\t\n\t\tg_objPanel = objParent.children(\".ug-textpanel\");\n\t\tg_objTextWrapper = g_objPanel.children(\".ug-textpanel-textwrapper\");\n\t\t\n\t\tsetCss();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set panel css according the options\n\t */\n\tfunction setCss(){\n\t\t\t\t\n\t\t//set background css\t\t\n\t\tif(g_options.textpanel_enable_bg == true){\n\t\t\tg_objBG = g_objPanel.children(\".ug-textpanel-bg\");\n\t\t\tg_objBG.fadeTo(0,g_options.textpanel_bg_opacity);\n\t\t\t\n\t\t\tvar objCssBG = {\"background-color\":g_options.textpanel_bg_color};\n\t\t\tobjCssBG = jQuery.extend(objCssBG, g_options.textpanel_bg_css);\n\t\t\t\n\t\t\tg_objBG.css(objCssBG);\n\t\t}\n\t\t\n\t\t\n\t\t//set title css from options\n\t\tif(g_options.textpanel_enable_title == true){\n\t\t\tg_objTitle = g_objTextWrapper.children(\".ug-textpanel-title\");\n\t\t\tvar objCssTitle = {};\n\t\t\t\n\t\t\tif(g_options.textpanel_title_color !== null)\n\t\t\t\tobjCssTitle[\"color\"] = g_options.textpanel_title_color;\n\t\t\t\n\t\t\tif(g_options.textpanel_title_font_family !== null)\n\t\t\t\tobjCssTitle[\"font-family\"] = g_options.textpanel_title_font_family;\n\t\t\t\n\t\t\tif(g_options.textpanel_title_text_align !== null)\n\t\t\t\tobjCssTitle[\"text-align\"] = g_options.textpanel_title_text_align;\n\t\t\t\n\t\t\tif(g_options.textpanel_title_font_size !== null)\n\t\t\t\tobjCssTitle[\"font-size\"] = g_options.textpanel_title_font_size+\"px\";\n\t\t\t\n\t\t\tif(g_options.textpanel_title_bold !== null){\n\t\t\t\t\n\t\t\t\tif(g_options.textpanel_title_bold === true)\n\t\t\t\t\tobjCssTitle[\"font-weight\"] = \"bold\";\n\t\t\t\telse\n\t\t\t\t\tobjCssTitle[\"font-weight\"] = \"normal\";\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t//set additional css\n\t\t\tif(g_options.textpanel_css_title)\n\t\t\t\tobjCssTitle = jQuery.extend(objCssTitle, g_options.textpanel_css_title);\n\t\t\t\n\t\t\tg_objTitle.css(objCssTitle);\n\t\t}\n\t\t\n\t\t//set description css\n\t\tif(g_options.textpanel_enable_description == true){\n\t\t\tg_objDesc = g_objTextWrapper.children(\".ug-textpanel-description\");\n\t\t\t\n\t\t\tvar objCssDesc = {};\n\t\t\t\n\t\t\tif(g_options.textpanel_desc_color !== null)\n\t\t\t\tobjCssDesc[\"color\"] = g_options.textpanel_desc_color;\n\t\t\t\n\t\t\tif(g_options.textpanel_desc_font_family !== null)\n\t\t\t\tobjCssDesc[\"font-family\"] = g_options.textpanel_desc_font_family;\n\t\t\t\n\t\t\tif(g_options.textpanel_desc_text_align !== null)\n\t\t\t\tobjCssDesc[\"text-align\"] = g_options.textpanel_desc_text_align;\n\t\t\t\n\t\t\tif(g_options.textpanel_desc_font_size !== null)\n\t\t\t\tobjCssDesc[\"font-size\"] = g_options.textpanel_desc_font_size+\"px\";\n\t\t\t\n\t\t\tif(g_options.textpanel_desc_bold !== null){\n\t\t\t\t\n\t\t\t\tif(g_options.textpanel_desc_bold === true)\n\t\t\t\t\tobjCssDesc[\"font-weight\"] = \"bold\";\n\t\t\t\telse\n\t\t\t\t\tobjCssDesc[\"font-weight\"] = \"normal\";\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t//set additional css\n\t\t\tif(g_options.textpanel_css_title)\n\t\t\t\tobjCssDesc = jQuery.extend(objCssDesc, g_options.textpanel_css_description);\n\t\t\t\t\n\t\t\tg_objDesc.css(objCssDesc);\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * on item change, set the text\n\t */\n\tfunction onItemChange(){\n\t\tvar objItem = g_gallery.getSelectedItem();\n\t\tt.setText(objItem.title, objItem.description);\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//on item change, set the text in the slider.\n\t\tjQuery(g_gallery).on(g_gallery.events.ITEM_CHANGE, onItemChange);\n\t}\n\t\n\t\n\t/**\n\t * destroy the events\n\t */\n\tthis.destroy = function(){\n\t\tjQuery(g_gallery).off(g_gallery.events.ITEM_CHANGE);\n\t}\n\t\n\t/**\n\t * run the text panel\n\t */\n\tthis.run = function(){\n\t\t\n\t\tt.setSizeByParent();\n\t\t\n\t\tinitEvents();\n\t}\n\t\n\t/**\n\t * set panel size\n\t */\n\tthis.setPanelSize = function(panelWidth, panelHeight){\n\t\t\n\t\tg_temp.setInternalHeight = true;\n\t\t\n\t\tif(!panelHeight)\n\t\t\tvar panelHeight = 80;\t\t//some default number\n\t\telse\n\t\t\tg_temp.setInternalHeight = false;\n\t\t\n\t\tif(g_options.textpanel_height)\t\n\t\t\tpanelHeight = g_options.textpanel_height;\n\t\t\n\t\tg_objPanel.width(panelWidth);\n\t\tg_objPanel.height(panelHeight);\n\t\t\n\t\t//set background size\n\t\tif(g_objBG){\n\t\t\tg_objBG.width(panelWidth);\n\t\t\tg_objBG.height(panelHeight);\n\t\t}\n\t\t\n\t\t//set textwrapper size and position\n\t\tvar textWrapperWidth = panelWidth - g_options.textpanel_padding_left - g_options.textpanel_padding_right;\n\t\tvar textWrapperLeft = g_options.textpanel_padding_left;\n\t\t\n\t\tg_functions.setElementSizeAndPosition(g_objTextWrapper, textWrapperLeft, 0, textWrapperWidth, panelHeight);\n\t\t\n\t\t//set text width\n\t\tif(g_objTitle)\n\t\t\tg_objTitle.width(textWrapperWidth);\n\t\t\n\t\t//set description height\n\t\tif(g_objDesc)\n\t\t\tg_objDesc.width(textWrapperWidth);\n\t\t\n\t\tif(g_temp.isFirstTime == false)\n\t\t\tt.positionElements(false);\n\t}\n\t\n\t\n\t/**\n\t * set size by parent. the height is set to default meanwhile\n\t */\n\tthis.setSizeByParent = function(){\n\t\t\t\t\n\t\tvar objSize = g_functions.getElementSize(g_objParent);\n\t\tt.setPanelSize(objSize.width);\n\t}\n\t\n\t/**\n\t * set plain sext without other manipulations\n\t */\n\tthis.setTextPlain = function(title, description){\n\n\t\tif(g_objTitle)\n\t\t\tg_objTitle.html(title);\n\t\t\n\t\tif(g_objDesc)\n\t\t\tg_objDesc.html(description);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set html text\n\t */\n\tthis.setText = function(title, description){\n\t\t\n\t\tif(g_temp.isFirstTime == true){\n\t\t\t\n\t\t\tt.setTextPlain(title, description);\n\t\t\t\n\t\t\tg_temp.isFirstTime = false;\n\t\t\t\n\t\t\tt.positionElements(false);\n\t\t\n\t\t}else{\t\t//width animation\n\t\t\t\n\t\t\tg_objTextWrapper.stop().fadeTo(g_options.textpanel_fade_duration,0,function(){\n\t\t\t\t\n\t\t\t\tt.setTextPlain(title, description);\n\t\t\t\t\n\t\t\t\tt.positionElements(true);\n\t\t\t\t\n\t\t\t\tjQuery(this).fadeTo(g_options.textpanel_fade_duration,1);\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\t\n\t\n\t/**\n\t * position the panel\n\t */\n\tthis.positionPanel = function(customTop, customLeft){\n\t\t\n\t\tvar objCss = {};\n\t\t\n\t\tif(customTop !== undefined && customTop !== null){\n\t\t\tobjCss.top = customTop;\n\t\t\tobjCss.bottom = \"auto\";\n\t\t}else{\n\t\t\t\n\t\t\tswitch(g_options.textpanel_align){\n\t\t\t\tcase \"top\":\n\t\t\t\t\tobjCss.top = g_options.textpanel_margin + \"px\";\n\t\t\t\tbreak;\n\t\t\t\tcase \"bottom\":\n\t\t\t\t\tobjCss.top = \"auto\";\n\t\t\t\t\tobjCss.bottom = g_options.textpanel_margin + \"px\";\n\t\t\t\tbreak;\n\t\t\t\tcase \"middle\":\n\t\t\t\t\tobjCss.top = g_functions.getElementRelativePos(g_objPanel, \"middle\", g_options.textpanel_margin);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tif(customLeft !== undefined && customLeft !== null)\n\t\t\tobjCss.left = customLeft;\n\t\t\n\t\tg_objPanel.css(objCss);\n\t}\n\t\n\t\n\t/**\n\t * set custom options\n\t */\n\tthis.setOptions = function(objOptions){\n\t\t\n\t\tif(g_optionsPrefix)\n\t\t\tobjOptions = g_functions.convertCustomPrefixOptions(objOptions, g_optionsPrefix, \"textpanel\");\n\t\t\n\t\tg_options = jQuery.extend(g_options, objOptions);\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * get html element\n\t */\n\tthis.getElement = function(){\n\t\t\n\t\treturn(g_objPanel);\n\t}\n\t\n\t/**\n\t * get element size\n\t */\n\tthis.getSize = function(){\n\t\t\n\t\tvar objSize = g_functions.getElementSize(g_objPanel);\n\t\treturn(objSize);\n\t}\n\t\n\t\n\t/**\n\t * refresh panel size, position and contents\n\t */\n\tthis.refresh = function(toShow, noPosition, panelWidth, panelHeight){\n\t\t\n\t\tsetCss();\n\t\t\n\t\tif(!panelWidth)\n\t\t\tt.setSizeByParent();\n\t\telse\n\t\t\tt.setPanelSize(panelWidth, panelHeight);\n\t\t\n\t\tt.positionElements(false);\n\t\t\n\t\tif(noPosition !== true)\n\t\t\tt.positionPanel();\n\t\t\n\t\tif(toShow === true)\n\t\t\tt.show();\t\t\n\t}\n\t\n\t\n\t/**\n\t * hide the panel\n\t */\n\tthis.hide = function(){\n\t\t\n\t\tg_objPanel.hide();\n\t}\n\t\n\t/**\n\t * show the panel\n\t */\n\tthis.show = function(){\n\t\tg_objPanel.show();\n\t}\n\t\n\t/**\n\t * get options\n\t */\n\tthis.getOptions = function(){\n\t\treturn(g_options);\n\t}\n\t\n\t/**\n\t * get text panel option\n\t */\n\tthis.getOption = function(optionName){\n\t\t\n\t\tif(g_options.hasOwnProperty(optionName) == false)\n\t\t\treturn(null);\n\t\t\n\t\treturn(g_options[optionName]);\n\t}\n\t\n\t\n}\n\n/** -------------- UGZoomButtonsPanel class ---------------------*/\n\n/**\n * zoom buttons panel class\n */\nfunction UGZoomButtonsPanel(){\n\t\n\tvar t = this;\n\tvar g_objPanel, g_objParent, g_objButtonPlus, g_objButtonMinus, g_objButtonReturn;\n\tvar g_slider = new UGSlider;\n\tvar g_functions = new UGFunctions();\n\t\n\tvar g_options = {\n\t\tslider_zoompanel_skin: \"\"\t\t//skin of the zoom panel, if empty inherit from gallery skin\n\t};\n\t\n\tvar g_temp = {\n\t\t\n\t};\n\t\n\t\n\t/**\n\t * init the panel\n\t */\n\tthis.init = function(objSlider, customOptions){\n\t\t\n\t\tg_slider = objSlider;\n\t\t\n\t\tif(customOptions)\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\t\t\n\t}\n\t\n\t\n\t/**\n\t * append the bullets html to some parent\n\t */\n\tthis.appendHTML = function(objParent){\n\t\tg_objParent = objParent;\n\t\t\n\t\tvar html = \"
\";\n\t\t\n\t\t\thtml += \"
\";\n\t\t\thtml += \"
\";\n\t\t\thtml += \"
\";\n\t\t\n\t\thtml += \"
\";\n\t\t\n\t\tobjParent.append(html);\n\t\t\n\t\tg_objPanel = objParent.children(\".ug-zoompanel\");\n\t\tg_objButtonPlus = g_objPanel.children(\".ug-zoompanel-plus\");\n\t\tg_objButtonMinus = g_objPanel.children(\".ug-zoompanel-minus\");\n\t\tg_objButtonReturn = g_objPanel.children(\".ug-zoompanel-return\");\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set objects - use it instead insert html\n\t */\n\tthis.setObjects = function(objButtonPlus, objButtonMinus, objButtonReturn){\n\t\t\n\t\tg_objButtonPlus = objButtonPlus;\n\t\tg_objButtonMinus = objButtonMinus;\n\t\tg_objButtonReturn = objButtonReturn;\n\t\t\n\t\tif(g_objButtonMinus)\n\t\t\tg_objButtonMinus.addClass(\"ug-zoompanel-button-disabled\");\n\t\t\n\t\tif(g_objButtonReturn)\n\t\t\tg_objButtonReturn.addClass(\"ug-zoompanel-button-disabled\");\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * get buttons element\n\t*/\n\tthis.getElement = function(){\n\t\t\n\t\treturn(g_objPanel);\n\t}\n\t\n\t\n\t/**\n\t * check if the button disabled\n\t */\n\tfunction isButtonDisabled(objButton){\n\t\t\n\t\tif(!objButton)\n\t\t\treturn(true);\n\t\t\n\t\tif(objButton.hasClass(\"ug-zoompanel-button-disabled\"))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * disable some button\n\t */\n\tfunction disableButton(objButton){\n\t\t\n\t\tif(objButton)\n\t\t\tobjButton.addClass(\"ug-zoompanel-button-disabled\");\n\t}\n\t\n\t/**\n\t * enable some button\n\t */\n\tfunction enableButton(objButton){\n\t\t\n\t\tif(objButton)\n\t\t\tobjButton.removeClass(\"ug-zoompanel-button-disabled\");\t\t\n\t}\n\t\n\t\n\t/**\n\t * on zoom change\n\t */\n\tfunction onZoomChange(){\n\t\t\n\t\t//skip not image types\n\t\tif(g_slider.isCurrentSlideType(\"image\") == false)\n\t\t\treturn(true);\n\t\t\n\t\tvar isFit = g_slider.isCurrentSlideImageFit();\n\t\t\n\t\tif(isFit == true){\t\t//if fit, disable buttons\n\t\t\t\n\t\t\tif(isButtonDisabled(g_objButtonMinus) == false){\t\t\t\n\t\t\t\tdisableButton(g_objButtonMinus);\n\t\t\t\tdisableButton(g_objButtonReturn);\n\t\t\t}\n\t\t\t\n\t\t}else{\t//if not fit, enable minus buttons\n\t\t\t\n\t\t\tif(isButtonDisabled(g_objButtonMinus) == true){\n\t\t\t\tenableButton(g_objButtonMinus);\n\t\t\t\tenableButton(g_objButtonReturn);\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\t\n\t}\n\t\n\t/**\n\t * init zoompanel events\n\t */\n\tt.initEvents = function(){\n\t\t\n\t\t//add hover class on buttons\n\t\tg_functions.addClassOnHover(g_objButtonPlus, \"ug-button-hover\");\n\t\tg_functions.addClassOnHover(g_objButtonMinus, \"ug-button-hover\");\n\t\tg_functions.addClassOnHover(g_objButtonReturn, \"ug-button-hover\");\n\t\t\n\t\t//set buttons click events\n\t\t\n\t\tg_functions.setButtonOnClick(g_objButtonPlus, function(){\n\t\t\t\n\t\t\tif(isButtonDisabled(g_objButtonPlus) == true)\n\t\t\t\treturn(true);\n\t\t\t\n\t\t\tg_slider.zoomIn();\n\t\t});\n\t\t\n\t\tg_functions.setButtonOnClick(g_objButtonMinus, function(){\n\t\t\t\n\t\t\tif(isButtonDisabled(g_objButtonMinus) == true)\n\t\t\t\treturn(true);\n\t\t\t\n\t\t\tg_slider.zoomOut();\n\t\t});\n\t\t\n\t\tg_functions.setButtonOnClick(g_objButtonReturn, function(){\n\t\t\t\n\t\t\tif(isButtonDisabled(g_objButtonReturn) == true)\n\t\t\t\treturn(true);\n\t\t\t\n\t\t\tg_slider.zoomBack();\n\t\t});\n\t\t\t\t\n\t\t//on zoom change event\n\t\tjQuery(g_slider).on(g_slider.events.ZOOM_CHANGE,onZoomChange);\n\t\tjQuery(g_slider).on(g_slider.events.ITEM_CHANGED,onZoomChange);\n\t\n\t}\n\t\n\t\n}\n\n\n/** -------------- UgBullets class ---------------------*/\n\nfunction UGBullets(){\n\t\n\tvar t = this, g_numBullets = 0, g_gallery = new UniteGalleryMain();\n\tvar g_objBullets, g_objParent, g_activeIndex = -1, g_bulletWidth;\n\tvar g_functions = new UGFunctions();\n\t\n\tvar g_temp = {\n\t\tisInited:false\n\t};\n\t\n\tvar g_options = {\n\t\tbullets_skin: \"\",\t\t\t\t\t//bullets_skin: \"\"\t\t//skin of the bullets, if empty inherit from gallery skin\n\t\tbullets_addclass: \"\",\t\t\t\t\t//bullets object class addition\n\t\tbullets_space_between:-1\t\t\t//set the space between bullets. If -1 then will be set default space from the skins\n\t}\n\t\n\t\n\t/**\n\t * the events\n\t */\n\tthis.events = {\n\t\tBULLET_CLICK : \"bullet_click\"\n\t};\n\t\n\t/**\n\t * init the bullets\n\t */\n\tthis.init = function(gallery, customOptions, numBullets){\n\t\tg_gallery = gallery;\n\t\t\n\t\tif(numBullets)\n\t\t\tg_numBullets = numBullets;\n\t\telse\t\n\t\t\tg_numBullets = g_gallery.getNumItems();\n\t\t\n\t\tg_temp.isInited = true;\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\tif(g_options.bullets_skin == \"\")\n\t\t\tg_options.bullets_skin = g_options.gallery_skin;\n\t\t\n\t}\n\t\n\t/**\n\t * add bullets to the html\n\t */\n\tfunction setHtmlBullets(){\n\t\tvar html = \"\";\n\t\t\n\t\tvar addHtml = \"\";\n\t\tif(g_options.bullets_space_between != -1)\n\t\t\taddHtml = \" style='margin-left:\" + g_options.bullets_space_between + \"px'\";\n\t\t\n\t\tfor(var i=0; i< g_numBullets; i++){\n\t\t\tif(i == 0)\n\t\t\t\thtml += \"
\";\n\t\t\telse\n\t\t\t\thtml += \"
\";\n\t\t}\n\t\t\n\t\tg_objBullets.html(html);\n\t\t\n\t\t//set bullet width value\n\t\tif(!g_bulletWidth){\n\t\t\tvar objBullet = g_objBullets.find(\".ug-bullet:first-child\");\n\t\t\tif(objBullet.length)\n\t\t\t\tg_bulletWidth = objBullet.width();\n\t\t}\n\t}\n\n\t/**\n\t * get total bullets width\n\t */\n\tthis.getBulletsWidth = function(){\n\t\tif(g_numBullets == 0)\n\t\t\treturn(0);\n\t\t\n\t\tif(!g_bulletWidth)\n\t\t\treturn(0);\n\t\t\n\t\tvar totalWidth = g_numBullets*g_bulletWidth+(g_numBullets-1)*g_options.bullets_space_between;\n\t\treturn(totalWidth);\n\t}\n\t\n\t\n\t/**\n\t * append the bullets html to some parent\n\t */\n\tthis.appendHTML = function(objParent){\n\t\tg_objParent = objParent;\n\t\t\n\t\tvalidateInited();\n\t\tvar addClass = \"\";\n\t\tif(g_options.bullets_addclass != \"\")\n\t\t\taddClass = \" \" + g_options.bullets_addclass;\n\t\t\t\n\t\tvar html = \"
\";\n\t\t\n\t\thtml += \"
\";\n\t\t\n\t\tg_objBullets = jQuery(html);\n\t\t\n\t\tobjParent.append(g_objBullets);\n\t\t\n\t\tsetHtmlBullets();\n\t\t\n\t\tinitEvents();\n\t}\t\n\t\n\t\n\t/**\n\t * update number of bullets\n\t */\n\tthis.updateNumBullets = function(numBullets){\n\t\t\n\t\tg_numBullets = numBullets;\n\t\tsetHtmlBullets();\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * \n\t * on bullet click\n\t */\n\tfunction onBulletClick(objBullet){\n\t\t\t\t\n\t\t//filter not active only\n\t\tif(t.isActive(objBullet) == true)\n\t\t\treturn(true);\n\t\t\n\t\tvar index = objBullet.index();\n\t\t\t\n\t\tjQuery(t).trigger(t.events.BULLET_CLICK, index);\n\t}\n\t\n\t\n\t/**\n\t * init the bullets events\n\t * trigger bullet click event\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tvar objBullets = g_objBullets.children(\".ug-bullet\");\n\t\t\n\t\tg_functions.setButtonOnClick(objBullets, onBulletClick);\n\t\t\n\t\tobjBullets.on(\"mousedown mouseup\",function(event){\n\t\t\t//event.preventDefault();\n\t\t\treturn(false);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get the bullets element\n\t */\n\tthis.getElement = function(){\n\t\treturn g_objBullets;\n\t}\n\t\n\t\n\t/**\n\t * set some item active\n\t */\n\tthis.setActive = function(index){\n\t\tvalidateInited();\n\t\tvalidateIndex(index);\n\t\t\n\t\tvar children = g_objBullets.children(\".ug-bullet\");\n\t\tchildren.removeClass(\"ug-bullet-active\");\n\t\t\n\t\tvar bullet = jQuery(children[index]);\n\t\tbullet.addClass(\"ug-bullet-active\");\n\t\t\n\t\tg_activeIndex = index;\n\t}\n\n\t\n\t/**\n\t * check if the bullet is active\n\t */\n\tthis.isActive = function(index){\n\t\tvalidateIndex(index);\n\t\t\n\t\tif(typeof index != \"number\")\n\t\t\tvar objBullet = index;\n\t\telse{\n\t\t\tvar objBullet = g_objBullets.children(\".ug-bullet\")[index];\t\t\t\n\t\t}\n\t\t\n\t\tif(objBullet.hasClass(\"ug-bullet-active\"))\n\t\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * get bullets number\n\t */\n\tthis.getNumBullets = function(){\n\t\treturn(g_numBullets);\n\t}\n\t\n\t/**\n\t * validate bullets index\n\t */\n\tfunction validateIndex(index){\n\t\tif(index < 0 || index >= g_numBullets)\n\t\t\tthrow new Error(\"wrong bullet index: \" + index);\n\t}\n\t\n\t\n\t/**\n\t * validate that the bullets are inited\n\t */\n\tfunction validateInited(){\n\t\t\n\t\tif(g_temp.isInited == true)\n\t\t\treturn(true);\n\t\t\n\t\tthrow new Error(\"The bullets are not inited!\");\n\t}\n\t\n\t\n\t\n}\n\n/** -------------- UgProgressBar class ---------------------*/\n\nfunction UGProgressBar(){\n\t\n\tvar t = this, g_isInited = false;\n\tvar g_percent = 0, g_objBar, g_objInner, g_functions = new UGFunctions();\n\t\n\tvar g_options = {\n\t\tslider_progressbar_color:\"#ffffff\",\t\t\t//progress bar color\n\t\tslider_progressbar_opacity: 0.6,\t\t\t//progress bar opacity\n\t\tslider_progressbar_line_width: 5\t\t\t//progress bar line width\n\t}\n\t\n\t\n\t/**\n\t * put progress pie to some wrapper\n\t */\n\tthis.put = function(g_objWrapper, userOptions){\n\t\t\n\t\tif(userOptions)\n\t\t\tg_options = jQuery.extend(g_options, userOptions);\n\t\t\n\t\tg_objWrapper.append(\"
\");\n\t\tg_objBar = g_objWrapper.children(\".ug-progress-bar\");\n\t\tg_objInner = g_objBar.children(\".ug-progress-bar-inner\");\n\t\t\n\t\t//init the objects\n\t\tg_objInner.css(\"background-color\", g_options.slider_progressbar_color);\n\t\tg_objBar.height(g_options.slider_progressbar_line_width);\n\t\tg_objInner.height(g_options.slider_progressbar_line_width);\n\t\tg_objInner.width(\"0%\");\n\t\t\n\t\t//set opacity old way (because ie bug)\n\t\tvar opacity = g_options.slider_progressbar_opacity;\n\t\t\n\t\tvar objInnerHTML = g_objInner[0];\n\t\tobjInnerHTML.style.opacity = opacity;\n\t\tobjInnerHTML.style.filter = 'alpha(opacity=' + opacity*100 + ')';\n\t}\n\t\n\t\n\t/**\n\t * put the pie hidden\n\t */\n\tthis.putHidden = function(g_objWrapper, userOptions){\n\t\tt.put(g_objWrapper, userOptions);\n\t\tg_objBar.hide();\n\t}\n\t\n\t/**\n\t * get the bar object\n\t */\n\tthis.getElement = function(){\n\t\t\n\t\treturn(g_objBar);\n\t}\n\t\n\t/**\n\t * set progress bar size\n\t */\n\tthis.setSize = function(width){\n\t\t\n\t\tg_objBar.width(width);\n\t\tg_objInner.width(width);\n\t\tt.draw();\n\t}\n\t\n\t\n\t/**\n\t * set position\n\t */\n\tthis.setPosition = function(left, top, offsetLeft, offsetTop){\n\t\t\n\t\tg_functions.placeElement(g_objBar, left, top, offsetLeft, offsetTop);\n\t}\n\t\n\t\n\t/**\n\t * draw the progress bar\n\t */\n\tthis.draw = function(){\n\t\tvar innerWidth = g_percent * 100;\n\t\t\n\t\tg_objInner.width(innerWidth + \"%\");\n\t}\n\t\n\t\n\t/**\n\t * set and draw the progress\n\t */\n\tthis.setProgress = function(percent){\n\t\t\n\t\tg_percent = g_functions.normalizePercent(percent);\n\t\t\n\t\t//debugLine(g_percent, true);\n\t\t\n\t\tt.draw();\n\t}\n\t\n\t/**\n\t * get type string\n\t */\n\tthis.getType = function(){\n\t\treturn(\"bar\");\n\t}\n\t\n}\n\n/** -------------- UgProgressPie class ---------------------*/\n\nfunction UGProgressPie(){\n\t\n\tvar t = this, g_isInited = false;\n\tvar g_percent, g_objPie, g_functions = new UGFunctions();\n\t\n\tvar g_options = {\n\t\tslider_progresspie_type_fill: false,\t\t//false is stroke, true is fill - the progress pie type, stroke of fill\n\t\tslider_progresspie_color1: \"#B5B5B5\", \t\t//the first color of the progress pie\n\t\tslider_progresspie_color2: \"#E5E5E5\",\t\t//progress pie second color \n\t\tslider_progresspie_stroke_width: 6,\t\t\t//progress pie stroke width \n\t\tslider_progresspie_width: 30,\t\t\t\t//progess pie width\n\t\tslider_progresspie_height:30\t\t\t\t//progress pie height\n\t}\n\t\n\t\n\t/**\n\t * put progress pie to some wrapper\n\t */\n\tthis.put = function(g_objWrapper, userOptions){\n\t\t\n\t\tif(userOptions)\n\t\t\tg_options = jQuery.extend(g_options, userOptions);\n\t\t\t\n\t\tg_objWrapper.append(\"\");\n\t\tg_objPie = g_objWrapper.children(\".ug-canvas-pie\");\n\t}\n\t\n\t\n\t/**\n\t * put the pie hidden\n\t */\n\tthis.putHidden = function(g_objWrapper, userOptions){\n\t\tt.put(g_objWrapper, userOptions);\n\t\tdraw(0.1);\n\t\tg_objPie.hide();\n\t}\n\t\n\t\n\t/**\n\t * get jquery object\n\t */\n\tthis.getElement = function(){\n\t\treturn(g_objPie);\n\t}\n\t\n\t/**\n\t * set position\n\t */\n\tthis.setPosition = function(left, top){\n\t\t\n\t\tg_functions.placeElement(g_objPie, left, top);\n\t\t\n\t}\n\t\n\t/**\n\t * get the height and width of the object\n\t */\n\tthis.getSize = function(){\n\t\t\n\t\tvar obj = {\n\t\t\twidth: g_options.slider_progresspie_width,\n\t\t\theight: g_options.slider_progresspie_height\n\t\t};\n\t\t\n\t\treturn(obj);\n\t}\t\n\t\n\t/**\n\t * draw the progress pie\n\t */\n\tfunction draw(percent){\n\t\t\n\t\tif(!percent)\n\t\t\tvar percent = 0;\n\t\t\n\t\tvar radius = Math.min(g_options.slider_progresspie_width, g_options.slider_progresspie_height) / 2;\n\t\t\n\t\tvar ctx = g_objPie[0].getContext('2d');\n\t\t\n\t\t//init the context\n\t\tif(g_isInited == false){\n\t\t\t\n\t\t\tg_isInited = true;\n\t\t\t\n\t\t\tctx.rotate(Math.PI*(3/2));\n\t\t\tctx.translate(-2 * radius,0);\n\t\t}\t\t\n\t\t\n\t\tctx.clearRect(0,0,g_options.slider_progresspie_width, g_options.slider_progresspie_height);\n\t\t\n\t\tvar centerX = g_options.slider_progresspie_width / 2;\n\t\tvar centerY = g_options.slider_progresspie_height / 2;\n\t \n\t\t//draw main arc\n\t\tvar startPoint = 0;\n\t\tvar endPoint = percent * Math.PI * 2;\n\t\t\t\t\n\t \n\t\tif(g_options.slider_progresspie_type_fill == true){\t\t//fill\n\t\t\t\n\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(centerX, centerY); \n\t\t\t ctx.arc(centerX,centerY,radius,startPoint, endPoint);\n\t\t\t ctx.lineTo(centerX, centerY); \n\t\t\t \n\t\t\t ctx.fillStyle = g_options.slider_progresspie_color1;\n\t\t\t ctx.fill();\n\t\t ctx.closePath();\n\t\t \n\t\t}else{\t\t//stroke\n\t\t ctx.globalCompositeOperation = \"source-over\";\n\t\t\t\n\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(centerX, centerY); \n\t\t\t ctx.arc(centerX,centerY,radius,startPoint, endPoint);\n\t\t\t ctx.lineTo(centerX, centerY); \n\t\t\t \n\t\t\t ctx.fillStyle = g_options.slider_progresspie_color1;\n\t\t\t ctx.fill();\n\t\t\tctx.closePath();\n\t\t \n\t\t ctx.globalCompositeOperation = \"destination-out\";\n\t\t\t\n\t\t\tvar radius2 = radius - g_options.slider_progresspie_stroke_width;\n\t\t \n\t\t\tctx.beginPath();\n\t\t\t\t\t\t\t\t\n\t\t\t\tctx.moveTo(centerX, centerY); \n\t\t\t ctx.arc(centerX,centerY,radius2,startPoint, endPoint);\n\t\t\t ctx.lineTo(centerX, centerY); \n\t\t\t \n\t\t\t ctx.fillStyle = g_options.slider_progresspie_color1;\n\t\t\t ctx.fill();\n\t\t\t \n\t\t\tctx.closePath();\n\t\t}\n\t \n\t \n\t\t//draw rest arc (only on fill type):\n\t if(g_options.slider_progresspie_type_fill == true){\n\t\t\tstartPoint = endPoint;\n\t\t\tendPoint = Math.PI * 2;\n\t\t\tctx.beginPath();\n\t\t\t ctx.arc(centerX,centerY,radius,startPoint, endPoint);\n\t\t\t ctx.lineTo(centerX, centerY); \n\t\t ctx.fillStyle = g_options.slider_progresspie_color2;\n\t\t ctx.fill();\n\t\t ctx.closePath();\t \t\n\t }\n\t \n\t}\n\t\n\t\n\t/**\n\t * set progress (0-1)\n\t */\n\tthis.setProgress = function(percent){\n\t\t\n\t\tpercent = g_functions.normalizePercent(percent);\n\t\t\n\t\tg_percent = percent;\n\t\tdraw(percent);\n\t}\n\t\n\t/**\n\t * get type string\n\t */\n\tthis.getType = function(){\n\t\treturn(\"pie\");\n\t}\n\t\n}\n\n/**f\n * touch thumbs control class\n * addon to strip gallery\n */\nfunction UGTouchSliderControl(){\n\t\n\tvar g_objSlider, g_objInner, g_parent = new UGSlider();\n\tvar g_objParent, g_options, t=this;\n\t\n\tvar g_functions = new UGFunctions();\n\t\n\t\n\tvar g_options = {\n\t\t slider_transition_continuedrag_speed: 250,\t\t\t\t//the duration of continue dragging after drag end\n\t\t slider_transition_continuedrag_easing: \"linear\",\t\t//easing function of continue dragging animation\n\t\t slider_transition_return_speed: 300,\t\t\t\t\t//the duration of the \"return to place\" animation\n\t\t slider_transition_return_easing: \"easeInOutQuad\"\t\t//easing function of the \"return to place\" animation\n\t};\n\t\n\tvar g_temp = {\n\t\ttouch_active: false,\t\t\n\t\tstartMouseX: 0,\t\t\n\t\tstartMouseY: 0,\n\t\tlastMouseX: 0,\n\t\tlastMouseY: 0,\n\t\tstartPosx:0, \n\t\tstartTime:0,\n\t\tisInitDataValid:false,\n\t\tslides: null,\n\t\tlastNumTouches:0,\n\t\tisDragging: false,\n\t\tstoredEventID: \"touchSlider\",\n\t\tvideoStartX: 0,\n\t\tisDragVideo: false,\n\t\tvideoObject: null\n\t};\n\t\n\t\n\t/**\n\t * get diff inner object position from current item pos\n\t */\n\tfunction getDiffPosFromCurrentItem(slides){\n\t\t\n\t\tif(!slides)\n\t\t\tvar slides = g_parent.getSlidesReference();\n\t\t\n\t\tvar posCurrent = g_functions.getElementSize(slides.objCurrentSlide);\n\t\tvar inPlaceX = -posCurrent.left;\n\t\tvar objInnerSize = g_functions.getElementSize(g_objInner);\n\t\tvar diffPos = inPlaceX - objInnerSize.left;\n\t\t\n\t\treturn(diffPos);\n\t}\n\t\n\t/**\n\t * check if the movement that was held is valid for slide change\n\t */\n\tfunction isMovementValidForChange(){\n\t\t\n\t\tvar slides = g_parent.getSlidesReference();\n\n\t\t//check position, if more then half, move\n\t\tvar diffPos = getDiffPosFromCurrentItem(slides);\n\t\t\n\t\tvar breakSize = Math.round(slides.objCurrentSlide.width() * 3 / 8);\n\t\t\t\t\n\t\tif(Math.abs(diffPos) >= breakSize)\n\t\t\treturn(true);\n\t\t\t\t\n\t\t//check gesture, if vertical mostly then not move\n\t\tvar diffX = Math.abs(g_temp.lastMouseX - g_temp.startMouseX);\n\t\tvar diffY = Math.abs(g_temp.lastMouseY - g_temp.startMouseY);\n\t\t\n\t\t//debugLine(\"diffx: \" + diffX, true, true);\n\t\t\n\t\tif(diffX < 20)\n\t\t\treturn(false);\n\t\t\n\t\t//if(diffY >= diffX)\n\t\t\t//return(false);\n\t\t\t\t\n\t\t//check time. Short time always move\n\t\tvar endTime = jQuery.now();\n\t\tvar diffTime = endTime - g_temp.startTime;\n\t\t\n\t\t//debugLine(\"time: \" + diffTime, true);\n\t\t\n\t\tif(diffTime < 500)\n\t\t\treturn(true);\n\t\t\n\t\t\t\t\t\n\t\treturn(false);\n\t}\n\n\t/**\n\t * check tab event occured\n\t * invokes on touchend event on the slider object\n\t */\n\tthis.isTapEventOccured = function(event){\n\t\t\n\t\t//validate one touch\n\t\tvar arrTouches = g_functions.getArrTouches(event);\n\t\tvar numTouches = arrTouches.length;\n\t\t\t\n\t\tif(numTouches != 0 || g_temp.lastNumTouches != 0){\n\t\t\tg_temp.lastNumTouches = numTouches;\n\t\t\treturn(false);\n\t\t}\n\t\t\t\n\t\tg_temp.lastNumTouches = numTouches;\n\t\t\t\t\n\t\tvar slides = g_parent.getSlidesReference();\n\n\t\t//check position, if more then half, move\n\t\tvar diffPos = getDiffPosFromCurrentItem(slides);\n\t\t\n\t\t//check gesture, if vertical mostly then not move\n\t\tvar diffX = Math.abs(g_temp.lastMouseX - g_temp.startMouseX);\n\t\tvar diffY = Math.abs(g_temp.lastMouseY - g_temp.startMouseY);\n\t\t\n\t\t//check by time\n\t\tvar endTime = jQuery.now();\n\t\tvar diffTime = endTime - g_temp.startTime;\n\t\t\n\t\t//combine move and time\n\t\tif(diffX < 20 && diffY < 50 && diffTime < 500)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * return the item to place\n\t */\n\tfunction returnToPlace(slides){\n\t\t\n\t\tif(g_parent.isInnerInPlace() == true)\n\t\t\treturn(false);\n\t\t\t\t\t\t\n\t\t//trigger before return event\n\t\tg_objParent.trigger(g_parent.events.BEFORE_RETURN);\n\t\t\n\t\tif(!slides)\n\t\t\tvar slides = g_parent.getSlidesReference();\n\t\t\n\t\tvar posCurrent = g_functions.getElementSize(slides.objCurrentSlide);\n\t\tvar destX = -posCurrent.left;\n\t\t\t\t\n\t\t//animate objects\t\t\n\t\tg_objInner.animate({left:destX+\"px\"},{\n\t\t\tduration: g_options.slider_transition_return_speed,\n\t\t\teasing: g_options.slider_transition_continuedrag_easing,\n\t\t\tqueue: false,\n\t\t\tprogress: function(animation, number, remainingMS){\n\t\t\t\t\t\t\t\t\n\t\t\t\t//check drag video\n\t\t\t\tif(g_temp.isDragVideo == true){\n\t\t\t\t\tvar objSize = g_functions.getElementSize(g_objInner);\n\t\t\t\t\tvar innerX = objSize.left;\n\t\t\t\t\t\n\t\t\t\t\tvar posDiff = innerX - destX;\n\t\t\t\t\t\n\t\t\t\t\tvar videoPosX = g_temp.videoStartX + posDiff;\n\t\t\t\t\tg_temp.videoObject.css(\"left\", videoPosX);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\tcomplete: function(){\n\t\t\t\tg_objParent.trigger(g_parent.events.AFTER_RETURN);\n\t\t\t}\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * \n\t * change the item to given direction\n\t */\n\tfunction changeItem(direction){\n\t\t\n\t\tg_parent.getVideoObject().hide();\n\t\tg_parent.switchSlideNums(direction);\n\t\tg_parent.placeNabourItems();\n\n\t}\n\t\n\t/**\n\t * continue the dragging by changing the slides to the right place.\n\t */\n\tfunction continueSlideDragChange(){\n\t\t\n\t\t//get data\n\t\tvar slides = g_parent.getSlidesReference();\n\t\t\n\t\tvar diffPos = getDiffPosFromCurrentItem(slides);\n\t\t\n\t\tif(diffPos == 0)\n\t\t\treturn(false);\n\t\t\n\t\tvar direction = (diffPos > 0) ? \"left\" : \"right\";\n\t\t\t\n\t\tvar isReturn = false;\n\t\t\t\n\t\tswitch(direction){\n\t\t\tcase \"right\":\t//change to prev item\n\t\t\t\t\n\t\t\t\tif( g_parent.isSlideHasItem(slides.objPrevSlide) ){\n\t\t\t\t\t\n\t\t\t\t\tvar posPrev = g_functions.getElementSize(slides.objPrevSlide);\n\t\t\t\t\tvar destX = -posPrev.left;\n\t\t\t\t\t\n\t\t\t\t}else\t//return current item\n\t\t\t\t\tisReturn = true;\n\t\t\t\t\n\t\t\tbreak;\t\n\t\t\tcase \"left\":\t\t//change to next item\n\t\t\t\t\n\t\t\t\tif( g_parent.isSlideHasItem(slides.objNextSlide) ){\n\t\t\t\t\t\n\t\t\t\t\tvar posNext = g_functions.getElementSize(slides.objNextSlide);\n\t\t\t\t\tvar destX = -posNext.left;\n\t\t\t\t\t\n\t\t\t\t}else\t\t\t\t\t\n\t\t\t\t\tisReturn = true;\t\t\t\t\n\t\t\tbreak;\n\t }\n\t\t\n\t\t\n\t\tif(isReturn == true){\n\t\t\treturnToPlace(slides);\n\t\t\t\n\t\t}else{\n\t\t\t\t\t\t\n\t\t\t//animate objects\n\t\t\tg_objInner.stop().animate({left:destX+\"px\"},{\n\t\t\t\tduration: g_options.slider_transition_continuedrag_speed,\n\t\t\t\teasing: g_options.slider_transition_continuedrag_easing,\n\t\t\t\tqueue: false,\n\t\t\t\tprogress: function(){\n\t\t\t\t\t\n\t\t\t\t\t//check drag video\n\t\t\t\t\tif(g_temp.isDragVideo == true){\n\t\t\t\t\t\tvar objSize = g_functions.getElementSize(g_objInner);\n\t\t\t\t\t\tvar innerX = objSize.left;\n\t\t\t\t\t\tvar posDiff = innerX - g_temp.startPosx;\n\t\t\t\t\t\tvar videoPosX = g_temp.videoStartX + posDiff;\n\t\t\t\t\t\tg_temp.videoObject.css(\"left\", videoPosX);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\talways:function(){\n\t\t\t\t\tchangeItem(direction);\n\t\t\t\t\tg_objParent.trigger(g_parent.events.AFTER_DRAG_CHANGE);\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t\t\t\n\t\t\n\t}\n\n\t\n\t/**\n\t * handle slider drag on mouse drag\n\t */\n\tfunction handleSliderDrag(event){\n\t\t\n\t\tvar diff = g_temp.lastMouseX - g_temp.startMouseX;\n\t\t\n\t\tif(diff == 0)\n\t\t\treturn(true);\n\t\t\n\t\tvar direction = (diff < 0) ? \"left\":\"right\";\n\t\t\n\t\tvar objZoomSlider = g_parent.getObjZoom();\n\t\t\n\t\t//don't drag if the zoom panning enabled\n\t\t//store init position after image zoom pan end\n\t\tif(objZoomSlider){\n\t\t\t\n\t\t\tvar isPanEnabled = objZoomSlider.isPanEnabled(event,direction);\n\t\t\t\t\t\t\n\t\t\tif(isPanEnabled == true){\n\t\t\t\tg_temp.isInitDataValid = false;\n\t\t\t\treturn(true);\t\t\t\t\n\t\t\t}else{\n\t\t\t\t\n\t\t\t\tif(g_temp.isInitDataValid == false){\n\t\t\t\t\tstoreInitTouchData(event);\n\t\t\t\t\treturn(true);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\t//set inner div position\n\t\tvar currentPosx = g_temp.startPosx + diff;\n\t\t\n\t\t//check out of borders and slow down the motion:\n\t\tif(diff > 0 && currentPosx > 0)\n\t\t\tcurrentPosx = currentPosx / 3;\t\t\n\t\t\n\t\telse if(diff < 0 ){\n\t\t\t\n\t\t\tvar innerEnd = currentPosx + g_objInner.width();\n\t\t\tvar sliderWidth = g_objSlider.width();\n\t\t\t\n\t\t\tif( innerEnd < sliderWidth ){\n\t\t\t\tcurrentPosx = g_temp.startPosx + diff/3;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(g_temp.isDragging == false){\n\t\t\tg_temp.isDragging = true;\n\t\t\tg_objParent.trigger(g_parent.events.START_DRAG);\n\t\t}\n\t\t\t\t\n\t\tg_objInner.css(\"left\", currentPosx+\"px\");\n\t\t\n\t\t//drag video\n\t\tif(g_temp.isDragVideo == true){\n\t\t\tvar posDiff = currentPosx - g_temp.startPosx;\n\t\t\tvar videoPosX = g_temp.videoStartX + posDiff;\n\t\t\t\n\t\t\tg_temp.videoObject.css(\"left\", videoPosX);\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * store init touch position\n\t */\n\tfunction storeInitTouchData(event){\n\t\t\n\t\tvar mousePos = g_functions.getMousePosition(event);\n\t\t\n\t\tg_temp.startMouseX = mousePos.pageX;\n\t\t\n\t\t//debugLine(\"startx:\" + g_temp.startMouseX, true, true);\n\t\t\n\t\tg_temp.startMouseY = mousePos.pageY;\n\t\t\n\t\tg_temp.lastMouseX = g_temp.startMouseX;\n\t\tg_temp.lastMouseY = g_temp.startMouseY;\n\t\tg_temp.startTime = jQuery.now();\n\t\t\n\t\tvar arrTouches = g_functions.getArrTouches(event);\t\t\n\t\tg_temp.startArrTouches = g_functions.getArrTouchPositions(arrTouches);\n\t\t\n\t\tvar objPos = g_functions.getElementSize(g_objInner);\n\t\t\n\t\tg_temp.startPosx = objPos.left;\n\t\t\n\t\tg_temp.isInitDataValid = true;\n\t\t\n\t\t//check if video object need to be dragged\n\t\tg_temp.isDragVideo = false;\n\t\t\t\t\t\n\t\t\n\t\tg_functions.storeEventData(event, g_temp.storedEventID);\n\t}\n\t\n\t/**\n\t * disable touch active\n\t */\n\tfunction disableTouchActive(who){\n\t\t\n\t\tg_temp.touch_active = false;\n\t\t\n\t\t//debugLine(\"disable: \" + who, true, true);\n\t}\n\t\n\t/**\n\t * enable the touch active\n\t */\n\tfunction enableTouchActive(who, event){\n\t\t\n\t\tg_temp.touch_active = true;\n\t\tstoreInitTouchData(event);\n\t\t\n\t\t//debugLine(\"enable: \" + who, true, true);\n\t}\n\n\t\n\t/**\n\t * on touch slide start\n\t * \n\t */\n\tfunction onTouchStart(event){\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\tg_temp.isDragging = false;\n\t\t\n\t\t//debugLine(\"touchstart\", true, true);\n\t\t\n\t\t//check if the slides are changing from another event.\n\t\tif(g_parent.isAnimating() == true){\n\t\t\tg_objInner.stop(true, true);\n\t\t}\n\t\t\n\t\t//check num touches\n\t\tvar arrTouches = g_functions.getArrTouches(event);\n\t\tif(arrTouches.length > 1){\n\t\t\t\n\t\t\tif(g_temp.touch_active == true){\n\t\t\t\tdisableTouchActive(\"1\");\n\t\t\t}\n\t\t\t\n\t\t\treturn(true);\n\t\t}\n\t\t\t\t\t\t\n\t\tif(g_temp.touch_active == true){\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tenableTouchActive(\"1\", event);\n\t\t\n\t}\n\t\n\n\t/**\n\t * \n\t * on touch move event\n\t */\n\tfunction onTouchMove(event){\n\t\t\n\t\tif(g_temp.touch_active == false)\n\t\t\treturn(true);\n\t\t\n\t\t//detect moving without button press\n\t\tif(event.buttons == 0){\n\t\t\tdisableTouchActive(\"2\");\n\t\t\t\n\t\t\tcontinueSlideDragChange();\n\t\t\t\t\t\t\n\t\t\treturn(true);\n\t\t}\n\n\t\tg_functions.updateStoredEventData(event, g_temp.storedEventID);\n\t\t\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\tvar mousePos = g_functions.getMousePosition(event);\n\t\tg_temp.lastMouseX = mousePos.pageX;\n\t\tg_temp.lastMouseY = mousePos.pageY;\n\t\t\t\t\n\t\t//debugLine(\"lastX:\" + g_temp.lastMouseX, true, true);\n\t\t\n\t\tvar scrollDir = null;\n\t\t\n\t\tif(g_options.slider_vertical_scroll_ondrag == true)\n\t\t\tscrollDir = g_functions.handleScrollTop(g_temp.storedEventID);\n\t\t\n\t\tif(scrollDir !== \"vert\")\n\t\t\thandleSliderDrag(event);\n\t\t\t\n\t}\n\t\n\t/**\n\t * on touch end event\n\t */\n\tfunction onTouchEnd(event){\n\t\t\n\t\t//debugLine(\"touchend\", true, true);\n\t\t\n\t\tvar arrTouches = g_functions.getArrTouches(event);\n\t\tvar numTouches = arrTouches.length;\n\t\tvar isParentInPlace = g_parent.isInnerInPlace();\n\t\t\n\t\tif(isParentInPlace == true && g_temp.touch_active == false && numTouches == 0){\n\t\t\t\n\t\t\treturn(true);\n\t\t}\n\t\t\t\t\n\t\tif(numTouches == 0 && g_temp.touch_active == true){\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tdisableTouchActive(\"3\");\n\t\t\t\n\t\t\tvar isValid = false;\n\t\t\t\n\t\t\tvar wasVerticalScroll = g_functions.wasVerticalScroll(g_temp.storedEventID);\n\t\t\t\n\t\t\tif(wasVerticalScroll == false)\n\t\t\t\tisValid = isMovementValidForChange();\n\t\t\t\t\t\t\n\t\t\tif(isValid == true)\n\t\t\t\tcontinueSlideDragChange();\t\t//change the slide\n\t\t\telse\n\t\t\t\treturnToPlace();\t//return the inner object to place (if not in place)\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(numTouches == 1 && g_temp.touch_active == false){\n\t\t\t\t\t\t\t\t\n\t\t\t\tenableTouchActive(\"2\",event);\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t}\n\t\t\t\t\t\n\t}\n\n\n\t/**\n\t * init touch events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//slider mouse down - drag start\n\t\tg_objSlider.bind(\"mousedown touchstart\",onTouchStart);\n\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").bind(\"mousemove touchmove\",onTouchMove);\n\t\t\n\t\t//on body mouse up - drag end\n\t\tjQuery(window).add(\"body\").bind(\"mouseup touchend\", onTouchEnd);\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(objSlider, customOptions){\n\t\t\n\t\tg_parent = objSlider;\n\t\tg_objParent = jQuery(g_parent);\n\t\tg_objects = objSlider.getObjects();\n\t\t\t\t\n\t\tg_objSlider = g_objects.g_objSlider;\n\t\tg_objInner = g_objects.g_objInner;\n\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * get last mouse position\n\t */\n\tthis.getLastMousePos = function(){\n\t\tvar obj = {\n\t\t\tpageX: g_temp.lastMouseX,\n\t\t\tpageY: g_temp.lastMouseY\n\t\t};\n\t\t\n\t\treturn(obj);\n\t}\n\t\n\t\n\t/**\n\t * is touch active\n\t */\n\tthis.isTouchActive = function(){\n\t\t\n\t\treturn(g_temp.touch_active);\n\t\t\n\t}\n\t\n\t\n}\n/**\n * touch thumbs control class\n * addon to strip gallery\n */\nfunction UGZoomSliderControl(){\n\t\n\tvar g_objSlider, g_objInner, g_parent = new UGSlider(), g_objParent;\n\t\n\tvar g_functions = new UGFunctions();\n\t\n\tvar t = this;\n\t\n\tvar g_options = {\n\t\tslider_zoom_step: 1.2,\t\t\t\t\t\t\t//the step of zooming with mouse wheel or zoom button\n\t\tslider_zoom_max_ratio: 6,\t\t\t\t\t\t//max zoom ratio\n\t\tslider_zoom_return_pan_duration: 400,\t\t\t//the return from pan animation duration \n\t\tslider_zoom_return_pan_easing: \"easeOutCubic\"\t//the return from pan wasing function\n\t};\n\t\n\tvar g_temp = {\n\t\tisPanActive:false,\n\t\tstartMouseX:0,\n\t\tstartMouseY:0,\n\t\tlastMouseX:0,\n\t\tlastMouseY:0,\n\t\tstartImageX:0,\n\t\tstartImageY:0,\n\t\tpanXActive:false,\n\t\tpanYActive:false,\n\t\tobjImage:null,\n\t\tobjImageSize:null,\n\t\tobjParent:null,\n\t\tobjParentSize:null,\n\t\tobjSlide:null,\n\t\tstoreImageLastTime:0,\n\t\t\n\t\tisZoomActive: false,\n\t\tstartDistance:0,\n\t\tstartMiddlePoint:null,\n\t\timageOrientPoint:null,\n\t\tobjFitImageSize:null,\n\t\tisZoomedOnce:false\n\t};\n\n\t\n\t/**\n\t * init the object\n\t */\n\tfunction initObject(objSlider, customOptions){\n\t\t\n\t\tg_parent = objSlider;\n\t\tg_objParent = jQuery(g_parent);\n\t\tg_objects = objSlider.getObjects();\n\t\tg_objSlider = g_objects.g_objSlider;\n\t\tg_objInner = g_objects.g_objInner;\n\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * get fit image to slider scale mode\n\t * the fill become fit\n\t */\n\tfunction getFitScaleMode(){\n\t\t\n\t\tvar scaleMode = g_parent.getScaleMode();\n\t\t\n\t\tif(scaleMode != \"down\")\n\t\t\tscaleMode = \"fit\";\n\t\t\n\t\treturn(scaleMode);\n\t}\n\t\n\t\n\t/**\n\t * cache current slide and image\n\t */\n\tfunction storeCurrentImage(){\t\t\n\t\t\n\t\t//prevent continious image storring\n\t\tvar currentTime = jQuery.now();\n\t\tvar diff = currentTime - g_temp.storeImageLastTime;\n\t\t\n\t\tif(diff < 20)\n\t\t\treturn(false);\n\t\t\n\t\tvar slides = g_parent.getSlidesReference();\n\t\tg_temp.objSlide = slides.objCurrentSlide;\n\t\tg_temp.objImage = slides.objCurrentSlide.find(\"img\");\n\t\t\n\t\tif(g_temp.objImage.length == 0)\n\t\t\treturn(false);\n\t\t\t\n\t\tg_temp.objImageSize = g_functions.getElementSize(g_temp.objImage);\n\t\tg_temp.objParent = g_temp.objImage.parent();\n\t\tg_temp.objParentSize = g_functions.getElementSize(g_temp.objParent);\n\t\t\n\t\tvar scaleMode = getFitScaleMode();\n\t\t\n\t\tobjPadding = g_parent.getObjImagePadding();\n\t\t\n\t\tg_temp.objFitImageSize = g_functions.getImageInsideParentDataByImage(g_temp.objImage, scaleMode, objPadding);\n\t\t\n\t\tvar currentTime = jQuery.now();\n\t\tg_temp.storeImageLastTime = currentTime;\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n\t/**\n\t * zoom current image\n\t * mode: in, out, back\n\t */\n\tfunction zoomCurrentImage(mode, mousePos){\n\t\t\n\t\tvar slides = g_parent.getSlidesReference();\n\t\tvar objImage = slides.objCurrentSlide.find(\"img\");\n\t\tvar scaleMode = getFitScaleMode();\n\t\t\n\t\tg_objParent.trigger(g_parent.events.ZOOM_START);\n\t\t\n\t\t//flag if the images zoomed\n\t\tvar isZoomed = true;\n\t\t\n\t\tvar objPadding = g_parent.getObjImagePadding();\n\t\t\t\t\n\t\tif(mode == \"back\"){\t\n\t\t\tvar objOriginalSize = g_functions.getImageOriginalSize(objImage);\n\t\t\tg_functions.scaleImageFitParent(objImage, objOriginalSize.width, objOriginalSize.height, scaleMode, objPadding);\n\t\t}\n\t\telse{\t\t\t\n\t\t\tvar zoomIn = (mode == \"in\")?true:false;\n\t\t\t\n\t\t\tisZoomed = g_functions.zoomImageInsideParent(objImage, zoomIn, g_options.slider_zoom_step, mousePos, scaleMode, g_options.slider_zoom_max_ratio, objPadding);\n\t\t}\n\t\t\n\t\tif(isZoomed == true){\n\t\t\tg_objParent.trigger(g_parent.events.ZOOMING);\n\t\t\tg_objParent.trigger(g_parent.events.ZOOM_CHANGE);\n\t\t\tg_objParent.trigger(g_parent.events.ZOOM_END);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\tfunction ____________PAN_____________(){};\n\t\n\t\n\t/**\n\t * check if pan is posible for the current image\n\t * check if the image is bigger then the parent\n\t */\n\tfunction isPanPosible(objImage, event, stictTouchesCheck){\n\t\t\n\t\t//check num touches, strict means that even if 0 - pan not posible\n\t\tvar arrTouches = g_functions.getArrTouches(event);\n\t\t\n\t\tif(stictTouchesCheck === true){\n\t\t\t\n\t\t\tif(arrTouches.length != 1)\n\t\t\t\treturn(false);\t\t\t\n\t\t}else{\n\t\t\tif(arrTouches.length > 1)\n\t\t\t\treturn(false);\t\t\t\n\t\t}\n\t\t\n\t\tif(g_functions.isElementBiggerThenParent(objImage))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * store pan values\n\t */\n\tfunction storePanInitValues(event){\n\t\t\n\t\tvar mousePos = g_functions.getMousePosition(event);\n\t\t\n\t\tg_temp.startMouseX = mousePos.pageX;\n\t\tg_temp.startMouseY = mousePos.pageY;\n\t\t\n\t\tg_temp.lastMouseX = g_temp.startMouseX;\n\t\tg_temp.lastMouseY = g_temp.startMouseY;\n\t\t\n\t\tg_temp.startImageX = g_temp.objImageSize.left;\n\t\tg_temp.startImageY = g_temp.objImageSize.top;\n\t\t\n\t\tg_temp.panXActive = (g_temp.objImageSize.width > g_temp.objParentSize.width);\n\t\tg_temp.panYActive = (g_temp.objImageSize.height > g_temp.objParentSize.height);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * check pan start, and start if posible\n\t */\n\tfunction startPan(event){\n\t\t\t\t\n\t\tg_temp.isPanActive = true;\n\t\tstorePanInitValues(event);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * pan the image\n\t */\n\tfunction panImage(event){\n\t\t\n\t\tif(g_temp.objImage == undefined || g_temp.objImage.length == 0)\n\t\t\treturn(true);\n\t\t\n\t\tvar mousePos = g_functions.getMousePosition(event);\n\t\t\n\t\tvar diffX = mousePos.pageX - g_temp.startMouseX;\n\t\tvar diffY = mousePos.pageY - g_temp.startMouseY;\n\t\t\n\t\t//get active direction\n\t\tvar diffLastX = mousePos.pageX - g_temp.lastMouseX;\n\t\tvar diffLastY = mousePos.pageY - g_temp.lastMouseY;\n\t\t\n\t\tvar directionX = (diffLastX < 0) ? \"left\":\"right\";\n\t\tvar directionY = (diffLastY < 0) ? \"up\":\"down\";\n\t\t\n\t\tg_temp.lastMouseX = mousePos.pageX;\n\t\tg_temp.lastMouseY = mousePos.pageY;\n\t\t\n\t\tvar posImage = g_functions.getElementSize(g_temp.objImage);\n\t\t\n\t\t//var imageX = g_temp.startImageX + diffX;\n\t\t//var imageY = g_temp.startImageY + diffY;\n\t\t\t\t\n\t\t\n\t\t//slow down if no pan available in this point\n\t\t//slow down y\n\t\t\n\t\tif(g_temp.panYActive == false){\n\t\t\t\n\t\t\tdiffLastY = 0;\n\t\t\t\n\t\t}else{\t\t//zoom enabled\n\t\t\t\n\t\t\tif(directionY == \"down\" && posImage.top > 0){\t\t\t\n\t\t\t\t\n\t\t\t\tdiffLastY = diffLastY / 3;\t\t\t\t\n\t\t\t\t\n\t\t\t}else if(directionY == \"up\" && posImage.bottom < g_temp.objParentSize.height){\n\t\t\t\t\n\t\t\t\tdiffLastY = diffLastY / 3;\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\t//slow down x (only if the pan enabled)\n\t\tif(g_temp.panXActive == false || g_parent.isInnerInPlace() == false){\n\t\t\t\n\t\t\tdiffLastX = 0;\n\t\t\n\t\t}else{\t//zoom enabled\n\t\t\t\n\t\t\tif(directionX == \"right\" && posImage.left > 0){\t\t\t\t\n\t\t\t\tdiffLastX = diffLastX / 3;\t\t\t\t\n\t\t\t}\n\t\t\telse if(directionX == \"left\" && posImage.right < g_temp.objParentSize.width){\n\t\t\t\tdiffLastX = diffLastX / 3;\n\t\t\t}\n\t }\n\t\t\n\t\tvar imageX = posImage.left + diffLastX;\n\t\tvar imageY = posImage.top + diffLastY;\n\t\t\n\t\t\n\t\tg_functions.placeElement(g_temp.objImage, imageX, imageY);\n\t\t\n\t}\n\t\n\t\n\t\n\t\n\t/**\n\t * return the image to place if it's out of borders\n\t */\n\tfunction checkReturnAfterPan(){\n\t\t\t\t\n\t\tvar isReturnX = false, isReturnY = false, newX = 0, newY = 0;\n\t\tvar objSize = g_functions.getElementSize(g_temp.objImage);\n\t\tvar objImagePadding = g_parent.getObjImagePadding();\n\t\t\t\t\n\t\tvar objCenterPos = g_functions.getElementCenterPosition(g_temp.objImage, objImagePadding);\n\t\t\n\t\tg_temp.panXActive = (g_temp.objImageSize.width > g_temp.objParentSize.width);\n\t\tg_temp.panYActive = (g_temp.objImageSize.height > g_temp.objParentSize.height);\n\t\t\t\t\n\t\t\n\t\tif(g_temp.panYActive == true){\n\t\t\t\n\t\t\tif(objSize.top > 0){\t\t//off limit top\n\t\t\t\t\n\t\t\t\tnewY = 0;\n\t\t\t\tisReturnY = true;\n\t\t\t\t\n\t\t\t}else if(objSize.bottom < g_temp.objParentSize.height){\t\t//off limit bottom\n\t\t\t\t\n\t\t\t\tnewY = g_temp.objParentSize.height - objSize.height;\n\t\t\t\tisReturnY = true;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}else{\t\t//pan not active y - return to center\n\t\t\t\n\t\t\tif(objSize.top != objCenterPos.top){\n\t\t\t\tisReturnY = true;\n\t\t\t\tnewY = objCenterPos.top;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//check return x to place\n\t\tif(g_temp.panXActive == true){\n\t\t\t\n\t\t\tif(objSize.left > 0){\t\t//off limit left\n\t\t\t\t\n\t\t\t\tnewX = 0;\n\t\t\t\tisReturnX = true;\n\t\t\t\t\n\t\t\t}else if(objSize.right < g_temp.objParentSize.width){\t\t//off limit right\n\t\t\t\t\t\t\t\t\n\t\t\t\tnewX = g_temp.objParentSize.width - objSize.width;\n\t\t\t\tisReturnX = true;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}else{\t\t//pan not active x - return to center\n\t\t\t\n\t\t//\tdebugLine(\"not active\", true);\n\t\t\t\n\t\t\tif(objSize.left != objCenterPos.left){\n\t\t\t\tisReturnX = true;\n\t\t\t\tnewX = objCenterPos.left;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\t//do the animation\n\t\tvar objCss = {};\n\t\tif(isReturnY == true)\n\t\t\tobjCss.top = newY + \"px\";\n\t\t\n\t\tif(isReturnX == true)\n\t\t\tobjCss.left = newX + \"px\";\n\t\t\n\t\t\n\t\tif(isReturnY == true || isReturnX == true){\n\t\t\t\t\t\t\n\t\t\tg_temp.objImage.animate(objCss,{\n\t\t\t\tduration: g_options.slider_zoom_return_pan_duration,\n\t\t\t\teasing: g_options.slider_zoom_return_pan_easing,\n\t\t\t\tqueue: false\n\t\t\t});\n\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * check if the image animating or not\n\t */\n\tfunction isImageAnimating(){\n\t\t\n\t\tif(g_temp.objImage && g_temp.objImage.is(\":animated\"))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\tfunction ____________END_PAN_____________(){};\n\t\n\tfunction ________TOUCH_ZOOM_____________(){};\n\t\n\t/**\n\t * start touch zoom\n\t */\n\tfunction startTouchZoom(arrTouches){\n\t\t\t\t\n\t\tg_temp.isZoomActive = true;\n\t\t\n\t\t//store init diff\n\t\tg_temp.startDistance = g_functions.getDistance(arrTouches[0].pageX, arrTouches[0].pageY, arrTouches[1].pageX, arrTouches[1].pageY);\n\t\tif(g_temp.startDistance == 0)\n\t\t\tg_temp.startDistance = 1;\n\t\t\n\t\t\n\t\t//store init positions\n\t\tg_temp.startMiddlePoint = g_functions.getMiddlePoint(arrTouches[0].pageX, arrTouches[0].pageY, arrTouches[1].pageX, arrTouches[1].pageY);\n\t\t\t\t\n\t\tg_temp.objImageSize = g_functions.getElementSize(g_temp.objImage);\n\t\t\t\n\t\tg_temp.startImageX = g_temp.objImageSize.left;\n\t\tg_temp.startImageY = g_temp.objImageSize.top;\n\t\t\n\t\t//set orient point\n\t\tg_temp.imageOrientPoint = g_functions.getElementLocalPoint(g_temp.startMiddlePoint, g_temp.objImage);\n\t\t\n\t\tvar isInsideImage = g_functions.isPointInsideElement(g_temp.imageOrientPoint, g_temp.objImageSize);\n\t\tif(isInsideImage == false){\n\t\t\tg_temp.imageOrientPoint = g_functions.getElementCenterPoint(g_temp.objImage);\n\t\t}\n\t\t\n\t\t//trigger start zoom event\n\t\tg_objParent.trigger(g_parent.events.ZOOM_START);\n\t}\n\t\n\t\n\t/**\n\t * check num touches, if not 2 - end zoom\n\t */\n\tfunction checkTouchZoomEnd(event){\n\t\t\t\t\n\t\tif(g_temp.isZoomActive == false)\n\t\t\treturn(false);\n\t\t\n\t\tvar arrTouches = g_functions.getArrTouches(event);\t\t\t\n\t\tif(arrTouches.length != 2){\t\t//end touch zoom\n\t\t\t\n\t\t\tg_temp.isZoomActive = false;\n\t\t\t\n\t\t\t//trigger end zoom event\n\t\t\tg_objParent.trigger(g_parent.events.ZOOM_END);\t\t\t\n\t\t}\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * check start touch zoom\n\t */\n\tfunction checkTouchZoomStart(event){\n\t\t\t\t\n\t\tif(g_temp.isZoomActive == true)\n\t\t\treturn(true);\n\n\n\t\tvar arrTouches = g_functions.getArrTouches(event);\n\t\t\t\t\n\t\tif(arrTouches.length != 2)\n\t\t\treturn(true);\n\t\t\t\t\t\n\t\tstartTouchZoom(arrTouches);\t\t\n\t}\n\t\n\t\n\t/**\n\t * do touch zoom on touch devices\n\t */\n\tfunction doTouchZoom(event){\n\t\t\t\t\n\t\tvar arrTouches = g_functions.getArrTouches(event);\n\t\t\t\t\n\t\tvar distance = g_functions.getDistance(arrTouches[0].pageX, arrTouches[0].pageY, arrTouches[1].pageX, arrTouches[1].pageY);\t\t\n\t\tvar zoomRatio = distance / g_temp.startDistance;\n\t\t\n\t\tvar middlePoint = g_functions.getMiddlePoint(arrTouches[0].pageX, arrTouches[0].pageY, arrTouches[1].pageX, arrTouches[1].pageY);\n\t\t\n\t\t//set zoom data:\n\t\tvar newWidth = g_temp.objImageSize.width * zoomRatio;\n\t\tvar newHeight = g_temp.objImageSize.height * zoomRatio;\n\t\t\n\t\t//check max zoom ratio:\n\t\tvar objOriginalSize = g_functions.getImageOriginalSize(g_temp.objImage);\n\t\tvar expectedZoomRatio = 1;\t\t\n\t\tif(objOriginalSize.width > 0)\n\t\t\texpectedZoomRatio = newWidth / objOriginalSize.width;\n\t\t\n\t\tif(expectedZoomRatio > g_options.slider_zoom_max_ratio)\n\t\t\treturn(true);\n\t\t\n\t\t//set pan data:\n\t\tpanX = -(g_temp.imageOrientPoint.x * zoomRatio - g_temp.imageOrientPoint.x);\n\t\tpanY = -(g_temp.imageOrientPoint.y * zoomRatio - g_temp.imageOrientPoint.y);\n\t\t\n\t\tvar diffMiddleX = (middlePoint.x - g_temp.startMiddlePoint.x);\n\t var diffMiddleY = (middlePoint.y - g_temp.startMiddlePoint.y);\n\t\t\n\t var posx = g_temp.startImageX + panX + diffMiddleX;\n\t\tvar posy = g_temp.startImageY + panY + diffMiddleY;\t\t\n\t\t\t\t\n\t\t\n\t\t//resize and place:\n\t\tg_functions.setElementSizeAndPosition(g_temp.objImage, posx, posy, newWidth, newHeight);\n\t\t\n\t\t//trigger zooming event\n\t\tg_objParent.trigger(g_parent.events.ZOOMING);\t\t\t\n\t\tg_objParent.trigger(g_parent.events.ZOOM_CHANGE);\t\t\t\n\n\t\t/*\n\t\tdebugLine({\n\t\t\tmiddleStartX: g_temp.startMiddlePoint.x,\n\t\t\tmiddleX: middlePoint.x,\n\t\t\tdiffMiddleX: diffMiddleX\n\t\t});\n\t\t*/\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * check return the image from zoom\n\t */\n\tfunction checkReturnFromZoom(){\n\t\t\t\t\n\t\tif(g_temp.objImage == undefined || g_temp.objImage.length == 0)\n\t\t\treturn(true);\n\t\t\n\t\tvar objSize = g_functions.getElementSize(g_temp.objImage);\n\t\t\n\t\tif(objSize.width < g_temp.objFitImageSize.imageWidth){\n\t\t\t\n\t\t\tg_temp.objImage.css({\n\t\t\t\tposition:\"absolute\",\n\t\t\t\tmargin:\"none\"\n\t\t\t});\n\t\t\t\n\t\t\tvar objCss = {\n\t\t\t\ttop: g_temp.objFitImageSize.imageTop + \"px\",\n\t\t\t\tleft: g_temp.objFitImageSize.imageLeft + \"px\",\n\t\t\t\twidth: g_temp.objFitImageSize.imageWidth + \"px\",\n\t\t\t\theight: g_temp.objFitImageSize.imageHeight + \"px\"\n\t\t\t};\n\t\t\t\n\t\t\tg_temp.objImage.animate(objCss,{\n\t\t\t\tduration: g_options.slider_zoom_return_pan_duration,\n\t\t\t\teasing: g_options.slider_zoom_return_pan_easing,\n\t\t\t\tqueue: false\n\t\t\t});\n\t\t\t\n\t\t}else{\t\t\t\n\t\t\tcheckReturnAfterPan();\n\t\t}\n\t\t\n\t}\n\t\n\t\n\tfunction ________END_TOUCH_ZOOM_____________(){};\n\t\n\t\n\t/**\n\t * \n\t * touch start event - start pan, remember start pan data\n\t */\n\tfunction onTouchStart(event){\n\t\t\n\t\t//if no image type, exit\n\t\tif(g_parent.isCurrentSlideType(\"image\") == false)\n\t\t\treturn(true);\n\t\t\n\t\tvar isStored = storeCurrentImage();\n\t\t\n\t\tif(g_temp.objImage == undefined || g_temp.objImage.length == 0)\n\t\t\treturn(true);\n\t\t\n\t\tevent.preventDefault();\n\t\t\t\t\t\t\n\t\t//stop animation if exists\n\t\tif(isImageAnimating() == true){\t\t\t\n\t\t\tg_temp.objImage.stop(true);\n\t\t}\n\t\t\n\t\tif(g_temp.isZoomActive == true){\n\t\t\t\n\t\t\tcheckTouchZoomEnd(event);\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tcheckTouchZoomStart(event);\n\t\t\t\n\t\t}\n\t\t\n\t\t//if zoom started stop panning, if not, start panning\n\t\tif(g_temp.isZoomActive == true){\n\t\t\t\n\t\t\tg_temp.isPanActive = false;\n\t\t\n\t\t}else if(isPanPosible(g_temp.objImage, event) == true && g_temp.isZoomedOnce == true){\n\t\t\t\n\t\t\tstartPan(event);\n\t\t}\n\t\t\n\t\t/*\n\t\tdebugLine({\n\t\t\t\tpan: g_temp.isPanActive,\n\t\t\t\tzoom: g_temp.isZoomActive,\n\t\t\t\tevent: \"start\"\n\t\t\t}, true);\n\t\t*/\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * touch end event - bring the image to place\n\t */\n\tfunction onTouchEnd(event){\n\t\t\n\t\tif(g_parent.isCurrentSlideType(\"image\") == false)\n\t\t\treturn(true);\n\t\t\n\t\t//check if some gallery button clicked\n\t\tvar objTarget = jQuery(event.target);\n\t\tif(objTarget.data(\"ug-button\") == true){\n\t\t\t//event.preventDefault();\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tvar isStored = storeCurrentImage();\n\n\t\tif(g_temp.objImage == undefined || g_temp.objImage.length == 0)\n\t\t\treturn(true);\n\t\t\t\t\n\t\tvar panWasActive = g_temp.isPanActive;\n\t\tvar zoomWasActive = g_temp.isZoomActive;\n\t\t\n\t\t//if the inner not in place, don't return noting, let the slide change\n\t\tif(g_parent.isInnerInPlace() == false){\n\t\t\tg_temp.isZoomActive = false;\n\t\t\tg_temp.isPanActive = false;\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t//check end zoom\n\t\tif(g_temp.isZoomActive == true){\n\t\t\tcheckTouchZoomEnd(event);\n\t\t}else{\n\t\t\tcheckTouchZoomStart(event);\n\t\t}\n\t\t\n\t\t\n\t\tif(g_temp.isZoomActive == true){\n\t\t\t\n\t\t\tg_temp.isPanActive = false;\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tvar panPosible = isPanPosible(g_temp.objImage, event, true);\n\t\t\t\n\t\t\tif(g_temp.isPanActive == true ){\n\t\t\t\t\t\t\n\t\t\t\tg_temp.isPanActive = false;\n\t\t\t\t\n\t\t\t}else if(panPosible == true){\n\t\t\t\t\n\t\t\t\tstartPan(event);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t/*\n\t\tdebugLine({\n\t\t\tpan:g_temp.isPanActive,\n\t\t\tzoom: g_temp.isZoomActive\n\t\t}, true);\n\t\t*/\n\t\t\n\t\tif((panWasActive || zoomWasActive) && g_temp.isZoomActive == false && g_temp.isPanActive == false){\n\t\t\tcheckReturnFromZoom();\n\t\t}\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * \n\t * touch move event - pan\n\t */\n\tfunction onTouchMove(event){\n\t\t\n\t\tif(g_parent.isCurrentSlideType(\"image\") == false)\n\t\t\treturn(true);\n\t\t\t\t\n\t\t//check touch zoom (pinch gesture)\n\t\tif(g_temp.isZoomActive == true){\n\t\t\t\n\t\t\tdoTouchZoom(event);\n\t\t\t\n\t\t}else if(g_temp.isPanActive == true){\n\t\t\t\n\t\t\tpanImage(event);\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on slider mousewheel event\n\t */\n\tfunction onSliderMouseWheel(event, delta, deltaX, deltaY){\n\t\t\n\t\tif(g_options.slider_zoom_mousewheel == false)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_parent.isCurrentSlideType(\"image\") == false)\n\t\t\treturn(true);\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\t//prevent default only if needed\n\t\t//if(zoomIn == true || zoomIn == false && g_functions.isElementBiggerThenParent(objImage))\n\t\t//event.preventDefault();\n\t\t\n\t\t\n\t\tvar zoomIn = (delta > 0);\n\t\tvar mousePos = g_functions.getMousePosition(event);\n\t\tvar\tmode = (zoomIn == true) ? \"in\":\"out\";\n\t\t\n\t\tzoomCurrentImage(mode, mousePos);\n\t}\n\t\n\t\n\t/**\n\t * init touch events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//debugLine(\"init\");\n\t\tg_objSlider.on(\"mousewheel\",onSliderMouseWheel);\n\t\t\n\t\t//slider mouse down - pan start\n\t\tg_objSlider.bind(\"mousedown touchstart\",onTouchStart);\n\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").bind(\"mousemove touchmove\",onTouchMove);\n\t\t\n\t\t//on body mouse up - pan end\n\t\tjQuery(window).add(\"body\").bind(\"mouseup touchend\", onTouchEnd);\n\t\t\n\t\t//event before image returned to init position\n\t\tg_objParent.bind(g_parent.events.BEFORE_RETURN, function(){\n\t\t\t\n\t\t\tcheckReturnFromZoom();\n\t\t});\n\t\t\t\t\n\t\t//on item change update isZoomedOnce event. Allow panning only if zoomed once\n\t\tg_objParent.bind(g_parent.events.ITEM_CHANGED, function(){\n\t\t\tg_temp.isZoomedOnce = false;\n\t\t});\n\t\t\n\t\tg_objParent.bind(g_parent.events.ZOOM_CHANGE, function(){\n\t\t\tg_temp.isZoomedOnce = true;\n\t\t});\n\t\t\n\t}\n\t\n\tthis.________EXTERNAL_____________ = function(){};\n\t\n\t/**\n\t * check if the image is zoomed, and there is a place for left panning\n\t */\n\tthis.isPanEnabled = function(event, direction){\n\t\t\n\t\tstoreCurrentImage();\n\t\t\n\t\tif(g_temp.objImage == undefined || g_temp.objImage.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_temp.isZoomedOnce == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(isPanPosible(g_temp.objImage, event) == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_parent.isInnerInPlace() == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(direction == \"left\"){\n\t\t\t\n\t\t\tif(g_temp.objImageSize.right <= g_temp.objParentSize.width)\n\t\t\t\treturn(false);\n\t\t\t\n\t\t}else{\t//right direction\n\t\t\t\n\t\t\tif(g_temp.objImageSize.left >= 0)\n\t\t\t\treturn(false);\n\t\t}\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(objSlider, customOptions){\n\t\t\n\t\tinitObject(objSlider, customOptions);\n\t}\n\t\n\t/**\n\t * zoom in\n\t */\n\tthis.zoomIn = function(){\t\t\n\t\tzoomCurrentImage(\"in\");\t\n\t}\n\t\n\t/**\n\t * zoom out\n\t */\n\tthis.zoomOut = function(){\t\t\n\t\tzoomCurrentImage(\"out\");\t\t\n\t}\n\t\n\t/**\n\t * zoom back\n\t */\n\tthis.zoomBack = function(){\n\t\t\n\t\tzoomCurrentImage(\"back\");\t\t\n\t}\n}\n/** -------------- Wistia API ---------------------*/\n\nfunction UGWistiaAPI(){\n\t\n\tthis.isAPILoaded = false;\n\tvar t = this, g_objThis = jQuery(this), g_intHandle;\n\tvar g_player, g_isPlayerReady = false;\n\t\n\tthis.events = {\n\t\t\tSTART_PLAYING: \"start_playing\",\n\t\t\tSTOP_PLAYING: \"stop_playing\",\n\t\t\tVIDEO_ENDED: \"video_ended\"\n\t};\n\n\t\n\t/**\n\t * check if sound cloud active\n\t */\n\tfunction isWistiaActive(){\n\t\t\n\t\treturn(typeof Wistia != \"undefined\");\t\n\t}\n\t\n\t/**\n\t * load vimeo API\n\t */\n\tthis.loadAPI = function(){\n\t\t\n\t\tif(g_ugWistiaAPI.isAPILoaded == true)\n\t\t\treturn(true);\n\n\t\tif(isWistiaActive()){\n\t\t\tg_ugWistiaAPI.isAPILoaded = true;\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tg_ugFunctions.loadJs(\"fast.wistia.com/assets/external/E-v1.js\", true);\n\t\t\n\t\tg_ugWistiaAPI.isAPILoaded = true;\t\t\n\t}\n\n\t\n\t/**\n\t * actually put the video\n\t */\n\tfunction putVideoActually(divID, videoID, width, height, isAutoplay){\n\t\t\n\t\tg_player = null;\n\t\tg_isPlayerReady = false;\n\t\t\n\t\tvar htmlID = divID + \"_video\";\n\t\t\n\t\tvar html = \"
 
\";\n\t\t\t\t\n\t\tjQuery(\"#\"+divID).html(html);\n\t\t\n\t\tg_player = Wistia.embed(videoID, {\n\t\t\t version: \"v1\",\n\t\t\t videoWidth: width,\n\t\t\t videoHeight: height,\n\t\t\t container: htmlID,\n\t\t\t autoPlay: isAutoplay\n\t\t});\n\t\t\t\t\n\t\tg_isPlayerReady = true;\n\t\t\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//set \"play\" event\n\t\t\n\t\tg_player.bind('play', function(){\n\t\t\tg_objThis.trigger(t.events.START_PLAYING);\n\t\t});\n\t\t\n\t\t//set \"pause event\"\n\t\tg_player.bind('pause', function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t});\n\t\t\n\t\tg_player.bind('end', function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t\tg_objThis.trigger(t.events.VIDEO_ENDED);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * do some command\n\t */\n\tthis.doCommand = function(command){\n\t\t\n\t\tif(g_player == null)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_isPlayerReady == false)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(command){\n\t\t\tcase \"play\":\n\t\t\t\tg_player.play();\n\t\t\tbreak;\n\t\t\tcase \"pause\":\n\t\t\t\tg_player.pause();\n\t\t\tbreak;\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * do pause command\n\t */\n\tthis.pause = function(){\n\t\tt.doCommand(\"pause\");\n\t}\n\t\n\t/**\n\t * do play command\n\t */\n\tthis.play = function(){\n\t\tt.doCommand(\"play\");\n\t}\n\t\n\t\n\t/**\n\t * put the vimeo video\n\t */\n\tthis.putVideo = function(divID, videoID, width, height, isAutoplay){\n\t\t\n\t\tif(isWistiaActive()){\n\t\t\tputVideoActually(divID, videoID, width, height, isAutoplay);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t\n\t\t//if no API present, wait for the API being ready\n\t\tthis.loadAPI();\n\t\tg_intHandle = setInterval(function(){\n\t\t\t\n\t\t\tif(isWistiaActive()){\n\t\t\t\tputVideoActually(divID, videoID, width, height, isAutoplay);\n\t\t\t\tclearInterval(g_intHandle);\n\t\t\t}\n\t\t\t\n\t\t}, 500);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get if the player is ready\n\t */\n\tthis.isPlayerReady = function(){\n\t\t\t\t\n\t\tif(g_isPlayerReady && g_player)\n\t\t\treturn(true);\n\t\n\t\treturn(false);\n\t}\t\n\t\n\t\n}\n\n/** -------------- Sound Cloud API ---------------------*/\n\nfunction UGSoundCloudAPI(){\n\t\n\tthis.isAPILoaded = false;\n\tvar t = this, g_objThis = jQuery(this), g_intHandle;\n\tvar g_player, g_lastContainerID;\n\t\n\tthis.events = {\n\t\t\tSTART_PLAYING: \"start_playing\",\n\t\t\tSTOP_PLAYING: \"stop_playing\",\n\t\t\tVIDEO_ENDED: \"video_ended\"\n\t};\n\n\t/**\n\t * check if sound cloud active\n\t */\n\tfunction isSCActive(){\n\t\t\n\t\treturn(typeof SC != \"undefined\");\t\n\t}\n\t\n\t/**\n\t * load vimeo API\n\t */\n\tthis.loadAPI = function(){\n\t\t\n\t\tif(g_ugSoundCloudAPI.isAPILoaded == true)\n\t\t\treturn(true);\n\t\t\t\t\n\t\tif(isSCActive()){\n\t\t\tg_ugSoundCloudAPI.isAPILoaded = true;\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tg_ugFunctions.loadJs(\"w.soundcloud.com/player/api.js\", true);\n\t\t\n\t\tg_ugSoundCloudAPI.isAPILoaded = true;\t\t\n\t}\n\t\n\t/**\n\t * actually put the video\n\t */\n\tfunction putSoundActually(divID, trackID, width, height, isAutoplay){\n\t\t\n\t\tg_player = null;\n\t\tg_isPlayerReady = false;\n\t\t\n\t\tvar iframeID = divID+\"_iframe\";\n\t\t\n\t\tvar url = location.protocol+\"//w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/\"+trackID;\n\t\turl += \"&buying=false&liking=false&download=false&sharing=false&show_artwork=true&show_comments=false&show_playcount=true&show_user=false&hide_related=true&visual=true&start_track=0&callback=true\";\n\t\t\n\t\tif(isAutoplay === true)\n\t\t\turl += \"&auto_play=true\";\n\t\telse\n\t\t\turl += \"&auto_play=false\";\n\t\t\n\t\tvar html = \"\";\n\t\t\n\t\tjQuery(\"#\"+divID).html(html);\n\t\t\n\t\t//get the player object\n\t\tg_player = SC.Widget(iframeID);\n\t\t\n\t\tg_player.bind(SC.Widget.Events.READY, function() {\n\t\t\t\n\t\t\tif(g_player){\n\t\t\t\tg_isPlayerReady = true;\n\t\t\t\tinitEvents();\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\n\t\tg_lastContainerID = divID;\n\t}\n\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t\n\t\t//set \"play\" event\n\t\tg_player.bind(SC.Widget.Events.PLAY, function(){\n\t\t\tg_objThis.trigger(t.events.START_PLAYING);\n\t\t});\n\t\t\n\t\t//set \"pause event\"\n\t\tg_player.bind(SC.Widget.Events.PAUSE, function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t});\n\t\t\n\t\tg_player.bind(SC.Widget.Events.FINISH, function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t\tg_objThis.trigger(t.events.VIDEO_ENDED);\n\t\t});\n\t\t\n\t}\n\t\t\n\t\n\t/**\n\t * put the youtube video\n\t */\n\tthis.putSound = function(divID, trackID, width, height, isAutoplay){\n\t\t\n\t\tif(isSCActive()){\n\t\t\tputSoundActually(divID, trackID, width, height, isAutoplay);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t\n\t\t//if no API present, wait for the API being ready\n\t\tthis.loadAPI();\n\t\tg_intHandle = setInterval(function(){\n\t\t\t\n\t\t\tif(isSCActive()){\n\t\t\t\tputSoundActually(divID, trackID, width, height, isAutoplay);\n\t\t\t\tclearInterval(g_intHandle);\n\t\t\t}\n\t\t\t\n\t\t}, 500);\n\t\t\n\t}\n\t\n\n\t/**\n\t * do some command\n\t */\n\tthis.doCommand = function(command){\n\t\t\n\t\tif(g_player == null)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_isPlayerReady == false)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(command){\n\t\t\tcase \"play\":\n\t\t\t\tg_player.play();\n\t\t\tbreak;\n\t\t\tcase \"pause\":\n\t\t\t\tg_player.pause();\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\t\n\t\n\t\n\t/**\n\t * pause video\n\t */\n\tthis.pause = function(){\n\t\tt.doCommand(\"pause\");\n\t}\n\t\n\t\n\t/**\n\t * play video\n\t */\n\tthis.play = function(){\n\t\tt.doCommand(\"play\");\n\t}\n\t\n\t/**\n\t * destroy the player\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tg_isPlayerReady = false;\n\t\tg_player = null;\n\t\t\n\t\tif(g_lastContainerID){\n\t\t\tjQuery(\"#\" + g_lastContainerID).html(\"\");\n\t\t\tg_lastContainerID = null;\n\t\t}\n\t\t\n\t}\n\t\n}\n\n/** -------------- html5 Video API ---------------------*/\n\nfunction UGHtml5MediaAPI(){\n\t\n\tthis.isAPILoaded = false;\n\tvar t = this, g_objThis = jQuery(this), g_intHandle;\n\tvar g_player;\n\t\n\tthis.events = {\n\t\t\tSTART_PLAYING: \"start_playing\",\n\t\t\tSTOP_PLAYING: \"stop_playing\",\n\t\t\tVIDEO_ENDED: \"video_ended\"\n\t};\n\t\n\t/**\n\t * load vimeo API\n\t */\n\tthis.loadAPI = function(){\n\t\t\n\t\tif(g_ugHtml5MediaAPI.isAPILoaded == true)\n\t\t\treturn(true);\n\t\t\n\t\t\n\t\tif(isMediaElementActive()){\n\t\t\tg_ugHtml5MediaAPI.isAPILoaded = true;\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tg_ugFunctions.loadJs(\"cdnjs.cloudflare.com/ajax/libs/mediaelement/2.18.1/mediaelement.min.js\", true);\n\t\tg_ugFunctions.loadCss(\"cdnjs.cloudflare.com/ajax/libs/mediaelement/2.18.1/mediaelementplayer.min.css\", true);\n\t\t\n\t\tg_ugHtml5MediaAPI.isAPILoaded = true;\t\t\n\t}\n\t\n\t/**\n\t * return true if the mediaelement is active\n\t */\n\tfunction isMediaElementActive(){\n\t\t\t\t\n\t\treturn(typeof mejs != \"undefined\");\n\t}\n\t\n\t\n\t/**\n\t * actually put the video\n\t */\n\tfunction putVideoActually(divID, data, width, height, isAutoplay){\n\t\t\n\t\tg_player = null;\n\t\tg_isPlayerReady = false;\n\t\t\n\t\tvar urlFlash = location.protocol + \"//cdnjs.cloudflare.com/ajax/libs/mediaelement/2.18.1/flashmediaelement-cdn.swf\";\n\t\tvar urlSilverlight = location.protocol + \"//cdnjs.cloudflare.com/ajax/libs/mediaelement/2.18.1/silverlightmediaelement.xap\";\n\n\t\tvar htmlID = divID + \"_video\";\n\t\tvar htmlAutoplay = \"\";\n\t\tif(isAutoplay && isAutoplay === true)\n\t\t\thtmlAutoplay = \"autoplay='autoplay'\"\n\t\t\n\t\tvar htmlPoster = \"\";\n\t\tif(data.posterImage)\n\t\t\thtmlPoster = \"poster='\"+data.posterImage+\"'\";\n\t\t\n\t\tvar html = \"\";\n\t\t\n\t\tjQuery(\"#\"+divID).html(html);\n\t\t\n\t\tnew MediaElement(htmlID, {\t\t\t\n\t\t enablePluginDebug: false,\n\t\t flashName: urlFlash,\n\t\t silverlightName: urlSilverlight,\n\t\t success: function (mediaElement, domObject) { \n\t\t \tg_isPlayerReady = true;\n\t\t \tg_player = mediaElement;\n\t\t \t\t\t \t\n\t\t \tif(isAutoplay == false)\n\t\t \t\tg_player.pause();\n\t\t \t\n\t\t \tinitEvents();\n\t\t },\n\t\t error: function (objError) { \n\t\t \ttrace(objError);\n\t\t }\n\t\t});\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init player events function\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tg_ugFunctions.addEvent(g_player, \"play\", function(){\n\t\t\tg_objThis.trigger(t.events.START_PLAYING);\n\t\t});\n\t\t\n\t\tg_ugFunctions.addEvent(g_player, \"pause\", function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t});\n\t\t\n\t\tg_ugFunctions.addEvent(g_player, \"ended\", function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t\tg_objThis.trigger(t.events.VIDEO_ENDED);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * put the vimeo video\n\t */\n\tthis.putVideo = function(divID, data, width, height, isAutoplay){\n\t\t\n\t\tif(isMediaElementActive()){\n\t\t\tputVideoActually(divID, data, width, height, isAutoplay);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t\n\t\t//if no API present, wait for the API being ready\n\t\tthis.loadAPI();\n\t\tg_intHandle = setInterval(function(){\n\t\t\t\n\t\t\tif(isMediaElementActive()){\n\t\t\t\tputVideoActually(divID, data, width, height, isAutoplay);\n\t\t\t\tclearInterval(g_intHandle);\n\t\t\t}\n\t\t\t\n\t\t}, 500);\n\t\t\n\t}\n\n\t/**\n\t * do some command\n\t */\n\tthis.doCommand = function(command){\n\t\t\t\t\n\t\tif(g_player == null)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_isPlayerReady == false)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(command){\n\t\t\tcase \"play\":\n\t\t\t\tg_player.play();\n\t\t\tbreak;\n\t\t\tcase \"pause\":\n\t\t\t\tg_player.pause();\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\t\n\t\n\t\n\t/**\n\t * pause video\n\t */\n\tthis.pause = function(){\n\t\tt.doCommand(\"pause\");\n\t}\n\t\n\t\n\t/**\n\t * play video\n\t */\n\tthis.play = function(){\n\t\tt.doCommand(\"play\");\n\t}\n\t\n}\n\n\n/** -------------- Vimeo API class ---------------------*/\n\nfunction UGVimeoAPI(){\n\t\n\tthis.isAPILoaded = false;\n\t\n\tvar t = this, g_objThis = jQuery(this), g_intHandle;\n\tvar g_player = null, g_isPlayerReady = false, g_lastCotnainerID, g_cueChangeAutoplay = false;\n\t\n\t\n\tthis.events = {\n\t\t\tSTART_PLAYING: \"start_playing\",\n\t\t\tSTOP_PLAYING: \"stop_playing\",\n\t\t\tVIDEO_ENDED: \"video_ended\"\n\t};\n\t\n\t/**\n\t * load vimeo API\n\t */\n\tthis.loadAPI = function(){\n\t\t\n\t\tif(g_ugVimeoAPI.isAPILoaded == true)\n\t\t\treturn(true);\n\t\t\n\t\tif(isFroogaloopActive()){\n\t\t\tg_ugVimeoAPI.isAPILoaded = true;\n\t\t\treturn(true);\n\t\t}\n\n\t\tg_ugFunctions.loadJs(\"f.vimeocdn.com/js/froogaloop2.min.js\", true);\n\t\t\n\t\tg_ugVimeoAPI.isAPILoaded = true;\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * tells if the froogaloop library active\n\t */\n\tfunction isFroogaloopActive(){\n\t\t\n\t\treturn(typeof Froogaloop != \"undefined\");\n\t}\n\t\n\t\n\t/**\n\t * actually put the video\n\t */\n\tfunction putVideoActually(divID, videoID, width, height, isAutoplay){\n\t\t\n\t\tg_player = null;\n\t\tg_isPlayerReady = false;\n\t\t\n\t\tvar url = location.protocol+\"//player.vimeo.com/video/\"+videoID+\"?api=1\";\n\t\t\n\t\tif(isAutoplay === true)\n\t\t url += \"&byline=0&autoplay=1&title=0&portrait=0\";\n\t\t\n\t\tvar html = \"\";\n\t\t\n\t\tjQuery(\"#\"+divID).html(html);\n\t\t\n\t\t//get the player object\n\t\tvar iframe = jQuery(\"#\"+divID + \" iframe\")[0];\n\t\t\n\t\tg_player = Froogaloop(iframe);\n\n\t\tg_player.addEvent('ready', function(){\n\t\t\t\n\t\t\tif(g_player){\n\t\t\t\tg_isPlayerReady = true;\n\t\t\t\tinitEvents();\n\t\t\t}\n\t\t\t\n\t\t});\n\t\t\n\t\tg_lastCotnainerID = divID;\t\t\n\t}\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tif(!g_player)\n\t\t\treturn(false);\n\t\t\t\t\n\t\t//set \"cuechange\" event\n\t\tg_player.addEvent('cuechange', function(){\n\t\t\t\n\t\t\tif(g_cueChangeAutoplay == true)\t\t\t\n\t\t\t\tt.play();\n\t\t\t\n\t\t});\n\t\t\n\t\t//set \"play\" event\n\t\tg_player.addEvent('play', function(){\n\t\t\tg_objThis.trigger(t.events.START_PLAYING);\n\t\t});\n\t\t\n\t\t//set \"pause event\"\n\t\tg_player.addEvent('pause', function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t});\n\t\t\n\t\tg_player.addEvent('finish', function(){\n\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\n\t\t\tg_objThis.trigger(t.events.VIDEO_ENDED);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * do some command\n\t */\n\tthis.doCommand = function(command){\n\t\t\n\t\tif(g_player == null)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_isPlayerReady == false)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(command){\n\t\t\tdefault:\n\t\t\t\tg_player.api(command);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * do pause command\n\t */\n\tthis.pause = function(){\n\t\tt.doCommand(\"pause\");\n\t}\n\t\n\t/**\n\t * do play command\n\t */\n\tthis.play = function(){\n\t\tt.doCommand(\"play\");\n\t}\n\t\n\t/**\n\t * desrtoy the player and empty the div\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_player){\n\t\t\tg_player.api(\"unload\");\n\t\t\tg_player = null;\n\t\t\tg_isPlayerReady = false;\n\t\t}\n\t\t\n\t\tif(g_lastCotnainerID){\n\t\t\tjQuery(\"#\" + g_lastCotnainerID).html(\"\");\t\t\t\n\t\t}\n\t\n\t}\n\t\n\t/**\n\t * put the vimeo video\n\t */\n\tthis.putVideo = function(divID, videoID, width, height, isAutoplay){\n\t\t\n\t\tif(isFroogaloopActive()){\n\t\t\tputVideoActually(divID, videoID, width, height, isAutoplay);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t\n\t\t//if no API present, wait for the API being ready\n\t\tthis.loadAPI();\n\t\tg_intHandle = setInterval(function(){\n\t\t\t\n\t\t\tif(isFroogaloopActive()){\n\t\t\t\tputVideoActually(divID, videoID, width, height, isAutoplay);\n\t\t\t\tclearInterval(g_intHandle);\n\t\t\t}\n\t\t\t\n\t\t}, 500);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * get if the player is ready\n\t */\n\tthis.isPlayerReady = function(){\n\t\t\n\t\tif(g_isPlayerReady && g_player)\n\t\t\treturn(true);\n\t\n\t\treturn(false);\n\t}\t\n\t\n\t/**\n\t * change the video\n\t */\n\tthis.changeVideo = function(videoID, isAutoplay){\n\t\t\n\t\tif(t.isPlayerReady() == false)\n\t\t\treturn(false);\n\t\t\n\t\tg_cueChangeAutoplay = isAutoplay;\n\t\t\n\t\tg_player.api(\"loadVideo\", videoID);\n\t}\n\t\n\t\n\t/**\n\t * get video images\n\t */\n\tthis.getVideoImages = function(videoID, itemIndex, onSuccessFunction){\n\t\t\n\t\tvar url = location.protocol+\"//vimeo.com/api/v2/video/\"+videoID+\".json\";\n\t\tjQuery.get(url, {}, function(data){\n\t\t\tvar obj = {};\n\t\t\tobj.preview = data[0].thumbnail_large;\n\t\t\tobj.thumb = data[0].thumbnail_medium;\n\t\t\tonSuccessFunction(itemIndex, obj);\n\t\t});\n\t}\n\t\n\t\n}\n\n\n/** -------------- Youtube API class ---------------------*/\n\nfunction UGYoutubeAPI(){\n\t\n\tthis.isAPILoaded = false;\t\n\tvar t = this, g_player = null, g_intHandle, g_isPlayerReady = false;\n\tvar g_objThis = jQuery(this), g_prevState = -1, g_lastContainerID;\t//unstarted\n\t\n\tvar g_options = {\n\t\t\tvideo_youtube_showinfo: true\n\t}\n\t\n\tthis.events = {\n\t\tSTART_PLAYING: \"start_playing\",\n\t\tSTOP_PLAYING: \"stop_playing\",\n\t\tVIDEO_ENDED: \"video_ended\"\n\t};\n\t\n\t\n\t/**\n\t * actually put the video\n\t */\n\tfunction putVideoActually(divID, videoID, width, height, isAutoplay){\n\t\t\t\t\n\t\tif(g_player && g_isPlayerReady){\t\t\t\n\t\t\tg_player.destroy();\n\t\t}\n\t\t\n\t\tvar playerVars = {\n\t\t\tcontrols:2,\n\t\t\tshowinfo:g_options.video_youtube_showinfo, \n\t\t\trel:0\n\t\t};\n\t\t\n\t\tif(isAutoplay === true)\n\t\t\tplayerVars.autoplay = 1;\n\t\t\t\n\t\tg_isPlayerReady = false;\n\n\t\tg_player = new YT.Player(divID, {\n\t\t height: height,\n\t\t width: width,\n\t\t videoId: videoID,\n\t\t playerVars: playerVars,\n\t\t events: {\n\t\t 'onReady': onPlayerReady,\n\t\t 'onStateChange': onPlayerStateChange\n\t\t }\n\t\t });\n\t\t\n\t\tg_lastContainerID = divID;\n\t}\n\t\n\t\n\t/**\n\t * check if YT active\n\t */\n\tfunction isYTActive(){\n\t\t\n\t\tif(typeof YT != \"undefined\" && typeof YT.Player != \"undefined\")\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * set options\n\t */\n\tthis.setOptions = function(objOptions){\n\t\tg_options = jQuery.extend(g_options, objOptions);\n\t}\n\t\n\t\n\t/**\n\t * put the youtube video\n\t */\n\tthis.putVideo = function(divID, videoID, width, height, isAutoplay){\n\t\t\n\t\tif(isYTActive()){\n\t\t\tputVideoActually(divID, videoID, width, height, isAutoplay);\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t//if no API present, wait for the API being ready\n\t\tthis.loadAPI();\n\t\tg_intHandle = setInterval(function(){\n\t\t\t\n\t\t\tif(isYTActive()){\n\t\t\t\tputVideoActually(divID, videoID, width, height, isAutoplay);\n\t\t\t\tclearInterval(g_intHandle);\n\t\t\t}\n\t\t\t\n\t\t}, 500);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on player ready event\n\t */\n\tfunction onPlayerReady(){\n\t\tg_isPlayerReady = true;\n\t}\n\t\n\t\n\t/**\n\t * on player state change event\n\t * trigger events\n\t */\n\tfunction onPlayerStateChange(){\n\t\t\n\t\tif(typeof g_player.getPlayerState != \"function\"){\n\t\t\ttrace(\"Youtube API error: can't get player state\");\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tvar state = g_player.getPlayerState();\n\t\t\n\t\tswitch(state){\n\t\t\tcase YT.PlayerState.PLAYING:\n\t\t\t\tg_objThis.trigger(t.events.START_PLAYING);\n\t\t\tbreak;\n\t\t\tcase YT.PlayerState.ENDED:\n\t\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\t\t\t\t\t\n\t\t\t\tg_objThis.trigger(t.events.VIDEO_ENDED);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif(g_prevState == YT.PlayerState.PLAYING)\n\t\t\t\t\tg_objThis.trigger(t.events.STOP_PLAYING);\t\t\t\t\t\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tg_prevState = state;\n\t}\n\t\n\t\n\t/**\n\t * load youtube API\n\t */\n\tthis.loadAPI = function(){\n\t\t\n\t\tif(g_ugYoutubeAPI.isAPILoaded == true)\n\t\t\treturn(true);\n\t\t\n\t\tif(typeof YT != \"undefined\"){\n\t\t\tg_ugYoutubeAPI.isAPILoaded = true;\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tg_ugFunctions.loadJs(\"https://www.youtube.com/player_api\", false);\n\t\t\n\t\tg_ugYoutubeAPI.isAPILoaded = true;\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * do some command\n\t */\n\tthis.doCommand = function(command, opt1){\n\t\t\n\t\tif(!g_player)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_isPlayerReady == false)\n\t\t\treturn(false);\n\t\t\n\t\tswitch(command){\n\t\t\tcase \"play\":\n\t\t\t\tif(typeof g_player.playVideo != \"function\")\n\t\t\t\t\treturn(false);\n\t\t\t\t\n\t\t\t\tg_player.playVideo();\n\t\t\tbreak;\n\t\t\tcase \"pause\":\n\t\t\t\tif(typeof g_player.pauseVideo != \"function\")\n\t\t\t\t\treturn(false);\n\t\t\t\t\n\t\t\t\tg_player.pauseVideo();\n\t\t\tbreak;\n\t\t\tcase \"seek\":\n\t\t\t\tif(typeof g_player.seekTo != \"function\")\n\t\t\t\t\treturn(false);\n\n\t\t\t\tg_player.seekTo(opt1);\n\t\t\tbreak;\n\t\t\tcase \"stopToBeginning\":\n\t\t\t\tvar state = g_player.getPlayerState();\n\t\t\t\t\n\t\t\t\tg_player.pauseVideo();\n\t\t\t\t\n\t\t\t\tswitch(state){\n\t\t\t\t\tcase YT.PlayerState.PLAYING:\n\t\t\t\t\tcase YT.PlayerState.ENDED:\n\t\t\t\t\tcase YT.PlayerState.PAUSED:\n\t\t\t\t\t\tg_player.seekTo(0);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\t\n\t/**\n\t * play video\n\t */\n\tthis.play = function(){\n\t\tt.doCommand(\"play\");\t\t\n\t}\n\t\n\t/**\n\t * stop the video\n\t */\n\tthis.pause = function(){\n\t\tt.doCommand(\"pause\");\n\t}\n\t\n\t/**\n\t * destroy player\n\t */\n\tthis.destroy = function(){\n\t\ttry{\n\t\t\t\n\t\t\tif(g_player){\n\t\t\t\tg_isPlayerReady = false;\t\n\t\t\t\tg_player.clearVideo();\n\t\t\t\tg_player.destroy();\n\t\t\t}\n\t\t\t\n\t\t}catch(objError){\n\t\t\t\n\t\t\tjQuery(\"#\"+g_lastContainerID).html(\"\");\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * stop the video and seek to start\n\t */\n\tthis.stopToBeginning = function(){\n\t\tt.doCommand(\"stopToBeginning\");\n\t}\n\t\n\t/**\n\t * change the video\n\t */\n\tthis.changeVideo = function(videoID, isAutoplay){\n\t\t\n\t\tif(t.isPlayerReady() == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(isAutoplay && isAutoplay == true)\n\t\t\tg_player.loadVideoById(videoID, 0, \"large\");\n\t\telse\n\t\t\tg_player.cueVideoById(videoID, 0, \"large\");\n\t}\n\t\n\t\n\t/**\n\t * get if the player is ready\n\t */\n\tthis.isPlayerReady = function(){\n\t\t\n\t\tif(g_isPlayerReady && g_player)\n\t\t\treturn(true);\n\t\n\t\treturn(false);\n\t}\n\t\n\t\t\n\t\n\t/**\n\t * get preview and thumbs images according the ID\n\t */\n\tthis.getVideoImages = function(videoID){\n\t\tvar obj = {};\n\t\tobj.preview = \"https://i.ytimg.com/vi/\"+videoID+\"/sddefault.jpg\";\n\t\tobj.thumb = \"https://i.ytimg.com/vi/\"+videoID+\"/default.jpg\";\n\t\treturn(obj);\n\t}\n\t\n\t\n}\n\n/** -------------- Video Player Class ---------------------*/\n\n\nfunction UGVideoPlayer(){\n\t\n\tvar t = this, g_galleryID, g_objThis = jQuery(this), g_functions = new UGFunctions();\n\tvar g_youtubeAPI = new UGYoutubeAPI(), g_vimeoAPI = new UGVimeoAPI();\n\tvar g_html5API = new UGHtml5MediaAPI(), g_soundCloudAPI = new UGSoundCloudAPI(), g_wistiaAPI = new UGWistiaAPI();\n\tvar g_objPlayer, g_objYoutube, g_objVimeo, g_objHtml5, g_objButtonClose, g_objSoundCloud, g_objWistia;\n\tvar g_activePlayerType = null;\n\t\n\tvar g_options = {\n\t\t\tvideo_enable_closebutton: true\n\t};\n\t\n\tthis.events = {\n\t\t\tSHOW: \"video_show\",\n\t\t\tHIDE: \"video_hide\",\n\t\t\tPLAY_START: \"video_play_start\",\n\t\t\tPLAY_STOP: \"video_play_stop\",\n\t\t\tVIDEO_ENDED: \"video_ended\"\n\t};\n\t\n\tvar g_temp = {\n\t\t\tstandAloneMode: false,\n\t\t\tyoutubeInnerID:\"\",\n\t\t\tvimeoPlayerID:\"\",\n\t\t\thtml5PlayerID:\"\",\n\t\t\twistiaPlayerID:\"\",\n\t\t\tsoundCloudPlayerID:\"\"\n\t};\n\t\n\t\n\t/**\n\t * init the object\n\t */\n\tthis.init = function(optOptions, isStandAloneMode, galleryID){\n\t\tg_galleryID = galleryID;\n\t\t\n\t\tif(!g_galleryID)\n\t\t\tthrow new Error(\"missing gallery ID for video player, it's a must!\");\n\t\t\t\n\t\tg_options = jQuery.extend(g_options, optOptions);\n\t\t\n\t\tg_youtubeAPI.setOptions(g_options);\n\t\t\n\t\tif(isStandAloneMode && isStandAloneMode == true)\n\t\t\tg_temp.standAloneMode = true;\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set the player html\n\t */\n\tthis.setHtml = function(objParent){\n\t\t\n\t\tg_temp.youtubeInnerID = g_galleryID + \"_youtube_inner\";\n\t\tg_temp.vimeoPlayerID = g_galleryID + \"_videoplayer_vimeo\";\n\t\tg_temp.html5PlayerID = g_galleryID + \"_videoplayer_html5\";\n\t\tg_temp.wistiaPlayerID = g_galleryID + \"_videoplayer_wistia\";\n\t\tg_temp.soundCloudPlayerID = g_galleryID + \"_videoplayer_soundcloud\";\n\t\t\n\t\t\n\t\tvar html = \"\";\n\t\t\n\t\tobjParent.append(html);\n\t\t\n\t\tg_objPlayer = objParent.children(\".ug-videoplayer\");\n\t\tg_objYoutube = g_objPlayer.children(\".ug-videoplayer-youtube\");\n\t\tg_objVimeo = g_objPlayer.children(\".ug-videoplayer-vimeo\");\n\t\tg_objHtml5 = g_objPlayer.children(\".ug-videoplayer-html5\");\n\t\tg_objSoundCloud = g_objPlayer.children(\".ug-videoplayer-soundcloud\");\n\t\tg_objWistia = g_objPlayer.children(\".ug-videoplayer-wistia\");\n\t\t\n\t\tif(g_temp.standAloneMode == false && g_options.video_enable_closebutton == true)\n\t\t\tg_objButtonClose = g_objPlayer.children(\".ug-videoplayer-button-close\")\n\t}\n\n\t\n\tfunction __________EVENTS___________(){};\t\n\t\n\t/**\n\t * on close button click event\n\t */\n\tfunction onCloseButtonClick(){\n\t\tt.hide();\n\t}\n\t\n\t/**\n\t * on some video play start\n\t */\n\tfunction onPlayStart(){\n\t\t\n\t\tg_objThis.trigger(t.events.PLAY_START);\n\t\t\n\t\tif(g_objButtonClose)\n\t\t\tg_objButtonClose.hide();\n\t}\n\t\n\t\n\t/**\n\t * on some video play stop\n\t */\n\tfunction onPlayStop(){\n\t\t\n\t\tg_objThis.trigger(t.events.PLAY_STOP);\n\t\t\n\t\tif(g_objButtonClose)\n\t\t\tg_objButtonClose.show();\n\t}\n\t\n\t/**\n\t * on video ended\n\t */\n\tfunction onVideoEnded(){\n\t\t\n\t\tg_objThis.trigger(t.events.VIDEO_ENDED);\n\t\t\n\t}\n\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//close button events\n\t\tif(g_objButtonClose){\n\t\t\tg_functions.setButtonMobileReady(g_objButtonClose);\t\t\n\t\t\tg_functions.setButtonOnClick(g_objButtonClose, onCloseButtonClick);\t\t\t\t\t\n\t\t}\n\t\t\n\t\t//youtube events\n\t\tjQuery(g_youtubeAPI).on(g_youtubeAPI.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_youtubeAPI).on(g_youtubeAPI.events.STOP_PLAYING, onPlayStop);\n\t\tjQuery(g_youtubeAPI).on(g_youtubeAPI.events.VIDEO_ENDED, onVideoEnded);\n\t\t\n\t\t//vimeo events\n\t\tjQuery(g_vimeoAPI).on(g_vimeoAPI.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_vimeoAPI).on(g_vimeoAPI.events.STOP_PLAYING, onPlayStop);\n\t\tjQuery(g_vimeoAPI).on(g_vimeoAPI.events.VIDEO_ENDED, onVideoEnded);\n\t\t\n\t\t//html5 video events\n\t\tjQuery(g_html5API).on(g_html5API.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_html5API).on(g_html5API.events.STOP_PLAYING, onPlayStop);\n\t\tjQuery(g_html5API).on(g_html5API.events.VIDEO_ENDED, onVideoEnded);\n\t\t\n\t\tjQuery(g_soundCloudAPI).on(g_soundCloudAPI.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_soundCloudAPI).on(g_soundCloudAPI.events.STOP_PLAYING, onPlayStop);\n\t\tjQuery(g_soundCloudAPI).on(g_soundCloudAPI.events.VIDEO_ENDED, onVideoEnded);\n\t\t\n\t\tjQuery(g_wistiaAPI).on(g_wistiaAPI.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_wistiaAPI).on(g_wistiaAPI.events.STOP_PLAYING, onPlayStop);\n\t\tjQuery(g_wistiaAPI).on(g_wistiaAPI.events.VIDEO_ENDED, onVideoEnded);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the video player events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_objButtonClose){\n\t\t\tg_objButtonClose.off(\"click\");\n\t\t\tg_objButtonClose.off(\"touchend\");\n\t\t}\n\t\t\n\t\t//youtube events\n\t\tjQuery(g_youtubeAPI).off(g_youtubeAPI.events.START_PLAYING);\n\t\tjQuery(g_youtubeAPI).off(g_youtubeAPI.events.STOP_PLAYING);\n\t\t\n\t\t//vimeo events\n\t\tjQuery(g_vimeoAPI).off(g_vimeoAPI.events.START_PLAYING);\n\t\tjQuery(g_vimeoAPI).off(g_vimeoAPI.events.STOP_PLAYING);\n\t\t\n\t\t//html5 video events\n\t\tjQuery(g_html5API).off(g_html5API.events.START_PLAYING);\n\t\tjQuery(g_html5API).off(g_html5API.events.STOP_PLAYING);\n\t\t\n\t\tjQuery(g_soundCloudAPI).off(g_soundCloudAPI.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_soundCloudAPI).off(g_soundCloudAPI.events.STOP_PLAYING, onPlayStop);\n\t\t\n\t\tjQuery(g_wistiaAPI).off(g_wistiaAPI.events.START_PLAYING, onPlayStart);\n\t\tjQuery(g_wistiaAPI).off(g_wistiaAPI.events.STOP_PLAYING, onPlayStop);\n\t\t\n\t\tg_activePlayerType = null;\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tthis.initEvents = function(){\n\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * set element size and position the button\n\t */\n\tthis.setSize = function(width, height){\n\t\t\n\t\tg_functions.setElementSize(g_objPlayer, width, height);\n\t\t\n\t\tif(g_objButtonClose)\n\t\t\tg_functions.placeElement(g_objButtonClose, \"right\", \"top\");\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set video player position\n\t */\n\tthis.setPosition = function(left, top){\n\t\tg_functions.placeElement(g_objPlayer, left, top);\n\t}\n\t\n\t/**\n\t * get video player object for placing\n\t */\n\tthis.getObject = function(){\n\t\treturn(g_objPlayer);\n\t}\n\t\n\t\n\t/**\n\t * show the player\n\t */\n\tthis.show = function(){\t\t\n\t\t\n\t\tif(t.isVisible() == true)\n\t\t\treturn(true);\n\t\t\n\t\tg_objPlayer.show();\n\t\t\n\t\tg_objPlayer.fadeTo(0,1);\n\t\t\n\t\tif(g_objButtonClose)\n\t\t\tg_objButtonClose.show();\n\t\t\t\t\n\t\tg_objThis.trigger(t.events.SHOW);\n\t}\n\t\t\n\t\n\t/**\n\t * hide the player\n\t */\n\tthis.hide = function(){\n\t\t\n\t\tif(t.isVisible() == false)\n\t\t\treturn(true);\n\t\t\n\t\t//pause all players\n\t\tstopAndHidePlayers();\n\t\t\n\t\tg_activePlayerType = null;\n\t\t\n\t\tg_objPlayer.hide();\n\t\t\n\t\tg_objThis.trigger(t.events.HIDE);\n\t}\n\t\n\t\n\t/**\n\t * get active player\n\t */\n\tthis.getActiveAPI = function(){\n\t\t\n\t\tswitch(g_activePlayerType){\n\t\t\tcase \"youtube\":\n\t\t\t\treturn g_youtubeAPI;\n\t\t\tbreak;\n\t\t\tcase \"vimeo\":\n\t\t\t\treturn g_vimeoAPI;\n\t\t\tbreak;\n\t\t\tcase \"wistia\":\n\t\t\t\treturn g_wistiaAPI;\n\t\t\tbreak;\n\t\t\tcase \"soundcloud\":\n\t\t\t\treturn g_soundCloudAPI;\n\t\t\tbreak;\n\t\t\tcase \"html5\":\n\t\t\t\treturn g_html5API;\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t\tbreak;\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * pause active player if playing\n\t */\n\tthis.pause = function(){\n\t\t\n\t\tvar activeAPI = t.getActiveAPI();\n\t\tif(activeAPI == null)\n\t\t\treturn(false);\n\t\t\n\t\tif(typeof activeAPI.pause == \"function\")\n\t\t\tactiveAPI.pause();\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * return if the player is visible\n\t */\n\tthis.isVisible = function(){\n\t\t\n\t\treturn g_objPlayer.is(\":visible\");\n\t}\n\t\n\t\n\t/**\n\t * stop and hide other elements except some\n\t */\n\tfunction stopAndHidePlayers(except){\n\t\t\n\t\tvar arrPlayers = [\"youtube\", \"vimeo\", \"html5\", \"soundcloud\", \"wistia\"];\n\t\tfor(var index in arrPlayers){\n\t\t\tvar player = arrPlayers[index];\n\t\t\tif(player == except)\n\t\t\t\tcontinue;\n\t\t\tswitch(player){\n\t\t\t\tcase \"youtube\":\t\t\n\t\t\t\t\tg_youtubeAPI.pause();\n\t\t\t\t\tg_youtubeAPI.destroy();\t\n\t\t\t\t\tg_objYoutube.hide();\n\t\t\t\tbreak;\n\t\t\t\tcase \"vimeo\":\n\t\t\t\t\tg_vimeoAPI.pause();\n\t\t\t\t\tg_vimeoAPI.destroy();\n\t\t\t\t\tg_objVimeo.hide();\n\t\t\t\tbreak;\n\t\t\t\tcase \"html5\":\n\t\t\t\t\tg_html5API.pause();\n\t\t\t\t\tg_objHtml5.hide();\n\t\t\t\tbreak;\n\t\t\t\tcase \"soundcloud\":\n\t\t\t\t\tg_soundCloudAPI.pause();\n\t\t\t\t\tg_soundCloudAPI.destroy();\n\t\t\t\t\tg_objSoundCloud.hide();\n\t\t\t\tbreak;\n\t\t\t\tcase \"wistia\":\n\t\t\t\t\tg_wistiaAPI.pause();\n\t\t\t\t\tg_objWistia.hide();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * play youtube inside the video, isAutoplay - true by default\n\t */\n\tthis.playYoutube = function(videoID, isAutoplay){\n\t\t\t\t\n\t\tif(typeof isAutoplay == \"undefined\")\n\t\t\tvar isAutoplay = true;\n\t\t\n\t\tstopAndHidePlayers(\"youtube\");\n\t\t\n\t\tg_objYoutube.show();\n\t\t\n\t\tvar objYoutubeInner = g_objYoutube.children(\"#\"+g_temp.youtubeInnerID);\n\t\tif(objYoutubeInner.length == 0)\n\t\t\tg_objYoutube.append(\"
\");\n\t\t\t\n\t\t\n\t\tif(g_youtubeAPI.isPlayerReady() == true && g_temp.standAloneMode == true)\n\t\t\tg_youtubeAPI.changeVideo(videoID, isAutoplay);\n\t\telse{\n\t\t\tg_youtubeAPI.putVideo(g_temp.youtubeInnerID, videoID, \"100%\", \"100%\", isAutoplay);\n\t\t}\n\t\t\n\t\tg_activePlayerType = \"youtube\";\n\t}\n\t\n\t\n\t/**\n\t * play vimeo\n\t */\n\tthis.playVimeo = function(videoID, isAutoplay){\n\t\t\n\t\tif(typeof isAutoplay == \"undefined\")\n\t\t\tvar isAutoplay = true;\n\t\t\n\t\tstopAndHidePlayers(\"vimeo\");\n\t\t\n\t\tg_objVimeo.show();\n\n\t\tg_vimeoAPI.putVideo(g_temp.vimeoPlayerID, videoID, \"100%\", \"100%\", isAutoplay);\n\t\t\n\t\t/*\n\t\tif(g_vimeoAPI.isPlayerReady() && g_temp.standAloneMode == true){\n\t\t\tg_vimeoAPI.changeVideo(videoID, isAutoplay);\n\t\t}\n\t\telse\n\t\t\tg_vimeoAPI.putVideo(g_temp.vimeoPlayerID, videoID, \"100%\", \"100%\", isAutoplay);\n\t\t */\n\t\t\n\t\tg_activePlayerType = \"vimeo\";\n\n\t}\n\t\n\t\n\t/**\n\t * play html5 video\n\t */\n\tthis.playHtml5Video = function(ogv, webm, mp4, posterImage, isAutoplay){\n\t\t\n\t\tif(typeof isAutoplay == \"undefined\")\n\t\t\tvar isAutoplay = true;\n\t\t\t\t\n\t\tstopAndHidePlayers(\"html5\");\n\t\t\n\t\tg_objHtml5.show();\n\t\t\n\t\t//trace(posterImage);\n\t\t\n\t\tvar data = {\n\t\t\t\togv: ogv, \n\t\t\t\twebm: webm, \n\t\t\t\tmp4: mp4, \n\t\t\t\tposterImage: posterImage \n\t\t\t};\n\t\t\n\t\tg_html5API.putVideo(g_temp.html5PlayerID, data, \"100%\", \"100%\", isAutoplay);\n\t\t\n\t\tg_activePlayerType = \"html5\";\n\n\t}\n\n\t/**\n\t * play sound cloud\n\t */\n\tthis.playSoundCloud = function(trackID, isAutoplay){\n\t\t\n\t\tif(typeof isAutoplay == \"undefined\")\n\t\t\tvar isAutoplay = true;\n\t\t\n\t\tstopAndHidePlayers(\"soundcloud\");\n\t\t\n\t\tg_objSoundCloud.show();\n\t\t\n\t\tg_soundCloudAPI.putSound(g_temp.soundCloudPlayerID, trackID, \"100%\", \"100%\", isAutoplay);\n\n\t\tg_activePlayerType = \"soundcloud\";\n\t\n\t}\n\t\n\t\n\t/**\n\t * play sound cloud\n\t */\n\tthis.playWistia = function(videoID, isAutoplay){\n\t\t\n\t\tif(typeof isAutoplay == \"undefined\")\n\t\t\tvar isAutoplay = true;\n\t\t\n\t\tstopAndHidePlayers(\"wistia\");\n\t\t\n\t\tg_objWistia.show();\n\t\t\n\t\tg_wistiaAPI.putVideo(g_temp.wistiaPlayerID, videoID, \"100%\", \"100%\", isAutoplay);\n\t\n\t\tg_activePlayerType = \"wistia\";\n\n\t}\n\t\n}\n\n\nvar g_ugYoutubeAPI = new UGYoutubeAPI();\nvar g_ugVimeoAPI = new UGVimeoAPI();\nvar g_ugHtml5MediaAPI = new UGHtml5MediaAPI();\nvar g_ugSoundCloudAPI = new UGSoundCloudAPI();\nvar g_ugWistiaAPI = new UGWistiaAPI();\n\n\n\t/**\n\t * prototype gallery funciton\n\t */\n\tjQuery.fn.unitegallery = function(options){\n\t\tvar element = jQuery(this);\n\t\tvar galleryID = \"#\" + element.attr(\"id\");\n\t\t\n\t\tif(!options)\n\t\t\tvar options = {};\n\t\t\t\t\n\t\tvar objGallery = new UniteGalleryMain();\n\t\tobjGallery.run(galleryID, options);\n\t\t\n\t\tvar api = new UG_API(objGallery);\n\t\t\n\t\treturn(api);\n\t}\n\n\t\n\t/**\n\t * check for min jquery version\n\t */\n\tfunction ugCheckForMinJQueryVersion(){\n\t\t\n\t\tvar isMinJQuery = g_ugFunctions.checkMinJqueryVersion(\"1.8.0\");\n\t\t\n\t\tif(isMinJQuery == false)\n\t\t\tthrow new Error(\"The gallery can run from jquery 1.8 You have jQuery \"+jQuery.fn.jquery+\" Please update your jQuery library.\");\n\t}\n\t\n\t\n\t/**\n\t * check for errors function\n\t */\n\tfunction ugCheckForErrors(galleryID, type){\n\n\t\t/**\n\t\t * check for jquery presents\n\t\t */\n\t\tfunction checkForJqueryPresents(){\n\t\t\tif(typeof jQuery == \"undefined\")\n\t\t\t\tthrow new Error(\"jQuery library not included\");\n\t\t}\n\t\t\n\t\t/**\n\t\t * check for double jquery error\n\t\t */\n\t\tfunction checkForDoubleJQuery(){\n\n\t\t\tif(typeof jQuery.fn.unitegallery == \"function\")\n\t\t\t\treturn(true);\n\t\t\t\n\t\t\tvar errorMessage = \"You have some jquery.js library include that comes after the gallery files js include.\";\n\t\t\terrorMessage += \"
This include eliminates the gallery libraries, and make it not work.\";\n\t\t\t\n\t\t\tif(type == \"cms\"){\n\t\t\t\terrorMessage += \"

To fix it you can:
    1. In the Gallery Settings -> Troubleshooting set option: Put JS Includes To Body option to true.\";\n\t\t\t\terrorMessage += \"
    2. Find the double jquery.js include and remove it.\";\n\t\t\t}else{\n\t\t\t\terrorMessage += \"

Please find and remove this jquery.js include and the gallery will work.
* There should be only one jquery.js include before all other js includes in the page.\";\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\tthrow new Error(errorMessage);\n\t\t}\n\t\t\n\t\ttry{\n\t\t\tif(type == \"jquery\"){\n\t\t\t\tcheckForJqueryPresents();\n\t\t\t\tugCheckForMinJQueryVersion();\n\t\t\t}else{\n\t\t\t\tugCheckForMinJQueryVersion();\n\t\t\t\tcheckForDoubleJQuery();\n\t\t\t}\n\t\t\t\n\t\t}catch(objError){\n\t\t\t\n\t\t\tvar message = objError.message;\n\t\t\tmessage = \"Unite Gallery Error: \"+ message;\n\t\t\tmessage = \"
\" + message + \"
\"\n\t\t\t\n\t\t\tif(type == \"jquery\"){\n\t\t\t\tvar objGallery = document.getElementById(galleryID);\n\t\t\t\tobjGallery.innerHTML = message;\n\t\t\t\tobjGallery.style.display = \"block\";\n\t\t\t}\n\t\t\telse\n\t\t\t\tjQuery(galleryID).show().html(message);\n\t\t\t\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\treturn(true);\n\t}\n\n\t\nfunction UniteGalleryMain(){\n\t\n\tvar t = this;\n\tvar g_galleryID;\n\tvar g_objGallery = jQuery(t), g_objWrapper, g_objParent;\n\tvar g_objThumbs, g_objSlider, g_functions = new UGFunctions(), g_objTabs, g_objLoadMore;\n\tvar g_arrItems = [], g_numItems, g_selectedItem = null, g_selectedItemIndex = -1;\n\tvar g_objTheme, g_objCache = {};\n\t\n\tthis.events = {\n\t\t\tITEM_CHANGE: \"item_change\",\n\t\t\tSIZE_CHANGE: \"size_change\",\n\t\t\tENTER_FULLSCREEN: \"enter_fullscreen\",\n\t\t\tEXIT_FULLSCREEN: \"exit_fullscreen\",\n\t\t\tSTART_PLAY: \"start_play\",\n\t\t\tSTOP_PLAY: \"stop_play\",\n\t\t\tPAUSE_PLAYING: \"pause_playing\",\n\t\t\tCONTINUE_PLAYING: \"continue_playing\",\n\t\t\tSLIDER_ACTION_START: \"slider_action_start\",\n\t\t\tSLIDER_ACTION_END: \"slider_action_end\",\n\t\t\tITEM_IMAGE_UPDATED: \"item_image_updated\",\n\t\t\tGALLERY_KEYPRESS: \"gallery_keypress\",\n\t\t\tGALLERY_BEFORE_REQUEST_ITEMS: \"gallery_before_request_items\",\t//before ajax load items\n\t\t\tOPEN_LIGHTBOX:\"open_lightbox\",\n\t\t\tCLOSE_LIGHTBOX:\"close_lightbox\"\t\t\t\n\t};\n\t\n\t\n\t//set the default gallery options\n\tvar g_options = {\t\t\t\t\n\t\t\tgallery_width:900,\t\t\t\t\t\t\t//gallery width\t\t\n\t\t\tgallery_height:500,\t\t\t\t\t\t\t//gallery height\n\t\t\t\n\t\t\tgallery_min_width: 150,\t\t\t\t\t\t//gallery minimal width when resizing\n\t\t\tgallery_min_height: 100,\t\t\t\t\t//gallery minimal height when resizing\n\t\t\t\n\t\t\tgallery_theme:\"default\",\t\t\t\t\t//default,compact,grid,slider - select your desired theme from the list of themes.\n\t\t\tgallery_skin:\"default\",\t\t\t\t\t\t//default, alexis etc... - the global skin of the gallery. Will change all gallery items by default.\n\t\t\t\n\t\t\tgallery_images_preload_type:\"minimal\",\t\t//all , minimal , visible - preload type of the images.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//minimal - only image nabours will be loaded each time.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//visible - visible thumbs images will be loaded each time.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t//all - load all the images first time.\n\t\t\t\n\t\t\tgallery_autoplay:false,\t\t\t\t\t\t//true / false - begin slideshow autoplay on start\n\t\t\tgallery_play_interval: 3000,\t\t\t\t//play interval of the slideshow\n\t\t\tgallery_pause_on_mouseover: true,\t\t\t//true,false - pause on mouseover when playing slideshow true/false\n\t\t\t\n\t\t\tgallery_mousewheel_role:\"zoom\",\t\t\t\t//none, zoom, advance\n\t\t\tgallery_control_keyboard: true,\t\t\t\t//true,false - enable / disble keyboard controls\n\t\t\tgallery_carousel:true,\t\t\t\t\t\t//true,false - next button on last image goes to first image.\n\t\t\t\n\t\t\tgallery_preserve_ratio: true,\t\t\t\t//true, false - preserver ratio when on window resize\n\t\t\tgallery_background_color: \"\",\t\t\t\t//set custom background color. If not set it will be taken from css.\n\t\t\tgallery_debug_errors:false,\t\t\t\t\t//show error message when there is some error on the gallery area.\n\t\t\tgallery_shuffle:false,\t\t\t\t\t\t//randomise position of items at start.\n\t\t\tgallery_urlajax:null,\t\t\t\t\t\t//ajax url for requesting new items etc.\n\t\t\tgallery_enable_tabs: false,\t\t\t\t\t//enable/disable category tabs\n\t\t\tgallery_enable_loadmore: false,\t\t\t\t//enable / disable loadmore button\n\t\t\tgallery_enable_cache: true,\t\t\t\t\t//enable caching items\n\t\t\tgallery_initial_catid: \"\"\t\t\t\t\t//initial category id (for caching)\n\t};\n\t\n\t//gallery_control_thumbs_mousewheel\n\t\n\tvar g_temp = {\t\t\t\t\t//temp variables\n\t\tobjCustomOptions:{},\n\t\tisAllItemsPreloaded:false,\t//flag that tells that all items started preloading\n\t\tisFreestyleMode:false,\t\t//no special html additions\n\t\tlastWidth:0,\n\t\tlastHeigh:0,\n\t\thandleResize: null,\n\t\tisInited: false,\n\t\tisPlayMode: false,\n\t\tisPlayModePaused: false,\n\t\tplayTimePassed: 0,\n\t\tplayTimeLastStep: 0,\n\t\tplayHandle: \"\",\n\t\tplayStepInterval: 33,\n\t\tobjProgress: null,\n\t\tisFakeFullscreen: false,\n\t\tthumbsType:null,\n\t\tisYoutubePresent:false,\t\t\t//flag if present youtube items\n\t\tisVimeoPresent:false,\t\t\t//flag if present vimeo items\n\t\tisHtml5VideoPresent:false,\t\t//flag if present html5 video items\n\t\tisSoundCloudPresent:false,\t\t//flag if present soundcloud items\n\t\tisWistiaPresent: false,\t\t\t//flag if some wistia movie present\n\t\tresizeDelay: 100,\n\t\tisRunFirstTime: true,\n\t\toriginalOptions: {},\n\t\tfuncCustomHeight: null\t\t\t//custom height function, set by the theme if needed\n\t};\n\t\n\t\n\t\n\tfunction __________INIT_GALLERY_______(){};\n\t\n\t/**\n\t * get theme function from theme name\n\t */\n\tfunction getThemeFunction(themeName){\n\t\t var themeFunction = themeName;\n\t\tif(themeFunction.indexOf(\"UGTheme_\") == -1)\n\t\t\t themeFunction = \"UGTheme_\" + themeFunction;\n\t\t\n\t\treturn(themeFunction);\n\t}\n\n\t/**\n\t * init the theme\n\t */\n\tfunction initTheme(objCustomOptions){\n\t\t \n\t\t//set theme function:\n\t\t if(objCustomOptions.hasOwnProperty(\"gallery_theme\"))\n\t\t\t g_options.gallery_theme = objCustomOptions.gallery_theme;\n\t\t else{\n\t\t\t var defaultTheme = g_options.gallery_theme;\n\t\t\t if(g_ugFunctions.isThemeRegistered(defaultTheme) == false)\n\t\t\t\t g_options.gallery_theme = g_ugFunctions.getFirstRegisteredTheme();\n\t\t }\n\t\t \n\t\t var themeFunction = getThemeFunction(g_options.gallery_theme);\n\t\t \n\t\t try{\n\t\t\t g_options.gallery_theme = eval(themeFunction);\n\t\t }catch(e){\n\t\t\t //check registered themes\n\t\t };\n\t\t \n\t\t g_options.gallery_theme = eval(themeFunction);\n\t\t \n\t\t //init the theme\n\t\t g_objTheme = new g_options.gallery_theme();\n\t\t g_objTheme.init(t, objCustomOptions);\n\t}\n\t\n\t\n\t/**\n\t * reset all the options for the second time run\n\t */\n\tfunction resetOptions(){\n\t \t \n\t\t g_options = jQuery.extend({}, g_temp.originalOptions);\n\t\t \n\t\t g_selectedItemIndex = -1;\n\t\t g_selectedItem = null;\n\t\t g_objSlider = undefined;\n\t\t g_objThumbs = undefined;\n\t\t g_objSlider = undefined; \n\t}\n\t\n\t\n\t/**\n\t * check for some errors and fire error if needed\n\t */\n\tfunction checkForStartupErrors(){\n\t\t\n\t\t//protection agains old jquery version\n\t\ttry{\n\t\t\tugCheckForMinJQueryVersion();\n\t\t}catch(e){\n\t\t\tthrowErrorShowMessage(e.message);\n\t\t}\n\t\t\n\t\t//protection against some jquery ui function change\n\t if(typeof g_objWrapper.outerWidth() == \"object\")\n\t \t throwErrorShowMessage(\"You have some buggy script. most chances jquery-ui.js that destroy jquery outerWidth, outerHeight functions. The gallery can't run. Please update jquery-ui.js to latest version.\");\n\t \n\t //check for late jquery include\n\t setTimeout(function(){ugCheckForErrors(g_galleryID, \"cms\")} , 5000);\n\t \n\t}\n\t\n\t\n\t\n\t/**\n\t * the gallery\n\t */\n\tfunction runGallery(galleryID, objCustomOptions, htmlItems, cacheID){\n\t\t\t\n\t\t\tvar isCustomOptions = (typeof objCustomOptions == \"object\");\n\t\t\t\n\t\t\tif(isCustomOptions)\n\t\t g_temp.objCustomOptions = objCustomOptions;\n\t\t\t \t\t\t \n\t\t if(g_temp.isRunFirstTime == true){\n\t\t\t\t\n\t\t \t g_galleryID = galleryID;\n\t\t\t\t g_objWrapper = jQuery(g_galleryID);\n\t\t\t\t if(g_objWrapper.length == 0){\n\t\t\t\t\t trace(\"div with id: \"+g_galleryID+\" not found\");\n\t\t\t\t\t return(false);\n\t\t\t\t }\n\n\t\t\t\t g_objParent = g_objWrapper.parent();\n\t\t\t\t \n\t\t\t\t checkForStartupErrors();\n\t\t\t\t \n\t\t\t\t g_temp.originalOptions = jQuery.extend({}, g_options);\n\t\t\t\t \n\t\t\t\t //merge options\n\t\t\t\t if(isCustomOptions)\n\t\t\t\t\t g_options = jQuery.extend(g_options, objCustomOptions);\n\t\t\t\t \n\t\t\t\t //cache items\n\t\t\t\t if(g_options.gallery_enable_cache == true && g_options.gallery_initial_catid)\n\t\t\t\t\t cacheItems(g_options.gallery_initial_catid);\n\t\t\t\t\n\t\t\t\t //set size class\n\t\t\t\t t.setSizeClass();\n\t\t\t\t \n\t\t\t\t //fill arrItems\n\t\t\t\t var objItems = g_objWrapper.children();\n\t\t\t\t \n\t\t\t\t fillItemsArray(objItems);\n\t\t\t\t loadAPIs();\n\t\t\t\t \n\t\t\t\t //hide images:\n\t\t\t\t g_objWrapper.find(\"img\").fadeTo(0,0).hide();\n\t\t\t\t g_objWrapper.show();\n\t\t\n\t\t\t\t clearInitData();\n\t\t \t \n\t\t }else{\t\t//reset options - not first time run\n\t\t \t \n\t\t \t t.destroy();\n\t\t \t \n\t\t \t resetOptions();\n\n\t\t \t g_options = jQuery.extend(g_options, g_temp.objCustomOptions);\n\t \t\t \n\t\t \t if(htmlItems){\n\t\t \t\t \n\t\t \t\t //cache items\n\t\t \t\t if(cacheID && g_options.gallery_enable_cache == true)\n\t\t \t\t\t cacheItems(cacheID, htmlItems);\n\t\t \t\t \n\t\t \t\t if(htmlItems == \"noitems\"){\n\t\t \t\t\t showErrorMessage(\"No items in this category\",\"\");\n\t\t \t\t\t return(false);\n\t\t\t \t }\n\t\t \t\t \n\t\t \t\t g_objWrapper.html(htmlItems);\n\t\t \t\t \n\t\t \t\t var objItems = g_objWrapper.children();\n\t\t \t\t fillItemsArray(objItems);\n\t\t\t\t\t \n\t\t \t\t loadAPIs();\n\t\t\t\t\t \n\t\t\t\t\t g_objWrapper.children().fadeTo(0,0).hide();\n\t\t\t\t\t \n\t\t\t\t\t g_objWrapper.show();\n\t\t\t\t\t clearInitData();\n\t\t \t }\n\t\t \n\t\t }\n\t\t \n\t\t\t //init tabs\n\t\t\t if(g_temp.isRunFirstTime == true && g_options.gallery_enable_tabs == true){\n\t\t\t\t g_objTabs = new UGTabs();\n\t\t\t\t g_objTabs.init(t, g_options);\n\t\t\t }\n\t\t\t \n\t\t\t //init loadmore button\n\t\t\t if(g_temp.isRunFirstTime == true && g_options.gallery_enable_loadmore == true){\n\t\t\t\t g_objLoadMore = new UGLoadMore();\n\t\t\t\t g_objLoadMore.init(t, g_options);\n\t\t\t }\n\t\t\t \n\t\t\t //modify and verify the params\n\t\t\t if(isCustomOptions)\n\t\t\t\t modifyInitParams(g_temp.objCustomOptions);\n\t\t\t \t\t\t \n\t\t\t validateParams();\n\t\t\t \n\t\t\t //shuffle items\n\t\t\t if(g_options.gallery_shuffle == true)\n\t\t\t\t t.shuffleItems();\n\t\t\t \n\t\t\t //init the theme\n\t\t\t initTheme(g_temp.objCustomOptions);\n\t\t\t \t\t\t \t\t\t\t \n\t\t\t //set gallery html elements\n\t\t\t setGalleryHtml();\n\n\t\t\t //set html properties to all elements\n\t\t\t setHtmlObjectsProperties();\n\t\t\t \n\t\t\t var galleryWidth = g_objWrapper.width();\n\t\t\t \n\t\t\t if(galleryWidth == 0){\n\t\t\t\t g_functions.waitForWidth(g_objWrapper, runGalleryActually);\n\t\t\t }else\n\t\t\t\t runGalleryActually();\n\t\t\t \n\t}\n\t\n\t\n\t/**\n\t * actually run the gallery\n\t */\n\tfunction runGalleryActually(){\n\t\t \n\t\tt.setSizeClass();\n\t\t\n\t\tif(g_temp.isFreestyleMode == false){\n\t\t\t \t\n\t\t\t if(g_options.gallery_preserve_ratio == true)\n\t\t\t\t setHeightByOriginalRatio();\n\t\t }\n\t\t \n\t\t g_objTheme.run();\n\t\t \n\t\t if(g_objTabs && g_temp.isRunFirstTime)\n\t\t\t g_objTabs.run();\n\t\t \n\t\t \n\t\t preloadBigImages();\n\t\t \n\t\t initEvents();\n\t\t \n\t\t //select first item\n\t\t if(g_numItems > 0) \n\t\t\t t.selectItem(0);\n\t\t \n\t\t \n\t\t //set autoplay\n\t\t if(g_options.gallery_autoplay == true)\n\t\t\t t.startPlayMode();\n\t\t \n\t\t g_temp.isRunFirstTime = false;\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * \n\t * show error message\n\t */\n\tfunction showErrorMessage(message, prefix){\n\n\t\tif(typeof prefix == \"undefined\")\n\t\t\tvar prefix = \"Unite Gallery Error: \";\t\t\t\n\t\telse\n\t\t\tprefix = \"\"+prefix+\": \";\n\t\t\n\t\tmessage = prefix + message;\n\t\t\n\t\tvar html = \"
\" + message + \"
\";\n\t\t\n\t\tg_objWrapper.children().remove();\n\t\t\n\t\tg_objWrapper.html(html);\n\t\tg_objWrapper.show();\t\t\n\t}\n\t\n\t/**\n\t * show error message and throw error\n\t */\n\tfunction throwErrorShowMessage(message){\n\t\tshowErrorMessage(message);\n\t\tthrow new Error(message);\n\t}\n\t\n\t\n\t/**\n\t * \n\t * @param objParams\n\t */\n\t function modifyInitParams(){\n\t\t \n\t\t //set default for preloading\n\t\t if(!g_options.gallery_images_preload_type)\n\t\t\t g_options.gallery_images_preload_type = \"minimal\";\n\t\t \n\t\t //normalize gallery min height and width\n\t\t if(g_options.gallery_min_height == undefined || g_options.gallery_height < g_options.gallery_min_height){\n\t\t\t g_options.gallery_min_height = 0;\n\t\t }\n\t\t \n\t\t if(g_options.gallery_min_width == undefined || g_options.gallery_width < g_options.gallery_min_width){\n\t\t\t g_options.gallery_min_width = 0;\n\t\t }\n\t\t \n\t }\n\n\t\n\t/**\n\t * validate the init parameters\n\t */\n\t function validateParams(){\n\t\t \n\t\t //validate theme:\n\t\t if(!g_options.gallery_theme)\n\t\t\t throw new Error(\"The gallery can't run without theme\");\n\t\t \t\t \n\t\t //if(typeof g_options.theme != \"function\")\n\t\t\t //throw new Error(\"Wrong theme function: \" + g_options.theme.toString());\n\t\t \n\t\t //validate height and width\n\t\t if(jQuery.isNumeric(g_options.gallery_height) && g_options.gallery_height < g_options.gallery_min_height)\n\t\t\t throw new Error(\"The gallery_height option must be bigger then gallery_min_height option\");\n\t\t \n\t\t if(g_options.gallery_width < g_options.gallery_min_width)\n\t\t\t throw new Error(\"The gallery_width option must be bigger then gallery_min_width option\");\n\t\t \n\t\t \n\t }\n\t \n\t \n\t /**\n\t * set gallery html\n\t */\n\tfunction setGalleryHtml(){\n\t\t\n\t\t //add classes and divs\n\t\t g_objWrapper.addClass(\"ug-gallery-wrapper\");\n\t\t \n\t\t g_objWrapper.append(\"\");\n\t\t \n\t\t t.setSizeClass();\n\t}\n\t\n\t\n\t/**\n\t * if the thumbs panel don't exists, delete initial images from dom\n\t */\n\tfunction clearInitData(){\n\t\t\n\t\tvar objItems = g_objWrapper.children().remove();\n\t}\n\t\n\t\n\t/**\n\t * store last gallery size\n\t */\n\tfunction storeLastSize(){\n\t\tvar objSize = t.getSize();\n\t\t\n\t\tg_temp.lastWidth = objSize.width;\n\t\tg_temp.lastHeight = objSize.height;\n\t}\n\t\n\t\n\t/**\n\t * set gallery height by original ratio\n\t */\n\tfunction setHeightByOriginalRatio(){\n\t\t\n\t\tvar objSize = t.getSize();\n\t\t\t\t\n\t\tvar ratio = objSize.width / objSize.height;\n\t\t\n\t\tif(ratio != objSize.orig_ratio){\n\t\t\t\n\t\t\tvar newHeight = objSize.width / objSize.orig_ratio;\n\t\t\tnewHeight = Math.round(newHeight);\n\t\t\t\n\t\t\tif(newHeight < g_options.gallery_min_height)\n\t\t\t\tnewHeight = g_options.gallery_min_height;\n\t\t\t\n\t\t\tg_objWrapper.height(newHeight);\n\t\t}\n\t\n\t}\n\n\t\n\t/**\n\t * set properties of the html objects\n\t */\n\tfunction setHtmlObjectsProperties(){\n\t\t \n\t\t\tvar optionWidth = g_functions.getCssSizeParam(g_options.gallery_width);\n\t\t\t\n\t\t //set size\t\t\n\t\t var objCss = {\n\t\t\t\t //\"width\":optionWidth,\t\t//make it work within tabs\n\t\t\t\t \"max-width\":optionWidth,\n\t\t\t\t\t\"min-width\":g_functions.getCssSizeParam(g_options.gallery_min_width)\n\t\t\t};\n\t\t \n\t\t if(g_temp.isFreestyleMode == false){\n\t\t\t \n\t\t\t var galleryHeight = g_functions.getCssSizeParam(g_options.gallery_height);\n\t\t\t objCss[\"height\"] = galleryHeight;\n\t\t \n\t\t }else{\n\t\t\t objCss[\"overflow\"] = \"visible\";\t\t\t \n\t\t }\n\t\t \n\t\t //set background color\n\t\t if(g_options.gallery_background_color)\n\t\t\t objCss[\"background-color\"] = g_options.gallery_background_color;\n\t\t \n\t\t \n\t\t g_objWrapper.css(objCss);\n\t\t \n\t}\n\n\t\n\t/**\n\t * fill item by html child\n\t */\n\tfunction fillItemByChild(objChild){\n\t\t\n\t\tvar isMobile = t.isMobileMode();\n\t\t\n\t\t var tagname = objChild.prop(\"tagName\").toLowerCase();\n\t\t \n\t\t //handle link wrapper\n\t\t var itemLink = \"\";\n\t\t if(tagname == \"a\"){\n\t\t\t itemLink = objChild.attr(\"href\");\n\t\t\t objChild = objChild.children();\n\t\t\t var tagname = objChild.prop(\"tagName\").toLowerCase();\t\t\t\t \n\t\t }\n\t\t \n\t\t var itemType = objChild.data(\"type\");\n\t\t if(itemType == undefined)\n\t\t\t itemType = \"image\";\n\t\t \n\t\t var objItem = {};\n\t\t objItem.type = itemType;\n\t\t \n\t\t if(tagname == \"img\"){\n\t\t\t \n\t\t\t //protection agains lasy load\n\t\t\t var lasyLoadSrc = objChild.data(\"lazyload-src\");\n\t\t\t if(lasyLoadSrc && lasyLoadSrc != \"\"){\n\t\t\t\t objChild.attr(\"src\", lasyLoadSrc);\n\t\t\t\t jQuery.removeData(objChild, \"lazyload-src\");\n\t\t\t }\n\t\t\t \n\t\t\t //src is thumb\n\t\t\t var urlImage = objChild.data(\"image\");\n\t\t\t var urlThumb = objChild.data(\"thumb\");\n\t\t\t \n\t\t\t if(typeof(urlImage) == \"undefined\")\n\t\t\t\t urlImage = null;\n\t\t\t \n\t\t\t if(typeof(urlThumb) == \"undefined\")\n\t\t\t\t urlThumb = null;\n\t\t\t \n\t\t\t var imageSrc = objChild.attr(\"src\");\n\t\t\t \n\t\t\t if(!urlImage)\n\t\t\t\t urlImage = imageSrc;\n\t\t\t\t \n\t\t\t if(!urlThumb)\n\t\t\t\t urlThumb = imageSrc;\n\t\t\t \n\t\t\t if(!urlThumb)\n\t\t\t\t urlThumb = urlImage;\n\t\t\t \n\t\t\t if(!urlImage)\n\t\t\t\t urlImage = urlThumb;\n\t\t\t \n\t\t\t objItem.urlThumb = urlThumb;\n\t\t\t objItem.urlImage = urlImage;\n\t\t\t \t\t\t\t \n\t\t\t objItem.title = objChild.attr(\"alt\");\n\t\t\t \n\t\t\t //always set thumb image to object\n\t\t\t objItem.objThumbImage = objChild;\n\t\t\t \n\t\t\t objItem.objThumbImage.attr(\"src\", objItem.urlThumb);\n\t\t\t \n\t\t }else{\n\t\t\t \n\t\t\t if(itemType == \"image\"){\n\t\t\t\t trace(\"Problematic gallery item found:\");\n\t\t\t\t trace(objChild);\n\t\t\t\t trace(\"Please look for some third party js script that could add this item to the gallery\");\n\t\t\t\t throw new Error(\"The item should not be image type\");\n\t\t\t }\n\t\t\t \n\t\t\t objItem.urlThumb = objChild.data(\"thumb\");\n\t\t\t objItem.title = objChild.data(\"title\");\n\t\t\t objItem.objThumbImage = null;\n\t\t\t objItem.urlImage = objChild.data(\"image\");\n\t\t }\n\t\t \n\t\t //trace(isMobile);\n\t\t \n\t\t //check mobile version images\n\t\t if(isMobile == true){\n\t\t\t \n\t\t\t var urlThumbMobile = objChild.data(\"thumb-mobile\");\n\t\t\t if(typeof urlThumbMobile != \"undefined\" && urlThumbMobile != \"\"){\n\t\t\t\t objItem.urlThumb = urlThumbMobile;\n \t\t\t \t \n\t\t\t\t if(tagname == \"img\")\n \t\t\t\t\t objChild.attr(\"src\",objItem.urlThumb);\n\t\t\t }\n\t\t\t \n\t\t\t var urlImageMobile = objChild.data(\"image-mobile\");\n\t\t\t if(typeof urlImageMobile != \"undefined\" && urlImageMobile != \"\")\n\t\t\t\t objItem.urlImage = urlImageMobile;\n\t\t }\n\t\t \n\t\t objItem.link = itemLink;\n\t\t \n\t\t //get description:\n\t\t objItem.description = objChild.attr(\"title\");\n\t\t if(!objItem.description)\t\t\t\t \n\t\t\t objItem.description = objChild.data(\"description\");\n\t\t \n\t\t if(!objItem.description)\n\t\t\t objItem.description = \"\";\n\t\t \n\t\t objItem.isNewAdded = false;\t\t//fill outside\n\t\t objItem.isLoaded = false;\n\t\t objItem.isThumbImageLoaded = false;\t//if the image loaded or error load\n\t\t objItem.objPreloadImage = null;\n\t\t objItem.isBigImageLoadStarted = false;\n\t\t objItem.isBigImageLoaded = false;\n\t\t objItem.isBigImageLoadError = false;\t\t\t \n\t\t objItem.imageWidth = 0;\n\t\t objItem.imageHeight = 0;\n\t\t \n\t\t //set thumb size\n\t\t objItem.thumbWidth = 0;\n\t\t objItem.thumbHeight = 0;\n\t\t objItem.thumbRatioByWidth = 0;\n\t\t objItem.thumbRatioByHeight = 0;\n\t\t \n\t\t var dataWidth = objChild.data(\"width\");\n\t\t var dataHeight = objChild.data(\"height\");\n\t\t if(dataWidth && typeof dataWidth == \"number\" && dataHeight && typeof dataHeight == \"number\"){\n\t\t\t objItem.thumbWidth = dataWidth;\n\t\t\t objItem.thumbHeight = dataHeight;\n\t\t\t objItem.thumbRatioByWidth = dataWidth / dataHeight;\n\t\t\t objItem.thumbRatioByHeight = dataHeight / dataWidth;\n\t\t }\n\t\t \n\t\t objItem.addHtml = null;\n\t\t \n\t\t var isImageMissing = (objItem.urlImage == undefined || objItem.urlImage == \"\");\n\t\t var isThumbMissing = (objItem.urlThumb == undefined || objItem.urlThumb == \"\");\n\t\t \n\t\t switch(objItem.type){\n\t\t \tcase \"youtube\":\t\t\t \t\t\n\t\t\t\t objItem.videoid = objChild.data(\"videoid\");\n\t\t \t\t \n\t\t\t\t if(isImageMissing || isThumbMissing){\n\t\t\t\t\t \n\t\t\t\t\t var objImages = g_ugYoutubeAPI.getVideoImages(objItem.videoid);\n\t\t\t\t \t\t\n\t\t\t \t\t //set preview image\n\t\t\t \t\t if(isImageMissing)\n\t\t\t \t\t\tobjItem.urlImage = objImages.preview;\n\t\t\t \t\t\n\t\t\t \t\t //set thumb image\n\t\t\t \t\t if(isThumbMissing){\n\t\t\t \t\t\t \tobjItem.urlThumb = objImages.thumb;\n\t\t\t \t\t\t\t\n\t\t\t \t\t\t \t if(tagname == \"img\")\n\t\t\t \t\t\t\t\t objChild.attr(\"src\",objItem.urlThumb);\n\t\t\t \t\t }\n\t\t\t\t\t \n\t\t\t\t }\n\t\t\t\t \n\t\t\t\t g_temp.isYoutubePresent = true;\n\t\t\tbreak;\n\t\t \tcase \"vimeo\":\n\t\t \t\t\n\t\t\t\tobjItem.videoid = objChild.data(\"videoid\");\n\t\t\t\t\t\t\t\t\t\n\t\t\t\tg_temp.isVimeoPresent = true;\n\t\t \tbreak;\n\t\t \tcase \"html5video\":\n\t\t \t\tobjItem.videoogv = objChild.data(\"videoogv\");\n\t\t \t\tobjItem.videowebm = objChild.data(\"videowebm\");\n\t\t \t\tobjItem.videomp4 = objChild.data(\"videomp4\");\n\t\t \t\t\n\t\t \t\tg_temp.isHtml5VideoPresent = true;\n\t\t \tbreak;\n\t\t \tcase \"soundcloud\":\n\t\t \t\tobjItem.trackid = objChild.data(\"trackid\");\n\t\t \t\tg_temp.isSoundCloudPresent = true;\n\t\t \tbreak;\n\t\t \tcase \"wistia\":\n\t\t\t\t objItem.videoid = objChild.data(\"videoid\");\n\t\t\t\t g_temp.isWistiaPresent = true;\n\t\t \tbreak;\n\t\t \tcase \"custom\":\n\t\t\t\tvar objChildImage = objChild.children(\"img\");\n\t\t \t\t\n\t\t\t\tif(objChildImage.length){\n\t\t\t\t\tobjChildImage = jQuery(objChildImage[0]);\n\t\t\t\t\t\n\t\t\t\t objItem.urlThumb = objChildImage.attr(\"src\");\n\t\t\t\t objItem.title = objChildImage.attr(\"alt\");\n\t\t\t\t objItem.objThumbImage = objChildImage;\n\t\t \t\t}\n\t\t \t\t\n\t\t\t\t//add additional html\n\t\t\t\tvar objChildren = objChild.children().not(\"img:first-child\");\n\t\t \t\t\n\t\t\t\tif(objChildren.length)\n\t\t\t\t\tobjItem.addHtml = objChildren.clone();\n\t\t \t\t\n\t\t \tbreak;\n\t\t }\n\t\t\n\t\t //clear not needed attributes\n\t\t if(objItem.objThumbImage){\n\t\t\t objItem.objThumbImage.removeAttr(\"data-description\", \"\");\n\t\t\t objItem.objThumbImage.removeAttr(\"data-image\", \"\");\t\t\t\t \n\t\t\t objItem.objThumbImage.removeAttr(\"data-thumb\", \"\");\t\t\t\t \n\t\t\t objItem.objThumbImage.removeAttr(\"title\", \"\");\t\t\t\t \n\t\t }\n\t\t \n\t\t \n\t\t return(objItem);\n\t}\n\t\n\t\n\t/**\n\t * fill items array from images object\n\t */\n\tfunction fillItemsArray(arrChildren, isAppend){\n\t\t\n\t\tif(isAppend !== true){\n\t\t\tg_arrItems = [];\n\t\t}else{\t //append\n\t\t\t\n\t\t\t//clear last new added items\n\t\t\tfor(var i=0;i').attr(\"src\", imageUrl);\n\t\tobjItem.objPreloadImage.data(\"itemIndex\", objItem.index);\n\t\t\n\t\t//set image load event (not that reliable)\n\t\tobjItem.objPreloadImage.on(\"load\", t.onItemBigImageLoaded);\n\t\t\n\t\t//set load error event\n\t\tobjItem.objPreloadImage.on( \"error\", function(){\n\t\t\tvar objImage = jQuery(this);\n\t\t\tvar itemIndex = objImage.data(\"itemIndex\");\n\t\t\tvar objItem = g_arrItems[itemIndex];\n\t\t\t\n\t\t\t//update error:\n\t\t\tobjItem.isBigImageLoadError = true;\n\t\t\tobjItem.isBigImageLoaded = false;\n\t\t\t\n\t\t\t//print error\n\t\t\tvar imageUrl = jQuery(this).attr(\"src\");\n\t\t\tconsole.log(\"Can't load image: \"+ imageUrl);\n\t\t\t\n\t\t\t//try to load the image again\n\t\t\tg_objGallery.trigger(t.events.ITEM_IMAGE_UPDATED, [itemIndex, objItem.urlImage]);\n\t\t\tobjItem.objThumbImage.attr(\"src\", objItem.urlThumb);\n\t\t\t\n\t\t});\n\t\t\n\t\t//check the all items started preloading flag\n\t\tcheckAllItemsStartedPreloading();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on item big image loaded event function. \n\t * Update image size and that the image has been preloaded\n\t * can be called from another objects like the slider\n\t */\n\tthis.onItemBigImageLoaded = function(event, objImage){\n\t\t\t\t\n\t\tif(!objImage)\n\t\t\tvar objImage = jQuery(this);\n\t\t\n\t\tvar itemIndex = objImage.data(\"itemIndex\");\n\t\t\n\t\tvar objItem = g_arrItems[itemIndex];\n\t\t\n\t\tobjItem.isBigImageLoaded = true;\n\t\t\n\t\t//get size with fallback function\n\t\tvar objSize = g_functions.getImageOriginalSize(objImage);\n\t\t\n\t\tobjItem.imageWidth = objSize.width;\n\t\tobjItem.imageHeight = objSize.height;\t\t\n\t}\n\t\n\t/**\n\t * check and fill image size in item object\n\t */\n\tthis.checkFillImageSize = function(objImage, objItem){\n\t\t\n\t\tif(!objItem){\n\t\t\tvar itemIndex = objImage.data(\"itemIndex\");\n\t\t\tif(itemIndex === undefined)\n\t\t\t\tthrow new Error(\"Wrong image given to gallery.checkFillImageSize\");\n\t\t\t\n\t\t\tvar objItem = g_arrItems[itemIndex];\n\t\t}\n\t\t\n\t\tvar objSize = g_functions.getImageOriginalSize(objImage);\n\t\t\n\t\tobjItem.imageWidth = objSize.width;\n\t\tobjItem.imageHeight = objSize.height;\t\t\n\t}\n\t\n\t\n\t/**\n\t * preload next images near current item\n\t */\n\tfunction preloadNearBigImages(objItem){\n\t\t\n\t\tif(g_temp.isAllItemsPreloaded == true)\n\t\t\treturn(false);\n\t\t\n\t\tif(!objItem)\n\t\t\tvar objItem = g_selectedItem;\n\t\t\n\t\tif(!objItem)\n\t\t\treturn(true);\n\t\t\t\n\t\tvar currentIndex = objItem.index;\n\t\tvar lastItemIndex = currentIndex - 1;\n\t\tvar nextItemIndex = currentIndex + 1;\n\t\t\n\t\tif(lastItemIndex > 0)\n\t\t\tpreloadItemImage(g_arrItems[lastItemIndex]);\n\t\t\n\t\tif(nextItemIndex < g_numItems)\n\t\t\tpreloadItemImage(g_arrItems[nextItemIndex]);\n\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * check that all items started preloading, if do, set \n\t * flag g_temp.isAllItemsPreloaded to true\n\t */\n\tfunction checkAllItemsStartedPreloading(){\n\t\t\n\t\tif(g_temp.isAllItemsPreloaded == true)\n\t\t\treturn(false);\n\t\t\n\t\t//if some of the items not started, exit function:\n\t\tfor(var index in g_arrItems){\n\t\t\tif(g_arrItems[index].isBigImageLoadStarted == false)\n\t\t\t\treturn(false);\n\t\t}\n\t\t\n\t\t//if all started, set flag to true\n\t\tg_temp.isAllItemsPreloaded = true;\t\n\t}\n\t\n\t\n\t/**\n\t * set freestyle mode\n\t */\n\tthis.setFreestyleMode = function(){\n\t\t\n\t\tg_temp.isFreestyleMode = true;\n\t\n\t}\n\t\n\t\n\t/**\n\t * attach thumbs panel to the gallery\n\t */\n\tthis.attachThumbsPanel = function(type, objThumbs){\n\t\tg_temp.thumbsType = type;\n\t\tg_objThumbs = objThumbs;\n\t}\n\t\n\t\n\t/**\n\t * init the slider\n\t */\t\n\tthis.initSlider = function(customOptions, optionsPrefix){\n\t\t \n\t\t //mix options with user options\n\t\t if(!customOptions)\n\t\t\t var customOptions = {};\n\t\t \t\t \n\t\t customOptions = jQuery.extend(g_temp.objCustomOptions, customOptions);\n\t\t \n\t\t g_objSlider = new UGSlider();\t\t \n\t\t g_objSlider.init(t, customOptions, optionsPrefix);\n\t}\n\t\n\t\n\tfunction __________END_INIT_GALLERY_______(){};\n\t\n\tfunction __________EVENTS_____________(){};\n\n\t\n\t/**\n\t * on gallery mousewheel event handler, advance the thumbs\n\t */\n\tthis.onGalleryMouseWheel = function(event, delta, deltaX, deltaY){\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\tif(delta > 0)\n\t\t\tt.prevItem();\n\t\telse\n\t\t\tt.nextItem();\n\t}\n\t\n\t\n\t/**\n\t * on mouse enter event\n\t */\n\tfunction onSliderMouseEnter(event){\n\t\t\n\t\tif(g_options.gallery_pause_on_mouseover == true && t.isFullScreen() == false && g_temp.isPlayMode == true && g_objSlider && g_objSlider.isSlideActionActive() == false)\n\t\t\tt.pausePlaying();\n\t}\n\t\n\t\n\t/**\n\t * on mouse move event\n\t */\n\tfunction onSliderMouseLeave(event){\n\t\t\n\t\tif(g_options.gallery_pause_on_mouseover == true && g_temp.isPlayMode == true && g_objSlider && g_objSlider.isSlideActionActive() == false){\n\t\t\t\n\t\t\tvar isStillLoading = g_objSlider.isCurrentSlideLoadingImage();\n\t\t\t\n\t\t\tif(isStillLoading == false)\n\t\t\t\tt.continuePlaying();\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on keypress - keyboard control\n\t */\n\tfunction onKeyPress(event){\n\t\t \n\t\tvar obj = jQuery(event.target);\n\t\tif(obj.is(\"textarea\") || obj.is(\"select\") || obj.is(\"input\"))\n\t\t\treturn(true);\n\t\t\t\t\t\t\n\t\t var keyCode = (event.charCode) ? event.charCode :((event.keyCode) ? event.keyCode :((event.which) ? event.which : 0));\n\t\t \n\t\t var wasAction = true;\n\t\t \n\t\t switch(keyCode){\n\t\t\t case 39:\t//right key\n\t\t\t\t t.nextItem();\n\t\t\t break;\n\t\t\t case 37:\t//left key\n\t\t\t\t t.prevItem();\n\t\t\t break;\n\t\t\t default:\n\t\t\t\t wasAction = false;\n\t\t\t break; \n\t\t }\n\t\t \n\t\t //only first page gallery affected\n\t\t \n\t\t if(wasAction == true){\n\t\t\t event.preventDefault();\n\t\t\t event.stopPropagation();\n\t\t\t event.stopImmediatePropagation();\n\t\t }\n\t\t \n\t\tg_objGallery.trigger(t.events.GALLERY_KEYPRESS, [keyCode,event]);\n\t}\n\t\n\t\n\t/**\n\t * check that the gallery resized, if do, trigger onresize event\n\t */\n\tfunction onGalleryResized(){\n\t\t\n\t\tvar objSize = t.getSize();\n\t\t\n\t\tif(objSize.width == 0)\t//fix hidden gallery change\n\t\t\treturn(true);\n\t\t\n\t\tt.setSizeClass();\n\t\t\n\t\tvar objSize = t.getSize();\n\t\t\n\t\tif(objSize.width != g_temp.lastWidth || (g_temp.isFreestyleMode == false && objSize.height != g_temp.lastHeight)){\n\t\t\t\n\t\t\tvar heightWasSet = false;\n\t\t\t\n\t\t\t//set height with custom function (if exists)\n\t\t\tif(g_temp.funcCustomHeight){\n\t\t\t\tvar newHeight = g_temp.funcCustomHeight(objSize);\n\t\t\t\tif(newHeight){\n\t\t\t\t\tg_objWrapper.height(newHeight);\n\t\t\t\t\theightWasSet = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(heightWasSet == false && g_options.gallery_preserve_ratio == true && g_temp.isFreestyleMode == false)\n\t\t\t\tsetHeightByOriginalRatio();\n\t\t\t\n\t\t\tstoreLastSize();\n\t\t\tg_objGallery.trigger(t.events.SIZE_CHANGE);\n\t\t\t\n\t\t}\n\t\t\n\t}\n\n\t\n\t/**\n\t * on strip move event\n\t * preload visible images if that option selected\n\t */\n\tfunction onThumbsChange(event){\n\t\t\n\t\t//preload visible images \n\t\tif(g_options.gallery_images_preload_type == \"visible\" && g_temp.isAllItemsPreloaded == false){\n\t\t\tpreloadBigImages();\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on full screen change event\n\t */\n\tfunction onFullScreenChange(){\n\t\t\n\t\t\n\t\tvar isFullscreen = g_functions.isFullScreen();\n\t\tvar event = isFullscreen ? t.events.ENTER_FULLSCREEN:t.events.EXIT_FULLSCREEN; \n\n\t\t var fullscreenID = g_functions.getGlobalData(\"fullscreenID\");\n\t\t \n\t\t //check if this gallery was affected\n\t\t if(g_galleryID !== fullscreenID)\n\t\t\t return(true);\n\t\t \t\t \n\t\t //add classes for the gallery\n\t\t if(isFullscreen){\n\t\t\t g_objWrapper.addClass(\"ug-fullscreen\");\n\t\t }else{\n\t\t\t g_objWrapper.removeClass(\"ug-fullscreen\");\n\t\t }\n\n\t\t g_objGallery.trigger(event);\n\t\t \n\t\t onGalleryResized();\n\t}\n\t\n\t/**\n\t * on big image updated, if needed - preload this item image\n\t */\n\tfunction onItemImageUpdated(event, index){\n\t\t\n\t\tvar objItem = t.getItem(index);\t\t\n\t\tcheckPreloadItemImage(objItem);\t\t\n\t}\n\t\n\t/**\n\t * on current slide image load end. If playing mode, begin playing again\n\t */\n\tfunction onCurrentSlideImageLoadEnd(){\n\t\t\n\t\tif(t.isPlayMode() == true)\n\t\t\tt.continuePlaying();\n\t}\n\t\t\n\t\n\t/**\n\t * init all events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\t//avoid annoyong firefox image dragging\n\t\tg_objWrapper.on(\"dragstart\",function(event){\n\t\t\tevent.preventDefault();\n\t\t});\n\t\t\n\t\t//on big image updated, if needed - preload this item image\n\t\tg_objGallery.on(t.events.ITEM_IMAGE_UPDATED, onItemImageUpdated);\n\t\t\n\t\t//init custom event on strip moving\n\t\tif(g_objThumbs){\n\t\t\tswitch(g_temp.thumbsType){\n\t\t\t\tcase \"strip\":\n\t\t\t\t\tjQuery(g_objThumbs).on(g_objThumbs.events.STRIP_MOVE, onThumbsChange);\n\t\t\t\tbreak;\n\t\t\t\tcase \"grid\":\n\t\t\t\t\tjQuery(g_objThumbs).on(g_objThumbs.events.PANE_CHANGE, onThumbsChange);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\t//init mouse wheel\n\t\tif(g_options.gallery_mousewheel_role == \"advance\" && g_temp.isFreestyleMode == false)\n\t\t\tg_objWrapper.on(\"mousewheel\", t.onGalleryMouseWheel);\n\t\t\n\t\t //on resize event\n\t\t storeLastSize();\n\t\t \n\t\t jQuery(window).resize(function(){\n\t\t\t g_objWrapper.css(\"width\",\"auto\");\n\t\t\t g_functions.whenContiniousEventOver(\"gallery_resize\", onGalleryResized, g_temp.resizeDelay);\n\t\t });\n\t\t \n\t\t //check resize once in a time, start from 10 seconds\n\t\t setTimeout(function(){\n\t\t\t setInterval(onGalleryResized, 2000);\n\t\t }, 10000);\n\t\t \n\t\t //fullscreen:\n\t\t g_functions.addFullScreenChangeEvent(onFullScreenChange);\n\t\t \n\t\t //on slider item changed event\n\t\t if(g_objSlider){\n\t\t\t \n\t\t\t jQuery(g_objSlider).on(g_objSlider.events.ITEM_CHANGED, function(){\n\t\t\t\t var sliderIndex = g_objSlider.getCurrentItemIndex();\n\t\t\t\t \t\t\t\t \n\t\t\t\t if(sliderIndex != -1)\n\t\t\t\t\t t.selectItem(sliderIndex);\n\t\t\t });\n\t\t\t \n\t\t\t //add slider onmousemove event\n\t\t\t if(g_options.gallery_pause_on_mouseover == true){\n\t\t\t\t var sliderElement = g_objSlider.getElement();\n\t\t\t\t sliderElement.hover(onSliderMouseEnter, onSliderMouseLeave);\n\t\t\t\t \n\t\t\t\t //on full screen, run on mouse leave\n\t\t\t\t g_objGallery.on(t.events.ENTER_FULLSCREEN, function(){\n\t\t\t\t\t\t onSliderMouseLeave();\n\t\t\t\t });\n\t\t\t\t \n\t\t\t }\n\t\t\t \n\t\t\t //retrigger slider events\n\t\t\t retriggerEvent(g_objSlider, g_objSlider.events.ACTION_START, t.events.SLIDER_ACTION_START);\n\t\t\t retriggerEvent(g_objSlider, g_objSlider.events.ACTION_END, t.events.SLIDER_ACTION_END);\n\t\t\t \n\t\t\t jQuery(g_objSlider).on(g_objSlider.events.CURRENTSLIDE_LOAD_END, onCurrentSlideImageLoadEnd);\n\t\t\t \n\t\t }\n\t\t \n\t\t //add keyboard events\n\t\t if(g_options.gallery_control_keyboard == true)\n\t\t\t jQuery(document).keydown(onKeyPress);\n\t\t \t\t \n\t}\n\t\n\t\n\t/**\n\t * destroy all gallery events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tg_objWrapper.off(\"dragstart\");\n\t\tg_objGallery.off(t.events.ITEM_IMAGE_UPDATED);\n\t\t\n\t\t//init custom event on strip moving\n\t\tif(g_objThumbs){\n\t\t\tswitch(g_temp.thumbsType){\n\t\t\t\tcase \"strip\":\n\t\t\t\t\tjQuery(g_objThumbs).off(g_objThumbs.events.STRIP_MOVE);\n\t\t\t\tbreak;\n\t\t\t\tcase \"grid\":\n\t\t\t\t\tjQuery(g_objThumbs).off(g_objThumbs.events.PANE_CHANGE);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\t g_objWrapper.off(\"mousewheel\");\n\t\t\n\t\t jQuery(window).off(\"resize\");\n\t\t \n\t\t //fullscreen:\n\t\t g_functions.destroyFullScreenChangeEvent();\n\t\t \n\t\t //on slider item changed event\n\t\t if(g_objSlider){\n\t\t\t \n\t\t\t jQuery(g_objSlider).off(g_objSlider.events.ITEM_CHANGED);\n\t\t\t \n\t\t\t //add slider onmousemove event\n\t\t\t var sliderElement = g_objSlider.getElement();\n\t\t\t sliderElement.off(\"mouseenter\");\n\t\t\t sliderElement.off(\"mouseleave\");\n\t\t\t \n\t\t\t g_objGallery.off(t.events.ENTER_FULLSCREEN);\n\t\t\t jQuery(g_objSlider).off(g_objSlider.events.ACTION_START);\n\t\t\t jQuery(g_objSlider).off(g_objSlider.events.ACTION_END);\n\t\t\t jQuery(g_objSlider).off(g_objSlider.events.CURRENTSLIDE_LOAD_END);\n\t\t }\n\t\t \t\t \n\t\t //add keyboard events\n\t\t if(g_options.gallery_control_keyboard == true)\n\t\t\t jQuery(document).off(\"keydown\");\n\t\t\n\t\t //destroy theme\n\t\t if(g_objTheme && typeof g_objTheme.destroy == \"function\"){\n\t\t\t g_objTheme.destroy();\n\t\t }\n\t\t \n\t\t g_objWrapper.html(\"\");\n\t\t \n\t}\n\t\n\t\n\tfunction __________GENERAL_______(){};\n\t\n\t/**\n\t * get items array\n\t */\n\tthis.getArrItems = function(){\n\t\treturn g_arrItems;\n\t}\n\t\n\t/**\n\t * get gallery objects\n\t */\n\tthis.getObjects = function(){\n\t\t\t\n\t\tvar objects = {\n\t\t\tg_galleryID:g_galleryID,\n\t\t\tg_objWrapper:g_objWrapper,\n\t\t\tg_objThumbs:g_objThumbs,\n\t\t\tg_objSlider:g_objSlider,\n\t\t\tg_options:g_options,\n\t\t\tg_arrItems:g_arrItems,\n\t\t\tg_numItems:g_numItems\n\t\t};\n\t\t\n\t\treturn(objects);\n\t}\n\t\n\t/**\n\t * get slider object\n\t */\n\tthis.getObjSlider = function(){\n\t\t\n\t\treturn(g_objSlider);\n\t}\n\t\n\t\n\t/**\n\t * \n\t * get item by index, if the index don't fit, trace error\n\t */\n\tthis.getItem = function(index){\n\t\tif(index < 0){\n\t\t\tthrow new Error(\"item with index: \" + index + \" not found\");\n\t\t\treturn(null);\n\t\t}\n\t\tif(index >= g_numItems){\n\t\t\tthrow new Error(\"item with index: \" + index + \" not found\");\n\t\t\treturn(null);\t\t\t\n\t\t}\n\t\t\n\t\treturn(g_arrItems[index]);\n\t}\n\t\n\t\n\t/**\n\t * get gallery width\n\t */\n\tthis.getWidth = function(){\n\t\t\n\t\tvar objSize = t.getSize();\n\t\t\t\t\n\t\treturn(objSize.width);\n\t}\n\t\n\t/**\n\t * get gallery height\n\t */\n\tthis.getHeight = function(){\n\t\t\n\t\tvar objSize = t.getSize();\n\t\t\n\t\treturn(objSize.height);\n\t}\n\t\n\t\n\t/**\n\t * get gallery size\n\t */\n\tthis.getSize = function(){\n\t\t\n\t\tvar objSize = g_functions.getElementSize(g_objWrapper);\n\t\t\n\t\tobjSize.orig_width = g_options.gallery_width;\n\t\tobjSize.orig_height = g_options.gallery_height;\n\t\tobjSize.orig_ratio = objSize.orig_width / objSize.orig_height;\n\t\t\n\t\treturn(objSize);\n\t}\n\t\n\t/**\n\t * get gallery ID\n\t */\n\tthis.getGalleryID = function(){\n\t\t\n\t\tvar id = g_galleryID.replace(\"#\",\"\");\n\t\t\t\n\t\treturn(id);\n\t}\n\t\n\t/**\n\t * get next item by current index (or current object)\n\t */\n\tthis.getNextItem = function(index, forceCarousel){\n\t\t\n\t\tif(typeof index == \"object\")\n\t\t\tindex = index.index;\n\t\t\n\t\tvar nextIndex = index + 1;\n\t\t\n\t\tif(forceCarousel !== true && g_numItems == 1)\n\t\t\treturn(null);\n\t\t\n\t\tif(nextIndex >= g_numItems){\n\t\t\t\n\t\t\tif(g_options.gallery_carousel == true || forceCarousel === true)\n\t\t\t\tnextIndex = 0;\n\t\t\telse\n\t\t\t\treturn(null);\n\t\t}\n\t\t\n\t\tvar objItem = g_arrItems[nextIndex];\n\t\t\n\t\treturn(objItem);\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * get previous item by index (or item object)\n\t */\n\tthis.getPrevItem = function(index){\n\t\t\n\t\tif(typeof index == \"object\")\n\t\t\tindex = index.index;\n\t\t\n\t\tvar prevIndex = index - 1;\n\t\t\n\t\tif(prevIndex < 0){\n\t\t\tif(g_options.gallery_carousel == true || forceCarousel === true)\n\t\t\t\tprevIndex = g_numItems - 1;\n\t\t\telse\n\t\t\t\treturn(null);\n\t\t}\n\t\t\n\t\tvar objItem = g_arrItems[prevIndex];\n\t\t\n\t\treturn(objItem);\n\t}\n\t\n\t\n\t\n\t/**\n\t * get selected item\n\t */\n\tthis.getSelectedItem = function(){\n\t\t\n\t\treturn(g_selectedItem);\n\t}\n\t\n\t/**\n\t * get selected item index\n\t */\n\tthis.getSelectedItemIndex = function(){\n\t\t\n\t\treturn(g_selectedItemIndex);\n\t}\n\t\n\t\n\t/**\n\t * get number of items\n\t */\n\tthis.getNumItems = function(){\n\t\treturn g_numItems;\n\t}\n\t\n\t/**\n\t * get true if the current item is last\n\t */\n\tthis.isLastItem = function(){\n\t\tif(g_selectedItemIndex == g_numItems - 1)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * get true if the current item is first\n\t */\n\tthis.isFirstItem = function(){\n\t\tif(g_selectedItemIndex == 0)\n\t\t\treturn(true);\n\t\treturn(false);\n\t}\n\t\n\t\t\n\t/**\n\t * get gallery options\n\t */\n\tthis.getOptions = function(){\n\t\treturn g_options;\n\t}\n\t\n\t\n\t/**\n\t * get the gallery wrapper element\n\t */\n\tthis.getElement = function(){\n\t\treturn(g_objWrapper);\n\t}\n\t\n\t\n\tthis.___________SET_CONTROLS___________ = function(){}\n\t\n\t/**\n\t * set next button element\n\t * set onclick event\n\t */\n\tthis.setNextButton = function(objButton){\n\t\t\n\t\t//register button as a unite gallery belong\n\t\tobjButton.data(\"ug-button\", true);\n\t\t\n\t\tg_functions.setButtonOnClick(objButton, t.nextItem);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * set prev button element\n\t * set onclick event\n\t */\n\tthis.setPrevButton = function(objButton){\n\t\t\n\t\t//register button as a unite gallery belong\n\t\tobjButton.data(\"ug-button\", true);\n\t\t\n\t\tg_functions.setButtonOnClick(objButton, t.prevItem);\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * set fullscreen button to enter / exit fullscreen.\n\t * on fullscreen mode ug-fullscreenmode class wil be added\n\t */\n\tthis.setFullScreenToggleButton = function(objButton){\n\t\t\n\t\t//register button as a unite gallery belong\n\t\tobjButton.data(\"ug-button\", true);\n\n\t\tg_functions.setButtonOnTap(objButton, t.toggleFullscreen);\n\t\t\n\t\tg_objGallery.on(t.events.ENTER_FULLSCREEN,function(){\n\t\t\tobjButton.addClass(\"ug-fullscreenmode\");\n\t\t});\n\t\t\n\t\tg_objGallery.on(t.events.EXIT_FULLSCREEN,function(){\n\t\t\tobjButton.removeClass(\"ug-fullscreenmode\");\n\t\t});\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy full screen button\n\t */\n\tthis.destroyFullscreenButton = function(objButton){\n\t\t\n\t\tg_functions.destroyButton(objButton);\n\t\t\n\t\tg_objGallery.off(t.events.ENTER_FULLSCREEN);\n\t\tg_objGallery.off(t.events.EXIT_FULLSCREEN);\n\t}\n\t\n\t\n\t/**\n\t * set play button event\n\t */\n\tthis.setPlayButton = function(objButton){\n\t\t\n\t\t//register button as a unite gallery belong\n\t\tobjButton.data(\"ug-button\", true);\n\t\t\n\t\tg_functions.setButtonOnClick(objButton, t.togglePlayMode);\n\t\t\n\t\tg_objGallery.on(t.events.START_PLAY,function(){\n\t\t\tobjButton.addClass(\"ug-stop-mode\");\n\t\t});\n\t\t\n\t\tg_objGallery.on(t.events.STOP_PLAY, function(){\n\t\t\tobjButton.removeClass(\"ug-stop-mode\");\n\t\t});\n\t\t\n\t}\n\t\n\t/**\n\t * destroy the play button\n\t */\n\tthis.destroyPlayButton = function(objButton){\n\t\tg_functions.destroyButton(objButton);\n\t\tg_objGallery.off(t.events.START_PLAY);\n\t\tg_objGallery.off(t.events.STOP_PLAY);\n\t}\n\t\n\t/**\n\t * set playing progress indicator\n\t */\n\tthis.setProgressIndicator = function(objProgress){\n\t\t\n\t\tg_temp.objProgress = objProgress;\t\t\n\t}\n\t\n\t\n\t/**\n\t * set title and descreiption containers\n\t */\n\tthis.setTextContainers = function(objTitle, objDescription){\n\t\t\n\t\tg_objGallery.on(t.events.ITEM_CHANGE, function(){\n\t\t\t\n\t\t\tvar objItem = t.getSelectedItem();\t\t\t\n\t\t\tobjTitle.html(objItem.title);\n\t\t\tobjDescription.html(objItem.description);\n\t\t\t\n\t\t});\n\t\t\n\t}\n\t\n\t/**\n\t * show overlay disabled\n\t */\n\tthis.showDisabledOverlay = function(){\n\t\tg_objWrapper.children(\".ug-overlay-disabled\").show();\n\t}\n\n\t/**\n\t * show overlay disabled\n\t */\n\tthis.hideDisabledOverlay = function(){\n\t\tg_objWrapper.children(\".ug-overlay-disabled\").hide();\n\t}\n\t\n\tthis.___________END_SET_CONTROLS___________ = function(){}\n\n\t\n\t/**\n\t * cache items, put to cache array by id\n\t * the items must be unprocessed yet\n\t */\n\tfunction cacheItems(cacheID, htmlItemsArg){\n\t\t\t\n\t\tif(htmlItemsArg){\n\t\t\tvar htmlItems = htmlItemsArg;\n\t\t\tif(htmlItems != \"noitems\")\n\t\t\t\thtmlItems = jQuery(htmlItemsArg).clone();\n\t\t}else{\n\t\t\tvar htmlItems = g_objWrapper.children().clone();\n\t\t}\n\t\t\n\t\tg_objCache[cacheID] = htmlItems;\n\t}\n\t\n\t\n\t/**\n\t * remove all size classes\n\t */\n\tfunction removeAllSizeClasses(objWrapper){\n\t\t\n\t\tif(!objWrapper)\n\t\t\tobjWrapper = g_objWrapper;\n\t\t\n\t\tobjWrapper.removeClass(\"ug-under-480\");\n\t\tobjWrapper.removeClass(\"ug-under-780\");\n\t\tobjWrapper.removeClass(\"ug-under-960\");\n\t}\n\t\n\t\n\t/**\n\t * retrigger event from another objects\n\t * the second parameter will be the second object\n\t */\n\tfunction retriggerEvent(object, originalEvent, newEvent){\n\t\t\n\t\tjQuery(object).on(originalEvent, function(event){\n\t\t\tg_objGallery.trigger(newEvent, [this]);\n\t\t});\n\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * advance next play step\n\t */\n\tfunction advanceNextStep(){\n\t\t\n\t\tvar timeNow = jQuery.now();\n\t\tvar timeDiff = timeNow - g_temp.playTimeLastStep;\n\t\tg_temp.playTimeLastStep = timeNow;\n\t\t\n\t\tvar isVisible = t.isGalleryVisible();\n\t\tif(isVisible == false){\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tg_temp.playTimePassed += timeDiff;\n\t\t\n\t\t//set the progress\n\t\tif(g_temp.objProgress){\n\t\t\tvar percent = g_temp.playTimePassed / g_options.gallery_play_interval;\n\t\t\tg_temp.objProgress.setProgress(percent);\n\t\t}\n\t\t\n\t\t//if interval passed - proceed to next item\n\t\tif(g_temp.playTimePassed >= g_options.gallery_play_interval){\n\t\t\t\n\t\t\tt.nextItem();\n\t\t\tg_temp.playTimePassed = 0;\t\t\t\n\t\t}\n\t\t\n\t\t\n\t}\n\t\n\tthis.___________PLAY_MODE___________ = function(){}\n\t\n\t\n\t/**\n\t * start play mode\n\t */\n\tthis.startPlayMode = function(){\n\t\t\n\t\tg_temp.isPlayMode = true;\n\t\tg_temp.isPlayModePaused = false;\n\t\t\n\t\tg_temp.playTimePassed = 0;\n\t\tg_temp.playTimeLastStep = jQuery.now();\n\t\t\n\t\tg_temp.playHandle = setInterval(advanceNextStep, g_temp.playStepInterval);\n\t\t\n\t\t//show and reset progress indicator\n\t\tif(g_temp.objProgress){\n\t\t\tvar objElement = g_temp.objProgress.getElement();\n\t\t\tg_temp.objProgress.setProgress(0);\n\t\t\tobjElement.show();\n\t\t}\n\t\t\n\t\tg_objGallery.trigger(t.events.START_PLAY);\n\t\t\n\t\t//check if there is a need to pause\n\t\tif(g_objSlider && g_objSlider.isCurrentSlideLoadingImage() == true){\n\t\t\tt.pausePlaying();\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * reset playing - set the timer to 0\n\t */\n\tthis.resetPlaying = function(){\n\t\t\n\t\tif(g_temp.isPlayMode == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.playTimePassed = 0;\n\t\tg_temp.playTimeLastStep = jQuery.now();\n\t}\n\t\n\t\n\t/**\n\t * pause playing slideshow\n\t */\n\tthis.pausePlaying = function(){\n\t\t\n\t\tif(g_temp.isPlayModePaused == true)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.isPlayModePaused = true;\n\t\tclearInterval(g_temp.playHandle);\n\t\t\n\t\tg_objGallery.trigger(t.events.PAUSE_PLAYING);\n\t}\n\t\n\t\n\t/**\n\t * continue playing slideshow\n\t */\n\tthis.continuePlaying = function(){\n\t\t\n\t\tif(g_temp.isPlayModePaused == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.isPlayModePaused = false;\n\t\tg_temp.playTimeLastStep = jQuery.now();\n\t\tg_temp.playHandle = setInterval(advanceNextStep, g_temp.playStepInterval);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * stop play mode\n\t */\n\tthis.stopPlayMode = function(){\n\t\tg_temp.isPlayMode = false;\n\t\tclearInterval(g_temp.playHandle);\n\t\t\t\n\t\tg_temp.playTimePassed = 0;\n\t\t\n\t\t//hide progress indicator\n\t\tif(g_temp.objProgress){\n\t\t\tvar objElement = g_temp.objProgress.getElement();\n\t\t\tobjElement.hide();\n\t\t}\n\t\t\n\t\tg_objGallery.trigger(t.events.STOP_PLAY);\n\t}\n\t\n\t\n\t/**\n\t * tells if the play mode are active\n\t */\n\tthis.isPlayMode = function(){\n\t\t\n\t\treturn(g_temp.isPlayMode);\n\t}\n\t\n\t\n\t/**\n\t * start / stop play mode\n\t */\n\tthis.togglePlayMode = function(){\n\t\t\n\t\tif(t.isPlayMode() == false)\n\t\t\tt.startPlayMode();\n\t\telse\n\t\t\tt.stopPlayMode();\n\t}\n\n\t\n\t/**\n\t * unselect all items\n\t */\n\tfunction unselectSeletedItem(){\n\t\t\n\t\tif(g_selectedItem == null)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_objThumbs)\n\t\t\tg_objThumbs.setThumbUnselected(g_selectedItem.objThumbWrapper);\n\t\t\n\t\tg_selectedItem = null;\n\t\tg_selectedItemIndex = -1;\n\t}\t\n\t\n\t\n\tthis.___________GENERAL_EXTERNAL___________ = function(){}\n\t\n\t/**\n\t * shuffle items - usually before theme start\n\t */\n\tthis.shuffleItems = function(){\n\n\t\tg_arrItems = g_functions.arrayShuffle(g_arrItems);\n\t\t\n\t\tfor(var index in g_arrItems)\t\t//fix index\n\t\t\tg_arrItems[index].index = parseInt(index);\n\t\t\n\t}\n\t\n\t/**\n\t * set main gallery params, extend current params\n\t */\n\tthis.setOptions = function(customOptions){\n\t\t\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\t\t\n\t}\n\t\n\t\n\t/**\n\t * select some item\n\t * the input can be index or object\n\t * role - the role of the object who selected the item\n\t */\n\tthis.selectItem = function(objItem, role){\n\t\t\n\t\tif(typeof objItem == \"number\")\n\t\t\tobjItem = t.getItem(objItem);\n\t\t\n\t\tvar itemIndex = objItem.index;\n\t\tif(itemIndex == g_selectedItemIndex)\n\t\t\treturn(true);\n\t\t\t\t\n\t\tunselectSeletedItem();\n\t\t\t\t\n\t\t//set selected item\n\t\tg_selectedItem = objItem;\t\t\n\t\tg_selectedItemIndex = itemIndex;\n\t\t\n\t\tg_objGallery.trigger(t.events.ITEM_CHANGE, [objItem,role]);\n\t\t\n\t\t//reset playback, if playing\n\t\tif(g_temp.isPlayMode == true){\n\t\t\t\tt.resetPlaying();\n\t\t\t\n\t\t\tvar stillLoading = g_objSlider.isCurrentSlideLoadingImage();\n\t\t\tif(stillLoading == true)\n\t\t\t\tt.pausePlaying();\n\t\t}\n\t\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * go to next item\n\t */\n\tthis.nextItem = function(){\n\t\t\n\t\tvar newItemIndex = g_selectedItemIndex + 1;\n\t\t\n\t\tif(g_numItems == 0)\n\t\t\treturn(true);\t\t\n\t\t\n\t\tif(g_options.gallery_carousel == false && newItemIndex >= g_numItems)\n\t\t\treturn(true);\n\t\t\n\t\tif(newItemIndex >= g_numItems)\n\t\t\tnewItemIndex = 0;\n\t\t\n\t\t//debugLine(newItemIndex,true);\n\t\t\n\t\tt.selectItem(newItemIndex, \"next\");\n\t}\n\t\n\t\n\t/**\n\t * go to previous item\n\t */\n\tthis.prevItem = function(){\n\t\t\n\t\tvar newItemIndex = g_selectedItemIndex - 1;\n\t\t\n\t\tif(g_selectedItemIndex == -1)\n\t\t\tnewItemIndex = 0;\n\t\t\n\t\tif(g_numItems == 0)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_options.gallery_carousel == false && newItemIndex < 0)\n\t\t\treturn(true);\n\t\t\n\t\tif(newItemIndex < 0)\n\t\t\tnewItemIndex = g_numItems - 1;\n\t\t\n\t\tt.selectItem(newItemIndex, \"prev\");\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * expand gallery to body size\n\t */\n\tfunction toFakeFullScreen(){\n\t\t\n\t\tjQuery(\"body\").addClass(\"ug-body-fullscreen\");\n\t\tg_objWrapper.addClass(\"ug-fake-fullscreen\");\n\t\t\n\t\tg_temp.isFakeFullscreen = true;\n\t\t\n\t\tg_objGallery.trigger(t.events.ENTER_FULLSCREEN);\n\t\tg_objGallery.trigger(t.events.SIZE_CHANGE);\n\t}\n\t\n\t\n\t/**\n\t * exit fake fullscreen\n\t */\n\tfunction exitFakeFullscreen(){\n\t\t\n\t\tjQuery(\"body\").removeClass(\"ug-body-fullscreen\");\n\t\tg_objWrapper.removeClass(\"ug-fake-fullscreen\");\n\t\t\n\t\tg_temp.isFakeFullscreen = false;\n\t\t\n\t\tg_objGallery.trigger(t.events.EXIT_FULLSCREEN);\n\t\tg_objGallery.trigger(t.events.SIZE_CHANGE);\n\t\t\n\t}\n\t\n\t/**\n\t * return if the fullscreen mode is available\n\t */\n\tthis.isFullScreen = function(){\n\t\t\n\t\tif(g_temp.isFakeFullscreen == true)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_functions.isFullScreen() == true)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\t\t\n\t}\n\t\n\t\n\t/**\n\t * tells if it's fake fullscreen\n\t */\n\tthis.isFakeFullscreen = function(){\n\t\t\n\t\treturn(g_temp.isFakeFullscreen);\n\t}\n\t\n\t\n\t/**\n\t * go to fullscreen mode\n\t */\n\tthis.toFullScreen = function(){\n\t\t\n\t\tg_functions.setGlobalData(\"fullscreenID\", g_galleryID);\n\t\t\n\t\tvar divGallery = g_objWrapper.get(0);\n\t\t\n\t\tvar isSupported = g_functions.toFullscreen(divGallery);\n\t\t\t\t\n\t\tif(isSupported == false)\n\t\t\ttoFakeFullScreen();\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * exit full screen\n\t */\n\tthis.exitFullScreen = function(){\n\t\t\n\t\tif(g_temp.isFakeFullscreen == true)\n\t\t\texitFakeFullscreen();\n\t\telse\n\t\t\tg_functions.exitFullscreen();\n\t\t\t\t\t\t\n\t}\n\t\n\t/**\n\t * toggle fullscreen\n\t */\n\tthis.toggleFullscreen = function(){\n\t\t\n\t\tif(t.isFullScreen() == false){\n\t\t\tt.toFullScreen();\n\t\t}else{\n\t\t\tt.exitFullScreen();\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * resize the gallery\n\t * noevent - initally false\n\t */\n\tthis.resize = function(newWidth, newHeight, noevent){\n\t\t\n\t\tg_objWrapper.css(\"width\", \"auto\");\n\t\tg_objWrapper.css(\"max-width\",newWidth+\"px\");\n\t\t\n\t\tif(newHeight)\n\t\t\tg_objWrapper.height(newHeight);\n\t\t\n\t\tif(!noevent && noevent !== true)\n\t\t\tonGalleryResized();\n\t\t\n\t}\n\n\t\n\t/**\n\t * set size class to the wrapper\n\t * this can work to any other wrapper too\n\t */\n\tthis.setSizeClass = function(objWrapper, width){\n\t\t\n\t\tif(!objWrapper)\n\t\t\tvar objWrapper = g_objWrapper;\n\t\t\n\t\tif(!width){\n\t\t\tvar objSize = t.getSize();\n\t\t\tvar width = objSize.width;\t\t\t\n\t\t}\n\t\t\n\t\tif(width == 0)\n\t\t\tvar width = jQuery(window).width();\n\t\t\n\t\tvar addClass = \"\";\n\t\t\n\t\tif(width <= 480){\n\t\t\taddClass = \"ug-under-480\";\t\t\t\n\t\t}else\n\t\tif(width <= 780){\n\t\t\taddClass = \"ug-under-780\";\t\t\t\n\t\t}else\n\t\tif(width < 960){\n\t\t\taddClass = \"ug-under-960\";\n\t\t}\n\t\t\n\t\tif(objWrapper.hasClass(addClass) == true)\n\t\t\treturn(true);\n\t\t\n\t\tremoveAllSizeClasses(objWrapper);\n\t\tif(addClass != \"\")\n\t\t\tobjWrapper.addClass(addClass);\n\t}\n\t\n\t\n\t/**\n\t * return if the size is suited for mobile\n\t */\n\tthis.isMobileMode = function(){\n\t\t\n\t\tif(g_objWrapper.hasClass(\"ug-under-480\"))\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * get if small screen\n\t */\n\tthis.isSmallWindow = function(){\n\t\t\n\t\tvar windowWidth = jQuery(window).width();\n\t\t\n\t\t\n\t\tif(!windowWidth)\n\t\t\treturn(true);\n\t\t\n\t\tif(windowWidth <= 480)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * check if the gallery is visible\n\t */\n\tthis.isGalleryVisible = function(){\n\t\t\n\t\tvar isVisible = g_objWrapper.is(\":visible\");\n\t\t\n\t\treturn(isVisible);\n\t}\n\t\n\t\n\t/**\n\t * change gallery items\n\t */\n\tthis.changeItems = function(itemsContent, cacheID){\n\t\t\n\t\tif(!itemsContent)\n\t\t\tvar itemsContent = \"noitems\";\n\t\t\n\t\trunGallery(g_galleryID, \"nochange\", itemsContent, cacheID);\n\t}\n\t\n\t\n\t\n\t/**\n\t * add items\n\t */\n\tthis.addItems = function(itemsContent){\n\t\t \n\t\t if(!itemsContent || itemsContent.length == 0)\n\t\t\t return(false);\n\t\t \n\t\t //add new items wrapper\n\t\t var objNewItemsWrapper = g_objWrapper.children(\".ug-newitems-wrapper\");\n\t\t if(objNewItemsWrapper.length == 0)\n\t\t\t g_objWrapper.append(\"\");\n\t\t \n\t\t objNewItemsWrapper = g_objWrapper.children(\".ug-newitems-wrapper\");\n\t\t \n\t\t //add the items\n\t\t objNewItemsWrapper.append(itemsContent);\n\t\t \n\t\t var objChildren = jQuery(objNewItemsWrapper.children());\n\t\t \n\t\t fillItemsArray(objChildren, true);\n\t\t \n\t\t loadAPIs();\n\t\t \n\t\t if(!g_objTheme || typeof g_objTheme.addItems != \"function\")\n\t\t\t throw new Error(\"addItems function not found in the theme\");\n\t\t \n\t\t objNewItemsWrapper.remove();\n\t\t \n\t\t g_objTheme.addItems();\n\t}\n\t\n\t\n\t/**\n\t * get new added items indexes array\n\t */\n\tthis.getNewAddedItemsIndexes = function(){\n\t\t\n\t\tvar arrIndexes = [];\n\t\t\n\t\tjQuery.each(g_arrItems, function(index, objItem){\n\t\t\t\n\t\t\tif(objItem.isNewAdded == true)\n\t\t\t\tarrIndexes.push(index);\n\t\t});\n\t\t\n\t\treturn(arrIndexes);\n\t}\n\t\n\t\n\t/**\n\t * show error message, replace whole gallery div\n\t */\n\tthis.showErrorMessageReplaceGallery = function(message){\n\t\tshowErrorMessage(message);\n\t}\n\t\n\t/**\n\t * set custom height function by width\n\t */\n\tthis.setFuncCustomHeight = function(func){\n\t\tg_temp.funcCustomHeight = func;\n\t}\n\t\n\t\n\tthis.__________EXTERNAL_EVENTS_______ = function(){};\n\t\n\t\n\t/**\n\t * trigger event\n\t */\n\tthis.triggerEvent = function(event, arrParams){\n\t\t\n\t\tif(!arrParams)\n\t\t\tg_objGallery.trigger(event);\n\t\telse{\n\t\t\tif(jQuery.type(arrParams) != \"array\")\n\t\t\t\tarrParams = [arrParams];\n\t\t\t\n\t\t\tg_objGallery.trigger(event, arrParams);\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * on event\n\t */\n\tthis.onEvent = function(event, func){\n\t\t\n\t\tg_objGallery.on(event, func);\n\t}\n\t\n\t\n\t/**\n\t * destroy event\n\t */\n\tthis.destroyEvent = function(event){\n\t\t\n\t\tg_objGallery.off(event);\n\t}\n\t\n\t\n\tthis.__________AJAX_REQUEST_______ = function(){};\n\t\n\t\n\t/**\n\t * ajax request\n\t */\n\tthis.ajaxRequest = function(action, data, successFunction, errorFunction){\n\t\t\n\t\tif(!successFunction || typeof successFunction != \"function\")\n\t\t\tthrow new Error(\"ajaxRequest error: success function should be passed\");\n\t\t\t\t\n\t\tvar urlAjax = g_options.gallery_urlajax;\n\t\tif(!urlAjax || urlAjax == \"\")\n\t\t\tthrow new Error(\"ajaxRequest error: Ajax url don't passed\");\n\t\t\n\t\tif(typeof data == \"undefined\")\n\t\t\tvar data = {};\n\n\t\t//add galleryID to data\n\t\tvar objData = {\n\t\t\t\taction:\"unitegallery_ajax_action\",\n\t\t\t\tclient_action:action,\n\t\t\t\tgalleryID: g_galleryID,\n\t\t\t\tdata:data\n\t\t};\n\t\t\n\t\tjQuery.ajax({\n\t\t\ttype:\"post\",\n\t\t\turl:g_options.gallery_urlajax,\n\t\t\tdataType: 'json',\n\t\t\tdata:objData,\n\t\t\tsuccess:function(response){\n\t\t\t\t\n\t\t\t\tif(!response){\n\t\t\t\t\tthrow new Error(\"Empty ajax response!\");\n\t\t\t\t}\n\n\t\t\t\tif(response == -1 || response === 0)\n\t\t\t\t\tthrow new Error(\"ajax error!!!\");\n\t\t\t\t\n\n\t\t\t\tif(typeof response.success == \"undefined\")\n\t\t\t\t\tthrow new Error(\"ajax error!!!\");\n\t\t\t\t\n\t\t\t\tif(response.success == false){\n\t\t\t\t\tshowErrorMessage(response.message, \"ajax error\");\n\t\t\t\t\treturn(false);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tsuccessFunction(response);\n\t\t\t},\n\t\t\terror:function(jqXHR, textStatus, errorThrown){\n\t\t\t\tconsole.log(\"Ajax Error!!! \" + textStatus);\n\t\t\t\tresponseText = jqXHR.responseText;\n\t\t\t\tif(errorFunction && typeof errorFunction == \"function\"){\n\t\t\t\t\terrorFunction(responseText);\n\t\t\t\t}else\n\t\t\t\t\ttrace(responseText);\n\t\t\t}\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * request new items\n\t * isForce - don't take from cache\n\t */\n\tthis.requestNewItems = function(catID, isForce, cacheID){\n\t\t\n\t\tvar checkCache = g_options.gallery_enable_cache;\n\t\t\n\t\tif(!cacheID)\n\t\t\tcacheID = catID;\n\t\t\n\t\tif(isForce == true)\n\t\t\tcheckCache = false;\n\t\t\n\t\t//get items from cache\n\t\tif(checkCache == true && g_objCache.hasOwnProperty(cacheID)){\n\t\t\t\n\t\t\tvar htmlItems = g_objCache[cacheID];\n\t\t\t\n\t\t\tt.changeItems(htmlItems, cacheID);\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tg_objGallery.trigger(t.events.GALLERY_BEFORE_REQUEST_ITEMS);\n\t\t\t\n\t\t\tt.ajaxRequest(\"front_get_cat_items\",{catid:catID}, function(response){\n\t\t\t\t\n\t\t\t\tvar htmlItems = response.html;\n\t\t\t\t\n\t\t\t\tt.changeItems(htmlItems, cacheID);\n\t\t\t\t\n\t\t\t});\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * run the gallery\n\t */\n\t this.run = function(galleryID, objParams){\n\t\t \n\t\t \n\t\t var debug_errors = g_options.gallery_debug_errors;\n\t\t if(objParams && objParams.hasOwnProperty(\"gallery_debug_errors\"))\n\t\t\t g_options.gallery_debug_errors = objParams.gallery_debug_errors;\n\n\t\t \n\t\t if(g_options.gallery_debug_errors == true){\n\t\t\t \n\t\t\t try{\n\t\t\t\t \n\t\t\t\t runGallery(galleryID, objParams);\n\t\t\t\t \n\t\t\t\t \n\t\t\t }catch(objError){\n\t\t\t\t if(typeof objError == \"object\"){\n\t\t\t\t\t \n\t\t\t\t\t var message = objError.message;\n\t\t\t\t\t var lineNumber = objError.lineNumber;\n\t\t\t\t\t var fileName = objError.fileName;\n\t\t\t\t\t var stack = objError.stack;\n\t\t\t\t\t \n\t\t\t\t\t message += \"

in file: \"+fileName;\n\t\t\t\t\t message += \" line \" + lineNumber + \"\";\n\t\t\t\t\t \n\t\t\t\t\t trace(objError);\n\t\t\t\t\t \n\t\t\t\t }else{\n\t\t\t\t\t var message = objError;\n\t\t\t\t }\n\t\t\t\t \n\t\t\t\t //remove double \"error:\" text\n\t\t\t\t message = message.replace(\"Error:\",\"\");\n\t\t\t\t \n\t\t\t\t showErrorMessage(message);\n\t\t\t }\n\t\t\t \n\t\t }else{\n\t\t\t runGallery(galleryID, objParams);\n\t\t }\n\t\t \n\t\t \t\t \n\t\t \n\t }\n\t \t \t \n}\t//unitegallery object end\n\n\n/**\n * tiles class\n */\nfunction UGLightbox(){\n\n\tvar t = this, g_objThis = jQuery(this);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objWrapper;\n\tvar g_objSlider = new UGSlider(), g_objOverlay, g_objArrowLeft, g_objArrowRight, g_objButtonClose;\n\tvar g_functions = new UGFunctions(), g_objTextPanel = new UGTextPanel(), g_objNumbers;\n\tvar g_objTopPanel;\n\t\n\tvar g_options = {\n\t\t\tlightbox_type: \"wide\",\t\t\t\t\t\t\t//compact / wide - lightbox type\n\t\t\t\n\t\t\tlightbox_show_textpanel: true,\t\t\t\t\t//show the text panel\n\t\t\tlightbox_textpanel_width: 550,\t\t\t\t\t//the width of the text panel.\n\t\t\t\n\t\t\tlightbox_hide_arrows_onvideoplay: true,\t\t\t//hide the arrows when video start playing and show when stop\n\t\t\tlightbox_arrows_position: \"sides\",\t\t\t\t//sides, inside: position of the arrows, used on compact type\t\t\t\n\t\t\tlightbox_arrows_offset: 10,\t\t\t\t\t\t//The horizontal offset of the arrows\n\t\t\tlightbox_arrows_inside_offset: 10,\t\t\t\t//The offset from the image border if the arrows placed inside\n\t\t\tlightbox_arrows_inside_alwayson: false,\t\t\t//Show the arrows on mouseover, or always on.\n\t\t\t\n\t\t\tlightbox_overlay_color:null,\t\t\t\t\t//the color of the overlay. if null - will take from css\n\t\t\tlightbox_overlay_opacity:1,\t\t\t\t\t\t//the opacity of the overlay. if null - will take from css\n\t\t\tlightbox_top_panel_opacity: null,\t\t\t\t//the opacity of the top panel\n\t\t\t\n\t\t\tlightbox_show_numbers: true,\t\t\t\t\t//show numbers on the right side\n\t\t\tlightbox_numbers_size: null,\t\t\t\t\t//the size of the numbers string\n\t\t\tlightbox_numbers_color: null,\t\t\t\t\t//the color of the numbers\n\t\t\tlightbox_numbers_padding_top:null,\t\t\t\t//the top padding of the numbers (used in compact mode)\n\t\t\tlightbox_numbers_padding_right:null,\t\t\t//the right padding of the numbers (used in compact mode)\n\t\t\t\n\t\t\tlightbox_compact_closebutton_offsetx: 1,\t\t//the offsetx of the close button. Valid only for compact mode\n\t\t\tlightbox_compact_closebutton_offsety: 1,\t\t//the offsetx of the close button. Valid only for compact mode\n\t\t\t\n\t\t\tlightbox_close_on_emptyspace:true\t\t\t\t//close the lightbox on empty space\n\t};\n\t\n\tthis.events = {\n\t\t\tLIGHTBOX_INIT: \"lightbox_init\"\n\t};\n\t\n\tvar g_temp = {\n\t\t\ttopPanelHeight: 44,\n\t\t\tinitTextPanelHeight: 26,\t\t//init height for compact mode\n\t\t\tisOpened: false, \n\t\t\tisRightNowOpened:false,\n\t\t\tputSlider: true,\n\t\t\tisCompact: false,\n\t\t\tfadeDuration: 300,\n\t\t\tpositionFrom: null,\n\t\t\ttextPanelTop: null,\n\t\t\ttextPanelLeft: null,\n\t\t\tisArrowsInside: false,\n\t\t\tisArrowsOnHoverMode: false,\n\t\t\tlastMouseX: null,\n\t\t\tlastMouseY: null,\n\t\t\toriginalOptions: null,\n\t\t\tisSliderChangedOnce:false,\n\t\t\tisTopPanelEnabled:true\n\t};\n\t\n\tvar g_defaults = {\n\t\t\tlightbox_slider_controls_always_on: true,\n\t\t\tlightbox_slider_enable_bullets: false,\n\t\t\tlightbox_slider_enable_arrows: false,\n\t\t\tlightbox_slider_enable_progress_indicator: false,\n\t\t\tlightbox_slider_enable_play_button: false,\n\t\t\tlightbox_slider_enable_fullscreen_button: false,\n\t\t\tlightbox_slider_enable_zoom_panel: false,\n\t\t\tlightbox_slider_enable_text_panel: false,\n\t\t\tlightbox_slider_scale_mode_media: \"down\",\n\t\t\tlightbox_slider_scale_mode: \"down\",\n\t\t\tlightbox_slider_loader_type: 3,\n\t\t\tlightbox_slider_loader_color: \"black\",\n\t\t\tlightbox_slider_transition: \"fade\",\n\t\t\t\n\t\t\tlightbox_slider_image_padding_top: g_temp.topPanelHeight,\n\t\t\tlightbox_slider_image_padding_bottom: 0,\n\t\t\t\n\t\t\tlightbox_slider_video_padding_top: 0,\n\t\t\tlightbox_slider_video_padding_bottom: 0,\n\t\t\t\n\t\t\tlightbox_textpanel_align: \"middle\",\n\t\t\tlightbox_textpanel_padding_top: 5,\n\t\t\tlightbox_textpanel_padding_bottom: 5,\n\t\t\t\n\t\t\tslider_video_constantsize: false,\n\t\t\tlightbox_slider_image_border: false,\n\t\t\t\n\t\t\tlightbox_textpanel_enable_title: true,\n\t\t\tlightbox_textpanel_enable_description: false,\n\t\t\tlightbox_textpanel_desc_style_as_title: true,\n\t\t\t\n\t\t\tlightbox_textpanel_enable_bg:false,\n\t\t\t\n\t\t\tvideo_enable_closebutton: false,\n\t\t\tlightbox_slider_video_enable_closebutton: false,\n\t\t\tvideo_youtube_showinfo: false,\n\t\t\tlightbox_slider_enable_links:false\n\t};\n\t\n\tvar g_defaultsCompact = {\n\t\t\tlightbox_overlay_opacity:0.6,\n\t\t\t\n\t\t\tlightbox_slider_image_border: true,\n\t\t\tlightbox_slider_image_shadow:true,\n\t\t\tlightbox_slider_image_padding_top: 30,\n\t\t\tlightbox_slider_image_padding_bottom: 30,\n\t\t\t\n\t\t\tslider_video_constantsize: true,\n\t\t\t\t\t\t\n\t\t\tlightbox_textpanel_align: \"bottom\",\n\t\t\tlightbox_textpanel_title_text_align: \"left\",\n\t\t\tlightbox_textpanel_desc_text_align: \"left\",\n\t\t\tlightbox_textpanel_padding_left: 10,\t\t\t//the padding left of the textpanel\n\t\t\tlightbox_textpanel_padding_right: 10\n\t};\n\t\n\t\n\tfunction __________GENERAL_________(){};\n\t\n\t\n\t/**\n\t * init the gallery\n\t */\n\tfunction initLightbox(gallery, customOptions){\n\t\t\n\t\tg_gallery = gallery;\n\t\tg_objGallery = jQuery(gallery);\n\t\t\n\t\tg_options = jQuery.extend(g_options, g_defaults);\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\tg_temp.originalOptions = jQuery.extend({}, g_options);\n\t\t\n\t\tif(g_options.lightbox_type == \"compact\"){\n\t\t\tg_temp.isCompact = true;\n\t\t\tg_options = jQuery.extend(g_options, g_defaultsCompact);\n\t\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t}\n\t\t\n\t\t//modify some options\n\t\tmodifyOptions();\n\t\t\n\t\tif(g_temp.putSlider == true){\n\t\t\t\n\t\t\tg_gallery.initSlider(g_options, \"lightbox\");\n\t\t\tg_objects = gallery.getObjects();\n\t\t\tg_objSlider = g_objects.g_objSlider;\t\t\t\n\t\t\t\n\t\t}else{\n\t\t\tg_objSlider = null;\n\t\t}\n\t\t\n\t\tif(g_options.lightbox_show_textpanel == true){\n\t\t\tg_objTextPanel.init(g_gallery, g_options, \"lightbox\");\n\t\t}\n\t\telse\n\t\t\tg_objTextPanel = null;\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * modify some options according user options\n\t */\n\tfunction modifyOptions(){\n\t\t\n\t\tif(g_temp.isCompact == true && g_options.lightbox_show_textpanel == true){\n\t\t\tg_options.lightbox_slider_image_padding_bottom = g_temp.initTextPanelHeight;\n\t\t}\n\t\t\n\t\tif(g_temp.isCompact == true && g_options.lightbox_arrows_position == \"inside\"){\n\t\t\tg_temp.isArrowsInside = true;\n\t\t}\n\n\t\tif(g_temp.isArrowsInside == true && g_options.lightbox_arrows_inside_alwayson == false)\n\t\t\tg_temp.isArrowsOnHoverMode = true;\n\t\t\n\t\t//disable top panel if no text panel enabled\n\t\tif(g_options.lightbox_show_textpanel == false){\n\t\t\tg_temp.isTopPanelEnabled = false;\n\t\t\tg_temp.topPanelHeight = 0;\n\t\t\tg_options.lightbox_slider_image_padding_top = 0;\n\t\t}\n\t\t\n\t\t//modify slider image border width\n\t\t\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * put the lightbox html\n\t */\n\tfunction putLightboxHtml(){\n\t\t\n\t\tvar html = \"\";\n\t\tvar classAddition = \"\";\n\t\tif(g_temp.isCompact == true){\n\t\t\tclassAddition = \" ug-lightbox-compact\";\n\t\t}\n\t\t\n\t\thtml += \"\";\n\t\t\n\t\tg_objWrapper = jQuery(html);\n\t\t\n\t\tjQuery(\"body\").append(g_objWrapper);\n\t\t\n\t\tif(g_objSlider)\n\t\t\tg_objSlider.setHtml(g_objWrapper);\n\t\t\n\t\tg_objOverlay = g_objWrapper.children(\".ug-lightbox-overlay\");\n\t\t\n\t\tif(g_temp.isCompact == false && g_temp.isTopPanelEnabled == true){\n\t\t\tg_objTopPanel = g_objWrapper.children(\".ug-lightbox-top-panel\");\n\t\t\tif(g_objTopPanel.length == 0)\n\t\t\t\tg_objTopPanel = null;\n\t\t}\n\t\t\n\t\tg_objButtonClose = g_objWrapper.find(\".ug-lightbox-button-close\");\n\t\t\n\t\tif(g_options.lightbox_show_numbers)\n\t\t\tg_objNumbers = g_objWrapper.find(\".ug-lightbox-numbers\");\n\t\t\n\t\tg_objArrowLeft = g_objWrapper.children(\".ug-lightbox-arrow-left\");\n\t\tg_objArrowRight = g_objWrapper.children(\".ug-lightbox-arrow-right\");\n\t\t\t\t\n\t\tif(g_objTextPanel){\n\t\t\tif(g_objTopPanel)\n\t\t\t\tg_objTextPanel.appendHTML(g_objTopPanel);\n\t\t\telse\n\t\t\t\tg_objTextPanel.appendHTML(g_objWrapper);\n\t\t}\n\n\t}\n\t\n\t\n\t/**\n\t * set lightbox properties\n\t */\n\tfunction setProperties(){\n\t\t\n\t\tif(g_options.lightbox_overlay_color !== null)\n\t\t\tg_objOverlay.css(\"background-color\", g_options.lightbox_overlay_color);\n\t\t\n\t\tif(g_options.lightbox_overlay_opacity !== null)\n\t\t\tg_objOverlay.fadeTo(0, g_options.lightbox_overlay_opacity);\n\t\t\n\t\tif(g_objTopPanel && g_options.lightbox_top_panel_opacity !== null){\n\t\t\tg_objTopPanel.children(\".ug-lightbox-top-panel-overlay\").fadeTo(0, g_options.lightbox_top_panel_opacity);\n\t\t}\n\t\t\t\n\t\t//set numbers properties\n\t\tif(g_objNumbers){\n\t\t\tvar cssNumbers = {};\n\t\t\t\n\t\t\tif(g_options.lightbox_numbers_size !== null)\n\t\t\t\tcssNumbers[\"font-size\"] = g_options.lightbox_numbers_size+\"px\";\n\t\t\t\n\t\t\tif(g_options.lightbox_numbers_color)\n\t\t\t\tcssNumbers[\"color\"] = g_options.lightbox_numbers_color;\n\t\t\t\n\t\t\tif(g_options.lightbox_numbers_padding_right !== null)\n\t\t\t\tcssNumbers[\"padding-right\"] = g_options.lightbox_numbers_padding_right + \"px\";\n\t\t\t\n\t\t\tif(g_options.lightbox_numbers_padding_top !== null)\n\t\t\t\tcssNumbers[\"padding-top\"] = g_options.lightbox_numbers_padding_top + \"px\";\n\t\t\t\n\t\t\t\n\t\t\tg_objNumbers.css(cssNumbers);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * refresh slider item with new height\n\t */\n\tfunction refreshSliderItem(newHeight){\n\t\t\n\t\tif(!g_objSlider)\n\t\t\treturn(true);\n\t\t\t\t\n\t\t//set slider new image position\n\t\tvar objOptions = {\n\t\t\t\tslider_image_padding_top: newHeight\n\t\t};\n\t\t\n\t\tg_objSlider.setOptions(objOptions);\n\t\tg_objSlider.refreshSlideItems();\n\t\n\t}\n\t\n\tfunction __________WIDE_ONLY_________(){};\n\t\n\t\n\t/**\n\t * handle panel height according text height\n\t */\n\tfunction handlePanelHeight(fromWhere){\n\t\t\n\t\tif(!g_objTopPanel)\n\t\t\treturn(false);\n\t\t\t\n\t\tif(!g_objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\t//check text panel size, get the panel bigger then\n\t\tvar panelHeight = g_objTopPanel.height();\n\t\tif(panelHeight == 0)\n\t\t\treturn(false);\n\t\t\n\t\tif(g_objTopPanel.is(\":visible\") == false)\n\t\t\treturn(false);\n\t\t\n\t\tvar newPanelHeight = panelHeight;\n\t\t\n\t\tvar objTextPanelSize = g_objTextPanel.getSize();\n\t\t\n\t\tvar textPanelHeight = objTextPanelSize.height;\n\t\t\n\t\tif(panelHeight != g_temp.topPanelHeight)\n\t\t\tnewPanelHeight = g_temp.topPanelHeight;\n\t\t\t\t\n\t\tif(textPanelHeight > newPanelHeight)\n\t\t\tnewPanelHeight = textPanelHeight;\n\t\t\t\t\n\t\tif(panelHeight != newPanelHeight){\n\t\t\tg_objTopPanel.height(newPanelHeight);\n\t\t\t\n\t\t\tif(g_objSlider && g_objSlider.isAnimating() == false)\n\t\t\t\trefreshSliderItem(newPanelHeight);\n\t\t}\n\t\t\t\t\n\t}\n\n\n\t/**\n\t * position text panel for wide\n\t * size - wrapper size\n\t */\n\tfunction positionTextPanelWide(size){\n\n\t\tvar objOptions = {};\n\t\t\n\t\tvar textWidth = g_options.lightbox_textpanel_width;\n\t\tvar minPaddingLeft = 47;\n\t\tvar minPaddingRight = 40;\n\t\tvar maxTextPanelWidth = size.width - minPaddingLeft - minPaddingRight;\n\t\t\n\t\tif(textWidth > maxTextPanelWidth){\t\t//mobile mode\n\t\t\t\n\t\t\tobjOptions.textpanel_padding_left = minPaddingLeft;\n\t\t\tobjOptions.textpanel_padding_right = minPaddingRight;\n\t\t\t\n\t\t\tobjOptions.textpanel_title_text_align = \"center\";\n\t\t\tobjOptions.textpanel_desc_text_align = \"center\";\t\t\t\n\t\t}else{\n\t\t\tobjOptions.textpanel_padding_left = Math.floor((size.width - textWidth) / 2);\n\t\t\tobjOptions.textpanel_padding_right = objOptions.textpanel_padding_left;\n\t\t\tobjOptions.textpanel_title_text_align = \"left\";\n\t\t\tobjOptions.textpanel_desc_text_align = \"left\";\n\t\t\t\n\t\t\tif(g_options.lightbox_textpanel_title_text_align)\n\t\t\t\t\tobjOptions.textpanel_title_text_align = g_options.lightbox_textpanel_desc_text_align;\n\t\t\t\n\t\t\tif(g_options.lightbox_textpanel_desc_text_align)\n\t\t\t\tobjOptions.textpanel_desc_text_align = g_options.lightbox_textpanel_desc_text_align;\n\t\t\t\n\t\t}\n\t\t\t\t\n\t\tg_objTextPanel.setOptions(objOptions);\n\t\t\n\t\tg_objTextPanel.refresh(true, true);\n\t\t\n\t\thandlePanelHeight(\"positionTextPanelWide\");\n\t\tg_objTextPanel.positionPanel();\n\t}\n\t\n\t/**\n\t * hide top panel\n\t */\n\tfunction hideTopPanel(){\n\t\t\t\t\n\t\tif(!g_objTopPanel)\n\t\t\treturn(false);\n\t\t\n\t\tg_objTopPanel.hide();\n\t}\n\t\n\t\n\t/**\n\t * show top panel\n\t */\n\tfunction showTopPanel(){\n\t\t\n\t\tif(!g_objTopPanel)\n\t\t\treturn(false);\n\t\t\n\t\tg_objTopPanel.show();\n\t}\n\t\n\t\n\tfunction __________COMPACT_ONLY_________(){};\n\n\t/**\n\t * handle slider image height according the textpanel height\n\t * refresh the slider if the height is not in place\n\t */\n\tfunction handleCompactHeight(objImageSize){\n\t\t\t\t\n\t\tif(g_temp.isOpened == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(!g_objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\tif(!g_objSlider)\n\t\t\treturn(false);\n\t\t\n\t\tvar wrapperSize = g_functions.getElementSize(g_objWrapper);\n\t\tvar textPanelSize = g_objTextPanel.getSize();\n\t\t\n\t\tif(textPanelSize.width == 0 || textPanelSize.height > 120)\n\t\t\treturn(false);\n\t\t\n\t\tif(!objImageSize){\n\t\t\tvar objImage = g_objSlider.getSlideImage();\n\t\t\tvar objImageSize = g_functions.getElementSize(objImage);\n\t\t}\n\t\t\n\t\tif(objImageSize.height == 0 || objImageSize.width == 0)\n\t\t\treturn(false);\n\t\t\n\t\t//check elements end size\n\t\tvar totalBottom = objImageSize.bottom + textPanelSize.height;\n\t\t\n\t\tif(totalBottom < wrapperSize.height)\n\t\t\treturn(false);\n\t\t\n\t\tvar sliderOptions = g_objSlider.getOptions();\n\t\t\n\t\tvar imagePaddingBottom = textPanelSize.height;\n\t\t\n\t\tif(imagePaddingBottom != sliderOptions.slider_image_padding_bottom){\n\t\t\t\n\t\t\tvar objOptions = {\n\t\t\t\t\tslider_image_padding_bottom: imagePaddingBottom\n\t\t\t};\n\t\t\t\n\t\t\tif(g_objSlider.isAnimating() == false){\n\t\t\t\tg_objSlider.setOptions(objOptions);\n\t\t\t\tg_objSlider.refreshSlideItems();\n\t\t\t\treturn(true);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * set text panel top of compact mode\n\t */\n\tfunction setCompactTextpanelTop(objImageSize, positionPanel){\n\t\t\n\t\tif(!objImageSize){\n\t\t\tvar objImage = g_objSlider.getSlideImage();\n\t\t\tvar objImageSize = g_functions.getElementSize(objImage);\n\t\t}\n\t\t\n\t\tg_temp.textPanelTop = objImageSize.bottom;\n\t\t\n\t\tif(positionPanel === true)\n\t\t\tg_objTextPanel.positionPanel(g_temp.textPanelTop, g_temp.textPanelLeft);\n\t}\n\t\n\t\n\t/**\n\t * handle text panel width on compact mode, \n\t * run when the image is ready. \n\t * Set top position of the panel as well\n\t * position numbers as well\n\t */\n\tfunction handleCompactTextpanelSizes(showTextpanel){\n\t\t\t\n\t\tvar wrapperSize = g_functions.getElementSize(g_objWrapper);\n\t\tvar objImage = g_objSlider.getSlideImage();\n\t\tvar objImageSize = g_functions.getElementSize(objImage);\n\t\t\n\t\tif(objImageSize.width == 0)\n\t\t\treturn(false);\n\t\t\n\t\t\n\t\tg_temp.textPanelLeft = objImageSize.left;\n\t\tg_temp.textPanelTop = objImageSize.bottom;\n\n\t\tvar textPanelWidth = objImageSize.width;\n\t\t\n\t\tif(g_objNumbers){\n\t\t\t\n\t\t\tvar objNumbersSize = g_functions.getElementSize(g_objNumbers);\n\t\t\ttextPanelWidth -= objNumbersSize.width;\n\t\t\t\n\t\t\t//place numbers object\n\t\t\tvar numbersLeft = objImageSize.right - objNumbersSize.width;\n\t\t\tg_functions.placeElement(g_objNumbers, numbersLeft, g_temp.textPanelTop);\n\t\t}\n\t\t\t\n\t\t\t\n\t\tif(g_objTextPanel){\n\t\t\tg_objTextPanel.show();\n\t\t\tg_objTextPanel.refresh(true, true, textPanelWidth);\n\t\t\tsetCompactTextpanelTop(objImageSize);\n\t\t}\n\t\t\n\t\tvar isChanged = handleCompactHeight(objImageSize);\n\t\t\n\t\tif(isChanged == false){\n\t\t\t\n\t\t\tg_temp.positionFrom = \"handleCompactTextpanelSizes\";\n\t\t\t\n\t\t\tif(g_objTextPanel){\n\t\t\t\tg_objTextPanel.positionPanel(g_temp.textPanelTop, g_temp.textPanelLeft);\n\t\t\t\tif(showTextpanel === true){\n\t\t\t\t\tshowTextpanel();\n\t\t\t\t\tshowNumbers();\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * return that current slider image is in place\n\t */\n\tfunction isSliderImageInPlace(){\n\n\t\tif(g_objSlider.isCurrentSlideType(\"image\") == false)\n\t\t\treturn(true);\n\t\t\n\t\tvar isImageInPlace = (g_objSlider.isCurrentImageInPlace() == true);\n\t\t\t\t\n\t\treturn(isImageInPlace);\n\t}\n\t\n\t\n\t/**\n\t * position the arrows inside mode\n\t */\n\tfunction positionArrowsInside(toShow, isAnimation){\n\t\t\t\t\n\t\tif(g_temp.isArrowsInside == false)\n\t\t\treturn(false);\n\t\t\n\t\tif(!g_objArrowLeft)\n\t\t\treturn(false);\n\t\t\n\t\tvar isImageInPlace = isSliderImageInPlace();\n\t\t\n\t\tg_objArrowLeft.show();\n\t\tg_objArrowRight.show();\n\t\t\n\t\tg_temp.positionFrom = \"positionArrowsInside\";\n\t\t\n\t\tif(g_temp.isArrowsOnHoverMode == true && isImageInPlace == true && isMouseInsideImage() == false)\n\t\t\thideArrows(true);\n\t\t\n\t\tif(isImageInPlace == false){\n\t\t\tvar leftArrowLeft = g_functions.getElementRelativePos(g_objArrowLeft, \"left\", g_options.lightbox_arrows_offset);\n\t\t\tvar leftArrowTop = g_functions.getElementRelativePos(g_objArrowLeft, \"middle\");\n\t\t\t\t\t\t\n\t\t\tvar rightArrowLeft = g_functions.getElementRelativePos(g_objArrowRight, \"right\", g_options.lightbox_arrows_offset);\n\t\t\tvar rightArrowTop = leftArrowTop;\n\n\t\t}else{\n\t\t\t\n\t\t\tvar objImage = g_objSlider.getSlideImage();\n\t\t\tvar objImageSize = g_functions.getElementSize(objImage);\n\t\t\tvar objSliderSize = g_functions.getElementSize(g_objSlider.getElement());\n\t\t\t\t\t\t\n\t\t\tvar leftArrowLeft = g_functions.getElementRelativePos(g_objArrowLeft, \"left\", 0, objImage) + objImageSize.left + g_options.lightbox_arrows_inside_offset;\n\t\t\tvar leftArrowTop = g_functions.getElementRelativePos(g_objArrowLeft, \"middle\", 0, objImage) + objImageSize.top;\n\t\t\tvar rightArrowLeft = g_functions.getElementRelativePos(g_objArrowLeft, \"right\", 0, objImage) + objImageSize.left - g_options.lightbox_arrows_inside_offset;\n\t\t\tvar rightArrowTop = leftArrowTop;\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//place the image with animation or not\n\t\tif(isAnimation === true){\n\n\t\t\tvar objCssLeft = {\n\t\t\t\t\tleft: leftArrowLeft,\n\t\t\t\t\ttop: leftArrowTop\n\t\t\t};\n\t\t\t\n\t\t\tvar objCssRight = {\n\t\t\t\t\tleft: rightArrowLeft,\n\t\t\t\t\ttop: rightArrowTop\n\t\t\t};\n\t\t\t\n\t\t\tg_objArrowLeft.stop().animate(objCssLeft,{\n\t\t\t\tduration: g_temp.fadeDuration\n\t\t\t});\n\t\t\t\n\t\t\tg_objArrowRight.stop().animate(objCssRight,{\n\t\t\t\tduration: g_temp.fadeDuration\n\t\t\t});\n\t\t\t\n\t\t\t\n\t\t}else{\n\t\t\tg_objArrowLeft.stop();\n\t\t\tg_objArrowRight.stop();\n\t\t\t\n\t\t\tg_functions.placeElement(g_objArrowLeft, leftArrowLeft, leftArrowTop);\n\t\t\tg_functions.placeElement(g_objArrowRight, rightArrowLeft, rightArrowTop);\n\t\t}\n\t\t\n\t\t\n\t\tif(toShow == true)\n\t\t\tshowArrows(isAnimation);\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * position close button for compact type\n\t */\n\tfunction positionCloseButton(toShow, isAnimation){\n\t\t\n\t\tg_temp.positionFrom = null;\n\t\t\n\t\tvar isImageInPlace = isSliderImageInPlace();\n\t\t\n\t\tvar minButtonTop = 2;\n\t\tvar maxButtonLeft = g_functions.getElementRelativePos(g_objButtonClose, \"right\", 2, g_objWrapper);\n\t\t\n\t\tif(isImageInPlace == false){\t//put image to corner\n\t\t\t\n\t\t\tvar closeButtonTop = minButtonTop;\n\t\t\tvar closeButtonLeft = maxButtonLeft;\n\t\t\t\n\t\t}else{\n\t\t\tvar objImage = g_objSlider.getSlideImage();\n\t\t\tvar objImageSize = g_functions.getElementSize(objImage);\n\t\t\tvar objSliderSize = g_functions.getElementSize(g_objSlider.getElement());\n\t\t\tvar objButtonSize = g_functions.getElementSize(g_objButtonClose);\n\t\t\t\n\t\t\t//some strange bug\n\t\t\tif(objSliderSize.top == objSliderSize.height)\t\n\t\t\t\tobjSliderSize.top = 0;\n\t\t\t\n\t\t\tvar closeButtonLeft = objSliderSize.left + objImageSize.right - objButtonSize.width / 2 + g_options.lightbox_compact_closebutton_offsetx;\n\t\t\tvar closeButtonTop = objSliderSize.top + objImageSize.top - objButtonSize.height / 2 - g_options.lightbox_compact_closebutton_offsety;\n\t\t\t\n\t\t\tif(closeButtonTop < minButtonTop)\n\t\t\t\tcloseButtonTop = minButtonTop;\n\t\t\t\n\t\t\tif(closeButtonLeft > maxButtonLeft)\n\t\t\t\tcloseButtonLeft = maxButtonLeft;\n\t\t\t\n\t\t}\n\t\t\n\t\t//place the image with animation or not\n\t\tif(isAnimation === true){\n\t\t\tvar objCss = {\n\t\t\t\t\tleft: closeButtonLeft,\n\t\t\t\t\ttop: closeButtonTop\n\t\t\t};\n\t\t\t\n\t\t\tg_objButtonClose.stop().animate(objCss,{\n\t\t\t\tduration: g_temp.fadeDuration\n\t\t\t});\n\t\t\t\n\t\t}else{\n\t\t\tg_objButtonClose.stop();\n\t\t\tg_functions.placeElement(g_objButtonClose, closeButtonLeft, closeButtonTop);\n\t\t}\n\t\t\n\t\tif(toShow === true)\n\t\t\tshowCloseButton(isAnimation);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * hide close button\n\t */\n\tfunction hideCompactElements(){\n\t\t\n\t\tif(g_objButtonClose)\n\t\t\tg_objButtonClose.stop().fadeTo(g_temp.fadeDuration, 0);\n\t\t\n\t\thideTextPanel();\n\t\t\n\t\thideNumbers();\n\t\t\n\t\tg_temp.positionFrom = \"hideCompactElements\";\n\t\tif(g_temp.isArrowsInside == true)\n\t\t\thideArrows();\n\t}\n\n\t\n\t/**\n\t * actual hide all compact type elements\n\t */\n\tfunction actualHideCompactElements(){\n\t\t\n\t\tif(g_objButtonClose)\n\t\t\tg_objButtonClose.hide();\n\t\t\n\t\tif(g_objArrowLeft && g_temp.isArrowsInside == true){\n\t\t\tg_objArrowLeft.hide();\n\t\t\tg_objArrowRight.hide();\n\t\t}\n\t\t\n\t\tif(g_objNumbers)\n\t\t\tg_objNumbers.hide();\n\t\t\n\t\tif(g_objTextPanel)\n\t\t\tg_objTextPanel.hide();\n\t\t\n\t}\n\t\n\t\n\tfunction __________COMMON_________(){};\n\t\n\t\n\t/**\n\t * position the elements\n\t */\n\tfunction positionElements(){\n\t\t\t\t\t\t\n\t\tvar size = g_functions.getElementSize(g_objWrapper);\n\t\t\n\t\t//position top panel:\n\t\tif(g_objTopPanel)\n\t\t\tg_functions.setElementSizeAndPosition(g_objTopPanel, 0, 0, size.width, g_temp.topPanelHeight);\n\t\t\n\t\t//position arrows\n\t\tif(g_objArrowLeft && g_temp.isArrowsInside == false){\n\t\t\t\n\t\t\tif(g_options.lightbox_hide_arrows_onvideoplay == true){\n\t\t\t\tg_objArrowLeft.show();\n\t\t\t\tg_objArrowRight.show();\n\t\t\t}\n\t\t\t\n\t\t\tg_functions.placeElement(g_objArrowLeft, \"left\", \"middle\", g_options.lightbox_arrows_offset);\n\t\t\tg_functions.placeElement(g_objArrowRight, \"right\", \"middle\", g_options.lightbox_arrows_offset);\n\t\t}\t\t\n\t\t\n\t\tif(g_temp.isCompact == false)\n\t\t\tg_functions.placeElement(g_objButtonClose, \"right\", \"top\", 2, 2);\n\t\t\n\t\t//place text panel\n\t\tif(g_objTextPanel){\n\t\t\t\n\t\t\tg_temp.positionFrom = \"positionElements\";\n\t\t\t\n\t\t\tif(g_temp.isCompact == false)\n\t\t\t\tpositionTextPanelWide(size);\n\t\t\telse{\n\t\t\t\tshowTextPanel();\n\t\t\t\tshowNumbers();\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tvar sliderWidth = size.width;\n\t\tvar sliderHeight = size.height;\t\n\t\tvar sliderTop = 0;\n\t\tvar sliderLeft = 0;\n\t\t\n\t\tif(g_objSlider){\n\t\t\t\n\t\t\tif(g_objTopPanel){\n\t\t\t\tvar topPanelHeight = g_objTopPanel.height();\n\t\t\t\tvar objOptions = {\n\t\t\t\t\t\tslider_image_padding_top: topPanelHeight\n\t\t\t\t};\n\t\t\t\tg_objSlider.setOptions(objOptions);\n\t\t\t}\n\t\t\t\n\t\t\tg_objSlider.setSize(sliderWidth, sliderHeight);\n\t\t\tg_objSlider.setPosition(sliderLeft, sliderTop);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * hide the text panel\n\t */\n\tfunction hideTextPanel(){\n\t\t\n\t\tif(g_objTextPanel)\n\t\t\tg_objTextPanel.getElement().stop().fadeTo(g_temp.fadeDuration, 0);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * hide the numbers text\n\t */\n\tfunction hideNumbers(){\n\t\t\n\t\tif(g_objNumbers)\n\t\t\tg_objNumbers.stop().fadeTo(g_temp.fadeDuration, 0);\n\t}\n\t\n\t\n\t/**\n\t * is mouse inside image\n\t */\n\tfunction isMouseInsideImage(){\n\t\tif(!g_temp.lastMouseX)\n\t\t\treturn(true);\n\t\tvar obj = {\n\t\t\t\tpageX: g_temp.lastMouseX, \n\t\t\t\tpageY: g_temp.lastMouseY\n\t\t\t};\n\t\n\t\tvar isMouseInside = g_objSlider.isMouseInsideSlideImage(obj);\n\t\t\n\t\treturn(isMouseInside);\n\t}\n\t\n\t\n\t/**\n\t * hide the arrows\n\t */\n\tfunction hideArrows(noAnimation, isForce){\n\t\t\n\t\tif(!g_objArrowLeft)\n\t\t\treturn(false);\n\t\t\t\t\n\t\t//don't hide the arrows if mouse inside image\n\t\tif(g_temp.isArrowsOnHoverMode == true && isForce === false){\n\t\t\tif(isMouseInsideImage() == true);\n\t\t\t\treturn(true);\n\t\t}\n\t\t\n\t\tif(noAnimation === true){\n\t\t\tg_objArrowLeft.stop().fadeTo(0, 0);\n\t\t\tg_objArrowRight.stop().fadeTo(0, 0);\n\t\t}else{\n\t\t\tg_objArrowLeft.stop().fadeTo(g_temp.fadeDuration, 0);\n\t\t\tg_objArrowRight.stop().fadeTo(g_temp.fadeDuration, 0);\n\t\t}\n\t\t\t\t\n\t}\n\t\n\t/**\n\t * get if the arrows are hidden\n\t */\n\tfunction isArrowsHidden(){\n\t\t\n\t\tif(!g_objArrowLeft)\n\t\t\treturn(true);\n\t\tif(g_objArrowLeft.is(\":visible\") == false)\n\t\t\treturn(true);\n\t\t\n\t\tvar opacity = g_objArrowLeft.css(\"opacity\");\n\t\tif(opacity != 1)\n\t\t\treturn(true);\n\t\t\n\t\treturn(false);\n\t}\n\t\n\t/**\n\t * show the arrows\n\t */\n\tfunction showArrows(noStop, fromHover){\n\t\t\n\t\tif(!g_objArrowLeft)\n\t\t\treturn(false);\n\t\t\n\t\t//don't show every time on arrowsonhover mode\n\t\tif(g_temp.isArrowsOnHoverMode == true && fromHover !== true && isSliderImageInPlace() == true)\n\t\t\treturn(true);\n\t\t\n\t\t//don't show if swiping\n\t\tif(g_objSlider.isSwiping() == true)\n\t\t\treturn(true);\n\t\t\t\n\t\tif(noStop !== true){\n\t\t\tg_objArrowLeft.stop();\n\t\t\tg_objArrowRight.stop();\n\t\t}\n\t\t\n\t\tg_objArrowLeft.fadeTo(g_temp.fadeDuration, 1);\n\t\tg_objArrowRight.fadeTo(g_temp.fadeDuration, 1);\n\t\t\n\t}\n\n\t\n\t\n\t\n\t\n\t/**\n\t * show close button\n\t */\n\tfunction showCloseButton(noStop){\n\t\t\n\t\tif(noStop !== true)\n\t\t\tg_objButtonClose.stop();\n\t\t\n\t\tg_objButtonClose.fadeTo(g_temp.fadeDuration, 1);\n\t}\n\t\n\t\n\t/**\n\t * update text panel text of the curren item\n\t */\n\tfunction updateTextPanelText(currentItem){\n\t\t\n\t\tif(!g_objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\tif(!currentItem)\n\t\t\tvar currentItem = g_objSlider.getCurrentItem();\n\t\t\n\t\tg_objTextPanel.setTextPlain(currentItem.title, currentItem.description);\n\t}\n\n\t\n\t/**\n\t * update numbers text\n\t */\n\tfunction updateNumbersText(currentItem){\n\t\t\n\t\tif(!g_objNumbers)\n\t\t\treturn(false);\n\t\t\n\t\tif(!currentItem)\n\t\t\tvar currentItem = g_objSlider.getCurrentItem();\n\t\t\n\t\tvar numItems = g_gallery.getNumItems();\n\t\tvar numCurrentItem = currentItem.index + 1;\n\t\tg_objNumbers.html(numCurrentItem + \" / \" + numItems);\n\t}\n\t\n\t\n\t/**\n\t * show the text panel\n\t */\n\tfunction showTextPanel(){\n\t\t\n\t\tif(!g_objTextPanel)\n\t\t\treturn(false);\n\t\t\n\t\tg_objTextPanel.getElement().show().stop().fadeTo(g_temp.fadeDuration, 1);\n\t\t\n\t}\n\n\t\n\t/**\n\t * Show the numbers object\n\t */\n\tfunction showNumbers(){\n\t\t\n\t\tif(g_objNumbers)\n\t\t\tg_objNumbers.stop().fadeTo(g_temp.fadeDuration, 1);\n\t}\n\t\n\t\n\tfunction __________EVENTS_________(){};\n\t\n\t\n\t/**\n\t * on start dragging slider item event. hide the elements\n\t */\n\tfunction onSliderDragStart(){\n\t\tif(g_temp.isCompact == false)\n\t\t\treturn(true);\n\t\t\n\t\thideCompactElements();\n\t}\n\n\t\n\t/**\n\t * on zoom change\n\t * move the assets of compact to their places\n\t */\n\tfunction onZoomChange(){\n\t\tif(g_temp.isCompact == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.positionFrom = \"onZoomChange\";\n\t\n\t\tpositionCloseButton(false, true);\n\t\tpositionArrowsInside(false, true);\n\t\t\n\t\t//handle compact text panel mode\n\t\tif(g_temp.isCompact == true){\n\t\t\tvar isImageInPlace = (g_objSlider.isCurrentSlideType(\"image\") && g_objSlider.isCurrentImageInPlace() == true);\n\t\t\tif(isImageInPlace == false){\n\t\t\t\thideTextPanel();\n\t\t\t\thideNumbers();\n\t\t\t}\n\t\t\telse{\n\t\t\t\tg_temp.positionFrom = \"onZoomChange\";\n\t\t\t\tshowTextPanel();\n\t\t\t\tshowNumbers();\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\n\t/**\n\t * after return slider to it's place\n\t * show close button\n\t */\n\tfunction onSliderAfterReturn(){\n\t\t\n\t\tif(g_temp.isCompact == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.positionFrom = \"onSliderAfterReturn\";\n\t\t\n\t\tpositionCloseButton(true);\n\t\tpositionArrowsInside(true);\n\t\t\n\t\tvar isChanged = handleCompactHeight();\n\t\tif(isChanged == false)\n\t\t\thandleCompactTextpanelSizes();\n\t\t\n\t\tshowTextPanel();\n\t\tshowNumbers();\n\t}\n\t\n\t\n\t/**\n\t * after put image to the slide\n\t * position compact elements\n\t */\n\tfunction onSliderAfterPutImage(data, objSlide){\n\t\t\t\t\n\t\tobjSlide = jQuery(objSlide);\n\t\t\t\t\n\t\tif(g_temp.isCompact == false)\n\t\t\treturn(true);\n\n\t\tif(g_objSlider.isSlideCurrent(objSlide) == false)\n\t\t\treturn(true);\n\t\t\t\t\n\t\tg_temp.positionFrom = \"onSliderAfterPutImage\";\n\t\t\n\t\tpositionCloseButton(true);\n\t\t\n\t\tpositionArrowsInside(true);\n\t\t\n\t\thandleCompactTextpanelSizes();\n\t}\n\t\n\t\n\t/**\n\t * on slider transition end, handle panel height\n\t */\n\tfunction onSliderTransitionEnd(){\n\t\t\n\t\tvar sliderOptions = g_objSlider.getOptions();\n\t\tvar imagePaddingTop = sliderOptions.slider_image_padding_top;\n\t\t\n\t\t//handle wide\n\t\tif(g_objTopPanel){\n\t\t\tvar panelHeight = g_objTopPanel.height();\n\t\t\t\n\t\t\tif(panelHeight != imagePaddingTop)\n\t\t\t\trefreshSliderItem(panelHeight);\n\t\t}\n\t\t\n\t\t//handle compact\n\t\tif(g_temp.isCompact == true){\n\t\t\t\n\t\t\tupdateTextPanelText();\n\t\t\tupdateNumbersText();\n\t\t\t\n\t\t\tg_temp.positionFrom = \"onSliderTransitionEnd\";\n\t\t\t\n\t\t\tpositionCloseButton(true);\n\t\t\tpositionArrowsInside(true);\n\n\t\t\tif(g_objSlider.isSlideActionActive() == false){\n\t\t\t\tvar isChanged = handleCompactHeight();\n\t\t\t\tif(isChanged == false)\n\t\t\t\t\thandleCompactTextpanelSizes();\n\t\t\t}\n\t\t\t\n\t\t\tshowTextPanel();\n\t\t\tshowNumbers();\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\t\n\t/**\n\t * on item change\n\t * update numbers text and text panel text/position\n\t */\n\tfunction onItemChange(data, currentItem){\n\t\t\n\t\tif(g_temp.isCompact == false){\t//wide mode\n\t\t\t\n\t\t\tif(g_objNumbers)\n\t\t\t\tupdateNumbersText(currentItem);\n\t\t\t\n\t\t\tif(g_objTextPanel){\n\t\t\t\tupdateTextPanelText(currentItem);\n\t\t\t\t\n\t\t\t\t//update panel height only if the lightbox is already opened, and the items changed within it.\n\t\t\t\tif(g_temp.isRightNowOpened == false){\n\t\t\t\t\tg_objTextPanel.positionElements(false);\n\t\t\t\t\thandlePanelHeight(\"onchange\");\n\t\t\t\t\tg_objTextPanel.positionPanel();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\tif(g_objSlider.isAnimating() == false){\n\t\t\t\t\n\t\t\t\tif(g_objTextPanel)\n\t\t\t\t\tupdateTextPanelText(currentItem);\n\t\t\t\t\n\t\t\t\tif(g_objNumbers)\n\t\t\t\t\tupdateNumbersText(currentItem);\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//trigger lightbox init event\n\t\tif(g_temp.isSliderChangedOnce == false){\n\t\t\tg_temp.isSliderChangedOnce = true;\n\t\t\tg_objThis.trigger(t.events.LIGHTBOX_INIT);\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on slider click\n\t */\n\tfunction onSliderClick(data, event){\n\t\t\n\t\tvar slideType = g_objSlider.getSlideType();\n\t\tif(slideType != \"image\" && g_temp.isCompact == false && g_objSlider.isSlideActionActive() )\n\t\t\treturn(true);\n\t\t\n\t\tvar isPreloading = g_objSlider.isPreloading();\n\t\tif(isPreloading == true){\n\t\t\tt.close(\"slider\");\n\t\t\treturn(true);\n\t\t}\n\t\t\n\t\t//close the lightbox on empty space click\n\t\tif(g_options.lightbox_close_on_emptyspace == true){\n\t\t\t\n\t\t\tvar isInside = g_objSlider.isMouseInsideSlideImage(event);\n\t\t\t\n\t\t\tif(isInside == false)\n\t\t\t\tt.close(\"slider_inside\");\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on lightbox resize\n\t */\n\tfunction onResize(){\n\t\t\n\t\tpositionElements();\n\t}\n\t\n\t\n\t\n\t/**\n\t * on start play - hide the side buttons\n\t */\n\tfunction onPlayVideo(){\n\t\t\n\t\tif(g_objTopPanel){\n\t\t\thideTopPanel();\n\t\t}else{\n\t\t\tif(g_objNumbers)\n\t\t\t\tg_objNumbers.hide();\n\t\t}\n\t\t\n\t\tif(g_objArrowLeft && g_options.lightbox_hide_arrows_onvideoplay == true){\n\t\t\tg_objArrowLeft.hide();\t\t\t\n\t\t\tg_objArrowRight.hide();\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on stop video - show the side buttons\n\t */\n\tfunction onStopVideo(){\n\n\t\tif(g_objTopPanel){\n\t\t\tshowTopPanel();\n\t\t\thandlePanelHeight(\"onStopVideo\");\n\t\t}else{\n\t\t\t\n\t\t\tif(g_objNumbers)\n\t\t\t\tg_objNumbers.show();\n\t\t}\n\t\t\n\t\tif(g_objArrowLeft && g_options.lightbox_hide_arrows_onvideoplay == true){\n\t\t\tg_objArrowLeft.show();\n\t\t\tg_objArrowRight.show();\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * on gallery keypres, do operations\n\t */\n\tfunction onKeyPress(data, key, event){\n\t\t\n\t\tvar isScrollKey = false;\n\t\t\n\t\tswitch(key){\n\t\t\tcase 27:\t\t//escape - close lightbox\n\t\t\t\tif(g_temp.isOpened == true)\n\t\t\t\t\tt.close(\"keypress\");\n\t\t\tbreak;\n\t\t\tcase 38:\t//up and down arrows\n\t\t\tcase 40:\n\t\t\tcase 33:\t//page up and down\n\t\t\tcase 34:\n\t\t\t\tisScrollKey = true;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif(g_temp.isOpened == true && isScrollKey == true)\n\t\t\tevent.preventDefault();\n\t\t\n\t\t\n\t}\n\t\n\t/**\n\t * on image mouse enter event\n\t */\n\tfunction onImageMouseEnter(){\n\t\t\n\t\tif(g_temp.isArrowsOnHoverMode == true)\n\t\t\tshowArrows(false, true);\n\t\t\n\t}\n\t\n\t/**\n\t * on image mouse leave\n\t */\n\tfunction onImageMouseLeave(event){\n\t\t\n\t\tg_temp.positionFrom = \"hideCompactElements\";\n\t\t\n\t\tif(g_temp.isArrowsOnHoverMode == true && isSliderImageInPlace() == true)\n\t\t\thideArrows(false, true);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on mouse move event\n\t * show arrows if inside image\n\t */\n\tfunction onMouseMove(event){\n\t\t g_temp.lastMouseX = event.pageX;\n\t\t g_temp.lastMouseY = event.pageY;\n\t\t\n\t\t var isHidden = isArrowsHidden()\n\t\t \n\t\t \n\t\t if(isHidden == true && isMouseInsideImage() && g_objSlider.isAnimating() == false){\n\t\t\t g_temp.positionFrom = \"onMouseMove\";\n\t\t\t if(g_objArrowLeft && g_objArrowLeft.is(\":animated\") == false)\n\t\t\t\t showArrows(false, true);\n\t\t }\n\t\t \n\t}\n\n\t\n\t/**\n\t * on mouse wheel\n\t */\n\tfunction onMouseWheel(event, delta, deltaX, deltaY){\n\t\t\n\t\tif(g_temp.isOpened == false)\n\t\t\treturn(true);\n\t\t\n\t\tswitch(g_options.gallery_mousewheel_role){\n\t\t\tdefault:\n\t\t\tcase \"zoom\":\n\t\t\t\tvar slideType = g_objSlider.getSlideType();\n\t\t\t\tif(slideType != \"image\")\n\t\t\t\t\tevent.preventDefault();\n\t\t\tbreak;\n\t\t\tcase \"none\":\n\t\t\t\tevent.preventDefault();\n\t\t\tbreak;\n\t\t\tcase \"advance\":\n\t\t\t\tg_gallery.onGalleryMouseWheel(event, delta, deltaX, deltaY);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tg_objOverlay.on(\"touchstart\", function(event){\n\t\t\tevent.preventDefault();\n\t\t});\n\t\t\n\t\tg_objOverlay.on(\"touchend\", function(event){\n\t\t\tt.close(\"overlay\");\n\t\t});\n\t\t\n\t\t\n\t\tg_functions.addClassOnHover(g_objArrowRight, \"ug-arrow-hover\");\n\t\tg_functions.addClassOnHover(g_objArrowLeft, \"ug-arrow-hover\");\n\t\t\n\t\tg_functions.addClassOnHover(g_objButtonClose);\n\t\t\n\t\tg_gallery.setNextButton(g_objArrowRight);\n\t\tg_gallery.setPrevButton(g_objArrowLeft);\n\t\t\n\t\tg_objButtonClose.click(function(){\n\t\t\tt.close(\"button\");\n\t\t});\n\t\t\n\t\tg_objGallery.on(g_gallery.events.ITEM_CHANGE, onItemChange);\n\t\t\n\t\tif(g_objSlider){\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.TRANSITION_END, onSliderTransitionEnd);\n\t\t\t\n\t\t\t//on slider click event\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.CLICK, onSliderClick);\n\t\t\t\n\t\t\t//on slider video \n\t\t\tvar objVideo = g_objSlider.getVideoObject();\n\t\t\t\t\t\n\t\t\tjQuery(objVideo).on(objVideo.events.PLAY_START, onPlayVideo);\n\t\t\tjQuery(objVideo).on(objVideo.events.PLAY_STOP, onStopVideo);\n\t\t\t\n\t\t\t//handle close button hide / appear\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.START_DRAG, onSliderDragStart);\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.TRANSITION_START, onSliderDragStart);\n\t\t\t\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.AFTER_DRAG_CHANGE, onSliderAfterReturn);\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.AFTER_RETURN, onSliderAfterReturn);\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.AFTER_PUT_IMAGE, onSliderAfterPutImage);\n\t\t\t\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.ZOOM_CHANGE, onZoomChange);\n\t\t\t\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.IMAGE_MOUSEENTER, onImageMouseEnter);\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.IMAGE_MOUSELEAVE, onImageMouseLeave);\n\n\t\t}\n\t\t\n\t\t//on resize\n\t\t jQuery(window).resize(function(){\n\t\t\t \n\t\t\t if(g_temp.isOpened == false)\n\t\t\t\t return(true);\n\t\t\t \n\t\t\t g_functions.whenContiniousEventOver(\"lightbox_resize\", onResize, 100);\n\t\t });\n\t\t \n\t\t g_objGallery.on(g_gallery.events.GALLERY_KEYPRESS, onKeyPress);\n\t\t \n\t\t //store last mouse x and y\n\t\t if(g_temp.isArrowsOnHoverMode == true){\n\t\t\t \n\t\t\t jQuery(document).bind('mousemove', onMouseMove);\n\t\t \n\t\t }\n\t\t\n\t\t//on mouse wheel - disable functionality if video\n\t\tg_objWrapper.on(\"mousewheel\", onMouseWheel);\n\n\t}\n\n\t\n\t/**\n\t * destroy the lightbox events and the html it created\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tjQuery(document).unbind(\"mousemove\");\n\t\t\n\t\tg_objOverlay.off(\"touchstart\");\n\t\tg_objOverlay.off(\"touchend\");\n\t\tg_objButtonClose.off(\"click\");\n\t\tg_objGallery.off(g_gallery.events.ITEM_CHANGE);\n\t\t\n\t\tif(g_objSlider){\n\t\t\tjQuery(g_objSlider).off(g_objSlider.events.TRANSITION_END);\n\t\t\tjQuery(g_objSlider).off(g_objSlider.events.CLICK);\n\t\t\tjQuery(g_objSlider).off(g_objSlider.events.START_DRAG);\n\t\t\tjQuery(g_objSlider).off(g_objSlider.events.TRANSITION_START);\n\t\t\tjQuery(g_objSlider).off(g_objSlider.events.AFTER_DRAG_CHANGE);\n\t\t\tjQuery(g_objSlider).off(g_objSlider.events.AFTER_RETURN);\n\t\t\t\n\t\t\tvar objVideo = g_objSlider.getVideoObject();\n\t\t\tjQuery(objVideo).off(objVideo.events.PLAY_START);\n\t\t\tjQuery(objVideo).off(objVideo.events.PLAY_STOP);\n\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.IMAGE_MOUSEENTER, onImageMouseEnter);\n\t\t\tjQuery(g_objSlider).on(g_objSlider.events.IMAGE_MOUSELEAVE, onImageMouseLeave);\n\t\t\t\n\t\t\tg_objSlider.destroy();\n\t\t}\n\t\t\n\t\tjQuery(window).unbind(\"resize\");\n\t\tg_objGallery.off(g_gallery.events.GALLERY_KEYPRESS, onKeyPress);\n\t\t\n\t\tg_objWrapper.off(\"mousewheel\");\n\t\t\n\t\t//remove the html\n\t\tg_objWrapper.remove();\n\t}\n\t\n\t\n\t/**\n\t * open the lightbox with some item index\n\t */\n\tthis.open = function(index){\n\t\t\n\t\tvar objItem = g_gallery.getItem(index);\n\t\t\n\t\tg_temp.isOpened = true;\n\t\t\n\t\t//set if the panel right now opened\n\t\tg_temp.isRightNowOpened = true;\n\t\tsetTimeout(function(){g_temp.isRightNowOpened = false},100);\n\t\t\n\t\tif(g_objSlider){\n\t\t\tg_objSlider.setItem(objItem, \"lightbox_open\");\n\t\t}\n\t\t\n\t\tif(g_objTextPanel){\n\t\t\tg_objTextPanel.setTextPlain(objItem.title, objItem.description);\n\t\t}\n\t\t\n\t\tg_objOverlay.stop().fadeTo(0,0);\n\t\tg_objWrapper.show();\n\t\tg_objWrapper.fadeTo(0,1);\n\t\t\n\t\t//show the overlay\n\t\tg_objOverlay.stop().fadeTo(g_temp.fadeDuration, g_options.lightbox_overlay_opacity);\n\t\t\n\t\tpositionElements();\n\t\t\n\t\tif(g_temp.isCompact == true){\n\t\t\t\n\t\t\tvar isPreloading = g_objSlider.isPreloading();\n\t\t\tif(isPreloading == true){\n\t\t\t\t\n\t\t\t\tactualHideCompactElements();\n\t\t\t\t\n\t\t\t}else{\n\t\t\t\t\n\t\t\t\t//hide only arrows if they are inside\n\t\t\t\tif(g_temp.isArrowsInside == true){\n\t\t\t\t\tg_objArrowLeft.hide();\n\t\t\t\t\tg_objArrowRight.hide();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t}\n\t\t\n\t\tif(g_objSlider)\n\t\t\tg_objSlider.startSlideAction();\n\t\t\n\t\t//trigger gallery event\n\t\tg_objGallery.trigger(g_gallery.events.OPEN_LIGHTBOX, objItem);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * close the lightbox\n\t */\n\tthis.close = function(fromWhere){\n\t\t\t\t\n\t\tg_temp.isOpened = false;\n\t\t\n\t\tif(g_temp.isCompact == true)\n\t\t\thideCompactElements();\n\t\t\n\t\tif(g_objSlider)\n\t\t\tg_objSlider.stopSlideAction();\n\t\t\n\t\tvar slideType = g_objSlider.getSlideType();\n\t\t\t\t\n\t\tif(slideType != \"image\")\n\t\t\tg_objWrapper.hide();\n\t\telse{\n\t\t\tg_objWrapper.fadeTo(g_temp.fadeDuration,0,function(){\n\t\t\t\tg_objWrapper.hide();\n\t\t\t});\n\t\t}\n\n\t\tg_objGallery.trigger(g_gallery.events.CLOSE_LIGHTBOX);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * external init function\n\t */\n\tthis.init = function(gallery, customOptions){\n\t\t\n\t\tinitLightbox(gallery, customOptions);\n\t}\n\t\n\t\n\t/**\n\t * switch to wide mode from compact mode\n\t */\n\tfunction switchToWide(){\n\t\tg_temp.isCompact = false;\n\t\tmodifyOptions();\n\t\t\n\t\tg_temp.isArrowsInside = false;\n\t\tg_temp.isArrowsOnHoverMode = false;\n\t\n\t\tg_options = jQuery.extend({}, g_temp.originalOptions);\n\t\t\n\t\tg_options.lightbox_arrows_position = \"sides\";\n\t\t\n\t\tg_objSlider.setOptions(g_options);\n\t}\n\t\n\t\n\t/**\n\t * external put html function\n\t */\n\tthis.putHtml = function(){\n\t\t\n\t\t//check if switch to wide mode\n\t\tvar isSmallWindow = g_gallery.isSmallWindow();\n\t\t\n\t\tif(isSmallWindow && g_temp.isCompact == true)\n\t\t\tswitchToWide();\n\t\t\n\t\tputLightboxHtml();\n\t}\n\t\n\t\n\t/**\n\t * run lightbox elements\n\t */\n\tthis.run = function(){\n\t\t\n\t\tsetProperties();\n\t\t\n\t\tif(g_objSlider)\n\t\t\tg_objSlider.run();\n\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t\n}\n\n\n\n/**\n * carousel class\n */\nfunction UGCarousel(){\n\n\tvar t = this, g_objThis = jQuery(this);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery, g_objWrapper;\t\n\tvar g_functions = new UGFunctions(), g_arrItems, g_objTileDesign = new UGTileDesign();\n\tvar g_thumbs = new UGThumbsGeneral(), g_objCarouselWrapper, g_objInner, arrOrigTiles = [];\n\t\n\tvar g_options = {\n\t\t\tcarousel_padding: 8,\t\t\t\t\t\t\t//padding at the sides of the carousel\n\t\t\tcarousel_space_between_tiles: 20,\t\t\t\t//space between tiles\n\t\t\tcarousel_navigation_numtiles:3,\t\t\t\t\t//number of tiles to scroll when user clicks on next/prev button\n\t\t\tcarousel_scroll_duration:500,\t\t\t\t\t//duration of scrolling to tile\n\t\t\tcarousel_scroll_easing:\"easeOutCubic\",\t\t\t//easing of scrolling to tile animation\n\t\t\t\n\t\t\tcarousel_autoplay: true,\t\t\t\t\t\t//true,false - autoplay of the carousel on start\n\t\t\tcarousel_autoplay_timeout: 3000,\t\t\t\t//autoplay timeout\n\t\t\tcarousel_autoplay_direction: \"right\",\t\t\t//left,right - autoplay direction\n\t\t\tcarousel_autoplay_pause_onhover: true,\t\t\t//pause the autoplay on mouse over\n\t\t\tcarousel_vertical_scroll_ondrag: false\t\t\t//vertical screen scroll on carousel drag\n\t};\n\t\n\tthis.events = {\n\t\t\tSTART_PLAY: \"carousel_start_play\",\n\t\t\tPAUSE_PLAY: \"carousel_pause_play\",\n\t\t\tSTOP_PLAY: \"carousel_stop_play\"\n\t};\n\t\n\tvar g_temp = {\n\t\t\teventSizeChange: \"thumb_size_change\",\n\t\t\tisFirstTimeRun:true, //if run once\n\t\t\tcarouselMaxWidth: null,\n\t\t\ttileWidth:0,\n\t\t\tinitTileWidth:0,\n\t\t\tinitTileHeight:0,\n\t\t\tsideSpace:1500,\t\t\t\t//the space that must be filled with items\n\t\t\tspaceActionSize:500,\n\t\t\tnumCurrent:0,\n\t\t\ttouchActive: false,\n\t\t\tstartInnerPos: 0,\n\t\t\tlastTime:0,\n\t\t\tstartTime:0,\n\t\t\tstartMousePos:0,\n\t\t\tlastMousePos:0,\n\t\t\tscrollShortDuration: 200,\n\t\t\tscrollShortEasing: \"easeOutQuad\",\n\t\t\thandle:null,\n\t\t\tisPlayMode: false,\n\t\t\tisPaused: false,\n\t\t\tstoredEventID: \"carousel\"\n\t};\n\n\t\n\tfunction __________GENERAL_________(){};\n\t\n\t/**\n\t * init the gallery\n\t */\n\tfunction init(gallery, customOptions){\n\t\t\n\t\tg_objects = gallery.getObjects();\n\t\tg_gallery = gallery;\n\t\tg_objGallery = jQuery(gallery);\n\t\tg_objWrapper = g_objects.g_objWrapper;\n\t\tg_arrItems = g_objects.g_arrItems;\n\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\tg_objTileDesign.setFixedMode();\t\t\n\t\tg_objTileDesign.setApproveClickFunction(isApproveTileClick);\n\t\tg_objTileDesign.init(gallery, g_options);\n\t\t\n\t\tg_thumbs = g_objTileDesign.getObjThumbs();\n\t\tg_options = g_objTileDesign.getOptions();\n\t\t\n\t\tg_temp.initTileWidth = g_options.tile_width;\n\t\tg_temp.initTileHeight = g_options.tile_height;\n\t\t\n\t\tg_temp.tileWidth = g_options.tile_width;\n\t}\n\t\n\t\n\t/**\n\t * set the grid panel html\n\t */\n\tfunction setHtml(objParent){\n\t\t\n\t\tif(!objParent)\n\t\t\tvar objParent = g_objWrapper;\n\t\t\n\t\tvar html = \"\";\n\t\tg_objWrapper.append(html);\n\t\t\n\t\tg_objCarouselWrapper = g_objWrapper.children(\".ug-carousel-wrapper\");\n\t\tg_objInner = g_objCarouselWrapper.children(\".ug-carousel-inner\");\n\t\t\n\t\tg_objTileDesign.setHtml(g_objInner);\n\t\t\n\t\tg_thumbs.getThumbs().fadeTo(0,1);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * resize tiles to new width / height\n\t */\n\tfunction resizeTiles(newTileWidth, newTileHeight){\n\t\t\n\t\tif(!newTileHeight){\n\t\t\t\n\t\t\tvar newTileHeight = g_temp.initTileHeight / g_temp.initTileWidth * newTileWidth;\n\t\t\t\n\t\t}\n\t\t\n\t\tg_temp.tileWidth = newTileWidth;\n\t\t\n\t\t//update all options\n\t\tvar optUpdate = {\n\t\t\t\ttile_width: newTileWidth, \n\t\t\t\ttile_height: newTileHeight\n\t\t};\n\t\t\n\t\tg_objTileDesign.setOptions(optUpdate);\n\t\t\n\t\tg_options.tile_width = newTileWidth;\n\t\tg_options.tile_height = newTileHeight;\n\t\t\n\t\t//resize all tiles\n\t\tg_objTileDesign.resizeAllTiles(newTileWidth);\n\t\t\n\t\t//reposition tiles\n\t\tpositionTiles(true);\t\t//must to position tiles right after size change, for inner size change\n\t}\n\t\n\t/**\n\t * run the gallery after init and set html\n\t */\n\tfunction run(){\n\t\t\n\t\t//validation\n\t\tif(g_temp.carouselMaxWidth === null){\n\t\t\tthrow new Error(\"The carousel width not set\");\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\t//if the size changed, change it anyway\n\t\tif(g_temp.tileWidth < g_temp.initTileWidth){\n\t\t\t\t\t\t\n\t\t\tvar newTileWidth = g_temp.carouselMaxWidth - g_options.carousel_padding * 2;\n\t\t\tif(newTileWidth > g_temp.initTileWidth)\n\t\t\t\tnewTileWidth = g_temp.initTileWidth;\n\t\t\t\n\t\t\tresizeTiles(newTileWidth);\n\t\t\t\n\t\t\tvar numTiles = g_functions.getNumItemsInSpace(g_temp.carouselMaxWidth, newTileWidth, g_options.carousel_space_between_tiles);\n\t\t\t\n\t\t}else{\n\t\t\t\n\t\t\t//check if need to lower tiles size\n\t\t\tvar numTiles = g_functions.getNumItemsInSpace(g_temp.carouselMaxWidth, g_temp.tileWidth, g_options.carousel_space_between_tiles);\n\t\t\t\n\t\t\t//if no tiles fit, resize the tiles\n\t\t\tif(numTiles <= 0){\n\t\t\t\tnumTiles = 1;\n\t\t\t\t\n\t\t\t\tvar newTileWidth = g_temp.carouselMaxWidth - g_options.carousel_padding * 2;\n\t\t\t\t\n\t\t\t\tresizeTiles(newTileWidth);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\t\t\n\t\t//set wrapper width\n\t\tvar realWidth = g_functions.getSpaceByNumItems(numTiles, g_temp.tileWidth, g_options.carousel_space_between_tiles);\n\t\trealWidth += g_options.carousel_padding * 2;\n\t\t\n\t\tg_objCarouselWrapper.width(realWidth);\n\t\t\n\t\tif(g_temp.isFirstTimeRun == true){\n\t\t\t\n\t\t\tinitEvents();\n\t\t\t\n\t\t\tg_objTileDesign.run();\n\t\t\t\n\t\t\t//set data indexes to tiles\n\t\t\tjQuery.each(g_arrItems, function(index, item){\n\t\t\t\titem.objThumbWrapper.data(\"index\", index);\n\n\t\t\t\tg_objWrapper.trigger(g_temp.eventSizeChange, [item.objThumbWrapper,true]);\n\t\t\t\titem.objTileOriginal = item.objThumbWrapper.clone(true, true);\n\t\t\t});\n\t\t\t\t\t\t\n\t\t\tpositionTiles(true);\t\t//set heights at first time\n\t\t\t\n\t\t\tif(g_options.carousel_autoplay == true)\n\t\t\t\tt.startAutoplay();\n\t\t}else{\n\t\t\t\n\t\t\tif(g_options.carousel_autoplay == true)\n\t\t\t\tt.pauseAutoplay();\n\t\t\t\n\t\t\tscrollToTile(0, false);\n\t\t\t\n\t\t\tif(g_options.carousel_autoplay == true)\n\t\t\t\tt.startAutoplay();\n\t\t}\n\t\t\n\t\tpositionElements();\n\t\t\n\t\tg_temp.isFirstTimeRun = false;\n\t}\n\t\n\t\n\t\n\tfunction __________GETTERS_______(){};\n\t\n\t/**\n\t * get inner position\n\t */\n\tfunction getInnerPos(){\n\t\treturn g_functions.getElementSize(g_objInner).left;\n\t}\n\t\n\t/**\n\t * get mouse position\n\t */\n\tfunction getMousePos(event){\n\t\treturn g_functions.getMousePosition(event).pageX;\n\t}\n\t\n\t\n\t/**\n\t * get all tiles\n\t */\n\tfunction getTiles(){\n\t\t\n\t\tvar objTiles = g_objInner.children(\".ug-thumb-wrapper\");\n\t\t\n\t\treturn(objTiles);\n\t}\n\t\n\t\n\t/**\n\t * get num tiles in some space\n\t */\n\tfunction getNumTilesInSpace(space){\n\t\t\n\t\tvar numItems = g_functions.getNumItemsInSpace(space, g_temp.tileWidth, g_options.carousel_space_between_tiles)\n\t\t\t\t\n\t\treturn(numItems);\n\t}\n\t\n\t\n\t/**\n\t * get num tiles\n\t */\n\tfunction getNumTiles(){\n\t\treturn getTiles().length;\n\t}\n\t\n\t\n\t/**\n\t * get tile\n\t */\n\tfunction getTile(numTile){\n\t\tvalidateTileNum(numTile);\n\t\tvar objTiles = getTiles();\n\t\tvar objTile = jQuery(objTiles[numTile]);\n\t\t\n\t\treturn(objTile);\n\t}\n\t\n\t\n\t/**\n\t * get first tile in the inner object\n\t */\n\tfunction getFirstTile(){\n\t\t\t\t\n\t\treturn g_objInner.children(\".ug-thumb-wrapper\").first();\n\t}\n\t\n\t/**\n\t * get last tile in the inner object\n\t */\n\tfunction getLastTile(){\n\t\t\n\t\treturn g_objInner.children(\".ug-thumb-wrapper\").last();\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * get clone of the time next or prev the given\n\t */\n\tfunction getTileClones(objTile, numClones, dir){\n\t\t\n\t\tvar index = objTile.data(\"index\");\n\t\tif(index == undefined){\n\t\t\tthrow new Error(\"every tile should have index!\");\t\t\t\n\t\t}\n\t\t\n\t\tvar arrClonedItems = [];\n\t\t\n\t\tfor(var i=0;i (getTiles().length-1))\n\t\t\tthrow new Error(\"Wrogn tile number: \" + numTile);\n\t}\n\t\n\t\n\t/**\n\t * add tile to left\n\t */\n\tfunction addTiles(numTiles, dir){\n\t\t\n\t\tif(dir == \"left\")\n\t\t\tvar anchorTile = getFirstTile();\n\t\telse\n\t\t\tvar anchorTile = getLastTile();\n\t\t\n\t\tvar clonesType = (dir == \"left\")?\"prev\":\"next\";\n\t\t\n\t\tvar arrNewTiles = getTileClones(anchorTile, numTiles, clonesType);\n\t\t\t\t\n\t\tjQuery.each(arrNewTiles, function(index, objTile){\t\t\n\t\t\t\n\t\t\tif(dir == \"left\")\n\t\t\t\tg_objInner.prepend(objTile);\n\t\t\telse\n\t\t\t\tg_objInner.append(objTile);\n\t\t\t\n\t\t\tg_objWrapper.trigger(g_temp.eventSizeChange, objTile);\n\t\t\tg_objTileDesign.loadTileImage(objTile);\n\t\t\t\n\t\t});\n\t\t\n\t\t\n\t}\n\t\n\t/**\n\t * remove some tiles\n\t */\n\tfunction removeTiles(numTilesToRemove, direction){\n\t\t\n\t\tvalidateTileNum(numTiles);\n\t\t\n\t\tvar arrTiles = getTiles();\n\t\tvar numTiles = arrTiles.length;\n\t\t\n\t\tfor(var i=0; i g_temp.spaceActionSize){\n\t\t\tnumItemsLeft = getNumTilesInSpace(spaceLeft);\t\t\n\t\t\taddTiles(numItemsLeft, \"left\");\n\t\t\t\n\t\t\tg_temp.numCurrent += numItemsLeft;\n\t\t\t\n\t\t}else if(spaceLeft < -g_temp.spaceActionSize){\n\t\t\tvar numItemsRemoveLeft = getNumTilesInSpace(Math.abs(spaceLeft));\n\t\t\tremoveTiles(numItemsRemoveLeft, \"left\");\n\t\t\tg_temp.numCurrent -= numItemsRemoveLeft;\n\t\t}\n\t\t\n\t\t//add tiles to right\n\t\tif(spaceRight > g_temp.spaceActionSize){\n\t\t\tnumItemsRight = getNumTilesInSpace(spaceRight);\n\t\t\taddTiles(numItemsRight, \"right\");\t\t\t\n\t\t}else if(spaceRight < -g_temp.spaceActionSize){\n\t\t\tnumItemsRemoveRight = getNumTilesInSpace(Math.abs(spaceRight));\n\t\t\tremoveTiles(numItemsRemoveRight, \"right\");\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t//small validation\n\t\tif(numItemsRemoveRight > numTiles){\n\t\t\t\n\t\t\tthrow new Error(\"Can't remove more then num tiles\");\n\t\t}\n\t\t\t\n\t\t//trace(numItemsRemoveRight);\n\t\t//trace(\"numItems: \" + getNumTiles());\n\t\t\n\t\t//scroll to tile and position inner object\n\t\tvar isPositioned = false;\n\t\tif(numItemsLeft || numItemsRight || numItemsRemoveLeft || numItemsRemoveRight){\n\t\t\t\n\t\t\t/*\n\t\t\tdebugLine({\n\t\t\t\tnumItemsLeft:numItemsLeft,\n\t\t\t\tnumItemsRight:numItemsRight,\n\t\t\t\tnumItemsRemoveLeft:numItemsRemoveLeft,\n\t\t\t\tnumItemsRemoveRight: numItemsRemoveRight\n\t\t\t});\n\t\t\t*/\n\t\t\t//trace(\"do something\");\n\t\t\t\n\t\t\tpositionTiles();\t\t\t\n\t\t\tisPositioned = true\n\t\t}\n\t\t\n\t\treturn(isPositioned);\n\t}\n\t\n\t\n\t/**\n\t * position tiles\n\t */\n\tfunction positionElements(isFirstTime){\n\t\t\t\t\n\t\t//position inner strip\n\t\tg_functions.placeElement(g_objInner, 0, g_options.carousel_padding);\n\t\t\n\t\t//position sides\n\t\tfillSidesWithTiles();\n\t\t\n\t}\n\t\n\t\n\t\n\tfunction __________AUTOPLAY_______(){};\n\n\t/**\n\t * start autoplay\n\t */\n\tthis.startAutoplay = function(){\n\t\t\n\t\tg_temp.isPlayMode = true;\n\t\tg_temp.isPaused = false;\n\t\t\n\t\tg_objThis.trigger(t.events.START_PLAY);\n\t\t\n\t\tif(g_temp.handle)\n\t\t\tclearInterval(g_temp.handle);\n\t\t\n\t\tg_temp.handle = setInterval(autoplayStep, g_options.carousel_autoplay_timeout);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * unpause autoplay after pause\n\t */\n\tthis.unpauseAutoplay = function(){\n\t\t\n\t\tif(g_temp.isPlayMode == false)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_temp.isPaused == false)\n\t\t\treturn(true);\n\t\t\n\t\tt.startAutoplay();\n\t}\n\t\n\t\n\t/**\n\t * pause the autoplay\n\t */\n\tthis.pauseAutoplay = function(){\n\n\t\tif(g_temp.isPlayMode == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.isPaused = true;\n\t\t\n\t\tif(g_temp.handle)\n\t\t\tclearInterval(g_temp.handle);\n\t\t\n\t\tg_objThis.trigger(t.events.PAUSE_PLAY);\n\t\t\n\t}\n\n\t\n\t/**\n\t * stop autoplay\n\t */\n\tthis.stopAutoplay = function(){\n\t\t\n\t\tif(g_temp.isPlayMode == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.isPaused = false;\n\t\tg_temp.isPlayMode = false;\n\t\t\n\t\tif(g_temp.handle)\n\t\t\tclearInterval(g_temp.handle);\n\t\t\n\t\tg_objThis.trigger(t.events.STOP_PLAY);\n\t}\n\t\n\t\n\t/**\n\t * autoplay step, advance the carousel by 1\n\t */\n\tfunction autoplayStep(){\n\t\t\n\t\tif(g_options.carousel_autoplay_direction == \"left\"){\n\t\t\tt.scrollRight(1);\n\t\t}else{\n\t\t\tt.scrollLeft(1);\n\t\t}\n\t\t\n\t}\n\t\n\tfunction __________EVENTS_______(){};\n\t\t\n\t\n\t/**\n\t * on touch start\n\t */\n\tfunction onTouchStart(event){\n\t\t\n\t\tif(g_temp.touchActive == true)\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.touchActive = true;\n\t\t\n\t\tt.pauseAutoplay();\n\t\t\n\t\tg_temp.startTime = jQuery.now();\t\n\t\tg_temp.startMousePos = getMousePos(event);\n\t\tg_temp.startInnerPos = getInnerPos();\n\t\tg_temp.lastTime = g_temp.startTime;\n\t\tg_temp.lastMousePos = g_temp.startMousePos;\n\t\t\n\t\tg_functions.storeEventData(event, g_temp.storedEventID);\n\t}\n\n\t\n\t/**\n\t * on touch move\n\t */\n\tfunction onTouchMove(event){\n\t\t\t\t\n\t\tif(g_temp.touchActive == false)\n\t\t\treturn(true);\n\t\t\n\t\tg_functions.updateStoredEventData(event, g_temp.storedEventID);\n\t\t\n\t\tevent.preventDefault();\n\t\t\n\t\tvar scrollDir = null;\n\t\t\n\t\tif(g_options.carousel_vertical_scroll_ondrag == true)\n\t\t\tscrollDir = g_functions.handleScrollTop(g_temp.storedEventID);\n\t\t\n\t\tif(scrollDir === \"vert\")\n\t\t\treturn(true);\n\t\t\n\t\tg_temp.lastMousePos = getMousePos(event);\n\t\t\n\t\tvar diff = g_temp.lastMousePos - g_temp.startMousePos;\n\t\tvar innerPos = g_temp.startInnerPos + diff;\n\t\tvar direction = (diff > 0) ? \"prev\":\"next\";\n\t\tvar innerSize = g_functions.getElementSize(g_objInner).width;\n\t\t\n\t\t//slow down when off limits\n\t\tif(innerPos > 0 && direction == \"prev\"){\n\t\t\tinnerPos = innerPos / 3;\n\t\t}\n\t\t\n\t\tif(innerPos < -innerSize && direction == \"next\"){\n\t\t\tinnerPos = g_temp.startInnerPos + diff / 3;\n\t\t}\n\t\t\n\t\tsetInnerPos(innerPos);\n\t}\n\t\n\t\n\t/**\n\t * on touch end\n\t * change panes or return to current pane\n\t */\n\tfunction onTouchEnd(event){\n\t\t\n\t\tif(g_temp.touchActive == false)\n\t\t\treturn(true);\n\t\t\n\t\t//event.preventDefault();\n\t\tg_temp.touchActive = false;\n\t\t\n\t\tscrollToNeerestTile();\n\t\t\n\t\tt.unpauseAutoplay();\n\t}\n\t\n\t/**\n\t * pause the playing\n\t */\n\tfunction onMouseEnter(event){\n\t\t\n\t\tif(g_options.carousel_autoplay_pause_onhover == false)\n\t\t\treturn(true);\n\t\t\n\t\tif(g_temp.isPlayMode == true && g_temp.isPaused == false)\n\t\t\tt.pauseAutoplay();\n\t}\n\t\n\t/**\n\t * start the playing again\n\t */\n\tfunction onMouseLeave(event){\n\t\t\n\t\tif(g_options.carousel_autoplay_pause_onhover == false)\n\t\t\treturn(true);\n\t\t\n\t\tt.unpauseAutoplay();\n\t}\n\t\n\t\n\t/**\n\t * init panel events\n\t */\n\tfunction initEvents(){\n\t\t\t\t\n\t\tg_objTileDesign.initEvents();\n\t\t\n\t\t//touch drag events\n\t\t//slider mouse down - drag start\n\t\tg_objCarouselWrapper.bind(\"mousedown touchstart\",onTouchStart);\n\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").bind(\"mousemove touchmove\",onTouchMove);\n\t\t\n\t\t//on body mouse up - drag end\n\t\tjQuery(window).add(\"body\").bind(\"mouseup touchend\", onTouchEnd);\n\t\t\n\t\tg_objCarouselWrapper.hover(onMouseEnter, onMouseLeave);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the carousel events\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_temp.handle)\n\t\t\tclearInterval(g_temp.handle);\n\t\t\n\t\tg_objThis.off(t.events.START_PLAY);\t\t\n\t\tg_objThis.off(t.events.STOP_PLAY);\t\t\n\t\t\n\t\t//touch drag events\n\t\t//slider mouse down - drag start\n\t\tg_objCarouselWrapper.unbind(\"mousedown\");\n\t\tg_objCarouselWrapper.unbind(\"touchstart\");\n\t\t\n\t\t//on body move\n\t\tjQuery(\"body\").unbind(\"mousemove\");\n\t\tjQuery(\"body\").unbind(\"touchmove\");\n\t\t\n\t\t//on body mouse up - drag end\n\t\tjQuery(window).add(\"body\").unbind(\"mouseup\").unbind(\"touchend\");\n\t\t\n\t\tg_objCarouselWrapper.off(\"mouseenter\").off(\"mouseleave\");\n\t\t\n\t\tg_objTileDesign.destroy();\n\t}\n\n\t\n\t/**\n\t * init function for avia controls\n\t */\n\tthis.init = function(gallery, customOptions, width){\n\t\tif(width)\n\t\t\tthis.setMaxWidth(width);\n\t\t\n\t\tinit(gallery, customOptions);\n\t}\n\n\t\n\t/**\n\t * set the width\n\t */\n\tthis.setMaxWidth = function(width){\n\t\t\n\t\tg_temp.carouselMaxWidth = width;\n\t}\n\t\n\t\n\t/**\n\t * set html\n\t */\n\tthis.setHtml = function(objParent){\n\t\tsetHtml(objParent);\n\t}\n\t\n\t/**\n\t * get the carousel element\n\t */\n\tthis.getElement = function(){\n\t\treturn g_objCarouselWrapper;\n\t}\n\t\n\t/**\n\t * get tile design object\n\t */\n\tthis.getObjTileDesign = function(){\n\t\treturn(g_objTileDesign);\n\t}\n\t\n\t\n\t/**\n\t * get estimated height\n\t */\n\tthis.getEstimatedHeight = function(){\n\t\tvar height = g_options.tile_height + g_options.carousel_padding * 2;\n\t\treturn(height);\n\t}\n\t\n\t\n\t/**\n\t * set html and properties\n\t */\t\n\tthis.run = function(){\n\t\trun();\n\t}\n\t\n\t\n\t/**\n\t * scroll to right\n\t */\n\tthis.scrollRight = function(tilesToScroll){\n\t\t\n\t\tif(!tilesToScroll || typeof tilesToScroll == \"object\")\n\t\t\tvar tilesToScroll = g_options.carousel_navigation_numtiles;\n\n\t\tvar numTilesInCarousel = getNumTilesInCarousel();\n\t\tif(tilesToScroll > numTilesInCarousel)\n\t\t\ttilesToScroll = numTilesInCarousel;\n\t\t\n\t\tvar numPrev = g_temp.numCurrent - tilesToScroll;\n\t\tif(numPrev <=0)\n\t\t\tnumPrev = 0;\n\t\t\n\t\tscrollToTile(numPrev);\n\t}\n\t\n\t\n\t/**\n\t * scroll to left\n\t */\n\tthis.scrollLeft = function(tilesToScroll){\n\t\t\t\t\n\t\tif(!tilesToScroll || typeof tilesToScroll == \"object\")\n\t\t\tvar tilesToScroll = g_options.carousel_navigation_numtiles;\n\t\t\n\t\tvar numTilesInCarousel = getNumTilesInCarousel();\n\t\tif(tilesToScroll > numTilesInCarousel)\n\t\t\ttilesToScroll = numTilesInCarousel;\n\t\t\n\t\tvar numTiles = getNumTiles();\n\t\t\n\t\tvar numNext = g_temp.numCurrent + tilesToScroll;\n\t\tif(numNext >= numTiles)\n\t\t\tnumNext = numTiles-1;\n\t\n\t\tscrollToTile(numNext);\n\t}\n\t\n\t/**\n\t * set scroll left button\n\t */\n\tthis.setScrollLeftButton = function(objButton){\n\t\tg_functions.setButtonMobileReady(objButton);\n\t\tg_functions.setButtonOnClick(objButton, t.scrollLeft);\n\t}\n\t\n\t\n\t/**\n\t * set scroll right button\n\t */\n\tthis.setScrollRightButton = function(objButton){\n\t\tg_functions.setButtonMobileReady(objButton);\n\t\tg_functions.setButtonOnClick(objButton, t.scrollRight);\n\t}\n\t\n\t\n\t/**\n\t * set scroll right button\n\t */\n\tthis.setPlayPauseButton = function(objButton){\n\t\tg_functions.setButtonMobileReady(objButton);\n\t\t\n\t\tif(g_temp.isPlayMode == true && g_temp.isPaused == false){\n\t\t\tobjButton.addClass(\"ug-pause-icon\");\t\t\t\n\t\t}\n\t\t\n\t\tg_objThis.on(t.events.START_PLAY, function(){\n\t\t\tobjButton.addClass(\"ug-pause-icon\");\n\t\t});\n\t\t\n\t\tg_objThis.on(t.events.STOP_PLAY, function(){\n\t\t\tobjButton.removeClass(\"ug-pause-icon\");\n\t\t});\n\t\t\n\t\tg_functions.setButtonOnClick(objButton, function(){\n\t\t\t\t\n\t\t\t\tif(g_temp.isPlayMode == false || g_temp.isPaused == true)\t\t\t\t\t\n\t\t\t\t\tt.startAutoplay();\n\t\t\t\telse\n\t\t\t\t\tt.stopAutoplay();\n\t\t\t\t\n\t\t});\n\t}\n\t\n\t\n\t/**\n\t * return if passed some significant movement\n\t */\n\tfunction isApproveTileClick(){\n\t\t\n\t\tvar passedTime = g_temp.lastTime - g_temp.startTime;\t\t\n\t\tvar passedDistanceAbs = Math.abs(g_temp.lastMousePos - g_temp.startMousePos);\n\t\t\n\t\tif(passedTime > 300)\n\t\t\treturn(false);\n\t\t\n\t\tif(passedDistanceAbs > 30)\n\t\t\treturn(false);\n\t\t\n\t\treturn(true);\n\t}\n\t\n\t\n}\n\n\n\n/**\n tabs panel class addon to unite gallery\n */\nfunction UGTabs(){\n\t\n\tvar t = this, g_objThis = jQuery(this),g_objGallery;\n\tvar g_gallery = new UniteGalleryMain(), g_functions = new UGFunctions();\n\tvar g_objTabs, g_objSelect;\n\t\n\n\tvar g_options = {\n\t\ttabs_type:\"tabs\",\t\t\t\t\t//tabs type: tabs, select\n\t\ttabs_container: \"#ug_tabs\",\t\t\t//tabs container\n\t\ttabs_class_selected: \"ug-tab-selected\"\n\t};\n\t\n\tthis.events = {\n\t\t\n\t};\n\t\n\t\n\t/**\n\t * init tabs function\n\t */\n\tfunction initTabs(gallery, customOptions){\n\t\tg_gallery = gallery;\n\t\t\n\t\tg_objGallery = jQuery(g_gallery);\n\t\t\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\tif(g_options.tabs_type == \"select\")\n\t\t\tg_objSelect = jQuery(g_options.tabs_container);\n\t\telse\n\t\t\tg_objTabs = jQuery(g_options.tabs_container + \" .ug-tab\");\n\t\t\n\t}\n\t\n\t\n\t\n\t/**\n\t * run the tabs\n\t */\n\tfunction runTabs(){\n\t\t\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n\t/**\n\t * request new gallery items\n\t */\n\tfunction requestGalleryItems(catid){\n\t\t\n\t\tg_gallery.requestNewItems(catid);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on tab click\n\t */\n\tfunction onTabClick(){\n\t\t\n\t\tvar classSelected = g_options.tabs_class_selected;\n\t\t\n\t\tvar objTab = jQuery(this);\n\t\tif(objTab.hasClass(classSelected))\n\t\t\treturn(true);\n\t\t\n\t\tg_objTabs.not(objTab).removeClass(classSelected);\n\t\tobjTab.addClass(classSelected);\n\t\t\n\t\tvar catID = objTab.data(\"catid\");\n\t\tif(!catID)\n\t\t\treturn(true);\n\t\t\n\t\trequestGalleryItems(catID);\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * on select change\n\t */\n\tfunction onSelectChange(){\n\t\tvar objSelect = jQuery(this);\n\t\tvar catID = objSelect.val();\n\t\t\n\t\tif(!catID)\n\t\t\treturn(true);\n\t\t\n\t\trequestGalleryItems(catID);\n\t}\n\t\n\t\n\t/**\n\t * init tabs events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tif(g_options.tabs_type == \"select\")\n\t\t\tg_objSelect.change(onSelectChange);\n\t\telse\n\t\t\tg_objTabs.click(onTabClick);\n\t}\n\t\n\t/**\n\t * destroy\n\t */\n\tthis.destroy = function(){\n\t\t\n\t\tif(g_objSelect)\n\t\t\tg_objSelect.off(\"change\");\n\t\t\n\t\tif(g_objTabs)\n\t\t\tg_objTabs.off(\"click\");\n\t}\n\t\n\t\n\t/**\n\t * outer init function, move to inner init\n\t */\n\tthis.init = function(gallery, customOptions){\n\t\tinitTabs(gallery, customOptions);\n\t}\n\t\n\t\n\t/**\n\t * run the tabs\n\t */\n\tthis.run = function(){\n\t\t\n\t\trunTabs();\n\t}\n\t\n\t\n}\n\n\n/**\n * API Class\n * addon to Unite gallery\n */\nfunction UG_API(gallery){\n\t\n\tvar t = this, g_objThis = jQuery(t);\n\tvar g_gallery = new UniteGalleryMain(), g_objGallery;\n\tvar g_arrEvents = [];\n\t\n\tg_gallery = gallery;\n\tg_objGallery = jQuery(gallery);\n\t\n\t\n\tthis.events = {\n\t\t\tAPI_INIT_FUNCTIONS:\"api_init\",\n\t\t\tAPI_ON_EVENT:\"api_on_event\"\n\t}\n\t\n\t\n\t/**\n\t * get item data for output\n\t */\n\tfunction convertItemDataForOutput(item){\n\t\t\n\t\tvar output = {\n\t\t\t\tindex: item.index,\n\t\t\t\ttitle: item.title,\n\t\t\t\tdescription: item.description,\n\t\t\t\turlImage: item.urlImage,\n\t\t\t\turlThumb: item.urlThumb\n\t\t\t};\n\t\t\t\n\t\t\t//add aditional variables to the output\n\t\t\tvar addData = item.objThumbImage.data();\n\t\t\t\n\t\t\tfor(var key in addData){\n\t\t\t\tswitch(key){\n\t\t\t\t\tcase \"image\":\n\t\t\t\t\tcase \"description\":\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toutput[key] = addData[key];\n\t\t\t}\n\t\t\t\n\t\t\treturn(output);\n\t}\n\t\n\t\n\t/**\n\t * event handling function\n\t */\n\tthis.on = function(event, handlerFunction, notCache){\n\t\t\n\t\t//remember cache\n\t\tif(notCache !== true){\n\t\t\tg_arrEvents.push({event:event,func:handlerFunction});\n\t\t}\n\t\t\n\t\tswitch(event){\n\t\t\tcase \"item_change\":\n\t\t\t\t\n\t\t\t\tg_objGallery.on(g_gallery.events.ITEM_CHANGE, function(){\n\t\t\t\t\t\tvar currentItem = g_gallery.getSelectedItem();\n\t\t\t\t\t\tvar output = convertItemDataForOutput(currentItem);\n\t\t\t\t\t\thandlerFunction(output.index, output);\n\t\t\t\t});\n\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"resize\":\n\t\t\t\tg_objGallery.on(g_gallery.events.SIZE_CHANGE, handlerFunction);\n\t\t\tbreak;\n\t\t\tcase \"enter_fullscreen\":\n\t\t\t\tg_objGallery.on(g_gallery.events.ENTER_FULLSCREEN, handlerFunction);\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"exit_fullscreen\":\n\t\t\t\tg_objGallery.on(g_gallery.events.EXIT_FULLSCREEN, handlerFunction);\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"play\":\n\t\t\t\tg_objGallery.on(g_gallery.events.START_PLAY, handlerFunction);\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"stop\":\n\t\t\t\tg_objGallery.on(g_gallery.events.STOP_PLAY, handlerFunction);\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"pause\":\n\t\t\t\tg_objGallery.on(g_gallery.events.PAUSE_PLAYING, handlerFunction);\t\t\t\t\n\t\t\tbreak;\n\t\t\tcase \"continue\":\n\t\t\t\tg_objGallery.on(g_gallery.events.CONTINUE_PLAYING, handlerFunction);\n\t\t\tbreak;\n\t\t\tcase \"open_lightbox\":\n\t\t\t\tg_objGallery.on(g_gallery.events.OPEN_LIGHTBOX, handlerFunction);\n\t\t\tbreak;\n\t\t\tcase \"close_lightbox\":\n\t\t\t\tg_objGallery.on(g_gallery.events.CLOSE_LIGHTBOX, handlerFunction);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif(console)\n\t\t\t\t\tconsole.log(\"wrong api event: \" + event);\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tg_objGallery.trigger(t.events.API_ON_EVENT, [event, handlerFunction]);\n\t}\n\t\n\t\n\t/**\n\t * start playing \n\t */\n\tthis.play = function(){\t\t\n\t\tg_gallery.startPlayMode();\t\t\n\t}\n\t\n\t\n\t/**\n\t * stop playing\n\t */\n\tthis.stop = function(){\n\t\tg_gallery.stopPlayMode();\n\t}\n\t\n\t\n\t/**\n\t * toggle playing\n\t */\n\tthis.togglePlay = function(){\n\t\tg_gallery.togglePlayMode();\n\t}\n\t\n\t\n\t/**\n\t * enter fullscreen\n\t */\n\tthis.enterFullscreen = function(){\n\t\tg_gallery.toFullScreen();\n\t}\n\t\n\t/**\n\t * exit fullscreen\n\t */\n\tthis.exitFullscreen = function(){\n\t\tg_gallery.exitFullScreen();\n\t}\n\t\n\t/**\n\t * toggle fullscreen\n\t */\n\tthis.toggleFullscreen = function(){\n\t\t\n\t\tg_gallery.toggleFullscreen();\t\t\n\t}\n\t\n\t\n\t/**\n\t * reset zoom\n\t */\n\tthis.resetZoom = function(){\n\t\tvar objSlider = g_gallery.getObjSlider();\n\t\tif(!objSlider)\n\t\t\treturn(false);\n\t\t\n\t\tobjSlider.zoomBack();\n\t}\n\t\n\t\n\t/**\n\t * zoom in\n\t */\n\tthis.zoomIn = function(){\n\t\t\n\t\tvar objSlider = g_gallery.getObjSlider();\n\t\tif(!objSlider)\n\t\t\treturn(false);\n\t\t\n\t\tobjSlider.zoomIn();\t\t\n\t}\n\n\t/**\n\t * zoom in\n\t */\n\tthis.zoomOut = function(){\n\t\t\n\t\tvar objSlider = g_gallery.getObjSlider();\n\t\tif(!objSlider)\n\t\t\treturn(false);\n\t\t\n\t\tobjSlider.zoomOut();\t\t\n\t}\n\t\n\t/**\n\t * next item\n\t */\n\tthis.nextItem = function(){\n\t\tg_gallery.nextItem();\n\t}\n\t\n\t\n\t/**\n\t * prev item\n\t */\n\tthis.prevItem = function(){\n\t\tg_gallery.prevItem();\n\t}\n\t\n\t/**\n\t * go to some item by index (0-numItems)\n\t */\n\tthis.selectItem = function(numItem){\n\t\t\n\t\tg_gallery.selectItem(numItem);\n\t\n\t}\n\t\n\t\n\t/**\n\t * resize the gallery to some width (height).\n\t */\n\tthis.resize = function(width, height){\n\t\t\n\t\tif(height)\n\t\t\tg_gallery.resize(width, height);\n\t\telse\n\t\t\tg_gallery.resize(width);\n\t}\n\t\n\t\n\t/**\n\t * get some item by index\n\t */\n\tthis.getItem = function(numItem){\n\t\t\n\t\tvar data = g_gallery.getItem(numItem);\n\t\tvar output = convertItemDataForOutput(data);\n\t\t\n\t\treturn(output);\n\t}\n\t\n\t\n\t/**\n\t * get number of items in the gallery\n\t */\n\tthis.getNumItems = function(){\n\t\tvar numItems = g_gallery.getNumItems();\n\t\treturn(numItems);\n\t}\n\t\n\t/**\n\t * refresh gallery with another options\n\t */\n\tthis.reloadGallery = function(customOptions){\n\t\tif(!customOptions)\n\t\t\tvar customOptions = {};\n\t\t\n\t\tg_gallery.run(null, customOptions);\n\t\t\n\t\t//restore events:\n\t\tg_arrEvents.map(function(obj){\n\t\t\tt.on(obj.event,obj.func,true);\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * destroy the gallery\n\t */\n\tthis.destroy = function(){\n\t\tg_gallery.destroy();\n\t}\n\t\n\t//trigger api on init event\n\tg_objGallery.trigger(t.events.API_INIT_FUNCTIONS, t);\n\t\n}\n\n/**\n loadmore panel class addon to unite gallery\n */\nfunction UGLoadMore(){\n\t\n\tvar t = this, g_objThis = jQuery(this),g_objGallery;\n\tvar g_gallery = new UniteGalleryMain(), g_functions = new UGFunctions();\n\tvar g_objWrapper, g_objButton, g_objLoader, g_objError;\n\t\n\tvar g_temp = {\n\t\t\tisInited:false\n\t}\n\t\n\tvar g_options = {\n\t\tloadmore_container: \"ug_loadmore_wrapper\"\t\t\t//tabs container\n\t};\n\t\n\t\n\tthis.events = {\n\t\t\n\t};\n\t\n\t\n\t/**\n\t * init wrapper\n\t */\n\tfunction initObjects(){\n\t\t\n\t\tg_objWrapper = jQuery(\"#\"+g_options.loadmore_container);\n\t\tif(g_objWrapper.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tg_objButton = g_objWrapper.find(\".ug-loadmore-button\");\n\t\tif(g_objButton.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tg_objLoader = g_objWrapper.find(\".ug-loadmore-loader\");\n\t\tif(g_objLoader.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tg_objError = g_objWrapper.find(\".ug-loadmore-error\");\n\t\tif(g_objError.length == 0)\n\t\t\treturn(false);\n\t\t\n\t\tg_temp.isInited = true;\n\t}\n\t\n\t\n\t/**\n\t * show loadmore\n\t */\n\tfunction showLoadmore(){\n\t\t\n\t\tg_objWrapper.show();\n\t}\n\t\n\t\n\t/**\n\t * on loadore click event\n\t */\n\tfunction onLoadmoreClick(){\n\t\t\n\t\tg_objButton.hide();\n\t\tg_objLoader.show();\n\t\t\n\t\tvar data = {\n\t\t\t\tnumitems:g_gallery.getNumItems()\n\t\t};\n\t\t\n\t\tg_gallery.ajaxRequest(\"front_loadmore\", data, function(response){\n\t\t\t\n\t\t\tg_objLoader.hide();\n\t\t\t\n\t\t\tvar htmlItems = response.html_items;\n\t\t\tvar showLoadmore = response.show_loadmore;\n\t\t\t\n\t\t\tif(showLoadmore == true){\n\t\t\t\tg_objButton.blur().show();\n\t\t\t\tg_objLoader.hide();\n\t\t\t}else{\n\t\t\t\tg_objWrapper.hide();\n\t\t\t}\n\t\t\t\n\t\t\tg_gallery.addItems(htmlItems);\n\t\t\t\t\t\t\n\t\t},function(errorText){\n\t\t\terrorText = \"Ajax Error!\" + errorText;\n\t\t\t\n\t\t\tg_objLoader.hide();\n\t\t\tg_objError.show();\n\t\t\tg_objError.html(errorText);\n\t\t\t\n\t\t});\n\t\t\n\t}\n\t\n\t\n\t/**\n\t * init events\n\t */\n\tfunction initEvents(){\n\t\t\n\t\tg_gallery.onEvent(\"tiles_first_placed\", showLoadmore);\n\t\t\n\t\tg_objButton.click(onLoadmoreClick);\n\t}\n\t\n\t\n\t/**\n\t * destroy\n\t */\n\tthis.destroy = function(){\n\t\tif(g_temp.isInited == false)\n\t\t\treturn(false);\n\t}\n\t\n\t\n\t/**\n\t * init the loadmore button\n\t */\n\tthis.init = function(gallery, customOptions){\n\t\tg_gallery = gallery;\n\t\t\n\t\tg_objGallery = jQuery(g_gallery);\n\t\tg_options = jQuery.extend(g_options, customOptions);\n\t\t\n\t\tinitObjects();\n\t\t\n\t\tif(g_temp.isInited == false){\n\t\t\ttrace(\"load more not inited, something is wrong\");\n\t\t\treturn(false);\n\t\t}\n\t\t\n\t\tinitEvents();\n\t}\n\t\n\t\n}\n","/**\n * A helper script that mimics the Drupal Javascript API.\n *\n * This allows for scripts to be written like they would for Drupal (by\n * attaching behaviors) in the styleguide. As a result, scripts function\n * properly for the styleguide and may simply be symlinked to the /themes\n * directory in Drupal.\n *\n * from https://github.com/palantirnet/butler/blob/7c0cea5f04bf9ad372fbdffe64ccebc477b13dc4/STYLEGUIDE_TEMPLATE/source/code/libraries/drupal-attach-behaviors.js\n */\n\nwindow.Drupal = {behaviors: {}, locale: {}};\n\n(function ($) {\n Drupal.attachBehaviors = function (context, settings) {\n context = context || document;\n settings = settings || {};\n var behaviors = Drupal.behaviors;\n // Execute all of them.\n for (var i in behaviors) {\n if (behaviors.hasOwnProperty(i) && typeof behaviors[i].attach === 'function') {\n // Don't stop the execution of behaviors in case of an error.\n try {\n behaviors[i].attach(context, settings);\n }\n catch (e) {\n console.log(e);\n }\n }\n }\n };\n\n // Attach all behaviors.\n $('document').ready(function () { Drupal.attachBehaviors(document, {}); });\n})(jQuery);\n\n","/*! modernizr 3.6.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-cssanimations-cssgrid_cssgridlegacy-csstransforms3d-setclasses !*/\n!function(e,n,t){function r(e,n){return typeof e===n}function s(){var e,n,t,s,o,i,a;for(var l in S)if(S.hasOwnProperty(l)){if(e=[],n=S[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;tp;p++)if(m=e[p],y=E.style[m],i(m,\"-\")&&(m=l(m)),E.style[m]!==t){if(o||r(s,\"undefined\"))return u(),\"pfx\"==n?m:!0;try{E.style[m]=s}catch(h){}if(E.style[m]!=y)return u(),\"pfx\"==n?m:!0}return u(),!1}function v(e,n,t,s,o){var i=e.charAt(0).toUpperCase()+e.slice(1),a=(e+\" \"+T.join(i+\" \")+i).split(\" \");return r(n,\"string\")||r(n,\"undefined\")?y(a,n,s,o):(a=(e+\" \"+P.join(i+\" \")+i).split(\" \"),f(a,n,t))}function h(e,n,r){return v(e,t,t,n,r)}var C=[],S=[],w={_version:\"3.6.0\",_config:{classPrefix:\"\",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){S.push({name:e,fn:n,options:t})},addAsyncTest:function(e){S.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=w,Modernizr=new Modernizr;var _=n.documentElement,x=\"svg\"===_.nodeName.toLowerCase(),b=\"Moz O ms Webkit\",T=w._config.usePrefixes?b.split(\" \"):[];w._cssomPrefixes=T;var P=w._config.usePrefixes?b.toLowerCase().split(\" \"):[];w._domPrefixes=P;var z={elem:a(\"modernizr\")};Modernizr._q.push(function(){delete z.elem});var E={style:z.elem.style};Modernizr._q.unshift(function(){delete E.style}),w.testAllProps=v,w.testAllProps=h,Modernizr.addTest(\"cssgridlegacy\",h(\"grid-columns\",\"10px\",!0)),Modernizr.addTest(\"cssgrid\",h(\"grid-template-rows\",\"none\",!0)),Modernizr.addTest(\"cssanimations\",h(\"animationName\",\"a\",!0));var N=\"CSS\"in e&&\"supports\"in e.CSS,j=\"supportsCSS\"in e;Modernizr.addTest(\"supports\",N||j),Modernizr.addTest(\"csstransforms3d\",function(){return!!h(\"perspective\",\"1px\",!0)}),s(),o(C),delete w.addTest,delete w.addAsyncTest;for(var k=0;k\" + (this.escape_html(item.group_label)) + \"\" + item.html;\n } else {\n return item.html;\n }\n };\n\n AbstractChosen.prototype.mouse_enter = function() {\n return this.mouse_on_container = true;\n };\n\n AbstractChosen.prototype.mouse_leave = function() {\n return this.mouse_on_container = false;\n };\n\n AbstractChosen.prototype.input_focus = function(evt) {\n if (this.is_multiple) {\n if (!this.active_field) {\n return setTimeout(((function(_this) {\n return function() {\n return _this.container_mousedown();\n };\n })(this)), 50);\n }\n } else {\n if (!this.active_field) {\n return this.activate_field();\n }\n }\n };\n\n AbstractChosen.prototype.input_blur = function(evt) {\n if (!this.mouse_on_container) {\n this.active_field = false;\n return setTimeout(((function(_this) {\n return function() {\n return _this.blur_test();\n };\n })(this)), 100);\n }\n };\n\n AbstractChosen.prototype.label_click_handler = function(evt) {\n if (this.is_multiple) {\n return this.container_mousedown(evt);\n } else {\n return this.activate_field();\n }\n };\n\n AbstractChosen.prototype.results_option_build = function(options) {\n var content, data, data_content, i, len, ref, shown_results;\n content = '';\n shown_results = 0;\n ref = this.results_data;\n for (i = 0, len = ref.length; i < len; i++) {\n data = ref[i];\n data_content = '';\n if (data.group) {\n data_content = this.result_add_group(data);\n } else {\n data_content = this.result_add_option(data);\n }\n if (data_content !== '') {\n shown_results++;\n content += data_content;\n }\n if (options != null ? options.first : void 0) {\n if (data.selected && this.is_multiple) {\n this.choice_build(data);\n } else if (data.selected && !this.is_multiple) {\n this.single_set_selected_text(this.choice_label(data));\n }\n }\n if (shown_results >= this.max_shown_results) {\n break;\n }\n }\n return content;\n };\n\n AbstractChosen.prototype.result_add_option = function(option) {\n var classes, option_el;\n if (!option.search_match) {\n return '';\n }\n if (!this.include_option_in_results(option)) {\n return '';\n }\n classes = [];\n if (!option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"active-result\");\n }\n if (option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"disabled-result\");\n }\n if (option.selected) {\n classes.push(\"result-selected\");\n }\n if (option.group_array_index != null) {\n classes.push(\"group-option\");\n }\n if (option.classes !== \"\") {\n classes.push(option.classes);\n }\n option_el = document.createElement(\"li\");\n option_el.className = classes.join(\" \");\n if (option.style) {\n option_el.style.cssText = option.style;\n }\n option_el.setAttribute(\"data-option-array-index\", option.array_index);\n option_el.innerHTML = option.highlighted_html || option.html;\n if (option.title) {\n option_el.title = option.title;\n }\n return this.outerHTML(option_el);\n };\n\n AbstractChosen.prototype.result_add_group = function(group) {\n var classes, group_el;\n if (!(group.search_match || group.group_match)) {\n return '';\n }\n if (!(group.active_options > 0)) {\n return '';\n }\n classes = [];\n classes.push(\"group-result\");\n if (group.classes) {\n classes.push(group.classes);\n }\n group_el = document.createElement(\"li\");\n group_el.className = classes.join(\" \");\n group_el.innerHTML = group.highlighted_html || this.escape_html(group.label);\n if (group.title) {\n group_el.title = group.title;\n }\n return this.outerHTML(group_el);\n };\n\n AbstractChosen.prototype.results_update_field = function() {\n this.set_default_text();\n if (!this.is_multiple) {\n this.results_reset_cleanup();\n }\n this.result_clear_highlight();\n this.results_build();\n if (this.results_showing) {\n return this.winnow_results();\n }\n };\n\n AbstractChosen.prototype.reset_single_select_options = function() {\n var i, len, ref, result, results1;\n ref = this.results_data;\n results1 = [];\n for (i = 0, len = ref.length; i < len; i++) {\n result = ref[i];\n if (result.selected) {\n results1.push(result.selected = false);\n } else {\n results1.push(void 0);\n }\n }\n return results1;\n };\n\n AbstractChosen.prototype.results_toggle = function() {\n if (this.results_showing) {\n return this.results_hide();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.results_search = function(evt) {\n if (this.results_showing) {\n return this.winnow_results();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.winnow_results = function(options) {\n var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;\n this.no_results_clear();\n results = 0;\n query = this.get_search_text();\n escapedQuery = query.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n regex = this.get_search_regex(escapedQuery);\n ref = this.results_data;\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n option.search_match = false;\n results_group = null;\n search_match = null;\n option.highlighted_html = '';\n if (this.include_option_in_results(option)) {\n if (option.group) {\n option.group_match = false;\n option.active_options = 0;\n }\n if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {\n results_group = this.results_data[option.group_array_index];\n if (results_group.active_options === 0 && results_group.search_match) {\n results += 1;\n }\n results_group.active_options += 1;\n }\n text = option.group ? option.label : option.text;\n if (!(option.group && !this.group_search)) {\n search_match = this.search_string_match(text, regex);\n option.search_match = search_match != null;\n if (option.search_match && !option.group) {\n results += 1;\n }\n if (option.search_match) {\n if (query.length) {\n startpos = search_match.index;\n prefix = text.slice(0, startpos);\n fix = text.slice(startpos, startpos + query.length);\n suffix = text.slice(startpos + query.length);\n option.highlighted_html = (this.escape_html(prefix)) + \"\" + (this.escape_html(fix)) + \"\" + (this.escape_html(suffix));\n }\n if (results_group != null) {\n results_group.group_match = true;\n }\n } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {\n option.search_match = true;\n }\n }\n }\n }\n this.result_clear_highlight();\n if (results < 1 && query.length) {\n this.update_results_content(\"\");\n return this.no_results(query);\n } else {\n this.update_results_content(this.results_option_build());\n if (!(options != null ? options.skip_highlight : void 0)) {\n return this.winnow_results_set_highlight();\n }\n }\n };\n\n AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {\n var regex_flag, regex_string;\n regex_string = this.search_contains ? escaped_search_string : \"(^|\\\\s|\\\\b)\" + escaped_search_string + \"[^\\\\s]*\";\n if (!(this.enable_split_word_search || this.search_contains)) {\n regex_string = \"^\" + regex_string;\n }\n regex_flag = this.case_sensitive_search ? \"\" : \"i\";\n return new RegExp(regex_string, regex_flag);\n };\n\n AbstractChosen.prototype.search_string_match = function(search_string, regex) {\n var match;\n match = regex.exec(search_string);\n if (!this.search_contains && (match != null ? match[1] : void 0)) {\n match.index += 1;\n }\n return match;\n };\n\n AbstractChosen.prototype.choices_count = function() {\n var i, len, option, ref;\n if (this.selected_option_count != null) {\n return this.selected_option_count;\n }\n this.selected_option_count = 0;\n ref = this.form_field.options;\n for (i = 0, len = ref.length; i < len; i++) {\n option = ref[i];\n if (option.selected) {\n this.selected_option_count += 1;\n }\n }\n return this.selected_option_count;\n };\n\n AbstractChosen.prototype.choices_click = function(evt) {\n evt.preventDefault();\n this.activate_field();\n if (!(this.results_showing || this.is_disabled)) {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.keydown_checker = function(evt) {\n var ref, stroke;\n stroke = (ref = evt.which) != null ? ref : evt.keyCode;\n this.search_field_scale();\n if (stroke !== 8 && this.pending_backstroke) {\n this.clear_backstroke();\n }\n switch (stroke) {\n case 8:\n this.backstroke_length = this.get_search_field_value().length;\n break;\n case 9:\n if (this.results_showing && !this.is_multiple) {\n this.result_select(evt);\n }\n this.mouse_on_container = false;\n break;\n case 13:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 27:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 32:\n if (this.disable_search) {\n evt.preventDefault();\n }\n break;\n case 38:\n evt.preventDefault();\n this.keyup_arrow();\n break;\n case 40:\n evt.preventDefault();\n this.keydown_arrow();\n break;\n }\n };\n\n AbstractChosen.prototype.keyup_checker = function(evt) {\n var ref, stroke;\n stroke = (ref = evt.which) != null ? ref : evt.keyCode;\n this.search_field_scale();\n switch (stroke) {\n case 8:\n if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {\n this.keydown_backstroke();\n } else if (!this.pending_backstroke) {\n this.result_clear_highlight();\n this.results_search();\n }\n break;\n case 13:\n evt.preventDefault();\n if (this.results_showing) {\n this.result_select(evt);\n }\n break;\n case 27:\n if (this.results_showing) {\n this.results_hide();\n }\n break;\n case 9:\n case 16:\n case 17:\n case 18:\n case 38:\n case 40:\n case 91:\n break;\n default:\n this.results_search();\n break;\n }\n };\n\n AbstractChosen.prototype.clipboard_event_checker = function(evt) {\n if (this.is_disabled) {\n return;\n }\n return setTimeout(((function(_this) {\n return function() {\n return _this.results_search();\n };\n })(this)), 50);\n };\n\n AbstractChosen.prototype.container_width = function() {\n if (this.options.width != null) {\n return this.options.width;\n } else {\n return this.form_field.offsetWidth + \"px\";\n }\n };\n\n AbstractChosen.prototype.include_option_in_results = function(option) {\n if (this.is_multiple && (!this.display_selected_options && option.selected)) {\n return false;\n }\n if (!this.display_disabled_options && option.disabled) {\n return false;\n }\n if (option.empty) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.prototype.search_results_touchstart = function(evt) {\n this.touch_started = true;\n return this.search_results_mouseover(evt);\n };\n\n AbstractChosen.prototype.search_results_touchmove = function(evt) {\n this.touch_started = false;\n return this.search_results_mouseout(evt);\n };\n\n AbstractChosen.prototype.search_results_touchend = function(evt) {\n if (this.touch_started) {\n return this.search_results_mouseup(evt);\n }\n };\n\n AbstractChosen.prototype.outerHTML = function(element) {\n var tmp;\n if (element.outerHTML) {\n return element.outerHTML;\n }\n tmp = document.createElement(\"div\");\n tmp.appendChild(element);\n return tmp.innerHTML;\n };\n\n AbstractChosen.prototype.get_single_html = function() {\n return \"\\n \" + this.default_text + \"\\n
\\n
\\n
\\n
\\n \\n
\\n
    \\n
    \";\n };\n\n AbstractChosen.prototype.get_multi_html = function() {\n return \"
      \\n
    • \\n \\n
    • \\n
    \\n
    \\n
      \\n
      \";\n };\n\n AbstractChosen.prototype.get_no_results_html = function(terms) {\n return \"
    • \\n \" + this.results_none_found + \" \" + (this.escape_html(terms)) + \"\\n
    • \";\n };\n\n AbstractChosen.browser_is_supported = function() {\n if (\"Microsoft Internet Explorer\" === window.navigator.appName) {\n return document.documentMode >= 8;\n }\n if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.default_multiple_text = \"Select Some Options\";\n\n AbstractChosen.default_single_text = \"Select an Option\";\n\n AbstractChosen.default_no_result_text = \"No results match\";\n\n return AbstractChosen;\n\n })();\n\n $ = jQuery;\n\n $.fn.extend({\n chosen: function(options) {\n if (!AbstractChosen.browser_is_supported()) {\n return this;\n }\n return this.each(function(input_field) {\n var $this, chosen;\n $this = $(this);\n chosen = $this.data('chosen');\n if (options === 'destroy') {\n if (chosen instanceof Chosen) {\n chosen.destroy();\n }\n return;\n }\n if (!(chosen instanceof Chosen)) {\n $this.data('chosen', new Chosen(this, options));\n }\n });\n }\n });\n\n Chosen = (function(superClass) {\n extend(Chosen, superClass);\n\n function Chosen() {\n return Chosen.__super__.constructor.apply(this, arguments);\n }\n\n Chosen.prototype.setup = function() {\n this.form_field_jq = $(this.form_field);\n return this.current_selectedIndex = this.form_field.selectedIndex;\n };\n\n Chosen.prototype.set_up_html = function() {\n var container_classes, container_props;\n container_classes = [\"chosen-container\"];\n container_classes.push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\"));\n if (this.inherit_select_classes && this.form_field.className) {\n container_classes.push(this.form_field.className);\n }\n if (this.is_rtl) {\n container_classes.push(\"chosen-rtl\");\n }\n container_props = {\n 'class': container_classes.join(' '),\n 'title': this.form_field.title\n };\n if (this.form_field.id.length) {\n container_props.id = this.form_field.id.replace(/[^\\w]/g, '_') + \"_chosen\";\n }\n this.container = $(\"
      \", container_props);\n this.container.width(this.container_width());\n if (this.is_multiple) {\n this.container.html(this.get_multi_html());\n } else {\n this.container.html(this.get_single_html());\n }\n this.form_field_jq.hide().after(this.container);\n this.dropdown = this.container.find('div.chosen-drop').first();\n this.search_field = this.container.find('input').first();\n this.search_results = this.container.find('ul.chosen-results').first();\n this.search_field_scale();\n this.search_no_results = this.container.find('li.no-results').first();\n if (this.is_multiple) {\n this.search_choices = this.container.find('ul.chosen-choices').first();\n this.search_container = this.container.find('li.search-field').first();\n } else {\n this.search_container = this.container.find('div.chosen-search').first();\n this.selected_item = this.container.find('.chosen-single').first();\n }\n this.results_build();\n this.set_tab_index();\n return this.set_label_behavior();\n };\n\n Chosen.prototype.on_ready = function() {\n return this.form_field_jq.trigger(\"chosen:ready\", {\n chosen: this\n });\n };\n\n Chosen.prototype.register_observers = function() {\n this.container.on('touchstart.chosen', (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.container.on('touchend.chosen', (function(_this) {\n return function(evt) {\n _this.container_mouseup(evt);\n };\n })(this));\n this.container.on('mousedown.chosen', (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.container.on('mouseup.chosen', (function(_this) {\n return function(evt) {\n _this.container_mouseup(evt);\n };\n })(this));\n this.container.on('mouseenter.chosen', (function(_this) {\n return function(evt) {\n _this.mouse_enter(evt);\n };\n })(this));\n this.container.on('mouseleave.chosen', (function(_this) {\n return function(evt) {\n _this.mouse_leave(evt);\n };\n })(this));\n this.search_results.on('mouseup.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseup(evt);\n };\n })(this));\n this.search_results.on('mouseover.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseover(evt);\n };\n })(this));\n this.search_results.on('mouseout.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mouseout(evt);\n };\n })(this));\n this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_mousewheel(evt);\n };\n })(this));\n this.search_results.on('touchstart.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchstart(evt);\n };\n })(this));\n this.search_results.on('touchmove.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchmove(evt);\n };\n })(this));\n this.search_results.on('touchend.chosen', (function(_this) {\n return function(evt) {\n _this.search_results_touchend(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:updated.chosen\", (function(_this) {\n return function(evt) {\n _this.results_update_field(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:activate.chosen\", (function(_this) {\n return function(evt) {\n _this.activate_field(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:open.chosen\", (function(_this) {\n return function(evt) {\n _this.container_mousedown(evt);\n };\n })(this));\n this.form_field_jq.on(\"chosen:close.chosen\", (function(_this) {\n return function(evt) {\n _this.close_field(evt);\n };\n })(this));\n this.search_field.on('blur.chosen', (function(_this) {\n return function(evt) {\n _this.input_blur(evt);\n };\n })(this));\n this.search_field.on('keyup.chosen', (function(_this) {\n return function(evt) {\n _this.keyup_checker(evt);\n };\n })(this));\n this.search_field.on('keydown.chosen', (function(_this) {\n return function(evt) {\n _this.keydown_checker(evt);\n };\n })(this));\n this.search_field.on('focus.chosen', (function(_this) {\n return function(evt) {\n _this.input_focus(evt);\n };\n })(this));\n this.search_field.on('cut.chosen', (function(_this) {\n return function(evt) {\n _this.clipboard_event_checker(evt);\n };\n })(this));\n this.search_field.on('paste.chosen', (function(_this) {\n return function(evt) {\n _this.clipboard_event_checker(evt);\n };\n })(this));\n if (this.is_multiple) {\n return this.search_choices.on('click.chosen', (function(_this) {\n return function(evt) {\n _this.choices_click(evt);\n };\n })(this));\n } else {\n return this.container.on('click.chosen', function(evt) {\n evt.preventDefault();\n });\n }\n };\n\n Chosen.prototype.destroy = function() {\n $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action);\n if (this.form_field_label.length > 0) {\n this.form_field_label.off('click.chosen');\n }\n if (this.search_field[0].tabIndex) {\n this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;\n }\n this.container.remove();\n this.form_field_jq.removeData('chosen');\n return this.form_field_jq.show();\n };\n\n Chosen.prototype.search_field_disabled = function() {\n this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');\n this.container.toggleClass('chosen-disabled', this.is_disabled);\n this.search_field[0].disabled = this.is_disabled;\n if (!this.is_multiple) {\n this.selected_item.off('focus.chosen', this.activate_field);\n }\n if (this.is_disabled) {\n return this.close_field();\n } else if (!this.is_multiple) {\n return this.selected_item.on('focus.chosen', this.activate_field);\n }\n };\n\n Chosen.prototype.container_mousedown = function(evt) {\n var ref;\n if (this.is_disabled) {\n return;\n }\n if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !this.results_showing) {\n evt.preventDefault();\n }\n if (!((evt != null) && ($(evt.target)).hasClass(\"search-choice-close\"))) {\n if (!this.active_field) {\n if (this.is_multiple) {\n this.search_field.val(\"\");\n }\n $(this.container[0].ownerDocument).on('click.chosen', this.click_test_action);\n this.results_show();\n } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents(\"a.chosen-single\").length)) {\n evt.preventDefault();\n this.results_toggle();\n }\n return this.activate_field();\n }\n };\n\n Chosen.prototype.container_mouseup = function(evt) {\n if (evt.target.nodeName === \"ABBR\" && !this.is_disabled) {\n return this.results_reset(evt);\n }\n };\n\n Chosen.prototype.search_results_mousewheel = function(evt) {\n var delta;\n if (evt.originalEvent) {\n delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;\n }\n if (delta != null) {\n evt.preventDefault();\n if (evt.type === 'DOMMouseScroll') {\n delta = delta * 40;\n }\n return this.search_results.scrollTop(delta + this.search_results.scrollTop());\n }\n };\n\n Chosen.prototype.blur_test = function(evt) {\n if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) {\n return this.close_field();\n }\n };\n\n Chosen.prototype.close_field = function() {\n $(this.container[0].ownerDocument).off(\"click.chosen\", this.click_test_action);\n this.active_field = false;\n this.results_hide();\n this.container.removeClass(\"chosen-container-active\");\n this.clear_backstroke();\n this.show_search_field_default();\n this.search_field_scale();\n return this.search_field.blur();\n };\n\n Chosen.prototype.activate_field = function() {\n if (this.is_disabled) {\n return;\n }\n this.container.addClass(\"chosen-container-active\");\n this.active_field = true;\n this.search_field.val(this.search_field.val());\n return this.search_field.focus();\n };\n\n Chosen.prototype.test_active_click = function(evt) {\n var active_container;\n active_container = $(evt.target).closest('.chosen-container');\n if (active_container.length && this.container[0] === active_container[0]) {\n return this.active_field = true;\n } else {\n return this.close_field();\n }\n };\n\n Chosen.prototype.results_build = function() {\n this.parsing = true;\n this.selected_option_count = null;\n this.results_data = SelectParser.select_to_array(this.form_field);\n if (this.is_multiple) {\n this.search_choices.find(\"li.search-choice\").remove();\n } else {\n this.single_set_selected_text();\n if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {\n this.search_field[0].readOnly = true;\n this.container.addClass(\"chosen-container-single-nosearch\");\n } else {\n this.search_field[0].readOnly = false;\n this.container.removeClass(\"chosen-container-single-nosearch\");\n }\n }\n this.update_results_content(this.results_option_build({\n first: true\n }));\n this.search_field_disabled();\n this.show_search_field_default();\n this.search_field_scale();\n return this.parsing = false;\n };\n\n Chosen.prototype.result_do_highlight = function(el) {\n var high_bottom, high_top, maxHeight, visible_bottom, visible_top;\n if (el.length) {\n this.result_clear_highlight();\n this.result_highlight = el;\n this.result_highlight.addClass(\"highlighted\");\n maxHeight = parseInt(this.search_results.css(\"maxHeight\"), 10);\n visible_top = this.search_results.scrollTop();\n visible_bottom = maxHeight + visible_top;\n high_top = this.result_highlight.position().top + this.search_results.scrollTop();\n high_bottom = high_top + this.result_highlight.outerHeight();\n if (high_bottom >= visible_bottom) {\n return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);\n } else if (high_top < visible_top) {\n return this.search_results.scrollTop(high_top);\n }\n }\n };\n\n Chosen.prototype.result_clear_highlight = function() {\n if (this.result_highlight) {\n this.result_highlight.removeClass(\"highlighted\");\n }\n return this.result_highlight = null;\n };\n\n Chosen.prototype.results_show = function() {\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n this.container.addClass(\"chosen-with-drop\");\n this.results_showing = true;\n this.search_field.focus();\n this.search_field.val(this.get_search_field_value());\n this.winnow_results();\n return this.form_field_jq.trigger(\"chosen:showing_dropdown\", {\n chosen: this\n });\n };\n\n Chosen.prototype.update_results_content = function(content) {\n return this.search_results.html(content);\n };\n\n Chosen.prototype.results_hide = function() {\n if (this.results_showing) {\n this.result_clear_highlight();\n this.container.removeClass(\"chosen-with-drop\");\n this.form_field_jq.trigger(\"chosen:hiding_dropdown\", {\n chosen: this\n });\n }\n return this.results_showing = false;\n };\n\n Chosen.prototype.set_tab_index = function(el) {\n var ti;\n if (this.form_field.tabIndex) {\n ti = this.form_field.tabIndex;\n this.form_field.tabIndex = -1;\n return this.search_field[0].tabIndex = ti;\n }\n };\n\n Chosen.prototype.set_label_behavior = function() {\n this.form_field_label = this.form_field_jq.parents(\"label\");\n if (!this.form_field_label.length && this.form_field.id.length) {\n this.form_field_label = $(\"label[for='\" + this.form_field.id + \"']\");\n }\n if (this.form_field_label.length > 0) {\n return this.form_field_label.on('click.chosen', this.label_click_handler);\n }\n };\n\n Chosen.prototype.show_search_field_default = function() {\n if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {\n this.search_field.val(this.default_text);\n return this.search_field.addClass(\"default\");\n } else {\n this.search_field.val(\"\");\n return this.search_field.removeClass(\"default\");\n }\n };\n\n Chosen.prototype.search_results_mouseup = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target.length) {\n this.result_highlight = target;\n this.result_select(evt);\n return this.search_field.focus();\n }\n };\n\n Chosen.prototype.search_results_mouseover = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target) {\n return this.result_do_highlight(target);\n }\n };\n\n Chosen.prototype.search_results_mouseout = function(evt) {\n if ($(evt.target).hasClass(\"active-result\") || $(evt.target).parents('.active-result').first()) {\n return this.result_clear_highlight();\n }\n };\n\n Chosen.prototype.choice_build = function(item) {\n var choice, close_link;\n choice = $('
    • ', {\n \"class\": \"search-choice\"\n }).html(\"\" + (this.choice_label(item)) + \"\");\n if (item.disabled) {\n choice.addClass('search-choice-disabled');\n } else {\n close_link = $('', {\n \"class\": 'search-choice-close',\n 'data-option-array-index': item.array_index\n });\n close_link.on('click.chosen', (function(_this) {\n return function(evt) {\n return _this.choice_destroy_link_click(evt);\n };\n })(this));\n choice.append(close_link);\n }\n return this.search_container.before(choice);\n };\n\n Chosen.prototype.choice_destroy_link_click = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (!this.is_disabled) {\n return this.choice_destroy($(evt.target));\n }\n };\n\n Chosen.prototype.choice_destroy = function(link) {\n if (this.result_deselect(link[0].getAttribute(\"data-option-array-index\"))) {\n if (this.active_field) {\n this.search_field.focus();\n } else {\n this.show_search_field_default();\n }\n if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {\n this.results_hide();\n }\n link.parents('li').first().remove();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.results_reset = function() {\n this.reset_single_select_options();\n this.form_field.options[0].selected = true;\n this.single_set_selected_text();\n this.show_search_field_default();\n this.results_reset_cleanup();\n this.trigger_form_field_change();\n if (this.active_field) {\n return this.results_hide();\n }\n };\n\n Chosen.prototype.results_reset_cleanup = function() {\n this.current_selectedIndex = this.form_field.selectedIndex;\n return this.selected_item.find(\"abbr\").remove();\n };\n\n Chosen.prototype.result_select = function(evt) {\n var high, item;\n if (this.result_highlight) {\n high = this.result_highlight;\n this.result_clear_highlight();\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n if (this.is_multiple) {\n high.removeClass(\"active-result\");\n } else {\n this.reset_single_select_options();\n }\n high.addClass(\"result-selected\");\n item = this.results_data[high[0].getAttribute(\"data-option-array-index\")];\n item.selected = true;\n this.form_field.options[item.options_index].selected = true;\n this.selected_option_count = null;\n if (this.is_multiple) {\n this.choice_build(item);\n } else {\n this.single_set_selected_text(this.choice_label(item));\n }\n if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {\n if (evt.metaKey || evt.ctrlKey) {\n this.winnow_results({\n skip_highlight: true\n });\n } else {\n this.search_field.val(\"\");\n this.winnow_results();\n }\n } else {\n this.results_hide();\n this.show_search_field_default();\n }\n if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {\n this.trigger_form_field_change({\n selected: this.form_field.options[item.options_index].value\n });\n }\n this.current_selectedIndex = this.form_field.selectedIndex;\n evt.preventDefault();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.single_set_selected_text = function(text) {\n if (text == null) {\n text = this.default_text;\n }\n if (text === this.default_text) {\n this.selected_item.addClass(\"chosen-default\");\n } else {\n this.single_deselect_control_build();\n this.selected_item.removeClass(\"chosen-default\");\n }\n return this.selected_item.find(\"span\").html(text);\n };\n\n Chosen.prototype.result_deselect = function(pos) {\n var result_data;\n result_data = this.results_data[pos];\n if (!this.form_field.options[result_data.options_index].disabled) {\n result_data.selected = false;\n this.form_field.options[result_data.options_index].selected = false;\n this.selected_option_count = null;\n this.result_clear_highlight();\n if (this.results_showing) {\n this.winnow_results();\n }\n this.trigger_form_field_change({\n deselected: this.form_field.options[result_data.options_index].value\n });\n this.search_field_scale();\n return true;\n } else {\n return false;\n }\n };\n\n Chosen.prototype.single_deselect_control_build = function() {\n if (!this.allow_single_deselect) {\n return;\n }\n if (!this.selected_item.find(\"abbr\").length) {\n this.selected_item.find(\"span\").first().after(\"\");\n }\n return this.selected_item.addClass(\"chosen-single-with-deselect\");\n };\n\n Chosen.prototype.get_search_field_value = function() {\n return this.search_field.val();\n };\n\n Chosen.prototype.get_search_text = function() {\n return $.trim(this.get_search_field_value());\n };\n\n Chosen.prototype.escape_html = function(text) {\n return $('
      ').text(text).html();\n };\n\n Chosen.prototype.winnow_results_set_highlight = function() {\n var do_high, selected_results;\n selected_results = !this.is_multiple ? this.search_results.find(\".result-selected.active-result\") : [];\n do_high = selected_results.length ? selected_results.first() : this.search_results.find(\".active-result\").first();\n if (do_high != null) {\n return this.result_do_highlight(do_high);\n }\n };\n\n Chosen.prototype.no_results = function(terms) {\n var no_results_html;\n no_results_html = this.get_no_results_html(terms);\n this.search_results.append(no_results_html);\n return this.form_field_jq.trigger(\"chosen:no_results\", {\n chosen: this\n });\n };\n\n Chosen.prototype.no_results_clear = function() {\n return this.search_results.find(\".no-results\").remove();\n };\n\n Chosen.prototype.keydown_arrow = function() {\n var next_sib;\n if (this.results_showing && this.result_highlight) {\n next_sib = this.result_highlight.nextAll(\"li.active-result\").first();\n if (next_sib) {\n return this.result_do_highlight(next_sib);\n }\n } else {\n return this.results_show();\n }\n };\n\n Chosen.prototype.keyup_arrow = function() {\n var prev_sibs;\n if (!this.results_showing && !this.is_multiple) {\n return this.results_show();\n } else if (this.result_highlight) {\n prev_sibs = this.result_highlight.prevAll(\"li.active-result\");\n if (prev_sibs.length) {\n return this.result_do_highlight(prev_sibs.first());\n } else {\n if (this.choices_count() > 0) {\n this.results_hide();\n }\n return this.result_clear_highlight();\n }\n }\n };\n\n Chosen.prototype.keydown_backstroke = function() {\n var next_available_destroy;\n if (this.pending_backstroke) {\n this.choice_destroy(this.pending_backstroke.find(\"a\").first());\n return this.clear_backstroke();\n } else {\n next_available_destroy = this.search_container.siblings(\"li.search-choice\").last();\n if (next_available_destroy.length && !next_available_destroy.hasClass(\"search-choice-disabled\")) {\n this.pending_backstroke = next_available_destroy;\n if (this.single_backstroke_delete) {\n return this.keydown_backstroke();\n } else {\n return this.pending_backstroke.addClass(\"search-choice-focus\");\n }\n }\n }\n };\n\n Chosen.prototype.clear_backstroke = function() {\n if (this.pending_backstroke) {\n this.pending_backstroke.removeClass(\"search-choice-focus\");\n }\n return this.pending_backstroke = null;\n };\n\n Chosen.prototype.search_field_scale = function() {\n var div, i, len, style, style_block, styles, width;\n if (!this.is_multiple) {\n return;\n }\n style_block = {\n position: 'absolute',\n left: '-1000px',\n top: '-1000px',\n display: 'none',\n whiteSpace: 'pre'\n };\n styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];\n for (i = 0, len = styles.length; i < len; i++) {\n style = styles[i];\n style_block[style] = this.search_field.css(style);\n }\n div = $('
      ').css(style_block);\n div.text(this.get_search_field_value());\n $('body').append(div);\n width = div.width() + 25;\n div.remove();\n if (this.container.is(':visible')) {\n width = Math.min(this.container.outerWidth() - 10, width);\n }\n return this.search_field.width(width);\n };\n\n Chosen.prototype.trigger_form_field_change = function(extra) {\n this.form_field_jq.trigger(\"input\", extra);\n return this.form_field_jq.trigger(\"change\", extra);\n };\n\n return Chosen;\n\n })(AbstractChosen);\n\n}).call(this);\n","(function() {\n\n 'use strict';\n\n /*\n * jQuery accessible simple (non-modal) tooltip window, using ARIA\n * @version v2.2.0\n * Website: https://a11y.nicolas-hoffmann.net/simple-tooltip/\n * License MIT: https://github.com/nico3333fr/jquery-accessible-simple-tooltip-aria/blob/master/LICENSE\n */\n\n function accessibleSimpleTooltipAria(options) {\n var element = $(this);\n options = options || element.data();\n var text = options.simpletooltipText || '';\n var prefix_class = typeof options.simpletooltipPrefixClass !== 'undefined' ? options.simpletooltipPrefixClass + '-' : '';\n var content_id = typeof options.simpletooltipContentId !== 'undefined' ? '#' + options.simpletooltipContentId : '';\n\n var index_lisible = Math.random().toString(32).slice(2, 12);\n var aria_describedby = element.attr('aria-describedby') || '';\n\n element.attr({\n 'aria-describedby': 'label_simpletooltip_' + index_lisible + ' ' + aria_describedby\n });\n\n element.wrap('');\n\n var html = '';\n\n if (text !== '') {\n html += '' + text + '';\n } else {\n var $contentId = $(content_id);\n if (content_id !== '' && $contentId.length) {\n html += $contentId.html();\n }\n }\n html += '';\n\n $(html).insertAfter(element);\n }\n\n // Bind as a jQuery plugin\n $.fn.accessibleSimpleTooltipAria = accessibleSimpleTooltipAria;\n\n $(document).ready(function() {\n\n $('.js-simple-tooltip')\n .each(function() {\n // Call the function with this as the current tooltip\n accessibleSimpleTooltipAria.apply(this);\n });\n\n // events ------------------\n $('body')\n .on('mouseenter focusin', '.js-simple-tooltip', function() {\n var $this = $(this);\n var aria_describedby = $this.attr('aria-describedby');\n var tooltip_to_show_id = aria_describedby.substr(0, aria_describedby.indexOf(\" \"));\n var $tooltip_to_show = $('#' + tooltip_to_show_id);\n $tooltip_to_show.attr('aria-hidden', 'false');\n })\n .on('mouseleave', '.js-simple-tooltip', function(event) {\n var $this = $(this);\n var aria_describedby = $this.attr('aria-describedby');\n var tooltip_to_show_id = aria_describedby.substr(0, aria_describedby.indexOf(\" \"));\n var $tooltip_to_show = $('#' + tooltip_to_show_id);\n var $is_target_hovered = $tooltip_to_show.is(':hover');\n\n //alert($target_hovered);\n //$target.addClass('redborder');\n if (!$is_target_hovered) {\n $tooltip_to_show.attr('aria-hidden', 'true');\n }\n })\n .on('focusout', '.js-simple-tooltip', function(event) {\n var $this = $(this);\n var aria_describedby = $this.attr('aria-describedby');\n var tooltip_to_show_id = aria_describedby.substr(0, aria_describedby.indexOf(\" \"));\n var $tooltip_to_show = $('#' + tooltip_to_show_id);\n\n $tooltip_to_show.attr('aria-hidden', 'true');\n })\n .on('mouseleave', '.js-simpletooltip', function() {\n var $this = $(this);\n $this.attr('aria-hidden', 'true');\n })\n .on('keydown', '.js-simple-tooltip', function(event) {\n // close esc key\n\n var $this = $(this);\n var aria_describedby = $this.attr('aria-describedby');\n var tooltip_to_show_id = aria_describedby.substr(0, aria_describedby.indexOf(\" \"));\n var $tooltip_to_show = $('#' + tooltip_to_show_id);\n\n if (event.keyCode == 27) { // esc\n $tooltip_to_show.attr('aria-hidden', 'true');\n }\n });\n });\n\n})();\n","/**\n * Modules in this bundle\n * @license\n *\n * modal-video:\n * license: appleple\n * author: appleple\n * homepage: http://developer.a-blogcms.jp\n * version: 2.4.1\n *\n * custom-event-polyfill:\n * license: MIT (http://opensource.org/licenses/MIT)\n * maintainers: krambuhl \n * contributors: Frank Panetta, Mikhail Reenko , Joscha Feth \n * homepage: https://github.com/krambuhl/custom-event-polyfill#readme\n * version: 0.3.0\n *\n * es6-object-assign:\n * license: MIT (http://opensource.org/licenses/MIT)\n * author: Rubén Norte \n * homepage: https://github.com/rubennorte/es6-object-assign\n * version: 1.1.0\n *\n * This header is generated by licensify (https://github.com/twada/licensify)\n */\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\\n
      \\n
      \\n
      \\n \\n