{"version":3,"sources":["readium-js/readium-shared-js/node_modules/almond/almond.js","node_modules/bootstrap/dist/js/bootstrap.js","readium-js/readium-shared-js/node_modules/jquery/dist/jquery.js","readium-js/readium-shared-js/js/globals.js","readium-js/readium-shared-js/lib/console_shim.js","readium-js/readium-shared-js/node_modules/es6-shim/es6-shim.js","readium-js/readium-shared-js/node_modules/urijs/src/punycode.js","readium-js/readium-shared-js/node_modules/urijs/src/IPv6.js","readium-js/readium-shared-js/node_modules/urijs/src/SecondLevelDomains.js","readium-js/readium-shared-js/node_modules/urijs/src/URI.js","readium-js/readium-shared-js/node_modules/readium-cfi-js/dist/readium-cfi.umd.js","readium-js/readium-shared-js/node_modules/underscore/underscore.js","readium-js/readium-shared-js/js/plugins_controller.js","readium-js/readium-shared-js/js/globalsSetup.js","readium-js/readium-shared-js/js/models/bookmark_data.js","readium-js/readium-shared-js/js/models/current_pages_info.js","readium-js/readium-shared-js/js/models/fixed_page_spread.js","readium-js/readium-shared-js/node_modules/jquery-sizes/lib/jquery.sizes.js","readium-js/readium-shared-js/js/models/spine_item.js","readium-js/readium-shared-js/js/helpers.js","readium-js/readium-shared-js/js/views/cfi_navigation_logic.js","readium-js/readium-shared-js/js/models/viewer_settings.js","readium-js/readium-shared-js/node_modules/css-element-queries/src/ResizeSensor.js","readium-js/readium-shared-js/js/views/one_page_view.js","readium-js/readium-shared-js/js/models/page_open_request.js","readium-js/readium-shared-js/js/views/fixed_view.js","readium-js/readium-shared-js/js/views/iframe_loader.js","readium-js/readium-shared-js/js/views/internal_links_support.js","readium-js/readium-shared-js/js/models/smil_iterator.js","readium-js/readium-shared-js/js/views/media_overlay_data_injector.js","readium-js/readium-shared-js/js/views/audio_player.js","readium-js/readium-shared-js/js/views/media_overlay_element_highlighter.js","readium-js/readium-shared-js/js/views/scroll_view.js","readium-js/readium-shared-js/js/views/media_overlay_player.js","readium-js/readium-shared-js/js/models/spine.js","readium-js/readium-shared-js/js/models/smil_model.js","readium-js/readium-shared-js/js/models/media_overlay.js","readium-js/readium-shared-js/js/models/package_data.js","readium-js/readium-shared-js/js/models/package.js","readium-js/readium-shared-js/js/models/metadata.js","readium-js/readium-shared-js/js/views/reflowable_view.js","readium-js/readium-shared-js/js/models/style.js","readium-js/readium-shared-js/js/models/style_collection.js","readium-js/readium-shared-js/js/models/switches.js","readium-js/readium-shared-js/js/models/trigger.js","readium-js/readium-shared-js/js/models/node_range_info.js","readium-js/readium-shared-js/js/views/external_agent_support.js","readium-js/readium-shared-js/js/views/reader_view.js","readium-js/node_modules/requirejs-text/text.js","build-output/version.json!text","readium-js/js/epub-fetch/markup_parser.js","readium-js/js/epub-fetch/discover_content_type.js","readium-js/js/epub-fetch/plain_resource_fetcher.js","readium-js/node_modules/zip-js/WebContent/zip.js","readium-js/node_modules/zip-js/WebContent/mime-types.js","readium-js/node_modules/zip-js/WebContent/zip-fs.js","readium-js/node_modules/zip-js/WebContent/zip-ext.js","readium-js/js/epub-fetch/zip_resource_fetcher.js","readium-js/js/epub-fetch/content_document_fetcher.js","readium-js/js/epub-fetch/resource_cache.js","readium-js/node_modules/crypto-js/core.js","readium-js/node_modules/crypto-js/sha1.js","readium-js/js/epub-fetch/encryption_handler.js","readium-js/js/epub-fetch/publication_fetcher.js","readium-js/js/epub-model/package_document.js","readium-js/js/epub-model/smil_document_parser.js","readium-js/js/epub-model/metadata.js","readium-js/js/epub-model/manifest.js","readium-js/js/epub-model/package_document_parser.js","readium-js/node_modules/bowser/bowser.js","readium-js/js/epub-fetch/iframe_zip_loader.js","readium-js/js/Readium.js","src/js/ModuleConfig.js","node_modules/bootstrap-accessibility-plugin/plugins/js/bootstrap-accessibility.js","node_modules/spin.js/spin.js","src/js/Spinner.js","src/js/storage/Settings.js","src/i18n/_locales/de/messages.json!text","src/i18n/_locales/es/messages.json!text","src/i18n/_locales/en_US/messages.json!text","src/i18n/_locales/fr/messages.json!text","src/i18n/_locales/it/messages.json!text","src/i18n/_locales/id/messages.json!text","src/i18n/_locales/ja/messages.json!text","src/i18n/_locales/ko/messages.json!text","src/i18n/_locales/pt_BR/messages.json!text","src/i18n/_locales/zh_CN/messages.json!text","src/i18n/_locales/zh_TW/messages.json!text","src/i18n/Strings.js","node_modules/hogan.js/dist/hogan-3.0.2.amd.js","hgn!readium_js_viewer_html_templates/managed-dialog.html","hgn!readium_js_viewer_html_templates/progress-dialog.html","hgn!readium_js_viewer_html_templates/managed-buttons.html","src/js/workers/Messages.js","src/js/Dialogs.js","hgn!readium_js_viewer_html_templates/settings-dialog.html","hgn!readium_js_viewer_html_templates/settings-keyboard-item.html","node_modules/keymaster/keymaster.js","src/js/Keyboard.js","src/js/ReaderSettingsDialog_Keyboard.js","src/js/ReaderSettingsDialog.js","hgn!readium_js_viewer_html_templates/about-dialog.html","hgn!readium_js_viewer_html_templates/reader-navbar.html","hgn!readium_js_viewer_html_templates/reader-body.html","hgn!readium_js_viewer_html_templates/reader-body-page-btns.html","src/js/analytics/Analytics.js","node_modules/screenfull/dist/screenfull.js","src/js/EpubReaderMediaOverlays.js","src/js/EpubReaderBackgroundAudioTrack.js","node_modules/hammerjs/hammer.js","node_modules/jquery-hammerjs/jquery.hammer.js","src/js/gestures.js","src/js/versioning/ReadiumVersioning.js","src/js/EpubReader.js","src/js/ReadiumViewerLite.js","../../../../../module-insertRequire.js"],"names":["requirejs","require","define","undef","hasProp","obj","prop","hasOwn","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","i","j","part","normalizedBaseParts","baseParts","split","map","config","starMap","length","nodeIdCompat","jsSuffixRegExp","test","replace","charAt","slice","concat","splice","join","makeRequire","relName","forceSync","args","aps","arguments","push","req","apply","makeNormalize","makeLoad","depName","value","defined","callDep","waiting","defining","main","Error","splitPrefix","prefix","index","indexOf","substring","makeRelParts","makeConfig","makeMap","handlers","Object","prototype","hasOwnProperty","relParts","plugin","parts","relResourceName","f","n","pr","p","exports","e","module","id","uri","deps","callback","cjsModule","ret","usingExports","callbackType","load","undefined","alt","setTimeout","cfg","_defined","amd","jQuery","global","factory","document","w","window","this","noGlobal","isArrayLike","type","isWindow","winnow","elements","qualifier","not","isFunction","grep","elem","nodeType","risSimple","filter","sibling","cur","dir","createOptions","options","object","each","match","rnotwhite","_","flag","completed","removeEventListener","ready","Data","expando","uid","dataAttr","key","data","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","dataUser","set","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","css","initial","unit","cssNumber","initialInUnit","rcssNum","exec","style","start","end","getAll","context","tag","getElementsByTagName","querySelectorAll","nodeName","merge","setGlobalEval","elems","refElements","l","dataPriv","get","buildFragment","scripts","selection","ignored","tmp","wrap","contains","fragment","createDocumentFragment","nodes","rhtml","appendChild","createElement","rtagName","wrapMap","_default","innerHTML","htmlPrefilter","lastChild","childNodes","firstChild","textContent","createTextNode","inArray","ownerDocument","rscriptType","returnTrue","returnFalse","safeActiveElement","activeElement","err","on","types","selector","fn","one","origFn","event","off","guid","add","manipulationTarget","content","disableScript","restoreScript","rscriptTypeMasked","removeAttribute","cloneCopyEvent","src","dest","pdataOld","pdataCur","udataOld","udataCur","events","hasData","access","handle","extend","fixInput","rcheckableType","checked","defaultValue","domManip","collection","first","hasScripts","node","doc","iNoClone","support","checkClone","rchecked","self","eq","html","clone","_evalUrl","globalEval","rcleanScript","remove","keepData","cleanData","parentNode","removeChild","actualDisplay","appendTo","body","display","detach","defaultDisplay","elemdisplay","iframe","documentElement","contentDocument","write","close","curCSS","computed","width","minWidth","maxWidth","getStyles","getPropertyValue","pixelMarginRight","rnumnonpx","rmargin","addGetHookIf","conditionFn","hookFn","vendorPropName","emptyStyle","capName","toUpperCase","cssPrefixes","setPositiveNumber","subtract","matches","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","boxSizingReliable","parseFloat","showHide","show","hidden","values","isHidden","Tween","easing","init","createFxNow","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","Animation","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","rfxtypes","isEmptyObject","done","hide","propFilter","specialEasing","camelCase","isArray","cssHooks","expand","properties","result","stopped","prefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","proxy","fx","timer","progress","complete","fail","getClass","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","selected","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","prev","responseFields","dataFilter","throws","state","error","buildParams","traditional","v","rbracket","getWindow","defaultView","arr","class2type","toString","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","last","len","sort","copy","copyIsArray","isPlainObject","random","isReady","msg","noop","Array","isNumeric","realStringObj","code","script","indirect","eval","trim","text","head","string","makeArray","results","second","invert","callbackExpect","arg","Date","Symbol","iterator","Sizzle","seed","m","nid","nidselect","groups","newSelector","newContext","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","getElementsByClassName","qsa","compilerCache","rbuggyQSA","rescape","setAttribute","tokenize","ridentifier","toSelector","rsibling","testContext","qsaError","select","createCache","cache","keys","Expr","cacheLength","markFunction","assert","div","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","uniqueCache","outerCache","newCache","dirruns","uniqueID","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","find","dirrunsUnique","pop","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","sortOrder","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","els","hasCompare","parent","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","attr","specified","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","until","truncate","is","siblings","rneedsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","reverse","Callbacks","firing","memory","fired","locked","firingIndex","once","stopOnFalse","disable","lock","fireWith","tuples","then","fns","newDefer","tuple","returned","notify","resolve","reject","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","readyState","doScroll","chainable","emptyGet","raw","bulk","acceptData","owner","register","defineProperty","writable","configurable","stored","camel","removeData","_data","_removeData","camelKey","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","handleObjIn","eventHandle","t","handleObj","special","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","sel","isNaN","fixHooks","keyHooks","original","charCode","keyCode","mouseHooks","eventDoc","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","Event","noBubble","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","relatedTarget","rxhtmlTag","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","append","prepend","insertBefore","before","after","replaceWith","replaceChild","prependTo","insertAfter","replaceAll","insert","HTML","BODY","view","opener","getComputedStyle","swap","old","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","reliableMarginRight","marginDiv","rdisplayswap","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","origName","isFinite","getBoundingClientRect","left","margin","padding","border","suffix","expanded","propHooks","eased","step","linear","swing","cos","PI","timerId","rrun","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","boolHook","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","rfocusable","rclickable","removeProp","tabindex","parseInt","for","class","rclass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","rspaces","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","abort","finalText","method","crossDomain","host","param","hasContent","beforeSend","send","getJSON","getScript","wrapAll","firstElementChild","wrapInner","unwrap","visible","getClientRects","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","size","andSelf","_jQuery","_$","$","noConflict","EventEmitter3","c","u","r","o","1","TypeError","_events","_eventsCount","create","__proto__","eventNames","getOwnPropertySymbols","listeners","listenerCount","emit","removeListener","removeAllListeners","addListener","prefixed","EventEmitter","Globals","version","Views","ORIENTATION_LANDSCAPE","ORIENTATION_PORTRAIT","Events","READER_INITIALIZED","PAGINATION_CHANGED","SETTINGS_APPLIED","FXL_VIEW_RESIZED","READER_VIEW_CREATED","READER_VIEW_DESTROYED","CONTENT_DOCUMENT_LOAD_START","CONTENT_DOCUMENT_LOADED","CONTENT_DOCUMENT_UNLOADED","MEDIA_OVERLAY_STATUS_CHANGED","MEDIA_OVERLAY_TTS_SPEAK","MEDIA_OVERLAY_TTS_STOP","PLUGINS_LOADED","InternalEvents","CURRENT_VIEW_PAGINATION_CHANGED","logEvent","eventName","eventType","eventSource","navigator","epubReadingSystem","layoutStyle","hasFeature","feature","console","debug","log","info","warn","returnExports","ArrayIterator","_apply","Function","_call","throwsError","valueOrFalseIfThrows","isCallableWithoutNew","supportsDescriptors","functionsHaveNames","_forEach","forEach","_reduce","reduce","_filter","_some","some","force","enumerable","defineProperties","forceOverride","_toString","isCallable","x","Value","originalObject","targetObject","originalDescriptor","getOwnPropertyDescriptor","redefine","property","newValue","descriptor","defineByDescriptor","preserveToString","Prototype","supportsSubclassing","C","setPrototypeOf","Sub","Subclass","globals","globalIsFinite","_indexOf","_arrayIndexOfApply","_concat","_strSlice","_push","_pushApply","_shift","_max","_min","min","_floor","floor","_abs","abs","_exp","exp","_log","_sqrt","sqrt","_hasOwnProperty","OrigMap","Map","origMapDelete","origMapGet","origMapHas","origMapSet","symbolSpecies","species","numberIsNaN","Number","numberIsFinite","_sign","sign","number","isStandardArguments","isLegacyArguments","callee","isArguments","Type","primitive","regex","symbol","overrideNative","replacement","hasSymbols","$iterator$","Set","Reflect","$String","domAll","isNullOrUndefined","ES","Call","F","V","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","ToLength","MAX_SAFE_INTEGER","SameValue","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","IteratorComplete","iterResult","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","IteratorStep","Construct","newTarget","isES6internal","construct","proto","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","attribute","ToString","p1","IsRegExp","isRegExp","defineWellKnownSymbol","sym","search","symbolSearch","originalSearch","searchShim","regexp","searcher","symbolReplace","originalReplace","replaceValue","replaceShim","searchValue","replacer","symbolSplit","originalSplit","limit","splitShim","separator","splitter","symbolMatchExists","stringMatchIgnoresSymbolMatch","symbolMatch","originalMatch","matchShim","wrapConstructor","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","addIterator","impl","implementation","createDataProperty","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","RangeError","callSite","cooked","rawString","literalsegments","nextKey","nextSeg","nextSub","stringElements","nextIndex","stringRepeat","repeat","times","half","StringPrototypeShims","thisStr","numTimes","Infinity","startsWith","searchString","searchStr","endsWith","endPosition","includes","codePointAt","charCodeAt","isEnd","startsWithRejectsRegex","startsWithHandlesInfinity","re","ws","trimRegexp","trimShim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","iteratorResult","StringIterator","_s","_i","substr","ArrayShims","from","items","mapFn","mapping","T","usingIterator","nextValue","arrayLike","of","A","k","array","kind","retval","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","relativeEnd","finalItem","direction","fill","predicate","thisArg","findIndex","entries","unscopables","originalArrayPrototypeValues","searchElement","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","origArrayFrom","int32sAsOne","pow","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","OrigNumber","binaryRegex","octalRegex","isBinary","isOctal","toPrimitive","valueOf","hasNonWS","isBadHex","NumberShim","primValue","NaN","receiver","valueOfSucceeds","MAX_VALUE","MIN_VALUE","NEGATIVE_INFINITY","POSITIVE_INFINITY","maxSafeInteger","MIN_SAFE_INTEGER","EPSILON","isInteger","isSafeInteger","isEnumerableOn","propertyIsEnumerable","ensureEnumerable","sliceArgs","desiredArgCount","assignTo","assignReducer","symbols","sourceKeys","ObjectShims","assign","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","polyfill","FAKENULL","gpo","spo","originalObjectKeys","regexRejectingObjectKeys","regexKeys","cachedWindowNames","originalObjectGetOwnPropertyNames","originalObjectGetOwnPropertyDescriptor","seal","originalObjectSeal","isSealed","originalObjectIsSealed","freeze","originalObjectFreeze","isFrozen","originalObjectIsFrozen","originalObjectPreventExtensions","isExtensible","originalObjectIsExtensible","originalGetProto","hasFlags","desc","regExpFlagsGetter","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","regExpNeedsToSupportSymbolMatch","regexToStringIsGeneric","regexToStringSupportsGenericFlags","flags","origRegExpToString","R","flagsGetter","sourceDesc","legacySourceGetter","sourceGetter","OrigRegExp","RegExpShim","patternIsRegExp","P","$input","regexGlobals","lastMatch","lastParen","leftContext","rightContext","inverseEpsilon","roundTiesToEven","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","E","LOG2E","LOG10E","numberCLZ","clz","MathShims","acosh","asinh","atanh","cbrt","negate","clz32","cosh","expm1","sum","hypot","y","largest","log2","log10","log1p","sinh","tanh","trunc","imul","ah","al","bh","bl","fround","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","ceil","origImul","PromiseShim","IsPromise","_promise","makeZeroTimeout","PromiseCapability","capability","resolver","postMessage","timeouts","setZeroTimeout","handleMessage","Promise$prototype","Promise$prototype$then","enqueue","setImmediate","process","nextTick","Promise","task","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_FAKE_CAPABILITY","enqueuePromiseReactionJob","promiseReactionJob","promiseCapability","handlerResult","fulfillPromise","reactionLength","fulfillReactionHandler0","reactionCapability0","rejectReactions0","rejectPromise","reason","rejectReactionHandler0","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","optimizedThen","thenable","resolvingFunctions","_promiseAllResolver","alreadyCalled","performPromiseAll","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseRace","iterable","exception","ee","race","rejectFunc","resolveFunc","catch","onRejected","onFulfilled","fulfillReactionHandler","rejectReactionHandler","accept","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","p2","getsThenSynchronously","BadResolverPromise","executor","hasBadResolverPromise","origAll","origRace","origResolve","origReject","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","skipInsertionOrderCheck","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","collectionShims","MapEntry","isRemoved","isMap","_es6map","requireMapSlot","MapIterator","_head","Map$prototype","MapShim","_map","_size","_storage","fkey","delete","clear","Set$prototype","isSet","_es6set","requireSetSlot","SetShim","[[SetData]]","decodeKey","ensureMap","hasFKey","entireSet","testMap","mapUsesSameValueZero","mapSupportsChaining","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","newMap","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","ownKeys","callAndCatchException","internalGet","internalSet","propertyKey","objectDotGetPrototypeOf","willCreateCircularPrototype","lastProto","defineOrOverrideReflectProperty","shim","originalReflectGetProto","basic","extensible","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","small","strike","sub","sup","shouldOverwrite","output","quotesCount","JSONstringifiesSymbols","stringify","JSONstringifyAcceptsObjectSymbol","origStringify","replaceFn","wrappedReplacer","parsedValue","errors","mapDomain","regexSeparators","ucs2decode","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","digitToBasic","digit","adapt","delta","numPoints","firstTime","damp","baseMinusTMin","tMax","skew","decode","out","oldi","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","q","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeExports","freeModule","freeGlobal","punycode","not-basic","invalid-input","ucs2","IPv6","bestPresentation","address","_address","segments","total","_segments","best","_best","_current","inzeroes","_IPv6","SecondLevelDomains","_SecondLevelDomains","SLD","ac","ae","af","ao","ar","at","au","ba","bb","bn","bo","br","bs","bz","ca","ck","cn","co","cr","cy","do","dz","ec","eg","er","es","et","fj","fk","fr","gg","gh","gn","gr","gu","hk","hu","il","in","iq","ir","je","jo","jp","ke","kh","ki","km","kn","kr","kw","ky","kz","lb","lk","lr","lv","ly","ma","mc","me","mg","mk","ml","mn","mo","mt","mv","mw","mx","my","nf","ng","ni","np","nr","om","pe","ph","pk","pl","ps","pw","ro","rs","sb","sc","sh","sl","st","sv","sz","tt","tw","mu","mz","na","nz","pa","pt","py","qa","ru","rw","sa","sd","se","sg","sn","sy","tj","tn","tz","ua","ug","uk","us","uy","ve","vi","vn","ye","yu","za","zm","com","net","org","de","domain","tldOffset","sldOffset","sldList","URI","_urlSupplied","_baseSupplied","absoluteTo","escapeRegEx","getType","filterArrayValues","lookup","arrayContains","_type","arraysEqual","two","trimSlashes","trim_expression","escapeForDumbFirefox36","escape","strictEncodeURIComponent","generateSimpleAccessor","_part","build","_parts","generatePrefixAccessor","_key","_URI","hostname","urn","port","path","query","preventInvalidHostname","duplicateQueryParameters","escapeQuerySpace","protocol_expression","idn_expression","punycode_expression","ip4_expression","ip6_expression","find_uri_expression","findUri","parens","defaultPorts","http","https","ftp","gopher","wss","hostProtocols","invalid_hostname_characters","domAttributes","blockquote","form","img","area","embed","track","audio","video","getDomAttribute","decodeURIComponent","iso8859","unescape","characters","pathname","expression","%24","%26","%2B","%2C","%3B","%3D","%3A","%40","/","?","#","reserved","%2F","%3F","%23","%5B","%5D","%21","%27","%28","%29","%2A","urnpath",":","encodeQuery","decodeQuery","generateAccessor","_group","generateSegmentedPathFunction","_sep","_codingFuncName","_innerCodingFuncName","actualCodingFunc","decodePath","decodeUrnPath","recodePath","recodeUrnPath","encodeReserved","parseAuthority","parseHost","bracketPos","firstColon","firstSlash","nextColon","ensureValidHostname","ensureValidPort","parseUserinfo","parseQuery","splits","buildAuthority","buildHost","buildUserinfo","buildQuery","buildQueryParameter","addQuery","setQuery","removeQuery","hasQuery","withinArray","Boolean","joinPaths","nonEmptySegments","segment","commonPath","withinString","_start","_end","_trim","_parens","_attributeOpen","ignoreHtml","attributeOpen","parensEnd","parensMatch","parensMatchEnd","ignore","hasHostname","hasProtocol","rejectEmptyHostname","removeAll","unconflicted","URITemplate","deferBuild","_deferred_build","_string","res","_object","ip","ip4","ip6","sld","idn","_protocol","_port","_hostname","scheme","origin","authority","userinfo","resource","subdomain","tld","ReferenceError","directory","filename","decodePathSegment","mutatedDirectory","normalizePath","absolute","segmentCoded","setSearch","addSearch","removeSearch","hasSearch","normalizeProtocol","normalizeQuery","normalizeFragment","normalizeHostname","normalizePort","_path","_was_relative","_parent","_pos","_leadingParents","normalizePathname","normalizeSearch","normalizeHash","d","readable","qp","kv","basedir","resolved","relativeTo","relativeParts","common","relativePath","basePath","equals","one_query","two_query","one_map","two_map","EPUBcfi","arrayMap","iteratee","getRawTag","isOwn","symToStringTag","unmasked","nativeObjectToString","objectToString","nativeObjectToString$1","baseGetTag","undefinedTag","nullTag","symToStringTag$1","isObject","funcTag","genTag","asyncTag","proxyTag","isMasked","maskSrcKey","toSource","funcToString","baseIsNative","reIsNative","reIsHostCtor","getValue","getNative","hashClear","__data__","nativeCreate","hashDelete","hashGet","HASH_UNDEFINED","hasOwnProperty$2","hashHas","hasOwnProperty$3","hashSet","HASH_UNDEFINED$1","Hash","listCacheClear","other","assocIndexOf","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","HASH_UNDEFINED$2","setCacheHas","SetCache","baseFindIndex","fromIndex","fromRight","baseIsNaN","strictIndexOf","baseIndexOf","arrayIncludes","arrayIncludesWith","comparator","baseUnary","cacheHas","baseIntersection","arrays","othLength","othIndex","caches","maxLength","nativeMin","seen","outer","identity","overRest","transform","nativeMax","otherArgs","constant","isLength","isObjectLike","isArrayLikeObject","castArrayLikeObject","matchesLocalNameOrElement","element","otherNameOrElement","localName","getClassNameArray","_typeof","baseVal","isElementBlacklisted","classBlacklist","elementBlacklist","idBlacklist","classList","intersection","tagName","blacklistedTag","applyBlacklist","toConsumableArray","retrieveItemRefHref","itemRefElement","packageDocument","idref","querySelector","indexOutOfRange","targetIndex","numChildElements","elementNodeStep","CFIStepValue","$currNode","jqueryTargetNodeIndex","$blacklistExcluded","numElements","OutOfRangeError","injectCFIMarkerIntoText","$textNodeList","textOffset","elementToInject","$textNodeListToMutate","currTextPosition","nodeNum","Node","TEXT_NODE","$injectedNode","currNodeMaxIndex","nodeOffset","originalText","newText","newTextNode","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","TerminusError","inferTargetTextNode","currLogicalTextNodeIndex","prevNodeWasTextNode","$elementsWithoutMarkers","targetLogicalTextNodeIndex","$targetTextNodeList","ELEMENT_NODE","followIndexStep","followIndirectionStep","$contentDocument","$startElement","NodeTypeError","textTermination","targetIdMatchesIdAssertion","$foundNode","idAssertion","peg$SyntaxError","message","expected","found","captureStackTrace","peg$parse","peg$literalExpectation","peg$classExpectation","inverted","peg$computePosDetails","details","peg$posDetailsCache","line","column","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$currPos","peg$maxFailPos","peg$maxFailExpected","peg$parsefragment","s0","s1","s2","s3","peg$c0","peg$FAILED","peg$silentFails","peg$c1","peg$parserange","peg$parsepath","peg$c2","peg$c3","peg$c4","s4","s5","s6","peg$parseindexStep","peg$parselocal_path","peg$c5","peg$c6","peg$c7","peg$c8","peg$parseindirectionStep","peg$parseterminus","peg$c9","peg$c10","peg$c11","peg$parseinteger","peg$c12","peg$c13","peg$parseidAssertion","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$parsetextLocationAssertion","peg$c22","peg$parsevalue","peg$c23","peg$parsecsv","peg$parseparameter","peg$c24","peg$c25","peg$c26","peg$parsevalueNoSpace","peg$c27","peg$c28","peg$c29","peg$c30","peg$parseescapedSpecialChars","peg$parsecharacter","peg$c31","peg$parsespace","peg$parsecircumflex","peg$parsesquareBracket","peg$parseparentheses","peg$parsecomma","peg$parsesemicolon","peg$parseequal","peg$c32","peg$c40","peg$c41","peg$c33","peg$c34","peg$c35","peg$c36","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c37","peg$c38","peg$c67","peg$c68","peg$c69","peg$result","peg$startRuleFunctions","peg$startRuleFunction","fragmentVal","cfiString","stepVal","localPathVal","rangeLocalPath1Val","rangeLocalPath2Val","localPath","range1","range2","localPathStepVal","termStepVal","steps","termStep","stepLengthVal","assertVal","stepLength","textOffsetValue","textLocAssertVal","offsetValue","textAssertion","idVal","csvVal","paramVal","csv","parameter","paramLHSVal","paramRHSVal","LHSValue","RHSValue","preAssertionVal","postAssertionVal","preAssertion","postAssertion","stringVal","escSpecCharVal","integerVal","bracketVal","paraVal","charVal","startRule","buildMessage","getFirstIndirectionStepNum","CFIAST","stepNum","splitRangeCFIAST","firstRange","outCFIAST","targetRange","decomposeCFI","CFI","decodedCFI","decodeURI","decomposedASTs","concatStepsFromCFIAST","compareCFIASTs","CFIAST1","CFIAST2","steps1","steps2","term1","term2","L","tL","tR","interpretIndexStepNode","indexStepNode","$currElement","$stepTarget","CFIAssertionError","interpretIndirectionStepNode","indirectionStepNode","searchLocalPathForHref","localPathNode","nextStepNode","$foundElement","_$foundElement","_$foundElement2","slicedToArray","foundElement","interpretLocalPath","startStepNum","interpretTextTerminusNode","terminusNode","getContentDocHref","$packageElement","getElementsByTagNameNS","foundHref","compareCFIs","cfiA","cfiB","decomposedCFI1","decomposedCFI2","injectElement","indirectionStepNum","injectRangeElements","rangeCFI","startElementToInject","endElementToInject","$range1TargetElement","$range2TargetElement","startElement","endElement","getTargetElement","getRangeTargetElements","startOffset","endOffset","getTargetElementWithPartialCFI","contentDocumentCFI","getTextTerminusInfoWithPartialCFI","textNode","getTextTerminusInfo","isRangeCfi","hasTextTerminus","validateStartTextNode","startTextNode","characterOffset","validateTargetElement","validateStartElement","validateContentDocumentName","contentDocumentName","findSpineItemNode","validatePackageDocument","validNodeTypesFilter","normalizeDomRange","domRange","startContainer","endContainer","commonAncestorContainer","_filter2","firstChildNode","setStart","_filter$slice","_filter$slice2","lastChildNode","setEnd","hasChildNodes","createCFITextNodeStep","$startTextNode","indexOfTextNode","$parentNode","$contentsExcludingMarkers","indexOfFirstInSequence","textNodeOnlyIndex","characterOffsetSinceUnsplit","finalCharacterOffsetInSequence","createCFIElementSteps","topLevelElement","currNodePosition","elementStep","CFIPosition","generateDocumentRangeComponent","range1CFI","range1OffsetStep","range2CFI","range2OffsetStep","commonCFIComponent","previousSibling","generateRangeComponent","rangeStartElement","rangeEndElement","docRange","createRange","generateCharOffsetRangeComponent","generateElementRangeComponent","setStartBefore","setEndAfter","generateCharacterOffsetCFIComponent","textNodeStep","generateElementCFIComponent","generatePackageDocumentCFIComponent","generatePackageDocumentCFIComponentWithSpineIndex","spineIndex","spineItemNode","generateCompleteCFI","packageDocumentCFIComponent","contentDocumentCFIComponent","commonjsGlobal","DOMEval","preservedScriptAttributes","toType","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","getData","getDefaultDisplay","defaultDisplayMap","isHiddenWithinTree","valueIsFunction","pixelBoxStyles","rboxStyle","finalPropName","boxModelAdjustment","dimension","computedVal","schedule","inProgress","requestAnimationFrame","propTween","restoreDisplay","isBox","stripAndCollapse","classesToArray","getProto","fnToString","ObjectFunctionString","noModule","Ctor","rcssescape","fcssescape","createDisabledPseudo","isDisabled","disabledAncestor","skip","ch","asCodePoint","subWindow","escapeSelector","onProgress","depth","that","mightThrow","maxDepth","exceptionHook","stackTrace","getStackHook","singleValue","master","rerrorNames","stack","readyException","nativeEvent","matchedHandlers","matchedSelectors","addProp","hook","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","shiftKey","char","buttons","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","roundPixelMeasures","right","pixelBoxStylesVal","scrollboxSizeVal","measure","scrollboxSize","rcustomProp","isCustomProp","setProperty","lowercaseName","isValidValue","stopPropagationCallback","lastElement","valueOrFunction","rantiCache","uncached","htmlIsFunction","ontimeout","createHTMLDocument","rect","classCallCheck","instance","Constructor","inherits","subClass","superClass","possibleConstructorReturn","sliceIterator","_arr","_n","_d","_e","arr2","_Error","_this","_Error2","maxIndex","_this2","_Error3","terminusType","terminusCondition","_this3","_Error4","expectedAssertion","targetElementAssertion","_this4","freeSelf","Symbol$1","objectProto","toStringTag","objectProto$1","coreJsData","IE_PROTO","funcProto","reRegExpChar","funcProto$1","objectProto$2","funcToString$1","hasOwnProperty$1","objectProto$3","objectProto$4","arrayProto","defineProperty$1","baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","setToString","lastCalled","stamp","util","instructions","getNextNode","child","ctor","hex","literalEscape","classEscape","describeExpectation","expectation","DESCRIBE_EXPECTATION_FNS","literal","escapedParts","any","description","descriptions","parser","SyntaxError","parser$1","interpreter","generator","CFIInstructions","Instructions","Interpreter","Generator","Parser","Util","previousUnderscore","ArrayProto","ObjProto","SymbolProto","nativeIsArray","nativeKeys","_wrapped","VERSION","builtinIteratee","optimizeCb","argCount","accumulator","cb","restArguments","startIndex","rest","baseCreate","shallowProperty","deepGet","MAX_ARRAY_INDEX","getLength","collect","currentKey","createReduce","reducer","memo","foldl","inject","foldr","detect","keyFinder","findKey","include","item","guard","invoke","contextPath","pluck","where","findWhere","lastComputed","shuffle","sample","rand","sortBy","criteria","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","isString","pass","take","tail","drop","compact","flatten","shallow","strict","without","otherArrays","difference","uniq","isSorted","isBoolean","union","argsLength","unzip","zip","createPredicateIndexFinder","findLastIndex","sortedIndex","low","mid","createIndexFinder","predicateFind","range","chunk","executeBound","sourceFunc","boundFunc","callingContext","bound","callArgs","partial","boundArgs","placeholder","bindAll","memoize","hasher","throttle","previous","later","leading","throttled","trailing","cancel","debounce","immediate","debounced","callNow","wrapper","compose","hasEnumBug","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","allKeys","mapObject","pairs","functions","methods","names","createAssigner","keysFunc","defaults","extendOwn","keyInObj","pick","omit","tap","interceptor","isMatch","deepEq","aStack","bStack","areArrays","aCtor","bCtor","isEqual","isEmpty","isElement","nodelist","Int8Array","isSymbol","isNumber","isNull","isUndefined","propertyOf","accum","getTime","escapeMap","&","<","\"","'","`","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","fallback","idCounter","uniqueId","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeRegExp","escapeChar","template","oldSettings","variable","render","_chain","chainResult","mixin","toJSON","PluginApi","reader","PluginApiFactory","Plugin","dependencies","initializer","initialized","supported","_registeredPlugins","PluginsController","initialize","apiFactory","plugins","getLoadedPlugins","optDependencies","initFunc","api","pluginContext","requiredPlugin","PluginName","requiredPluginNames","deprecationNotice","deprecated","createError","console_shim","es6Shim","ReadiumSDK","URL","webkitURL","Plugins","_RJS_isBrowser","pluginsList","_RJS_pluginsList","BookmarkData","contentCFI","fromString","str","spine","isFixedLayout","isRightToLeft","spineItemCount","openPages","addOpenPage","spineItemPageIndex","spineItemPageCount","spineItemIndex","canGoLeft","canGoNext","canGoPrev","canGoRight","lastOpenPage","firstOpenPage","Spread","isSyntheticSpread","resetItems","leftItem","rightItem","centerItem","setItemToPosition","POSITION_LEFT","POSITION_RIGHT","POSITION_CENTER","getItemPosition","_isSyntheticSpread","isLeftPage","isRightPage","getNeighbourItem","prevItem","setSyntheticSpread","openFirst","openItem","openLast","isValidLinearItem","neighbour","neighbourPos","isReflowable","isRenditionSpreadAllowed","openNext","validItems","openPrev","isVisible","bottom","SpineItem","itemData","validateSpread","page_spread","SPREAD_LEFT","SPREAD_RIGHT","SPREAD_CENTER","isPropertyValueSetForItemOrPackage","propValue","package","cfi","rendition_viewport","rendition_spread","rendition_orientation","rendition_layout","rendition_flow","media_overlay_id","media_type","setSpread","spread","getRenditionSpread","RENDITION_SPREAD_NONE","isCenterPage","getRenditionLayout","RENDITION_LAYOUT_PREPAGINATED","RENDITION_LAYOUT_REFLOWABLE","getRenditionFlow","getRenditionViewport","getRenditionOrientation","isFlowScrolledContinuous","RENDITION_FLOW_SCROLLED_CONTINUOUS","isFlowScrolledDoc","RENDITION_FLOW_SCROLLED_DOC","RENDITION_ORIENTATION_LANDSCAPE","RENDITION_ORIENTATION_PORTRAIT","RENDITION_ORIENTATION_AUTO","RENDITION_SPREAD_LANDSCAPE","RENDITION_SPREAD_PORTRAIT","RENDITION_SPREAD_BOTH","RENDITION_SPREAD_AUTO","RENDITION_FLOW_PAGINATED","RENDITION_FLOW_AUTO","alternateSpread","JQuerySizes","performance","vendors","Helpers","getEbookUrlFilePath","ebookURL","Blob","File","getURLQueryParams","initialQuery","keyParams","keyVal","buildUrlQueryParameters","initialUrl","queryStringOverrides","uriInstance","startingQueryString","urlFragment","urlPath","newQueryString","overrideKey","overrideEntry","verbatim","parsedQueryString","parsedKey","Rect","isOverlap","tolerance","fromElement","$element","offsetLeft","offsetTop","UpdateHtmlFontAttributes","$epubHtml","fontSize","fontObj","docHead","changeFontFamily","fontLoadCallback","fontFamilyStyle","fontFamily","factor","$textblocks","ele","fontSizeAttr","originalFontSize","originalLineHeight","lineHeightAttr","fontLoadCallback_","dataFontFamily","data-fontfamily","rel","ResolveContentRef","contentRef","sourceFileHref","sourceParts","pathComponents","EndsWith","BeginsWith","RemoveFromString","toRemove","startIx","Margins","triggerLayout","$iframe","ss","styleSheets","sheet","cssRule","cssRules","insertRule","createElementNS","deleteRule","deduceSyntheticSpread","$viewport","spineItem","syntheticSpread","orientation","getOrientation","loadTemplate","fixed_book_frame","single_page_frame","scrolled_book_frame","reflowable_book_frame","reflowable_book_page_frame","setStyles","stylingGlobal","stylings","elementIsDocument","cssProperties","declarations","prop_","bookStyleElement","cssStylesheet","styling","styleElement","isIframeAlive","contentWindow","viewportWidth","viewportHeight","isRenditionSpreadPermittedForItem","CSSTransition","$el","trans","CSSTransformString","translate","rotation","enable3D","angle","transformString","extendedThrottle","startCb","tickCb","endCb","tickRate","waitThreshold","deferTimer","ctx","escapeJQuerySelector","polyfillCaretRangeFromPoint","caretRangeFromPoint","caretPositionFromPoint","offsetNode","createTextRange","TextRangeUtils","convertToDOMRange","textRange","adoptBoundary","textRangeInner","bStart","cursorNode","cursor","duplicate","collapse","parentElement","moveToElementText","compareEndPoints","setEndPoint","iy","moveToPoint","elementFromPoint","setStartAfter","getRootDocument","createRangeFromNode","textnode","documentRange","selectNodeContents","getNodeClientRect","selectNode","normalizeRectangle","getNodeContentsClientRect","getNodeRangeClientRect","startNode","endNode","collapsed","getRangeClientRectList","visibleContentOffsets","getVisibleContentOffsets","getFrameDimensions","frameDimensionsGetter","getCaretRangeFromPoint","isPaginatedView","paginationInfo","isPageProgressionRightToLeft","rightToLeft","isVerticalWritingMode","isRectVisible","ignorePartiallyVisible","frameDimensions","getColumnFullWidth","columnWidth","columnGap","visibleContentOffsetsGetter","paginationOffsetsGetter","getPaginationOffsets","checkVisibilityByRectangles","shouldCalculateVisibilityPercentage","clientRectangles","getNormalizedRectangles","visibilityPercentage","adjustedRect","adjustRectangle","measureVisibilityPercentageByRectangles","findPageIndexDeltaByRectangles","calculatePageIndexDeltaByRectangles","columnFullWidth","isRtl","isVwm","firstRectangle","pageIndex","topOffset","leftOffset","visibleColumnCount","findPageIndexDeltaBySingleRectangle","clientRectangle","firstVisibleRectIndex","heightTotal","heightVisible","clientRectList","isTextNode","getNormalizedBoundingRect","boundingClientRect","textRect","plainRectObject","offsetRectangle","shouldLookForFirstVisibleColumn","determineSplit","division","splitRange","leftNodeRange","cloneRange","rightNodeRange","getVisibleTextRangeOffsets","pickerFunc","nodeRange","nodeClientRects","splitRatio","deterministicSplit","getTextRangeOffset","rectList","directionBit","visibleRects","visibleRectHeight","calculateCumulativeHeight","invisibleRectHeight","totalHeight","rectTopHash","sortedList","lineMap","currentLine","startingSet","filterFunc","runCount","currRange","hasVisibleFragments","_DEBUG","_DEBUG_visibleTextRangeOffsetsRuns","resultRange","fragments","findVisibleLeafNodeCfi","visibleLeafNode","isValidTextNode","visibleRange","generateCfiFromDomRange","getCfiForElement","getLastVisibleTextRangeCfi","findLastVisibleElement","getFirstVisibleTextRangeCfi","findFirstVisibleElement","getClassBlacklist","getElementBlacklist","getIdBlacklist","getWrappedCfi","partialCfi","_isRangeCfi","_hasTextTerminus","getElementByPartialCfi","contentDoc","wrappedCfi","getBaseCfiSelectedByFunc","$elements","getLeafNodeElements","getBodyElement","$selectedNode","collapseToStart","classAttribute","animVal","isElementNode","isValidTextNodeContent","Cache","leafNodeElements","visibleLeafNodes","_invalidate","getRandomColor","letters","addOverlayRect","rects","overlayDiv","background","$debugOverlays","drawDebugOverlayFromRect","offsets","drawDebugOverlayFromDomRange","drawDebugOverlayFromNode","clearDebugOverlays","DEBUG_MODE","getRootElement","rootDocument","getVisibleCfiFromPoint","precisePoint","firstVisibleCaretRange","invalidElementFromPoint","testRect","wrappedRange","getRangeCfiFromPoints","startX","startY","endX","endY","getFirstVisibleCfi","getLastVisibleCfi","getDomRangeFromRangeCfi","rangeCfi","rangeCfi2","inclusive","rangeInfo1","getNodeRangeInfoFromCfi","startInfo","getElementByCfi","rangeInfo2","endInfo","rangeInfo","getRangeCfiFromDomRange","getPageIndexDeltaForCfi","clientRect","getPageIndexDeltaForElement","getElementFromPoint","nodeResult","startRangeInfo","endRangeInfo","nodeRangeClientRect","textTerminusResult","textTermRangeInfo","textTermClientRect","isNodeFromRangeCfiVisible","nodeRangeInfo","getNearestCfiFromElement","chosenNode","siblingTextNodesAndSelf","indexOfSelf","nearestNode","previousElementSibling","nextElementSibling","getPageIndexDeltaForElementId","getFirstVisibleMediaOverlayElement","traverseArray","$item","getElementVisibility","firstPartial","$root","isElementVisible","getVisibleElementsWithFilter","filterFunction","getElementsWithFilter","getVisibleElements","getAllElementsWithFilter","getAllVisibleElementsWithSelector","visibleContentOffset","$newElements","visibleElements","$node","percentVisible","getVisibleLeafNodes","_cacheEnabled","cacheKey","currentSpreadIndex","fromCache","_cache","getStartCfi","getEndCfi","traverseCollection","nodeIterator","createNodeIterator","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","FILTER_ACCEPT","$leafNodeElements","nextNode","childElementCount","getElements","getElement","invalidateCache","_DEBUG_CfiNavigationLogic","debugVisibleCfis","getPaginationInfo","cfi1","cfi2","visibleTextRangeOffsetsRunsAvg","bodyElement","firstVisibleElement","treeWalker","createTreeWalker","FILTER_REJECT","currentNode","hasChildElements","hasChildTextNodes","childNode","visibilityResult","previousNode","settingsData","buildArray","retArr","mapProperty","functionToApply","fontSelection","columnMaxWidth","columnMinWidth","mediaOverlaysPreservePlaybackWhenScroll","mediaOverlaysSkipSkippables","mediaOverlaysEscapeEscapables","mediaOverlaysSkippables","mediaOverlaysEscapables","mediaOverlaysEnableClick","mediaOverlaysRate","mediaOverlaysVolume","mediaOverlaysSynchronizationGranularity","mediaOverlaysAutomaticPageTurn","enableGPUHardwareAccelerationCSS3D","pageTransition","scroll","update","ResizeSensor","forEachElement","elementsType","isCollectionTyped","Elements","getElementSize","mozRequestAnimationFrame","webkitRequestAnimationFrame","EventQueue","ev","sizeInfo","newQueue","attachResizeEvent","resized","resizedAttached","resizeSensor","styleChild","computedStyle","dirty","rafId","resetRAF_id","expandChild","shrink","lastWidth","lastHeight","initialHiddenCheck","resetExpandShrink","resetSensor","onResized","onScroll","addEvent","observer","ResizeObserver","contentRect","observe","unobserve","CfiNavigationLogic","ViewerSettings","OnePageView","enableBookStyleOverrides","onIFrameLoad","_isIframeLoaded","epubContentDocument","_$iframe","_$epubHtml","_$epubBody","_enableBookStyleOverrides","applyBookStyles","updateMetaSize","initResizeSensor","_pageTransitionHandler","_lastBodySize","newBodySize","_currentSpineItem","_spine","resolveRelativeUrl","CONTENT_SIZE_CHANGED","updateHtmlFontInfo","_viewSettings","useDefault","fonts","font","getContentDocHeight","_meta_size","widthPercent","heightPercent","parseMetaSize","wAttr","isWidthPercent","hAttr","isHeightPercent","$img","_$viewport","onUnload","dict","nameVal","_$el","needsFixedLayoutScalerWorkAround","parentEl","clientWidth","clientHeight","createBookmarkFromCfi","_$scaler","_iframeLoader","iframeLoader","_bookStyles","bookStyles","PageTransitionHandler","PageTransition","begin","_pageTransition_OPACITY","meta_width","meta_height","pageSwitchDir","_pageTransition_TRANSLATE","elWidth","initialLeft","move","_enable3D","_pageTransition_ROTATE","_pageTransition_SWING","isLeft","isCenter","_pageTransitions","_disablePageTransitions","disablePageTransitions","_pageTransition","_viewerSettings","updateOptions","_pageSwitchDir","_pageSwitchActuallyChanged","_pageSwitchActuallyChanged_IFRAME_LOAD","updatePageSwitchDir","hasChanged","transformContentImmediate_BEGIN","pageSwitchActuallyChanged","transformContentImmediate_END","isDisplaying","viewerSettings","decorateIframe","currentSpineItem","setViewSettings","docWillChange","scaleToWidth","transformContentImmediate","resizeIFrameToContent","contHeight","setHeight","showIFrame","hideIFrame","elHeight","css1","css2","getCalculatedPageHeight","transformContent","loadSpineItem","prevSpineItem","SPINE_ITEM_OPEN_START","loadIframe","getNavigator","spineItemIdref","outsideBody","spineIdRef","getLoadedContentFrames","initiator","elementId","elementCfi","firstVisibleCfi","lastVisibleCfi","firstPage","lastPage","setFirstPage","setLastPage","setPageIndex","setElementId","setElementCfi","setFirstAndLastVisibleCfi","CurrentPagesInfo","PageOpenRequest","createOnePageView","elementClass","pageView","getFirstVisibleItem","_spread","redraw","paginationRequest","_isRedrowing","_redrawRequest","isElementAdded","pageLoadDeferrals","createPageLoadDeferrals","_leftPageView","_rightPageView","_centerPageView","_userStyles","updateBookMargins","onPagesLoaded","viewItemPairs","dfd","updatePageViewForItem","paginationRequest_spineItem","paginationRequest_elementId","updateContentMetaSize","resizeBook","isSpreadChanged","firstVisibleItem","tmpSpread","isContentRendered","_contentMetaSize","_bookMargins","viewportIsResizing","leftPageMargins","rightPageMargins","centerPageMargins","pageMargins","getMaxPageMargins","potentialTargetElementSize","potentialContentSize","horScale","verScale","_zoom","_currentScale","contentSize","targetElementSize","bookSize","bookLeft","bookTop","transFunc","separatorPosition","sumMargin","sumBorder","sumPAdding","isNewContentDocumentLoaded","getDisplayingViews","viewsToCheck","isLeftToRight","views","callOnPageView","userStyles","_pageViews","setZoom","applyStyles","onViewportResize","openPage","getViewScale","openPagePrev","openPageNext","spreadItems","spreadItem","bookmarkCurrentPage","loadedSpineItems","getLoadedSpineItems","insureElementVisibility","spineItemId","includeSpineItems","isVisibleSpineItemElementCfi","getDomRangesFromRangeCfi","ranges","eventListeners","addIFrameEventListener","updateIframeEvents","attachedData","baseURI","loadedDocumentUri","_loadIframeWithUri","contentUri","mathJax","MathJax","cdnVersion","fileversion","useFontCache","Hub","Browser","isFirefox","isChrome","userAgent","Config","showMathMenu","messageStyle","showProcessingMessages","SVG","mathJaxCallback","Queue","splitCfi","fullCfi","bungIx","endIx","spineItemCfi","getAbsoluteUriRelativeToSpineItem","hrefUri","fullPath","processDeepLink","absoluteOpfUri","absPath","readOpfFile","opfText","packageDom","contentDocRef","newSpineItem","getItemByHref","openSpineItemElementCfi","errorThrown","isDeepLikHref","fileName","processLinkWithHash","normalizedUri","hashFrag","openSpineItemElementId","processLinkElements","clickEvent","overrideClickEvent","smil","findParNode","currentPar","findTextId","srcFragmentId","inside","isLast","goToPar","par","SmilIterator","mediaOverlay","mediaOverlayPlayer","attachMediaOverlayData","mediaOverlaySettings","contentDocElement","smil_models","$body","ping","touchClickMOEventHandler","touchInit","inLink","pars","getSmil","playUserPar","readaloud","isPlaying","toggleMediaOverlay","touchClickMOEventHandler_","getSmilBySpineItem","traverseSmilSeqs","textref","fragmentId","srcFile","selectBody","selectId","isCfiTextRange","partialStartCfi","startCFI","infoStart","partialEndCfi","endCFI","cfiTextParent","smilTextSrcCfi","partialRangeCfi","modata","iPars","onStatusChanged","onPositionChanged","onAudioEnded","onAudioPlay","onAudioPause","onPlay","onPause","onEnded","_audioElement","moSeeking","DEBUG","stopTimer","startTimer","_intervalTimer","_intervalTimerSkips","onReadyToSeek_","playId","playSeekCurrentTime","seekBegin","onReadyToSeek","_readyEvent","_Android","playToForcePreload","newCurrentTime","isNewSrc","play","_seekedEvent1","_seekedEvent2","pause","onSeeked","notRetry","seekRetries","MAX_SEEK_RETRIES","curTime","smilSrc","_currentSmilSrc","epubSrc","_currentEpubSrc","playFile","_iOS","Audio","currentSmilSrc","_rate","setRate","rate","playbackRate","getRate","_volume","setVolume","volume","getVolume","_touchInited","_playId","_seekQueuing","onPlayToForcePreload","vol","ensureUserStyle","hasAuthorStyle","overrideWithUserStyle","$userStyle","$head","DEFAULT_MO_ACTIVE_CLASS","fallbackUserStyle","atLeastOne","includeParWhenAdjustingToSeqSyncGranularity","_highlightedElementPar","isElementHighlighted","_highlightedCfiPar","isCfiHighlighted","_activeClass","_playbackActiveClass","_reader","reDo","he","hc","c1","c2","highlightElement","highlightCfi","activeClass","playbackActiveClass","seq","adjustParToSeqSyncGranularity","$hel","findStyle","highlights","addHighlight","annotations","removeHighlight","sync","getFirstSeqAncestorWithEpubType","isContinuousScroll","updateLoadedViewsTop","assertScrollPosition","_stopTransientViewUpdate","viewPage","firstLoadedView","viewPortRange","getVisibleRange","firstViewRange","getPageViewRange","ITEM_LOAD_SCROLL_BUFFER","scrollPos","removePageView","addToTopOf","updateLoadedViewsBottom","lastLoadedView","lastViewRange","addToBottomOf","newPageLoaded","updateTransientViews","scrollPosBefore","scrollPosAfter","_isPerformingLayoutModifications","ON_SCROLL_TIME_DALAY","onScrollDirect","_mediaOverlaysWasPlayingLastTimeScrollStarted","isMediaOverlayAvailable","isPlayingMediaOverlay","pauseMediaOverlay","_isSettingScrollPosition","_isLoadingNewSpineItemOnPageRequest","resetCurrentPosition","onPaginationChanged","_currentPageRequest","saveCurrentPosition","playMediaOverlay","pageRequest","_$contentFrame","updatePageViewSizeAndAdjustScroll","rangeBeforeResize","updatePageViewSize","rangeAfterResize","heightAfter","heightBefore","topView","tmpView","createPageViewForSpineItem","lastView","isNewlyLoaded","newView","originalHeight","onPageViewLoaded","bottomView","nexSpineItem","removeLoadedItems","loadedPageViews","forEachItemView","setFrameSizesToRectangle","rectangle","aSpineItem","isTemporaryView","updatePageViewSizeAndPagination_","_deferredPageRequest","restoreCurrentPosition","updatePageViewSizeAndPagination","findPageViewForSpineItem","retView","pageNodes","ix","curView","firstView","loadedView","openPageViewElement","pageCount","sfiNav","pageRange","calculatePageCount","viewHeight","isElementVisibleOnScreen","elementRange","getElementRange","domRangeAsRange","getDomRangeAsRange","isRangeIsVisibleOnScreen","scrollHeight","scrollBottom","getVisiblePageViews","SCROLL_MARGIN_TO_SHOW_LAST_VISBLE_LINE","isPageViewVisibleInRange","rangeLength","intersectRanges","_jQueryPositionNeedsFix","callOnVisiblePageView","pageViewRange","normalizedRange","steppedToVisiblePage","r1","r2","smallestVisibleLength","getFirstOrLastVisibleCfi","pageViews","selectedPageView","pageViewTopOffset","vs","lazyScroll","_firstVisibleCfi","getItemById","openPageInternal","doneLoadingSpineItem","heightAboveViewport","heightBelowViewport","pageCountAbove","pageCountBelow","viewPortHeight","visibleViews","spineItems","pv","openPageRequest","includeSpineItem","spineIdref","AudioPlayer","MediaOverlayElementHighlighter","ScrollView","playPar","parSmil","_smilIterator","playCurrentPar","initBlankPagePlayer","resetBlankPage","_blankPagePlayer","audioCurrentTime","onAudioPositionChanged","clipEnd","_wasPlayingScrolling","_audioPlayer","resetTTS","resetEmbedded","dur","clipBegin","clipBeginOffset","audioContentRef","audioSource","_package","resolveRelativeUrlMO","_currentEmbedded","onEmbeddedEnd","_embeddedIsPlaying","_currentTTS","speakStart","_elementHighlighter","highlightCurrentElement","nextSmil","goNext","media_overlay","getNextSmil","getPreviousSmil","openContentUrl","skipping","_skipAudioEnded","parFrom","DIRECTION_MARK","doNotNextSmil","_autoNextSmil","spineItemIdRef","_lastPaginationData","_wasPausedBecauseNoAutoNextSmil","_settings","isSkippable","epubtype","scopeTo","scopeFrom","hasAncestor","landed","backup","innerPar","ensureTTSStyle","$ttsStyle","playPosition","smilIndex","smilIterator","parIndex","_timerTick","_ttsIsPlaying","_enableHTMLSpeech","speechSynthesis","_SpeechSynthesisUtterance","TOKENIZE_TTS","onSettingsApplied","_wasPlayingAtDocLoadStart","onDocLoadStart","onPageChanged","paginationData","wasPausedBecauseNoAutoNextSmil","wasPlayingAtDocLoadStart","rtl","wasPlaying","elementIdResolved","toggleMediaOverlayRefresh","moData","parToPlay","iPar","noReverseData","notSameTargetID","tokeniseTTS","BLOCK_DELIMITERS","BOUNDARY_PUNCTUATION","flush","word","spanMap","markup","wordStart","wordEnd","innerHTML_tts","lastCharIndex","innerHTML_original","inTag","blockCheck","txt","cancelTTS","pending","updateTTS","SpeechSynthesisUtterance","tokenData","onboundary","charIndex","tokenised","spanNew","onend","doEnd","forceSkipEnd","onTTSEnd","paused","speaking","pitch","speak","resume","curPar","tts","speakStop","isEscapable","nextMediaOverlay","findFirstPar","smilNode","inPar","firstPar","nextOrPreviousMediaOverlay","previousMediaOverlay","mediaOverlaysOpenContentUrl","contentRefUrl","playingPar","foundMe","depthFirstTraversal","zPar","isPlayingCfi","setAutomaticNextSmil","autoNext","epubPackage","spineDTO","_handleLinear","isValidIndex","lookForPrevValidItem","lookForNextValidItem","handleLinear","getItemUrl","isFirstItem","isLastItem","href1_","href1","href2_","isFirstPageInSpread","baseSide","Smil","SmilNode","TimeContainerNode","userEscapables","smilModel","escapables","userSkippables","skippables","MediaNode","SeqNode","durationMilliseconds","smilData","manifestItemId","clipDurationMilliseconds","clipOffset","clipDur","parallelAt","timeMilliseconds","timeAdjusted","para","nthParallel","ParNode","includeSelf","TextNode","updateMediaManifestItemId","ref","full","AudioNode","MAX","_clipBeginMilliseconds","_clipEndMilliseconds","SmilModel","durationMilliseconds_Calculated","_epubtypeSyncs","hasSync","addSync","epubtypes","fromSmilDTO","smilDTO","indent","getIndent","smilVersion","safeCopyProperty","isRequired","createNodeFromDTO","nodeDTO","copyChildren","fakeAudio","MediaOverlay","packageModel","percentToPosition","milliseconds","timeMs","smilDataPar","smilDataOffset","smilAt","positionToPercent","narrator","fromDTO","moDTO","rootUrl","rootUrlMO","rendering_layout","Spine","PackageData","packageData","relativeUrl","relativeUrlUri","packageMetadata","title","author","publisher","language","rights","modifiedDate","publishedDate","epubVersion","modified_date","pubdate","epub_version","getPageOffset","_paginationInfo","pageOffset","renderIframe","$bookFrame","_navigationLogic","_cfiClassBlacklist","_cfiElementBlacklist","_cfiIdBlacklist","currentPageIndex","_isWaitingFrameRender","_fontSelection","_fontSize","updateColumnGap","_$htmlBody","_htmlBodyIsVerticalWritingMode","_htmlBodyIsLTRDirection","_htmlBodyIsLTRWritingMode","htmlBodyComputedStyle","writingMode","webkitWritingMode","mozWritingMode","msWritingMode","oWritingMode","epubWritingMode","hideBook","updateViewportSize","_lastViewPortSize","resizeImages","openDeferredElement","deferredData","_openPageInternal","firstPageIndex","lastPageIndex","offsetVal","ltr","showBook","newWidth","newHeight","onPaginationChanged_","_lastPageRequest","updatePagination_","MAXW","MINW","isDoublePageSyntheticSpread","forced","borderLeft","adjustedGapLeft","borderRight","adjustedGapRight","availableWidth","textWidth","filler","eachPageColumnReduction","resultingColumnWidth","dim","scrollWidth","totalGaps","colWidthCheck","spreadCount","updatePagination","_currentOpacity","getOpenPageIndexes","indexes","currentPage","$elem","_lastVisibleCfi","nextSpineItem","pageIndexes","$elementFromCfi","setDeclarations","Style","_styles","addStyle","removeStyle","resetStyleValues","Switches","dom","isSupported","caseNode","ns","supportedNamespaces","getQuery","elementName","switchNode","defaultNode","Trigger","domNode","action","subscribe","execute","$target","muted","NodeRangePositionInfo","setStartInfo","setEndInfo","appendMetaTag","_document","injectDublinCoreResourceIdentifiers","renditionIdentifier","metadata","spineItemIdentifier","determineCanonicalLinkHref","getContentDocumentCanonicalLink","contentDocWindow","parentWindowCanonicalHref","injectAppUrlAsCanonicalLink","canonicalLinkHref","contentDocumentStates","canonicalLinkElement","bindBringIntoViewEvent","bringIntoViewDebounced","bindSelectionPopupWorkaround","getSelection","isCollapsed","contentDocuments","contentDocumentState","isUpdated","pendingNavRequest","bindToContentDocument","updateContentDocument","FixedView","IFrameLoader","InternalLinksSupport","MediaOverlayDataInjector","MediaOverlayPlayer","Package","Metadata","ReflowableView","StyleCollection","NodeRangeInfo","ExternalAgentSupport","ReaderView","deduceDesiredViewType","VIEW_TYPE_SCROLLED_DOC","VIEW_TYPE_SCROLLED_CONTINUOUS","VIEW_TYPE_FIXED","VIEW_TYPE_COLUMNIZED","initViewForItem","desiredViewType","_currentView","getCurrentViewType","resetCurrentView","viewCreationParams","createViewForType","_mediaOverlayDataInjector","_internalLinksSupport","_externalAgentSupport","pageChangeData","_mediaOverlayPlayer","onMediaPlayerStatusChanged","getSpineItem","isViewChanged","doNotUpdateView","handleViewportResizeStart","_resizeBookmark","_resizeMOWasPlaying","handleViewportResizeTick","handleViewportResize","handleViewportResizeEnd","_metadata","lazyResize","mathJaxUrl","_needsFixedLayoutScalerWorkAround","viewType","createdView","getCurrentView","openBook","openBookData","updateSettings","pageRequestData","openSpineItemPage","pageOpenRequest","openPageLeft","openPageRight","isCurrentViewFixedLayout","bookMark","debugBookmarkData","pageData","openPageIndex","setBookStyles","hrefPart","combinedPath","hashIndex","decodedHrefPart","cfiFirst","cfiLast","bookmark","clearStyles","clearBookStyles","escapeMediaOverlay","ttsEndedMediaOverlay","bookmarkToRestore","BackgroundAudioTrackManager","readerView","_spineItemIframeMap","_wasPlaying","_callback_playPause","setCallback_PlayPause","_callback_isAvailable","setCallback_IsAvailable","playPause","doPlay","_playPause","$audios","setPlayState","isActive","isDisplayed","allSame","needUpdate","backgroundAudioTrackManager","spines","startCfi","endCfi","isSamePort","protocol1","port1","protocol2","port2","fs","Cc","Ci","xpcIsWindows","progIds","xmlRegExp","bodyRegExp","hasLocation","defaultProtocol","defaultHostName","defaultPort","buildMap","masterConfig","strip","jsEscape","createXhr","progId","ActiveXObject","parseName","modName","ext","isRelative","moduleName","xdRegExp","useXhr","uProtocol","uHostName","uPort","finishLoad","onLoad","isBuild","inlineText","nonStripName","toUrl","pluginName","asModule","writeFile","extPart","textWrite","env","versions","nodeRequire","errback","readFileSync","onXhr","onXhrComplete","Packages","java","stringBuffer","io","lineSeparator","System","getProperty","BufferedReader","InputStreamReader","FileInputStream","StringBuffer","readLine","Components","interfaces","utils","inStream","convertStream","fileObj","readData","FileUtils","createInstance","nsIFileInputStream","nsIConverterInputStream","available","DEFAULT_REPLACEMENT_CHARACTER","readString","parseXml","xmlString","parseMarkup","markupString","_instance","ContentTypeDiscovery","suffixContentTypeMap","epub","gif","jpg","jpeg","ncx","opf","png","svg","xhtml","identifyContentTypeFromFileName","contentUrl","contentUrlSuffix","identifyContentType","parentFetcher","fetchFileContents","pathRelativeToPackageRoot","readCallback","fileUrl","resolveURI","loadEvent","ebookURL_filepath","getEbookURL","getEbookURL_FilePath","pathRelativeToPackageRootUri","fetchFileContentsText","fetchCallback","fetchFileContentsBlob","decryptionFunction","getDecryptionFunctionForRelativePath","origFetchCallback","unencryptedBlob","decryptedBlob","contentsArrayBuffer","blob","Crc32","crc","NOOP","blobSlice","webkitSlice","mozSlice","msSlice","getDataHelper","byteLength","bytes","dataBuffer","dataArray","ArrayBuffer","Uint8Array","buffer","DataView","Reader","TextReader","TEXT_PLAIN","blobReader","BlobReader","readUint8Array","Data64URIReader","dataURI","dataEnd","dataStart","atob","FileReader","readAsArrayBuffer","Writer","TextWriter","encoding","writeUint8Array","appendABViewSupported","readAsText","Data64URIWriter","dataString","btoa","BlobWriter","launchWorkerProcess","worker","initialMessage","writer","onprogress","onreaderror","onwriteerror","onflush","onmessage","outputSize","codecTime","crcTime","loaded","chunkIndex","CHUNK_SIZE","launchProcess","crcType","outputData","inputData","crcOutput","crcInput","inflate","computeCrc32","useWebWorkers","codecClass","Inflater","deflate","level","Deflater","decodeASCII","extendedASCII","decodeUTF8","getString","getDate","timeRaw","date","readCommonHeader","centralDirectory","getUint16","bitFlag","compressionMethod","lastModDateRaw","getUint32","lastModDate","ERR_ENCRYPTED","crc32","compressedSize","uncompressedSize","ERR_ZIP64","filenameLength","extraFieldLength","createZipReader","Entry","seekEOCDR","eocdrCallback","doSeek","eocdrNotFoundCallback","EOCDR_MIN","ERR_READ","ERR_BAD_FORMAT","EOCDR_MAX","inflateSN","checkCrc32","testCrc32","dataCrc32","setUint32","getWriterData","ERR_CRC","ERR_READ_DATA","ERR_WRITE_DATA","dataOffset","_worker","zipReader","getEntries","dataView","datalength","fileslength","comment","commentLength","getUint8","subarray","terminate","createWorker","encodeUTF8","getBytes","createZipWriter","dontDeflate","ERR_WRITE","files","filenames","deflateSN","zipWriter","writeHeader","headerArray","setUint8","setUint16","getHours","getMinutes","getSeconds","getFullYear","getMonth","writeFooter","compressedLength","footer","ERR_DUPLICATED_NAME","indexFilename","resolveURLs","urls","errorHandler","workerScripts","workerScriptsPath","DEFAULT_WORKER_SCRIPTS","Worker","onerror_default","table","deflater","inflater","createReader","createWriter","application","andrew-inset","annodex","atom+xml","atomcat+xml","atomserv+xml","bbolin","cap","cu-seeme","davmount+xml","dsptype","ecmascript","futuresplash","hta","java-archive","java-serialized-object","java-vm","javascript","m3g","mac-binhex40","mathematica","msaccess","msword","mxf","oda","ogg","pdf","pgp-keys","pgp-signature","pics-rules","postscript","rar","rdf+xml","rss+xml","rtf","xhtml+xml","xspf+xml","vnd.android.package-archive","vnd.cinderella","vnd.google-earth.kml+xml","vnd.google-earth.kmz","vnd.mozilla.xul+xml","vnd.ms-excel","vnd.ms-pki.seccat","vnd.ms-pki.stl","vnd.ms-powerpoint","vnd.oasis.opendocument.chart","vnd.oasis.opendocument.database","vnd.oasis.opendocument.formula","vnd.oasis.opendocument.graphics","vnd.oasis.opendocument.graphics-template","vnd.oasis.opendocument.image","vnd.oasis.opendocument.presentation","vnd.oasis.opendocument.presentation-template","vnd.oasis.opendocument.spreadsheet","vnd.oasis.opendocument.spreadsheet-template","vnd.oasis.opendocument.text","vnd.oasis.opendocument.text-master","vnd.oasis.opendocument.text-template","vnd.oasis.opendocument.text-web","vnd.openxmlformats-officedocument.spreadsheetml.sheet","vnd.openxmlformats-officedocument.spreadsheetml.template","vnd.openxmlformats-officedocument.presentationml.presentation","vnd.openxmlformats-officedocument.presentationml.slideshow","vnd.openxmlformats-officedocument.presentationml.template","vnd.openxmlformats-officedocument.wordprocessingml.document","vnd.openxmlformats-officedocument.wordprocessingml.template","vnd.smaf","vnd.stardivision.calc","vnd.stardivision.chart","vnd.stardivision.draw","vnd.stardivision.impress","vnd.stardivision.math","vnd.stardivision.writer","vnd.stardivision.writer-global","vnd.sun.xml.calc","vnd.sun.xml.calc.template","vnd.sun.xml.draw","vnd.sun.xml.draw.template","vnd.sun.xml.impress","vnd.sun.xml.impress.template","vnd.sun.xml.math","vnd.sun.xml.writer","vnd.sun.xml.writer.global","vnd.sun.xml.writer.template","vnd.symbian.install","vnd.visio","vnd.wap.wbxml","vnd.wap.wmlc","vnd.wap.wmlscriptc","vnd.wordperfect","vnd.wordperfect5.1","x-123","x-7z-compressed","x-abiword","x-apple-diskimage","x-bcpio","x-bittorrent","x-cbr","x-cbz","x-cdf","x-cdlink","x-chess-pgn","x-cpio","x-csh","x-debian-package","x-director","x-dms","x-doom","x-dvi","x-httpd-eruby","x-font","x-freemind","x-gnumeric","x-go-sgf","x-graphing-calculator","x-gtar","x-hdf","x-httpd-php","x-httpd-php-source","x-httpd-php3","x-httpd-php3-preprocessed","x-httpd-php4","x-httpd-php5","x-ica","x-info","x-internet-signup","x-iphone","x-iso9660-image","x-java-jnlp-file","x-jmol","x-killustrator","x-koan","x-kpresenter","x-kword","x-latex","x-lha","x-lyx","x-lzh","x-lzx","x-maker","x-ms-wmd","x-ms-wmz","x-msdos-program","x-msi","x-netcdf","x-ns-proxy-autoconfig","x-nwc","x-object","x-oz-application","x-pkcs7-certreqresp","x-python-code","x-qgis","x-quicktimeplayer","x-redhat-package-manager","x-ruby","x-sh","x-shar","x-shockwave-flash","x-silverlight","x-stuffit","x-sv4cpio","x-sv4crc","x-tar","x-tcl","x-tex-gf","x-tex-pk","x-texinfo","x-trash","x-troff","x-troff-man","x-troff-me","x-troff-ms","x-ustar","x-wais-source","x-wingz","x-x509-ca-cert","x-xcf","x-xfig","x-xpinstall","applixware","atomsvc+xml","ccxml+xml","cdmi-capability","cdmi-container","cdmi-domain","cdmi-object","cdmi-queue","docbook+xml","dssc+der","dssc+xml","emma+xml","epub+zip","exi","font-tdpfr","gml+xml","gpx+xml","gxf","hyperstudio","inkml+xml","ipfix","jsonml+json","lost+xml","mads+xml","marc","marcxml+xml","mathml+xml","mbox","mediaservercontrol+xml","metalink+xml","metalink4+xml","mets+xml","mods+xml","mp21","mp4","oebps-package+xml","omdoc+xml","onenote","oxps","patch-ops-error+xml","pgp-encrypted","pkcs10","pkcs7-mime","pkcs7-signature","pkcs8","pkix-attr-cert","pkix-crl","pkix-pkipath","pkixcmp","pls+xml","prs.cww","pskc+xml","reginfo+xml","relax-ng-compact-syntax","resource-lists+xml","resource-lists-diff+xml","rls-services+xml","rpki-ghostbusters","rpki-manifest","rpki-roa","rsd+xml","sbml+xml","scvp-cv-request","scvp-cv-response","scvp-vp-request","scvp-vp-response","sdp","set-payment-initiation","set-registration-initiation","shf+xml","sparql-query","sparql-results+xml","srgs","srgs+xml","sru+xml","ssdl+xml","ssml+xml","tei+xml","thraud+xml","timestamped-data","vnd.3gpp.pic-bw-large","vnd.3gpp.pic-bw-small","vnd.3gpp.pic-bw-var","vnd.3gpp2.tcap","vnd.3m.post-it-notes","vnd.accpac.simply.aso","vnd.accpac.simply.imp","vnd.acucobol","vnd.acucorp","vnd.adobe.air-application-installer-package+zip","vnd.adobe.formscentral.fcdt","vnd.adobe.fxp","vnd.adobe.xdp+xml","vnd.adobe.xfdf","vnd.ahead.space","vnd.airzip.filesecure.azf","vnd.airzip.filesecure.azs","vnd.amazon.ebook","vnd.americandynamics.acc","vnd.amiga.ami","vnd.anser-web-certificate-issue-initiation","vnd.anser-web-funds-transfer-initiation","vnd.antix.game-component","vnd.apple.installer+xml","vnd.apple.mpegurl","vnd.aristanetworks.swi","vnd.astraea-software.iota","vnd.audiograph","vnd.blueice.multipass","vnd.bmi","vnd.businessobjects","vnd.chemdraw+xml","vnd.chipnuts.karaoke-mmd","vnd.claymore","vnd.cloanto.rp9","vnd.clonk.c4group","vnd.cluetrust.cartomobile-config","vnd.cluetrust.cartomobile-config-pkg","vnd.commonspace","vnd.contact.cmsg","vnd.cosmocaller","vnd.crick.clicker","vnd.crick.clicker.keyboard","vnd.crick.clicker.palette","vnd.crick.clicker.template","vnd.crick.clicker.wordbank","vnd.criticaltools.wbs+xml","vnd.ctc-posml","vnd.cups-ppd","vnd.curl.car","vnd.curl.pcurl","vnd.dart","vnd.data-vision.rdz","vnd.dece.data","vnd.dece.ttml+xml","vnd.dece.unspecified","vnd.dece.zip","vnd.denovo.fcselayout-link","vnd.dna","vnd.dolby.mlp","vnd.dpgraph","vnd.dreamfactory","vnd.ds-keypoint","vnd.dvb.ait","vnd.dvb.service","vnd.dynageo","vnd.ecowin.chart","vnd.enliven","vnd.epson.esf","vnd.epson.msf","vnd.epson.quickanime","vnd.epson.salt","vnd.epson.ssf","vnd.eszigno3+xml","vnd.ezpix-album","vnd.ezpix-package","vnd.fdf","vnd.fdsn.mseed","vnd.fdsn.seed","vnd.flographit","vnd.fluxtime.clip","vnd.framemaker","vnd.frogans.fnc","vnd.frogans.ltf","vnd.fsc.weblaunch","vnd.fujitsu.oasys","vnd.fujitsu.oasys2","vnd.fujitsu.oasys3","vnd.fujitsu.oasysgp","vnd.fujitsu.oasysprs","vnd.fujixerox.ddd","vnd.fujixerox.docuworks","vnd.fujixerox.docuworks.binder","vnd.fuzzysheet","vnd.genomatix.tuxedo","vnd.geogebra.file","vnd.geogebra.tool","vnd.geometry-explorer","vnd.geonext","vnd.geoplan","vnd.geospace","vnd.gmx","vnd.grafeq","vnd.groove-account","vnd.groove-help","vnd.groove-identity-message","vnd.groove-injector","vnd.groove-tool-message","vnd.groove-tool-template","vnd.groove-vcard","vnd.hal+xml","vnd.handheld-entertainment+xml","vnd.hbci","vnd.hhe.lesson-player","vnd.hp-hpgl","vnd.hp-hpid","vnd.hp-hps","vnd.hp-jlyt","vnd.hp-pcl","vnd.hp-pclxl","vnd.hydrostatix.sof-data","vnd.ibm.minipay","vnd.ibm.modcap","vnd.ibm.rights-management","vnd.ibm.secure-container","vnd.iccprofile","vnd.igloader","vnd.immervision-ivp","vnd.immervision-ivu","vnd.insors.igm","vnd.intercon.formnet","vnd.intergeo","vnd.intu.qbo","vnd.intu.qfx","vnd.ipunplugged.rcprofile","vnd.irepository.package+xml","vnd.is-xpr","vnd.isac.fcs","vnd.jam","vnd.jcp.javame.midlet-rms","vnd.jisp","vnd.joost.joda-archive","vnd.kahootz","vnd.kde.karbon","vnd.kde.kchart","vnd.kde.kformula","vnd.kde.kivio","vnd.kde.kontour","vnd.kde.kpresenter","vnd.kde.kspread","vnd.kde.kword","vnd.kenameaapp","vnd.kidspiration","vnd.kinar","vnd.koan","vnd.kodak-descriptor","vnd.las.las+xml","vnd.llamagraphics.life-balance.desktop","vnd.llamagraphics.life-balance.exchange+xml","vnd.lotus-1-2-3","vnd.lotus-approach","vnd.lotus-freelance","vnd.lotus-notes","vnd.lotus-organizer","vnd.lotus-screencam","vnd.lotus-wordpro","vnd.macports.portpkg","vnd.mcd","vnd.medcalcdata","vnd.mediastation.cdkey","vnd.mfer","vnd.mfmp","vnd.micrografx.flo","vnd.micrografx.igx","vnd.mif","vnd.mobius.daf","vnd.mobius.dis","vnd.mobius.mbk","vnd.mobius.mqy","vnd.mobius.msl","vnd.mobius.plc","vnd.mobius.txf","vnd.mophun.application","vnd.mophun.certificate","vnd.ms-artgalry","vnd.ms-cab-compressed","vnd.ms-excel.addin.macroenabled.12","vnd.ms-excel.sheet.binary.macroenabled.12","vnd.ms-excel.sheet.macroenabled.12","vnd.ms-excel.template.macroenabled.12","vnd.ms-fontobject","vnd.ms-htmlhelp","vnd.ms-ims","vnd.ms-lrm","vnd.ms-officetheme","vnd.ms-powerpoint.addin.macroenabled.12","vnd.ms-powerpoint.presentation.macroenabled.12","vnd.ms-powerpoint.slide.macroenabled.12","vnd.ms-powerpoint.slideshow.macroenabled.12","vnd.ms-powerpoint.template.macroenabled.12","vnd.ms-project","vnd.ms-word.document.macroenabled.12","vnd.ms-word.template.macroenabled.12","vnd.ms-works","vnd.ms-wpl","vnd.ms-xpsdocument","vnd.mseq","vnd.musician","vnd.muvee.style","vnd.mynfc","vnd.neurolanguage.nlu","vnd.nitf","vnd.noblenet-directory","vnd.noblenet-sealer","vnd.noblenet-web","vnd.nokia.n-gage.data","vnd.nokia.n-gage.symbian.install","vnd.nokia.radio-preset","vnd.nokia.radio-presets","vnd.novadigm.edm","vnd.novadigm.edx","vnd.novadigm.ext","vnd.oasis.opendocument.chart-template","vnd.oasis.opendocument.formula-template","vnd.oasis.opendocument.image-template","vnd.olpc-sugar","vnd.oma.dd2+xml","vnd.openofficeorg.extension","vnd.openxmlformats-officedocument.presentationml.slide","vnd.osgeo.mapguide.package","vnd.osgi.dp","vnd.osgi.subsystem","vnd.palm","vnd.pawaafile","vnd.pg.format","vnd.pg.osasli","vnd.picsel","vnd.pmi.widget","vnd.pocketlearn","vnd.powerbuilder6","vnd.previewsystems.box","vnd.proteus.magazine","vnd.publishare-delta-tree","vnd.pvi.ptid1","vnd.quark.quarkxpress","vnd.realvnc.bed","vnd.recordare.musicxml","vnd.recordare.musicxml+xml","vnd.rig.cryptonote","vnd.rn-realmedia","vnd.rn-realmedia-vbr","vnd.route66.link66+xml","vnd.sailingtracker.track","vnd.seemail","vnd.sema","vnd.semd","vnd.semf","vnd.shana.informed.formdata","vnd.shana.informed.formtemplate","vnd.shana.informed.interchange","vnd.shana.informed.package","vnd.simtech-mindmapper","vnd.smart.teacher","vnd.solent.sdkm+xml","vnd.spotfire.dxp","vnd.spotfire.sfs","vnd.stepmania.package","vnd.stepmania.stepchart","vnd.sus-calendar","vnd.svd","vnd.syncml+xml","vnd.syncml.dm+wbxml","vnd.syncml.dm+xml","vnd.tao.intent-module-archive","vnd.tcpdump.pcap","vnd.tmobile-livetv","vnd.trid.tpt","vnd.triscape.mxs","vnd.trueapp","vnd.ufdl","vnd.uiq.theme","vnd.umajin","vnd.unity","vnd.uoml+xml","vnd.vcx","vnd.visionary","vnd.vsf","vnd.webturbo","vnd.wolfram.player","vnd.wqd","vnd.wt.stf","vnd.xara","vnd.xfdl","vnd.yamaha.hv-dic","vnd.yamaha.hv-script","vnd.yamaha.hv-voice","vnd.yamaha.openscoreformat","vnd.yamaha.openscoreformat.osfpvg+xml","vnd.yamaha.smaf-audio","vnd.yamaha.smaf-phrase","vnd.yellowriver-custom-menu","vnd.zul","vnd.zzazz.deck+xml","voicexml+xml","widget","winhlp","wsdl+xml","wspolicy+xml","x-ace-compressed","x-authorware-bin","x-authorware-map","x-authorware-seg","x-blorb","x-bzip","x-bzip2","x-cfs-compressed","x-chat","x-conference","x-dgc-compressed","x-dtbncx+xml","x-dtbook+xml","x-dtbresource+xml","x-eva","x-font-bdf","x-font-ghostscript","x-font-linux-psf","x-font-otf","x-font-pcf","x-font-snf","x-font-ttf","x-font-type1","x-font-woff","x-freearc","x-gca-compressed","x-glulx","x-gramps-xml","x-install-instructions","x-lzh-compressed","x-mie","x-mobipocket-ebook","x-ms-application","x-ms-shortcut","x-ms-xbap","x-msbinder","x-mscardfile","x-msclip","x-msdownload","x-msmediaview","x-msmetafile","x-msmoney","x-mspublisher","x-msschedule","x-msterminal","x-mswrite","x-nzb","x-pkcs12","x-pkcs7-certificates","x-research-info-systems","x-silverlight-app","x-sql","x-stuffitx","x-subrip","x-t3vm-image","x-tads","x-tex","x-tex-tfm","x-tgif","x-xliff+xml","x-xz","x-zmachine","xaml+xml","xcap-diff+xml","xenc+xml","xml-dtd","xop+xml","xproc+xml","xslt+xml","xv+xml","yang","yin+xml","envoy","fractals","internet-property-stream","olescript","vnd.ms-outlook","vnd.ms-pkicertstore","x-compress","x-compressed","x-gzip","x-perfmon","x-pkcs7-mime","ynd.ms-pkipko","amr","amr-wb","flac","midi","mpeg","mpegurl","prs.sid","x-aiff","x-gsm","x-ms-wma","x-ms-wax","x-pn-realaudio","x-realaudio","x-sd2","x-wav","adpcm","s3m","silk","vnd.dece.audio","vnd.digital-winds","vnd.dra","vnd.dts","vnd.dts.hd","vnd.lucent.voice","vnd.ms-playready.media.pya","vnd.nuera.ecelp4800","vnd.nuera.ecelp7470","vnd.nuera.ecelp9600","vnd.rip","webm","x-aac","x-caf","x-matroska","x-pn-realaudio-plugin","xm","chemical","x-alchemy","x-cache","x-cache-csf","x-cactvs-binary","x-cdx","x-chem3d","x-cif","x-cmdf","x-cml","x-compass","x-crossfire","x-csml","x-ctx","x-cxf","x-embl-dl-nucleotide","x-gamess-input","x-gaussian-checkpoint","x-gaussian-cube","x-gaussian-input","x-gaussian-log","x-gcg8-sequence","x-genbank","x-hin","x-isostar","x-jcamp-dx","x-kinemage","x-macmolecule","x-macromodel-input","x-mdl-molfile","x-mdl-rdfile","x-mdl-rxnfile","x-mdl-sdfile","x-mdl-tgf","x-mmcif","x-mol2","x-molconn-Z","x-mopac-graph","x-mopac-input","x-mopac-out","x-ncbi-asn1","x-ncbi-asn1-ascii","x-ncbi-asn1-binary","x-pdb","x-rosdal","x-swissprot","x-vamas-iso14976","x-vmd","x-xtel","x-xyz","ief","pcx","svg+xml","tiff","vnd.djvu","vnd.wap.wbmp","x-canon-cr2","x-canon-crw","x-cmu-raster","x-coreldraw","x-coreldrawpattern","x-coreldrawtemplate","x-corelphotopaint","x-epson-erf","x-icon","x-jg","x-jng","x-nikon-nef","x-olympus-orf","x-photoshop","x-portable-anymap","x-portable-bitmap","x-portable-graymap","x-portable-pixmap","x-rgb","x-xbitmap","x-xpixmap","x-xwindowdump","bmp","cgm","g3fax","ktx","prs.btif","sgi","vnd.dece.graphic","vnd.dwg","vnd.dxf","vnd.fastbidsheet","vnd.fpx","vnd.fst","vnd.fujixerox.edmics-mmr","vnd.fujixerox.edmics-rlc","vnd.ms-modi","vnd.ms-photo","vnd.net-fpx","vnd.xiff","webp","x-3ds","x-cmx","x-freehand","x-pict","x-tga","cis-cod","pipeg","rfc822","model","iges","mesh","vrml","x3d+vrml","x3d+xml","x3d+binary","vnd.collada+xml","vnd.dwf","vnd.gdl","vnd.gtw","vnd.mts","vnd.vtu","cache-manifest","calendar","h323","iuls","mathml","plain","richtext","scriptlet","texmacs","tab-separated-values","vnd.sun.j2me.app-descriptor","vnd.wap.wml","vnd.wap.wmlscript","x-bibtex","x-boo","x-c++hdr","x-c++src","x-component","x-dsrc","x-diff","x-haskell","x-java","x-literate-haskell","x-moc","x-pascal","x-pcs-gcd","x-perl","x-python","x-scala","x-setext","x-vcalendar","x-vcard","n3","prs.lines.tag","sgml","troff","turtle","uri-list","vcard","vnd.curl","vnd.curl.dcurl","vnd.curl.scurl","vnd.curl.mcurl","vnd.dvb.subtitle","vnd.fly","vnd.fmi.flexstor","vnd.graphviz","vnd.in3d.3dml","vnd.in3d.spot","x-asm","x-c","x-fortran","x-opml","x-nfo","x-sfv","x-uuencode","webviewhtml","3gpp","dl","dv","fli","gl","quicktime","vnd.mpegurl","x-flv","x-la-asf","x-mng","x-ms-asf","x-ms-wm","x-ms-wmv","x-ms-wmx","x-ms-wvx","x-msvideo","x-sgi-movie","3gpp2","h261","h263","h264","jpm","mj2","vnd.dece.hd","vnd.dece.mobile","vnd.dece.pd","vnd.dece.sd","vnd.dece.video","vnd.dvb.file","vnd.fvt","vnd.ms-playready.media.pyv","vnd.uvvu.mp4","vnd.vivo","x-f4v","x-m4v","x-ms-vob","x-smv","x-cooltalk","x-world","x-vrml","mimeTypes","subtype","getMimeType","ZipBlobReader","getTotalSize","initReaders","exportZip","totalSize","exportChild","childIndex","getFullname","currentIndex","zipVersion","addFileEntry","zipEntry","fileEntry","getChildren","isDirectory","directoryReader","readEntries","temporaryEntries","isFile","addChild","nextChild","childFileEntry","processChild","addDirectory","childZipEntry","addBlob","getFileEntry","getDirectory","getFile","FileWriter","resetFS","ZipDirectoryEntry","bufferedCopy","stepCopy","ZipFileEntry","ZipEntry","FS","getChildByName","moveTo","isDescendantOf","fullname","ancestor","ZipFileEntryProto","getBlob","getData64URI","ZipDirectoryEntryProto","addText","addData64URI","addData","importBlob","importZip","importText","importData64URI","exportBlob","exportText","exportFileEntry","exportData64URI","pathPart","isHttpFamily","HttpReader","request","HttpRangeReader","readArrayBuffer","arraybuffer","ArrayBufferReader","arrayBuffer","ArrayBufferWriter","tmpArray","fileWriter","onwrite","addHttpContent","useRangeHeader","importHttpContent","libDir","withZipFsPerform","_zipFs","relativePathRelativeToPackageRoot","zipFs","READIUM_ERROR_PREFIX","fetchFileContentsData64Uri","publicationFetcher","publicationResourcesCache","contentDocumentTextPreprocessor","setBaseUri","documentDom","baseElem","fetchResourceForElement","resolvedElem","refAttrOrigVal","refAttr","fetchMode","resolutionDeferreds","resourceDataPreprocessing","replaceRefAttrInElem","newResourceUrl","contentDocumentPathRelativeToBase","_publicationFetcher","convertPathRelativeToPackageToRelativeToBase","_contentDocumentPathRelativeToPackage","resourceUriRelativeToBase","cachedResourceUrl","_publicationResourcesCache","getResourceURL","resolutionDeferred","relativeToPackageFetchFileContents","resourceData","replaceResourceURL","finalResourceData","textResourceContentType","declaredType","resourceObjectURL","createObjectURL","putResource","fetchResourceForCssUrlMatch","cssUrlMatch","cssResourceDownloadDeferreds","styleSheetUriRelativeToPackageDocument","stylesheetCssResourceUrlsMap","isStyleSheetResource","origMatchedUrlString","extractedUrlCandidates","extractedUrl","matchGroup","styleSheetUriRelativeToBase","cachedResourceURL","cssUrlFetchDeferred","processedBlobCallback","resourceDataBlob","fetchErrorCallback","styleSheetResourceData","preprocessCssStyleSheetData","preprocessedStyleSheetData","cssUrlRegexp","nonUrlCssImportRegexp","processingRegexp","processedUrlString","processedResourceDescriptor","origMatchedUrlStringEscaped","origMatchedUrlStringRegExp","resolveResourceElements","elemName","_contentDocumentDom","resolveDocumentImages","resolveDocumentAudios","resolveDocumentVideos","resolveDocumentScripts","resolveDocumentLinkStylesheets","resolveDocumentEmbeddedStylesheets","resolvedStylesheetData","_contentDocumentText","_srcMediaType","_contentDocumentTextPreprocessor","fetchContentDocumentAndResolveDom","contentDocumentResolvedCallback","contentDocumentText","resolveInternalPackageResources","resolvedDocumentCallback","markupParser","shouldFetchMediaAssetsProgrammatically","sourceWindow","configuredCacheSizeEvictThreshold","getTimestamp","getBrowserHeapLimitInBytes","jsHeapSizeLimit","removeCacheEntryFromOrderedIndex","cacheEntry","orderingByLastUseTimestampIdx","_orderingByLastUseTimestamp","downshiftedEntry","absoluteHref","updateOrderedIndex","insertIdx","_resourcesHash","_cacheSize","CACHE_SIZE_EVICT_THRESHOLD_DEFAULT","cacheSizeEvictThreshold","browserHeapLimitInBytes","resourceAbsoluteHref","resourceObjectUrl","lastUseTimestamp","trimCache","currentTimestamp","blobSize","creationTimestamp","pinned","evictResource","revokeObjectURL","flushCache","unPinResources","CryptoJS","C_lib","lib","Base","overrides","mixIn","$super","propertyName","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","nBytes","rcache","_r","m_w","m_z","mask","C_enc","enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","_nDataBytes","_append","_process","doFlush","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","_doProcessBlock","processedWords","C_algo","Hasher","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","W","SHA1","_hash","H","nBitsTotal","nBitsLeft","HmacSHA1","CryptoJS_SHA1","EncryptionHandler","encryptionData","blob2BinArray","fileReader","xorObfuscatedBlob","obfuscatedResourceBlob","prefixLength","xorKey","masklen","deobfuscatedPrefixBlob","remainderBlob","deobfuscatedBlob","embeddedFontDeobfuscateIdpf","uidHash","urnUuidToByteArray","uuidRegexp","matchResults","rawUuid","byteArray","byteHex","byteNumber","embeddedFontDeobfuscateAdobe","ENCRYPTION_METHODS","http://www.idpf.org/2008/embedding","http://ns.adobe.com/pdf/enc#RC","isEncryptionSpecified","encryptions","getEncryptionMethodForRelativePath","pathRelativeToRoot","encryptionMethod","CreateEncryptionData","encryptionDom","sha","encryptedData","encryptionAlgorithm","CipherReference","cipherReferenceURI","MarkupParser","PlainResourceFetcher","ZipResourceFetcher","ContentDocumentFetcher","ResourceCache","jsLibRoot","isExploded","_contentType","uriTrimmed","createResourceFetcher","_resourceFetcher","contentTypePackageReadStrategyMap","application/oebps-package+xml","application/epub+zip","application/zip","_shouldConstructDomProgrammatically","_encryptionHandler","_packageFullPath","_packageDocumentAbsoluteUrl","_packageDom","_packageDomInitializationDeferred","isEpubExploded","resourceFetcher","getPackageDom","shouldConstructDomProgrammatically","getJsLibRoot","getPackageUrl","getPackageFullPathRelativeToBase","fetchContentDocument","getFileContentsFromPackage","filePathRelativeToPackageRoot","fileContents","getXmlFileDom","xmlFilePathRelativeToPackageRoot","xmlFileContents","fileDom","getPackageFullPath","containerXmlDom","packageFullPath","getRootFile","relativeToPackagePath","pathRelativeToEpubRoot","optionalFetch","fetchFunction","getRelativeXmlFileDom","filePath","setPackageMetadata","settingFinishedCallback","epubCFI","packageDocumentURL","packageDocumentDOM","manifest","getNcxOrderedList","$navMapDOM","$ol","navPoint","addNavPointElements","$navPointDOM","navText","navHref","$navPointLi","$newLi","$newOl","navIndex","_page_prog_dir","getSharedJsPackageData","getPageProgressionDirection","getSpineItemIdrefFromCFI","packageCFI","$spineItemElement","setPageProgressionDirection","page_prog_dir","spineLength","getMetadata","getTocItem","getNavItem","spine_id","getManifestItemByIdref","getToc","getTocText","toc","tocDocumentText","getTocDom","tocText","tocDom","generateTocListDOM","tocIsNcx","$ncxOrderedList","packageDocumentAbsoluteURL","tocDocumentAbsoluteURL","newBaseTag","tocItem","contentDocURI","SmilDocumentParser","makeFakeSmilJson","manifestItemSMIL","smilJson","xmlDom","mediaItem","getMediaItemByRefinesId","fetchError","fromNode","toItem","propParse","destProperty","elementIndex","currElement","createItemFromElement","isBody","srcParts","resolveClockValue","fillSmilData","allFakeSmil","mo_map","parsingDeferreds","spineIdx","parsingDeferred","myDeferred","parseError","setMoMap","hours","mins","secs","ms","_mediaItemIndexByRefinesId","eachMediaItem","iteratorCallback","mediaItems","mediaOverlaysMap","refines","manifestJson","_navItem","_manifestIndexById","manifestLength","manifestItem","PackageDocument","Manifest","updateMetadataWithIBookProperties","dff","ibookPropText","propModel","fixLayoutProp","getJsonSpine","$spineElements","jsonSpine","findXmlElemByLocalNameAnyNS","spineElementIndex","currSpineElement","$currSpineElement","viewport","rendition_viewports","vp","manifest_id","parsedProperties","parsePropertiesString","rootElement","filterXmlElemsByLocalNameAnyNS","getElemText","getElemAttr","attrName","getMetaElemPropertyText","attrPropertyValue","metadataElem","packageElem","spineElem","hasAttribute","viewports","viewportMetaElems","currItem","overlayElems","getJsonManifest","$manifestItems","jsonManifest","manifestElementIndex","currManifestElement","$currManifestElement","currManifestElementHref","getJsonBindings","$bindings","jsonBindings","bindingElementIndex","currBindingElement","$currBindingElement","binding","getCoverHref","$imageNode","metaNode","contentAttr","allPropStrs","fixed_flow","_xmlDom","_packageFetcher","_deferredXmlDom","cover","cover_href","definition","getFirstMatch","getSecondMatch","iosdevice","likeAndroid","android","nexusMobile","nexusTablet","chromeos","sailfish","tizen","webos","windowsphone","windows","mac","linux","edgeVersion","versionIdentifier","tablet","mobile","xbox","opera","samsungBrowser","whale","mzbrowser","coast","yandexbrowser","ucbrowser","maxthon","epiphany","puffin","sleipnir","kMeleon","osname","msedge","msie","chromeBook","chrome","vivaldi","seamonkey","firefox","firefoxos","phantom","slimer","blackberry","touchpad","bada","qupzilla","chromium","safari","googlebot","webkit","gecko","ios","osVersion","osversion","osMajorVersion","compareVersions","getVersionPrecision","precision","chunks","isUnsupportedBrowser","minVersions","strictMode","_bowser","bowser","browser","browserList","browserItem","_detect","zipIframeLoader","getCurrentResourceFetcher","fetchHtmlAsText","contentDocumentHtml","isIE","basicIframeLoader","caller","frameElement","resolvedContentDocumentDom","_loadIframeWithDocument","outerHTML","contentDocumentData","documentDataUri","chromeIOS","isBlobHandled","BlobBuilder","builder","MSApp","execUnsafeLocalFunction","frames","child_iframe","childSrc","contentDocumentPathRelativeToPackage","refAttrOrigVal_RelativeToBase","refAttrOrigVal_RelativeToPackage","mimetype","childIframeLoader","versionText","PublicationFetcher","PackageParser","IframeZipLoader","IframeLoader","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","Readium","readiumOptions","readerOptions","_options","injectedScript","baseHref","encodeURI","_currentPublicationFetcher","getCurrentPublicationFetcher","useSimpleLoader","openPackageDocument_","openBookOptions","openPackageDocument","thisRootUrl","allResponseHeaders","responseURL","closePackageDocument","getVersion","needsPopulating","nextRepo","repos","repo","timestamp","chromeVersion","getRef","gitFolder","branch","getGit","gitDir","getHead","imagePathPrefix","epubLibraryPath","canHandleUrl","canHandleDirectory","epubReadingSystemUrl","workerUrl","annotationCSSUrl","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","transition","emulateTransitionEnd","called","bsTransitionEnd","$this","Alert","dismiss","TRANSITION_DURATION","removeElement","$parent","alert","Button","setState","DEFAULTS","isLoading","loadingText","resetText","changed","$btn","Carousel","slide","cycle","$indicators","sliding","$active","$items","keyboard","keydown","getItemIndex","getItemForDirection","activeIndex","itemIndex","$next","isCycling","slideEvent","$nextIndicator","slidEvent","carousel","clickHandler","slideIndex","$carousel","getTargetFromTrigger","$trigger","Collapse","transitioning","getParent","addAriaAndCollapsedClass","activesData","actives","startEvent","scrollSize","isOpen","clearMenus","backdrop","Dropdown","dropdown","_relatedTarget","Modal","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","resize","adjustDialog","enforceFocus","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","measureScrollbar","bodyPad","scrollDiv","modal","showEvent","Tooltip","hoverState","inState","placement","getOptions","triggers","eventIn","eventOut","enter","leave","fixTitle","getDefaults","getDelegateOptions","tip","isInStateTrue","inDom","$tip","tipId","getUID","setContent","autoToken","autoPlace","getPosition","actualWidth","actualHeight","orgPlacement","viewportDim","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","marginTop","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","elRect","isSvg","SVGElement","elOffset","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","$arrow","enable","toggleEnabled","destroy","tooltip","Popover","getContent","popover","ScrollSpy","$scrollElement","activeTarget","refresh","getScrollHeight","offsetMethod","offsetBase","$href","maxScroll","activate","scrollspy","$spy","Tab","$ul","$previous","hideEvent","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetBottom","targetHeight","initializing","colliderTop","colliderHeight","getPinnedOffset","affix","affixType","bootstrap","focusable","isTabIndexNotNaN","mapName","dataName","tabbable","isTabIndexNaN","role","modalhide","modalfocus","$content","focEls","$lastEl","$firstEl","$par","firstItem","aria-haspopup","aria-expanded","$toggle","$tablist","$lis","$tabs","tabpanel","tabid","aria-selected","aria-controls","aria-hidden","aria-labelledby","nextTab","tabactivate","colltab","collpanel","collparent","collid","aria-multiselectable","collToggle","prevTab","curTab","prevPanel","$prevPanel","$curPanel","setTablistHighlightBox","$tab","highlightBox","$tablistHighlight","$tabpanel","$pauseCarousel","$complementaryLandmark","$prev","$tabpanels","$is_paused","tpId","tabName","slideCarousel","$id","$tab_count","$prev_side","$next_side","$index","$prev_index","$next_index","selectTab","bootstrapA11y","Spinner","createEl","ins","addAnimation","alpha","trail","lines","z","useCssAnimations","pre","animations","vendor","pp","prefixes","def","getColor","radius","corners","rotate","fps","shadow","hwaccel","spin","ostep","astep","boxShadow","transformOrigin","borderRadius","seg","styleSheet","probe","adj","vml","addRule","grp","coordsize","coordorigin","dx","g","arcsize","_isLocalStorageEnabled","isLocalStorageEnabled","localStorage","setItem","removeItem","Settings","put","getMultiple","retVal","en_US","ja","ko","pt_BR","zh_CN","zh_TW","Strings","userLanguage","i18nStr","i18nObj","i18nObj_en","okay","Hogan","findInScope","scope","doModelGet","createSpecializedPartial","subs","partials","stackSubs","stackPartials","stackText","PartialTemplate","Substitutions","subsText","buf","coerceToString","hoganEscape","hChars","rAmp","rLt","rGt","rApos","rQuot","Template","codeObj","compiler","ri","ep","activeSub","rp","section","tags","returnFound","modelGet","cx","ls","oldTags","delimiters","disableLambda","fl","textSource","cleanTripleStache","tagChange","buildTree","customTags","allowedInSuper","isOpener","isCloser","stringifySubstitutions","esc","stringifyPartials","rSlash","rNewline","rCr","rLineSep","rParagraphSep","chooseMethod","createPartial","serialNo","tripleStache","rIsWhitespace","^","!","=","_v","{","_t","scan","addBuf","lineIsWhitespace","isAllWhitespace","lineStart","filterLine","haveSeenTag","noNewLine","seenTag","tagType","otag","ctag","closeIndex","wrapMain","generate","tree","walk","asString","makeTemplate","makePartials","codegen","inPartial","sectionTags","hogan","tmpl","IMPORT_ZIP","OVERWRITE_CONTINUE","FIND_PACKAGE_RESPONSE","PARSE_PACKAGE_RESPONSE","DELETE_EPUB","IMPORT_DIR","IMPORT_URL","MIGRATE","OVERWRITE_SIDE_BY_SIDE","CONTINUE_IMPORT_ZIP","SUCCESS","PROGRESS","ERROR","OVERWRITE","FIND_PACKAGE","PARSE_PACKAGE","PROGRESS_EXTRACTING","PROGRESS_WRITING","PROGRESS_DELETING","PROGRESS_MIGRATING","ERROR_STORAGE","ERROR_EPUB","ERROR_AJAX","ERROR_PACKAGE_PARSE","READY","ManagedDialog","ProgressDialog","ButtonTemplate","Messages","$currentModal","lastTitle","hideExistingModal","showModalDialog","dismissable","Dialogs","showError","err_unknown","showErrorWithDetails","err_epub_corrupt","err_storage","err_ajax","trace","showModalMessage","err_dlg_title","ok","showModalHTML","showModalMessageEx","showModalPromptEx","buttonsStr","showModalPrompt","okLabel","cancelLabel","onOk","onCancel","showReplaceConfirm","keepBothLabel","onKeepBoth","showModalProgress","i18n_cancel","updateModalProgressTitle","updateProgress","noForce","migrating","i18n_extracting","storing_file","delete_progress_message","closeModal","compareArray","a1","a2","updateModifierKey","_mods","modifierMap","getKeyCode","modifiersMatch","_downKeys","_MODIFIERS","assignKey","_handlers","getScope","mods","cancelBubble","clearModifier","resetModifiers","getKeys","getMods","shortcut","unbindKey","multipleKeys","isPressed","getPressedKeyCodes","srcElement","setScope","_scope","deleteScope","mi","previousKey","16","18","17","91","⇧","⌥","⌃","ctrl","control","⌘","command","_MAP","backspace","return","space","up","down","del","home","pageup","pagedown",",",".","-",";","[","]","keyBindings","crossBrowser_initKeyboardEvent","_initKeyboardEvent_type","createEvent","_prop_name","localDict","_keyboardEvent_properties_dictionary","own","_ctrlKey","_shiftKey","_altKey","_metaKey","_altGraphKey","_modifiersListArg","_char","_location","_keyCode","_charCode","_bubbles","_cancelable","_repeat","_locale","_view","initKeyEvent","initKeyboardEvent","initEvent","_Object_defineProperty","__e__","locale","Keyboard","resetToDefaults","defaultOptions","resetAccessKeys","accesskeys","keyboardShortcut","applySettings","ce","dispatchEvent","i18n","ShowSettingsModal","SettingsModalSave","i18n_save_changes","SettingsModalClose","i18n_close","PagePrevious","i18n_page_previous","PageNext","i18n_page_next","PagePreviousAlt","PageNextAlt","ToolbarShow","i18n_toolbar_show","ToolbarHide","i18n_toolbar_hide","FullScreenToggle","enter_fullscreen","exit_fullscreen","SwitchToLibrary","view_library","TocShowHideToggle","NightTheme","i18n_arabian_nights","MediaOverlaysPlayPause","i18n_audio_play","i18n_audio_pause","MediaOverlaysPrevious","i18n_audio_previous","MediaOverlaysNext","i18n_audio_next","MediaOverlaysEscape","i18n_audio_esc","MediaOverlaysRateIncrease","i18n_audio_rate_increase","MediaOverlaysRateDecrease","i18n_audio_rate_decrease","MediaOverlaysRateReset","i18n_audio_rate_reset","MediaOverlaysVolumeIncrease","i18n_audio_volume_increase","MediaOverlaysVolumeDecrease","i18n_audio_volume_decrease","MediaOverlaysVolumeMuteToggle","i18n_audio_mute","i18n_audio_unmute","MediaOverlaysAdvancedPanelShowHide","i18n_audio_expand","BackgroundAudioPlayPause","i18n_audio_play_background","i18n_audio_pause_background","KeyboardItem","checkKeyboardShortcuts","$focusedInput","typing","invalid","$keyboardList","wasAlert","alertInvalidKeyboard","focusedInputIsInvalid","$inputs","$that","checkKeyboardShortcut","focusedInputIsDuplicate","thatInvalid","thatDuplicate","thatOriginal","thatVal","$self","selfOriginal","selfInvalid","selfDuplicate","selfVal","i18n_invalid_keyboard_shortcut","i18n_duplicate_keyboard_shortcut","hasPlus","normalised","initKeyboardList","strings","_previousInputVal","debouncedKeyboardValidator","saveKeys","atLeastOneChanged","atLeastOneInvalidOrDuplicate","i18n_keyboard_reload","i18n_keyboard_onerror_reset","i18n_keyboard_shortcuts","moduleConfig","SettingsDialog","KeyboardSettings","defaultSettings","getBookStyles","theme","isAuthorTheme","$previewText","setPreviewTheme","previewStyle","backgroundColor","newTheme","previewTheme","updateReader","readerSettings","updateSliderLabels","$slider","label","initDialog","dialogs","$marginSlider","i18n_margins","$columnMaxWidthSlider","maxVal","columnMaxWidth_text","i18n_pageMaxWidth_Disabled","i18n_pageMaxWidth","$fontSizeSlider","i18n_font_size","$fontSelectionList","change","loadedUrls","curName","displayName","fontPayload","isSelected","curOption","save","isNight","trackView","sendEvent","isCommonjs","keyboardAllowed","Element","fnMap","eventNameMap","fullscreenchange","fullscreenerror","screenfull","requestFullscreen","ALLOW_KEYBOARD_INPUT","exit","exitFullscreen","isFullscreen","onchange","fullscreenElement","fullscreenEnabled","spinner","readium","atLeastOneIsEnabled","$moSyncWord","$moSyncSentence","$moSyncParagraph","$moSyncDefault","$audioPlayer","settingsToUpdate","$highlighterButts","background-color","border-color","border-radius","box-shadow","$previousAudioBtn","$nextAudioBtn","$playAudioBtn","$pauseAudioBtn","wasFocused","$expandAudioBtn","$collapseAudioBtn","updateAudioExpand","toFocus","$changeTimeControl","debouncedTimeRangeSliderChange","inDebounce","offsetS","playPositionMS","$buttondPreservePlaybackWhenScrollDisable","$buttonPreservePlaybackWhenScrollEnable","$buttonAutoPageTurnDisable","$buttonAutoPageTurnEnable","$buttonSkipDisable","$buttonSkipEnable","$buttonTouchEnable","$buttonTouchDisable","$changeRateControl","$changeRateControl_label","changeRate","minus","rateMin","rateMax","rateStep","rateVal","resetRate","$changeVolumeControl","changeVolume","volumeVal","$volumeButtonMute","$volumeButtonUnMute","_lastVolumeBeforeMute","muteVolume","unMuteVolume","$audioTrackDiv","$playAudioTrackBtn","$pauseAudioTrackBtn","yes","exportName","setTimeoutContext","bindFn","invokeArrayArg","deprecate","deprecationMessage","inherit","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","hasParent","inStr","findByKey","uniqueArray","camelProp","VENDOR_PREFIXES","_uniqueId","getWindowForElement","Input","manager","inputTarget","domHandler","createInputInstance","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","deltaTime","getAngle","distance","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getScale","getRotation","maxPointers","computeIntervalInputData","srcEvent","offsetDelta","prevDelta","velocity","velocityX","velocityY","lastInterval","COMPUTE_INTERVAL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","changedTargetTouches","touch","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","DEDUP_TIMEOUT","isSyntheticEvent","dy","DEDUP_DISTANCE","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","Hammer","recognizers","preset","Manager","oldCssProps","touchAction","toggleCssProps","recognizeWith","requireFailure","triggerDomEvent","gestureEvent","gesture","TEST_ELEMENT","MOBILE_REGEX","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","compute","getTouchAction","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","isValid","threshold","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","curRecognizer","existing","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","hammerify","hammer","originalEmit","jqueryHammer","getVersioningInfo","versionInfo","readiumJsViewer","dateTimeString","toUTCString","globalSetup","AboutDialog","ReaderNavbar","ReaderBody","ReaderBodyPageButtons","Analytics","EpubReaderMediaOverlays","EpubReaderBackgroundAudioTrack","GesturesHandler","Versioning","setBookTitle","$titleEl","embedded","currentPackageDocument","gesturesHandler","tooltipSelector","ensureUrlIsRelativeToApp","isHTTPS","regex_CORS_PROXY_HTTPs_TOKEN_ESCAPED","appUrl","_debugBookmarkData_goto","loadEbook","loadToc","wasFixed","$pageBtnsContainer","pageProgressionDirectionIsRTL","prevPage","nextPage","willSpin","isSpinning","stopRequested","tocShowHideToggle","unhideUI","$appContainer","existsFocusable","hideLoop","showScaleDisplay","setScaleDisplay","hideScaleDisplay","tocNav","$navs","nav","getAttributeNS","isRTL","pparent","tocUrl","$toc","setAttributeNS","$prevFocus","_tocLinkActivated","lastIframe","savePlace","updateUI","blurNode","toggleFullScreen","isChromeExtensionPackagedApp","app","restore","titleText","hideTimeoutId","hideUI","navBar","generateQueryParamCFI","spineItemPackageCFI","completeCFI","bookmarkString","history","replaceState","urlParams","epubs","gotoParam","goto","installReaderEventHandlers","tempId","bookmarkDataSelection","addSelectionHighlight","injectCoverImageURI","$div","ebookCoverImageURL","fetcher","coverHref","coverPath","relPath","blobURI","styleAttr","share_url","share_url_label","isWithinForbiddenNavKeysArea","hideTB","showTB","loadlibrary","libraryURL","setTocSize","appHeight","setFitScreen","setFitWidth","enableCustom","zoomRegex","setCustom","percentVal","loadReaderUIPrivate","i18n_toolbar","loadReaderUI","initReadium","gotoObj","openPageRequest_","gotoCfiComponents","READIUM","example","hypothesis","toggleNightTheme","viewerJs","readiumJs","sharedJs","readiumSharedJs","cfiJs","readiumCfiJs","buildInfo","dateTime","gitRepositories","repo1","clean","release","repo2","repo3","unloadReaderUI","loadUI","unloadUI","EpubReader","placeValue","fileDragNDropHTMLArea","dataTransfer"],"mappings":"AAQA,GAAAA,WAAAC,QAAAC,MCFA,IDGA,SAAAC,GAUA,QAAAC,GAAAC,EAAAC,GACA,MAAAC,GAAAC,KAAAH,EAAAC,GAWA,QAAAG,GAAAC,EAAAC,GACA,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAC,EAAAb,GAAAA,EAAAc,MAAA,KACAC,EAAAC,EAAAD,IACAE,EAAAF,GAAAA,EAAA,QAGA,IAAAhB,EAAA,CAwBA,IAvBAA,EAAAA,EAAAe,MAAA,KACAT,EAAAN,EAAAmB,OAAA,EAMAF,EAAAG,cAAAC,EAAAC,KAAAtB,EAAAM,MACAN,EAAAM,GAAAN,EAAAM,GAAAiB,QAAAF,EAAA,KAIA,MAAArB,EAAA,GAAAwB,OAAA,IAAAV,IAMAD,EAAAC,EAAAW,MAAA,EAAAX,EAAAK,OAAA,GACAnB,EAAAa,EAAAa,OAAA1B,IAIAU,EAAA,EAAAA,EAAAV,EAAAmB,OAAAT,IAEA,GAAA,OADAE,EAAAZ,EAAAU,IAEAV,EAAA2B,OAAAjB,EAAA,GACAA,GAAA,MACA,IAAA,OAAAE,EAAA,CAMA,GAAA,IAAAF,GAAA,IAAAA,GAAA,OAAAV,EAAA,IAAA,OAAAA,EAAAU,EAAA,GACA,QACAA,GAAA,IACAV,EAAA2B,OAAAjB,EAAA,EAAA,GACAA,GAAA,GAMAV,EAAAA,EAAA4B,KAAA,KAIA,IAAAd,GAAAI,IAAAF,EAAA,CAGA,IAFAd,EAAAF,EAAAe,MAAA,KAEAL,EAAAR,EAAAiB,OAAAT,EAAA,EAAAA,GAAA,EAAA,CAGA,GAFAP,EAAAD,EAAAuB,MAAA,EAAAf,GAAAkB,KAAA,KAEAd,EAGA,IAAAH,EAAAG,EAAAK,OAAAR,EAAA,EAAAA,GAAA,EAKA,IAJAP,EAAAY,EAAAF,EAAAW,MAAA,EAAAd,GAAAiB,KAAA,SAKAxB,EAAAA,EAAAD,IACA,CAEAE,EAAAD,EACAG,EAAAG,CACA,OAMA,GAAAL,EACA,OAMAG,GAAAU,GAAAA,EAAAf,KACAK,EAAAU,EAAAf,GACAM,EAAAC,IAIAL,GAAAG,IACAH,EAAAG,EACAD,EAAAE,GAGAJ,IACAH,EAAAyB,OAAA,EAAApB,EAAAF,GACAL,EAAAE,EAAA0B,KAAA,MAIA,MAAA5B,GAGA,QAAA6B,GAAAC,EAAAC,GACA,MAAA,YAIA,GAAAC,GAAAC,EAAAnC,KAAAoC,UAAA,EAQA,OAHA,gBAAAF,GAAA,IAAA,IAAAA,EAAAb,QACAa,EAAAG,KAAA,MAEAC,EAAAC,MAAA5C,EAAAuC,EAAAN,QAAAI,EAAAC,MAIA,QAAAO,GAAAR,GACA,MAAA,UAAA9B,GACA,MAAAD,GAAAC,EAAA8B,IAIA,QAAAS,GAAAC,GACA,MAAA,UAAAC,GACAC,EAAAF,GAAAC,GAIA,QAAAE,GAAA3C,GACA,GAAAN,EAAAkD,EAAA5C,GAAA,CACA,GAAAgC,GAAAY,EAAA5C,SACA4C,GAAA5C,GACA6C,EAAA7C,IAAA,EACA8C,EAAAT,MAAA5C,EAAAuC,GAGA,IAAAtC,EAAAgD,EAAA1C,KAAAN,EAAAmD,EAAA7C,GACA,KAAA,IAAA+C,OAAA,MAAA/C,EAEA,OAAA0C,GAAA1C,GAMA,QAAAgD,GAAAhD,GACA,GAAAiD,GACAC,EAAAlD,EAAAA,EAAAmD,QAAA,MAAA,CAKA,OAJAD,IAAA,IACAD,EAAAjD,EAAAoD,UAAA,EAAAF,GACAlD,EAAAA,EAAAoD,UAAAF,EAAA,EAAAlD,EAAAmB,UAEA8B,EAAAjD,GAKA,QAAAqD,GAAAvB,GACA,MAAAA,GAAAkB,EAAAlB,MA+CA,QAAAwB,GAAAtD,GACA,MAAA,YACA,MAAAiB,IAAAA,EAAAA,QAAAA,EAAAA,OAAAjB,QA/OA,GAAA8C,GAAAV,EAAAmB,EAAAC,EACAd,KACAE,KACA3B,KACA4B,KACAhD,EAAA4D,OAAAC,UAAAC,eACA1B,KAAAR,MACAJ,EAAA,OA+LAkC,GAAA,SAAAvD,EAAA4D,GACA,GAAAC,GACAC,EAAAd,EAAAhD,GACAiD,EAAAa,EAAA,GACAC,EAAAH,EAAA,EA2BA,OAzBA5D,GAAA8D,EAAA,GAEAb,IACAA,EAAAlD,EAAAkD,EAAAc,GACAF,EAAAlB,EAAAM,IAIAA,EAEAjD,EADA6D,GAAAA,EAAA9D,UACA8D,EAAA9D,UAAAC,EAAAsC,EAAAyB,IAEAhE,EAAAC,EAAA+D,IAGA/D,EAAAD,EAAAC,EAAA+D,GACAD,EAAAd,EAAAhD,GACAiD,EAAAa,EAAA,GACA9D,EAAA8D,EAAA,GACAb,IACAY,EAAAlB,EAAAM,MAMAe,EAAAf,EAAAA,EAAA,IAAAjD,EAAAA,EACAiE,EAAAjE,EACAkE,GAAAjB,EACAkB,EAAAN,IAUAL,GACAjE,QAAA,SAAAS,GACA,MAAA6B,GAAA7B,IAEAoE,QAAA,SAAApE,GACA,GAAAqE,GAAA3B,EAAA1C,EACA,YAAA,KAAAqE,EACAA,EAEA3B,EAAA1C,OAGAsE,OAAA,SAAAtE,GACA,OACAuE,GAAAvE,EACAwE,IAAA,GACAJ,QAAA1B,EAAA1C,GACAiB,OAAAqC,EAAAtD,MAKA8C,EAAA,SAAA9C,EAAAyE,EAAAC,EAAA5C,GACA,GAAA6C,GAAAnC,EAAAoC,EAAA5D,EAAAN,EAAAkD,EAGAiB,EAFA7C,KACA8C,QAAAJ,EAQA,IAJA5C,EAAAA,GAAA9B,EACA4D,EAAAP,EAAAvB,GAGA,cAAAgD,GAAA,aAAAA,EAAA,CAKA,IADAL,GAAAA,EAAAtD,QAAAuD,EAAAvD,QAAA,UAAA,UAAA,UAAAsD,EACA/D,EAAA,EAAAA,EAAA+D,EAAAtD,OAAAT,GAAA,EAKA,GAJAM,EAAAuC,EAAAkB,EAAA/D,GAAAkD,GAIA,aAHApB,EAAAxB,EAAAgD,GAIAhC,EAAAtB,GAAA8C,EAAAjE,QAAAS,OACA,IAAA,YAAAwC,EAEAR,EAAAtB,GAAA8C,EAAAY,QAAApE,GACA6E,GAAA,MACA,IAAA,WAAArC,EAEAmC,EAAA3C,EAAAtB,GAAA8C,EAAAc,OAAAtE,OACA,IAAAN,EAAAgD,EAAAF,IACA9C,EAAAkD,EAAAJ,IACA9C,EAAAmD,EAAAL,GACAR,EAAAtB,GAAAiC,EAAAH,OACA,CAAA,IAAAxB,EAAAmD,EAIA,KAAA,IAAApB,OAAA/C,EAAA,YAAAwC,EAHAxB,GAAAmD,EAAAY,KAAA/D,EAAAiD,EAAApC,EAAAC,GAAA,GAAAS,EAAAC,OACAR,EAAAtB,GAAAgC,EAAAF,GAMAoC,EAAAF,EAAAA,EAAArC,MAAAK,EAAA1C,GAAAgC,OAAAgD,GAEAhF,IAIA2E,GAAAA,EAAAP,UAAA3E,GACAkF,EAAAP,UAAA1B,EAAA1C,GACA0C,EAAA1C,GAAA2E,EAAAP,QACAQ,IAAAnF,GAAAoF,IAEAnC,EAAA1C,GAAA4E,QAGA5E,KAGA0C,EAAA1C,GAAA0E,IAIApF,UAAAC,QAAA6C,EAAA,SAAAqC,EAAAC,EAAA5C,EAAAC,EAAAkD,GACA,GAAA,gBAAAR,GACA,MAAAjB,GAAAiB,GAEAjB,EAAAiB,GAAAC,GAMA/B,EAAAY,EAAAkB,EAAApB,EAAAqB,IAAAV,EACA,KAAAS,EAAA9C,OAAA,CAMA,GAJAV,EAAAwD,EACAxD,EAAAwD,MACArC,EAAAnB,EAAAwD,KAAAxD,EAAAyD,WAEAA,EACA,MAGAA,GAAA/C,QAGA8C,EAAAC,EACAA,EAAA5C,EACAA,EAAA,MAEA2C,EAAAhF,EA6BA,MAxBAiF,GAAAA,GAAA,aAIA,kBAAA5C,KACAA,EAAAC,EACAA,EAAAkD,GAIAlD,EACAe,EAAArD,EAAAgF,EAAAC,EAAA5C,GAQAoD,WAAA,WACApC,EAAArD,EAAAgF,EAAAC,EAAA5C,IACA,GAGAM,GAOAA,EAAAnB,OAAA,SAAAkE,GACA,MAAA/C,GAAA+C,IAMA7F,UAAA8F,SAAA1C,EAEAlD,OAAA,SAAAQ,EAAAyE,EAAAC,GACA,GAAA,gBAAA1E,GACA,KAAA,IAAA+C,OAAA,4DAIA0B,GAAA9C,SAIA+C,EAAAD,EACAA,MAGA/E,EAAAgD,EAAA1C,IAAAN,EAAAkD,EAAA5C,KACA4C,EAAA5C,IAAAA,EAAAyE,EAAAC,KAIAlF,OAAA6F,KACAC,QAAA,MAIA9F,OAAA,6BAAA,cEraA,SAAA+F,EAAAC,GAEA,gBAAAlB,SAAA,gBAAAA,QAAAF,QAQAE,OAAAF,QAAAmB,EAAAE,SACAD,EAAAD,GAAA,GACA,SAAAG,GACA,IAAAA,EAAAD,SACA,KAAA,IAAA1C,OAAA,2CAEA,OAAAyC,GAAAE,IAGAF,EAAAD,IAIA,mBAAAI,QAAAA,OAAAC,KAAA,SAAAD,EAAAE,GA2eA,QAAAC,GAAAnG,GAMA,GAAAwB,KAAAxB,GAAA,UAAAA,IAAAA,EAAAwB,OACA4E,EAAAT,GAAAS,KAAApG,EAEA,OAAA,aAAAoG,IAAAT,GAAAU,SAAArG,KAIA,UAAAoG,GAAA,IAAA5E,GACA,gBAAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAxB,IA4oEA,QAAAsG,GAAAC,EAAAC,EAAAC,GACA,GAAAd,GAAAe,WAAAF,GACA,MAAAb,IAAAgB,KAAAJ,EAAA,SAAAK,EAAA7F,GAEA,QAAAyF,EAAArG,KAAAyG,EAAA7F,EAAA6F,KAAAH,GAKA,IAAAD,EAAAK,SACA,MAAAlB,IAAAgB,KAAAJ,EAAA,SAAAK,GACA,MAAAA,KAAAJ,IAAAC,GAKA,IAAA,gBAAAD,GAAA,CACA,GAAAM,GAAAnF,KAAA6E,GACA,MAAAb,IAAAoB,OAAAP,EAAAD,EAAAE,EAGAD,GAAAb,GAAAoB,OAAAP,EAAAD,GAGA,MAAAZ,IAAAgB,KAAAJ,EAAA,SAAAK,GACA,MAAApD,GAAArD,KAAAqG,EAAAI,IAAA,IAAAH,IA0RA,QAAAO,GAAAC,EAAAC,GACA,MAAAD,EAAAA,EAAAC,KAAA,IAAAD,EAAAJ,WACA,MAAAI,GA0EA,QAAAE,GAAAC,GACA,GAAAC,KAIA,OAHA1B,IAAA2B,KAAAF,EAAAG,MAAAC,QAAA,SAAAC,EAAAC,GACAL,EAAAK,IAAA,IAEAL,EA8aA,QAAAM,KACA7B,EAAA8B,oBAAA,mBAAAD,GACA3B,EAAA4B,oBAAA,OAAAD,GACAhC,GAAAkC,QA4GA,QAAAC,KACA7B,KAAA8B,QAAApC,GAAAoC,QAAAD,EAAAE,MAiNA,QAAAC,GAAArB,EAAAsB,EAAAC,GACA,GAAA9H,EAIA,QAAAgF,KAAA8C,GAAA,IAAAvB,EAAAC,SAIA,GAHAxG,EAAA,QAAA6H,EAAAtG,QAAAwG,GAAA,OAAAC,cAGA,iBAFAF,EAAAvB,EAAA0B,aAAAjI,IAEA,CACA,IACA8H,EAAA,SAAAA,GACA,UAAAA,IACA,SAAAA,EAAA,MAGAA,EAAA,KAAAA,GAAAA,EACAI,GAAA5G,KAAAwG,GAAAxC,GAAA6C,UAAAL,GACAA,GACA,MAAAzD,IAGA+D,GAAAC,IAAA9B,EAAAsB,EAAAC,OAEAA,OAAA9C,EAGA,OAAA8C,GAkSA,QAAAQ,GAAA/B,EAAA3G,EAAA2I,EAAAC,GACA,GAAAC,GACAC,EAAA,EACAC,EAAA,GACAC,EAAAJ,EACA,WAAA,MAAAA,GAAA5B,OACA,WAAA,MAAAtB,IAAAuD,IAAAtC,EAAA3G,EAAA,KACAkJ,EAAAF,IACAG,EAAAR,GAAAA,EAAA,KAAAjD,GAAA0D,UAAApJ,GAAA,GAAA,MAGAqJ,GAAA3D,GAAA0D,UAAApJ,IAAA,OAAAmJ,IAAAD,IACAI,GAAAC,KAAA7D,GAAAuD,IAAAtC,EAAA3G,GAEA,IAAAqJ,GAAAA,EAAA,KAAAF,EAAA,CAGAA,EAAAA,GAAAE,EAAA,GAGAV,EAAAA,MAGAU,GAAAH,GAAA,CAEA,IAIAJ,EAAAA,GAAA,KAGAO,GAAAP,EACApD,GAAA8D,MAAA7C,EAAA3G,EAAAqJ,EAAAF,SAKAL,KAAAA,EAAAE,IAAAE,IAAA,IAAAJ,KAAAC,GAiBA,MAbAJ,KACAU,GAAAA,IAAAH,GAAA,EAGAL,EAAAF,EAAA,GACAU,GAAAV,EAAA,GAAA,GAAAA,EAAA,IACAA,EAAA,GACAC,IACAA,EAAAO,KAAAA,EACAP,EAAAa,MAAAJ,EACAT,EAAAc,IAAAb,IAGAA,EAkCA,QAAAc,GAAAC,EAAAC,GAIA,GAAA7E,OAAA,KAAA4E,EAAAE,qBACAF,EAAAE,qBAAAD,GAAA,SACA,KAAAD,EAAAG,iBACAH,EAAAG,iBAAAF,GAAA,OAGA,YAAAzE,KAAAyE,GAAAA,GAAAnE,GAAAsE,SAAAJ,EAAAC,GACAnE,GAAAuE,OAAAL,GAAA5E,GACAA,EAKA,QAAAkF,GAAAC,EAAAC,GAIA,IAHA,GAAAtJ,GAAA,EACAuJ,EAAAF,EAAA5I,OAEAT,EAAAuJ,EAAAvJ,IACAwJ,GAAA7B,IACA0B,EAAArJ,GACA,cACAsJ,GAAAE,GAAAC,IAAAH,EAAAtJ,GAAA,eAQA,QAAA0J,GAAAL,EAAAP,EAAAa,EAAAC,EAAAC,GAOA,IANA,GAAAhE,GAAAiE,EAAAf,EAAAgB,EAAAC,EAAA/J,EACAgK,EAAAnB,EAAAoB,yBACAC,KACAnK,EAAA,EACAuJ,EAAAF,EAAA5I,OAEAT,EAAAuJ,EAAAvJ,IAGA,IAFA6F,EAAAwD,EAAArJ,KAEA,IAAA6F,EAGA,GAAA,WAAAjB,GAAAS,KAAAQ,GAIAjB,GAAAuE,MAAAgB,EAAAtE,EAAAC,UAAAD,GAAAA,OAGA,IAAAuE,GAAAxJ,KAAAiF,GAIA,CAUA,IATAiE,EAAAA,GAAAG,EAAAI,YAAAvB,EAAAwB,cAAA,QAGAvB,GAAAwB,GAAA9B,KAAA5C,KAAA,GAAA,KAAA,GAAAyB,cACAyC,EAAAS,GAAAzB,IAAAyB,GAAAC,SACAX,EAAAY,UAAAX,EAAA,GAAAnF,GAAA+F,cAAA9E,GAAAkE,EAAA,GAGA9J,EAAA8J,EAAA,GACA9J,KACA6J,EAAAA,EAAAc,SAKAhG,IAAAuE,MAAAgB,EAAAL,EAAAe,YAGAf,EAAAG,EAAAa,WAGAhB,EAAAiB,YAAA,OAzBAZ,GAAA1I,KAAAqH,EAAAkC,eAAAnF,GAkCA,KAHAoE,EAAAc,YAAA,GAEA/K,EAAA,EACA6F,EAAAsE,EAAAnK,MAGA,GAAA4J,GAAAhF,GAAAqG,QAAApF,EAAA+D,IAAA,EACAC,GACAA,EAAApI,KAAAoE,OAgBA,IAXAmE,EAAApF,GAAAoF,SAAAnE,EAAAqF,cAAArF,GAGAiE,EAAAjB,EAAAoB,EAAAI,YAAAxE,GAAA,UAGAmE,GACAZ,EAAAU,GAIAH,EAEA,IADA1J,EAAA,EACA4F,EAAAiE,EAAA7J,MACAkL,GAAAvK,KAAAiF,EAAAR,MAAA,KACAsE,EAAAlI,KAAAoE,EAMA,OAAAoE,GAmCA,QAAAmB,KACA,OAAA,EAGA,QAAAC,KACA,OAAA,EAKA,QAAAC,KACA,IACA,MAAAvG,GAAAwG,cACA,MAAAC,KAGA,QAAAC,GAAA5F,EAAA6F,EAAAC,EAAAvE,EAAAwE,EAAAC,GACA,GAAAC,GAAAzG,CAGA,IAAA,gBAAAqG,GAAA,CAGA,gBAAAC,KAGAvE,EAAAA,GAAAuE,EACAA,MAAArH,GAEA,KAAAe,IAAAqG,GACAD,EAAA5F,EAAAR,EAAAsG,EAAAvE,EAAAsE,EAAArG,GAAAwG,EAEA,OAAAhG,GAsBA,GAnBA,MAAAuB,GAAA,MAAAwE,GAGAA,EAAAD,EACAvE,EAAAuE,MAAArH,IACA,MAAAsH,IACA,gBAAAD,IAGAC,EAAAxE,EACAA,MAAA9C,KAIAsH,EAAAxE,EACAA,EAAAuE,EACAA,MAAArH,MAGA,IAAAsH,EACAA,EAAAP,MACA,KAAAO,EACA,MAAA/F,EAeA,OAZA,KAAAgG,IACAC,EAAAF,EACAA,EAAA,SAAAG,GAIA,MADAnH,MAAAoH,IAAAD,GACAD,EAAAnK,MAAAuD,KAAA1D,YAIAoK,EAAAK,KAAAH,EAAAG,OAAAH,EAAAG,KAAArH,GAAAqH,SAEApG,EAAAU,KAAA,WACA3B,GAAAmH,MAAAG,IAAAhH,KAAAwG,EAAAE,EAAAxE,EAAAuE,KA2nBA,QAAAQ,GAAAtG,EAAAuG,GACA,MAAAxH,IAAAsE,SAAArD,EAAA,UACAjB,GAAAsE,SAAA,KAAAkD,EAAAtG,SAAAsG,EAAAA,EAAAtB,WAAA,MAEAjF,EAAAmD,qBAAA,SAAA,IACAnD,EAAAwE,YAAAxE,EAAAqF,cAAAZ,cAAA,UACAzE,EAIA,QAAAwG,GAAAxG,GAEA,MADAA,GAAAR,MAAA,OAAAQ,EAAA0B,aAAA,SAAA,IAAA1B,EAAAR,KACAQ,EAEA,QAAAyG,GAAAzG,GACA,GAAAW,GAAA+F,GAAA9D,KAAA5C,EAAAR,KAQA,OANAmB,GACAX,EAAAR,KAAAmB,EAAA,GAEAX,EAAA2G,gBAAA,QAGA3G,EAGA,QAAA4G,GAAAC,EAAAC,GACA,GAAA3M,GAAAuJ,EAAAlE,EAAAuH,EAAAC,EAAAC,EAAAC,EAAAC,CAEA,IAAA,IAAAL,EAAA7G,SAAA,CAKA,GAAA0D,GAAAyD,QAAAP,KACAE,EAAApD,GAAA0D,OAAAR,GACAG,EAAArD,GAAA7B,IAAAgF,EAAAC,GACAI,EAAAJ,EAAAI,QAEA,OACAH,GAAAM,OACAN,EAAAG,SAEA,KAAA3H,IAAA2H,GACA,IAAAhN,EAAA,EAAAuJ,EAAAyD,EAAA3H,GAAA5E,OAAAT,EAAAuJ,EAAAvJ,IACA4E,GAAAmH,MAAAG,IAAAS,EAAAtH,EAAA2H,EAAA3H,GAAArF,IAOA0H,GAAAuF,QAAAP,KACAI,EAAApF,GAAAwF,OAAAR,GACAK,EAAAnI,GAAAwI,UAAAN,GAEApF,GAAAC,IAAAgF,EAAAI,KAKA,QAAAM,GAAAX,EAAAC,GACA,GAAAzD,GAAAyD,EAAAzD,SAAA5B,aAGA,WAAA4B,GAAAoE,GAAA1M,KAAA8L,EAAArH,MACAsH,EAAAY,QAAAb,EAAAa,QAGA,UAAArE,GAAA,aAAAA,IACAyD,EAAAa,aAAAd,EAAAc,cAIA,QAAAC,GAAAC,EAAApM,EAAA0C,EAAA6F,GAGAvI,EAAAN,EAAAW,SAAAL,EAEA,IAAA2I,GAAA0D,EAAAhE,EAAAiE,EAAAC,EAAAC,EACA9N,EAAA,EACAuJ,EAAAmE,EAAAjN,OACAsN,EAAAxE,EAAA,EACAxH,EAAAT,EAAA,GACAqE,EAAAf,GAAAe,WAAA5D,EAGA,IAAA4D,GACA4D,EAAA,GAAA,gBAAAxH,KACAiM,GAAAC,YAAAC,GAAAtN,KAAAmB,GACA,MAAA2L,GAAAnH,KAAA,SAAA/D,GACA,GAAA2L,GAAAT,EAAAU,GAAA5L,EACAmD,KACArE,EAAA,GAAAS,EAAA3C,KAAA8F,KAAA1C,EAAA2L,EAAAE,SAEAZ,EAAAU,EAAA7M,EAAA0C,EAAA6F,IAIA,IAAAN,IACAU,EAAAP,EAAApI,EAAAoM,EAAA,GAAAxC,eAAA,EAAAwC,EAAA7D,GACA8D,EAAA1D,EAAAa,WAEA,IAAAb,EAAAY,WAAApK,SACAwJ,EAAA0D,GAIAA,GAAA9D,GAAA,CAOA,IANAF,EAAA/E,GAAAtE,IAAAuI,EAAAoB,EAAA,UAAAoC,GACAuB,EAAAjE,EAAAlJ,OAKAT,EAAAuJ,EAAAvJ,IACA6N,EAAA5D,EAEAjK,IAAA+N,IACAF,EAAAjJ,GAAA0J,MAAAT,GAAA,GAAA,GAGAD,GAIAhJ,GAAAuE,MAAAQ,EAAAd,EAAAgF,EAAA,YAIA7J,EAAA5E,KAAAsO,EAAA1N,GAAA6N,EAAA7N,EAGA,IAAA4N,EAOA,IANAE,EAAAnE,EAAAA,EAAAlJ,OAAA,GAAAyK,cAGAtG,GAAAtE,IAAAqJ,EAAA2C,GAGAtM,EAAA,EAAAA,EAAA4N,EAAA5N,IACA6N,EAAAlE,EAAA3J,GACAmL,GAAAvK,KAAAiN,EAAAxI,MAAA,MACAmE,GAAA0D,OAAAW,EAAA,eACAjJ,GAAAoF,SAAA8D,EAAAD,KAEAA,EAAAnB,IAGA9H,GAAA2J,UACA3J,GAAA2J,SAAAV,EAAAnB,KAGA9H,GAAA4J,WAAAX,EAAA9C,YAAAlK,QAAA4N,GAAA,MAQA,MAAAf,GAGA,QAAAgB,GAAA7I,EAAA8F,EAAAgD,GAKA,IAJA,GAAAd,GACA1D,EAAAwB,EAAA/G,GAAAoB,OAAA2F,EAAA9F,GAAAA,EACA7F,EAAA,EAEA,OAAA6N,EAAA1D,EAAAnK,IAAAA,IACA2O,GAAA,IAAAd,EAAA/H,UACAlB,GAAAgK,UAAA/F,EAAAgF,IAGAA,EAAAgB,aACAF,GAAA/J,GAAAoF,SAAA6D,EAAA3C,cAAA2C,IACAzE,EAAAP,EAAAgF,EAAA,WAEAA,EAAAgB,WAAAC,YAAAjB,GAIA,OAAAhI,GAiRA,QAAAkJ,GAAAzP,EAAAwO,GACA,GAAAjI,GAAAjB,GAAAkJ,EAAAxD,cAAAhL,IAAA0P,SAAAlB,EAAAmB,MAEAC,EAAAtK,GAAAuD,IAAAtC,EAAA,GAAA,UAMA,OAFAA,GAAAsJ,SAEAD,EAOA,QAAAE,GAAAlG,GACA,GAAA4E,GAAA/I,EACAmK,EAAAG,GAAAnG,EA2BA,OAzBAgG,KACAA,EAAAH,EAAA7F,EAAA4E,GAGA,SAAAoB,GAAAA,IAGAI,IAAAA,IAAA1K,GAAA,mDACAoK,SAAAlB,EAAAyB,iBAGAzB,EAAAwB,GAAA,GAAAE,gBAGA1B,EAAA2B,QACA3B,EAAA4B,QAEAR,EAAAH,EAAA7F,EAAA4E,GACAwB,GAAAH,UAIAE,GAAAnG,GAAAgG,GAGAA,EA6JA,QAAAS,GAAA9J,EAAAvG,EAAAsQ,GACA,GAAAC,GAAAC,EAAAC,EAAA7L,EACAwE,EAAA7C,EAAA6C,KAuCA,OArCAkH,GAAAA,GAAAI,GAAAnK,GACA3B,EAAA0L,EAAAA,EAAAK,iBAAA3Q,IAAAsQ,EAAAtQ,OAAAgF,GAKA,KAAAJ,OAAAI,KAAAJ,GAAAU,GAAAoF,SAAAnE,EAAAqF,cAAArF,KACA3B,EAAAU,GAAA8D,MAAA7C,EAAAvG,IAKAsQ,IAOA5B,GAAAkC,oBAAAC,GAAAvP,KAAAsD,IAAAkM,GAAAxP,KAAAtB,KAGAuQ,EAAAnH,EAAAmH,MACAC,EAAApH,EAAAoH,SACAC,EAAArH,EAAAqH,SAGArH,EAAAoH,SAAApH,EAAAqH,SAAArH,EAAAmH,MAAA3L,EACAA,EAAA0L,EAAAC,MAGAnH,EAAAmH,MAAAA,EACAnH,EAAAoH,SAAAA,EACApH,EAAAqH,SAAAA,OAIAzL,KAAAJ,EAIAA,EAAA,GACAA,EAIA,QAAAmM,GAAAC,EAAAC,GAGA,OACA9G,IAAA,WACA,MAAA6G,gBAIApL,MAAAuE,KAKAvE,KAAAuE,IAAA8G,GAAA5O,MAAAuD,KAAA1D,aAuBA,QAAAgP,GAAAlR,GAGA,GAAAA,IAAAmR,IACA,MAAAnR,EAOA,KAHA,GAAAoR,GAAApR,EAAA,GAAAqR,cAAArR,EAAAyB,MAAA,GACAf,EAAA4Q,GAAAnQ,OAEAT,KAEA,IADAV,EAAAsR,GAAA5Q,GAAA0Q,IACAD,IACA,MAAAnR,GAKA,QAAAuR,GAAAhL,EAAA9D,EAAA+O,GAIA,GAAAC,GAAAvI,GAAAC,KAAA1G,EACA,OAAAgP,GAGAC,KAAAC,IAAA,EAAAF,EAAA,IAAAD,GAAA,KAAAC,EAAA,IAAA,MACAhP,EAGA,QAAAmP,GAAArL,EAAAvG,EAAA6R,EAAAC,EAAAC,GAWA,IAVA,GAAArR,GAAAmR,KAAAC,EAAA,SAAA,WAGA,EAGA,UAAA9R,EAAA,EAAA,EAEAgS,EAAA,EAEAtR,EAAA,EAAAA,GAAA,EAGA,WAAAmR,IACAG,GAAA1M,GAAAuD,IAAAtC,EAAAsL,EAAAI,GAAAvR,IAAA,EAAAqR,IAGAD,GAGA,YAAAD,IACAG,GAAA1M,GAAAuD,IAAAtC,EAAA,UAAA0L,GAAAvR,IAAA,EAAAqR,IAIA,WAAAF,IACAG,GAAA1M,GAAAuD,IAAAtC,EAAA,SAAA0L,GAAAvR,GAAA,SAAA,EAAAqR,MAKAC,GAAA1M,GAAAuD,IAAAtC,EAAA,UAAA0L,GAAAvR,IAAA,EAAAqR,GAGA,YAAAF,IACAG,GAAA1M,GAAAuD,IAAAtC,EAAA,SAAA0L,GAAAvR,GAAA,SAAA,EAAAqR,IAKA,OAAAC,GAGA,QAAAE,GAAA3L,EAAAvG,EAAA6R,GAGA,GAAAM,IAAA,EACAH,EAAA,UAAAhS,EAAAuG,EAAA6L,YAAA7L,EAAA8L,aACAN,EAAArB,GAAAnK,GACAuL,EAAA,eAAAxM,GAAAuD,IAAAtC,EAAA,aAAA,EAAAwL,EAKA,IAAAC,GAAA,GAAA,MAAAA,EAAA,CASA,GANAA,EAAA3B,EAAA9J,EAAAvG,EAAA+R,IACAC,EAAA,GAAA,MAAAA,KACAA,EAAAzL,EAAA6C,MAAApJ,IAIA6Q,GAAAvP,KAAA0Q,GACA,MAAAA,EAKAG,GAAAL,IACApD,GAAA4D,qBAAAN,IAAAzL,EAAA6C,MAAApJ,IAGAgS,EAAAO,WAAAP,IAAA,EAIA,MAAAA,GACAJ,EACArL,EACAvG,EACA6R,IAAAC,EAAA,SAAA,WACAK,EACAJ,GAEA,KAGA,QAAAS,GAAAtM,EAAAuM,GAMA,IALA,GAAA7C,GAAArJ,EAAAmM,EACAC,KACAzP,EAAA,EACA/B,EAAA+E,EAAA/E,OAEA+B,EAAA/B,EAAA+B,IACAqD,EAAAL,EAAAhD,GACAqD,EAAA6C,QAIAuJ,EAAAzP,GAAAgH,GAAAC,IAAA5D,EAAA,cACAqJ,EAAArJ,EAAA6C,MAAAwG,QACA6C,GAIAE,EAAAzP,IAAA,SAAA0M,IACArJ,EAAA6C,MAAAwG,QAAA,IAMA,KAAArJ,EAAA6C,MAAAwG,SAAAgD,GAAArM,KACAoM,EAAAzP,GAAAgH,GAAA0D,OACArH,EACA,aACAuJ,EAAAvJ,EAAAqD,cAIA8I,EAAAE,GAAArM,GAEA,SAAAqJ,GAAA8C,GACAxI,GAAA7B,IACA9B,EACA,aACAmM,EAAA9C,EAAAtK,GAAAuD,IAAAtC,EAAA,aAQA,KAAArD,EAAA,EAAAA,EAAA/B,EAAA+B,IACAqD,EAAAL,EAAAhD,GACAqD,EAAA6C,QAGAqJ,GAAA,SAAAlM,EAAA6C,MAAAwG,SAAA,KAAArJ,EAAA6C,MAAAwG,UACArJ,EAAA6C,MAAAwG,QAAA6C,EAAAE,EAAAzP,IAAA,GAAA,QAIA,OAAAgD,GA0RA,QAAA2M,GAAAtM,EAAAQ,EAAAnH,EAAA0J,EAAAwJ,GACA,MAAA,IAAAD,GAAAnP,UAAAqP,KAAAxM,EAAAQ,EAAAnH,EAAA0J,EAAAwJ,GA2HA,QAAAE,KAIA,MAHArN,GAAAT,WAAA,WACA+N,OAAAjO,KAEAiO,GAAA3N,GAAA4N,MAIA,QAAAC,GAAApN,EAAAqN,GACA,GAAAC,GACA3S,EAAA,EACA4S,GAAAC,OAAAxN,EAKA,KADAqN,EAAAA,EAAA,EAAA,EACA1S,EAAA,EAAAA,GAAA,EAAA0S,EACAC,EAAApB,GAAAvR,GACA4S,EAAA,SAAAD,GAAAC,EAAA,UAAAD,GAAAtN,CAOA,OAJAqN,KACAE,EAAAE,QAAAF,EAAA/C,MAAAxK,GAGAuN,EAGA,QAAAG,GAAAhR,EAAA7C,EAAA8T,GAKA,IAJA,GAAAlL,GACA4F,GAAAuF,EAAAC,SAAAhU,QAAA8B,OAAAiS,EAAAC,SAAA,MACA1Q,EAAA,EACA/B,EAAAiN,EAAAjN,OACA+B,EAAA/B,EAAA+B,IACA,GAAAsF,EAAA4F,EAAAlL,GAAApD,KAAA4T,EAAA9T,EAAA6C,GAGA,MAAA+F,GAKA,QAAAqL,GAAAtN,EAAAuN,EAAAC,GAEA,GAAAnU,GAAA6C,EAAAuR,EAAAxL,EAAAyL,EAAAC,EAAAtE,EACAuE,EAAAvO,KACAwO,KACAhL,EAAA7C,EAAA6C,MACAsJ,EAAAnM,EAAAC,UAAAoM,GAAArM,GACA8N,EAAAnK,GAAAC,IAAA5D,EAAA,SAGAwN,GAAAO,QACAL,EAAA3O,GAAAiP,YAAAhO,EAAA,MACA,MAAA0N,EAAAO,WACAP,EAAAO,SAAA,EACAN,EAAAD,EAAAQ,MAAAC,KACAT,EAAAQ,MAAAC,KAAA,WACAT,EAAAO,UACAN,MAIAD,EAAAO,WAEAL,EAAAQ,OAAA,WAGAR,EAAAQ,OAAA,WACAV,EAAAO,WACAlP,GAAAgP,MAAA/N,EAAA,MAAApF,QACA8S,EAAAQ,MAAAC,YAOA,IAAAnO,EAAAC,WAAA,UAAAsN,IAAA,SAAAA,MAMAC,EAAAa,UAAAxL,EAAAwL,SAAAxL,EAAAyL,UAAAzL,EAAA0L,WAIAlF,EAAAtK,GAAAuD,IAAAtC,EAAA,WAMA,YAHA,SAAAqJ,EACA1F,GAAAC,IAAA5D,EAAA,eAAAuJ,EAAAvJ,EAAAqD,UAAAgG,IAEA,SAAAtK,GAAAuD,IAAAtC,EAAA,WACA6C,EAAAwG,QAAA,iBAIAmE,EAAAa,WACAxL,EAAAwL,SAAA,SACAT,EAAAQ,OAAA,WACAvL,EAAAwL,SAAAb,EAAAa,SAAA,GACAxL,EAAAyL,UAAAd,EAAAa,SAAA,GACAxL,EAAA0L,UAAAf,EAAAa,SAAA,KAKA,KAAAhV,IAAAkU,GAEA,GADArR,EAAAqR,EAAAlU,GACAmV,GAAA5L,KAAA1G,GAAA,CAGA,SAFAqR,GAAAlU,GACAoU,EAAAA,GAAA,WAAAvR,EACAA,KAAAiQ,EAAA,OAAA,QAAA,CAIA,GAAA,SAAAjQ,IAAA4R,OAAArP,KAAAqP,EAAAzU,GAGA,QAFA8S,IAAA,EAKA0B,EAAAxU,GAAAyU,GAAAA,EAAAzU,IAAA0F,GAAA8D,MAAA7C,EAAA3G,OAIAgQ,OAAA5K,EAIA,IAAAM,GAAA0P,cAAAZ,GAyCA,YAAA,SAAAxE,EAAAE,EAAAvJ,EAAAqD,UAAAgG,KACAxG,EAAAwG,QAAAA,OA1CA,CACAyE,EACA,UAAAA,KACA3B,EAAA2B,EAAA3B,QAGA2B,EAAAnK,GAAA0D,OAAArH,EAAA,aAIAyN,IACAK,EAAA3B,QAAAA,GAEAA,EACApN,GAAAiB,GAAAkM,OAEA0B,EAAAc,KAAA,WACA3P,GAAAiB,GAAA2O,SAGAf,EAAAc,KAAA,WACA,GAAArV,EAEAsK,IAAAkF,OAAA7I,EAAA,SACA,KAAA3G,IAAAwU,GACA9O,GAAA8D,MAAA7C,EAAA3G,EAAAwU,EAAAxU,KAGA,KAAAA,IAAAwU,GACA5L,EAAAiL,EAAAf,EAAA2B,EAAAzU,GAAA,EAAAA,EAAAuU,GAEAvU,IAAAyU,KACAA,EAAAzU,GAAA4I,EAAAa,MACAqJ,IACAlK,EAAAc,IAAAd,EAAAa,MACAb,EAAAa,MAAA,UAAAzJ,GAAA,WAAAA,EAAA,EAAA,KAWA,QAAAuV,GAAArB,EAAAsB,GACA,GAAAlS,GAAAlD,EAAA8S,EAAArQ,EAAAwR,CAGA,KAAA/Q,IAAA4Q,GAeA,GAdA9T,EAAAsF,GAAA+P,UAAAnS,GACA4P,EAAAsC,EAAApV,GACAyC,EAAAqR,EAAA5Q,GACAoC,GAAAgQ,QAAA7S,KACAqQ,EAAArQ,EAAA,GACAA,EAAAqR,EAAA5Q,GAAAT,EAAA,IAGAS,IAAAlD,IACA8T,EAAA9T,GAAAyC,QACAqR,GAAA5Q,KAGA+Q,EAAA3O,GAAAiQ,SAAAvV,KACA,UAAAiU,GAAA,CACAxR,EAAAwR,EAAAuB,OAAA/S,SACAqR,GAAA9T,EAIA,KAAAkD,IAAAT,GACAS,IAAA4Q,KACAA,EAAA5Q,GAAAT,EAAAS,GACAkS,EAAAlS,GAAA4P,OAIAsC,GAAApV,GAAA8S,EAKA,QAAAa,GAAApN,EAAAkP,EAAA1O,GACA,GAAA2O,GACAC,EACAzS,EAAA,EACA/B,EAAAwS,EAAAiC,WAAAzU,OACA0U,EAAAvQ,GAAAwQ,WAAAnB,OAAA,iBAGAoB,GAAAxP,OAEAwP,EAAA,WACA,GAAAJ,EACA,OAAA,CAYA,KAVA,GAAAK,GAAA/C,IAAAD,IACAiD,EAAAvE,KAAAC,IAAA,EAAA+B,EAAAwC,UAAAxC,EAAAyC,SAAAH,GAIAI,EAAAH,EAAAvC,EAAAyC,UAAA,EACAE,EAAA,EAAAD,EACAlT,EAAA,EACA/B,EAAAuS,EAAA4C,OAAAnV,OAEA+B,EAAA/B,EAAA+B,IACAwQ,EAAA4C,OAAApT,GAAAqT,IAAAF,EAKA,OAFAR,GAAAW,WAAAjQ,GAAAmN,EAAA2C,EAAAJ,IAEAI,EAAA,GAAAlV,EACA8U,GAEAJ,EAAAY,YAAAlQ,GAAAmN,KACA,IAGAA,EAAAmC,EAAAa,SACAnQ,KAAAA,EACAuN,MAAAxO,GAAAwI,UAAA2H,GACA1B,KAAAzO,GAAAwI,QAAA,GACAsH,iBACAtC,OAAAxN,GAAAwN,OAAA3H,UACApE,GACA4P,mBAAAlB,EACAmB,gBAAA7P,EACAmP,UAAAjD,IAAAD,IACAmD,SAAApP,EAAAoP,SACAG,UACA7C,YAAA,SAAA7T,EAAA0J,GACA,GAAAd,GAAAlD,GAAAuN,MAAAtM,EAAAmN,EAAAK,KAAAnU,EAAA0J,EACAoK,EAAAK,KAAAqB,cAAAxV,IAAA8T,EAAAK,KAAAjB,OAEA,OADAY,GAAA4C,OAAAnU,KAAAqG,GACAA,GAEAqO,KAAA,SAAAC,GACA,GAAA5T,GAAA,EAIA/B,EAAA2V,EAAApD,EAAA4C,OAAAnV,OAAA,CACA,IAAAwU,EACA,MAAA/P,KAGA,KADA+P,GAAA,EACAzS,EAAA/B,EAAA+B,IACAwQ,EAAA4C,OAAApT,GAAAqT,IAAA,EAUA,OANAO,IACAjB,EAAAW,WAAAjQ,GAAAmN,EAAA,EAAA,IACAmC,EAAAY,YAAAlQ,GAAAmN,EAAAoD,KAEAjB,EAAAkB,WAAAxQ,GAAAmN,EAAAoD,IAEAlR,QAGAkO,EAAAJ,EAAAI,KAIA,KAFAqB,EAAArB,EAAAJ,EAAAK,KAAAqB,eAEAlS,EAAA/B,EAAA+B,IAEA,GADAwS,EAAA/B,EAAAiC,WAAA1S,GAAApD,KAAA4T,EAAAnN,EAAAuN,EAAAJ,EAAAK,MAMA,MAJAzO,IAAAe,WAAAqP,EAAAmB,QACAvR,GAAAiP,YAAAb,EAAAnN,KAAAmN,EAAAK,KAAAO,OAAAuC,KACAvR,GAAA0R,MAAAtB,EAAAmB,KAAAnB,IAEAA,CAmBA,OAfApQ,IAAAtE,IAAA8S,EAAAL,EAAAC,GAEApO,GAAAe,WAAAqN,EAAAK,KAAA1K,QACAqK,EAAAK,KAAA1K,MAAAvJ,KAAAyG,EAAAmN,GAGApO,GAAA2R,GAAAC,MACA5R,GAAAwI,OAAAiI,GACAxP,KAAAA,EACA4N,KAAAT,EACAY,MAAAZ,EAAAK,KAAAO,SAKAZ,EAAAyD,SAAAzD,EAAAK,KAAAoD,UACAlC,KAAAvB,EAAAK,KAAAkB,KAAAvB,EAAAK,KAAAqD,UACAC,KAAA3D,EAAAK,KAAAsD,MACA1C,OAAAjB,EAAAK,KAAAY,QAikBA,QAAA2C,GAAA/Q,GACA,MAAAA,GAAA0B,cAAA1B,EAAA0B,aAAA,UAAA,GA+oBA,QAAAsP,GAAAC,GAGA,MAAA,UAAAC,EAAAC,GAEA,gBAAAD,KACAC,EAAAD,EACAA,EAAA,IAGA,IAAAE,GACAjX,EAAA,EACAkX,EAAAH,EAAAzP,cAAAd,MAAAC,OAEA,IAAA7B,GAAAe,WAAAqR,GAGA,KAAAC,EAAAC,EAAAlX,MAGA,MAAAiX,EAAA,IACAA,EAAAA,EAAAlW,MAAA,IAAA,KACA+V,EAAAG,GAAAH,EAAAG,QAAAE,QAAAH,KAIAF,EAAAG,GAAAH,EAAAG,QAAAxV,KAAAuV,IAQA,QAAAI,GAAAN,EAAAzQ,EAAA6P,EAAAmB,GAKA,QAAAC,GAAAL,GACA,GAAAM,EAcA,OAbAC,GAAAP,IAAA,EACArS,GAAA2B,KAAAuQ,EAAAG,OAAA,SAAAvQ,EAAA+Q,GACA,GAAAC,GAAAD,EAAApR,EAAA6P,EAAAmB,EACA,OAAA,gBAAAK,IACAC,GAAAH,EAAAE,GAKAC,IACAJ,EAAAG,OADA,IAHArR,EAAA6Q,UAAAC,QAAAO,GACAJ,EAAAI,IACA,KAKAH,EAlBA,GAAAC,MACAG,EAAAb,IAAAc,EAoBA,OAAAN,GAAAjR,EAAA6Q,UAAA,MAAAM,EAAA,MAAAF,EAAA,KAMA,QAAAO,GAAAC,EAAApL,GACA,GAAAvF,GAAA4Q,EACAC,EAAApT,GAAAqT,aAAAD,eAEA,KAAA7Q,IAAAuF,OACApI,KAAAoI,EAAAvF,MACA6Q,EAAA7Q,GAAA2Q,EAAAC,IAAAA,OAAA5Q,GAAAuF,EAAAvF,GAOA,OAJA4Q,IACAnT,GAAAwI,QAAA,EAAA0K,EAAAC,GAGAD,EAOA,QAAAI,GAAAC,EAAAd,EAAAe,GAOA,IALA,GAAAC,GAAAhT,EAAAiT,EAAAC,EACAC,EAAAL,EAAAK,SACAtB,EAAAiB,EAAAjB,UAGA,MAAAA,EAAA,IACAA,EAAAuB,YACAnU,KAAA+T,IACAA,EAAAF,EAAAO,UAAArB,EAAAsB,kBAAA,gBAKA,IAAAN,EACA,IAAAhT,IAAAmT,GACA,GAAAA,EAAAnT,IAAAmT,EAAAnT,GAAAzE,KAAAyX,GAAA,CACAnB,EAAAC,QAAA9R,EACA,OAMA,GAAA6R,EAAA,IAAAkB,GACAE,EAAApB,EAAA,OACA,CAGA,IAAA7R,IAAA+S,GAAA,CACA,IAAAlB,EAAA,IAAAiB,EAAAS,WAAAvT,EAAA,IAAA6R,EAAA,IAAA,CACAoB,EAAAjT,CACA,OAEAkT,IACAA,EAAAlT,GAKAiT,EAAAA,GAAAC,EAMA,GAAAD,EAIA,MAHAA,KAAApB,EAAA,IACAA,EAAAC,QAAAmB,GAEAF,EAAAE,GAOA,QAAAO,GAAAV,EAAAW,EAAAzB,EAAA0B,GACA,GAAAC,GAAAC,EAAAC,EAAApP,EAAAqP,EACAP,KAGA1B,EAAAiB,EAAAjB,UAAAnW,OAGA,IAAAmW,EAAA,GACA,IAAAgC,IAAAf,GAAAS,WACAA,EAAAM,EAAA5R,eAAA6Q,EAAAS,WAAAM,EAOA,KAHAD,EAAA/B,EAAAuB,QAGAQ,GAcA,GAZAd,EAAAiB,eAAAH,KACA5B,EAAAc,EAAAiB,eAAAH,IAAAH,IAIAK,GAAAJ,GAAAZ,EAAAkB,aACAP,EAAAX,EAAAkB,WAAAP,EAAAX,EAAAlB,WAGAkC,EAAAF,EACAA,EAAA/B,EAAAuB,QAKA,GAAA,MAAAQ,EAEAA,EAAAE,MAGA,IAAA,MAAAA,GAAAA,IAAAF,EAAA,CAMA,KAHAC,EAAAN,EAAAO,EAAA,IAAAF,IAAAL,EAAA,KAAAK,IAIA,IAAAD,IAAAJ,GAIA,GADA9O,EAAAkP,EAAA3Y,MAAA,KACAyJ,EAAA,KAAAmP,IAGAC,EAAAN,EAAAO,EAAA,IAAArP,EAAA,KACA8O,EAAA,KAAA9O,EAAA,KACA,EAGA,IAAAoP,EACAA,EAAAN,EAAAI,IAGA,IAAAJ,EAAAI,KACAC,EAAAnP,EAAA,GACAoN,EAAAC,QAAArN,EAAA,IAEA,OAOA,IAAA,IAAAoP,EAGA,GAAAA,GAAAf,EAAAmB,OACAR,EAAAI,EAAAJ,OAEA,KACAA,EAAAI,EAAAJ,GACA,MAAAnV,GACA,OACA4V,MAAA,cACAC,MAAAN,EAAAvV,EAAA,sBAAAwV,EAAA,OAAAF,IASA,OAAAM,MAAA,UAAAnS,KAAA0R,GAypBA,QAAAW,GAAAlX,EAAAtD,EAAAya,EAAAxN,GACA,GAAA5M,EAEA,IAAAsF,GAAAgQ,QAAA3V,GAGA2F,GAAA2B,KAAAtH,EAAA,SAAAe,EAAA2Z,GACAD,GAAAE,GAAAhZ,KAAA2B,GAGA2J,EAAA3J,EAAAoX,GAKAF,EACAlX,EAAA,KAAA,gBAAAoX,IAAA,MAAAA,EAAA3Z,EAAA,IAAA,IACA2Z,EACAD,EACAxN,SAKA,IAAAwN,GAAA,WAAA9U,GAAAS,KAAApG,GAUAiN,EAAA3J,EAAAtD,OAPA,KAAAK,IAAAL,GACAwa,EAAAlX,EAAA,IAAAjD,EAAA,IAAAL,EAAAK,GAAAoa,EAAAxN,GA0hBA,QAAA2N,GAAAhU,GACA,MAAAjB,IAAAU,SAAAO,GAAAA,EAAA,IAAAA,EAAAC,UAAAD,EAAAiU,YAtuSA,GAAAC,MAEAhV,EAAAE,EAAAF,SAEAhE,EAAAgZ,EAAAhZ,MAEAC,EAAA+Y,EAAA/Y,OAEAS,EAAAsY,EAAAtY,KAEAgB,EAAAsX,EAAAtX,QAEAuX,MAEAC,GAAAD,GAAAC,SAEA9a,GAAA6a,GAAA/W,eAEA+K,MAQApJ,GAAA,SAAA+G,EAAA7C,GAIA,MAAA,IAAAlE,IAAAgH,GAAAyG,KAAA1G,EAAA7C,IAKAoR,GAAA,qCAGAC,GAAA,QACAC,GAAA,eAGAC,GAAA,SAAAC,EAAAC,GACA,MAAAA,GAAA5J,cAGA/L,IAAAgH,GAAAhH,GAAA5B,WAGAwX,OA1BA,QA4BAC,YAAA7V,GAGA+G,SAAA,GAGAlL,OAAA,EAEAia,QAAA,WACA,MAAA3Z,GAAA3B,KAAA8F,OAKAuE,IAAA,SAAAkR,GACA,MAAA,OAAAA,EAGAA,EAAA,EAAAzV,KAAAyV,EAAAzV,KAAAzE,QAAAyE,KAAAyV,GAGA5Z,EAAA3B,KAAA8F,OAKA0V,UAAA,SAAAvR,GAGA,GAAAnF,GAAAU,GAAAuE,MAAAjE,KAAAuV,cAAApR,EAOA,OAJAnF,GAAA2W,WAAA3V,KACAhB,EAAA4E,QAAA5D,KAAA4D,QAGA5E,GAIAqC,KAAA,SAAAvC,GACA,MAAAY,IAAA2B,KAAArB,KAAAlB,IAGA1D,IAAA,SAAA0D,GACA,MAAAkB,MAAA0V,UAAAhW,GAAAtE,IAAA4E,KAAA,SAAAW,EAAA7F,GACA,MAAAgE,GAAA5E,KAAAyG,EAAA7F,EAAA6F,OAIA9E,MAAA,WACA,MAAAmE,MAAA0V,UAAA7Z,EAAAY,MAAAuD,KAAA1D,aAGAmM,MAAA,WACA,MAAAzI,MAAAkJ,GAAA,IAGA0M,KAAA,WACA,MAAA5V,MAAAkJ,IAAA,IAGAA,GAAA,SAAApO,GACA,GAAA+a,GAAA7V,KAAAzE,OACAR,GAAAD,GAAAA,EAAA,EAAA+a,EAAA,EACA,OAAA7V,MAAA0V,UAAA3a,GAAA,GAAAA,EAAA8a,GAAA7V,KAAAjF,SAGA2I,IAAA,WACA,MAAA1D,MAAA2V,YAAA3V,KAAAuV,eAKAhZ,KAAAA,EACAuZ,KAAAjB,EAAAiB,KACA/Z,OAAA8Y,EAAA9Y,QAGA2D,GAAAwI,OAAAxI,GAAAgH,GAAAwB,OAAA,WACA,GAAA/G,GAAA/G,EAAAoN,EAAAuO,EAAAC,EAAA5M,EACAwJ,EAAAtW,UAAA,OACAxB,EAAA,EACAS,EAAAe,UAAAf,OACAsX,GAAA,CAsBA,KAnBA,iBAAAD,KACAC,EAAAD,EAGAA,EAAAtW,UAAAxB,OACAA,KAIA,gBAAA8X,IAAAlT,GAAAe,WAAAmS,KACAA,MAIA9X,IAAAS,IACAqX,EAAA5S,KACAlF,KAGAA,EAAAS,EAAAT,IAGA,GAAA,OAAAqG,EAAA7E,UAAAxB,IAGA,IAAAV,IAAA+G,GACAqG,EAAAoL,EAAAxY,GACA2b,EAAA5U,EAAA/G,GAGAwY,IAAAmD,IAKAlD,GAAAkD,IAAArW,GAAAuW,cAAAF,KACAC,EAAAtW,GAAAgQ,QAAAqG,MAEAC,GACAA,GAAA,EACA5M,EAAA5B,GAAA9H,GAAAgQ,QAAAlI,GAAAA,MAGA4B,EAAA5B,GAAA9H,GAAAuW,cAAAzO,GAAAA,KAIAoL,EAAAxY,GAAAsF,GAAAwI,OAAA2K,EAAAzJ,EAAA2M,QAGA3W,KAAA2W,IACAnD,EAAAxY,GAAA2b,GAOA,OAAAnD,IAGAlT,GAAAwI,QAGApG,QAAA,UAnLA,QAmLAgK,KAAAoK,UAAAva,QAAA,MAAA,IAGAwa,SAAA,EAEA7B,MAAA,SAAA8B,GACA,KAAA,IAAAjZ,OAAAiZ,IAGAC,KAAA,aAEA5V,WAAA,SAAA1G,GACA,MAAA,aAAA2F,GAAAS,KAAApG,IAGA2V,QAAA4G,MAAA5G,QAEAtP,SAAA,SAAArG,GACA,MAAA,OAAAA,GAAAA,IAAAA,EAAAgG,QAGAwW,UAAA,SAAAxc,GAMA,GAAAyc,GAAAzc,GAAAA,EAAAgb,UACA,QAAArV,GAAAgQ,QAAA3V,IAAAyc,EAAA7J,WAAA6J,GAAA,GAAA,GAGAP,cAAA,SAAAlc,GACA,GAAAkI,EAMA,IAAA,WAAAvC,GAAAS,KAAApG,IAAAA,EAAA6G,UAAAlB,GAAAU,SAAArG,GACA,OAAA,CAIA,IAAAA,EAAAwb,cACAtb,GAAAC,KAAAH,EAAA,iBACAE,GAAAC,KAAAH,EAAAwb,YAAAzX,cAAA,iBACA,OAAA,CAKA,KAAAmE,IAAAlI,IAEA,WAAAqF,KAAA6C,GAAAhI,GAAAC,KAAAH,EAAAkI,IAGAmN,cAAA,SAAArV,GACA,GAAAK,EACA,KAAAA,IAAAL,GACA,OAAA,CAEA,QAAA,GAGAoG,KAAA,SAAApG,GACA,MAAA,OAAAA,EACAA,EAAA,GAIA,gBAAAA,IAAA,kBAAAA,GACA+a,GAAAC,GAAA7a,KAAAH,KAAA,eACAA,IAIAuP,WAAA,SAAAmN,GACA,GAAAC,GACAC,EAAAC,MAEAH,EAAA/W,GAAAmX,KAAAJ,MAOA,IAAAA,EAAAlZ,QAAA,eACAmZ,EAAA7W,EAAAuF,cAAA,UACAsR,EAAAI,KAAAL,EACA5W,EAAAkX,KAAA5R,YAAAuR,GAAA/M,WAAAC,YAAA8M,IAMAC,EAAAF,KAQAhH,UAAA,SAAAuH,GACA,MAAAA,GAAArb,QAAAsZ,GAAA,OAAAtZ,QAAAuZ,GAAAC,KAGAnR,SAAA,SAAArD,EAAAvG,GACA,MAAAuG,GAAAqD,UAAArD,EAAAqD,SAAA5B,gBAAAhI,EAAAgI,eAGAf,KAAA,SAAAtH,EAAA+E,GACA,GAAAvD,GAAAT,EAAA,CAEA,IAAAoF,EAAAnG,GAEA,IADAwB,EAAAxB,EAAAwB,OACAT,EAAAS,IACA,IAAAuD,EAAA5E,KAAAH,EAAAe,GAAAA,EAAAf,EAAAe,IADAA,SAMA,KAAAA,IAAAf,GACA,IAAA,IAAA+E,EAAA5E,KAAAH,EAAAe,GAAAA,EAAAf,EAAAe,IACA,KAKA,OAAAf,IAIA8c,KAAA,SAAAC,GACA,MAAA,OAAAA,EACA,IACAA,EAAA,IAAAnb,QAAAqZ,GAAA,KAIAiC,UAAA,SAAApC,EAAAqC,GACA,GAAAlY,GAAAkY,KAaA,OAXA,OAAArC,IACA3U,EAAArC,OAAAgX,IACAnV,GAAAuE,MAAAjF,EACA,gBAAA6V,IACAA,GAAAA,GAGAtY,EAAArC,KAAA8E,EAAA6V,IAIA7V,GAGA+G,QAAA,SAAApF,EAAAkU,EAAA/Z,GACA,MAAA,OAAA+Z,GAAA,EAAAtX,EAAArD,KAAA2a,EAAAlU,EAAA7F,IAGAmJ,MAAA,SAAAwE,EAAA0O,GAKA,IAJA,GAAAtB,IAAAsB,EAAA5b,OACAR,EAAA,EACAD,EAAA2N,EAAAlN,OAEAR,EAAA8a,EAAA9a,IACA0N,EAAA3N,KAAAqc,EAAApc,EAKA,OAFA0N,GAAAlN,OAAAT,EAEA2N,GAGA/H,KAAA,SAAAyD,EAAArF,EAAAsY,GASA,IARA,GACAvL,MACA/Q,EAAA,EACAS,EAAA4I,EAAA5I,OACA8b,GAAAD,EAIAtc,EAAAS,EAAAT,KACAgE,EAAAqF,EAAArJ,GAAAA,KACAuc,GACAxL,EAAAtP,KAAA4H,EAAArJ,GAIA,OAAA+Q,IAIAzQ,IAAA,SAAA+I,EAAArF,EAAAwY,GACA,GAAA/b,GAAAsB,EACA/B,EAAA,EACAkE,IAGA,IAAAkB,EAAAiE,GAEA,IADA5I,EAAA4I,EAAA5I,OACAT,EAAAS,EAAAT,IAGA,OAFA+B,EAAAiC,EAAAqF,EAAArJ,GAAAA,EAAAwc,KAGAtY,EAAAzC,KAAAM,OAMA,KAAA/B,IAAAqJ,GAGA,OAFAtH,EAAAiC,EAAAqF,EAAArJ,GAAAA,EAAAwc,KAGAtY,EAAAzC,KAAAM,EAMA,OAAAf,GAAAW,SAAAuC,IAIA+H,KAAA,EAIAqK,MAAA,SAAA1K,EAAA9C,GACA,GAAAgB,GAAAxI,EAAAgV,CAUA,IARA,gBAAAxN,KACAgB,EAAA8B,EAAA9C,GACAA,EAAA8C,EACAA,EAAA9B,GAKAlF,GAAAe,WAAAiG,GAaA,MARAtK,GAAAP,EAAA3B,KAAAoC,UAAA,GACA8U,EAAA,WACA,MAAA1K,GAAAjK,MAAAmH,GAAA5D,KAAA5D,EAAAN,OAAAD,EAAA3B,KAAAoC,cAIA8U,EAAArK,KAAAL,EAAAK,KAAAL,EAAAK,MAAArH,GAAAqH,OAEAqK,GAGA9D,IAAAiK,KAAAjK,IAIAxE,QAAAA,KAQA,kBAAA0O,UACA9X,GAAAgH,GAAA8Q,OAAAC,UAAA5C,EAAA2C,OAAAC,WAKA/X,GAAA2B,KAAA,uEAAAlG,MAAA,KACA,SAAAL,EAAAV,GACA0a,GAAA,WAAA1a,EAAA,KAAAA,EAAAgI,eAmBA,IAAAsV,IAWA,SAAA3X,GAsLA,QAAA2X,GAAAjR,EAAA7C,EAAAsT,EAAAS,GACA,GAAAC,GAAA9c,EAAA6F,EAAAkX,EAAAC,EAAAxW,EAAAyW,EAAAC,EACAC,EAAArU,GAAAA,EAAAoC,cAGApF,EAAAgD,EAAAA,EAAAhD,SAAA,CAKA,IAHAsW,EAAAA,MAGA,gBAAAzQ,KAAAA,GACA,IAAA7F,GAAA,IAAAA,GAAA,KAAAA,EAEA,MAAAsW,EAIA,KAAAS,KAEA/T,EAAAA,EAAAoC,eAAApC,EAAAsU,KAAArY,GACAsY,EAAAvU,GAEAA,EAAAA,GAAA/D,EAEAuY,GAAA,CAIA,GAAA,KAAAxX,IAAAU,EAAA+W,GAAA9U,KAAAkD,IAGA,GAAAmR,EAAAtW,EAAA,IAGA,GAAA,IAAAV,EAAA,CACA,KAAAD,EAAAiD,EAAA0U,eAAAV,IAUA,MAAAV,EALA,IAAAvW,EAAAhC,KAAAiZ,EAEA,MADAV,GAAA3a,KAAAoE,GACAuW,MAYA,IAAAe,IAAAtX,EAAAsX,EAAAK,eAAAV,KACA9S,EAAAlB,EAAAjD,IACAA,EAAAhC,KAAAiZ,EAGA,MADAV,GAAA3a,KAAAoE,GACAuW,MAKA,CAAA,GAAA5V,EAAA,GAEA,MADA/E,GAAAE,MAAAya,EAAAtT,EAAAE,qBAAA2C,IACAyQ,CAGA,KAAAU,EAAAtW,EAAA,KAAAwH,EAAAyP,wBACA3U,EAAA2U,uBAGA,MADAhc,GAAAE,MAAAya,EAAAtT,EAAA2U,uBAAAX,IACAV,EAKA,GAAApO,EAAA0P,MACAC,EAAAhS,EAAA,QACAiS,IAAAA,EAAAhd,KAAA+K,IAAA,CAEA,GAAA,IAAA7F,EACAqX,EAAArU,EACAoU,EAAAvR,MAMA,IAAA,WAAA7C,EAAAI,SAAA5B,cAAA,CAaA,KAVAyV,EAAAjU,EAAAvB,aAAA,OACAwV,EAAAA,EAAAlc,QAAAgd,GAAA,QAEA/U,EAAAgV,aAAA,KAAAf,EAAA/V,GAIAiW,EAAAc,EAAApS,GACA3L,EAAAid,EAAAxc,OACAuc,EAAAgB,GAAApd,KAAAmc,GAAA,IAAAA,EAAA,QAAAA,EAAA,KACA/c,KACAid,EAAAjd,GAAAgd,EAAA,IAAAiB,EAAAhB,EAAAjd,GAEAkd,GAAAD,EAAA/b,KAAA,KAGAic,EAAAe,GAAAtd,KAAA+K,IAAAwS,EAAArV,EAAA+F,aACA/F,EAGA,GAAAoU,EACA,IAIA,MAHAzb,GAAAE,MAAAya,EACAe,EAAAlU,iBAAAiU,IAEAd,EACA,MAAAgC,IACA,QACArB,IAAA/V,GACA8B,EAAA0D,gBAAA,QASA,MAAA6R,GAAA1S,EAAA9K,QAAAqZ,GAAA,MAAApR,EAAAsT,EAAAS,GASA,QAAAyB,KAGA,QAAAC,GAAApX,EAAApF,GAMA,MAJAyc,GAAA/c,KAAA0F,EAAA,KAAAsX,EAAAC,mBAEAH,GAAAC,EAAA/F,SAEA8F,EAAApX,EAAA,KAAApF,EARA,GAAAyc,KAUA,OAAAD,GAOA,QAAAI,GAAA/S,GAEA,MADAA,GAAA5E,IAAA,EACA4E,EAOA,QAAAgT,GAAAhT,GACA,GAAAiT,GAAA9Z,EAAAuF,cAAA,MAEA,KACA,QAAAsB,EAAAiT,GACA,MAAAlb,GACA,OAAA,EACA,QAEAkb,EAAAhQ,YACAgQ,EAAAhQ,WAAAC,YAAA+P,GAGAA,EAAA,MASA,QAAAC,GAAAlM,EAAAmM,GAIA,IAHA,GAAAhF,GAAAnH,EAAAvS,MAAA,KACAL,EAAA+Z,EAAAtZ,OAEAT,KACAye,EAAAO,WAAAjF,EAAA/Z,IAAA+e,EAUA,QAAAE,GAAAC,EAAAC,GACA,GAAAjZ,GAAAiZ,GAAAD,EACAE,EAAAlZ,GAAA,IAAAgZ,EAAApZ,UAAA,IAAAqZ,EAAArZ,YACAqZ,EAAAE,aAAAC,KACAJ,EAAAG,aAAAC,EAGA,IAAAF,EACA,MAAAA,EAIA,IAAAlZ,EACA,KAAAA,EAAAA,EAAAqZ,aACA,GAAArZ,IAAAiZ,EACA,OAAA,CAKA,OAAAD,GAAA,GAAA,EA6BA,QAAAM,GAAA5T,GACA,MAAA+S,GAAA,SAAAc,GAEA,MADAA,IAAAA,EACAd,EAAA,SAAA9B,EAAA9L,GAMA,IALA,GAAA9Q,GACAyf,EAAA9T,KAAAiR,EAAApc,OAAAgf,GACAzf,EAAA0f,EAAAjf,OAGAT,KACA6c,EAAA5c,EAAAyf,EAAA1f,MACA6c,EAAA5c,KAAA8Q,EAAA9Q,GAAA4c,EAAA5c,SAYA,QAAAke,GAAArV,GACA,MAAAA,QAAA,KAAAA,EAAAE,sBAAAF,EAohCA,QAAA6W,MAuEA,QAAA1B,GAAA2B,GAIA,IAHA,GAAA5f,GAAA,EACA+a,EAAA6E,EAAAnf,OACAkL,EAAA,GACA3L,EAAA+a,EAAA/a,IACA2L,GAAAiU,EAAA5f,GAAA+B,KAEA,OAAA4J,GAGA,QAAAkU,GAAAC,EAAAC,EAAAC,GACA,GAAA7Z,GAAA4Z,EAAA5Z,IACA8Z,EAAAD,GAAA,eAAA7Z,EACA+Z,EAAA3L,GAEA,OAAAwL,GAAApS,MAEA,SAAA9H,EAAAiD,EAAAqX,GACA,KAAAta,EAAAA,EAAAM,IACA,GAAA,IAAAN,EAAAC,UAAAma,EACA,MAAAH,GAAAja,EAAAiD,EAAAqX,IAMA,SAAAta,EAAAiD,EAAAqX,GACA,GAAAC,GAAAC,EAAAC,EACAC,GAAAC,EAAAN,EAGA,IAAAC,GACA,KAAAta,EAAAA,EAAAM,IACA,IAAA,IAAAN,EAAAC,UAAAma,IACAH,EAAAja,EAAAiD,EAAAqX,GACA,OAAA,MAKA,MAAAta,EAAAA,EAAAM,IACA,GAAA,IAAAN,EAAAC,UAAAma,EAAA,CAOA,GANAK,EAAAza,EAAAmB,KAAAnB,EAAAmB,OAIAqZ,EAAAC,EAAAza,EAAA4a,YAAAH,EAAAza,EAAA4a,eAEAL,EAAAC,EAAAla,KACAia,EAAA,KAAAI,GAAAJ,EAAA,KAAAF,EAGA,MAAAK,GAAA,GAAAH,EAAA,EAMA,IAHAC,EAAAla,GAAAoa,EAGAA,EAAA,GAAAT,EAAAja,EAAAiD,EAAAqX,GACA,OAAA,IASA,QAAAO,GAAAC,GACA,MAAAA,GAAAlgB,OAAA,EACA,SAAAoF,EAAAiD,EAAAqX,GAEA,IADA,GAAAngB,GAAA2gB,EAAAlgB,OACAT,KACA,IAAA2gB,EAAA3gB,GAAA6F,EAAAiD,EAAAqX,GACA,OAAA,CAGA,QAAA,GAEAQ,EAAA,GAGA,QAAAC,GAAAjV,EAAAkV,EAAAzE,GAGA,IAFA,GAAApc,GAAA,EACA+a,EAAA8F,EAAApgB,OACAT,EAAA+a,EAAA/a,IACA4c,EAAAjR,EAAAkV,EAAA7gB,GAAAoc,EAEA,OAAAA,GAGA,QAAA0E,GAAAC,EAAAzgB,EAAA0F,EAAA8C,EAAAqX,GAOA,IANA,GAAAta,GACAmb,KACAhhB,EAAA,EACA+a,EAAAgG,EAAAtgB,OACAwgB,EAAA,MAAA3gB,EAEAN,EAAA+a,EAAA/a,KACA6F,EAAAkb,EAAA/gB,MACAgG,IAAAA,EAAAH,EAAAiD,EAAAqX,KACAa,EAAAvf,KAAAoE,GACAob,GACA3gB,EAAAmB,KAAAzB,IAMA,OAAAghB,GAGA,QAAAE,GAAAC,EAAAxV,EAAAmU,EAAAsB,EAAAC,EAAAC,GAOA,MANAF,KAAAA,EAAApa,KACAoa,EAAAF,EAAAE,IAEAC,IAAAA,EAAAra,KACAqa,EAAAH,EAAAG,EAAAC,IAEA3C,EAAA,SAAA9B,EAAAT,EAAAtT,EAAAqX,GACA,GAAAzK,GAAA1V,EAAA6F,EACA0b,KACAC,KACAC,EAAArF,EAAA3b,OAGA4I,EAAAwT,GAAA+D,EAAAjV,GAAA,IAAA7C,EAAAhD,UAAAgD,GAAAA,MAGA4Y,GAAAP,IAAAtE,GAAAlR,EAEAtC,EADAyX,EAAAzX,EAAAkY,EAAAJ,EAAArY,EAAAqX,GAGAwB,EAAA7B,EAEAuB,IAAAxE,EAAAsE,EAAAM,GAAAL,MAMAhF,EACAsF,CAQA,IALA5B,GACAA,EAAA4B,EAAAC,EAAA7Y,EAAAqX,GAIAiB,EAMA,IALA1L,EAAAoL,EAAAa,EAAAH,GACAJ,EAAA1L,KAAA5M,EAAAqX,GAGAngB,EAAA0V,EAAAjV,OACAT,MACA6F,EAAA6P,EAAA1V,MACA2hB,EAAAH,EAAAxhB,MAAA0hB,EAAAF,EAAAxhB,IAAA6F,GAKA,IAAAgX,GACA,GAAAwE,GAAAF,EAAA,CACA,GAAAE,EAAA,CAIA,IAFA3L,KACA1V,EAAA2hB,EAAAlhB,OACAT,MACA6F,EAAA8b,EAAA3hB,KAEA0V,EAAAjU,KAAAigB,EAAA1hB,GAAA6F,EAGAwb,GAAA,KAAAM,KAAAjM,EAAAyK,GAKA,IADAngB,EAAA2hB,EAAAlhB,OACAT,MACA6F,EAAA8b,EAAA3hB,MACA0V,EAAA2L,EAAA5e,EAAAoa,EAAAhX,GAAA0b,EAAAvhB,KAAA,IAEA6c,EAAAnH,KAAA0G,EAAA1G,GAAA7P,SAOA8b,GAAAb,EACAa,IAAAvF,EACAuF,EAAA1gB,OAAAwgB,EAAAE,EAAAlhB,QACAkhB,GAEAN,EACAA,EAAA,KAAAjF,EAAAuF,EAAAxB,GAEA1e,EAAAE,MAAAya,EAAAuF,KAMA,QAAAC,GAAAhC,GAwBA,IAvBA,GAAAiC,GAAA/B,EAAA7f,EACA8a,EAAA6E,EAAAnf,OACAqhB,EAAArD,EAAAsD,SAAAnC,EAAA,GAAAva,MACA2c,EAAAF,GAAArD,EAAAsD,SAAA,KACA/hB,EAAA8hB,EAAA,EAAA,EAGAG,EAAApC,EAAA,SAAAha,GACA,MAAAA,KAAAgc,GACAG,GAAA,GACAE,EAAArC,EAAA,SAAAha,GACA,MAAApD,GAAAof,EAAAhc,IAAA,GACAmc,GAAA,GACArB,GAAA,SAAA9a,EAAAiD,EAAAqX,GACA,GAAAjc,IAAA4d,IAAA3B,GAAArX,IAAAqZ,MACAN,EAAA/Y,GAAAhD,SACAmc,EAAApc,EAAAiD,EAAAqX,GACA+B,EAAArc,EAAAiD,EAAAqX,GAGA,OADA0B,GAAA,KACA3d,IAGAlE,EAAA+a,EAAA/a,IACA,GAAA8f,EAAArB,EAAAsD,SAAAnC,EAAA5f,GAAAqF,MACAsb,GAAAd,EAAAa,EAAAC,GAAAb,QACA,CAIA,GAHAA,EAAArB,EAAAzY,OAAA4Z,EAAA5f,GAAAqF,MAAA1D,MAAA,KAAAie,EAAA5f,GAAA+Q,SAGA+O,EAAA9Y,GAAA,CAGA,IADA/G,IAAAD,EACAC,EAAA8a,IACA0D,EAAAsD,SAAAnC,EAAA3f,GAAAoF,MADApF,KAKA,MAAAihB,GACAlhB,EAAA,GAAA0gB,EAAAC,GACA3gB,EAAA,GAAAie,EAEA2B,EAAA7e,MAAA,EAAAf,EAAA,GAAAgB,QAAAe,MAAA,MAAA6d,EAAA5f,EAAA,GAAAqF,KAAA,IAAA,MACAxE,QAAAqZ,GAAA,MACA4F,EACA9f,EAAAC,GAAA2hB,EAAAhC,EAAA7e,MAAAf,EAAAC,IACAA,EAAA8a,GAAA6G,EAAAhC,EAAAA,EAAA7e,MAAAd,IACAA,EAAA8a,GAAAkD,EAAA2B,IAGAe,EAAAlf,KAAAqe,GAIA,MAAAY,GAAAC,GAGA,QAAAyB,GAAAC,EAAAC,GACA,GAAAC,GAAAD,EAAA7hB,OAAA,EACA+hB,EAAAH,EAAA5hB,OAAA,EACAgiB,EAAA,SAAA5F,EAAA/T,EAAAqX,EAAA/D,EAAAsG,GACA,GAAA7c,GAAA5F,EAAA6f,EACA6C,EAAA,EACA3iB,EAAA,IACA+gB,EAAAlE,MACA+F,KACAC,EAAAV,EAEA9Y,EAAAwT,GAAA2F,GAAA/D,EAAAqE,KAAA,IAAA,IAAAJ,GAEAK,EAAAvC,GAAA,MAAAqC,EAAA,EAAA7R,KAAAoK,UAAA,GACAL,EAAA1R,EAAA5I,MASA,KAPAiiB,IACAP,EAAArZ,IAAA/D,GAAA+D,GAAA4Z,GAMA1iB,IAAA+a,GAAA,OAAAlV,EAAAwD,EAAArJ,IAAAA,IAAA,CACA,GAAAwiB,GAAA3c,EAAA,CAMA,IALA5F,EAAA,EACA6I,GAAAjD,EAAAqF,gBAAAnG,IACAsY,EAAAxX,GACAsa,GAAA7C,GAEAwC,EAAAuC,EAAApiB,MACA,GAAA6f,EAAAja,EAAAiD,GAAA/D,EAAAob,GAAA,CACA/D,EAAA3a,KAAAoE,EACA,OAGA6c,IACAlC,EAAAuC,GAKAR,KAEA1c,GAAAia,GAAAja,IACA8c,IAIA9F,GACAkE,EAAAtf,KAAAoE,IAgBA,GATA8c,GAAA3iB,EASAuiB,GAAAviB,IAAA2iB,EAAA,CAEA,IADA1iB,EAAA,EACA6f,EAAAwC,EAAAriB,MACA6f,EAAAiB,EAAA6B,EAAA9Z,EAAAqX,EAGA,IAAAtD,EAAA,CAEA,GAAA8F,EAAA,EACA,KAAA3iB,KACA+gB,EAAA/gB,IAAA4iB,EAAA5iB,KACA4iB,EAAA5iB,GAAAgjB,EAAA5jB,KAAAgd,GAMAwG,GAAA9B,EAAA8B,GAIAnhB,EAAAE,MAAAya,EAAAwG,GAGAF,IAAA7F,GAAA+F,EAAAniB,OAAA,GACAkiB,EAAAL,EAAA7hB,OAAA,GAEAmc,EAAAqG,WAAA7G,GAUA,MALAsG,KACAlC,EAAAuC,EACAZ,EAAAU,GAGA9B,EAGA,OAAAwB,GACA5D,EAAA8D,GACAA,EAv5DA,GAAAziB,GACAgO,EACAyQ,EACAyE,EACAC,EACApF,EACAqF,EACA/E,EACA8D,EACAkB,EACAC,EAGAjG,EACAtY,EACAwe,EACAjG,EACAM,EACA4F,EACAzS,EACA/G,EAGAhD,EAAA,SAAA,EAAA,GAAAyV,MACAW,EAAAnY,EAAAF,SACAyb,EAAA,EACAjM,EAAA,EACAkP,EAAAnF,IACAoF,EAAApF,IACAX,EAAAW,IACAqF,EAAA,SAAAzE,EAAAC,GAIA,MAHAD,KAAAC,IACAmE,GAAA,GAEA,GAIAhE,EAAA,GAAA,GAGAngB,KAAA8D,eACA8W,KACAiJ,EAAAjJ,EAAAiJ,IACAY,EAAA7J,EAAAtY,KACAA,EAAAsY,EAAAtY,KACAV,EAAAgZ,EAAAhZ,MAGA0B,EAAA,SAAAohB,EAAAhe,GAGA,IAFA,GAAA7F,GAAA,EACA+a,EAAA8I,EAAApjB,OACAT,EAAA+a,EAAA/a,IACA,GAAA6jB,EAAA7jB,KAAA6F,EACA,MAAA7F,EAGA,QAAA,GAGA8jB,EAAA,6HAKAC,GAAA,sBAGAC,GAAA,mCAGAC,GAAA,MAAAF,GAAA,KAAAC,GAAA,OAAAD,GAEA,gBAAAA,GAEA,2DAAAC,GAAA,OAAAD,GACA,OAEAG,GAAA,KAAAF,GAAA,wFAKAC,GAAA,eAMAE,GAAA,GAAAC,QAAAL,GAAA,IAAA,KACA7J,GAAA,GAAAkK,QAAA,IAAAL,GAAA,8BAAAA,GAAA,KAAA,KAEAM,GAAA,GAAAD,QAAA,IAAAL,GAAA,KAAAA,GAAA,KACAO,GAAA,GAAAF,QAAA,IAAAL,GAAA,WAAAA,GAAA,IAAAA,GAAA,KAEAQ,GAAA,GAAAH,QAAA,IAAAL,GAAA,iBAAAA,GAAA,OAAA,KAEAS,GAAA,GAAAJ,QAAAF,IACAlG,GAAA,GAAAoG,QAAA,IAAAJ,GAAA,KAEAS,IACAC,GAAA,GAAAN,QAAA,MAAAJ,GAAA,KACAW,MAAA,GAAAP,QAAA,QAAAJ,GAAA,KACAY,IAAA,GAAAR,QAAA,KAAAJ,GAAA,SACAa,KAAA,GAAAT,QAAA,IAAAH,IACAa,OAAA,GAAAV,QAAA,IAAAF,IACAa,MAAA,GAAAX,QAAA,yDAAAL,GACA,+BAAAA,GAAA,cAAAA,GACA,aAAAA,GAAA,SAAA,KACAiB,KAAA,GAAAZ,QAAA,OAAAN,EAAA,KAAA,KAGAmB,aAAA,GAAAb,QAAA,IAAAL,GAAA,mDACAA,GAAA,mBAAAA,GAAA,mBAAA,MAGAmB,GAAA,sCACAC,GAAA,SAEAC,GAAA,yBAGA7H,GAAA,mCAEAW,GAAA,OACAL,GAAA,QAGAwH,GAAA,GAAAjB,QAAA,qBAAAL,GAAA,MAAAA,GAAA,OAAA,MACAuB,GAAA,SAAA5e,EAAA6e,EAAAC,GACA,GAAAC,GAAA,KAAAF,EAAA,KAIA,OAAAE,KAAAA,GAAAD,EACAD,EACAE,EAAA,EAEAC,OAAAC,aAAAF,EAAA,OAEAC,OAAAC,aAAAF,GAAA,GAAA,MAAA,KAAAA,EAAA,QAOAG,GAAA,WACAvI,IAIA,KACA5b,EAAAE,MACAoY,EAAAhZ,EAAA3B,KAAAge,EAAAvS,YACAuS,EAAAvS,YAIAkP,EAAAqD,EAAAvS,WAAApK,QAAAqF,SACA,MAAAnC,GACAlC,GAAAE,MAAAoY,EAAAtZ,OAGA,SAAAqX,EAAA+N,GACAjC,EAAAjiB,MAAAmW,EAAA/W,EAAA3B,KAAAymB,KAKA,SAAA/N,EAAA+N,GAIA,IAHA,GAAA5lB,GAAA6X,EAAArX,OACAT,EAAA,EAEA8X,EAAA7X,KAAA4lB,EAAA7lB,OACA8X,EAAArX,OAAAR,EAAA,IA8RA+N,EAAA4O,EAAA5O,WAOAmV,EAAAvG,EAAAuG,MAAA,SAAAtd,GAGA,GAAA0J,GAAA1J,IAAAA,EAAAqF,eAAArF,GAAA0J,eACA,SAAAA,GAAA,SAAAA,EAAArG,UAQAmU,EAAAT,EAAAS,YAAA,SAAAxP,GACA,GAAAiY,GAAAC,EACAjY,EAAAD,EAAAA,EAAA3C,eAAA2C,EAAAuP,CAGA,OAAAtP,KAAA/I,GAAA,IAAA+I,EAAAhI,UAAAgI,EAAAyB,iBAKAxK,EAAA+I,EACAyV,EAAAxe,EAAAwK,gBACA+N,GAAA6F,EAAApe,IAIAghB,EAAAhhB,EAAA+U,cAAAiM,EAAAC,MAAAD,IAEAA,EAAAE,iBACAF,EAAAE,iBAAA,SAAAL,IAAA,GAGAG,EAAAG,aACAH,EAAAG,YAAA,WAAAN,KAUA5X,EAAAiW,WAAArF,EAAA,SAAAC,GAEA,MADAA,GAAAsH,UAAA,KACAtH,EAAAtX,aAAA,eAOAyG,EAAAhF,qBAAA4V,EAAA,SAAAC,GAEA,MADAA,GAAAxU,YAAAtF,EAAAqhB,cAAA,MACAvH,EAAA7V,qBAAA,KAAAvI,SAIAuN,EAAAyP,uBAAA2H,GAAAxkB,KAAAmE,EAAA0Y,wBAMAzP,EAAAqY,QAAAzH,EAAA,SAAAC,GAEA,MADA0E,GAAAlZ,YAAAwU,GAAAhb,GAAAmD,GACAjC,EAAAuhB,oBAAAvhB,EAAAuhB,kBAAAtf,GAAAvG,SAIAuN,EAAAqY,SACA5H,EAAAqE,KAAA,GAAA,SAAAjf,EAAAiF,GACA,OAAA,KAAAA,EAAA0U,gBAAAF,EAAA,CACA,GAAAR,GAAAhU,EAAA0U,eAAA3Z,EACA,OAAAiZ,IAAAA,QAGA2B,EAAAzY,OAAA,GAAA,SAAAnC,GACA,GAAA0iB,GAAA1iB,EAAAhD,QAAAwkB,GAAAC,GACA,OAAA,UAAAzf,GACA,MAAAA,GAAA0B,aAAA,QAAAgf,YAMA9H,GAAAqE,KAAA,GAEArE,EAAAzY,OAAA,GAAA,SAAAnC,GACA,GAAA0iB,GAAA1iB,EAAAhD,QAAAwkB,GAAAC,GACA,OAAA,UAAAzf,GACA,GAAAgI,OAAA,KAAAhI,EAAA2gB,kBACA3gB,EAAA2gB,iBAAA,KACA,OAAA3Y,IAAAA,EAAA9L,QAAAwkB,KAMA9H,EAAAqE,KAAA,IAAA9U,EAAAhF,qBACA,SAAAD,EAAAD,GACA,WAAA,KAAAA,EAAAE,qBACAF,EAAAE,qBAAAD,GAGAiF,EAAA0P,IACA5U,EAAAG,iBAAAF,OADA,IAKA,SAAAA,EAAAD,GACA,GAAAjD,GACAiE,KACA9J,EAAA,EAEAoc,EAAAtT,EAAAE,qBAAAD,EAGA,IAAA,MAAAA,EAAA,CACA,KAAAlD,EAAAuW,EAAApc,MACA,IAAA6F,EAAAC,UACAgE,EAAArI,KAAAoE,EAIA,OAAAiE,GAEA,MAAAsS,IAIAqC,EAAAqE,KAAA,MAAA9U,EAAAyP,wBAAA,SAAA0I,EAAArd,GACA,OAAA,KAAAA,EAAA2U,wBAAAH,EACA,MAAAxU,GAAA2U,uBAAA0I,IAUA3C,KAOA5F,MAEA5P,EAAA0P,IAAA0H,GAAAxkB,KAAAmE,EAAAkE,qBAGA2V,EAAA,SAAAC,GAMA0E,EAAAlZ,YAAAwU,GAAAnU,UAAA,UAAA1D,EAAA,qBACAA,EAAA,kEAOA6X,EAAA5V,iBAAA,wBAAAxI,QACAmd,EAAAnc,KAAA,SAAAsiB,GAAA,gBAKAlF,EAAA5V,iBAAA,cAAAxI,QACAmd,EAAAnc,KAAA,MAAAsiB,GAAA,aAAAD,EAAA,KAIAjF,EAAA5V,iBAAA,QAAAjC,EAAA,MAAAvG,QACAmd,EAAAnc,KAAA,MAMAod,EAAA5V,iBAAA,YAAAxI,QACAmd,EAAAnc,KAAA,YAMAod,EAAA5V,iBAAA,KAAAjC,EAAA,MAAAvG,QACAmd,EAAAnc,KAAA,cAIAmd,EAAA,SAAAC,GAGA,GAAA4H,GAAA1hB,EAAAuF,cAAA,QACAmc,GAAA3I,aAAA,OAAA,UACAe,EAAAxU,YAAAoc,GAAA3I,aAAA,OAAA,KAIAe,EAAA5V,iBAAA,YAAAxI,QACAmd,EAAAnc,KAAA,OAAAsiB,GAAA,eAKAlF,EAAA5V,iBAAA,YAAAxI,QACAmd,EAAAnc,KAAA,WAAA,aAIAod,EAAA5V,iBAAA,QACA2U,EAAAnc,KAAA,YAIAuM,EAAA0Y,gBAAAtB,GAAAxkB,KAAAmQ,EAAAwS,EAAAxS,SACAwS,EAAAoD,uBACApD,EAAAqD,oBACArD,EAAAsD,kBACAtD,EAAAuD,qBAEAlI,EAAA,SAAAC,GAGA7Q,EAAA+Y,kBAAAhW,EAAA3R,KAAAyf,EAAA,OAIA9N,EAAA3R,KAAAyf,EAAA,aACA2E,EAAA/hB,KAAA,KAAAyiB,MAIAtG,EAAAA,EAAAnd,QAAA,GAAA2jB,QAAAxG,EAAA1c,KAAA,MACAsiB,EAAAA,EAAA/iB,QAAA,GAAA2jB,QAAAZ,EAAAtiB,KAAA,MAIA4kB,EAAAV,GAAAxkB,KAAA2iB,EAAAyD,yBAKAhd,EAAA8b,GAAAV,GAAAxkB,KAAA2iB,EAAAvZ,UACA,SAAAkV,EAAAC,GACA,GAAA8H,GAAA,IAAA/H,EAAApZ,SAAAoZ,EAAA3P,gBAAA2P,EACAgI,EAAA/H,GAAAA,EAAAtQ,UACA,OAAAqQ,KAAAgI,MAAAA,GAAA,IAAAA,EAAAphB,YACAmhB,EAAAjd,SACAid,EAAAjd,SAAAkd,GACAhI,EAAA8H,yBAAA,GAAA9H,EAAA8H,wBAAAE,MAGA,SAAAhI,EAAAC,GACA,GAAAA,EACA,KAAAA,EAAAA,EAAAtQ,YACA,GAAAsQ,IAAAD,EACA,OAAA,CAIA,QAAA,GAOAyE,EAAAmC,EACA,SAAA5G,EAAAC,GAGA,GAAAD,IAAAC,EAEA,MADAmE,IAAA,EACA,CAIA,IAAA6D,IAAAjI,EAAA8H,yBAAA7H,EAAA6H,uBACA,OAAAG,KAKAA,GAAAjI,EAAAhU,eAAAgU,MAAAC,EAAAjU,eAAAiU,GACAD,EAAA8H,wBAAA7H,GAGA,EAGA,EAAAgI,IACAnZ,EAAAoZ,cAAAjI,EAAA6H,wBAAA9H,KAAAiI,EAGAjI,IAAAna,GAAAma,EAAAhU,gBAAAkS,GAAApT,EAAAoT,EAAA8B,IACA,EAEAC,IAAApa,GAAAoa,EAAAjU,gBAAAkS,GAAApT,EAAAoT,EAAA+B,GACA,EAIAkE,EACA5gB,EAAA4gB,EAAAnE,GAAAzc,EAAA4gB,EAAAlE,GACA,EAGA,EAAAgI,GAAA,EAAA,IAEA,SAAAjI,EAAAC,GAEA,GAAAD,IAAAC,EAEA,MADAmE,IAAA,EACA,CAGA,IAAApd,GACAlG,EAAA,EACAqnB,EAAAnI,EAAArQ,WACAqY,EAAA/H,EAAAtQ,WACAyY,GAAApI,GACAqI,GAAApI,EAGA,KAAAkI,IAAAH,EACA,MAAAhI,KAAAna,GAAA,EACAoa,IAAApa,EAAA,EACAsiB,GAAA,EACAH,EAAA,EACA7D,EACA5gB,EAAA4gB,EAAAnE,GAAAzc,EAAA4gB,EAAAlE,GACA,CAGA,IAAAkI,IAAAH,EACA,MAAAjI,GAAAC,EAAAC,EAKA,KADAjZ,EAAAgZ,EACAhZ,EAAAA,EAAA2I,YACAyY,EAAAnQ,QAAAjR,EAGA,KADAA,EAAAiZ,EACAjZ,EAAAA,EAAA2I,YACA0Y,EAAApQ,QAAAjR,EAIA,MAAAohB,EAAAtnB,KAAAunB,EAAAvnB,IACAA,GAGA,OAAAA,GAEAif,EAAAqI,EAAAtnB,GAAAunB,EAAAvnB,IAGAsnB,EAAAtnB,KAAAod,GAAA,EACAmK,EAAAvnB,KAAAod,EAAA,EACA,GAGArY,GArWAA,GAwWA6X,EAAA7L,QAAA,SAAAyW,EAAAhiB,GACA,MAAAoX,GAAA4K,EAAA,KAAA,KAAAhiB,IAGAoX,EAAA8J,gBAAA,SAAA7gB,EAAA2hB,GASA,IAPA3hB,EAAAqF,eAAArF,KAAAd,GACAsY,EAAAxX,GAIA2hB,EAAAA,EAAA3mB,QAAA0jB,GAAA,UAEAvW,EAAA0Y,iBAAApJ,IACAK,EAAA6J,EAAA,QACAhE,IAAAA,EAAA5iB,KAAA4mB,OACA5J,IAAAA,EAAAhd,KAAA4mB,IAEA,IACA,GAAAtjB,GAAA6M,EAAA3R,KAAAyG,EAAA2hB,EAGA,IAAAtjB,GAAA8J,EAAA+Y,mBAGAlhB,EAAAd,UAAA,KAAAc,EAAAd,SAAAe,SACA,MAAA5B,GAEA,MAAAP,IAGA,MAAAiZ,GAAA4K,EAAAziB,EAAA,MAAAc,IAAApF,OAAA,GAGAmc,EAAA5S,SAAA,SAAAlB,EAAAjD,GAKA,OAHAiD,EAAAoC,eAAApC,KAAA/D,GACAsY,EAAAvU,GAEAkB,EAAAlB,EAAAjD,IAGA+W,EAAA6K,KAAA,SAAA5hB,EAAAvG,IAEAuG,EAAAqF,eAAArF,KAAAd,GACAsY,EAAAxX,EAGA,IAAA+F,GAAA6S,EAAAO,WAAA1f,EAAAgI,eAEAgK,EAAA1F,GAAAzM,EAAAC,KAAAqf,EAAAO,WAAA1f,EAAAgI,eACAsE,EAAA/F,EAAAvG,GAAAge,OACAhZ,EAEA,YAAAA,KAAAgN,EACAA,EACAtD,EAAAiW,aAAA3G,EACAzX,EAAA0B,aAAAjI,IACAgS,EAAAzL,EAAA2gB,iBAAAlnB,KAAAgS,EAAAoW,UACApW,EAAAvP,MACA,MAGA6a,EAAApD,MAAA,SAAA8B,GACA,KAAA,IAAAjZ,OAAA,0CAAAiZ,IAOAsB,EAAAqG,WAAA,SAAA7G,GACA,GAAAvW,GACA8hB,KACA1nB,EAAA,EACAD,EAAA,CAOA,IAJAsjB,GAAAtV,EAAA4Z,iBACAvE,GAAArV,EAAA6Z,YAAAzL,EAAArb,MAAA,GACAqb,EAAApB,KAAA2I,GAEAL,EAAA,CACA,KAAAzd,EAAAuW,EAAApc,MACA6F,IAAAuW,EAAApc,KACAC,EAAA0nB,EAAAlmB,KAAAzB,GAGA,MAAAC,KACAmc,EAAAnb,OAAA0mB,EAAA1nB,GAAA,GAQA,MAFAojB,GAAA,KAEAjH,GAOA8G,EAAAtG,EAAAsG,QAAA,SAAArd,GACA,GAAAgI,GACA3J,EAAA,GACAlE,EAAA,EACA8F,EAAAD,EAAAC,QAEA,IAAAA,GAMA,GAAA,IAAAA,GAAA,IAAAA,GAAA,KAAAA,EAAA,CAGA,GAAA,gBAAAD,GAAAkF,YACA,MAAAlF,GAAAkF,WAGA,KAAAlF,EAAAA,EAAAiF,WAAAjF,EAAAA,EAAAA,EAAA0Z,YACArb,GAAAgf,EAAArd,OAGA,IAAA,IAAAC,GAAA,IAAAA,EACA,MAAAD,GAAAiiB,cAhBA,MAAAja,EAAAhI,EAAA7F,MAEAkE,GAAAgf,EAAArV,EAkBA,OAAA3J,IAGAua,EAAA7B,EAAAmL,WAGArJ,YAAA,GAEAsJ,aAAArJ,EAEAnY,MAAAie,GAEAzF,cAEA8D,QAEAf,UACAkG,KAAA9hB,IAAA,aAAAwH,OAAA,GACAua,KAAA/hB,IAAA,cACAgiB,KAAAhiB,IAAA,kBAAAwH,OAAA,GACAya,KAAAjiB,IAAA,oBAGAgb,WACA0D,KAAA,SAAAre,GAUA,MATAA,GAAA,GAAAA,EAAA,GAAA3F,QAAAwkB,GAAAC,IAGA9e,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAA,IAAA3F,QAAAwkB,GAAAC,IAEA,OAAA9e,EAAA,KACAA,EAAA,GAAA,IAAAA,EAAA,GAAA,KAGAA,EAAAzF,MAAA,EAAA,IAGAgkB,MAAA,SAAAve,GA6BA,MAlBAA,GAAA,GAAAA,EAAA,GAAAc,cAEA,QAAAd,EAAA,GAAAzF,MAAA,EAAA,IAEAyF,EAAA,IACAoW,EAAApD,MAAAhT,EAAA,IAKAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAA,GAAA,GAAA,SAAAA,EAAA,IAAA,QAAAA,EAAA,KACAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAA,QAAAA,EAAA,KAGAA,EAAA,IACAoW,EAAApD,MAAAhT,EAAA,IAGAA,GAGAse,OAAA,SAAAte,GACA,GAAA6hB,GACAC,GAAA9hB,EAAA,IAAAA,EAAA,EAEA,OAAAie,IAAA,MAAA7jB,KAAA4F,EAAA,IACA,MAIAA,EAAA,GACAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAA,GAGA8hB,GAAA9D,GAAA5jB,KAAA0nB,KAEAD,EAAAtK,EAAAuK,GAAA,MAEAD,EAAAC,EAAA7lB,QAAA,IAAA6lB,EAAA7nB,OAAA4nB,GAAAC,EAAA7nB,UAGA+F,EAAA,GAAAA,EAAA,GAAAzF,MAAA,EAAAsnB,GACA7hB,EAAA,GAAA8hB,EAAAvnB,MAAA,EAAAsnB,IAIA7hB,EAAAzF,MAAA,EAAA,MAIAiF,QAEA4e,IAAA,SAAA2D,GACA,GAAArf,GAAAqf,EAAA1nB,QAAAwkB,GAAAC,IAAAhe,aACA,OAAA,MAAAihB,EACA,WAAA,OAAA,GACA,SAAA1iB,GACA,MAAAA,GAAAqD,UAAArD,EAAAqD,SAAA5B,gBAAA4B,IAIAyb,MAAA,SAAAwB,GACA,GAAAqC,GAAA/E,EAAA0C,EAAA,IAEA,OAAAqC,KACAA,EAAA,GAAApE,QAAA,MAAAL,GAAA,IAAAoC,EAAA,IAAApC,GAAA,SACAN,EAAA0C,EAAA,SAAAtgB,GACA,MAAA2iB,GAAA5nB,KAAA,gBAAAiF,GAAAsgB,WAAAtgB,EAAAsgB,eAAA,KAAAtgB,EAAA0B,cAAA1B,EAAA0B,aAAA,UAAA,OAIAsd,KAAA,SAAAvlB,EAAAmpB,EAAAC,GACA,MAAA,UAAA7iB,GACA,GAAAmP,GAAA4H,EAAA6K,KAAA5hB,EAAAvG,EAEA,OAAA,OAAA0V,EACA,OAAAyT,GAEAA,IAIAzT,GAAA,GAEA,MAAAyT,EAAAzT,IAAA0T,EACA,OAAAD,EAAAzT,IAAA0T,EACA,OAAAD,EAAAC,GAAA,IAAA1T,EAAAvS,QAAAimB,GACA,OAAAD,EAAAC,GAAA1T,EAAAvS,QAAAimB,IAAA,EACA,OAAAD,EAAAC,GAAA1T,EAAAjU,OAAA2nB,EAAAjoB,UAAAioB,EACA,OAAAD,GAAA,IAAAzT,EAAAnU,QAAAsjB,GAAA,KAAA,KAAA1hB,QAAAimB,IAAA,EACA,OAAAD,IAAAzT,IAAA0T,GAAA1T,EAAAjU,MAAA,EAAA2nB,EAAAjoB,OAAA,KAAAioB,EAAA,QAKA3D,MAAA,SAAA1f,EAAAsjB,EAAAlJ,EAAA9R,EAAAmN,GACA,GAAA8N,GAAA,QAAAvjB,EAAAtE,MAAA,EAAA,GACA8nB,EAAA,SAAAxjB,EAAAtE,OAAA,GACA+nB,EAAA,YAAAH,CAEA,OAAA,KAAAhb,GAAA,IAAAmN,EAGA,SAAAjV,GACA,QAAAA,EAAAgJ,YAGA,SAAAhJ,EAAAiD,EAAAqX,GACA,GAAA5B,GAAA8B,EAAAC,EAAAzS,EAAAkb,EAAApgB,EACAxC,EAAAyiB,IAAAC,EAAA,cAAA,kBACA9C,EAAAlgB,EAAAgJ,WACAvP,EAAAwpB,GAAAjjB,EAAAqD,SAAA5B,cACA0hB,GAAA7I,IAAA2I,EACA1J,GAAA,CAEA,IAAA2G,EAAA,CAGA,GAAA6C,EAAA,CACA,KAAAziB,GAAA,CAEA,IADA0H,EAAAhI,EACAgI,EAAAA,EAAA1H,IACA,GAAA2iB,EACAjb,EAAA3E,SAAA5B,gBAAAhI,EACA,IAAAuO,EAAA/H,SAEA,OAAA,CAIA6C,GAAAxC,EAAA,SAAAd,IAAAsD,GAAA,cAEA,OAAA,EAMA,GAHAA,GAAAkgB,EAAA9C,EAAAjb,WAAAib,EAAAnb,WAGAie,GAAAG,GAkBA,IAbAnb,EAAAkY,EACAzF,EAAAzS,EAAA7G,KAAA6G,EAAA7G,OAIAqZ,EAAAC,EAAAzS,EAAA4S,YACAH,EAAAzS,EAAA4S,cAEAlC,EAAA8B,EAAAhb,OACA0jB,EAAAxK,EAAA,KAAAiC,GAAAjC,EAAA,GACAa,EAAA2J,GAAAxK,EAAA,GACA1Q,EAAAkb,GAAAhD,EAAAlb,WAAAke,GAEAlb,IAAAkb,GAAAlb,GAAAA,EAAA1H,KAGAiZ,EAAA2J,EAAA,IAAApgB,EAAAqa,OAGA,GAAA,IAAAnV,EAAA/H,YAAAsZ,GAAAvR,IAAAhI,EAAA;sFACAwa,EAAAhb,IAAAmb,EAAAuI,EAAA3J,EACA,YAuBA,IAjBA4J,IAEAnb,EAAAhI,EACAya,EAAAzS,EAAA7G,KAAA6G,EAAA7G,OAIAqZ,EAAAC,EAAAzS,EAAA4S,YACAH,EAAAzS,EAAA4S,cAEAlC,EAAA8B,EAAAhb,OACA0jB,EAAAxK,EAAA,KAAAiC,GAAAjC,EAAA,GACAa,EAAA2J,IAKA,IAAA3J,EAEA,MAAAvR,IAAAkb,GAAAlb,GAAAA,EAAA1H,KACAiZ,EAAA2J,EAAA,IAAApgB,EAAAqa,UAEA8F,EACAjb,EAAA3E,SAAA5B,gBAAAhI,EACA,IAAAuO,EAAA/H,cACAsZ,IAGA4J,IACA1I,EAAAzS,EAAA7G,KAAA6G,EAAA7G,OAIAqZ,EAAAC,EAAAzS,EAAA4S,YACAH,EAAAzS,EAAA4S,cAEAJ,EAAAhb,IAAAmb,EAAApB,IAGAvR,IAAAhI,MAUA,OADAuZ,GAAAtE,KACAnN,GAAAyR,EAAAzR,GAAA,GAAAyR,EAAAzR,GAAA,KAKAmX,OAAA,SAAAmE,EAAAxJ,GAKA,GAAAne,GACAsK,EAAA6S,EAAAyF,QAAA+E,IAAAxK,EAAAkB,WAAAsJ,EAAA3hB,gBACAsV,EAAApD,MAAA,uBAAAyP,EAKA,OAAArd,GAAA5E,GACA4E,EAAA6T,GAIA7T,EAAAnL,OAAA,GACAa,GAAA2nB,EAAAA,EAAA,GAAAxJ,GACAhB,EAAAkB,WAAA1c,eAAAgmB,EAAA3hB,eACAqX,EAAA,SAAA9B,EAAA9L,GAIA,IAHA,GAAAmY,GACAC,EAAAvd,EAAAiR,EAAA4C,GACAzf,EAAAmpB,EAAA1oB,OACAT,KACAkpB,EAAAzmB,EAAAoa,EAAAsM,EAAAnpB,IACA6c,EAAAqM,KAAAnY,EAAAmY,GAAAC,EAAAnpB,MAGA,SAAA6F,GACA,MAAA+F,GAAA/F,EAAA,EAAAvE,KAIAsK,IAIAsY,SAEAxe,IAAAiZ,EAAA,SAAAhT,GAIA,GAAA8a,MACArK,KACA0D,EAAAsD,EAAAzX,EAAA9K,QAAAqZ,GAAA,MAEA,OAAA4F,GAAA9Y,GACA2X,EAAA,SAAA9B,EAAA9L,EAAAjI,EAAAqX,GAMA,IALA,GAAAta,GACAkb,EAAAjB,EAAAjD,EAAA,KAAAsD,MACAngB,EAAA6c,EAAApc,OAGAT,MACA6F,EAAAkb,EAAA/gB,MACA6c,EAAA7c,KAAA+Q,EAAA/Q,GAAA6F,MAIA,SAAAA,EAAAiD,EAAAqX,GAKA,MAJAsG,GAAA,GAAA5gB,EACAia,EAAA2G,EAAA,KAAAtG,EAAA/D,GAEAqK,EAAA,GAAA,MACArK,EAAA4G,SAIAoG,IAAAzK,EAAA,SAAAhT,GACA,MAAA,UAAA9F,GACA,MAAA+W,GAAAjR,EAAA9F,GAAApF,OAAA,KAIAuJ,SAAA2U,EAAA,SAAA3C,GAEA,MADAA,GAAAA,EAAAnb,QAAAwkB,GAAAC,IACA,SAAAzf,GACA,OAAAA,EAAAkF,aAAAlF,EAAAwjB,WAAAnG,EAAArd,IAAApD,QAAAuZ,IAAA,KAWAsN,KAAA3K,EAAA,SAAA2K,GAMA,MAJAtL,IAAApd,KAAA0oB,GAAA,KACA1M,EAAApD,MAAA,qBAAA8P,GAEAA,EAAAA,EAAAzoB,QAAAwkB,GAAAC,IAAAhe,cACA,SAAAzB,GACA,GAAA0jB,EACA,IACA,GAAAA,EAAAjM,EACAzX,EAAAyjB,KACAzjB,EAAA0B,aAAA,aAAA1B,EAAA0B,aAAA,QAGA,OADAgiB,EAAAA,EAAAjiB,iBACAgiB,GAAA,IAAAC,EAAA9mB,QAAA6mB,EAAA,YAEAzjB,EAAAA,EAAAgJ,aAAA,IAAAhJ,EAAAC,SACA,QAAA,KAKAgS,OAAA,SAAAjS,GACA,GAAA2jB,GAAAvkB,EAAAwkB,UAAAxkB,EAAAwkB,SAAAD,IACA,OAAAA,IAAAA,EAAAzoB,MAAA,KAAA8E,EAAAhC,IAGA6lB,KAAA,SAAA7jB,GACA,MAAAA,KAAA0d,GAGAoG,MAAA,SAAA9jB,GACA,MAAAA,KAAAd,EAAAwG,iBAAAxG,EAAA6kB,UAAA7kB,EAAA6kB,gBAAA/jB,EAAAR,MAAAQ,EAAAgkB,OAAAhkB,EAAAikB,WAIAC,QAAA,SAAAlkB,GACA,OAAA,IAAAA,EAAAmkB,UAGAA,SAAA,SAAAnkB,GACA,OAAA,IAAAA,EAAAmkB,UAGAzc,QAAA,SAAA1H,GAGA,GAAAqD,GAAArD,EAAAqD,SAAA5B,aACA,OAAA,UAAA4B,KAAArD,EAAA0H,SAAA,WAAArE,KAAArD,EAAA0R,UAGAA,SAAA,SAAA1R,GAOA,MAJAA,GAAAgJ,YACAhJ,EAAAgJ,WAAAob,eAGA,IAAApkB,EAAA0R,UAIAxD,MAAA,SAAAlO,GAKA,IAAAA,EAAAA,EAAAiF,WAAAjF,EAAAA,EAAAA,EAAA0Z,YACA,GAAA1Z,EAAAC,SAAA,EACA,OAAA,CAGA,QAAA,GAGAigB,OAAA,SAAAlgB,GACA,OAAA4Y,EAAAyF,QAAA,MAAAre,IAIAqkB,OAAA,SAAArkB,GACA,MAAAsf,IAAAvkB,KAAAiF,EAAAqD,WAGAud,MAAA,SAAA5gB,GACA,MAAAqf,IAAAtkB,KAAAiF,EAAAqD,WAGAihB,OAAA,SAAAtkB,GACA,GAAAvG,GAAAuG,EAAAqD,SAAA5B,aACA,OAAA,UAAAhI,GAAA,WAAAuG,EAAAR,MAAA,WAAA/F,GAGA0c,KAAA,SAAAnW,GACA,GAAA4hB,EACA,OAAA,UAAA5hB,EAAAqD,SAAA5B,eACA,SAAAzB,EAAAR,OAIA,OAAAoiB,EAAA5hB,EAAA0B,aAAA,UAAA,SAAAkgB,EAAAngB,gBAIAqG,MAAA6R,EAAA,WACA,OAAA,KAGA1E,KAAA0E,EAAA,SAAAE,EAAAjf,GACA,OAAAA,EAAA,KAGA2N,GAAAoR,EAAA,SAAAE,EAAAjf,EAAAgf,GACA,OAAAA,EAAA,EAAAA,EAAAhf,EAAAgf,KAGA2K,KAAA5K,EAAA,SAAAE,EAAAjf,GAEA,IADA,GAAAT,GAAA,EACAA,EAAAS,EAAAT,GAAA,EACA0f,EAAAje,KAAAzB,EAEA,OAAA0f,KAGA2K,IAAA7K,EAAA,SAAAE,EAAAjf,GAEA,IADA,GAAAT,GAAA,EACAA,EAAAS,EAAAT,GAAA,EACA0f,EAAAje,KAAAzB,EAEA,OAAA0f,KAGA4K,GAAA9K,EAAA,SAAAE,EAAAjf,EAAAgf,GAEA,IADA,GAAAzf,GAAAyf,EAAA,EAAAA,EAAAhf,EAAAgf,IACAzf,GAAA,GACA0f,EAAAje,KAAAzB,EAEA,OAAA0f,KAGA6K,GAAA/K,EAAA,SAAAE,EAAAjf,EAAAgf,GAEA,IADA,GAAAzf,GAAAyf,EAAA,EAAAA,EAAAhf,EAAAgf,IACAzf,EAAAS,GACAif,EAAAje,KAAAzB,EAEA,OAAA0f,OAKAjB,EAAAyF,QAAA,IAAAzF,EAAAyF,QAAA,EAGA,KAAAlkB,KAAAwqB,OAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,OAAA,GACAnM,EAAAyF,QAAAlkB,GA3jCA,SAAAqF,GACA,MAAA,UAAAQ,GAEA,MAAA,UADAA,EAAAqD,SAAA5B,eACAzB,EAAAR,OAAAA,IAwjCArF,EAEA,KAAAA,KAAA6qB,QAAA,EAAAC,OAAA,GACArM,EAAAyF,QAAAlkB,GAnjCA,SAAAqF,GACA,MAAA,UAAAQ,GACA,GAAAvG,GAAAuG,EAAAqD,SAAA5B,aACA,QAAA,UAAAhI,GAAA,WAAAA,IAAAuG,EAAAR,OAAAA,IAgjCArF,EA8mBA,OAzmBA2f,GAAA3c,UAAAyb,EAAAsM,QAAAtM,EAAAyF,QACAzF,EAAAkB,WAAA,GAAAA,GAEA5B,EAAAnB,EAAAmB,SAAA,SAAApS,EAAAqf,GACA,GAAA7B,GAAA3iB,EAAAoZ,EAAAva,EACA4lB,EAAAhO,EAAAiO,EACAC,EAAAzH,EAAA/X,EAAA,IAEA,IAAAwf,EACA,MAAAH,GAAA,EAAAG,EAAApqB,MAAA,EAOA,KAJAkqB,EAAAtf,EACAsR,KACAiO,EAAAzM,EAAA0C,UAEA8J,GAAA,CAGA9B,KAAA3iB,EAAA6d,GAAA5b,KAAAwiB,MACAzkB,IAEAykB,EAAAA,EAAAlqB,MAAAyF,EAAA,GAAA/F,SAAAwqB,GAEAhO,EAAAxb,KAAAme,OAGAuJ,GAAA,GAGA3iB,EAAA8d,GAAA7b,KAAAwiB,MACA9B,EAAA3iB,EAAAiS,QACAmH,EAAAne,MACAM,MAAAonB,EAEA9jB,KAAAmB,EAAA,GAAA3F,QAAAqZ,GAAA,OAEA+Q,EAAAA,EAAAlqB,MAAAooB,EAAA1oB,QAIA,KAAA4E,IAAAoZ,GAAAzY,SACAQ,EAAAie,GAAApf,GAAAoD,KAAAwiB,KAAAC,EAAA7lB,MACAmB,EAAA0kB,EAAA7lB,GAAAmB,MACA2iB,EAAA3iB,EAAAiS,QACAmH,EAAAne,MACAM,MAAAonB,EACA9jB,KAAAA,EACA0L,QAAAvK,IAEAykB,EAAAA,EAAAlqB,MAAAooB,EAAA1oB,QAIA,KAAA0oB,EACA,MAOA,MAAA6B,GACAC,EAAAxqB,OACAwqB,EACArO,EAAApD,MAAA7N,GAEA+X,EAAA/X,EAAAsR,GAAAlc,MAAA,IAyXAqiB,EAAAxG,EAAAwG,QAAA,SAAAzX,EAAAnF,GACA,GAAAxG,GACAsiB,KACAD,KACA8I,EAAAxN,EAAAhS,EAAA,IAEA,KAAAwf,EAAA,CAMA,IAJA3kB,IACAA,EAAAuX,EAAApS,IAEA3L,EAAAwG,EAAA/F,OACAT,KACAmrB,EAAAvJ,EAAApb,EAAAxG,IACAmrB,EAAAnkB,GACAsb,EAAA7gB,KAAA0pB,GAEA9I,EAAA5gB,KAAA0pB,EAKAA,GAAAxN,EAAAhS,EAAAyW,EAAAC,EAAAC,IAGA6I,EAAAxf,SAAAA,EAEA,MAAAwf,IAYA9M,EAAAzB,EAAAyB,OAAA,SAAA1S,EAAA7C,EAAAsT,EAAAS,GACA,GAAA7c,GAAA4f,EAAAwL,EAAA/lB,EAAAyd,EACAuI,EAAA,kBAAA1f,IAAAA,EACAnF,GAAAqW,GAAAkB,EAAApS,EAAA0f,EAAA1f,UAAAA,EAMA,IAJAyQ,EAAAA,MAIA,IAAA5V,EAAA/F,OAAA,CAIA,GADAmf,EAAApZ,EAAA,GAAAA,EAAA,GAAAzF,MAAA,GACA6e,EAAAnf,OAAA,GAAA,QAAA2qB,EAAAxL,EAAA,IAAAva,MACA2I,EAAAqY,SAAA,IAAAvd,EAAAhD,UAAAwX,GACAmB,EAAAsD,SAAAnC,EAAA,GAAAva,MAAA,CAGA,KADAyD,GAAA2V,EAAAqE,KAAA,GAAAsI,EAAAra,QAAA,GAAAlQ,QAAAwkB,GAAAC,IAAAxc,QAAA,IAEA,MAAAsT,EAGAiP,KACAviB,EAAAA,EAAA+F,YAGAlD,EAAAA,EAAA5K,MAAA6e,EAAAnH,QAAA1W,MAAAtB,QAKA,IADAT,EAAAykB,GAAA,aAAA7jB,KAAA+K,GAAA,EAAAiU,EAAAnf,OACAT,MACAorB,EAAAxL,EAAA5f,IAGAye,EAAAsD,SAAA1c,EAAA+lB,EAAA/lB,QAGA,IAAAyd,EAAArE,EAAAqE,KAAAzd,MAEAwX,EAAAiG,EACAsI,EAAAra,QAAA,GAAAlQ,QAAAwkB,GAAAC,IACApH,GAAAtd,KAAAgf,EAAA,GAAAva,OAAA8Y,EAAArV,EAAA+F,aAAA/F,IACA,CAKA,GAFA8W,EAAA3e,OAAAjB,EAAA,KACA2L,EAAAkR,EAAApc,QAAAwd,EAAA2B,IAGA,MADAne,GAAAE,MAAAya,EAAAS,GACAT,CAGA,QAeA,OAPAiP,GAAAjI,EAAAzX,EAAAnF,IACAqW,EACA/T,GACAwU,EACAlB,GACAtT,GAAAoV,GAAAtd,KAAA+K,IAAAwS,EAAArV,EAAA+F,aAAA/F,GAEAsT,GAMApO,EAAA6Z,WAAA7gB,EAAA3G,MAAA,IAAA2a,KAAA2I,GAAAziB,KAAA,MAAA8F,EAIAgH,EAAA4Z,mBAAAtE,EAGAjG,IAIArP,EAAAoZ,aAAAxI,EAAA,SAAA0M,GAEA,MAAA,GAAAA,EAAAtE,wBAAAjiB,EAAAuF,cAAA,UAMAsU,EAAA,SAAAC,GAEA,MADAA,GAAAnU,UAAA,mBACA,MAAAmU,EAAA/T,WAAAvD,aAAA,WAEAuX,EAAA,yBAAA,SAAAjZ,EAAAvG,EAAA6jB,GACA,IAAAA,EACA,MAAAtd,GAAA0B,aAAAjI,EAAA,SAAAA,EAAAgI,cAAA,EAAA,KAOA0G,EAAAiW,YAAArF,EAAA,SAAAC,GAGA,MAFAA,GAAAnU,UAAA,WACAmU,EAAA/T,WAAAgT,aAAA,QAAA,IACA,KAAAe,EAAA/T,WAAAvD,aAAA,YAEAuX,EAAA,QAAA,SAAAjZ,EAAAvG,EAAA6jB,GACA,IAAAA,GAAA,UAAAtd,EAAAqD,SAAA5B,cACA,MAAAzB,GAAA2H,eAOAoR,EAAA,SAAAC,GACA,MAAA,OAAAA,EAAAtX,aAAA,eAEAuX,EAAAgF,EAAA,SAAAje,EAAAvG,EAAA6jB,GACA,GAAA7R,EACA,KAAA6R,EACA,OAAA,IAAAtd,EAAAvG,GAAAA,EAAAgI,eACAgK,EAAAzL,EAAA2gB,iBAAAlnB,KAAAgS,EAAAoW,UACApW,EAAAvP,MACA,OAKA6a,GAEA3X,EAIAL,IAAAke,KAAAlG,GACAhY,GAAA4iB,KAAA5K,GAAAmL,UACAnjB,GAAA4iB,KAAA,KAAA5iB,GAAA4iB,KAAAtD,QACAtf,GAAAqe,WAAAre,GAAA2mB,OAAA3O,GAAAqG,WACAre,GAAAoX,KAAAY,GAAAsG,QACAte,GAAA4mB,SAAA5O,GAAAuG,MACAve,GAAAoF,SAAA4S,GAAA5S,QAIA,IAAA7D,IAAA,SAAAN,EAAAM,EAAAslB,GAIA,IAHA,GAAAtC,MACAuC,MAAApnB,KAAAmnB,GAEA5lB,EAAAA,EAAAM,KAAA,IAAAN,EAAAC,UACA,GAAA,IAAAD,EAAAC,SAAA,CACA,GAAA4lB,GAAA9mB,GAAAiB,GAAA8lB,GAAAF,GACA,KAEAtC,GAAA1nB,KAAAoE,GAGA,MAAAsjB,IAIAyC,GAAA,SAAAroB,EAAAsC,GAGA,IAFA,GAAAsjB,MAEA5lB,EAAAA,EAAAA,EAAAgc,YACA,IAAAhc,EAAAuC,UAAAvC,IAAAsC,GACAsjB,EAAA1nB,KAAA8B,EAIA,OAAA4lB,IAIA0C,GAAAjnB,GAAA4iB,KAAAhhB,MAAAye,aAEA6G,GAAA,gCAIA/lB,GAAA,gBAgCAnB,IAAAoB,OAAA,SAAAwhB,EAAAne,EAAA3D,GACA,GAAAG,GAAAwD,EAAA,EAMA,OAJA3D,KACA8hB,EAAA,QAAAA,EAAA,KAGA,IAAAne,EAAA5I,QAAA,IAAAoF,EAAAC,SACAlB,GAAAke,KAAA4D,gBAAA7gB,EAAA2hB,IAAA3hB,MACAjB,GAAAke,KAAA/R,QAAAyW,EAAA5iB,GAAAgB,KAAAyD,EAAA,SAAAxD,GACA,MAAA,KAAAA,EAAAC,aAIAlB,GAAAgH,GAAAwB,QACA0V,KAAA,SAAAnX,GACA,GAAA3L,GACA+a,EAAA7V,KAAAzE,OACAyD,KACAiK,EAAAjJ,IAEA,IAAA,gBAAAyG,GACA,MAAAzG,MAAA0V,UAAAhW,GAAA+G,GAAA3F,OAAA,WACA,IAAAhG,EAAA,EAAAA,EAAA+a,EAAA/a,IACA,GAAA4E,GAAAoF,SAAAmE,EAAAnO,GAAAkF,MACA,OAAA,IAMA,KAAAlF,EAAA,EAAAA,EAAA+a,EAAA/a,IACA4E,GAAAke,KAAAnX,EAAAwC,EAAAnO,GAAAkE,EAMA,OAFAA,GAAAgB,KAAA0V,UAAAG,EAAA,EAAAnW,GAAA2mB,OAAArnB,GAAAA,GACAA,EAAAyH,SAAAzG,KAAAyG,SAAAzG,KAAAyG,SAAA,IAAAA,EAAAA,EACAzH,GAEA8B,OAAA,SAAA2F,GACA,MAAAzG,MAAA0V,UAAArV,EAAAL,KAAAyG,OAAA,KAEAjG,IAAA,SAAAiG,GACA,MAAAzG,MAAA0V,UAAArV,EAAAL,KAAAyG,OAAA,KAEAggB,GAAA,SAAAhgB,GACA,QAAApG,EACAL,KAIA,gBAAAyG,IAAAkgB,GAAAjrB,KAAA+K,GACA/G,GAAA+G,GACAA,OACA,GACAlL,SASA,IAAAsrB,IAKAxO,GAAA,uCAEA3Y,GAAAgH,GAAAyG,KAAA,SAAA1G,EAAA7C,EAAA4gB,GACA,GAAAljB,GAAAX,CAGA,KAAA8F,EACA,MAAAzG,KAQA,IAHAwkB,EAAAA,GAAAqC,GAGA,gBAAApgB,GAAA,CAaA,KAPAnF,EALA,MAAAmF,EAAA,IACA,MAAAA,EAAAA,EAAAlL,OAAA,IACAkL,EAAAlL,QAAA,GAGA,KAAAkL,EAAA,MAGA4R,GAAA9U,KAAAkD,MAIAnF,EAAA,IAAAsC,EAkDA,OAAAA,GAAAA,EAAA0R,QACA1R,GAAA4gB,GAAA5G,KAAAnX,GAKAzG,KAAAuV,YAAA3R,GAAAga,KAAAnX,EArDA,IAAAnF,EAAA,GAAA,CAYA,GAXAsC,EAAAA,YAAAlE,IAAAkE,EAAA,GAAAA,EAIAlE,GAAAuE,MAAAjE,KAAAN,GAAAonB,UACAxlB,EAAA,GACAsC,GAAAA,EAAAhD,SAAAgD,EAAAoC,eAAApC,EAAA/D,GACA,IAIA+mB,GAAAlrB,KAAA4F,EAAA,KAAA5B,GAAAuW,cAAArS,GACA,IAAAtC,IAAAsC,GAGAlE,GAAAe,WAAAT,KAAAsB,IACAtB,KAAAsB,GAAAsC,EAAAtC,IAIAtB,KAAAuiB,KAAAjhB,EAAAsC,EAAAtC,GAKA,OAAAtB,MAiBA,MAbAW,GAAAd,EAAAyY,eAAAhX,EAAA,IAIAX,GAAAA,EAAAgJ,aAGA3J,KAAAzE,OAAA,EACAyE,KAAA,GAAAW,GAGAX,KAAA4D,QAAA/D,EACAG,KAAAyG,SAAAA,EACAzG,KAcA,MAAAyG,GAAA7F,UACAZ,KAAA4D,QAAA5D,KAAA,GAAAyG,EACAzG,KAAAzE,OAAA,EACAyE,MAIAN,GAAAe,WAAAgG,OACArH,KAAAolB,EAAA5iB,MACA4iB,EAAA5iB,MAAA6E,GAGAA,EAAA/G,SAGAN,KAAAqH,EAAAA,WACAzG,KAAAyG,SAAAA,EAAAA,SACAzG,KAAA4D,QAAA6C,EAAA7C,SAGAlE,GAAAuX,UAAAxQ,EAAAzG,SAIAlC,UAAA4B,GAAAgH,GAGAmgB,GAAAnnB,GAAAG,EAGA,IAAAknB,IAAA,iCAGAC,IACAC,UAAA,EACA3T,UAAA,EACA4T,MAAA,EACAjT,MAAA,EAGAvU,IAAAgH,GAAAwB,QACAgc,IAAA,SAAAtR,GACA,GAAAuU,GAAAznB,GAAAkT,EAAA5S,MACAqE,EAAA8iB,EAAA5rB,MAEA,OAAAyE,MAAAc,OAAA,WAEA,IADA,GAAAhG,GAAA,EACAA,EAAAuJ,EAAAvJ,IACA,GAAA4E,GAAAoF,SAAA9E,KAAAmnB,EAAArsB,IACA,OAAA,KAMAssB,QAAA,SAAAvE,EAAAjf,GASA,IARA,GAAA5C,GACAlG,EAAA,EACAuJ,EAAArE,KAAAzE,OACA0oB,KACAoD,EAAAV,GAAAjrB,KAAAmnB,IAAA,gBAAAA,GACAnjB,GAAAmjB,EAAAjf,GAAA5D,KAAA4D,SACA,EAEA9I,EAAAuJ,EAAAvJ,IACA,IAAAkG,EAAAhB,KAAAlF,GAAAkG,GAAAA,IAAA4C,EAAA5C,EAAAA,EAAA2I,WAGA,GAAA3I,EAAAJ,SAAA,KAAAymB,EACAA,EAAA/pB,MAAA0D,IAAA,EAGA,IAAAA,EAAAJ,UACAlB,GAAAke,KAAA4D,gBAAAxgB,EAAA6hB,IAAA,CAEAoB,EAAA1nB,KAAAyE,EACA,OAKA,MAAAhB,MAAA0V,UAAAuO,EAAA1oB,OAAA,EAAAmE,GAAAqe,WAAAkG,GAAAA,IAIA3mB,MAAA,SAAAqD,GAGA,MAAAA,GAKA,gBAAAA,GACApD,EAAArD,KAAAwF,GAAAiB,GAAAX,KAAA,IAIAzC,EAAArD,KAAA8F,KAGAW,EAAA2U,OAAA3U,EAAA,GAAAA,GAZAX,KAAA,IAAAA,KAAA,GAAA2J,WAAA3J,KAAAyI,QAAA6e,UAAA/rB,QAAA,GAgBAyL,IAAA,SAAAP,EAAA7C,GACA,MAAA5D,MAAA0V,UACAhW,GAAAqe,WACAre,GAAAuE,MAAAjE,KAAAuE,MAAA7E,GAAA+G,EAAA7C,OAKA2jB,QAAA,SAAA9gB,GACA,MAAAzG,MAAAgH,IAAA,MAAAP,EACAzG,KAAA2V,WAAA3V,KAAA2V,WAAA7U,OAAA2F,OAUA/G,GAAA2B,MACAwf,OAAA,SAAAlgB,GACA,GAAAkgB,GAAAlgB,EAAAgJ,UACA,OAAAkX,IAAA,KAAAA,EAAAjgB,SAAAigB,EAAA,MAEA2G,QAAA,SAAA7mB,GACA,MAAAM,IAAAN,EAAA,eAEA8mB,aAAA,SAAA9mB,EAAA7F,EAAAyrB,GACA,MAAAtlB,IAAAN,EAAA,aAAA4lB,IAEAW,KAAA,SAAAvmB,GACA,MAAAI,GAAAJ,EAAA,gBAEAsT,KAAA,SAAAtT,GACA,MAAAI,GAAAJ,EAAA,oBAEA+mB,QAAA,SAAA/mB,GACA,MAAAM,IAAAN,EAAA,gBAEA2mB,QAAA,SAAA3mB,GACA,MAAAM,IAAAN,EAAA,oBAEAgnB,UAAA,SAAAhnB,EAAA7F,EAAAyrB,GACA,MAAAtlB,IAAAN,EAAA,cAAA4lB,IAEAqB,UAAA,SAAAjnB,EAAA7F,EAAAyrB,GACA,MAAAtlB,IAAAN,EAAA,kBAAA4lB,IAEAG,SAAA,SAAA/lB,GACA,MAAA+lB,KAAA/lB,EAAAgJ,gBAAA/D,WAAAjF,IAEAsmB,SAAA,SAAAtmB,GACA,MAAA+lB,IAAA/lB,EAAAiF,aAEA0N,SAAA,SAAA3S,GACA,MAAAA,GAAA2J,iBAAA5K,GAAAuE,SAAAtD,EAAAgF,cAEA,SAAAvL,EAAAsM,GACAhH,GAAAgH,GAAAtM,GAAA,SAAAmsB,EAAA9f,GACA,GAAAwd,GAAAvkB,GAAAtE,IAAA4E,KAAA0G,EAAA6f,EAuBA,OArBA,UAAAnsB,EAAAyB,OAAA,KACA4K,EAAA8f,GAGA9f,GAAA,gBAAAA,KACAwd,EAAAvkB,GAAAoB,OAAA2F,EAAAwd,IAGAjkB,KAAAzE,OAAA,IAGAyrB,GAAA5sB,IACAsF,GAAAqe,WAAAkG,GAIA8C,GAAArrB,KAAAtB,IACA6pB,EAAA4D,WAIA7nB,KAAA0V,UAAAuO,KAGA,IAAA1iB,IAAA,MAmCA7B,IAAAooB,UAAA,SAAA3mB,GAIAA,EAAA,gBAAAA,GACAD,EAAAC,GACAzB,GAAAwI,UAAA/G,EAEA,IACA4mB,GAGAC,EAGAC,EAGAC,EAGAvJ,KAGAjQ,KAGAyZ,GAAA,EAGArZ,EAAA,WAQA,IALAoZ,EAAA/mB,EAAAinB,KAIAH,EAAAF,GAAA,EACArZ,EAAAnT,OAAA4sB,GAAA,EAEA,IADAH,EAAAtZ,EAAA6E,UACA4U,EAAAxJ,EAAApjB,SAGA,IAAAojB,EAAAwJ,GAAA1rB,MAAAurB,EAAA,GAAAA,EAAA,KACA7mB,EAAAknB,cAGAF,EAAAxJ,EAAApjB,OACAysB,GAAA,EAMA7mB,GAAA6mB,SACAA,GAAA,GAGAD,GAAA,EAGAG,IAIAvJ,EADAqJ,KAKA,KAMA/e,GAGAjC,IAAA,WA2BA,MA1BA2X,KAGAqJ,IAAAD,IACAI,EAAAxJ,EAAApjB,OAAA,EACAmT,EAAAnS,KAAAyrB,IAGA,QAAAhhB,GAAA5K,GACAsD,GAAA2B,KAAAjF,EAAA,SAAAoF,EAAA8V,GACA5X,GAAAe,WAAA6W,GACAnW,EAAAklB,QAAApd,EAAAib,IAAA5M,IACAqH,EAAApiB,KAAA+a,GAEAA,GAAAA,EAAA/b,QAAA,WAAAmE,GAAAS,KAAAmX,IAGAtQ,EAAAsQ,MAGAhb,WAEA0rB,IAAAD,GACAjZ,KAGA9O,MAIAwJ,OAAA,WAYA,MAXA9J,IAAA2B,KAAA/E,UAAA,SAAAkF,EAAA8V,GAEA,IADA,GAAAha,IACAA,EAAAoC,GAAAqG,QAAAuR,EAAAqH,EAAArhB,KAAA,GACAqhB,EAAA5iB,OAAAuB,EAAA,GAGAA,GAAA6qB,GACAA,MAIAnoB,MAKAkkB,IAAA,SAAAxd,GACA,MAAAA,GACAhH,GAAAqG,QAAAW,EAAAiY,IAAA,EACAA,EAAApjB,OAAA,GAIAsT,MAAA,WAIA,MAHA8P,KACAA,MAEA3e,MAMAsoB,QAAA,WAGA,MAFAJ,GAAAxZ,KACAiQ,EAAAqJ,EAAA,GACAhoB,MAEA8kB,SAAA,WACA,OAAAnG,GAMA4J,KAAA,WAKA,MAJAL,GAAAxZ,KACAsZ,IACArJ,EAAAqJ,EAAA,IAEAhoB,MAEAkoB,OAAA,WACA,QAAAA,GAIAM,SAAA,SAAA5kB,EAAAxH,GASA,MARA8rB,KACA9rB,EAAAA,MACAA,GAAAwH,EAAAxH,EAAAP,MAAAO,EAAAP,QAAAO,GACAsS,EAAAnS,KAAAH,GACA2rB,GACAjZ,KAGA9O,MAIA8O,KAAA,WAEA,MADA7F,GAAAuf,SAAAxoB,KAAA1D,WACA0D,MAIAioB,MAAA,WACA,QAAAA,GAIA,OAAAhf,IAIAvJ,GAAAwI,QAEAgI,SAAA,SAAA4B,GACA,GAAA2W,KAGA,UAAA,OAAA/oB,GAAAooB,UAAA,eAAA,aACA,SAAA,OAAApoB,GAAAooB,UAAA,eAAA,aACA,SAAA,WAAApoB,GAAAooB,UAAA,YAEAzT,EAAA,UACAvD,GACAuD,MAAA,WACA,MAAAA,IAEAtF,OAAA,WAEA,MADAkB,GAAAZ,KAAA/S,WAAAmV,KAAAnV,WACA0D,MAEA0oB,KAAA,WACA,GAAAC,GAAArsB,SACA,OAAAoD,IAAAwQ,SAAA,SAAA0Y,GACAlpB,GAAA2B,KAAAonB,EAAA,SAAA3tB,EAAA+tB,GACA,GAAAniB,GAAAhH,GAAAe,WAAAkoB,EAAA7tB,KAAA6tB,EAAA7tB,EAGAmV,GAAA4Y,EAAA,IAAA,WACA,GAAAC,GAAApiB,GAAAA,EAAAjK,MAAAuD,KAAA1D,UACAwsB,IAAAppB,GAAAe,WAAAqoB,EAAAhY,SACAgY,EAAAhY,UACAS,SAAAqX,EAAAG,QACA1Z,KAAAuZ,EAAAI,SACAvX,KAAAmX,EAAAK,QAEAL,EAAAC,EAAA,GAAA,QACA7oB,OAAA8Q,EAAA8X,EAAA9X,UAAA9Q,KACA0G,GAAAoiB,GAAAxsB,eAKAqsB,EAAA,OACA7X,WAKAA,QAAA,SAAA/W,GACA,MAAA,OAAAA,EAAA2F,GAAAwI,OAAAnO,EAAA+W,GAAAA,IAGAb,IAyCA,OAtCAa,GAAAoY,KAAApY,EAAA4X,KAGAhpB,GAAA2B,KAAAonB,EAAA,SAAA3tB,EAAA+tB,GACA,GAAAlK,GAAAkK,EAAA,GACAM,EAAAN,EAAA,EAGA/X,GAAA+X,EAAA,IAAAlK,EAAA3X,IAGAmiB,GACAxK,EAAA3X,IAAA,WAGAqN,EAAA8U,GAGAV,EAAA,EAAA3tB,GAAA,GAAAwtB,QAAAG,EAAA,GAAA,GAAAF,MAIAtY,EAAA4Y,EAAA,IAAA,WAEA,MADA5Y,GAAA4Y,EAAA,GAAA,QAAA7oB,OAAAiQ,EAAAa,EAAA9Q,KAAA1D,WACA0D,MAEAiQ,EAAA4Y,EAAA,GAAA,QAAAlK,EAAA6J,WAIA1X,EAAAA,QAAAb,GAGA6B,GACAA,EAAA5X,KAAA+V,EAAAA,GAIAA,GAIAmZ,KAAA,SAAAC,GACA,GAyBAC,GAAAC,EAAAC,EAzBA1uB,EAAA,EACA2uB,EAAA5tB,EAAA3B,KAAAoC,WACAf,EAAAkuB,EAAAluB,OAGA8U,EAAA,IAAA9U,GACA8tB,GAAA3pB,GAAAe,WAAA4oB,EAAAvY,SAAAvV,EAAA,EAIA0U,EAAA,IAAAI,EAAAgZ,EAAA3pB,GAAAwQ,WAGAwZ,EAAA,SAAA5uB,EAAA6gB,EAAA5O,GACA,MAAA,UAAAlQ,GACA8e,EAAA7gB,GAAAkF,KACA+M,EAAAjS,GAAAwB,UAAAf,OAAA,EAAAM,EAAA3B,KAAAoC,WAAAO,EACAkQ,IAAAuc,EACArZ,EAAAW,WAAA+K,EAAA5O,KACAsD,GACAJ,EAAAY,YAAA8K,EAAA5O,IAQA,IAAAxR,EAAA,EAIA,IAHA+tB,EAAA,GAAAhT,OAAA/a,GACAguB,EAAA,GAAAjT,OAAA/a,GACAiuB,EAAA,GAAAlT,OAAA/a,GACAT,EAAAS,EAAAT,IACA2uB,EAAA3uB,IAAA4E,GAAAe,WAAAgpB,EAAA3uB,GAAAgW,SACA2Y,EAAA3uB,GAAAgW,UACAS,SAAAmY,EAAA5uB,EAAAyuB,EAAAD,IACAja,KAAAqa,EAAA5uB,EAAA0uB,EAAAC,IACAhY,KAAAxB,EAAAgZ,UAEA5Y,CAUA,OAJAA,IACAJ,EAAAY,YAAA2Y,EAAAC,GAGAxZ,EAAAa,YAMA,IAAA6Y,GAEAjqB,IAAAgH,GAAA9E,MAAA,SAAA8E,GAKA,MAFAhH,IAAAkC,MAAAkP,UAAAzB,KAAA3I,GAEA1G,MAGAN,GAAAwI,QAGAiO,SAAA,EAIAyT,UAAA,EAGAC,UAAA,SAAAC,GACAA,EACApqB,GAAAkqB,YAEAlqB,GAAAkC,OAAA,IAKAA,MAAA,SAAAmoB,KAGA,IAAAA,IAAArqB,GAAAkqB,UAAAlqB,GAAAyW,WAKAzW,GAAAyW,SAAA,GAGA,IAAA4T,KAAArqB,GAAAkqB,UAAA,IAKAD,GAAA9Y,YAAAhR,GAAAH,KAGAA,GAAAgH,GAAAsjB,iBACAtqB,GAAAG,GAAAmqB,eAAA,SACAtqB,GAAAG,GAAAiH,IAAA,eAcApH,GAAAkC,MAAAkP,QAAA,SAAA/W,GAwBA,MAvBA4vB,MAEAA,GAAAjqB,GAAAwQ,WAMA,aAAArQ,EAAAoqB,YACA,YAAApqB,EAAAoqB,aAAApqB,EAAAwK,gBAAA6f,SAGAnqB,EAAAT,WAAAI,GAAAkC,QAKA/B,EAAAkhB,iBAAA,mBAAArf,GAGA3B,EAAAghB,iBAAA,OAAArf,KAGAioB,GAAA7Y,QAAA/W,IAIA2F,GAAAkC,MAAAkP,SAOA,IAAA9I,IAAA,SAAA7D,EAAAuC,EAAAzE,EAAApF,EAAAstB,EAAAC,EAAAC,GACA,GAAAvvB,GAAA,EACA+a,EAAA1R,EAAA5I,OACA+uB,EAAA,MAAAroB,CAGA,IAAA,WAAAvC,GAAAS,KAAA8B,GAAA,CACAkoB,GAAA,CACA,KAAArvB,IAAAmH,GACA+F,GAAA7D,EAAAuC,EAAA5L,EAAAmH,EAAAnH,IAAA,EAAAsvB,EAAAC,OAIA,QAAAjrB,KAAAvC,IACAstB,GAAA,EAEAzqB,GAAAe,WAAA5D,KACAwtB,GAAA,GAGAC,IAGAD,GACA3jB,EAAAxM,KAAAiK,EAAAtH,GACA6J,EAAA,OAIA4jB,EAAA5jB,EACAA,EAAA,SAAA/F,EAAAsB,EAAApF,GACA,MAAAytB,GAAApwB,KAAAwF,GAAAiB,GAAA9D,MAKA6J,GACA,KAAA5L,EAAA+a,EAAA/a,IACA4L,EACAvC,EAAArJ,GAAAmH,EAAAooB,EACAxtB,EACAA,EAAA3C,KAAAiK,EAAArJ,GAAAA,EAAA4L,EAAAvC,EAAArJ,GAAAmH,IAMA,OAAAkoB,GACAhmB,EAGAmmB,EACA5jB,EAAAxM,KAAAiK,GACA0R,EAAAnP,EAAAvC,EAAA,GAAAlC,GAAAmoB,GAEAG,GAAA,SAAAC,GASA,MAAA,KAAAA,EAAA5pB,UAAA,IAAA4pB,EAAA5pB,YAAA4pB,EAAA5pB,SAUAiB,GAAAE,IAAA,EAEAF,EAAA/D,WAEA2sB,SAAA,SAAAD,EAAAtnB,GACA,GAAArG,GAAAqG,KAiBA,OAbAsnB,GAAA5pB,SACA4pB,EAAAxqB,KAAA8B,SAAAjF,EAMAgB,OAAA6sB,eAAAF,EAAAxqB,KAAA8B,SACAjF,MAAAA,EACA8tB,UAAA,EACAC,cAAA,IAGAJ,EAAAxqB,KAAA8B,UAEAuX,MAAA,SAAAmR,GAKA,IAAAD,GAAAC,GACA,QAIA,IAAA3tB,GAAA2tB,EAAAxqB,KAAA8B,QA4BA,OAzBAjF,KACAA,KAKA0tB,GAAAC,KAIAA,EAAA5pB,SACA4pB,EAAAxqB,KAAA8B,SAAAjF,EAMAgB,OAAA6sB,eAAAF,EAAAxqB,KAAA8B,SACAjF,MAAAA,EACA+tB,cAAA,MAMA/tB,GAEA4F,IAAA,SAAA+nB,EAAAtoB,EAAArF,GACA,GAAA7C,GACAqf,EAAArZ,KAAAqZ,MAAAmR,EAGA,IAAA,gBAAAtoB,GACAmX,EAAAnX,GAAArF,MAMA,KAAA7C,IAAAkI,GACAmX,EAAArf,GAAAkI,EAAAlI,EAGA,OAAAqf,IAEA9U,IAAA,SAAAimB,EAAAvoB,GACA,WAAA7C,KAAA6C,EACAjC,KAAAqZ,MAAAmR,GACAA,EAAAxqB,KAAA8B,UAAA0oB,EAAAxqB,KAAA8B,SAAAG,IAEA+F,OAAA,SAAAwiB,EAAAvoB,EAAApF,GACA,GAAAguB,EAaA,YAAAzrB,KAAA6C,GACAA,GAAA,gBAAAA,QAAA7C,KAAAvC,GAEAguB,EAAA7qB,KAAAuE,IAAAimB,EAAAvoB,OAEA7C,KAAAyrB,EACAA,EAAA7qB,KAAAuE,IAAAimB,EAAA9qB,GAAA+P,UAAAxN,MASAjC,KAAAyC,IAAA+nB,EAAAvoB,EAAApF,OAIAuC,KAAAvC,EAAAA,EAAAoF,IAEAuH,OAAA,SAAAghB,EAAAvoB,GACA,GAAAnH,GAAAV,EAAA0wB,EACAzR,EAAAmR,EAAAxqB,KAAA8B,QAEA,QAAA1C,KAAAia,EAAA,CAIA,OAAAja,KAAA6C,EACAjC,KAAAyqB,SAAAD,OAEA,CAGA9qB,GAAAgQ,QAAAzN,GAQA7H,EAAA6H,EAAAnG,OAAAmG,EAAA7G,IAAAsE,GAAA+P,aAEAqb,EAAAprB,GAAA+P,UAAAxN,GAGAA,IAAAoX,GACAjf,GAAA6H,EAAA6oB,IAKA1wB,EAAA0wB,EACA1wB,EAAAA,IAAAif,IACAjf,GAAAA,EAAAkH,MAAAC,UAIAzG,EAAAV,EAAAmB,MAEA,MAAAT,WACAue,GAAAjf,EAAAU,SAKAsE,KAAA6C,GAAAvC,GAAA0P,cAAAiK,MAMAmR,EAAA5pB,SACA4pB,EAAAxqB,KAAA8B,aAAA1C,SAEAorB,GAAAxqB,KAAA8B,YAIAiG,QAAA,SAAAyiB,GACA,GAAAnR,GAAAmR,EAAAxqB,KAAA8B,QACA,YAAA1C,KAAAia,IAAA3Z,GAAA0P,cAAAiK,IAGA,IAAA/U,IAAA,GAAAzC,GAEAW,GAAA,GAAAX,GAcAS,GAAA,gCACAH,GAAA,QAgCAzC,IAAAwI,QACAH,QAAA,SAAApH,GACA,MAAA6B,IAAAuF,QAAApH,IAAA2D,GAAAyD,QAAApH,IAGAuB,KAAA,SAAAvB,EAAAvG,EAAA8H,GACA,MAAAM,IAAAwF,OAAArH,EAAAvG,EAAA8H,IAGA6oB,WAAA,SAAApqB,EAAAvG,GACAoI,GAAAgH,OAAA7I,EAAAvG,IAKA4wB,MAAA,SAAArqB,EAAAvG,EAAA8H,GACA,MAAAoC,IAAA0D,OAAArH,EAAAvG,EAAA8H,IAGA+oB,YAAA,SAAAtqB,EAAAvG,GACAkK,GAAAkF,OAAA7I,EAAAvG,MAIAsF,GAAAgH,GAAAwB,QACAhG,KAAA,SAAAD,EAAApF,GACA,GAAA/B,GAAAV,EAAA8H,EACAvB,EAAAX,KAAA,GACA0N,EAAA/M,GAAAA,EAAAoe,UAGA,QAAA3f,KAAA6C,EAAA,CACA,GAAAjC,KAAAzE,SACA2G,EAAAM,GAAA+B,IAAA5D,GAEA,IAAAA,EAAAC,WAAA0D,GAAAC,IAAA5D,EAAA,iBAAA,CAEA,IADA7F,EAAA4S,EAAAnS,OACAT,KAIA4S,EAAA5S,KACAV,EAAAsT,EAAA5S,GAAAV,KACA,IAAAA,EAAAmD,QAAA,WACAnD,EAAAsF,GAAA+P,UAAArV,EAAAyB,MAAA,IACAmG,EAAArB,EAAAvG,EAAA8H,EAAA9H,KAIAkK,IAAA7B,IAAA9B,EAAA,gBAAA,GAIA,MAAAuB,GAIA,MAAA,gBAAAD,GACAjC,KAAAqB,KAAA,WACAmB,GAAAC,IAAAzC,KAAAiC,KAIA+F,GAAAhI,KAAA,SAAAnD,GACA,GAAAqF,GAAAgpB,CAOA,IAAAvqB,OAAAvB,KAAAvC,EAAA,CAUA,OAAAuC,MANA8C,EAAAM,GAAA+B,IAAA5D,EAAAsB,IAIAO,GAAA+B,IAAA5D,EAAAsB,EAAAtG,QAAAwG,GAAA,OAAAC,gBAGA,MAAAF,EAQA,IALAgpB,EAAAxrB,GAAA+P,UAAAxN,OAKA7C,MADA8C,EAAAM,GAAA+B,IAAA5D,EAAAuqB,IAEA,MAAAhpB,EAMA,QAAA9C,MADA8C,EAAAF,EAAArB,EAAAuqB,MAAA9rB,KAEA,MAAA8C,OAQAgpB,GAAAxrB,GAAA+P,UAAAxN,GACAjC,KAAAqB,KAAA,WAIA,GAAAa,GAAAM,GAAA+B,IAAAvE,KAAAkrB,EAKA1oB,IAAAC,IAAAzC,KAAAkrB,EAAAruB,GAKAoF,EAAA1E,QAAA,MAAA,OAAA6B,KAAA8C,GACAM,GAAAC,IAAAzC,KAAAiC,EAAApF,MAGA,KAAAA,EAAAP,UAAAf,OAAA,EAAA,MAAA,IAGAwvB,WAAA,SAAA9oB,GACA,MAAAjC,MAAAqB,KAAA,WACAmB,GAAAgH,OAAAxJ,KAAAiC,QAMAvC,GAAAwI,QACAwG,MAAA,SAAA/N,EAAAR,EAAA+B,GACA,GAAAwM,EAEA,IAAA/N,EAYA,MAXAR,IAAAA,GAAA,MAAA,QACAuO,EAAApK,GAAAC,IAAA5D,EAAAR,GAGA+B,KACAwM,GAAAhP,GAAAgQ,QAAAxN,GACAwM,EAAApK,GAAA0D,OAAArH,EAAAR,EAAAT,GAAAuX,UAAA/U,IAEAwM,EAAAnS,KAAA2F,IAGAwM,OAIAyc,QAAA,SAAAxqB,EAAAR,GACAA,EAAAA,GAAA,IAEA,IAAAuO,GAAAhP,GAAAgP,MAAA/N,EAAAR,GACAirB,EAAA1c,EAAAnT,OACAmL,EAAAgI,EAAA6E,QACAlF,EAAA3O,GAAAiP,YAAAhO,EAAAR,GACA+mB,EAAA,WACAxnB,GAAAyrB,QAAAxqB,EAAAR,GAIA,gBAAAuG,IACAA,EAAAgI,EAAA6E,QACA6X,KAGA1kB,IAIA,OAAAvG,GACAuO,EAAAuD,QAAA,oBAIA5D,GAAA4C,KACAvK,EAAAxM,KAAAyG,EAAAumB,EAAA7Y,KAGA+c,GAAA/c,GACAA,EAAAQ,MAAAC,QAKAH,YAAA,SAAAhO,EAAAR,GACA,GAAA8B,GAAA9B,EAAA,YACA,OAAAmE,IAAAC,IAAA5D,EAAAsB,IAAAqC,GAAA0D,OAAArH,EAAAsB,GACA4M,MAAAnP,GAAAooB,UAAA,eAAA9gB,IAAA,WACA1C,GAAAkF,OAAA7I,GAAAR,EAAA,QAAA8B,WAMAvC,GAAAgH,GAAAwB,QACAwG,MAAA,SAAAvO,EAAA+B,GACA,GAAAmpB,GAAA,CAQA,OANA,gBAAAlrB,KACA+B,EAAA/B,EACAA,EAAA,KACAkrB,KAGA/uB,UAAAf,OAAA8vB,EACA3rB,GAAAgP,MAAA1O,KAAA,GAAAG,OAGAf,KAAA8C,EACAlC,KACAA,KAAAqB,KAAA,WACA,GAAAqN,GAAAhP,GAAAgP,MAAA1O,KAAAG,EAAA+B,EAGAxC,IAAAiP,YAAA3O,KAAAG,GAEA,OAAAA,GAAA,eAAAuO,EAAA,IACAhP,GAAAyrB,QAAAnrB,KAAAG,MAIAgrB,QAAA,SAAAhrB,GACA,MAAAH,MAAAqB,KAAA,WACA3B,GAAAyrB,QAAAnrB,KAAAG,MAGAmrB,WAAA,SAAAnrB,GACA,MAAAH,MAAA0O,MAAAvO,GAAA,UAKA2Q,QAAA,SAAA3Q,EAAApG,GACA,GAAA6K,GACA2mB,EAAA,EACAC,EAAA9rB,GAAAwQ,WACA5P,EAAAN,KACAlF,EAAAkF,KAAAzE,OACAytB,EAAA,aACAuC,GACAC,EAAA3a,YAAAvQ,GAAAA,IAUA,KANA,gBAAAH,KACApG,EAAAoG,EACAA,MAAAf,IAEAe,EAAAA,GAAA,KAEArF,MACA8J,EAAAN,GAAAC,IAAAjE,EAAAxF,GAAAqF,EAAA,gBACAyE,EAAAiK,QACA0c,IACA3mB,EAAAiK,MAAA7H,IAAAgiB,GAIA,OADAA,KACAwC,EAAA1a,QAAA/W,KAGA,IAAA0xB,IAAA,sCAAAC,OAEApoB,GAAA,GAAA4b,QAAA,iBAAAuM,GAAA,cAAA,KAGApf,IAAA,MAAA,QAAA,SAAA,QAEAW,GAAA,SAAArM,EAAAgrB,GAKA,MADAhrB,GAAAgrB,GAAAhrB,EACA,SAAAjB,GAAAuD,IAAAtC,EAAA,aACAjB,GAAAoF,SAAAnE,EAAAqF,cAAArF,IA8DAyH,GAAA,wBAEA/C,GAAA,aAEAY,GAAA,4BAKAX,IAGAsmB,QAAA,EAAA,+BAAA,aAKAC,OAAA,EAAA,UAAA,YACAC,KAAA,EAAA,oBAAA,uBACAC,IAAA,EAAA,iBAAA,oBACAC,IAAA,EAAA,qBAAA,yBAEAzmB,UAAA,EAAA,GAAA,IAIAD,IAAA2mB,SAAA3mB,GAAAsmB,OAEAtmB,GAAA4mB,MAAA5mB,GAAA6mB,MAAA7mB,GAAA8mB,SAAA9mB,GAAA+mB,QAAA/mB,GAAAumB,MACAvmB,GAAAgnB,GAAAhnB,GAAA0mB,EAkCA,IAAA9mB,IAAA,aA4FA,WACA,GAAAH,GAAAlF,EAAAmF,yBACA2U,EAAA5U,EAAAI,YAAAtF,EAAAuF,cAAA,QACAmc,EAAA1hB,EAAAuF,cAAA,QAMAmc,GAAA3I,aAAA,OAAA,SACA2I,EAAA3I,aAAA,UAAA,WACA2I,EAAA3I,aAAA,OAAA,KAEAe,EAAAxU,YAAAoc,GAIAzY,GAAAC,WAAA4Q,EAAA4S,WAAA,GAAAA,WAAA,GAAA7mB,UAAA2C,QAIAsR,EAAAnU,UAAA,yBACAsD,GAAA0jB,iBAAA7S,EAAA4S,WAAA,GAAA7mB,UAAA4C,eAIA,IACAmkB,IAAA,OACAC,GAAA,iDACAC,GAAA,qBAmFAjtB,IAAAmH,OAEAlH,UAEAqH,IAAA,SAAArG,EAAA6F,EAAAqT,EAAA3X,EAAAuE,GAEA,GAAAmmB,GAAAC,EAAAjoB,EACAkD,EAAAglB,EAAAC,EACAC,EAAApvB,EAAAuC,EAAA8sB,EAAAC,EACAC,EAAA7oB,GAAAC,IAAA5D,EAGA,IAAAwsB,EAiCA,IA5BAtT,EAAAA,UACA+S,EAAA/S,EACAA,EAAA+S,EAAA/S,QACApT,EAAAmmB,EAAAnmB,UAIAoT,EAAA9S,OACA8S,EAAA9S,KAAArH,GAAAqH,SAIAe,EAAAqlB,EAAArlB,UACAA,EAAAqlB,EAAArlB,YAEA+kB,EAAAM,EAAAllB,UACA4kB,EAAAM,EAAAllB,OAAA,SAAAxJ,GAIA,WAAA,KAAAiB,IAAAA,GAAAmH,MAAAumB,YAAA3uB,EAAA0B,KACAT,GAAAmH,MAAAwmB,SAAA5wB,MAAAkE,EAAArE,eAAA8C,KAKAoH,GAAAA,GAAA,IAAAlF,MAAAC,MAAA,IACAurB,EAAAtmB,EAAAjL,OACAuxB,KACAloB,EAAA+nB,GAAAppB,KAAAiD,EAAAsmB,QACA3sB,EAAA+sB,EAAAtoB,EAAA,GACAqoB,GAAAroB,EAAA,IAAA,IAAAzJ,MAAA,KAAA2a,OAGA3V,IAKA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OAGAA,GAAAsG,EAAAumB,EAAAM,aAAAN,EAAAO,WAAAptB,EAGA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OAGA4sB,EAAArtB,GAAAwI,QACA/H,KAAAA,EACA+sB,SAAAA,EACAhrB,KAAAA,EACA2X,QAAAA,EACA9S,KAAA8S,EAAA9S,KACAN,SAAAA,EACAsZ,aAAAtZ,GAAA/G,GAAA4iB,KAAAhhB,MAAAye,aAAArkB,KAAA+K,GACA+mB,UAAAP,EAAAjxB,KAAA,MACA4wB,IAGAhvB,EAAAkK,EAAA3H,MACAvC,EAAAkK,EAAA3H,MACAvC,EAAA6vB,cAAA,EAGAT,EAAAU,QACA,IAAAV,EAAAU,MAAAxzB,KAAAyG,EAAAuB,EAAA+qB,EAAAJ,IAEAlsB,EAAAogB,kBACApgB,EAAAogB,iBAAA5gB,EAAA0sB,IAKAG,EAAAhmB,MACAgmB,EAAAhmB,IAAA9M,KAAAyG,EAAAosB,GAEAA,EAAAlT,QAAA9S,OACAgmB,EAAAlT,QAAA9S,KAAA8S,EAAA9S,OAKAN,EACA7I,EAAA7B,OAAA6B,EAAA6vB,gBAAA,EAAAV,GAEAnvB,EAAArB,KAAAwwB,GAIArtB,GAAAmH,MAAAlH,OAAAQ,IAAA,IAMAqJ,OAAA,SAAA7I,EAAA6F,EAAAqT,EAAApT,EAAAknB,GAEA,GAAA5yB,GAAA6yB,EAAAhpB,EACAkD,EAAAglB,EAAAC,EACAC,EAAApvB,EAAAuC,EAAA8sB,EAAAC,EACAC,EAAA7oB,GAAAyD,QAAApH,IAAA2D,GAAAC,IAAA5D,EAEA,IAAAwsB,IAAArlB,EAAAqlB,EAAArlB,QAAA,CAOA,IAFAtB,GAAAA,GAAA,IAAAlF,MAAAC,MAAA,IACAurB,EAAAtmB,EAAAjL,OACAuxB,KAMA,GALAloB,EAAA+nB,GAAAppB,KAAAiD,EAAAsmB,QACA3sB,EAAA+sB,EAAAtoB,EAAA,GACAqoB,GAAAroB,EAAA,IAAA,IAAAzJ,MAAA,KAAA2a,OAGA3V,EAAA,CAeA,IARA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OACAA,GAAAsG,EAAAumB,EAAAM,aAAAN,EAAAO,WAAAptB,EACAvC,EAAAkK,EAAA3H,OACAyE,EAAAA,EAAA,IACA,GAAAsa,QAAA,UAAA+N,EAAAjxB,KAAA,iBAAA,WAGA4xB,EAAA7yB,EAAA6C,EAAArC,OACAR,KACAgyB,EAAAnvB,EAAA7C,IAEA4yB,GAAAT,IAAAH,EAAAG,UACArT,GAAAA,EAAA9S,OAAAgmB,EAAAhmB,MACAnC,IAAAA,EAAAlJ,KAAAqxB,EAAAS,YACA/mB,GAAAA,IAAAsmB,EAAAtmB,WACA,OAAAA,IAAAsmB,EAAAtmB,YACA7I,EAAA7B,OAAAhB,EAAA,GAEAgyB,EAAAtmB,UACA7I,EAAA6vB,gBAEAT,EAAAxjB,QACAwjB,EAAAxjB,OAAAtP,KAAAyG,EAAAosB,GAOAa,KAAAhwB,EAAArC,SACAyxB,EAAAa,WACA,IAAAb,EAAAa,SAAA3zB,KAAAyG,EAAAssB,EAAAE,EAAAllB,SAEAvI,GAAAouB,YAAAntB,EAAAR,EAAAgtB,EAAAllB,cAGAH,GAAA3H,QA1CA,KAAAA,IAAA2H,GACApI,GAAAmH,MAAA2C,OAAA7I,EAAAR,EAAAqG,EAAAsmB,GAAAjT,EAAApT,GAAA,EA8CA/G,IAAA0P,cAAAtH,IACAxD,GAAAkF,OAAA7I,EAAA,mBAIA0sB,SAAA,SAAAxmB,GAGAA,EAAAnH,GAAAmH,MAAAknB,IAAAlnB,EAEA,IAAA/L,GAAAC,EAAAiE,EAAAilB,EAAA8I,EACAiB,KACA5xB,EAAAP,EAAA3B,KAAAoC,WACAsB,GAAA0G,GAAAC,IAAAvE,KAAA,eAAA6G,EAAA1G,UACA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAAnmB,EAAA1G,SAOA,IAJA/D,EAAA,GAAAyK,EACAA,EAAAonB,eAAAjuB,MAGAgtB,EAAAkB,cAAA,IAAAlB,EAAAkB,YAAAh0B,KAAA8F,KAAA6G,GAAA,CASA,IAJAmnB,EAAAtuB,GAAAmH,MAAAjJ,SAAA1D,KAAA8F,KAAA6G,EAAAjJ,GAGA9C,EAAA,GACAmpB,EAAA+J,EAAAlzB,QAAA+L,EAAAsnB,wBAIA,IAHAtnB,EAAAunB,cAAAnK,EAAAtjB,KAEA5F,EAAA,GACAgyB,EAAA9I,EAAArmB,SAAA7C,QACA8L,EAAAwnB,iCAIAxnB,EAAAynB,aAAAznB,EAAAynB,WAAA5yB,KAAAqxB,EAAAS,aAEA3mB,EAAAkmB,UAAAA,EACAlmB,EAAA3E,KAAA6qB,EAAA7qB,SAKA9C,MAHAJ,IAAAU,GAAAmH,MAAAmmB,QAAAD,EAAAG,eAAAjlB,QACA8kB,EAAAlT,SAAApd,MAAAwnB,EAAAtjB,KAAAvE,MAGA,KAAAyK,EAAAiJ,OAAA9Q,KACA6H,EAAA0nB,iBACA1nB,EAAA2nB,mBAYA,OAJAxB,GAAAyB,cACAzB,EAAAyB,aAAAv0B,KAAA8F,KAAA6G,GAGAA,EAAAiJ,SAGAlS,SAAA,SAAAiJ,EAAAjJ,GACA,GAAA9C,GAAA+Q,EAAA6iB,EAAA3B,EACAiB,KACAP,EAAA7vB,EAAA6vB,cACAzsB,EAAA6F,EAAA+L,MAQA,IAAA6a,GAAAzsB,EAAAJ,WACA,UAAAiG,EAAA1G,MAAAwuB,MAAA9nB,EAAAoe,SAAApe,EAAAoe,OAAA,GAEA,KAAAjkB,IAAAhB,KAAAgB,EAAAA,EAAA2I,YAAA3J,KAIA,GAAA,IAAAgB,EAAAJ,YAAA,IAAAI,EAAA8jB,UAAA,UAAAje,EAAA1G,MAAA,CAEA,IADA0L,KACA/Q,EAAA,EAAAA,EAAA2yB,EAAA3yB,IACAiyB,EAAAnvB,EAAA9C,GAGA4zB,EAAA3B,EAAAtmB,SAAA,QAEArH,KAAAyM,EAAA6iB,KACA7iB,EAAA6iB,GAAA3B,EAAAhN,aACArgB,GAAAgvB,EAAA1uB,MAAA1C,MAAA0D,IAAA,EACAtB,GAAAke,KAAA8Q,EAAA1uB,KAAA,MAAAgB,IAAAzF,QAEAsQ,EAAA6iB,IACA7iB,EAAAtP,KAAAwwB,EAGAlhB,GAAAtQ,QACAyyB,EAAAzxB,MAAAoE,KAAAK,EAAApD,SAAAiO,IAWA,MAJA4hB,GAAA7vB,EAAArC,QACAyyB,EAAAzxB,MAAAoE,KAAAX,KAAApC,SAAAA,EAAA/B,MAAA4xB,KAGAO,GAIA9f,MAAA,+HACA/S,MAAA,KAEAyzB,YAEAC,UACA3gB,MAAA,4BAAA/S,MAAA,KACA2F,OAAA,SAAA+F,EAAAioB,GAOA,MAJA,OAAAjoB,EAAA4G,QACA5G,EAAA4G,MAAA,MAAAqhB,EAAAC,SAAAD,EAAAC,SAAAD,EAAAE,SAGAnoB,IAIAooB,YACA/gB,MAAA,uFACA/S,MAAA,KACA2F,OAAA,SAAA+F,EAAAioB,GACA,GAAAI,GAAAtmB,EAAAmB,EACAkb,EAAA6J,EAAA7J,MAsBA,OAnBA,OAAApe,EAAAsoB,OAAA,MAAAL,EAAAM,UACAF,EAAAroB,EAAA+L,OAAA5M,eAAAnG,EACA+I,EAAAsmB,EAAA7kB,gBACAN,EAAAmlB,EAAAnlB,KAEAlD,EAAAsoB,MAAAL,EAAAM,SACAxmB,GAAAA,EAAAymB,YAAAtlB,GAAAA,EAAAslB,YAAA,IACAzmB,GAAAA,EAAA0mB,YAAAvlB,GAAAA,EAAAulB,YAAA,GACAzoB,EAAA0oB,MAAAT,EAAAU,SACA5mB,GAAAA,EAAA6mB,WAAA1lB,GAAAA,EAAA0lB,WAAA,IACA7mB,GAAAA,EAAA8mB,WAAA3lB,GAAAA,EAAA2lB,WAAA,IAKA7oB,EAAA4G,WAAArO,KAAA6lB,IACApe,EAAA4G,MAAA,EAAAwX,EAAA,EAAA,EAAAA,EAAA,EAAA,EAAAA,EAAA,EAAA,GAGApe,IAIAknB,IAAA,SAAAlnB,GACA,GAAAA,EAAAnH,GAAAoC,SACA,MAAA+E,EAIA,IAAA/L,GAAAd,EAAA+b,EACA5V,EAAA0G,EAAA1G,KACAwvB,EAAA9oB,EACA+oB,EAAA5vB,KAAA4uB,SAAAzuB,EAaA,KAXAyvB,IACA5vB,KAAA4uB,SAAAzuB,GAAAyvB,EACAlD,GAAAhxB,KAAAyE,GAAAH,KAAAivB,WACAxC,GAAA/wB,KAAAyE,GAAAH,KAAA6uB,aAGA9Y,EAAA6Z,EAAA1hB,MAAAlO,KAAAkO,MAAApS,OAAA8zB,EAAA1hB,OAAAlO,KAAAkO,MAEArH,EAAA,GAAAnH,IAAAmwB,MAAAF,GAEA70B,EAAAib,EAAAxa,OACAT,KACAd,EAAA+b,EAAAjb,GACA+L,EAAA7M,GAAA21B,EAAA31B,EAeA,OAVA6M,GAAA+L,SACA/L,EAAA+L,OAAA/S,GAKA,IAAAgH,EAAA+L,OAAAhS,WACAiG,EAAA+L,OAAA/L,EAAA+L,OAAAjJ,YAGAimB,EAAA9uB,OAAA8uB,EAAA9uB,OAAA+F,EAAA8oB,GAAA9oB,GAGAmmB,SACA7tB,MAGA2wB,UAAA,GAEArL,OAGAsL,QAAA,WACA,GAAA/vB,OAAAoG,KAAApG,KAAAykB,MAEA,MADAzkB,MAAAykB,SACA,GAGA6I,aAAA,WAEA0C,MACAD,QAAA,WACA,GAAA/vB,OAAAoG,KAAApG,KAAAgwB,KAEA,MADAhwB,MAAAgwB,QACA,GAGA1C,aAAA,YAEA2C,OAGAF,QAAA,WACA,GAAA,aAAA/vB,KAAAG,MAAAH,KAAAiwB,OAAAvwB,GAAAsE,SAAAhE,KAAA,SAEA,MADAA,MAAAiwB,SACA,GAKA1qB,SAAA,SAAAsB,GACA,MAAAnH,IAAAsE,SAAA6C,EAAA+L,OAAA,OAIAsd,cACAzB,aAAA,SAAA5nB,OAIAzH,KAAAyH,EAAAiJ,QAAAjJ,EAAA8oB,gBACA9oB,EAAA8oB,cAAAQ,YAAAtpB,EAAAiJ,YAOApQ,GAAAouB,YAAA,SAAAntB,EAAAR,EAAA8H,GAGAtH,EAAAgB,qBACAhB,EAAAgB,oBAAAxB,EAAA8H,IAIAvI,GAAAmwB,MAAA,SAAAroB,EAAA0G,GAGA,KAAAlO,eAAAN,IAAAmwB,OACA,MAAA,IAAAnwB,IAAAmwB,MAAAroB,EAAA0G,EAIA1G,IAAAA,EAAArH,MACAH,KAAA2vB,cAAAnoB,EACAxH,KAAAG,KAAAqH,EAAArH,KAIAH,KAAAowB,mBAAA5oB,EAAA6oB,sBACAjxB,KAAAoI,EAAA6oB,mBAGA,IAAA7oB,EAAA2oB,YACAjqB,EACAC,GAIAnG,KAAAG,KAAAqH,EAIA0G,GACAxO,GAAAwI,OAAAlI,KAAAkO,GAIAlO,KAAAswB,UAAA9oB,GAAAA,EAAA8oB,WAAA5wB,GAAA4N,MAGAtN,KAAAN,GAAAoC,UAAA,GAKApC,GAAAmwB,MAAA/xB,WACAyX,YAAA7V,GAAAmwB,MACAO,mBAAAjqB,EACAgoB,qBAAAhoB,EACAkoB,8BAAAloB,EACAoqB,aAAA,EAEAhC,eAAA,WACA,GAAA9vB,GAAAuB,KAAA2vB,aAEA3vB,MAAAowB,mBAAAlqB,EAEAzH,IAAAuB,KAAAuwB,aACA9xB,EAAA8vB,kBAGAC,gBAAA,WACA,GAAA/vB,GAAAuB,KAAA2vB,aAEA3vB,MAAAmuB,qBAAAjoB,EAEAzH,IAAAuB,KAAAuwB,aACA9xB,EAAA+vB,mBAGAgC,yBAAA,WACA,GAAA/xB,GAAAuB,KAAA2vB,aAEA3vB,MAAAquB,8BAAAnoB,EAEAzH,IAAAuB,KAAAuwB,aACA9xB,EAAA+xB,2BAGAxwB,KAAAwuB,oBAYA9uB,GAAA2B,MACAovB,WAAA,YACAC,WAAA,WACAC,aAAA,cACAC,aAAA,cACA,SAAApiB,EAAAuf,GACAruB,GAAAmH,MAAAmmB,QAAAxe,IACA8e,aAAAS,EACAR,SAAAQ,EAEA9lB,OAAA,SAAApB,GACA,GAAA7H,GACA4T,EAAA5S,KACA6wB,EAAAhqB,EAAAiqB,cACA/D,EAAAlmB,EAAAkmB,SASA,OALA8D,KAAAA,IAAAje,GAAAlT,GAAAoF,SAAA8N,EAAAie,MACAhqB,EAAA1G,KAAA4sB,EAAAG,SACAluB,EAAA+tB,EAAAlT,QAAApd,MAAAuD,KAAA1D,WACAuK,EAAA1G,KAAA4tB,GAEA/uB,MAKAU,GAAAgH,GAAAwB,QACA3B,GAAA,SAAAC,EAAAC,EAAAvE,EAAAwE,GACA,MAAAH,GAAAvG,KAAAwG,EAAAC,EAAAvE,EAAAwE,IAEAC,IAAA,SAAAH,EAAAC,EAAAvE,EAAAwE,GACA,MAAAH,GAAAvG,KAAAwG,EAAAC,EAAAvE,EAAAwE,EAAA,IAEAI,IAAA,SAAAN,EAAAC,EAAAC,GACA,GAAAqmB,GAAA5sB,CACA,IAAAqG,GAAAA,EAAA+nB,gBAAA/nB,EAAAumB,UAWA,MARAA,GAAAvmB,EAAAumB,UACArtB,GAAA8G,EAAAynB,gBAAAnnB,IACAimB,EAAAS,UACAT,EAAAG,SAAA,IAAAH,EAAAS,UACAT,EAAAG,SACAH,EAAAtmB,SACAsmB,EAAAlT,SAEA7Z,IAEA,IAAA,gBAAAwG,GAAA,CAGA,IAAArG,IAAAqG,GACAxG,KAAA8G,IAAA3G,EAAAsG,EAAAD,EAAArG,GAEA,OAAAH,MAWA,OATA,IAAAyG,GAAA,kBAAAA,KAGAC,EAAAD,EACAA,MAAArH,KAEA,IAAAsH,IACAA,EAAAP,GAEAnG,KAAAqB,KAAA,WACA3B,GAAAmH,MAAA2C,OAAAxJ,KAAAwG,EAAAE,EAAAD,OAMA,IACAsqB,IAAA,2EAKAC,GAAA,wBAGAhoB,GAAA,oCACA3B,GAAA,cACAkC,GAAA,0CA4LA7J,IAAAwI,QACAzC,cAAA,SAAA0D,GACA,MAAAA,GAAAxN,QAAAo1B,GAAA,cAGA3nB,MAAA,SAAAzI,EAAAswB,EAAAC,GACA,GAAAp2B,GAAAuJ,EAAA8sB,EAAAC,EACAhoB,EAAAzI,EAAA4rB,WAAA,GACA8E,EAAA3xB,GAAAoF,SAAAnE,EAAAqF,cAAArF,EAGA,MAAAmI,GAAA0jB,gBAAA,IAAA7rB,EAAAC,UAAA,KAAAD,EAAAC,UACAlB,GAAA4mB,SAAA3lB,IAMA,IAHAywB,EAAAztB,EAAAyF,GACA+nB,EAAAxtB,EAAAhD,GAEA7F,EAAA,EAAAuJ,EAAA8sB,EAAA51B,OAAAT,EAAAuJ,EAAAvJ,IACAqN,EAAAgpB,EAAAr2B,GAAAs2B,EAAAt2B,GAKA,IAAAm2B,EACA,GAAAC,EAIA,IAHAC,EAAAA,GAAAxtB,EAAAhD,GACAywB,EAAAA,GAAAztB,EAAAyF,GAEAtO,EAAA,EAAAuJ,EAAA8sB,EAAA51B,OAAAT,EAAAuJ,EAAAvJ,IACAyM,EAAA4pB,EAAAr2B,GAAAs2B,EAAAt2B,QAGAyM,GAAA5G,EAAAyI,EAWA,OANAgoB,GAAAztB,EAAAyF,EAAA,UACAgoB,EAAA71B,OAAA,GACA2I,EAAAktB,GAAAC,GAAA1tB,EAAAhD,EAAA,WAIAyI,GAGAM,UAAA,SAAAvF,GAKA,IAJA,GAAAjC,GAAAvB,EAAAR,EACA6sB,EAAAttB,GAAAmH,MAAAmmB,QACAlyB,EAAA,MAEAsE,MAAAuB,EAAAwD,EAAArJ,IAAAA,IACA,GAAAyvB,GAAA5pB,GAAA,CACA,GAAAuB,EAAAvB,EAAA2D,GAAAxC,SAAA,CACA,GAAAI,EAAA4F,OACA,IAAA3H,IAAA+B,GAAA4F,OACAklB,EAAA7sB,GACAT,GAAAmH,MAAA2C,OAAA7I,EAAAR,GAIAT,GAAAouB,YAAAntB,EAAAR,EAAA+B,EAAA+F,OAOAtH,GAAA2D,GAAAxC,aAAA1C,GAEAuB,EAAA6B,GAAAV,WAIAnB,EAAA6B,GAAAV,aAAA1C,QAOAM,GAAAgH,GAAAwB,QAGAK,SAAAA,EAEA0B,OAAA,SAAAxD,GACA,MAAA+C,GAAAxJ,KAAAyG,GAAA,IAGA+C,OAAA,SAAA/C,GACA,MAAA+C,GAAAxJ,KAAAyG,IAGAqQ,KAAA,SAAAja,GACA,MAAAmL,IAAAhI,KAAA,SAAAnD,GACA,WAAAuC,KAAAvC,EACA6C,GAAAoX,KAAA9W,MACAA,KAAA6O,QAAAxN,KAAA,WACA,IAAArB,KAAAY,UAAA,KAAAZ,KAAAY,UAAA,IAAAZ,KAAAY,WACAZ,KAAA6F,YAAAhJ,MAGA,KAAAA,EAAAP,UAAAf,SAGA+1B,OAAA,WACA,MAAA/oB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACA,GAAA,IAAAX,KAAAY,UAAA,KAAAZ,KAAAY,UAAA,IAAAZ,KAAAY,SAAA,CACAqG,EAAAjH,KAAAW,GACAwE,YAAAxE,OAKA4wB,QAAA,WACA,MAAAhpB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACA,GAAA,IAAAX,KAAAY,UAAA,KAAAZ,KAAAY,UAAA,IAAAZ,KAAAY,SAAA,CACA,GAAAgS,GAAA3L,EAAAjH,KAAAW,EACAiS,GAAA4e,aAAA7wB,EAAAiS,EAAAhN,gBAKA6rB,OAAA,WACA,MAAAlpB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACAX,KAAA2J,YACA3J,KAAA2J,WAAA6nB,aAAA7wB,EAAAX,SAKA0xB,MAAA,WACA,MAAAnpB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACAX,KAAA2J,YACA3J,KAAA2J,WAAA6nB,aAAA7wB,EAAAX,KAAAqa,gBAKAxL,MAAA,WAIA,IAHA,GAAAlO,GACA7F,EAAA,EAEA,OAAA6F,EAAAX,KAAAlF,IAAAA,IACA,IAAA6F,EAAAC,WAGAlB,GAAAgK,UAAA/F,EAAAhD,GAAA,IAGAA,EAAAkF,YAAA,GAIA,OAAA7F,OAGAoJ,MAAA,SAAA6nB,EAAAC,GAIA,MAHAD,GAAA,MAAAA,GAAAA,EACAC,EAAA,MAAAA,EAAAD,EAAAC,EAEAlxB,KAAA5E,IAAA,WACA,MAAAsE,IAAA0J,MAAApJ,KAAAixB,EAAAC,MAIA/nB,KAAA,SAAAtM,GACA,MAAAmL,IAAAhI,KAAA,SAAAnD,GACA,GAAA8D,GAAAX,KAAA,OACAlF,EAAA,EACAuJ,EAAArE,KAAAzE,MAEA,QAAA6D,KAAAvC,GAAA,IAAA8D,EAAAC,SACA,MAAAD,GAAA6E,SAIA,IAAA,gBAAA3I,KAAAm0B,GAAAt1B,KAAAmB,KACAyI,IAAAD,GAAA9B,KAAA1G,KAAA,GAAA,KAAA,GAAAuF,eAAA,CAEAvF,EAAA6C,GAAA+F,cAAA5I,EAEA,KACA,KAAA/B,EAAAuJ,EAAAvJ,IACA6F,EAAAX,KAAAlF,OAGA,IAAA6F,EAAAC,WACAlB,GAAAgK,UAAA/F,EAAAhD,GAAA,IACAA,EAAA6E,UAAA3I,EAIA8D,GAAA,EAGA,MAAAlC,KAGAkC,GACAX,KAAA6O,QAAAyiB,OAAAz0B,IAEA,KAAAA,EAAAP,UAAAf,SAGAo2B,YAAA,WACA,GAAAhtB,KAGA,OAAA4D,GAAAvI,KAAA1D,UAAA,SAAAqE,GACA,GAAAkgB,GAAA7gB,KAAA2J,UAEAjK,IAAAqG,QAAA/F,KAAA2E,GAAA,IACAjF,GAAAgK,UAAA/F,EAAA3D,OACA6gB,GACAA,EAAA+Q,aAAAjxB,EAAAX,QAKA2E,MAIAjF,GAAA2B,MACAyI,SAAA,SACA+nB,UAAA,UACAL,aAAA,SACAM,YAAA,QACAC,WAAA,eACA,SAAA33B,EAAA00B,GACApvB,GAAAgH,GAAAtM,GAAA,SAAAqM,GAOA,IANA,GAAAtC,GACAnF,KACAgzB,EAAAtyB,GAAA+G,GACAmP,EAAAoc,EAAAz2B,OAAA,EACAT,EAAA,EAEAA,GAAA8a,EAAA9a,IACAqJ,EAAArJ,IAAA8a,EAAA5V,KAAAA,KAAAoJ,OAAA,GACA1J,GAAAsyB,EAAAl3B,IAAAg0B,GAAA3qB,GAIA5H,EAAAE,MAAAuC,EAAAmF,EAAAI,MAGA,OAAAvE,MAAA0V,UAAA1W,KAKA,IAAAoL,IACAD,IAIA8nB,KAAA,QACAC,KAAA,SAyDAhnB,GAAA,UAEAD,GAAA,GAAAiU,QAAA,KAAAuM,GAAA,kBAAA,KAEA3gB,GAAA,SAAAnK,GAKA,GAAAwxB,GAAAxxB,EAAAqF,cAAA4O,WAMA,OAJAud,IAAAA,EAAAC,SACAD,EAAApyB,GAGAoyB,EAAAE,iBAAA1xB,IAGA2xB,GAAA,SAAA3xB,EAAAQ,EAAArC,EAAA1C,GACA,GAAA4C,GAAA5E,EACAm4B,IAGA,KAAAn4B,IAAA+G,GACAoxB,EAAAn4B,GAAAuG,EAAA6C,MAAApJ,GACAuG,EAAA6C,MAAApJ,GAAA+G,EAAA/G,EAGA4E,GAAAF,EAAArC,MAAAkE,EAAAvE,MAGA,KAAAhC,IAAA+G,GACAR,EAAA6C,MAAApJ,GAAAm4B,EAAAn4B,EAGA,OAAA4E,IAIAqL,GAAAxK,EAAAwK,iBAIA,WAsBA,QAAAmoB,KACA7Y,EAAAnW,MAAAivB,QAIA,qKAIA9Y,EAAAnU,UAAA,GACA6E,GAAAlF,YAAAutB,EAEA,IAAAC,GAAA5yB,EAAAsyB,iBAAA1Y,EACAiZ,GAAA,OAAAD,EAAA7R,IACA+R,EAAA,QAAAF,EAAAG,WACAC,EAAA,QAAAJ,EAAAhoB,MAIAgP,EAAAnW,MAAAwvB,YAAA,MACAC,EAAA,QAAAN,EAAAK,YAEA3oB,GAAAT,YAAA8oB,GA3CA,GAAAE,GAAAG,EAAAE,EAAAJ,EACAH,EAAA7yB,EAAAuF,cAAA,OACAuU,EAAA9Z,EAAAuF,cAAA,MAGAuU,GAAAnW,QAMAmW,EAAAnW,MAAA0vB,eAAA,cACAvZ,EAAA4S,WAAA,GAAA/oB,MAAA0vB,eAAA,GACApqB,GAAAqqB,gBAAA,gBAAAxZ,EAAAnW,MAAA0vB,eAEAR,EAAAlvB,MAAAivB,QAAA,4FAEAC,EAAAvtB,YAAAwU,GA6BAja,GAAAwI,OAAAY,IACAsqB,cAAA,WAMA,MADAZ,KACAI,GAEAlmB,kBAAA,WAIA,MAHA,OAAAqmB,GACAP,IAEAO,GAEA/nB,iBAAA,WAQA,MAHA,OAAA+nB,GACAP,IAEAS,GAEAI,mBAAA,WAMA,MAHA,OAAAN,GACAP,IAEAK,GAEAS,oBAAA,WAOA,GAAAt0B,GACAu0B,EAAA5Z,EAAAxU,YAAAtF,EAAAuF,cAAA,OAkBA,OAfAmuB,GAAA/vB,MAAAivB,QAAA9Y,EAAAnW,MAAAivB,QAIA,kGAEAc,EAAA/vB,MAAAwvB,YAAAO,EAAA/vB,MAAAmH,MAAA,IACAgP,EAAAnW,MAAAmH,MAAA,MACAN,GAAAlF,YAAAutB,GAEA1zB,GAAA2N,WAAA5M,EAAAsyB,iBAAAkB,GAAAP,aAEA3oB,GAAAT,YAAA8oB,GACA/Y,EAAA/P,YAAA2pB,GAEAv0B,QA4EA,IAKAw0B,IAAA,4BAEAC,IAAAC,SAAA,WAAAC,WAAA,SAAA3pB,QAAA,SACA4pB,IACAC,cAAA,IACAC,WAAA,OAGApoB,IAAA,SAAA,IAAA,MAAA,MACAH,GAAA1L,EAAAuF,cAAA,OAAA5B,KAuLA9D,IAAAwI,QAIAyH,UACA/B,SACArJ,IAAA,SAAA5D,EAAA+J,GACA,GAAAA,EAAA,CAGA,GAAA1L,GAAAyL,EAAA9J,EAAA,UACA,OAAA,KAAA3B,EAAA,IAAAA,MAOAoE,WACA2wB,yBAAA,EACAC,aAAA,EACAC,aAAA,EACAC,UAAA,EACAC,YAAA,EACAL,YAAA,EACAM,YAAA,EACAxmB,SAAA,EACAymB,OAAA,EACAC,SAAA,EACAC,QAAA,EACAC,QAAA,EACAC,MAAA,GAKAC,UACAC,MAAA,YAIAnxB,MAAA,SAAA7C,EAAAvG,EAAAyC,EAAAoP,GAGA,GAAAtL,GAAA,IAAAA,EAAAC,UAAA,IAAAD,EAAAC,UAAAD,EAAA6C,MAAA,CAKA,GAAAxE,GAAAmB,EAAAkO,EACAumB,EAAAl1B,GAAA+P,UAAArV,GACAoJ,EAAA7C,EAAA6C,KASA,IAPApJ,EAAAsF,GAAAg1B,SAAAE,KACAl1B,GAAAg1B,SAAAE,GAAAtpB,EAAAspB,IAAAA,GAGAvmB,EAAA3O,GAAAiQ,SAAAvV,IAAAsF,GAAAiQ,SAAAilB,OAGAx1B,KAAAvC,EAqCA,MAAAwR,IAAA,OAAAA,QACAjP,MAAAJ,EAAAqP,EAAA9J,IAAA5D,GAAA,EAAAsL,IAEAjN,EAIAwE,EAAApJ,EA3CA+F,SAAAtD,GAGA,WAAAsD,IAAAnB,EAAAsE,GAAAC,KAAA1G,KAAAmC,EAAA,KACAnC,EAAA6F,EAAA/B,EAAAvG,EAAA4E,GAGAmB,EAAA,UAIA,MAAAtD,GAAAA,IAAAA,IAKA,WAAAsD,IACAtD,GAAAmC,GAAAA,EAAA,KAAAU,GAAA0D,UAAAwxB,GAAA,GAAA,OAKA9rB,GAAAqqB,iBAAA,KAAAt2B,GAAA,IAAAzC,EAAAmD,QAAA,gBACAiG,EAAApJ,GAAA,WAIAiU,GAAA,OAAAA,QACAjP,MAAAvC,EAAAwR,EAAA5L,IAAA9B,EAAA9D,EAAAoP,MAEAzI,EAAApJ,GAAAyC,MAiBAoG,IAAA,SAAAtC,EAAAvG,EAAA6R,EAAAE,GACA,GAAAC,GAAAqJ,EAAApH,EACAumB,EAAAl1B,GAAA+P,UAAArV,EAyBA,OAtBAA,GAAAsF,GAAAg1B,SAAAE,KACAl1B,GAAAg1B,SAAAE,GAAAtpB,EAAAspB,IAAAA,GAGAvmB,EAAA3O,GAAAiQ,SAAAvV,IAAAsF,GAAAiQ,SAAAilB,GAGAvmB,GAAA,OAAAA,KACAjC,EAAAiC,EAAA9J,IAAA5D,GAAA,EAAAsL,QAIA7M,KAAAgN,IACAA,EAAA3B,EAAA9J,EAAAvG,EAAA+R,IAIA,WAAAC,GAAAhS,IAAAw5B,MACAxnB,EAAAwnB,GAAAx5B,IAIA,KAAA6R,GAAAA,GACAwJ,EAAA9I,WAAAP,IACA,IAAAH,GAAA4oB,SAAApf,GAAAA,GAAA,EAAArJ,GAEAA,KAIA1M,GAAA2B,MAAA,SAAA,SAAA,SAAAvG,EAAAV,GACAsF,GAAAiQ,SAAAvV,IACAmK,IAAA,SAAA5D,EAAA+J,EAAAuB,GACA,GAAAvB,EAIA,MAAA8oB,IAAA93B,KAAAgE,GAAAuD,IAAAtC,EAAA,aACA,IAAAA,EAAA6L,YACA8lB,GAAA3xB,EAAA8yB,GAAA,WACA,MAAAnnB,GAAA3L,EAAAvG,EAAA6R,KAEAK,EAAA3L,EAAAvG,EAAA6R,IAIAxJ,IAAA,SAAA9B,EAAA9D,EAAAoP,GACA,GAAAJ,GACAM,EAAAF,GAAAnB,GAAAnK,GACAiL,EAAAK,GAAAD,EACArL,EACAvG,EACA6R,EACA,eAAAvM,GAAAuD,IAAAtC,EAAA,aAAA,EAAAwL,GACAA,EAWA,OAPAP,KAAAC,EAAAvI,GAAAC,KAAA1G,KACA,QAAAgP,EAAA,IAAA,QAEAlL,EAAA6C,MAAApJ,GAAAyC,EACAA,EAAA6C,GAAAuD,IAAAtC,EAAAvG,IAGAuR,EAAAhL,EAAA9D,EAAA+O,OAKAlM,GAAAiQ,SAAAmjB,WAAA3nB,EAAArC,GAAAuqB,mBACA,SAAA1yB,EAAA+J,GACA,GAAAA,EACA,OAAAiC,WAAAlC,EAAA9J,EAAA,gBACAA,EAAAm0B,wBAAAC,KACAzC,GAAA3xB,GAAAmyB,WAAA,GAAA,WACA,MAAAnyB,GAAAm0B,wBAAAC,QAEA,OAMAr1B,GAAAiQ,SAAAqjB,YAAA7nB,EAAArC,GAAAwqB,oBACA,SAAA3yB,EAAA+J,GACA,GAAAA,EACA,MAAA4nB,IAAA3xB,GAAAqJ,QAAA,gBACAS,GAAA9J,EAAA,kBAMAjB,GAAA2B,MACA2zB,OAAA,GACAC,QAAA,GACAC,OAAA,SACA,SAAA73B,EAAA83B,GACAz1B,GAAAiQ,SAAAtS,EAAA83B,IACAvlB,OAAA,SAAA/S,GAOA,IANA,GAAA/B,GAAA,EACAs6B,KAGAl3B,EAAA,gBAAArB,GAAAA,EAAA1B,MAAA,MAAA0B,GAEA/B,EAAA,EAAAA,IACAs6B,EAAA/3B,EAAAgP,GAAAvR,GAAAq6B,GACAj3B,EAAApD,IAAAoD,EAAApD,EAAA,IAAAoD,EAAA,EAGA,OAAAk3B,KAIAlqB,GAAAxP,KAAA2B,KACAqC,GAAAiQ,SAAAtS,EAAA83B,GAAA1yB,IAAAkJ,KAIAjM,GAAAgH,GAAAwB,QACAjF,IAAA,SAAA7I,EAAAyC,GACA,MAAAmL,IAAAhI,KAAA,SAAAW,EAAAvG,EAAAyC,GACA,GAAAsP,GAAA0J,EACAza,KACAN,EAAA,CAEA,IAAA4E,GAAAgQ,QAAAtV,GAAA,CAIA,IAHA+R,EAAArB,GAAAnK,GACAkV,EAAAzb,EAAAmB,OAEAT,EAAA+a,EAAA/a,IACAM,EAAAhB,EAAAU,IAAA4E,GAAAuD,IAAAtC,EAAAvG,EAAAU,IAAA,EAAAqR,EAGA,OAAA/Q,GAGA,WAAAgE,KAAAvC,EACA6C,GAAA8D,MAAA7C,EAAAvG,EAAAyC,GACA6C,GAAAuD,IAAAtC,EAAAvG,IACAA,EAAAyC,EAAAP,UAAAf,OAAA,IAEAsR,KAAA,WACA,MAAAD,GAAA5M,MAAA,IAEAsP,KAAA,WACA,MAAA1C,GAAA5M,OAEAoO,OAAA,SAAAiG,GACA,MAAA,iBAAAA,GACAA,EAAArU,KAAA6M,OAAA7M,KAAAsP,OAGAtP,KAAAqB,KAAA,WACA2L,GAAAhN,MACAN,GAAAM,MAAA6M,OAEAnN,GAAAM,MAAAsP,YAUA5P,GAAAuN,MAAAA,EAEAA,EAAAnP,WACAyX,YAAAtI,EACAE,KAAA,SAAAxM,EAAAQ,EAAAnH,EAAA0J,EAAAwJ,EAAA/J,GACAnD,KAAAW,KAAAA,EACAX,KAAAhG,KAAAA,EACAgG,KAAAkN,OAAAA,GAAAxN,GAAAwN,OAAA3H,SACAvF,KAAAmB,QAAAA,EACAnB,KAAAyD,MAAAzD,KAAAsN,IAAAtN,KAAAgB,MACAhB,KAAA0D,IAAAA,EACA1D,KAAAmD,KAAAA,IAAAzD,GAAA0D,UAAApJ,GAAA,GAAA,OAEAgH,IAAA,WACA,GAAAqN,GAAApB,EAAAooB,UAAAr1B,KAAAhG,KAEA,OAAAqU,IAAAA,EAAA9J,IACA8J,EAAA9J,IAAAvE,MACAiN,EAAAooB,UAAA9vB,SAAAhB,IAAAvE,OAEA2Q,IAAA,SAAAF,GACA,GAAA6kB,GACAjnB,EAAApB,EAAAooB,UAAAr1B,KAAAhG,KAoBA,OAlBAgG,MAAAmB,QAAAoP,SACAvQ,KAAAqnB,IAAAiO,EAAA51B,GAAAwN,OAAAlN,KAAAkN,QACAuD,EAAAzQ,KAAAmB,QAAAoP,SAAAE,EAAA,EAAA,EAAAzQ,KAAAmB,QAAAoP,UAGAvQ,KAAAqnB,IAAAiO,EAAA7kB,EAEAzQ,KAAAsN,KAAAtN,KAAA0D,IAAA1D,KAAAyD,OAAA6xB,EAAAt1B,KAAAyD,MAEAzD,KAAAmB,QAAAo0B,MACAv1B,KAAAmB,QAAAo0B,KAAAr7B,KAAA8F,KAAAW,KAAAX,KAAAsN,IAAAtN,MAGAqO,GAAAA,EAAA5L,IACA4L,EAAA5L,IAAAzC,MAEAiN,EAAAooB,UAAA9vB,SAAA9C,IAAAzC,MAEAA,OAIAiN,EAAAnP,UAAAqP,KAAArP,UAAAmP,EAAAnP,UAEAmP,EAAAooB,WACA9vB,UACAhB,IAAA,SAAA3B,GACA,GAAAkN,EAIA,OAAA,KAAAlN,EAAAjC,KAAAC,UACA,MAAAgC,EAAAjC,KAAAiC,EAAA5I,OAAA,MAAA4I,EAAAjC,KAAA6C,MAAAZ,EAAA5I,MACA4I,EAAAjC,KAAAiC,EAAA5I,OAOA8V,EAAApQ,GAAAuD,IAAAL,EAAAjC,KAAAiC,EAAA5I,KAAA,IAGA8V,GAAA,SAAAA,EAAAA,EAAA,IAEArN,IAAA,SAAAG,GAKAlD,GAAA2R,GAAAkkB,KAAA3yB,EAAA5I,MACA0F,GAAA2R,GAAAkkB,KAAA3yB,EAAA5I,MAAA4I,GACA,IAAAA,EAAAjC,KAAAC,UACA,MAAAgC,EAAAjC,KAAA6C,MAAA9D,GAAAg1B,SAAA9xB,EAAA5I,SACA0F,GAAAiQ,SAAA/M,EAAA5I,MAGA4I,EAAAjC,KAAAiC,EAAA5I,MAAA4I,EAAA0K,IAFA5N,GAAA8D,MAAAZ,EAAAjC,KAAAiC,EAAA5I,KAAA4I,EAAA0K,IAAA1K,EAAAO,SAUA8J,EAAAooB,UAAA5F,UAAAxiB,EAAAooB,UAAAhG,YACA5sB,IAAA,SAAAG,GACAA,EAAAjC,KAAAC,UAAAgC,EAAAjC,KAAAgJ,aACA/G,EAAAjC,KAAAiC,EAAA5I,MAAA4I,EAAA0K;6DAKA5N,GAAAwN,QACAsoB,OAAA,SAAAj3B,GACA,MAAAA,IAEAk3B,MAAA,SAAAl3B,GACA,MAAA,GAAAuN,KAAA4pB,IAAAn3B,EAAAuN,KAAA6pB,IAAA,GAEApwB,SAAA,SAGA7F,GAAA2R,GAAApE,EAAAnP,UAAAqP,KAGAzN,GAAA2R,GAAAkkB,OAKA,IACAloB,IAAAuoB,GACAzmB,GAAA,yBACA0mB,GAAA,aA6UAn2B,IAAAqO,UAAArO,GAAAwI,OAAA6F,GACAC,UACA8nB,KAAA,SAAA97B,EAAA6C,GACA,GAAA+F,GAAA5C,KAAA6N,YAAA7T,EAAA6C,EAEA,OADA6F,GAAAE,EAAAjC,KAAA3G,EAAAsJ,GAAAC,KAAA1G,GAAA+F,GACAA,KAIAmzB,QAAA,SAAA7nB,EAAApP,GACAY,GAAAe,WAAAyN,IACApP,EAAAoP,EACAA,GAAA,MAEAA,EAAAA,EAAA5M,MAAAC,GAOA,KAJA,GAAAvH,GACAsD,EAAA,EACA/B,EAAA2S,EAAA3S,OAEA+B,EAAA/B,EAAA+B,IACAtD,EAAAkU,EAAA5Q,GACAyQ,EAAAC,SAAAhU,GAAA+T,EAAAC,SAAAhU,OACA+T,EAAAC,SAAAhU,GAAAiY,QAAAnT,IAIAkR,YAAA/B,GAEA+nB,UAAA,SAAAl3B,EAAAyyB,GACAA,EACAxjB,EAAAiC,WAAAiC,QAAAnT,GAEAiP,EAAAiC,WAAAzT,KAAAuC,MAKAY,GAAAu2B,MAAA,SAAAA,EAAA/oB,EAAAxG,GACA,GAAAwvB,GAAAD,GAAA,gBAAAA,GAAAv2B,GAAAwI,UAAA+tB,IACAzkB,SAAA9K,IAAAA,GAAAwG,GACAxN,GAAAe,WAAAw1B,IAAAA,EACA1lB,SAAA0lB,EACA/oB,OAAAxG,GAAAwG,GAAAA,IAAAxN,GAAAe,WAAAyM,IAAAA,EAyBA,OAtBAgpB,GAAA3lB,SAAA7Q,GAAA2R,GAAAvK,IAAA,EAAA,gBAAAovB,GAAA3lB,SACA2lB,EAAA3lB,SAAA2lB,EAAA3lB,WAAA7Q,IAAA2R,GAAA8kB,OACAz2B,GAAA2R,GAAA8kB,OAAAD,EAAA3lB,UAAA7Q,GAAA2R,GAAA8kB,OAAA5wB,SAGA,MAAA2wB,EAAAxnB,QAAA,IAAAwnB,EAAAxnB,QACAwnB,EAAAxnB,MAAA,MAIAwnB,EAAA3D,IAAA2D,EAAA1kB,SAEA0kB,EAAA1kB,SAAA,WACA9R,GAAAe,WAAAy1B,EAAA3D,MACA2D,EAAA3D,IAAAr4B,KAAA8F,MAGAk2B,EAAAxnB,OACAhP,GAAAyrB,QAAAnrB,KAAAk2B,EAAAxnB,QAIAwnB,GAGAx2B,GAAAgH,GAAAwB,QACAkuB,OAAA,SAAAH,EAAAI,EAAAnpB,EAAApO,GAGA,MAAAkB,MAAAc,OAAAkM,IAAA/J,IAAA,UAAA,GAAA4J,OAGAnJ,MAAA4yB,SAAA1oB,QAAAyoB,GAAAJ,EAAA/oB,EAAApO,IAEAw3B,QAAA,SAAAt8B,EAAAi8B,EAAA/oB,EAAApO,GACA,GAAA+P,GAAAnP,GAAA0P,cAAApV,GACAu8B,EAAA72B,GAAAu2B,MAAAA,EAAA/oB,EAAApO,GACA03B,EAAA,WAGA,GAAAjoB,GAAAR,EAAA/N,KAAAN,GAAAwI,UAAAlO,GAAAu8B,IAGA1nB,GAAAvK,GAAAC,IAAAvE,KAAA,YACAuO,EAAA0C,MAAA,GAKA,OAFAulB,GAAAC,OAAAD,EAEA3nB,IAAA,IAAA0nB,EAAA7nB,MACA1O,KAAAqB,KAAAm1B,GACAx2B,KAAA0O,MAAA6nB,EAAA7nB,MAAA8nB,IAEAvlB,KAAA,SAAA9Q,EAAAmrB,EAAApa,GACA,GAAAwlB,GAAA,SAAAroB,GACA,GAAA4C,GAAA5C,EAAA4C,WACA5C,GAAA4C,KACAA,EAAAC,GAYA,OATA,gBAAA/Q,KACA+Q,EAAAoa,EACAA,EAAAnrB,EACAA,MAAAf,IAEAksB,IAAA,IAAAnrB,GACAH,KAAA0O,MAAAvO,GAAA,SAGAH,KAAAqB,KAAA,WACA,GAAA8pB,IAAA,EACA7tB,EAAA,MAAA6C,GAAAA,EAAA,aACAw2B,EAAAj3B,GAAAi3B,OACAz0B,EAAAoC,GAAAC,IAAAvE,KAEA,IAAA1C,EACA4E,EAAA5E,IAAA4E,EAAA5E,GAAA2T,MACAylB,EAAAx0B,EAAA5E,QAGA,KAAAA,IAAA4E,GACAA,EAAA5E,IAAA4E,EAAA5E,GAAA2T,MAAA4kB,GAAAn6B,KAAA4B,IACAo5B,EAAAx0B,EAAA5E,GAKA,KAAAA,EAAAq5B,EAAAp7B,OAAA+B,KACAq5B,EAAAr5B,GAAAqD,OAAAX,MACA,MAAAG,GAAAw2B,EAAAr5B,GAAAoR,QAAAvO,IAEAw2B,EAAAr5B,GAAAiR,KAAA0C,KAAAC,GACAia,GAAA,EACAwL,EAAA56B,OAAAuB,EAAA,KAOA6tB,GAAAja,GACAxR,GAAAyrB,QAAAnrB,KAAAG,MAIAs2B,OAAA,SAAAt2B,GAIA,OAHA,IAAAA,IACAA,EAAAA,GAAA,MAEAH,KAAAqB,KAAA,WACA,GAAA/D,GACA4E,EAAAoC,GAAAC,IAAAvE,MACA0O,EAAAxM,EAAA/B,EAAA,SACAkO,EAAAnM,EAAA/B,EAAA,cACAw2B,EAAAj3B,GAAAi3B,OACAp7B,EAAAmT,EAAAA,EAAAnT,OAAA,CAaA,KAVA2G,EAAAu0B,QAAA,EAGA/2B,GAAAgP,MAAA1O,KAAAG,MAEAkO,GAAAA,EAAA4C,MACA5C,EAAA4C,KAAA/W,KAAA8F,MAAA,GAIA1C,EAAAq5B,EAAAp7B,OAAA+B,KACAq5B,EAAAr5B,GAAAqD,OAAAX,MAAA22B,EAAAr5B,GAAAoR,QAAAvO,IACAw2B,EAAAr5B,GAAAiR,KAAA0C,MAAA,GACA0lB,EAAA56B,OAAAuB,EAAA,GAKA,KAAAA,EAAA,EAAAA,EAAA/B,EAAA+B,IACAoR,EAAApR,IAAAoR,EAAApR,GAAAm5B,QACA/nB,EAAApR,GAAAm5B,OAAAv8B,KAAA8F,YAKAkC,GAAAu0B,YAKA/2B,GAAA2B,MAAA,SAAA,OAAA,QAAA,SAAAvG,EAAAV,GACA,GAAAw8B,GAAAl3B,GAAAgH,GAAAtM,EACAsF,IAAAgH,GAAAtM,GAAA,SAAA67B,EAAA/oB,EAAApO,GACA,MAAA,OAAAm3B,GAAA,iBAAAA,GACAW,EAAAn6B,MAAAuD,KAAA1D,WACA0D,KAAAs2B,QAAA/oB,EAAAnT,GAAA,GAAA67B,EAAA/oB,EAAApO,MAKAY,GAAA2B,MACAw1B,UAAAtpB,EAAA,QACAupB,QAAAvpB,EAAA,QACAwpB,YAAAxpB,EAAA,UACAypB,QAAAppB,QAAA,QACAqpB,SAAArpB,QAAA,QACAspB,YAAAtpB,QAAA,WACA,SAAAxT,EAAA8T,GACAxO,GAAAgH,GAAAtM,GAAA,SAAA67B,EAAA/oB,EAAApO,GACA,MAAAkB,MAAAs2B,QAAApoB,EAAA+nB,EAAA/oB,EAAApO,MAIAY,GAAAi3B,UACAj3B,GAAA2R,GAAAlB,KAAA,WACA,GAAAmB,GACAxW,EAAA,EACA67B,EAAAj3B,GAAAi3B,MAIA,KAFAtpB,GAAA3N,GAAA4N,MAEAxS,EAAA67B,EAAAp7B,OAAAT,KACAwW,EAAAqlB,EAAA77B,OAGA67B,EAAA77B,KAAAwW,GACAqlB,EAAA56B,OAAAjB,IAAA,EAIA67B,GAAAp7B,QACAmE,GAAA2R,GAAAJ,OAEA5D,OAAAjO,IAGAM,GAAA2R,GAAAC,MAAA,SAAAA,GACA5R,GAAAi3B,OAAAp6B,KAAA+U,GACAA,IACA5R,GAAA2R,GAAA5N,QAEA/D,GAAAi3B,OAAA7Y,OAIApe,GAAA2R,GAAA8lB,SAAA,GACAz3B,GAAA2R,GAAA5N,MAAA,WACAmyB,KACAA,GAAA71B,EAAAq3B,YAAA13B,GAAA2R,GAAAlB,KAAAzQ,GAAA2R,GAAA8lB,YAIAz3B,GAAA2R,GAAAJ,KAAA,WACAlR,EAAAs3B,cAAAzB,IAEAA,GAAA,MAGAl2B,GAAA2R,GAAA8kB,QACAmB,KAAA,IACAC,KAAA,IAGAhyB,SAAA,KAMA7F,GAAAgH,GAAA8wB,MAAA,SAAAC,EAAAt3B,GAIA,MAHAs3B,GAAA/3B,GAAA2R,GAAA3R,GAAA2R,GAAA8kB,OAAAsB,IAAAA,EAAAA,EACAt3B,EAAAA,GAAA,KAEAH,KAAA0O,MAAAvO,EAAA,SAAA+mB,EAAA7Y,GACA,GAAAqpB,GAAA33B,EAAAT,WAAA4nB,EAAAuQ,EACAppB,GAAA4C,KAAA,WACAlR,EAAA43B,aAAAD,OAMA,WACA,GAAAnW,GAAA1hB,EAAAuF,cAAA,SACA+T,EAAAtZ,EAAAuF,cAAA,UACA8wB,EAAA/c,EAAAhU,YAAAtF,EAAAuF,cAAA,UAEAmc,GAAAphB,KAAA,WAIA2I,GAAA8uB,QAAA,KAAArW,EAAA1kB,MAIAiM,GAAA+uB,YAAA3B,EAAA7jB,SAIA8G,EAAA2L,UAAA,EACAhc,GAAAgvB,aAAA5B,EAAApR,SAIAvD,EAAA1hB,EAAAuF,cAAA,SACAmc,EAAA1kB,MAAA,IACA0kB,EAAAphB,KAAA,QACA2I,GAAAivB,WAAA,MAAAxW,EAAA1kB,QAIA,IAAAm7B,IACAle,GAAApa,GAAA4iB,KAAAxI,UAEApa,IAAAgH,GAAAwB,QACAqa,KAAA,SAAAnoB,EAAAyC,GACA,MAAAmL,IAAAhI,KAAAN,GAAA6iB,KAAAnoB,EAAAyC,EAAAP,UAAAf,OAAA,IAGA08B,WAAA,SAAA79B,GACA,MAAA4F,MAAAqB,KAAA,WACA3B,GAAAu4B,WAAAj4B,KAAA5F,QAKAsF,GAAAwI,QACAqa,KAAA,SAAA5hB,EAAAvG,EAAAyC,GACA,GAAAmC,GAAAqP,EACA6pB,EAAAv3B,EAAAC,QAGA,IAAA,IAAAs3B,GAAA,IAAAA,GAAA,IAAAA,EAKA,WAAA,KAAAv3B,EAAA0B,aACA3C,GAAA1F,KAAA2G,EAAAvG,EAAAyC,IAKA,IAAAq7B,GAAAx4B,GAAA4mB,SAAA3lB,KACAvG,EAAAA,EAAAgI,cACAiM,EAAA3O,GAAAy4B,UAAA/9B,KACAsF,GAAA4iB,KAAAhhB,MAAAwe,KAAApkB,KAAAtB,GAAA49B,OAAA54B,SAGAA,KAAAvC,EACA,OAAAA,MACA6C,IAAAu4B,WAAAt3B,EAAAvG,GAIAiU,GAAA,OAAAA,QACAjP,MAAAJ,EAAAqP,EAAA5L,IAAA9B,EAAA9D,EAAAzC,IACA4E,GAGA2B,EAAAiY,aAAAxe,EAAAyC,EAAA,IACAA,GAGAwR,GAAA,OAAAA,IAAA,QAAArP,EAAAqP,EAAA9J,IAAA5D,EAAAvG,IACA4E,GAGAA,EAAAU,GAAAke,KAAA2E,KAAA5hB,EAAAvG,GAGA,MAAA4E,MAAAI,GAAAJ,KAGAm5B,WACAh4B,MACAsC,IAAA,SAAA9B,EAAA9D,GACA,IAAAiM,GAAAivB,YAAA,UAAAl7B,GACA6C,GAAAsE,SAAArD,EAAA,SAAA,CACA,GAAAyL,GAAAzL,EAAA9D,KAKA,OAJA8D,GAAAiY,aAAA,OAAA/b,GACAuP,IACAzL,EAAA9D,MAAAuP,GAEAvP,MAMAo7B,WAAA,SAAAt3B,EAAA9D,GACA,GAAAzC,GAAAg+B,EACAt9B,EAAA,EACAu9B,EAAAx7B,GAAAA,EAAAyE,MAAAC,GAEA,IAAA82B,GAAA,IAAA13B,EAAAC,SACA,KAAAxG,EAAAi+B,EAAAv9B,MACAs9B,EAAA14B,GAAA44B,QAAAl+B,IAAAA,EAGAsF,GAAA4iB,KAAAhhB,MAAAwe,KAAApkB,KAAAtB,KAGAuG,EAAAy3B,IAAA,GAGAz3B,EAAA2G,gBAAAlN,MAOA49B,IACAv1B,IAAA,SAAA9B,EAAA9D,EAAAzC,GAQA,OAPA,IAAAyC,EAGA6C,GAAAu4B,WAAAt3B,EAAAvG,GAEAuG,EAAAiY,aAAAxe,EAAAA,GAEAA,IAGAsF,GAAA2B,KAAA3B,GAAA4iB,KAAAhhB,MAAAwe,KAAA4L,OAAApqB,MAAA,QAAA,SAAAxG,EAAAV,GACA,GAAAm+B,GAAAze,GAAA1f,IAAAsF,GAAAke,KAAA2E,IAEAzI,IAAA1f,GAAA,SAAAuG,EAAAvG,EAAA6jB,GACA,GAAAjf,GAAAiJ,CAWA,OAVAgW,KAGAhW,EAAA6R,GAAA1f,GACA0f,GAAA1f,GAAA4E,EACAA,EAAA,MAAAu5B,EAAA53B,EAAAvG,EAAA6jB,GACA7jB,EAAAgI,cACA,KACA0X,GAAA1f,GAAA6N,GAEAjJ,IAOA,IAAAw5B,IAAA,sCACAC,GAAA,eAEA/4B,IAAAgH,GAAAwB,QACAlO,KAAA,SAAAI,EAAAyC,GACA,MAAAmL,IAAAhI,KAAAN,GAAA1F,KAAAI,EAAAyC,EAAAP,UAAAf,OAAA,IAGAm9B,WAAA,SAAAt+B,GACA,MAAA4F,MAAAqB,KAAA,iBACArB,MAAAN,GAAA44B,QAAAl+B,IAAAA,QAKAsF,GAAAwI,QACAlO,KAAA,SAAA2G,EAAAvG,EAAAyC,GACA,GAAAmC,GAAAqP,EACA6pB,EAAAv3B,EAAAC,QAGA,IAAA,IAAAs3B,GAAA,IAAAA,GAAA,IAAAA,EAWA,MAPA,KAAAA,GAAAx4B,GAAA4mB,SAAA3lB,KAGAvG,EAAAsF,GAAA44B,QAAAl+B,IAAAA,EACAiU,EAAA3O,GAAA21B,UAAAj7B,QAGAgF,KAAAvC,EACAwR,GAAA,OAAAA,QACAjP,MAAAJ,EAAAqP,EAAA5L,IAAA9B,EAAA9D,EAAAzC,IACA4E,EAGA2B,EAAAvG,GAAAyC,EAGAwR,GAAA,OAAAA,IAAA,QAAArP,EAAAqP,EAAA9J,IAAA5D,EAAAvG,IACA4E,EAGA2B,EAAAvG,IAGAi7B,WACAzQ,UACArgB,IAAA,SAAA5D,GAMA,GAAAg4B,GAAAj5B,GAAAke,KAAA2E,KAAA5hB,EAAA,WAEA,OAAAg4B,GACAC,SAAAD,EAAA,IACAH,GAAA98B,KAAAiF,EAAAqD,WACAy0B,GAAA/8B,KAAAiF,EAAAqD,WAAArD,EAAAgkB,KACA,GACA,KAKA2T,SACAO,IAAA,UACAC,MAAA,eAUAhwB,GAAA+uB,cACAn4B,GAAA21B,UAAAhjB,UACA9N,IAAA,SAAA5D,GACA,GAAAkgB,GAAAlgB,EAAAgJ,UAIA,OAHAkX,IAAAA,EAAAlX,YACAkX,EAAAlX,WAAAob,cAEA,MAEAtiB,IAAA,SAAA9B,GACA,GAAAkgB,GAAAlgB,EAAAgJ,UACAkX,KACAA,EAAAkE,cAEAlE,EAAAlX,YACAkX,EAAAlX,WAAAob,kBAOArlB,GAAA2B,MACA,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACA,WACA3B,GAAA44B,QAAAt4B,KAAAoC,eAAApC,MAMA,IAAA+4B,IAAA,aAMAr5B,IAAAgH,GAAAwB,QACA8wB,SAAA,SAAAn8B,GACA,GAAAo8B,GAAAt4B,EAAAK,EAAAk4B,EAAAC,EAAAp+B,EAAAq+B,EACAt+B,EAAA,CAEA,IAAA4E,GAAAe,WAAA5D,GACA,MAAAmD,MAAAqB,KAAA,SAAAtG,GACA2E,GAAAM,MAAAg5B,SAAAn8B,EAAA3C,KAAA8F,KAAAjF,EAAA2W,EAAA1R,SAIA,IAAA,gBAAAnD,IAAAA,EAGA,IAFAo8B,EAAAp8B,EAAAyE,MAAAC,QAEAZ,EAAAX,KAAAlF,MAKA,GAJAo+B,EAAAxnB,EAAA/Q,GACAK,EAAA,IAAAL,EAAAC,WACA,IAAAs4B,EAAA,KAAAv9B,QAAAo9B,GAAA,KAEA,CAEA,IADAh+B,EAAA,EACAo+B,EAAAF,EAAAl+B,MACAiG,EAAAzD,QAAA,IAAA47B,EAAA,KAAA,IACAn4B,GAAAm4B,EAAA,IAKAC,GAAA15B,GAAAmX,KAAA7V,GACAk4B,IAAAE,GACAz4B,EAAAiY,aAAA,QAAAwgB,GAMA,MAAAp5B,OAGAq5B,YAAA,SAAAx8B,GACA,GAAAo8B,GAAAt4B,EAAAK,EAAAk4B,EAAAC,EAAAp+B,EAAAq+B,EACAt+B,EAAA,CAEA,IAAA4E,GAAAe,WAAA5D,GACA,MAAAmD,MAAAqB,KAAA,SAAAtG,GACA2E,GAAAM,MAAAq5B,YAAAx8B,EAAA3C,KAAA8F,KAAAjF,EAAA2W,EAAA1R,SAIA,KAAA1D,UAAAf,OACA,MAAAyE,MAAAuiB,KAAA,QAAA,GAGA,IAAA,gBAAA1lB,IAAAA,EAGA,IAFAo8B,EAAAp8B,EAAAyE,MAAAC,QAEAZ,EAAAX,KAAAlF,MAOA,GANAo+B,EAAAxnB,EAAA/Q,GAGAK,EAAA,IAAAL,EAAAC,WACA,IAAAs4B,EAAA,KAAAv9B,QAAAo9B,GAAA,KAEA,CAEA,IADAh+B,EAAA,EACAo+B,EAAAF,EAAAl+B,MAGA,KAAAiG,EAAAzD,QAAA,IAAA47B,EAAA,MAAA,GACAn4B,EAAAA,EAAArF,QAAA,IAAAw9B,EAAA,IAAA,IAKAC,GAAA15B,GAAAmX,KAAA7V,GACAk4B,IAAAE,GACAz4B,EAAAiY,aAAA,QAAAwgB,GAMA,MAAAp5B,OAGAs5B,YAAA,SAAAz8B,EAAA08B,GACA,GAAAp5B,SAAAtD,EAEA,OAAA,iBAAA08B,IAAA,WAAAp5B,EACAo5B,EAAAv5B,KAAAg5B,SAAAn8B,GAAAmD,KAAAq5B,YAAAx8B,GAGA6C,GAAAe,WAAA5D,GACAmD,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAs5B,YACAz8B,EAAA3C,KAAA8F,KAAAlF,EAAA4W,EAAA1R,MAAAu5B,GACAA,KAKAv5B,KAAAqB,KAAA,WACA,GAAA4f,GAAAnmB,EAAAmO,EAAAuwB,CAEA,IAAA,WAAAr5B,EAOA,IAJArF,EAAA,EACAmO,EAAAvJ,GAAAM,MACAw5B,EAAA38B,EAAAyE,MAAAC,QAEA0f,EAAAuY,EAAA1+B,MAGAmO,EAAAwwB,SAAAxY,GACAhY,EAAAowB,YAAApY,GAEAhY,EAAA+vB,SAAA/X,YAKA7hB,KAAAvC,GAAA,YAAAsD,IACA8gB,EAAAvP,EAAA1R,MACAihB,GAGA3c,GAAA7B,IAAAzC,KAAA,gBAAAihB,GAOAjhB,KAAA4Y,cACA5Y,KAAA4Y,aAAA,QACAqI,IAAA,IAAApkB,EACA,GACAyH,GAAAC,IAAAvE,KAAA,kBAAA,QAOAy5B,SAAA,SAAAhzB,GACA,GAAAwa,GAAAtgB,EACA7F,EAAA,CAGA,KADAmmB,EAAA,IAAAxa,EAAA,IACA9F,EAAAX,KAAAlF,MACA,GAAA,IAAA6F,EAAAC,WACA,IAAA8Q,EAAA/Q,GAAA,KAAAhF,QAAAo9B,GAAA,KACAx7B,QAAA0jB,IAAA,EAEA,OAAA,CAIA,QAAA,IAOA,IAAAyY,IAAA,MACAC,GAAA,kBAEAj6B,IAAAgH,GAAAwB,QACAkE,IAAA,SAAAvP,GACA,GAAAwR,GAAArP,EAAAyB,EACAE,EAAAX,KAAA,EAEA,EAAA,GAAA1D,UAAAf,OA4BA,MAFAkF,GAAAf,GAAAe,WAAA5D,GAEAmD,KAAAqB,KAAA,SAAAvG,GACA,GAAAsR,EAEA,KAAApM,KAAAY,WAKAwL,EADA3L,EACA5D,EAAA3C,KAAA8F,KAAAlF,EAAA4E,GAAAM,MAAAoM,OAEAvP,EAIA,MAAAuP,EACAA,EAAA,GAEA,gBAAAA,GACAA,GAAA,GAEA1M,GAAAgQ,QAAAtD,KACAA,EAAA1M,GAAAtE,IAAAgR,EAAA,SAAAvP,GACA,MAAA,OAAAA,EAAA,GAAAA,EAAA,OAIAwR,EAAA3O,GAAAk6B,SAAA55B,KAAAG,OAAAT,GAAAk6B,SAAA55B,KAAAgE,SAAA5B,iBAGA,OAAAiM,QAAAjP,KAAAiP,EAAA5L,IAAAzC,KAAAoM,EAAA,WACApM,KAAAnD,MAAAuP,KAzDA,IAAAzL,EAIA,OAHA0N,EAAA3O,GAAAk6B,SAAAj5B,EAAAR,OACAT,GAAAk6B,SAAAj5B,EAAAqD,SAAA5B,iBAGA,OAAAiM,QACAjP,MAAAJ,EAAAqP,EAAA9J,IAAA5D,EAAA,UAEA3B,GAGAA,EAAA2B,EAAA9D,MAEA,gBAAAmC,GAGAA,EAAArD,QAAA+9B,GAAA,IAGA,MAAA16B,EAAA,GAAAA,OA4CAU,GAAAwI,QACA0xB,UACAhO,QACArnB,IAAA,SAAA5D,GAEA,GAAAyL,GAAA1M,GAAAke,KAAA2E,KAAA5hB,EAAA,QACA,OAAA,OAAAyL,EACAA,EAMA1M,GAAAmX,KAAAnX,GAAAoX,KAAAnW,IAAAhF,QAAAg+B,GAAA,OAGAxgB,QACA5U,IAAA,SAAA5D,GAYA,IAXA,GAAA9D,GAAA+uB,EACAzqB,EAAAR,EAAAQ,QACA7D,EAAAqD,EAAAokB,cACApe,EAAA,eAAAhG,EAAAR,MAAA7C,EAAA,EACAyP,EAAApG,EAAA,QACAoF,EAAApF,EAAArJ,EAAA,EAAA6D,EAAA5F,OACAT,EAAAwC,EAAA,EACAyO,EACApF,EAAArJ,EAAA,EAGAxC,EAAAiR,EAAAjR,IAIA,GAHA8wB,EAAAzqB,EAAArG,IAGA8wB,EAAAvZ,UAAAvX,IAAAwC,KAGAwL,GAAAgvB,aACAlM,EAAA9G,SAAA,OAAA8G,EAAAvpB,aAAA,gBACAupB,EAAAjiB,WAAAmb,WACAplB,GAAAsE,SAAA4nB,EAAAjiB,WAAA,aAAA,CAMA,GAHA9M,EAAA6C,GAAAksB,GAAAxf,MAGAzF,EACA,MAAA9J,EAIAkQ,GAAAxQ,KAAAM,GAIA,MAAAkQ,IAGAtK,IAAA,SAAA9B,EAAA9D,GAMA,IALA,GAAAg9B,GAAAjO,EACAzqB,EAAAR,EAAAQ,QACA4L,EAAArN,GAAAuX,UAAApa,GACA/B,EAAAqG,EAAA5F,OAEAT,KACA8wB,EAAAzqB,EAAArG,IACA8wB,EAAAvZ,SACA3S,GAAAqG,QAAArG,GAAAk6B,SAAAhO,OAAArnB,IAAAqnB,GAAA7e,IAAA,KAEA8sB,GAAA,EAQA,OAHAA,KACAl5B,EAAAokB,eAAA,GAEAhY,OAOArN,GAAA2B,MAAA,QAAA,YAAA,WACA3B,GAAAk6B,SAAA55B,OACAyC,IAAA,SAAA9B,EAAA9D,GACA,GAAA6C,GAAAgQ,QAAA7S,GACA,MAAA8D,GAAA0H,QAAA3I,GAAAqG,QAAArG,GAAAiB,GAAAyL,MAAAvP,IAAA,IAIAiM,GAAA8uB,UACAl4B,GAAAk6B,SAAA55B,MAAAuE,IAAA,SAAA5D,GACA,MAAA,QAAAA,EAAA0B,aAAA,SAAA,KAAA1B,EAAA9D,SAWA,IAAAi9B,IAAA,iCAEAp6B,IAAAwI,OAAAxI,GAAAmH,OAEAkpB,QAAA,SAAAlpB,EAAA3E,EAAAvB,EAAAo5B,GAEA,GAAAj/B,GAAAkG,EAAA4D,EAAAo1B,EAAAC,EAAAhyB,EAAA+kB,EACAkN,GAAAv5B,GAAAd,GACAM,EAAAlG,GAAAC,KAAA2M,EAAA,QAAAA,EAAA1G,KAAA0G,EACAomB,EAAAhzB,GAAAC,KAAA2M,EAAA,aAAAA,EAAA2mB,UAAAryB,MAAA,OAKA,IAHA6F,EAAA4D,EAAAjE,EAAAA,GAAAd,EAGA,IAAAc,EAAAC,UAAA,IAAAD,EAAAC,WAKAk5B,GAAAp+B,KAAAyE,EAAAT,GAAAmH,MAAAumB,aAIAjtB,EAAA5C,QAAA,MAAA,IAGA0vB,EAAA9sB,EAAAhF,MAAA,KACAgF,EAAA8sB,EAAA1Z,QACA0Z,EAAAnX,QAEAmkB,EAAA95B,EAAA5C,QAAA,KAAA,GAAA,KAAA4C,EAGA0G,EAAAA,EAAAnH,GAAAoC,SACA+E,EACA,GAAAnH,IAAAmwB,MAAA1vB,EAAA,gBAAA0G,IAAAA,GAGAA,EAAAszB,UAAAJ,EAAA,EAAA,EACAlzB,EAAA2mB,UAAAP,EAAAjxB,KAAA,KACA6K,EAAAynB,WAAAznB,EAAA2mB,UACA,GAAAtO,QAAA,UAAA+N,EAAAjxB,KAAA,iBAAA,WACA,KAGA6K,EAAAiJ,WAAA1Q,GACAyH,EAAA+L,SACA/L,EAAA+L,OAAAjS,GAIAuB,EAAA,MAAAA,GACA2E,GACAnH,GAAAuX,UAAA/U,GAAA2E,IAGAmmB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OACA45B,IAAA/M,EAAA+C,UAAA,IAAA/C,EAAA+C,QAAAtzB,MAAAkE,EAAAuB,IAAA,CAMA,IAAA63B,IAAA/M,EAAA8C,WAAApwB,GAAAU,SAAAO,GAAA,CAMA,IAJAq5B,EAAAhN,EAAAM,cAAAntB,EACA25B,GAAAp+B,KAAAs+B,EAAA75B,KACAa,EAAAA,EAAA2I,YAEA3I,EAAAA,EAAAA,EAAA2I,WACAuwB,EAAA39B,KAAAyE,GACA4D,EAAA5D,CAIA4D,MAAAjE,EAAAqF,eAAAnG,IACAq6B,EAAA39B,KAAAqI,EAAAgQ,aAAAhQ,EAAAw1B,cAAAr6B,GAMA,IADAjF,EAAA,GACAkG,EAAAk5B,EAAAp/B,QAAA+L,EAAAsnB,wBAEAtnB,EAAA1G,KAAArF,EAAA,EACAk/B,EACAhN,EAAAO,UAAAptB,EAGA8H,GAAA3D,GAAAC,IAAAvD,EAAA,eAAA6F,EAAA1G,OACAmE,GAAAC,IAAAvD,EAAA,UACAiH,GACAA,EAAAxL,MAAAuE,EAAAkB,IAIA+F,EAAAgyB,GAAAj5B,EAAAi5B,KACAhyB,EAAAxL,OAAA8tB,GAAAvpB,KACA6F,EAAAiJ,OAAA7H,EAAAxL,MAAAuE,EAAAkB,IACA,IAAA2E,EAAAiJ,QACAjJ,EAAA0nB,iBAoCA,OAhCA1nB,GAAA1G,KAAAA,EAGA45B,GAAAlzB,EAAAupB,sBAEApD,EAAAznB,WACA,IAAAynB,EAAAznB,SAAA9I,MAAAy9B,EAAApc,MAAA5b,KACAqoB,GAAA5pB,IAIAs5B,GAAAv6B,GAAAe,WAAAE,EAAAR,MAAAT,GAAAU,SAAAO,KAGAiE,EAAAjE,EAAAs5B,GAEAr1B,IACAjE,EAAAs5B,GAAA,MAIAv6B,GAAAmH,MAAAumB,UAAAjtB,EACAQ,EAAAR,KACAT,GAAAmH,MAAAumB,cAAAhuB,GAEAwF,IACAjE,EAAAs5B,GAAAr1B,IAMAiC,EAAAiJ,SAKAuqB,SAAA,SAAAl6B,EAAAQ,EAAAkG,GACA,GAAApI,GAAAiB,GAAAwI,OACA,GAAAxI,IAAAmwB,MACAhpB,GAEA1G,KAAAA,EACAowB,aAAA,GAIA7wB,IAAAmH,MAAAkpB,QAAAtxB,EAAA,KAAAkC,MAKAjB,GAAAgH,GAAAwB,QAEA6nB,QAAA,SAAA5vB,EAAA+B,GACA,MAAAlC,MAAAqB,KAAA,WACA3B,GAAAmH,MAAAkpB,QAAA5vB,EAAA+B,EAAAlC,SAGAgqB,eAAA,SAAA7pB,EAAA+B,GACA,GAAAvB,GAAAX,KAAA,EACA,IAAAW,EACA,MAAAjB,IAAAmH,MAAAkpB,QAAA5vB,EAAA+B,EAAAvB,GAAA,MAMAjB,GAAA2B,KAAA,0MAEAlG,MAAA,KACA,SAAAL,EAAAV,GAGAsF,GAAAgH,GAAAtM,GAAA,SAAA8H,EAAAwE,GACA,MAAApK,WAAAf,OAAA,EACAyE,KAAAuG,GAAAnM,EAAA,KAAA8H,EAAAwE,GACA1G,KAAA+vB,QAAA31B,MAIAsF,GAAAgH,GAAAwB,QACAoyB,MAAA,SAAAC,EAAAC,GACA,MAAAx6B,MAAAywB,WAAA8J,GAAA7J,WAAA8J,GAAAD,MAOAzxB,GAAA2xB,QAAA,aAAA16B,GAWA+I,GAAA2xB,SACA/6B,GAAA2B,MAAAojB,MAAA,UAAAuL,KAAA,YAAA,SAAAxhB,EAAAuf,GAGA,GAAAlU,GAAA,SAAAhT,GACAnH,GAAAmH,MAAAwzB,SAAAtM,EAAAlnB,EAAA+L,OAAAlT,GAAAmH,MAAAknB,IAAAlnB,IAGAnH,IAAAmH,MAAAmmB,QAAAe,IACAL,MAAA,WACA,GAAA9kB,GAAA5I,KAAAgG,eAAAhG,KACA06B,EAAAp2B,GAAA0D,OAAAY,EAAAmlB,EAEA2M,IACA9xB,EAAAmY,iBAAAvS,EAAAqL,GAAA,GAEAvV,GAAA0D,OAAAY,EAAAmlB,GAAA2M,GAAA,GAAA,IAEA7M,SAAA,WACA,GAAAjlB,GAAA5I,KAAAgG,eAAAhG,KACA06B,EAAAp2B,GAAA0D,OAAAY,EAAAmlB,GAAA,CAEA2M,GAKAp2B,GAAA0D,OAAAY,EAAAmlB,EAAA2M,IAJA9xB,EAAAjH,oBAAA6M,EAAAqL,GAAA,GACAvV,GAAAkF,OAAAZ,EAAAmlB,OASA,IAAAxJ,IAAAxkB,EAAAwkB,SAEAoW,GAAAj7B,GAAA4N,MAEAstB,GAAA,IAMAl7B,IAAA6C,UAAA,SAAAL,GACA,MAAA24B,MAAAC,MAAA54B,EAAA,KAKAxC,GAAAq7B,SAAA,SAAA74B,GACA,GAAA+Y,EACA,KAAA/Y,GAAA,gBAAAA,GACA,MAAA,KAIA,KACA+Y,GAAA,GAAAlb,GAAAi7B,WAAAC,gBAAA/4B,EAAA,YACA,MAAAzD,GACAwc,MAAA7b,GAMA,MAHA6b,KAAAA,EAAAnX,qBAAA,eAAAvI,QACAmE,GAAA4U,MAAA,gBAAApS,GAEA+Y,EAIA,IACAigB,IAAA,OACAC,GAAA,gBACAC,GAAA,6BAGAC,GAAA,4DACAC,GAAA,iBACAC,GAAA,QAWAvrB,MAOA0C,MAGA8oB,GAAA,KAAA1/B,OAAA,KAGA2/B,GAAA57B,EAAAuF,cAAA,IACAq2B,IAAA9W,KAAAJ,GAAAI,KAgPAjlB,GAAAwI,QAGAwzB,OAAA,EAGAC,gBACAC,QAEA7oB,cACA8oB,IAAAtX,GAAAI,KACAxkB,KAAA,MACA27B,QAAAT,GAAA3/B,KAAA6oB,GAAAwX,UACAp8B,QAAA,EACAq8B,aAAA,EACAC,OAAA,EACAC,YAAA,mDAaAC,SACArG,IAAA0F,GACA1kB,KAAA,aACA3N,KAAA,YACA8R,IAAA,4BACAmhB,KAAA,qCAGA9oB,UACA2H,IAAA,UACA9R,KAAA,SACAizB,KAAA,YAGAloB,gBACA+G,IAAA,cACAnE,KAAA,eACAslB,KAAA,gBAKA1oB,YAGA2oB,SAAA7b,OAGA8b,aAAA,EAGAC,YAAA78B,GAAA6C,UAGAi6B,WAAA98B,GAAAq7B,UAOAjoB,aACA+oB,KAAA,EACAj4B,SAAA,IAOA64B,UAAA,SAAA7pB,EAAA8pB,GACA,MAAAA,GAGA/pB,EAAAA,EAAAC,EAAAlT,GAAAqT,cAAA2pB,GAGA/pB,EAAAjT,GAAAqT,aAAAH,IAGA+pB,cAAAhrB,EAAA3B,IACA4sB,cAAAjrB,EAAAe,IAGAmqB,KAAA,SAAAhB,EAAA16B,GA4TA,QAAAkO,GAAAytB,EAAAC,EAAA7pB,EAAA8pB,GACA,GAAAnpB,GAAAopB,EAAA3oB,EAAAV,EAAAspB,EACAC,EAAAJ,CAGA,KAAA1oB,IAKAA,EAAA,EAGA+oB,GACAr9B,EAAA43B,aAAAyF,GAKAC,MAAAj+B,GAGAk+B,EAAAN,GAAA,GAGA7qB,EAAA8X,WAAA6S,EAAA,EAAA,EAAA,EAGAjpB,EAAAipB,GAAA,KAAAA,EAAA,KAAA,MAAAA,EAGA5pB,IACAU,EAAAZ,EAAAC,EAAAd,EAAAe,IAIAU,EAAAD,EAAAV,EAAAW,EAAAzB,EAAA0B,GAGAA,GAGAZ,EAAAsqB,aACAL,EAAA/qB,EAAAsB,kBAAA,iBACAypB,IACAx9B,GAAAi8B,aAAA6B,GAAAN,IAEAA,EAAA/qB,EAAAsB,kBAAA,WAEA/T,GAAAk8B,KAAA4B,GAAAN,IAKA,MAAAJ,GAAA,SAAA7pB,EAAA9S,KACAg9B,EAAA,YAGA,MAAAL,EACAK,EAAA,eAIAA,EAAAvpB,EAAAS,MACA4oB,EAAArpB,EAAA1R,KACAoS,EAAAV,EAAAU,MACAT,GAAAS,KAKAA,EAAA6oB,GACAL,GAAAK,IACAA,EAAA,QACAL,EAAA,IACAA,EAAA,KAMA3qB,EAAA2qB,OAAAA,EACA3qB,EAAAgrB,YAAAJ,GAAAI,GAAA,GAGAtpB,EACA5D,EAAAY,YAAA4sB,GAAAR,EAAAE,EAAAhrB,IAEAlC,EAAAkB,WAAAssB,GAAAtrB,EAAAgrB,EAAA7oB,IAIAnC,EAAAurB,WAAAA,GACAA,MAAAt+B,GAEAu+B,GACAC,EAAA7N,QAAAlc,EAAA,cAAA,aACA1B,EAAAc,EAAAY,EAAAopB,EAAA3oB,IAIAupB,EAAArV,SAAAiV,GAAAtrB,EAAAgrB,IAEAQ,IACAC,EAAA7N,QAAA,gBAAA5d,EAAAc,MAGAvT,GAAAg8B,QACAh8B,GAAAmH,MAAAkpB,QAAA,cAraA,gBAAA8L,KACA16B,EAAA06B,EACAA,MAAAz8B,IAIA+B,EAAAA,KAEA,IAAAk8B,GAGAG,EAGAF,EACAQ,EAGAV,EAGAW,EAGAJ,EAGA7iC,EAGAmY,EAAAvT,GAAA+8B,aAAAt7B,GAGAs8B,EAAAxqB,EAAArP,SAAAqP,EAGA2qB,EAAA3qB,EAAArP,UACA65B,EAAA78B,UAAA68B,EAAAnoB,QACA5V,GAAA+9B,GACA/9B,GAAAmH,MAGAoJ,EAAAvQ,GAAAwQ,WACA2tB,EAAAn+B,GAAAooB,UAAA,eAGA4V,EAAAzqB,EAAAyqB,eAGAM,KACAC,KAGA5pB,EAAA,EAGA6pB,EAAA,WAGA/rB,GACA8X,WAAA,EAGAxW,kBAAA,SAAAxR,GACA,GAAAX,EACA,IAAA,IAAA+S,EAAA,CACA,IAAAypB,EAEA,IADAA,KACAx8B,EAAA85B,GAAA73B,KAAA+5B,IACAQ,EAAAx8B,EAAA,GAAAc,eAAAd,EAAA,EAGAA,GAAAw8B,EAAA77B,EAAAG,eAEA,MAAA,OAAAd,EAAA,KAAAA,GAIA68B,sBAAA,WACA,MAAA,KAAA9pB,EAAAipB,EAAA,MAIAc,iBAAA,SAAAhkC,EAAAyC,GACA,GAAAwhC,GAAAjkC,EAAAgI,aAKA,OAJAiS,KACAja,EAAA6jC,EAAAI,GAAAJ,EAAAI,IAAAjkC,EACA4jC,EAAA5jC,GAAAyC,GAEAmD,MAIAs+B,iBAAA,SAAAn+B,GAIA,MAHAkU,KACApB,EAAAO,SAAArT,GAEAH,MAIA09B,WAAA,SAAAtiC,GACA,GAAAqb,EACA,IAAArb,EACA,GAAAiZ,EAAA,EACA,IAAAoC,IAAArb,GAGAsiC,EAAAjnB,IAAAinB,EAAAjnB,GAAArb,EAAAqb,QAKAtE,GAAApD,OAAA3T,EAAA+W,EAAA2qB,QAGA,OAAA98B,OAIAu+B,MAAA,SAAApB,GACA,GAAAqB,GAAArB,GAAAe,CAKA,OAJAb,IACAA,EAAAkB,MAAAC,GAEAnvB,EAAA,EAAAmvB,GACAx+B,MAuBA,IAlBAiQ,EAAAa,QAAAqB,GAAAX,SAAAqsB,EAAA72B,IACAmL,EAAA8qB,QAAA9qB,EAAA9C,KACA8C,EAAAmC,MAAAnC,EAAAV,KAMAwB,EAAA4oB,MAAAA,GAAA5oB,EAAA4oB,KAAAtX,GAAAI,MAAA,IAAAhpB,QAAAu/B,GAAA,IACAv/B,QAAA4/B,GAAAhX,GAAAwX,SAAA,MAGA9oB,EAAA9S,KAAAgB,EAAAs9B,QAAAt9B,EAAAhB,MAAA8S,EAAAwrB,QAAAxrB,EAAA9S,KAGA8S,EAAAjB,UAAAtS,GAAAmX,KAAA5D,EAAAlB,UAAA,KAAA3P,cAAAd,MAAAC,MAAA,IAGA,MAAA0R,EAAAyrB,YAAA,CACAX,EAAAl+B,EAAAuF,cAAA,IAIA,KACA24B,EAAApZ,KAAA1R,EAAA4oB,IAIAkC,EAAApZ,KAAAoZ,EAAApZ,KACA1R,EAAAyrB,YAAAjD,GAAAM,SAAA,KAAAN,GAAAkD,MACAZ,EAAAhC,SAAA,KAAAgC,EAAAY,KACA,MAAAlgC,GAIAwU,EAAAyrB,aAAA,GAaA,GARAzrB,EAAA/Q,MAAA+Q,EAAA+oB,aAAA,gBAAA/oB,GAAA/Q,OACA+Q,EAAA/Q,KAAAxC,GAAAk/B,MAAA3rB,EAAA/Q,KAAA+Q,EAAAuB,cAIAtC,EAAAlC,GAAAiD,EAAA9R,EAAAgR,GAGA,IAAAkC,EACA,MAAAlC,EAKAwrB,GAAAj+B,GAAAmH,OAAAoM,EAAAtT,OAGAg+B,GAAA,GAAAj+B,GAAAg8B,UACAh8B,GAAAmH,MAAAkpB,QAAA,aAIA9c,EAAA9S,KAAA8S,EAAA9S,KAAAsL,cAGAwH,EAAA4rB,YAAAvD,GAAA5/B,KAAAuX,EAAA9S,MAIAq9B,EAAAvqB,EAAA4oB,IAGA5oB,EAAA4rB,aAGA5rB,EAAA/Q,OACAs7B,EAAAvqB,EAAA4oB,MAAAjB,GAAAl/B,KAAA8hC,GAAA,IAAA,KAAAvqB,EAAA/Q,WAGA+Q,GAAA/Q,OAIA,IAAA+Q,EAAAoG,QACApG,EAAA4oB,IAAAV,GAAAz/B,KAAA8hC,GAGAA,EAAA7hC,QAAAw/B,GAAA,OAAAR,MAGA6C,GAAA5C,GAAAl/B,KAAA8hC,GAAA,IAAA,KAAA,KAAA7C,OAKA1nB,EAAAsqB,aACA79B,GAAAi8B,aAAA6B,IACArrB,EAAAisB,iBAAA,oBAAA1+B,GAAAi8B,aAAA6B,IAEA99B,GAAAk8B,KAAA4B,IACArrB,EAAAisB,iBAAA,gBAAA1+B,GAAAk8B,KAAA4B,MAKAvqB,EAAA/Q,MAAA+Q,EAAA4rB,aAAA,IAAA5rB,EAAAipB,aAAA/6B,EAAA+6B,cACA/pB,EAAAisB,iBAAA,eAAAnrB,EAAAipB,aAIA/pB,EAAAisB,iBACA,SACAnrB,EAAAjB,UAAA,IAAAiB,EAAAkpB,QAAAlpB,EAAAjB,UAAA,IACAiB,EAAAkpB,QAAAlpB,EAAAjB,UAAA,KACA,MAAAiB,EAAAjB,UAAA,GAAA,KAAAwpB,GAAA,WAAA,IACAvoB,EAAAkpB,QAAA,KAIA,KAAArhC,IAAAmY,GAAA+pB,QACA7qB,EAAAisB,iBAAAtjC,EAAAmY,EAAA+pB,QAAAliC,GAIA,IAAAmY,EAAA6rB,cACA,IAAA7rB,EAAA6rB,WAAA5kC,KAAAujC,EAAAtrB,EAAAc,IAAA,IAAAoB,GAGA,MAAAlC,GAAAosB,OAIAL,GAAA,OAGA,KAAApjC,KAAAmiC,QAAA,EAAA3oB,MAAA,EAAA9C,SAAA,GACAW,EAAArX,GAAAmY,EAAAnY,GAOA,IAHAuiC,EAAAnrB,EAAAQ,GAAAO,EAAA9R,EAAAgR,GAKA,CASA,GARAA,EAAA8X,WAAA,EAGA0T,GACAC,EAAA7N,QAAA,YAAA5d,EAAAc,IAIA,IAAAoB,EACA,MAAAlC,EAIAc,GAAAgpB,OAAAhpB,EAAAykB,QAAA,IACA0F,EAAAr9B,EAAAT,WAAA,WACA6S,EAAAosB,MAAA,YACAtrB,EAAAykB,SAGA,KACArjB,EAAA,EACAgpB,EAAA0B,KAAAf,EAAA3uB,GACA,MAAA5Q,GAGA,KAAA4V,EAAA,GAKA,KAAA5V,EAJA4Q,IAAA,EAAA5Q,QA5BA4Q,IAAA,EAAA,eAuJA,OAAA8C,IAGA6sB,QAAA,SAAAnD,EAAA35B,EAAApD,GACA,MAAAY,IAAA6E,IAAAs3B,EAAA35B,EAAApD,EAAA,SAGAmgC,UAAA,SAAApD,EAAA/8B,GACA,MAAAY,IAAA6E,IAAAs3B,MAAAz8B,GAAAN,EAAA,aAIAY,GAAA2B,MAAA,MAAA,QAAA,SAAAvG,EAAA2jC,GACA/+B,GAAA++B,GAAA,SAAA5C,EAAA35B,EAAApD,EAAAqB,GAUA,MAPAT,IAAAe,WAAAyB,KACA/B,EAAAA,GAAArB,EACAA,EAAAoD,EACAA,MAAA9C,IAIAM,GAAAm9B,KAAAn9B,GAAAwI,QACA2zB,IAAAA,EACA17B,KAAAs+B,EACA1sB,SAAA5R,EACA+B,KAAAA,EACA+6B,QAAAn+B,GACAY,GAAAuW,cAAA4lB,IAAAA,OAKAn8B,GAAA2J,SAAA,SAAAwyB,GACA,MAAAn8B,IAAAm9B,MACAhB,IAAAA,EAGA17B,KAAA,MACA4R,SAAA,SACAkqB,OAAA,EACAt8B,QAAA,EACAyU,QAAA,KAKA1U,GAAAgH,GAAAwB,QACAg3B,QAAA,SAAA/1B,GACA,GAAAtE,EAEA,OAAAnF,IAAAe,WAAA0I,GACAnJ,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAk/B,QAAA/1B,EAAAjP,KAAA8F,KAAAlF,OAIAkF,KAAA,KAGA6E,EAAAnF,GAAAyJ,EAAAnJ,KAAA,GAAAgG,eAAAkD,GAAA,GAAAE,OAAA,GAEApJ,KAAA,GAAA2J,YACA9E,EAAA2sB,aAAAxxB,KAAA,IAGA6E,EAAAzJ,IAAA,WAGA,IAFA,GAAAuF,GAAAX,KAEAW,EAAAw+B,mBACAx+B,EAAAA,EAAAw+B,iBAGA,OAAAx+B,KACA2wB,OAAAtxB,OAGAA,OAGAo/B,UAAA,SAAAj2B,GACA,MAAAzJ,IAAAe,WAAA0I,GACAnJ,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAo/B,UAAAj2B,EAAAjP,KAAA8F,KAAAlF,MAIAkF,KAAAqB,KAAA,WACA,GAAA4H,GAAAvJ,GAAAM,MACAsT,EAAArK,EAAAqK,UAEAA,GAAA/X,OACA+X,EAAA4rB,QAAA/1B,GAGAF,EAAAqoB,OAAAnoB,MAKAtE,KAAA,SAAAsE,GACA,GAAA1I,GAAAf,GAAAe,WAAA0I,EAEA,OAAAnJ,MAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAk/B,QAAAz+B,EAAA0I,EAAAjP,KAAA8F,KAAAlF,GAAAqO,MAIAk2B,OAAA,WACA,MAAAr/B,MAAA6gB,SAAAxf,KAAA,WACA3B,GAAAsE,SAAAhE,KAAA,SACAN,GAAAM,MAAA2xB,YAAA3xB,KAAA2F,cAEAjC,SAKAhE,GAAA4iB,KAAAuD,QAAA/Y,OAAA,SAAAnM,GACA,OAAAjB,GAAA4iB,KAAAuD,QAAAyZ,QAAA3+B,IAEAjB,GAAA4iB,KAAAuD,QAAAyZ,QAAA,SAAA3+B,GAMA,MAAAA,GAAA6L,YAAA,GAAA7L,EAAA8L,aAAA,GAAA9L,EAAA4+B,iBAAAhkC,OAAA,EAMA,IAAAikC,IAAA,OACA9qB,GAAA,QACA+qB,GAAA,SACAC,GAAA,wCACAC,GAAA,oCA0CAjgC,IAAAk/B,MAAA,SAAA5kB,EAAAxF,GACA,GAAAnX,GACA4V,KACAjM,EAAA,SAAA/E,EAAApF,GAGAA,EAAA6C,GAAAe,WAAA5D,GAAAA,IAAA,MAAAA,EAAA,GAAAA,EACAoW,EAAAA,EAAA1X,QAAAqkC,mBAAA39B,GAAA,IAAA29B,mBAAA/iC,GASA,QALAuC,KAAAoV,IACAA,EAAA9U,GAAAqT,cAAArT,GAAAqT,aAAAyB,aAIA9U,GAAAgQ,QAAAsK,IAAAA,EAAA1E,SAAA5V,GAAAuW,cAAA+D,GAGAta,GAAA2B,KAAA2Y,EAAA,WACAhT,EAAAhH,KAAA5F,KAAA4F,KAAAnD,aAOA,KAAAQ,IAAA2c,GACAzF,EAAAlX,EAAA2c,EAAA3c,GAAAmX,EAAAxN,EAKA,OAAAiM,GAAAjX,KAAA,KAAAL,QAAA6jC,GAAA,MAGA9/B,GAAAgH,GAAAwB,QACA23B,UAAA,WACA,MAAAngC,IAAAk/B,MAAA5+B,KAAA8/B,mBAEAA,eAAA,WACA,MAAA9/B,MAAA5E,IAAA,WAGA,GAAAkF,GAAAZ,GAAA1F,KAAAgG,KAAA,WACA,OAAAM,GAAAZ,GAAAuX,UAAA3W,GAAAN,OAEAc,OAAA,WACA,GAAAX,GAAAH,KAAAG,IAGA,OAAAH,MAAA5F,OAAAsF,GAAAM,MAAAymB,GAAA,cACAkZ,GAAAjkC,KAAAsE,KAAAgE,YAAA07B,GAAAhkC,KAAAyE,KACAH,KAAAqI,UAAAD,GAAA1M,KAAAyE,MAEA/E,IAAA,SAAAN,EAAA6F,GACA,GAAAyL,GAAA1M,GAAAM,MAAAoM,KAEA,OAAA,OAAAA,EACA,KACA1M,GAAAgQ,QAAAtD,GACA1M,GAAAtE,IAAAgR,EAAA,SAAAA,GACA,OAAAhS,KAAAuG,EAAAvG,KAAAyC,MAAAuP,EAAAzQ,QAAA8jC,GAAA,YAEArlC,KAAAuG,EAAAvG,KAAAyC,MAAAuP,EAAAzQ,QAAA8jC,GAAA,WACAl7B,SAKA7E,GAAAqT,aAAAgtB,IAAA,WACA,IACA,MAAA,IAAAhgC,GAAAigC,eACA,MAAAvhC,KAGA,IAAAwhC,KAGAC,EAAA,IAIAC,KAAA,KAEAC,GAAA1gC,GAAAqT,aAAAgtB,KAEAj3B,IAAAu3B,OAAAD,IAAA,mBAAAA,IACAt3B,GAAA+zB,KAAAuD,KAAAA,GAEA1gC,GAAAk9B,cAAA,SAAAz7B,GACA,GAAArC,GAAAwhC,CAGA,IAAAx3B,GAAAu3B,MAAAD,KAAAj/B,EAAAu9B,YACA,OACAK,KAAA,SAAA/B,EAAAxrB,GACA,GAAA1W,GACAilC,EAAA5+B,EAAA4+B,KAWA,IATAA,EAAAQ,KACAp/B,EAAAhB,KACAgB,EAAA06B,IACA16B,EAAA86B,MACA96B,EAAAq/B,SACAr/B,EAAAskB,UAIAtkB,EAAAs/B,UACA,IAAA3lC,IAAAqG,GAAAs/B,UACAV,EAAAjlC,GAAAqG,EAAAs/B,UAAA3lC,EAKAqG,GAAAqS,UAAAusB,EAAAzB,kBACAyB,EAAAzB,iBAAAn9B,EAAAqS,UAQArS,EAAAu9B,aAAA1B,EAAA,sBACAA,EAAA,oBAAA,iBAIA,KAAAliC,IAAAkiC,GACA+C,EAAA3B,iBAAAtjC,EAAAkiC,EAAAliC,GAIAgE,GAAA,SAAAqB,GACA,MAAA,YACArB,IACAA,EAAAwhC,EAAAP,EAAAW,OACAX,EAAAY,QAAAZ,EAAAa,QAAAb,EAAAc,mBAAA,KAEA,UAAA1gC,EACA4/B,EAAAxB,QACA,UAAAp+B,EAKA,gBAAA4/B,GAAAjD,OACAtrB,EAAA,EAAA,SAEAA,EAGAuuB,EAAAjD,OACAiD,EAAA5C,YAIA3rB,EACAyuB,GAAAF,EAAAjD,SAAAiD,EAAAjD,OACAiD,EAAA5C,WAKA,UAAA4C,EAAAe,cAAA,SACA,gBAAAf,GAAAgB,cACAC,OAAAjB,EAAAnsB,WACAkD,KAAAipB,EAAAgB,cACAhB,EAAA5B,4BAQA4B,EAAAW,OAAA5hC,IACAwhC,EAAAP,EAAAY,QAAA7hC,EAAA,aAKAM,KAAA2gC,EAAAa,QACAb,EAAAa,QAAAN,EAEAP,EAAAc,mBAAA,WAGA,IAAAd,EAAA9V,YAMAlqB,EAAAT,WAAA,WACAR,GACAwhC,OAQAxhC,EAAAA,EAAA,QAEA,KAGAihC,EAAAhB,KAAA59B,EAAA09B,YAAA19B,EAAAe,MAAA,MACA,MAAAzD,GAGA,GAAAK,EACA,KAAAL,KAKA8/B,MAAA,WACAz/B,GACAA,QAWAY,GAAA+8B,WACAN,SACAzlB,OAAA,6FAGApD,UACAoD,OAAA,2BAEAhD,YACAutB,cAAA,SAAAnqB,GAEA,MADApX,IAAA4J,WAAAwN,GACAA,MAMApX,GAAAi9B,cAAA,SAAA,SAAA1pB,OACA7T,KAAA6T,EAAAoG,QACApG,EAAAoG,OAAA,GAEApG,EAAAyrB,cACAzrB,EAAA9S,KAAA,SAKAT,GAAAk9B,cAAA,SAAA,SAAA3pB,GAGA,GAAAA,EAAAyrB,YAAA,CACA,GAAAhoB,GAAA5X,CACA,QACAigC,KAAA,SAAAv9B,EAAAgQ,GACAkF,EAAAhX,GAAA,YAAA1F,MACAknC,QAAAjuB,EAAAkuB,cACA35B,IAAAyL,EAAA4oB,MACAt1B,GACA,aACAzH,EAAA,SAAAsiC,GACA1qB,EAAAlN,SACA1K,EAAA,KACAsiC,GACA5vB,EAAA,UAAA4vB,EAAAjhC,KAAA,IAAA,IAAAihC,EAAAjhC,QAMAN,EAAAkX,KAAA5R,YAAAuR,EAAA,KAEA6nB,MAAA,WACAz/B,GACAA,QAUA,IAAAuiC,OACAC,GAAA,mBAGA5hC,IAAA+8B,WACA8E,MAAA,WACAC,cAAA,WACA,GAAA1iC,GAAAuiC,GAAAvjB,OAAApe,GAAAoC,QAAA,IAAA64B,IAEA,OADA36B,MAAAlB,IAAA,EACAA,KAKAY,GAAAi9B,cAAA,aAAA,SAAA1pB,EAAAwuB,EAAAtvB,GAEA,GAAAuvB,GAAAC,EAAAC,EACAC,GAAA,IAAA5uB,EAAAsuB,QAAAD,GAAA5lC,KAAAuX,EAAA4oB,KACA,MACA,gBAAA5oB,GAAA/Q,MAEA,KADA+Q,EAAAipB,aAAA,IACA3+B,QAAA,sCACA+jC,GAAA5lC,KAAAuX,EAAA/Q,OAAA,OAIA,IAAA2/B,GAAA,UAAA5uB,EAAAjB,UAAA,GA8DA,MA3DA0vB,GAAAzuB,EAAAuuB,cAAA9hC,GAAAe,WAAAwS,EAAAuuB,eACAvuB,EAAAuuB,gBACAvuB,EAAAuuB,cAGAK,EACA5uB,EAAA4uB,GAAA5uB,EAAA4uB,GAAAlmC,QAAA2lC,GAAA,KAAAI,IACA,IAAAzuB,EAAAsuB,QACAtuB,EAAA4oB,MAAAjB,GAAAl/B,KAAAuX,EAAA4oB,KAAA,IAAA,KAAA5oB,EAAAsuB,MAAA,IAAAG,GAIAzuB,EAAAS,WAAA,eAAA,WAIA,MAHAkuB,IACAliC,GAAA4U,MAAAotB,EAAA,mBAEAE,EAAA,IAIA3uB,EAAAjB,UAAA,GAAA,OAGA2vB,EAAA5hC,EAAA2hC,GACA3hC,EAAA2hC,GAAA,WACAE,EAAAtlC,WAIA6V,EAAApD,OAAA,eAGA3P,KAAAuiC,EACAjiC,GAAAK,GAAA24B,WAAAgJ,GAIA3hC,EAAA2hC,GAAAC,EAIA1uB,EAAAyuB,KAGAzuB,EAAAuuB,cAAAC,EAAAD,cAGAH,GAAA9kC,KAAAmlC,IAIAE,GAAAliC,GAAAe,WAAAkhC,IACAA,EAAAC,EAAA,IAGAA,EAAAD,MAAAviC,KAIA,WAWAM,GAAAonB,UAAA,SAAA5kB,EAAA0B,EAAAk+B,GACA,IAAA5/B,GAAA,gBAAAA,GACA,MAAA,KAEA,kBAAA0B,KACAk+B,EAAAl+B,EACAA,GAAA,GAEAA,EAAAA,GAAA/D,CAEA,IAAAkiC,GAAAnb,GAAArjB,KAAArB,GACAuC,GAAAq9B,KAGA,OAAAC,IACAn+B,EAAAwB,cAAA28B,EAAA,MAGAA,EAAAv9B,GAAAtC,GAAA0B,EAAAa,GAEAA,GAAAA,EAAAlJ,QACAmE,GAAA+E,GAAA+E,SAGA9J,GAAAuE,SAAA89B,EAAAp8B,aAKA,IAAAq8B,IAAAtiC,GAAAgH,GAAAvH,IAKAO,IAAAgH,GAAAvH,KAAA,SAAA08B,EAAAoG,EAAAnjC,GACA,GAAA,gBAAA+8B,IAAAmG,GACA,MAAAA,IAAAvlC,MAAAuD,KAAA1D,UAGA,IAAAmK,GAAAtG,EAAAyT,EACA3K,EAAAjJ,KACA8G,EAAA+0B,EAAAt+B,QAAA,IAsDA,OApDAuJ,IAAA,IACAL,EAAA/G,GAAAmX,KAAAglB,EAAAhgC,MAAAiL,IACA+0B,EAAAA,EAAAhgC,MAAA,EAAAiL,IAIApH,GAAAe,WAAAwhC,IAGAnjC,EAAAmjC,EACAA,MAAA7iC,IAGA6iC,GAAA,gBAAAA,KACA9hC,EAAA,QAIA8I,EAAA1N,OAAA,GACAmE,GAAAm9B,MACAhB,IAAAA,EAKA17B,KAAAA,GAAA,MACA4R,SAAA,OACA7P,KAAA+/B,IACA5yB,KAAA,SAAA0xB,GAGAntB,EAAAtX,UAEA2M,EAAAE,KAAA1C,EAIA/G,GAAA,SAAA4xB,OAAA5xB,GAAAonB,UAAAia,IAAAnjB,KAAAnX,GAGAs6B,KAKAhyB,OAAAjQ,GAAA,SAAAqT,EAAA2qB,GACA7zB,EAAA5H,KAAA,WACAvC,EAAArC,MAAAuD,KAAA4T,IAAAzB,EAAA4uB,aAAAjE,EAAA3qB,QAKAnS,MAOAN,GAAA2B,MACA,YACA,WACA,eACA,YACA,cACA,YACA,SAAAvG,EAAAqF,GACAT,GAAAgH,GAAAvG,GAAA,SAAAuG,GACA,MAAA1G,MAAAuG,GAAApG,EAAAuG,MAOAhH,GAAA4iB,KAAAuD,QAAAqc,SAAA,SAAAvhC,GACA,MAAAjB,IAAAgB,KAAAhB,GAAAi3B,OAAA,SAAAjwB,GACA,MAAA/F,KAAA+F,EAAA/F,OACApF,QAaAmE,GAAAyiC,QACAC,UAAA,SAAAzhC,EAAAQ,EAAArG,GACA,GAAAunC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAjP,EAAAh0B,GAAAuD,IAAAtC,EAAA,YACAiiC,EAAAljC,GAAAiB,GACAuN,IAGA,YAAAwlB,IACA/yB,EAAA6C,MAAAkwB,SAAA,YAGA+O,EAAAG,EAAAT,SACAI,EAAA7iC,GAAAuD,IAAAtC,EAAA,OACA+hC,EAAAhjC,GAAAuD,IAAAtC,EAAA,QACAgiC,GAAA,aAAAjP,GAAA,UAAAA,KACA6O,EAAAG,GAAAnlC,QAAA,SAAA,EAIAolC,GACAN,EAAAO,EAAAlP,WACA8O,EAAAH,EAAAvhB,IACAwhB,EAAAD,EAAAtN,OAGAyN,EAAA71B,WAAA41B,IAAA,EACAD,EAAA31B,WAAA+1B,IAAA,GAGAhjC,GAAAe,WAAAU,KAGAA,EAAAA,EAAAjH,KAAAyG,EAAA7F,EAAA4E,GAAAwI,UAAAu6B,KAGA,MAAAthC,EAAA2f,MACA5S,EAAA4S,IAAA3f,EAAA2f,IAAA2hB,EAAA3hB,IAAA0hB,GAEA,MAAArhC,EAAA4zB,OACA7mB,EAAA6mB,KAAA5zB,EAAA4zB,KAAA0N,EAAA1N,KAAAuN,GAGA,SAAAnhC,GACAA,EAAA0hC,MAAA3oC,KAAAyG,EAAAuN,GAGA00B,EAAA3/B,IAAAiL,KAKAxO,GAAAgH,GAAAwB,QACAi6B,OAAA,SAAAhhC,GACA,GAAA7E,UAAAf,OACA,WAAA6D,KAAA+B,EACAnB,KACAA,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAyiC,OAAAC,UAAApiC,KAAAmB,EAAArG,IAIA,IAAAujB,GAAAykB,EACAniC,EAAAX,KAAA,GACA+iC,GAAAjiB,IAAA,EAAAiU,KAAA,GACAnsB,EAAAjI,GAAAA,EAAAqF,aAEA,IAAA4C,EAOA,MAHAyV,GAAAzV,EAAAyB,gBAGA3K,GAAAoF,SAAAuZ,EAAA1d,IAIAoiC,EAAApiC,EAAAm0B,wBACAgO,EAAAnuB,EAAA/L,IAEAkY,IAAAiiB,EAAAjiB,IAAAgiB,EAAAE,YAAA3kB,EAAAqR,UACAqF,KAAAgO,EAAAhO,KAAA+N,EAAAG,YAAA5kB,EAAAiR,aAPAyT,GAWArP,SAAA,WACA,GAAA1zB,KAAA,GAAA,CAIA,GAAAkjC,GAAAf,EACAxhC,EAAAX,KAAA,GACAmjC,GAAAriB,IAAA,EAAAiU,KAAA,EA0BA,OAtBA,UAAAr1B,GAAAuD,IAAAtC,EAAA,YAGAwhC,EAAAxhC,EAAAm0B,yBAKAoO,EAAAljC,KAAAkjC,eAGAf,EAAAniC,KAAAmiC,SACAziC,GAAAsE,SAAAk/B,EAAA,GAAA,UACAC,EAAAD,EAAAf,UAIAgB,EAAAriB,KAAAphB,GAAAuD,IAAAigC,EAAA,GAAA,kBAAA,GACAC,EAAApO,MAAAr1B,GAAAuD,IAAAigC,EAAA,GAAA,mBAAA,KAKApiB,IAAAqhB,EAAArhB,IAAAqiB,EAAAriB,IAAAphB,GAAAuD,IAAAtC,EAAA,aAAA,GACAo0B,KAAAoN,EAAApN,KAAAoO,EAAApO,KAAAr1B,GAAAuD,IAAAtC,EAAA,cAAA,MAcAuiC,aAAA,WACA,MAAAljC,MAAA5E,IAAA,WAGA,IAFA,GAAA8nC,GAAAljC,KAAAkjC,aAEAA,GAAA,WAAAxjC,GAAAuD,IAAAigC,EAAA,aACAA,EAAAA,EAAAA,YAGA,OAAAA,IAAA74B,QAMA3K,GAAA2B,MAAAguB,WAAA,cAAAI,UAAA,eAAA,SAAAgP,EAAAzkC,GACA,GAAA8mB,GAAA,gBAAA9mB,CAEA0F,IAAAgH,GAAA+3B,GAAA,SAAAryB,GACA,MAAApE,IAAAhI,KAAA,SAAAW,EAAA89B,EAAAryB,GACA,GAAA02B,GAAAnuB,EAAAhU,EAEA,QAAAvB,KAAAgN,EACA,MAAA02B,GAAAA,EAAA9oC,GAAA2G,EAAA89B,EAGAqE,GACAA,EAAAM,SACAtiB,EAAAgiB,EAAAG,YAAA72B,EACA0U,EAAA1U,EAAA02B,EAAAE,aAIAriC,EAAA89B,GAAAryB,GAEAqyB,EAAAryB,EAAA9P,UAAAf,WAUAmE,GAAA2B,MAAA,MAAA,QAAA,SAAAvG,EAAAd,GACA0F,GAAAiQ,SAAA3V,GAAAmR,EAAArC,GAAAsqB,cACA,SAAAzyB,EAAA+J,GACA,GAAAA,EAIA,MAHAA,GAAAD,EAAA9J,EAAA3G,GAGAiR,GAAAvP,KAAAgP,GACAhL,GAAAiB,GAAA+yB,WAAA15B,GAAA,KACA0Q,MAQAhL,GAAA2B,MAAAgiC,OAAA,SAAAC,MAAA,SAAA,SAAAlpC,EAAA+F,GACAT,GAAA2B,MAAA4zB,QAAA,QAAA76B,EAAA8M,QAAA/G,EAAAojC,GAAA,QAAAnpC,GACA,SAAAopC,EAAAC,GAGA/jC,GAAAgH,GAAA+8B,GAAA,SAAAzO,EAAAn4B,GACA,GAAAstB,GAAA7tB,UAAAf,SAAAioC,GAAA,iBAAAxO,IACA/oB,EAAAu3B,KAAA,IAAAxO,IAAA,IAAAn4B,EAAA,SAAA,SAEA,OAAAmL,IAAAhI,KAAA,SAAAW,EAAAR,EAAAtD,GACA,GAAA+L,EAEA,OAAAlJ,IAAAU,SAAAO,GAKAA,EAAAd,SAAAwK,gBAAA,SAAAjQ,GAIA,IAAAuG,EAAAC,UACAgI,EAAAjI,EAAA0J,gBAIAyB,KAAAC,IACApL,EAAAoJ,KAAA,SAAA3P,GAAAwO,EAAA,SAAAxO,GACAuG,EAAAoJ,KAAA,SAAA3P,GAAAwO,EAAA,SAAAxO,GACAwO,EAAA,SAAAxO,SAIAgF,KAAAvC,EAGA6C,GAAAuD,IAAAtC,EAAAR,EAAA8L,GAGAvM,GAAA8D,MAAA7C,EAAAR,EAAAtD,EAAAoP,IACA9L,EAAAgqB,EAAA6K,MAAA51B,GAAA+qB,EAAA,WAMAzqB,GAAAgH,GAAAwB,QAEAw7B,KAAA,SAAAl9B,EAAAtE,EAAAwE,GACA,MAAA1G,MAAAuG,GAAAC,EAAA,KAAAtE,EAAAwE,IAEAi9B,OAAA,SAAAn9B,EAAAE,GACA,MAAA1G,MAAA8G,IAAAN,EAAA,KAAAE,IAGAk9B,SAAA,SAAAn9B,EAAAD,EAAAtE,EAAAwE,GACA,MAAA1G,MAAAuG,GAAAC,EAAAC,EAAAvE,EAAAwE,IAEAm9B,WAAA,SAAAp9B,EAAAD,EAAAE,GAGA,MAAA,KAAApK,UAAAf,OACAyE,KAAA8G,IAAAL,EAAA,MACAzG,KAAA8G,IAAAN,EAAAC,GAAA,KAAAC,IAEAo9B,KAAA,WACA,MAAA9jC,MAAAzE,UAIAmE,GAAAgH,GAAAq9B,QAAArkC,GAAAgH,GAAA6gB,QAkBA,kBAAA3tB,SAAAA,OAAA6F,KACA7F,OAAA,YAAA,WACA,MAAA8F,KAMA,IAGAskC,IAAAjkC,EAAAL,OAGAukC,GAAAlkC,EAAAmkC,CAqBA,OAnBAxkC,IAAAykC,WAAA,SAAAtxB,GASA,MARA9S,GAAAmkC,IAAAxkC,KACAK,EAAAmkC,EAAAD,IAGApxB,GAAA9S,EAAAL,SAAAA,KACAK,EAAAL,OAAAskC,IAGAtkC,IAMAO,IACAF,EAAAL,OAAAK,EAAAmkC,EAAAxkC,IAGAA,KAGA,SAAAjB,GAAA,gBAAAD,UAAA,mBAAAE,QAAAA,OAAAF,QAAAC,IAAA,kBAAA7E,SAAAA,OAAA6F,IAAA7F,OAAA,kBAAA6E,IAAA,mBAAAsB,QAAAA,OAAA,mBAAAJ,QAAAA,OAAA,mBAAAsJ,MAAAA,KAAAjJ,MAAAokC,cAAA3lC,KAAA,WAAA,MAAA,SAAA3D,GAAAmY,EAAA7U,EAAAimC,GAAA,QAAAC,GAAAxX,EAAAruB,GAAA,IAAAL,EAAA0uB,GAAA,CAAA,IAAA7Z,EAAA6Z,GAAA,CAAA,GAAAzuB,GAAA,kBAAA1E,UAAAA,OAAA,KAAA8E,GAAAJ,EAAA,MAAAA,GAAAyuB,GAAA,EAAA,IAAA9S,EAAA,MAAAA,GAAA8S,GAAA,EAAA,IAAAyX,GAAA,GAAApnC,OAAA,uBAAA2vB,EAAA,IAAA,MAAAyX,GAAA9tB,KAAA,mBAAA8tB,EAAA,GAAAC,GAAApmC,EAAA0uB,IAAAtuB,WAAAyU,GAAA6Z,GAAA,GAAA5yB,KAAAsqC,EAAAhmC,QAAA,SAAAC,GAAA,MAAA6lC,GAAArxB,EAAA6Z,GAAA,GAAAruB,IAAAA,IAAA+lC,EAAAA,EAAAhmC,QAAA1D,EAAAmY,EAAA7U,EAAAimC,GAAA,MAAAjmC,GAAA0uB,GAAAtuB,QAAA,IAAA,GAAAwb,GAAA,kBAAArgB,UAAAA,QAAA8E,EAAA,EAAAA,EAAA4lC,EAAA9oC,OAAAkD,IAAA6lC,EAAAD,EAAA5lC,GAAA,OAAA6lC,KAAAG,GAAA,SAAAhmC,EAAAquB,EAAAzuB,GAAA,YAAA,SAAAmmC,MAAA,QAAApmC,GAAAK,EAAAquB,EAAAzuB,GAAA2B,KAAA0G,GAAAjI,EAAAuB,KAAA4D,QAAAkpB,EAAA9sB,KAAAooB,KAAA/pB,IAAA,EAAA,QAAAvD,GAAA2D,EAAAquB,EAAAzuB,EAAAkmC,EAAAC,GAAA,GAAA,kBAAAnmC,GAAA,KAAA,IAAAqmC,WAAA,kCAAA,IAAA5pC,GAAA,GAAAsD,GAAAC,EAAAkmC,GAAA9lC,EAAA+lC,GAAAvxB,EAAAwB,EAAAA,EAAAqY,EAAAA,CAAA,OAAAruB,GAAAkmC,QAAA1xB,GAAAxU,EAAAkmC,QAAA1xB,GAAAvM,GAAAjI,EAAAkmC,QAAA1xB,IAAAxU,EAAAkmC,QAAA1xB,GAAAnY,GAAA2D,EAAAkmC,QAAA1xB,GAAA1W,KAAAzB,IAAA2D,EAAAkmC,QAAA1xB,GAAAnY,EAAA2D,EAAAmmC,gBAAAnmC,EAAA,QAAA6lC,GAAA7lC,EAAAquB,GAAA,KAAAruB,EAAAmmC,aAAAnmC,EAAAkmC,QAAA,GAAAH,SAAA/lC,GAAAkmC,QAAA7X,GAAA,QAAA7Z,KAAAjT,KAAA2kC,QAAA,GAAAH,GAAAxkC,KAAA4kC,aAAA,EAAA,GAAAL,GAAA1mC,OAAAC,UAAAC,eAAA0W,EAAA,GAAA5W,QAAAgnC,SAAAL,EAAA1mC,UAAAD,OAAAgnC,OAAA,OAAA,GAAAL,IAAAM,YAAArwB,GAAA,IAAAxB,EAAAnV,UAAAinC,WAAA,WAAA,GAAAtmC,GAAAquB,EAAAzuB,IAAA,IAAA,IAAA2B,KAAA4kC,aAAA,MAAAvmC,EAAA,KAAAyuB,IAAAruB,GAAAuB,KAAA2kC,QAAAJ,EAAArqC,KAAAuE,EAAAquB,IAAAzuB,EAAA9B,KAAAkY,EAAAqY,EAAAjxB,MAAA,GAAAixB,EAAA,OAAAjvB,QAAAmnC,sBAAA3mC,EAAAvC,OAAA+B,OAAAmnC,sBAAAvmC,IAAAJ,GAAA4U,EAAAnV,UAAAmnC,UAAA,SAAAxmC,GAAA,GAAAquB,GAAArY,EAAAA,EAAAhW,EAAAA,EAAAJ,EAAA2B,KAAA2kC,QAAA7X,EAAA,KAAAzuB,EAAA,QAAA,IAAAA,EAAAqI,GAAA,OAAArI,EAAAqI,GAAA,KAAA,GAAA69B,GAAA,EAAAC,EAAAnmC,EAAA9C,OAAAT,EAAA,GAAAwb,OAAAkuB,GAAAD,EAAAC,EAAAD,IAAAzpC,EAAAypC,GAAAlmC,EAAAkmC,GAAA79B,EAAA,OAAA5L,IAAAmY,EAAAnV,UAAAonC,cAAA,SAAAzmC,GAAA,GAAAquB,GAAArY,EAAAA,EAAAhW,EAAAA,EAAAJ,EAAA2B,KAAA2kC,QAAA7X,EAAA,OAAAzuB,GAAAA,EAAAqI,GAAA,EAAArI,EAAA9C,OAAA,GAAA0X,EAAAnV,UAAAqnC,KAAA,SAAA1mC,EAAAquB,EAAAzuB,EAAAkmC,EAAAC,EAAA1pC,GAAA,GAAAmY,GAAAwB,EAAAA,EAAAhW,EAAAA,CAAA,KAAAuB,KAAA2kC,QAAA1xB,GAAA,OAAA,CAAA,IAAA7U,GAAAimC,EAAAC,EAAAtkC,KAAA2kC,QAAA1xB,GAAA+G,EAAA1d,UAAAf,MAAA,IAAA+oC,EAAA59B,GAAA,CAAA,OAAA49B,EAAAlc,MAAApoB,KAAAolC,eAAA3mC,EAAA6lC,EAAA59B,OAAA,IAAA,GAAAsT,GAAA,IAAA,GAAA,MAAAsqB,GAAA59B,GAAAxM,KAAAoqC,EAAA1gC,UAAA,CAAA,KAAA,GAAA,MAAA0gC,GAAA59B,GAAAxM,KAAAoqC,EAAA1gC,QAAAkpB,IAAA,CAAA,KAAA,GAAA,MAAAwX,GAAA59B,GAAAxM,KAAAoqC,EAAA1gC,QAAAkpB,EAAAzuB,IAAA,CAAA,KAAA,GAAA,MAAAimC,GAAA59B,GAAAxM,KAAAoqC,EAAA1gC,QAAAkpB,EAAAzuB,EAAAkmC,IAAA,CAAA,KAAA,GAAA,MAAAD,GAAA59B,GAAAxM,KAAAoqC,EAAA1gC,QAAAkpB,EAAAzuB,EAAAkmC,EAAAC,IAAA,CAAA,KAAA,GAAA,MAAAF,GAAA59B,GAAAxM,KAAAoqC,EAAA1gC,QAAAkpB,EAAAzuB,EAAAkmC,EAAAC,EAAA1pC,IAAA,EAAA,IAAAupC,EAAA,EAAAjmC,EAAA,GAAAkY,OAAA0D,EAAA,GAAAqqB,EAAArqB,EAAAqqB,IAAAjmC,EAAAimC,EAAA,GAAA/nC,UAAA+nC,EAAAC,GAAA59B,GAAAjK,MAAA6nC,EAAA1gC,QAAAxF,OAAA,CAAA,GAAAiG,GAAA9F,EAAA+lC,EAAA/oC,MAAA,KAAA8oC,EAAA,EAAAA,EAAA9lC,EAAA8lC,IAAA,OAAAC,EAAAD,GAAAjc,MAAApoB,KAAAolC,eAAA3mC,EAAA6lC,EAAAD,GAAA39B,OAAA,IAAA,GAAAsT,GAAA,IAAA,GAAAsqB,EAAAD,GAAA39B,GAAAxM,KAAAoqC,EAAAD,GAAAzgC,QAAA,MAAA,KAAA,GAAA0gC,EAAAD,GAAA39B,GAAAxM,KAAAoqC,EAAAD,GAAAzgC,QAAAkpB,EAAA,MAAA,KAAA,GAAAwX,EAAAD,GAAA39B,GAAAxM,KAAAoqC,EAAAD,GAAAzgC,QAAAkpB,EAAAzuB,EAAA,MAAA,KAAA,GAAAimC,EAAAD,GAAA39B,GAAAxM,KAAAoqC,EAAAD,GAAAzgC,QAAAkpB,EAAAzuB,EAAAkmC,EAAA,MAAA,SAAA,IAAAnmC,EAAA,IAAAiG,EAAA,EAAAjG,EAAA,GAAAkY,OAAA0D,EAAA,GAAA3V,EAAA2V,EAAA3V,IAAAjG,EAAAiG,EAAA,GAAA/H,UAAA+H,EAAAigC,GAAAD,GAAA39B,GAAAjK,MAAA6nC,EAAAD,GAAAzgC,QAAAxF,IAAA,OAAA,GAAA6U,EAAAnV,UAAAyI,GAAA,SAAA9H,EAAAquB,EAAAzuB,GAAA,MAAAvD,GAAAkF,KAAAvB,EAAAquB,EAAAzuB,GAAA,IAAA4U,EAAAnV,UAAAsqB,KAAA,SAAA3pB,EAAAquB,EAAAzuB,GAAA,MAAAvD,GAAAkF,KAAAvB,EAAAquB,EAAAzuB,GAAA,IAAA4U,EAAAnV,UAAAsnC,eAAA,SAAA3mC,EAAAquB,EAAAzuB,EAAAkmC,GAAA,GAAAC,GAAA/vB,EAAAA,EAAAhW,EAAAA,CAAA,KAAAuB,KAAA2kC,QAAAH,GAAA,MAAAxkC,KAAA,KAAA8sB,EAAA,MAAAwX,GAAAtkC,KAAAwkC,GAAAxkC,IAAA,IAAAlF,GAAAkF,KAAA2kC,QAAAH,EAAA,IAAA1pC,EAAA4L,GAAA5L,EAAA4L,KAAAomB,GAAAyX,IAAAzpC,EAAAstB,MAAA/pB,GAAAvD,EAAA8I,UAAAvF,GAAAimC,EAAAtkC,KAAAwkC,OAAA,CAAA,IAAA,GAAAvxB,GAAA,EAAA7U,KAAAimC,EAAAvpC,EAAAS,OAAA0X,EAAAoxB,EAAApxB,KAAAnY,EAAAmY,GAAAvM,KAAAomB,GAAAyX,IAAAzpC,EAAAmY,GAAAmV,MAAA/pB,GAAAvD,EAAAmY,GAAArP,UAAAvF,IAAAD,EAAA7B,KAAAzB,EAAAmY,GAAA7U,GAAA7C,OAAAyE,KAAA2kC,QAAAH,GAAA,IAAApmC,EAAA7C,OAAA6C,EAAA,GAAAA,EAAAkmC,EAAAtkC,KAAAwkC,GAAA,MAAAxkC,OAAAiT,EAAAnV,UAAAunC,mBAAA,SAAA5mC,GAAA,GAAAquB,EAAA,OAAAruB,IAAAquB,EAAArY,EAAAA,EAAAhW,EAAAA,EAAAuB,KAAA2kC,QAAA7X,IAAAwX,EAAAtkC,KAAA8sB,KAAA9sB,KAAA2kC,QAAA,GAAAH,GAAAxkC,KAAA4kC,aAAA,GAAA5kC,MAAAiT,EAAAnV,UAAAgJ,IAAAmM,EAAAnV,UAAAsnC,eAAAnyB,EAAAnV,UAAAwnC,YAAAryB,EAAAnV,UAAAyI,GAAA0M,EAAAsyB,SAAA9wB,EAAAxB,EAAAuyB,aAAAvyB,MAAA,KAAA6Z,IAAAA,EAAAtuB,QAAAyU,aAAA,IAAA,KC5jTArZ,OAAA,6BAAA,SAAA,gBAAA,SAAAsqC,EAAAsB,GAEA,GAMAC,IAOAC,QAAA,WACA,MAAA,SAKAC,OAIAC,sBAAA,wBAIAC,qBAAA,wBAKAC,QAIAC,mBAAA,oBAKAC,mBAAA,oBAIAC,iBAAA,kBAIAC,iBAAA,iBAIAC,oBAAA,oBAIAC,sBAAA,sBAIAC,4BAAA,2BAIAC,wBAAA,wBAIAC,0BAAA,0BAIAC,6BAAA,4BAIAC,wBAAA,uBAIAC,uBAAA,sBAIAC,eAAA,iBAQAC,gBAIAC,gCAAA,gCAGAC,SAAA,SAAAC,EAAAC,EAAAC,KAQA,OAFA/C,GAAAh8B,OAAAu9B,EAAA,GAAAD,IAEAC,IAMAyB,UAAAC,mBACA/sC,KAAA,GACAsrC,QAAA,QACA0B,YAAA,YAEAC,WAAA,SAAAC,EAAA5B,GAGA,QAAAA,GAAA,QAAAA,KAIA,qBAAA4B,IAIA,mBAAAA,GAIA,iBAAAA,IAIA,iBAAAA,IAIA,oBAAAA,GAKA,oBAAAA,QC7KA,WACA,YACAC,SAAA,QAAAA,QAAAC,MAAAD,QAAAE,KACAF,QAAA,OAAAA,QAAAG,KAAAH,QAAAE,KACAF,QAAA,OAAAA,QAAAI,KAAAJ,QAAAE,KACAF,QAAA,QAAAA,QAAAjzB,MAAAizB,QAAAE,QAEA7tC,OAAA,eAAA,cCEA,SAAA4qB,EAAA5kB,GAEA,kBAAAhG,SAAAA,OAAA6F,IAEA7F,OAAA,WAAAgG,GACA,gBAAApB,SAIAE,OAAAF,QAAAoB,IAGA4kB,EAAAojB,cAAAhoC,KAEAI,KAAA,WACA,YAEA,IA+KA6nC,GA/KAC,EAAAC,SAAA7tC,KAAAwpC,KAAAqE,SAAAtrC,OACAurC,EAAAD,SAAA7tC,KAAAwpC,KAAAqE,SAAA7tC,MACAwV,EAAA4G,MAAA5G,QACA4J,EAAAzb,OAAAyb,KAOA2uB,EAAA,SAAAn2B,GACA,IAEA,MADAA,MACA,EACA,MAAArT,GACA,OAAA,IAGAypC,EAAA,SAAAp2B,GACA,IACA,MAAAA,KACA,MAAArT,GACA,OAAA,IAIA0pC,EArBA,SAAAr2B,GACA,MAAA,YACA,OAAAg2B,EAAAh2B,EAAA9R,KAAA1D,aAmBA2rC,GAOAG,IAAAvqC,OAAA6sB,gBANA,WAEA,OAAAud,EAAA,WACApqC,OAAA6sB,kBAAA,KAAAnmB,IAAA,oBAIA8jC,EAAA,QAAA,aAAAjuC,KAEAkuC,EAAAP,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAAyqC,SACAC,EAAAT,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAA2qC,QACAC,EAAAX,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAAgD,QACA6nC,EAAAZ,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAA8qC,MAEAle,EAAA,SAAAtpB,EAAAhH,EAAAyC,EAAAgsC,IACAA,GAAAzuC,IAAAgH,KACAgnC,EACAvqC,OAAA6sB,eAAAtpB,EAAAhH,GACAwwB,cAAA,EACAke,YAAA,EACAne,UAAA,EACA9tB,MAAAA,IAGAuE,EAAAhH,GAAAyC,IAMAksC,EAAA,SAAA3nC,EAAAhG,EAAA4tC,GACAV,EAAAhvB,EAAAle,GAAA,SAAAhB,GACA,GAAAqkC,GAAArjC,EAAAhB,EACAswB,GAAAtpB,EAAAhH,EAAAqkC,IAAAuK,MAIAC,EAAAlB,SAAA7tC,KAAAwpC,KAAA7lC,OAAAC,UAAAiX,UACAm0B,EAAA,kBAAA,MAAA,SAAAC,GAEA,MAAA,kBAAAA,IAAA,sBAAAF,EAAAE,IACA,SAAAA,GAAA,MAAA,kBAAAA,IAEAC,GACA7Q,OAAA,SAAAn3B,EAAAhH,EAAAm+B,GACA,IAAA6P,EACA,KAAA,IAAA1D,WAAA,mCAEA7mC,QAAA6sB,eAAAtpB,EAAAhH,GACAwwB,cAAA,EACAke,YAAA,EACAvkC,IAAAg0B,KAGAnnB,MAAA,SAAAi4B,EAAApnC,EAAAqnC,GACA,IAAAlB,EACA,KAAA,IAAA1D,WAAA,mCAEA,IAAA6E,GAAA1rC,OAAA2rC,yBAAAH,EAAApnC,EACApE,QAAA6sB,eAAA4e,EAAArnC,GACA2oB,aAAA2e,EAAA3e,aACAke,WAAAS,EAAAT,WACAvkC,IAAA,WAAA,MAAA8kC,GAAApnC,IACAQ,IAAA,SAAA5F,GAAAwsC,EAAApnC,GAAApF,MAGA4sC,SAAA,SAAAroC,EAAAsoC,EAAAC,GACA,GAAAvB,EAAA,CACA,GAAAwB,GAAA/rC,OAAA2rC,yBAAApoC,EAAAsoC,EACAE,GAAA/sC,MAAA8sC,EACA9rC,OAAA6sB,eAAAtpB,EAAAsoC,EAAAE,OAEAxoC,GAAAsoC,GAAAC,GAGAE,mBAAA,SAAAzoC,EAAAsoC,EAAAE,GACAxB,EACAvqC,OAAA6sB,eAAAtpB,EAAAsoC,EAAAE,GACA,SAAAA,KACAxoC,EAAAsoC,GAAAE,EAAA/sC,QAGAitC,iBAAA,SAAAl3B,EAAA8Y,GACAA,GAAAwd,EAAAxd,EAAA3W,WACA2V,EAAA9X,EAAA,WAAA8Y,EAAA3W,SAAA2uB,KAAAhY,IAAA,KAOAmZ,EAAAhnC,OAAAgnC,QAAA,SAAA/mC,EAAA+R,GACA,GAAAk6B,GAAA,YACAA,GAAAjsC,UAAAA,CACA,IAAAsD,GAAA,GAAA2oC,EAMA,YALA,KAAAl6B,GACAyJ,EAAAzJ,GAAA04B,QAAA,SAAAtmC,GACAmnC,EAAAS,mBAAAzoC,EAAAa,EAAA4N,EAAA5N,MAGAb,GAGA4oC,EAAA,SAAAC,EAAA7rC,GACA,QAAAP,OAAAqsC,gBACAhC,EAAA,WACA,GAAAiC,GAAA,QAAAC,GAAA9yB,GACA,GAAAktB,GAAA,GAAAyF,GAAA3yB,EAEA,OADAzZ,QAAAqsC,eAAA1F,EAAA4F,EAAAtsC,WACA0mC,EAMA,OAJA3mC,QAAAqsC,eAAAC,EAAAF,GACAE,EAAArsC,UAAA+mC,EAAAoF,EAAAnsC,WACAyX,aAAA1Y,MAAAstC,KAEA/rC,EAAA+rC,MAeAE,EAXA,WAKA,GAAA,mBAAAphC,MAAA,MAAAA;uCACA,IAAA,mBAAAlJ,QAAA,MAAAA,OACA,IAAA,mBAAAJ,QAAA,MAAAA,OACA,MAAA,IAAAxC,OAAA,qCAIAmtC,EAAAD,EAAAxV,SACA0V,EAAAxC,SAAA7tC,KAAAwpC,KAAAljB,OAAA1iB,UAAAP,SACAitC,EAAAzC,SAAAtrC,MAAAinC,KAAAptB,MAAAxY,UAAAP,SACAktC,EAAA1C,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAAhC,QAEA4uC,EAAA3C,SAAA7tC,KAAAwpC,KAAAljB,OAAA1iB,UAAAjC,OACA8uC,EAAA5C,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAAvB,MACAquC,EAAA7C,SAAAtrC,MAAAinC,KAAAptB,MAAAxY,UAAAvB,MACAsuC,EAAA9C,SAAA7tC,KAAAwpC,KAAAptB,MAAAxY,UAAAyV,OACAu3B,EAAAh/B,KAAAC,IACAg/B,EAAAj/B,KAAAk/B,IACAC,EAAAn/B,KAAAo/B,MACAC,EAAAr/B,KAAAs/B,IACAC,EAAAv/B,KAAAw/B,IACAC,EAAAz/B,KAAA27B,IACA+D,EAAA1/B,KAAA2/B,KACAC,EAAA3D,SAAA7tC,KAAAwpC,KAAA7lC,OAAAC,UAAAC,gBAEAsY,EAAA,aAEAs1B,EAAAtB,EAAAuB,IACAC,EAAAF,GAAAA,EAAA7tC,UAAA,OACAguC,EAAAH,GAAAA,EAAA7tC,UAAAyG,IACAwnC,EAAAJ,GAAAA,EAAA7tC,UAAAomB,IACA8nB,EAAAL,GAAAA,EAAA7tC,UAAA2E,IAEA+U,EAAA6yB,EAAA7yB,WACAy0B,EAAAz0B,EAAA00B,SAAA,YAEAC,EAAAC,OAAAzd,OAAA,SAAA9xB,GAMA,MAAAA,KAAAA,GAEAwvC,EAAAD,OAAAvX,UAAA,SAAAh4B,GACA,MAAA,gBAAAA,IAAAytC,EAAAztC,IAEAyvC,EAAApD,EAAAp9B,KAAAygC,MAAAzgC,KAAAygC,KAAA,SAAA1vC,GACA,GAAA2vC,GAAAJ,OAAAvvC,EACA,OAAA,KAAA2vC,EAAAA,EACAL,EAAAK,GAAAA,EACAA,EAAA,GAAA,EAAA,GAKAC,EAAA,SAAA5vC,GACA,MAAA,uBAAAosC,EAAApsC,IAEA6vC,EAAA,SAAA7vC,GACA,MAAA,QAAAA,GACA,gBAAAA,IACA,gBAAAA,GAAAtB,QACAsB,EAAAtB,QAAA,GACA,mBAAA0tC,EAAApsC,IACA,sBAAAosC,EAAApsC,EAAA8vC,SAEAC,EAAAH,EAAAnwC,WAAAmwC,EAAAC,EAEAG,GACAC,UAAA,SAAA3D,GAAA,MAAA,QAAAA,GAAA,kBAAAA,IAAA,gBAAAA,IACAnyB,OAAA,SAAAmyB,GAAA,MAAA,oBAAAF,EAAAE,IACA4D,MAAA,SAAA5D,GAAA,MAAA,oBAAAF,EAAAE,IACA6D,OAAA,SAAA7D,GACA,MAAA,kBAAAkB,GAAA7yB,QAAA,gBAAA2xB,KAIA8D,EAAA,SAAA7rC,EAAAsoC,EAAAwD,GACA,GAAApe,GAAA1tB,EAAAsoC,EACAhf,GAAAtpB,EAAAsoC,EAAAwD,GAAA,GACA9D,EAAAU,iBAAA1oC,EAAAsoC,GAAA5a,IAIAqe,GAAA,kBAAA31B,IAAA,kBAAAA,GAAA,KAAAq1B,EAAAG,OAAAx1B,KAOA41B,GAAAP,EAAAG,OAAAx1B,EAAAC,UAAAD,EAAAC,SAAA,qBAIA4yB,GAAAgD,KAAA,mBAAA,GAAAhD,GAAAgD,KAAA,gBACAD,GAAA,cAIA/C,EAAAiD,SACA5iB,EAAA2f,EAAA,cAAA,EAEA,IAAAiD,IAAAjD,EAAAiD,QAEAC,GAAA/sB,OAGAgtB,GAAA,mBAAA3tC,WAAAA,SAAAA,SAAAuV,IAAA,KAEAq4B,GAAA,MAAAD,GAAA,SAAArE,GAEA,MAAA,OAAAA,GACA,SAAAA,GAEA,MAAA,OAAAA,GAAAA,IAAAqE,IAGAE,IAEAC,KAAA,SAAAC,EAAAC,GACA,GAAAzxC,GAAAE,UAAAf,OAAA,EAAAe,UAAA,KACA,KAAAoxC,GAAAI,WAAAF,GACA,KAAA,IAAAlJ,WAAAkJ,EAAA,qBAEA,OAAA9F,GAAA8F,EAAAC,EAAAzxC,IAGA2xC,uBAAA,SAAA5E,EAAA6E,GACA,GAAAP,GAAAtE,GACA,KAAA,IAAAzE,WAAAsJ,GAAA,yBAAA7E,EAEA,OAAAA,IAYA8E,aAAA,SAAA9E,GACA,WAAA,KAAAA,GAAA,OAAAA,IAAA,IAAAA,IAAA,IAAAA,IAGA,kBAAAA,IAAA,gBAAAA,IAAAA,IAAAqE,KAGAU,SAAA,SAAA1J,EAAAwJ,GACA,MAAAnwC,QAAA6vC,GAAAK,uBAAAvJ,EAAAwJ,KAGAF,WAAA5E,EAEAiF,cAAA,SAAAhF,GAEA,MAAAuE,IAAAI,WAAA3E,IAGAiF,QAAA,SAAAjF,GACA,MAAAuE,IAAAW,SAAAlF,IAAA,GAGAmF,SAAA,SAAAnF,GACA,MAAAuE,IAAAW,SAAAlF,KAAA,GAGAkF,SAAA,SAAAxxC,GACA,GAAA,oBAAAosC,EAAApsC,GACA,KAAA,IAAA6nC,WAAA,4CAEA,QAAA7nC,GAGA0xC,UAAA,SAAA1xC,GACA,GAAA2vC,GAAAkB,GAAAW,SAAAxxC,EACA,OAAAsvC,GAAAK,GAAA,EACA,IAAAA,GAAAH,EAAAG,IACAA,EAAA,EAAA,GAAA,GAAAvB,EAAAE,EAAAqB,IADAA,GAIAgC,SAAA,SAAA3xC,GACA,GAAAgZ,GAAA63B,GAAAa,UAAA1xC,EACA,OAAAgZ,IAAA,EAAA,EACAA,EAAAu2B,OAAAqC,iBAAArC,OAAAqC,iBACA54B,GAGA64B,UAAA,SAAA10B,EAAAC,GACA,MAAAD,KAAAC,EAEA,IAAAD,GAAA,EAAAA,GAAA,EAAAC,EAGAkyB,EAAAnyB,IAAAmyB,EAAAlyB,IAGA00B,cAAA,SAAA30B,EAAAC,GAEA,MAAAD,KAAAC,GAAAkyB,EAAAnyB,IAAAmyB,EAAAlyB,IAGA20B,WAAA,SAAApK,GACA,MAAAkJ,IAAAO,aAAAzJ,SAAA,KAAAA,EAAA4I,KAAAR,EAAApI,KAGAqK,YAAA,SAAArK,GACA,GAAAoI,EAAApI,GAEA,MAAA,IAAAqD,GAAArD,EAAA,QAEA,IAAAsK,GAAApB,GAAAqB,UAAAvK,EAAA4I,GACA,KAAAM,GAAAI,WAAAgB,GAEA,KAAA,IAAApK,WAAA,2BAEA,IAAAsK,GAAAtB,GAAAC,KAAAmB,EAAAtK,EACA,KAAAkJ,GAAAO,aAAAe,GACA,KAAA,IAAAtK,WAAA,eAEA,OAAAsK,IAGAD,UAAA,SAAAvK,EAAAjmC,GACA,GAAAuT,GAAA47B,GAAAQ,SAAA1J,GAAAjmC,EACA,KAAAkvC,GAAA37B,GAAA,CAGA,IAAA47B,GAAAI,WAAAh8B,GACA,KAAA,IAAA4yB,WAAA,wBAAAnmC,EAEA,OAAAuT,KAGAm9B,iBAAA,SAAAC,GACA,QAAAA,EAAA7/B,MAGA8/B,cAAA,SAAA13B,EAAA23B,GACA,GAAAC,GAAA3B,GAAAqB,UAAAt3B,EAAA,SACA,QAAA,KAAA43B,EAAA,CAGA,GAAAC,GAAAC,CACA,KACAD,EAAA5B,GAAAC,KAAA0B,EAAA53B,GACA,MAAAhZ,GACA8wC,EAAA9wC,EAEA,IAAA2wC,EAAA,CAGA,GAAAG,EACA,KAAAA,EAEA,KAAA7B,GAAAO,aAAAqB,GACA,KAAA,IAAA5K,WAAA,sDAIA8K,aAAA,SAAAR,GACA,GAAAl/B,GAAAxT,UAAAf,OAAA,EAAAyzC,EAAA9nB,KAAA5qB,UAAA,IAAA0yC,EAAA9nB,MACA,KAAAwmB,GAAAO,aAAAn+B,GACA,KAAA,IAAA40B,WAAA,eAEA,OAAA50B,IAGA2/B,aAAA,SAAAT,GACA,GAAAl/B,GAAA49B,GAAA8B,aAAAR,EAEA,QADAtB,GAAAuB,iBAAAn/B,IACAA,GAGA4/B,UAAA,SAAAzF,EAAA7tC,EAAAuzC,EAAAC,GACA,GAAAh9B,OAAA,KAAA+8B,EAAA1F,EAAA0F,CAEA,KAAAC,GAAAtC,GAAAuC,UAEA,MAAAvC,IAAAuC,UAAA5F,EAAA7tC,EAAAwW,EAOA,IAAAk9B,GAAAl9B,EAAA9U,SACA4vC,IAAAO,aAAA6B,KACAA,EAAAjyC,OAAAC,UAEA,IAAA/D,GAAA8qC,EAAAiL,GAEAhgC,EAAA49B,GAAAC,KAAA1D,EAAAlwC,EAAAqC,EACA,OAAAsxC,IAAAO,aAAAn+B,GAAAA,EAAA/V,GAGAg2C,mBAAA,SAAAC,EAAAC,GACA,GAAAhG,GAAA+F,EAAAz6B,WACA,QAAA,KAAA00B,EACA,MAAAgG,EAEA,KAAAvC,GAAAO,aAAAhE,GACA,KAAA,IAAAvF,WAAA,kBAEA,IAAAwL,GAAAjG,EAAAgC,EACA,IAAAwB,GAAAyC,GACA,MAAAD,EAEA,KAAAvC,GAAAS,cAAA+B,GACA,KAAA,IAAAxL,WAAA,gBAEA,OAAAwL,IAGAC,WAAA,SAAAn5B,EAAAnT,EAAAusC,EAAAvzC,GACA,GAAAqzC,GAAAxC,GAAA2C,SAAAr5B,GACAs5B,EAAA,IAAAzsC,CACA,IAAA,KAAAusC,EAAA,CAGAE,GAAA,IAAAF,EAAA,KAFA1C,GAAA2C,SAAAxzC,GACAlB,QAAA,KAAA,UACA,IAIA,MAFA20C,GAAA,IACAJ,EACA,KAAArsC,EAAA,KAGA0sC,SAAA,SAAAh2B,GACA,IAAAmzB,GAAAO,aAAA1zB,GACA,OAAA,CAEA,IAAAi2B,GAAAj2B,EAAA/C,EAAAlW,MACA,YAAA,KAAAkvC,IACAA,EAEA3D,EAAAE,MAAAxyB,IAGA81B,SAAA,SAAAr5B,GACA,MAAAu2B,IAAAv2B,IAKA,IAAAoxB,GAAA+E,GAAA,CACA,GAAAsD,IAAA,SAAAr2C,GACA,GAAAyyC,EAAAG,OAAAx1B,EAAApd,IACA,MAAAod,GAAApd,EAGA,IAAAs2C,GAAAl5B,EAAA,IAAA,UAAApd,EAOA,OANAyD,QAAA6sB,eAAAlT,EAAApd,GACAwwB,cAAA,EACAke,YAAA,EACAne,UAAA,EACA9tB,MAAA6zC,IAEAA,EAEA,KAAA7D,EAAAG,OAAAx1B,EAAAm5B,QAAA,CACA,GAAAC,IAAAH,GAAA,UACAI,GAAArwB,OAAA1iB,UAAA6yC,MACAjmB,GAAAxL,OAAAphB,UAAA8yC,GAAA,SAAA55B,GACA,MAAA02B,IAAAC,KAAAkD,GAAA75B,GAAAhX,QAEA,IAAA8wC,IAAA,SAAAC,GACA,GAAAf,GAAAtC,GAAAK,uBAAA/tC,KACA,KAAAytC,GAAAsD,GAAA,CACA,GAAAC,GAAAtD,GAAAqB,UAAAgC,EAAAH,GACA,QAAA,KAAAI,EACA,MAAAtD,IAAAC,KAAAqD,EAAAD,GAAAf,IAGA,MAAAtC,IAAAC,KAAAkD,GAAAb,GAAAtC,GAAA2C,SAAAU,KAEA9D,GAAAzsB,OAAA1iB,UAAA,SAAAgzC,IAEA,IAAAjE,EAAAG,OAAAx1B,EAAA7b,SAAA,CACA,GAAAs1C,IAAAR,GAAA,WACAS,GAAA1wB,OAAA1iB,UAAAnC,OACA+uB,GAAAxL,OAAAphB,UAAAmzC,GAAA,SAAAj6B,EAAAm6B,GACA,MAAAzD,IAAAC,KAAAuD,GAAAl6B,GAAAhX,KAAAmxC,KAEA,IAAAC,IAAA,SAAAC,EAAAF,GACA,GAAAnB,GAAAtC,GAAAK,uBAAA/tC,KACA,KAAAytC,GAAA4D,GAAA,CACA,GAAAC,GAAA5D,GAAAqB,UAAAsC,EAAAJ,GACA,QAAA,KAAAK,EACA,MAAA5D,IAAAC,KAAA2D,EAAAD,GAAArB,EAAAmB,IAGA,MAAAzD,IAAAC,KAAAuD,GAAAlB,GAAAtC,GAAA2C,SAAAgB,GAAAF,IAEAlE,GAAAzsB,OAAA1iB,UAAA,UAAAszC,IAEA,IAAAvE,EAAAG,OAAAx1B,EAAArc,OAAA,CACA,GAAAo2C,IAAAd,GAAA,SACAe,GAAAhxB,OAAA1iB,UAAA3C,KACAuvB,GAAAxL,OAAAphB,UAAAyzC,GAAA,SAAAv6B,EAAAy6B,GACA,MAAA/D,IAAAC,KAAA6D,GAAAx6B,GAAAhX,KAAAyxC,KAEA,IAAAC,IAAA,SAAAC,EAAAF,GACA,GAAAzB,GAAAtC,GAAAK,uBAAA/tC,KACA,KAAAytC,GAAAkE,GAAA,CACA,GAAAC,GAAAlE,GAAAqB,UAAA4C,EAAAJ,GACA,QAAA,KAAAK,EACA,MAAAlE,IAAAC,KAAAiE,EAAAD,GAAA3B,EAAAyB,IAGA,MAAA/D,IAAAC,KAAA6D,GAAAxB,GAAAtC,GAAA2C,SAAAsB,GAAAF,IAEAxE,GAAAzsB,OAAA1iB,UAAA,QAAA4zC,IAEA,GAAAG,IAAAhF,EAAAG,OAAAx1B,EAAAlW,OACAwwC,GAAAD,IAAA,WAGA,GAAArN,KAEA,OADAA,GAAAhtB,EAAAlW,OAAA,WAAA,MAAA,KACA,KAAA,IAAAA,MAAAkjC,KAEA,KAAAqN,IAAAC,GAAA,CACA,GAAAC,IAAAtB,GAAA,SAEAuB,GAAAxxB,OAAA1iB,UAAAwD,KACAopB,GAAAxL,OAAAphB,UAAAi0C,GAAA,SAAA/6B,GACA,MAAA02B,IAAAC,KAAAqE,GAAAh7B,GAAAhX,QAGA,IAAAiyC,IAAA,SAAAlB,GACA,GAAAf,GAAAtC,GAAAK,uBAAA/tC,KACA,KAAAytC,GAAAsD,GAAA,CACA,GAAAn2B,GAAA8yB,GAAAqB,UAAAgC,EAAAgB,GACA,QAAA,KAAAn3B,EACA,MAAA8yB,IAAAC,KAAA/yB,EAAAm2B,GAAAf,IAGA,MAAAtC,IAAAC,KAAAqE,GAAAhC,GAAAtC,GAAA2C,SAAAU,KAEA9D,GAAAzsB,OAAA1iB,UAAA,QAAAm0C,KAIA,GAAAC,IAAA,SAAApjB,EAAAoe,EAAAiF,GACA/I,EAAAU,iBAAAoD,EAAApe,GACAjxB,OAAAqsC,gBAEArsC,OAAAqsC,eAAApb,EAAAoe,GAEA9E,EACAE,EAAAzqC,OAAAu0C,oBAAAtjB,GAAA,SAAA7sB,GACAA,IAAAoU,IAAA87B,EAAAlwC,IACAmnC,EAAAh4B,MAAA0d,EAAA7sB,EAAAirC,KAGA5E,EAAAzqC,OAAAyb,KAAAwV,GAAA,SAAA7sB,GACAA,IAAAoU,IAAA87B,EAAAlwC,KACAirC,EAAAjrC,GAAA6sB,EAAA7sB,MAGAirC,EAAApvC,UAAAgxB,EAAAhxB,UACAsrC,EAAAK,SAAA3a,EAAAhxB,UAAA,cAAAovC,IAGAmF,GAAA,WAAA,MAAAryC,OACAsyC,GAAA,SAAArI,GACA7B,IAAAsD,EAAAzB,EAAAgC,IACA7C,EAAA7Q,OAAA0R,EAAAgC,EAAAoG,KAIAE,GAAA,SAAAz0C,EAAA00C,GACA,GAAAC,GAAAD,GAAA,WAAA,MAAAxyC,MACA0qB,GAAA5sB,EAAAsvC,GAAAqF,IACA30C,EAAAsvC,KAAAP,EAAAG,OAAAI,MAEAtvC,EAAAsvC,IAAAqF,IAIAC,GAAA,SAAAtxC,EAAAhH,EAAAyC,GACAurC,EACAvqC,OAAA6sB,eAAAtpB,EAAAhH,GACAwwB,cAAA,EACAke,YAAA,EACAne,UAAA,EACA9tB,MAAAA,IAGAuE,EAAAhH,GAAAyC,GAGA81C,GAAA,SAAAvxC,EAAAhH,EAAAyC,GAEA,GADA61C,GAAAtxC,EAAAhH,EAAAyC,IACA6wC,GAAAgB,UAAAttC,EAAAhH,GAAAyC,GACA,KAAA,IAAA6nC,WAAA,gCAIAkO,GAAA,SAAApO,EAAAqO,EAAAC,EAAAC,GAWA,IAAArF,GAAAO,aAAAzJ,GACA,KAAA,IAAAE,WAAA,+BAAAmO,EAAAz4C,KAEA,IAAA01C,GAAA+C,EAAA/0C,SACA4vC,IAAAO,aAAA6B,KACAA,EAAAgD,EAEA,IAAA/4C,GAAA8qC,EAAAiL,EACA,KAAA,GAAA11C,KAAA24C,GACA,GAAArH,EAAAqH,EAAA34C,GAAA,CACA,GAAAyC,GAAAk2C,EAAA34C,EACAswB,GAAA3wB,EAAAK,EAAAyC,GAAA,GAGA,MAAA9C,GAKA,IAAAymB,OAAAwyB,eAAA,IAAAxyB,OAAAwyB,cAAAz3C,OAAA,CACA,GAAA03C,IAAAzyB,OAAAwyB,aACA/F,GAAAzsB,OAAA,gBAAA,SAAA0yB,GACA,MAAAxF,IAAAC,KAAAsF,GAAAjzC,KAAA1D,aAIA,GAAA62C,KACAH,cAAA,SAAAE,GAGA,IAAA,GADAhsB,GADApX,KAEAhV,EAAA,EAAAS,EAAAe,UAAAf,OAAAT,EAAAS,EAAAT,IAAA,CAEA,GADAosB,EAAAklB,OAAA9vC,UAAAxB,KACA4yC,GAAAgB,UAAAxnB,EAAAwmB,GAAAa,UAAArnB,KAAAA,EAAA,GAAAA,EAAA,QACA,KAAA,IAAAksB,YAAA,sBAAAlsB,EAGAA,GAAA,MACAyjB,EAAA76B,EAAA0Q,OAAAC,aAAAyG,KAEAA,GAAA,MACAyjB,EAAA76B,EAAA0Q,OAAAC,aAAA,OAAAyG,GAAA,MACAyjB,EAAA76B,EAAA0Q,OAAAC,aAAAyG,EAAA,KAAA,SAGA,MAAApX,GAAA9T,KAAA,KAGAquB,IAAA,SAAAgpB,GACA,GAAAC,GAAA5F,GAAAQ,SAAAmF,EAAA,gBACAE,EAAA7F,GAAAQ,SAAAoF,EAAAjpB,IAAA,iBACAxU,EAAA09B,EAAAh4C,OACAi4C,EAAA9F,GAAAc,SAAA34B,EACA,IAAA29B,GAAA,EACA,MAAA,EAMA,KAHA,GAEAC,GAAAvsB,EAAAwsB,EAAAC,EAFAC,KACAC,EAAA,EAEAA,EAAAL,IACAC,EAAA/F,GAAA2C,SAAAwD,GACAH,EAAAhG,GAAA2C,SAAAkD,EAAAE,IACA9I,EAAAiJ,EAAAF,KACAG,EAAA,GAAAL,KAGAtsB,EAAA2sB,EAAA,EAAAv3C,UAAAf,OAAAe,UAAAu3C,EAAA,GAAA,GACAF,EAAAjG,GAAA2C,SAAAnpB,GACAyjB,EAAAiJ,EAAAD,GACAE,GAAA,CAEA,OAAAD,GAAA53C,KAAA,KAGAwkB,QAAA6J,KAAA,OAAA7J,OAAA6J,KAAAA,KAAA6V,EAAA,IAAAuE,EAAA,IAAAlpC,OAAA,MAEA0xC,EAAAzsB,OAAA,MAAA2yB,GAAA9oB,KAEA0e,EAAAvoB,OAAA2yB,GAIA,IAAAW,IAAA,QAAAC,GAAA9gC,EAAA+gC,GACA,GAAAA,EAAA,EAAA,MAAA,EACA,IAAAA,EAAA,EAAA,MAAAD,GAAA9gC,EAAA+gC,EAAA,GAAA/gC,CACA,IAAAghC,GAAAF,EAAA9gC,EAAA+gC,EAAA,EACA,OAAAC,GAAAA,GAIAC,IACAH,OAAA,SAAAC,GACA,GAAAG,GAAAzG,GAAA2C,SAAA3C,GAAAK,uBAAA/tC,OACAo0C,EAAA1G,GAAAa,UAAAyF,EACA,IAAAI,EAAA,GAAAA,GANAC,EAAAA,EAOA,KAAA,IAAAjB,YAAA,+EAEA,OAAAU,IAAAK,EAAAC,IAGAE,WAAA,SAAAC,GACA,GAAArE,GAAAxC,GAAA2C,SAAA3C,GAAAK,uBAAA/tC,MACA,IAAA0tC,GAAA6C,SAAAgE,GACA,KAAA,IAAA7P,WAAA,+CAEA,IACAhR,GADA8gB,EAAA9G,GAAA2C,SAAAkE,EAEAj4C,WAAAf,OAAA,IACAm4B,EAAAp3B,UAAA,GAEA,IAAAmH,GAAAqnC,EAAA4C,GAAAa,UAAA7a,GAAA,EACA,OAAAgX,GAAAwF,EAAAzsC,EAAAA,EAAA+wC,EAAAj5C,UAAAi5C,GAGAC,SAAA,SAAAF,GACA,GAAArE,GAAAxC,GAAA2C,SAAA3C,GAAAK,uBAAA/tC,MACA,IAAA0tC,GAAA6C,SAAAgE,GACA,KAAA,IAAA7P,WAAA,6CAEA,IAEAgQ,GAFAF,EAAA9G,GAAA2C,SAAAkE,GACA1+B,EAAAq6B,EAAA30C,MAEAe,WAAAf,OAAA,IACAm5C,EAAAp4C,UAAA,GAEA,IAAA+qB,OAAA,KAAAqtB,EAAA7+B,EAAA63B,GAAAa,UAAAmG,GACAhxC,EAAAqnC,EAAAD,EAAAzjB,EAAA,GAAAxR,EACA,OAAA60B,GAAAwF,EAAAxsC,EAAA8wC,EAAAj5C,OAAAmI,KAAA8wC,GAGAG,SAAA,SAAAJ,GACA,GAAA7G,GAAA6C,SAAAgE,GACA,KAAA,IAAA7P,WAAA,sCAEA,IACAhR,GADA8gB,EAAA9G,GAAA2C,SAAAkE,EAMA,OAJAj4C,WAAAf,OAAA,IACAm4B,EAAAp3B,UAAA,KAGA,IAAAiuC,EAAAvqC,KAAAw0C,EAAA9gB,IAGAkhB,YAAA,SAAAvtB,GACA,GAAA8sB,GAAAzG,GAAA2C,SAAA3C,GAAAK,uBAAA/tC,OACA0zB,EAAAga,GAAAa,UAAAlnB,GACA9rB,EAAA44C,EAAA54C,MACA,IAAAm4B,GAAA,GAAAA,EAAAn4B,EAAA,CACA,GAAAkN,GAAA0rC,EAAAU,WAAAnhB,GACAohB,EAAAphB,EAAA,IAAAn4B,CACA,IAAAkN,EAAA,OAAAA,EAAA,OAAAqsC,EAAA,MAAArsC,EACA,IAAA0O,GAAAg9B,EAAAU,WAAAnhB,EAAA,EACA,OAAAvc,GAAA,OAAAA,EAAA,MAAA1O,EACA,MAAAA,EAAA,QAAA0O,EAAA,OAAA,QAQA,IAJAqJ,OAAA1iB,UAAA62C,WAAA,IAAA,IAAAA,SAAA,IAAAN,EAAAA,IACApH,EAAAzsB,OAAA1iB,UAAA,WAAAo2C,GAAAS,UAGAn0B,OAAA1iB,UAAAw2C,YAAA9zB,OAAA1iB,UAAA22C,SAAA,CACA,GAAAM,IAAA9M,EAAA,WAEA,MAAAqM,WAAA,OAEAU,GAAA9M,EAAA,WACA,OAAA,IAAA,MAAAoM,WAAA,IAAAD,EAAAA,IAEAU,KAAAC,KAEA/H,EAAAzsB,OAAA1iB,UAAA,aAAAo2C,GAAAI,YACArH,EAAAzsB,OAAA1iB,UAAA,WAAAo2C,GAAAO,WAGA,GAAAtH,GAAA,CACAjF,EAAA,WACA,GAAA+M,GAAA,GAEA,OADAA,GAAAz9B,EAAAlW,QAAA,EACA,MAAAgzC,WAAAW,MAGAhI,EAAAzsB,OAAA1iB,UAAA,aAAAo2C,GAAAI,WAEApM,GAAA,WACA,GAAA+M,GAAA,GAEA,OADAA,GAAAz9B,EAAAlW,QAAA,EACA,MAAAmzC,SAAAQ,MAGAhI,EAAAzsB,OAAA1iB,UAAA,WAAAo2C,GAAAO,SAEAvM,GAAA,WACA,GAAA+M,GAAA,GAEA,OADAA,GAAAz9B,EAAAlW,QAAA,EACA,MAAAqzC,SAAAM,MAGAhI,EAAAzsB,OAAA1iB,UAAA,WAAAo2C,GAAAS,UAIA5L,EAAAvoB,OAAA1iB,UAAAo2C,GAIA,IAAAgB,KACA,qBACA,mBACA,gBACAl5C,KAAA,IACAm5C,GAAA,GAAAj2B,QAAA,MAAAg2B,GAAA,SAAAA,GAAA,OAAA,KACAE,GAAA,WACA,MAAA1H,IAAA2C,SAAA3C,GAAAK,uBAAA/tC,OAAArE,QAAAw5C,GAAA,KAEAE,IAAA,IAAA,IAAA,KAAAr5C,KAAA,IACAs5C,GAAA,GAAAp2B,QAAA,IAAAm2B,GAAA,IAAA,KACAE,GAAA,qBACAC,GAAAH,GAAAx+B,OAAAtb,SAAA85C,GAAA95C,MACAmvB,GAAAlK,OAAA1iB,UAAA,OAAAs3C,GAAAI,GAKA,IAAAC,IAAA,SAAAtM,GACA,OAAAtsC,MAAAssC,EAAA95B,KAAA,IAAA/S,UAAAf,SAIAm6C,GAAA,SAAAziC,GACAy6B,GAAAK,uBAAA96B,GACAjT,KAAA21C,GAAAjI,GAAA2C,SAAAp9B,GACAjT,KAAA41C,GAAA,EAEAF,IAAA53C,UAAAopB,KAAA,WACA,GAAAjU,GAAAjT,KAAA21C,GACA76C,EAAAkF,KAAA41C,EACA,QAAA,KAAA3iC,GAAAnY,GAAAmY,EAAA1X,OAEA,MADAyE,MAAA21C,OAAA,GACAF,IAEA,IACAt+B,GAAAtB,EADApN,EAAAwK,EAAA4hC,WAAA/5C,EASA,OAPA2N,GAAA,OAAAA,EAAA,OAAA3N,EAAA,IAAAmY,EAAA1X,OACAsa,EAAA,GAEAsB,EAAAlE,EAAA4hC,WAAA/5C,EAAA,GACA+a,EAAAsB,EAAA,OAAAA,EAAA,MAAA,EAAA,GAEAnX,KAAA41C,GAAA96C,EAAA+a,EACA4/B,GAAAxiC,EAAA4iC,OAAA/6C,EAAA+a,KAEA08B,GAAAmD,GAAA53C,WACAy0C,GAAA/xB,OAAA1iB,UAAA,WACA,MAAA,IAAA43C,IAAA11C,OAGA,IAAA81C,KACAC,KAAA,SAAAC,GACA,GACAC,GADAhM,EAAAjqC,IAEA1D,WAAAf,OAAA,IACA06C,EAAA35C,UAAA,GAEA,IAAA45C,GAAAC,CACA,QAAA,KAAAF,EACAC,GAAA,MACA,CACA,IAAAxI,GAAAI,WAAAmI,GACA,KAAA,IAAAvR,WAAA,oEAEApoC,WAAAf,OAAA,IACA46C,EAAA75C,UAAA,IAEA45C,GAAA,EAKA,GAEA36C,GAAAuU,EAAAhV,EAFAs7C,MAAA,MAAAxJ,EAAAoJ,IAAAtI,GAAAqB,UAAAiH,EAAA5I,IAGA,IAAAgJ,EAAA,CACAtmC,EAAA49B,GAAAS,cAAAlE,GAAApsC,OAAA,GAAAosC,MACA,IACA/iB,GAAAmvB,EADA5+B,EAAAi2B,GAAAmB,YAAAmH,EAIA,KADAl7C,EAAA,IACA,CAEA,IAAA,KADAosB,EAAAwmB,GAAA+B,aAAAh4B,IAEA,KAEA4+B,GAAAnvB,EAAArqB,KACA,KACAq5C,IACAG,MAAA,KAAAF,EAAAF,EAAAI,EAAAv7C,GAAAktC,EAAAiO,EAAAE,EAAAE,EAAAv7C,IAEAgV,EAAAhV,GAAAu7C,EACA,MAAA53C,GAEA,KADAivC,IAAAyB,cAAA13B,GAAA,GACAhZ,EAEA3D,GAAA,EAEAS,EAAAT,MACA,CACA,GAAAw7C,GAAA5I,GAAAQ,SAAA8H,EACAz6C,GAAAmyC,GAAAc,SAAA8H,EAAA/6C,QACAuU,EAAA49B,GAAAS,cAAAlE,GAAApsC,OAAA,GAAAosC,GAAA1uC,IAAA,GAAA+a,OAAA/a,EACA,IAAAsB,EACA,KAAA/B,EAAA,EAAAA,EAAAS,IAAAT,EACA+B,EAAAy5C,EAAAx7C,GACAo7C,IACAr5C,MAAA,KAAAs5C,EAAAF,EAAAp5C,EAAA/B,GAAAktC,EAAAiO,EAAAE,EAAAt5C,EAAA/B,IAEA63C,GAAA7iC,EAAAhV,EAAA+B,GAKA,MADAiT,GAAAvU,OAAAA,EACAuU,GAGAymC,GAAA,WAIA,IAAA,GAHA1gC,GAAAvZ,UAAAf,OACA0uC,EAAAjqC,KACAw2C,EAAA9mC,EAAAu6B,KAAAyD,GAAAI,WAAA7D,GAAA,GAAA3zB,OAAAT,GAAA63B,GAAAgC,UAAAzF,GAAAp0B,IACA4gC,EAAA,EAAAA,EAAA5gC,IAAA4gC,EACA9D,GAAA6D,EAAAC,EAAAn6C,UAAAm6C,GAGA,OADAD,GAAAj7C,OAAAsa,EACA2gC,GAGAzN,GAAAzyB,MAAAw/B,IACAxD,GAAAh8B,OAIAuxB,EAAA,SAAA6O,EAAAC,GACA32C,KAAAlF,EAAA,EACAkF,KAAA02C,MAAAA,EACA12C,KAAA22C,KAAAA,GAGA5N,EAAAlB,EAAA/pC,WACAopB,KAAA,WACA,GAAApsB,GAAAkF,KAAAlF,EACA47C,EAAA12C,KAAA02C,KACA,MAAA12C,eAAA6nC,IACA,KAAA,IAAAnD,WAAA,uBAEA,QAAA,KAAAgS,EAEA,IADA,GAAA7gC,GAAA63B,GAAAc,SAAAkI,EAAAn7C,QACAT,EAAA+a,EAAA/a,IAAA,CACA,GACA87C,GADAD,EAAA32C,KAAA22C,IAUA,OARA,QAAAA,EACAC,EAAA97C,EACA,UAAA67C,EACAC,EAAAF,EAAA57C,GACA,UAAA67C,IACAC,GAAA97C,EAAA47C,EAAA57C,KAEAkF,KAAAlF,EAAAA,EAAA,EACA26C,GAAAmB,GAIA,MADA52C,MAAA02C,UAAA,GACAjB,QAGAlD,GAAA1K,EAAA/pC,WAgCAwY,MAAAigC,KAAAT,GAAAS,IAAA,WAEA,GAAAM,GAAA,SAAAhhC,GAAA7V,KAAAzE,OAAAsa,EACAghC,GAAA/4C,YACA,IAAAg5C,GAAAxgC,MAAAigC,GAAA95C,MAAAo6C,GAAA,EAAA,GACA,OAAAC,aAAAD,IAAA,IAAAC,EAAAv7C,WAGA0xC,EAAA32B,MAAA,KAAAw/B,GAAAS,GAGA,IAAAQ,KACAC,WAAA,SAAApkC,EAAAnP,GACA,GAMAC,GANA8gC,EAAAkJ,GAAAQ,SAAAluC,MACA6V,EAAA63B,GAAAc,SAAAhK,EAAAjpC,QACA07C,EAAAvJ,GAAAa,UAAA37B,GACAskC,EAAAxJ,GAAAa,UAAA9qC,GACA4yB,EAAA4gB,EAAA,EAAAnM,EAAAj1B,EAAAohC,EAAA,GAAAlM,EAAAkM,EAAAphC,GACAkgC,EAAAmB,EAAA,EAAApM,EAAAj1B,EAAAqhC,EAAA,GAAAnM,EAAAmM,EAAArhC,EAEAvZ,WAAAf,OAAA,IACAmI,EAAApH,UAAA,GAEA,IAAA66C,OAAA,KAAAzzC,EAAAmS,EAAA63B,GAAAa,UAAA7qC,GACA0zC,EAAAD,EAAA,EAAArM,EAAAj1B,EAAAshC,EAAA,GAAApM,EAAAoM,EAAAthC,GACA0V,EAAAwf,EAAAqM,EAAArB,EAAAlgC,EAAAwgB,GACAghB,EAAA,CAMA,KALAtB,EAAA1f,GAAAA,EAAA0f,EAAAxqB,IACA8rB,GAAA,EACAtB,GAAAxqB,EAAA,EACA8K,GAAA9K,EAAA,GAEAA,EAAA,GACAwqB,IAAAvR,GACAA,EAAAnO,GAAAmO,EAAAuR,SAEAvR,GAAAnO,GAEA0f,GAAAsB,EACAhhB,GAAAghB,EACA9rB,GAAA,CAEA,OAAAiZ,IAGA8S,KAAA,SAAAz6C,GACA,GAAA4G,EACAnH,WAAAf,OAAA,IACAkI,EAAAnH,UAAA,GAEA,IAAAoH,EACApH,WAAAf,OAAA,IACAmI,EAAApH,UAAA,GAEA,IAAA0zC,GAAAtC,GAAAQ,SAAAluC,MACA6V,EAAA63B,GAAAc,SAAAwB,EAAAz0C,OACAkI,GAAAiqC,GAAAa,cAAA,KAAA9qC,EAAA,EAAAA,GACAC,EAAAgqC,GAAAa,cAAA,KAAA7qC,EAAAmS,EAAAnS,EAKA,KAAA,GAHAwzC,GAAAzzC,EAAA,EAAAqnC,EAAAj1B,EAAApS,EAAA,GAAAsnC,EAAAtnC,EAAAoS,GACAshC,EAAAzzC,EAAA,EAAAmS,EAAAnS,EAAAA,EAEA5I,EAAAo8C,EAAAp8C,EAAA+a,GAAA/a,EAAAq8C,IAAAr8C,EACAk1C,EAAAl1C,GAAA+B,CAEA,OAAAmzC,IAGApyB,KAAA,SAAA25B,GACA,GAAA54B,GAAA+uB,GAAAQ,SAAAluC,MACAzE,EAAAmyC,GAAAc,SAAA7vB,EAAApjB,OACA,KAAAmyC,GAAAI,WAAAyJ,GACA,KAAA,IAAA7S,WAAA,2CAGA,KAAA,GAAA7nC,GADA26C,EAAAl7C,UAAAf,OAAA,EAAAe,UAAA,GAAA,KACAxB,EAAA,EAAAA,EAAAS,EAAAT,IAEA,GADA+B,EAAA8hB,EAAA7jB,GACA08C,GACA,GAAAxP,EAAAuP,EAAAC,EAAA36C,EAAA/B,EAAA6jB,GACA,MAAA9hB,OAEA,IAAA06C,EAAA16C,EAAA/B,EAAA6jB,GACA,MAAA9hB,IAKA46C,UAAA,SAAAF,GACA,GAAA54B,GAAA+uB,GAAAQ,SAAAluC,MACAzE,EAAAmyC,GAAAc,SAAA7vB,EAAApjB,OACA,KAAAmyC,GAAAI,WAAAyJ,GACA,KAAA,IAAA7S,WAAA,gDAGA,KAAA,GADA8S,GAAAl7C,UAAAf,OAAA,EAAAe,UAAA,GAAA,KACAxB,EAAA,EAAAA,EAAAS,EAAAT,IACA,GAAA08C,GACA,GAAAxP,EAAAuP,EAAAC,EAAA74B,EAAA7jB,GAAAA,EAAA6jB,GACA,MAAA7jB,OAEA,IAAAy8C,EAAA54B,EAAA7jB,GAAAA,EAAA6jB,GACA,MAAA7jB,EAGA,QAAA,GAGAwe,KAAA,WACA,MAAA,IAAAuuB,GAAA7nC,KAAA,QAGA+M,OAAA,WACA,MAAA,IAAA86B,GAAA7nC,KAAA,UAGA03C,QAAA,WACA,MAAA,IAAA7P,GAAA7nC,KAAA,UAsBA,IAjBAsW,MAAAxY,UAAAwb,OAAAo0B,GAAAI,YAAA,GAAAx0B,OAAA4N,aACA5Q,OAAAxY,UAAAwb,KAEAhD,MAAAxY,UAAA45C,UAAAhK,GAAAI,YAAA,GAAA4J,UAAAxwB,aACA5Q,OAAAxY,UAAA45C,QAIAphC,MAAAxY,UAAAwb,MAAAhD,MAAAxY,UAAA45C,UAAAphC,MAAAxY,UAAAiP,QAAAuJ,MAAAxY,UAAAsvC,MACArE,EAAAzyB,MAAAxY,WACAiP,OAAAuJ,MAAAxY,UAAAsvC,MAEAP,EAAAG,OAAAx1B,EAAAmgC,eACArhC,MAAAxY,UAAA0Z,EAAAmgC,aAAA5qC,QAAA,IAIAs7B,GAAA/xB,MAAAxY,UAAAiP,QAAA,WAAAuJ,MAAAxY,UAAAiP,OAAA3S,KAAA,CACA,GAAAw9C,IAAAthC,MAAAxY,UAAAiP,MACAkgC,GAAA32B,MAAAxY,UAAA,SAAA,WAAA,MAAA4vC,IAAAC,KAAAiK,GAAA53C,KAAA1D,aACAouB,EAAApU,MAAAxY,UAAAsvC,GAAA92B,MAAAxY,UAAAiP,QAAA,GAEAg8B,EAAAzyB,MAAAxY,UAAAi5C,IAEA,IAAA,GAAAx5C,SAAA,GAAA,GAAA,GAGAmtB,EAAApU,MAAAxY,UAAA,UAAA,SAAA+5C,GACA,GAAAh7C,GAAA2tC,EAAAxqC,KAAA1D,UACA,OAAA,KAAAO,GAAA,EAAAA,EAAA,EACA,EAEAA,IACA,GAGA01C,GAAAj8B,MAAAxY,UAAA,WAAA,MAAAkC,MAAA+M,WAGAlP,OAAAi6C,gBACAvF,GAAA10C,OAAAi6C,kBAAA/qC,UAIA,IAAAgrC,IAAA,WAGA,MAAA7P,GAAA,WACA,MAAA,KAAA5xB,MAAAy/B,MAAAx6C,QAAA,IAAAA,YAGAy8C,GAAA,WAEA,GAAAnjC,GAAAyB,MAAAy/B,MAAA,GAAA2B,UACA,OAAA,KAAA7iC,EAAAtZ,QAAAmU,EAAAmF,EAAA,KAAA,IAAAA,EAAA,GAAA,IAAA,IAAAA,EAAA,GAAA,KAYA,IAVAkjC,IAAAC,IACA/K,EAAA32B,MAAA,OAAAw/B,GAAAC,OAEA,WAGA,MAAA7N,GAAA,WACA,MAAA5xB,OAAAy/B,MAAA,OAAA,SAGA,CACA,GAAAkC,IAAA3hC,MAAAy/B,IACA9I,GAAA32B,MAAA,OAAA,SAAA0/B,GACA,MAAA15C,WAAAf,OAAA,OAAA,KAAAe,UAAA,GACAoxC,GAAAC,KAAAsK,GAAAj4C,KAAA1D,WAEA0rC,EAAAiQ,GAAAj4C,KAAAg2C,KAKA,GAAAkC,MAAApsC,KAAAqsC,IAAA,EAAA,IAAA,GACAC,GAAA,SAAA3Z,EAAA4Z,GACA,GAAAt+C,IAAAwB,OAAA28C,GAEA,OADAn+C,GAAAs+C,GAAAt+C,EAAAwB,SAAA,GAAA,EAAA,IAAA,EACA2sC,EAAA,WAMA,MALAF,GAAAvJ,EAAA1kC,EAAA,WAGA,KAAA,IAAAq5C,YAAA,+BAEA,IAGA,KAAAgF,GAAA9hC,MAAAxY,UAAAyqC,SAAA,CACA,GAAA+P,IAAAhiC,MAAAxY,UAAAyqC,OACA0E,GAAA32B,MAAAxY,UAAA,UAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAA2K,GAAAt4C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAGA,IAAA87C,GAAA9hC,MAAAxY,UAAA1C,KAAA,CACA,GAAAo9C,IAAAliC,MAAAxY,UAAA1C,GACA6xC,GAAA32B,MAAAxY,UAAA,MAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAA6K,GAAAx4C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAGA,IAAA87C,GAAA9hC,MAAAxY,UAAAgD,QAAA,CACA,GAAA23C,IAAAniC,MAAAxY,UAAAgD,MACAmsC,GAAA32B,MAAAxY,UAAA,SAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAA8K,GAAAz4C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAGA,IAAA87C,GAAA9hC,MAAAxY,UAAA8qC,MAAA,CACA,GAAA8P,IAAApiC,MAAAxY,UAAA8qC,IACAqE,GAAA32B,MAAAxY,UAAA,OAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAA+K,GAAA14C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAGA,IAAA87C,GAAA9hC,MAAAxY,UAAA66C,OAAA,CACA,GAAAC,IAAAtiC,MAAAxY,UAAA66C,KACA1L,GAAA32B,MAAAxY,UAAA,QAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAAiL,GAAA54C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAGA,IAAA87C,GAAA9hC,MAAAxY,UAAA2qC,QAAA,CACA,GAAAoQ,IAAAviC,MAAAxY,UAAA2qC,MACAwE,GAAA32B,MAAAxY,UAAA,SAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAAkL,GAAA74C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAGA,IAAA87C,GAAA9hC,MAAAxY,UAAAg7C,aAAA,GAAA,CACA,GAAAC,IAAAziC,MAAAxY,UAAAg7C,WACA7L,GAAA32B,MAAAxY,UAAA,cAAA,SAAAy6C,GACA,MAAA7K,IAAAC,KAAAoL,GAAA/4C,KAAAzE,QAAA,EAAAyE,QAAA1D,aAIA,GAAA08C,IAAA,IAAA5M,OAAA,QACA6M,GAAA,IAAA7M,OAAA,QACA8M,GAAAvQ,EAAA0M,GAAA,SAAAhR,GACA,MAAA,KAAA+H,OAAA/H,EAAA,EAAAA,IAEA,IAAA2U,IAAAC,IAAAC,GAAA,CACA,GAAAC,IAAA/M,OACAgN,GAAA,aACAC,GAAA,cAEAC,GAAAF,GAAA19C,KAAAgoC,KAAA0V,IACAG,GAAAF,GAAA39C,KAAAgoC,KAAA2V,IACAG,GAAA,SAAAxJ,GACA,GAAAlgC,EACA,IAAA,kBAAAkgC,GAAAyJ,UACA3pC,EAAAkgC,EAAAyJ,UACA5M,EAAAC,UAAAh9B,IACA,MAAAA,EAGA,IAAA,kBAAAkgC,GAAAj7B,WACAjF,EAAAkgC,EAAAj7B,WACA83B,EAAAC,UAAAh9B,IACA,MAAAA,EAGA,MAAA,IAAA40B,WAAA,qBAEAgV,GAAApE,GAAA55C,KAAAgoC,KAAA4R,IACAqE,GAAApE,GAAA75C,KAAAgoC,KAAA6R,IACAqE,GAAA,WAEA,GAAAA,GAAA,SAAA/8C,GACA,GAAAg9C,EAMA,kBAJAA,EADAv9C,UAAAf,OAAA,EACAsxC,EAAAC,UAAAjwC,GAAAA,EAAA28C,GAAA38C,GAEA,KAGAg9C,EAAAnM,GAAAC,KAAAyH,GAAAyE,GACAP,GAAAO,GACAA,EAAAjhB,SAAA8R,EAAAmP,EAAA,GAAA,GACAN,GAAAM,GACAA,EAAAjhB,SAAA8R,EAAAmP,EAAA,GAAA,IACAH,GAAAG,IAAAF,GAAAE,MACAA,EAAAC,KAGA,IAAAC,GAAA/5C,KACAg6C,EAAA9R,EAAA,WAEA,MADAiR,IAAAr7C,UAAA27C,QAAAv/C,KAAA6/C,IACA,GAEA,OAAAA,aAAAH,KAAAI,EACA,GAAAb,IAAAU,GAGAV,GAAAU,GAGA,OAAAD,KAEA1H,IAAAiH,GAAAS,OAEA7Q,EAAA6Q,IACAE,IAAAX,GAAAW,IACAG,UAAAd,GAAAc,UACAC,UAAAf,GAAAe,UACAC,kBAAAhB,GAAAgB,kBACAC,kBAAAjB,GAAAiB,oBAKAhO,OAAAwN,GACAxQ,EAAAK,SAAAY,EAAA,SAAAuP,IAMA,GAAAS,IAAAvuC,KAAAqsC,IAAA,EAAA,IAAA,CACApP,GAAAqD,QACAqC,iBAAA4L,GACAC,kBAAAD,GACAE,QAAA,sBAEA3hB,SAAAyR,EAAAzR,SACAjsB,WAAA09B,EAAA19B,WAEAkoB,SAAAwX,EAEAmO,UAAA,SAAA39C,GACA,MAAAwvC,GAAAxvC,IAAA6wC,GAAAa,UAAA1xC,KAAAA,GAGA49C,cAAA,SAAA59C,GACA,MAAAuvC,QAAAoO,UAAA39C,IAAAsuC,EAAAtuC,IAAAuvC,OAAAqC,kBAGA9f,MAAAwd,IAGAzhB,EAAA0hB,OAAA,WAAA/B,EAAAzR,SAAAwT,OAAAxT,WAAAyR,EAAAzR,UAQA,KAAA,CAAA,GAAAhb,KAAA,WAAA,OAAA,KACAqvB,EAAA32B,MAAAxY,UAAA,OAAAi5C,GAAAn5B,MAEA,KAAA,CAAA,GAAA65B,UAAA,WAAA,OAAA,KACAxK,EAAA32B,MAAAxY,UAAA,YAAAi5C,GAAAU,UAKA,IAAAiD,IAAA3S,SAAArE,KAAAxpC,KAAA6tC,SAAArE,KAAA7lC,OAAAC,UAAA68C,sBACAC,GAAA,SAAA7gD,EAAAC,GACAouC,GAAAsS,GAAA3gD,EAAAC,IACA6D,OAAA6sB,eAAA3wB,EAAAC,GAAA8uC,YAAA,KAGA+R,GAAA,WAOA,IAAA,GAJA33C,GAAAkpC,OAAApsC,MACA6V,EAAAvZ,UAAAf,OACAu/C,EAAAjlC,EAAA3S,EACA9G,EAAA,GAAAka,OAAAwkC,EAAA,EAAA,EAAAA,GACAhgD,EAAAoI,EAAApI,EAAA+a,IAAA/a,EACAsB,EAAAtB,EAAAoI,GAAA5G,UAAAxB,EAEA,OAAAsB,IAEA2+C,GAAA,SAAArvB,GACA,MAAA,UAAA9Y,EAAA3Q,GAEA,MADA2Q,GAAA3Q,GAAAypB,EAAAzpB,GACA2Q,IAGAooC,GAAA,SAAApoC,EAAA8Y,GACA,GACAuvB,GADAC,EAAA5hC,EAAAzb,OAAA6tB,GAKA,OAHAgiB,IAAAI,WAAAjwC,OAAAmnC,yBACAiW,EAAAvS,EAAA7qC,OAAAmnC,sBAAAnnC,OAAA6tB,IAAAgvB,GAAAhvB,KAEA8c,EAAAiC,EAAAyQ,EAAAD,OAAAF,GAAArvB,GAAA9Y,IAGAuoC,IAEAC,OAAA,SAAAxoC,EAAA8Y,GACA,GAAA2K,GAAAqX,GAAAQ,SAAAt7B,EAAA,6CACA,OAAA41B,GAAAkF,GAAAC,KAAAkN,GAAA,EAAAv+C,WAAA0+C,GAAA3kB,IAIA5P,GAAA,SAAAzM,EAAAC,GACA,MAAAyzB,IAAAgB,UAAA10B,EAAAC,IAkBA,IAfApc,OAAAu9C,QAAAv9C,OAAAw9C,mBAAA,WAGA,GAAAC,GAAAz9C,OAAAw9C,mBAAA5W,EAAA,GACA,KACA5mC,OAAAu9C,OAAAE,EAAA,MACA,MAAA78C,GACA,MAAA,MAAA68C,EAAA,QAIArO,EAAApvC,OAAA,SAAAs9C,GAAAC,QAEArS,EAAAlrC,OAAAs9C,IAEA/S,EAAA,CACA,GAAAmT,KAGArR,eAAA,SAAArsC,EAAA29C,GACA,GAAA/4C,GAEAg5C,EAAA,SAAAzL,EAAAF,GACA,IAAApC,GAAAO,aAAA+B,GACA,KAAA,IAAAtL,WAAA,uCAEA,IAAA,OAAAoL,IAAApC,GAAAO,aAAA6B,GACA,KAAA,IAAApL,WAAA,8CAAAoL,IAIA5F,EAAA,SAAA8F,EAAAF,GAGA,MAFA2L,GAAAzL,EAAAF,GACA9H,EAAAvlC,EAAAutC,EAAAF,GACAE,EAGA,KAEAvtC,EAAA5E,EAAA2rC,yBAAA3rC,EAAAC,UA6BA,aA7BA2E,IACAulC,EAAAvlC,KAAA,MACA,MAAAhE,GACA,GAAAZ,EAAAC,eAAA,UAEA,MAGA2E,GAAA,SAAAqtC,GACA9vC,KAAA,UAAA8vC,GAOA5F,EAAAwR,SAAAxR,EACAA,KAAA,MACArsC,EAAAC,oBACAD,GASA,MAAAqsC,IACArsC,QAGAkrC,GAAAlrC,OAAA09C,IAyBA,GApBA19C,OAAAqsC,gBAAArsC,OAAAi6C,gBACA,OAAAj6C,OAAAi6C,eAAAj6C,OAAAqsC,kBAAA,QACA,OAAArsC,OAAAi6C,eAAAj6C,OAAAgnC,OAAA,QACA,WACA,GAAA8W,GAAA99C,OAAAgnC,OAAA,MACA+W,EAAA/9C,OAAAi6C,eACA+D,EAAAh+C,OAAAqsC,cACArsC,QAAAi6C,eAAA,SAAAtT,GACA,GAAA10B,GAAA8rC,EAAApX,EACA,OAAA10B,KAAA6rC,EAAA,KAAA7rC,GAEAjS,OAAAqsC,eAAA,SAAA1F,EAAAjmC,GAEA,MAAAs9C,GAAArX,EADA,OAAAjmC,EAAAo9C,EAAAp9C,IAGAV,OAAAqsC,eAAAwR,UAAA,OAIAzT,EAAA,WAAApqC,OAAAyb,KAAA,SACA,CACA,GAAAwiC,IAAAj+C,OAAAyb,IACA2zB,GAAApvC,OAAA,OAAA,SAAAhB,GACA,MAAAi/C,IAAApO,GAAAQ,SAAArxC,MAEAyc,EAAAzb,OAAAyb,KAGA,GADA2uB,EAAA,WAAApqC,OAAAyb,KAAA,QACA,CACA,GAAAyiC,IAAAl+C,OAAAyb,IACA2zB,GAAApvC,OAAA,OAAA,SAAAhB,GACA,GAAAgwC,EAAAE,MAAAlwC,GAAA,CACA,GAAAm/C,KACA,KAAA,GAAAvF,KAAA55C,GACA6uC,EAAA7uC,EAAA45C,IACA9L,EAAAqR,EAAAvF,EAGA,OAAAuF,GAEA,MAAAD,IAAAl/C,KAEAyc,EAAAzb,OAAAyb,KAGA,GAAAzb,OAAAu0C,oBAAA,CAEA,KADAnK,EAAA,WAAApqC,OAAAu0C,oBAAA,SACA,CACA,GAAA6J,IAAA,gBAAAl8C,QAAAlC,OAAAu0C,oBAAAryC,WACAm8C,GAAAr+C,OAAAu0C,mBACAnF,GAAApvC,OAAA,sBAAA,SAAAhB,GACA,GAAAuP,GAAAshC,GAAAQ,SAAArxC,EACA,IAAA,oBAAAosC,EAAA78B,GACA,IACA,MAAA8vC,IAAA9vC,GACA,MAAA3N,GAEA,MAAAgsC,MAAAwR,IAGA,MAAAC,IAAA9vC,MAIA,GAAAvO,OAAA2rC,yBAAA,CAEA,KADAvB,EAAA,WAAApqC,OAAA2rC,yBAAA,MAAA,SACA,CACA,GAAA2S,IAAAt+C,OAAA2rC,wBACAyD,GAAApvC,OAAA,2BAAA,SAAAhB,EAAA6sC,GACA,MAAAyS,IAAAzO,GAAAQ,SAAArxC,GAAA6sC,MAIA,GAAA7rC,OAAAu+C,KAAA,CAEA,KADAnU,EAAA,WAAApqC,OAAAu+C,KAAA,SACA,CACA,GAAAC,IAAAx+C,OAAAu+C,IACAnP,GAAApvC,OAAA,OAAA,SAAAhB,GACA,MAAA6wC,IAAAO,aAAApxC,GACAw/C,GAAAx/C,GADAA,KAKA,GAAAgB,OAAAy+C,SAAA,CAEA,KADArU,EAAA,WAAApqC,OAAAy+C,SAAA,SACA,CACA,GAAAC,IAAA1+C,OAAAy+C,QACArP,GAAApvC,OAAA,WAAA,SAAAhB,GACA,OAAA6wC,GAAAO,aAAApxC,IACA0/C,GAAA1/C,MAIA,GAAAgB,OAAA2+C,OAAA,CAEA,KADAvU,EAAA,WAAApqC,OAAA2+C,OAAA,SACA,CACA,GAAAC,IAAA5+C,OAAA2+C,MACAvP,GAAApvC,OAAA,SAAA,SAAAhB,GACA,MAAA6wC,IAAAO,aAAApxC,GACA4/C,GAAA5/C,GADAA,KAKA,GAAAgB,OAAA6+C,SAAA,CAEA,KADAzU,EAAA,WAAApqC,OAAA6+C,SAAA,SACA,CACA,GAAAC,IAAA9+C,OAAA6+C,QACAzP,GAAApvC,OAAA,WAAA,SAAAhB,GACA,OAAA6wC,GAAAO,aAAApxC,IACA8/C,GAAA9/C,MAIA,GAAAgB,OAAAw9C,kBAAA,CAEA,KADApT,EAAA,WAAApqC,OAAAw9C,kBAAA,SACA,CACA,GAAAuB,IAAA/+C,OAAAw9C,iBACApO,GAAApvC,OAAA,oBAAA,SAAAhB,GACA,MAAA6wC,IAAAO,aAAApxC,GACA+/C,GAAA//C,GADAA,KAKA,GAAAgB,OAAAg/C,aAAA,CAEA,KADA5U,EAAA,WAAApqC,OAAAg/C,aAAA,SACA,CACA,GAAAC,IAAAj/C,OAAAg/C,YACA5P,GAAApvC,OAAA,eAAA,SAAAhB,GACA,QAAA6wC,GAAAO,aAAApxC,IACAigD,GAAAjgD,MAIA,GAAAgB,OAAAi6C,eAAA,CAEA,KADA7P,EAAA,WAAApqC,OAAAi6C,eAAA,SACA,CACA,GAAAiF,IAAAl/C,OAAAi6C,cACA7K,GAAApvC,OAAA,iBAAA,SAAAhB,GACA,MAAAkgD,IAAArP,GAAAQ,SAAArxC,OAKA,GAAAmgD,IAAA5U,GAAA,WACA,GAAA6U,GAAAp/C,OAAA2rC,yBAAAtqB,OAAAphB,UAAA,QACA,OAAAm/C,IAAAvP,GAAAI,WAAAmP,EAAA14C,OAEA,IAAA6jC,IAAA4U,GAAA,CACA,GAAAE,IAAA,WACA,IAAAxP,GAAAO,aAAAjuC,MACA,KAAA,IAAA0kC,WAAA,yDAEA,IAAA50B,GAAA,EAgBA,OAfA9P,MAAAL,SACAmQ,GAAA,KAEA9P,KAAAm9C,aACArtC,GAAA,KAEA9P,KAAAo9C,YACAttC,GAAA,KAEA9P,KAAAq9C,UACAvtC,GAAA,KAEA9P,KAAAs9C,SACAxtC,GAAA,KAEAA,EAGAs5B,GAAA7Q,OAAArZ,OAAAphB,UAAA,QAAAo/C,IAGA,GAAAK,IAAAnV,GAAAF,EAAA,WACA,MAAA,SAAA1nB,OAAA,GAAAtB,QAAA,KAAA,QAEAs+B,GAAArQ,IAAA/E,GAAA,WAEA,GAAA2E,GAAA,GAEA,OADAA,GAAAv1B,EAAAlW,QAAA,EACA4d,OAAA6tB,KAAAA,KAGA0Q,GAAAvV,EAAA,WACA,MAAA,UAAAhpB,OAAAphB,UAAAiX,SAAA7a,MAAAwxB,OAAA,UAEAgyB,GAAAD,IAAAvV,EAAA,WACA,MAAA,SAAAhpB,OAAAphB,UAAAiX,SAAA7a,MAAAwxB,OAAA,IAAAiyB,MAAA,OAEA,KAAAF,KAAAC,GAAA,CACA,GAAAE,IAAA1+B,OAAAphB,UAAAiX,QACA2V,GAAAxL,OAAAphB,UAAA,WAAA,WACA,GAAA+/C,GAAAnQ,GAAAK,uBAAA/tC,KACA,OAAA6sC,GAAAE,MAAA8Q,GACA7V,EAAA4V,GAAAC,GAIA,IAFAtQ,GAAAsQ,EAAAnyB,QAEA,IADA6hB,GAAAsQ,EAAAF,SAEA,GACAvU,EAAAU,iBAAA5qB,OAAAphB,UAAAiX,SAAA6oC,IAGA,GAAAxV,KAAAmV,IAAAC,IAAA,CACA,GAAAM,IAAAjgD,OAAA2rC,yBAAAtqB,OAAAphB,UAAA,SAAAyG,IACAw5C,GAAAlgD,OAAA2rC,yBAAAtqB,OAAAphB,UAAA,cACAkgD,GAAA,WAEA,MAAAh+C,MAAA0rB,QAEAuyB,GAAAvQ,GAAAI,WAAAiQ,GAAAx5C,KAAAw5C,GAAAx5C,IAAAy5C,GAEAE,GAAAh/B,OACAi/B,GAAA,WACA,MAAA,SAAAj/B,GAAAoE,EAAAq6B,GACA,GAAAS,GAAA1Q,GAAA6C,SAAAjtB,EAEA,MADAtjB,eAAAkf,KACAk/B,OAAA,KAAAT,GAAAr6B,EAAA/N,cAAA2J,EACA,MAAAoE,EAGA,IAAA+6B,GAAA/6B,EACAsqB,EAAA+P,CACA,OAAA9Q,GAAAE,MAAAzpB,IACA+6B,EAAA3Q,GAAAC,KAAAsQ,GAAA36B,GACAsqB,MAAA,KAAA+P,EAAAjQ,GAAAC,KAAAmQ,GAAAx6B,GAAAq6B,EACA,GAAAz+B,GAAAm/B,EAAAzQ,KACAwQ,IACAC,EAAA/6B,EAAAoI,OACAkiB,MAAA,KAAA+P,EAAAr6B,EAAAq6B,MAAAA,GAEA,GAAAO,IAAA56B,EAAAq6B,OAGAzL,IAAAgM,GAAAC,IACAG,QAAA,IAKAp/B,OAAAi/B,GACA/U,EAAAK,SAAAY,EAAA,SAAA8T,IAMA,GAAA/V,EAAA,CACA,GAAAmW,KACAh9B,MAAA,KACAi9B,UAAA,KACAC,UAAA,KACAC,YAAA,KACAC,aAAA,KAEArW,GAAAhvB,EAAAilC,IAAA,SAAAvkD,GACAA,IAAAklB,WAAAq/B,GAAAvkD,IAAAklB,UACAkqB,EAAA7Q,OAAArZ,OAAAq/B,GAAAvkD,GAAA,WACA,MAAAklB,QAAAllB,OAKAs4C,GAAApzB,OAEA,IAAA0/B,IAAA,EAAAxS,OAAAmO,QACAsE,GAAA,SAAAxgD,GAEA,MAAAA,GAAAugD,GAAAA,IAEAE,GAAAhzC,KAAAqsC,IAAA,GAAA,IACA4G,GAAAjzC,KAAAqsC,IAAA,EAAA,MAAA,EAAA2G,IACAE,GAAAlzC,KAAAqsC,IAAA,GAAA,KACA8G,GAAAnzC,KAAAmzC,EACAC,GAAApzC,KAAAozC,MACAC,GAAArzC,KAAAqzC,OACAC,GAAAhT,OAAAtuC,UAAAuhD,UACAjT,QAAAtuC,UAAAuhD,GAEA,IAAAC,KACAC,MAAA,SAAA1iD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAAsvC,GAAAhD,IAAAtsC,EAAA,EAAAi9C,IACA,IAAA3Q,EAAA,EACAA,IAAAkL,EAAAA,EAAAlL,EACAoC,EAAApC,EAAA8V,GAAAzT,EAAArC,EAAA,GAAAqC,EAAArC,EAAA,GAAA8V,IAAA,GAGAO,MAAA,QAAAA,GAAA3iD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAA,KAAAssC,GAAAmB,EAAAnB,GAGAA,EAAA,GAAAqW,GAAArW,GAAAoC,EAAApC,EAAAqC,EAAArC,EAAAA,EAAA,IAFAA,GAKAsW,MAAA,SAAA5iD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAAsvC,GAAAhD,IAAAA,GAAA,GAAAA,EAAA,EACA2Q,KAEA,IAAA3Q,GAAAkL,EAAAA,EACA,IAAAlL,EAAAkL,EAAAA,EACA,IAAAlL,EAAAA,EACA,GAAAoC,GAAA,EAAApC,IAAA,EAAAA,KAGAuW,KAAA,SAAA7iD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,IAAA,IAAAssC,EAAA,MAAAA,EACA,IACAr5B,GADA6vC,EAAAxW,EAAA,CAUA,OARAwW,KAAAxW,GAAAA,GACAA,IAAAkL,EAAAA,EACAvkC,EAAAukC,EAAAA,GAEAvkC,EAAAu7B,EAAAE,EAAApC,GAAA,GAEAr5B,GAAAq5B,GAAAr5B,EAAAA,GAAA,EAAAA,GAAA,GAEA6vC,GAAA7vC,EAAAA,GAGA8vC,MAAA,SAAA/iD,GAEA,GAAAssC,GAAAiD,OAAAvvC,GACA2vC,EAAAkB,GAAAY,SAAAnF,EACA,OAAA,KAAAqD,EACA,GAEA4S,GAAA1R,GAAAC,KAAAyR,GAAA5S,GAAA,GAAAvB,EAAAM,EAAAiB,EAAA,IAAA0S,KAGAW,KAAA,SAAAhjD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAA,KAAAssC,EAAA,EACAgD,EAAAhD,GAAA2Q,IACAxP,EAAAnB,IACAA,EAAA,IAAAA,GAAAA,GACAA,EAAA,GAAAkC,EAAAlC,GAAA,GACAkC,EAAAlC,GAAAkC,GAAAlC,IAAA,GAHAkL,EAAAA,GAMAyL,MAAA,SAAAjjD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,IAAAssC,KAAAkL,EAAAA,EAAA,OAAA,CACA,KAAA/J,EAAAnB,IAAA,IAAAA,EAAA,MAAAA,EACA,IAAAgC,EAAAhC,GAAA,GACA,MAAAkC,GAAAlC,GAAA,CAOA,KAHA,GAAArc,GAAAqc,EACA4W,EAAA,EACA1hD,EAAA,EACA0hD,EAAAjzB,IAAAizB,GACAA,GAAAjzB,EACAzuB,GAAA,EACAyuB,GAAAqc,EAAA9qC,CAEA,OAAA0hD,IAGAC,MAAA,SAAA7W,EAAA8W,GAGA,IAAA,GAFAnwC,GAAA,EACAowC,EAAA,EACAplD,EAAA,EAAAA,EAAAwB,UAAAf,SAAAT,EAAA,CACA,GAAA+B,GAAAsuC,EAAAiB,OAAA9vC,UAAAxB,IACAolD,GAAArjD,GACAiT,GAAAowC,EAAArjD,GAAAqjD,EAAArjD,GACAiT,GAAA,EACAowC,EAAArjD,GAEAiT,GAAAjT,EAAA,EAAAA,EAAAqjD,GAAArjD,EAAAqjD,GAAArjD,EAGA,MAAAqjD,KAAA7L,EAAAA,EAAAA,EAAAA,EAAA6L,EAAA1U,EAAA17B,IAGAqwC,KAAA,SAAAtjD,GACA,MAAA0uC,GAAA1uC,GAAAqiD,IAGAkB,MAAA,SAAAvjD,GACA,MAAA0uC,GAAA1uC,GAAAsiD,IAGAkB,MAAA,SAAAxjD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAAssC,IAAA,GAAAgD,EAAAhD,GAAA2Q,IACA,IAAA3Q,GAAAA,IAAAkL,EAAAA,EAAAlL,GACA,IAAAA,GAAAkL,EAAAA,EAEA,EAAAlL,EAAA,GAAA,EAAAA,EAAAA,GAAAoC,EAAA,EAAApC,IAAA,EAAAA,EAAA,KAGAoD,KAAAD,EAEAgU,KAAA,SAAAzjD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAAytC,GAAAnB,IAAA,IAAAA,EAEAgC,EAAAhC,GAAA,GACAr9B,KAAAg0C,MAAA3W,GAAAr9B,KAAAg0C,OAAA3W,IAAA,GAEAkC,EAAAlC,EAAA,GAAAkC,GAAAlC,EAAA,IAAA8V,GAAA,EALA9V,GAQAoX,KAAA,SAAA1jD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAAsvC,GAAAhD,IAAA,IAAAA,EAAAA,EAEAA,GAAA,GAAA,EACAA,IAAA,IAAA,GAEAr9B,KAAAg0C,MAAA3W,GAAAr9B,KAAAg0C,OAAA3W,KAAAkC,EAAAlC,GAAAkC,GAAAlC,KAGAqX,MAAA,SAAA3jD,GACA,GAAAssC,GAAAiD,OAAAvvC,EACA,OAAAssC,GAAA,GAAA8B,GAAA9B,GAAA8B,EAAA9B,IAGAsX,KAAA,SAAAtX,EAAA8W,GAEA,GAAAjmC,GAAA0zB,GAAAY,SAAAnF,GACAlvB,EAAAyzB,GAAAY,SAAA2R,GACAS,EAAA1mC,IAAA,GAAA,MACA2mC,EAAA,MAAA3mC,EACA4mC,EAAA3mC,IAAA,GAAA,MACA4mC,EAAA,MAAA5mC,CAGA,OAAA0mC,GAAAE,GAAAH,EAAAG,EAAAF,EAAAC,GAAA,KAAA,GAAA,GAGAE,OAAA,SAAA3X,GACA,GAAA10B,GAAA23B,OAAAjD,EACA,IAAA,IAAA10B,GAAAA,IAAA4/B,EAAAA,GAAA5/B,KAAA4/B,EAAAA,GAAAlI,EAAA13B,GACA,MAAAA,EAEA,IAAA83B,GAAAD,EAAA73B,GACA22B,EAAAD,EAAA12B,EACA,IAAA22B,EAAA4T,GACA,MAAAzS,GAAAsS,GACAzT,EAAA4T,GAAAF,IACAE,GAAAF,EAGA,IAAA9kC,IAAA,EAAA8kC,GAAA1S,OAAAmO,SAAAnP,EACAt7B,EAAAkK,GAAAA,EAAAoxB,EACA,OAAAt7B,GAAAivC,IAAA5S,EAAAr8B,GACAy8B,GAAA8H,EAAAA,GAEA9H,EAAAz8B,GAGAi5B,GAAAj9B,KAAAwzC,IAEA50B,EAAA5e,KAAA,QAAAwzC,GAAAe,OAAA,QAAAv0C,KAAAu0C,OAAA,QAEA31B,EAAA5e,KAAA,QAAAwzC,GAAAE,MAAA1zC,KAAA0zC,OAAA,QAAA1zC,KAAA0zC,MAAA,MAEA90B,EAAA5e,KAAA,OAAAwzC,GAAAiB,MAAA,QAAAz0C,KAAAy0C,MAAA,QAEA71B,EAAA5e,KAAA,QAAAwzC,GAAAC,MAAAzzC,KAAAyzC,MAAAnT,OAAA6N,aAAA5F,EAAAA,GAEA3pB,EAAA5e,KAAA,OAAAwzC,GAAAI,KAAA5zC,KAAAs/B,IAAA,EAAAt/B,KAAA4zC,KAAA,QAAA,QAAAtT,OAAAmO,QAAA,GAEA7vB,EAAA5e,KAAA,OAAAwzC,GAAAgB,MAAA,QAAAx0C,KAAAw0C,MAAA,OAEA,IAAAS,IAAAj1C,KAAAg0C,MAAA,GACAp1B,GAAA5e,KAAA,QAAAwzC,GAAAQ,MAAAiB,GAAA,oBAAAA,GAAA,mBAEA,IAAAC,IAAAl1C,KAAAm1C,MAEAC,GAAA,IAAAp1C,KAAAm1C,MAAA,GAAA7U,OAAAmO,QAAA,IACA,IAAAzuC,KAAAm1C,MAAA7U,OAAAmO,QAAA,KAAA,IAMA4G,GAAAvC,GAAA,EACAwC,GAAA,EAAAxC,GAAA,EACAyC,IACAF,GACAC,IACAzI,MAAA,SAAAljC,GACA,MAAA3J,MAAAm1C,MAAAxrC,KAAAA,GAEAiV,GAAA5e,KAAA,QAAA,SAAAq9B,GACA,GAAA+B,GAAAD,EAAA9B,GACAmY,GAAA,IAAApW,GAAA,EAAAA,EAAA,CACA,OAAA/B,GAAA+B,EAAA,GAAAA,EAAAoW,IACAJ,KAAAG,IACAjY,EAAAU,iBAAAh+B,KAAAm1C,MAAAD,GAEA,IAAAO,IAAAz1C,KAAA20C,MACA,IAAA30C,KAAA20C,KAAA,WAAA,KAEA30C,KAAA20C,KAAAnB,GAAAmB,KACArX,EAAAU,iBAAAh+B,KAAA20C,KAAAc,KAEA,IAAAz1C,KAAA20C,KAAAllD,QAGA0xC,EAAAnhC,KAAA,OAAA,SAAAq9B,EAAA8W,GACA,MAAAvS,IAAAC,KAAA4T,GAAAz1C,KAAAxP,YAOA,IAAAklD,IAAA,WACA,GAAAliD,GAAA+qC,EAAA/qC,UAEA,IAAA,kBAAAA,IAAA,gBAAAA,GAAA,CAEAouC,GAAA+T,UAAA,SAAA3wC,GACA,QAAA48B,GAAAO,aAAAn9B,QAGA,KAAAA,EAAA4wC,SAQA,IAsBAC,GAtBAC,EAAA,SAAA3X,GACA,IAAAyD,GAAAS,cAAAlE,GACA,KAAA,IAAAvF,WAAA,0BAEA,IAAAmd,GAAA7hD,KACA8hD,EAAA,SAAA94B,EAAAC,GACA,OAAA,KAAA44B,EAAA74B,aAAA,KAAA64B,EAAA54B,OACA,KAAA,IAAAyb,WAAA,8BAEAmd,GAAA74B,QAAAA,EACA64B,EAAA54B,OAAAA,EAMA,IAHA44B,EAAA74B,YAAA,GACA64B,EAAA54B,WAAA,GACA44B,EAAA/wC,QAAA,GAAAm5B,GAAA6X,IACApU,GAAAI,WAAA+T,EAAA74B,WAAA0kB,GAAAI,WAAA+T,EAAA54B,QACA,KAAA,IAAAyb,WAAA,2BAOA,oBAAA3kC,SAAA2tC,GAAAI,WAAA/tC,OAAAgiD,eACAJ,EAAA,WAEA,GAAAK,MAEAC,EAAA,SAAAv7C,GACAikC,EAAAqX,EAAAt7C,GACA3G,OAAAgiD,YAHA,uBAGA,MAEAG,EAAA,SAAAr7C,GACA,GAAAA,EAAA6kB,SAAA3rB,QANA,yBAMA8G,EAAA3E,KAAA,CAEA,GADA2E,EAAA2nB,kBACA,IAAAwzB,EAAAzmD,OAAA,MACAsvC,GAAAmX,MAKA,OADAjiD,QAAAghB,iBAAA,UAAAmhC,GAAA,GACAD,GAGA,IA2KAE,GAAAC,EA9JAC,EAAA3U,GAAAI,WAAAzD,EAAAiY,cACAjY,EAAAiY,aACA,gBAAAC,UAAAA,QAAAC,SAAAD,QAAAC,SAfA,WAKA,GAAAnE,GAAAhU,EAAAoY,QACAnkD,EAAA+/C,GAAAA,EAAAr1B,SAAAq1B,EAAAr1B,SACA,OAAA1qB,IAAA,SAAAokD,GACA,MAAApkD,GAAAoqB,KAAAg6B,SASAhV,GAAAI,WAAA6T,GAAAA,IACA,SAAAe,GAAApjD,EAAAojD,EAAA,KAIAC,EAAA,SAAAxZ,GAAA,MAAAA,IACAyZ,EAAA,SAAAnkD,GAAA,KAAAA,IASAokD,KAEAC,EAAA,SAAAjpC,EAAAgoC,EAAAtnC,GACA8nC,EAAA,WACAU,EAAAlpC,EAAAgoC,EAAAtnC,MAIAwoC,EAAA,SAAAlpC,EAAAmpC,EAAAzoC,GACA,GAAA0oC,GAAA7kD,CACA,IAAA4kD,IAAAH,EAGA,MAAAhpC,GAAAU,EAEA,KACA0oC,EAAAppC,EAAAU,GACAnc,EAAA4kD,EAAAh6B,QACA,MAAAvqB,GACAwkD,EAAAxkD,EACAL,EAAA4kD,EAAA/5B,OAEA7qB,EAAA6kD,IAGAC,EAAA,SAAApyC,EAAAjU,GACA,GAAA6kD,GAAA5wC,EAAA4wC,SACAnmD,EAAAmmD,EAAAyB,cACA,IAAA5nD,EAAA,IACAunD,EACApB,EAAA0B,wBACA1B,EAAA2B,oBACAxmD,GAEA6kD,EAAA0B,4BAAA,GACA1B,EAAA4B,qBAAA,GACA5B,EAAA2B,wBAAA,GACA9nD,EAAA,GACA,IAAA,GAAAT,GAAA,EAAAkpB,EAAA,EAAAlpB,EAAAS,EAAAT,IAAAkpB,GAAA,EACA8+B,EACApB,EAAA19B,EA5CA,GA6CA09B,EAAA19B,EA3CA,GA4CAnnB,GAEAiU,EAAAkT,EAhDA,OAgDA,GACAlT,EAAAkT,EAhDA,OAgDA,GACAlT,EAAAkT,EAhDA,OAgDA,EAIA09B,GAAA5xC,OAAAjT,EACA6kD,EAAArtC,MA1DA,EA2DAqtC,EAAAyB,eAAA,GAGAI,EAAA,SAAAzyC,EAAA0yC,GACA,GAAA9B,GAAA5wC,EAAA4wC,SACAnmD,EAAAmmD,EAAAyB,cACA,IAAA5nD,EAAA,IACAunD,EACApB,EAAA+B,uBACA/B,EAAA2B,oBACAG,GAEA9B,EAAA0B,4BAAA,GACA1B,EAAA4B,qBAAA,GACA5B,EAAA2B,wBAAA,GACA9nD,EAAA,GACA,IAAA,GAAAT,GAAA,EAAAkpB,EAAA,EAAAlpB,EAAAS,EAAAT,IAAAkpB,GAAA,EACA8+B,EACApB,EAAA19B,EAzEA,GA0EA09B,EAAA19B,EAzEA,GA0EAw/B,GAEA1yC,EAAAkT,EA9EA,OA8EA,GACAlT,EAAAkT,EA9EA,OA8EA,GACAlT,EAAAkT,EA9EA,OA8EA,EAIA09B,GAAA5xC,OAAA0zC,EACA9B,EAAArtC,MAvFA,EAwFAqtC,EAAAyB,eAAA,GAGAO,EAAA,SAAA5yC,GACA,GAAA6yC,IAAA,CA4BA,QAAA36B,QA3BA,SAAA46B,GACA,GAAAl7B,EACA,KAAAi7B,EAAA,CAEA,GADAA,GAAA,EACAC,IAAA9yC,EACA,MAAAyyC,GAAAzyC,EAAA,GAAA4zB,WAAA,mBAEA,KAAAgJ,GAAAO,aAAA2V,GACA,MAAAV,GAAApyC,EAAA8yC,EAEA,KACAl7B,EAAAk7B,EAAAl7B,KACA,MAAAjqB,GACA,MAAA8kD,GAAAzyC,EAAArS,GAEA,IAAAivC,GAAAI,WAAAplB,GACA,MAAAw6B,GAAApyC,EAAA8yC,EAEAvB,GAAA,WACAwB,EAAA/yC,EAAA8yC,EAAAl7B,OAQAO,OALA,SAAAu6B,GACA,IAAAG,EAEA,MADAA,IAAA,EACAJ,EAAAzyC,EAAA0yC,MAKAM,EAAA,SAAAp7B,EAAAq7B,EAAA/6B,EAAAC,GAKAP,IAAA05B,EACApa,EAAAtf,EAAAq7B,EAAA/6B,EAAAC,EAAA45B,GAEA7a,EAAAtf,EAAAq7B,EAAA/6B,EAAAC,IAGA46B,EAAA,SAAA/yC,EAAAizC,EAAAr7B,GACA,GAAAs7B,GAAAN,EAAA5yC,GACAkY,EAAAg7B,EAAAh7B,QACAC,EAAA+6B,EAAA/6B,MACA,KACA66B,EAAAp7B,EAAAq7B,EAAA/6B,EAAAC,GACA,MAAAxqB,GACAwqB,EAAAxqB,KAKAgkD,EAAA,WACA,GAAAjB,GAAA,SAAAM,GACA,KAAA9hD,eAAAwhD,IACA,KAAA,IAAA9c,WAAA,qCAEA,IAAA1kC,MAAAA,KAAA0hD,SACA,KAAA,IAAAhd,WAAA,mBAGA,KAAAgJ,GAAAI,WAAAgU,GACA,KAAA,IAAApd,WAAA,uBAEA,IAAA5zB,GAAA8hC,GAAA5yC,KAAAwhD,EAAAW,GACAT,UACA5xC,WAAA,GACAuE,MAnKA,EAyKA8uC,eAAA,EACAC,4BAAA,GACAK,2BAAA,GACAJ,wBAAA,MAGAW,EAAAN,EAAA5yC,GACAmY,EAAA+6B,EAAA/6B,MACA,KACA64B,EAAAkC,EAAAh7B,QAAAC,GACA,MAAAxqB,GACAwqB,EAAAxqB,GAEA,MAAAqS,GAEA,OAAA0wC,KAEAW,GAAAM,EAAA3kD,SAEA,IAAAmmD,GAAA,SAAA3mD,EAAAyP,EAAA80C,EAAAxxC,GACA,GAAA6zC,IAAA,CACA,OAAA,UAAA/a,GACA,IAAA+a,IACAA,GAAA,EACAn3C,EAAAzP,GAAA6rC,EACA,KAAA94B,EAAAkb,OAAA,EAEAvC,EADA64B,EAAA74B,SACAjc,MAKAo3C,EAAA,SAAAC,EAAAna,EAAAoa,GAMA,IALA,GAGAn9B,GAAAmvB,EAHArH,EAAAoV,EAAA3sC,SACA1K,KACAsD,GAAAkb,MAAA,GAEAjuB,EAAA,IACA,CACA,IAEA,IAAA,KADA4pB,EAAAwmB,GAAA+B,aAAAT,IACA,CACAoV,EAAA/0C,MAAA,CACA,OAEAgnC,EAAAnvB,EAAArqB,MACA,MAAA4B,GAEA,KADA2lD,GAAA/0C,MAAA,EACA5Q,EAEAsO,EAAAzP,OAAA,EACA,IAAAgnD,GAAAra,EAAAjhB,QAAAqtB,GACAkO,EAAAN,EACA3mD,EAAAyP,EAAAs3C,EAAAh0C,EAEAA,GAAAkb,OAAA,EACAu4B,EAAAQ,EAAA57B,KAAA47B,EAAAC,EAAAF,EAAAp7B,QACA3rB,GAAA,EAEA,GAAA,KAAA+S,EAAAkb,MAAA,EAEAvC,EADAq7B,EAAAr7B,SACAjc,GAEA,MAAAs3C,GAAAvzC,SAGA0zC,EAAA,SAAAJ,EAAAna,EAAAoa,GAGA,IAFA,GACAn9B,GAAAmvB,EAAAiO,EADAtV,EAAAoV,EAAA3sC,WAEA,CACA,IAEA,IAAA,KADAyP,EAAAwmB,GAAA+B,aAAAT,IACA,CAKAoV,EAAA/0C,MAAA,CACA,OAEAgnC,EAAAnvB,EAAArqB,MACA,MAAA4B,GAEA,KADA2lD,GAAA/0C,MAAA,EACA5Q,EAEA6lD,EAAAra,EAAAjhB,QAAAqtB,GACAyN,EAAAQ,EAAA57B,KAAA47B,EAAAD,EAAAr7B,QAAAq7B,EAAAp7B,QAEA,MAAAo7B,GAAAvzC,QA+IA,OA5IAi4B,GAAA0Z,GACArtC,IAAA,SAAAqvC,GACA,GAAAxa,GAAAjqC,IACA,KAAA0tC,GAAAO,aAAAhE,GACA,KAAA,IAAAvF,WAAA,wBAEA,IACAjtB,GAAA2sC,EADAvC,EAAA,GAAAD,GAAA3X,EAEA,KAGA,MAFAxyB,GAAAi2B,GAAAmB,YAAA4V,GACAL,GAAA3sC,SAAAA,EAAApI,MAAA,GACA80C,EAAAC,EAAAna,EAAA4X,GACA,MAAApjD,GACA,GAAAimD,GAAAjmD,CACA,IAAA2lD,IAAAA,EAAA/0C,KACA,IACAq+B,GAAAyB,cAAA13B,GAAA,GACA,MAAAktC,GACAD,EAAAC,EAGA,GAAA17B,GAAA44B,EAAA54B,MAEA,OADAA,GAAAy7B,GACA7C,EAAA/wC,UAIA8zC,KAAA,SAAAH,GACA,GAAAxa,GAAAjqC,IACA,KAAA0tC,GAAAO,aAAAhE,GACA,KAAA,IAAAvF,WAAA,wBAEA,IACAjtB,GAAA2sC,EADAvC,EAAA,GAAAD,GAAA3X,EAEA,KAGA,MAFAxyB,GAAAi2B,GAAAmB,YAAA4V,GACAL,GAAA3sC,SAAAA,EAAApI,MAAA,GACAm1C,EAAAJ,EAAAna,EAAA4X,GACA,MAAApjD,GACA,GAAAimD,GAAAjmD,CACA,IAAA2lD,IAAAA,EAAA/0C,KACA,IACAq+B,GAAAyB,cAAA13B,GAAA,GACA,MAAAktC,GACAD,EAAAC,EAGA,GAAA17B,GAAA44B,EAAA54B,MAEA,OADAA,GAAAy7B,GACA7C,EAAA/wC,UAIAmY,OAAA,SAAAu6B,GACA,GAAAvZ,GAAAjqC,IACA,KAAA0tC,GAAAO,aAAAhE,GACA,KAAA,IAAAvF,WAAA,0BAEA,IAAAmd,GAAA,GAAAD,GAAA3X,EAGA,QADA4a,EADAhD,EAAA54B,QACAu6B,GACA3B,EAAA/wC,SAGAkY,QAAA,SAAAvU,GAEA,GAAAw1B,GAAAjqC,IACA,KAAA0tC,GAAAO,aAAAhE,GACA,KAAA,IAAAvF,WAAA,0BAEA,IAAAgJ,GAAA+T,UAAAhtC,GAAA,CACA,GAAAc,GAAAd,EAAAc,WACA,IAAAA,IAAA00B,EACA,MAAAx1B,GAGA,GAAAotC,GAAA,GAAAD,GAAA3X,EAGA,QADA6a,EADAjD,EAAA74B,SACAvU,GACAotC,EAAA/wC,WAIAi4B,EAAAoZ,GACA4C,MAAA,SAAAC,GACA,MAAAhlD,MAAA0oB,KAAA,KAAAs8B,IAGAt8B,KAAA,SAAAu8B,EAAAD,GACA,GAAAl0C,GAAA9Q,IACA,KAAA0tC,GAAA+T,UAAA3wC,GAAA,KAAA,IAAA4zB,WAAA,gBACA,IACA2f,GADApa,EAAAyD,GAAAqC,mBAAAj/B,EAAA2xC,EAIA4B,GAFA/nD,UAAAf,OAAA,GAAAe,UAAA,KAAAumD,GACA5Y,IAAAwY,EACAI,EAEA,GAAAjB,GAAA3X,EAMA,IAGAptC,GAHAqoD,EAAAxX,GAAAI,WAAAmX,GAAAA,EAAAtC,EACAwC,EAAAzX,GAAAI,WAAAkX,GAAAA,EAAApC,EACAlB,EAAA5wC,EAAA4wC,QAEA,IA/WA,IA+WAA,EAAArtC,MAAA,CACA,GAAA,IAAAqtC,EAAAyB,eACAzB,EAAA0B,wBAAA8B,EACAxD,EAAA+B,uBAAA0B,EACAzD,EAAA2B,oBAAAgB,MACA,CACA,GAAArgC,GAAA,GAAA09B,EAAAyB,eAAA,EACAzB,GAAA19B,EAlXA,GAkXAkhC,EACAxD,EAAA19B,EAlXA,GAkXAmhC,EACAzD,EAAA19B,EAlXA,GAkXAqgC,EAEA3C,EAAAyB,gBAAA,MACA,IA1XA,IA0XAzB,EAAArtC,MACAxX,EAAA6kD,EAAA5xC,OACAgzC,EACAoC,EAAAb,EAAAxnD,OAEA,CAAA,GA9XA,IA8XA6kD,EAAArtC,MAMA,KAAA,IAAAqwB,WAAA,2BALA7nC,GAAA6kD,EAAA5xC,OACAgzC,EACAqC,EAAAd,EAAAxnD,GAKA,MAAAwnD,GAAAvzC,WAKA+xC,EAAA,GAAAjB,GAAAa,GACAL,EAAAD,EAAAz5B,KAEA+5B,KAUA,IANApY,EAAAoY,gBACApY,GAAAoY,QAAA2C,aACA/a,GAAAoY,QAAAj3B,YACA6e,GAAAoY,QAAA3kD,UAAAunD,OAGA,kBAAA7D,IAAA,CAEAzY,EAAAsB,GAAAoY,QAAAjB,IAIA,IAAA8D,IAAAtb,EAAAK,EAAAoY,QAAA,SAAAvS,GACA,MAAAA,GAAAlnB,QAAA,IAAAN,KAAA,uBAAAwnB,KAEAqV,IAAAtd,EAAA,WACAoC,EAAAoY,QAAAx5B,OAAA,IAAAP,KAAA,KAAA,GAAAA,KAAA,KAAArS,KAEAmvC,GAAAvd,EAAA,WAAAoC,EAAAoY,QAAAvoD,KAAA,EAAAmc,KAMAovC,GAAA,SAAAhD,GACA,GAAAlkD,GAAAkkD,EAAAz5B,QAAA,EACAzqB,GAAAgX,cACA,IAAAmwC,GAAAjD,EAAAz5B,QAAAzqB,EACA,KACAmnD,EAAAh9B,KAAA,KAAArS,GAAAqS,KAAA,KAAArS,GACA,MAAA5X,GACA,OAAA,EAEA,MAAAF,KAAAmnD,GACArb,EAAAoY,SAGAkD,GAAAvd,GAAA,WACA,GAAA7c,GAAA,EACAw4B,EAAAlmD,OAAA6sB,kBAAA;2CAAAnmB,IAAA,WAAAgnB,GAAA,IAEA,OADAk3B,SAAAz5B,QAAA+6B,GACA,IAAAx4B,KAGAq6B,GAAA,QAAAA,GAAAC,GACA,GAAAtnD,GAAA,GAAAkkD,SAAAoD,EACAA,GAAA,EAAA,cACA7lD,KAAA0oB,KAAAnqB,EAAAmqB,KACA1oB,KAAAuV,YAAAqwC,EAEAA,IAAA9nD,UAAA2kD,QAAA3kD,UACA8nD,GAAAxwC,IAAAqtC,QAAArtC,GAEA,IAAA0wC,IAAA5d,EAAA,WACA,QAAA0d,GAAAxwC,KAAA,EAAA,KAeA,IAZAkwC,IAAAC,IACAC,KAAAC,IACAE,KAAAG,KAIArD,QAAAjB,GAIAvU,EAAA5C,EAAA,UAAAmX,KAEA,IAAAiB,QAAArtC,IAAA7Z,OAAA,CACA,GAAAwqD,IAAAtD,QAAArtC,GACA63B,GAAAwV,QAAA,MAAA,SAAAgC,GACA,MAAA/W,IAAAC,KAAAoY,GAAA/lD,KAAA1D,aAGA,GAAA,IAAAmmD,QAAAmC,KAAArpD,OAAA,CACA,GAAAyqD,IAAAvD,QAAAmC,IACA3X,GAAAwV,QAAA,OAAA,SAAAgC,GACA,MAAA/W,IAAAC,KAAAqY,GAAAhmD,KAAA1D,aAGA,GAAA,IAAAmmD,QAAAz5B,QAAAztB,OAAA,CACA,GAAA0qD,IAAAxD,QAAAz5B,OACAikB,GAAAwV,QAAA,UAAA,SAAAtZ,GACA,MAAAuE,IAAAC,KAAAsY,GAAAjmD,KAAA1D,aAGA,GAAA,IAAAmmD,QAAAx5B,OAAA1tB,OAAA,CACA,GAAA2qD,IAAAzD,QAAAx5B,MACAgkB,GAAAwV,QAAA,SAAA,SAAAle,GACA,MAAAmJ,IAAAC,KAAAuY,GAAAlmD,KAAA1D,aAGAs+C,GAAA6H,QAAA,OACA7H,GAAA6H,QAAA,QACA7H,GAAA6H,QAAA,WACA7H,GAAA6H,QAAA,UACAnQ,GAAAmQ,SAMA,GAAA0D,IAAA,SAAAnsC,GACA,GAAAC,GAAAX,EAAAkvB,EAAAxuB,EAAA,SAAAwqB,EAAAiS,GAEA,MADAjS,GAAAiS,IAAA,EACAjS,OAEA,OAAAxqB,GAAAhe,KAAA,OAAAie,EAAAje,KAAA,MAEAoqD,GAAAD,IAAA,IAAA,IAAA,OAEAE,GAAAF,IAAA,IAAA,EAAA,IAAA,IAAA,GAEA,IAAA/d,EAAA,CAEA,GAAAke,IAAA,SAAArkD,EAAAskD,GACA,MAAAA,IAAAH,GAGA3Y,GAAAxrC,GACA,IAAAyrC,GAAA2C,SAAApuC,GACA,gBAAAA,GACA,IAAAA,EACA,gBAAAA,GAEAokD,GAGApkD,EAFA,IAAAA,EAGA,iBAAAA,GACA,IAAAA,EAEA,KAfA,MAkBAukD,GAAA,WAEA,MAAA3oD,QAAAgnC,OAAAhnC,OAAAgnC,OAAA,UAGA4hB,GAAA,SAAAC,EAAAtrD,EAAAqpD,GACA,GAAA/0C,EAAA+0C,IAAA5X,EAAA71B,OAAAytC,GACAnc,EAAAmc,EAAA,SAAAkC,GACA,IAAAjZ,GAAAO,aAAA0Y,GACA,KAAA,IAAAjiB,WAAA,kBAAAiiB,EAAA,0BAEAvrD,GAAAqH,IAAAkkD,EAAA,GAAAA,EAAA,UAEA,IAAAlC,YAAAiC,GACA1e,EAAA0e,EAAA5oD,UAAAyqC,QAAAkc,EAAA,SAAA5nD,EAAAoF,GACA7G,EAAAqH,IAAAR,EAAApF,SAEA,CACA,GAAA+pD,GAAAC,CACA,KAAApZ,GAAAgX,GAAA,CAEA,GADAoC,EAAAzrD,EAAAqH,KACAirC,GAAAI,WAAA+Y,GAAA,KAAA,IAAAniB,WAAA,UACAkiB,GAAAlZ,GAAAmB,YAAA4V,GAEA,OAAA,KAAAmC,EACA,OAAA,CACA,GAAA1/B,GAAAwmB,GAAA+B,aAAAmX,EACA,KAAA,IAAA1/B,EAAA,KACA,IAAA4/B,GAAA5/B,EAAArqB,KACA,KACA,IAAA6wC,GAAAO,aAAA6Y,GACA,KAAA,IAAApiB,WAAA,kBAAAoiB,EAAA,0BAEA9e,GAAA6e,EAAAzrD,EAAA0rD,EAAA,GAAAA,EAAA,IACA,MAAAroD,GAEA,KADAivC,IAAAyB,cAAAyX,GAAA,GACAnoD,MAMAsoD,GAAA,SAAAC,EAAAvkD,EAAAgiD,GACA,GAAA/0C,EAAA+0C,IAAA5X,EAAA71B,OAAAytC,GACAnc,EAAAmc,EAAA,SAAA5nD,GACA4F,EAAAuE,IAAAnK,SAEA,IAAA4nD,YAAAuC,GACAhf,EAAAgf,EAAAlpD,UAAAyqC,QAAAkc,EAAA,SAAA5nD,GACA4F,EAAAuE,IAAAnK,SAEA,CACA,GAAA+pD,GAAAC,CACA,KAAApZ,GAAAgX,GAAA,CAEA,GADAoC,EAAApkD,EAAAuE,KACA0mC,GAAAI,WAAA+Y,GAAA,KAAA,IAAAniB,WAAA,UACAkiB,GAAAlZ,GAAAmB,YAAA4V,GAEA,OAAA,KAAAmC,EACA,OAAA,CACA,GAAA1/B,GAAAwmB,GAAA+B,aAAAmX,EACA,KAAA,IAAA1/B,EAAA,KACA,IAAAmvB,GAAAnvB,EAAArqB,KACA,KACAmrC,EAAA6e,EAAApkD,EAAA4zC,GACA,MAAA53C,GAEA,KADAivC,IAAAyB,cAAAyX,GAAA,GACAnoD,MAOAwoD,IACArb,IAAA,WAEA,GAAA/8B,MAEAq4C,EAAA,SAAAjlD,EAAApF,GACAmD,KAAAiC,IAAAA,EACAjC,KAAAnD,MAAAA,EACAmD,KAAAknB,KAAA,KACAlnB,KAAAiU,KAAA,KAGAizC,GAAAppD,UAAAqpD,UAAA,WACA,MAAAnnD,MAAAiC,MAAA4M,EAGA,IAAAu4C,GAAA,SAAAhsD,GACA,QAAAA,EAAAisD,SAGAC,EAAA,SAAAlsD,EAAAqjC,GACA,IAAAiP,GAAAO,aAAA7yC,KAAAgsD,EAAAhsD,GACA,KAAA,IAAAspC,WAAA,wBAAAjG,EAAA,oCAAAiP,GAAA2C,SAAAj1C,KAIAmsD,EAAA,SAAAnsD,EAAAu7C,GACA2Q,EAAAlsD,EAAA,mBACA4E,KAAA+W,KAAA3b,EAAAosD,MACAxnD,KAAAlF,EAAAkF,KAAA+W,KACA/W,KAAA22C,KAAAA,EAGA4Q,GAAAzpD,WACAopB,KAAA,WACA,GAAApsB,GAAAkF,KAAAlF,EACA67C,EAAA32C,KAAA22C,KACA5/B,EAAA/W,KAAA+W,IACA,QAAA,KAAA/W,KAAAlF,EACA,MAAA26C,KAEA,MAAA36C,EAAAqsD,aAAArsD,IAAAic,GAEAjc,EAAAA,EAAAmZ,IAIA,KADA,GAAAnE,GACAhV,EAAAosB,OAAAnQ,GAEA,GADAjc,EAAAA,EAAAosB,MACApsB,EAAAqsD,YASA,MAPAr3C,GADA,QAAA6mC,EACA77C,EAAAmH,IACA,UAAA00C,EACA77C,EAAA+B,OAEA/B,EAAAmH,IAAAnH,EAAA+B,OAEAmD,KAAAlF,EAAAA,EACA26C,GAAA3lC,EAKA,OADA9P,MAAAlF,MAAA,GACA26C,OAGAlD,GAAAgV,EAAAzpD,UAEA,IAAA2pD,GACAC,EAAA,QAAA9b,KACA,KAAA5rC,eAAA4rC,IACA,KAAA,IAAAlH,WAAA,iCAEA,IAAA1kC,MAAAA,KAAAqnD,QACA,KAAA,IAAA3iB,WAAA,mBAEA,IAAAtpC,GAAAw3C,GAAA5yC,KAAA4rC,EAAA6b,GACAJ,SAAA,EACAG,MAAA,KACAG,KAAAhc,EAAA,GAAAA,GAAA,KACAic,MAAA,EACAC,SAAArB,OAGAzvC,EAAA,GAAAmwC,GAAA,KAAA,KAUA,OAPAnwC,GAAAmQ,KAAAnQ,EAAA9C,KAAA8C,EACA3b,EAAAosD,MAAAzwC,EAGAza,UAAAf,OAAA,GACAkrD,GAAA7a,EAAAxwC,EAAAkB,UAAA,IAEAlB,EAgMA,OA9LAqsD,GAAAC,EAAA5pD,UAEAsrC,EAAA7Q,OAAAkvB,EAAA,OAAA,WACA,OAAA,KAAAznD,KAAA4nD,MACA,KAAA,IAAAljB,WAAA,yCAEA,OAAA1kC,MAAA4nD,QAGA7e,EAAA0e,GACAljD,IAAA,SAAAtC,GACAqlD,EAAAtnD,KAAA,MACA,IAAA2mD,GACAmB,EAAAxB,GAAArkD,GAAA,EACA,IAAA,OAAA6lD,EAGA,MADAnB,GAAA3mD,KAAA6nD,SAAAC,GACAnB,EACAA,EAAA9pD,UAEA,EAGA,IAAAmD,KAAA2nD,KAGA,MADAhB,GAAA7a,EAAA5xC,KAAA8F,KAAA2nD,KAAA1lD,GACA0kD,EACAA,EAAA9pD,UAEA,EAKA,KAFA,GAAAka,GAAA/W,KAAAwnD,MACA1sD,EAAAic,GACAjc,EAAAA,EAAAosB,QAAAnQ,GACA,GAAA22B,GAAAiB,cAAA7zC,EAAAmH,IAAAA,GACA,MAAAnH,GAAA+B,OAKAqnB,IAAA,SAAAjiB,GACAqlD,EAAAtnD,KAAA,MACA,IAAA8nD,GAAAxB,GAAArkD,GAAA,EACA,IAAA,OAAA6lD,EAEA,WAAA,KAAA9nD,KAAA6nD,SAAAC,EAEA,IAAA9nD,KAAA2nD,KAEA,MAAA5b,GAAA7xC,KAAA8F,KAAA2nD,KAAA1lD,EAIA,KAFA,GAAA8U,GAAA/W,KAAAwnD,MACA1sD,EAAAic,GACAjc,EAAAA,EAAAosB,QAAAnQ,GACA,GAAA22B,GAAAiB,cAAA7zC,EAAAmH,IAAAA,GACA,OAAA,CAGA,QAAA,GAGAQ,IAAA,SAAAR,EAAApF,GACAyqD,EAAAtnD,KAAA,MACA,IAEA2mD,GAFA5vC,EAAA/W,KAAAwnD,MACA1sD,EAAAic,EAEA+wC,EAAAxB,GAAArkD,GAAA,EACA,IAAA,OAAA6lD,EAAA,CAEA,OAAA,KAAA9nD,KAAA6nD,SAAAC,GAEA,MADA9nD,MAAA6nD,SAAAC,GAAAjrD,MAAAA,EACAmD,IAEA2mD,GAAA3mD,KAAA6nD,SAAAC,GAAA,GAAAZ,GAAAjlD,EAAApF,GACA/B,EAAAic,EAAA9C,SAGAjU,MAAA2nD,OAEA5b,EAAA7xC,KAAA8F,KAAA2nD,KAAA1lD,GACA6pC,EAAA5xC,KAAA8F,KAAA2nD,KAAA1lD,GAAApF,MAAAA,GAEA8pD,EAAA,GAAAO,GAAAjlD,EAAApF,GACAmvC,EAAA9xC,KAAA8F,KAAA2nD,KAAA1lD,EAAA0kD,GACA7rD,EAAAic,EAAA9C,MAIA,OAAAnZ,EAAAA,EAAAosB,QAAAnQ,GACA,GAAA22B,GAAAiB,cAAA7zC,EAAAmH,IAAAA,GAEA,MADAnH,GAAA+B,MAAAA,EACAmD,IAYA,OATA2mD,GAAAA,GAAA,GAAAO,GAAAjlD,EAAApF,GACA6wC,GAAAgB,WAAA,EAAAzsC,KACA0kD,EAAA1kD,IAAA,GAEA0kD,EAAAz/B,KAAAlnB,KAAAwnD,MACAb,EAAA1yC,KAAAjU,KAAAwnD,MAAAvzC,KACA0yC,EAAA1yC,KAAAiT,KAAAy/B,EACAA,EAAAz/B,KAAAjT,KAAA0yC,EACA3mD,KAAA4nD,OAAA,EACA5nD,MAGA+nD,OAAA,SAAA9lD,GACAqlD,EAAAtnD,KAAA,SACA,IAAA+W,GAAA/W,KAAAwnD,MACA1sD,EAAAic,EACA+wC,EAAAxB,GAAArkD,GAAA,EACA,IAAA,OAAA6lD,EAAA,CAEA,OAAA,KAAA9nD,KAAA6nD,SAAAC,GACA,OAAA,CAEAhtD,GAAAkF,KAAA6nD,SAAAC,GAAA7zC,WACAjU,MAAA6nD,SAAAC,OAEA,IAAA9nD,KAAA2nD,KAAA,CAEA,IAAA5b,EAAA7xC,KAAA8F,KAAA2nD,KAAA1lD,GACA,OAAA,CAEAnH,GAAAgxC,EAAA5xC,KAAA8F,KAAA2nD,KAAA1lD,GAAAgS,KACA43B,EAAA3xC,KAAA8F,KAAA2nD,KAAA1lD,GAGA,MAAAnH,EAAAA,EAAAosB,QAAAnQ,GACA,GAAA22B,GAAAiB,cAAA7zC,EAAAmH,IAAAA,GAMA,MALAnH,GAAAmH,IAAA4M,EACA/T,EAAA+B,MAAAgS,EACA/T,EAAAmZ,KAAAiT,KAAApsB,EAAAosB,KACApsB,EAAAosB,KAAAjT,KAAAnZ,EAAAmZ,KACAjU,KAAA4nD,OAAA,GACA,CAGA,QAAA,GAGAI,MAAA,WAEAV,EAAAtnD,KAAA,SACAA,KAAA2nD,KAAAhc,EAAA,GAAAA,GAAA,KACA3rC,KAAA4nD,MAAA,EACA5nD,KAAA6nD,SAAArB,IAIA,KAHA,GAAAzvC,GAAA/W,KAAAwnD,MACA1sD,EAAAic,EACAxY,EAAAzD,EAAAosB,MACApsB,EAAAyD,KAAAwY,GACAjc,EAAAmH,IAAA4M,EACA/T,EAAA+B,MAAAgS,EACAtQ,EAAAzD,EAAAosB,KACApsB,EAAAosB,KAAApsB,EAAAmZ,KAAA8C,CAEAA,GAAAmQ,KAAAnQ,EAAA9C,KAAA8C,GAGAuC,KAAA,WAEA,MADAguC,GAAAtnD,KAAA,QACA,GAAAunD,GAAAvnD,KAAA,QAGA+M,OAAA,WAEA,MADAu6C,GAAAtnD,KAAA,UACA,GAAAunD,GAAAvnD,KAAA,UAGA03C,QAAA,WAEA,MADA4P,GAAAtnD,KAAA,WACA,GAAAunD,GAAAvnD,KAAA,cAGAuoC,QAAA,SAAAzpC,GACAwoD,EAAAtnD,KAAA,UAGA,KAAA,GAFA4D,GAAAtH,UAAAf,OAAA,EAAAe,UAAA,GAAA,KACA0yC,EAAAhvC,KAAA03C,UACAiP,EAAA3X,EAAA9nB,QAAAy/B,EAAAt3C,KAAAs3C,EAAA3X,EAAA9nB,OACAtjB,EACAokC,EAAAlpC,EAAA8E,EAAA+iD,EAAA9pD,MAAA,GAAA8pD,EAAA9pD,MAAA,GAAAmD,MAEAlB,EAAA6nD,EAAA9pD,MAAA,GAAA8pD,EAAA9pD,MAAA,GAAAmD,SAKAuyC,GAAAkV,EAAAA,EAAA/P,SAEAgQ,KAGAra,IAAA,WACA,GAcA4a,GAdAC,EAAA,SAAAzlD,GACA,MAAAA,GAAA0lD,aAAA,KAAA1lD,EAAAolD,UAEAO,EAAA,SAAA3lD,EAAAg8B,GACA,IAAAiP,GAAAO,aAAAxrC,KAAAylD,EAAAzlD,GAEA,KAAA,IAAAiiC,WAAA,iBAAAjG,EAAA,oCAAAiP,GAAA2C,SAAA5tC,KASA4lD,EAAA,QAAAhb,KACA,KAAArtC,eAAAqtC,IACA,KAAA,IAAA3I,WAAA,iCAEA,IAAA1kC,MAAAA,KAAAmoD,QACA,KAAA,IAAAzjB,WAAA,mBAEA,IAAAjiC,GAAAmwC,GAAA5yC,KAAAqtC,EAAA4a,GACAE,SAAA,EACAG,cAAA,KACAT,SAAArB,MAEA,KAAA/jD,EAAA0lD,QACA,KAAA,IAAAzjB,WAAA,UAOA,OAHApoC,WAAAf,OAAA,GACAwrD,GAAA1Z,EAAA5qC,EAAAnG,UAAA,IAEAmG,EAEAwlD,GAAAI,EAAAvqD,SAEA,IAAAyqD,GAAA,SAAAtmD,GACA,GAAAw0C,GAAAx0C,CACA,IAAA,UAAAw0C,EACA,MAAA,KACA,IAAA,eAAAA,EAAA,CAGA,GAAAhuC,GAAAguC,EAAA76C,OAAA,EACA,OAAA,MAAA6M,EACAiiC,EAAA+L,EAAA,GACA,MAAAhuC,GACAiiC,EAAA+L,EAAA,GACA,MAAAhuC,EACA,UAAAguC,GAGAA,IAGA+R,EAAA,SAAA/lD,GACA,IAAAA,EAAA,eAAA,CACA,GAAAmV,GAAA,GAAAqvC,IAAArb,GACAnpC,GAAA,eAAAmV,EACA0wB,EAAAhvB,EAAA7W,EAAAolD,UAAA,SAAA5lD,GACA,GAAAw0C,GAAA8R,EAAAtmD,EACA2V,GAAAnV,IAAAg0C,EAAAA,KAEAh0C,EAAA,eAAAmV,EAEAnV,EAAAolD,SAAA,KAqFA,OAlFAze,GAAA7Q,OAAA8vB,EAAAvqD,UAAA,OAAA,WAEA,MADAsqD,GAAApoD,KAAA,QACAA,KAAA6nD,SACAvuC,EAAAtZ,KAAA6nD,UAAAtsD,QAEAitD,EAAAxoD,MACAA,KAAA,eAAA8jC,QAGAiF,EAAAsf,EAAAvqD,WACAomB,IAAA,SAAAjiB,GACAmmD,EAAApoD,KAAA,MACA,IAAA8nD,EACA,OAAA9nD,MAAA6nD,UAAA,QAAAC,EAAAxB,GAAArkD,MACAjC,KAAA6nD,SAAAC,IAEAU,EAAAxoD,MACAA,KAAA,eAAAkkB,IAAAjiB,KAGA+E,IAAA,SAAA/E,GACAmmD,EAAApoD,KAAA,MACA,IAAA8nD,EACA,OAAA9nD,MAAA6nD,UAAA,QAAAC,EAAAxB,GAAArkD,KACAjC,KAAA6nD,SAAAC,IAAA,EACA9nD,OAEAwoD,EAAAxoD,MACAA,KAAA,eAAAyC,IAAAR,EAAAA,GACAjC,OAGA+nD,OAAA,SAAA9lD,GACAmmD,EAAApoD,KAAA,SACA,IAAA8nD,EACA,IAAA9nD,KAAA6nD,UAAA,QAAAC,EAAAxB,GAAArkD,IAAA,CACA,GAAAwmD,GAAA/c,EAAA1rC,KAAA6nD,SAAAC,EACA,cAAA9nD,MAAA6nD,SAAAC,IAAAW,EAGA,MADAD,GAAAxoD,MACAA,KAAA,eAAA,OAAAiC,IAGA+lD,MAAA,WACAI,EAAApoD,KAAA,SACAA,KAAA6nD,WACA7nD,KAAA6nD,SAAArB,MAEAxmD,KAAA,gBACAA,KAAA,eAAAgoD,SAIAj7C,OAAA,WAGA,MAFAq7C,GAAApoD,KAAA,UACAwoD,EAAAxoD,MACAA,KAAA,eAAA+M,UAGA2qC,QAAA,WAGA,MAFA0Q,GAAApoD,KAAA,WACAwoD,EAAAxoD,MACAA,KAAA,eAAA03C,WAGAnP,QAAA,SAAAzpC,GACAspD,EAAApoD,KAAA,UACA,IAAA4D,GAAAtH,UAAAf,OAAA,EAAAe,UAAA,GAAA,KACAosD,EAAA1oD,IACAwoD,GAAAE,GACA1oD,KAAA,eAAAuoC,QAAA,SAAA1rC,EAAAoF,GACA2B,EACAokC,EAAAlpC,EAAA8E,EAAA3B,EAAAA,EAAAymD,GAEA5pD,EAAAmD,EAAAA,EAAAymD,QAKAh+B,EAAA29B,EAAAvqD,UAAA,OAAAuqD,EAAAvqD,UAAAiP,QAAA,GACAwlC,GAAA8V,EAAAvqD,UAAAuqD,EAAAvqD,UAAAiP,QAEAs7C,KAIA,IAAAhe,EAAAuB,KAAAvB,EAAAgD,IAAA,CAEAnF,EAAA,WAAA,MAAA,KAAA,GAAA0D,OAAA,EAAA,KAAArnC,IAAA,OAEA8lC,EAAAuB,IAAA,QAAAA,KACA,KAAA5rC,eAAA4rC,IACA,KAAA,IAAAlH,WAAA,iCAEA,IAAA9sB,GAAA,GAAA+zB,EAMA,OALArvC,WAAAf,OAAA,GACAkrD,GAAA7a,EAAAh0B,EAAAtb,UAAA,UAEAsb,GAAArC,YACA1X,OAAAqsC,eAAAtyB,EAAAyyB,EAAAuB,IAAA9tC,WACA8Z,GAEAyyB,EAAAuB,IAAA9tC,UAAA+mC,EAAA8G,EAAA7tC,WACA4sB,EAAA2f,EAAAuB,IAAA9tC,UAAA,cAAAusC,EAAAuB,KAAA,GACAxC,EAAAU,iBAAAO,EAAAuB,IAAAD,GAEA,IAAAgd,IAAA,GAAA/c,KACAgd,GAAA,WAEA,GAAAhxC,GAAA,GAAAg0B,OAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAEA,OADAh0B,GAAAnV,KAAA,EAAAmV,GACAA,EAAArT,IAAA,KAAAqT,GAAAA,EAAArT,KAAA,KAAAqT,GAAAA,EAAAsM,IAAA,IAAAtM,EAAAsM,KAAA,MAEA2kC,GAAAF,GAAAlmD,IAAA,EAAA,KAAAkmD,EACAC,KAAAC,IACA5b,EAAArB,IAAA9tC,UAAA,MAAA,SAAA24C,EAAAhiC,GAEA,MADAuzB,GAAAgE,EAAAhsC,KAAA,IAAAy2C,EAAA,EAAAA,EAAAhiC,GACAzU,OAGA4oD,KACA7f,EAAA6C,IAAA9tC,WACAyG,IAAA,SAAAkyC,GACA,MAAAzO,GAAA8D,EAAA9rC,KAAA,IAAAy2C,EAAA,EAAAA,IAEAvyB,IAAA,SAAAuyB,GACA,MAAAzO,GAAA+D,EAAA/rC,KAAA,IAAAy2C,EAAA,EAAAA,MAEA,GACArN,EAAAU,iBAAA8B,IAAA9tC,UAAAyG,IAAAunC,GACA1C,EAAAU,iBAAA8B,IAAA9tC,UAAAomB,IAAA6nB,GAEA,IAAA+c,IAAA,GAAAzb,KACA0b,GAAA,SAAA91C,GAGA,MAFAA,GAAA,OAAA,GACAA,EAAAjM,KAAA,IACAiM,EAAAiR,IAAA,IACA4kC,IACAE,GAAAF,GAAA9hD,IAAA,KAAA8hD,EACA,KAAAC,KAAAC,GAAA,CACA,GAAAC,IAAA5b,IAAAvvC,UAAAkJ,GACAqmC,KAAAvvC,UAAAkJ,IAAA,SAAAyN,GAEA,MADAuzB,GAAAihB,GAAAjpD,KAAA,IAAAyU,EAAA,EAAAA,GACAzU,MAEAopC,EAAAU,iBAAAuD,IAAAvvC,UAAAkJ,IAAAiiD,IAEA,IAAAF,GAAA,CACA,GAAAG,IAAA7b,IAAAvvC,UAAAomB,GACAmpB,KAAAvvC,UAAAomB,IAAA,SAAAzP,GACA,MAAAuzB,GAAAkhB,GAAAlpD,KAAA,IAAAyU,EAAA,EAAAA,IAEA20B,EAAAU,iBAAAuD,IAAAvvC,UAAAomB,IAAAglC,GACA,IAAAC,IAAA9b,IAAAvvC,UAAA,MACAuvC,KAAAvvC,UAAA,OAAA,SAAA2W,GACA,MAAAuzB,GAAAmhB,GAAAnpD,KAAA,IAAAyU,EAAA,EAAAA,IAEA20B,EAAAU,iBAAAuD,IAAAvvC,UAAA,OAAAqrD,IAEA,GAAAC,IAAApf,EAAAK,EAAAuB,IAAA,SAAAyd,GACA,GAAAzxC,GAAA,GAAAyxC,MAIA,OADAzxC,GAAAnV,IAAA,GAAA,IACAmV,YAAAyxC,KAGAC,GAAAzrD,OAAAqsC,iBAAAkf,GACAG,GAAA,WACA,IACA,QAAAlf,EAAAuB,eAAAvB,GAAAuB,KACA,MAAAntC,GACA,MAAAA,aAAAimC,cAGA,KAAA2F,EAAAuB,IAAArwC,SAAA+tD,IAAAC,KACAlf,EAAAuB,IAAA,QAAAA,KACA,KAAA5rC,eAAA4rC,IACA,KAAA,IAAAlH,WAAA,iCAEA,IAAA9sB,GAAA,GAAA+zB,EAMA,OALArvC,WAAAf,OAAA,GACAkrD,GAAA7a,EAAAh0B,EAAAtb,UAAA,UAEAsb,GAAArC,YACA1X,OAAAqsC,eAAAtyB,EAAAg0B,EAAA9tC,WACA8Z,GAEAyyB,EAAAuB,IAAA9tC,UAAA6tC,EAAA7tC,UACA4sB,EAAA2f,EAAAuB,IAAA9tC,UAAA,cAAAusC,EAAAuB,KAAA,GACAxC,EAAAU,iBAAAO,EAAAuB,IAAAD,GAEA,IAAA6d,IAAAxf,EAAAK,EAAAgD,IAAA,SAAA6C,GACA,GAAAj9B,GAAA,GAAAi9B,MAEA,OADAj9B,GAAAjM,IAAA,GAAA,IACAiM,YAAAi9B,KAGAuZ,GAAA5rD,OAAAqsC,iBAAAsf,GACAE,GAAA,WACA,IACA,QAAArf,EAAAgD,eAAAhD,GAAAgD,KACA,MAAA5uC,GACA,MAAAA,aAAAimC,cAGA,IAAA,IAAA2F,EAAAgD,IAAA9xC,QAAAkuD,KAAAC,GAAA,CACA,GAAAC,IAAAtf,EAAAgD,GACAhD,GAAAgD,IAAA,QAAAA,KACA,KAAArtC,eAAAqtC,IACA,KAAA,IAAA3I,WAAA,iCAEA,IAAAzxB,GAAA,GAAA02C,GAMA,OALArtD,WAAAf,OAAA,GACAwrD,GAAA1Z,EAAAp6B,EAAA3W,UAAA,UAEA2W,GAAAsC,YACA1X,OAAAqsC,eAAAj3B,EAAAo6B,EAAAvvC,WACAmV,GAEAo3B,EAAAgD,IAAAvvC,UAAA6rD,GAAA7rD,UACA4sB,EAAA2f,EAAAgD,IAAAvvC,UAAA,cAAAusC,EAAAgD,KAAA,GACAjE,EAAAU,iBAAAO,EAAAgD,IAAAsc,IAEA,GAAAC,IAAA,GAAAvf,GAAAuB,IACAie,IAAA3hB,EAAA,WACA,MAAA0hB,IAAAtwC,OAAA4N,OAAA7X,MAsCA,KA5BA,kBAAAg7B,GAAAuB,IAAA9tC,UAAAkqD,OACA,KAAA,GAAA3d,GAAAgD,KAAAvJ,MACA,IAAA8lB,GAAA9lB,MACA,kBAAAuG,GAAAuB,IAAA9tC,UAAAwb,MACA,kBAAA+wB,GAAAgD,IAAAvvC,UAAAwb,MACA,kBAAA+wB,GAAAuB,IAAA9tC,UAAAyqC,SACA,kBAAA8B,GAAAgD,IAAAvvC,UAAAyqC,SACAJ,EAAAkC,EAAAuB,MACAzD,EAAAkC,EAAAgD,MACA,kBAAAuc,IAAAtwC,OAAA4N,MACA2iC,KACAT,KAEArgB,EAAAsB,GACAuB,IAAAqb,GAAArb,IACAyB,IAAA4Z,GAAA5Z,MACA,GAGAhD,EAAAgD,IAAAvvC,UAAAwb,OAAA+wB,EAAAgD,IAAAvvC,UAAAiP,QAEA2d,EAAA2f,EAAAgD,IAAAvvC,UAAA,OAAAusC,EAAAgD,IAAAvvC,UAAAiP,QAAA,GAIAwlC,GAAA10C,OAAAi6C,gBAAA,GAAAzN,GAAAuB,KAAAtyB,SACAi5B,GAAA10C,OAAAi6C,gBAAA,GAAAzN,GAAAgD,KAAA/zB,SAEA+uB,GAAA,QAAAgC,EAAAgD,IAAAvvC,UAAAomB,IAAA9pB,KAAA,CAEA,GAAA0vD,IAAAzf,EAAAgD,IAAAvvC,UAAAomB,GACA+oB,GAAA5C,EAAAgD,IAAAvvC,UAAA,MAAA,SAAAmE,GACA,MAAA+lC,GAAA8hB,GAAA9pD,KAAAiC,MAIA8mC,EAAAsB,EAAA4c,IACA3U,GAAAjI,EAAAuB,KACA0G,GAAAjI,EAAAgD,KAGA,GAAA0c,IAAA,SAAAn3C,GACA,IAAA86B,GAAAO,aAAAr7B,GACA,KAAA,IAAA8xB,WAAA,6BAQAslB,IAEAvtD,MAAA,WACA,MAAAixC,IAAAC,KAAAD,GAAAC,KAAA,KAAArxC,YAIAuzC,UAAA,SAAAt6B,EAAAnZ,GACA,IAAAsxC,GAAAS,cAAA54B,GACA,KAAA,IAAAmvB,WAAA,wCAEA,IAAAiL,GAAArzC,UAAAf,OAAA,EAAAe,UAAA,GAAAiZ,CACA,KAAAm4B,GAAAS,cAAAwB,GACA,KAAA,IAAAjL,WAAA,oCAEA,OAAAgJ,IAAAgC,UAAAn6B,EAAAnZ,EAAAuzC,EAAA,aAOAsa,eAAA,SAAAr3C,EAAA3Q,GAEA,GADA8nD,GAAAn3C,GACAw1B,EAAA,CACA,GAAA6U,GAAAp/C,OAAA2rC,yBAAA52B,EAAA3Q,EAEA,IAAAg7C,IAAAA,EAAAryB,aACA,OAAA,EAKA,aAAAhY,GAAA3Q,IAGAiiB,IAAA,SAAAtR,EAAA3Q,GAEA,MADA8nD,IAAAn3C,GACA3Q,IAAA2Q,IAIA/U,QAAAu0C,qBACAv0C,OAAAu9C,OAAA4O,IAMAE,QAAA,SAAAt3C,GACAm3C,GAAAn3C,EACA,IAAA0G,GAAAzb,OAAAu0C,oBAAAx/B,EAMA,OAJA86B,IAAAI,WAAAjwC,OAAAmnC,wBACA4F,EAAAtxB,EAAAzb,OAAAmnC,sBAAApyB,IAGA0G,IAKA,IAAA6wC,IAAA,SAAAr4C,GACA,OAAAm2B,EAAAn2B,GAkBA,IAfAjU,OAAAw9C,mBACAx9C,OAAAu9C,OAAA4O,IACAnN,aAAA,SAAAjqC,GAEA,MADAm3C,IAAAn3C,GACA/U,OAAAg/C,aAAAjqC,IAEAyoC,kBAAA,SAAAzoC,GAEA,MADAm3C,IAAAn3C,GACAu3C,GAAA,WACAtsD,OAAAw9C,kBAAAzoC,QAMAw1B,EAAA,CACA,GAAAgiB,IAAA,SAAAx3C,EAAA3Q,EAAA83C,GACA,GAAAkD,GAAAp/C,OAAA2rC,yBAAA52B,EAAA3Q,EAEA,KAAAg7C,EAAA,CACA,GAAAp8B,GAAAhjB,OAAAi6C,eAAAllC,EAEA,IAAA,OAAAiO,EACA,MAGA,OAAAupC,IAAAvpC,EAAA5e,EAAA83C,GAGA,MAAA,SAAAkD,GACAA,EAAApgD,MAGAogD,EAAA14C,IACAmpC,GAAAC,KAAAsP,EAAA14C,IAAAw1C,OADA,IAOAsQ,GAAA,SAAAz3C,EAAA3Q,EAAApF,EAAAk9C,GACA,GAAAkD,GAAAp/C,OAAA2rC,yBAAA52B,EAAA3Q,EAEA,KAAAg7C,EAAA,CACA,GAAAp8B,GAAAhjB,OAAAi6C,eAAAllC,EAEA,IAAA,OAAAiO,EACA,MAAAwpC,IAAAxpC,EAAA5e,EAAApF,EAAAk9C,EAGAkD,IACApgD,UAAA,GACA8tB,UAAA,EACAme,YAAA,EACAle,cAAA,GAIA,GAAA,SAAAqyB,GAAA,CACA,IAAAA,EAAAtyB,SACA,OAAA,CAGA,KAAA+iB,GAAAO,aAAA8L,GACA,OAAA,CAKA,OAFAl8C,QAAA2rC,yBAAAuQ,EAAA93C,GAGAqrC,GAAA5iB,eAAAqvB,EAAA93C,GACApF,MAAAA,IAGAywC,GAAA5iB,eAAAqvB,EAAA93C,GACApF,MAAAA,EACA8tB,UAAA,EACAme,YAAA,EACAle,cAAA,IAKA,QAAAqyB,EAAAx6C,MACAulC,EAAAiV,EAAAx6C,IAAAs3C,EAAAl9C,IACA,GAMAgB,QAAAu9C,OAAA4O,IACAt/B,eAAA,SAAA9X,EAAA03C,EAAAvrC,GAEA,MADAgrC,IAAAn3C,GACAu3C,GAAA,WACAtsD,OAAA6sB,eAAA9X,EAAA03C,EAAAvrC,MAIAyqB,yBAAA,SAAA52B,EAAA03C,GAEA,MADAP,IAAAn3C,GACA/U,OAAA2rC,yBAAA52B,EAAA03C,IAIA/lD,IAAA,SAAAqO,EAAA3Q,GACA8nD,GAAAn3C,EACA,IAAAmnC,GAAAz9C,UAAAf,OAAA,EAAAe,UAAA,GAAAsW,CAEA,OAAAw3C,IAAAx3C,EAAA3Q,EAAA83C,IAGAt3C,IAAA,SAAAmQ,EAAA3Q,EAAApF,GACAktD,GAAAn3C,EACA,IAAAmnC,GAAAz9C,UAAAf,OAAA,EAAAe,UAAA,GAAAsW,CAEA,OAAAy3C,IAAAz3C,EAAA3Q,EAAApF,EAAAk9C,MAKA,GAAAl8C,OAAAi6C,eAAA,CACA,GAAAyS,IAAA1sD,OAAAi6C,cACAkS,IAAAlS,eAAA,SAAAllC,GAEA,MADAm3C,IAAAn3C,GACA23C,GAAA33C,IAIA,GAAA/U,OAAAqsC,gBAAA8f,GAAAlS,eAAA,CACA,GAAA0S,IAAA,SAAAppD,EAAAqpD,GAEA,IADA,GAAA3a,GAAA2a,EACA3a,GAAA,CACA,GAAA1uC,IAAA0uC,EACA,OAAA,CAEAA,GAAAka,GAAAlS,eAAAhI,GAEA,OAAA,EAGAjyC,QAAAu9C,OAAA4O,IAGA9f,eAAA,SAAA9oC,EAAA0uC,GAEA,GADAia,GAAA3oD,GACA,OAAA0uC,IAAApC,GAAAO,aAAA6B,GACA,KAAA,IAAApL,WAAA,kCAIA,OAAAoL,KAAAxC,GAAAwK,eAAA12C,MAKAksC,GAAAuP,eAAAvP,GAAAuP,aAAAz7C,OAKAopD,GAAAppD,EAAA0uC,KAIAjyC,OAAAqsC,eAAA9oC,EAAA0uC,IAEA,OAIA,GAAA4a,IAAA,SAAAzoD,EAAA0oD,GACA,GAAAjd,GAAAI,WAAAzD,EAAAiD,QAAArrC,IAEA,CACAimC,EAAA,WAIA,MAHAmC,GAAAiD,QAAArrC,GAAA,GACAooC,EAAAiD,QAAArrC,GAAA63C,KACAzP,EAAAiD,QAAArrC,IAAA,IACA,KAGAgrC,EAAA5C,EAAAiD,QAAArrC,EAAA0oD,OATAjgC,GAAA2f,EAAAiD,QAAArrC,EAAA0oD,GAaA9sD,QAAAyb,KAAA0wC,IAAAzhB,QAAA,SAAAtmC,GACAyoD,GAAAzoD,EAAA+nD,GAAA/nD,KAEA,IAAA2oD,IAAAvgB,EAAAiD,QAAAwK,cAiCA,IAhCAzP,GAAAuiB,IAAA,mBAAAA,GAAAxwD,MACA6yC,EAAA5C,EAAAiD,QAAA,iBAAA,SAAA16B,GACA,MAAAo1B,GAAA4iB,GAAAvgB,EAAAiD,QAAA16B,KAGAy3B,EAAAiD,QAAApD,gBACAhC,EAAA,WAEA,MADAmC,GAAAiD,QAAApD,eAAA,OACA,KAEA+C,EAAA5C,EAAAiD,QAAA,iBAAA0c,GAAA9f,gBAGAG,EAAAiD,QAAA5iB,iBACAwd,EAAA,WACA,GAAA2iB,IAAAxgB,EAAAiD,QAAA5iB,eAAA,EAAA,QAAA7tB,MAAA,IAEAiuD,EAAA,kBAAAjtD,QAAAw9C,oBAAAhR,EAAAiD,QAAA5iB,eAAA7sB,OAAAw9C,sBAAA,UACA,OAAAwP,IAAAC,KAEA7d,EAAA5C,EAAAiD,QAAA,iBAAA0c,GAAAt/B,iBAGA2f,EAAAiD,QAAAuC,YACA3H,EAAA,WACA,GAAA0F,GAAA,YACA,OAAAvD,GAAAiD,QAAAuC,UAAA,gBAAAjC,YAAAA,MAEAX,EAAA5C,EAAAiD,QAAA,YAAA0c,GAAAna,YAIA,iBAAArvB,OAAA,GAAAjJ,MAAAuiC,MAAA,CACA,GAAAiR,IAAAxzC,KAAAzZ,UAAAiX,SACAi2C,GAAA,WACA,GAAAvR,IAAAz5C,IACA,OAAAy5C,KAAAA,EACA,eAEA/L,GAAAC,KAAAod,GAAA/qD,MAEAitC,GAAA11B,KAAAzZ,UAAA,WAAAktD,IAKA,GAAAC,KACAC,OAAA,SAAA9wD,GAAA,MAAAszC,IAAAyC,WAAAnwC,KAAA,IAAA,OAAA5F,IACA+wD,IAAA,WAAA,MAAAzd,IAAAyC,WAAAnwC,KAAA,MAAA,GAAA,KACAorD,MAAA,WAAA,MAAA1d,IAAAyC,WAAAnwC,KAAA,QAAA,GAAA,KACAqrD,KAAA,WAAA,MAAA3d,IAAAyC,WAAAnwC,KAAA,IAAA,GAAA,KACAsrD,MAAA,WAAA,MAAA5d,IAAAyC,WAAAnwC,KAAA,KAAA,GAAA,KACAurD,UAAA,SAAAC,GAAA,MAAA9d,IAAAyC,WAAAnwC,KAAA,OAAA,QAAAwrD,IACAC,SAAA,SAAA3nB,GAAA,MAAA4J,IAAAyC,WAAAnwC,KAAA,OAAA,OAAA8jC,IACA4nB,QAAA,WAAA,MAAAhe,IAAAyC,WAAAnwC,KAAA,IAAA,GAAA,KACA2rD,KAAA,SAAA9vB,GAAA,MAAA6R,IAAAyC,WAAAnwC,KAAA,IAAA,OAAA67B,IACA+vB,MAAA,WAAA,MAAAle,IAAAyC,WAAAnwC,KAAA,QAAA,GAAA,KACA6rD,OAAA,WAAA,MAAAne,IAAAyC,WAAAnwC,KAAA,SAAA,GAAA,KACA8rD,IAAA,WAAA,MAAApe,IAAAyC,WAAAnwC,KAAA,MAAA,GAAA,KACA+rD,IAAA,WAAA,MAAAre,IAAAyC,WAAAnwC,KAAA,MAAA,GAAA,KAEAsoC,GAAAzqC,OAAAyb,KAAA2xC,IAAA,SAAAhpD,GACA,GAAAw8B,GAAAje,OAAA1iB,UAAAmE,GACA+pD,GAAA,CACA,IAAAte,GAAAI,WAAArP,GAAA,CACA,GAAAwtB,GAAAjkB,EAAAvJ,EAAA,GAAA,OACAytB,EAAAzhB,KAAAwhB,EAAA3qD,MAAA,OAAA/F,MACAywD,GAAAC,IAAAA,EAAA7pD,eAAA8pD,EAAA,MAEAF,IAAA,CAEAA,IACA/e,EAAAzsB,OAAA1iB,UAAAmE,EAAAgpD,GAAAhpD,KAIA,IAAAkqD,IAAA,WAEA,IAAAhf,GAAA,OAAA,CACA,IAAAif,GAAA,gBAAAvxB,OAAA,kBAAAA,MAAAuxB,UAAAvxB,KAAAuxB,UAAA,IACA,KAAAA,EAAA,OAAA,CACA,QAAA,KAAAA,EAAA50C,KAAA,OAAA,CACA,IAAA,WAAA40C,GAAA50C,MAAA,OAAA,CACA,IAAAzd,IAAAigB,EAAAxC,IAEA,OADAzd,GAAAyd,MAAA,EACA,OAAA40C,EAAAryD,MAGAsyD,GAAAnkB,EAAA,WAEA,OAAAiF,IACA,OAAAtS,KAAAuxB,UAAAvuD,OAAA2Z,OAAA,SAAAqjB,KAAAuxB,WAAAvuD,OAAA2Z,QAEA,IAAA20C,KAAAE,GAAA,CACA,GAAAC,IAAAzxB,KAAAuxB,SACAnf,GAAApS,KAAA,YAAA,SAAAh+B,GACA,GAAA,gBAAAA,GAAA,CACA,GAAAy0C,EACAh1C,WAAAf,OAAA,IACA+1C,EAAAh1C,UAAA,GAEA,IAAAF,IAAAS,EACA,IAAA6S,EAAA4hC,GAeAl1C,EAAAG,KAAA+0C,OAfA,CACA,GAAAib,GAAA7e,GAAAI,WAAAwD,GAAAA,EAAA,KACAkb,EAAA,SAAAvqD,EAAAmK,GACA,GAAAqgD,GAAAF,EAAAvkB,EAAAukB,EAAAvsD,KAAAiC,EAAAmK,GAAAA,CACA,IAAA,gBAAAqgD,GACA,MAAA5f,GAAAG,OAAAyf,GACA1R,OAAA0R,GAEAA,EAIArwD,GAAAG,KAAAiwD,GAQA,MAHAlwD,WAAAf,OAAA,GACAa,EAAAG,KAAAD,UAAA,IAEAgwD,GAAA7vD,MAAAuD,KAAA5D,MAIA,MAAAiuC,KC/vHA,SAAA7lB,GAgEA,QAAAlQ,GAAAnU,GACA,KAAA,IAAAizC,YAAAsZ,EAAAvsD,IAWA,QAAA/E,GAAAs7C,EAAAhwC,GAGA,IAFA,GAAAnL,GAAAm7C,EAAAn7C,OACAuU,KACAvU,KACAuU,EAAAvU,GAAAmL,EAAAgwC,EAAAn7C,GAEA,OAAAuU,GAaA,QAAA68C,GAAA31C,EAAAtQ,GACA,GAAAxI,GAAA8Y,EAAA7b,MAAA,KACA2U,EAAA,EAWA,OAVA5R,GAAA3C,OAAA,IAGAuU,EAAA5R,EAAA,GAAA,IACA8Y,EAAA9Y,EAAA,IAGA8Y,EAAAA,EAAArb,QAAAixD,EAAA,KAGA98C,EADA1U,EADA4b,EAAA7b,MAAA,KACAuL,GAAA1K,KAAA,KAiBA,QAAA6wD,GAAA71C,GAMA,IALA,GAGAna,GACAoP,EAJAggD,KACAa,EAAA,EACAvxD,EAAAyb,EAAAzb,OAGAuxD,EAAAvxD,GACAsB,EAAAma,EAAA69B,WAAAiY,KACAjwD,GAAA,OAAAA,GAAA,OAAAiwD,EAAAvxD,GAEA0Q,EAAA+K,EAAA69B,WAAAiY,KACA,QAAA,MAAA7gD,GACAggD,EAAA1vD,OAAA,KAAAM,IAAA,KAAA,KAAAoP,GAAA,QAIAggD,EAAA1vD,KAAAM,GACAiwD,MAGAb,EAAA1vD,KAAAM,EAGA,OAAAovD,GAWA,QAAAc,GAAArW,GACA,MAAAt7C,GAAAs7C,EAAA,SAAA75C,GACA,GAAAovD,GAAA,EAOA,OANApvD,GAAA,QACAA,GAAA,MACAovD,GAAAe,EAAAnwD,IAAA,GAAA,KAAA,OACAA,EAAA,MAAA,KAAAA,GAEAovD,GAAAe,EAAAnwD,KAEAb,KAAA,IAYA,QAAAixD,GAAAC,GACA,MAAAA,GAAA,GAAA,GACAA,EAAA,GAEAA,EAAA,GAAA,GACAA,EAAA,GAEAA,EAAA,GAAA,GACAA,EAAA,GAEApyC,EAcA,QAAAqyC,GAAAC,EAAA3rD,GAGA,MAAA2rD,GAAA,GAAA,IAAAA,EAAA,MAAA,GAAA3rD,IAAA,GAQA,QAAA4rD,GAAAC,EAAAC,EAAAC,GACA,GAAA/W,GAAA,CAGA,KAFA6W,EAAAE,EAAAtiB,EAAAoiB,EAAAG,GAAAH,GAAA,EACAA,GAAApiB,EAAAoiB,EAAAC,GACAD,EAAAI,EAAAC,GAAA,EAAAlX,GAAA37B,EACAwyC,EAAApiB,EAAAoiB,EAAAI,EAEA,OAAAxiB,GAAAuL,GAAAiX,EAAA,GAAAJ,GAAAA,EAAAM,IAUA,QAAAC,GAAAtsC,GAEA,GAEAusC,GAIAjD,EACA9vD,EACAuC,EACAywD,EACAjuD,EACA22C,EACA2W,EACAtgC,EAEAkhC,EAfA/B,KACAgC,EAAA1sC,EAAAhmB,OAEAT,EAAA,EACAuD,EAAA6vD,EACAC,EAAAC,CAqBA,KALAvD,EAAAtpC,EAAA8sC,YAAAC,GACAzD,EAAA,IACAA,EAAA,GAGA9vD,EAAA,EAAAA,EAAA8vD,IAAA9vD,EAEAwmB,EAAAszB,WAAA95C,IAAA,KACAuZ,EAAA,aAEA23C,EAAA1vD,KAAAglB,EAAAszB,WAAA95C,GAMA,KAAAuC,EAAAutD,EAAA,EAAAA,EAAA,EAAA,EAAAvtD,EAAA2wD,GAAA,CAOA,IAAAF,EAAAjzD,EAAAgF,EAAA,EAAA22C,EAAA37B,EAEAxd,GAAA2wD,GACA35C,EAAA,iBAGA84C,EAAAH,EAAA1rC,EAAAszB,WAAAv3C,OAEA8vD,GAAAtyC,GAAAsyC,EAAAliB,GAAAqjB,EAAAzzD,GAAAgF,KACAwU,EAAA,YAGAxZ,GAAAsyD,EAAAttD,EACAgtB,EAAA2pB,GAAA0X,EAAAK,EAAA/X,GAAA0X,EAAAR,EAAAA,EAAAlX,EAAA0X,IAEAf,EAAAtgC,GAfA2pB,GAAA37B,EAmBAkzC,EAAAlzC,EAAAgS,EACAhtB,EAAAorC,EAAAqjB,EAAAP,IACA15C,EAAA,YAGAxU,GAAAkuD,CAIAF,GAAA7B,EAAA1wD,OAAA,EACA4yD,EAAAd,EAAAvyD,EAAAizD,EAAAD,EAAA,GAAAC,GAIA7iB,EAAApwC,EAAAgzD,GAAAS,EAAAlwD,GACAiW,EAAA,YAGAjW,GAAA6sC,EAAApwC,EAAAgzD,GACAhzD,GAAAgzD,EAGA7B,EAAAlwD,OAAAjB,IAAA,EAAAuD,GAIA,MAAA0uD,GAAAd,GAUA,QAAAwC,GAAAltC,GACA,GAAAljB,GACAivD,EACAoB,EACAC,EACAR,EACApzD,EACA6c,EACAg3C,EACAnY,EACA3pB,EACA9pB,EAGAirD,EAEAY,EACAb,EACAc,EANA7C,IAoBA,KAXA1qC,EAAAsrC,EAAAtrC,GAGA0sC,EAAA1sC,EAAAhmB,OAGA8C,EAAA6vD,EACAZ,EAAA,EACAa,EAAAC,EAGArzD,EAAA,EAAAA,EAAAkzD,IAAAlzD,GACAiI,EAAAue,EAAAxmB,IACA,KACAkxD,EAAA1vD,KAAAywD,EAAAhqD,GAeA,KAXA0rD,EAAAC,EAAA1C,EAAA1wD,OAMAozD,GACA1C,EAAA1vD,KAAA+xD,GAIAI,EAAAT,GAAA,CAIA,IAAAr2C,EAAA22C,EAAAxzD,EAAA,EAAAA,EAAAkzD,IAAAlzD,GACAiI,EAAAue,EAAAxmB,KACAsD,GAAA2E,EAAA4U,IACAA,EAAA5U,EAcA,KARA6rD,EAAAH,EAAA,EACA92C,EAAAvZ,EAAA6sC,GAAAqjB,EAAAjB,GAAAuB,IACAv6C,EAAA,YAGAg5C,IAAA11C,EAAAvZ,GAAAwwD,EACAxwD,EAAAuZ,EAEA7c,EAAA,EAAAA,EAAAkzD,IAAAlzD,EAOA,GANAiI,EAAAue,EAAAxmB,GAEAiI,EAAA3E,KAAAivD,EAAAiB,GACAj6C,EAAA,YAGAtR,GAAA3E,EAAA,CAEA,IAAAuwD,EAAAtB,EAAA7W,EAAA37B,EACAgS,EAAA2pB,GAAA0X,EAAAK,EAAA/X,GAAA0X,EAAAR,EAAAA,EAAAlX,EAAA0X,IACAS,EAAA9hC,GAFA2pB,GAAA37B,EAKAg0C,EAAAF,EAAA9hC,EACAkhC,EAAAlzC,EAAAgS,EACAm/B,EAAA1vD,KACAywD,EAAAG,EAAArgC,EAAAgiC,EAAAd,EAAA,KAEAY,EAAA1jB,EAAA4jB,EAAAd,EAGA/B,GAAA1vD,KAAAywD,EAAAG,EAAAyB,EAAA,KACAT,EAAAd,EAAAC,EAAAuB,EAAAH,GAAAC,GACArB,EAAA,IACAoB,IAIApB,IACAjvD,EAGA,MAAA4tD,GAAAjwD,KAAA,IAcA,QAAA+yD,GAAAxtC,GACA,MAAAorC,GAAAprC,EAAA,SAAAvK,GACA,MAAAg4C,GAAAtzD,KAAAsb,GACA62C,EAAA72C,EAAAnb,MAAA,GAAAuG,eACA4U,IAeA,QAAAi4C,GAAA1tC,GACA,MAAAorC,GAAAprC,EAAA,SAAAvK,GACA,MAAAk4C,GAAAxzD,KAAAsb,GACA,OAAAy3C,EAAAz3C,GACAA,IAvdA,GAAAm4C,GAAA,gBAAA3wD,UAAAA,UACAA,QAAAoC,UAAApC,QACA4wD,EAAA,gBAAA1wD,SAAAA,SACAA,OAAAkC,UAAAlC,OACA2wD,EAAA,gBAAA1vD,SAAAA,MAEA0vD,GAAA1vD,SAAA0vD,GACAA,EAAAtvD,SAAAsvD,GACAA,EAAApmD,OAAAomD,IAEA7qC,EAAA6qC,EAQA,IAAAC,GAiCArtD,EA9BAssD,EAAA,WAGAzzC,EAAA,GACA0zC,EAAA,EACAb,EAAA,GACAC,EAAA,GACAH,EAAA,IACAW,EAAA,GACAF,EAAA,IACAI,EAAA,IAGAU,EAAA,QACAE,EAAA,eACAtC,EAAA,4BAGAF,GACA19C,SAAA,kDACAugD,YAAA,iDACAC,gBAAA,iBAIA9B,EAAA5yC,EAAA0zC,EACAtjB,EAAAp/B,KAAAo/B,MACA8hB,EAAAxsC,OAAAC,YAycA,IA3BA6uC,GAMA5pB,QAAA,QAQA+pB,MACA5B,OAAAhB,EACA4B,OAAA1B,GAEAc,OAAAA,EACAY,OAAAA,EACAQ,QAAAA,EACAF,UAAAA,GAOA,kBAAAn1D,SACA,gBAAAA,QAAA6F,KACA7F,OAAA6F,IAEA7F,OAAA,cAAA,WACA,MAAA01D,SAEA,IAAAH,GAAAC,EACA,GAAA1wD,OAAAF,SAAA2wD,EAEAC,EAAA5wD,QAAA8wD,MAGA,KAAArtD,IAAAqtD,GACAA,EAAAvxD,eAAAkE,KAAAktD,EAAAltD,GAAAqtD,EAAArtD,QAKAuiB,GAAA8qC,SAAAA,GAGAtvD,MCtgBA,SAAAwkB,EAAA5kB,GACA,YAEA,iBAAAlB,SAAAA,OAAAF,QAEAE,OAAAF,QAAAoB,IACA,kBAAAhG,SAAAA,OAAA6F,IAEA7F,OAAA,OAAAgG,GAGA4kB,EAAAkrC,KAAA9vD,EAAA4kB,IAEAxkB,KAAA,SAAAwkB,GACA,YAaA,SAAAmrC,GAAAC,GAWA,GAAAC,GAAAD,EAAAxtD,cACA0tD,EAAAD,EAAA10D,MAAA,KACAI,EAAAu0D,EAAAv0D,OACAw0D,EAAA,CAGA,MAAAD,EAAA,IAAA,KAAAA,EAAA,IAAA,KAAAA,EAAA,IAGAA,EAAAv8C,QACAu8C,EAAAv8C,SACA,KAAAu8C,EAAA,IAAA,KAAAA,EAAA,GAGAA,EAAAv8C,QACA,KAAAu8C,EAAAv0D,EAAA,IAAA,KAAAu0D,EAAAv0D,EAAA,IAEAu0D,EAAAhyC,MAGAviB,EAAAu0D,EAAAv0D,QAGA,IAAAu0D,EAAAv0D,EAAA,GAAAgC,QAAA,OAEAwyD,EAAA,EAIA,IAAA1oC,EACA,KAAAA,EAAA,EAAAA,EAAA9rB,GACA,KAAAu0D,EAAAzoC,GADAA,KAMA,GAAAA,EAAA0oC,EAEA,IADAD,EAAA/zD,OAAAsrB,EAAA,EAAA,QACAyoC,EAAAv0D,OAAAw0D,GACAD,EAAA/zD,OAAAsrB,EAAA,EAAA,OAMA,KAAA,GADA2oC,GACAl1D,EAAA,EAAAA,EAAAi1D,EAAAj1D,IAAA,CACAk1D,EAAAF,EAAAh1D,GAAAK,MAAA,GACA,KAAA,GAAAJ,GAAA,EAAAA,EAAA,IACA,MAAAi1D,EAAA,IAAAA,EAAAz0D,OAAA,GADAR,IAEAi1D,EAAAj0D,OAAA,EAAA,EAMA+zD,GAAAh1D,GAAAk1D,EAAAh0D,KAAA,IAIA,GAAAi0D,IAAA,EACAC,EAAA,EACAC,EAAA,EACAp8C,GAAA,EACAq8C,GAAA,CAGA,KAAAt1D,EAAA,EAAAA,EAAAi1D,EAAAj1D,IACAs1D,EACA,MAAAN,EAAAh1D,GACAq1D,GAAA,GAEAC,GAAA,EACAD,EAAAD,IACAD,EAAAl8C,EACAm8C,EAAAC,IAIA,MAAAL,EAAAh1D,KACAs1D,GAAA,EACAr8C,EAAAjZ,EACAq1D,EAAA,EAKAA,GAAAD,IACAD,EAAAl8C,EACAm8C,EAAAC,GAGAD,EAAA,GACAJ,EAAA/zD,OAAAk0D,EAAAC,EAAA,IAGA30D,EAAAu0D,EAAAv0D,MAGA,IAAAuU,GAAA,EAKA,KAJA,KAAAggD,EAAA,KACAhgD,EAAA,KAGAhV,EAAA,EAAAA,EAAAS,IACAuU,GAAAggD,EAAAh1D,GACAA,IAAAS,EAAA,GAFAT,IAMAgV,GAAA,GAOA,OAJA,KAAAggD,EAAAv0D,EAAA,KACAuU,GAAA,KAGAA,EAGA,QAAAq0B,KAMA,MAJA3f,GAAAkrC,OAAA1vD,OACAwkB,EAAAkrC,KAAAW,GAGArwD,KA1IA,GAAAqwD,GAAA7rC,GAAAA,EAAAkrC,IA6IA,QACAO,KAAAN,EACAxrB,WAAAA,KCxKA,SAAA3f,EAAA5kB,GACA,YAEA,iBAAAlB,SAAAA,OAAAF,QAEAE,OAAAF,QAAAoB,IACA,kBAAAhG,SAAAA,OAAA6F,IAEA7F,OAAA,qBAAAgG,GAGA4kB,EAAA8rC,mBAAA1wD,EAAA4kB,IAEAxkB,KAAA,SAAAwkB,GACA,YAGA,IAAA+rC,GAAA/rC,GAAAA,EAAA8rC,mBAEAE,GAQA7xC,MACA8xC,GAAA,wBACAC,GAAA,uCACAC,GAAA,wBACAhQ,GAAA,4BACAiQ,GAAA,sBACAC,GAAA,wCACAC,GAAA,gBACAC,GAAA,qCACAC,GAAA,2DACAC,GAAA,6CACArQ,GAAA,oCACAsQ,GAAA,wBACAC,GAAA,uCACAC,GAAA,gQACAC,GAAA,wBACAC,GAAA,mBACAC,GAAA,8CACAC,GAAA,oCACAC,GAAA,+HACAC,GAAA,gCACAC,GAAA,2BACAC,GAAA,oEACAC,GAAA,4CACAC,GAAA,qCACAC,GAAA,6CACAC,GAAA,yCACAC,GAAA,0CACAC,GAAA,wBACAC,GAAA,sCACAC,GAAA,yCACAC,GAAA,0BACAC,GAAA,sCACAC,GAAA,eACAC,GAAA,wBACAC,GAAA,uBACAC,GAAA,4BACArtC,GAAA,gCACAstC,GAAA,wBACAC,GAAA,4BACAC,GAAA,yLACAl0D,GAAA,gCACAm0D,GAAA,mCACAC,GAAA,2DACAC,GAAA,8BACAC,GAAA,sCACAjkB,GAAA,YACAkkB,GAAA,eACAC,GAAA,qCACAC,GAAA,+BACAC,GAAA,mCACAC,GAAA,gCACAC,GAAA,4CACAC,GAAA,wFACAC,GAAA,oBACAC,GAAA,0KACAC,GAAA,wBACAC,GAAA,wBACAC,GAAA,4BACAC,GAAA,wBACAC,GAAA,+DACAC,GAAA,wBACAC,GAAA,wCACAC,GAAA,uCACAC,GAAA,8BACAC,GAAA,YACAC,GAAA,mCACAC,GAAA,mCACAC,GAAA,qCACAC,GAAA,+BACAC,GAAA,gBACAC,GAAA,wBACAC,GAAA,wBACAC,GAAA,mEACAC,GAAA,8CACAC,GAAA,wBACAC,GAAA,qCACAC,GAAA,mDACAC,GAAA,8CACAC,GAAA,sCACAC,GAAA,4BACAC,GAAA,iCACAC,GAAA,yDACAC,GAAA,oCACAC,GAAA,kCACAC,GAAA,wDACAC,GAAA,oLACAn3D,GAAA,2DACAo3D,GAAA,gCACAC,GAAA,yBACAC,GAAA,mDACAC,GAAA,yBACAC,GAAA,wBACAC,GAAA,wBACAC,GAAA,+BACAC,GAAA,wBACAC,GAAA,0EACAC,GAAA,wBACAC,GAAA,cACArqC,GAAA,+EACAsqC,GAAA,+FACAC,GAAA,+CACAC,GAAA,6BACAC,GAAA,sBACAC,GAAA,WACAC,GAAA,2EACAC,GAAA,+CACAC,GAAA,sCACAC,GAAA,4BACAC,GAAA,4BACA7hB,GAAA,iBACA8hB,GAAA,+wBACAC,GAAA,uCACAC,GAAA,oCACAC,GAAA,oCACAC,GAAA,8EACAC,GAAA,gCACAC,GAAA,oCACAC,GAAA,iCACAhrC,GAAA,0BACAirC,GAAA,oEACAC,GAAA,uGACAC,GAAA,mBACAC,GAAA,8UACAC,GAAA,0BACAC,GAAA,iKACAC,GAAA,yBACAC,GAAA,4BACAC,GAAA,wCACAC,GAAA,uBACAC,GAAA,wDACAC,GAAA,kCACAC,GAAA,sBACAC,GAAA,8IACAC,GAAA,kCAEAC,IAAA,6DACAC,IAAA,eACAC,IAAA,KACAC,GAAA,QAOAv0C,IAAA,SAAAw0C,GACA,GAAAC,GAAAD,EAAArK,YAAA,IACA,IAAAsK,GAAA,GAAAA,GAAAD,EAAAn9D,OAAA,EACA,OAAA,CAEA,IAAAq9D,GAAAF,EAAArK,YAAA,IAAAsK,EAAA,EACA,IAAAC,GAAA,GAAAA,GAAAD,EAAA,EACA,OAAA,CAEA,IAAAE,GAAArI,EAAA7xC,KAAA+5C,EAAA78D,MAAA88D,EAAA,GACA,SAAAE,GAGAA,EAAAt7D,QAAA,IAAAm7D,EAAA78D,MAAA+8D,EAAA,EAAAD,GAAA,MAAA,GAEAlyC,GAAA,SAAAiyC,GACA,GAAAC,GAAAD,EAAArK,YAAA,IACA,IAAAsK,GAAA,GAAAA,GAAAD,EAAAn9D,OAAA,EACA,OAAA,CAGA,IADAm9D,EAAArK,YAAA,IAAAsK,EAAA,IACA,EACA,OAAA,CAEA,IAAAE,GAAArI,EAAA7xC,KAAA+5C,EAAA78D,MAAA88D,EAAA,GACA,SAAAE,GAGAA,EAAAt7D,QAAA,IAAAm7D,EAAA78D,MAAA,EAAA88D,GAAA,MAAA,GAEAp0D,IAAA,SAAAm0D,GACA,GAAAC,GAAAD,EAAArK,YAAA,IACA,IAAAsK,GAAA,GAAAA,GAAAD,EAAAn9D,OAAA,EACA,MAAA,KAEA,IAAAq9D,GAAAF,EAAArK,YAAA,IAAAsK,EAAA,EACA,IAAAC,GAAA,GAAAA,GAAAD,EAAA,EACA,MAAA,KAEA,IAAAE,GAAArI,EAAA7xC,KAAA+5C,EAAA78D,MAAA88D,EAAA,GACA,OAAAE,GAGAA,EAAAt7D,QAAA,IAAAm7D,EAAA78D,MAAA+8D,EAAA,EAAAD,GAAA,KAAA,EACA,KAEAD,EAAA78D,MAAA+8D,EAAA,GALA,MAOAz0B,WAAA,WAIA,MAHA3f,GAAA8rC,qBAAAtwD,OACAwkB,EAAA8rC,mBAAAC,GAEAvwD,MAIA,OAAAwwD,KCvOA,SAAAhsC,EAAA5kB,GACA,YAEA,iBAAAlB,SAAAA,OAAAF,QAEAE,OAAAF,QAAAoB,EAAAjG,QAAA,cAAAA,QAAA,UAAAA,QAAA,yBACA,kBAAAC,SAAAA,OAAA6F,IAEA7F,OAAA,SAAA,aAAA,SAAA,wBAAAgG,GAGA4kB,EAAAs0C,IAAAl5D,EAAA4kB,EAAA8qC,SAAA9qC,EAAAkrC,KAAAlrC,EAAA8rC,mBAAA9rC,IAEAxkB,KAAA,SAAAsvD,EAAAI,EAAAc,EAAAhsC,GACA,YAQA,SAAAs0C,GAAAj9B,EAAA/gB,GACA,GAAAi+C,GAAAz8D,UAAAf,QAAA,EACAy9D,EAAA18D,UAAAf,QAAA,CAGA,MAAAyE,eAAA84D,IACA,MAAAC,GACAC,EACA,GAAAF,GAAAj9B,EAAA/gB,GAGA,GAAAg+C,GAAAj9B,GAGA,GAAAi9B,EAGA,QAAA15D,KAAAy8B,EAAA,CACA,GAAAk9B,EACA,KAAA,IAAAr0B,WAAA,4CAIA7I,GADA,mBAAAtX,UACAA,SAAAI,KAAA,GAEA,GAIA,GAAA,OAAAkX,GACAk9B,EACA,KAAA,IAAAr0B,WAAA,uCAOA,OAHA1kC,MAAA2kB,KAAAkX,OAGAz8B,KAAA0b,EACA9a,KAAAi5D,WAAAn+C,GAGA9a,KAGA,QAAAw6C,GAAA39C,GACA,MAAA,WAAAnB,KAAAmB,GAQA,QAAAq8D,GAAAliD,GAEA,MAAAA,GAAArb,QAAA,6BAAA,QAGA,QAAAw9D,GAAAt8D,GAEA,WAAAuC,KAAAvC,EACA,YAGA2jB,OAAA3iB,OAAAC,UAAAiX,SAAA7a,KAAA2C,IAAAhB,MAAA,GAAA,GAGA,QAAA6T,GAAA3V,GACA,MAAA,UAAAo/D,EAAAp/D,GAGA,QAAAq/D,GAAAl3D,EAAArF,GACA,GACA/B,GAAAS,EADA89D,IAGA,IAAA,WAAAF,EAAAt8D,GACAw8D,EAAA,SACA,IAAA3pD,EAAA7S,GACA,IAAA/B,EAAA,EAAAS,EAAAsB,EAAAtB,OAAAT,EAAAS,EAAAT,IACAu+D,EAAAx8D,EAAA/B,KAAA,MAGAu+D,GAAAx8D,IAAA,CAGA,KAAA/B,EAAA,EAAAS,EAAA2G,EAAA3G,OAAAT,EAAAS,EAAAT,IAAA,EAEAu+D,OAAAj6D,KAAAi6D,EAAAn3D,EAAApH,MACAu+D,GAAAx8D,EAAAnB,KAAAwG,EAAApH,OAGAoH,EAAAnG,OAAAjB,EAAA,GACAS,IACAT,KAIA,MAAAoH,GAGA,QAAAo3D,GAAA36C,EAAA9hB,GACA,GAAA/B,GAAAS,CAGA,IAAAmU,EAAA7S,GAAA,CAEA,IAAA/B,EAAA,EAAAS,EAAAsB,EAAAtB,OAAAT,EAAAS,EAAAT,IACA,IAAAw+D,EAAA36C,EAAA9hB,EAAA/B,IACA,OAAA,CAIA,QAAA,EAGA,GAAAy+D,GAAAJ,EAAAt8D,EACA,KAAA/B,EAAA,EAAAS,EAAAojB,EAAApjB,OAAAT,EAAAS,EAAAT,IACA,GAAA,WAAAy+D,GACA,GAAA,gBAAA56C,GAAA7jB,IAAA6jB,EAAA7jB,GAAAwG,MAAAzE,GACA,OAAA,MAEA,IAAA8hB,EAAA7jB,KAAA+B,EACA,OAAA,CAIA,QAAA,EAGA,QAAA28D,GAAA7yD,EAAA8yD,GACA,IAAA/pD,EAAA/I,KAAA+I,EAAA+pD,GACA,OAAA,CAIA,IAAA9yD,EAAApL,SAAAk+D,EAAAl+D,OACA,OAAA,CAGAoL,GAAAmP,OACA2jD,EAAA3jD,MAEA,KAAA,GAAAhb,GAAA,EAAAuJ,EAAAsC,EAAApL,OAAAT,EAAAuJ,EAAAvJ,IACA,GAAA6L,EAAA7L,KAAA2+D,EAAA3+D,GACA,OAAA,CAIA,QAAA,EAGA,QAAA4+D,GAAA5iD,GACA,GAAA6iD,GAAA,YACA,OAAA7iD,GAAAnb,QAAAg+D,EAAA,IAyGA,QAAAC,GAAA/8D,GAEA,MAAAg9D,QAAAh9D,GAIA,QAAAi9D,GAAA9iD,GAEA,MAAA4oB,oBAAA5oB,GACArb,QAAA,WAAAi+D,GACAj+D,QAAA,MAAA,OA20BA,QAAAo+D,GAAAC,GACA,MAAA,UAAAvlD,EAAAwlD,GACA,WAAA76D,KAAAqV,EACAzU,KAAAk6D,OAAAF,IAAA,IAEAh6D,KAAAk6D,OAAAF,GAAAvlD,GAAA,KACAzU,KAAAi6D,OAAAA,GACAj6D,OAKA,QAAAm6D,GAAAH,EAAAI,GACA,MAAA,UAAA3lD,EAAAwlD,GACA,WAAA76D,KAAAqV,EACAzU,KAAAk6D,OAAAF,IAAA,IAEA,OAAAvlD,IACAA,GAAA,GACAA,EAAA7Y,OAAA,KAAAw+D,IACA3lD,EAAAA,EAAAjX,UAAA,KAIAwC,KAAAk6D,OAAAF,GAAAvlD,EACAzU,KAAAi6D,OAAAA,GACAj6D,OApnCA,GAAAq6D,GAAA71C,GAAAA,EAAAs0C,GAmDAA,GAAApzB,QAAA,QAEA,IAAAnnC,GAAAu6D,EAAAh7D,UACA7D,EAAA4D,OAAAC,UAAAC,cAyGA+6D,GAAAoB,OAAA,WACA,OACAn+B,SAAA,KACAyE,SAAA,KACA/a,SAAA,KACA60C,SAAA,KACAC,IAAA,KACAC,KAAA,KACAC,KAAA,KACAC,MAAA,KACA31D,SAAA,KAEA41D,uBAAA7B,EAAA6B,uBACAC,yBAAA9B,EAAA8B,yBACAC,iBAAA/B,EAAA+B,mBAMA/B,EAAA6B,wBAAA,EAEA7B,EAAA8B,0BAAA,EAEA9B,EAAA+B,kBAAA,EAEA/B,EAAAgC,oBAAA,uBACAhC,EAAAiC,eAAA,iBACAjC,EAAAkC,oBAAA,UAEAlC,EAAAmC,eAAA,uCAIAnC,EAAAoC,eAAA,0jCAKApC,EAAAqC,oBAAA,+MACArC,EAAAsC;WAEA33D,MAAA,yCAEAC,IAAA,aAEAmT,KAAA,iCAEAwkD,OAAA,8CAIAvC,EAAAwC,cACAC,KAAA,KACAC,MAAA,MACAC,IAAA,KACAC,OAAA,KACAxmB,GAAA,KACAymB,IAAA,OAGA7C,EAAA8C,eACA,OACA,SAMA9C,EAAA+C,4BAAA,qBAEA/C,EAAAgD,eACA9hD,EAAA,OACA+hD,WAAA,OACApQ,KAAA,OACA7wC,KAAA,OACApE,OAAA,MACAslD,KAAA,SACAC,IAAA,MACAC,KAAA,OACA9xD,OAAA,MACA+xD,MAAA,MACAzwC,OAAA,MACA0wC,MAAA,MACA76C,MAAA,MACA86C,MAAA,MACAC,MAAA,OAEAxD,EAAAyD,gBAAA,SAAA5zD,GACA,GAAAA,GAAAA,EAAA3E,SAAA,CAIA,GAAAA,GAAA2E,EAAA3E,SAAA5B,aAEA,IAAA,UAAA4B,GAAA,UAAA2E,EAAAxI,KAIA,MAAA24D,GAAAgD,cAAA93D,KAeA80D,EAAArK,OAAAqL,EACAhB,EAAAjL,OAAA2O,mBACA1D,EAAA2D,QAAA,WACA3D,EAAArK,OAAAoL,OACAf,EAAAjL,OAAA6O,UAEA5D,EAAAzb,QAAA,WACAyb,EAAArK,OAAAqL,EACAhB,EAAAjL,OAAA2O,oBAEA1D,EAAA6D,YACAC,UACAnO,QAGAoO,WAAA,+BACAzhE,KAEA0hE,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,MAGAxP,QACAgP,WAAA,WACAzhE,KACAkiE,IAAA,MACAC,IAAA,MACAC,IAAA,SAIAC,UACAhP,QAGAoO,WAAA,6DACAzhE,KAEAgiE,MAAA,IACAM,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAT,MAAA,IAEAU,MAAA,IACAjB,MAAA,IACAC,MAAA,IACAiB,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAnB,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,OAIAiB,SAQA3P,QACAoO,WAAA,wCACAzhE,KACA2iE,MAAA,IACAjB,MAAA,IACAkB,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAnB,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAE,MAAA,MAKAxP,QACAgP,WAAA,YACAzhE,KACAkiE,IAAA,MACAC,IAAA,MACAC,IAAA,MACAa,IAAA,UAKAvF,EAAAwF,YAAA,SAAAtnD,EAAA6jD,GACA,GAAAx6C,GAAAy4C,EAAArK,OAAAz3C,EAAA,GAKA,YAJA5X,KAAAy7D,IACAA,EAAA/B,EAAA+B,kBAGAA,EAAAx6C,EAAA1kB,QAAA,OAAA,KAAA0kB,GAEAy4C,EAAAyF,YAAA,SAAAvnD,EAAA6jD,GACA7jD,GAAA,OACA5X,KAAAy7D,IACAA,EAAA/B,EAAA+B,iBAGA,KACA,MAAA/B,GAAAjL,OAAAgN,EAAA7jD,EAAArb,QAAA,MAAA,OAAAqb,GACA,MAAAvY,GAKA,MAAAuY,IAIA,IACAgjD,GADAE,GAAAzL,OAAA,SAAAZ,OAAA,UAEA2Q,EAAA,SAAAC,EAAAzE,GACA,MAAA,UAAAhjD,GACA,IACA,MAAA8hD,GAAAkB,GAAAhjD,EAAA,IAAArb,QAAAm9D,EAAA6D,WAAA8B,GAAAzE,GAAA6C,WAAA,SAAAx4B,GACA,MAAAy0B,GAAA6D,WAAA8B,GAAAzE,GAAA5+D,IAAAipC,KAEA,MAAA5lC,GAKA,MAAAuY,KAKA,KAAAgjD,IAAAE,GACApB,EAAAkB,EAAA,eAAAwE,EAAA,WAAAtE,EAAAF,IACAlB,EAAAkB,EAAA,kBAAAwE,EAAA,UAAAtE,EAAAF,GAGA,IAAA0E,GAAA,SAAAC,EAAAC,EAAAC,GACA,MAAA,UAAA7nD,GAKA,GAAA8nD,EAIAA,GAHAD,EAGA,SAAA7nD,GACA,MAAA8hD,GAAA8F,GAAA9F,EAAA+F,GAAA7nD,KAHA8hD,EAAA8F,EASA,KAAA,GAFA9O,IAAA94C,EAAA,IAAA7b,MAAAwjE,GAEA7jE,EAAA,EAAAS,EAAAu0D,EAAAv0D,OAAAT,EAAAS,EAAAT,IACAg1D,EAAAh1D,GAAAgkE,EAAAhP,EAAAh1D,GAGA,OAAAg1D,GAAA9zD,KAAA2iE,IAKA7F,GAAAiG,WAAAL,EAAA,IAAA,qBACA5F,EAAAkG,cAAAN,EAAA,IAAA,wBACA5F,EAAAmG,WAAAP,EAAA,IAAA,oBAAA,UACA5F,EAAAoG,cAAAR,EAAA,IAAA,uBAAA,UAEA5F,EAAAqG,eAAAX,EAAA,WAAA,UAEA1F,EAAAh+B,MAAA,SAAA9jB,EAAA9Y,GACA,GAAAmpB,EAsDA,OArDAnpB,KACAA,GACAy8D,uBAAA7B,EAAA6B,yBAMAtzC,EAAArQ,EAAAzZ,QAAA,KACA8pB,GAAA,IAEAnpB,EAAA6G,SAAAiS,EAAAxZ,UAAA6pB,EAAA,IAAA,KACArQ,EAAAA,EAAAxZ,UAAA,EAAA6pB,IAIAA,EAAArQ,EAAAzZ,QAAA,KACA8pB,GAAA,IAEAnpB,EAAAw8D,MAAA1jD,EAAAxZ,UAAA6pB,EAAA,IAAA,KACArQ,EAAAA,EAAAxZ,UAAA,EAAA6pB,IAIA,OAAArQ,EAAAxZ,UAAA,EAAA,IAEAU,EAAA69B,SAAA,KACA/kB,EAAAA,EAAAxZ,UAAA,GAEAwZ,EAAA8hD,EAAAsG,eAAApoD,EAAA9Y,KAEAmpB,EAAArQ,EAAAzZ,QAAA,OACA,IACAW,EAAA69B,SAAA/kB,EAAAxZ,UAAA,EAAA6pB,IAAA,KACAnpB,EAAA69B,WAAA79B,EAAA69B,SAAAz6B,MAAAw3D,EAAAgC,qBAEA58D,EAAA69B,aAAA38B,GACA,OAAA4X,EAAAxZ,UAAA6pB,EAAA,EAAAA,EAAA,IACArQ,EAAAA,EAAAxZ,UAAA6pB,EAAA,GAGArQ,EAAA8hD,EAAAsG,eAAApoD,EAAA9Y,KAEA8Y,EAAAA,EAAAxZ,UAAA6pB,EAAA,GACAnpB,EAAAq8D,KAAA,IAMAr8D,EAAAu8D,KAAAzjD,EAGA9Y,GAEA46D,EAAAuG,UAAA,SAAAroD,EAAA9Y,GACA8Y,IACAA,EAAA,IAQAA,EAAAA,EAAArb,QAAA,MAAA,IAGA,IACA2jE,GACAxyC,EAFAzF,EAAArQ,EAAAzZ,QAAA,IAQA,KAJA,IAAA8pB,IACAA,EAAArQ,EAAAzb,QAGA,MAAAyb,EAAApb,OAAA,GAIA0jE,EAAAtoD,EAAAzZ,QAAA,KACAW,EAAAo8D,SAAAtjD,EAAAxZ,UAAA,EAAA8hE,IAAA,KACAphE,EAAAs8D,KAAAxjD,EAAAxZ,UAAA8hE,EAAA,EAAAj4C,IAAA,KACA,MAAAnpB,EAAAs8D,OACAt8D,EAAAs8D,KAAA,UAEA,CACA,GAAA+E,GAAAvoD,EAAAzZ,QAAA,KACAiiE,EAAAxoD,EAAAzZ,QAAA,KACAkiE,EAAAzoD,EAAAzZ,QAAA,IAAAgiE,EAAA,IACA,IAAAE,KAAA,IAAAD,GAAAC,EAAAD,IAGAthE,EAAAo8D,SAAAtjD,EAAAxZ,UAAA,EAAA6pB,IAAA,KACAnpB,EAAAs8D,KAAA,OAEA1tC,EAAA9V,EAAAxZ,UAAA,EAAA6pB,GAAAlsB,MAAA,KACA+C,EAAAo8D,SAAAxtC,EAAA,IAAA,KACA5uB,EAAAs8D,KAAA1tC,EAAA,IAAA,MAiBA,MAbA5uB,GAAAo8D,UAAA,MAAAtjD,EAAAxZ,UAAA6pB,GAAAzrB,OAAA,KACAyrB,IACArQ,EAAA,IAAAA,GAGA9Y,EAAAy8D,wBACA7B,EAAA4G,oBAAAxhE,EAAAo8D,SAAAp8D,EAAA69B,UAGA79B,EAAAs8D,MACA1B,EAAA6G,gBAAAzhE,EAAAs8D,MAGAxjD,EAAAxZ,UAAA6pB,IAAA,KAEAyxC,EAAAsG,eAAA,SAAApoD,EAAA9Y,GAEA,MADA8Y,GAAA8hD,EAAA8G,cAAA5oD,EAAA9Y,GACA46D,EAAAuG,UAAAroD,EAAA9Y,IAEA46D,EAAA8G,cAAA,SAAA5oD,EAAA9Y,GAEA,GAEA4uB,GAFA0yC,EAAAxoD,EAAAzZ,QAAA,KACA8pB,EAAArQ,EAAAq3C,YAAA,IAAAmR,GAAA,EAAAA,EAAAxoD,EAAAzb,OAAA,EAeA,OAXA8rB,IAAA,KAAA,IAAAm4C,GAAAn4C,EAAAm4C,IACA1yC,EAAA9V,EAAAxZ,UAAA,EAAA6pB,GAAAlsB,MAAA,KACA+C,EAAAsiC,SAAA1T,EAAA,GAAAgsC,EAAAjL,OAAA/gC,EAAA,IAAA,KACAA,EAAAvZ,QACArV,EAAAunB,SAAAqH,EAAA,GAAAgsC,EAAAjL,OAAA/gC,EAAA9wB,KAAA,MAAA,KACAgb,EAAAA,EAAAxZ,UAAA6pB,EAAA,KAEAnpB,EAAAsiC,SAAA,KACAtiC,EAAAunB,SAAA,MAGAzO,GAEA8hD,EAAA+G,WAAA,SAAA7oD,EAAA6jD,GACA,IAAA7jD,EACA,QAMA,MAFAA,EAAAA,EAAArb,QAAA,MAAA,KAAAA,QAAA,cAAA,KAGA,QAQA,KAAA,GAFA8Y,GAAAra,EAAAyC,EAHAm5C,KACA8pB,EAAA9oD,EAAA7b,MAAA,KACAI,EAAAukE,EAAAvkE,OAGAT,EAAA,EAAAA,EAAAS,EAAAT,IACA2Z,EAAAqrD,EAAAhlE,GAAAK,MAAA,KACAf,EAAA0+D,EAAAyF,YAAA9pD,EAAAlB,QAAAsnD,GAEAh+D,EAAA4X,EAAAlZ,OAAAu9D,EAAAyF,YAAA9pD,EAAAzY,KAAA,KAAA6+D,GAAA,KAEA5gE,EAAAC,KAAA87C,EAAA57C,IACA,gBAAA47C,GAAA57C,IAAA,OAAA47C,EAAA57C,KACA47C,EAAA57C,IAAA47C,EAAA57C,KAGA47C,EAAA57C,GAAAmC,KAAAM,IAEAm5C,EAAA57C,GAAAyC,CAIA,OAAAm5C,IAGA8iB,EAAAmB,MAAA,SAAA/7D,GACA,GAAA4uB,GAAA,EA2BA,OAzBA5uB,GAAA69B,WACAjP,GAAA5uB,EAAA69B,SAAA,KAGA79B,EAAAq8D,MAAAztC,IAAA5uB,EAAAo8D,WACAxtC,GAAA,MAGAA,GAAAgsC,EAAAiH,eAAA7hE,IAAA,GAEA,gBAAAA,GAAAu8D,OACA,MAAAv8D,EAAAu8D,KAAA7+D,OAAA,IAAA,gBAAAsC,GAAAo8D,WACAxtC,GAAA,KAGAA,GAAA5uB,EAAAu8D,MAGA,gBAAAv8D,GAAAw8D,OAAAx8D,EAAAw8D,QACA5tC,GAAA,IAAA5uB,EAAAw8D,OAGA,gBAAAx8D,GAAA6G,UAAA7G,EAAA6G,WACA+nB,GAAA,IAAA5uB,EAAA6G,UAEA+nB,GAEAgsC,EAAAkH,UAAA,SAAA9hE,GACA,GAAA4uB,GAAA,EAEA,OAAA5uB,GAAAo8D,UAEAxB,EAAAoC,eAAAx/D,KAAAwC,EAAAo8D,UACAxtC,GAAA,IAAA5uB,EAAAo8D,SAAA,IAEAxtC,GAAA5uB,EAAAo8D,SAGAp8D,EAAAs8D,OACA1tC,GAAA,IAAA5uB,EAAAs8D,MAGA1tC,GAXA,IAaAgsC,EAAAiH,eAAA,SAAA7hE,GACA,MAAA46D,GAAAmH,cAAA/hE,GAAA46D,EAAAkH,UAAA9hE,IAEA46D,EAAAmH,cAAA,SAAA/hE,GACA,GAAA4uB,GAAA,EAcA,OAZA5uB,GAAAsiC,WACA1T,GAAAgsC,EAAArK,OAAAvwD,EAAAsiC,WAGAtiC,EAAAunB,WACAqH,GAAA,IAAAgsC,EAAArK,OAAAvwD,EAAAunB,WAGAqH,IACAA,GAAA,KAGAA,GAEAgsC,EAAAoH,WAAA,SAAAh+D,EAAA04D,EAAAC,GAOA,GACAx0C,GAAApkB,EAAAnH,EAAAS,EADAuxB,EAAA,EAEA,KAAA7qB,IAAAC,GACA,GAAAjI,EAAAC,KAAAgI,EAAAD,IAAAA,EACA,GAAAyN,EAAAxN,EAAAD,IAEA,IADAokB,KACAvrB,EAAA,EAAAS,EAAA2G,EAAAD,GAAA1G,OAAAT,EAAAS,EAAAT,QACAsE,KAAA8C,EAAAD,GAAAnH,QAAAsE,KAAAinB,EAAAnkB,EAAAD,GAAAnH,GAAA,MACAgyB,GAAA,IAAAgsC,EAAAqH,oBAAAl+D,EAAAC,EAAAD,GAAAnH,GAAA+/D,IACA,IAAAD,IACAv0C,EAAAnkB,EAAAD,GAAAnH,GAAA,KAAA,aAIAsE,KAAA8C,EAAAD,KACA6qB,GAAA,IAAAgsC,EAAAqH,oBAAAl+D,EAAAC,EAAAD,GAAA44D,GAKA,OAAA/tC,GAAAtvB,UAAA,IAEAs7D,EAAAqH,oBAAA,SAAA/lE,EAAAyC,EAAAg+D,GAGA,MAAA/B,GAAAwF,YAAAlkE,EAAAygE,IAAA,OAAAh+D,EAAA,IAAAi8D,EAAAwF,YAAAzhE,EAAAg+D,GAAA,KAGA/B,EAAAsH,SAAA,SAAAl+D,EAAA9H,EAAAyC,GACA,GAAA,gBAAAzC,GACA,IAAA,GAAA6H,KAAA7H,GACAH,EAAAC,KAAAE,EAAA6H,IACA62D,EAAAsH,SAAAl+D,EAAAD,EAAA7H,EAAA6H,QAGA,CAAA,GAAA,gBAAA7H,GAcA,KAAA,IAAAsqC,WAAA,iEAbA,QAAAtlC,KAAA8C,EAAA9H,GAEA,YADA8H,EAAA9H,GAAAyC,EAEA,iBAAAqF,GAAA9H,KACA8H,EAAA9H,IAAA8H,EAAA9H,KAGAsV,EAAA7S,KACAA,GAAAA,IAGAqF,EAAA9H,IAAA8H,EAAA9H,QAAA0B,OAAAe,KAMAi8D,EAAAuH,SAAA,SAAAn+D,EAAA9H,EAAAyC,GACA,GAAA,gBAAAzC,GACA,IAAA,GAAA6H,KAAA7H,GACAH,EAAAC,KAAAE,EAAA6H,IACA62D,EAAAuH,SAAAn+D,EAAAD,EAAA7H,EAAA6H,QAGA,CAAA,GAAA,gBAAA7H,GAGA,KAAA,IAAAsqC,WAAA,iEAFAxiC,GAAA9H,OAAAgF,KAAAvC,EAAA,KAAAA,IAMAi8D,EAAAwH,YAAA,SAAAp+D,EAAA9H,EAAAyC,GACA,GAAA/B,GAAAS,EAAA0G,CAEA,IAAAyN,EAAAtV,GACA,IAAAU,EAAA,EAAAS,EAAAnB,EAAAmB,OAAAT,EAAAS,EAAAT,IACAoH,EAAA9H,EAAAU,QAAAsE,OAEA,IAAA,WAAA+5D,EAAA/+D,GACA,IAAA6H,IAAAC,GACA9H,EAAAsB,KAAAuG,KACAC,EAAAD,OAAA7C,QAGA,IAAA,gBAAAhF,GACA,IAAA6H,IAAA7H,GACAH,EAAAC,KAAAE,EAAA6H,IACA62D,EAAAwH,YAAAp+D,EAAAD,EAAA7H,EAAA6H,QAGA,CAAA,GAAA,gBAAA7H,GAiBA,KAAA,IAAAsqC,WAAA,kFAhBAtlC,KAAAvC,EACA,WAAAs8D,EAAAt8D,IACA6S,EAAAxN,EAAA9H,KAAAyC,EAAAnB,KAAAwG,EAAA9H,IACA8H,EAAA9H,OAAAgF,GAEA8C,EAAA9H,GAAAg/D,EAAAl3D,EAAA9H,GAAAyC,GAEAqF,EAAA9H,KAAAomB,OAAA3jB,IAAA6S,EAAA7S,IAAA,IAAAA,EAAAtB,OAEAmU,EAAAxN,EAAA9H,MACA8H,EAAA9H,GAAAg/D,EAAAl3D,EAAA9H,GAAAyC,IAFAqF,EAAA9H,OAAAgF,GAKA8C,EAAA9H,OAAAgF,KAMA05D,EAAAyH,SAAA,SAAAr+D,EAAA9H,EAAAyC,EAAA2jE,GACA,OAAArH,EAAA/+D,IACA,IAAA,SAEA,KAEA,KAAA,SACA,IAAA,GAAA6H,KAAAC,GACA,GAAAjI,EAAAC,KAAAgI,EAAAD,IACA7H,EAAAsB,KAAAuG,SAAA7C,KAAAvC,GAAAi8D,EAAAyH,SAAAr+D,EAAAD,EAAApF,IACA,OAAA,CAKA,QAAA,CAEA,KAAA,SACA,IAAA,GAAAu9D,KAAAhgE,GACA,GAAAH,EAAAC,KAAAE,EAAAggE,KACAtB,EAAAyH,SAAAr+D,EAAAk4D,EAAAhgE,EAAAggE,IACA,OAAA,CAKA,QAAA,CAEA,SACA,KAAA,IAAA11B,WAAA,uFAGA,OAAAy0B,EAAAt8D,IACA,IAAA,YAEA,MAAAzC,KAAA8H,EAEA,KAAA,UAGA,MAAArF,KADA4jE,QAAA/wD,EAAAxN,EAAA9H,IAAA8H,EAAA9H,GAAAmB,OAAA2G,EAAA9H,GAGA,KAAA,WAEA,QAAAyC,EAAAqF,EAAA9H,GAAAA,EAAA8H,EAEA,KAAA,QACA,IAAAwN,EAAAxN,EAAA9H,IACA,OAAA,CAIA,QADAomE,EAAAlH,EAAAE,GACAt3D,EAAA9H,GAAAyC,EAEA,KAAA,SACA,MAAA6S,GAAAxN,EAAA9H,MAIAomE,GAIAlH,EAAAp3D,EAAA9H,GAAAyC,GAPA4jE,QAAAv+D,EAAA9H,IAAA8H,EAAA9H,GAAAkH,MAAAzE,GASA,KAAA,SACAA,EAAA2jB,OAAA3jB,EAEA,KAAA,SACA,MAAA6S,GAAAxN,EAAA9H,MAIAomE,GAIAlH,EAAAp3D,EAAA9H,GAAAyC,GAPAqF,EAAA9H,KAAAyC,CASA,SACA,KAAA,IAAA6nC,WAAA,wGAKAo0B,EAAA4H,UAAA,WAKA,IAAA,GAJAn/C,MACAuuC,KACA6Q,EAAA,EAEA7lE,EAAA,EAAAA,EAAAwB,UAAAf,OAAAT,IAAA,CACA,GAAA+gC,GAAA,GAAAi9B,GAAAx8D,UAAAxB,GACAymB,GAAAhlB,KAAAs/B,EAEA,KAAA,GADAm0B,GAAAn0B,EAAA+kC,UACA3tD,EAAA,EAAAA,EAAA+8C,EAAAz0D,OAAA0X,IACA,gBAAA+8C,GAAA/8C,IACA68C,EAAAvzD,KAAAyzD,EAAA/8C,IAGA+8C,EAAA/8C,IACA0tD,IAKA,IAAA7Q,EAAAv0D,SAAAolE,EACA,MAAA,IAAA7H,GAAA,GAGA,IAAAl6D,GAAA,GAAAk6D,GAAA,IAAA8H,QAAA9Q,EAMA,OAJA,KAAAvuC,EAAA,GAAAk5C,QAAA,MAAAl5C,EAAA,GAAAk5C,OAAA5+D,MAAA,EAAA,IACA+C,EAAA67D,KAAA,IAAA77D,EAAA67D,QAGA77D,EAAAzE,aAGA2+D,EAAA+H,WAAA,SAAAl6D,EAAA8yD,GACA,GACApyC,GADA9rB,EAAAuQ,KAAAk/B,IAAArkC,EAAApL,OAAAk+D,EAAAl+D,OAIA,KAAA8rB,EAAA,EAAAA,EAAA9rB,EAAA8rB,IACA,GAAA1gB,EAAA/K,OAAAyrB,KAAAoyC,EAAA79D,OAAAyrB,GAAA,CACAA,GACA,OAIA,MAAAA,GAAA,EACA1gB,EAAA/K,OAAA,KAAA69D,EAAA79D,OAAA,IAAA,MAAA+K,EAAA/K,OAAA,GAAA,IAAA,IAIA,MAAA+K,EAAA/K,OAAAyrB,IAAA,MAAAoyC,EAAA79D,OAAAyrB,KACAA,EAAA1gB,EAAAnJ,UAAA,EAAA6pB,GAAAgnC,YAAA,MAGA1nD,EAAAnJ,UAAA,EAAA6pB,EAAA,KAGAyxC,EAAAgI,aAAA,SAAA9pD,EAAAlY,EAAAqC,GACAA,IAAAA,KACA,IAAA4/D,GAAA5/D,EAAAsC,OAAAq1D,EAAAsC,QAAA33D,MACAu9D,EAAA7/D,EAAAuC,KAAAo1D,EAAAsC,QAAA13D,IACAu9D,EAAA9/D,EAAA0V,MAAAiiD,EAAAsC,QAAAvkD,KACAqqD,EAAA//D,EAAAk6D,QAAAvC,EAAAsC,QAAAC,OACA8F,EAAA,mBAGA,KADAJ,EAAArmE,UAAA,IACA,CACA,GAAA4G,GAAAy/D,EAAAx9D,KAAAyT,EACA,KAAA1V,EACA,KAGA,IAAAmC,GAAAnC,EAAAhE,KACA,IAAA6D,EAAAigE,WAAA,CAEA,GAAAC,GAAArqD,EAAAnb,MAAAiQ,KAAAC,IAAAtI,EAAA,EAAA,GAAAA,EACA,IAAA49D,GAAAF,EAAAzlE,KAAA2lE,GACA,SAQA,IAJA,GAAA39D,GAAAD,EAAAuT,EAAAnb,MAAA4H,GAAAktC,OAAAqwB,GACAnlE,EAAAmb,EAAAnb,MAAA4H,EAAAC,GAEA49D,GAAA,IACA,CACA,GAAAC,GAAAL,EAAA39D,KAAA1H,EACA,KAAA0lE,EACA,KAGA,IAAAC,GAAAD,EAAAjkE,MAAAikE,EAAA,GAAAhmE,MACA+lE,GAAAx1D,KAAAC,IAAAu1D,EAAAE,GASA,GALA3lE,EADAylE,GAAA,EACAzlE,EAAAA,MAAA,EAAAylE,GAAAzlE,EAAAA,MAAAylE,GAAA3lE,QAAAslE,EAAA,IAEAplE,EAAAF,QAAAslE,EAAA,MAGAplE,EAAAN,QAAA+F,EAAA,GAAA/F,QAMA4F,EAAAsgE,QAAAtgE,EAAAsgE,OAAA/lE,KAAAG,IAAA,CAIA6H,EAAAD,EAAA5H,EAAAN,MACA,IAAAuU,GAAAhR,EAAAjD,EAAA4H,EAAAC,EAAAsT,OACA5X,KAAA0Q,GAKAA,EAAA0Q,OAAA1Q,GACAkH,EAAAA,EAAAnb,MAAA,EAAA4H,GAAAqM,EAAAkH,EAAAnb,MAAA6H,GACAq9D,EAAArmE,UAAA+I,EAAAqM,EAAAvU,QANAwlE,EAAArmE,UAAAgJ,GAUA,MADAq9D,GAAArmE,UAAA,EACAsc,GAGA8hD,EAAA4G,oBAAA,SAAAjrD,EAAAsnB,GAIA,GAAA2lC,KAAAjtD,EACAktD,IAAA5lC,EACA6lC,GAAA,CAMA,IAJAD,IACAC,EAAAtI,EAAAR,EAAA8C,cAAA7/B,IAGA6lC,IAAAF,EACA,KAAA,IAAAh9B,WAAA,4CAAA3I,EACA,IAAAtnB,GAAAA,EAAAnT,MAAAw3D,EAAA+C,6BAAA,CAEA,IAAAvM,EACA,KAAA,IAAA5qB,WAAA,aAAAjwB,EAAA,iFAEA,IAAA66C,EAAAL,QAAAx6C,GAAAnT,MAAAw3D,EAAA+C,6BACA,KAAA,IAAAn3B,WAAA,aAAAjwB,EAAA,mDAKAqkD,EAAA6G,gBAAA,SAAAlrD,GACA,GAAAA,EAAA,CAIA,GAAA+lD,GAAApuB,OAAA33B,EACA,MAAA+lC,EAAAggB,IAAAA,EAAA,GAAAA,EAAA,OAIA,KAAA,IAAA91B,WAAA,SAAAjwB,EAAA,2BAIAqkD,EAAA30B,WAAA,SAAA09B,GACA,GAAAA,EAAA,CACA,GAAAC,IACAhJ,IAAA94D,KAAAmkC,aAeA,OAZA3f,GAAAu9C,aAAA,kBAAAv9C,GAAAu9C,YAAA59B,aACA29B,EAAAC,YAAAv9C,EAAAu9C,YAAA59B,cAGA3f,EAAAkrC,MAAA,kBAAAlrC,GAAAkrC,KAAAvrB,aACA29B,EAAApS,KAAAlrC,EAAAkrC,KAAAvrB,cAGA3f,EAAA8rC,oBAAA,kBAAA9rC,GAAA8rC,mBAAAnsB,aACA29B,EAAAxR,mBAAA9rC,EAAA8rC,mBAAAnsB,cAGA29B,EAKA,MAJAt9C,GAAAs0C,MAAA94D,OACAwkB,EAAAs0C,IAAAuB,GAGAr6D,MAGAzB,EAAA07D,MAAA,SAAA+H,GAQA,OAPA,IAAAA,EACAhiE,KAAAiiE,iBAAA,OACA7iE,KAAA4iE,GAAAhiE,KAAAiiE,mBACAjiE,KAAAkiE,QAAApJ,EAAAmB,MAAAj6D,KAAAk6D,QACAl6D,KAAAiiE,iBAAA,GAGAjiE,MAGAzB,EAAA6K,MAAA,WACA,MAAA,IAAA0vD,GAAA94D,OAGAzB,EAAAk7C,QAAAl7C,EAAAwW,SAAA,WACA,MAAA/U,MAAAi6D,OAAA,GAAAiI,SAmCA3jE,EAAAw9B,SAAAg+B,EAAA,YACAx7D,EAAAiiC,SAAAu5B,EAAA,YACAx7D,EAAAknB,SAAAs0C,EAAA,YACAx7D,EAAA+7D,SAAAP,EAAA,YACAx7D,EAAAi8D,KAAAT,EAAA,QACAx7D,EAAAm8D,MAAAP,EAAA,QAAA,KACA57D,EAAAwG,SAAAo1D,EAAA,WAAA,KAEA57D,EAAAoyC,OAAA,SAAAl8B,EAAAwlD,GACA,GAAAntC,GAAA9sB,KAAA06D,MAAAjmD,EAAAwlD,EACA,OAAA,gBAAAntC,IAAAA,EAAAvxB,OAAA,IAAAuxB,EAAAA,GAEAvuB,EAAA+lB,KAAA,SAAA7P,EAAAwlD,GACA,GAAAntC,GAAA9sB,KAAA+E,SAAA0P,EAAAwlD,EACA,OAAA,gBAAAntC,IAAAA,EAAAvxB,OAAA,IAAAuxB,EAAAA,GAGAvuB,EAAAq+D,SAAA,SAAAnoD,EAAAwlD,GACA,OAAA76D,KAAAqV,IAAA,IAAAA,EAAA,CACA,GAAA0tD,GAAAniE,KAAAk6D,OAAAO,OAAAz6D,KAAAk6D,OAAAI,SAAA,IAAA,GACA,OAAA7lD,IAAAzU,KAAAk6D,OAAAK,IAAAzB,EAAAkG,cAAAlG,EAAAiG,YAAAoD,GAAAA,EAQA,MANAniE,MAAAk6D,OAAAK,IACAv6D,KAAAk6D,OAAAO,KAAAhmD,EAAAqkD,EAAAoG,cAAAzqD,GAAA,GAEAzU,KAAAk6D,OAAAO,KAAAhmD,EAAAqkD,EAAAmG,WAAAxqD,GAAA,IAEAzU,KAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAAk8D,KAAAl8D,EAAAq+D,SACAr+D,EAAAomB,KAAA,SAAAA,EAAAs1C,GACA,GAAAh4D,EAEA,QAAA7C,KAAAulB,EACA,MAAA3kB,MAAA+U,UAGA/U,MAAAkiE,QAAA,GACAliE,KAAAk6D,OAAApB,EAAAoB,QAEA,IAAAG,GAAA11C,YAAAm0C,GACAsJ,EAAA,gBAAAz9C,KAAAA,EAAA21C,UAAA31C,EAAA81C,MAAA91C,EAAAi4C,SACA,IAAAj4C,EAAA3gB,SAAA,CAEA2gB,EAAAA,EADAm0C,EAAAyD,gBAAA53C,KACA,GACAy9C,GAAA,EAcA,IAJA/H,GAAA+H,OAAAhjE,KAAAulB,EAAAi4C,WACAj4C,EAAAA,EAAA5P,YAGA,gBAAA4P,IAAAA,YAAAnE,QACAxgB,KAAAk6D,OAAApB,EAAAh+B,MAAAta,OAAAmE,GAAA3kB,KAAAk6D,YACA,CAAA,IAAAG,IAAA+H,EAYA,KAAA,IAAA19B,WAAA,gBAXA,IAAAl9B,GAAA6yD,EAAA11C,EAAAu1C,OAAAv1C,CACA,KAAA1iB,IAAAuF,GACA,UAAAvF,GACAhI,EAAAC,KAAA8F,KAAAk6D,OAAAj4D,KACAjC,KAAAk6D,OAAAj4D,GAAAuF,EAAAvF,GAGAuF,GAAAkzD,OACA16D,KAAA06D,MAAAlzD,EAAAkzD,OAAA,GAOA,MADA16D,MAAAi6D,OAAAA,GACAj6D,MAIAzB,EAAAkoB,GAAA,SAAAhD,GACA,GAAA4+C,IAAA,EACAC,GAAA,EACAC,GAAA,EACAnoE,GAAA,EACAooE,GAAA,EACAC,GAAA,EACAnT,GAAA,EACAzyC,GAAA7c,KAAAk6D,OAAAK,GAaA,QAXAv6D,KAAAk6D,OAAAI,WACAz9C,GAAA,EACAylD,EAAAxJ,EAAAmC,eAAAv/D,KAAAsE,KAAAk6D,OAAAI,UACAiI,EAAAzJ,EAAAoC,eAAAx/D,KAAAsE,KAAAk6D,OAAAI,UACA+H,EAAAC,GAAAC,EACAnoE,GAAAioE,EACAG,EAAApoE,GAAAo2D,GAAAA,EAAAtsC,IAAAlkB,KAAAk6D,OAAAI,UACAmI,EAAAroE,GAAA0+D,EAAAiC,eAAAr/D,KAAAsE,KAAAk6D,OAAAI,UACAhL,EAAAl1D,GAAA0+D,EAAAkC,oBAAAt/D,KAAAsE,KAAAk6D,OAAAI,WAGA72C,EAAArhB,eACA,IAAA,WACA,MAAAya,EAEA,KAAA,WACA,OAAAA,CAGA,KAAA,SACA,IAAA,OACA,MAAAziB,EAEA,KAAA,MACA,MAAAooE,EAEA,KAAA,KACA,MAAAH,EAEA,KAAA,MACA,IAAA,OACA,IAAA,QACA,MAAAC,EAEA,KAAA,MACA,IAAA,OACA,IAAA,QACA,MAAAC,EAEA,KAAA,MACA,MAAAE,EAEA,KAAA,MACA,OAAAziE,KAAAk6D,OAAAK,GAEA,KAAA,MACA,QAAAv6D,KAAAk6D,OAAAK,GAEA,KAAA,WACA,MAAAjL,GAGA,MAAA,MAIA,IAAAoT,GAAAnkE,EAAAw9B,SACA4mC,EAAApkE,EAAAi8D,KACAoI,EAAArkE,EAAA+7D,QAEA/7D,GAAAw9B,SAAA,SAAAtnB,EAAAwlD,GACA,GAAAxlD,IAEAA,EAAAA,EAAA9Y,QAAA,YAAA,KAEA8Y,EAAAnT,MAAAw3D,EAAAgC,sBACA,KAAA,IAAAp2B,WAAA,aAAAjwB,EAAA,4EAIA,OAAAiuD,GAAAxoE,KAAA8F,KAAAyU,EAAAwlD,IAEA17D,EAAAskE,OAAAtkE,EAAAw9B,SACAx9B,EAAAi8D,KAAA,SAAA/lD,EAAAwlD,GACA,MAAAj6D,MAAAk6D,OAAAK,QACAn7D,KAAAqV,EAAA,GAAAzU,UAGAZ,KAAAqV,IACA,IAAAA,IACAA,EAAA,MAGAA,IACAA,GAAA,GACA,MAAAA,EAAA7Y,OAAA,KACA6Y,EAAAA,EAAAjX,UAAA,IAGAs7D,EAAA6G,gBAAAlrD,KAGAkuD,EAAAzoE,KAAA8F,KAAAyU,EAAAwlD,KAEA17D,EAAA+7D,SAAA,SAAA7lD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,EAAA,CACA,GAAA00B,IAAAwxB,uBAAA36D,KAAAk6D,OAAAS,uBAEA,IAAA,MADA7B,EAAAuG,UAAA5qD,EAAA00B,GAEA,KAAA,IAAAzE,WAAA,aAAAjwB,EAAA,8CAGAA,GAAA00B,EAAAmxB,SACAt6D,KAAAk6D,OAAAS,wBACA7B,EAAA4G,oBAAAjrD,EAAAzU,KAAAk6D,OAAAn+B,UAIA,MAAA6mC,GAAA1oE,KAAA8F,KAAAyU,EAAAwlD,IAIA17D,EAAAukE,OAAA,SAAAruD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,EAAA,CACA,GAAAsnB,GAAA/7B,KAAA+7B,UAEA,OADA/7B,MAAA+iE,aAKAhnC,EAAAA,EAAA,MAAA,IAAA/7B,KAAA+iE,YAHA,GAKA,GAAAD,GAAAhK,EAAArkD,EAKA,OAJAzU,MACA+7B,SAAA+mC,EAAA/mC,YACAgnC,UAAAD,EAAAC,aACA9I,OAAAA,GACAj6D,MAGAzB,EAAAogC,KAAA,SAAAlqB,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,EACA,MAAAzU,MAAAk6D,OAAAI,SAAAxB,EAAAkH,UAAAhgE,KAAAk6D,QAAA,EAGA,IAAA,MADApB,EAAAuG,UAAA5qD,EAAAzU,KAAAk6D,QAEA,KAAA,IAAAx1B,WAAA,aAAAjwB,EAAA,8CAIA,OADAzU,MAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAAwkE,UAAA,SAAAtuD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,EACA,MAAAzU,MAAAk6D,OAAAI,SAAAxB,EAAAiH,eAAA//D,KAAAk6D,QAAA,EAGA,IAAA,MADApB,EAAAsG,eAAA3qD,EAAAzU,KAAAk6D,QAEA,KAAA,IAAAx1B,WAAA,aAAAjwB,EAAA,8CAIA,OADAzU,MAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAAykE,SAAA,SAAAvuD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,EAAA,CACA,GAAAqY,GAAAgsC,EAAAmH,cAAAjgE,KAAAk6D,OACA,OAAAptC,GAAAA,EAAAtvB,UAAA,EAAAsvB,EAAAvxB,OAAA,GAAAuxB,EAQA,MANA,MAAArY,EAAAA,EAAAlZ,OAAA,KACAkZ,GAAA,KAGAqkD,EAAA8G,cAAAnrD,EAAAzU,KAAAk6D,QACAl6D,KAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAA0kE,SAAA,SAAAxuD,EAAAwlD,GACA,GAAA/7D,EAEA,YAAAkB,KAAAqV,EACAzU,KAAAy6D,OAAAz6D,KAAA2wC,SAAA3wC,KAAAskB,QAGApmB,EAAA46D,EAAAh+B,MAAArmB,GACAzU,KAAAk6D,OAAAO,KAAAv8D,EAAAu8D,KACAz6D,KAAAk6D,OAAAQ,MAAAx8D,EAAAw8D,MACA16D,KAAAk6D,OAAAn1D,SAAA7G,EAAA6G,SACA/E,KAAAi6D,OAAAA,GACAj6D,OAIAzB,EAAA2kE,UAAA,SAAAzuD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAIA,QAAAZ,KAAAqV,EAAA,CACA,IAAAzU,KAAAk6D,OAAAI,UAAAt6D,KAAAymB,GAAA,MACA,MAAA,EAIA,IAAA/iB,GAAA1D,KAAAk6D,OAAAI,SAAA/+D,OAAAyE,KAAA04D,SAAAn9D,OAAA,CACA,OAAAyE,MAAAk6D,OAAAI,SAAA98D,UAAA,EAAAkG,IAAA,GAEA,GAAAjF,GAAAuB,KAAAk6D,OAAAI,SAAA/+D,OAAAyE,KAAA04D,SAAAn9D,OACAuwD,EAAA9rD,KAAAk6D,OAAAI,SAAA98D,UAAA,EAAAiB,GACA9C,EAAA,GAAAujB,QAAA,IAAAg6C,EAAApN,GAMA,IAJAr3C,GAAA,MAAAA,EAAA7Y,OAAA6Y,EAAAlZ,OAAA,KACAkZ,GAAA,MAGA,IAAAA,EAAAlX,QAAA,KACA,KAAA,IAAAmnC,WAAA,gCASA,OANAjwB,IACAqkD,EAAA4G,oBAAAjrD,EAAAzU,KAAAk6D,OAAAn+B,UAGA/7B,KAAAk6D,OAAAI,SAAAt6D,KAAAk6D,OAAAI,SAAA3+D,QAAAA,EAAA8Y,GACAzU,KAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAAm6D,OAAA,SAAAjkD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IASA,IANA,iBAAAyU,KACAwlD,EAAAxlD,EACAA,MAAArV,QAIAA,KAAAqV,EAAA,CACA,IAAAzU,KAAAk6D,OAAAI,UAAAt6D,KAAAymB,GAAA,MACA,MAAA,EAIA,IAAAqG,GAAA9sB,KAAAk6D,OAAAI,SAAAh5D,MAAA,MACA,IAAAwrB,GAAAA,EAAAvxB,OAAA,EACA,MAAAyE,MAAAk6D,OAAAI,QAIA,IAAA52D,GAAA1D,KAAAk6D,OAAAI,SAAA/+D,OAAAyE,KAAAmjE,IAAAlJ,GAAA1+D,OAAA,CAEA,OADAmI,GAAA1D,KAAAk6D,OAAAI,SAAAjM,YAAA,IAAA3qD,EAAA,GAAA,EACA1D,KAAAk6D,OAAAI,SAAA98D,UAAAkG,IAAA,GAEA,IAAA+Q,EACA,KAAA,IAAAiwB,WAAA,0BAGA,KAAA,IAAAjwB,EAAAlX,QAAA,KACA,KAAA,IAAAmnC,WAAA,gCAKA,IAFAo0B,EAAA4G,oBAAAjrD,EAAAzU,KAAAk6D,OAAAn+B,WAEA/7B,KAAAk6D,OAAAI,UAAAt6D,KAAAymB,GAAA,MACAzmB,KAAAk6D,OAAAI,SAAA7lD,MACA,CACA,GAAA9Y,GAAA,GAAAujB,QAAAg6C,EAAAl5D,KAAA04D,UAAA,IACA14D,MAAAk6D,OAAAI,SAAAt6D,KAAAk6D,OAAAI,SAAA3+D,QAAAA,EAAA8Y,GAIA,MADAzU,MAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAA4kE,IAAA,SAAA1uD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IASA,IANA,iBAAAyU,KACAwlD,EAAAxlD,EACAA,MAAArV,QAIAA,KAAAqV,EAAA,CACA,IAAAzU,KAAAk6D,OAAAI,UAAAt6D,KAAAymB,GAAA,MACA,MAAA,EAGA,IAAAY,GAAArnB,KAAAk6D,OAAAI,SAAAjM,YAAA,KACA8U,EAAAnjE,KAAAk6D,OAAAI,SAAA98D,UAAA6pB,EAAA,EAEA,QAAA,IAAA4yC,GAAAzJ,GAAAA,EAAA7xC,KAAAwkD,EAAA/gE,eACAouD,EAAAjsD,IAAAvE,KAAAk6D,OAAAI,WAAA6I,EAGAA,EAEA,GAAAxnE,EAEA,KAAA8Y,EACA,KAAA,IAAAiwB,WAAA,uBACA,IAAAjwB,EAAAnT,MAAA,iBAAA,CACA,IAAAkvD,IAAAA,EAAA/pC,GAAAhS,GAIA,KAAA,IAAAiwB,WAAA,QAAAjwB,EAAA,4CAHA9Y,GAAA,GAAAujB,QAAAg6C,EAAAl5D,KAAAmjE,OAAA,KACAnjE,KAAAk6D,OAAAI,SAAAt6D,KAAAk6D,OAAAI,SAAA3+D,QAAAA,EAAA8Y,OAIA,CAAA,IAAAzU,KAAAk6D,OAAAI,UAAAt6D,KAAAymB,GAAA,MACA,KAAA,IAAA28C,gBAAA,oCAEAznE,GAAA,GAAAujB,QAAAg6C,EAAAl5D,KAAAmjE,OAAA,KACAnjE,KAAAk6D,OAAAI,SAAAt6D,KAAAk6D,OAAAI,SAAA3+D,QAAAA,EAAA8Y,GAIA,MADAzU,MAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAA8kE,UAAA,SAAA5uD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,IAAA,IAAAA,EAAA,CACA,IAAAzU,KAAAk6D,OAAAO,OAAAz6D,KAAAk6D,OAAAI,SACA,MAAA,EAGA,IAAA,MAAAt6D,KAAAk6D,OAAAO,KACA,MAAA,GAGA,IAAA/2D,GAAA1D,KAAAk6D,OAAAO,KAAAl/D,OAAAyE,KAAAsjE,WAAA/nE,OAAA,EACA4mE,EAAAniE,KAAAk6D,OAAAO,KAAAj9D,UAAA,EAAAkG,KAAA1D,KAAAk6D,OAAAI,SAAA,IAAA,GAEA,OAAA7lD,GAAAqkD,EAAAiG,WAAAoD,GAAAA,EAGA,GAAA1jE,GAAAuB,KAAAk6D,OAAAO,KAAAl/D,OAAAyE,KAAAsjE,WAAA/nE,OACA8nE,EAAArjE,KAAAk6D,OAAAO,KAAAj9D,UAAA,EAAAiB,GACA9C,EAAA,GAAAujB,QAAA,IAAAg6C,EAAAmK,GAqBA,OAlBArjE,MAAAymB,GAAA,cACAhS,IACAA,EAAA,KAGA,MAAAA,EAAA7Y,OAAA,KACA6Y,EAAA,IAAAA,IAKAA,GAAA,MAAAA,EAAA7Y,OAAA6Y,EAAAlZ,OAAA,KACAkZ,GAAA,KAGAA,EAAAqkD,EAAAmG,WAAAxqD,GACAzU,KAAAk6D,OAAAO,KAAAz6D,KAAAk6D,OAAAO,KAAA9+D,QAAAA,EAAA8Y,GACAzU,KAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAA+kE,SAAA,SAAA7uD,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,IAAA,gBAAAyU,GAAA,CACA,IAAAzU,KAAAk6D,OAAAO,MAAA,MAAAz6D,KAAAk6D,OAAAO,KACA,MAAA,EAGA,IAAApzC,GAAArnB,KAAAk6D,OAAAO,KAAApM,YAAA,KACA8T,EAAAniE,KAAAk6D,OAAAO,KAAAj9D,UAAA6pB,EAAA,EAEA,OAAA5S,GAAAqkD,EAAAyK,kBAAApB,GAAAA,EAEA,GAAAqB,IAAA,CAEA,OAAA/uD,EAAA7Y,OAAA,KACA6Y,EAAAA,EAAAjX,UAAA,IAGAiX,EAAAnT,MAAA,WACAkiE,GAAA,EAGA,IAAA7nE,GAAA,GAAAujB,QAAAg6C,EAAAl5D,KAAAsjE,YAAA,IAUA,OATA7uD,GAAAqkD,EAAAmG,WAAAxqD,GACAzU,KAAAk6D,OAAAO,KAAAz6D,KAAAk6D,OAAAO,KAAA9+D,QAAAA,EAAA8Y,GAEA+uD,EACAxjE,KAAAyjE,cAAAxJ,GAEAj6D,KAAAi6D,OAAAA,GAGAj6D,MAGAzB,EAAA42B,OAAA,SAAA1gB,EAAAwlD,GACA,GAAAj6D,KAAAk6D,OAAAK,IACA,WAAAn7D,KAAAqV,EAAA,GAAAzU,IAGA,QAAAZ,KAAAqV,IAAA,IAAAA,EAAA,CACA,IAAAzU,KAAAk6D,OAAAO,MAAA,MAAAz6D,KAAAk6D,OAAAO,KACA,MAAA,EAGA,IAEAxnD,GAAAkvD,EAFAmB,EAAAtjE,KAAAsjE,WACAj8C,EAAAi8C,EAAAjV,YAAA,IAGA,QAAA,IAAAhnC,EACA,IAIApU,EAAAqwD,EAAA9lE,UAAA6pB,EAAA,GACA86C,EAAA,gBAAAzmE,KAAAuX,GAAAA,EAAA,GACAwB,EAAAqkD,EAAAyK,kBAAApB,GAAAA,GAEA,MAAA1tD,EAAA7Y,OAAA,KACA6Y,EAAAA,EAAAjX,UAAA,GAGA,IACA7B,GADAw5B,EAAAn1B,KAAAm1B,QAGA,IAAAA,EASAx5B,EAHA8Y,EAGA,GAAAyK,QAAAg6C,EAAA/jC,GAAA,KAFA,GAAAjW,QAAAg6C,EAAA,IAAA/jC,GAAA,SAPA,CACA,IAAA1gB,EACA,MAAAzU,KAGAA,MAAAk6D,OAAAO,MAAA,IAAA3B,EAAAmG,WAAAxqD,GAaA,MANA9Y,KACA8Y,EAAAqkD,EAAAmG,WAAAxqD,GACAzU,KAAAk6D,OAAAO,KAAAz6D,KAAAk6D,OAAAO,KAAA9+D,QAAAA,EAAA8Y,IAGAzU,KAAAi6D,OAAAA,GACAj6D,MAGAzB,EAAAqiE,QAAA,SAAAA,EAAAnsD,EAAAwlD,GACA,GAAAtoB,GAAA3xC,KAAAk6D,OAAAK,IAAA,IAAA,IACAE,EAAAz6D,KAAAy6D,OACAiJ,EAAA,MAAAjJ,EAAAj9D,UAAA,EAAA,GACAsyD,EAAA2K,EAAAt/D,MAAAw2C,EAQA,QANAvyC,KAAAwhE,GAAA,gBAAAA,KACA3G,EAAAxlD,EACAA,EAAAmsD,EACAA,MAAAxhE,QAGAA,KAAAwhE,GAAA,gBAAAA,GACA,KAAA,IAAAzjE,OAAA,gBAAAyjE,EAAA,6BAYA,IATA8C,GACA5T,EAAAv8C,QAGAqtD,EAAA,IAEAA,EAAA90D,KAAAC,IAAA+jD,EAAAv0D,OAAAqlE,EAAA,QAGAxhE,KAAAqV,EAEA,WAAArV,KAAAwhE,EACA9Q,EACAA,EAAA8Q,EAEA,IAAA,OAAAA,OAAAxhE,KAAA0wD,EAAA8Q,GACA,GAAAlxD,EAAA+E,GAAA,CACAq7C,IAEA,KAAA,GAAAh1D,GAAA,EAAAuJ,EAAAoQ,EAAAlZ,OAAAT,EAAAuJ,EAAAvJ,KACA2Z,EAAA3Z,GAAAS,QAAAu0D,EAAAv0D,QAAAu0D,EAAAA,EAAAv0D,OAAA,GAAAA,UAIAu0D,EAAAv0D,SAAAu0D,EAAAA,EAAAv0D,OAAA,GAAAA,QACAu0D,EAAAhyC,MAGAgyC,EAAAvzD,KAAAm9D,EAAAjlD,EAAA3Z,WAEA2Z,GAAA,gBAAAA,MACAA,EAAAilD,EAAAjlD,GACA,KAAAq7C,EAAAA,EAAAv0D,OAAA,GAGAu0D,EAAAA,EAAAv0D,OAAA,GAAAkZ,EAEAq7C,EAAAvzD,KAAAkY,QAIAA,GACAq7C,EAAA8Q,GAAAlH,EAAAjlD,GAEAq7C,EAAA/zD,OAAA6kE,EAAA,EAQA,OAJA8C,IACA5T,EAAA79C,QAAA,IAGAjS,KAAAy6D,KAAA3K,EAAA9zD,KAAA21C,GAAAsoB,IAEA17D,EAAAolE,aAAA,SAAA/C,EAAAnsD,EAAAwlD,GACA,GAAAnK,GAAAh1D,EAAAuJ,CAQA,IANA,gBAAAu8D,KACA3G,EAAAxlD,EACAA,EAAAmsD,EACAA,MAAAxhE,QAGAA,KAAAqV,EAAA,CAEA,GADAq7C,EAAA9vD,KAAA4gE,QAAAA,EAAAnsD,EAAAwlD,GACAvqD,EAAAogD,GAGA,IAAAh1D,EAAA,EAAAuJ,EAAAyrD,EAAAv0D,OAAAT,EAAAuJ,EAAAvJ,IACAg1D,EAAAh1D,GAAAg+D,EAAAjL,OAAAiC,EAAAh1D,QAHAg1D,OAAA1wD,KAAA0wD,EAAAgJ,EAAAjL,OAAAiC,OAAA1wD,EAOA,OAAA0wD,GAGA,GAAApgD,EAAA+E,GAGA,IAAA3Z,EAAA,EAAAuJ,EAAAoQ,EAAAlZ,OAAAT,EAAAuJ,EAAAvJ,IACA2Z,EAAA3Z,GAAAg+D,EAAArK,OAAAh6C,EAAA3Z,QAHA2Z,GAAA,gBAAAA,IAAAA,YAAA+L,QAAAs4C,EAAArK,OAAAh6C,GAAAA,CAOA,OAAAzU,MAAA4gE,QAAAA,EAAAnsD,EAAAwlD,GAIA,IAAArL,GAAArwD,EAAAm8D,KAkgBA,OAjgBAn8D,GAAAm8D,MAAA,SAAAjmD,EAAAwlD,GACA,IAAA,IAAAxlD,EACA,MAAAqkD,GAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,iBACA,IAAA,kBAAApmD,GAAA,CACA,GAAAvS,GAAA42D,EAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,kBACA/qD,EAAA2E,EAAAva,KAAA8F,KAAAkC,EAGA,OAFAlC,MAAAk6D,OAAAQ,MAAA5B,EAAAoH,WAAApwD,GAAA5N,EAAAlC,KAAAk6D,OAAAU,yBAAA56D,KAAAk6D,OAAAW,kBACA76D,KAAAi6D,OAAAA,GACAj6D,KACA,WAAAZ,KAAAqV,GAAA,gBAAAA,IACAzU,KAAAk6D,OAAAQ,MAAA5B,EAAAoH,WAAAzrD,EAAAzU,KAAAk6D,OAAAU,yBAAA56D,KAAAk6D,OAAAW,kBACA76D,KAAAi6D,OAAAA,GACAj6D,MAEA4uD,EAAA10D,KAAA8F,KAAAyU,EAAAwlD,IAGA17D,EAAA8hE,SAAA,SAAAjmE,EAAAyC,EAAAo9D,GACA,GAAA/3D,GAAA42D,EAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,iBAEA,IAAA,gBAAAzgE,IAAAA,YAAAomB,QACAte,EAAA9H,OAAAgF,KAAAvC,EAAAA,EAAA,SACA,CAAA,GAAA,gBAAAzC,GAOA,KAAA,IAAAsqC,WAAA,iEANA,KAAA,GAAAziC,KAAA7H,GACAH,EAAAC,KAAAE,EAAA6H,KACAC,EAAAD,GAAA7H,EAAA6H,IAaA,MANAjC,MAAAk6D,OAAAQ,MAAA5B,EAAAoH,WAAAh+D,EAAAlC,KAAAk6D,OAAAU,yBAAA56D,KAAAk6D,OAAAW,kBACA,gBAAAzgE,KACA6/D,EAAAp9D,GAGAmD,KAAAi6D,OAAAA,GACAj6D,MAEAzB,EAAA6hE,SAAA,SAAAhmE,EAAAyC,EAAAo9D,GACA,GAAA/3D,GAAA42D,EAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,iBAQA,OAPA/B,GAAAsH,SAAAl+D,EAAA9H,MAAAgF,KAAAvC,EAAA,KAAAA,GACAmD,KAAAk6D,OAAAQ,MAAA5B,EAAAoH,WAAAh+D,EAAAlC,KAAAk6D,OAAAU,yBAAA56D,KAAAk6D,OAAAW,kBACA,gBAAAzgE,KACA6/D,EAAAp9D,GAGAmD,KAAAi6D,OAAAA,GACAj6D,MAEAzB,EAAA+hE,YAAA,SAAAlmE,EAAAyC,EAAAo9D,GACA,GAAA/3D,GAAA42D,EAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,iBAQA,OAPA/B,GAAAwH,YAAAp+D,EAAA9H,EAAAyC,GACAmD,KAAAk6D,OAAAQ,MAAA5B,EAAAoH,WAAAh+D,EAAAlC,KAAAk6D,OAAAU,yBAAA56D,KAAAk6D,OAAAW,kBACA,gBAAAzgE,KACA6/D,EAAAp9D,GAGAmD,KAAAi6D,OAAAA,GACAj6D,MAEAzB,EAAAgiE,SAAA,SAAAnmE,EAAAyC,EAAA2jE,GACA,GAAAt+D,GAAA42D,EAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,iBACA,OAAA/B,GAAAyH,SAAAr+D,EAAA9H,EAAAyC,EAAA2jE,IAEAjiE,EAAAqlE,UAAArlE,EAAA8hE,SACA9hE,EAAAslE,UAAAtlE,EAAA6hE,SACA7hE,EAAAulE,aAAAvlE,EAAA+hE,YACA/hE,EAAAwlE,UAAAxlE,EAAAgiE,SAGAhiE,EAAApE,UAAA,WACA,MAAA6F,MAAAk6D,OAAAK,IACAv6D,KACAgkE,mBAAA,GACAP,eAAA,GACAQ,gBAAA,GACAC,mBAAA,GACAjK,QAGAj6D,KACAgkE,mBAAA,GACAG,mBAAA,GACAC,eAAA,GACAX,eAAA,GACAQ,gBAAA,GACAC,mBAAA,GACAjK,SAEA17D,EAAAylE,kBAAA,SAAA/J,GAMA,MALA,gBAAAj6D,MAAAk6D,OAAAn+B,WACA/7B,KAAAk6D,OAAAn+B,SAAA/7B,KAAAk6D,OAAAn+B,SAAA35B,cACApC,KAAAi6D,OAAAA,IAGAj6D,MAEAzB,EAAA4lE,kBAAA,SAAAlK,GAYA,MAXAj6D,MAAAk6D,OAAAI,WACAt6D,KAAAymB,GAAA,QAAA6oC,EACAtvD,KAAAk6D,OAAAI,SAAAhL,EAAAL,QAAAjvD,KAAAk6D,OAAAI,UACAt6D,KAAAymB,GAAA,SAAAipC,IACA1vD,KAAAk6D,OAAAI,SAAA5K,EAAAO,KAAAjwD,KAAAk6D,OAAAI,WAGAt6D,KAAAk6D,OAAAI,SAAAt6D,KAAAk6D,OAAAI,SAAAl4D,cACApC,KAAAi6D,OAAAA,IAGAj6D,MAEAzB,EAAA6lE,cAAA,SAAAnK,GAOA,MALA,gBAAAj6D,MAAAk6D,OAAAn+B,UAAA/7B,KAAAk6D,OAAAM,OAAA1B,EAAAwC,aAAAt7D,KAAAk6D,OAAAn+B,YACA/7B,KAAAk6D,OAAAM,KAAA,KACAx6D,KAAAi6D,OAAAA,IAGAj6D,MAEAzB,EAAAklE,cAAA,SAAAxJ,GACA,GAAAoK,GAAArkE,KAAAk6D,OAAAO,IACA,KAAA4J,EACA,MAAArkE,KAGA,IAAAA,KAAAk6D,OAAAK,IAGA,MAFAv6D,MAAAk6D,OAAAO,KAAA3B,EAAAoG,cAAAl/D,KAAAk6D,OAAAO,MACAz6D,KAAAi6D,OAAAA,GACAj6D,IAGA,IAAA,MAAAA,KAAAk6D,OAAAO,KACA,MAAAz6D,KAGAqkE,GAAAvL,EAAAmG,WAAAoF,EAEA,IAAAC,GAEAC,EAAAC,EADAC,EAAA,EA4BA,KAxBA,MAAAJ,EAAAzoE,OAAA,KACA0oE,GAAA,EACAD,EAAA,IAAAA,GAIA,QAAAA,EAAAxoE,OAAA,IAAA,OAAAwoE,EAAAxoE,OAAA,KACAwoE,GAAA,KAIAA,EAAAA,EACA1oE,QAAA,uBAAA,KACAA,QAAA,UAAA,KAGA2oE,IACAG,EAAAJ,EAAA7mE,UAAA,GAAA8D,MAAA,eAAA,MAEAmjE,EAAAA,EAAA,MAKA,CAEA,IAAA,KADAF,EAAAF,EAAA1zB,OAAA,iBAGA,KACA,KAAA4zB,GAMAC,EAAAH,EAAA7mE,UAAA,EAAA+mE,GAAAlW,YAAA,MACA,IAAAmW,IACAA,EAAAD,GAEAF,EAAAA,EAAA7mE,UAAA,EAAAgnE,GAAAH,EAAA7mE,UAAA+mE,EAAA,IARAF,EAAAA,EAAA7mE,UAAA,GAkBA,MANA8mE,IAAAtkE,KAAAymB,GAAA,cACA49C,EAAAI,EAAAJ,EAAA7mE,UAAA,IAGAwC,KAAAk6D,OAAAO,KAAA4J,EACArkE,KAAAi6D,OAAAA,GACAj6D,MAEAzB,EAAAmmE,kBAAAnmE,EAAAklE,cACAllE,EAAA0lE,eAAA,SAAAhK,GAWA,MAVA,gBAAAj6D,MAAAk6D,OAAAQ,QACA16D,KAAAk6D,OAAAQ,MAAAn/D,OAGAyE,KAAA06D,MAAA5B,EAAA+G,WAAA7/D,KAAAk6D,OAAAQ,MAAA16D,KAAAk6D,OAAAW,mBAFA76D,KAAAk6D,OAAAQ,MAAA,KAKA16D,KAAAi6D,OAAAA,IAGAj6D,MAEAzB,EAAA2lE,kBAAA,SAAAjK,GAMA,MALAj6D,MAAAk6D,OAAAn1D,WACA/E,KAAAk6D,OAAAn1D,SAAA,KACA/E,KAAAi6D,OAAAA,IAGAj6D,MAEAzB,EAAAomE,gBAAApmE,EAAA0lE,eACA1lE,EAAAqmE,cAAArmE,EAAA2lE,kBAEA3lE,EAAAk+D,QAAA,WAEA,GAAAh+D,GAAAq6D,EAAArK,OACAoW,EAAA/L,EAAAjL,MAEAiL,GAAArK,OAAAoL,OACAf,EAAAjL,OAAA2O,kBACA,KACAx8D,KAAA7F,YACA,QACA2+D,EAAArK,OAAAhwD,EACAq6D,EAAAjL,OAAAgX,EAEA,MAAA7kE,OAGAzB,EAAA8+C,QAAA,WAEA,GAAA5+C,GAAAq6D,EAAArK,OACAoW,EAAA/L,EAAAjL,MAEAiL,GAAArK,OAAAqL,EACAhB,EAAAjL,OAAA6O,QACA,KACA18D,KAAA7F,YACA,QACA2+D,EAAArK,OAAAhwD,EACAq6D,EAAAjL,OAAAgX,EAEA,MAAA7kE,OAGAzB,EAAAumE,SAAA,WACA,GAAAlmE,GAAAoB,KAAAoJ,OAEAxK,GAAA4hC,SAAA,IAAA/a,SAAA,IAAAtrB,WACA,IAAA2yB,GAAA,EAqBA,IApBAluB,EAAAs7D,OAAAn+B,WACAjP,GAAAluB,EAAAs7D,OAAAn+B,SAAA,OAGAn9B,EAAAs7D,OAAAI,WACA17D,EAAA6nB,GAAA,aAAA6oC,GACAxiC,GAAAwiC,EAAAP,UAAAnwD,EAAAs7D,OAAAI,UACA17D,EAAAs7D,OAAAM,OACA1tC,GAAA,IAAAluB,EAAAs7D,OAAAM,OAGA1tC,GAAAluB,EAAA+/B,QAIA//B,EAAAs7D,OAAAI,UAAA17D,EAAAs7D,OAAAO,MAAA,MAAA77D,EAAAs7D,OAAAO,KAAA7+D,OAAA,KACAkxB,GAAA,KAGAA,GAAAluB,EAAA67D,MAAA,GACA77D,EAAAs7D,OAAAQ,MAAA,CAEA,IAAA,GADA9L,GAAA,GACA9zD,EAAA,EAAAiqE,EAAAnmE,EAAAs7D,OAAAQ,MAAAv/D,MAAA,KAAAkJ,EAAA0gE,EAAAxpE,OAAAT,EAAAuJ,EAAAvJ,IAAA,CACA,GAAAkqE,IAAAD,EAAAjqE,IAAA,IAAAK,MAAA,IACAyzD,IAAA,IAAAkK,EAAAyF,YAAAyG,EAAA,GAAAhlE,KAAAk6D,OAAAW,kBACAl/D,QAAA,KAAA,WAEAyD,KAAA4lE,EAAA,KACApW,GAAA,IAAAkK,EAAAyF,YAAAyG,EAAA,GAAAhlE,KAAAk6D,OAAAW,kBACAl/D,QAAA,KAAA,QAGAmxB,GAAA,IAAA8hC,EAAApxD,UAAA,GAIA,MADAsvB,IAAAgsC,EAAAyF,YAAA3/D,EAAA0lB,QAAA,IAKA/lB,EAAA06D,WAAA,SAAAn+C,GACA,GAEAmqD,GAAAnqE,EAAAyD,EAFA2mE,EAAAllE,KAAAoJ,QACAyG,GAAA,WAAA,WAAA,WAAA,WAAA,OAWA,IARAiL,YAAAg+C,KACAh+C,EAAA,GAAAg+C,GAAAh+C,IAOA,cAAA9a,KAAAk6D,OAAAn+B,SAEA,MAAAmpC,EAGA,IAAA,cAAApqD,EAAAo/C,OAAAn+B,SAAA,CAEA,GAAAn9B,GAAAoB,KAAAi5D,WAAAn+C,EAAAo/C,OAAAO,KAEA,QAAA,IAAA3/C,EAAAo/C,OAAAO,KAAAl9D,QAAA,uBAAA,IAAAud,EAAAo/C,OAAAO,KAAAl9D,QAAA,WAAA,IAAAud,EAAAo/C,OAAAO,KAAAl9D,QAAA,UAEA,GAAAu7D,GAAA,cAAAl6D,EAAAmW,YAGAnW,EAGA,GAAAoB,KAAAk6D,OAAAK,IACA,KAAA,IAAAp9D,OAAA,iEAMA,IAAA+nE,EAAAhL,OAAAn+B,SAEA,MAAAmpC,EAKA,IAHAA,EAAAhL,OAAAn+B,SAAAjhB,EAAAo/C,OAAAn+B,SAGA/7B,KAAAk6D,OAAAI,SACA,MAAA4K,EAGA,KAAApqE,EAAA,EAAAyD,EAAAsR,EAAA/U,GAAAA,IACAoqE,EAAAhL,OAAA37D,GAAAuc,EAAAo/C,OAAA37D,EAsBA,OAnBA2mE,GAAAhL,OAAAO,MAMA,OAAAyK,EAAAhL,OAAAO,KAAAj9D,WAAA,KACA0nE,EAAAhL,OAAAO,MAAA,KAGA,MAAAyK,EAAAzK,OAAA7+D,OAAA,KACAqpE,EAAAnqD,EAAAuoD,YACA4B,EAAAA,IAAA,IAAAnqD,EAAA2/C,OAAAl9D,QAAA,KAAA,IAAA,IACA2nE,EAAAhL,OAAAO,MAAAwK,EAAAA,EAAA,IAAA,IAAAC,EAAAhL,OAAAO,KACAyK,EAAAzB,mBAbAyB,EAAAhL,OAAAO,KAAA3/C,EAAAo/C,OAAAO,KACAyK,EAAAhL,OAAAQ,QACAwK,EAAAhL,OAAAQ,MAAA5/C,EAAAo/C,OAAAQ,QAeAwK,EAAAjL,QACAiL,GAEA3mE,EAAA4mE,WAAA,SAAArqD,GACA,GACAsqD,GAAAlqE,EAAAmqE,EAAAC,EAAAC,EADA1oD,EAAA7c,KAAAoJ,QAAAjP,WAGA,IAAA0iB,EAAAq9C,OAAAK,IACA,KAAA,IAAAp9D,OAAA,iEASA,IANA2d,EAAA,GAAAg+C,GAAAh+C,GAAA3gB,YACAirE,EAAAvoD,EAAAq9C,OACAh/D,EAAA4f,EAAAo/C,OACAoL,EAAAzoD,EAAA49C,OACA8K,EAAAzqD,EAAA2/C,OAEA,MAAA6K,EAAA1pE,OAAA,GACA,KAAA,IAAAuB,OAAA,0BAGA,IAAA,MAAAooE,EAAA3pE,OAAA,GACA,KAAA,IAAAuB,OAAA,0DAOA,IAJAioE,EAAArpC,WAAA7gC,EAAA6gC,WACAqpC,EAAArpC,SAAA,MAGAqpC,EAAA5kC,WAAAtlC,EAAAslC,UAAA4kC,EAAA3/C,WAAAvqB,EAAAuqB,SACA,MAAA5I,GAAAo9C,OAGA,IAAA,OAAAmL,EAAArpC,UAAA,OAAAqpC,EAAA5kC,UAAA,OAAA4kC,EAAA3/C,SACA,MAAA5I,GAAAo9C,OAGA,IAAAmL,EAAA9K,WAAAp/D,EAAAo/D,UAAA8K,EAAA5K,OAAAt/D,EAAAs/D,KAIA,MAAA39C,GAAAo9C,OAGA,IANAmL,EAAA9K,SAAA,KACA8K,EAAA5K,KAAA,KAKA8K,IAAAC,EAEA,MADAH,GAAA3K,KAAA,GACA59C,EAAAo9C,OAOA,MAHAoL,EAAAvM,EAAA+H,WAAAyE,EAAAC,IAIA,MAAA1oD,GAAAo9C,OAGA,IAAAzyC,GAAAtsB,EAAAu/D,KACAj9D,UAAA6nE,EAAA9pE,QACAI,QAAA,UAAA,IACAA,QAAA,SAAA,MAIA,OAFAypE,GAAA3K,KAAAjzC,EAAA49C,EAAA3K,KAAAj9D,UAAA6nE,EAAA9pE,SAAA,KAEAshB,EAAAo9C,SAIA17D,EAAAinE,OAAA,SAAA5mE,GACA,GAKA6mE,GAAAC,EAAAzjE,EALA0E,EAAA3G,KAAAoJ,QACAqwD,EAAA,GAAAX,GAAAl6D,GACA+mE,KACAC,KACAv9D,IAOA,IAJA1B,EAAAxM,YACAs/D,EAAAt/D,YAGAwM,EAAAoO,aAAA0kD,EAAA1kD,WACA,OAAA,CAUA,IANA0wD,EAAA9+D,EAAA+zD,QACAgL,EAAAjM,EAAAiB,QACA/zD,EAAA+zD,MAAA,IACAjB,EAAAiB,MAAA,IAGA/zD,EAAAoO,aAAA0kD,EAAA1kD,WACA,OAAA,CAIA,IAAA0wD,EAAAlqE,SAAAmqE,EAAAnqE,OACA,OAAA,CAGAoqE,GAAA7M,EAAA+G,WAAA4F,EAAAzlE,KAAAk6D,OAAAW,kBACA+K,EAAA9M,EAAA+G,WAAA6F,EAAA1lE,KAAAk6D,OAAAW,iBAEA,KAAA54D,IAAA0jE,GACA,GAAA1rE,EAAAC,KAAAyrE,EAAA1jE,GAAA,CACA,GAAAyN,EAAAi2D,EAAA1jE,KAIA,IAAAu3D,EAAAmM,EAAA1jE,GAAA2jE,EAAA3jE,IACA,OAAA,MAJA,IAAA0jE,EAAA1jE,KAAA2jE,EAAA3jE,GACA,OAAA,CAMAoG,GAAApG,IAAA,EAIA,IAAAA,IAAA2jE,GACA,GAAA3rE,EAAAC,KAAA0rE,EAAA3jE,KACAoG,EAAApG,GAEA,OAAA,CAKA,QAAA,GAIA1D,EAAAo8D,uBAAA,SAAAlmD,GAEA,MADAzU,MAAAk6D,OAAAS,yBAAAlmD,EACAzU,MAGAzB,EAAAq8D,yBAAA,SAAAnmD,GAEA,MADAzU,MAAAk6D,OAAAU,2BAAAnmD,EACAzU,MAGAzB,EAAAs8D,iBAAA,SAAApmD,GAEA,MADAzU,MAAAk6D,OAAAW,mBAAApmD,EACAzU,MAGA84D,IAGA,SAAAn5D,EAAAC,GC1zEA,gBAAApB,UAAA,mBAAAE,QAAAkB,EAAApB,SACA,kBAAA5E,SAAAA,OAAA6F,IAAA7F,OAAA,kBAAA,WAAAgG,GACAA,EAAAD,EAAAkmE,aACA7lE,KAAA,SAAAxB,GAAA,YA42UA,SAAAsnE,GAAApvB,EAAAqvB,GAKA,IAJA,GAAAzoE,IAAA,EACA/B,EAAA,MAAAm7C,EAAA,EAAAA,EAAAn7C,OACAuU,EAAAwG,MAAA/a,KAEA+B,EAAA/B,GACAuU,EAAAxS,GAAAyoE,EAAArvB,EAAAp5C,GAAAA,EAAAo5C,EAEA,OAAA5mC,GAsCA,QAAAk2D,GAAAnpE,GACA,GAAAopE,GAAAloE,GAAA7D,KAAA2C,EAAAqpE,IACAriE,EAAAhH,EAAAqpE,GAEA,KACArpE,EAAAqpE,QAAA9mE,EACA,IAAA+mE,IAAA,EACA,MAAA1nE,IAEA,GAAAqR,GAAAs2D,GAAAlsE,KAAA2C,EAQA,OAPAspE,KACAF,EACAppE,EAAAqpE,IAAAriE,QAEAhH,GAAAqpE,KAGAp2D,EAoBA,QAAAu2D,GAAAxpE,GACA,MAAAypE,IAAApsE,KAAA2C,GAiBA,QAAA0pE,GAAA1pE,GACA,MAAA,OAAAA,MACAuC,KAAAvC,EAAA2pE,GAAAC,GAEAC,IAAAA,KAAA7oE,QAAAhB,GACAmpE,EAAAnpE,GACAwpE,EAAAxpE,GA4BA,QAAA8pE,GAAA9pE,GACA,GAAAsD,SAAAtD,EACA,OAAA,OAAAA,IAAA,UAAAsD,GAAA,YAAAA,GA0BA,QAAAM,GAAA5D,GACA,IAAA8pE,EAAA9pE,GACA,OAAA,CAIA,IAAAgH,GAAA0iE,EAAA1pE,EACA,OAAAgH,IAAA+iE,IAAA/iE,GAAAgjE,IAAAhjE,GAAAijE,IAAAjjE,GAAAkjE,GAmBA,QAAAC,GAAAl1D,GACA,QAAAm1D,IAAAA,KAAAn1D,GAgBA,QAAAo1D,GAAAp1D,GACA,GAAA,MAAAA,EAAA,CACA,IACA,MAAAq1D,IAAAjtE,KAAA4X,GACA,MAAArT,IACA,IACA,MAAAqT,GAAA,GACA,MAAArT,KAEA,MAAA,GAoCA,QAAA2oE,GAAAvqE,GACA,SAAA8pE,EAAA9pE,IAAAmqE,EAAAnqE,MAGA4D,EAAA5D,GAAAwqE,GAAAC,IACA5rE,KAAAwrE,EAAArqE,IAWA,QAAA0qE,GAAAnmE,EAAAa,GACA,MAAA,OAAAb,MAAAhC,GAAAgC,EAAAa,GAWA,QAAAulE,GAAApmE,EAAAa,GACA,GAAApF,GAAA0qE,EAAAnmE,EAAAa,EACA,OAAAmlE,GAAAvqE,GAAAA,MAAAuC,GAaA,QAAAqoE,KACAznE,KAAA0nE,SAAAC,GAAAA,GAAA,SACA3nE,KAAA8jC,KAAA,EAaA,QAAA8jC,GAAA3lE,GACA,GAAA6N,GAAA9P,KAAAkkB,IAAAjiB,UAAAjC,MAAA0nE,SAAAzlE,EAEA,OADAjC,MAAA8jC,MAAAh0B,EAAA,EAAA,EACAA,EAqBA,QAAA+3D,GAAA5lE,GACA,GAAAC,GAAAlC,KAAA0nE,QACA,IAAAC,GAAA,CACA,GAAA73D,GAAA5N,EAAAD,EACA,OAAA6N,KAAAg4D,OAAA1oE,GAAA0Q,EAEA,MAAAi4D,IAAA7tE,KAAAgI,EAAAD,GAAAC,EAAAD,OAAA7C,GAkBA,QAAA4oE,GAAA/lE,GACA,GAAAC,GAAAlC,KAAA0nE,QACA,OAAAC,QAAAvoE,KAAA8C,EAAAD,GAAAgmE,GAAA/tE,KAAAgI,EAAAD,GAgBA,QAAAimE,GAAAjmE,EAAApF,GACA,GAAAqF,GAAAlC,KAAA0nE,QAGA,OAFA1nE,MAAA8jC,MAAA9jC,KAAAkkB,IAAAjiB,GAAA,EAAA,EACAC,EAAAD,GAAA0lE,QAAAvoE,KAAAvC,EAAAsrE,GAAAtrE,EACAmD,KAUA,QAAAooE,GAAA1wB,GACA,GAAAp6C,IAAA,EACA/B,EAAA,MAAAm8C,EAAA,EAAAA,EAAAn8C,MAGA,KADAyE,KAAAgoD,UACA1qD,EAAA/B,GAAA,CACA,GAAAorD,GAAAjP,EAAAp6C,EACA0C,MAAAyC,IAAAkkD,EAAA,GAAAA,EAAA,KAkBA,QAAA0hB,KACAroE,KAAA0nE,YACA1nE,KAAA8jC,KAAA,EAmCA,QAAA56B,GAAArM,EAAAyrE,GACA,MAAAzrE,KAAAyrE,GAAAzrE,IAAAA,GAAAyrE,IAAAA,EAWA,QAAAC,GAAA7xB,EAAAz0C,GAEA,IADA,GAAA1G,GAAAm7C,EAAAn7C,OACAA,KACA,GAAA2N,EAAAwtC,EAAAn7C,GAAA,GAAA0G,GACA,MAAA1G,EAGA,QAAA,EAkBA,QAAAitE,GAAAvmE,GACA,GAAAC,GAAAlC,KAAA0nE,SACApqE,EAAAirE,EAAArmE,EAAAD,EAEA,SAAA3E,EAAA,KAIAA,GADA4E,EAAA3G,OAAA,EAEA2G,EAAA4b,MAEA/hB,GAAA7B,KAAAgI,EAAA5E,EAAA,KAEA0C,KAAA8jC,MACA,GAYA,QAAA2kC,GAAAxmE,GACA,GAAAC,GAAAlC,KAAA0nE,SACApqE,EAAAirE,EAAArmE,EAAAD,EAEA,OAAA3E,GAAA,MAAA8B,GAAA8C,EAAA5E,GAAA,GAYA,QAAAorE,GAAAzmE,GACA,MAAAsmE,GAAAvoE,KAAA0nE,SAAAzlE,IAAA,EAaA,QAAA0mE,GAAA1mE,EAAApF,GACA,GAAAqF,GAAAlC,KAAA0nE,SACApqE,EAAAirE,EAAArmE,EAAAD,EAQA,OANA3E,GAAA,KACA0C,KAAA8jC,KACA5hC,EAAA3F,MAAA0F,EAAApF,KAEAqF,EAAA5E,GAAA,GAAAT,EAEAmD,KAUA,QAAA4oE,GAAAlxB,GACA,GAAAp6C,IAAA,EACA/B,EAAA,MAAAm8C,EAAA,EAAAA,EAAAn8C,MAGA,KADAyE,KAAAgoD,UACA1qD,EAAA/B,GAAA,CACA,GAAAorD,GAAAjP,EAAAp6C,EACA0C,MAAAyC,IAAAkkD,EAAA,GAAAA,EAAA,KAqBA,QAAAkiB,KACA7oE,KAAA8jC,KAAA,EACA9jC,KAAA0nE,UACApjD,KAAA,GAAA8jD,GACAhtE,IAAA,IAAAwwC,IAAAg9B,GACA5xD,OAAA,GAAAoxD,IAWA,QAAAU,GAAAjsE,GACA,GAAAsD,SAAAtD,EACA,OAAA,UAAAsD,GAAA,UAAAA,GAAA,UAAAA,GAAA,WAAAA,EACA,cAAAtD,EACA,OAAAA,EAWA,QAAAksE,GAAA3tE,EAAA6G,GACA,GAAAC,GAAA9G,EAAAssE,QACA,OAAAoB,GAAA7mE,GACAC,EAAA,gBAAAD,GAAA,SAAA,QACAC,EAAA9G,IAYA,QAAA4tE,GAAA/mE,GACA,GAAA6N,GAAAi5D,EAAA/oE,KAAAiC,GAAA,OAAAA,EAEA,OADAjC,MAAA8jC,MAAAh0B,EAAA,EAAA,EACAA,EAYA,QAAAm5D,GAAAhnE,GACA,MAAA8mE,GAAA/oE,KAAAiC,GAAAsC,IAAAtC,GAYA,QAAAinE,GAAAjnE,GACA,MAAA8mE,GAAA/oE,KAAAiC,GAAAiiB,IAAAjiB,GAaA,QAAAknE,GAAAlnE,EAAApF,GACA,GAAAqF,GAAA6mE,EAAA/oE,KAAAiC,GACA6hC,EAAA5hC,EAAA4hC,IAIA,OAFA5hC,GAAAO,IAAAR,EAAApF,GACAmD,KAAA8jC,MAAA5hC,EAAA4hC,MAAAA,EAAA,EAAA,EACA9jC,KAUA,QAAAopE,GAAA1xB,GACA,GAAAp6C,IAAA,EACA/B,EAAA,MAAAm8C,EAAA,EAAAA,EAAAn8C,MAGA,KADAyE,KAAAgoD,UACA1qD,EAAA/B,GAAA,CACA,GAAAorD,GAAAjP,EAAAp6C,EACA0C,MAAAyC,IAAAkkD,EAAA,GAAAA,EAAA,KAwBA,QAAA0iB,GAAAxsE,GAEA,MADAmD,MAAA0nE,SAAAjlE,IAAA5F,EAAAysE,IACAtpE,KAYA,QAAAupE,GAAA1sE,GACA,MAAAmD,MAAA0nE,SAAAxjD,IAAArnB,GAWA,QAAA2sE,GAAAz8D,GACA,GAAAzP,IAAA,EACA/B,EAAA,MAAAwR,EAAA,EAAAA,EAAAxR,MAGA,KADAyE,KAAA0nE,SAAA,GAAA0B,KACA9rE,EAAA/B,GACAyE,KAAAgH,IAAA+F,EAAAzP,IAmBA,QAAAmsE,GAAA/yB,EAAAa,EAAAmyB,EAAAC,GAIA,IAHA,GAAApuE,GAAAm7C,EAAAn7C,OACA+B,EAAAosE,GAAAC,EAAA,GAAA,GAEAA,EAAArsE,MAAAA,EAAA/B,GACA,GAAAg8C,EAAAb,EAAAp5C,GAAAA,EAAAo5C,GACA,MAAAp5C,EAGA,QAAA,EAUA,QAAAssE,GAAA/sE,GACA,MAAAA,KAAAA,EAaA,QAAAgtE,GAAAnzB,EAAA75C,EAAA6sE,GAIA,IAHA,GAAApsE,GAAAosE,EAAA,EACAnuE,EAAAm7C,EAAAn7C,SAEA+B,EAAA/B,GACA,GAAAm7C,EAAAp5C,KAAAT,EACA,MAAAS,EAGA,QAAA,EAYA,QAAAwsE,GAAApzB,EAAA75C,EAAA6sE,GACA,MAAA7sE,KAAAA,EACAgtE,EAAAnzB,EAAA75C,EAAA6sE,GACAD,EAAA/yB,EAAAkzB,EAAAF,GAYA,QAAAK,GAAArzB,EAAA75C,GAEA,SADA,MAAA65C,EAAA,EAAAA,EAAAn7C,SACAuuE,EAAApzB,EAAA75C,EAAA,IAAA,EAYA,QAAAmtE,GAAAtzB,EAAA75C,EAAAotE,GAIA,IAHA,GAAA3sE,IAAA,EACA/B,EAAA,MAAAm7C,EAAA,EAAAA,EAAAn7C,SAEA+B,EAAA/B,GACA,GAAA0uE,EAAAptE,EAAA65C,EAAAp5C,IACA,OAAA,CAGA,QAAA,EAUA,QAAA4sE,GAAAp4D,GACA,MAAA,UAAAjV,GACA,MAAAiV,GAAAjV,IAYA,QAAAstE,GAAA9wD,EAAApX,GACA,MAAAoX,GAAA6K,IAAAjiB,GAgBA,QAAAmoE,GAAAC,EAAAtE,EAAAkE,GASA,IARA,GAAAt1B,GAAAs1B,EAAAD,EAAAD,EACAxuE,EAAA8uE,EAAA,GAAA9uE,OACA+uE,EAAAD,EAAA9uE,OACAgvE,EAAAD,EACAE,EAAAl0D,MAAAg0D,GACAG,EAAAp2B,EAAAA,EACAvkC,KAEAy6D,KAAA,CACA,GAAA7zB,GAAA2zB,EAAAE,EACAA,IAAAxE,IACArvB,EAAAovB,EAAApvB,EAAAwzB,EAAAnE,KAEA0E,EAAAC,GAAAh0B,EAAAn7C,OAAAkvE,GACAD,EAAAD,IAAAN,IAAAlE,GAAAxqE,GAAA,KAAAm7C,EAAAn7C,QAAA,KACA,GAAAiuE,GAAAe,GAAA7zB,OACAt3C,GAEAs3C,EAAA2zB,EAAA,EAEA,IAAA/sE,IAAA,EACAqtE,EAAAH,EAAA,EAEAI,GACA,OAAAttE,EAAA/B,GAAAuU,EAAAvU,OAAAkvE,GAAA,CACA,GAAA5tE,GAAA65C,EAAAp5C,GACAoN,EAAAq7D,EAAAA,EAAAlpE,GAAAA,CAGA,IADAA,EAAAotE,GAAA,IAAAptE,EAAAA,EAAA,IACA8tE,EACAR,EAAAQ,EAAAjgE,GACAiqC,EAAA7kC,EAAApF,EAAAu/D,IACA,CAEA,IADAM,EAAAD,IACAC,GAAA,CACA,GAAAlxD,GAAAmxD,EAAAD,EACA,MAAAlxD,EACA8wD,EAAA9wD,EAAA3O,GACAiqC,EAAA01B,EAAAE,GAAA7/D,EAAAu/D,IAEA,QAAAW,GAGAD,GACAA,EAAApuE,KAAAmO,GAEAoF,EAAAvT,KAAAM,IAGA,MAAAiT,GAmBA,QAAA+6D,GAAAhuE,GACA,MAAAA,GAaA,QAAAJ,GAAAqV,EAAA0lC,EAAAp7C,GACA,OAAAA,EAAAb,QACA,IAAA,GAAA,MAAAuW,GAAA5X,KAAAs9C,EACA,KAAA,GAAA,MAAA1lC,GAAA5X,KAAAs9C,EAAAp7C,EAAA,GACA,KAAA,GAAA,MAAA0V,GAAA5X,KAAAs9C,EAAAp7C,EAAA,GAAAA,EAAA,GACA,KAAA,GAAA,MAAA0V,GAAA5X,KAAAs9C,EAAAp7C,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEA,MAAA0V,GAAArV,MAAA+6C,EAAAp7C,GAeA,QAAA0uE,GAAAh5D,EAAArO,EAAAsnE,GAEA,MADAtnE,GAAAunE,OAAA5rE,KAAAqE,EAAAqO,EAAAvW,OAAA,EAAAkI,EAAA,GACA,WAMA,IALA,GAAArH,GAAAE,UACAgB,GAAA,EACA/B,EAAAyvE,GAAA5uE,EAAAb,OAAAkI,EAAA,GACAizC,EAAApgC,MAAA/a,KAEA+B,EAAA/B,GACAm7C,EAAAp5C,GAAAlB,EAAAqH,EAAAnG,EAEAA,IAAA,CAEA,KADA,GAAA2tE,GAAA30D,MAAA7S,EAAA,KACAnG,EAAAmG,GACAwnE,EAAA3tE,GAAAlB,EAAAkB,EAGA,OADA2tE,GAAAxnE,GAAAsnE,EAAAr0B,GACAj6C,EAAAqV,EAAA9R,KAAAirE,IAuBA,QAAAC,GAAAruE,GACA,MAAA,YACA,MAAAA,IAoHA,QAAAsuE,GAAAtuE,GACA,MAAA,gBAAAA,IACAA,GAAA,GAAAA,EAAA,GAAA,GAAAA,GAAA4xC,GA4BA,QAAAvuC,GAAArD,GACA,MAAA,OAAAA,GAAAsuE,EAAAtuE,EAAAtB,UAAAkF,EAAA5D,GA2BA,QAAAuuE,GAAAvuE,GACA,MAAA,OAAAA,GAAA,gBAAAA,GA4BA,QAAAwuE,GAAAxuE,GACA,MAAAuuE,GAAAvuE,IAAAqD,EAAArD,GAUA,QAAAyuE,IAAAzuE,GACA,MAAAwuE,GAAAxuE,GAAAA,KAwCA,QAAA0uE,IAAAC,EAAAC,GACA,MAAA,gBAAAA,IACAD,EAAAE,WAAAF,EAAAxnE,YAAAynE,EAEAD,IAAAC,EAGA,QAAAE,IAAAH,GACA,GAAAvqD,GAAAuqD,EAAAvqD,SAEA,OAAA,gBAAAA,GACAA,EAAA9lB,MAAA,MACA,gBAAA,KAAA8lB,EAAA,YAAA2qD,GAAA3qD,KAAA,WAAAA,GACAA,EAAA4qD,QAAA1wE,MAAA,SAKA,QAAA2wE,IAAAN,EAAAO,EAAAC,EAAAC,GACA,GAAAF,GAAAA,EAAAxwE,OAAA,CACA,GAAA2wE,GAAAP,GAAAH,EACA,IAAA,IAAAU,EAAA3wE,QAAAwwE,EAAAp3B,SAAAu3B,EAAA,IACA,OAAA,CACA,IAAAA,EAAA3wE,QAAA4wE,GAAAJ,EAAAG,GAAA3wE,OACA,OAAA,EAIA,GAAAywE,GAAAA,EAAAzwE,QACAiwE,EAAAY,QAAA,CAKA,GAJAJ,EAAApuD,KAAA,SAAAyuD,GACA,MAAAd,IAAAC,EAAAa,EAAAjqE,iBAIA,OAAA,EAKA,GAAA6pE,GAAAA,EAAA1wE,OAAA,CACA,GAAAoD,GAAA6sE,EAAA7sE,EAEA,IAAAA,GAAAA,EAAApD,QAAA0wE,EAAAt3B,SAAAh2C,GACA,OAAA,EAIA,OAAA,EAGA,QAAA2tE,IAAAhsE,EAAAyrE,EAAAC,EAAAC,GACA,SAAAnwE,OAAAywE,GAAAjsE,IAAAQ,OAAA,SAAA0qE,GACA,MAAAM,IAAAN,EAAAO,EAAAC,EAAAC,KAIA,QAAAO,IAAAC,EAAAC,GACA,GAAAC,GAAAF,EAAApqE,aAAA,QACA,IAAAsqE,EAAA,CACA,GAAAhkE,GAAA+jE,EAAAE,cAAA,OAAAD,EAAA,IACA,IAAAhkE,EACA,MAAAA,GAAAtG,aAAA,SAsCA,QAAAwqE,IAAAC,EAAAC,GACA,MAAAD,GAAAC,EAAA,EAIA,QAAAC,IAAAC,EAAAC,EAAAnB,EAAAC,EAAAC,GACA,GAAAkB,GAAAF,EAAA,EAAA,EAEAG,EAAA93D,GAAAg3D,GAAAY,EAAAjmD,WAAAzR,UAAAu2D,EAAAC,EAAAC,IACAoB,EAAAD,EAAA7xE,MAEA,IAAAsxE,GAAAM,EAAAE,GACA,KAAA,IAAAC,IAAAH,EAAAE,EAAA,EAAA,GAGA,OAAA/3D,IAAA83D,EAAAD,IAOA,QAAAI,IAAAC,EAAAC,EAAAC,GAOA,IAAA,GANAC,GAAAH,EACAxnE,EAAAwnE,EAAA,GAAAxnE,cAGA4nE,EAAA,EAEAC,EAAA,EAAAA,GAAAL,EAAAjyE,OAAAsyE,GAAA,EACA,GAAAL,EAAAK,GAAAjtE,WAAAktE,KAAAC,UAAA,CACA,GAAAC,OAAA,GACAC,EAAAT,EAAAK,GAAAjrD,UAAArnB,OAAAqyE,EACAM,EAAAT,EAAAG,CACA,IAAAK,EAAAR,EAAA,CAEA,GAAAU,GAAAX,EAAAK,GAAAjrD,SAGA+qD,GAAAE,GAAAjrD,UAAAurD,EAAAtyE,MAAA,EAAAqyE;6BAGAF,EAAA14D,GAAAo4D,GAAA57C,YAAA07C,EAAAtkE,GAAA2kE,GAGA,IAAAO,GAAAD,EAAAtyE,MAAAqyE,EAAAC,EAAA5yE,QACA8yE,EAAAroE,EAAAF,eAAAsoE,EAIA,OAFA94D,IAAA+4D,GAAAv8C,YAAAk8C,GAEAA,EACA,GAAAC,IAAAR,EAEA,MADAO,GAAA14D,GAAAo4D,GAAA57C,YAAA07C,EAAAtkE,GAAA2kE,GAGAD,GAAAK,MACAT,GAAAK,GAAAjtE,WAAAktE,KAAAQ,aACAV,EAAAJ,EAAAK,GAAAjrD,UAAArnB,OAAA,EAAAqyE,EACAJ,EAAAK,GAAAjtE,WAAAktE,KAAAS,8BACAX,EAAAJ,EAAAK,GAAAjrD,UAAArnB,OAAAiyE,EAAAK,GAAAj7D,OAAArX,OAAA,EAIA,MAAA,IAAAizE,IAAA,OAAA,eAAAf,EAAA,8CAcA,QAAAgB,IAAAxB,EAAAC,EAAAnB,EAAAC,EAAAC,GACA,GAAAyC,OAAA,GACAC,MAAA,GAMAC,EAAAt5D,GAAAg3D,GAAAY,EAAA55D,WAAAkC,UAAAu2D,EAAAC,EAAAC,IAGA4C,GAAAj2C,SAAAq0C,EAAA,IAAA,GAAA,EAAA,CAGAyB,GAAA,EACAC,GAAA,CACA,IAAAG,GAAAF,EAAA9tE,OAAA,WACA,MAAA4tE,KAAAG,EAEA7uE,KAAAY,WAAAktE,KAAAC,WAAA/tE,KAAAY,WAAAktE,KAAAQ,cAAAtuE,KAAAY,WAAAktE,KAAAS,6BACAI,GAAA,GACA,MACAA,GAAA3uE,KAAAY,WAAAktE,KAAAC,aAGAW,GAAA,EACAC,GAAA,GACA,IAKA3uE,KAAAY,WAAAktE,KAAAC,WAAA/tE,KAAAY,WAAAktE,KAAAQ,cAAAtuE,KAAAY,WAAAktE,KAAAS,4BACAI,GAAA,EACAA,GAAA3uE,KAAAY,WAAAktE,KAAAiB,aAGAJ,GAAA3uE,KAAAY,WAAAktE,KAAAC,WAAA/tE,OAAA4uE,EAAAlpE,YACAgpE,GAAA,EACAC,GAAA,IAJAD,GAAA,EACAC,GAAA,IAMA,IAKA,IAAA,IAAAG,EAAAvzE,OACA,KAAA,IAAA+xE,IAAAuB,EAAAH,EAAA,qBAIA,OAAAI,GASA,QAAAE,IAAA/B,EAAAC,EAAAnB,EAAAC,EAAAC,GASA,MANAgB,GAAA,GAAA,EACAD,GAAAC,EAAAC,EAAAnB,EAAAC,EAAAC,GAEAwC,GAAAxB,EAAAC,EAAAnB,EAAAC,EAAAC,GAWA,QAAAgD,IAAAhC,EAAAC,EAAAnB,EAAAC,EAAAC,GACA,GAAAiD,OAAA,GACA9B,MAAA,GACA+B,MAAA,EAKA,QAAA/vE,KAAA8tE,IAAA3B,GAAA2B,EAAA,GAAA,UACA,KAAA,IAAAkC,IAAAlC,EAAA,6BAIA,IAAA3B,GAAA2B,EAAA,GAAA,UAWA,MATAgC,GAAAhC,EAAA55D,WAGA85D,EAAA93D,GAAAg3D,GAAA4C,EAAAjoD,WAAAzR,UAAAu2D,EAAAC,EAAAC,IACAkD,EAAA75D,GAAA83D,EAAA,IAGA4B,GAAA/B,EAAAkC,EAAApD,EAAAC,EAAAC,GAgBA,QAAAoD,IAAAnC,EAAAO,EAAAC,GAEA,OAAAtuE,KAAA8tE,EACA,KAAA,IAAAkC,IAAAlC,EAAA,4CACA,IAAA,IAAAA,EAAA3xE,OACA,KAAA,IAAAizE,IAAA,OAAA,eAAAf,EAAA,2CAGA,OAAAF,IAAAL,EAAAO,EAAAC,GAKA,QAAA4B,IAAAC,EAAAC,GACA,MAAAD,GAAAhtD,KAAA,QAAAitD,EA6BA,QAAAC,IAAAC,EAAAC,EAAAC,EAAArrD,GACAvkB,KAAA0vE,QAAAA,EACA1vE,KAAA2vE,SAAAA,EACA3vE,KAAA4vE,MAAAA,EACA5vE,KAAAukB,SAAAA,EACAvkB,KAAA5F,KAAA,cAEA,kBAAA+C,OAAA0yE,mBACA1yE,MAAA0yE,kBAAA7vE,KAAAyvE,IAoGA,QAAAK,IAAAvuD,EAAApgB,GA+JA,QAAA4uE,GAAAj5D,EAAAqmC,GACA,OAAAh9C,KAAA,UAAA2W,KAAAA,EAAAqmC,WAAAA,GAGA,QAAA6yB,GAAA9xE,EAAA+xE,EAAA9yB,GACA,OAAAh9C,KAAA,QAAAjC,MAAAA,EAAA+xE,SAAAA,EAAA9yB,WAAAA,GAOA,QAAA+yB,GAAA7oD,GACA,GACA9oB,GADA4xE,EAAAC,GAAA/oD,EAGA,IAAA8oD,EACA,MAAAA,EAGA,KADA5xE,EAAA8oB,EAAA,GACA+oD,GAAA7xE,IACAA,GASA,KANA4xE,EAAAC,GAAA7xE,GACA4xE,GACAE,KAAAF,EAAAE,KACAC,OAAAH,EAAAG,QAGA/xE,EAAA8oB,GACA,KAAA9F,EAAAszB,WAAAt2C,IACA4xE,EAAAE,OACAF,EAAAG,OAAA,GAEAH,EAAAG,SAGA/xE,GAIA,OADA6xE,IAAA/oD,GAAA8oD,EACAA,EAIA,QAAAI,GAAAC,EAAAC,GACA,GAAAC,GAAAR,EAAAM,GACAG,EAAAT,EAAAO,EAEA,QACAhtE,OACA0+B,OAAAquC,EACAH,KAAAK,EAAAL,KACAC,OAAAI,EAAAJ,QAEA5sE,KACAy+B,OAAAsuC,EACAJ,KAAAM,EAAAN,KACAC,OAAAK,EAAAL,SAKA,QAAAM,GAAAjB,GACAkB,GAAAC,KAIAD,GAAAC,KACAA,GAAAD,GACAE,OAGAA,GAAAx0E,KAAAozE,IAOA,QAAAqB,KACA,GAAAC,GAAAC,EAAAC,EAAAC,CA2CA,OAzCAH,GAAAJ,GACAtvD,EAAAs0B,OAAAg7B,GAAA,KAAAQ,GACAH,EAAAG,EACAR,IAAA,IAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAY,IAGAN,IAAAI,GACAH,EAAAM,IACAN,IAAAG,IACAH,EAAAO,KAEAP,IAAAG,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAO,EAAAO,EACAd,OAEAO,EAAAE,EACA,IAAAC,IACAX,EAAAgB,IAGAR,IAAAE,GACAJ,EAAAW,EAAAV,GACAF,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAQ,KACA,GAAAR,GAAAC,EAAAC,EAAAC,EAAAU,EAAAC,EAAAC,CA6DA,OA3DAf,GAAAJ,GACAK,EAAAe,IACAf,IAAAI,GACAH,EAAAe,IACAf,IAAAG,IACAH,EAAA,MAEAA,IAAAG,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAO,EAAAe,EACAtB,OAEAO,EAAAE,EACA,IAAAC,IACAX,EAAAwB,IAGAhB,IAAAE,GACAQ,EAAAI,IACAJ,IAAAR,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAkB,EAAAI,EACAtB,OAEAkB,EAAAT,EACA,IAAAC,IACAX,EAAAwB,IAGAL,IAAAT,GACAU,EAAAE,IACAF,IAAAV,GACAJ,EAAAmB,EAAAnB,EAAAC,EAAAW,EAAAE,GACAf,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAS,KACA,GAAAT,GAAAC,EAAAC,CAkBA,OAhBAF,GAAAJ,GACAK,EAAAe,IACAf,IAAAI,GACAH,EAAAe,IACAf,IAAAG,GACAJ,EAAAoB,EAAApB,EAAAC,GACAF,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAiB,KACA,GAAAjB,GAAAC,EAAAC,CAQA,IANAF,EAAAJ,GACAK,KACAC,EAAAc,IACAd,IAAAG,IACAH,EAAAoB,KAEApB,IAAAG,EACA,KAAAH,IAAAG,GACAJ,EAAA30E,KAAA40E,IACAA,EAAAc,OACAX,IACAH,EAAAoB,SAIArB,GAAAI,CAmBA,OAjBAJ,KAAAI,GACAH,EAAAqB,IACArB,IAAAG,IACAH,EAAA,MAEAA,IAAAG,GACAJ,EAAAuB,EAAAvB,EAAAC,GACAF,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAgB,KACA,GAAAhB,GAAAC,EAAAC,EAAAC,EAAAU,EAAAC,EAAAC,CAuEA,OArEAf,GAAAJ,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAAwB,EACA7B,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA+B,IAGAzB,IAAAI,GACAH,EAAAyB,IACAzB,IAAAG,GACAF,EAAAP,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAiB,EAAAe,EACAhC,OAEAiB,EAAAR,EACA,IAAAC,IACAX,EAAAkC,IAGAhB,IAAAR,GACAS,EAAAgB,IACAhB,IAAAT,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAmB,EAAAgB,EACAnC,OAEAmB,EAAAV,EACA,IAAAC,IACAX,EAAAqC,IAGAjB,IAAAV,GACAQ,GAAAA,EAAAC,EAAAC,GACAZ,EAAAU,IAEAjB,GAAAO,EACAA,EAAAE,KAGAT,GAAAO,EACAA,EAAAE,KAGAT,GAAAO,EACAA,EAAAE,GAEAF,IAAAE,IACAF,EAAA,MAEAA,IAAAE,GACAJ,EAAAgC,EAAA/B,EAAAC,GACAH,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAsB,KACA,GAAAtB,GAAAC,EAAAC,EAAAC,EAAAU,EAAAC,EAAAC,CAuEA,OArEAf,GAAAJ,GACAtvD,EAAAs0B,OAAAg7B,GAAA,KAAAsC,GACAjC,EAAAiC,EACAtC,IAAA,IAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAwC,IAGAlC,IAAAI,GACAH,EAAAyB,IACAzB,IAAAG,GACAF,EAAAP,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAiB,EAAAe,EACAhC,OAEAiB,EAAAR,EACA,IAAAC,IACAX,EAAAkC,IAGAhB,IAAAR,GACAS,EAAAgB,IACAhB,IAAAT,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAmB,EAAAgB,EACAnC,OAEAmB,EAAAV,EACA,IAAAC,IACAX,EAAAqC,IAGAjB,IAAAV,GACAQ,GAAAA,EAAAC,EAAAC,GACAZ,EAAAU,IAEAjB,GAAAO,EACAA,EAAAE,KAGAT,GAAAO,EACAA,EAAAE,KAGAT,GAAAO,EACAA,EAAAE,GAEAF,IAAAE,IACAF,EAAA,MAEAA,IAAAE,GACAJ,EAAAmC,EAAAlC,EAAAC,GACAH,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAuB,KACA,GAAAvB,GAAAC,EAAAC,EAAAC,EAAAU,EAAAC,EAAAC,CAuEA,OArEAf,GAAAJ,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAAoC,GACAzC,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA2C,KAGArC,IAAAI,GACAH,EAAAyB,IACAzB,IAAAG,GACAF,EAAAP,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAiB,EAAAe,EACAhC,OAEAiB,EAAAR,EACA,IAAAC,IACAX,EAAAkC,IAGAhB,IAAAR,GACAS,EAAAyB,IACAzB,IAAAT,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAmB,EAAAgB,EACAnC,OAEAmB,EAAAV,EACA,IAAAC,IACAX,EAAAqC,IAGAjB,IAAAV,GACAQ,GAAAA,EAAAC,EAAAC,GACAZ,EAAAU,IAEAjB,GAAAO,EACAA,EAAAE,KAGAT,GAAAO,EACAA,EAAAE,KAGAT,GAAAO,EACAA,EAAAE,GAEAF,IAAAE,IACAF,EAAA,MAEAA,IAAAE,GACAJ,EAAAuC,GAAAtC,EAAAC,GACAH,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAA8B,KACA,GAAA7B,EASA,OAPAL,IACAK,EAAAwC,IACAxC,IAAAI,IACAJ,EAAAyC,GAAAzC,IAEAA,EAKA,QAAAsC,KACA,GAAAvC,GAAAC,EAAAC,CAwBA,OAtBAF,GAAAJ,GACAK,EAAA0C,IACA1C,IAAAI,IACAJ,EAAA,MAEAA,IAAAI,GACAH,EAAA0C,IACA1C,IAAAG,IACAH,EAAA,MAEAA,IAAAG,GACAJ,EAAA4C,GAAA5C,EAAAC,GACAF,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAA4C,KACA,GAAA5C,GAAAC,EAAAC,EAAAC,EAAAU,CA8CA,OA5CAb,GAAAJ,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAA6C,GACAlD,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAoD,KAGA9C,IAAAI,GACAH,EAAA8C,IACA9C,IAAAG,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAO,EAAA8C,GACArD,OAEAO,EAAAE,EACA,IAAAC,IACAX,EAAAuD,KAGA/C,IAAAE,GACAQ,EAAAmC,IACAnC,IAAAR,GACAJ,EAAAkD,GAAAjD,EAAAW,GACAb,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAA2C,KACA,GAAA3C,GAAAC,EAAAC,EAAAC,CAsCA,OApCAH,GAAAJ,GACAK,EAAAwC,IACAxC,IAAAI,IACAJ,EAAA,MAEAA,IAAAI,GACA,KAAA/vD,EAAAszB,WAAAg8B,KACAM,EAAAgB,EACAtB,OAEAM,EAAAG,EACA,IAAAC,IACAX,EAAAwB,IAGAjB,IAAAG,GACAF,EAAAsC,IACAtC,IAAAE,IACAF,EAAA,MAEAA,IAAAE,GACAJ,EAAAmD,GAAAnD,EAAAE,GACAH,EAAAC,IAEAL,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,KAGAT,GAAAI,EACAA,EAAAK,GAGAL,EAGA,QAAAgD,KACA,GAAA/C,GAAAC,CAQA,IANAN,GACAK,KACAC,EAAAmD,IACAnD,IAAAG,IACAH,EAAAoD,KAEApD,IAAAG,EACA,KAAAH,IAAAG,GACAJ,EAAA30E,KAAA40E,IACAA,EAAAmD,OACAhD,IACAH,EAAAoD,SAIArD,GAAAI,CAOA,OALAJ,KAAAI,IACAJ,EAAAsD,GAAAtD,IAEAA,EAKA,QAAAwC,KACA,GAAAxC,GAAAC,CAWA,IATAN,GACAK,KACAC,EAAAmD,IACAnD,IAAAG,IACAH,EAAAoD,OACAjD,IACAH,EAAAsD,KAGAtD,IAAAG,EACA,KAAAH,IAAAG,GACAJ,EAAA30E,KAAA40E,IACAA,EAAAmD,OACAhD,IACAH,EAAAoD,OACAjD,IACAH,EAAAsD,SAKAvD,GAAAI,CAOA,OALAJ,KAAAI,IACAJ,EAAAsD,GAAAtD,IAEAA,EAKA,QAAAoD,KACA,GAAApD,GAAAC,EAAAC,CA4GA,OA1GAP,IACAK,EAAAL,GACAM,EAAAuD,IACAvD,IAAAG,GACAF,EAAAsD,IACAtD,IAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,KAGAT,GAAAK,EACAA,EAAAI,GAEAJ,IAAAI,IACAJ,EAAAL,GACAM,EAAAuD,IACAvD,IAAAG,GACAF,EAAAuD,IACAvD,IAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,KAGAT,GAAAK,EACAA,EAAAI,GAEAJ,IAAAI,IACAJ,EAAAL,GACAM,EAAAuD,IACAvD,IAAAG,GACAF,EAAAwD,IACAxD,IAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,KAGAT,GAAAK,EACAA,EAAAI,GAEAJ,IAAAI,IACAJ,EAAAL,GACAM,EAAAuD,IACAvD,IAAAG,GACAF,EAAAyD,IACAzD,IAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,KAGAT,GAAAK,EACAA,EAAAI,GAEAJ,IAAAI,IACAJ,EAAAL,GACAM,EAAAuD,IACAvD,IAAAG,GACAF,EAAA0D,IACA1D,IAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,KAGAT,GAAAK,EACAA,EAAAI,GAEAJ,IAAAI,IACAJ,EAAAL,GACAM,EAAAuD,IACAvD,IAAAG,GACAF,EAAA2D,IACA3D,IAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,KAGAT,GAAAK,EACAA,EAAAI,QAOAJ,IAAAI,IACAJ,EAAA8D,GAAA9D,IAEAA,EAKA,QAAA0B,KACA,GAAA1B,GAAAC,EAAAC,EAAAU,CAYA,IAVAjB,GACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAA+D,GACApE,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAsE,KAGAhE,IAAAI,EAWA,GAVAJ,EAAAL,GACAsE,GAAAz5E,KAAA6lB,EAAA3lB,OAAAi1E,MACAM,EAAA5vD,EAAA3lB,OAAAi1E,IACAA,OAEAM,EAAAG,EACA,IAAAC,IACAX,EAAAwE,KAGAjE,IAAAG,EAAA,CAWA,IAVAF,KACAiE,GAAA35E,KAAA6lB,EAAA3lB,OAAAi1E,MACAiB,EAAAvwD,EAAA3lB,OAAAi1E,IACAA,OAEAiB,EAAAR,EACA,IAAAC,IACAX,EAAA0E,KAGAxD,IAAAR,GACAF,EAAA70E,KAAAu1E,GACAuD,GAAA35E,KAAA6lB,EAAA3lB,OAAAi1E,MACAiB,EAAAvwD,EAAA3lB,OAAAi1E,IACAA,OAEAiB,EAAAR,EACA,IAAAC,IACAX,EAAA0E,IAIAlE,KAAAE,GACAH,GAAAA,EAAAC,GACAF,EAAAC,IAEAN,GAAAK,EACAA,EAAAI,OAGAT,IAAAK,EACAA,EAAAI,CAQA,OALAJ,KAAAI,IACAJ,EAAAqE,GAAArE,IAEAA,EAKA,QAAAuD,KACA,GAAAvD,EAiBA,OAfAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAAsE,GACA3E,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA6E,KAGAvE,IAAAI,IACAJ,EAAAwE,MAEAxE,EAKA,QAAAwD,KACA,GAAAxD,EAiBA,OAfAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAAyE,GACA9E,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAgF,KAGA1E,IAAAI,IACAJ,EAAA2E,MAEA3E,EAKA,QAAAyD,KACA,GAAAzD,EA4BA,OA1BAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAA2B,EACAhC,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAkC,IAGA5B,IAAAI,IACA,KAAA/vD,EAAAszB,WAAAg8B,KACAK,EAAA8B,EACAnC,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAqC,KAIA/B,IAAAI,IACAJ,EAAA4E,GAAA5E,IAEAA,EAKA,QAAA0D,KACA,GAAA1D,EA4BA,OA1BAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAA6E,GACAlF,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAoF,KAGA9E,IAAAI,IACA,KAAA/vD,EAAAszB,WAAAg8B,KACAK,EAAAS,EACAd,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAgB,KAIAV,IAAAI,IACAJ,EAAA+E,GAAA/E,IAEAA,EAKA,QAAA2D,KACA,GAAA3D,EAiBA,OAfAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAAiB,EACAtB,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAwB,IAGAlB,IAAAI,IACAJ,EAAAgF,MAEAhF,EAKA,QAAA4D,KACA,GAAA5D,EAiBA,OAfAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAA6C,GACAlD,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAoD,KAGA9C,IAAAI,IACAJ,EAAAiF,MAEAjF,EAKA,QAAA6D,KACA,GAAA7D,EAiBA,OAfAL,IACA,KAAAtvD,EAAAszB,WAAAg8B,KACAK,EAAAgD,GACArD,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAuD,KAGAjD,IAAAI,IACAJ,EAAAkF,MAEAlF,EAKA,QAAAqD,KACA,GAAArD,EAmFA,OAjFAL,IACAwF,GAAA36E,KAAA6lB,EAAA3lB,OAAAi1E,MACAK,EAAA3vD,EAAA3lB,OAAAi1E,IACAA,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA0F,KAGApF,IAAAI,IACAiF,GAAA76E,KAAA6lB,EAAA3lB,OAAAi1E,MACAK,EAAA3vD,EAAA3lB,OAAAi1E,IACAA,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA4F,KAGAtF,IAAAI,IACA+D,GAAA35E,KAAA6lB,EAAA3lB,OAAAi1E,MACAK,EAAA3vD,EAAA3lB,OAAAi1E,IACAA,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA0E,KAGApE,IAAAI,IACA,KAAA/vD,EAAAszB,WAAAg8B,KACAK,EAAAuF,GACA5F,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAA8F,KAGAxF,IAAAI,IACA,KAAA/vD,EAAAszB,WAAAg8B,KACAK,EAAAyF,GACA9F,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAgG,KAGA1F,IAAAI,IACA,KAAA/vD,EAAAszB,WAAAg8B,KACAK,EAAA2F,GACAhG,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAkG,KAGA5F,IAAAI,IACA,KAAA/vD,EAAAszB,WAAAg8B,KACAK,EAAA6F,GACAlG,OAEAK,EAAAI,EACA,IAAAC,IACAX,EAAAoG,WASA9F,IAAAI,IACAJ,EAAA+F,GAAA/F,IAEAA,EA/uCA/vE,MAAA,KAAAA,EAAAA,IAEA,IAkJA+1E,GAlJA5F,KACA6F,GAAApyE,SAAAisE,GACAoG,EAAApG,EACAK,EAAA,WACAG,EAAAzB,EAAA,YAAA,GACA4B,EAAA,IACAC,EAAA7B,EAAA,KAAA,GACA8B,EAAA,SAAAwF,GAEA,OAAAl3E,KAAA,SAAAm3E,UAAAD,IAEAlF,EAAA,IACAC,EAAArC,EAAA,KAAA,GACAsC,EAAA,SAAAkF,EAAAC,EAAAC,EAAAC,GAEA,OAAAv3E,KAAA,QAAAs6D,KAAA8c,EAAAI,UAAAH,GAAA,GAAAI,OAAAH,EAAAI,OAAAH,IAEApF,EAAA,SAAAiF,EAAAC,GAEA,OAAAr3E,KAAA,OAAAs6D,KAAA8c,EAAAI,UAAAH,IAEA/E,EAAA,SAAAqF,EAAAC,GAEA,OAAAC,MAAAF,EAAAG,SAAAF,GAAA,KAEArF,EAAA,IACAC,EAAA5C,EAAA,KAAA,GACA8C,EAAA,IACAC,EAAA/C,EAAA,KAAA,GACAiD,EAAA,IACAC,EAAAlD,EAAA,KAAA,GACAmD,EAAA,SAAAgF,EAAAC,GAEA,OAAAh4E,KAAA,YAAAi4E,WAAAF,EAAA1I,YAAA2I,EAAAA,EAAA,OAAA/4E,KAEA+zE,EAAA,KACAC,EAAArD,EAAA,MAAA,GACAsD,EAAA,SAAA6E,EAAAC,GAEA,OAAAh4E,KAAA,kBAAAi4E,WAAAF,EAAA1I,YAAA2I,EAAAA,EAAA,OAAA/4E,KAEAk0E,GAAA,IACAC,GAAAxD,EAAA,KAAA,GACA0D,GAAA,SAAA4E,EAAAC,GAEA,OAAAn4E,KAAA,eAAAo4E,YAAAF,EAAAG,cAAAF,EAAAA,EAAA,OAAAl5E,KAEAu0E,GAAA,SAAA8E,GAEA,MAAAA,IAEA3E,GAAA,SAAA4E,EAAAC,GAEA,OAAAx4E,KAAA,wBAAAy4E,IAAAF,GAAA,GAAAG,UAAAF,GAAA,KAEA5E,GAAA,IACAC,GAAAjE,EAAA,KAAA,GACAmE,GAAA,IACAC,GAAApE,EAAA,KAAA,GACAqE,GAAA,SAAA0E,EAAAC,GAEA,OAAA54E,KAAA,YAAA64E,SAAAF,GAAA,GAAAG,SAAAF,GAAA,KAEA1E,GAAA,SAAA6E,EAAAC,GAEA,OAAAh5E,KAAA,MAAAi5E,aAAAF,GAAA,GAAAG,cAAAF,GAAA,KAEA3E,GAAA,SAAA8E,GAEA,MAAAA,GAAAt9E,KAAA,KAEAg5E,GAAA,SAAAuE,GAEA,MAAAA,GAAA,IAEApE,GAAA,SACAC,GAAApF,IAAA,IAAA,OAAA,GAAA,GACAqF,GAAA,SACAC,GAAAtF,IAAA,IAAA,OAAA,GAAA,GACA6G,GAAA,IACAC,GAAA/G,EAAA,KAAA,GAKAkF,GAAA,IACAC,GAAAnF,EAAA,KAAA,GACAwF,GAAA,SAAAiE,GAEA,MAAA,MAAAA,EACA,IAEAA,EAAA,GAAA19E,OAAA09E,EAAA,GAAAx9E,KAAA,MAGAw5E,GAAA,IACAC,GAAA1F,EAAA,KAAA,GACA2F,GAAA,WACA,MAAA,KAEAC,GAAA,IACAC,GAAA7F,EAAA,KAAA,GACA8F,GAAA,WACA,MAAA,KAOAC,IAJA/F,EAAA,KAAA,GAIA,SAAA0J,GACA,MAAAA,KAEA1D,GAAA,IACAC,GAAAjG,EAAA,KAAA,GACAkG,GAAA,SAAAyD,GACA,MAAAA,IAEAxD,GAAA,WACA,MAAA,KAEAC,GAAA,WACA,MAAA,KAEAC,GAAA,WACA,MAAA,KAEAC,GAAA,SACAC,GAAAtG,IAAA,IAAA,OAAA,GAAA,GACAuG,GAAA,SACAC,GAAAxG,IAAA,IAAA,OAAA,GAAA,GACAyG,GAAA,IACAC,GAAA3G,EAAA,KAAA,GACA4G,GAAA,IACAC,GAAA7G,EAAA,KAAA,GACAgH,GAAA,IACAC,GAAAjH,EAAA,KAAA,GACAkH,GAAA,SAAA0C,GACA,MAAAA,IAEA9I,GAAA,EAEAT,KAAAC,KAAA,EAAAC,OAAA,IACAQ,GAAA,EACAC,MACAQ,GAAA,CAGA,IAAA,aAAApwE,GAAA,CACA,KAAAA,EAAAy4E,YAAAzC,IACA,KAAA,IAAAh6E,OAAA,mCAAAgE,EAAAy4E,UAAA,KAGAxC,GAAAD,EAAAh2E,EAAAy4E,WA2lCA,IAFA1C,EAAAE,OAEA9F,GAAAT,KAAAtvD,EAAAhmB,OACA,MAAA27E,EAMA,MAJAA,KAAA5F,GAAAT,GAAAtvD,EAAAhmB,QACAq1E,EAplCA,WACA,OAAAzwE,KAAA,WAoEA,SAAAwvE,EAAAC,EAAArrD,GACA,MAAA,IAAAkrD,IAAAA,GAAAoK,aAAAlK,EAAAC,GAAAD,EAAAC,EAAArrD,IAihCAwsD,GAAAD,GAAAvvD,EAAAhmB,OAAAgmB,EAAA3lB,OAAAk1E,IAAA,KAAAA,GAAAvvD,EAAAhmB,OAAAg1E,EAAAO,GAAAA,GAAA,GAAAP,EAAAO,GAAAA,KA6EA,QAAAgJ,IAAAC,GAIA,IAAA,GAAAC,GAAA,EAAAA,GAAAD,EAAAzC,UAAAK,UAAAK,MAAAz8E,OAAA,EAAAy+E,GAAA,EAAA,CAEA,GAAA,oBADAD,EAAAzC,UAAAK,UAAAK,MAAAgC,GACA75E,KACA,MAAA65E,IAOA,QAAAC,IAAAF,EAAAG,GACA,GAAAC,GAAA7kE,GAAApN,QAAA,KAAA6xE,GACAK,EAAAF,EAAAH,EAAAzC,UAAAM,OAAAmC,EAAAzC,UAAAO,MAUA,cARAsC,GAAA7C,UAAAM,aACAuC,GAAA7C,UAAAO,OACAsC,EAAA7C,UAAAn3E,KAAA,OAEAg6E,EAAA7C,UAAAK,UAAAK,MAAAmC,EAAA7C,UAAAK,UAAAK,MAAAl8E,OAAAs+E,EAAApC,OAEAmC,EAAA7C,UAAAK,UAAAM,SAAAmC,EAAAnC,SAEAkC,EAGA,QAAAE,IAAAC,GACA,GAAAC,GAAAC,UAAAF,GACAP,EAAAj/C,GAAAy/C,EAEA,KAAAR,GAAA,WAAAA,EAAA55E,KACA,KAAA,IAAAivE,IAAA2K,EAAA,6BAGA,IAAAU,KAQA,OAPA,UAAAV,EAAAzC,UAAAn3E,MACAs6E,EAAAl+E,KAAA09E,GAAAF,GAAA,IACAU,EAAAl+E,KAAA09E,GAAAF,GAAA,KAEAU,EAAAl+E,KAAAw9E,GAGAU,EAGA,QAAAC,IAAAX,GACA,MAAAA,GAAAzC,UAAAK,UAAAK,MAAA58E,IAAA,SAAAopC,GACA,MAAA5L,UAAA4L,EAAA4zC,WAAA,MAIA,QAAAuC,IAAAC,EAAAC,GAQA,IAPA,GAAA/qE,GAAA,KACAxS,EAAA,EACAw9E,EAAAJ,GAAAE,GACAG,EAAAL,GAAAG,GACAG,EAAAJ,EAAAtD,UAAAK,UAAAM,SACAgD,EAAAJ,EAAAvD,UAAAK,UAAAM,WAEA,CACA,GAAAiD,GAAAJ,EAAAx9E,GACAugD,EAAAk9B,EAAAz9E,EACA,KAAA49E,IAAAr9B,EAAA,CACA,GAAA,IAAA/tC,IAAAkrE,EAAAzC,aAAA0C,EAAA1C,aAAA,CACA,GAAA4C,GAAAviD,SAAAoiD,EAAAzC,YAAA,KAAA,EACA6C,EAAAxiD,SAAAqiD,EAAA1C,YAAA,KAAA,CAEAzoE,GADAqrE,EAAAC,EACA,EACAD,EAAAC,GACA,EAEA,EAGA,MAEA,GAAAF,EAAAr9B,EAAA,CACA/tC,EAAA,CACA,OACA,GAAAorE,EAAAr9B,EAAA,CACA/tC,GAAA,CACA,OAEAA,EAAA,EAEAxS,GAAA,EAGA,MAAAwS,GAGA,QAAAurE,IAAAC,EAAAC,EAAAxP,EAAAC,EAAAC,GAEA,OAAA7sE,KAAAk8E,GAAA,cAAAA,EAAAn7E,KACA,KAAA,IAAAivE,IAAAkM,EAAA,2BAIA,IAAAE,GAAAxM,GAAAsM,EAAAlD,WAAAmD,EAAAxP,EAAAC,EAAAC,EAGA,IAAAqP,EAAA9L,cACAF,GAAAkM,EAAAF,EAAA9L,aACA,KAAA,IAAAiM,IAAAH,EAAA9L,YAAAgM,EAAAj5D,KAAA,MAAA,sBAIA,OAAAi5D,GAGA,QAAAE,IAAAC,EAAAJ,EAAAxP,EAAAC,EAAAC,GAEA,OAAA7sE,KAAAu8E,GAAA,oBAAAA,EAAAx7E,KACA,KAAA,IAAAivE,IAAAuM,EAAA,iCAIA,IAAAH,GAAAvM,GAAA0M,EAAAvD,WAAAmD,EAAAxP,EAAAC,EAAAC,EAGA,IAAA0P,EAAAnM,cACAF,GAAAkM,EAAAG,EAAAnM,aACA,KAAA,IAAAiM,IAAAE,EAAAnM,YAAAgM,EAAAj5D,KAAA,MAAA,sBAIA,OAAAi5D,GAGA,QAAAI,IAAAL,EAAA7O,EAAAmP,EAAA9P,EAAAC,EAAAC,GAIA,IAAA,GAFA6P,OAAA,GACAC,MAAA,GACA/B,EAAA,EAAAA,GAAA6B,EAAA7D,MAAAz8E,OAAA,EAAAy+E,GAAA,EAAA,CACA8B,EAAAD,EAAA7D,MAAAgC,GACA,cAAA8B,EAAA37E,KACA47E,EAAAV,GAAAS,EAAAP,EAAAxP,EAAAC,EAAAC,GACA,oBAAA6P,EAAA37E,OACA47E,EAAAL,GAAAI,EAAAP,EAAAxP,EAAAC,EAAAC,GAGA,IAAA+P,GAAAD,EACAE,EAAAC,GAAAF,EAAA,GACAG,EAAAF,EAAA,EAIA,IAAA1Q,GAAA4Q,EAAA,WACA,MAAA3P,IAAA2P,EAAAzP,IAUA,QAAA0P,IAAAP,EAAAQ,EAAAd,EAAAxP,EAAAC,EAAAC,GAEA,IAAA,GADA6P,OAAA,GACA9B,EAAAqC,EAAArC,GAAA6B,EAAA7D,MAAAz8E,OAAA,EAAAy+E,GAAA,EACA8B,EAAAD,EAAA7D,MAAAgC,GACA,cAAA8B,EAAA37E,KAGAo7E,EAAAF,GAAAS,EAAAP,EAAAxP,EAAAC,EAAAC,GACA,oBAAA6P,EAAA37E,OAGAo7E,EAAAG,GAAAI,EAAAP,EAAAxP,EAAAC,EAAAC,GAIA,OAAAsP,GAMA,QAAAe,IAAAC,EAAAhB,EAAA7N,GACA,OAAAtuE,KAAAm9E,GAAA,iBAAAA,EAAAp8E,KACA,KAAA,IAAAivE,IAAAmN,EAAA,8BAGA,OAAAlN,IAAAkM,EAAAgB,EAAAhE,YAAA7K,GASA,QAAA8O,IAAAlC,EAAA5N,EAAAX,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAAF,GACAP,EAAAj/C,GAAAy/C,EAEA,KAAAR,GAAA,WAAAA,EAAA55E,KACA,KAAA,IAAAivE,IAAA2K,EAAA,6BAIA,IAAA0C,GAAAnnE,GAAAo3D,EAAAgQ,uBAAA,IAAA,YACAnB,EAAAF,GAAAtB,EAAAzC,UAAA7c,KAAAgiB,EAAA1Q,EAAAC,EAAAC,GACA0Q,EAAAf,GAAAL,EAAA7O,EAAAqN,EAAAzC,UAAAK,UAAA5L,EAAAC,EAAAC,EAEA,IAAA0Q,EACA,MAAAA,GAmBA,QAAAC,IAAAC,EAAAC,GACA,GAAAC,GAAA1C,GAAAwC,GACAG,EAAA3C,GAAAyC,EAEA,IAAAC,EAAAxhF,OAAA,GAAAyhF,EAAAzhF,OAAA,EACA,OAAAo/E,GAAAoC,EAAA,GAAAC,EAAA,IAAArC,GAAAoC,EAAA,GAAAC,EAAA,IACA,IAAAD,EAAAxhF,OAAA,GAAA,IAAAyhF,EAAAzhF,OACA,OAAAo/E,GAAAoC,EAAA,GAAAC,EAAA,IAAArC,GAAAoC,EAAA,GAAAC,EAAA,IACA,IAAA,IAAAD,EAAAxhF,QAAAyhF,EAAAzhF,OAAA,EACA,OAAAo/E,GAAAoC,EAAA,GAAAC,EAAA,IAAArC,GAAAoC,EAAA,GAAAC,EAAA,IAEA,IAAAltE,GAAA6qE,GAAAoC,EAAA,GAAAC,EAAA,GACA,QAAAltE,EAAAA,GAKA,QAAAmtE,IAAA3C,EAAAhwE,EAAAojE,EAAA3B,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAAF,GACAP,EAAAj/C,GAAAy/C,GACAgB,MAAA,GAMA2B,EAAApD,GAAAC,EAWA,OAVAA,GAAAzC,UAAAK,UAAAK,MAAAkF,GACA/8E,KAAA,YAGAo7E,EAAAa,GAAArC,EAAAzC,UAAAK,UAAAuF,EAAA5nE,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,GAGAsP,EAAAe,GAAAvC,EAAAzC,UAAAK,UAAAM,SAAAsD,EAAA7N,GAQA,QAAAyP,IAAAC,EAAA9yE,EAAA+yE,EAAAC,EAAAvR,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAA4C,GACArD,EAAAj/C,GAAAy/C,GACAgD,MAAA,GACAC,MAAA,GAOAN,EAAApD,GAAAC,EACAA,GAAAzC,UAAAK,UAAAK,MAAAkF,GACA/8E,KAAA,WAGA,IAAAo7E,GAAAa,GAAArC,EAAAzC,UAAAK,UAAAuF,EAAA5nE,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,EAWA,OARAsR,GAAAnB,GAAArC,EAAAzC,UAAAM,OAAA,EAAA2D,EAAAxP,EAAAC,EAAAC,GACAsR,EAAAjB,GAAAvC,EAAAzC,UAAAM,OAAAK,SAAAsF,EAAAF,GAGAG,EAAApB,GAAArC,EAAAzC,UAAAO,OAAA,EAAA0D,EAAAxP,EAAAC,EAAAC,GACAuR,EAAAlB,GAAAvC,EAAAzC,UAAAO,OAAAI,SAAAuF,EAAAF,IAIAG,aAAAF,EAAA,GACAG,WAAAF,EAAA,IAMA,QAAAG,IAAArD,EAAAhwE,EAAAyhE,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAAF,GACAP,EAAAj/C,GAAAy/C,GAMA2C,EAAApD,GAAAC,EAKA,OAJAA,GAAAzC,UAAAK,UAAAK,MAAAkF,GACA/8E,KAAA,YAGAi8E,GAAArC,EAAAzC,UAAAK,UAAAuF,EAAA5nE,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,GAKA,QAAA2R,IAAAR,EAAA9yE,EAAAyhE,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAA4C,GACArD,EAAAj/C,GAAAy/C,GAMA2C,EAAApD,GAAAC,EACAA,GAAAzC,UAAAK,UAAAK,MAAAkF,GACA/8E,KAAA,WAGA,IAAAo7E,GAAAa,GAAArC,EAAAzC,UAAAK,UAAAuF,EAAA5nE,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,GAGAsR,EAAAnB,GAAArC,EAAAzC,UAAAM,OAAA,EAAA2D,EAAAxP,EAAAC,EAAAC,GAGAuR,EAAApB,GAAArC,EAAAzC,UAAAO,OAAA,EAAA0D,EAAAxP,EAAAC,EAAAC,GAGA4R,EAAAjlD,SAAAmhD,EAAAzC,UAAAM,OAAAK,SAAAM,YAAA,SAAAn5E,GACA0+E,EAAAllD,SAAAmhD,EAAAzC,UAAAO,OAAAI,SAAAM,YAAA,SAAAn5E,EAGA,QACAq+E,aAAAF,EAAA,GACAM,YAAAA,EACAH,WAAAF,EAAA,GACAM,UAAAA,GAgBA,QAAAC,IAAAC,EAAA1zE,EAAAyhE,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAAwD,GACAjE,EAAAj/C,GAAAy/C,GAGAgB,EAAAF,GAAAtB,EAAAzC,UAAA7c,KAAAnlD,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,EAMA,OAHAsP,GAAAa,GAAArC,EAAAzC,UAAAK,UAAA,EAAA4D,EAAAxP,EAAAC,EAAAC,GAgBA,QAAAgS,IAAAD,EAAA1zE,EAAAyhE,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAAwD,GACAjE,EAAAj/C,GAAAy/C,GAGAgB,EAAAF,GAAAtB,EAAAzC,UAAA7c,KAAAnlD,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,EAGAsP,GAAAa,GAAArC,EAAAzC,UAAAK,UAAA,EAAA4D,EAAAxP,EAAAC,EAAAC,EAGA,IAAAwB,GAAA70C,SAAAmhD,EAAAzC,UAAAK,UAAAM,SAAAM,YAAA,GACA,QACA2F,SAAA3C,EAAA,GACA9N,WAAAA,GAMA,QAAA0Q,IAAA7D,EAAAhwE,EAAAyhE,EAAAC,EAAAC,GACA,GAAAsO,GAAAC,UAAAF,GACAP,EAAAj/C,GAAAy/C,GAMA2C,EAAApD,GAAAC,EACAA,GAAAzC,UAAAK,UAAAK,MAAAkF,GACA/8E,KAAA,WAGA,IAAAo7E,GAAAa,GAAArC,EAAAzC,UAAAK,UAAAuF,EAAA5nE,GAAAhL,EAAAD,gBAAAC,GAAAyhE,EAAAC,EAAAC,GAGAwB,EAAA70C,SAAAmhD,EAAAzC,UAAAK,UAAAM,SAAAM,YAAA,GACA,QACA2F,SAAA3C,EAAA,GACA9N,WAAAA,GAKA,QAAA2Q,IAAA9D,GACA,GAAAC,GAAAD,EAAAE,UAAAF,OAAAl7E,GACA26E,EAAAj/C,GAAAy/C,EACA,KAAAR,GAAA,WAAAA,EAAA55E,KACA,KAAA,IAAAivE,IAAA2K,EAAA,6BAEA,OAAA,UAAAA,EAAAzC,UAAAn3E,KAIA,QAAAk+E,IAAA/D,GACA,GAAAC,GAAAD,EAAAE,UAAAF,OAAAl7E,GACA26E,EAAAj/C,GAAAy/C,EACA,KAAAR,GAAA,WAAAA,EAAA55E,KACA,KAAA,IAAAivE,IAAA2K,EAAA,6BAEA,SAAAA,EAAAzC,UAAAK,UAAAM,SAuCA,QAAAqG,IAAAC,EAAAC,GAEA,IAAAD,EACA,KAAA,IAAAnP,IAAAmP,EAAA,mFACA,IAAA,IAAAA,EAAA39E,SACA,KAAA,IAAAwuE,IAAAmP,EAAA,mFAIA,IAAAC,EAAA,EACA,KAAA,IAAAlR,IAAAkR,EAAA,EAAA,yCACA,IAAAA,EAAAD,EAAA37D,UAAArnB,OACA,KAAA,IAAA+xE,IAAAkR,EAAAD,EAAA37D,UAAArnB,OAAA,EAAA,uEAIA,QAAAkjF,IAAAhB,GACA,IAAAA,EACA,KAAA,IAAArO,IAAAqO,EAAA,mCAIA,QAAAiB,IAAAjB,GAGA,GAFAgB,GAAAhB,IAEAA,EAAA78E,UAAA,IAAA68E,EAAA78E,SACA,KAAA,IAAAwuE,IAAAqO,EAAA,6CAIA,QAAAkB,IAAAC,GAEA,IAAAA,EACA,KAAA,IAAAzhF,OAAA,+EAIA,QAAA0hF,IAAAnS,EAAAC,GACA,SAAA7wE,OAAAywE,GAAAG,EAAAgQ,uBAAA,IAAA,aAAA9+D,KAAA,SAAA4tD,GACA,MAAAA,GAAAnpE,aAAA,WAAAsqE,IAIA,QAAAmS,IAAApS,EAAAkS,GAGA,IAAAlS,EACA,KAAA,IAAAvvE,OAAA,wDAKA,KAFA0hF,GAAAnS,EAAAkS,GAGA,KAAA,IAAAzhF,OAAA,qEAIA,QAAA4hF,IAAAp2E,GACA,MAAAA,GAAA/H,WAAAktE,KAAAC,WAAAplE,EAAA/H,WAAAktE,KAAAiB,aAGA,QAAAiQ,IAAAC,GACA,GAAAC,GAAAD,EAAAC,eACAC,EAAAF,EAAAE,aACAC,EAAAH,EAAAG,uBAGA,IAAAA,EAAAx+E,WAAAktE,KAAAiB,eAKAmQ,EAAAt+E,WAAAktE,KAAAC,WAAAoR,EAAAv+E,WAAAktE,KAAAC,WAAA,CAKA,GAAAmR,IAAAE,EAAA,CACA,GAAA12C,MAAA5sC,OAAAywE,GAAA2S,EAAAv5E,aAAA7E,OAAAi+E,IACAM,EAAAnD,GAAAxzC,EAAA,GACA42C,EAAAD,EAAA,EAEAC,IACAL,EAAAM,SAAAD,EAAA,GAIA,GAAAH,IAAAC,EAAA,CACA,GAAAI,MAAA1jF,OAAAywE,GAAA4S,EAAAx5E,aAAA7E,OAAAi+E,IAAAljF,OAAA,GACA4jF,EAAAvD,GAAAsD,EAAA,GACAE,EAAAD,EAAA,EAEAC,KACAA,EAAAnkF,OACA0jF,EAAAU,OAAAD,EAAAA,EAAAnkF,QACAmkF,EAAAE,gBACAX,EAAAU,OAAAD,EAAAA,EAAA/5E,WAAApK,QAEA0jF,EAAAU,OAAAD,EAAA,MASA,QAAAG,IAAAC,EAAAtB,EAAAzS,EAAAC,EAAAC,GACA,GAAA8T,IAAA,EAGAC,EAAAF,EAAAj/D,SACAo/D,EAAA3qE,GAAAg3D,GAAA0T,EAAA1sE,WAAAkC,UAAAu2D,EAAAC,EAAAC,IAIA0C,MAAA,GACAuR,MAAA,GACAC,EAAA,EACAC,EAAA,EACAC,EAAA,CA+EA,OA9EA/qE,IAAAjU,KAAA4+E,EAAA,WAEA,GAAAjgF,KAAAY,WAAAktE,KAAAC,WAAAY,EA2CA3uE,KAAAY,WAAAktE,KAAAiB,cAEAJ,GAAA,EACAuR,MAAA9gF,GACAghF,EAAA,GACApgF,KAAAY,WAAAktE,KAAAQ,aAEA8R,EAAAA,EAAApgF,KAAAzE,OAAA,EACAyE,KAAAY,WAAAktE,KAAAS,8BAEA6R,EAAAA,EAAApgF,KAAAkC,KAAA3G,OAAAyE,KAAA4S,OAAArX,OAAA,OApDA,IAAAyE,KAAAY,WAAAktE,KAAAC,UAAA,CACA,GAAA/tE,OAAA8/E,EAAA,GAYA,MARAnR,IACAoR,EAAAG,EACAG,EAAAD,GAEAL,EAAAI,GAIA,CAKAxR,IAAA,EACAyR,GAAApgF,KAAAzE,WACA6D,KAAA8gF,IACAA,EAAAC,EACAA,GAAA,OAEAngF,MAAAY,WAAAktE,KAAAiB,aACAoR,GAAA,EACAngF,KAAAY,WAAAktE,KAAAQ,cACAK,GAAA,EAEAyR,EAAAA,EAAApgF,KAAAzE,OAAA,MACA6D,KAAA8gF,IACAA,EAAAC,IAEAngF,KAAAY,WAAAktE,KAAAS,8BACAI,GAAA,EAGAyR,EAAAA,EAAApgF,KAAAkC,KAAA3G,OAAAyE,KAAA4S,OAAArX,OAAA,MACA6D,KAAA8gF,IACAA,EAAAC,GAgBA,QAAA,IAoBA,KAhBA,EAAAJ,EAAA,GAgBA,KAAAM,EAAA7B,GAIA,QAAA8B,IAAApT,EAAAqT,EAAAxU,EAAAC,EAAAC,GACA,GAAAuU,IAAA,EACAC,MAAA,GAGArT,EAAA93D,GAAAg3D,GAAAY,EAAArsD,SAAAoG,WAAAzR,UAAAu2D,EAAAC,EAAAC,GACA32D,IAAAjU,KAAA+rE,EAAA,SAAA9vE,GACA,MAAA0C,QAAAktE,EAAA,KACAsT,EAAAljF,GAGA,IAMA,IAAAojF,GAAA,GAAAF,EAAA,EAIAC,GADAvT,EAAA3qD,KAAA,MACA,IAAAm+D,EAAA,IAAAxT,EAAA3qD,KAAA,MAAA,IAEA,IAAAm+D,CAOA,IAAAV,GAAA9S,EAAArsD,QACA,OAAA,gBAAA0/D,IAAAhV,GAAAyU,EAAA,GAAAO,IAAAhV,GAAA2B,EAAA,GAAAqT,GACAE,EACAT,EAAA,KAAAO,GAAArT,EAAA,KAAAqT,EACAE,EAEAH,GAAAN,EAAAO,EAAAxU,EAAAC,EAAAC,GAAAwU,EAGA,QAAAE,IAAA1B,EAAAlT,EAAAC,EAAAC,GACA+S,GAAAC,EAEA,IAAAC,GAAAD,EAAAC,eACAC,EAAAF,EAAAE,aACAtB,EAAAoB,EAAApB,YACAC,EAAAmB,EAAAnB,UACAsB,EAAAH,EAAAG,wBACAp5E,EAAAk5E,EAAAl5E,cAGA46E,MAAA,GACAC,MAAA,GACAC,MAAA,GACAC,MAAA,GACAC,MAAA,EAEA,IAAA9B,EAAAt+E,WAAAktE,KAAAC,WAAAoR,EAAAv+E,WAAAktE,KAAAC,WAEAz4D,GAAA4pE,GAAAr+D,SAAA,KAAAvL,GAAA6pE,GAAAt+D,SAAA,GAIA,MAHAggE,GAAAhB,GAAAvqE,GAAA4pE,GAAArB,EAAA9R,EAAAC,EAAAC,GACA8U,EAAAlB,GAAAvqE,GAAA6pE,GAAArB,EAAA/R,EAAAC,EAAAC,IACA+U,EAAAV,GAAAhrE,GAAA4pE,GAAAr+D,SAAA7a,EAAAqE,gBAAA0hE,EAAAC,EAAAC,IACA,IAAA4U,EAAA,IAAAE,CAIA,IAAA7B,EAAAt+E,WAAAktE,KAAAiB,cAAAoQ,EAAAv+E,WAAAktE,KAAAiB,cAAAmQ,IAAAC,GAAAC,IAAAF,EAAA,CACA,GAAAzB,GAAA2B,EAAAz5E,WAAAk4E,GACAH,MAAA,EAYA,OAVAA,GADAI,IAAAsB,EAAAz5E,WAAApK,OACA6jF,EAAAz5E,WAAAm4E,EAAA,GAEAsB,EAAAz5E,WAAAm4E,GAAAmD,iBAIAD,EAAAV,GAAAhrE,GAAA8pE,GAAAp5E,EAAAqE,gBAAA0hE,EAAAC,EAAAC,GAEA2U,EAAAN,GAAAhrE,GAAAmoE,GAAA2B,EAAArT,EAAAC,EAAAC,GAEAwR,IAAAC,GACAsD,EAAAJ,GAGAE,EAAAR,GAAAhrE,GAAAooE,GAAA0B,EAAArT,EAAAC,EAAAC,GAGA+U,EAAA,IAAAJ,EAAA,IAAAE,GAkCA,MAhCA5B,GAAAt+E,WAAAktE,KAAAiB,cACA2P,GAAAQ,GACA0B,EAAAN,GAAAhrE,GAAA4pE,GAAAE,EAAArT,EAAAC,EAAAC,KAEAqS,GAAAY,GAEA2B,EAAAhB,GAAAvqE,GAAA4pE,GAAArB,EAAA9R,EAAAC,EAAAC,GAEA2U,EADAtrE,GAAA4pE,GAAAr+D,SAAA,KAAAu+D,EACAyB,EAEAP,GAAAhrE,GAAA4pE,GAAAr+D,SAAAu+D,EAAArT,EAAAC,EAAAC,GAAA4U,GAIA1B,EAAAv+E,WAAAktE,KAAAiB,cACA2P,GAAAS,GACA2B,EAAAR,GAAAhrE,GAAA6pE,GAAAC,EAAArT,EAAAC,EAAAC,KAEAqS,GAAAa,GAEA4B,EAAAlB,GAAAvqE,GAAA6pE,GAAArB,EAAA/R,EAAAC,EAAAC,GAEA6U,EADAxrE,GAAA6pE,GAAAt+D,SAAA,KAAAu+D,EACA2B,EAEAT,GAAAhrE,GAAA6pE,GAAAt+D,SAAAu+D,EAAArT,EAAAC,EAAAC,GAAA8U,IAKAC,EAAAV,GAAAhrE,GAAA8pE,GAAAp5E,EAAAqE,gBAAA0hE,EAAAC,EAAAC,IAGA,IAAA2U,EAAA,IAAAE,EAGA,QAAAI,IAAAC,EAAAtD,EAAAuD,EAAAtD,EAAA/R,EAAAC,EAAAC,GACA,GAAAjmE,GAAAm7E,EAAAn7E,cAIAq7E,EAAAr7E,EAAAs7E,aAIA,OAHAD,GAAA9B,SAAA4B,EAAAtD,GACAwD,EAAA1B,OAAAyB,EAAAtD,GAEA6C,GAAAU,EAAAtV,EAAAC,EAAAC,GAGA,QAAAsV,IAAAJ,EAAAtD,EAAAuD,EAAAtD,EAAA/R,EAAAC,EAAAC,GACA,GAAAjmE,GAAAm7E,EAAAn7E,aAGAs4E,IAAA6C,GACA7C,GAAA8C,EAGA,IAAAC,GAAAr7E,EAAAs7E,aAIA,OAHAD,GAAA9B,SAAA4B,EAAAtD,GACAwD,EAAA1B,OAAAyB,EAAAtD,GAEA6C,GAAAU,EAAAtV,EAAAC,EAAAC,GAGA,QAAAuV,IAAAL,EAAAC,EAAArV,EAAAC,EAAAC,GACA,GAAAjmE,GAAAm7E,EAAAn7E,cAIAq7E,EAAAr7E,EAAAs7E,aAIA,OAHAD,GAAAI,eAAAN,GACAE,EAAAK,YAAAN,GAEAT,GAAAU,EAAAtV,EAAAC,EAAAC,GAOA,QAAA0V,IAAApD,EAAAC,EAAAzS,EAAAC,EAAAC,GACAqS,GAAAC,EAAAC,EAGA,IAAAoD,GAAA/B,GAAAvqE,GAAAipE,GAAAC,EAAAzS,EAAAC,EAAAC,EAKA,OAAAqU,IAAAhrE,GAAAipE,GAAA19D,SAAA09D,EAAAv4E,cAAAqE,gBAAA0hE,EAAAC,EAAAC,GAAA2V,EAGA,QAAAC,IAAApE,EAAA1R,EAAAC,EAAAC,GAMA,MALAyS,IAAAjB,GAKA6C,GAAAhrE,GAAAmoE,GAAAA,EAAAz3E,cAAAqE,gBAAA0hE,EAAAC,EAAAC,GAGA,QAAA6V,IAAAlD,EAAAlS,EAAAX,EAAAC,EAAAC,GAYA,MAXA0S,IAAAC,GACAE,GAAApS,EAAAkS,GAMA0B,GAHAhrE,GAAAupE,GAAAnS,EAAAkS,IAGA,UAAA7S,EAAAC,EAAAC,GAIA,IAGA,QAAA8V,IAAAC,EAAAtV,EAAAX,EAAAC,EAAAC,GAEA,GAAAgW,GAAAvV,EAAAgQ,uBAAA,IAAA,QAQA,OAJA4D,IAHAhrE,GAAAA,GAAA2sE,GAAAh7D,WAAA+6D,IAGA,UAAAjW,EAAAC,EAAAC,GAIA,IAGA,QAAAiW,IAAAC,EAAAC,GACA,MAAA,WAAAD,EAAAC,EAAA,IApycA,GAAAC,IAAA,mBAAAtiF,QAAAA,OAAA,mBAAAJ,QAAAA,OAAA,mBAAAsJ,MAAAA,QAUAqM,GAJA,SAAA5O,EAAAhI,GACA,MAAAA,IAAAF,YAAAkI,EAAAhI,EAAAA,EAAAF,SAAAE,EAAAF,SAGA,SAAAE,IAcA,SAAAiB,EAAAC,GAWAlB,EAAAF,QAAAmB,EAAAE,SACAD,EAAAD,GAAA,GACA,SAAAG,GACA,IAAAA,EAAAD,SACA,KAAA,IAAA1C,OAAA,2CAEA,OAAAyC,GAAAE,KAKA,mBAAAC,QAAAA,OAAAsiF,GAAA,SAAAtiF,EAAAE,GAuDA,QAAAqiF,GAAA7rE,EAAA7N,EAAAD,GACAC,EAAAA,GAAA/I,EAEA,IAAA/E,GACA4b,EAAA9N,EAAAxD,cAAA,SAGA,IADAsR,EAAAI,KAAAL,EACA9N,EACA,IAAA7N,IAAAynF,IACA55E,EAAA7N,KACA4b,EAAA5b,GAAA6N,EAAA7N,GAIA8N,GAAAmO,KAAA5R,YAAAuR,GAAA/M,WAAAC,YAAA8M,GAIA,QAAA8rE,GAAAzoF,GACA,MAAA,OAAAA,EACAA,EAAA,GAIA,gBAAAA,IAAA,kBAAAA,GACA+a,GAAAC,GAAA7a,KAAAH,KAAA,eACAA,GAwWA,QAAAmG,GAAAnG,GAMA,GAAAwB,KAAAxB,GAAA,UAAAA,IAAAA,EAAAwB,OACA4E,EAAAqiF,EAAAzoF,EAEA,QAAA0G,GAAA1G,KAAAqG,GAAArG,KAIA,UAAAoG,GAAA,IAAA5E,GACA,gBAAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAxB,IAkwEA,QAAAiK,GAAArD,EAAAvG,GAEA,MAAAuG,GAAAqD,UAAArD,EAAAqD,SAAA5B,gBAAAhI,EAAAgI,cAQA,QAAA/B,GAAAC,EAAAC,EAAAC,GACA,MAAAC,IAAAF,GACAb,GAAAgB,KAAAJ,EAAA,SAAAK,EAAA7F,GACA,QAAAyF,EAAArG,KAAAyG,EAAA7F,EAAA6F,KAAAH,IAKAD,EAAAK,SACAlB,GAAAgB,KAAAJ,EAAA,SAAAK,GACA,MAAAA,KAAAJ,IAAAC,IAKA,gBAAAD,GACAb,GAAAgB,KAAAJ,EAAA,SAAAK,GACA,MAAApD,IAAArD,KAAAqG,EAAAI,IAAA,IAAAH,IAKAd,GAAAoB,OAAAP,EAAAD,EAAAE,GAiRA,QAAAO,GAAAC,EAAAC,GACA,MAAAD,EAAAA,EAAAC,KAAA,IAAAD,EAAAJ,WACA,MAAAI,GAqFA,QAAAE,GAAAC,GACA,GAAAC,KAIA,OAHA1B,IAAA2B,KAAAF,EAAAG,MAAAmhF,QAAA,SAAAjhF,EAAAC,GACAL,EAAAK,IAAA,IAEAL,EA4NA,QAAAshF,GAAAjuE,GACA,MAAAA,GAEA,QAAAkuE,GAAAC,GACA,KAAAA,GAGA,QAAAC,GAAAhmF,EAAAmsB,EAAAC,EAAA65D,GACA,GAAArkD,EAEA,KAGA5hC,GAAA4D,GAAAg+B,EAAA5hC,EAAAiU,SACA2tB,EAAAvkC,KAAA2C,GAAAwS,KAAA2Z,GAAAvX,KAAAwX,GAGApsB,GAAA4D,GAAAg+B,EAAA5hC,EAAA6rB,MACA+V,EAAAvkC,KAAA2C,EAAAmsB,EAAAC,GAQAD,EAAAvsB,UAAA2C,IAAAvC,GAAAhB,MAAAinF,IAMA,MAAAjmF,GAIAosB,EAAAxsB,UAAA2C,IAAAvC,KA6aA,QAAA6E,KACA7B,GAAA8B,oBAAA,mBAAAD,GACA3B,EAAA4B,oBAAA,OAAAD,GACAhC,GAAAkC,QA4FA,QAAAuT,GAAAC,EAAAC,GACA,MAAAA,GAAA5J,cAMA,QAAAgE,GAAAuH,GACA,MAAAA,GAAArb,QAAAsZ,GAAA,OAAAtZ,QAAAuZ,GAAAC,GAgBA,QAAAtT,KACA7B,KAAA8B,QAAApC,GAAAoC,QAAAD,EAAAE,MAwKA,QAAAghF,GAAA7gF,GACA,MAAA,SAAAA,GAIA,UAAAA,IAIA,SAAAA,EACA,KAIAA,KAAAA,EAAA,IACAA,EAGAI,GAAA5G,KAAAwG,GACA24B,KAAAC,MAAA54B,GAGAA,GAGA,QAAAF,GAAArB,EAAAsB,EAAAC,GACA,GAAA9H,EAIA,QAAAgF,KAAA8C,GAAA,IAAAvB,EAAAC,SAIA,GAHAxG,EAAA,QAAA6H,EAAAtG,QAAAwG,GAAA,OAAAC,cAGA,iBAFAF,EAAAvB,EAAA0B,aAAAjI,IAEA,CACA,IACA8H,EAAA6gF,EAAA7gF,GACA,MAAAzD,IAGA+D,GAAAC,IAAA9B,EAAAsB,EAAAC,OAEAA,OAAA9C,EAGA,OAAA8C,GAqSA,QAAAQ,GAAA/B,EAAA3G,EAAA2I,EAAAC,GACA,GAAAC,GAAAC,EACAC,EAAA,GACAC,EAAAJ,EACA,WACA,MAAAA,GAAA5B,OAEA,WACA,MAAAtB,IAAAuD,IAAAtC,EAAA3G,EAAA,KAEAkJ,EAAAF,IACAG,EAAAR,GAAAA,EAAA,KAAAjD,GAAA0D,UAAApJ,GAAA,GAAA,MAGAqJ,GAAA3D,GAAA0D,UAAApJ,IAAA,OAAAmJ,IAAAD,IACAI,GAAAC,KAAA7D,GAAAuD,IAAAtC,EAAA3G,GAEA,IAAAqJ,GAAAA,EAAA,KAAAF,EAAA,CAYA,IARAD,GAAA,EAGAC,EAAAA,GAAAE,EAAA,GAGAA,GAAAH,GAAA,EAEAH,KAIArD,GAAA8D,MAAA7C,EAAA3G,EAAAqJ,EAAAF,IACA,EAAAL,IAAA,GAAAA,EAAAE,IAAAE,GAAA,MAAA,IACAH,EAAA,GAEAM,GAAAP,CAIAO,IAAA,EACA3D,GAAA8D,MAAA7C,EAAA3G,EAAAqJ,EAAAF,GAGAR,EAAAA,MAgBA,MAbAA,KACAU,GAAAA,IAAAH,GAAA,EAGAL,EAAAF,EAAA,GACAU,GAAAV,EAAA,GAAA,GAAAA,EAAA,IACAA,EAAA,GACAC,IACAA,EAAAO,KAAAA,EACAP,EAAAa,MAAAJ,EACAT,EAAAc,IAAAb,IAGAA,EAMA,QAAAmgF,GAAAriF,GACA,GAAA6P,GACA5H,EAAAjI,EAAAqF,cACAhC,EAAArD,EAAAqD,SACAgG,EAAAi5E,GAAAj/E,EAEA,OAAAgG,KAIAwG,EAAA5H,EAAAmB,KAAA5E,YAAAyD,EAAAxD,cAAApB,IACAgG,EAAAtK,GAAAuD,IAAAuN,EAAA,WAEAA,EAAA7G,WAAAC,YAAA4G,GAEA,SAAAxG,IACAA,EAAA,SAEAi5E,GAAAj/E,GAAAgG,EAEAA,GAGA,QAAA4C,GAAAtM,EAAAuM,GAOA,IANA,GAAA7C,GAAArJ,EACAoM,KACAzP,EAAA,EACA/B,EAAA+E,EAAA/E,OAGA+B,EAAA/B,EAAA+B,IACAqD,EAAAL,EAAAhD,GACAqD,EAAA6C,QAIAwG,EAAArJ,EAAA6C,MAAAwG,QACA6C,GAKA,SAAA7C,IACA+C,EAAAzP,GAAAgH,GAAAC,IAAA5D,EAAA,YAAA,KACAoM,EAAAzP,KACAqD,EAAA6C,MAAAwG,QAAA,KAGA,KAAArJ,EAAA6C,MAAAwG,SAAAk5E,GAAAviF,KACAoM,EAAAzP,GAAA0lF,EAAAriF,KAGA,SAAAqJ,IACA+C,EAAAzP,GAAA,OAGAgH,GAAA7B,IAAA9B,EAAA,UAAAqJ,IAMA,KAAA1M,EAAA,EAAAA,EAAA/B,EAAA+B,IACA,MAAAyP,EAAAzP,KACAgD,EAAAhD,GAAAkG,MAAAwG,QAAA+C,EAAAzP,GAIA,OAAAgD,GAwDA,QAAAqD,GAAAC,EAAAC,GAIA,GAAA7E,EAYA,OATAA,OADA,KAAA4E,EAAAE,qBACAF,EAAAE,qBAAAD,GAAA,SAEA,KAAAD,EAAAG,iBACAH,EAAAG,iBAAAF,GAAA,YAMAzE,KAAAyE,GAAAA,GAAAG,EAAAJ,EAAAC,GACAnE,GAAAuE,OAAAL,GAAA5E,GAGAA,EAKA,QAAAkF,GAAAC,EAAAC,GAIA,IAHA,GAAAtJ,GAAA,EACAuJ,EAAAF,EAAA5I,OAEAT,EAAAuJ,EAAAvJ,IACAwJ,GAAA7B,IACA0B,EAAArJ,GACA,cACAsJ,GAAAE,GAAAC,IAAAH,EAAAtJ,GAAA,eAQA,QAAA0J,GAAAL,EAAAP,EAAAa,EAAAC,EAAAC,GAOA,IANA,GAAAhE,GAAAiE,EAAAf,EAAAgB,EAAAC,EAAA/J,EACAgK,EAAAnB,EAAAoB,yBACAC,KACAnK,EAAA,EACAuJ,EAAAF,EAAA5I,OAEAT,EAAAuJ,EAAAvJ,IAGA,IAFA6F,EAAAwD,EAAArJ,KAEA,IAAA6F,EAGA,GAAA,WAAA6hF,EAAA7hF,GAIAjB,GAAAuE,MAAAgB,EAAAtE,EAAAC,UAAAD,GAAAA,OAGA,IAAAuE,GAAAxJ,KAAAiF,GAIA,CAUA,IATAiE,EAAAA,GAAAG,EAAAI,YAAAvB,EAAAwB,cAAA,QAGAvB,GAAAwB,GAAA9B,KAAA5C,KAAA,GAAA,KAAA,GAAAyB,cACAyC,EAAAS,GAAAzB,IAAAyB,GAAAC,SACAX,EAAAY,UAAAX,EAAA,GAAAnF,GAAA+F,cAAA9E,GAAAkE,EAAA,GAGA9J,EAAA8J,EAAA,GACA9J,KACA6J,EAAAA,EAAAc,SAKAhG,IAAAuE,MAAAgB,EAAAL,EAAAe,YAGAf,EAAAG,EAAAa,WAGAhB,EAAAiB,YAAA,OAzBAZ,GAAA1I,KAAAqH,EAAAkC,eAAAnF,GAkCA,KAHAoE,EAAAc,YAAA,GAEA/K,EAAA,EACA6F,EAAAsE,EAAAnK,MAGA,GAAA4J,GAAAhF,GAAAqG,QAAApF,EAAA+D,IAAA,EACAC,GACAA,EAAApI,KAAAoE,OAgBA,IAXAmE,EAAApF,GAAAoF,SAAAnE,EAAAqF,cAAArF,GAGAiE,EAAAjB,EAAAoB,EAAAI,YAAAxE,GAAA,UAGAmE,GACAZ,EAAAU,GAIAH,EAEA,IADA1J,EAAA,EACA4F,EAAAiE,EAAA7J,MACAkL,GAAAvK,KAAAiF,EAAAR,MAAA,KACAsE,EAAAlI,KAAAoE,EAMA,OAAAoE,GAqCA,QAAAmB,KACA,OAAA,EAGA,QAAAC,KACA,OAAA,EAKA,QAAAC,KACA,IACA,MAAAvG,IAAAwG,cACA,MAAAC,KAGA,QAAAC,GAAA5F,EAAA6F,EAAAC,EAAAvE,EAAAwE,EAAAC,GACA,GAAAC,GAAAzG,CAGA,IAAA,gBAAAqG,GAAA,CAGA,gBAAAC,KAGAvE,EAAAA,GAAAuE,EACAA,MAAArH,GAEA,KAAAe,IAAAqG,GACAD,EAAA5F,EAAAR,EAAAsG,EAAAvE,EAAAsE,EAAArG,GAAAwG,EAEA,OAAAhG,GAsBA,GAnBA,MAAAuB,GAAA,MAAAwE,GAGAA,EAAAD,EACAvE,EAAAuE,MAAArH,IACA,MAAAsH,IACA,gBAAAD,IAGAC,EAAAxE,EACAA,MAAA9C,KAIAsH,EAAAxE,EACAA,EAAAuE,EACAA,MAAArH,MAGA,IAAAsH,EACAA,EAAAP,MACA,KAAAO,EACA,MAAA/F,EAeA,OAZA,KAAAgG,IACAC,EAAAF,EACAA,EAAA,SAAAG,GAIA,MADAnH,MAAAoH,IAAAD,GACAD,EAAAnK,MAAAuD,KAAA1D,YAIAoK,EAAAK,KAAAH,EAAAG,OAAAH,EAAAG,KAAArH,GAAAqH,SAEApG,EAAAU,KAAA,WACA3B,GAAAmH,MAAAG,IAAAhH,KAAAwG,EAAAE,EAAAxE,EAAAuE,KA+pBA,QAAAQ,GAAAtG,EAAAuG,GACA,MAAAlD,GAAArD,EAAA,UACAqD,EAAA,KAAAkD,EAAAtG,SAAAsG,EAAAA,EAAAtB,WAAA,MAEAlG,GAAAiB,GAAAsmB,SAAA,SAAA,IAAAtmB,EAGAA,EAIA,QAAAwG,GAAAxG,GAEA,MADAA,GAAAR,MAAA,OAAAQ,EAAA0B,aAAA,SAAA,IAAA1B,EAAAR,KACAQ,EAEA,QAAAyG,GAAAzG,GAOA,MANA,WAAAA,EAAAR,MAAA,IAAAtE,MAAA,EAAA,GACA8E,EAAAR,KAAAQ,EAAAR,KAAAtE,MAAA,GAEA8E,EAAA2G,gBAAA,QAGA3G,EAGA,QAAA4G,GAAAC,EAAAC,GACA,GAAA3M,GAAAuJ,EAAAlE,EAAAuH,EAAAC,EAAAC,EAAAC,EAAAC,CAEA,IAAA,IAAAL,EAAA7G,SAAA,CAKA,GAAA0D,GAAAyD,QAAAP,KACAE,EAAApD,GAAA0D,OAAAR,GACAG,EAAArD,GAAA7B,IAAAgF,EAAAC,GACAI,EAAAJ,EAAAI,QAEA,OACAH,GAAAM,OACAN,EAAAG,SAEA,KAAA3H,IAAA2H,GACA,IAAAhN,EAAA,EAAAuJ,EAAAyD,EAAA3H,GAAA5E,OAAAT,EAAAuJ,EAAAvJ,IACA4E,GAAAmH,MAAAG,IAAAS,EAAAtH,EAAA2H,EAAA3H,GAAArF,IAOA0H,GAAAuF,QAAAP,KACAI,EAAApF,GAAAwF,OAAAR,GACAK,EAAAnI,GAAAwI,UAAAN,GAEApF,GAAAC,IAAAgF,EAAAI,KAKA,QAAAM,GAAAX,EAAAC,GACA,GAAAzD,GAAAyD,EAAAzD,SAAA5B,aAGA,WAAA4B,GAAAoE,GAAA1M,KAAA8L,EAAArH,MACAsH,EAAAY,QAAAb,EAAAa,QAGA,UAAArE,GAAA,aAAAA,IACAyD,EAAAa,aAAAd,EAAAc,cAIA,QAAAC,GAAAC,EAAApM,EAAA0C,EAAA6F,GAGAvI,EAAAN,GAAAW,SAAAL,EAEA,IAAA2I,GAAA0D,EAAAhE,EAAAiE,EAAAC,EAAAC,EACA9N,EAAA,EACAuJ,EAAAmE,EAAAjN,OACAsN,EAAAxE,EAAA,EACAxH,EAAAT,EAAA,GACA+mF,EAAA1iF,GAAA5D,EAGA,IAAAsmF,GACA9+E,EAAA,GAAA,gBAAAxH,KACAiM,GAAAC,YAAAC,GAAAtN,KAAAmB,GACA,MAAA2L,GAAAnH,KAAA,SAAA/D,GACA,GAAA2L,GAAAT,EAAAU,GAAA5L,EACA6lF,KACA/mF,EAAA,GAAAS,EAAA3C,KAAA8F,KAAA1C,EAAA2L,EAAAE,SAEAZ,EAAAU,EAAA7M,EAAA0C,EAAA6F,IAIA,IAAAN,IACAU,EAAAP,EAAApI,EAAAoM,EAAA,GAAAxC,eAAA,EAAAwC,EAAA7D,GACA8D,EAAA1D,EAAAa,WAEA,IAAAb,EAAAY,WAAApK,SACAwJ,EAAA0D,GAIAA,GAAA9D,GAAA,CAOA,IANAF,EAAA/E,GAAAtE,IAAAuI,EAAAoB,EAAA,UAAAoC,GACAuB,EAAAjE,EAAAlJ,OAKAT,EAAAuJ,EAAAvJ,IACA6N,EAAA5D,EAEAjK,IAAA+N,IACAF,EAAAjJ,GAAA0J,MAAAT,GAAA,GAAA,GAGAD,GAIAhJ,GAAAuE,MAAAQ,EAAAd,EAAAgF,EAAA,YAIA7J,EAAA5E,KAAAsO,EAAA1N,GAAA6N,EAAA7N,EAGA,IAAA4N,EAOA,IANAE,EAAAnE,EAAAA,EAAAlJ,OAAA,GAAAyK,cAGAtG,GAAAtE,IAAAqJ,EAAA2C,GAGAtM,EAAA,EAAAA,EAAA4N,EAAA5N,IACA6N,EAAAlE,EAAA3J,GACAmL,GAAAvK,KAAAiN,EAAAxI,MAAA,MACAmE,GAAA0D,OAAAW,EAAA,eACAjJ,GAAAoF,SAAA8D,EAAAD,KAEAA,EAAAnB,KAAA,YAAAmB,EAAAxI,MAAA,IAAAiC,cAGA1C,GAAA2J,UACA3J,GAAA2J,SAAAV,EAAAnB,KAGA86E,EAAA35E,EAAA9C,YAAAlK,QAAA4N,GAAA,IAAAX,EAAAD,IAQA,MAAAH,GAGA,QAAAgB,GAAA7I,EAAA8F,EAAAgD,GAKA,IAJA,GAAAd,GACA1D,EAAAwB,EAAA/G,GAAAoB,OAAA2F,EAAA9F,GAAAA,EACA7F,EAAA,EAEA,OAAA6N,EAAA1D,EAAAnK,IAAAA,IACA2O,GAAA,IAAAd,EAAA/H,UACAlB,GAAAgK,UAAA/F,EAAAgF,IAGAA,EAAAgB,aACAF,GAAA/J,GAAAoF,SAAA6D,EAAA3C,cAAA2C,IACAzE,EAAAP,EAAAgF,EAAA,WAEAA,EAAAgB,WAAAC,YAAAjB,GAIA,OAAAhI,GA0WA,QAAA8J,GAAA9J,EAAAvG,EAAAsQ,GACA,GAAAC,GAAAC,EAAAC,EAAA7L,EAMAwE,EAAA7C,EAAA6C,KAqCA,OAnCAkH,GAAAA,GAAAI,GAAAnK,GAKA+J,IACA1L,EAAA0L,EAAAK,iBAAA3Q,IAAAsQ,EAAAtQ,GAEA,KAAA4E,GAAAU,GAAAoF,SAAAnE,EAAAqF,cAAArF,KACA3B,EAAAU,GAAA8D,MAAA7C,EAAAvG,KAQA0O,GAAAs6E,kBAAAn4E,GAAAvP,KAAAsD,IAAAqkF,GAAA3nF,KAAAtB,KAGAuQ,EAAAnH,EAAAmH,MACAC,EAAApH,EAAAoH,SACAC,EAAArH,EAAAqH,SAGArH,EAAAoH,SAAApH,EAAAqH,SAAArH,EAAAmH,MAAA3L,EACAA,EAAA0L,EAAAC,MAGAnH,EAAAmH,MAAAA,EACAnH,EAAAoH,SAAAA,EACApH,EAAAqH,SAAAA,QAIAzL,KAAAJ,EAIAA,EAAA,GACAA,EAIA,QAAAmM,GAAAC,EAAAC,GAGA,OACA9G,IAAA,WACA,MAAA6G,gBAIApL,MAAAuE,KAKAvE,KAAAuE,IAAA8G,GAAA5O,MAAAuD,KAAA1D,aAuBA,QAAAgP,GAAAlR,GAGA,GAAAA,IAAAmR,IACA,MAAAnR,EAOA,KAHA,GAAAoR,GAAApR,EAAA,GAAAqR,cAAArR,EAAAyB,MAAA,GACAf,EAAA4Q,GAAAnQ,OAEAT,KAEA,IADAV,EAAAsR,GAAA5Q,GAAA0Q,IACAD,IACA,MAAAnR,GAOA,QAAAkpF,GAAAlpF,GACA,GAAA4E,GAAAU,GAAAg1B,SAAAt6B,EAIA,OAHA4E,KACAA,EAAAU,GAAAg1B,SAAAt6B,GAAAkR,EAAAlR,IAAAA,GAEA4E,EAGA,QAAA2M,GAAAhL,EAAA9D,EAAA+O,GAIA,GAAAC,GAAAvI,GAAAC,KAAA1G,EACA,OAAAgP,GAGAC,KAAAC,IAAA,EAAAF,EAAA,IAAAD,GAAA,KAAAC,EAAA,IAAA,MACAhP,EAGA,QAAA0mF,GAAA5iF,EAAA6iF,EAAAzgD,EAAA72B,EAAAC,EAAAs3E,GACA,GAAA3oF,GAAA,UAAA0oF,EAAA,EAAA,EACAv3E,EAAA,EACAqhD,EAAA,CAGA,IAAAvqB,KAAA72B,EAAA,SAAA,WACA,MAAA,EAGA,MAAApR,EAAA,EAAAA,GAAA,EAGA,WAAAioC,IACAuqB,GAAA5tD,GAAAuD,IAAAtC,EAAAoiC,EAAA12B,GAAAvR,IAAA,EAAAqR,IAIAD,GAmBA,YAAA62B,IACAuqB,GAAA5tD,GAAAuD,IAAAtC,EAAA,UAAA0L,GAAAvR,IAAA,EAAAqR,IAIA,WAAA42B,IACAuqB,GAAA5tD,GAAAuD,IAAAtC,EAAA,SAAA0L,GAAAvR,GAAA,SAAA,EAAAqR,MAtBAmhD,GAAA5tD,GAAAuD,IAAAtC,EAAA,UAAA0L,GAAAvR,IAAA,EAAAqR,GAGA,YAAA42B,EACAuqB,GAAA5tD,GAAAuD,IAAAtC,EAAA,SAAA0L,GAAAvR,GAAA,SAAA,EAAAqR,GAIAF,GAAAvM,GAAAuD,IAAAtC,EAAA,SAAA0L,GAAAvR,GAAA,SAAA,EAAAqR,GAiCA,QAbAD,GAAAu3E,GAAA,IAIAn2B,GAAAxhD,KAAAC,IAAA,EAAAD,KAAAw1C,KACA3gD,EAAA,SAAA6iF,EAAA,GAAA/3E,cAAA+3E,EAAA3nF,MAAA,IACA4nF,EACAn2B,EACArhD,EACA,MAIAqhD,EAGA,QAAAhhD,GAAA3L,EAAA6iF,EAAAv3E,GAGA,GAAAE,GAAArB,GAAAnK,GACAyL,EAAA3B,EAAA9J,EAAA6iF,EAAAr3E,GACAD,EAAA,eAAAxM,GAAAuD,IAAAtC,EAAA,aAAA,EAAAwL,GACAI,EAAAL,CAIA,IAAAjB,GAAAvP,KAAA0Q,GAAA,CACA,IAAAH,EACA,MAAAG,EAEAA,GAAA,OAyBA,MApBAG,GAAAA,IACAzD,GAAA4D,qBAAAN,IAAAzL,EAAA6C,MAAAggF,KAMA,SAAAp3E,IACAO,WAAAP,IAAA,WAAA1M,GAAAuD,IAAAtC,EAAA,WAAA,EAAAwL,MAEAC,EAAAzL,EAAA,SAAA6iF,EAAA,GAAA/3E,cAAA+3E,EAAA3nF,MAAA,IAGA0Q,GAAA,IAIAH,EAAAO,WAAAP,IAAA,GAIAm3E,EACA5iF,EACA6iF,EACAv3E,IAAAC,EAAA,SAAA,WACAK,EACAJ,EAGAC,GAEA,KA2RA,QAAAa,GAAAtM,EAAAQ,EAAAnH,EAAA0J,EAAAwJ,GACA,MAAA,IAAAD,GAAAnP,UAAAqP,KAAAxM,EAAAQ,EAAAnH,EAAA0J,EAAAwJ,GA0HA,QAAAw2E,KACAC,MACA,IAAA9jF,GAAAiN,QAAA/M,EAAA6jF,sBACA7jF,EAAA6jF,sBAAAF,GAEA3jF,EAAAT,WAAAokF,EAAAhkF,GAAA2R,GAAA8lB,UAGAz3B,GAAA2R,GAAAlB,QAKA,QAAA/C,KAIA,MAHArN,GAAAT,WAAA,WACA+N,OAAAjO,KAEAiO,GAAAkK,KAAAjK,MAIA,QAAAC,GAAApN,EAAAqN,GACA,GAAAC,GACA3S,EAAA,EACA4S,GAAAC,OAAAxN,EAKA,KADAqN,EAAAA,EAAA,EAAA,EACA1S,EAAA,EAAAA,GAAA,EAAA0S,EACAC,EAAApB,GAAAvR,GACA4S,EAAA,SAAAD,GAAAC,EAAA,UAAAD,GAAAtN,CAOA,OAJAqN,KACAE,EAAAE,QAAAF,EAAA/C,MAAAxK,GAGAuN,EAGA,QAAAG,GAAAhR,EAAA7C,EAAA8T,GAKA,IAJA,GAAAlL,GACA4F,GAAAuF,EAAAC,SAAAhU,QAAA8B,OAAAiS,EAAAC,SAAA,MACA1Q,EAAA,EACA/B,EAAAiN,EAAAjN,OACA+B,EAAA/B,EAAA+B,IACA,GAAAsF,EAAA4F,EAAAlL,GAAApD,KAAA4T,EAAA9T,EAAA6C,GAGA,MAAA+F,GAKA,QAAAqL,GAAAtN,EAAAuN,EAAAC,GACA,GAAAnU,GAAA6C,EAAAuR,EAAAC,EAAAC,EAAAu1E,EAAAC,EAAA95E,EACA+5E,EAAA,SAAA71E,IAAA,UAAAA,GACAK,EAAAvO,KACAwO,KACAhL,EAAA7C,EAAA6C,MACAsJ,EAAAnM,EAAAC,UAAAsiF,GAAAviF,GACA8N,EAAAnK,GAAAC,IAAA5D,EAAA,SAGAwN,GAAAO,QACAL,EAAA3O,GAAAiP,YAAAhO,EAAA,MACA,MAAA0N,EAAAO,WACAP,EAAAO,SAAA,EACAN,EAAAD,EAAAQ,MAAAC,KACAT,EAAAQ,MAAAC,KAAA,WACAT,EAAAO,UACAN,MAIAD,EAAAO,WAEAL,EAAAQ,OAAA,WAGAR,EAAAQ,OAAA,WACAV,EAAAO,WACAlP,GAAAgP,MAAA/N,EAAA,MAAApF,QACA8S,EAAAQ,MAAAC,WAOA,KAAA9U,IAAAkU,GAEA,GADArR,EAAAqR,EAAAlU,GACAmV,GAAAzT,KAAAmB,GAAA,CAGA,SAFAqR,GAAAlU,GACAoU,EAAAA,GAAA,WAAAvR,EACAA,KAAAiQ,EAAA,OAAA,QAAA,CAIA,GAAA,SAAAjQ,IAAA4R,OAAArP,KAAAqP,EAAAzU,GAKA,QAJA8S,IAAA,EAOA0B,EAAAxU,GAAAyU,GAAAA,EAAAzU,IAAA0F,GAAA8D,MAAA7C,EAAA3G,GAMA,IADA6pF,GAAAnkF,GAAA0P,cAAAlB,MACAxO,GAAA0P,cAAAZ,GAAA,CAKAu1E,GAAA,IAAApjF,EAAAC,WAMAuN,EAAAa,UAAAxL,EAAAwL,SAAAxL,EAAAyL,UAAAzL,EAAA0L,WAGA40E,EAAAr1E,GAAAA,EAAAzE,QACA,MAAA85E,IACAA,EAAAx/E,GAAAC,IAAA5D,EAAA,YAEAqJ,EAAAtK,GAAAuD,IAAAtC,EAAA,WACA,SAAAqJ,IACA85E,EACA95E,EAAA85E,GAIAl3E,GAAAjM,IAAA,GACAmjF,EAAAnjF,EAAA6C,MAAAwG,SAAA85E,EACA95E,EAAAtK,GAAAuD,IAAAtC,EAAA,WACAiM,GAAAjM,OAKA,WAAAqJ,GAAA,iBAAAA,GAAA,MAAA85E,IACA,SAAApkF,GAAAuD,IAAAtC,EAAA,WAGAkjF,IACAt1E,EAAAc,KAAA,WACA7L,EAAAwG,QAAA85E,IAEA,MAAAA,IACA95E,EAAAxG,EAAAwG,QACA85E,EAAA,SAAA95E,EAAA,GAAAA,IAGAxG,EAAAwG,QAAA,iBAKAmE,EAAAa,WACAxL,EAAAwL,SAAA,SACAT,EAAAQ,OAAA,WACAvL,EAAAwL,SAAAb,EAAAa,SAAA,GACAxL,EAAAyL,UAAAd,EAAAa,SAAA,GACAxL,EAAA0L,UAAAf,EAAAa,SAAA,MAKA60E,GAAA,CACA,KAAA7pF,IAAAwU,GAGAq1E,IACAp1E,EACA,UAAAA,KACA3B,EAAA2B,EAAA3B,QAGA2B,EAAAnK,GAAA0D,OAAArH,EAAA,UAAAqJ,QAAA85E,IAIA11E,IACAK,EAAA3B,QAAAA,GAIAA,GACAF,GAAAjM,IAAA,GAKA4N,EAAAc,KAAA,WAKAvC,GACAF,GAAAjM,IAEA2D,GAAAkF,OAAA7I,EAAA,SACA,KAAA3G,IAAAwU,GACA9O,GAAA8D,MAAA7C,EAAA3G,EAAAwU,EAAAxU,OAMA6pF,EAAAh2E,EAAAf,EAAA2B,EAAAzU,GAAA,EAAAA,EAAAuU,GACAvU,IAAAyU,KACAA,EAAAzU,GAAA6pF,EAAApgF,MACAqJ,IACA+2E,EAAAngF,IAAAmgF,EAAApgF,MACAogF,EAAApgF,MAAA,KAMA,QAAA8L,GAAArB,EAAAsB,GACA,GAAAlS,GAAAlD,EAAA8S,EAAArQ,EAAAwR,CAGA,KAAA/Q,IAAA4Q,GAeA,GAdA9T,EAAAqV,EAAAnS,GACA4P,EAAAsC,EAAApV,GACAyC,EAAAqR,EAAA5Q,GACAgZ,MAAA5G,QAAA7S,KACAqQ,EAAArQ,EAAA,GACAA,EAAAqR,EAAA5Q,GAAAT,EAAA,IAGAS,IAAAlD,IACA8T,EAAA9T,GAAAyC,QACAqR,GAAA5Q,KAGA+Q,EAAA3O,GAAAiQ,SAAAvV,KACA,UAAAiU,GAAA,CACAxR,EAAAwR,EAAAuB,OAAA/S,SACAqR,GAAA9T,EAIA,KAAAkD,IAAAT,GACAS,IAAA4Q,KACAA,EAAA5Q,GAAAT,EAAAS,GACAkS,EAAAlS,GAAA4P,OAIAsC,GAAApV,GAAA8S,EAKA,QAAAa,GAAApN,EAAAkP,EAAA1O,GACA,GAAA2O,GACAC,EACAzS,EAAA,EACA/B,EAAAwS,EAAAiC,WAAAzU,OACA0U,EAAAvQ,GAAAwQ,WAAAnB,OAAA,iBAGAoB,GAAAxP,OAEAwP,EAAA,WACA,GAAAJ,EACA,OAAA,CAYA,KAVA,GAAAK,GAAA/C,IAAAD,IACAiD,EAAAvE,KAAAC,IAAA,EAAA+B,EAAAwC,UAAAxC,EAAAyC,SAAAH,GAIAI,EAAAH,EAAAvC,EAAAyC,UAAA,EACAE,EAAA,EAAAD,EACAlT,EAAA,EACA/B,EAAAuS,EAAA4C,OAAAnV,OAEA+B,EAAA/B,EAAA+B,IACAwQ,EAAA4C,OAAApT,GAAAqT,IAAAF,EAMA,OAHAR,GAAAW,WAAAjQ,GAAAmN,EAAA2C,EAAAJ,IAGAI,EAAA,GAAAlV,EACA8U,GAIA9U,GACA0U,EAAAW,WAAAjQ,GAAAmN,EAAA,EAAA,IAIAmC,EAAAY,YAAAlQ,GAAAmN,KACA,IAEAA,EAAAmC,EAAAa,SACAnQ,KAAAA,EACAuN,MAAAxO,GAAAwI,UAAA2H,GACA1B,KAAAzO,GAAAwI,QAAA,GACAsH,iBACAtC,OAAAxN,GAAAwN,OAAA3H,UACApE,GACA4P,mBAAAlB,EACAmB,gBAAA7P,EACAmP,UAAAjD,IAAAD,IACAmD,SAAApP,EAAAoP,SACAG,UACA7C,YAAA,SAAA7T,EAAA0J,GACA,GAAAd,GAAAlD,GAAAuN,MAAAtM,EAAAmN,EAAAK,KAAAnU,EAAA0J,EACAoK,EAAAK,KAAAqB,cAAAxV,IAAA8T,EAAAK,KAAAjB,OAEA,OADAY,GAAA4C,OAAAnU,KAAAqG,GACAA,GAEAqO,KAAA,SAAAC,GACA,GAAA5T,GAAA,EAIA/B,EAAA2V,EAAApD,EAAA4C,OAAAnV,OAAA,CACA,IAAAwU,EACA,MAAA/P,KAGA,KADA+P,GAAA,EACAzS,EAAA/B,EAAA+B,IACAwQ,EAAA4C,OAAApT,GAAAqT,IAAA,EAUA,OANAO,IACAjB,EAAAW,WAAAjQ,GAAAmN,EAAA,EAAA,IACAmC,EAAAY,YAAAlQ,GAAAmN,EAAAoD,KAEAjB,EAAAkB,WAAAxQ,GAAAmN,EAAAoD,IAEAlR,QAGAkO,EAAAJ,EAAAI,KAIA,KAFAqB,EAAArB,EAAAJ,EAAAK,KAAAqB,eAEAlS,EAAA/B,EAAA+B,IAEA,GADAwS,EAAA/B,EAAAiC,WAAA1S,GAAApD,KAAA4T,EAAAnN,EAAAuN,EAAAJ,EAAAK,MAMA,MAJA1N,IAAAqP,EAAAmB,QACAvR,GAAAiP,YAAAb,EAAAnN,KAAAmN,EAAAK,KAAAO,OAAAuC,KACAnB,EAAAmB,KAAAyyB,KAAA5zB,IAEAA,CAyBA,OArBApQ,IAAAtE,IAAA8S,EAAAL,EAAAC,GAEArN,GAAAqN,EAAAK,KAAA1K,QACAqK,EAAAK,KAAA1K,MAAAvJ,KAAAyG,EAAAmN,GAIAA,EACAyD,SAAAzD,EAAAK,KAAAoD,UACAlC,KAAAvB,EAAAK,KAAAkB,KAAAvB,EAAAK,KAAAqD,UACAC,KAAA3D,EAAAK,KAAAsD,MACA1C,OAAAjB,EAAAK,KAAAY,QAEArP,GAAA2R,GAAAC,MACA5R,GAAAwI,OAAAiI,GACAxP,KAAAA,EACA4N,KAAAT,EACAY,MAAAZ,EAAAK,KAAAO,SAIAZ,EAilBA,QAAAk2E,GAAAnnF,GAEA,OADAA,EAAAyE,MAAAmhF,SACAzmF,KAAA,KAIA,QAAA0V,GAAA/Q,GACA,MAAAA,GAAA0B,cAAA1B,EAAA0B,aAAA,UAAA,GAGA,QAAA4hF,GAAApnF,GACA,MAAAyZ,OAAA5G,QAAA7S,GACAA,EAEA,gBAAAA,GACAA,EAAAyE,MAAAmhF,WAymBA,QAAAluE,GAAAlX,EAAAtD,EAAAya,EAAAxN,GACA,GAAA5M,EAEA,IAAAkc,MAAA5G,QAAA3V,GAGA2F,GAAA2B,KAAAtH,EAAA,SAAAe,EAAA2Z,GACAD,GAAAE,GAAAhZ,KAAA2B,GAGA2J,EAAA3J,EAAAoX,GAKAF,EACAlX,EAAA,KAAA,gBAAAoX,IAAA,MAAAA,EAAA3Z,EAAA,IAAA,IACA2Z,EACAD,EACAxN,SAKA,IAAAwN,GAAA,WAAAguE,EAAAzoF,GAUAiN,EAAA3J,EAAAtD,OAPA,KAAAK,IAAAL,GACAwa,EAAAlX,EAAA,IAAAjD,EAAA,IAAAL,EAAAK,GAAAoa,EAAAxN,GA0HA,QAAA2K,IAAAC,GAGA,MAAA,UAAAC,EAAAC,GAEA,gBAAAD,KACAC,EAAAD,EACAA,EAAA,IAGA,IAAAE,GACAjX,EAAA,EACAkX,EAAAH,EAAAzP,cAAAd,MAAAmhF,OAEA,IAAAhiF,GAAAqR,GAGA,KAAAC,EAAAC,EAAAlX,MAGA,MAAAiX,EAAA,IACAA,EAAAA,EAAAlW,MAAA,IAAA,KACA+V,EAAAG,GAAAH,EAAAG,QAAAE,QAAAH,KAIAF,EAAAG,GAAAH,EAAAG,QAAAxV,KAAAuV,IAQA,QAAAI,IAAAN,EAAAzQ,EAAA6P,EAAAmB,GAKA,QAAAC,GAAAL,GACA,GAAAM,EAcA,OAbAC,GAAAP,IAAA,EACArS,GAAA2B,KAAAuQ,EAAAG,OAAA,SAAAvQ,EAAA+Q,GACA,GAAAC,GAAAD,EAAApR,EAAA6P,EAAAmB,EACA,OAAA,gBAAAK,IACAC,GAAAH,EAAAE,GAKAC,IACAJ,EAAAG,OADA,IAHArR,EAAA6Q,UAAAC,QAAAO,GACAJ,EAAAI,IACA,KAKAH,EAlBA,GAAAC,MACAG,EAAAb,IAAAc,EAoBA,OAAAN,GAAAjR,EAAA6Q,UAAA,MAAAM,EAAA,MAAAF,EAAA,KAMA,QAAAO,IAAAC,EAAApL,GACA,GAAAvF,GAAA4Q,EACAC,EAAApT,GAAAqT,aAAAD,eAEA,KAAA7Q,IAAAuF,OACApI,KAAAoI,EAAAvF,MACA6Q,EAAA7Q,GAAA2Q,EAAAC,IAAAA,OAAA5Q,GAAAuF,EAAAvF,GAOA,OAJA4Q,IACAnT,GAAAwI,QAAA,EAAA0K,EAAAC,GAGAD,EAOA,QAAAI,IAAAC,EAAAd,EAAAe,GAOA,IALA,GAAAC,GAAAhT,EAAAiT,EAAAC,EACAC,EAAAL,EAAAK,SACAtB,EAAAiB,EAAAjB,UAGA,MAAAA,EAAA,IACAA,EAAAuB,YACAnU,KAAA+T,IACAA,EAAAF,EAAAO,UAAArB,EAAAsB,kBAAA,gBAKA,IAAAN,EACA,IAAAhT,IAAAmT,GACA,GAAAA,EAAAnT,IAAAmT,EAAAnT,GAAAzE,KAAAyX,GAAA,CACAnB,EAAAC,QAAA9R,EACA,OAMA,GAAA6R,EAAA,IAAAkB,GACAE,EAAApB,EAAA,OACA,CAGA,IAAA7R,IAAA+S,GAAA,CACA,IAAAlB,EAAA,IAAAiB,EAAAS,WAAAvT,EAAA,IAAA6R,EAAA,IAAA,CACAoB,EAAAjT,CACA,OAEAkT,IACAA,EAAAlT,GAKAiT,EAAAA,GAAAC,EAMA,GAAAD,EAIA,MAHAA,KAAApB,EAAA,IACAA,EAAAC,QAAAmB,GAEAF,EAAAE,GAOA,QAAAO,IAAAV,EAAAW,EAAAzB,EAAA0B,GACA,GAAAC,GAAAC,EAAAC,EAAApP,EAAAqP,EACAP,KAGA1B,EAAAiB,EAAAjB,UAAAnW,OAGA,IAAAmW,EAAA,GACA,IAAAgC,IAAAf,GAAAS,WACAA,EAAAM,EAAA5R,eAAA6Q,EAAAS,WAAAM,EAOA,KAHAD,EAAA/B,EAAAuB,QAGAQ,GAcA,GAZAd,EAAAiB,eAAAH,KACA5B,EAAAc,EAAAiB,eAAAH,IAAAH,IAIAK,GAAAJ,GAAAZ,EAAAkB,aACAP,EAAAX,EAAAkB,WAAAP,EAAAX,EAAAlB,WAGAkC,EAAAF,EACAA,EAAA/B,EAAAuB,QAKA,GAAA,MAAAQ,EAEAA,EAAAE,MAGA,IAAA,MAAAA,GAAAA,IAAAF,EAAA,CAMA,KAHAC,EAAAN,EAAAO,EAAA,IAAAF,IAAAL,EAAA,KAAAK,IAIA,IAAAD,IAAAJ,GAIA,GADA9O,EAAAkP,EAAA3Y,MAAA,KACAyJ,EAAA,KAAAmP,IAGAC,EAAAN,EAAAO,EAAA,IAAArP,EAAA,KACA8O,EAAA,KAAA9O,EAAA,KACA,EAGA,IAAAoP,EACAA,EAAAN,EAAAI,IAGA,IAAAJ,EAAAI,KACAC,EAAAnP,EAAA,GACAoN,EAAAC,QAAArN,EAAA,IAEA,OAOA,IAAA,IAAAoP,EAGA,GAAAA,GAAAf,EAAAmB,OACAR,EAAAI,EAAAJ,OAEA,KACAA,EAAAI,EAAAJ,GACA,MAAAnV,GACA,OACA4V,MAAA,cACAC,MAAAN,EAAAvV,EAAA,sBAAAwV,EAAA,OAAAF,IASA,OAAAM,MAAA,UAAAnS,KAAA0R,GAhjRA,GAAAiB,OAEAhV,GAAAE,EAAAF,SAEAqkF,GAAArmF,OAAAi6C,eAEAj8C,GAAAgZ,GAAAhZ,MAEAC,GAAA+Y,GAAA/Y,OAEAS,GAAAsY,GAAAtY,KAEAgB,GAAAsX,GAAAtX,QAEAuX,MAEAC,GAAAD,GAAAC,SAEA9a,GAAA6a,GAAA/W,eAEAomF,GAAAlqF,GAAA8a,SAEAqvE,GAAAD,GAAAjqF,KAAA2D,QAEAiL,MAEArI,GAAA,SAAA1G;oMAMA,MAAA,kBAAAA,IAAA,gBAAAA,GAAA6G,UAIAR,GAAA,SAAArG,GACA,MAAA,OAAAA,GAAAA,IAAAA,EAAAgG,QAMAwiF,IACApiF,MAAA,EACAqH,KAAA,EACA68E,UAAA,GAyCA3kF,GAAA,SAAA+G,EAAA7C,GAIA,MAAA,IAAAlE,IAAAgH,GAAAyG,KAAA1G,EAAA7C,IAKAoR,GAAA,oCAEAtV,IAAAgH,GAAAhH,GAAA5B,WAGAwX,OAjBA,QAmBAC,YAAA7V,GAGAnE,OAAA,EAEAia,QAAA,WACA,MAAA3Z,IAAA3B,KAAA8F,OAKAuE,IAAA,SAAAkR,GAGA,MAAA,OAAAA,EACA5Z,GAAA3B,KAAA8F,MAIAyV,EAAA,EAAAzV,KAAAyV,EAAAzV,KAAAzE,QAAAyE,KAAAyV,IAKAC,UAAA,SAAAvR,GAGA,GAAAnF,GAAAU,GAAAuE,MAAAjE,KAAAuV,cAAApR,EAMA,OAHAnF,GAAA2W,WAAA3V,KAGAhB,GAIAqC,KAAA,SAAAvC,GACA,MAAAY,IAAA2B,KAAArB,KAAAlB,IAGA1D,IAAA,SAAA0D,GACA,MAAAkB,MAAA0V,UAAAhW,GAAAtE,IAAA4E,KAAA,SAAAW,EAAA7F,GACA,MAAAgE,GAAA5E,KAAAyG,EAAA7F,EAAA6F,OAIA9E,MAAA,WACA,MAAAmE,MAAA0V,UAAA7Z,GAAAY,MAAAuD,KAAA1D,aAGAmM,MAAA,WACA,MAAAzI,MAAAkJ,GAAA,IAGA0M,KAAA,WACA,MAAA5V,MAAAkJ,IAAA,IAGAA,GAAA,SAAApO,GACA,GAAA+a,GAAA7V,KAAAzE,OACAR,GAAAD,GAAAA,EAAA,EAAA+a,EAAA,EACA,OAAA7V,MAAA0V,UAAA3a,GAAA,GAAAA,EAAA8a,GAAA7V,KAAAjF,SAGA2I,IAAA,WACA,MAAA1D,MAAA2V,YAAA3V,KAAAuV,eAKAhZ,KAAAA,GACAuZ,KAAAjB,GAAAiB,KACA/Z,OAAA8Y,GAAA9Y,QAGA2D,GAAAwI,OAAAxI,GAAAgH,GAAAwB,OAAA,WACA,GAAA/G,GAAA/G,EAAAoN,EAAAuO,EAAAC,EAAA5M,EACAwJ,EAAAtW,UAAA,OACAxB,EAAA,EACAS,EAAAe,UAAAf,OACAsX,GAAA,CAsBA,KAnBA,iBAAAD,KACAC,EAAAD,EAGAA,EAAAtW,UAAAxB,OACAA,KAIA,gBAAA8X,IAAAnS,GAAAmS,KACAA,MAIA9X,IAAAS,IACAqX,EAAA5S,KACAlF,KAGAA,EAAAS,EAAAT,IAGA,GAAA,OAAAqG,EAAA7E,UAAAxB,IAGA,IAAAV,IAAA+G,GACAqG,EAAAoL,EAAAxY,GACA2b,EAAA5U,EAAA/G,GAGAwY,IAAAmD,IAKAlD,GAAAkD,IAAArW,GAAAuW,cAAAF,KACAC,EAAAM,MAAA5G,QAAAqG,MAEAC,GACAA,GAAA,EACA5M,EAAA5B,GAAA8O,MAAA5G,QAAAlI,GAAAA,MAGA4B,EAAA5B,GAAA9H,GAAAuW,cAAAzO,GAAAA,KAIAoL,EAAAxY,GAAAsF,GAAAwI,OAAA2K,EAAAzJ,EAAA2M,QAGA3W,KAAA2W,IACAnD,EAAAxY,GAAA2b,GAOA,OAAAnD,IAGAlT,GAAAwI,QAGApG,QAAA,UAvKA,QAuKAgK,KAAAoK,UAAAva,QAAA,MAAA,IAGAwa,SAAA,EAEA7B,MAAA,SAAA8B,GACA,KAAA,IAAAjZ,OAAAiZ,IAGAC,KAAA,aAEAJ,cAAA,SAAAlc,GACA,GAAA+1C,GAAAw0C,CAIA,UAAAvqF,GAAA,oBAAAgb,GAAA7a,KAAAH,QAIA+1C,EAAAo0C,GAAAnqF,KASA,mBADAuqF,EAAArqF,GAAAC,KAAA41C,EAAA,gBAAAA,EAAAv6B,cACA4uE,GAAAjqF,KAAAoqF,KAAAF,KAGAh1E,cAAA,SAAArV,GAIA,GAAAK,EAEA,KAAAA,IAAAL,GACA,OAAA,CAEA,QAAA,GAIAuP,WAAA,SAAAmN,GACA6rE,EAAA7rE,IAGApV,KAAA,SAAAtH,EAAA+E,GACA,GAAAvD,GAAAT,EAAA,CAEA,IAAAoF,EAAAnG,GAEA,IADAwB,EAAAxB,EAAAwB,OACAT,EAAAS,IACA,IAAAuD,EAAA5E,KAAAH,EAAAe,GAAAA,EAAAf,EAAAe,IADAA,SAMA,KAAAA,IAAAf,GACA,IAAA,IAAA+E,EAAA5E,KAAAH,EAAAe,GAAAA,EAAAf,EAAAe,IACA,KAKA,OAAAf,IAIA8c,KAAA,SAAAC,GACA,MAAA,OAAAA,EACA,IACAA,EAAA,IAAAnb,QAAAqZ,GAAA,KAIAiC,UAAA,SAAApC,EAAAqC,GACA,GAAAlY,GAAAkY,KAaA,OAXA,OAAArC,IACA3U,EAAArC,OAAAgX,IACAnV,GAAAuE,MAAAjF,EACA,gBAAA6V,IACAA,GAAAA,GAGAtY,GAAArC,KAAA8E,EAAA6V,IAIA7V,GAGA+G,QAAA,SAAApF,EAAAkU,EAAA/Z,GACA,MAAA,OAAA+Z,GAAA,EAAAtX,GAAArD,KAAA2a,EAAAlU,EAAA7F,IAKAmJ,MAAA,SAAAwE,EAAA0O,GAKA,IAJA,GAAAtB,IAAAsB,EAAA5b,OACAR,EAAA,EACAD,EAAA2N,EAAAlN,OAEAR,EAAA8a,EAAA9a,IACA0N,EAAA3N,KAAAqc,EAAApc,EAKA,OAFA0N,GAAAlN,OAAAT,EAEA2N,GAGA/H,KAAA,SAAAyD,EAAArF,EAAAsY,GASA,IARA,GACAvL,MACA/Q,EAAA,EACAS,EAAA4I,EAAA5I,OACA8b,GAAAD,EAIAtc,EAAAS,EAAAT,KACAgE,EAAAqF,EAAArJ,GAAAA,KACAuc,GACAxL,EAAAtP,KAAA4H,EAAArJ,GAIA,OAAA+Q,IAIAzQ,IAAA,SAAA+I,EAAArF,EAAAwY,GACA,GAAA/b,GAAAsB,EACA/B,EAAA,EACAkE,IAGA,IAAAkB,EAAAiE,GAEA,IADA5I,EAAA4I,EAAA5I,OACAT,EAAAS,EAAAT,IAGA,OAFA+B,EAAAiC,EAAAqF,EAAArJ,GAAAA,EAAAwc,KAGAtY,EAAAzC,KAAAM,OAMA,KAAA/B,IAAAqJ,GAGA,OAFAtH,EAAAiC,EAAAqF,EAAArJ,GAAAA,EAAAwc,KAGAtY,EAAAzC,KAAAM,EAMA,OAAAf,IAAAW,SAAAuC,IAIA+H,KAAA,EAIA+B,QAAAA,KAGA,kBAAA0O,UACA9X,GAAAgH,GAAA8Q,OAAAC,UAAA5C,GAAA2C,OAAAC,WAIA/X,GAAA2B,KAAA,uEAAAlG,MAAA,KACA,SAAAL,EAAAV,GACA0a,GAAA,WAAA1a,EAAA,KAAAA,EAAAgI,eAmBA,IAAAsV,IAWA,SAAA3X,GA6MA,QAAA2X,GAAAjR,EAAA7C,EAAAsT,EAAAS,GACA,GAAAC,GAAA9c,EAAA6F,EAAAkX,EAAAvW,EAAAyW,EAAAC,EACAC,EAAArU,GAAAA,EAAAoC,cAGApF,EAAAgD,EAAAA,EAAAhD,SAAA,CAKA,IAHAsW,EAAAA,MAGA,gBAAAzQ,KAAAA,GACA,IAAA7F,GAAA,IAAAA,GAAA,KAAAA,EAEA,MAAAsW,EAIA,KAAAS,KAEA/T,EAAAA,EAAAoC,eAAApC,EAAAsU,KAAArY,GACAsY,EAAAvU,GAEAA,EAAAA,GAAA/D,EAEAuY,GAAA,CAIA,GAAA,KAAAxX,IAAAU,EAAA+W,GAAA9U,KAAAkD,IAGA,GAAAmR,EAAAtW,EAAA,IAGA,GAAA,IAAAV,EAAA,CACA,KAAAD,EAAAiD,EAAA0U,eAAAV,IAUA,MAAAV,EALA,IAAAvW,EAAAhC,KAAAiZ,EAEA,MADAV,GAAA3a,KAAAoE,GACAuW,MAYA,IAAAe,IAAAtX,EAAAsX,EAAAK,eAAAV,KACA9S,EAAAlB,EAAAjD,IACAA,EAAAhC,KAAAiZ,EAGA,MADAV,GAAA3a,KAAAoE,GACAuW,MAKA,CAAA,GAAA5V,EAAA,GAEA,MADA/E,GAAAE,MAAAya,EAAAtT,EAAAE,qBAAA2C,IACAyQ,CAGA,KAAAU,EAAAtW,EAAA,KAAAwH,EAAAyP,wBACA3U,EAAA2U,uBAGA,MADAhc,GAAAE,MAAAya,EAAAtT,EAAA2U,uBAAAX,IACAV,EAKA,GAAApO,EAAA0P,MACAC,EAAAhS,EAAA,QACAiS,IAAAA,EAAAhd,KAAA+K,IAAA,CAEA,GAAA,IAAA7F,EACAqX,EAAArU,EACAoU,EAAAvR,MAMA,IAAA,WAAA7C,EAAAI,SAAA5B,cAAA,CAYA,KATAyV,EAAAjU,EAAAvB,aAAA,OACAwV,EAAAA,EAAAlc,QAAA4oF,GAAAC,IAEA5gF,EAAAgV,aAAA,KAAAf,EAAA/V,GAIAiW,EAAAc,EAAApS,GACA3L,EAAAid,EAAAxc,OACAT,KACAid,EAAAjd,GAAA,IAAA+c,EAAA,IAAAkB,EAAAhB,EAAAjd,GAEAkd,GAAAD,EAAA/b,KAAA,KAGAic,EAAAe,GAAAtd,KAAA+K,IAAAwS,EAAArV,EAAA+F,aACA/F,EAGA,GAAAoU,EACA,IAIA,MAHAzb,GAAAE,MAAAya,EACAe,EAAAlU,iBAAAiU,IAEAd,EACA,MAAAgC,IACA,QACArB,IAAA/V,GACA8B,EAAA0D,gBAAA,QASA,MAAA6R,GAAA1S,EAAA9K,QAAAqZ,GAAA,MAAApR,EAAAsT,EAAAS,GASA,QAAAyB,KAGA,QAAAC,GAAApX,EAAApF,GAMA,MAJAyc,GAAA/c,KAAA0F,EAAA,KAAAsX,EAAAC,mBAEAH,GAAAC,EAAA/F,SAEA8F,EAAApX,EAAA,KAAApF,EARA,GAAAyc,KAUA,OAAAD,GAOA,QAAAI,GAAA/S,GAEA,MADAA,GAAA5E,IAAA,EACA4E,EAOA,QAAAgT,GAAAhT,GACA,GAAAilB,GAAA9rB,EAAAuF,cAAA,WAEA,KACA,QAAAsB,EAAAilB,GACA,MAAAltB,GACA,OAAA,EACA,QAEAktB,EAAAhiB,YACAgiB,EAAAhiB,WAAAC,YAAA+hB,GAGAA,EAAA,MASA,QAAA/R,GAAAlM,EAAAmM,GAIA,IAHA,GAAAhF,GAAAnH,EAAAvS,MAAA,KACAL,EAAA+Z,EAAAtZ,OAEAT,KACAye,EAAAO,WAAAjF,EAAA/Z,IAAA+e,EAUA,QAAAE,GAAAC,EAAAC,GACA,GAAAjZ,GAAAiZ,GAAAD,EACAE,EAAAlZ,GAAA,IAAAgZ,EAAApZ,UAAA,IAAAqZ,EAAArZ,UACAoZ,EAAAG,YAAAF,EAAAE,WAGA,IAAAD,EACA,MAAAA,EAIA,IAAAlZ,EACA,KAAAA,EAAAA,EAAAqZ,aACA,GAAArZ,IAAAiZ,EACA,OAAA,CAKA,OAAAD,GAAA,GAAA,EA6BA,QAAAyqE,GAAA3/D,GAGA,MAAA,UAAAnkB,GAKA,MAAA,QAAAA,GASAA,EAAAgJ,aAAA,IAAAhJ,EAAAmkB,SAGA,SAAAnkB,GACA,SAAAA,GAAAgJ,WACAhJ,EAAAgJ,WAAAmb,WAAAA,EAEAnkB,EAAAmkB,WAAAA,EAMAnkB,EAAA+jF,aAAA5/D,GAIAnkB,EAAA+jF,cAAA5/D,GACA6/D,GAAAhkF,KAAAmkB,EAGAnkB,EAAAmkB,WAAAA,EAKA,SAAAnkB,IACAA,EAAAmkB,WAAAA,GAYA,QAAAxK,GAAA5T,GACA,MAAA+S,GAAA,SAAAc,GAEA,MADAA,IAAAA,EACAd,EAAA,SAAA9B,EAAA9L,GAMA,IALA,GAAA9Q,GACAyf,EAAA9T,KAAAiR,EAAApc,OAAAgf,GACAzf,EAAA0f,EAAAjf,OAGAT,KACA6c,EAAA5c,EAAAyf,EAAA1f,MACA6c,EAAA5c,KAAA8Q,EAAA9Q,GAAA4c,EAAA5c,SAYA,QAAAke,GAAArV,GACA,MAAAA,QAAA,KAAAA,EAAAE,sBAAAF,EAyjCA,QAAA6W,MAuEA,QAAA1B,GAAA2B,GAIA,IAHA,GAAA5f,GAAA,EACA+a,EAAA6E,EAAAnf,OACAkL,EAAA,GACA3L,EAAA+a,EAAA/a,IACA2L,GAAAiU,EAAA5f,GAAA+B,KAEA,OAAA4J,GAGA,QAAAkU,GAAAC,EAAAC,EAAAC,GACA,GAAA7Z,GAAA4Z,EAAA5Z,IACA2jF,EAAA/pE,EAAAqM,KACAjlB,EAAA2iF,GAAA3jF,EACA8Z,EAAAD,GAAA,eAAA7Y,EACA+Y,EAAA3L,GAEA,OAAAwL,GAAApS,MAEA,SAAA9H,EAAAiD,EAAAqX,GACA,KAAAta,EAAAA,EAAAM,IACA,GAAA,IAAAN,EAAAC,UAAAma,EACA,MAAAH,GAAAja,EAAAiD,EAAAqX,EAGA,QAAA,GAIA,SAAAta,EAAAiD,EAAAqX,GACA,GAAAC,GAAAC,EAAAC,EACAC,GAAAC,EAAAN,EAGA,IAAAC,GACA,KAAAta,EAAAA,EAAAM,IACA,IAAA,IAAAN,EAAAC,UAAAma,IACAH,EAAAja,EAAAiD,EAAAqX,GACA,OAAA,MAKA,MAAAta,EAAAA,EAAAM,IACA,GAAA,IAAAN,EAAAC,UAAAma,EAOA,GANAK,EAAAza,EAAAmB,KAAAnB,EAAAmB,OAIAqZ,EAAAC,EAAAza,EAAA4a,YAAAH,EAAAza,EAAA4a,cAEAqpE,GAAAA,IAAAjkF,EAAAqD,SAAA5B,cACAzB,EAAAA,EAAAM,IAAAN,MACA,CAAA,IAAAua,EAAAC,EAAAlZ,KACAiZ,EAAA,KAAAI,GAAAJ,EAAA,KAAAF,EAGA,MAAAK,GAAA,GAAAH,EAAA,EAMA,IAHAC,EAAAlZ,GAAAoZ,EAGAA,EAAA,GAAAT,EAAAja,EAAAiD,EAAAqX,GACA,OAAA,EAMA,OAAA,GAIA,QAAAO,GAAAC,GACA,MAAAA,GAAAlgB,OAAA,EACA,SAAAoF,EAAAiD,EAAAqX,GAEA,IADA,GAAAngB,GAAA2gB,EAAAlgB,OACAT,KACA,IAAA2gB,EAAA3gB,GAAA6F,EAAAiD,EAAAqX,GACA,OAAA,CAGA,QAAA,GAEAQ,EAAA,GAGA,QAAAC,GAAAjV,EAAAkV,EAAAzE,GAGA,IAFA,GAAApc,GAAA,EACA+a,EAAA8F,EAAApgB,OACAT,EAAA+a,EAAA/a,IACA4c,EAAAjR,EAAAkV,EAAA7gB,GAAAoc,EAEA,OAAAA,GAGA,QAAA0E,GAAAC,EAAAzgB,EAAA0F,EAAA8C,EAAAqX,GAOA,IANA,GAAAta,GACAmb,KACAhhB,EAAA,EACA+a,EAAAgG,EAAAtgB,OACAwgB,EAAA,MAAA3gB,EAEAN,EAAA+a,EAAA/a,KACA6F,EAAAkb,EAAA/gB,MACAgG,IAAAA,EAAAH,EAAAiD,EAAAqX,KACAa,EAAAvf,KAAAoE,GACAob,GACA3gB,EAAAmB,KAAAzB,IAMA,OAAAghB,GAGA,QAAAE,GAAAC,EAAAxV,EAAAmU,EAAAsB,EAAAC,EAAAC,GAOA,MANAF,KAAAA,EAAApa,KACAoa,EAAAF,EAAAE,IAEAC,IAAAA,EAAAra,KACAqa,EAAAH,EAAAG,EAAAC,IAEA3C,EAAA,SAAA9B,EAAAT,EAAAtT,EAAAqX,GACA,GAAAzK,GAAA1V,EAAA6F,EACA0b,KACAC,KACAC,EAAArF,EAAA3b,OAGA4I,EAAAwT,GAAA+D,EAAAjV,GAAA,IAAA7C,EAAAhD,UAAAgD,GAAAA,MAGA4Y,GAAAP,IAAAtE,GAAAlR,EAEAtC,EADAyX,EAAAzX,EAAAkY,EAAAJ,EAAArY,EAAAqX,GAGAwB,EAAA7B,EAEAuB,IAAAxE,EAAAsE,EAAAM,GAAAL,MAMAhF,EACAsF,CAQA,IALA5B,GACAA,EAAA4B,EAAAC,EAAA7Y,EAAAqX,GAIAiB,EAMA,IALA1L,EAAAoL,EAAAa,EAAAH,GACAJ,EAAA1L,KAAA5M,EAAAqX,GAGAngB,EAAA0V,EAAAjV,OACAT,MACA6F,EAAA6P,EAAA1V,MACA2hB,EAAAH,EAAAxhB,MAAA0hB,EAAAF,EAAAxhB,IAAA6F,GAKA,IAAAgX,GACA,GAAAwE,GAAAF,EAAA,CACA,GAAAE,EAAA,CAIA,IAFA3L,KACA1V,EAAA2hB,EAAAlhB,OACAT,MACA6F,EAAA8b,EAAA3hB,KAEA0V,EAAAjU,KAAAigB,EAAA1hB,GAAA6F,EAGAwb,GAAA,KAAAM,KAAAjM,EAAAyK,GAKA,IADAngB,EAAA2hB,EAAAlhB,OACAT,MACA6F,EAAA8b,EAAA3hB,MACA0V,EAAA2L,EAAA5e,EAAAoa,EAAAhX,GAAA0b,EAAAvhB,KAAA,IAEA6c,EAAAnH,KAAA0G,EAAA1G,GAAA7P,SAOA8b,GAAAb,EACAa,IAAAvF,EACAuF,EAAA1gB,OAAAwgB,EAAAE,EAAAlhB,QACAkhB,GAEAN,EACAA,EAAA,KAAAjF,EAAAuF,EAAAxB,GAEA1e,EAAAE,MAAAya,EAAAuF,KAMA,QAAAC,GAAAhC,GAwBA,IAvBA,GAAAiC,GAAA/B,EAAA7f,EACA8a,EAAA6E,EAAAnf,OACAqhB,EAAArD,EAAAsD,SAAAnC,EAAA,GAAAva,MACA2c,EAAAF,GAAArD,EAAAsD,SAAA,KACA/hB,EAAA8hB,EAAA,EAAA,EAGAG,EAAApC,EAAA,SAAAha,GACA,MAAAA,KAAAgc,GACAG,GAAA,GACAE,EAAArC,EAAA,SAAAha,GACA,MAAApD,GAAAof,EAAAhc,IAAA,GACAmc,GAAA,GACArB,GAAA,SAAA9a,EAAAiD,EAAAqX,GACA,GAAAjc,IAAA4d,IAAA3B,GAAArX,IAAAqZ,MACAN,EAAA/Y,GAAAhD,SACAmc,EAAApc,EAAAiD,EAAAqX,GACA+B,EAAArc,EAAAiD,EAAAqX,GAGA,OADA0B,GAAA,KACA3d,IAGAlE,EAAA+a,EAAA/a,IACA,GAAA8f,EAAArB,EAAAsD,SAAAnC,EAAA5f,GAAAqF,MACAsb,GAAAd,EAAAa,EAAAC,GAAAb,QACA,CAIA,GAHAA,EAAArB,EAAAzY,OAAA4Z,EAAA5f,GAAAqF,MAAA1D,MAAA,KAAAie,EAAA5f,GAAA+Q,SAGA+O,EAAA9Y,GAAA,CAGA,IADA/G,IAAAD,EACAC,EAAA8a,IACA0D,EAAAsD,SAAAnC,EAAA3f,GAAAoF,MADApF,KAKA,MAAAihB,GACAlhB,EAAA,GAAA0gB,EAAAC,GACA3gB,EAAA,GAAAie,EAEA2B,EAAA7e,MAAA,EAAAf,EAAA,GAAAgB,QAAAe,MAAA,MAAA6d,EAAA5f,EAAA,GAAAqF,KAAA,IAAA,MACAxE,QAAAqZ,GAAA,MACA4F,EACA9f,EAAAC,GAAA2hB,EAAAhC,EAAA7e,MAAAf,EAAAC,IACAA,EAAA8a,GAAA6G,EAAAhC,EAAAA,EAAA7e,MAAAd,IACAA,EAAA8a,GAAAkD,EAAA2B,IAGAe,EAAAlf,KAAAqe,GAIA,MAAAY,GAAAC,GAGA,QAAAyB,GAAAC,EAAAC,GACA,GAAAC,GAAAD,EAAA7hB,OAAA,EACA+hB,EAAAH,EAAA5hB,OAAA,EACAgiB,EAAA,SAAA5F,EAAA/T,EAAAqX,EAAA/D,EAAAsG,GACA,GAAA7c,GAAA5F,EAAA6f,EACA6C,EAAA,EACA3iB,EAAA,IACA+gB,EAAAlE,MACA+F,KACAC,EAAAV,EAEA9Y,EAAAwT,GAAA2F,GAAA/D,EAAAqE,KAAA,IAAA,IAAAJ,GAEAK,EAAAvC,GAAA,MAAAqC,EAAA,EAAA7R,KAAAoK,UAAA,GACAL,EAAA1R,EAAA5I,MASA,KAPAiiB,IACAP,EAAArZ,IAAA/D,GAAA+D,GAAA4Z,GAMA1iB,IAAA+a,GAAA,OAAAlV,EAAAwD,EAAArJ,IAAAA,IAAA,CACA,GAAAwiB,GAAA3c,EAAA,CAMA,IALA5F,EAAA,EACA6I,GAAAjD,EAAAqF,gBAAAnG,IACAsY,EAAAxX,GACAsa,GAAA7C,GAEAwC,EAAAuC,EAAApiB,MACA,GAAA6f,EAAAja,EAAAiD,GAAA/D,EAAAob,GAAA,CACA/D,EAAA3a,KAAAoE,EACA,OAGA6c,IACAlC,EAAAuC,GAKAR,KAEA1c,GAAAia,GAAAja,IACA8c,IAIA9F,GACAkE,EAAAtf,KAAAoE,IAgBA,GATA8c,GAAA3iB,EASAuiB,GAAAviB,IAAA2iB,EAAA,CAEA,IADA1iB,EAAA,EACA6f,EAAAwC,EAAAriB,MACA6f,EAAAiB,EAAA6B,EAAA9Z,EAAAqX,EAGA,IAAAtD,EAAA,CAEA,GAAA8F,EAAA,EACA,KAAA3iB,KACA+gB,EAAA/gB,IAAA4iB,EAAA5iB,KACA4iB,EAAA5iB,GAAAgjB,EAAA5jB,KAAAgd,GAMAwG,GAAA9B,EAAA8B,GAIAnhB,EAAAE,MAAAya,EAAAwG,GAGAF,IAAA7F,GAAA+F,EAAAniB,OAAA,GACAkiB,EAAAL,EAAA7hB,OAAA,GAEAmc,EAAAqG,WAAA7G,GAUA,MALAsG,KACAlC,EAAAuC,EACAZ,EAAAU,GAGA9B,EAGA,OAAAwB,GACA5D,EAAA8D,GACAA,EA/gEA,GAAAziB,GACAgO,EACAyQ,EACAyE,EACAC,EACApF,EACAqF,EACA/E,EACA8D,EACAkB,EACAC,EAGAjG,EACAtY,EACAwe,EACAjG,EACAM,EACA4F,EACAzS,EACA/G,EAGAhD,EAAA,SAAA,EAAA,GAAAyV,MACAW,EAAAnY,EAAAF,SACAyb,EAAA,EACAjM,EAAA,EACAkP,EAAAnF,IACAoF,EAAApF,IACAX,EAAAW,IACAqF,EAAA,SAAAzE,EAAAC,GAIA,MAHAD,KAAAC,IACAmE,GAAA,GAEA,GAIAnkB,KAAA8D,eACA8W,KACAiJ,EAAAjJ,EAAAiJ,IACAY,EAAA7J,EAAAtY,KACAA,EAAAsY,EAAAtY,KACAV,EAAAgZ,EAAAhZ,MAGA0B,EAAA,SAAAohB,EAAAhe,GAGA,IAFA,GAAA7F,GAAA,EACA+a,EAAA8I,EAAApjB,OACAT,EAAA+a,EAAA/a,IACA,GAAA6jB,EAAA7jB,KAAA6F,EACA,MAAA7F,EAGA,QAAA,GAGA8jB,EAAA,6HAKAC,GAAA,sBAGAC,GAAA,gCAGAC,GAAA,MAAAF,GAAA,KAAAC,GAAA,OAAAD,GAEA,gBAAAA,GAEA,2DAAAC,GAAA,OAAAD,GACA,OAEAG,GAAA,KAAAF,GAAA,wFAKAC,GAAA,eAMAE,GAAA,GAAAC,QAAAL,GAAA,IAAA,KACA7J,GAAA,GAAAkK,QAAA,IAAAL,GAAA,8BAAAA,GAAA,KAAA,KAEAM,GAAA,GAAAD,QAAA,IAAAL,GAAA,KAAAA,GAAA,KACAO,GAAA,GAAAF,QAAA,IAAAL,GAAA,WAAAA,GAAA,IAAAA,GAAA,KAEAQ,GAAA,GAAAH,QAAA,IAAAL,GAAA,iBAAAA,GAAA,OAAA,KAEAS,GAAA,GAAAJ,QAAAF,IACAlG,GAAA,GAAAoG,QAAA,IAAAJ,GAAA,KAEAS,IACAC,GAAA,GAAAN,QAAA,MAAAJ,GAAA,KACAW,MAAA,GAAAP,QAAA,QAAAJ,GAAA,KACAY,IAAA,GAAAR,QAAA,KAAAJ,GAAA,SACAa,KAAA,GAAAT,QAAA,IAAAH,IACAa,OAAA,GAAAV,QAAA,IAAAF,IACAa,MAAA,GAAAX,QAAA,yDAAAL,GACA,+BAAAA,GAAA,cAAAA,GACA,aAAAA,GAAA,SAAA,KACAiB,KAAA,GAAAZ,QAAA,OAAAN,EAAA,KAAA,KAGAmB,aAAA,GAAAb,QAAA,IAAAL,GAAA,mDACAA,GAAA,mBAAAA,GAAA,mBAAA,MAGAmB,GAAA,sCACAC,GAAA,SAEAC,GAAA,yBAGA7H,GAAA,mCAEAW,GAAA,OAIAmH,GAAA,GAAAjB,QAAA,qBAAAL,GAAA,MAAAA,GAAA,OAAA,MACAuB,GAAA,SAAA5e,EAAA6e,EAAAC,GACA,GAAAC,GAAA,KAAAF,EAAA,KAIA,OAAAE,KAAAA,GAAAD,EACAD,EACAE,EAAA,EAEAC,OAAAC,aAAAF,EAAA,OAEAC,OAAAC,aAAAF,GAAA,GAAA,MAAA,KAAAA,EAAA,QAKAgkE,GAAA,sDACAC,GAAA,SAAAK,EAAAC,GACA,MAAAA,GAGA,OAAAD,EACA,IAIAA,EAAAhpF,MAAA,GAAA,GAAA,KAAAgpF,EAAAhwC,WAAAgwC,EAAAtpF,OAAA,GAAAwZ,SAAA,IAAA,IAIA,KAAA8vE,GAOAnkE,GAAA,WACAvI,KAGAwsE,GAAAhqE,EACA,SAAAha,GACA,OAAA,IAAAA,EAAAmkB,WAAA,QAAAnkB,IAAA,SAAAA,MAEAM,IAAA,aAAAimB,KAAA,UAIA,KACA3qB,EAAAE,MACAoY,EAAAhZ,EAAA3B,KAAAge,EAAAvS,YACAuS,EAAAvS,YAIAkP,EAAAqD,EAAAvS,WAAApK,QAAAqF,SACA,MAAAnC,GACAlC,GAAAE,MAAAoY,EAAAtZ,OAGA,SAAAqX,EAAA+N,GACAjC,EAAAjiB,MAAAmW,EAAA/W,EAAA3B,KAAAymB,KAKA,SAAA/N,EAAA+N,GAIA,IAHA,GAAA5lB,GAAA6X,EAAArX,OACAT,EAAA,EAEA8X,EAAA7X,KAAA4lB,EAAA7lB,OACA8X,EAAArX,OAAAR,EAAA,IAoVA+N,EAAA4O,EAAA5O,WAOAmV,EAAAvG,EAAAuG,MAAA,SAAAtd,GAGA,GAAA0J,GAAA1J,IAAAA,EAAAqF,eAAArF,GAAA0J,eACA,SAAAA,GAAA,SAAAA,EAAArG,UAQAmU,EAAAT,EAAAS,YAAA,SAAAxP,GACA,GAAAiY,GAAAmkE,EACAn8E,EAAAD,EAAAA,EAAA3C,eAAA2C,EAAAuP,CAGA,OAAAtP,KAAA/I,GAAA,IAAA+I,EAAAhI,UAAAgI,EAAAyB,iBAKAxK,EAAA+I,EACAyV,EAAAxe,EAAAwK,gBACA+N,GAAA6F,EAAApe,GAIAqY,IAAArY,IACAklF,EAAAllF,EAAA+U,cAAAmwE,EAAAjkE,MAAAikE,IAGAA,EAAAhkE,iBACAgkE,EAAAhkE,iBAAA,SAAAL,IAAA,GAGAqkE,EAAA/jE,aACA+jE,EAAA/jE,YAAA,WAAAN,KAUA5X,EAAAiW,WAAArF,EAAA,SAAAiS,GAEA,MADAA,GAAA1K,UAAA,KACA0K,EAAAtpB,aAAA,eAOAyG,EAAAhF,qBAAA4V,EAAA,SAAAiS,GAEA,MADAA,GAAAxmB,YAAAtF,EAAAqhB,cAAA,MACAyK,EAAA7nB,qBAAA,KAAAvI,SAIAuN,EAAAyP,uBAAA2H,GAAAxkB,KAAAmE,EAAA0Y,wBAMAzP,EAAAqY,QAAAzH,EAAA,SAAAiS,GAEA,MADAtN,GAAAlZ,YAAAwmB,GAAAhtB,GAAAmD,GACAjC,EAAAuhB,oBAAAvhB,EAAAuhB,kBAAAtf,GAAAvG,SAIAuN,EAAAqY,SACA5H,EAAAzY,OAAA,GAAA,SAAAnC,GACA,GAAA0iB,GAAA1iB,EAAAhD,QAAAwkB,GAAAC,GACA,OAAA,UAAAzf,GACA,MAAAA,GAAA0B,aAAA,QAAAgf,IAGA9H,EAAAqE,KAAA,GAAA,SAAAjf,EAAAiF,GACA,OAAA,KAAAA,EAAA0U,gBAAAF,EAAA,CACA,GAAAzX,GAAAiD,EAAA0U,eAAA3Z,EACA,OAAAgC,IAAAA,UAIA4Y,EAAAzY,OAAA,GAAA,SAAAnC,GACA,GAAA0iB,GAAA1iB,EAAAhD,QAAAwkB,GAAAC,GACA,OAAA,UAAAzf,GACA,GAAAgI,OAAA,KAAAhI,EAAA2gB,kBACA3gB,EAAA2gB,iBAAA,KACA,OAAA3Y,IAAAA,EAAA9L,QAAAwkB,IAMA9H,EAAAqE,KAAA,GAAA,SAAAjf,EAAAiF,GACA,OAAA,KAAAA,EAAA0U,gBAAAF,EAAA,CACA,GAAAzP,GAAA7N,EAAAqJ,EACAxD,EAAAiD,EAAA0U,eAAA3Z,EAEA,IAAAgC,EAAA,CAIA,IADAgI,EAAAhI,EAAA2gB,iBAAA,QACA3Y,EAAA9L,QAAA8B,EACA,OAAAgC,EAMA,KAFAwD,EAAAP,EAAAwd,kBAAAziB,GACA7D,EAAA,EACA6F,EAAAwD,EAAArJ,MAEA,IADA6N,EAAAhI,EAAA2gB,iBAAA,QACA3Y,EAAA9L,QAAA8B,EACA,OAAAgC,GAKA,YAMA4Y,EAAAqE,KAAA,IAAA9U,EAAAhF,qBACA,SAAAD,EAAAD,GACA,WAAA,KAAAA,EAAAE,qBACAF,EAAAE,qBAAAD,GAGAiF,EAAA0P,IACA5U,EAAAG,iBAAAF,OADA,IAKA,SAAAA,EAAAD,GACA,GAAAjD,GACAiE,KACA9J,EAAA,EAEAoc,EAAAtT,EAAAE,qBAAAD,EAGA,IAAA,MAAAA,EAAA,CACA,KAAAlD,EAAAuW,EAAApc,MACA,IAAA6F,EAAAC,UACAgE,EAAArI,KAAAoE,EAIA,OAAAiE,GAEA,MAAAsS,IAIAqC,EAAAqE,KAAA,MAAA9U,EAAAyP,wBAAA,SAAA0I,EAAArd,GACA,OAAA,KAAAA,EAAA2U,wBAAAH,EACA,MAAAxU,GAAA2U,uBAAA0I,IAUA3C,KAOA5F,MAEA5P,EAAA0P,IAAA0H,GAAAxkB,KAAAmE,EAAAkE,qBAGA2V,EAAA,SAAAiS,GAMAtN,EAAAlZ,YAAAwmB,GAAAnmB,UAAA,UAAA1D,EAAA,qBACAA,EAAA,kEAOA6pB,EAAA5nB,iBAAA,wBAAAxI,QACAmd,EAAAnc,KAAA,SAAAsiB,GAAA,gBAKA8M,EAAA5nB,iBAAA,cAAAxI,QACAmd,EAAAnc,KAAA,MAAAsiB,GAAA,aAAAD,EAAA,KAIA+M,EAAA5nB,iBAAA,QAAAjC,EAAA,MAAAvG,QACAmd,EAAAnc,KAAA,MAMAovB,EAAA5nB,iBAAA,YAAAxI,QACAmd,EAAAnc,KAAA,YAMAovB,EAAA5nB,iBAAA,KAAAjC,EAAA,MAAAvG,QACAmd,EAAAnc,KAAA,cAIAmd,EAAA,SAAAiS,GACAA,EAAAnmB,UAAA,mFAKA,IAAA+b,GAAA1hB,EAAAuF,cAAA,QACAmc,GAAA3I,aAAA,OAAA,UACA+S,EAAAxmB,YAAAoc,GAAA3I,aAAA,OAAA,KAIA+S,EAAA5nB,iBAAA,YAAAxI,QACAmd,EAAAnc,KAAA,OAAAsiB,GAAA,eAKA,IAAA8M,EAAA5nB,iBAAA,YAAAxI,QACAmd,EAAAnc,KAAA,WAAA,aAKA8hB,EAAAlZ,YAAAwmB,GAAA7G,UAAA,EACA,IAAA6G,EAAA5nB,iBAAA,aAAAxI,QACAmd,EAAAnc,KAAA,WAAA,aAIAovB,EAAA5nB,iBAAA,QACA2U,EAAAnc,KAAA,YAIAuM,EAAA0Y,gBAAAtB,GAAAxkB,KAAAmQ,EAAAwS,EAAAxS,SACAwS,EAAAoD,uBACApD,EAAAqD,oBACArD,EAAAsD,kBACAtD,EAAAuD,qBAEAlI,EAAA,SAAAiS,GAGA7iB,EAAA+Y,kBAAAhW,EAAA3R,KAAAyxB,EAAA,KAIA9f,EAAA3R,KAAAyxB,EAAA,aACArN,EAAA/hB,KAAA,KAAAyiB,MAIAtG,EAAAA,EAAAnd,QAAA,GAAA2jB,QAAAxG,EAAA1c,KAAA,MACAsiB,EAAAA,EAAA/iB,QAAA,GAAA2jB,QAAAZ,EAAAtiB,KAAA,MAIA4kB,EAAAV,GAAAxkB,KAAA2iB,EAAAyD,yBAKAhd,EAAA8b,GAAAV,GAAAxkB,KAAA2iB,EAAAvZ,UACA,SAAAkV,EAAAC,GACA,GAAA8H,GAAA,IAAA/H,EAAApZ,SAAAoZ,EAAA3P,gBAAA2P,EACAgI,EAAA/H,GAAAA,EAAAtQ,UACA,OAAAqQ,KAAAgI,MAAAA,GAAA,IAAAA,EAAAphB,YACAmhB,EAAAjd,SACAid,EAAAjd,SAAAkd,GACAhI,EAAA8H,yBAAA,GAAA9H,EAAA8H,wBAAAE,MAGA,SAAAhI,EAAAC,GACA,GAAAA,EACA,KAAAA,EAAAA,EAAAtQ,YACA,GAAAsQ,IAAAD,EACA,OAAA,CAIA,QAAA,GAOAyE,EAAAmC,EACA,SAAA5G,EAAAC,GAGA,GAAAD,IAAAC,EAEA,MADAmE,IAAA,EACA,CAIA,IAAA6D,IAAAjI,EAAA8H,yBAAA7H,EAAA6H,uBACA,OAAAG,KAKAA,GAAAjI,EAAAhU,eAAAgU,MAAAC,EAAAjU,eAAAiU,GACAD,EAAA8H,wBAAA7H,GAGA,EAGA,EAAAgI,IACAnZ,EAAAoZ,cAAAjI,EAAA6H,wBAAA9H,KAAAiI,EAGAjI,IAAAna,GAAAma,EAAAhU,gBAAAkS,GAAApT,EAAAoT,EAAA8B,IACA,EAEAC,IAAApa,GAAAoa,EAAAjU,gBAAAkS,GAAApT,EAAAoT,EAAA+B,GACA,EAIAkE,EACA5gB,EAAA4gB,EAAAnE,GAAAzc,EAAA4gB,EAAAlE,GACA,EAGA,EAAAgI,GAAA,EAAA,IAEA,SAAAjI,EAAAC,GAEA,GAAAD,IAAAC,EAEA,MADAmE,IAAA,EACA,CAGA,IAAApd,GACAlG,EAAA,EACAqnB,EAAAnI,EAAArQ,WACAqY,EAAA/H,EAAAtQ,WACAyY,GAAApI,GACAqI,GAAApI,EAGA,KAAAkI,IAAAH,EACA,MAAAhI,KAAAna,GAAA,EACAoa,IAAApa,EAAA,EACAsiB,GAAA,EACAH,EAAA,EACA7D,EACA5gB,EAAA4gB,EAAAnE,GAAAzc,EAAA4gB,EAAAlE,GACA,CAGA,IAAAkI,IAAAH,EACA,MAAAjI,GAAAC,EAAAC,EAKA,KADAjZ,EAAAgZ,EACAhZ,EAAAA,EAAA2I,YACAyY,EAAAnQ,QAAAjR,EAGA,KADAA,EAAAiZ,EACAjZ,EAAAA,EAAA2I,YACA0Y,EAAApQ,QAAAjR,EAIA,MAAAohB,EAAAtnB,KAAAunB,EAAAvnB,IACAA,GAGA,OAAAA,GAEAif,EAAAqI,EAAAtnB,GAAAunB,EAAAvnB,IAGAsnB,EAAAtnB,KAAAod,GAAA,EACAmK,EAAAvnB,KAAAod,EAAA,EACA,GAGArY,GA3YAA,GA8YA6X,EAAA7L,QAAA,SAAAyW,EAAAhiB,GACA,MAAAoX,GAAA4K,EAAA,KAAA,KAAAhiB,IAGAoX,EAAA8J,gBAAA,SAAA7gB,EAAA2hB,GASA,IAPA3hB,EAAAqF,eAAArF,KAAAd,GACAsY,EAAAxX,GAIA2hB,EAAAA,EAAA3mB,QAAA0jB,GAAA,UAEAvW,EAAA0Y,iBAAApJ,IACAK,EAAA6J,EAAA,QACAhE,IAAAA,EAAA5iB,KAAA4mB,OACA5J,IAAAA,EAAAhd,KAAA4mB,IAEA,IACA,GAAAtjB,GAAA6M,EAAA3R,KAAAyG,EAAA2hB,EAGA,IAAAtjB,GAAA8J,EAAA+Y,mBAGAlhB,EAAAd,UAAA,KAAAc,EAAAd,SAAAe,SACA,MAAA5B,GAEA,MAAAP,IAGA,MAAAiZ,GAAA4K,EAAAziB,EAAA,MAAAc,IAAApF,OAAA,GAGAmc,EAAA5S,SAAA,SAAAlB,EAAAjD,GAKA,OAHAiD,EAAAoC,eAAApC,KAAA/D,GACAsY,EAAAvU,GAEAkB,EAAAlB,EAAAjD,IAGA+W,EAAA6K,KAAA,SAAA5hB,EAAAvG,IAEAuG,EAAAqF,eAAArF,KAAAd,GACAsY,EAAAxX,EAGA,IAAA+F,GAAA6S,EAAAO,WAAA1f,EAAAgI,eAEAgK,EAAA1F,GAAAzM,EAAAC,KAAAqf,EAAAO,WAAA1f,EAAAgI,eACAsE,EAAA/F,EAAAvG,GAAAge,OACAhZ,EAEA,YAAAA,KAAAgN,EACAA,EACAtD,EAAAiW,aAAA3G,EACAzX,EAAA0B,aAAAjI,IACAgS,EAAAzL,EAAA2gB,iBAAAlnB,KAAAgS,EAAAoW,UACApW,EAAAvP,MACA,MAGA6a,EAAAmiD,OAAA,SAAAnrC,GACA,OAAAA,EAAA,IAAA/yB,QAAA4oF,GAAAC,KAGA9sE,EAAApD,MAAA,SAAA8B,GACA,KAAA,IAAAjZ,OAAA,0CAAAiZ,IAOAsB,EAAAqG,WAAA,SAAA7G,GACA,GAAAvW,GACA8hB,KACA1nB,EAAA,EACAD,EAAA,CAOA,IAJAsjB,GAAAtV,EAAA4Z,iBACAvE,GAAArV,EAAA6Z,YAAAzL,EAAArb,MAAA,GACAqb,EAAApB,KAAA2I,GAEAL,EAAA,CACA,KAAAzd,EAAAuW,EAAApc,MACA6F,IAAAuW,EAAApc,KACAC,EAAA0nB,EAAAlmB,KAAAzB,GAGA,MAAAC,KACAmc,EAAAnb,OAAA0mB,EAAA1nB,GAAA,GAQA,MAFAojB,GAAA,KAEAjH,GAOA8G,EAAAtG,EAAAsG,QAAA,SAAArd,GACA,GAAAgI,GACA3J,EAAA,GACAlE,EAAA,EACA8F,EAAAD,EAAAC,QAEA,IAAAA,GAMA,GAAA,IAAAA,GAAA,IAAAA,GAAA,KAAAA,EAAA,CAGA,GAAA,gBAAAD,GAAAkF,YACA,MAAAlF,GAAAkF,WAGA,KAAAlF,EAAAA,EAAAiF,WAAAjF,EAAAA,EAAAA,EAAA0Z,YACArb,GAAAgf,EAAArd,OAGA,IAAA,IAAAC,GAAA,IAAAA,EACA,MAAAD,GAAAiiB,cAhBA,MAAAja,EAAAhI,EAAA7F,MAEAkE,GAAAgf,EAAArV,EAkBA,OAAA3J,IAGAua,EAAA7B,EAAAmL,WAGArJ,YAAA,GAEAsJ,aAAArJ,EAEAnY,MAAAie,GAEAzF,cAEA8D,QAEAf,UACAkG,KAAA9hB,IAAA,aAAAwH,OAAA,GACAua,KAAA/hB,IAAA,cACAgiB,KAAAhiB,IAAA,kBAAAwH,OAAA,GACAya,KAAAjiB,IAAA,oBAGAgb,WACA0D,KAAA,SAAAre,GAUA,MATAA,GAAA,GAAAA,EAAA,GAAA3F,QAAAwkB,GAAAC,IAGA9e,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAA,IAAA3F,QAAAwkB,GAAAC,IAEA,OAAA9e,EAAA,KACAA,EAAA,GAAA,IAAAA,EAAA,GAAA,KAGAA,EAAAzF,MAAA,EAAA,IAGAgkB,MAAA,SAAAve,GA6BA,MAlBAA,GAAA,GAAAA,EAAA,GAAAc,cAEA,QAAAd,EAAA,GAAAzF,MAAA,EAAA,IAEAyF,EAAA,IACAoW,EAAApD,MAAAhT,EAAA,IAKAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAA,GAAA,GAAA,SAAAA,EAAA,IAAA,QAAAA,EAAA,KACAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAAA,QAAAA,EAAA,KAGAA,EAAA,IACAoW,EAAApD,MAAAhT,EAAA,IAGAA,GAGAse,OAAA,SAAAte,GACA,GAAA6hB,GACAC,GAAA9hB,EAAA,IAAAA,EAAA,EAEA,OAAAie,IAAA,MAAA7jB,KAAA4F,EAAA,IACA,MAIAA,EAAA,GACAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAA,GAGA8hB,GAAA9D,GAAA5jB,KAAA0nB,KAEAD,EAAAtK,EAAAuK,GAAA,MAEAD,EAAAC,EAAA7lB,QAAA,IAAA6lB,EAAA7nB,OAAA4nB,GAAAC,EAAA7nB,UAGA+F,EAAA,GAAAA,EAAA,GAAAzF,MAAA,EAAAsnB,GACA7hB,EAAA,GAAA8hB,EAAAvnB,MAAA,EAAAsnB,IAIA7hB,EAAAzF,MAAA,EAAA,MAIAiF,QAEA4e,IAAA,SAAA2D,GACA,GAAArf,GAAAqf,EAAA1nB,QAAAwkB,GAAAC,IAAAhe,aACA,OAAA,MAAAihB,EACA,WAAA,OAAA,GACA,SAAA1iB,GACA,MAAAA,GAAAqD,UAAArD,EAAAqD,SAAA5B,gBAAA4B,IAIAyb,MAAA,SAAAwB,GACA,GAAAqC,GAAA/E,EAAA0C,EAAA,IAEA,OAAAqC,KACAA,EAAA,GAAApE,QAAA,MAAAL,GAAA,IAAAoC,EAAA,IAAApC,GAAA,SACAN,EAAA0C,EAAA,SAAAtgB,GACA,MAAA2iB,GAAA5nB,KAAA,gBAAAiF,GAAAsgB,WAAAtgB,EAAAsgB,eAAA,KAAAtgB,EAAA0B,cAAA1B,EAAA0B,aAAA,UAAA,OAIAsd,KAAA,SAAAvlB,EAAAmpB,EAAAC,GACA,MAAA,UAAA7iB,GACA,GAAAmP,GAAA4H,EAAA6K,KAAA5hB,EAAAvG,EAEA,OAAA,OAAA0V,EACA,OAAAyT,GAEAA,IAIAzT,GAAA,GAEA,MAAAyT,EAAAzT,IAAA0T,EACA,OAAAD,EAAAzT,IAAA0T,EACA,OAAAD,EAAAC,GAAA,IAAA1T,EAAAvS,QAAAimB,GACA,OAAAD,EAAAC,GAAA1T,EAAAvS,QAAAimB,IAAA,EACA,OAAAD,EAAAC,GAAA1T,EAAAjU,OAAA2nB,EAAAjoB,UAAAioB,EACA,OAAAD,GAAA,IAAAzT,EAAAnU,QAAAsjB,GAAA,KAAA,KAAA1hB,QAAAimB,IAAA,EACA,OAAAD,IAAAzT,IAAA0T,GAAA1T,EAAAjU,MAAA,EAAA2nB,EAAAjoB,OAAA,KAAAioB,EAAA,QAKA3D,MAAA,SAAA1f,EAAAsjB,EAAAlJ,EAAA9R,EAAAmN,GACA,GAAA8N,GAAA,QAAAvjB,EAAAtE,MAAA,EAAA,GACA8nB,EAAA,SAAAxjB,EAAAtE,OAAA,GACA+nB,EAAA,YAAAH,CAEA,OAAA,KAAAhb,GAAA,IAAAmN,EAGA,SAAAjV,GACA,QAAAA,EAAAgJ,YAGA,SAAAhJ,EAAAiD,EAAAqX,GACA,GAAA5B,GAAA8B,EAAAC,EAAAzS,EAAAkb,EAAApgB,EACAxC,EAAAyiB,IAAAC,EAAA,cAAA,kBACA9C,EAAAlgB,EAAAgJ,WACAvP,EAAAwpB,GAAAjjB,EAAAqD,SAAA5B,cACA0hB,GAAA7I,IAAA2I,EACA1J,GAAA,CAEA,IAAA2G,EAAA,CAGA,GAAA6C,EAAA,CACA,KAAAziB,GAAA,CAEA,IADA0H,EAAAhI,EACAgI,EAAAA,EAAA1H,IACA,GAAA2iB,EACAjb,EAAA3E,SAAA5B,gBAAAhI,EACA,IAAAuO,EAAA/H,SAEA,OAAA,CAIA6C,GAAAxC,EAAA,SAAAd,IAAAsD,GAAA,cAEA,OAAA,EAMA,GAHAA,GAAAkgB,EAAA9C,EAAAjb,WAAAib,EAAAnb,WAGAie,GAAAG,GAkBA,IAbAnb,EAAAkY,EACAzF,EAAAzS,EAAA7G,KAAA6G,EAAA7G,OAIAqZ,EAAAC,EAAAzS,EAAA4S,YACAH,EAAAzS,EAAA4S,cAEAlC,EAAA8B,EAAAhb,OACA0jB,EAAAxK,EAAA,KAAAiC,GAAAjC,EAAA,GACAa,EAAA2J,GAAAxK,EAAA,GACA1Q,EAAAkb,GAAAhD,EAAAlb,WAAAke,GAEAlb,IAAAkb,GAAAlb,GAAAA,EAAA1H,KAGAiZ,EAAA2J,EAAA,IAAApgB,EAAAqa,OAGA,GAAA,IAAAnV,EAAA/H,YAAAsZ,GAAAvR,IAAAhI,EAAA,CACAwa,EAAAhb,IAAAmb,EAAAuI,EAAA3J,EACA,YAuBA,IAjBA4J,IAEAnb,EAAAhI,EACAya,EAAAzS,EAAA7G,KAAA6G,EAAA7G,OAIAqZ,EAAAC,EAAAzS,EAAA4S,YACAH,EAAAzS,EAAA4S,cAEAlC,EAAA8B,EAAAhb,OACA0jB,EAAAxK,EAAA,KAAAiC,GAAAjC,EAAA,GACAa,EAAA2J,IAKA,IAAA3J,EAEA,MAAAvR,IAAAkb,GAAAlb,GAAAA,EAAA1H,KACAiZ,EAAA2J,EAAA,IAAApgB,EAAAqa,UAEA8F,EACAjb,EAAA3E,SAAA5B,gBAAAhI,EACA,IAAAuO,EAAA/H,cACAsZ,IAGA4J,IACA1I,EAAAzS,EAAA7G,KAAA6G,EAAA7G,OAIAqZ,EAAAC,EAAAzS,EAAA4S,YACAH,EAAAzS,EAAA4S,cAEAJ,EAAAhb,IAAAmb,EAAApB,IAGAvR,IAAAhI,MAUA,OADAuZ,GAAAtE,KACAnN,GAAAyR,EAAAzR,GAAA,GAAAyR,EAAAzR,GAAA,KAKAmX,OAAA,SAAAmE,EAAAxJ,GAKA,GAAAne,GACAsK,EAAA6S,EAAAyF,QAAA+E,IAAAxK,EAAAkB,WAAAsJ,EAAA3hB,gBACAsV,EAAApD,MAAA,uBAAAyP,EAKA,OAAArd,GAAA5E,GACA4E,EAAA6T,GAIA7T,EAAAnL,OAAA,GACAa,GAAA2nB,EAAAA,EAAA,GAAAxJ,GACAhB,EAAAkB,WAAA1c,eAAAgmB,EAAA3hB,eACAqX,EAAA,SAAA9B,EAAA9L,GAIA,IAHA,GAAAmY,GACAC,EAAAvd,EAAAiR,EAAA4C,GACAzf,EAAAmpB,EAAA1oB,OACAT,KACAkpB,EAAAzmB,EAAAoa,EAAAsM,EAAAnpB,IACA6c,EAAAqM,KAAAnY,EAAAmY,GAAAC,EAAAnpB,MAGA,SAAA6F,GACA,MAAA+F,GAAA/F,EAAA,EAAAvE,KAIAsK,IAIAsY,SAEAxe,IAAAiZ,EAAA,SAAAhT,GAIA,GAAA8a,MACArK,KACA0D,EAAAsD,EAAAzX,EAAA9K,QAAAqZ,GAAA,MAEA,OAAA4F,GAAA9Y,GACA2X,EAAA,SAAA9B,EAAA9L,EAAAjI,EAAAqX,GAMA,IALA,GAAAta,GACAkb,EAAAjB,EAAAjD,EAAA,KAAAsD,MACAngB,EAAA6c,EAAApc,OAGAT,MACA6F,EAAAkb,EAAA/gB,MACA6c,EAAA7c,KAAA+Q,EAAA/Q,GAAA6F,MAIA,SAAAA,EAAAiD,EAAAqX,GAKA,MAJAsG,GAAA,GAAA5gB,EACAia,EAAA2G,EAAA,KAAAtG,EAAA/D,GAEAqK,EAAA,GAAA,MACArK,EAAA4G,SAIAoG,IAAAzK,EAAA,SAAAhT,GACA,MAAA,UAAA9F,GACA,MAAA+W,GAAAjR,EAAA9F,GAAApF,OAAA,KAIAuJ,SAAA2U,EAAA,SAAA3C,GAEA,MADAA,GAAAA,EAAAnb,QAAAwkB,GAAAC,IACA,SAAAzf,GACA,OAAAA,EAAAkF,aAAAlF,EAAAwjB,WAAAnG,EAAArd,IAAApD,QAAAuZ,IAAA,KAWAsN,KAAA3K,EAAA,SAAA2K,GAMA,MAJAtL,IAAApd,KAAA0oB,GAAA,KACA1M,EAAApD,MAAA,qBAAA8P,GAEAA,EAAAA,EAAAzoB,QAAAwkB,GAAAC,IAAAhe,cACA,SAAAzB,GACA,GAAA0jB,EACA,IACA,GAAAA,EAAAjM,EACAzX,EAAAyjB,KACAzjB,EAAA0B,aAAA,aAAA1B,EAAA0B,aAAA,QAGA,OADAgiB,EAAAA,EAAAjiB,iBACAgiB,GAAA,IAAAC,EAAA9mB,QAAA6mB,EAAA,YAEAzjB,EAAAA,EAAAgJ,aAAA,IAAAhJ,EAAAC,SACA,QAAA,KAKAgS,OAAA,SAAAjS,GACA,GAAA2jB,GAAAvkB,EAAAwkB,UAAAxkB,EAAAwkB,SAAAD,IACA,OAAAA,IAAAA,EAAAzoB,MAAA,KAAA8E,EAAAhC,IAGA6lB,KAAA,SAAA7jB,GACA,MAAAA,KAAA0d,GAGAoG,MAAA,SAAA9jB,GACA,MAAAA,KAAAd,EAAAwG,iBAAAxG,EAAA6kB,UAAA7kB,EAAA6kB,gBAAA/jB,EAAAR,MAAAQ,EAAAgkB,OAAAhkB,EAAAikB,WAIAC,QAAA4/D,GAAA,GACA3/D,SAAA2/D,GAAA,GAEAp8E,QAAA,SAAA1H,GAGA,GAAAqD,GAAArD,EAAAqD,SAAA5B,aACA,OAAA,UAAA4B,KAAArD,EAAA0H,SAAA,WAAArE,KAAArD,EAAA0R,UAGAA,SAAA,SAAA1R,GAOA,MAJAA,GAAAgJ,YACAhJ,EAAAgJ,WAAAob,eAGA,IAAApkB,EAAA0R,UAIAxD,MAAA,SAAAlO,GAKA,IAAAA,EAAAA,EAAAiF,WAAAjF,EAAAA,EAAAA,EAAA0Z,YACA,GAAA1Z,EAAAC,SAAA,EACA,OAAA,CAGA,QAAA,GAGAigB,OAAA,SAAAlgB,GACA,OAAA4Y,EAAAyF,QAAA,MAAAre,IAIAqkB,OAAA,SAAArkB,GACA,MAAAsf,IAAAvkB,KAAAiF,EAAAqD,WAGAud,MAAA,SAAA5gB,GACA,MAAAqf,IAAAtkB,KAAAiF,EAAAqD,WAGAihB,OAAA,SAAAtkB,GACA,GAAAvG,GAAAuG,EAAAqD,SAAA5B,aACA,OAAA,UAAAhI,GAAA,WAAAuG,EAAAR,MAAA,WAAA/F,GAGA0c,KAAA,SAAAnW,GACA,GAAA4hB,EACA,OAAA,UAAA5hB,EAAAqD,SAAA5B,eACA,SAAAzB,EAAAR,OAIA,OAAAoiB,EAAA5hB,EAAA0B,aAAA,UAAA,SAAAkgB,EAAAngB,gBAIAqG,MAAA6R,EAAA,WACA,OAAA,KAGA1E,KAAA0E,EAAA,SAAAE,EAAAjf,GACA,OAAAA,EAAA,KAGA2N,GAAAoR,EAAA,SAAAE,EAAAjf,EAAAgf,GACA,OAAAA,EAAA,EAAAA,EAAAhf,EAAAgf,KAGA2K,KAAA5K,EAAA,SAAAE,EAAAjf,GAEA,IADA,GAAAT,GAAA,EACAA,EAAAS,EAAAT,GAAA,EACA0f,EAAAje,KAAAzB,EAEA,OAAA0f,KAGA2K,IAAA7K,EAAA,SAAAE,EAAAjf,GAEA,IADA,GAAAT,GAAA,EACAA,EAAAS,EAAAT,GAAA,EACA0f,EAAAje,KAAAzB,EAEA,OAAA0f,KAGA4K,GAAA9K,EAAA,SAAAE,EAAAjf,EAAAgf,GAEA,IADA,GAAAzf,GAAAyf,EAAA,EAAAA,EAAAhf,EAAAgf,IACAzf,GAAA,GACA0f,EAAAje,KAAAzB,EAEA,OAAA0f,KAGA6K,GAAA/K,EAAA,SAAAE,EAAAjf,EAAAgf,GAEA,IADA,GAAAzf,GAAAyf,EAAA,EAAAA,EAAAhf,EAAAgf,IACAzf,EAAAS,GACAif,EAAAje,KAAAzB,EAEA,OAAA0f,OAKAjB,EAAAyF,QAAA,IAAAzF,EAAAyF,QAAA,EAGA,KAAAlkB,KAAAwqB,OAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,OAAA,GACAnM,EAAAyF,QAAAlkB,GAxpCA,SAAAqF,GACA,MAAA,UAAAQ,GAEA,MAAA,UADAA,EAAAqD,SAAA5B,eACAzB,EAAAR,OAAAA,IAqpCArF,EAEA,KAAAA,KAAA6qB,QAAA,EAAAC,OAAA,GACArM,EAAAyF,QAAAlkB,GAhpCA,SAAAqF,GACA,MAAA,UAAAQ,GACA,GAAAvG,GAAAuG,EAAAqD,SAAA5B,aACA,QAAA,UAAAhI,GAAA,WAAAA,IAAAuG,EAAAR,OAAAA,IA6oCArF,EAmnBA,OA9mBA2f,GAAA3c,UAAAyb,EAAAsM,QAAAtM,EAAAyF,QACAzF,EAAAkB,WAAA,GAAAA,GAEA5B,EAAAnB,EAAAmB,SAAA,SAAApS,EAAAqf,GACA,GAAA7B,GAAA3iB,EAAAoZ,EAAAva,EACA4lB,EAAAhO,EAAAiO,EACAC,EAAAzH,EAAA/X,EAAA,IAEA,IAAAwf,EACA,MAAAH,GAAA,EAAAG,EAAApqB,MAAA,EAOA,KAJAkqB,EAAAtf,EACAsR,KACAiO,EAAAzM,EAAA0C,UAEA8J,GAAA,CAGA9B,KAAA3iB,EAAA6d,GAAA5b,KAAAwiB,MACAzkB,IAEAykB,EAAAA,EAAAlqB,MAAAyF,EAAA,GAAA/F,SAAAwqB,GAEAhO,EAAAxb,KAAAme,OAGAuJ,GAAA,GAGA3iB,EAAA8d,GAAA7b,KAAAwiB,MACA9B,EAAA3iB,EAAAiS,QACAmH,EAAAne,MACAM,MAAAonB,EAEA9jB,KAAAmB,EAAA,GAAA3F,QAAAqZ,GAAA,OAEA+Q,EAAAA,EAAAlqB,MAAAooB,EAAA1oB,QAIA,KAAA4E,IAAAoZ,GAAAzY,SACAQ,EAAAie,GAAApf,GAAAoD,KAAAwiB,KAAAC,EAAA7lB,MACAmB,EAAA0kB,EAAA7lB,GAAAmB,MACA2iB,EAAA3iB,EAAAiS,QACAmH,EAAAne,MACAM,MAAAonB,EACA9jB,KAAAA,EACA0L,QAAAvK,IAEAykB,EAAAA,EAAAlqB,MAAAooB,EAAA1oB,QAIA,KAAA0oB,EACA,MAOA,MAAA6B,GACAC,EAAAxqB,OACAwqB,EACArO,EAAApD,MAAA7N,GAEA+X,EAAA/X,EAAAsR,GAAAlc,MAAA,IA+XAqiB,EAAAxG,EAAAwG,QAAA,SAAAzX,EAAAnF,GACA,GAAAxG,GACAsiB,KACAD,KACA8I,EAAAxN,EAAAhS,EAAA,IAEA,KAAAwf,EAAA,CAMA,IAJA3kB,IACAA,EAAAuX,EAAApS,IAEA3L,EAAAwG,EAAA/F,OACAT,KACAmrB,EAAAvJ,EAAApb,EAAAxG,IACAmrB,EAAAnkB,GACAsb,EAAA7gB,KAAA0pB,GAEA9I,EAAA5gB,KAAA0pB,EAKAA,GAAAxN,EAAAhS,EAAAyW,EAAAC,EAAAC,IAGA6I,EAAAxf,SAAAA,EAEA,MAAAwf,IAYA9M,EAAAzB,EAAAyB,OAAA,SAAA1S,EAAA7C,EAAAsT,EAAAS,GACA,GAAA7c,GAAA4f,EAAAwL,EAAA/lB,EAAAyd,EACAuI,EAAA,kBAAA1f,IAAAA,EACAnF,GAAAqW,GAAAkB,EAAApS,EAAA0f,EAAA1f,UAAAA,EAMA,IAJAyQ,EAAAA,MAIA,IAAA5V,EAAA/F,OAAA,CAIA,GADAmf,EAAApZ,EAAA,GAAAA,EAAA,GAAAzF,MAAA,GACA6e,EAAAnf,OAAA,GAAA,QAAA2qB,EAAAxL,EAAA,IAAAva,MACA,IAAAyD,EAAAhD,UAAAwX,GAAAmB,EAAAsD,SAAAnC,EAAA,GAAAva,MAAA,CAGA,KADAyD,GAAA2V,EAAAqE,KAAA,GAAAsI,EAAAra,QAAA,GAAAlQ,QAAAwkB,GAAAC,IAAAxc,QAAA,IAEA,MAAAsT,EAGAiP,KACAviB,EAAAA,EAAA+F,YAGAlD,EAAAA,EAAA5K,MAAA6e,EAAAnH,QAAA1W,MAAAtB,QAKA,IADAT,EAAAykB,GAAA,aAAA7jB,KAAA+K,GAAA,EAAAiU,EAAAnf,OACAT,MACAorB,EAAAxL,EAAA5f,IAGAye,EAAAsD,SAAA1c,EAAA+lB,EAAA/lB,QAGA,IAAAyd,EAAArE,EAAAqE,KAAAzd,MAEAwX,EAAAiG,EACAsI,EAAAra,QAAA,GAAAlQ,QAAAwkB,GAAAC,IACApH,GAAAtd,KAAAgf,EAAA,GAAAva,OAAA8Y,EAAArV,EAAA+F,aAAA/F,IACA,CAKA,GAFA8W,EAAA3e,OAAAjB,EAAA,KACA2L,EAAAkR,EAAApc,QAAAwd,EAAA2B,IAGA,MADAne,GAAAE,MAAAya,EAAAS,GACAT,CAGA,QAeA,OAPAiP,GAAAjI,EAAAzX,EAAAnF,IACAqW,EACA/T,GACAwU,EACAlB,GACAtT,GAAAoV,GAAAtd,KAAA+K,IAAAwS,EAAArV,EAAA+F,aAAA/F,GAEAsT,GAMApO,EAAA6Z,WAAA7gB,EAAA3G,MAAA,IAAA2a,KAAA2I,GAAAziB,KAAA,MAAA8F,EAIAgH,EAAA4Z,mBAAAtE,EAGAjG,IAIArP,EAAAoZ,aAAAxI,EAAA,SAAAiS,GAEA,MAAA,GAAAA,EAAA7J,wBAAAjiB,EAAAuF,cAAA,eAMAsU,EAAA,SAAAiS,GAEA,MADAA,GAAAnmB,UAAA,mBACA,MAAAmmB,EAAA/lB,WAAAvD,aAAA,WAEAuX,EAAA,yBAAA,SAAAjZ,EAAAvG,EAAA6jB,GACA,IAAAA,EACA,MAAAtd,GAAA0B,aAAAjI,EAAA,SAAAA,EAAAgI,cAAA,EAAA,KAOA0G,EAAAiW,YAAArF,EAAA,SAAAiS,GAGA,MAFAA,GAAAnmB,UAAA,WACAmmB,EAAA/lB,WAAAgT,aAAA,QAAA,IACA,KAAA+S,EAAA/lB,WAAAvD,aAAA,YAEAuX,EAAA,QAAA,SAAAjZ,EAAAvG,EAAA6jB,GACA,IAAAA,GAAA,UAAAtd,EAAAqD,SAAA5B,cACA,MAAAzB,GAAA2H,eAOAoR,EAAA,SAAAiS,GACA,MAAA,OAAAA,EAAAtpB,aAAA,eAEAuX,EAAAgF,EAAA,SAAAje,EAAAvG,EAAA6jB,GACA,GAAA7R,EACA,KAAA6R,EACA,OAAA,IAAAtd,EAAAvG,GAAAA,EAAAgI,eACAgK,EAAAzL,EAAA2gB,iBAAAlnB,KAAAgS,EAAAoW,UACApW,EAAAvP,MACA,OAKA6a,GAEA3X,EAIAL,IAAAke,KAAAlG,GACAhY,GAAA4iB,KAAA5K,GAAAmL,UAGAnjB,GAAA4iB,KAAA,KAAA5iB,GAAA4iB,KAAAtD,QACAtf,GAAAqe,WAAAre,GAAA2mB,OAAA3O,GAAAqG,WACAre,GAAAoX,KAAAY,GAAAsG,QACAte,GAAA4mB,SAAA5O,GAAAuG,MACAve,GAAAoF,SAAA4S,GAAA5S,SACApF,GAAAslF,eAAAttE,GAAAmiD,MAKA,IAAA54D,IAAA,SAAAN,EAAAM,EAAAslB,GAIA,IAHA,GAAAtC,MACAuC,MAAApnB,KAAAmnB,GAEA5lB,EAAAA,EAAAM,KAAA,IAAAN,EAAAC,UACA,GAAA,IAAAD,EAAAC,SAAA,CACA,GAAA4lB,GAAA9mB,GAAAiB,GAAA8lB,GAAAF,GACA,KAEAtC,GAAA1nB,KAAAoE,GAGA,MAAAsjB,IAIAyC,GAAA,SAAAroB,EAAAsC,GAGA,IAFA,GAAAsjB,MAEA5lB,EAAAA,EAAAA,EAAAgc,YACA,IAAAhc,EAAAuC,UAAAvC,IAAAsC,GACAsjB,EAAA1nB,KAAA8B,EAIA,OAAA4lB,IAIA0C,GAAAjnB,GAAA4iB,KAAAhhB,MAAAye,aASA6G,GAAA,iEA8BAlnB,IAAAoB,OAAA,SAAAwhB,EAAAne,EAAA3D,GACA,GAAAG,GAAAwD,EAAA,EAMA,OAJA3D,KACA8hB,EAAA,QAAAA,EAAA,KAGA,IAAAne,EAAA5I,QAAA,IAAAoF,EAAAC,SACAlB,GAAAke,KAAA4D,gBAAA7gB,EAAA2hB,IAAA3hB,MAGAjB,GAAAke,KAAA/R,QAAAyW,EAAA5iB,GAAAgB,KAAAyD,EAAA,SAAAxD,GACA,MAAA,KAAAA,EAAAC,aAIAlB,GAAAgH,GAAAwB,QACA0V,KAAA,SAAAnX,GACA,GAAA3L,GAAAkE,EACA6W,EAAA7V,KAAAzE,OACA0N,EAAAjJ,IAEA,IAAA,gBAAAyG,GACA,MAAAzG,MAAA0V,UAAAhW,GAAA+G,GAAA3F,OAAA,WACA,IAAAhG,EAAA,EAAAA,EAAA+a,EAAA/a,IACA,GAAA4E,GAAAoF,SAAAmE,EAAAnO,GAAAkF,MACA,OAAA,IAQA,KAFAhB,EAAAgB,KAAA0V,cAEA5a,EAAA,EAAAA,EAAA+a,EAAA/a,IACA4E,GAAAke,KAAAnX,EAAAwC,EAAAnO,GAAAkE,EAGA,OAAA6W,GAAA,EAAAnW,GAAAqe,WAAA/e,GAAAA,GAEA8B,OAAA,SAAA2F,GACA,MAAAzG,MAAA0V,UAAArV,EAAAL,KAAAyG,OAAA,KAEAjG,IAAA,SAAAiG,GACA,MAAAzG,MAAA0V,UAAArV,EAAAL,KAAAyG,OAAA,KAEAggB,GAAA,SAAAhgB,GACA,QAAApG,EACAL,KAIA,gBAAAyG,IAAAkgB,GAAAjrB,KAAA+K,GACA/G,GAAA+G,GACAA,OACA,GACAlL,SASA,IAAAsrB,IAMAxO,GAAA,uCAEA3Y,GAAAgH,GAAAyG,KAAA,SAAA1G,EAAA7C,EAAA4gB,GACA,GAAAljB,GAAAX,CAGA,KAAA8F,EACA,MAAAzG,KAQA,IAHAwkB,EAAAA,GAAAqC,GAGA,gBAAApgB,GAAA,CAaA,KAPAnF,EALA,MAAAmF,EAAA,IACA,MAAAA,EAAAA,EAAAlL,OAAA,IACAkL,EAAAlL,QAAA,GAGA,KAAAkL,EAAA,MAGA4R,GAAA9U,KAAAkD,MAIAnF,EAAA,IAAAsC,EA6CA,OAAAA,GAAAA,EAAA0R,QACA1R,GAAA4gB,GAAA5G,KAAAnX,GAKAzG,KAAAuV,YAAA3R,GAAAga,KAAAnX,EAhDA,IAAAnF,EAAA,GAAA,CAYA,GAXAsC,EAAAA,YAAAlE,IAAAkE,EAAA,GAAAA,EAIAlE,GAAAuE,MAAAjE,KAAAN,GAAAonB,UACAxlB,EAAA,GACAsC,GAAAA,EAAAhD,SAAAgD,EAAAoC,eAAApC,EAAA/D,IACA,IAIA+mB,GAAAlrB,KAAA4F,EAAA,KAAA5B,GAAAuW,cAAArS,GACA,IAAAtC,IAAAsC,GAGAnD,GAAAT,KAAAsB,IACAtB,KAAAsB,GAAAsC,EAAAtC,IAIAtB,KAAAuiB,KAAAjhB,EAAAsC,EAAAtC,GAKA,OAAAtB,MAYA,MARAW,GAAAd,GAAAyY,eAAAhX,EAAA,IAEAX,IAGAX,KAAA,GAAAW,EACAX,KAAAzE,OAAA,GAEAyE,KAcA,MAAAyG,GAAA7F,UACAZ,KAAA,GAAAyG,EACAzG,KAAAzE,OAAA,EACAyE,MAIAS,GAAAgG,OACArH,KAAAolB,EAAA5iB,MACA4iB,EAAA5iB,MAAA6E,GAGAA,EAAA/G,IAGAA,GAAAuX,UAAAxQ,EAAAzG,QAIAlC,UAAA4B,GAAAgH,GAGAmgB,GAAAnnB,GAAAG,GAGA,IAAAknB,IAAA,iCAGAC,IACAC,UAAA,EACA3T,UAAA,EACA4T,MAAA,EACAjT,MAAA,EAGAvU,IAAAgH,GAAAwB,QACAgc,IAAA,SAAAtR,GACA,GAAAuU,GAAAznB,GAAAkT,EAAA5S,MACAqE,EAAA8iB,EAAA5rB,MAEA,OAAAyE,MAAAc,OAAA,WAEA,IADA,GAAAhG,GAAA,EACAA,EAAAuJ,EAAAvJ,IACA,GAAA4E,GAAAoF,SAAA9E,KAAAmnB,EAAArsB,IACA,OAAA,KAMAssB,QAAA,SAAAvE,EAAAjf,GACA,GAAA5C,GACAlG,EAAA,EACAuJ,EAAArE,KAAAzE,OACA0oB,KACAkD,EAAA,gBAAAtE,IAAAnjB,GAAAmjB,EAGA,KAAA8D,GAAAjrB,KAAAmnB,GACA,KAAA/nB,EAAAuJ,EAAAvJ,IACA,IAAAkG,EAAAhB,KAAAlF,GAAAkG,GAAAA,IAAA4C,EAAA5C,EAAAA,EAAA2I,WAGA,GAAA3I,EAAAJ,SAAA,KAAAumB,EACAA,EAAA7pB,MAAA0D,IAAA,EAGA,IAAAA,EAAAJ,UACAlB,GAAAke,KAAA4D,gBAAAxgB,EAAA6hB,IAAA,CAEAoB,EAAA1nB,KAAAyE,EACA,OAMA,MAAAhB,MAAA0V,UAAAuO,EAAA1oB,OAAA,EAAAmE,GAAAqe,WAAAkG,GAAAA,IAIA3mB,MAAA,SAAAqD,GAGA,MAAAA,GAKA,gBAAAA,GACApD,GAAArD,KAAAwF,GAAAiB,GAAAX,KAAA,IAIAzC,GAAArD,KAAA8F,KAGAW,EAAA2U,OAAA3U,EAAA,GAAAA,GAZAX,KAAA,IAAAA,KAAA,GAAA2J,WAAA3J,KAAAyI,QAAA6e,UAAA/rB,QAAA,GAgBAyL,IAAA,SAAAP,EAAA7C,GACA,MAAA5D,MAAA0V,UACAhW,GAAAqe,WACAre,GAAAuE,MAAAjE,KAAAuE,MAAA7E,GAAA+G,EAAA7C,OAKA2jB,QAAA,SAAA9gB,GACA,MAAAzG,MAAAgH,IAAA,MAAAP,EACAzG,KAAA2V,WAAA3V,KAAA2V,WAAA7U,OAAA2F,OAUA/G,GAAA2B,MACAwf,OAAA,SAAAlgB,GACA,GAAAkgB,GAAAlgB,EAAAgJ,UACA,OAAAkX,IAAA,KAAAA,EAAAjgB,SAAAigB,EAAA,MAEA2G,QAAA,SAAA7mB,GACA,MAAAM,IAAAN,EAAA,eAEA8mB,aAAA,SAAA9mB,EAAA7F,EAAAyrB,GACA,MAAAtlB,IAAAN,EAAA,aAAA4lB,IAEAW,KAAA,SAAAvmB,GACA,MAAAI,GAAAJ,EAAA,gBAEAsT,KAAA,SAAAtT,GACA,MAAAI,GAAAJ,EAAA,oBAEA+mB,QAAA,SAAA/mB,GACA,MAAAM,IAAAN,EAAA,gBAEA2mB,QAAA,SAAA3mB,GACA,MAAAM,IAAAN,EAAA,oBAEAgnB,UAAA,SAAAhnB,EAAA7F,EAAAyrB,GACA,MAAAtlB,IAAAN,EAAA,cAAA4lB,IAEAqB,UAAA,SAAAjnB,EAAA7F,EAAAyrB,GACA,MAAAtlB,IAAAN,EAAA,kBAAA4lB,IAEAG,SAAA,SAAA/lB,GACA,MAAA+lB,KAAA/lB,EAAAgJ,gBAAA/D,WAAAjF,IAEAsmB,SAAA,SAAAtmB,GACA,MAAA+lB,IAAA/lB,EAAAiF,aAEA0N,SAAA,SAAA3S,GACA,MAAAqD,GAAArD,EAAA,UACAA,EAAA2J,iBAMAtG,EAAArD,EAAA,cACAA,EAAAA,EAAAuG,SAAAvG,GAGAjB,GAAAuE,SAAAtD,EAAAgF,eAEA,SAAAvL,EAAAsM,GACAhH,GAAAgH,GAAAtM,GAAA,SAAAmsB,EAAA9f,GACA,GAAAwd,GAAAvkB,GAAAtE,IAAA4E,KAAA0G,EAAA6f,EAuBA,OArBA,UAAAnsB,EAAAyB,OAAA,KACA4K,EAAA8f,GAGA9f,GAAA,gBAAAA,KACAwd,EAAAvkB,GAAAoB,OAAA2F,EAAAwd,IAGAjkB,KAAAzE,OAAA,IAGAyrB,GAAA5sB,IACAsF,GAAAqe,WAAAkG,GAIA8C,GAAArrB,KAAAtB,IACA6pB,EAAA4D,WAIA7nB,KAAA0V,UAAAuO,KAGA,IAAAw+D,IAAA,mBAmCA/iF,IAAAooB,UAAA,SAAA3mB,GAIAA,EAAA,gBAAAA,GACAD,EAAAC,GACAzB,GAAAwI,UAAA/G,EAEA,IACA4mB,GAGAC,EAGAC,EAGAC,EAGAvJ,KAGAjQ,KAGAyZ,GAAA,EAGArZ,EAAA,WAQA,IALAoZ,EAAAA,GAAA/mB,EAAAinB,KAIAH,EAAAF,GAAA,EACArZ,EAAAnT,OAAA4sB,GAAA,EAEA,IADAH,EAAAtZ,EAAA6E,UACA4U,EAAAxJ,EAAApjB,SAGA,IAAAojB,EAAAwJ,GAAA1rB,MAAAurB,EAAA,GAAAA,EAAA,KACA7mB,EAAAknB,cAGAF,EAAAxJ,EAAApjB,OACAysB,GAAA,EAMA7mB,GAAA6mB,SACAA,GAAA,GAGAD,GAAA,EAGAG,IAIAvJ,EADAqJ,KAKA,KAMA/e,GAGAjC,IAAA,WA2BA,MA1BA2X,KAGAqJ,IAAAD,IACAI,EAAAxJ,EAAApjB,OAAA,EACAmT,EAAAnS,KAAAyrB,IAGA,QAAAhhB,GAAA5K,GACAsD,GAAA2B,KAAAjF,EAAA,SAAAoF,EAAA8V,GACA7W,GAAA6W,GACAnW,EAAAklB,QAAApd,EAAAib,IAAA5M,IACAqH,EAAApiB,KAAA+a,GAEAA,GAAAA,EAAA/b,QAAA,WAAAinF,EAAAlrE,IAGAtQ,EAAAsQ,MAGAhb,WAEA0rB,IAAAD,GACAjZ,KAGA9O,MAIAwJ,OAAA,WAYA,MAXA9J,IAAA2B,KAAA/E,UAAA,SAAAkF,EAAA8V,GAEA,IADA,GAAAha,IACAA,EAAAoC,GAAAqG,QAAAuR,EAAAqH,EAAArhB,KAAA,GACAqhB,EAAA5iB,OAAAuB,EAAA,GAGAA,GAAA6qB,GACAA,MAIAnoB,MAKAkkB,IAAA,SAAAxd,GACA,MAAAA,GACAhH,GAAAqG,QAAAW,EAAAiY,IAAA,EACAA,EAAApjB,OAAA,GAIAsT,MAAA,WAIA,MAHA8P,KACAA,MAEA3e,MAMAsoB,QAAA,WAGA,MAFAJ,GAAAxZ,KACAiQ,EAAAqJ,EAAA,GACAhoB,MAEA8kB,SAAA,WACA,OAAAnG,GAMA4J,KAAA,WAKA,MAJAL,GAAAxZ,KACAsZ,GAAAD,IACApJ,EAAAqJ,EAAA,IAEAhoB,MAEAkoB,OAAA,WACA,QAAAA,GAIAM,SAAA,SAAA5kB,EAAAxH,GASA,MARA8rB,KACA9rB,EAAAA,MACAA,GAAAwH,EAAAxH,EAAAP,MAAAO,EAAAP,QAAAO,GACAsS,EAAAnS,KAAAH,GACA2rB,GACAjZ,KAGA9O,MAIA8O,KAAA,WAEA,MADA7F,GAAAuf,SAAAxoB,KAAA1D,WACA0D,MAIAioB,MAAA,WACA,QAAAA,GAIA,OAAAhf,IA4CAvJ,GAAAwI,QAEAgI,SAAA,SAAA4B,GACA,GAAA2W,KAIA,SAAA,WAAA/oB,GAAAooB,UAAA,UACApoB,GAAAooB,UAAA,UAAA,IACA,UAAA,OAAApoB,GAAAooB,UAAA,eACApoB,GAAAooB,UAAA,eAAA,EAAA,aACA,SAAA,OAAApoB,GAAAooB,UAAA,eACApoB,GAAAooB,UAAA,eAAA,EAAA,aAEAzT,EAAA,UACAvD,GACAuD,MAAA,WACA,MAAAA,IAEAtF,OAAA,WAEA,MADAkB,GAAAZ,KAAA/S,WAAAmV,KAAAnV,WACA0D,MAEA+kD,MAAA,SAAAr+C,GACA,MAAAoK,GAAA4X,KAAA,KAAAhiB,IAIAwiB,KAAA,WACA,GAAAP,GAAArsB,SAEA,OAAAoD,IAAAwQ,SAAA,SAAA0Y,GACAlpB,GAAA2B,KAAAonB,EAAA,SAAA3tB,EAAA+tB,GAGA,GAAAniB,GAAAjG,GAAAkoB,EAAAE,EAAA,MAAAF,EAAAE,EAAA,GAKA5Y,GAAA4Y,EAAA,IAAA,WACA,GAAAC,GAAApiB,GAAAA,EAAAjK,MAAAuD,KAAA1D,UACAwsB,IAAAroB,GAAAqoB,EAAAhY,SACAgY,EAAAhY,UACAS,SAAAqX,EAAAG,QACA1Z,KAAAuZ,EAAAI,SACAvX,KAAAmX,EAAAK,QAEAL,EAAAC,EAAA,GAAA,QACA7oB,KACA0G,GAAAoiB,GAAAxsB,eAKAqsB,EAAA,OACA7X,WAEA4X,KAAA,SAAAu8B,EAAAD,EAAAigC,GAEA,QAAAj8D,GAAAk8D,EAAAj1E,EAAA4J,EAAAmT,GACA,MAAA,YACA,GAAAm4D,GAAAnlF,KACA5D,EAAAE,UACA8oF,EAAA,WACA,GAAAt8D,GAAAJ,CAKA,MAAAw8D,EAAAG,GAAA,CAQA,IAJAv8D,EAAAjP,EAAApd,MAAA0oF,EAAA/oF,MAIA6T,EAAAa,UACA,KAAA,IAAA4zB,WAAA,2BAOAhc,GAAAI,IAKA,gBAAAA,IACA,kBAAAA,KACAA,EAAAJ,KAGAjoB,GAAAioB,GAGAsE,EACAtE,EAAAxuB,KACA4uB,EACAE,EAAAq8D,EAAAp1E,EAAAyyE,EAAA11D,GACAhE,EAAAq8D,EAAAp1E,EAAA0yE,EAAA31D,KAOAq4D,IAEA38D,EAAAxuB,KACA4uB,EACAE,EAAAq8D,EAAAp1E,EAAAyyE,EAAA11D,GACAhE,EAAAq8D,EAAAp1E,EAAA0yE,EAAA31D,GACAhE,EAAAq8D,EAAAp1E,EAAAyyE,EACAzyE,EAAAW,eASAiJ,IAAA6oE,IACAyC,MAAA/lF,GACAhD,GAAA0sB,KAKAkE,GAAA/c,EAAAY,aAAAs0E,EAAA/oF,MAKAmmD,EAAAv1B,EACAo4D,EACA,WACA,IACAA,IACA,MAAA3mF,GAEAiB,GAAAwQ,SAAAo1E,eACA5lF,GAAAwQ,SAAAo1E,cAAA7mF,EACA8jD,EAAAgjC,YAMAL,EAAA,GAAAG,IAIAxrE,IAAA8oE,IACAwC,MAAA/lF,GACAhD,GAAAqC,IAGAwR,EAAAkB,WAAAg0E,EAAA/oF,KASA8oF,GACA3iC,KAKA7iD,GAAAwQ,SAAAs1E,eACAjjC,EAAAgjC,WAAA7lF,GAAAwQ,SAAAs1E,gBAEAzlF,EAAAT,WAAAijD,KAzHA,GAAA8iC,GAAA,CA8HA,OAAA3lF,IAAAwQ,SAAA,SAAA0Y,GAGAH,EAAA,GAAA,GAAAzhB,IACAgiB,EACA,EACAJ,EACAnoB,GAAAwkF,GACAA,EACAvC,EACA95D,EAAAhY,aAKA6X,EAAA,GAAA,GAAAzhB,IACAgiB,EACA,EACAJ,EACAnoB,GAAAwkD,GACAA,EACAy9B,IAKAj6D,EAAA,GAAA,GAAAzhB,IACAgiB,EACA,EACAJ,EACAnoB,GAAAukD,GACAA,EACA29B,MAGA7xE,WAKAA,QAAA,SAAA/W,GACA,MAAA,OAAAA,EAAA2F,GAAAwI,OAAAnO,EAAA+W,GAAAA,IAGAb,IAkEA,OA/DAvQ,IAAA2B,KAAAonB,EAAA,SAAA3tB,EAAA+tB,GACA,GAAAlK,GAAAkK,EAAA,GACAM,EAAAN,EAAA,EAKA/X,GAAA+X,EAAA,IAAAlK,EAAA3X,IAGAmiB,GACAxK,EAAA3X,IACA,WAIAqN,EAAA8U,GAKAV,EAAA,EAAA3tB,GAAA,GAAAwtB,QAIAG,EAAA,EAAA3tB,GAAA,GAAAwtB,QAGAG,EAAA,GAAA,GAAAF,KAGAE,EAAA,GAAA,GAAAF,MAOA5J,EAAA3X,IAAA6hB,EAAA,GAAA/Z,MAKAmB,EAAA4Y,EAAA,IAAA,WAEA,MADA5Y,GAAA4Y,EAAA,GAAA,QAAA7oB,OAAAiQ,MAAA7Q,GAAAY,KAAA1D,WACA0D,MAMAiQ,EAAA4Y,EAAA,GAAA,QAAAlK,EAAA6J,WAIA1X,EAAAA,QAAAb,GAGA6B,GACAA,EAAA5X,KAAA+V,EAAAA,GAIAA,GAIAmZ,KAAA,SAAAq8D,GACA,GAGAp1E,GAAA/T,UAAAf,OAGAT,EAAAuV,EAGAmZ,EAAAlT,MAAAxb,GACA2uB,EAAA5tB,GAAA3B,KAAAoC,WAGAopF,EAAAhmF,GAAAwQ,WAGAwZ,EAAA,SAAA5uB,GACA,MAAA,UAAA+B,GACA2sB,EAAA1uB,GAAAkF,KACAypB,EAAA3uB,GAAAwB,UAAAf,OAAA,EAAAM,GAAA3B,KAAAoC,WAAAO,IACAwT,GACAq1E,EAAA70E,YAAA2Y,EAAAC,IAMA,IAAApZ,GAAA,IACAwyE,EAAA4C,EAAAC,EAAAr2E,KAAAqa,EAAA5uB,IAAAkuB,QAAA08D,EAAAz8D,QACA5Y,GAGA,YAAAq1E,EAAArxE,SACA5T,GAAAgpB,EAAA3uB,IAAA2uB,EAAA3uB,GAAA4tB,OAEA,MAAAg9D,GAAAh9D,MAKA,MAAA5tB,KACA+nF,EAAAp5D,EAAA3uB,GAAA4uB,EAAA5uB,GAAA4qF,EAAAz8D,OAGA,OAAAy8D,GAAA50E,YAOA,IAAA60E,IAAA,wDAEAjmF,IAAAwQ,SAAAo1E,cAAA,SAAAhxE,EAAAsxE,GAIA7lF,EAAAwnC,SAAAxnC,EAAAwnC,QAAAI,MAAArzB,GAAAqxE,GAAAjqF,KAAA4Y,EAAAla,OACA2F,EAAAwnC,QAAAI,KAAA,8BAAArzB,EAAAo7D,QAAAp7D,EAAAsxE,MAAAA,IAOAlmF,GAAAmmF,eAAA,SAAAvxE,GACAvU,EAAAT,WAAA,WACA,KAAAgV,KAQA,IAAAqV,IAAAjqB,GAAAwQ,UAEAxQ,IAAAgH,GAAA9E,MAAA,SAAA8E,GAYA,MAVAijB,IACAjB,KAAAhiB,GAKAq+C,MAAA,SAAAzwC,GACA5U,GAAAmmF,eAAAvxE,KAGAtU,MAGAN,GAAAwI,QAGAiO,SAAA,EAIAyT,UAAA,EAGAhoB,MAAA,SAAAmoB,KAGA,IAAAA,IAAArqB,GAAAkqB,UAAAlqB,GAAAyW,WAKAzW,GAAAyW,SAAA,GAGA,IAAA4T,KAAArqB,GAAAkqB,UAAA,GAKAD,GAAA9Y,YAAAhR,IAAAH,SAIAA,GAAAkC,MAAA8mB,KAAAiB,GAAAjB,KAaA,aAAA7oB,GAAAoqB,YACA,YAAApqB,GAAAoqB,aAAApqB,GAAAwK,gBAAA6f,SAGAnqB,EAAAT,WAAAI,GAAAkC,QAKA/B,GAAAkhB,iBAAA,mBAAArf,GAGA3B,EAAAghB,iBAAA,OAAArf,GAQA,IAAAsG,IAAA,SAAA7D,EAAAuC,EAAAzE,EAAApF,EAAAstB,EAAAC,EAAAC,GACA,GAAAvvB,GAAA,EACA+a,EAAA1R,EAAA5I,OACA+uB,EAAA,MAAAroB,CAGA,IAAA,WAAAugF,EAAAvgF,GAAA,CACAkoB,GAAA,CACA,KAAArvB,IAAAmH,GACA+F,GAAA7D,EAAAuC,EAAA5L,EAAAmH,EAAAnH,IAAA,EAAAsvB,EAAAC,OAIA,QAAAjrB,KAAAvC,IACAstB,GAAA,EAEA1pB,GAAA5D,KACAwtB,GAAA,GAGAC,IAGAD,GACA3jB,EAAAxM,KAAAiK,EAAAtH,GACA6J,EAAA,OAIA4jB,EAAA5jB,EACAA,EAAA,SAAA/F,EAAAsB,EAAApF,GACA,MAAAytB,GAAApwB,KAAAwF,GAAAiB,GAAA9D,MAKA6J,GACA,KAAA5L,EAAA+a,EAAA/a,IACA4L,EACAvC,EAAArJ,GAAAmH,EAAAooB,EACAxtB,EACAA,EAAA3C,KAAAiK,EAAArJ,GAAAA,EAAA4L,EAAAvC,EAAArJ,GAAAmH,IAMA,OAAAkoB,GACAhmB,EAIAmmB,EACA5jB,EAAAxM,KAAAiK,GAGA0R,EAAAnP,EAAAvC,EAAA,GAAAlC,GAAAmoB,GAKAnV,GAAA,QACAC,GAAA,YAaAqV,GAAA,SAAAC,GAQA,MAAA,KAAAA,EAAA5pB,UAAA,IAAA4pB,EAAA5pB,YAAA4pB,EAAA5pB,SAUAiB,GAAAE,IAAA,EAEAF,EAAA/D,WAEAub,MAAA,SAAAmR,GAGA,GAAA3tB,GAAA2tB,EAAAxqB,KAAA8B,QA4BA,OAzBAjF,KACAA,KAKA0tB,GAAAC,KAIAA,EAAA5pB,SACA4pB,EAAAxqB,KAAA8B,SAAAjF,EAMAgB,OAAA6sB,eAAAF,EAAAxqB,KAAA8B,SACAjF,MAAAA,EACA+tB,cAAA,MAMA/tB,GAEA4F,IAAA,SAAA+nB,EAAAtoB,EAAArF,GACA,GAAA7C,GACAqf,EAAArZ,KAAAqZ,MAAAmR,EAIA,IAAA,gBAAAtoB,GACAmX,EAAA5J,EAAAvN,IAAArF,MAMA,KAAA7C,IAAAkI,GACAmX,EAAA5J,EAAAzV,IAAAkI,EAAAlI,EAGA,OAAAqf,IAEA9U,IAAA,SAAAimB,EAAAvoB,GACA,WAAA7C,KAAA6C,EACAjC,KAAAqZ,MAAAmR,GAGAA,EAAAxqB,KAAA8B,UAAA0oB,EAAAxqB,KAAA8B,SAAA2N,EAAAxN,KAEA+F,OAAA,SAAAwiB,EAAAvoB,EAAApF,GAaA,WAAAuC,KAAA6C,GACAA,GAAA,gBAAAA,QAAA7C,KAAAvC,EAEAmD,KAAAuE,IAAAimB,EAAAvoB,IASAjC,KAAAyC,IAAA+nB,EAAAvoB,EAAApF,OAIAuC,KAAAvC,EAAAA,EAAAoF,IAEAuH,OAAA,SAAAghB,EAAAvoB,GACA,GAAAnH,GACAue,EAAAmR,EAAAxqB,KAAA8B,QAEA,QAAA1C,KAAAia,EAAA,CAIA,OAAAja,KAAA6C,EAAA,CAGAqU,MAAA5G,QAAAzN,GAIAA,EAAAA,EAAA7G,IAAAqU,IAEAxN,EAAAwN,EAAAxN,GAIAA,EAAAA,IAAAoX,IACApX,GACAA,EAAAX,MAAAmhF,SAGA3nF,EAAAmH,EAAA1G,MAEA,MAAAT,WACAue,GAAApX,EAAAnH,SAKAsE,KAAA6C,GAAAvC,GAAA0P,cAAAiK,MAMAmR,EAAA5pB,SACA4pB,EAAAxqB,KAAA8B,aAAA1C,SAEAorB,GAAAxqB,KAAA8B,YAIAiG,QAAA,SAAAyiB,GACA,GAAAnR,GAAAmR,EAAAxqB,KAAA8B,QACA,YAAA1C,KAAAia,IAAA3Z,GAAA0P,cAAAiK,IAGA,IAAA/U,IAAA,GAAAzC,GAEAW,GAAA,GAAAX,GAcAS,GAAA,gCACAH,GAAA,QAkDAzC,IAAAwI,QACAH,QAAA,SAAApH,GACA,MAAA6B,IAAAuF,QAAApH,IAAA2D,GAAAyD,QAAApH,IAGAuB,KAAA,SAAAvB,EAAAvG,EAAA8H,GACA,MAAAM,IAAAwF,OAAArH,EAAAvG,EAAA8H,IAGA6oB,WAAA,SAAApqB,EAAAvG,GACAoI,GAAAgH,OAAA7I,EAAAvG,IAKA4wB,MAAA,SAAArqB,EAAAvG,EAAA8H,GACA,MAAAoC,IAAA0D,OAAArH,EAAAvG,EAAA8H,IAGA+oB,YAAA,SAAAtqB,EAAAvG,GACAkK,GAAAkF,OAAA7I,EAAAvG,MAIAsF,GAAAgH,GAAAwB,QACAhG,KAAA,SAAAD,EAAApF,GACA,GAAA/B,GAAAV,EAAA8H,EACAvB,EAAAX,KAAA,GACA0N,EAAA/M,GAAAA,EAAAoe,UAGA,QAAA3f,KAAA6C,EAAA,CACA,GAAAjC,KAAAzE,SACA2G,EAAAM,GAAA+B,IAAA5D,GAEA,IAAAA,EAAAC,WAAA0D,GAAAC,IAAA5D,EAAA,iBAAA,CAEA,IADA7F,EAAA4S,EAAAnS,OACAT,KAIA4S,EAAA5S,KACAV,EAAAsT,EAAA5S,GAAAV;uCACA,IAAAA,EAAAmD,QAAA,WACAnD,EAAAqV,EAAArV,EAAAyB,MAAA,IACAmG,EAAArB,EAAAvG,EAAA8H,EAAA9H,KAIAkK,IAAA7B,IAAA9B,EAAA,gBAAA,GAIA,MAAAuB,GAIA,MAAA,gBAAAD,GACAjC,KAAAqB,KAAA,WACAmB,GAAAC,IAAAzC,KAAAiC,KAIA+F,GAAAhI,KAAA,SAAAnD,GACA,GAAAqF,EAOA,IAAAvB,OAAAvB,KAAAvC,EAAA,CAKA,OAAAuC,MADA8C,EAAAM,GAAA+B,IAAA5D,EAAAsB,IAEA,MAAAC,EAMA,QAAA9C,MADA8C,EAAAF,EAAArB,EAAAsB,IAEA,MAAAC,OAQAlC,MAAAqB,KAAA,WAGAmB,GAAAC,IAAAzC,KAAAiC,EAAApF,MAEA,KAAAA,EAAAP,UAAAf,OAAA,EAAA,MAAA,IAGAwvB,WAAA,SAAA9oB,GACA,MAAAjC,MAAAqB,KAAA,WACAmB,GAAAgH,OAAAxJ,KAAAiC,QAMAvC,GAAAwI,QACAwG,MAAA,SAAA/N,EAAAR,EAAA+B,GACA,GAAAwM,EAEA,IAAA/N,EAYA,MAXAR,IAAAA,GAAA,MAAA,QACAuO,EAAApK,GAAAC,IAAA5D,EAAAR,GAGA+B,KACAwM,GAAA4H,MAAA5G,QAAAxN,GACAwM,EAAApK,GAAA0D,OAAArH,EAAAR,EAAAT,GAAAuX,UAAA/U,IAEAwM,EAAAnS,KAAA2F,IAGAwM,OAIAyc,QAAA,SAAAxqB,EAAAR,GACAA,EAAAA,GAAA,IAEA,IAAAuO,GAAAhP,GAAAgP,MAAA/N,EAAAR,GACAirB,EAAA1c,EAAAnT,OACAmL,EAAAgI,EAAA6E,QACAlF,EAAA3O,GAAAiP,YAAAhO,EAAAR,GACA+mB,EAAA,WACAxnB,GAAAyrB,QAAAxqB,EAAAR,GAIA,gBAAAuG,IACAA,EAAAgI,EAAA6E,QACA6X,KAGA1kB,IAIA,OAAAvG,GACAuO,EAAAuD,QAAA,oBAIA5D,GAAA4C,KACAvK,EAAAxM,KAAAyG,EAAAumB,EAAA7Y,KAGA+c,GAAA/c,GACAA,EAAAQ,MAAAC,QAKAH,YAAA,SAAAhO,EAAAR,GACA,GAAA8B,GAAA9B,EAAA,YACA,OAAAmE,IAAAC,IAAA5D,EAAAsB,IAAAqC,GAAA0D,OAAArH,EAAAsB,GACA4M,MAAAnP,GAAAooB,UAAA,eAAA9gB,IAAA,WACA1C,GAAAkF,OAAA7I,GAAAR,EAAA,QAAA8B,WAMAvC,GAAAgH,GAAAwB,QACAwG,MAAA,SAAAvO,EAAA+B,GACA,GAAAmpB,GAAA,CAQA,OANA,gBAAAlrB,KACA+B,EAAA/B,EACAA,EAAA,KACAkrB,KAGA/uB,UAAAf,OAAA8vB,EACA3rB,GAAAgP,MAAA1O,KAAA,GAAAG,OAGAf,KAAA8C,EACAlC,KACAA,KAAAqB,KAAA,WACA,GAAAqN,GAAAhP,GAAAgP,MAAA1O,KAAAG,EAAA+B,EAGAxC,IAAAiP,YAAA3O,KAAAG,GAEA,OAAAA,GAAA,eAAAuO,EAAA,IACAhP,GAAAyrB,QAAAnrB,KAAAG,MAIAgrB,QAAA,SAAAhrB,GACA,MAAAH,MAAAqB,KAAA,WACA3B,GAAAyrB,QAAAnrB,KAAAG,MAGAmrB,WAAA,SAAAnrB,GACA,MAAAH,MAAA0O,MAAAvO,GAAA,UAKA2Q,QAAA,SAAA3Q,EAAApG,GACA,GAAA6K,GACA2mB,EAAA,EACAC,EAAA9rB,GAAAwQ,WACA5P,EAAAN,KACAlF,EAAAkF,KAAAzE,OACAytB,EAAA,aACAuC,GACAC,EAAA3a,YAAAvQ,GAAAA,IAUA,KANA,gBAAAH,KACApG,EAAAoG,EACAA,MAAAf,IAEAe,EAAAA,GAAA,KAEArF,MACA8J,EAAAN,GAAAC,IAAAjE,EAAAxF,GAAAqF,EAAA,gBACAyE,EAAAiK,QACA0c,IACA3mB,EAAAiK,MAAA7H,IAAAgiB,GAIA,OADAA,KACAwC,EAAA1a,QAAA/W,KAGA,IAAA0xB,IAAA,sCAAAC,OAEApoB,GAAA,GAAA4b,QAAA,iBAAAuM,GAAA,cAAA,KAGApf,IAAA,MAAA,QAAA,SAAA,QAEA62E,GAAA,SAAAviF,EAAAgrB,GAOA,MAHAhrB,GAAAgrB,GAAAhrB,EAGA,SAAAA,EAAA6C,MAAAwG,SACA,KAAArJ,EAAA6C,MAAAwG,SAMAtK,GAAAoF,SAAAnE,EAAAqF,cAAArF,IAEA,SAAAjB,GAAAuD,IAAAtC,EAAA,YAGA2xB,GAAA,SAAA3xB,EAAAQ,EAAArC,EAAA1C,GACA,GAAA4C,GAAA5E,EACAm4B,IAGA,KAAAn4B,IAAA+G,GACAoxB,EAAAn4B,GAAAuG,EAAA6C,MAAApJ,GACAuG,EAAA6C,MAAApJ,GAAA+G,EAAA/G,EAGA4E,GAAAF,EAAArC,MAAAkE,EAAAvE,MAGA,KAAAhC,IAAA+G,GACAR,EAAA6C,MAAApJ,GAAAm4B,EAAAn4B,EAGA,OAAA4E,IAuEAikF,KAyEAvjF,IAAAgH,GAAAwB,QACA2E,KAAA,WACA,MAAAD,GAAA5M,MAAA,IAEAsP,KAAA,WACA,MAAA1C,GAAA5M,OAEAoO,OAAA,SAAAiG,GACA,MAAA,iBAAAA,GACAA,EAAArU,KAAA6M,OAAA7M,KAAAsP,OAGAtP,KAAAqB,KAAA,WACA6hF,GAAAljF,MACAN,GAAAM,MAAA6M,OAEAnN,GAAAM,MAAAsP,WAKA,IAAAlH,IAAA,wBAEA/C,GAAA,iCAEAY,GAAA,qCAKAX,IAGAsmB,QAAA,EAAA,+BAAA,aAKAC,OAAA,EAAA,UAAA,YACAC,KAAA,EAAA,oBAAA,uBACAC,IAAA,EAAA,iBAAA,oBACAC,IAAA,EAAA,qBAAA,yBAEAzmB,UAAA,EAAA,GAAA,IAIAD,IAAA2mB,SAAA3mB,GAAAsmB,OAEAtmB,GAAA4mB,MAAA5mB,GAAA6mB,MAAA7mB,GAAA8mB,SAAA9mB,GAAA+mB,QAAA/mB,GAAAumB,MACAvmB,GAAAgnB,GAAAhnB,GAAA0mB,EA0CA,IAAA9mB,IAAA,aA4FA,WACA,GAAAH,GAAAlF,GAAAmF,yBACA2U,EAAA5U,EAAAI,YAAAtF,GAAAuF,cAAA,QACAmc,EAAA1hB,GAAAuF,cAAA,QAMAmc,GAAA3I,aAAA,OAAA,SACA2I,EAAA3I,aAAA,UAAA,WACA2I,EAAA3I,aAAA,OAAA,KAEAe,EAAAxU,YAAAoc,GAIAzY,GAAAC,WAAA4Q,EAAA4S,WAAA,GAAAA,WAAA,GAAA7mB,UAAA2C,QAIAsR,EAAAnU,UAAA,yBACAsD,GAAA0jB,iBAAA7S,EAAA4S,WAAA,GAAA7mB,UAAA4C,eAEA,IAAA+B,IAAAxK,GAAAwK,gBAKAoiB,GAAA,OACAC,GAAA,iDACAC,GAAA,qBAmFAjtB,IAAAmH,OAEAlH,UAEAqH,IAAA,SAAArG,EAAA6F,EAAAqT,EAAA3X,EAAAuE,GAEA,GAAAmmB,GAAAC,EAAAjoB,EACAkD,EAAAglB,EAAAC,EACAC,EAAApvB,EAAAuC,EAAA8sB,EAAAC,EACAC,EAAA7oB,GAAAC,IAAA5D,EAGA,IAAAwsB,EAuCA,IAlCAtT,EAAAA,UACA+S,EAAA/S,EACAA,EAAA+S,EAAA/S,QACApT,EAAAmmB,EAAAnmB,UAKAA,GACA/G,GAAAke,KAAA4D,gBAAAnX,GAAA5D,GAIAoT,EAAA9S,OACA8S,EAAA9S,KAAArH,GAAAqH,SAIAe,EAAAqlB,EAAArlB,UACAA,EAAAqlB,EAAArlB,YAEA+kB,EAAAM,EAAAllB,UACA4kB,EAAAM,EAAAllB,OAAA,SAAAxJ,GAIA,WAAA,KAAAiB,IAAAA,GAAAmH,MAAAumB,YAAA3uB,EAAA0B,KACAT,GAAAmH,MAAAwmB,SAAA5wB,MAAAkE,EAAArE,eAAA8C,KAKAoH,GAAAA,GAAA,IAAAlF,MAAAmhF,MAAA,IACA31D,EAAAtmB,EAAAjL,OACAuxB,KACAloB,EAAA+nB,GAAAppB,KAAAiD,EAAAsmB,QACA3sB,EAAA+sB,EAAAtoB,EAAA,GACAqoB,GAAAroB,EAAA,IAAA,IAAAzJ,MAAA,KAAA2a,OAGA3V,IAKA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OAGAA,GAAAsG,EAAAumB,EAAAM,aAAAN,EAAAO,WAAAptB,EAGA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OAGA4sB,EAAArtB,GAAAwI,QACA/H,KAAAA,EACA+sB,SAAAA,EACAhrB,KAAAA,EACA2X,QAAAA,EACA9S,KAAA8S,EAAA9S,KACAN,SAAAA,EACAsZ,aAAAtZ,GAAA/G,GAAA4iB,KAAAhhB,MAAAye,aAAArkB,KAAA+K,GACA+mB,UAAAP,EAAAjxB,KAAA,MACA4wB,IAGAhvB,EAAAkK,EAAA3H,MACAvC,EAAAkK,EAAA3H,MACAvC,EAAA6vB,cAAA,EAGAT,EAAAU,QACA,IAAAV,EAAAU,MAAAxzB,KAAAyG,EAAAuB,EAAA+qB,EAAAJ,IAEAlsB,EAAAogB,kBACApgB,EAAAogB,iBAAA5gB,EAAA0sB,IAKAG,EAAAhmB,MACAgmB,EAAAhmB,IAAA9M,KAAAyG,EAAAosB,GAEAA,EAAAlT,QAAA9S,OACAgmB,EAAAlT,QAAA9S,KAAA8S,EAAA9S,OAKAN,EACA7I,EAAA7B,OAAA6B,EAAA6vB,gBAAA,EAAAV,GAEAnvB,EAAArB,KAAAwwB,GAIArtB,GAAAmH,MAAAlH,OAAAQ,IAAA,IAMAqJ,OAAA,SAAA7I,EAAA6F,EAAAqT,EAAApT,EAAAknB,GAEA,GAAA5yB,GAAA6yB,EAAAhpB,EACAkD,EAAAglB,EAAAC,EACAC,EAAApvB,EAAAuC,EAAA8sB,EAAAC,EACAC,EAAA7oB,GAAAyD,QAAApH,IAAA2D,GAAAC,IAAA5D,EAEA,IAAAwsB,IAAArlB,EAAAqlB,EAAArlB,QAAA,CAOA,IAFAtB,GAAAA,GAAA,IAAAlF,MAAAmhF,MAAA,IACA31D,EAAAtmB,EAAAjL,OACAuxB,KAMA,GALAloB,EAAA+nB,GAAAppB,KAAAiD,EAAAsmB,QACA3sB,EAAA+sB,EAAAtoB,EAAA,GACAqoB,GAAAroB,EAAA,IAAA,IAAAzJ,MAAA,KAAA2a,OAGA3V,EAAA,CAeA,IARA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OACAA,GAAAsG,EAAAumB,EAAAM,aAAAN,EAAAO,WAAAptB,EACAvC,EAAAkK,EAAA3H,OACAyE,EAAAA,EAAA,IACA,GAAAsa,QAAA,UAAA+N,EAAAjxB,KAAA,iBAAA,WAGA4xB,EAAA7yB,EAAA6C,EAAArC,OACAR,KACAgyB,EAAAnvB,EAAA7C,IAEA4yB,GAAAT,IAAAH,EAAAG,UACArT,GAAAA,EAAA9S,OAAAgmB,EAAAhmB,MACAnC,IAAAA,EAAAlJ,KAAAqxB,EAAAS,YACA/mB,GAAAA,IAAAsmB,EAAAtmB,WACA,OAAAA,IAAAsmB,EAAAtmB,YACA7I,EAAA7B,OAAAhB,EAAA,GAEAgyB,EAAAtmB,UACA7I,EAAA6vB,gBAEAT,EAAAxjB,QACAwjB,EAAAxjB,OAAAtP,KAAAyG,EAAAosB,GAOAa,KAAAhwB,EAAArC,SACAyxB,EAAAa,WACA,IAAAb,EAAAa,SAAA3zB,KAAAyG,EAAAssB,EAAAE,EAAAllB,SAEAvI,GAAAouB,YAAAntB,EAAAR,EAAAgtB,EAAAllB,cAGAH,GAAA3H,QA1CA,KAAAA,IAAA2H,GACApI,GAAAmH,MAAA2C,OAAA7I,EAAAR,EAAAqG,EAAAsmB,GAAAjT,EAAApT,GAAA,EA8CA/G,IAAA0P,cAAAtH,IACAxD,GAAAkF,OAAA7I,EAAA,mBAIA0sB,SAAA,SAAAy4D,GAGA,GAEAhrF,GAAAC,EAAAiE,EAAAilB,EAAA8I,EAAAiB,EAFAnnB,EAAAnH,GAAAmH,MAAAknB,IAAA+3D,GAGA1pF,EAAA,GAAAka,OAAAha,UAAAf,QACAqC,GAAA0G,GAAAC,IAAAvE,KAAA,eAAA6G,EAAA1G,UACA6sB,EAAAttB,GAAAmH,MAAAmmB,QAAAnmB,EAAA1G,SAKA,KAFA/D,EAAA,GAAAyK,EAEA/L,EAAA,EAAAA,EAAAwB,UAAAf,OAAAT,IACAsB,EAAAtB,GAAAwB,UAAAxB,EAMA,IAHA+L,EAAAonB,eAAAjuB,MAGAgtB,EAAAkB,cAAA,IAAAlB,EAAAkB,YAAAh0B,KAAA8F,KAAA6G,GAAA,CASA,IAJAmnB,EAAAtuB,GAAAmH,MAAAjJ,SAAA1D,KAAA8F,KAAA6G,EAAAjJ,GAGA9C,EAAA,GACAmpB,EAAA+J,EAAAlzB,QAAA+L,EAAAsnB,wBAIA,IAHAtnB,EAAAunB,cAAAnK,EAAAtjB,KAEA5F,EAAA,GACAgyB,EAAA9I,EAAArmB,SAAA7C,QACA8L,EAAAwnB,iCAIAxnB,EAAAynB,aAAAznB,EAAAynB,WAAA5yB,KAAAqxB,EAAAS,aAEA3mB,EAAAkmB,UAAAA,EACAlmB,EAAA3E,KAAA6qB,EAAA7qB,SAKA9C,MAHAJ,IAAAU,GAAAmH,MAAAmmB,QAAAD,EAAAG,eAAAjlB,QACA8kB,EAAAlT,SAAApd,MAAAwnB,EAAAtjB,KAAAvE,MAGA,KAAAyK,EAAAiJ,OAAA9Q,KACA6H,EAAA0nB,iBACA1nB,EAAA2nB,mBAYA,OAJAxB,GAAAyB,cACAzB,EAAAyB,aAAAv0B,KAAA8F,KAAA6G,GAGAA,EAAAiJ,SAGAlS,SAAA,SAAAiJ,EAAAjJ,GACA,GAAA9C,GAAAiyB,EAAA2B,EAAAq3D,EAAAC,EACAh4D,KACAP,EAAA7vB,EAAA6vB,cACAzsB,EAAA6F,EAAA+L,MAGA,IAAA6a,GAIAzsB,EAAAJ,YAOA,UAAAiG,EAAA1G,MAAA0G,EAAAoe,QAAA,GAEA,KAAAjkB,IAAAhB,KAAAgB,EAAAA,EAAA2I,YAAA3J,KAIA,GAAA,IAAAgB,EAAAJ,WAAA,UAAAiG,EAAA1G,OAAA,IAAAa,EAAA8jB,UAAA,CAGA,IAFAihE,KACAC,KACAlrF,EAAA,EAAAA,EAAA2yB,EAAA3yB,IACAiyB,EAAAnvB,EAAA9C,GAGA4zB,EAAA3B,EAAAtmB,SAAA,QAEArH,KAAA4mF,EAAAt3D,KACAs3D,EAAAt3D,GAAA3B,EAAAhN,aACArgB,GAAAgvB,EAAA1uB,MAAA1C,MAAA0D,IAAA,EACAtB,GAAAke,KAAA8Q,EAAA1uB,KAAA,MAAAgB,IAAAzF,QAEAyqF,EAAAt3D,IACAq3D,EAAAxpF,KAAAwwB,EAGAg5D,GAAAxqF,QACAyyB,EAAAzxB,MAAAoE,KAAAK,EAAApD,SAAAmoF,IAYA,MALA/kF,GAAAhB,KACAytB,EAAA7vB,EAAArC,QACAyyB,EAAAzxB,MAAAoE,KAAAK,EAAApD,SAAAA,EAAA/B,MAAA4xB,KAGAO,GAGAi4D,QAAA,SAAA7rF,EAAA8rF,GACAroF,OAAA6sB,eAAAhrB,GAAAmwB,MAAA/xB,UAAA1D,GACA0uC,YAAA,EACAle,cAAA,EAEArmB,IAAA9D,GAAAylF,GACA,WACA,GAAAlmF,KAAA2vB,cACA,MAAAu2D,GAAAlmF,KAAA2vB,gBAGA,WACA,GAAA3vB,KAAA2vB,cACA,MAAA3vB,MAAA2vB,cAAAv1B,IAIAqI,IAAA,SAAA5F,GACAgB,OAAA6sB,eAAA1qB,KAAA5F,GACA0uC,YAAA,EACAle,cAAA,EACAD,UAAA,EACA9tB,MAAAA,QAMAkxB,IAAA,SAAA4B,GACA,MAAAA,GAAAjwB,GAAAoC,SACA6tB,EACA,GAAAjwB,IAAAmwB,MAAAF,IAGA3C,SACA7tB,MAGA2wB,UAAA,GAEArL,OAGAsL,QAAA,WACA,GAAA/vB,OAAAoG,KAAApG,KAAAykB,MAEA,MADAzkB,MAAAykB,SACA,GAGA6I,aAAA,WAEA0C,MACAD,QAAA,WACA,GAAA/vB,OAAAoG,KAAApG,KAAAgwB,KAEA,MADAhwB,MAAAgwB,QACA,GAGA1C,aAAA,YAEA2C,OAGAF,QAAA,WACA,GAAA,aAAA/vB,KAAAG,MAAAH,KAAAiwB,OAAAjsB,EAAAhE,KAAA,SAEA,MADAA,MAAAiwB,SACA,GAKA1qB,SAAA,SAAAsB,GACA,MAAA7C,GAAA6C,EAAA+L,OAAA,OAIAsd,cACAzB,aAAA,SAAA5nB,OAIAzH,KAAAyH,EAAAiJ,QAAAjJ,EAAA8oB,gBACA9oB,EAAA8oB,cAAAQ,YAAAtpB,EAAAiJ,YAOApQ,GAAAouB,YAAA,SAAAntB,EAAAR,EAAA8H,GAGAtH,EAAAgB,qBACAhB,EAAAgB,oBAAAxB,EAAA8H,IAIAvI,GAAAmwB,MAAA,SAAAroB,EAAA0G,GAGA,KAAAlO,eAAAN,IAAAmwB,OACA,MAAA,IAAAnwB,IAAAmwB,MAAAroB,EAAA0G,EAIA1G,IAAAA,EAAArH,MACAH,KAAA2vB,cAAAnoB,EACAxH,KAAAG,KAAAqH,EAAArH,KAIAH,KAAAowB,mBAAA5oB,EAAA6oB,sBACAjxB,KAAAoI,EAAA6oB,mBAGA,IAAA7oB,EAAA2oB,YACAjqB,EACAC,EAKAnG,KAAA4S,OAAApL,EAAAoL,QAAA,IAAApL,EAAAoL,OAAAhS,SACA4G,EAAAoL,OAAAjJ,WACAnC,EAAAoL,OAEA5S,KAAAouB,cAAA5mB,EAAA4mB,cACApuB,KAAA8wB,cAAAtpB,EAAAspB,eAIA9wB,KAAAG,KAAAqH,EAIA0G,GACAxO,GAAAwI,OAAAlI,KAAAkO,GAIAlO,KAAAswB,UAAA9oB,GAAAA,EAAA8oB,WAAA/Y,KAAAjK,MAGAtN,KAAAN,GAAAoC,UAAA,GAKApC,GAAAmwB,MAAA/xB,WACAyX,YAAA7V,GAAAmwB,MACAO,mBAAAjqB,EACAgoB,qBAAAhoB,EACAkoB,8BAAAloB,EACAoqB,aAAA,EAEAhC,eAAA,WACA,GAAA9vB,GAAAuB,KAAA2vB,aAEA3vB,MAAAowB,mBAAAlqB,EAEAzH,IAAAuB,KAAAuwB,aACA9xB,EAAA8vB,kBAGAC,gBAAA,WACA,GAAA/vB,GAAAuB,KAAA2vB,aAEA3vB,MAAAmuB,qBAAAjoB,EAEAzH,IAAAuB,KAAAuwB,aACA9xB,EAAA+vB,mBAGAgC,yBAAA,WACA,GAAA/xB,GAAAuB,KAAA2vB,aAEA3vB,MAAAquB,8BAAAnoB,EAEAzH,IAAAuB,KAAAuwB,aACA9xB,EAAA+xB,2BAGAxwB,KAAAwuB,oBAKA9uB,GAAA2B,MACA8kF,QAAA,EACAC,SAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,SAAA,EACAC,QAAA,EACAC,YAAA,EACAC,SAAA,EACAv3D,OAAA,EACAI,OAAA,EACAo3D,UAAA,EACAx0D,MAAA,EACAy0D,MAAA,EACA73D,UAAA,EACA9sB,KAAA,EACA+sB,SAAA,EACA/J,QAAA,EACA4hE,SAAA,EACAz3D,SAAA,EACAI,SAAA,EACAs3D,SAAA,EACAC,SAAA,EACAC,WAAA,EACAC,aAAA,EACAC,SAAA,EACAC,SAAA,EACAC,eAAA,EACAC,WAAA,EACAC,SAAA,EAEA75E,MAAA,SAAA5G,GACA,GAAAoe,GAAApe,EAAAoe,MAGA,OAAA,OAAApe,EAAA4G,OAAAgf,GAAA/wB,KAAAmL,EAAA1G,MACA,MAAA0G,EAAAkoB,SAAAloB,EAAAkoB,SAAAloB,EAAAmoB,SAIAnoB,EAAA4G,WAAArO,KAAA6lB,GAAAyH,GAAAhxB,KAAAmL,EAAA1G,MACA,EAAA8kB,EACA,EAGA,EAAAA,EACA,EAGA,EAAAA,EACA,EAGA,EAGApe,EAAA4G,QAEA/N,GAAAmH,MAAAo/E,SAUAvmF,GAAA2B,MACAovB,WAAA,YACAC,WAAA,WACAC,aAAA,cACAC,aAAA,cACA,SAAApiB,EAAAuf,GACAruB,GAAAmH,MAAAmmB,QAAAxe,IACA8e,aAAAS,EACAR,SAAAQ,EAEA9lB,OAAA,SAAApB,GACA,GAAA7H,GACA4T,EAAA5S,KACA6wB,EAAAhqB,EAAAiqB,cACA/D,EAAAlmB,EAAAkmB,SASA,OALA8D,KAAAA,IAAAje,GAAAlT,GAAAoF,SAAA8N,EAAAie,MACAhqB,EAAA1G,KAAA4sB,EAAAG,SACAluB,EAAA+tB,EAAAlT,QAAApd,MAAAuD,KAAA1D,WACAuK,EAAA1G,KAAA4tB,GAEA/uB,MAKAU,GAAAgH,GAAAwB,QAEA3B,GAAA,SAAAC,EAAAC,EAAAvE,EAAAwE,GACA,MAAAH,GAAAvG,KAAAwG,EAAAC,EAAAvE,EAAAwE,IAEAC,IAAA,SAAAH,EAAAC,EAAAvE,EAAAwE,GACA,MAAAH,GAAAvG,KAAAwG,EAAAC,EAAAvE,EAAAwE,EAAA,IAEAI,IAAA,SAAAN,EAAAC,EAAAC,GACA,GAAAqmB,GAAA5sB,CACA,IAAAqG,GAAAA,EAAA+nB,gBAAA/nB,EAAAumB,UAWA,MARAA,GAAAvmB,EAAAumB,UACArtB,GAAA8G,EAAAynB,gBAAAnnB,IACAimB,EAAAS,UACAT,EAAAG,SAAA,IAAAH,EAAAS,UACAT,EAAAG,SACAH,EAAAtmB,SACAsmB,EAAAlT,SAEA7Z,IAEA,IAAA,gBAAAwG,GAAA,CAGA,IAAArG,IAAAqG,GACAxG,KAAA8G,IAAA3G,EAAAsG,EAAAD,EAAArG,GAEA,OAAAH,MAWA,OATA,IAAAyG,GAAA,kBAAAA,KAGAC,EAAAD,EACAA,MAAArH,KAEA,IAAAsH,IACAA,EAAAP,GAEAnG,KAAAqB,KAAA,WACA3B,GAAAmH,MAAA2C,OAAAxJ,KAAAwG,EAAAE,EAAAD,OAMA,IAKAsqB,IAAA,8FAOAC,GAAA,wBAGAhoB,GAAA,oCACAO,GAAA,0CA2LA7J,IAAAwI,QACAzC,cAAA,SAAA0D,GACA,MAAAA,GAAAxN,QAAAo1B,GAAA,cAGA3nB,MAAA,SAAAzI,EAAAswB,EAAAC,GACA,GAAAp2B,GAAAuJ,EAAA8sB,EAAAC,EACAhoB,EAAAzI,EAAA4rB,WAAA,GACA8E,EAAA3xB,GAAAoF,SAAAnE,EAAAqF,cAAArF,EAGA,MAAAmI,GAAA0jB,gBAAA,IAAA7rB,EAAAC,UAAA,KAAAD,EAAAC,UACAlB,GAAA4mB,SAAA3lB,IAMA,IAHAywB,EAAAztB,EAAAyF,GACA+nB,EAAAxtB,EAAAhD,GAEA7F,EAAA,EAAAuJ,EAAA8sB,EAAA51B,OAAAT,EAAAuJ,EAAAvJ,IACAqN,EAAAgpB,EAAAr2B,GAAAs2B,EAAAt2B,GAKA,IAAAm2B,EACA,GAAAC,EAIA,IAHAC,EAAAA,GAAAxtB,EAAAhD,GACAywB,EAAAA,GAAAztB,EAAAyF,GAEAtO,EAAA,EAAAuJ,EAAA8sB,EAAA51B,OAAAT,EAAAuJ,EAAAvJ,IACAyM,EAAA4pB,EAAAr2B,GAAAs2B,EAAAt2B,QAGAyM,GAAA5G,EAAAyI,EAWA,OANAgoB,GAAAztB,EAAAyF,EAAA,UACAgoB,EAAA71B,OAAA,GACA2I,EAAAktB,GAAAC,GAAA1tB,EAAAhD,EAAA,WAIAyI,GAGAM,UAAA,SAAAvF,GAKA,IAJA,GAAAjC,GAAAvB,EAAAR,EACA6sB,EAAAttB,GAAAmH,MAAAmmB,QACAlyB,EAAA,MAEAsE,MAAAuB,EAAAwD,EAAArJ,IAAAA,IACA,GAAAyvB,GAAA5pB,GAAA,CACA,GAAAuB,EAAAvB,EAAA2D,GAAAxC,SAAA,CACA,GAAAI,EAAA4F,OACA,IAAA3H,IAAA+B,GAAA4F,OACAklB,EAAA7sB,GACAT,GAAAmH,MAAA2C,OAAA7I,EAAAR,GAIAT,GAAAouB,YAAAntB,EAAAR,EAAA+B,EAAA+F,OAOAtH,GAAA2D,GAAAxC,aAAA1C,GAEAuB,EAAA6B,GAAAV,WAIAnB,EAAA6B,GAAAV,aAAA1C,QAOAM,GAAAgH,GAAAwB,QACA+B,OAAA,SAAAxD,GACA,MAAA+C,GAAAxJ,KAAAyG,GAAA,IAGA+C,OAAA,SAAA/C,GACA,MAAA+C,GAAAxJ,KAAAyG,IAGAqQ,KAAA,SAAAja,GACA,MAAAmL,IAAAhI,KAAA,SAAAnD,GACA,WAAAuC,KAAAvC,EACA6C,GAAAoX,KAAA9W,MACAA,KAAA6O,QAAAxN,KAAA,WACA,IAAArB,KAAAY,UAAA,KAAAZ,KAAAY,UAAA,IAAAZ,KAAAY,WACAZ,KAAA6F,YAAAhJ,MAGA,KAAAA,EAAAP,UAAAf,SAGA+1B,OAAA,WACA,MAAA/oB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACA,GAAA,IAAAX,KAAAY,UAAA,KAAAZ,KAAAY,UAAA,IAAAZ,KAAAY,SAAA,CACAqG,EAAAjH,KAAAW,GACAwE,YAAAxE,OAKA4wB,QAAA,WACA,MAAAhpB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACA,GAAA,IAAAX,KAAAY,UAAA,KAAAZ,KAAAY,UAAA,IAAAZ,KAAAY,SAAA,CACA,GAAAgS,GAAA3L,EAAAjH,KAAAW,EACAiS,GAAA4e,aAAA7wB,EAAAiS,EAAAhN,gBAKA6rB,OAAA,WACA,MAAAlpB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACAX,KAAA2J,YACA3J,KAAA2J,WAAA6nB,aAAA7wB,EAAAX,SAKA0xB,MAAA,WACA,MAAAnpB,GAAAvI,KAAA1D,UAAA,SAAAqE,GACAX,KAAA2J,YACA3J,KAAA2J,WAAA6nB,aAAA7wB,EAAAX,KAAAqa,gBAKAxL,MAAA,WAIA,IAHA,GAAAlO,GACA7F,EAAA,EAEA,OAAA6F,EAAAX,KAAAlF,IAAAA,IACA,IAAA6F,EAAAC,WAGAlB,GAAAgK,UAAA/F,EAAAhD,GAAA,IAGAA,EAAAkF,YAAA,GAIA,OAAA7F,OAGAoJ,MAAA,SAAA6nB,EAAAC,GAIA,MAHAD,GAAA,MAAAA,GAAAA,EACAC,EAAA,MAAAA,EAAAD,EAAAC,EAEAlxB,KAAA5E,IAAA,WACA,MAAAsE,IAAA0J,MAAApJ,KAAAixB,EAAAC,MAIA/nB,KAAA,SAAAtM,GACA,MAAAmL,IAAAhI,KAAA,SAAAnD,GACA,GAAA8D,GAAAX,KAAA,OACAlF,EAAA,EACAuJ,EAAArE,KAAAzE,MAEA,QAAA6D,KAAAvC,GAAA,IAAA8D,EAAAC,SACA,MAAAD,GAAA6E,SAIA,IAAA,gBAAA3I,KAAAm0B,GAAAt1B,KAAAmB,KACAyI,IAAAD,GAAA9B,KAAA1G,KAAA,GAAA,KAAA,GAAAuF,eAAA,CAEAvF,EAAA6C,GAAA+F,cAAA5I,EAEA,KACA,KAAA/B,EAAAuJ,EAAAvJ,IACA6F,EAAAX,KAAAlF,OAGA,IAAA6F,EAAAC,WACAlB,GAAAgK,UAAA/F,EAAAhD,GAAA,IACAA,EAAA6E,UAAA3I,EAIA8D,GAAA,EAGA,MAAAlC,KAGAkC,GACAX,KAAA6O,QAAAyiB,OAAAz0B,IAEA,KAAAA,EAAAP,UAAAf,SAGAo2B,YAAA,WACA,GAAAhtB,KAGA,OAAA4D,GAAAvI,KAAA1D,UAAA,SAAAqE,GACA,GAAAkgB,GAAA7gB,KAAA2J,UAEAjK,IAAAqG,QAAA/F,KAAA2E,GAAA,IACAjF,GAAAgK,UAAA/F,EAAA3D,OACA6gB,GACAA,EAAA+Q,aAAAjxB,EAAAX,QAKA2E,MAIAjF,GAAA2B,MACAyI,SAAA,SACA+nB,UAAA,UACAL,aAAA,SACAM,YAAA,QACAC,WAAA,eACA,SAAA33B,EAAA00B,GACApvB,GAAAgH,GAAAtM,GAAA,SAAAqM,GAOA,IANA,GAAAtC,GACAnF,KACAgzB,EAAAtyB,GAAA+G,GACAmP,EAAAoc,EAAAz2B,OAAA,EACAT,EAAA,EAEAA,GAAA8a,EAAA9a,IACAqJ,EAAArJ,IAAA8a,EAAA5V,KAAAA,KAAAoJ,OAAA,GACA1J,GAAAsyB,EAAAl3B,IAAAg0B,GAAA3qB,GAIA5H,GAAAE,MAAAuC,EAAAmF,EAAAI,MAGA,OAAAvE,MAAA0V,UAAA1W,KAGA,IAAAiM,IAAA,GAAAiU,QAAA,KAAAuM,GAAA,kBAAA,KAEA3gB,GAAA,SAAAnK,GAKA,GAAAwxB,GAAAxxB,EAAAqF,cAAA4O,WAMA,OAJAud,IAAAA,EAAAC,SACAD,EAAApyB,GAGAoyB,EAAAE,iBAAA1xB,IAGA0iF,GAAA,GAAAnkE,QAAA7S,GAAArQ,KAAA,KAAA,MAIA,WAIA,QAAAw2B,KAGA,GAAA7Y,EAAA,CAIA+Y,EAAAlvB,MAAAivB,QAAA,+EAEA9Y,EAAAnW,MAAAivB,QACA,4HAGApoB,GAAAlF,YAAAutB,GAAAvtB,YAAAwU,EAEA,IAAAgZ,GAAA5yB,EAAAsyB,iBAAA1Y,EACAiZ,GAAA,OAAAD,EAAA7R,IAGA+R,EAAA,KAAA00D,EAAA50D,EAAAG,YAIAnZ,EAAAnW,MAAAgkF,MAAA,MACAC,EAAA,KAAAF,EAAA50D,EAAA60D,OAIAz0D,EAAA,KAAAw0D,EAAA50D,EAAAhoB,OAIAgP,EAAAnW,MAAAkwB,SAAA,WACAg0D,EAAA,KAAA/tE,EAAAnN,aAAA,WAEAnC,GAAAT,YAAA8oB,GAIA/Y,EAAA,MAGA,QAAA4tE,GAAAI,GACA,MAAA77E,MAAAm1C,MAAAt0C,WAAAg7E,IAGA,GAAA/0D,GAAAG,EAAA20D,EAAAD,EACA50D,EACAH,EAAA7yB,GAAAuF,cAAA,OACAuU,EAAA9Z,GAAAuF,cAAA,MAGAuU,GAAAnW,QAMAmW,EAAAnW,MAAA0vB,eAAA,cACAvZ,EAAA4S,WAAA,GAAA/oB,MAAA0vB,eAAA,GACApqB,GAAAqqB,gBAAA,gBAAAxZ,EAAAnW,MAAA0vB,eAEAxzB,GAAAwI,OAAAY,IACA4D,kBAAA,WAEA,MADA8lB,KACAO,GAEAqwD,eAAA,WAEA,MADA5wD,KACAi1D,GAEAr0D,cAAA,WAEA,MADAZ,KACAI,GAEAS,mBAAA,WAEA,MADAb,KACAK,GAEA+0D,cAAA,WAEA,MADAp1D,KACAk1D,QA+EA,IAKAl0D,IAAA,4BACAq0D,GAAA,MACAp0D,IAAAC,SAAA,WAAAC,WAAA,SAAA3pB,QAAA,SACA4pB,IACAC,cAAA,IACAC,WAAA,OAGApoB,IAAA,SAAA,MAAA,MACAH,GAAA1L,GAAAuF,cAAA,OAAA5B,KAkKA9D,IAAAwI,QAIAyH,UACA/B,SACArJ,IAAA,SAAA5D,EAAA+J,GACA,GAAAA,EAAA,CAGA,GAAA1L,GAAAyL,EAAA9J,EAAA,UACA,OAAA,KAAA3B,EAAA,IAAAA,MAOAoE,WACA2wB,yBAAA,EACAC,aAAA,EACAC,aAAA,EACAC,UAAA,EACAC,YAAA,EACAL,YAAA,EACAM,YAAA,EACAxmB,SAAA,EACAymB,OAAA,EACAC,SAAA,EACAC,QAAA,EACAC,QAAA,EACAC,MAAA,GAKAC,YAGAlxB,MAAA,SAAA7C,EAAAvG,EAAAyC,EAAAoP,GAGA,GAAAtL,GAAA,IAAAA,EAAAC,UAAA,IAAAD,EAAAC,UAAAD,EAAA6C,MAAA,CAKA,GAAAxE,GAAAmB,EAAAkO,EACAumB,EAAAnlB,EAAArV,GACA0tF,EAAAD,GAAAnsF,KAAAtB,GACAoJ,EAAA7C,EAAA6C,KAaA,IARAskF,IACA1tF,EAAAkpF,EAAA1uD,IAIAvmB,EAAA3O,GAAAiQ,SAAAvV,IAAAsF,GAAAiQ,SAAAilB,OAGAx1B,KAAAvC,EAwCA,MAAAwR,IAAA,OAAAA,QACAjP,MAAAJ,EAAAqP,EAAA9J,IAAA5D,GAAA,EAAAsL,IAEAjN,EAIAwE,EAAApJ,EA9CA+F,SAAAtD,GAGA,WAAAsD,IAAAnB,EAAAsE,GAAAC,KAAA1G,KAAAmC,EAAA,KACAnC,EAAA6F,EAAA/B,EAAAvG,EAAA4E,GAGAmB,EAAA,UAIA,MAAAtD,GAAAA,IAAAA,IAKA,WAAAsD,IACAtD,GAAAmC,GAAAA,EAAA,KAAAU,GAAA0D,UAAAwxB,GAAA,GAAA,OAIA9rB,GAAAqqB,iBAAA,KAAAt2B,GAAA,IAAAzC,EAAAmD,QAAA,gBACAiG,EAAApJ,GAAA,WAIAiU,GAAA,OAAAA,QACAjP,MAAAvC,EAAAwR,EAAA5L,IAAA9B,EAAA9D,EAAAoP,MAEA67E,EACAtkF,EAAAukF,YAAA3tF,EAAAyC,GAEA2G,EAAApJ,GAAAyC,MAkBAoG,IAAA,SAAAtC,EAAAvG,EAAA6R,EAAAE,GACA,GAAAC,GAAAqJ,EAAApH,EACAumB,EAAAnlB,EAAArV,EA6BA,OA5BAytF,IAAAnsF,KAAAtB,KAMAA,EAAAkpF,EAAA1uD,IAIAvmB,EAAA3O,GAAAiQ,SAAAvV,IAAAsF,GAAAiQ,SAAAilB,GAGAvmB,GAAA,OAAAA,KACAjC,EAAAiC,EAAA9J,IAAA5D,GAAA,EAAAsL,QAIA7M,KAAAgN,IACAA,EAAA3B,EAAA9J,EAAAvG,EAAA+R,IAIA,WAAAC,GAAAhS,IAAAw5B,MACAxnB,EAAAwnB,GAAAx5B,IAIA,KAAA6R,GAAAA,GACAwJ,EAAA9I,WAAAP,IACA,IAAAH,GAAA4oB,SAAApf,GAAAA,GAAA,EAAArJ,GAGAA,KAIA1M,GAAA2B,MAAA,SAAA,SAAA,SAAAvG,EAAA0oF,GACA9jF,GAAAiQ,SAAA6zE,IACAj/E,IAAA,SAAA5D,EAAA+J,EAAAuB,GACA,GAAAvB,EAIA,OAAA8oB,GAAA93B,KAAAgE,GAAAuD,IAAAtC,EAAA,aAQAA,EAAA4+B,iBAAAhkC,QAAAoF,EAAAm0B,wBAAAnqB,MAIA2B,EAAA3L,EAAA6iF,EAAAv3E,GAHAqmB,GAAA3xB,EAAA8yB,GAAA,WACA,MAAAnnB,GAAA3L,EAAA6iF,EAAAv3E,MAMAxJ,IAAA,SAAA9B,EAAA9D,EAAAoP,GACA,GAAAJ,GACAM,EAAArB,GAAAnK,GACAuL,EAAA,eAAAxM,GAAAuD,IAAAtC,EAAA,aAAA,EAAAwL,GACAP,EAAAK,GAAAs3E,EACA5iF,EACA6iF,EACAv3E,EACAC,EACAC,EAsBA,OAjBAD,IAAApD,GAAA8+E,kBAAAz7E,EAAAunB,WACA9nB,GAAAE,KAAAw1C,KACA3gD,EAAA,SAAA6iF,EAAA,GAAA/3E,cAAA+3E,EAAA3nF,MAAA,IACA8Q,WAAAR,EAAAq3E,IACAD,EAAA5iF,EAAA6iF,EAAA,UAAA,EAAAr3E,GACA,KAKAP,IAAAC,EAAAvI,GAAAC,KAAA1G,KACA,QAAAgP,EAAA,IAAA,QAEAlL,EAAA6C,MAAAggF,GAAA3mF,EACAA,EAAA6C,GAAAuD,IAAAtC,EAAA6iF,IAGA73E,EAAAhL,EAAA9D,EAAA+O,OAKAlM,GAAAiQ,SAAAmjB,WAAA3nB,EAAArC,GAAAuqB,mBACA,SAAA1yB,EAAA+J,GACA,GAAAA,EACA,OAAAiC,WAAAlC,EAAA9J,EAAA,gBACAA,EAAAm0B,wBAAAC,KACAzC,GAAA3xB,GAAAmyB,WAAA,GAAA,WACA,MAAAnyB,GAAAm0B,wBAAAC,QAEA,OAMAr1B,GAAA2B,MACA2zB,OAAA,GACAC,QAAA,GACAC,OAAA,SACA,SAAA73B,EAAA83B,GACAz1B,GAAAiQ,SAAAtS,EAAA83B,IACAvlB,OAAA,SAAA/S,GAOA,IANA,GAAA/B,GAAA,EACAs6B,KAGAl3B,EAAA,gBAAArB,GAAAA,EAAA1B,MAAA,MAAA0B,GAEA/B,EAAA,EAAAA,IACAs6B,EAAA/3B,EAAAgP,GAAAvR,GAAAq6B,GACAj3B,EAAApD,IAAAoD,EAAApD,EAAA,IAAAoD,EAAA,EAGA,OAAAk3B,KAIA,WAAA/3B,IACAqC,GAAAiQ,SAAAtS,EAAA83B,GAAA1yB,IAAAkJ,KAIAjM,GAAAgH,GAAAwB,QACAjF,IAAA,SAAA7I,EAAAyC,GACA,MAAAmL,IAAAhI,KAAA,SAAAW,EAAAvG,EAAAyC,GACA,GAAAsP,GAAA0J,EACAza,KACAN,EAAA,CAEA,IAAAwb,MAAA5G,QAAAtV,GAAA,CAIA,IAHA+R,EAAArB,GAAAnK,GACAkV,EAAAzb,EAAAmB,OAEAT,EAAA+a,EAAA/a,IACAM,EAAAhB,EAAAU,IAAA4E,GAAAuD,IAAAtC,EAAAvG,EAAAU,IAAA,EAAAqR,EAGA,OAAA/Q,GAGA,WAAAgE,KAAAvC,EACA6C,GAAA8D,MAAA7C,EAAAvG,EAAAyC,GACA6C,GAAAuD,IAAAtC,EAAAvG,IACAA,EAAAyC,EAAAP,UAAAf,OAAA,MAQAmE,GAAAuN,MAAAA,EAEAA,EAAAnP,WACAyX,YAAAtI,EACAE,KAAA,SAAAxM,EAAAQ,EAAAnH,EAAA0J,EAAAwJ,EAAA/J,GACAnD,KAAAW,KAAAA,EACAX,KAAAhG,KAAAA,EACAgG,KAAAkN,OAAAA,GAAAxN,GAAAwN,OAAA3H,SACAvF,KAAAmB,QAAAA,EACAnB,KAAAyD,MAAAzD,KAAAsN,IAAAtN,KAAAgB,MACAhB,KAAA0D,IAAAA,EACA1D,KAAAmD,KAAAA,IAAAzD,GAAA0D,UAAApJ,GAAA,GAAA,OAEAgH,IAAA,WACA,GAAAqN,GAAApB,EAAAooB,UAAAr1B,KAAAhG,KAEA,OAAAqU,IAAAA,EAAA9J,IACA8J,EAAA9J,IAAAvE,MACAiN,EAAAooB,UAAA9vB,SAAAhB,IAAAvE,OAEA2Q,IAAA,SAAAF,GACA,GAAA6kB,GACAjnB,EAAApB,EAAAooB,UAAAr1B,KAAAhG,KAoBA,OAlBAgG,MAAAmB,QAAAoP,SACAvQ,KAAAqnB,IAAAiO,EAAA51B,GAAAwN,OAAAlN,KAAAkN,QACAuD,EAAAzQ,KAAAmB,QAAAoP,SAAAE,EAAA,EAAA,EAAAzQ,KAAAmB,QAAAoP,UAGAvQ,KAAAqnB,IAAAiO,EAAA7kB,EAEAzQ,KAAAsN,KAAAtN,KAAA0D,IAAA1D,KAAAyD,OAAA6xB,EAAAt1B,KAAAyD,MAEAzD,KAAAmB,QAAAo0B,MACAv1B,KAAAmB,QAAAo0B,KAAAr7B,KAAA8F,KAAAW,KAAAX,KAAAsN,IAAAtN,MAGAqO,GAAAA,EAAA5L,IACA4L,EAAA5L,IAAAzC,MAEAiN,EAAAooB,UAAA9vB,SAAA9C,IAAAzC,MAEAA,OAIAiN,EAAAnP,UAAAqP,KAAArP,UAAAmP,EAAAnP,UAEAmP,EAAAooB,WACA9vB,UACAhB,IAAA,SAAA3B,GACA,GAAAkN,EAIA,OAAA,KAAAlN,EAAAjC,KAAAC,UACA,MAAAgC,EAAAjC,KAAAiC,EAAA5I,OAAA,MAAA4I,EAAAjC,KAAA6C,MAAAZ,EAAA5I,MACA4I,EAAAjC,KAAAiC,EAAA5I,OAOA8V,EAAApQ,GAAAuD,IAAAL,EAAAjC,KAAAiC,EAAA5I,KAAA,IAGA8V,GAAA,SAAAA,EAAAA,EAAA,IAEArN,IAAA,SAAAG,GAKAlD,GAAA2R,GAAAkkB,KAAA3yB,EAAA5I,MACA0F,GAAA2R,GAAAkkB,KAAA3yB,EAAA5I,MAAA4I,GACA,IAAAA,EAAAjC,KAAAC,UACA,MAAAgC,EAAAjC,KAAA6C,MAAA9D,GAAAg1B,SAAA9xB,EAAA5I,SACA0F,GAAAiQ,SAAA/M,EAAA5I,MAGA4I,EAAAjC,KAAAiC,EAAA5I,MAAA4I,EAAA0K,IAFA5N,GAAA8D,MAAAZ,EAAAjC,KAAAiC,EAAA5I,KAAA4I,EAAA0K,IAAA1K,EAAAO,SAUA8J,EAAAooB,UAAA5F,UAAAxiB,EAAAooB,UAAAhG,YACA5sB,IAAA,SAAAG,GACAA,EAAAjC,KAAAC,UAAAgC,EAAAjC,KAAAgJ,aACA/G,EAAAjC,KAAAiC,EAAA5I,MAAA4I,EAAA0K,OAKA5N,GAAAwN,QACAsoB,OAAA,SAAAj3B,GACA,MAAAA,IAEAk3B,MAAA,SAAAl3B,GACA,MAAA,GAAAuN,KAAA4pB,IAAAn3B,EAAAuN,KAAA6pB,IAAA,GAEApwB,SAAA,SAGA7F,GAAA2R,GAAApE,EAAAnP,UAAAqP,KAGAzN,GAAA2R,GAAAkkB,OAKA,IACAloB,IAAAs2E,GACAx0E,GAAA,yBACA0mB,GAAA,aAuYAn2B,IAAAqO,UAAArO,GAAAwI,OAAA6F,GAEAC,UACA8nB,KAAA,SAAA97B,EAAA6C,GACA,GAAA+F,GAAA5C,KAAA6N,YAAA7T,EAAA6C,EAEA,OADA6F,GAAAE,EAAAjC,KAAA3G,EAAAsJ,GAAAC,KAAA1G,GAAA+F,GACAA,KAIAmzB,QAAA,SAAA7nB,EAAApP,GACA2B,GAAAyN,IACApP,EAAAoP,EACAA,GAAA,MAEAA,EAAAA,EAAA5M,MAAAmhF,GAOA,KAJA,GAAAzoF,GACAsD,EAAA,EACA/B,EAAA2S,EAAA3S,OAEA+B,EAAA/B,EAAA+B,IACAtD,EAAAkU,EAAA5Q,GACAyQ,EAAAC,SAAAhU,GAAA+T,EAAAC,SAAAhU,OACA+T,EAAAC,SAAAhU,GAAAiY,QAAAnT,IAIAkR,YAAA/B,GAEA+nB,UAAA,SAAAl3B,EAAAyyB,GACAA,EACAxjB,EAAAiC,WAAAiC,QAAAnT,GAEAiP,EAAAiC,WAAAzT,KAAAuC,MAKAY,GAAAu2B,MAAA,SAAAA,EAAA/oB,EAAAxG,GACA,GAAAwvB,GAAAD,GAAA,gBAAAA,GAAAv2B,GAAAwI,UAAA+tB,IACAzkB,SAAA9K,IAAAA,GAAAwG,GACAzM,GAAAw1B,IAAAA,EACA1lB,SAAA0lB,EACA/oB,OAAAxG,GAAAwG,GAAAA,IAAAzM,GAAAyM,IAAAA,EAoCA,OAhCAxN,IAAA2R,GAAAvK,IACAovB,EAAA3lB,SAAA,EAGA,gBAAA2lB,GAAA3lB,WACA2lB,EAAA3lB,WAAA7Q,IAAA2R,GAAA8kB,OACAD,EAAA3lB,SAAA7Q,GAAA2R,GAAA8kB,OAAAD,EAAA3lB,UAGA2lB,EAAA3lB,SAAA7Q,GAAA2R,GAAA8kB,OAAA5wB,UAMA,MAAA2wB,EAAAxnB,QAAA,IAAAwnB,EAAAxnB,QACAwnB,EAAAxnB,MAAA,MAIAwnB,EAAA3D,IAAA2D,EAAA1kB,SAEA0kB,EAAA1kB,SAAA,WACA/Q,GAAAy1B,EAAA3D,MACA2D,EAAA3D,IAAAr4B,KAAA8F,MAGAk2B,EAAAxnB,OACAhP,GAAAyrB,QAAAnrB,KAAAk2B,EAAAxnB,QAIAwnB,GAGAx2B,GAAAgH,GAAAwB,QACAkuB,OAAA,SAAAH,EAAAI,EAAAnpB,EAAApO,GAGA,MAAAkB,MAAAc,OAAAoiF,IAAAjgF,IAAA,UAAA,GAAA4J,OAGAnJ,MAAA4yB,SAAA1oB,QAAAyoB,GAAAJ,EAAA/oB,EAAApO,IAEAw3B,QAAA,SAAAt8B,EAAAi8B,EAAA/oB,EAAApO,GACA,GAAA+P,GAAAnP,GAAA0P,cAAApV,GACAu8B,EAAA72B,GAAAu2B,MAAAA,EAAA/oB,EAAApO,GACA03B,EAAA,WAGA,GAAAjoB,GAAAR,EAAA/N,KAAAN,GAAAwI,UAAAlO,GAAAu8B,IAGA1nB,GAAAvK,GAAAC,IAAAvE,KAAA,YACAuO,EAAA0C,MAAA,GAKA,OAFAulB,GAAAC,OAAAD,EAEA3nB,IAAA,IAAA0nB,EAAA7nB,MACA1O,KAAAqB,KAAAm1B,GACAx2B,KAAA0O,MAAA6nB,EAAA7nB,MAAA8nB,IAEAvlB,KAAA,SAAA9Q,EAAAmrB,EAAApa,GACA,GAAAwlB,GAAA,SAAAroB,GACA,GAAA4C,GAAA5C,EAAA4C,WACA5C,GAAA4C,KACAA,EAAAC,GAYA,OATA,gBAAA/Q,KACA+Q,EAAAoa,EACAA,EAAAnrB,EACAA,MAAAf,IAEAksB,IAAA,IAAAnrB,GACAH,KAAA0O,MAAAvO,GAAA,SAGAH,KAAAqB,KAAA,WACA,GAAA8pB,IAAA,EACA7tB,EAAA,MAAA6C,GAAAA,EAAA,aACAw2B,EAAAj3B,GAAAi3B,OACAz0B,EAAAoC,GAAAC,IAAAvE,KAEA,IAAA1C,EACA4E,EAAA5E,IAAA4E,EAAA5E,GAAA2T,MACAylB,EAAAx0B,EAAA5E,QAGA,KAAAA,IAAA4E,GACAA,EAAA5E,IAAA4E,EAAA5E,GAAA2T,MAAA4kB,GAAAn6B,KAAA4B,IACAo5B,EAAAx0B,EAAA5E,GAKA,KAAAA,EAAAq5B,EAAAp7B,OAAA+B,KACAq5B,EAAAr5B,GAAAqD,OAAAX,MACA,MAAAG,GAAAw2B,EAAAr5B,GAAAoR,QAAAvO,IAEAw2B,EAAAr5B,GAAAiR,KAAA0C,KAAAC,GACAia,GAAA,EACAwL,EAAA56B,OAAAuB,EAAA,KAOA6tB,GAAAja,GACAxR,GAAAyrB,QAAAnrB,KAAAG,MAIAs2B,OAAA,SAAAt2B,GAIA,OAHA,IAAAA,IACAA,EAAAA,GAAA,MAEAH,KAAAqB,KAAA,WACA,GAAA/D,GACA4E,EAAAoC,GAAAC,IAAAvE,MACA0O,EAAAxM,EAAA/B,EAAA,SACAkO,EAAAnM,EAAA/B,EAAA,cACAw2B,EAAAj3B,GAAAi3B,OACAp7B,EAAAmT,EAAAA,EAAAnT,OAAA,CAaA,KAVA2G,EAAAu0B,QAAA,EAGA/2B,GAAAgP,MAAA1O,KAAAG,MAEAkO,GAAAA,EAAA4C,MACA5C,EAAA4C,KAAA/W,KAAA8F,MAAA,GAIA1C,EAAAq5B,EAAAp7B,OAAA+B,KACAq5B,EAAAr5B,GAAAqD,OAAAX,MAAA22B,EAAAr5B,GAAAoR,QAAAvO,IACAw2B,EAAAr5B,GAAAiR,KAAA0C,MAAA,GACA0lB,EAAA56B,OAAAuB,EAAA,GAKA,KAAAA,EAAA,EAAAA,EAAA/B,EAAA+B,IACAoR,EAAApR,IAAAoR,EAAApR,GAAAm5B,QACA/nB,EAAApR,GAAAm5B,OAAAv8B,KAAA8F,YAKAkC,GAAAu0B,YAKA/2B,GAAA2B,MAAA,SAAA,OAAA,QAAA,SAAAvG,EAAAV,GACA,GAAAw8B,GAAAl3B,GAAAgH,GAAAtM,EACAsF,IAAAgH,GAAAtM,GAAA,SAAA67B,EAAA/oB,EAAApO,GACA,MAAA,OAAAm3B,GAAA,iBAAAA,GACAW,EAAAn6B,MAAAuD,KAAA1D,WACA0D,KAAAs2B,QAAA/oB,EAAAnT,GAAA,GAAA67B,EAAA/oB,EAAApO,MAKAY,GAAA2B,MACAw1B,UAAAtpB,EAAA,QACAupB,QAAAvpB,EAAA,QACAwpB,YAAAxpB,EAAA,UACAypB,QAAAppB,QAAA,QACAqpB,SAAArpB,QAAA,QACAspB,YAAAtpB,QAAA,WACA,SAAAxT,EAAA8T,GACAxO,GAAAgH,GAAAtM,GAAA,SAAA67B,EAAA/oB,EAAApO,GACA,MAAAkB,MAAAs2B,QAAApoB,EAAA+nB,EAAA/oB,EAAApO,MAIAY,GAAAi3B,UACAj3B,GAAA2R,GAAAlB,KAAA,WACA,GAAAmB,GACAxW,EAAA,EACA67B,EAAAj3B,GAAAi3B,MAIA,KAFAtpB,GAAAkK,KAAAjK,MAEAxS,EAAA67B,EAAAp7B,OAAAT,KACAwW,EAAAqlB,EAAA77B,OAGA67B,EAAA77B,KAAAwW,GACAqlB,EAAA56B,OAAAjB,IAAA,EAIA67B,GAAAp7B,QACAmE,GAAA2R,GAAAJ,OAEA5D,OAAAjO,IAGAM,GAAA2R,GAAAC,MAAA,SAAAA,GACA5R,GAAAi3B,OAAAp6B,KAAA+U,GACA5R,GAAA2R,GAAA5N,SAGA/D,GAAA2R,GAAA8lB,SAAA,GACAz3B,GAAA2R,GAAA5N,MAAA,WACAkgF,KAIAA,IAAA,EACAD,MAGAhkF,GAAA2R,GAAAJ,KAAA,WACA0yE,GAAA,MAGAjkF,GAAA2R,GAAA8kB,QACAmB,KAAA,IACAC,KAAA,IAGAhyB,SAAA,KAMA7F,GAAAgH,GAAA8wB,MAAA,SAAAC,EAAAt3B,GAIA,MAHAs3B,GAAA/3B,GAAA2R,GAAA3R,GAAA2R,GAAA8kB,OAAAsB,IAAAA,EAAAA,EACAt3B,EAAAA,GAAA,KAEAH,KAAA0O,MAAAvO,EAAA,SAAA+mB,EAAA7Y,GACA,GAAAqpB,GAAA33B,EAAAT,WAAA4nB,EAAAuQ,EACAppB,GAAA4C,KAAA,WACAlR,EAAA43B,aAAAD,OAMA,WACA,GAAAnW,GAAA1hB,GAAAuF,cAAA,SACA+T,EAAAtZ,GAAAuF,cAAA,UACA8wB,EAAA/c,EAAAhU,YAAAtF,GAAAuF,cAAA,UAEAmc,GAAAphB,KAAA,WAIA2I,GAAA8uB,QAAA,KAAArW,EAAA1kB,MAIAiM,GAAA+uB,YAAA3B,EAAA7jB,SAIAkP,EAAA1hB,GAAAuF,cAAA,SACAmc,EAAA1kB,MAAA,IACA0kB,EAAAphB,KAAA,QACA2I,GAAAivB,WAAA,MAAAxW,EAAA1kB,QAIA,IAAAm7B,IACAle,GAAApa,GAAA4iB,KAAAxI,UAEApa,IAAAgH,GAAAwB,QACAqa,KAAA,SAAAnoB,EAAAyC,GACA,MAAAmL,IAAAhI,KAAAN,GAAA6iB,KAAAnoB,EAAAyC,EAAAP,UAAAf,OAAA,IAGA08B,WAAA,SAAA79B,GACA,MAAA4F,MAAAqB,KAAA,WACA3B,GAAAu4B,WAAAj4B,KAAA5F,QAKAsF,GAAAwI,QACAqa,KAAA,SAAA5hB,EAAAvG,EAAAyC,GACA,GAAAmC,GAAAqP,EACA6pB,EAAAv3B,EAAAC,QAGA,IAAA,IAAAs3B,GAAA,IAAAA,GAAA,IAAAA,EAKA,WAAA,KAAAv3B,EAAA0B,aACA3C,GAAA1F,KAAA2G,EAAAvG,EAAAyC,IAKA,IAAAq7B,GAAAx4B,GAAA4mB,SAAA3lB,KACA0N,EAAA3O,GAAAy4B,UAAA/9B,EAAAgI,iBACA1C,GAAA4iB,KAAAhhB,MAAAwe,KAAApkB,KAAAtB,GAAA49B,OAAA54B,SAGAA,KAAAvC,EACA,OAAAA,MACA6C,IAAAu4B,WAAAt3B,EAAAvG,GAIAiU,GAAA,OAAAA,QACAjP,MAAAJ,EAAAqP,EAAA5L,IAAA9B,EAAA9D,EAAAzC,IACA4E,GAGA2B,EAAAiY,aAAAxe,EAAAyC,EAAA,IACAA,GAGAwR,GAAA,OAAAA,IAAA,QAAArP,EAAAqP,EAAA9J,IAAA5D,EAAAvG,IACA4E,GAGAA,EAAAU,GAAAke,KAAA2E,KAAA5hB,EAAAvG,GAGA,MAAA4E,MAAAI,GAAAJ,KAGAm5B,WACAh4B,MACAsC,IAAA,SAAA9B,EAAA9D,GACA,IAAAiM,GAAAivB,YAAA,UAAAl7B,GACAmH,EAAArD,EAAA,SAAA,CACA,GAAAyL,GAAAzL,EAAA9D,KAKA,OAJA8D,GAAAiY,aAAA,OAAA/b,GACAuP,IACAzL,EAAA9D,MAAAuP,GAEAvP,MAMAo7B,WAAA,SAAAt3B,EAAA9D,GACA,GAAAzC,GACAU,EAAA,EAIAu9B,EAAAx7B,GAAAA,EAAAyE,MAAAmhF,GAEA,IAAApqD,GAAA,IAAA13B,EAAAC,SACA,KAAAxG,EAAAi+B,EAAAv9B,MACA6F,EAAA2G,gBAAAlN,MAOA49B,IACAv1B,IAAA,SAAA9B,EAAA9D,EAAAzC,GAQA,OAPA,IAAAyC,EAGA6C,GAAAu4B,WAAAt3B,EAAAvG,GAEAuG,EAAAiY,aAAAxe,EAAAA,GAEAA,IAIAsF,GAAA2B,KAAA3B,GAAA4iB,KAAAhhB,MAAAwe,KAAA4L,OAAApqB,MAAA,QAAA,SAAAxG,EAAAV,GACA,GAAAm+B,GAAAze,GAAA1f,IAAAsF,GAAAke,KAAA2E,IAEAzI,IAAA1f,GAAA,SAAAuG,EAAAvG,EAAA6jB,GACA,GAAAjf,GAAAiJ,EACA+/E,EAAA5tF,EAAAgI,aAYA,OAVA6b,KAGAhW,EAAA6R,GAAAkuE,GACAluE,GAAAkuE,GAAAhpF,EACAA,EAAA,MAAAu5B,EAAA53B,EAAAvG,EAAA6jB,GACA+pE,EACA,KACAluE,GAAAkuE,GAAA//E,GAEAjJ,IAOA,IAAAw5B,IAAA,sCACAC,GAAA,eAEA/4B,IAAAgH,GAAAwB,QACAlO,KAAA,SAAAI,EAAAyC,GACA,MAAAmL,IAAAhI,KAAAN,GAAA1F,KAAAI,EAAAyC,EAAAP,UAAAf,OAAA,IAGAm9B,WAAA,SAAAt+B,GACA,MAAA4F,MAAAqB,KAAA,iBACArB,MAAAN,GAAA44B,QAAAl+B,IAAAA,QAKAsF,GAAAwI,QACAlO,KAAA,SAAA2G,EAAAvG,EAAAyC,GACA,GAAAmC,GAAAqP,EACA6pB,EAAAv3B,EAAAC,QAGA,IAAA,IAAAs3B,GAAA,IAAAA,GAAA,IAAAA,EAWA,MAPA,KAAAA,GAAAx4B,GAAA4mB,SAAA3lB,KAGAvG,EAAAsF,GAAA44B,QAAAl+B,IAAAA,EACAiU,EAAA3O,GAAA21B,UAAAj7B,QAGAgF,KAAAvC,EACAwR,GAAA,OAAAA,QACAjP,MAAAJ,EAAAqP,EAAA5L,IAAA9B,EAAA9D,EAAAzC,IACA4E,EAGA2B,EAAAvG,GAAAyC,EAGAwR,GAAA,OAAAA,IAAA,QAAArP,EAAAqP,EAAA9J,IAAA5D,EAAAvG,IACA4E,EAGA2B,EAAAvG,IAGAi7B,WACAzQ,UACArgB,IAAA,SAAA5D,GAOA,GAAAg4B,GAAAj5B,GAAAke,KAAA2E,KAAA5hB,EAAA,WAEA,OAAAg4B,GACAC,SAAAD,EAAA,IAIAH,GAAA98B,KAAAiF,EAAAqD,WACAy0B,GAAA/8B,KAAAiF,EAAAqD,WACArD,EAAAgkB,KAEA,GAGA,KAKA2T,SACAO,IAAA,UACAC,MAAA,eAYAhwB,GAAA+uB,cACAn4B,GAAA21B,UAAAhjB,UACA9N,IAAA,SAAA5D,GAIA,GAAAkgB,GAAAlgB,EAAAgJ,UAIA,OAHAkX,IAAAA,EAAAlX,YACAkX,EAAAlX,WAAAob,cAEA,MAEAtiB,IAAA,SAAA9B,GAIA,GAAAkgB,GAAAlgB,EAAAgJ,UACAkX,KACAA,EAAAkE,cAEAlE,EAAAlX,YACAkX,EAAAlX,WAAAob,kBAOArlB,GAAA2B,MACA,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACA,WACA3B,GAAA44B,QAAAt4B,KAAAoC,eAAApC,OA4BAN,GAAAgH,GAAAwB,QACA8wB,SAAA,SAAAn8B,GACA,GAAAo8B,GAAAt4B,EAAAK,EAAAk4B,EAAAC,EAAAp+B,EAAAq+B,EACAt+B,EAAA,CAEA,IAAA2F,GAAA5D,GACA,MAAAmD,MAAAqB,KAAA,SAAAtG,GACA2E,GAAAM,MAAAg5B,SAAAn8B,EAAA3C,KAAA8F,KAAAjF,EAAA2W,EAAA1R,SAMA,IAFAi5B,EAAAgrD,EAAApnF,GAEAo8B,EAAA19B,OACA,KAAAoF,EAAAX,KAAAlF,MAIA,GAHAo+B,EAAAxnB,EAAA/Q,GACAK,EAAA,IAAAL,EAAAC,UAAA,IAAAojF,EAAA9qD,GAAA,IAEA,CAEA,IADAn+B,EAAA,EACAo+B,EAAAF,EAAAl+B,MACAiG,EAAAzD,QAAA,IAAA47B,EAAA,KAAA,IACAn4B,GAAAm4B,EAAA,IAKAC,GAAA4qD,EAAAhjF,GACAk4B,IAAAE,GACAz4B,EAAAiY,aAAA,QAAAwgB,GAMA,MAAAp5B,OAGAq5B,YAAA,SAAAx8B,GACA,GAAAo8B,GAAAt4B,EAAAK,EAAAk4B,EAAAC,EAAAp+B,EAAAq+B,EACAt+B,EAAA,CAEA,IAAA2F,GAAA5D,GACA,MAAAmD,MAAAqB,KAAA,SAAAtG,GACA2E,GAAAM,MAAAq5B,YAAAx8B,EAAA3C,KAAA8F,KAAAjF,EAAA2W,EAAA1R,SAIA,KAAA1D,UAAAf,OACA,MAAAyE,MAAAuiB,KAAA,QAAA,GAKA,IAFA0W,EAAAgrD,EAAApnF,GAEAo8B,EAAA19B,OACA,KAAAoF,EAAAX,KAAAlF,MAMA,GALAo+B,EAAAxnB,EAAA/Q,GAGAK,EAAA,IAAAL,EAAAC,UAAA,IAAAojF,EAAA9qD,GAAA,IAEA,CAEA,IADAn+B,EAAA,EACAo+B,EAAAF,EAAAl+B,MAGA,KAAAiG,EAAAzD,QAAA,IAAA47B,EAAA,MAAA,GACAn4B,EAAAA,EAAArF,QAAA,IAAAw9B,EAAA,IAAA,IAKAC,GAAA4qD,EAAAhjF,GACAk4B,IAAAE,GACAz4B,EAAAiY,aAAA,QAAAwgB,GAMA,MAAAp5B,OAGAs5B,YAAA,SAAAz8B,EAAA08B,GACA,GAAAp5B,SAAAtD,GACAorF,EAAA,WAAA9nF,GAAAmW,MAAA5G,QAAA7S,EAEA,OAAA,iBAAA08B,IAAA0uD,EACA1uD,EAAAv5B,KAAAg5B,SAAAn8B,GAAAmD,KAAAq5B,YAAAx8B,GAGA4D,GAAA5D,GACAmD,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAs5B,YACAz8B,EAAA3C,KAAA8F,KAAAlF,EAAA4W,EAAA1R,MAAAu5B,GACAA,KAKAv5B,KAAAqB,KAAA,WACA,GAAA4f,GAAAnmB,EAAAmO,EAAAuwB,CAEA,IAAAyuD,EAOA,IAJAntF,EAAA,EACAmO,EAAAvJ,GAAAM,MACAw5B,EAAAyqD,EAAApnF,GAEAokB,EAAAuY,EAAA1+B,MAGAmO,EAAAwwB,SAAAxY,GACAhY,EAAAowB,YAAApY,GAEAhY,EAAA+vB,SAAA/X,YAKA7hB,KAAAvC,GAAA,YAAAsD,IACA8gB,EAAAvP,EAAA1R,MACAihB,GAGA3c,GAAA7B,IAAAzC,KAAA,gBAAAihB,GAOAjhB,KAAA4Y,cACA5Y,KAAA4Y,aAAA,QACAqI,IAAA,IAAApkB,EACA,GACAyH,GAAAC,IAAAvE,KAAA,kBAAA,QAOAy5B,SAAA,SAAAhzB,GACA,GAAAwa,GAAAtgB,EACA7F,EAAA,CAGA,KADAmmB,EAAA,IAAAxa,EAAA,IACA9F,EAAAX,KAAAlF,MACA,GAAA,IAAA6F,EAAAC,WACA,IAAAojF,EAAAtyE,EAAA/Q,IAAA,KAAApD,QAAA0jB,IAAA,EACA,OAAA,CAIA,QAAA,IAOA,IAAAyY,IAAA,KAEAh6B,IAAAgH,GAAAwB,QACAkE,IAAA,SAAAvP,GACA,GAAAwR,GAAArP,EAAAmkF,EACAxiF,EAAAX,KAAA,EAEA,EAAA,GAAA1D,UAAAf,OA4BA,MAFA4nF,GAAA1iF,GAAA5D,GAEAmD,KAAAqB,KAAA,SAAAvG,GACA,GAAAsR,EAEA,KAAApM,KAAAY,WAKAwL,EADA+2E,EACAtmF,EAAA3C,KAAA8F,KAAAlF,EAAA4E,GAAAM,MAAAoM,OAEAvP,EAIA,MAAAuP,EACAA,EAAA,GAEA,gBAAAA,GACAA,GAAA,GAEAkK,MAAA5G,QAAAtD,KACAA,EAAA1M,GAAAtE,IAAAgR,EAAA,SAAAvP,GACA,MAAA,OAAAA,EAAA,GAAAA,EAAA,OAIAwR,EAAA3O,GAAAk6B,SAAA55B,KAAAG,OAAAT,GAAAk6B,SAAA55B,KAAAgE,SAAA5B,iBAGA,OAAAiM,QAAAjP,KAAAiP,EAAA5L,IAAAzC,KAAAoM,EAAA,WACApM,KAAAnD,MAAAuP,KAzDA,IAAAzL,EAIA,OAHA0N,EAAA3O,GAAAk6B,SAAAj5B,EAAAR,OACAT,GAAAk6B,SAAAj5B,EAAAqD,SAAA5B,iBAGA,OAAAiM,QACAjP,MAAAJ,EAAAqP,EAAA9J,IAAA5D,EAAA,UAEA3B,GAGAA,EAAA2B,EAAA9D,MAGA,gBAAAmC,GACAA,EAAArD,QAAA+9B,GAAA,IAIA,MAAA16B,EAAA,GAAAA,OA4CAU,GAAAwI,QACA0xB,UACAhO,QACArnB,IAAA,SAAA5D,GAEA,GAAAyL,GAAA1M,GAAAke,KAAA2E,KAAA5hB,EAAA,QACA,OAAA,OAAAyL,EACAA,EAMA43E,EAAAtkF,GAAAoX,KAAAnW,MAGAwY,QACA5U,IAAA,SAAA5D,GACA,GAAA9D,GAAA+uB,EAAA9wB,EACAqG,EAAAR,EAAAQ,QACA7D,EAAAqD,EAAAokB,cACApe,EAAA,eAAAhG,EAAAR,KACA4M,EAAApG,EAAA,QACAoF,EAAApF,EAAArJ,EAAA,EAAA6D,EAAA5F,MAUA,KAPAT,EADAwC,EAAA,EACAyO,EAGApF,EAAArJ,EAAA,EAIAxC,EAAAiR,EAAAjR,IAKA,GAJA8wB,EAAAzqB,EAAArG,IAIA8wB,EAAAvZ,UAAAvX,IAAAwC,KAGAsuB,EAAA9G,YACA8G,EAAAjiB,WAAAmb,WACA9gB,EAAA4nB,EAAAjiB,WAAA,aAAA,CAMA,GAHA9M,EAAA6C,GAAAksB,GAAAxf,MAGAzF,EACA,MAAA9J,EAIAkQ,GAAAxQ,KAAAM,GAIA,MAAAkQ,IAGAtK,IAAA,SAAA9B,EAAA9D,GAMA,IALA,GAAAg9B,GAAAjO,EACAzqB,EAAAR,EAAAQ,QACA4L,EAAArN,GAAAuX,UAAApa,GACA/B,EAAAqG,EAAA5F,OAEAT,KACA8wB,EAAAzqB,EAAArG,IAIA8wB,EAAAvZ,SACA3S,GAAAqG,QAAArG,GAAAk6B,SAAAhO,OAAArnB,IAAAqnB,GAAA7e,IAAA,KAEA8sB,GAAA,EAUA,OAHAA,KACAl5B,EAAAokB,eAAA,GAEAhY,OAOArN,GAAA2B,MAAA,QAAA,YAAA,WACA3B,GAAAk6B,SAAA55B,OACAyC,IAAA,SAAA9B,EAAA9D,GACA,GAAAyZ,MAAA5G,QAAA7S,GACA,MAAA8D,GAAA0H,QAAA3I,GAAAqG,QAAArG,GAAAiB,GAAAyL,MAAAvP,IAAA,IAIAiM,GAAA8uB,UACAl4B,GAAAk6B,SAAA55B,MAAAuE,IAAA,SAAA5D,GACA,MAAA,QAAAA,EAAA0B,aAAA,SAAA,KAAA1B,EAAA9D,UAWAiM,GAAA2xB,QAAA,aAAA16B,EAGA,IAAA+5B,IAAA,kCACAouD,GAAA,SAAAzpF,GACAA,EAAA+vB,kBAGA9uB,IAAAwI,OAAAxI,GAAAmH,OAEAkpB,QAAA,SAAAlpB,EAAA3E,EAAAvB,EAAAo5B,GAEA,GAAAj/B,GAAAkG,EAAA4D,EAAAo1B,EAAAC,EAAAhyB,EAAA+kB,EAAAm7D,EACAjuD,GAAAv5B,GAAAd,IACAM,EAAAlG,GAAAC,KAAA2M,EAAA,QAAAA,EAAA1G,KAAA0G,EACAomB,EAAAhzB,GAAAC,KAAA2M,EAAA,aAAAA,EAAA2mB,UAAAryB,MAAA,OAKA,IAHA6F,EAAAmnF,EAAAvjF,EAAAjE,EAAAA,GAAAd,GAGA,IAAAc,EAAAC,UAAA,IAAAD,EAAAC,WAKAk5B,GAAAp+B,KAAAyE,EAAAT,GAAAmH,MAAAumB,aAIAjtB,EAAA5C,QAAA,MAAA,IAGA0vB,EAAA9sB,EAAAhF,MAAA,KACAgF,EAAA8sB,EAAA1Z,QACA0Z,EAAAnX,QAEAmkB,EAAA95B,EAAA5C,QAAA,KAAA,GAAA,KAAA4C,EAGA0G,EAAAA,EAAAnH,GAAAoC,SACA+E,EACA,GAAAnH,IAAAmwB,MAAA1vB,EAAA,gBAAA0G,IAAAA,GAGAA,EAAAszB,UAAAJ,EAAA,EAAA,EACAlzB,EAAA2mB,UAAAP,EAAAjxB,KAAA,KACA6K,EAAAynB,WAAAznB,EAAA2mB,UACA,GAAAtO,QAAA,UAAA+N,EAAAjxB,KAAA,iBAAA,WACA,KAGA6K,EAAAiJ,WAAA1Q,GACAyH,EAAA+L,SACA/L,EAAA+L,OAAAjS,GAIAuB,EAAA,MAAAA,GACA2E,GACAnH,GAAAuX,UAAA/U,GAAA2E,IAGAmmB,EAAAttB,GAAAmH,MAAAmmB,QAAA7sB,OACA45B,IAAA/M,EAAA+C,UAAA,IAAA/C,EAAA+C,QAAAtzB,MAAAkE,EAAAuB,IAAA,CAMA,IAAA63B,IAAA/M,EAAA8C,WAAA1vB,GAAAO,GAAA,CAMA,IAJAq5B,EAAAhN,EAAAM,cAAAntB,EACA25B,GAAAp+B,KAAAs+B,EAAA75B,KACAa,EAAAA,EAAA2I,YAEA3I,EAAAA,EAAAA,EAAA2I,WACAuwB,EAAA39B,KAAAyE,GACA4D,EAAA5D,CAIA4D,MAAAjE,EAAAqF,eAAAnG,KACAq6B,EAAA39B,KAAAqI,EAAAgQ,aAAAhQ,EAAAw1B,cAAAr6B,GAMA,IADAjF,EAAA,GACAkG,EAAAk5B,EAAAp/B,QAAA+L,EAAAsnB,wBACAg6D,EAAAnnF,EACA6F,EAAA1G,KAAArF,EAAA,EACAk/B,EACAhN,EAAAO,UAAAptB,EAGA8H,GAAA3D,GAAAC,IAAAvD,EAAA,eAAA6F,EAAA1G,OACAmE,GAAAC,IAAAvD,EAAA,UACAiH,GACAA,EAAAxL,MAAAuE,EAAAkB,IAIA+F,EAAAgyB,GAAAj5B,EAAAi5B,KACAhyB,EAAAxL,OAAA8tB,GAAAvpB,KACA6F,EAAAiJ,OAAA7H,EAAAxL,MAAAuE,EAAAkB,IACA,IAAA2E,EAAAiJ,QACAjJ,EAAA0nB,iBA8CA,OA1CA1nB,GAAA1G,KAAAA,EAGA45B,GAAAlzB,EAAAupB,sBAEApD,EAAAznB,WACA,IAAAynB,EAAAznB,SAAA9I,MAAAy9B,EAAApc,MAAA5b,KACAqoB,GAAA5pB,IAIAs5B,GAAAx5B,GAAAE,EAAAR,MAAAC,GAAAO,KAGAiE,EAAAjE,EAAAs5B,GAEAr1B,IACAjE,EAAAs5B,GAAA,MAIAv6B,GAAAmH,MAAAumB,UAAAjtB,EAEA0G,EAAAsnB,wBACAg6D,EAAApnE,iBAAA5gB,EAAA+nF,IAGAvnF,EAAAR,KAEA0G,EAAAsnB,wBACAg6D,EAAAxmF,oBAAAxB,EAAA+nF,IAGAxoF,GAAAmH,MAAAumB,cAAAhuB,GAEAwF,IACAjE,EAAAs5B,GAAAr1B,IAMAiC,EAAAiJ,SAKAuqB,SAAA,SAAAl6B,EAAAQ,EAAAkG,GACA,GAAApI,GAAAiB,GAAAwI,OACA,GAAAxI,IAAAmwB,MACAhpB,GAEA1G,KAAAA,EACAowB,aAAA,GAIA7wB,IAAAmH,MAAAkpB,QAAAtxB,EAAA,KAAAkC,MAKAjB,GAAAgH,GAAAwB,QAEA6nB,QAAA,SAAA5vB,EAAA+B,GACA,MAAAlC,MAAAqB,KAAA,WACA3B,GAAAmH,MAAAkpB,QAAA5vB,EAAA+B,EAAAlC,SAGAgqB,eAAA,SAAA7pB,EAAA+B,GACA,GAAAvB,GAAAX,KAAA,EACA,IAAAW,EACA,MAAAjB,IAAAmH,MAAAkpB,QAAA5vB,EAAA+B,EAAAvB,GAAA,MAcAmI,GAAA2xB,SACA/6B,GAAA2B,MAAAojB,MAAA,UAAAuL,KAAA,YAAA,SAAAxhB,EAAAuf,GAGA,GAAAlU,GAAA,SAAAhT,GACAnH,GAAAmH,MAAAwzB,SAAAtM,EAAAlnB,EAAA+L,OAAAlT,GAAAmH,MAAAknB,IAAAlnB,IAGAnH,IAAAmH,MAAAmmB,QAAAe,IACAL,MAAA,WACA,GAAA9kB,GAAA5I,KAAAgG,eAAAhG,KACA06B,EAAAp2B,GAAA0D,OAAAY,EAAAmlB,EAEA2M,IACA9xB,EAAAmY,iBAAAvS,EAAAqL,GAAA,GAEAvV,GAAA0D,OAAAY,EAAAmlB,GAAA2M,GAAA,GAAA,IAEA7M,SAAA,WACA,GAAAjlB,GAAA5I,KAAAgG,eAAAhG,KACA06B,EAAAp2B,GAAA0D,OAAAY,EAAAmlB,GAAA,CAEA2M,GAKAp2B,GAAA0D,OAAAY,EAAAmlB,EAAA2M,IAJA9xB,EAAAjH,oBAAA6M,EAAAqL,GAAA,GACAvV,GAAAkF,OAAAZ,EAAAmlB,OASA,IAAAxJ,IAAAxkB,EAAAwkB,SAEAoW,GAAApjB,KAAAjK,MAEAstB,GAAA,IAKAl7B,IAAAq7B,SAAA,SAAA74B,GACA,GAAA+Y,EACA,KAAA/Y,GAAA,gBAAAA,GACA,MAAA,KAKA,KACA+Y,GAAA,GAAAlb,GAAAi7B,WAAAC,gBAAA/4B,EAAA,YACA,MAAAzD,GACAwc,MAAA7b,GAMA,MAHA6b,KAAAA,EAAAnX,qBAAA,eAAAvI,QACAmE,GAAA4U,MAAA,gBAAApS,GAEA+Y,EAIA,IACAvG,IAAA,QACA+qB,GAAA,SACAC,GAAA,wCACAC,GAAA,oCA0CAjgC,IAAAk/B,MAAA,SAAA5kB,EAAAxF,GACA,GAAAnX,GACA4V,KACAjM,EAAA,SAAA/E,EAAAmmF,GAGA,GAAAvrF,GAAA4D,GAAA2nF,GACAA,IACAA,CAEAn1E,GAAAA,EAAA1X,QAAAqkC,mBAAA39B,GAAA,IACA29B,mBAAA,MAAA/iC,EAAA,GAAAA,GAIA,IAAAyZ,MAAA5G,QAAAsK,IAAAA,EAAA1E,SAAA5V,GAAAuW,cAAA+D,GAGAta,GAAA2B,KAAA2Y,EAAA,WACAhT,EAAAhH,KAAA5F,KAAA4F,KAAAnD,aAOA,KAAAQ,IAAA2c,GACAzF,EAAAlX,EAAA2c,EAAA3c,GAAAmX,EAAAxN,EAKA,OAAAiM,GAAAjX,KAAA,MAGA0D,GAAAgH,GAAAwB,QACA23B,UAAA,WACA,MAAAngC,IAAAk/B,MAAA5+B,KAAA8/B,mBAEAA,eAAA,WACA,MAAA9/B,MAAA5E,IAAA,WAGA,GAAAkF,GAAAZ,GAAA1F,KAAAgG,KAAA,WACA,OAAAM,GAAAZ,GAAAuX,UAAA3W,GAAAN,OAEAc,OAAA,WACA,GAAAX,GAAAH,KAAAG,IAGA,OAAAH,MAAA5F,OAAAsF,GAAAM,MAAAymB,GAAA,cACAkZ,GAAAjkC,KAAAsE,KAAAgE,YAAA07B,GAAAhkC,KAAAyE,KACAH,KAAAqI,UAAAD,GAAA1M,KAAAyE,MAEA/E,IAAA,SAAAN,EAAA6F,GACA,GAAAyL,GAAA1M,GAAAM,MAAAoM,KAEA,OAAA,OAAAA,EACA,KAGAkK,MAAA5G,QAAAtD,GACA1M,GAAAtE,IAAAgR,EAAA,SAAAA,GACA,OAAAhS,KAAAuG,EAAAvG,KAAAyC,MAAAuP,EAAAzQ,QAAA8jC,GAAA,YAIArlC,KAAAuG,EAAAvG,KAAAyC,MAAAuP,EAAAzQ,QAAA8jC,GAAA,WACAl7B,QAKA,IACAi7B,IAAA,OACAtE,GAAA,OACAmtD,GAAA,gBACAjtD,GAAA,6BAGAC,GAAA,4DACAC,GAAA,iBACAC,GAAA,QAWAvrB,MAOA0C,MAGA8oB,GAAA,KAAA1/B,OAAA,KAGA2/B,GAAA57B,GAAAuF,cAAA,IACAq2B,IAAA9W,KAAAJ,GAAAI,KAgPAjlB,GAAAwI,QAGAwzB,OAAA,EAGAC,gBACAC,QAEA7oB,cACA8oB,IAAAtX,GAAAI,KACAxkB,KAAA,MACA27B,QAAAT,GAAA3/B,KAAA6oB,GAAAwX,UACAp8B,QAAA,EACAq8B,aAAA,EACAC,OAAA,EACAC,YAAA,mDAcAC,SACArG,IAAA0F,GACA1kB,KAAA,aACA3N,KAAA,YACA8R,IAAA,4BACAmhB,KAAA,qCAGA9oB,UACA2H,IAAA,UACA9R,KAAA,SACAizB,KAAA,YAGAloB,gBACA+G,IAAA,cACAnE,KAAA,eACAslB,KAAA,gBAKA1oB,YAGA2oB,SAAA7b,OAGA8b,aAAA,EAGAC,YAAA1B,KAAAC,MAGA0B,WAAA98B,GAAAq7B,UAOAjoB,aACA+oB,KAAA,EACAj4B,SAAA,IAOA64B,UAAA,SAAA7pB,EAAA8pB,GACA,MAAAA,GAGA/pB,GAAAA,GAAAC,EAAAlT,GAAAqT,cAAA2pB,GAGA/pB,GAAAjT,GAAAqT,aAAAH,IAGA+pB,cAAAhrB,GAAA3B,IACA4sB,cAAAjrB,GAAAe,IAGAmqB,KAAA,SAAAhB,EAAA16B,GAmUA,QAAAkO,GAAAytB,EAAAC,EAAA7pB,EAAA8pB,GACA,GAAAnpB,GAAAopB,EAAA3oB,EAAAV,EAAAspB,EACAC,EAAAJ,CAGAr7B,KAIAA,GAAA,EAGA07B,GACAr9B,EAAA43B,aAAAyF,GAKAC,MAAAj+B,GAGAk+B,EAAAN,GAAA,GAGA7qB,EAAA8X,WAAA6S,EAAA,EAAA,EAAA,EAGAjpB,EAAAipB,GAAA,KAAAA,EAAA,KAAA,MAAAA,EAGA5pB,IACAU,EAAAZ,GAAAC,EAAAd,EAAAe,IAIAU,EAAAD,GAAAV,EAAAW,EAAAzB,EAAA0B,GAGAA,GAGAZ,EAAAsqB,aACAL,EAAA/qB,EAAAsB,kBAAA,iBACAypB,IACAx9B,GAAAi8B,aAAA6B,GAAAN,IAEAA,EAAA/qB,EAAAsB,kBAAA,WAEA/T,GAAAk8B,KAAA4B,GAAAN,IAKA,MAAAJ,GAAA,SAAA7pB,EAAA9S,KACAg9B,EAAA,YAGA,MAAAL,EACAK,EAAA,eAIAA,EAAAvpB,EAAAS,MACA4oB,EAAArpB,EAAA1R,KACAoS,EAAAV,EAAAU,MACAT,GAAAS,KAKAA,EAAA6oB,GACAL,GAAAK,IACAA,EAAA,QACAL,EAAA,IACAA,EAAA,KAMA3qB,EAAA2qB,OAAAA,EACA3qB,EAAAgrB,YAAAJ,GAAAI,GAAA,GAGAtpB,EACA5D,EAAAY,YAAA4sB,GAAAR,EAAAE,EAAAhrB,IAEAlC,EAAAkB,WAAAssB,GAAAtrB,EAAAgrB,EAAA7oB,IAIAnC,EAAAurB,WAAAA,GACAA,MAAAt+B,GAEAu+B,GACAC,EAAA7N,QAAAlc,EAAA,cAAA,aACA1B,EAAAc,EAAAY,EAAAopB,EAAA3oB,IAIAupB,EAAArV,SAAAiV,GAAAtrB,EAAAgrB,IAEAQ,IACAC,EAAA7N,QAAA,gBAAA5d,EAAAc,MAGAvT,GAAAg8B,QACAh8B,GAAAmH,MAAAkpB,QAAA,cA3aA,gBAAA8L,KACA16B,EAAA06B,EACAA,MAAAz8B,IAIA+B,EAAAA,KAEA,IAAAk8B,GAGAG,EAGAF,EACAQ,EAGAV,EAGAW,EAGAr8B,EAGAi8B,EAGA7iC,EAGAwtF,EAGAr1E,EAAAvT,GAAA+8B,aAAAt7B,GAGAs8B,EAAAxqB,EAAArP,SAAAqP,EAGA2qB,EAAA3qB,EAAArP,UACA65B,EAAA78B,UAAA68B,EAAAnoB,QACA5V,GAAA+9B,GACA/9B,GAAAmH,MAGAoJ,EAAAvQ,GAAAwQ,WACA2tB,EAAAn+B,GAAAooB,UAAA,eAGA4V,EAAAzqB,EAAAyqB,eAGAM,KACAC,KAGAC,EAAA,WAGA/rB,GACA8X,WAAA,EAGAxW,kBAAA,SAAAxR,GACA,GAAAX,EACA,IAAAI,EAAA,CACA,IAAAo8B,EAEA,IADAA,KACAx8B,EAAA85B,GAAA73B,KAAA+5B,IACAQ,EAAAx8B,EAAA,GAAAc,eAAAd,EAAA,EAGAA,GAAAw8B,EAAA77B,EAAAG,eAEA,MAAA,OAAAd,EAAA,KAAAA,GAIA68B,sBAAA,WACA,MAAAz8B,GAAA47B,EAAA,MAIAc,iBAAA,SAAAhkC,EAAAyC,GAMA,MALA,OAAA6E,IACAtH,EAAA6jC,EAAA7jC,EAAAgI,eACA67B,EAAA7jC,EAAAgI,gBAAAhI,EACA4jC,EAAA5jC,GAAAyC,GAEAmD,MAIAs+B,iBAAA,SAAAn+B,GAIA,MAHA,OAAAuB,IACAuR,EAAAO,SAAArT,GAEAH,MAIA09B,WAAA,SAAAtiC,GACA,GAAAqb,EACA,IAAArb,EACA,GAAAsG,EAGAyQ,EAAApD,OAAA3T,EAAA+W,EAAA2qB,aAIA,KAAArmB,IAAArb,GACAsiC,EAAAjnB,IAAAinB,EAAAjnB,GAAArb,EAAAqb,GAIA,OAAAzW,OAIAu+B,MAAA,SAAApB,GACA,GAAAqB,GAAArB,GAAAe,CAKA,OAJAb,IACAA,EAAAkB,MAAAC,GAEAnvB,EAAA,EAAAmvB,GACAx+B,MAoBA,IAfAiQ,EAAAa,QAAAqB,GAKAc,EAAA4oB,MAAAA,GAAA5oB,EAAA4oB,KAAAtX,GAAAI,MAAA,IACAhpB,QAAA4/B,GAAAhX,GAAAwX,SAAA,MAGA9oB,EAAA9S,KAAAgB,EAAAs9B,QAAAt9B,EAAAhB,MAAA8S,EAAAwrB,QAAAxrB,EAAA9S,KAGA8S,EAAAjB,WAAAiB,EAAAlB,UAAA,KAAA3P,cAAAd,MAAAmhF,MAAA,IAGA,MAAAxvE,EAAAyrB,YAAA,CACAX,EAAAl+B,GAAAuF,cAAA,IAKA,KACA24B,EAAApZ,KAAA1R,EAAA4oB,IAIAkC,EAAApZ,KAAAoZ,EAAApZ,KACA1R,EAAAyrB,YAAAjD,GAAAM,SAAA,KAAAN,GAAAkD,MACAZ,EAAAhC,SAAA,KAAAgC,EAAAY,KACA,MAAAlgC,GAIAwU,EAAAyrB,aAAA,GAaA,GARAzrB,EAAA/Q,MAAA+Q,EAAA+oB,aAAA,gBAAA/oB,GAAA/Q,OACA+Q,EAAA/Q,KAAAxC,GAAAk/B,MAAA3rB,EAAA/Q,KAAA+Q,EAAAuB,cAIAtC,GAAAlC,GAAAiD,EAAA9R,EAAAgR,GAGAzQ,EACA,MAAAyQ,EAKAwrB,GAAAj+B,GAAAmH,OAAAoM,EAAAtT,OAGAg+B,GAAA,GAAAj+B,GAAAg8B,UACAh8B,GAAAmH,MAAAkpB,QAAA;iDAIA9c,EAAA9S,KAAA8S,EAAA9S,KAAAsL,cAGAwH,EAAA4rB,YAAAvD,GAAA5/B,KAAAuX,EAAA9S,MAKAq9B,EAAAvqB,EAAA4oB,IAAAlgC,QAAAu/B,GAAA,IAGAjoB,EAAA4rB,WAuBA5rB,EAAA/Q,MAAA+Q,EAAA+oB,aACA,KAAA/oB,EAAAipB,aAAA,IAAA3+B,QAAA,uCACA0V,EAAA/Q,KAAA+Q,EAAA/Q,KAAAvG,QAAA6jC,GAAA,OAtBA8oD,EAAAr1E,EAAA4oB,IAAAhgC,MAAA2hC,EAAAjiC,QAGA0X,EAAA/Q,OAAA+Q,EAAA+oB,aAAA,gBAAA/oB,GAAA/Q,QACAs7B,IAAA5C,GAAAl/B,KAAA8hC,GAAA,IAAA,KAAAvqB,EAAA/Q,WAGA+Q,GAAA/Q,OAIA,IAAA+Q,EAAAoG,QACAmkB,EAAAA,EAAA7hC,QAAA0sF,GAAA,MACAC,GAAA1tD,GAAAl/B,KAAA8hC,GAAA,IAAA,KAAA,KAAA7C,KAAA2tD,GAIAr1E,EAAA4oB,IAAA2B,EAAA8qD,GASAr1E,EAAAsqB,aACA79B,GAAAi8B,aAAA6B,IACArrB,EAAAisB,iBAAA,oBAAA1+B,GAAAi8B,aAAA6B,IAEA99B,GAAAk8B,KAAA4B,IACArrB,EAAAisB,iBAAA,gBAAA1+B,GAAAk8B,KAAA4B,MAKAvqB,EAAA/Q,MAAA+Q,EAAA4rB,aAAA,IAAA5rB,EAAAipB,aAAA/6B,EAAA+6B,cACA/pB,EAAAisB,iBAAA,eAAAnrB,EAAAipB,aAIA/pB,EAAAisB,iBACA,SACAnrB,EAAAjB,UAAA,IAAAiB,EAAAkpB,QAAAlpB,EAAAjB,UAAA,IACAiB,EAAAkpB,QAAAlpB,EAAAjB,UAAA,KACA,MAAAiB,EAAAjB,UAAA,GAAA,KAAAwpB,GAAA,WAAA,IACAvoB,EAAAkpB,QAAA,KAIA,KAAArhC,IAAAmY,GAAA+pB,QACA7qB,EAAAisB,iBAAAtjC,EAAAmY,EAAA+pB,QAAAliC,GAIA,IAAAmY,EAAA6rB,cACA,IAAA7rB,EAAA6rB,WAAA5kC,KAAAujC,EAAAtrB,EAAAc,IAAAvR,GAGA,MAAAyQ,GAAAosB,OAeA,IAXAL,EAAA,QAGAL,EAAA72B,IAAAiM,EAAAzB,UACAW,EAAA9C,KAAA4D,EAAAgqB,SACA9qB,EAAAV,KAAAwB,EAAAqB,OAGA+oB,EAAAnrB,GAAAQ,GAAAO,EAAA9R,EAAAgR,GAKA,CASA,GARAA,EAAA8X,WAAA,EAGA0T,GACAC,EAAA7N,QAAA,YAAA5d,EAAAc,IAIAvR,EACA,MAAAyQ,EAIAc,GAAAgpB,OAAAhpB,EAAAykB,QAAA,IACA0F,EAAAr9B,EAAAT,WAAA,WACA6S,EAAAosB,MAAA,YACAtrB,EAAAykB,SAGA,KACAh2B,GAAA,EACA27B,EAAA0B,KAAAf,EAAA3uB,GACA,MAAA5Q,GAGA,GAAAiD,EACA,KAAAjD,EAIA4Q,IAAA,EAAA5Q,QAhCA4Q,IAAA,EAAA,eAqJA,OAAA8C,IAGA6sB,QAAA,SAAAnD,EAAA35B,EAAApD,GACA,MAAAY,IAAA6E,IAAAs3B,EAAA35B,EAAApD,EAAA,SAGAmgC,UAAA,SAAApD,EAAA/8B,GACA,MAAAY,IAAA6E,IAAAs3B,MAAAz8B,GAAAN,EAAA,aAIAY,GAAA2B,MAAA,MAAA,QAAA,SAAAvG,EAAA2jC,GACA/+B,GAAA++B,GAAA,SAAA5C,EAAA35B,EAAApD,EAAAqB,GAUA,MAPAM,IAAAyB,KACA/B,EAAAA,GAAArB,EACAA,EAAAoD,EACAA,MAAA9C,IAIAM,GAAAm9B,KAAAn9B,GAAAwI,QACA2zB,IAAAA,EACA17B,KAAAs+B,EACA1sB,SAAA5R,EACA+B,KAAAA,EACA+6B,QAAAn+B,GACAY,GAAAuW,cAAA4lB,IAAAA,OAKAn8B,GAAA2J,SAAA,SAAAwyB,GACA,MAAAn8B,IAAAm9B,MACAhB,IAAAA,EAGA17B,KAAA,MACA4R,SAAA,SACAsH,OAAA,EACA4iB,OAAA,EACAt8B,QAAA,EACAyU,QAAA,KAKA1U,GAAAgH,GAAAwB,QACAg3B,QAAA,SAAA/1B,GACA,GAAAtE,EAyBA,OAvBA7E,MAAA,KACAS,GAAA0I,KACAA,EAAAA,EAAAjP,KAAA8F,KAAA,KAIA6E,EAAAnF,GAAAyJ,EAAAnJ,KAAA,GAAAgG,eAAAkD,GAAA,GAAAE,OAAA,GAEApJ,KAAA,GAAA2J,YACA9E,EAAA2sB,aAAAxxB,KAAA,IAGA6E,EAAAzJ,IAAA,WAGA,IAFA,GAAAuF,GAAAX,KAEAW,EAAAw+B,mBACAx+B,EAAAA,EAAAw+B,iBAGA,OAAAx+B,KACA2wB,OAAAtxB,OAGAA,MAGAo/B,UAAA,SAAAj2B,GACA,MAAA1I,IAAA0I,GACAnJ,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAo/B,UAAAj2B,EAAAjP,KAAA8F,KAAAlF,MAIAkF,KAAAqB,KAAA,WACA,GAAA4H,GAAAvJ,GAAAM,MACAsT,EAAArK,EAAAqK,UAEAA,GAAA/X,OACA+X,EAAA4rB,QAAA/1B,GAGAF,EAAAqoB,OAAAnoB,MAKAtE,KAAA,SAAAsE,GACA,GAAAo/E,GAAA9nF,GAAA0I,EAEA,OAAAnJ,MAAAqB,KAAA,SAAAvG,GACA4E,GAAAM,MAAAk/B,QAAAqpD,EAAAp/E,EAAAjP,KAAA8F,KAAAlF,GAAAqO,MAIAk2B,OAAA,SAAA54B,GAIA,MAHAzG,MAAA6gB,OAAApa,GAAAjG,IAAA,QAAAa,KAAA,WACA3B,GAAAM,MAAA2xB,YAAA3xB,KAAA2F,cAEA3F,QAKAN,GAAA4iB,KAAAtD,QAAAlS,OAAA,SAAAnM,GACA,OAAAjB,GAAA4iB,KAAAtD,QAAAsgB,QAAA3+B,IAEAjB,GAAA4iB,KAAAtD,QAAAsgB,QAAA,SAAA3+B,GACA,SAAAA,EAAA6L,aAAA7L,EAAA8L,cAAA9L,EAAA4+B,iBAAAhkC,SAMAmE,GAAAqT,aAAAgtB,IAAA,WACA,IACA,MAAA,IAAAhgC,GAAAigC,eACA,MAAAvhC,KAGA,IAAAwhC,KAGAC,EAAA,IAIAC,KAAA,KAEAC,GAAA1gC,GAAAqT,aAAAgtB,KAEAj3B,IAAAu3B,OAAAD,IAAA,mBAAAA,IACAt3B,GAAA+zB,KAAAuD,KAAAA,GAEA1gC,GAAAk9B,cAAA,SAAAz7B,GACA,GAAArC,GAAAwhC,CAGA,IAAAx3B,GAAAu3B,MAAAD,KAAAj/B,EAAAu9B,YACA,OACAK,KAAA,SAAA/B,EAAAxrB,GACA,GAAA1W,GACAilC,EAAA5+B,EAAA4+B,KAWA,IATAA,EAAAQ,KACAp/B,EAAAhB,KACAgB,EAAA06B,IACA16B,EAAA86B,MACA96B,EAAAq/B,SACAr/B,EAAAskB,UAIAtkB,EAAAs/B,UACA,IAAA3lC,IAAAqG,GAAAs/B,UACAV,EAAAjlC,GAAAqG,EAAAs/B,UAAA3lC,EAKAqG,GAAAqS,UAAAusB,EAAAzB,kBACAyB,EAAAzB,iBAAAn9B,EAAAqS,UAQArS,EAAAu9B,aAAA1B,EAAA,sBACAA,EAAA,oBAAA,iBAIA,KAAAliC,IAAAkiC,GACA+C,EAAA3B,iBAAAtjC,EAAAkiC,EAAAliC,GAIAgE,GAAA,SAAAqB,GACA,MAAA,YACArB,IACAA,EAAAwhC,EAAAP,EAAAW,OACAX,EAAAY,QAAAZ,EAAAa,QAAAb,EAAAyoD,UACAzoD,EAAAc,mBAAA,KAEA,UAAA1gC,EACA4/B,EAAAxB,QACA,UAAAp+B,EAKA,gBAAA4/B,GAAAjD,OACAtrB,EAAA,EAAA,SAEAA,EAGAuuB,EAAAjD,OACAiD,EAAA5C,YAIA3rB,EACAyuB,GAAAF,EAAAjD,SAAAiD,EAAAjD,OACAiD,EAAA5C,WAKA,UAAA4C,EAAAe,cAAA,SACA,gBAAAf,GAAAgB,cACAC,OAAAjB,EAAAnsB,WACAkD,KAAAipB,EAAAgB,cACAhB,EAAA5B,4BAQA4B,EAAAW,OAAA5hC,IACAwhC,EAAAP,EAAAY,QAAAZ,EAAAyoD,UAAA1pF,EAAA,aAKAM,KAAA2gC,EAAAa,QACAb,EAAAa,QAAAN,EAEAP,EAAAc,mBAAA,WAGA,IAAAd,EAAA9V,YAMAlqB,EAAAT,WAAA,WACAR,GACAwhC,OAQAxhC,EAAAA,EAAA,QAEA,KAGAihC,EAAAhB,KAAA59B,EAAA09B,YAAA19B,EAAAe,MAAA,MACA,MAAAzD,GAGA,GAAAK,EACA,KAAAL,KAKA8/B,MAAA,WACAz/B,GACAA,QAWAY,GAAAi9B,cAAA,SAAA1pB,GACAA,EAAAyrB,cACAzrB,EAAAK,SAAAoD,QAAA,KAKAhX,GAAA+8B,WACAN,SACAzlB,OAAA,6FAGApD,UACAoD,OAAA,2BAEAhD,YACAutB,cAAA,SAAAnqB,GAEA,MADApX,IAAA4J,WAAAwN,GACAA,MAMApX,GAAAi9B,cAAA,SAAA,SAAA1pB,OACA7T,KAAA6T,EAAAoG,QACApG,EAAAoG,OAAA,GAEApG,EAAAyrB,cACAzrB,EAAA9S,KAAA,SAKAT,GAAAk9B,cAAA,SAAA,SAAA3pB,GAGA,GAAAA,EAAAyrB,YAAA,CACA,GAAAhoB,GAAA5X,CACA,QACAigC,KAAA,SAAAv9B,EAAAgQ,GACAkF,EAAAhX,GAAA,YAAA1F,MACAknC,QAAAjuB,EAAAkuB,cACA35B,IAAAyL,EAAA4oB,MACAt1B,GACA,aACAzH,EAAA,SAAAsiC,GACA1qB,EAAAlN,SACA1K,EAAA,KACAsiC,GACA5vB,EAAA,UAAA4vB,EAAAjhC,KAAA,IAAA,IAAAihC,EAAAjhC,QAMAN,GAAAkX,KAAA5R,YAAAuR,EAAA,KAEA6nB,MAAA,WACAz/B,GACAA,QAUA,IAAAuiC,OACAC,GAAA,mBAGA5hC,IAAA+8B,WACA8E,MAAA,WACAC,cAAA,WACA,GAAA1iC,GAAAuiC,GAAAvjB,OAAApe,GAAAoC,QAAA,IAAA64B,IAEA,OADA36B,MAAAlB,IAAA,EACAA,KAKAY,GAAAi9B,cAAA,aAAA,SAAA1pB,EAAAwuB,EAAAtvB,GAEA,GAAAuvB,GAAAC,EAAAC,EACAC,GAAA,IAAA5uB,EAAAsuB,QAAAD,GAAA5lC,KAAAuX,EAAA4oB,KACA,MACA,gBAAA5oB,GAAA/Q,MAEA,KADA+Q,EAAAipB,aAAA,IACA3+B,QAAA,sCACA+jC,GAAA5lC,KAAAuX,EAAA/Q,OAAA,OAIA,IAAA2/B,GAAA,UAAA5uB,EAAAjB,UAAA,GA8DA,MA3DA0vB,GAAAzuB,EAAAuuB,cAAA/gC,GAAAwS,EAAAuuB,eACAvuB,EAAAuuB,gBACAvuB,EAAAuuB,cAGAK,EACA5uB,EAAA4uB,GAAA5uB,EAAA4uB,GAAAlmC,QAAA2lC,GAAA,KAAAI,IACA,IAAAzuB,EAAAsuB,QACAtuB,EAAA4oB,MAAAjB,GAAAl/B,KAAAuX,EAAA4oB,KAAA,IAAA,KAAA5oB,EAAAsuB,MAAA,IAAAG,GAIAzuB,EAAAS,WAAA,eAAA,WAIA,MAHAkuB,IACAliC,GAAA4U,MAAAotB,EAAA,mBAEAE,EAAA,IAIA3uB,EAAAjB,UAAA,GAAA,OAGA2vB,EAAA5hC,EAAA2hC,GACA3hC,EAAA2hC,GAAA,WACAE,EAAAtlC,WAIA6V,EAAApD,OAAA,eAGA3P,KAAAuiC,EACAjiC,GAAAK,GAAA24B,WAAAgJ,GAIA3hC,EAAA2hC,GAAAC,EAIA1uB,EAAAyuB,KAGAzuB,EAAAuuB,cAAAC,EAAAD,cAGAH,GAAA9kC,KAAAmlC,IAIAE,GAAAnhC,GAAAkhC,IACAA,EAAAC,EAAA,IAGAA,EAAAD,MAAAviC,KAIA,WAYA0J,GAAA2/E,mBAAA,WACA,GAAA1+E,GAAAlK,GAAA4yC,eAAAg2C,mBAAA,IAAA1+E,IAEA,OADAA,GAAAvE,UAAA,6BACA,IAAAuE,EAAApE,WAAApK,UAQAmE,GAAAonB,UAAA,SAAA5kB,EAAA0B,EAAAk+B,GACA,GAAA,gBAAA5/B,GACA,QAEA,kBAAA0B,KACAk+B,EAAAl+B,EACAA,GAAA,EAGA,IAAAkX,GAAAinB,EAAAt9B,CAwBA,OAtBAb,KAIAkF,GAAA2/E,oBACA7kF,EAAA/D,GAAA4yC,eAAAg2C,mBAAA,IAKA3tE,EAAAlX,EAAAwB,cAAA,QACA0V,EAAA6J,KAAA9kB,GAAA0kB,SAAAI,KACA/gB,EAAAmT,KAAA5R,YAAA2V,IAEAlX,EAAA/D,IAIAkiC,EAAAnb,GAAArjB,KAAArB,GACAuC,GAAAq9B,MAGAC,GACAn+B,EAAAwB,cAAA28B,EAAA,MAGAA,EAAAv9B,GAAAtC,GAAA0B,EAAAa,GAEAA,GAAAA,EAAAlJ,QACAmE,GAAA+E,GAAA+E,SAGA9J,GAAAuE,SAAA89B,EAAAp8B,cAOAjG,GAAAgH,GAAAvH,KAAA,SAAA08B,EAAAoG,EAAAnjC,GACA,GAAA2H,GAAAtG,EAAAyT,EACA3K,EAAAjJ,KACA8G,EAAA+0B,EAAAt+B,QAAA,IAsDA,OApDAuJ,IAAA,IACAL,EAAAu9E,EAAAnoD,EAAAhgC,MAAAiL,IACA+0B,EAAAA,EAAAhgC,MAAA,EAAAiL,IAIArG,GAAAwhC,IAGAnjC,EAAAmjC,EACAA,MAAA7iC,IAGA6iC,GAAA,gBAAAA,KACA9hC,EAAA,QAIA8I,EAAA1N,OAAA,GACAmE,GAAAm9B,MACAhB,IAAAA,EAKA17B,KAAAA,GAAA,MACA4R,SAAA,OACA7P,KAAA+/B,IACA5yB,KAAA,SAAA0xB,GAGAntB,EAAAtX,UAEA2M,EAAAE,KAAA1C,EAIA/G,GAAA,SAAA4xB,OAAA5xB,GAAAonB,UAAAia,IAAAnjB,KAAAnX,GAGAs6B,KAKAhyB,OAAAjQ,GAAA,SAAAqT,EAAA2qB,GACA7zB,EAAA5H,KAAA,WACAvC,EAAArC,MAAAuD,KAAA4T,IAAAzB,EAAA4uB,aAAAjE,EAAA3qB,QAKAnS,MAOAN,GAAA2B,MACA,YACA,WACA,eACA,YACA,cACA,YACA,SAAAvG,EAAAqF,GACAT,GAAAgH,GAAAvG,GAAA,SAAAuG,GACA,MAAA1G,MAAAuG,GAAApG,EAAAuG,MAOAhH,GAAA4iB,KAAAtD,QAAAkjB,SAAA,SAAAvhC,GACA,MAAAjB,IAAAgB,KAAAhB,GAAAi3B,OAAA,SAAAjwB,GACA,MAAA/F,KAAA+F,EAAA/F,OACApF,QAMAmE,GAAAyiC,QACAC,UAAA,SAAAzhC,EAAAQ,EAAArG,GACA,GAAAunC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAjP,EAAAh0B,GAAAuD,IAAAtC,EAAA,YACAiiC,EAAAljC,GAAAiB,GACAuN,IAGA,YAAAwlB,IACA/yB,EAAA6C,MAAAkwB,SAAA,YAGA+O,EAAAG,EAAAT,SACAI,EAAA7iC,GAAAuD,IAAAtC,EAAA,OACA+hC,EAAAhjC,GAAAuD,IAAAtC,EAAA,QACAgiC,GAAA,aAAAjP,GAAA,UAAAA,KACA6O,EAAAG,GAAAnlC,QAAA,SAAA,EAIAolC,GACAN,EAAAO,EAAAlP,WACA8O,EAAAH,EAAAvhB,IACAwhB,EAAAD,EAAAtN,OAGAyN,EAAA71B,WAAA41B,IAAA,EACAD,EAAA31B,WAAA+1B,IAAA,GAGAjiC,GAAAU,KAGAA,EAAAA,EAAAjH,KAAAyG,EAAA7F,EAAA4E,GAAAwI,UAAAu6B,KAGA,MAAAthC,EAAA2f,MACA5S,EAAA4S,IAAA3f,EAAA2f,IAAA2hB,EAAA3hB,IAAA0hB,GAEA,MAAArhC,EAAA4zB,OACA7mB,EAAA6mB,KAAA5zB,EAAA4zB,KAAA0N,EAAA1N,KAAAuN,GAGA,SAAAnhC,GACAA,EAAA0hC,MAAA3oC,KAAAyG,EAAAuN,GAGA00B,EAAA3/B,IAAAiL,KAKAxO,GAAAgH,GAAAwB,QAGAi6B,OAAA,SAAAhhC,GAGA,GAAA7E,UAAAf,OACA,WAAA6D,KAAA+B,EACAnB,KACAA,KAAAqB,KAAA,SAAAvG,GACA4E,GAAAyiC,OAAAC,UAAApiC,KAAAmB,EAAArG,IAIA,IAAA4tF,GAAA5lD,EACAniC,EAAAX,KAAA,EAEA,IAAAW,EAQA,MAAAA,GAAA4+B,iBAAAhkC,QAKAmtF,EAAA/nF,EAAAm0B,wBACAgO,EAAAniC,EAAAqF,cAAA4O,aAEAkM,IAAA4nE,EAAA5nE,IAAAgiB,EAAAE,YACAjO,KAAA2zD,EAAA3zD,KAAA+N,EAAAG,eARAniB,IAAA,EAAAiU,KAAA,IAcArB,SAAA,WACA,GAAA1zB,KAAA,GAAA,CAIA,GAAAkjC,GAAAf,EAAAv5B,EACAjI,EAAAX,KAAA,GACAmjC,GAAAriB,IAAA,EAAAiU,KAAA,EAGA,IAAA,UAAAr1B,GAAAuD,IAAAtC,EAAA,YAGAwhC,EAAAxhC,EAAAm0B,4BAEA,CAOA,IANAqN,EAAAniC,KAAAmiC,SAIAv5B,EAAAjI,EAAAqF,cACAk9B,EAAAviC,EAAAuiC,cAAAt6B,EAAAyB,gBACA64B,IACAA,IAAAt6B,EAAAmB,MAAAm5B,IAAAt6B,EAAAyB,kBACA,WAAA3K,GAAAuD,IAAAigC,EAAA,aAEAA,EAAAA,EAAAv5B,UAEAu5B,IAAAA,IAAAviC,GAAA,IAAAuiC,EAAAtiC,WAGAuiC,EAAAzjC,GAAAwjC,GAAAf,SACAgB,EAAAriB,KAAAphB,GAAAuD,IAAAigC,EAAA,kBAAA,GACAC,EAAApO,MAAAr1B,GAAAuD,IAAAigC,EAAA,mBAAA,IAKA,OACApiB,IAAAqhB,EAAArhB,IAAAqiB,EAAAriB,IAAAphB,GAAAuD,IAAAtC,EAAA,aAAA,GACAo0B,KAAAoN,EAAApN,KAAAoO,EAAApO,KAAAr1B,GAAAuD,IAAAtC,EAAA,cAAA,MAcAuiC,aAAA,WACA,MAAAljC,MAAA5E,IAAA,WAGA,IAFA,GAAA8nC,GAAAljC,KAAAkjC,aAEAA,GAAA,WAAAxjC,GAAAuD,IAAAigC,EAAA,aACAA,EAAAA,EAAAA,YAGA,OAAAA,IAAA74B,QAMA3K,GAAA2B,MAAAguB,WAAA,cAAAI,UAAA,eAAA,SAAAgP,EAAAzkC,GACA,GAAA8mB,GAAA,gBAAA9mB,CAEA0F,IAAAgH,GAAA+3B,GAAA,SAAAryB,GACA,MAAApE,IAAAhI,KAAA,SAAAW,EAAA89B,EAAAryB,GAGA,GAAA02B,EAOA,IANA1iC,GAAAO,GACAmiC,EAAAniC,EACA,IAAAA,EAAAC,WACAkiC,EAAAniC,EAAAiU,iBAGAxV,KAAAgN,EACA,MAAA02B,GAAAA,EAAA9oC,GAAA2G,EAAA89B,EAGAqE,GACAA,EAAAM,SACAtiB,EAAAgiB,EAAAG,YAAA72B,EACA0U,EAAA1U,EAAA02B,EAAAE,aAIAriC,EAAA89B,GAAAryB,GAEAqyB,EAAAryB,EAAA9P,UAAAf,WAUAmE,GAAA2B,MAAA,MAAA,QAAA,SAAAvG,EAAAd,GACA0F,GAAAiQ,SAAA3V,GAAAmR,EAAArC,GAAAsqB,cACA,SAAAzyB,EAAA+J,GACA,GAAAA,EAIA,MAHAA,GAAAD,EAAA9J,EAAA3G,GAGAiR,GAAAvP,KAAAgP,GACAhL,GAAAiB,GAAA+yB,WAAA15B,GAAA,KACA0Q,MAQAhL,GAAA2B,MAAAgiC,OAAA,SAAAC,MAAA,SAAA,SAAAlpC,EAAA+F,GACAT,GAAA2B,MAAA4zB,QAAA,QAAA76B,EAAA8M,QAAA/G,EAAAojC,GAAA,QAAAnpC,GACA,SAAAopC,EAAAC,GAGA/jC,GAAAgH,GAAA+8B,GAAA,SAAAzO,EAAAn4B,GACA,GAAAstB,GAAA7tB,UAAAf,SAAAioC,GAAA,iBAAAxO,IACA/oB,EAAAu3B,KAAA,IAAAxO,IAAA,IAAAn4B,EAAA,SAAA,SAEA,OAAAmL,IAAAhI,KAAA,SAAAW,EAAAR,EAAAtD,GACA,GAAA+L,EAEA,OAAAxI,IAAAO,GAGA,IAAA8iC,EAAAlmC,QAAA,SACAoD,EAAA,QAAAvG,GACAuG,EAAAd,SAAAwK,gBAAA,SAAAjQ,GAIA,IAAAuG,EAAAC,UACAgI,EAAAjI,EAAA0J,gBAIAyB,KAAAC,IACApL,EAAAoJ,KAAA,SAAA3P,GAAAwO,EAAA,SAAAxO,GACAuG,EAAAoJ,KAAA,SAAA3P,GAAAwO,EAAA,SAAAxO,GACAwO,EAAA,SAAAxO,SAIAgF,KAAAvC,EAGA6C,GAAAuD,IAAAtC,EAAAR,EAAA8L,GAGAvM,GAAA8D,MAAA7C,EAAAR,EAAAtD,EAAAoP,IACA9L,EAAAgqB,EAAA6K,MAAA51B,GAAA+qB,QAMAzqB,GAAA2B,KAAA,wLAEAlG,MAAA,KACA,SAAAL,EAAAV,GAGAsF,GAAAgH,GAAAtM,GAAA,SAAA8H,EAAAwE,GACA,MAAApK,WAAAf,OAAA,EACAyE,KAAAuG,GAAAnM,EAAA,KAAA8H,EAAAwE,GACA1G,KAAA+vB,QAAA31B,MAIAsF,GAAAgH,GAAAwB,QACAoyB,MAAA,SAAAC,EAAAC,GACA,MAAAx6B,MAAAywB,WAAA8J,GAAA7J,WAAA8J,GAAAD,MAOA76B,GAAAgH,GAAAwB,QAEAw7B,KAAA,SAAAl9B,EAAAtE,EAAAwE,GACA,MAAA1G,MAAAuG,GAAAC,EAAA,KAAAtE,EAAAwE,IAEAi9B,OAAA,SAAAn9B,EAAAE,GACA,MAAA1G,MAAA8G,IAAAN,EAAA,KAAAE,IAGAk9B,SAAA,SAAAn9B,EAAAD,EAAAtE,EAAAwE,GACA,MAAA1G,MAAAuG,GAAAC,EAAAC,EAAAvE,EAAAwE,IAEAm9B,WAAA,SAAAp9B,EAAAD,EAAAE,GAGA,MAAA,KAAApK,UAAAf,OACAyE,KAAA8G,IAAAL,EAAA,MACAzG,KAAA8G,IAAAN,EAAAC,GAAA,KAAAC,MAQAhH,GAAA0R,MAAA,SAAA1K,EAAA9C,GACA,GAAAgB,GAAAxI,EAAAgV,CAUA,IARA,gBAAAxN,KACAgB,EAAA8B,EAAA9C,GACAA,EAAA8C,EACAA,EAAA9B,GAKAnE,GAAAiG,GAaA,MARAtK,GAAAP,GAAA3B,KAAAoC,UAAA,GACA8U,EAAA,WACA,MAAA1K,GAAAjK,MAAAmH,GAAA5D,KAAA5D,EAAAN,OAAAD,GAAA3B,KAAAoC,cAIA8U,EAAArK,KAAAL,EAAAK,KAAAL,EAAAK,MAAArH,GAAAqH,OAEAqK,GAGA1R,GAAAmqB,UAAA,SAAAC,GACAA,EACApqB,GAAAkqB,YAEAlqB,GAAAkC,OAAA,IAGAlC,GAAAgQ,QAAA4G,MAAA5G,QACAhQ,GAAA6C,UAAAs4B,KAAAC,MACAp7B,GAAAsE,SAAAA,EACAtE,GAAAe,WAAAA,GACAf,GAAAU,SAAAA,GACAV,GAAA+P,UAAAA,EACA/P,GAAAS,KAAAqiF,EAEA9iF,GAAA4N,IAAAiK,KAAAjK,IAEA5N,GAAA6W,UAAA,SAAAxc,GAKA,GAAAoG,GAAAT,GAAAS,KAAApG,EACA,QAAA,WAAAoG,GAAA,WAAAA,KAKAwuB,MAAA50B,EAAA4S,WAAA5S,IA4BA,IAGAiqC,IAAAjkC,EAAAL,OAGAukC,GAAAlkC,EAAAmkC,CAwBA,OAtBAxkC,IAAAykC,WAAA,SAAAtxB,GASA,MARA9S,GAAAmkC,IAAAxkC,KACAK,EAAAmkC,EAAAD,IAGApxB,GAAA9S,EAAAL,SAAAA,KACAK,EAAAL,OAAAskC,IAGAtkC,IAMAO,IACAF,EAAAL,OAAAK,EAAAmkC,EAAAxkC,IAMAA,OAIAksE,GAAA,kBAAAp0D,SAAA,gBAAAA,QAAAC,SAAA,SAAA1d,GACA,aAAAA,IACA,SAAAA,GACA,MAAAA,IAAA,kBAAAyd,SAAAzd,EAAAwb,cAAAiC,QAAAzd,IAAAyd,OAAA1Z,UAAA,eAAA/D,IAaA4uF,GAAA,SAAAC,EAAAC,GACA,KAAAD,YAAAC,IACA,KAAA,IAAAnkD,WAAA,sCAcAokD,GAAA,SAAAC,EAAAC,GACA,GAAA,kBAAAA,IAAA,OAAAA,EACA,KAAA,IAAAtkD,WAAA,iEAAAskD,GAGAD,GAAAjrF,UAAAD,OAAAgnC,OAAAmkD,GAAAA,EAAAlrF,WACAyX,aACA1Y,MAAAksF,EACAjgD,YAAA,EACAne,UAAA,EACAC,cAAA,KAGAo+D,IAAAnrF,OAAAqsC,eAAArsC,OAAAqsC,eAAA6+C,EAAAC,GAAAD,EAAAjkD,UAAAkkD,IAaAC,GAAA,SAAAhgF,EAAA/O,GACA,IAAA+O,EACA,KAAA,IAAAm6D,gBAAA,4DAGA,QAAAlpE,GAAA,gBAAAA,IAAA,kBAAAA,GAAA+O,EAAA/O,GAOAgiF,GAAA,WACA,QAAAgN,GAAAr0E,EAAA/Z,GACA,GAAAquF,MACAC,GAAA,EACAC,GAAA,EACAC,MAAAlqF,EAEA,KACA,IAAA,GAAAu2C,GAAAC,EAAA/gC,EAAA2C,OAAAC,cAAA2xE,GAAAzzC,EAAAC,EAAA1uB,QAAA7X,QACA85E,EAAA5sF,KAAAo5C,EAAA94C,QAEA/B,GAAAquF,EAAA5tF,SAAAT,GAHAsuF,GAAA,IAKA,MAAA9iF,GACA+iF,GAAA,EACAC,EAAAhjF,EACA,QACA,KACA8iF,GAAAxzC,EAAA,QAAAA,EAAA,SACA,QACA,GAAAyzC,EAAA,KAAAC,IAIA,MAAAH,GAGA,MAAA,UAAAt0E,EAAA/Z,GACA,GAAAwb,MAAA5G,QAAAmF,GACA,MAAAA,EACA,IAAA2C,OAAAC,WAAA5Z,QAAAgX,GACA,MAAAq0E,GAAAr0E,EAAA/Z,EAEA,MAAA,IAAA4pC,WAAA,4DAiBA6nC,GAAA,SAAA13D,GACA,GAAAyB,MAAA5G,QAAAmF,GAAA,CACA,IAAA,GAAA/Z,GAAA,EAAAyuF,EAAAjzE,MAAAzB,EAAAtZ,QAAAT,EAAA+Z,EAAAtZ,OAAAT,IAAAyuF,EAAAzuF,GAAA+Z,EAAA/Z,EAEA,OAAAyuF,GAEA,MAAAjzE,OAAAy/B,KAAAlhC,IA4BAu6D,GAAA,SAAAoa,GAGA,QAAApa,GAAAzmE,EAAA+mE,GACAiZ,GAAA3oF,KAAAovE,EAEA,IAAAqa,GAAAR,GAAAjpF,MAAAovE,EAAAtqC,WAAAjnC,OAAAi6C,eAAAs3B,IAAAl1E,KAAA8F,KAAA0vE,GAGA,OADA+Z,GAAA9gF,KAAAA,EACA8gF,EAGA,MAXAX,IAAA1Z,EAAAoa,GAWApa,GACAjyE,OAIAmwE,GAAA,SAAAoc,GAGA,QAAApc,GAAAR,EAAA6c,EAAAja,GACAiZ,GAAA3oF,KAAAstE,EAEA,IAAAsc,GAAAX,GAAAjpF,MAAAstE,EAAAxoC,WAAAjnC,OAAAi6C,eAAAw1B,IAAApzE,KAAA8F,KAAA0vE,GAIA,OAFAka,GAAA9c,YAAAA,EACA8c,EAAAD,SAAAA,EACAC,EAGA,MAZAd,IAAAxb,EAAAoc,GAYApc,GACAnwE,OAKAqxE,GAAA,SAAAqb,GAGA,QAAArb,GAAAsb,EAAAC,EAAAra,GACAiZ,GAAA3oF,KAAAwuE,EAEA,IAAAwb,GAAAf,GAAAjpF,MAAAwuE,EAAA1pC,WAAAjnC,OAAAi6C,eAAA02B,IAAAt0E,KAAA8F,KAAA0vE,GAIA,OAFAsa,GAAAF,aAAAA,EACAE,EAAAD,kBAAAA,EACAC,EAGA,MAZAlB,IAAAta,EAAAqb,GAYArb,GACArxE,OAEAs+E,GAAA,SAAAwO,GAGA,QAAAxO,GAAAyO,EAAAC,EAAAza,GACAiZ,GAAA3oF,KAAAy7E,EAEA,IAAA2O,GAAAnB,GAAAjpF,MAAAy7E,EAAA32C,WAAAjnC,OAAAi6C,eAAA2jC,IAAAvhF,KAAA8F,KAAA0vE,GAIA,OAFA0a,GAAAF,kBAAAA,EACAE,EAAAD,uBAAAA,EACAC,EAGA,MAZAtB,IAAArN,EAAAwO,GAYAxO,GACAt+E,OAuBAkyD,GAAA,gBAAA1vD,SAAAA,QAAAA,OAAA9B,SAAAA,QAAA8B,OAGA0qF,GAAA,gBAAAphF,OAAAA,MAAAA,KAAApL,SAAAA,QAAAoL,KAGAub,GAAA6qC,IAAAg7B,IAAAtiD,SAAA,iBAGAuiD,GAAA9lE,GAAAhN,OAGA+yE,GAAA1sF,OAAAC,UAGAC,GAAAwsF,GAAAxsF,eAOAqoE,GAAAmkB,GAAAx1E,SAGAmxD,GAAAokB,GAAAA,GAAAE,gBAAAprF,GA8BAqrF,GAAA5sF,OAAAC,UAOAwoE,GAAAmkB,GAAA11E,SAcA0xD,GAAA,gBACAD,GAAA,qBAGAE,GAAA4jB,GAAAA,GAAAE,gBAAAprF,GAiDA0nE,GAAA,yBACAF,GAAA,oBACAC,GAAA,6BACAE,GAAA,iBA8BA2jB,GAAAlmE,GAAA,sBAGAyiD,GAAA,WACA,GAAAllE,GAAA,SAAAwB,KAAAmnF,IAAAA,GAAApxE,MAAAoxE,GAAApxE,KAAAqxE,UAAA,GACA,OAAA5oF,GAAA,iBAAAA,EAAA,MAeA6oF,GAAA7iD,SAAAjqC,UAGAqpE,GAAAyjB,GAAA71E,SAyBA81E,GAAA,sBAGAvjB,GAAA,8BAGAwjB,GAAA/iD,SAAAjqC,UACAitF,GAAAltF,OAAAC,UAGAktF,GAAAF,GAAA/1E,SAGAk2E,GAAAF,GAAAhtF,eAGAspE,GAAAnoD,OAAA,IACA8rE,GAAA9wF,KAAA+wF,IAAAtvF,QAAAkvF,GAAA,QACAlvF,QAAA,yDAAA,SAAA,KA6CAgsE,GAAAH,EAAA3pE,OAAA,UA+BAiqE,GAAA,4BAGAojB,GAAArtF,OAAAC,UAGAiqE,GAAAmjB,GAAAntF,eAqBAotF,GAAAttF,OAAAC,UAGAmqE,GAAAkjB,GAAAptF,eAiBAoqE,GAAA,2BAsCAC,GAAAtqE,UAAAkqD,MAAAyf,EACAW,EAAAtqE,UAAA,OAAA8pE,EACAQ,EAAAtqE,UAAAyG,IAAAsjE,EACAO,EAAAtqE,UAAAomB,IAAA8jD,EACAI,EAAAtqE,UAAA2E,IAAAylE,CAqEA,IAAAkjB,IAAA90E,MAAAxY,UAGA/B,GAAAqvF,GAAArvF,MAmGA6sE,GAAA9qE,UAAAkqD,MAAAqgB,EACAO,EAAA9qE,UAAA,OAAA0qE,EACAI,EAAA9qE,UAAAyG,IAAAkkE,EACAG,EAAA9qE,UAAAomB,IAAAwkD,EACAE,EAAA9qE,UAAA2E,IAAAkmE,CAGA,IAAA/8B,IAAA47B,EAAAhjD,GAAA,MA8HA4kD,GAAAtrE,UAAAkqD,MAAA6gB,EACAO,EAAAtrE,UAAA,OAAAkrE,EACAI,EAAAtrE,UAAAyG,IAAA0kE,EACAG,EAAAtrE,UAAAomB,IAAAglD,EACAE,EAAAtrE,UAAA2E,IAAA0mE,CAGA,IAAAG,IAAA,2BAiDAE,GAAA1rE,UAAAkJ,IAAAwiE,EAAA1rE,UAAAvB,KAAA8sE,EACAG,EAAA1rE,UAAAomB,IAAAqlD,CAsIA,IAAAmB,IAAA5+D,KAAAk/B,IA0GAggC,GAAAl/D,KAAAC,IAyDAs/E,GAAA,WACA,IACA,GAAAv5E,GAAA01D,EAAA3pE,OAAA,iBAEA,OADAiU,MAAA,OACAA,EACA,MAAArT,QAWA6sF,GAAAD,GAAA,SAAAv5E,EAAAkF,GACA,MAAAq0E,IAAAv5E,EAAA,YACA8Y,cAAA,EACAke,YAAA,EACAjsC,MAAAquE,EAAAl0D,GACA2T,UAAA,KALAkgD,EAUA0gB,GAAA,IACAC,GAAA,GAGAC,GAAAl0E,KAAAjK,IAuCAo+E,GA5BA,SAAA55E,GACA,GAAAyZ,GAAA,EACAogE,EAAA,CAEA,OAAA,YACA,GAAAC,GAAAH,KACAp7E,EAAAm7E,IAAAI,EAAAD,EAGA,IADAA,EAAAC,EACAv7E,EAAA,GACA,KAAAkb,GAAAggE,GACA,MAAAjvF,WAAA,OAGAivB,GAAA,CAEA,OAAAzZ,GAAArV,UAAA2C,GAAA9C,aAYAgvF,IAeA78C,GAAA,iBAmJA09B,GAxJA,SAAAr6D,EAAArO,GACA,MAAAioF,IAAA5gB,EAAAh5D,EAAArO,EAAAonE,GAAA/4D,EAAA,KAuJA,SAAAu4D,GACA,GAAAtuD,GAAA+pD,EAAAuE,EAAAiB,GACA,OAAAvvD,GAAAxgB,QAAAwgB,EAAA,KAAAsuD,EAAA,GACAD,EAAAruD,QAuFA8vE,GAAAhuF,OAAA2+C,QACA+uB,0BAAAA,GACAe,eAAAA,GACAE,oBAAAA,KA+OAsf,GAAAjuF,OAAA2+C,QACA+wB,wBAAAA,GACAyB,gBAAAA,GACA+c,YAAA/c,GACAC,sBAAAA,GACAI,gBAAAA,GACAC,2BAAAA,GACAhD,eAAAA,MASA,SAAA0f,EAAAnrE,GACA,QAAAorE,KACAjsF,KAAAuV,YAAAy2E,EAEAC,EAAAnuF,UAAA+iB,EAAA/iB,UACAkuF,EAAAluF,UAAA,GAAAmuF,IAeAxc,GAAAtyE,OAEAsyE,GAAAoK,aAAA,SAAAlK,EAAAC,GA8BA,QAAAsc,GAAArH,GACA,MAAAA,GAAAhwC,WAAA,GAAA9/B,SAAA,IAAAtJ,cAGA,QAAA0gF,GAAAl5E,GACA,MAAAA,GAAAtX,QAAA,MAAA,QAAAA,QAAA,KAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,eAAA,SAAAkpF,GACA,MAAA,OAAAqH,EAAArH,KACAlpF,QAAA,wBAAA,SAAAkpF,GACA,MAAA,MAAAqH,EAAArH,KAIA,QAAAuH,GAAAn5E,GACA,MAAAA,GAAAtX,QAAA,MAAA,QAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,KAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,MAAA,OAAAA,QAAA,eAAA,SAAAkpF,GACA,MAAA,OAAAqH,EAAArH,KACAlpF,QAAA,wBAAA,SAAAkpF,GACA,MAAA,MAAAqH,EAAArH,KAIA,QAAAwH,GAAAC,GACA,MAAAC,GAAAD,EAAAnsF,MAAAmsF,GAlDA,GAAAC,IACAC,QAAA,SAAAF,GACA,MAAA,IAAAH,EAAAG,EAAAx1E,MAAA,KAGAgiB,MAAA,SAAAwzD,GACA,GACAxxF,GADA2xF,EAAA,EAGA,KAAA3xF,EAAA,EAAAA,EAAAwxF,EAAApuF,MAAA3C,OAAAT,IACA2xF,GAAAH,EAAApuF,MAAApD,YAAAwb,OAAA81E,EAAAE,EAAApuF,MAAApD,GAAA,IAAA,IAAAsxF,EAAAE,EAAApuF,MAAApD,GAAA,IAAAsxF,EAAAE,EAAApuF,MAAApD,GAGA,OAAA,KAAAwxF,EAAArc,SAAA,IAAA,IAAAwc,EAAA,KAGAC,IAAA,SAAAJ,GACA,MAAA,iBAGA5oF,IAAA,SAAA4oF,GACA,MAAA,gBAGAhkB,MAAA,SAAAgkB,GACA,MAAAA,GAAAK,aAiEA,OAAA,YArCA,SAAAhd,GACA,GACA70E,GACAC,EAFA6xF,EAAA,GAAAt2E,OAAAq5D,EAAAp0E,OAIA,KAAAT,EAAA,EAAAA,EAAA60E,EAAAp0E,OAAAT,IACA8xF,EAAA9xF,GAAAuxF,EAAA1c,EAAA70E,GAKA,IAFA8xF,EAAA92E,OAEA82E,EAAArxF,OAAA,EAAA,CACA,IAAAT,EAAA,EAAAC,EAAA,EAAAD,EAAA8xF,EAAArxF,OAAAT,IACA8xF,EAAA9xF,EAAA,KAAA8xF,EAAA9xF,KACA8xF,EAAA7xF,GAAA6xF,EAAA9xF,GACAC,IAGA6xF,GAAArxF,OAAAR,EAGA,OAAA6xF,EAAArxF,QACA,IAAA,GACA,MAAAqxF,GAAA,EAEA,KAAA,GACA,MAAAA,GAAA,GAAA,OAAAA,EAAA,EAEA,SACA,MAAAA,GAAA/wF,MAAA,GAAA,GAAAG,KAAA,MAAA,QAAA4wF,EAAAA,EAAArxF,OAAA,KAQAo0E,GAAA,QAJA,SAAAC,GACA,MAAAA,GAAA,IAAAuc,EAAAvc,GAAA,IAAA,gBAGAA,GAAA,UAqwCA,IAAAid,KACAC,YAAArd,GACA30C,MAAAg1C,IAgBAgd,GAAAD,GAAAC,YACAhyD,GAAA+xD,GAAA/xD,MAKAiyD,GAAAlvF,OAAA2+C,QACAswC,YAAAA,GACAhyD,MAAAA,KA0fAkyD,GAAAnvF,OAAA2+C,QACA6+B,uBAAAA,GACAK,6BAAAA,GACAY,0BAAAA,GACAE,kBAAAA,GACAI,YAAAA,GACAK,cAAAA,GACAE,oBAAAA,GACAQ,iBAAAA,GACAC,uBAAAA,GACAG,+BAAAA,GACAE,kCAAAA,GACAE,oBAAAA,GACAC,WAAAA,GACAC,gBAAAA,KA6bA4O,GAAApvF,OAAA2+C,QACAkiC,qBAAAA,GACAmB,sBAAAA,GACAS,sBAAAA,GACAK,+BAAAA,GACAO,uBAAAA,GACAK,iCAAAA,GACAC,8BAAAA,GACAG,oCAAAA,GACAE,4BAAAA,GACAC,oCAAAA,GACAC,kDAAAA,GACAG,oBAAAA,IAoBA1jF,GAAA0uF,gBAAApB,GACAttF,EAAA2uF,aAAArB,GACAttF,EAAA4uF,YAAAJ,GACAxuF,EAAA6uF,UAAAJ,GACAzuF,EAAA8uF,OAAAP,GACAvuF,EAAA+uF,KAAA1B,GACArtF,EAAA+uE,wBAAAA,GACA/uE,EAAAwwE,gBAAAA,GACAxwE,EAAAutF,YAAA/c,GACAxwE,EAAAywE,sBAAAA,GACAzwE,EAAA6wE,gBAAAA,GACA7wE,EAAA8wE,2BAAAA,GACA9wE,EAAA8tE,eAAAA,GACA9tE,EAAA68E,uBAAAA,GACA78E,EAAAk9E,6BAAAA,GACAl9E,EAAA89E,0BAAAA,GACA99E,EAAAg+E,kBAAAA,GACAh+E,EAAAo+E,YAAAA,GACAp+E,EAAAy+E,cAAAA,GACAz+E,EAAA2+E,oBAAAA,GACA3+E,EAAAm/E,iBAAAA,GACAn/E,EAAAo/E,uBAAAA,GACAp/E,EAAAu/E,+BAAAA,GACAv/E,EAAAy/E,kCAAAA,GACAz/E,EAAA2/E,oBAAAA,GACA3/E,EAAA4/E,WAAAA,GACA5/E,EAAA6/E,gBAAAA,GACA7/E,EAAAkgF,qBAAAA,GACAlgF,EAAAqhF,sBAAAA,GACArhF,EAAA8hF,sBAAAA,GACA9hF,EAAAmiF,+BAAAA,GACAniF,EAAA0iF,uBAAAA,GACA1iF,EAAA+iF,iCAAAA,GACA/iF,EAAAgjF,8BAAAA,GACAhjF,EAAAmjF,oCAAAA,GACAnjF,EAAAqjF,4BAAAA,GACArjF,EAAAsjF,oCAAAA,GACAtjF,EAAAujF,kDAAAA,GACAvjF,EAAA0jF,oBAAAA,GACA1jF,EAAA4wE,cAAAA,GACA5wE,EAAA8uE,gBAAAA,GACA9uE,EAAAgwE,cAAAA,GACAhwE,EAAAi9E,kBAAAA,GAEA59E,OAAA6sB,eAAAlsB,EAAA,cAAA3B,OAAA,MCt3cA,WAQA,GAAA2nB,GAAA,gBAAAvb,OAAAA,KAAAA,OAAAA,MAAAA,MACA,gBAAAtJ,SAAAA,OAAAA,SAAAA,QAAAA,QACAK,SAIAwtF,EAAAhpE,EAAAhjB,EAGAisF,EAAAn3E,MAAAxY,UAAA4vF,EAAA7vF,OAAAC,UACA6vF,EAAA,mBAAAn2E,QAAAA,OAAA1Z,UAAA,KAGAvB,EAAAkxF,EAAAlxF,KACAV,EAAA4xF,EAAA5xF,MACAkZ,EAAA24E,EAAA34E,SACAhX,EAAA2vF,EAAA3vF,eAIA6vF,EAAAt3E,MAAA5G,QACAm+E,EAAAhwF,OAAAyb,KACAquD,EAAA9pE,OAAAgnC,OAGAy/C,EAAA,aAGA9iF,EAAA,SAAAzH,GACA,MAAAA,aAAAyH,GAAAzH,EACAiG,eAAAwB,QACAxB,KAAA8tF,SAAA/zF,GADA,GAAAyH,GAAAzH,GASA,oBAAAyE,UAAAA,QAAAoC,SAMA4jB,EAAAhjB,EAAAA,GALA,mBAAA9C,UAAAA,OAAAkC,UAAAlC,OAAAF,UACAA,QAAAE,OAAAF,QAAAgD,GAEAhD,QAAAgD,EAAAA,GAMAA,EAAAusF,QAAA,OAKA,IAmBAC,GAnBAC,EAAA,SAAAn8E,EAAAlO,EAAAsqF,GACA,OAAA,KAAAtqF,EAAA,MAAAkO,EACA,QAAA,MAAAo8E,EAAA,EAAAA,GACA,IAAA,GAAA,MAAA,UAAArxF,GACA,MAAAiV,GAAA5X,KAAA0J,EAAA/G,GAGA,KAAA,GAAA,MAAA,UAAAA,EAAAS,EAAAkL,GACA,MAAAsJ,GAAA5X,KAAA0J,EAAA/G,EAAAS,EAAAkL,GAEA,KAAA,GAAA,MAAA,UAAA2lF,EAAAtxF,EAAAS,EAAAkL,GACA,MAAAsJ,GAAA5X,KAAA0J,EAAAuqF,EAAAtxF,EAAAS,EAAAkL,IAGA,MAAA,YACA,MAAAsJ,GAAArV,MAAAmH,EAAAtH,aASA8xF,EAAA,SAAAvxF,EAAA+G,EAAAsqF,GACA,MAAA1sF,GAAAukE,WAAAioB,EAAAxsF,EAAAukE,SAAAlpE,EAAA+G,GACA,MAAA/G,EAAA2E,EAAAqpE,SACArpE,EAAAf,WAAA5D,GAAAoxF,EAAApxF,EAAA+G,EAAAsqF,GACA1sF,EAAAmlE,SAAA9pE,KAAA2E,EAAAkO,QAAA7S,GAAA2E,EAAAoZ,QAAA/d,GACA2E,EAAAkoC,SAAA7sC,GAMA2E,GAAAukE,SAAAioB,EAAA,SAAAnxF,EAAA+G,GACA,MAAAwqF,GAAAvxF,EAAA+G,EAAAywC,EAAAA,GAQA,IAAAg6C,GAAA,SAAAv8E,EAAAw8E,GAEA,MADAA,GAAA,MAAAA,EAAAx8E,EAAAvW,OAAA,GAAA+yF,EACA,WAIA,IAHA,GAAA/yF,GAAAuQ,KAAAC,IAAAzP,UAAAf,OAAA+yF,EAAA,GACAC,EAAAj4E,MAAA/a,GACA+B,EAAA,EACAA,EAAA/B,EAAA+B,IACAixF,EAAAjxF,GAAAhB,UAAAgB,EAAAgxF,EAEA,QAAAA,GACA,IAAA,GAAA,MAAAx8E,GAAA5X,KAAA8F,KAAAuuF,EACA,KAAA,GAAA,MAAAz8E,GAAA5X,KAAA8F,KAAA1D,UAAA,GAAAiyF,EACA,KAAA,GAAA,MAAAz8E,GAAA5X,KAAA8F,KAAA1D,UAAA,GAAAA,UAAA,GAAAiyF,GAEA,GAAAnyF,GAAAka,MAAAg4E,EAAA,EACA,KAAAhxF,EAAA,EAAAA,EAAAgxF,EAAAhxF,IACAlB,EAAAkB,GAAAhB,UAAAgB,EAGA,OADAlB,GAAAkyF,GAAAC,EACAz8E,EAAArV,MAAAuD,KAAA5D,KAKAoyF,EAAA,SAAA1wF,GACA,IAAA0D,EAAAmlE,SAAA7oE,GAAA,QACA,IAAA6pE,EAAA,MAAAA,GAAA7pE,EACAwmF,GAAAxmF,UAAAA,CACA,IAAAgS,GAAA,GAAAw0E,EAEA,OADAA,GAAAxmF,UAAA,KACAgS,GAGA2+E,EAAA,SAAAxsF,GACA,MAAA,UAAAlI,GACA,MAAA,OAAAA,MAAA,GAAAA,EAAAkI,KAIAiiB,EAAA,SAAAnqB,EAAA0gE,GACA,MAAA,OAAA1gE,GAAAgE,EAAA7D,KAAAH,EAAA0gE,IAGAi0B,EAAA,SAAA30F,EAAA0gE,GAEA,IAAA,GADAl/D,GAAAk/D,EAAAl/D,OACAT,EAAA,EAAAA,EAAAS,EAAAT,IAAA,CACA,GAAA,MAAAf,EAAA,MACAA,GAAAA,EAAA0gE,EAAA3/D,IAEA,MAAAS,GAAAxB,MAAA,IAOA40F,EAAA7iF,KAAAqsC,IAAA,EAAA,IAAA,EACAy2C,EAAAH,EAAA,UACAvuF,EAAA,SAAAsI,GACA,GAAAjN,GAAAqzF,EAAApmF,EACA,OAAA,gBAAAjN,IAAAA,GAAA,GAAAA,GAAAozF,EASAntF,GAAAH,KAAAG,EAAA+mC,QAAA,SAAAxuC,EAAAgsE,EAAAniE,GACAmiE,EAAAkoB,EAAAloB,EAAAniE,EACA,IAAA9I,GAAAS,CACA,IAAA2E,EAAAnG,GACA,IAAAe,EAAA,EAAAS,EAAAxB,EAAAwB,OAAAT,EAAAS,EAAAT,IACAirE,EAAAhsE,EAAAe,GAAAA,EAAAf,OAEA,CACA,GAAAuf,GAAA9X,EAAA8X,KAAAvf,EACA,KAAAe,EAAA,EAAAS,EAAA+d,EAAA/d,OAAAT,EAAAS,EAAAT,IACAirE,EAAAhsE,EAAAuf,EAAAxe,IAAAwe,EAAAxe,GAAAf,GAGA,MAAAA,IAIAyH,EAAApG,IAAAoG,EAAAqtF,QAAA,SAAA90F,EAAAgsE,EAAAniE,GACAmiE,EAAAqoB,EAAAroB,EAAAniE,EAIA,KAAA,GAHA0V,IAAApZ,EAAAnG,IAAAyH,EAAA8X,KAAAvf,GACAwB,GAAA+d,GAAAvf,GAAAwB,OACA2b,EAAAZ,MAAA/a,GACA+B,EAAA,EAAAA,EAAA/B,EAAA+B,IAAA,CACA,GAAAwxF,GAAAx1E,EAAAA,EAAAhc,GAAAA,CACA4Z,GAAA5Z,GAAAyoE,EAAAhsE,EAAA+0F,GAAAA,EAAA/0F,GAEA,MAAAmd,GAIA,IAAA63E,GAAA,SAAA9tF,GAGA,GAAA+tF,GAAA,SAAAj1F,EAAAgsE,EAAAkpB,EAAA/rF,GACA,GAAAoW,IAAApZ,EAAAnG,IAAAyH,EAAA8X,KAAAvf,GACAwB,GAAA+d,GAAAvf,GAAAwB,OACA+B,EAAA2D,EAAA,EAAA,EAAA1F,EAAA,CAKA,KAJA2H,IACA+rF,EAAAl1F,EAAAuf,EAAAA,EAAAhc,GAAAA,GACAA,GAAA2D,GAEA3D,GAAA,GAAAA,EAAA/B,EAAA+B,GAAA2D,EAAA,CACA,GAAA6tF,GAAAx1E,EAAAA,EAAAhc,GAAAA,CACA2xF,GAAAlpB,EAAAkpB,EAAAl1F,EAAA+0F,GAAAA,EAAA/0F,GAEA,MAAAk1F,GAGA,OAAA,UAAAl1F,EAAAgsE,EAAAkpB,EAAArrF,GACA,GAAAV,GAAA5G,UAAAf,QAAA,CACA,OAAAyzF,GAAAj1F,EAAAk0F,EAAAloB,EAAAniE,EAAA,GAAAqrF,EAAA/rF,IAMA1B,GAAAinC,OAAAjnC,EAAA0tF,MAAA1tF,EAAA2tF,OAAAJ,EAAA,GAGAvtF,EAAAs3C,YAAAt3C,EAAA4tF,MAAAL,GAAA,GAGAvtF,EAAAoc,KAAApc,EAAA6tF,OAAA,SAAAt1F,EAAAw9C,EAAA3zC,GACA,GAAA0rF,GAAApvF,EAAAnG,GAAAyH,EAAAi2C,UAAAj2C,EAAA+tF,QACAttF,EAAAqtF,EAAAv1F,EAAAw9C,EAAA3zC,EACA,QAAA,KAAA3B,IAAA,IAAAA,EAAA,MAAAlI,GAAAkI,IAKAT,EAAAV,OAAAU,EAAA2X,OAAA,SAAApf,EAAAw9C,EAAA3zC,GACA,GAAAsT,KAKA,OAJAqgC,GAAA62C,EAAA72C,EAAA3zC,GACApC,EAAAH,KAAAtH,EAAA,SAAA8C,EAAAS,EAAAqhB,GACA44B,EAAA16C,EAAAS,EAAAqhB,IAAAzH,EAAA3a,KAAAM,KAEAqa,GAIA1V,EAAAynB,OAAA,SAAAlvB,EAAAw9C,EAAA3zC,GACA,MAAApC,GAAAV,OAAA/G,EAAAyH,EAAAm+C,OAAAyuC,EAAA72C,IAAA3zC,IAKApC,EAAAm3C,MAAAn3C,EAAA4T,IAAA,SAAArb,EAAAw9C,EAAA3zC,GACA2zC,EAAA62C,EAAA72C,EAAA3zC,EAGA,KAAA,GAFA0V,IAAApZ,EAAAnG,IAAAyH,EAAA8X,KAAAvf,GACAwB,GAAA+d,GAAAvf,GAAAwB,OACA+B,EAAA,EAAAA,EAAA/B,EAAA+B,IAAA,CACA,GAAAwxF,GAAAx1E,EAAAA,EAAAhc,GAAAA,CACA,KAAAi6C,EAAAx9C,EAAA+0F,GAAAA,EAAA/0F,GAAA,OAAA,EAEA,OAAA,GAKAyH,EAAAonC,KAAApnC,EAAAkrF,IAAA,SAAA3yF,EAAAw9C,EAAA3zC,GACA2zC,EAAA62C,EAAA72C,EAAA3zC,EAGA,KAAA,GAFA0V,IAAApZ,EAAAnG,IAAAyH,EAAA8X,KAAAvf,GACAwB,GAAA+d,GAAAvf,GAAAwB,OACA+B,EAAA,EAAAA,EAAA/B,EAAA+B,IAAA,CACA,GAAAwxF,GAAAx1E,EAAAA,EAAAhc,GAAAA,CACA,IAAAi6C,EAAAx9C,EAAA+0F,GAAAA,EAAA/0F,GAAA,OAAA,EAEA,OAAA,GAKAyH,EAAAsD,SAAAtD,EAAAmzC,SAAAnzC,EAAAguF,QAAA,SAAAz1F,EAAA01F,EAAA/lB,EAAAgmB,GAGA,MAFAxvF,GAAAnG,KAAAA,EAAAyH,EAAAuL,OAAAhT,KACA,gBAAA2vE,IAAAgmB,KAAAhmB,EAAA,GACAloE,EAAAjE,QAAAxD,EAAA01F,EAAA/lB,IAAA,GAIAloE,EAAAmuF,OAAAtB,EAAA,SAAAt0F,EAAA0gE,EAAAr+D,GACA,GAAAwzF,GAAA99E,CAOA,OANAtQ,GAAAf,WAAAg6D,GACA3oD,EAAA2oD,EACAj5D,EAAAkO,QAAA+qD,KACAm1B,EAAAn1B,EAAA5+D,MAAA,GAAA,GACA4+D,EAAAA,EAAAA,EAAAl/D,OAAA,IAEAiG,EAAApG,IAAArB,EAAA,SAAA6J,GACA,GAAA66B,GAAA3sB,CACA,KAAA2sB,EAAA,CAIA,GAHAmxD,GAAAA,EAAAr0F,SACAqI,EAAA8qF,EAAA9qF,EAAAgsF,IAEA,MAAAhsF,EAAA,MACA66B,GAAA76B,EAAA62D,GAEA,MAAA,OAAAh8B,EAAAA,EAAAA,EAAAhiC,MAAAmH,EAAAxH,OAKAoF,EAAAquF,MAAA,SAAA91F,EAAAkI,GACA,MAAAT,GAAApG,IAAArB,EAAAyH,EAAAkoC,SAAAznC,KAKAT,EAAAsuF,MAAA,SAAA/1F,EAAA2T,GACA,MAAAlM,GAAAV,OAAA/G,EAAAyH,EAAAoZ,QAAAlN,KAKAlM,EAAAuuF,UAAA,SAAAh2F,EAAA2T,GACA,MAAAlM,GAAAoc,KAAA7jB,EAAAyH,EAAAoZ,QAAAlN,KAIAlM,EAAAuK,IAAA,SAAAhS,EAAAgsE,EAAAniE,GACA,GACA/G,GAAA6N,EADAoF,GAAAukC,EAAAA,EAAA27C,GAAA37C,EAAAA,CAEA,IAAA,MAAA0xB,GAAA,gBAAAA,IAAA,gBAAAhsE,GAAA,IAAA,MAAAA,EAAA,CACAA,EAAAmG,EAAAnG,GAAAA,EAAAyH,EAAAuL,OAAAhT,EACA,KAAA,GAAAe,GAAA,EAAAS,EAAAxB,EAAAwB,OAAAT,EAAAS,EAAAT,IAEA,OADA+B,EAAA9C,EAAAe,KACA+B,EAAAiT,IACAA,EAAAjT,OAIAkpE,GAAAqoB,EAAAroB,EAAAniE,GACApC,EAAAH,KAAAtH,EAAA,SAAA0a,EAAAnX,EAAAqhB,KACAjU,EAAAq7D,EAAAtxD,EAAAnX,EAAAqhB,IACAqxE,GAAAtlF,KAAA2pC,EAAAA,GAAAvkC,KAAAukC,EAAAA,KACAvkC,EAAA2E,EACAu7E,EAAAtlF,IAIA,OAAAoF,IAIAtO,EAAAwpC,IAAA,SAAAjxC,EAAAgsE,EAAAniE,GACA,GACA/G,GAAA6N,EADAoF,EAAAukC,EAAAA,EAAA27C,EAAA37C,EAAAA,CAEA,IAAA,MAAA0xB,GAAA,gBAAAA,IAAA,gBAAAhsE,GAAA,IAAA,MAAAA,EAAA,CACAA,EAAAmG,EAAAnG,GAAAA,EAAAyH,EAAAuL,OAAAhT,EACA,KAAA,GAAAe,GAAA,EAAAS,EAAAxB,EAAAwB,OAAAT,EAAAS,EAAAT,IAEA,OADA+B,EAAA9C,EAAAe,KACA+B,EAAAiT,IACAA,EAAAjT,OAIAkpE,GAAAqoB,EAAAroB,EAAAniE,GACApC,EAAAH,KAAAtH,EAAA,SAAA0a,EAAAnX,EAAAqhB,KACAjU,EAAAq7D,EAAAtxD,EAAAnX,EAAAqhB,IACAqxE,GAAAtlF,IAAA2pC,EAAAA,GAAAvkC,IAAAukC,EAAAA,KACAvkC,EAAA2E,EACAu7E,EAAAtlF,IAIA,OAAAoF,IAIAtO,EAAAyuF,QAAA,SAAAl2F,GACA,MAAAyH,GAAA0uF,OAAAn2F,EAAAs6C,EAAAA,IAOA7yC,EAAA0uF,OAAA,SAAAn2F,EAAAsE,EAAAqxF,GACA,GAAA,MAAArxF,GAAAqxF,EAEA,MADAxvF,GAAAnG,KAAAA,EAAAyH,EAAAuL,OAAAhT,IACAA,EAAAyH,EAAA0U,OAAAnc,EAAAwB,OAAA,GAEA,IAAA20F,GAAAhwF,EAAAnG,GAAAyH,EAAA4H,MAAArP,GAAAyH,EAAAuL,OAAAhT,GACAwB,EAAAqzF,EAAAsB,EACA7xF,GAAAyN,KAAAC,IAAAD,KAAAk/B,IAAA3sC,EAAA9C,GAAA,EAEA,KAAA,GADAqa,GAAAra,EAAA,EACA+B,EAAA,EAAAA,EAAAe,EAAAf,IAAA,CACA,GAAA6yF,GAAA3uF,EAAA0U,OAAA5Y,EAAAsY,GACApF,EAAA0/E,EAAA5yF,EACA4yF,GAAA5yF,GAAA4yF,EAAAC,GACAD,EAAAC,GAAA3/E,EAEA,MAAA0/E,GAAAr0F,MAAA,EAAAwC,IAIAmD,EAAA4uF,OAAA,SAAAr2F,EAAAgsE,EAAAniE,GACA,GAAAtG,GAAA,CAEA,OADAyoE,GAAAqoB,EAAAroB,EAAAniE,GACApC,EAAAquF,MAAAruF,EAAApG,IAAArB,EAAA,SAAA8C,EAAAoF,EAAA0c,GACA,OACA9hB,MAAAA,EACAS,MAAAA,IACA+yF,SAAAtqB,EAAAlpE,EAAAoF,EAAA0c,MAEA7I,KAAA,SAAAif,EAAAyyD,GACA,GAAAxtE,GAAA+a,EAAAs7D,SACAp2E,EAAAutE,EAAA6I,QACA,IAAAr2E,IAAAC,EAAA,CACA,GAAAD,EAAAC,OAAA,KAAAD,EAAA,MAAA,EACA,IAAAA,EAAAC,OAAA,KAAAA,EAAA,OAAA,EAEA,MAAA8a,GAAAz3B,MAAAkqF,EAAAlqF,QACA,SAIA,IAAAgzF,GAAA,SAAAC,EAAAC,GACA,MAAA,UAAAz2F,EAAAgsE,EAAAniE,GACA,GAAAkM,GAAA0gF,YAMA,OALAzqB,GAAAqoB,EAAAroB,EAAAniE,GACApC,EAAAH,KAAAtH,EAAA,SAAA8C,EAAAS,GACA,GAAA2E,GAAA8jE,EAAAlpE,EAAAS,EAAAvD,EACAw2F,GAAAzgF,EAAAjT,EAAAoF,KAEA6N,GAMAtO,GAAAivF,QAAAH,EAAA,SAAAxgF,EAAAjT,EAAAoF,GACAiiB,EAAApU,EAAA7N,GAAA6N,EAAA7N,GAAA1F,KAAAM,GAAAiT,EAAA7N,IAAApF,KAKA2E,EAAAkvF,QAAAJ,EAAA,SAAAxgF,EAAAjT,EAAAoF,GACA6N,EAAA7N,GAAApF,IAMA2E,EAAAmvF,QAAAL,EAAA,SAAAxgF,EAAAjT,EAAAoF,GACAiiB,EAAApU,EAAA7N,GAAA6N,EAAA7N,KAAA6N,EAAA7N,GAAA,GAGA,IAAA2uF,GAAA,kEAEApvF,GAAAgU,QAAA,SAAAzb,GACA,MAAAA,GACAyH,EAAAkO,QAAA3V,GAAA8B,EAAA3B,KAAAH,GACAyH,EAAAqvF,SAAA92F,GAEAA,EAAAuH,MAAAsvF,GAEA1wF,EAAAnG,GAAAyH,EAAApG,IAAArB,EAAAyH,EAAAqpE,UACArpE,EAAAuL,OAAAhT,OAIAyH,EAAAsiC,KAAA,SAAA/pC,GACA,MAAA,OAAAA,EAAA,EACAmG,EAAAnG,GAAAA,EAAAwB,OAAAiG,EAAA8X,KAAAvf,GAAAwB,QAKAiG,EAAAgvF,UAAAF,EAAA,SAAAxgF,EAAAjT,EAAAi0F,GACAhhF,EAAAghF,EAAA,EAAA,GAAAv0F,KAAAM,KACA,GAQA2E,EAAAiH,MAAAjH,EAAAuV,KAAAvV,EAAAuvF,KAAA,SAAAr6C,EAAAr4C,EAAAqxF,GACA,MAAA,OAAAh5C,GAAAA,EAAAn7C,OAAA,EAAA,MAAA8C,MAAA,MACA,MAAAA,GAAAqxF,EAAAh5C,EAAA,GACAl1C,EAAA0B,QAAAwzC,EAAAA,EAAAn7C,OAAA8C,IAMAmD,EAAA0B,QAAA,SAAAwzC,EAAAr4C,EAAAqxF,GACA,MAAA7zF,GAAA3B,KAAAw8C,EAAA,EAAA5qC,KAAAC,IAAA,EAAA2qC,EAAAn7C,QAAA,MAAA8C,GAAAqxF,EAAA,EAAArxF,MAKAmD,EAAAoU,KAAA,SAAA8gC,EAAAr4C,EAAAqxF,GACA,MAAA,OAAAh5C,GAAAA,EAAAn7C,OAAA,EAAA,MAAA8C,MAAA,MACA,MAAAA,GAAAqxF,EAAAh5C,EAAAA,EAAAn7C,OAAA,GACAiG,EAAA+sF,KAAA73C,EAAA5qC,KAAAC,IAAA,EAAA2qC,EAAAn7C,OAAA8C,KAMAmD,EAAA+sF,KAAA/sF,EAAAwvF,KAAAxvF,EAAAyvF,KAAA,SAAAv6C,EAAAr4C,EAAAqxF,GACA,MAAA7zF,GAAA3B,KAAAw8C,EAAA,MAAAr4C,GAAAqxF,EAAA,EAAArxF,IAIAmD,EAAA0vF,QAAA,SAAAx6C,GACA,MAAAl1C,GAAAV,OAAA41C,EAAA+pB,SAIA,IAAA0wB,GAAA,SAAA5vE,EAAA6vE,EAAAC,EAAAplC,GACAA,EAAAA,KAEA,KAAA,GADAjoC,GAAAioC,EAAA1wD,OACAT,EAAA,EAAAS,EAAAqzF,EAAArtE,GAAAzmB,EAAAS,EAAAT,IAAA,CACA,GAAA+B,GAAA0kB,EAAAzmB,EACA,IAAAoF,EAAArD,KAAA2E,EAAAkO,QAAA7S,IAAA2E,EAAAorC,YAAA/vC,IAEA,GAAAu0F,EAEA,IADA,GAAAr2F,GAAA,EAAA8a,EAAAhZ,EAAAtB,OACAR,EAAA8a,GAAAo2C,EAAAjoC,KAAAnnB,EAAA9B,SAEAo2F,GAAAt0F,EAAAu0F,EAAAC,EAAAplC,GACAjoC,EAAAioC,EAAA1wD,WAEA81F,KACAplC,EAAAjoC,KAAAnnB,GAGA,MAAAovD,GAIAzqD,GAAA2vF,QAAA,SAAAz6C,EAAA06C,GACA,MAAAD,GAAAz6C,EAAA06C,GAAA,IAIA5vF,EAAA8vF,QAAAjD,EAAA,SAAA33C,EAAA66C,GACA,MAAA/vF,GAAAgwF,WAAA96C,EAAA66C,KASA/vF,EAAAiwF,KAAAjwF,EAAA6kB,OAAA,SAAAqwB,EAAAg7C,EAAA3rB,EAAAniE,GACApC,EAAAmwF,UAAAD,KACA9tF,EAAAmiE,EACAA,EAAA2rB,EACAA,GAAA,GAEA,MAAA3rB,IAAAA,EAAAqoB,EAAAroB,EAAAniE,GAGA,KAAA,GAFAkM,MACA66D,KACA7vE,EAAA,EAAAS,EAAAqzF,EAAAl4C,GAAA57C,EAAAS,EAAAT,IAAA,CACA,GAAA+B,GAAA65C,EAAA57C,GACA4P,EAAAq7D,EAAAA,EAAAlpE,EAAA/B,EAAA47C,GAAA75C,CACA60F,KAAA3rB,GACAjrE,GAAA6vE,IAAAjgE,GAAAoF,EAAAvT,KAAAM,GACA8tE,EAAAjgE,GACAq7D,EACAvkE,EAAAsD,SAAA6lE,EAAAjgE,KACAigE,EAAApuE,KAAAmO,GACAoF,EAAAvT,KAAAM,IAEA2E,EAAAsD,SAAAgL,EAAAjT,IACAiT,EAAAvT,KAAAM,GAGA,MAAAiT,IAKAtO,EAAAowF,MAAAvD,EAAA,SAAAhkB,GACA,MAAA7oE,GAAAiwF,KAAAN,EAAA9mB,GAAA,GAAA,MAKA7oE,EAAA2qE,aAAA,SAAAz1B,GAGA,IAAA,GAFA5mC,MACA+hF,EAAAv1F,UAAAf,OACAT,EAAA,EAAAS,EAAAqzF,EAAAl4C,GAAA57C,EAAAS,EAAAT,IAAA,CACA,GAAA20F,GAAA/4C,EAAA57C,EACA,KAAA0G,EAAAsD,SAAAgL,EAAA2/E,GAAA,CACA,GAAA10F,EACA,KAAAA,EAAA,EAAAA,EAAA82F,GACArwF,EAAAsD,SAAAxI,UAAAvB,GAAA00F,GADA10F,KAGAA,IAAA82F,GAAA/hF,EAAAvT,KAAAkzF,IAEA,MAAA3/E,IAKAtO,EAAAgwF,WAAAnD,EAAA,SAAA33C,EAAA63C,GAEA,MADAA,GAAA4C,EAAA5C,GAAA,GAAA,GACA/sF,EAAAV,OAAA41C,EAAA,SAAA75C,GACA,OAAA2E,EAAAsD,SAAAypF,EAAA1xF,OAMA2E,EAAAswF,MAAA,SAAAp7C,GAIA,IAAA,GAHAn7C,GAAAm7C,GAAAl1C,EAAAuK,IAAA2qC,EAAAk4C,GAAArzF,QAAA,EACAuU,EAAAwG,MAAA/a,GAEA+B,EAAA,EAAAA,EAAA/B,EAAA+B,IACAwS,EAAAxS,GAAAkE,EAAAquF,MAAAn5C,EAAAp5C,EAEA,OAAAwS,IAKAtO,EAAAuwF,IAAA1D,EAAA7sF,EAAAswF,OAKAtwF,EAAAJ,OAAA,SAAAud,EAAA5R,GAEA,IAAA,GADA+C,MACAhV,EAAA,EAAAS,EAAAqzF,EAAAjwE,GAAA7jB,EAAAS,EAAAT,IACAiS,EACA+C,EAAA6O,EAAA7jB,IAAAiS,EAAAjS,GAEAgV,EAAA6O,EAAA7jB,GAAA,IAAA6jB,EAAA7jB,GAAA,EAGA,OAAAgV,GAIA,IAAAkiF,GAAA,SAAA/wF,GACA,MAAA,UAAAy1C,EAAAa,EAAA3zC,GACA2zC,EAAA62C,EAAA72C,EAAA3zC,EAGA,KAFA,GAAArI,GAAAqzF,EAAAl4C,GACAp5C,EAAA2D,EAAA,EAAA,EAAA1F,EAAA,EACA+B,GAAA,GAAAA,EAAA/B,EAAA+B,GAAA2D,EACA,GAAAs2C,EAAAb,EAAAp5C,GAAAA,EAAAo5C,GAAA,MAAAp5C,EAEA,QAAA,GAKAkE,GAAAi2C,UAAAu6C,EAAA,GACAxwF,EAAAywF,cAAAD,GAAA,GAIAxwF,EAAA0wF,YAAA,SAAAx7C,EAAA38C,EAAAgsE,EAAAniE,GACAmiE,EAAAqoB,EAAAroB,EAAAniE,EAAA,EAGA,KAFA,GAAA/G,GAAAkpE,EAAAhsE,GACAo4F,EAAA,EAAA5xE,EAAAquE,EAAAl4C,GACAy7C,EAAA5xE,GAAA,CACA,GAAA6xE,GAAAtmF,KAAAo/B,OAAAinD,EAAA5xE,GAAA,EACAwlD,GAAArvB,EAAA07C,IAAAv1F,EAAAs1F,EAAAC,EAAA,EAAA7xE,EAAA6xE,EAEA,MAAAD,GAIA,IAAAE,GAAA,SAAApxF,EAAAqxF,EAAAJ,GACA,MAAA,UAAAx7C,EAAA+4C,EAAAzrE,GACA,GAAAlpB,GAAA,EAAAS,EAAAqzF,EAAAl4C,EACA,IAAA,gBAAA1yB,GACA/iB,EAAA,EACAnG,EAAAkpB,GAAA,EAAAA,EAAAlY,KAAAC,IAAAiY,EAAAzoB,EAAAT,GAEAS,EAAAyoB,GAAA,EAAAlY,KAAAk/B,IAAAhnB,EAAA,EAAAzoB,GAAAyoB,EAAAzoB,EAAA,MAEA,IAAA22F,GAAAluE,GAAAzoB,EAEA,MADAyoB,GAAAkuE,EAAAx7C,EAAA+4C,GACA/4C,EAAA1yB,KAAAyrE,EAAAzrE,GAAA,CAEA,IAAAyrE,IAAAA,EAEA,MADAzrE,GAAAsuE,EAAAz2F,EAAA3B,KAAAw8C,EAAA57C,EAAAS,GAAAiG,EAAAmtB,OACA3K,GAAA,EAAAA,EAAAlpB,GAAA,CAEA,KAAAkpB,EAAA/iB,EAAA,EAAAnG,EAAAS,EAAA,EAAAyoB,GAAA,GAAAA,EAAAzoB,EAAAyoB,GAAA/iB,EACA,GAAAy1C,EAAA1yB,KAAAyrE,EAAA,MAAAzrE,EAEA,QAAA,GAQAxiB,GAAAjE,QAAA80F,EAAA,EAAA7wF,EAAAi2C,UAAAj2C,EAAA0wF,aACA1wF,EAAA6sD,YAAAgkC,GAAA,EAAA7wF,EAAAywF,eAKAzwF,EAAA+wF,MAAA,SAAA9uF,EAAAwN,EAAAskB,GACA,MAAAtkB,IACAA,EAAAxN,GAAA,EACAA,EAAA,GAEA8xB,IACAA,EAAAtkB,EAAAxN,GAAA,EAAA,EAMA,KAAA,GAHAlI,GAAAuQ,KAAAC,IAAAD,KAAAw1C,MAAArwC,EAAAxN,GAAA8xB,GAAA,GACAg9D,EAAAj8E,MAAA/a,GAEAyoB,EAAA,EAAAA,EAAAzoB,EAAAyoB,IAAAvgB,GAAA8xB,EACAg9D,EAAAvuE,GAAAvgB,CAGA,OAAA8uF,IAKA/wF,EAAAgxF,MAAA,SAAA97C,EAAAnrB,GACA,GAAA,MAAAA,GAAAA,EAAA,EAAA,QAGA,KAFA,GAAAzb,MACAhV,EAAA,EAAAS,EAAAm7C,EAAAn7C,OACAT,EAAAS,GACAuU,EAAAvT,KAAAV,EAAA3B,KAAAw8C,EAAA57C,EAAAA,GAAAywB,GAEA,OAAAzb,GAQA,IAAA2iF,GAAA,SAAAC,EAAAC,EAAA/uF,EAAAgvF,EAAAx2F,GACA,KAAAw2F,YAAAD,IAAA,MAAAD,GAAAj2F,MAAAmH,EAAAxH,EACA,IAAA6M,GAAAulF,EAAAkE,EAAA50F,WACAgS,EAAA4iF,EAAAj2F,MAAAwM,EAAA7M,EACA,OAAAoF,GAAAmlE,SAAA72D,GAAAA,EACA7G,EAMAzH,GAAAkiC,KAAA2qD,EAAA,SAAAv8E,EAAAlO,EAAAxH,GACA,IAAAoF,EAAAf,WAAAqR,GAAA,KAAA,IAAA4yB,WAAA,oCACA,IAAAmuD,GAAAxE,EAAA,SAAAyE,GACA,MAAAL,GAAA3gF,EAAA+gF,EAAAjvF,EAAA5D,KAAA5D,EAAAN,OAAAg3F,KAEA,OAAAD,KAOArxF,EAAAuxF,QAAA1E,EAAA,SAAAv8E,EAAAkhF,GACA,GAAAC,GAAAzxF,EAAAuxF,QAAAE,YACAJ,EAAA,WAGA,IAAA,GAFAn/D,GAAA,EAAAn4B,EAAAy3F,EAAAz3F,OACAa,EAAAka,MAAA/a,GACAT,EAAA,EAAAA,EAAAS,EAAAT,IACAsB,EAAAtB,GAAAk4F,EAAAl4F,KAAAm4F,EAAA32F,UAAAo3B,KAAAs/D,EAAAl4F,EAEA,MAAA44B,EAAAp3B,UAAAf,QAAAa,EAAAG,KAAAD,UAAAo3B,KACA,OAAA++D,GAAA3gF,EAAA+gF,EAAA7yF,KAAAA,KAAA5D,GAEA,OAAAy2F,KAGArxF,EAAAuxF,QAAAE,YAAAzxF,EAKAA,EAAA0xF,QAAA7E,EAAA,SAAAt0F,EAAAuf,GACAA,EAAA63E,EAAA73E,GAAA,GAAA,EACA,IAAAhc,GAAAgc,EAAA/d,MACA,IAAA+B,EAAA,EAAA,KAAA,IAAAH,OAAA,wCACA,MAAAG,KAAA,CACA,GAAA2E,GAAAqX,EAAAhc,EACAvD,GAAAkI,GAAAT,EAAAkiC,KAAA3pC,EAAAkI,GAAAlI,MAKAyH,EAAA2xF,QAAA,SAAArhF,EAAAshF,GACA,GAAAD,GAAA,SAAAlxF,GACA,GAAAoX,GAAA85E,EAAA95E,MACAu2C,EAAA,IAAAwjC,EAAAA,EAAA32F,MAAAuD,KAAA1D,WAAA2F,EAEA,OADAiiB,GAAA7K,EAAAu2C,KAAAv2C,EAAAu2C,GAAA99C,EAAArV,MAAAuD,KAAA1D,YACA+c,EAAAu2C,GAGA,OADAujC,GAAA95E,SACA85E,GAKA3xF,EAAAg2B,MAAA62D,EAAA,SAAAv8E,EAAAiY,EAAA3tB,GACA,MAAAkD,YAAA,WACA,MAAAwS,GAAArV,MAAA,KAAAL,IACA2tB,KAKAvoB,EAAAgqB,MAAAhqB,EAAAuxF,QAAAvxF,EAAAg2B,MAAAh2B,EAAA,GAOAA,EAAA6xF,SAAA,SAAAvhF,EAAAiY,EAAA5oB,GACA,GAAAu2B,GAAA9zB,EAAAxH,EAAA0T,EACAwjF,EAAA,CACAnyF,KAAAA,KAEA,IAAAoyF,GAAA,WACAD,GAAA,IAAAnyF,EAAAqyF,QAAA,EAAAhyF,EAAA8L,MACAoqB,EAAA,KACA5nB,EAAAgC,EAAArV,MAAAmH,EAAAxH,GACAs7B,IAAA9zB,EAAAxH,EAAA,OAGAq3F,EAAA,WACA,GAAAnmF,GAAA9L,EAAA8L,KACAgmF,KAAA,IAAAnyF,EAAAqyF,UAAAF,EAAAhmF,EACA,IAAA+C,GAAA0Z,GAAAzc,EAAAgmF,EAcA,OAbA1vF,GAAA5D,KACA5D,EAAAE,UACA+T,GAAA,GAAAA,EAAA0Z,GACA2N,IACAC,aAAAD,GACAA,EAAA,MAEA47D,EAAAhmF,EACAwC,EAAAgC,EAAArV,MAAAmH,EAAAxH,GACAs7B,IAAA9zB,EAAAxH,EAAA,OACAs7B,IAAA,IAAAv2B,EAAAuyF,WACAh8D,EAAAp4B,WAAAi0F,EAAAljF,IAEAP,EASA,OANA2jF,GAAAE,OAAA,WACAh8D,aAAAD,GACA47D,EAAA,EACA57D,EAAA9zB,EAAAxH,EAAA,MAGAq3F,GAOAjyF,EAAAoyF,SAAA,SAAA9hF,EAAAiY,EAAA8pE,GACA,GAAAn8D,GAAA5nB,EAEAyjF,EAAA,SAAA3vF,EAAAxH,GACAs7B,EAAA,KACAt7B,IAAA0T,EAAAgC,EAAArV,MAAAmH,EAAAxH,KAGA03F,EAAAzF,EAAA,SAAAjyF,GAEA,GADAs7B,GAAAC,aAAAD,GACAm8D,EAAA,CACA,GAAAE,IAAAr8D,CACAA,GAAAp4B,WAAAi0F,EAAAxpE,GACAgqE,IAAAjkF,EAAAgC,EAAArV,MAAAuD,KAAA5D,QAEAs7B,GAAAl2B,EAAAg2B,MAAA+7D,EAAAxpE,EAAA/pB,KAAA5D,EAGA,OAAA0T,IAQA,OALAgkF,GAAAH,OAAA,WACAh8D,aAAAD,GACAA,EAAA,MAGAo8D,GAMAtyF,EAAAqD,KAAA,SAAAiN,EAAAkiF,GACA,MAAAxyF,GAAAuxF,QAAAiB,EAAAliF,IAIAtQ,EAAAm+C,OAAA,SAAApI,GACA,MAAA,YACA,OAAAA,EAAA96C,MAAAuD,KAAA1D,aAMAkF,EAAAyyF,QAAA,WACA,GAAA73F,GAAAE,UACAmH,EAAArH,EAAAb,OAAA,CACA,OAAA,YAGA,IAFA,GAAAT,GAAA2I,EACAqM,EAAA1T,EAAAqH,GAAAhH,MAAAuD,KAAA1D,WACAxB,KAAAgV,EAAA1T,EAAAtB,GAAAZ,KAAA8F,KAAA8P,EACA,OAAAA,KAKAtO,EAAAkwB,MAAA,SAAAsiB,EAAAliC,GACA,MAAA,YACA,KAAAkiC,EAAA,EACA,MAAAliC,GAAArV,MAAAuD,KAAA1D,aAMAkF,EAAAiwB,OAAA,SAAAuiB,EAAAliC,GACA,GAAAm9E,EACA,OAAA,YAKA,QAJAj7C,EAAA,IACAi7C,EAAAn9E,EAAArV,MAAAuD,KAAA1D,YAEA03C,GAAA,IAAAliC,EAAA,MACAm9E,IAMAztF,EAAA4mB,KAAA5mB,EAAAuxF,QAAAvxF,EAAAiwB,OAAA,GAEAjwB,EAAA6sF,cAAAA,CAMA,IAAA6F,KAAAn/E,SAAA,MAAA4lC,qBAAA,YACAw5C,GAAA,UAAA,gBAAA,WACA,uBAAA,iBAAA,kBAEAC,EAAA,SAAAr6F,EAAAuf,GACA,GAAA+6E,GAAAF,EAAA54F,OACAga,EAAAxb,EAAAwb,YACAu6B,EAAAtuC,EAAAf,WAAA8U,IAAAA,EAAAzX,WAAA4vF,EAGA1zF,EAAA,aAGA,KAFAkqB,EAAAnqB,EAAAC,KAAAwH,EAAAsD,SAAAwU,EAAAtf,IAAAsf,EAAA/c,KAAAvC,GAEAq6F,MACAr6F,EAAAm6F,EAAAE,KACAt6F,IAAAA,EAAAC,KAAA81C,EAAA91C,KAAAwH,EAAAsD,SAAAwU,EAAAtf,IACAsf,EAAA/c,KAAAvC,GAOAwH,GAAA8X,KAAA,SAAAvf,GACA,IAAAyH,EAAAmlE,SAAA5sE,GAAA,QACA,IAAA8zF,EAAA,MAAAA,GAAA9zF,EACA,IAAAuf,KACA,KAAA,GAAArX,KAAAlI,GAAAmqB,EAAAnqB,EAAAkI,IAAAqX,EAAA/c,KAAA0F,EAGA,OADAiyF,IAAAE,EAAAr6F,EAAAuf,GACAA,GAIA9X,EAAA8yF,QAAA,SAAAv6F,GACA,IAAAyH,EAAAmlE,SAAA5sE,GAAA,QACA,IAAAuf,KACA,KAAA,GAAArX,KAAAlI,GAAAuf,EAAA/c,KAAA0F,EAGA,OADAiyF,IAAAE,EAAAr6F,EAAAuf,GACAA,GAIA9X,EAAAuL,OAAA,SAAAhT,GAIA,IAAA,GAHAuf,GAAA9X,EAAA8X,KAAAvf,GACAwB,EAAA+d,EAAA/d,OACAwR,EAAAuJ,MAAA/a,GACAT,EAAA,EAAAA,EAAAS,EAAAT,IACAiS,EAAAjS,GAAAf,EAAAuf,EAAAxe,GAEA,OAAAiS,IAKAvL,EAAA+yF,UAAA,SAAAx6F,EAAAgsE,EAAAniE,GACAmiE,EAAAqoB,EAAAroB,EAAAniE,EAIA,KAAA,GAHA0V,GAAA9X,EAAA8X,KAAAvf,GACAwB,EAAA+d,EAAA/d,OACA2b,KACA5Z,EAAA,EAAAA,EAAA/B,EAAA+B,IAAA,CACA,GAAAwxF,GAAAx1E,EAAAhc,EACA4Z,GAAA43E,GAAA/oB,EAAAhsE,EAAA+0F,GAAAA,EAAA/0F,GAEA,MAAAmd,IAKA1V,EAAAgzF,MAAA,SAAAz6F,GAIA,IAAA,GAHAuf,GAAA9X,EAAA8X,KAAAvf,GACAwB,EAAA+d,EAAA/d,OACAi5F,EAAAl+E,MAAA/a,GACAT,EAAA,EAAAA,EAAAS,EAAAT,IACA05F,EAAA15F,IAAAwe,EAAAxe,GAAAf,EAAAuf,EAAAxe,IAEA,OAAA05F,IAIAhzF,EAAA4V,OAAA,SAAArd,GAGA,IAAA,GAFA+V,MACAwJ,EAAA9X,EAAA8X,KAAAvf,GACAe,EAAA,EAAAS,EAAA+d,EAAA/d,OAAAT,EAAAS,EAAAT,IACAgV,EAAA/V,EAAAuf,EAAAxe,KAAAwe,EAAAxe,EAEA,OAAAgV,IAKAtO,EAAAizF,UAAAjzF,EAAAkzF,QAAA,SAAA36F,GACA,GAAA46F,KACA,KAAA,GAAA1yF,KAAAlI,GACAyH,EAAAf,WAAA1G,EAAAkI,KAAA0yF,EAAAp4F,KAAA0F,EAEA,OAAA0yF,GAAA7+E,OAIA,IAAA8+E,GAAA,SAAAC,EAAAC,GACA,MAAA,UAAA/6F,GACA,GAAAwB,GAAAe,UAAAf,MAEA,IADAu5F,IAAA/6F,EAAA8D,OAAA9D,IACAwB,EAAA,GAAA,MAAAxB,EAAA,MAAAA,EACA,KAAA,GAAAuD,GAAA,EAAAA,EAAA/B,EAAA+B,IAIA,IAAA,GAHAouB,GAAApvB,UAAAgB,GACAgc,EAAAu7E,EAAAnpE,GACArnB,EAAAiV,EAAA/d,OACAT,EAAA,EAAAA,EAAAuJ,EAAAvJ,IAAA,CACA,GAAAmH,GAAAqX,EAAAxe,EACAg6F,QAAA,KAAA/6F,EAAAkI,KAAAlI,EAAAkI,GAAAypB,EAAAzpB,IAGA,MAAAlI,IAKAyH,GAAA0G,OAAA0sF,EAAApzF,EAAA8yF,SAIA9yF,EAAAuzF,UAAAvzF,EAAA45C,OAAAw5C,EAAApzF,EAAA8X,MAGA9X,EAAA+tF,QAAA,SAAAx1F,EAAAw9C,EAAA3zC,GACA2zC,EAAA62C,EAAA72C,EAAA3zC,EAEA,KAAA,GADA3B,GAAAqX,EAAA9X,EAAA8X,KAAAvf,GACAe,EAAA,EAAAS,EAAA+d,EAAA/d,OAAAT,EAAAS,EAAAT,IAEA,GADAmH,EAAAqX,EAAAxe,GACAy8C,EAAAx9C,EAAAkI,GAAAA,EAAAlI,GAAA,MAAAkI,GAKA,IAAA+yF,GAAA,SAAAn4F,EAAAoF,EAAAlI,GACA,MAAAkI,KAAAlI,GAIAyH,GAAAyzF,KAAA5G,EAAA,SAAAt0F,EAAAuf,GACA,GAAAxJ,MAAAi2D,EAAAzsD,EAAA,EACA,IAAA,MAAAvf,EAAA,MAAA+V,EACAtO,GAAAf,WAAAslE,IACAzsD,EAAA/d,OAAA,IAAAwqE,EAAAkoB,EAAAloB,EAAAzsD,EAAA,KACAA,EAAA9X,EAAA8yF,QAAAv6F,KAEAgsE,EAAAivB,EACA17E,EAAA63E,EAAA73E,GAAA,GAAA,GACAvf,EAAA8D,OAAA9D,GAEA,KAAA,GAAAe,GAAA,EAAAS,EAAA+d,EAAA/d,OAAAT,EAAAS,EAAAT,IAAA,CACA,GAAAmH,GAAAqX,EAAAxe,GACA+B,EAAA9C,EAAAkI,EACA8jE,GAAAlpE,EAAAoF,EAAAlI,KAAA+V,EAAA7N,GAAApF,GAEA,MAAAiT,KAIAtO,EAAA0zF,KAAA7G,EAAA,SAAAt0F,EAAAuf,GACA,GAAA1V,GAAAmiE,EAAAzsD,EAAA,EAUA,OATA9X,GAAAf,WAAAslE,IACAA,EAAAvkE,EAAAm+C,OAAAomB,GACAzsD,EAAA/d,OAAA,IAAAqI,EAAA0V,EAAA,MAEAA,EAAA9X,EAAApG,IAAA+1F,EAAA73E,GAAA,GAAA,GAAAkH,QACAulD,EAAA,SAAAlpE,EAAAoF,GACA,OAAAT,EAAAsD,SAAAwU,EAAArX,KAGAT,EAAAyzF,KAAAl7F,EAAAgsE,EAAAniE,KAIApC,EAAAszF,SAAAF,EAAApzF,EAAA8yF,SAAA,GAKA9yF,EAAAqjC,OAAA,SAAA/mC,EAAAoQ,GACA,GAAA4B,GAAA0+E,EAAA1wF,EAEA,OADAoQ,IAAA1M,EAAAuzF,UAAAjlF,EAAA5B,GACA4B,GAIAtO,EAAA4H,MAAA,SAAArP,GACA,MAAAyH,GAAAmlE,SAAA5sE,GACAyH,EAAAkO,QAAA3V,GAAAA,EAAA8B,QAAA2F,EAAA0G,UAAAnO,GADAA,GAOAyH,EAAA2zF,IAAA,SAAAp7F,EAAAq7F,GAEA,MADAA,GAAAr7F,GACAA,GAIAyH,EAAA6zF,QAAA,SAAAj0F,EAAAsM,GACA,GAAA4L,GAAA9X,EAAA8X,KAAA5L,GAAAnS,EAAA+d,EAAA/d,MACA,IAAA,MAAA6F,EAAA,OAAA7F,CAEA,KAAA,GADAxB,GAAA8D,OAAAuD,GACAtG,EAAA,EAAAA,EAAAS,EAAAT,IAAA,CACA,GAAAmH,GAAAqX,EAAAxe,EACA,IAAA4S,EAAAzL,KAAAlI,EAAAkI,MAAAA,IAAAlI,IAAA,OAAA,EAEA,OAAA,EAKA,IAAAmP,GAAAosF,CACApsF,GAAA,SAAA8Q,EAAAC,EAAAs7E,EAAAC,GAGA,GAAAx7E,IAAAC,EAAA,MAAA,KAAAD,GAAA,EAAAA,GAAA,EAAAC,CAEA,IAAA,MAAAD,GAAA,MAAAC,EAAA,OAAA,CAEA,IAAAD,IAAAA,EAAA,MAAAC,KAAAA,CAEA,IAAA9Z,SAAA6Z,EACA,QAAA,aAAA7Z,GAAA,WAAAA,GAAA,gBAAA8Z,KACAq7E,EAAAt7E,EAAAC,EAAAs7E,EAAAC,IAIAF,EAAA,SAAAt7E,EAAAC,EAAAs7E,EAAAC,GAEAx7E,YAAAxY,KAAAwY,EAAAA,EAAA8zE,UACA7zE,YAAAzY,KAAAyY,EAAAA,EAAA6zE,SAEA,IAAA7sE,GAAAlM,EAAA7a,KAAA8f,EACA,IAAAiH,IAAAlM,EAAA7a,KAAA+f,GAAA,OAAA,CACA,QAAAgH,GAEA,IAAA,kBAEA,IAAA,kBAGA,MAAA,GAAAjH,GAAA,GAAAC,CACA,KAAA,kBAGA,OAAAD,IAAAA,GAAAC,IAAAA,EAEA,IAAAD,EAAA,GAAAA,GAAA,EAAAC,GAAAD,IAAAC,CACA,KAAA,gBACA,IAAA,mBAIA,OAAAD,IAAAC,CACA,KAAA,kBACA,MAAA0zE,GAAAl0C,QAAAv/C,KAAA8f,KAAA2zE,EAAAl0C,QAAAv/C,KAAA+f,GAGA,GAAAw7E,GAAA,mBAAAx0E,CACA,KAAAw0E,EAAA,CACA,GAAA,gBAAAz7E,IAAA,gBAAAC,GAAA,OAAA,CAIA,IAAAy7E,GAAA17E,EAAAzE,YAAAogF,EAAA17E,EAAA1E,WACA,IAAAmgF,IAAAC,KAAAn0F,EAAAf,WAAAi1F,IAAAA,YAAAA,IACAl0F,EAAAf,WAAAk1F,IAAAA,YAAAA,KACA,eAAA37E,IAAA,eAAAC,GACA,OAAA,EAQAs7E,EAAAA,MACAC,EAAAA,KAEA,KADA,GAAAj6F,GAAAg6F,EAAAh6F,OACAA,KAGA,GAAAg6F,EAAAh6F,KAAAye,EAAA,MAAAw7E,GAAAj6F,KAAA0e,CAQA,IAJAs7E,EAAAh5F,KAAAyd,GACAw7E,EAAAj5F,KAAA0d,GAGAw7E,EAAA,CAGA,IADAl6F,EAAAye,EAAAze,UACA0e,EAAA1e,OAAA,OAAA,CAEA,MAAAA,KACA,IAAA2N,EAAA8Q,EAAAze,GAAA0e,EAAA1e,GAAAg6F,EAAAC,GAAA,OAAA,MAEA,CAEA,GAAAvzF,GAAAqX,EAAA9X,EAAA8X,KAAAU,EAGA,IAFAze,EAAA+d,EAAA/d,OAEAiG,EAAA8X,KAAAW,GAAA1e,SAAAA,EAAA,OAAA,CACA,MAAAA,KAGA,GADA0G,EAAAqX,EAAA/d,IACA2oB,EAAAjK,EAAAhY,KAAAiH,EAAA8Q,EAAA/X,GAAAgY,EAAAhY,GAAAszF,EAAAC,GAAA,OAAA,EAMA,MAFAD,GAAAz3E,MACA03E,EAAA13E,OACA,GAIAtc,EAAAo0F,QAAA,SAAA57E,EAAAC,GACA,MAAA/Q,GAAA8Q,EAAAC,IAKAzY,EAAAq0F,QAAA,SAAA97F,GACA,MAAA,OAAAA,IACAmG,EAAAnG,KAAAyH,EAAAkO,QAAA3V,IAAAyH,EAAAqvF,SAAA92F,IAAAyH,EAAAorC,YAAA7yC,IAAA,IAAAA,EAAAwB,OACA,IAAAiG,EAAA8X,KAAAvf,GAAAwB,SAIAiG,EAAAs0F,UAAA,SAAA/7F,GACA,SAAAA,GAAA,IAAAA,EAAA6G,WAKAY,EAAAkO,QAAAk+E,GAAA,SAAA7zF,GACA,MAAA,mBAAAgb,EAAA7a,KAAAH,IAIAyH,EAAAmlE,SAAA,SAAA5sE,GACA,GAAAoG,SAAApG;cACA,OAAA,aAAAoG,GAAA,WAAAA,KAAApG,GAIAyH,EAAAH,MAAA,YAAA,WAAA,SAAA,SAAA,OAAA,SAAA,QAAA,SAAA,MAAA,UAAA,MAAA,WAAA,SAAAjH,GACAoH,EAAA,KAAApH,GAAA,SAAAL,GACA,MAAAgb,GAAA7a,KAAAH,KAAA,WAAAK,EAAA,OAMAoH,EAAAorC,YAAAtwC,aACAkF,EAAAorC,YAAA,SAAA7yC,GACA,MAAAmqB,GAAAnqB,EAAA,WAMA,IAAAg8F,GAAAvxE,EAAA3kB,UAAA2kB,EAAA3kB,SAAA8F,UACA,mBAAA,KAAA,gBAAAqwF,YAAA,kBAAAD,KACAv0F,EAAAf,WAAA,SAAA1G,GACA,MAAA,kBAAAA,KAAA,IAKAyH,EAAAqzB,SAAA,SAAA96B,GACA,OAAAyH,EAAAy0F,SAAAl8F,IAAA86B,SAAA96B,KAAA40B,MAAAhiB,WAAA5S,KAIAyH,EAAAmtB,MAAA,SAAA50B,GACA,MAAAyH,GAAA00F,SAAAn8F,IAAA40B,MAAA50B,IAIAyH,EAAAmwF,UAAA,SAAA53F,GACA,OAAA,IAAAA,IAAA,IAAAA,GAAA,qBAAAgb,EAAA7a,KAAAH,IAIAyH,EAAA20F,OAAA,SAAAp8F,GACA,MAAA,QAAAA,GAIAyH,EAAA40F,YAAA,SAAAr8F,GACA,WAAA,KAAAA,GAKAyH,EAAA0iB,IAAA,SAAAnqB,EAAA0gE,GACA,IAAAj5D,EAAAkO,QAAA+qD,GACA,MAAAv2C,GAAAnqB,EAAA0gE,EAGA,KAAA,GADAl/D,GAAAk/D,EAAAl/D,OACAT,EAAA,EAAAA,EAAAS,EAAAT,IAAA,CACA,GAAAmH,GAAAw4D,EAAA3/D,EACA,IAAA,MAAAf,IAAAgE,EAAA7D,KAAAH,EAAAkI,GACA,OAAA,CAEAlI,GAAAA,EAAAkI,GAEA,QAAA1G,GAQAiG,EAAA2iC,WAAA,WAEA,MADA3f,GAAAhjB,EAAAgsF,EACAxtF,MAIAwB,EAAAqpE,SAAA,SAAAhuE,GACA,MAAAA,IAIA2E,EAAA0pE,SAAA,SAAAruE,GACA,MAAA,YACA,MAAAA,KAIA2E,EAAA6U,KAAA,aAIA7U,EAAAkoC,SAAA,SAAA+wB,GACA,MAAAj5D,GAAAkO,QAAA+qD,GAGA,SAAA1gE,GACA,MAAA20F,GAAA30F,EAAA0gE,IAHAg0B,EAAAh0B,IAQAj5D,EAAA60F,WAAA,SAAAt8F,GACA,MAAA,OAAAA,EACA,aAEA,SAAA0gE,GACA,MAAAj5D,GAAAkO,QAAA+qD,GAAAi0B,EAAA30F,EAAA0gE,GAAA1gE,EAAA0gE,KAMAj5D,EAAAoZ,QAAApZ,EAAAqK,QAAA,SAAA6B,GAEA,MADAA,GAAAlM,EAAAuzF,aAAArnF,GACA,SAAA3T,GACA,MAAAyH,GAAA6zF,QAAAt7F,EAAA2T,KAKAlM,EAAAwyC,MAAA,SAAA31C,EAAA0nE,EAAAniE,GACA,GAAA0yF,GAAAhgF,MAAAxK,KAAAC,IAAA,EAAA1N,GACA0nE,GAAAkoB,EAAAloB,EAAAniE,EAAA,EACA,KAAA,GAAA9I,GAAA,EAAAA,EAAAuD,EAAAvD,IAAAw7F,EAAAx7F,GAAAirE,EAAAjrE,EACA,OAAAw7F,IAIA90F,EAAA0U,OAAA,SAAA80B,EAAAj/B,GAKA,MAJA,OAAAA,IACAA,EAAAi/B,EACAA,EAAA,GAEAA,EAAAl/B,KAAAo/B,MAAAp/B,KAAAoK,UAAAnK,EAAAi/B,EAAA,KAIAxpC,EAAA8L,IAAAiK,KAAAjK,KAAA,WACA,OAAA,GAAAiK,OAAAg/E,UAIA,IAAAC,IACAC,IAAA,QACAC,IAAA,OACA3zE,IAAA,OACA4zE,IAAA,SACAC,IAAA,SACAC,IAAA,UAEAC,EAAAt1F,EAAA4V,OAAAo/E,GAGAO,EAAA,SAAA37F,GACA,GAAA47F,GAAA,SAAA11F,GACA,MAAAlG,GAAAkG,IAGAoqB,EAAA,MAAAlqB,EAAA8X,KAAAle,GAAAY,KAAA,KAAA,IACAi7F,EAAA/3E,OAAAwM,GACAwrE,EAAAh4E,OAAAwM,EAAA,IACA,OAAA,UAAA1U,GAEA,MADAA,GAAA,MAAAA,EAAA,GAAA,GAAAA,EACAigF,EAAAv7F,KAAAsb,GAAAA,EAAArb,QAAAu7F,EAAAF,GAAAhgF,GAGAxV,GAAAq4D,OAAAk9B,EAAAP,GACAh1F,EAAAk7D,SAAAq6B,EAAAD,GAKAt1F,EAAAsO,OAAA,SAAA/V,EAAA0gE,EAAA08B,GACA31F,EAAAkO,QAAA+qD,KAAAA,GAAAA,GACA,IAAAl/D,GAAAk/D,EAAAl/D,MACA,KAAAA,EACA,MAAAiG,GAAAf,WAAA02F,GAAAA,EAAAj9F,KAAAH,GAAAo9F,CAEA,KAAA,GAAAr8F,GAAA,EAAAA,EAAAS,EAAAT,IAAA,CACA,GAAAd,GAAA,MAAAD,MAAA,GAAAA,EAAA0gE,EAAA3/D,QACA,KAAAd,IACAA,EAAAm9F,EACAr8F,EAAAS,GAEAxB,EAAAyH,EAAAf,WAAAzG,GAAAA,EAAAE,KAAAH,GAAAC,EAEA,MAAAD,GAKA,IAAAq9F,GAAA,CACA51F,GAAA61F,SAAA,SAAAh6F,GACA,GAAAsB,KAAAy4F,EAAA,EACA,OAAA/5F,GAAAA,EAAAsB,EAAAA,GAKA6C,EAAA81F,kBACAC,SAAA,kBACAC,YAAA,mBACA39B,OAAA,mBAMA,IAAA49B,GAAA,OAIAC,GACAd,IAAA,IACAe,KAAA,KACAC,KAAA,IACAC,KAAA,IACAC,SAAA,QACAC,SAAA,SAGAC,EAAA,4BAEAC,EAAA,SAAA32F,GACA,MAAA,KAAAo2F,EAAAp2F,GAOAE,GAAA02F,SAAA,SAAAphF,EAAA4lB,EAAAy7D,IACAz7D,GAAAy7D,IAAAz7D,EAAAy7D,GACAz7D,EAAAl7B,EAAAszF,YAAAp4D,EAAAl7B,EAAA81F,iBAGA,IAAA18E,GAAAsE,SACAwd,EAAAm9B,QAAA49B,GAAA/rE,QACAgR,EAAA86D,aAAAC,GAAA/rE,QACAgR,EAAA66D,UAAAE,GAAA/rE,QACA1vB,KAAA,KAAA,KAAA,KAGAsB,EAAA,EACAouB,EAAA,QACA5U,GAAAnb,QAAAif,EAAA,SAAAtZ,EAAAu4D,EAAA29B,EAAAD,EAAAp1D,GAaA,MAZAzW,IAAA5U,EAAAjb,MAAAyB,EAAA6kC,GAAAxmC,QAAAq8F,EAAAC,GACA36F,EAAA6kC,EAAA7gC,EAAA/F,OAEAs+D,EACAnuC,GAAA,cAAAmuC,EAAA,iCACA29B,EACA9rE,GAAA,cAAA8rE,EAAA,uBACAD,IACA7rE,GAAA,OAAA6rE,EAAA,YAIAj2F,IAEAoqB,GAAA,OAGAgR,EAAA07D,WAAA1sE,EAAA,mBAAAA,EAAA,OAEAA,EAAA,4FAEAA,EAAA,eAEA,IAAA2sE,EACA,KACAA,EAAA,GAAAtwD,UAAArL,EAAA07D,UAAA,MAAA,IAAA1sE,GACA,MAAAjtB,GAEA,KADAA,GAAAitB,OAAAA,EACAjtB,EAGA,GAAAy5F,GAAA,SAAAh2F,GACA,MAAAm2F,GAAAn+F,KAAA8F,KAAAkC,EAAAV,GAOA,OAFA02F,GAAAxsE,OAAA,aADAgR,EAAA07D,UAAA,OACA,OAAA1sE,EAAA,IAEAwsE,GAIA12F,EAAA6jD,MAAA,SAAAtrD,GACA,GAAA6uF,GAAApnF,EAAAzH,EAEA,OADA6uF,GAAA0P,QAAA,EACA1P,EAUA,IAAA2P,GAAA,SAAA3P,EAAA7uF,GACA,MAAA6uF,GAAA0P,OAAA92F,EAAAzH,GAAAsrD,QAAAtrD,EAIAyH,GAAAg3F,MAAA,SAAAz+F,GASA,MARAyH,GAAAH,KAAAG,EAAAizF,UAAA16F,GAAA,SAAAK,GACA,GAAA0X,GAAAtQ,EAAApH,GAAAL,EAAAK,EACAoH,GAAA1D,UAAA1D,GAAA,WACA,GAAAgC,IAAA4D,KAAA8tF,SAEA,OADAvxF,GAAAE,MAAAL,EAAAE,WACAi8F,EAAAv4F,KAAA8R,EAAArV,MAAA+E,EAAApF,OAGAoF,GAIAA,EAAAg3F,MAAAh3F,GAGAA,EAAAH,MAAA,MAAA,OAAA,UAAA,QAAA,OAAA,SAAA,WAAA,SAAAjH,GACA,GAAAqkC,GAAAgvD,EAAArzF,EACAoH,GAAA1D,UAAA1D,GAAA,WACA,GAAAL,GAAAiG,KAAA8tF,QAGA,OAFArvD,GAAAhiC,MAAA1C,EAAAuC,WACA,UAAAlC,GAAA,WAAAA,GAAA,IAAAL,EAAAwB,cAAAxB,GAAA,GACAw+F,EAAAv4F,KAAAjG,MAKAyH,EAAAH,MAAA,SAAA,OAAA,SAAA,SAAAjH,GACA,GAAAqkC,GAAAgvD,EAAArzF,EACAoH,GAAA1D,UAAA1D,GAAA,WACA,MAAAm+F,GAAAv4F,KAAAy+B,EAAAhiC,MAAAuD,KAAA8tF,SAAAxxF,eAKAkF,EAAA1D,UAAAjB,MAAA,WACA,MAAAmD,MAAA8tF,UAKAtsF,EAAA1D,UAAA27C,QAAAj4C,EAAA1D,UAAA26F,OAAAj3F,EAAA1D,UAAAjB,MAEA2E,EAAA1D,UAAAiX,SAAA,WACA,MAAAyL,QAAAxgB,KAAA8tF,WAUA,kBAAAl0F,SAAAA,OAAA6F,KACA7F,OAAA,gBAAA,WACA,MAAA4H,QC3nDA5H,OAAA,sBAAA,SAAA,aAAA,gBAAA,SAAAsqC,EAAA1iC,EAAAgkC,GAkEA,QAAAkzD,GAAAC,EAAA16F,GACA+B,KAAA24F,OAAAA,EACA34F,KAAA/B,OAAAA,EAGA,QAAA26F,GAAAD,GACA34F,KAAA6kC,OAAA,SAAA5mC,GACA,OACA0gC,KAAAg6D,EACA/P,SAAA,GAAA8P,GAAAC,EAAA16F,KA6BA,QAAA46F,GAAAz+F,EAAA0+F,EAAAC,GACA/4F,KAAA5F,KAAAA,EACA4F,KAAA84F,aAAAA,EACA94F,KAAAg5F,aAAA,EACAh5F,KAAAi5F,WAAA,EACAj5F,KAAA+4F,YAAAA,EA3GA,GAAAG,MAQAC,EAAA,WAIAn5F,KAAAo5F,WAAA,SAAAT,GACA,GAAAU,GAAA,GAAAT,GAAAD,EAEA,IAAAA,EAAAW,QAKA,KAAA,IAAAn8F,OAAA,iCAFAw7F,GAAAW,WAIA93F,EAAAH,KAAA63F,EAAA,SAAAj7F,GACAA,EAAAkP,KAAAksF,MAIAr5F,KAAAu5F,iBAAA,WACA,MAAAL,IAIAl5F,KAAAyqB,SAAA,SAAArwB,EAAAo/F,EAAAC,GAEA,GAAAP,EAAA9+F,GACA,KAAA,IAAA+C,OAAA,gDAAA/C,EAGA,IAAA0+F,EACA,mBAAAU,GACAC,EAAAD,EAEAV,EAAAU,EAGAN,EAAA9+F,GAAA,GAAAy+F,GAAAz+F,EAAA0+F,EAAA,SAAA76F,EAAAy7F,GACA,IAAAz7F,EAAA+6F,cAAAU,EAAA/6D,KAAA26D,QAAAr7F,EAAA7D,MAAA,CACA6D,EAAA+6F,aAAA,CACA,KACA,GAAAW,KACAz1D,GAAAh8B,OAAAyxF,EAAA,GAAAn0D,IAEAi0D,EAAAv/F,KAAAy/F,EAAAD,EAAA9Q,UACA3qF,EAAAg7F,WAAA,EAEAS,EAAA/6D,KAAA26D,QAAAr7F,EAAA7D,MAAAu/F,EACA,MAAA/W,GACA3kF,EAAAwT,KAAAmxE,QAgGA,OA3CAiW,GAAA/6F,WACAqP,KAAA,SAAAksF,GAEA,IAAA,GAAAO,GAAAC,EADAC,EAAA95F,KAAA84F,iBACAh+F,EAAA,EAAA+a,EAAAikF,EAAAv+F,OAAAT,EAAA+a,IAAA/a,EAAA,CAIA,GAHA++F,EAAAC,EAAAh/F,MAEA8+F,EAAAV,EAAAW,KACAD,YAAAf,IACA,KAAA,IAAA17F,OAAA,oBAAA08F,EAAA,cAKA,IAFAD,EAAAzsF,KAAAksF,IAEAO,EAAAX,UACA,KAAA,IAAA97F,OAAA,oBAAA08F,EAAA,mBAKA75F,KAAA+4F,YAAA/4F,KAAAq5F,EAAAx0D,OAAA7kC,QAGAyR,KAAA,SAAA+xC,GAGA,KAFAxjD,MAAAg5F,aAAA,EACAh5F,KAAAi5F,WAAA,EACA,GAAA97F,OAAA,WAAA6C,KAAA5F,KAAA,qBAAAopD,IAGA7b,KAAA,SAAAvxB,GACAmxB,QAAAI,KAAA,UAAA3nC,KAAA5F,KAAA,KAAAgc,IAGA2jF,kBAAA,SAAAC,EAAA9sD,GACA3F,QAAAI,KAAA,eAAAqyD,EAAA,cAAAh6F,KAAA5F,KAAA,6BACA8yC,EAAA,aAGA+sD,YAAA,SAAA7jF,GACA,MAAA,IAAAjZ,OAAA,YAAA6C,KAAA5F,KAAA,YAAAgc,KAIA,GAAA+iF,KCzKAv/F,OAAA,kCAAA,YAAA,SAAA,eAAA,WAAA,eAAA,QAAA,iBAAA,sBACA,SAAA6rC,EAAAvB,EAAAg2D,EAAAC,EAAA30D,EAAAszB,EAAA+M,EAAAszB,GA2EA,GAzEA5xD,QAAAE,IAAA,cAGAnxB,MAAAxY,UAAA62C,UACA92C,OAAA6sB,eAAApU,MAAAxY,UAAA,YACAjB,MAAA,SAAAg7C,EAAA6xB,GAEA,GAAA,MAAA1pE,KACA,KAAA,IAAA0kC,WAAA,gCAIA,IAAAF,GAAA3mC,OAAAmC,MAGA6V,EAAA2uB,EAAAjpC,SAAA,CAGA,IAAA,IAAAsa,EACA,OAAA,CAmBA,KAdA,GAAAxX,GAAA,EAAAqrE,EAOAjzB,EAAA3qC,KAAAC,IAAA1N,GAAA,EAAAA,EAAAwX,EAAA/J,KAAAs/B,IAAA/sC,GAAA,GAOAo4C,EAAA5gC,GAAA,CAGA,GARA,SAAAszB,EAAA8W,GACA,MAAA9W,KAAA8W,GAAA,gBAAA9W,IAAA,gBAAA8W,IAAAtxB,MAAAwa,IAAAxa,MAAAsxB,IAOAzb,EAAAiS,GAAAoB,GACA,OAAA,CAGApB,KAIA,OAAA,KAKA12C,OAAA,YACAwnC,QAAAE,IAAA,sBACAvD,EAAAh8B,OAAAu9B,EAAA1lC,OAAAq6F,aAEA7yD,QAAAE,IAAA,mBAGA1nC,OAAAq6F,WAAA30D,EAGAD,EAAA1nC,UAAAiyB,QAAAyV,EAAA1nC,UAAAqnC,KAGAplC,OAAAylC,aAAAA,EAGAzlC,OAAA+4D,IAAAA,EAGA,OAAA/4D,UAAA,EAAA,CACA,GAAA,aAAAA,UAAA,EACA,KAAA5C,OAAA,sCAGA4C,QAAAs6F,IAAAt6F,OAAAu6F,UAoBA,GAjBA70D,EAAA80D,QAAApB,EACA1zD,EAAAl/B,GAAAk/B,EAAAK,OAAAC,mBAAA,SAAA4yD,GAEAlzD,EAAAqB,SAAA,qBAAA,KAAA,kBAEA,KACAqyD,EAAAC,WAAAT,GACA,MAAA/V,GACAr7C,QAAAjzB,MAAA,gCAAAsuE,GAGAphF,EAAAgqB,MAAA,WACAia,EAAAqB,SAAA,iBAAA,OAAA,mBACArB,EAAAN,KAAAM,EAAAK,OAAAa,eAAAgyD,OAIA54F,OAAAy6F,eAAA,CAEA,GAAAC,GAAA16F,OAAA26F,gBACAnzD,SAAAE,IAAA,qBAAAgzD,EAAAr/F,IAAA,SAAAqZ,GAEA,MAAAA,GAAA9Y,QAAA,kBAAA,OAGAhC,QAAA8gG,OAGAn7F,YAAA,WAEA,GAAAm7F,GAAA58F,OAAAyb,KAAA6/E,EAAAI,mBACAhyD,SAAAE,IAAA,qBAAAgzD,IACA,KAKA7gG,OAAA,qBAAA,kCAAA,SAAAsD,GAAA,MAAAA,KC9GAtD,OAAA,4CAAA,WAIA,GAAA+gG,GAAA,SAAAhuB,EAAAiuB,GAEA,GAAA3xF,GAAAjJ,IAQAA,MAAA2sE,MAAAA,EAQA3sE,KAAA46F,WAAAA,EAOA56F,KAAA+U,SAAA,WACA,MAAA8lB,MAAAuxB,UAAAnjD,IAcA,OAJA0xF,GAAAE,WAAA,SAAAC,GACA,GAAA/gG,GAAA8gC,KAAAC,MAAAggE,EACA,OAAA,IAAAH,GAAA5gG,EAAA4yE,MAAA5yE,EAAA6gG,aAEAD,IC5CA/gG,OAAA,iDAAA,WAmKA,MArJA,UAAAmhG,EAAAC,GAUAh7F,KAAAi7F,cAAAF,EAAAE,gBASAj7F,KAAAg7F,cAAAA,EASAh7F,KAAAk7F,eAAAH,EAAA/kD,MAAAz6C,OASAyE,KAAAm7F,aAYAn7F,KAAAo7F,YAAA,SAAAC,EAAAC,EAAA3uB,EAAA4uB,GACAv7F,KAAAm7F,UAAA5+F,MAAA8+F,mBAAAA,EAAAC,mBAAAA,EAAA3uB,MAAAA,EAAA4uB,eAAAA,IAEAv7F,KAAA8V,QAUA9V,KAAAw7F,UAAA,WACA,MAAAx7F,MAAAi7F,cAAAj7F,KAAAy7F,YAAAz7F,KAAA07F,aAUA17F,KAAA27F,WAAA,WACA,MAAA37F,MAAAi7F,cAAAj7F,KAAA07F,YAAA17F,KAAAy7F,aAUAz7F,KAAAy7F,UAAA,WAEA,GAAA,GAAAz7F,KAAAm7F,UAAA5/F,OACA,OAAA,CAEA,IAAAqgG,GAAA57F,KAAAm7F,UAAAn7F,KAAAm7F,UAAA5/F,OAAA,EAUA,OAAAqgG,GAAAL,eAAAR,EAAAnlF,OAAAtY,OAAAs+F,EAAAP,mBAAAO,EAAAN,mBAAA,GAUAt7F,KAAA07F,UAAA,WAEA,GAAA,GAAA17F,KAAAm7F,UAAA5/F,OACA,OAAA,CAEA,IAAAsgG,GAAA77F,KAAAm7F,UAAA,EAUA,OAAAJ,GAAAtyF,QAAAnL,MAAAu+F,EAAAN,gBAAA,EAAAM,EAAAR,oBASAr7F,KAAA8V,KAAA,WAEA9V,KAAAm7F,UAAArlF,KAAA,SAAAkE,EAAAC,GAEA,MAAAD,GAAAuhF,gBAAAthF,EAAAshF,eACAvhF,EAAAuhF,eAAAthF,EAAAshF,eAGAvhF,EAAAqhF,mBAAAphF,EAAAohF,yBC3JAzhG,OAAA,gDAAA,WAUA,GAAAkiG,GAAA,SAAAf,EAAAgB,GAoGA,QAAAC,KAEA/yF,EAAAgzF,aAAA78F,GACA6J,EAAAizF,cAAA98F,GACA6J,EAAAkzF,eAAA/8F,GAWA,QAAAg9F,GAAA3M,EAAA/7D,GAEAA,GAAAooE,EAAAO,cACApzF,EAAAgzF,SAAAxM,EAEA/7D,GAAAooE,EAAAQ,eACArzF,EAAAizF,UAAAzM,GAIA/7D,GAAAooE,EAAAS,iBACAh1D,QAAAjzB,MAAA,+BAGArL,EAAAkzF,WAAA1M,GAYA,QAAA+M,GAAA/M,GAGA,MAAAgN,GAIAhN,EAAAiN,aACAZ,EAAAO,cAGA5M,EAAAkN,cACAb,EAAAQ,eAGAR,EAAAS,gBAXAT,EAAAS,gBA4FA,QAAAK,GAAAnN,GAEA,MAAAA,GAAAiN,aACAzzF,EAAA8xF,MAAAE,gBAAAhyF,EAAA8xF,MAAA8B,SAAApN,GAAAxmF,EAAA8xF,MAAAj0C,SAAA2oC,GAGAA,EAAAkN,cACA1zF,EAAA8xF,MAAAE,gBAAAhyF,EAAA8xF,MAAAj0C,SAAA2oC,GAAAxmF,EAAA8xF,MAAA8B,SAAApN,OADA,GAjPA,GAAAxmF,GAAAjJ,IAEAA,MAAA+6F,MAAAA,EAEA/6F,KAAAi8F,aAAA78F,GACAY,KAAAk8F,cAAA98F,GACAY,KAAAm8F,eAAA/8F,EAEA,IAAAq9F,GAAAV,CASA/7F,MAAA88F,mBAAA,SAAAf,GACAU,EAAAV,GAUA/7F,KAAA+7F,kBAAA,WACA,MAAAU,IASAz8F,KAAA+8F,UAAA,WAEA,GAAA/8F,KAAA+6F,MAAA/kD,MAAAz6C,OACAygG,IAGAh8F,KAAAg9F,SAAAh9F,KAAA+6F,MAAAtyF,UAUAzI,KAAAi9F,SAAA,WAEA,GAAAj9F,KAAA+6F,MAAA/kD,MAAAz6C,OACAygG,IAGAh8F,KAAAg9F,SAAAh9F,KAAA+6F,MAAAnlF,SAWA5V,KAAAg9F,SAAA,SAAAvN,GAEAuM,GAEA,IAAAtoE,GAAA8oE,EAAA/M,EAGA,IAFA2M,EAAA3M,EAAA/7D,GAEAA,GAAAooE,EAAAS,iBAAAv8F,KAAA+6F,MAAAmC,kBAAAzN,EAAAnyF,OAAA,CACA,GAAA6/F,GAAAP,EAAAnN,EACA,IAAA0N,EAAA,CACA,GAAAC,GAAAZ,EAAAW,EACAC,IAAA1pE,GACA0pE,GAAAtB,EAAAS,kBACAY,EAAAE,gBACAF,EAAAG,4BACAlB,EAAAe,EAAAC,MA6EAp9F,KAAAu9F,SAAA,WAEA,GAAAvnD,GAAAh2C,KAAAw9F,YAEA,IAAA,GAAAxnD,EAAAz6C,OAEAyE,KAAA+8F,gBAEA,CAEA,GAAAj2C,GAAA9mD,KAAA+6F,MAAAj0C,SAAA9Q,EAAAA,EAAAz6C,OAAA,GACAurD,IAEA9mD,KAAAg9F,SAAAl2C,KAWA9mD,KAAAy9F,SAAA,WAEA,GAAAznD,GAAAh2C,KAAAw9F,YAEA,IAAA,GAAAxnD,EAAAz6C,OACAyE,KAAAi9F,eAEA,CAEA,GAAAJ,GAAA78F,KAAA+6F,MAAA8B,SAAA7mD,EAAA,GACA6mD,IAEA78F,KAAAg9F,SAAAH,KAaA78F,KAAAw9F,WAAA,WAEA,GAAA3oF,KAUA,OARA7U,MAAAi8F,UAAApnF,EAAAtY,KAAAyD,KAAAi8F,UACAj8F,KAAAk8F,WAAArnF,EAAAtY,KAAAyD,KAAAk8F,WACAl8F,KAAAm8F,YAAAtnF,EAAAtY,KAAAyD,KAAAm8F,YAEAtnF,EAAAiB,KAAA,SAAAkE,EAAAC,GACA,MAAAD,GAAA1c,MAAA2c,EAAA3c,QAGAuX,GA8BA,OAJAinF,GAAAO,cAAA,OACAP,EAAAQ,eAAA,QACAR,EAAAS,gBAAA,SAEAT,ICxRA,SAAAl8F,GACA,kBAAAhG,SAAAA,OAAA6F,IAEA7F,OAAA,eAAA,UAAAgG,GACA,gBAAAlB,SAAAA,OAAAF,QAEAE,OAAAF,QAAA,SAAAgmB,EAAA9kB,GAcA,WAbAN,KAAAM,IAMAA,EADA,mBAAAK,QACApG,QAAA,UAGAA,QAAA,UAAA6qB,IAGA5kB,EAAAF,GACAA,GAIAE,EAAAF,SAEA,SAAAwkC,GACA,YACA,IAAAzuB,GAAA,SAAA5Y,GACA,MAAA+7B,UAAA/7B,EAAA,KAAA,EAOAqnC,GAAA7iC,MAAA,MAAA,OAAA,SAAAvG,EAAAV,GACA8pC,EAAAx9B,GAAAtM,EAAA,QAAA,SAAAyC,GACA,GAAA8N,GAAAgD,CACA,OAAA9Q,QACAuC,KAAAvC,EAAA8N,OACA3K,KAAAiD,IAAA7I,EAAA,SAAAyC,EAAA8N,WAEAvL,KAAAvC,EAAA8Q,QACA3N,KAAAiD,IAAA7I,EAAA,UAAAyC,EAAA8Q,QAWA3N,OARA2K,EAAA3K,KAAAiD,IAAA7I,EAAA,UACAuT,EAAA3N,KAAAiD,IAAA7I,EAAA,YAIAuQ,MAAA,QAAAvQ,QAAAgF,KAAAuL,GAAA,SAAAA,IAAA,IAAA8K,EAAA9K,KAAAyhC,OAAA6N,WAAAxkC,EAAA9K,GACAgD,OAAA,QAAAvT,QAAAgF,KAAAuO,GAAA,SAAAA,IAAA,IAAA8H,EAAA9H,KAAAy+B,OAAA6N,WAAAxkC,EAAA9H,QASAu2B,EAAAx9B,GAAAg3F,UAAA,WACA,MAAA19F,MAAAymB,GAAA,aAMAyd,EAAA7iC,MAAA,SAAA,SAAA,WAAA,SAAAvG,EAAAV,GACA8pC,EAAAx9B,GAAAtM,GAAA,SAAAyC,GACA,MAAAA,QACAuC,KAAAvC,EAAAikB,KACA9gB,KAAAiD,IAAA7I,EAAA,QAAA,WAAAA,EAAA,SAAA,IAAAyC,EAAAikB,SAEA1hB,KAAAvC,EAAA8gG,QACA39F,KAAAiD,IAAA7I,EAAA,WAAA,WAAAA,EAAA,SAAA,IAAAyC,EAAA8gG,YAEAv+F,KAAAvC,EAAAk4B,MACA/0B,KAAAiD,IAAA7I,EAAA,SAAA,WAAAA,EAAA,SAAA,IAAAyC,EAAAk4B,UAEA31B,KAAAvC,EAAA2qF,OACAxnF,KAAAiD,IAAA7I,EAAA,UAAA,WAAAA,EAAA,SAAA,IAAAyC,EAAA2qF,OAQAxnF,OALA8gB,IAAArL,EAAAzV,KAAAiD,IAAA7I,EAAA,QAAA,WAAAA,EAAA,SAAA,MACAujG,OAAAloF,EAAAzV,KAAAiD,IAAA7I,EAAA,WAAA,WAAAA,EAAA,SAAA,MACA26B,KAAAtf,EAAAzV,KAAAiD,IAAA7I,EAAA,SAAA,WAAAA,EAAA,SAAA,MACAotF,MAAA/xE,EAAAzV,KAAAiD,IAAA7I,EAAA,UAAA,WAAAA,EAAA,SAAA,YC1EAR,OAAA,yCAAA,WAYA,GAAAgkG,GAAA,SAAAC,EAAAvgG,EAAAy9F,GA4JA,QAAA+C,KAEA70F,EAAA80F,aAIA90F,EAAA80F,aAAAH,EAAAI,aACA/0F,EAAA80F,aAAAH,EAAAK,cACAh1F,EAAA80F,aAAAH,EAAAM,eAEA32D,QAAAjzB,MAAArL,EAAA80F,YAAA,oCAuLA,QAAAI,GAAA/lE,EAAAgmE,GAEA,MAAAn1F,GAAAmvB,GACAnvB,EAAAmvB,KAAAgmE,IAGAn1F,EAAA8xF,MAAAsD,QAAAjmE,IACAnvB,EAAA8xF,MAAAsD,QAAAjmE,KAAAgmE,EAlWA,GAAAn1F,GAAAjJ,IAUAA,MAAA2sE,MAAAkxB,EAAAlxB,MAUA3sE,KAAA2kB,KAAAk5E,EAAAl5E,KAUA3kB,KAAAs+F,IAAAT,EAAAS,IAUAt+F,KAAAw1B,OAAAqoE,EAAAroE,OAAAqoE,EAAAroE,OAAApzB,cAAAy7F,EAAAroE,OAUAx1B,KAAA+9F,YAAAF,EAAAE,YAUA/9F,KAAAu+F,mBAAAV,EAAAU,mBAUAv+F,KAAAw+F,iBAAAX,EAAAW,iBAYAx+F,KAAAy+F,sBAAAZ,EAAAY,sBASAz+F,KAAA0+F,iBAAAb,EAAAa,iBAUA1+F,KAAA2+F,eAAAd,EAAAc,eASA3+F,KAAA4+F,iBAAAf,EAAAe,iBASA5+F,KAAA6+F,WAAAhB,EAAAgB,WASA7+F,KAAA1C,MAAAA,EASA0C,KAAA+6F,MAAAA,EAEA+C,IAQA99F,KAAA8+F,UAAA,SAAAC,GACA/+F,KAAA+9F,YAAAgB,EAEAjB,KAwBA99F,KAAAs9F,yBAAA,WAEA,GAAAkB,GAAAv1F,EAAA+1F,oBACA,QAAAR,GAAAA,GAAAZ,EAAAqB,uBASAj/F,KAAA08F,WAAA,WACA,MAAAzzF,GAAA80F,aAAAH,EAAAI,aASAh+F,KAAA28F,YAAA,WACA,MAAA1zF,GAAA80F,aAAAH,EAAAK,cASAj+F,KAAAk/F,aAAA,WACA,MAAAj2F,GAAA80F,aAAAH,EAAAM,eAUAl+F,KAAAq9F,aAAA,WACA,OAAAp0F,EAAA+xF,iBAUAh7F,KAAAg7F,cAAA,WAMA,GAFA/xF,EAAAk2F,qBAEA,CAEA,GAAAl2F,EAAAy1F,iBACA,CACA,GAAAz1F,EAAAy1F,mBAAAd,EAAAwB,8BAAA,OAAA,CACA,IAAAn2F,EAAAy1F,mBAAAd,EAAAyB,4BAAA,OAAA,EAGA,MAAAp2F,GAAA8xF,MAAAsD,QAAArD,gBAIA,MAAA/xF,GAAA41F,WAAAthG,QAAA,WAAA,GAYAyC,KAAAs/F,iBAAA,WAEA,MAAAr2F,GAAA01F,eACA11F,EAAA01F,eAGA11F,EAAA8xF,MAAAsD,QAAAM,gBAYA3+F,KAAAu/F,qBAAA,WAEA,MAAAt2F,GAAAs1F,mBACAt1F,EAAAs1F,mBAGAt1F,EAAA8xF,MAAAsD,QAAAE,oBAWAv+F,KAAAg/F,mBAAA,WAEA,MAAA/1F,GAAAu1F,iBACAv1F,EAAAu1F,iBAGAv1F,EAAA8xF,MAAAsD,QAAAG,kBAWAx+F,KAAAw/F,wBAAA,WAEA,MAAAv2F,GAAAw1F,sBACAx1F,EAAAw1F,sBAGAx1F,EAAA8xF,MAAAsD,QAAAI,uBAWAz+F,KAAAm/F,mBAAA,WAEA,MAAAl2F,GAAAy1F,iBACAz1F,EAAAy1F,iBAGAz1F,EAAA8xF,MAAAsD,QAAAK,kBAkCA1+F,KAAAy/F,yBAAA,WAEA,MAAAtB,GAAA,iBAAAP,EAAA8B,qCAUA1/F,KAAA2/F,kBAAA,WAEA,MAAAxB,GAAA,iBAAAP,EAAAgC,8BA+IA,OAtIAhC,GAAAyB,4BAAA,aAOAzB,EAAAwB,8BAAA,gBAOAxB,EAAAiC,gCAAA,YAOAjC,EAAAkC,+BAAA,WAMAlC,EAAAmC,2BAAA,OAOAnC,EAAAI,YAAA,mBAOAJ,EAAAK,aAAA,oBAOAL,EAAAM,cAAA,qBAOAN,EAAAqB,sBAAA,OAOArB,EAAAoC,2BAAA,YAOApC,EAAAqC,0BAAA,WAOArC,EAAAsC,sBAAA,OAOAtC,EAAAuC,sBAAA,OAOAvC,EAAAwC,yBAAA,YAOAxC,EAAA8B,mCAAA,sBAOA9B,EAAAgC,4BAAA,eAOAhC,EAAAyC,oBAAA,OAUAzC,EAAA0C,gBAAA,SAAAvB,GAEA,MAAAA,KAAAnB,EAAAI,YACAJ,EAAAK,aAGAc,IAAAnB,EAAAK,aACAL,EAAAI,YAGAe,GAGAnB,ICzhBAhkG,OAAA,6BAAA,YAAA,aAAA,SAAA,cAAA,sBAAA,SAAA,SAAA6rC,EAAAjkC,EAAA0iC,EAAAq8D,EAAA3C,EAAA9kC,IAEA,WAIA,YAEA,IAAA/4D,OAAAygG,YACA,CACA,GAAAzgG,OAAAygG,YAAAlzF,IAEA,MAKA,KAAA,GAFAmzF,IAAA,YAAA,SAAA,QAAA,QAEA3lG,EAAA,EAAAA,EAAA2lG,EAAAllG,OAAAT,IAEA,GAAA2lG,EAAA3lG,IAAAiF,QAAAygG,YAGA,YADAzgG,OAAAygG,YAAAlzF,IAAAvN,OAAAygG,YAAAC,EAAA3lG,SAOAiF,QAAAygG,cAIA,IAAAjpF,KAAAjK,IAMA,YAJAvN,OAAAygG,YAAAlzF,IAAA,WAEA,MAAAiK,MAAAjK,OAKAvN,QAAAygG,YAAAlzF,IAAA,WAEA,OAAA,GAAAiK,SAIA,IAAAmpF,KAs/BA,OA/+BAA,GAAAC,oBAAA,SAAAC,GACA,MAAA7gG,QAAA8gG,MAAA9gG,OAAA+gG,KAEAF,YAAAE,MACAF,EAAAxmG,KACAwmG,YAAAC,MACA,qBAEAD,EAPAA,GAeAF,EAAAK,kBAAA,SAAAC,GACA,GAAA/+D,MAEAy4B,EAAAsmC,GAAAjhG,OAAAwkB,SAAAosB,MACA,IAAA+pB,GAAAA,EAAAn/D,OAAA,CACAm/D,EAAAA,EAAAl9D,UAAA,EAEA,KAAA,GADAyjG,GAAAvmC,EAAAv/D,MAAA,KACAguC,EAAA,EAAAA,EAAA83D,EAAA1lG,OAAA4tC,IACA,CACA,GAAA+3D,GAAAD,EAAA93D,GAAAhuC,MAAA,IACA+lG,GAAA3lG,OAAA,IACA0mC,EAAAi/D,EAAA,IAAA1kC,mBAAA0kC,EAAA,MAKA,MAAAj/D,IASAy+D,EAAAS,wBAAA,SAAAC,EAAAC,GACA,GAAAC,GAAA,GAAAxoC,GAAAsoC,GAAArhG,OAAAwkB,UACAg9E,EAAAD,EAAA3wD,SACA6wD,EAAAF,EAAAh9E,OACAm9E,EAAAH,EAAA3wD,OAAA,IAAArsB,KAAA,IAAAvP,WAEA2sF,EAAA,EAEA,KAAA,GAAAC,KAAAN,GACA,GAAAA,EAAAtjG,eAAA4jG,IAEAN,EAAAM,GAAA,CAEA,GAAAC,GAAAP,EAAAM,EACAngG,GAAAqvF,SAAA+Q,KACAA,EAAAA,EAAA/qF,QAGA+qF,IAGAA,EADAA,EAAAC,SACAD,EAAA/kG,MAEA+iC,mBAAAgiE,GAGAr6D,QAAAC,MAAA,6BAAAm6D,EAAA,MAAAC,GAEAF,GAAAC,EAAA,IAAAC,EACAF,GAAA,KAIA,GAAAI,GAAApB,EAAAK,kBAAAQ,EACA,KAAA,GAAAQ,KAAAD,GACA,GAAAA,EAAA/jG,eAAAgkG,IAEAD,EAAAC,KAEAV,EAAAU,GAAA,CAEA,GAAAt1C,GAAAq1C,EAAAC,GAAAlrF,MACA41C,KAEAllB,QAAAC,MAAA,8BAAAu6D,EAAA,MAAAt1C,GAEAi1C,GAAAK,EAAA,IAAAniE,mBAAA6sB,GACAi1C,GAAA,KAMA,MAFAA,GAAAA,EAAA7lG,MAAA,GAAA,GAEA4lG,EAAA,IAAAC,EAAAF,GAYAd,EAAAsB,KAAA,SAAAjtE,EAAAjU,EAAAnW,EAAAgD,GAEA3N,KAAA+0B,KAAAA,EACA/0B,KAAA8gB,IAAAA,EACA9gB,KAAA2K,MAAAA,EACA3K,KAAA2N,OAAAA,EAEA3N,KAAAwnF,MAAA,WACA,MAAAxnF,MAAA+0B,KAAA/0B,KAAA2K,OAGA3K,KAAA29F,OAAA,WACA,MAAA39F,MAAA8gB,IAAA9gB,KAAA2N,QAGA3N,KAAAiiG,UAAA,SAAAvZ,EAAAwZ,GAMA,WAJA9iG,IAAA8iG,IACAA,EAAA,KAGAxZ,EAAAlB,QAAAxnF,KAAA+0B,KAAAmtE,GACAxZ,EAAA3zD,KAAA/0B,KAAAwnF,QAAA0a,GACAxZ,EAAAiV,SAAA39F,KAAA8gB,IAAAohF,GACAxZ,EAAA5nE,IAAA9gB,KAAA29F,SAAAuE,KAYAxB,EAAAsB,KAAAG,YAAA,SAAAC,GAEA,GAAA3jG,EAEAA,GADA+C,EAAAkO,QAAA0yF,IAAAA,YAAA1iG,QACA0iG,EAAA,GAEAA,EAEA,IAAA3jG,EAAAmC,WACAnC,EAAA2jG,EAAAvhF,SAAA,GASA,KALA,GAAAwhF,GAAA5jG,EAAA4jG,WACAC,EAAA7jG,EAAA6jG,UACA91F,EAAA/N,EAAA+N,YACAC,EAAAhO,EAAAgO,aAEAhO,EAAAA,EAAAykC,cACAm/D,GAAA5jG,EAAA4jG,WACAC,GAAA7jG,EAAA6jG,SAGA,OAAA,IAAA5B,GAAAsB,KAAAK,EAAAC,EAAA91F,EAAAC,IAUAi0F,EAAA6B,yBAAA,SAAAC,EAAAC,EAAAC,EAAA5jG,GAGA,GAEA6jG,GAAAz+D,EAAA,OAAAs+D,GACA72C,EAAAznB,EAAA,4BAAAy+D,EAGA,IAAAC,GADA,EAGAC,EAAA,WAUA,GAbA,GAaAD,EAAA,CACA,GAAAE,GAAA5+D,EAAA,2BAAAy+D,EAMA,IAJAG,GAAAA,EAAA,IAEAH,EAAA,GAAA/4F,YAAAk5F,EAAA,IAlBA,GAoBAF,EAAA,CACA,GAAAp/F,GAAAg/F,EAAA,GAAAx8F,cAAAZ,cAAA,QACA5B,GAAAoV,aAAA,KAAA,sBACApV,EAAA2B,YAAAq9F,EAAA,GAAAx8F,cAAAF,eAAA,0BAAA48F,EAAAK,WAAA,oBAEAJ,EAAA,GAAAx9F,YAAA3B,IAwBA,GAAAw/F,GAAAP,EAAA,IACA3/D,EAAA0/D,EAAA,GAAAx8F,cAAA4O,WACA,KAAAkuB,EAEA,WADAyE,SAAAE,IAAA,6CAYA,KAAA,GALAw7D,GAAA/+D,EAAA,iFAAAs+D,GAKA1nG,EAAA,EAAAA,EAAAmoG,EAAA1nG,OAAAT,IAAA,CAEA,GAAAooG,GAAAD,EAAAnoG,GAEAqoG,EAAAD,EAAA7gG,aAAA,0BACA,IAAA8gG,EAEA,KAGA,IAAA3/F,GAAAs/B,EAAAzQ,iBAAA6wE,GAEAE,EAAAxqE,SAAAp1B,EAAAi/F,SACAS,GAAAtqF,aAAA,0BAAAwqF,EAEA,IAAAC,GAAAzqE,SAAAp1B,EAAA4wB,WAEAivE,IACAH,EAAAtqF,aAAA,4BAAAyqF,GAYA,IAAA,GAAAvoG,GAAA,EAAAA,EAAAmoG,EAAA1nG,OAAAT,IAAA,CACA,GAAAooG,GAAAD,EAAAnoG,GAIAqoG,EAAAD,EAAA7gG,aAAA,2BACA+gG,EAAAD,EAAA/2D,OAAA+2D,GAAA,CACAC,IACAl/D,EAAAg/D,GAAAjgG,IAAA,YAAAmgG,EAAAJ,EAAA,KAGA,IAAAM,GAAAJ,EAAA7gG,aAAA,6BACAghG,EAAAC,EAAAl3D,OAAAk3D,GAAA,CACAD,IACAn/D,EAAAg/D,GAAAjgG,IAAA,cAAAogG,EAAAL,EAAA,MAgBAR,EAAAv/F,IAAA,YAAAw/F,EAAA,IAqBA3jG,MAEAykG,EAAA/hG,EAAA4mB,KAAAy6E,EAEA,IAAAH,EAAAK,YAAAL,EAAA7mE,IAAA,CACA,GAAA2nE,GAAA73C,EAAApwD,OAAAowD,EAAAppC,KAAA,uBAAAnjB,EAEAusD,GAAApwD,OAkBAioG,GAAAd,EAAAK,YACAH,EA3KA,EA6KAj3C,EAAAppC,MACAkhF,kBAAAf,EAAAK,WACAp+E,KAAA+9E,EAAA7mE,OAGA+mE,EAlLA,GAyJAA,EAzJA,EA2JAtjG,WAAA,WAEAqsD,EAAAznB,EAAA,WACAvlC,GAnKA,2BAoKA8kG,kBAAAf,EAAAK,WACAW,IAAA,aACAvjG,KAAA,aAEAwiG,EAAArxE,OAAAq6B,GAEAA,EAAAppC,MACAoC,KAAA+9E,EAAA7mE,OAEA,QAcA+mE,GAtLA,EAuLAj3C,EAAApwD,QAAAowD,EAAAniD,QAvLA,IA0LAo5F,EAEAtjG,WAAA,WACAikG,KACA,KAGAA,KAYA7C,EAAAiD,kBAAA,SAAAC,EAAAC,GAEA,IAAAA,EACA,MAAAD,EAGA,IAAAE,GAAAD,EAAA1oG,MAAA,IACA2oG,GAAAhmF,KAIA,KAFA,GAAAimF,GAAAH,EAAAzoG,MAAA,KAEA2oG,EAAAvoG,OAAA,GAAA,OAAAwoG,EAAA,IAEAD,EAAAhmF,MACAimF,EAAAhoG,OAAA,EAAA,EAKA,OAFA+nG,GAAAhoG,OAAAioG,GAEA/nG,KAAA,MAWA0kG,EAAAsD,SAAA,SAAAlJ,EAAA3lE,GACA,OAAA,IAAA2lE,EAAAv9F,QAAA43B,EAAA2lE,EAAAv/F,OAAA45B,EAAA55B,SAUAmlG,EAAAuD,WAAA,SAAAnJ,EAAA3lE,GAEA,MAAA,KAAA2lE,EAAAv9F,QAAA43B,IAUAurE,EAAAwD,iBAAA,SAAApJ,EAAAqJ,GAEA,GAAAC,GAAAtJ,EAAAv9F,QAAA4mG,EAEA,QAAA,GAAAC,EACAtJ,EAGAA,EAAAt9F,UAAA,EAAA4mG,GAAAtJ,EAAAt9F,UAAA4mG,EAAAD,EAAA5oG,SAUAmlG,EAAA2D,QAAA,SAAArvE,EAAAE,EAAAD,GAEAj1B,KAAAg1B,OAAAA,EACAh1B,KAAAk1B,OAAAA,EACAl1B,KAAAi1B,QAAAA,EAEAj1B,KAAA+0B,KAAA/0B,KAAAg1B,OAAAD,KAAA/0B,KAAAk1B,OAAAH,KAAA/0B,KAAAi1B,QAAAF,KACA/0B,KAAAwnF,MAAAxnF,KAAAg1B,OAAAwyD,MAAAxnF,KAAAk1B,OAAAsyD,MAAAxnF,KAAAi1B,QAAAuyD,MACAxnF,KAAA8gB,IAAA9gB,KAAAg1B,OAAAlU,IAAA9gB,KAAAk1B,OAAApU,IAAA9gB,KAAAi1B,QAAAnU,IACA9gB,KAAA29F,OAAA39F,KAAAg1B,OAAA2oE,OAAA39F,KAAAk1B,OAAAyoE,OAAA39F,KAAAi1B,QAAA0oE,OAEA39F,KAAA2K,MAAA,WACA,MAAA3K,MAAA+0B,KAAA/0B,KAAAwnF,OAGAxnF,KAAA2N,OAAA,WACA,MAAA3N,MAAA8gB,IAAA9gB,KAAA29F,SAQA+C,EAAA4D,cAAA,SAAAC,GAEA,GAAA37F,GAAA27F,EAAA,GAAAj6F,eAEA,IAAA1B,EAAA,CAIA,GAAA47F,OAAAplG,EACA,KAEA,KADAolG,EAAA57F,EAAA67F,aAAA77F,EAAA67F,YAAAlpG,OAAAqN,EAAA67F,YAAA,OAAArlG,IACA,CACA,GAAAoE,GAAAoF,EAAAxD,cAAA,QACAwD,GAAAmO,KAAA5R,YAAA3B,GACAA,EAAA2B,YAAAyD,EAAA9C,eAAA,KACA0+F,EAAAhhG,EAAAkhG,MAGA,GAAAF,EAAA,CACA,GAAAG,GAAA,4EACAH,GAAAI,SACAJ,EAAAK,WAAAF,EAAAH,EAAAI,SAAArpG,QAEAipG,EAAAK,WAAAF,EAAA,IAIA,MAAA/hB,GACAr7C,QAAAjzB,MAAAsuE,GAGA,IACA,GAAAj3D,GAAA/iB,EAAAk8F,gBAAA,+BAAA,QACAn5E,GAAAxmB,YAAAyD,EAAA9C,eAAA,QACA8C,EAAAmB,KAAA5E,YAAAwmB,GACA/iB,EAAAmB,KAAAH,YAAA+hB,GAEA64E,IACAA,EAAAI,SACAJ,EAAAO,WAAAP,EAAAI,SAAArpG,OAAA,GAEAipG,EAAAO,WAAA,IAIA,MAAAniB,GACAr7C,QAAAjzB,MAAAsuE,GAGA,GAAAh6E,EAAAmB,KACA,CAAAnB,EAAAmB,KAAAu4F,aAgBA5B,EAAAsE,sBAAA,SAAAC,EAAAC,EAAAxoE,GAEA,IAAAuoE,GAAA,GAAAA,EAAA1pG,OACA,MAAA,EAKA,IAAAijG,GAAA0G,EAAAA,EAAAlG,yBAAA5/F,EAEA,IAAAo/F,IAAAZ,EAAAqB,sBACA,OAAA,CAKA,IAAA,UAAAviE,EAAAyoE,gBACA,OAAA,CAEA,IAAA,UAAAzoE,EAAAyoE,gBACA,OAAA,CAGA,KAAAD,EACA,MAAA,EAGA,IAAA1G,IAAAZ,EAAAsC,sBACA,OAAA,CAKA,IAAAkF,GAAA1E,EAAA2E,eAAAJ,EAEA,IAAAzG,IAAAZ,EAAAoC,2BACA,MAAAoF,KAAA3/D,EAAAE,MAAAC,qBAKA,IAAA44D,IAAAZ,EAAAqC,0BACA,MAAAmF,KAAA3/D,EAAAE,MAAAE,oBAKA,KAAA24D,GAAAA,IAAAZ,EAAAuC,sBAAA,CAGA,MADAiF,KAAA3/D,EAAAE,MAAAC,sBACA,EAAA,EAMA,MADA2B,SAAAI,KAAA,sDACA,GAQA+4D,EAAA2D,QAAAlC,YAAA,SAAAC,GACA,MAAA,IAAApiG,MAAAoiG,EAAAptE,SAAAotE,EAAAltE,SAAAktE,EAAAntE,YAMAyrE,EAAA2D,QAAAx1F,MAAA,WAEA,MAAA,IAAA7O,OAAA+0B,KAAA,EAAAyyD,MAAA,EAAA1mE,IAAA,EAAA68E,OAAA,IAAA5oE,KAAA,EAAAyyD,MAAA,EAAA1mE,IAAA,EAAA68E,OAAA,IACA5oE,KAAA,EACAyyD,MAAA,EACA1mE,IAAA,EACA68E,OAAA,KAWA+C,EAAA4E,aAAA,SAAAlrG,EAAA6nC,GACA,MAAAy+D,GAAA4E,aAAAjsF,MAAAjf,IAOAsmG,EAAA4E,aAAAjsF,OACAksF,iBAAA,iFACAC,kBAAA,kKAGAC,oBAAA,kIACAC,sBAAA,2FACAC,2BAAA,6MAcAjF,EAAAkF,UAAA,SAAAz5F,EAAAi2F,GAEA,GAAA72E,GAAApf,EAAA5Q,MAEA,IAAAgwB,EAAA,CAQA,IAAA,GAJAs6E,GAAA,GACAC,KACAC,KAAA3D,IAAAA,EAAAt8F,gBAEAhL,EAAA,EAAAA,EAAAywB,EAAAzwB,IAAA,CACA,GAAA0I,GAAA2I,EAAArR,EAEA,IAAAirG,GACA,GAAAviG,EAAAiD,UAAA,IAAAjD,EAAAiD,UAAA,QAAAjD,EAAAiD,UAAA,QAAAjD,EAAAiD,UAAA,KAAAjD,EAAAiD,SASA,CAGA,GAAAu/F,GAAA,EAEA,KAAA,GAAAhsG,KAAAwJ,GAAAyiG,aACA,GAAAziG,EAAAyiG,aAAAloG,eAAA/D,GAAA,CAEA,GAAAksG,GAAAlsG,EAAA2B,QAAA,SAAA,SAAAqe,GAAA,MAAA,IAAAA,EAAA5X,eACA4jG,IAAAE,EAAA,KAAA1iG,EAAAyiG,aAAAjsG,GAAA,gBAIA8rG,EAAAvpG,MAAAkK,SAAAjD,EAAAiD,SAAAiuB,SAAAsxE,QArBA,KAAA,GAAAhsG,KAAAwJ,GAAAyiG,aACA,GAAAziG,EAAAyiG,aAAAloG,eAAA/D,GAAA,CAEA,GAAAksG,GAAAlsG,EAAA2B,QAAA,SAAA,SAAAqe,GAAA,MAAA,IAAAA,EAAA5X,eAEAyjG,IAAAK,EAAA,KAAA1iG,EAAAyiG,aAAAjsG,GAAA,qBAoBAwJ,GAAAiD,SACAy9B,EAAA1gC,EAAAiD,SAAA27F,GAAAn/F,IAAAO,EAAAyiG,cAGA7D,EAAAn/F,IAAAO,EAAAyiG,cAKA,GAAAF,EAAA,CAEA,GAAAn9F,GAAAw5F,EAEA+D,EAAAjiE,EAAA,2BAAAt7B,EAAAmO,KAEAovF,IAAAA,EAAA,IAEAv9F,EAAAmO,KAAAnN,YAAAu8F,EAAA,GAGA,IAAAC,GAAA,EAMA,IAJAP,EAAAtqG,OAAA,IACA6qG,GAAA,6EAAAP,EAAA,OAGAC,EAAAvqG,OAAA,EACA,IAAA,GAAAT,GAAA,EAAAA,EAAAgrG,EAAAvqG,OAAAT,IAAA,CACA,GAAAurG,GAAAP,EAAAhrG,EAEAsrG,IAAA,IAAAC,EAAA5/F,SAAA,MAAA4/F,EAAA3xE,SAAA,MAIA,GAAA0xE,EAAA7qG,OAAA,EAAA,CAEA,GAAA+qG,GAAA19F,EAAAxD,cAAA,QACAkhG,GAAA1tF,aAAA,KAAA,sBACA0tF,EAAAnhG,YAAAyD,EAAA9C,eAAAsgG,IAEAx9F,EAAAmO,KAAA5R,YAAAmhG,OAYA5F,EAAA6F,cAAA,SAAAn8F,GACA,GAAAtK,OAAAV,GACAylE,MAAAzlE,EACA,KACAU,EAAAsK,EAAAo8F,cACA3hC,EAAAz6D,EAAAE,gBAEA,MAAAs4E,GAEA,MADAr7C,SAAAjzB,MAAAsuE,IACA,EAGA,MAAA9iF,IAAA+kE,GAQA67B,EAAA2E,eAAA,SAAAJ,GAEA,GAAAwB,GAAAxB,EAAAt6F,QACA+7F,EAAAzB,EAAAt3F,QAEA,IAAA84F,GAAAC,EAIA,MAAAD,IAAAC,EAAAjhE,EAAAE,MAAAC,sBAAAH,EAAAE,MAAAE,sBASA66D,EAAAiG,kCAAA,SAAAlX,EAAA2V,GAEA,GAAA5G,GAAA/O,EAAAuP,oBAEA,QAAAR,GACAA,GAAAZ,EAAAsC,uBACA1B,GAAAZ,EAAAuC,uBACA3B,GAAAZ,EAAAoC,4BACAoF,GAAA3/D,EAAAE,MAAAC,uBACA44D,GAAAZ,EAAAqC,2BACAmF,GAAA3/D,EAAAE,MAAAE,sBAGA66D,EAAAkG,cAAA,SAAAC,EAAAC,GAKA,GAAA7jG,KAEAzB,GAAAH,MAAA,GAAA,WAAA,QAAA,QAAA,SAAAhE,GACA4F,EAAA5F,EAAA,cAAAA,EAAAypG,IAEAD,EAAA5jG,IAAAA,IAIAy9F,EAAAqG,mBAAA,SAAA5lG,GACA,GAEA6lG,GAAAlkG,EAAAmkG,EAFAC,IAAA/lG,EAAA+lG,SAGApkC,EAAA3hE,EAAA2hE,MAEA,IAAA3hE,EAAA4zB,MAAA5zB,EAAA2f,IAAA,CACA,GAAAiU,GAAA5zB,EAAA4zB,MAAA,EACAjU,EAAA3f,EAAA2f,KAAA,CAEAkmF,GAAAE,EAAA,eAAAnyE,EAAA,OAAAjU,EAAA,SAAA,aAAAiU,EAAA,OAAAjU,EAAA,MASA,GAPA3f,EAAA2B,QACAA,EAAAokG,EAAA,WAAA/lG,EAAA2B,MAAA,KAAA3B,EAAA2B,MAAA,OAAA,SAAA3B,EAAA2B,MAAA,KAEA3B,EAAAgmG,QACAF,EAAAC,EAAA,gBAAA/lG,EAAAgmG,MAAA,OAAA,UAAAhmG,EAAAgmG,MAAA,UAGAH,GAAAlkG,GAAAmkG,GACA,QAGA,IAAAG,GAAAJ,GAAAlkG,EAAAkkG,EAAA,IAAAlkG,EAAAkkG,GAAAlkG,CACAmkG,KACAG,EAAAA,EAAA,IAAAH,EAIA,IAAAhkG,KAGA,OAFAA,GAAA,UAAAmkG,EACAnkG,EAAA,oBAAA6/D,IAAAokC,EAAA,QAAA,OACAjkG,GAGAy9F,EAAA2G,iBAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9jG,GACA6jG,IAAAA,EAAA,KACAC,IAAAA,EAAAD,EAEA,IACA7xF,GACA+xF,EAFAl/F,GAAA,CAIA,OAAA,YACA,GAAAm/F,GAAAhkG,GAAA5D,KACAsN,EAAAiK,KAAAjK,KAAAiK,KAAAjK,QAAA,GAAAiK,OAAAg/E,UACAn6F,EAAAE,SAEAsZ,IAAAtI,EAAAsI,EAAA6xF,IACA7xF,EAAAtI,EACA7E,GACA6+F,EAAA7qG,MAAAmrG,EAAAxrG,GACAqM,GAAA,GAEA8+F,EAAA9qG,MAAAmrG,EAAAxrG,IAIAu7B,aAAAgwE,GACAA,EAAAroG,WAAA,WACAsW,EAAAtI,EACA7E,GAAA,EACA++F,EAAA/qG,MAAAmrG,EAAAxrG,IACAsrG,KAaAhH,EAAAmH,qBAAA,SAAAn5E,GAKA,GAAAA,EAAA,CAeA,MAbAA,GAAA/yB,QAAA,oDAAA,UAgBA+kG,EAAAoH,4BAAA,SAAAjoG,GAMA,IAAAA,EAAAkoG,oBACA,GAAAloG,EAAAmoG,uBACAnoG,EAAAkoG,oBAAA,SAAA5+D,EAAA8W,GACA,GAAA1b,GAAA1kC,EAAAyhF,cACA/iF,EAAAsB,EAAAmoG,uBAAA7+D,EAAA8W,EACA,OAAA1hD,IACAA,EAAA0pG,aACA1jE,EAAAg7C,SAAAhhF,EAAA0pG,WAAA1pG,EAAA4jC,QACAoC,EAAAo7C,OAAAphF,EAAA0pG,WAAA1pG,EAAA4jC,SAEAoC,GALA,UAOA,KAAA1kC,EAAAkK,MAAAlK,EAAAuF,cAAA,SAAA8iG,gBAAA,CAQA,GAAAC,IACAC,kBAAA,SAAAC,EAAAxoG,GACA,GAAAyoG,GAAA,SAAArpB,EAAAspB,EAAAC,GAEA,GAAAC,GAAA5oG,EAAAuF,cAAA,KACAsjG,EAAAH,EAAAI,WACAD,GAAAE,SAAAJ,EACA,IAAA3nF,GAAA6nF,EAAAG,eACA,IACAhoF,EAAA2Q,aAAAi3E,EAAAA,EAAAxnB,iBACAynB,EAAAI,kBAAAL,SACAC,EAAAK,iBAAAP,EAAA,eAAA,aAAAD,GAAA,GAAAE,EAAAxnB,kBAEA,GAAAynB,EAAAK,iBAAAP,EAAA,eAAA,aAAAD,IAAAE,EAAApuF,aAEAquF,EAAAM,YAAAR,EAAA,aAAA,WAAAD,GACAtpB,EAAAupB,EAAA,WAAA,UAAAC,EAAApuF,YAAAquF,EAAA5xF,KAAAvb,SAGA0jF,EAAAupB,EAAA,iBAAA,gBAAAC,GAEAA,EAAA9+F,WAAAC,YAAA6+F,IAGAxpB,EAAAp/E,EAAAyhF,aAGA,OAFAgnB,GAAArpB,EAAAopB,GAAA,GACAC,EAAArpB,EAAAopB,GAAA,GACAppB,GAIAp/E,GAAAkoG,oBAAA,SAAA5+D,EAAA8W,GAKA,IAAA,GADAl0B,GAAAlsB,EAAAkK,KAAAm+F,kBACAe,EAHA,GAGAA,EAAAA,GAAA,EACA,IAEA,MADAl9E,GAAAm9E,YAAA//D,EAAA8/D,EAAAhpD,EALA,IAMAkoD,EAAAC,kBAAAr8E,EAAAlsB,GACA,MAAA+iF,IAIA,IACA,GAAAjiF,GAAAd,EAAAspG,iBAAAhgE,EAAA,EAAA8W,EAAA,GACA1b,EAAA1kC,EAAAyhF,aAEA,OADA/8C,GAAA6kE,cAAAzoG,GACA4jC,EACA,MAAAq+C,GACA,MAAA,UAOA8d,IC1hCA9mG,OAAA,gDAAA,SAAA,aAAA,aAAA,kBAAA,SAAAsqC,EAAA1iC,EAAAk/F,EAAA76B,GAysDA,MAvsDA,UAAA1kE,GA+CA,QAAAmgF,KACA,MAAAr4E,IAAAogG,kBAAA/nB,cAGA,QAAAgoB,GAAAC,GACA,GAAAC,GAAAloB,GAEA,OADAkoB,GAAAC,mBAAAF,GACAC,EAGA,QAAAE,GAAA/gG,GACA,GAAA4pF,GAAAjR,GAEA,OADAiR,GAAAoX,WAAAhhG,GACAihG,EAAArX,EAAAz9D,wBAAA,EAAA,GAGA,QAAA+0E,GAAAlhG,GACA,GAAA4pF,GAAAjR,GAEA,OADAiR,GAAAkX,mBAAA9gG,GACAihG,EAAArX,EAAAz9D,wBAAA,EAAA,GAGA,QAAAg1E,GAAAC,EAAAlsB,EAAAmsB,EAAAlsB,GACA,GAAAyU,GAAAjR,GAYA,OAXAiR,GAAAhT,SAAAwqB,EAAAlsB,GAAA,GACAmsB,EAAAppG,WAAAktE,KAAAiB,aACAwjB,EAAA5S,OAAAqqB,EAAAlsB,GAAAksB,EAAArkG,WAAApK,QACAyuG,EAAAppG,WAAAktE,KAAAC,WACAwkB,EAAA5S,OAAAqqB,EAAAlsB,GAAA,GAOAyU,EAAA0X,UACAL,EAAArX,EAAAhzD,iBAAA,GAAA,EAAA,GAEAqqE,EAAArX,EAAAz9D,wBAAA,EAAA,GAYA,QAAAo1E,GAAA3X,EAAA4X,GAKA,MAJAA,GAAAA,GAAAC,IAIA5oG,EAAApG,IAAAm3F,EAAAhzD,iBAAA,SAAAmpD,GAEA,MAAAkhB,GAAAlhB,EAAAyhB,EAAAp1E,KAAAo1E,EAAArpF,OAIA,QAAAupF,KACA,MAAAlpG,GAAAmpG,sBACAnpG,EAAAmpG,yBAGA/iE,QAAAjzB,MAAA,sDACA,MAGA,QAAAi2F,GAAAphE,EAAA8W,EAAApgD,GAGA,MAFAA,GAAAA,GAAAoJ,GAAAogG,kBACA3I,EAAAoH,4BAAAjoG,GACAA,EAAAkoG,oBAAA5+D,EAAA8W,GAGA,QAAAuqD,KACA,QAAArpG,EAAAspG,eASA,QAAAC,KACA,MAAAvpG,GAAAspG,kBAAAtpG,EAAAspG,eAAAE,YASA,QAAAC,KACA,MAAAzpG,GAAAspG,kBAAAtpG,EAAAspG,eAAAG,sBAaA,QAAAC,GAAAniB,EAAAoiB,EAAAC,GAKA,MAHAA,GAAAA,GAAAV,MAGA3hB,KAIA,GAAAA,EAAA3zD,MAAA,GAAA2zD,EAAAlB,OAAA,GAAAkB,EAAA5nE,KAAA,GAAA4nE,EAAAiV,UAIA6M,MAAAI,IACAliB,EAAA3zD,MAAA,GAAA2zD,EAAA3zD,KAAAg2E,EAAApgG,QACAmgG,GAAApiB,EAAA3zD,KAAA,GAAA2zD,EAAAlB,MAAA,EAEAkB,EAAA5nE,KAAA,GAAA4nE,EAAA5nE,IAAAiqF,EAAAp9F,SACAm9F,GAAApiB,EAAA5nE,IAAA,GAAA4nE,EAAAiV,OAAA,IAWA,QAAAqN,KAEA,OAAA7pG,EAAAspG,gBAAAG,IACAzpG,EAAAojG,QAAA55F,QAGAxJ,EAAAspG,eAAAQ,YAAA9pG,EAAAspG,eAAAS,UAWA,QAAAd,KACA,MAAAjpG,GAAAgqG,4BACAhqG,EAAAgqG,8BAGAP,KAAAzpG,EAAAiqG,wBACAjqG,EAAAiqG,2BAIAtqF,IAAA,EACAiU,KAAA,GAIA,QAAAs2E,KACA,MAAAlqG,GAAAiqG,wBACAjqG,EAAAiqG,2BAIAtqF,IAAA,EACAiU,KAAA,GAoBA,QAAAu2E,GAAAlJ,EAAAmJ,EAAApB,EAAAY,GACAZ,EAAAA,GAAAC,IACAW,EAAAA,GAAAV,GAEA,IAAAmB,GAAAC,EAAArJ,EAAA+H,EACA,IAAA,IAAAqB,EAAAjwG,OACA,MAAA,KAGA,IAAAmwG,GAAA,CAEA,IAAA,IAAAF,EAAAjwG,OAAA,CACA,GAAAowG,GAAAH,EAAA,EAEAhB,OACAmB,EAAAhO,OAAAoN,EAAAp9F,QAAAg+F,EAAA7qF,IAAA,IAGA8qF,EAAAD,GAAA,EAAAZ,GAIAF,EAAAc,GAAA,EAAAZ,KAEAW,EADAH,GAAAI,EAAA7qF,IAAA,EAEAhV,KAAAo/B,MAAA,KAAAygE,EAAAh+F,OAAAg+F,EAAA7qF,KAAA6qF,EAAAh+F,QACA49F,GAAAI,EAAAhO,OAAAoN,EAAAp9F,OAEA7B,KAAAo/B,MAAA,KAAA6/D,EAAAp9F,OAAAg+F,EAAA7qF,KAAA6qF,EAAAh+F,QACA49F,GAAAI,EAAA52E,KAAA,GAAA42E,EAAAnkB,MAAA,EAEA17E,KAAAo/B,MAAA,IAAAygE,EAAAnkB,MAAAmkB,EAAAhhG,OACA4gG,GAAAI,EAAA52E,KAAA,GAAA42E,EAAAnkB,MAAA,EAEA17E,KAAAo/B,MAAA,IAAAygE,EAAAnkB,MAAAmkB,EAAAhhG,OAEA,SAOA,KAAA,GAAA7P,GAAA,EAAAuJ,EAAAmnG,EAAAjwG,OAAAT,EAAAuJ,IAAAvJ,EACA,GAAA+vG,EAAAW,EAAA1wG,IAAA,EAAAiwG,GAAA,CACAW,EAAAH,EACAM,EAAAL,EAAA1wG,GACA,GACA,OAKA,MAAA4wG,GAUA,QAAAI,GAAA1J,GAEA,GAAA+H,GAAAC,IAEAoB,EAAAC,EAAArJ,EAAA+H,EACA,OAAA,KAAAqB,EAAAjwG,OACA,KAGAwwG,EAAAP,GAYA,QAAAO,GAAAP,EAAAT,EAAAiB,GACA,GAAAC,GAAAvB,IACAwB,EAAAtB,GACAoB,GAAAA,GAAAhB,IACAD,EAAAA,GAAAV,GAEA,IAAA8B,GAAA3qG,EAAAiH,MAAA+iG,EACA,KAAAA,EAAAjwG,QACAqwG,EAAAO,GAAA,EAAApB,EAAAiB,EAAAC,EAAAC,EAGA,IAAAE,EAEA,IAAAF,EAAA,CACA,GAAAG,GAAAF,EAAArrF,GACAsrF,GAAAtgG,KAAAo/B,MAAAmhE,EAAAtB,EAAAp9F,YACA,CACA,GAAA2+F,GAAAH,EAAAp3E,IACAk3E,KACAK,EAAAN,GAAA7qG,EAAAspG,eAAAtpG,EAAAspG,eAAA8B,mBAAA,GAAAD,GAEAF,EAAAtgG,KAAAo/B,MAAAohE,EAAAN,GAGA,MAAAI,GAYA,QAAAI,GAAAC,EAAAtC,EAAAY,GAOA,MANAZ,GAAAA,GAAAC,IACAW,EAAAA,GAAAV,IAKA0B,GAHAnC,EACA6C,EAAAtC,EAAAp1E,KAAAo1E,EAAArpF,MAEAiqF,GAWA,QAAAc,GAAAL,EAAAkB,GAEA,GAAAC,GAAA,EACAC,EAAA,CAkBA,OAhBApB,GAAAjwG,OAAA,EACAiG,EAAAH,KAAAmqG,EAAA,SAAA9iB,EAAAprF,GACAqvG,GAAAjkB,EAAA/6E,OACArQ,GAAAovG,IAGAE,GAAAlkB,EAAA/6E,WAMAg/F,EAAAnB,EAAA,GAAA79F,OACAi/F,EAAApB,EAAA,GAAA79F,OAAA7B,KAAAC,IACA,GAAAy/F,EAAA,GAAA1qF,MAEA8rF,IAAAD,EACA,IACA7gG,KAAAo/B,MAAA,IAAA0hE,EAAAD,GAWA,QAAAlB,GAAA5E,EAAAsD,GAEAA,EAAAA,KACA,IAIA0C,GAJAP,EAAAnC,EAAAp1E,MAAA,EACAs3E,EAAAlC,EAAArpF,KAAA,EAEAgsF,EAAAjG,EAAA,GAAAjmG,WAAAktE,KAAAC,SAGA,IAAA++B,EAAA,CACA,GAAAva,GAAAjR,GACAiR,GAAAoX,WAAA9C,EAAA,IAEAgG,EAAAta,EAAAhzD,qBAGAstE,GAAAhG,EAAA,GAAAtnE,gBAMA,KAAA,GADAisE,MACA1wG,EAAA,EAAAuJ,EAAAwoG,EAAAtxG,OAAAT,EAAAuJ,IAAAvJ,GACA+xG,EAAA/xG,GAAA6S,OAAA,GAAA,IAAAk/F,EAAAtxG,SAIAiwG,EAAAjvG,KACAqtG,EAAAiD,EAAA/xG,GAAAwxG,EAAAD,GAIA,OAAAb,GAGA,QAAAuB,GAAAlG,EAAAsD,GACAA,EAAAA,KACA,IAIA6C,GAJAV,EAAAnC,EAAAp1E,MAAA,EACAs3E,EAAAlC,EAAArpF,KAAA,EAEAgsF,EAAAjG,EAAA,GAAAjmG,WAAAktE,KAAAC,SAGA,IAAA++B,EAAA,CACA,GAAAva,GAAAjR,GACAiR,GAAAoX,WAAA9C,EAAA,IACAmG,EAAAza,EAAAz9D,4BAEAk4E,GAAAnG,EAAA,GAAA/xE,uBAIA,OAAA80E,GAAAoD,EAAAV,EAAAD,GAaA,QAAAzC,GAAAqD,EAAAX,EAAAD,GAEA,GAAAa,IACAn4E,KAAAk4E,EAAAl4E,KACAyyD,MAAAylB,EAAAzlB,MACA1mE,IAAAmsF,EAAAnsF,IACA68E,OAAAsP,EAAAtP,OACAhzF,MAAAsiG,EAAAzlB,MAAAylB,EAAAl4E,KACApnB,OAAAs/F,EAAAtP,OAAAsP,EAAAnsF,IAKA,OAHAwrF,GAAAA,GAAA,EACAD,EAAAA,GAAA,EACAc,EAAAD,EAAAZ,EAAAD,GACAa,EAWA,QAAAC,GAAAzkB,EAAA4jB,EAAAD,GAEA3jB,EAAA3zD,MAAAu3E,EACA5jB,EAAAlB,OAAA8kB,EACA5jB,EAAA5nE,KAAAurF,EACA3jB,EAAAiV,QAAA0O,EAwBA,QAAAT,GAAAljB,EAAA0kB,EAAArC,EAAAiB,EAAAC,EAAAC,GAQA,GANAnB,EAAAA,GAAAV,IACA2B,EAAAA,GAAAhB,IACAiB,EAAAA,GAAAvB,MACAwB,EAAAA,GAAAtB,KAGA,CASA,IALAqB,IACAD,IAAA,GAIAtjB,EAAA5nE,IAAA,GACAqsF,EAAAzkB,GAAAsjB,EAAAjB,EAAAp9F,OAOA,IAAAy/F,EACA,KAAA1kB,EAAAiV,QAAAoN,EAAAp9F,SACAk9F,EAAAniB,GAAA,EAAAqiB,IAGAoC,EAAAzkB,EAAAsjB,GAAAjB,EAAAp9F,SA0HA,QAAA0/F,GAAA9a,EAAA+a,GACA,GAAA78F,GAAA68F,EAAA,GACA,OAAAxhG,MAAAm1C,OAAAsxC,EAAAzU,UAAAyU,EAAA1U,aAAAptE,GAGA,QAAA88F,GAAAhb,EAAA+a,GACA,GAAA/a,EAAAzU,UAAAyU,EAAA1U,aAAA,EACA,OAAA0U,EAEA,IAAAh3F,GAAA8xG,EAAA9a,EAAA+a,GACApvB,EAAAqU,EAAArT,eACAsuB,EAAAjb,EAAAkb,YACAD,GAAAjuB,SAAArB,EAAAqU,EAAA1U,aACA2vB,EAAA7tB,OAAAzB,EAAAqU,EAAA1U,YAAAtiF,EACA,IAAAmyG,GAAAnb,EAAAkb,YAIA,OAHAC,GAAAnuB,SAAArB,EAAAqU,EAAA1U,YAAAtiF,GACAmyG,EAAA/tB,OAAAzB,EAAAqU,EAAAzU,YAEA0vB,EAAAE,GAKA,QAAAC,GAAAzvB,EAAA0vB,EAAAzD,EAAAY,GACAZ,EAAAA,GAAAC,GAEA,IAAAyD,GAAAvE,EAAAprB,GACA4vB,EAAA5D,EAAA2D,EAAA1D,GACA4D,EAAAC,EAAAF,EAAAF,GAAA,EAAA,IACA,OAAAK,GAAAV,EAAAM,EAAAE,GAAA5D,EACAyD,GAAA,EAAA,IAAAG,EACA,SAAArlB,GACA,OAAAkiB,IAAAliB,EAAA/6E,OAAA+6E,EAAA/9E,QAAAkgG,EAAAniB,GAAA,EAAAqiB,KAIA,QAAAiD,GAAAE,EAAAC,GACA,GAAAhzG,GAAA,EAEAizG,EAAA5sG,EAAAV,OAAAotG,EAAA,SAAAxlB,GACA,OAAAkiB,IAAAliB,EAAA/6E,OAAA+6E,EAAA/9E,QAAAkgG,EAAAniB,GAAA,EAAA2hB,OAEAgE,EAAAC,EAAAF,GACAG,EAAAC,EAAAH,EACAG,EAAAF,EAAAJ,EAEA,OAAAG,KAAAG,EAGAL,EAAA,GAAA,IAEAhzG,EAAAkzG,EAAAG,EAAA,IACAD,EAAAF,EAAAlzG,EAAA,EAAAA,EAAA,GAIA,QAAAszG,GAAAP,GAEA,GAAAQ,GAAAR,EAAAp4F,KAAA,SAAAkE,EAAAC,GACA,MAAAD,GAAA8G,IAAA7G,EAAA6G,MAEA6tF,IACAntG,GAAAH,KAAAqtG,EAAA,SAAAhmB,GACA,GAAAzmF,GAAAymF,EAAA5nE,GACA,IAAA6tF,EAAA1sG,GAEA,CACA,GAAA2sG,GAAAD,EAAA1sG,EACA2sG,GAAAryG,KAAAmsF,EAAA/6E,QACAghG,EAAA1sG,GAAA2sG,MAJAD,GAAA1sG,IAAAymF,EAAA/6E,UASA,QAAA2gG,GAAAJ,GACA,GAAAS,GAAAF,EAAAP,GACAvgG,EAAA,CAIA,OAHAnM,GAAAH,KAAAstG,EAAA,SAAAt+B,GACA1iE,GAAA7B,KAAAC,IAAAtP,MAAA,KAAA4zE,KAEA1iE,EAGA,QAAAsgG,GAAAY,EAAA1E,EAAAgE,EAAAJ,EAAAe,GAIA,IAHA,GAAAC,GAAA,EACAC,EAAAH,EAEA,IAAAG,EAAAzzG,QAAA,CACAwzG,GAGAC,GADAC,EADA/E,EAAA8E,EAAAb,GAAAhE,GACA2E,GACAvB,EAAAyB,EAAAb,GAAAJ,GAIAR,EAAAyB,EAAAb,EAAA,EAAA,GAAAJ,GAGAmB,KACA3nE,QAAAC,MAAA,yDAAAunE,GACAhvG,OAAA+gB,IAAAquF,mCAAA5yG,KAAAwyG,GAEA,IAAAK,GAAAJ,EAAA,EAIA,OAHAI,IACAA,EAAAxG,UAAAuF,GAEAiB,EAGA,QAAAH,GAAAI,EAAAP,GAEA,QADAttG,EAAAV,OAAAuuG,EAAAP,GACAvzG,OAGA,QAAA+zG,GAAAC,EAAA3B,EAAAzD,EAAAY,GACA,IAAAwE,EACA,MAAA,KAGA,IAAA/jC,GAAA+jC,EAAA/jC,QACA0S,EAAAqxB,EAAArxB,QAGA,IAAAA,GAAAsxB,EAAAtxB,GAAA,CACA,GAAAuxB,GAAA9B,EAAAzvB,EAAA0vB,EAAAzD,EAAAY,EACA,OAAA0E,GAIAC,EAAAD,IAHAP,IAAA3nE,QAAAI,KAAA,4DACA,MAKA,MAAA1+B,IAAA0mG,iBAAAnkC,GAIA,QAAAokC,GAAAzF,EAAAY,GAEA,MAAAuE,GADArmG,GAAA4mG,uBAAA1F,EAAAY,GACAvpG,EAAAoU,KAAAu0F,EAAAY,GAGA,QAAA+E,GAAA3F,EAAAY,GAEA,MAAAuE,GADArmG,GAAA8mG,wBAAA5F,EAAAY,GACAvpG,EAAAiH,MAAA0hG,EAAAY,GAWA,QAAA2E,GAAAnd,GACA,MAAAA,GAAA0X,WAAA1X,EAAArT,eAAAt+E,WAAAktE,KAAAC,UACAlI,EAAA8b,oCACA4Q,EAAArT,eAAAqT,EAAA1U,aACA,kBAAA,kBAAA,uBACA0U,EAAA0X,UACAhhG,GAAA0mG,iBAAApd,EAAArT,gBAEArZ,EAAAqb,uBACAqR,EAAArT,eAAAqT,EAAA1U,YACA0U,EAAApT,aAAAoT,EAAAzU,UACA70E,GAAA+mG,oBAAA/mG,GAAAgnG,sBAAAhnG,GAAAinG,kBA+CA,QAAAC,GAAAC,GACA,MAAA,eAAAA,EAAA,IAOA,QAAAC,GAAAD,GACA,MAAAvqC,GAAAunB,YAAAhP,WAAA+xB,EAAAC,IAGA,QAAAE,GAAAF,GACA,MAAAvqC,GAAAunB,YAAA/O,gBAAA8xB,EAAAC,IAqBA,QAAAG,GAAAjS,EAAAvyB,EAAAC,EAAAC,GAEA,GAAAukC,GAAAvnG,GAAAogG,kBAEAoH,EAAAN,EAAA7R,EAEA,KAEA,GAAA8D,GAAAv8B,EAAA8X,iBAAA8yB,EAAAD,EAAAzkC,EAAAC,EAAAC,GAEA,MAAA2W,IAIA,MAAAwf,IAAA,GAAAA,EAAA7mG,OAKA6mG,MAJA76D,SAAAE,IAAA,+BAAA62D,GA4TA,QAAAoS,GAAA9C,GACA,GAAA+C,GAAA1nG,GAAA2nG,oBAAA1sE,EAAAj7B,GAAA4nG,mBACAC,EAAAlD,EAAA+C,GACAI,EAAAnD,IAAA,GAAA,IACArb,EAAAjR,GAGA,OAFAiR,GAAAkX,mBAAAqH,EAAA,IACAve,EAAAqW,SAAAmI,GACArB,EAAAnd,GAuCA,QAAAzmB,GAAAN,GACA,GAAAwlC,GAAAxlC,EAAAvqD,SAEA+vF,QAAA,KAAAA,EAAAC,QACAD,EAAAA,EAAAC,QACAD,OAAA,KAAAA,EAAAnlC,UACAmlC,EAAAA,EAAAnlC,QAEA,IAAAK,GAAA8kC,EAAAA,EAAA71G,MAAA,QACAwD,EAAA6sE,EAAA7sE,GAEAotE,EAAA9iE,GAAA+mG,mBACA,SAAA,IAAA9jC,EAAA3wE,SAAAiG,EAAAsD,SAAAinE,EAAAG,EAAA,UAEAA,EAAA3wE,SAAAiG,EAAA2qE,aAAAJ,EAAAG,GAAA3wE,aAIAoD,GAAAA,EAAApD,QAAAiG,EAAAsD,SAAAmE,GAAAinG,iBAAAvxG,OAIA6C,EAAAsD,SAAAmE,GAAAgnG,sBAAAzkC,EAAAY,QAAAhqE;+MA8CA,QAAA8uG,GAAAvoG,GACA,QAAAA,GAIAA,EAAA/H,WAAAktE,KAAAiB,aAIA,QAAAygC,GAAA7mG,GACA,QAAAA,IAGAA,EAAA/H,WAAAktE,KAAAC,WAEAojC,EAAAxoG,EAAAia,YAOA,QAAAuuF,GAAAr6F,GAKA,QAAAA,EAAAD,OAAAtb,OAqBA,QAAA61G,KACA,GAAAjsB,GAAAnlF,KAGAkO,GACAmjG,kBAAA,EACAC,kBAAA,EAGA9vG,GAAAH,KAAA6M,EAAA,SAAA9B,EAAAnK,GACAkjF,EAAAljF,GAAA,GAAA2pC,OAGA5rC,KAAAuxG,YAAA,WACA/vG,EAAAH,KAAA6M,EAAA,SAAA9B,EAAAnK,GACAmK,IACA+4E,EAAAljF,GAAA,GAAA2pC,SAmBA,QAAA4lE,KAGA,IAAA,GAFAC,GAAA,mBAAAt2G,MAAA,IACAqwD,EAAA,IACA1wD,EAAA,EAAAA,EAAA,EAAAA,IACA0wD,GAAAimD,EAAA3lG,KAAAm1C,MAAA,GAAAn1C,KAAAoK,UAEA,OAAAs1C,GAIA,QAAAkmD,GAAAC,EAAAnmD,EAAA5iD,GACA,GAAAsN,GAAAs7F,GACAG,aAAAr7F,SACAq7F,GAAAA,GAEA,KAAA,GAAA72G,GAAA,EAAAA,GAAA62G,EAAAp2G,OAAAT,IAAA,CACA,GAAA4tF,GAAAipB,EAAA72G,GACA82G,EAAAhpG,EAAAxD,cAAA,MACAwsG,GAAApuG,MAAAkwB,SAAA,WACAwQ,EAAA0tE,GAAA3uG,IAAA,UAAA,QACAihC,EAAA0tE,GAAA3uG,IAAA,iBAAA,QACAihC,EAAA0tE,GAAA3uG,IAAA,UAAA,OACA2uG,EAAApuG,MAAA0xB,OAAA,kBACAs2B,GAAAt1C,EAEAA,IAAAs1C,EACAomD,EAAApuG,MAAAquG,WAAA37F,IAEA,IAAAs1C,IACAA,EAAA,OAEAomD,EAAApuG,MAAA0xB,OAAA,cAAAs2B,EACAomD,EAAApuG,MAAAquG,WAAA,UARAD,EAAApuG,MAAAquG,WAAA,SAWAD,EAAApuG,MAAAwxB,OAAA48E,EAAApuG,MAAAyxB,QAAA,IACA28E,EAAApuG,MAAAsd,IAAA4nE,EAAA,IAAA,KACAkpB,EAAApuG,MAAAuxB,KAAA2zD,EAAA,KAAA,KAEAkpB,EAAApuG,MAAAmH,MAAA+9E,EAAA/9E,MAAA,EAAA,KACAinG,EAAApuG,MAAAmK,OAAA+6E,EAAA/6E,OAAA,EAAA,KACA/E,EAAAyB,gBAAAlF,YAAAysG,GACAE,GAAAv1G,KAAA2nC,EAAA0tE,KAIA,QAAAG,IAAArpB,GACA,GAAAspB,GAAA3G,GAEAqG,IACA38E,KAAA2zD,EAAA3zD,KAAAi9E,EAAAj9E,KACAjU,IAAA4nE,EAAA5nE,IAAAkxF,EAAAlxF,IACAnW,MAAA+9E,EAAA/9E,MACAgD,OAAA+6E,EAAA/6E,SACA,EAAA1E,GAAAogG,mBAGA,QAAA4I,IAAA1f,GACA,GAAA7J,GAAAohB,EACAvX,EAAArT,eACAqT,EAAA1U,YACA0U,EAAApT,aACAoT,EAAAzU,UAEA,OADAi0B,IAAArpB,GACAA,EAGA,QAAAwpB,IAAAvpG,GACAopG,GAAArI,EAAA/gG,IAGA,QAAAwpG,MACA3wG,EAAAH,KAAAywG,GAAA,SAAAjL,GACAA,EAAAr9F,WAEAsoG,MA//CA,GAAA7oG,IAAAjJ,IACAmB,GAAAA,KAEA,IAAA+tG,IAAA9U,WAAAgY,UACAlD,MACAnvG,OAAA+gB,IAAAquF,mCAAApvG,OAAA+gB,IAAAquF,wCAGAnvG,KAAAqyG,eAAA,WACA,MAAAlxG,GAAAojG,QAIApjG,EAAAojG,QAAA,GAAAj6F,gBAAAD,gBAHA,MAMArK,KAAA6wG,eAAA,WACA,GAAAyB,GAAAtyG,KAAAqpG,iBACA,OAAAiJ,IAAAA,EAAAvoG,KACAuoG,EAAAvoG,KAGA/J,KAAAqyG,kBAIAryG,KAAAgwG,kBAAA,WACA,MAAA7uG,GAAA4qE,oBAGA/rE,KAAAkwG,eAAA,WACA,MAAA/uG,GAAA8qE,iBAGAjsE,KAAAiwG,oBAAA,WACA,MAAA9uG,GAAA6qE,sBAGAhsE,KAAAqpG,gBAAA,WACA,MAAAloG,GAAAojG,QAIApjG,EAAAojG,QAAA,GAAAj6F,gBAHA,MAihBAtK,KAAA2vG,iBAAA,SAAAnkC,GAEA,GAAA8yB,GAAAz4B,EAAAwnB,UAAAxL,4BAAArW,EACAxrE,KAAAgwG,oBACAhwG,KAAAiwG,sBACAjwG,KAAAkwG,iBAKA,OAHA,KAAA5R,EAAA,KACAA,EAAAA,EAAA9gG,UAAA,IAEA8gG,GAGAt+F,KAAAuyG,uBAAA,SAAAppE,EAAA8W,EAAAuyD,GACA,GAAA3yG,GAAAoJ,GAAAogG,kBACAoJ,EAAAlI,EAAAphE,EAAA8W,EAAApgD,GACAspG,EAAAtpG,EAAAspG,iBAAAhgE,EAAA8W,GACAyyD,GAAAvJ,GAAAA,IAAAtpG,EAAAwK,eAEA,IAAAmoG,EAAA,CACA,IAAArJ,GAAAuJ,EACA,MAAA,KAEA,IAAAC,GAAA9I,EAAAV,EACA,KAAA0B,EAAA8H,GAAA,GACA,MAAA,KAEA,IAAAxpE,EAAAwpE,EAAA59E,MAAAoU,EAAAwpE,EAAAnrB,OAAAvnC,EAAA0yD,EAAA7xF,KAAAm/B,EAAA0yD,EAAAhV,OACA,MAAA,MAIA,IAAA8U,EAAA,CACA,GAAAC,EAEA,MADAnrE,SAAAjzB,MAAA,qDACA,IAEAm+F,GAAAnxB,IACAmxB,EAAA9I,WAAAR,GAGA,GACA7K,GAGAzgB,EAAAC,EAJAyU,EAAAkgB,EAGA9pG,EAAA4pF,EAAArT,cAEA,IAAAv2E,EAAA/H,WAAAktE,KAAAC,UAAA,CACA,GAAAykC,GAAA7pG,EAAAgB,aAAAw/F,EACA,MAAA,KAEA,KAAAxgG,EAAApN,QAAA,IAAAg3F,EAAA1U,aACAA,EAAA,EACAC,EAAA,GACAyU,EAAA1U,cAAAl1E,EAAApN,QACAsiF,EAAA0U,EAAA1U,YAAA,EACAC,EAAAyU,EAAA1U,cAEAA,EAAA0U,EAAA1U,YACAC,EAAAyU,EAAA1U,YAAA,EAEA,IAAA+0B,IACA1zB,eAAAv2E,EACAw2E,aAAAx2E,EACAk1E,YAAAA,EACAC,UAAAA,EACAsB,wBAAAmT,EAAAnT,wBAGA8vB,KACA+C,GAAAW,GAGAtU,EAAAoR,EAAAkD,OACA,IAAAjqG,EAAA/H,WAAAktE,KAAAiB,aAAA,CAKA,GAJApmE,EACA4pF,EAAArT,eAAAv5E,WAAA4sF,EAAA1U,cACA0U,EAAArT,eAAAv5E,WAAA,IACA4sF,EAAArT,eACAszB,GAAA7pG,IAAAwgG,EACA,MAAA,KAIA7K,GADA31F,EAAA/H,WAAAktE,KAAAiB,aACA2gC,EAAAnd,GAEAtpF,GAAA0mG,iBAAAhnG,OAEA,CACA,GAAA6pG,GAAA7pG,IAAAwgG,EACA,MAAA,KAGA7K,GAAAr1F,GAAA0mG,iBAAAxG,GAIA,MAAA7K,KAAA,IAAAA,EAAA/gG,QAAA,WACAgqC,SAAAE,IAAA,gCAAA62D,GAGAA,GAGAt+F,KAAA6yG,sBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAApzG,GAAAoJ,GAAAogG,kBACA5lG,EAAA8mG,EAAAuI,EAAAC,EAAAlzG,GACA6D,EAAA6mG,EAAAyI,EAAAC,EAAApzG,GACA0yF,EAAAjR,GAOA,OANAiR,GAAAhT,SAAA97E,EAAAy7E,eAAAz7E,EAAAo6E,aACA0U,EAAA5S,OAAAj8E,EAAAw7E,eAAAx7E,EAAAm6E,aAEAp6E,EAAAy7E,iBAAAz7E,EAAA07E,cAAA17E,EAAAy7E,eAAAt+E,WAAAktE,KAAAC,WAAArqE,EAAAw7E,eAAA3jF,OAAAmI,EAAAm6E,YAAA,GACA0U,EAAA5S,OAAAj8E,EAAAw7E,eAAAx7E,EAAAm6E,YAAA,GAEA6xB,EAAAnd,IAqJAvyF,KAAAkzG,mBAAA,SAAA/I,EAAAY,GACA,MAAA+E,GAAA3F,EAAAY,IAGA/qG,KAAAmzG,kBAAA,SAAAhJ,EAAAY,GACA,MAAA6E,GAAAzF,EAAAY,IAkBA/qG,KAAAozG,wBAAA,SAAAC,EAAAC,EAAAC,GACA,GAAAhhB,GAAAjR,GAEA,IAAAgyB,EAUA,CACA,GAAArqG,GAAAm1E,WAAAi1B,GAAA,CACA,GAAAG,GAAAvqG,GAAAwqG,wBAAAJ,EACA9gB,GAAAhT,SAAAi0B,EAAAE,UAAA/qG,KAAA6qG,EAAAE,UAAAvxE,YACA,CACA,GAAAs7C,GAAAx0E,GAAA0qG,gBAAAN,EACArzG,KAAAgwG,oBAAAhwG,KAAAiwG,sBAAAjwG,KAAAkwG,kBAAA,EACA3d,GAAAhT,SAAA9B,EAAA,GAGA,GAAAx0E,GAAAm1E,WAAAk1B,GAAA,CACA,GAAAM,GAAA3qG,GAAAwqG,wBAAAH,EACAC,GACAhhB,EAAA5S,OAAAi0B,EAAAC,QAAAlrG,KAAAirG,EAAAC,QAAA1xE,QAEAowD,EAAA5S,OAAAi0B,EAAAF,UAAA/qG,KAAAirG,EAAAF,UAAAvxE,YAEA,CACA,GAAAu7C,GAAAz0E,GAAA0qG,gBAAAL,EACAtzG,KAAAgwG,oBAAAhwG,KAAAiwG,sBAAAjwG,KAAAkwG,kBAAA,EACA3d,GAAA5S,OAAAjC,EAAAA,EAAA/3E,WAAApK,aA7BA,IAAA0N,GAAAm1E,WAAAi1B,GAAA,CACA,GAAAS,GAAA7qG,GAAAwqG,wBAAAJ,EACA9gB,GAAAhT,SAAAu0B,EAAAJ,UAAA/qG,KAAAmrG,EAAAJ,UAAAvxE,QACAowD,EAAA5S,OAAAm0B,EAAAD,QAAAlrG,KAAAmrG,EAAAD,QAAA1xE,YACA,CACA,GAAAqpC,GAAAviE,GAAA0qG,gBAAAN,EACArzG,KAAAgwG,oBAAAhwG,KAAAiwG,sBAAAjwG,KAAAkwG,kBAAA,EACA3d,GAAAoX,WAAAn+B,GAyBA,MAAA+mB,IAGAvyF,KAAA+zG,wBAAA,SAAA90B,GACA,MAAAywB,GAAAzwB,IAOAj/E,KAAAo+E,WAAA,SAAAgyB,GACA,MAAAC,GAAAD,IAAAE,EAAAF,IAWApwG,KAAAg0G,wBAAA,SAAA5D,EAAArkC,EAAAC,EAAAC,GAEA,GAAAjsE,KAAAo+E,WAAAgyB,GAAA,CAIA,MAAA5D,GAFAxsG,KAAAyzG,wBAAArD,GAEA6D,YAGA,GAAA7R,GAAAmO,EAAAH,EAAArkC,EAAAC,EAAAC,EAEA,OAAAm2B,GAIApiG,KAAAk0G,4BAAA9R,IAHA,GA4BApiG,KAAAm0G,oBAAA,SAAAhrE,EAAA8W,GAGA,MADAh3C,IAAAogG,kBACAF,iBAAAhgE,EAAA8W,IAGAjgD,KAAAyzG,wBAAA,SAAAnV,GACA,GAAAkS,GAAAvnG,GAAAogG,kBAEAoH,EAAAN,EAAA7R,EACA,IAAA+R,EAAA/R,GAAA,CAEA,IAEA,GAAA8V,GAAAvuC,EAAAunB,YAAAxP,uBAAA6yB,EAAAD,EACAxwG,KAAAgwG,oBACAhwG,KAAAiwG,sBACAjwG,KAAAkwG,iBAEAhB,KACA3nE,QAAAE,IAAA2sE,GAEA,MAAAxxB,IAIA,IAAAwxB,EAEA,WADA7sE,SAAAE,IAAA,mCAAA62D,EAIA,IAAA+V,IAAA1rG,KAAAyrG,EAAA32B,aAAAt7C,OAAAiyE,EAAAv2B,aACAy2B,GAAA3rG,KAAAyrG,EAAA12B,WAAAv7C,OAAAiyE,EAAAt2B,WACAy2B,EACAF,GAAAC,EACAxK,EACAuK,EAAA1rG,KACA0rG,EAAAlyE,OACAmyE,EAAA3rG,KACA2rG,EAAAnyE,QACA,IAOA,OALA+sE,MACA3nE,QAAAE,IAAA8sE,GACA7C,EAAA6C,EAAA,SAAA/D,KAGAkD,UAAAW,EAAAR,QAAAS,EAAAL,WAAAM,GACA,GAAAjE,EAAAhS,GAAA,CAEA,IAEA,GAAAkW,GAAA3uC,EAAAunB,YAAAjP,oBAAAsyB,EAAAD,EACAxwG,KAAAgwG,oBACAhwG,KAAAiwG,sBACAjwG,KAAAkwG,iBAEAhB,KACA3nE,QAAAE,IAAA+sE,GAEA,MAAA5xB,IAIA,IAAA4xB,EAEA,WADAjtE,SAAAE,IAAA,sCAAA62D,EAIA,IAAAmW,IAAA9rG,KAAA6rG,EAAAt2B,SAAA/7C,OAAAqyE,EAAA/mC,YACAinC,EACA5K,EACA2K,EAAA9rG,KACA8rG,EAAAtyE,OACAsyE,EAAA9rG,KACA8rG,EAAAtyE,OAMA,OALA+sE,MACA3nE,QAAAE,IAAAitE,GACAhD,EAAAgD,EAAA,SAAAlE,KAGAkD,UAAAe,EAAAZ,QAAAY,EAAAR,WAAAS,GAQA,OACAhB,UAAA,KACAG,QAAA,KACAI,WAAAlH,EATA9jG,GAAA0qG,gBAAArV,EACAt+F,KAAAgwG,oBACAhwG,KAAAiwG,sBACAjwG,KAAAkwG,kBAEA9F,OASApqG,KAAA20G,0BAAA,SAAArW,GACA,GAAAsW,GAAA50G,KAAAyzG,wBAAAnV,EACA,OAAAsW,GACA/J,EAAA+J,EAAAX,YAAA,OAEA,IAIAj0G,KAAA60G,yBAAA,SAAArpC,GACA,GAAAulC,GACA+D,EACAhI,EAEAiI,EAAAvzG,EAAAV,OAAA0qE,EAAA7hE,WAAAhE,WAAA,SAAAtH,GACA,MAAAA,KAAAmtE,GAAAgkC,EAAAnxG,KAGA22G,EAAAD,EAAAx3G,QAAAiuE,GACAypC,EAAAF,EAAAC,EAAA,EA2BA,IA1BAC,IACAA,EAAAF,EAAAC,EAAA,GACAjE,GAAA,GAEAkE,IACAA,EAAAzzG,EAAAoU,KAAA5V,KAAA4wG,oBAAA1sE,EAAAsnC,EAAA0pC,6BAEAnE,GAAA,EACAkE,EAAAzzG,EAAAiH,MAAAzI,KAAA4wG,oBAAA1sE,EAAAsnC,EAAA2pC,uBAKA3F,EAAAyF,IACAH,EAAAG,EACAnI,GAAA,GAEAgI,EADA5D,EAAA+D,GACAA,EACA/D,EAAA1lC,EAAA0pC,wBACA1pC,EAAA0pC,uBACAhE,EAAA1lC,EAAA2pC,oBACA3pC,EAAA2pC,mBAEA3pC,EAAA7hE,WAGAmjG,EAAA,CACA,GAAAva,GAAAuiB,EAAA9uG,cAAAs7E,aAGA,OAFAiR,GAAAkX,mBAAAqL,GACAviB,EAAAqW,SAAAmI,GACA/wG,KAAA+zG,wBAAAxhB,GAEA,MAAAvyF,MAAA2vG,iBAAAmF,IAIA90G,KAAA2zG,gBAAA,SAAAvD,EAAArkC,EAAAC,EAAAC,GACA,MAAAskC,GAAAH,EAAArkC,EAAAC,EAAAC,IAGAjsE,KAAAk0G,4BAAA,SAAA9R,GAGA,GAAAgK,GAAAN,EAAA1J,EAGA,IAAA,OAAAgK,EAAA,CAMA,MAAAN,GAHA9rG,KAAA2zG,gBAAA3zG,KAAA60G,yBAAAzS,EAAA,MAKA,MAAAgK,IAGApsG,KAAAsY,eAAA,SAAA3Z,GAEA,GAAA6xG,GAAAxwG,KAAAqpG,kBAEAjH,EAAAl+D,EAAAssE,EAAAl4F,eAAA3Z,GAGA,IAAA,GAAAyjG,EAAA7mG,OAIA,MAAA6mG,IAGApiG,KAAAo1G,8BAAA,SAAAz2G,GAEA,GAAAyjG,GAAApiG,KAAAsY,eAAA3Z,EACA,OAAAyjG,GAIApiG,KAAAk0G,4BAAA9R,IAHA,GAOApiG,KAAAq1G,mCAAA,SAAAlL,GAQA,QAAAmL,GAAAzgG,GACA,GAAAA,GAAAA,EAAAtZ,OAEA,IAAA,GAAAT,GAAA,EAAAywB,EAAA1W,EAAAtZ,OAAAT,EAAAywB,EAAAzwB,IAAA,CACA,GAAA20F,GAAA56E,EAAA/Z,EACA,IAAA20F,EAAA,CAEA,GAAA8lB,GAAArxE,EAAAurD,EAEA,IAAA8lB,EAAArzG,KAAA,oBAAA,CACA,GAAAo9B,GAAA6lD,EAAAqwB,qBAAAD,EAAApL,EACA,IAAA7qE,IACAm2E,IAAAA,EAAAhmB,GAEA,KAAAnwD,GAAA,MAAAmwD,OAGA,CACA,GAAA9uF,GAAA20G,EAAA7lB,EAAAxoE,SACA,IAAAtmB,EAAA,MAAAA,MA1BA,GAAA+0G,GAAAxxE,EAAAlkC,KAAA6wG,iBACA,IAAA6E,GAAAA,EAAAn6G,QAAAm6G,EAAA,GAAA,CAEA,GAAAvwB,GAAAnlF,KAEAy1G,MAAAr2G,GA4BAusB,EAAA2pF,GAAAI,EAAA,IAEA,OADA/pF,KAAAA,EAAA8pF,GACA9pF,IAMA3rB,KAAAw1G,qBAAA,SAAApT,EAAA+H,GACA,MAAAmB,GAAAlJ,GAAA,EAAA+H,IAIAnqG,KAAA21G,iBAAA31G,KAAAw1G,qBAEAx1G,KAAA41G,6BAAA,SAAAzL,EAAA0L,GACA,GAAAlF,GAAA3wG,KAAA81G,sBAAA5xE,EAAAlkC,KAAA6wG,kBAAAgF,EACA,OAAA71G,MAAA+1G,mBAAApF,EAAAxG,IAGAnqG,KAAAg2G,yBAAA,SAAAH,GACA,MAAA71G,MAAA81G,sBAAA5xE,EAAAlkC,KAAA6wG,kBAAAgF,IAGA71G,KAAAi2G,kCAAA,SAAAxvG,EAAAyvG,GACA,GAAA51G,GAAA4jC,EAAAz9B,EAAAzG,KAAAqyG,kBACA8D,IAIA,OAHAjyE,GAAA7iC,KAAAf,EAAA,WACA61G,EAAA55G,KAAA2nC,EAAAlkC,SAEAA,KAAA+1G,mBAAAI,EAAAD,IAGAl2G,KAAA+1G,mBAAA,SAAApF,EAAAxG,EAAAY,GAEA,GAAAqL,KAkBA,OAhBA50G,GAAAH,KAAAsvG,EAAA,SAAA0F,GACA,GAAAvJ,GAAAuJ,EAAA,GAAAz1G,WAAAktE,KAAAC,UACAq0B,EAAA0K,EAAAuJ,EAAAx1F,SAAAw1F,EACA3K,EAAAJ,EACA+K,GAAA,EAAAlM,EAAAY,EAEAW,IACA0K,EAAA75G,MACAivE,QAAA42B,EAAA,GACAlkB,SAAA4uB,EAAAuJ,EAAA,GAAA,KACAC,eAAA5K,MAMA0K,GAGAp2G,KAAAu2G,oBAAA,SAAApM,EAAAY,GAEA,GAAAyL,GAAA,CACA,GAAAC,IAAAt1G,EAAAspG,oBAAAiM,oBAAA,EACAC,EAAAC,GAAAtF,iBAAA/sG,IAAAkyG,EACA,IAAAE,EACA,MAAAA,GAIA,GAAAhG,GAAA3wG,KAAA4wG,oBAAA1sE,EAAAlkC,KAAA6wG,mBAEAuF,EAAAp2G,KAAA+1G,mBAAApF,EAAAxG,EAAAY,EAKA,OAJAyL,KACAI,GAAAtF,iBAAA7uG,IAAAg0G,EAAAL,GAGAA,GAaAp2G,KAAA62G,YAAA,WACA,MAAAnG,GAAAlvG,EAAAiH,QAIAzI,KAAA82G,UAAA,WACA,MAAApG,GAAAlvG,EAAAoU,OAGA5V,KAAA81G,sBAAA,SAAAJ,EAAAG,GAIA,QAAAkB,GAAAz2G,GAEA,OAAAlB,IAAAkB,EAEA,IAAA,GAAAxF,GAAA,EAAAywB,EAAAjrB,EAAA/E,OAAAT,EAAAywB,EAAAzwB,IAAA,CAEA,GAAAsnG,GAAAl+D,EAAA5jC,EAAAxF,GAEA+6G,GAAAzT,GACAuO,EAAAp0G,KAAA6lG,GAGA2U,EAAA3U,EAAA,GAAAn7E,WAdA,GAAA0pF,KAsBA,OAFAoG,IAAArB,EAAA,KAEA/E,GAgCA3wG,KAAA4wG,oBAAA,SAAA8E,GAEA,GAAAc,GAAA,CACA,GAAAG,GAAAC,GAAAvF,iBAAA9sG,IAAAmxG,EACA,IAAAiB,EACA,MAAAA,GAkBA,IAbA,GAYAhuG,GAZAquG,EAAAn3G,SAAAo3G,mBACAvB,EAAA,GACAwB,WAAAC,aAAAD,WAAAE,UACA,WAEA,MAAAF,YAAAG,gBAEA,GAGAC,KAGA3uG,EAAAquG,EAAAO,YAAA,CAEA,GADA5uG,EAAA/H,WAAAktE,KAAAiB,eAAApmE,EAAA6uG,oBAAArG,EAAAxoG,EAAA9C,cACA2pG,EAAA7mG,GAAA,CAEAmjE,EADAnjE,EAAA/H,WAAAktE,KAAAC,UAAAplE,EAAAgB,WAAAhB,IAEA2uG,EAAA/6G,KAAA2nC,EAAAv7B,KAQA,MAHA6tG,KACAI,GAAAvF,iBAAA5uG,IAAAizG,EAAA4B,GAEAA,GAiCAt3G,KAAAy3G,YAAA,SAAAhxG,GACA,MAAAA,GAGAy9B,EAAAz9B,EAAAzG,KAAAqyG,kBAFAnuE,EAAAlkC,KAAAqyG,kBAAAprF,YAKAjnB,KAAA03G,WAAA,SAAAjxG,GAEA,GAAA27F,GAAApiG,KAAAy3G,YAAAhxG,EAEA,IAAA27F,EAAA7mG,OAAA,EACA,MAAA6mG,GA4BA,IAAAwU,IAAA,GAAAxF,GAEAoF,IAAA,CAEAx2G,MAAA23G,gBAAA,WACAf,GAAArF,cAKA,IAAAO,MAiFA1X,YAAAwd,2BACAzF,mBAAAA,GACAJ,yBAAAA,GACAE,6BAAAA,GACAC,yBAAAA,GACA2F,iBAAA,WACAtwE,QAAAE,IAAA5M,KAAAuxB,UAAAguC,WAAAzB,OAAAmf,oBAAA3c,WAEA,IAAA4c,GAAA3d,WAAAzB,OAAAua,qBACAt7B,EAAAwiB,WAAAzB,OAAAya,wBAAA2E,EACAxwE,SAAAE,IAAAswE,EAAAngC,EAAAq6B,GAAAr6B,GAEA,IAAAogC,GAAA5d,WAAAzB,OAAAwa,oBACAt7B,EAAAuiB,WAAAzB,OAAAya,wBAAA4E,EACAzwE,SAAAE,IAAAuwE,EAAAngC,EAAAo6B,GAAAp6B,KAEAogC,+BAAA,WACA,GAAApjG,GAAA9U,OAAA+gB,IAAAquF,kCACA,OAAAt6F,GAAA4zB,OAAA,SAAAzuB,EAAAC,GACA,MAAAD,GAAAC,IACApF,EAAAtZ,SAOAyE,KAAA+vG,wBAAA,SAAA5F,EAAAY,GAEA,GAAAmN,GAAAl4G,KAAA6wG,gBAEA,KAAAqH,EACA,MAAA,KAuBA,KApBA,GAAAC,GAEAj6B,EADAo4B,EAAA,EAGA8B,EAAAv4G,SAAAw4G,iBACAH,EACAhB,WAAAC,aAAAD,WAAAE,UACA,SAAAzuG,GACA,MAAAA,GAAA/H,WAAAktE,KAAAiB,cAAAjD,EAAAnjE,GACAuuG,WAAAoB,eAEA3vG,EAAA/H,WAAAktE,KAAAC,WAAAyhC,EAAA7mG,KAGA2iG,EAAApnE,EAAAv7B,IAAA,EAAAwhG,EAAAY,GACAmM,WAAAG,cAHAH,WAAAoB,gBAKA,GAGAF,EAAAb,YAAA,CACA,GAAA5uG,GAAAyvG,EAAAG,WAEA,IAAA5vG,EAAA/H,WAAAktE,KAAAC,UAAA,CACAoqC,EAAAxvG,EAAAgB,WACAu0E,EAAAv1E,EACA2tG,EAAA,GACA,OAMA,IAAA,GAHAkC,IAAA,EACAC,GAAA,EAEA39G,EAAA6N,EAAAhD,WAAApK,OAAA,EAAAT,GAAA,EAAAA,IAAA,CACA,GAAA49G,GAAA/vG,EAAAhD,WAAA7K,EACA,IAAA49G,EAAA93G,WAAAktE,KAAAiB,aAAA,CACAypC,GAAA,CACA,OAEAE,EAAA93G,WAAAktE,KAAAC,YACA0qC,GAAA,GAIA,IAAAD,GAAAC,EACA,IAAA,GAAA39G,GAAA6N,EAAAhD,WAAApK,OAAA,EAAAT,GAAA,EAAAA,IAAA,CACA,GAAA49G,GAAA/vG,EAAAhD,WAAA7K,EACA,IAAA49G,EAAA93G,WAAAktE,KAAAC,WAAAyhC,EAAAkJ,GAAA,CACA,GAAAC,GAAArN,EAAApnE,EAAAw0E,IAAA,EAAAvO,EAAAY,EACA,IAAA4N,EAAA,CACAR,EAAAxvG,EACAu1E,EAAAw6B,EACApC,EAAAqC,CACA,aAIA,KAAAH,EAAA,CACAL,EAAAxvG,EACA2tG,EAAA,IACAp4B,EAAA,IACA,QAIA,MAAAi6B,IAIA3sC,QAAA2sC,EACAj6B,SAAAA,EACAo4B,eAAAA,GALA,MASAt2G,KAAA6vG,uBAAA,SAAA1F,EAAAY,GAEA,GAAAmN,GAAAl4G,KAAA6wG,gBAEA,KAAAqH,EACA,MAAA,KAuBA,KApBA,GAAAC,GAEAj6B,EADAo4B,EAAA,EAGA8B,EAAAv4G,SAAAw4G,iBACAH,EACAhB,WAAAC,aAAAD,WAAAE,UACA,SAAAzuG,GACA,MAAAA,GAAA/H,WAAAktE,KAAAiB,cAAAjD,EAAAnjE,GACAuuG,WAAAoB,eAEA3vG,EAAA/H,WAAAktE,KAAAC,WAAAyhC,EAAA7mG,KAGA2iG,EAAApnE,EAAAv7B,IAAA,EAAAwhG,EAAAY,GACAmM,WAAAG,cAHAH,WAAAoB,gBAKA,GAGAF,EAAA1yG,cAEA,EAAA,CACA,GAAAiD,GAAAyvG,EAAAG,WAEA,IAAA5vG,EAAA/H,WAAAktE,KAAAC,UAAA,CACAoqC,EAAAxvG,EAAAgB,WACAu0E,EAAAv1E,EACA2tG,EAAA,GACA,OAMA,IAAA,GAHAkC,IAAA,EACAC,GAAA,EAEA39G,EAAA6N,EAAAhD,WAAApK,OAAA,EAAAT,GAAA,EAAAA,IAAA,CACA,GAAA49G,GAAA/vG,EAAAhD,WAAA7K,EACA,IAAA49G,EAAA93G,WAAAktE,KAAAiB,aAAA,CACAypC,GAAA,CACA,OAEAE,EAAA93G,WAAAktE,KAAAC,YACA0qC,GAAA,GAIA,IAAAD,GAAAC,EACA,IAAA,GAAA39G,GAAA6N,EAAAhD,WAAApK,OAAA,EAAAT,GAAA,EAAAA,IAAA,CACA,GAAA49G,GAAA/vG,EAAAhD,WAAA7K,EACA,IAAA49G,EAAA93G,WAAAktE,KAAAC,WAAAyhC,EAAAkJ,GAAA,CACA,GAAAC,GAAArN,EAAApnE,EAAAw0E,IAAA,EAAAvO,EAAAY,EACA,IAAA4N,EAAA,CACAR,EAAAxvG,EACAu1E,EAAAw6B,EACApC,EAAAqC,CACA,aAIA,KAAAH,EAAA,CACAL,EAAAxvG,EACA2tG,EAAA,IACAp4B,EAAA,IACA,cAEAk6B,EAAAQ,eAEA,OAAAT,IAIA3sC,QAAA2sC,EACAj6B,SAAAA,EACAo4B,eAAAA,GALA,SC3sDA18G,OAAA,8CAAA,WAoPA,MA9OA,UAAAi/G,GAwKA,QAAAC,GAAAhe,GAIA,IAAA,GAFAie,MACAlkG,EAAAimF,EAAA3/F,MAAA,WACAL,EAAA,EAAAA,EAAA+Z,EAAAtZ,OAAAT,IACA,CACA,GAAA20F,GAAA56E,EAAA/Z,GAAA+b,MACA,MAAA44E,GAEAspB,EAAAx8G,KAAAkzF,GAGA,MAAAspB,GAYA,QAAAC,GAAA5gF,EAAAygF,EAAAI,OAEA75G,KAAAy5G,EAAAzgF,KAGAnvB,EAAAmvB,GAFA6gF,EAEAA,EAAAJ,EAAAzgF,IAGAygF,EAAAzgF,IAtMA,GAAAnvB,GAAAjJ,IAQAA,MAAAmlG,gBAAA,OAQAnlG,KAAAk5G,cAAA,EAQAl5G,KAAAyiG,SAAA,IAQAziG,KAAAkrG,UAAA,GAQAlrG,KAAAm5G,eAAA,IAQAn5G,KAAAo5G,eAAA,IAQAp5G,KAAAq5G,yCAAA,EAQAr5G,KAAAs5G,6BAAA,EAQAt5G,KAAAu5G,+BAAA,EAQAv5G,KAAAw5G,2BAQAx5G,KAAAy5G,2BAQAz5G,KAAA05G,0BAAA,EAQA15G,KAAA25G,kBAAA,EAQA35G,KAAA45G,oBAAA,IAQA55G,KAAA65G,wCAAA,GAQA75G,KAAA85G,gCAAA,EASA95G,KAAA+5G,oCAAA,EAWA/5G,KAAAg6G,gBAAA,EAQAh6G,KAAAi6G,OAAA,OAuDAj6G,KAAAk6G,OAAA,SAAArB,GAEAG,EAAA,YAAAH,GACAG,EAAA,iBAAAH,GACAG,EAAA,iBAAAH,GACAG,EAAA,WAAAH,GACAG,EAAA,gBAAAH,GACAG,EAAA,0CAAAH,GACAG,EAAA,8BAAAH,GACAG,EAAA,gCAAAH,GACAG,EAAA,0BAAAH,EAAAC,GACAE,EAAA,0BAAAH,EAAAC,GACAE,EAAA,2BAAAH,GACAG,EAAA,oBAAAH,GACAG,EAAA,sBAAAH,GACAG,EAAA,0CAAAH,GACAG,EAAA,iCAAAH,GACAG,EAAA,SAAAH,GACAG,EAAA,kBAAAH,GACAG,EAAA,iBAAAH,GACAG,EAAA,qCAAAH,IAGA74G,KAAAk6G,OAAArB,MCpQA,SAAAr0F,EAAA5kB,GACA,kBAAAhG,SAAAA,OAAA6F,IACA7F,OAAA,eAAAgG,GACA,gBAAApB,SACAE,OAAAF,QAAAoB,IAEA4kB,EAAA21F,aAAAv6G,KAEA,mBAAAG,QAAAA,OAAAC,KAAA,WAsBA,QAAAo6G,GAAA95G,EAAAxB,GACA,GAAAu7G,GAAAx8G,OAAAC,UAAAiX,SAAA7a,KAAAoG,GACAg6G,EAAA,mBAAAD,GACA,sBAAAA,GACA,4BAAAA,GACA,oBAAAA,GACA,mBAAA36G,SAAAY,YAAAZ,SACA,mBAAA66G,WAAAj6G,YAAAi6G,UAEAz/G,EAAA,EAAAC,EAAAuF,EAAA/E,MACA,IAAA++G,EACA,KAAAx/G,EAAAC,EAAAD,IACAgE,EAAAwB,EAAAxF,QAGAgE,GAAAwB,GASA,QAAAk6G,GAAAhvC,GACA,IAAAA,EAAA12C,sBACA,OACAnqB,MAAA6gE,EAAAh/D,YACAmB,OAAA69D,EAAA/+D,aAIA,IAAAi8E,GAAAld,EAAA12C,uBACA,QACAnqB,MAAAmB,KAAAm1C,MAAAynC,EAAA/9E,OACAgD,OAAA7B,KAAAm1C,MAAAynC,EAAA/6E,SAtDA,GAAA,mBAAA5N,QACA,MAAA,KAKA,IAAA6jF,GAAA7jF,OAAA6jF,uBACA7jF,OAAA06G,0BACA16G,OAAA26G,6BACA,SAAAh0G,GACA,MAAA3G,QAAAT,WAAAoH,EAAA,KAwDAyzG,EAAA,SAAA3uC,EAAA1sE,GAQA,QAAA67G,KACA,GAAA/rD,KACA5uD,MAAAgH,IAAA,SAAA4zG,GACAhsD,EAAAryD,KAAAq+G,GAGA,IAAA9/G,GAAAC,CACAiF,MAAA9F,KAAA,SAAA2gH,GACA,IAAA//G,EAAA,EAAAC,EAAA6zD,EAAArzD,OAAAT,EAAAC,EAAAD,IACA8zD,EAAA9zD,GAAAZ,KAAA8F,KAAA66G,IAIA76G,KAAAwJ,OAAA,SAAAoxG,GACA,GAAAE,KACA,KAAAhgH,EAAA,EAAAC,EAAA6zD,EAAArzD,OAAAT,EAAAC,EAAAD,IACA8zD,EAAA9zD,KAAA8/G,GAAAE,EAAAv+G,KAAAqyD,EAAA9zD,GAEA8zD,GAAAksD,GAGA96G,KAAAzE,OAAA,WACA,MAAAqzD,GAAArzD,QASA,QAAAw/G,GAAAvvC,EAAAwvC,GACA,GAAAxvC,EAAA,CACA,GAAAA,EAAAyvC,gBAEA,WADAzvC,GAAAyvC,gBAAAj0G,IAAAg0G,EAIAxvC,GAAAyvC,gBAAA,GAAAN,GACAnvC,EAAAyvC,gBAAAj0G,IAAAg0G,GAEAxvC,EAAA0vC,aAAAr7G,SAAAuF,cAAA,OACAomE,EAAA0vC,aAAAj6G,IAAA,MACAuqE,EAAA0vC,aAAAj6F,UAAA,eACA,IAAAzd,GAAA,uIACA23G,EAAA,sDAEA3vC,GAAA0vC,aAAA13G,MAAAivB,QAAAjvB,EACAgoE,EAAA0vC,aAAA11G,UACA,4CAAAhC,EAAA,iBACA23G,EAAA,sFAEA33G,EAAA,iBACA23G,EAAA,uEAEA3vC,EAAArmE,YAAAqmE,EAAA0vC,aAEA,IAAAE,GAAAr7G,OAAAsyB,iBAAAm5C,GACA93C,EAAA0nF,EAAAA,EAAArwG,iBAAA,YAAA,IACA,cAAA2oB,GAAA,aAAAA,GAAA,UAAAA,IACA83C,EAAAhoE,MAAAkwB,SAAA,WAGA,IAIA2nF,GAAAC,EAIAC,EARA3rG,EAAA47D,EAAA0vC,aAAAv1G,WAAA,GACA61G,EAAA5rG,EAAAjK,WAAA,GACA81G,EAAAjwC,EAAA0vC,aAAAv1G,WAAA,GAGAm+B,EAAA02E,EAAAhvC,GACAkwC,EAAA53E,EAAAn5B,MACAgxG,EAAA73E,EAAAn2B,OACAiuG,GAAA,EAGAC,EAAA,WACAL,EAAAh4G,MAAAmH,MAAA,WACA6wG,EAAAh4G,MAAAmK,OAAA,WAEAiC,EAAAyf,WAAA,IACAzf,EAAA6f,UAAA,IAEAgsF,EAAApsF,WAAA,IACAosF,EAAAhsF,UAAA,KAGA7J,EAAA,WAEA,GAAAg2F,EAAA,CACA,IAAAhsG,EAAA6f,YAAA7f,EAAAyf,WAcA,MAXAwsF,UAGAN,IACAA,EAAA33B,EAAA,WACA23B,EAAA,EAEA31F,OAOAg2F,IAAA,EAIAC,IAEArwC,GAAA0vC,aAAAY,YAAAl2F,CAEA,IAAAm2F,GAAA,WACAT,EAAA,EAEAD,IAEAK,EAAA53E,EAAAn5B,MACAgxG,EAAA73E,EAAAn2B,OAEA69D,EAAAyvC,iBACAzvC,EAAAyvC,gBAAA/gH,KAAA4pC,KAIAk4E,EAAA,WACAl4E,EAAA02E,EAAAhvC,GACA6vC,EAAAv3E,EAAAn5B,QAAA+wG,GAAA53E,EAAAn2B,SAAAguG,EAEAN,IAAAC,IACAA,EAAA13B,EAAAm4B,IAGAn2F,KAGAq2F,EAAA,SAAAtwF,EAAAvxB,EAAAg0F,GACAziE,EAAA3K,YACA2K,EAAA3K,YAAA,KAAA5mB,EAAAg0F,GAEAziE,EAAA5K,iBAAA3mB,EAAAg0F,GAIA6tB,GAAArsG,EAAA,SAAAosG,GACAC,EAAAR,EAAA,SAAAO,GAGAp4B,EAAAh+D,IA3JA,GAAAs2F,EA8JA,oBAAAC,iBACAD,EAAA,GAAAC,gBAAA,SAAA3wC,GACA4uC,EAAA5uC,EAAA,SAAA7qE,GACA7B,EAAA5E,KACA8F,MAEA2K,MAAAhK,EAAAy7G,YAAAzxG,MACAgD,OAAAhN,EAAAy7G,YAAAzuG,iBAKAvO,KAAAosE,GACA4uC,EAAA5uC,EAAA,SAAA7qE,GACAu7G,EAAAG,QAAA17G,MAKAy5G,EAAA5uC,EAAA,SAAA7qE,GACAo6G,EAAAp6G,EAAA7B,KAIAkB,KAAAiK,OAAA,SAAA2wG,GACA,mBAAAuB,gBACA/B,EAAA5uC,EAAA,SAAA7qE,GACAu7G,EAAAI,UAAA37G,KAIAw5G,EAAAlwG,OAAAuhE,EAAAovC,IAIA56G,KAAA4lB,MAAA,WACA4lD,EAAA0vC,aAAAY,eA2BA,OAvBA3B,GAAAv0F,MAAA,SAAA4lD,EAAAovC,GACAR,EAAA5uC,EAAA,SAAA7qE,GACAA,EAAAu6G,aAAAY,iBAIA3B,EAAAlwG,OAAA,SAAAuhE,EAAAovC,GACAR,EAAA5uC,EAAA,SAAA7qE,GACAA,IACAA,EAAAs6G,iBAAA,kBAAAL,KACAj6G,EAAAs6G,gBAAAzxG,OAAAoxG,GACAj6G,EAAAs6G,gBAAA1/G,WAEAoF,EAAAu6G,eACAv6G,EAAAmE,SAAAnE,EAAAu6G,eACAv6G,EAAAiJ,YAAAjJ,EAAAu6G,oBAEAv6G,GAAAu6G,mBACAv6G,GAAAs6G,qBAKAd,ICzRAvgH,OAAA,yCAAA,aAAA,SAAA,aAAA,eAAA,yBAAA,aAAA,4BAAA,0BAAA,gBACA,SAAA6rC,EAAAvB,EAAA1iC,EAAAgkC,EAAA+2E,EAAA7b,EAAA8b,EAAA7hB,EAAAwf,GAUA,GAAAsC,GAAA,SAAAt7G,EAAA83B,EAAAyjF,EAAA/jB,GA2UA,QAAAgkB,GAAA1/E,GAEA,GAAAA,EAAA,CACA2/E,GAAA,CACA,IAAAC,GAAAC,EAAA,GAAAxyG,eACAyyG,GAAA74E,EAAA,OAAA24E,GACAE,GAAA,GAAAA,EAAAxhH,QAIAyhH,EAAA94E,EAAA,OAAA64E,GAEAE,GACAD,EAAA/5G,IAAA,SAAA,OANA85G,EAAA74E,EAAA,MAAA24E,GACAG,MAAA59G,IAWA69G,GACAh0G,EAAAi0G,kBAGAC,IAEAC,IAEAC,EAAAV,gBAIA,QAAAS,KAEA,GAAAJ,GACAC,EACA,CAEA,GAAA/E,GAAA8E,EAAA,EACA,IAAA9E,EAAAgD,aACA,MAKAoC,GAAA3yG,MAAAu5B,EAAAg0E,GAAAvtG,QACA2yG,EAAA3vG,OAAAu2B,EAAAg0E,GAAAvqG,SAEAuqG,EAAAgD,aAAA,GAAAf,GAAAjC,EAAA,WAEA,GAAAqF,IACA5yG,MAAAu5B,EAAAg0E,GAAAvtG,QACAgD,OAAAu2B,EAAAg0E,GAAAvqG,SAKA,IAFA45B,QAAAC,MAAA,kCAAA+1E,EAAA5yG,MAAA4yG,EAAA5vG,OAAA6vG,EAAA7wC,OAEA4wC,EAAA5yG,OAAA2yG,EAAA3yG,OAAA4yG,EAAA5vG,QAAA2vG,EAAA3vG,OAAA,CACA2vG,EAAA3yG,MAAA4yG,EAAA5yG,MACA2yG,EAAA3vG,OAAA4vG,EAAA5vG,OAEA45B,QAAAC,MAAA,2BAEA,IAAAhgC,GAAAi2G,EAAApf,QAAAqf,mBAAAF,EAAA74F,KAEA8gB,GAAAqB,SAAA,0CAAA,OAAA,sBAAA02E,EAAA74F,KAAA,OAAAnd,EAAA,MAEAyB,EAAAk8B,KAAAs3E,EAAA32E,OAAA63E,qBAAAb,EAAAU,OAIAj2E,SAAAC,MAAA,0CAqBA,QAAAo2E,KAEA,GAAAX,GAEAF,GAAAc,EAAA,CACA,GAAA/iH,GAAA+iH,EAAA3E,cACA4E,GAAAnlB,EAAAolB,QAAAplB,EAAAolB,MAAAxiH,QAAAT,GAAA,GAAAA,EAAA,GAAA69F,EAAAolB,MAAAxiH,OACAyiH,EAAAF,KAEAnlB,EAAAolB,MAAAjjH,EAAA,EACA4lG,GAAA6B,yBAAAwa,EAAAc,EAAApb,SAAAub,EAAA,eA+FA,QAAAC,KAEA,IAAAnB,IAAAA,EAAAvhH,OACA,MAAA,EAGA,IAAAmlG,EAAA6F,cAAAuW,EAAA,IAAA,CACA,GAAAh6E,GAAAg6E,EAAA,GAAAtW,cACA59F,EAAAk0G,EAAA,GAAAxyG,eAGA,OADAwB,MAAAm1C,MAAAt0C,WAAAm2B,EAAAzQ,iBAAAzpB,EAAAyB,iBAAAsD,SAGA,GAAAovG,EAAA,CACAx1E,QAAAjzB,MAAA,yBAGA,OADAyoG,GAAApvG,SAIA,MAAA,GA0FA,QAAAwvG,KAKA,GAHAe,EAAAvzG,MAAA,EACAuzG,EAAAvwG,OAAA,GAEAsvG,EAAA,CAEA,GAAAn5E,OAAA1kC,GAGA++G,MAAA/+G,GACAg/G,MAAAh/G,GAEAkL,EAAAwyG,EAAA,GAAAxyG,gBAGApD,EAAAg9B,EAAA,sBAAA55B,GAAAiY,KAAA,UAWA,IARArb,IACAA,EAAAg9B,EAAA,qBAAA55B,GAAAiY,KAAA,YAGArb,IACA48B,EAAAu6E,EAAAn3G,KAGA48B,GAIAx5B,GAAAA,EAAAD,iBAAAC,EAAAD,gBAAArG,UAAA,OAAAsG,EAAAD,gBAAArG,SAAA5B,cAAA,CAEA,GAAAuI,OAAAvL,GACAuO,MAAAvO,GAEAk/G,EAAAh0G,EAAAD,gBAAAhI,aAAA,SACAk8G,EAAAD,GAAAA,EAAA/iH,QAAA,GAAA,KAAA+iH,EAAAA,EAAA/iH,OAAA,EACA,IAAA+iH,EACA,IACA3zG,EAAAiuB,SAAA0lF,EAAA,IAEA,MAAAh4G,IAEAqE,GAAA4zG,IACAJ,EAAAxzG,EACAA,MAAAvL,GAGA,IAAAo/G,GAAAl0G,EAAAD,gBAAAhI,aAAA,UACAo8G,EAAAD,GAAAA,EAAAjjH,QAAA,GAAA,KAAAijH,EAAAA,EAAAjjH,OAAA,EACA,IAAAijH,EACA,IACA7wG,EAAAirB,SAAA4lF,EAAA,IAEA,MAAAl4G,IAEAqH,GAAA8wG,IACAL,EAAAzwG,EACAA,MAAAvO,IAGAuL,GAAAgD,IACAm2B,GACAn5B,MAAAA,EACAgD,OAAAA,IA4BA,IAXAm2B,GAAA05E,IACAt2G,EAAAs2G,EAAAje,0BAGAz7D,EAAAu6E,EAAAn3G,KAEAqgC,QAAAE,IAAA,kDAKA3D,EAAA,CAEA,GAAA46E,GAAAx6E,EAAA55B,GAAAsT,KAAA,MACA,IAAA8gG,EAAAnjH,OAAA,EAAA,CACAuoC,GACAn5B,MAAA+zG,EAAA/zG,QACAgD,OAAA+wG,EAAA/wG,SAGA6vG,IAAAA,EAAA3e,YAAA2e,EAAA3e,WAAAtjG,QAAA,GAAAiiH,EAAA3e,WAAAthG,QAAA,WAEAgqC,QAAAI,KAAA,uCAKA,IADA+2E,EAAAx6E,EAAA55B,GAAAsT,KAAA,SACA8gG,EAAAnjH,OAAA,EAAA,CACA,GAAAoP,OAAAvL,GACAuO,MAAAvO,GAEAk/G,EAAAI,EAAA,GAAAr8G,aAAA,QACA,IAAAi8G,EACA,IACA3zG,EAAAiuB,SAAA0lF,EAAA,IAEA,MAAAh4G,IAEA,GAAAk4G,GAAAE,EAAA,GAAAr8G,aAAA,SACA,IAAAm8G,EACA,IACA7wG,EAAAirB,SAAA4lF,EAAA,IAEA,MAAAl4G,IAIAqE,GAAAgD,IACAm2B,GACAn5B,MAAAA,EACAgD,OAAAA,IAGA,EAEA45B,QAAAI,KAAA,uCAMA,IAAA7D,EAAA,CAEAn5B,EAAAg0G,EAAAh0G,QACAgD,EAAAgxG,EAAAhxG,QAGAu2B,GAAA,sBAAAy6E,GAAApjH,OAAA,IACAoP,GAAA,IAGAwzG,IACAxzG,GAAAwzG,EAAA,KAEAC,IACAzwG,GAAAywG,EAAA,KAGAt6E,GACAn5B,MAAAA,EACAgD,OAAAA,IAGA,EAEA45B,QAAAI,KAAA,2DAGA7D,IACAo6E,EAAAvzG,MAAAm5B,EAAAn5B,MACAuzG,EAAAvwG,OAAAm2B,EAAAn2B,SAUA,QAAAixG,GAAA1Z,GACAA,IAEAz/D,EAAAqB,SAAA,4BAAA,OAAA,sBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAS,0BAAAu2E,EAAA5X,IAgFA,QAAAmZ,GAAAn3G,GAMA,IAAA,GAJAstF,GAAAttF,EAAAvL,QAAA,MAAA,IAAAR,MAAA,KAEA0jH,KAEA/jH,EAAA,EAAAA,EAAA05F,EAAAj5F,OAAAT,IAAA,CACA,GAAAgkH,GAAAtqB,EAAA15F,GAAAK,MAAA,IACA,IAAA2jH,EAAAvjH,SAEAsjH,EAAAC,EAAA,IAAAA,EAAA,IAIA,GAAAn0G,GAAAyhC,OAAA0N,IACAnsC,EAAAy+B,OAAA0N,GAUA,IARA+kE,EAAA,QACAl0G,EAAAiuB,SAAAimF,EAAA,QAGAA,EAAA,SACAlxG,EAAAirB,SAAAimF,EAAA,UAGAlwF,MAAAhkB,KAAAgkB,MAAAhhB,GACA,OAAAhD,MAAAA,EAAAgD,OAAAA,GAMA,QAAAy8F,KACA,OACAtpF,KAAAi+F,EAAAl+F,SAAA4O,YACAsF,KAAA,GAIA,QAAAs1E,KACA,GAAA1R,EAAAqmB,mCAAA,CACA,GAAAC,GAAAF,EAAAl+F,SAAA,EACA,QACAlW,MAAAs0G,EAAAC,YACAvxG,OAAAsxG,EAAAE,cAGA,OACAx0G,MAAAuzG,EAAAvzG,MACAgD,OAAAuwG,EAAAvwG,QAqGA,QAAAyxG,GAAA9gB,GACA,MAAAkf,GAIA,GAAA7iB,GAAA6iB,EAAA7wC,MAAA2xB,GAHA,KA7hCAp6D,EAAAh8B,OAAAlI,KAAA,GAAAwlC,GAEA,IAEAu3E,GACAC,EACA+B,EACAjC,EACAU,EAUA6B,EAhBAp2G,EAAAjJ,KAOAy9G,EAAAt8G,EAAA45F,MACAukB,EAAAn+G,EAAAo+G,aAEAC,EAAAr+G,EAAAs+G,WAEAd,EAAAx9G,EAAA8jG,UAEA2X,GAAA,EAIAU,GACA3yG,UAAAvL,GACAuO,WAAAvO,IAGAsgH,EAAA,SAAAvxG,GACA,GAAAwxG,GAAA,SAAAC,EAAAl8G,GACA1D,KAAA4/G,MAAAA,EACA5/G,KAAA0D,IAAAA,GAGAm8G,EAAA,GAAAF,GACA,SAAA78G,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,MAEA,SAAAH,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,YAAA,QAEAy9F,EAAAkG,cAAAC,EAAA,0BAEAA,EAAA5jG,IAAA,UAAA,OAIAg9G,EAAA,GAAAN,GACA,SAAA78G,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,IAEA,IAAAi9G,GAAAp0G,KAAAw1C,KAAAw+D,EAAAh9G,GAEAq9G,EAAA,GAAAD,GAAA,IAAAF,EAAA,GAAA,GACAI,EAAA1f,EAAAqG,oBACAhyE,KAAAjpB,KAAAm1C,MAAAk/D,GACAr9C,OAAA,YACAokC,SAAAmZ,GAEAxZ,GAAA5jG,IAAAm9G,IAEA,SAAAt9G,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,KAEAy9F,EAAAkG,cAAAC,EAAA,4BAEAA,EAAA5jG,IAAA,YAAA,UAIAq9G,EAAA,GAAAX,GACA,SAAA78G,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,IAEA,IAAAi9G,GAAAp0G,KAAAw1C,KAAAw+D,EAAAh9G,GAEAq9G,EAAA,IAAAD,GAAA,IAAAF,EAAA,GAAA,GACAlZ,EAAApG,EAAAqG,oBACAhyE,KAAAjpB,KAAAm1C,MAAAk/D,GACAhZ,MAAA,IAAA,IAAA6Y,GAAA,EAAA,GACAl9C,OAAA,YACAokC,SAAAmZ,GAEAxZ,GAAA5jG,IAAA6jG,IAEA,SAAAhkG,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,KAEAy9F,EAAAkG,cAAAC,EAAA,+BAEAA,EAAA5jG,IAAA,YAAA,UAIAs9G,EAAA,GAAAZ,GACA,SAAA78G,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,IAMA,KAAA,GAHAu9G,IAAA,EACAC,GAAA,EAEA3lH,EAAA,EAAAA,EAAAm+B,EAAA19B,OAAAT,IAAA,CACA,GAAAupC,GAAApL,EAAAn+B,GAAAsH,aACA,IAAAiiC,EAAA9mC,QAAA,SAAA,EAAA,CACAijH,GAAA,CACA,OAEA,GAAAn8E,EAAA9mC,QAAA,UAAA,EAAA,EACA,CACA,OAEA,GAAA8mC,EAAA9mC,QAAA,WAAA,EAAA,CACAkjH,GAAA,CACA,QAIA,GAAAP,GAAAp0G,KAAAw1C,KAAAw+D,EAAAh9G,GAEAq9G,EAAA,GAAAD,GAAAM,GAAAC,GAAA,IAAAT,EAAA,GAAA,GACAlZ,EAAApG,EAAAqG,oBACAjkG,MAAA,GACAiyB,KAAAjpB,KAAAm1C,MAAAk/D,GACAhZ,MAAA,IAAAqZ,GAAAC,GAAA,IAAAT,EAAA,GAAA,GACAl9C,OAAA,YACAokC,SAAAmZ,GAEAxZ,GAAA5jG,IAAA6jG,IAEA,SAAAhkG,EAAAiyB,EAAAjU,EAAA+lF,EAAAiZ,EAAAC,EAAAC,GACAnZ,EAAA5jG,IAAA,UAAA,KAEAy9F,EAAAkG,cAAAC,EAAA,4BAEAA,EAAA5jG,IAAA,YAAA,UAIAy9G,IACAA,GAAAnkH,KAAAsjH,GACAa,EAAAnkH,KAAA0jH,GACAS,EAAAnkH,KAAA+jH,GACAI,EAAAnkH,KAAAgkH,EAEA,IAAAI,GAAAxyG,EAAAyyG,yBAAA,CAGAD,IAAA,CAEA,IAAAE,IAAA,EAEAR,EAAA,GAAA7D,OAAAzC,mCAEA+G,MAAA1hH,EACAY,MAAA+gH,cAAA,SAAAv8E,GACAs8E,EAAAt8E,CAEA,IAAA9H,GAAAokF,CACApkF,QAAA,KAAAA,EAAAq9E,qCAEAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,qCACAsG,GAAA,GAGA,OAAA77E,EAAAw1E,oBAAA,KAAAx1E,EAAAw1E,iBACA6G,EAAAr8E,EAAAw1E,iBAGAh6G,KAAA+gH,cAAA5yG,EAEA,IAAA6yG,GAAA,EACAC,GAAA,EACAC,GAAA,CAGAlhH,MAAAmhH,oBAAA,SAAAlgH,EAAAmgH,GACAF,IAIAF,EAAA//G,EACAggH,EAAAG,IAGAphH,KAAA28G,aAAA,WACAuE,GAAA,GAGAlhH,KAAAqhH,gCAAA,SAAAxa,EAAA/jG,EAAAiyB,EAAAjU,GACA,GAAAwgG,GAAAL,GAAAC,CAGA,IAFAA,GAAA,GAEAP,IAAA,IAAAE,IAEAngB,EAAAkG,cAAAC,EAAA,gBAEAya,GAAA,CAEA,GAAAtH,GAAA6G,GAAA,GAAAA,EAAAH,EAAAnlH,OAAAmlH,EAAAG,OAAAzhH,EAEA,KAAA4hH,GAAAhH,EAIAA,EAAA4F,MAAA98G,EAAAiyB,EAAAjU,EAAA+lF,EAAA59F,EAAA62G,aAAA72G,EAAA82G,cAAAiB,GAHAna,EAAA5jG,IAAA,UAAA,OAOAjD,KAAAuhH,8BAAA,SAAA1a,EAAA/jG,EAAAiyB,EAAAjU,GACA,GAAA6/F,IAAA,IAAAE,EAEA,WADAha,GAAA5jG,IAAA,YAAA,OAIA3D,YAAA,WACA,GAAA06G,GAAA6G,GAAA,GAAAA,EAAAH,EAAAnlH,OAAAmlH,EAAAG,OAAAzhH,EAEA,KAAA4hH,GAAAhH,EAQAA,EAAAt2G,IAAAZ,EAAAiyB,EAAAjU,EAAA+lF,EAAA59F,EAAA62G,aAAA72G,EAAA82G,cAAAiB,IAPAna,EAAA5jG,IAAA,YAAA,QAEAy9F,EAAAkG,cAAAC,EAAA,wBAEAA,EAAA5jG,IAAA,UAAA,OAMA,MAGAo6G,EAAA,GAAAqC,GAAAv+G,GAIA87G,EAAAP,IAAA,EAEAwB,GACAvzG,MAAA,EACAgD,OAAA,EAGA3N,MAAAwrE,QAAA,WACA,MAAAuzC,IAGA/+G,KAAA+/G,YAAA,WACA,MAAA7B,GAAAvwG,QAGA3N,KAAA8/G,WAAA,WACA,MAAA5B,GAAAvzG,OAGA3K,KAAAwhH,aAAA,WAEA,MAAA5E,IAGA58G,KAAAq4F,OAAA,WAEA,GAAAH,GAAAwI,EAAA4E,aAAA,uBAEAyZ,GAAA76E,EAAAg0D,GAEAmnB,EAAAn7E,EAAA,UAAA66E,GAEAre,EAAAkG,cAAAmY,EAAA,gBAEAA,EAAA97G,IAAA,YAAA,OAEA,IAAAy5B,GAAAi8D,EAAA8oB,gBACA/kF,QAAA,KAAAA,EAAAq9E,qCAEAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,oCAGAgF,EAAA97G,IAAA,YAAA,iBAGA87G,EAAA97G,IAAA,SAAA,QACA87G,EAAA97G,IAAA,QAAA,OAEA,KAAA,GAAAnI,GAAA,EAAAywB,EAAA0N,EAAA19B,OAAAT,EAAAywB,EAAAzwB,IACAikH,EAAA/lF,SAAAC,EAAAn+B,GAKA,OAFAgiH,GAAA54E,EAAA,SAAA66E,GAEA/+G,MAIAA,KAAA0hH,eAAA,WACA5E,GAAAA,EAAAvhH,SAEAuhH,EAAA75G,IAAA,gBAAA,qBACA65G,EAAA75G,IAAA,aAAA,uBAGAjD,KAAAwJ,OAAA,WACAxJ,KAAAgoD,QAEAw1D,MAAAp+G,GAEA2/G,GAAAA,EAAA,IACAA,EAAAv1G,SAGAu1G,MAAA3/G,GACAigH,MAAAjgH,GACA09G,MAAA19G,IAGAY,KAAAgoD,MAAA,WACA40D,GAAA,EAEAE,GAAAA,EAAA,KACAA,EAAA,GAAAt1G,IAAA,KAIAxH,KAAA2hH,iBAAA,WAEA,MAAAnE,GA+EA,IAAAK,OAAAz+G,EACAY,MAAA4hH,gBAAA,SAAAllF,EAAAmlF,GAEAhE,EAAAnhF,EAEAugF,IACA4E,GACA54G,EAAAi0G,kBAGAC,IAEAE,EAAA0D,cAAArkF,IAiBA18B,KAAAk9G,gBAAA,WAEAD,GAEAF,IACArc,EAAAkF,UAAA4Z,EAAA10G,YAAAiyG,GACAa,MAKA59G,KAAA8hH,aAAA,SAAAn3G,GAEA,KAAAsyG,GAEAiB,EAAAvzG,OAAA,GAAA,CAEA,GAAA7H,GAAA6H,EAAAuzG,EAAAvzG,KACA1B,GAAA84G,0BAAAj/G,EAAA,EAAA,KAIA9C,KAAAgiH,sBAAA,WACA,GAAAC,GAAAhE,GAGAh1G,GAAAi5G,UAAAD,GAEAh5G,EAAAk5G,cAGAniH,KAAAkiH,UAAA,SAAAv0G,GAEA0xG,EAAAp8G,IAAA,SAAA0K,EAAA,MACAoxG,EAAA97G,IAAA,SAAA0K,EAAA,MAOA3N,MAAAmiH,WAAA,WAEArF,EAAA75G,IAAA,aAAA,WAGA65G,EAAA75G,IAAA,YAAA,OAEA,IACAy5B,GAAAmhF,CACAnhF,QAAA,KAAAA,EAAAq9E,qCAEAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,sCACA,EACA+C,EAAA75G,IAAA,YAAA,mBAQAjD,KAAAoiH,WAAA,WAEAtF,EAAA75G,IAAA,aAAA,SAOA,IAAAikG,IAAA,EACAxqE,EAAAmhF,CACAnhF,QAAA,KAAAA,EAAAq9E,qCAEAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,qCACA7S,GAAA,EAGA,IAAAjkG,GAAAy9F,EAAAqG,oBAAAhyE,KAAA,QAAAjU,IAAA,QAAAomF,SAAAA,GACA4V,GAAA75G,IAAAA,IA+BAjD,KAAAmhH,oBAAA,SAAAlgH,EAAAmgH,GACA/D,EAAA8D,oBAAAlgH,EAAAmgH,IAIAphH,KAAA+hH,0BAAA,SAAAj/G,EAAAiyB,EAAAjU,GAEA,IAAAm8F,EAAA,CAEA,GAAAiD,GAAAp0G,KAAAw1C,KAAA48D,EAAAvzG,MAAA7H,GACAu/G,EAAAv2G,KAAAo/B,MAAAgzE,EAAAvwG,OAAA7K,EASA,IAPAu6G,EAAAgE,gCAAAtC,EAAAj8G,EAAAiyB,EAAAjU,GAEAi+F,EAAA97G,IAAA,OAAA8xB,EAAA,MACAgqF,EAAA97G,IAAA,MAAA6d,EAAA,MACAi+F,EAAA97G,IAAA,QAAAi9G,EAAA,MACAnB,EAAA97G,IAAA,SAAAo/G,EAAA,MAEAtF,EAAA,CAKA,GAAA7V,IAAA,EACAxqE,EAAAmhF,CASA,IARAnhF,OAAA,KAAAA,EAAAq9E,qCAEAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,qCACA7S,GAAA,GAGA8V,GACArkB,EAAAqmB,mCAAA,CAEA,GAAAsD,GAAA5hB,EAAAqG,oBAAAjkG,MAAAA,EAAAokG,SAAAA,GAGAob,GAAA,aAAApE,EAAAvzG,MACA23G,EAAA,cAAApE,EAAAvwG,OAEAovG,EAAA95G,IAAAq/G,GAGAtF,GAAAA,EAAAzhH,QACAyhH,EAAA/5G,KAAA0H,MAAAuzG,EAAAvzG,MAAAgD,OAAAuwG,EAAAvwG,QAGA,IAAA40G,GAAA7hB,EAAAqG,oBAAAjkG,MAAA,EAAAokG,SAAAA,GACAqb,GAAA,MAAArE,EAAAvzG,MAAA7H,EACAy/G,EAAA,OAAArE,EAAAvwG,OAAA7K,EAEAu8G,EAAAp8G,IAAAs/G,OAEA,CACA,GAAAt/G,GAAAy9F,EAAAqG,oBAAAjkG,MAAAA,EAAAokG,SAAAA,GACAjkG,GAAA,MAAAi7G,EAAAvzG,MACA1H,EAAA,OAAAi7G,EAAAvwG,OACA0xG,EAAAp8G,IAAAA,GAKA85G,EAAA95G,IAAA,UAAA,SAEAgG,EAAAk5G,aAEA7iH,WAAA,WAEAy9G,EAAA95G,IAAA,UAAA,MACA,GAKAo6G,EAAAkE,8BAAAxC,EAAAj8G,EAAAiyB,EAAAjU,MAGA9gB,KAAAwiH,wBAAA,WACA,MAAAzD,GAAApxG,UAGA3N,KAAAyiH,iBAAAjhH,EAAAkiC,KAAAliC,EAAAoyF,SAAA5zF,KAAA+hH,0BAAA,IAAA94G,GAgMAjJ,KAAA4+G,SAAA,WACAA,EAAApB,IAIAx9G,KAAA0iH,cAAA,SAAAxd,EAAApmG,EAAA8E,GAEA,GAAA45G,GAAAtY,EAAA,CAEA,GAAAyd,GAAAnF,CACAA,GAAAtY,CACA,IAAA19F,GAAAi2G,EAAApf,QAAAqf,mBAAAxY,EAAAvgF,KAIA1b,GAAAm5G,aAEAxD,EAAA+D,GAGAl9E,EAAAqB,SAAA,2CAAA,OAAA,sBAAAo+D,EAAAvgF,KAAA,OAAAnd,EAAA,MACAyB,EAAAk8B,KAAAs3E,EAAA32E,OAAA88E,sBAAA9F,EAAAU,GAEA8B,EAAAuD,WAAA/F,EAAA,GAAAt1G,EAAA,SAAAy1B,GAEA,GAAAA,GAAAn+B,EAAA,CACA,GAAAgT,GAAA,WACAhT,EAAAm+B,EAAA6/E,EAAAU,GAAA,EAAA55G,GAGA88F,GAAA6F,cAAAuW,EAAA,KACAH,EAAA1/E,GAEAnrB,MAGAy1B,QAAAjzB,MAAA,wCACAizB,QAAAC,MAAA09D,EAAAvgF,MAEAg4F,EAAA1/E,GAEA39B,WAAAwS,EAAA,UAIA6qG,GAAA1/E,IAGAh0B,GAAAi8F,UAAAsY,QAGA1+G,IACAA,GAAA,EAAAg+G,EAAAU,GAAA,EAAA55G,IA6EA5D,KAAA8iH,aAAA,WACA,MAAA,IAAAvG,IACAhY,QAAAuY,EACAxS,sBAAAD,EACAc,4BAAAf,EACAr+B,gBAAA,aAAA,mBAAA,gBAAA,uBAAA,uBAAA,sBAAA,uBAAA,uBACAC,kBAAA,oBACAC,aAAA,kBAAA,yBAIAjsE,KAAA2zG,gBAAA,SAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,GAEA,MAAA82C,IAAAvF,EAAA7wC,UACAplC,SAAAjzB,MAAA,4BAIArL,EAAA65G,eACAnP,gBAAArV,EAAAvyB,EAAAC,EAAAC,IAGAjsE,KAAAsY,eAAA,SAAAyqG,EAAApkH,GAEA,MAAAokH,IAAAvF,EAAA7wC,UACAplC,SAAAjzB,MAAA,4BAIArL,EAAA65G,eACAxqG,eAAA3Z,IAGAqB,KAAA03G,WAAA,SAAAqL,EAAAt8G,GAEA,MAAAs8G,IAAAvF,EAAA7wC,UACAplC,SAAAjzB,MAAA,4BAIArL,EAAA65G,eACApL,WAAAjxG,IAGAzG,KAAAq1G,mCAAA,WAEA,MADApsG,GAAA65G,eACAzN,sCAGAr1G,KAAAmiC,OAAA,WACA,GAAA26E,EACA,MAAAA,GAAA36E,UAKAniC,KAAA41G,6BAAA,SAAAC,GAGA,MAFA5sG,GAAA65G,eACAlN,6BAAA,KAAAC,IAIA71G,KAAA+1G,mBAAA,SAAAtvG,GAIA,MAFAwC,GAAA65G,eACA7M,kCAAAxvG,IAIAzG,KAAAg2G,yBAAA,SAAAH,EAAAmN,GAGA,MAFA/5G,GAAA65G,eACA9M,yBAAAH,EAAAmN,IAIAhjH,KAAAy3G,YAAA,SAAAsL,EAAAt8G,GAEA,MAAAs8G,IAAAvF,EAAA7wC,UACAplC,SAAAjzB,MAAA,4BAIArL,EAAA65G,eAEArL,YAAAhxG,IAGAzG,KAAAyzG,wBAAA,SAAAwP,EAAA7S,GACA,MAAA6S,IAAAzF,EAAA7wC,UACAplC,SAAAI,KAAA,4BAGA1+B,EAAA65G,eAEArP,wBAAArD,IAWApwG,KAAAkjH,uBAAA,WACA,QAAAhe,UAAAsY,EAAAjZ,QAAAuY,KAGA98G,KAAAkzG,mBAAA,SAAA/I,EAAAY,GACA,MAAAqU,GAAAn2G,EAAA65G,eAAA5P,mBAAA/I,EAAAY,KAGA/qG,KAAAmzG,kBAAA,SAAAhJ,EAAAY,GACA,MAAAqU,GAAAn2G,EAAA65G,eAAA3P,kBAAAhJ,EAAAY,KAGA/qG,KAAAozG,wBAAA,SAAAC,EAAAC,EAAAC,GACA,MAAAtqG,GAAA65G,eAAA1P,wBAAAC,EAAAC,EAAAC,IAGAvzG,KAAA+zG,wBAAA,SAAA90B,GACA,MAAAmgC,GAAAn2G,EAAA65G,eAAA/O,wBAAA90B,KAGAj/E,KAAAuyG,uBAAA,SAAAppE,EAAA8W,EAAAuyD,GACA,MAAA4M,GAAAn2G,EAAA65G,eAAAvQ,uBAAAppE,EAAA8W,EAAAuyD,KAGAxyG,KAAA6yG,sBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,MAAAmM,GAAAn2G,EAAA65G,eAAAjQ,sBAAAC,EAAAC,EAAAC,EAAAC,KAGAjzG,KAAA2vG,iBAAA,SAAAnkC,GACA,MAAA4zC,GAAAn2G,EAAA65G,eAAAnT,iBAAAnkC,KAGAxrE,KAAAm0G,oBAAA,SAAAhrE,EAAA8W,GACA,MAAAh3C,GAAA65G,eAAA3O,oBAAAhrE,EAAA8W,IAGAjgD,KAAA62G,YAAA,WACA,MAAAuI,GAAAn2G,EAAA65G,eAAAjM,gBAGA72G,KAAA82G,UAAA,WACA,MAAAsI,GAAAn2G,EAAA65G,eAAAhM,cAGA92G,KAAA60G,yBAAA,SAAArpC,GACA,MAAA4zC,GAAAn2G,EAAA65G,eAAAjO,yBAAArpC,KAQA,OAJAixC,GAAA32E,QACA88E,sBAAA,qBACAjF,qBAAA,sBAEAlB,ICtmCA7iH,OAAA,gDAAA,WAkHA,MAjGA,UAAAsrG,EAAAie,GAEAnjH,KAAAklG,UAAAA,EACAllG,KAAAq7F,uBAAAj8F,GACAY,KAAAojH,cAAAhkH,GACAY,KAAAqjH,eAAAjkH,GACAY,KAAAsjH,oBAAAlkH,GACAY,KAAAujH,mBAAAnkH,GACAY,KAAAwjH,WAAA,EACAxjH,KAAAyjH,UAAA,EACAzjH,KAAAmjH,UAAAA,EAQAnjH,KAAA4lB,MAAA,WACA5lB,KAAAq7F,uBAAAj8F,GACAY,KAAAojH,cAAAhkH,GACAY,KAAAqjH,eAAAjkH,GACAY,KAAAwjH,WAAA,EACAxjH,KAAAyjH,UAAA,GASAzjH,KAAA0jH,aAAA,WACA1jH,KAAA4lB,QACA5lB,KAAAwjH,WAAA,GASAxjH,KAAA2jH,YAAA,WACA3jH,KAAA4lB,QACA5lB,KAAAyjH,UAAA,GAUAzjH,KAAA4jH,aAAA,SAAAxX,GACApsG,KAAA4lB,QACA5lB,KAAAq7F,mBAAA+Q,GAUApsG,KAAA6jH,aAAA,SAAAT,GACApjH,KAAA4lB,QACA5lB,KAAAojH,UAAAA,GAUApjH,KAAA8jH,cAAA,SAAAT,GACArjH,KAAA4lB,QACA5lB,KAAAqjH,WAAAA,GAQArjH,KAAA+jH,0BAAA,SAAAT,EAAAC,GACAvjH,KAAA4lB,QACA5lB,KAAAsjH,gBAAAA,EACAtjH,KAAAujH,eAAAA,MC7GA3pH,OAAA,sCAAA,aAAA,SAAA,aAAA,eAAA,0BAAA,+BACA,8BAAA,kBAAA,8BAAA,cACA,SAAA6rC,EAAAvB,EAAA1iC,EAAAgkC,EAAAm1D,EAAAqpB,EACAloB,EAAA2gB,EAAAwH,EAAAvjB,GA41BA,MAr1BA,UAAAv/F,EAAAw3F,GA+BA,QAAAurB,GAAAC,GAEA,GAAAC,GAAA,GAAA3H,GAAAt7G,GACAgjH,IACA,EACAxrB,EAoBA,OAhBAyrB,GAAA79G,GAAAk2G,EAAA32E,OAAA88E,sBAAA,SAAAre,EAAAW,GAEAz/D,EAAAqB,SAAA,2CAAA,KAAA,mBAAAo+D,EAAAvgF,KAAA,MAEA8gB,EAAAqB,SAAA,8BAAA,OAAA,mBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAO,4BAAAk+D,EAAAW,KAGAkf,EAAA79G,GAAAk/B,EAAAK,OAAAS,0BAAA,SAAAg+D,EAAAW,GAEAz/D,EAAAqB,SAAA,4BAAA,KAAA,mBAAAo+D,EAAAvgF,KAAA,MAEA8gB,EAAAqB,SAAA,4BAAA,OAAA,mBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAS,0BAAAg+D,EAAAW,KAGAkf,EA6DA,QAAAC,KAGA,MADAC,GAAA9mB,aACA,GAGA,QAAA+mB,GAAApB,EAAAqB,GAEA,GAAAC,EAEA,YADAC,GAAAvB,UAAAA,EAAAqB,kBAAAA,GAIAC,IAAA,CAEA,IAAA7gH,IAAA+gH,gBAAA,GAEAC,EAAAC,IACAT,SAAAU,EAAA5f,UAAAof,EAAAroB,SAAAr4F,QAAAA,IACAwgH,SAAAW,EAAA7f,UAAAof,EAAApoB,UAAAt4F,QAAAA,IACAwgH,SAAAY,EAAA9f,UAAAof,EAAAnoB,WAAAv4F,QAAAA,IAEAsgC,GAAA9a,KAAA3sB,MAAAynC,EAAA0gF,GAAAv1G,KAAA,WAGA,GAFAo1G,GAAA,EAEAC,EAAA,CACA,GAAAp0E,GAAAo0E,EAAAvB,UACAz9D,EAAAg/D,EAAAF,iBACAE,OAAAtlH,GACAmlH,EAAAj0E,EAAAoV,OAIA9hD,GAAA+gH,iBAGAjkB,EAAAkF,UAAAqf,EAAAn6G,YAAAi0G,EAAAl+F,UACAqkG,KAIAV,EAEAW,EAAAhC,EAAAqB,EAAAtf,UAAAsf,EAAApB,WAIA+B,EAAAhC,KAyCA,QAAA0B,GAAAO,GAIA,IAAA,GAFAR,MAEA9pH,EAAA,EAAAA,EAAAsqH,EAAA7pH,OAAAT,IAAA,CAEA,GAAAuqH,GAAAC,EAAAF,EAAAtqH,GAAAspH,SAAAgB,EAAAtqH,GAAAoqG,UAAAkgB,EAAAtqH,GAAA8I,QACAghH,GAAAroH,KAAA8oH,GAGA,MAAAT,GAIA,QAAAO,GAAAhC,EAAAoC,EAAAC,GAEAC,IACAC,IAEA3lH,OAAAT,WAAA,WAEAmmC,EAAAqB,SAAA,iDAAA,OAAA;oFACA79B,EAAAk8B,KAAAM,EAAAmB,eAAAC,iCACA4jE,eAAAxhG,EAAA6uG,oBACAqL,UAAAA,EACAje,UAAAqgB,EACAnC,UAAAoC,KAEA,IA2BA,QAAAG,GAAAC,EAAA7pB,GAEA,GAAA8pB,GAAA,GAAA/pB,GAAA2hB,EAAA1hB,EAGA,OAFA8pB,GAAA7oB,SAAA4oB,GAEAtB,EAAAroB,UAAA4pB,EAAA5pB,UAAAqoB,EAAApoB,WAAA2pB,EAAA3pB,WAAAooB,EAAAnoB,YAAA0pB,EAAA1pB,WAOA,QAAA2pB,KAEA,IAAAC,IAAAC,EACA,OAAA,CAGA,IAAAvf,GAAAkY,EAAAh0G,QACA+7F,EAAAiY,EAAAhxG,QAEA,OAAA84F,IAAAC,EAGA,QAAAgf,GAAAO,GAIA,GAFA9E,EAAA,GAAA,GAEA2E,IAAA,CAIA,GAAArf,GAAAkY,EAAAh0G,QACA+7F,EAAAiY,EAAAhxG,SAEAu4G,EAAApB,EAAAtD,eAAA9gB,EAAA2D,QAAAlC,YAAA2iB,EAAAt5C,WAAAk1B,EAAA2D,QAAAx1F,QACAs3G,EAAApB,EAAAvD,eAAA9gB,EAAA2D,QAAAlC,YAAA4iB,EAAAv5C,WAAAk1B,EAAA2D,QAAAx1F,QACAu3G,EAAApB,EAAAxD,eAAA9gB,EAAA2D,QAAAlC,YAAA6iB,EAAAx5C,WAAAk1B,EAAA2D,QAAAx1F,QAEAw3G,EAAAC,EAAAJ,EAAAC,EAAAC,GAEAG,GAAA57G,MAAA87F,EAAAuf,EAAAr7G,QACAgD,OAAA+4F,EAAAsf,EAAAr4G,UAEA64G,GAAA77G,MAAA47G,EAAA57G,MAAA07G,EAAA17G,QACAgD,OAAA44G,EAAA54G,OAAA04G,EAAA14G,SAEA,MAAA44G,EAAA57G,OAAA,GAAA47G,EAAA54G,QAAA,GAAA,CAIA,GAAA84G,GAAAD,EAAA77G,MAAAo7G,EAAAp7G,MACA+7G,EAAAF,EAAA74G,OAAAo4G,EAAAp4G,MAEAgxG,GAAA17G,IAAA,WAAA,OAEA,IAAAH,EACA,cAAA6jH,EAAAnjH,MACAV,EAAA2jH,EAEA,cAAAE,EAAAnjH,MACAV,EAAA4jH,EAEA,QAAAC,EAAAnjH,MACAV,EAAA6jH,EAAA7jH,OAGAA,EAAAgJ,KAAAk/B,IAAAy7E,EAAAC,GAGA/H,EAAA17G,IAAA,WAAA,WAGA2jH,EAAA9jH,CAEA,IAAA+jH,IAAAl8G,MAAAo7G,EAAAp7G,MAAA7H,EACA6K,OAAAo4G,EAAAp4G,OAAA7K,GAEAgkH,GAAAn8G,MAAAk8G,EAAAl8G,MAAA07G,EAAA17G,QACAgD,OAAAk5G,EAAAl5G,OAAA04G,EAAA14G,UAEAo5G,GAAAp8G,MAAAm8G,EAAAn8G,MAAAq7G,EAAAr7G,QACAgD,OAAAm5G,EAAAn5G,OAAAq4G,EAAAr4G,UAGAq5G,EAAAl7G,KAAAo/B,OAAAu7D,EAAAsgB,EAAAp8G,OAAA,GACAs8G,EAAAn7G,KAAAo/B,OAAAw7D,EAAAqgB,EAAAp5G,QAAA,EAEAq5G,GAAA,IAAAA,EAAA,GACAC,EAAA,IAAAA,EAAA,GAEAlI,EAAA97G,IAAA,OAAA+jH,EAAA,MACAjI,EAAA97G,IAAA,MAAAgkH,EAAA,MACAlI,EAAA97G,IAAA,QAAA6jH,EAAAn8G,MAAA,MACAo0G,EAAA97G,IAAA,SAAA6jH,EAAAn5G,OAAA,KAEA,IAAAonB,GAAAixF,EAAA/wF,QAAAF,KACAjU,EAAAklG,EAAA/wF,QAAAnU,IAEAomG,EAAAjB,EAAA,4BAAA,kBAEAnB,GAAAtD,gBAEAsD,EAAAoC,GAAApkH,EAAAiyB,EAAAjU,GAGAikG,EAAAvD,iBAEAzsF,GAAAgxF,EAAAoB,kBAAArkH,EAEAgiH,EAAAtD,iBACAzsF,GAAAmxF,EAAAnxF,MAGAgwF,EAAAmC,GAAApkH,EAAAiyB,EAAAjU,IAGAkkG,EAAAxD,gBAEAwD,EAAAkC,GAAApkH,EAAAiyB,EAAAjU,GAGA2kB,EAAAqB,SAAA,mBAAA,OAAA,iBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAI,oBAGA,QAAAogF,GAAAJ,EAAAC,EAAAC,GAEA,GAAAgB,IACAryF,KAAAjpB,KAAAC,IAAAm6G,EAAAlxF,OAAAD,KAAAoxF,EAAAnxF,OAAAD,KAAAqxF,EAAApxF,OAAAD,MACAyyD,MAAA17E,KAAAC,IAAAm6G,EAAAlxF,OAAAwyD,MAAA2+B,EAAAnxF,OAAAwyD,MAAA4+B,EAAApxF,OAAAwyD,OACA1mE,IAAAhV,KAAAC,IAAAm6G,EAAAlxF,OAAAlU,IAAAqlG,EAAAnxF,OAAAlU,IAAAslG,EAAApxF,OAAAlU,KACA68E,OAAA7xF,KAAAC,IAAAm6G,EAAAlxF,OAAA2oE,OAAAwoB,EAAAnxF,OAAA2oE,OAAAyoB,EAAApxF,OAAA2oE,SAGA0pB,GACAtyF,KAAAjpB,KAAAC,IAAAm6G,EAAAhxF,OAAAH,KAAAoxF,EAAAjxF,OAAAH,KAAAqxF,EAAAlxF,OAAAH,MACAyyD,MAAA17E,KAAAC,IAAAm6G,EAAAhxF,OAAAsyD,MAAA2+B,EAAAjxF,OAAAsyD,MAAA4+B,EAAAlxF,OAAAsyD,OACA1mE,IAAAhV,KAAAC,IAAAm6G,EAAAhxF,OAAApU,IAAAqlG,EAAAjxF,OAAApU,IAAAslG,EAAAlxF,OAAApU,KACA68E,OAAA7xF,KAAAC,IAAAm6G,EAAAhxF,OAAAyoE,OAAAwoB,EAAAjxF,OAAAyoE,OAAAyoB,EAAAlxF,OAAAyoE,SAGA2pB,GACAvyF,KAAAjpB,KAAAC,IAAAm6G,EAAAjxF,QAAAF,KAAAoxF,EAAAlxF,QAAAF,KAAAqxF,EAAAnxF,QAAAF,MACAyyD,MAAA17E,KAAAC,IAAAm6G,EAAAjxF,QAAAuyD,MAAA2+B,EAAAlxF,QAAAuyD,MAAA4+B,EAAAnxF,QAAAuyD,OACA1mE,IAAAhV,KAAAC,IAAAm6G,EAAAjxF,QAAAnU,IAAAqlG,EAAAlxF,QAAAnU,IAAAslG,EAAAnxF,QAAAnU,KACA68E,OAAA7xF,KAAAC,IAAAm6G,EAAAjxF,QAAA0oE,OAAAwoB,EAAAlxF,QAAA0oE,OAAAyoB,EAAAnxF,QAAA0oE,QAGA,OAAA,IAAA+C,GAAA2D,QAAA+iB,EAAAC,EAAAC,GAIA,QAAA7B,KAEAM,KAEAf,EAAAxD,gBACAuE,EAAAp7G,MAAAq6G,EAAAlF,aACAiG,EAAAp4G,OAAAq3G,EAAAjF,cACAgG,EAAAoB,kBAAA,GAEArC,EAAAtD,gBAAAuD,EAAAvD,eACAsD,EAAA/E,eAAAgF,EAAAhF,eACAgG,EAAAp7G,MAAAm6G,EAAAhF,aAAAiF,EAAAjF,aACAiG,EAAAp4G,OAAAm3G,EAAA/E,cACAgG,EAAAoB,kBAAArC,EAAAhF,eAIAiG,EAAAp7G,MAAAm6G,EAAAhF,aAAAiF,EAAAjF,cAAAgF,EAAA/E,cAAAgF,EAAAhF,eACAgG,EAAAp4G,OAAAm3G,EAAA/E,cACAgG,EAAAoB,kBAAArC,EAAAhF,cAGAgF,EAAAtD,gBACAuE,EAAAp7G,MAAA,EAAAm6G,EAAAhF,aACAiG,EAAAp4G,OAAAm3G,EAAA/E,cACAgG,EAAAoB,kBAAArC,EAAAhF,cAEAiF,EAAAvD,gBACAuE,EAAAp7G,MAAA,EAAAo6G,EAAAjF,aACAiG,EAAAp4G,OAAAo3G,EAAAhF,cACAgG,EAAAoB,kBAAApC,EAAAjF,cAGAiG,MAAA3mH,GAKA,QAAA8lH,KACAc,EAAAtlB,EAAA2D,QAAAlC,YAAA4c,GA8CA,QAAAuG,GAAAlB,EAAA30B,EAAA7rF,GAEA,GAAAyhH,GAAAnhF,EAAAh0B,UAqCA,OAnCAu/E,IAUA20B,EAAA56G,SAGAu1G,EAAAztF,OAAA8yF,EAAA/rB,SAAA7sB,WACA5nE,EAAA+gH,gBAAA,EAGAP,EAAA1B,cAAAjzB,EAAA,SAAAxyD,EAAAsnE,EAAAW,EAAAqiB,EAAA3jH,GAEAq5B,GAAAsqF,IAGAnD,EAAArE,eAAAqE,EAAAtE,cACAv4E,QAAAjzB,MAAA,oBAAA4wF,EAAAvgF,KAAA,gCAGA8gB,EAAAqB,SAAA,0BAAA,OAAA,mBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAQ,wBAAAi+D,EAAAW,IAGAmgB,EAAAr8F,WAEAplB,KA/BAwgH,EAAA5C,gBACA4C,EAAA56G,SAGA67G,EAAAr8F,WA8BAq8F,EAAAv0G,UAmCA,QAAA02G,KAEA,GAAAC,KAGAA,GADAhK,EAAAiK,iBACA5C,EAAAE,EAAAD,IAGAA,EAAAC,EAAAF,EAKA,KAAA,GAFA6C,MAEA7sH,EAAA,EAAAywB,EAAAk8F,EAAAlsH,OAAAT,EAAAywB,EAAAzwB,IACA2sH,EAAA3sH,GAAA0mH,gBACAmG,EAAAprH,KAAAkrH,EAAA3sH,GAIA,OAAA6sH,GAQA,QAAAC,GAAA7E,EAAAr8G,GAGA,IAAA,GAFAihH,GAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CAEA,GAAAq3B,GAAAw1F,EAAA7sH,EACA,IAAAq3B,EAAAwvF,mBAAAh1C,OAAAo2C,EACA,MAAAr8G,GAAAyrB,GAIAoV,QAAAjzB,MAAA,4BAhmBA4vB,EAAAh8B,OAAAlI,KAAA,GAAAwlC,GAEA,IAEAu5E,GAMA6H,EARA39G,EAAAjJ,KAGA2+G,EAAAz6E,EAAA/iC,EAAA8jG,WACAwY,EAAAt8G,EAAA45F,MACAkqB,EAAA9jH,EAAA0mH,WAEAlB,GADAxlH,EAAAs+G,WACAt+G,EAAAszB,OAAAjxB,MAAA,YAGAq6G,GADA18G,EAAAo+G,iBACAngH,IAEA0lH,EAAAZ,EAAA,yBACAa,EAAAb,EAAA,0BACAc,EAAAd,EAAA,2BAEA4D,IACAA,GAAAvrH,KAAAuoH,GACAgD,EAAAvrH,KAAAwoH,GACA+C,EAAAvrH,KAAAyoH,EAEA,IACAgB,GACAD,EAFAzB,EAAA,GAAAxoB,GAAA2hB,GAAA,GAGAgH,GAAA,EACAC,GAAA,CA8BA1kH,MAAAq9F,aAAA,WACA,OAAA,GAGAr9F,KAAA+nH,QAAA,SAAAtzF,GACAkyF,EAAAlyF,EAEAixF,GAAA,IAGA1lH,KAAAq4F,OAAA,WAEA,GAAAH,GAAAwI,EAAA4E,aAAA,sBAyBA,OAvBAyZ,GAAA76E,EAAAg0D,GAEAwI,EAAAkG,cAAAmY,EAAA,gBAEAA,EAAA97G,IAAA,WAAA,UAeA07G,EAAArtF,OAAAytF,GAEA91G,EAAA++G,cAEAhoH,MAGAA,KAAAwJ,OAAA,WAEAu1G,EAAAv1G,UAIAxJ,KAAA4hH,gBAAA,SAAAllF,EAAAmlF,GAEAhE,EAAAnhF,EAEA4nF,EAAAxnB,mBAAA,GAAA4D,EAAAsE,sBAAA2Z,EAAA0F,IAAAxG,GAGA,KAAA,GADA8J,GAAAH,IACA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IACA6sH,EAAA7sH,GAAA8mH,gBAAAllF,EAAAmlF,GA4DA,IAAAV,GAAA,SAAAlgH,EAAAmgH,GAGA0D,GAAAA,EAAA3D,oBAAAlgH,EAAAmgH,GACA2D,GAAAA,EAAA5D,oBAAAlgH,EAAAmgH,GACA4D,GAAAA,EAAA7D,oBAAAlgH,EAAAmgH,GASAphH,MAAAgoH,YAAA,WAEAtnB,EAAAkF,UAAAqf,EAAAn6G,YAAAi0G,EAAAl+F,UACAqkG,IAEAO,IACAC,KAGA1lH,KAAAk9G,gBAAA,WAIA,IAAA,GAFAyK,GAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IACA6sH,EAAA7sH,GAAAoiH,mBAqCAl9G,KAAAioH,iBAAA,WAKA,GAAArC,GAAAvB,GACA,IAAAuB,EAAA,CAIA,GAAA7pB,GAAA,GAAA2E,EAAAsE,sBAAA2Z,EAAAiH,EAAA/H,EAEA,IAAA8H,EAAAC,EAAA7pB,GAAA,CACAuoB,EAAAxnB,mBAAAf,EACA,IAAAyoB,GAAA,GAAAP,GAAA2B,EAAA38G,EACAA,GAAAi/G,SAAA1D,OAGAkB,IAAA,KAYA1lH,KAAAmoH,aAAA,WACA,MAAAvB,IA2LA5mH,KAAAkoH,SAAA,SAAA1D,EAAAvjH,GAEA,GAAAujH,EAAAtf,UAAA,CAIA,GAAAjJ,GAAAqoB,EAAAroB,SACAC,EAAAooB,EAAApoB,UACAC,EAAAmoB,EAAAnoB,WAEAJ,EAAA,GAAA2E,EAAAsE,sBAAA2Z,EAAA6F,EAAAtf,UAAA2Y,EACAyG,GAAAxnB,mBAAAf,GACAuoB,EAAAtnB,SAAAwnB,EAAAtf,UAEA,IAAAkc,GAAAnlB,IAAAqoB,EAAAroB,UAAAC,IAAAooB,EAAApoB,WAAAC,IAAAmoB,EAAAnoB,UAEA,QAAAl7F,OAAA,KAAAA,IAAAA,EAAA,GAEAkgH,EAAA,IAAAlgH,EAAA,EAAAqjH,EAAAvpB,MAAAE,gBAAA,IAAAh6F,EAAA,EAAA,EAAAA,EAAAmgH,GAEAmD,EAAAC,EAAArB,UAAAqB,KAIAxkH,KAAAooH,aAAA,SAAAjF,GAEAmB,EAAA7mB,WAEA0jB,EAAAmD,EAAAvpB,MAAAE,gBAAA,EAAA,GAAA,GAEAspB,EAAApB,MAAA/jH,KAGAY,KAAAqoH,aAAA,SAAAlF,GAEAmB,EAAA/mB,WAEA4jB,EAAAmD,EAAAvpB,MAAAE,gBAAA,EAAA,GAAA,GAEAspB,EAAApB,MAAA/jH,KA6CAY,KAAA83G,kBAAA,WAMA,IAAA,GAJArN,GAAA,GAAAuZ,GAAAvG,GAAA,GAEA6K,GAAAhE,EAAAroB,SAAAqoB,EAAApoB,UAAAooB,EAAAnoB,YAEArhG,EAAA,EAAAA,EAAAwtH,EAAA/sH,OAAAT,IAAA,CAEA,GAAAytH,GAAAD,EAAAxtH,EAEAytH,IACA9d,EAAArP,YAAA,EAAA,EAAAmtB,EAAA57C,MAAA47C,EAAAjrH,OAIA,MAAAmtG,IAGAzqG,KAAAwoH,oBAAA,WAEA,GAAAb,GAAAH,IACAiB,EAAAzoH,KAAA0oH,qBAEA,OAAAf,GAAApsH,OAAA,EACAosH,EAAA,GAAAzU,qBACAuV,EAAAltH,OAAA,EACA,GAAAo/F,GAAA36F,KAAA0oH,sBAAA,GAAA/7C,MAAA,UADA,IA6BA3sE,KAAA0oH,oBAAA,WAEA,MAAApE,GAAA9mB,cAkBAx9F,KAAA03G,WAAA,SAAAqL,EAAAt8G,GAEA,MAAAmhH,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAAulF,WAAAqL,EAAAt8G,MAIAzG,KAAAsY,eAAA,SAAAyqG,EAAApkH,GAEA,MAAAipH,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAA7Z,eAAAyqG,EAAApkH,MAKAqB,KAAA2zG,gBAAA,SAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,GAEA,MAAA27C,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAAwhF,gBAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,MAIAjsE,KAAAq1G,mCAAA,WAIA,IAAA,GAFAsS,GAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CACA,GAAA6wB,GAAAg8F,EAAA7sH,GAAAu6G,oCACA,IAAA1pF,EAAA,MAAAA,KAMA3rB,KAAA2oH,wBAAA,SAAAC,EAAAp9C,EAAA23C,KAMAnjH,KAAAy3G,YAAA,SAAAsL,EAAAt8G,GAEA,MAAAmhH,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAAslF,YAAAsL,EAAAt8G,MAIAzG,KAAA21G,iBAAA,SAAAvT,GAGA,OAAA,GAGApiG,KAAA41G,6BAAA,SAAAC,EAAAgT,GAMA,IAAA,GAJAvoH,MAEAqnH,EAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAEAwF,EAAA/D,KAAAorH,EAAA7sH,GAAAk7G,yBAAAH,EAAAgT,GAGA,OAAAvoH,IAGAN,KAAA+1G,mBAAA,SAAAtvG,EAAAoiH,GAMA,IAAA,GAJAvoH,MAEAqnH,EAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAEA+tH,EACAvoH,EAAA/D,MAAA+D,SAAAqnH,EAAA7sH,GAAA28G,YAAAkQ,EAAA7sH,GAAA6mH,mBAAAh1C,MAAAlmE,GAAAy+F,UAAAyiB,EAAA7sH,GAAA6mH,qBAEArhH,EAAA/D,KAAAorH,EAAA7sH,GAAA28G,YAAAkQ,EAAA7sH,GAAA6mH,mBAAAh1C,MAAAlmE,GAIA,OAAAnG,IAGAN,KAAA21G,iBAAA,SAAAvT,GAGA,OAAA,GAGApiG,KAAA8oH,6BAAA,SAAA/F,EAAA3S,GAEA,MAAAwX,GAAA7E,EAAA,SAAA5wF,GAEA,OAAA,KAIAnyB,KAAAyzG,wBAAA,SAAAsP,EAAA3S,GAEA,MAAAwX,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAAshF,wBAAAsP,EAAA3S,MAKApwG,KAAAkzG,mBAAA,WACA,GAAAyU,GAAAH,GACA,IAAAG,EAAApsH,OAAA,EACA,MAAAosH,GAAA,GAAAzU,sBAKAlzG,KAAAmzG,kBAAA,WACA,GAAAwU,GAAAH,GACA,IAAAG,EAAApsH,OAAA,EACA,MAAAosH,GAAAA,EAAApsH,OAAA,GAAA43G,qBAKAnzG,KAAA+oH,yBAAA,SAAA1V,EAAAC,EAAAC,GACA,GAAAoU,GAAAH,GACA,IAAAlU,GAAAD,EAAA1mC,QAAA2mC,EAAA3mC,MAAA,CAEA,IAAA,GADAq8C,MACAluH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CACA,GAAAq3B,GAAAw1F,EAAA7sH,EACA,IAAAq3B,EAAAwvF,mBAAAh1C,QAAA0mC,EAAA1mC,MAAA,CACA,GAAA/2D,GAAAuc,EAAAghF,mBACA6V,GAAAzsH,KAAA41B,EAAAihF,wBAAAC,EAAAzY,WAAAhlF,EAAAglF,WAAA2Y,QACA,IAAAphF,EAAAwvF,mBAAAh1C,QAAA2mC,EAAA3mC,MAAA,CACA,GAAAlkE,GAAA0pB,EAAA+gF,oBACA8V,GAAAzsH,KAAA41B,EAAAihF,wBAAA3qG,EAAAmyF,WAAA0Y,EAAA1Y,WAAA2Y,KAGA,MAAAyV,GAGA,OAAAhpH,KAAAozG,wBAAAC,EAAAC,EAAAC,KAGAvzG,KAAAozG,wBAAA,SAAAC,EAAAC,EAAAC,GACA,GAAAoU,GAAAH,GACA,IAAAlU,GAAAD,EAAA1mC,QAAA2mC,EAAA3mC,MAEA,WADAplC,SAAAjzB,MAAA,mFAGA,KAAA,GAAAxZ,GAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CAEA,GAAAq3B,GAAAw1F,EAAA7sH,EACA,IAAAq3B,EAAAwvF,mBAAAh1C,QAAA0mC,EAAA1mC,MACA,MAAAx6C,GAAAihF,wBAAAC,EAAAzY,WAAA0Y,EAAAA,EAAA1Y,WAAA,KAAA2Y,KAOAvzG,KAAA+zG,wBAAA,SAAA90B,GAIA,IAAA,GAFA0oC,GAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CAEA,GAAAq3B,GAAAw1F,EAAA7sH,EACA,IAAAq3B,EAAA+wF,yBAAA,GAAA3e,QAAA,GAAAj6F,kBAAA20E,EAAAC,eAAAl5E,cACA,MAAAmsB,GAAA4hF,wBAAA90B,KAOAj/E,KAAAuyG,uBAAA,SAAAppE,EAAA8W,EAAAuyD,EAAAuQ,GACA,IAAAA,EACA,KAAA,IAAA5lH,OAAA,yFAEA,OAAAyqH,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAAogF,uBAAAppE,EAAA8W,EAAAuyD,MAIAxyG,KAAA6yG,sBAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAA8P,GACA,IAAAA,EACA,KAAA,IAAA5lH,OAAA,wFAEA,OAAAyqH,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAA0gF,sBAAAC,EAAAC,EAAAC,EAAAC,MAIAjzG,KAAA2vG,iBAAA,SAAAnkC,GAIA,IAAA,GAFAm8C,GAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CAEA,GAAAq3B,GAAAw1F,EAAA7sH,EACA,IAAAq3B,EAAA+wF,yBAAA,GAAA3e,QAAA,GAAAj6F,kBAAAkhE,EAAAxlE,cACA,MAAAmsB,GAAAw9E,iBAAAnkC,KAOAxrE,KAAAm0G,oBAAA,SAAAhrE,EAAA8W,EAAA8iE,GACA,IAAAA,EACA,KAAA,IAAA5lH,OAAA,sFAEA,OAAAyqH,GAAA7E,EAAA,SAAA5wF,GACA,MAAAA,GAAAgiF,oBAAAhrE,EAAA8W,MAIAjgD,KAAA62G,YAAA,WACA,MAAA2Q,KAAA,GAAA3Q,eAGA72G,KAAA82G,UAAA,WACA,MAAA0Q,KAAA,GAAA1Q,aAGA92G,KAAA60G,yBAAA,SAAArpC,GAGA,IAAA,GAFAm8C,GAAAH,IAEA1sH,EAAA,EAAAywB,EAAAo8F,EAAApsH,OAAAT,EAAAywB,EAAAzwB,IAAA,CAEA,GAAAq3B,GAAAw1F,EAAA7sH,EACA,IAAAq3B,EAAA+wF,yBAAA,GAAA3e,QAAA,GAAAj6F,kBAAAkhE,EAAAxlE,cACA,MAAAmsB,GAAA0iF,yBAAArpC,QCr1BA5xE,OAAA,yCAAA,SAAA,aAAA,SAAA,SAAAsqC,EAAA1iC,EAAAs3D,GAgHA,MA3GA,YAEA,GAAA7vD,GAAAjJ,KACAipH,IAGAjpH,MAAAkpH,uBAAA,SAAAniF,EAAAjoC,EAAA8E,OAEAxE,IAAA6pH,EAAAliF,KACAkiF,EAAAliF,OAGAkiF,EAAAliF,GAAAxqC,MAAAuC,SAAAA,EAAA8E,QAAAA,KAGA5D,KAAAmpH,mBAAA,SAAA/+G,GAEA5I,EAAAH,KAAA4nH,EAAA,SAAApsH,EAAAoF,GACAiiC,EAAA95B,EAAAo8F,eAAA1/F,IAAA7E,EACA,KAAA,GAAAnH,GAAA,EAAAywB,EAAA1uB,EAAAtB,OAAAT,EAAAywB,EAAAzwB,IACAopC,EAAA95B,EAAAo8F,eAAAjgG,GAAAtE,EAAApF,EAAA/B,GAAAgE,SAAAjC,EAAA/B,GAAA8I,YAKA5D,KAAA6iH,WAAA,SAAAz4G,EAAA5C,EAAA1I,EAAA8E,EAAAwlH,GAEAh/G,EAAAi/G,UACA,mBAAA9kG,YACAna,EAAAi/G,QAAA9kG,SAAAI,KAAA,IAEA4iB,QAAAjzB,MAAA,sBAAAlK,EAAAi/G,UAGA9hF,QAAAE,IAAA,wBACAF,QAAAE,IAAAjgC,GACA+/B,QAAAE,IAAA,6BACAF,QAAAE,IAAAr9B,EAAAi/G,SAEAj/G,EAAAwO,aAAA,eAAAxO,EAAAi/G,SACAj/G,EAAAwO,aAAA,WAAApR,EAEA,IAAA8hH,GAAA,GAAAxwD,GAAAtxD,GAAAyxD,WAAA7uD,EAAAi/G,SAAA14E,OAAA,IAAArsB,KAAA,IAAAvP,UAEA9L,GAAAsgH,mBAAAn/G,EAAAg/G,EAAAE,EAAA,WAEAxqH,EAAA5E,KAAA0J,GAAA,EAAAwlH,MAIAppH,KAAAupH,mBAAA,SAAAn/G,EAAAg/G,EAAAI,EAAA1qH,GAEAsL,EAAAs2B,OAAA,WAEA,GAAA93B,GAAAwB,EAAAE,iBAAAF,EAAAo8F,cAAA3mG,QACAqkC,GAAA,MAAAt7B,GAAArC,GAAA,OAAA,WACAghC,QAAAE,IAAA,gBAGAx+B,EAAAkgH,mBAAA/+G,EAEA,IAAAq/G,GAAAr/G,EAAAo8F,cAAAkjB,OACA,IAAAD,EAAA,CAEAliF,QAAAE,IAAA,oBAAAgiF,EAAAE,WAAA,OAAAF,EAAAG,YAAA,OAAAH,EAAA/jF,QAEA,IAAAmkF,IAAA,CAGAJ,GAAAK,IAAAC,QAAAC,YACAH,GAAA,GAKAJ,EAAAK,IAAAC,QAAAE,WACAJ,GAAA,GAKA9pH,OAAAmnC,UAAAgjF,UAAA3sH,QAAA,QAAA,IACAssH,GAAA,GAGAJ,EAAAK,IAAAK,QAAAC,cAAA,EAAAC,aAAA,OAAAC,wBAAA,EAAAC,KAAAV,aAAAA,IAGA,IAAAW,GAAAhpH,EAAA4mB,KAAAtpB,EACA,KACA2qH,EAAAK,IAAAW,MAAAD,GACA,MAAAlkH,GACAihC,QAAAjzB,MAAA,iBACAxV,SAKAA,MAIAsL,EAAAwO,aAAA,MAAA4wG,OC/GA5vH,OAAA,kDAAA,SAAA,aAAA,iBAAA,SAAA,SAAAsqC,EAAAw8D,EAAA76B,EAAA/M,GAyMA,MAnMA,UAAA6/B,GAIA,QAAA+xB,GAAAC,GAEA,GAAAvmB,GAAAumB,EAAAptH,QAAA,KACAqtH,EAAAD,EAAAptH,QAAA,KACAstH,EAAAF,EAAAptH,QAAA,IAEA,KAAA,GAAAqtH,EAQA,OAJA,GAAAC,IACAA,EAAAF,EAAApvH,SAKAuvH,aAAAH,EAAAntH,UAAA4mG,EAAA,EAAAwmB,GACAvH,WAAAsH,EAAAntH,UAAAotH,EAAA,EAAAC,IAIA,QAAAE,GAAAC,EAAA9lB,GAEA,GAAA+lB,GAAAtyB,EAAA0F,UAAAqf,mBAAAxY,EAAAvgF,KAIA,OAFAqmG,GAAA/xD,WAAAgyD,GAKA,QAAAC,GAAAF,EAAA9lB,GAEA,GAAAimB,GAAAJ,EAAAC,EAAA9lB,EAEA,KAAAimB,EAEA,WADA5jF,SAAAjzB,MAAA,qBAAA02G,EAAArmG,OAIA,IAAAgmG,GAAAK,EAAAjmH,WAEAqmH,EAAAD,EAAAp2G,UAEAq2G,GAAA1qB,EAAAwD,iBAAAknB,EAAA,IAAAT,GAEAU,EAAAD,EAAA,SAAAE,GAEA,GAAAA,EAAA,CAIA,GAAAz+B,GAAA,GAAA9sF,QAAAi7B,UACAuwF,EAAA1+B,EAAA5xD,gBAAAqwF,EAAA,YACAhtB,EAAAosB,EAAAC,EAEA,KAAArsB,EAEA,WADA/2D,SAAAI,KAAA,uBAAAgjF,EAIA,IAAAa,GAAA3lD,EAAAunB,YAAA5Q,kBAAA,WAAA8hB,EAAAwsB,aAAA,IAAAS,EAEA,IAAAC,EAAA,CAEA,GAAAC,GAAA9yB,EAAAoC,QAAA2wB,cAAAF,EACAC,GAEA9yB,EAAAgzB,wBAAAF,EAAA9+C,MAAA2xB,EAAA+kB,WAAAp6G,GAGAs+B,QAAAI,KAAA,sCAAA6jF,OAKAjkF,SAAAI,KAAA,oCAAAgjF,EAAA,WAOA,QAAAU,GAAA5wD,EAAA37D,GAGAolC,EAAArH,MAMAf,QAAA,IAAA2+B,EAAAl9D,QAAA,QACAs+B,IAAA4+B,EACA1oD,SAAA,OACAkqB,OAAA,EACAgB,QAAA,SAAAntB,GACAhR,EAAAgR,IAEAwE,MAAA,SAAAyrB,EAAAjD,EAAA8uF,GACArkF,QAAAjzB,MAAA,4BAAAmmD,GACAlzB,QAAAjzB,MAAAwoB,GACAyK,QAAAjzB,MAAAs3G,GACA9sH,OAMA,QAAA+sH,GAAAjtH,GAEA,GAAAktH,GAAAltH,EAAA0kE,UACA,OAAAwoD,IAAAprB,EAAAsD,SAAA8nB,EAAA,QAGA,QAAAC,GAAAf,EAAA9lB,GAEA,GAEAv4B,GAFAm/C,EAAAd,EAAA1nD,UAKA,IAAAwoD,EAAA,CACA,GAAAE,GAAA,GAAAlzD,GAAAkyD,EAAA9lB,EAAAvgF,MAEAi4C,EAAAJ,mBAAAwvD,EAAApvD,YAEA6uD,EAAA9yB,EAAAoC,QAAA2wB,cAAA9uD,EAEA,KAAA6uD,EAEA,WADAlkF,SAAAjzB,MAAA,wBAAAsoD,EAAA,aAIA+P,GAAA8+C,EAAA9+C,UAGAA,GAAAu4B,EAAAv4B,KAGA,IAAAs/C,GAAAjB,EAAAjmH,UAEA4zF,GAAAuzB,uBAAAv/C,EAAAs/C,EAAAhjH,GA/IA,GAAAA,GAAAjJ,IAmJAA,MAAAmsH,oBAAA,SAAA5nB,EAAAW,GAEA,GAAA2X,GAAAtY,EAAA,GAAAj6F,eAEA45B,GAAA,IAAA24E,GAAA5sF,MAAA,SAAAm8F,GAEA,GAAAznG,EAGAA,GAFAynG,EAAAh+F,cAAArP,WAAA,cAEAqtG,EAAAh+F,cAAArP,WAAA,cAAAliB,MAGAuvH,EAAAh+F,cAAArP,WAAA,KAAAliB,KAGA,IAAAwvH,IAAA,EACArB,EAAA,GAAAlyD,GAAAn0C,EACAqmG,GAAAvkG,GAAA,YAIAolG,EAAAb,IACAE,EAAAF,EAAA9lB,GACAmnB,GAAA,IAGAN,EAAAf,EAAA9lB,GACAmnB,GAAA,IAKAtsH,OAAAwgC,KAAA5b,EAAA,UACA0nG,GAAA,GAGAA,IACAD,EAAA79F,iBACA69F,EAAA59F,yBC9LA50B,OAAA,0CAAA,SAAA,cAAA,SAAAsqC,EAAAw8D,GAwOA,MA9NA,UAAA4rB,GAiMA,QAAAC,GAAAj+B,EAAA57D,EAAA4gE,GAEA,IAAA,GAAAx4F,GAAAwzF,EAAA/iE,EAAAmH,EAAAzL,SAAA1rB,OACAT,GAAA,GAAAA,EAAAywB,EACAzwB,GAAAw4F,GAAA,EAAA,EAAA,CAEA,GAAA3qF,GAAA+pB,EAAAzL,SAAAnsB,EACA,IAAA,OAAA6N,EAAA/H,SACA,MAAA+H,EAMA,IAFAA,EAAA4jH,EAAAj5B,EAAA3qF,EAAAse,SAAA1rB,OAAA,EAAA,EAAAoN,EAAA2qF,GAGA,MAAA3qF,GAIA,GAAA+pB,EAAA7R,OACA,MAAA0rG,GAAA75F,EAAAp1B,OAAAg2F,GAAA,EAAA,GAAA5gE,EAAA7R,OAAAyyE,GA7MAtzF,KAAAssH,KAAAA,EASAtsH,KAAAwsH,eAAAptH,GASAY,KAAA4lB,MAAA,WACA5lB,KAAAwsH,WAAAD,EAAA,EAAAvsH,KAAAssH,MAAA,IAiCAtsH,KAAAysH,WAAA,SAAA9tH,GAEA,IAAAqB,KAAAwsH,WAGA,WADAjlF,SAAAC,MAAA,+BAIA,KAAA7oC,EAEA,OAAA,CAGA,MAAAqB,KAAAwsH,YACA,CACA,GAAAxsH,KAAAwsH,WAAAhhD,QACA,CACA,GAAA7sE,IAAAqB,KAAAwsH,WAAA11G,KAAA41G,cAEA,OAAA,CAKA,KADA,GAAA7rG,GAAA7gB,KAAAwsH,WAAAhhD,QAAA7hE,WACAkX,GACA,CACA,GAAAA,EAAAliB,IAAAkiB,EAAAliB,IAAAA,EAEA,OAAA,CAGAkiB,GAAAA,EAAAlX,WAMA,GAAAgjH,GAAAzoF,EAAA,IAAAw8D,EAAAmH,qBAAAlpG,GAAAqB,KAAAwsH,WAAAhhD,QACA,IAAAmhD,GAAAA,EAAApxH,QAAAoxH,EAAA,GAEA,OAAA,EAIA3sH,KAAAknB,OAGA,OAAA,GASAlnB,KAAAknB,KAAA,WAEA,IAAAlnB,KAAAwsH,WAEA,WADAjlF,SAAAC,MAAA,+BAIAxnC,MAAAwsH,WAAAD,EAAAvsH,KAAAwsH,WAAAlvH,MAAA,EAAA0C,KAAAwsH,WAAA3rG,QAAA,IASA7gB,KAAAszF,SAAA,WAEA,IAAAtzF,KAAAwsH,WAEA,WADAjlF,SAAAC,MAAA,+BAIAxnC,MAAAwsH,WAAAD,EAAAvsH,KAAAwsH,WAAAlvH,MAAA,EAAA0C,KAAAwsH,WAAA3rG,QAAA,IAUA7gB,KAAA4sH,OAAA,WAEA,MAAA5sH,MAAAwsH,YAKAD,EAAAvsH,KAAAwsH,WAAAlvH,MAAA,EAAA0C,KAAAwsH,WAAA3rG,QAAA,OAJA0mB,SAAAC,MAAA,iCAoBAxnC,KAAA6sH,QAAA,SAAAC,GAEA,KAAA9sH,KAAAwsH,YACAxsH,KAAAwsH,YAAAM,GAIA9sH,KAAAknB,QAwCAlnB,KAAA4lB,WCxOAhsB,OAAA,uDAAA,SAAA,aAAA,aAAA,0BAAA,kBAAA,SAAAsqC,EAAA1iC,EAAAk/F,EAAAqsB,EAAAlnD,GAmaA,MA5ZA,UAAAmnD,EAAAC,GAEAjtH,KAAAktH,uBAAA,SAAA3oB,EAAAW,EAAAioB,GAEA,GAAAC,GAAA7oB,EAAA,GAAAj6F,gBAAAD,eAEA,IAAA66F,EAAAtG,kBAAA,IAAAouB,EAAAK,YAAA9xH,OAAA,CAIA,GAAA+xH,GAAAppF,EAAA,OAAAkpF,EACA,IAAA,GAAAE,EAAA/xH,OACAgsC,QAAAjzB,MAAA,kBAEA,CAEA,GADAg5G,EAAAprH,KAAA,qBAEAqlC,QAAAjzB,MAAA,wCAEA,CACAg5G,EAAAprH,KAAA,qBAAAqrH,KAAA,QAEA,IAAAC,GAAA,SAAA3mH,GAIA,GAAAlG,GAAAujC,EAAAlkC,MAAA,EAGA,MAFAW,EAAAkG,EAAA+L,QAKA,MADAq6G,GAAAQ,aACA,CAKA,IAAAvrH,OAAA9C,GACAusB,EAAAhrB,EAEA+sH,GAAA,CAMA,KALA,MAAA/hG,EAAA3nB,SAAA5B,gBAEAsrH,GAAA,KAGAxrH,EAAAgiC,EAAAvY,GAAAzpB,KAAA,uBAEA,MAAAypB,EAAA3nB,SAAA5B,gBAEAsrH,GAAA,GAEA/hG,EAAAA,EAAAhiB,cAOA,GAAAzH,IAAAA,EAAA4qH,KAAA5qH,EAAAyrH,MACA,CAMA,IAAAR,EAAAzT,yBAIA,MAFAnyE,SAAAE,IAAA,qBACAwlF,EAAAQ,aACA,CAGA,IAAAC,EAIA,MAFAnmF,SAAAE,IAAA,mBACAwlF,EAAAQ,aACA,CAGA,IAAAX,GAAA5qH,EAAA4qH,IAAA5qH,EAAA4qH,IAAA5qH,EAAAyrH,KAAA,EAEA,OAAAhiG,IAAAA,GAAAhrB,GAAA,SAAAgrB,EAAA3nB,SAAA5B,eAAA0qH,IAAAA,EAAAc,UAAAjvH,IAGAsuH,EAAAQ,aACA,IAGAR,EAAAY,YAAAf,IACA,GAIA,GAAAgB,GAAA5pF,EAAAvjC,GAAA4hB,KAAA,mBAKA,IAJAurG,IAEAA,EAAA5pF,EAAAvjC,GAAA4hB,KAAA,mBAEAurG,EACA,CACAvmF,QAAAC,MAAA,sBAAAsmF,EAEA,IAAAC,GAAAd,EAAAc,WACA,IAAA,UAAAD,IAAAC,GACA,SAAAD,GAAAC,GACA,cAAAD,EAGA,MADAb,GAAAe,sBACA,EAMA,MADAf,GAAAQ,aACA,GAGAQ,EAAAzsH,EAAAoyF,SAAA45B,EAAA,IAEA,iBAAA3tH,UAAAwK,iBAEAijH,EAAA,GAAAvsG,iBAAA,aAAAktG,GAAA,GAEAX,EAAA,GAAAvsG,iBAAA,YAAAktG,GAAA,IAOA,GAAA3B,GAAAU,EAAAkB,mBAAAhpB,EACA,KAAAonB,EAGA,WADA/kF,SAAAjzB,MAAA,aAAA4wF,EAAAv4B,MAAA,QAAAu4B,EAAAtG,iBAIA,IAAAuvB,GAAA,SAAA3pG,GAEA,GAAAA,EAAA,CAEA,GAAAA,EAAA5jB,UAAA,QAAA4jB,EAAA5jB,UAOA4jB,EAAA4pG,QACA,CACA,GAAAlwH,GAAAsmB,EAAA4pG,QAAAjzH,MAAA,KACAqqB,EAAAtnB,EAAA,GACAmwH,EAAA,IAAAnwH,EAAA3C,OAAA2C,EAAA,GAAA,EAoBA,IAAAsnB,GAAA6oG,EACA,CACA3tB,EAAAiD,kBAAAn+E,EAAA8mG,EAAA3nG,QACAugF,EAAAvgF,OAGAH,EAAAgnD,QAAA+4B,EAAA,GAAAj6F,gBAAAgO,eAAA+1G,GAEA7pG,EAAAgnD,SAEAjkC,QAAAjzB,MAAA,yBAAAkQ,EAAA4pG,WAcA,GAAA5pG,EAAAyC,UAAAzC,EAAAyC,SAAA1rB,OAEA,IAAA,GAAAT,GAAA,EAAAA,EAAA0pB,EAAAyC,SAAA1rB,OAAAT,IACA,CACA,GAAAkxF,GAAAxnE,EAAAyC,SAAAnsB,EACAqzH,GAAAniC,KAIAmiC,GAAA7B,EASA,KALA,GAAA1lE,GAAA,GAAAmmE,GAAAT,GAKA1lE,EAAA4lE,YAAA,CACA5lE,EAAA4lE,WAAAhhD,YAAApsE,GACAwnD,EAAA4lE,WAAAluB,QAAAl/F,EAOA,IAHAshG,EAAAiD,kBAAA/8C,EAAA4lE,WAAA11G,KAAAw3G,QAAA1nE,EAAA0lE,KAAA3nG,QAEAugF,EAAAvgF,KACA,CACA,GAAA4pG,IAAA3nE,EAAA4lE,WAAA11G,KAAA41G,eAAA,GAAA9lE,EAAA4lE,WAAA11G,KAAA41G,cAAAnxH,OACAizH,EAAA,GAAA5nE,EAAA4lE,WAAA11G,KAAA41G,cAAAnvH,QAbA,eAaA6B,GAAAwnD,EAAA4lE,WAAA11G,KAAA41G,cAEAtqB,MAAAhjG,GACAqvH,GAAA,CACA,IAAAF,GAAAC,EA0HApsB,EAFAmsB,EAEAjB,EAIAppF,EAAAqgE,EAAA,GAAAj6F,gBAAAgO,eAAAk2G,QA5HA,IAAA,IAAA5nE,EAAA4lE,WAAA11G,KAAA41G,cAAAnvH,QAnBA,WAoBA,CACA,GAAAw1F,GAAAnsC,EAAA4lE,WAAA11G,KAAA41G,cAAA72E,OArBA,UAqBAt6C,OAAA,EAAAqrD,EAAA4lE,WAAA11G,KAAA41G,cAAAnxH,OArBA,UAqBAA,OAAA,EAEA,KAAAw3F,EAAAx1F,QAxBA,UA0BAw1F,EAAAA,EAAAl9C,OA1BA,OA0BAt6C,OAAAw3F,EAAAx3F,OA1BA,OA0BAA,QAGA,IAAA2C,GAAA60F,EAAA53F,MAAA,IACA,IAAA+C,GAAA,IAAAA,EAAA3C,OAEA,IAEA,GAAAmzH,GAAAxwH,EAAA,GAAAA,EAAA,GACAywH,EAAA,WAAAD,EAAA,IACAE,EAAA/oD,EAAAoY,kCAAA0wC,EAAApqB,EAAA,GAAAj6F,iBACA,aAAA,wBAEA,oBAGAukH,EAAA3wH,EAAA,GAAAA,EAAA,GACA4wH,EAAA,WAAAD,EAAA,IAOAE,GANAlpD,EAAAoY,kCAAA6wC,EAAAvqB,EAAA,GAAAj6F,iBACA,aAAA,wBAEA,oBAGAskH,EAAA1wC,SAAAv0E,WAEAi9C,GAAA4lE,WAAAluB,KACA0wB,eAAApoE,EAAA4lE,WAAA11G,KAAA41G,cACAuC,gBAAAl8B,EACA27B,gBAAAA,EACAG,cAAAA,EAEAE,cAAAA,GAUAN,GAAA,EACArsB,EAAAl+D,EAAA6qF,EACA,IAAAG,GAAA9sB,EAAAlgG,KAAA,mBACA,IAAAgtH,EAMA,CACAA,EAAApC,MAEAvlF,QAAAjzB,MAAA,0CACA46G,EAAApC,QAAA1tH,GAGA,IAAAwwE,IAAA,CACA,IAAAs/C,EAAAvB,KAEA,IAAA,GAAAwB,GAAA,EAAAA,EAAAD,EAAAvB,KAAApyH,OAAA4zH,IACA,CACA,GAAArC,GAAAoC,EAAAvB,KAAAwB,EAEArC,KAAAlmE,EAAA4lE,aAEA58C,GAAA,EACAroC,QAAAjzB,MAAA,4DAMA46G,GAAAvB,OAGA/9C,IAEAs/C,EAAAvB,KAAApxH,KAAAqqD,EAAA4lE,gBAhCA0C,IAAAvB,MAAA/mE,EAAA4lE,aACApqB,EAAAlgG,KAAA,mBAAAgtH,GAoCA,MAAA56G,GAEAizB,QAAAjzB,MAAAA,OAKA,KAEA,GAAAgqF,GAAA,WAAAvL,EAAA,GACAqP,GAAAv8B,EAAAkY,+BAAAugB,EAAAiG,EAAA,GAAAj6F,iBACA,aAAA,wBAEA,oBAEA,MAAAgK,GAEAizB,QAAAjzB,MAAAA,QAMAizB,SAAAjzB,MAAA,+DAAAsyC,EAAA4lE,WAAA11G,KAAA41G,cAgBA,IAAAtqB,GAAAA,EAAA7mG,OAAA,GAEA,IAAAkzH,EACA,CACA7nE,EAAA4lE,WAAAhhD,SAAA5kB,EAAA4lE,WAAAhhD,UAAA42B,EAAA,IACA76D,QAAAjzB,MAAA,yBAAAsyC,EAAA4lE,WAAA11G,KAAA41G,cAAA,QAAA9lE,EAAA4lE,WAAAhhD,QAAA7sE,GAGA,IAAAvE,GAAAgoG,EAAA,GAAAp+F,SAAAo+F,EAAA,GAAAp+F,SAAA5B,kBAAAhD,EACA,WAAAhF,GAAA,UAAAA,GACAgoG,EAAA7/E,KAAA,UAAA,QAGAqkC,EAAA4lE,WAAAhhD,QAAA42B,EAAA,EAEA,IAAA8sB,GAAA9sB,EAAAlgG,KAAA,mBACAgtH,KACA3nF,QAAAjzB,MAAA,kCAEA46G,EAAApC,KAAAoC,EAAApC,MAAAlmE,EAAA4lE,YACAjlF,QAAAjzB,MAAA,sBAIA8tF,EAAAlgG,KAAA,oBAAA4qH,IAAAlmE,EAAA4lE,kBAcAjlF,SAAAjzB,MAAA,2BAAAsyC,EAAA4lE,WAAA11G,KAAA41G,cAAA,OAAA9lE,EAAA4lE,WAAA11G,KAAAw3G,QAAA,QAAAppB,EAAAvgF,MAQAiiC,EAAA1/B,aCzZAttB,OAAA,wCAAA,UAAA,SAAAsqC,GA+rBA,MAprBA,UAAAkrF,EAAAC,EAAAC,EAAAC,EAAAC,GA8LA,QAAAC,KAEAL,GAAArB,WAAA,IACAwB,IAGA,QAAAG,KAEAF,IACAJ,GAAArB,WAAA,IAGA,QAAA4B,KAEA,GAAAC,EAAAC,UAOA,YALAC,GAEAvoF,QAAAC,MAAA,wCAMAuoF,KAEAT,IACAF,GAAArB,WAAA,IAMA,QAAAiC,KAEAC,IAKAA,EAAA74F,YACA,WAEA,GAAAw4F,EAAAC,UAaA,cANAK,EACA,MAEAA,EAAA,EACAH,KAKA,IAAA3/G,OAAAhR,EACA,KAEAgR,EAAAw/G,EAAAx/G,YAEA,MAAAwyE,GAEAr7C,QAAAjzB,MAAAsuE,EAAAlT,SAQAt/D,GAEAi/G,EAAAj/G,EAAA,IAEA,KAGA,QAAA2/G,KAEAE,GAEA54F,cAAA44F,GAEAA,MAAA7wH,GAsMA,QAAA+wH,GAAAtpH,GAEAipH,GAEAvoF,QAAAC,MAAA,kBAAA3gC,EAAA3E,KAAAkuH,QAEAC,EAAAxpH,EAAA3E,KAAAouH,UAAAzpH,EAAA3E,KAAAkuH,QAAA,GAEA,QAAAG,GAAA1pH,GAEAq9B,EAAA0rF,GAAA9oH,IAAA0pH,EAAAD,GAEAE,GAMAX,GAEAvoF,QAAAC,MAAA,gDAAA3gC,EAAA3E,KAAAkuH,QAIAM,IAEApxH,WAAA,WACA6wH,EAAAtpH,IACA,MAdAspH,EAAAtpH,GAkBA,QAAAwpH,GAAAM,EAAAP,EAAAQ,GAYA,GAVAd,GAEAvoF,QAAAC,MAAA,0BAAA4oF,GAGA,GAAAO,IAEAA,EAAA,KAGA7kH,KAAAs/B,IAAAulF,EAAAf,EAAAx/G,aAAA,GASA,MAPA0/G,IAEAvoF,QAAAC,MAAA,kCAGAooF,EAAAC,cAAAzwH,OACA6J,GAAA4nH,MAIA,IAAAjW,GAAAgW,EAAAE,EAAAC,CAEAjB,IAEAvoF,QAAAC,MAAA,wCAAAozE,GAGA3xG,EAAA+nH,QAEA9sF,EAAA0rF,GAAArpH,GAAAq0G,GAAA+V,eAAAA,EAAAP,OAAAA,EAAAQ,SAAAA,GAAAK,EAEA,KAEArB,EAAAx/G,YAAAugH,EAEA,MAAA/tC,GAEAr7C,QAAAjzB,MAAAsuE,EAAAlT,SAEApwE,WAAA,WAEA,IAEAswH,EAAAx/G,YAAAugH,EAEA,MAAA/tC,GAEAr7C,QAAAjzB,MAAAsuE,EAAAlT,WAEA,IAOA,QAAAuhD,GAAApqH,GAEA,GAAA+zG,GAAA/zG,EAAA3E,KAAA0uH,SAAAE,EAAAC,EAEAG,MAAA9xH,IAAAyH,EAAA3E,KAAAivH,aAEAD,GAAArqH,EAAA3E,KAAAivH,aAAAC,IAEAltF,EAAA0rF,GAAA9oH,IAAA8zG,EAAAqW,GAGAnB,GAEAvoF,QAAAC,MAAA,eAAA3gC,EAAA3E,KAAAkuH,OAAA,WAAAc,EAAA,QAAAtW,EAGA,IAAAyW,GAAAzB,EAAAx/G,YACA8J,EAAApO,KAAAs/B,IAAAvkC,EAAA3E,KAAAyuH,eAAAU,EAEA,KAAAH,GAAArqH,EAAA3E,KAAAivH,aAAA,IACAj3G,GAAA,EAEA41G,GAEAvoF,QAAAC,MAAA,yBAAA3gC,EAAA3E,KAAAyuH,eAAA,QAAAU,EAAA,KAAAn3G,EAAA,KAGAg3G,IAEArqH,EAAA3E,KAAAivH,YAAAC,EAOAvqH,EAAA3E,KAAA0uH,UAAA,GAMA/pH,EAAA3E,KAAAivH,cAEArB,GAEAvoF,QAAAC,MAAA,4CAGAloC,WAAA,WAEA2xH,EAAApqH,IACA4pH,EAAA,IAAA,KAGAnxH,WAAA,WAEAswH,EAAAoB,OACA,KAEApB,EAAAx/G,YAAAvJ,EAAA3E,KAAAyuH,eAEA,MAAA/tC,GAEAr7C,QAAAjzB,MAAAsuE,EAAAlT,SAEApwE,WAAA,WAEA,IAEAswH,EAAAx/G,YAAAvJ,EAAA3E,KAAAyuH,eAEA,MAAA/tC,GAEAr7C,QAAAjzB,MAAAsuE,EAAAlT,WAEA,KAEA,OAGA,CASA,GARAogD,IAEAvoF,QAAAC,MAAA,qBACAD,QAAAC,MAAA0pF,GACA3pF,QAAAC,MAAA3gC,EAAA3E,KAAAivH,aACA5pF,QAAAC,MAAAttB,IAGAA,GAAA,EACA,CACA41G,GAEAvoF,QAAAC,MAAA,4CAGA,IAAA8pF,GAAAC,EACAC,EAAAC,EACAnB,EAAAzpH,EAAA3E,KAAAyuH,cASA,OAPA1nH,GAAA2c,YAEAtmB,YAAA,WAEA2J,EAAAyoH,SAAAJ,EAAAE,EAAAlB,IACA,IAKAR,GAEAvoF,QAAAC,MAAA,4BAGA3gC,EAAA3E,KAAAivH,gBAAA/xH,GAEA6J,EAAA4nH,OAEAjB,EAAAC,cAAAzwH,IA7qBA,GAAAuyH,KAAAzqF,UAAAgjF,UAAA5oH,MAAA,uBACAmvH,EAAAvpF,UAAAgjF,UAAA9nH,cAAA7E,QAAA,YAAA,EAKAuyH,GAAA,EAEAF,EAAA,GAAAgC,MAEA9B,KAEAF,EAAA7uG,iBAAA,OAAA,WAEAwmB,QAAAC,MAAA,aAIAooF,EAAA7uG,iBAAA,YAAA,WAEAwmB,QAAAC,MAAA,kBAIAooF,EAAA7uG,iBAAA,iBAAA,WAEAwmB,QAAAC,MAAA,uBAIAooF,EAAA7uG,iBAAA,iBAAA,WAEAwmB,QAAAC,MAAA,uBAIAooF,EAAA7uG,iBAAA,aAAA,WAEAwmB,QAAAC,MAAA,mBAIAooF,EAAA7uG,iBAAA,WAAA,WAEAwmB,QAAAC,MAAA,iBAIAooF,EAAA7uG,iBAAA,UAAA,WAEAwmB,QAAAC,MAAA,gBAIAooF,EAAA7uG,iBAAA,iBAAA,WAEAwmB,QAAAC,MAAA,uBAIAooF,EAAA7uG,iBAAA,OAAA,WAEAwmB,QAAAC,MAAA,aAIAooF,EAAA7uG,iBAAA,QAAA,WAEAwmB,QAAAC,MAAA,cAIAooF,EAAA7uG,iBAAA,QAAA,WAEAwmB,QAAAC,MAAA,eAIAooF,EAAA7uG,iBAAA,SAAA,WAEAwmB,QAAAC,MAAA,eAIAooF,EAAA7uG,iBAAA,aAAA,WAEAwmB,QAAAC,MAAA,mBAIAooF,EAAA7uG,iBAAA,UAAA,WAEAwmB,QAAAC,MAAA,gBAKA,IAAAv+B,GAAAjJ,KAIAyxH,MAAAryH,GAEAmyH,MAAAnyH,EACAY,MAAA6xH,eAAA,WACA,MAAAN,GAGA,IAAAO,GAAA,CACA9xH,MAAA+xH,QAAA,SAAAC,GAEAF,EAAAE,EACAF,EAAA,KAEAA,EAAA,IAEAA,EAAA,IAEAA,EAAA,GAGAlC,EAAAqC,aAAAH,GAEA7oH,EAAA8oH,QAAAD,GACA9xH,KAAAkyH,QAAA,WAEA,MAAAJ,GAIA,IAAAK,GAAA,CACAnyH,MAAAoyH,UAAA,SAAAC,GAEAF,EAAAE,EACAF,EAAA,IAEAA,EAAA,GAEAA,EAAA,IAEAA,EAAA,GAEAvC,EAAAyC,OAAAF,GAEAlpH,EAAAmpH,UAAAD,GACAnyH,KAAAsyH,UAAA,WAEA,MAAAH,IAGAnyH,KAAA6wH,KAAA,WAOA,MALAf,IAEAvoF,QAAAjzB,MAAA,iBAGAm9G,IAKAzB,IAEA/mH,EAAAmpH,UAAAD,GACAlpH,EAAA8oH,QAAAD,GAEAlC,EAAAiB,QAEA,IAGA7wH,KAAAgxH,MAAA,WAEAlB,GAEAvoF,QAAAjzB,MAAA,gBAGAy7G,IAEAH,EAAAoB,SAGApB,EAAA7uG,iBAAA,OAAA0uG,GAAA,GACAG,EAAA7uG,iBAAA,QAAA2uG,GAAA,GACAE,EAAA7uG,iBAAA,QAAA4uG,GAAA,EAgCA,IAAAO,GAAA,EAEAD,MAAA7wH,EA0DAY,MAAA+tH,UAAA,WAEA,WAAA3uH,KAAA6wH,GAGAjwH,KAAA4lB,MAAA,WAEAkqG,GAEAvoF,QAAAjzB,MAAA,gBAGAtU,KAAAgxH,QAEApB,EAAAC,cAAAzwH,GAEAmyH,MAAAnyH,GACAqyH,MAAAryH,GAEAE,WAAA,WAEAswH,EAAAh3G,aAAA,MAAA,KACA,IAIAg3G,EAAA7uG,iBAAA,YAAA,WAEAwxG,GAAA,GAGA,IAAAA,IAAA,CACAvyH,MAAAytH,UAAA,WAEA,QAAAkE,KAKAY,IAKAA,GAAA,EAEA3C,EAAAh3G,aAAA,MAAA,8BACAg3G,EAAAzwH,QAEA,IAGA,IAAAqzH,GAAA,EAEAC,EAAA,CAEAzyH,MAAA0xH,SAAA,SAAAJ,EAAAE,EAAAlB,KAEAkC,EACA,QAEAA,EAAA,EAGA,IAAApC,GAAAoC,CAEA,OAAA5C,GAAAC,YAEA4C,EACArB,OAEAqB,EAAA,IAIA3C,GAEAvoF,QAAAC,MAAA,iBAAAgqF,EAAA,MAAAlB,EAAA,+BAGAhxH,YAAA,WAEA2J,EAAAyoH,SAAAJ,EAAAE,EAAAlB,IACA,MAKAV,EAAAC,aAEAC,GAEAvoF,QAAAC,MAAA,iBAAAgqF,EAAA,MAAAlB,EAAA,KAAAF,GAGAqB,GAAAA,IAAAD,GAIA1B,GAEAvoF,QAAAC,MAAA,4BAGAxnC,KAAAgxH,QAEAO,EAAAD,EACAG,EAAAD,MAEAnB,GAAAC,EAAAF,GAAA,KAKAN,IAEAvoF,QAAAC,MAAA,2BACAD,QAAAC,MAAA,oBAAAiqF,GACAlqF,QAAAC,MAAA,YAAAgqF,IAGAxxH,KAAA4lB,QACAgqG,EAAAC,aAEA0B,EAAAD,EACAG,EAAAD,EAIAf,GAEAb,EAAA7uG,iBAAA,OAAA2xG,GAAA,GAGAxuF,EAAA0rF,GAAArpH,GAAAiqH,GAAAF,UAAAA,EAAAF,OAAAA,GAAAG,OAEAjxH,YAAA,WAEAswH,EAAAh3G,aAAA,MAAA64G,GASA7B,EAAAzwH,OAEAsxH,GAEAC,KAEA,KAeA,IAAAA,GAAA,WAEAZ,GAEAvoF,QAAAC,MAAA,qBAKA,IAAAmrF,GAAAR,CACAA,GAAA,EACAlpH,EAAA4nH,OACAsB,EAAAQ,GAGAD,EAAA,WAEA9C,EAAAjuH,oBAAA,OAAA+wH,GAAA,GAEA5C,GAEAvoF,QAAAC,MAAA,wBAEAooF,EAAAoB,SAGAR,EAAAC,EAAA,iBAAA,UA0FAW,EAAA,GACAN,EAAAa,EAAA,iBAAA,SACAZ,EAAAY,EAAA,aAAA,YClkBA/3H,OAAA,6DAAA,SAAA,kBAAA,SAAAsqC,EAAA2hC,GAmcA,MA7bA,UAAA8yB,GA6DA,QAAAi6B,GAAAxwB,EAAAywB,EAAAC,GAEA,GAAAC,EAEA,IAEA,GAAAA,EAAA,GAAA/sH,gBAAAo8F,EAAA,GAAAp8F,cAEA,OAGA,MAAAvH,IAOAu0H,MAAA9uF,EAAA,OAAAk+D,EAAA,GAAAp8F,cAAAqE,iBAEA0oH,EAAA7uF,EAAA,oCAEA6uF,EAAAzhG,OAAA,IAAA2hG,EAAA,KAEA,IAAAC,GAAA,sFAEA1vH,EAAAsvH,CACA,IAAAtvH,EACA,CACA,GAAA2vH,IAAA,CACA,KAAA,GAAAn5H,KAAAwJ,GAAAyiG,aAEAziG,EAAAyiG,aAAAloG,eAAA/D,KAKAm5H,GAAA,EACAJ,EAAAzhG,OAAAt3B,EAAA,KAAAwJ,EAAAyiG,aAAAjsG,GAAA,MAGAm5H,IAAAN,GAEAE,EAAAzhG,OAAA4hG,OAGAL,IAEAE,EAAAzhG,OAAA4hG,EAGAH,GAAAzhG,OAAA,KAOAyhG,EAAAjpH,SAAAkpH,OArHAhzH,KAAAozH,6CAAA,CAEA,IAAAH,GAAA,oBAKAI,MAAAj0H,EACAY,MAAAszH,qBAAA,SAAAxG,GAEA,MAAAuG,IAAAvG,IAAAuG,EAGA,IAAAE,OAAAn0H,EACAY,MAAAwzH,iBAAA,SAAA1G,GAEA,MAAAyG,IAAAzG,IAAAyG,EAGA,IAAAE,GAAA,GACAC,EAAA,GAEAC,EAAAh7B,EAMAo6B,MAAA3zH,EAEAY,MAAA4zH,KAAA,WAIAb,GAEAA,EAAAvpH,SAEAupH,MAAA3zH,EAEA,IAAAy0H,GAAAR,EACAS,EAAAP,EACAQ,EAAAN,EACAO,EAAAN,CAEAL,IAEArzH,KAAA4lB,QAEA5lB,KAAAi0H,iBAAAJ,EAAAE,EAAAC,IAEAT,IAEAvzH,KAAA4lB,QAEA5lB,KAAAk0H,aAAAJ,EAAAC,EAAAC,KAmEAh0H,KAAAi0H,iBAAA,SAAAnH,EAAAqH,EAAAC,GAEA,GAAAtH,GAAAA,IAAAuG,EAAA,CAIArzH,KAAA4lB,QAEAytG,EAAAvG,EACAyG,MAAAn0H,GAEAq0H,EAAAU,EACAT,EAAAU,CAEA,IAAAC,GAAAr0H,KAAAs0H,8BAAAjB,GACA7nD,EAAA6oD,EAAA7oD,OAEAkoD,IAAA,KAAAA,GAGAxvF,EAAAsnC,EAAAxlE,cAAAqE,iBAAA2uB,SAAA06F,EAIA,IAAAa,GAAArwF,EAAAsnC,GAEAqnD,EAAAY,GAAA,KAAAA,EACAX,EAAAa,EAAA9L,aAAA2M,UAAA,IAAAvB,EAEAL,GAAA2B,EAAA1B,EAAAC,GAEAA,IAAAD,GAIAA,GAEA0B,EAAAv7F,SAAAy6F,GAGAc,EAAAv7F,SAAAi6F,IAOAsB,EAAAv7F,SAAAy6F,IAGAzzH,KAAAozH,6CAAAC,IAAAgB,IAEAnwF,EAAAmvF,EAAA7nD,SAAAxyC,SA3KA,iBAyNAh5B,KAAAk0H,aAAA,SAAApH,EAAAqH,EAAAC,GAEA,GAAAtH,GAAAA,IAAAyG,EAAA,CAIAvzH,KAAA4lB,QAEAytG,MAAAj0H,GACAm0H,EAAAzG,EAEA2G,EAAAU,EACAT,EAAAU,CAEA,IAAAG,GAAArwF,EAAAqvF,EAAAj1B,IAAAywB,eAEA8D,EAAAY,GAAA,KAAAA,EACAX,EAAAa,EAAA9L,aAAA2M,UAAA,IAAAvB,EAEAL,GAAA2B,EAAA1B,EAAAC,EAIA,IAAAa,EAAAr6B,QAAAm7B,WAEA,IAGA,GAAA91H,GAAAmuH,EAAAc,UAAAhF,WACA+K,GAAAr6B,QAAAm7B,WAAAC,aAAA/1H,EAAAmuH,EAAAxuB,IAAA2wB,gBAjOA,WAkOA,gBACA7vH,IAGA,MAAAkV,GAEAizB,QAAAjzB,MAAAA,OAGA,IAAAq/G,EAAAr6B,QAAAq7B,YAEA,IAGA,GAAAh2H,GAAAmuH,EAAAc,UAAAhF,WACA+K,GAAAr6B,QAAAq7B,YAAAD,aAAA/1H,EAAAmuH,EAAAxuB,IAAA2wB,gBAjPA,WAkPA,gBACA7vH,IAGA,MAAAkV,GAEAizB,QAAAjzB,MAAAA,MAkDAtU,KAAA4lB,MAAA,WAEA,GAAA2tG,EACA,CACA,GAAA3qH,GAAA2qH,EAAAj1B,IAAAywB,cAAA/oH,aAEA,IAAA2tH,EAAAr6B,QAAAm7B,WAEA,IAEAd,EAAAr6B,QAAAm7B,WAAAG,gBApTA,WAuTA,KADA,GAAAzwB,OAAA/kG,GACA,QAAA+kG,EAAAv7F,EAAA0P,eAAA,oBAEAivB,QAAAE,IAAA,kBACAF,QAAAE,IAAA08D,GACAA,EAAAx6F,WAAAC,YAAAu6F,EAEA,MAAA,QAAAA,EAAAv7F,EAAA0P,eAAA,kBAEAivB,QAAAE,IAAA,gBACAF,QAAAE,IAAA08D,GACAA,EAAAx6F,WAAAC,YAAAu6F,GAGA,MAAA7vF,GAEAizB,QAAAjzB,MAAAA,OAGA,IAAAq/G,EAAAr6B,QAAAq7B,YAEA,IAEAhB,EAAAr6B,QAAAq7B,YAAAC,gBA7UA,WAgVA,KADA,GAAAzwB,OAAA/kG,GACA,QAAA+kG,EAAAv7F,EAAA0P,eAAA,oBAEAivB,QAAAE,IAAA,kBACAF,QAAAE,IAAA08D,GACAA,EAAAx6F,WAAAC,YAAAu6F,EAEA,MAAA,QAAAA,EAAAv7F,EAAA0P,eAAA,kBAEAivB,QAAAE,IAAA,gBACAF,QAAAE,IAAA08D,GACAA,EAAAx6F,WAAAC,YAAAu6F,GAGA,MAAA7vF,GAEAizB,QAAAjzB,MAAAA,GAIAi/G,MAAAn0H,GAMA,GAAAi0H,EAAA,CAEA,GAAAgB,GAAAr0H,KAAAs0H,8BAAAjB,GACA7nD,EAAA6oD,EAAA7oD,SACAxrE,KAAAozH,6CAAAC,IAAAgB,IAEAnwF,EAAAmvF,EAAA7nD,SAAAnyC,YApYA,eAuYAq6F,GAAA,KAAAA,GAGAxvF,EAAAsnC,EAAAxlE,cAAAqE,iBAAAgvB,YAAAq6F,GAGAD,GAAA,KAAAA,GAGAvvF,EAAAsnC,GAAAnyC,YAAAo6F,GAKAvvF,EAAAsnC,GAAAnyC,YAAA45F,GAIAI,MAAAj0H,GAGAq0H,EAAA,GACAC,EAAA,IAGA1zH,KAAAs0H,8BAAA,SAAAxH,GAEA,GAAAA,EAAA,CAEA,GAAA+H,GAAAlB,EAAAlS,iBAAA5H,uCACA,IAAAgb,GAAAA,EAAAt5H,OAAA,EACA,CAEA,KADAuxH,EAAAthD,UAAAshD,EAAAxuB,IAAAwuB,EAAAxuB,IAAAywB,kBAAA3vH,KAIA,MADAmoC,SAAAjzB,MAAA,8CACAw4G,CAGA,IAAAuH,GAAAvH,EAAAgI,gCAAAD,EAAA70H,KAAAozH,4CACA,IAAAiB,GAAAA,EAAA7oD,QAEA,MAAA6oD,GAIA,MAAAvH,QCncAlzH,OAAA,uCAAA,aAAA,SAAA,aAAA,eAAA,0BAAA,+BAAA,aACA,kBAAA,8BAAA,6BACA,SAAA6rC,EAAAvB,EAAA1iC,EAAAgkC,EAAAm1D,EAAAqpB,EAAAtjB,EACA+b,EAAAwH,EAAAzH,GA05CA,MAl5CA,UAAAr7G,EAAA4zH,EAAAp8B,GA0FA,QAAAq8B,GAAAl2H,EAAAm2H,GAEA,GAAAC,GAEA,WADAp2H,IAIA,IAAAq2H,GAAAC,GACA,KAAAD,EAEA,WADAr2H,IAIA,IAAAu2H,GAAAC,EAAA,GACAC,EAAAC,EAAAL,EAEA,IAAAE,EAAAv0G,IAAAy0G,EAAA53B,OAAA83B,GAAA,CACA,GAAAC,GAAAjmG,GACAkmG,GAAAR,GACA/xF,EAAAsyF,GAAAH,EAAA53B,OAAA43B,EAAAz0G,SAAA1hB,IACA61H,EAAA,0BACAD,EAAAl2H,EAAAm2H,OAEAI,GAAAv0G,IAAAy0G,EAAAz0G,IAAA20G,GACAG,EAAAT,EAAA,SAAAxQ,GACAA,GACAsQ,EAAA,0BACAD,EAAAl2H,EAAAm2H,IAGAn2H,MAKAA,IAKA,QAAA+2H,GAAA/2H,EAAAm2H,GAEA,GAAAC,GAEA,WADAp2H,IAIA,IAAAq2H,GAAAW,GACA,KAAAX,EAEA,WADAr2H,IAIA,IAAAu2H,GAAAC,EAAA,GACAS,EAAAP,EAAAL,EAEAY,GAAAj1G,IAAAu0G,EAAA13B,OAAA83B,IACAE,EAAAR,GACAF,EAAA,6BACAY,EAAA/2H,EAAAm2H,IAEAc,EAAAp4B,OAAA03B,EAAA13B,OAAA83B,GACAO,EAAAb,EAAA,SAAAc,GACAhB,EAAA,6BACAgB,EACAJ,EAAA/2H,EAAAm2H,GAGAn2H,MAKAA,IAKA,QAAAo3H,GAAA9R,GAEA,GAAA2Q,EAAA,CAIA,GAAAoB,OAAA/2H,EACA,IAAA8vG,GAEAkV,EACA,CACA,GAAAjiF,GAAAiiF,EAAAjiF,QACAA,KAAAg0F,EAAAh0F,EAAArhB,KAMA,GAAAm0G,GAAA,SAAA7+G,GAEA,GAAA84F,EACA,CACA,IAAAinB,EAAA,MACA,IAAAC,OAAAh3H,GAEA+iC,EAAAiiF,EAAAjiF,QAGA,IAFAA,IAAAi0F,EAAAj0F,EAAArhB,MAEAs1G,EAAA,MAEA,IAAAl8G,GAAAk8G,EAAAD,CACArqH,MAAAs/B,IAAAlxB,GAAA,GAEAqtB,QAAAC,MAAA,kCAAApxB,EAAA,KAAA8D,EAAA,OAAAkqG,EAAAzC,mBAAAh9F,OAMA0xG,KAAA,EACAR,EAAA,WACAb,EAAA,WACA11H,WAAA,WACA+2H,IAAA,GACAC,GAAA,MACArB,IACAA,IAKA,QAAAsB,GAAA93H,GAEAk6F,EAAA8oB,iBACApI,0CAEAmd,IAAA79B,EAAA89B,4BAEAD,GAAA79B,EAAA+9B,0BAGA/9B,EAAAg+B,oBAMA,QAAA3a,GAAAv9G,GAEA,IAAA43H,KACAO,KACAC,GAAA,CAEA5tH,GAAA6tH,uBAEAZ,IACAa,EAAA9tH,IAEAzH,EAAAgqB,MAAA,WACAwrG,IACA/tH,GAAAguH,uBAIAt+B,GAAA8oB,iBACApI,yCAEAmd,IAEAl3H,WAAA,WAEAq5F,EAAAu+B,mBACAV,IAAA,GACA,MAMA,QAAApzF,GAAAjB,EAAAg1F,GAEAC,GAAA,GAAA3nG,UAAA0S,EAEAg1F,GACAJ,EAAAI,EAAAhU,UAAAgU,EAAAjyB,UAAAiyB,EAAA/T,WAIA,QAAAiU,GAAAjT,GAEA,GAAAsR,GAAAjmG,IACA6nG,EAAA9B,EAAApR,EAEAmT,GAAAnT,EAEA,IAAAoT,GAAAhC,EAAApR,GAEAqT,EAAAD,EAAA75B,OAAA65B,EAAA12G,IACA42G,EAAAJ,EAAA35B,OAAA25B,EAAAx2G,IAEAwsC,EAAAmqE,EAAAC,CAEA5rH,MAAAs/B,IAAAkiB,GAAA,IAEA4hD,GAEA3nE,QAAAC,MAAA,4BAAA48E,EAAAzC,mBAAAh9F,KAAA,OAAA2oC,GAEAlqB,EAAAsyF,EAAApoE,IAIA,QAAAsoE,GAAA+B,EAAA74H,GAEA,GAAA6jH,GAAAlF,GAAA5gB,SAAA86B,EAAAhW,oBAAA,EACA,KAAAgB,EAEA,WADA7jH,IAAA,EAIA,IAAA84H,GAAAC,EAAAlV,GAAA,GAGAmV,EAAAhC,GACA8B,GAAApsD,UAAA15C,YAAAgmG,EAAAtsD,WAEAosD,EAAAlV,cAAAC,EAAA,SAAA1lF,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GACA,GAAAq5B,EAAA,CAEAs6F,EAAAK,EACA,IAAArlC,GAAAijC,EAAAoC,EAEAjC,GAAAiC,EAGA,IAAAlC,GAAAjmG,IAEAuoG,EAAAH,EAAAlV,GACAsV,EAAA1lC,EAAAoL,OAAApL,EAAAzxE,GAGAk3G,GAAA9V,UAAA+V,GAKAD,EAAAxsD,UAAAh6C,aAAAmmG,EAAAnsD,WAEAkqD,GAAAuC,EAEA70F,EAAAsyF,MAAAt2H,IAEA44H,EAAAtV,cAAAC,EAAA,SAAA1lF,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GACAq5B,GAEAo6F,EAAAW,GACAE,EAAAF,EAAA/6F,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GACA9E,EAAAm+B,KAMAsK,QAAAjzB,MAAA,oBAAAquG,EAAAh+F,MACAgxG,EAAAqC,GACAl5H,GAAA,UAMAyoC,SAAAjzB,MAAA,oBAAAquG,EAAAh+F,MACAgxG,EAAAiC,GACA94H,GAAA,KAMA,QAAAy4H,GAAAnT,GAEAA,EAAAzC,mBAAA3mB,gBACAopB,EAAAtC,aAAAsV,GAAAzsH,SAGAy5G,EAAApC,wBAIA,QAAAgU,GAAAmC,EAAAr5H,GAEA,GAAAs5H,GAAA3a,GAAA32D,SAAAqxE,EAAAxW,oBAAA,EACA,KAAAyW,EAEA,WADAt5H,IAAA,EAIA,IAEAk5H,IAFAvoG,IAEAooG,EAAAO,GACAJ,GAAAxsD,UAAA15C,YAAAqmG,EAAA3sD,WAEAwsD,EAAAtV,cAAA0V,EAAA,SAAAn7F,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GACAq5B,GAEAs6F,EAAAS,GACAE,EAAAF,EAAA/6F,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GACA9E,EAAAm+B,KAKAsK,QAAAjzB,MAAA,kBAAA8jH,EAAAzzG,MACA7lB,GAAA,MAMA,QAAAu5H,KAEA,GAAAC,KAEAC,GAAA,SAAAnU,GACAkU,EAAA/7H,KAAA6nH,KACA,EAEA,KAAA,GAAAtpH,GAAA,EAAAywB,EAAA+sG,EAAA/8H,OAAAT,EAAAywB,EAAAzwB,IACA66H,EAAA2C,EAAAx9H,IAIA,QAAA66H,GAAAvR,GAEAA,EAAAxF,WACAwF,EAAA54C,UAAAhiE,SAKA,QAAAgvH,GAAAC,GAEArB,GAAAn0H,IAAA,OAAAw1H,EAAA1jG,MACAqiG,GAAAn0H,IAAA,MAAAw1H,EAAA33G,KACAs2G,GAAAn0H,IAAA,QAAAw1H,EAAAjxC,OACA4vC,GAAAn0H,IAAA,SAAAw1H,EAAA96B,QAoDA,QAAAk6B,GAAAa,EAAAC,GA4BA,QAAAC,KAGArB,EAAAnT,GACA2S,EAAA9tH,IACAitH,IACAc,KAAA6B,IACA5vH,GAAA6vH,yBAjCA33H,EAAAy/G,wBAAA,CAEA,IAAAlE,IAAA,CACAgc,GAAA19B,kBACA0hB,GAAA,EAGA,IAAA0H,GAAA,GAAA3H,GACAt7G,GACA,qBACAu7G,EACA/jB,EAEAyrB,GAAA79G,GAAAk2G,EAAA32E,OAAA88E,sBAAA,SAAAre,EAAAW,GAEAz/D,EAAAqB,SAAA,2CAAA,KAAA,oBAAAo+D,EAAAvgF,KAAA,MAEA8gB,EAAAqB,SAAA,8BAAA,OAAA,oBAAAo+D,EAAAvgF,KAAA,MACA1b,GAAAk8B,KAAAM,EAAAK,OAAAO,4BAAAk+D,EAAAW,KAGAkf,EAAA79G,GAAAk/B,EAAAK,OAAAS,0BAAA,SAAAg+D,EAAAW,GACAz/D,EAAAqB,SAAA,4BAAA,KAAA,oBAAAo+D,EAAAvgF,KAAA,MACA1b,GAAAk8B,KAAAM,EAAAK,OAAAS,0BAAAg+D,EAAAW,IAaA,IAAA6zB,GAAAv3H,EAAAoyF,SAAAglC,EAAA,IAKAxU,GAAA79G,GAAAk2G,EAAA32E,OAAA63E,qBAAA,SAAApZ,EAAAW,GAEAz/D,EAAAqB,SAAA,0CAAA,KAAA,oBAAAo+D,EAAAvgF,KAAA,MACAo0G,MAGA3U,EAAA/rB,QAeA,OAZAwlB,KAAAuG,EAAAxC,gBAAA/D,IADA,GAGA8a,GACAvU,EAAA54C,UAAAtpE,KAAA,WAAAkiH,GAIA2Q,GAEA3Q,EAAA1C,iBAGA0C,EAGA,QAAA4U,GAAA9zB,EAAAr9E,GAEA,GAAAoxG,OAAA75H,EAcA,OAZAm5H,GAAA,SAAAnU,GACA,MAAAA,GAAAzC,oBAAAzc,IACA+zB,EAAA7U,GAEA,IAMAv8F,GAEAoxG,EAGA,QAAAV,GAAAzmH,EAAA+V,GAaA,IAAA,GAXAqxG,GAAA9B,GAAAnwG,WAEAsE,EAAA2tG,EAAA39H,OACAqrD,EAAA/+B,EAAA,SAAAsxG,GAAA,MAAAA,GAAA,GACA,SAAAA,GAAA,MAAAA,GAAA,GAEAl3G,EAAA4F,EAAA,SAAAsxG,GAAA,MAAAA,IAAA,GACA,SAAAA;cAAA,MAAAA,GAAA5tG,GAEA9nB,EAAAokB,EAAA0D,EAAA,EAAA,EAEAzwB,EAAA2I,EAAAwe,EAAAnnB,GAAAA,EAAA8rD,EAAA9rD,GAAA,CAEA,GAAAsnG,GAAA82B,EAAAhwH,GAAApO,GACAs+H,EAAAh3B,EAAAlgG,KAAA,WAEA,IAAAk3H,IAEA,IAAAtnH,EAAAsnH,GACA,QAMA,QAAAhE,KAEA,GAAAiE,OAAAj6H,EASA,OAPAm5H,GAAA,SAAAnU,GAGA,MADAiV,GAAAjV,GACA,IAEA,GAEAiV,EAGA,QAAAvD,KAEA,GAAAgC,OAAA14H,EAQA,OANAm5H,GAAA,SAAAnU,GAEA,MADA0T,GAAA1T,GACA,IAEA,GAEA0T,EAGA,QAAAI,GAAA9T,EAAAnnF,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GAEAq5B,GAAA86F,IACAtyF,EAAAqB,SAAA,0BAAA,OAAA,oBAAAo+D,EAAAvgF,KAAA,MACA1b,GAAAk8B,KAAAM,EAAAK,OAAAQ,wBAAAi+D,EAAAW,IAKA,QAAAwd,GAAAxd,EAAApmG,GAEAu5H,GAEA,IAEAiB,IAFA7pG,IAEAooG,EAAA3yB,GAEAkyB,IAAA9lG,OAAAgoG,EAAA9tD,WAEA8tD,EAAA5W,cAAAxd,EAAA,SAAAjoE,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,GAEAq5B,GAEAs6F,EAAA+B,GACApB,EAAAoB,EAAAr8F,EAAAsnE,EAAAW,EAAA6yB,EAAAn0H,KAMA2jC,QAAAjzB,MAAA,kBAAA4wF,EAAAvgF,MAEAgxG,EAAA2D,GACAA,MAAAl6H,IAGAN,EAAAw6H,KAiFA,QAAAC,GAAAnV,EAAA+S,GAEA,GACAqC,GACAp3B,EACAq3B,EACAC,EAJArtB,EAAA,CAMA,QAAAjtG,KAAA+3H,EAAA1nG,UAEA48E,EAAA8qB,EAAA1nG,cAEA,QAAArwB,KAAA+3H,EAAA97B,mBAAA,CAEA,GAAA+Q,EACAotB,GAAAG,IAEAvtB,EADA+qB,EAAA97B,mBAAA,EACA,EAEA87B,EAAA97B,oBAAAm+B,EACAA,EAAA,EAGArC,EAAA97B,mBAGAgR,EAAAD,EAAAwtB,QAEA,IAAAxV,GAAA+S,EAAA/T,UAAA,CAMA,GAJAsW,EAAAlE,EAAApR,GACAqV,EAAArV,EAAAtB,iBACA1gB,EAAAq3B,EAAAnhH,eAAA6+G,EAAA/T,cAEAhhB,EAAA7mG,OAEA,WADAgsC,SAAAI,KAAA,cAAAwvF,EAAA/T,UAAA,cAIA,IAAAyW,EAAAzV,EAAAhiB,EAAA,IAIA,WADA20B,GAAAI,EAAAhU,UAAAgU,EAAAjyB,UAAAiyB,EAAA/T,UAIA,IAAA0W,GAAAC,EAAA3V,EAAAhiB,EACAiK,GAAAytB,EAAAh5G,IAAA44G,EAAA54G,QAGA,IAAAsjG,GAAA+S,EAAA9T,WAAA,CAEAqW,EAAAlE,EAAApR,GACAqV,EAAArV,EAAAtB,cAEA,IAAA7jC,GAAAw6C,EAAArmB,wBAAA+jB,EAAA9T,WACA,KAAApkC,EAEA,WADA13C,SAAAI,KAAA,iBAAAwvF,EAAA9T,WAAA,cAIA,IAAA2W,GAAAC,EAAA7V,EAAAnlC,EACA,IAAAi7C,EAAAF,EAAA,IAIA,WADAjD,GAAAI,EAAAhU,UAAAgU,EAAAjyB,UAAAiyB,EAAA/T,UAIA/W,GAAA2tB,EAAAl5G,QAGA,IAAAq2G,EAAA3T,UAEAnX,EAAA,MAEA,IAAA8qB,EAAA1T,SAAA,CAGA,GAAA,KAFA+V,EAAAG,KAGA,MAGAttB,GAAA8tB,IAAAP,IAAA,MAEAxV,IAEAsV,EAAAlE,EAAApR,GACA/X,EAAAqtB,EAAA54G,KAGAurF,EAAA,CAGA58E,MAAA48E,GAEAuqB,IAAA,EACAxzF,EAAAipE,EAAA8qB,GAEA73H,WAAA,WACAs3H,IAAA,GACAN,GAAA,MAIAS,EAAAI,EAAAhU,UAAAgU,EAAAjyB,UAAAiyB,EAAA/T,WAIA,QAAAuW,KAEA,MAAA7tH,MAAAw1C,KAAA64E,IAAAP,KAGA,QAAA7C,GAAA5T,EAAAoC,EAAAC,GAEA//E,EAAAqB,SAAA,iDAAA,OAAA,kBACA79B,GAAAk8B,KAAAM,EAAAmB,eAAAC,iCACA4jE,eAAAxhG,GAAA6uG,oBACAqL,UAAAA,EACAje,UAAAqgB,EACAnC,UAAAoC,IAIA,QAAA/1F,KACA,MAAA2nG,IAAA,GAAA3nG,UAGA,QAAA2qG,KACA,MAAAD,MAAA1qG,IAAAmqG,KAGA,QAAAA,KACA,MAAAxC,IAAAzpH,SAGA,QAAAwsH,KACA,MAAA/C,IAAA,GAAA+C,aAgCA,QAAAE,KAEA,GAAA1S,MAEAp1B,EAAA+iC,GAAAgF,GAiBA,OAfA/B,GAAA,SAAAnU,GAEA,GAAAmW,EAAAnW,EAAA7xB,GAEAo1B,EAAAprH,KAAA6nH,OAEA,IAAAuD,EAAApsH,OAAA,EAEA,OAAA,CAGA,QAAA,IAEA,GAEAosH,EAYA,QAAA4S,GAAAnW,EAAA7xB,GAEA,MAAAioC,GAAAC,EADAjF,EAAApR,GACA7xB,IAAA,EAGA,QAAAijC,GAAApR,GACA,GAAA7xB,IAAAzxE,IAAA,EAAA68E,OAAA,GAEAhyE,EAAAy4F,EAAA54C,UACAnkD,EAAAsE,EAAA+H,UAEA,IAAAgnG,GAAA,CACA,GAAAx3F,GAAAvX,EAAAuX,cACA7b,GAAAvG,KAAAoiB,EAAAzT,YACApI,EAAA0N,MAAAmO,EAAA7T,aAMA,MAHAkjE,GAAAzxE,IAAAuG,EAAAvG,IAAA2O,IACA8iE,EAAAoL,OAAApL,EAAAzxE,IAAAsjG,EAAA5B,0BAEAjwB,EAsHA,QAAAooC,GAAAljH,GACA,GAIAmjH,GAJAvF,EAAAC,IAEAxlH,MAAA1Q,GACAy7H,GAAA/5G,IAAA,EAAA68E,OAAA,GAGAm9B,GAAA,CAwBA,OAtBAvC,GAAA,SAAAnU,GAMA,GALAwW,EAAApF,EAAApR,GAEAyW,EAAA/5G,IAAAhV,KAAAC,IAAA6uH,EAAA95G,IAAAu0G,EAAAv0G,KAAA85G,EAAA95G,IACA+5G,EAAAl9B,OAAA7xF,KAAAk/B,IAAA4vF,EAAAj9B,OAAA03B,EAAA13B,QAAAi9B,EAAA95G,IAEA05G,EAAAK,GAAA,GAIA,GAHAC,GAAA,EAEAhrH,EAAA2H,EAAA2sG,EAAAyW,GAEA,OAAA,MAGA,IAAAC,EACA,OAAA,CAGA,QAAA,IAEA,GAEAhrH,EAmCA,QAAAwlH,GAAA1lH,GACA,IAAAA,GAAAA,IACAA,EAAA,EAGA,IAAA2iF,IAEAzxE,IAAA2O,IAAA7f,EACA+tF,OAAAluE,IAAAmqG,IAAAhqH,EAWA,OARA2iF,GAAAzxE,IAAA,IACAyxE,EAAAzxE,IAAA,GAGAyxE,EAAAoL,OAAAw8B,MACA5nC,EAAAoL,OAAAw8B,KAGA5nC,EAIA,QAAAkoC,GAAAM,EAAAC,GACA,OAEAl6G,IAAAhV,KAAAC,IAAAgvH,EAAAj6G,IAAAk6G,EAAAl6G,KACA68E,OAAA7xF,KAAAk/B,IAAA+vF,EAAAp9B,OAAAq9B,EAAAr9B,SAIA,QAAA68B,GAAAjoC,GACA,MAAAA,GAAAoL,OAAApL,EAAAzxE,IACA,EAGAyxE,EAAAoL,OAAApL,EAAAzxE,IAGA,QAAA+4G,GAAAzV,EAAAhiB,EAAAkU,GAIA,MAAA4jB,GAFAH,EAAA3V,EAAAhiB,GAEAkU,GAGA,QAAA4jB,GAAA3nC,EAAA+jB,GAEA,GAAA7G,GAAA6lB,IAEA2F,EAAAnvH,KAAAk/B,IAAAwvF,EAAA/qB,GAAA+qB,EAAAjoC,GASA,OARA,KAAA0oC,IACAA,EAAA,GAKAT,EAFAC,EAAAhrB,EAAAld,IAEA0oC,EAAA,KAEA3kB,EAGA,QAAAyjB,GAAA3V,EAAAhiB,GAEA,GAAAs3B,GAAAlE,EAAApR,GAEA0V,GAAAh5G,IAAA,EAAA68E,OAAA,EAIA,OAHAm8B,GAAAh5G,IAAAshF,EAAAjgE,SAAArhB,IAAA44G,EAAA54G,IACAg5G,EAAAn8B,OAAAm8B,EAAAh5G,IAAAshF,EAAAz0F,SAEAmsH,EAGA,QAAAG,GAAA7V,EAAAnlC,GAEA,GAAAy6C,GAAAlE,EAAApR,GAEA0V,GAAAh5G,IAAA,EAAA68E,OAAA,GACAqP,EAAA/tB,EAAAnqD,uBAIA,OAHAglG,GAAAh5G,IAAAksF,EAAAlsF,IAAA44G,EAAA54G,IACAg5G,EAAAn8B,OAAAm8B,EAAAh5G,IAAAksF,EAAAr/F,OAEAmsH,EAsFA,QAAAoB,GAAAttB,GACA,GAGAzD,GAAAY,EAHAowB,EAAAd,IACAe,EAAAxtB,EAAAutB,GACAE,EAAAD,EAAA5vD,UAAA93C,WAAA5S,GAGAqpF,IACArpF,IAAAhV,KAAAk/B,IAAA,EAAAqwF,GACAtmG,KAAA,EAGA,IAAApnB,GAAA7B,KAAAk/B,IAAAowF,EAAA5vD,UAAA79D,SAAAisH,IAgBA,OAdAyB,IAAA,IACA1tH,GAAA0tH,GAGAtwB,GACApgG,MAAAywH,EAAA5vD,UAAA7gE,QACAgD,OAAAA,GAQAigG,GAJAwtB,EAAAloB,mBACAkoB,EAAAjoB,oBAGAhJ,EAAAY,GA6BA,QAAAqU,GAAAuC,EAAArjB,GACA,MAAA,IAAA3D,GAAAgnB,EAAAh1C,MAAA2xB,GA51CA,GAAA4Q,IAAA,EAKAwrB,IAAA,CACA,KACA,GAAAY,IAAAp3F,EAAAx9B,GAAA4O,OAAAna,MAAA,IACA,IAAAy9B,SAAA0iG,GAAA,KAAA,GAAA1iG,SAAA0iG,GAAA,KAAA,GAAA1iG,SAAA0iG,GAAA,MACAZ,IAAA,GAEA,MAAAp0H,GACAihC,QAAAjzB,MAAAhO,GAGA49B,EAAAh8B,OAAAlI,KAAA,GAAAwlC,GAEA,IASAqzF,IACA7B,GACAI,GACArY,GAZAub,GAAA,EACA7E,GAAA,IACAa,GAAA,IAEArtH,GAAAjJ,KAEA2+G,GAAAz6E,EAAA/iC,EAAA8jG,WACAwY,GAAAt8G,EAAA45F,MACAkqB,GAAA9jH,EAAA0mH,WAMAqN,IAAA,EAMAmB,IAAA,EACAO,IAAA,EACAC,IAAA,CAEA72H,MAAA+0H,mBAAA,WACA,MAAAA,IAGA/0H,KAAAq4F,OAAA,WAEA,GAAAH,GAAAwI,EAAA4E,aAAA,yBAEAyZ,IAAA76E,EAAAg0D,GACAymB,GAAArtF,OAAAytF,IAEAqY,GAAAlzF,EAAA,0BAAA66E,IACAqY,GAAAn0H,IAAA,WAAA,IACAm0H,GAAAn0H,IAAA,aAAA,QACAm0H,GAAAn0H,IAAA,aAAA,UACAm0H,GAAAn0H,IAAA,6BAAA,SACAm0H,GAAAn0H,IAAA,QAAA,QACAm0H,GAAAn0H,IAAA,SAAA,QACAm0H,GAAAn0H,IAAA,WAAA,WAEA,IAAAy5B,GAAAi8D,EAAA8oB,gBACA/kF,QAAA,KAAAA,EAAAq9E,qCAGAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,oCAGAqd,GAAAn0H,IAAA,YAAA,iBAMAgG,GAAA++G,aAEA,IAAAuT,GAAA/5H,EAAAoyF,SAAAooB,EAAAsa,GAOA,OALAc,IAAA7wH,GAAA,SAAA,SAAA9H,GACA88H,EAAA98H,GACA83H,MAGAttH,GAkIA,IAAAutH,KAAA,CA4NAx2H,MAAAwJ,OAAA,WACAu1G,GAAAv1G,UAGAxJ,KAAAioH,iBAAA,aAOAjoH,KAAA82H,qBAAA,WACAE,OAAA53H,IAGAY,KAAAi3H,oBAAA,WAGA,IAAA4B,GAAA,CAIA,GAAA2C,GAAAvyH,GAAAiqG,qBACAhO,EAAAuY,GAAAge,YAAAD,EAAA7uD,MACAu4B,KACA8xB,GAAA,GAAA/S,GAAA/e,EAAAj8F,IACA+tH,GAAAlT,cAAA0X,EAAA5gC,eAIA56F,KAAA84H,uBAAA,WACA9B,IACAh3H,KAAA07H,iBAAA1E,IAIA,IAAAnZ,QAAAz+G,EACAY,MAAA4hH,gBAAA,SAAAllF,EAAAmlF,GAEAhE,GAAAnhF,EAEA67F,EAAA,SAAAnU,GAEAA,EAAAxC,gBAAAllF,EAAAmlF,KAEA,IAyLA7hH,KAAAgoH,YAAA,WAEAtnB,EAAAkF,UAAAqf,GAAAn6G,YAAAi0G,GAAAl+F,UAMA23G,EAFA93B,EAAA2D,QAAAlC,YAAA4c,IAEA9pF,UAIAj1B,KAAAk9G,gBAAA,WAEAqb,EAAA,SAAAnU,GACAA,EAAAlH,oBACA,IAIAl9G,KAAA07H,iBAAA,SAAAvE,GAEAjC,IAAA,CAGA,IAAAyG,GAAA,SAAAvX,EAAA+S,GAEA0B,OAAAz5H,GACAm6H,EAAAnV,EAAA+S,GACAjC,IAAA,EACAgB,EAAA9R,GAGA,IAAA+S,EAAAjyB,UAAA,CAEA,GAAAkf,GAAA4U,EAAA7B,EAAAjyB,UACAkf,GACAuX,EAAAvX,EAAA+S,IAGA0B,GAAA1B,EACAN,IAAA,EAEAnU,EAAAyU,EAAAjyB,UAAA,SAAAkf,GAEA9kH,WAAA,WACAu3H,IAAA,GACAP,GAAA,KAEAlS,GAAAyU,GACAzU,EAAAzC,qBAAAkX,GAAA3zB,UACAy2B,EAAAvX,EAAAyU,IAGA5vH,GAAAi/G,SAAA2Q,IAIA9B,EAAAI,EAAAhU,UAAAgU,EAAAjyB,UAAAiyB,EAAA/T,kBAOAuY,OAAAv8H,GAAA+3H,IAIAn3H,KAAAkoH,SAAA,SAAAiP,GACAn3H,KAAA82H,uBACAE,GAAAG,EACAn3H,KAAA07H,iBAAAvE,IAgJAn3H,KAAAqoH,aAAA,SAAAlF,GAEA,GAAAgU,EAEAiD,KAAA,IAEAjD,EAAA,GAAAlT,OAAA7kH,GAAA+jH,GACAgU,EAAA1nG,UAAAA,IAAA3jB,KAAAk/B,IAAAovF,IAAAR,IAAAU,IACAf,MAAAn6H,GAAA+3H,KAKAn3H,KAAAooH,aAAA,SAAAjF,GAEA,GAAAgU,EAEA1nG,KAAA,IAEA0nG,EAAA,GAAAlT,OAAA7kH,GAAA+jH,GACAgU,EAAA1nG,UAAAA,KAAAmqG,IAAAU,IACAnD,EAAA1nG,UAAA,IACA0nG,EAAA1nG,UAAA,GAGA8pG,MAAAn6H,GAAA+3H,KA4DAn3H,KAAA83G,kBAAA,WAiBA,IAAA,GAhBA5S,GACAs0B,EACApV,EACAwW,EACAgB,EACAC,EACAC,EACAC,EAEA1G,EAAAC,IACA0G,EAAA3G,EAAA13B,OAAA03B,EAAAv0G,IAEA2pF,EAAA,GAAAuZ,GAAAvG,IAAA,GAEAwe,EAAA5B,IAEAv/H,EAAA,EAAAywB,EAAA0wG,EAAA1gI,OAAAT,EAAAywB,EAAAzwB,IAEAspH,EAAA6X,EAAAnhI,GACAoqG,EAAAkf,EAAAzC,mBACAiZ,EAAApF,EAAApR,GAEAwX,EAAA9vH,KAAAC,IAAAspH,EAAAv0G,IAAA85G,EAAA95G,IAAA,GACA+6G,EAAA/vH,KAAAC,IAAA6uH,EAAAj9B,OAAA03B,EAAA13B,OAAA,GAEAm+B,EAAAhwH,KAAAw1C,KAAAs6E,EAAAI,GACAD,EAAAjwH,KAAAw1C,KAAAu6E,EAAAG,GACAxC,EAAAsC,EAAAC,EAAA,EAEAtxB,EAAArP,YAAA0gC,EAAAtC,EAAAt0B,EAAAv4B,MAAAu4B,EAAA5nG,MAGA,OAAAmtG,IAGAzqG,KAAAwoH,oBAAA,WAEA,MAAAv/G,IAAAiqG,sBAIAlzG,KAAA0oH,oBAAA,WACA,GAAAwT,KAMA,OAJA3D,GAAA,SAAAnU,GACA8X,EAAA3/H,KAAA6nH,EAAAzC,sBACA,GAEAua,GAGAl8H,KAAA03G,WAAA,SAAAqL,EAAAt8G,GACA,GAAA+kE,OAAApsE,EAcA,OAZAm5H,GAAA,SAAAnU,GACA,MAAAA,GAAAzC,mBAAAh1C,OAAAo2C,IAEAv3C,EAAA44C,EAAAtB,eAAApL,WAAAjxG,IAEA,KAKA,GAEA+kE,GAGAxrE,KAAAsY,eAAA,SAAAyqG,EAAApkH,GACA,GAAAixE,OAAAxwE,EAaA,OAXAm5H,GAAA,SAAAnU,GACA,MAAAA,GAAAzC,mBAAAh1C,OAAAo2C,IAEAnzC,EAAAw0C,EAAAtB,eAAAxqG,eAAA3Z,IACA,KAKA,GAEAixE,OACAroC,SAAAjzB,MAAA,6BAOAtU,KAAA2zG,gBAAA,SAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,GACA,GAAA2D,OAAAxwE,EAaA,OAXAm5H,GAAA,SAAAnU,GACA,MAAAA,GAAAzC,mBAAAh1C,OAAAo2C,IAEAnzC,EAAAw0C,EAAAtB,eAAAnP,gBAAArV,EAAAvyB,EAAAC,EAAAC,IACA,KAKA,GAEA2D,OACAroC,SAAAjzB,MAAA,6BA0CAtU,KAAAq1G,mCAAA,WACA,MAAAslB,GAAA,SAAAvW,EAAAsV,GACA,MAAAtV,GAAAtB,eAAAzN,mCAAAqkB,MAmHA15H,KAAA2oH,wBAAA,SAAAC,EAAAp9C,EAAA23C,GACA,GAAAiB,OAAAhlH,EAYA,IAVAm5H,EAAA,SAAA4D,GACA,MAAAA,GAAAxa,mBAAAh1C,QAAAi8C,IAEAxE,EAAA+X,GACA,KAIA,IAEA/X,EAEA,WADA78E,SAAAI,KAAA,oBAAA6jC,EAAA,aAIA,IAAA42B,GAAAl+D,EAAAsnC,GAEAsuD,EAAAC,EAAA3V,EAAAhiB,EAEA,KAAA83B,EAAAJ,EAAA,IAAA,CAEA,GAAA50B,GAAAuY,GAAAge,YAAA7S,GACAwT,EAAA,GAAAnY,GAAA/e,EAAAie,EACAiZ,GAAA3sG,UAAAqqG,EAAAh5G,IAEA7X,GAAAi/G,SAAAkU,KAKAp8H,KAAA+1G,mBAAA,SAAAtvG,EAAA41H,GACA,GAAA/7H,KAQA,OAPAi4H,GAAA,SAAAnU,GACAiY,EACA/7H,EAAA/D,MAAA+D,SAAA8jH,EAAArO,mBAAAtvG,GAAAy+F,UAAAkf,EAAAzC,qBAEArhH,EAAAkB,EAAA2vF,SAAA7wF,EAAA8jH,EAAArO,mBAAAtvG,KAAA,KAGAnG,GAGAN,KAAA41G,6BAAA,SAAAC,GAEAtuE,QAAAI,KAAA,sEAGA3nC,KAAA21G,iBAAA,SAAAvT,GAEA76D,QAAAI,KAAA,0DAGA3nC,KAAAy3G,YAAA,SAAAsL,EAAAt8G,GACA,GAAA29G,GAAA4U,EAAAjW,EACA,IAAAqB,EACA,MAAAA,GAAA3M,YAAAsL,EAAAt8G,IAIAzG,KAAA20G,0BAAA,SAAA2nB,EAAAlsB,GACA,GAAAgU,GAAA4U,EAAA/V,WACA,IAAAmB,EACA,MAAAA,GAAAzP,0BAAAsO,WAAA7S,IAIApwG,KAAA8oH,6BAAA,SAAA7F,EAAA7S,GACA,GAAAgU,GAAA4U,EAAA/V,EACA,IAAAmB,EACA,MAAAA,GAAA0E,6BAAA7F,EAAA7S,IAIApwG,KAAAyzG,wBAAA,SAAAwP,EAAA7S,GACA,GAAAgU,GAAA4U,EAAA/V,EACA,IAAAmB,EACA,MAAAA,GAAA0E,6BAAA7F,EAAA7S,IAkCApwG,KAAAkzG,mBAAA,WAEA,MAAAgoB,GAAA15H,EAAAiH,QAGAzI,KAAAmzG,kBAAA,WAEA,MAAA+nB,GAAA15H,EAAAoU,OAGA5V,KAAAozG,wBAAA,SAAAC,EAAAC,EAAAC,GACA,MAAAD,IAAAD,EAAA1mC,QAAA2mC,EAAA3mC,UACAplC,SAAAjzB,MAAA,qFAIA++F,EAAAA,MACAC,EAAAA,MAEAqnB,EAAA,SAAAvW,GACA,GAAAA,EAAAzC,mBAAAh1C,QAAA0mC,EAAA1mC,MACA,MAAAy3C,GAAAhR,wBAAAC,EAAAzY,WAAA0Y,EAAA1Y,WAAA2Y,OASAvzG,KAAA+zG,wBAAA,SAAA90B,GACA,MAAA07C,GAAA,SAAAvW,GACA,MAAAA,GAAArQ,wBAAA90B,MAIAj/E,KAAAuyG,uBAAA,SAAAppE,EAAA8W,EAAAuyD,GACA,MAAAmoB,GAAA,SAAAvW,GACA,MAAAhF,GAAAgF,EAAAzC,mBAAAyC,EAAA7R,uBAAAppE,EAAA8W,EAAAuyD,OAIAxyG,KAAA6yG,sBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,MAAA0nB,GAAA,SAAAvW,GACA,MAAAhF,GAAAgF,EAAAzC,mBAAAyC,EAAAvR,sBAAAC,EAAAC,EAAAC,EAAAC,OAIAjzG,KAAA2vG,iBAAA,SAAAnkC,GACA,MAAAmvD,GAAA,SAAAvW,GACA,MAAAhF,GAAAgF,EAAAzC,mBAAAyC,EAAAzU,iBAAAnkC,GAAAovB,eAIA56F,KAAAm0G,oBAAA,SAAAhrE,EAAA8W,GACA,MAAA06E,GAAA,SAAAvW,GACA,MAAAA,GAAAjQ,oBAAAhrE,EAAA8W,MAIAjgD,KAAA62G,YAAA,WACA,MAAA8jB,GAAA,SAAAvW,GACA,MAAAA,GAAAvN,iBAIA72G,KAAA82G,UAAA,WACA,MAAA6jB,GAAA,SAAAvW,GACA,MAAAA,GAAAtN,eAIA92G,KAAA60G,yBAAA,SAAArpC,GACA,MAAAmvD,GAAA,SAAAvW,GACA,MAAAA,GAAAvP,yBAAArpC,SCr5CA5xE,OAAA,gDAAA,aAAA,SAAA,aAAA,iBAAA,sCAAA,0BAAA,iBAAA,iBACA,SAAA6rC,EAAAvB,EAAAw8D,EAAA67B,EAAAC,EAAAzP,EAAAlnD,EAAA42D,GAyjEA,MAljEA,UAAA9jC,EAAAy2B,GA0WA,QAAAsN,GAAA5P,GAEA,GAAA6P,GAAA7P,EAAAc,SAWA,IAVAgP,GAAAA,EAAAtQ,MAAAqQ,EAKAC,EAAAh3G,QAHAg3G,EAAA,GAAA7P,GAAA4P,GAMAC,EAAA/P,QAAAC,IAEA8P,EAAApQ,WAEA,WADAjlF,SAAAjzB,MAAA,oCAIAuoH,KAOA,QAAAC,KAEA7zH,EAAA8zH,iBAEAC,EAAA19H,WAAA,WAEA,GAAA09H,EAAA,CAOA,GAFA/zH,EAAA8zH,kBAEAH,IAAAA,EAAApQ,WAGA,WADAvjH,GAAA2c,OAIAq3G,GAAA,EAGAC,EAAAN,EAAApQ,WAAAnwD,MAAA8gE,QAAA,GAAA,KAEA,KAEA/N,GAAArB,WAAA,IAGA,QAAA8O,KAGA,GAFAO,GAAA,GAEAR,IAAAA,EAAApQ,WAGA,WADAjlF,SAAAjzB,MAAA,iEAIA,KAAAsoH,EAAAtQ,KAAA3tH,GAYA,MAVA0+H,GAAAz3G,QAEA3c,EAAAq0H,WACAr0H,EAAAs0H,oBAEAj+H,YAAA,WAEAw9H,KACA,IAIA,IAAAF,EAAApQ,WAAAnwD,MAAA70D,IA6GA,CACAyB,EAAAq0H,WACAr0H,EAAAs0H,gBACAt0H,EAAA8zH,gBAEA,IAAAS,GAAAZ,EAAApQ,WAAAnwD,MAAA8gE,QAAAP,EAAApQ,WAAAnwD,MAAAohE,WACAD,GAAA,GAAAE,EAAAF,KAEAj2F,QAAAjzB,MAAA,0BAAAopH,EAAA,MAAAF,GACAE,EAAA,EAOA,IAAAC,GAAAj9B,EAAAiD,kBAAAi5B,EAAApQ,WAAAnwD,MAAA70D,IAAAo1H,EAAAtQ,KAAA3nG,MAEAi5G,EAAAC,EAAAC,qBAAAH,GAEArtH,EAAAssH,EAAApQ,WAAAnwD,MAAAohE,UAAAC,CAIAL,GAAA3L,SAAAkL,EAAApQ,WAAAnwD,MAAA70D,IAAAo2H,EAAAttH,OApIA,CACAotH,EAAA,EAOAL,EAAAz3G,OAEA,IAAA4lD,GAAAoxD,EAAApQ,WAAAhhD,OACA,IAAAA,EACA,CACAyxD,EAAA,CAEA,IAAA7iI,GAAAoxE,EAAAxnE,SAAAwnE,EAAAxnE,SAAA5B,kBAAAhD,EAEA,WAAAhF,GAAA,UAAAA,GAEA6O,EAAAq0H,WACAr0H,EAAA8zH,iBAEAgB,GAEA90H,EAAAs0H,gBAGAQ,EAAAvyD,EAEAuyD,EAAA/M,QAKA+M,EAAA3tH,YAAA,EAEA2tH,EAAAlN,OAEA3sF,EAAA65F,GAAAx3H,GAAA,QAAA0C,EAAA+0H,eAEAC,GAAA,EAGA3+H,WAAA,WACA8vH,GAAArB,WAAA,KACA,MASA9kH,EAAAs0H,gBACAt0H,EAAA8zH,iBAEAmB,EAAA1yD,EAAA3lE,YACAq4H,GAAA,IAAAA,EAMAC,EAAAD,GAJAA,MAAA9+H,IASA,GAAAk/F,GAAAs+B,EAAApQ,WAAAluB,GACA,IAAAA,EACA,CACA2+B,EAAA,EACAh0H,EAAAs0H,gBACAt0H,EAAA8zH,iBAEAqB,EAAAx4G,OAEA,IAAAhd,GAAA01F,EAAAywB,cAAA/oH,cAEA2oH,EAAA,WAAArwB,EAAAowB,gBAAA,IAOAI,GANAjpD,EAAAoY,kCAAA0wC,EAAA/lH,GACA,aAAA,wBAEA,oBAGA,WAAA01F,EAAAuwB,cAAA,IACAhpD,GAAAoY,kCAAA6wC,EAAAlmH,GACA,aAAA,wBAEA,mBAIAs1H,OAAA9+H,GAEA8+H,GAAA,IAAAA,EAMAC,EAAAD,GAJAA,MAAA9+H,IAoCAs+H,EAAA,EAEAW,IAGA,QAAAC,GAAAC,GAEAt1H,EAAA+nH,OAIA,IAAAsN,GAAAC,EAAAV,EAAAW,cAAAC,YAAA7B,EAAAtQ,MAAAuR,EAAAW,cAAAE,gBAAA9B,EAAAtQ,KACA,IAAAgS,GAKA,GADA1B,EAAA,GAAA7P,GAAAuR,GACA1B,EAAApQ,WAAA,CACA,IAAA+R,EAEA,MAAA3B,EAAAhQ,UAEAgQ,EAAA11G,MAMAyxE,GAAAgmC,eAAA/B,EAAApQ,WAAA11G,KAAAtP,IAAAo1H,EAAAtQ,KAAA3nG,KAAA1b,QAKAs+B,SAAAE,IAAA,gBACAx+B,EAAA2c,QAqBA,QAAAs3G,GAAAxpG,EAAAqiB,EAAA6oF,GAYA,GAVA3B,EAAAvpG,EAOAmrG,GAAA,EAGAjC,GAAAA,EAAApQ,WAAA,CAKA,GAAAsS,GAAAlC,EAAApQ,WAEAnwD,EAAAugE,EAAApQ,WAAAnwD,KAGA,MAEA3oC,EAAAqrG,GACArrG,GAAA2oC,EAAA8gE,SAHA,CASA0B,GAAA,CAKA,IAAA9Q,GAAAsP,EAAAtP,WACAA,IAAA,IAAAh4E,GAEAxO,QAAAC,MAAA,4CAGA,IAAA+2F,GAAA7qG,EAAA2oC,EAAA8gE,QAEA6B,GAAAC,GAAA,IAAAlpF,GAAAwoF,EAEAW,EAAAtC,GAAAA,EAAAtQ,MAAAsQ,EAAAtQ,KAAA1D,YAAAgU,EAAAtQ,KAAA1D,YAAAuW,GAAAA,EAAAj6B,WAAAi6B,EAAAj6B,UAAAv4B,MAAAwyD,EAAAj6B,UAAAv4B,UAAAvtE,EACA,IAAA4/H,GAAAE,GAAAC,GAAAA,EAAA10B,gBAAA00B,EAAA10B,eAAAtP,WAAAgkC,EAAA10B,eAAAtP,UAAA5/F,OAAA,EACA,CAKA2jI,IADAC,EAAA10B,eAAAtP,UAFA,GAGAxuB,QAEAqyD,GAAA,GAaA,GATAT,EAEA3B,EAAA11G,OAIA01G,EAAAtpC,YAGAspC,EAAApQ,WA6BA,YAVAwS,GAEAI,GAAA,EACAn2H,EAAA2c,SAKA04G,EAAAC,GAOA,KAAA3B,EAAApQ,WAAAnwD,MAEA,WADApzD,GAAA+nH,OAIA,IAAAqO,EAAA/lB,4BACA,CAGA,IAFA,GAAA10B,IAAA,EACA/jE,EAAA+7G,EAAApQ,WACA3rG,GACA,CACA,GAAAA,EAAAy+G,aAAAz+G,EAAAy+G,YAAAD,EAAA7lB,yBACA,CACA50B,GAAA,CACA,OAEA/jE,EAAAA,EAAAA,OAGA,GAAA+jE,EACA,CACAr9C,QAAAE,IAAA,YAAA5mB,EAAA0+G,UAEAt2H,EAAA+nH,OAKA,YADAkM,GAFAqB,EAAA3B,EAAApQ,WAAAnwD,MAAA8gE,QAAA,GAAA4B,EAAA,EAEAhpF,GAAA,IAMA,IAAAg4E,IAAA6O,EAAApQ,WAAAhhD,SAAAoxD,EAAApQ,WAAAluB,KAAAs+B,EAAApQ,WAAAluB,IAAAywB,eACA,CACA,GAAAyQ,GAAApB,EAAA9J,8BAAAsI,EAAApQ,WACA,IAAAgT,GAAAA,IAAA5C,EAAApQ,WACA,CACA,GAAAiT,GAAArB,EAAA9J,8BAAAwK,EACA,IAAAW,IAAAA,IAAAD,IAAAjB,GACA,CACA,GAAAkB,IAAAD,EACA,CACA,GAEAjB,EAAA3B,EAAA11G,OACA01G,EAAAtpC,iBACAspC,EAAApQ,YAAAoQ,EAAApQ,WAAAkT,YAAAD,GAEA,KAAA7C,EAAApQ,WAeA,YAXAwS,GAEAI,GAAA,EACAn2H,EAAA2c,SAKA04G,EAAAC,IAQA,IAAAA,EACA,CACA,GAAAoB,GAAAvB,EAAA9J,8BAAAsI,EAAApQ,WACA,IAAAmT,GAAAA,IAAA/C,EAAApQ,WACA,CACA,GAAAoT,GAAAhD,EAAApQ,WAEAqT,MAAAzgI,EACA,IAEAygI,EAAAjD,EAAApQ,WACAoQ,EAAAtpC,iBAEAspC,EAAApQ,YAAAoQ,EAAApQ,WAAAkT,YAAAC,GAEA/C,GAAApQ,YAEAoQ,EAAA11G,OAEA01G,EAAApQ,WAAAkT,YAAAC,IAEAp4F,QAAAjzB,MAAA,qFAQAsoH,EAAAh3G,QAEAg3G,EAAApQ,aAAAqT,GAEAt4F,QAAAjzB,MAAA,4EAIAsoH,EAAApQ,aAEAjlF,QAAAjzB,MAAA,iEACAsoH,EAAA/P,QAAA+S,QAUA,GAAAvC,EAAAtP,aACA6O,EAAApQ,WAAAnwD,MAAA70D,KACAo1H,EAAApQ,WAAAnwD,MAAA70D,KAAA61H,EAAAxL,kBACAn+F,GAAAkpG,EAAApQ,WAAAnwD,MAAAohE,WACA/pG,GAAAkpG,EAAApQ,WAAAnwD,MAAA8gE,QAIA,WADAkB,IAqBAxB,OAkIA,QAAAiD,GAAA19B,GAEA,IAAA29B,GAAAA,EAAA,GAAA/5H,gBAAAo8F,EAAA,GAAAp8F,cAAA,CAOAgtH,MAAA9uF,EAAA,OAAAk+D,EAAA,GAAAp8F,cAAAqE,iBAEA01H,EAAA77F,EAAA,oCAAAp6B,SAAAkpH,OAEA+M,EAAAzuG,OANA,0DAsWA,QAAAm+F,KACAC,GAEA,IAAA59G,GAAA,WAEA,GAAA8qH,GAAAA,EAAApQ,WAAA,CAKA,GAAAF,GAAAsQ,EAAAtQ,IACA,IAAAA,EAAA53D,GAAA,CAUA,GAAAsrE,GAAA/C,EAAAL,EAAApQ,WAAAnwD,MAAAohE,SACA,MAAAuC,GAAA,GAAA,CASA,IAJA,GAAAC,GAAA3T,EAAA53D,GAAA24D,YAAA9vH,QAAA+uH,GAEA4T,EAAA,GAAAnT,GAAAT,GACA6T,GAAA,EACAD,EAAA1T,aAEA2T,IACAD,EAAA1T,YAAAoQ,EAAApQ,aAIA0T,EAAAh5G,MAGAkoG,IAAA4Q,aAAAA,EAAAC,UAAAA,EAAAE,SAAAA,OAGA7gI,YAAAwS,EAAA,KAEAsuH,EAAAhpG,YAAAtlB,EAAA,MAGA,QAAA49G,KAEAuN,EAAA,MACA79H,KAAAghI,GAEA/oG,cAAA+oG,GAEAA,MAAAhhI,GA0CA,QAAAkwH,KASA,MAPAI,KAOAmP,OAEAA,GAAA,GAIAjC,GAAAA,EAAApQ,eAMA0Q,GAAAN,EAAApQ,WAAAnwD,MAAA8gE,QAAA,GAAA,OAJAl0H,GAAA2c,QAOA,QAAAy4G,KAEA,GAAAzB,GAIAA,EAAApQ,WAAA,CAIA,GAAAoQ,EAAApQ,WAAA11G,KAAA41G,eAAAkQ,EAAApQ,WAAA11G,KAAA41G,cAAAnxH,OAAA,EACA,CACA,GAAAqhI,EAAApQ,WAAAhhD,QAaA,YAVA4yD,EAAA9K,qBAAAsJ,EAAApQ,cAEA4R,EAAAnK,iBAAA2I,EAAApQ,WAAAqR,EAAAW,cAAArK,YAAA0J,EAAAW,cAAApK,qBAEAgJ,GAEAzkC,EAAAgwB,wBAAAiU,EAAApQ,WAAAoB,UAAAhF,YAAAgU,EAAApQ,WAAAhhD,QAAAviE,IAMA,IAAA2zH,EAAApQ,WAAAluB,IAYA,YAVA8/B,EAAA5K,iBAAAoJ,EAAApQ,cAEA4R,EAAAlK,aAAA0I,EAAApQ,WAAAqR,EAAAW,cAAArK,YAAA0J,EAAAW,cAAApK,qBAEAgJ,GAEAzkC,EAAAgwB,wBAAAiU,EAAApQ,WAAAoB,UAAAhF,YAAAgU,EAAApQ,WAAAluB,IAAAywB,cAAA9lH,KASA,IAAA2zH,EAAApQ,WAAAhhD,QAAA,CAgBA,GAAAhkE,GAAAo1H,EAAApQ,WAAA11G,KAAAtP,IACAsT,EAAA8hH,EAAAtQ,KAAA3nG,IAIAi4G,OAAAx9H,GAEAu5F,EAAAgmC,eAAAn3H,EAAAsT,EAAA7R,KAxhDA,GAAA2zH,OAAAx9H,GAEAi+H,EAAA,GAAAd,GAAAnN,EAAA8N,EAAA5N,EAAAG,EAAAC,GAEA2Q,GAAA,EACAnC,MAAA9+H,GACAkhI,MAAA,KAAAvgI,OAAAwgI,iBAAA,MAAAA,gBAEAC,MAAAphI,GAEAqhI,GAAA,EAEAxC,GAAA,EACAF,MAAA3+H,EAGAY,MAAA+tH,UAAA,WAEA,MAAAsP,GAAAtP,aAAAsS,GAAApC,GAAAjB,EAIA,IAAAa,GAAAllC,EAAA0F,UACAghC,EAAA1mC,EAAA8oB,iBACAx4G,EAAAjJ,KACAo+H,EAAA,GAAA5B,GAAA7jC,EAEAA,GAAApyF,GAAAk/B,EAAAK,OAAAM,sBAAA,WACAX,EAAAqB,SAAA,wBAAA,KAAA,2BAEA79B,EAAA2c,UAIA5lB,KAAAgoH,YAAA,WAEAoW,EAAAxK,QAaA5zH,KAAA0gI,kBAAA,WAEArD,EAAAtL,QAAAsN,EAAA1lB,mBACA0jB,EAAAjL,UAAAiN,EAAAzlB,oBAAA,MAEA3wG,EAAAy3H,oBAEA/nC,EAAApyF,GAAAk/B,EAAAK,OAAAG,iBAAA,WAEAR,EAAAqB,SAAA,mBAAA,KAAA,2BACA9mC,KAAA0gI,qBACA1gI,KAOA,IAAA2gI,IAAA,CACA3gI,MAAA4gI,eAAA,WAYA33H,EAAA8kH,cAGA4S,GAAA,EACA13H,EAAA+nH,SAIA,IAAAmO,OAAA//H,EAEAY,MAAA6gI,cAAA,SAAAC,GAEA3B,EAAA2B,CAEA,IAAAC,GAAA3B,CACAA,IAAA,CAEA,IAAA4B,GAAAL,CAGA,IAFAA,GAAA,GAEAG,EAEA,WADA73H,GAAA2c,OAiBA,IAAA4lD,OAAApsE,EAMA,IAAA0hI,EAAA1d,WAAA0d,EAAA3d,WAAAl6G,EACA,CAKA,IAAA,GAJAizH,GAAAvjC,EAAA+vB,sBAEAuY,EAAAtoC,EAAAoC,QAAAE,gBAEAngG,EAAAmmI,EAAA/E,EAAA3gI,OAAA,EAAA,EAAA0lI,GAAAnmI,GAAA,IAAAmmI,GAAAnmI,EAAAohI,EAAA3gI,OAAAT,GAAAmmI,GAAA,EAAA,EACA,CACA,GAAA/7B,GAAAg3B,EAAAphI,EACA,KAAAgmI,EAAA57B,WAAA47B,EAAA57B,WAAAA,EAAA,CAKA,GAAA47B,EAAA1d,WAAA,IAAA0d,EAAA1d,UAAA7lH,QAhBA,WAiBA,CACA6gI,EAAAx4G,OAEA,IAAAmtE,GAAA+tC,EAAA1d,UAAAvtE,OApBA,UAoBAt6C,OAAA,EAAAulI,EAAA1d,UAAA7nH,OApBA,UAoBAA,OAAA,EAEA,KAAAw3F,EAAAx1F,QAvBA,UAyBAw1F,EAAAA,EAAAl9C,OAzBA,OAyBAt6C,OAAAw3F,EAAAx3F,OAzBA,OAyBAA,QAGA,IAAA2C,GAAA60F,EAAA53F,MAAA,IACA,IAAA+C,GAAA,IAAAA,EAAA3C,OAEA,IAEA,GAAA+iG,GAAApgG,EAAA,GAAAA,EAAA,GACAkkG,EAAAzJ,EAAAgb,gBAAAzO,EAAAv4B,MAAA2xB,GACA,aAAA,wBAEA,mBAGA,IADA9yB,EAAA42B,GAAAA,EAAA7mG,OAAA,EAAA6mG,EAAA,OAAAhjG,GAEA,CACAosE,EAAA5qE,WAAAktE,KAAAC,YAEAvC,EAAAA,EAAA7hE,WAEA,QAGA,MAAA2K,GAEAizB,QAAAjzB,MAAAA,OAKA,KAIA,GAAA8tF,GAAAzJ,EAAAgb,gBAAAzO,EAAAv4B,MAAAomB,GACA,aAAA,wBAEA,mBAGA,IADAvnB,EAAA42B,GAAAA,EAAA7mG,OAAA,EAAA6mG,EAAA,OAAAhjG,GAEA,CACAosE,EAAA5qE,WAAAktE,KAAAC,YAEAvC,EAAAA,EAAA7hE,WAEA,QAGA,MAAA2K,GAEAizB,QAAAjzB,MAAAA,IAKA,IAAAk3D,EACA,CACA,GAAAs1D,EAAA3d,WAAAl6G,GAAA63H,EAAA1d,UAMA,CACA,GAAAhhB,GAAAzJ,EAAArgF,eAAA4sF,EAAAv4B,MAAAm0D,EAAA1d,UACA53C,GAAA42B,GAAAA,EAAA7mG,OAAA,EAAA6mG,EAAA,OAAAhjG,OAPA,CACA,GAAAgjG,GAAAzJ,EAAA+e,WAAAxS,EAAAv4B,MAAA,OACAnB,GAAA42B,GAAAA,EAAA7mG,OAAA,EAAA6mG,EAAA,OAAAhjG,GASA,GAAAosE,EAQA,QAKAA,GAEAjkC,QAAAjzB,MAAA,0CAAAwsH,EAAA1d,WAIA,GAAA8d,GAAAj4H,EAAA8kH,aAAAiT,CAEA,KAAApE,IAAAA,EAAApQ,WAAA,CACA,GAAAsU,EAAA3d,YAAAl6G,EAgBA,MAfAy0H,GAAA,EACAz0H,EAAA2c,aAEAk7G,EAAA1d,WAAA53C,GAEA01D,GAAAH,KAEAD,EAAAK,kBAAA31D,EACAviE,EAAAm4H,0BAAAN,KAGAI,GAAAH,IAEA93H,EAAA+kH,qBAcA,KAAAxiD,EAIA,MAFAjkC,SAAAjzB,MAAA,aAAAwsH,EAAA1d,gBACAsa,EAAA,EAIA,IAAA2D,GAAAn9F,EAAAsnC,GAAAtpE,KAAA,mBACA,KAAAm/H,EAGA,MAFA95F,SAAAjzB,MAAA,YAAAwsH,EAAA1d,gBACAsa,EAAA,EAIA,IAAA4D,GAAAD,EAAAvU,IAAAuU,EAAAvU,IAAAuU,EAAA1T,KAAA,EAEA,IAAA0T,EAAA1T,KAEA,IAAA,GAAA4T,GAAA,EAAAA,EAAAF,EAAA1T,KAAApyH,OAAAgmI,IACA,CACA,GAAAhjI,GAAA8iI,EAAA1T,KAAA4T,EAEA,IAAAT,EAAA1d,YAAA7kH,EAAA+/F,IAAA0wB,eACA,CACAsS,EAAA/iI,CACA,QAMA,WADAm+H,GAAA4E,GAIA,GAAAE,IAAA5E,EAAApQ,WAAAhhD,UAAAoxD,EAAApQ,WAAAluB,GAQA,IAPAkjC,GACAj6F,QAAAjzB,MAAA,0CAMAwsH,EAAA3d,WAAAl6G,EACA,CACA,GAAAw4H,GAAAX,EAAA1d,WAAA0d,EAAA1d,YAAAwZ,EAAApQ,WAAA11G,KAAA41G,aAMA,IAJA+U,GACAl6F,QAAAjzB,MAAA,+EAGAmtH,GAAAD,EAEA,YADA9D,EAAA,EAIAwD,GAEA7C,IAIAxB,QAIA,CACA,IAAAqE,IAAAH,EAGA,WADA93H,GAAA2c,OASA,IALAk7G,EAAA1d,UAKA0d,EAAA1d,YAAA53C,EAGA,MAGAs1D,GAAA1d,YAEA0d,EAAAK,kBAAA31D,GAGAviE,EAAAm4H,0BAAAN,IAyBA,IAAApD,GAAA,EAEAV,MAAA59H,GAqOAy/H,GAAA,EAGA5B,EAAA,EAEA8B,GAAA,GAuQA/+H,MAAAytH,UAAA,WAEA,MAAA4P,GAAA5P,YAGA,IAAAiU,GAAA,SAAAl2D,GAEA,GAAAm2D,IAAA,IAAA,MAAA,UAAA,KAAA,QAAA,KAAA,KAAA,MACAC,GAAA,IAAA,IAAA,IAAA,IAAA,KAAA,KAAA,IAAA,KAGAC,EAAA,SAAA/0G,EAAAyX,GAEA,KAAAzX,EAAAg1G,KAAAvmI,QAAA,GAAA,CAKA,GAAA8rB,GAAAyF,EAAAhW,KAAAvb,MACAgpC,GAAAw9F,QAAA16G,GAAAyF,EAAAggC,QACAhgC,EAAAhW,MAAAgW,EAAAg1G,KACAh1G,EAAAk1G,QAAAl1G,EAAA3jB,KAAA3L,UAAA,EAAAsvB,EAAAm1G,WACA,iCAAAn1G,EAAAggC,QAAA,KACAhgC,EAAA3jB,KAAA3L,UAAAsvB,EAAAm1G,UAAAn1G,EAAAo1G,SACA,UAAAp1G,EAAA3jB,KAAA3L,UAAAsvB,EAAAo1G,QAAAp1G,EAAA3jB,KAAA5N,QACAuxB,EAAAg1G,KAAA,GACAh1G,EAAA3jB,KAAA,GACA2jB,EAAAm1G,WAAA,EACAn1G,EAAAo1G,SAAA,EACAp1G,EAAAggC,YAGAvoB,GAEAinC,QAAAA,EACA22D,cAAA,GACAJ,WACAjrH,KAAA,GACAsrH,kBAAAhjI,GAEAmlC,GAAAinC,QAAA62D,mBAAA72D,EAAAhmE,SAgBA,KAdA,GAAAsnB,IAEAw1G,OAAA,EACAx1E,QAAA,EACAm1E,WAAA,EACAC,SAAA,EACAprH,KAAA,GACAkrH,OAAA,GACAF,KAAA,GACA34H,KAAA,IAGAsoC,EAAAlN,EAAAinC,QAAA62D,mBAAA9mI,OACAT,EAAA,EACAA,GAAA22C,GACA,CACA,GAAA3kB,EAAAw1G,OAGA,GADAx1G,EAAA3jB,MAAAo7B,EAAAinC,QAAA62D,mBAAAvnI,GACA,KAAAypC,EAAAinC,QAAA62D,mBAAAvnI,GAAA,CACAgyB,EAAAw1G,OAAA,CAEA,IAAAC,GAAAz1G,EAAA3jB,KAAA7H,MAAA,aACAihI,IAAAZ,EAAApkI,QAAAglI,EAAA,KAAA,IAEAV,EAAA/0G,EAAAyX,GACAzX,EAAAhW,MAAA,UAMAhc,IAAA22C,GAAAlN,EAAAinC,QAAA62D,mBAAAvnI,GAAAwG,MAAA,OAEAugI,EAAA/0G,EAAAyX,GAGAzpC,EAAA22C,IAEA3kB,EAAAhW,MAAAytB,EAAAinC,QAAA62D,mBAAAvnI,GACAgyB,EAAAk1G,QAAAz9F,EAAAinC,QAAA62D,mBAAAvnI,KAGA8mI,EAAArkI,QAAAgnC,EAAAinC,QAAA62D,mBAAAvnI,KAAA,GAEA+mI,EAAA/0G,EAAAyX,GAEAzX,EAAAm1G,UAAAn1G,EAAA3jB,KAAA5N,OACAuxB,EAAAo1G,QAAAp1G,EAAA3jB,KAAA5N,OAAA,EACAuxB,EAAAg1G,MAAAv9F,EAAAinC,QAAA62D,mBAAAvnI,GACAgyB,EAAA3jB,MAAAo7B,EAAAinC,QAAA62D,mBAAAvnI,GAEA+mI,EAAA/0G,EAAAyX,IAEA,KAAAA,EAAAinC,QAAA62D,mBAAAvnI,IAEAgyB,EAAAw1G,OAAA,EACAx1G,EAAA3jB,MAAAo7B,EAAAinC,QAAA62D,mBAAAvnI,KAIA,GAAAgyB,EAAAg1G,KAAAvmI,SAEAuxB,EAAAm1G,UAAAn1G,EAAA3jB,KAAA5N,QAEAuxB,EAAAo1G,QAAAp1G,EAAA3jB,KAAA5N,OAAA,EACAuxB,EAAAg1G,MAAAv9F,EAAAinC,QAAA62D,mBAAAvnI,GACAgyB,EAAA3jB,MAAAo7B,EAAAinC,QAAA62D,mBAAAvnI,GAGAA,KAWA,MAJAypC,GAAAztB,KAAAgW,EAAAhW,KACAytB,EAAA49F,cAAAr1G,EAAAk1G,OACAz9F,EAAAinC,QAAAhmE,UAAA++B,EAAA49F,cAEA59F,GAGAw7F,MAAA3gI,GAiBA++H,EAAA,SAAAqE,EAAAnQ,GAiHA,QAAAoQ,GAAAh6H,GAEAA,GAAA1I,OAAAwgI,gBAAAmC,SAEAn7F,QAAAC,MAAA,2BACAznC,OAAAwgI,gBAAA5sC,SAEAr0F,WAAA,WAEAmjI,GAAA,IACA,IAIAE,IAKA,QAAAA,KAKAnC,EAAA,GAAAoC,0BAEAnC,GAAAoC,IAEArC,EAAAqC,UAAAA,EAEArC,EAAAsC,WAAA,SAAAj8H,GAGA,GAAA25H,EAAA,CAKAj5F,QAAAC,MAAA,iBAAA3gC,EAAAzM,KAAA,MAAAyM,EAAAk8H,UAGA,IAAAC,GAAAn8H,EAAA+L,OAAAiwH,SACA,IAAAG,GAAAA,EAAAjB,QAAAhkI,eAAA8I,EAAAk8H,WAAA,CAQA,GAAApkI,MAYA4pC,QAAAruC,KACA8oI,EAAAx3D,QAAAznE,iBAAA,WACA,SAAA4nB,GAEA4b,QAAAC,MAAA,WAAA7b,EAAAhtB,IACAgtB,EAAA1K,UAAA,WAKA,IAAAtiB,GAAA,OAAAqkI,EAAAjB,QAAAl7H,EAAAk8H,UACAx7F,SAAAC,MAAA,qBAAA7oC,EACA,IAAAskI,GAAAD,EAAAx3D,QAAAoB,cAAA,IAAAjuE,EACAskI,KAEA17F,QAAAC,MAAA,UACAy7F,EAAAhiH,UAAA,UAIA+hH,EAAAZ,cAAAv7H,EAAAk8H,cAIAvC,EAAA0C,MAAA,SAAAr8H,GAGA,GAAA25H,EAeA,GAHAj5F,QAAAC,MAAA,aAGAi5F,EACA,CACA,GAAAuC,GAAAn8H,EAAA+L,OAAAiwH,UAEAM,GAAAt8H,EAAAu8H,cAAA5C,IAAA35H,EAAA+L,UAAAowH,GAAAA,EAAAx3D,QAAA62D,mBAEAW,KAEAA,EAAAx3D,QAAA62D,mBAEAW,EAAAx3D,QAAAhmE,UAAAw9H,EAAAx3D,QAAA62D,sBAIA95F,QAAAruC,KACA8oI,EAAAx3D,QAAAznE,iBAAA,WACA,SAAA4nB,GAEA4b,QAAAC,MAAA,gBAAA7b,EAAAhtB,IACAgtB,EAAA1K,UAAA,YAKA+hH,EAAAx3D,QAAA62D,uBAAAjjI,IAIA+jI,EAEAl6H,EAAAo6H,WAIA97F,QAAAC,MAAA,uBAKAv+B,GAAAo6H,YAIA7C,EAAA7/F,QAAA,SAAA95B,GAGA,GAAA25H,IAKAj5F,QAAAjzB,MAAA,aAEAizB,QAAAC,MAAAg5F,EAAA1pH,MACAywB,QAAAC,MAAAznC,OAAAwgI,gBAAA+C,QACA/7F,QAAAC,MAAAznC,OAAAwgI,gBAAAmC,SACAn7F,QAAAC,MAAAznC,OAAAwgI,gBAAAgD,UAEA9C,GACA,CACA,GAAAuC,GAAAn8H,EAAA+L,OAAAiwH,SACAG,KAEAA,EAAAx3D,QAAA62D,mBAEAW,EAAAx3D,QAAAhmE,UAAAw9H,EAAAx3D,QAAA62D,sBAIA95F,QAAAruC,KACA8oI,EAAAx3D,QAAAxlE,cAAAjC,iBAAA,WACA,SAAA4nB,GAEA4b,QAAAC,MAAA,kBAAA7b,EAAAhtB,IACAgtB,EAAA1K,UAAA,YAIA+hH,EAAAx3D,QAAA62D,uBAAAjjI,KAKA,IAAAuzH,GAAAN,GAAAgL,EAAA/K,WACAkO,GAAAnO,OAAAM,EAEA6N,EAAAxO,KAAAqL,EAAAnL,UACAsO,EAAAgD,MAAA,EAIAhD,EAAA1pH,KAAAA,EAGA/W,OAAAwgI,gBAAAkD,MAAAjD,GAEAzgI,OAAAwgI,gBAAA+C,SAEA/7F,QAAAC,MAAA,cACAznC,OAAAwgI,gBAAAmD,UA1TA,GAAAb,OAAAzjI,GACAukI,EAAA/G,GAAAA,EAAApQ,WAAAoQ,EAAApQ,eAAAptH,GACAosE,EAAAm4D,EAAAA,EAAAn4D,YAAApsE,EACAukI,IAAAA,EAAArlC,GAEA,MAAA+zB,GAAAA,EAAA,KAGA/yH,WAAA,WACA8vH,GAAArB,WAAA,KACA,IAEAsS,GAAA,EAEAI,GAAAj1D,GACA,CAEAs0D,EADA57F,EAAAsnC,IAIAA,EAAA62D,qBAEA72D,EAAAhmE,UAAAgmE,EAAA62D,mBACA72D,EAAA62D,uBAAAjjI,IAEAyjI,EAAAnB,EAAAl2D,GAIA,IAAA80D,EAIA,MAFA76F,GAAAqB,SAAA,0BAAA,OAAA,+BACA6xD,GAAAxzD,KAAAM,EAAAK,OAAAW,yBAAAm9F,IAAApB,GAIA,KAAAA,GAAAziI,OAAAwgI,gBAAA+C,OAKA,WAFAvjI,QAAAwgI,gBAAAmD,QAKA,IAAA5sH,GAAA0rH,GAAAtE,CAEApnH,KAEA0pH,IAIAC,IAEAD,EAAA0C,OAEA1C,EAAA0C,OAAAE,cAAA,EAAAxwH,OAAA4tH,IAGAA,EAAAqC,cAAAzjI,GAEAohI,EAAAsC,eAAA1jI,IAUAohI,EAAA0C,UAAA9jI,GAUAohI,EAAA7/F,YAAAvhC,GAWAohI,MAAAphI,IASAmoC,QAAAC,MAAA,WAAAznC,OAAAwgI,gBAAA+C,QACA/7F,QAAAC,MAAA,aAAAznC,OAAAwgI,gBAAAgD,UACAh8F,QAAAC,MAAA,YAAAznC,OAAAwgI,gBAAAmC,SAyBAD,GAAA,KAkMAoB,EAAA,WAEA,GAAA3C,GAAAb,CAQA,IANAa,GACA9R,GAAArB,WAAA,IAGAsS,GAAA,GAEAC,EAMA,YAJAY,IACAz7F,EAAAqB,SAAA,yBAAA,OAAA,2BACA6xD,EAAAxzD,KAAAM,EAAAK,OAAAY,2BAAAtnC,KAMAW,QAAAwgI,gBAAAvP,SAGAoP,MAAAhhI,EA8DAY,MAAAg+H,cAAA,WAOA,GALAf,EAAA,EAEAgB,GAAA,GAGArB,IAAAA,EAAApQ,WAGA,WADAvjH,GAAA2c,OAIAs3G,GAAAN,EAAApQ,WAAAnwD,MAAA8gE,QAAA,GAAA,IAGAn9H,KAAAqjI,SAAA,WAaA,GAXApG,EAAA,EAEAoD,GAAA,GASAzD,IAAAA,EAAApQ,WAGA,WADAvjH,GAAA2c,OAIAs3G,GAAAN,EAAApQ,WAAAnwD,MAAA8gE,QAAA,GAAA,IAiGAn9H,KAAA65D,OAAA,WAEA,IAAA+iE,IAAAA,EAAApQ,WAGA,WADAxsH,MAAAguH,oBAIA,KAAA/kH,EAAA8kH,YAIA,WADA9kH,GAAA4nH,MAIA,IAAAwO,EAAA9lB,8BAGA,IADA,GAAA14F,GAAA+7G,EAAApQ,WACA3rG,GACA,CACA,GAAAA,EAAAijH,aAAAjjH,EAAAijH,YAAAzE,EAAA5lB,yBACA,CACA,GAEAmjB,EAAA11G,aACA01G,EAAApQ,YAAAoQ,EAAApQ,WAAAkT,YAAA7+G,GAEA,OAAA+7G,GAAApQ,eAOAqQ,SALAyB,IAAA,GASAz9G,EAAAA,EAAAA,OAIA7gB,KAAA+jI,kBAAA,IAIA/jI,KAAA6tH,YAAA,SAAAf,GAMA,GALA7jH,EAAA8kH,aAEA9kH,EAAA+nH,QAGAlE,EAAAthD,SAAAshD,EAAAxuB,KAAAwuB,EAAAxuB,IAAAywB,cACA,CACA,GAAAsF,GAAA+J,EAAA9J,8BAAAxH,EACA,IAAAuH,GAAAA,IAAAvH,EACA,CACA,GAAAkX,GAAA,SAAAC,GAEA,GAAAA,EAAArjI,UAAA,QAAAqjI,EAAArjI,SAAA,MAAAqjI,EAEA,IAAAA,EAAAh9G,YAAAg9G,EAAAh9G,SAAA1rB,QAAA,GAEA,IAAA,GAAAT,GAAA,EAAAA,EAAAmpI,EAAAh9G,SAAA1rB,OAAAT,IACA,CACA,GAAAkxF,GAAAi4C,EAAAh9G,SAAAnsB,GACAopI,EAAAF,EAAAh4C,EACA,IAAAk4C,EAAA,MAAAA,KAGAC,EAAAH,EAAA3P,EACA8P,KAAArX,EAAAqX,IAIAzH,EAAA5P,IAGA9sH,KAAAs9H,SAAA,WACAY,MAAA9+H,GAEAykI,KAGA7jI,KAAA+8H,eAAA,WACA,GAAAmE,IAAA,CAEA,IAAAlE,EACA,CACAkE,GAAA,CAEA,IAAA5vH,GAAA0rH,CACAA,OAAA59H,GACAu4B,aAAArmB,GAEA0rH,MAAA59H,GAEA8hI,GACA9R,GAAArB,WAAA,KAIA/tH,KAAAu9H,cAAA,WACA,GAAA2D,GAAAjD,CAEAF,KAEA75F,EAAA65F,GAAAj3H,IAAA,QAAAmC,EAAA+0H,eACAD,EAAA/M,SAEA+M,MAAA3+H,GAEA8hI,GACA9R,GAAArB,WAAA,IAEAkQ,GAAA,GAGAj+H,KAAA4lB,MAAA,WACA83G,EAAA,EACAL,EAAAz3G,QACA3c,EAAAq0H,WACAr0H,EAAAs0H,gBACAt0H,EAAA8zH,iBACAqB,EAAAx4G,QACAg3G,MAAAx9H,GACAy/H,GAAA,GAGA7+H,KAAA6wH,KAAA,WAEA,GAAA+L,GAAAA,EAAAtQ,OAAAsQ,EAAAtQ,KAAA3tH,GAGA,WADAm+H,IAGA,IAAAiB,EAEAE,GAAA,EACAF,EAAAlN,OACAzB,GAAArB,WAAA,QAEA,IAAAmQ,EAEAC,MAAA/+H,QAIA,KAAAi+H,EAAAxM,OAMA,MAJAtpF,SAAAE,IAAA,0CAEAznC,KAAA4lB,YACA5lB,MAAAguH,oBAKAqQ,MAGAr+H,KAAAgxH,MAAA,WAEAoM,GAAA,EAEAJ,EAEAh9H,KAAA+8H,iBAEAkB,GAEAA,GAAA,EACAF,GAEAA,EAAA/M,QAEA5B,GAAArB,WAAA,KAEAsS,EAEAwD,IAIAxG,EAAArM,QAGAoN,EAAAx4G,SAGA5lB,KAAAy2H,wBAAA,WAsBA,WAAA,KAXA99B,EAAA0c,sCAcAr1G,KAAAokI,2BAAA,SAAA9wC,GACA,GAAArqF,EAAA8kH,YAEA9kH,EAAA+nH,YAIA,IAAA4L,GAAAA,EAAApQ,WAIA,WADAvjH,GAAA4nH,MAKA,KAAA+L,EAGA,WADA58H,MAAAguH,oBAMAkP,GAFA5pC,EAAAyrC,EAAA,EAAAnC,EAAApQ,WAAAnwD,MAAA8gE,QAAA,GAEA,IASAn9H,KAAA+jI,iBAAA,WACA/jI,KAAAokI,4BAAA,IAGApkI,KAAAqkI,qBAAA,WACArkI,KAAAokI,4BAAA,IAaApkI,KAAAskI,4BAAA,SAAAC,EAAA1gC,EAAA1hE,GAEAu7F,EAAAv7F,EAIAy6F,MAAAx9H,GAEAu5F,EAAAgmC,eAAA4F,EAAA1gC,EAAA56F,IAsCAjJ,KAAAguH,mBAAA,WACA,MAAA/kH,GAAA8kH,gBACA9kH,GAAA+nH,QAKA4L,MACA3zH,GAAA4nH,WAIA7wH,MAAAohI,8BAAAhiI,IAGA,IAAAg+H,IAAA,CAEAp9H,MAAAohI,0BAAA,SAAAN,GAIA,GAAA5E,GAAAvjC,EAAA+vB,sBAGAuY,EAAAtoC,EAAAoC,QAAAE,gBAMAupC,MAAAplI,GACA8hI,EAAAj4H,EAAA8kH,WACA,IAAAmT,GAAAtE,EACA,CAEA,GADAkE,EAAA3d,WAAA2d,EAAA3d,oBAAAsZ,IACA4C,EAAAhmB,wCAGA,YADA+jB,GAAA,EAIAoH,GAAA5H,EAAApQ,WACAvjH,EAAA+nH,QAGAoM,GAAA,CAOA,IAAA5xD,GAAAs1D,GAAAA,EAAAK,kBAAAL,EAAAK,sBAAA/hI,GAEAT,EAAAmiI,GAAAA,EAAA1d,UAAA0d,EAAA1d,cAAAhkH,EAEA,KAAAosE,EACA,CACA7sE,GAEA4oC,QAAAjzB,MAAA,wCAGA,KAAA,GAAAxZ,GAAAmmI,EAAA/E,EAAA3gI,OAAA,EAAA,EAAA0lI,GAAAnmI,GAAA,IAAAmmI,GAAAnmI,EAAAohI,EAAA3gI,OAAAT,GAAAmmI,GAAA,EAAA,EACA,CACA,GAAA/7B,GAAAg3B,EAAAphI,EACA,IAAAoqG,GAMA,IAAA47B,IAAAA,EAAA57B,WAAA47B,EAAA57B,WAAAA,EAAA,CAKA,GAAAvmG,EACA,CACA,GAAAyjG,GAAAzJ,EAAArgF,eAAA4sF,EAAAv4B,MAAAhuE,EAEA6sE,GAAA42B,GAAAA,EAAA7mG,OAAA,EAAA6mG,EAAA,OAAAhjG,OAEA,IAAA8lG,EAAAlK,iBAEA8lC,GAAAA,EAAAr2B,gBAAAq2B,EAAAr2B,eAAAtP,UACA,CAIA,GAAA2lC,EAAAr2B,eAAAtP,UAFA,IAEA2lC,EAAAr2B,eAAAtP,UAFA,GAEAxuB,OAAAm0D,EAAAr2B,eAAAtP,UAFA,GAEAxuB,QAAAu4B,EAAAv4B,MACA,CACA,GAAAy1B,GAAAzJ,EAAA+e,WAAAxS,EAAAv4B,MAAA,OACAnB,GAAA42B,GAAAA,EAAA7mG,OAAA,EAAA6mG,EAAA,OAAAhjG,IAKA,GAAAosE,EAEA,WAhCAjkC,SAAAjzB,MAAA,iCA0CA,GALAk3D,IAEAA,EAAAmtB,EAAA0c,uCAGA7pC,EAGA,WADAviE,GAAA2c,OAIA,IAAAy7G,GAAAn9F,EAAAsnC,GAAAtpE,KAAA,mBAEA,KAAAm/H,EACA,CAkCA,IAjCA,GAAAoD,IAAA,EACAC,EAAA,SAAApkI,GAEA,IAAAA,EAEA,OAAA,CAGA,KAAA,GAAAxF,GAAA,EAAAA,EAAAwF,EAAA/E,OAAAT,IACA,CAGA,GAFA0wE,IAAAlrE,EAAAxF,KAAA2pI,GAAA,GAEAA,EACA,CACA,GAAA5/D,GAAA3gC,EAAA5jC,EAAAxF,IAAAoH,KAAA,mBACA,IAAA2iE,EAGA,MADAw8D,GAAAx8D,GACA,EAKA,GADA6/D,EAAApkI,EAAAxF,GAAAmsB,UAGA,OAAA,EAIA,OAAA,GAGAzC,EAAAgnD,EACAhnD,GAAA,SAAAA,EAAAxgB,SAAA5B,eAEAoiB,EAAAA,EAAA7a,UAGA,KAAA6a,EAGA,WADAvb,GAAA2c,OAIA8+G,IAAAlgH,IAGA,IAAA68G,EAGA,WADAp4H,GAAA2c,OAIA,IAAA++G,GAAAtD,EAAAvU,IAAAuU,EAAAvU,IAAAuU,EAAA1T,KAAA,GACAgP,EAAAgI,EAAA/W,SAkBA,IAjBAgP,GAAAA,EAAAtQ,MAAAqQ,EAMAC,EAAAh3G,QAJAg3G,EAAA,GAAA7P,GAAA4P,GAOAC,EAAA/P,QAAA8X,IAEA/H,EAAApQ,YAAA7tH,IAEAi+H,EAAAh3G,QACAg3G,EAAAnQ,WAAA9tH,KAGAi+H,EAAApQ,WAGA,WADAvjH,GAAA2c,OAIAs7G,IAAAsD,GAAAA,IAAA5H,EAAApQ,WAEAvjH,EAAA4nH,OAIAgM,KAKA78H,KAAA4kI,aAAA,WAEA,MAAAhI,IAAAA,EAAApQ,YAAAoQ,EAAApQ,WAAAluB,IAGA,IAAA8gC,IAAA,EACAH,GAAA,CACAj/H,MAAA6kI,qBAAA,SAAAC,GAEA7F,EAAA6F,MC1jEAlrI,OAAA,kCAAA,eAAA,aAAA,SAAA,SAAAgkG,EAAA8C,EAAA5nC,GAqUA,MA5TA,UAAAisE,EAAAC,GA0CA,QAAA9nC,GAAAzN,GACA,OAAAw1C,GAAA,OAAAx1C,EAAAj6D,OAgDA,QAAA0vG,GAAA5nI,GAEA,MAAAA,IAAA,GAAAA,EAAA2L,EAAA+sC,MAAAz6C,OAGA,QAAA4pI,GAAAhM,GAEA,GAAA+L,EAAA/L,GAAA,CAIA,GAAA1pC,GAAAxmF,EAAA+sC,MAAAmjF,EAEA,OAAAj8B,GAAAzN,GACAA,EAGA01C,EAAA11C,EAAAnyF,MAAA,IAeA,QAAA8nI,GAAAjM,GAEA,GAAA+L,EAAA/L,GAAA,CAIA,GAAA1pC,GAAAxmF,EAAA+sC,MAAAmjF,EAEA,OAAAj8B,GAAAzN,GACAA,EAGA21C,EAAA31C,EAAAnyF,MAAA,IArIA,GAAA2L,GAAAjJ,IAQAA,MAAAg2C,SASAh2C,KAAAq3C,UAAA,MASAr3C,KAAAq+F,QAAA0mC,CAEA,IAAAE,IAAA,CA8QA,IAtQAjlI,KAAAqlI,aAAA,SAAAA,GACAJ,EAAAI,GAcArlI,KAAAk9F,kBAAA,SAAA5/F,GAEA,GAAA4nI,EAAA5nI,GAIA,MAAA4/F,GAAAl9F,KAAAyvF,KAAAnyF,KASA0C,KAAAi7F,cAAA,WAEA,MAAA,OAAAhyF,EAAAouC,WASAr3C,KAAA0nH,cAAA,WAEA,OAAAz+G,EAAAgyF,iBAqCAj7F,KAAA68F,SAAA,SAAApN,GAEA,MAAA01C,GAAA11C,EAAAnyF,MAAA,IAyBA0C,KAAA8mD,SAAA,SAAA2oC,GAEA,MAAA21C,GAAA31C,EAAAnyF,MAAA,IAUA0C,KAAAslI,WAAA,SAAA71C,GAEA,MAAAxmF,GAAAo1F,QAAAqf,mBAAAjuB,EAAA9qE,OAUA3kB,KAAAyI,MAAA,WAEA,MAAA28H,GAAA,IASAplI,KAAA4V,KAAA,WAEA,MAAAuvH,GAAAnlI,KAAAg2C,MAAAz6C,OAAA,IAUAyE,KAAAulI,YAAA,SAAA91C,GAEA,MAAAxmF,GAAAR,UAAAgnF,GAUAzvF,KAAAwlI,WAAA,SAAA/1C,GAEA,MAAAxmF,GAAA2M,SAAA65E,GAUAzvF,KAAAyvF,KAAA,SAAAnyF,GAEA,GAAA4nI,EAAA5nI,GACA,MAAA2L,GAAA+sC,MAAA14C,IAYA0C,KAAAy7H,YAAA,SAAA9uD,GAIA,IAAA,GAFApxE,GAAA0N,EAAA+sC,MAAAz6C,OAEAT,EAAA,EAAAA,EAAAS,EAAAT,IACA,GAAAmO,EAAA+sC,MAAAl7C,GAAA6xE,OAAAA,EAEA,MAAA1jE,GAAA+sC,MAAAl7C,IAcAkF,KAAA0rH,cAAA,SAAA/mG,GAEA,GAAA8gH,GAAAx8H,EAAAo1F,QAAAqf,mBAAA/4F,EACA8gH,GAAAA,EAAA9pI,QAAA,iCAAA,iCAKA,KAAA,GAJA+pI,GAAA,GAAA5sE,GAAA2sE,GAAA/gE,oBAAA9H,WAEArhE,EAAA0N,EAAA+sC,MAAAz6C,OAEAT,EAAA,EAAAA,EAAAS,EAAAT,IAAA,CAEA,GAAA6qI,GAAA18H,EAAAo1F,QAAAqf,mBAAAz0G,EAAA+sC,MAAAl7C,GAAA6pB,KACAghH,GAAAA,EAAAhqI,QAAA,iCAAA,iCAGA,IAAA+pI,GAFA,GAAA5sE,GAAA6sE,GAAAjhE,oBAAA9H,WAGA,MAAA3zD,GAAA+sC,MAAAl7C,KAiCAkqI,EAAA,CAEAA,EAAA3tF,YACAr3C,KAAAq3C,UAAA2tF,EAAA3tF,UAIA,KAAA,GADA97C,GAAAypI,EAAAhvF,MAAAz6C,OACAT,EAAA,EAAAA,EAAAS,EAAAT,IAAA,CACA,GAAA20F,GAAA,GAAAmO,GAAAonC,EAAAhvF,MAAAl7C,GAAAA,EAAAkF,KACAA,MAAAg2C,MAAAz5C,KAAAkzF,IA9BA,WAOA,IAAA,GALA55E,GAAA5M,EAAA+sC,MAAAz6C,OAEAqqI,GAAA,EACAC,EAAA58H,EAAAy+G,gBAAA9pB,EAAAI,YAAAJ,EAAAK,aAEAnjG,EAAA,EAAAA,EAAA+a,EAAA/a,IAAA,CAEA,GAAAoqG,GAAAj8F,EAAA+sC,MAAAl7C,EACA,KAAAoqG,EAAAnH,YAAA,CAEA,GAAAgB,GAAAmG,EAAA5H,2BAAAsoC,EAAAC,EAAAjoC,EAAA0C,gBAAAulC,GAAAjoC,EAAAM,aACAgH,GAAApG,UAAAC,GAGA6mC,GAAA1gC,EAAA5H,4BAAA4H,EAAAnH,aAAA8nC,UC9SAjsI,OAAA,uCAAA,cAAA,SAAA8mG,GAEA,GAAAolC,KAUAA,GAAAC,SAAA,SAAAllH,GAEA7gB,KAAA6gB,OAAAA,EAEA7gB,KAAArB,GAAA,GAQAqB,KAAA4tH,QAAA,WAGA,IADA,GAAAjlH,GAAA3I,KACA2I,EAAAkY,QACAlY,EAAAA,EAAAkY,MAGA,OAAAlY,IASA3I,KAAA0/H,YAAA,SAAA/2H,GAGA,IADA,GAAAkY,GAAA7gB,KAAA6gB,OACAA,GACA,CACA,GAAAA,GAAAlY,EAEA,OAAA,CAGAkY,GAAAA,EAAAA,OAGA,OAAA,IAeAilH,EAAAE,kBAAA,SAAAnlH,GASA7gB,KAAA6gB,OAAAA,EASA7gB,KAAAinB,aAAA7nB,GASAY,KAAA1C,UAAA8B,GASAY,KAAAu/H,SAAA,GAWAv/H,KAAA8jI,YAAA,SAAAmC,GAEA,GAAA,KAAAjmI,KAAAu/H,SAEA,OAAA,CAGA,IAAA2G,GAAAlmI,KAAA4tH,SACA,KAAAsY,EAAAxxE,GAEA,OAAA,CAGA,IAAA7/C,GAAAqxH,EAAAxxE,GAAAyxE,UACAF,GAAA1qI,OAAA,IAEAsZ,EAAAoxH,EAGA,KAAA,GAAAnrI,GAAA,EAAAA,EAAA+Z,EAAAtZ,OAAAT,IAEA,GAAAkF,KAAAu/H,SAAAhiI,QAAAsX,EAAA/Z,KAAA,EAEA,OAAA,CAIA,QAAA,GAWAkF,KAAAs/H,YAAA,SAAA8G,GAEA,GAAA,KAAApmI,KAAAu/H,SAEA,OAAA,CAGA,IAAA2G,GAAAlmI,KAAA4tH,SACA,KAAAsY,EAAAxxE,GAEA,OAAA,CAGA,IAAA7/C,GAAAqxH,EAAAxxE,GAAA2xE,UACAD,GAAA7qI,OAAA,IAEAsZ,EAAAuxH,EAGA,KAAA,GAAAtrI,GAAA,EAAAA,EAAA+Z,EAAAtZ,OAAAT,IAEA,GAAAkF,KAAAu/H,SAAAhiI,QAAAsX,EAAA/Z,KAAA,EAEA,OAAA,CAIA,QAAA,IAIAgrI,EAAAE,kBAAAloI,UAAA,GAAAgoI,GAAAC,SAcAD,EAAAQ,UAAA,SAAAzlH,GASA7gB,KAAA6gB,OAAAA,EASA7gB,KAAAwH,IAAA,IAGAs+H,EAAAQ,UAAAxoI,UAAA,GAAAgoI,GAAAC,SAaAD,EAAAS,QAAA,SAAA1lH,GASA7gB,KAAA6gB,OAAAA,EASA7gB,KAAAinB,YASAjnB,KAAAY,SAAA,MASAZ,KAAAouH,QAAA,GASApuH,KAAAwmI,qBAAA,WAOA,IAAA,GAJAC,GAAAzmI,KAAA4tH,UAEA79D,EAAA,EAEAj1D,EAAA,EAAAA,EAAAkF,KAAAinB,SAAA1rB,OAAAT,IACA,CACA,GAAA43B,GAAA1yB,KAAAinB,SAAAnsB,EACA,IAAA,QAAA43B,EAAA9xB,SACA,CACA,IAAA8xB,EAAA2pC,MAEA,QAEA,IAAA3pC,EAAA5b,QAAA4b,EAAA5b,KAAA4vH,gBAAAh0G,EAAA5b,KAAA4vH,gBAAAD,EAAA7d,aAEA,QAIA74D,IADAr9B,EAAA2pC,MAAAsqE,+BAGA,QAAAj0G,EAAA9xB,WAEAmvD,GAAAr9B,EAAA8zG,wBAIA,MAAAz2E,IAaA/vD,KAAA4mI,WAAA,SAAAzkG,EAAA2qF,GAIA,IAAA,GAFA2Z,GAAAzmI,KAAA4tH,UAEA9yH,EAAA,EAAAA,EAAAkF,KAAAinB,SAAA1rB,OAAAT,IACA,CACA,GAAA43B,GAAA1yB,KAAAinB,SAAAnsB,EACA,IAAA,QAAA43B,EAAA9xB,SACA,CACA,GAAA8xB,GAAAo6F,EAEA,OAAA,CAGA,KAAAp6F,EAAA2pC,MAEA,QAGA,IAAA3pC,EAAA5b,QAAA4b,EAAA5b,KAAA4vH,gBAAAh0G,EAAA5b,KAAA4vH,gBAAAD,EAAA7d,aAEA,QAGA,IAAAie,GAAAn0G,EAAA2pC,MAAAsqE,0BACAxkG,GAAAA,QAAA0kG,MAEA,IAAA,QAAAn0G,EAAA9xB,SACA,CACA,GAAAgvE,GAAAl9C,EAAAk0G,WAAAzkG,EAAA2qF,EACA,IAAAl9C,EAEA,OAAA,GAKA,OAAA,GAaA5vE,KAAA8mI,WAAA,SAAAC,GAMA,IAAA,GAJAN,GAAAzmI,KAAA4tH,UAEAzrF,EAAA,EAEArnC,EAAA,EAAAA,EAAAkF,KAAAinB,SAAA1rB,OAAAT,IACA,CACA,GAAAksI,GAAAD,EAAA5kG,EAEAzP,EAAA1yB,KAAAinB,SAAAnsB,EAGA,IAAA,QAAA43B,EAAA9xB,SACA,CAEA,IAAA8xB,EAAA2pC,MAEA,QAGA,IAAA3pC,EAAA5b,QAAA4b,EAAA5b,KAAA4vH,gBAAAh0G,EAAA5b,KAAA4vH,gBAAAD,EAAA7d,aAEA,QAGA,IAAAie,GAAAn0G,EAAA2pC,MAAAsqE,0BAEA,IAAAE,EAAA,GAAAG,GAAAH,EAEA,MAAAn0G,EAGAyP,IAAA0kG,MAGA,IAAA,QAAAn0G,EAAA9xB,SACA,CACA,GAAAqmI,GAAAv0G,EAAAo0G,WAAAE,EACA,IAAAC,EAEA,MAAAA,EAGA9kG,IAAAzP,EAAA8zG,0BAgBAxmI,KAAAknI,YAAA,SAAA5pI,EAAAiuB,GAEA,IAAA,GAAAzwB,GAAA,EAAAA,EAAAkF,KAAAinB,SAAA1rB,OAAAT,IACA,CACA,GAAA43B,GAAA1yB,KAAAinB,SAAAnsB,EAEA,IAAA,QAAA43B,EAAA9xB,UAIA,KAFA2qB,EAAAA,OAEAjuB,EAEA,MAAAo1B,OAGA,IAAA,QAAAA,EAAA9xB,SACA,CACA,GAAAqmI,GAAAv0G,EAAAw0G,YAAA5pI,EAAAiuB,EACA,IAAA07G,EAEA,MAAAA,OAUAnB,EAAAS,QAAAzoI,UAAA,GAAAgoI,GAAAE,kBAcAF,EAAAqB,QAAA,SAAAtmH,GASA7gB,KAAA6gB,OAAAA,EASA7gB,KAAAinB,YASAjnB,KAAAY,SAAA,MAQAZ,KAAA8W,SAAA1X,GASAY,KAAAq8D,UAAAj9D,GASAY,KAAAwrE,YAAApsE,GAWAY,KAAA80H,gCAAA,SAAAyK,EAAA6H,GACA,GAAA7H,EAGA,IADA,GAAA1+G,GAAAumH,EAAApnI,KAAAA,KAAA6gB,OACAA,GACA,CACA,GAAAA,EAAA0+G,UAAA1+G,EAAA0+G,SAAAhiI,QAAAgiI,IAAA,EAEA,MAAA1+G,EAGAA,GAAAA,EAAAA,UAOAilH,EAAAqB,QAAArpI,UAAA,GAAAgoI,GAAAE,kBAcAF,EAAAuB,SAAA,SAAAxmH,GASA7gB,KAAA6gB,OAAAA,EASA7gB,KAAAY,SAAA,OASAZ,KAAAsuH,QAAA,GASAtuH,KAAA0sH,cAAA,GASA1sH,KAAA0mI,mBAAAtnI,GAQAY,KAAAsnI,0BAAA,WAEA,GAAAb,GAAAzmI,KAAA4tH,SAEA,IAAA6Y,EAAA9hH,MAAA8hH,EAAA9hH,KAAAppB,OAAA,CAiBA,IAAA,GARAiM,GAAAxH,KAAAsuH,QAAAtuH,KAAAsuH,QAAAtuH,KAAAwH,IAGA+/H,EAAA7mC,EAAAiD,kBAAAn8F,EAAAi/H,EAAA9hH,MAEA6iH,EAAAf,EAAA/xE,GAAA2pC,QAAAy/B,qBAAAyJ,GAGAxsI,EAAA,EAAAA,EAAA0rI,EAAA/xE,GAAA2pC,QAAAtD,MAAA/kD,MAAAz6C,OAAAR,IACA,CACA,GAAA00F,GAAAg3C,EAAA/xE,GAAA2pC,QAAAtD,MAAA/kD,MAAAj7C,EAIA,IAFA0rI,EAAA/xE,GAAA2pC,QAAAqf,mBAAAjuB,EAAA9qE,QAEA6iH,EAIA,YADAxnI,KAAA0mI,eAAAj3C,EAAA9iB,OAKAplC,QAAAjzB,MAAA,wCAAAtU,KAAAwH,IAAA,OAAAi/H,EAAA9hH,SAOAmhH,EAAAuB,SAAAvpI,UAAA,GAAAgoI,GAAAQ,UAaAR,EAAA2B,UAAA,SAAA5mH,GASA7gB,KAAA6gB,OAAAA,EASA7gB,KAAAY,SAAA,QASAZ,KAAAy9H,UAAA,EASAz9H,KAAA0nI,IAAA;sBASA1nI,KAAAm9H,QAAAn9H,KAAA0nI,IASA1nI,KAAA2mI,yBAAA,WAEA,GAAAgB,GAAA,IAAA3nI,KAAAy9H,UACAmK,EAAA,IAAA5nI,KAAAm9H,OAEA,OAAAn9H,MAAAm9H,SAAAn9H,KAAA0nI,KAAAE,GAAAD,EAEA,EAGAC,EAAAD,IAIA7B,EAAA2B,UAAA3pI,UAAA,GAAAgoI,GAAAQ,SAYA,IAAAuB,GAAA,WASA7nI,KAAA6gB,WAAAzhB,GASAY,KAAAinB,YASAjnB,KAAArB,OAAAS,GASAY,KAAA2kB,SAAAvlB,GASAY,KAAAuQ,aAAAnR,GASAY,KAAA00D,OAAAt1D,GAWAY,KAAA8mI,WAAA,SAAAC,GAEA,MAAA/mI,MAAAinB,SAAA,GAAA6/G,WAAAC,IAWA/mI,KAAAknI,YAAA,SAAA5pI,GAEA,GAAAiuB,IAAAA,OAAA,EACA,OAAAvrB,MAAAinB,SAAA,GAAAigH,YAAA5pI,EAAAiuB,IAYAvrB,KAAA4mI,WAAA,SAAA9Z,GAEA,GAAA3qF,IAAAA,OAAA,EACA,OAAAniC,MAAAinB,SAAA,GAAA2/G,WAAAzkG,EAAA2qF,GAEA3qF,EAAAA,OAGA,GAUAniC,KAAA8nI,gCAAA,WAEA,MAAA9nI,MAAAinB,SAAA,GAAAu/G,uBAIA,IAAAuB,KAQA/nI,MAAAgoI,QAAA,SAAAzI,GAEA,IAAA,GAAAzkI,GAAA,EAAAA,EAAAitI,EAAAxsI,OAAAT,IAEA,GAAAitI,EAAAjtI,KAAAykI,EAEA,OAAA,CAIA,QAAA,GAWAv/H,KAAAioI,QAAA,SAAAC,GAEA,GAAAA,EAGA,IAAA,GADAhqI,GAAAgqI,EAAA/sI,MAAA,KACAL,EAAA,EAAAA,EAAAoD,EAAA3C,OAAAT,IACA,CACA,GAAAykI,GAAArhI,EAAApD,GAAA+b,MAEA0oH,GAAAhkI,OAAA,IAAAyE,KAAAgoI,QAAAzI,IAEAwI,EAAAxrI,KAAAgjI,KAwPA,OAxOAsI,GAAAM,YAAA,SAAAC,EAAA1zE,GAEAA,EAAAo7D,OAEAvoF,QAAAC,MAAA,8BAIA,IAAA6gG,GAAA,EACAC,EAAA,WAGA,IAAA,GADAxtC,GAAA,GACAhgG,EAAA,EAAAA,EAAAutI,EAAAvtI,IAEAggG,GAAA,KAEA,OAAAA,IAGAorC,EAAA,GAAA2B,EACA3B,GAAAvnI,GAAAypI,EAAAzpI,GACAunI,EAAAtd,YAAAwf,EAAAxf,YACAsd,EAAAvhH,KAAAyjH,EAAAzjH,KAEAuhH,EAAAqC,YAAAH,EAAAG,YAEArC,EAAA31H,SAAA63H,EAAA73H,SACA21H,EAAA31H,UAAA21H,EAAA31H,SAAAhV,QAAA2qI,EAAA31H,SAAAhV,OAAA,IAEAgsC,QAAAjzB,MAAA,8CAAA4xH,EAAA31H,SAAA,KACA21H,EAAA31H,SAAA5D,WAAAu5H,EAAA31H,WAGA21H,EAAAxxE,GAAAA,EAEAwxE,EAAAxxE,GAAAo7D,QAEAvoF,QAAAE,IAAA,qBAAAy+F,EAAAqC,aACAhhG,QAAAE,IAAA,YAAAy+F,EAAAvnI,IACA4oC,QAAAE,IAAA,qBAAAy+F,EAAAtd,aACArhF,QAAAE,IAAA,cAAAy+F,EAAAvhH,MACA4iB,QAAAE,IAAA,kBAAAy+F,EAAA31H,UAIA,IAAAi4H,GAAA,SAAA9+F,EAAAqM,EAAA1f,EAAAoyG,GAEA/+F,IAAAqM,IAGArM,IAAArT,IACAkR,QAAAC,MAAA,YAAAkC,EAAA,8BAAArT,EAAAz1B,UAGAy1B,EAAAqT,GAAAqM,EAAArM,GAEAw8F,EAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,WAAA5+F,EAAA,IAAArT,EAAAqT,GAAA,MAGA++F,GACAlhG,QAAAE,IAAA,qBAAAiC,EAAA,2BAAAqM,EAAAn1C,WAKA8nI,EAAA,SAAAC,EAAA9nH,GAEA,GAAAlY,EAEA,IAAA,OAAAggI,EAAA/nI,SAEAslI,EAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,aAGA3/H,EAAA,GAAAm9H,GAAAS,QAAA1lH,GAEA2nH,EAAA,UAAAG,EAAAhgI,KAAAkY,IAAAA,EAAAA,SACA2nH,EAAA,KAAAG,EAAAhgI,GACA6/H,EAAA,WAAAG,EAAAhgI,GAEAA,EAAA42H,UAEA52H,EAAAilH,UAAAqa,QAAAt/H,EAAA42H,UAGA8I,IACAO,EAAAD,EAAAhgI,GACA0/H,QAEA,IAAA,OAAAM,EAAA/nI,SAAA,CAEAslI,EAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,aAGA3/H,EAAA,GAAAm9H,GAAAqB,QAAAtmH,GAEA2nH,EAAA,KAAAG,EAAAhgI,GACA6/H,EAAA,WAAAG,EAAAhgI,GAEAA,EAAA42H,UAEA52H,EAAAilH,UAAAqa,QAAAt/H,EAAA42H,UAGA8I,IACAO,EAAAD,EAAAhgI,GACA0/H,GAEA,KAAA,GAAAvtI,GAAA,EAAAywB,EAAA5iB,EAAAse,SAAA1rB,OAAAT,EAAAywB,EAAAzwB,IAAA,CACA,GAAAkxF,GAAArjF,EAAAse,SAAAnsB,EAEA,SAAAkxF,EAAAprF,SACA+H,EAAAmO,KAAAk1E,EAEA,SAAAA,EAAAprF,SACA+H,EAAA0zD,MAAA2vB,EAGAzkD,QAAAjzB,MAAA,8BAAA03E,EAAAprF,UAQA,IAAA+H,EAAA0zD,MACA,CAEA,GAAAwsE,GAAA,GAAA/C,GAAA2B,UAAA9+H,EAEAkgI,GAAApL,UAAA,EACAoL,EAAA1L,QAAA0L,EAAAnB,IACAmB,EAAArhI,QAAApI,GAEAuJ,EAAA0zD,MAAAwsE,OAGA,IAAA,QAAAF,EAAA/nI,SAEAslI,EAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,cAGA3/H,EAAA,GAAAm9H,GAAAuB,SAAAxmH,GAEA2nH,EAAA,MAAAG,EAAAhgI,GAAA,GACA6/H,EAAA,UAAAG,EAAAhgI,GAAA,GACA6/H,EAAA,gBAAAG,EAAAhgI,GAAA,GACA6/H,EAAA,KAAAG,EAAAhgI,GAEAA,EAAA2+H,gCAEA,CAAA,GAAA,SAAAqB,EAAA/nI,SA8CA,WADA2mC,SAAAjzB,MAAA,8BAAAq0H,EAAA/nI,SA3CAslI,GAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,eAGA3/H,EAAA,GAAAm9H,GAAA2B,UAAA5mH,GAEA2nH,EAAA,MAAAG,EAAAhgI,GAAA,GACA6/H,EAAA,KAAAG,EAAAhgI,GAEA6/H,EAAA,YAAAG,EAAAhgI,GACAA,EAAA80H,WAAA90H,EAAA80H,UAAAliI,QAAAoN,EAAA80H,UAAAliI,OAAA,IAEAgsC,QAAAjzB,MAAA,+CAAA3L,EAAA80H,UAAA,KACA90H,EAAA80H,UAAA9wH,WAAAhE,EAAA80H,YAEA90H,EAAA80H,UAAA,IAEAyI,EAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,oCAEA3/H,EAAA80H,UAAA,GAGA+K,EAAA,UAAAG,EAAAhgI,GACAA,EAAAw0H,SAAAx0H,EAAAw0H,QAAA5hI,QAAAoN,EAAAw0H,QAAA5hI,OAAA,IAEAgsC,QAAAjzB,MAAA,6CAAA3L,EAAAw0H,QAAA,KACAx0H,EAAAw0H,QAAAxwH,WAAAhE,EAAAw0H,UAEAx0H,EAAAw0H,SAAAx0H,EAAA80H,YAEAyI,EAAAxxE,GAAAo7D,OAEAvoF,QAAAE,IAAA6gG,IAAA,iCAEA3/H,EAAAw0H,QAAAx0H,EAAA++H,KAUA,MAAA/+H,IAKAigI,EAAA,SAAA7yF,EAAA1f,GAIA,IAAA,GAFA9K,GAAAwqB,EAAA9uB,SAAA1rB,OAEAT,EAAA,EAAAA,EAAAywB,EAAAzwB,IAAA,CACA,GAAA6N,GAAA+/H,EAAA3yF,EAAA9uB,SAAAnsB,GAAAu7B,EACA1tB,GAAArL,MAAAxC,EACAu7B,EAAApP,SAAA1qB,KAAAoM,IAOA,OAFAigI,GAAAR,EAAAlC,GAEAA,GAIA2B,IC1oCAjuI,OAAA,0CAAA,gBAAA,SAAAiuI,GAUA,GAAAiB,GAAA,SAAAC,GAQA/oI,KAAAq+F,QAAA0qC,EAWA/oI,KAAA8mI,WAAA,SAAAC,GAIA,IAAA,GAFA5kG,GAAA,EAEArnC,EAAA,EAAAA,EAAAkF,KAAAqtH,YAAA9xH,OAAAT,IACA,CACA,GAAA2rI,GAAAzmI,KAAAqtH,YAAAvyH,GAEAksI,EAAAD,EAAA5kG,EAEA8kG,EAAAR,EAAAK,WAAAE,EACA,IAAAC,EAEA,MAAAA,EAGA9kG,IAAAskG,EAAAqB,oCAgBA9nI,KAAAgpI,kBAAA,SAAAv4H,EAAAg2H,EAAA3Z,EAAAmc,IAEAx4H,EAAA,GAAAA,EAAA,OAEAA,EAAA,EAGA,IAAAs/C,GAAA/vD,KAAA8nI,kCAEAoB,EAAAn5E,GAAAt/C,EAAA,IAGA,IADAq8G,EAAAA,IAAA9sH,KAAA8mI,WAAAoC,GACApc,EAAAA,IAAA,CAKA,GAAAqc,GAAArc,EAAAA,IAAAc,SACA,IAAAub,EAAA,CAOA,IAAA,GAFAC,GAAA,EAEAtuI,EAAA,EAAAA,EAAAkF,KAAAqtH,YAAA9xH,SAEAkrI,EAAAA,SAAAzmI,KAAAqtH,YAAAvyH,GACA2rI,EAAAA,UAAA0C,GAHAruI,IAOAsuI,GAAA3C,EAAAA,SAAAqB,iCAGAmB,GAAAA,aAAAC,GAAAE,EAAA3C,EAAAA,SAAAG,WAAA9Z,EAAAA,SAUA9sH,KAAA8nI,gCAAA,WAIA,IAAA,GAFA/3E,GAAA,EAEAj1D,EAAA,EAAAA,EAAAkF,KAAAqtH,YAAA9xH,OAAAT,IACA,CAGAi1D,GAFA/vD,KAAAqtH,YAAAvyH,GAEAgtI,kCAGA,MAAA/3E,IAWA/vD,KAAAqpI,OAAA,SAAApJ,GAEA,KAAAA,EAAA,GAAAA,GAAAjgI,KAAAqtH,YAAA9xH,QAKA,MAAAyE,MAAAqtH,YAAA4S,IAaAjgI,KAAAspI,kBAAA,SAAArJ,EAAAE,EAAA8I,GAGA,GAAAhJ,GAAAjgI,KAAAqtH,YAAA9xH,OAEA,OAAA,CAIA,KAAA,GADA6tI,GAAA,EACAtuI,EAAA,EAAAA,EAAAmlI,EAAAnlI,IACA,CAEAsuI,GADAppI,KAAAqtH,YAAAvyH,GACAgtI,kCAGA,GAAArB,GAAAzmI,KAAAqtH,YAAA4S,GAEAnT,EAAA2Z,EAAAS,YAAA/G,EACA,OAAArT,IAKAsc,EAAA3C,EAAAG,WAAA9Z,GAAAmc,GAEAjpI,KAAA8nI,kCAEA,KAPA,GAmBA9nI,KAAAqtH,eASArtH,KAAAqmI,cASArmI,KAAAmmI,cASAnmI,KAAAuQ,aAAAnR,GASAY,KAAAupI,aAAAnqI,GASAY,KAAAm0H,gBAAA/0H,GASAY,KAAAo0H,wBAAAh1H,GAGAY,KAAA8vH,OAAA,EAUA9vH,KAAAkuH,mBAAA,SAAAhpB,GACA,GAAAA,EAEA,IAAA,GAAApqG,GAAA,EAAAywB,EAAAvrB,KAAAqtH,YAAA9xH,OAAAT,EAAAywB,EAAAzwB,IACA,CACA,GAAAwxH,GAAAtsH,KAAAqtH,YAAAvyH,EACA,IAAAwxH,EAAA1D,cAAA1jB,EAAAv4B,MAKA,MAJAu4B,GAAAtG,mBAAA0tB,EAAA3tH,IAEA4oC,QAAAjzB,MAAA,uBAAA4wF,EAAAtG,iBAAA,QAAA0tB,EAAA3tH,IAEA2tH,IA8BAtsH,KAAAy+H,YAAA,SAAAnS,GAEA,GAAAhvH,GAAA0C,KAAAqtH,YAAA9vH,QAAA+uH,EACA,KAAA,GAAAhvH,GAAAA,GAAA0C,KAAAqtH,YAAA9xH,OAAA,EAIA,MAAAyE,MAAAqtH,YAAA/vH,EAAA,IAWA0C,KAAA0+H,gBAAA,SAAApS,GAEA,GAAAhvH,GAAA0C,KAAAqtH,YAAA9vH,QAAA+uH,EACA,KAAA,GAAAhvH,GAAA,GAAAA,EAIA,MAAA0C,MAAAqtH,YAAA/vH,EAAA,IA0EA,OA7DAwrI,GAAAU,QAAA,SAAAC,EAAAV,GAEA,GAAAr0E,GAAA,GAAAo0E,GAAAC,EAEA,KAAAU,EACA,MAAA/0E,EAGAA,GAAAnkD,SAAAk5H,EAAAl5H,SACAmkD,EAAAnkD,UAAAmkD,EAAAnkD,SAAAhV,QAAAm5D,EAAAnkD,SAAAhV,OAAA,IAEAgsC,QAAAjzB,MAAA,oDAAAogD,EAAAnkD,SAAA,KACAmkD,EAAAnkD,SAAA5D,WAAA+nD,EAAAnkD,WAEAmkD,EAAAo7D,OACAvoF,QAAAC,MAAA,mCAAAktB,EAAAnkD,UAEAmkD,EAAA60E,SAAAE,EAAAF,SACA70E,EAAAo7D,OACAvoF,QAAAC,MAAA,2BAAAktB,EAAA60E,UAEA70E,EAAAy/D,YAAAsV,EAAAtV,YACAz/D,EAAAo7D,OACAvoF,QAAAC,MAAA,+BAAAktB,EAAAy/D,aAEAz/D,EAAA0/D,oBAAAqV,EAAArV,oBACA1/D,EAAAo7D,OACAvoF,QAAAC,MAAA,wCAAAktB,EAAA0/D,oBAEA,IAAA7oG,GAAAk+G,EAAApc,YAAA9xH,MACAm5D,GAAAo7D,OACAvoF,QAAAC,MAAA,6BAAAjc,EAEA,KAAA,GAAAzwB,GAAA,EAAAA,EAAAywB,EAAAzwB,IAAA,CACA,GAAAorI,GAAA2B,EAAAM,YAAAsB,EAAApc,YAAAvyH,GAAA45D,EACAA,GAAA24D,YAAA9wH,KAAA2pI,GAEAxxE,EAAAo7D,OACAvoF,QAAAC,MAAA,wCAAA0+F,EAAA31H,UAGAgb,EAAAk+G,EAAApD,WAAA9qI,OACAm5D,EAAAo7D,OACAvoF,QAAAC,MAAA,mCAAAjc,EAEA,KAAA,GAAAzwB,GAAA,EAAAA,EAAAywB,EAAAzwB,IACA45D,EAAA2xE,WAAA9pI,KAAAktI,EAAApD,WAAAvrI,GAGAywB,GAAAk+G,EAAAtD,WAAA5qI,OACAm5D,EAAAo7D,OACAvoF,QAAAC,MAAA,mCAAAjc,EAEA,KAAA,GAAAzwB,GAAA,EAAAA,EAAAywB,EAAAzwB,IACA45D,EAAAyxE,WAAA5pI,KAAAktI,EAAAtD,WAAArrI,GAIA,OAAA45D,IAGAo0E,IC5YAlvI,OAAA,2CAAA,WAuDA,OArCA8vI,QAAA,GAQAC,UAAA,GAOAC,iBAAA,GAQA7uC,OAEA1jD,UAAA,MACArB,QAEArxB,KAAA,GACAgoD,MAAA,GACAoxB,YAAA,GACA6rC,iBAAA,SCnDAhwI,OAAA,oCAAA,aAAA,eAAA,UAAA,kBAAA,iBAAA,SAAA,SAAA8mG,EAAA9C,EAAAisC,EAAAf,EAAAgB,EAAAhxE,GAuNA,MA9MA,UAAAixE,GAEA,GAAA9gI,GAAAjJ,IAQAA,MAAA+6F,UAAA37F,GAQAY,KAAA0pI,YAAAtqI,GASAY,KAAA2pI,cAAAvqI,GASAY,KAAAw+H,kBAAAp/H,GASAY,KAAAu+F,uBAAAn/F,GASAY,KAAA2+F,mBAAAv/F,GASAY,KAAA0+F,qBAAAt/F,GASAY,KAAAw+F,qBAAAp/F,GASAY,KAAAy+F,0BAAAr/F,GASAY,KAAA89H,qBAAA,SAAAkM,GAEA,GAAAC,OAAA7qI,EACA,KACA6qI,EAAA,GAAAnxE,GAAAkxE,GACA,MAAA1jI,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAAuiG,GAEA,GAAAC,GAAAA,EAAAxjH,GAAA,YAAA,MAAAujH,EAGA,IAAA/gI,EAAA0gI,WAAA1gI,EAAA0gI,UAAApuI,OAAA,EAAA,CAEA,GAAAsgC,GAAA5yB,EAAA0gI,SAEA,KAEA9tG,EAAA,GAAAi9B,GAAAj9B,GAAA8U,OAAA,IAAArsB,KAAA,IAAAvP,WACA,MAAAzO,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAA5L,GAGA,MAAA6kE,GAAAsD,SAAAnoE,EAAA,KACAA,EAAAmuG,EAGAnuG,EAAA,IAAAmuG,EAIA,MAAA/gI,GAAAy0G,mBAAAssB,IAUAhqI,KAAA09G,mBAAA,SAAAssB,GAEA,GAAAC,OAAA7qI,EACA,KACA6qI,EAAA,GAAAnxE,GAAAkxE,GACA,MAAA1jI,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAAuiG,GAEA,GAAAC,GAAAA,EAAAxjH,GAAA,YAAA,MAAAujH,EAGA,IAAA/gI,EAAAygI,QAAA,CAEA,GAAA7tG,GAAA5yB,EAAAygI,OAEA,KAEA7tG,EAAA,GAAAi9B,GAAAj9B,GAAA8U,OAAA,IAAArsB,KAAA,IAAAvP,WACA,MAAAzO,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAA5L,GAGA,MAAA6kE,GAAAsD,SAAAnoE,EAAA,KACAA,EAAAmuG,EAGAnuG,EAAA,IAAAmuG,EAIA,MAAAA,IASAhqI,KAAAg7F,cAAA,WACA,MAAA/xF,GAAAy1F,mBAAAd,EAAAwB,+BASAp/F,KAAAq9F,aAAA,WACA,OAAAp0F,EAAA+xF,iBAGA+uC,IAEA/pI,KAAA0pI,QAAAK,EAAAL,QACA1pI,KAAA2pI,UAAAI,EAAAJ,UAEA3pI,KAAAu+F,mBAAAwrC,EAAAxrC,mBAEAv+F,KAAA0+F,iBAAAqrC,EAAArrC,iBAEA1+F,KAAA2+F,eAAAorC,EAAAprC,eACA3+F,KAAAy+F,sBAAAsrC,EAAAtrC,sBACAz+F,KAAAw+F,iBAAAurC,EAAAvrC,iBAEAx+F,KAAA+6F,MAAA,GAAA8uC,GAAA7pI,KAAA+pI,EAAAhvC,OAEA/6F,KAAAw+H,cAAAsK,EAAAU,QAAAO,EAAAvL,cAAAx+H,UCnNApG,OAAA,uCAAA,WAiCA,MA1BA,UAAAswI,GACAlqI,KAAA8e,eAAA1f,GACAY,KAAAmqI,UAAA/qI,GACAY,KAAAoqI,WAAAhrI,GACAY,KAAA2sF,gBAAAvtF,GACAY,KAAAqqI,cAAAjrI,GACAY,KAAAsqI,aAAAlrI,GACAY,KAAAuqI,WAAAnrI,GACAY,KAAAwqI,iBAAAprI,GACAY,KAAAyqI,kBAAArrI,GACAY,KAAA0qI,gBAAAtrI,GAEA8qI,IACAlqI,KAAA8e,WAAAorH,EAAAvrI,GACAqB,KAAAmqI,MAAAD,EAAAC,MACAnqI,KAAAoqI,OAAAF,EAAAE,OACApqI,KAAA2sF,YAAAu9C,EAAAv9C,YACA3sF,KAAAsqI,SAAAJ,EAAAI,SACAtqI,KAAAqqI,UAAAH,EAAAG,UACArqI,KAAAuqI,OAAAL,EAAAK,OACAvqI,KAAAwqI,aAAAN,EAAAS,cACA3qI,KAAAyqI,cAAAP,EAAAU,QACA5qI,KAAA0qI,YAAAR,EAAAW,iBCzBAjxI,OAAA,2CAAA,aAAA,SAAA,aAAA,eAAA,0BAAA,yBACA,+BAAA,aAAA,8BACA,4BAAA,gBACA,SAAA6rC,EAAAvB,EAAA1iC,EAAAgkC,EAAAm1D,EAAA4hB,EACAyH,EAAAtjB,EAAAujB,EACAzH,EAAArC,GA+pCA,MAzpCA,UAAAh5G,EAAAw3F,GAsFA,QAAA6/B,GAAAC,GACArB,EAAAn0H,IAAA,OAAAw1H,EAAA1jG,KAAA,MACAqiG,EAAAn0H,IAAA,MAAAw1H,EAAA33G,IAAA,MACAs2G,EAAAn0H,IAAA,QAAAw1H,EAAAjxC,MAAA,MACA4vC,EAAAn0H,IAAA,SAAAw1H,EAAA96B,OAAA,MA2CA,QAAA0M,KACA,OACA1/F,MAAAmyG,EAAA,GAAAoC,YACAvxG,OAAAmvG,EAAA,GAAAqC,cAIA,QAAA2rB,KACA,MAAAC,IAAApgC,cAAAogC,GAAAngC,uBACAmgC,GAAAC,WAEAD,GAAAC,WAGA,QAAA3/B,KACA,GAAAlpE,GAAA2oG,GACA,OAAAC,IAAAngC,uBAEA9pF,IAAAqhB,EACApN,KAAA,IAIAjU,IAAA,EACAiU,KAAAoN,GAIA,QAAA8oG,KACA7T,GAEAA,EAAA5tH,QAGA,IAAA0uF,GAAAwI,EAAA4E,aAAA,iCACA4lC,EAAAhnG,EAAAg0D,EACAgzC,GAAAnsB,EAAAztF,OAAA45G,GAEA9T,EAAAlzF,EAAA,4BAAAgnG,GAEApuB,EAAA54E,EAAA,qBAAAgnG,GAEApuB,EAAA75G,IAAA,OAAA,IACA65G,EAAA75G,IAAA,QAAA,IACA65G,EAAA75G,IAAA,WAAA,YAEA65G,EAAA75G,IAAA,WAAA,UAEAkoI,EAAA,GAAA5uB,IACAhY,QAAAuY,EACAxS,sBAAAD,EACAI,eAAAsgC,GACA3/B,wBAAAC,EACAt/B,eAAAq/D,GACAp/D,iBAAAq/D,GACAp/D,YAAAq/D,KAIA,QAAA5oB,GAAAxd,GAEA,GAAAsY,GAAAtY,EAAA,CAGA+lC,IACAztB,IACA/3E,EAAAqB,SAAA,4BAAA,OAAA,wBAAA02E,EAAA74F,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAS,0BAAAu2E,EAAAU,IAGAv0G,EAAA6tH,uBAEAiU,GAAAC,WAAA,EACAD,GAAAr0B,mBAAA,EACAq0B,GAAAQ,iBAAA,EACA/tB,EAAAtY,EAGAsY,EAAA/S,eAAAsgC,GAEAS,GAAA,CAEA,IAAAhkI,GAAAi2G,EAAApf,QAAAqf,mBAAAxY,EAAAvgF,KAEA8gB,GAAAqB,SAAA,8BAAA,OAAA,wBAAAo+D,EAAAvgF,KAAA,OAAAnd,EAAA,MACAyB,EAAAk8B,KAAAM,EAAAK,OAAAO,4BAAAy2E,EAAA5X,GAEA4X,EAAA75G,IAAA,UAAA,QAEAq8G,EAAAuD,WAAA/F,EAAA,GAAAt1G,EAAAm1G,EAAA1zG,GAAAi8F,UAAAA,KAIA,QAAA0Y,KAEA,GAAAb,EAAA,CACA,GAAAjiH,GAAA2wI,EACA3tB,GAAAnlB,EAAAolB,QAAAplB,EAAAolB,MAAAxiH,QAAAT,GAAA,GAAAA,EAAA,GAAA69F,EAAAolB,MAAAxiH,OACAyiH,EAAAF,KAEAnlB,EAAAolB,MAAAjjH,EAAA,EACA4lG,GAAA6B,yBAAAwa,EAAA2uB,EAAA1tB,EAAA,WAAA/0G,EAAA++G,iBAIA,QAAA2jB,KAEA5uB,GAEAA,EAAA95G,IAAA,aAAA8nI,GAAA7/B,UAAA,MAIA,QAAAyR,GAAA1/E,GAKA,GAHAuuG,GAAA,EAGA3S,GAAAA,EAAA3zB,WAAAsY,EAEA,WADAkF,GAAAmW,EAAA3zB,UAIA,KAAAjoE,EAGA,MAFA6/E,GAAA75G,IAAA,UAAA,UACA41H,MAAAz5H,GAIAqmC,GAAAqB,SAAA,0BAAA,OAAA,wBAAA02E,EAAA74F,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAQ,wBAAAw2E,EAAAU,EAEA,IAAAX,GAAAC,EAAA,GAAAxyG,eACAyyG,GAAA74E,EAAA,OAAA24E,GACA+uB,EAAA1nG,EAAA,OAAA64E,GAiBA8uB,GAAA,EACAC,GAAA,EACAC,MAAA3sI,EAEA,IAAA0jC,GAAAg6E,EAAA,GAAAxyG,gBAAAsK,aAAAkoG,EAAA,GAAAtW,cAGAwlC,EAAAlpG,EAAAzQ,iBAAAu5G,EAAA,GAAA,KACA,IAAAI,EACA,CACAF,EAAA,QAAAE,EAAA30F,SAEA,IAAA40F,OAAA7sI,EAGA6sI,GAFAD,EAAAjhI,iBAEAihI,EAAAjhI,iBAAA,yBAAAihI,EAAAjhI,iBAAA,sBAAAihI,EAAAjhI,iBAAA,qBAAAihI,EAAAjhI,iBAAA,oBAAAihI,EAAAjhI,iBAAA,uBAAAihI,EAAAjhI,iBAAA,gBAIAihI,EAAAE,mBAAAF,EAAAG,gBAAAH,EAAAI,eAAAJ,EAAAK,cAAAL,EAAAM,iBAAAN,EAAAC,YAGAA,IAEAF,EAAAE,EAAA1uI,QAAA,QAAA,GAEA0uI,EAAA1uI,QAAA,aAAA,GAAA0uI,EAAA1uI,QAAA,QAAA,GAAA0uI,EAAA1uI,QAAA,QAAA,KAEAsuI,GAAA,IAKAC,IAEA,QAAAF,EAAA,GAAAvpI,aAAA,QAAA,QAAA06G,EAAA,GAAA16G,aAAA,SAEAypI,GAAA,IAKAruB,EAAAiK,kBAAAokB,GAAAD,IAEAD,EAAA,GAAAhzH,aAAA,MAAA,OACAkzH,GAAA,EACAC,GAAA,GAGAhB,GAAAngC,sBAAAihC,EAEAU,IACAzvB,EAAA75G,IAAA,UAAA,KAEAupI,IACAzvB,EAAA95G,IAAA,SAAAwpI,GAAA9+H,OAAA,MAEAovG,EAAA95G,IAAA,WAAA,YACA85G,EAAA95G,IAAA,SAAA,KACA85G,EAAA95G,IAAA,UAAA,KAEA85G,EAAA95G,IAAA,cAAA4oI,EAAA,WAAA,cAaA5iI,EAAAi0G,kBACAwvB,IAEAf,IAEA/tB,IAwBA,QAAA+uB,KAEA,GAAA9T,EAAA,CAIA,GAAA+T,GAAA/T,CACAA,OAAAz5H,GACA6J,EAAAi/G,SAAA0kB,IAIA,QAAAC,GAAA1V,GAEA,GAAAqU,EAEA,MADA3S,GAAA1B,GACA,CAIA,IAAAA,EAAAjyB,WAAAiyB,EAAAjyB,WAAAsY,EAGA,MAFAqb,GAAA1B,EACAzU,EAAAyU,EAAAjyB,YACA,CAGA,IAAAkH,OAAAhtG,EAGA,QAAAA,KAAA+3H,EAAA97B,mBACA+Q,EAAA+qB,EAAA97B,uBAEA,IAAA87B,EAAA/T,UACAhX,EAAA2+B,GAAAQ,iBAAAJ,EAAA/1B,8BAAA+hB,EAAA/T,eAEA,IAAA+T,EAAA7T,iBAAA6T,EAAA5T,eAAA,CACA,GAAAupB,GACAC,CACA,KAEAD,EAAA3B,EAAAn3B,wBAAAmjB,EAAA7T,gBACA8nB,GACAC,GACAC,IAEA,MAAA7sI,GAEAquI,EAAA,EACAvlG,QAAAjzB,MAAA7V,GAEA,IAEAsuI,EAAA5B,EAAAn3B,wBAAAmjB,EAAA5T,eACA6nB,GACAC,GACAC,IAEA,MAAA7sI,GAEAsuI,EAAA,EACAxlG,QAAAjzB,MAAA7V,GAGA2tG,EAAA2+B,GAAAQ,iBAAAz/H,KAAAm1C,OAAA6rF,EAAAC,GAAA,OAEA,IAAA5V,EAAA9T,WACA,IAEAjX,EAAA2+B,GAAAQ,iBAAAJ,EAAAn3B,wBAAAmjB,EAAA9T,WACA+nB,GACAC,GACAC,IAEA,MAAA7sI,GAEA2tG,EAAA,EACA7kE,QAAAjzB,MAAA7V,OAGA04H,GAAA3T,UACApX,EAAA,EAEA+qB,EAAA1T,SACArX,EAAA2+B,GAAA/2G,YAAA,GAGAuT,QAAAC,MAAA,8BACA4kE,EAAA,EAWA,QARAA,EAAA,GAAAA,EAAA2+B,GAAA/2G,eACAuT,QAAAE,IAAA,4BAAA2kE,EAAA,mBAAA2+B,GAAA/2G,aACAo4E,EAAAA,EAAA,EAAA,EAAA2+B,GAAA/2G,aAGA+2G,GAAAQ,iBAAAn/B,EACA2+B,GAAAr0B,mBAAA5qG,KAAAo/B,MAAAkhE,EAAA2+B,GAAAx+B,oBACAwqB,GAAAI,EAAAhU,UAAAgU,EAAAjyB,UAAAiyB,EAAA/T,YACA,EAiCA,QAAAmB,KAEA,GAAAyoB,IAAAjC,GAAAC,WAAA,IAEA,IAAAa,EAEA9uB,EAAA95G,IAAA,MAAA+pI,OAGA,CACA,GAAAC,GAAAnB,GAAAC,CAEAhvB,GAAA95G,IAAA,OAAAgqI,EAAAD,EAAA,IACAjwB,EAAA95G,IAAA,QAAAgqI,EAAA,GAAAD,GAGAE,IAGA,QAAAV,KAEA,GAAAW,GAAA/V,EAAAzsH,OAKAwiI,IAAAA,EAAA,CAEA,IAAAC,GAAAhW,EAAAzpH,QAEA,QAAA8+H,GAAA9hI,QAAAwiI,GAAAV,GAAA9+H,SAAAy/H,KAEAX,GAAA9hI,MAAAwiI,EACAV,GAAA9+H,OAAAy/H,GACA,GAMA,QAAAC,GAAAlqB,EAAAoC,EAAAC,GACAulB,GAAAQ,iBAAAR,GAAAr0B,mBAAAq0B,GAAAx+B,mBACAw+B,GAAAC,YAAAD,GAAA9/B,YAAA8/B,GAAA7/B,WAAA6/B,GAAAx+B,mBAAAw+B,GAAAr0B,mBAEA6N,IAEA/iH,EAAAgqB,MAAA,eAEApsB,IAAAkuI,IACArkI,EAAAguH,sBAGAxxF,EAAAqB,SAAA,iDAAA,OAAA,sBACA79B,EAAAk8B,KAAAM,EAAAmB,eAAAC,iCACA4jE,eAAAxhG,EAAA6uG,oBACAqL,UAAAA,EACAje,UAAAqgB,EACAnC,UAAAoC,MAyDA,QAAA+nB,KAGA,GAAAC,GAAAzC,GAAA5xB,eACAs0B,EAAA1C,GAAA3xB,eAEAs0B,EAAAhtC,EAAAsE,sBAAA2Z,EAAAnB,EAAAK,IAEA8vB,GAAA,IAAAD,IAAA,IAAAA,CAuBA,IAjBA,IAAAA,IAEAA,EAAA,GAIA3C,GAAAx+B,mBAAAmhC,EAAA,EAAA,EAEA7B,IAEA2B,GAAA,EACAE,GAAA,EACAC,GAAA,EACA5C,GAAAx+B,mBAAA,GAIAwQ,EAAA,CAIAwvB,GAGA,IAAAqB,GAAAh1G,SAAA+lF,EAAA17G,IAAA,sBAKA4qI,EAAA9C,GAAA7/B,UAAA,CAEA2iC,GAAA/hI,KAAAC,IAAA,EAAA8hI,EAAAD,EAIA,IAAAE,GAAAl1G,SAAA+lF,EAAA17G,IAAA,uBAKA8qI,EAAAhD,GAAA7/B,UAAA,CAEA6iC,GAAAjiI,KAAAC,IAAA,EAAAgiI,EAAAD,EAIA,IAAAE,GAAArvB,EAAAh0G,QAGAsjI,EAAAD,EAAAH,EAAAE,CAGAL,KAEAO,EAAA,IAAAA,EAAAlD,GAAA7/B,WAGA,IAAAgjC,GAAA,CAGA,IAAAD,EAAAT,EACA,CACA,GAAAW,GAAAF,EAAAT,CAIAU,GAAApiI,KAAAo/B,MAAAijG,GAAAT,EAAA,EAAA,UAIAC,GAAAM,EAAAR,GAAAC,IAEAA,GAAA,EACA3C,GAAAx+B,mBAAA,GAEA0hC,EAAAD,EAAAH,EAAAE,GACAP,IAEAU,EAAApiI,KAAAo/B,MAAA,IAAA+iG,EAAAT,KAIAzuB,GAAA97G,KAAA8xB,KAAAm5G,EAAAL,EAAA,KAAArmD,MAAA0mD,EAAAH,EAAA,OAEAvB,GAEA,IAAA4B,GAAArvB,EAAAp0G,OACA+iI,KACAU,GAAAA,EAAArD,GAAA7/B,WAAA,GAEAkjC,EAAAtiI,KAAAo/B,MAAAkjG,GACAA,EAAA,EAAAZ,GACAjmG,QAAAC,MAAA,iCAAA4mG,EAAA,MAAAZ,GAIA1wB,EAAA75G,IAAA,QAAAwpI,GAAA9hI,MAAA,MACAmyG,EAAA75G,IAAA,SAAAwpI,GAAA9+H,OAAA,MAEAovG,EAAA95G,IAAA,SAAAwpI,GAAA9+H,OAAA,MAGAovG,EAAA95G,IAAA,aAAAwpI,GAAA9+H,OAAA,MACAovG,EAAA95G,IAAA,aAAAwpI,GAAA9+H,OAAA,MAGAovG,EAAA95G,IAAA,SAAA,GACA85G,EAAA95G,IAAA,UAAA,GACA85G,EAAA95G,IAAA,SAAA,GAIA2oI,EAAA3oI,IAAA,WAAA,YAEA2oI,EAAA3oI,IAAA,SAAA,GACA2oI,EAAA3oI,IAAA,UAAA,GAEA8nI,GAAApgC,YAAA8S,EAAAxiB,gBAEA8vC,GAAA9/B,YAAAn/F,KAAAm1C,QAAA4qF,EAAAY,GAAA9+H,OAAA8+H,GAAA9hI,OAAAogI,GAAA7/B,WAAA6/B,GAAAx+B,mBAAA,IAAAw+B,GAAAx+B,mBAEAw+B,IAAAx+B,mBAAA,GAEAwQ,EAAA95G,IAAA,QAAAwpI,GAAA9hI,MAAA,MACAoyG,EAAA95G,IAAA,eAAA,QACA85G,EAAA95G,IAAA,eAAA8nI,GAAAx+B,sBAEAwQ,EAAA95G,IAAA,SAAA4oI,EAAAY,GAAA9hI,MAAAogI,GAAA9/B,aAAA,MACA8R,EAAA95G,IAAA,eAAA,QACA85G,EAAA95G,IAAA,eAAA8nI,GAAA9/B,YAAA,OAGA8R,EAAA95G,IAAA,cAAA,QAEA85G,EAAA95G,KAAA8xB,KAAA,IAAAyyD,MAAA,IAAA1mE,IAAA,MAEA4/E,EAAA4D,cAAAwY,EAEA,IAAAuxB,GAAAxC,EAAA9uB,EAAA,GAAAod,aAAApd,EAAA,GAAAuxB,WACA,IAAAD,GACA9mG,QAAAjzB,MAAA,8BAGAy2H,GAAA/2G,aAAAq6G,EAAAtD,GAAA7/B,YAAA6/B,GAAA9/B,YAAA8/B,GAAA7/B,WACA6/B,GAAA/2G,YAAAloB,KAAAm1C,MAAA8pF,GAAA/2G,aACA,GAAA+2G,GAAA/2G,aACAuT,QAAAjzB,MAAA,sBAGA,IAAAi6H,IAAAxD,GAAA/2G,YAAA,GAAA+2G,GAAA7/B,UACAsjC,GAAAH,EAAAE,GAAAxD,GAAA/2G,WACAw6G,GAAA1iI,KAAAm1C,MAAAutF,GAEAA,EAAAzD,GAAA9/B,cAEA1jE,QAAAC,MAAA,iBACAD,QAAAE,IAAAsjG,GAAA9/B,aACA1jE,QAAAE,IAAA+mG,GAEAzD,GAAA9/B,YAAAujC,GAGAzD,GAAA0D,YAAA3iI,KAAAw1C,KAAAypF,GAAA/2G,YAAA+2G,GAAAx+B,oBAEAw+B,GAAAr0B,oBAAAq0B,GAAA0D,cACA1D,GAAAr0B,mBAAAq0B,GAAA0D,YAAA,GAGA5V,EAGA8T,IAKAW,IAGAvC,GAAAQ,iBAAA,EACAtiI,EAAA6vH,0BAEA/B,GAAA9tH,EAAAu0G,GAmBAJ,KAIA,QAAAA,KACA,GAAAlF,GAAA0zB,EAAA,EACA1zB,GAAAgD,eAMAoC,GAAA3yG,MAAAu5B,EAAAg0E,GAAAvtG,QACA2yG,GAAA3vG,OAAAu2B,EAAAg0E,GAAAvqG,SAEAuqG,EAAAgD,aAAA,GAAAf,GAAAjC,EAAA,WAEA,GAAAqF,IACA5yG,MAAAu5B,EAAAg0E,GAAAvtG,QACAgD,OAAAu2B,EAAAg0E,GAAAvqG,SAGA45B,SAAAC,MAAA,qCAAA+1E,EAAA5yG,MAAA4yG,EAAA5vG,OAAA6vG,EAAA7wC,OAEA4wC,EAAA5yG,OAAA2yG,GAAA3yG,OAAA4yG,EAAA5vG,QAAA2vG,GAAA3vG,QACA2vG,GAAA3yG,MAAA4yG,EAAA5yG,MACA2yG,GAAA3vG,OAAA4vG,EAAA5vG,OAEA45B,QAAAC,MAAA,4BAEAknG,MAEAnnG,QAAAC,MAAA,0CAeA,QAAA+kG,MAEA,GAAAoC,KAKAA,GAAA5xB,EAAA,GAAAv5G,MAAAoK,QACAmvG,EAAA95G,IAAA,UAAA,MAGA,QAAAiqI,MAEA,GAAAyB,IAEA5xB,EAAA95G,IAAA,UAAA0rI,IAEAA,IAAA,EAsBA,QAAAC,KAMA,IAAA,GAJAC,MAEAC,EAAA/D,GAAAr0B,mBAAAq0B,GAAAx+B,mBAEAzxG,EAAA,EAAAA,EAAAiwI,GAAAx+B,oBAAAuiC,EAAAh0I,EAAAiwI,GAAA/2G,YAAAl5B,IAEA+zI,EAAAtyI,KAAAuyI,EAAAh0I,EAGA,OAAA+zI,GAKA,QAAAnC,KAEA,GAAA3vB,EAAA,CAIA,GAAAgyB,EAIA7qG,GAAA,WAAA64E,GAAA17G,KAAA,WAEA0tI,EAAA7qG,EAAAlkC,MAKA+uI,EAAA9rI,IAAA,YAAA,OACA8rI,EAAA9rI,IAAA,aAAA,OAEA8rI,EAAA9rI,IAAA,WACA8rI,EAAA9rI,IAAA,SAAA,QAGA8rI,EAAA9rI,IAAA,UACA8rI,EAAA9rI,IAAA,QAAA,WAuJA,QAAAm8G,GAAA9gB,GACA,MAAA,IAAA3D,GAAA6iB,EAAA7wC,MAAA2xB,GArmCAp6D,EAAAh8B,OAAAlI,KAAA,GAAAwlC,GAEA,IAQAg4E,GAEAqb,EAGAzB,EACA+T,EACApsB,EACAjC,EACAC,EAOA6uB,EAEAC,EACAC,EACAC,EA5BA9iI,EAAAjJ,KAEA2+G,EAAAz6E,EAAA/iC,EAAA8jG,WACAwY,EAAAt8G,EAAA45F,MACAkqB,EAAA9jH,EAAA0mH,WACArI,EAAAr+G,EAAAs+G,WACAH,EAAAn+G,EAAAo+G,aAGAisB,GAAA,EAEAE,EAAA,IACAD,EAAA,EAMA6B,OAAAluI,GAEAgsI,IAAA,aAAA,mBAAA,gBAAA,uBAAA,uBAAA,sBAAA,uBAAA,uBACAC,IAAA,oBACAC,IAAA,kBAAA,sBASAqD,IAAA,EAEAlC,IACA9hI,UAAAvL,GACAuO,WAAAvO,IAGAk+G,IACA3yG,UAAAvL,GACAuO,WAAAvO,IAGA2rI,IAEAx+B,mBAAA,EACArB,UAAA,GACAiO,eAAA,IACAC,eAAA,IACAq1B,YAAA,EACA/3B,mBAAA,EACA60B,iBAAA,EACAtgC,gBAAA7rG,GACA4rI,WAAA,EACAh3G,YAAA,EAGAh0B,MAAAq4F,OAAA,WAEA,GAAAH,GAAAwI,EAAA4E,aAAA,2BAEAyZ,GAAA76E,EAAAg0D,GACAymB,EAAArtF,OAAAytF,EAEA,IAAAriF,GAAAi8D,EAAA8oB,gBAgBA,OAfA/kF,QAAA,KAAAA,EAAAq9E,qCAGAr9E,EAAA,GAAA8/E,QAEA9/E,EAAAq9E,oCAEAgF,EAAA97G,IAAA,YAAA,iBAMAgoI,IAEAhiI,GAWAjJ,KAAAwJ,OAAA,WAGAu1G,EAAAv1G,UAIAxJ,KAAAq9F,aAAA,WACA,OAAA,GAGAr9F,KAAAioH,iBAAA,WAEAukB,KACAkC,KAIA,IAAA7wB,QAAAz+G,EACAY,MAAA4hH,gBAAA,SAAAllF,EAAAmlF,GAEAhE,GAAAnhF,EAEAquG,GAAA7/B,UAAAxuE,EAAAwuE,UACA6/B,GAAA5xB,eAAAz8E,EAAAy8E,eACA4xB,GAAA3xB,eAAA18E,EAAA08E,eAEAsyB,EAAAhvG,EAAA+lE,SACAgpC,EAAA/uG,EAAAw8E,cAEAszB,IAEA3qB,IACA8pB,IAEA/tB,MA6OA59G,KAAAgoH,YAAA,WAEAtnB,EAAAkF,UAAAqf,EAAAn6G,YAAAi0G,EAAAl+F,UAKA23G,EADA93B,EAAA2D,QAAAlC,YAAA4c,GACA9pF,SAGAu3G,IACAkC,MAGA1uI,KAAAk9G,gBAAA,WAEAH,GACArc,EAAAkF,UAAA4Z,EAAA10G,YAAAgyG,EAAA,GAAAxyG,kBAyGAtK,KAAAkoH,SAAA,SAAAiP,GAEA0V,EAAA1V,GAEAmW,GAAAnW,GAGAn3H,KAAA82H,qBAAA,WACAwW,OAAAluI,IAGAY,KAAAi3H,oBAAA,WAGA,IAAA4B,EAAA,CAIA,GAAA2C,GAAAvyH,EAAAiqG,qBACA87B,EAAA/lI,EAAAkqG,mBACAm6B,IAAA,GAAArpB,GAAAzG,EAAAv0G,GACAqkI,GAAAvpB,0BAAAyX,EAAA5gC,WAAAo0C,EAAAp0C,cAGA56F,KAAA84H,uBAAA,WACAwU,IACAT,EAAAS,IAiEA,IAAAvW,IAAAv1H,EAAAoyF,SAAAy5C,EAAA,IAEArtI,MAAAooH,aAAA,SAAAjF,GAEA,GAAA3F,EAIA,GAAAutB,GAAAr0B,mBAAA,EAGA12G,KAAA82H,uBACAiU,GAAAr0B,qBACAqgB,GAAA5T,EAAA3F,OAEA,CAEA,GAAAmF,GAAAlF,EAAA5gB,SAAA2gB,GAAA,EACA,IAAAmF,EAAA,CAEA,GAAAwU,GAAA,GAAAlT,GAAAtB,EAAAQ,EACAgU,GAAAxT,cACA16G,EAAAi/G,SAAAiP,MAKAn3H,KAAAqoH,aAAA,SAAAlF,GAEA,GAAA3F,EAIA,GAAAutB,GAAAr0B,mBAAAq0B,GAAA0D,YAAA,EAGAzuI,KAAA82H,uBACAiU,GAAAr0B,qBACAqgB,GAAA5T,EAAA3F,OAEA,CAEA,GAAAyxB,GAAAxxB,EAAA32D,SAAA02D,GAAA,EACA,IAAAyxB,EAAA,CAEA,GAAA9X,GAAA,GAAAlT,GAAAgrB,EAAA9rB,EACAgU,GAAAzT,eACAz6G,EAAAi/G,SAAAiP,KA+NA,IAAAuX,IAAAltI,EAAAoyF,SAAA25C,EAAA,IAiEAvtI,MAAA83G,kBAAA,WAEA,GAAArN,GAAA,GAAAuZ,GAAAvG,GAAA,EAEA,KAAAD,EACA,MAAA/S,EAKA,KAAA,GAFAykC,GAAAN,IAEA9zI,EAAA,EAAAywB,EAAA2jH,EAAA3zI,OAAAT,EAAAywB,EAAAzwB,IAEA2vG,EAAArP,YAAA8zC,EAAAp0I,GAAAiwI,GAAA/2G,YAAAwpF,EAAA7wC,MAAA6wC,EAAAlgH,MAGA,OAAAmtG,IAmDAzqG,KAAAwoH,oBAAA,WAEA,GAAAhL,EAKA,MAAAv0G,GAAAiqG,sBAGAlzG,KAAA0oH,oBAAA,WACA,OAAAlL,IAGAx9G,KAAA2zG,gBAAA,SAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,GAEA,MAAA82C,IAAAvF,EAAA7wC,UACAplC,SAAAI,KAAA,4BAIAwjG,EAAAx3B,gBAAArV,EAAAvyB,EAAAC,EAAAC,IAGAjsE,KAAAsY,eAAA,SAAAyqG,EAAApkH,GAEA,MAAAokH,IAAAvF,EAAA7wC,UACAplC,SAAAjzB,MAAA,4BAIA62H,EAAA7yH,eAAA3Z,IAGAqB,KAAA03G,WAAA,SAAAqL,EAAAt8G,GAEA,MAAAs8G,IAAAvF,EAAA7wC,UACAplC,SAAAI,KAAA,4BAIAwjG,EAAAzzB,WAAAjxG,IAGAzG,KAAAq1G,mCAAA,WAEA,MAAA81B,GAAA91B,sCAGAr1G,KAAA2oH,wBAAA,SAAAC,EAAAp9C,EAAA23C,GAEA,GAAA/gB,GAAAl+D,EAAAsnC,EACA,KAAA2/D,EAAAx1B,iBAAAvT,GAAA,CAKA,GAAAihB,GAAA8nB,EAAAx7B,iBAAAnkC,EAEA,IAAA63C,EAAA,CAKA,GAAA+Y,GAAA,GAAAnY,GAAAzG,EAAA2F,EACAiZ,GAAAtY,cAAAT,EAEA,IAAA1kH,GAAA6sE,EAAA7sE,EACAA,KAEAA,EAAA6sE,EAAAnpE,aAAA,OAGA1D,GAEAy9H,EAAAvY,aAAAllH,GAGAsK,EAAAi/G,SAAAkU,MAGAp8H,KAAA41G,6BAAA,SAAAC,EAAAwmB,GAEA,GAAA/7H,GAAA6qI,EAAAv1B,6BAAA,KAAAC,EAEA,OAAAwmB,KACA/7H,SAAAA,EAAA4kG,UAAAsY,IAEAl9G,GAKAN,KAAA+1G,mBAAA,SAAAtvG,EAAA41H,GAEA,GAAA/7H,GAAA6qI,EAAAl1B,kCAAAxvG,EAEA,OAAA41H,KACA/7H,SAAAA,EAAA4kG,UAAAsY,IAEAl9G,GAKAN,KAAA21G,iBAAA,SAAAvT,GAEA,MAAA+oC,GAAAx1B,iBAAAvT,IAIApiG,KAAAy3G,YAAA,SAAAsL,EAAAt8G,GAEA,MAAAs8G,IAAAvF,EAAA7wC,UACAplC,SAAAI,KAAA,4BAIAwjG,EAAA1zB,YAAAhxG,IAGAzG,KAAA20G,0BAAA,SAAA2nB,EAAAlsB,GACA,GAAAoN,EAAA7wC,QAAA2vD,EACA,MAAA6O,GAAAx2B,0BAAAvE,IAKApwG,KAAA8oH,6BAAA,SAAA7F,EAAA7S,GACA,GAAA+6B,EAAA/sD,WAAAgyB,GACA,MAAApwG,MAAA20G,0BAAAsO,EAAA7S,EAEA,IAAA++B,GAAAnvI,KAAA2zG,gBAAAsP,EAAA7S,EACA,OAAA++B,IAAAnvI,KAAA21G,iBAAAw5B,IAGAnvI,KAAAyzG,wBAAA,SAAAwP,EAAA7S,GACA,MAAA6S,IAAAzF,EAAA7wC,UACAplC,SAAAI,KAAA,4BAIAwjG,EAAA13B,wBAAArD,IAOApwG,KAAAkzG,mBAAA,WACA,MAAAkM,GAAA+rB,EAAAj4B,uBAGAlzG,KAAAmzG,kBAAA,WACA,MAAAiM,GAAA+rB,EAAAh4B,sBAGAnzG,KAAA62G,YAAA,WACA,MAAAuI,GAAA+rB,EAAAt0B,gBAGA72G,KAAA82G,UAAA,WACA,MAAAsI,GAAA+rB,EAAAr0B,cAGA92G,KAAAozG,wBAAA,SAAAC,EAAAC,EAAAC,GACA,MAAAD,IAAAD,EAAA1mC,QAAA2mC,EAAA3mC,UACAplC,SAAAjzB,MAAA,oFAGA62H,EAAA/3B,wBAAAC,EAAAzY,WAAA0Y,EAAAA,EAAA1Y,WAAA,KAAA2Y,IAGAvzG,KAAA+zG,wBAAA,SAAA90B,GACA,MAAAmgC,GAAA+rB,EAAAp3B,wBAAA90B,KAGAj/E,KAAAuyG,uBAAA,SAAAppE,EAAA8W,EAAAuyD,GACA,MAAA4M,GAAA+rB,EAAA54B,uBAAAppE,EAAA8W,EAAAuyD,KAGAxyG,KAAA6yG,sBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,MAAAmM,GAAA+rB,EAAAt4B,sBAAAC,EAAAC,EAAAC,EAAAC,KAGAjzG,KAAA2vG,iBAAA,SAAAnkC,GACA,MAAA4zC,GAAA+rB,EAAAx7B,iBAAAnkC,KAGAxrE,KAAAm0G,oBAAA,SAAAhrE,EAAA8W,GACA,MAAAkrF,GAAAh3B,oBAAAhrE,EAAA8W,IAGAjgD,KAAA60G,yBAAA,SAAArpC,GACA,MAAA4zC,GAAA+rB,EAAAt2B,yBAAArpC,QCpqCA5xE,OAAA,oCAAA,WA4CA,MArCA,UAAA6M,EAAAw/F,GASAjmG,KAAAyG,SAAAA,EASAzG,KAAAimG,aAAAA,EASAjmG,KAAAovI,gBAAA,SAAAnpC,GAEA,IAAA,GAAAjsG,KAAAisG,GACAA,EAAAloG,eAAA/D,KACAgG,KAAAimG,aAAAjsG,GAAAisG,EAAAjsG,QCtCAJ,OAAA,6CAAA,WAAA,SAAAy1I,GA2HA,MAlHA,YAEA,GAAAC,KAQAtvI,MAAAgoD,MAAA,WACAsnF,EAAA/zI,OAAA,GAYAyE,KAAAw0H,UAAA,SAAA/tH,GAGA,IAAA,GADA8kB,GAAA+jH,EAAA/zI,OACAT,EAAA,EAAAA,EAAAywB,EAAAzwB,IACA,GAAAw0I,EAAAx0I,GAAA2L,WAAAA,EACA,MAAA6oI,GAAAx0I,IAgBAkF,KAAAuvI,SAAA,SAAA9oI,EAAAw/F,GAEA,GAAAziG,GAAAxD,KAAAw0H,UAAA/tH,EAUA,OARAjD,GACAA,EAAA4rI,gBAAAnpC,IAGAziG,EAAA,GAAA6rI,GAAA5oI,EAAAw/F,GACAqpC,EAAA/yI,KAAAiH,IAGAA,GAUAxD,KAAAwvI,YAAA,SAAA/oI,GAIA,IAAA,GAFA8kB,GAAA+jH,EAAA/zI,OAEAT,EAAA,EAAAA,EAAAywB,EAAAzwB,IAEA,GAAAw0I,EAAAx0I,GAAA2L,WAAAA,EAEA,WADA6oI,GAAAvzI,OAAAjB,EAAA,IAaAkF,KAAA8K,UAAA,WACA,MAAAwkI,IASAtvI,KAAAyvI,iBAAA,WAIA,IAAA,GAFAlkH,GAAA+jH,EAAA/zI,OAEAT,EAAA,EAAAA,EAAAywB,EAAAzwB,IAAA,CAEA,GAAA0I,GAAA8rI,EAAAx0I,GACAmrG,EAAAziG,EAAAyiG,YAEA,KAAA,GAAAjsG,KAAAisG,GACAA,EAAAloG,eAAA/D,KACAisG,EAAAjsG,GAAA,SCnHAJ,OAAA,qCAAA,SAAA,cAAA,SAAAsqC,EAAA1iC,GAOA,GAAAkuI,GAAA,YA+DA,OAhDAA,GAAAjzI,MAAA,SAAAkzI,GAEA,QAAAC,GAAAC,GAEA,GAAAC,GAAAD,EAAA9wH,WAAA,qBACA,KAAA+wH,EAIA,MADAvoG,SAAAE,IAAA,4DACA,CAIA,IAAAsoG,IAAA,qCACA,OAAAvuI,GAAAguF,QAAAugD,EAAAD,EAAAjzI,OAGA,GAAAmzI,GAAAjwI,OAAAmnC,UAAAgjF,UAAA3sH,QAAA,WAAA,GAAAwC,OAAAmnC,UAAAgjF,UAAA3sH,QAAA,QAAA,EACA,SAAA0yI,GAAA,MAAA,UAAAA,GACA,SAAAA,GAAA,MAAAA,GAEAzuI,GAAAH,KAAAsuI,EAAA5rI,iBAAAisI,EAAA,WAAA,SAAAE,GAGA,GAAAtgE,IAAA,CAEApuE,GAAAH,KAAA6uI,EAAAnsI,iBAAAisI,EAAA,SAAA,SAAAH,IAEAjgE,GAAAggE,EAAAC,GACAjgE,GAAA,EAGA1rC,EAAA2rG,GAAArmI,WAKAomE,GAGApuE,EAAAH,KAAA6uI,EAAAnsI,iBAAAisI,EAAA,YAAA,SAAAG,GACAjsG,EAAAisG,GAAA3mI,cAOAkmI,ICrEA91I,OAAA,oCAAA,SAAA,cAAA,SAAAsqC,EAAAw8D,GASA,GAAA0vC,GAAA,SAAAC,GAEA,GAAAxpC,GAAA3iE,EAAAmsG,EASArwI,MAAAswI,OAAAzpC,EAAAtkF,KAAA,UASAviB,KAAAunI,IAAA1gC,EAAAtkF,KAAA,OASAviB,KAAA6G,MAAAggG,EAAAtkF,KAAA,YASAviB,KAAAk8G,SAAArV,EAAAtkF,KAAA,eACAviB,KAAAunI,IAAA1gC,EAAAtkF,KAAA,OA0EA,OAjEA6tH,GAAA3lH,SAAA,SAAAklH,GACAzrG,EAAA,UAAAyrG,GAAAtuI,KAAA,WACA,GAAA+uI,GAAApwI,MACAuwI,UAAAZ,MAWAS,EAAAtyI,UAAAyyI,UAAA,SAAAZ,GAEA,GAAAlpI,GAAA,IAAAzG,KAAAk8G,SACA/2B,EAAAnlF,IACAkkC,GAAAz9B,EAAAkpI,GAAAppI,GAAAvG,KAAA6G,MAAA,WACA,MAAAs+E,GAAAqrD,QAAAb,MAWAS,EAAAtyI,UAAA0yI,QAAA,SAAAb,GAEA,GAAAc,GAAAvsG,EAAA,IAAAw8D,EAAAmH,qBAAA7nG,KAAAunI,KAAAoI,EACA,QAAA3vI,KAAAswI,QAEA,IAAA,OACAG,EAAAxtI,IAAA,aAAA,UACA,MACA,KAAA,OACAwtI,EAAAxtI,IAAA,aAAA,SACA,MACA,KAAA,OACAwtI,EAAA,GAAArgI,YAAA,EACAqgI,EAAA,GAAA5f,MACA,MACA,KAAA,QACA4f,EAAA,GAAAzf,OACA,MACA,KAAA,SACAyf,EAAA,GAAA5f,MACA,MACA,KAAA,OACA4f,EAAA,GAAAC,OAAA,CACA,MACA,KAAA,SACAD,EAAA,GAAAC,OAAA,CACA,MACA,SAEA,MADAnpG,SAAAE,IAAA,mCAAAznC,KAAAswI,QACA,KAEA,OAAA,GAIAF,IC5HAx2I,OAAA,8CAAA,WAQA,GAAA+2I,GAAA,SAAAhoI,EAAAw5B,GAOAniC,KAAA2I,KAAAA,EAOA3I,KAAAmiC,OAAAA,EA+CA,OApCA,UAAA8xE,EAAAP,EAAAG,GAEA,GAAA5qG,GAAAjJ,IAMAA,MAAAi0G,WAAAA,EAOAj0G,KAAA0zG,UAAAA,EAOA1zG,KAAA6zG,QAAAA,EAGA7zG,KAAA4wI,aAAA,SAAAlpG,GAEA,MADAz+B,GAAAyqG,UAAA,GAAAi9B,GAAAjpG,GACAz+B,GAGAjJ,KAAA6wI,WAAA,SAAAnpG,GAEA,MADAz+B,GAAA4qG,QAAA,GAAA88B,GAAAjpG,GACAz+B,MClEArP,OAAA,kDAAA,aAAA,cAAA,SAAA6rC,EAAAjkC,GAwKA,MAtJA,UAAAm3F,GAgBA,QAAAm4C,GAAAC,EAAArnG,EAAAxiC,GACA,GAAArD,GAAAktI,EAAA3rI,cAAA,OACAvB,GAAA+U,aAAA,OAAA8wB,GACA7lC,EAAA+U,aAAA,UAAA1R,GACA6pI,EAAAh6H,KAAA5R,YAAAtB,GAGA,QAAAmtI,GAAA1mI,EAAA46F,GACA,GAAA+rC,GAAAt4C,EAAAu4C,WAAApyH,WACAqyH,EAAAjsC,EAAAv4B,KACAskE,IAAAE,IACAL,EAAAxmI,EAAA,uBAAA2mI,GACAH,EAAAxmI,EAAA,gBAAA6mI,IAIA,QAAAC,GAAA5qC,GAIA,IADA,IAAA3oG,OAAAyb,KAAAktF,GAAAjpG,QAAA,aACAipG,EAAAjiF,SAAAosB,OAAArvC,MAAA,eACA,MAAAklG,GAAAjiF,SAAAI,KAAAxpB,MAAA,KAAA,GAIA,QAAAk2I,GAAA/mI,GACA,GAAAgnI,GAAAhnI,EAAAsK,WACA,IAAA08H,IAAAA,EAAAzwH,QAAAywH,EAAAxwH,KAAA,CACA,GAAAywH,GAAAH,EAAAE,EAAAzwH,OAEA,OADAuwH,GAAAE,EAAAxwH,MACAywH,GAIA,QAAAC,GAAAlnI,EAAA46F,GACA,GAAA56F,EAAAsK,aAAAtK,EAAAsK,YAAAiM,OAAA,CACA,GAAA4wH,GAAAJ,EAAA/mI,EACA,IAAAmnI,EAAA,CACA,GAAA9lF,GAAArhD,EAAAlF,cAAA,OACAumD,GAAA/yC,aAAA,MAAA,aACA+yC,EAAA/yC,aAAA,OAAA64H,GACAnnI,EAAAyM,KAAA5R,YAAAwmD,GACA+lF,EAAAxsC,EAAAv4B,OAAAglE,qBAAAhmF,IAmBA,QAAAimF,GAAAtnI,GAGAA,EAAAyW,iBAAA,gBAAA,SAAAla,GACAA,EAAA0nB,gBAEA,IAAAgkE,GAAA1rF,EAAA2/E,MACAqrD,GAAAt/C,KAIA,QAAAu/C,GAAAxnI,GAOAA,EAAAyW,iBAAA,kBAAA,WACA,GAAArc,GAAA4F,EAAAynI,cACArtI,IAAAA,EAAAstI,YACA1nI,EAAAP,KAAAvG,MAAAkwB,SAAA,WAEAppB,EAAAP,KAAAvG,MAAAkwB,SAAA,KAlGA,GAAAg+G,MACAO,IAEAxsG,GAAAl/B,GAAAk/B,EAAAK,OAAAa,eAAA,WAMA5mC,OAAAnG,QAAAmG,OAAAnG,OAAA6F,WACAM,QAAAnG,OAAA6F,KAmDA,IAAAoyI,GAAArwI,EAAAoyF,SAAA,SAAArB,GACA,GAAA3/E,GAAA+lF,EAAAob,wBAAAxhB,GACA2/C,EAAAR,EAAA9+H,EAAA+5D,MAEAulE,IAAAA,EAAAC,UACAx5C,EAAAgzB,wBAAA/4G,EAAA+5D,MAAA/5D,EAAAgoF,YAEAs3C,EAAAE,mBACAzlE,MAAA/5D,EAAA+5D,MACAiuB,WAAAhoF,EAAAgoF,aAGA,IAmCA56F,MAAAqyI,sBAAA,SAAA/nI,EAAA46F,GACA+sC,EAAA/sC,EAAAv4B,OAAAriE,EACAonI,EAAAxsC,EAAAv4B,UACAqkE,EAAA1mI,EAAA46F,GACAssC,EAAAlnI,EAAA46F,GACA0sC,EAAAtnI,GAEA46F,EAAA7H,gBACAy0C,EAAAxnI,IAQAtK,KAAAsyI,sBAAA,SAAAptC,GACA,GAAA56F,GAAA2nI,EAAA/sC,EAAAv4B,OACAt4D,EAAAq9H,EAAAxsC,EAAAv4B,MAEA,IAAAriE,GAAA+J,EAAA,CAEA,GAAAA,EAAAs9H,qBAAA,CACA,GAAAF,GAAAJ,EAAA/mI,EACAmnI,IACAp9H,EAAAs9H,qBAAA/4H,aAAA,OAAA64H,GAIAp9H,EAAA89H,WAAA,CAEA,IAAAC,GAAA/9H,EAAA+9H,iBACAA,KACAz5C,EAAAgzB,wBAAAymB,EAAAzlE,MAAAylE,EAAAx3C,YACAvmF,EAAA+9H,kBAAA,WChKAx4I,OAAA,uCAAA,aAAA,SAAA,aAAA,eAAA,eAAA,aAAA,kBAAA,2BACA,gCAAA,yBAAA,oBAAA,qBAAA,8BACA,oBAAA,gBAAA,6BAAA,qBAAA,oBACA,4BAAA,0BAAA,4BAAA,4BACA,SAAA6rC,EAAAvB,EAAA1iC,EAAAgkC,EAAA+sG,EAAA7xC,EAAA8xC,EAAAC,EACAC,EAAAC,EAAAC,EAAAC,EAAA5uB,EACA6uB,EAAArW,EAAAsW,EAAArD,EAAAU,EACA5zB,EAAA7hB,EAAAq4C,EAAAC,GAeA,GAAAC,GAAA,SAAA/xI,GA2HA,QAAAgyI,GAAAjuC,GAGA,MAAA,cAAA4b,EAAA7G,OACAi5B,EAAAE,uBAGA,qBAAAtyB,EAAA7G,OACAi5B,EAAAG,8BAIAnuC,EAAAlK,gBACAk4C,EAAAI,gBAIApuC,EAAAvF,oBACAuzC,EAAAE,uBAGAluC,EAAAzF,2BACAyzC,EAAAG,8BAGAH,EAAAK,qBAIA,QAAAC,GAAAtuC,EAAApmG,GAEA,GAAA20I,GAAAN,EAAAjuC,EAEA,IAAAwuC,EAAA,CAEA,GAAAzqI,EAAA0qI,sBAAAF,EAEA,WADA30I,IAAA,EAIA80I,KAYA,GAAAC,IACA5uC,UAAA8Z,EACAhkB,MAAA0iB,EACAoK,WAAA5C,EACAxF,WAAAD,EACAD,aAAAD,EAIAo0B,GAAAzqI,EAAA6qI,kBAAAL,EAAAI,GAEApuG,EAAAqB,SAAA,sBAAA,OAAA,kBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAK,oBAAAstG,GAEAC,EAAAntI,GAAAk/B,EAAAK,OAAAQ,wBAAA,SAAAi+D,EAAAW,GACA,GAAAsL,GAAAjM,EAAA,GAAAj6F,eAEAm7B,GAAAqB,SAAA,0BAAA,KAAA,mCAAAo+D,EAAAvgF,KAAA,MAEA+7E,EAAA6F,cAAAhC,EAAA,MAGAwvC,EAAA7mB,uBAAA3oB,EAAAW,EAAA4b,GAEAkzB,EAAA7nB,oBAAA5nB,EAAAW,GAEA+uC,EAAA5B,sBAAA7hC,EAAAtL,GAEAkrC,EAAA3lH,SAAA+lF,GACAk/B,EAAAjzI,MAAA+zG,GAEA/qE,EAAAqB,SAAA,0BAAA,OAAA,oBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAQ,wBAAAi+D,EAAAW,MAGAwuC,EAAAntI,GAAAk/B,EAAAK,OAAAO,4BAAA,SAAAk+D,EAAAW,GAEAz/D,EAAAqB,SAAA,8BAAA,OAAA,oBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAO,4BAAAk+D,EAAAW,KAGAwuC,EAAAntI,GAAAk/B,EAAAK,OAAAS,0BAAA,SAAAg+D,EAAAW,GAEAz/D,EAAAqB,SAAA,4BAAA,OAAA,oBAAAo+D,EAAAvgF,KAAA,MACA1b,EAAAk8B,KAAAM,EAAAK,OAAAS,0BAAAg+D,EAAAW,KAGAwuC,EAAAntI,GAAAk/B,EAAAmB,eAAAC,gCAAA,SAAAqtG,GAEAzuG,EAAAqB,SAAA,iDAAA,KAAA,kBAKAqtG,EAAAtT,cAAAqT,GAEA1yI,EAAAgqB,MAAA,WACAia,EAAAqB,SAAA,qBAAA,OAAA,kBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAE,mBAAAkuG,GAEAA,EAAAhvC,WACA1jG,EAAAgqB,MAAA,WACAyoH,EAAA3B,sBAAA4B,EAAAhvC,iBAKAwuC,EAAAntI,GAAAk/B,EAAAK,OAAAI,iBAAA,WACAT,EAAAqB,SAAA,mBAAA,OAAA,kBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAI,oBAGAwtG,EAAAr7C,QAGAq7C,GAAA9xB,gBAAAd,GADA,GAIAxhH,WAAA,WAEAR,GAAA,IAEA,IAkBA,QAAA80I,KAEAF,IAIAjuG,EAAAqB,SAAA,wBAAA,OAAA,kBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAM,uBAGAX,EAAAqB,SAAA,iDAAA,MAAA,kBACA4sG,EAAA5sI,IAAA2+B,EAAAmB,eAAAC,iCAEA6sG,EAAAlqI,SACAkqI,MAAAt0I,IA0JA,QAAAg1I,GAAAt3G,GAEA2I,EAAAqB,SAAA,+BAAA,OAAA,yDACA79B,EAAAk8B,KAAAM,EAAAK,OAAAU,6BAAA1J,GAmOA,QAAAu3G,GAAA1nE,GAEA,IAAAA,EAGA,WADAplC,SAAAE,IAAA,iCAIA,IAAAy9D,GAAAuY,EAAAge,YAAA9uD,EACA,OAAAu4B,QACA39D,SAAAE,IAAA,sBAAAklC,EAAA,eAuEA,QAAAu7C,GAAAiP,EAAAl2H,GAEAuyI,EAAArc,EAAAjyB,UAAA,SAAAovC,GAEA,IAAAA,EAAA,CAEAZ,EAAA9xB,gBAAAd,GADA,GAIA4yB,EAAAxrB,SAAAiP,EAAAl2H,KAiIA,QAAA+mH,GAAAusB,GAEA7zC,EAAAkF,UAAAqf,EAAAn6G,YAAAi0G,GAEAo1B,GACAA,EAAAnsB,cAEAusB,GAEAb,GACAA,EAAA1rB,cA4SA,QAAAwsB,KAEAC,EAAA,KACAC,GAAA,EAEAhB,IAEAA,EAAAr2C,cAAAq2C,EAAAr2C,iBACAq3C,EAAAzrI,EAAAytH,0BAEAztH,EAAA0tH,oBAIA8d,EAAAf,EAAAlrB,uBAIA,QAAAmsB,KACAjB,GACAzqI,EAAA2rI,qBAAAH,GAIA,QAAAI,KAEAF,IAEAD,GAAAzrI,EAAAiuH,mBA7sCAhzF,EAAAh8B,OAAAlI,KAAA,GAAAwlC,GAEA,IAYA2uG,GACAJ,EACAz0B,EACAP,EAfA91G,EAAAjJ,KACA0zI,MAAAt0I,GACAy+H,MAAAz+H,GACA01I,MAAA11I,GACAq+G,MAAAr+G,GACA0hH,EAAA,GAAAtE,OAEAyI,EAAA,GAAA8tB,GAEAvzB,EAAA,GAAAuzB,GACAiB,EAAA,GAAAvB,GAAAzyI,MACAi0I,EAAA,GAAAhB,GAAAjzI,MAOA+0I,EAAAr0C,EAAA2G,iBACAmtC,EACAG,EACAE,EAAA,IAAA,IAAA5rI,EAEAi7B,GAAAnkC,QAAAwG,GAAA,+BAAAwuI,GAEA/0I,KAAA+9G,MAAA58G,EAAA48G,MAGA58G,EAAAwqB,aAAAuY,IACA66E,EAAA59G,EAAAwqB,GACA4b,QAAAE,IAAA,8BAAAtmC,EAAAwqB,GAAApJ,KAAA,SAEAw8F,EAAA76E,EAAA/iC,EAAAwqB,IACA4b,QAAAE,IAAA,qBAAAs3E,EAAAx8F,KAAA,QAIA+8F,EADAn+G,EAAAo+G,aACAp+G,EAAAo+G,aAGA,GAAAizB,IAAAwC,WAAA7zI,EAAA6zI,aAIAC,kCAAA9zI,EAAA69G,iCAIAh/G,KAAAg/G,iCAAA,WACA,MAAAi2B,oCASAj1I,KAAA8zI,kBAAA,SAAAoB,EAAA/zI,GACA,GAAAg0I,EAKA,QAFAp2B,EAAA97G,IAAA,WAAA,UAEAiyI,GACA,IAAAhC,GAAAI,gBAEAv0B,EAAA97G,IAAA,WAAA,QAEAkyI,EAAA,GAAA5C,GAAApxI,EAAA8H,EACA,MACA,KAAAiqI,GAAAE,uBACA+B,EAAA,GAAA1Y,GAAAt7H,GAAA,EAAA8H,EACA,MACA,KAAAiqI,GAAAG,8BACA8B,EAAA,GAAA1Y,GAAAt7H,GAAA,EAAA8H,EACA,MACA,SACAksI,EAAA,GAAArC,GAAA3xI,EAAA8H,GAIA,MAAAksI,IAOAn1I,KAAA2zI,mBAAA,WAEA,GAAAD,EAIA,MAAAA,aAAAZ,GACAI,EAAAK,qBAGAG,YAAAnB,GACAW,EAAAI,gBAGAI,YAAAjX,GACAiX,EAAA3e,qBACAme,EAAAG,8BAGAH,EAAAE,2BAGA7rG,SAAAjzB,MAAA,2BAIAtU,KAAAo1I,eAAA,WACA,MAAA1B,IAmJA1zI,KAAA0oH,oBAAA,WAEA,MAAAgrB,GACAA,EAAAhrB,0BA4BA1oH,KAAAyhH,eAAA,WACA,MAAAX,IAQA9gH,KAAAq+F,QAAA,WACA,MAAAw/B,IAQA79H,KAAAkxI,SAAA,WACA,MAAA4D,IAQA90I,KAAA+6F,MAAA,WACA,MAAA0iB,IAQAz9G,KAAA6nH,WAAA,WACA,MAAA5C,IAmBAjlH,KAAAq1I,SAAA,SAAAC,GAEA,GAAAvL,GAAAuL,EAAAj3C,QAAAi3C,EAAAj3C,QAAAi3C,CAEAzX,GAAA,GAAA+U,GAAA7I,GACA+K,EAAA,GAAAjC,GAAA9I,EAAAmH,UAEAzzB,EAAAogB,EAAA9iC,MACA0iB,EAAA4nB,cAAA,GAEA8O,GACAA,EAAAvuH,QAGAuuH,EAAA,GAAAxB,GAAA1pI,EAAAi7B,EAAA9yB,MAAAgjI,EAAAnrI,IACAkrI,EAAAtP,uBAAA/jB,EAAAhH,gCAEAi6B,EAAA,GAAArB,GAAA7U,EAAAW,cAAA2V,GAGAP,IAEA0B,EAAA54G,UACAzzB,EAAAssI,eAAAD,EAAA54G,UAGA44G,EAAAnpI,QACAlD,EAAA28F,UAAA0vC,EAAAnpI,OAGA,IAAAqpI,OAAAp2I,EAEAk2I,GAAAlZ,iBAAA,kBAAAkZ,GAAA,kBACAA,EAAAlZ,gBAAAkZ,EAAAlZ,mBAGAkZ,EAAAlZ,kBAEAkZ,EAAAlZ,gBAAAzvD,OAAA2oE,EAAAlZ,gBAAAmI,eAAA+Q,EAAAlZ,gBAAAv4B,eACA2xC,EAAAF,EAAAlZ,gBAGA70F,QAAAE,IAAA;6LAIA,IAAA0vD,IAAA,CACA,IAAAq+C,EAAA,CAEAA,EAAAF,EAAAlZ,eAEA,KAIAjlC,EAHAq+C,EAAA7oE,MAEA6oE,EAAAn6C,oBACApyF,EAAAwsI,kBAAAD,EAAA7oE,MAAA6oE,EAAAn6C,mBAAApyF,GAEAusI,EAAAnyB,YACAp6G,EAAA0iH,wBAAA6pB,EAAA7oE,MAAA6oE,EAAAnyB,WAAAp6G,IAGAA,EAAAwsI,kBAAAD,EAAA7oE,MAAA,EAAA1jE,IAIAA,EAAA01H,eAAA6W,EAAAjR,cAAAiR,EAAA3xC,eAAA56F,GAEA,MAAA3C,GACAihC,QAAAjzB,MAAA,iDACAizB,QAAAE,IAAAnhC,GACA6wF,GAAA,OAIAA,IAAA,CAGA,IAAAA,EAAA,CAEA,GAAA+N,GAAAuY,EAAAh1G,OACA,IAAAy8F,EAAA,CACA,GAAAwwC,GAAA,GAAAzxB,GAAA/e,EAAAj8F,EACAysI,GAAAhyB,eACAwE,EAAAwtB,EAAA,MAiBA11I,KAAA21I,aAAA,WAEA9X,EAAA9iC,MAAA2sB,gBACAz+G,EAAAm/G,eAGAn/G,EAAAo/G,gBAQAroH,KAAA41I,cAAA,WAEA/X,EAAA9iC,MAAA2sB,gBACAz+G,EAAAo/G,eAGAp/G,EAAAm/G,gBAUApoH,KAAA61I,yBAAA,WACA,MAAAnC,aAAAnB,IAgBAvyI,KAAA+nH,QAAA,SAAAtzF,GAEAxrB,EAAA4sI,4BACAnC,EAAA3rB,QAAAtzF,IASAz0B,KAAAmoH,aAAA,WACA,MAAAl/G,GAAA4sI,2BACA,IAAAnC,EAAAvrB,eAGA,KAsBAnoH,KAAAu1I,eAAA,SAAA18B,GAUA,GANAiI,EAAA5G,OAAArB,GAEAs7B,GACAA,EAAAtP,uBAAA/jB,EAAAhH,gCAGA45B,IAAA76B,EAAA07B,gBAAA,CAEA,GAAAuB,GAAApC,EAAAlrB,qBAEA,IAAAstB,GAAAA,EAAAnpE,MAAA,CAEA,GAAAu0D,IAAA,CACAwS,GAAAr2C,cAAAq2C,EAAAr2C,iBACA6jC,EAAAj4H,EAAAytH,0BAEAztH,EAAA0tH,mBAgCA,YA1BA6c,GAFA/1B,EAAAge,YAAAqa,EAAAnpE,OAEA,SAAA2nE,GAEA,IAAAA,EAAA,CAEAZ,EAAA9xB,gBAAAd,GADA,GAIA73G,EAAAmf,KAAAgyE,WAAAt0D,OAAAE,mBAAA,SAAAkuG,GAEA,GAAA51C,GAAA,GAAA3D,GAAAm7C,EAAAnpE,MAAAmpE,EAAAl7C,WACA3xF,GAAA8sI,kBAAAz3C,KAGAr1F,EAAA0iH,wBAAAmqB,EAAAnpE,MAAAmpE,EAAAl7C,WAAA3xF,GAEAi4H,GACAj4H,EAAAiuH,mBAMAzxF,EAAAqB,SAAA,mCAAA,OAAA,kBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAG,qBAOAR,EAAAqB,SAAA,sCAAA,OAAA,kBACA79B,EAAAk8B,KAAAM,EAAAK,OAAAG,mBAMAjmC,KAAAqoH,aAAA,WAEA,GAAAp/G,EAAA0qI,uBAAAT,EAAAG,8BAEA,WADAK,GAAArrB,aAAAp/G,EAIA,IAAAwhG,GAAAipC,EAAA57B,mBAEA,IAAA,GAAArN,EAAAtP,UAAA5/F,OAAA,CAIA,GAAAqgG,GAAA6O,EAAAtP,UAAAsP,EAAAtP,UAAA5/F,OAAA,EAEA,IAAAqgG,EAAAP,mBAAAO,EAAAN,mBAAA,EAEA,WADAo4C,GAAArrB,aAAAp/G,EAIA,IAAA04G,GAAAlE,EAAAge,YAAA7/B,EAAAjvB,OAEAsiE,EAAAxxB,EAAA32D,SAAA66D,EAEA,IAAAstB,EAAA,CAIA,GAAA7S,GAAA,GAAAnY,GAAAgrB,EAAAhmI,EACAmzH,GAAA1Y,eAEAwE,EAAAkU,EAAA,MAMAp8H,KAAAooH,aAAA,WAEA,GAAAn/G,EAAA0qI,uBAAAT,EAAAG,8BAEA,WADAK,GAAAtrB,aAAAn/G,EAIA,IAAAwhG,GAAAipC,EAAA57B,mBAEA,IAAA,GAAArN,EAAAtP,UAAA5/F,OAAA,CAIA,GAAAsgG,GAAA4O,EAAAtP,UAAA,EAEA,IAAAU,EAAAR,mBAAA,EAEA,WADAq4C,GAAAtrB,aAAAn/G,EAIA,IAAA04G,GAAAlE,EAAAge,YAAA5/B,EAAAlvB,OAEAg2C,EAAAlF,EAAA5gB,SAAA8kB,EAEA,IAAAgB,EAAA,CAIA,GAAAyZ,GAAA,GAAAnY,GAAAtB,EAAA15G,EACAmzH,GAAAzY,cAEAuE,EAAAkU,EAAA,MA4BAp8H,KAAA2rH,wBAAA,SAAAh/C,EAAA02C,EAAAF,GAEA,GAAAje,GAAAmvC,EAAA1nE,EAEA,KAAAu4B,EACA,OAAA,CAGA,IAAA8wC,GAAA,GAAA/xB,GAAA/e,EAAAie,EAOA,OANAE,IACA2yB,EAAAlyB,cAAAT,GAGA6E,EAAA8tB,EAAA,IAEA,GASAh2I,KAAAi2I,cAAA,SAAA7pC,EAAA+W,GAEA,IAAAuwB,EACA,OAAA,CAGA,IAAAvc,EAEA,IAAA0G,EAAA7iC,gBAAA,CACA,GAAAkK,GAAAuY,EAAAznE,MAAAo2D,EACA,KAAAlH,EACA,OAAA,CAGAiyB,GAAA,GAAAlT,GAAA/e,EAAAie,GACAgU,EAAAvT,aAAA,OAEA,CAEA,GAAAsY,GAAAl8H,KAAA0oH,qBACAwT,GAAA3gI,OAAA,IACA47H,EAAA,GAAAlT,GAAAiY,EAAA,GAAA/Y,GACAgU,EAAAvT,aAAAxX,IAMA,MAFA8b,GAAAiP,EAAA,IAEA,GAyBAn3H,KAAAy1I,kBAAA,SAAA9oE,EAAAy/B,EAAA+W,GAEA,GAAAje,GAAAmvC,EAAA1nE,EAEA,KAAAu4B,EACA,OAAA,CAGA,IAAA8wC,GAAA,GAAA/xB,GAAA/e,EAAAie,EAOA,OANA/W,IACA4pC,EAAApyB,aAAAxX,GAGA8b,EAAA8tB,EAAA,IAEA,GASAh2I,KAAA4lG,UAAA,SAAAz5F,EAAAooI,GAIA,IAAA,GAFAhpH,GAAApf,EAAA5Q,OAEAT,EAAA,EAAAA,EAAAywB,EAAAzwB,IACAqR,EAAArR,GAAAmrG,aACAgf,EAAAsqB,SAAApjI,EAAArR,GAAA2L,SAAA0F,EAAArR,GAAAmrG,cAGAgf,EAAAuqB,YAAArjI,EAAArR,GAAA2L,SAIAuhH,GAAAusB,IASAv0I,KAAAk2I,cAAA,SAAA/pI,GAIA,IAAA,GAFAof,GAAApf,EAAA5Q,OAEAT,EAAA,EAAAA,EAAAywB,EAAAzwB,IACAqR,EAAArR,GAAAmrG,aACAuZ,EAAA+vB,SAAApjI,EAAArR,GAAA2L,SAAA0F,EAAArR,GAAAmrG,cAGAuZ,EAAAgwB,YAAArjI,EAAArR,GAAA2L,SAIAitI,IACAA,EAAAx2B,mBAYAl9G,KAAA03G,WAAA,SAAAqL,EAAAt8G,GAEA,GAAAitI,EACA,MAAAA,GAAAh8B,WAAAqL,EAAAt8G,IAaAzG,KAAAsY,eAAA,SAAAyqG,EAAApkH,GAEA,GAAA+0I,EACA,MAAAA,GAAAp7H,eAAAyqG,EAAApkH,IAgBAqB,KAAA2zG,gBAAA,SAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,GAEA,GAAAynE,EACA,MAAAA,GAAA//B,gBAAAoP,EAAAzkB,EAAAvyB,EAAAC,EAAAC,IA4BAjsE,KAAAskI,4BAAA,SAAAC,EAAA1gC,EAAA1hE,GACAgyG,EAAA7P,4BAAAC,EAAA1gC,EAAA1hE,IAaAniC,KAAA2+H,eAAA,SAAA4F,EAAA1gC,EAAAsf,GAEA,GAGAgzB,GACA/yB,EAJAgzB,EAAA11C,EAAAiD,kBAAA4gC,EAAA1gC,GAEAwyC,EAAAD,EAAA74I,QAAA,IAGA84I,IAAA,GACAF,EAAAC,EAAAvgG,OAAA,EAAAwgG,GACAjzB,EAAAgzB,EAAAvgG,OAAAwgG,EAAA,KAGAF,EAAAC,EACAhzB,MAAAhkH,GAGA,IAAA8lG,GAAAuY,EAAAiO,cAAAyqB,EACA,KAAAjxC,EAAA,CACA39D,QAAAI,KAAA,aAAAwuG,EAAA,aAIA,IAAAG,GAAA95E,mBAAA25E,EAEA,MADAjxC,EAAAuY,EAAAiO,cAAA4qB,IAGA,MADA/uG,SAAAI,KAAA,qBAAA2uG,EAAA,qBACA,EAIA,MAAArtI,GAAAijH,uBAAAhnB,EAAAv4B,MAAAy2C,EAAAD,IAUAnjH,KAAAksH,uBAAA,SAAAv/C,EAAAy2C,EAAAD,GAEA,GAAAje,GAAAuY,EAAAge,YAAA9uD,EACA,KAAAu4B,EACA,OAAA,CAGA,IAAA8wC,GAAA,GAAA/xB,GAAA/e,EAAAie,EASA,OAPAC,IACA4yB,EAAAnyB,aAAAT,GAIA8E,EAAA8tB,EAAA,IAEA,GAIAh2I,KAAA+1I,kBAAA,SAAAz3C,GAEA,GAAAlE,WAAA,CAEA,GAGAqQ,GAAAzqG,KAAA83G,mBAGA,IAFAvwE,QAAAE,IAAA5M,KAAAuxB,UAAAq+C,KAEAA,EAAAzP,cAAA,CAEA,IACAZ,WAAAwd,0BAAAzF,qBAEA,MAAA79F,IAIA,IACAizB,QAAAE,IAAA62D,EAEA,IAAA/L,GAAAvyF,KAAAozG,wBAAA9U,EACA/2D,SAAAE,IAAA8qD,EAEA,IAAApwB,GAAAi4B,WAAAwd,0BAAA3F,6BAAA1f,EACAhrD,SAAAE,IAAA06B,EAEA,IAAAo0E,GAAAn8C,WAAAzB,OAAAua,oBACA3rE,SAAAE,IAAA8uG,EAEA,IAAAC,GAAAp8C,WAAAzB,OAAAwa,mBACA5rE,SAAAE,IAAA+uG,GAEA,MAAAliI,IAIAhV,WAAA,WACA,IACA86F,WAAAwd,0BAAAzF,qBACA,MAAA79F,MAGA,QASAtU,KAAAwoH,oBAAA,WACA,GAAAiuB,GAAA/C,EAAAlrB,qBACA,OAAAiuB,GAAAA,EAAA1hI,WAAA,MAMA/U,KAAA02I,YAAA,WAEAzxB,EAAAwqB,mBACAznB,IACA/C,EAAAj9D,SAMAhoD,KAAA22I,gBAAA,WAEAjD,IAEAl0B,EAAAiwB,mBACAiE,EAAAx2B,mBAGAsC,EAAAx3D,SAQAhoD,KAAAy2H,wBAAA,WAEA,QAAA0d,GAEAA,EAAA1d,2BAkBAz2H,KAAAguH,mBAAA,WAEAmmB,EAAAnmB,sBAOAhuH,KAAA+jI,iBAAA,WAEAoQ,EAAApQ,oBAOA/jI,KAAAqkI,qBAAA,WAEA8P,EAAA9P,wBAOArkI,KAAA42I,mBAAA,WAEAzC,EAAAt6E,UAOA75D,KAAA62I,qBAAA,WAEA1C,EAAA9Q,YAMArjI,KAAA22H,kBAAA,WAEAwd,EAAAnjB,SAMAhxH,KAAAk3H,iBAAA,WAEAid,EAAAtjB,QAOA7wH,KAAA02H,sBAAA,WAEA,MAAAyd,GAAApmB,aAkBA/tH,KAAAq1G,mCAAA,WAEA,GAAAq+B,EACA,MAAAA,GAAAr+B,sCAYAr1G,KAAA2oH,wBAAA,SAAAC,EAAAp9C,EAAA23C,GAEAuwB,GACAA,EAAA/qB,wBAAAC,EAAAp9C,EAAA23C,GAIA,IAAAsxB,GAAA,KACAC,GAAA,CAiCA10I,MAAA40I,qBAAA,SAAAkC,GACApD,GAEAA,EAAAzrB,oBAWAjoH,KAAAkpH,uBAAA,SAAAniF,EAAAjoC,EAAA8E,GACA07G,EAAA4J,uBAAAniF,EAAAjoC,EAAA8E,GAGA,IAAAmzI,GAAA,SAAAC,GACA,GAAAC,MACAC,GAAA,EAEAC,MAAA/3I,EACAY,MAAAo3I,sBAAA,SAAAt4I,GACAq4I,EAAAr4I,EAGA,IAAAu4I,OAAAj4I,EACAY,MAAAs3I,wBAAA,SAAAx4I,GACAu4I,EAAAv4I,GAGAkB,KAAAu3I,UAAA,SAAAC,GACAC,EAAAD,GAGA,IAAAC,GAAA,SAAAD,GACAL,GACAA,EAAAK,EAGA,KACA,GAAAjzC,OAAAnlG,EAEA,KAAA,GAAApF,KAAAi9I,GACA,GAAAA,EAAAl5I,eAAA/D,GAAA,CAEA,GAAAkI,GAAA+0I,EAAAj9I,EACA,IAAAkI,GAAAA,EAAAw5B,SAEA6oE,GAAAh9D,QAAAjzB,MAAA,8CAEAiwF,EAAAriG,EAAA,SACA,CAEA,GAAAw1I,GAAAxzG,EAAA,QAAAqgE,EAAA,GAAAj6F,gBAEA45B,GAAA7iC,KAAAq2I,EAAA,WAEA,GAAAn1H,GAAAviB,KAAAqC,aAAA,cAAArC,KAAAqC,aAAA,OAEA,QAAAkgB,IAEAA,EAAAhlB,QAAA,qBAAA,GAAAglB,EAAAhlB,QAAA,oBAAA,GAAAglB,EAAAhlB,QAAA,oBAAA,IAEAi6I,GAAAx3I,KAAA6wH,KACA7wH,KAAA6wH,OAEA7wH,KAAAgxH,OACAhxH,KAAAgxH,SAGA,QAIA,MAAA1qH,GACAihC,QAAAjzB,MAAAhO,IAIAtG,MAAA23I,aAAA,SAAAzW,GACAgW,EAAAhW,GAGA8V,EAAAzwI,GAAAk/B,EAAAK,OAAAQ,wBAAA,SAAAi+D,EAAAW,GACAz/D,EAAAqB,SAAA,0BAAA,KAAA,sDAAAo+D,EAAAvgF,KAAA,KAEA,KACAugF,GAAAA,EAAAv4B,OAAA43B,GAAAA,EAAA,KAKA0yC,EAAA/xC,EAAAv4B,QAAA43B,QAAAA,EAAA5/E,KAAAugF,EAAAvgF,OAGA,MAAAre,GACAihC,QAAAjzB,MAAAhO,MAIA0wI,EAAAzwI,GAAAk/B,EAAAK,OAAAE,mBAAA,SAAAkuG,GACAzuG,EAAAqB,SAAA,qBAAA,KAAA,mDAuBA,IAAAqsF,IAAA,CAEA,KACA,IAAA,GAAAn5H,KAAAi9I,GACA,GAAAA,EAAAl5I,eAAA/D,GAAA,CAEA,GAAA49I,GAAA1D,EAAAhvC,WAAAgvC,EAAAhvC,UAAAv4B,QAAA3yE,EAEA69I,GAAA,CAEA,IAAA3D,EAAAzpC,gBAAAypC,EAAAzpC,eAAAtP,UAAA5/F,OAAA,CAGA,IAAA,GAFAu8I,IAAA,EAEAh9I,EAAA,EAAAA,EAAAo5I,EAAAzpC,eAAAtP,UAAA5/F,OAAAT,IACAo5I,EAAAzpC,eAAAtP,UAAArgG,GAAA6xE,QAAA3yE,EACA69I,GAAA,EAGAC,GAAA,GAIAF,GAAAE,IAAAF,GAAA,GAGA,GAAAA,GAAAC,EAAA,CACA,GAAA31I,GAAA+0I,EAAAj9I,EACA,KAAAkI,EAAA,QAEA+0I,GAAAj9I,GAAA,OAAA49I,CAEA,IAAArzC,GAAAriG,EAAA,QAGAw1I,GAFAx1I,EAAAyiB,KAEAuf,EAAA,QAAAqgE,EAAA,GAAAj6F,iBACA45B,GAAA7iC,KAAAq2I,EAAA,WAEA,GAAAn1H,GAAAviB,KAAAqC,aAAA,cAAArC,KAAAqC,aAAA,OAEA,QAAAkgB,IAEAA,EAAAhlB,QAAA,qBAAA,GAAAglB,EAAAhlB,QAAA,oBAAA,GAAAglB,EAAAhlB,QAAA,oBAAA,IAEAyC,KAAA4Y,aAAA,OAAA,QACA5Y,KAAAsH,gBAAA,YAKAswI,GAKA53I,KAAAgxH,OAAAhxH,KAAAgxH,QAMAmC,GAAA,GAEA,UAMA8jB,GAAAj9I,KAAAi9I,EAAAj9I,GAAA,YAAAoF,IACA63I,EAAAj9I,OAAAoF,IAIA,MAAAkH,GACAihC,QAAAjzB,MAAAhO,GAGA+wI,GACAA,EAAAlkB,GAKAskB,EAFAtkB,EACA+jB,GACA,GAGA,GAIA,KAIAF,EAAAzwI,GAAAk/B,EAAAK,OAAAU,6BAAA,SAAA3pC,GAGA,GAFA4oC,EAAAqB,SAAA,+BAAA,KAAA,oDAEAjqC,EAAAojI,UAAA,CACA,GAAA8I,GAAAiO,EAAA34C,UACAiuB,EAAAyc,EAAAvK,cAAA6K,OAAAxsI,EAAAojI,UACA,IAAA3T,GAAAA,EAAA1D,YAAA,CAEA,GAAAmvB,IAAA,CACA,KAAA,GAAA/9I,KAAAi9I,GACA,GAAAA,EAAAl5I,eAAA/D,GAAA,CAEA,GAAAkI,GAAA+0I,EAAAj9I,EACAkI,IAEAA,EAAAw5B,QACA1hC,IAAAsyH,EAAA1D,cACA6uB,GAAA,GACAv1I,EAAAw5B,QAAA,EACAq8G,GAAA,GAKA,GAAAA,EAAA,CACA,IAAA,GAAA/9I,KAAAi9I,GACA,GAAAA,EAAAl5I,eAAA/D,GAAA,CAEA,GAAAkI,GAAA+0I,EAAAj9I,EACAkI,KAEAA,EAAAw5B,QACA1hC,IAAAsyH,EAAA1D,cACA1mH,EAAAw5B,QAAA,IAKAw7G,GACAO,GAAA,QAKAz3I,MAAAg4I,4BAAA,GAAAjB,GAAA9tI,GAOAjJ,KAAA8oH,6BAAA,SAAA7F,EAAA7S,GAGA,IAFAikC,EAAApxB,GAGA,OAAA,CAGA,IAAAywB,EAAA,CAEA,IAAAtjC,GAAAA,GAAA,KAAAA,EAEA,IAAA,GADA6nC,GAAAvE,EAAAhrB,sBACA5tH,EAAA,EAAAywB,EAAA0sH,EAAA18I,OAAAT,EAAAywB,EAAAzwB,IACA,GAAAm9I,EAAAn9I,GAAA6xE,OAAAs2C,EACA,OAAA,CAIA,OAAAywB,GAAA5qB,6BAAA7F,EAAA7S,GAGA,OAAA,GAUApwG,KAAAy3G,YAAA,SAAAsL,EAAAt8G,GAEA,GAAAitI,EACA,MAAAA,GAAAj8B,YAAAsL,EAAAt8G,IAYAzG,KAAA21G,iBAAA,SAAAnqC,GACA,MAAAkoE,GAAA/9B,iBAAAzxE,EAAAsnC,KAUAxrE,KAAAyzG,wBAAA,SAAAwP,EAAA7S,GACA,GAAAsjC,GAAAzwB,GAAA7S,EAAA,CACA,GAAAwE,GAAA8+B,EAAAjgC,wBAAAwP,EAAA7S,EACA,IAAAwE,EACA,MAAA,IAAAo+B,GAAAp+B,EAAAX,YACA28B,aAAAh8B,EAAAlB,WACAm9B,WAAAj8B,EAAAf,WAWA7zG,KAAA83G,kBAAA,WACA,MAAA47B,GAAA57B,qBAMA93G,KAAAkzG,mBAAA,WACA,GAAAwgC,EACA,MAAAA,GAAAxgC,sBASAlzG,KAAAmzG,kBAAA,WACA,GAAAugC,EACA,MAAAA,GAAAvgC,qBASAnzG,KAAA62G,YAAA,WACA,GAAA68B,EACA,MAAAA,GAAA78B,eASA72G,KAAA82G,UAAA,WACA,GAAA48B,EACA,MAAAA,GAAA58B,aAYA92G,KAAA+oH,yBAAA,SAAA1V,EAAAC,EAAAC,GACA,GAAAmgC,EACA,MAAAA,GAAA3qB,yBACA2qB,EAAA3qB,yBAAA1V,EAAAC,EAAAC,IAEAmgC,EAAAtgC,wBAAAC,EAAAC,EAAAC,KAcAvzG,KAAA+oH,yBAAA,SAAA1V,EAAAC,EAAAC,GACA,GAAAmgC,EACA,MAAAA,GAAA3qB,yBACA2qB,EAAA3qB,yBAAA1V,EAAAC,EAAAC,IAEAmgC,EAAAtgC,wBAAAC,EAAAC,EAAAC,KAcAvzG,KAAAozG,wBAAA,SAAA8kC,EAAAC,EAAA5kC,GACA,GAAAmgC,EACA,MAAAA,GAAAtgC,wBAAA8kC,EAAAC,EAAA5kC,IAUAvzG,KAAA+zG,wBAAA,SAAA90B,GACA,GAAAy0D,EACA,MAAAA,GAAA3/B,wBAAA90B,IAYAj/E,KAAAuyG,uBAAA,SAAAppE,EAAA8W,EAAAuyD,EAAAuQ,GACA,GAAA2wB,EACA,MAAAA,GAAAnhC,uBAAAppE,EAAA8W,EAAAuyD,EAAAuQ,IAcA/iH,KAAA6yG,sBAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAA8P,GACA,GAAA2wB,EACA,MAAAA,GAAA7gC,sBAAAC,EAAAC,EAAAC,EAAAC,EAAA8P,IAUA/iH,KAAA2vG,iBAAA,SAAAnkC,GACA,GAAAkoE,EACA,MAAAA,GAAA/jC,iBAAAnkC,IAUAxrE,KAAA60G,yBAAA,SAAArpC,GACA,GAAAkoE,EACA,MAAAA,GAAA7+B,yBAAArpC,IAmBA,OAJA0nE,GAAAK,qBAAA,EACAL,EAAAI,gBAAA,EACAJ,EAAAE,uBAAA,EACAF,EAAAG,8BAAA,EACAH,ICnwDAt5I,OAAA,QAAA,UAAA,SAAA8E,GACA,YAaA,SAAAo/G,GAAAjhH,EAAAyL,GACA,WAAAlJ,KAAAvC,GAAA,KAAAA,EAAAyL,EAAAzL,EAIA,QAAAu7I,GAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAF,IAAAE,EACA,OAAA,CACA,IAAAH,IAAAE,EAAA,CACA,GAAA,SAAAF,EACA,MAAAv6B,GAAAw6B,EAAA,QAAAx6B,EAAA06B,EAAA,KACA,IAAA,UAAAH,EACA,MAAAv6B,GAAAw6B,EAAA,SAAAx6B,EAAA06B,EAAA,OAGA,OAAA,EA1BA,GAAA1hI,GAAA2hI,EAAAC,EAAAC,EAAAC,EACAC,GAAA,iBAAA,oBAAA,sBACAC,EAAA,2DACAC,EAAA,uCACAC,EAAA,mBAAAz0H,WAAAA,SAAAI,KACAs0H,EAAAD,GAAAz0H,SAAAwX,UAAAxX,SAAAwX,SAAApgC,QAAA,KAAA,IACAu9I,EAAAF,GAAAz0H,SAAA+1C,SACA6+E,EAAAH,IAAAz0H,SAAAi2C,UAAAp7D,IACAg6I,KACAC,EAAA36I,EAAArD,QAAAqD,EAAArD,YAiYA,OA7WAyb,IACA4uB,QAAA,SAEA4zG,MAAA,SAAApyI,GAIA,GAAAA,EAAA,CACAA,EAAAA,EAAAvL,QAAAm9I,EAAA,GACA,IAAAjtI,GAAA3E,EAAA5F,MAAAy3I,EACAltI,KACA3E,EAAA2E,EAAA,QAGA3E,GAAA,EAEA,OAAAA,IAGAqyI,SAAA,SAAAryI,GACA,MAAAA,GAAAvL,QAAA,WAAA,QACAA,QAAA,QAAA,OACAA,QAAA,QAAA,OACAA,QAAA,QAAA,OACAA,QAAA,QAAA,OACAA,QAAA,QAAA,OACAA,QAAA,YAAA,WACAA,QAAA,YAAA,YAGA69I,UAAAH,EAAAG,WAAA,WAEA,GAAAz5G,GAAAjlC,EAAA2+I,CACA,IAAA,mBAAAz5G,gBACA,MAAA,IAAAA,eACA,IAAA,mBAAA05G,eACA,IAAA5+I,EAAA,EAAAA,EAAA,EAAAA,GAAA,EAAA,CACA2+I,EAAAZ,EAAA/9I,EACA,KACAilC,EAAA,GAAA25G,eAAAD,GACA,MAAAh7I,IAEA,GAAAshC,EAAA,CACA84G,GAAAY,EACA,QAKA,MAAA15G,IAWA45G,UAAA,SAAAv/I,GACA,GAAAw/I,GAAAC,EAAArpI,EACA8oI,GAAA,EACAh8I,EAAAlD,EAAAi0D,YAAA,KACAyrF,EAAA,IAAA1/I,EAAAmD,QAAA,OACA,IAAAnD,EAAAmD,QAAA,MAsBA,QApBA,IAAAD,KAAAw8I,GAAAx8I,EAAA,IACAs8I,EAAAx/I,EAAAoD,UAAA,EAAAF,GACAu8I,EAAAz/I,EAAAoD,UAAAF,EAAA,IAEAs8I,EAAAx/I,EAGAoW,EAAAqpI,GAAAD,EACAt8I,EAAAkT,EAAAjT,QAAA,MACA,IAAAD,IAEAg8I,EAAA,UAAA9oI,EAAAhT,UAAAF,EAAA,GACAkT,EAAAA,EAAAhT,UAAA,EAAAF,GACAu8I,EACAA,EAAArpI,EAEAopI,EAAAppI,IAKAupI,WAAAH,EACAC,IAAAA,EACAP,MAAAA,IAIAU,SAAA,4BAUAC,OAAA,SAAAp+G,EAAAE,EAAAu+B,EAAAE,GACA,GAAA0/E,GAAAC,EAAAC,EACA94I,EAAAwV,EAAAkjI,SAAAz2I,KAAAs4B,EACA,QAAAv6B,IAGA44I,EAAA54I,EAAA,GACA64I,EAAA74I,EAAA,GAEA64I,EAAAA,EAAAh/I,MAAA,KACAi/I,EAAAD,EAAA,GACAA,EAAAA,EAAA,KAEAD,GAAAA,IAAAn+G,MACAo+G,GAAAA,EAAA/3I,gBAAAk4D,EAAAl4D,kBACAg4I,IAAAD,GAAA/B,EAAA8B,EAAAE,EAAAr+G,EAAAy+B,MAGA6/E,WAAA,SAAAjgJ,EAAAk/I,EAAApyI,EAAAozI,GACApzI,EAAAoyI,EAAAxiI,EAAAwiI,MAAApyI,GAAAA,EACAmyI,EAAAkB,UACAnB,EAAAh/I,GAAA8M,GAEAozI,EAAApzI,IAGA/H,KAAA,SAAA/E,EAAAoC,EAAA89I,EAAAj/I,GAUA,GAAAA,GAAAA,EAAAk/I,UAAAl/I,EAAAm/I,WAEA,WADAF,IAIAjB,GAAAkB,QAAAl/I,GAAAA,EAAAk/I,OAEA,IAAAx4G,GAAAjrB,EAAA6iI,UAAAv/I,GACAqgJ,EAAA14G,EAAAg4G,YACAh4G,EAAA83G,IAAA,IAAA93G,EAAA83G,IAAA,IACAh+G,EAAAr/B,EAAAk+I,MAAAD,GACAR,EAAAZ,EAAA,QACAviI,EAAAmjI,MAGA,IAAA,IAAAp+G,EAAAt+B,QAAA,UAEA,WADA+8I,MAKAtB,GAAAiB,EAAAp+G,EAAAo9G,EAAAC,EAAAC,GACAriI,EAAAvS,IAAAs3B,EAAA,SAAA30B,GACA4P,EAAAujI,WAAAjgJ,EAAA2nC,EAAAu3G,MAAApyI,EAAAozI,IACA,SAAAh0I,GACAg0I,EAAAhmI,OACAgmI,EAAAhmI,MAAAhO,KAQA9J,GAAAi+I,GAAA,SAAAvzI,GACA4P,EAAAujI,WAAAt4G,EAAAg4G,WAAA,IAAAh4G,EAAA83G,IACA93G,EAAAu3G,MAAApyI,EAAAozI,MAKA/vI,MAAA,SAAAowI,EAAAZ,EAAAxvI,EAAAlP,GACA,GAAA+9I,EAAAr7I,eAAAg8I,GAAA,CACA,GAAA7yI,GAAA4P,EAAAyiI,SAAAH,EAAAW,GACAxvI,GAAAqwI,SAAAD,EAAA,IAAAZ,EACA,gCACA7yI,EACA,aAIA2zI,UAAA,SAAAF,EAAAZ,EAAAv9I,EAAA+N,EAAAlP,GACA,GAAA0mC,GAAAjrB,EAAA6iI,UAAAI,GACAe,EAAA/4G,EAAA83G,IAAA,IAAA93G,EAAA83G,IAAA,GACAY,EAAA14G,EAAAg4G,WAAAe,EAGAhvB,EAAAtvH,EAAAk+I,MAAA34G,EAAAg4G,WAAAe,GAAA,KAKAhkI,GAAA3X,KAAAs7I,EAAAj+I,EAAA,SAAAK,GAIA,GAAAk+I,GAAA,SAAAznI,GACA,MAAA/I,GAAAuhH,EAAAx4G,GAEAynI,GAAAH,SAAA,SAAAb,EAAAzmI,GACA,MAAA/I,GAAAqwI,SAAAb,EAAAjuB,EAAAx4G,IAGAwD,EAAAvM,MAAAowI,EAAAF,EAAAM,EAAA1/I,IACAA,KAIA,SAAAg+I,EAAA2B,MAAA3B,EAAA2B,KACA,mBAAAz4F,UACAA,QAAA04F,UACA14F,QAAA04F,SAAAtyI,OACA45C,QAAA04F,SAAA,iBACA14F,QAAA04F,SAAA,eAEAxC,EAAA9+I,QAAAuhJ,YAAA,MAEApkI,EAAAvS,IAAA,SAAAs3B,EAAA/8B,EAAAq8I,GACA,IACA,GAAA31H,GAAAizH,EAAA2C,aAAAv/G,EAAA,OAEA,YAAArW,EAAA,KACAA,EAAAA,EAAAhoB,UAAA,IAEAsB,EAAA0mB,GACA,MAAA/mB,GACA08I,GACAA,EAAA18I,MAIA,QAAA46I,EAAA2B,MAAA3B,EAAA2B,KACAlkI,EAAA0iI,YACA1iI,EAAAvS,IAAA,SAAAs3B,EAAA/8B,EAAAq8I,EAAAn+G,GACA,GAAAhY,GAAA+a,EAAAjpB,EAAA0iI,WAIA,IAHAz5G,EAAAQ,KAAA,MAAA1E,GAAA,GAGAmB,EACA,IAAAhY,IAAAgY,GACAA,EAAAj/B,eAAAinB,IACA+a,EAAA3B,iBAAApZ,EAAA5iB,cAAA46B,EAAAhY,GAMAq0H,GAAAgC,OACAhC,EAAAgC,MAAAt7G,EAAAlE,GAGAkE,EAAAc,mBAAA,SAAAO,GACA,GAAAtE,GAAAx2B,CAGA,KAAAy5B,EAAA9V,aACA6S,EAAAiD,EAAAjD,QAAA,EACAA,EAAA,KAAAA,EAAA,KAEAx2B,EAAA,GAAAnJ,OAAA0+B,EAAA,iBAAAiB,GACAx2B,EAAAy5B,IAAAA,EACAo7G,GACAA,EAAA70I,IAGAxH,EAAAihC,EAAAgB,cAGAs4G,EAAAiC,eACAjC,EAAAiC,cAAAv7G,EAAAlE,KAIAkE,EAAAhB,KAAA,OAEA,UAAAs6G,EAAA2B,MAAA3B,EAAA2B,KACA,mBAAAO,WAAA,mBAAAC,MAEA1kI,EAAAvS,IAAA,SAAAs3B,EAAA/8B,GACA,GAAA28I,GAAAprE,EAEA7qD,EAAA,GAAAg2H,MAAAE,GAAA56C,KAAAjlE,GACA8/G,EAAAH,KAAAp3H,KAAAw3H,OAAAC,YAAA,kBACAt6H,EAAA,GAAAi6H,MAAAE,GAAAI,eAAA,GAAAN,MAAAE,GAAAK,kBAAA,GAAAP,MAAAE,GAAAM,gBAAAx2H,GAHA,UAIAte,EAAA,EACA,KAoBA,IAnBAu0I,EAAA,GAAAD,MAAAp3H,KAAA63H,aACA5rE,EAAA9uD,EAAA26H,WAOA7rE,GAAAA,EAAA90E,UAAA,QAAA80E,EAAAz0E,OAAA,KAIAy0E,EAAAA,EAAA7yE,UAAA,IAGA,OAAA6yE,GACAorE,EAAAnqH,OAAA++C,GAGA,QAAAA,EAAA9uD,EAAA26H,aACAT,EAAAnqH,OAAAqqH,GACAF,EAAAnqH,OAAA++C,EAGAnpE,GAAAsZ,OAAAi7H,EAAA1mI,YACA,QACAwM,EAAA/W,QAEA1L,EAAAoI,KAEA,cAAAmyI,EAAA2B,MAAA3B,EAAA2B,KACA,mBAAAmB,aAAAA,WAAAljH,SACAkjH,WAAAC,cAEA1D,EAAAyD,WAAAljH,QACA0/G,EAAAwD,WAAAC,WACAD,WAAAE,MAAA,OAAA,wCACAzD,EAAA,uCAAAF,GAEA5hI,EAAAvS,IAAA,SAAAs3B,EAAA/8B,GACA,GAAAw9I,GAAAC,EAAAC,EACAC,IAEA7D,KACA/8G,EAAAA,EAAAlgC,QAAA,MAAA,OAGA6gJ,EAAA,GAAAE,WAAA57C,KAAAjlE,EAGA,KACAygH,EAAA5D,EAAA,4CACAiE,eAAAhE,EAAAiE,oBACAN,EAAAnvI,KAAAqvI,EAAA,EAAA,GAAA,GAEAD,EAAA7D,EAAA,8CACAiE,eAAAhE,EAAAkE,yBACAN,EAAApvI,KAAAmvI,EAAA,QAAAA,EAAAQ,YACAnE,EAAAkE,wBAAAE,+BAEAR,EAAAS,WAAAV,EAAAQ,YAAAL,GACAF,EAAA/xI,QACA8xI,EAAA9xI,QACA1L,EAAA29I,EAAA5/I,OACA,MAAA4B,GACA,KAAA,IAAAtB,QAAAq/I,GAAAA,EAAA/hF,MAAA,IAAA,KAAAh8D,MAIAqY,ICrZAld,OAAA,uBAAA,WAAA,MAAA,6kBCYAA,OAAA,yCACA,WAiBA,MAfA,YAEA,GAAAqP,GAAAjJ,IAEAA,MAAAi9I,SAAA,SAAAC,GACA,MAAAj0I,GAAAk0I,YAAAD,EAAA,aAGAl9I,KAAAm9I,YAAA,SAAAC,EAAAlhH,GAEA,OADA,GAAAn8B,QAAAi7B,WACAC,gBAAAmiH,EAAAlhH,OCbAtiC,OAAA,+CAAA,SAAA,SAAA,SAAAsqC,EAAA40B,GAEA,GAAAukF,OAAAj+I,GAEAk+I,EAAA,WAEA,GAAAr0I,GAAAjJ,IAEAs9I,GAAAC,sBACAt6I,IAAA,WACAu6I,KAAA,uBACAC,IAAA,YACAt0I,KAAA,YACAu0I,IAAA,aACAC,KAAA,aACAC,IAAA,2BACAC,IAAA,gCACAC,IAAA,YACAC,IAAA,gBACAC,MAAA,yBAGAh+I,KAAAi+I,gCAAA,SAAAC,GACA,GAAAC,GAAArlF,EAAAolF,GAAA/oH,SACA+G,EAAA,0BAIA,YAHA,KAAAohH,EAAAC,qBAAAY,KACAjiH,EAAAohH,EAAAC,qBAAAY,IAEAjiH,GAGAl8B,KAAAo+I,oBAAA,SAAAF,GAIA,GAAAhiH,GAAAgI,EAAArH,MACA18B,KAAA,OACA07B,IAAAqiH,EACAjiH,OAAA,IACAxoB,kBAAA,eAQA,OAPA,QAAAyoB,IACAA,EAAAjzB,EAAAg1I,gCAAAC,GACA32G,QAAAE,IAAA,wBAAAvL,EAAA,eAAAgiH,EACA,8EAIAhiH,GASA,OAJAmhH,KACAA,EAAA,GAAAC,IAGAD,ICxDAzjJ,OAAA,gDAAA,SAAA,QAAA,2BAAA,SAAAsqC,EAAA40B,EAAAwkF,GAuGA,MArGA,UAAAe,GASA,QAAAC,GAAAC,EAAAC,EAAA79G,GACA,GAAA89G,GAAAx1I,EAAAy1I,WAAAH,EAEA,QAAA,KAAAA,EACA,KAAA,0CAGA,IAAAx+G,GAAA,GAAAC,eACAD,GAAAQ,KAAA,MAAAk+G,GAAA,GACA1+G,EAAAe,aAAA,cACAf,EAAAY,QAAAA,EAEAZ,EAAAW,OAAA,SAAAi+G,GACAH,EAAAz+G,EAAAnsB,WAGAmsB,EAAAhB,OAvBA,GACA6/G,IADAP,EAAAQ,cACAR,EAAAS,wBAEA71I,EAAAjJ,IA0BAA,MAAA0+I,WAAA,SAAAH,GAEA,GAAAQ,OAAA3/I,EACA,KACA2/I,EAAA,GAAAjmF,GAAAylF,GACA,MAAAj4I,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAA82G,GAEA,GAAAQ,GAAAA,EAAAt4H,GAAA,YAAA,MAAA83H,EAGA,IAAA1iH,GAAA+iH,CAEA,KAEA/iH,EAAA,GAAAi9B,GAAAj9B,GAAA8U,OAAA,IAAArsB,KAAA,IAAAvP,WACA,MAAAzO,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAA5L,GAGA,MAAAA,IAAA,KAAAA,EAAAjgC,OAAAigC,EAAAtgC,OAAA,GAAA,GAAA,KAAAgjJ,GAGAv+I,KAAAg/I,sBAAA,SAAAT,EAAAU,EAAAt+G,GACA,GAAA89G,GAAAx1I,EAAAy1I,WAAAH,EAEA,QAAA,KAAAE,EACA,KAAA,gCAEAv6G,GAAArH,MAMAf,QAAA,IAAA2iH,EAAAlhJ,QAAA,QACAs+B,IAAA4iH,EACA1sI,SAAA,OACAkqB,OAAA,EACAgB,QAAA,SAAAntB,GACAmvI,EAAAnvI,IAEAwE,MAAA,SAAAyrB,EAAAjD,EAAA8uF,GACAjrF,EAAA,GAAAxjC,OAAAyuH,QAKA5rH,KAAAk/I,sBAAA,SAAAX,EAAAU,EAAAt+G,GAEA,GAAAw+G,GAAAd,EAAAe,qCAAAb,EACA,IAAAY,EAAA,CACA,GAAAE,GAAAJ,CACAA,GAAA,SAAAK,GACAH,EAAAG,EAAA,SAAAC,GACAF,EAAAE,MAIAjB,EAAAC,EAAA,SAAAiB,GACA,GAAAC,GAAA,GAAA5+C,OAAA2+C,IACAr/I,KAAAm9I,EAAAW,gCAAAM,IAEAU,GAAAQ,IACA9+G,OCpFA,SAAA5mC,GACA,YAqBA,SAAA2lJ,KACA1/I,KAAA2/I,KAAA,EA0BA,QAAAC,MAMA,QAAAC,GAAAJ,EAAAniJ,EAAA/B,GACA,GAAA+B,EAAA,GAAA/B,EAAA,GAAA+B,EAAA/B,EAAAkkJ,EAAA37G,KACA,KAAA,IAAAsP,YAAA,UAAA91C,EAAA,YAAA/B,EAAA,UAAAkkJ,EAAA37G,KACA,OAAA27G,GAAA5jJ,MACA4jJ,EAAA5jJ,MAAAyB,EAAAA,EAAA/B,GACAkkJ,EAAAK,YACAL,EAAAK,YAAAxiJ,EAAAA,EAAA/B,GACAkkJ,EAAAM,SACAN,EAAAM,SAAAziJ,EAAAA,EAAA/B,GACAkkJ,EAAAO,QACAP,EAAAO,QAAA1iJ,EAAAA,EAAA/B,OADA,GAIA,QAAA0kJ,GAAAC,EAAAC,GACA,GAAAC,GAAAC,CAKA,OAJAD,GAAA,GAAAE,aAAAJ,GACAG,EAAA,GAAAE,YAAAH,GACAD,GACAE,EAAA59I,IAAA09I,EAAA,IAEAK,OAAAJ,EACA1pG,MAAA2pG,EACAluH,KAAA,GAAAsuH,UAAAL,IAKA,QAAAM,MAGA,QAAAC,GAAA7pI,GAGA,QAAA3J,GAAArO,EAAA6hC,GACA,GAAA8+G,GAAA,GAAA5+C,OAAA/pF,IACA3W,KAAAygJ,GAEAC,GAAA,GAAAC,GAAArB,GACAoB,EAAA1zI,KAAA,WACAg4E,EAAArhD,KAAA+8G,EAAA/8G,KACAhlC,KACA6hC,GAGA,QAAAogH,GAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GACAkgH,EAAAE,eAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GAdA,GAAAkgH,GAAA17D,EAAAnlF,IAiBAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAKA,QAAAC,GAAAC,GAGA,QAAA9zI,GAAArO,GAEA,IADA,GAAAoiJ,GAAAD,EAAA1lJ,OACA,KAAA0lJ,EAAArlJ,OAAAslJ,EAAA,IACAA,GACAC,GAAAF,EAAA1jJ,QAAA,KAAA,EACA4nF,EAAArhD,KAAAh4B,KAAAo/B,MAAA,KAAAg2G,EAAAC,IACAriJ,IAGA,QAAAiiJ,GAAAzjJ,EAAA/B,EAAAuD,GACA,GAAAhE,GAAAoH,EAAA+9I,EAAA1kJ,GACAkI,EAAA,EAAAqI,KAAAo/B,MAAA5tC,EAAA,GACAoG,EAAA,EAAAoI,KAAAw1C,MAAAhkD,EAAA/B,GAAA,GACA4kJ,EAAApmJ,EAAAqnJ,KAAAH,EAAAzjJ,UAAAiG,EAAA09I,EAAAz9I,EAAAy9I,IACA7zF,EAAAhwD,EAAA,EAAAwO,KAAAo/B,MAAAznC,EAAA,EACA,KAAA3I,EAAAwyD,EAAAxyD,EAAAwyD,EAAA/xD,EAAAT,IACAoH,EAAAw0C,MAAA57C,EAAAwyD,GAAA6yF,EAAAtrG,WAAA/5C,EACAgE,GAAAoD,EAAAw0C,OAnBA,GAAAyqG,GAAAh8D,EAAAnlF,IAsBAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAKA,QAAAD,GAAArB,GAGA,QAAAtyI,GAAArO,GACAqmF,EAAArhD,KAAA27G,EAAA37G,KACAhlC,IAGA,QAAAiiJ,GAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GACA,GAAAg4D,GAAA,GAAA0oD,WACA1oD,GAAAj4D,OAAA,SAAAjiC,GACAK,EAAA,GAAAyhJ,YAAA9hJ,EAAAmU,OAAA9C,UAEA6oF,EAAAh4D,QAAAA,CACA,KACAg4D,EAAA2oD,kBAAAzB,EAAAJ,EAAAniJ,EAAA/B,IACA,MAAAkD,GACAkiC,EAAAliC,IAhBA,GAAA0mF,GAAAnlF,IAoBAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAOA,QAAAQ,MAMA,QAAAC,GAAAC,GAGA,QAAAt0I,GAAArO,GACA2gJ,EAAA,GAAA5+C,UACA1gG,KAAAygJ,IAEA9hJ,IAGA,QAAA4iJ,GAAAhrG,EAAA53C,GACA2gJ,EAAA,GAAA5+C,OAAA4+C,EAAAkC,EAAAjrG,EAAAA,EAAA8pG,SACArgJ,KAAAygJ,IAEA9hJ,IAGA,QAAAikF,GAAAjkF,EAAA6hC,GACA,GAAAg4D,GAAA,GAAA0oD,WACA1oD,GAAAj4D,OAAA,SAAAjiC,GACAK,EAAAL,EAAAmU,OAAA9C,SAEA6oF,EAAAh4D,QAAAA,EACAg4D,EAAAipD,WAAAnC,EAAAgC,GAtBA,GAAAhC,GAAAt6D,EAAAnlF,IAyBAmlF,GAAAh4E,KAAAA,EACAg4E,EAAAu8D,gBAAAA,EACAv8D,EAAApC,QAAAA,EAKA,QAAA8+D,GAAA3lH,GAGA,QAAA/uB,GAAArO,GACAoD,GAAA,SAAAg6B,GAAA,IAAA,WACAp9B,IAGA,QAAA4iJ,GAAAhrG,EAAA53C,GACA,GAAAhE,GAAAwyD,EAAAo1E,EAAAnnI,OAAAumJ,EAAApf,CAEA,KADAA,EAAA,GACA5nI,EAAA,EAAAA,EAAA,EAAAgR,KAAAo/B,OAAAoiB,EAAA5W,EAAAn7C,QAAA,GAAA+xD,EAAAxyD,IACAgnJ,GAAAthI,OAAAC,aAAAi2B,EAAA57C,GACA,MAAAA,EAAA47C,EAAAn7C,OAAAT,IACA4nI,GAAAliH,OAAAC,aAAAi2B,EAAA57C,GACAgnJ,GAAAvmJ,OAAA,EACA2G,GAAAnI,EAAAgoJ,KAAAD,GAEApf,EAAAof,EACAhjJ,IAGA,QAAAikF,GAAAjkF,GACAA,EAAAoD,EAAAnI,EAAAgoJ,KAAArf,IAtBA,GAAAv9C,GAAAnlF,KAAAkC,EAAA,GAAAwgI,EAAA,EAyBAv9C,GAAAh4E,KAAAA,EACAg4E,EAAAu8D,gBAAAA,EACAv8D,EAAApC,QAAAA,EAKA,QAAAi/D,GAAA9lH,GAGA,QAAA/uB,GAAArO,GACAA,IAGA,QAAA4iJ,GAAAhrG,EAAA53C,GACAoD,EAAA3F,KAAAolJ,EAAAjrG,EAAAA,EAAA8pG,QACA1hJ,IAGA,QAAAikF,GAAAjkF,GACAA,EAAA,GAAA+hG,MAAA3+F,GAAA/B,KAAA+7B,KAZA,GAAAh6B,MAAAijF,EAAAnlF,IAeAmlF,GAAAh4E,KAAAA,EACAg4E,EAAAu8D,gBAAAA,EACAv8D,EAAApC,QAAAA,EAYA,QAAAk/D,GAAAC,EAAAC,EAAAxpD,EAAAypD,EAAAjgH,EAAA2B,EAAAu+G,EAAAnf,EAAAof,EAAAC,GAGA,QAAAC,KACAN,EAAAvgJ,oBAAA,UAAA8gJ,GAAA,GACAvf,EAAAwf,EAAA/C,GAGA,QAAA8C,GAAA57I,GACA,GAAA6oE,GAAA7oE,EAAA3E,KAAAA,EAAAwtE,EAAAxtE,KAAAoE,EAAAopE,EAAAp7D,KACA,IAAAhO,EAGA,MAFAA,GAAAyO,SAAA,WAAA,MAAA,UAAA/U,KAAA0vE,aACA4yE,GAAAh8I,EAGA,IAAAopE,EAAArY,KAAAA,EAOA,OALA,gBAAAqY,GAAAizE,YACAT,EAAAS,WAAAjzE,EAAAizE,WACA,gBAAAjzE,GAAAkzE,UACAV,EAAAU,SAAAlzE,EAAAkzE,SAEAlzE,EAAAvvE,MACA,IAAA,SACA+B,GACAwgJ,GAAAxgJ,EAAA3G,OACA6mJ,EAAAV,gBAAAx/I,EAAA,WACAqzB,KACAgtH,IAEAhtH,GACA,MACA,KAAA,QACAoqH,EAAAjwE,EAAAiwE,IACAz9I,GACAwgJ,GAAAxgJ,EAAA3G,OACA6mJ,EAAAV,gBAAAx/I,EAAA,WACAsgJ,KACAD,IAEAC,GACA,MACA,KAAA,WACAH,GACAA,EAAA/kJ,EAAAoyE,EAAAmzE,OAAA/+G,EACA,MACA,KAAA,gBACA,IAAA,UACA,IAAA,OACA,KACA,SACAyD,QAAAI,KAAA,gDAAA+nC,IAIA,QAAAn6C,KACAj4B,EAAAwlJ,EAAAC,EAEAzlJ,GAAAwmC,EACA60D,EAAAooD,eAAA5+G,EAAA7kC,EAAAwO,KAAAk/B,IAAA+3G,EAAAj/G,EAAAxmC,GAAA,SAAAo5C,GACA2rG,GACAA,EAAA/kJ,EAAAwmC,EACA,IAAA1tB,GAAA,IAAA9Y,EAAA6kJ,GAAA9qF,GAAAA,EACAjhD,GAAAjW,KAAA,SACAiW,EAAAlU,KAAAw0C,CAGA,KACAwrG,EAAAngG,YAAA3rC,GAAAsgC,EAAA8pG,SACA,MAAA59D,GACAs/D,EAAAngG,YAAA3rC,GAEA0sI,KACAR,GAEAJ,EAAAngG,aACAsV,GAAAA,EACAl3D,KAAA,UA5EA,GAAA7C,GAAAolJ,EAAA/C,EAAAmD,EAAA,EAAAzrF,EAAA8qF,EAAA9qF,EAiFAqrF,GAAA,EACAR,EAAAnhI,iBAAA,UAAA0hI,GAAA,GACAltH,IAGA,QAAAytH,GAAAzgG,EAAAo2C,EAAAypD,EAAAjgH,EAAA2B,EAAAm/G,EAAAZ,EAAAnf,EAAAof,EAAAC,GAKA,QAAAhtH,KACA,GAAA2tH,EAEA,KADA5lJ,EAAAwlJ,EAAAC,GACAj/G,EACA60D,EAAAooD,eAAA5+G,EAAA7kC,EAAAwO,KAAAk/B,IAAA+3G,EAAAj/G,EAAAxmC,GAAA,SAAA6lJ,GACA,GAAAD,EACA,KACAA,EAAA3gG,EAAAjxB,OAAA6xH,EAAA,SAAAN,GACAR,GACAA,EAAA/kJ,EAAAulJ,EAAA/+G,KAEA,MAAArlC,GAEA,WADA6jJ,GAAA7jJ,GAGAykJ,GACAR,GAAAQ,EAAA3nJ,OACA6mJ,EAAAV,gBAAAwB,EAAA,WACAJ,IACAxjJ,WAAAi2B,EAAA,IACAgtH,GACAa,GACAzD,EAAAruH,OAAA4xH,KAEAJ,IACAxjJ,WAAAi2B,EAAA,IAEA8tH,GACA1D,EAAAruH,OAAA6xH,GACAd,GACAA,EAAA/kJ,EAAAwmC,IACAw+G,OACA,CACA,IACAY,EAAA3gG,EAAAs/E,QACA,MAAApjI,GAEA,WADA6jJ,GAAA7jJ,GAGAykJ,GACAE,GACAzD,EAAAruH,OAAA4xH,GACAR,GAAAQ,EAAA3nJ,OACA6mJ,EAAAV,gBAAAwB,EAAA,WACAhgB,EAAAwf,EAAA/C,EAAAp7I,QACAg+I,IAEArf,EAAAwf,EAAA/C,EAAAp7I,QAnDA,GAAAjH,GAAAwlJ,EAAA,EAAAJ,EAAA,EACAW,EAAA,UAAAJ,EACAG,EAAA,WAAAH,EACAtD,EAAA,GAAAD,EAoDAnqH,KAGA,QAAA+tH,GAAApB,EAAA7qF,EAAAshC,EAAAypD,EAAAjgH,EAAA2B,EAAAy/G,EAAArgB,EAAAmf,EAAAC,EAAAC,GACA,GAAAU,GAAAM,EAAA,SAAA,MACA,IAAAxpJ,EAAAg4F,IAAAyxD,cAAA,CAMAvB,EAAAC,GAJA7qF,GAAAA,EACAosF,WAAA,WACAR,QAAAA,GAEAtqD,EAAAypD,EAAAjgH,EAAA2B,EAAAu+G,EAAAnf,EAAAof,EAAAC,OAEAS,GAAA,GAAAjpJ,GAAAg4F,IAAA2xD,SAAA/qD,EAAAypD,EAAAjgH,EAAA2B,EAAAm/G,EAAAZ,EAAAnf,EAAAof,EAAAC,GAGA,QAAAoB,GAAAzB,EAAA7qF,EAAAshC,EAAAypD,EAAAwB,EAAA1gB,EAAAmf,EAAAC,EAAAC,GAEA,GAAAxoJ,EAAAg4F,IAAAyxD,cAAA,CAOAvB,EAAAC,GALA7qF,GAAAA,EACAl2D,SAAAyiJ,MAAAA,GACAH,WAAA,WACAR,QANA,SAQAtqD,EAAAypD,EAAA,EAAAzpD,EAAA70D,KAAAu+G,EAAAnf,EAAAof,EAAAC,OAEAS,GAAA,GAAAjpJ,GAAAg4F,IAAA8xD,SAAAlrD,EAAAypD,EAAA,EAAAzpD,EAAA70D,KAVA,QAUAu+G,EAAAnf,EAAAof,EAAAC,GAGA,QAAAxsI,GAAAmsI,EAAA7qF,EAAAshC,EAAAypD,EAAAjgH,EAAA2B,EAAAy/G,EAAArgB,EAAAmf,EAAAC,EAAAC,GAEA,GAAAxoJ,EAAAg4F,IAAAyxD,eAAAD,EAAA,CAMAtB,EAAAC,GAJA7qF,GAAAA,EACAosF,WAAA,OACAR,QALA,SAOAtqD,EAAAypD,EAAAjgH,EAAA2B,EAAAu+G,EAAAnf,EAAAof,EAAAC,OAEAS,GAAA,GAAApD,GAAAjnD,EAAAypD,EAAAjgH,EAAA2B,EATA,QASAu+G,EAAAnf,EAAAof,EAAAC,GAKA,QAAAuB,GAAAhpD,GACA,GAAAhgG,GAAAi0B,EAAA++B,EAAA,GAAAi2F,GAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IACA,KAAAjpJ,EAAA,EAAAA,EAAAggG,EAAAv/F,OAAAT,IACAi0B,EAAA,IAAA+rE,EAAAjmD,WAAA/5C,GAEAgzD,GADA/+B,EAAA,IACAg1H,EAAAh1H,EAAA,KAEAvO,OAAAC,aAAAsO,EAEA,OAAA++B,GAGA,QAAAk2F,GAAAhtI,GACA,MAAAwlD,oBAAA3C,OAAA7iD,IAGA,QAAAitI,GAAA9D,GACA,GAAArlJ,GAAAggG,EAAA,EACA,KAAAhgG,EAAA,EAAAA,EAAAqlJ,EAAA5kJ,OAAAT,IACAggG,GAAAt6E,OAAAC,aAAA0/H,EAAArlJ,GACA,OAAAggG,GAGA,QAAAopD,GAAAC,GACA,GAAAC,IAAA,WAAAD,IAAA,GAAA1sH,EAAA,MAAA0sH,CACA,KACA,MAAA,IAAA5sI,MAAA,OAAA,MAAA6sI,IAAA,KAAA,IAAAA,IAAA,GAAA,EAAA,GAAAA,GAAA,MAAA3sH,IAAA,IAAA,KAAAA,IAAA,EACA,GAAA,GAAAA,GAAA,GACA,MAAAh5B,KAIA,QAAA4lJ,GAAA19F,EAAAzkD,EAAA5E,EAAAgnJ,EAAA3jH,GAMA,MALAgmB,GAAAjhB,QAAAxjC,EAAAiwB,KAAAoyH,UAAAjnJ,GAAA,GACAqpD,EAAA69F,QAAAtiJ,EAAAiwB,KAAAoyH,UAAAjnJ,EAAA,GAAA,GACAqpD,EAAA89F,kBAAAviJ,EAAAiwB,KAAAoyH,UAAAjnJ,EAAA,GAAA,GACAqpD,EAAA+9F,eAAAxiJ,EAAAiwB,KAAAwyH,UAAArnJ,EAAA,GAAA,GACAqpD,EAAAi+F,YAAAV,EAAAv9F,EAAA+9F,gBACA,IAAA,EAAA/9F,EAAA69F,aACA7jH,GAAAkkH,KAGAP,GAAA,IAAA,EAAA39F,EAAA69F,YACA79F,EAAAm+F,MAAA5iJ,EAAAiwB,KAAAwyH,UAAArnJ,EAAA,IAAA,GACAqpD,EAAAo+F,eAAA7iJ,EAAAiwB,KAAAwyH,UAAArnJ,EAAA,IAAA,GACAqpD,EAAAq+F,iBAAA9iJ,EAAAiwB,KAAAwyH,UAAArnJ,EAAA,IAAA,IAEA,aAAAqpD,EAAAo+F,gBAAA,aAAAp+F,EAAAq+F,qBACArkH,GAAAskH,IAGAt+F,EAAAu+F,eAAAhjJ,EAAAiwB,KAAAoyH,UAAAjnJ,EAAA,IAAA,QACAqpD,EAAAw+F,iBAAAjjJ,EAAAiwB,KAAAoyH,UAAAjnJ,EAAA,IAAA,MAGA,QAAA8nJ,GAAAzsD,EAAA75F,EAAA6hC,GAGA,QAAA0kH,MA8CA,QAAAC,GAAAC,GAoBA,QAAAC,GAAAjqJ,EAAAkqJ,GACA9sD,EAAAooD,eAAApoD,EAAA70D,KAAAvoC,EAAAA,EAAA,SAAA4kJ,GACA,IAAA,GAAArlJ,GAAAqlJ,EAAA5kJ,OAAAmqJ,EAAA5qJ,GAAA,EAAAA,IACA,GAAA,KAAAqlJ,EAAArlJ,IAAA,KAAAqlJ,EAAArlJ,EAAA,IAAA,IAAAqlJ,EAAArlJ,EAAA,IAAA,IAAAqlJ,EAAArlJ,EAAA,GAEA,WADAyqJ,GAAA,GAAA9E,UAAAN,EAAAK,OAAA1lJ,EAAA4qJ,GAIAD,MACA,WACA9kH,EAAAglH,KA1BA,GAAAD,GAAA,EACA,IAAA/sD,EAAA70D,KAAA4hH,EAEA,WADA/kH,GAAAilH,EAGA,IAAAC,GAAAH,EAAA,KAGAF,GAAAE,EAAA,WAEAF,EAAA15I,KAAAk/B,IAAA66G,EAAAltD,EAAA70D,MAAA,WACAnD,EAAAilH,OA/DA,GAAAE,GAAA,CAKAT,GAAAvnJ,UAAAilF,QAAA,SAAAq/D,EAAAlf,EAAAmf,EAAA0D,GAGA,QAAAC,GAAAlB,GACA,GAAAmB,GAAAhG,EAAA,EAEA,OADAgG,GAAA9zH,KAAA+zH,UAAA,EAAApB,GACA3/D,EAAA2/D,OAAAmB,EAAA9zH,KAAAwyH,UAAA,GAGA,QAAAwB,GAAAnB,EAAAF,GACAiB,IAAAC,EAAAlB,GACAnkH,EAAAylH,GAEAhE,EAAAr/D,QAAA,SAAA7gF,GACAghI,EAAAhhI,KAIA,QAAAogJ,GAAAh8I,GACAq6B,EAAAr6B,GAAA+/I,GAGA,QAAA9D,GAAAj8I,GACAq6B,EAAAr6B,GAAAggJ,GAtBA,GAAAnhE,GAAAnlF,IAyBA24F,GAAAooD,eAAA57D,EAAAhjD,OAAA,GAAA,SAAAg+G,GACA,GAAAoG,GAAArkJ,EAAA+9I,EAAAE,EAAA5kJ,OAAA4kJ,EACA,IAAA,YAAAj+I,EAAAiwB,KAAAwyH,UAAA,GAEA,WADAhkH,GAAAilH,EAGAvB,GAAAl/D,EAAAjjF,EAAA,GAAA,EAAAy+B,GACA4lH,EAAAphE,EAAAhjD,OAAA,GAAAgjD,EAAA+/D,eAAA//D,EAAAggE,iBACA/C,EAAAj1I,KAAA,WACA,IAAAg4E,EAAAs/D,kBACA1uI,EAAAovE,EAAAqhE,QAAAV,IAAAntD,EAAAypD,EAAAmE,EAAAphE,EAAA4/D,eAAAgB,EAAAI,EAAA9D,EAAAC,EAAAC,GAEAe,EAAAn+D,EAAAqhE,QAAAV,IAAAntD,EAAAypD,EAAAmE,EAAAphE,EAAA4/D,eAAAgB,EAAAI,EAAA9D,EAAAC,EAAAC,IACAA,IACAD,GAsCA,IAAAmE,IACAC,WAAA,SAAA5nJ,GACA,GAAAojJ,GAAAliJ,KAAAwmJ,OAEAlB,GAAA,SAAAqB,GACA,GAAAC,GAAAC,CAGA,IAFAD,EAAAD,EAAAhC,UAAA,IAAA,GACAkC,EAAAF,EAAApC,UAAA,GAAA,GACAqC,EAAA,GAAAA,GAAAjuD,EAAA70D,KAEA,WADAnD,GAAAilH,EAGAjtD,GAAAooD,eAAA6F,EAAAjuD,EAAA70D,KAAA8iH,EAAA,SAAAzG,GACA,GAAArlJ,GAAA6rD,EAAA2c,EAAAwjF,EAAAxpJ,EAAA,EAAAo6C,KAAAx1C,EAAA+9I,EAAAE,EAAA5kJ,OAAA4kJ,EACA,KAAArlJ,EAAA,EAAAA,EAAA+rJ,EAAA/rJ,IAAA,CAGA,GAFA6rD,EAAA,GAAA0+F,GACA1+F,EAAA6/F,QAAAtE,EACA,YAAAhgJ,EAAAiwB,KAAAwyH,UAAArnJ,GAEA,WADAqjC,GAAAilH,EAGAvB,GAAA19F,EAAAzkD,EAAA5E,EAAA,GAAA,EAAAqjC,GACAgmB,EAAAogG,cAAA7kJ,EAAAiwB,KAAAoyH,UAAAjnJ,EAAA,IAAA,GACAqpD,EAAA0c,UAAA,KAAA,GAAAnhE,EAAAiwB,KAAA60H,SAAA1pJ,EAAA,KACAqpD,EAAAxkB,OAAAjgC,EAAAiwB,KAAAwyH,UAAArnJ,EAAA,IAAA,GACAgmE,EAAA2gF,EAAA/hJ,EAAAw0C,MAAAuwG,SAAA3pJ,EAAA,GAAAA,EAAA,GAAAqpD,EAAAu+F,iBACAv+F,EAAA2c,SAAA,OAAA,KAAA3c,EAAA69F,SAAAR,EAAA1gF,GAAAwgF,EAAAxgF,GACA3c,EAAA0c,WAAA,KAAA1c,EAAA2c,SAAA1nE,OAAA+qD,EAAA2c,SAAA/nE,OAAA,KACAorD,EAAA0c,WAAA,GACAyjF,EAAA7C,EAAA/hJ,EAAAw0C,MAAAuwG,SAAA3pJ,EAAA,GAAAqpD,EAAAu+F,eAAAv+F,EAAAw+F,iBAAA7nJ,EAAA,GACAqpD,EAAAu+F,eAAAv+F,EAAAw+F,iBAAAx+F,EAAAogG,gBACApgG,EAAAmgG,QAAA,OAAA,KAAAngG,EAAA69F,SAAAR,EAAA8C,GAAAhD,EAAAgD,GACApvG,EAAAn7C,KAAAoqD,GACArpD,GAAA,GAAAqpD,EAAAu+F,eAAAv+F,EAAAw+F,iBAAAx+F,EAAAogG,cAEAjoJ,EAAA44C,IACA,WACA/W,EAAAglH,QAIAn7I,MAAA,SAAA1L,GACAkB,KAAAwmJ,UACAxmJ,KAAAwmJ,QAAAU,YACAlnJ,KAAAwmJ,QAAA,MAEA1nJ,GACAA,KAEA0nJ,QAAA,KAGAzsJ,GAAAg4F,IAAAyxD,cAGA2D,EAAA,WACA,SAAAjF,GACAuE,EAAAD,QAAAtE,EACApjJ,EAAA2nJ,IAEA,SAAAngJ,GACAq6B,EAAAr6B,KARAxH,EAAA2nJ,GAgBA,QAAAW,GAAApwI,GACA,MAAA0lD,UAAA98B,mBAAA5oB,IAGA,QAAAqwI,GAAAvsD,GACA,GAAAhgG,GAAA47C,IACA,KAAA57C,EAAA,EAAAA,EAAAggG,EAAAv/F,OAAAT,IACA47C,EAAAn6C,KAAAu+F,EAAAjmD,WAAA/5C,GACA,OAAA47C,GAGA,QAAA4wG,GAAAlF,EAAAtjJ,EAAA6hC,EAAA4mH,GAIA,QAAAhF,GAAAj8I,GACAq6B,EAAAr6B,GAAAkhJ,GAGA,QAAAlF,GAAAh8I,GACAq6B,EAAAr6B,GAAA+/I,GARA,GAAAoB,MAAAC,KAAAd,EAAA,EACAe,EAAA,EAUAC,GACA5gJ,IAAA,SAAA5M,EAAAu+F,EAAAuqC,EAAAmf,EAAAlhJ,GAIA,QAAA0mJ,GAAA/oJ,GACA,GAAAoD,EACAkiJ,GAAAjjJ,EAAAyjJ,aAAA,GAAArtI,MACAyN,EAAAi7H,EAAA,IACAwH,EAAArtJ,IACA0tJ,YAAA9iI,EAAA0xB,MACA2sB,UAAAliE,EAAAkiE,UACAC,SAAAA,EACAnhC,OAAAykH,EACAE,QAAAO,EAAAD,EAAAjmJ,EAAA2lJ,SAAA,MAEA9hI,EAAAmN,KAAA+zH,UAAA,EAAA,WACA/kJ,EAAAukC,SACA1gB,EAAAmN,KAAA41H,SAAA,EAAA5mJ,EAAAukC,SACA6hH,GAAA,IAAApmJ,EAAAyiJ,OAAAziJ,EAAAkiE,WACAr+C,EAAAmN,KAAA61H,UAAA,EAAA,MACAhjI,EAAAmN,KAAA61H,UAAA,GAAA5D,EAAA6D,YAAA,EAAA7D,EAAA8D,eAAA,EAAA9D,EAAA+D,aAAA,GAAA,GACAnjI,EAAAmN,KAAA61H,UAAA,GAAA5D,EAAAgE,cAAA,MAAA,EAAAhE,EAAAiE,WAAA,IAAA,EAAAjE,EAAAF,WAAA,GACAl/H,EAAAmN,KAAA61H,UAAA,GAAA1kF,EAAA/nE,QAAA,GACA2G,EAAA+9I,EAAA,GAAA38E,EAAA/nE,QACA2G,EAAAiwB,KAAA+zH,UAAA,EAAA,YACAhkJ,EAAAw0C,MAAAj0C,IAAAuiB,EAAA0xB,MAAA,GACAx0C,EAAAw0C,MAAAj0C,IAAA6gE,EAAA,IACAsjF,GAAA1kJ,EAAAw0C,MAAAn7C,OACA6mJ,EAAAV,gBAAAx/I,EAAAw0C,MAAA53C,EAAAyjJ,GAGA,QAAA+F,GAAAC,EAAAzD,GACA,GAAA0D,GAAAvI,EAAA,GACA2G,IAAA2B,GAAA,EACAC,EAAAr2H,KAAA+zH,UAAA,EAAA,gBACA,KAAApB,IACA9/H,EAAAmN,KAAA+zH,UAAA,GAAApB,GAAA,GACA0D,EAAAr2H,KAAA+zH,UAAA,EAAApB,GAAA,IAEAnsD,IACA6vD,EAAAr2H,KAAA+zH,UAAA,EAAAqC,GAAA,GACAvjI,EAAAmN,KAAA+zH,UAAA,GAAAqC,GAAA,GACAC,EAAAr2H,KAAA+zH,UAAA,GAAAvtD,EAAA70D,MAAA,GACA9e,EAAAmN,KAAA+zH,UAAA,GAAAvtD,EAAA70D,MAAA,IAEAs+G,EAAAV,gBAAA8G,EAAA9xG,MAAA,WACAkwG,GAAA,GACA1jB,KACAqf,GAGA,QAAA1H,KAKA,GAJA15I,EAAAA,MACA/G,EAAAA,EAAAyc,OACA1V,EAAAkiE,WAAA,KAAAjpE,EAAAwB,OAAAxB,EAAAmB,OAAA,KACAnB,GAAA,KACAqtJ,EAAA1pJ,eAAA3D,GAEA,WADAumC,GAAA8nH,EAGAnlF,GAAA+jF,EAAAD,EAAAhtJ,IACAstJ,EAAAnrJ,KAAAnC,GACAytJ,EAAA,WACAlvD,EACA4uD,GAAA,IAAApmJ,EAAAyiJ,MACA7tI,EAAAmsI,EAAAyF,IAAAhvD,EAAAypD,EAAA,EAAAzpD,EAAA70D,MAAA,EAAAwkH,EAAAjG,EAAAC,EAAAC,GAEAoB,EAAAzB,EAAAyF,IAAAhvD,EAAAypD,EAAAjhJ,EAAAyiJ,MAAA0E,EAAAjG,EAAAC,EAAAC,GAEA+F,KACA/F,GArEA,GAAAv9H,GAAAs+C,EAAA8gF,EACAlC,EAAAliJ,KAAAwmJ,OAuEA7tD,GACAA,EAAAxrF,KAAA0tI,EAAAyH,GAEAzH,KAEArwI,MAAA,SAAA1L,GACAkB,KAAAwmJ,UACAxmJ,KAAAwmJ,QAAAU,YACAlnJ,KAAAwmJ,QAAA,KAGA,IAAAtkJ,GAAAwmJ,EAAAljI,EAAAjqB,EAAA,EAAA+B,EAAA,CACA,KAAAorJ,EAAA,EAAAA,EAAAhB,EAAAnsJ,OAAAmtJ,IACAljI,EAAAiiI,EAAAC,EAAAgB,IACAntJ,GAAA,GAAAiqB,EAAA89C,SAAA/nE,OAAAiqB,EAAAshI,QAAAvrJ,MAGA,KADA2G,EAAA+9I,EAAA1kJ,EAAA,IACAmtJ,EAAA,EAAAA,EAAAhB,EAAAnsJ,OAAAmtJ,IACAljI,EAAAiiI,EAAAC,EAAAgB,IACAxmJ,EAAAiwB,KAAA+zH,UAAA5oJ,EAAA,YACA4E,EAAAiwB,KAAA61H,UAAA1qJ,EAAA,EAAA,MACA4E,EAAAw0C,MAAAj0C,IAAA+iB,EAAAsiI,YAAAxqJ,EAAA,GACA4E,EAAAiwB,KAAA61H,UAAA1qJ,EAAA,GAAAkoB,EAAAshI,QAAAvrJ,QAAA,GACAiqB,EAAA69C,WACAnhE,EAAAiwB,KAAA41H,SAAAzqJ,EAAA,GAAA,IACA4E,EAAAiwB,KAAA+zH,UAAA5oJ,EAAA,GAAAkoB,EAAA2c,QAAA,GACAjgC,EAAAw0C,MAAAj0C,IAAA+iB,EAAA89C,SAAAhmE,EAAA,IACA4E,EAAAw0C,MAAAj0C,IAAA+iB,EAAAshI,QAAAxpJ,EAAA,GAAAkoB,EAAA89C,SAAA/nE,QACA+B,GAAA,GAAAkoB,EAAA89C,SAAA/nE,OAAAiqB,EAAAshI,QAAAvrJ,MAEA2G,GAAAiwB,KAAA+zH,UAAA5oJ,EAAA,YACA4E,EAAAiwB,KAAA61H,UAAA1qJ,EAAA,EAAAoqJ,EAAAnsJ,QAAA,GACA2G,EAAAiwB,KAAA61H,UAAA1qJ,EAAA,GAAAoqJ,EAAAnsJ,QAAA,GACA2G,EAAAiwB,KAAA+zH,UAAA5oJ,EAAA,GAAA/B,GAAA,GACA2G,EAAAiwB,KAAA+zH,UAAA5oJ,EAAA,GAAAspJ,GAAA,GACAxE,EAAAV,gBAAAx/I,EAAAw0C,MAAA,WACA0rG,EAAAr/D,QAAAjkF,IACAyjJ,IAEAiE,QAAA,KAGAzsJ,GAAAg4F,IAAAyxD,cAGA2D,EAAA,WACA,SAAAjF,GACA0F,EAAApB,QAAAtE,EACApjJ,EAAA8oJ,IAEA,SAAAthJ,GACAq6B,EAAAr6B,KARAxH,EAAA8oJ,GAcA,QAAAe,GAAAC,GACA,GAAA5uI,GAAAna,SAAAuF,cAAA,IACA,OAAAwjJ,GAAAxtJ,IAAA,SAAAygC,GAEA,MADA7hB,GAAA2K,KAAAkX,EACA7hB,EAAA2K,OAQA,QAAAwiI,GAAAhnJ,EAAArB,EAAA6hC,GAsBA,QAAA8hH,GAAA7nC,GACA,GAAAxkG,GAAAwkG,EAAA14G,IACA,IAAAkU,EAAA9B,MAGA,MAFA4tI,GAAAgF,gBACAvmH,GAAAvqB,EAAA9B,MAGA,mBAAA8B,EAAAjW,OACA+hJ,EAAAvgJ,oBAAA,UAAA8gJ,GACAP,EAAAvgJ,oBAAA,QAAAknJ,GACA/pJ,EAAAojJ,IAKA,QAAA2G,GAAAviJ,GACA47I,EAAAgF,YACAvmH,EAAAr6B,GAtCA,GAAA,OAAAvM,EAAAg4F,IAAA+2D,eAAA,OAAA/uJ,EAAAg4F,IAAAg3D,kBAEA,WADApoH,GAAA,GAAAxjC,OAAA,2EAGA,IAAAsH,EACA,IAAA1K,EAAAg4F,IAAA+2D,cAAA,CAEA,GADArkJ,EAAA1K,EAAAg4F,IAAA+2D,cAAA3oJ,IACAmW,MAAA5G,QAAAjL,GAEA,WADAk8B,GAAA,GAAAxjC,OAAA,qBAAAgD,EAAA,qBAGAsE,GAAAkkJ,EAAAlkJ,OAEAA,GAAAukJ,EAAA7oJ,GAAAtE,MAAA,GACA4I,EAAA,IAAA1K,EAAAg4F,IAAAg3D,mBAAA,IAAAtkJ,EAAA,EAEA,IAAAy9I,GAAA,GAAA+G,QAAAxkJ,EAAA,GAEAy9I,GAAAS,UAAAT,EAAAU,QAAA,EACAV,EAAAngG,aAAA5hD,KAAA,gBAAAsE,QAAAA,EAAA5I,MAAA,KACAqmJ,EAAAnhI,iBAAA,UAAA0hI,GAeAP,EAAAnhI,iBAAA,QAAA8nI,GAOA,QAAAK,GAAA50I,GACAizB,QAAAjzB,MAAAA,GAn3BA,GAaAqtI,GAbAiE,EAAA,iCACAQ,EAAA,cACAvB,EAAA,iCACAI,EAAA,wCACAU,EAAA,gCACA6B,EAAA,gCACAlB,EAAA,iCACAD,EAAA,iCACAoC,EAAA,uBACA1F,EAAA,OAEAnC,EAAA,YAGA,KACAe,EAAA,IAAA,GAAA9gD,OAAA,GAAA4/C,UAAA,GAAAH,aAAA,MAAAx8G,KACA,MAAArlC,IAMAihJ,EAAA5hJ,UAAAwzB,OAAA,SAAApvB,GAEA,IAAA,GADAy9I,GAAA,EAAA3/I,KAAA2/I,IAAAwJ,EAAAnpJ,KAAAmpJ,MACAhnH,EAAA,EAAAtsB,EAAA,EAAA3T,EAAA3G,OAAA4mC,EAAAtsB,EAAAssB,IACAw9G,EAAAA,IAAA,EAAAwJ,EAAA,KAAAxJ,EAAAz9I,EAAAigC,IACAniC,MAAA2/I,IAAAA,GAEAD,EAAA5hJ,UAAAyG,IAAA,WACA,OAAAvE,KAAA2/I,KAEAD,EAAA5hJ,UAAAqrJ,MAAA,WACA,GAAAruJ,GAAAC,EAAA+xB,EAAAq8H,IACA,KAAAruJ,EAAA,EAAAA,EAAA,IAAAA,IAAA,CAEA,IADAgyB,EAAAhyB,EACAC,EAAA,EAAAA,EAAA,EAAAA,IACA,EAAA+xB,EACAA,EAAAA,IAAA,EAAA,WAEAA,KAAA,CACAq8H,GAAAruJ,GAAAgyB,EAEA,MAAAq8H,MAKAvJ,EAAA9hJ,UAAAwzB,OAAA,SAAA6uH,EAAAkC,GACA,MAAAlC,IAEAP,EAAA9hJ,UAAA+jI,MAAA,aAsDA8e,EAAA7iJ,UAAA,GAAA4iJ,GACAC,EAAA7iJ,UAAAyX,YAAAorI,EA6BAK,EAAAljJ,UAAA,GAAA4iJ,GACAM,EAAAljJ,UAAAyX,YAAAyrI,EA2BAF,EAAAhjJ,UAAA,GAAA4iJ,GACAI,EAAAhjJ,UAAAyX,YAAAurI,EAMAS,EAAAzjJ,UAAAilF,QAAA,SAAAjkF,GACAA,EAAAkB,KAAAkC,OAiCAs/I,EAAA1jJ,UAAA,GAAAyjJ,GACAC,EAAA1jJ,UAAAyX,YAAAisI,EAgCAK,EAAA/jJ,UAAA,GAAAyjJ,GACAM,EAAA/jJ,UAAAyX,YAAAssI,EAsBAG,EAAAlkJ,UAAA,GAAAyjJ,GACAS,EAAAlkJ,UAAAyX,YAAAysI,CA+jBA,IAAAgH,IACAI,UAAA,cAAA,cACAC,UAAA,cAAA,cAgDAtvJ,GAAAg4F,KACA2uD,OAAAA,EACAa,OAAAA,EACAT,WAAAA,EACAE,gBAAAA,EACAL,WAAAA,EACAqB,WAAAA,EACAH,gBAAAA,EACAL,WAAAA,EACA8H,aAAA,SAAA3wD,EAAA75F,EAAA6hC,GACAA,EAAAA,GAAAuoH,EAEAvwD,EAAAxrF,KAAA,WACAi4I,EAAAzsD,EAAA75F,EAAA6hC,IACAA,IAEA4oH,aAAA,SAAAnH,EAAAtjJ,EAAA6hC,EAAA4mH,GACA5mH,EAAAA,GAAAuoH,EACA3B,IAAAA,EAEAnF,EAAAj1I,KAAA,WACAm6I,EAAAlF,EAAAtjJ,EAAA6hC,EAAA4mH,IACA5mH,IAEA6iH,eAAA,EAKAuF,kBAAA,KAYAD,cAAA,OAGA9oJ,MAEApG,OAAA,MAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAoyF,MAEA/xF,OC36BA,WACA,YACA,IAAAmpJ,IACAK,aACAC,eAAA,KACAC,QAAA,MACAC,WAAA,OACAC,cAAA,UACAC,eAAA,UACAC,OAAA,MACAC,KAAA,MAAA,QACAC,WAAA,KACAC,eAAA,WACAC,QAAA,MACAC,YAAA,KAAA,QACAC,aAAA,MACAC,IAAA,MACAC,eAAA,MACAC,yBAAA,MACAC,UAAA,QACAC,WAAA,KACAC,IAAA,MACAC,eAAA,MACAC,aAAA,KAAA,KAAA,MACAC,SAAA,MACAC,QAAA,MAAA,OACAC,IAAA,MACAC,IAAA,MACAC,IAAA,MACAC,IAAA,MACAC,WAAA,MACAC,iBAAA,MAAA,OACAC,aAAA,MACAC,YAAA,KAAA,KAAA,MAAA,OAAA,OAAA,OAAA,QACAC,IAAA,MACAC,UAAA,MACAC,UAAA,MACAC,IAAA,MACAp/B,MAAA,MAAA,QACAq/B,aAAA,QAAA,OACA1wI,KAAA,MAAA,MAAA,OACA2wI,WAAA,OACA75D,IAAA,MACA85D,8BAAA,MACAC,iBAAA,MACAC,2BAAA,MACAC,uBAAA,MACAC,sBAAA,MACAC,gBAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OACAC,oBAAA,MACAC,iBAAA,MACAC,qBAAA,MAAA,MAAA,OACAC,+BAAA,MACAC,kCAAA,MACAC,iCAAA,MACAC,kCAAA,MACAC,2CAAA,MACAC,+BAAA,MACAC,sCAAA,MACAC,+CAAA,MACAC,qCAAA,MACAC,8CAAA,MACAC,8BAAA,MACAC,qCAAA,MACAC,uCAAA,MACAC,kCAAA,MACAC,wDAAA,OACAC,2DAAA,OACAC,gEAAA,OACAC,6DAAA,OACAC,4DAAA,OACAC,8DAAA,OACAC,8DAAA;qEACAC,WAAA,MACAC,wBAAA,MACAC,yBAAA,MACAC,wBAAA,MACAC,2BAAA,MACAC,yBAAA,MAAA,OACAC,2BAAA,MAAA,OACAC,iCAAA,MACAC,mBAAA,MACAC,4BAAA,MACAC,mBAAA,MACAC,4BAAA,MACAC,sBAAA,MACAC,+BAAA,MACAC,mBAAA,MACAC,qBAAA,MACAC,4BAAA,MACAC,8BAAA,MACAC,uBAAA,MAAA,QACAC,aAAA,MAAA,MAAA,MAAA,OACAC,gBAAA,QACAC,eAAA,OACAC,qBAAA,QACAC,kBAAA,MACAC,qBAAA,MACAC,QAAA,KACAC,kBAAA,KACAC,YAAA,MACAC,oBAAA,MACAC,UAAA,QACAC,eAAA,UACAC,SAAA,MAAA,MAAA,MAAA,OACAC,QAAA,MACAC,SAAA,MAAA,OACAC,WAAA,MACAC,cAAA,MACAC,SAAA,OACAC,QAAA,MACAC,oBAAA,MAAA,QACAC,cAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OACAC,QAAA,MACAC,SAAA,MACAC,QAAA,MACAC,gBAAA,QACAC,SAAA,QACAC,aAAA,KACAC,aAAA,WACAC,WAAA,MACAC,wBAAA,MACAC,UAAA,OAAA,OACAC,QAAA,MACAC,eAAA,QAAA,MAAA,OACAC,qBAAA,OACAC,eAAA,OACAC,4BAAA,QACAC,eAAA,OACAC,eAAA,OACAC,QAAA,MACAC,SAAA,OACAC,qBAAA,MAAA,OACAC,WAAA,MACAC,kBAAA,MACAC,mBAAA,OACAC,SAAA,MACAC,iBAAA,MACAC,UAAA,MAAA,MAAA,MAAA,OACAC,gBAAA,MAAA,OACAC,WAAA,MAAA,OACAC,UAAA,QACAC,QAAA,MACAC,QAAA,MACAC,QAAA,MACAC,QAAA,MACAC,WAAA,MAAA,QAAA,QAAA,KAAA,KAAA,OAAA,SACAC,WAAA,MACAC,WAAA,MACAC,mBAAA,MAAA,MAAA,MAAA,OACAC,QAAA,MACAC,YAAA,KAAA,OACAC,yBAAA,MAAA,OACAC,QAAA,MACAC,WAAA,IACAC,mBAAA,MACAC,sBAAA,MACAC,iBAAA,MAAA,OACAC,UAAA,MAAA,MAAA,OACAC,oBAAA,MACAC,2BAAA,MACAC,SAAA,KACAC,OAAA,KACAC,SAAA,OACAC,qBAAA,MAAA,QACAC,gBAAA,MACAC,YAAA,MACAC,YAAA,UACAC,WAAA,SACAC,QAAA,MACAC,QAAA,MACAC,WAAA,KACAC,WAAA,KACAC,aAAA,UAAA,QACAC,WAAA,IAAA,IAAA,MAAA,MAAA,OACAC,WAAA,IAAA,KAAA,QACAC,cAAA,MACAC,aAAA,KACAC,aAAA,KACAC,UAAA,QACAC,gBAAA,MACAC,UAAA,KACAC,kBAAA,MAAA,MAAA,OACAC,QAAA,MACAC,SAAA,MACAC,cAAA,MACAC,WAAA,KACAC,cAAA,UACAC,YAAA,QACAC,kBAAA,QACAC,iBAAA,QACAC,cAAA,QACAC,cAAA,QACAC,aAAA,QACAC,cAAA,MACAC,WAAA,OACAC,WAAA,QACAC,WAAA,OACAC,WAAA,OACAC,IAAA,MACAC,aAAA,MACAC,UAAA,MACAC,UAAA,MACAC,IAAA,MACAC,YAAA,MACAC,aAAA,MAAA,SACAC,MAAA,QACA55H,KAAA,OACA65H,cAAA,SACAC,WAAA,UACAC,WAAA,OACAC,KAAA,MACAC,cAAA,OACAC,aAAA,SACAC,KAAA,OACAC,yBAAA,QACAC,eAAA,WACAC,gBAAA,QACAC,WAAA,OACAC,WAAA,OACAC,MAAA,MAAA,QACAC,IAAA,OACAC,oBAAA,MACAC,YAAA,QACAC,SAAA,SAAA,UAAA,SAAA,UACAC,KAAA,OACAC,sBAAA,MACAC,gBAAA,MACAC,OAAA,MACAC,cAAA,MAAA,OACAC,kBAAA,MACAC,MAAA,KACAC,iBAAA,KACAC,WAAA,MACAC,eAAA,UACAC,QAAA,MACAC,UAAA,MACAC,UAAA,MACAC,WAAA,UACAC,cAAA,MACAC,0BAAA,MACAC,qBAAA,KACAC,0BAAA,MACAC,mBAAA,KACAC,oBAAA,MACAC,gBAAA,MACAC,WAAA,MACAC,UAAA,MACAC,WAAA,OACAC,kBAAA,MACAC,mBAAA,MACAC,kBAAA,MACAC,mBAAA,MACAC,IAAA,MACAC,yBAAA,SACAC,8BAAA,SACAC,UAAA,MACAC,eAAA,KACAC,qBAAA,MACAC,KAAA,OACAC,WAAA,QACAC,UAAA,MACAC,WAAA,OACAC,WAAA,OACAC,WAAA,MAAA,aACAC,aAAA,MACAC,mBAAA,MACAC,wBAAA,MACAC,wBAAA,MACAC,sBAAA,MACAC,iBAAA,OACAC,uBAAA,MACAC,wBAAA,MACAC,wBAAA,MACAC,eAAA,MACAC,eAAA,MAAA,SACAC,kDAAA,MACAC,8BAAA,OACAC,iBAAA,MAAA,QACAC,oBAAA,MACAC,iBAAA,OACAC,kBAAA,QACAC,4BAAA,MACAC,4BAAA,MACAC,mBAAA,MACAC,2BAAA,MACAC,gBAAA,MACAC,6CAAA,MACAC,0CAAA,MACAC,2BAAA,MACAC,0BAAA,OACAC,oBAAA,OACAC,yBAAA,MACAC,4BAAA,OACAC,iBAAA,MACAC,wBAAA,MACAC,UAAA,MACAC,sBAAA,MACAC,mBAAA,QACAC,2BAAA,MACAC,eAAA,MACAC,kBAAA,MACAC,qBAAA,MAAA,MAAA,MAAA,MAAA,OACAC,mCAAA,SACAC,uCAAA,SACAC,kBAAA,MACAC,mBAAA,UACAC,kBAAA,MACAC,oBAAA,OACAC,6BAAA,OACAC,4BAAA,OACAC,6BAAA,OACAC,6BAAA,OACAC,4BAAA,MACAC,gBAAA,MACAC,eAAA,MACAC,eAAA,MACAC,iBAAA,QACAC,WAAA,OACAC,sBAAA,MACAC,iBAAA,MAAA,OAAA,MAAA,QACAC,qBAAA,MAAA,QACAC,wBAAA,MAAA,QACAC,gBAAA,MAAA,QACAC,6BAAA,YACAC,UAAA,MACAC,gBAAA,MACAC,cAAA,MACAC,mBAAA,OACAC,kBAAA,OACAC,cAAA,MACAC,kBAAA,MACAC,cAAA,MACAC,mBAAA,MACAC,cAAA,MACAC,gBAAA,MACAC,gBAAA,MACAC,uBAAA,MACAC,iBAAA,MACAC,gBAAA,MACAC,oBAAA,MAAA,OACAC,kBAAA,MACAC,oBAAA,MACAC,UAAA,MACAC,iBAAA,QACAC,iBAAA,OAAA,YACAC,iBAAA,MACAC,oBAAA,MACAC,kBAAA,KAAA,QAAA,QAAA,QACAC,kBAAA,MACAC,kBAAA,MACAC,oBAAA,MACAC,oBAAA,MACAC,qBAAA,MACAC,qBAAA,MACAC,sBAAA,MACAC,uBAAA,MACAC,oBAAA,MACAC,0BAAA,MACAC,iCAAA,MACAC,iBAAA,MACAC,uBAAA,MACAC,oBAAA,MACAC,oBAAA,MACAC,yBAAA,MAAA,OACAC,cAAA,MACAC,cAAA,MACAC,eAAA,MACAC,UAAA,MACAC,cAAA,MAAA,OACAC,qBAAA,MACAC,kBAAA,MACAC,8BAAA,MACAC,sBAAA,MACAC,0BAAA,MACAC,2BAAA,MACAC,mBAAA,MACAC,cAAA,MACAC,iCAAA,MACAC,WAAA,OACAC,wBAAA,MACAC,cAAA,OACAC,cAAA,OACAC,aAAA,MACAC,cAAA,MACAC,aAAA,MACAC,eAAA,QACAC,2BAAA,YACAC,kBAAA,MACAC,kBAAA,MAAA,UAAA,YACAC,4BAAA,MACAC,2BAAA,KACAC,kBAAA,MAAA,OACAC,eAAA,MACAC,sBAAA,MACAC,sBAAA,MACAC,iBAAA,MACAC,wBAAA,MAAA,OACAC,eAAA,MACAC,eAAA,MACAC,eAAA,MACAC,4BAAA,YACAC,8BAAA,MACAC,aAAA,MACAC,eAAA,MACAC,UAAA,MACAC,4BAAA,MACAC,WAAA,OACAC,yBAAA,OACAC,eAAA,MAAA,OACAC,iBAAA,SACAC,iBAAA,OACAC,mBAAA,MACAC,gBAAA,MACAC,kBAAA,MACAC,sBAAA,MAAA,OACAC,kBAAA,MACAC,iBAAA,MAAA,OACAC,iBAAA,OACAC,mBAAA,MACAC,aAAA,MAAA,OACAC,YAAA,MAAA,MAAA,MAAA,OACAC,uBAAA,MACAC,kBAAA,SACAC,yCAAA,MACAC,8CAAA,MACAC,kBAAA,MACAC,qBAAA,MACAC,sBAAA,MACAC,kBAAA,MACAC,sBAAA,MACAC,sBAAA,MACAC,oBAAA,MACAC,uBAAA,UACAC,UAAA,MACAC,kBAAA,MACAC,yBAAA,QACAC,WAAA,MACAC,WAAA,MACAC,qBAAA,MACAC,qBAAA,MACAC,UAAA,MACAC,iBAAA,MACAC,iBAAA,MACAC,iBAAA,MACAC,iBAAA,MACAC,iBAAA,MACAC,iBAAA,MACAC,iBAAA,MACAC,yBAAA,MACAC,yBAAA,MACAC,kBAAA,MACAC,wBAAA,MACAC,qCAAA,OACAC,4CAAA,OACAC,qCAAA,OACAC,wCAAA,OACAC,oBAAA,MACAC,kBAAA,MACAC,aAAA,MACAC,aAAA,MACAC,qBAAA,OACAC,0CAAA,OACAC,iDAAA,OACAC,0CAAA,OACAC,8CAAA,OACAC,6CAAA,OACAC,kBAAA,MAAA,OACAC,uCAAA,OACAC,uCAAA,OACAC,gBAAA,MAAA,MAAA,MAAA,OACAC,aAAA,MACAC,qBAAA,MACAC,WAAA,OACAC,eAAA,MACAC,kBAAA,OACAC,YAAA,SACAC,wBAAA,MACAC,YAAA,MAAA,QACAC,yBAAA,MACAC,sBAAA,MACAC,mBAAA,MACAC,wBAAA,QACAC,mCAAA,SACAC,yBAAA,OACAC,0BAAA,OACAC,mBAAA,MACAC,mBAAA,MACAC,mBAAA,MACAC,wCAAA,MACAC,0CAAA,OACAC,wCAAA,MACAC,iBAAA,KACAC,kBAAA,MACAC,8BAAA,MACAC,yDAAA,OACAC,6BAAA,MACAC,cAAA,KACAC,qBAAA,MACAC,YAAA,MAAA,MAAA,QACAC,gBAAA,MACAC,gBAAA,MACAC,gBAAA,MACAC,aAAA,OACAC,iBAAA,KACAC,kBAAA,MACAC,oBAAA,MACAC,yBAAA,MACAC,uBAAA,MACAC,4BAAA,MACAC,gBAAA,OACAC,yBAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OACAC,kBAAA,MACAC,yBAAA,MACAC,6BAAA,WACAC,qBAAA,aACAC,mBAAA,KACAC,uBAAA,OACAC,yBAAA,SACAC,2BAAA,KACAC,cAAA,MACAC,WAAA,OACAC,WAAA,OACAC,WAAA,OACAC,8BAAA,MACAC,kCAAA,MACAC,iCAAA,MACAC,6BAAA,MACAC,0BAAA,MAAA,QACAC,oBAAA,UACAC,uBAAA,OAAA,QACAC,mBAAA,MACAC,mBAAA,MACAC,wBAAA,QACAC,0BAAA,KACAC,oBAAA,MAAA,QACAC,UAAA,MACAC,iBAAA,MACAC,sBAAA,MACAC,oBAAA,MACAC,gCAAA,MACAC,oBAAA,OAAA,MAAA,OACAC,qBAAA,MACAC,eAAA,MACAC,mBAAA,MACAC,cAAA,MACAC,YAAA,MAAA,QACAC,gBAAA,MACAC,aAAA,MACAC,YAAA,WACAC,eAAA,OACAC,UAAA,MACAC,gBAAA,MACAC,UAAA,MACAC,eAAA,MACAC,qBAAA,MACAC,UAAA,MACAC,aAAA,MACAC,WAAA,MACAC,WAAA,OACAC,oBAAA,MACAC,uBAAA,MACAC,sBAAA,MACAC,6BAAA,MACAC,wCAAA,SACAC,wBAAA,MACAC,yBAAA,MACAC,8BAAA,MACAC,WAAA,MAAA,QACAC,qBAAA,MACAC,eAAA,OACAC,OAAA,MACAC,OAAA,MACAC,WAAA,OACAC,eAAA,WACAC,mBAAA,MACAC,oBAAA,MAAA,MAAA,MAAA,OACAC,mBAAA,MACAC,mBAAA,MACAC,WAAA,MAAA,SACAC,SAAA,KACAC,WAAA,MAAA,OACAC,mBAAA,MACAC,SAAA,OACAC,eAAA,MACAC,mBAAA,MACAC,eAAA,MACAC,eAAA,MACAC,oBAAA,MACAC,QAAA,MACAC,aAAA,MACAC,qBAAA,MACAC,mBAAA,MACAC,aAAA,MACAC,aAAA,MACAC,aAAA,MACAC,cAAA,MAAA,OACAC,gBAAA,MAAA,MAAA,MAAA,OACAC,cAAA,OACAC,YAAA,MACAC,mBAAA,MACAC,UAAA,MACAC,eAAA,SACAC,yBAAA,UACAC,oBAAA,MAAA,OACAC,QAAA,MACAC,sBAAA,MAAA,QACAC,mBAAA,cACAC,gBAAA,MACAC,YAAA,OACAC,aAAA,MACAC,eAAA,MACAC,WAAA,MACAC,gBAAA,MAAA,MAAA,MAAA,MAAA,OACAC,iBAAA,MAAA,MAAA,OACAC,gBAAA,MAAA,MAAA,MAAA,OACAC,YAAA,MACAC,gBAAA,MACAC,eAAA,MACAC,eAAA,MACAC,YAAA,MACAC,QAAA,MACAC,YAAA,MAAA,OACAC,wBAAA,MAAA,OACAC,0BAAA,MACAC,oBAAA,MACAC,QAAA,MACAC,aAAA,OACAC,WAAA,MACAC,eAAA,KACAC,SAAA,MACAC,QAAA,MACAC,YAAA,MACAC,SAAA,MACAC,cAAA,MACAC,OAAA,KACAC,cAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,MACAC,WAAA,OACAC,gBAAA,MACAC,WAAA,OACAC,UAAA,MACAC,UAAA,MACAC,YAAA,MACAC,WAAA,OACAC,UAAA,OAAA,QAAA,OAAA,OACAC,KAAA,OACAC,UAAA,MACAC,MAAA,MACAC,SAAA,MACAC,2BAAA,MACAC,UAAA,MACAC,iBAAA,MACAC,sBAAA,MACAC,aAAA,IACAC,eAAA,MACAC,SAAA,KACAC,aAAA,MAAA,MAAA,MAAA,MAAA,OACAC,gBAAA,MAAA,OACAC,gBAAA,OAEA91G,OACA+1G,IAAA,MACAC,SAAA,MACA3oB,QAAA,MACA7+F,OAAA,KAAA,OACAynH,KAAA,OACAC,MAAA,MAAA,OAAA,MAAA,OACAC,MAAA,OAAA,QAAA,MAAA,MAAA,MAAA,OAAA,MAAA,OACAC,QAAA,MACAxnB,KAAA,MAAA,MAAA,OACAynB,UAAA,MACAC,UAAA,MAAA,OAAA,QACAC,QAAA,MACAC,WAAA,MACAC,WAAA,MACAC,iBAAA,MACAC,cAAA,KACAC,QAAA,MACAC,QAAA,MACAC,MAAA,MACArc,IAAA,OACAsc,IAAA,MACAC,KAAA,MACAC,kBAAA,MAAA,QACAC,oBAAA,MACAC,UAAA,MACAC,UAAA,MACAC,aAAA,QACAC,mBAAA,MACAC,6BAAA,MACAC,sBAAA,YACAC,sBAAA,YACAC,sBAAA,YACAC,UAAA,MACAC,KAAA,OACAC,QAAA,MACAC,QAAA,MACAC,aAAA,MACAC,wBAAA,MACAC,GAAA,KACAliF,KAAA,MAAA,QAEAmiF,UACAC,YAAA,MACAC,WAAA,MAAA,SACAC,cAAA,MACAC,mBAAA,OAAA,SAAA,QACAC,QAAA,MACAC,WAAA,MACAC,QAAA,MACAC,SAAA,OACAC,QAAA,MACAC,YAAA,MACAC,cAAA,MACAC,UAAA,OAAA,OACAC,QAAA,MACAC,SAAA,MAAA,OACAC,wBAAA,MAAA,QACAC,kBAAA,MAAA,MAAA,SACAC,yBAAA,MAAA,QACAC,kBAAA,MACAC,oBAAA,MAAA,MAAA,OACAC,iBAAA,MACAC,kBAAA,MACAC,YAAA,MACAC,QAAA,MACAC,aAAA,OAAA,OACAC,cAAA,MAAA,MACAC,aAAA,MACAC,gBAAA,MACAC,sBAAA,MAAA,QACAC,gBAAA,MACAC,eAAA,KACAC,gBAAA,MACAC,gBAAA,KAAA,OACAC,YAAA,MACAC,UAAA,OACAC,SAAA,OACAC,cAAA,IACAC,gBAAA,MACAC,iBAAA,MAAA,SAAA,MAAA,OACAC,cAAA,MACAC,cAAA,MACAC,qBAAA,MAAA,OACAC,sBAAA,MAAA,OACAC,SAAA,MAAA,OACAC,WAAA,MACAC,cAAA,KACAC,mBAAA,MACAC,QAAA,MACAC,SAAA,OACAC,QAAA,OAEA9xJ,OACA+3H,IAAA,MACAg6B,IAAA,MACA95B,MAAA,OAAA,MAAA,OACA+5B,IAAA,MACA55B,IAAA,MACA65B,WAAA,MAAA,QACAC,MAAA,OAAA,OACAC,YAAA,OAAA,OACAC,eAAA,OACAC,cAAA,MACAC,cAAA,MACAC,eAAA,MACAC,cAAA,MACAC,qBAAA,MACAC,sBAAA,MACAC,oBAAA,MACAC,cAAA,MACAC,SAAA,MACAC,OAAA,MACAC,QAAA,MACAC,cAAA,MACAC,gBAAA,MACAC,cAAA,MACAC,oBAAA,MACAC,oBAAA,MACAC,qBAAA,MACAC,oBAAA,MACAC,QAAA,MACAC,YAAA,MACAC,YAAA,MACAC,gBAAA,MACAC,IAAA,MACAC,IAAA,MACAC,MAAA,KACAC,IAAA,MACAC,WAAA,OACAC,IAAA,MACAC,oBAAA,MAAA,OAAA,MAAA,QACAC,UAAA,MACAC,UAAA,MACAC,mBAAA,MACAC,UAAA,MACAC,UAAA,MACAC,2BAAA,MACAC,2BAAA,MACAC,cAAA,MACAC,eAAA,MACAC,cAAA,MACAC,WAAA,MACAC,KAAA,OACAC,QAAA,MACAC,QAAA,MACAC,cAAA,KAAA,MAAA,MAAA,MAAA,OACAC,UAAA,MAAA,OACAC,QAAA,MACAC,UAAA,MACAC,MAAA,QAEAprG,SACAqrG,QAAA,MAAA,OAAA,MAAA,QAAA,QAEAC,OACAC,MAAA,MAAA,QACAC,MAAA,MAAA,OAAA,QACAC,MAAA,MAAA,QACAC,YAAA,OAAA,SACAC,WAAA,MAAA,QACAC,cAAA,OAAA,SACAC,kBAAA,MACAC,UAAA,MACAC,UAAA,MACAC,UAAA,MACAC,UAAA,MACAC,UAAA,OAEA9kK,MACA+kK,kBAAA,WAAA,YACAC,UAAA,MAAA,MAAA,OACA74K,IAAA,MACA21E,IAAA,MACAmjG,KAAA,MACA5yK,MAAA,OAAA,MAAA,QAAA,OACA6yK,KAAA,MACAC,OAAA,MACAC,OAAA,MAAA,OAAA,MAAA,OAAA,MAAA,OAAA,MAAA,KAAA,OACAC,SAAA,MACAC,WAAA,MAAA,OACAC,SAAA,KAAA,MACAC,uBAAA,MACAC,8BAAA,MACAC,cAAA,MACAC,oBAAA,OACAC,WAAA,MACAC,QAAA,MACAC,YAAA,MAAA,MAAA,MAAA,MACAC,YAAA,MAAA,MAAA,MAAA,MACAC,cAAA,MACAC,SAAA,IACAC,UAAA,OAAA,SACAC,YAAA,KACAC,SAAA,OACAC,qBAAA,MACAC,QAAA,MACAC,YAAA,IAAA,OACAC,YAAA,MACAC,UAAA,KAAA,MACAC,WAAA,KACAC,UAAA,QACAC,WAAA,MACA9pB,SAAA,MAAA,MACA4c,SAAA,MAAA,MAAA,MAAA,OACAmN,cAAA,MACAC,UAAA,MACAC,GAAA,KACAC,gBAAA,MACAC,MAAA,OAAA,OACAC,OAAA,IAAA,KAAA,OAAA,MAAA,KAAA,MACAC,OAAA,MACAC,YAAA,MAAA,OAAA,QACAC,MAAA,QACAC,WAAA,OACAC,iBAAA,QACAC,iBAAA,QACAC,iBAAA,QACAC,mBAAA,MACAC,UAAA,MACAC,mBAAA,MACAC,eAAA,KACAC,gBAAA,OACAC,gBAAA,OACAC,SAAA,IAAA,OACAC,OAAA,IAAA,KAAA,MAAA,MAAA,IAAA,KAAA,OACAC,aAAA,IAAA,MAAA,MAAA,OACAC,SAAA,OACAC,QAAA,MACAC,QAAA,MACAC,aAAA,KACAC,YAAA,OAEA/iH,OACAgjH,OAAA,MACA51B,QAAA,MACA61B,GAAA,KACAC,IAAA,MAAA,MACAC,IAAA,MACAC,GAAA,KACAlN,MAAA,OAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,QACA1b,KAAA,MAAA,OAAA,QACA6oB,WAAA,KAAA,OACA10B,IAAA,MACA20B,eAAA,MAAA,OACAC,QAAA,MACAC,YAAA,MAAA,OACAC,QAAA,MACAC,YAAA,MAAA,MAAA,OACAC,UAAA,KACAC,WAAA,MACAC,WAAA,MACAC,WAAA,MACAC,YAAA,MACAC,cAAA,QACAlM,cAAA,MAAA,MAAA,OAAA,OACAmM,QAAA,MACAC,KAAA,OACAC,KAAA,OACAC,KAAA,OACA/iC,KAAA,OACAgjC,KAAA,MAAA,QACAC,KAAA,MAAA,QACAC,eAAA,MAAA,QACAC,mBAAA,MAAA,QACAC,eAAA,MAAA,QACAC,eAAA,MAAA,QACAC,kBAAA,MAAA,QACAC,eAAA,MACAC,UAAA,MACAC,6BAAA,MACAC,gBAAA,MAAA,QACAC,WAAA,MACArN,KAAA,OACAsN,QAAA,MACAC,QAAA,MACAC,WAAA,MACAC,QAAA,OAEAjU,gBACAkU,aAAA,OAEAC,WACAC,UAAA,MAAA,OAAA,MAAA,MAAA,MAAA,MAAA,SAIAC,EAAA,WACA,GAAA3hL,GAAA4hL,EAAA31K,EAAA9O,EAAAwkL,IACA,KAAA3hL,IAAAgpJ,GACA,GAAAA,EAAAprJ,eAAAoC,GACA,IAAA4hL,IAAA54B,GAAAhpJ,GACA,GAAAgpJ,EAAAhpJ,GAAApC,eAAAgkL,GAEA,GAAA,iBADA31K,EAAA+8I,EAAAhpJ,GAAA4hL,IAEAD,EAAA11K,GAAAjM,EAAA,IAAA4hL,MAEA,KAAAzkL,EAAA,EAAAA,EAAA8O,EAAA7Q,OAAA+B,IACAwkL,EAAA11K,EAAA9O,IAAA6C,EAAA,IAAA4hL,CAOA,OAAAD,KAGA/vF,KAAAiwF,YAAA,SAAA1+G,GAEA,MAAAA,IAAAw+G,EAAAx+G,EAAAnoE,MAAA,KAAA2iB,MAAA1b,gBADA,+BAMAxI,OAAA,cAAA,OAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAoyF,MAEA/xF,OCp9BA,WACA,YAcA,SAAAiiL,GAAAt7H,GAGA,QAAAx5C,GAAArO,GACAqmF,EAAArhD,KAAA6iB,EAAAq+F,iBACAlmJ,IAGA,QAAAikF,GAAAjkF,GACAqmF,EAAAjjF,KACApD,IAEA6nD,EAAAo8B,QAAA,GAAAi/D,GAAA,SAAA9/I,GACAijF,EAAAjjF,KAAAA,EACA2+I,EAAA,GAAAC,GAAA5+I,GACApD,KACA,KAAAqmF,EAAA4gE,YAGA,QAAAhF,GAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GACAoiD,EAAA,WACA89D,EAAAE,eAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,IACAA,GArBA,GAAAkgH,GAAA17D,EAAAnlF,IAwBAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAMA,QAAAmhC,GAAAv7H,GAGA,QAAApE,GAAAoE,GACA7iB,GAAA6iB,EAAAq+F,kBAAA,EACAr+F,EAAA1/B,SAAAshB,QAAAga,GAJA,GAAAze,GAAA,CAQA,OADAye,GAAAoE,GACA7iB,EAGA,QAAAq+I,GAAAx7H,EAAAu8E,EAAAviG,GAGA,QAAAzZ,KACA5pB,IACAA,EAAAqpD,EAAA1/B,SAAA1rB,OACAgnD,EAAAoE,EAAA1/B,SAAA3pB,IAEA4lI,IAGA,QAAA3gF,GAAAypC,GACAA,EAAA3oB,UACA8+G,EAAAn2F,EAAA9kE,EAAAyZ,IAEAqrD,EAAA2M,OAAA,GAAA3M,GAAA00D,OAAA10D,EAAA9pF,KAAAy+B,GACAqrD,EAAA2M,OAAAxrF,KAAA,WACA6+E,EAAAg5D,iBAAAh5D,EAAA2M,OAAA70D,KACA5c,OAjBA,GAAA5pB,GAAA,CAsBAqpD,GAAA1/B,SAAA1rB,OACAgnD,EAAAoE,EAAA1/B,SAAA3pB,IAEA4lI,IAGA,QAAAj5H,GAAA08C,GACA,GAAA1/B,GAAA0/B,EAAA9lC,OAAAoG,QACAA,GAAAshB,QAAA,SAAAyjD,EAAA1uF,GACA0uF,EAAArtF,IAAAgoD,EAAAhoD,IACAsoB,EAAAlrB,OAAAuB,EAAA,KAIA,QAAA8kL,GAAAx6B,EAAAjhG,EAAAu8E,EAAAmf,EAAAggC,GAGA,QAAA9/H,GAAAqlG,EAAAjhG,EAAAu8E,EAAAmf,EAAAggC,GAGA,QAAAC,KACA,GAAAt2F,GAAArlC,EAAA1/B,SAAAs7J,EACAv2F,GACA47D,EAAA5gJ,IAAAglF,EAAAw2F,cAAAx2F,EAAA2M,OAAA,WACA8pF,GAAAz2F,EAAAg5D,kBAAA,EACAziG,EAAAqlG,EAAA57D,EAAA,WACAu2F,IACAD,KACAjgC,EAAAggC,IACA,SAAA/kL,GACA+kJ,GACAA,EAAAogC,EAAAnlL,EAAA+kL,KAEAh/G,UAAA2oB,EAAA3oB,UACA39B,QAAAsmD,EAAA02F,aAGAx/C,IAnBA,GAAAq/C,GAAA,CAsBAD,KAzBA,GAAAG,GAAA,CA4BAlgI,GAAAqlG,EAAAjhG,EAAAu8E,EAAAmf,EAAAggC,GAGA,QAAAM,GAAAC,EAAAC,EAAA3/C,EAAAviG,GACA,QAAAmiJ,GAAAD,EAAA/jL,GACA,GAAA44C,KACA,IAAAmrI,EAAAE,YAAA,CACA,GAAAC,GAAAH,EAAAv5B,gBACA,QAAA25B,KACAD,EAAAC,YAAA,SAAAC,GACAA,EAAA3nL,QAGAm8C,EAAAA,EAAA57C,OAAAonL,GACAD,KAHAnkL,EAAA44C,IAKA/W,MAGAkiJ,EAAAM,QACArkL,EAAA44C,GAGA,QAAA6K,GAAAqgI,EAAAC,EAAA3/C,GACA4/C,EAAAD,EAAA,SAAA57J,GAGA,QAAAm8J,GAAAp3F,GACA,QAAAq3F,GAAAC,GACA/gI,EAAA+gI,EAAAt3F,EAAA,WACAu2F,IACAgB,MAIAv3F,EAAA+2F,aACAM,EAAAT,EAAAY,aAAAx3F,EAAA5xF,OACA4xF,EAAAm3F,QACAn3F,EAAAxmE,KAAA,SAAAA,GACA,GAAAi+J,GAAAb,EAAAc,QAAA13F,EAAA5xF,KAAAorB,EACAi+J,GAAAz+B,iBAAAx/H,EAAAse,KACAu/I,EAAAI,IACA9iJ,GAGA,QAAA4iJ,KACA,GAAAv3F,GAAA/kE,EAAAs7J,EACAv2F,GACAo3F,EAAAp3F,GAEAk3C,IAzBA,GAAAq/C,GAAA,CA4BAgB,OAIAV,EAAAE,YACAxgI,EAAAqgI,EAAAC,EAAA3/C,GAEA2/C,EAAAr9J,KAAA,SAAAA,GACAo9J,EAAAc,QAAAb,EAAAzoL,KAAAorB,GACA09G,KACAviG,GAGA,QAAAgjJ,GAAAd,EAAAl8H,EAAAu8E,EAAAmf,EAAA1hH,EAAA0hJ,EAAAt8B,GAGA,QAAAxjG,GAAAsgI,EAAAl8H,EAAAu8E,EAAAmf,EAAA1hH,EAAA0hJ,GAGA,QAAAe,GAAAp3F,GACA,QAAAq3F,GAAAC,GACAb,GAAAz2F,EAAAg5D,kBAAA,EACAziG,EAAA+gI,EAAAt3F,EAAA,WACAu2F,IACAgB,KACAlhC,EAAA1hH,EAAA0hJ,GAGAr2F,EAAA3oB,UACAw/G,EAAAe,aAAA53F,EAAA5xF,MACAyqC,QAAA,GACAw+I,EAAA1iJ,GAEAkiJ,EAAAgB,QAAA73F,EAAA5xF,MACAyqC,QAAA,GACA,SAAArf,GACAwmE,EAAAjJ,QAAA,GAAAgP,KAAA+xF,WAAAt+J,EAAAusE,IAAAiwF,YAAAh2F,EAAA5xF,OAAAipL,EAAA,SAAA/lL,GACA+kJ,GACAA,EAAAogC,EAAAnlL,EAAA+kL,IACAt8B,IACAplH,GAGA,QAAA4iJ,KACA,GAAAv3F,GAAArlC,EAAA1/B,SAAAs7J,EACAv2F,GACAo3F,EAAAp3F,GAEAk3C,IA/BA,GAAAq/C,GAAA,CAkCAgB,KArCA,GAAAd,GAAA,CAwCA97H,GAAA0c,UACA9gB,EAAAsgI,EAAAl8H,EAAAu8E,EAAAmf,EAAA1hH,EAAA0hJ,GAEA17H,EAAAo8B,QAAA,GAAAgP,KAAA+xF,WAAAjB,EAAA9wF,IAAAiwF,YAAAr7H,EAAAvsD,OAAA8oI,EAAAmf,EAAA0D,GAGA,QAAAg+B,GAAAtrC,GACAA,EAAA/gG,WACA+gG,EAAAj0H,KAAA,GAAAw/J,GAAAvrC,GAGA,QAAAwrC,GAAAtrF,EAAAypD,EAAAlf,EAAAmf,EAAA1hH,GAGA,QAAAujJ,KACA,GAAA5mL,GAAAwlJ,EAAAC,CACAV,IACAA,EAAA/kJ,EAAAq7F,EAAA70D,MACAxmC,EAAAq7F,EAAA70D,KACA60D,EAAAooD,eAAAzjJ,EAAAwO,KAAAk/B,IAAA+3G,EAAApqD,EAAA70D,KAAAxmC,GAAA,SAAAo5C,GACA0rG,EAAAV,gBAAA,GAAAnB,YAAA7pG,GAAA,WACAosG,IACAohC,OAEAvjJ,GAEAyhH,EAAAr/D,QAAAmgD,GAdA,GAAA4f,GAAA,CAiBAohC,KAGA,QAAAd,GAAAviK,EAAAzmB,EAAA6nC,EAAAohC,GACA,GAAAxiD,EAAAwiD,UACA,MAAAA,GAAA,GAAA2gH,GAAAnjK,EAAA43H,GAAAr+I,EAAA6nC,EAAAphB,GAAA,GAAAsjK,GAAAtjK,EAAA43H,GAAAr+I,EAAA6nC,EAAAphB,EAEA,MAAA,mCAGA,QAAAujK,MA8DA,QAAAD,GAAA1rC,EAAAr+I,EAAA6nC,EAAAphB,GACA,GAAAskE,GAAAnlF,IACAokL,GAAAtmL,UAAAqP,KAAAjT,KAAAirF,EAAAszD,EAAAr+I,EAAA6nC,EAAAphB,GACAskE,EAAAu7D,OAAAz+G,EAAAy+G,OACAv7D,EAAAo8D,OAAAt/G,EAAAs/G,OACAp8D,EAAAjjF,KAAA+/B,EAAA//B,KACA+/B,EAAA8gD,UACAoC,EAAApC,QAAA9gD,EAAA8gD,SAiCA,QAAAihG,GAAAvrC,EAAAr+I,EAAA6nC,EAAAphB,GACA,GAAAskE,GAAAnlF,IACAokL,GAAAtmL,UAAAqP,KAAAjT,KAAAirF,EAAAszD,EAAAr+I,EAAA6nC,EAAAphB,GACAskE,EAAA9hB,WAAA,EA8FA,QAAAghH,KACAN,EAAA/jL,MArdA,GAAA+iJ,GAAA,OAEAvB,EAAAzvD,IAAAyvD,WACAQ,EAAAjwD,IAAAiwD,WACAH,EAAA9vD,IAAA8vD,gBACAnB,EAAA3uD,IAAA2uD,OACAC,EAAA5uD,IAAA4uD,WACAG,EAAA/uD,IAAA+uD,WACAE,EAAAjvD,IAAAivD,gBACAsI,EAAAv3D,IAAAu3D,aACAC,EAAAx3D,IAAAw3D,YA+BA04B,GAAAnkL,UAAA,GAAA4iJ,GACAuhC,EAAAnkL,UAAAyX,YAAA0sK,EACAA,EAAAnkL,UAAAioJ,YAAA,EAqOAq+B,EAAAtmL,WACAqP,KAAA,SAAAsrI,EAAAr+I,EAAA6nC,EAAAphB,GACA,GAAAskE,GAAAnlF,IACA,IAAAy4I,EAAAj0H,MAAA3D,GAAAA,EAAAyjK,eAAAlqL,GACA,KAAA,gCACA6nC,KACAA,MACAkjD,EAAAszD,GAAAA,EACAtzD,EAAA/qF,KAAAA,EACA+qF,EAAAxmF,GAAA85I,EAAA/gG,QAAAn8C,OACA4pF,EAAAtkE,OAAAA,EACAskE,EAAAl+D,YACAk+D,EAAAu9F,WAAAzgJ,EAAAygJ,YAAA,GACAv9F,EAAA6/D,iBAAA,EACAvM,EAAA/gG,QAAAn7C,KAAA4oF,GACAtkE,GACAskE,EAAAtkE,OAAAoG,SAAA1qB,KAAA4oF,IAEAw+F,aAAA,SAAAd,EAAA3/C,EAAAmf,EAAA1hH,EAAAolH,GACA,GAAA5gE,GAAAnlF,IACAmiL,GAAAh9F,EAAA,WACAw+F,EAAAd,EAAA19F,EAAA+9C,EAAAmf,EAAA1hH,EAAAuhJ,EAAA/8F,GAAA4gE,IACAplH,IAEA4jJ,OAAA,SAAA3xK,GACA,GAAAuyE,GAAAnlF,IACA,KAAA4S,EAAAywD,UAYA,KAAA,kCAXA,IAAAzwD,EAAA4xK,eAAAr/F,GASA,KAAA,sCARA,IAAAA,GAAAvyE,EAAA,CACA,GAAAA,EAAA0xK,eAAAn/F,EAAA/qF,MACA,KAAA,gCACA6P,GAAAk7E,GACAA,EAAAtkE,OAAAjO,EACAA,EAAAqU,SAAA1qB,KAAA4oF,KAOAq9F,YAAA,WAEA,IADA,GAAAr9F,GAAAnlF,KAAAykL,EAAAt/F,EAAA/qF,KAAAusD,EAAAw+B,EAAAtkE,OACA8lC,GACA89H,GAAA99H,EAAAvsD,KAAAusD,EAAAvsD,KAAA,IAAA,IAAAqqL,EACA99H,EAAAA,EAAA9lC,MAEA,OAAA4jK,IAEAD,eAAA,SAAAE,GAEA,IADA,GAAA/9H,GAAA3mD,KAAA6gB,OACA8lC,GAAAA,EAAAhoD,IAAA+lL,EAAA/lL,IACAgoD,EAAAA,EAAA9lC,MACA,SAAA8lC,IAGAy9H,EAAAtmL,UAAAyX,YAAA6uK,CAEA,IAAAO,EAaAR,GAAArmL,UAAA6mL,EAAA,GAAAP,GACAO,EAAApvK,YAAA4uK,EACAQ,EAAA5hG,QAAA,SAAAq/D,EAAAlf,EAAAmf,EAAA1hH,GACA,GAAAwkD,GAAAnlF,MACAoiJ,GAAAA,EAAA7sI,aAAA4vE,EAAAo8D,QAAAp8D,EAAAjjF,KACAghI,EAAA/9C,EAAAjjF,OAEAijF,EAAAwT,SACAxT,EAAAwT,OAAA,GAAAxT,GAAAu7D,OAAAv7D,EAAAjjF,KAAAy+B,IACAwkD,EAAAwT,OAAAxrF,KAAA,WACAi1I,EAAAj1I,KAAA,WACA82K,EAAA9+F,EAAAwT,OAAAypD,EAAAlf,EAAAmf,EAAA1hH,IACAA,OAKAgkJ,EAAA3mK,QAAA,SAAAklH,EAAAmf,EAAA0D,EAAAtE,GACAzhJ,KAAA+iF,QAAA,GAAAy+D,GAAAC,GAAAve,EAAAmf,EAAA0D,IAEA4+B,EAAAC,QAAA,SAAApxK,EAAA0vH,EAAAmf,EAAA0D,GACA/lJ,KAAA+iF,QAAA,GAAAi/D,GAAAxuI,GAAA0vH,EAAAmf,EAAA0D,IAEA4+B,EAAAE,aAAA,SAAArxK,EAAA0vH,EAAAmf,EAAA0D,GACA/lJ,KAAA+iF,QAAA,GAAA8+D,GAAAruI,GAAA0vH,EAAAmf,EAAA0D,GAGA,IAAA++B,EAQAd,GAAAlmL,UAAAgnL,EAAA,GAAAV,GACAU,EAAAvvK,YAAAyuK,EACAc,EAAAtB,aAAA,SAAAppL,GACA,MAAAgpL,GAAApjL,KAAA5F,EAAA,MAAA,IAEA0qL,EAAAC,QAAA,SAAA3qL,EAAA0c,GACA,MAAAssK,GAAApjL,KAAA5F,GACA8H,KAAA4U,EACA4pI,OAAAC,EACAY,OAAAC,KAGAsjC,EAAApB,QAAA,SAAAtpL,EAAAqlJ,GACA,MAAA2jC,GAAApjL,KAAA5F,GACA8H,KAAAu9I,EACAiB,OAAAI,EACAS,OAAAS,KAGA8iC,EAAAE,aAAA,SAAA5qL,EAAA6mJ,GACA,MAAAmiC,GAAApjL,KAAA5F,GACA8H,KAAA++I,EACAP,OAAAM,EACAO,OAAAM,KAGAijC,EAAAnC,aAAA,SAAAE,EAAA3/C,EAAAviG,GACAgiJ,EAAA3iL,KAAA6iL,EAAA3/C,EAAAviG,IAEAmkJ,EAAAG,QAAA,SAAA7qL,EAAA6nC,GACA,MAAAmhJ,GAAApjL,KAAA5F,EAAA6nC,IAEA6iJ,EAAAI,WAAA,SAAAzlC,EAAAvc,EAAAviG,GACA3gC,KAAAmlL,UAAA,GAAArkC,GAAArB,GAAAvc,EAAAviG,IAEAmkJ,EAAAM,WAAA,SAAAtuK,EAAAosH,EAAAviG,GACA3gC,KAAAmlL,UAAA,GAAAxkC,GAAA7pI,GAAAosH,EAAAviG,IAEAmkJ,EAAAO,gBAAA,SAAApkC,EAAA/d,EAAAviG,GACA3gC,KAAAmlL,UAAA,GAAAnkC,GAAAC,GAAA/d,EAAAviG,IAEAmkJ,EAAAQ,WAAA,SAAApiD,EAAAmf,EAAA1hH,GACA3gC,KAAAoiL,UAAA,GAAApgC,GAAA,mBAAA9e,EAAAmf,EAAA1hH,IAEAmkJ,EAAAS,WAAA,SAAAriD,EAAAmf,EAAA1hH,GACA3gC,KAAAoiL,UAAA,GAAA5gC,GAAAte,EAAAmf,EAAA1hH,IAEAmkJ,EAAAU,gBAAA,SAAA3C,EAAA3/C,EAAAmf,EAAA1hH,GACA3gC,KAAAoiL,UAAA,GAAArwF,KAAA+xF,WAAAjB,EAAA,mBAAA3/C,EAAAmf,EAAA1hH,IAEAmkJ,EAAAW,gBAAA,SAAAviD,EAAAmf,EAAA1hH,GACA3gC,KAAAoiL,UAAA,GAAAvgC,GAAA,mBAAA3e,EAAAmf,EAAA1hH,IAEAmkJ,EAAAK,UAAA,SAAAxsF,EAAAuqC,EAAAviG,GACA,GAAAwkD,GAAAnlF,IACAspJ,GAAA3wD,EAAA,SAAA8tD,GACAA,EAAAC,WAAA,SAAAhvG,GACAA,EAAAnP,QAAA,SAAAoe,GACA,GAAA9lC,GAAAskE,EAAA1qB,EAAA9T,EAAA2c,SAAAnoE,MAAA,KAAAf,EAAAqgE,EAAA38C,KACA28C,GAAAlyB,QAAA,SAAAm9I,GACA7kK,EAAAA,EAAAyjK,eAAAoB,IAAA,GAAA1B,GAAA7+F,EAAAszD,GAAAitC,EAAA,KAAA7kK,KAEA8lC,EAAA0c,WACA+/G,EAAAviK,EAAAzmB,GACA8H,KAAAykD,EACA+5F,OAAAuhC,MAGA/+C,OAEAviG,IAEAmkJ,EAAA1C,UAAA,SAAAhgC,EAAAlf,EAAAmf,EAAA1hH,GACA,GAAAwkD,GAAAnlF,IACAmiL,GAAAh9F,EAAA,WACAokE,EAAAnH,EAAA,SAAAwF,GACAw6B,EAAAx6B,EAAAziE,EAAA,WACAyiE,EAAAp9I,MAAA04H,IACAmf,EAAA6/B,EAAA/8F,KACAxkD,IACAA,IAEAmkJ,EAAAR,eAAA,SAAAlqL,GACA,GAAAmoL,GAAAv2F,EAAA7G,EAAAnlF,IACA,KAAAuiL,EAAA,EAAAA,EAAAp9F,EAAAl+D,SAAA1rB,OAAAgnL,IAEA,GADAv2F,EAAA7G,EAAAl+D,SAAAs7J,GACAv2F,EAAA5xF,MAAAA,EACA,MAAA4xF,IAOAq4F,EAAAvmL,WACA0L,OAAA,SAAAm9C,GACA18C,EAAA08C,GACA3mD,KAAA03C,QAAAiP,EAAAhoD,IAAA,MAEAif,KAAA,SAAA6mK,GACA,GAAAnnL,GAAAm9D,EAAAgqH,EAAAtpL,MAAA,KAAAwN,EAAA3I,KAAAwkB,IACA,KAAAlnB,EAAA,EAAAqL,GAAArL,EAAAm9D,EAAAl/D,OAAA+B,IACAqL,EAAAA,EAAA27K,eAAA7pH,EAAAn9D,GACA,OAAAqL,IAEAwY,QAAA,SAAAxiB,GACA,MAAAqB,MAAA03C,QAAA/4C,IAEAumL,WAAA,SAAAzlC,EAAAvc,EAAAviG,GACAojJ,EAAA/jL,MACAA,KAAAwkB,KAAA0gK,WAAAzlC,EAAAvc,EAAAviG,IAEAykJ,WAAA,SAAAtuK,EAAAosH,EAAAviG,GACAojJ,EAAA/jL,MACAA,KAAAwkB,KAAA4gK,WAAAtuK,EAAAosH,EAAAviG,IAEA0kJ,gBAAA,SAAApkC,EAAA/d,EAAAviG,GACAojJ,EAAA/jL,MACAA,KAAAwkB,KAAA6gK,gBAAApkC,EAAA/d,EAAAviG,IAEA2kJ,WAAA,SAAApiD,EAAAmf,EAAA1hH,GACA3gC,KAAAwkB,KAAA8gK,WAAApiD,EAAAmf,EAAA1hH,IAEA4kJ,WAAA,SAAAriD,EAAAmf,EAAA1hH,GACA3gC,KAAAwkB,KAAA+gK,WAAAriD,EAAAmf,EAAA1hH,IAEA6kJ,gBAAA,SAAA3C,EAAA3/C,EAAAmf,EAAA1hH,GACA3gC,KAAAwkB,KAAAghK,gBAAA3C,EAAA3/C,EAAAmf,EAAA1hH,IAEA8kJ,gBAAA,SAAAviD,EAAAmf,EAAA1hH,GACA3gC,KAAAwkB,KAAAihK,gBAAAviD,EAAAmf,EAAA1hH,KAIAoxD,IAAA0mD,IACA4rC,GAAAA,EACAL,kBAAAA,EACAG,aAAAA,GAGApyF,IAAAiwF,YAAA,WACA,MAAA,+BAKApoL,OAAA,UAAA,cAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAoyF,MAEA/xF,OCnhBA,WACA,YAeA,SAAA2lL,GAAA9pJ,GACA,GAAA7hB,GAAAna,SAAAuF,cAAA,IAEA,OADA4U,GAAA2K,KAAAkX,EACA,UAAA7hB,EAAA+hB,UAAA,WAAA/hB,EAAA+hB,SAGA,QAAA6pJ,GAAA/pJ,GAGA,QAAAknD,GAAAjkF,EAAA6hC,GACA,GAAAklJ,EACA1gG,GAAAjjF,KAaApD,KAZA+mL,EAAA,GAAA7lJ,gBACA6lJ,EAAA9kK,iBAAA,OAAA,WACAokE,EAAArhD,OACAqhD,EAAArhD,KAAAsI,OAAAy5I,EAAApyK,kBAAA,oBAAA24B,OAAAy5I,EAAAjyK,SAAAssI,aACA/6D,EAAAjjF,KAAA,GAAAq+I,YAAAslC,EAAAjyK,UACA9U,MACA,GACA+mL,EAAA9kK,iBAAA,QAAA4f,GAAA,GACAklJ,EAAAtlJ,KAAA,MAAA1E,GACAgqJ,EAAA/kJ,aAAA,cACA+kJ,EAAA9mJ,QAKA,QAAA5xB,GAAArO,EAAA6hC,GACA,IAAAglJ,EAAA9pJ,GAIA,WADAknD,GAAAjkF,EAAA6hC,EAGA,IAAAklJ,GAAA,GAAA7lJ,eACA6lJ,GAAA9kK,iBAAA,OAAA,WACAokE,EAAArhD,KAAAsI,OAAAy5I,EAAApyK,kBAAA,mBAEA0xE,EAAArhD,KAGAhlC,IAFAikF,EAAAjkF,EAAA6hC,KAIA,GACAklJ,EAAA9kK,iBAAA,QAAA4f,GAAA,GACAklJ,EAAAtlJ,KAAA,OAAA1E,GACAgqJ,EAAA9mJ,OAGA,QAAAgiH,GAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GACAoiD,EAAA,WACAjkF,EAAA,GAAAyhJ,YAAAp7D,EAAAjjF,KAAA+kJ,SAAA3pJ,EAAAA,EAAA/B,MACAolC,GA7CA,GAAAwkD,GAAAnlF,IAgDAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAKA,QAAA+kC,GAAAjqJ,GAGA,QAAA1uB,GAAArO,EAAA6hC,GACA,GAAAklJ,GAAA,GAAA7lJ,eACA6lJ,GAAA9kK,iBAAA,OAAA,WACAokE,EAAArhD,KAAAsI,OAAAy5I,EAAApyK,kBAAA,mBAIA3U,MAGA,GACA+mL,EAAA9kK,iBAAA,QAAA4f,GAAA,GACAklJ,EAAAtlJ,KAAA,OAAA1E,GACAgqJ,EAAA9mJ,OAGA,QAAAgnJ,GAAAzoL,EAAA/B,EAAAuD,EAAA6hC,GACA,GAAAklJ,GAAA,GAAA7lJ,eACA6lJ,GAAAtlJ,KAAA,MAAA1E,GACAgqJ,EAAA/kJ,aAAA,cACA+kJ,EAAAznJ,iBAAA,QAAA,SAAA9gC,EAAA,KAAAA,EAAA/B,EAAA,IACAsqL,EAAA9kK,iBAAA,OAAA,WACAjiB,EAAA+mL,EAAAjyK,YACA,GACAiyK,EAAA9kK,iBAAA,QAAA4f,GAAA,GACAklJ,EAAA9mJ,OAGA,QAAAgiH,GAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GACAolJ,EAAAzoL,EAAA/B,EAAA,SAAAyqL,GACAlnL,EAAA,GAAAyhJ,YAAAylC,KACArlJ,GAjCA,GAAAwkD,GAAAnlF,IAoCAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAKA,QAAAklC,GAAAC,GAGA,QAAA/4K,GAAArO,EAAA6hC,GACAwkD,EAAArhD,KAAAoiJ,EAAAhmC,WACAphJ,IAGA,QAAAiiJ,GAAAzjJ,EAAA/B,EAAAuD,EAAA6hC,GACA7hC,EAAA,GAAAyhJ,YAAA2lC,EAAArqL,MAAAyB,EAAAA,EAAA/B,KARA,GAAA4pF,GAAAnlF,IAWAmlF,GAAArhD,KAAA,EACAqhD,EAAAh4E,KAAAA,EACAg4E,EAAA47D,eAAAA,EAKA,QAAAolC,KAGA,QAAAh5K,GAAArO,EAAA6hC,GACA+V,EAAA,GAAA6pG,YACAzhJ,IAGA,QAAA4iJ,GAAA7sI,EAAA/V,EAAA6hC,GACA,GAAAylJ,GAAA,GAAA7lC,YAAA7pG,EAAAn7C,OAAAsZ,EAAAtZ,OACA6qL,GAAA3jL,IAAAi0C,GACA0vI,EAAA3jL,IAAAoS,EAAA6hC,EAAAn7C,QACAm7C,EAAA0vI,EACAtnL,IAGA,QAAAikF,GAAAjkF,GACAA,EAAA43C,EAAA8pG,QAhBA,GAAA9pG,GAAAyuC,EAAAnlF,IAmBAmlF,GAAAh4E,KAAAA,EACAg4E,EAAAu8D,gBAAAA,EACAv8D,EAAApC,QAAAA,EAKA,QAAA+gG,GAAAjB,EAAA3mJ,GAGA,QAAA/uB,GAAArO,EAAA6hC,GACAkiJ,EAAAt5B,aAAA,SAAA88B,GACAjkC,EAAAikC,EACAvnL,KACA6hC,GAGA,QAAA+gH,GAAAhrG,EAAA53C,EAAA6hC,GACA,GAAA8+G,GAAA,GAAA5+C,OAAA8gD,EAAAjrG,EAAAA,EAAA8pG,SACArgJ,KAAA+7B,GAEAkmH,GAAAkkC,QAAA,WACAlkC,EAAAkkC,QAAA,KACAxnL,KAEAsjJ,EAAAzhH,QAAAA,EACAyhH,EAAA73I,MAAAk1I,GAGA,QAAA18D,GAAAjkF,GACA+jL,EAAAr9J,KAAA1mB,GAtBA,GAAAsjJ,GAAAj9D,EAAAnlF,IAyBAmlF,GAAAh4E,KAAAA,EACAg4E,EAAAu8D,gBAAAA,EACAv8D,EAAApC,QAAAA,EAjMA,GAKAihG,GAEAriC,EALAjB,EAAA3uD,IAAA2uD,OACAa,EAAAxvD,IAAAwvD,MAKA,KACAI,EAAA,IAAA,GAAA9gD,OAAA,GAAA4/C,UAAA,GAAAH,aAAA,MAAAx8G,KACA,MAAArlC,IA8DAmnL,EAAA9nL,UAAA,GAAA4iJ,GACAklC,EAAA9nL,UAAAyX,YAAAqwK,EA2CAE,EAAAhoL,UAAA,GAAA4iJ,GACAolC,EAAAhoL,UAAAyX,YAAAuwK,EAkBAG,EAAAnoL,UAAA,GAAA4iJ,GACAulC,EAAAnoL,UAAAyX,YAAA0wK,EA0BAE,EAAAroL,UAAA,GAAAyjJ,GACA4kC,EAAAroL,UAAAyX,YAAA4wK,EAgCArC,EAAAhmL,UAAA,GAAAyjJ,GACAuiC,EAAAhmL,UAAAyX,YAAAuuK,EAEA/xF,IAAA+xF,WAAAA,EACA/xF,IAAA6zF,WAAAA,EACA7zF,IAAA+zF,gBAAAA,EACA/zF,IAAAk0F,kBAAAA,EACAl0F,IAAAo0F,kBAAAA,EAEAp0F,IAAA0mD,KACAurC,EAAAjyF,IAAA0mD,GAAAurC,kBACAA,EAAAlmL,UAAAyoL,eAAA,SAAAnsL,EAAAigG,EAAAmsF,GAQA,MAPA,UAAA3lK,EAAAzmB,EAAA6nC,EAAAohC,GACA,GAAAxiD,EAAAwiD,UACA,MAAAA,GAAA,GAAA2gH,GAAAnjK,EAAA43H,GAAAr+I,EAAA6nC,EAAAphB,GAAA,GAAAkxE,KAAA0mD,GAAA0rC,aAAAtjK,EAAA43H,GAAAr+I,EAAA6nC,EAAAphB,EAEA,MAAA,oCAGA7gB,KAAA5F,GACA8H,KAAAm4F,EACAqmD,OAAA8lC,EAAAV,EAAAF,KAGA5B,EAAAlmL,UAAA2oL,kBAAA,SAAApsF,EAAAmsF,EAAAtjD,EAAAviG,GACA3gC,KAAAmlL,UAAAqB,EAAA,GAAAV,GAAAzrF,GAAA,GAAAurF,GAAAvrF,GAAA6oC,EAAAviG,IAEAoxD,IAAA0mD,GAAA4rC,GAAAvmL,UAAA2oL,kBAAA,SAAApsF,EAAAmsF,EAAAtjD,EAAAviG,GACA3gC,KAAA03C,WACA13C,KAAAwkB,KAAA,GAAAw/J,GAAAhkL,MACAA,KAAAwkB,KAAAiiK,kBAAApsF,EAAAmsF,EAAAtjD,EAAAviG,QAMA/mC,OAAA,WAAA,UAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAoyF,MAEA/xF,OC9PApG,OAAA,8CAAA,SAAA,QAAA,0BAAA,UAAA,6BAAA,SAAAsqC,EAAA40B,EAAAwkF,EAAAvrD,EAAA2O,GA+NA,MA7NA,UAAA29C,EAAAqoC,GAeA,QAAAC,GAAA7nL,EAAA6hC,GAMAimJ,EAEA9nL,EAAA8nL,EAAAjmJ,IAIA+lJ,GAGA30F,EAAAyxD,eAAA,EACAzxD,EAAAg3D,kBAAA29B,GAIA30F,EAAAyxD,eAAA,EAGAojC,EAAA,GAAA70F,GAAA0mD,GAAA4rC,GAEAzjF,YAAAC,OAAAD,YAAAE,MAEA8lF,EAAA1B,WACAtkF,EACA,WACA9hG,EAAA8nL,EAAAjmJ,IAEA,WACA4G,QAAAjzB,MAAA,aACAqsB,EAAAlkC,MAAAuD,KAAA1D,aAMAsqL,EAAAH,kBACA7lF,GACA,EACA,WACA9hG,EAAA8nL,EAAAjmJ,IAEA,WACA4G,QAAAjzB,MAAA,aACAqsB,EAAAlkC,MAAAuD,KAAA1D,cAOA,QAAAgiJ,GAAAuoC,EAAAroC,EAAA79G,GAEA,OAAA,KAAAkmJ,EACA,KAAA,0CAGAF,GACA,SAAAG,EAAAnmJ,GAEA,GAAAgmB,GAAAmgI,EAAAlpK,KAAAipK,OAEA,KAAAlgI,GAAA,OAAAA,EACAhmB,EAAA,GAAAxjC,OAAA4pL,EAAA,SAAAF,EAAA,qBAAAjoC,IAEAj4F,EAAA0c,UACA1iC,EAAA,GAAAxjC,OAAA4pL,EAAA,SAAAF,EAAA,mDAEAroC,EAAA73F,IAIA,WAEA,GAAAryC,GAAAhY,UAEAA,UAAAf,QAAAe,UAAA,YAAAa,OACAb,UAAA,GACAA,oBAAAa,OAAAb,cAAA8C,OAEAA,EAQA,MAHAkV,GAAA,GAAAA,EAAAo7D,QAAAnyE,QAAAwpL,IAGAnmF,YAAAC,OAAAD,YAAAE,MAgDAngE,EAAAlkC,MAAAuD,KAAA1D,eAhDA,CACAirC,QAAAE,IAAA,kFAAAm5D,EAAA;oGAEA,IAAA7gE,GAAA,GAAAC,eAIAD,GAAAc,mBAAA,WAGA,GAAA,GAAA7gC,KAAAiqB,WAAA,CAGA,GADA8V,EAAAjD,QAAA,KAAAiD,EAAAjD,OAAA,KAAA,MAAAiD,EAAAjD,OAeA,MAbA8jE,GAAA5gG,KAAA4T,SAIAgzK,MAAAxnL,QAEAwhG,YAAAC,OAAAD,YAAAE,MACAw9C,EAAAuoC,EAAAroC,EAAA79G,GAGAA,EAAA,GAAAxjC,OAAA,uCAMAwjC,GAAAZ,EAAA5C,cAEA4C,EAAAQ,KAAA,MAAAqgE,GAAA,GACA7gE,EAAAe,aAAA,OACAf,EAAAhB,KAAA,SA3IA,GAIA6nJ,GAJAhmF,EAAAy9C,EAAAQ,cACAD,EAAAP,EAAAS,uBAKAioC,EAAA,aA4JA/mL,MAAA0+I,WAAA,SAAAH,GAEA,GAAAQ,OAAA3/I,EACA,KACA2/I,EAAA,GAAAjmF,GAAAylF,GACA,MAAAj4I,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAA82G,GAEA,GAAAQ,GAAAA,EAAAt4H,GAAA,YAAA,MAAA83H,EAGA,IAAA1iH,GAAA+iH,CAEA,KAEA/iH,EAAA,GAAAi9B,GAAAj9B,GAAA8U,OAAA,IAAArsB,KAAA,IAAAvP,WACA,MAAAzO,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAA5L,GAGA,MAAAA,IAAA,KAAAA,EAAAjgC,OAAAigC,EAAAtgC,OAAA,GAAA,GAAA,KAAAgjJ,GAGAv+I,KAAAg/I,sBAAA,SAAA6nC,EAAA5nC,EAAAt+G,GAEA29G,EAAAuoC,EAAA,SAAAlgI,GACAA,EAAA3oC,QAAAihI,MAAA7/I,IA3LA,IA4LAuhC,IAGA3gC,KAAAgnL,2BAAA,SAAAH,EAAA5nC,EAAAt+G,GACA29G,EAAAuoC,EAAA,SAAAlgI,GACAA,EAAAk+H,aAAAvnC,EAAAW,gCAAA4oC,GACA5nC,MAAA7/I,IAlMA,IAmMAuhC,IAGA3gC,KAAAk/I,sBAAA,SAAA2nC,EAAA5nC,EAAAt+G,GACA,GAAAw+G,GAAAd,EAAAe,qCAAAynC,EACA,IAAA1nC,EAAA,CACA,GAAAE,GAAAJ,CACAA,GAAA,SAAAK,GACAH,EAAAG,EAAA,SAAAC,GACAF,EAAAE,MAIAjB,EAAAuoC,EAAA,SAAAlgI,GACAA,EAAAi+H,QAAAtnC,EAAAW,gCAAA4oC,GAAA5nC,MACA7/I,IAlNA,IAmNAuhC,OC1NA/mC,OACA,kDAAA,SAAA,aAAA,QAAA,2BACA,SAAAsqC,EAAA1iC,EAAAs3D,EAAAwkF,GAkWA,MA/VA,UAAA2pC,EAAA/hF,EAAAokB,EAAA49D,EAAAC,GAsEA,QAAAC,GAAAC,EAAAh+D,GACA,GAAAi+D,GAAAD,EAAAvjL,qBAAA,QAAA,EACA,KAAAwjL,EAAA,CACAA,EAAAD,EAAAjiL,cAAA,OAEA,IAAA8lD,GAAAm8H,EAAAvjL,qBAAA,QAAA,EACAonD,IACAA,EAAA15B,aAAA81J,EAAAp8H,EAAAvlD,WAAA,IAGA2hL,EAAA1uK,aAAA,OAAAywG,GAGA,QAAAk+D,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAjnJ,EAAAknJ,GAEA,QAAAC,GAAAC,GAGA7jJ,EAAAsjJ,GAAAjlK,KAAA,uBAAAklK,GACAvjJ,EAAAsjJ,GAAAjlK,KAAAmlK,EAAAK,GAIA,GAAA,KADA,GAAAjvH,GAAA2uH,GACA5kH,SAGA,WAFAt7B,SAAAE,IAAA,+BAAAggJ,EAIA,IAAA,GAAAA,EAAAlqL,QAAA,KAAA,CACAgqC,QAAAE,IAAA,sBAAAggJ,EAaA,YAFAK,IARA/nL,OAAAwkB,SACAxkB,OAAAwkB,SAAAwX,SACA,KACAh8B,OAAAwkB,SAAA+1C,UACAv6D,OAAAwkB,SAAAi2C,KAAA,IAAAz6D,OAAAwkB,SAAAi2C,KAAA,IACA,IAGAitH,GAKA,GAAAO,GAAAC,EAAAC,6CAAAC,GAEAC,EAAA,IAAA,GAAAtvH,GAAA2uH,GAAAxuH,WAAA+uH,GAAAjzK,WAGAszK,EAAAC,EAAAC,eAAAH,EAEA,IAAAC,EACAP,EAAAO,OACA,CACA,GAAAG,GAAAtkJ,EAAAh0B,UACA03K,GAAArrL,KAAAisL,GAEAP,EAAAQ,mCAAAL,EACAT,EACA,SAAAe,GAKA,GAAAC,GAAA,SAAAC,GAEA,GAAA,SAAAjB,EAAA,CACA,GAAAkB,GAAAvrC,EAAAW,gCAAAmqC,GACAU,EAAA5kJ,EAAAsjJ,GAAAjlK,KAAA,OACAumK,KACAD,EAAAC,GAEAF,EAAA,GAAA/nF,OAAA+nF,IAAAzoL,KAAA0oL,IAGA,GAAAE,GAAAhpL,OAAAs6F,IAAA2uF,gBAAAJ,EACAN,GAAAW,YAAAb,EACAW,EAAAH,GAEAd,EAAAiB,GACAP,EAAAx/J,UAGA6+J,GACAA,EAAAa,EAAAN,EACAO,GAEAA,EAAAD,IAEA,WACAF,EAAAx/J,UACA2X,EAAAlkC,MAAAuD,KAAA1D,cAKA,QAAA4sL,GAAAC,EAAAC,EACAC,EAAAC,EACAC,GACA,GAAAC,GAAAL,EAAA,GAEAM,EAAAN,EAAAttL,MAAA,GACA6tL,EAAAloL,EAAAoc,KAAA6rK,EAAA,SAAAE,GAAA,WAAA,KAAAA,GAIA,IADA,KADA,GAAA7wH,GAAA4wH,GACA7mH,SACA,CAKA,GAAA+mH,GAAA3B,EAAAC,6CAAAmB,EAKA,OAAAO,EAAAhuL,OAAA,KACAguL,EAAAA,EAAA/zI,OAAA,GAGA,IAAAuyI,GAAA,IAAA,GAAAtvH,GAAA4wH,GAAAzwH,WAAA2wH,GAAA70K,WAEA80K,EAAAvB,EAAAC,eAAAH,EAGA,IAAAyB,EACAP,EAAAE,IACAD,qBAAAA,EACAR,kBAAAc,OAEA,CACA,GAAAC,GAAA5lJ,EAAAh0B,UACAk5K,GAAA7sL,KAAAutL,EAEA,IAeAnC,GACA1oC,EAhBA8qC,EAAA,SAAAC,GAEA,GAAAjB,GAAAhpL,OAAAs6F,IAAA2uF,gBAAAgB,EACAV,GAAAE,IACAD,qBAAAA,EACAR,kBAAAA,GAEAT,EAAAW,YAAAb,EACAW,EAAAiB,GACAF,EAAA9gK,WAEAihK,EAAA,SAAA31K,GACAw1K,EAAA9gK,UAKAugK,IAEA5B,EAAA,OACA1oC,EAAA,SAAAirC,GACAC,EAAAD,EAAA9B,EACA,SAAAgC,GACA,GAAAJ,GAAA,GAAAnpF,OAAAupF,IAAAjqL,KAAA,YACA4pL,GAAAC,QAIArC,EAAA,OACA1oC,EAAA8qC,GAGA9B,EAAAQ,mCAAAL,EACAT,EACA1oC,EAAAgrC,KAIA,QAAAE,GAAAD,EAAAb,EACAvqL,GACA,GAAAurL,GAAA,+DACAC,EAAA,qDACAhB,KACAF,MAEAkB,EAAAD,GAAA9hJ,QAAA,SAAAgiJ,GAGA,IADA,GAAApB,GAAAoB,EAAAhnL,KAAA2mL,GACA,MAAAf,GAAA,CAEA,GAAAI,IAAA,CAGAgB,IAAAD,IAGAf,GAAA,GAEAL,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,GACAJ,EAAAoB,EAAAhnL,KAAA2mL,MAKAd,EAAA7tL,OAAA,EACA2oC,EAAA9a,KAAA3sB,MAAAynC,EAAAklJ,GAAA/5K,KAAA,WACA,IAAA,GAAAm6K,KAAAF,GAAA,CACA,GAGAkB,GAHAC,EAAAnB,EAAAE,EAKAgB,GADAC,EAAAlB,qBACA,YAAAkB,EAAA1B,kBAAA,IAEA,QAAA0B,EAAA1B,kBAAA,IAEA,IAAA2B,GAAAlB,EAAA7tL,QAAA,sCACA,QACAgvL,EAAA,GAAAzrK,QAAAwrK,EAAA,IAEAR,GACAA,EAAAvuL,QAAAgvL,EAAAH,EAAA,KAGA1rL,EAAAorL,KAGAprL,EAAAorL,GAKA,QAAAU,GAAAC,EAAAnD,EAAAC,EAAAC,EAAAjnJ,EACAknJ,GAEA3jJ,EAAA2mJ,EAAA,IAAAnD,EAAA/rL,QAAA,IAAA,OAAA,IAAAmvL,GAEAzpL,KAAA,SAAA/D,EAAAkqL,GAGAD,EAAAC,EAFAtjJ,EAAAsjJ,GAAAjlK,KAAAmlK,GAEAA,EAAAC,EAAAC,EACAjnJ,EAAAknJ,KAIA,QAAAkD,GAAAnD,EAAAjnJ,GACAiqJ,EAAA,MAAA,MAAA,OAAAhD,EAAAjnJ,GACAiqJ,EAAA,QAAA,aAAA,OAAAhD,EAAAjnJ,GAGA,QAAAqqJ,GAAApD,EAAAjnJ,GACAiqJ,EAAA,QAAA,MAAA,OAAAhD,EAAAjnJ,GAGA,QAAAsqJ,GAAArD,EAAAjnJ,GACAiqJ,EAAA,QAAA,MAAA,OAAAhD,EAAAjnJ,GACAiqJ,EAAA,QAAA,SAAA,OAAAhD,EAAAjnJ,GAGA,QAAAuqJ,GAAAtD,EAAAjnJ,GACAiqJ,EAAA,SAAA,MAAA,OAAAhD,EAAAjnJ,GAGA,QAAAwqJ,GAAAvD,EAAAjnJ,GACAiqJ,EAAA,OAAA,OAAA,OAAAhD,EAAAjnJ,EACAwpJ,GAGA,QAAAiB,GAAAxD,EAAAjnJ,GACAuD,EAAA,QAAA4mJ,GACAzpL,KAAA,SAAA/D,EAAAkqL,GACA,GAAAgB,GAAAtkJ,EAAAh0B,UACA03K,GAAArrL,KAAAisL,GAEA2B,EADAjmJ,EAAAsjJ,GAAA1wK,OACAqxK,EACA,SAAAkD,GACAnnJ,EAAAsjJ,GAAA1wK,KAAAu0K,GACA7C,EAAAx/J,cAtVA,GAIAsiK,GAEAR,EANA7hL,EAAAjJ,KAEAmoL,EAAAjjF,EAAAvgF,KACAsjK,EAAAhB,EAEAsE,EAAArmF,EAAArG,WAEAypF,EAAApB,EACAsE,EAAArE,CAIAnnL,MAAAyrL,kCAAA,SAAAC,EAAAprJ,GACA2nJ,EAAAQ,mCAAAN,EAAA,OACA,SAAAwD,GACAL,EAAAK,EACAH,IACAF,EAAAE,EAAAliE,EAAAgiE,IAEAriL,EAAA2iL,gCAAAF,EAAAprJ,IACAA,IAIAtgC,KAAA4rL,gCAAA,SAAAC,EAAAlrJ,GAEAmqJ,EAAA7C,EAAA6D,aAAA3uC,YAAAmuC,EAAAC,GACAnE,EAAA0D,EAAAxhE,EAEA,IAAAs+D,KAEAK,GAAA8D,2CAEAxkJ,QAAAE,IAAA,wCAEAsjJ,EAAAnD,EAAAjnJ,GAEAqqJ,EAAApD,EAAAjnJ,GACAsqJ,EAAArD,EAAAjnJ,GAGAiqJ,EAAA,SAAA,MAAA,OAAAhD,EAAAjnJ,GAEAiqJ,EAAA,SAAA,OAAA,OAAAhD,EAAAjnJ,IAYAuqJ,EAAAtD,EAAAjnJ,GACAwqJ,EAAAvD,EAAAjnJ,GACAyqJ,EAAAxD,EAAAjnJ,GAEAuD,EAAA9a,KAAA3sB,MAAAynC,EAAA0jJ,GAAAv4K,KAAA,WACAk4B,QAAAE,IAAA,sBAAA6hF,GACAuiE,EAAAf,SCpEAlxL,OAAA,wCAAA,cAAA,SAAA4H,GA0KA,MAxKA,UAAAwqL,EAAAC,GASA,QAAAC,KACA,OAAA,GAAA30K,OAAAg/E,UAGA,QAAA41F,KACA,MAAApsL,QAAAygG,aAAAzgG,OAAAygG,YAAAx4E,QAAAjoB,OAAAygG,YAAAx4E,OAAAokK,gBACArsL,OAAAygG,YAAAx4E,OAAAokK,gBAEA,KA2BA,QAAAC,GAAAC,GAEA,OAAA,KAAAA,EAAAC,8BAAA,CACA,GAAAA,GAAAD,EAAAC,6BACAC,GAAAzwL,OAAAwwL,EAAA,EAEA,KAAA,GAAAzxL,GAAAyxL,EAAAzxL,EAAA0xL,EAAAjxL,OAAAT,IAAA,CACA,GAAA2xL,GAAAD,EAAA1xL,EAEA2xL,GAAAF,8BAAA,GAAAzxL,GACAysC,QAAAjzB,MAAA,wEACAm4K,EAAAF,8BAAA,QAAAzxL,EAAA,OAAAwxL,EAAAI,cAEAD,EAAAF,8BAAAzxL,IAKA,QAAA6xL,GAAAL,GACAD,EAAAC,EACA,IAAAM,GAAAprL,EAAA0wF,YAAAs6F,EAAAF,EAAA,mBACAE,GAAAzwL,OAAA6wL,EAAA,EAAAN,GACAA,EAAAC,8BAAAK,EAhEA,GACAC,MACAL,KACAM,EAAA,EACAC,EAAA,IACAC,EAcA,WACA,GAAAf,EACA,MAAAA,EAEA,IAAAgB,GAAAd,GACA,OAAAc,IAAAA,EAAA,GAAAF,EACAE,EAAA,GAEAF,IAIA/sL,MAAAuoL,eAAA,SAAA2E,GACA,GAAAC,GAAA,KACAzE,EAAAmE,EAAAK,EAMA,OALAxE,KACAyE,EAAAzE,EAAA7sJ,IACA6sJ,EAAA0E,iBAAAlB,IACAS,EAAAjE,IAEAyE,GA4BAntL,KAAAipL,YAAA,SAAAiE,EAAAC,EAAAnD,GACAhqL,KAAAqtL,WACA,IAAAC,GAAApB,IACAI,GACAzwJ,IAAAsxJ,EACAT,aAAAQ,EACAztC,KAAAuqC,EACAuD,SAAAvD,EAAAlmJ,KACA0pJ,kBAAAF,EACAF,iBAAAE,EACAG,QAAA,EAEAZ,GAAAK,GAAAZ,EACAK,EAAAL,GACAQ,GAAA9C,EAAAlmJ,MAGA9jC,KAAA0tL,cAAA,SAAAR,GACA,GAAAxE,GAAAmE,EAAAK,EACAxE,KACAsD,EAAA3xF,IAAAszF,gBAAAjF,EAAA7sJ,KACAixJ,GAAApE,EAAA6E,SACAlB,EAAA3D,SACAmE,GAAAK,KAIAltL,KAAA4tL,WAAA,WAGA,IAAA,GAAAV,KAAAL,GACA7sL,KAAA0tL,cAAAR,EAGA,IAAAJ,IACAvlJ,QAAAjzB,MAAA,0CAAAw4K,EAAA,qBACAvlJ,QAAAjzB,MAAAu4K,IAEAL,MAQAxsL,KAAA6tL,eAAA,WACA,IAAA,GAAAX,KAAAL,GAAA,CACAA,EAAAK,GACAO,QAAA,IAYAztL,KAAAqtL,UAAA,WACA,KAAAP,EAAAE,GAAA,CAGAzlJ,QAAAE,IAAA,uCAAAqlJ,EAMA,KAAA,GAAAhyL,GAAA,EAAAA,EAAA0xL,EAAAjxL,UACAuxL,EAAAE,GADAlyL,IAAA,CAIA,GAAAwxL,GAAAE,EAAA1xL,EACA,KAAAwxL,EAAAmB,OAAA,CACA,GAAAP,GAAAZ,EAAAI,YAIA1sL,MAAA0tL,cAAAR,GAWApyL,KAGAysC,QAAAE,IAAA,8BAAAqlJ,QAOA,SAAAtoK,EAAA5kB,GCzLA,gBAAApB,SAEAE,OAAAF,QAAAA,QAAAoB,IAEA,kBAAAhG,SAAAA,OAAA6F,IAEA7F,OAAA,mBAAAgG,GAIA4kB,EAAAspK,SAAAluL,KAEAI,KAAA,WAKA,GAAA8tL,GAAAA,GAAA,SAAAhiL,EAAA1M,GAIA,GAAAylC,GAAAhnC,OAAAgnC,QAAA,WACA,QAAA+I,MAEA,MAAA,UAAA7zC,GACA,GAAAgoL,EAQA,OANAn0I,GAAA9vC,UAAA/D,EAEAgoL,EAAA,GAAAn0I,GAEAA,EAAA9vC,UAAA,KAEAikL,MAOA93I,KAKA8jJ,EAAA9jJ,EAAA+jJ,OAKAC,EAAAF,EAAAE,KAAA,WAGA,OAmBA/lL,OAAA,SAAAgmL,GAEA,GAAAnM,GAAAl9I,EAAA7kC,KAoBA,OAjBAkuL,IACAnM,EAAAoM,MAAAD,GAIAnM,EAAAhkL,eAAA,SAAAiC,KAAAmN,OAAA40K,EAAA50K,OACA40K,EAAA50K,KAAA,WACA40K,EAAAqM,OAAAjhL,KAAA1Q,MAAAuD,KAAA1D,aAKAylL,EAAA50K,KAAArP,UAAAikL,EAGAA,EAAAqM,OAAApuL,KAEA+hL,GAeAl9I,OAAA,WACA,GAAA+jD,GAAA5oF,KAAAkI,QAGA,OAFA0gF,GAAAz7E,KAAA1Q,MAAAmsF,EAAAtsF,WAEAssF,GAeAz7E,KAAA,aAcAghL,MAAA,SAAAt+K,GACA,IAAA,GAAAw+K,KAAAx+K,GACAA,EAAA9R,eAAAswL,KACAruL,KAAAquL,GAAAx+K,EAAAw+K,GAKAx+K,GAAA9R,eAAA,cACAiC,KAAA+U,SAAAlF,EAAAkF,WAaA3L,MAAA,WACA,MAAApJ,MAAAmN,KAAArP,UAAAoK,OAAAlI,WAWAsuL,EAAAP,EAAAO,UAAAL,EAAA/lL,QAaAiF,KAAA,SAAAohL,EAAAC,GACAD,EAAAvuL,KAAAuuL,MAAAA,MAGAvuL,KAAAwuL,aAhLA,IA+KAA,EACAA,EAEA,EAAAD,EAAAhzL,QAiBAwZ,SAAA,SAAA05K,GACA,OAAAA,GAAAC,GAAAtiI,UAAApsD,OAcAlE,OAAA,SAAA6yL,GAEA,GAAAC,GAAA5uL,KAAAuuL,MACAM,EAAAF,EAAAJ,MACAO,EAAA9uL,KAAAwuL,SACAO,EAAAJ,EAAAH,QAMA,IAHAxuL,KAAAgvL,QAGAF,EAAA,EAEA,IAAA,GAAAh0L,GAAA,EAAAA,EAAAi0L,EAAAj0L,IAAA,CACA,GAAAm0L,GAAAJ,EAAA/zL,IAAA,KAAA,GAAAA,EAAA,EAAA,EAAA,GACA8zL,GAAAE,EAAAh0L,IAAA,IAAAm0L,GAAA,IAAAH,EAAAh0L,GAAA,EAAA,MAIA,KAAA,GAAAA,GAAA,EAAAA,EAAAi0L,EAAAj0L,GAAA,EACA8zL,EAAAE,EAAAh0L,IAAA,GAAA+zL,EAAA/zL,IAAA,EAMA,OAHAkF,MAAAwuL,UAAAO,EAGA/uL,MAUAgvL,MAAA,WAEA,GAAAT,GAAAvuL,KAAAuuL,MACAC,EAAAxuL,KAAAwuL,QAGAD,GAAAC,IAAA,IAAA,YAAA,GAAAA,EAAA,EAAA,EACAD,EAAAhzL,OAAAuQ,EAAAw1C,KAAAktI,EAAA,IAYAplL,MAAA,WACA,GAAAA,GAAA6kL,EAAA7kL,MAAAlP,KAAA8F,KAGA,OAFAoJ,GAAAmlL,MAAAvuL,KAAAuuL,MAAA1yL,MAAA,GAEAuN,GAgBA8M,OAAA,SAAAg5K,GAkBA,IAAA,GAAAC,GAjBAZ,KAiBAzzL,EAAA,EAAAA,EAAAo0L,EAAAp0L,GAAA,EAAA,CACA,GAAAs0L,GAhBA,SAAAC,GACA,GAAAA,GAAAA,EACAC,EAAA,UACAC,EAAA,UAEA,OAAA,YACAD,EAAA,OAAA,MAAAA,IAAAA,GAAA,IAAAC,EACAF,EAAA,MAAA,MAAAA,IAAAA,GAAA,IAAAE,CACA,IAAAz/K,IAAAw/K,GAAA,IAAAD,EAAAE,CAGA,OAFAz/K,IAAA,YACAA,GAAA,KACAhE,EAAAoK,SAAA,GAAA,GAAA,KAKA,YAAAi5K,GAAArjL,EAAAoK,UAEAi5K,GAAA,UAAAC,IACAb,EAAAhyL,KAAA,WAAA6yL,IAAA,GAGA,MAAA,IAAAd,GAAAnhL,KAAAohL,EAAAW,MAOAM,EAAAvlJ,EAAAwlJ,OAKAf,EAAAc,EAAAd,KAcAtiI,UAAA,SAAAuiI,GAOA,IAAA,GALAJ,GAAAI,EAAAJ,MACAC,EAAAG,EAAAH,SAGAkB,KACA50L,EAAA,EAAAA,EAAA0zL,EAAA1zL,IAAA,CACA,GAAA60L,GAAApB,EAAAzzL,IAAA,KAAA,GAAAA,EAAA,EAAA,EAAA,GACA40L,GAAAnzL,MAAAozL,IAAA,GAAA56K,SAAA,KACA26K,EAAAnzL,MAAA,GAAAozL,GAAA56K,SAAA,KAGA,MAAA26K,GAAA1zL,KAAA,KAgBA8+B,MAAA,SAAA80J,GAMA,IAAA,GAJAC,GAAAD,EAAAr0L,OAGAgzL,KACAzzL,EAAA,EAAAA,EAAA+0L,EAAA/0L,GAAA,EACAyzL,EAAAzzL,IAAA,IAAA89B,SAAAg3J,EAAA/5I,OAAA/6C,EAAA,GAAA,KAAA,GAAAA,EAAA,EAAA,CAGA,OAAA,IAAAwzL,GAAAnhL,KAAAohL,EAAAsB,EAAA,KAOAC,EAAAN,EAAAM,QAcA1jI,UAAA,SAAAuiI,GAOA,IAAA,GALAJ,GAAAI,EAAAJ,MACAC,EAAAG,EAAAH,SAGAuB,KACAj1L,EAAA,EAAAA,EAAA0zL,EAAA1zL,IAAA,CACA,GAAA60L,GAAApB,EAAAzzL,IAAA,KAAA,GAAAA,EAAA,EAAA,EAAA,GACAi1L,GAAAxzL,KAAAikB,OAAAC,aAAAkvK,IAGA,MAAAI,GAAA/zL,KAAA,KAgBA8+B,MAAA,SAAAk1J,GAMA,IAAA,GAJAC,GAAAD,EAAAz0L,OAGAgzL,KACAzzL,EAAA,EAAAA,EAAAm1L,EAAAn1L,IACAyzL,EAAAzzL,IAAA,KAAA,IAAAk1L,EAAAn7I,WAAA/5C,KAAA,GAAAA,EAAA,EAAA,CAGA,OAAA,IAAAwzL,GAAAnhL,KAAAohL,EAAA0B,KAOAC,EAAAV,EAAAU,MAcA9jI,UAAA,SAAAuiI,GACA,IACA,MAAAnyH,oBAAA3C,OAAAi2H,EAAA1jI,UAAAuiI,KACA,MAAAlwL,GACA,KAAA,IAAAtB,OAAA,0BAiBA29B,MAAA,SAAAq1J,GACA,MAAAL,GAAAh1J,MAAA4hC,SAAA98B,mBAAAuwJ,OAWAC,EAAArC,EAAAqC,uBAAAnC,EAAA/lL,QAQA0d,MAAA,WAEA5lB,KAAAgrB,MAAA,GAAAsjK,GAAAnhL,KACAnN,KAAAqwL,YAAA,GAaAC,QAAA,SAAApuL,GAEA,gBAAAA,KACAA,EAAAguL,EAAAp1J,MAAA54B,IAIAlC,KAAAgrB,MAAAlvB,OAAAoG,GACAlC,KAAAqwL,aAAAnuL,EAAAssL,UAiBA+B,SAAA,SAAAC,GAEA,GAAAtuL,GAAAlC,KAAAgrB,MACAylK,EAAAvuL,EAAAqsL,MACAmC,EAAAxuL,EAAAssL,SACAmC,EAAA3wL,KAAA2wL,UACAC,EAAA,EAAAD,EAGAE,EAAAH,EAAAE,CAGAC,GAFAL,EAEA1kL,EAAAw1C,KAAAuvI,GAIA/kL,EAAAC,KAAA,EAAA8kL,GAAA7wL,KAAA8wL,eAAA,EAIA,IAAAC,GAAAF,EAAAF,EAGAK,EAAAllL,EAAAk/B,IAAA,EAAA+lJ,EAAAL,EAGA,IAAAK,EAAA,CACA,IAAA,GAAA5uJ,GAAA,EAAAA,EAAA4uJ,EAAA5uJ,GAAAwuJ,EAEA3wL,KAAAixL,gBAAAR,EAAAtuJ,EAIA,IAAA+uJ,GAAAT,EAAA10L,OAAA,EAAAg1L,EACA7uL,GAAAssL,UAAAwC,EAIA,MAAA,IAAA1C,GAAAnhL,KAAA+jL,EAAAF,IAYA5nL,MAAA,WACA,GAAAA,GAAA6kL,EAAA7kL,MAAAlP,KAAA8F,KAGA,OAFAoJ,GAAA4hB,MAAAhrB,KAAAgrB,MAAA5hB,QAEAA,GAGA0nL,eAAA,IA2IAK,GAnIApD,EAAAqD,OAAAhB,EAAAloL,QAIA3I,IAAA0uL,EAAA/lL,SAWAiF,KAAA,SAAA5N,GAEAS,KAAAT,IAAAS,KAAAT,IAAA2I,OAAA3I,GAGAS,KAAA4lB,SAUAA,MAAA,WAEAwqK,EAAAxqK,MAAA1rB,KAAA8F,MAGAA,KAAAqxL,YAeAn3E,OAAA,SAAAo3E,GAQA,MANAtxL,MAAAswL,QAAAgB,GAGAtxL,KAAAuwL,WAGAvwL,MAiBAuxL,SAAA,SAAAD,GASA,MAPAA,IACAtxL,KAAAswL,QAAAgB,GAIAtxL,KAAAwxL,eAKAb,UAAA,GAeAc,cAAA,SAAAr+F,GACA,MAAA,UAAA1jB,EAAAnwE,GACA,MAAA,IAAA6zF,GAAAjmF,KAAA5N,GAAAgyL,SAAA7hH,KAiBAgiH,kBAAA,SAAAt+F,GACA,MAAA,UAAA1jB,EAAAztE,GACA,MAAA,IAAAkvL,GAAAQ,KAAAxkL,KAAAimF,EAAAnxF,GAAAsvL,SAAA7hH,OAQAzlC,EAAA2nJ,QAEA,OAAA3nJ,IACAn+B,KAGA,OAAAgiL,KAGAl0L,OAAA,YAAA,iBAAA,SAAAsD,GAAA,MAAAA,KAEA,SAAAsnB,EAAA5kB,GCzvBA,gBAAApB,SAEAE,OAAAF,QAAAA,QAAAoB,EAAAjG,QAAA,WAEA,kBAAAC,SAAAA,OAAA6F,IAEA7F,OAAA,iBAAA,UAAAgG,GAIAA,EAAA4kB,EAAAspK,WAEA9tL,KAAA,SAAA8tL,GAsIA,MApIA,YAEA,GAAA7jJ,GAAA6jJ,EACAC,EAAA9jJ,EAAA+jJ,IACAM,EAAAP,EAAAO,UACA8C,EAAArD,EAAAqD,OACAD,EAAAlnJ,EAAA2nJ,KAGAC,KAKAC,EAAAX,EAAAW,KAAAV,EAAAlpL,QACAmpL,SAAA,WACArxL,KAAA+xL,MAAA,GAAAzD,GAAAnhL,MACA,WAAA,WACA,WAAA,UACA,cAIA8jL,gBAAA,SAAA5nI,EAAAlnB,GAYA,IAAA,GAVA6vJ,GAAAhyL,KAAA+xL,MAAAxD,MAGAv0K,EAAAg4K,EAAA,GACA/3K,EAAA+3K,EAAA,GACA3tJ,EAAA2tJ,EAAA,GACAntH,EAAAmtH,EAAA,GACAvzL,EAAAuzL,EAAA,GAGAl3L,EAAA,EAAAA,EAAA,GAAAA,IAAA,CACA,GAAAA,EAAA,GACA+2L,EAAA/2L,GAAA,EAAAuuD,EAAAlnB,EAAArnC,OACA,CACA,GAAAuD,GAAAwzL,EAAA/2L,EAAA,GAAA+2L,EAAA/2L,EAAA,GAAA+2L,EAAA/2L,EAAA,IAAA+2L,EAAA/2L,EAAA,GACA+2L,GAAA/2L,GAAAuD,GAAA,EAAAA,IAAA,GAGA,GAAAyuB,IAAA9S,GAAA,EAAAA,IAAA,IAAAvb,EAAAozL,EAAA/2L,EAEAgyB,IADAhyB,EAAA,GACA,YAAAmf,EAAAoqB,GAAApqB,EAAA4qD,GACA/pE,EAAA,GACA,YAAAmf,EAAAoqB,EAAAwgC,GACA/pE,EAAA,IACAmf,EAAAoqB,EAAApqB,EAAA4qD,EAAAxgC,EAAAwgC,GAAA,YAEA5qD,EAAAoqB,EAAAwgC,GAAA,UAGApmE,EAAAomE,EACAA,EAAAxgC,EACAA,EAAApqB,GAAA,GAAAA,IAAA,EACAA,EAAAD,EACAA,EAAA8S,EAIAklK,EAAA,GAAAA,EAAA,GAAAh4K,EAAA,EACAg4K,EAAA,GAAAA,EAAA,GAAA/3K,EAAA,EACA+3K,EAAA,GAAAA,EAAA,GAAA3tJ,EAAA,EACA2tJ,EAAA,GAAAA,EAAA,GAAAntH,EAAA,EACAmtH,EAAA,GAAAA,EAAA,GAAAvzL,EAAA,GAGA+yL,YAAA,WAEA,GAAAtvL,GAAAlC,KAAAgrB,MACAylK,EAAAvuL,EAAAqsL,MAEA0D,EAAA,EAAAjyL,KAAAqwL,YACA6B,EAAA,EAAAhwL,EAAAssL,QAYA,OATAiC,GAAAyB,IAAA,IAAA,KAAA,GAAAA,EAAA,GACAzB,EAAA,IAAAyB,EAAA,KAAA,GAAA,IAAApmL,KAAAo/B,MAAA+mJ,EAAA,YACAxB,EAAA,IAAAyB,EAAA,KAAA,GAAA,IAAAD,EACA/vL,EAAAssL,SAAA,EAAAiC,EAAAl1L,OAGAyE,KAAAuwL,WAGAvwL,KAAA+xL,OAGA3oL,MAAA,WACA,GAAAA,GAAAgoL,EAAAhoL,MAAAlP,KAAA8F,KAGA,OAFAoJ,GAAA2oL,MAAA/xL,KAAA+xL,MAAA3oL,QAEAA,IAkBA6gC,GAAA6nJ,KAAAV,EAAAK,cAAAK,GAgBA7nJ,EAAAkoJ,SAAAf,EAAAM,kBAAAI,MAIAhE,EAAAgE,OCtIAl4L,OAAA,4CAAA,iBAAA,SAAAw4L,GAEA,GAAAC,GAAA,SAAAC,GAUA,QAAAC,GAAA9yC,EAAA3gJ,GACA,GAAA0zL,GAAA,GAAAnxC,WACAmxC,GAAA9xJ,OAAA,WACA,GAAAwlJ,GAAAlmL,KAAA8P,MACAhR,GAAA,GAAAyhJ,YAAA2lC,KAEAsM,EAAAlxC,kBAAA7B,GAGA,QAAAgzC,GAAAC,EAAAC,EAAAC,EAAA9zL,GAEAyzL,EADAG,EAAA72L,MAAA,EAAA82L,GACA,SAAAxyC,GAEA,IAAA,GADA0yC,GAAAD,EAAAr3L,OACAT,EAAA,EAAAA,EAAA63L,EAAA73L,IACAqlJ,EAAArlJ,GAAAqlJ,EAAArlJ,GAAA83L,EAAA93L,EAAA+3L,EAEA,IAAAC,GAAA,GAAAjyF,OAAAs/C,IAAAhgJ,KAAAuyL,EAAAvyL,OACA4yL,EAAAL,EAAA72L,MAAA82L,GACAK,EAAA,GAAAnyF,OAAAiyF,EAAAC,IACA5yL,KAAAuyL,EAAAvyL,MAEArB,GAAAk0L,KAIA,QAAAC,GAAAP,EAAA5zL,GAMA2zL,EAAAC,EAJA,KAIAJ,EAAAY,QAAAp0L,GAGA,QAAAq0L,GAAAx0L,GACA,GAAAy0L,GAAA,sFACAC,EAAAD,EAAA7vL,KAAA5E,GACA20L,EAAAD,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,EACAC,IAAA,IAAAA,EAAA/3L,QACAgsC,QAAAjzB,MAAA,2BAAA3V,EAGA,KAAA,GADA40L,MACAz4L,EAAA,EAAAA,EAAA,GAAAA,IAAA,CACA,GAAA04L,GAAAF,EAAAz9I,OAAA,EAAA/6C,EAAA,GACA24L,EAAA76J,SAAA46J,EAAA,GACAD,GAAAh3L,KAAAk3L,GAEA,MAAAF,GAGA,QAAAG,GAAAhB,EAAA5zL,GAMA2zL,EAAAC,EAFA,KADAS,EAAAb,EAAAvwL,KAGAjD,GAjEA,GAAAmK,GAAAjJ,KAEA2zL,GACAC,qCAAAX,EACAY,iCAAAH,EAmEA1zL,MAAA8zL,sBAAA,WACA,MAAAxB,IAAAA,EAAAyB,aAIA/zL,KAAAg0L,mCAAA,SAAAC,GACA,MAAAhrL,GAAA6qL,wBACAxB,EAAAyB,YAAAE,OAEA,IAIAj0L,KAAAo/I,qCAAA,SAAA60C,GAEA,GAAAC,GAAAjrL,EAAA+qL,mCAAAC,EAIA,OAAAC,IAAAP,EAAAO,GACAP,EAAAO,OAEA,IAwDA,OAlDA7B,GAAA8B,qBAAA,SAAAx1L,EAAAy1L,GASA,IAAA,GAPA5xD,GAAA9lE,SAAA98B,mBAAAjhC,EAAAkY,SACAw9K,EAAAjC,EAAA5vD,GAIA+wD,KAEAz4L,EAAA,EAAAA,EAAAu5L,EAAA7F,SAAA1zL,IACAy4L,EAAAh3L,KAAA83L,EAAA9F,MAAAzzL,IAAA,KAAA,GAAAA,EAAA,EAAA,EAAA,IASA,IAAAw3L,IACAvwL,IAAApD,EACAu0L,QAAAK,EACAQ,gBAAA30L,GAyBA,OAtBA8kC,GAAA,gBAAAkwJ,GACA/yL,KAAA,SAAA/D,EAAAg3L,GACA,GAAAC,GAAArwJ,EAAA,mBAAAowJ,GAAA7rL,QAAA8Z,KAAA,YAGA2hB,GAAA,kBAAAowJ,GACAjzL,KAAA,SAAA/D,EAAAk3L,GAGA,GAAAC,GAAAvwJ,EAAAswJ,GAAAjyK,KAAA,MAEAglB,SAAAE,IAAA,oCAAA8sJ,EAAA,kBACAE,GAEAnC,EAAAyB,cACAzB,EAAAyB,gBAGAzB,EAAAyB,YAAAU,GAAAF,MAIAjC,GAGAD,ICxJAz4L,OAAA,6CAAA,SAAA,QAAA,kBAAA,2BAAA,yBACA,6BAAA,mBAAA,uBAAA,0BAAA,6BACA,SAAAsqC,EAAA40B,EAAA47H,EAAAC,EAAAC,EAAAC,EACAC,EAAAzC,EAAA/0C,EAAA58C,GA2aA,MAzaA,UAAAE,EAAAm0F,EAAA/I,EAAAgB,EAAA7F,EAAAjrJ,GA+CA,QAAA84J,KAEA,GAAAp0F,YAAAC,OAAAD,YAAAE,MAAA,OAAA,CAEA,IAAAm0F,IAEAA,EAAA13L,QAAA,yBAAA,GAEA03L,EAAA13L,QAAA,oBAAA,GAEA03L,EAAA13L,QAAA,6BAAA,GAEA,OAAA,CAEA,IAAA23L,GAAAt0F,CAEA,KAEAs0F,EAAA,GAAAp8H,GAAAo8H,GAAAvkJ,OAAA,IAAArsB,KAAA,IAAAvP,WACA,MAAAzO,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAAm5D,GAIA,OAAA,cAAAllG,KAAAw5L,GAMA,QAAAC,GAAAH,EAAAl2L,GACAk2L,GACAztJ,QAAAE,IAAA,mCACA2tJ,EAAA,GAAAT,GAAA1rL,GACAnK,EAAAs2L,KAEA7tJ,QAAAE,IAAA,iCACA2tJ,EAAA,GAAAR,GAAA3rL,EAAA8rL,GACAj2L,EAAAs2L,IApFA,GAAAnsL,GAAAjJ,IAEAiJ,GAAAosL,mCACAC,gCAAA,WACAC,uBAAA,SACAC,kBAAA,SAGA,IAAAC,GACAL,EACAM,EACAC,EACAC,EACAC,EACAC,EACAxN,EAAA,GAAAwM,GAAA9I,EAAAgB,GAEAxB,EAAArE,EACA8N,EAAA/4J,CAEAl8B,MAAA8rL,aAAA,GAAA4I,GAEA10L,KAAAo5F,WAAA,SAAAt6F,GAEA,GAAAi3L,GAAAf,GAGAS,IAAAM,EACAxuJ,QAAAE,IAAA,6CAAAguJ,GAEAN,EAAAY,EAAA,SAAAC,GAIA/sL,EAAAgtL,cACA,WAAAn3L,EAAAk3L,IACA,SAAA1hL,GAAAizB,QAAAjzB,MAAA,oCAAAA,GAAAxV,MAAAM,SAgEAY,KAAAk2L,mCAAA,WAEA,MAAAT,IAYAz1L,KAAA+rL,uCAAA,WAGA,MADA0J,KAAAT,KAIAh1L,KAAA6+I,YAAA,WACA,MAAAj+C,IAGA5gG,KAAA8+I,qBAAA,WAEA,MAAAp+C,GAAAC,oBAAAC,IAGA5gG,KAAAm2L,aAAA,WACA,MAAApB,IAGA/0L,KAAA4tL,WAAA,WACAtF,EAAAsF,cAIA5tL,KAAAo2L,cAAA,WACA,MAAAR,IAGA51L,KAAAq2L,iCAAA,WACA,MAAAV,IAGA31L,KAAAs2L,qBAAA,SAAAltE,EAAAE,EAAAoiE,EAAAprJ,GAKAgoJ,EAAAuF,iBAGA,GAAAgH,GAAA5rL,EAAAmgH,EAAAlkB,UAAAokB,EAAAg/D,EAAAkD,GACAC,kCAAAC,EAAAprJ,IAGAtgC,KAAAu2L,2BAAA,SAAAC,EAAA13L,EAAA6hC,GAKAg1J,EASA1sL,EAAAw/K,mCAAA+N,EAAA,OAAA,SAAAC,GACA33L,EAAA23L,IACA91J,IAVA4G,QAAAC,MAAA,uBAAAgvJ,GACAA,GAAA,KAAAA,EAAA56L,OAAA,KACA46L,EAAAA,EAAA3gJ,OAAA,IAEAu/I,EAAAp2C,sBAAAw3C,EAAA,SAAAC,GACA33L,EAAA23L,IACA91J,KAUA3gC,KAAA02L,cAAA,SAAAC,EAAA73L,EAAA6hC,GACA13B,EAAAstL,2BAAAI,EAAA,SAAAC,GACA,GAAAC,GAAA5tL,EAAA6iL,aAAA7uC,SAAA25C,EACA93L,GAAA+3L,IACAl2J,IAGA3gC,KAAA82L,mBAAA,SAAAh4L,EAAA6hC,GACA13B,EAAAytL,cAAA,0BAAA,SAAAK,GACA,GAAAC,GAAA/tL,EAAAguL,YAAAF,EACAj4L,GAAAk4L,IACAr2J,IAGA3gC,KAAAi3L,YAAA,SAAAF,GAGA,MAFA7yJ,GAAA,WAAA6yJ,GACAx0K,KAAA,cAIAviB,KAAAi2L,cAAA,SAAAn3L,EAAA6hC,GACAk1J,EACA/2L,EAAA+2L,GAKAC,EACAA,EAAAzmL,KAAAvQ,IAEAg3L,EAAA5xJ,EAAAh0B,WACA4lL,EAAAzmL,KAAAvQ,GACAmK,EAAA6tL,mBAAA,SAAAE,GAEArB,EAAAqB,EACApB,EAAAR,EAAA12C,WAAAi3C,GAEApuJ,QAAAC,MAAA,aACAD,QAAAE,IAAAkuJ,GACApuJ,QAAAE,IAAAmuJ,GAEAoB,GAAA,KAAAA,EAAAp7L,OAAA,KACAo7L,EAAA,IAAAA,GAGA/tL,EAAAytL,cAAAM,EAAA,SAAAzrE,GACAsqE,EAAAtqE,EACAuqE,EAAA9sK,QAAAuiG,GACAuqE,MAAA12L,MAEAuhC,KAQA3gC,KAAAkoL,6CAAA,SAAAgP,GAEA,MAAA,IAAAp+H,GAAAo+H,GAAAj+H,WAAA08H,GAAA5gL,YAMA/U,KAAAyoL,mCAAA,SAAAyO,EAAAvP,EAAA1oC,EAAA3+G,GAEA,GAAA62J,GAAA36H,mBAAAvzD,EAAAi/K,6CAAAgP,GAEA3vJ,SAAAC,MAAA,gBAAA2vJ,GAGA,MAAAA,EAAAv7L,OAAA,KACAu7L,EAAAA,EAAAthJ,OAAA,GAGA,IAAAlV,GAAA,WAEA,GAAAr6B,GAAAhK,UAEAA,UAAAf,QAAAe,UAAA,YAAAa,OACAb,UAAA,GACAA,oBAAAa,OAAAb,cAAA8C,OAEAA,GAIAg4L,EAAA,GAAAD,EAAA55L,QAAA,kDACA,GAAA45L,EAAA55L,QAAA,0BAEAgqC,SAAAE,IAAA,YAAA0vJ,GAEAC,GACA9wL,IACAihC,QAAAjzB,MAAAhO,GAEAA,EAAAopE,SACAnoC,QAAAC,MAAAlhC,EAAAopE,SAEAppE,EAAAs/E,OACAr+C,QAAAE,IAAAnhC,EAAAs/E,QAKAtlD,GAAAA,EAAA7jC,MAAAuD,KAAA1D,WAKA,IACAm5L,GAEA,KAAA,GAAA38H,GAAAo+H,GAAAr0H,SAIA,GAFAt7B,QAAAE,IAAA,4DAEA,SAAAkgJ,EAAA,CAEA,GAAA5nJ,GAAA,GAAAC,eACAD,GAAAQ,KAAA,MAAA22J,GAAA,GACAn3J,EAAAe,aAAA,cACAf,EAAAY,QAAAA,EAEAZ,EAAAW,OAAA,SAAAi+G,GACA,GAAAc,GAAA,GAAA5+C,OAAA9gE,EAAAnsB,WACAzT,KAAAm9I,EAAAW,gCAAAi5C,IAEAj4C,GAAAQ,IAGA1/G,EAAAhB,WAEA,cAAA4oJ,EACApgJ,QAAAjzB,MAAA,eAGA4vB,EAAArH,MAMAf,SAAA,EACAD,IAAAq7J,EACAnlL,SAAA,OACAkqB,OAAA,EACAgB,QAAA,SAAAntB,GACAmvI,EAAAnvI,IAEAwE,MAAA,SAAAyrB,EAAAjD,EAAA8uF,GACAjrF,EAAA,GAAAxjC,OAAAyuH,WAzCA,CAiDA,GAAAyrE,GAAAjC,EAAAp2C,qBACA,UAAA2oC,EACA0P,EAAAjC,EAAAl2C,sBACA,cAAAyoC,IACApgJ,QAAAjzB,MAAA,eACA+iL,EAAAjC,EAAApO,4BAGAqQ,EAAAn9L,KAAAk7L,EAAA+B,EAAAl4C,EAAAt+G,KAKA3gC,KAAAs3L,sBAAA,SAAAC,EAAAz4L,EAAAwhC,GACAr3B,EAAAytL,cAAAztL,EAAAi/K,6CAAAqP,GAAAz4L,EAAAwhC,IAsCAtgC,KAAAw3L,mBAAA,SAAAttD,EAAAutD,GAEAxuL,EAAAytL,cAAA,2BAAA,SAAAtC,GAEA,GAAA9B,GAAAD,EAAA8B,qBAAAjqD,EAAAvrI,GAAAy1L,EAEAsB,GAAA,GAAArD,GAAAC,GAEAoD,EAAA5B,0BAEA2B,GAAA,EACAluJ,QAAAE,IAAA,0DAAAguJ,IAGAgC,KAGA,SAAAnjL,GAEAohL,EAAA,GAAArD,OAAAjzL,IAEAq4L,OAIAz3L,KAAAo/I,qCAAA,SAAA60C,GACA,MAAAyB,GAAAt2C,qCAAA60C,OC1aAr6L,OAAA,0CAAA,SAAA,aAAA,QAAA,kBACA,SAAAsqC,EAAA1iC,EAAAs3D,EAAA4+H,GA4MA,MAzMA,UAAAC,EAAAC,EAAA5B,EAAA9kD,EAAAn2C,EAAA88F,GAmKA,QAAAC,GAAAC,GAEA,GAAAC,GAAA9zJ,EAAA,YAIA,OAHAA,GAAA7iC,KAAA02L,EAAA9wK,SAAA,YAAA,SAAA3pB,EAAA26L,GACAC,EAAAh0J,EAAA+zJ,GAAAD,KAEAA,EAKA,QAAAE,GAAAC,EAAAH,GAGA,GAAAI,GAAAD,EAAAlxK,SAAA,YAAAnQ,OAAAD,OACAwhL,EAAAF,EAAAlxK,SAAA,WAAA1E,KAAA,OACA+1K,EAAAp0J,EAAA,8BAAA5S,OACA4S,EAAA,WAAAvf,KAAA0zK,EAAAvhL,KAAAshL,IAOA,IAHAJ,EAAA1mK,OAAAgnK,GAGAH,EAAAlxK,SAAA,YAAA1rB,OAAA,EAAA,CAEA,GAAAg9L,GAAAr0J,EAAA,aACAs0J,EAAAt0J,EAAA,YACAA,GAAA7iC,KAAA82L,EAAAlxK,SAAA,YAAA,SAAAwxK,EAAAR,GACAO,EAAAlnK,OAAA4mK,EAAAh0J,EAAA+zJ,GAAAO,MAGAD,EAAAjnK,OAAAknK,GACAR,EAAA1mK,OAAAinK,IAlMA,GAAAG,EAEA14L,MAAA63L,SAAAA,EAEA73L,KAAA24L,uBAAA,WAGA,OACAjvD,QAFAiuD,EAAA9hJ,OAAA,EAAA8hJ,EAAAtpI,YAAA,MAGAkwC,mBAAA2yC,EAAA3yC,mBACAG,iBAAAwyC,EAAAxyC,iBACAD,sBAAAyyC,EAAAzyC,sBACAE,eAAAuyC,EAAAvyC,eACAH,iBAAA0yC,EAAA1yC,iBACAggC,cAAA0S,EAAA1S,cACAzjC,OACA1jD,UAAAr3C,KAAA44L,8BACA5iJ,MAAA+kD,GAEAm2C,SAAAA,IASAlxI,KAAAq0I,aAAA,SAAAryD,GAEA,MADA+Y,GAAA/Y,IAQAhiF,KAAA64L,yBAAA,SAAAC,GACA,GAAAC,GAAArB,EAAA35G,+BAAA,WAAA+6G,EAAA,IAAAlB,EACA,IAAAmB,EAAAx9L,OACA,MAAAw9L,GAAA,GAAA12L,aAAA,UAIArC,KAAAg5L,4BAAA,SAAAC,GACAP,EAAAO,GAIAj5L,KAAA44L,4BAAA,WACA,MAAA,QAAAF,EACA,MAEA,YAAAA,EACA,UAGA,OAIA14L,KAAAk5L,YAAA,WACA,MAAAn+F,GAAAx/F,QAGAyE,KAAAm5L,YAAA,WACA,MAAAjoD,IAIAlxI,KAAAo5L,WAAA,WAEA,GAAA3pG,GAAAooG,EAAAwB,YACA,IAAA5pG,EACA,MAAAA,EAGA,IAAA6pG,GAAApoD,EAAA0M,GACA,OAAA07C,IAAAA,EAAA/9L,OAAA,EACAs8L,EAAA0B,uBAAAD,GAGA,MAGAt5L,KAAAw5L,OAAA,WACA,GAAA/pG,GAAAzvF,KAAAo5L,YACA,OAAA3pG,GACAA,EAAA9qE,KAEA,MAGA3kB,KAAAy5L,WAAA,SAAA36L,GACA,GAAA46L,GAAA15L,KAAAw5L,QACA,KAAAE,EAGA,MAFAnyJ,SAAAjzB,MAAA,gBACAxV,OAAAM,GAIA42L,GAAAvN,mCAAAiR,EAAA,OAAA,SAAAC,GACA76L,EAAA66L,IACA,SAAArzL,GACAihC,QAAAjzB,MAAA,4BAAAolL,EAAA,MACAnyJ,QAAAjzB,MAAAhO,GACAxH,MAAAM,OAIAY,KAAA45L,UAAA,SAAA96L,GAEAkB,KAAAy5L,WAAA,SAAAI,GACA,GAAA,gBAAAA,GAAA,CACA,GAAAC,IAAA,GAAA9+J,YAAAC,gBAAA4+J,EAAA,WACA/6L,GAAAg7L,OAEAh7L,OAAAM,OAQAY,KAAA+5L,mBAAA,SAAAj7L,GACA,GAAAqmF,GAAAnlF,IACAA,MAAA45L,UAAA,SAAAE,GACA,GAAAA,EACA,GAAA30G,EAAA60G,WAAA,CACA,GAAAC,EACAA,GAAAnC,EAAA5zJ,EAAA,SAAA41J,IACAh7L,EAAAm7L,EAAA,QACA,CACA,GAAAC,GAAA,GAAAphI,GAAA6+H,GAAA1+H,WAAAp5D,SAAAw6F,KACA8/F,EAAA,GAAArhI,GAAAqsB,EAAAq0G,UAAAvgI,WAAAihI,GAGAE,GADAl2J,EAAA41J,GAAAtwL,OAAA,QACA06B,EAAA,iBACAA,GAAAk2J,GAAA73K,KAAA,OAAA43K,GACAj2J,EAAA41J,GAAAl8K,KAAA,QAAA0T,OAAA8oK,GAEAt7L,EAAAg7L,OAGAh7L,OAAAM,OAKAY,KAAAg6L,SAAA,WAEA,GAAAK,GAAAr6L,KAAAo5L,aACAkB,EAAAD,EAAA11K,IAGA,OAAA,QAFA21K,EAAAzkJ,OAAAykJ,EAAAjsI,YAAA,KAAA,GAEAx3C,OAAAzU,kBClKAxI,OAAA,8CAAA,SAAA,cAAA,SAAAsqC,EAAA1iC,GAKA,GAAA+4L,GAAA,SAAA7tH,EAAAu6G,GAyHA,QAAAuT,GAAAt1F,GACA,OACAvmG,GAAA,GACAgmB,KAAA,GACAikG,YAAA1jB,EAAAv4B,MACA1lD,WACArmB,SAAA,MACAwtH,QAAAlpB,EAAAvgF,KACAsC,WACArmB,SAAA,MACAqmB,WACArmB,SAAA,OACA4G,IAAA09F,EAAAvgF,KACA2pG,QAAAppB,EAAAvgF,KACA+nG,cAAA,UApIA1sH,KAAA86B,MAAA,SAAAoqE,EAAAu1F,EAAAC,EAAAzqL,EAAAnR,EAAAwhC,GACA,GAAA6kD,GAAAnlF,KAEA2kB,EAAAsiK,EAAAiB,6CAAAuS,EAAA91K,KAEA,MAAAA,EAAA/oB,OAAA,KACA+oB,EAAA,IAAAA,GAGAsiK,EAAAyP,cAAA/xK,EAAA,SAAAg2K,GAEA,GAAAruE,GAAApoF,EAAA,OAAAy2J,GAAA,EACAD,GAAAnyD,YAAAjc,EAAAjqH,aAAA,WAGAq4L,EAAAzzK,SAAAk+D,EAAA29F,YAAAx2D,GACAouE,EAAA/1K,KAAA81K,EAAA91K,KACA+1K,EAAA/7L,GAAA87L,EAAA97L,GACA+7L,EAAA9xE,YAAA1jB,EAAAv4B,KAEA,IAAAiuH,GAAAluH,EAAAysH,cAAA0B,wBAAAJ,EAAA97L,GACAi8L,KACAF,EAAAnqL,SAAAqqL,EAAArqL,UAGAzR,EAAAmR,EAAAyqL,IACA,SAAAI,GACAx6J,EAAArwB,EAAA6qL,KAIA,IAAAtyD,GAAA,SAAA9+F,EAAAqxJ,EAAAC,EAAAvyD,EAAAngI,GACA,GAAA2yL,GAAAvxJ,EAAAvuC,MAAA,KACA+/L,EAAAD,EAAAA,EAAA1/L,OAAA,EAEA,UAAA2/L,IACAA,EAAA,gBAGA97L,IAAA27L,EAAA14L,aAAAqnC,GACAsxJ,EAAAE,GAAAH,EAAA14L,aAAAqnC,GACA++F,QACArpI,KAAAkJ,EACA0yL,EAAAE,GAAA5yL,EAEAi/B,QAAAE,IAAA,qBAAAiC,EAAA,2BAAAqxJ,EAAA/2L,WAKAhE,MAAA8iL,YAAA,SAAAt3G,GACA,GAAA2Z,GAAAnlF,KACAinB,IAYA,OAVAid,GAAA7iC,KAAAmqE,EAAA7lE,WAAA,SAAAw1L,EAAAC,GAEA,GAAA,IAAAA,EAAAx6L,SAAA,CACA,GAAA6uF,GAAAtK,EAAAk2G,sBAAAD,EACA3rG,IACAxoE,EAAA1qB,KAAAkzF,MAKAxoE,GAGAjnB,KAAAq7L,sBAAA,SAAA7vH,GACA,GAAA2Z,GAAAnlF,KAEAyvF,IACAA,GAAA7uF,SAAA4qE,EAAAxnE,QAEA,IAAAs3L,IAAA,CAOA,IANA,SAAA7rG,EAAA7uF,WAEA06L,GAAA,EACA7rG,EAAA7uF,SAAA,OAGA,QAAA6uF,EAAA7uF,SAEA4nI,EAAA,eAAAh9D,EAAAikB,GAAA6rG,GACA9yD,EAAA,KAAAh9D,EAAAikB,GACA+4C,EAAA,YAAAh9D,EAAAikB,GAEAA,EAAAxoE,SAAAk+D,EAAA29F,YAAAt3G,OAEA,IAAA,QAAAikB,EAAA7uF,SAEA4nI,EAAA,KAAAh9D,EAAAikB,GACA+4C,EAAA,YAAAh9D,EAAAikB,GAEAA,EAAAxoE,SAAAk+D,EAAA29F,YAAAt3G,OAEA,IAAA,SAAAikB,EAAA7uF,SAAA,CAEA4nI,EAAA,MAAAh9D,EAAAikB,GAAA,EACA,IAAA8rG,GAAA9rG,EAAAjoF,IAAArM,MAAA,IACAs0F,GAAA6+B,QAAAitE,EAAA,GACA9rG,EAAAi9B,cAAA,IAAA6uE,EAAAhgM,OAAAggM,EAAA,GAAA,GACA/yD,EAAA,KAAAh9D,EAAAikB,OAGA,CAAA,GAAA,UAAAA,EAAA7uF,SAQA,MAPA4nI,GAAA,MAAAh9D,EAAAikB,GAAA,GACA+4C,EAAA,KAAAh9D,EAAAikB,GACAA,EAAAguC,UAAA88D,EAAAiB,kBAAAhwH,EAAAnpE,aAAA,cACAotF,EAAA0tC,QAAAo9D,EAAAiB,kBAAAhwH,EAAAnpE,aAAA,YAOA,MAAAotF,IAwBAzvF,KAAAy7L,aAAA,SAAA38L,GACA,GAAAqmF,GAAAnlF,IAEA,IAAA0sE,EAAAwsH,eAAA,EAEA,WADAp6L,IAQA,KAAA,GAJA48L,IAAA,EACAC,KACAC,KAEAC,EAAA,EAAAA,EAAAnvH,EAAAwsH,cAAA2C,IAAA,CACA,GAAA32F,GAAAx4B,EAAA2nE,aAAAwnD,EAEA,IAAA32F,EAAAtG,iBAAA,CACA,GAAA67F,GAAA/tH,EAAAmrH,SAAA0B,uBAAAr0F,EAAAtG,iBAEA,KAAA67F,EAAA,CACAlzJ,QAAAjzB,MAAA,4DAAA4wF,EAAAtG,iBACA,UAIA,GAAAk9F,GAAA53J,EAAAh0B,UACA4rL,GAAAl9F,iBAAAsG,EAAAtG,iBACAg9F,EAAAr/L,KAAAu/L,EACA,IAAApB,KAGAiB,GAAAp/L,KAAAm+L,GAIAv1G,EAAArqD,MAAAoqE,EAAAu1F,EAAAC,EAAAoB,EAAA,SAAAC,EAAArB,GACAgB,GAAA,EACAK,EAAA/yK,WACA,SAAA+yK,EAAAC,GACAz0J,QAAAE,IAAA,yCAAAgzJ,EAAA91K,KAAA,KACA4iB,QAAAE,IAAAu0J,GACAD,EAAA/yK,gBAGA2yK,GAAAp/L,KAAAi+L,EAAAt1F,IAIAhhE,EAAA9a,KAAA3sB,MAAAynC,EAAA03J,GAAAvsL,KAAA,WACAq9D,EAAAysH,cAAA8C,SAAAN,GACAD,GACAhvH,EAAAysH,cAAA8C,aAEAn9L,OAwCA,OAhCAy7L,GAAAiB,kBAAA,SAAA3+L,GACA,IAAAA,EAAA,MAAA,EAEA,IAAAq/L,GAAA,EACAC,EAAA,EACAC,EAAA,CAEA,KAAA,GAAAv/L,EAAAU,QAAA,OACA4+L,EAAAxvL,WAAA9P,EAAAg5C,OAAA,EAAAh5C,EAAAU,QAAA,aACA,KAAA,GAAAV,EAAAU,QAAA,MAAA,CACA,GAAA8+L,GAAA1vL,WAAA9P,EAAAg5C,OAAA,EAAAh5C,EAAAU,QAAA,OACA6+L,GAAAC,EAAA,QACA,KAAA,GAAAx/L,EAAAU,QAAA,KACA6+L,EAAAzvL,WAAA9P,EAAAg5C,OAAA,EAAAh5C,EAAAU,QAAA,WACA,KAAA,GAAAV,EAAAU,QAAA,KACA2+L,EAAAvvL,WAAA9P,EAAAg5C,OAAA,EAAAh5C,EAAAU,QAAA,WACA,CAGA,GAAAsX,GAAAhY,EAAA1B,MAAA,IACAihM,GAAAzvL,WAAAkI,EAAAiJ,OACAjJ,EAAAtZ,OAAA,IACA4gM,EAAAxvL,WAAAkI,EAAAiJ,OACAjJ,EAAAtZ,OAAA,IACA2gM,EAAAvvL,WAAAkI,EAAAiJ,SAKA,MADA,MAAAo+K,EAAA,GAAAC,EAAAC,GAIA7B,IC/OA3gM,OAAA,kCAAA,cACA,SAAA4H,GA6CA,MA3CA,YAEA,GAAA2jF,GAAAnlF,KAEAs8L,IAQAt8L,MAAAu8L,cAAA,SAAAC,GAIA,MAHAr3G,GAAAs3G,YACAj7L,EAAAH,KAAA8jF,EAAAs3G,WAAAD,GAEAx8L,MAGAA,KAAA66L,wBAAA,SAAAl8L,GACA,MAAA29L,GAAA39L,IAGAqB,KAAAi8L,SAAA,SAAAS,GACAv3G,EAAAq5C,cAAAnR,YAAAqvE,GAIA18L,KAAAu8L,cAAA,SAAA9sG,GACA,GAAA9wF,GAAA8wF,EAAAktG,QACAr4K,EAAA3lB,EAAApB,QAAA,IACA,IAAA+mB,GAAA,EAAA,CACA,GAAA7gB,GAAA6gB,EAAA,EACA5gB,EAAA/E,EAAApD,OAAA,CACAoD,GAAAA,EAAAk3C,OAAApyC,EAAAC,GAEA/E,EAAAA,EAAAkY,OAEAylL,EAAA39L,GAAA8wF,OCzCA71F,OAAA,kCAAA,cACA,SAAA4H,GAwCA,MAtCA,UAAAo7L,GAEA,GACAC,GADAC,IAGA98L,MAAA+8L,eAAA,WACA,MAAAH,GAAArhM,QAGAyE,KAAAu5L,uBAAA,SAAA5sH,GACA,MAAAmwH,GAAAnwH,IASA3sE,KAAAqB,KAAA,SAAAm7L,GAEA,MADAh7L,GAAAH,KAAAu7L,EAAAJ,GACAx8L,MAGAA,KAAAq5L,WAAA,WACA,MAAAwD,IAIA78L,KAAAqB,KAAA,SAAA27L,GACAF,EAAAE,EAAAr+L,IAAAq+L,EAEAA,EAAAntL,aAAA,IAAAmtL,EAAAntL,WAAAtS,QAAA,SACAs/L,EAAAG,QCpCApjM,OAAA,iDAAA,SAAA,aAAA,8BAAA,QAAA,qBACA,yBAAA,aAAA,aAAA,kBACA,SAAAsqC,EAAA1iC,EAAAkzL,EAAA57H,EAAAmkI,EAAA1C,EAAA1nD,EACAqqD,EAAAxF,GAkdA,MA7cA,UAAAzQ,GAaA,QAAAwU,GAAA/uH,EAAA5tE,GAEA,GAAAy7L,GAAA7tH,EAAAu6G,GAEAwU,aAAA,WAGA38L,EAAA4tE,KA6CA,QAAAywH,GAAAjsD,GAEA,GAAAksD,GAAAl5J,EAAAh0B,UAGA,IAAAghI,EAAAxyC,iBA2BA0+F,EAAAp0K,cA1BA,CAGAi+J,EAAAwB,mCAFA,iDAEA,OAAA,SAAA4U,GACA,GAAAA,EAAA,CACA,GAAAxwG,GAAA,GAAA6nG,GACA4I,EAAAzwG,EAAAowD,SAAAogD,GACAE,EAAAr5J,EAAA,4BAAAo5J,GAAA,EACA,IAAAC,EAAA,CAEA,SADAr5J,EAAAq5J,GAAAzmL,SAEAo6H,EAAAxyC,iBAAA,gBACAn3D,QAAAE,IAAA,sEAKA21J,EAAAp0K,WAEA,SAAA1iB,GAGA82L,EAAAp0K,YAOA,MAAAo0K,GAAAtsL,UAIA,QAAA0sL,GAAA7C,EAAA9C,EAAA3mD,GAEA,GAAAusD,GACAC,IAoCA,OAlCAD,GAAAv5J,EAAAy5J,EAAAhD,EAAA,UAAA1zK,WACAid,EAAA7iC,KAAAo8L,EAAA,SAAAG,EAAAC,GAEA,GAAAC,GAAA55J,EAAA25J,GACAlxH,EAAAmxH,EAAAv7K,KAAA,SAAAu7K,EAAAv7K,KAAA,SAAA,GACAy6K,EAAAnF,EAAA0B,uBAAA5sH,GAEAhuE,EAAAm/L,EAAAv7K,KAAA,MACAw7K,MAAA3+L,EACAoC,GAAAH,KAAA6vI,EAAA8sD,oBAAA,SAAAC,GACA,GAAAA,EAAAtB,SAAAh+L,EAEA,MADAo/L,GAAAE,EAAAF,UACA,GAIA,IAAA74F,IACA3G,mBAAAw/F,EACApxH,MAAAA,EACAhoD,KAAAq4K,EAAAr4K,KACAu5K,YAAAlB,EAAAr+L,GACAkgG,WAAAm+F,EAAAn+F,WACAD,iBAAAo+F,EAAAp+F,iBACAppE,OAAAsoK,EAAAv7K,KAAA,UAAAu7K,EAAAv7K,KAAA,UAAA,GACA1S,WAAAiuL,EAAAv7K,KAAA,cAAAu7K,EAAAv7K,KAAA,cAAA,GACA+7E,IAAAo5F,EAAA31G,kDAAA67G,EAAAjD,IAGAwD,EAAAC,EAAAl5F,EAAAr1F,WACAq0B,GAAAh8B,OAAAg9F,EAAAi5F,GAEAT,EAAAnhM,KAAA2oG,KAGAw4F,EAGA,QAAAC,GAAAU,EAAA3yH,EAAAn0B,GACA,GAAAj3C,GAAA+9L,EAAA3hH,uBAAA,IAAAhR,EACA,OAAAn0B,GACA/1C,EAAAoc,KAAAtd,EAAAi3C,GAEAj3C,EAAA,GAIA,QAAAg+L,GAAAD,EAAA3yH,EAAAn0B,GACA,GAAAj3C,GAAA+9L,EAAA3hH,uBAAA,IAAAhR,EACA,OAAAlqE,GAAAV,OAAAR,EAAAi3C,GAGA,QAAAgnJ,GAAAF,EAAA3yH,EAAAn0B,GACA,GAAA4kC,GAAAwhH,EAAAU,EAAA3yH,EAAAn0B,EACA,OAAA4kC,GACAA,EAAAt2E,YAEA,GAIA,QAAA24L,GAAAH,EAAA3yH,EAAA+yH,EAAAlnJ,GACA,GAAA4kC,GAAAwhH,EAAAU,EAAA3yH,EAAAn0B,EACA,OAAA4kC,GACAA,EAAA95E,aAAAo8L,GAEA,GAIA,QAAAC,GAAAL,EAAAM,GAEA,GAAAxiH,GAAAwhH,EAAAU,EAAA,OAAA,SAAA7yH,GACA,MAAAA,GAAAnpE,aAAA,cAAAs8L,GAGA,OAAAxiH,GACAA,EAAAt2E,YAEA,GAKA,QAAAszL,GAAAwB,GAEA,GAAAzpD,GAAA,GAAA2B,GACA+rD,EAAAjB,EAAAhD,EAAA,YACAkE,EAAAlB,EAAAhD,EAAA,WACAmE,EAAAnB,EAAAhD,EAAA,QAGAzpD,GAAA9G,OAAAm0D,EAAAK,EAAA,WACA1tD,EAAAvkD,YAAA4xG,EAAAK,EAAA,eACA1tD,EAAArG,aACAg0D,EAAAx8L,aAAA,WAAAw8L,EAAAx8L,aAAA,WAAA,GACA6uI,EAAAvyI,GAAA4/L,EAAAK,EAAA,cACA1tD,EAAA5G,SAAAi0D,EAAAK,EAAA,YACA1tD,EAAAvG,cAAA+zD,EAAAE,EAAA,oBACA1tD,EAAA0M,IAAAkhD,EAAAz8L,aAAA,OAAAy8L,EAAAz8L,aAAA,OAAA,GACA6uI,EAAAtG,QAAA2zD,EAAAK,EAAA,QACA1tD,EAAA7G,UAAAk0D,EAAAK,EAAA,aACA1tD,EAAA3G,OAAAg0D,EAAAK,EAAA,UACA1tD,EAAA/G,MAAAo0D,EAAAK,EAAA,SAEA1tD,EAAAzyC,sBAAAigG,EAAAE,EAAA,yBACA1tD,EAAAxyC,iBAAAggG,EAAAE,EAAA,oBACA1tD,EAAA1yC,iBAAAkgG,EAAAE,EAAA,oBACA1tD,EAAAvyC,eAAA+/F,EAAAE,EAAA,kBAUA1tD,EAAA3yC,mBAAAggG,EAAAK,EAAA,OAAA,SAAApzH,GACA,MAAA,uBAAAA,EAAAnpE,aAAA,cAAAmpE,EAAAuzH,aAAA,YAGA,IAAAC,MACAC,EAAAX,EAAAM,EAAA,OAAA,SAAApzH,GACA,MAAA,uBAAAA,EAAAnpE,aAAA,aAAAmpE,EAAAuzH,aAAA,YAEAv9L,GAAAH,KAAA49L,EAAA,SAAAC,GACA,GAAAvgM,GAAAugM,EAAA78L,aAAA,UACA,IAAA1D,EAAA,CACA,GAAA2lB,GAAA3lB,EAAApB,QAAA,IACA,IAAA+mB,GAAA,EAAA,CACA,GAAA7gB,GAAA6gB,EAAA,EACA5gB,EAAA/E,EAAApD,OAAA,CACAoD,GAAAA,EAAAk3C,OAAApyC,EAAAC,GAEA/E,EAAAA,EAAAkY,OAGA,GAAAonL,IACAtB,QAAAh+L,EACAo/L,SAAAmB,EAAAr5L,YAEAm5L,GAAAziM,KAAA0hM,KAGA/sD,EAAA8sD,oBAAAgB,EAQA9tD,EAAAurD,aAEA,IAAA0C,GAAAb,EAAAM,EAAA,OAAA,SAAApzH,GACA,MAAA,mBAAAA,EAAAnpE,aAAA,aAAAmpE,EAAAuzH,aAAA,YA+BA,OA5BAv9L,GAAAH,KAAA89L,EAAA,SAAAD,GACAhuD,EAAAurD,WAAAlgM,MACAogM,QAAAuC,EAAA78L,aAAA,WACAkO,SAAAgqL,EAAAiB,kBAAA0D,EAAAr5L,iBAIAqrI,EAAA1S,eACAjuH,SAAAgqL,EAAAiB,kBACA+C,EAAAK,EAAA,OAAA,SAAApzH,GACA,MAAA,mBAAAA,EAAAnpE,aAAA,cAAAmpE,EAAAuzH,aAAA,cAGAx1D,SAAAm1D,EAAAE,EAAA,kBACAzqE,YAAAuqE,EAAAE,EAAA,sBACAxqE,oBAAAsqE,EAAAE,EAAA,+BACAvxE,eACAgZ,YAAA,UAAA,WAAA,aAAA,aAAA,OAAA,OAAA,WAAA,WACA,QAAA,YAAA,aAAA,OAAA,YAAA,aACAF,YAAA,UAAA,eAAA,MAAA,MAAA,WAAA,YAAA,MAAA,QACA,WAAA,WAAA,aAAA,YAAA,UAAA,WAAA,WACA,eAAA,WAAA,UAAA,WAAA,SAAA,SAAA,iBACA,kBAAA,gBAAA,YAAA,aAAA,eAAA,gBACA,aAAA,OAAA,aAAA,aAAA,WAAA,OAAA,WAAA,WACA,YAAA,YAAA,aAAA,YAAA,QAAA,YAAA,aAAA,OACA,YAAA,aAGA+K,EAGA,QAAAkuD,GAAAzE,GAEA,GAAA0E,GAAAn7J,EAAAy5J,EAAAhD,EAAA,aAAA1zK,WACAq4K,IAuBA,OArBAp7J,GAAA7iC,KAAAg+L,EAAA,SAAAE,EAAAC,GAEA,GAAAC,GAAAv7J,EAAAs7J,GACAE,EAAAD,EAAAl9K,KAAA,QAAAk9K,EAAAl9K,KAAA,QACA,GACAy6K,GAEAr4K,KAAA+6K,EACA/gM,GAAA8gM,EAAAl9K,KAAA,MAAAk9K,EAAAl9K,KAAA,MAAA,GACAq8E,iBAAA6gG,EAAAl9K,KAAA,iBACAk9K,EAAAl9K,KAAA,iBAAA,GACAs8E,WAAA4gG,EAAAl9K,KAAA,cAAAk9K,EAAAl9K,KAAA,cAAA,GACA1S,WAAA4vL,EAAAl9K,KAAA,cAAAk9K,EAAAl9K,KAAA,cAAA,GAMA+8K,GAAA/iM,KAAAygM,KAGAsC,EAGA,QAAAK,GAAAhF,GAEA,GAAAiF,GAAA17J,EAAAy5J,EAAAhD,EAAA,aAAA1zK,WACA44K,IAcA,OAZA37J,GAAA7iC,KAAAu+L,EAAA,SAAAE,EAAAC,GAEA,GAAAC,GAAA97J,EAAA67J,GACAE,GAEApmL,QAAAmmL,EAAAz9K,KAAA,WAAAy9K,EAAAz9K,KAAA,WAAA,GACAs8E,WAAAmhG,EAAAz9K,KAAA,cAAAy9K,EAAAz9K,KAAA,cAAA,GAGAs9K,GAAAtjM,KAAA0jM,KAGAJ,EAGA,QAAAK,GAAAvF,GAEA,GAAA9C,GACAsI,CASA,IARAtI,EAAA8F,EAAAhD,EAAA,YAIAwF,EAAAj8J,EAAAy5J,EAAA9F,EAAA,OAAA,SAAArsH,GACA,GAAAjpD,GAAAipD,EAAAnpE,aAAA,aACA,OAAAkgB,IAAA/gB,EAAAsD,SAAAyd,EAAApnB,MAAA,KAAA,kBAEA,IAAAglM,EAAA5kM,QAAA4kM,EAAA59K,KAAA,QACA,MAAA49K,GAAA59K,KAAA,OAKA,IAAA69K,GAAAl8J,EAAAy5J,EAAAhD,EAAA,OAAA,SAAAnvH,GACA,MAAA,UAAAA,EAAAnpE,aAAA,WAEAg+L,EAAAD,EAAA79K,KAAA,UACA,OAAA,KAAA69K,EAAA7kM,QAAA8kM,IACAF,EAAAj8J,EAAAy5J,EAAA9F,EAAA,OAAA,SAAArsH,GACA,MAAAA,GAAAnpE,aAAA,QAAAg+L,KAEA,IAAAF,EAAA5kM,QAAA4kM,EAAA59K,KAAA,SACA49K,EAAA59K,KAAA,SAKA49K,EAAAj8J,EAAAy5J,EAAA9F,EAAA,OAAA,SAAArsH,GACA,MAAA,UAAAA,EAAAnpE,aAAA,SAEA,IAAA89L,EAAA5kM,QAAA4kM,EAAA59K,KAAA,QACA49K,EAAA59K,KAAA,QAIA,MAGA,QAAA67K,GAAAtjG,GAGA,IAAA,GAFAjrF,MACAywL,EAAAxlG,EAAA3/F,MAAA,KACAL,EAAA,EAAAA,EAAAwlM,EAAA/kM,OAAAT,IAGA,oCAAAwlM,EAAAxlM,KAAA+U,EAAA4uF,sBAAA,aAGA,mCAAA6hG,EAAAxlM,KAAA+U,EAAA4uF,sBAAA,YAGA,+BAAA6hG,EAAAxlM,KAAA+U,EAAA4uF,sBAAA,QAIA,0BAAA6hG,EAAAxlM,KAAA+U,EAAA2uF,iBAAA,QAGA,+BAAA8hG,EAAAxlM,KAAA+U,EAAA2uF,iBAAA,aAGA,8BAAA8hG,EAAAxlM,KAAA+U,EAAA2uF,iBAAA,YAGA,0BAAA8hG,EAAAxlM,KAAA+U,EAAA2uF,iBAAA,QAGA,0BAAA8hG,EAAAxlM,KAAA+U,EAAA2uF,iBAAA,QAIA,6BAAA8hG,EAAAxlM,KAAA+U,EAAA8uF,eAAA,aAGA,uCAAA2hG,EAAAxlM,KAAA+U,EAAA8uF,eAAA,uBAGA,gCAAA2hG,EAAAxlM,KAAA+U,EAAA8uF,eAAA,gBAGA,wBAAA2hG,EAAAxlM,KAAA+U,EAAA8uF,eAAA,QAKA,iCAAA2hG,EAAAxlM,KAAA+U,EAAAkuF,YAAA,sBAGA,qBAAAuiG,EAAAxlM,KAAA+U,EAAAkuF,YAAA,oBAGA,sBAAAuiG,EAAAxlM,KAAA+U,EAAAkuF,YAAA,qBAGA,gCAAAuiG,EAAAxlM,KACA+U,EAAA0wL,YAAA,EACA1wL,EAAA6uF,iBAAA,cAIA,mCAAA4hG,EAAAxlM,KACA+U,EAAA0wL,YAAA,EACA1wL,EAAA6uF,iBAAA,gBAGA,OAAA7uF,GAtcA,GAEA2wL,GAFAC,EAAAxZ,EACAyZ,EAAAx8J,EAAAh0B,UAGA+2K,GAAAgP,cAAA,SAAA1qE,GACAi1E,EAAAj1E,EACAm1E,EAAA13K,QAAAuiG,IACA,WACAm1E,EAAA13K,YAAA5pB,MAgBAY,KAAA86B,MAAA,SAAAh8B,GAEA4hM,EAAArxL,KAAA,SAAAsrL,GACA,IAAAA,EAEA,WADA77L,OAAAM,GAIA,IAAA8xI,GAAAioD,EAAAwB,GAGA1B,GADA0B,EAAAj+G,uBAAA,IAAA,SAAA,GACA8hH,EAAA7D,EAAA,QAAA,+BAKA9C,GAFA8H,EAAAhF,GAEA,GAAAuC,GAAAkC,EAAAzE,KACA5/F,EAAAyiG,EAAA7C,EAAA9C,EAAA3mD,GAGAyvD,EAAAT,EAAAvF,EACAgG,KACAzvD,EAAA0vD,WAAAD,GAGAz8J,EAAA9a,KAAA+zK,EAAAjsD,IAAAxoH,KAAA,WAEA+3K,EAAAjJ,mBAAAtmD,EAAA,WACA,GAAAxkE,GAAA,GAAAuwH,GAAAhW,EAAAmP,gBAAAuE,EACA1T,EAAA/1C,EAAAn2C,EAAA88F,EAEAnrH,GAAAssH,4BAAAC,GACAwC,EAAA/uH,EAAA5tE,aCzEA,SAAA0lB,EAAApqB,EAAAymM,GACA,mBAAAniM,SAAAA,OAAAF,QAAAE,OAAAF,QAAAqiM,IACA,kBAAAjnM,SAAAA,OAAA6F,IAAA7F,OAEA,SAFAinM,GACAr8K,EAAA,OAAAq8K,KACA7gM,KAAA,EAAA,WAOA,QAAAqvF,GAAA33B,GAEA,QAAAopI,GAAA/zJ,GACA,GAAAzrC,GAAAo2D,EAAAp2D,MAAAyrC,EACA,OAAAzrC,IAAAA,EAAA/F,OAAA,GAAA+F,EAAA,IAAA,GAGA,QAAAy/L,GAAAh0J,GACA,GAAAzrC,GAAAo2D,EAAAp2D,MAAAyrC,EACA,OAAAzrC,IAAAA,EAAA/F,OAAA,GAAA+F,EAAA,IAAA,GAGA,GAoBAwO,GApBAkxL,EAAAF,EAAA,uBAAA1+L,cACA6+L,EAAA,gBAAAvlM,KAAAg8D,GACAwpI,GAAAD,GAAA,WAAAvlM,KAAAg8D,GACAypI,EAAA,oBAAAzlM,KAAAg8D,GACA0pI,GAAAD,GAAA,kBAAAzlM,KAAAg8D,GACA2pI,EAAA,OAAA3lM,KAAAg8D,GACA27G,EAAA,QAAA33K,KAAAg8D,GACA4pI,EAAA,YAAA5lM,KAAAg8D,GACA6pI,EAAA,SAAA7lM,KAAAg8D,GACA8pI,EAAA,mBAAA9lM,KAAAg8D,GACA+pI,EAAA,iBAAA/lM,KAAAg8D,GAEAgqI,GADA,kBAAAhmM,KAAAg8D,IACA+pI,GAAA,WAAA/lM,KAAAg8D,IACAiqI,GAAAX,IAAA3tB,GAAA,aAAA33K,KAAAg8D,GACAkqI,GAAAV,IAAAI,IAAAC,IAAAC,GAAA,SAAA9lM,KAAAg8D,GACAmqI,EAAAd,EAAA,iCACAe,EAAAhB,EAAA,2BACAiB,EAAA,UAAArmM,KAAAg8D,KAAA,aAAAh8D,KAAAg8D,GACAsqI,GAAAD,GAAA,YAAArmM,KAAAg8D,GACAuqI,EAAA,QAAAvmM,KAAAg8D,EAGA,UAAAh8D,KAAAg8D,GAEA5nD,GACA1V,KAAA,QACA8nM,MAAAp1K,EACA4Y,QAAAo8J,GAAAhB,EAAA,4CAEA,eAAAplM,KAAAg8D,GAEA5nD,GACA1V,KAAA,QACA8nM,MAAAp1K,EACA4Y,QAAAo7J,EAAA,sCAAAgB,GAGA,kBAAApmM,KAAAg8D,GACA5nD,GACA1V,KAAA,+BACA+nM,eAAAr1K,EACA4Y,QAAAo8J,GAAAhB,EAAA;wDAGA,SAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,sBACAgoM,MAAAt1K,EACA4Y,QAAAo7J,EAAA,oCAGA,aAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,aACAioM,UAAAv1K,EACA4Y,QAAAo7J,EAAA,wCAGA,SAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,cACAkoM,MAAAx1K,EACA4Y,QAAAo8J,GAAAhB,EAAA,kCAGA,SAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,QACAqqB,MAAAqI,EACA4Y,QAAAo7J,EAAA,oCAGA,aAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,iBACAmoM,cAAAz1K,EACA4Y,QAAAo8J,GAAAhB,EAAA,sCAGA,aAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,aACAooM,UAAA11K,EACA4Y,QAAAo7J,EAAA,wCAGA,SAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,UACAqoM,QAAA31K,EACA4Y,QAAAo7J,EAAA,oCAGA,YAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,WACAsoM,SAAA51K,EACA4Y,QAAAo7J,EAAA,uCAGA,UAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,SACAuoM,OAAA71K,EACA4Y,QAAAo7J,EAAA,qCAGA,YAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,WACAwoM,SAAA91K,EACA4Y,QAAAo7J,EAAA,uCAGA,YAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,WACAyoM,QAAA/1K,EACA4Y,QAAAo7J,EAAA,uCAGAW,GACA3xL,GACA1V,KAAA,gBACA0oM,OAAA,gBACArB,aAAA30K,GAEA+0K,GACA/xL,EAAAizL,OAAAj2K,EACAhd,EAAA41B,QAAAm8J,IAGA/xL,EAAAkzL,KAAAl2K,EACAhd,EAAA41B,QAAAo7J,EAAA,8BAGA,gBAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,oBACA4oM,KAAAl2K,EACA4Y,QAAAo7J,EAAA,gCAEAO,EACAvxL,GACA1V,KAAA,SACA0oM,OAAA,YACAzB,SAAAv0K,EACAm2K,WAAAn2K,EACAo2K,OAAAp2K,EACA4Y,QAAAo7J,EAAA,0CAEA,iBAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,iBACA2oM,OAAAj2K,EACA4Y,QAAAm8J,GAGA,WAAAnmM,KAAAg8D,GACA5nD,GACA1V,KAAA,UACA+oM,QAAAr2K,EACA4Y,QAAAo7J,EAAA,4BAAAgB,GAGAR,EACAxxL,GACA1V,KAAA,WACA0oM,OAAA,cACAxB,SAAAx0K,EACA4Y,QAAAo7J,EAAA,uCAGA,eAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,YACAgpM,UAAAt2K,EACA4Y,QAAAo7J,EAAA,8BAGA,2BAAAplM,KAAAg8D,IACA5nD,GACA1V,KAAA,UACAipM,QAAAv2K,EACA4Y,QAAAo7J,EAAA,mDAEA,wCAAAplM,KAAAg8D,KACA5nD,EAAAwzL,UAAAx2K,EACAhd,EAAAgzL,OAAA,eAGAzvB,EACAvjK,GACA1V,KAAA,cACAi5K,KAAAvmJ,EACA4Y,QAAAo7J,EAAA,yBAGA,WAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,YACAmpM,QAAAz2K,EACA4Y,QAAAo7J,EAAA,8BAGA,YAAAplM,KAAAg8D,GACA5nD,GACA1V,KAAA,WACAopM,OAAA12K,EACA4Y,QAAAo7J,EAAA,6BAGA,sBAAAplM,KAAAg8D,IAAA,eAAAh8D,KAAAg8D,GACA5nD,GACA1V,KAAA,aACA0oM,OAAA,gBACAW,WAAA32K,EACA4Y,QAAAo8J,GAAAhB,EAAA,oCAGAU,GACA1xL,GACA1V,KAAA,QACA0oM,OAAA,QACAtB,MAAA10K,EACA4Y,QAAAo8J,GAAAhB,EAAA,sCAEA,cAAAplM,KAAAg8D,KAAA5nD,EAAA4zL,SAAA52K,IAEA,QAAApxB,KAAAg8D,GACA5nD,GACA1V,KAAA,OACA0oM,OAAA,OACAa,KAAA72K,EACA4Y,QAAAo7J,EAAA,2BAGAS,EACAzxL,GACA1V,KAAA,QACA0oM,OAAA,QACAvB,MAAAz0K,EACA4Y,QAAAo7J,EAAA,yCAAAgB,GAGA,YAAApmM,KAAAg8D,GACA5nD,GACA1V,KAAA,WACAwpM,SAAA92K,EACA4Y,QAAAo7J,EAAA,uCAAAgB,GAGA,YAAApmM,KAAAg8D,GACA5nD,GACA1V,KAAA,WACAypM,SAAA/2K,EACA4Y,QAAAo7J,EAAA,uCAAAgB,GAGA,qBAAApmM,KAAAg8D,GACA5nD,GACA1V,KAAA,SACA8oM,OAAAp2K,EACA4Y,QAAAo7J,EAAA,0CAGAI,EACApxL,GACA1V,KAAA,UACAsrC,QAAAo8J,GAGA,sBAAApmM,KAAAg8D,IACA5nD,GACA1V,KAAA,SACA0pM,OAAAh3K,GAEAg1K,IACAhyL,EAAA41B,QAAAo8J,IAGAd,GACAlxL,GACA1V,KAAA,UAAA4mM,EAAA,SAAA,QAAAA,EAAA,OAAA,QAGAc,IACAhyL,EAAA41B,QAAAo8J,IAIAhyL,EADA,aAAApU,KAAAg8D,IAEAt9D,KAAA,YACA2pM,UAAAj3K,EACA4Y,QAAAo7J,EAAA,6BAAAgB,IAKA1nM,KAAA0mM,EAAA,gBACAp7J,QAAAq7J,EAAA,kBAKAjxL,EAAAizL,QAAA,kBAAArnM,KAAAg8D,IACA,2BAAAh8D,KAAAg8D,IACA5nD,EAAA1V,KAAA0V,EAAA1V,MAAA,QACA0V,EAAAs7C,MAAAt+B,IAEAhd,EAAA1V,KAAA0V,EAAA1V,MAAA,SACA0V,EAAAk0L,OAAAl3K,IAEAhd,EAAA41B,SAAAo8J,IACAhyL,EAAA41B,QAAAo8J,KAEAhyL,EAAAoyL,OAAA,WAAAxmM,KAAAg8D,KACA5nD,EAAA1V,KAAA0V,EAAA1V,MAAA,QACA0V,EAAAm0L,MAAAn3K,EACAhd,EAAA41B,QAAA51B,EAAA41B,SAAAo7J,EAAA,0BAIAhxL,EAAA2xL,eAAAP,IAAApxL,EAAAujK,MAGAvjK,EAAA2xL,cAAAT,GACAlxL,EAAAkxL,GAAAl0K,EACAhd,EAAAo0L,IAAAp3K,EACAhd,EAAAgzL,OAAA,OACAnB,GACA7xL,EAAA6xL,IAAA70K,EACAhd,EAAAgzL,OAAA,SACAb,GACAnyL,EAAAmyL,KAAAn1K,EACAhd,EAAAgzL,OAAA,QACApB,GACA5xL,EAAA4xL,QAAA50K,EACAhd,EAAAgzL,OAAA,WACAlB,IACA9xL,EAAA8xL,MAAA90K,EACAhd,EAAAgzL,OAAA,UAjBAhzL,EAAAoxL,QAAAp0K,EACAhd,EAAAgzL,OAAA,UAoCA,IAAAqB,GAAA,EACAr0L,GAAA4xL,QACAyC,EAnBA,SAAAlxL,GACA,OAAAA,GACA,IAAA,KAAA,MAAA,IACA,KAAA,KAAA,MAAA,IACA,KAAA,SAAA,MAAA,MACA,KAAA,SAAA,MAAA,IACA,KAAA,SAAA,MAAA,MACA,KAAA,SAAA,MAAA,OACA,KAAA,SAAA,MAAA,GACA,KAAA,SAAA,MAAA,GACA,KAAA,SAAA,MAAA,KACA,KAAA,UAAA,MAAA,IACA,SAAA,SAOA6tL,EAAA,mCACAhxL,EAAA2xL,aACA0C,EAAArD,EAAA,0CACAhxL,EAAA6xL,KACAwC,EAAArD,EAAA,gCACAqD,EAAAA,EAAAxoM,QAAA,SAAA,MACAqlM,GACAmD,EAAArD,EAAA,sCACAqD,EAAAA,EAAAxoM,QAAA,SAAA,MACAulM,EACAiD,EAAArD,EAAA,+BACAhxL,EAAA0xL,MACA2C,EAAArD,EAAA,iCACAhxL,EAAA2zL,WACAU,EAAArD,EAAA,mCACAhxL,EAAA6zL,KACAQ,EAAArD,EAAA,wBACAhxL,EAAAyxL,QACA4C,EAAArD,EAAA,8BAEAqD,IACAr0L,EAAAs0L,UAAAD,EAIA,IAAAE,IAAAv0L,EAAA4xL,SAAAyC,EAAAhpM,MAAA,KAAA,EAqDA,OAnDA4mM,IACAX,GACA,QAAAJ,GACAE,IAAA,GAAAmD,GAAAA,GAAA,IAAArC,IACAlyL,EAAAujK,KAEAvjK,EAAAiyL,OAAAj1K,GAEAk1K,GACA,UAAAhB,GACA,QAAAA,GACAE,GACAC,GACArxL,EAAA2zL,YACA3zL,EAAA0xL,OACA1xL,EAAA6zL,QAEA7zL,EAAAkyL,OAAAl1K,GAKAhd,EAAAizL,QACAjzL,EAAAkzL,MAAAlzL,EAAA41B,SAAA,IACA51B,EAAAyyL,eAAAzyL,EAAA41B,SAAA,IACA51B,EAAAqzL,SAAArzL,EAAA41B,SAAA,GACA51B,EAAAozL,QAAApzL,EAAA41B,SAAA,IACA51B,EAAAqyL,gBAAAryL,EAAA41B,SAAA,GACA51B,EAAAsyL,OAAA,IAAAkC,GAAAx0L,EAAA41B,QAAA,SACA51B,EAAAuyL,WAAA,IAAAiC,GAAAx0L,EAAA41B,QAAA,SACA51B,EAAA2U,OAAA,IAAA6/K,GAAAx0L,EAAA41B,QAAA,SACA51B,EAAAuzL,SAAAvzL,EAAA41B,SAAA,IACA51B,EAAAg0L,QAAAh0L,EAAA41B,SAAA,GACA51B,EAAAoyL,OAAApyL,EAAA41B,SAAA,IACA51B,EAAAo0L,KAAAp0L,EAAAs0L,WAAAt0L,EAAAs0L,UAAAjpM,MAAA,KAAA,IAAA,GACA2U,EAAA2zL,YAAA3zL,EAAA41B,SAAA,MACA51B,EAAA+zL,UAAA/zL,EAAA41B,SAAA,GAEA51B,EAAAkK,EAAA8S,EAEAhd,EAAAkzL,MAAAlzL,EAAA41B,QAAA,IACA51B,EAAAozL,QAAApzL,EAAA41B,QAAA,IACA51B,EAAAuzL,SAAAvzL,EAAA41B,QAAA,IACA51B,EAAAg0L,QAAAh0L,EAAA41B,QAAA,GACA51B,EAAAoyL,OAAApyL,EAAA41B,QAAA,IACA51B,EAAAo0L,KAAAp0L,EAAAs0L,WAAAt0L,EAAAs0L,UAAAjpM,MAAA,KAAA,GAAA,GACA2U,EAAA+zL,UAAA/zL,EAAA41B,QAAA,GAEA51B,EAAAu0B,EAAAvX,EACAhd,EAAAq5B,EAAArc,EAEAhd,EA0BA,QAAAy0L,GAAA7+J,GACA,MAAAA,GAAAvqC,MAAA,KAAAI,OAUA,QAAAH,GAAAyZ,EAAA4C,GACA,GAAA3c,GAAAgV,IACA,IAAAwG,MAAAxY,UAAA1C,IACA,MAAAkb,OAAAxY,UAAA1C,IAAAlB,KAAA2a,EAAA4C,EAEA,KAAA3c,EAAA,EAAAA,EAAA+Z,EAAAtZ,OAAAT,IACAgV,EAAAvT,KAAAkb,EAAA5C,EAAA/Z,IAEA,OAAAgV,GAeA,QAAAw0L,GAAArpD,GAgBA,IAdA,GAAAupD,GAAA14L,KAAAC,IAAAw4L,EAAAtpD,EAAA,IAAAspD,EAAAtpD,EAAA,KACAwpD,EAAArpM,EAAA6/I,EAAA,SAAAv1G,GACA,GAAA4nB,GAAAk3I,EAAAD,EAAA7+J,EAMA,OAHAA,IAAA,GAAApvB,OAAAg3C,EAAA,GAAAtxD,KAAA,MAGAZ,EAAAsqC,EAAAvqC,MAAA,KAAA,SAAAq3F,GACA,MAAA,IAAAl8E,OAAA,GAAAk8E,EAAAj3F,QAAAS,KAAA,KAAAw2F,IACA3qE,cAIA28K,GAAA,GAAA,CAEA,GAAAC,EAAA,GAAAD,GAAAC,EAAA,GAAAD,GACA,MAAA,EAEA,IAAAC,EAAA,GAAAD,KAAAC,EAAA,GAAAD,GAOA,OAAA,CANA,IAAA,IAAAA,EAEA,MAAA,IA2BA,QAAAE,GAAAC,EAAAC,EAAAltI,GACA,GAAAmtI,GAAAC,CAGA,iBAAAF,KACAltI,EAAAktI,EACAA,MAAA,QAGA,KAAAA,IACAA,GAAA,GAEAltI,IACAmtI,EAAAx1G,EAAA33B,GAGA,IAAAhyB,GAAA,GAAAm/J,EAAAn/J,OACA,KAAA,GAAAq/J,KAAAJ,GACA,GAAAA,EAAA5mM,eAAAgnM,IACAF,EAAAE,GAAA,CACA,GAAA,gBAAAJ,GAAAI,GACA,KAAA,IAAA5nM,OAAA,6DAAA4nM,EAAA,KAAAvkL,OAAAmkL,GAIA,OAAAL,IAAA5+J,EAAAi/J,EAAAI,KAAA,EAKA,MAAAH,GAWA,QAAAphL,GAAAmhL,EAAAC,EAAAltI,GACA,OAAAgtI,EAAAC,EAAAC,EAAAltI,GAhmBA,GAAA5qC,IAAA,EA0cAg4K,EAAAz1G,EAAA,mBAAAnoD,WAAAA,UAAAgjF,WAAA,GAAA,GAyKA,OAvKA46E,GAAAppM,KAAA,SAAAspM,GACA,IAAA,GAAAlqM,GAAA,EAAAA,EAAAkqM,EAAAzpM,SAAAT,EAAA,CACA,GAAAmqM,GAAAD,EAAAlqM,EACA,IAAA,gBAAAmqM,IACAA,IAAAH,GACA,OAAA,EAIA,OAAA,GA8IAA,EAAAJ,qBAAAA,EACAI,EAAAR,gBAAAA,EACAQ,EAAAthL,MAAAA,EAOAshL,EAAAI,QAAA71G,EAMAy1G,EAAAz1G,OAAAA,EACAy1G,IAGAlrM,OAAA,SAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAmlM,SAEA9kM,OC7nBApG,OAAA,2CAAA,QAAA,wCAAA,aAAA,0BAAA,UAAA,SAAAk/D,EAAA05E,EAAAhxI,EAAA87I,EAAAwnD,GAEA,GAAAK,GAAA,SAAAC,EAAAje,GAiRA,QAAAke,GAAA5qI,EAAA37D,GAEAolC,EAAArH,MACAhB,IAAA4+B,EACA1oD,SAAA,OACAkqB,OAAA,EACAgB,QAAA,SAAAntB,GAEAhR,EAAAgR,IAEAwE,MAAA,SAAAyrB,EAAAjD,EAAA8uF,GACArkF,QAAAjzB,MAAA,4BAAAmmD,GACAlzB,QAAAjzB,MAAAwoB,GACAyK,QAAAjzB,MAAAs3G,GACA9sH,OAKA,QAAAw3L,GAAA9uL,EAAA1I,GAEAumM,EAAA79L,EAAA,SAAA89L,GAEA,IAAAA,EAEA,WADAxmM,IAIA0sL,KACA8Z,EAAA9Z,EAAAhkL,EAAA89L,IAGAxmM,EAAAwmM,KA/SA,GAAAC,GAAAxlM,OAAAmnC,UAAAgjF,UAAA3sH,QAAA,WAAA,GAAAwC,OAAAmnC,UAAAgjF,UAAA3sH,QAAA,QAAA,EAEAioM,EAAA,GAAAhzD,GAEAvpI,EAAAjJ,KAEAwrL,EAAArE,CAEAnnL,MAAAkpH,uBAAA,SAAAniF,EAAAjoC,EAAA8E,GACA4hM,EAAAt8E,uBAAAniF,EAAAjoC,EAAA8E,IAGA5D,KAAAmpH,mBAAA,SAAA/+G,GACAo7L,EAAAr8E,mBAAA/+G,IAGApK,KAAA6iH,WAAA,SAAAz4G,EAAA5C,EAAA1I,EAAA2mM,EAAAr8E,GAEAh/G,EAAAi/G,UAEAk8E,GAAAn7L,EAAApE,cAAA4O,YAAA8wL,cAGAt7L,EAAAi/G,QAAAj/G,EAAApE,cAAA4O,YAAA8wL,aAAArjM,aAAA,gBAEAklC,QAAAE,IAAA,iCACAF,QAAAE,IAAAjgC,GACAA,EAAA,GAAAsxD,GAAAtxD,GAAAyxD,WAAA7uD,EAAAi/G,SAAA14E,OAAA,IAAArsB,KAAA,IAAAvP,YAEA,mBAAAwP,YACAna,EAAAi/G,QAAA9kG,SAAAI,KAAA,IAGA4iB,QAAAjzB,MAAA,sBAAAlK,EAAAi/G,UAGA9hF,QAAAE,IAAA,wBACAF,QAAAE,IAAAjgC,GACA4C,EAAAwO,aAAA,WAAApR,GAEA+/B,QAAAE,IAAA,6BACAF,QAAAE,IAAAr9B,EAAAi/G,SACAj/G,EAAAwO,aAAA,eAAAxO,EAAAi/G,QAGA,IAAAC,GAAA,GAAAxwD,GAAAtxD,GAAAyxD,WAAA7uD,EAAAi/G,SAAA14E,OAAA,IAAArsB,KAAA,IAAAvP,UAEAwyB,SAAAE,IAAA,6BACAF,QAAAE,IAAA6hF,GACAl/G,EAAAwO,aAAA,eAAA0wG,GAEA87E,IAAAlP,sCAGA3uJ,QAAAE,IAAA,yCAEA29J,IAAA9O,qBAAAltE,EAAAE,EACA,SAAAq8E,GACA18L,EAAA28L,wBAAAx7L,EACAg/G,EACAu8E,EAAAt7L,gBAAAw7L,UACA,WACA/mM,EAAA5E,KAAAurM,GAAA,EAAAr8E,MAEA,SAAA9iH,GACAxH,EAAA5E,KAAAurM,GAAA,EAAAr8E,MAIAktE,EAAAhtE,EAAA,SAAAg8E,GACAA,EAIAr8L,EAAA28L,wBAAAx7L,EAAAg/G,EAAAk8E,EAAA,WACAxmM,EAAA5E,KAAAurM,GAAA,EAAAr8E,KAHAtqH,EAAA5E,KAAAurM,GAAA,EAAAr8E,MAUAppH,KAAA4lM,wBAAA,SAAAx7L,EAAAg/G,EAAA08E,EAAAhnM,GACA,GAAAinM,GAAAtmD,EAEAumD,EAAAlB,EAAAZ,KAAAY,EAAA5B,OAGA+C,IAAAD,GACAlB,EAAA9B,MACA8B,EAAAZ,KAAAtrK,SAAAksK,EAAAp/J,QAAA,IAAA,GACAo/J,EAAA3C,eAEA,IAAA8D,EAAA,CACA,GAAA/pK,GAAA,WAMA,IALAktF,EAAAlkB,UAAArG,YAAAuqB,EAAAlkB,UAAArG,WAAAtjG,SACA2gC,EAAAktF,EAAAlkB,UAAArG,YAIA9+F,OAAAmmM,YAAA,CACA,GAAAC,GAAA,GAAAD,YACAC,GAAA70K,OAAAw0K,GACArmD,EAAA0mD,EAAAvhB,QAAA1oJ,OAEAujH,GAAA,GAAA5+C,OAAAilG,IAAA3lM,KAAA+7B,GAEA6pK,GAAAhmM,OAAAs6F,IAAA2uF,gBAAAvpC,OAYAumD,KAEA57L,EAAAo8F,cAAA3mG,SAAA0gC,OAKAxgC,OAAAqmM,OAAArmM,OAAAqmM,MAAAC,wBACAtmM,OAAAqmM,MAAAC,wBAAA,WACAj8L,EAAAo8F,cAAA3mG,SAAA0K,MAAAu7L,KAGA17L,EAAAo8F,cAAA3mG,SAAA0K,MAAAu7L,GAIA17L,GAAAs2B,OAAA,WACA,GAAA93B,GAAAwB,EAAAE,iBAAAF,EAAAo8F,cAAA3mG,QAOA,IAAAuK,EAAAo8F,cAAA8/F,OACA,IAAA,GAAAxrM,GAAA,EAAAA,EAAAsP,EAAAo8F,cAAA8/F,OAAA/qM,OAAAT,IAAA,CACA,GAAAyrM,GAAAn8L,EAAAo8F,cAAA8/F,OAAAxrM,GAOA0rM,MAAApnM,EAEA,KACAonM,EAAAD,EAAAb,aAAArjM,aAAA,YACA,MAAAiE,GAEAihC,QAAAI,KAAArhC,EACA,UAIA,GAAAkgM,EAAA,CAQA,GAAAC,GAAAr9E,EAAAlkB,UAAAvgF,KAEAsiK,EAAAme,IAEApd,EAAAf,EAAAiB,6CAAAue,GAGAC,EAAA,GAAA5tI,GAAA0tI,GAAAvtI,WAAA+uH,GAAAjzK,WAGAiiL,EAAA/P,EAAAoP,mCAIAsQ,EAAA,GAAA7tI,GAAA,IAAA4tI,GAAAvhI,WAAA,IAAA6xH,GAAAjiL,WAGA6xL,EAAAtpD,EAAAW,gCAAA0oD,GAEAE,EAAA,GAAA1B,GAAAC,EAAAje,EACA0f,GAAAhkF,WACA0jF,EAAAb,aACAc,EACA,WACAj/J,QAAAE,IAAA,yBAEAx+B,GAEAi8F,WAEArG,WAAA+nG,EACAjiL,KAAAgiL,SAtCA,UAAAJ,EAAAb,aAAAh6H,WACAnkC,QAAAjzB,MAAA,6BA4CA4vB,EAAA,MAAAt7B,GAAArC,GAAA,OAAA,WACAghC,QAAAE,IAAA,gBAGAx+B,EAAAkgH,mBAAA/+G,EAEA,IAAAq/G,GAAAr/G,EAAAo8F,cAAAkjB,OACA,IAAAD,EAAA,CAEAliF,QAAAE,IAAA,oBAAAgiF,EAAAE,WAAA,OAAAF,EAAAG,YAAA,OAAAH,EAAA/jF,QAEA,IAAAmkF,IAAA,CAGAJ,GAAAK,IAAAC,QAAAC,YACAH,GAAA,GAKAJ,EAAAK,IAAAC,QAAAE,WACAJ,GAAA,GAKA9pH,OAAAmnC,UAAAgjF,UAAA3sH,QAAA,QAAA,IACAssH,GAAA,GAGAJ,EAAAK,IAAAK,QAAAC,cAAA,EAAAC,aAAA,OAAAC,wBAAA,EAAAC,KAAAV,aAAAA,IAGA,IAAAW,GAAAhpH,EAAA4mB,KAAAtpB,EAEA,KACA2qH,EAAAK,IAAAW,MAAAD,GACA,MAAAlkH,GACAihC,QAAAjzB,MAAA,iBACAxV,SAMAA,IAGAmnM,IACAlmM,OAAAs6F,IAAAszF,gBAAAoY,IAIAE,EACA77L,EAAAwO,aAAA,MAAAmtL,GACAC,EAGA57L,EAAAwO,aAAA,SAAAktL,GAFA17L,EAAAo8F,cAAA3mG,SAAA2K,SA2CA,OAAA26L,KCvTAvrM,OAAA,sBAAA,4BAAA,oBAAA,SAAA,aAAA,sCAAA,4CACA,gDAAA,0CAAA,yCAEA,SAAA6rC,EAAAqhK,EAAA5iK,EAAA1iC,EAAA0xI,EAAA6zD,EACAC,EAAAC,EAAAC,GAKAnnM,OAAAmmM,YAAAnmM,OAAAmmM,aAAAnmM,OAAAonM,mBAAApnM,OAAAqnM,gBAAArnM,OAAAsnM,aAEA,IAAAC,GAAA,SAAAC,EAAAC,GAEA,GAAAC,IAAAzyD,WAAAwyD,EAAAxyD,YAEAw2C,EAAA,SAAAhkL,EAAA89L,GAWA,QAAAoC,KAEAxgK,UAAAC,kBAAApnC,OAAA8gB,OAAAqmB,UAAAC,kBAGA,GAAA28D,GAAAt8F,EAAArM,MAAA,KAEAwsM,EAAA7jG,EAAA9nG,KAAA,IAEAurC,SAAAE,IAAA,uBACAF,QAAAE,IAAAkgK,EACA,IAAA7sL,GAAA,eAAA8sL,UApBA,SAAA/rK,GACA,MAAAA,GACAlgC,QAAA,KAAA,SACAA,QAAA,KAAA,QACAA,QAAA,KAAA,QACAA,QAAA,KAAA,UACAA,QAAA,KAAA,WAcAgsM,IAAA,MAEAljM,EAAA,mCAAAijM,EAAA3yL,WAAA,eAgBA,OAdA0yL,IAAAA,EAAAzyD,YAAAswD,EAAA30J,OAAA,qBAAA,IACAlsC,GAAA,uCAAAgjM,EAAAzyD,WAAA,iBAGAswD,EAAAA,EAAA3pM,QAAA,mBAAA,KAAAmf,EAAArW,GAEA6gM,EAAAA,EAAA3pM,QAAA,wEAAA,uBAEA2pM,EAAAA,EAAA3pM,QAAA,0FAAA,kBAGA2pM,EAAAA,EAAA3pM,QAAA,yBAAA,wBACA2pM,EAAAA,EAAA3pM,QAAA,kBAAA,yBAKAsN,EAAAjJ,KAEA6nM,MAAAzoM,EACAY,MAAA8nM,6BAAA,WACA,MAAAD,GAIA,IAAA9S,GAAAwS,EAAAxS,SAEAwS,GAAAQ,gBAIAP,EAAAjoF,aAAA,GAAA2nF,GAHAM,EAAAjoF,aAAA,GAAA0nF,GAAA,WAAA,MAAAY,IAAArc,GAUAgc,EAAAxoF,kCAAA,EAEAh/G,KAAA24F,OAAA,GAAAu6C,GAAAs0D,GACAptG,WAAAzB,OAAA34F,KAAA24F,MAEA,IAAAqvG,GAAA,SAAApnG,EAAA9hG,EAAAs9H,EAAAlgG,GACA2rK,GACAA,EAAAja,YAGA,IAAAZ,GAAA,IACAua,GAAAva,0BACAA,EAAAua,EAAAva,yBAGA6a,EAAA,GAAAd,GAAAnmG,EAAAm0F,EAAAh1L,OAAAitL,EAAAxB,EAAAtvJ,GAEA2rK,EAAAzuG,WAAA,SAAA48F,GAEA,IAAAA,EAGA,WADAl3L,OAAAM,GAIA,IAAA4nM,GAAAa,GAEA/sK,MAAA,SAAA4xC,GAEA,IAAAA,EAGA,WADA5tE,OAAAM,GAIA,IAAA6oM,GAAAV,EAAAU,oBACA3yD,EAAApxG,EAAAh8B,OAAAwkE,EAAAisH,yBAAAsP,EAEA7rE,KAEAA,EAAAtR,eACAsR,EAAAzvD,MAAAD,EAAAmsH,yBAAAz8D,EAAAtR,eAEAwqB,EAAAlZ,gBAAAA,GAEAnzH,EAAA0vF,OAAA08C,SAAAC,EAEA,IAAAn0I,IACA+vI,SAAAxkE,EAAAysH,cAGAr6L,GAAA4tE,EAAAvrE,OAMAnB,MAAAkoM,oBAAA,SAAAtnG,EAAA9hG,EAAAs9H,GAEA,KAAAx7B,YAAAC,OACAD,YAAAE,OAIA,CAEAv5D,QAAAC,MAAA,kCAEA,IAAAs7B,GAAA/iE,OAAAwkB,SAAAu+C,MACAA,KACAA,EAAA/iE,OAAAwkB,SAAAwX,SAAA,KAAAh8B,OAAAwkB,SAAAoa,KAEA,IAAAwpK,GAAArlI,EAAA/iE,OAAAwkB,SAAAq4C,QAEAr1B,SAAAC,MAAA,aAAA2gK,GACA5gK,QAAAC,MAAA,iBAAAo5D,EAEA,KACAA,EAAA,GAAA9nC,KAAA8nC,GAAA3nC,WAAAkvI,GAAApzL,WACA,MAAAzO,GACAihC,QAAAjzB,MAAAhO,GACAihC,QAAAE,IAAAm5D,GASA,GANAr5D,QAAAC,MAAA,OACAD,QAAAC,MAAA,iBAAAo5D,GAEAr5D,QAAAC,MAAA,mCAGA,GAAAo5D,EAAArjG,QAAA,YAAA,GAAAqjG,EAAArjG,QAAA,YAAA,CAEA,GAAAwiC,GAAA,GAAAC,eA8CA,OA7CAD,GAAAc,mBAAA,WAEA,GAAA,GAAA7gC,KAAAiqB,WAAA,CAEA,GAAAiS,OAAA98B,EAGA,IADA2gC,EAAAjD,QAAA,KAAAiD,EAAAjD,OAAA,KAAA,MAAAiD,EAAAjD,OACA,CAEA,GAAAsrK,GAAA,EACAroK,GAAA5B,wBACAiqK,EAAAroK,EAAA5B,wBAEAiqK,EADAA,EACAA,EAAAhmM,cACA,IAIAgmM,EAAA7qM,QAAA,iBAAA,IACA2+B,EAAA6D,EAAAtsB,kBAAA,iBAAAssB,EAAAtsB,kBAAA,gBACAyoB,IAAAA,MAAA98B,IAEAmoC,QAAAC,MAAA,iBAAAo5D,EAAA,QAAA1kE,GAGA,IAAAmsK,GAAAtoK,EAAAsoK,WACAA,IACAD,EAAA7qM,QAAA,aAAA,IACA8qM,EAAAtoK,EAAAtsB,kBAAA,aAAAssB,EAAAtsB,kBAAA,aAIA40L,GAAAA,IAAAznG,IACAr5D,QAAAC,MAAA,aAAAo5D,EAAA,QAAAynG,GAEAznG,EAAAynG,GAIAL,EAAApnG,EAAA9hG,EAAAs9H,EAAAlgG,KAEA6D,EAAAQ,KAAA,OAAAqgE,GAAA,OAEA7gE,GAAAhB,KAAA,OAMAipK,EAAApnG,EAAA9hG,EAAAs9H,IAGAp8H,KAAAsoM,qBAAA,WACAT,GACAA,EAAAja,cAIAnoJ,EAAAqB,SAAA,qBAAA,OAAA,cACAszD,WAAAj1D,KAAAi1D,WAAAt0D,OAAAC,mBAAAq0D,WAAAzB,QA8MA,OA3MA2uG,GAAA5hK,QAAA7K,KAAAC,MAAAgsK,GAEAQ,EAAAiB,WAAA,SAAAzpM,GAEA,GAAA4mC,GAAA4hK,EAAA5hK,OAEA,IAAAA,EAAA8iK,gBAAA,CAMA,GAAAC,GAAA,SAAA3tM,GACA,GAAAA,GAAA4qC,EAAAgjK,MAAAntM,OAWA,aAVAmqC,GAAA8iK,sBACA9iK,GAAAgjK,MAOApB,EAAA5hK,QAAAA,MACA5mC,GAAA4mC,EAIA,IAAAijK,GAAAjjK,EAAAgjK,MAAA5tM,EAaA4qC,GAAAijK,EAAAvuM,SACAsrC,EAAAijK,EAAAvuM,MAAAwuM,WAAA,GAAArxL,OAAAg/E,UAeAryD,EAAAlF,QAAA2pK,EAAAluI,KAAA,gBAAA,SAAAv4D,GAOAwjC,EAAAijK,EAAAvuM,MAAAsrC,QAAAxjC,EAAAwjC,QACAA,EAAAijK,EAAAvuM,MAAAyuM,cAAA,KAAA3mM,EAAAwjC,QAAAloC,UAAA,EAEA,IAAAsrM,GAAA,SAAAC,EAAAJ,EAAAphE,GACA,GAAA1rG,GAAAktK,EAAA,IAAAxhE,CAOArjG,GAAA3/B,IAAAs3B,EAAA,SAAA35B,GAEAwjC,EAAAijK,EAAAvuM,MAAA4uM,OAAAzhE,CAEA,IAAA8sD,GAAAnyL,EAAA1E,UAAA,EAAA0E,EAAA3G,OAAA,EACAmqC,GAAAijK,EAAAvuM,MAAAi6L,IAAAA,EAeAoU,IAAA3tM,KAEA2W,KAAA,SAAAnL,GAOAmiM,IAAA3tM,MAIAmuM,EAAA,SAAAN,GACA,GAAA9sK,GAAA8sK,EAAAluI,KAAA,OAOAv2B,GAAA3/B,IAAAs3B,EAAA,SAAA35B,GASA,GAAA,GAAAA,EAAA3E,QAAA,YAAA,CAEA,GAAA2rM,GAAAP,EAAAluI,KAAA,IAAAv4D,EAAA1E,UAAA,WAAAjC,QAAAsb,MAOAsyL,GAAAD,EAAAP,OAOAF,KAAA3tM,KAGA2W,KAAA,SAAAnL,GAOAmiM,IAAA3tM,MAIAquM,EAAA,SAAAJ,EAAAJ,EAAAlgM,GACA,GAAAozB,GAAAktK,EAAA,OAOA7kK,GAAA3/B,IAAAs3B,EAAA,SAAA35B,GASA,GAAAqlI,GAAArlI,EAAA1E,UAAA,EAAA0E,EAAA3G,OAAA,EACAutM,GAAAC,EAAAJ,EAAAphE,KAEA91H,KAAA,SAAAnL,GAOAmC,EACAwgM,EAAAN,GAKAF,IAAA3tM,KAKAquM,GAAAR,EAAAluI,KAAA,QAAAkuI,GAAA,KAEAl3L,KAAA,SAAAnL,GAAAmiM,IAAA3tM,KAIA2tM,GAAA,OAEA3pM,GAAA4mC,IAGA4hK,IAGA1tM,OAAA,cAAA,sBAAA,SAAAsD,GAAA,MAAAA,KClcAtD,OAAA,kCAAA,UAAA,SAAA8E,GAEA,GAAArD,GAAAqD,EAAArD,QACA,QACA+tM,gBAAA/tM,EAAA+tM,iBAAA,GAEAC,gBAAAhuM,EAAAguM,iBAAA,GAEAC,aAAAjuM,EAAAiuM,eAAA,EACAC,mBAAAluM,EAAAkuM,qBAAA,EAGAC,qBAAAnuM,EAAAmuM,sBAAA,wBAEAC,UAAApuM,EAAAouM,WAAA,oBAEAC,iBAAAruM,EAAAquM,kBAAA,mBACA10D,WAAA35I,EAAA25I,YAAA,cACA+/C,UAAA15L,EAAA05L,WAAA,UAGAh3E,MAAA1iH,EAAA0iH,UAEAgqF,gBAAA1sM,EAAA0sM,kBAAA,KvErBA,mBAAAroM,QACA,KAAA,IAAAvC,OAAA,2CAGA,SAAA+mC,GACA,YACA,IAAAwB,GAAAxB,EAAAx9B,GAAA4O,OAAAna,MAAA,KAAA,GAAAA,MAAA,IACA,IAAAuqC,EAAA,GAAA,GAAAA,EAAA,GAAA,GAAA,GAAAA,EAAA,IAAA,GAAAA,EAAA,IAAAA,EAAA,GAAA,GAAAA,EAAA,GAAA,EACA,KAAA,IAAAvoC,OAAA,6FAEAuC,QAWA,SAAAwkC,GACA,YAKA,SAAAylK,KACA,GAAAh+K,GAAA9rB,SAAAuF,cAAA,aAEAwkM,GACAC,iBAAA,sBACAC,cAAA,gBACAC,YAAA,gCACAC,WAAA,gBAGA,KAAA,GAAA5vM,KAAAwvM,GACA,OAAAxqM,KAAAusB,EAAAnoB,MAAApJ,GACA,OAAAsJ,IAAAkmM,EAAAxvM,GAIA,QAAA,EAIA8pC,EAAAx9B,GAAAujM,qBAAA,SAAA15L,GACA,GAAA25L,IAAA,EACArjG,EAAA7mG,IACAkkC,GAAAlkC,MAAA2G,IAAA,kBAAA,WAAAujM,GAAA,GACA,IAAAprM,GAAA,WAAAorM,GAAAhmK,EAAA2iE,GAAA92E,QAAAmU,EAAAp7B,QAAAkhM,WAAAtmM,KAEA,OADApE,YAAAR,EAAAyR,GACAvQ,MAGAkkC,EAAA,WACAA,EAAAp7B,QAAAkhM,WAAAL,IAEAzlK,EAAAp7B,QAAAkhM,aAEA9lK,EAAAr9B,MAAAmmB,QAAAm9K,iBACA58K,SAAA2W,EAAAp7B,QAAAkhM,WAAAtmM,IACA4pB,aAAA4W,EAAAp7B,QAAAkhM,WAAAtmM,IACAuE,OAAA,SAAAxJ,GACA,GAAAylC,EAAAzlC,EAAAmU,QAAA6T,GAAAzmB,MAAA,MAAAvB,GAAAsuB,UAAAlT,QAAApd,MAAAuD,KAAA1D,iBAKAoD,QAWA,SAAAwkC,GACA,YAqDA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,WAEAA,IAAAkoM,EAAAloM,KAAA,WAAAA,EAAA,GAAAmoM,GAAArqM,OACA,gBAAA4rB,IAAA1pB,EAAA0pB,GAAA1xB,KAAAkwM,KAtDA,GAAAE,GAAA,yBACAD,EAAA,SAAA1+K,GACAuY,EAAAvY,GAAAplB,GAAA,QAAA+jM,EAAAtqM,KAAAwK,OAGA6/L,GAAAt8G,QAAA,QAEAs8G,EAAAE,oBAAA,IAEAF,EAAAvsM,UAAA0M,MAAA,SAAA/L,GAuBA,QAAA+rM,KAEAC,EAAAxgM,SAAA8lB,QAAA,mBAAAvmB,SAxBA,GAAA4gM,GAAAlmK,EAAAlkC,MACAyG,EAAA2jM,EAAA7nL,KAAA,cAEA9b,KACAA,EAAA2jM,EAAA7nL,KAAA,QACA9b,EAAAA,GAAAA,EAAA9K,QAAA,iBAAA,IAGA,IAAA8uM,GAAAvmK,EAAA,MAAAz9B,KAAAA,EAEAhI,IAAAA,EAAA8vB,iBAEAk8K,EAAAlvM,SACAkvM,EAAAL,EAAAhjL,QAAA,WAGAqjL,EAAA16K,QAAAtxB,EAAAylC,EAAArU,MAAA,mBAEApxB,EAAA2xB,uBAEAq6K,EAAApxK,YAAA,MAOA6K,EAAAp7B,QAAAkhM,YAAAS,EAAAhxK,SAAA,QACAgxK,EACA9jM,IAAA,kBAAA6jM,GACAP,qBAAAI,EAAAE,qBACAC,KAiBA,IAAAj4K,GAAA2R,EAAAx9B,GAAAgkM,KAEAxmK,GAAAx9B,GAAAgkM,MAAA7xG,EACA30D,EAAAx9B,GAAAgkM,MAAA7hH,YAAAwhH,EAMAnmK,EAAAx9B,GAAAgkM,MAAAvmK,WAAA,WAEA,MADAD,GAAAx9B,GAAAgkM,MAAAn4K,EACAvyB,MAOAkkC,EAAArkC,UAAA0G,GAAA,0BAAA+jM,EAAAD,EAAAvsM,UAAA0M,QAEA9K,QAWA,SAAAwkC,GACA,YAmEA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,aACAf,EAAA,gBAAAyqB,IAAAA,CAEA1pB,IAAAkoM,EAAAloM,KAAA,YAAAA,EAAA,GAAAyoM,GAAA3qM,KAAAmB,IAEA,UAAAyqB,EAAA1pB,EAAAkM,SACAwd,GAAA1pB,EAAA0oM,SAAAh/K,KAvEA,GAAA++K,GAAA,SAAAn/H,EAAArqE,GACAnB,KAAAoiG,SAAAl+D,EAAAsnC,GACAxrE,KAAAmB,QAAA+iC,EAAAh8B,UAAAyiM,EAAAE,SAAA1pM,GACAnB,KAAA8qM,WAAA,EAGAH,GAAA58G,QAAA,QAEA48G,EAAAE,UACAE,YAAA,cAGAJ,EAAA7sM,UAAA8sM,SAAA,SAAAv2L,GACA,GAAAwwD,GAAA,WACAgiC,EAAA7mG,KAAAoiG,SACAh2F,EAAAy6F,EAAApgF,GAAA,SAAA,MAAA,OACAvkB,EAAA2kG,EAAA3kG,MAEAmS,IAAA,OAEA,MAAAnS,EAAA8oM,WAAAnkG,EAAA3kG,KAAA,YAAA2kG,EAAAz6F,MAGA9M,WAAA4kC,EAAA9yB,MAAA,WACAy1F,EAAAz6F,GAAA,MAAAlK,EAAAmS,GAAArU,KAAAmB,QAAAkT,GAAAnS,EAAAmS,IAEA,eAAAA,GACArU,KAAA8qM,WAAA,EACAjkG,EAAA7tE,SAAA6rC,GAAAtiD,KAAAsiD,EAAAA,GAAA7qE,KAAA6qE,GAAA,IACA7kE,KAAA8qM,YACA9qM,KAAA8qM,WAAA,EACAjkG,EAAAxtE,YAAAwrC,GAAA5sC,WAAA4sC,GAAA7qE,KAAA6qE,GAAA,KAEA7kE,MAAA,IAGA2qM,EAAA7sM,UAAAsQ,OAAA,WACA,GAAA68L,IAAA,EACAR,EAAAzqM,KAAAoiG,SAAAh7E,QAAA,0BAEA,IAAAqjL,EAAAlvM,OAAA,CACA,GAAA+iD,GAAAt+C,KAAAoiG,SAAAxkF,KAAA,QACA,UAAA0gC,EAAAtkD,KAAA,SACAskD,EAAAtkD,KAAA,aAAAixM,GAAA,GACAR,EAAA7sL,KAAA,WAAAyb,YAAA,UACAr5B,KAAAoiG,SAAAppE,SAAA,WACA,YAAAslB,EAAAtkD,KAAA,UACAskD,EAAAtkD,KAAA,aAAAgG,KAAAoiG,SAAA3oE,SAAA,YAAAwxK,GAAA,GACAjrM,KAAAoiG,SAAA9oE,YAAA,WAEAglB,EAAAtkD,KAAA,UAAAgG,KAAAoiG,SAAA3oE,SAAA,WACAwxK,GAAA3sJ,EAAAvuB,QAAA,cAEA/vB,MAAAoiG,SAAA7/E,KAAA,gBAAAviB,KAAAoiG,SAAA3oE,SAAA,WACAz5B,KAAAoiG,SAAA9oE,YAAA,UAqBA,IAAA/G,GAAA2R,EAAAx9B,GAAAue,MAEAif,GAAAx9B,GAAAue,OAAA4zE,EACA30D,EAAAx9B,GAAAue,OAAA4jE,YAAA8hH,EAMAzmK,EAAAx9B,GAAAue,OAAAkf,WAAA,WAEA,MADAD,GAAAx9B,GAAAue,OAAAsN,EACAvyB,MAOAkkC,EAAArkC,UACA0G,GAAA,2BAAA,0BAAA,SAAA9H,GACA,GAAAysM,GAAAhnK,EAAAzlC,EAAAmU,QAAAwU,QAAA,OACAyxE,GAAA3+F,KAAAgxM,EAAA,UACAhnK,EAAAzlC,EAAAmU,QAAA6T,GAAA,iDAEAhoB,EAAA8vB,iBAEA28K,EAAAzkL,GAAA,gBAAAykL,EAAAn7K,QAAA,SACAm7K,EAAAttL,KAAA,gCAAAnV,QAAAsnB,QAAA,YAGAxpB,GAAA,mDAAA,0BAAA,SAAA9H,GACAylC,EAAAzlC,EAAAmU,QAAAwU,QAAA,QAAAkS,YAAA,QAAA,eAAA59B,KAAA+C,EAAA0B,UAGAT,QAWA,SAAAwkC,GACA,YAqKA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,eACAf,EAAA+iC,EAAAh8B,UAAAijM,EAAAN,SAAAT,EAAAloM,OAAA,gBAAA0pB,IAAAA,GACA0kH,EAAA,gBAAA1kH,GAAAA,EAAAzqB,EAAAiqM,KAEAlpM,IAAAkoM,EAAAloM,KAAA,cAAAA,EAAA,GAAAipM,GAAAnrM,KAAAmB,IACA,gBAAAyqB,GAAA1pB,EAAAm0B,GAAAzK,GACA0kH,EAAApuI,EAAAouI,KACAnvI,EAAAg2B,UAAAj1B,EAAA8uH,QAAAq6E,UA1KA,GAAAF,GAAA,SAAA3/H,EAAArqE,GACAnB,KAAAoiG,SAAAl+D,EAAAsnC,GACAxrE,KAAAsrM,YAAAtrM,KAAAoiG,SAAAxkF,KAAA,wBACA5d,KAAAmB,QAAAA,EACAnB,KAAAsjI,OAAA,KACAtjI,KAAAurM,QAAA,KACAvrM,KAAAm3B,SAAA,KACAn3B,KAAAwrM,QAAA,KACAxrM,KAAAyrM,OAAA,KAEAzrM,KAAAmB,QAAAuqM,UAAA1rM,KAAAoiG,SAAA77F,GAAA,sBAAA29B,EAAA9yB,MAAApR,KAAA2rM,QAAA3rM,OAEA,SAAAA,KAAAmB,QAAA6vH,SAAA,gBAAAnxH,UAAAwK,kBAAArK,KAAAoiG,SACA77F,GAAA,yBAAA29B,EAAA9yB,MAAApR,KAAAgxH,MAAAhxH,OACAuG,GAAA,yBAAA29B,EAAA9yB,MAAApR,KAAAqrM,MAAArrM,OAGAmrM,GAAAp9G,QAAA,QAEAo9G,EAAAZ,oBAAA,IAEAY,EAAAN,UACA1zK,SAAA,IACA65F,MAAA,QACAnsH,MAAA,EACA6mM,UAAA,GAGAP,EAAArtM,UAAA6tM,QAAA,SAAAltM,GACA,IAAA,kBAAA/C,KAAA+C,EAAAmU,OAAAw5D,SAAA,CACA,OAAA3tE,EAAAgP,OACA,IAAA,IAAAzN,KAAAiU,MAAA,MACA,KAAA,IAAAjU,KAAAknB,MAAA,MACA,SAAA,OAGAzoB,EAAA8vB,mBAGA48K,EAAArtM,UAAAutM,MAAA,SAAA5sM,GASA,MARAA,KAAAuB,KAAAsjI,QAAA,GAEAtjI,KAAAm3B,UAAAE,cAAAr3B,KAAAm3B,UAEAn3B,KAAAmB,QAAAg2B,WACAn3B,KAAAsjI,SACAtjI,KAAAm3B,SAAAC,YAAA8M,EAAA9yB,MAAApR,KAAAknB,KAAAlnB,MAAAA,KAAAmB,QAAAg2B,WAEAn3B,MAGAmrM,EAAArtM,UAAA8tM,aAAA,SAAAn8G,GAEA,MADAzvF,MAAAyrM,OAAAh8G,EAAA5uE,SAAAoG,SAAA,SACAjnB,KAAAyrM,OAAAnuM,MAAAmyF,GAAAzvF,KAAAwrM,UAGAL,EAAArtM,UAAA+tM,oBAAA,SAAAx0J,EAAA3b,GACA,GAAAowK,GAAA9rM,KAAA4rM,aAAAlwK,EAGA,KAFA,QAAA2b,GAAA,IAAAy0J,GACA,QAAAz0J,GAAAy0J,GAAA9rM,KAAAyrM,OAAAlwM,OAAA,KACAyE,KAAAmB,QAAA0D,KAAA,MAAA62B,EACA,IAAA4xB,GAAA,QAAAjW,GAAA,EAAA,EACA00J,GAAAD,EAAAx+I,GAAAttD,KAAAyrM,OAAAlwM,MACA,OAAAyE,MAAAyrM,OAAAviM,GAAA6iM,IAGAZ,EAAArtM,UAAAu4B,GAAA,SAAAhP,GACA,GAAA89D,GAAAnlF,KACA8rM,EAAA9rM,KAAA4rM,aAAA5rM,KAAAwrM,QAAAxrM,KAAAoiG,SAAAxkF,KAAA,gBAEA,MAAAyJ,EAAArnB,KAAAyrM,OAAAlwM,OAAA,GAAA8rB,EAAA,GAEA,MAAArnB,MAAAurM,QAAAvrM,KAAAoiG,SAAAz7F,IAAA,mBAAA,WAAAw+E,EAAA9uD,GAAAhP,KACAykL,GAAAzkL,EAAArnB,KAAAgxH,QAAAq6E,QAEArrM,KAAAorM,MAAA/jL,EAAAykL,EAAA,OAAA,OAAA9rM,KAAAyrM,OAAAviM,GAAAme,KAGA8jL,EAAArtM,UAAAkzH,MAAA,SAAAvyH,GAUA,MATAA,KAAAuB,KAAAsjI,QAAA,GAEAtjI,KAAAoiG,SAAAxkF,KAAA,gBAAAriB,QAAA2oC,EAAAp7B,QAAAkhM,aACAhqM,KAAAoiG,SAAAryE,QAAAmU,EAAAp7B,QAAAkhM,WAAAtmM,KACA1D,KAAAqrM,OAAA,IAGArrM,KAAAm3B,SAAAE,cAAAr3B,KAAAm3B,UAEAn3B,MAGAmrM,EAAArtM,UAAAopB,KAAA,WACA,IAAAlnB,KAAAurM,QACA,MAAAvrM,MAAAorM,MAAA,SAGAD,EAAArtM,UAAAmW,KAAA,WACA,IAAAjU,KAAAurM,QACA,MAAAvrM,MAAAorM,MAAA,SAGAD,EAAArtM,UAAAstM,MAAA,SAAAjrM,EAAA+mB,GACA,GAAAskL,GAAAxrM,KAAAoiG,SAAAxkF,KAAA,gBACAouL,EAAA9kL,GAAAlnB,KAAA6rM,oBAAA1rM,EAAAqrM,GACAS,EAAAjsM,KAAAm3B,SACAkgB,EAAA,QAAAl3C,EAAA,OAAA,QACAglF,EAAAnlF,IAEA,IAAAgsM,EAAAvyK,SAAA,UAAA,MAAAz5B,MAAAurM,SAAA,CAEA,IAAAz6K,GAAAk7K,EAAA,GACAE,EAAAhoK,EAAArU,MAAA,qBACAiB,cAAAA,EACAumB,UAAAA,GAGA,IADAr3C,KAAAoiG,SAAAryE,QAAAm8K,IACAA,EAAA97K,qBAAA,CAMA,GAJApwB,KAAAurM,SAAA,EAEAU,GAAAjsM,KAAAgxH,QAEAhxH,KAAAsrM,YAAA/vM,OAAA,CACAyE,KAAAsrM,YAAA1tL,KAAA,WAAAyb,YAAA,SACA,IAAA8yK,GAAAjoK,EAAAlkC,KAAAsrM,YAAArkL,WAAAjnB,KAAA4rM,aAAAI,IACAG,IAAAA,EAAAnzK,SAAA,UAGA,GAAAozK,GAAAloK,EAAArU,MAAA,oBAAAiB,cAAAA,EAAAumB,UAAAA,GAyBA,OAxBAnT,GAAAp7B,QAAAkhM,YAAAhqM,KAAAoiG,SAAA3oE,SAAA,UACAuyK,EAAAhzK,SAAA74B,GACA6rM,EAAA,GAAAx/L,YACAg/L,EAAAxyK,SAAAqe,GACA20J,EAAAhzK,SAAAqe,GACAm0J,EACA7kM,IAAA,kBAAA,WACAqlM,EAAA3yK,aAAAl5B,EAAAk3C,GAAAr7C,KAAA,MAAAg9B,SAAA,UACAwyK,EAAAnyK,aAAA,SAAAge,GAAAr7C,KAAA,MACAmpF,EAAAomH,SAAA,EACAjsM,WAAA,WACA6lF,EAAAid,SAAAryE,QAAAq8K,IACA,KAEAnC,qBAAAkB,EAAAZ,uBAEAiB,EAAAnyK,YAAA,UACA2yK,EAAAhzK,SAAA,UACAh5B,KAAAurM,SAAA,EACAvrM,KAAAoiG,SAAAryE,QAAAq8K,IAGAH,GAAAjsM,KAAAqrM,QAEArrM,MAqBA,IAAAuyB,GAAA2R,EAAAx9B,GAAA2lM,QAEAnoK,GAAAx9B,GAAA2lM,SAAAxzG,EACA30D,EAAAx9B,GAAA2lM,SAAAxjH,YAAAsiH,EAMAjnK,EAAAx9B,GAAA2lM,SAAAloK,WAAA,WAEA,MADAD,GAAAx9B,GAAA2lM,SAAA95K,EACAvyB,KAOA,IAAAssM,GAAA,SAAA7tM,GACA,GAAAkmB,GACAylL,EAAAlmK,EAAAlkC,MACAywI,EAAAvsG,EAAAkmK,EAAA7nL,KAAA,iBAAAoC,EAAAylL,EAAA7nL,KAAA,UAAAoC,EAAAhpB,QAAA,iBAAA,IACA,IAAA80I,EAAAh3G,SAAA,YAAA,CACA,GAAAt4B,GAAA+iC,EAAAh8B,UAAAuoI,EAAAvuI,OAAAkoM,EAAAloM,QACAqqM,EAAAnC,EAAA7nL,KAAA,gBACAgqL,KAAAprM,EAAAg2B,UAAA,GAEA0hE,EAAA3+F,KAAAu2I,EAAAtvI,GAEAorM,GACA97D,EAAAvuI,KAAA,eAAAm0B,GAAAk2K,GAGA9tM,EAAA8vB,kBAGA2V,GAAArkC,UACA0G,GAAA,6BAAA,eAAA+lM,GACA/lM,GAAA,6BAAA,kBAAA+lM,GAEApoK,EAAAnkC,QAAAwG,GAAA,OAAA,WACA29B,EAAA,0BAAA7iC,KAAA,WACA,GAAAmrM,GAAAtoK,EAAAlkC,KACA64F,GAAA3+F,KAAAsyM,EAAAA,EAAAtqM,aAIAxC,QAYA,SAAAwkC,GACA,YAkJA,SAAAuoK,GAAAC,GACA,GAAA/nL,GACA/R,EAAA85L,EAAAnqL,KAAA,iBACAoC,EAAA+nL,EAAAnqL,KAAA,UAAAoC,EAAAhpB,QAAA,iBAAA,GAEA,OAAAuoC,GAAAtxB,GAOA,QAAAimF,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,eACAf,EAAA+iC,EAAAh8B,UAAAykM,EAAA9B,SAAAT,EAAAloM,OAAA,gBAAA0pB,IAAAA,IAEA1pB,GAAAf,EAAAiN,QAAA,YAAA1S,KAAAkwB,KAAAzqB,EAAAiN,QAAA,GACAlM,GAAAkoM,EAAAloM,KAAA,cAAAA,EAAA,GAAAyqM,GAAA3sM,KAAAmB,IACA,gBAAAyqB,IAAA1pB,EAAA0pB,OAjKA,GAAA+gL,GAAA,SAAAnhI,EAAArqE,GACAnB,KAAAoiG,SAAAl+D,EAAAsnC,GACAxrE,KAAAmB,QAAA+iC,EAAAh8B,UAAAykM,EAAA9B,SAAA1pM,GACAnB,KAAA0sM,SAAAxoK,EAAA,mCAAAsnC,EAAA7sE,GAAA,6CACA6sE,EAAA7sE,GAAA,MACAqB,KAAA4sM,cAAA,KAEA5sM,KAAAmB,QAAA0f,OACA7gB,KAAAyqM,QAAAzqM,KAAA6sM,YAEA7sM,KAAA8sM,yBAAA9sM,KAAAoiG,SAAApiG,KAAA0sM,UAGA1sM,KAAAmB,QAAAiN,QAAApO,KAAAoO,SAGAu+L,GAAA5+G,QAAA,QAEA4+G,EAAApC,oBAAA,IAEAoC,EAAA9B,UACAz8L,QAAA,GAGAu+L,EAAA7uM,UAAA0lF,UAAA,WAEA,MADAxjF,MAAAoiG,SAAA3oE,SAAA,SACA,QAAA,UAGAkzK,EAAA7uM,UAAA+O,KAAA,WACA,IAAA7M,KAAA4sM,gBAAA5sM,KAAAoiG,SAAA3oE,SAAA,MAAA,CAEA,GAAAszK,GACAC,EAAAhtM,KAAAyqM,SAAAzqM,KAAAyqM,QAAAxjL,SAAA,UAAAA,SAAA,mBAEA,MAAA+lL,GAAAA,EAAAzxM,SACAwxM,EAAAC,EAAA9qM,KAAA,iBACA6qM,EAAAH,eAFA,CAKA,GAAAK,GAAA/oK,EAAArU,MAAA,mBAEA,IADA7vB,KAAAoiG,SAAAryE,QAAAk9K,IACAA,EAAA78K,qBAAA,CAEA48K,GAAAA,EAAAzxM,SACAs9F,EAAA3+F,KAAA8yM,EAAA,QACAD,GAAAC,EAAA9qM,KAAA,cAAA,MAGA,IAAAshF,GAAAxjF,KAAAwjF,WAEAxjF,MAAAoiG,SACA/oE,YAAA,YACAL,SAAA,cAAAwqD,GAAA,GACAjhE,KAAA,iBAAA,GAEAviB,KAAA0sM,SACArzK,YAAA,aACA9W,KAAA,iBAAA,GAEAviB,KAAA4sM,cAAA,CAEA,IAAAp7L,GAAA,WACAxR,KAAAoiG,SACA/oE,YAAA,cACAL,SAAA,eAAAwqD,GAAA,IACAxjF,KAAA4sM,cAAA,EACA5sM,KAAAoiG,SACAryE,QAAA,qBAGA,KAAAmU,EAAAp7B,QAAAkhM,WAAA,MAAAx4L,GAAAtX,KAAA8F,KAEA,IAAAktM,GAAAhpK,EAAAz0B,WAAA,SAAA+zE,GAAAxnF,KAAA,KAEAgE,MAAAoiG,SACAz7F,IAAA,kBAAAu9B,EAAA9yB,MAAAI,EAAAxR,OACAiqM,qBAAA0C,EAAApC,qBAAA/mH,GAAAxjF,KAAAoiG,SAAA,GAAA8qG,QAGAP,EAAA7uM,UAAAwR,KAAA,WACA,IAAAtP,KAAA4sM,eAAA5sM,KAAAoiG,SAAA3oE,SAAA,MAAA,CAEA,GAAAwzK,GAAA/oK,EAAArU,MAAA,mBAEA,IADA7vB,KAAAoiG,SAAAryE,QAAAk9K,IACAA,EAAA78K,qBAAA,CAEA,GAAAozD,GAAAxjF,KAAAwjF,WAEAxjF,MAAAoiG,SAAA5e,GAAAxjF,KAAAoiG,SAAA5e,MAAA,GAAA/2E,aAEAzM,KAAAoiG,SACAppE,SAAA,cACAK,YAAA,eACA9W,KAAA,iBAAA,GAEAviB,KAAA0sM,SACA1zK,SAAA,aACAzW,KAAA,iBAAA,GAEAviB,KAAA4sM,cAAA,CAEA,IAAAp7L,GAAA,WACAxR,KAAA4sM,cAAA,EACA5sM,KAAAoiG,SACA/oE,YAAA,cACAL,SAAA,YACAjJ,QAAA,sBAGA,KAAAmU,EAAAp7B,QAAAkhM,WAAA,MAAAx4L,GAAAtX,KAAA8F,KAEAA,MAAAoiG,SACA5e,GAAA,GACA78E,IAAA,kBAAAu9B,EAAA9yB,MAAAI,EAAAxR,OACAiqM,qBAAA0C,EAAApC,wBAGAoC,EAAA7uM,UAAAsQ,OAAA,WACApO,KAAAA,KAAAoiG,SAAA3oE,SAAA,MAAA,OAAA,WAGAkzK,EAAA7uM,UAAA+uM,UAAA,WACA,MAAA3oK,GAAAlkC,KAAAmB,QAAA0f,QACAjD,KAAA,yCAAA5d,KAAAmB,QAAA0f,OAAA,MACAxf,KAAA6iC,EAAA9yB,MAAA,SAAAtW,EAAA0wE,GACA,GAAA42B,GAAAl+D,EAAAsnC,EACAxrE,MAAA8sM,yBAAAL,EAAArqG,GAAAA,IACApiG,OACA0D,OAGAipM,EAAA7uM,UAAAgvM,yBAAA,SAAA1qG,EAAAsqG,GACA,GAAAS,GAAA/qG,EAAA3oE,SAAA,KAEA2oE,GAAA7/E,KAAA,gBAAA4qL,GACAT,EACApzK,YAAA,aAAA6zK,GACA5qL,KAAA,gBAAA4qL,GA2BA,IAAA56K,GAAA2R,EAAAx9B,GAAAkiG,QAEA1kE,GAAAx9B,GAAAkiG,SAAA/P,EACA30D,EAAAx9B,GAAAkiG,SAAA/f,YAAA8jH,EAMAzoK,EAAAx9B,GAAAkiG,SAAAzkE,WAAA,WAEA,MADAD,GAAAx9B,GAAAkiG,SAAAr2E,EACAvyB,MAOAkkC,EAAArkC,UAAA0G,GAAA,6BAAA,2BAAA,SAAA9H,GACA,GAAA2rM,GAAAlmK,EAAAlkC,KAEAoqM,GAAA7nL,KAAA,gBAAA9jB,EAAA8vB,gBAEA,IAAAkiH,GAAAg8D,EAAArC,GACAloM,EAAAuuI,EAAAvuI,KAAA,eACA0pB,EAAA1pB,EAAA,SAAAkoM,EAAAloM,MAEA22F,GAAA3+F,KAAAu2I,EAAA7kH,MAGAlsB,QAWA,SAAAwkC,GACA,YAaA,SAAA2oK,GAAAzC,GACA,GAAA3jM,GAAA2jM,EAAA7nL,KAAA,cAEA9b,KACAA,EAAA2jM,EAAA7nL,KAAA,QACA9b,EAAAA,GAAA,YAAA/K,KAAA+K,IAAAA,EAAA9K,QAAA,iBAAA,IAGA,IAAA8uM,GAAAhkM,GAAAy9B,EAAAz9B,EAEA,OAAAgkM,IAAAA,EAAAlvM,OAAAkvM,EAAAL,EAAAvpL,SAGA,QAAAusL,GAAA3uM,GACAA,GAAA,IAAAA,EAAAgP,QACAy2B,EAAAmpK,GAAA7jM,SACA06B,EAAA91B,GAAA/M,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAyqM,EAAAoC,EAAAzC,GACAt5K,GAAAA,cAAA9wB,KAEAyqM,GAAAhxK,SAAA,UAEAh7B,GAAA,SAAAA,EAAA0B,MAAA,kBAAAzE,KAAA+C,EAAAmU,OAAAw5D,UAAAloC,EAAAp/B,SAAA2lM,EAAA,GAAAhsM,EAAAmU,UAEA63L,EAAA16K,QAAAtxB,EAAAylC,EAAArU,MAAA,mBAAAiB,IAEAryB,EAAA2xB,uBAEAg6K,EAAA7nL,KAAA,gBAAA,SACAkoL,EAAApxK,YAAA,QAAAtJ,QAAAmU,EAAArU,MAAA,qBAAAiB,UA4EA,QAAA+nE,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,cAEAA,IAAAkoM,EAAAloM,KAAA,cAAAA,EAAA,GAAAorM,GAAAttM,OACA,gBAAA4rB,IAAA1pB,EAAA0pB,GAAA1xB,KAAAkwM,KAxHA,GAAAiD,GAAA,qBACAj/L,EAAA,2BACAk/L,EAAA,SAAA9hI,GACAtnC,EAAAsnC,GAAAjlE,GAAA,oBAAAvG,KAAAoO,QAGAk/L,GAAAv/G,QAAA,QAoCAu/G,EAAAxvM,UAAAsQ,OAAA,SAAA3P,GACA,GAAA2rM,GAAAlmK,EAAAlkC,KAEA,KAAAoqM,EAAA3jL,GAAA,wBAAA,CAEA,GAAAgkL,GAAAoC,EAAAzC,GACAxyD,EAAA6yD,EAAAhxK,SAAA,OAIA,IAFA2zK,KAEAx1D,EAAA,CACA,gBAAA/3I,UAAAwK,kBAAAogM,EAAArjL,QAAA,eAAA7rB,QAEA2oC,EAAArkC,SAAAuF,cAAA,QACA4zB,SAAA,qBACAlH,YAAAoS,EAAAlkC,OACAuG,GAAA,QAAA6mM,EAGA,IAAAt8K,IAAAA,cAAA9wB,KAGA,IAFAyqM,EAAA16K,QAAAtxB,EAAAylC,EAAArU,MAAA,mBAAAiB,IAEAryB,EAAA2xB,qBAAA,MAEAg6K,GACAr6K,QAAA,SACAxN,KAAA,gBAAA,QAEAkoL,EACAnxK,YAAA,QACAvJ,QAAAmU,EAAArU,MAAA,oBAAAiB,IAGA,OAAA,IAGAw8K,EAAAxvM,UAAA6tM,QAAA,SAAAltM,GACA,GAAA,gBAAA/C,KAAA+C,EAAAgP,SAAA,kBAAA/R,KAAA+C,EAAAmU,OAAAw5D,SAAA,CAEA,GAAAg+H,GAAAlmK,EAAAlkC,KAKA,IAHAvB,EAAA8vB,iBACA9vB,EAAA+vB,mBAEA47K,EAAA3jL,GAAA,wBAAA,CAEA,GAAAgkL,GAAAoC,EAAAzC,GACAxyD,EAAA6yD,EAAAhxK,SAAA,OAEA,KAAAm+G,GAAA,IAAAn5I,EAAAgP,OAAAmqI,GAAA,IAAAn5I,EAAAgP,MAEA,MADA,KAAAhP,EAAAgP,OAAAg9L,EAAA7sL,KAAAxP,GAAA2hB,QAAA,SACAq6K,EAAAr6K,QAAA,QAGA,IACA07K,GAAAhB,EAAA7sL,KAAA,6CAEA,IAAA6tL,EAAAlwM,OAAA,CAEA,GAAA+B,GAAAmuM,EAAAnuM,MAAAmB,EAAAmU,OAEA,KAAAnU,EAAAgP,OAAAnQ,EAAA,GAAAA,IACA,IAAAmB,EAAAgP,OAAAnQ,EAAAmuM,EAAAlwM,OAAA,GAAA+B,KACAA,IAAAA,EAAA,GAEAmuM,EAAAviM,GAAA5L,GAAAyyB,QAAA,YAiBA,IAAAwC,GAAA2R,EAAAx9B,GAAA6mM,QAEArpK,GAAAx9B,GAAA6mM,SAAA10G,EACA30D,EAAAx9B,GAAA6mM,SAAA1kH,YAAAykH,EAMAppK,EAAAx9B,GAAA6mM,SAAAppK,WAAA,WAEA,MADAD,GAAAx9B,GAAA6mM,SAAAh7K,EACAvyB,MAOAkkC,EAAArkC,UACA0G,GAAA,6BAAA6mM,GACA7mM,GAAA,6BAAA,iBAAA,SAAA9H,GAAAA,EAAA+vB,oBACAjoB,GAAA,6BAAA6H,EAAAk/L,EAAAxvM,UAAAsQ,QACA7H,GAAA,+BAAA6H,EAAAk/L,EAAAxvM,UAAA6tM,SACAplM,GAAA,+BAAA,iBAAA+mM,EAAAxvM,UAAA6tM,UAEAjsM,QAWA,SAAAwkC,GACA,YAyRA,SAAA20D,GAAAjtE,EAAA4hL,GACA,MAAAxtM,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,YACAf,EAAA+iC,EAAAh8B,UAAAulM,EAAA5C,SAAAT,EAAAloM,OAAA,gBAAA0pB,IAAAA,EAEA1pB,IAAAkoM,EAAAloM,KAAA,WAAAA,EAAA,GAAAurM,GAAAztM,KAAAmB,IACA,gBAAAyqB,GAAA1pB,EAAA0pB,GAAA4hL,GACArsM,EAAA0L,MAAA3K,EAAA2K,KAAA2gM,KA5RA,GAAAC,GAAA,SAAAjiI,EAAArqE,GACAnB,KAAAmB,QAAAA,EACAnB,KAAAstH,MAAAppF,EAAArkC,SAAAkK,MACA/J,KAAAoiG,SAAAl+D,EAAAsnC,GACAxrE,KAAA0tM,QAAA1tM,KAAAoiG,SAAAxkF,KAAA,iBACA5d,KAAA2tM,UAAA,KACA3tM,KAAA4tM,QAAA,KACA5tM,KAAA6tM,gBAAA,KACA7tM,KAAA8tM,eAAA,EACA9tM,KAAA+tM,qBAAA,EAEA/tM,KAAAmB,QAAA6sM,QACAhuM,KAAAoiG,SACAxkF,KAAA,kBACAze,KAAAa,KAAAmB,QAAA6sM,OAAA9pK,EAAA9yB,MAAA,WACApR,KAAAoiG,SAAAryE,QAAA,oBACA/vB,OAIAytM,GAAA1/G,QAAA,QAEA0/G,EAAAlD,oBAAA,IACAkD,EAAAQ,6BAAA,IAEAR,EAAA5C,UACAwC,UAAA,EACA3B,UAAA,EACA7+L,MAAA,GAGA4gM,EAAA3vM,UAAAsQ,OAAA,SAAAo/L,GACA,MAAAxtM,MAAA4tM,QAAA5tM,KAAAsP,OAAAtP,KAAA6M,KAAA2gM,IAGAC,EAAA3vM,UAAA+O,KAAA,SAAA2gM,GACA,GAAAroH,GAAAnlF,KACAvB,EAAAylC,EAAArU,MAAA,iBAAAiB,cAAA08K,GAEAxtM,MAAAoiG,SAAAryE,QAAAtxB,GAEAuB,KAAA4tM,SAAAnvM,EAAA2xB,uBAEApwB,KAAA4tM,SAAA,EAEA5tM,KAAAkuM,iBACAluM,KAAAmuM,eACAnuM,KAAAstH,MAAAt0F,SAAA,cAEAh5B,KAAA65D,SACA75D,KAAAouM,SAEApuM,KAAAoiG,SAAA77F,GAAA,yBAAA,yBAAA29B,EAAA9yB,MAAApR,KAAAsP,KAAAtP,OAEAA,KAAA0tM,QAAAnnM,GAAA,6BAAA,WACA4+E,EAAAid,SAAAz7F,IAAA,2BAAA,SAAAlI,GACAylC,EAAAzlC,EAAAmU,QAAA6T,GAAA0+D,EAAAid,YAAAjd,EAAA4oH,qBAAA,OAIA/tM,KAAAqtM,SAAA,WACA,GAAArD,GAAA9lK,EAAAp7B,QAAAkhM,YAAA7kH,EAAAid,SAAA3oE,SAAA,OAEA0rD,GAAAid,SAAAvhF,SAAAtlB,QACA4pF,EAAAid,SAAAt4F,SAAAq7E,EAAAmoC,OAGAnoC,EAAAid,SACAv1F,OACA4iB,UAAA,GAEA01D,EAAAkpH,eAEArE,GACA7kH,EAAAid,SAAA,GAAA51F,YAGA24E,EAAAid,SAAAppE,SAAA,MAEAmsD,EAAAmpH,cAEA,IAAA7vM,GAAAylC,EAAArU,MAAA,kBAAAiB,cAAA08K,GAEAxD,GACA7kH,EAAAuoH,QACA/mM,IAAA,kBAAA,WACAw+E,EAAAid,SAAAryE,QAAA,SAAAA,QAAAtxB,KAEAwrM,qBAAAwD,EAAAlD,qBACAplH,EAAAid,SAAAryE,QAAA,SAAAA,QAAAtxB,OAIAgvM,EAAA3vM,UAAAwR,KAAA,SAAA7Q,GACAA,GAAAA,EAAA8vB,iBAEA9vB,EAAAylC,EAAArU,MAAA,iBAEA7vB,KAAAoiG,SAAAryE,QAAAtxB,GAEAuB,KAAA4tM,UAAAnvM,EAAA2xB,uBAEApwB,KAAA4tM,SAAA,EAEA5tM,KAAA65D,SACA75D,KAAAouM,SAEAlqK,EAAArkC,UAAAiH,IAAA,oBAEA9G,KAAAoiG,SACA/oE,YAAA,MACAvyB,IAAA,0BACAA,IAAA,4BAEA9G,KAAA0tM,QAAA5mM,IAAA,8BAEAo9B,EAAAp7B,QAAAkhM,YAAAhqM,KAAAoiG,SAAA3oE,SAAA,QACAz5B,KAAAoiG,SACAz7F,IAAA,kBAAAu9B,EAAA9yB,MAAApR,KAAAuuM,UAAAvuM,OACAiqM,qBAAAwD,EAAAlD,qBACAvqM,KAAAuuM,cAGAd,EAAA3vM,UAAAwwM,aAAA,WACApqK,EAAArkC,UACAiH,IAAA,oBACAP,GAAA,mBAAA29B,EAAA9yB,MAAA,SAAA3S,GACAoB,WAAApB,EAAAmU,QACA5S,KAAAoiG,SAAA,KAAA3jG,EAAAmU,QACA5S,KAAAoiG,SAAAl+E,IAAAzlB,EAAAmU,QAAArX,QACAyE,KAAAoiG,SAAAryE,QAAA,UAEA/vB,QAGAytM,EAAA3vM,UAAA+7D,OAAA,WACA75D,KAAA4tM,SAAA5tM,KAAAmB,QAAAuqM,SACA1rM,KAAAoiG,SAAA77F,GAAA,2BAAA29B,EAAA9yB,MAAA,SAAA3S;oGACA,IAAAA,EAAAgP,OAAAzN,KAAAsP,QACAtP,OACAA,KAAA4tM,SACA5tM,KAAAoiG,SAAAt7F,IAAA,6BAIA2mM,EAAA3vM,UAAAswM,OAAA,WACApuM,KAAA4tM,QACA1pK,EAAAnkC,QAAAwG,GAAA,kBAAA29B,EAAA9yB,MAAApR,KAAAwuM,aAAAxuM,OAEAkkC,EAAAnkC,QAAA+G,IAAA,oBAIA2mM,EAAA3vM,UAAAywM,UAAA,WACA,GAAAppH,GAAAnlF,IACAA,MAAAoiG,SAAA9yF,OACAtP,KAAAqtM,SAAA,WACAloH,EAAAmoC,MAAAj0F,YAAA,cACA8rD,EAAAspH,mBACAtpH,EAAAupH,iBACAvpH,EAAAid,SAAAryE,QAAA,sBAIA09K,EAAA3vM,UAAA6wM,eAAA,WACA3uM,KAAA2tM,WAAA3tM,KAAA2tM,UAAAnkM,SACAxJ,KAAA2tM,UAAA,MAGAF,EAAA3vM,UAAAuvM,SAAA,SAAAvuM,GACA,GAAAqmF,GAAAnlF,KACAs2B,EAAAt2B,KAAAoiG,SAAA3oE,SAAA,QAAA,OAAA,EAEA,IAAAz5B,KAAA4tM,SAAA5tM,KAAAmB,QAAAksM,SAAA,CACA,GAAAuB,GAAA1qK,EAAAp7B,QAAAkhM,YAAA1zK,CAqBA,IAnBAt2B,KAAA2tM,UAAAzpK,EAAArkC,SAAAuF,cAAA,QACA4zB,SAAA,kBAAA1C,GACAxsB,SAAA9J,KAAAstH,OAEAttH,KAAAoiG,SAAA77F,GAAA,yBAAA29B,EAAA9yB,MAAA,SAAA3S,GACA,GAAAuB,KAAA+tM,oBAEA,YADA/tM,KAAA+tM,qBAAA,EAGAtvM,GAAAmU,SAAAnU,EAAA2vB,gBACA,UAAApuB,KAAAmB,QAAAksM,SACArtM,KAAAoiG,SAAA,GAAA39E,QACAzkB,KAAAsP,SACAtP,OAEA4uM,GAAA5uM,KAAA2tM,UAAA,GAAAnhM,YAEAxM,KAAA2tM,UAAA30K,SAAA,OAEAl6B,EAAA,MAEA8vM,GACA5uM,KAAA2tM,UACAhnM,IAAA,kBAAA7H,GACAmrM,qBAAAwD,EAAAQ,8BACAnvM,QAEA,KAAAkB,KAAA4tM,SAAA5tM,KAAA2tM,UAAA,CACA3tM,KAAA2tM,UAAAt0K,YAAA,KAEA,IAAAw1K,GAAA,WACA1pH,EAAAwpH,iBACA7vM,GAAAA,IAEAolC,GAAAp7B,QAAAkhM,YAAAhqM,KAAAoiG,SAAA3oE,SAAA,QACAz5B,KAAA2tM,UACAhnM,IAAA,kBAAAkoM,GACA5E,qBAAAwD,EAAAQ,8BACAY,QAEA/vM,IACAA,KAMA2uM,EAAA3vM,UAAA0wM,aAAA,WACAxuM,KAAAquM,gBAGAZ,EAAA3vM,UAAAuwM,aAAA,WACA,GAAAS,GAAA9uM,KAAAoiG,SAAA,GAAA+3B,aAAAt6H,SAAAwK,gBAAA80G,YAEAn/G,MAAAoiG,SAAAn/F,KACA8rM,aAAA/uM,KAAAgvM,mBAAAF,EAAA9uM,KAAA8tM,eAAA,GACAmB,aAAAjvM,KAAAgvM,oBAAAF,EAAA9uM,KAAA8tM,eAAA,MAIAL,EAAA3vM,UAAA2wM,iBAAA,WACAzuM,KAAAoiG,SAAAn/F,KACA8rM,YAAA,GACAE,aAAA,MAIAxB,EAAA3vM,UAAAowM,eAAA,WACA,GAAAgB,GAAAnvM,OAAAovM,UACA,KAAAD,EAAA,CACA,GAAAE,GAAAvvM,SAAAwK,gBAAAyqB,uBACAo6K,GAAAE,EAAA5nH,MAAA17E,KAAAs/B,IAAAgkK,EAAAr6K,MAEA/0B,KAAAgvM,kBAAAnvM,SAAAkK,KAAAm1G,YAAAgwF,EACAlvM,KAAA8tM,eAAA9tM,KAAAqvM,oBAGA5B,EAAA3vM,UAAAqwM,aAAA,WACA,GAAAmB,GAAA12K,SAAA54B,KAAAstH,MAAArqH,IAAA,kBAAA,EAAA,GACAjD,MAAA6tM,gBAAAhuM,SAAAkK,KAAAvG,MAAAyrM,cAAA,GACAjvM,KAAAgvM,mBAAAhvM,KAAAstH,MAAArqH,IAAA,gBAAAqsM,EAAAtvM,KAAA8tM,iBAGAL,EAAA3vM,UAAA4wM,eAAA,WACA1uM,KAAAstH,MAAArqH,IAAA,gBAAAjD,KAAA6tM,kBAGAJ,EAAA3vM,UAAAuxM,iBAAA,WACA,GAAAE,GAAA1vM,SAAAuF,cAAA,MACAmqM,GAAAtuL,UAAA,0BACAjhB,KAAAstH,MAAAh8F,OAAAi+K,EACA,IAAAzB,GAAAyB,EAAA/iM,YAAA+iM,EAAArwF,WAEA,OADAl/G,MAAAstH,MAAA,GAAA1jH,YAAA2lM,GACAzB,EAmBA,IAAAv7K,GAAA2R,EAAAx9B,GAAA8oM,KAEAtrK,GAAAx9B,GAAA8oM,MAAA32G,EACA30D,EAAAx9B,GAAA8oM,MAAA3mH,YAAA4kH,EAMAvpK,EAAAx9B,GAAA8oM,MAAArrK,WAAA,WAEA,MADAD,GAAAx9B,GAAA8oM,MAAAj9K,EACAvyB,MAOAkkC,EAAArkC,UAAA0G,GAAA,0BAAA,wBAAA,SAAA9H,GACA,GAAA2rM,GAAAlmK,EAAAlkC,MACA2kB,EAAAylL,EAAA7nL,KAAA,QACAkuH,EAAAvsG,EAAAkmK,EAAA7nL,KAAA,gBAAAoC,GAAAA,EAAAhpB,QAAA,iBAAA,KACAiwB,EAAA6kH,EAAAvuI,KAAA,YAAA,SAAAgiC,EAAAh8B,QAAA8lM,QAAA,IAAAtyM,KAAAipB,IAAAA,GAAA8rH,EAAAvuI,OAAAkoM,EAAAloM,OAEAkoM,GAAA3jL,GAAA,MAAAhoB,EAAA8vB,iBAEAkiH,EAAA9pI,IAAA,gBAAA,SAAA8oM,GACAA,EAAAr/K,sBACAqgH,EAAA9pI,IAAA,kBAAA,WACAyjM,EAAA3jL,GAAA,aAAA2jL,EAAAr6K,QAAA,aAGA8oE,EAAA3+F,KAAAu2I,EAAA7kH,EAAA5rB,SAGAN,QAYA,SAAAwkC,GACA,YAkeA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,cACAf,EAAA,gBAAAyqB,IAAAA,GAEA1pB,GAAA,eAAAxG,KAAAkwB,KACA1pB,GAAAkoM,EAAAloM,KAAA,aAAAA,EAAA,GAAAwtM,GAAA1vM,KAAAmB,IACA,gBAAAyqB,IAAA1pB,EAAA0pB,QAreA,GAAA8jL,GAAA,SAAAlkI,EAAArqE,GACAnB,KAAAG,KAAA,KACAH,KAAAmB,QAAA,KACAnB,KAAA6kB,QAAA,KACA7kB,KAAA03B,QAAA,KACA13B,KAAA2vM,WAAA,KACA3vM,KAAAoiG,SAAA,KACApiG,KAAA4vM,QAAA,KAEA5vM,KAAAmN,KAAA,UAAAq+D,EAAArqE,GAGAuuM,GAAA3hH,QAAA,QAEA2hH,EAAAnF,oBAAA,IAEAmF,EAAA7E,UACA/8L,WAAA,EACA+hM,UAAA,MACAppM,UAAA,EACAyxF,SAAA,+GACAnoE,QAAA,cACAo6G,MAAA,GACA3yG,MAAA,EACAruB,MAAA,EACAupB,WAAA,EACAqrK,UACAt3L,SAAA,OACAwuB,QAAA,IAIAy6K,EAAA5xM,UAAAqP,KAAA,SAAAhN,EAAAqrE,EAAArqE,GAQA,GAPAnB,KAAA6kB,SAAA,EACA7kB,KAAAG,KAAAA,EACAH,KAAAoiG,SAAAl+D,EAAAsnC,GACAxrE,KAAAmB,QAAAnB,KAAA8vM,WAAA3uM,GACAnB,KAAAilG,UAAAjlG,KAAAmB,QAAA48L,UAAA75J,EAAAA,EAAAzjC,WAAAT,KAAAmB,QAAA48L,UAAA/9L,KAAAmB,QAAA48L,SAAA7jM,KAAA8F,KAAAA,KAAAoiG,UAAApiG,KAAAmB,QAAA48L,SAAAt3L,UAAAzG,KAAAmB,QAAA48L,UACA/9L,KAAA4vM,SAAA3/K,OAAA,EAAAqK,OAAA,EAAA7V,OAAA,GAEAzkB,KAAAoiG,SAAA,YAAAviG,UAAA0V,cAAAvV,KAAAmB,QAAAsF,SACA,KAAA,IAAAtJ,OAAA,yDAAA6C,KAAAG,KAAA,kCAKA,KAAA,GAFA4vM,GAAA/vM,KAAAmB,QAAA4uB,QAAA50B,MAAA,KAEAL,EAAAi1M,EAAAx0M,OAAAT,KAAA,CACA,GAAAi1B,GAAAggL,EAAAj1M,EAEA,IAAA,SAAAi1B,EACA/vB,KAAAoiG,SAAA77F,GAAA,SAAAvG,KAAAG,KAAAH,KAAAmB,QAAAsF,SAAAy9B,EAAA9yB,MAAApR,KAAAoO,OAAApO,WACA,IAAA,UAAA+vB,EAAA,CACA,GAAAigL,GAAA,SAAAjgL,EAAA,aAAA,UACAkgL,EAAA,SAAAlgL,EAAA,aAAA,UAEA/vB,MAAAoiG,SAAA77F,GAAAypM,EAAA,IAAAhwM,KAAAG,KAAAH,KAAAmB,QAAAsF,SAAAy9B,EAAA9yB,MAAApR,KAAAkwM,MAAAlwM,OACAA,KAAAoiG,SAAA77F,GAAA0pM,EAAA,IAAAjwM,KAAAG,KAAAH,KAAAmB,QAAAsF,SAAAy9B,EAAA9yB,MAAApR,KAAAmwM,MAAAnwM,QAIAA,KAAAmB,QAAAsF,SACAzG,KAAAynM,SAAAvjK,EAAAh8B,UAAAlI,KAAAmB,SAAA4uB,QAAA,SAAAtpB,SAAA,KACAzG,KAAAowM,YAGAV,EAAA5xM,UAAAuyM,YAAA,WACA,MAAAX,GAAA7E,UAGA6E,EAAA5xM,UAAAgyM,WAAA,SAAA3uM,GAUA,MATAA,GAAA+iC,EAAAh8B,UAAAlI,KAAAqwM,cAAArwM,KAAAoiG,SAAAlgG,OAAAf,GAEAA,EAAAq2B,OAAA,gBAAAr2B,GAAAq2B,QACAr2B,EAAAq2B,OACA3qB,KAAA1L,EAAAq2B,MACAloB,KAAAnO,EAAAq2B,QAIAr2B,GAGAuuM,EAAA5xM,UAAAwyM,mBAAA,WACA,GAAAnvM,MACA2zF,EAAA90F,KAAAqwM,aAMA,OAJArwM,MAAAynM,UAAAvjK,EAAA7iC,KAAArB,KAAAynM,SAAA,SAAAxlM,EAAApF,GACAi4F,EAAA7yF,IAAApF,IAAAsE,EAAAc,GAAApF,KAGAsE,GAGAuuM,EAAA5xM,UAAAoyM,MAAA,SAAAn2M,GACA,GAAAkP,GAAAlP,YAAAiG,MAAAuV,YACAxb,EAAAmqC,EAAAnqC,EAAAq0B,eAAAlsB,KAAA,MAAAlC,KAAAG,KAWA,OATA8I,KACAA,EAAA,GAAAjJ,MAAAuV,YAAAxb,EAAAq0B,cAAApuB,KAAAswM,sBACApsK,EAAAnqC,EAAAq0B,eAAAlsB,KAAA,MAAAlC,KAAAG,KAAA8I,IAGAlP,YAAAmqC,GAAArU,QACA5mB,EAAA2mM,QAAA,WAAA71M,EAAAoG,KAAA,QAAA,UAAA,GAGA8I,EAAAsnM,MAAA92K,SAAA,OAAA,MAAAxwB,EAAA0mM,gBACA1mM,EAAA0mM,WAAA,OAIAh4K,aAAA1uB,EAAAyuB,SAEAzuB,EAAA0mM,WAAA,KAEA1mM,EAAA9H,QAAAq2B,OAAAvuB,EAAA9H,QAAAq2B,MAAA3qB,UAEA5D,EAAAyuB,QAAAp4B,WAAA,WACA,MAAA2J,EAAA0mM,YAAA1mM,EAAA4D,QACA5D,EAAA9H,QAAAq2B,MAAA3qB,OAJA5D,EAAA4D,SAOA6iM,EAAA5xM,UAAA0yM,cAAA,WACA,IAAA,GAAAvuM,KAAAjC,MAAA4vM,QACA,GAAA5vM,KAAA4vM,QAAA3tM,GAAA,OAAA,CAGA,QAAA,GAGAytM,EAAA5xM,UAAAqyM,MAAA,SAAAp2M,GACA,GAAAkP,GAAAlP,YAAAiG,MAAAuV,YACAxb,EAAAmqC,EAAAnqC,EAAAq0B,eAAAlsB,KAAA,MAAAlC,KAAAG,KAWA,IATA8I,IACAA,EAAA,GAAAjJ,MAAAuV,YAAAxb,EAAAq0B,cAAApuB,KAAAswM,sBACApsK,EAAAnqC,EAAAq0B,eAAAlsB,KAAA,MAAAlC,KAAAG,KAAA8I,IAGAlP,YAAAmqC,GAAArU,QACA5mB,EAAA2mM,QAAA,YAAA71M,EAAAoG,KAAA,QAAA,UAAA,IAGA8I,EAAAunM,gBAAA,CAMA,GAJA74K,aAAA1uB,EAAAyuB,SAEAzuB,EAAA0mM,WAAA,OAEA1mM,EAAA9H,QAAAq2B,QAAAvuB,EAAA9H,QAAAq2B,MAAAloB,KAAA,MAAArG,GAAAqG,MAEArG,GAAAyuB,QAAAp4B,WAAA,WACA,OAAA2J,EAAA0mM,YAAA1mM,EAAAqG,QACArG,EAAA9H,QAAAq2B,MAAAloB,QAGAogM,EAAA5xM,UAAA+O,KAAA,WACA,GAAApO,GAAAylC,EAAArU,MAAA,WAAA7vB,KAAAG,KAEA,IAAAH,KAAA6+B,cAAA7+B,KAAA6kB,QAAA,CACA7kB,KAAAoiG,SAAAryE,QAAAtxB,EAEA,IAAAgyM,GAAAvsK,EAAAp/B,SAAA9E,KAAAoiG,SAAA,GAAAp8F,cAAAqE,gBAAArK,KAAAoiG,SAAA,GACA,IAAA3jG,EAAA2xB,uBAAAqgL,EAAA,MACA,IAAAtrH,GAAAnlF,KAEA0wM,EAAA1wM,KAAAuwM,MAEAI,EAAA3wM,KAAA4wM,OAAA5wM,KAAAG,KAEAH,MAAA6wM,aACAH,EAAAnuL,KAAA,KAAAouL,GACA3wM,KAAAoiG,SAAA7/E,KAAA,mBAAAouL,GAEA3wM,KAAAmB,QAAA2M,WAAA4iM,EAAA13K,SAAA,OAEA,IAAA62K,GAAA,kBAAA7vM,MAAAmB,QAAA0uM,UACA7vM,KAAAmB,QAAA0uM,UAAA31M,KAAA8F,KAAA0wM,EAAA,GAAA1wM,KAAAoiG,SAAA,IACApiG,KAAAmB,QAAA0uM,UAEAiB,EAAA,eACAC,EAAAD,EAAAp1M,KAAAm0M,EACAkB,KAAAlB,EAAAA,EAAAl0M,QAAAm1M,EAAA,KAAA,OAEAJ,EACAzmM,SACAhH,KAAA6d,IAAA,EAAAiU,KAAA,EAAA/qB,QAAA,UACAgvB,SAAA62K,GACA3tM,KAAA,MAAAlC,KAAAG,KAAAH,MAEAA,KAAAmB,QAAAuxB,UAAAg+K,EAAA5mM,SAAA9J,KAAAmB,QAAAuxB,WAAAg+K,EAAA5+K,YAAA9xB,KAAAoiG,UACApiG,KAAAoiG,SAAAryE,QAAA,eAAA/vB,KAAAG,KAEA,IAAAknB,GAAArnB,KAAAgxM,cACAC,EAAAP,EAAA,GAAAlkM,YACA0kM,EAAAR,EAAA,GAAAjkM,YAEA,IAAAskM,EAAA,CACA,GAAAI,GAAAtB,EACAuB,EAAApxM,KAAAgxM,YAAAhxM,KAAAilG,UAEA4qG,GAAA,UAAAA,GAAAxoL,EAAAs2E,OAAAuzG,EAAAE,EAAAzzG,OAAA,MACA,OAAAkyG,GAAAxoL,EAAAvG,IAAAowL,EAAAE,EAAAtwL,IAAA,SACA,SAAA+uL,GAAAxoL,EAAAmgE,MAAAypH,EAAAG,EAAAzmM,MAAA,OACA,QAAAklM,GAAAxoL,EAAA0N,KAAAk8K,EAAAG,EAAAr8K,KAAA,QACA86K,EAEAa,EACAr3K,YAAA83K,GACAn4K,SAAA62K,GAGA,GAAAwB,GAAArxM,KAAAsxM,oBAAAzB,EAAAxoL,EAAA4pL,EAAAC,EAEAlxM,MAAAuxM,eAAAF,EAAAxB,EAEA,IAAAr+L,GAAA,WACA,GAAAggM,GAAArsH,EAAAwqH,UACAxqH,GAAAid,SAAAryE,QAAA,YAAAo1D,EAAAhlF,MACAglF,EAAAwqH,WAAA,KAEA,OAAA6B,GAAArsH,EAAAgrH,MAAAhrH,GAGAjhD,GAAAp7B,QAAAkhM,YAAAhqM,KAAA0wM,KAAAj3K,SAAA,QACAi3K,EACA/pM,IAAA,kBAAA6K,GACAy4L,qBAAAyF,EAAAnF,qBACA/4L,MAIAk+L,EAAA5xM,UAAAyzM,eAAA,SAAApvK,EAAA0tK,GACA,GAAAa,GAAA1wM,KAAAuwM,MACA5lM,EAAA+lM,EAAA,GAAAlkM,YACAmB,EAAA+iM,EAAA,GAAAjkM,aAGAglM,EAAA74K,SAAA83K,EAAAztM,IAAA,cAAA,IACA6vB,EAAA8F,SAAA83K,EAAAztM,IAAA,eAAA,GAGA0rB,OAAA8iL,KAAAA,EAAA,GACA9iL,MAAAmE,KAAAA,EAAA,GAEAqP,EAAArhB,KAAA2wL,EACAtvK,EAAApN,MAAAjC,EAIAoR,EAAA/B,OAAAC,UAAAsuK,EAAA,GAAAxsK,EAAAh8B,QACA26B,MAAA,SAAA30B,GACAwiM,EAAAztM,KACA6d,IAAAhV,KAAAm1C,MAAA/yC,EAAA4S,KACAiU,KAAAjpB,KAAAm1C,MAAA/yC,EAAA6mB,UAGAoN,GAAA,GAEAuuK,EAAA13K,SAAA,KAGA,IAAAi4K,GAAAP,EAAA,GAAAlkM,YACA0kM,EAAAR,EAAA,GAAAjkM,YAEA,QAAAojM,GAAAqB,GAAAvjM,IACAw0B,EAAArhB,IAAAqhB,EAAArhB,IAAAnT,EAAAujM,EAGA,IAAA5jJ,GAAAttD,KAAA0xM,yBAAA7B,EAAA1tK,EAAA8uK,EAAAC,EAEA5jJ,GAAAv4B,KAAAoN,EAAApN,MAAAu4B,EAAAv4B,KACAoN,EAAArhB,KAAAwsC,EAAAxsC,GAEA,IAAA6wL,GAAA,aAAAj2M,KAAAm0M,GACA+B,EAAAD,EAAA,EAAArkJ,EAAAv4B,KAAApqB,EAAAsmM,EAAA,EAAA3jJ,EAAAxsC,IAAAnT,EAAAujM,EACAW,EAAAF,EAAA,cAAA,cAEAjB,GAAAvuK,OAAAA,GACAniC,KAAA8xM,aAAAF,EAAAlB,EAAA,GAAAmB,GAAAF,IAGAjC,EAAA5xM,UAAAg0M,aAAA,SAAAxkJ,EAAAk2B,EAAAmuH,GACA3xM,KAAA+xM,QACA9uM,IAAA0uM,EAAA,OAAA,MAAA,IAAA,EAAArkJ,EAAAk2B,GAAA,KACAvgF,IAAA0uM,EAAA,MAAA,OAAA,KAGAjC,EAAA5xM,UAAA+yM,WAAA,WACA,GAAAH,GAAA1wM,KAAAuwM,MACApmE,EAAAnqI,KAAAgyM,UAEAtB,GAAA9yL,KAAA,kBAAA5d,KAAAmB,QAAAgI,KAAA,OAAA,QAAAghI,GACAumE,EAAAr3K,YAAA,kCAGAq2K,EAAA5xM,UAAAwR,KAAA,SAAAxQ,GAKA,QAAA0S,KACA,MAAA2zE,EAAAwqH,YAAAe,EAAAzmM,SACAk7E,EAAAid,UACAjd,EAAAid,SACAnqE,WAAA,oBACAlI,QAAA,aAAAo1D,EAAAhlF,MAEArB,GAAAA,IAXA,GAAAqmF,GAAAnlF,KACA0wM,EAAAxsK,EAAAlkC,KAAA0wM,MACAjyM,EAAAylC,EAAArU,MAAA,WAAA7vB,KAAAG,KAcA,IAFAH,KAAAoiG,SAAAryE,QAAAtxB,IAEAA,EAAA2xB,qBAYA,MAVAsgL,GAAAr3K,YAAA,MAEA6K,EAAAp7B,QAAAkhM,YAAA0G,EAAAj3K,SAAA,QACAi3K,EACA/pM,IAAA,kBAAA6K,GACAy4L,qBAAAyF,EAAAnF,qBACA/4L,IAEAxR,KAAA2vM,WAAA,KAEA3vM,MAGA0vM,EAAA5xM,UAAAsyM,SAAA,WACA,GAAA6B,GAAAjyM,KAAAoiG,UACA6vG,EAAA1vL,KAAA,UAAA,gBAAA0vL,GAAA1vL,KAAA,yBACA0vL,EAAA1vL,KAAA,sBAAA0vL,EAAA1vL,KAAA,UAAA,IAAAA,KAAA,QAAA,KAIAmtL,EAAA5xM,UAAA+gC,WAAA,WACA,MAAA7+B,MAAAgyM,YAGAtC,EAAA5xM,UAAAkzM,YAAA,SAAA5uG,GACAA,EAAAA,GAAApiG,KAAAoiG,QAEA,IAAAz2E,GAAAy2E,EAAA,GACAk5F,EAAA,QAAA3vK,EAAAygD,QAEA8lI,EAAAvmL,EAAAmJ,uBACA,OAAAo9K,EAAAvnM,QAEAunM,EAAAhuK,EAAAh8B,UAAAgqM,GAAAvnM,MAAAunM,EAAA1qH,MAAA0qH,EAAAn9K,KAAApnB,OAAAukM,EAAAv0G,OAAAu0G,EAAApxL,MAEA,IAAAqxL,GAAApyM,OAAAqyM,YAAAzmL,YAAA5rB,QAAAqyM,WAGAC,EAAA/W,GAAAx6K,IAAA,EAAAiU,KAAA,GAAAo9K,EAAA,KAAA/vG,EAAAjgE,SACA83E,GAAAA,OAAAqhF,EAAAz7L,SAAAwK,gBAAAolB,WAAA5vB,SAAAkK,KAAA0lB,UAAA2yE,EAAA3yE,aACA6iL,EAAAhX,GAAA3wL,MAAAu5B,EAAAnkC,QAAA4K,QAAAgD,OAAAu2B,EAAAnkC,QAAA4N,UAAA,IAEA,OAAAu2B,GAAAh8B,UAAAgqM,EAAAj4F,EAAAq4F,EAAAD,IAGA3C,EAAA5xM,UAAAwzM,oBAAA,SAAAzB,EAAAxoL,EAAA4pL,EAAAC,GACA,MAAA,UAAArB,GAAA/uL,IAAAuG,EAAAvG,IAAAuG,EAAA1Z,OAAAonB,KAAA1N,EAAA0N,KAAA1N,EAAA1c,MAAA,EAAAsmM,EAAA,GACA,OAAApB,GAAA/uL,IAAAuG,EAAAvG,IAAAowL,EAAAn8K,KAAA1N,EAAA0N,KAAA1N,EAAA1c,MAAA,EAAAsmM,EAAA,GACA,QAAApB,GAAA/uL,IAAAuG,EAAAvG,IAAAuG,EAAA1Z,OAAA,EAAAujM,EAAA,EAAAn8K,KAAA1N,EAAA0N,KAAAk8K,IACAnwL,IAAAuG,EAAAvG,IAAAuG,EAAA1Z,OAAA,EAAAujM,EAAA,EAAAn8K,KAAA1N,EAAA0N,KAAA1N,EAAA1c,QAIA+kM,EAAA5xM,UAAA4zM,yBAAA,SAAA7B,EAAAxoL,EAAA4pL,EAAAC,GACA,GAAA5jJ,IAAAxsC,IAAA,EAAAiU,KAAA,EACA,KAAA/0B,KAAAilG,UAAA,MAAA33C,EAEA,IAAAilJ,GAAAvyM,KAAAmB,QAAA48L,UAAA/9L,KAAAmB,QAAA48L,SAAA9oK,SAAA,EACAu9K,EAAAxyM,KAAAgxM,YAAAhxM,KAAAilG,UAEA,IAAA,aAAAvpG,KAAAm0M,GAAA,CACA,GAAA4C,GAAAprL,EAAAvG,IAAAyxL,EAAAC,EAAAv4F,OACAy4F,EAAArrL,EAAAvG,IAAAyxL,EAAAC,EAAAv4F,OAAAi3F,CACAuB,GAAAD,EAAA1xL,IACAwsC,EAAAxsC,IAAA0xL,EAAA1xL,IAAA2xL,EACAC,EAAAF,EAAA1xL,IAAA0xL,EAAA7kM,SACA2/C,EAAAxsC,IAAA0xL,EAAA1xL,IAAA0xL,EAAA7kM,OAAA+kM,OAEA,CACA,GAAAC,GAAAtrL,EAAA0N,KAAAw9K,EACAK,EAAAvrL,EAAA0N,KAAAw9K,EAAAtB,CACA0B,GAAAH,EAAAz9K,KACAu4B,EAAAv4B,KAAAy9K,EAAAz9K,KAAA49K,EACAC,EAAAJ,EAAAhrH,QACAl6B,EAAAv4B,KAAAy9K,EAAAz9K,KAAAy9K,EAAA7nM,MAAAioM,GAIA,MAAAtlJ,IAGAoiJ,EAAA5xM,UAAAk0M,SAAA,WACA,GACAC,GAAAjyM,KAAAoiG,SACA59D,EAAAxkC,KAAAmB,OAKA,OAHA8wM,GAAA1vL,KAAA,yBACA,kBAAAiiB,GAAA2lG,MAAA3lG,EAAA2lG,MAAAjwI,KAAA+3M,EAAA,IAAAztK,EAAA2lG,QAKAulE,EAAA5xM,UAAA8yM,OAAA,SAAAvzM,GACA,GAAAA,MAAA,IAAAyO,KAAAoK,gBACArW,SAAAyY,eAAAjb,GACA,OAAAA,IAGAqyM,EAAA5xM,UAAAyyM,IAAA,WACA,IAAAvwM,KAAA0wM,OACA1wM,KAAA0wM,KAAAxsK,EAAAlkC,KAAAmB,QAAA+2F,UACA,GAAAl4F,KAAA0wM,KAAAn1M,QACA,KAAA,IAAA4B,OAAA6C,KAAAG,KAAA,kEAGA,OAAAH,MAAA0wM,MAGAhB,EAAA5xM,UAAAi0M,MAAA,WACA,MAAA/xM,MAAA6yM,OAAA7yM,KAAA6yM,QAAA7yM,KAAAuwM,MAAA3yL,KAAA,mBAGA8xL,EAAA5xM,UAAAg1M,OAAA,WACA9yM,KAAA6kB,SAAA,GAGA6qL,EAAA5xM,UAAAwqB,QAAA,WACAtoB,KAAA6kB,SAAA,GAGA6qL,EAAA5xM,UAAAi1M,cAAA,WACA/yM,KAAA6kB,SAAA7kB,KAAA6kB,SAGA6qL,EAAA5xM,UAAAsQ,OAAA,SAAA3P,GACA,GAAAwK,GAAAjJ,IACAvB,MACAwK,EAAAi7B,EAAAzlC,EAAA2vB,eAAAlsB,KAAA,MAAAlC,KAAAG,SAEA8I,EAAA,GAAAjJ,MAAAuV,YAAA9W,EAAA2vB,cAAApuB,KAAAswM,sBACApsK,EAAAzlC,EAAA2vB,eAAAlsB,KAAA,MAAAlC,KAAAG,KAAA8I,KAIAxK,GACAwK,EAAA2mM,QAAA3/K,OAAAhnB,EAAA2mM,QAAA3/K,MACAhnB,EAAAunM,gBAAAvnM,EAAAinM,MAAAjnM,GACAA,EAAAknM,MAAAlnM,IAEAA,EAAAsnM,MAAA92K,SAAA,MAAAxwB,EAAAknM,MAAAlnM,GAAAA,EAAAinM,MAAAjnM,IAIAymM,EAAA5xM,UAAAk1M,QAAA,WACA,GAAA7tH,GAAAnlF,IACA23B,cAAA33B,KAAA03B,SACA13B,KAAAsP,KAAA,WACA61E,EAAAid,SAAAt7F,IAAA,IAAAq+E,EAAAhlF,MAAA4qB,WAAA,MAAAo6D,EAAAhlF,MACAglF,EAAAurH,MACAvrH,EAAAurH,KAAAzmM,SAEAk7E,EAAAurH,KAAA,KACAvrH,EAAA0tH,OAAA,KACA1tH,EAAA8f,UAAA,KACA9f,EAAAid,SAAA,OAoBA,IAAA7vE,GAAA2R,EAAAx9B,GAAAusM,OAEA/uK,GAAAx9B,GAAAusM,QAAAp6G,EACA30D,EAAAx9B,GAAAusM,QAAApqH,YAAA6mH,EAMAxrK,EAAAx9B,GAAAusM,QAAA9uK,WAAA,WAEA,MADAD,GAAAx9B,GAAAusM,QAAA1gL,EACAvyB,OAGAN,QAWA,SAAAwkC,GACA,YAuEA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,cACAf,EAAA,gBAAAyqB,IAAAA,GAEA1pB,GAAA,eAAAxG,KAAAkwB,KACA1pB,GAAAkoM,EAAAloM,KAAA,aAAAA,EAAA,GAAAgxM,GAAAlzM,KAAAmB,IACA,gBAAAyqB,IAAA1pB,EAAA0pB,QA1EA,GAAAsnL,GAAA,SAAA1nI,EAAArqE,GACAnB,KAAAmN,KAAA,UAAAq+D,EAAArqE,GAGA,KAAA+iC,EAAAx9B,GAAAusM,QAAA,KAAA,IAAA91M,OAAA,8BAEA+1M,GAAAnlH,QAAA,QAEAmlH,EAAArI,SAAA3mK,EAAAh8B,UAAAg8B,EAAAx9B,GAAAusM,QAAApqH,YAAAgiH,UACAgF,UAAA,QACA9/K,QAAA,QACA7oB,QAAA,GACAgxF,SAAA,0IAOAg7G,EAAAp1M,UAAAomC,EAAAh8B,UAAAg8B,EAAAx9B,GAAAusM,QAAApqH,YAAA/qF,WAEAo1M,EAAAp1M,UAAAyX,YAAA29L,EAEAA,EAAAp1M,UAAAuyM,YAAA,WACA,MAAA6C,GAAArI,UAGAqI,EAAAp1M,UAAA+yM,WAAA,WACA,GAAAH,GAAA1wM,KAAAuwM,MACApmE,EAAAnqI,KAAAgyM,WACA9qM,EAAAlH,KAAAmzM,YAEAzC,GAAA9yL,KAAA,kBAAA5d,KAAAmB,QAAAgI,KAAA,OAAA,QAAAghI,GACAumE,EAAA9yL,KAAA,oBAAAqJ,WAAAhd,SAAAvG,MACA1D,KAAAmB,QAAAgI,KAAA,gBAAAjC,GAAA,OAAA,SAAA,QACAA,GAEAwpM,EAAAr3K,YAAA,iCAIAq3K,EAAA9yL,KAAA,kBAAAzU,QAAAunM,EAAA9yL,KAAA,kBAAAtO,QAGA4jM,EAAAp1M,UAAA+gC,WAAA,WACA,MAAA7+B,MAAAgyM,YAAAhyM,KAAAmzM,cAGAD,EAAAp1M,UAAAq1M,WAAA,WACA,GAAAlB,GAAAjyM,KAAAoiG,SACA59D,EAAAxkC,KAAAmB,OAEA,OAAA8wM,GAAA1vL,KAAA,kBACA,kBAAAiiB,GAAAt9B,QACAs9B,EAAAt9B,QAAAhN,KAAA+3M,EAAA,IACAztK,EAAAt9B,UAGAgsM,EAAAp1M,UAAAi0M,MAAA,WACA,MAAA/xM,MAAA6yM,OAAA7yM,KAAA6yM,QAAA7yM,KAAAuwM,MAAA3yL,KAAA,UAmBA,IAAA2U,GAAA2R,EAAAx9B,GAAA0sM,OAEAlvK,GAAAx9B,GAAA0sM,QAAAv6G,EACA30D,EAAAx9B,GAAA0sM,QAAAvqH,YAAAqqH,EAMAhvK,EAAAx9B,GAAA0sM,QAAAjvK,WAAA,WAEA,MADAD,GAAAx9B,GAAA0sM,QAAA7gL,EACAvyB,OAGAN,QAWA,SAAAwkC,GACA,YAKA,SAAAmvK,GAAA7nI,EAAArqE,GACAnB,KAAAstH,MAAAppF,EAAArkC,SAAAkK,MACA/J,KAAAszM,eAAApvK,EAAAA,EAAAsnC,GAAA/kD,GAAA5mB,SAAAkK,MAAAhK,OAAAyrE,GACAxrE,KAAAmB,QAAA+iC,EAAAh8B,UAAAmrM,EAAAxI,SAAA1pM,GACAnB,KAAAyG,UAAAzG,KAAAmB,QAAAyR,QAAA,IAAA,eACA5S,KAAAgyG,WACAhyG,KAAAmnB,WACAnnB,KAAAuzM,aAAA,KACAvzM,KAAAm6H,aAAA,EAEAn6H,KAAAszM,eAAA/sM,GAAA,sBAAA29B,EAAA9yB,MAAApR,KAAAuiD,QAAAviD,OACAA,KAAAwzM,UACAxzM,KAAAuiD,UA4GA,QAAAs2C,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,gBACAf,EAAA,gBAAAyqB,IAAAA,CAEA1pB,IAAAkoM,EAAAloM,KAAA,eAAAA,EAAA,GAAAmxM,GAAArzM,KAAAmB,IACA,gBAAAyqB,IAAA1pB,EAAA0pB,OAhHAynL,EAAAtlH,QAAA,QAEAslH,EAAAxI,UACA1oK,OAAA,IAGAkxK,EAAAv1M,UAAA21M,gBAAA,WACA,MAAAzzM,MAAAszM,eAAA,GAAAn5E,cAAAruH,KAAAC,IAAA/L,KAAAstH,MAAA,GAAA6M,aAAAt6H,SAAAwK,gBAAA8vH,eAGAk5E,EAAAv1M,UAAA01M,QAAA,WACA,GAAAruH,GAAAnlF,KACA0zM,EAAA,SACAC,EAAA,CAEA3zM,MAAAgyG,WACAhyG,KAAAmnB,WACAnnB,KAAAm6H,aAAAn6H,KAAAyzM,kBAEAvvK,EAAA9jC,SAAAJ,KAAAszM,eAAA,MACAI,EAAA,WACAC,EAAA3zM,KAAAszM,eAAA7jL,aAGAzvB,KAAAstH,MACA1vG,KAAA5d,KAAAyG,UACArL,IAAA,WACA,GAAAyrG,GAAA3iE,EAAAlkC,MACA2kB,EAAAkiF,EAAA3kG,KAAA,WAAA2kG,EAAAtkF,KAAA,QACAqxL,EAAA,MAAAl4M,KAAAipB,IAAAuf,EAAAvf,EAEA,OAAAivL,IACAA,EAAAr4M,QACAq4M,EAAAntL,GAAA,eACAmtL,EAAAF,KAAA5yL,IAAA6yL,EAAAhvL,KAAA,OAEA7O,KAAA,SAAAkE,EAAAC,GAAA,MAAAD,GAAA,GAAAC,EAAA,KACA5Y,KAAA,WACA8jF,EAAA6sB,QAAAz1G,KAAAyD,KAAA,IACAmlF,EAAAh+D,QAAA5qB,KAAAyD,KAAA,OAIAqzM,EAAAv1M,UAAAykD,QAAA,WACA,GAMAznD,GANA20B,EAAAzvB,KAAAszM,eAAA7jL,YAAAzvB,KAAAmB,QAAAghC,OACAg4F,EAAAn6H,KAAAyzM,kBACAI,EAAA7zM,KAAAmB,QAAAghC,OAAAg4F,EAAAn6H,KAAAszM,eAAA3lM,SACAqkG,EAAAhyG,KAAAgyG,QACA7qF,EAAAnnB,KAAAmnB,QACAosL,EAAAvzM,KAAAuzM,YAOA,IAJAvzM,KAAAm6H,cAAAA,GACAn6H,KAAAwzM,UAGA/jL,GAAAokL,EACA,MAAAN,KAAAz4M,EAAAqsB,EAAAA,EAAA5rB,OAAA,KAAAyE,KAAA8zM,SAAAh5M,EAGA,IAAAy4M,GAAA9jL,EAAAuiF,EAAA,GAEA,MADAhyG,MAAAuzM,aAAA,KACAvzM,KAAAgoD,OAGA,KAAAltD,EAAAk3G,EAAAz2G,OAAAT,KACAy4M,GAAApsL,EAAArsB,IACA20B,GAAAuiF,EAAAl3G,SACAsE,KAAA4yG,EAAAl3G,EAAA,IAAA20B,EAAAuiF,EAAAl3G,EAAA,KACAkF,KAAA8zM,SAAA3sL,EAAArsB,KAIAu4M,EAAAv1M,UAAAg2M,SAAA,SAAAlhM,GACA5S,KAAAuzM,aAAA3gM,EAEA5S,KAAAgoD,OAEA,IAAAvhD,GAAAzG,KAAAyG,SACA,iBAAAmM,EAAA,MACA5S,KAAAyG,SAAA,UAAAmM,EAAA,KAEA8oB,EAAAwI,EAAAz9B,GACA+gB,QAAA,MACAwR,SAAA,SAEA0C,GAAA7a,OAAA,kBAAAtlB,SACAmgC,EAAAA,EACAtU,QAAA,eACA4R,SAAA,WAGA0C,EAAA3L,QAAA,0BAGAsjL,EAAAv1M,UAAAkqD,MAAA,WACA9jB,EAAAlkC,KAAAyG,UACAghB,aAAAznB,KAAAmB,QAAAyR,OAAA,WACAymB,YAAA,UAkBA,IAAA9G,GAAA2R,EAAAx9B,GAAAqtM,SAEA7vK,GAAAx9B,GAAAqtM,UAAAl7G,EACA30D,EAAAx9B,GAAAqtM,UAAAlrH,YAAAwqH,EAMAnvK,EAAAx9B,GAAAqtM,UAAA5vK,WAAA,WAEA,MADAD,GAAAx9B,GAAAqtM,UAAAxhL,EACAvyB,MAOAkkC,EAAAnkC,QAAAwG,GAAA,6BAAA,WACA29B,EAAA,uBAAA7iC,KAAA,WACA,GAAA2yM,GAAA9vK,EAAAlkC,KACA64F,GAAA3+F,KAAA85M,EAAAA,EAAA9xM,aAIAxC,QAWA,SAAAwkC,GACA,YA2GA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,SAEAA,IAAAkoM,EAAAloM,KAAA,SAAAA,EAAA,GAAA+xM,GAAAj0M,OACA,gBAAA4rB,IAAA1pB,EAAA0pB,OA5GA,GAAAqoL,GAAA,SAAAzoI,GAEAxrE,KAAAwrE,QAAAtnC,EAAAsnC,GAIAyoI,GAAAlmH,QAAA,QAEAkmH,EAAA1J,oBAAA,IAEA0J,EAAAn2M,UAAA+O,KAAA,WACA,GAAAu9L,GAAApqM,KAAAwrE,QACA0oI,EAAA9J,EAAAhjL,QAAA,0BACA3gB,EAAA2jM,EAAAloM,KAAA,SAOA,IALAuE,IACAA,EAAA2jM,EAAA7nL,KAAA,QACA9b,EAAAA,GAAAA,EAAA9K,QAAA,iBAAA,MAGAyuM,EAAAvpL,OAAA,MAAA4Y,SAAA,UAAA,CAEA,GAAA06K,GAAAD,EAAAt2L,KAAA,kBACAw2L,EAAAlwK,EAAArU,MAAA,eACAiB,cAAAs5K,EAAA,KAEAqF,EAAAvrK,EAAArU,MAAA,eACAiB,cAAAqjL,EAAA,IAMA,IAHAA,EAAApkL,QAAAqkL,GACAhK,EAAAr6K,QAAA0/K,IAEAA,EAAAr/K,uBAAAgkL,EAAAhkL,qBAAA,CAEA,GAAAqgH,GAAAvsG,EAAAz9B,EAEAzG,MAAA8zM,SAAA1J,EAAAhjL,QAAA,MAAA8sL,GACAl0M,KAAA8zM,SAAArjE,EAAAA,EAAA5vH,SAAA,WACAszL,EAAApkL,SACA5vB,KAAA,gBACA2wB,cAAAs5K,EAAA,KAEAA,EAAAr6K,SACA5vB,KAAA,eACA2wB,cAAAqjL,EAAA,UAKAF,EAAAn2M,UAAAg2M,SAAA,SAAAtoI,EAAA94C,EAAA5zB,GAMA,QAAAooB,KACAskL,EACAnyK,YAAA,UACAzb,KAAA,8BACAyb,YAAA,UACA31B,MACAka,KAAA,uBACA2E,KAAA,iBAAA,GAEAipD,EACAxyC,SAAA,UACApb,KAAA,uBACA2E,KAAA,iBAAA,GAEAynL,GACAx+H,EAAA,GAAAh/D,YACAg/D,EAAAxyC,SAAA,OAEAwyC,EAAAnyC,YAAA,QAGAmyC,EAAA3qD,OAAA,kBAAAtlB,QACAiwE,EACApkD,QAAA,eACA4R,SAAA,UACAt1B,MACAka,KAAA,uBACA2E,KAAA,iBAAA,GAGAzjB,GAAAA,IAnCA,GAAA0sM,GAAA94K,EAAA9U,KAAA,aACAosL,EAAAlrM,GACAolC,EAAAp7B,QAAAkhM,aACAwB,EAAAjwM,QAAAiwM,EAAA/xK,SAAA,WAAA/G,EAAA9U,KAAA,WAAAriB,OAmCAiwM,GAAAjwM,QAAAyuM,EACAwB,EACA7kM,IAAA,kBAAAugB,GACA+iL,qBAAAgK,EAAA1J,qBACArjL,IAEAskL,EAAAnyK,YAAA,MAiBA,IAAA9G,GAAA2R,EAAAx9B,GAAA2tM,GAEAnwK,GAAAx9B,GAAA2tM,IAAAx7G,EACA30D,EAAAx9B,GAAA2tM,IAAAxrH,YAAAorH,EAMA/vK,EAAAx9B,GAAA2tM,IAAAlwK,WAAA,WAEA,MADAD,GAAAx9B,GAAA2tM,IAAA9hL,EACAvyB,KAOA,IAAAssM,GAAA,SAAA7tM,GACAA,EAAA8vB,iBACAsqE,EAAA3+F,KAAAgqC,EAAAlkC,MAAA,QAGAkkC,GAAArkC,UACA0G,GAAA,wBAAA,sBAAA+lM,GACA/lM,GAAA,wBAAA,uBAAA+lM,IAEA5sM,QAWA,SAAAwkC,GACA,YA4GA,SAAA20D,GAAAjtE,GACA,MAAA5rB,MAAAqB,KAAA,WACA,GAAA+oM,GAAAlmK,EAAAlkC,MACAkC,EAAAkoM,EAAAloM,KAAA,YACAf,EAAA,gBAAAyqB,IAAAA,CAEA1pB,IAAAkoM,EAAAloM,KAAA,WAAAA,EAAA,GAAAoyM,GAAAt0M,KAAAmB,IACA,gBAAAyqB,IAAA1pB,EAAA0pB,OA9GA,GAAA0oL,GAAA,SAAA9oI,EAAArqE,GACAnB,KAAAmB,QAAA+iC,EAAAh8B,UAAAosM,EAAAzJ,SAAA1pM,GAEAnB,KAAAywI,QAAAvsG,EAAAlkC,KAAAmB,QAAAyR,QACArM,GAAA,2BAAA29B,EAAA9yB,MAAApR,KAAAu0M,cAAAv0M,OACAuG,GAAA,0BAAA29B,EAAA9yB,MAAApR,KAAAw0M,2BAAAx0M,OAEAA,KAAAoiG,SAAAl+D,EAAAsnC,GACAxrE,KAAAy0M,QAAA,KACAz0M,KAAA00M,MAAA,KACA10M,KAAA20M,aAAA,KAEA30M,KAAAu0M,gBAGAD,GAAAvmH,QAAA,QAEAumH,EAAAM,MAAA,+BAEAN,EAAAzJ,UACA1oK,OAAA,EACAvvB,OAAA7S,QAGAu0M,EAAAx2M,UAAA+2M,SAAA,SAAA16E,EAAAxsH,EAAA20F,EAAAwyG,GACA,GAAArlL,GAAAzvB,KAAAywI,QAAAhhH,YACAiE,EAAA1zB,KAAAoiG,SAAAjgE,SACA4yK,EAAA/0M,KAAAywI,QAAA9iI,QAEA,IAAA,MAAA20F,GAAA,OAAAtiG,KAAAy0M,QAAA,MAAAhlL,GAAA6yE,GAAA,KAEA,IAAA,UAAAtiG,KAAAy0M,QACA,MAAA,OAAAnyG,IAAA7yE,EAAAzvB,KAAA00M,OAAAhhL,EAAA5S,MAAA,WACA2O,EAAAslL,GAAA56E,EAAA26E,IAAA,QAGA,IAAAE,GAAA,MAAAh1M,KAAAy0M,QACAQ,EAAAD,EAAAvlL,EAAAiE,EAAA5S,IACAo0L,EAAAF,EAAAD,EAAApnM,CAEA,OAAA,OAAA20F,GAAA7yE,GAAA6yE,EAAA,MACA,MAAAwyG,GAAAG,EAAAC,GAAA/6E,EAAA26E,GAAA,UAKAR,EAAAx2M,UAAAq3M,gBAAA,WACA,GAAAn1M,KAAA20M,aAAA,MAAA30M,MAAA20M,YACA30M,MAAAoiG,SAAA/oE,YAAAi7K,EAAAM,OAAA57K,SAAA,QACA,IAAAvJ,GAAAzvB,KAAAywI,QAAAhhH,YACAiE,EAAA1zB,KAAAoiG,SAAAjgE,QACA,OAAAniC,MAAA20M,aAAAjhL,EAAA5S,IAAA2O,GAGA6kL,EAAAx2M,UAAA02M,2BAAA,WACAl1M,WAAA4kC,EAAA9yB,MAAApR,KAAAu0M,cAAAv0M,MAAA,IAGAs0M,EAAAx2M,UAAAy2M,cAAA,WACA,GAAAv0M,KAAAoiG,SAAA37E,GAAA,YAAA,CAEA,GAAA9Y,GAAA3N,KAAAoiG,SAAAz0F,SACAw0B,EAAAniC,KAAAmB,QAAAghC,OACAmgE,EAAAngE,EAAArhB,IACAg0L,EAAA3yK,EAAAw7D,OACAw8B,EAAAruH,KAAAC,IAAAm4B,EAAArkC,UAAA8N,SAAAu2B,EAAArkC,SAAAkK,MAAA4D,SAEA,iBAAAw0B,KAAA2yK,EAAAxyG,EAAAngE,GACA,kBAAAmgE,KAAAA,EAAAngE,EAAArhB,IAAA9gB,KAAAoiG,WACA,kBAAA0yG,KAAAA,EAAA3yK,EAAAw7D,OAAA39F,KAAAoiG,UAEA,IAAAgzG,GAAAp1M,KAAA60M,SAAA16E,EAAAxsH,EAAA20F,EAAAwyG,EAEA,IAAA90M,KAAAy0M,SAAAW,EAAA,CACA,MAAAp1M,KAAA00M,OAAA10M,KAAAoiG,SAAAn/F,IAAA,MAAA,GAEA,IAAAoyM,GAAA,SAAAD,EAAA,IAAAA,EAAA,IACA32M,EAAAylC,EAAArU,MAAAwlL,EAAA,YAIA,IAFAr1M,KAAAoiG,SAAAryE,QAAAtxB,GAEAA,EAAA2xB,qBAAA,MAEApwB,MAAAy0M,QAAAW,EACAp1M,KAAA00M,MAAA,UAAAU,EAAAp1M,KAAAm1M,kBAAA,KAEAn1M,KAAAoiG,SACA/oE,YAAAi7K,EAAAM,OACA57K,SAAAq8K,GACAtlL,QAAAslL,EAAA15M,QAAA,QAAA,WAAA,aAGA,UAAAy5M,GACAp1M,KAAAoiG,SAAAjgE,QACArhB,IAAAq5G,EAAAxsH,EAAAmnM,KAoBA,IAAAviL,GAAA2R,EAAAx9B,GAAA0uM,KAEAlxK,GAAAx9B,GAAA0uM,MAAAv8G,EACA30D,EAAAx9B,GAAA0uM,MAAAvsH,YAAAyrH,EAMApwK,EAAAx9B,GAAA0uM,MAAAjxK,WAAA,WAEA,MADAD,GAAAx9B,GAAA0uM,MAAA7iL,EACAvyB,MAOAkkC,EAAAnkC,QAAAwG,GAAA,OAAA,WACA29B,EAAA,sBAAA7iC,KAAA,WACA,GAAA2yM,GAAA9vK,EAAAlkC,MACAkC,EAAA8xM,EAAA9xM,MAEAA,GAAAigC,OAAAjgC,EAAAigC,WAEA,MAAAjgC,EAAA4yM,eAAA5yM,EAAAigC,OAAAw7D,OAAAz7F,EAAA4yM,cACA,MAAA5yM,EAAAogG,YAAApgG,EAAAigC,OAAArhB,IAAA5e,EAAAogG,WAEAzJ,EAAA3+F,KAAA85M,EAAA9xM,QAIAxC,QAEA9F,OAAA,aAAA,UAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAA21M,YAEAt1M,OwE3zEA,SAAAkkC,GACA,YAKA,IAAAmzD,GAAA,SAAAh6F,GACA,OAAAA,GAAA,SAAA,IAAAyO,KAAAo/B,MAAA,IAAAp/B,KAAAoK,SAAA,IA4DAq/L,EAAA,SAAA/pI,EAAAgqI,GACA,GAAAp6M,GAAAq6M,EAAAx5I,EACAj4D,EAAAwnE,EAAAxnE,SAAA5B,aACA,OAAA,SAAA4B,GACA5I,EAAAowE,EAAA7hE,WACA8rM,EAAAr6M,EAAAhB,QACAoxE,EAAA7mD,OAAA8wL,GAAA,QAAAr6M,EAAA4I,SAAA5B,oBAGA65D,EAAA/3B,EAAA,gBAAAuxK,EAAA,MAAA,KACAn2K,EAAA28B,MAEA,sCAAAvgE,KAAAsI,IACAwnE,EAAA1mD,SACA,MAAA9gB,EACAwnE,EAAA7mD,MAAA6wL,EAAAA,IAAAl2K,EAAAksC,IAEAlsC,EAAA,SAAAksC,GACA,MAAAtnC,GAAA5hB,KAAAuD,QAAAyZ,QAAAksC,KACAtnC,EAAAsnC,GAAAhkD,UAAAD,UAAAzmB,OAAA,WACA,MAAA,WAAAojC,EAAAjhC,IAAAjD,KAAA,gBACAzE,OAGA2oC,GAAAh8B,OAAAg8B,EAAA5hB,KAAA,MACApgB,KAAAgiC,EAAA5hB,KAAAQ,aACAohB,EAAA5hB,KAAAQ,aAAA,SAAA4yL,GACA,MAAA,UAAA/0M,GACA,QAAAujC,EAAAhiC,KAAAvB,EAAA+0M,MAIA,SAAA/0M,EAAA7F,EAAAwG,GACA,QAAA4iC,EAAAhiC,KAAAvB,EAAAW,EAAA,KAGAi0M,UAAA,SAAA/pI,GACA,MAAA+pI,GAAA/pI,GAAA78C,MAAAuV,EAAA3hB,KAAAipD,EAAA,eAGAmqI,SAAA,SAAAnqI,GACA,GAAA5mD,GAAAsf,EAAA3hB,KAAAipD,EAAA,YACAoqI,EAAAjnL,MAAA/J,EACA,QAAAgxL,GAAAhxL,GAAA,IAAA2wL,EAAA/pI,GAAAoqI,MAOA1xK,EAAA,iBAAA3hB,MAAAszL,KAAA,YACA,IAAAC,GAAA5xK,EAAAx9B,GAAA8oM,MAAA3mH,YAAA/qF,UAAAwR,IACA40B,GAAAx9B,GAAA8oM,MAAA3mH,YAAA/qF,UAAAwR,KAAA,WACAwmM,EAAAr5M,MAAAuD,KAAA1D,WACA4nC,EAAArkC,UAAAiH,IAAA,oBAGA,IAAAivM,GAAA7xK,EAAAx9B,GAAA8oM,MAAA3mH,YAAA/qF,UAAAwwM,YACApqK,GAAAx9B,GAAA8oM,MAAA3mH,YAAA/qF,UAAAwwM,aAAA,WACA,GAAA0H,GAAAh2M,KAAAoiG,SAAAxkF,KAAA,kBACAq4L,EAAAD,EAAAp4L,KAAA,aACAs4L,EAAAhyK,EAAA+xK,EAAAA,EAAA16M,OAAA,IACA46M,EAAAjyK,EAAA+xK,EAAA,GACAC,GAAA3vM,GAAA,mBAAA29B,EAAA9yB,MAAA,SAAAwpG,GACA,IAAAA,EAAA5rF,SAAA4rF,EAAAj0B,SAAAi0B,EAAAr0B,QAAAq0B,EAAAl0B,QAAAk0B,EAAAz0B,SACAy0B,EAAArsF,iBACA4nL,EAAA1xL,UAEAzkB,OACAm2M,EAAA5vM,GAAA,mBAAA29B,EAAA9yB,MAAA,SAAAwpG,GACA,IAAAA,EAAA5rF,SAAA4rF,EAAAj0B,WACAi0B,EAAArsF,iBACA2nL,EAAAzxL,UAEAzkB,OACA+1M,EAAAt5M,MAAAuD,KAAA1D,WAMA,IACA85M,GACAC,EAFAjoM,EAAA,wBAIA81B,GAAA91B,GAAAyS,SAAAjD,KAAA,MAAA2E,KAAA,OAAA,QACA3E,KAAA,MAAA2E,KAAA,OAAA,gBAGA3E,KAAA,KAAA2E,MAAAszL,KAAA,WAAAjxL,SAAA,OAEAsf,EAAA91B,GAAAmU,MAAA+zL,gBAAA,OAAAC,gBAAA,UAEAryK,EAAA91B,GAAAyS,SAEAta,GAAA,oBAAA,SAAA9H,GACA23M,EAAAlyK,EAAAlkC,KACA,IAAAw2M,GAAAJ,EAAAx4L,KAAAxP,EACAooM,GAAAj0L,KAAA,gBAAA,QACAi0L,EAAAjwM,GAAA,sBAAA29B,EAAA9yB,MAAA,SAAAwpG,GACAt7G,WAAA,WACA+2M,EAAAnyK,EAAA,yCAAAkyK,GAAA,EACA,KAAAC,EAAA5xL,QAAA,MAAAm+D,MAlBA,MAoBA5iF,SAIAuG,GAAA,qBAAA,SAAA9H,GACA23M,EAAAlyK,EAAAlkC,MACAo2M,EAAAx4L,KAAAxP,GACAmU,KAAA,gBAAA,WAIA2hB,EAAArkC,UACA0G,GAAA,6BAAA,iBAAA,SAAA9H,GACA,GAAA2rM,GAAAlmK,EAAAlkC,MACAmlF,EAAAnlF,IAGAoqM,GAAAvpL,SAAA4Y,SAAA,SAGAn6B,WAAA,WACA4kC,EAAAp/B,SAAAqgF,EAAAtlF,SAAAwG,gBACA+jM,EAAAvpL,SAAAjD,KAAA,0BAAA2vL,SAAA,WAEA,OAEAhnM,GAAA,+BAAA6H,EAAA,gBAAA81B,EAAAx9B,GAAA6mM,SAAA1kH,YAAA/qF,UAAA6tM,QAKA,IAAA8K,GAAAvyK,EAAA,yBACAwyK,EAAAD,EAAAxvL,SAAA,MACA0vL,EAAAF,EAAA74L,KAAA,4CAEA+4L,KACAF,EAAAl0L,KAAA,OAAA,WACAm0L,EAAAn0L,KAAA,OAAA,gBACAo0L,EAAAp0L,KAAA,OAAA,QAGAo0L,EAAAt1M,KAAA,SAAA/D,GACA,GAAAs5M,GAAA1yK,EAAAA,EAAAlkC,MAAAuiB,KAAA,SACA8xL,EAAAnwK,EAAAlkC,MACA62M,EAAAxC,EAAA9xL,KAAA,OAAA80E,EAAA,SAEAg9G,GAAA9xL,KAAA,KAAAs0L,GAEAxC,EAAAxzL,SAAA4Y,SAAA,WACA46K,EAAA9xL,MAAAqC,SAAA,IAAAkyL,gBAAA,OAAAC,gBAAA1C,EAAA9xL,KAAA,QAAAszB,OAAA,KACA+gK,EAAAr0L,MAAAszL,KAAA,WAAAjxL,SAAA,IAAAoyL,cAAA,QAAAC,kBAAAJ,MAEAxC,EAAA9xL,MAAAqC,SAAA,KAAAkyL,gBAAA,QAAAC,gBAAA1C,EAAA9xL,KAAA,QAAAszB,OAAA,KACA+gK,EAAAr0L,MAAAszL,KAAA,WAAAjxL,SAAA,KAAAoyL,cAAA,OAAAC,kBAAAJ,OAIA3yK,EAAAx9B,GAAA2tM,IAAAxrH,YAAA/qF,UAAA6tM,QAAA,SAAAltM,GACA,GACAgtM,GAEAnuM,EAHA8sM,EAAAlmK,EAAAlkC,MAEAk0M,EAAA9J,EAAAhjL,QAAA,qBAEAqvB,EAAAh4C,EAAAgP,OAAAhP,EAAAuwB,OAGA,IADAo7K,EAAAlmK,EAAAlkC,MACA,gBAAAtE,KAAA+6C,GAAA,CAEAg1J,EAAAyI,EAAAt2L,KAAA,sBACAtgB,EAAAmuM,EAAAnuM,MAAAmuM,EAAA3qM,OAAA,WAEA,IAAA21C,GAAA,IAAAA,GAAAn5C,IACA,IAAAm5C,GAAA,IAAAA,GAAAn5C,IAGAA,EAAA,IAAAA,EAAAmuM,EAAAlwM,OAAA,GACA+B,GAAAmuM,EAAAlwM,SAAA+B,EAAA,EAEA,IAAA45M,GAAAzL,EAAAviM,GAAA5L,EACA,SAAA45M,EAAA30L,KAAA,SAEA20L,EAAA7C,IAAA,QACA5vL,QAIAhmB,EAAA8vB,iBACA9vB,EAAA+vB,oBAGA0V,EAAArkC,UAAA0G,GAAA,uBAAA,4CAAA29B,EAAAx9B,GAAA2tM,IAAAxrH,YAAA/qF,UAAA6tM,QAEA,IAAAwL,GAAAjzK,EAAAx9B,GAAA2tM,IAAAxrH,YAAA/qF,UAAAg2M,QACA5vK,GAAAx9B,GAAA2tM,IAAAxrH,YAAA/qF,UAAAg2M,SAAA,SAAAtoI,EAAA94C,EAAA5zB,GACA,GAAA0sM,GAAA94K,EAAA9U,KAAA,YACA4tL,GAAA5tL,KAAA,yCAAA2E,MAAAqC,SAAA,KAAAkyL,iBAAA,IACAtL,EAAA1qM,OAAA,aAAAyhB,MAAAy0L,eAAA,EAAApyL,SAAA,OAEAuyL,EAAA16M,MAAAuD,KAAA1D,WAEAkvE,EAAAxyC,SAAA,UACAwyC,EAAA5tD,KAAA,yCAAA2E,MAAAqC,SAAA,IAAAkyL,iBAAA,IACAtrI,EAAA1qE,OAAA,aAAAyhB,MAAAy0L,eAAA,EAAApyL,SAAA,OAMAsf,EAAA,4BACA7iC,KAAA,SAAA/D,GACA,GAAA85M,GAAAlzK,EAAAlkC,MACAq3M,EAAAnzK,EAAAkzK,EAAA70L,KAAA,eAAA60L,EAAA70L,KAAA,eAAA60L,EAAA70L,KAAA,SACA1B,EAAAu2L,EAAA70L,KAAA,eACA+0L,EAAAz2L,GAAAqjB,EAAArjB,GACA02L,EAAAH,EAAA70L,KAAA,OAAA80E,EAAA,cAEA+/G,GAAA70L,KAAA,KAAAg1L,GAEAD,IACAF,EAAA70L,MAAAszL,KAAA,MAAAiB,gBAAA,QAAAP,gBAAA,UACAryK,EAAAozK,GAAA15L,KAAA,sCAAA2E,KAAA,OAAA,gBACA+0L,EAAA/0L,MAAAszL,KAAA,UAAA2B,uBAAA,SAEAH,EAAA59K,SAAA,OACA29K,EAAA70L,MAAAw0L,gBAAAM,EAAA90L,KAAA,MAAAu0L,gBAAA,OAAAP,gBAAA,OAAA59K,SAAA,MACA0+K,EAAA90L,MAAAszL,KAAA,WAAAl9K,SAAA,IAAAs+K,kBAAAM,EAAAP,cAAA,YAEAI,EAAA70L,MAAAw0L,gBAAAM,EAAA90L,KAAA,MAAAoW,SAAA,OACA0+K,EAAA90L,MAAAszL,KAAA,WAAAl9K,SAAA,KAAAs+K,kBAAAM,EAAAP,cAAA,YAKA,IAAAS,GAAAvzK,EAAAx9B,GAAAkiG,SAAA/f,YAAA/qF,UAAAsQ,MACA81B,GAAAx9B,GAAAkiG,SAAA/f,YAAA/qF,UAAAsQ,OAAA,WACA,GAAAuW,GAAA+yL,EAAA13M,KAAAyqM,SAAAzqM,KAAAyqM,QAAA7sL,KAAA,yBAEA,IAAA85L,EAAA,CACA,GAIAC,GAJAC,EAAAF,EAAAn1L,KAAA,iBAAAoC,EAAA+yL,EAAAn1L,KAAA,UAAAoC,EAAAhpB,QAAA,iBAAA,IACAk8M,EAAA3zK,EAAA0zK,GACAE,EAAA93M,KAAAoiG,QACApiG,MAAAyqM,OAGAzqM,MAAAyqM,UAAAkN,EAAA33M,KAAAyqM,QAAA7sL,KAAA,iCAAA5d,KAAAoiG,SAAA7/E,KAAA,MAAA,OAEAk1L,EAAAh7M,MAAAuD,KAAA1D,WAEA4nC,EAAAp7B,QAAAkhM,YACAhqM,KAAAoiG,SAAAz7F,IAAAu9B,EAAAp7B,QAAAkhM,WAAAtmM,IAAA,WAEAg0M,EAAAn1L,MAAAu0L,gBAAA,QAAAP,gBAAA,QAAA3xL,SAAA,OACAizL,EAAAt1L,MAAAy0L,cAAA,OAAApyL,SAAA,OAEA+yL,EAAAp1L,MAAAu0L,gBAAA,OAAAP,gBAAA,OAAA3xL,SAAA,MAEAkzL,EAAAr+K,SAAA,MACAq+K,EAAAv1L,MAAAy0L,cAAA,QAAApyL,SAAA,OAEA+yL,EAAAp1L,MAAAu0L,gBAAA,QAAAP,gBAAA,UACAuB,EAAAv1L,MAAAy0L,cAAA,OAAApyL,SAAA,cAKA6yL,GAAAh7M,MAAAuD,KAAA1D,YAIA4nC,EAAAx9B,GAAAkiG,SAAA/f,YAAA/qF,UAAA6tM,QAAA,SAAAltM,GACA,GACAgtM,GAEAnuM,EAHA8sM,EAAAlmK,EAAAlkC,MAEAy2M,EAAArM,EAAAhjL,QAAA,sBAEAqvB,EAAAh4C,EAAAgP,OAAAhP,EAAAuwB,OAEAo7K,GAAAlmK,EAAAlkC,MACA,mBAAAtE,KAAA+6C,KACA,IAAAA,GAAA2zJ,EAAAn6K,QAEAw7K,EAAAgL,EAAA74L,KAAA,cACAtgB,EAAAmuM,EAAAnuM,MAAAmuM,EAAA3qM,OAAA,WAEA,IAAA21C,GAAA,IAAAA,GAAAn5C,IACA,IAAAm5C,GAAA,IAAAA,GAAAn5C,IACAA,EAAA,IAAAA,EAAAmuM,EAAAlwM,OAAA,GACA+B,GAAAmuM,EAAAlwM,SAAA+B,EAAA,GAEAmuM,EAAAviM,GAAA5L,GAAAmnB,QAEAhmB,EAAA8vB,iBACA9vB,EAAA+vB,oBAIA0V,EAAArkC,UAAA0G,GAAA,4BAAA,2BAAA29B,EAAAx9B,GAAAkiG,SAAA/f,YAAA/qF,UAAA6tM,SAMAznK,EAAA,aAAA7iC,KAAA,SAAA/D,GAIA,QAAAy6M,KAEA,GAAAC,GACA71K,EACAx0B,EACAhD,EACAstM,IAEAA,GAAAn3L,IAAA,EACAm3L,EAAAljL,KAAA,KACAkjL,EAAAtqM,OAAA,EACAsqM,EAAAttM,MAAA,CAEA,KAAA,GAAA7P,GAAA,EAAAA,EAAA67M,EAAAp7M,OAAAT,IAAA,CACAk9M,EAAArB,EAAA77M,GACAqnC,EAAA+B,EAAA8zK,GAAA71K,SACAx0B,EAAAu2B,EAAA8zK,GAAArqM,SACAhD,EAAAu5B,EAAA8zK,GAAArtM,QAIAstM,EAAAn3L,IAAAqhB,EAAArhB,MACAm3L,EAAAn3L,IAAAhV,KAAAm1C,MAAA9e,EAAArhB,MAGAm3L,EAAAtqM,OAAAA,IACAsqM,EAAAtqM,OAAA7B,KAAAm1C,MAAAtzC,IAGAsqM,EAAAljL,KAAAoN,EAAApN,OACAkjL,EAAAljL,KAAAjpB,KAAAm1C,MAAA9e,EAAApN,MAGA,IAAAj1B,GAAAqiC,EAAApN,KAAAkjL,EAAAljL,KAAAjpB,KAAAm1C,MAAAt2C,EAEAstM,GAAAttM,MAAA7K,IACAm4M,EAAAttM,MAAA7K,GAOAo4M,EAAA10M,MAAAsd,IAAAm3L,EAAAn3L,IAAA,EAAA,KACAo3L,EAAA10M,MAAAuxB,KAAAkjL,EAAAljL,KAAA,EAAA,KACAmjL,EAAA10M,MAAAmK,OAAAsqM,EAAAtqM,OAAA,EAAA,KACAuqM,EAAA10M,MAAAmH,MAAAstM,EAAAttM,MAAA,EAAA,KAIA,GAMAwtM,GACAD,EACAE,EACAC,EACAL,EAKAl9M,EAfAsvM,EAAAlmK,EAAAlkC,MACAs4M,EAAAlO,EAAAxsL,KAAA,uBACAouL,EAAA5B,EAAAxsL,KAAA,uBACA64L,EAAArM,EAAAxsL,KAAA,wBACA+4L,EAAAvM,EAAAxsL,KAAA,2BACA26L,EAAAnO,EAAAxsL,KAAA,SAMA46L,GAAA,CA8BA,KArBA/B,EAAAl0L,KAAA,OAAA,WAEAo0L,EAAAlyL,MAAA,WACA2lL,EAAAiC,SAAA,SACAmM,GAAA,EACAJ,EAAA5yM,UAAA,gBACA0+B,EAAAlkC,MAAA6gB,SAAAmY,SAAA,UAEA++K,IACA7zK,EAAAg0K,GAAAl/K,SAAA,SACAkL,EAAAlkC,MAAAwnB,QAAA,aAAAwR,SAAA,cAGA29K,EAAA3mL,KAAA,SAAAnpB,GACAq9B,EAAAlkC,MAAA6gB,SAAAwY,YAAA,UAEA6K,EAAAg0K,GAAA7+K,YAAA,SACA6K,EAAAlkC,MAAAwnB,QAAA,aAAA6R,YAAA,cAIAv+B,EAAA,EAAAA,EAAAy9M,EAAAh9M,OAAAT,IACAq9M,EAAAI,EAAAz9M,GACAq9M,EAAAv/L,aAAA,OAAA,YACAu/L,EAAAv/L,aAAA,KAAA,YAAAtb,EAAA,IAAAxC,GACAq9M,EAAAv/L,aAAA,kBAAA,OAAAtb,EAAA,IAAAxC,EAYA,KATA,gBAAAsvM,GAAA7nL,KAAA,UACA6nL,EAAA7nL,KAAA,OAAA,iBACA6nL,EAAA7nL,KAAA,kBAlCA,YAmCA6nL,EAAA7nL,KAAA,mBAlCA,WAmCA6nL,EAAA74K,QAAA,mQACA64K,EAAA74K,QAAA,2DAAAgnL,EAAAh9M,OAAA,kBAIAT,EAAA,EAAAA,EAAA67M,EAAAp7M,OAAAT,IAAA,CACAk9M,EAAArB,EAAA77M,GAEAk9M,EAAAp/L,aAAA,OAAA,OACAo/L,EAAAp/L,aAAA,KAAA,OAAAtb,EAAA,IAAAxC,GACAk9M,EAAAp/L,aAAA,gBAAA,YAAAtb,EAAA,IAAAxC,EAEA,IAAA29M,GAAA,aAAAn7M,EAAA,IAAAxC,EACAuxB,EAAA+9K,EAAAxsL,KAAA66L,GAAA76L,KAAA,MAAA9G,MAEA,iBAAAuV,IAAA,IAAAA,EAAA9wB,SAAA8wB,EAAA+9K,EAAAxsL,KAAA66L,GAAA3hM,QACA,gBAAAuV,IAAA,IAAAA,EAAA9wB,SAAA8wB,EAAA+9K,EAAAxsL,KAAA66L,GAAA76L,KAAA,MAAA9G,QACA,gBAAAuV,IAAA,IAAAA,EAAA9wB,SAAA8wB,EAAA+9K,EAAAxsL,KAAA66L,GAAA76L,KAAA,MAAA9G,QACA,gBAAAuV,IAAA,IAAAA,EAAA9wB,SAAA8wB,EAAA+9K,EAAAxsL,KAAA66L,GAAA76L,KAAA,MAAA9G,QACA,gBAAAuV,IAAA,IAAAA,EAAA9wB,SAAA8wB,EAAA+9K,EAAAxsL,KAAA66L,GAAA76L,KAAA,MAAA9G,QACA,gBAAAuV,IAAA,IAAAA,EAAA9wB,SAAA8wB,EAAA,WAIA,IAAAqsL,GAAA74M,SAAAuF,cAAA,OACAszM,GAAA9/L,aAAA,QAAA,WACA8/L,EAAAlzM,UAAA,UAAA1K,EAAA,GACAuxB,IAAAqsL,EAAAlzM,WAAA,KAAA6mB,GACA2rL,EAAA7yM,YAAAuzM,GAKAR,EAAAr4M,SAAAuF,cAAA,OACA8yM,EAAAj3L,UAAA,6BACAphB,SAAAkK,KAAA5E,YAAA+yM,GAKAG,EAAAx4M,SAAAuF,cAAA,SACAizM,EAAAz/L,aAAA,QAAA,wBACAy/L,EAAAz/L,aAAA,aAAA,+BACAwxL,EAAA74K,QAAA8mL,GAEAD,EAAAv4M,SAAAuF,cAAA,UACAgzM,EAAAn3L,UAAA,wBACAm3L,EAAA5yM,UAAA,iBACA4yM,EAAAx/L,aAAA,QAAA,6FACAsrB,EAAAm0K,GAAA/mL,OAAA8mL,GAEAl0K,EAAAk0K,GAAAnoL,MAAA,WACAuoL,GACAJ,EAAA5yM,UAAA,iBACA4kM,EAAAiC,SAAA,SACAmM,GAAA,IAGAJ,EAAA5yM,UAAA,gBACA4kM,EAAAiC,SAAA,SACAmM,GAAA,KAGAt0K,EAAAk0K,GAAA3zL,MAAA,WACAyf,EAAAlkC,MAAAg5B,SAAA,WAGAkL,EAAAk0K,GAAApoL,KAAA,WACAkU,EAAAlkC,MAAAq5B,YAAA,WAGA0+K,IAEA7zK,EAAAnkC,QAAAquM,OAAA,WACA2J,MAIAO,EAAA/1L,KAAA,aAAA,kBACA+1L,EAAA3M,QAAA,SAAAltM,GAEA,UAAA/C,KADA+C,EAAAgP,OAAAhP,EAAAuwB,WAEAvwB,EAAA8vB,iBACA9vB,EAAA+vB,kBACA8pL,EAAAvoL,QAAA,YAIAuoL,EAAA7zL,MAAA,WACAyf,EAAAlkC,MAAAwnB,QAAA,aAAAwR,SAAA,cAGAs/K,EAAAtoL,KAAA,WACAkU,EAAAlkC,MAAAwnB,QAAA,aAAA6R,YAAA,cAGA2yK,EAAAzpL,KAAA,aAAA,cACAypL,EAAAL,QAAA,SAAAltM,GAEA,UAAA/C,KADA+C,EAAAgP,OAAAhP,EAAAuwB,WAEAvwB,EAAA8vB,iBACA9vB,EAAA+vB,kBACAw9K,EAAAj8K,QAAA,YAIAi8K,EAAAvnL,MAAA,WACAyf,EAAAlkC,MAAAwnB,QAAA,aAAAwR,SAAA,cAGAgzK,EAAAh8K,KAAA,WACAkU,EAAAlkC,MAAAwnB,QAAA,aAAA6R,YAAA,cAGA6K,EAAA,qBAAAzf,MAAA,WACAyf,EAAAlkC,MAAAwnB,QAAA,aAAAwR,SAAA,cAGAkL,EAAA,qBAAAlU,KAAA,WACAkU,EAAAlkC,MAAAwnB,QAAA,aAAA6R,YAAA,cAGAs9K,EAAAt1M,KAAA,WACA,GAAAouF,GAAAvrD,EAAAlkC,KACAyvF,GAAAh2D,SAAA,UACAg2D,EAAAltE,MAAAu0L,gBAAA,OAAAn+K,SAAA,MAEA82D,EAAAltE,MAAAu0L,gBAAA,QAAAn+K,SAAA,UAKA,IAAAggL,GAAAz0K,EAAAx9B,GAAA2lM,SAAAxjH,YAAA/qF,UAAAstM,KACAlnK,GAAAx9B,GAAA2lM,SAAAxjH,YAAA/qF,UAAAstM,MAAA,SAAAjrM,EAAA+mB,GACA,GAUA0xL,GAVAx2G,EAAApiG,KAAAoiG,SACAopG,EAAAppG,EAAAxkF,KAAA,0BACAouL,EAAA9kL,GAAAskL,EAAArrM,KAEA04M,EAAAz2G,EAAAxkF,KAAA,mBAAAkmB,OACAg1K,EAAA12G,EAAAxkF,KAAA,uBACAm7L,EAAA32G,EAAAxkF,KAAA,uBACAo7L,EAAA,EACAC,EAAAJ,EAAA,EACAK,EAAA,CAGAlN,IAAAA,EAAAzpL,KAAA,QACAq2L,EAAA5M,EAAAzpL,KAAA,MACAy2L,EAAAJ,EAAAvqJ,YAAA,KACA2qJ,GAAA,IAAAA,EAAApgL,SAAAggL,EAAAp7M,UAAAw7M,EAAA,GAAA,KAEAC,EAAAD,EAAA,EACAC,EAAA,IAAAA,EAAAJ,EAAA,IAEAK,EAAAF,EAAA,IACAH,IAAAK,EAAA,IAGAJ,EAAAv2L,KAAA,aAAA,eAAA02L,EAAA,GAAA,OAAAJ,GACAE,EAAAx2L,KAAA,aAAA,eAAA22L,EAAA,GAAA,OAAAL,GAGAF,EAAAl8M,MAAAuD,KAAA1D,WAEAkvM,EACA7kM,IAAA,kBAAA,WACA,GAAAqxM,EAEAA,GAAA51G,EAAAxkF,KAAA,qBAAA4tL,EAAAjpL,KAAA,MAAA,MACAy1L,GAAAA,EAAAz1L,MAAAu0L,iBAAA,EAAAlyL,SAAA,QAEAozL,EAAA51G,EAAAxkF,KAAA,qBAAAouL,EAAAzpL,KAAA,MAAA,QACAy1L,EAAAz1L,MAAAu0L,iBAAA,EAAAlyL,SAAA,QAKA,IAAAwlL,EACAlmK,GAAAx9B,GAAA2lM,SAAAxjH,YAAA/qF,UAAA6tM,QAAA,SAAAltM,GAKA,QAAA06M,GAAA77M,GACAA,GAAAq5M,EAAAp7M,QACA+B,EAAA,IAEAkvM,EAAAH,SAAA/uM,GACAgC,WAAA,WACAq3M,EAAAr5M,GAAAmnB,SAEA,MAXA2lL,EAAAA,GAAAlmK,EAAAlkC,MACAA,eAAA8tE,QAAAs8H,EAAAlmK,EAAAlkC,MAaA,IAGA1C,GAHAkvM,EAAAtoK,EAAAzlC,EAAAmU,QAAAwU,QAAA,aACAuvL,EAAAnK,EAAA5uL,KAAA,cACA64B,EAAAh4C,EAAAgP,OAAAhP,EAAAuwB,OAGA,iBAAAtzB,KAAA+6C,KAEAn5C,EAAAq5M,EAAAr5M,MAAAq5M,EAAA71M,OAAA,YACA,IAAA21C,GAAA,IAAAA,IACAn5C,IACA67M,EAAA77M;MAGA,IAAAm5C,GAAA,IAAAA,IACAn5C,IACA67M,EAAA77M,IAGAmB,EAAA8vB,iBACA9vB,EAAA+vB,oBAEA0V,EAAArkC,UAAA0G,GAAA,4BAAA,eAAA29B,EAAAx9B,GAAA2lM,SAAAxjH,YAAA/qF,UAAA6tM,UAGAjsM,QACA9F,OAAA,iBAAA,aAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAy5M,gBAEAp5M,OClrBA,SAAAwkB,EAAA5kB,GAGA,gBAAAlB,SAAAA,OAAAF,QAAAE,OAAAF,QAAAoB,IAGA,kBAAAhG,SAAAA,OAAA6F,IAAA7F,OAAA,OAAAgG,GAGA4kB,EAAA60L,QAAAz5M,KACAI,KAAA,WACA,YAWA,SAAAs5M,GAAAz1M,EAAA7J,GACA,GACAqE,GADAstB,EAAA9rB,SAAAuF,cAAAvB,GAAA,MAGA,KAAAxF,IAAArE,GAAA2xB,EAAAttB,GAAArE,EAAAqE,EACA,OAAAstB,GAMA,QAAA4tL,GAAA14L,GACA,IAAA,GAAA/lB,GAAA,EAAAuD,EAAA/B,UAAAf,OAAAT,EAAAuD,EAAAvD,IACA+lB,EAAA1b,YAAA7I,UAAAxB,GAGA,OAAA+lB,GAQA,QAAA24L,GAAAC,EAAAC,EAAA5+M,EAAA6+M,GACA,GAAAv/M,IAAA,UAAAs/M,KAAA,IAAAD,GAAA3+M,EAAA6+M,GAAA39M,KAAA,KACAyH,EAAA,IAAA3I,EAAA6+M,EAAA,IACAC,EAAA9tM,KAAAC,IAAA,GAAA,EAAA0tM,GAAAC,GAAA,IAAAj2M,GAAAg2M,GACAp8M,EAAAw8M,EAAAr8M,UAAA,EAAAq8M,EAAAt8M,QAAA,cAAA6E,cACA03M,EAAAz8M,GAAA,IAAAA,EAAA,KAAA,EAeA,OAbA08M,GAAA3/M,KACAsqG,EAAAG,WACA,IAAAi1G,EAAA,aAAA1/M,EAAA,eACAw/M,EAAA,IACAn2M,EAAA,aAAAg2M,EAAA,KACAh2M,EAAA,KAAA,gBACAA,EAAAi2M,GAAA,IAAA,aAAAD,EAAA,iBACAG,EAAA,KACAl1G,EAAAE,SAAArpG,QAEAw+M,EAAA3/M,GAAA,GAGAA,EAMA,QAAA4/M,GAAAruL,EAAA3xB,GACA,GACAigN,GACAn/M,EAFAmY,EAAA0Y,EAAAnoB,KAKA,IADAxJ,EAAAA,EAAA4B,OAAA,GAAA6P,cAAAzR,EAAA6B,MAAA,OACAuD,KAAA6T,EAAAjZ,GAAA,MAAAA,EACA,KAAAc,EAAA,EAAAA,EAAAo/M,EAAA3+M,OAAAT,IAEA,GADAm/M,EAAAC,EAAAp/M,GAAAd,MACAoF,KAAA6T,EAAAgnM,GAAA,MAAAA,GAOA,QAAAh3M,GAAA0oB,EAAA3xB,GACA,IAAA,GAAAqE,KAAArE,GACA2xB,EAAAnoB,MAAAw2M,EAAAruL,EAAAttB,IAAAA,GAAArE,EAAAqE,EAGA,OAAAstB,GAMA,QAAA1nB,GAAAlK,GACA,IAAA,GAAAe,GAAA,EAAAA,EAAAwB,UAAAf,OAAAT,IAAA,CACA,GAAAq/M,GAAA79M,UAAAxB,EACA,KAAA,GAAAuD,KAAA87M,OACA/6M,KAAArF,EAAAsE,KAAAtE,EAAAsE,GAAA87M,EAAA97M,IAGA,MAAAtE,GAMA,QAAAqgN,GAAA5uJ,EAAAxnC,GACA,MAAA,gBAAAwnC,GAAAA,EAAAA,EAAAxnC,EAAAwnC,EAAAjwD,QA6BA,QAAA89M,GAAA70K,GACAxkC,KAAAmO,KAAAlK,EAAAugC,MAAA60K,EAAAvkH,SAAAA,GAlIA,GAEA+kH,GACAn1G,EAHAw1G,GAAA,SAAA,MAAA,KAAA,KACAH,KAwGAjlH,GACA6kH,MAAA,GACAp+M,OAAA,EACAoP,MAAA,EACA0vM,OAAA,GACAv3M,MAAA,EACAw3M,QAAA,EACA9uJ,MAAA,OACA59C,QAAA,IACA2sM,OAAA,EACAljK,UAAA,EACAphB,MAAA,EACAyjL,MAAA,IACAc,IAAA,GACAhmL,OAAA,IACAvT,UAAA,UACAH,IAAA,MACAiU,KAAA,MACA0lL,QAAA,EACAC,SAAA,EACAhnL,SAAA,WAgMA,IAvLA2lL,EAAAvkH,YAEA7wF,EAAAo1M,EAAAv7M,WAMA68M,KAAA,SAAA/nM,GACA5S,KAAAiR,MAEA,IAAAhI,GAAAjJ,KACAwkC,EAAAv7B,EAAAkF,KACAwd,EAAA1iB,EAAA0iB,GAAA2tL,EAAA,MAAAr4L,UAAAujB,EAAAvjB,WAiBA,IAfAhe,EAAA0oB,GACA+H,SAAA8Q,EAAA9Q,SACA/oB,MAAA,EACA6pB,OAAAgQ,EAAAhQ,OACAO,KAAAyP,EAAAzP,KACAjU,IAAA0jB,EAAA1jB,MAGAlO,GACAA,EAAA4e,aAAA7F,EAAA/Y,EAAAhN,YAAA,MAGA+lB,EAAA/S,aAAA,OAAA,eACA3P,EAAA0wM,MAAAhuL,EAAA1iB,EAAAkF,OAEA0rM,EAAA,CAEA,GAEAJ,GAFA3+M,EAAA,EACA2I,GAAA+gC,EAAAm1K,MAAA,IAAA,EAAAn1K,EAAA6S,WAAA,EAEAmjK,EAAAh2K,EAAAg2K,IACAp8M,EAAAo8M,EAAAh2K,EAAAvO,MACA2kL,GAAA,EAAAp2K,EAAA52B,UAAAxP,EAAAomC,EAAAk1K,MAAA,KACAmB,EAAAz8M,EAAAomC,EAAAm1K,OAEA,QAAAprM,KACAzT,GACA,KAAA,GAAAC,GAAA,EAAAA,EAAAypC,EAAAm1K,MAAA5+M,IACA0+M,EAAA3tM,KAAAC,IAAA,GAAAjR,GAAA0pC,EAAAm1K,MAAA5+M,GAAA8/M,GAAAz8M,EAAAw8M,EAAAp2K,EAAA52B,SAEA3E,EAAA2E,QAAA+d,EAAA5wB,EAAAypC,EAAA6S,UAAA5zC,EAAAg2M,EAAAj1K,EAEAv7B,GAAAyuB,QAAAzuB,EAAA0iB,IAAArsB,WAAAiP,KAAA,IAAAisM,OAGA,MAAAvxM,IAMAgI,KAAA,WACA,GAAA0a,GAAA3rB,KAAA2rB,EAMA,OALAA,KACAgM,aAAA33B,KAAA03B,SACA/L,EAAAhiB,YAAAgiB,EAAAhiB,WAAAC,YAAA+hB,GACA3rB,KAAA2rB,OAAAvsB,IAEAY,MAOA25M,MAAA,SAAAhuL,EAAA6Y,GAKA,QAAA8S,GAAAkU,EAAAivJ,GACA,MAAAx3M,GAAAq2M,KACA5lL,SAAA,WACA/oB,MAAA65B,EAAA1hC,OAAA0hC,EAAAjpC,OAAAipC,EAAA75B,OAAA,KACAgD,OAAA62B,EAAA1hC,MAAA0hC,EAAA75B,MAAA,KACAknG,WAAArmD,EACAsvJ,UAAAL,EACAM,gBAAA,OACAhwI,UAAA,aAAA,IAAAvmC,EAAAm1K,MAAA7+M,EAAA0pC,EAAA+1K,QAAA,kBAAA/1K,EAAA1hC,MAAA0hC,EAAA61K,OAAA,QACAW,cAAAx2K,EAAA81K,QAAA91K,EAAA1hC,MAAA0hC,EAAA75B,OAAA,GAAA,OAIA,IAjBA,GAEAswM,GAFAngN,EAAA,EACA2I,GAAA+gC,EAAAm1K,MAAA,IAAA,EAAAn1K,EAAA6S,WAAA,EAgBAv8C,EAAA0pC,EAAAm1K,MAAA7+M,IACAmgN,EAAAh4M,EAAAq2M,KACA5lL,SAAA,WACA5S,IAAA,IAAA0jB,EAAA1hC,MAAA0hC,EAAA75B,MAAA,GAAA,KACAogE,UAAAvmC,EAAAk2K,QAAA,qBAAA,GACA9sM,QAAA42B,EAAA52B,QACAE,UAAA+rM,GAAAL,EAAAh1K,EAAA52B,QAAA42B,EAAAk1K,MAAAj2M,EAAA3I,EAAA0pC,EAAA6S,UAAA7S,EAAAm1K,OAAA,IAAA,EAAAn1K,EAAAvO,MAAA,sBAGAuO,EAAAi2K,QAAAlB,EAAA0B,EAAAh4M,EAAAq0C,EAAA,OAAA,iBAAAx2B,IAAA,SACAy4L,EAAA5tL,EAAA4tL,EAAA0B,EAAA3jK,EAAA8iK,EAAA51K,EAAAgnB,MAAA1wD,GAAA,2BAEA,OAAA6wB,IAOA/d,QAAA,SAAA+d,EAAA7wB,EAAAsR,GACAtR,EAAA6wB,EAAAhmB,WAAApK,SAAAowB,EAAAhmB,WAAA7K,GAAA0I,MAAAoK,QAAAxB,MA2EA,mBAAAvM,UAAA,CACA6kG,EAAA,WACA,GAAA/4E,GAAA2tL,EAAA,SAAAn5M,KAAA,YAEA,OADAo5M,GAAA15M,SAAAiE,qBAAA,QAAA,GAAA6nB,GACAA,EAAA+4E,OAAA/4E,EAAAuvL,aAGA,IAAAC,GAAAl4M,EAAAq2M,EAAA,UAAA/oH,SAAA,uBAEAypH,EAAAmB,EAAA,cAAAA,EAAAC,IA9EA,WAGA,QAAAC,GAAAx3M,EAAA0e,GACA,MAAA+2L,GAAA,IAAAz1M,EAAA,2DAAA0e,GAIAmiF,EAAA42G,QAAA,YAAA,8BAEAjC,EAAAv7M,UAAA67M,MAAA,SAAAhuL,EAAA6Y,GAIA,QAAA+2K,KACA,MAAAt4M,GACAo4M,EAAA,SACAG,UAAAvoM,EAAA,IAAAA,EACAwoM,aAAAl3K,EAAA,KAAAA,KAEA55B,MAAAsI,EAAAtF,OAAAsF,IAQA,QAAAgoM,GAAAngN,EAAA4gN,EAAA56M,GACAy4M,EACAoC,EACApC,EACAt2M,EAAAs4M,KAAAt0G,SAAA,IAAAziE,EAAAm1K,MAAA7+M,EAAA,MAAAi6B,OAAA2mL,IACAnC,EACAt2M,EACAo4M,EAAA,aAAAO,QAAAp3K,EAAA81K,WACA3vM,MAAA45B,EACA52B,OAAA62B,EAAA1hC,MAAA0hC,EAAA75B,MACAoqB,KAAAyP,EAAA1hC,MAAA0hC,EAAA61K,OACAv5L,KAAA0jB,EAAA1hC,MAAA0hC,EAAA75B,OAAA,EACA7J,OAAAA,IAGAu6M,EAAA,QAAA7vJ,MAAA4uJ,EAAA51K,EAAAgnB,MAAA1wD,GAAA8S,QAAA42B,EAAA52B,UACAytM,EAAA,UAAAztM,QAAA,OAjCA,GAeA9S,GAfAypC,EAAAC,EAAA1hC,OAAA0hC,EAAAjpC,OAAAipC,EAAA75B,OACAsI,EAAA,EAAAuxB,EAAA1hC,MAAAyhC,EAYAvP,IAAAwP,EAAA75B,MAAA65B,EAAAjpC,QAAAipC,EAAA1hC,MAAA,EAAA,KACA64M,EAAA14M,EAAAs4M,KAAA7nL,SAAA,WAAA5S,IAAAkU,EAAAD,KAAAC,GAyBA,IAAAwP,EAAAi2K,OACA,IAAA3/M,EAAA,EAAAA,GAAA0pC,EAAAm1K,MAAA7+M,IACAmgN,EAAAngN,GAAA,EAAA,sFAGA,KAAAA,EAAA,EAAAA,GAAA0pC,EAAAm1K,MAAA7+M,IAAAmgN,EAAAngN,EACA,OAAAy+M,GAAA5tL,EAAAgwL,IAGAtC,EAAAv7M,UAAA8P,QAAA,SAAA+d,EAAA7wB,EAAAsR,EAAAo4B,GACA,GAAAH,GAAA1Y,EAAA/lB,UACA4+B,GAAAA,EAAAi2K,QAAAj2K,EAAAm1K,OAAA,EACAt1K,GAAAvpC,EAAA0pC,EAAAH,EAAA1+B,WAAApK,SACA8oC,EAAAA,EAAA1+B,WAAA7K,EAAA0pC,GAAAH,EAAAA,GAAAA,EAAAz+B,YAAAy+B,EAAAA,GAAAA,EAAAz+B,cACAy+B,EAAAz2B,QAAAxB,QAeAytM,EAAAG,EAAAmB,EAAA,aAGA,MAAA9B,KAIAz/M,OAAA,6BAAA,QAAA,SAAAy/M,GCvWA,MAAA,IAAAA,IAjBAM,MAAA,GACAp+M,OAAA,EACAoP,MAAA,GACA0vM,OAAA,GACAC,QAAA,EACAC,OAAA,EACAljK,UAAA,EACAmU,MAAA,OACAv1B,MAAA,EACAyjL,MAAA,GACAe,QAAA,EACAC,SAAA,EACAz5L,UAAA,UACAuT,OAAA,IACA1T,IAAA,MACAiU,KAAA,UAIAn7B,OAAA,cAAA,WClBA,GAAAiiN,OAAAz8M,GACA08M,EAAA,WACA,GAAAD,EAAA,OAAA,CACA,QAAA,KAAAA,EAAA,CAEA,GADAA,GAAA,EACAE,aACA,IACAA,aAAAC,QAAA,yBAAA,KACAD,aAAAE,WAAA,0BACAJ,GAAA,EACA,MAAAp9M,IAGA,MAAAo9M,GAEA,OAAA,EAoDA,OAhDAK,WACAC,IAAA,SAAAl6M,EAAAmK,EAAAtN,GACA,IAAAg9M,IAEA,YADAh9M,GAAAA,IAIA,IAAAsN,GAAAyuB,KAAAuxB,UAAAhgD,EACA2vM,cAAA95M,GAAAmK,EAEAtN,GACAA,KAKAyF,IAAA,SAAAtC,EAAAnD,GACA,IAAAg9M,IAEA,YADAh9M,GAAAA,EAAA,MAIA,IAAAsN,GAAA2vM,aAAA95M,EAEAnD,GADAsN,EACAyuB,KAAAC,MAAA1uB,GAGA,OAMAgwM,YAAA,SAAA9iM,EAAAxa,GACA,IAAAg9M,IAEA,YADAh9M,GAAAA,MAKA,KAAA,GADAu9M,MACAvhN,EAAA,EAAAA,EAAAwe,EAAA/d,OAAAT,IACAihN,aAAAziM,EAAAxe,MACAuhN,EAAA/iM,EAAAxe,IAAAihN,aAAAziM,EAAAxe,IAGAgE,GAAAu9M,KAGAH,WCrEAtiN,OAAA,2DAAA,WAAA,MAAA,m+WCAAA,OAAA,2DAAA,WAAA,MAAA,q6XCAAA,OAAA,8DAAA,WAAA,MAAA;q3XCAAA,OAAA,2DAAA,WAAA,MAAA,qmOCAAA,OAAA,2DAAA,WAAA,MAAA,q8ICAAA,OAAA,2DAAA,WAAA,MAAA,6yICAAA,OAAA,2DAAA,WAAA,MAAA;+xHCAAA,OAAA,2DAAA,WAAA,MAAA,gxHCAAA,OAAA,8DAAA,WAAA,MAAA,+2ICAAA,OAAA,8DAAA,WAAA,MAAA,2nHCAAA,OAAA,8DAAA,WAAA,MAAA,omHCYAA,OAAA,eAAA,wDACA,wDACA,2DACA,wDACA,wDACA,wDACA,wDACA,wDACA,2DACA,2DACA,4DACA,SAAA6+D,EAAAvG,EAAAoqJ,EAAAhqJ,EAAAtjB,EAAArwC,EAAA49M,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAC,KAEAA,GAAA,GAAAnkJ,EACAmkJ,EAAA,GAAA1qJ,EACA0qJ,EAAA,MAAAN,EACAM,EAAA,GAAAtqJ,EACAsqJ,EAAA,GAAAj+M,EACAi+M,EAAA,GAAA5tK,EACA4tK,EAAA,GAAAL,EACAK,EAAA,GAAAJ,EACAI,EAAA,MAAAH,EACAG,EAAA,MAAAF,EACAE,EAAA,MAAAD,CAEA,IAAAryE,GAAApjG,UAAA21K,cAAA31K,UAAAojG,QAGA/iG,SAAAE,IAAA,cAAA6iG,EAAA,IAEA,IAEAwyE,GAAAF,EAAAtyE,IAAAgyE,EAEAS,EAAAliL,KAAAC,MAAAgiL,GACAE,EAAAF,IAAAR,EAAAS,EAAAliL,KAAAC,MAAAwhL,EAEA,KAAA,GAAAtiN,KAAAgjN,GAAA,CACA,GAAAC,GAAAjjN,IAAA+iN,EACAE,IAAA11K,QAAAE,IAAA,aAAA6iG,EAAA,uBAAAtwI,EAAA,KAEA+iN,EAAA/iN,GAAAijN,EAAAF,EAAA/iN,GAAA01E,QAAA,IAAAstI,EAAAhjN,GAAA01E,QAEA,MAAAqtI,ICxCA,IAAAG,WAEA,SAAAA,GAsPA,QAAAC,GAAAl7M,EAAAm7M,EAAAC,GACA,GAAAjxM,EAaA,OAXAgxM,IAAA,gBAAAA,SAEAh+M,KAAAg+M,EAAAn7M,GACAmK,EAAAgxM,EAAAn7M,GAGAo7M,GAAAD,EAAA74M,KAAA,kBAAA64M,GAAA74M,MACA6H,EAAAgxM,EAAA74M,IAAAtC,KAIAmK,EAGA,QAAAkxM,GAAA10H,EAAA20H,EAAAC,EAAAC,EAAAC,EAAAC,GACA,QAAAC,MAEA,QAAAC,MADAD,EAAA9/M,UAAA8qF,EAEAi1H,EAAA//M,UAAA8qF,EAAA20H,IACA,IAAAt7M,GACA8wF,EAAA,GAAA6qH,EACA7qH,GAAAwqH,KAAA,GAAAM,GACA9qH,EAAA+qH,YACA/qH,EAAAgrH,IAAA,GAEAN,EAAAA,MACA1qH,EAAA0qH,UAAAA,EACA1qH,EAAA+qH,SAAAH,CACA,KAAA17M,IAAAs7M,GACAE,EAAAx7M,KAAAw7M,EAAAx7M,GAAAs7M,EAAAt7M,GAEA,KAAAA,IAAAw7M,GACA1qH,EAAAwqH,KAAAt7M,GAAAw7M,EAAAx7M,EAGAy7M,GAAAA,MACA3qH,EAAA2qH,cAAAA,CACA,KAAAz7M,IAAAu7M,GACAE,EAAAz7M,KAAAy7M,EAAAz7M,GAAAu7M,EAAAv7M,GAEA,KAAAA,IAAAy7M,GACA3qH,EAAAyqH,SAAAv7M,GAAAy7M,EAAAz7M,EAGA,OAAA8wF,GAUA,QAAAirH,GAAA5xM,GACA,MAAAoU,QAAA,OAAApU,OAAAhN,KAAAgN,EAAA,GAAAA,GAGA,QAAA6xM,GAAAnjH,GAEA,MADAA,GAAAkjH,EAAAljH,GACAojH,EAAAxiN,KAAAo/F,GACAA,EACAn/F,QAAAwiN,EAAA,SACAxiN,QAAAyiN,EAAA,QACAziN,QAAA0iN,EAAA,QACA1iN,QAAA2iN,EAAA,SACA3iN,QAAA4iN,EAAA,UACAzjH,EA3TAoiH,EAAAsB,SAAA,SAAAC,EAAA3nM,EAAA4nM,EAAAv9M,GACAs9M,EAAAA,MACAz+M,KAAAukC,EAAAk6K,EAAAhoM,MAAAzW,KAAAukC,EACAvkC,KAAAqkC,EAAAq6K,EACA1+M,KAAAmB,QAAAA,MACAnB,KAAA8W,KAAAA,GAAA,GACA9W,KAAAw9M,SAAAiB,EAAAjB,aACAx9M,KAAAu9M,KAAAkB,EAAAlB,SACAv9M,KAAA+9M,IAAA,IAGAb,EAAAsB,SAAA1gN,WAEAymC,EAAA,SAAA3gC,EAAA45M,EAAAn1E,GAAA,MAAA,IAGA5zH,EAAAwpM,EAGAnxL,EAAAkxL,EAEA3lH,OAAA,SAAAz0F,EAAA45M,EAAAn1E,GACA,MAAAroI,MAAA2+M,IAAA/6M,GAAA45M,MAAAn1E,IAIAs2E,GAAA,SAAA/6M,EAAA45M,EAAAn1E,GACA,MAAAroI,MAAAukC,EAAA3gC,EAAA45M,EAAAn1E,IAIAu2E,GAAA,SAAA5xK,EAAAwwK,GACA,GAAAzqH,GAAA/yF,KAAAw9M,SAAAxwK,GAGAkrD,EAAAslH,EAAAzqH,EAAA34F,KACA,IAAA24F,EAAAnK,UAAAmK,EAAAj4E,MAAAo9E,EACA,MAAAnF,GAAAnK,QAGA,IAAA,gBAAAsP,GAAA,CACA,IAAAl4F,KAAAqkC,EACA,KAAA,IAAAlnC,OAAA,yBAEA+6F,GAAAl4F,KAAAqkC,EAAAnmB,QAAAg6E,EAAAl4F,KAAAmB,SAGA,IAAA+2F,EACA,MAAA,KAMA,IAFAl4F,KAAAw9M,SAAAxwK,GAAAlyB,KAAAo9E,EAEAnF,EAAAwqH,KAAA,CAEAC,EAAAG,YAAAH,EAAAG,aACA,KAAA17M,MAAA8wF,GAAAwqH,KACAC,EAAAG,UAAA17M,OACAu7M,EAAAG,UAAA17M,SAAA7C,KAAAY,KAAA6+M,WAAArB,EAAAG,UAAA39M,KAAA6+M,WAAArB,EAAAG,UAAA39M,KAAA6+M,WAAA7+M,KAAA8W,KAGAohF,GAAAolH,EAAAplH,EAAAnF,EAAAwqH,KAAAxqH,EAAAyqH,SACAx9M,KAAAy9M,UAAAz9M,KAAA09M,cAAAF,EAAAG,WAIA,MAFA39M,MAAAw9M,SAAAxwK,GAAA47C,SAAAsP,EAEAA,GAIA4mH,GAAA,SAAA9xK,EAAAppC,EAAA45M,EAAAn1E,GACA,GAAAt1C,GAAA/yF,KAAA4+M,GAAA5xK,EAAAwwK,EACA,OAAAzqH,GAIAA,EAAA4rH,GAAA/6M,EAAA45M,EAAAn1E,GAHA,IAOAxyE,GAAA,SAAAjyD,EAAA45M,EAAAuB,GACA,GAAA/tH,GAAAptF,EAAAA,EAAArI,OAAA,EAEA,KAAAmU,EAAAshF,GAEA,WADA+tH,GAAAn7M,EAAA45M,EAAAx9M,KAIA,KAAA,GAAAlF,GAAA,EAAAA,EAAAk2F,EAAAz1F,OAAAT,IACA8I,EAAArH,KAAAy0F,EAAAl2F,IACAikN,EAAAn7M,EAAA45M,EAAAx9M,MACA4D,EAAAka,OAKA7K,EAAA,SAAA7G,EAAAw7F,EAAA41G,EAAAvtI,EAAAxsE,EAAAC,EAAAs7M,GACA,GAAAluH,EAEA,SAAAphF,EAAAtD,IAAA,IAAAA,EAAA7Q,UAIA,kBAAA6Q,KACAA,EAAApM,KAAAq8L,GAAAjwL,EAAAw7F,EAAA41G,EAAAvtI,EAAAxsE,EAAAC,EAAAs7M,IAGAluH,IAAA1kF,GAEA6jE,GAAA6gB,GAAA8W,GACAA,EAAArrG,KAAA,gBAAA6P,GAAAA,EAAAw7F,EAAAA,EAAArsG,OAAA,IAGAu1F,IAIAjsB,EAAA,SAAA5iE,EAAA2lG,EAAA41G,EAAAyB,GACA,GAAArvI,GACA+kB,EAAA1yF,EAAA9G,MAAA,KACAiR,EAAApM,KAAA5B,EAAAu2F,EAAA,GAAAiT,EAAA41G,EAAAyB,GACA5B,EAAAr9M,KAAAmB,QAAA+9M,SACAC,EAAA,IAEA,IAAA,MAAAl9M,GAAAyN,EAAAk4F,EAAAA,EAAArsG,OAAA,IACA6Q,EAAAw7F,EAAAA,EAAArsG,OAAA,OAEA,KAAA,GAAAT,GAAA,EAAAA,EAAA65F,EAAAp5F,OAAAT,IACA80E,EAAAutI,EAAAxoH,EAAA75F,GAAAsR,EAAAixM,OACAj+M,KAAAwwE,GACAuvI,EAAA/yM,EACAA,EAAAwjE,GAEAxjE,EAAA,EAKA,SAAA6yM,IAAA7yM,KAIA6yM,GAAA,kBAAA7yM,KACAw7F,EAAArrG,KAAA4iN,GACA/yM,EAAApM,KAAA40D,GAAAxoD,EAAAw7F,EAAA41G,GACA51G,EAAA9pF,OAGA1R,IAIAhO,EAAA,SAAA6D,EAAA2lG,EAAA41G,EAAAyB,GAMA,IAAA,GALA7yM,IAAA,EACAqI,EAAA,KACAm7D,GAAA,EACAytI,EAAAr9M,KAAAmB,QAAA+9M,SAEApkN,EAAA8sG,EAAArsG,OAAA,EAAAT,GAAA,EAAAA,IAGA,GAFA2Z,EAAAmzF,EAAA9sG,OAEAsE,MADAgN,EAAA+wM,EAAAl7M,EAAAwS,EAAA4oM,IACA,CACAztI,GAAA,CACA,OAIA,MAAAA,IAIAqvI,GAAA,kBAAA7yM,KACAA,EAAApM,KAAA40D,GAAAxoD,EAAAw7F,EAAA41G,IAGApxM,IAPA,GAAA,IAWAgzM,GAAA,SAAAttM,EAAAqtM,EAAA3B,EAAA1mM,EAAAkoM,GACA,GAAAK,GAAAr/M,KAAAmB,QAAAm+M,UAMA,OAJAt/M,MAAAmB,QAAAm+M,WAAAN,EACAh/M,KAAAia,EAAAja,KAAAmT,GAAA6qM,EAAAlsM,EAAA5X,KAAAilN,EAAAroM,IAAAqoM,EAAA3B,IACAx9M,KAAAmB,QAAAm+M,WAAAD,GAEA,GAIAlsM,GAAA,SAAA2D,EAAAqoM,EAAA3B,GACA,GAAAx9M,KAAAmB,QAAAo+M,cACA,KAAA,IAAApiN,OAAA,4BAEA,OAAA6C,MAAAqkC,EAAAnmB,QAAApH,EAAA9W,KAAAmB,SAAAk3F,OAAA8mH,EAAA3B,IAIAvjM,EAAA,SAAAhH,GAAAjT,KAAA+9M,KAAA9qM,GAEAusM,GAAA,WAAA,GAAAj7K,GAAAvkC,KAAA+9M,GAAA,OAAA/9M,MAAA+9M,IAAA,GAAAx5K,GAGA83J,GAAA,SAAAvqL,EAAA81F,EAAA41G,EAAAvtI,EAAAxsE,EAAAC,EAAAs7M,GACA,GAAAS,GACAN,EAAAv3G,EAAAA,EAAArsG,OAAA,GACAuU,EAAAgC,EAAA5X,KAAAilN,EAEA,OAAA,kBAAArvM,KACAmgE,IAGAwvI,EAAAz/M,KAAA6+M,WAAA7+M,KAAA89M,UAAA99M,KAAA89M,SAAA99M,KAAA6+M,WAAA7+M,KAAA89M,SAAA99M,KAAA6+M,WAAA7+M,KAAA8W,KACA9W,KAAAo/M,GAAAtvM,EAAAqvM,EAAA3B,EAAAiC,EAAAjiN,UAAAiG,EAAAC,GAAAs7M,IAIAlvM,GAIA8kD,GAAA,SAAA9iD,EAAA81F,EAAA41G,GACA,GAAA2B,GAAAv3G,EAAAA,EAAArsG,OAAA,GACAuU,EAAAgC,EAAA5X,KAAAilN,EAEA,OAAA,kBAAArvM,GACA9P,KAAAmT,GAAA6qM,EAAAluM,EAAA5V,KAAAilN,IAAAA,EAAA3B,GAGA1tM,GAGAg8C,IAAA,SAAA1xD,EAAAwJ,EAAA45M,EAAAn1E,GACA,GAAAjqI,GAAA4B,KAAAu9M,KAAAnjN,EACAgE,KACA4B,KAAA6+M,UAAAzkN,EACAgE,EAAAwF,EAAA45M,EAAAx9M,KAAAqoI,GACAroI,KAAA6+M,WAAA,IAyDA,IAAAV,GAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,MACAC,EAAA,MACAL,EAAA,YAkBAxuM,EAAA4G,MAAA5G,SAAA,SAAAsK,GACA,MAAA,mBAAAnc,OAAAC,UAAAiX,SAAA7a,KAAA8f,KAGA,mBAAAxb,SAAAA,QAAA0+M,OAIA,SAAAA,GAkJA,QAAAwC,GAAAx5L,GACA,MAAAA,EAAA7nB,EAAAw3C,OAAA3vB,EAAA7nB,EAAA9C,OAAA,KACA2qB,EAAA7nB,EAAA6nB,EAAA7nB,EAAAb,UAAA,EAAA0oB,EAAA7nB,EAAA9C,OAAA,IAIA,QAAAsb,GAAA5D,GACA,MAAAA,GAAA4D,KACA5D,EAAA4D,OAGA5D,EAAAtX,QAAA,aAAA,IAGA,QAAAgkN,GAAA97M,EAAAiT,EAAAxZ,GACA,GAAAwZ,EAAAlb,OAAA0B,IAAAuG,EAAAjI,OAAA,GACA,OAAA,CAGA,KAAA,GAAAd,GAAA,EAAAuJ,EAAAR,EAAAtI,OAAAT,EAAAuJ,EAAAvJ,IACA,GAAAgc,EAAAlb,OAAA0B,EAAAxC,IAAA+I,EAAAjI,OAAAd,GACA,OAAA,CAIA,QAAA,EAMA,QAAA8kN,GAAAllM,EAAAi8B,EAAAivC,EAAAi6H,GACA,GAAA/zH,MACA15D,EAAA,KACA4+D,EAAA,KACA9qE,EAAA,IAIA,KAFA8qE,EAAApL,EAAAA,EAAArqF,OAAA,GAEAmf,EAAAnf,OAAA,GAAA,CAGA,GAFA2qB,EAAAxL,EAAAnH,QAEAy9E,GAAA,KAAAA,EAAAntF,OAAAqiB,EAAAriB,MAAAi8M,IACA,KAAA,IAAA3iN,OAAA,kCAGA,IAAA+/M,EAAA8B,KAAA94L,EAAAriB,MAAAq5M,EAAA8B,KAAA,GAAAe,EAAA75L,EAAA25L,GACAj6H,EAAArpF,KAAA2pB,GACAA,EAAAjhB,MAAA26M,EAAAllM,EAAAwL,EAAAriB,IAAA+hF,EAAAi6H,OACA,CAAA,GAAA,KAAA35L,EAAAriB,IAAA,CACA,GAAA,IAAA+hF,EAAArqF,OACA,KAAA,IAAA4B,OAAA,gCAAA+oB,EAAA7nB,EAGA,IADA+zB,EAAAwzD,EAAA9nE,MACAoI,EAAA7nB,GAAA+zB,EAAA/zB,IAAA2hN,EAAA95L,EAAA7nB,EAAA+zB,EAAA/zB,EAAAwhN,GACA,KAAA,IAAA1iN,OAAA,kBAAAi1B,EAAA/zB,EAAA,QAAA6nB,EAAA7nB,EAGA,OADA+zB,GAAA1uB,IAAAwiB,EAAAprB,EACAgxF,EACA,MAAA5lE,EAAAriB,MACAqiB,EAAAtQ,KAAA,GAAA8E,EAAAnf,QAAA,MAAAmf,EAAA,GAAA7W,KAGAioF,EAAAvvF,KAAA2pB,GAGA,GAAA0/D,EAAArqF,OAAA,EACA,KAAA,IAAA4B,OAAA,wBAAAyoF,EAAA9nE,MAAAzf,EAGA,OAAAytF,GAGA,QAAAi0H,GAAA75L,EAAA84L,GACA,IAAA,GAAAlkN,GAAA,EAAAuJ,EAAA26M,EAAAzjN,OAAAT,EAAAuJ,EAAAvJ,IACA,GAAAkkN,EAAAlkN,GAAA0pC,GAAAte,EAAA7nB,EAEA,MADA6nB,GAAAriB,IAAA,KACA,EAKA,QAAAm8M,GAAAx1M,EAAA+1B,EAAAy+K,GACA,IAAA,GAAAlkN,GAAA,EAAAuJ,EAAA26M,EAAAzjN,OAAAT,EAAAuJ,EAAAvJ,IACA,GAAAkkN,EAAAlkN,GAAAupC,GAAA75B,GAAAw0M,EAAAlkN,GAAA0pC,GAAAjE,EACA,OAAA,EAKA,QAAA0/K,GAAAlmN,GACA,GAAAi8C,KACA,KAAA,GAAA/zC,KAAAlI,GACAi8C,EAAAz5C,KAAA,IAAA2jN,EAAAj+M,GAAA,yBAAAlI,EAAAkI,GAAA,IAEA,OAAA,KAAA+zC,EAAAh6C,KAAA,KAAA,KAGA,QAAAmkN,GAAA1B,GACA,GAAAjB,KACA,KAAA,GAAAv7M,KAAAw8M,GAAAjB,SACAA,EAAAjhN,KAAA,IAAA2jN,EAAAj+M,GAAA,YAAAi+M,EAAAzB,EAAAjB,SAAAv7M,GAAA7H,MAAA,MAAA+lN,EAAA1B,EAAAjB,SAAAv7M,IAAA,IAEA,OAAA,cAAAu7M,EAAAxhN,KAAA,KAAA,YAAAikN,EAAAxB,EAAAlB,MA2CA,QAAA2C,GAAAjtM,GACA,MAAAA,GAAAtX,QAAAykN,EAAA,QACAzkN,QAAA4iN,EAAA,OACA5iN,QAAA0kN,EAAA,OACA1kN,QAAA2kN,EAAA,OACA3kN,QAAA4kN,EAAA,WACA5kN,QAAA6kN,EAAA,WAGA,QAAAC,GAAAxtM,GACA,OAAAA,EAAA1V,QAAA,KAAA,IAAA,IAGA,QAAAmjN,GAAA/3M,EAAA/E,GACA,GAAAvG,GAAA,KAAAuG,EAAAvG,QAAA,IACAqzC,EAAArzC,EAAAsL,EAAAtK,EAAAsiN,GAGA,OAFA/8M,GAAA45M,SAAA9sK,IAAAt2C,KAAAuO,EAAAtK,EAAAm/M,aACA55M,EAAA6S,MAAA,aAAAypM,EAAAxvK,GAAA,WAAA/nC,EAAA0/H,QAAA,IAAA,OACA33F,EAqDA,QAAAkwK,GAAAj4M,EAAA/E,GACAA,EAAA6S,MAAA,aAAAgqM,EAAA93M,EAAAtK,GAAA,KAAA6hN,EAAAv3M,EAAAtK,GAAA,cAGA,QAAAkM,GAAA0I,GACA,MAAA,OAAAA,EAAA,KA7WA,GAAA4tM,GAAA,KACAtC,EAAA,MACA8B,EAAA,MACAC,EAAA,MACAF,EAAA,MACAG,EAAA,SACAC,EAAA,QAEAtD,GAAA8B,MACAxhJ,IAAA,EAAAsjJ,IAAA,EAAApqH,IAAA,EAAAxyD,EAAA,EACAo5B,IAAA,EAAAyjJ,IAAA,EAAAh+L,IAAA,EAAAi+L,IAAA,EAAAC,GAAA,EACAC,IAAA,GAAAzqH,IAAA,GAAA0qH,GAAA,IAGAjE,EAAAkE,KAAA,SAAAtqM,EAAAwoM,GAgBA,QAAA+B,KACAtD,EAAAxiN,OAAA,IACAmf,EAAAne,MAAAsH,IAAA,KAAAiT,KAAA,GAAA0J,QAAAu9L,KACAA,EAAA,IAIA,QAAAuD,KAEA,IAAA,GADAC,IAAA,EACAxmN,EAAAymN,EAAAzmN,EAAA2f,EAAAnf,OAAAR,IAIA,KAHAwmN,EACArE,EAAA8B,KAAAtkM,EAAA3f,GAAA8I,KAAAq5M,EAAA8B,KAAA,IACA,MAAAtkM,EAAA3f,GAAA8I,KAAA,OAAA6W,EAAA3f,GAAA+b,KAAAxV,MAAAu/M,IAEA,OAAA,CAIA,OAAAU,GAGA,QAAAE,GAAAC,EAAAC,GAGA,GAFAN,IAEAK,GAAAJ,IACA,IAAA,GAAAp6L,GAAAnsB,EAAAymN,EAAAzmN,EAAA2f,EAAAnf,OAAAR,IACA2f,EAAA3f,GAAA+b,QACAoQ,EAAAxM,EAAA3f,EAAA,KAAA,KAAAmsB,EAAArjB,MAEAqjB,EAAAmhH,OAAA3tH,EAAA3f,GAAA+b,KAAA/B,YAEA2F,EAAA3e,OAAAhB,EAAA,QAGA4mN,IACAjnM,EAAAne,MAAAsH,IAAA,MAGA+9M,IAAA,EACAJ,EAAA9mM,EAAAnf,OAtDA,GAAAsa,GAAAiB,EAAAvb,OAIA8Y,EAHA,EAIAwtM,EAAA,KACAh+M,EAAA,KACAk6M,EAAA,GACArjM,KACAknM,GAAA,EACA9mN,EAAA,EACA0mN,EAAA,EACAM,EAAA,KACAC,EAAA,IA+DA,KANAzC,IACAA,EAAAA,EAAAnkN,MAAA,KACA2mN,EAAAxC,EAAA,GACAyC,EAAAzC,EAAA,IAGAxkN,EAAA,EAAAA,EAAA+a,EAAA/a,IA3EA,GA4EAuZ,EACAsrM,EAAAmC,EAAAhrM,EAAAhc,MACAA,EACAumN,IACAhtM,EA/EA,GAiFA,MAAAyC,EAAAlb,OAAAd,GACA2mN,EAAAG,GAEA7D,GAAAjnM,EAAAlb,OAAAd,GApFA,GAuFAuZ,GACAvZ,GAAAgnN,EAAAvmN,OAAA,EACAsI,EAAAq5M,EAAA8B,KAAAloM,EAAAlb,OAAAd,EAAA,IACA+mN,EAAAh+M,EAAAiT,EAAAlb,OAAAd,EAAA,GAAA,KACA,KAAA+mN,GACA/mN,EArCA,SAAAgc,EAAAxZ,GACA,GAAAkN,GAAA,IAAAu3M,EACAC,EAAAlrM,EAAAvZ,QAAAiN,EAAAlN,GACAgiN,EAAAzoM,EACAC,EAAAtZ,UAAAsZ,EAAAvZ,QAAA,IAAAD,GAAA,EAAA0kN,IACA7mN,MAAA,IAKA,OAHA2mN,GAAAxC,EAAA,GACAyC,EAAAzC,EAAAA,EAAA/jN,OAAA,GAEAymN,EAAAx3M,EAAAjP,OAAA,GA2BAub,EAAAhc,GACAuZ,EA9FA,IAgGAxQ,GACA/I,IAEAuZ,EAjGA,GAmGAutM,EAAA9mN,GAEA6kN,EAAAoC,EAAAjrM,EAAAhc,IACA4f,EAAAne,MAAAsH,IAAAg+M,EAAAxjN,EAAAwY,EAAAknM,GAAA+D,KAAAA,EAAAC,KAAAA,EACAjnN,EAAA,KAAA+mN,EAAAD,EAAAE,EAAAvmN,OAAAT,EAAAinN,EAAAxmN,SACAwiN,EAAA,GACAjjN,GAAAinN,EAAAxmN,OAAA,EACA8Y,EA5GA,EA6GA,KAAAwtM,IACA,MAAAE,EACAjnN,IAEA4kN,EAAAhlM,EAAAA,EAAAnf,OAAA,MAIAwiN,GAAAjnM,EAAAlb,OAAAd,EAOA,OAFA2mN,GAAAG,GAAA,GAEAlnM,EAgCA,IAAAolM,IAAAqB,IAAA,EAAAtpH,MAAA,EAAA3zD,GAAA,EAAAo5B,KAAA,EA6EA4/I,GAAA9wJ,UAAA,SAAAqyJ,EAAA3nM,EAAA3V,GACA,MAAA,6BAAA+7M,EAAA+E,SAAAxD,EAAAhoM,MAAA,MAAA0pM,EAAA1B,GAAA,IAGA,IAAAkC,GAAA,CACAzD,GAAAgF,SAAA,SAAAC,EAAArrM,EAAA3V,GACAw/M,EAAA,CACA,IAAA/8M,IAAA6S,KAAA,GAAA8mM,QAAAC,YAGA,OAFAN,GAAAkF,KAAAD,EAAAv+M,GAEAzC,EAAAkhN,SACAriN,KAAAosD,UAAAxoD,EAAAkT,EAAA3V,GAGAnB,KAAAsiN,aAAA1+M,EAAAkT,EAAA3V,IAGA+7M,EAAA+E,SAAA,SAAAxrM,GACA,MAAA,2BAAAA,EAAA,kBAGAymM,EAAAhlH,SAAAglH,EAAAsB,SAEAtB,EAAAoF,aAAA,SAAA7D,EAAA3nM,EAAA3V,GACA,GAAA+2F,GAAAl4F,KAAAuiN,aAAA9D,EAEA,OADAvmH,GAAAzhF,KAAA,GAAAsxB,UAAA,IAAA,IAAA,IAAA/nC,KAAAiiN,SAAAxD,EAAAhoM,OACA,GAAAzW,MAAAk4F,SAAAA,EAAAphF,EAAA9W,KAAAmB,IAGA+7M,EAAAqF,aAAA,SAAA9D,GACA,GAAAx8M,GAAAi2F,GAAAqlH,QAAAC,SAAAiB,EAAAjB,SAAApjN,KAAAqkN,EAAArkN,KACA,KAAA6H,IAAAi2F,GAAAslH,SACAtlH,EAAAslH,SAAAv7M,GAAAjC,KAAAuiN,aAAArqH,EAAAslH,SAAAv7M,GAEA,KAAAA,IAAAw8M,GAAAlB,KACArlH,EAAAqlH,KAAAt7M,GAAA,GAAA8lC,UAAA,IAAA,IAAA,IAAA,IAAA02K,EAAAlB,KAAAt7M,GAEA,OAAAi2F,IAwBAglH,EAAAsF,SACAhlJ,IAAA,SAAA70D,EAAA/E,GACAA,EAAA6S,MAAA,YAAAgqM,EAAA93M,EAAAtK,GAAA,KAAA6hN,EAAAv3M,EAAAtK,GAAA,kBACAsK,EAAA7N,EAAA,IAAA6N,EAAAjF,IAAA,KAAAiF,EAAAm5M,KAAA,IAAAn5M,EAAAo5M,KAAA,gCAEA7E,EAAAkF,KAAAz5M,EAAA1D,MAAArB,GACAA,EAAA6S,MAAA,gBAGAqqM,IAAA,SAAAn4M,EAAA/E,GACAA,EAAA6S,MAAA,aAAAgqM,EAAA93M,EAAAtK,GAAA,KAAA6hN,EAAAv3M,EAAAtK,GAAA,2BACA6+M,EAAAkF,KAAAz5M,EAAA1D,MAAArB,GACAA,EAAA6S,MAAA,MAGAsM,IAAA29L,EACAhqH,IAAA,SAAA/tF,EAAA/E,GACA,GAAAgkG,IAAA41G,YAAA/mM,KAAA,GAAA8mM,QAAAkF,WAAA,EACAvF,GAAAkF,KAAAz5M,EAAA1D,MAAA2iG,EACA,IAAA1P,GAAAt0F,EAAA45M,SAAAkD,EAAA/3M,EAAA/E,GACAs0F,GAAAqlH,KAAA31G,EAAA21G,KACArlH,EAAAslH,SAAA51G,EAAA41G,UAGAt5K,EAAA,SAAAv7B,EAAA/E,GACA,GAAAgkG,IAAA21G,QAAA9mM,KAAA,GAAA+mM,SAAA55M,EAAA45M,SAAAngN,OAAAsL,EAAAtK,EACA6+M,GAAAkF,KAAAz5M,EAAA1D,MAAA2iG,GACAhkG,EAAA25M,KAAA50M,EAAAtK,GAAAupG,EAAAnxF,KACA7S,EAAA6+M,YACA7+M,EAAA6S,MAAA,UAAAypM,EAAAv3M,EAAAtK,GAAA,cAIAw5F,KAAA,SAAAlvF,EAAA/E,GACAA,EAAA6S,MAAAlM,EAAA,SAAA5B,EAAAiN,KAAA,GAAA,UAGAqrM,GAAA,SAAAt4M,EAAA/E,GACAA,EAAA6S,MAAA,aAAAgqM,EAAA93M,EAAAtK,GAAA,KAAA6hN,EAAAv3M,EAAAtK,GAAA,eAGA8iN,GAAA,SAAAx4M,EAAA/E,GACAA,EAAA6S,MAAAlM,EAAA,IAAA21M,EAAAv3M,EAAAmO,MAAA,MAGAoqM,IAAAN,EAEAnqH,IAAAmqH,GAWA1D,EAAAkF,KAAA,SAAArsH,EAAAnyF,GAEA,IAAA,GADAkO,GACAhX,EAAA,EAAAuJ,EAAA0xF,EAAAx6F,OAAAT,EAAAuJ,EAAAvJ,KACAgX,EAAAorM,EAAAsF,QAAAzsH,EAAAj7F,GAAA+I,OACAiO,EAAAikF,EAAAj7F,GAAA8I,EAEA,OAAAA,IAGAs5M,EAAApiL,MAAA,SAAApgB,EAAA5D,EAAA3V,GAEA,MADAA,GAAAA,MACAy+M,EAAAllM,EAAA,MAAAvZ,EAAAuhN,kBAGAxF,EAAA7jM,SAEA6jM,EAAAzmG,SAAA,SAAA3/F,EAAA3V,GACA,OAAA2V,IAAA3V,EAAAkhN,WAAAlhN,EAAAo+M,cAAAp+M,EAAAm+M,aAAAn+M,EAAA+9M,UAAAljN,KAAA,OAGAkhN,EAAAh/L,QAAA,SAAApH,EAAA3V,GACAA,EAAAA,KACA,IAAAc,GAAAi7M,EAAAzmG,SAAA3/F,EAAA3V,GACA+2F,EAAAl4F,KAAAqZ,MAAApX,EAEA,IAAAi2F,EAAA,CACA,GAAAslH,GAAAtlH,EAAAslH,QACA,KAAA,GAAApjN,KAAAojN,SACAA,GAAApjN,GAAAwuF,QAEA,OAAAsP,GAIA,MADAA,GAAAl4F,KAAAkiN,SAAAliN,KAAA86B,MAAA96B,KAAAohN,KAAAtqM,EAAA3V,EAAAm+M,YAAAxoM,EAAA3V,GAAA2V,EAAA3V,GACAnB,KAAAqZ,MAAApX,GAAAi2F,IAEA,mBAAA15F,SAAAA,QAAA0+M,OAGA,kBAAAtjN,SAAAA,OAAA6F,KACA7F,OAAA,QAAAsjN,OAGAtjN,OAAA,OAAAuF,KAAA,SAAAR,GAAA,KAAA,IAAAxB,OAAA,6BAAAwB,MCvvBA/E,OAAA,4DAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0BAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICAAz+F,OAAA,6DAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8HAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uDAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,UAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,UAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,MAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICAAz+F,OAAA,6DAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,UAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,GAAA,IAAA,WAAAuuB,EAAA+oC,GAAAxxB,EAAA9lC,EAAA,SAAA8lC,EAAA9lC,EAAAuuB,GAAAA,EAAA7S,EAAA,iDAAA6S,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,UAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,GAAA,GAAA,WAAAuuB,EAAA+oC,GAAAxxB,EAAA9lC,EAAA,SAAA8lC,EAAA9lC,EAAAuuB,GAAAA,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,IAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA;WAAAoqB,EAAAvmB,OAAAgP,EAAA7S,EAAA,MAAA6S,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,UAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,IAAA,IAAA,WAAAuuB,EAAA+oC,GAAAxxB,EAAA9lC,EAAA,SAAA8lC,EAAA9lC,EAAAuuB,GAAAA,EAAA7S,EAAA,4BAAAoqB,EAAAvmB,OAAAgP,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,KAAAnf,KAAAupC,EAAAvmB,OAAAgP,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,IAEAz+F,OAAA,wCAAA,WCFA,OAEAipN,WAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,YAAA,EACAC,WAAA,EACAC,WAAA,EACAC,QAAA,EACAC,uBAAA,EACAC,oBAAA,EAGAC,QAAA,IACAC,SAAA,IACAC,MAAA,IACAC,UAAA,IACAC,aAAA,IACAC,cAAA,IAGAC,oBAAA,IACAC,iBAAA,IACAC,kBAAA,IACAC,mBAAA,IAEAC,cAAA,IACAC,WAAA,IACAC,WAAA,IACAC,oBAAA,IAEAC,MAAA,OAGAzqN,OAAA,6BAAA,2DAAA,4DAAA,4DAAA,cAAA,sBAAA,SAAA0qN,EAAAC,EAAAC,EAAA5H,EAAA6H,GCnCA,GAAAC,GACAC,EAGAC,EAAA,WACAF,GACAA,EAAAlV,MAAA,SAIAqV,EAAA,SAAAC,EAAA36E,EAAApgI,EAAA88E,GACA69H,IACAA,EAAAxgL,EAAAogL,OACApgL,EAAA,kBAAA5S,OAAAozL,IAIAxgL,EAAA,kBAAAptB,KAAAqzH,GACAjmG,EAAA,+BAAAr1B,QAAAyiB,OAAAvnB,GACAm6B,EAAA,iCAAAr1B,QAAAyiB,OAAAu1D,GACAi+H,EACA5gL,EAAA,0BAAAr3B,OAGAq3B,EAAA,0BAAA50B,OAGAo1M,EAAAj+L,GAAA,aAEAq+L,EACA5gL,EAAA,mBAAAsrK,OACAnC,UAAA,EACA3B,UAAA,EACA7+L,MAAA,IAGAq3B,EAAA,mBAAAsrK,OACAnC,SAAA,SACA3B,UAAA,EACA7+L,MAAA,KA4MA,OArMAk4M,UACAC,UAAA,SAAA7kN,EAAA+B,GACA,GAAAkU,GAAAwmM,EAAAqI,WACA,QAAA9kN,GACA,IAAAskN,GAAAL,oBAEA,WADAW,SAAAG,qBAAAtI,EAAAuI,iBAAAjjN,EAEA,KAAAuiN,GAAAR,cACA7tM,EAAAwmM,EAAAwI,WACA,MACA,KAAAX,GAAAP,WACA9tM,EAAAwmM,EAAAuI,gBACA,MACA,KAAAV,GAAAN,WACA/tM,EAAAwmM,EAAAyI,QACA,MACA,SACAjvM,EAAAwmM,EAAAqI,YACA19K,QAAA+9K,QAGAP,QAAAQ,iBAAA3I,EAAA4I,cAAApvM,IAEA8uM,qBAAA,SAAA/6E,EAAAh6D,GACA,GAAApmE,GAAAm6B,EAAA,eAAAptB,KAAAq5D,GAAA,iBACA0W,EAAA29H,GACA39H,UAEAyjH,SAAA,EACAxzL,KAAA8lM,EAAA6I,MAKAZ,IAAA,EAAA16E,EAAApgI,EAAA88E,IAEA0+H,iBAAA,SAAAp7E,EAAAz6D,GACA,GAAA3lE,GAAAm6B,EAAA,WAAAptB,KAAA44D,GACAmX,EAAA29H,GACA39H,UAEAyjH,SAAA,EACAxzL,KAAA8lM,EAAA6I,MAKAZ,IAAA,EAAA16E,EAAApgI,EAAA88E,IAIA6+H,cAAA,SAAAv7E,EAAAhhI,GACA,GAAAY,GAAAm6B,EAAA/6B,GACA09E,EAAA29H,GACA39H,UAEAyjH,SAAA,EACAxzL,KAAA8lM,EAAA6I,MAKAZ,IAAA,EAAA16E,EAAApgI,EAAA88E,IAEA8+H,mBAAA,SAAAx7E,EAAApgI,GACA,GAAA88E,GAAA29H,GACA39H,UAEAyjH,SAAA,EACAxzL,KAAA8lM,EAAA6I,MAKAZ,IAAA,EAAA16E,EAAApgI,EAAA88E,IAEA++H,kBAAA,SAAAz7E,EAAAz6D,EAAAmX,EAAAjpF,GAEA,GAAAmM,GAAAm6B,EAAA,WAAAptB,KAAA44D,GACAm2I,EAAArB,GAAA39H,QAAAA,GACAg+H,IAAA,EAAA16E,EAAApgI,EAAA87M,EAEA,KAAA,GAAA/qN,GAAA,EAAAA,EAAA8C,EAAArC,OAAAT,IACA8C,EAAA9C,IACAopC,EAAA,oBAAA2iD,EAAA/rF,GAAAm+B,QAAA,IAAA1yB,GAAA,QAAA3I,EAAA9C,KASAgrN,gBAAA,SAAA37E,EAAAz6D,EAAAq2I,EAAAC,EAAAC,EAAAC,GAGA,GAAAr/H,KAEAyjH,SAAA,EACAxzL,KAAAkvM,EACA/sL,SAAA,eAGAqxK,SAAA,EACAxzL,KAAAivM,EACA9sL,SAAA,aAAA,gBAIAr7B,WAAAsoN,EAAAD,GACAlB,QAAAa,kBAAAz7E,EAAAz6D,EAAAmX,EAAAjpF,WAIAuoN,mBAAA,SAAAh8E,EAAAz6D,EAAAq2I,EAAAC,EAAAI,EAAAH,EAAAC,EAAAG,GACA,GAAAx/H,KAGAyjH,SAAA,EACAxzL,KAAAkvM,EACA/sL,SAAA,eAGAqxK,SAAA,EACAxzL,KAAAivM,EACA9sL,SAAA,aAAA,gBAGAqxK,SAAA,EACAxzL,KAAAsvM,EACAntL,SAAA,mBAAA,gBAIAr7B,WAAAsoN,EAAAD,EAAAI,GACAtB,QAAAa,kBAAAz7E,EAAAz6D,EAAAmX,EAAAjpF,WAGA0oN,kBAAA,SAAAn8E,EAAAz6D,EAAAw2I,GACA,GAAAhkN,IACAwtE,QAAAA,EAEAi1I,GAAAx6E,CAEA,IAAAtjD,GAAA29H,GACA39H,UAGA/vE,KAAA8lM,EAAA2J,YACAttL,SAAA,gBAAA,kBAKA4rL,IAAA,EAAA16E,EAAAo6E,EAAAriN,GAAAgkN,EAAAr/H,EAAA,IAEAq/H,GACAhiL,EAAA,kCAAA39B,GAAA,QAAA2/M,IAGAM,yBAAA,SAAAr8E,GACAjmG,EAAA,kBAAAptB,KAAAqzH,IAEAs8E,eAAA,SAAAh2M,EAAAtQ,EAAA+B,EAAAwkN,GAEA,GAAAtwM,GAAA,EACA,QAAAjW,GACA,IAAAskN,GAAAT,mBACA5tM,EAAAwmM,EAAA+J,UAAA,IAAAzkN,CACA,MACA,KAAAuiN,GAAAZ,oBACAztM,EAAAwmM,EAAAgK,gBAAA,IAAA1kN,CACA,MACA,KAAAuiN,GAAAX,iBACA1tM,EAAAwmM,EAAAiK,aAAA,IAAA3kN,CACA,MACA,KAAAuiN,GAAAV,kBACA3tM,EAAAwmM,EAAAkK,wBAAA,IAAA5kN,EAMAgiC,EAAA,iCAAA3hB,KAAA,gBAAA9R,GAAAxN,IAAA,QAAAwN,EAAA,KACAyzB,EAAA,qCAAAptB,KAAAV,IAEA2wM,WAAA,WACAnC,KAEAh/L,MAAA,WACA8+L,IACAA,EAAAl7M,SACAk7M,EAAA,QAKAK,UCnPAnrN,OAAA,6DAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,yFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4DAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sDAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4FAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,qGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,wGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2CAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wLAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oGAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yUAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,qEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+JAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kEAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2HAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,2EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,8EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,8EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0EAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+DAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yVAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+FAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kXAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iJAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8HAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0DAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,uCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0DAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,uCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gJAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yJAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qJAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+FAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4IAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4HAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4IAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sLAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uLAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2JAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gFAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oEAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,MAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICAAz+F,OAAA,oEAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,IAAA,WAAAuuB,EAAA+oC,GAAAxxB,EAAA9lC,EAAA,SAAA8lC,EAAA9lC,EAAAuuB,GAAAA,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sDAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,WAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,WAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,MAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,MAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,uDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8DAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4DAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,KAAAupC,EAAAvmB,OAAAgP,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,OAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,EAAA,MAAAuuB,EAAA7S,EAAA,wBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,KAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,2BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mDAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,+BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,IAAAgyB,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICMA,SAAA14F,GAmCA,QAAArC,GAAAo5C,EAAA+4C,GAEA,IADA,GAAA30F,GAAA47C,EAAAn7C,OACAT,KAAA,GAAA47C,EAAA57C,KAAA20F,EAAA,MAAA30F,EACA,QAAA,EAIA,QAAAksN,GAAAC,EAAAC,GACA,GAAAD,EAAA1rN,QAAA2rN,EAAA3rN,OAAA,OAAA,CACA,KAAA,GAAAT,GAAA,EAAAA,EAAAmsN,EAAA1rN,OAAAT,IACA,GAAAmsN,EAAAnsN,KAAAosN,EAAApsN,GAAA,OAAA,CAEA,QAAA,EASA,QAAAqsN,GAAAtgN,GACA,IAAA4vC,IAAA2wK,GAAAA,EAAA3wK,GAAA5vC,EAAAwgN,EAAA5wK,IAGA,QAAA6wK,GAAAzgN,GAEA,MAAAA,GAAAmoB,SAAAnoB,EAAAkoB,UAAAloB,EAAA4G,OAAA5G,EAAA5E,KAAA,EAIA,QAAAorB,GAAAxmB,GAEA,GAAA5E,GAAA4X,EAAA48B,EAAA37C,EAAAysN,EAAAnK,CASA,IARAn7M,EAAAqlN,EAAAzgN,IAEA,GAAAvJ,EAAAkqN,EAAAvlN,IACAulN,EAAAjrN,KAAA0F,GAIA,IAAAA,GAAA,KAAAA,IAAAA,EAAA,IACAA,IAAAmlN,GAAA,CACAA,EAAAnlN,IAAA,CAEA,KAAAw0C,IAAAgxK,GAAAA,EAAAhxK,IAAAx0C,IAAAylN,EAAAjxK,IAAA,OAOA,IAJA0wK,EAAAtgN,GAIA6gN,EAAA5mN,OAAA5G,KAAA8F,KAAA6G,IAGA5E,IAAA0lN,GAKA,IAHAvK,EAAAwK,IAGA9sN,EAAA,EAAAA,EAAA6sN,EAAA1lN,GAAA1G,OAAAT,IAIA,GAHA+e,EAAA8tM,EAAA1lN,GAAAnH,GAGA+e,EAAAujM,OAAAA,GAAA,OAAAvjM,EAAAujM,MAAA,CAEAmK,EAAA1tM,EAAAguM,KAAAtsN,OAAA,CACA,KAAAk7C,IAAA2wK,KACAA,EAAA3wK,IAAAn5C,EAAAuc,EAAAguM,MAAApxK,IAAA,GACA2wK,EAAA3wK,KAAA,GAAAn5C,EAAAuc,EAAAguM,MAAApxK,MAAA8wK,GAAA,IAEA,GAAA1tM,EAAAguM,KAAAtsN,QAAA6rN,EAAA,KAAAA,EAAA,KAAAA,EAAA,KAAAA,EAAA,OAAAG,IACA,IAAA1tM,EAAA4kB,OAAA53B,EAAAgT,KACAhT,EAAA0nB,eAAA1nB,EAAA0nB,iBACA1nB,EAAAspB,aAAA,EACAtpB,EAAA2nB,iBAAA3nB,EAAA2nB,kBACA3nB,EAAAihN,eAAAjhN,EAAAihN,cAAA,KAQA,QAAAC,GAAAlhN,GACA,GAAA4vC,GAAAx0C,EAAAqlN,EAAAzgN,GACA/L,EAAAwC,EAAAkqN,EAAAvlN,EAQA,IALAnH,GAAA,GACA0sN,EAAAzrN,OAAAjB,EAAA,GAGA,IAAAmH,GAAA,KAAAA,IAAAA,EAAA,IACAA,IAAAmlN,GAAA,CACAA,EAAAnlN,IAAA,CACA,KAAAw0C,IAAAgxK,GAAAA,EAAAhxK,IAAAx0C,IAAAylN,EAAAjxK,IAAA,IAIA,QAAAuxK,KACA,IAAAvxK,IAAA2wK,GAAAA,EAAA3wK,IAAA,CACA,KAAAA,IAAAgxK,GAAAC,EAAAjxK,IAAA,EAIA,QAAAixK,GAAAzlN,EAAAm7M,EAAA3+K,GACA,GAAAnlB,GAAAuuM,CACAvuM,GAAA2uM,EAAAhmN,OACA7C,KAAAq/B,IACAA,EAAA2+K,EACAA,EAAA,MAIA,KAAA,GAAAtiN,GAAA,EAAAA,EAAAwe,EAAA/d,OAAAT,IAEA+sN,KACA5lN,EAAAqX,EAAAxe,GAAAK,MAAA,KACA8G,EAAA1G,OAAA,IACAssN,EAAAK,EAAAjmN,GACAA,GAAAA,EAAAA,EAAA1G,OAAA,KAGA0G,EAAAA,EAAA,GACAA,EAAAwU,EAAAxU,GAEAA,IAAA0lN,KAAAA,EAAA1lN,OACA0lN,EAAA1lN,GAAA1F,MAAA4rN,SAAA7uM,EAAAxe,GAAAsiN,MAAAA,EAAA3+K,OAAAA,EAAAx8B,IAAAqX,EAAAxe,GAAA+sN,KAAAA,IAKA,QAAAO,GAAAnmN,EAAAm7M,GACA,GAAAiL,GAAA/uM,EAEAxe,EAAAC,EAAAhB,EADA8tN,IAKA,KAFAQ,EAAAJ,EAAAhmN,GAEAlH,EAAA,EAAAA,EAAAstN,EAAA9sN,OAAAR,IAAA,CAaA,GAZAue,EAAA+uM,EAAAttN,GAAAI,MAAA,KAEAme,EAAA/d,OAAA,IACAssN,EAAAK,EAAA5uM,IAGArX,EAAAqX,EAAAA,EAAA/d,OAAA,GACA0G,EAAAwU,EAAAxU,OAEA7C,KAAAg+M,IACAA,EAAAwK,MAEAD,EAAA1lN,GACA,MAEA,KAAAnH,EAAA,EAAAA,EAAA6sN,EAAA1lN,GAAA1G,OAAAT,IACAf,EAAA4tN,EAAA1lN,GAAAnH,GAEAf,EAAAqjN,QAAAA,GAAA4J,EAAAjtN,EAAA8tN,KAAAA,KACAF,EAAA1lN,GAAAnH,QAQA,QAAAwtN,GAAAt5L,GAIA,MAHA,gBAAA,KACAA,EAAAvY,EAAAuY,KAEA,GAAA1xB,EAAAkqN,EAAAx4L,GAGA,QAAAu5L,KACA,MAAAf,GAAA3rN,MAAA,GAGA,QAAAiF,GAAA+F,GACA,GAAAulE,IAAAvlE,EAAA+L,QAAA/L,EAAA2hN,YAAAp8I,OAEA,SAAA,SAAAA,GAAA,UAAAA,GAAA,YAAAA,GAOA,QAAAq8I,GAAArL,GAAAsL,EAAAtL,GAAA,MACA,QAAAwK,KAAA,MAAAc,IAAA,MAGA,QAAAC,GAAAvL,GACA,GAAAn7M,GAAArE,EAAA9C,CAEA,KAAAmH,IAAA0lN,GAEA,IADA/pN,EAAA+pN,EAAA1lN,GACAnH,EAAA,EAAAA,EAAA8C,EAAArC,QACAqC,EAAA9C,GAAAsiN,QAAAA,EAAAx/M,EAAA7B,OAAAjB,EAAA,GACAA,IAMA,QAAAmtN,GAAAhmN,GACA,GAAAqX,EAMA,OALArX,GAAAA,EAAAtG,QAAA,MAAA,IACA2d,EAAArX,EAAA9G,MAAA,KACA,IAAAme,EAAAA,EAAA/d,OAAA,KACA+d,EAAAA,EAAA/d,OAAA,IAAA,KAEA+d,EAIA,QAAA4uM,GAAAjmN,GAEA,IAAA,GADA4lN,GAAA5lN,EAAApG,MAAA,EAAAoG,EAAA1G,OAAA,GACAqtN,EAAA,EAAAA,EAAAf,EAAAtsN,OAAAqtN,IACAf,EAAAe,GAAAnB,EAAAI,EAAAe,GACA,OAAAf,GAIA,QAAA5rG,GAAA76G,EAAAyF,EAAA43B,GACAr9B,EAAA2f,iBACA3f,EAAA2f,iBAAAla,EAAA43B,GAAA,GACAr9B,EAAA4f,aACA5f,EAAA4f,YAAA,KAAAna,EAAA,WAAA43B,EAAA1+B,OAAA8G,SAcA,QAAAs9B,KACA,GAAAsS,GAAA92C,EAAAsC,GAEA,OADAtC,GAAAsC,IAAA4mN,EACApyK,EAxRA,GAAAA,GACAkxK,KACAP,GAAA0B,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,GACAP,EAAA,MAEAjB,GACAyB,IAAA,GAAA31M,MAAA,GACA41M,IAAA,GAAA9pN,IAAA,GAAAusB,OAAA,GACAw9L,IAAA,GAAAC,KAAA,GAAAC,QAAA,GACAC,IAAA,GAAAC,QAAA,IAGAC,GACAC,UAAA,EAAArV,IAAA,EAAArsJ,MAAA,GACAkoJ,MAAA,GAAAyZ,OAAA,GACAzJ,IAAA,GAAArmJ,OAAA,GAAA+vJ,MAAA,GACA70L,KAAA,GAAA80L,GAAA,GACAriI,MAAA,GAAAsiI,KAAA,GACAC,IAAA,GAAAhiK,OAAA,GACAiiK,KAAA,GAAAtmN,IAAA,GACAumN,OAAA,GAAAC,SAAA,GACAC,IAAA,IAAAC,IAAA,IAAA9sJ,IAAA,IACAu5B,IAAA,IAAAwzH,IAAA,IAAArJ,IAAA,IACAsJ,IAAA,IAAA1zH,IAAA,IACA2zH,IAAA,IAAAC,IAAA,IAAA7yH,KAAA,KAEAlhF,EAAA,SAAA0yB,GACA,MAAAA,GAAA19B,YAAAg+M,EAAAtgL,IAAAA,EAAA19B,cAAAopC,WAAA,GAAA1L,GAEAq+K,IAEA,KAAA/wK,EAAA,EAAAA,EAAA,GAAAA,IAAAgzK,EAAA,IAAAhzK,GAAA,IAAAA,CAkBA,IAAA4wK,IACAyB,GAAA,WACAC,GAAA,SACAC,GAAA,UACAC,GAAA,UAuKA,KAAAxyK,IAAAgxK,GAAAC,EAAAjxK,IAAA,CA+CAwlE,GAAAp8G,SAAA,UAAA,SAAAgH;kCAAAwmB,EAAAxmB,KACAo1G,EAAAp8G,SAAA,QAAAkoN,GAGA9rG,EAAAl8G,OAAA,QAAAioN,EAGA,IAAAa,GAAAlpN,EAAAsC,GAUAtC,GAAAsC,IAAAylN,EACA/nN,EAAAsC,IAAAwmN,SAAAA,EACA9oN,EAAAsC,IAAA2lN,SAAAA,EACAjoN,EAAAsC,IAAA0mN,YAAAA,EACAhpN,EAAAsC,IAAAnB,OAAAA,EACAnB,EAAAsC,IAAAqmN,UAAAA,EACA3oN,EAAAsC,IAAAsmN,mBAAAA,EACA5oN,EAAAsC,IAAAkiC,WAAAA,EACAxkC,EAAAsC,IAAA0hC,OAAAykL,EAEA,mBAAA1pN,UAAAA,OAAAF,QAAAkpN,IAEA1nN,MAEApG,OAAA,YAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAAsC,MAEAjC,OAEApG,OAAA,8BAAA,cAAA,YAAA,YAAA,SAAAgjN,EAAA36M,EAAAi6M,GCvTA,GAAAuO,OAIA,WA+EA,QAAAC,GAAAvqN,EAAA0+G,GACA,GAAApgH,EAEAA,GADAksN,EACA9qN,SAAA+qN,YAAA,iBAGA/qN,SAAA+qN,YAAA,QAuBA,IAAAC,GACAC,IAEA,KAAAD,IAAAE,GAAAC,EAAAD,EAAAF,KACAC,EAAAD,IAAAG,EAAAnsG,EAAAgsG,IAAAhsG,GAAAksG,GAAAF,GAGA,IAAAI,GAAAH,EAAA,QACAI,EAAAJ,EAAA,SACAK,EAAAL,EAAA,OACAM,EAAAN,EAAA,QACAO,EAAAP,EAAA,YAEAQ,EAAAX,EAAA,IACAM,EAAA,UAAA,KACAC,EAAA,SAAA,KACAC,EAAA,OAAA,KACAC,EAAA,QAAA,KACAC,EAAA,YAAA,KACAx0M,OAAA,KAEAujD,EAAA0wJ,EAAA,IAAA,GACAS,EAAAT,EAAA,KAAA,GACAU,EAAAV,EAAA,SACAW,EAAAX,EAAA,UAAAA,EAAA,QAAA1wJ,GAAAA,EAAAvlB,WAAA,IAAA,GACA62K,EAAAZ,EAAA,WAAAA,EAAA,SAAAS,GAAAA,EAAA12K,WAAA,IAAA,GAEA82K,EAAAb,EAAA,QACAc,EAAAd,EAAA,WAEAe,EAAAf,EAAA,OACAgB,EAAAhB,EAAA,OACAiB,EAAApsN,CAGAmrN,GAAA,QAAAA,EAAA,MAAAA,EAAA,SAIA,gBAAArsN,GAEAA,EAAAutN,aAAA7rN,EAAAwrN,EAAAC,EAAAG,EAAAd,EAAAE,EAAAD,EAAAE,EAAAK,EAAAC,GAEAf,GAAA,qBAAAlsN,GACA,GAAAksN,EAGAlsN,EAAAwtN,kBAAA9rN,EAAAwrN,EAAAC,EAAAG,EAAA3xJ,EAAAoxJ,EAAAP,EAAAC,EAAAC,EAAAC,EAAAC,GAEA,GAAAV,EAEAlsN,EAAAwtN,kBAAA9rN,EAAAwrN,EAAAC,EAAAG,EAAAd,EAAAE,EAAAD,EAAAE,EAAAK,EAAAC,GAEA,GAAAf,EACAlsN,EAAAwtN,kBAAA9rN,EAAAwrN,EAAAC,EAAAG,EAAA3xJ,EAAAoxJ,EAAAP,EAAAE,EAAAD,EAAAE,EAAAC,GAEA,GAAAV,EAEAlsN,EAAAwtN,kBAAA9rN,EAAAwrN,EAAAC,EAAAG,EAAA3xJ,EAAAoxJ,EAAAF,EAAAO,EAAAC,GAKArtN,EAAAwtN,kBAAA9rN,EAAAwrN,EAAAC,EAAAG,EAAAR,EAAAnxJ,EAAAoxJ,EAAAF,EAAAO,EAAAC,GAIArtN,EAAAytN,UAAA/rN,EAAAwrN,EAAAC,EAGA,KAAAf,IAAAE,GAAA,GAAAC,EAAAD,EAAAF,IACApsN,EAAAosN,IAAAC,EAAAD,GACA,UACApsN,GAAAosN,GACAsB,EAAA1tN,EAAAosN,GAAAlgM,UAAA,EAAA9tB,MAAAiuN,EAAAD,KAEA,MAAAjoI,IAUA,MAAAnkF,GAhMA,GAAAkB,GAAAK,KACA2qN,EAAA,SAAAlsN,GACA,IA4BA,MA3BAA,GAAAwtN,kBACA,SACA,GACA,EACAtsN,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GAgBA,MAAAlB,EAAA,eAAAA,EAAA,MAAA,IAAAA,EAAA,aAAAA,EAAA,YACAA,EAAA8nF,QACA9nF,EAAA0nF,OACA,EAEA,EAEA1nF,EAAAkoF,SACA,EAEA,IACA,EAGA,MAAAylI,GAAAzB,EAAA,IACA9qN,SAAA+qN,YAAA,kBAEAG,GACAnkI,KAAA,GACA3kF,IAAA,GACAsiB,SAAA,EACAgiE,SAAA,EACAI,UAAA,EACAR,QAAA,EACAO,SAAA,EACA3yC,QAAA,EACAs4K,OAAA,GAEA7lI,OAAA,EACAJ,SAAA,EACAC,YAAA,EAGAr3D,QAAA,EACAD,SAAA,EACAthB,MAAA,GAGAu9M,EAAAjjL,SAAAjqC,UAAA5D,KAAAwpC,KAAA7lC,OAAAC,UAAAC,gBAEAouN,EAAAtuN,OAAA6sB,gBAAA,SAAA3wB,EAAAC,EAAAoS,GACA,SAAAA,KACArS,EAAAC,GAAAoS,EAAA,OA4HAzM,GAAA+qN,+BAAAA,IAEAxwN,KAAA6F,QAGAusN,UACAC,gBAAA,WAGA,IAAAvyN,OAAAsyN,UAAAE,eAEAF,SAAAE,eAAAzuN,eAAA/D,OAEA,gBAAAsyN,UAAAE,eAAAxyN,QAEAsyN,SAAAtyN,MAAAsyN,SAAAE,eAAAxyN,QAGAyyN,gBAAA,WAYAH,SAAAI,aACA,KAAA1yN,OAAAsyN,UAEA,GAAAA,SAAAvuN,eAAA/D,MAAA,CAEA,GAAA8gG,GAAAwxH,SAAAtyN,KAEA,iBAAA8gG,KAEAwxH,SAAAI,WAAA1yN,MAlBA,SAAA2yN,GAEA,IAAAA,IAAAA,EAAApxN,OAAA,MAAA,EAEA,IAAAqrF,GAAA+lI,EAAAA,EAAApxN,OAAA,EACA,OAAA,eAAAG,KAAAkrF,GAAAA,EAEA,IAWAkU,MAGA8xH,cAAA,SAAAxwL,GAIA,GAFAp8B,KAAAusN,kBAEAnwL,GAAAA,EAAAsvK,SAGA,IAAA1xM,OAAAsyN,UAEAA,SAAAvuN,eAAA/D,OAEA,gBAAAsyN,UAAAtyN,OAEA,gBAAAoiC,GAAAsvK,SAAA1xM,QAEAsyN,SAAAtyN,MAAAoiC,EAAAsvK,SAAA1xM,MAIAgG,MAAAysN,mBAEAp/L,SAAA,SAAAza,EAAAnU,GAIA,IAAAA,EAAAqpN,eAMArpN,EAAA4xB,uBAMA,KAAA5xB,EAAA0xB,aAAA1xB,EAAA0xB,aAAA,CAMA,GAAAzE,GAAAjtB,EAAA+pN,YAAA/pN,EAAAmU,MACA,IAAA8Y,EAGA,IADA,GAAA7K,GAAA6K,EACA7K,GACA,CACA,GAAAzmB,GAAAymB,EAAA7c,QACA,IAAA,UAAA5J,GAAA,aAAAA,EAEA,MAGA,IAAAymB,EAAAxe,aACA,CACA,GAAAwqN,GAAAhsM,EAAAxe,aAAA,kBACA,IAAA,SAAAwqN,GAAA,oBAAAA,EAEA,OAIA,GAAAhsM,EAAAqrD,WAAArrD,EAAAqrD,UAAApnE,SAAA,kBAEA,MAGA+b,GAAAA,EAAAlX,WAiBA,GAAAixG,GAAA8vG,+BAAAjsN,EAAA0B,MACAimF,SAAA,EACAC,YAAA,EAEAr3D,QAAAvwB,EAAAuwB,QACAD,SAAAtwB,EAAAswB,SACAthB,MAAAhP,EAAAgP,MAEA84E,QAAA9nF,EAAA8nF,QACAI,SAAAloF,EAAAkoF,SACAR,OAAA1nF,EAAA0nF,OACAO,QAAAjoF,EAAAioF,QAGAE,KAAAnoF,EAAAmoF,KAAAnoF,EAAAmoF,KAAApmE,OAAAC,aAAAhiB,EAAAswB,UACA9sB,IAAAxD,EAAAwD,IAAAxD,EAAAwD,IAAAxD,EAAAuwB,SAIApc,GAAAk6M,cAAAlyG,KAEAwiG,MAAA,SAAAA,GAEAA,GAAA1S,MAAA,oBAEAzoM,EAAAwmN,SAAArL,IAEA72M,GAAA,SAAA+S,EAAA8jM,EAAAt+M,GAEAwa,GAAAiuB,QAAAjzB,MAAA,UAEAm2M,EAAA1sN,eAAAq/M,KAEAqN,EAAArN,OAEAqN,EAAArN,GAAA7gN,KAAA+c,GAEArX,EAAA0hC,OAAArqB,EAAA8jM,GACAn7M,EAAAqX,EAAA8jM,EAAA,WAEAl5K,EAAArkC,SAAAkK,MAAAivB,SAAA,YACAl6B,OAGAgI,IAAA,SAAAs2M,GAIA,GAFAA,GAAA1S,MAAA,eAEA+f,EAAA1sN,eAAAq/M,GAEA,IAAA3mK,IAAAg0K,GAAArN,GAEAn7M,EAAA0hC,OAAA8S,EAAA2mK,IAGA2P,MAEAC,kBAAApQ,EAAAlgL,SAEAuwL,kBAAArQ,EAAAlgL,SAAA,MAAAkgL,EAAAsQ,kBACAC,mBAAAvQ,EAAAlgL,SAAA,MAAAkgL,EAAAwQ,WAEAC,aAAAzQ,EAAA0Q,mBACAC,SAAA3Q,EAAA4Q,eACAC,gBAAA7Q,EAAA0Q,mBAAA,gBACAI,YAAA9Q,EAAA4Q,eAAA,gBAEAG,YAAA/Q,EAAAgR,kBACAC,YAAAjR,EAAAkR,kBAEAC,iBAAAnR,EAAAoR,iBAAA,MAAApR,EAAAqR,gBAEAC,gBAAAtR,EAAAuR,aAEAC,kBAAAxR,EAAAljB,IAEA20B,WAAAzR,EAAA0R,oBAGAC,uBAAA3R,EAAA4R,gBAAA,MAAA5R,EAAA6R,iBAEAC,sBAAA9R,EAAA+R,oBACAC,kBAAAhS,EAAAiS,gBAEAC,oBAAAlS,EAAAmS,eAEAC,0BAAApS,EAAAqS,yBACAC,0BAAAtS,EAAAuS,yBAGAC,uBAAAxS,EAAAyS,sBAEAC,4BAAA1S,EAAA2S,2BACAC,4BAAA5S,EAAA6S,2BAGAC,8BAAA9S,EAAA+S,gBAAA,MAAA/S,EAAAgT,kBAEAC,mCAAAjT,EAAAkT,kBAEAC,yBAAAnT,EAAAoT,2BAAA,MAAApT,EAAAqT,6BAEAzD,kBACAE,cACAM,kBAAA,IAEAC,kBAAA,IACAE,mBAAA,IAEAE,aAAA,OACAE,SAAA,QACAE,gBAAA,IACAC,YAAA,IAEAC,YAAA,IACAE,YAAA,IAEAE,iBAAA,IAEAG,gBAAA,IAEAE,kBAAA,IAEAC,WAAA,IAEAS,oBAAA,IAGAP,uBAAA,IAEAS,0BAAA,IACAE,0BAAA,IAGAE,uBAAA,IAEAE,4BAAA,IACAE,4BAAA,IAGAE,8BAAA,IAEAhB,sBAAA,IACAE,kBAAA,IAEAiB,mCAAA,IAEAE,yBAAA,IAGA,KAGAzD,SAAAE,iBACA,KAAAxyN,OAAAsyN,UAEAA,SAAAvuN,eAAA/D,OAEA,gBAAAsyN,UAAAtyN,QAEAsyN,SAAAE,eAAAxyN,MAAAsyN,SAAAtyN,MAaAsyN,UAAAG,kBAEA,MAAAhuN,GAEA8oC,QAAAjzB,MAAA7V,GAGA,MAAA6tN,YAGA1yN,OAAA,mDAAA,mEAAA,cAAA,YAAA,WAAA,aAAA,cAAA,SAAAs2N,EAAAtT,EAAAmI,EAAA7I,EAAAoQ,EAAA9qN,GChgBA,GAAA2uN,GAAA,SAAAC,EAAAC,GAEA,GAAA1nH,IAAA,EACA2nH,GAAA,EAEAC,EAAArsL,EAAA,kBAEAssL,EAAAD,EAAA92L,SAAA,uCAEA82L,GAAAl3L,YAAA,uCAEA,IAAAo3L,GAAAvsL,EAAA,oCAAA,EAQA,KANAusL,EAAAnpN,gBAAA,QACAmpN,EAAAnpN,gBAAA,aACAmpN,EAAAnpN,gBAAA,eAIAmpN,EAAA7qN,YACA6qN,EAAA7mN,YAAA6mN,EAAA7qN,WAGA,IAAA8qN,IAAA,EAEAC,EAAAzsL,EAAA,iBACAysL,GAAAtvN,KAAA,WAEA,GAAAuvN,GAAA1sL,EAAAlkC,KAEA4wN,GAAA/vM,SAAAwY,YAAA,qBACAu3L,EAAA,GAAAtpN,gBAAA,gBAEAupN,EAAAD,EAAAP,GAEAO,EAAA/vM,SAAA4Y,SAAA,qBAEAm3L,EAAA,GAAAh4M,aAAA,eAAA,QACA03M,GAAA,EAEAF,GAAAA,EAAA70N,QAAA60N,EAAA,KAAAQ,EAAA,KAEAF,GAAA,KAOA,KAAA,GAFAI,IAAA,EAEAh2N,EAAA,EAAAA,EAAA,EAAAA,IAGA61N,EAAAtvN,KAAA,WAEA,GAAAuvN,GAAA1sL,EAAAlkC,MAEA+wN,EAAAH,EAAA/vM,SAAA4Y,SAAA,mBACAu3L,EAAAJ,EAAA/vM,SAAA4Y,SAAA,qBACAw3L,EAAAL,EAAAruM,KAAA,eAEA2uM,EAAAH,GAAAC,EAAAC,EAAAL,EAAAruM,KAAA,WAEA,IAAAyuM,EAAA,OAAA,CAEAL,GAAAtvN,KAAA,WAEA,GAAA8vN,GAAAjtL,EAAAlkC,KACA,IAAAmxN,EAAA,KAAAP,EAAA,GAAA,OAAA,CAEA,IAAAQ,GAAAD,EAAA5uM,KAAA,eAEA8uM,EAAAF,EAAAtwM,SAAA4Y,SAAA,mBAEA63L,EAAAH,EAAAtwM,SAAA4Y,SAAA,qBAEA83L,EAAAF,GAAAC,EAAAF,EAAAD,EAAA5uM,KAAA,WAEA2uM,KAAAK,IAEA5oH,GAAA,EAEAynH,GAAAA,EAAA70N,SAAA60N,EAAA,KAAAQ,EAAA,IAAAR,EAAA,KAAAe,EAAA,MAEAL,GAAA,GAGAF,EAAA,GAAAh4M,aAAA,eAAA,QACAu4M,EAAA,GAAAv4M,aAAA,eAAA,QAEAu4M,EAAAtwM,SAAA4Y,SAAA,sBAAA03L,EAAAtwM,SAAAmY,SAAA,qBACA43L,EAAA/vM,SAAA4Y,SAAA,sBAAAm3L,EAAA/vM,SAAAmY,SAAA,yBAMA,KAAA2vE,GAAA2nH,KAEAC,EAAAv3L,SAAA,wCAEA03L,GAAAI,GACA,CACAN,EACAC,EAAA73M,aAAA,YAAA,UAEA63M,EAAA73M,aAAA,OAAA,SAEA63M,EAAA73M,aAAA,cAAA,OAEA,IAAA4pH,GAAA3iI,SAAAiG,eAAA4qN,EAAA9T,EAAA4U,+BAAA5U,EAAA6U,iCACAhB,GAAAtrN,YAAAq9H,GAIAiuF,EAAAjtN,MAAAmwB,WAAA,SACA88L,EAAAjtN,MAAAmwB,WAAA,YAKAk9L,EAAA,SAAAvyK,EAAA+xK,GAEA/xK,EAAAz9B,SAAAwY,YAAA,mBACAilB,EAAA/7B,KAAA,WAAA+7B,EAAAlyC,MAEA,IAAA2H,GAAAuqC,EAAAlyC,MAAAhK,cAAAyU,OAEAtD,GAAA,EACA81M,GAAA,EACAhqN,GAAA,CAEA0U,GAAAxW,QAAA,UAAA,IAAAgW,GAAA,GACAQ,EAAAxW,QAAA,SAAA,IAAA8rN,GAAA,GACAt1M,EAAAxW,QAAA,QAAA,IAAA8B,GAAA,EAEA,IAAAqyN,GAAA39M,EAAAs6C,YAAA,OAAAt6C,EAAAxY,OAAA,CAcA,IAZAwY,EAAAA,EAAApY,QAAA,SAAA,IACAoY,EAAAA,EAAApY,QAAA,QAAA,IACAoY,EAAAA,EAAApY,QAAA,OAAA,IACAoY,EAAAA,EAAApY,QAAA,MAAA,IACAoY,EAAAA,EAAApY,QAAA,MAAA,IACAoY,EAAAA,EAAA8C,OAEA66M,IAEA39M,GAAA,KAGAA,EAAAzS,MAAA,kBAAAyS,EAAAzS,MAAA,gBAAAyS,EAAAzS,MAAA,YAAAyS,EAAAzS,MAAA,aAAAyS,EAAAzS,MAAA,YAAAyS,EAAAzS,MAAA,WAAAyS,EAAAzS,MAAA,YAAAyS,EAAAzS,MAAA,SAAAyS,EAAAzS,MAAA,UACA,CACA,GAAAqwN,IAAAp+M,EAAA,WAAA,KAAA81M,EAAA,UAAA,KAAAhqN,EAAA,SAAA,IAAA0U,CACAuqC,GAAA/7B,KAAA,WAAAovM,GACAtB,GAAA/xK,EAAAlyC,IAAAulN,OAIArzK,GAAAz9B,SAAAmY,SAAA,mBAqLA,QACA44L,iBAlLA,WAEA,GAAArB,GAAArsL,EAAA,iBAEAqsL,GAAA1hN,QAEA0hN,EAAAj/L,OAAA4+L,GAAA2B,QAAAjV,EAAAj+M,GAAA,QAEA,KAAA3E,OAAAsyN,GAEAA,EAAAvuN,eAAA/D,OAEA,gBAAAsyN,GAAAtyN,OAEAu2N,EAAAj/L,OAAA4+L,GAAA2B,QAAAjV,EAAAlR,SAAA4gB,EAAAlyN,KAAAJ,KAAAmuN,SAAAmE,EAAAtyN,MAAA+yN,KAAAT,EAAAS,KAAA/yN,MAAAmgN,IAAAmS,EAAAE,eAAAxyN,QAGAu2N,GAAAj/L,OAAA4+L,GAAA2B,QAAAjV,EAAAj+M,GAAA,YAEAwxN,GAEA,IAAA2B,OAAA1yN,EAEA8kC,GAAA,kBAAA39B,GAAA,OACA,SAAA9H,GAEAylC,EAAAlkC,KACA8xN,OAAA1yN,GACA+wN,MAGAjsL,EAAA,kBAAA39B,GAAA,QACA,SAAA9H,GAEA,GAAAmyN,GAAA1sL,EAAAlkC,KACAmwN,GAAAS,GAAA,IAGA,IAAAmB,GAAAvwN,EAAAkiC,KAAAliC,EAAAoyF,SAAAu8H,EAAA,KAAAnwN,KAEAkkC,GAAA,kBAAA39B,GAAA,QAAA,WACA,GAAAqqN,GAAA1sL,EAAAlkC,MACAoM,EAAAwkN,EAAAxkN,KACAA,KAAA0lN,GAEAC,EAAAnB,GAAA,GAEAkB,EAAA1lN,IA6CA83B,EAAA,aAAA39B,GAAA,QAAA,WAEAqqN,MAAA1sL,EAAAlkC,KACA,IAAArB,GAAAiyN,MAAAruM,KAAA,WACA,IAAA5jB,EACA,CACAulC,EAAA,SAAAvlC,GAGAyN,IAAAkgN,EAAAE,eAAA7tN,QAKAulC,GAAA,uBAAA7iC,KAAA,WAEA,GAAA8vN,GAAAjtL,EAAAlkC,MACArB,EAAAwyN,EAAA5uM,KAAA,WACA,IAAA5jB,EACA,CACAulC,EAAA,SAAAvlC,GAGAyN,IAAAkgN,EAAAE,eAAA7tN,MAKAwxN,QA2DA6B,SAvDA,WAEA,GAAAC,IAAA,EACAC,GAAA,EACA54M,IA+BA,IA7BA62M,IACAjsL,EAAA,kBAAA7iC,KAAA,WAEA,GAAAuvN,GAAA1sL,EAAAlkC,MAEA8uB,EAAA8hM,EAAAruM,KAAA,eACA5jB,EAAAiyN,EAAAruM,KAAA,MAEAnW,EAAAwkN,EAAAruM,KAAA,WAUA,KAPAquM,EAAA/vM,SAAA4Y,SAAA,oBAAAm3L,EAAA/vM,SAAA4Y,SAAA,wBAGArtB,EAAA0iB,EACAojM,GAAA,IAGA9lN,EAAA7Q,OAAA,OAAA,CAEA6Q,GAAAA,EAAAhK,cAEA0sB,IAAA1iB,IAAA6lN,GAAA,GAEA7lN,IAAAkgN,EAAAE,eAAA7tN,KAEA2a,EAAA3a,GAAAyN,KAGA6lN,GAAAC,EACA,CAGA,GAAAnoN,GAAA,EACAkoN,KAEAloN,EAAA,MAAA6yM,EAAAuV,qBAAA,QAEAD,IACAnoN,GAAA,MAAA6yM,EAAAwV,4BAAA,QAEArN,EAAAY,mBAAA,aAAA/I,EAAAyV,wBAAAtoN,GAGA,MAAAuP,OASA1f,OAAA,0CAAA,iBAAA,4DAAA,kCAAA,cAAA,YAAA,WAAA,cAAA,SAAA04N,EAAAC,EAAAC,EAAA5V,EAAAmI,EAAA7I,EAAAoQ,GCxVA,GAAAmG,IACAhwH,SAAA,IACAyW,cAAA,EACA/T,gBAAA,OACA8U,OAAA,OACA/O,UAAA,GACAiO,eAAA,IACAC,eAAA,KAGAs5G,EAAA,SAAAC,GACA,GAAAC,GAAA,iBAAAD,EACAE,EAAA3uL,EAAA,gBACA4uL,GAAAD,EAAAF,EACA,IAAAI,GAAAhzN,OAAAsyB,iBAAAwgM,EAAA,GAaA,SAXApsN,SAAA,oCACAw/F,cACA+sH,gBAAAJ,EAAA,GAAAG,EAAAC,gBACAxnK,MAAAonK,EAAA,GAAAG,EAAAvnK,SAGA/kD,SAAA,IACAw/F,cACA+sH,gBAAAJ,EAAA,GAAAG,EAAAvnK,MACAA,MAAAonK,EAAA,GAAAG,EAAAC,oBAIAF,EAAA,SAAAD,EAAAI,GACA,GAAAC,GAAAL,EAAAtwM,KAAA,aACAswM,GAAAx5L,YAAA65L,GACAL,EAAA75L,SAAAi6L,GACAJ,EAAAtwM,KAAA,aAAA0wM,IAGAE,EAAA,SAAAx6H,EAAAy6H,GAGA,GAFAz6H,EAAA48C,eAAA69E,GAEAA,EAAAT,MAAA,CAEAzuL,EAAA,QAAA3hB,KAAA,aAAA6wM,EAAAT,MAEA,IAAAlzG,GAAAizG,EAAAU,EAAAT,MACAh6H,GAAAu9C,cAAAz2B,GACAv7E,EAAA,iBAAAjhC,IAAAw8G,EAAA,GAAAxZ,gBAIAotH,EAAA,SAAAC,EAAAlnN,EAAAo2H,EAAA+wF,GAEAD,EAAA/wM,KAAA,gBAAAnW,EAAA,IACAknN,EAAA/wM,KAAA,iBAAAnW,EAAA,IAEAknN,EAAA/wM,KAAA,iBAAAigH,EAAA,IACA8wF,EAAA/wM,KAAA,kBAAAigH,EAAA,IAEA8wF,EAAA/wM,KAAA,QAAAgxM,EAAA,IAAA/wF,GACA8wF,EAAA/wM,KAAA,aAAAgxM,EAAA,IAAA/wF,GA4SA,QACAgxF,WA1SA,SAAA76H,GACAz0D,EAAA,kBAAA5S,OAAAihM,GAAAnpB,gBAAAkpB,EAAAlpB,gBAAAyoB,QAAAjV,EAAA6W,QAAA1O,EAAArZ,SAAA4gB,KAEAuG,aAAA3uL,EAAA,iBACAA,EAAA,iBAAA39B,GAAA,QAAA,WACA,GAAA0sN,GAAA/uL,EAAAlkC,MAAAuiB,KAAA,aACAuwM,GAAAD,aAAAI,IAGA,IAAAS,GAAAxvL,EAAA,qBACAwvL,GAAAntN,GAAA,SACA,WACA,GAAA6F,GAAAsnN,EAAAtnN,KAEAinN,GAAAK,EAAAtnN,EAAAA,EAAA,KAAAwwM,EAAA+W,eAIA,IAAAC,GAAA1vL,EAAA,0BACA0vL,GAAArtN,GAAA,SACA,WACA,GAAA6F,GAAAwnN,EAAAxnN,MAEAynN,EAAAznL,OAAAwnL,EAAArxM,KAAA,QAEAuxM,EAAA1nN,GAAAynN,EAAAjX,EAAAmX,2BAAA3nN,EAAA,IAEAinN,GAAAO,EAAAxnN,EAAA0nN,EAAAlX,EAAAoX,oBAKA,IAAAC,GAAA/vL,EAAA,mBACA+vL,GAAA1tN,GAAA,SAAA,WACA,GAAAk8F,GAAAwxH,EAAA7nN,KAEAymN,cAAA5vN,KAAAw/F,SAAAA,EAAA,IAAA,OAEA4wH,EAAAY,EAAAxxH,EAAAA,EAAA,IAAAm6G,EAAAsX,iBAGA,IAAAC,GAAAjwL,EAAA,wBACAiwL,GAAAC,OAAA,WACA,GAAAl7G,GAAA9sE,OAAA+nL,EAAAv2M,KAAA,mBAAAxR,MACA,IAAA,IAAA8sG,EACA25G,aAAA5vN,KAAA8/F,WAAA,SACA,CACA,GAAAib,GAAAs0G,EAAAv0G,MAAA7E,EAAA,GAAAnW,UACA8vH,cAAA5vN,KAAA8/F,WAAAib,OAKA95E,EAAA,kBAAA39B,GAAA,QAAA,WACA29B,EAAA,iBAAA3hB,KAAA,gBAAA,SACA2hB,EAAA,aAAA3hB,KAAA,gBAAA,UAEA2hB,EAAA,kBAAA39B,GAAA,QAAA,WACA29B,EAAA,aAAA3hB,KAAA,gBAAA,SACA2hB,EAAA,iBAAA3hB,KAAA,gBAAA,UAGA2hB,EAAA,oBAAA39B,GAAA,gBAAA,WAGAjH,WAAA,WACA4kC,EAAA,kBAAAr1B,SACA,OAGAq1B,EAAA,oBAAA39B,GAAA,gBAAA,WAEA29B,EAAA,kBAAAnU,QAAA,SACAyiM,EAAAZ,mBAEAtyN,WAAA,WAAA4kC,EAAA,uBAAA,GAAAzf,SAAA,KAEAy3L,EAAA33M,IAAA,SAAA,SAAA6uN,GACAA,EAAAA,GAAAX,CACA,KAAAz4N,OAAAy4N,IAEAA,EAAA10N,eAAA/D,OAAAo5N,EAAAr1N,eAAA/D,WAAA,KAAAo5N,EAAAp5N,QAEAo5N,EAAAp5N,MAAAy4N,EAAAz4N,MAIAi6N,GAAA7nN,IAAAgnN,EAAA3wH,UACA4wH,EAAAY,EAAAb,EAAA3wH,SAAA2wH,EAAA3wH,SAAA,IAAAm6G,EAAAsX,eAEA,IAAAG,KACA,IAAAF,EAAA,GAAA38G,mBAEAtzE,EAAA7iC,KAAAixN,EAAAv0G,MAAA,SAAAzgH,EAAAolG,GACAplG,GACA,IAAAg3N,GAAA5xH,EAAA6xH,WACA,IAAA7xH,EAAA7mE,IAAA,CACA,GAAA24L,GAAA,uBAAAl3N,EAAA,4CAAAolG,EAAA7mE,IAAA,KACA,IAAAw4L,EAAA92N,QAAAmlG,EAAA7mE,KAAA,EAAA,CACAqI,EAAA,QAAA5S,OAAAkjM,EACAH,GAAA93N,KAAAmmG,EAAA7mE,MAIA,GAAA44L,GAAArB,EAAAl6G,gBAAA57G,EAAA,WAAA,GACAo3N,EAAA,aAAAD,EAAA,WAAAn3N,EAAA,iBAAAg3N,EAAA,YAAAA,EAAA,KAAAA,EAAA,WACAH,GAAA7iM,OAAAojM,GACAD,GAEA5B,aAAA5vN,KACA8/F,WAAAL,EAAAK,eAOAqwH,EAAAloH,UAAAunH,EAAAvnH,UAEAwoH,EAAAtnN,IAAAgnN,EAAAloH,WACAmoH,EAAAK,EAAAN,EAAAloH,UAAAkoH,EAAAloH,UAAA,KAAA0xG,EAAA+W,aAEA,IAAAE,GAAAznL,OAAAwnL,EAAArxM,KAAA,QAEA42F,EAAAi6G,EAAAj6G,cACAA,IAAA06G,IAAA16G,EAAA06G,EAEA,IAAAC,GAAA36G,GAAA06G,EAAAjX,EAAAmX,2BAAA56G,EAAA,IACAy6G,GAAAxnN,IAAA+sG,GACAk6G,EAAAO,EAAAz6G,EAAA26G,EAAAlX,EAAAoX,mBAEA,UAAAZ,EAAAjuH,gBACAjhE,EAAA,wBAAAlqC,KAAA,WAAA,GAEA,UAAAo5N,EAAAjuH,gBACAjhE,EAAA,wBAAAlqC,KAAA,WAAA,GAGAkqC,EAAA,gCAAAlqC,KAAA,WAAA,GAGA,cAAAo5N,EAAAn5G,OACA/1E,EAAA,4BAAAlqC,KAAA,WAAA,GAEA,qBAAAo5N,EAAAn5G,OACA/1E,EAAA,mCAAAlqC,KAAA,WAAA,GAGAkqC,EAAA,gCAAAlqC,KAAA,WAAA,GAGA,IAAAo5N,EAAAp5G,eAEA91E,EAAA,kCAAAlqC,KAAA,WAAA,GAEA,IAAAo5N,EAAAp5G,eAEA91E,EAAA,kCAAAlqC,KAAA,WAAA,GAEA,IAAAo5N,EAAAp5G,eAEA91E,EAAA,kCAAAlqC,KAAA,WAAA,GAEA,IAAAo5N,EAAAp5G,eAEA91E,EAAA,kCAAAlqC,KAAA,WAAA,GAIAkqC,EAAA,qCAAAlqC,KAAA,WAAA,GAGAo5N,EAAAT,OACAG,EAAAD,aAAAO,EAAAT,OAGAE,aAAA5vN,KAAAw/F,SAAA2wH,EAAA3wH,SAAA,IAAA,UAIA,IAAAkyH,GAAA,WAEA,GAAAd,GAAAznL,OAAAwnL,EAAArxM,KAAA,QACA42F,EAAA/sE,OAAAwnL,EAAAxnN,MACA+sG,IAAA06G,IAAA16G,EAAA,MAEA,IAAAi6G,IACA3wH,SAAAr2D,OAAA6nL,EAAA7nN,OACA8sG,cAAA9sE,OAAA+nL,EAAA/nN,OACA+4F,gBAAA,OACA+F,UAAA9+D,OAAAsnL,EAAAtnN,OACA+sG,eAAAA,EACAc,OAAA,OAGA/1E,GAAA,4BAAAlqC,KAAA,WACAo5N,EAAAn5G,OAAA,aAEA/1E,EAAA,mCAAAlqC,KAAA,aACAo5N,EAAAn5G,OAAA,qBAGA/1E,EAAA,wBAAAlqC,KAAA,WACAo5N,EAAAjuH,gBAAA,SAEAjhE,EAAA,wBAAAlqC,KAAA,aACAo5N,EAAAjuH,gBAAA,UAGAjhE,EAAA,kCAAAlqC,KAAA,WACAo5N,EAAAp5G,eAAA,EACA91E,EAAA,kCAAAlqC,KAAA,WACAo5N,EAAAp5G,eAAA,EACA91E,EAAA,kCAAAlqC,KAAA,WACAo5N,EAAAp5G,eAAA,EACA91E,EAAA,kCAAAlqC,KAAA,WACAo5N,EAAAp5G,eAAA,EAEAo5G,EAAAp5G,gBAAA,EAGAo5G,EAAAT,MAAAE,aAAAtwM,KAAA,cACAo2E,GACAw6H,EAAAx6H,EAAAy6H,EAIA,IAAA95M,GAAAk5M,EAAAR,UAEA9V,GAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,KAGA,KAAApiC,OAAAo5N,GAEAA,EAAAr1N,eAAA/D,QAEAoiC,EAAApiC,MAAAo5N,EAAAp5N,MAIAoiC,GAAAsvK,SAAApyL,EAaA4iM,EAAAC,IAAA,SAAA//K,GAEA98B,WAAA,WAEAgtN,EAAAM,cAAAxwL,IACA,OAIAkwL,GAAA/lN,GAAA+lN,EAAA+B,WAAA,WAAA,WAEAnS,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,KAGA,IAAAw4L,GAAA,gBAAAx4L,EAAAu2L,KACAv2L,GAAAu2L,MAAAiC,EAAA,eAAA,cAGA1Y,EAAAC,IAAA,SAAA//K,GAEAu8D,GAAAw6H,EAAAx6H,EAAAv8D,OAIAkwL,EAAA/lN,GAAA+lN,EAAAW,kBAAA,WAAA,WACA0H,IACAzwL,EAAA,oBAAAsrK,MAAA,UAGA8c,EAAA/lN,GAAA+lN,EAAAa,mBAAA,WAAA,WACAjpL,EAAA,oBAAAsrK,MAAA,UAGAtrK,EAAA,iCAAA39B,GAAA,QAAAouN,IAKAxB,aAAAA,EACAV,gBAAAA,KC3WA74N,OAAA,0DAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,sFAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4BAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wBAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+BAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA1uB,EAAA,kBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mCAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sCAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,kBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA1uB,EAAA,iBAAAimC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8FAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,eAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,wBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,eAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,QAAA6S,EAAA7Z,EAAA6Z,EAAA+3C,EAAA,iBAAAxgC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,EAAA,MAAAuuB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,QAAA6S,EAAA7Z,EAAA6Z,EAAA+3C,EAAA,kBAAAxgC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,EAAA,MAAAuuB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8FAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,eAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,wBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,eAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,QAAA6S,EAAA7Z,EAAA6Z,EAAA+3C,EAAA,iBAAAxgC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,EAAA,MAAAuuB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA6S,EAAAA,EAAAA,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICAAz+F,OAAA,2DAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,uCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sMAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kMAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iMAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+LAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gDAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gMAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gDAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iMAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kDAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kMAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kDAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2CAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yDAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oDAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6RAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6GAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oSAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf;YAAAgyB,EAAA7S,EAAA,0GAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,gCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4FAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0RAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6FAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mJAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qEAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,qDAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0HAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kEAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,+BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sEAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,+BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uEAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,+BAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,uBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,iDAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,mHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,gCAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,qCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0HAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kIAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wHAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,iCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iHAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0HAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,OAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4GAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,wGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,0CAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8DAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6CAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,kJAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0HAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gIAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sJAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,+EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,8BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6EAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6EAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oFAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,cAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,cAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6EAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8IAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,mBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4EAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yGAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,mBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,4BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,kBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oFAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,iBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,QAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gGAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICAAz+F,OAAA,yDAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,8BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,cAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,qBAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,yCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,oCAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,cAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,4DAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,+BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2GAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,YAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,UAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,ICAAz+F,OAAA,mEAAA,SAAA,SAAA+oN,GAAA,QAAAtqH,KAAA,MAAAuqH,GAAAvqH,OAAA57F,MAAAmmN,EAAAtmN,WAAA,GAAAsmN,GAAA,GAAAD,GAAAnE,UAAA/nM,KAAA,SAAA4tB,EAAA9lC,EAAAzD,GAAA,GAAAgyB,GAAA9sB,IAAA,OAAA8sB,GAAA7S,EAAAnf,EAAAA,GAAA,IAAAgyB,EAAA7S,EAAA,4BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,0FAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,gCAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,IAAA,IAAA,WAAAuuB,EAAA+oC,GAAAxxB,EAAA9lC,EAAA,SAAA8lC,EAAA9lC,EAAAuuB,GAAAA,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,KAAAupC,EAAAvmB,OAAAgP,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,gCAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,EAAA,MAAAuuB,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,wBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,2BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,sCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,IAAAgyB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6EAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,6BAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,2FAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,gCAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,KAAA,KAAA,WAAAuuB,EAAA+oC,GAAAxxB,EAAA9lC,EAAA,SAAA8lC,EAAA9lC,EAAAuuB,GAAAA,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,6BAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,KAAAupC,EAAAvmB,OAAAgP,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7Z,EAAA6Z,EAAA1uB,EAAA,gCAAAimC,EAAA9lC,EAAA,GAAA8lC,EAAA9lC,EAAA,EAAA,EAAA,EAAA,MAAAuuB,EAAA7S,EAAA,WAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,gBAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,yBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,oBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,SAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,uBAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,MAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,eAAA6S,EAAA7S,EAAA6S,EAAArY,EAAAqY,EAAA+3C,EAAA,kCAAAxgC,EAAA9lC,EAAA,KAAAuuB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,IAAAgyB,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,KAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,sEAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,8EAAA6S,EAAA7S,EAAA,KAAAnf,GAAAgyB,EAAA7S,EAAA,aAAA6S,EAAA7S,EAAA,MAAA6S,EAAA0yL,MAAAhC,YAAAD,SAAA,GAAAoF,EAAA,OAAAtqH,GAAAH,SAAA0qH,EAAAvqH,IAEAz+F,OAAA,eAAA,WCFA,OACAi7N,UAAA,aACAC,UAAA,gBCEA,WACA,YAEA,IAAAj1N,GAAA,mBAAAE,aAAA,KAAAA,OAAAF,SAAAE,OAAAF,YACAk1N,EAAA,mBAAAr2N,SAAAA,OAAAF,QACAw2N,EAAA,mBAAAC,UAAA,wBAAAA,SAEAvuN,EAAA,WAsDA,IArDA,GAAA0F,GAEA8oN,IAEA,oBACA,iBACA,oBACA,oBACA,mBACA,oBAIA,0BACA,uBACA,0BACA,0BACA,yBACA,0BAKA,0BACA,yBACA,iCACA,yBACA,yBACA,0BAIA,uBACA,sBACA,uBACA,uBACA,sBACA,uBAGA,sBACA,mBACA,sBACA,sBACA,qBACA,sBAIAp6N,EAAA,EACAuJ,EAAA6wN,EAAA35N,OACAyD,KAEAlE,EAAAuJ,EAAAvJ,IAEA,IADAsR,EAAA8oN,EAAAp6N,KACAsR,EAAA,IAAAvM,GAAA,CACA,IAAA/E,EAAA,EAAAA,EAAAsR,EAAA7Q,OAAAT,IACAkE,EAAAk2N,EAAA,GAAAp6N,IAAAsR,EAAAtR,EAEA,OAAAkE,GAIA,OAAA,KAGAm2N,GACAf,OAAA1tN,EAAA0uN,iBACA9gN,MAAA5N,EAAA2uN,iBAGAC,GACAzvC,QAAA,SAAAllL,GACA,GAAAklL,GAAAn/K,EAAA6uN,iBAEA50N,GAAAA,GAAAd,EAAAwK,gBAMA,oCAAA3O,KAAAwrC,UAAAgjF,WACAvpH,EAAAklL,KAEAllL,EAAAklL,GAAAmvC,GAAAC,QAAAO,uBAGAC,KAAA,WACA51N,EAAA6G,EAAAgvN,mBAEAtnN,OAAA,SAAAzN,GACAX,KAAA21N,aACA31N,KAAAy1N,OAEAz1N,KAAA6lL,QAAAllL,IAGAi1N,SAAA,SAAA92N,GACAkB,KAAAuG,GAAA,SAAAzH,IAEA6hC,QAAA,SAAA7hC,GACAkB,KAAAuG,GAAA,QAAAzH,IAEAyH,GAAA,SAAAM,EAAA/H,GACA,GAAAioC,GAAAouL,EAAAtuN,EACAkgC,IACAlnC,EAAAkhB,iBAAAgmB,EAAAjoC,GAAA,IAGAgI,IAAA,SAAAD,EAAA/H,GACA,GAAAioC,GAAAouL,EAAAtuN,EACAkgC,IACAlnC,EAAA8B,oBAAAolC,EAAAjoC,GAAA,IAGAurB,IAAA3jB,EAGA,KAAAA,EAOA,YANAquN,EACAr2N,OAAAF,SAAA,EAEAuB,OAAAu1N,YAAA,EAMAz3N,QAAAkrC,iBAAAusL,GACAK,cACApxN,IAAA,WACA,MAAAk8D,SAAA5gE,EAAA6G,EAAAmvN,sBAGArqJ,SACA1iC,YAAA,EACAvkC,IAAA,WACA,MAAA1E,GAAA6G,EAAAmvN,qBAGAhxM,SACAikB,YAAA,EACAvkC,IAAA,WAEA,MAAAk8D,SAAA5gE,EAAA6G,EAAAovN,wBAKAf,EACAr2N,OAAAF,QAAA82N,EAEAv1N,OAAAu1N,WAAAA,KAIA17N,OAAA,aAAA,SAAA+F,GACA,MAAA,YAEA,MAAAA,GAAA21N,aAEAt1N,OC7KApG,OAAA,6CAAA,4BAAA,SAAA,SAAA,aAAA,YAAA,qBAAA,YAAA,WAAA,cAAA,YAAA,cACA,SAAA6rC,EAAA/mC,EAAAwlC,EAAA1iC,EAAA8zM,EAAAhO,EAAAyuB,EAAA7Z,EAAAU,EAAAmI,EAAAuH,GAg+BA,OACAn/M,KA/9BA,SAAA6oN,GAEAA,EAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAE,mBAAA,SAAAkuG,GASA,GAPAzuG,EAAAqB,SAAA,qBAAA,KAAA,8BAGAkvL,EAAAr9H,OAAA89B,2BACAvyF,EAAA,gBAAAr3B,OAGAqnI,EAAAhvC,UAAA,CAEA,GAAAonB,GAAA0pG,EAAAr9H,OAAA0F,UAAAmgC,cAAAtQ,mBAAAgmB,EAAAhvC,WAEA+wH,GAAA,EAEAC,EAAAhyL,EAAA,gBACAooF,IAAAA,EAAA0b,QAAA,SAMAiuF,GAAA,EACAC,EAAAj+L,WAAA,aALAi+L,EAAA3zM,KAAA,WAAA,WAQA,IAAA4zM,GAAAjyL,EAAA,oBACAooF,IAAAA,EAAA0b,QAAA,aAMAiuF,GAAA,EACAE,EAAAl+L,WAAA,aALAk+L,EAAA5zM,KAAA,WAAA,WAQA,IAAA6zM,GAAAlyL,EAAA,qBACAooF,IAAAA,EAAA0b,QAAA,cAMAiuF,GAAA,EACAG,EAAAn+L,WAAA,aALAm+L,EAAA7zM,KAAA,WAAA,WAQA,IAAA8zM,GAAAnyL,EAAA,mBACA+xL,GAMAI,EAAAp+L,WAAA,YAJAo+L,EAAA9zM,KAAA,WAAA,cAQA,IAAA+zM,GAAApyL,EAAA,eAEAg4K,GAAA33M,IAAA,SAAA,SAAA63B,GAEA,IAAAA,EACA,CACAA,IAEA,IAAAM,GAAAs5L,EAAAr9H,OAAA8oB,gBAEArlF,GAAAk9E,4BAAA58E,EAAA48E,4BACAl9E,EAAA09E,+BAAAp9E,EAAAo9E,+BACA19E,EAAAs9E,yBAAAh9E,EAAAg9E,yBACAt9E,EAAAi9E,wCAAA38E,EAAA28E,wCAGA6iG,EAAAC,IAAA,SAAA//K,GAGA,GAAAm6L,IAAAhiF,iBAAA,EAEAn4G,GAAAk9E,6BAEAg9G,EAAAt9L,SAAA,QAEAu9L,EAAAj9G,6BAAA,IAIAg9G,EAAAj9L,YAAA,QAEAk9L,EAAAj9G,6BAAA,GAGAl9E,EAAAi9E,yCAEAi9G,EAAAt9L,SAAA,cAEAu9L,EAAAl9G,yCAAA,IAIAi9G,EAAAj9L,YAAA,cAEAk9L,EAAAl9G,yCAAA,GAGAj9E,EAAA09E,gCAEAw8G,EAAAt9L,SAAA,gBAEAu9L,EAAAz8G,gCAAA,IAIAw8G,EAAAj9L,YAAA,gBAEAk9L,EAAAz8G,gCAAA,GAGA19E,EAAAs9E,0BAEA48G,EAAAj9L,YAAA,YAEAk9L,EAAA78G,0BAAA,IAIA48G,EAAAt9L,SAAA,YAEAu9L,EAAA78G,0BAAA,GAGAs8G,EAAAr9H,OAAA48C,eAAAghF,KAGAryL,EAAA,oBACA39B,GAAA,QAAA,WACA,GAAA26H,GAAA80F,EAAAr9H,OAAA+9B,uBACAwK,IAEA80F,EAAAr9H,OAAAg+B,oBAGAq/F,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA16B,wCAAA,KAGAqnB,GAEA80F,EAAAr9H,OAAAu+B,qBAGAhzF,EAAA,iBACA39B,GAAA,QAAA,WACA,GAAA26H,GAAA80F,EAAAr9H,OAAA+9B,uBACAwK,IAEA80F,EAAAr9H,OAAAg+B,oBAGAq/F,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA16B,wCAAA,SAGAqnB,GAEA80F,EAAAr9H,OAAAu+B,qBAGAhzF,EAAA,qBACA39B,GAAA,QAAA,WACA,GAAA26H,GAAA80F,EAAAr9H,OAAA+9B,uBACAwK,IAEA80F,EAAAr9H,OAAAg+B,oBAGAq/F,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA16B,wCAAA,aAGAqnB,GAEA80F,EAAAr9H,OAAAu+B,qBAGAhzF,EAAA,sBACA39B,GAAA,QAAA,WACA,GAAA26H,GAAA80F,EAAAr9H,OAAA+9B,uBACAwK,IAEA80F,EAAAr9H,OAAAg+B,oBAGAq/F,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA16B,wCAAA,cAGAqnB,GAEA80F,EAAAr9H,OAAAu+B,oBAKA,IAAAs/F,GAAAtyL,EAAA,sBACAsyL,GAAAjwN,GAAA,QAAA,WACAiwN,EAAAj0M,KAAA,gBAAA,SACA2hB,EAAAlkC,MAAAuiB,KAAA,gBAAA,OAEA,IAAAjlB,GAAA4mC,EAAAlkC,MAAAuiB,KAAA,mBAEAyzM,GAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,iBAAA7mG,MAEA,GAEA,MAAA9B,EAEA04N,EAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,cACAwwH,mBAAA,oBACAjrK,MAAA,mBACAkrK,eAAA,yBACAC,gBAAA,mBACAC,aAAA,uCAGA,GAEA,MAAAt5N,EAEA04N,EAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,cACAwwH,mBAAA,mBACAjrK,MAAA,mBACAkrK,eAAA,yBACAC,gBAAA,uBAGA,GAEA,MAAAr5N,EAEA04N,EAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,cACAwwH,mBAAA,oBACAjrK,MAAA,mBACAkrK,eAAA,yBACAC,gBAAA,uBAGA,GAEA,MAAAr5N,EAEA04N,EAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,cACAwwH,mBAAA,kBACAjrK,MAAA,mBACAkrK,eAAA,yBACAC,gBAAA,uBAGA,GAEA,MAAAr5N,EAEA04N,EAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,cACAwwH,mBAAA,qBACAjrK,MAAA,mBACAkrK,eAAA,yBACAC,gBAAA,uBAGA,GAEA,MAAAr5N,GAEA04N,EAAAr9H,OAAAiN,YAEAn/F,SAAA,qBACAw/F,cACAwwH,mBAAA,qBACAjrK,MAAA,mBACAkrK,eAAA,yBACAC,gBAAA,uBAGA,KAIArK,EAAA/lN,GAAA+lN,EAAAwC,oBAAA,SAAAkH,EAAAr9H,OAAAi+C,oBAEA1yG,EAAA,kBACA39B,GAAA,QAAAyvN,EAAAr9H,OAAAi+C,mBAEA,IAAAigF,GAAA3yL,EAAA,uBACA4yL,EAAA5yL,EAAA,kBAEAooL,GAAA/lN,GAAA+lN,EAAAiC,uBAAA,SAAAyH,EAAAr9H,OAAAq1B,mBAGA,IAAA+oG,GAAA7yL,EAAA,mBACA8yL,EAAA9yL,EAAA,mBAEA6yL,GAAAxwN,GAAA,QAAA,WAGA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA0wN,EAAA,EACAf,GAAAr9H,OAAAu+B,mBAEA6/F,EAAA9+L,WAAA,aACA++L,EAAAz0M,KAAA,YAAA+pM,EAAAiC,wBAEA0I,GAAA33N,WAAA,WAAA03N,EAAA,GAAAvyM,SAAA,MAGAuyM,EAAAzwN,GAAA,QAAA,WACA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA2wN,EAAA,EACAhB,GAAAr9H,OAAAg+B,oBAEAqgG,EAAA/+L,WAAA,aACA8+L,EAAAx0M,KAAA,YAAA+pM,EAAAiC,wBAEA0I,GAAA33N,WAAA,WAAAy3N,EAAA,GAAAtyM,SAAA,KAIA,IAAAyyM,GAAAhzL,EAAA,qBACAizL,EAAAjzL,EAAA,uBAEAkzL,EAAA,SAAAxnN,GAEAA,GAEA0mN,EAAAt9L,SAAA,kBAEAk+L,EAAAj/L,WAAA,aACAk/L,EAAA50M,KAAA,YAAA+pM,EAAAuD,sCAIAyG,EAAAj9L,YAAA,kBAEA89L,EAAAl/L,WAAA,aACAi/L,EAAA30M,KAAA,YAAA+pM,EAAAuD,qCAIAvD,GAAA/lN,GAAA+lN,EAAAuD,mCAAA,SAAA,WACA,GAAAwH,OAAAj4N,EACAk3N,GAAA78L,SAAA,mBAEA29L,GAAA,GACAC,EAAAH,EAAA,KAIAE,GAAA,GACAC,EAAAF,EAAA,IAGAjzL,EAAArkC,SAAAkK,MAAAsvB,YAAA,WACA/5B,WAAA,WAAA+3N,EAAA5yM,SAAA,MAGAyyM,EAAA3wN,GAAA,QAAA,WACA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA6wN,EAAA,EACAE,IAAA,GACAH,GAAA33N,WAAA,WAAA63N,EAAA,GAAA1yM,SAAA,MAGA0yM,EAAA5wN,GAAA,QAAA,WACA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA8wN,EAAA,EACAC,IAAA,GACAH,GAAA33N,WAAA,WAAA43N,EAAA,GAAAzyM,SAAA,KAGA,IAAA6yM,GAAApzL,EAAA,sBAEAqzL,EAAA/1N,EAAAoyF,SACA,WAEA4jI,YAAA,CAEA,IAAA/mN,GAAA6mN,EAAAlrN,MAEAiyF,EAAA23H,EAAAr9H,OAAA0F,SACA,IAAAA,GACAA,EAAAmgC,cAAA,CAEA,GAAA1R,IAAAA,QAAA1tH,IACAqnI,GAAAA,aAAArnI,IACA6pI,GAAAA,iBAAA7pI,GAIA,IAFAi/F,EAAAmgC,cAAAwK,kBAAAv4H,EAAAg2H,EAAA3Z,EAAAmc,GAEAnc,EAAAA,KAAAA,EAAAA,IAAAh2G,MAAA2vH,EAAAA,SAAA,CAKA,GAAAnV,GAAAmV,EAAAA,SAAA9hH,KAEA8yM,EAAAxuF,EAAAA,aAAA,GAEA+sF,GAAAr9H,OAAA2rC,4BAAAxX,EAAAA,IAAAh2G,KAAAtP,IAAA8pH,EAAAmmG,MAEA,KAEApE,EAAA,SAAAC,EAAAlnN,EAAAo2H,GAEA8wF,EAAA/wM,KAAA,gBAAAnW,EAAA,IACAknN,EAAA/wM,KAAA,iBAAAnW,EAAA,IAEAknN,EAAA/wM,KAAA,iBAAAigH,EAAA,IACA8wF,EAAA/wM,KAAA,kBAAAigH,EAAA,IAGA80F,GAAA/wN,GAAA,SACA,WAEA,GAAAkK,GAAA6mN,EAAAlrN,KACAqE,GAAA3E,KAAAm1C,MAAAxwC,GAEA6mN,EAAA/0M,KAAA,aAAA9R,GACA4iN,EAAAiE,EAAA7mN,EAAAA,EAAA,KAEAulN,EAAAr9H,OAAA+9B,yBAEAs/F,EAAAr9H,OAAAg+B,oBAEA4gG,MAIAvB,EAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAU,6BAAA,SAAA3pC,GAEA4oC,EAAAqB,SAAA,+BAAA,KAAA,6BAIA,IAAAr2B,GAAA,EAEAs9G,IAAA,aAAAlxH,KACAA,EAAAkxH,UAGAkpG,EAAAp3N,SAAAwG,gBAAA0wN,EAAA,IAAAl3N,SAAAwG,gBAAA2wN,EAAA,EA2BA,IAzBAjpG,GAEAgpG,EAAA9+L,WAAA,aACA++L,EAAAz0M,KAAA,YAAA+pM,EAAAiC,0BAIAyI,EAAA/+L,WAAA,aACA8+L,EAAAx0M,KAAA,YAAA+pM,EAAAiC,yBAGA+H,EAAAh9L,YAAA,YAAAy0F,GAEAkpG,GAAA33N,WAAA,YAAAyuH,EAAAipG,EAAA,GAAAD,EAAA,IAAAtyM,SAAA,IAEAhU,GAAA,MAUA,KAAA5T,EAAAmjI,kBAAA,KAAAnjI,EAAAojI,eAAA,KAAApjI,EAAAsjI,SACA,CACA,GAAA9hC,GAAA23H,EAAAr9H,OAAA0F,UAEAq5H,EAAA,IAAA76N,EAAAmjI,YACAvvH,GAAA4tF,EAAAmgC,cAAA8K,kBAAAzsI,EAAAojI,UAAApjI,EAAAsjI,SAAAu3F,GAEAjnN,EAAA,IAEAA,EAAA,GAIAA,GAAA,IAEA6mN,EAAAlrN,IAAAqE,GACAA,EAAA3E,KAAAm1C,MAAAxwC,GACA6mN,EAAA/0M,KAAA,aAAA9R,GACA4iN,EAAAiE,EAAA7mN,EAAAA,EAAA,OAIA,IAAAknN,GAAAzzL,EAAA,gCACA0zL,EAAA1zL,EAAA,8BAEAyzL,GAAApxN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAAsxN,EAAA,EAEArB,GAAAj9L,YAAA,cAEA28L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACAl7B,yCAAA,IAGA6iG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAAi9E,yCAAA,EAGA6iG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAAs4N,EAAA,GAAAnzM,SAAA,MAGAmzM,EAAArxN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAAuxN,EAAA,EAEAtB,GAAAt9L,SAAA,cAEAg9L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACAl7B,yCAAA,IAGA6iG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAAi9E,yCAAA,EAGA6iG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAAq4N,EAAA,GAAAlzM,SAAA,KAGA,IAAAozM,GAAA3zL,EAAA,+BACA4zL,EAAA5zL,EAAA,6BAEA2zL,GAAAtxN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAAwxN,EAAA,EAEAvB,GAAAj9L,YAAA,gBAEA28L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACAz6B,gCAAA,IAGAoiG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAA09E,gCAAA,EAGAoiG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAAw4N,EAAA,GAAArzM,SAAA,MAGAqzM,EAAAvxN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAAyxN,EAAA,EAEAxB,GAAAt9L,SAAA,gBAEAg9L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACAz6B,gCAAA,IAGAoiG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAA09E,gCAAA,EAGAoiG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAAu4N,EAAA,GAAApzM,SAAA,KAIA,IAAAszM,GAAA7zL,EAAA,2BACA8zL,EAAA9zL,EAAA,yBAEA6zL,GAAAxxN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA0xN,EAAA,EAEAzB,GAAAj9L,YAAA,QAEA28L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACAj7B,6BAAA,IAGA4iG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAAk9E,6BAAA,EAGA4iG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAA04N,EAAA,GAAAvzM,SAAA,MAGAuzM,EAAAzxN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA2xN,EAAA,EAEA1B,GAAAt9L,SAAA,QAEAg9L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACAj7B,6BAAA,IAGA4iG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAAk9E,6BAAA,EAGA4iG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAAy4N,EAAA,GAAAtzM,SAAA,KAGA,IAAAwzM,GAAA/zL,EAAA,2BACAg0L,EAAAh0L,EAAA,2BAEA+zL,GAAA1xN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA4xN,EAAA,EAEA3B,GAAAj9L,YAAA,YAEA28L,EAAAr9H,OAAA48C,gBACAhB,iBAAA;mBACA76B,0BAAA,IAGAwiG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAAs9E,0BAAA,EAGAwiG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAA44N,EAAA,GAAAzzM,SAAA,MAGAyzM,EAAA3xN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA6xN,EAAA,EAEA5B,GAAAt9L,SAAA,YAEAg9L,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA76B,0BAAA,IAGAwiG,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,MAGAA,EAAAs9E,0BAAA,EAGAwiG,EAAAC,IAAA,SAAA//K,KAGA66L,GAAA33N,WAAA,WAAA24N,EAAA,GAAAxzM,SAAA,KAGA,IAAA0zM,GAAAj0L,EAAA,sBACAk0L,EAAAl0L,EAAA,4BAEAm0L,EAAA,SAAAC,GAEA,GAAAC,GAAA5rN,WAAAwrN,EAAA51M,KAAA,QACAi2M,EAAA7rN,WAAAwrN,EAAA51M,KAAA,QACAk2M,EAAA9rN,WAAAwrN,EAAA51M,KAAA,SACAm2M,EAAA/rN,WAAAwrN,EAAA/rN,MAEAssN,IAAAJ,GAAAG,EAAAA,EAEAC,EAAAF,IAAAE,EAAAF,GACAE,EAAAH,IAAAG,EAAAH,EAEA,IAAA/1F,IAAA,IAAAk2F,EAAA,KAAA,GAAAA,GAAA,GAEArF,GAAA8E,EAAAO,EAAAl2F,GAEA41F,EAAA,GAAAvyN,YAAA28H,EAGAwzF,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA56B,kBAAA++G,IAGAP,EAAA/rN,IAAA,GAAAssN,GAGAx0L,GAAA,iBAAA39B,GAAA,QAAA,WACA8xN,GAAA,KAGA/L,EAAA/lN,GAAA+lN,EAAA0C,0BAAA,SAAA,WACAqJ,GAAA,KAIAn0L,EAAA,kBAAA39B,GAAA,QAAA,WACA8xN,GAAA,KAGA/L,EAAA/lN,GAAA+lN,EAAA4C,0BAAA,SAAA,WACAmJ,GAAA,KAcAF,EAAA5xN,GAAA,SAAA,WACA,GAAAmyN,GAAAx0L,EAAAlkC,MAAAoM,MACAo2H,GAAA,MAAAk2F,EAAA,KAAAA,GAAA,GAEArF,GAAAnvL,EAAAlkC,MAAA04N,EAAAl2F,GAEA41F,EAAA,GAAAvyN,YAAA28H,EAGAwzF,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA56B,kBAAA++G,KAIA,IAAAC,GAAA,WACAR,EAAA/rN,IAAA,GAEAinN,EAAA8E,EAAA,IAAA,MAEAC,EAAA,GAAAvyN,YAAA,KAGAmwN,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA56B,kBAAA,IAIA2yG,GAAA/lN,GAAA+lN,EAAA8C,uBAAA,SAAAuJ,GAEAz0L,EAAA,mBACA39B,GAAA,QAAAoyN,EAEA,IAAAC,GAAA10L,EAAA,wBAEA20L,EAAA,SAAAP,GAEA,GAAAQ,GAAAlgM,SAAAggM,EAAAxsN,MAEA0sN,IAAAR,GAAA,GAAA,GAEAQ,EAAA,IAAAA,EAAA,GACAA,EAAA,MAAAA,EAAA,KAGA9C,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA36B,oBAAAk/G,IAGAF,EAAAxsN,IAAA,GAAA0sN,GAEAzF,EAAAuF,EAAAE,EAAAA,EAAA,KAEA,IAAAA,EACAxC,EAAAt9L,SAAA,aAEAs9L,EAAAj9L,YAAA,aAIA6K,GAAA,mBAAA39B,GAAA,QAAA,WACAsyN,GAAA,KAGAvM,EAAA/lN,GAAA+lN,EAAAgD,4BAAA,SAAA,WACAuJ,GAAA,KAIA30L,EAAA,oBAAA39B,GAAA,QAAA,WACAsyN,GAAA,KAGAvM,EAAA/lN,GAAA+lN,EAAAkD,4BAAA,SAAA,WACAqJ,GAAA,KAcAD,EAAAryN,GAAA,SAAA,WACA,GAAAuyN,GAAA50L,EAAAlkC,MAAAoM,KAGA4pN,GAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA36B,oBAAAk/G,IAGAzF,EAAAuF,EAAAE,EAAAA,EAAA,KAEA,MAAAA,EACAxC,EAAAt9L,SAAA,aAEAs9L,EAAAj9L,YAAA,eAIA0/L,kBAAA70L,EAAA,0BACA80L,oBAAA90L,EAAA,2BAEA,IAAA+0L,GAAA,IAEAC,EAAA,WAEAD,EAAAL,EAAAxsN,MAGA4pN,EAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA36B,oBAAA,IAGAg/G,EAAAxsN,IAAA,GAEAinN,EAAAuF,EAAA,EAAA,MAEAG,kBAAA9gM,WAAA,aACA+gM,oBAAAz2M,KAAA,YAAA+pM,EAAAoD,+BAEA4G,EAAAt9L,SAAA,cAGAmgM,EAAA,WAGA,GAAAL,GAAA,MAAAG,EAAA,MAAAA,CAGAjD,GAAAr9H,OAAA48C,gBACAhB,iBAAA,EACA36B,oBAAAk/G,IAGAF,EAAAxsN,IAAA0sN,GAEAzF,EAAAuF,EAAAE,EAAAA,EAAA,KAEAE,oBAAA/gM,WAAA,aACA8gM,kBAAAx2M,KAAA,YAAA+pM,EAAAoD,+BAEA4G,EAAAj9L,YAAA,aAGAizL,GAAA/lN,GAAA+lN,EAAAoD,8BAAA,SAAA,YACA4G,EAAA78L,SAAA,aAAA0/L,EAAAD,OAGAH,kBAAAxyN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA0yN,kBAAA,EAEAG,KAEAjC,GAAA33N,WAAA,WAAA05N,oBAAA,GAAAv0M,SAAA,MAGAu0M,oBAAAzyN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAA2yN,oBAAA,EAEAG,KAEAlC,GAAA33N,WAAA,WAAAy5N,kBAAA,GAAAt0M,SAAA,MAGA6nM,EAAA/lN,GAAA+lN,EAAAoC,sBAAA,SAAAsH,EAAAr9H,OAAA0rC,sBAEAwyF,EAAAtwN,GAAA,QAAAyvN,EAAAr9H,OAAA0rC,sBAEAioF,EAAA/lN,GAAA+lN,EAAAsC,kBAAA,SAAAoH,EAAAr9H,OAAAorC,kBAEA+yF,EAAAvwN,GAAA,QAAAyvN,EAAAr9H,OAAAorC,sBC99BAnqI,OAAA,oDAAA,SAAA,SAAA,YAAA,qBAAA,YAAA,WAAA,cAAA,YAAA,cACA,SAAA8E,EAAAwlC,EAAAoxK,EAAAhO,EAAAyuB,EAAA7Z,EAAAU,EAAAmI,EAAAuH,GAyEA,OACAn/M,KAxEA,SAAA6oN,GAEA,GAAAA,EAAAr9H,OAAAq/C,4BAAA,CAEA,GAAAohF,GAAAl1L,EAAA,6BAEAm1L,EAAAn1L,EAAA,qCACAo1L,EAAAp1L,EAAA,qCAEA8xL,GAAAr9H,OAAAq/C,4BAAAZ,sBAAA,SAAAI,GAEAA,GAEA4hF,EAAApgM,SAAA,aAEAqgM,EAAAphM,WAAA,aACAqhM,EAAA/2M,KAAA,YAAA+pM,EAAAyD,4BAIAqJ,EAAA//L,YAAA,aAEAigM,EAAArhM,WAAA,aACAohM,EAAA92M,KAAA,YAAA+pM,EAAAyD,6BAKAiG,EAAAr9H,OAAAq/C,4BAAAV,wBAAA,SAAAiiF,GAEAA,EAEAH,EAAA//L,YAAA,QAIA+/L,EAAApgM,SAAA,UAMAszL,EAAA/lN,GAAA+lN,EAAAyD,yBAAA,SAAA,WAEA,GAAAl/F,IAAAuoG,EAAA3/L,SAAA,YAEAu8L,GAAAr9H,OAAAq/C,4BAAAL,aAAA9mB,GACAmlG,EAAAr9H,OAAAq/C,4BAAAT,UAAA1mB,KAGAwoG,EAAA9yN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAAgzN,EAAA,EAEArD,GAAAr9H,OAAAq/C,4BAAAL,cAAA,GACAq+E,EAAAr9H,OAAAq/C,4BAAAT,WAAA,GAEA0/E,GAAA33N,WAAA,WAAAg6N,EAAA,GAAA70M,SAAA,MAGA60M,EAAA/yN,GAAA,QAAA,WAEA,GAAA0wN,GAAAp3N,SAAAwG,gBAAAizN,EAAA,EAEAtD,GAAAr9H,OAAAq/C,4BAAAL,cAAA,GACAq+E,EAAAr9H,OAAAq/C,4BAAAT,WAAA,GAEA0/E,GAAA33N,WAAA,WAAA+5N,EAAA,GAAA50M,SAAA,WClEA,SAAA1kB,EAAAF,EAAA25N,EAAAp6N,GACA,YAkBA,SAAAq6N,GAAA/yN,EAAAgxB,EAAA9zB,GACA,MAAAtE,YAAAo6N,EAAAhzN,EAAA9C,GAAA8zB,GAYA,QAAAiiM,GAAAriN,EAAA5Q,EAAA9C,GACA,QAAA0S,MAAA5G,QAAA4H,KACAjW,EAAAiW,EAAA1T,EAAA8C,GAAA9C,IACA,GAWA,QAAAvC,GAAAtH,EAAA0d,EAAA7T,GACA,GAAA9I,EAEA,IAAAf,EAIA,GAAAA,EAAAwuC,QACAxuC,EAAAwuC,QAAA9wB,EAAA7T,OACA,IAAA7J,EAAAwB,SAAA6D,EAEA,IADAtE,EAAA,EACAA,EAAAf,EAAAwB,QACAkc,EAAAvd,KAAA0J,EAAA7J,EAAAe,GAAAA,EAAAf,GACAe,QAGA,KAAAA,IAAAf,GACAA,EAAAgE,eAAAjD,IAAA2c,EAAAvd,KAAA0J,EAAA7J,EAAAe,GAAAA,EAAAf,GAYA,QAAA6/N,GAAAn7L,EAAArkC,EAAAs1E,GACA,GAAAmqJ,GAAA,sBAAAz/N,EAAA,KAAAs1E,EAAA,QACA,OAAA,YACA,GAAAjxE,GAAA,GAAAtB,OAAA,mBACAyoF,EAAAnnF,GAAAA,EAAAmnF,MAAAnnF,EAAAmnF,MAAAjqF,QAAA,kBAAA,IACAA,QAAA,cAAA,IACAA,QAAA,6BAAA,kBAAA,sBAEA8rC,EAAA1nC,EAAAwnC,UAAAxnC,EAAAwnC,QAAAI,MAAA5nC,EAAAwnC,QAAAE,IAIA,OAHAA,IACAA,EAAAvtC,KAAA6F,EAAAwnC,QAAAsyL,EAAAj0I,GAEAnnD,EAAAhiC,MAAAuD,KAAA1D,YAwEA,QAAAw9N,GAAA9tI,EAAAlxE,EAAAjL,GACA,GACAkqN,GADAC,EAAAl/M,EAAAhd,SAGAi8N,GAAA/tI,EAAAluF,UAAAD,OAAAgnC,OAAAm1L,GACAD,EAAAxkN,YAAAy2E,EACA+tI,EAAAE,OAAAD,EAEAnqN,GACAurC,GAAA2+K,EAAAlqN,GAUA,QAAA6pN,GAAAhzN,EAAA9C,GACA,MAAA,YACA,MAAA8C,GAAAjK,MAAAmH,EAAAtH,YAWA,QAAA49N,GAAA9tN,EAAAhQ,GACA,aAAAgQ,IAAA+tN,GACA/tN,EAAA3P,MAAAL,EAAAA,EAAA,IAAAgD,EAAAA,EAAAhD,GAEAgQ,EASA,QAAAguN,GAAAC,EAAAC,GACA,MAAAD,KAAAj7N,EAAAk7N,EAAAD,EASA,QAAAE,GAAA3nN,EAAApM,EAAAqT,GACAxY,EAAAm5N,EAAAh0N,GAAA,SAAArG,GACAyS,EAAAmO,iBAAA5gB,EAAA0Z,GAAA,KAUA,QAAA4gN,GAAA7nN,EAAApM,EAAAqT,GACAxY,EAAAm5N,EAAAh0N,GAAA,SAAArG,GACAyS,EAAAjR,oBAAAxB,EAAA0Z,GAAA,KAWA,QAAA6gN,GAAA/xN,EAAAkY,GACA,KAAAlY,GAAA,CACA,GAAAA,GAAAkY,EACA,OAAA,CAEAlY,GAAAA,EAAAgB,WAEA,OAAA,EASA,QAAAgxN,GAAA7/H,EAAAl9E,GACA,MAAAk9E,GAAAv9F,QAAAqgB,IAAA,EAQA,QAAA48M,GAAA1/H,GACA,MAAAA,GAAAjkF,OAAA1b,MAAA,QAUA,QAAA4K,GAAAyB,EAAAoW,EAAAg9M,GACA,GAAApzN,EAAAjK,UAAAq9N,EACA,MAAApzN,GAAAjK,QAAAqgB,EAGA,KADA,GAAA9iB,GAAA,EACAA,EAAA0M,EAAAjM,QAAA,CACA,GAAAq/N,GAAApzN,EAAA1M,GAAA8/N,IAAAh9M,IAAAg9M,GAAApzN,EAAA1M,KAAA8iB,EACA,MAAA9iB,EAEAA,KAEA,OAAA,EASA,QAAA0a,GAAAzb,GACA,MAAAuc,OAAAxY,UAAAjC,MAAA3B,KAAAH,EAAA,GAUA,QAAA8gO,GAAArzN,EAAAvF,EAAA6T,GAKA,IAJA,GAAAoB,MACAnK,KACAjS,EAAA,EAEAA,EAAA0M,EAAAjM,QAAA,CACA,GAAA6Q,GAAAnK,EAAAuF,EAAA1M,GAAAmH,GAAAuF,EAAA1M,EACAiL,GAAAgH,EAAAX,GAAA,GACA8K,EAAA3a,KAAAiL,EAAA1M,IAEAiS,EAAAjS,GAAAsR,EACAtR,IAaA,MAVAgb,KAIAoB,EAHAjV,EAGAiV,EAAApB,KAAA,SAAAkE,EAAAC,GACA,MAAAD,GAAA/X,GAAAgY,EAAAhY,KAHAiV,EAAApB,QAQAoB,EASA,QAAAquB,GAAAxrC,EAAA2vC,GAKA,IAJA,GAAArsC,GAAArD,EACA8gO,EAAApxL,EAAA,GAAAj+B,cAAAi+B,EAAA7tC,MAAA,GAEAf,EAAA,EACAA,EAAAigO,GAAAx/N,QAAA,CAIA,GAHA8B,EAAA09N,GAAAjgO,IACAd,EAAA,EAAAqD,EAAAy9N,EAAApxL,IAEA3vC,GACA,MAAAC,EAEAc,KAEA,MAAAsE,GAQA,QAAAi4F,KACA,MAAA2jI,MAQA,QAAAC,GAAAzvJ,GACA,GAAA5iE,GAAA4iE,EAAAxlE,eAAAwlE,CACA,OAAA5iE,GAAAgM,aAAAhM,EAAAwxB,cAAAr6B,EAyCA,QAAAm7N,GAAAC,EAAAr8N,GACA,GAAAmK,GAAAjJ,IACAA,MAAAm7N,QAAAA,EACAn7N,KAAAlB,SAAAA,EACAkB,KAAAwrE,QAAA2vJ,EAAA3vJ,QACAxrE,KAAA4S,OAAAuoN,EAAAh6N,QAAAi6N,YAIAp7N,KAAAq7N,WAAA,SAAAzgH,GACAs/G,EAAAiB,EAAAh6N,QAAA2xM,QAAAqoB,KACAlyN,EAAA4Q,QAAA+gG,IAIA56G,KAAAmN,OAoCA,QAAAmuN,GAAAH,GACA,GACAI,GAAAJ,EAAAh6N,QAAAo6N,UAaA,OAAA,KAXAA,IAEAC,GACAC,EACAC,GACAC,EACAC,GAGAC,EAFAC,IAIAX,EAAAY,GASA,QAAAA,GAAAZ,EAAAn0L,EAAAzlB,GACA,GAAAy6M,GAAAz6M,EAAA06M,SAAA1gO,OACA2gO,EAAA36M,EAAA46M,gBAAA5gO,OACA6gO,EAAAp1L,EAAAq1L,IAAAL,EAAAE,GAAA,EACAI,EAAAt1L,GAAAu1L,GAAAC,KAAAR,EAAAE,GAAA,CAEA36M,GAAA66M,UAAAA,EACA76M,EAAA+6M,UAAAA,EAEAF,IACAjB,EAAAsB,YAKAl7M,EAAAylB,UAAAA,EAGA01L,EAAAvB,EAAA55M,GAGA45M,EAAAh2L,KAAA,eAAA5jB,GAEA45M,EAAAwB,UAAAp7M,GACA45M,EAAAsB,QAAAG,UAAAr7M,EAQA,QAAAm7M,GAAAvB,EAAA55M,GACA,GAAAk7M,GAAAtB,EAAAsB,QACAR,EAAA16M,EAAA06M,SACAY,EAAAZ,EAAA1gO,MAGAkhO,GAAAK,aACAL,EAAAK,WAAAC,EAAAx7M,IAIAs7M,EAAA,IAAAJ,EAAAO,cACAP,EAAAO,cAAAD,EAAAx7M,GACA,IAAAs7M,IACAJ,EAAAO,eAAA,EAGA,IAAAF,GAAAL,EAAAK,WACAE,EAAAP,EAAAO,cACAC,EAAAD,EAAAA,EAAAE,OAAAJ,EAAAI,OAEAA,EAAA37M,EAAA27M,OAAAC,EAAAlB,EACA16M,GAAA+O,UAAAhjB,KACAiU,EAAA67M,UAAA77M,EAAA+O,UAAAwsM,EAAAxsM,UAEA/O,EAAA4lF,MAAAk2H,EAAAJ,EAAAC,GACA37M,EAAA+7M,SAAAC,EAAAN,EAAAC,GAEAM,EAAAf,EAAAl7M,GACAA,EAAAk8M,gBAAAC,EAAAn8M,EAAAo8M,OAAAp8M,EAAAq8M,OAEA,IAAAC,GAAAC,EAAAv8M,EAAA67M,UAAA77M,EAAAo8M,OAAAp8M,EAAAq8M,OACAr8M,GAAAw8M,iBAAAF,EAAA10L,EACA5nB,EAAAy8M,iBAAAH,EAAA59K,EACA1+B,EAAAs8M,gBAAAzyL,GAAAyyL,EAAA10L,GAAAiC,GAAAyyL,EAAA59K,GAAA49K,EAAA10L,EAAA00L,EAAA59K,EAEA1+B,EAAAze,MAAAk6N,EAAAiB,EAAAjB,EAAAf,SAAAA,GAAA,EACA16M,EAAA0lF,SAAA+1H,EAAAkB,EAAAlB,EAAAf,SAAAA,GAAA,EAEA16M,EAAA48M,YAAA1B,EAAAG,UAAAr7M,EAAA06M,SAAA1gO,OACAkhO,EAAAG,UAAAuB,YAAA58M,EAAA06M,SAAA1gO,OAAAkhO,EAAAG,UAAAuB,YADA58M,EAAA06M,SAAA1gO,OAGA6iO,EAAA3B,EAAAl7M,EAGA,IAAA3O,GAAAuoN,EAAA3vJ,OACAkvJ,GAAAn5M,EAAA88M,SAAAzrN,OAAAA,KACAA,EAAA2O,EAAA88M,SAAAzrN,QAEA2O,EAAA3O,OAAAA,EAGA,QAAA4qN,GAAAf,EAAAl7M,GACA,GAAA27M,GAAA37M,EAAA27M,OACA/6L,EAAAs6L,EAAA6B,gBACAC,EAAA9B,EAAA8B,cACA3B,EAAAH,EAAAG,aAEAr7M,GAAAylB,YAAAq1L,IAAAO,EAAA51L,YAAAu1L,KACAgC,EAAA9B,EAAA8B,WACAp1L,EAAAyzL,EAAAe,QAAA,EACA19K,EAAA28K,EAAAgB,QAAA,GAGAz7L,EAAAs6L,EAAA6B,aACAn1L,EAAA+zL,EAAA/zL,EACA8W,EAAAi9K,EAAAj9K,IAIA1+B,EAAAo8M,OAAAY,EAAAp1L,GAAA+zL,EAAA/zL,EAAAhH,EAAAgH,GACA5nB,EAAAq8M,OAAAW,EAAAt+K,GAAAi9K,EAAAj9K,EAAA9d,EAAA8d,GAQA,QAAAm+K,GAAA3B,EAAAl7M,GACA,GAEAi9M,GAAAC,EAAAC,EAAArnL,EAFAzhC,EAAA6mN,EAAAkC,cAAAp9M,EACA67M,EAAA77M,EAAA+O,UAAA1a,EAAA0a,SAGA,IAAA/O,EAAAylB,WAAAw1L,KAAAY,EAAAwB,IAAAhpN,EAAA4oN,WAAAp/N,GAAA,CACA,GAAAu+N,GAAAp8M,EAAAo8M,OAAA/nN,EAAA+nN,OACAC,EAAAr8M,EAAAq8M,OAAAhoN,EAAAgoN,OAEAnpN,EAAAqpN,EAAAV,EAAAO,EAAAC,EACAa,GAAAhqN,EAAA00B,EACAu1L,EAAAjqN,EAAAwrC,EACAu+K,EAAApzL,GAAA32B,EAAA00B,GAAAiC,GAAA32B,EAAAwrC,GAAAxrC,EAAA00B,EAAA10B,EAAAwrC,EACA5I,EAAAqmL,EAAAC,EAAAC,GAEAnB,EAAAkC,aAAAp9M,MAGAi9M,GAAA5oN,EAAA4oN,SACAC,EAAA7oN,EAAA6oN,UACAC,EAAA9oN,EAAA8oN,UACArnL,EAAAzhC,EAAAyhC,SAGA91B,GAAAi9M,SAAAA,EACAj9M,EAAAk9M,UAAAA,EACAl9M,EAAAm9M,UAAAA,EACAn9M,EAAA81B,UAAAA,EAQA,QAAA0lL,GAAAx7M,GAKA,IAFA,GAAA06M,MACAnhO,EAAA,EACAA,EAAAymB,EAAA06M,SAAA1gO,QACA0gO,EAAAnhO,IACAs0B,QAAA6xB,GAAA1/B,EAAA06M,SAAAnhO,GAAAs0B,SACAI,QAAAyxB,GAAA1/B,EAAA06M,SAAAnhO,GAAA00B,UAEA10B,GAGA,QACAw1B,UAAAhjB,KACA2uN,SAAAA,EACAiB,OAAAC,EAAAlB,GACA0B,OAAAp8M,EAAAo8M,OACAC,OAAAr8M,EAAAq8M,QASA,QAAAT,GAAAlB,GACA,GAAAY,GAAAZ,EAAA1gO,MAGA,IAAA,IAAAshO,EACA,OACA1zL,EAAA8X,GAAAg7K,EAAA,GAAA7sM,SACA6wB,EAAAgB,GAAAg7K,EAAA,GAAAzsM,SAKA,KADA,GAAA2Z,GAAA,EAAA8W,EAAA,EAAAnlD,EAAA,EACAA,EAAA+hO,GACA1zL,GAAA8yL,EAAAnhO,GAAAs0B,QACA6wB,GAAAg8K,EAAAnhO,GAAA00B,QACA10B,GAGA,QACAquC,EAAA8X,GAAA9X,EAAA0zL,GACA58K,EAAAgB,GAAAhB,EAAA48K,IAWA,QAAAiB,GAAAV,EAAAj0L,EAAA8W,GACA,OACA9W,EAAAA,EAAAi0L,GAAA,EACAn9K,EAAAA,EAAAm9K,GAAA,GAUA,QAAAM,GAAAv0L,EAAA8W,GACA,MAAA9W,KAAA8W,EACA4+K,GAGAzzL,GAAAjC,IAAAiC,GAAA6U,GACA9W,EAAA,EAAA21L,GAAAC,GAEA9+K,EAAA,EAAA++K,GAAAC,GAUA,QAAA1B,GAAAjtL,EAAAoV,EAAAx3C,GACAA,IACAA,EAAAgxN,GAEA,IAAA/1L,GAAAuc,EAAAx3C,EAAA,IAAAoiC,EAAApiC,EAAA,IACA+xC,EAAAyF,EAAAx3C,EAAA,IAAAoiC,EAAApiC,EAAA,GAEA,OAAApC,MAAA2/B,KAAAtC,EAAAA,EAAA8W,EAAAA,GAUA,QAAAo9K,GAAA/sL,EAAAoV,EAAAx3C,GACAA,IACAA,EAAAgxN,GAEA,IAAA/1L,GAAAuc,EAAAx3C,EAAA,IAAAoiC,EAAApiC,EAAA,IACA+xC,EAAAyF,EAAAx3C,EAAA,IAAAoiC,EAAApiC,EAAA,GACA,OAAA,KAAApC,KAAAqzN,MAAAl/K,EAAA9W,GAAAr9B,KAAA6pB,GASA,QAAAuoM,GAAAz6N,EAAAC,GACA,MAAA25N,GAAA35N,EAAA,GAAAA,EAAA,GAAA07N,IAAA/B,EAAA55N,EAAA,GAAAA,EAAA,GAAA27N,IAUA,QAAAnB,GAAAx6N,EAAAC,GACA,MAAA65N,GAAA75N,EAAA,GAAAA,EAAA,GAAA07N,IAAA7B,EAAA95N,EAAA,GAAAA,EAAA,GAAA27N,IAiBA,QAAAtD,KACA97N,KAAAq/N,KAAAC,GACAt/N,KAAAu/N,MAAAC,GAEAx/N,KAAAy/N,SAAA,EAEAvE,EAAAz+N,MAAAuD,KAAA1D,WAoEA,QAAAm/N,KACAz7N,KAAAq/N,KAAAK,GACA1/N,KAAAu/N,MAAAI,GAEAzE,EAAAz+N,MAAAuD,KAAA1D,WAEA0D,KAAA4/N,MAAA5/N,KAAAm7N,QAAAsB,QAAAoD,iBAoEA,QAAAC,KACA9/N,KAAA+/N,SAAAC,GACAhgO,KAAAu/N,MAAAU,GACAjgO,KAAAkgO,SAAA,EAEAhF,EAAAz+N,MAAAuD,KAAA1D,WAsCA,QAAA6jO,GAAAvlH,EAAAz6G,GACA,GAAAiV,GAAAI,EAAAolG,EAAAtzB,SACA2jH,EAAAz1L,EAAAolG,EAAAt0B,eAMA,OAJAnmF,IAAAo8N,GAAAC,MACApnN,EAAAylN,EAAAzlN,EAAAtZ,OAAAmvM,GAAA,cAAA,KAGA71L,EAAA61L,GAiBA,QAAA0wB,KACA37N,KAAA+/N,SAAAK,GACApgO,KAAAqgO,aAEAnF,EAAAz+N,MAAAuD,KAAA1D,WA0BA,QAAAgkO,GAAA1lH,EAAAz6G,GACA,GAAAogO,GAAA/qN,EAAAolG,EAAAtzB,SACA+4I,EAAArgO,KAAAqgO,SAGA,IAAAlgO,GAAAk8N,GAAAmE,KAAA,IAAAD,EAAAhlO,OAEA,MADA8kO,GAAAE,EAAA,GAAAzhN,aAAA,GACAyhN,EAAAA,EAGA,IAAAzlO,GACAssF,EACAd,EAAA9wE,EAAAolG,EAAAt0B,gBACAm6I,KACA7tN,EAAA5S,KAAA4S,MAQA,IALAw0E,EAAAm5I,EAAAz/N,OAAA,SAAA4/N,GACA,MAAAhG,GAAAgG,EAAA9tN,OAAAA,KAIAzS,IAAAk8N,GAEA,IADAvhO,EAAA,EACAA,EAAAssF,EAAA7rF,QACA8kO,EAAAj5I,EAAAtsF,GAAAgkB,aAAA,EACAhkB,GAMA,KADAA,EAAA,EACAA,EAAAwrF,EAAA/qF,QACA8kO,EAAA/5I,EAAAxrF,GAAAgkB,aACA2hN,EAAAlkO,KAAA+pF,EAAAxrF,IAIAqF,GAAAo8N,GAAAC,WACA6D,GAAA/5I,EAAAxrF,GAAAgkB,YAEAhkB,GAGA,OAAA2lO,GAAAllO,QAMAs/N,EAAAzzI,EAAAtrF,OAAA2kO,GAAA,cAAA,GACAA,OAPA,GAwBA,QAAA5E,KACAX,EAAAz+N,MAAAuD,KAAA1D,UAEA,IAAAud,GAAA6/M,EAAA15N,KAAA6Z,QAAA7Z,KACAA,MAAA0gO,MAAA,GAAA/E,GAAA37N,KAAAm7N,QAAAthN,GACA7Z,KAAA2gO,MAAA,GAAA7E,GAAA97N,KAAAm7N,QAAAthN,GAEA7Z,KAAA4gO,aAAA,KACA5gO,KAAA6gO,eAqCA,QAAAC,GAAA95L,EAAA+5L,GACA/5L,EAAAq1L,IACAr8N,KAAA4gO,aAAAG,EAAA5E,gBAAA,GAAAr9M,WACAkiN,EAAA9mO,KAAA8F,KAAA+gO,IACA/5L,GAAAu1L,GAAAC,KACAwE,EAAA9mO,KAAA8F,KAAA+gO,GAIA,QAAAC,GAAAD,GACA,GAAAL,GAAAK,EAAA5E,gBAAA,EAEA,IAAAuE,EAAA5hN,aAAA9e,KAAA4gO,aAAA,CACA,GAAAK,IAAA93L,EAAAu3L,EAAAtxM,QAAA6wB,EAAAygL,EAAAlxM,QACAxvB,MAAA6gO,YAAAtkO,KAAA0kO,EACA,IAAAC,GAAAlhO,KAAA6gO,YACAM,EAAA,WACA,GAAArmO,GAAAomO,EAAA3jO,QAAA0jO,EACAnmO,IAAA,GACAomO,EAAAnlO,OAAAjB,EAAA,GAGAwE,YAAA6hO,EAAAC,KAIA,QAAAC,GAAAN,GAEA,IAAA,GADA53L,GAAA43L,EAAA1C,SAAAjvM,QAAA6wB,EAAA8gL,EAAA1C,SAAA7uM,QACA10B,EAAA,EAAAA,EAAAkF,KAAA6gO,YAAAtlO,OAAAT,IAAA,CACA,GAAAgyB,GAAA9sB,KAAA6gO,YAAA/lO,GACA4gN,EAAA5vM,KAAAs/B,IAAAjC,EAAArc,EAAAqc,GAAAm4L,EAAAx1N,KAAAs/B,IAAA6U,EAAAnzB,EAAAmzB,EACA,IAAAy7J,GAAA6lB,IAAAD,GAAAC,GACA,OAAA,EAGA,OAAA,EAsBA,QAAAC,GAAArG,EAAAt+N,GACAmD,KAAAm7N,QAAAA,EACAn7N,KAAAyC,IAAA5F,GAmGA,QAAA4kO,GAAAC,GAEA,GAAA/G,EAAA+G,EAAAC,IACA,MAAAA,GAGA,IAAAC,GAAAjH,EAAA+G,EAAAG,IACAC,EAAAnH,EAAA+G,EAAAK,GAMA,OAAAH,IAAAE,EACAH,GAIAC,GAAAE,EACAF,EAAAC,GAAAE,GAIApH,EAAA+G,EAAAM,IACAA,GAGAC,GA2DA,QAAAC,GAAA/gO,GACAnB,KAAAmB,QAAAi6C,MAAAp7C,KAAA80F,SAAA3zF,OAEAnB,KAAArB,GAAA04F,IAEAr3F,KAAAm7N,QAAA,KAGAn7N,KAAAmB,QAAA2xM,OAAAsnB,EAAAp6N,KAAAmB,QAAA2xM,QAAA,GAEA9yM,KAAAqU,MAAA8tN,GAEAniO,KAAAoiO,gBACApiO,KAAAqiO,eAqOA,QAAAC,GAAAjuN,GACA,MAAAA,GAAAkuN,GACA,SACAluN,EAAAmuN,GACA,MACAnuN,EAAAouN,GACA,OACApuN,EAAAquN,GACA,QAEA,GAQA,QAAAC,GAAAtrL,GACA,MAAAA,IAAA4nL,GACA,OACA5nL,GAAA2nL,GACA,KACA3nL,GAAAynL,GACA,OACAznL,GAAA0nL,GACA,QAEA,GASA,QAAA6D,GAAAC,EAAAC,GACA,GAAA3H,GAAA2H,EAAA3H,OACA,OAAAA,GACAA,EAAA52N,IAAAs+N,GAEAA,EAQA,QAAAE,KACAb,EAAAzlO,MAAAuD,KAAA1D,WA6DA,QAAA0mO,MACAD,EAAAtmO,MAAAuD,KAAA1D,WAEA0D,KAAAijO,GAAA,KACAjjO,KAAAkjO,GAAA,KA4EA,QAAAC,MACAJ,EAAAtmO,MAAAuD,KAAA1D,WAsCA,QAAA8mO,MACAlB,EAAAzlO,MAAAuD,KAAA1D,WAEA0D,KAAAqjO,OAAA,KACArjO,KAAAsjO,OAAA,KAmEA,QAAAC,MACAR,EAAAtmO,MAAAuD,KAAA1D,WA8BA,QAAAknO,MACAT,EAAAtmO,MAAAuD,KAAA1D,WA2DA,QAAAmnO,MACAvB,EAAAzlO,MAAAuD,KAAA1D,WAIA0D,KAAA0jO,OAAA,EACA1jO,KAAA2jO,SAAA,EAEA3jO,KAAAqjO,OAAA,KACArjO,KAAAsjO,OAAA,KACAtjO,KAAAurB,MAAA,EAqGA,QAAAq4M,IAAAp4J,EAAArqE,GAGA,MAFAA,GAAAA,MACAA,EAAA0iO,YAAAzJ,EAAAj5N,EAAA0iO,YAAAD,GAAA9uI,SAAAgvI,QACA,GAAAC,IAAAv4J,EAAArqE,GAiIA,QAAA4iO,IAAAv4J,EAAArqE,GACAnB,KAAAmB,QAAAi6C,MAAAwoL,GAAA9uI,SAAA3zF,OAEAnB,KAAAmB,QAAAi6N,YAAAp7N,KAAAmB,QAAAi6N,aAAA5vJ,EAEAxrE,KAAApC,YACAoC,KAAAy8N,WACAz8N,KAAA6jO,eACA7jO,KAAAgkO,eAEAhkO,KAAAwrE,QAAAA,EACAxrE,KAAAuhB,MAAA+5M,EAAAt7N,MACAA,KAAAikO,YAAA,GAAAzC,GAAAxhO,KAAAA,KAAAmB,QAAA8iO,aAEAC,GAAAlkO,MAAA,GAEAqB,EAAArB,KAAAmB,QAAA0iO,YAAA,SAAAp0I,GACA,GAAAqzI,GAAA9iO,KAAAgH,IAAA,GAAAyoF,GAAA,GAAAA,EAAA,IACAA,GAAA,IAAAqzI,EAAAqB,cAAA10I,EAAA,IACAA,EAAA,IAAAqzI,EAAAsB,eAAA30I,EAAA,KACAzvF,MA4PA,QAAAkkO,IAAA/I,EAAAn0N,GACA,GAAAwkE,GAAA2vJ,EAAA3vJ,OACA,IAAAA,EAAAhoE,MAAA,CAGA,GAAAxJ,EACAqH,GAAA85N,EAAAh6N,QAAAuzB,SAAA,SAAA73B,EAAAzC,GACAJ,EAAAurC,EAAAimC,EAAAhoE,MAAApJ,GACA4M,GACAm0N,EAAA6I,YAAAhqO,GAAAwxE,EAAAhoE,MAAAxJ,GACAwxE,EAAAhoE,MAAAxJ,GAAA6C,GAEA2uE,EAAAhoE,MAAAxJ,GAAAmhO,EAAA6I,YAAAhqO,IAAA,KAGAgN,IACAm0N,EAAA6I,iBASA,QAAAK,IAAAx9N,EAAA3E,GACA,GAAAoiO,GAAAzkO,EAAA+qN,YAAA,QACA0Z,GAAApY,UAAArlN,GAAA,GAAA,GACAy9N,EAAAC,QAAAriO,EACAA,EAAA0Q,OAAAk6M,cAAAwX,GAngFA,GA+FAlpL,IA/FA2/K,IAAA,GAAA,SAAA,MAAA,KAAA,KAAA,KACAyJ,GAAA3kO,EAAAuF,cAAA,OAEA+0N,GAAA,WAEAl5K,GAAAn1C,KAAAm1C,MACA7V,GAAAt/B,KAAAs/B,IACA99B,GAAAiK,KAAAjK,GA0FA8tC,IADA,kBAAAv9C,QAAAu9C,OACA,SAAAxoC,GACA,GAAAA,IAAAxT,GAAA,OAAAwT,EACA,KAAA,IAAA8xB,WAAA,6CAIA,KAAA,GADAunB,GAAApuD,OAAA+U,GACAtV,EAAA,EAAAA,EAAAhB,UAAAf,OAAA+B,IAAA,CACA,GAAAouB,GAAApvB,UAAAgB,EACA,IAAAouB,IAAAtsB,GAAA,OAAAssB,EACA,IAAA,GAAA+nB,KAAA/nB,GACAA,EAAA3tB,eAAA01C,KACAwY,EAAAxY,GAAA/nB,EAAA+nB,IAKA,MAAAwY,IAGApuD,OAAAu9C,MAWA,IAAAlzC,IAAA0xN,EAAA,SAAAnyN,EAAAD,EAAAvD,GAGA,IAFA,GAAAqV,GAAAzb,OAAAyb,KAAA9R,GACA1M,EAAA,EACAA,EAAAwe,EAAA/d,UACA0I,GAAAA,GAAAwD,EAAA6R,EAAAxe,MAAAsE,KACAqI,EAAA6R,EAAAxe,IAAA0M,EAAA8R,EAAAxe,KAEAA,GAEA,OAAA2M,IACA,SAAA,iBASAxD,GAAA21N,EAAA,SAAAnyN,EAAAD,GACA,MAAAU,IAAAT,EAAAD,GAAA,IACA,QAAA,iBAiNAwzN,GAAA,EAeAyJ,GAAA,wCAEA7I,GAAA,gBAAA77N,GACAy7N,GAAAj2L,EAAAxlC,EAAA,kBAAAX,EACAs8N,GAAAE,IAAA6I,GAAA/oO,KAAAwrC,UAAAgjF,WAOA00G,GAAA,GAEAvC,GAAA,EACAmE,GAAA,EACAjE,GAAA,EACAC,GAAA,EAEAqC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,GAEAyF,GAAA5F,GAAAC,GACA4F,GAAA3F,GAAAC,GACA2F,GAAAF,GAAAC,GAEAzF,IAAA,IAAA,KACAE,IAAA,UAAA,UA4BAlE,GAAAp9N,WAKA+b,QAAA,aAKA1M,KAAA,WACAnN,KAAAq/N,MAAA9E,EAAAv6N,KAAAwrE,QAAAxrE,KAAAq/N,KAAAr/N,KAAAq7N,YACAr7N,KAAA+/N,UAAAxF,EAAAv6N,KAAA4S,OAAA5S,KAAA+/N,SAAA//N,KAAAq7N,YACAr7N,KAAAu/N,OAAAhF,EAAAU,EAAAj7N,KAAAwrE,SAAAxrE,KAAAu/N,MAAAv/N,KAAAq7N,aAMAroB,QAAA,WACAhzM,KAAAq/N,MAAA5E,EAAAz6N,KAAAwrE,QAAAxrE,KAAAq/N,KAAAr/N,KAAAq7N,YACAr7N,KAAA+/N,UAAAtF,EAAAz6N,KAAA4S,OAAA5S,KAAA+/N,SAAA//N,KAAAq7N,YACAr7N,KAAAu/N,OAAA9E,EAAAQ,EAAAj7N,KAAAwrE,SAAAxrE,KAAAu/N,MAAAv/N,KAAAq7N,aA4TA,IAAAwJ,KACAC,UAAAzI,GACA0I,UAAAvE,GACAwE,QAAAzI,IAGA+C,GAAA,YACAE,GAAA,mBAgBA1F,GAAAgC,EAAAZ,GAKArhN,QAAA,SAAA+gG,GACA,GAAA5zE,GAAA69L,GAAAjqH,EAAAz6G,KAGA6mC,GAAAq1L,IAAA,IAAAzhH,EAAA31F,SACAjlB,KAAAy/N,SAAA,GAGAz4L,EAAAw5L,IAAA,IAAA5lH,EAAAntG,QACAu5B,EAAAu1L,IAIAv8N,KAAAy/N,UAIAz4L,EAAAu1L,KACAv8N,KAAAy/N,SAAA,GAGAz/N,KAAAlB,SAAAkB,KAAAm7N,QAAAn0L,GACAi1L,UAAArhH,GACAuhH,iBAAAvhH,GACA3zB,YAvbA,QAwbAo3I,SAAAzjH,OAKA,IAAAqqH,KACAC,YAAA7I,GACA8I,YAAA3E,GACA4E,UAAA7I,GACA8I,cAAA7I,GACA8I,WAAA9I,IAIA+I,IACAC,EAzcA,QA0cAC,EAzcA,MA0cAC,EAzcA,QA0cAC,EAzcA,UA4cAjG,GAAA,cACAC,GAAA,qCAGA5/N,GAAA6lO,iBAAA7lO,EAAA8lO,eACAnG,GAAA,gBACAC,GAAA,6CAiBA7F,EAAA2B,EAAAP,GAKArhN,QAAA,SAAA+gG,GACA,GAAAglH,GAAA5/N,KAAA4/N,MACAkG,GAAA,EAEAC,EAAAnrH,EAAAz6G,KAAAiC,cAAAzG,QAAA,KAAA,IACAqrC,EAAAi+L,GAAAc,GACA9+I,EAAAs+I,GAAA3qH,EAAA3zB,cAAA2zB,EAAA3zB,YAEA++I,EAnfA,SAmfA/+I,EAGAg/I,EAAAlgO,EAAA65N,EAAAhlH,EAAA5zB,UAAA,YAGAhgD,GAAAq1L,KAAA,IAAAzhH,EAAA31F,QAAA+gN,GACAC,EAAA,IACArG,EAAArjO,KAAAq+G,GACAqrH,EAAArG,EAAArkO,OAAA,GAEAyrC,GAAAu1L,GAAAC,MACAsJ,GAAA,GAIAG,EAAA,IAKArG,EAAAqG,GAAArrH,EAEA56G,KAAAlB,SAAAkB,KAAAm7N,QAAAn0L,GACAi1L,SAAA2D,EACAzD,iBAAAvhH,GACA3zB,YAAAA,EACAo3I,SAAAzjH,IAGAkrH,GAEAlG,EAAA7jO,OAAAkqO,EAAA,MAKA,IAAAC,KACAC,WAAA9J,GACA+J,UAAA5F,GACA6F,SAAA9J,GACA+J,YAAA9J,IAGAwD,GAAA,aACAC,GAAA,2CAeAnG,GAAAgG,EAAA5E,GACArhN,QAAA,SAAA+gG,GACA,GAAAz6G,GAAA+lO,GAAAtrH,EAAAz6G,KAOA,IAJAA,IAAAk8N,KACAr8N,KAAAkgO,SAAA,GAGAlgO,KAAAkgO,QAAA,CAIA,GAAA54I,GAAA64I,EAAAjmO,KAAA8F,KAAA46G,EAAAz6G,EAGAA,IAAAo8N,GAAAC,KAAAl1I,EAAA,GAAA/rF,OAAA+rF,EAAA,GAAA/rF,QAAA,IACAyE,KAAAkgO,SAAA,GAGAlgO,KAAAlB,SAAAkB,KAAAm7N,QAAAh7N,GACA87N,SAAA30I,EAAA,GACA60I,gBAAA70I,EAAA,GACAL,YAtkBA,QAukBAo3I,SAAAzjH,OAsBA,IAAA2rH,KACAJ,WAAA9J,GACA+J,UAAA5F,GACA6F,SAAA9J,GACA+J,YAAA9J,IAGA4D,GAAA,2CAcAtG,GAAA6B,EAAAT,GACArhN,QAAA,SAAA+gG,GACA,GAAAz6G,GAAAomO,GAAA3rH,EAAAz6G,MACAmnF,EAAAg5I,EAAApmO,KAAA8F,KAAA46G,EAAAz6G,EACAmnF,IAIAtnF,KAAAlB,SAAAkB,KAAAm7N,QAAAh7N,GACA87N,SAAA30I,EAAA,GACA60I,gBAAA70I,EAAA,GACAL,YA7nBA,QA8nBAo3I,SAAAzjH,MA4EA,IAAAwmH,IAAA,KACAG,GAAA,EAaAzH,GAAA+B,EAAAX,GAOArhN,QAAA,SAAAshN,EAAAqL,EAAArjF,GACA,GAAA6iF,GAhuBA,SAguBA7iF,EAAAl8D,YACAw/I,EA/tBA,SA+tBAtjF,EAAAl8D,WAEA,MAAAw/I,GAAAtjF,EAAAujF,oBAAAvjF,EAAAujF,mBAAAC,kBAAA,CAKA,GAAAX,EACAlF,EAAA5mO,KAAA8F,KAAAwmO,EAAArjF,OACA,IAAAsjF,GAAApF,EAAAnnO,KAAA8F,KAAAmjJ,GACA,MAGAnjJ,MAAAlB,SAAAq8N,EAAAqL,EAAArjF,KAMA6vD,QAAA,WACAhzM,KAAA0gO,MAAA1tB,UACAhzM,KAAA2gO,MAAA3tB,YA0CA,IAAA4zB,IAAArhM,EAAAi/L,GAAAhhO,MAAA,eACAqjO,GAAAD,KAAAxnO,EAIA6iO,GAAA,OACAD,GAAA,eACAL,GAAA,OACAE,GAAA,QACAE,GAAA,QACA+E,GA4IA,WACA,IAAAD,GACA,OAAA,CAEA,IAAAE,MACAC,EAAAjnO,EAAAknO,KAAAlnO,EAAAknO,IAAAC,QAOA,QANA,OAAA,eAAA,QAAA,QAAA,cAAA,QAAA3+L,QAAA,SAAAn8B,GAIA26N,EAAA36N,IAAA46N,GAAAjnO,EAAAknO,IAAAC,SAAA,eAAA96N,KAEA26N,IA1IAvF,GAAA1jO,WAKA2E,IAAA,SAAA5F,GAzBA,WA2BAA,IACAA,EAAAmD,KAAAmnO,WAGAN,IAAA7mO,KAAAm7N,QAAA3vJ,QAAAhoE,OAAAsjO,GAAAjqO,KACAmD,KAAAm7N,QAAA3vJ,QAAAhoE,MAAAojO,IAAA/pO,GAEAmD,KAAA0hO,QAAA7kO,EAAAuF,cAAAyU,QAMAqjG,OAAA,WACAl6G,KAAAyC,IAAAzC,KAAAm7N,QAAAh6N,QAAA8iO,cAOAkD,QAAA,WACA,GAAAzF,KAMA,OALArgO,GAAArB,KAAAm7N,QAAA0I,YAAA,SAAAf,GACA5I,EAAA4I,EAAA3hO,QAAA2xM,QAAAgwB,MACApB,EAAAA,EAAA5lO,OAAAgnO,EAAAsE,qBAGA3F,EAAAC,EAAA1lO,KAAA,OAOAqrO,gBAAA,SAAA9lN,GACA,GAAA88M,GAAA98M,EAAA88M,SACAhnL,EAAA91B,EAAAk8M,eAGA,IAAAz9N,KAAAm7N,QAAAsB,QAAA6K,UAEA,WADAjJ,GAAA9vM,gBAIA,IAAAmzM,GAAA1hO,KAAA0hO,QACA6F,EAAA5M,EAAA+G,EAAAC,MAAAmF,GAAAnF,IACAG,EAAAnH,EAAA+G,EAAAK,MAAA+E,GAAA/E,IACAH,EAAAjH,EAAA+G,EAAAG,MAAAiF,GAAAjF,GAEA,IAAA0F,EAAA,CAGA,GAAAC,GAAA,IAAAjmN,EAAA06M,SAAA1gO,OACAksO,EAAAlmN,EAAA+7M,SAAA,EACAoK,EAAAnmN,EAAA67M,UAAA,GAEA,IAAAoK,GAAAC,GAAAC,EACA,OAIA,MAAA9F,IAAAE,MAAA,GAKAyF,GACAzF,GAAAzqL,EAAAqtL,IACA9C,GAAAvqL,EAAAstL,GACA3kO,KAAA2nO,WAAAtJ,OAHA,IAWAsJ,WAAA,SAAAtJ,GACAr+N,KAAAm7N,QAAAsB,QAAA6K,WAAA,EACAjJ,EAAA9vM,kBAiFA,IAAA4zM,IAAA,EACAO,GAAA,EACAD,GAAA,EACAD,GAAA,EACAoF,GAAApF,GACAD,GAAA,EAyBAL,GAAApkO,WAKAg3F,YAOAryF,IAAA,SAAAtB,GAKA,MAJAi6C,IAAAp7C,KAAAmB,QAAAA,GAGAnB,KAAAm7N,SAAAn7N,KAAAm7N,QAAA8I,YAAA/pH,SACAl6G,MAQAmkO,cAAA,SAAAtB,GACA,GAAAlJ,EAAAkJ,EAAA,gBAAA7iO,MACA,MAAAA,KAGA,IAAAoiO,GAAApiO,KAAAoiO,YAMA,OALAS,GAAAD,EAAAC,EAAA7iO,MACAoiO,EAAAS,EAAAlkO,MACAyjO,EAAAS,EAAAlkO,IAAAkkO,EACAA,EAAAsB,cAAAnkO,OAEAA,MAQA6nO,kBAAA,SAAAhF,GACA,MAAAlJ,GAAAkJ,EAAA,oBAAA7iO,MACAA,MAGA6iO,EAAAD,EAAAC,EAAA7iO,YACAA,MAAAoiO,aAAAS,EAAAlkO,IACAqB,OAQAokO,eAAA,SAAAvB,GACA,GAAAlJ,EAAAkJ,EAAA,iBAAA7iO,MACA,MAAAA,KAGA,IAAAqiO,GAAAriO,KAAAqiO,WAMA,OALAQ,GAAAD,EAAAC,EAAA7iO,OACA,IAAA+F,EAAAs8N,EAAAQ,KACAR,EAAA9lO,KAAAsmO,GACAA,EAAAuB,eAAApkO,OAEAA,MAQA8nO,mBAAA,SAAAjF,GACA,GAAAlJ,EAAAkJ,EAAA,qBAAA7iO,MACA,MAAAA,KAGA6iO,GAAAD,EAAAC,EAAA7iO,KACA,IAAA1C,GAAAyI,EAAA/F,KAAAqiO,YAAAQ,EAIA,OAHAvlO,IAAA,GACA0C,KAAAqiO,YAAAtmO,OAAAuB,EAAA,GAEA0C,MAOA+nO,mBAAA,WACA,MAAA/nO,MAAAqiO,YAAA9mO,OAAA,GAQAysO,iBAAA,SAAAnF,GACA,QAAA7iO,KAAAoiO,aAAAS,EAAAlkO,KAQAwmC,KAAA,SAAA5jB,GAIA,QAAA4jB,GAAAt+B,GACAoC,EAAAkyN,QAAAh2L,KAAAt+B,EAAA0a,GAJA,GAAAtY,GAAAjJ,KACAqU,EAAArU,KAAAqU,KAOAA,GAAAmuN,IACAr9L,EAAAl8B,EAAA9H,QAAA0F,MAAAy7N,EAAAjuN,IAGA8wB,EAAAl8B,EAAA9H,QAAA0F,OAEA0a,EAAA0mN,iBACA9iM,EAAA5jB,EAAA0mN,iBAIA5zN,GAAAmuN,IACAr9L,EAAAl8B,EAAA9H,QAAA0F,MAAAy7N,EAAAjuN,KAUA6zN,QAAA,SAAA3mN,GACA,GAAAvhB,KAAAmoO,UACA,MAAAnoO,MAAAmlC,KAAA5jB,EAGAvhB,MAAAqU,MA7KA,IAoLA8zN,QAAA,WAEA,IADA,GAAArtO,GAAA,EACAA,EAAAkF,KAAAqiO,YAAA9mO,QAAA,CACA,KAAAyE,KAAAqiO,YAAAvnO,GAAAuZ,OAvLA,GAuLA8tN,KACA,OAAA,CAEArnO,KAEA,OAAA,GAOA6hO,UAAA,SAAAx5E,GAGA,GAAAilF,GAAAhtL,MAAA+nG,EAGA,KAAA+2E,EAAAl6N,KAAAmB,QAAA2xM,QAAA9yM,KAAAooO,IAGA,MAFApoO,MAAA4lB,aACA5lB,KAAAqU,MA3MA,GAgNArU,MAAAqU,OAAAuzN,GAAArF,GAhNA,MAiNAviO,KAAAqU,MAAA8tN,IAGAniO,KAAAqU,MAAArU,KAAAuiD,QAAA6lL,GAIApoO,KAAAqU,OAAAquN,GAAAD,GAAAD,GAAAD,KACAviO,KAAAkoO,QAAAE,IAWA7lL,QAAA,SAAA4gG,KAOAikF,eAAA,aAOAxhN,MAAA,cA8DAk0M,EAAAiJ,EAAAb,GAKAptI,UAKAmnI,SAAA,GASAoM,SAAA,SAAA9mN,GACA,GAAA+mN,GAAAtoO,KAAAmB,QAAA86N,QACA,OAAA,KAAAqM,GAAA/mN,EAAA06M,SAAA1gO,SAAA+sO,GASA/lL,QAAA,SAAAhhC,GACA,GAAAlN,GAAArU,KAAAqU,MACA2yB,EAAAzlB,EAAAylB,UAEAuhM,EAAAl0N,GAAAquN,GAAAD,IACA+F,EAAAxoO,KAAAqoO,SAAA9mN,EAGA,OAAAgnN,KAAAvhM,EAAAw1L,KAAAgM,GACAn0N,EAAAkuN,GACAgG,GAAAC,EACAxhM,EAAAu1L,GACAloN,EAAAmuN,GACAnuN,EAAAquN,GAGAruN,EAAAouN,GAFAC,GA5VA,MAiXA5I,EAAAkJ,GAAAD,GAKAjuI,UACAjuF,MAAA,MACA4hO,UAAA,GACAxM,SAAA,EACA5kL,UAAAutL,IAGAwC,eAAA,WACA,GAAA/vL,GAAAr3C,KAAAmB,QAAAk2C,UACAqqL,IAOA,OANArqL,GAAAqtL,IACAhD,EAAAnlO,KAAAwlO,IAEA1qL,EAAAstL,IACAjD,EAAAnlO,KAAAslO,IAEAH,GAGAgH,cAAA,SAAAnnN,GACA,GAAApgB,GAAAnB,KAAAmB,QACAwnO,GAAA,EACArL,EAAA/7M,EAAA+7M,SACAjmL,EAAA91B,EAAA81B,UACAlO,EAAA5nB,EAAAo8M,OACA19K,EAAA1+B,EAAAq8M,MAeA,OAZAvmL,GAAAl2C,EAAAk2C,YACAl2C,EAAAk2C,UAAAqtL,IACArtL,EAAA,IAAAlO,EAAA01L,GAAA11L,EAAA,EAAA21L,GAAAC,GACA4J,EAAAx/L,GAAAnpC,KAAAijO,GACA3F,EAAAxxN,KAAAs/B,IAAA7pB,EAAAo8M,UAEAtmL,EAAA,IAAA4I,EAAA4+K,GAAA5+K,EAAA,EAAA++K,GAAAC,GACA0J,EAAA1oL,GAAAjgD,KAAAkjO,GACA5F,EAAAxxN,KAAAs/B,IAAA7pB,EAAAq8M,UAGAr8M,EAAA81B,UAAAA,EACAsxL,GAAArL,EAAAn8N,EAAAsnO,WAAApxL,EAAAl2C,EAAAk2C,WAGAgxL,SAAA,SAAA9mN,GACA,MAAAwhN,GAAAjlO,UAAAuqO,SAAAnuO,KAAA8F,KAAAuhB,KACAvhB,KAAAqU,MAAAquN,MAAA1iO,KAAAqU,MAAAquN,KAAA1iO,KAAA0oO,cAAAnnN,KAGA4jB,KAAA,SAAA5jB,GAEAvhB,KAAAijO,GAAA1hN,EAAAo8M,OACA39N,KAAAkjO,GAAA3hN,EAAAq8M,MAEA,IAAAvmL,GAAAsrL,EAAAphN,EAAA81B,UAEAA,KACA91B,EAAA0mN,gBAAAjoO,KAAAmB,QAAA0F,MAAAwwC,GAEAr3C,KAAAi6N,OAAA90L,KAAAjrC,KAAA8F,KAAAuhB,MAcAu4M,EAAAqJ,GAAAJ,GAKAjuI,UACAjuF,MAAA,QACA4hO,UAAA,EACAxM,SAAA,GAGAmL,eAAA,WACA,OAAAzF,KAGA0G,SAAA,SAAA9mN,GACA,MAAAvhB,MAAAi6N,OAAAoO,SAAAnuO,KAAA8F,KAAAuhB,KACAzV,KAAAs/B,IAAA7pB,EAAAze,MAAA,GAAA9C,KAAAmB,QAAAsnO,WAAAzoO,KAAAqU,MAAAquN,KAGAv9L,KAAA,SAAA5jB,GACA,GAAA,IAAAA,EAAAze,MAAA,CACA,GAAA8lO,GAAArnN,EAAAze,MAAA,EAAA,KAAA,KACAye,GAAA0mN,gBAAAjoO,KAAAmB,QAAA0F,MAAA+hO,EAEA5oO,KAAAi6N,OAAA90L,KAAAjrC,KAAA8F,KAAAuhB,MAiBAu4M,EAAAsJ,GAAAlB,GAKAptI,UACAjuF,MAAA,QACAo1N,SAAA,EACAxkM,KAAA,IACAgxM,UAAA,GAGArB,eAAA,WACA,OAAAnF,KAGA1/K,QAAA,SAAAhhC,GACA,GAAApgB,GAAAnB,KAAAmB,QACA0nO,EAAAtnN,EAAA06M,SAAA1gO,SAAA4F,EAAA86N,SACA6M,EAAAvnN,EAAA+7M,SAAAn8N,EAAAsnO,UACAM,EAAAxnN,EAAA67M,UAAAj8N,EAAAs2B,IAMA,IAJAz3B,KAAAsjO,OAAA/hN,GAIAunN,IAAAD,GAAAtnN,EAAAylB,WAAAu1L,GAAAC,MAAAuM,EACA/oO,KAAA4lB,YACA,IAAArE,EAAAylB,UAAAq1L,GACAr8N,KAAA4lB,QACA5lB,KAAAqjO,OAAA5J,EAAA,WACAz5N,KAAAqU,MAAAuzN,GACA5nO,KAAAkoO,WACA/mO,EAAAs2B,KAAAz3B,UACA,IAAAuhB,EAAAylB,UAAAu1L,GACA,MAAAqL,GAEA,OA7gBA,KAghBAhiN,MAAA,WACA+R,aAAA33B,KAAAqjO,SAGAl+L,KAAA,SAAA5jB,GACAvhB,KAAAqU,QAAAuzN,KAIArmN,GAAAA,EAAAylB,UAAAu1L,GACAv8N,KAAAm7N,QAAAh2L,KAAAnlC,KAAAmB,QAAA0F,MAAA,KAAA0a,IAEAvhB,KAAAsjO,OAAAhzM,UAAAhjB,KACAtN,KAAAm7N,QAAAh2L,KAAAnlC,KAAAmB,QAAA0F,MAAA7G,KAAAsjO,aAeAxJ,EAAAyJ,GAAAR,GAKAjuI,UACAjuF,MAAA,SACA4hO,UAAA,EACAxM,SAAA,GAGAmL,eAAA,WACA,OAAAzF,KAGA0G,SAAA,SAAA9mN,GACA,MAAAvhB,MAAAi6N,OAAAoO,SAAAnuO,KAAA8F,KAAAuhB,KACAzV,KAAAs/B,IAAA7pB,EAAA0lF,UAAAjnG,KAAAmB,QAAAsnO,WAAAzoO,KAAAqU,MAAAquN,OAcA5I,EAAA0J,GAAAT,GAKAjuI,UACAjuF,MAAA,QACA4hO,UAAA,GACAjK,SAAA,GACAnnL,UAAAqtL,GAAAC,GACA1I,SAAA,GAGAmL,eAAA,WACA,MAAApE,IAAAllO,UAAAspO,eAAAltO,KAAA8F,OAGAqoO,SAAA,SAAA9mN,GACA,GACAi9M,GADAnnL,EAAAr3C,KAAAmB,QAAAk2C,SAWA,OARAA,IAAAqtL,GAAAC,IACAnG,EAAAj9M,EAAAs8M,gBACAxmL,EAAAqtL,GACAlG,EAAAj9M,EAAAw8M,iBACA1mL,EAAAstL,KACAnG,EAAAj9M,EAAAy8M,kBAGAh+N,KAAAi6N,OAAAoO,SAAAnuO,KAAA8F,KAAAuhB,IACA81B,EAAA91B,EAAAk8M,iBACAl8M,EAAA+7M,SAAAt9N,KAAAmB,QAAAsnO,WACAlnN,EAAA48M,aAAAn+N,KAAAmB,QAAA86N,UACA7wL,GAAAozL,GAAAx+N,KAAAmB,QAAAq9N,UAAAj9M,EAAAylB,UAAAu1L,IAGAp3L,KAAA,SAAA5jB,GACA,GAAA81B,GAAAsrL,EAAAphN,EAAAk8M,gBACApmL,IACAr3C,KAAAm7N,QAAAh2L,KAAAnlC,KAAAmB,QAAA0F,MAAAwwC,EAAA91B,GAGAvhB,KAAAm7N,QAAAh2L,KAAAnlC,KAAAmB,QAAA0F,MAAA0a,MA2BAu4M,EAAA2J,GAAAvB,GAKAptI,UACAjuF,MAAA,MACAo1N,SAAA,EACA+M,KAAA,EACA7xM,SAAA,IACAM,KAAA,IACAgxM,UAAA,EACAQ,aAAA,IAGA7B,eAAA,WACA,OAAApF,KAGAz/K,QAAA,SAAAhhC,GACA,GAAApgB,GAAAnB,KAAAmB,QAEA0nO,EAAAtnN,EAAA06M,SAAA1gO,SAAA4F,EAAA86N,SACA6M,EAAAvnN,EAAA+7M,SAAAn8N,EAAAsnO,UACAS,EAAA3nN,EAAA67M,UAAAj8N,EAAAs2B,IAIA,IAFAz3B,KAAA4lB,QAEArE,EAAAylB,UAAAq1L,IAAA,IAAAr8N,KAAAurB,MACA,MAAAvrB,MAAAmpO,aAKA,IAAAL,GAAAI,GAAAL,EAAA,CACA,GAAAtnN,EAAAylB,WAAAu1L,GACA,MAAAv8N,MAAAmpO,aAGA,IAAAC,IAAAppO,KAAA0jO,OAAAniN,EAAA+O,UAAAtwB,KAAA0jO,MAAAviO,EAAAg2B,SACAkyM,GAAArpO,KAAA2jO,SAAApG,EAAAv9N,KAAA2jO,QAAApiN,EAAA27M,QAAA/7N,EAAA8nO,YAEAjpO,MAAA0jO,MAAAniN,EAAA+O,UACAtwB,KAAA2jO,QAAApiN,EAAA27M,OAEAmM,GAAAD,EAGAppO,KAAAurB,OAAA,EAFAvrB,KAAAurB,MAAA,EAKAvrB,KAAAsjO,OAAA/hN,CAKA,IAAA,IADAvhB,KAAAurB,MAAApqB,EAAA6nO,KAIA,MAAAhpO,MAAA+nO,sBAGA/nO,KAAAqjO,OAAA5J,EAAA,WACAz5N,KAAAqU,MAAAuzN,GACA5nO,KAAAkoO,WACA/mO,EAAAg2B,SAAAn3B,MACA0iO,IANAkF,GAUA,MAttBA,KAytBAuB,YAAA,WAIA,MAHAnpO,MAAAqjO,OAAA5J,EAAA,WACAz5N,KAAAqU,MA3tBA,IA4tBArU,KAAAmB,QAAAg2B,SAAAn3B,MA5tBA,IAguBA4lB,MAAA,WACA+R,aAAA33B,KAAAqjO,SAGAl+L,KAAA,WACAnlC,KAAAqU,OAAAuzN,KACA5nO,KAAAsjO,OAAAgG,SAAAtpO,KAAAurB,MACAvrB,KAAAm7N,QAAAh2L,KAAAnlC,KAAAmB,QAAA0F,MAAA7G,KAAAsjO,YAoBAM,GAAA71I,QAAA,QAMA61I,GAAA9uI,UAOAy0I,WAAA,EAQAtF,YAl9BA,UAw9BAnxB,QAAA,EASAsoB,YAAA,KAOAG,WAAA,KAOAuI,SAEAP,IAAAzwB,QAAA,KACAqwB,IAAArwB,QAAA,IAAA,YACA0wB,IAAAnsL,UAAAqtL,MACA1B,IAAA3rL,UAAAqtL,KAAA,WACAjB,KACAA,IAAA58N,MAAA,YAAAmiO,KAAA,IAAA,SACA5F,KAQA1uM,UAMA80M,WAAA,OAOAC,YAAA,OASAC,aAAA,OAOAC,eAAA,OAOAC,SAAA,OAQAC,kBAAA,iBAoCA9F,IAAAjmO,WAMA2E,IAAA,SAAAtB,GAaA,MAZAi6C,IAAAp7C,KAAAmB,QAAAA,GAGAA,EAAA8iO,aACAjkO,KAAAikO,YAAA/pH,SAEA/4G,EAAAi6N,cAEAp7N,KAAAuhB,MAAAyxL,UACAhzM,KAAAuhB,MAAA3O,OAAAzR,EAAAi6N,YACAp7N,KAAAuhB,MAAApU,QAEAnN,MASAiR,KAAA,SAAA43B,GACA7oC,KAAAy8N,QAAA1sN,QAAA84B,EA5DA,EADA,GAsEA8zL,UAAA,SAAAx5E,GACA,GAAAs5E,GAAAz8N,KAAAy8N,OACA,KAAAA,EAAA1sN,QAAA,CAKA/P,KAAAikO,YAAAoD,gBAAAlkF,EAEA,IAAA2/E,GACAe,EAAA7jO,KAAA6jO,YAKAiG,EAAArN,EAAAqN,gBAIAA,GAAAA,GAAAA,EAAAz1N,MAAAuzN,MACAkC,EAAArN,EAAAqN,cAAA,KAIA,KADA,GAAAhvO,GAAA,EACAA,EAAA+oO,EAAAtoO,QACAunO,EAAAe,EAAA/oO,GA9FA,IAsGA2hO,EAAA1sN,SACA+5N,GAAAhH,GAAAgH,IACAhH,EAAAkF,iBAAA8B,GAGAhH,EAAAl9M,QAFAk9M,EAAAnG,UAAAx5E,IAOA2mF,GAAAhH,EAAAzuN,OAAAquN,GAAAD,GAAAD,MACAsH,EAAArN,EAAAqN,cAAAhH,GAEAhoO,MASAyJ,IAAA,SAAAu+N,GACA,GAAAA,YAAAZ,GACA,MAAAY,EAIA,KAAA,GADAe,GAAA7jO,KAAA6jO,YACA/oO,EAAA,EAAAA,EAAA+oO,EAAAtoO,OAAAT,IACA,GAAA+oO,EAAA/oO,GAAAqG,QAAA0F,OAAAi8N,EACA,MAAAe,GAAA/oO,EAGA,OAAA,OASAkM,IAAA,SAAA87N,GACA,GAAAnJ,EAAAmJ,EAAA,MAAA9iO,MACA,MAAAA,KAIA,IAAA+pO,GAAA/pO,KAAAuE,IAAAu+N,EAAA3hO,QAAA0F,MASA,OARAkjO,IACA/pO,KAAAwJ,OAAAugO,GAGA/pO,KAAA6jO,YAAAtnO,KAAAumO,GACAA,EAAA3H,QAAAn7N,KAEAA,KAAAikO,YAAA/pH,SACA4oH,GAQAt5N,OAAA,SAAAs5N,GACA,GAAAnJ,EAAAmJ,EAAA,SAAA9iO,MACA,MAAAA,KAMA,IAHA8iO,EAAA9iO,KAAAuE,IAAAu+N,GAGA,CACA,GAAAe,GAAA7jO,KAAA6jO,YACAvmO,EAAAyI,EAAA89N,EAAAf,IAEA,IAAAxlO,IACAumO,EAAA9nO,OAAAuB,EAAA,GACA0C,KAAAikO,YAAA/pH,UAIA,MAAAl6G,OASAuG,GAAA,SAAAuB,EAAA+R,GACA,GAAA/R,IAAA1I,GAGAya,IAAAza,EAAA,CAIA,GAAAxB,GAAAoC,KAAApC,QAKA,OAJAyD,GAAAm5N,EAAA1yN,GAAA,SAAAjB,GACAjJ,EAAAiJ,GAAAjJ,EAAAiJ,OACAjJ,EAAAiJ,GAAAtK,KAAAsd,KAEA7Z,OASA8G,IAAA,SAAAgB,EAAA+R,GACA,GAAA/R,IAAA1I,EAAA,CAIA,GAAAxB,GAAAoC,KAAApC,QAQA,OAPAyD,GAAAm5N,EAAA1yN,GAAA,SAAAjB,GACAgT,EAGAjc,EAAAiJ,IAAAjJ,EAAAiJ,GAAA9K,OAAAgK,EAAAnI,EAAAiJ,GAAAgT,GAAA,SAFAjc,GAAAiJ,KAKA7G,OAQAmlC,KAAA,SAAAt+B,EAAA3E,GAEAlC,KAAAmB,QAAAooO,WACAlF,GAAAx9N,EAAA3E,EAIA,IAAAtE,GAAAoC,KAAApC,SAAAiJ,IAAA7G,KAAApC,SAAAiJ,GAAAhL,OACA,IAAA+B,GAAAA,EAAArC,OAAA,CAIA2G,EAAA/B,KAAA0G,EACA3E,EAAAqsB,eAAA,WACArsB,EAAAm8N,SAAA9vM,iBAIA,KADA,GAAAzzB,GAAA,EACAA,EAAA8C,EAAArC,QACAqC,EAAA9C,GAAAoH,GACApH,MAQAk4M,QAAA,WACAhzM,KAAAwrE,SAAA04J,GAAAlkO,MAAA,GAEAA,KAAApC,YACAoC,KAAAy8N,WACAz8N,KAAAuhB,MAAAyxL,UACAhzM,KAAAwrE,QAAA,OAyCApwB,GAAAwoL,IACAvH,YAAAA,GACAmE,WAAAA,GACAjE,UAAAA,GACAC,aAAAA,GAEA2F,eAAAA,GACAO,YAAAA,GACAD,cAAAA,GACAD,YAAAA,GACAoF,iBAAAA,GACArF,gBAAAA,GACAyH,aAlrCA,GAorCAnL,eAAAA,GACAC,eAAAA,GACAC,gBAAAA,GACAC,aAAAA,GACAC,eAAAA,GACAyF,qBAAAA,GACAC,mBAAAA,GACAC,cAAAA,GAEAb,QAAAA,GACA7I,MAAAA,EACAsG,YAAAA,EAEA7F,WAAAA,EACAG,WAAAA,EACAL,kBAAAA,EACAI,gBAAAA,EACAiE,iBAAAA,EAEAoC,WAAAA,EACAa,eAAAA,EACAkH,IAAAxG,GACAyG,IAAAlH,GACAmH,MAAA3G,GACA4G,MAAAjH,GACAkH,OAAA9G,GACA+G,MAAAlH,GAEA78N,GAAAg0N,EACAzzN,IAAA2zN,EACAp5N,KAAAA,EACA4C,MAAAA,GACAiE,OAAAA,GACAkzC,OAAAA,GACA0+K,QAAAA,EACAJ,OAAAA,EACAn0L,SAAAA,SAKA,KAAAxlC,EAAAA,EAAA,mBAAAkJ,MAAAA,SACA26N,OAAAA,GAEA,kBAAAhqO,SAAAA,OAAA6F,IACA7F,OAAA,cAAA,WACA,MAAAgqO,MAEA,mBAAAllO,SAAAA,OAAAF,QACAE,OAAAF,QAAAolO,GAEA7jO,EAAA,OAAA6jO,IAGA7jO,OAAAF,UAEA,SAAAD,GCnlFA,kBAAAhG,SAAAA,OAAA6F,IACA7F,OAAA,iBAAA,SAAA,YAAAgG,GACA,gBAAApB,SACAoB,EAAAjG,QAAA,UAAAA,QAAA,aAEAiG,EAAAF,OAAAkkO,SAEA,SAAA1/L,EAAA0/L,GACA,QAAA2G,GAAA5+M,EAAAxqB,GACA,GAAA0lG,GAAA3iE,EAAAvY,EACAk7E,GAAA3kG,KAAA,WACA2kG,EAAA3kG,KAAA,SAAA,GAAA0hO,GAAA/8H,EAAA,GAAA1lG,IAIA+iC,EAAAx9B,GAAA8jO,OAAA,SAAArpO,GACA,MAAAnB,MAAAqB,KAAA,WACAkpO,EAAAvqO,KAAAmB,MAKAyiO,EAAAG,QAAAjmO,UAAAqnC,KAAA,SAAAslM,GACA,MAAA,UAAAtqO,EAAA+B,GACAuoO,EAAAvwO,KAAA8F,KAAAG,EAAA+B,GACAgiC,EAAAlkC,KAAAwrE,SAAAz7C,SACA5vB,KAAAA,EACAokO,QAAAriO,MAGA0hO,EAAAG,QAAAjmO,UAAAqnC,QClBAvrC,OAAA,8BAAA,4BAAA,SAAA,gBAAA,YAAA,SAAA6rC,EAAAvB,EAAAwmM,EAAA9G,GA4EA,MA1EA,UAAAjrI,EAAAolG,GAGA,YADA/9L,KAAAo5F,WAAA,iBA0EAx/F,OAAA,kDAAA,sBAAA,SAAA0tM,GC1EA,OAdAqjC,kBAAA,SAAA7rO,GAEAwoM,EAAAiB,WAAA,SAAA7iK,GAEA,GAAAklM,KACAA,GAAAllM,CAEA,IAAA0+G,GAAA,GAAA7sI,MAAAmuB,EAAAmlM,gBAAAjiC,UACAgiC,GAAAE,eAAA1mF,EAAA2mF,YAAA3mF,EAAA2mF,cAAA3mF,EAAArvI,WAEAjW,EAAA8rO,SAOAhxO,OAAA,gCCnBA,iCACA,4BACA,iBACA,SACA,YACA,gBACA,QACA,YACA,WACA,cACA,YACA,yBACA,yDACA,0DACA,wDACA,kEACA,YACA,aACA,aACA,4BACA,mCACA,aACA,iCACA,qBACA,4BACA,0CAEA,SACAoxO,EACAvlM,EACA6sL,EACApuL,EACAoxK,EACA8D,EACAtgJ,EACAi9J,EACA7Z,EACAU,EACAmI,EACAwN,EACA0Y,EACAC,EACAC,EACAC,EACAC,EACA/V,EACAhJ,EACAgf,EACAC,EACAC,EACAC,EACAnkC,EACA5mG,EACA/F,GAqFA,QAAA+wI,GAAAvhG,GAEA,GAAAwhG,GAAAznM,EAAA,qBACAynM,GAAApwO,OACAowO,EAAA70N,KAAAqzH,GAEAjmG,EAAA,uCAAApS,YAAA,WAAAhb,KAAAqzH,GAxFA,GAAA6rF,OAAA52N,GAGAwsO,MAAAxsO,GAGAwhG,MAAAxhG,GACAw/I,MAAAx/I,GAGAysO,MAAAzsO,GAIA0sO,MAAA1sO,GAOA2sO,GAFAlsO,SAAAwK,gBAEA,WACA,MAAA,8CAGA2hO,EAAA,SAAAprI,GAEA,IAAAA,EACA,MAAAA,EAGA,IAAA,GAAAA,EAAArjG,QAAA,QACA,MAAAqjG,EAGA,IAAAqrI,GAAA,GAAArrI,EAAArjG,QAAA,SAYA2uO,EAAA,GAAAhtN,QAAA,qBAAA,MAEAitN,EACApsO,OAAAwkB,SACAxkB,OAAAwkB,SAAAwX,SACA,KACAh8B,OAAAwkB,SAAA+1C,UACAv6D,OAAAwkB,SAAAi2C,KAAA,IAAAz6D,OAAAwkB,SAAAi2C,KAAA,IACAz6D,OAAAwkB,SAAAq4C,aACAx9D,EAuBA,OArBA+sO,KACA5kM,QAAAE,IAAA,sBAAAm5D,GACAr5D,QAAAE,IAAA,YAAA0kM,GAEAvrI,EAAAA,EAAAjlG,QAzBA,WAMA,kBAoBAilG,EAAAA,EAAAjlG,QAzBA,YAMA,mBAuBAilG,EAAA,GAAA9nC,GAAA8nC,GAAAz7B,WAAAgnK,GAAAp3N,WACA,GAAA6rF,EAAArjG,QAAA,QACAqjG,GAAAqrI,EAAA,SAAA,SAAArrI,GAKAA,EAAAA,EAAAjlG,QAAAuwO,EAAA,UAEA3kM,QAAAE,IAAA,6BAAAm5D,IAGAA,GAaAwrI,MAAAhtO,GACA22I,EAAA,SAAAz3C,GAEA03H,GACAA,EAAAr9H,OAAAo9C,kBAAAz3C,IAIA+tI,EAAA,SAAAjZ,EAAAh3F,GAEA45F,EAAA9tB,oBAEAtnG,EAEA,SAAAl0B,EAAAvrE,GAEA,IAAAurE,EAUA,MARAnlC,SAAAjzB,MAAA,wBAAAsqI,GAEA+7D,GAAA,GACA+wB,EAAA9sF,OAEAmmE,GAAAG,qBAAAtI,EAAAuI,iBAAAvmE,EAMAitF,GAAAn/J,EACAm/J,EAAA9xC,mBAAA,SAAApqD,GACA28F,EAAA38F,KAGA48F,SAAAvW,EAAAr9H,OAAAk9C,2BAGA61F,EAFAvqO,EAAA+vI,SAEA/G,OAEAjmG,EAAA,kBAAAP,OAAA,SACAO,EAAA,mBAAAP,OAAA,QACA,IAAA6oM,GAAAtoM,EAAA,qBACAsoM,GAAA39N,OACA,IAAAoyH,GAAA,QAAA4qG,EAAAjzC,6BACA4zC,GAAAl7M,OAAA85M,GAAAvZ,QAAAjV,EAAA6W,QAAA1O,EAAArZ,SAAA4gB,EACAmgB,8BAAAxrG,KAEA/8F,EAAA,kBAAA39B,GAAA,QAAAmmO,IACAxoM,EAAA,mBAAA39B,GAAA,QAAAomO,GACAzoM,EAAA,kBAAAxT,WAAA,WACAwT,EAxHA,6CAwHA+uK,QAAA,aAEA/uK,EAAA,mBAAAxT,WAAA,WACAwT,EA3HA,6CA2HA+uK,QAAA,cAGA72E,IAIAu+E,EAAA,SAAAp0M,GAEA,GAAAA,EAAA,CAEA,GAAAwvN,EAAA6W,UAAA7W,EAAA8W,WAAA,MAEA9W,GAAA6W,UAAA,EAEAttO,WAAA,WAEA,GAAAy2N,EAAA+W,cAKA,MAFA/W,GAAA6W,UAAA,OACA7W,EAAA+W,eAAA,EAIA/W,GAAA8W,YAAA,EACA9W,EAAApb,KAAAz2K,EAAA,iBAAA,IAEA6xL,EAAA6W,UAAA,GAEA,SAGA7W,GAAA8W,YAGA9W,EAAA9kN,OACA8kN,EAAA8W,YAAA,GAEA9W,EAAA6W,WAGA7W,EAAA+W,eAAA,IAKAC,EAAA,WAEAC,GAEA,IAEAv2F,GAFAw2F,EAAA/oM,EAAA,kBACA50B,EAAA29N,EAAAxzM,SAAA,cAMA,IAJAu8L,EAAAr9H,OAAAi8C,uBAAAg3F,IACAn1F,EAAA57G,KAAAC,MAAAk7L,EAAAr9H,OAAA6vB,wBAGAl5G,EAAA,CACA29N,EAAA5zM,YAAA,cAGA,IAAA6zM,GAAAhpM,EAAA,qCACAgpM,GAAA3xO,OAAA,GACA2xO,EAAA,GAAAt0N,aAAA,WAAA,MAGAtZ,WAAA,WAAA4kC,EAAA,YAAA,GAAAzf,SAAA,SAGAwoN,GAAAj0M,SAAA,eAEA15B,WAAA,WAAA4kC,EAAA,kCAAA,GAAAzf,SAAA,IAGAmnN,GACAuB,EAAA,MAAA,GACAnX,EAAAr9H,OAAAi8C,sBAEAohF,EAAAr9H,OAAAi8C,qBAAA6B,IASA22F,EAAA,WACAlpM,EAAA,iBAAAr3B,QAEAwgO,EAAA,WACA,GAAAvqO,GAAAkzN,EAAAr9H,OAAAwvB,cACAjkF,GAAA,uBAAA93B,IAAAN,KAAAm1C,MAAAn+C,GAAA,MAGAwqO,EAAA,WACAppM,EAAA,iBAAA50B,QAGAg9N,EAAA,SAAA38F,GAEA,GAAAA,EAAA,CACAzrG,EAAA,SAAAyrG,GAAAnmI,QAEA,IAAA+jO,GAEAC,EAAAtpM,EAAA,MAAAyrG,EACAr5H,OAAAxY,UAAA66C,MAAAz+C,KAAAszO,EAAA,SAAAC,GACA,MAAA,OAAAA,EAAAC,eAAA,+BAAA,UACAH,EAAAE,GACA,IAQA,KAHA,GAAAE,IAAA,EACAC,EAAAL,EAEAK,GAAAA,EAAAF,gBACA,CACA,GAAAzsO,GAAA2sO,EAAAF,eAAA,+BAAA,QAAAE,EAAAvrO,aAAA,MAEA,IAAApB,GAAA,QAAAA,EACA,CACA0sO,GAAA,CACA,OAEAC,EAAAA,EAAAjkO,WAGA,GAAA+vL,GAAA6zC,GAAArpM,EAAAqpM,GAAApkO,QAAA+6B,EAAA,OAAAyrG,GAAAxmI,QAAA+6B,EAAAyrG,GAAAxmI,OACA0kO,EAAAhC,EAAAryC,QAEA,IAAAE,GAAAA,EAAAn+L,OACA,CACA,GAAAuyO,GAAA5pM,EAAAw1J,EASAx1J,GAAA,SAAA4pM,GAAAtkO,SAEA06B,EAAA,qBAAA5S,OAAAw8M,GAEAH,IAEAG,EAAA,GAAAC,eAAA,+BAAA,MAAA,OACAD,EAAA,GAAAtqO,MAAA6zC,UAAA,MAIAnT,GAAA,2BACA7iC,KAAA,WACA6iC,EAAAlkC,MAAAuiB,KAAA,WAAA,MACA2hB,EAAAlkC,MAAAuG,GAAA,QAAA,SAAAM,GAGA,GAAAmnO,GAAA9pM,EAAA,qCACA8pM,GAAAzyO,OAAA,GAAAyyO,EAAA,KAAAnnO,EAAA+L,QAEAo7N,EAAAzrN,KAAA,WAAA,MAGA1b,EAAA+L,OAAAgG,aAAA,WAAA,eAMA,CACA,GAAAi1N,GAAAhC,EAAAryC,QAEAt1J,GAAA,qBAAA5S,OAAA,MAAAu8M,GAGA,GAAAI,IAAA,EAEAC,MAAA9uO,EAGA42N,GAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAI,iBAAA,WACAT,EAAAqB,SAAA,mBAAA,KAAA,iBACAumM,MAIArX,EAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAO,4BAAA,SAAAk+D,EAAAW,GAEAz/D,EAAAqB,SAAA,8BAAA,KAAA,mBAAAo+D,EAAAvgF,KAAA,MACAwpN,MAIAnY,EAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAQ,wBAAA,SAAAi+D,EAAAW,GAEAz/D,EAAAqB,SAAA,0BAAA,KAAA,mBAAAo+D,EAAAvgF,KAAA,MAEAqxM,EAAAr9H,OAAAk9C,2BAIAu3F,IAGAE,IAIA/oI,EAAAhiF,KAAA,QAAA,QACAgiF,EAAAhiF,KAAA,aAAA,QAEA2rN,EAAA3pI,EAAA,KAGAyxH,EAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAE,mBAAA,SAAAkuG,GAeA,GAbAzuG,EAAAqB,SAAA,qBAAA,KAAA,iBAEAslM,IAEAr2F,EAAAq2F,GACAA,MAAAhtO,IAGA+uO,IACAC,EAAAl6F,GAEAymE,GAAA,GAEAszB,EAAA,CACAA,GAAA,CAEA,KAEA,GAAA7jO,OAAAhL,GACAosE,MAAApsE,GAEAT,EAAAu1I,EAAA9wB,SACA,IAAAzkH,EAiCA,CACAyL,EAAA85B,EAAA,6BAAA,EACA,IAAAt7B,IAAAwB,EAAAo8F,eAAAp8F,EAAAE,iBAAAzK,QACA2rE,GAAA5iE,EAAA0P,eAAA3Z,GACA6sE,IAEAphE,EAAA85B,EAAA,6BAAA,MAGAt7B,GAAAwB,EAAAo8F,eAAAp8F,EAAAE,iBAAAzK,UACA2rE,EAAA5iE,EAAA0P,eAAA3Z,MAGAyL,MAAAhL,SA7CA,CACA,GAAAq3I,GAAA57G,KAAAC,MAAAk7L,EAAAr9H,OAAA6vB,sBAGA,IAAA0rB,EAAAhvC,YAEA15B,EAAAwqJ,EAAAr9H,OAAAgb,gBAAAugC,EAAAhvC,UAAAv4B,MAAA8pE,EAAA77C,YACA,aAAA,wBAEA,oBACApvB,EAAAA,EAAA,IAGA,CACAphE,EAAA85B,EAAA,6BAAA,EACA,IAAAt7B,IAAAwB,EAAAo8F,eAAAp8F,EAAAE,iBAAAzK,QACA2rE,GAAAxlE,gBAAA4C,IAEAwB,EAAA85B,EAAA,6BAAA,MAGAt7B,GAAAwB,EAAAo8F,eAAAp8F,EAAAE,iBAAAzK,SACA2rE,EAAAxlE,gBAAA4C,IAEAwB,MAAAhL;kCA2BAgL,IAEAA,EAAA8jO,GAaA,MAAAzvO,QAMAylC,EAAA,qBAAA39B,GAAA,QAAA,IAAA,SAAA9H,GAEA,IACAk8M,GAAA,EAEA,IAAAh2L,GAAAuf,EAAAlkC,MAAAuiB,KAAA,OAGA0rN,IAAA,EAEAjY,EAAAr9H,OAAAgmC,eAAAh6G,EAAAkpN,MAAAzuO,IAEAwsO,IACA1nM,EAAA,gBAAA7K,YAAA,eACA2zM,KAEA,MAAA1mO,GAEAihC,QAAAjzB,MAAAhO,GAEA,QAGA,OAAA,KAGA49B,EAAA,qBAAA3S,QAAA,sFAAAqrL,EAAAwQ,WAAA,IAAAxQ,EAAAljB,IAAA,YAAAkjB,EAAAwQ,WAAA,IAAAxQ,EAAAljB,IAAA,sDACAx1J,EAAA,kCAAA39B,GAAA,QAAA,WAYA,MAXAwmO,MAWA,GAWA7oM,GAAA,qBAAAynK,QAAA,SAAA9kM,GACA,GAAAqgB,GAAA,KACAmnN,EAAAxnO,EAAA+L,MACA,QAAA/L,EAAA4G,OACA,IAVA,IAYAyZ,EAAAgd,EAAA,2BAAA,EACA,MAEA,KAhBA,IAkBAhd,EAAAgd,EAAA,uBAAAtuB,OAAA,EACA,MAEA,KAhBA,IAiBA,GAAA,UAAAy4N,EAAAjiK,QAAA,CACA,GAAA8gK,GAAAhpM,EAAA,qCAEAhd,GADAgmN,EAAA3xO,OAAA,EACA2xO,EAAA,GAGAhpM,EAAA,2BAAA,OAEA,CAEA,GAAAunK,GAAAvnK,EAAA,uBACA5mC,EAAA4mC,EAAA,oBAAA5mC,MAAA,sBAEAA,IAAA,GAAAA,EAAAmuM,EAAAlwM,OAAA,IACA2rB,EAAAukL,EAAAlnM,IAAAjH,EAAA,IAGA,KAEA,KAtCA,IAwCA,GAAAmuM,GAAAvnK,EAAA,uBACA5mC,EAAA4mC,EAAA,oBAAA5mC,MAAA,sBACAA,IAAA,GAAAA,EAAA,IACA4pB,EAAAukL,EAAAlnM,IAAAjH,EAAA,GAEA,MAEA,SACA,OAEA4pB,IACArgB,EAAA0nB,iBACAjvB,WAAA4nB,EAAAzC,QAAA,OAMA6pN,EAAA,WAEAhZ,EAAAzwM,SAEAywM,EAAAlnN,UAGAmgO,EAAA,mBAAArrC,SAAAA,OAAAsrC,KACAtrC,OAAAsrC,IAAAzuO,QAAAmjM,OAAAsrC,IAAAzuO,OAAAgU,OAEAuhN,GAAAzwM,UACA0pN,IACAjZ,EAAAM,SAAA,SAAAn3N,GACAykM,OAAAsrC,IAAAzuO,OAAAgU,UAAA4hN,gBACAzyB,OAAAsrC,IAAAzuO,OAAAgU,UAAA06N,YAKAnZ,EAAAM,SAAA,SAAAn3N,GACA,GAAAiwO,EAEApZ,GAAAK,cAEA+Y,EAAA9xB,EAAAqR,gBAAA,KAAA3B,EAAAyB,iBAAA,IACA7pL,EAAA,8BAAA7K,YAAA,yBACA6K,EAAA,8BAAAlL,SAAA,0BACAkL,EAAA,yBAAA3hB,KAAA,aAAAmsN,GACAxqM,EAAA,yBAAA3hB,KAAA,QAAAmsN,KAIAA,EAAA9xB,EAAAoR,iBAAA,KAAA1B,EAAAyB,iBAAA,IACA7pL,EAAA,8BAAA7K,YAAA,0BACA6K,EAAA,8BAAAlL,SAAA,yBACAkL,EAAA,yBAAA3hB,KAAA,aAAAmsN,GACAxqM,EAAA,yBAAA3hB,KAAA,QAAAmsN,MAKA,IAuCAC,GAvCA3B,EAAA,WACAG,KAGAyB,EAAA,WAGA,GAFAD,EAAA,MAEA/C,GAAA1nM,EAAA,kBAAAzK,SAAA,eAEA,WADA0zM,IAIA,IAAA0B,GAAAhvO,SAAAyY,eAAA,aACA,IAAAzY,SAAAwG,cAAA,CAEA,GADA3G,OAAAoF,SAAA+pO,EAAAhvO,SAAAwG,eAGA,WADA8mO,KAQA,MAHAjpM,GAAA2qM,GAEAjxN,KAAA,UAAAriB,OAAA,MAEA4xO,KAIAjpM,EAAA,gBAAAzK,SAAA,sBACA0zM,MAIAjpM,EA1mBA,6CA0mBA+uK,QAAA,eAEA/uK,GAAArkC,SAAAkK,MAAAivB,SAAA,aAKAm0M,EAAA,SAAA1uO,EAAAo1F,GAKA86I,IACA5uO,OAAA43B,aAAAg3M,GACAA,EAAA,OAEAzqM,EAAA,kBAAAzK,SAAA,gBAAAyK,EAAArkC,SAAAkK,MAAA0vB,SAAA,YACAyK,EAAArkC,SAAAkK,MAAAsvB,YAAA,WAEAw6D,EACA+6I,IAGAD,EAAA5uO,OAAAT,WAAAsvO,EAAA,MAQAR,EAAA,SAAAl6F,GACAA,EAAAzpC,eAAAjP,YACAt3D,EAAA,kBAAAr3B,OAEAq3B,EAAA,kBAAA50B,OACA4kI,EAAAzpC,eAAA9O,aACAz3D,EAAA,mBAAAr3B,OAEAq3B,EAAA,mBAAA50B,QAGAw/N,EAAA,SAAAr4F,GACA,GAAAA,EAAA9pE,MAAA,CAIA,GAAAiuB,GAAA67C,EAAA77C,UACAA,KACAA,EAAA,KAGA,IAAAm0I,GAAA/Y,EAAAr9H,OAAAoC,QAAA0gC,YAAAgb,EAAA9pE,OAAA2xB,IACA0wI,EAAA,WAAAD,EAAAn0I,EAAA,GAIA,OAAAgtG,WAAAonC,KAGAb,EAAA,WAEA,GAAAc,GAAAjZ,EAAAr9H,OAAA6vB,qBAKA,IAFA0zF,EAAAC,IAAAv9D,EAAAqwF,EAAA/qM,EAAA7tB,OAEAk4N,GACAxuO,OAAAmvO,SAAAnvO,OAAAmvO,QAAAC,aAAA,CAEA,GAAAC,GAAA1uI,EAAAK,oBACAH,EAAAwuI,EAAA,IACA,KAAAxuI,EAAA,MAEAA,GAAAorI,EAAAprI,EACA,IAAA61C,GAAA57G,KAAAC,MAAAm0M,OACAI,EAAAD,EAAA,MAEAE,EAAAR,EAAAr4F,GAEA56G,EAAA6kE,EAAAS,4BAAA/hG,IACAo+I,KAAA58C,EACAyuI,MAAAA,GAAA,IACAzD,SAAA,IACA2D,MAAA1yO,MAAAyyO,GAAA,IAAAztI,UAAA,IAGAqtI,SAAAC,cACA3xF,KAAA58C,EAAAyuI,MAAAA,OAAAjwO,IACA,iBACAy8B,KAKA8wM,EAAA,WAGA,MADA3W,GAAAr9H,OAAAi9C,iBACA,GAGA82F,GAAA,WAGA,MADA1W,GAAAr9H,OAAAg9C,gBACA,GAGA65F,GAAA,WAEAjB,EACArqM,EAAA,kBAAAjhC,IAAA,UAAA,QAEAihC,EAAA,kBAAA39B,GAAA,QAAA,WAEA,GAAA6oO,GAAA1uI,EAAAK,oBACAH,EAAAwuI,EAAA,IACA,IAAAxuI,EAAA,CAEA,GAAA61C,GAAA57G,KAAAC,MAAAk7L,EAAAr9H,OAAA6vB,0BAGA,IAAAwtG,EAAAr9H,OAAAW,QAAAm7B,WAAA,CACA,GAAAg7G,GAAA3jO,KAAAo/B,MAAA,IAAAp/B,KAAAoK,UAEAw5N,EAAA1Z,EAAAr9H,OAAAW,QAAAm7B,WAAAk7G,sBAAAF,EAAA,iBACAC,KACApwO,WAAA,WACA02N,EAAAr9H,OAAAW,QAAAm7B,WAAAG,gBAAA66G,IACA,KAEAloM,QAAAE,IAAA,8BACAsuG,EAAA25F,GACAj5F,EAAA77C,WAAA80I,EAAA90I,YAIAgG,EAAAorI,EAAAprI,EAEA,IAAA/kE,GAAA6kE,EAAAS,4BAAA/hG,IACAo+I,KAAA58C,EACAyuI,MAAA,IACAzD,SAAA,IACA2D,MAAA1yO,MAAAiyO,EAAAr4F,GAAA50C,UAAA,KAGA+tI,EAAA,SAAAhxO,GACA,GAAA4E,GAAA,oSAAA5E,EAAA,KAEAixO,EAAA3rM,EAAA,4BAKA,OAJA2rM,IAAAA,EAAA,IACAA,EAAAttN,KAAA,QAAA/e,GAGAA,GAGAssO,MAAA1wO,EACA,KACA,GAAA2wO,GAAA/Z,EAAAluB,+BAEAkoC,EAAAnE,EAAA1yC,cAAAyH,UACA,IAAAovC,EAAA,CACA,GAAAC,GAAAF,EAAA7nD,6CAAA8nD,GACAE,EAAA,IAAAD,CAEAF,GAAA75C,qCAEA65C,EAAAtnD,mCAAAynD,EAAA,OAAA,SAAA/tK,GACA,GAAAA,EACA,IACA,GAAAguK,GAAApwO,OAAAs6F,IAAA2uF,gBAAA7mH,EACAytK,GAAAO,GACA,MAAA7pO,GAEAihC,QAAAjzB,MAAAhO,KAGA,SAAAA,GAEAihC,QAAAjzB,MAAAhO,KAGAwpO,EAAAC,EAAAjxF,uBAAAoxF,GAGA,MAAA5pO,GAEAihC,QAAAjzB,MAAAhO,GAGA,GAAA8pO,GAAA,EACAN,KACAM,EAAA,WAAAR,EAAAE,GAAA,MAKA/qB,EAAAY,mBAAA/I,EAAAyzB,UAAAnsM,EAAA,wCAAA04K,EAAA0zB,gBAAA,+GAAAz0M,EAAA,iFAAAu0M,EAAA,aAEA9wO,WAAA,WACA4kC,EAAA,8BAAAzf,QAAAtL,UACA,QAKA+qB,EAAA,qBAAA39B,GAAA,QAAA,WACAyvN,EAAAr9H,OAAAW,QAAAm7B,WAAAk7G,sBAAA7jO,KAAAo/B,MAAA,IAAAp/B,KAAAoK,UAAA,mBAGA,IAAAq6N,GAAA,WAEA,MAAA1wO,UAAAwG,gBAEAxG,SAAAwG,gBAAAxG,SAAAyY,eAAA,wBACAzY,SAAAwG,gBAAAxG,SAAAyY,eAAA,sBACAzY,SAAAwG,gBAAAxG,SAAAyY,eAAA,sBACA5Y,OAAAoF,SAAAjF,SAAAyY,eAAA,gBAAAzY,SAAAwG,gBACA3G,OAAAoF,SAAAjF,SAAAyY,eAAA,mBAAAzY,SAAAwG,iBASAmqO,EAAA,YACA5E,GAAA1nM,EAAA,kBAAAzK,SAAA,iBAGAm1M,IACA/uO,SAAAwG,eAAAxG,SAAAwG,cAAA2pB,QAEAkU,GAAA,oBAAA39B,GAAA,QAAAiqO,GACAlkB,EAAA/lN,GAAA+lN,EAAAuB,YAAA,SAAA2iB,EAEA,IAAAC,GAAA,WACAvsM,EAAA,eAAA,GAAAzf,QACAuoN,IACA1tO,WAAA,WAAA4kC,EAAA,eAAA,GAAAzf,SAAA,IAEAyf,GAAA,oBAAA39B,GAAA,QAAAkqO,GACAnkB,EAAA/lN,GAAA+lN,EAAAqB,YAAA,SAAA8iB,GAEAnkB,EAAA/lN,GAAA+lN,EAAAe,aAAA,SAAA,WACAkjB,KAAA7D,OAGApgB,EAAA/lN,GAAA+lN,EAAAmB,gBAAA,SAAAif,IAEApgB,EAAA/lN,GAAA+lN,EAAAoB,YAAA,SAAAif,GAEArgB,EAAA/lN,GAAA+lN,EAAAiB,SAAA,SAAA,WACAgjB,KAAA5D,MAGArX,EAAAzwM,SACAynM,EAAA/lN,GAAA+lN,EAAAyB,iBAAA,SAAAugB,GACApqM,EAAA,yBAAA39B,GAAA,QAAA+nO,IAEApqM,EAAA,yBAAAjhC,IAAA,UAAA,OAIA,IAAAytO,GAAA,WAEAxsM,EAAA,QAAA3hB,KAAA,aAAA,UAEA,IAAA6sN,GAAA1uI,EAAAK,oBAEA4vI,EAAAvB,EAAA,KAEAlrM,GAAAnkC,QAAAiqB,eAAA,cAAA2mN,GAIArkB,GAAA/lN,GAAA+lN,EAAA4B,gBAAA,SAAAwiB,GAEAxsM,EAAA,iBAAA39B,GAAA,QAAA,WAEA,MADAmqO,MACA,IAGAxsM,EAAA,uBAAA39B,GAAA,QAAA,WACA,IAAAvG,KAAA8kB,SAEA,MADA9kB,MAAAykB,SACA,IAIA6nM,EAAA/lN,GAAA+lN,EAAA8B,kBAAA,SAAA,WAEAlqL,EAAA,kBAAAzK,SAAA,eAOAn6B,WAAA,WAAA4kC,EAAA,kCAAA,GAAAzf,SAAA,KAJAsoN,MAQA7oM,EAAA,aAAA39B,GAAA,QAAAwmO,EAEA,IAAA6D,GAAA,WACA,GAAAC,GAAA3sM,EAAArkC,SAAAkK,MAAA4D,SAAAu2B,EAAA,kBAAA,GAAAo+D,SACAp+D,GAAA,kBAAAv2B,OAAAkjO,GACA3sM,EAAA,qBAAAv2B,OAAAkjO,GAGAvkB,GAAA/lN,GAAA+lN,EAAAU,kBAAA,SAAA,WAAA9oL,EAAA,oBAAAsrK,MAAA,UAEAtrK,EAAA,eAAA39B,GAAA,YAAA4mO,GAEAjpM,EAAAnkC,QAAAwG,GAAA,SAAAqqO,GACAA,IACAzD,KAOA2D,GAAA,SAAAryO,GAMA,MALAu3N,GAAAr9H,OAAAovB,SAAAvkH,MAAA,eACA0gC,EAAA,gBAAA7K,YAAA,eACA6K,EAAA,oBAAAlL,SAAA,eACAkL,EAAA,uBAAAlqC,KAAA,YAAA,GACAkqC,EAAA,mBAAAqpK,SAAA,WACA,GAGAwjC,GAAA,SAAAtyO,GAMA,MALAu3N,GAAAr9H,OAAAovB,SAAAvkH,MAAA,cACA0gC,EAAA,gBAAA7K,YAAA,eACA6K,EAAA,mBAAAlL,SAAA,eACAkL,EAAA,uBAAAlqC,KAAA,YAAA,GACAkqC,EAAA,mBAAAqpK,SAAA,WACA,GAGAyjC,GAAA,SAAAvyO,GAKA,MAJAylC,GAAA,uBAAAlqC,KAAA,YAAA,GAAAyqB,QACAyf,EAAA,gBAAA7K,YAAA,eACA6K,EAAA,gBAAAlL,SAAA,eACAkL,EAAA,mBAAAqpK,SAAA,WACA,GAGA0jC,GAAA,kBACAC,GAAA,SAAAzyO,GACA,GAAAgS,GAAAyzB,EAAA,uBAAA93B,MACAP,EAAAolO,GAAA1tO,KAAAkN,EACA,IAAA5E,EAAA,CACA,GAAAslO,GAAA/kM,OAAAvgC,EAAA,IAAA,GACAmqN,GAAAr9H,OAAAovB,SAAAvkH,MAAA,OAAAV,MAAAquO,QAGA9D,MAIA+D,GAAA,WACAltM,EAAA,mBAAA16B,QACA,IAAAyjO,GAAA/oM,EAAA,iBACA+oM,GAAAp+N,QACAo+N,EAAA37M,OAAA65M,GAAAtZ,QAAAjV,EAAA6W,QAAA1O,EAAArZ,SAAA4gB,KACApoL,EAAA,OAAAr1B,QACAq1B,EAAA,OAAA3hB,KAAA,aAAAq6L,EAAAy0B,cACAntM,EAAA,OAAA5S,OAAA45M,GAAArZ,QAAAjV,EAAA6W,QAAA1O,EAAArZ,SAAA4gB,KACAkjB,KACA3vO,SAAAsqI,MAAA,UACAjmG,EAAA,qBAAA39B,GAAA,QAAAwqO,IACA7sM,EAAA,sBAAA39B,GAAA,QAAAuqO,IACA5sM,EAAA,kBAAA39B,GAAA,QAAAyqO,IACA9sM,EAAA,uBAAA39B,GAAA,SAAA2qO,IAEAv2B,GAAA,IAGA22B,GAAA,SAAApvO,GAEAoqN,EAAAlP,MAAA,UAEAx8G,EAAA1+F,EAAAs7I,KACAoB,EAAAl+C,EAAAC,oBAAAC,GAGAyqI,EAAAxW,UAAA,WACA+W,EAAA1pO,EAAA0pO,SAEAwF,KAGApb,GAAAA,EAAAr9H,SAEAlzD,EAAAqB,SAAA,UAAA,MAAA,iBACAkvL,EAAAr9H,OAAA7xF,OAGA/G,OAAAq6F,aACA30D,EAAAqB,SAAA,iBAAA,MAAA,iBACAszD,WAAAtzF,IAAAszF,WAAAt0D,OAAAa,iBAGArnC,WAAA,WAEAiyO,MACA,IAGAA,GAAA,WAEAhqM,QAAAE,IAAA,kBACAF,QAAAE,IAAA6qL,GAEApW,EAAAE,aAAA,SAAAx9D,GAAA,SAAAliH,GAKAA,EAAAi8D,OAIAj8D,EAAAi8D,OAAA99D,KAAAC,MAAA4B,EAAAi8D,QAFAj8D,EAAAi8D,SAIA,KAAA3+F,OAAAu4N,GAAAE,gBAEAF,EAAAE,gBAAA10N,eAAA/D,QAEA0iC,EAAAi8D,OAAA56F,eAAA/D,WAAA,KAAA0iC,EAAAi8D,OAAA3+F,QACA0iC,EAAAi8D,OAAA3+F,MAAAu4N,EAAAE,gBAAAz4N,OAKAkiN,GAAAC,IAAA,SAAAz/K,EAAAi8D,OAGA,IAAA6uG,IACA77K,GAAA,qBACA+9K,iBAAA4oB,EAAA5oB,iBACA10D,WAAAs9E,EAAAt9E,WACAj3B,MAAAu0G,EAAAv0G,OAGAwpF,GACAxS,UAAAu9B,EAAAv9B,UACAkT,mBAGAqqB,GAAAvqB,kBACAR,EAAAQ,iBAAA,GAGAqkC,MAAAhtO,EACA,IAAAg9H,EACA,IAAA1/F,EAAAkiH,GAAA,CAEA,GAAAnI,GAAA57G,KAAAC,MAAA4B,EAAAkiH,GAEAnI,GAAA57G,KAAAC,MAAA27G,GACAA,GAAAA,EAAA9pE,QAEAyvD,GAAAzvD,MAAA8pE,EAAA9pE,MAAA02C,WAAAozB,EAAA77C,YACArzD,QAAAC,MAAA,4BAAA3M,KAAAuxB,UAAAgwE,KAIA,GAAAgzG,GAAA1uI,EAAAK,oBACAwuI,EAAAH,EAAA,IACA,IAAAG,EAAA,CACAhoM,QAAAE,IAAA,kBAAA8nM,EAEA,KACA,GAAAiC,GACAC,MAAAryO,EAEA,IAAAmwO,EAAAjuO,MAAA,oBAAA,CACA,GAAAowO,GAAAnC,EAAA1zO,MAAA,GAAA,GAAAV,MAAA,IACAq2O,IACA1mH,aAAA4mH,EAAA,GACAruH,WAAAquH,EAAA,QAGAF,GAAA32M,KAAAC,MAAAy0M,EAOAiC,GAAA7kK,MACA6kK,EAAAn2I,mBACAo2I,GAAA9kK,MAAA6kK,EAAA7kK,MAAA0uB,mBAAAm2I,EAAAn2I,oBAEAm2I,EAAAnuH,YAEA+oH,EAAA,GAAAzxI,GAAA62I,EAAA7kK,MAAA6kK,EAAAnuH,YAEAouH,GAAA9kK,MAAA6kK,EAAA7kK,MAAA02C,WAAAmuH,EAAAnuH,aAGAouH,GAAA9kK,MAAA6kK,EAAA7kK,OAGA6kK,EAAAjtG,eAAAitG,EAAA3tI,eACA4tI,GAAAltG,cAAAitG,EAAAjtG,cAAA1gC,eAAA2tI,EAAA3tI,gBAEA2tI,EAAA1mH,eACA2mH,GAAA3mH,aAAA0mH,EAAA1mH,aAAAzH,WAAAmuH,EAAAnuH,aAGAouH,IACAr1G,EAAAq1G,EACAlqM,QAAAC,MAAA,wBAAA3M,KAAAuxB,UAAAgwE,KAEA,MAAA91H,GACAihC,QAAAjzB,MAAAhO,IAIA0vN,EAAA,GAAA1uB,GAAAC,EAAAC,GAEAznM,OAAA4xO,QAAA3b,EAEA57H,WAAA7zF,GAAA6zF,WAAAt0D,OAAAa,eAAA,WACAlB,EAAAqB,SAAA,iBAAA,KAAA,iBAEAS,QAAAE,IAAA,wBAEAuuL,EAAAr9H,OAAAW,QAAAm7B,YAIAuhG,EAAAr9H,OAAAW,QAAAm7B,WAAAr7B,YACAswG,iBAAAlC,EAAAkC,mBAGAssB,EAAAr9H,OAAAW,QAAAm7B,WAAAluH,GAAA,oBAAA,SAAApG,EAAAwsE,EAAA2xB,EAAA3/F,GACA4oC,QAAAC,MAAA,qBAAA7oC,GACAq3N,EAAAr9H,OAAAW,QAAAm7B,WAAAG,gBAAAj2H,MATAulC,EAAA,qBAAAjhC,IAAA,UAAA,QAaA+yN,EAAAr9H,OAAAW,QAAAs4I,SACA5b,EAAAr9H,OAAAW,QAAAs4I,QAAArrO,GAAA,eAAA,SAAAmpE,GACAg7H,MAAAh7H,KAIAsmJ,EAAAr9H,OAAAW,QAAAu4I,aAEA7b,EAAAr9H,OAAAW,QAAAu4I,WAAAtrO,GAAA,mBAAA,SAAA47B,GACA,GAAAA,EACA+B,EAAA,mBAAAjhC,IAAA,QAAAk/B,GAEA+B,EAAA,mBAAAjhC,IAAA,QAAAk/B,EAAA+B,EAAA,mBAAAv5B,WAGAqrN,EAAAr9H,OAAAW,QAAAu4I,WAAAtrO,GAAA,eAAA,SAAA47B,GACA+B,EAAA,eAAAjhC,IAAA,eAAAk/B,GACA+B,EAAA,iBAAAjhC,IAAA,QAAAk/B,QAKA2pM,EAAA,GAAAN,GAAAxV,EAAAr9H,OAAA6uG,EAAA77K,IACAmgN,EAAA1yI,aAEAl1D,EAAAnkC,QAAAwG,GAAA,QAAA,SAAA9H,GAEA,IAAAA,EAAAuwB,SAAA,IAAAvwB,EAAAgP,OAEAu/N,MAIAhX,EAAAr9H,OAAAuwB,uBAAA,UAAA,SAAAzqH,GACA6tN,EAAAj/L,SAAAxtB,SAAAwK,gBAAA5L,EAAAkxB,iBAGAqmM,EAAAr9H,OAAAuwB,uBAAA,QAAA,SAAAzqH,GACA6tN,EAAAj/L,SAAAxtB,SAAAwK,gBAAA5L,EAAAkxB,iBAGAqmM,EAAAr9H,OAAAuwB,uBAAA,QAAA,SAAAzqH,GACAylC,EAAA,iBAAAlL,SAAA,gBACAkL,EAAAnkC,QAAAgwB,QAAA,WAGAimM,EAAAr9H,OAAAuwB,uBAAA,OAAA,SAAAzqH,GACAylC,EAAA,iBAAA7K,YAAA,kBAGAk5L,EAAAiB,WAAAwC,EAAAr9H,QAEAz0D,EAAA,oBAAA39B,GAAA,kBAAA,WAEA+lN,EAAAlP,MAAA,UAEA4vB,IACA1tO,WAAA,WAAA4kC,EAAA,cAAAzf,SAAA,IAEAyf,EAAA,aAAAjM,WAAA,aACAiM,EAAA,cAAAjM,WAAA,eAEAiM,EAAA,oBAAA39B,GAAA,iBAAA,WAEA+lN,EAAAlP,MAAA,YAEAl5K,EAAA,aAAA3hB,KAAA,YAAA+pM,EAAAI,WAAAO,mBACA/oL,EAAA,cAAA3hB,KAAA,YAAA+pM,EAAAI,WAAAS,sBAIAjpL,EAAA,iBAAA39B,GAAA,kBAAA,WACA+lN,EAAAlP,MAAA,UAEA4vB,IACA1tO,WAAA,WAAA4kC,EAAA,eAAAzf,SAAA,MAEAyf,EAAA,iBAAA39B,GAAA,iBAAA,WACA+lN,EAAAlP,MAAA,UAGA,IAAAgW,EACA12L,GAAAi8D,SACAy6H,EAAA12L,EAAAi8D,QAEAizI,EAKA5V,EAAAr9H,OAAA48C,gBACApwC,gBAAA,OACA8U,OAAA,UANAm5G,EAAAA,GAAAb,EAAAE,gBACAF,EAAAY,aAAA6C,EAAAr9H,OAAAy6H,GAUA,IAAA0e,GAAA,WAEAlG,GAEA1vB,EAAA33M,IAAA,SAAA,SAAA63B,GAEAA,IAEAA,KAGA,IAAAw4L,GAAA,gBAAAx4L,EAAAu2L,KACAv2L,GAAAu2L,MAAAiC,EAAA,eAAA,cAGA1Y,EAAAC,IAAA,SAAA//K,GAEAm2L,EAAAY,aAAA6C,EAAAr9H,OAAAv8D,KAIA8H,GAAA,mBAAA39B,GAAA,QAAAurO,GACAxlB,EAAA/lN,GAAA+lN,EAAA+B,WAAA,SAAAyjB,GAEA9b,EAAAr9H,OAAApyF,GAAA6zF,WAAAt0D,OAAAO,4BAAA,SAAAk+D,EAAAW,GACAz/D,EAAAqB,SAAA,8BAAA,KAAA,mBAAAo+D,EAAAvgF,KAAA,MAEAg2L,GAAA,KAGA2wB,EAAAn+N,KAAA6oN,GAEAuV,EAAAp+N,KAAA6oN,GAIAyV,EAAAd,kBAAA,SAAAjlM,GAEAxB,EAAA,kBAAA5S,OAAA25M,GAAA7hC,gBAAAkpB,EAAAlpB,gBAAAyoB,QAAAjV,EAAAkuB,eAAAplM,EAAAolM,eAAAiH,SAAArsM,EAAAmlM,gBAAAmH,UAAAtsM,EAAAssM,UAAAC,SAAAvsM,EAAAwsM,gBAAAC,MAAAzsM,EAAA0sM,gBAGAryO,OAAAmnC,UAAAC,kBAAA/sC,KAAA,oBACA2F,OAAAmnC,UAAAC,kBAAAzB,QAAAA,EAAAmlM,gBAAAhiC,cAEA9oM,OAAAmnC,UAAAC,kBAAA6uL,WAEAj2N,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,aAEAtyO,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAAC,SAAA5sM,EAAAolM,eACA/qO,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAA3sM,QAAAA,EAAAmlM,gBAAAnlM,QACA3lC,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAAxpC,cAAAnjK,EAAAmlM,gBAAAhiC,cAEA9oM,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAAE,kBAEA,IAAAC,KACAA,GAAAp4O,KAAA,oBACAo4O,EAAAn+C,IAAA3uJ,EAAAmlM,gBAAAx2C,IACAm+C,EAAA3uO,IAAA6hC,EAAAmlM,gBAAAhnO,IACA2uO,EAAA9sM,QAAAA,EAAAmlM,gBAAAnlM,QACA8sM,EAAAC,MAAA/sM,EAAAmlM,gBAAA4H,MACAD,EAAAxpC,OAAAtjK,EAAAmlM,gBAAA7hC,OACAwpC,EAAAE,QAAAhtM,EAAAmlM,gBAAA6H,QACAF,EAAA5pC,UAAAljK,EAAAmlM,gBAAAjiC,UACA4pC,EAAA32M,IAAA,8BAAA22M,EAAAp4O,KAAA,SAAAo4O,EAAAn+C,IACAt0L,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAAE,gBAAAh2O,KAAAi2O,EAEA,IAAAG,KACAA,GAAAv4O,KAAA,aACAu4O,EAAAt+C,IAAA3uJ,EAAAssM,UAAA39C,IACAs+C,EAAA9uO,IAAA6hC,EAAAssM,UAAAnuO,IACA8uO,EAAAjtM,QAAAA,EAAAssM,UAAAtsM,QACAitM,EAAAF,MAAA/sM,EAAAssM,UAAAS,MACAE,EAAA3pC,OAAAtjK,EAAAssM,UAAAhpC,OACA2pC,EAAAD,QAAAhtM,EAAAssM,UAAAU,QACAC,EAAA/pC,UAAAljK,EAAAssM,UAAAppC,UACA+pC,EAAA92M,IAAA,8BAAA82M,EAAAv4O,KAAA,SAAAu4O,EAAAt+C,IACAt0L,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAAE,gBAAAh2O,KAAAo2O,EAEA,IAAAC,KACAA,GAAAx4O,KAAA,oBACAw4O,EAAAv+C,IAAA3uJ,EAAAwsM,gBAAA79C,IACAu+C,EAAA/uO,IAAA6hC,EAAAwsM,gBAAAruO,IACA+uO,EAAAltM,QAAAA,EAAAwsM,gBAAAxsM,QACAktM,EAAAH,MAAA/sM,EAAAwsM,gBAAAO,MACAG,EAAA5pC,OAAAtjK,EAAAwsM,gBAAAlpC,OACA4pC,EAAAF,QAAAhtM,EAAAwsM,gBAAAQ,QACAE,EAAAhqC,UAAAljK,EAAAwsM,gBAAAtpC,UACAgqC,EAAA/2M,IAAA,8BAAA+2M,EAAAx4O,KAAA,SAAAw4O,EAAAv+C,IACAt0L,OAAAmnC,UAAAC,kBAAA6uL,QAAAqc,UAAAE,gBAAAh2O,KAAAq2O,GAMAvG,EAAAjZ,EAAAh3F,QAKAy2G,GAAA,WA2BA,GAzBA7c,GACAA,EAAA1tB,uBAKAyc,EAAAgC,aACAhC,EAAAn/L,QACAse,EAAA,oBAAAsrK,MAAA,QACAtrK,EAAA,iBAAAsrK,MAAA,QACAtrK,EAAA,mBAAA16B,SACA06B,EAAA,eAAAp9B,IAAA,aAGAwlN,EAAAxlN,IAAA,UACAwlN,EAAAxlN,IAAA,YAEAo9B,EAAA,oBAAAp9B,IAAA,mBACAo9B,EAAA,oBAAAp9B,IAAA,kBAEAo9B,EAAA,iBAAAp9B,IAAA,mBACAo9B,EAAA,iBAAAp9B,IAAA,kBAIAkvN,GAAAA,EAAAr9H,OAEA,IACAq9H,EAAAr9H,OAAAg+B,oBACA,MAAArwH,IAMA49B,EAAAnkC,QAAA+G,IAAA,UACAo9B,EAAAnkC,QAAA+G,IAAA,aACAo9B,EAAAnkC,QAAA+G,IAAA,SACAo9B,EAAAnkC,QAAA+G,IAAA,WACA/G,OAAA43B,aAAAg3M,GACAzqM,EAAArkC,SAAAkK,MAAAsvB,YAAA,YACA6K,EAAA,sBAAA16B,SAEA06B,EAAArkC,SAAAkK,MAAAsvB,YAAA,WAcA,QACAy5M,OAZA,SAAA5wO,GAGAg6M,EAAA33M,IAAA,SAAA,SAAA63B,GAEAkwL,EAAAM,cAAAxwL,GAEAk1M,GAAApvO,MAMA6wO,SAAAF,GACA9G,gBAAAA,EACAC,yBAAAA,KAIApyO,OAAA,uCAAA,SAAA,eAAA,6BAAA,SAAAsqC,EAAA8uM,EAAAtyI,GCx7CA,GA1CAx8D,EAAA,WAEA,GAAAkrM,GAAA1uI,EAAAK,mBAIAiyI,GAAAF,OAAA1D,GAEAlrM,EAAArkC,SAAAkK,MAAAxD,GAAA,QAAA,WAEA29B,EAAArkC,SAAAkK,MAAAsvB,YAAA,cAGA6K,EAAArkC,UAAA0G,GAAA,QAAA,SAAA9H,GAEAylC,EAAArkC,SAAAkK,MAAAivB,SAAA,gBAIAkL,EAAArkC,SAAAkK,MAAAkpM,SACAxsM,SAAAusO,EAAAjH,kBACAl8B,UAAA,SAAAU,EAAA/kI,GACA,GAAAynK,GAAA,MAMA,OALA,iBAAAznK,EAAA7sE,GACAs0O,EAAA,QACA,kBAAAznK,EAAA7sE,KACAs0O,EAAA,QAEAA,GAEAvgN,UAAA,SACAnsB,GAAA,kBAAA,SAAA9H,GACAylC,EAAA8uM,EAAAjH,mBAAAvrO,IAAA/B,EAAAmU,QAAAqgM,QAAA,UACA,IAAArgM,GAAAnU,EAAAmU,MACAtT,YAAA,WACA4kC,EAAAtxB,GAAAqgM,QAAA,YACA,OAMAlzM,OAAA+gG,KAEA,CACA,GAAAoyI,GAAAhvM,EAAArkC,SAAAkK,KACAmpO,GAAA3sO,GAAA,WAAA,SAAAq0G,GACAA,EAAApsF,kBACAosF,EAAArsF,iBAGA2kN,EAAAl6M,SAAA,mBAEAk6M,EAAA3sO,GAAA,YAAA,SAAAq0G,GACAA,EAAApsF,kBACAosF,EAAArsF,iBAGA2kN,EAAA75M,YAAA,mBAEA65M,EAAA3sO,GAAA,OAAA,SAAAq0G,GACAA,EAAApsF,kBACAosF,EAAArsF,iBAGA2kN,EAAA75M,YAAA,gBAEA,IAAAouH,GAAA7sC,EAAAhoG,OAAA60I,OAAA7sC,EAAAjrF,cAAAwjN,aAAA1rF,KACA,IAAAA,EAAAlsJ,OAAA,CACA,GAAAiqB,GAAAiiI,EAAA,EACAlgH,SAAAE,IAAA,qBACAF,QAAAE,IAAAjiB,EAAAprB,MACAmtC,QAAAE,IAAAjiB,EAAArlB,MACAonC,QAAAE,IAAAjiB,EAAAse,OAEA,wBAAAte,EAAArlB,MAAA,cAAAzE,KAAA8pB,EAAAprB,QACA44O,EAAAF,QAAAt1F,KAAAh4H,UC7EA7rB,SAAA,iCAAA","file":"readium-js-viewer_all_LITE.js","sourcesContent":["/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\ndefine(\"readium-js-viewer_all_LITE\", function(){});\n\n","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.7'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector === '#' ? [] : selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.7'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.7'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.7'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.7'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.7'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.7'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.7'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.7'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.7'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.7'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n\ndefine(\"bootstrap\", [\"jquery\"], (function (global) {\n return function () {\n var ret, fn;\n return ret || global.bootstrap;\n };\n}(this)));\n\n","/*!\n * jQuery JavaScript Library v2.2.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-05-20T17:23Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\"use strict\";\nvar arr = [];\n\nvar document = window.document;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"2.2.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\tvar realStringObj = obj && obj.toString();\n\t\treturn !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Not own constructor property must be Object\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj, \"constructor\" ) &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype || {}, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf( \"use strict\" ) === 1 ) {\n\t\t\t\tscript = document.createElement( \"script\" );\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\n\t\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t\t// and removal by using an indirect global eval\n\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\n// JSHint would error on this code due to the Symbol not being defined in ES5.\n// Defining this global in .jshintrc would create a danger of using the global\n// unguarded in another place, it seems safer to just disable JSHint for these\n// three lines.\n/* jshint ignore: start */\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n/* jshint ignore: end */\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, nidselect, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rescape, \"\\\\$&\" );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\tnidselect = ridentifier.test( nid ) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = nidselect + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( (parent = document.defaultView) && parent.top !== parent ) {\n\t\t// Support: IE 11\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( document.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\treturn m ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( (oldCache = uniqueCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/ );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && ( pos ?\n\t\t\t\t\tpos.index( cur ) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnotwhite = ( /\\S+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ) ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis === promise ? newDefer.promise() : this,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add( function() {\n\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 ||\n\t\t\t\t( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred.\n\t\t\t// If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) )\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n} );\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n} );\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called\n\t\t// after the browser event has already occurred.\n\t\t// Support: IE9-10 only\n\t\t// Older IE sometimes signals \"interactive\" too soon\n\t\tif ( document.readyState === \"complete\" ||\n\t\t\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\twindow.setTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tregister: function( owner, initial ) {\n\t\tvar value = initial || {};\n\n\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t// use plain assignment\n\t\tif ( owner.nodeType ) {\n\t\t\towner[ this.expando ] = value;\n\n\t\t// Otherwise secure it in a non-enumerable, non-writable property\n\t\t// configurability must be true to allow the property to be\n\t\t// deleted with the delete operator\n\t\t} else {\n\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\tvalue: value,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true\n\t\t\t} );\n\t\t}\n\t\treturn owner[ this.expando ];\n\t},\n\tcache: function( owner ) {\n\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return an empty object.\n\t\tif ( !acceptData( owner ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\t\t\towner[ this.expando ] && owner[ this.expando ][ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase( key ) );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.register( owner );\n\n\t\t} else {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <= 35-45+\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=378607\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data, camelKey;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = dataUser.get( elem, key ) ||\n\n\t\t\t\t\t// Try to find dashed key if it exists (gh-2779)\n\t\t\t\t\t// This is for 2.2.x only\n\t\t\t\t\tdataUser.get( elem, key.replace( rmultiDash, \"-$&\" ).toLowerCase() );\n\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = dataUser.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tcamelKey = jQuery.camelCase( key );\n\t\t\tthis.each( function() {\n\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = dataUser.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdataUser.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf( \"-\" ) > -1 && data !== undefined ) {\n\t\t\t\t\tdataUser.set( this, key, value );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" ||\n\t\t\t!jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() { return tween.cur(); } :\n\t\t\tfunction() { return jQuery.css( elem, prop, \"\" ); },\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([\\w:-]+)/ );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE9\n\toption: [ 1, \"\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE9-11+\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret = typeof context.getElementsByTagName !== \"undefined\" ?\n\t\t\tcontext.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== \"undefined\" ?\n\t\t\t\tcontext.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0-4.3, Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE9\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Support (at least): Chrome, IE9\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t//\n\t\t// Support: Firefox<=42+\n\t\t// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)\n\t\tif ( delegateCount && cur.nodeType &&\n\t\t\t( event.type !== \"click\" || isNaN( event.button ) || event.button < 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== \"click\" ) ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matches } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: ( \"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase \" +\n\t\t\"metaKey relatedTarget shiftKey target timeStamp view which\" ).split( \" \" ),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split( \" \" ),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: ( \"button buttons clientX clientY offsetX offsetY pageX pageY \" +\n\t\t\t\"screenX screenY toElement\" ).split( \" \" ),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX +\n\t\t\t\t\t( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -\n\t\t\t\t\t( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY +\n\t\t\t\t\t( doc && doc.scrollTop || body && body.scrollTop || 0 ) -\n\t\t\t\t\t( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://code.google.com/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi,\n\n\t// Support: IE 10-11, Edge 10240+\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName( \"tbody\" )[ 0 ] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement( \"tbody\" ) ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\n\t// Keep domManip exposed until 3.0 (gh-2225)\n\tdomManip: domManip,\n\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\n\nvar iframe,\n\telemdisplay = {\n\n\t\t// Support: Firefox\n\t\t// We have to pre-define these values for FF (#10227)\n\t\tHTML: \"block\",\n\t\tBODY: \"block\"\n\t};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\tdisplay = jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe || jQuery( \"',\n //\"single_page_frame\" : '
',\n\n \"scrolled_book_frame\": '
',\n \"reflowable_book_frame\": '
',\n \"reflowable_book_page_frame\": '
'\n /***\n * The `enable-annotation` attribute on an iframe helps detect the content frames for annotating tools such as Hypothesis\n * See here for more details:\n * https://h.readthedocs.io/projects/client/en/latest/publishers/embedding/\n * https://github.com/hypothesis/client/pull/533\n ***/\n};\n\n/**\n *\n * @param styles\n * @param $element\n */\nHelpers.setStyles = function (styles, $element) {\n\n var count = styles.length;\n\n if (!count) {\n return;\n }\n\n var stylingGlobal = \"\";\n var stylings = [];\n var elementIsDocument = ($element && $element.createTextNode) ? true : false;\n\n for (var i = 0; i < count; i++) {\n var style = styles[i];\n\n if (elementIsDocument) {\n if (!style.selector || style.selector == \"\" || style.selector == \"html\" || style.selector == \"body\" || style.selector == \"*\") {\n for (var prop in style.declarations) {\n if (style.declarations.hasOwnProperty(prop)) {\n // backgroundColor => background-color\n var prop_ = prop.replace(/[A-Z]/g, function(a) {return '-' + a.toLowerCase()});\n\n stylingGlobal += prop_ + \": \" + style.declarations[prop] + \" !important; \";\n }\n }\n } else {\n //$(style.selector, $($element.doumentElement)).css(style.declarations);\n\n var cssProperties = \"\";\n\n for (var prop in style.declarations) {\n if (style.declarations.hasOwnProperty(prop)) {\n // backgroundColor => background-color\n var prop_ = prop.replace(/[A-Z]/g, function(a) {return '-' + a.toLowerCase()});\n cssProperties += prop_ + \": \" + style.declarations[prop] + \" !important; \";\n }\n }\n\n stylings.push({selector: style.selector, cssProps: cssProperties});\n }\n \n } else { // HTML element\n if (style.selector) {\n $(style.selector, $element).css(style.declarations);\n }\n else {\n $element.css(style.declarations);\n }\n }\n }\n\n if (elementIsDocument) { // HTML document\n\n var doc = $element;\n\n var bookStyleElement = $(\"style#readium-bookStyles\", doc.head);\n\n if (bookStyleElement && bookStyleElement[0]) {\n // we remove before re-adding from scratch\n doc.head.removeChild(bookStyleElement[0]);\n }\n \n var cssStylesheet = \"\";\n\n if (stylingGlobal.length > 0) {\n cssStylesheet += ' body, body::after, body::before, body *, body *::after, body *::before { ' + stylingGlobal + ' } ';\n }\n\n if (stylings.length > 0) {\n for (var i = 0; i < stylings.length; i++) {\n var styling = stylings[i];\n\n cssStylesheet += ' ' + styling.selector + ' { ' + styling.cssProps + ' } ';\n }\n }\n\n if (cssStylesheet.length > 0) {\n\n var styleElement = doc.createElement('style');\n styleElement.setAttribute(\"id\", \"readium-bookStyles\");\n styleElement.appendChild(doc.createTextNode(cssStylesheet));\n\n doc.head.appendChild(styleElement);\n\n //bookStyleElement = $(styleElement);\n }\n }\n};\n\n/**\n *\n * @param iframe\n * @returns {boolean}\n */\nHelpers.isIframeAlive = function (iframe) {\n var w = undefined;\n var d = undefined;\n try {\n w = iframe.contentWindow;\n d = iframe.contentDocument;\n }\n catch (ex) {\n console.error(ex);\n return false;\n }\n\n return w && d;\n};\n\n/**\n *\n * @param $viewport\n * @returns {Globals.Views.ORIENTATION_LANDSCAPE|Globals.Views.ORIENTATION_PORTRAIT}\n */\nHelpers.getOrientation = function ($viewport) {\n\n var viewportWidth = $viewport.width();\n var viewportHeight = $viewport.height();\n\n if (!viewportWidth || !viewportHeight) {\n return undefined;\n }\n\n return viewportWidth >= viewportHeight ? Globals.Views.ORIENTATION_LANDSCAPE : Globals.Views.ORIENTATION_PORTRAIT;\n};\n\n/**\n *\n * @param item\n * @param orientation\n * @returns {boolean}\n */\nHelpers.isRenditionSpreadPermittedForItem = function (item, orientation) {\n\n var rendition_spread = item.getRenditionSpread();\n\n return !rendition_spread\n || rendition_spread == SpineItem.RENDITION_SPREAD_BOTH\n || rendition_spread == SpineItem.RENDITION_SPREAD_AUTO\n || (rendition_spread == SpineItem.RENDITION_SPREAD_LANDSCAPE\n && orientation == Globals.Views.ORIENTATION_LANDSCAPE)\n || (rendition_spread == SpineItem.RENDITION_SPREAD_PORTRAIT\n && orientation == Globals.Views.ORIENTATION_PORTRAIT );\n};\n\nHelpers.CSSTransition = function ($el, trans) {\n\n // does not work!\n //$el.css('transition', trans);\n\n var css = {};\n // empty '' prefix FIRST!\n _.each(['', '-webkit-', '-moz-', '-ms-'], function (prefix) {\n css[prefix + 'transition'] = prefix + trans;\n });\n $el.css(css);\n}\n\n//scale, left, top, angle, origin\nHelpers.CSSTransformString = function (options) {\n var enable3D = options.enable3D ? true : false;\n\n var translate, scale, rotation,\n origin = options.origin;\n\n if (options.left || options.top) {\n var left = options.left || 0,\n top = options.top || 0;\n\n translate = enable3D ? (\"translate3D(\" + left + \"px, \" + top + \"px, 0)\") : (\"translate(\" + left + \"px, \" + top + \"px)\");\n }\n if (options.scale) {\n scale = enable3D ? (\"scale3D(\" + options.scale + \", \" + options.scale + \", 0)\") : (\"scale(\" + options.scale + \")\");\n }\n if (options.angle) {\n rotation = enable3D ? (\"rotate3D(0,0,\" + options.angle + \"deg)\") : (\"rotate(\" + options.angle + \"deg)\");\n }\n\n if (!(translate || scale || rotation)) {\n return {};\n }\n\n var transformString = (translate && scale) ? (translate + \" \" + scale) : (translate ? translate : scale); // the order is important!\n if (rotation) {\n transformString = transformString + \" \" + rotation;\n //transformString = rotation + \" \" + transformString;\n }\n\n var css = {};\n css['transform'] = transformString;\n css['transform-origin'] = origin ? origin : (enable3D ? '0 0 0' : '0 0');\n return css;\n};\n\nHelpers.extendedThrottle = function (startCb, tickCb, endCb, tickRate, waitThreshold, context) {\n if (!tickRate) tickRate = 250;\n if (!waitThreshold) waitThreshold = tickRate;\n\n var first = true,\n last,\n deferTimer;\n\n return function () {\n var ctx = context || this,\n now = (Date.now && Date.now()) || new Date().getTime(),\n args = arguments;\n\n if (!(last && now < last + tickRate)) {\n last = now;\n if (first) {\n startCb.apply(ctx, args);\n first = false;\n } else {\n tickCb.apply(ctx, args);\n }\n }\n\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function () {\n last = now;\n first = true;\n endCb.apply(ctx, args);\n }, waitThreshold);\n };\n};\n\n\n//TODO: consider using CSSOM escape() or polyfill\n//https://github.com/mathiasbynens/CSS.escape/blob/master/css.escape.js\n//http://mathiasbynens.be/notes/css-escapes\n/**\n *\n * @param sel\n * @returns {string}\n */\nHelpers.escapeJQuerySelector = function (sel) {\n //http://api.jquery.com/category/selectors/\n //!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~\n // double backslash escape\n\n if (!sel) return undefined;\n\n var selector = sel.replace(/([;&,\\.\\+\\*\\~\\?':\"\\!\\^#$%@\\[\\]\\(\\)<=>\\|\\/\\\\{}`])/g, '\\\\$1');\n\n // if (selector !== sel)\n // {\n // console.debug(\"---- SELECTOR ESCAPED\");\n // console.debug(\"1: \" + sel);\n // console.debug(\"2: \" + selector);\n // }\n // else\n // {\n // console.debug(\"---- SELECTOR OKAY: \" + sel);\n // }\n\n return selector;\n};\n\nHelpers.polyfillCaretRangeFromPoint = function(document) {\n //Derived from css-regions-polyfill:\n // https://github.com/FremyCompany/css-regions-polyfill/blob/bfbb6445ec2a2a883005ab8801d8463fa54b5701/src/range-extensions.js\n //Copyright (c) 2013 François REMY\n //Copyright (c) 2013 Adobe Systems Inc.\n //Licensed under the Apache License, Version 2.0\n if (!document.caretRangeFromPoint) {\n if (document.caretPositionFromPoint) {\n document.caretRangeFromPoint = function caretRangeFromPoint(x, y) {\n var r = document.createRange();\n var p = document.caretPositionFromPoint(x, y);\n if (!p) return null;\n if (p.offsetNode) {\n r.setStart(p.offsetNode, p.offset);\n r.setEnd(p.offsetNode, p.offset);\n }\n return r;\n }\n } else if ((document.body || document.createElement('body')).createTextRange) {\n //\n // we may want to convert TextRange to Range\n //\n\n //TextRangeUtils, taken from: https://code.google.com/p/ierange/\n //Copyright (c) 2009 Tim Cameron Ryan\n //Released under the MIT/X License\n var TextRangeUtils = {\n convertToDOMRange: function(textRange, document) {\n var adoptBoundary = function(domRange, textRangeInner, bStart) {\n // iterate backwards through parent element to find anchor location\n var cursorNode = document.createElement('a'),\n cursor = textRangeInner.duplicate();\n cursor.collapse(bStart);\n var parent = cursor.parentElement();\n do {\n parent.insertBefore(cursorNode, cursorNode.previousSibling);\n cursor.moveToElementText(cursorNode);\n } while (cursor.compareEndPoints(bStart ? 'StartToStart' : 'StartToEnd', textRangeInner) > 0 && cursorNode.previousSibling);\n // when we exceed or meet the cursor, we've found the node\n if (cursor.compareEndPoints(bStart ? 'StartToStart' : 'StartToEnd', textRangeInner) == -1 && cursorNode.nextSibling) {\n // data node\n cursor.setEndPoint(bStart ? 'EndToStart' : 'EndToEnd', textRangeInner);\n domRange[bStart ? 'setStart' : 'setEnd'](cursorNode.nextSibling, cursor.text.length);\n } else {\n // element\n domRange[bStart ? 'setStartBefore' : 'setEndBefore'](cursorNode);\n }\n cursorNode.parentNode.removeChild(cursorNode);\n };\n // return a DOM range\n var domRange = document.createRange();\n adoptBoundary(domRange, textRange, true);\n adoptBoundary(domRange, textRange, false);\n return domRange;\n }\n };\n\n document.caretRangeFromPoint = function caretRangeFromPoint(x, y) {\n // the accepted number of vertical backtracking, in CSS pixels\n var IYDepth = 40;\n // try to create a text range at the specified location\n var tr = document.body.createTextRange();\n for (var iy = IYDepth; iy; iy = iy - 4) {\n try {\n tr.moveToPoint(x, iy + y - IYDepth);\n return TextRangeUtils.convertToDOMRange(tr, document);\n } catch (ex) {\n }\n }\n // if that fails, return the location just after the element located there\n try {\n var elem = document.elementFromPoint(x - 1, y - 1);\n var r = document.createRange();\n r.setStartAfter(elem);\n return r;\n } catch (ex) {\n return null;\n }\n }\n }\n }\n};\n\nreturn Helpers;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/**\n* CFI navigation helper class\n*\n* @param options Additional settings for NavigationLogic object\n* - paginationInfo Layout details, used by clientRect-based geometry\n* - visibleContentOffsets Function that returns offsets. If supplied it is used instead of the inferred offsets\n* - frameDimensions Function that returns an object with width and height properties. Needs to be set.\n* - $iframe Iframe reference, and needs to be set.\n* @constructor\n*/\ndefine('readium_shared_js/views/cfi_navigation_logic',[\"jquery\", \"underscore\", \"../helpers\", 'readium_cfi_js'], function($, _, Helpers, EPUBcfi) {\n\nvar CfiNavigationLogic = function (options) {\n var self = this;\n options = options || {};\n\n var _DEBUG = ReadiumSDK.DEBUG_MODE;\n if (_DEBUG) {\n window.top._DEBUG_visibleTextRangeOffsetsRuns = window.top._DEBUG_visibleTextRangeOffsetsRuns || [];\n }\n\n this.getRootElement = function () {\n if (!options.$iframe) {\n return null;\n }\n\n return options.$iframe[0].contentDocument.documentElement;\n };\n\n this.getBodyElement = function () {\n var rootDocument = this.getRootDocument();\n if (rootDocument && rootDocument.body) {\n return rootDocument.body;\n } else {\n // In SVG documents the root element can be considered the body.\n return this.getRootElement();\n }\n };\n\n this.getClassBlacklist = function () {\n return options.classBlacklist || [];\n };\n\n this.getIdBlacklist = function () {\n return options.idBlacklist || [];\n };\n\n this.getElementBlacklist = function () {\n return options.elementBlacklist || [];\n };\n\n this.getRootDocument = function () {\n if (!options.$iframe) {\n return null;\n }\n\n return options.$iframe[0].contentDocument;\n };\n\n function createRange() {\n return self.getRootDocument().createRange();\n }\n\n function createRangeFromNode(textnode) {\n var documentRange = createRange();\n documentRange.selectNodeContents(textnode);\n return documentRange;\n }\n\n function getNodeClientRect(node) {\n var range = createRange();\n range.selectNode(node);\n return normalizeRectangle(range.getBoundingClientRect(), 0, 0);\n }\n\n function getNodeContentsClientRect(node) {\n var range = createRange();\n range.selectNodeContents(node);\n return normalizeRectangle(range.getBoundingClientRect(), 0, 0);\n }\n\n function getNodeRangeClientRect(startNode, startOffset, endNode, endOffset) {\n var range = createRange();\n range.setStart(startNode, startOffset ? startOffset : 0);\n if (endNode.nodeType === Node.ELEMENT_NODE) {\n range.setEnd(endNode, endOffset ? endOffset : endNode.childNodes.length);\n } else if (endNode.nodeType === Node.TEXT_NODE) {\n range.setEnd(endNode, endOffset ? endOffset : 0);\n }\n\n // Webkit has a bug where collapsed ranges provide an empty rect with getBoundingClientRect()\n // https://bugs.webkit.org/show_bug.cgi?id=138949\n // Thankfully it implements getClientRects() properly...\n // A collapsed text range may still have geometry!\n if (range.collapsed) {\n return normalizeRectangle(range.getClientRects()[0], 0, 0);\n } else {\n return normalizeRectangle(range.getBoundingClientRect(), 0, 0);\n }\n }\n\n function getNodeClientRectList(node, visibleContentOffsets) {\n visibleContentOffsets = visibleContentOffsets || getVisibleContentOffsets();\n\n var range = createRange();\n range.selectNode(node);\n return getRangeClientRectList(range, visibleContentOffsets);\n }\n\n function getRangeClientRectList(range, visibleContentOffsets) {\n visibleContentOffsets = visibleContentOffsets || getVisibleContentOffsets();\n\n //noinspection JSUnresolvedFunction\n\n return _.map(range.getClientRects(), function (rect) {\n\n return normalizeRectangle(rect, visibleContentOffsets.left, visibleContentOffsets.top);\n });\n }\n\n function getFrameDimensions() {\n if (options.frameDimensionsGetter) {\n return options.frameDimensionsGetter();\n }\n\n console.error('CfiNavigationLogic: No frame dimensions specified!');\n return null;\n }\n\n function getCaretRangeFromPoint(x, y, document) {\n document = document || self.getRootDocument();\n Helpers.polyfillCaretRangeFromPoint(document); //only polyfills once, no-op afterwards\n return document.caretRangeFromPoint(x, y);\n }\n\n function isPaginatedView() {\n return !!options.paginationInfo;\n }\n\n /**\n * @private\n * Checks whether or not pages are rendered right-to-left\n *\n * @returns {boolean}\n */\n function isPageProgressionRightToLeft() {\n return options.paginationInfo && !!options.paginationInfo.rightToLeft;\n }\n\n /**\n * @private\n * Checks whether or not pages are rendered with vertical writing mode\n *\n * @returns {boolean}\n */\n function isVerticalWritingMode() {\n return options.paginationInfo && !!options.paginationInfo.isVerticalWritingMode;\n }\n\n\n /**\n * @private\n * Checks whether or not a (fully adjusted) rectangle is visible\n *\n * @param {Object} rect\n * @param {boolean} [ignorePartiallyVisible]\n * @param {Object} [frameDimensions]\n * @returns {boolean}\n */\n function isRectVisible(rect, ignorePartiallyVisible, frameDimensions) {\n\n frameDimensions = frameDimensions || getFrameDimensions();\n\n //Text nodes without printable text dont have client rectangles\n if (!rect) {\n return false;\n }\n //Sometimes we get client rects that are \"empty\" and aren't supposed to be visible\n if (rect.left == 0 && rect.right == 0 && rect.top == 0 && rect.bottom == 0) {\n return false;\n }\n\n if (isPaginatedView() && !isVerticalWritingMode()) {\n return (rect.left >= 0 && rect.left < frameDimensions.width) ||\n (!ignorePartiallyVisible && rect.left < 0 && rect.right > 0);\n } else {\n return (rect.top >= 0 && rect.top < frameDimensions.height) ||\n (!ignorePartiallyVisible && rect.top < 0 && rect.bottom > 0);\n }\n\n }\n\n /**\n * @private\n * Retrieves _current_ full width of a column (including its gap)\n *\n * @returns {number} Full width of a column in pixels\n */\n function getColumnFullWidth() {\n\n if (!options.paginationInfo || isVerticalWritingMode()) {\n return options.$iframe.width();\n }\n\n return options.paginationInfo.columnWidth + options.paginationInfo.columnGap;\n }\n\n /**\n * @private\n *\n * Retrieves _current_ offset of a viewport\n * (relational to the beginning of the chapter)\n *\n * @returns {Object}\n */\n function getVisibleContentOffsets() {\n if (options.visibleContentOffsetsGetter) {\n return options.visibleContentOffsetsGetter();\n }\n\n if (isVerticalWritingMode() && options.paginationOffsetsGetter) {\n return options.paginationOffsetsGetter();\n }\n\n return {\n top: 0,\n left: 0\n };\n }\n\n function getPaginationOffsets() {\n if (options.paginationOffsetsGetter) {\n return options.paginationOffsetsGetter();\n }\n\n return {\n top: 0,\n left: 0\n };\n }\n\n /**\n * New (rectangle-based) algorithm, useful in multi-column layouts\n *\n * Note: the second param (props) is ignored intentionally\n * (no need to use those in normalization)\n *\n * @param {jQuery} $element\n * @param {boolean} shouldCalculateVisibilityPercentage\n * @param {Object} [visibleContentOffsets]\n * @param {Object} [frameDimensions]\n * @returns {number|null}\n * 0 for non-visible elements,\n * 0 < n <= 100 for visible elements\n * (will just give 100, if `shouldCalculateVisibilityPercentage` => false)\n * null for elements with display:none\n */\n function checkVisibilityByRectangles($element, shouldCalculateVisibilityPercentage, visibleContentOffsets, frameDimensions) {\n visibleContentOffsets = visibleContentOffsets || getVisibleContentOffsets();\n frameDimensions = frameDimensions || getFrameDimensions();\n\n var clientRectangles = getNormalizedRectangles($element, visibleContentOffsets);\n if (clientRectangles.length === 0) { // elements with display:none, etc.\n return null;\n }\n\n var visibilityPercentage = 0;\n\n if (clientRectangles.length === 1) {\n var adjustedRect = clientRectangles[0];\n\n if (isPaginatedView()) {\n if (adjustedRect.bottom > frameDimensions.height || adjustedRect.top < 0) {\n // because of webkit inconsistency, that single rectangle should be adjusted\n // until it hits the end OR will be based on the FIRST column that is visible\n adjustRectangle(adjustedRect, true, frameDimensions);\n }\n }\n\n if (isRectVisible(adjustedRect, false, frameDimensions)) {\n if (shouldCalculateVisibilityPercentage && adjustedRect.top < 0) {\n visibilityPercentage =\n Math.floor(100 * (adjustedRect.height + adjustedRect.top) / adjustedRect.height);\n } else if (shouldCalculateVisibilityPercentage && adjustedRect.bottom > frameDimensions.height) {\n visibilityPercentage =\n Math.floor(100 * (frameDimensions.height - adjustedRect.top) / adjustedRect.height);\n } else if (shouldCalculateVisibilityPercentage && adjustedRect.left < 0 && adjustedRect.right > 0) {\n visibilityPercentage =\n Math.floor(100 * adjustedRect.right / adjustedRect.width);\n } else if (shouldCalculateVisibilityPercentage && adjustedRect.left < 0 && adjustedRect.right > 0) {\n visibilityPercentage =\n Math.floor(100 * adjustedRect.right / adjustedRect.width);\n } else {\n visibilityPercentage = 100;\n }\n }\n } else {\n // for an element split between several CSS columns,z\n // both Firefox and IE produce as many client rectangles;\n // each of those should be checked\n for (var i = 0, l = clientRectangles.length; i < l; ++i) {\n if (isRectVisible(clientRectangles[i], false, frameDimensions)) {\n visibilityPercentage = shouldCalculateVisibilityPercentage\n ? measureVisibilityPercentageByRectangles(clientRectangles, i)\n : 100;\n break;\n }\n }\n }\n\n return visibilityPercentage;\n }\n\n /**\n * Finds a page index (0-based) delta for a specific element.\n * Calculations are based on rectangles retrieved with getClientRects() method.\n *\n * @param {jQuery} $element\n * @returns {number|null}\n */\n function findPageIndexDeltaByRectangles($element) {\n\n var visibleContentOffsets = getVisibleContentOffsets();\n\n var clientRectangles = getNormalizedRectangles($element, visibleContentOffsets);\n if (clientRectangles.length === 0) { // elements with display:none, etc.\n return null;\n }\n\n return calculatePageIndexDeltaByRectangles(clientRectangles);\n }\n\n /**\n * @private\n * Calculate a page index (0-based) delta for given client rectangles.\n *\n * @param {object[]} clientRectangles\n * @param {object} [frameDimensions]\n * @param {number} [columnFullWidth]\n * @returns {number|null}\n */\n function calculatePageIndexDeltaByRectangles(clientRectangles, frameDimensions, columnFullWidth) {\n var isRtl = isPageProgressionRightToLeft();\n var isVwm = isVerticalWritingMode();\n columnFullWidth = columnFullWidth || getColumnFullWidth();\n frameDimensions = frameDimensions || getFrameDimensions();\n\n var firstRectangle = _.first(clientRectangles);\n if (clientRectangles.length === 1) {\n adjustRectangle(firstRectangle, false, frameDimensions, columnFullWidth, isRtl, isVwm);\n }\n\n var pageIndex;\n\n if (isVwm) {\n var topOffset = firstRectangle.top;\n pageIndex = Math.floor(topOffset / frameDimensions.height);\n } else {\n var leftOffset = firstRectangle.left;\n if (isRtl) {\n leftOffset = (columnFullWidth * (options.paginationInfo ? options.paginationInfo.visibleColumnCount : 1)) - leftOffset;\n }\n pageIndex = Math.floor(leftOffset / columnFullWidth);\n }\n\n return pageIndex;\n }\n\n /**\n * Finds a page index (0-based) delta for a specific client rectangle.\n * Calculations are based on viewport dimensions, offsets, and rectangle coordinates\n *\n * @param {ClientRect} clientRectangle\n * @param {Object} [visibleContentOffsets]\n * @param {Object} [frameDimensions]\n * @returns {number|null}\n */\n function findPageIndexDeltaBySingleRectangle(clientRectangle, visibleContentOffsets, frameDimensions) {\n visibleContentOffsets = visibleContentOffsets || getVisibleContentOffsets();\n frameDimensions = frameDimensions || getFrameDimensions();\n\n var normalizedRectangle = normalizeRectangle(\n clientRectangle, visibleContentOffsets.left, visibleContentOffsets.top);\n\n return calculatePageIndexDeltaByRectangles([normalizedRectangle], frameDimensions);\n }\n\n /**\n * @private\n * Calculates the visibility offset percentage based on ClientRect dimensions\n *\n * @param {Array} clientRectangles (should already be normalized)\n * @param {number} firstVisibleRectIndex\n * @returns {number} - visibility percentage (0 < n <= 100)\n */\n function measureVisibilityPercentageByRectangles(clientRectangles, firstVisibleRectIndex) {\n\n var heightTotal = 0;\n var heightVisible = 0;\n\n if (clientRectangles.length > 1) {\n _.each(clientRectangles, function (rect, index) {\n heightTotal += rect.height;\n if (index >= firstVisibleRectIndex) {\n // in this case, all the rectangles after the first visible\n // should be counted as visible\n heightVisible += rect.height;\n }\n });\n }\n else {\n // should already be normalized and adjusted\n heightTotal = clientRectangles[0].height;\n heightVisible = clientRectangles[0].height - Math.max(\n 0, -clientRectangles[0].top);\n }\n return heightVisible === heightTotal\n ? 100 // trivial case: element is 100% visible\n : Math.floor(100 * heightVisible / heightTotal);\n }\n\n /**\n * @private\n * Retrieves the position of $element in multi-column layout\n *\n * @param {jQuery} $el\n * @param {Object} [visibleContentOffsets]\n * @returns {Object[]}\n */\n function getNormalizedRectangles($el, visibleContentOffsets) {\n\n visibleContentOffsets = visibleContentOffsets || {};\n var leftOffset = visibleContentOffsets.left || 0;\n var topOffset = visibleContentOffsets.top || 0;\n\n var isTextNode = ($el[0].nodeType === Node.TEXT_NODE);\n var clientRectList;\n\n if (isTextNode) {\n var range = createRange();\n range.selectNode($el[0]);\n //noinspection JSUnresolvedFunction\n clientRectList = range.getClientRects();\n } else {\n //noinspection JSUnresolvedFunction\n clientRectList = $el[0].getClientRects();\n }\n\n // all the separate rectangles (for detecting position of the element\n // split between several columns)\n var clientRectangles = [];\n for (var i = 0, l = clientRectList.length; i < l; ++i) {\n if (clientRectList[i].height > 0 || clientRectList.length === 1) {\n // Firefox sometimes gets it wrong,\n // adding literally empty (height = 0) client rectangle preceding the real one,\n // that empty client rectanle shouldn't be retrieved\n clientRectangles.push(\n normalizeRectangle(clientRectList[i], leftOffset, topOffset));\n }\n }\n\n return clientRectangles;\n }\n\n function getNormalizedBoundingRect($el, visibleContentOffsets) {\n visibleContentOffsets = visibleContentOffsets || {};\n var leftOffset = visibleContentOffsets.left || 0;\n var topOffset = visibleContentOffsets.top || 0;\n\n var isTextNode = ($el[0].nodeType === Node.TEXT_NODE);\n var boundingClientRect;\n\n if (isTextNode) {\n var range = createRange();\n range.selectNode($el[0]);\n boundingClientRect = range.getBoundingClientRect();\n } else {\n boundingClientRect = $el[0].getBoundingClientRect();\n }\n\n // union of all rectangles wrapping the element\n return normalizeRectangle(boundingClientRect, leftOffset, topOffset);\n }\n\n /**\n * @private\n * Converts TextRectangle object into a plain object,\n * taking content offsets (=scrolls, position shifts etc.) into account\n *\n * @param {Object} textRect\n * @param {number} leftOffset\n * @param {number} topOffset\n * @returns {Object}\n */\n function normalizeRectangle(textRect, leftOffset, topOffset) {\n\n var plainRectObject = {\n left: textRect.left,\n right: textRect.right,\n top: textRect.top,\n bottom: textRect.bottom,\n width: textRect.right - textRect.left,\n height: textRect.bottom - textRect.top\n };\n leftOffset = leftOffset || 0;\n topOffset = topOffset || 0;\n offsetRectangle(plainRectObject, leftOffset, topOffset);\n return plainRectObject;\n }\n\n /**\n * @private\n * Offsets plain object (which represents a TextRectangle).\n *\n * @param {Object} rect\n * @param {number} leftOffset\n * @param {number} topOffset\n */\n function offsetRectangle(rect, leftOffset, topOffset) {\n\n rect.left += leftOffset;\n rect.right += leftOffset;\n rect.top += topOffset;\n rect.bottom += topOffset;\n }\n\n /**\n * @private\n *\n * When element is spilled over two or more columns,\n * most of the time Webkit-based browsers\n * still assign a single clientRectangle to it, setting its `top` property to negative value\n * (so it looks like it's rendered based on the second column)\n * Alas, sometimes they decide to continue the leftmost column - from _below_ its real height.\n * In this case, `bottom` property is actually greater than element's height and had to be adjusted accordingly.\n *\n * Ugh.\n *\n * @param {Object} rect\n * @param {boolean} [shouldLookForFirstVisibleColumn]\n * If set, there'll be two-phase adjustment\n * (to align a rectangle with a viewport)\n * @param {Object} [frameDimensions]\n * @param {number} [columnFullWidth]\n * @param {boolean} [isRtl]\n * @param {boolean} [isVwm] isVerticalWritingMode\n */\n function adjustRectangle(rect, shouldLookForFirstVisibleColumn, frameDimensions, columnFullWidth, isRtl, isVwm) {\n\n frameDimensions = frameDimensions || getFrameDimensions();\n columnFullWidth = columnFullWidth || getColumnFullWidth();\n isRtl = isRtl || isPageProgressionRightToLeft();\n isVwm = isVwm || isVerticalWritingMode();\n\n // Rectangle adjustment is not needed in VWM since it does not deal with columns\n if (isVwm) {\n return;\n }\n\n if (isRtl) {\n columnFullWidth *= -1; // horizontal shifts are reverted in RTL mode\n }\n\n // first we go left/right (rebasing onto the very first column available)\n while (rect.top < 0) {\n offsetRectangle(rect, -columnFullWidth, frameDimensions.height);\n }\n\n // ... then, if necessary (for visibility offset checks),\n // each column is tried again (now in reverse order)\n // the loop will be stopped when the column is aligned with a viewport\n // (i.e., is the first visible one).\n if (shouldLookForFirstVisibleColumn) {\n while (rect.bottom >= frameDimensions.height) {\n if (isRectVisible(rect, false, frameDimensions)) {\n break;\n }\n offsetRectangle(rect, columnFullWidth, -frameDimensions.height);\n }\n }\n }\n\n this.getCfiForElement = function (element) {\n\n var cfi = EPUBcfi.Generator.generateElementCFIComponent(element,\n this.getClassBlacklist(),\n this.getElementBlacklist(),\n this.getIdBlacklist());\n\n if (cfi[0] == \"!\") {\n cfi = cfi.substring(1);\n }\n return cfi;\n };\n\n this.getVisibleCfiFromPoint = function (x, y, precisePoint) {\n var document = self.getRootDocument();\n var firstVisibleCaretRange = getCaretRangeFromPoint(x, y, document);\n var elementFromPoint = document.elementFromPoint(x, y);\n var invalidElementFromPoint = !elementFromPoint || elementFromPoint === document.documentElement;\n\n if (precisePoint) {\n if (!elementFromPoint || invalidElementFromPoint) {\n return null;\n }\n var testRect = getNodeContentsClientRect(elementFromPoint);\n if (!isRectVisible(testRect, false)) {\n return null;\n }\n if ((x < testRect.left || x > testRect.right) || (y < testRect.top || y > testRect.bottom)) {\n return null;\n }\n }\n\n if (!firstVisibleCaretRange) {\n if (invalidElementFromPoint) {\n console.error(\"Could not generate CFI no visible element on page\");\n return null;\n }\n firstVisibleCaretRange = createRange();\n firstVisibleCaretRange.selectNode(elementFromPoint);\n }\n\n var range = firstVisibleCaretRange;\n var cfi;\n //if we get a text node we need to get an approximate range for the first visible character offsets.\n var node = range.startContainer;\n var startOffset, endOffset;\n if (node.nodeType === Node.TEXT_NODE) {\n if (precisePoint && node.parentNode !== elementFromPoint) {\n return null;\n }\n if (node.length === 1 && range.startOffset === 1) {\n startOffset = 0;\n endOffset = 1;\n } else if (range.startOffset === node.length) {\n startOffset = range.startOffset - 1;\n endOffset = range.startOffset;\n } else {\n startOffset = range.startOffset;\n endOffset = range.startOffset + 1;\n }\n var wrappedRange = {\n startContainer: node,\n endContainer: node,\n startOffset: startOffset,\n endOffset: endOffset,\n commonAncestorContainer: range.commonAncestorContainer\n };\n\n if (_DEBUG) {\n drawDebugOverlayFromDomRange(wrappedRange);\n }\n\n cfi = generateCfiFromDomRange(wrappedRange);\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n node =\n range.startContainer.childNodes[range.startOffset] ||\n range.startContainer.childNodes[0] ||\n range.startContainer;\n if (precisePoint && node !== elementFromPoint) {\n return null;\n }\n\n if (node.nodeType !== Node.ELEMENT_NODE) {\n cfi = generateCfiFromDomRange(range);\n } else {\n cfi = self.getCfiForElement(node);\n }\n } else {\n if (precisePoint && node !== elementFromPoint) {\n return null;\n }\n\n cfi = self.getCfiForElement(elementFromPoint);\n }\n\n //This should not happen but if it does print some output, just in case\n if (cfi && cfi.indexOf('NaN') !== -1) {\n console.log('Did not generate a valid CFI:' + cfi);\n return undefined;\n }\n return cfi;\n };\n\n this.getRangeCfiFromPoints = function (startX, startY, endX, endY) {\n var document = self.getRootDocument();\n var start = getCaretRangeFromPoint(startX, startY, document),\n end = getCaretRangeFromPoint(endX, endY, document),\n range = createRange();\n range.setStart(start.startContainer, start.startOffset);\n range.setEnd(end.startContainer, end.startOffset);\n // if we're looking at a text node create a nice range (n, n+1)\n if (start.startContainer === start.endContainer && start.startContainer.nodeType === Node.TEXT_NODE && end.startContainer.length > end.startOffset + 1) {\n range.setEnd(end.startContainer, end.startOffset + 1);\n }\n return generateCfiFromDomRange(range);\n };\n\n function determineSplit(range, division) {\n var percent = division / 100;\n return Math.round((range.endOffset - range.startOffset ) * percent);\n }\n\n function splitRange(range, division) {\n if (range.endOffset - range.startOffset === 1) {\n return [range];\n }\n var length = determineSplit(range, division);\n var textNode = range.startContainer;\n var leftNodeRange = range.cloneRange();\n leftNodeRange.setStart(textNode, range.startOffset);\n leftNodeRange.setEnd(textNode, range.startOffset + length);\n var rightNodeRange = range.cloneRange();\n rightNodeRange.setStart(textNode, range.startOffset + length);\n rightNodeRange.setEnd(textNode, range.endOffset);\n\n return [leftNodeRange, rightNodeRange];\n\n }\n\n // create Range from target node and search for visibleOutput Range\n function getVisibleTextRangeOffsets(textNode, pickerFunc, visibleContentOffsets, frameDimensions) {\n visibleContentOffsets = visibleContentOffsets || getVisibleContentOffsets();\n\n var nodeRange = createRangeFromNode(textNode);\n var nodeClientRects = getRangeClientRectList(nodeRange, visibleContentOffsets);\n var splitRatio = deterministicSplit(nodeClientRects, pickerFunc([0, 1]));\n return getTextRangeOffset(splitRange(nodeRange, splitRatio), visibleContentOffsets,\n pickerFunc([0, 1]), splitRatio,\n function (rect) {\n return (isVerticalWritingMode() ? rect.height : rect.width) && isRectVisible(rect, false, frameDimensions);\n });\n }\n\n function deterministicSplit(rectList, directionBit) {\n var split = 0;\n // Calculate total cumulative Height for both visible portions and invisible portions and find the split\n var visibleRects = _.filter(rectList, function (rect) {\n return (isVerticalWritingMode() ? rect.height : rect.width) && isRectVisible(rect, false, getFrameDimensions());\n });\n var visibleRectHeight = calculateCumulativeHeight(visibleRects);\n var invisibleRectHeight = totalHeight - visibleRectHeight;\n var totalHeight = calculateCumulativeHeight(rectList);\n\n if (visibleRectHeight === totalHeight) {\n // either all visible or split\n // heuristic: slight bias to increase likelihood of hits\n return directionBit ? 55 : 45;\n } else {\n split = 100 * (visibleRectHeight / totalHeight);\n return invisibleRectHeight > visibleRectHeight ? split + 5 : split - 5;\n }\n }\n\n function rectTopHash (rectList) {\n // sort the rectangles by top value\n var sortedList = rectList.sort(function (a, b) {\n return a.top < b.top;\n });\n var lineMap = [];\n _.each(sortedList, function (rect) {\n var key = rect.top;\n if (!lineMap[key]) {\n lineMap[key] = [rect.height];\n } else {\n var currentLine = lineMap[key];\n currentLine.push(rect.height);\n lineMap[key] = currentLine;\n }\n });\n }\n\n function calculateCumulativeHeight (rectList) {\n var lineMap = rectTopHash(rectList);\n var height = 0;\n _.each(lineMap, function (line) {\n height = height + Math.max.apply(null, line);\n });\n return height;\n }\n\n function getTextRangeOffset(startingSet, visibleContentOffsets, directionBit, splitRatio, filterFunc) {\n var runCount = 0;\n var currRange = startingSet;\n //begin iterative binary search, each iteration will check Range length and visibility\n while (currRange.length !== 1) {\n runCount++;\n var currTextNodeFragments = getRangeClientRectList(currRange[directionBit], visibleContentOffsets);\n if (hasVisibleFragments(currTextNodeFragments, filterFunc)) {\n currRange = splitRange(currRange[directionBit], splitRatio);\n }\n // No visible fragment Look in other half\n else {\n currRange = splitRange(currRange[directionBit ? 0 : 1], splitRatio);\n }\n }\n if (_DEBUG) {\n console.debug('getVisibleTextRangeOffsets:getTextRangeOffset:runCount', runCount);\n window.top._DEBUG_visibleTextRangeOffsetsRuns.push(runCount);\n }\n var resultRange = currRange[0];\n if (resultRange) {\n resultRange.collapse(!directionBit);\n }\n return resultRange;\n }\n\n function hasVisibleFragments(fragments, filterFunc) {\n var visibleFragments = _.filter(fragments, filterFunc);\n return !!visibleFragments.length;\n }\n\n function findVisibleLeafNodeCfi(visibleLeafNode, pickerFunc, visibleContentOffsets, frameDimensions) {\n if (!visibleLeafNode) {\n return null;\n }\n\n var element = visibleLeafNode.element;\n var textNode = visibleLeafNode.textNode;\n\n //if a valid text node is found, try to generate a CFI with range offsets\n if (textNode && isValidTextNode(textNode)) {\n var visibleRange = getVisibleTextRangeOffsets(textNode, pickerFunc, visibleContentOffsets, frameDimensions);\n if (!visibleRange) {\n if (_DEBUG) console.warn(\"findVisibleLeafNodeCfi: failed to find text range offset\");\n return null;\n }\n return generateCfiFromDomRange(visibleRange);\n } else {\n //if not then generate a CFI for the element\n return self.getCfiForElement(element);\n }\n }\n\n function getLastVisibleTextRangeCfi(visibleContentOffsets, frameDimensions) {\n var visibleLeafNode = self.findLastVisibleElement(visibleContentOffsets, frameDimensions);\n return findVisibleLeafNodeCfi(visibleLeafNode, _.last, visibleContentOffsets, frameDimensions);\n }\n\n function getFirstVisibleTextRangeCfi(visibleContentOffsets, frameDimensions) {\n var visibleLeafNode = self.findFirstVisibleElement(visibleContentOffsets, frameDimensions);\n return findVisibleLeafNodeCfi(visibleLeafNode, _.first, visibleContentOffsets, frameDimensions);\n }\n\n this.getFirstVisibleCfi = function (visibleContentOffsets, frameDimensions) {\n return getFirstVisibleTextRangeCfi(visibleContentOffsets, frameDimensions);\n };\n\n this.getLastVisibleCfi = function (visibleContentOffsets, frameDimensions) {\n return getLastVisibleTextRangeCfi(visibleContentOffsets, frameDimensions);\n };\n\n function generateCfiFromDomRange(range) {\n if (range.collapsed && range.startContainer.nodeType === Node.TEXT_NODE) {\n return EPUBcfi.generateCharacterOffsetCFIComponent(\n range.startContainer, range.startOffset,\n ['cfi-marker'], [], [\"MathJax_Message\", \"MathJax_SVG_Hidden\"]);\n } else if (range.collapsed) {\n return self.getCfiForElement(range.startContainer);\n } else {\n return EPUBcfi.generateRangeComponent(\n range.startContainer, range.startOffset,\n range.endContainer, range.endOffset,\n self.getClassBlacklist(), self.getElementBlacklist(), self.getIdBlacklist());\n }\n }\n\n this.getDomRangeFromRangeCfi = function (rangeCfi, rangeCfi2, inclusive) {\n var range = createRange();\n\n if (!rangeCfi2) {\n if (self.isRangeCfi(rangeCfi)) {\n var rangeInfo = self.getNodeRangeInfoFromCfi(rangeCfi);\n range.setStart(rangeInfo.startInfo.node, rangeInfo.startInfo.offset);\n range.setEnd(rangeInfo.endInfo.node, rangeInfo.endInfo.offset);\n } else {\n var element = self.getElementByCfi(rangeCfi,\n this.getClassBlacklist(), this.getElementBlacklist(), this.getIdBlacklist())[0];\n range.selectNode(element);\n }\n } else {\n if (self.isRangeCfi(rangeCfi)) {\n var rangeInfo1 = self.getNodeRangeInfoFromCfi(rangeCfi);\n range.setStart(rangeInfo1.startInfo.node, rangeInfo1.startInfo.offset);\n } else {\n var startElement = self.getElementByCfi(rangeCfi,\n this.getClassBlacklist(), this.getElementBlacklist(), this.getIdBlacklist())[0];\n range.setStart(startElement, 0);\n }\n\n if (self.isRangeCfi(rangeCfi2)) {\n var rangeInfo2 = self.getNodeRangeInfoFromCfi(rangeCfi2);\n if (inclusive) {\n range.setEnd(rangeInfo2.endInfo.node, rangeInfo2.endInfo.offset);\n } else {\n range.setEnd(rangeInfo2.startInfo.node, rangeInfo2.startInfo.offset);\n }\n } else {\n var endElement = self.getElementByCfi(rangeCfi2,\n this.getClassBlacklist(), this.getElementBlacklist(), this.getIdBlacklist())[0];\n range.setEnd(endElement, endElement.childNodes.length);\n }\n }\n return range;\n };\n\n this.getRangeCfiFromDomRange = function (domRange) {\n return generateCfiFromDomRange(domRange);\n };\n\n function getWrappedCfi(partialCfi) {\n return \"epubcfi(/99!\" + partialCfi + \")\";\n }\n\n this.isRangeCfi = function (partialCfi) {\n return _isRangeCfi(partialCfi) || _hasTextTerminus(partialCfi);\n };\n\n function _isRangeCfi(partialCfi) {\n return EPUBcfi.Interpreter.isRangeCfi(getWrappedCfi(partialCfi));\n }\n\n function _hasTextTerminus(partialCfi) {\n return EPUBcfi.Interpreter.hasTextTerminus(getWrappedCfi(partialCfi));\n }\n\n this.getPageIndexDeltaForCfi = function (partialCfi, classBlacklist, elementBlacklist, idBlacklist) {\n\n if (this.isRangeCfi(partialCfi)) {\n //if given a range cfi the exact page index needs to be calculated by getting node info from the range cfi\n var nodeRangeInfoFromCfi = this.getNodeRangeInfoFromCfi(partialCfi);\n //the page index is calculated from the node's client rectangle\n return findPageIndexDeltaBySingleRectangle(nodeRangeInfoFromCfi.clientRect);\n }\n\n var $element = getElementByPartialCfi(partialCfi, classBlacklist, elementBlacklist, idBlacklist);\n\n if (!$element) {\n return -1;\n }\n\n return this.getPageIndexDeltaForElement($element);\n };\n\n function getElementByPartialCfi(cfi, classBlacklist, elementBlacklist, idBlacklist) {\n\n var contentDoc = self.getRootDocument();\n\n var wrappedCfi = getWrappedCfi(cfi);\n\n try {\n //noinspection JSUnresolvedVariable\n var $element = EPUBcfi.getTargetElement(wrappedCfi, contentDoc, classBlacklist, elementBlacklist, idBlacklist);\n\n } catch (ex) {\n //EPUBcfi.Interpreter can throw a SyntaxError\n }\n\n if (!$element || $element.length == 0) {\n console.log(\"Can't find element for CFI: \" + cfi);\n return undefined;\n }\n\n return $element;\n }\n\n this.getElementFromPoint = function (x, y) {\n\n var document = self.getRootDocument();\n return document.elementFromPoint(x, y);\n };\n\n this.getNodeRangeInfoFromCfi = function (cfi) {\n var contentDoc = self.getRootDocument();\n\n var wrappedCfi = getWrappedCfi(cfi);\n if (_isRangeCfi(cfi)) {\n\n try {\n //noinspection JSUnresolvedVariable\n var nodeResult = EPUBcfi.Interpreter.getRangeTargetElements(wrappedCfi, contentDoc,\n this.getClassBlacklist(),\n this.getElementBlacklist(),\n this.getIdBlacklist());\n\n if (_DEBUG) {\n console.log(nodeResult);\n }\n } catch (ex) {\n //EPUBcfi.Interpreter can throw a SyntaxError\n }\n\n if (!nodeResult) {\n console.log(\"Can't find nodes for range CFI: \" + cfi);\n return undefined;\n }\n\n var startRangeInfo = {node: nodeResult.startElement, offset: nodeResult.startOffset};\n var endRangeInfo = {node: nodeResult.endElement, offset: nodeResult.endOffset};\n var nodeRangeClientRect =\n startRangeInfo && endRangeInfo ?\n getNodeRangeClientRect(\n startRangeInfo.node,\n startRangeInfo.offset,\n endRangeInfo.node,\n endRangeInfo.offset)\n : null;\n\n if (_DEBUG) {\n console.log(nodeRangeClientRect);\n addOverlayRect(nodeRangeClientRect, 'purple', contentDoc);\n }\n\n return {startInfo: startRangeInfo, endInfo: endRangeInfo, clientRect: nodeRangeClientRect};\n } else if (_hasTextTerminus(cfi)) {\n\n try {\n //noinspection JSUnresolvedVariable\n var textTerminusResult = EPUBcfi.Interpreter.getTextTerminusInfo(wrappedCfi, contentDoc,\n this.getClassBlacklist(),\n this.getElementBlacklist(),\n this.getIdBlacklist());\n\n if (_DEBUG) {\n console.log(textTerminusResult);\n }\n } catch (ex) {\n //EPUBcfi.Interpreter can throw a SyntaxError\n }\n\n if (!textTerminusResult) {\n console.log(\"Can't find node for text term CFI: \" + cfi);\n return undefined;\n }\n\n var textTermRangeInfo = {node: textTerminusResult.textNode, offset: textTerminusResult.textOffset};\n var textTermClientRect =\n getNodeRangeClientRect(\n textTermRangeInfo.node,\n textTermRangeInfo.offset,\n textTermRangeInfo.node,\n textTermRangeInfo.offset);\n if (_DEBUG) {\n console.log(textTermClientRect);\n addOverlayRect(textTermClientRect, 'purple', contentDoc);\n }\n\n return {startInfo: textTermRangeInfo, endInfo: textTermRangeInfo, clientRect: textTermClientRect};\n } else {\n var $element = self.getElementByCfi(cfi,\n this.getClassBlacklist(),\n this.getElementBlacklist(),\n this.getIdBlacklist());\n\n var visibleContentOffsets = getVisibleContentOffsets();\n return {\n startInfo: null,\n endInfo: null,\n clientRect: getNormalizedBoundingRect($element, visibleContentOffsets)\n };\n }\n };\n\n this.isNodeFromRangeCfiVisible = function (cfi) {\n var nodeRangeInfo = this.getNodeRangeInfoFromCfi(cfi);\n if (nodeRangeInfo) {\n return isRectVisible(nodeRangeInfo.clientRect, false);\n } else {\n return undefined;\n }\n };\n\n this.getNearestCfiFromElement = function (element) {\n var collapseToStart;\n var chosenNode;\n var isTextNode;\n\n var siblingTextNodesAndSelf = _.filter(element.parentNode.childNodes, function (n) {\n return n === element || isValidTextNode(n);\n });\n\n var indexOfSelf = siblingTextNodesAndSelf.indexOf(element);\n var nearestNode = siblingTextNodesAndSelf[indexOfSelf - 1];\n if (!nearestNode) {\n nearestNode = siblingTextNodesAndSelf[indexOfSelf + 1];\n collapseToStart = true;\n }\n if (!nearestNode) {\n nearestNode = _.last(this.getLeafNodeElements($(element.previousElementSibling)));\n if (!nearestNode) {\n collapseToStart = true;\n nearestNode = _.first(this.getLeafNodeElements($(element.nextElementSibling)));\n }\n }\n\n // Prioritize text node use\n if (isValidTextNode(nearestNode)) {\n chosenNode = nearestNode;\n isTextNode = true;\n } else if (isElementNode(nearestNode)) {\n chosenNode = nearestNode;\n } else if (isElementNode(element.previousElementSibling)) {\n chosenNode = element.previousElementSibling;\n } else if (isElementNode(element.nextElementSibling)) {\n chosenNode = element.nextElementSibling;\n } else {\n chosenNode = element.parentNode;\n }\n\n if (isTextNode) {\n var range = chosenNode.ownerDocument.createRange();\n range.selectNodeContents(chosenNode);\n range.collapse(collapseToStart);\n return this.getRangeCfiFromDomRange(range);\n } else {\n return this.getCfiForElement(chosenNode);\n }\n };\n\n this.getElementByCfi = function (partialCfi, classBlacklist, elementBlacklist, idBlacklist) {\n return getElementByPartialCfi(partialCfi, classBlacklist, elementBlacklist, idBlacklist);\n };\n\n this.getPageIndexDeltaForElement = function ($element) {\n\n // first try to get delta by rectangles\n var pageIndex = findPageIndexDeltaByRectangles($element);\n\n // for hidden elements (e.g., page breaks) there are no rectangles\n if (pageIndex === null) {\n\n // get CFI of the nearest (to hidden) element, and then get CFI's element\n var nearestVisibleElement = this.getElementByCfi(this.getNearestCfiFromElement($element[0]));\n\n // find page index by rectangles again, for the nearest element\n return findPageIndexDeltaByRectangles(nearestVisibleElement);\n }\n return pageIndex;\n };\n\n this.getElementById = function (id) {\n\n var contentDoc = this.getRootDocument();\n\n var $element = $(contentDoc.getElementById(id));\n //$(\"#\" + Helpers.escapeJQuerySelector(id), contentDoc);\n\n if ($element.length == 0) {\n return undefined;\n }\n\n return $element;\n };\n\n this.getPageIndexDeltaForElementId = function (id) {\n\n var $element = this.getElementById(id);\n if (!$element) {\n return -1;\n }\n\n return this.getPageIndexDeltaForElement($element);\n };\n\n // returns raw DOM element (not $ jQuery-wrapped)\n this.getFirstVisibleMediaOverlayElement = function (visibleContentOffsets) {\n var $root = $(this.getBodyElement());\n if (!$root || !$root.length || !$root[0]) return undefined;\n\n var that = this;\n\n var firstPartial = undefined;\n\n function traverseArray(arr) {\n if (!arr || !arr.length) return undefined;\n\n for (var i = 0, count = arr.length; i < count; i++) {\n var item = arr[i];\n if (!item) continue;\n\n var $item = $(item);\n\n if ($item.data(\"mediaOverlayData\")) {\n var visible = that.getElementVisibility($item, visibleContentOffsets);\n if (visible) {\n if (!firstPartial) firstPartial = item;\n\n if (visible == 100) return item;\n }\n }\n else {\n var elem = traverseArray(item.children);\n if (elem) return elem;\n }\n }\n\n return undefined;\n }\n\n var el = traverseArray([$root[0]]);\n if (!el) el = firstPartial;\n return el;\n\n // var $elements = this.getMediaOverlayElements($root);\n // return this.getVisibleElements($elements, visibleContentOffsets);\n };\n\n this.getElementVisibility = function ($element, visibleContentOffsets) {\n return checkVisibilityByRectangles($element, true, visibleContentOffsets);\n };\n\n\n this.isElementVisible = this.getElementVisibility;\n\n this.getVisibleElementsWithFilter = function (visibleContentOffsets, filterFunction) {\n var $elements = this.getElementsWithFilter($(this.getBodyElement()), filterFunction);\n return this.getVisibleElements($elements, visibleContentOffsets);\n };\n\n this.getAllElementsWithFilter = function (filterFunction) {\n return this.getElementsWithFilter($(this.getBodyElement()), filterFunction);\n };\n\n this.getAllVisibleElementsWithSelector = function (selector, visibleContentOffset) {\n var elements = $(selector, this.getRootElement());\n var $newElements = [];\n $.each(elements, function () {\n $newElements.push($(this));\n });\n return this.getVisibleElements($newElements, visibleContentOffset);\n };\n\n this.getVisibleElements = function ($elements, visibleContentOffsets, frameDimensions) {\n\n var visibleElements = [];\n\n _.each($elements, function ($node) {\n var isTextNode = ($node[0].nodeType === Node.TEXT_NODE);\n var $element = isTextNode ? $node.parent() : $node;\n var visibilityPercentage = checkVisibilityByRectangles(\n $node, true, visibleContentOffsets, frameDimensions);\n\n if (visibilityPercentage) {\n visibleElements.push({\n element: $element[0], // DOM Element is pushed\n textNode: isTextNode ? $node[0] : null,\n percentVisible: visibilityPercentage\n\n });\n }\n });\n\n return visibleElements;\n };\n\n this.getVisibleLeafNodes = function (visibleContentOffsets, frameDimensions) {\n\n if (_cacheEnabled) {\n var cacheKey = (options.paginationInfo || {}).currentSpreadIndex || 0;\n var fromCache = _cache.visibleLeafNodes.get(cacheKey);\n if (fromCache) {\n return fromCache;\n }\n }\n\n var $elements = this.getLeafNodeElements($(this.getBodyElement()));\n\n var visibleElements = this.getVisibleElements($elements, visibleContentOffsets, frameDimensions);\n if (_cacheEnabled) {\n _cache.visibleLeafNodes.set(cacheKey, visibleElements);\n }\n\n return visibleElements;\n };\n\n function getBaseCfiSelectedByFunc(pickerFunc) {\n var $elements = self.getLeafNodeElements($(self.getBodyElement()));\n var $selectedNode = pickerFunc($elements);\n var collapseToStart = pickerFunc([true, false]);\n var range = createRange();\n range.selectNodeContents($selectedNode[0]);\n range.collapse(collapseToStart);\n return generateCfiFromDomRange(range);\n }\n\n this.getStartCfi = function () {\n return getBaseCfiSelectedByFunc(_.first);\n };\n\n\n this.getEndCfi = function () {\n return getBaseCfiSelectedByFunc(_.last);\n };\n\n this.getElementsWithFilter = function ($root, filterFunction) {\n\n var $elements = [];\n\n function traverseCollection(elements) {\n\n if (elements == undefined) return;\n\n for (var i = 0, count = elements.length; i < count; i++) {\n\n var $element = $(elements[i]);\n\n if (filterFunction($element)) {\n $elements.push($element);\n }\n else {\n traverseCollection($element[0].children);\n }\n\n }\n }\n\n traverseCollection([$root[0]]);\n\n return $elements;\n };\n\n function isElementBlacklisted(element) {\n var classAttribute = element.className;\n // check for SVGAnimatedString\n if (classAttribute && typeof classAttribute.animVal !== \"undefined\") {\n classAttribute = classAttribute.animVal;\n } else if (classAttribute && typeof classAttribute.baseVal !== \"undefined\") {\n classAttribute = classAttribute.baseVal;\n }\n var classList = classAttribute ? classAttribute.split(' ') : [];\n var id = element.id;\n\n var classBlacklist = self.getClassBlacklist();\n if (classList.length === 1 && _.contains(classBlacklist, classList[0])) {\n return true;\n } else if (classList.length && _.intersection(classBlacklist, classList).length) {\n return true;\n }\n\n if (id && id.length && _.contains(self.getIdBlacklist(), id)) {\n return true;\n }\n\n if (_.contains(self.getElementBlacklist(), element.tagName.toLowerCase())) {\n return true;\n }\n\n return false;\n }\n\n this.getLeafNodeElements = function ($root) {\n\n if (_cacheEnabled) {\n var fromCache = _cache.leafNodeElements.get($root);\n if (fromCache) {\n return fromCache;\n }\n }\n\n //noinspection JSUnresolvedVariable,JSCheckFunctionSignatures\n var nodeIterator = document.createNodeIterator(\n $root[0],\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n function () {\n //noinspection JSUnresolvedVariable\n return NodeFilter.FILTER_ACCEPT;\n },\n false\n );\n\n var $leafNodeElements = [];\n\n var node;\n while ((node = nodeIterator.nextNode())) {\n var isLeafNode = node.nodeType === Node.ELEMENT_NODE && !node.childElementCount && !isValidTextNodeContent(node.textContent);\n if (isLeafNode || isValidTextNode(node)){\n var element = (node.nodeType === Node.TEXT_NODE) ? node.parentNode : node;\n if (!isElementBlacklisted(element)) {\n $leafNodeElements.push($(node));\n }\n }\n }\n\n if (_cacheEnabled) {\n _cache.leafNodeElements.set($root, $leafNodeElements);\n }\n return $leafNodeElements;\n };\n\n function isElementNode(node) {\n if (!node) {\n return false;\n }\n else {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n }\n\n function isValidTextNode(node) {\n if (!node) {\n return false;\n }\n if (node.nodeType === Node.TEXT_NODE) {\n\n return isValidTextNodeContent(node.nodeValue);\n }\n\n return false;\n\n }\n\n function isValidTextNodeContent(text) {\n // Heuristic to find a text node with actual text\n // If we don't do this, we may get a reference to a node that doesn't get rendered\n // (such as for example a node that has tab character and a bunch of spaces)\n // this is would be bad! ask me why.\n return !!text.trim().length;\n }\n\n this.getElements = function (selector) {\n if (!selector) {\n return $(this.getRootElement()).children();\n }\n return $(selector, this.getRootElement());\n };\n\n this.getElement = function (selector) {\n\n var $element = this.getElements(selector);\n\n if ($element.length > 0) {\n return $element;\n }\n\n return undefined;\n };\n\n function Cache() {\n var that = this;\n\n //true = survives invalidation\n var props = {\n leafNodeElements: true,\n visibleLeafNodes: false\n };\n\n _.each(props, function (val, key) {\n that[key] = new Map();\n });\n\n this._invalidate = function () {\n _.each(props, function (val, key) {\n if (!val) {\n that[key] = new Map();\n }\n });\n }\n }\n\n var _cache = new Cache();\n\n var _cacheEnabled = false;\n\n this.invalidateCache = function () {\n _cache._invalidate();\n };\n\n //if (_DEBUG) {\n\n var $debugOverlays = [];\n\n //used for visual debug atm\n function getRandomColor() {\n var letters = '0123456789ABCDEF'.split('');\n var color = '#';\n for (var i = 0; i < 6; i++) {\n color += letters[Math.round(Math.random() * 15)];\n }\n return color;\n }\n\n //used for visual debug atm\n function addOverlayRect(rects, color, doc) {\n var random = getRandomColor();\n if (!(rects instanceof Array)) {\n rects = [rects];\n }\n for (var i = 0; i != rects.length; i++) {\n var rect = rects[i];\n var overlayDiv = doc.createElement('div');\n overlayDiv.style.position = 'absolute';\n $(overlayDiv).css('z-index', '1000');\n $(overlayDiv).css('pointer-events', 'none');\n $(overlayDiv).css('opacity', '0.4');\n overlayDiv.style.border = '1px solid white';\n if (!color && !random) {\n overlayDiv.style.background = 'purple';\n } else if (random && !color) {\n overlayDiv.style.background = random;\n } else {\n if (color === true) {\n color = 'red';\n }\n overlayDiv.style.border = '1px dashed ' + color;\n overlayDiv.style.background = 'yellow';\n }\n\n overlayDiv.style.margin = overlayDiv.style.padding = '0';\n overlayDiv.style.top = (rect.top ) + 'px';\n overlayDiv.style.left = (rect.left ) + 'px';\n // we want rect.width to be the border width, so content width is 2px less.\n overlayDiv.style.width = (rect.width - 2) + 'px';\n overlayDiv.style.height = (rect.height - 2) + 'px';\n doc.documentElement.appendChild(overlayDiv);\n $debugOverlays.push($(overlayDiv));\n }\n }\n\n function drawDebugOverlayFromRect(rect) {\n var offsets = getPaginationOffsets();\n\n addOverlayRect({\n left: rect.left + offsets.left,\n top: rect.top + offsets.top,\n width: rect.width,\n height: rect.height\n }, true, self.getRootDocument());\n }\n\n function drawDebugOverlayFromDomRange(range) {\n var rect = getNodeRangeClientRect(\n range.startContainer,\n range.startOffset,\n range.endContainer,\n range.endOffset);\n drawDebugOverlayFromRect(rect);\n return rect;\n }\n\n function drawDebugOverlayFromNode(node) {\n drawDebugOverlayFromRect(getNodeClientRect(node));\n }\n\n function clearDebugOverlays() {\n _.each($debugOverlays, function ($el) {\n $el.remove();\n });\n $debugOverlays = [];\n }\n\n ReadiumSDK._DEBUG_CfiNavigationLogic = {\n clearDebugOverlays: clearDebugOverlays,\n drawDebugOverlayFromRect: drawDebugOverlayFromRect,\n drawDebugOverlayFromDomRange: drawDebugOverlayFromDomRange,\n drawDebugOverlayFromNode: drawDebugOverlayFromNode,\n debugVisibleCfis: function () {\n console.log(JSON.stringify(ReadiumSDK.reader.getPaginationInfo().openPages));\n\n var cfi1 = ReadiumSDK.reader.getFirstVisibleCfi();\n var range1 = ReadiumSDK.reader.getDomRangeFromRangeCfi(cfi1);\n console.log(cfi1, range1, drawDebugOverlayFromDomRange(range1));\n\n var cfi2 = ReadiumSDK.reader.getLastVisibleCfi();\n var range2 = ReadiumSDK.reader.getDomRangeFromRangeCfi(cfi2);\n console.log(cfi2, range2, drawDebugOverlayFromDomRange(range2));\n },\n visibleTextRangeOffsetsRunsAvg: function () {\n var arr = window.top._DEBUG_visibleTextRangeOffsetsRuns;\n return arr.reduce(function (a, b) {\n return a + b;\n }) / arr.length;\n }\n };\n\n //\n // }\n\n this.findFirstVisibleElement = function (visibleContentOffsets, frameDimensions) {\n\n var bodyElement = this.getBodyElement();\n\n if (!bodyElement) {\n return null;\n }\n\n var firstVisibleElement;\n var percentVisible = 0;\n var textNode;\n\n var treeWalker = document.createTreeWalker(\n bodyElement,\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n function(node) {\n if (node.nodeType === Node.ELEMENT_NODE && isElementBlacklisted(node))\n return NodeFilter.FILTER_REJECT;\n\n if (node.nodeType === Node.TEXT_NODE && !isValidTextNode(node))\n return NodeFilter.FILTER_REJECT;\n\n var visibilityResult = checkVisibilityByRectangles($(node), true, visibleContentOffsets, frameDimensions);\n return visibilityResult ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n false\n );\n\n while (treeWalker.nextNode()) {\n var node = treeWalker.currentNode;\n\n if (node.nodeType === Node.TEXT_NODE) {\n firstVisibleElement = node.parentNode;\n textNode = node;\n percentVisible = 100; // not really used, assume this value unless otherwise\n break;\n }\n\n var hasChildElements = false;\n var hasChildTextNodes = false;\n\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n var childNode = node.childNodes[i];\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n hasChildElements = true;\n break;\n }\n if (childNode.nodeType === Node.TEXT_NODE)\n hasChildTextNodes = true;\n }\n\n // potentially stop tree traversal when first element hit with no child element nodes\n if (!hasChildElements && hasChildTextNodes) {\n for (var i=node.childNodes.length-1; i>=0; i--) {\n var childNode = node.childNodes[i];\n if (childNode.nodeType === Node.TEXT_NODE && isValidTextNode(childNode)) {\n var visibilityResult = checkVisibilityByRectangles($(childNode), true, visibleContentOffsets, frameDimensions);\n if (visibilityResult) {\n firstVisibleElement = node;\n textNode = childNode;\n percentVisible = visibilityResult;\n break;\n }\n }\n }\n } else if (!hasChildElements) {\n firstVisibleElement = node;\n percentVisible = 100;\n textNode = null;\n break;\n }\n }\n\n if (!firstVisibleElement) {\n return null;\n }\n return {\n element: firstVisibleElement,\n textNode: textNode,\n percentVisible: percentVisible\n };\n };\n\n this.findLastVisibleElement = function (visibleContentOffsets, frameDimensions) {\n\n var bodyElement = this.getBodyElement();\n\n if (!bodyElement) {\n return null;\n }\n\n var firstVisibleElement;\n var percentVisible = 0;\n var textNode;\n\n var treeWalker = document.createTreeWalker(\n bodyElement,\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n function(node) {\n if (node.nodeType === Node.ELEMENT_NODE && isElementBlacklisted(node))\n return NodeFilter.FILTER_REJECT;\n\n if (node.nodeType === Node.TEXT_NODE && !isValidTextNode(node))\n return NodeFilter.FILTER_REJECT;\n\n var visibilityResult = checkVisibilityByRectangles($(node), true, visibleContentOffsets, frameDimensions);\n return visibilityResult ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n false\n );\n\n while (treeWalker.lastChild()) { }\n\n do {\n var node = treeWalker.currentNode;\n\n if (node.nodeType === Node.TEXT_NODE) {\n firstVisibleElement = node.parentNode;\n textNode = node;\n percentVisible = 100; // not really used, assume this value unless otherwise\n break;\n }\n\n var hasChildElements = false;\n var hasChildTextNodes = false;\n\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n var childNode = node.childNodes[i];\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n hasChildElements = true;\n break;\n }\n if (childNode.nodeType === Node.TEXT_NODE)\n hasChildTextNodes = true;\n }\n\n // potentially stop tree traversal when first element hit with no child element nodes\n if (!hasChildElements && hasChildTextNodes) {\n for (var i=node.childNodes.length-1; i>=0; i--) {\n var childNode = node.childNodes[i];\n if (childNode.nodeType === Node.TEXT_NODE && isValidTextNode(childNode)) {\n var visibilityResult = checkVisibilityByRectangles($(childNode), true, visibleContentOffsets, frameDimensions);\n if (visibilityResult) {\n firstVisibleElement = node;\n textNode = childNode;\n percentVisible = visibilityResult;\n break;\n }\n }\n }\n } else if (!hasChildElements) {\n firstVisibleElement = node;\n percentVisible = 100;\n textNode = null;\n break;\n }\n } while (treeWalker.previousNode());\n\n if (!firstVisibleElement) {\n return null;\n }\n return {\n element: firstVisibleElement,\n textNode: textNode,\n percentVisible: percentVisible\n };\n };\n\n };\nreturn CfiNavigationLogic;\n});\n\n","// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/viewer_settings',[], function() {\n/**\n *\n * @param settingsData\n * @constructor\n */\nvar ViewerSettings = function(settingsData) {\n\n var self = this;\n\n /** Set to \"auto\"\n *\n * @property syntheticSpread\n * @type \n */\n\n this.syntheticSpread = \"auto\";\n\n /** \n *\n * @property fontSelection\n * @type number\n */\n \n this.fontSelection = 0;\n\n /** \n *\n * @property fontSize\n * @type number\n */\n\n this.fontSize = 100;\n\n /** \n *\n * @property columnGap\n * @type number\n */\n\n this.columnGap = 20;\n \n /** \n *\n * @property columnMaxWidth\n * @type number\n */\n\n this.columnMaxWidth = 700;\n\n /** \n *\n * @property columnMinWidth\n * @type number\n */\n\n this.columnMinWidth = 400;\n\n /** \n *\n * @property mediaOverlaysPreservePlaybackWhenScroll\n * @type bool\n */\n\n this.mediaOverlaysPreservePlaybackWhenScroll = false;\n\n /** \n *\n * @property mediaOverlaysSkipSkippables\n * @type bool\n */\n\n this.mediaOverlaysSkipSkippables = false;\n\n /** \n *\n * @property mediaOverlaysEscapables\n * @type bool\n */\n\n this.mediaOverlaysEscapeEscapables = true;\n\n /** \n *\n * @property mediaOverlaysSkippables\n * @type array\n */\n\n this.mediaOverlaysSkippables = [];\n \n /** \n *\n * @property mediaOverlaysEscapables\n * @type array\n */\n\n this.mediaOverlaysEscapables = [];\n\n /** \n *\n * @property mediaOverlaysEnableClick\n * @type bool\n */\n \n this.mediaOverlaysEnableClick = true;\n\n /** \n *\n * @property mediaOverlaysRate\n * @type number\n */\n\n this.mediaOverlaysRate = 1;\n\n /** \n *\n * @property mediaOverlaysVolume\n * @type number\n */\n\n this.mediaOverlaysVolume = 100;\n\n /** \n *\n * @property mediaOverlaysSynchronizationGranularity\n * @type string\n */\n \n this.mediaOverlaysSynchronizationGranularity = \"\";\n\n /** \n *\n * @property mediaOverlaysAutomaticPageTurn\n * @type bool\n */ \n\n this.mediaOverlaysAutomaticPageTurn = true;\n\n /** \n *\n * @property enableGPUHardwareAccelerationCSS3D\n * @type bool\n */ \n\n\n this.enableGPUHardwareAccelerationCSS3D = false;\n\n // -1 ==> disable\n // [0...n] ==> index of transition in pre-defined array\n \n /** \n *\n * @property pageTransition\n * @type number\n */ \n\n this.pageTransition = -1;\n \n /** \n *\n * @property scroll\n * @type string\n */ \n\n this.scroll = \"auto\";\n\n /**\n * Builds an array\n *\n * @method buildArray\n * @param {string} str\n * @return {array} retArr\n */\n\n function buildArray(str)\n {\n var retArr = [];\n var arr = str.split(/[\\s,;]+/); //','\n for (var i = 0; i < arr.length; i++)\n {\n var item = arr[i].trim();\n if (item !== \"\")\n {\n retArr.push(item);\n }\n }\n return retArr;\n }\n\n /**\n * Maps the properties to the settings\n *\n * @method mapProperty\n * @param {string} propName\n * @param settingsData\n * @param functionToApply\n */\n\n function mapProperty(propName, settingsData, functionToApply) {\n\n if(settingsData[propName] !== undefined) {\n if(functionToApply) {\n\n self[propName] = functionToApply(settingsData[propName]);\n }\n else {\n self[propName] = settingsData[propName];\n }\n }\n\n }\n\n /**\n * Updates the settings' new values\n *\n * @method update\n * @param settingsData\n */\n\n this.update = function(settingsData) {\n\n mapProperty(\"columnGap\", settingsData);\n mapProperty(\"columnMaxWidth\", settingsData);\n mapProperty(\"columnMinWidth\", settingsData);\n mapProperty(\"fontSize\", settingsData);\n mapProperty(\"fontSelection\", settingsData);\n mapProperty(\"mediaOverlaysPreservePlaybackWhenScroll\", settingsData);\n mapProperty(\"mediaOverlaysSkipSkippables\", settingsData);\n mapProperty(\"mediaOverlaysEscapeEscapables\", settingsData);\n mapProperty(\"mediaOverlaysSkippables\", settingsData, buildArray);\n mapProperty(\"mediaOverlaysEscapables\", settingsData, buildArray);\n mapProperty(\"mediaOverlaysEnableClick\", settingsData);\n mapProperty(\"mediaOverlaysRate\", settingsData);\n mapProperty(\"mediaOverlaysVolume\", settingsData);\n mapProperty(\"mediaOverlaysSynchronizationGranularity\", settingsData);\n mapProperty(\"mediaOverlaysAutomaticPageTurn\", settingsData);\n mapProperty(\"scroll\", settingsData);\n mapProperty(\"syntheticSpread\", settingsData);\n mapProperty(\"pageTransition\", settingsData);\n mapProperty(\"enableGPUHardwareAccelerationCSS3D\", settingsData);\n };\n\n this.update(settingsData);\n};\n return ViewerSettings;\n});\n\n","'use strict';\n\n/**\n * Copyright Marc J. Schmidt. See the LICENSE file at the top-level\n * directory of this distribution and at\n * https://github.com/marcj/css-element-queries/blob/master/LICENSE.\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define('ResizeSensor',factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory();\n } else {\n root.ResizeSensor = factory();\n }\n}(typeof window !== 'undefined' ? window : this, function () {\n\n // Make sure it does not throw in a SSR (Server Side Rendering) situation\n if (typeof window === \"undefined\") {\n return null;\n }\n // Only used for the dirty checking, so the event callback count is limited to max 1 call per fps per sensor.\n // In combination with the event based resize sensor this saves cpu time, because the sensor is too fast and\n // would generate too many unnecessary events.\n var requestAnimationFrame = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function (fn) {\n return window.setTimeout(fn, 20);\n };\n\n /**\n * Iterate over each of the provided element(s).\n *\n * @param {HTMLElement|HTMLElement[]} elements\n * @param {Function} callback\n */\n function forEachElement(elements, callback){\n var elementsType = Object.prototype.toString.call(elements);\n var isCollectionTyped = ('[object Array]' === elementsType\n || ('[object NodeList]' === elementsType)\n || ('[object HTMLCollection]' === elementsType)\n || ('[object Object]' === elementsType)\n || ('undefined' !== typeof jQuery && elements instanceof jQuery) //jquery\n || ('undefined' !== typeof Elements && elements instanceof Elements) //mootools\n );\n var i = 0, j = elements.length;\n if (isCollectionTyped) {\n for (; i < j; i++) {\n callback(elements[i]);\n }\n } else {\n callback(elements);\n }\n }\n\n /**\n * Get element size\n * @param {HTMLElement} element\n * @returns {Object} {width, height}\n */\n function getElementSize(element) {\n if (!element.getBoundingClientRect) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n }\n }\n\n var rect = element.getBoundingClientRect();\n return {\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n }\n }\n\n /**\n * Class for dimension change detection.\n *\n * @param {Element|Element[]|Elements|jQuery} element\n * @param {Function} callback\n *\n * @constructor\n */\n var ResizeSensor = function(element, callback) {\n\n var observer;\n\n /**\n *\n * @constructor\n */\n function EventQueue() {\n var q = [];\n this.add = function(ev) {\n q.push(ev);\n };\n\n var i, j;\n this.call = function(sizeInfo) {\n for (i = 0, j = q.length; i < j; i++) {\n q[i].call(this, sizeInfo);\n }\n };\n\n this.remove = function(ev) {\n var newQueue = [];\n for(i = 0, j = q.length; i < j; i++) {\n if(q[i] !== ev) newQueue.push(q[i]);\n }\n q = newQueue;\n };\n\n this.length = function() {\n return q.length;\n }\n }\n\n /**\n *\n * @param {HTMLElement} element\n * @param {Function} resized\n */\n function attachResizeEvent(element, resized) {\n if (!element) return;\n if (element.resizedAttached) {\n element.resizedAttached.add(resized);\n return;\n }\n\n element.resizedAttached = new EventQueue();\n element.resizedAttached.add(resized);\n\n element.resizeSensor = document.createElement('div');\n element.resizeSensor.dir = 'ltr';\n element.resizeSensor.className = 'resize-sensor';\n var style = 'position: absolute; left: -10px; top: -10px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden; max-width: 100%';\n var styleChild = 'position: absolute; left: 0; top: 0; transition: 0s;';\n\n element.resizeSensor.style.cssText = style;\n element.resizeSensor.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n element.appendChild(element.resizeSensor);\n\n var computedStyle = window.getComputedStyle(element);\n var position = computedStyle ? computedStyle.getPropertyValue('position') : null;\n if ('absolute' !== position && 'relative' !== position && 'fixed' !== position) {\n element.style.position = 'relative';\n }\n\n var expand = element.resizeSensor.childNodes[0];\n var expandChild = expand.childNodes[0];\n var shrink = element.resizeSensor.childNodes[1];\n\n var dirty, rafId;\n var size = getElementSize(element);\n var lastWidth = size.width;\n var lastHeight = size.height;\n var initialHiddenCheck = true, resetRAF_id;\n\n\n var resetExpandShrink = function () {\n expandChild.style.width = '100000px';\n expandChild.style.height = '100000px';\n\n expand.scrollLeft = 100000;\n expand.scrollTop = 100000;\n\n shrink.scrollLeft = 100000;\n shrink.scrollTop = 100000;\n };\n\n var reset = function() {\n // Check if element is hidden\n if (initialHiddenCheck) {\n if (!expand.scrollTop && !expand.scrollLeft) {\n\n // reset\n resetExpandShrink();\n\n // Check in next frame\n if (!resetRAF_id){\n resetRAF_id = requestAnimationFrame(function(){\n resetRAF_id = 0;\n\n reset();\n });\n }\n\n return;\n } else {\n // Stop checking\n initialHiddenCheck = false;\n }\n }\n\n resetExpandShrink();\n };\n element.resizeSensor.resetSensor = reset;\n\n var onResized = function() {\n rafId = 0;\n\n if (!dirty) return;\n\n lastWidth = size.width;\n lastHeight = size.height;\n\n if (element.resizedAttached) {\n element.resizedAttached.call(size);\n }\n };\n\n var onScroll = function() {\n size = getElementSize(element);\n dirty = size.width !== lastWidth || size.height !== lastHeight;\n\n if (dirty && !rafId) {\n rafId = requestAnimationFrame(onResized);\n }\n\n reset();\n };\n\n var addEvent = function(el, name, cb) {\n if (el.attachEvent) {\n el.attachEvent('on' + name, cb);\n } else {\n el.addEventListener(name, cb);\n }\n };\n\n addEvent(expand, 'scroll', onScroll);\n addEvent(shrink, 'scroll', onScroll);\n\n // Fix for custom Elements\n requestAnimationFrame(reset);\n }\n\n if (typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(function(element){\n forEachElement(element, function (elem) {\n callback.call(\n this,\n {\n width: elem.contentRect.width,\n height: elem.contentRect.height\n }\n );\n });\n });\n if (element !== undefined) {\n forEachElement(element, function(elem){\n observer.observe(elem);\n });\n }\n }\n else {\n forEachElement(element, function(elem){\n attachResizeEvent(elem, callback);\n });\n }\n\n this.detach = function(ev) {\n if (typeof ResizeObserver != \"undefined\") {\n forEachElement(element, function(elem){\n observer.unobserve(elem);\n });\n }\n else {\n ResizeSensor.detach(element, ev);\n }\n };\n\n this.reset = function() {\n element.resizeSensor.resetSensor();\n };\n };\n\n ResizeSensor.reset = function(element, ev) {\n forEachElement(element, function(elem){\n elem.resizeSensor.resetSensor();\n });\n };\n\n ResizeSensor.detach = function(element, ev) {\n forEachElement(element, function(elem){\n if (!elem) return;\n if(elem.resizedAttached && typeof ev === \"function\"){\n elem.resizedAttached.remove(ev);\n if(elem.resizedAttached.length()) return;\n }\n if (elem.resizeSensor) {\n if (elem.contains(elem.resizeSensor)) {\n elem.removeChild(elem.resizeSensor);\n }\n delete elem.resizeSensor;\n delete elem.resizedAttached;\n }\n });\n };\n\n return ResizeSensor;\n\n}));\n\n","// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\ndefine('readium_shared_js/views/one_page_view',[\"../globals\", \"jquery\", \"underscore\", \"eventEmitter\", \"./cfi_navigation_logic\", \"../helpers\", \"../models/viewer_settings\", \"../models/bookmark_data\", \"ResizeSensor\"],\n function (Globals, $, _, EventEmitter, CfiNavigationLogic, Helpers, ViewerSettings, BookmarkData, ResizeSensor) {\n\n/**\n * Renders one page of fixed layout spread\n *\n * @param options\n * @param classes\n * @param enableBookStyleOverrides\n * @constructor\n */\nvar OnePageView = function (options, classes, enableBookStyleOverrides, reader) {\n\n $.extend(this, new EventEmitter());\n\n var self = this;\n\n var _$epubHtml;\n var _$epubBody;\n var _$el;\n var _$iframe;\n var _currentSpineItem;\n var _spine = options.spine;\n var _iframeLoader = options.iframeLoader;\n var _navigationLogic = undefined;\n var _bookStyles = options.bookStyles;\n\n var _$viewport = options.$viewport;\n\n var _isIframeLoaded = false;\n\n var _$scaler;\n\n var _lastBodySize = {\n width: undefined,\n height: undefined\n };\n\n var PageTransitionHandler = function (opts) {\n var PageTransition = function (begin, end) {\n this.begin = begin;\n this.end = end;\n };\n\n var _pageTransition_OPACITY = new PageTransition(\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"0\");\n },\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"transform\", \"none\");\n\n Helpers.CSSTransition($el, \"opacity 150ms ease-out\");\n\n $el.css(\"opacity\", \"1\");\n }\n );\n\n var _pageTransition_TRANSLATE = new PageTransition(\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"0\");\n\n var elWidth = Math.ceil(meta_width * scale);\n\n var initialLeft = elWidth * 0.8 * (pageSwitchDir === 2 ? 1 : -1);\n var move = Helpers.CSSTransformString({\n left: Math.round(initialLeft),\n origin: \"50% 50% 0\",\n enable3D: _enable3D\n });\n $el.css(move);\n },\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"1\");\n\n Helpers.CSSTransition($el, \"transform 150ms ease-out\");\n\n $el.css(\"transform\", \"none\");\n }\n );\n\n var _pageTransition_ROTATE = new PageTransition(\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"0\");\n\n var elWidth = Math.ceil(meta_width * scale);\n\n var initialLeft = elWidth * 1.7 * (pageSwitchDir === 2 ? 1 : -1);\n var trans = Helpers.CSSTransformString({\n left: Math.round(initialLeft),\n angle: (pageSwitchDir === 2 ? -1 : 1) * 30,\n origin: \"50% 50% 0\",\n enable3D: _enable3D\n }); //(pageSwitchDir === 2 ? '0% 0%' : '100% 0%')\n $el.css(trans);\n },\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"1\");\n\n Helpers.CSSTransition($el, \"transform 300ms ease-in-out\");\n\n $el.css(\"transform\", \"none\");\n }\n );\n\n var _pageTransition_SWING = new PageTransition(\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"0\");\n\n // SUPER HACKY!! (just for demo)\n var isLeft = false;\n var isCenter = false;\n var isRight = false;\n for (var i = 0; i < classes.length; i++) {\n var c = classes[i].toLowerCase();\n if (c.indexOf(\"left\") >= 0) {\n isLeft = true;\n break;\n }\n if (c.indexOf(\"right\") >= 0) {\n isRight = true;\n break;\n }\n if (c.indexOf(\"center\") >= 0) {\n isCenter = true;\n break;\n }\n }\n\n var elWidth = Math.ceil(meta_width * scale);\n\n var initialLeft = elWidth * 0.5 * ((isLeft || isCenter && pageSwitchDir === 1) ? 1 : -1);\n var trans = Helpers.CSSTransformString({\n scale: 0.2,\n left: Math.round(initialLeft),\n angle: ((isLeft || isCenter && pageSwitchDir === 1) ? 1 : -1) * 30,\n origin: '50% 50% 0',\n enable3D: _enable3D\n });\n $el.css(trans);\n },\n function (scale, left, top, $el, meta_width, meta_height, pageSwitchDir) {\n $el.css(\"opacity\", \"1\");\n\n Helpers.CSSTransition($el, \"transform 400ms ease-out\");\n\n $el.css(\"transform\", \"none\");\n }\n );\n\n var _pageTransitions = [];\n _pageTransitions.push(_pageTransition_OPACITY); // 0\n _pageTransitions.push(_pageTransition_TRANSLATE); // 1\n _pageTransitions.push(_pageTransition_ROTATE); // 2\n _pageTransitions.push(_pageTransition_SWING); // 3\n\n var _disablePageTransitions = opts.disablePageTransitions || false;\n \n // TODO: page transitions are broken, sp we disable them to avoid nasty visual artefacts\n _disablePageTransitions = true;\n\n var _pageTransition = -1;\n\n var _enable3D = new ViewerSettings({}).enableGPUHardwareAccelerationCSS3D;\n\n var _viewerSettings = undefined;\n this.updateOptions = function (o) {\n _viewerSettings = o;\n\n var settings = _viewerSettings;\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\") {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n _enable3D = true;\n }\n\n if (o.pageTransition !== null && typeof o.pageTransition !== \"undefined\") {\n _pageTransition = o.pageTransition;\n }\n };\n this.updateOptions(opts);\n\n var _pageSwitchDir = 0;\n var _pageSwitchActuallyChanged = false;\n var _pageSwitchActuallyChanged_IFRAME_LOAD = false;\n\n // dir: 0 => new or same page, 1 => previous, 2 => next\n this.updatePageSwitchDir = function (dir, hasChanged) {\n if (_pageSwitchActuallyChanged_IFRAME_LOAD) {\n return;\n }\n\n _pageSwitchDir = dir;\n _pageSwitchActuallyChanged = hasChanged;\n };\n\n this.onIFrameLoad = function () {\n _pageSwitchActuallyChanged_IFRAME_LOAD = true; // second pass, but initial display for transition\n };\n\n this.transformContentImmediate_BEGIN = function ($el, scale, left, top) {\n var pageSwitchActuallyChanged = _pageSwitchActuallyChanged || _pageSwitchActuallyChanged_IFRAME_LOAD;\n _pageSwitchActuallyChanged_IFRAME_LOAD = false;\n\n if (_disablePageTransitions || _pageTransition === -1) return;\n\n Helpers.CSSTransition($el, \"all 0 ease 0\");\n\n if (!pageSwitchActuallyChanged) return;\n\n var pageTransition = (_pageTransition >= 0 && _pageTransition < _pageTransitions.length) ? _pageTransitions[_pageTransition] : undefined;\n\n if (_pageSwitchDir === 0 || !pageTransition) {\n $el.css(\"opacity\", \"0\");\n }\n else {\n pageTransition.begin(scale, left, top, $el, self.meta_width(), self.meta_height(), _pageSwitchDir);\n }\n };\n\n this.transformContentImmediate_END = function ($el, scale, left, top) {\n if (_disablePageTransitions || _pageTransition === -1) {\n $el.css(\"transform\", \"none\");\n return;\n }\n\n setTimeout(function () {\n var pageTransition = (_pageTransition >= 0 && _pageTransition < _pageTransitions.length) ? _pageTransitions[_pageTransition] : undefined;\n\n if (_pageSwitchDir === 0 || !pageTransition) {\n $el.css(\"transform\", \"none\");\n\n Helpers.CSSTransition($el, \"opacity 250ms linear\");\n\n $el.css(\"opacity\", \"1\");\n }\n else {\n pageTransition.end(scale, left, top, $el, self.meta_width(), self.meta_height(), _pageSwitchDir);\n }\n\n }, 10);\n };\n };\n var _pageTransitionHandler = new PageTransitionHandler(options);\n\n\n // fixed layout does not apply user styles to publisher content, but reflowable scroll view does\n var _enableBookStyleOverrides = enableBookStyleOverrides || false;\n\n var _meta_size = {\n width: 0,\n height: 0\n };\n\n this.element = function () {\n return _$el;\n };\n\n this.meta_height = function () {\n return _meta_size.height;\n };\n\n this.meta_width = function () {\n return _meta_size.width;\n };\n\n this.isDisplaying = function () {\n\n return _isIframeLoaded; //_$iframe && _$iframe[0] && _$epubHtml\n };\n\n this.render = function () {\n\n var template = Helpers.loadTemplate(\"single_page_frame\", {});\n\n _$el = $(template);\n\n _$scaler = $(\"#scaler\", _$el);\n\n Helpers.CSSTransition(_$el, \"all 0 ease 0\");\n\n _$el.css(\"transform\", \"none\");\n\n var settings = reader.viewerSettings();\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\") {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n\n // This fixes rendering issues with WebView (native apps), which crops content embedded in iframes unless GPU hardware acceleration is enabled for CSS rendering.\n _$el.css(\"transform\", \"translateZ(0)\");\n }\n\n _$el.css(\"height\", \"100%\");\n _$el.css(\"width\", \"100%\");\n\n for (var i = 0, count = classes.length; i < count; i++) {\n _$el.addClass(classes[i]);\n }\n\n _$iframe = $(\"iframe\", _$el);\n\n return this;\n };\n\n\n this.decorateIframe = function () {\n if (!_$iframe || !_$iframe.length) return;\n\n _$iframe.css(\"border-bottom\", \"1px dashed silver\");\n _$iframe.css(\"border-top\", \"1px dashed silver\");\n };\n\n this.remove = function () {\n this.clear();\n \n _currentSpineItem = undefined;\n \n if (_$el && _$el[0]) {\n _$el.remove();\n }\n \n _$el = undefined;\n _$scaler = undefined;\n _$iframe = undefined;\n };\n\n this.clear = function () {\n _isIframeLoaded = false;\n \n if (_$iframe && _$iframe[0]) {\n _$iframe[0].src = \"\";\n }\n };\n\n this.currentSpineItem = function () {\n\n return _currentSpineItem;\n };\n\n function onIFrameLoad(success) {\n\n if (success) {\n _isIframeLoaded = true;\n var epubContentDocument = _$iframe[0].contentDocument;\n _$epubHtml = $(\"html\", epubContentDocument);\n if (!_$epubHtml || _$epubHtml.length == 0) {\n _$epubHtml = $(\"svg\", epubContentDocument);\n _$epubBody = undefined;\n } else {\n _$epubBody = $(\"body\", _$epubHtml);\n\n if (!_enableBookStyleOverrides) { // fixed layout\n _$epubBody.css(\"margin\", \"0\"); // ensures 8px margin default user agent stylesheet is reset to zero\n }\n }\n\n //_$epubHtml.css(\"overflow\", \"hidden\");\n\n if (_enableBookStyleOverrides) { // not fixed layout (reflowable in scroll view)\n self.applyBookStyles();\n }\n\n updateMetaSize();\n\n initResizeSensor();\n\n _pageTransitionHandler.onIFrameLoad();\n }\n }\n\n function initResizeSensor() {\n\n if (_$epubBody // undefined with SVG spine items\n && _enableBookStyleOverrides // not fixed layout (reflowable in scroll view)\n ) {\n\n var bodyElement = _$epubBody[0];\n if (bodyElement.resizeSensor) {\n return;\n }\n\n // We need to make sure the content has indeed be resized, especially\n // the first time it is triggered\n _lastBodySize.width = $(bodyElement).width();\n _lastBodySize.height = $(bodyElement).height();\n\n bodyElement.resizeSensor = new ResizeSensor(bodyElement, function() {\n\n var newBodySize = {\n width: $(bodyElement).width(),\n height: $(bodyElement).height()\n };\n\n console.debug(\"OnePageView content resized ...\", newBodySize.width, newBodySize.height, _currentSpineItem.idref);\n \n if (newBodySize.width != _lastBodySize.width || newBodySize.height != _lastBodySize.height) {\n _lastBodySize.width = newBodySize.width;\n _lastBodySize.height = newBodySize.height;\n\n console.debug(\"... updating pagination.\");\n\n var src = _spine.package.resolveRelativeUrl(_currentSpineItem.href);\n\n Globals.logEvent(\"OnePageView.Events.CONTENT_SIZE_CHANGED\", \"EMIT\", \"one_page_view.js [ \" + _currentSpineItem.href + \" -- \" + src + \" ]\");\n \n self.emit(OnePageView.Events.CONTENT_SIZE_CHANGED, _$iframe, _currentSpineItem);\n \n //updatePagination();\n } else {\n console.debug(\"... ignored (identical dimensions).\");\n }\n });\n }\n }\n \n var _viewSettings = undefined;\n this.setViewSettings = function (settings, docWillChange) {\n\n _viewSettings = settings;\n\n if (_enableBookStyleOverrides // not fixed layout (reflowable in scroll view)\n && !docWillChange) {\n self.applyBookStyles();\n }\n\n updateMetaSize();\n\n _pageTransitionHandler.updateOptions(settings);\n };\n\n function updateHtmlFontInfo() {\n\n if (!_enableBookStyleOverrides) return; // fixed layout (not reflowable in scroll view)\n\n if (_$epubHtml && _viewSettings) {\n var i = _viewSettings.fontSelection;\n var useDefault = !reader.fonts || !reader.fonts.length || i <= 0 || (i-1) >= reader.fonts.length;\n var font = (useDefault ?\n {} :\n reader.fonts[i - 1]);\n Helpers.UpdateHtmlFontAttributes(_$epubHtml, _viewSettings.fontSize, font, function() {});\n }\n }\n\n this.applyBookStyles = function () {\n\n if (!_enableBookStyleOverrides) return; // fixed layout (not reflowable in scroll view)\n\n if (_$epubHtml) {\n Helpers.setStyles(_bookStyles.getStyles(), _$epubHtml);\n updateHtmlFontInfo();\n }\n };\n\n //this is called by scroll_view for fixed spine item\n this.scaleToWidth = function (width) {\n\n if (_enableBookStyleOverrides) return; // not fixed layout (reflowable in scroll view)\n\n if (_meta_size.width <= 0) return; // resize event too early!\n\n var scale = width / _meta_size.width;\n self.transformContentImmediate(scale, 0, 0);\n };\n\n //this is called by scroll_view for reflowable spine item\n this.resizeIFrameToContent = function () {\n var contHeight = getContentDocHeight();\n //console.log(\"resizeIFrameToContent: \" + contHeight);\n\n self.setHeight(contHeight);\n\n self.showIFrame();\n };\n\n this.setHeight = function (height) {\n\n _$scaler.css(\"height\", height + \"px\");\n _$el.css(\"height\", height + \"px\");\n\n// _$iframe.css(\"height\", height + \"px\");\n };\n\n var _useCSSTransformToHideIframe = true;\n\n this.showIFrame = function () {\n\n _$iframe.css(\"visibility\", \"visible\");\n\n if (_useCSSTransformToHideIframe) {\n _$iframe.css(\"transform\", \"none\");\n\n var enable3D = false;\n var settings = _viewSettings;\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\") {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n enable3D = true;\n _$iframe.css(\"transform\", \"translateZ(0)\");\n }\n }\n else {\n _$iframe.css({left: \"0px\", top: \"0px\"});\n }\n };\n\n this.hideIFrame = function () {\n\n _$iframe.css(\"visibility\", \"hidden\");\n\n // With some books, despite the iframe and its containing div wrapper being hidden,\n // the iframe's contentWindow / contentDocument is still visible!\n // Thus why we translate the iframe out of view instead.\n\n if (_useCSSTransformToHideIframe) {\n var enable3D = false;\n var settings = _viewSettings;\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\") {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n enable3D = true;\n }\n\n var css = Helpers.CSSTransformString({left: \"10000\", top: \"10000\", enable3D: enable3D});\n _$iframe.css(css);\n }\n else {\n _$iframe.css({left: \"10000px\", top: \"10000px\"});\n }\n };\n\n function getContentDocHeight() {\n\n if (!_$iframe || !_$iframe.length) {\n return 0;\n }\n\n if (Helpers.isIframeAlive(_$iframe[0])) {\n var win = _$iframe[0].contentWindow;\n var doc = _$iframe[0].contentDocument;\n\n var height = Math.round(parseFloat(win.getComputedStyle(doc.documentElement).height)); //body can be shorter!\n return height;\n }\n else if (_$epubHtml) {\n console.error(\"getContentDocHeight ??\");\n\n var jqueryHeight = _$epubHtml.height();\n return jqueryHeight;\n }\n\n return 0;\n }\n\n // dir: 0 => new or same page, 1 => previous, 2 => next\n this.updatePageSwitchDir = function (dir, hasChanged) {\n _pageTransitionHandler.updatePageSwitchDir(dir, hasChanged);\n };\n\n\n this.transformContentImmediate = function (scale, left, top) {\n\n if (_enableBookStyleOverrides) return; // not fixed layout (reflowable in scroll view)\n\n var elWidth = Math.ceil(_meta_size.width * scale);\n var elHeight = Math.floor(_meta_size.height * scale);\n\n _pageTransitionHandler.transformContentImmediate_BEGIN(_$el, scale, left, top);\n\n _$el.css(\"left\", left + \"px\");\n _$el.css(\"top\", top + \"px\");\n _$el.css(\"width\", elWidth + \"px\");\n _$el.css(\"height\", elHeight + \"px\");\n\n if (!_$epubHtml) {\n// debugger;\n return;\n }\n\n var enable3D = false;\n var settings = _viewSettings;\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\") {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n enable3D = true;\n }\n \n if (_$epubBody // not SVG spine item (otherwise fails in Safari OSX)\n && reader.needsFixedLayoutScalerWorkAround()) {\n\n var css1 = Helpers.CSSTransformString({scale: scale, enable3D: enable3D});\n \n // See https://github.com/readium/readium-shared-js/issues/285 \n css1[\"min-width\"] = _meta_size.width;\n css1[\"min-height\"] = _meta_size.height;\n \n _$epubHtml.css(css1);\n\n // Ensures content dimensions matches viewport meta (authors / production tools should do this in their CSS...but unfortunately some don't).\n if (_$epubBody && _$epubBody.length) {\n _$epubBody.css({width:_meta_size.width, height:_meta_size.height});\n }\n\n var css2 = Helpers.CSSTransformString({scale : 1, enable3D: enable3D});\n css2[\"width\"] = _meta_size.width * scale;\n css2[\"height\"] = _meta_size.height * scale;\n\n _$scaler.css(css2);\n }\n else {\n var css = Helpers.CSSTransformString({scale: scale, enable3D: enable3D});\n css[\"width\"] = _meta_size.width;\n css[\"height\"] = _meta_size.height;\n _$scaler.css(css);\n }\n\n // Chrome workaround: otherwise text is sometimes invisible (probably a rendering glitch due to the 3D transform graphics backend?)\n //_$epubHtml.css(\"visibility\", \"hidden\"); // \"flashing\" in two-page spread mode is annoying :(\n _$epubHtml.css(\"opacity\", \"0.999\");\n\n self.showIFrame();\n\n setTimeout(function () {\n //_$epubHtml.css(\"visibility\", \"visible\");\n _$epubHtml.css(\"opacity\", \"1\");\n }, 0);\n \n // TODO: the CSS transitions do not work anymore, tested on Firefox and Chrome.\n // The line of code below still needs to be invoked, but the logic in _pageTransitionHandler probably need adjusting to work around the animation timing issue.\n // PS: opacity=1 above seems to interfere with the fade-in transition, probably a browser issue with mixing inner-iframe effects with effects applied to the iframe parent/ancestors.\n _pageTransitionHandler.transformContentImmediate_END(_$el, scale, left, top);\n };\n\n this.getCalculatedPageHeight = function () {\n return _$el.height();\n };\n\n this.transformContent = _.bind(_.debounce(this.transformContentImmediate, 50), self);\n\n function updateMetaSize() {\n\n _meta_size.width = 0;\n _meta_size.height = 0;\n\n if (_enableBookStyleOverrides) return; // not fixed layout (reflowable in scroll view)\n\n var size = undefined;\n\n var isFallbackDimension = false;\n var widthPercent = undefined;\n var heightPercent = undefined;\n\n var contentDocument = _$iframe[0].contentDocument;\n\n // first try to read viewport size\n var content = $('meta[name=viewport]', contentDocument).attr(\"content\");\n\n // if not found try viewbox (used for SVG)\n if (!content) {\n content = $('meta[name=viewbox]', contentDocument).attr(\"content\");\n }\n\n if (content) {\n size = parseMetaSize(content);\n }\n\n if (!size) {\n\n //var $svg = $(contentDocument).find('svg');\n // if($svg.length > 0) {\n if (contentDocument && contentDocument.documentElement && contentDocument.documentElement.nodeName && contentDocument.documentElement.nodeName.toLowerCase() == \"svg\") {\n\n var width = undefined;\n var height = undefined;\n\n var wAttr = contentDocument.documentElement.getAttribute(\"width\");\n var isWidthPercent = wAttr && wAttr.length >= 1 && wAttr[wAttr.length - 1] == '%';\n if (wAttr) {\n try {\n width = parseInt(wAttr, 10);\n }\n catch (err) {}\n }\n if (width && isWidthPercent) {\n widthPercent = width;\n width = undefined;\n }\n\n var hAttr = contentDocument.documentElement.getAttribute(\"height\");\n var isHeightPercent = hAttr && hAttr.length >= 1 && hAttr[hAttr.length - 1] == '%';\n if (hAttr) {\n try {\n height = parseInt(hAttr, 10);\n }\n catch (err) {}\n }\n if (height && isHeightPercent) {\n heightPercent = height;\n height = undefined;\n }\n\n if (width && height) {\n size = {\n width: width,\n height: height\n }\n }\n else {\n /// DISABLED (not a satisfactory fallback)\n // content = $svg.attr('viewBox');\n // if(content) {\n // size = parseViewBoxSize(content);\n // }\n //\n // if (size) {\n // console.warn(\"Viewport SVG: using viewbox!\");\n // }\n }\n }\n }\n\n if (!size && _currentSpineItem) {\n content = _currentSpineItem.getRenditionViewport();\n\n if (content) {\n size = parseMetaSize(content);\n if (size) {\n console.log(\"Viewport: using rendition:viewport dimensions\");\n }\n }\n }\n\n if (!size) {\n // Image fallback (auto-generated HTML template when WebView / iFrame is fed with image media type)\n var $img = $(contentDocument).find('img');\n if ($img.length > 0) {\n size = {\n width: $img.width(),\n height: $img.height()\n };\n\n var isImage = _currentSpineItem && _currentSpineItem.media_type && _currentSpineItem.media_type.length && _currentSpineItem.media_type.indexOf(\"image/\") == 0;\n if (!isImage) {\n console.warn(\"Viewport: using img dimensions!\");\n }\n }\n else {\n $img = $(contentDocument).find('image');\n if ($img.length > 0) {\n var width = undefined;\n var height = undefined;\n\n var wAttr = $img[0].getAttribute(\"width\");\n if (wAttr) {\n try {\n width = parseInt(wAttr, 10);\n }\n catch (err) {}\n }\n var hAttr = $img[0].getAttribute(\"height\");\n if (hAttr) {\n try {\n height = parseInt(hAttr, 10);\n }\n catch (err) {}\n }\n\n\n if (width && height) {\n size = {\n width: width,\n height: height\n };\n\n isFallbackDimension = true;\n\n console.warn(\"Viewport: using image dimensions!\");\n }\n }\n }\n }\n\n if (!size) {\n // Not a great fallback, as it has the aspect ratio of the full window, but it is better than no display at all.\n width = _$viewport.width();\n height = _$viewport.height();\n\n // hacky method to determine the actual available horizontal space (half the two-page spread is a reasonable approximation, this means that whatever the size of the other iframe / one_page_view, the aspect ratio of this one exactly corresponds to half the viewport rendering surface)\n var isTwoPageSyntheticSpread = $(\"iframe.iframe-fixed\", _$viewport).length > 1;\n if (isTwoPageSyntheticSpread) width *= 0.5;\n\n // the original SVG width/height might have been specified as a percentage of the containing viewport\n if (widthPercent) {\n width *= (widthPercent / 100);\n }\n if (heightPercent) {\n height *= (heightPercent / 100);\n }\n\n size = {\n width: width,\n height: height\n };\n\n isFallbackDimension = true;\n\n console.warn(\"Viewport: using browser / e-reader viewport dimensions!\");\n }\n\n if (size) {\n _meta_size.width = size.width;\n _meta_size.height = size.height;\n\n // Not strictly necessary, let's preserve the percentage values\n // if (isFallbackDimension && contentDocument && contentDocument.documentElement && contentDocument.documentElement.nodeName && contentDocument.documentElement.nodeName.toLowerCase() == \"svg\") {\n // contentDocument.documentElement.setAttribute(\"width\", size.width + \"px\");\n // contentDocument.documentElement.setAttribute(\"height\", size.height + \"px\");\n // }\n }\n }\n\n function onUnload (spineItem) {\n if (spineItem) {\n \n Globals.logEvent(\"CONTENT_DOCUMENT_UNLOADED\", \"EMIT\", \"one_page_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_UNLOADED, _$iframe, spineItem);\n }\n }\n\n this.onUnload = function () {\n onUnload(_currentSpineItem);\n };\n\n //expected callback signature: function(success, $iframe, spineItem, isNewlyLoaded, context)\n this.loadSpineItem = function (spineItem, callback, context) {\n\n if (_currentSpineItem != spineItem) {\n\n var prevSpineItem = _currentSpineItem;\n _currentSpineItem = spineItem;\n var src = _spine.package.resolveRelativeUrl(spineItem.href);\n\n // both fixed layout and reflowable documents need hiding due to flashing during layout/rendering\n //hide iframe until content is scaled\n self.hideIFrame();\n\n onUnload(prevSpineItem);\n\n\n Globals.logEvent(\"OnePageView.Events.SPINE_ITEM_OPEN_START\", \"EMIT\", \"one_page_view.js [ \" + spineItem.href + \" -- \" + src + \" ]\");\n self.emit(OnePageView.Events.SPINE_ITEM_OPEN_START, _$iframe, _currentSpineItem);\n \n _iframeLoader.loadIframe(_$iframe[0], src, function (success) {\n\n if (success && callback) {\n var func = function () {\n callback(success, _$iframe, _currentSpineItem, true, context);\n };\n\n if (Helpers.isIframeAlive(_$iframe[0])) {\n onIFrameLoad(success); // applies styles\n\n func();\n }\n else {\n console.error(\"onIFrameLoad !! doc && win + TIMEOUT\");\n console.debug(spineItem.href);\n\n onIFrameLoad(success);\n\n setTimeout(func, 500);\n }\n }\n else {\n onIFrameLoad(success);\n }\n\n }, self, {spineItem: _currentSpineItem});\n }\n else {\n if (callback) {\n callback(true, _$iframe, _currentSpineItem, false, context);\n }\n }\n };\n //\n // function parseViewBoxSize(viewBoxString) {\n //\n // var parts = viewBoxString.split(' ');\n //\n // if(parts.length < 4) {\n // console.warn(viewBoxString + \" value is not valid viewBox size\")\n // return undefined;\n // }\n //\n // var width = parseInt(parts[2]);\n // var height = parseInt(parts[3]);\n //\n // if(!isNaN(width) && !isNaN(height)) {\n // return { width: width, height: height} ;\n // }\n //\n // return undefined;\n // }\n\n function parseMetaSize(content) {\n\n var pairs = content.replace(/\\s/g, '').split(\",\");\n\n var dict = {};\n\n for (var i = 0; i < pairs.length; i++) {\n var nameVal = pairs[i].split(\"=\");\n if (nameVal.length == 2) {\n\n dict[nameVal[0]] = nameVal[1];\n }\n }\n\n var width = Number.NaN;\n var height = Number.NaN;\n\n if (dict[\"width\"]) {\n width = parseInt(dict[\"width\"]);\n }\n\n if (dict[\"height\"]) {\n height = parseInt(dict[\"height\"]);\n }\n\n if (!isNaN(width) && !isNaN(height)) {\n return {width: width, height: height};\n }\n\n return undefined;\n }\n\n function getVisibleContentOffsets() {\n return {\n top: -_$el.parent().scrollTop(),\n left: 0\n };\n }\n \n function getFrameDimensions() {\n if (reader.needsFixedLayoutScalerWorkAround()) {\n var parentEl = _$el.parent()[0];\n return {\n width: parentEl.clientWidth,\n height: parentEl.clientHeight\n };\n }\n return {\n width: _meta_size.width,\n height: _meta_size.height\n };\n }\n \n this.getNavigator = function () {\n return new CfiNavigationLogic({\n $iframe: _$iframe,\n frameDimensionsGetter: getFrameDimensions,\n visibleContentOffsetsGetter: getVisibleContentOffsets,\n classBlacklist: [\"cfi-marker\", \"mo-cfi-highlight\", \"resize-sensor\", \"resize-sensor-expand\", \"resize-sensor-shrink\", \"resize-sensor-inner\", \"js-hypothesis-config\", \"js-hypothesis-embed\"],\n elementBlacklist: [\"hypothesis-adder\"],\n idBlacklist: [\"MathJax_Message\", \"MathJax_SVG_Hidden\"]\n });\n };\n\n this.getElementByCfi = function (spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist) {\n\n if (spineItemIdref != _currentSpineItem.idref) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n var navigation = self.getNavigator();\n return navigation.getElementByCfi(cfi, classBlacklist, elementBlacklist, idBlacklist);\n };\n\n this.getElementById = function (spineItemIdref, id) {\n\n if (spineItemIdref != _currentSpineItem.idref) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n var navigation = self.getNavigator();\n return navigation.getElementById(id);\n };\n\n this.getElement = function (spineItemIdref, selector) {\n\n if(spineItemIdref != _currentSpineItem.idref) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n var navigation = self.getNavigator();\n return navigation.getElement(selector);\n };\n\n this.getFirstVisibleMediaOverlayElement = function() {\n var navigation = self.getNavigator();\n return navigation.getFirstVisibleMediaOverlayElement();\n };\n\n this.offset = function () {\n if (_$iframe) {\n return _$iframe.offset();\n }\n return undefined;\n };\n\n this.getVisibleElementsWithFilter = function (filterFunction) {\n var navigation = self.getNavigator();\n var elements = navigation.getVisibleElementsWithFilter(null, filterFunction);\n return elements;\n };\n\n this.getVisibleElements = function (selector) {\n\n var navigation = self.getNavigator();\n var elements = navigation.getAllVisibleElementsWithSelector(selector);\n return elements;\n };\n\n this.getAllElementsWithFilter = function (filterFunction, outsideBody) {\n var navigation = self.getNavigator();\n var elements = navigation.getAllElementsWithFilter(filterFunction, outsideBody);\n return elements;\n };\n\n this.getElements = function(spineItemIdref, selector) {\n\n if(spineItemIdref != _currentSpineItem.idref) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n var navigation = self.getNavigator();\n\n return navigation.getElements(selector);\n };\n\n this.getNodeRangeInfoFromCfi = function (spineIdRef, partialCfi) {\n if (spineIdRef != _currentSpineItem.idref) {\n console.warn(\"spine item is not loaded\");\n return undefined;\n }\n var navigation = self.getNavigator();\n\n return navigation.getNodeRangeInfoFromCfi(partialCfi);\n };\n\n function createBookmarkFromCfi(cfi) {\n if (!_currentSpineItem) {\n return null;\n }\n\n return new BookmarkData(_currentSpineItem.idref, cfi);\n }\n\n this.getLoadedContentFrames = function () {\n return [{spineItem: _currentSpineItem, $iframe: _$iframe}];\n };\n\n this.getFirstVisibleCfi = function (visibleContentOffsets, frameDimensions) {\n return createBookmarkFromCfi(self.getNavigator().getFirstVisibleCfi(visibleContentOffsets, frameDimensions));\n };\n\n this.getLastVisibleCfi = function (visibleContentOffsets, frameDimensions) {\n return createBookmarkFromCfi(self.getNavigator().getLastVisibleCfi(visibleContentOffsets, frameDimensions));\n };\n\n this.getDomRangeFromRangeCfi = function (rangeCfi, rangeCfi2, inclusive) {\n return self.getNavigator().getDomRangeFromRangeCfi(rangeCfi, rangeCfi2, inclusive);\n };\n\n this.getRangeCfiFromDomRange = function (domRange) {\n return createBookmarkFromCfi(self.getNavigator().getRangeCfiFromDomRange(domRange));\n };\n\n this.getVisibleCfiFromPoint = function (x, y, precisePoint) {\n return createBookmarkFromCfi(self.getNavigator().getVisibleCfiFromPoint(x, y, precisePoint));\n };\n\n this.getRangeCfiFromPoints = function(startX, startY, endX, endY) {\n return createBookmarkFromCfi(self.getNavigator().getRangeCfiFromPoints(startX, startY, endX, endY));\n };\n\n this.getCfiForElement = function(element) {\n return createBookmarkFromCfi(self.getNavigator().getCfiForElement(element));\n };\n\n this.getElementFromPoint = function (x, y) {\n return self.getNavigator().getElementFromPoint(x, y);\n };\n\n this.getStartCfi = function () {\n return createBookmarkFromCfi(self.getNavigator().getStartCfi());\n };\n\n this.getEndCfi = function () {\n return createBookmarkFromCfi(self.getNavigator().getEndCfi());\n };\n\n this.getNearestCfiFromElement = function(element) {\n return createBookmarkFromCfi(self.getNavigator().getNearestCfiFromElement(element));\n };\n};\n\nOnePageView.Events = {\n SPINE_ITEM_OPEN_START: \"SpineItemOpenStart\",\n CONTENT_SIZE_CHANGED: \"ContentSizeChanged\"\n};\nreturn OnePageView;\n});\n\n","// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/page_open_request',[],function() {\n/**\n * Representation of opening page request\n * Provides the spine item to be opened and one of the following properties:\n * spineItemPageIndex {Number},\n * elementId {String},\n * elementCfi {String},\n * firstPage {bool},\n * lastPage {bool}\n *\n * @class Models.PageOpenRequest\n * @constructor\n * @param {Models.SpineItem} spineItem\n * @param {object} [initiator]\n *\n\n */\nvar PageOpenRequest = function(spineItem, initiator) {\n\n this.spineItem = spineItem;\n this.spineItemPageIndex = undefined;\n this.elementId = undefined;\n this.elementCfi = undefined;\n this.firstVisibleCfi = undefined;\n this.lastVisibleCfi = undefined;\n this.firstPage = false;\n this.lastPage = false;\n this.initiator = initiator;\n\n /**\n * Resets the reading system\n *\n * @method reset\n */\n\n this.reset = function() {\n this.spineItemPageIndex = undefined;\n this.elementId = undefined;\n this.elementCfi = undefined;\n this.firstPage = false;\n this.lastPage = false;\n };\n\n /**\n * Sets the first page of the book\n *\n * @method setFirstPage\n */\n\n this.setFirstPage = function() {\n this.reset();\n this.firstPage = true;\n };\n\n /**\n * Sets the last page of the book\n *\n * @method setLastPage\n */\n\n this.setLastPage = function() {\n this.reset();\n this.lastPage = true;\n };\n\n /**\n * Sets the index of the book\n *\n * @method setPageIndex\n * @param pageIndex\n */\n\n this.setPageIndex = function(pageIndex) {\n this.reset();\n this.spineItemPageIndex = pageIndex;\n };\n\n /**\n * Sets the ID of the current element\n *\n * @method setElementId\n * @param {number} elementId \n */\n\n this.setElementId = function(elementId) {\n this.reset();\n this.elementId = elementId;\n };\n \n /**\n * Sets the CFI of the current element\n *\n * @method setElementCfi\n * @param elementCfi\n */\n\n this.setElementCfi = function(elementCfi) {\n this.reset();\n this.elementCfi = elementCfi;\n };\n\n // Used by ReflowView to better keep track of the current page\n // using just a bookmark to firstVisibleElement makes the current\n // page gradually shift to the beginning of the chapter. By bookmarking\n // both the first and last visible elements, we can keep track of the \n // \"middle\" of the visible area.\n this.setFirstAndLastVisibleCfi = function(firstVisibleCfi, lastVisibleCfi) {\n this.reset();\n this.firstVisibleCfi = firstVisibleCfi;\n this.lastVisibleCfi = lastVisibleCfi;\n }\n\n};\n\nreturn PageOpenRequest;\n});\n","// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine ('readium_shared_js/views/fixed_view',[\"../globals\", \"jquery\", \"underscore\", \"eventEmitter\", \"../models/bookmark_data\", \"../models/current_pages_info\",\n \"../models/fixed_page_spread\", \"./one_page_view\", \"../models/page_open_request\", \"../helpers\"],\n function(Globals, $, _, EventEmitter, BookmarkData, CurrentPagesInfo,\n Spread, OnePageView, PageOpenRequest, Helpers) {\n/**\n * View for rendering fixed layout page spread\n * @param options\n * @param reader\n * @constructor\n */\nvar FixedView = function(options, reader){\n\n $.extend(this, new EventEmitter());\n\n var self = this;\n\n var _$el;\n var _$viewport = $(options.$viewport);\n var _spine = options.spine;\n var _userStyles = options.userStyles;\n var _bookStyles = options.bookStyles;\n var _zoom = options.zoom || {style: 'default'};\n var _currentScale;\n var _iframeLoader = options.iframeLoader;\n var _viewSettings = undefined;\n\n var _leftPageView = createOnePageView(\"fixed-page-frame-left\");\n var _rightPageView = createOnePageView(\"fixed-page-frame-right\");\n var _centerPageView = createOnePageView(\"fixed-page-frame-center\");\n\n var _pageViews = [];\n _pageViews.push(_leftPageView);\n _pageViews.push(_rightPageView);\n _pageViews.push(_centerPageView);\n\n var _spread = new Spread(_spine, false);\n var _bookMargins;\n var _contentMetaSize;\n var _isRedrowing = false;\n var _redrawRequest = false;\n\n function createOnePageView(elementClass) {\n\n var pageView = new OnePageView(options,\n [elementClass],\n false, //enableBookStyleOverrides\n reader\n );\n\n\n pageView.on(OnePageView.Events.SPINE_ITEM_OPEN_START, function($iframe, spineItem) {\n \n Globals.logEvent(\"OnePageView.Events.SPINE_ITEM_OPEN_START\", \"ON\", \"fixed_view.js [ \" + spineItem.href + \" ]\");\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOAD_START\", \"EMIT\", \"fixed_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOAD_START, $iframe, spineItem);\n });\n\n pageView.on(Globals.Events.CONTENT_DOCUMENT_UNLOADED, function($iframe, spineItem) {\n\n Globals.logEvent(\"CONTENT_DOCUMENT_UNLOADED\", \"ON\", \"fixed_view.js [ \" + spineItem.href + \" ]\");\n\n Globals.logEvent(\"CONTENT_DOCUMENT_UNLOADED\", \"EMIT\", \"fixed_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_UNLOADED, $iframe, spineItem);\n });\n\n return pageView;\n }\n\n this.isReflowable = function() {\n return false;\n };\n\n this.setZoom = function(zoom){\n _zoom = zoom;\n\n resizeBook(false); \n }\n\n this.render = function(){\n\n var template = Helpers.loadTemplate(\"fixed_book_frame\", {});\n\n _$el = $(template);\n\n Helpers.CSSTransition(_$el, \"all 0 ease 0\");\n \n _$el.css(\"overflow\", \"hidden\");\n \n // Removed, see one_page_view@render()\n // var settings = reader.viewerSettings();\n // if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\")\n // {\n // //defaults\n // settings = new Globals.Models.ViewerSettings({});\n // }\n // if (settings.enableGPUHardwareAccelerationCSS3D) {\n //\n // // This fixes rendering issues with WebView (native apps), which crops content embedded in iframes unless GPU hardware acceleration is enabled for CSS rendering.\n // _$el.css(\"transform\", \"translateZ(0)\");\n // }\n \n _$viewport.append(_$el);\n\n self.applyStyles();\n\n return this;\n };\n\n this.remove = function() {\n\n _$el.remove();\n };\n\n\n this.setViewSettings = function(settings, docWillChange) {\n \n _viewSettings = settings;\n \n _spread.setSyntheticSpread(Helpers.deduceSyntheticSpread(_$viewport, getFirstVisibleItem(), _viewSettings) == true); // force boolean value (from truthy/falsey return value)\n\n var views = getDisplayingViews();\n for(var i = 0, count = views.length; i < count; i++) {\n views[i].setViewSettings(settings, docWillChange);\n }\n };\n\n function getFirstVisibleItem() {\n\n var visibleItems = _spread.validItems();\n return visibleItems[0];\n }\n\n function redraw(initiator, paginationRequest) {\n\n if(_isRedrowing) {\n _redrawRequest = {initiator: initiator, paginationRequest: paginationRequest};\n return;\n }\n\n _isRedrowing = true;\n\n var context = {isElementAdded : false};\n\n var pageLoadDeferrals = createPageLoadDeferrals([\n {pageView: _leftPageView, spineItem: _spread.leftItem, context: context},\n {pageView: _rightPageView, spineItem: _spread.rightItem, context: context},\n {pageView: _centerPageView, spineItem: _spread.centerItem, context: context}]);\n\n $.when.apply($, pageLoadDeferrals).done(function(){\n _isRedrowing = false;\n\n if(_redrawRequest) {\n var p1 = _redrawRequest.initiator;\n var p2 = _redrawRequest.paginationRequest;\n _redrawRequest = undefined;\n redraw(p1, p2);\n }\n else {\n \n if(context.isElementAdded) {\n //self.applyStyles();\n \n Helpers.setStyles(_userStyles.getStyles(), _$el.parent());\n updateBookMargins();\n // updateContentMetaSize() and resizeBook() are invoked in onPagesLoaded below\n }\n\n if (paginationRequest)\n {\n onPagesLoaded(initiator, paginationRequest.spineItem, paginationRequest.elementId)\n }\n else\n {\n onPagesLoaded(initiator);\n }\n }\n\n });\n\n }\n\n // dir: 0 => new or same page, 1 => previous, 2 => next\n var updatePageSwitchDir = function(dir, hasChanged)\n {\n // irrespective of display state\n if (_leftPageView) _leftPageView.updatePageSwitchDir(dir, hasChanged);\n if (_rightPageView) _rightPageView.updatePageSwitchDir(dir, hasChanged);\n if (_centerPageView) _centerPageView.updatePageSwitchDir(dir, hasChanged);\n\n // var views = getDisplayingViews();\n // for(var i = 0, count = views.length; i < count; i++) {\n // views[i].updatePageSwitchDir(dir, hasChanged);\n // }\n };\n \n\n this.applyStyles = function() {\n\n Helpers.setStyles(_userStyles.getStyles(), _$el.parent());\n updateBookMargins();\n \n updateContentMetaSize();\n resizeBook();\n };\n\n this.applyBookStyles = function() {\n\n var views = getDisplayingViews();\n\n for(var i = 0, count = views.length; i < count; i++) {\n views[i].applyBookStyles();\n }\n };\n\n function createPageLoadDeferrals(viewItemPairs) {\n\n var pageLoadDeferrals = [];\n\n for(var i = 0; i < viewItemPairs.length; i++) {\n\n var dfd = updatePageViewForItem(viewItemPairs[i].pageView, viewItemPairs[i].spineItem, viewItemPairs[i].context);\n pageLoadDeferrals.push(dfd);\n }\n\n return pageLoadDeferrals;\n\n }\n\n function onPagesLoaded(initiator, paginationRequest_spineItem, paginationRequest_elementId) {\n \n updateContentMetaSize();\n resizeBook();\n \n window.setTimeout(function () {\n \n Globals.logEvent(\"InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED\", \"EMIT\", \"fixed_view.js\");\n self.emit(Globals.InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED, {\n paginationInfo: self.getPaginationInfo(),\n initiator: initiator,\n spineItem: paginationRequest_spineItem,\n elementId: paginationRequest_elementId\n });\n }, 60);\n //this delay of 60ms is to ensure that it triggers\n // after any other 10-50ms timers that defer the pagination process in OnePageView\n }\n\n this.onViewportResize = function() {\n\n //because change of the viewport orientation can alter pagination behaviour we have to check if\n //visible content stays same\n\n var firstVisibleItem = getFirstVisibleItem();\n if(!firstVisibleItem) {\n return;\n }\n\n var isSyntheticSpread = Helpers.deduceSyntheticSpread(_$viewport, firstVisibleItem, _viewSettings) == true; // force boolean value (from truthy/falsey return value)\n\n if(isSpreadChanged(firstVisibleItem, isSyntheticSpread)) {\n _spread.setSyntheticSpread(isSyntheticSpread);\n var paginationRequest = new PageOpenRequest(firstVisibleItem, self);\n self.openPage(paginationRequest);\n }\n else {\n resizeBook(true);\n }\n };\n\n function isSpreadChanged(firstVisibleItem, isSyntheticSpread) {\n\n var tmpSpread = new Spread(_spine, isSyntheticSpread);\n tmpSpread.openItem(firstVisibleItem);\n\n return _spread.leftItem != tmpSpread.leftItem || _spread.rightItem != tmpSpread.rightItem || _spread.centerItem != tmpSpread.centerItem;\n }\n\n this.getViewScale = function(){\n return _currentScale;\n };\n\n function isContentRendered() {\n\n if(!_contentMetaSize || !_bookMargins) {\n return false;\n }\n\n var viewportWidth = _$viewport.width();\n var viewportHeight = _$viewport.height();\n\n return viewportWidth && viewportHeight;\n }\n\n function resizeBook(viewportIsResizing) {\n\n updatePageSwitchDir(0, false);\n \n if(!isContentRendered()) {\n return;\n }\n\n var viewportWidth = _$viewport.width();\n var viewportHeight = _$viewport.height();\n\n var leftPageMargins = _leftPageView.isDisplaying() ? Helpers.Margins.fromElement(_leftPageView.element()) : Helpers.Margins.empty();\n var rightPageMargins = _rightPageView.isDisplaying() ? Helpers.Margins.fromElement(_rightPageView.element()) : Helpers.Margins.empty();\n var centerPageMargins = _centerPageView.isDisplaying() ? Helpers.Margins.fromElement(_centerPageView.element()) : Helpers.Margins.empty();\n\n var pageMargins = getMaxPageMargins(leftPageMargins, rightPageMargins, centerPageMargins);\n\n var potentialTargetElementSize = { width: viewportWidth - _bookMargins.width(),\n height: viewportHeight - _bookMargins.height()};\n\n var potentialContentSize = { width: potentialTargetElementSize.width - pageMargins.width(),\n height: potentialTargetElementSize.height - pageMargins.height() };\n\n if(potentialTargetElementSize.width <= 0 || potentialTargetElementSize.height <= 0) {\n return;\n }\n\n var horScale = potentialContentSize.width / _contentMetaSize.width;\n var verScale = potentialContentSize.height / _contentMetaSize.height;\n \n _$viewport.css(\"overflow\", \"auto\");\n \n var scale;\n if (_zoom.style == 'fit-width'){\n scale = horScale;\n }\n else if (_zoom.style == 'fit-height'){\n scale = verScale;\n }\n else if (_zoom.style == 'user'){\n scale = _zoom.scale;\n }\n else{\n scale = Math.min(horScale, verScale);\n\n // no need for pan during \"viewport fit\" zoom\n _$viewport.css(\"overflow\", \"hidden\");\n }\n\n _currentScale = scale;\n\n var contentSize = { width: _contentMetaSize.width * scale,\n height: _contentMetaSize.height * scale };\n\n var targetElementSize = { width: contentSize.width + pageMargins.width(),\n height: contentSize.height + pageMargins.height() };\n\n var bookSize = { width: targetElementSize.width + _bookMargins.width(),\n height: targetElementSize.height + _bookMargins.height() };\n\n\n var bookLeft = Math.floor((viewportWidth - bookSize.width) / 2);\n var bookTop = Math.floor((viewportHeight - bookSize.height) / 2);\n\n if(bookLeft < 0) bookLeft = 0;\n if(bookTop < 0) bookTop = 0;\n \n _$el.css(\"left\", bookLeft + \"px\");\n _$el.css(\"top\", bookTop + \"px\");\n _$el.css(\"width\", targetElementSize.width + \"px\");\n _$el.css(\"height\", targetElementSize.height + \"px\");\n\n var left = _bookMargins.padding.left;\n var top = _bookMargins.padding.top;\n\n var transFunc = viewportIsResizing ? \"transformContentImmediate\" : \"transformContent\";\n\n if(_leftPageView.isDisplaying()) {\n\n _leftPageView[transFunc](scale, left, top);\n }\n\n if(_rightPageView.isDisplaying()) {\n\n left += _contentMetaSize.separatorPosition * scale;\n\n if(_leftPageView.isDisplaying()) {\n left += leftPageMargins.left;\n }\n\n _rightPageView[transFunc](scale, left, top);\n }\n\n if(_centerPageView.isDisplaying()) {\n\n _centerPageView[transFunc](scale, left, top);\n }\n \n Globals.logEvent(\"FXL_VIEW_RESIZED\", \"EMIT\", \"fixed_view.js\");\n self.emit(Globals.Events.FXL_VIEW_RESIZED);\n }\n\n function getMaxPageMargins(leftPageMargins, rightPageMargins, centerPageMargins) {\n\n var sumMargin = {\n left: Math.max(leftPageMargins.margin.left, rightPageMargins.margin.left, centerPageMargins.margin.left),\n right: Math.max(leftPageMargins.margin.right, rightPageMargins.margin.right, centerPageMargins.margin.right),\n top: Math.max(leftPageMargins.margin.top, rightPageMargins.margin.top, centerPageMargins.margin.top),\n bottom: Math.max(leftPageMargins.margin.bottom, rightPageMargins.margin.bottom, centerPageMargins.margin.bottom)\n };\n\n var sumBorder = {\n left: Math.max(leftPageMargins.border.left, rightPageMargins.border.left, centerPageMargins.border.left),\n right: Math.max(leftPageMargins.border.right, rightPageMargins.border.right, centerPageMargins.border.right),\n top: Math.max(leftPageMargins.border.top, rightPageMargins.border.top, centerPageMargins.border.top),\n bottom: Math.max(leftPageMargins.border.bottom, rightPageMargins.border.bottom, centerPageMargins.border.bottom)\n };\n\n var sumPAdding = {\n left: Math.max(leftPageMargins.padding.left, rightPageMargins.padding.left, centerPageMargins.padding.left),\n right: Math.max(leftPageMargins.padding.right, rightPageMargins.padding.right, centerPageMargins.padding.right),\n top: Math.max(leftPageMargins.padding.top, rightPageMargins.padding.top, centerPageMargins.padding.top),\n bottom: Math.max(leftPageMargins.padding.bottom, rightPageMargins.padding.bottom, centerPageMargins.padding.bottom)\n };\n\n return new Helpers.Margins(sumMargin, sumBorder, sumPAdding);\n\n }\n\n function updateContentMetaSize() {\n\n _contentMetaSize = {};\n\n if(_centerPageView.isDisplaying()) {\n _contentMetaSize.width = _centerPageView.meta_width();\n _contentMetaSize.height = _centerPageView.meta_height();\n _contentMetaSize.separatorPosition = 0;\n }\n else if(_leftPageView.isDisplaying() && _rightPageView.isDisplaying()) {\n if(_leftPageView.meta_height() == _rightPageView.meta_height()) {\n _contentMetaSize.width = _leftPageView.meta_width() + _rightPageView.meta_width();\n _contentMetaSize.height = _leftPageView.meta_height();\n _contentMetaSize.separatorPosition = _leftPageView.meta_width();\n }\n else {\n //normalize by height\n _contentMetaSize.width = _leftPageView.meta_width() + _rightPageView.meta_width() * (_leftPageView.meta_height() / _rightPageView.meta_height());\n _contentMetaSize.height = _leftPageView.meta_height();\n _contentMetaSize.separatorPosition = _leftPageView.meta_width();\n }\n }\n else if(_leftPageView.isDisplaying()) {\n _contentMetaSize.width = _leftPageView.meta_width() * 2;\n _contentMetaSize.height = _leftPageView.meta_height();\n _contentMetaSize.separatorPosition = _leftPageView.meta_width();\n }\n else if(_rightPageView.isDisplaying()) {\n _contentMetaSize.width = _rightPageView.meta_width() * 2;\n _contentMetaSize.height = _rightPageView.meta_height();\n _contentMetaSize.separatorPosition = _rightPageView.meta_width();\n }\n else {\n _contentMetaSize = undefined;\n }\n\n }\n\n function updateBookMargins() {\n _bookMargins = Helpers.Margins.fromElement(_$el);\n }\n\n // dir: 0 => new or same page, 1 => previous, 2 => next\n this.openPage = function(paginationRequest, dir) {\n\n if(!paginationRequest.spineItem) {\n return;\n }\n\n var leftItem = _spread.leftItem;\n var rightItem = _spread.rightItem;\n var centerItem = _spread.centerItem;\n\n var isSyntheticSpread = Helpers.deduceSyntheticSpread(_$viewport, paginationRequest.spineItem, _viewSettings) == true; // force boolean value (from truthy/falsey return value)\n _spread.setSyntheticSpread(isSyntheticSpread);\n _spread.openItem(paginationRequest.spineItem);\n \n var hasChanged = leftItem !== _spread.leftItem || rightItem !== _spread.rightItem || centerItem !== _spread.centerItem;\n \n if (dir === null || typeof dir === \"undefined\") dir = 0;\n \n updatePageSwitchDir(dir === 0 ? 0 : (_spread.spine.isRightToLeft() ? (dir === 1 ? 2 : 1) : dir), hasChanged);\n \n redraw(paginationRequest.initiator, paginationRequest);\n };\n\n\n this.openPagePrev = function(initiator) {\n\n _spread.openPrev();\n \n updatePageSwitchDir(_spread.spine.isRightToLeft() ? 2 : 1, true);\n \n redraw(initiator, undefined);\n };\n\n this.openPageNext = function(initiator) {\n\n _spread.openNext();\n \n updatePageSwitchDir(_spread.spine.isRightToLeft() ? 1 : 2, true);\n \n redraw(initiator, undefined);\n };\n\n function updatePageViewForItem(pageView, item, context) {\n\n var dfd = $.Deferred();\n\n if(!item) {\n if(pageView.isDisplaying()) {\n pageView.remove();\n }\n\n dfd.resolve();\n }\n else {\n\n //if(pageView.isDisplaying()) { // always DO (no iframe reuse, as this creates problems with BlobURIs, and navigator history ... just like the reflowable view, we re-create an iframe from the template whenever needed for a new spine item URI)\n pageView.remove();\n \n //if(!pageView.isDisplaying()) { // always TRUE\n _$el.append(pageView.render().element());\n context.isElementAdded = true;\n \n\n pageView.loadSpineItem(item, function(success, $iframe, spineItem, isNewContentDocumentLoaded, context){\n\n if(success && isNewContentDocumentLoaded) {\n\n //if we a re loading fixed view meta size should be defined\n if(!pageView.meta_height() || !pageView.meta_width()) {\n console.error(\"Invalid document \" + spineItem.href + \": viewport is not specified!\");\n }\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOADED\", \"EMIT\", \"fixed_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOADED, $iframe, spineItem);\n }\n\n dfd.resolve();\n\n }, context);\n }\n\n return dfd.promise();\n }\n\n this.getPaginationInfo = function() {\n\n var paginationInfo = new CurrentPagesInfo(_spine, true);\n\n var spreadItems = [_spread.leftItem, _spread.rightItem, _spread.centerItem];\n\n for(var i = 0; i < spreadItems.length; i++) {\n\n var spreadItem = spreadItems[i];\n\n if(spreadItem) {\n paginationInfo.addOpenPage(0, 1, spreadItem.idref, spreadItem.index);\n }\n }\n\n return paginationInfo;\n };\n\n this.bookmarkCurrentPage = function() {\n\n var views = getDisplayingViews();\n var loadedSpineItems = this.getLoadedSpineItems();\n\n if (views.length > 0) {\n return views[0].getFirstVisibleCfi();\n } else if (loadedSpineItems.length > 0) {\n return new BookmarkData(this.getLoadedSpineItems()[0].idref, null);\n }\n\n return undefined;\n };\n\n function getDisplayingViews() {\n\n var viewsToCheck = [];\n\n if( _spine.isLeftToRight() ) {\n viewsToCheck = [_leftPageView, _centerPageView, _rightPageView];\n }\n else {\n viewsToCheck = [_rightPageView, _centerPageView, _leftPageView];\n }\n\n var views = [];\n\n for(var i = 0, count = viewsToCheck.length; i < count; i++) {\n if(viewsToCheck[i].isDisplaying()) {\n views.push(viewsToCheck[i]);\n }\n }\n\n return views;\n }\n\n this.getLoadedSpineItems = function() {\n\n return _spread.validItems();\n };\n\n function callOnPageView(spineItemIdref, fn) {\n var views = getDisplayingViews();\n\n for (var i = 0, count = views.length; i < count; i++) {\n\n var view = views[i];\n if (view.currentSpineItem().idref == spineItemIdref) {\n return fn(view);\n }\n }\n\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n this.getElement = function (spineItemIdref, selector) {\n\n return callOnPageView(spineItemIdref, function (view) {\n return view.getElement(spineItemIdref, selector);\n });\n };\n\n this.getElementById = function (spineItemIdref, id) {\n\n return callOnPageView(spineItemIdref, function (view) {\n return view.getElementById(spineItemIdref, id);\n });\n };\n\n\n this.getElementByCfi = function(spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist) {\n\n return callOnPageView(spineItemIdref, function (view) {\n return view.getElementByCfi(spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist);\n });\n };\n \n this.getFirstVisibleMediaOverlayElement = function() {\n\n var views = getDisplayingViews();\n\n for(var i = 0, count = views.length; i < count; i++) {\n var el = views[i].getFirstVisibleMediaOverlayElement();\n if (el) return el;\n }\n\n return undefined;\n };\n\n this.insureElementVisibility = function(spineItemId, element, initiator) {\n\n //TODO: during zoom+pan, playing element might not actually be visible\n\n };\n \n this.getElements = function(spineItemIdref, selector) {\n\n return callOnPageView(spineItemIdref, function (view) {\n return view.getElements(spineItemIdref, selector);\n });\n };\n \n this.isElementVisible = function($element){\n\n //for now we assume that for fixed layouts, elements are always visible\n return true;\n };\n \n this.getVisibleElementsWithFilter = function(filterFunction, includeSpineItems) {\n\n var elements = [];\n\n var views = getDisplayingViews();\n\n for(var i = 0, count = views.length; i < count; i++) {\n //for now we assume that for fixed layouts, elements are always visible\n elements.push(views[i].getAllElementsWithFilter(filterFunction, includeSpineItems));\n }\n\n return elements;\n };\n\n this.getVisibleElements = function (selector, includeSpineItems) {\n\n var elements = [];\n\n var views = getDisplayingViews();\n\n for (var i = 0, count = views.length; i < count; i++) {\n //for now we assume that for fixed layouts, elements are always visible\n if (includeSpineItems) {\n elements.push({elements: views[i].getElements(views[i].currentSpineItem().idref, selector), spineItem: views[i].currentSpineItem()});\n } else {\n elements.push(views[i].getElements(views[i].currentSpineItem().idref, selector));\n }\n }\n\n return elements;\n };\n\n this.isElementVisible = function($element){\n\n //for now we assume that for fixed layouts, elements are always visible\n return true;\n };\n \n this.isVisibleSpineItemElementCfi = function (spineItemIdref, partialCfi) {\n\n return callOnPageView(spineItemIdref, function (view) {\n //for now we assume that for fixed layouts, everything is always visible\n return true;\n });\n };\n\n this.getNodeRangeInfoFromCfi = function (spineItemIdref, partialCfi) {\n\n return callOnPageView(spineItemIdref, function (view) {\n return view.getNodeRangeInfoFromCfi(spineItemIdref, partialCfi);\n });\n };\n\n\n this.getFirstVisibleCfi = function () {\n var views = getDisplayingViews();\n if (views.length > 0) {\n return views[0].getFirstVisibleCfi();\n }\n return undefined;\n };\n\n this.getLastVisibleCfi = function () {\n var views = getDisplayingViews();\n if (views.length > 0) {\n return views[views.length - 1].getLastVisibleCfi();\n }\n return undefined;\n };\n\n this.getDomRangesFromRangeCfi = function (rangeCfi, rangeCfi2, inclusive) {\n var views = getDisplayingViews();\n if (rangeCfi2 && rangeCfi.idref !== rangeCfi2.idref) {\n var ranges = [];\n for (var i = 0, count = views.length; i < count; i++) {\n var view = views[i];\n if (view.currentSpineItem().idref === rangeCfi.idref) {\n var last = view.getLastVisibleCfi();\n ranges.push(view.getDomRangeFromRangeCfi(rangeCfi.contentCFI, last.contentCFI, inclusive));\n } else if (view.currentSpineItem().idref === rangeCfi2.idref) {\n var first = view.getFirstVisibleCfi();\n ranges.push(view.getDomRangeFromRangeCfi(first.contentCFI, rangeCfi2.contentCFI, inclusive));\n }\n }\n return ranges;\n }\n\n return [this.getDomRangeFromRangeCfi(rangeCfi, rangeCfi2, inclusive)];\n },\n\n this.getDomRangeFromRangeCfi = function (rangeCfi, rangeCfi2, inclusive) {\n var views = getDisplayingViews();\n if (rangeCfi2 && rangeCfi.idref !== rangeCfi2.idref) {\n console.error(\"getDomRangeFromRangeCfi: both CFIs must be scoped under the same spineitem idref\");\n return undefined;\n }\n for (var i = 0, count = views.length; i < count; i++) {\n\n var view = views[i];\n if (view.currentSpineItem().idref === rangeCfi.idref) {\n return view.getDomRangeFromRangeCfi(rangeCfi.contentCFI, rangeCfi2 ? rangeCfi2.contentCFI : null, inclusive);\n }\n }\n\n return undefined;\n };\n\n this.getRangeCfiFromDomRange = function (domRange) {\n\n var views = getDisplayingViews();\n\n for (var i = 0, count = views.length; i < count; i++) {\n\n var view = views[i];\n if (view.getLoadedContentFrames()[0].$iframe[0].contentDocument === domRange.startContainer.ownerDocument) {\n return view.getRangeCfiFromDomRange(domRange);\n }\n }\n\n return undefined;\n };\n\n this.getVisibleCfiFromPoint = function (x, y, precisePoint, spineItemIdref) {\n if (!spineItemIdref) {\n throw new Error(\"getVisibleCfiFromPoint: Spine item idref must be specified for this fixed layout view.\");\n }\n return callOnPageView(spineItemIdref, function (view) {\n return view.getVisibleCfiFromPoint(x,y, precisePoint);\n });\n };\n\n this.getRangeCfiFromPoints = function (startX, startY, endX, endY, spineItemIdref) {\n if (!spineItemIdref) {\n throw new Error(\"getRangeCfiFromPoints: Spine item idref must be specified for this fixed layout view.\");\n }\n return callOnPageView(spineItemIdref, function (view) {\n return view.getRangeCfiFromPoints(startX, startY, endX, endY);\n });\n };\n\n this.getCfiForElement = function (element) {\n\n var views = getDisplayingViews();\n\n for (var i = 0, count = views.length; i < count; i++) {\n\n var view = views[i];\n if (view.getLoadedContentFrames()[0].$iframe[0].contentDocument === element.ownerDocument) {\n return view.getCfiForElement(element);\n }\n }\n\n return undefined;\n };\n\n this.getElementFromPoint = function (x, y, spineItemIdref) {\n if (!spineItemIdref) {\n throw new Error(\"getElementFromPoint: Spine item idref must be specified for this fixed layout view.\");\n }\n return callOnPageView(spineItemIdref, function (view) {\n return view.getElementFromPoint(x,y);\n });\n };\n\n this.getStartCfi = function () {\n return getDisplayingViews()[0].getStartCfi();\n };\n\n this.getEndCfi = function () {\n return getDisplayingViews()[0].getEndCfi();\n };\n\n this.getNearestCfiFromElement = function(element) {\n var views = getDisplayingViews();\n\n for (var i = 0, count = views.length; i < count; i++) {\n\n var view = views[i];\n if (view.getLoadedContentFrames()[0].$iframe[0].contentDocument === element.ownerDocument) {\n return view.getNearestCfiFromElement(element);\n }\n }\n\n };\n\n};\n return FixedView;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/iframe_loader',[\"jquery\", \"underscore\", 'URIjs'], function($, _, URI) {\n/**\n *\n * @constructor\n */\nvar IFrameLoader = function() {\n\n var self = this;\n var eventListeners = {};\n\n\n this.addIFrameEventListener = function (eventName, callback, context) {\n\n if (eventListeners[eventName] == undefined) {\n eventListeners[eventName] = [];\n }\n\n eventListeners[eventName].push({callback: callback, context: context});\n };\n\n this.updateIframeEvents = function (iframe) {\n\n _.each(eventListeners, function (value, key) {\n $(iframe.contentWindow).off(key);\n for (var i = 0, count = value.length; i < count; i++) {\n $(iframe.contentWindow).on(key, value[i].callback, value[i].context);\n }\n });\n };\n\n this.loadIframe = function (iframe, src, callback, context, attachedData) {\n\n if (!iframe.baseURI) {\n if (typeof location !== 'undefined') {\n iframe.baseURI = location.href + \"\";\n }\n console.error(\"!iframe.baseURI => \" + iframe.baseURI);\n }\n \n console.log(\"EPUB doc iframe src:\");\n console.log(src);\n console.log(\"EPUB doc iframe base URI:\");\n console.log(iframe.baseURI);\n \n iframe.setAttribute(\"data-baseUri\", iframe.baseURI);\n iframe.setAttribute(\"data-src\", src);\n\n var loadedDocumentUri = new URI(src).absoluteTo(iframe.baseURI).search('').hash('').toString();\n\n self._loadIframeWithUri(iframe, attachedData, loadedDocumentUri, function () {\n \n callback.call(context, true, attachedData);\n });\n };\n\n this._loadIframeWithUri = function (iframe, attachedData, contentUri, callback) {\n\n iframe.onload = function () {\n\n var doc = iframe.contentDocument || iframe.contentWindow.document;\n $('svg', doc).on(\"load\", function(){\n console.log('SVG loaded');\n });\n \n self.updateIframeEvents(iframe);\n\n var mathJax = iframe.contentWindow.MathJax;\n if (mathJax) {\n \n console.log(\"MathJax VERSION: \" + mathJax.cdnVersion + \" // \" + mathJax.fileversion + \" // \" + mathJax.version);\n \n var useFontCache = true; // default in MathJax\n \n // Firefox fails to render SVG otherwise\n if (mathJax.Hub.Browser.isFirefox) {\n useFontCache = false;\n }\n \n // Chrome 49+ fails to render SVG otherwise\n // https://github.com/readium/readium-js/issues/138\n if (mathJax.Hub.Browser.isChrome) {\n useFontCache = false;\n }\n \n // Edge fails to render SVG otherwise\n // https://github.com/readium/readium-js-viewer/issues/394#issuecomment-185382196\n if (window.navigator.userAgent.indexOf(\"Edge\") > 0) {\n useFontCache = false;\n }\n \n mathJax.Hub.Config({showMathMenu:false, messageStyle: \"none\", showProcessingMessages: true, SVG:{useFontCache:useFontCache}});\n \n // If MathJax is being used, delay the callback until it has completed rendering\n var mathJaxCallback = _.once(callback);\n try {\n mathJax.Hub.Queue(mathJaxCallback);\n } catch (err) {\n console.error(\"MathJax fail!\");\n callback();\n }\n // Or at an 8 second timeout, which ever comes first\n //window.setTimeout(mathJaxCallback, 8000);\n } else {\n callback();\n }\n };\n\n iframe.setAttribute(\"src\", contentUri);\n };\n\n};\n\nreturn IFrameLoader;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/internal_links_support',['jquery', '../helpers', 'readium_cfi_js', 'URIjs'], function($, Helpers, EPUBcfi, URI) {\n/**\n *\n * @param reader\n * @constructor\n */\nvar InternalLinksSupport = function(reader) {\n\n var self = this;\n\n function splitCfi(fullCfi) {\n\n var startIx = fullCfi.indexOf(\"(\");\n var bungIx = fullCfi.indexOf(\"!\");\n var endIx = fullCfi.indexOf(\")\");\n\n if(bungIx == -1) {\n return undefined;\n }\n\n if(endIx == -1) {\n endIx = fullCfi.length;\n }\n\n return {\n\n spineItemCfi: fullCfi.substring(startIx + 1, bungIx),\n elementCfi: fullCfi.substring(bungIx + 1, endIx)\n }\n }\n\n function getAbsoluteUriRelativeToSpineItem(hrefUri, spineItem) {\n\n var fullPath = reader.package().resolveRelativeUrl(spineItem.href);\n\n var absUrl = hrefUri.absoluteTo(fullPath);\n\n return absUrl;\n }\n\n function processDeepLink(hrefUri, spineItem) {\n\n var absoluteOpfUri = getAbsoluteUriRelativeToSpineItem(hrefUri, spineItem);\n\n if(!absoluteOpfUri) {\n console.error(\"Unable to resolve \" + hrefUri.href())\n return;\n }\n\n var fullCfi = hrefUri.fragment();\n\n var absPath = absoluteOpfUri.toString();\n\n absPath = Helpers.RemoveFromString(absPath, \"#\" + fullCfi);\n\n readOpfFile(absPath, function(opfText) {\n\n if(!opfText) {\n return;\n }\n\n var parser = new window.DOMParser;\n var packageDom = parser.parseFromString(opfText, 'text/xml');\n var cfi = splitCfi(fullCfi);\n\n if(!cfi) {\n console.warn(\"Unable to split cfi:\" + fullCfi);\n return;\n }\n\n var contentDocRef = EPUBcfi.Interpreter.getContentDocHref(\"epubcfi(\" + cfi.spineItemCfi + \")\", packageDom);\n\n if(contentDocRef) {\n\n var newSpineItem = reader.spine().getItemByHref(contentDocRef);\n if(newSpineItem) {\n\n reader.openSpineItemElementCfi(newSpineItem.idref, cfi.elementCfi, self);\n }\n else {\n console.warn(\"Unable to find spineItem with href=\" + contentDocRef);\n }\n\n }\n else {\n console.warn(\"Unable to find document ref from \" + fullCfi +\" cfi\");\n }\n\n });\n\n }\n\n function readOpfFile(path, callback) {\n\n //TODO: this should use readium-js resource fetcher (file / URI access abstraction layer), as right now this fails with packed EPUBs \n $.ajax({\n // encoding: \"UTF-8\",\n // mimeType: \"text/plain; charset=UTF-8\",\n // beforeSend: function( xhr ) {\n // xhr.overrideMimeType(\"text/plain; charset=UTF-8\");\n // },\n isLocal: path.indexOf(\"http\") === 0 ? false : true,\n url: path,\n dataType: 'text',\n async: true,\n success: function (result) {\n callback(result);\n },\n error: function (xhr, status, errorThrown) {\n console.error('Error when AJAX fetching ' + path);\n console.error(status);\n console.error(errorThrown);\n callback();\n }\n });\n }\n\n //checks if href includes path to opf file and full cfi\n function isDeepLikHref(uri) {\n\n var fileName = uri.filename();\n return fileName && Helpers.EndsWith(fileName, \".opf\");\n }\n\n function processLinkWithHash(hrefUri, spineItem) {\n\n var fileName = hrefUri.filename();\n\n var idref;\n\n //reference to another file\n if(fileName) {\n var normalizedUri = new URI(hrefUri, spineItem.href);\n \n var pathname = decodeURIComponent(normalizedUri.pathname());\n \n var newSpineItem = reader.spine().getItemByHref(pathname);\n\n if(!newSpineItem) {\n console.error(\"spine item with href=\" + pathname + \" not found\");\n return;\n }\n\n idref = newSpineItem.idref;\n }\n else { //hush in the same file\n idref = spineItem.idref;\n }\n\n var hashFrag = hrefUri.fragment();\n\n reader.openSpineItemElementId(idref, hashFrag, self);\n\n }\n\n this.processLinkElements = function($iframe, spineItem) {\n\n var epubContentDocument = $iframe[0].contentDocument;\n\n $('a', epubContentDocument).click(function (clickEvent) {\n // Check for both href and xlink:href attribute and get value\n var href;\n if (clickEvent.currentTarget.attributes[\"xlink:href\"]) {\n \n href = clickEvent.currentTarget.attributes[\"xlink:href\"].value;\n }\n else {\n href = clickEvent.currentTarget.attributes[\"href\"].value;\n }\n\n var overrideClickEvent = false;\n var hrefUri = new URI(href);\n var hrefIsRelative = hrefUri.is('relative');\n\n if (hrefIsRelative) {\n\n if(isDeepLikHref(hrefUri)) {\n processDeepLink(hrefUri, spineItem);\n overrideClickEvent = true;\n }\n else {\n processLinkWithHash(hrefUri, spineItem);\n overrideClickEvent = true;\n }\n\n } else {\n // It's an absolute URL to a remote site - open it in a separate window outside the reader\n window.open(href, '_blank');\n overrideClickEvent = true;\n }\n\n if (overrideClickEvent) {\n clickEvent.preventDefault();\n clickEvent.stopPropagation();\n }\n });\n\n }\n\n};\n\nreturn InternalLinksSupport;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2016 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\ndefine ('readium_shared_js/models/smil_iterator',[\"jquery\", \"../helpers\"], function($, Helpers) {\n/**\n * Wrapper of a smil iterator object. \n * A smil iterator is used by the media overlay player, to move along text areas which have an audio overlay. \n * Such areas are specified in the smil model via parallel smil nodes (text + audio). \n *\n * @class Models.SmilIterator\n * @constructor\n * @param {Models.SmilModel} smil The current smil model\n */\nvar SmilIterator = function(smil) {\n\n /**\n * The smil model\n *\n * @property smil\n * @type Models.SmilModel\n */\n this.smil = smil;\n\n /**\n * The current parallel smil node\n *\n * @property currentPar\n * @type object\n */\n \n this.currentPar = undefined;\n\n /**\n * Resets the iterator. \n * In practice, looks for the first parallel smil node in the smil model\n *\n * @method reset\n */\n\n this.reset = function() {\n this.currentPar = findParNode(0, this.smil, false);\n };\n\n /*\n this.firstDeep = function(container) {\n var par = container.nodeType === \"par\" ? container : findParNode(0, container, false);\n\n return par;\n };\n */\n//\n// this.ensureNextValidTextElement = function()\n// {\n// if (!this.currentPar)\n// {\n// console.debug(\"Par iterator is out of range\");\n// return;\n// }\n//\n// while (this.currentPar && !this.currentPar.element)\n// {\n// this.next();\n// }\n// };\n \n /**\n * Looks for a text smil node identified by the id parameter \n * Returns true if the id param identifies a text smil node.\n *\n * @method findTextId\n * @param {Number} id A smil node identifier\n * @return {Boolean} \n */\n this.findTextId = function(id)\n {\n if (!this.currentPar)\n {\n console.debug(\"Par iterator is out of range\");\n return;\n }\n\n if (!id)\n {\n return false;\n }\n\n while (this.currentPar)\n {\n if (this.currentPar.element)\n {\n if (id === this.currentPar.text.srcFragmentId) //this.currentPar.element.id\n {\n return true;\n }\n\n // OUTER match\n var parent = this.currentPar.element.parentNode;\n while(parent)\n {\n if (parent.id && parent.id == id)\n {\n return true;\n }\n\n parent = parent.parentNode;\n }\n //console.log(parent);\n\n // INNER match\n //var inside = this.currentPar.element.ownerDocument.getElementById(id);\n var inside = $(\"#\" + Helpers.escapeJQuerySelector(id), this.currentPar.element);\n if (inside && inside.length && inside[0])\n {\n return true;\n }\n }\n // moves to the next parallel smil node\n this.next();\n }\n\n return false;\n }\n\n /**\n * Looks for the next parallel smil node\n *\n * @method next \n */\n\n this.next = function() {\n\n if(!this.currentPar) {\n console.debug(\"Par iterator is out of range\");\n return;\n }\n\n this.currentPar = findParNode(this.currentPar.index + 1, this.currentPar.parent, false);\n };\n\n /**\n * Looks for the previous parallel smil node\n *\n * @method previous\n */\n\n this.previous = function() {\n\n if(!this.currentPar) {\n console.debug(\"Par iterator is out of range\");\n return;\n }\n\n this.currentPar = findParNode(this.currentPar.index - 1, this.currentPar.parent, true);\n };\n\n /**\n * Checks if the current parallel smil node is the last one in the smil model\n *\n * @method isLast\n * @return {Bool}\n */\n\n this.isLast = function() {\n\n if(!this.currentPar) {\n console.debug(\"Par iterator is out of range\");\n return;\n }\n\n if (findParNode(this.currentPar.index + 1, this.currentPar.parent, false))\n {\n return false;\n }\n\n return true;\n }\n\n /**\n * Moves to the parallel smil node given as a parameter. \n *\n * @method goToPar\n * @param {Containter} par A parallel smil node\n * @return {Boolean} \n */\n\n this.goToPar = function(par) {\n\n while(this.currentPar) {\n if(this.currentPar == par) {\n break;\n }\n\n this.next();\n }\n };\n\n /**\n * Looks for a parallel smil node in the smil model.\n *\n * @method findParNode\n * @param {Number} startIndex Start index inside the container\n * @param {Models.SMilModel} container The smil model\n * @param {Boolean} previous True if search among previous nodes\n * @return {Smil.ParNode} \n */\n\n function findParNode(startIndex, container, previous) {\n\n for(var i = startIndex, count = container.children.length;\n i >= 0 && i < count;\n i += (previous ? -1 : 1)) {\n\n var node = container.children[i];\n if(node.nodeType == \"par\") {\n return node;\n }\n\n // assert(node.nodeType == \"seq\")\n node = findParNode(previous ? node.children.length - 1 : 0, node, previous);\n\n if(node) {\n return node;\n }\n }\n\n if(container.parent) {\n return findParNode(container.index + (previous ? -1 : 1), container.parent, previous);\n }\n\n return undefined;\n }\n\n this.reset();\n};\n\nreturn SmilIterator;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine ('readium_shared_js/views/media_overlay_data_injector',[\"jquery\", \"underscore\", \"../helpers\", \"../models/smil_iterator\", 'readium_cfi_js'], function($, _, Helpers, SmilIterator, EPUBcfi) {\n/**\n *\n * @param mediaOverlay\n * @param mediaOverlayPlayer\n * @constructor\n */\nvar MediaOverlayDataInjector = function (mediaOverlay, mediaOverlayPlayer) {\n\n this.attachMediaOverlayData = function ($iframe, spineItem, mediaOverlaySettings) {\n\n var contentDocElement = $iframe[0].contentDocument.documentElement;\n\n if (!spineItem.media_overlay_id && mediaOverlay.smil_models.length === 0) {\n return;\n }\n\n var $body = $(\"body\", contentDocElement);\n if ($body.length == 0) {\n console.error(\"! BODY ???\");\n }\n else {\n var click = $body.data(\"mediaOverlayClick\");\n if (click) {\n console.error(\"[WARN] already mediaOverlayClick\");\n }\n else {\n $body.data(\"mediaOverlayClick\", {ping: \"pong\"});\n\n var touchClickMOEventHandler = function (event)\n {\n //console.debug(\"MO TOUCH-DOWN: \"+event.type);\n \n var elem = $(this)[0]; // body\n elem = event.target; // body descendant\n\n if (!elem)\n {\n mediaOverlayPlayer.touchInit();\n return true;\n }\n\n//console.debug(\"MO CLICK: \" + elem.id);\n\n var data = undefined;\n var el = elem;\n\n var inLink = false;\n if (el.nodeName.toLowerCase() === \"a\")\n {\n inLink = true;\n }\n\n while (!(data = $(el).data(\"mediaOverlayData\")))\n {\n if (el.nodeName.toLowerCase() === \"a\")\n {\n inLink = true;\n }\n el = el.parentNode;\n if (!el)\n {\n break;\n }\n }\n \n if (data && (data.par || data.pars))\n {\n if (el !== elem)\n {\n//console.log(\"MO CLICK REDIRECT: \" + el.id);\n }\n\n if (!mediaOverlaySettings.mediaOverlaysEnableClick)\n {\nconsole.log(\"MO CLICK DISABLED\");\n mediaOverlayPlayer.touchInit();\n return true;\n }\n\n if (inLink)\n {\nconsole.log(\"MO CLICKED LINK\");\n mediaOverlayPlayer.touchInit();\n return true;\n }\n\n var par = data.par ? data.par : data.pars[0];\n\n if (el && el != elem && el.nodeName.toLowerCase() === \"body\" && par && !par.getSmil().id)\n {\n//console.debug(\"MO CLICKED BLANK BODY\");\n mediaOverlayPlayer.touchInit();\n return true;\n }\n\n mediaOverlayPlayer.playUserPar(par);\n return true;\n }\n else\n {\n var readaloud = $(elem).attr(\"ibooks:readaloud\");\n if (!readaloud)\n {\n readaloud = $(elem).attr(\"epub:readaloud\");\n }\n if (readaloud)\n {\nconsole.debug(\"MO readaloud attr: \" + readaloud);\n\n var isPlaying = mediaOverlayPlayer.isPlaying();\n if (readaloud === \"start\" && !isPlaying ||\n readaloud === \"stop\" && isPlaying ||\n readaloud === \"startstop\")\n {\n mediaOverlayPlayer.toggleMediaOverlay();\n return true;\n }\n }\n }\n\n mediaOverlayPlayer.touchInit();\n return true;\n };\n\n var touchClickMOEventHandler_ = _.debounce(touchClickMOEventHandler, 200);\n \n if ('ontouchstart' in document.documentElement)\n {\n $body[0].addEventListener(\"touchstart\", touchClickMOEventHandler_, false);\n }\n $body[0].addEventListener(\"mousedown\", touchClickMOEventHandler_, false);\n\n //var clickEvent = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';\n //$body.bind(clickEvent, touchClickMOEventHandler);\n }\n }\n\n var smil = mediaOverlay.getSmilBySpineItem(spineItem);\n if (!smil)\n {\n console.error(\"NO SMIL?? \" + spineItem.idref + \" /// \" + spineItem.media_overlay_id);\n return;\n }\n\n var traverseSmilSeqs = function(root)\n {\n if (!root) return;\n \n if (root.nodeType && root.nodeType === \"seq\")\n {\n // if (root.element)\n // {\n // console.error(\"WARN: seq.element already set: \" + root.textref);\n // }\n \n if (root.textref)\n {\n var parts = root.textref.split('#');\n var file = parts[0];\n var fragmentId = (parts.length === 2) ? parts[1] : \"\";\n // \n // console.debug(root.textref);\n // console.debug(fragmentId);\n // console.log(\"---- SHOULD BE EQUAL:\");\n // console.debug(file);\n // console.debug(par.text.srcFile);\n // \n // if (file !== par.text.srcFile)\n // {\n // console.error(\"adjustParToSeqSyncGranularity textref.file !== par.text.srcFile ???\");\n // return par;\n // }\n // \n // if (!fragmentId)\n // {\n // console.error(\"adjustParToSeqSyncGranularity !fragmentId ???\");\n // return par;\n // }\n\n if (file && fragmentId)\n {\n var textRelativeRef = Helpers.ResolveContentRef(file, smil.href);\n var same = textRelativeRef === spineItem.href;\n if (same)\n { \n root.element = $iframe[0].contentDocument.getElementById(fragmentId);\n \n if (!root.element)\n {\n console.error(\"seq.textref !element? \" + root.textref);\n }\n\n // var selector = \"#\" + Helpers.escapeJQuerySelector(fragmentId);\n // var $element = $(selector, element.ownerDocument.documentElement);\n // if ($element)\n // {\n // seq.element = $element[0];\n // }\n }\n }\n }\n }\n \n if (root.children && root.children.length)\n {\n for (var i = 0; i < root.children.length; i++)\n {\n var child = root.children[i];\n traverseSmilSeqs(child);\n }\n }\n };\n traverseSmilSeqs(smil);\n\n//console.debug(\"[[MO ATTACH]] \" + spineItem.idref + \" /// \" + spineItem.media_overlay_id + \" === \" + smil.id);\n\n var iter = new SmilIterator(smil);\n \n var fakeOpfRoot = \"/99!\";\n var epubCfiPrefix = \"epubcfi\";\n \n while (iter.currentPar) {\n iter.currentPar.element = undefined;\n iter.currentPar.cfi = undefined;\n\n if (true) { //iter.currentPar.text.srcFragmentId (includes empty frag ID)\n\n var textRelativeRef = Helpers.ResolveContentRef(iter.currentPar.text.srcFile, iter.smil.href);\n\n var same = textRelativeRef === spineItem.href;\n if (same) {\n var selectBody = !iter.currentPar.text.srcFragmentId || iter.currentPar.text.srcFragmentId.length == 0;\n var selectId = iter.currentPar.text.srcFragmentId.indexOf(epubCfiPrefix) == 0 ? undefined : iter.currentPar.text.srcFragmentId;\n\n var $element = undefined;\n var isCfiTextRange = false;\n if (!selectBody && !selectId)\n {\n if (iter.currentPar.text.srcFragmentId.indexOf(epubCfiPrefix) === 0)\n {\n var partial = iter.currentPar.text.srcFragmentId.substr(epubCfiPrefix.length + 1, iter.currentPar.text.srcFragmentId.length - epubCfiPrefix.length - 2);\n \n if (partial.indexOf(fakeOpfRoot) === 0)\n {\n partial = partial.substr(fakeOpfRoot.length, partial.length - fakeOpfRoot.length);\n }\n//console.log(partial);\n var parts = partial.split(\",\");\n if (parts && parts.length === 3)\n {\n try\n {\n var partialStartCfi = parts[0] + parts[1];\n var startCFI = \"epubcfi(\" + partialStartCfi + \")\";\n var infoStart = EPUBcfi.getTextTerminusInfoWithPartialCFI(startCFI, $iframe[0].contentDocument,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n//console.log(infoStart);\n\n var partialEndCfi = parts[0] + parts[2];\n var endCFI = \"epubcfi(\" + partialEndCfi + \")\";\n var infoEnd = EPUBcfi.getTextTerminusInfoWithPartialCFI(endCFI, $iframe[0].contentDocument,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n//console.log(infoEnd);\n\n var cfiTextParent = infoStart.textNode.parentNode;\n\n iter.currentPar.cfi = {\n smilTextSrcCfi: iter.currentPar.text.srcFragmentId,\n partialRangeCfi: partial,\n partialStartCfi: partialStartCfi,\n partialEndCfi: partialEndCfi,\n \n cfiTextParent: cfiTextParent\n \n // textNode becomes invalid after highlighting! (dynamic span insertion/removal changes DOM)\n // cfiRangeStart: infoStart,\n // cfiRangeEnd: infoEnd\n };\n \n // TODO: not just start textNode, but all of them between start and end...\n // ...that being said, CFI text ranges likely to be used only within a single common parent,\n // so this is an acceptable implementation shortcut for this CFI experimentation (word-level text/audio synchronisation).\n isCfiTextRange = true;\n $element = $(cfiTextParent);\n var modata = $element.data(\"mediaOverlayData\");\n if (!modata)\n {\n modata = {pars: [iter.currentPar]};\n $element.data(\"mediaOverlayData\", modata);\n }\n else\n {\n if (modata.par)\n {\n console.error(\"[WARN] non-CFI MO DATA already exists!\");\n modata.par = undefined;\n }\n\n var found = false;\n if (modata.pars)\n {\n for (var iPars = 0; iPars < modata.pars.length; iPars++)\n {\n var par = modata.pars[iPars];\n\n if (par === iter.currentPar)\n {\n found = true;\n console.error(\"[WARN] mediaOverlayData CFI PAR already registered!\");\n }\n }\n }\n else\n {\n modata.pars = [];\n }\n\n if (!found)\n {\n modata.pars.push(iter.currentPar);\n }\n }\n\n }\n catch (error)\n {\n console.error(error);\n }\n }\n else\n {\n try\n {\n var cfi = \"epubcfi(\" + partial + \")\";\n $element = EPUBcfi.getTargetElementWithPartialCFI(cfi, $iframe[0].contentDocument,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n }\n catch (error)\n {\n console.error(error);\n }\n }\n }\n else \n {\n console.error(\"SMIL text@src CFI fragment identifier scheme not supported: \" + iter.currentPar.text.srcFragmentId);\n }\n }\n else\n {\n if (selectBody)\n {\n $element = $body; //$(\"body\", contentDocElement);\n }\n else\n {\n $element = $($iframe[0].contentDocument.getElementById(selectId));\n //$element = $(\"#\" + Helpers.escapeJQuerySelector(iter.currentPar.text.srcFragmentId), contentDocElement);\n }\n }\n\n if ($element && $element.length > 0) {\n\n if (!isCfiTextRange)\n {\n if (iter.currentPar.element && iter.currentPar.element !== $element[0]) {\n console.error(\"DIFFERENT ELEMENTS??! \" + iter.currentPar.text.srcFragmentId + \" /// \" + iter.currentPar.element.id);\n }\n\n var name = $element[0].nodeName ? $element[0].nodeName.toLowerCase() : undefined;\n if (name === \"audio\" || name === \"video\") {\n $element.attr(\"preload\", \"auto\");\n }\n\n iter.currentPar.element = $element[0];\n\n var modata = $element.data(\"mediaOverlayData\");\n if (modata) {\n console.error(\"[WARN] MO DATA already exists.\");\n\n if (modata.par && modata.par !== iter.currentPar) {\n console.error(\"DIFFERENT PARS??!\");\n }\n }\n\n $element.data(\"mediaOverlayData\", {par: iter.currentPar});\n\n /*\n $element.click(function() {\n var elem = $(this)[0];\n console.debug(\"MO CLICK (ELEM): \" + elem.id);\n\n var par = $(this).data(\"mediaOverlayData\").par;\n mediaOverlayPlayer.playUserPar(par);\n });\n */\n }\n }\n else {\n console.error(\"!! CANNOT FIND ELEMENT: \" + iter.currentPar.text.srcFragmentId + \" == \" + iter.currentPar.text.srcFile + \" /// \" + spineItem.href);\n }\n }\n else {\n//console.debug(\"[INFO] \" + spineItem.href + \" != \" + textRelativeRef + \" # \" + iter.currentPar.text.srcFragmentId);\n }\n }\n\n iter.next();\n }\n }\n};\n\nreturn MediaOverlayDataInjector;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck, Andrey Kavarma\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\ndefine('readium_shared_js/views/audio_player',['jquery'],function($) {\n\n /**\n *\n * @param onStatusChanged\n * @param onPositionChanged\n * @param onAudioEnded\n * @param onAudioPlay\n * @param onAudioPause\n * @constructor\n */\n var AudioPlayer = function(onStatusChanged, onPositionChanged, onAudioEnded, onAudioPlay, onAudioPause)\n {\n var _iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false;\n var _Android = navigator.userAgent.toLowerCase().indexOf('android') > -1;\n var _isMobile = _iOS || _Android;\n\n //var _isReadiumJS = typeof window.requirejs !== \"undefined\";\n\n var DEBUG = false;\n\n var _audioElement = new Audio();\n \n if (DEBUG)\n {\n _audioElement.addEventListener(\"load\", function()\n {\n console.debug(\"0) load\");\n }\n );\n\n _audioElement.addEventListener(\"loadstart\", function()\n {\n console.debug(\"1) loadstart\");\n }\n );\n\n _audioElement.addEventListener(\"durationchange\", function()\n {\n console.debug(\"2) durationchange\");\n }\n );\n\n _audioElement.addEventListener(\"loadedmetadata\", function()\n {\n console.debug(\"3) loadedmetadata\");\n }\n );\n\n _audioElement.addEventListener(\"loadeddata\", function()\n {\n console.debug(\"4) loadeddata\");\n }\n );\n\n _audioElement.addEventListener(\"progress\", function()\n {\n console.debug(\"5) progress\");\n }\n );\n\n _audioElement.addEventListener(\"canplay\", function()\n {\n console.debug(\"6) canplay\");\n }\n );\n\n _audioElement.addEventListener(\"canplaythrough\", function()\n {\n console.debug(\"7) canplaythrough\");\n }\n );\n\n _audioElement.addEventListener(\"play\", function()\n {\n console.debug(\"8) play\");\n }\n );\n\n _audioElement.addEventListener(\"pause\", function()\n {\n console.debug(\"9) pause\");\n }\n );\n\n _audioElement.addEventListener(\"ended\", function()\n {\n console.debug(\"10) ended\");\n }\n );\n\n _audioElement.addEventListener(\"seeked\", function()\n {\n console.debug(\"X) seeked\");\n }\n );\n\n _audioElement.addEventListener(\"timeupdate\", function()\n {\n console.debug(\"Y) timeupdate\");\n }\n );\n\n _audioElement.addEventListener(\"seeking\", function()\n {\n console.debug(\"Z) seeking\");\n }\n );\n }\n\n var self = this;\n \n //_audioElement.setAttribute(\"preload\", \"auto\");\n \n var _currentEpubSrc = undefined;\n \n var _currentSmilSrc = undefined;\n this.currentSmilSrc = function() {\n return _currentSmilSrc;\n };\n\n var _rate = 1.0;\n this.setRate = function(rate)\n {\n _rate = rate;\n if (_rate < 0.5)\n {\n _rate = 0.5;\n }\n if (_rate > 4.0)\n {\n _rate = 4.0;\n }\n \n _audioElement.playbackRate = _rate;\n }\n self.setRate(_rate);\n this.getRate = function()\n {\n return _rate;\n }\n \n \n var _volume = 1.0;\n this.setVolume = function(volume)\n {\n _volume = volume;\n if (_volume < 0.0)\n {\n _volume = 0.0;\n }\n if (_volume > 1.0)\n {\n _volume = 1.0;\n }\n _audioElement.volume = _volume;\n }\n self.setVolume(_volume);\n this.getVolume = function()\n {\n return _volume;\n }\n \n this.play = function()\n {\n if (DEBUG)\n {\n console.error(\"this.play()\");\n }\n \n if(!_currentEpubSrc)\n {\n return false;\n }\n \n startTimer();\n \n self.setVolume(_volume);\n self.setRate(_rate);\n \n _audioElement.play();\n \n return true;\n };\n \n this.pause = function()\n {\n if (DEBUG)\n {\n console.error(\"this.pause()\");\n }\n \n stopTimer();\n \n _audioElement.pause();\n };\n \n _audioElement.addEventListener('play', onPlay, false);\n _audioElement.addEventListener('pause', onPause, false);\n _audioElement.addEventListener('ended', onEnded, false);\n \n function onPlay()\n {\n onStatusChanged({isPlaying: true});\n onAudioPlay();\n }\n \n function onPause()\n {\n onAudioPause();\n onStatusChanged({isPlaying: false});\n }\n \n function onEnded()\n {\n if (_audioElement.moSeeking)\n {\n if (DEBUG)\n {\n console.debug(\"onEnded() skipped (still seeking...)\");\n }\n \n return;\n }\n \n stopTimer();\n \n onAudioEnded();\n onStatusChanged({isPlaying: false});\n }\n \n var _intervalTimerSkips = 0;\n \n var _intervalTimer = undefined;\n function startTimer()\n {\n if(_intervalTimer)\n {\n return;\n }\n \n _intervalTimer = setInterval(\n function()\n {\n if (_audioElement.moSeeking)\n {\n if (DEBUG)\n {\n//console.debug(\"interval timer skipped (still seeking...)\");\n }\n \n _intervalTimerSkips++;\n if (_intervalTimerSkips > 1000)\n {\n _intervalTimerSkips = 0;\n stopTimer();\n }\n return;\n }\n \n var currentTime = undefined;\n try\n {\n currentTime = _audioElement.currentTime;\n }\n catch (ex)\n {\n console.error(ex.message);\n }\n \n // if (DEBUG)\n // {\n // console.debug(\"currentTime: \" + currentTime);\n // }\n \n if (currentTime)\n {\n onPositionChanged(currentTime, 1);\n }\n }, 20);\n }\n \n function stopTimer()\n {\n if (_intervalTimer)\n {\n clearInterval(_intervalTimer);\n }\n _intervalTimer = undefined;\n }\n \n this.isPlaying = function()\n {\n return _intervalTimer !== undefined;\n };\n \n this.reset = function()\n {\n if (DEBUG)\n {\n console.error(\"this.reset()\");\n }\n \n this.pause();\n \n _audioElement.moSeeking = undefined;\n \n _currentSmilSrc = undefined;\n _currentEpubSrc = undefined;\n \n setTimeout(function()\n {\n _audioElement.setAttribute(\"src\", \"\");\n }, 1);\n };\n \n\n _audioElement.addEventListener(\"loadstart\", function()\n {\n _touchInited = true;\n }\n );\n var _touchInited = false;\n this.touchInit = function()\n {\n if (!_iOS)\n {\n return false;\n }\n \n if (_touchInited)\n {\n return false;\n }\n \n _touchInited = true;\n \n _audioElement.setAttribute(\"src\", \"touch/init/html5/audio.mp3\");\n _audioElement.load();\n \n return true;\n };\n \n var _playId = 0;\n \n var _seekQueuing = 0;\n \n this.playFile = function(smilSrc, epubSrc, seekBegin) //element\n {\n _playId++;\n if (_playId > 99999)\n {\n _playId = 0;\n }\n \n var playId = _playId;\n \n if (_audioElement.moSeeking)\n {\n _seekQueuing++;\n if (_seekQueuing > MAX_SEEK_RETRIES)\n {\n _seekQueuing = 0;\n return;\n }\n \n if (DEBUG)\n {\n console.debug(\"this.playFile(\" + epubSrc + \")\" + \" @\" + seekBegin + \" (POSTPONE, SEEKING...)\");\n }\n \n setTimeout(function()\n {\n self.playFile(smilSrc, epubSrc, seekBegin);\n }, 20);\n \n return;\n }\n \n _audioElement.moSeeking = {};\n \n if (DEBUG)\n {\n console.debug(\"this.playFile(\" + epubSrc + \")\" + \" @\" + seekBegin + \" #\" + playId);\n }\n \n var audioNeedsNewSrc = !_currentEpubSrc || _currentEpubSrc !== epubSrc;\n \n if (!audioNeedsNewSrc)\n {\n if (DEBUG)\n {\n console.debug(\"this.playFile() SAME SRC\");\n }\n \n this.pause();\n \n _currentSmilSrc = smilSrc;\n _currentEpubSrc = epubSrc;\n \n playSeekCurrentTime(seekBegin, playId, false);\n \n return;\n }\n \n if (DEBUG)\n {\n console.debug(\"this.playFile() NEW SRC\");\n console.debug(\"_currentEpubSrc: \" + _currentEpubSrc);\n console.debug(\"epubSrc: \" + epubSrc);\n }\n \n this.reset();\n _audioElement.moSeeking = {};\n \n _currentSmilSrc = smilSrc;\n _currentEpubSrc = epubSrc;\n \n //element.parentNode.insertBefore(_audioElement, element); //element.parentNode.childNodes[0]);\n \n if (!_Android)\n {\n _audioElement.addEventListener('play', onPlayToForcePreload, false);\n }\n \n $(_audioElement).on(_readyEvent, {seekBegin: seekBegin, playId: playId}, onReadyToSeek);\n \n setTimeout(function()\n {\n _audioElement.setAttribute(\"src\", _currentEpubSrc);\n // _audioElement.src = _currentEpubSrc;\n // $(_audioElement).attr(\"src\", _currentEpubSrc);\n \n // if (_Android)\n // {\n // _audioElement.addEventListener('loadstart', onReadyToPlayToForcePreload, false);\n // }\n \n _audioElement.load();\n \n if (!_Android)\n {\n playToForcePreload();\n }\n }, 1);\n };\n \n // var onReadyToPlayToForcePreload = function ()\n // {\n // _audioElement.removeEventListener('loadstart', onReadyToPlayToForcePreload, false);\n // \n // if (DEBUG)\n // {\n // console.debug(\"onReadyToPlayToForcePreload\");\n // }\n // \n // playToForcePreload();\n // };\n \n var playToForcePreload = function()\n {\n if (DEBUG)\n {\n console.debug(\"playToForcePreload\");\n }\n \n //_audioElement.volume = 0;\n //_audioElement.play();\n var vol = _volume;\n _volume = 0;\n self.play();\n _volume = vol;\n };\n \n var onPlayToForcePreload = function ()\n {\n _audioElement.removeEventListener('play', onPlayToForcePreload, false);\n \n if (DEBUG)\n {\n console.debug(\"onPlayToForcePreload\");\n }\n _audioElement.pause(); // note: interval timer continues (immediately follows self.play())\n };\n \n var _readyEvent = _Android ? \"canplaythrough\" : \"canplay\";\n function onReadyToSeek_(event)\n {\n if (DEBUG)\n {\n console.debug(\"onReadyToSeek #\" + event.data.playId);\n }\n playSeekCurrentTime(event.data.seekBegin, event.data.playId, true);\n }\n function onReadyToSeek(event)\n {\n $(_audioElement).off(_readyEvent, onReadyToSeek);\n \n if (!_Android)\n {\n onReadyToSeek_(event);\n }\n else\n {\n if (DEBUG)\n {\n console.debug(\"onReadyToSeek ANDROID ... waiting a bit ... #\" + event.data.playId);\n }\n \n //self.play();\n playToForcePreload();\n \n setTimeout(function() {\n onReadyToSeek_(event);\n }, 1000);\n }\n }\n \n function playSeekCurrentTime(newCurrentTime, playId, isNewSrc)\n {\n if (DEBUG)\n {\n console.debug(\"playSeekCurrentTime() #\" + playId);\n }\n \n if (newCurrentTime == 0)\n {\n newCurrentTime = 0.01;\n }\n \n if(Math.abs(newCurrentTime - _audioElement.currentTime) < 0.3)\n {\n if (DEBUG)\n {\n console.debug(\"playSeekCurrentTime() CONTINUE\");\n }\n \n _audioElement.moSeeking = undefined;\n self.play();\n return;\n }\n \n var ev = isNewSrc ? _seekedEvent1 : _seekedEvent2;\n \n if (DEBUG)\n {\n console.debug(\"playSeekCurrentTime() NEED SEEK, EV: \" + ev);\n }\n \n self.pause();\n \n $(_audioElement).on(ev, {newCurrentTime: newCurrentTime, playId: playId, isNewSrc: isNewSrc}, onSeeked);\n \n try\n {\n _audioElement.currentTime = newCurrentTime;\n }\n catch (ex)\n {\n console.error(ex.message);\n \n setTimeout(function()\n {\n try\n {\n _audioElement.currentTime = newCurrentTime;\n }\n catch (ex)\n {\n console.error(ex.message);\n }\n }, 5);\n }\n }\n \n var MAX_SEEK_RETRIES = 10;\n var _seekedEvent1 = _iOS ? \"canplaythrough\" : \"seeked\"; //\"progress\"\n var _seekedEvent2 = _iOS ? \"timeupdate\" : \"seeked\";\n function onSeeked(event)\n {\n var ev = event.data.isNewSrc ? _seekedEvent1 : _seekedEvent2;\n \n var notRetry = event.data.seekRetries == undefined;\n \n if (notRetry || event.data.seekRetries == MAX_SEEK_RETRIES) // first retry\n {\n $(_audioElement).off(ev, onSeeked);\n }\n \n if (DEBUG)\n {\n console.debug(\"onSeeked() #\" + event.data.playId + \" FIRST? \" + notRetry + \" EV: \" + ev);\n }\n \n var curTime = _audioElement.currentTime;\n var diff = Math.abs(event.data.newCurrentTime - curTime);\n \n if((notRetry || event.data.seekRetries >= 0) &&\n diff >= 1)\n {\n if (DEBUG)\n {\n console.debug(\"onSeeked() time diff: \" + event.data.newCurrentTime + \" vs. \" + curTime + \" (\"+diff+\")\");\n }\n \n if (notRetry)\n {\n event.data.seekRetries = MAX_SEEK_RETRIES;\n \n // if (DEBUG)\n // {\n // console.debug(\"onSeeked() fail => first retry, EV: \" + _seekedEvent2);\n // }\n \n event.data.isNewSrc = false;\n //$(_audioElement).on(_seekedEvent2, event.data, onSeeked);\n }\n \n //else\n {\n event.data.seekRetries--;\n \n if (DEBUG)\n {\n console.debug(\"onSeeked() FAIL => retry again (timeout)\");\n }\n \n setTimeout(function()\n {\n onSeeked(event);\n }, _Android ? 1000 : 200);\n }\n \n setTimeout(function()\n {\n _audioElement.pause();\n try\n {\n _audioElement.currentTime = event.data.newCurrentTime;\n }\n catch (ex)\n {\n console.error(ex.message);\n \n setTimeout(function()\n {\n try\n {\n _audioElement.currentTime = event.data.newCurrentTime;\n }\n catch (ex)\n {\n console.error(ex.message);\n }\n }, 4);\n }\n }, 5);\n }\n else\n {\n if (DEBUG)\n {\n console.debug(\"onSeeked() STATE:\");\n console.debug(notRetry);\n console.debug(event.data.seekRetries);\n console.debug(diff);\n }\n \n if (diff >= 1)\n {\n if (DEBUG)\n {\n console.debug(\"onSeeked() ABORT, TRY AGAIN FROM SCRATCH!\");\n }\n \n var smilSrc = _currentSmilSrc;\n var epubSrc = _currentEpubSrc;\n var seekBegin = event.data.newCurrentTime;\n \n self.reset();\n \n setTimeout(function()\n {\n self.playFile(smilSrc, epubSrc, seekBegin);\n }, 10);\n \n return;\n }\n\n if (DEBUG)\n {\n console.debug(\"onSeeked() OKAY => play!\");\n }\n \n event.data.seekRetries = undefined;\n \n self.play();\n \n _audioElement.moSeeking = undefined;\n }\n }\n };\n\n return AudioPlayer;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/media_overlay_element_highlighter',['jquery', 'readium_cfi_js'], function($, EPUBcfi) {\n/**\n *\n * @param reader\n * @constructor\n */\nvar MediaOverlayElementHighlighter = function(reader) {\n\n this.includeParWhenAdjustingToSeqSyncGranularity = true;\n\n var DEFAULT_MO_ACTIVE_CLASS = \"mo-active-default\";\n var DEFAULT_MO_SUB_SYNC_CLASS = \"mo-sub-sync\";\n \n //var BACK_COLOR = \"#99CCCC\";\n\n var _highlightedElementPar = undefined;\n this.isElementHighlighted = function(par)\n {\n return _highlightedElementPar && par === _highlightedElementPar;\n };\n \n var _highlightedCfiPar = undefined;\n this.isCfiHighlighted = function(par)\n {\n return _highlightedCfiPar && par === _highlightedCfiPar;\n };\n\n var _activeClass = \"\";\n var _playbackActiveClass = \"\";\n\n var _reader = reader;\n \n var HIGHLIGHT_ID = \"MO_SPEAK\";\n \n var self = this;\n\n var $userStyle = undefined;\n \n this.reDo = function()\n {\n //this.reset();\n \n if ($userStyle)\n {\n $userStyle.remove();\n }\n $userStyle = undefined;\n\n var he = _highlightedElementPar;\n var hc = _highlightedCfiPar;\n var c1 = _activeClass;\n var c2 = _playbackActiveClass;\n \n if (_highlightedElementPar)\n {\n this.reset();\n\n this.highlightElement(he, c1, c2);\n }\n else if (_highlightedCfiPar)\n {\n this.reset();\n\n this.highlightCfi(hc, c1, c2);\n }\n };\n\n function ensureUserStyle($element, hasAuthorStyle, overrideWithUserStyle)\n {\n if ($userStyle)\n {\n try\n {\n if ($userStyle[0].ownerDocument === $element[0].ownerDocument)\n {\n return;\n }\n }\n catch (e)\n {\n \n }\n }\n\n\n $head = $(\"head\", $element[0].ownerDocument.documentElement);\n\n $userStyle = $(\"\");\n\n $userStyle.append(\".\" + DEFAULT_MO_ACTIVE_CLASS + \" {\");\n \n var fallbackUserStyle = \"background-color: yellow !important; color: black !important; border-radius: 0.4em;\";\n \n var style = overrideWithUserStyle; //_reader.userStyles().findStyle(\".\" + DEFAULT_MO_ACTIVE_CLASS);\n if (style)\n {\n var atLeastOne = false;\n for(var prop in style.declarations)\n {\n if(!style.declarations.hasOwnProperty(prop))\n {\n continue;\n }\n\n atLeastOne = true;\n $userStyle.append(prop + \": \" + style.declarations[prop] + \"; \");\n }\n \n if (!atLeastOne && !hasAuthorStyle)\n {\n $userStyle.append(fallbackUserStyle);\n }\n }\n else if (!hasAuthorStyle)\n {\n $userStyle.append(fallbackUserStyle);\n }\n \n $userStyle.append(\"}\");\n \n \n // ---- CFI\n //$userStyle.append(\" .highlight {background-color: blue; border: 2x solid green;}\"); //.hover-highlight\n \n \n $userStyle.appendTo($head);\n\n//console.debug($userStyle[0].textContent);\n };\n \n this.highlightElement = function(par, activeClass, playbackActiveClass) {\n\n if(!par || par === _highlightedElementPar) {\n return;\n }\n\n this.reset();\n\n _highlightedElementPar = par;\n _highlightedCfiPar = undefined;\n \n _activeClass = activeClass;\n _playbackActiveClass = playbackActiveClass;\n\n var seq = this.adjustParToSeqSyncGranularity(_highlightedElementPar);\n var element = seq.element;\n \n if (_playbackActiveClass && _playbackActiveClass !== \"\")\n {\n //console.debug(\"MO playbackActiveClass: \" + _playbackActiveClass);\n $(element.ownerDocument.documentElement).addClass(_playbackActiveClass);\n //console.debug(\"MO playbackActiveClass 2: \" + element.ownerDocument.documentElement.classList);\n }\n\n var $hel = $(element);\n\n var hasAuthorStyle = _activeClass && _activeClass !== \"\";\n var overrideWithUserStyle = _reader.userStyles().findStyle(\".\" + DEFAULT_MO_ACTIVE_CLASS);\n\n ensureUserStyle($hel, hasAuthorStyle, overrideWithUserStyle);\n \n if (overrideWithUserStyle || !hasAuthorStyle)\n {\n //console.debug(\"MO active NO CLASS: \" + _activeClass);\n\n if (hasAuthorStyle)\n {\n $hel.addClass(_activeClass);\n }\n \n $hel.addClass(DEFAULT_MO_ACTIVE_CLASS);\n\n //$(element).css(\"background\", BACK_COLOR);\n }\n else\n {\n //console.debug(\"MO activeClass: \" + _activeClass);\n $hel.addClass(_activeClass);\n }\n \n if (this.includeParWhenAdjustingToSeqSyncGranularity || _highlightedElementPar !== seq)\n {\n $(_highlightedElementPar.element).addClass(DEFAULT_MO_SUB_SYNC_CLASS);\n }\n \n// ---- CFI\n// try\n// {\n// // //noinspection JSUnresolvedVariable\n// // var cfi = EPUBcfi.Generator.generateElementCFIComponent(element); //$hel[0]\n// // if(cfi[0] == \"!\") {\n// // cfi = cfi.substring(1);\n// // }\n// \n// //console.log(element);\n// \n// var firstTextNode = getFirstTextNode(element);\n// var txtFirst = firstTextNode.textContent;\n// //console.log(txtFirst);\n// \n// var lastTextNode = getLastTextNode(element);\n// var txtLast = lastTextNode.textContent;\n// //console.log(txtLast);\n// \n// var cfi = EPUBcfi.Generator.generateCharOffsetRangeComponent(\n// firstTextNode, \n// 0, \n// lastTextNode, \n// txtLast.length,\n// [\"cfi-marker\"],\n// [],\n// [\"MathJax_Message\"]\n// );\n// \n// var id = $hel.data(\"mediaOverlayData\").par.getSmil().spineItemId;\n// _reader.addHighlight(id, cfi, HIGHLIGHT_ID,\n// \"highlight\", //\"underline\"\n// undefined // styles\n// );\n// }\n// catch(error)\n// {\n// console.error(error);\n// \n// removeHighlight();\n// }\n };\n \n this.highlightCfi = function(par, activeClass, playbackActiveClass) {\n\n if(!par || par === _highlightedCfiPar) {\n return;\n }\n\n this.reset();\n\n _highlightedElementPar = undefined;\n _highlightedCfiPar = par;\n \n _activeClass = activeClass;\n _playbackActiveClass = playbackActiveClass;\n\n var $hel = $(_highlightedCfiPar.cfi.cfiTextParent);\n\n var hasAuthorStyle = _activeClass && _activeClass !== \"\";\n var overrideWithUserStyle = _reader.userStyles().findStyle(\".\" + DEFAULT_MO_ACTIVE_CLASS); // TODO: performance issue?\n\n ensureUserStyle($hel, hasAuthorStyle, overrideWithUserStyle);\n\n var clazz = (overrideWithUserStyle || !hasAuthorStyle) ? ((hasAuthorStyle ? (_activeClass + \" \") : \"\") + DEFAULT_MO_ACTIVE_CLASS) : _activeClass;\n\n if (_reader.plugins.highlights) // same API, newer implementation\n {\n try\n {\n //var id = $hel.data(\"mediaOverlayData\").par.getSmil().spineItemId;\n var id = par.getSmil().spineItemId;\n _reader.plugins.highlights.addHighlight(id, par.cfi.partialRangeCfi, HIGHLIGHT_ID,\n \"highlight\", //\"underline\"\n undefined // styles\n );\n }\n catch(error)\n {\n console.error(error);\n }\n }\n else if (_reader.plugins.annotations) // legacy\n {\n try\n {\n //var id = $hel.data(\"mediaOverlayData\").par.getSmil().spineItemId;\n var id = par.getSmil().spineItemId;\n _reader.plugins.annotations.addHighlight(id, par.cfi.partialRangeCfi, HIGHLIGHT_ID,\n \"highlight\", //\"underline\"\n undefined // styles\n );\n }\n catch(error)\n {\n console.error(error);\n }\n }\n };\n \n// ---- CFI\n// \n// function getFirstTextNode(node)\n// {\n// if (node.nodeType === Node.TEXT_NODE)\n// {\n// if (node.textContent.trim().length > 0)\n// return node;\n// }\n// \n// for (var i = 0; i < node.childNodes.length; i++)\n// {\n// var child = node.childNodes[i];\n// var first = getFirstTextNode(child);\n// if (first)\n// {\n// return first;\n// }\n// }\n// \n// return undefined;\n// }\n// \n// function getLastTextNode(node)\n// {\n// if (node.nodeType === Node.TEXT_NODE)\n// {\n// if (node.textContent.trim().length > 0)\n// return node;\n// }\n// \n// for (var i = node.childNodes.length-1; i >= 0; i--)\n// {\n// var child = node.childNodes[i];\n// var last = getLastTextNode(child);\n// if (last)\n// {\n// return last;\n// }\n// }\n// \n// return undefined;\n// }\n// \n\n this.reset = function() {\n \n if (_highlightedCfiPar)\n {\n var doc = _highlightedCfiPar.cfi.cfiTextParent.ownerDocument;\n\n if (_reader.plugins.highlights) // same API, new implementation\n {\n try\n {\n _reader.plugins.highlights.removeHighlight(HIGHLIGHT_ID);\n \n var toRemove = undefined;\n while ((toRemove = doc.getElementById(\"start-\" + HIGHLIGHT_ID)) !== null)\n {\n console.log(\"toRemove START\");\n console.log(toRemove);\n toRemove.parentNode.removeChild(toRemove);\n }\n while ((toRemove = doc.getElementById(\"end-\" + HIGHLIGHT_ID)) !== null)\n {\n console.log(\"toRemove END\");\n console.log(toRemove);\n toRemove.parentNode.removeChild(toRemove);\n }\n }\n catch(error)\n {\n console.error(error);\n }\n }\n else if (_reader.plugins.annotations) // legacy\n {\n try\n {\n _reader.plugins.annotations.removeHighlight(HIGHLIGHT_ID);\n \n var toRemove = undefined;\n while ((toRemove = doc.getElementById(\"start-\" + HIGHLIGHT_ID)) !== null)\n {\n console.log(\"toRemove START\");\n console.log(toRemove);\n toRemove.parentNode.removeChild(toRemove);\n }\n while ((toRemove = doc.getElementById(\"end-\" + HIGHLIGHT_ID)) !== null)\n {\n console.log(\"toRemove END\");\n console.log(toRemove);\n toRemove.parentNode.removeChild(toRemove);\n }\n }\n catch(error)\n {\n console.error(error);\n }\n }\n \n _highlightedCfiPar = undefined;\n }\n \n \n \n\n if(_highlightedElementPar) {\n\n var seq = this.adjustParToSeqSyncGranularity(_highlightedElementPar);\n var element = seq.element;\n if (this.includeParWhenAdjustingToSeqSyncGranularity || _highlightedElementPar !== seq)\n {\n $(_highlightedElementPar.element).removeClass(DEFAULT_MO_SUB_SYNC_CLASS);\n }\n \n if (_playbackActiveClass && _playbackActiveClass !== \"\")\n {\n //console.debug(\"MO RESET playbackActiveClass: \" + _playbackActiveClass);\n $(element.ownerDocument.documentElement).removeClass(_playbackActiveClass);\n }\n\n if (_activeClass && _activeClass !== \"\")\n {\n //console.debug(\"MO RESET activeClass: \" + _activeClass);\n $(element).removeClass(_activeClass);\n }\n //else\n //{\n //console.debug(\"MO RESET active NO CLASS: \" + _activeClass);\n $(element).removeClass(DEFAULT_MO_ACTIVE_CLASS);\n //$(element).css(\"background\", '');\n //}\n\n _highlightedElementPar = undefined;\n }\n\n _activeClass = \"\";\n _playbackActiveClass = \"\";\n };\n\n this.adjustParToSeqSyncGranularity = function(par)\n {\n if (!par) return undefined;\n \n var sync = _reader.viewerSettings().mediaOverlaysSynchronizationGranularity;\n if (sync && sync.length > 0)\n {\n var element = par.element || (par.cfi ? par.cfi.cfiTextParent : undefined);\n if (!element)\n {\n console.error(\"adjustParToSeqSyncGranularity !element ???\");\n return par; // should never happen!\n }\n\n var seq = par.getFirstSeqAncestorWithEpubType(sync, this.includeParWhenAdjustingToSeqSyncGranularity);\n if (seq && seq.element)\n {\n return seq;\n }\n }\n \n return par;\n };\n};\n return MediaOverlayElementHighlighter;\n});\n\n","// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n// OF THE POSSIBILITY OF SUCH DAMAGE.\ndefine('readium_shared_js/views/scroll_view',[\"../globals\", \"jquery\", \"underscore\", \"eventEmitter\", \"../models/bookmark_data\", \"../models/current_pages_info\", \"../helpers\",\n \"./one_page_view\", \"../models/page_open_request\", \"../models/viewer_settings\"],\n function (Globals, $, _, EventEmitter, BookmarkData, CurrentPagesInfo, Helpers,\n OnePageView, PageOpenRequest, ViewerSettings) {\n/**\n * Renders content inside a scrollable view port\n * @param options\n * @param isContinuousScroll\n * @param reader\n * @constructor\n */\nvar ScrollView = function (options, isContinuousScroll, reader) {\n\n var _DEBUG = false;\n\n //https://github.com/jquery/jquery/commit/2d715940b9b6fdeed005cd006c8bf63951cf7fb2\n //https://github.com/jquery/jquery/commit/49833f7795d665ff1d543c4f71f29fca95b567e9\n //https://github.com/jquery/jquery/compare/2.1.4...2.2.0\n var _jQueryPositionNeedsFix = false; // v2.2.0 only\n try {\n var vs = $.fn.jquery.split(\".\");\n if (parseInt(vs[0]) == 2 && parseInt(vs[1]) == 2 && parseInt(vs[2]) == 0) {\n _jQueryPositionNeedsFix = true;\n }\n } catch(err) {\n console.error(err);\n }\n \n $.extend(this, new EventEmitter());\n\n var SCROLL_MARGIN_TO_SHOW_LAST_VISBLE_LINE = 5;\n var ITEM_LOAD_SCROLL_BUFFER = 2000;\n var ON_SCROLL_TIME_DALAY = 300;\n\n var self = this;\n\n var _$viewport = $(options.$viewport);\n var _spine = options.spine;\n var _userStyles = options.userStyles;\n var _deferredPageRequest;\n var _currentPageRequest;\n var _$contentFrame;\n var _$el;\n\n var _stopTransientViewUpdate = false;\n\n //this flags used to prevent onScroll event triggering pagination changed when internal layout modifications happens\n //if we trigger pagination change without reference to the original request that started the change - we brake the\n //Media Overlay bechaviyour\n //We can't reuse same flag for all of this action because this actions mey happen in parallel\n var _isPerformingLayoutModifications = false; //performing asynch actions that may trigger onScroll;\n var _isSettingScrollPosition = false; //this happens when we set scroll position based on open element request\n var _isLoadingNewSpineItemOnPageRequest = false; //\n\n this.isContinuousScroll = function () {\n return isContinuousScroll;\n };\n\n this.render = function () {\n\n var template = Helpers.loadTemplate(\"scrolled_book_frame\", {});\n\n _$el = $(template);\n _$viewport.append(_$el);\n\n _$contentFrame = $(\"#scrolled-content-frame\", _$el);\n _$contentFrame.css(\"overflow\", \"\");\n _$contentFrame.css(\"overflow-y\", \"auto\");\n _$contentFrame.css(\"overflow-x\", \"hidden\");\n _$contentFrame.css(\"-webkit-overflow-scrolling\", \"touch\");\n _$contentFrame.css(\"width\", \"100%\");\n _$contentFrame.css(\"height\", \"100%\");\n _$contentFrame.css(\"position\", \"relative\");\n\n var settings = reader.viewerSettings();\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\")\n {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n // This is a necessary counterpart for the same CSS GPU hardware acceleration trick in one_page_view.js\n // This affects the stacking order and re-enables the scrollbar in Safari (works fine in Chrome otherwise)\n _$contentFrame.css(\"transform\", \"translateZ(0)\");\n }\n\n // _$contentFrame.css(\"box-sizing\", \"border-box\");\n // _$contentFrame.css(\"border\", \"20px solid red\");\n\n self.applyStyles();\n\n var lazyScroll = _.debounce(onScroll, ON_SCROLL_TIME_DALAY);\n\n _$contentFrame.on('scroll', function (e) {\n lazyScroll(e);\n onScrollDirect();\n });\n\n return self;\n };\n\n function updateLoadedViewsTop(callback, assertScrollPosition) {\n\n if (_stopTransientViewUpdate) {\n callback();\n return;\n }\n\n var viewPage = firstLoadedView();\n if (!viewPage) {\n callback();\n return;\n }\n\n var viewPortRange = getVisibleRange(0);\n var firstViewRange = getPageViewRange(viewPage);\n\n if ((viewPortRange.top - firstViewRange.bottom) > ITEM_LOAD_SCROLL_BUFFER) {\n var scrollPos = scrollTop();\n removePageView(viewPage);\n scrollTo(scrollPos - (firstViewRange.bottom - firstViewRange.top), undefined);\n assertScrollPosition(\"updateLoadedViewsTop 1\");\n updateLoadedViewsTop(callback, assertScrollPosition); //recursion\n }\n else if ((viewPortRange.top - firstViewRange.top) < ITEM_LOAD_SCROLL_BUFFER) {\n addToTopOf(viewPage, function (isElementAdded) {\n if (isElementAdded) {\n assertScrollPosition(\"updateLoadedViewsTop 2\");\n updateLoadedViewsTop(callback, assertScrollPosition); //recursion\n }\n else {\n callback();\n }\n });\n }\n else {\n callback();\n }\n\n }\n\n function updateLoadedViewsBottom(callback, assertScrollPosition) {\n\n if (_stopTransientViewUpdate) {\n callback();\n return;\n }\n\n var viewPage = lastLoadedView();\n if (!viewPage) {\n callback();\n return;\n }\n\n var viewPortRange = getVisibleRange(0);\n var lastViewRange = getPageViewRange(viewPage);\n\n if ((lastViewRange.top - viewPortRange.bottom) > ITEM_LOAD_SCROLL_BUFFER) {\n removePageView(viewPage);\n assertScrollPosition(\"updateLoadedViewsBottom 1\");\n updateLoadedViewsBottom(callback, assertScrollPosition); //recursion\n }\n else if ((lastViewRange.bottom - viewPortRange.bottom) < ITEM_LOAD_SCROLL_BUFFER) {\n addToBottomOf(viewPage, function (newPageLoaded) {\n assertScrollPosition(\"updateLoadedViewsBottom 2\");\n if (newPageLoaded) {\n updateLoadedViewsBottom(callback, assertScrollPosition); //recursion\n }\n else {\n callback();\n }\n });\n }\n else {\n callback();\n }\n\n }\n\n function updateTransientViews(pageView) {\n\n if (!isContinuousScroll) {\n return;\n }\n\n var scrollPosBefore = undefined;\n if (_DEBUG)\n {\n if (pageView)\n {\n var offset = pageView.offset();\n if (offset) scrollPosBefore = offset.top;\n }\n }\n\n // This function double-checks whether the browser has shifted the scroll position because of unforeseen rendering issues.\n // (this should never happen because we handle scroll adjustments during iframe height resizes explicitely in this code)\n var assertScrollPosition = function(msg)\n {\n if (_DEBUG)\n {\n if (!scrollPosBefore) return;\n var scrollPosAfter = undefined;\n\n var offset = pageView.offset();\n if (offset) scrollPosAfter = offset.top;\n\n if (!scrollPosAfter) return;\n\n var diff = scrollPosAfter - scrollPosBefore;\n if (Math.abs(diff) > 1)\n {\n console.debug(\"@@@@@@@@@@@@@@@ SCROLL ADJUST (\" + msg + \") \" + diff + \" -- \" + pageView.currentSpineItem().href);\n //_$contentFrame[0].scrollTop = _$contentFrame[0].scrollTop + diff;\n }\n }\n };\n\n _isPerformingLayoutModifications = true;\n updateLoadedViewsBottom(function () {\n updateLoadedViewsTop(function () {\n setTimeout(function () {\n _isPerformingLayoutModifications = false;\n }, ON_SCROLL_TIME_DALAY + 100);\n }, assertScrollPosition);\n }, assertScrollPosition);\n }\n\n var _mediaOverlaysWasPlayingLastTimeScrollStarted = false;\n\n function onScrollDirect(e)\n {\n var settings = reader.viewerSettings();\n if (!settings.mediaOverlaysPreservePlaybackWhenScroll)\n {\n if (!_mediaOverlaysWasPlayingLastTimeScrollStarted && reader.isMediaOverlayAvailable())\n {\n _mediaOverlaysWasPlayingLastTimeScrollStarted = reader.isPlayingMediaOverlay();\n if (_mediaOverlaysWasPlayingLastTimeScrollStarted)\n {\n reader.pauseMediaOverlay();\n }\n }\n }\n }\n\n function onScroll(e)\n {\n if ( !_isPerformingLayoutModifications\n && !_isSettingScrollPosition\n && !_isLoadingNewSpineItemOnPageRequest) {\n\n self.resetCurrentPosition();\n\n updateTransientViews();\n onPaginationChanged(self);\n\n _.defer(function() {\n if (!_currentPageRequest) {\n self.saveCurrentPosition();\n }\n })\n\n var settings = reader.viewerSettings();\n if (!settings.mediaOverlaysPreservePlaybackWhenScroll)\n {\n if (_mediaOverlaysWasPlayingLastTimeScrollStarted)\n {\n setTimeout(function()\n {\n reader.playMediaOverlay();\n _mediaOverlaysWasPlayingLastTimeScrollStarted = false;\n }, 100);\n }\n }\n }\n }\n\n function scrollTo(offset, pageRequest) {\n\n _$contentFrame[0].scrollTop = offset;\n\n if (pageRequest) {\n onPaginationChanged(pageRequest.initiator, pageRequest.spineItem, pageRequest.elementId);\n }\n }\n\n function updatePageViewSizeAndAdjustScroll(pageView)\n {\n var scrollPos = scrollTop();\n var rangeBeforeResize = getPageViewRange(pageView);\n\n updatePageViewSize(pageView);\n\n var rangeAfterResize = getPageViewRange(pageView);\n\n var heightAfter = rangeAfterResize.bottom - rangeAfterResize.top;\n var heightBefore = rangeBeforeResize.bottom - rangeBeforeResize.top;\n\n var delta = heightAfter - heightBefore;\n\n if (Math.abs(delta) > 0)\n {\n if (_DEBUG)\n {\n console.debug(\"IMMEDIATE SCROLL ADJUST: \" + pageView.currentSpineItem().href + \" == \" + delta);\n }\n scrollTo(scrollPos + delta);\n }\n }\n\n function addToTopOf(topView, callback) {\n\n var prevSpineItem = _spine.prevItem(topView.currentSpineItem(), true);\n if (!prevSpineItem) {\n callback(false);\n return;\n }\n\n var tmpView = createPageViewForSpineItem(prevSpineItem, true);\n\n // add to the end first to avoid scrolling during load\n var lastView = lastLoadedView();\n tmpView.element().insertAfter(lastView.element());\n\n tmpView.loadSpineItem(prevSpineItem, function (success, $iframe, spineItem, isNewlyLoaded, context) {\n if (success) {\n\n updatePageViewSize(tmpView);\n var range = getPageViewRange(tmpView);\n\n removePageView(tmpView);\n\n\n var scrollPos = scrollTop();\n\n var newView = createPageViewForSpineItem(prevSpineItem);\n var originalHeight = range.bottom - range.top;\n\n\n newView.setHeight(originalHeight);\n // iframe is loaded hidden here\n //this.showIFrame();\n //===> not necessary here (temporary iframe)\n\n newView.element().insertBefore(topView.element());\n\n scrollPos = scrollPos + originalHeight;\n\n scrollTo(scrollPos, undefined);\n\n newView.loadSpineItem(prevSpineItem, function (success, $iframe, spineItem, isNewlyLoaded, context) {\n if (success) {\n\n updatePageViewSizeAndAdjustScroll(newView);\n onPageViewLoaded(newView, success, $iframe, spineItem, isNewlyLoaded, context);\n callback(success);\n // No need for complicated reachStableContentHeight any more\n // Remove this\n //reachStableContentHeight(0, newView, $iframe[0], spineItem.href, spineItem.isFixedLayout(), spineItem.isFixedLayout() ? newView.meta_width() : 0, \"addToTopOf\", continueCallback); // //onIFrameLoad called before this callback, so okay.\n }\n else {\n console.error(\"Unable to open 2 \" + prevSpineItem.href);\n removePageView(newView);\n callback(false);\n }\n\n });\n }\n else {\n console.error(\"Unable to open 1 \" + prevSpineItem.href);\n removePageView(tmpView);\n callback(false);\n }\n\n });\n }\n\n function updatePageViewSize(pageView) {\n\n if (pageView.currentSpineItem().isFixedLayout()) {\n pageView.scaleToWidth(_$contentFrame.width());\n }\n else {\n pageView.resizeIFrameToContent();\n }\n }\n\n function addToBottomOf(bottomView, callback) {\n\n var nexSpineItem = _spine.nextItem(bottomView.currentSpineItem(), true);\n if (!nexSpineItem) {\n callback(false);\n return;\n }\n\n var scrollPos = scrollTop();\n\n var newView = createPageViewForSpineItem(nexSpineItem);\n newView.element().insertAfter(bottomView.element());\n\n newView.loadSpineItem(nexSpineItem, function (success, $iframe, spineItem, isNewlyLoaded, context) {\n if (success) {\n\n updatePageViewSize(newView);\n onPageViewLoaded(newView, success, $iframe, spineItem, isNewlyLoaded, context);\n callback(success);\n // No need for complicated reachStableContentHeight any more\n //reachStableContentHeight(2, newView, $iframe[0], spineItem.href, spineItem.isFixedLayout(), spineItem.isFixedLayout() ? newView.meta_width() : 0, \"addToBottomOf\", continueCallback); // //onIFrameLoad called before this callback, so okay.\n }\n else {\n console.error(\"Unable to load \" + nexSpineItem.href);\n callback(false);\n }\n\n });\n }\n\n function removeLoadedItems() {\n\n var loadedPageViews = [];\n\n forEachItemView(function (pageView) {\n loadedPageViews.push(pageView);\n }, false);\n\n for (var i = 0, count = loadedPageViews.length; i < count; i++) {\n removePageView(loadedPageViews[i]);\n }\n }\n\n function removePageView(pageView) {\n\n pageView.onUnload();\n pageView.element().remove();\n\n }\n\n\n function setFrameSizesToRectangle(rectangle) {\n\n _$contentFrame.css(\"left\", rectangle.left);\n _$contentFrame.css(\"top\", rectangle.top);\n _$contentFrame.css(\"right\", rectangle.right);\n _$contentFrame.css(\"bottom\", rectangle.bottom);\n\n }\n\n this.remove = function () {\n _$el.remove();\n };\n\n this.onViewportResize = function () {\n\n if (!_$contentFrame) {\n return;\n }\n };\n\n this.resetCurrentPosition = function() {\n _currentPageRequest = undefined;\n };\n\n this.saveCurrentPosition = function() {\n // If there's a deferred page request, there's no point in saving the current position\n // as it's going to change soon\n if (_deferredPageRequest) {\n return;\n }\n\n var _firstVisibleCfi = self.getFirstVisibleCfi();\n var spineItem = _spine.getItemById(_firstVisibleCfi.idref);\n if (spineItem) {\n _currentPageRequest = new PageOpenRequest(spineItem, self);\n _currentPageRequest.setElementCfi(_firstVisibleCfi.contentCFI);\n }\n };\n\n this.restoreCurrentPosition = function() {\n if (_currentPageRequest) {\n this.openPageInternal(_currentPageRequest); \n }\n };\n\n var _viewSettings = undefined;\n this.setViewSettings = function (settings, docWillChange) {\n\n _viewSettings = settings;\n\n forEachItemView(function (pageView) {\n\n pageView.setViewSettings(settings, docWillChange);\n\n }, false);\n };\n\n function createPageViewForSpineItem(aSpineItem, isTemporaryView) {\n \n options.disablePageTransitions = true; // force\n\n var enableBookStyleOverrides = true;\n if (aSpineItem.isFixedLayout()) {\n enableBookStyleOverrides = false;\n }\n\n var pageView = new OnePageView(\n options,\n [\"content-doc-frame\"],\n enableBookStyleOverrides,\n reader);\n\n pageView.on(OnePageView.Events.SPINE_ITEM_OPEN_START, function($iframe, spineItem) {\n \n Globals.logEvent(\"OnePageView.Events.SPINE_ITEM_OPEN_START\", \"ON\", \"scroll_view.js [ \" + spineItem.href + \" ]\");\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOAD_START\", \"EMIT\", \"scroll_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOAD_START, $iframe, spineItem);\n });\n\n pageView.on(Globals.Events.CONTENT_DOCUMENT_UNLOADED, function($iframe, spineItem) {\n Globals.logEvent(\"CONTENT_DOCUMENT_UNLOADED\", \"ON\", \"scroll_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_UNLOADED, $iframe, spineItem);\n });\n\n function updatePageViewSizeAndPagination_() {\n // Resize the PageView to fit its content and update the pagination\n // and the adjacent views\n updatePageViewSize(pageView);\n onPaginationChanged(self);\n updateTransientViews();\n if (_currentPageRequest && !_deferredPageRequest) {\n self.restoreCurrentPosition(); \n }\n }\n var updatePageViewSizeAndPagination = _.debounce(updatePageViewSizeAndPagination_, 100);\n\n // Observe the CONTENT_SIZE_CHANGED from the page view so the ScrollView\n // is notified when the size of the content of the view changes, because\n // the font or the viewport size has changed\n pageView.on(OnePageView.Events.CONTENT_SIZE_CHANGED, function($iframe, spineItem) {\n \n Globals.logEvent(\"OnePageView.Events.CONTENT_SIZE_CHANGED\", \"ON\", \"scroll_view.js [ \" + spineItem.href + \" ]\");\n updatePageViewSizeAndPagination();\n });\n\n pageView.render();\n\n var docWillChange = true;\n if (_viewSettings) pageView.setViewSettings(_viewSettings, docWillChange);\n\n if (!isTemporaryView) {\n pageView.element().data(\"pageView\", pageView);\n }\n\n\n if (isContinuousScroll)\n {\n pageView.decorateIframe();\n }\n\n return pageView;\n }\n\n function findPageViewForSpineItem(spineItem, reverse) {\n\n var retView = undefined;\n\n forEachItemView(function (pageView) {\n if (pageView.currentSpineItem() == spineItem) {\n retView = pageView;\n //brake the iteration\n return false;\n }\n else {\n return true;\n }\n\n }, reverse);\n\n return retView;\n }\n\n function forEachItemView(func, reverse) {\n\n var pageNodes = _$contentFrame.children();\n\n var count = pageNodes.length;\n var iter = reverse ? function(ix) { return ix - 1}\n : function(ix) { return ix + 1};\n\n var compare = reverse ? function(ix) { return ix >= 0}\n : function(ix) { return ix < count };\n\n var start = reverse ? count - 1 : 0;\n\n for (var i = start; compare(i); i = iter(i)) {\n\n var $element = pageNodes.eq(i);\n var curView = $element.data(\"pageView\");\n\n if (curView) {\n\n if (func(curView) === false) {\n return;\n }\n }\n }\n }\n\n function firstLoadedView() {\n\n var firstView = undefined;\n\n forEachItemView(function (pageView) {\n\n firstView = pageView;\n return false;\n\n }, false);\n\n return firstView;\n }\n\n function lastLoadedView() {\n\n var lastView = undefined;\n\n forEachItemView(function (pageView) {\n lastView = pageView;\n return false;\n\n }, true);\n\n return lastView;\n }\n\n function onPageViewLoaded(pageView, success, $iframe, spineItem, isNewlyLoaded, context) {\n\n if (success && isNewlyLoaded) {\n Globals.logEvent(\"CONTENT_DOCUMENT_LOADED\", \"EMIT\", \"scroll_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOADED, $iframe, spineItem);\n }\n\n }\n\n function loadSpineItem(spineItem, callback) {\n\n removeLoadedItems();\n\n var scrollPos = scrollTop();\n\n var loadedView = createPageViewForSpineItem(spineItem);\n\n _$contentFrame.append(loadedView.element());\n\n loadedView.loadSpineItem(spineItem, function (success, $iframe, spineItem, isNewlyLoaded, context) {\n\n if (success) {\n\n updatePageViewSize(loadedView);\n onPageViewLoaded(loadedView, success, $iframe, spineItem, isNewlyLoaded, context);\n //callback(loadedView);\n // No need for complicated reachStableContentHeight any more\n //reachStableContentHeight(1, loadedView, $iframe[0], spineItem.href, spineItem.isFixedLayout(), spineItem.isFixedLayout() ? loadedView.meta_width() : 0, \"openPage\", continueCallback); // //onIFrameLoad called before this callback, so okay.\n }\n else {\n console.error(\"Unable to load \" + spineItem.href);\n\n removePageView(loadedView);\n loadedView = undefined;\n }\n\n callback(loadedView);\n\n });\n\n }\n\n this.applyStyles = function () {\n\n Helpers.setStyles(_userStyles.getStyles(), _$el.parent());\n\n //because left, top, bottom, right setting ignores padding of parent container\n //we have to take it to account manually\n var elementMargins = Helpers.Margins.fromElement(_$el);\n\n setFrameSizesToRectangle(elementMargins.padding);\n\n };\n\n this.applyBookStyles = function () {\n\n forEachItemView(function (pageView) {\n pageView.applyBookStyles();\n }, false);\n };\n\n\n this.openPageInternal = function (pageRequest) {\n\n _stopTransientViewUpdate = true;\n\n //local helper function\n var doneLoadingSpineItem = function (pageView, pageRequest) {\n\n _deferredPageRequest = undefined;\n openPageViewElement(pageView, pageRequest);\n _stopTransientViewUpdate = false;\n updateTransientViews(pageView);\n };\n\n if (pageRequest.spineItem) {\n\n var pageView = findPageViewForSpineItem(pageRequest.spineItem);\n if (pageView) {\n doneLoadingSpineItem(pageView, pageRequest);\n }\n else {\n _deferredPageRequest = pageRequest;\n _isLoadingNewSpineItemOnPageRequest = true;\n\n loadSpineItem(pageRequest.spineItem, function (pageView) {\n\n setTimeout(function () {\n _isLoadingNewSpineItemOnPageRequest = false;\n }, ON_SCROLL_TIME_DALAY + 100);\n\n if (pageView && _deferredPageRequest) {\n if (pageView.currentSpineItem() === _deferredPageRequest.spineItem) {\n doneLoadingSpineItem(pageView, _deferredPageRequest);\n }\n else { //while we where waiting for load new request come\n self.openPage(_deferredPageRequest); //recursion\n }\n }\n else {\n onPaginationChanged(pageRequest.initiator, pageRequest.spineItem, pageRequest.elementId);\n }\n\n });\n }\n }\n else {\n doneLoadingSpineItem(undefined, pageRequest);\n }\n };\n\n this.openPage = function(pageRequest) {\n this.resetCurrentPosition();\n _currentPageRequest = pageRequest;\n this.openPageInternal(pageRequest);\n }\n\n function openPageViewElement(pageView, pageRequest) {\n\n var topOffset = 0;\n var pageCount;\n var $element;\n var sfiNav;\n var pageRange;\n\n if (pageRequest.scrollTop !== undefined) {\n\n topOffset = pageRequest.scrollTop;\n }\n else if (pageRequest.spineItemPageIndex !== undefined) {\n\n var pageIndex;\n pageCount = calculatePageCount();\n if (pageRequest.spineItemPageIndex < 0) {\n pageIndex = 0;\n }\n else if (pageRequest.spineItemPageIndex >= pageCount) {\n pageIndex = pageCount - 1;\n }\n else {\n pageIndex = pageRequest.spineItemPageIndex;\n }\n\n topOffset = pageIndex * viewHeight();\n }\n else if (pageView && pageRequest.elementId) {\n\n pageRange = getPageViewRange(pageView);\n sfiNav = pageView.getNavigator();\n $element = sfiNav.getElementById(pageRequest.elementId);\n\n if (!$element || !$element.length) {\n console.warn(\"Element id=\" + pageRequest.elementId + \" not found!\");\n return;\n }\n\n if (isElementVisibleOnScreen(pageView, $element, 60)) {\n //TODO refactoring required\n // this is artificial call because MO player waits for this event to continue playing.\n onPaginationChanged(pageRequest.initiator, pageRequest.spineItem, pageRequest.elementId);\n return;\n }\n\n var elementRange = getElementRange(pageView, $element);\n topOffset = elementRange.top + pageRange.top;\n\n }\n else if (pageView && pageRequest.elementCfi) {\n\n pageRange = getPageViewRange(pageView);\n sfiNav = pageView.getNavigator();\n\n var domRange = sfiNav.getDomRangeFromRangeCfi(pageRequest.elementCfi); \n if (!domRange) {\n console.warn(\"Range for cfi=\" + pageRequest.elementCfi + \" not found!\");\n return;\n }\n \n var domRangeAsRange = getDomRangeAsRange(pageView, domRange);\n if (isRangeIsVisibleOnScreen(domRangeAsRange, 60)) {\n //TODO refactoring required\n // this is artificial call because MO player waits for this event to continue playing.\n onPaginationChanged(pageRequest.initiator, pageRequest.spineItem, pageRequest.elementId);\n return;\n }\n\n topOffset = domRangeAsRange.top;\n\n }\n else if (pageRequest.firstPage) {\n\n topOffset = 0;\n }\n else if (pageRequest.lastPage) {\n pageCount = calculatePageCount();\n\n if (pageCount === 0) {\n return;\n }\n\n topOffset = scrollHeight() - viewHeight() - 5;\n }\n else if (pageView) {\n\n pageRange = getPageViewRange(pageView);\n topOffset = pageRange.top;\n }\n else {\n topOffset = 0;\n }\n\n if (scrollTop() != topOffset) {\n\n _isSettingScrollPosition = true;\n scrollTo(topOffset, pageRequest);\n\n setTimeout(function () {\n _isSettingScrollPosition = false;\n }, ON_SCROLL_TIME_DALAY + 100); //we have to wait more than scroll delay to make sure that we don't react on onScroll\n\n }\n else {\n onPaginationChanged(pageRequest.initiator, pageRequest.spineItem, pageRequest.elementId);\n }\n }\n\n function calculatePageCount() {\n\n return Math.ceil(scrollHeight() / viewHeight());\n }\n\n function onPaginationChanged(initiator, paginationRequest_spineItem, paginationRequest_elementId) {\n \n Globals.logEvent(\"InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED\", \"EMIT\", \"scroll_view.js\");\n self.emit(Globals.InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED, {\n paginationInfo: self.getPaginationInfo(),\n initiator: initiator,\n spineItem: paginationRequest_spineItem,\n elementId: paginationRequest_elementId\n });\n }\n\n function scrollTop() {\n return _$contentFrame[0].scrollTop;\n }\n\n function scrollBottom() {\n return scrollHeight() - (scrollTop() + viewHeight());\n }\n\n function viewHeight() {\n return _$contentFrame.height();\n }\n\n function scrollHeight() {\n return _$contentFrame[0].scrollHeight;\n }\n\n this.openPageNext = function (initiator) {\n\n var pageRequest;\n\n if (scrollBottom() > 0) {\n\n pageRequest = new PageOpenRequest(undefined, initiator);\n pageRequest.scrollTop = scrollTop() + Math.min(scrollBottom(), viewHeight() - SCROLL_MARGIN_TO_SHOW_LAST_VISBLE_LINE);\n openPageViewElement(undefined, pageRequest);\n }\n\n };\n\n this.openPagePrev = function (initiator) {\n\n var pageRequest;\n\n if (scrollTop() > 0) {\n\n pageRequest = new PageOpenRequest(undefined, initiator);\n pageRequest.scrollTop = scrollTop() - (viewHeight() - SCROLL_MARGIN_TO_SHOW_LAST_VISBLE_LINE);\n if (pageRequest.scrollTop < 0) {\n pageRequest.scrollTop = 0;\n }\n\n openPageViewElement(undefined, pageRequest);\n }\n };\n\n function getVisiblePageViews() {\n\n var views = [];\n\n var range = getVisibleRange(-SCROLL_MARGIN_TO_SHOW_LAST_VISBLE_LINE);\n\n forEachItemView(function (pageView) {\n\n if (isPageViewVisibleInRange(pageView, range)) {\n\n views.push(pageView);\n }\n else if (views.length > 0) {\n\n return false;\n }\n\n return true;\n\n }, false);\n\n return views;\n\n }\n\n\n function getFirstVisiblePageView() {\n\n var visibleViews = getVisiblePageViews();\n\n return visibleViews[0];\n }\n\n function isPageViewVisibleInRange(pageView, range) {\n var pageViewRange = getPageViewRange(pageView);\n return rangeLength(intersectRanges(pageViewRange, range)) > 0;\n }\n\n function getPageViewRange(pageView) {\n var range = {top: 0, bottom: 0};\n\n var el = pageView.element();\n var pos = el.position();\n \n if (_jQueryPositionNeedsFix) {\n var offsetParent = el.offsetParent();\n pos.top -= offsetParent.scrollTop();\n pos.left -= offsetParent.scrollLeft();\n }\n\n range.top = pos.top + scrollTop();\n range.bottom = range.top + pageView.getCalculatedPageHeight();\n\n return range;\n }\n\n this.getPaginationInfo = function () {\n var spineItem;\n var pageCount;\n var pageView;\n var pageViewRange;\n var heightAboveViewport;\n var heightBelowViewport;\n var pageCountAbove;\n var pageCountBelow;\n\n var viewPortRange = getVisibleRange();\n var viewPortHeight = viewPortRange.bottom - viewPortRange.top;\n\n var paginationInfo = new CurrentPagesInfo(_spine, false);\n\n var visibleViews = getVisiblePageViews();\n\n for (var i = 0, count = visibleViews.length; i < count; i++) {\n\n pageView = visibleViews[i];\n spineItem = pageView.currentSpineItem();\n pageViewRange = getPageViewRange(pageView);\n\n heightAboveViewport = Math.max(viewPortRange.top - pageViewRange.top, 0);\n heightBelowViewport = Math.max(pageViewRange.bottom - viewPortRange.bottom, 0);\n\n pageCountAbove = Math.ceil(heightAboveViewport / viewPortHeight);\n pageCountBelow = Math.ceil(heightBelowViewport / viewPortHeight);\n pageCount = pageCountAbove + pageCountBelow + 1;\n\n paginationInfo.addOpenPage(pageCountAbove, pageCount, spineItem.idref, spineItem.index);\n }\n\n return paginationInfo;\n };\n\n this.bookmarkCurrentPage = function () {\n \n return self.getFirstVisibleCfi();\n };\n\n\n this.getLoadedSpineItems = function () {\n var spineItems = [];\n\n forEachItemView(function (pageView) {\n spineItems.push(pageView.currentSpineItem());\n }, false);\n\n return spineItems;\n };\n\n this.getElement = function (spineItemIdref, selector) {\n var element = undefined;\n\n forEachItemView(function (pageView) {\n if(pageView.currentSpineItem().idref == spineItemIdref) {\n\n element = pageView.getNavigator().getElement(selector);\n\n return false;\n }\n\n return true;\n\n }, false);\n\n return element;\n };\n\n this.getElementById = function(spineItemIdref, id) {\n var found = undefined;\n\n forEachItemView(function (pageView) {\n if (pageView.currentSpineItem().idref == spineItemIdref) {\n\n found = pageView.getNavigator().getElementById(id);\n return false;\n }\n\n return true;\n\n }, false);\n\n if (!found) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n return found;\n };\n\n this.getElementByCfi = function (spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist) {\n var found = undefined;\n\n forEachItemView(function (pageView) {\n if (pageView.currentSpineItem().idref == spineItemIdref) {\n\n found = pageView.getNavigator().getElementByCfi(cfi, classBlacklist, elementBlacklist, idBlacklist);\n return false;\n }\n\n return true;\n\n }, false);\n\n if (!found) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n return found;\n\n };\n\n function callOnVisiblePageView(iterator) {\n var viewPortRange = getVisibleRange();\n\n var result = undefined;\n var normalizedRange = {top: 0, bottom: 0};\n var pageViewRange;\n\n var steppedToVisiblePage = false;\n\n forEachItemView(function (pageView) {\n pageViewRange = getPageViewRange(pageView);\n\n normalizedRange.top = Math.max(pageViewRange.top, viewPortRange.top) - pageViewRange.top;\n normalizedRange.bottom = Math.min(pageViewRange.bottom, viewPortRange.bottom) - pageViewRange.top;\n\n if (rangeLength(normalizedRange) > 0) {\n steppedToVisiblePage = true;\n\n result = iterator(pageView, normalizedRange);\n if (result) {\n return false;\n }\n }\n else if (steppedToVisiblePage) {\n return false;\n }\n\n return true; //continue iteration\n\n }, false);\n\n return result;\n }\n\n this.getFirstVisibleMediaOverlayElement = function () {\n return callOnVisiblePageView(function (pageView, pageRange) {\n return pageView.getNavigator().getFirstVisibleMediaOverlayElement(pageRange);\n });\n };\n\n // /**\n // * @deprecated\n // */\n // this.getVisibleMediaOverlayElements = function() {\n // var viewPortRange = getVisibleRange();\n //\n // var pageMoElements;\n // var moElements = [];\n // var normalizedRange = {top: 0, bottom: 0};\n // var pageViewRange;\n //\n // forEachItemView(function(pageView){\n // pageViewRange = getPageViewRange(pageView);\n //\n // normalizedRange.top = Math.max(pageViewRange.top, viewPortRange.top) - pageViewRange.top;\n // normalizedRange.bottom = Math.min(pageViewRange.bottom, viewPortRange.bottom) - pageViewRange.top;\n //\n // if(rangeLength(normalizedRange) > 0) {\n // pageMoElements = pageView.getNavigator().getVisibleMediaOverlayElements(normalizedRange);\n // moElements.push.apply(moElements, pageMoElements);\n // }\n // }, false);\n //\n // return moElements;\n // };\n\n function getVisibleRange(expand) {\n if (expand !== 0 && !expand) {\n expand = 0;\n }\n\n var range = {\n\n top: scrollTop() - expand,\n bottom: scrollTop() + viewHeight() + expand\n };\n\n if (range.top < 0) {\n range.top = 0;\n }\n\n if (range.bottom > scrollHeight()) {\n range.bottom = scrollHeight();\n }\n\n return range;\n\n }\n\n function intersectRanges(r1, r2) {\n return {\n\n top: Math.max(r1.top, r2.top),\n bottom: Math.min(r1.bottom, r2.bottom)\n };\n }\n\n function rangeLength(range) {\n if (range.bottom < range.top) {\n return 0;\n }\n\n return range.bottom - range.top;\n }\n\n function isElementVisibleOnScreen(pageView, $element, percentVisible) {\n\n var elementRange = getElementRange(pageView, $element);\n\n return isRangeIsVisibleOnScreen(elementRange, percentVisible);\n }\n\n function isRangeIsVisibleOnScreen(range, percentVisible) {\n\n var visibleRange = getVisibleRange();\n\n var smallestVisibleLength = Math.min(rangeLength(visibleRange), rangeLength(range));\n if (smallestVisibleLength === 0) {\n smallestVisibleLength = 5; // if element is 0 height we will set it to arbitrary 5 pixels - not to divide by 0\n }\n\n var intersectionRange = intersectRanges(visibleRange, range);\n\n var visiblePercent = (rangeLength(intersectionRange) / smallestVisibleLength) * 100;\n\n return visiblePercent >= percentVisible;\n }\n\n function getElementRange(pageView, $element) {\n\n var pageRange = getPageViewRange(pageView);\n\n var elementRange = {top: 0, bottom: 0};\n elementRange.top = $element.offset().top + pageRange.top;\n elementRange.bottom = elementRange.top + $element.height();\n\n return elementRange;\n }\n \n function getDomRangeAsRange(pageView, domRange) {\n\n var pageRange = getPageViewRange(pageView);\n\n var elementRange = {top: 0, bottom: 0};\n var boundingClientRect = domRange.getBoundingClientRect();\n elementRange.top = boundingClientRect.top + pageRange.top;\n elementRange.bottom = elementRange.top + boundingClientRect.height;\n\n return elementRange;\n }\n\n this.insureElementVisibility = function (spineItemId, element, initiator) {\n var pageView = undefined;\n\n forEachItemView(function (pv) {\n if (pv.currentSpineItem().idref === spineItemId) {\n\n pageView = pv;\n return false;\n }\n\n return true;\n }, false);\n\n if (!pageView) {\n console.warn(\"Page for element \" + element + \" not found\");\n return;\n }\n\n var $element = $(element);\n\n var elementRange = getElementRange(pageView, $element);\n\n if (!isRangeIsVisibleOnScreen(elementRange, 60)) {\n\n var spineItem = _spine.getItemById(spineItemId);\n var openPageRequest = new PageOpenRequest(spineItem, initiator);\n openPageRequest.scrollTop = elementRange.top;\n\n self.openPage(openPageRequest);\n }\n\n };\n\n this.getVisibleElements = function(selector, includeSpineItem) {\n var elements = [];\n forEachItemView(function (pageView) {\n if (includeSpineItem) {\n elements.push({elements: pageView.getVisibleElements(selector), spineItem: pageView.currentSpineItem()});\n } else {\n elements = _.flatten([elements, pageView.getVisibleElements(selector)], true);\n }\n });\n return elements;\n };\n\n this.getVisibleElementsWithFilter = function(filterFunction) {\n\n console.warn('getVisibleElementsWithFilter: Not implemented yet for scroll_view');\n };\n\n this.isElementVisible = function($element){\n\n console.warn('isElementVisible: Not implemented yet for scroll_view');\n };\n\n this.getElements = function(spineItemIdref, selector) {\n var pageView = findPageViewForSpineItem(spineItemIdref);\n if (pageView) {\n return pageView.getElements(spineItemIdref, selector);\n }\n };\n\n this.isNodeFromRangeCfiVisible = function (spineIdref, partialCfi) {\n var pageView = findPageViewForSpineItem(spineIdRef);\n if (pageView) {\n return pageView.isNodeFromRangeCfiVisible(spineIdRef, partialCfi);\n }\n };\n\n this.isVisibleSpineItemElementCfi = function (spineIdRef, partialCfi) {\n var pageView = findPageViewForSpineItem(spineIdRef);\n if (pageView) {\n return pageView.isVisibleSpineItemElementCfi(spineIdRef, partialCfi);\n }\n };\n\n this.getNodeRangeInfoFromCfi = function(spineIdRef, partialCfi){\n var pageView = findPageViewForSpineItem(spineIdRef);\n if (pageView) {\n return pageView.isVisibleSpineItemElementCfi(spineIdRef, partialCfi);\n }\n };\n \n function getFirstOrLastVisibleCfi(pickerFunc) {\n var pageViews = getVisiblePageViews();\n var selectedPageView = pickerFunc(pageViews);\n var pageViewTopOffset =selectedPageView.element().position().top;\n var visibleContentOffsets, frameDimensions;\n\n visibleContentOffsets = {\n top: Math.min(0, pageViewTopOffset),\n left: 0\n };\n\n var height = Math.min(selectedPageView.element().height(), viewHeight());\n\n if (pageViewTopOffset >= 0) {\n height = height - pageViewTopOffset;\n }\n \n frameDimensions = {\n width: selectedPageView.element().width(),\n height: height\n };\n \n var cfiFunctions = [\n selectedPageView.getFirstVisibleCfi,\n selectedPageView.getLastVisibleCfi\n ];\n \n return pickerFunc(cfiFunctions)(visibleContentOffsets, frameDimensions);\n }\n \n this.getFirstVisibleCfi = function () {\n \n return getFirstOrLastVisibleCfi(_.first);\n };\n\n this.getLastVisibleCfi = function () {\n \n return getFirstOrLastVisibleCfi(_.last);\n };\n\n this.getDomRangeFromRangeCfi = function (rangeCfi, rangeCfi2, inclusive) {\n if (rangeCfi2 && rangeCfi.idref !== rangeCfi2.idref) {\n console.error(\"getDomRangeFromRangeCfi: both CFIs must be scoped under the same spineitem idref\");\n return undefined;\n }\n\n rangeCfi = rangeCfi || {};\n rangeCfi2 = rangeCfi2 || {};\n\n return callOnVisiblePageView(function (pageView) {\n if (pageView.currentSpineItem().idref === rangeCfi.idref) {\n return pageView.getDomRangeFromRangeCfi(rangeCfi.contentCFI, rangeCfi2.contentCFI, inclusive);\n }\n });\n };\n\n function createBookmarkFromCfi(currentSpineItem, cfi){\n return new BookmarkData(currentSpineItem.idref, cfi);\n }\n\n this.getRangeCfiFromDomRange = function (domRange) {\n return callOnVisiblePageView(function (pageView) {\n return pageView.getRangeCfiFromDomRange(domRange);\n });\n };\n\n this.getVisibleCfiFromPoint = function (x, y, precisePoint) {\n return callOnVisiblePageView(function (pageView) {\n return createBookmarkFromCfi(pageView.currentSpineItem(), pageView.getVisibleCfiFromPoint(x, y, precisePoint));\n });\n };\n\n this.getRangeCfiFromPoints = function (startX, startY, endX, endY) {\n return callOnVisiblePageView(function (pageView) {\n return createBookmarkFromCfi(pageView.currentSpineItem(), pageView.getRangeCfiFromPoints(startX, startY, endX, endY));\n });\n };\n\n this.getCfiForElement = function(element) {\n return callOnVisiblePageView(function (pageView) {\n return createBookmarkFromCfi(pageView.currentSpineItem(), pageView.getCfiForElement(element).contentCFI);\n })\n };\n\n this.getElementFromPoint = function (x, y) {\n return callOnVisiblePageView(function (pageView) {\n return pageView.getElementFromPoint(x, y);\n });\n };\n\n this.getStartCfi = function () {\n return callOnVisiblePageView(function (pageView) {\n return pageView.getStartCfi();\n });\n };\n\n this.getEndCfi = function () {\n return callOnVisiblePageView(function (pageView) {\n return pageView.getEndCfi();\n });\n };\n\n this.getNearestCfiFromElement = function (element) {\n return callOnVisiblePageView(function (pageView) {\n return pageView.getNearestCfiFromElement(element);\n });\n };\n};\n\nreturn ScrollView;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/media_overlay_player',[\"../globals\", \"jquery\", \"../helpers\", \"./audio_player\", \"./media_overlay_element_highlighter\", \"../models/smil_iterator\", 'readium_cfi_js', './scroll_view'],\n function(Globals, $, Helpers, AudioPlayer, MediaOverlayElementHighlighter, SmilIterator, EPUBcfi, ScrollView) {\n/**\n *\n * @param reader\n * @param onStatusChanged\n * @constructor\n */\nvar MediaOverlayPlayer = function(reader, onStatusChanged) {\n\n\n var _smilIterator = undefined;\n\n var _audioPlayer = new AudioPlayer(onStatusChanged, onAudioPositionChanged, onAudioEnded, onPlay, onPause);\n\n var _ttsIsPlaying = false;\n var _currentTTS = undefined;\n var _enableHTMLSpeech = true && typeof window.speechSynthesis !== \"undefined\" && speechSynthesis != null; // set to false to force \"native\" platform TTS engine, rather than HTML Speech API\n \n var _SpeechSynthesisUtterance = undefined;\n //var _skipTTSEndEvent = false;\n var TOKENIZE_TTS = false;\n\n var _embeddedIsPlaying = false;\n var _currentEmbedded = undefined;\n\n\n this.isPlaying = function()\n {\n return _audioPlayer.isPlaying() || _ttsIsPlaying || _embeddedIsPlaying || _blankPagePlayer;\n }\n\n //var _currentPagination = undefined;\n var _package = reader.package();\n var _settings = reader.viewerSettings();\n var self = this;\n var _elementHighlighter = new MediaOverlayElementHighlighter(reader);\n\n reader.on(Globals.Events.READER_VIEW_DESTROYED, function(){\n Globals.logEvent(\"READER_VIEW_DESTROYED\", \"ON\", \"media_overlay_player.js\");\n \n self.reset();\n });\n\n\n this.applyStyles = function()\n {\n _elementHighlighter.reDo();\n };\n\n//\n// should use this.onSettingsApplied() instead!\n// this.setRate = function(rate) {\n// _audioPlayer.setRate(rate);\n// };\n// this.setVolume = function(volume) {\n// _audioPlayer.setVolume(volume);\n// };\n\n\n this.onSettingsApplied = function() {\n//console.debug(_settings);\n _audioPlayer.setRate(_settings.mediaOverlaysRate);\n _audioPlayer.setVolume(_settings.mediaOverlaysVolume / 100.0);\n };\n self.onSettingsApplied();\n \n reader.on(Globals.Events.SETTINGS_APPLIED, function() {\n \n Globals.logEvent(\"SETTINGS_APPLIED\", \"ON\", \"media_overlay_player.js\");\n this.onSettingsApplied();\n }, this);\n\n /*\n var lastElement = undefined;\n var lastElementColor = \"\";\n */\n\n var _wasPlayingAtDocLoadStart = false;\n this.onDocLoadStart = function() {\n // 1) Globals.Events.CONTENT_DOCUMENT_LOAD_START\n // (maybe 2-page fixed-layout or reflowable spread == 2 documents == 2x events)\n // MOPLayer.onDocLoad()\n \n // 2) Globals.Events.CONTENT_DOCUMENT_LOADED\n // (maybe 2-page fixed-layout or reflowable spread == 2 documents == 2x events)\n //_mediaOverlayDataInjector.attachMediaOverlayData($iframe, spineItem, _viewerSettings);\n \n // 3) Globals.Events.PAGINATION_CHANGED (layout finished, notified before rest of app, just once)\n // MOPLayer.onPageChanged()\n\n var wasPlaying = self.isPlaying();\n if (wasPlaying)\n {\n _wasPlayingAtDocLoadStart = true;\n self.pause();\n }\n };\n \n var _lastPaginationData = undefined;\n \n this.onPageChanged = function(paginationData) {\n \n _lastPaginationData = paginationData;\n \n var wasPausedBecauseNoAutoNextSmil = _wasPausedBecauseNoAutoNextSmil;\n _wasPausedBecauseNoAutoNextSmil = false;\n \n var wasPlayingAtDocLoadStart = _wasPlayingAtDocLoadStart;\n _wasPlayingAtDocLoadStart = false;\n\n if(!paginationData) {\n self.reset();\n return;\n }\n\n// if (paginationData.paginationInfo)\n// {\n// _currentPagination = paginationData.paginationInfo;\n// }\n\n /*\n if (lastElement)\n {\n $(lastElement).css(\"background-color\", lastElementColor);\n lastElement = undefined;\n }\n */\n\n var element = undefined;\n var isCfiTextRange = false;\n \n var fakeOpfRoot = \"/99!\";\n var epubCfiPrefix = \"epubcfi\";\n \n if (paginationData.elementId || paginationData.initiator == self)\n {\n var spineItems = reader.getLoadedSpineItems();\n\n var rtl = reader.spine().isRightToLeft();\n\n for(var i = (rtl ? (spineItems.length - 1) : 0); rtl && i >=0 || !rtl && i < spineItems.length; i += (rtl ? -1: 1))\n {\n var spineItem = spineItems[i];\n if (paginationData.spineItem && paginationData.spineItem != spineItem)\n {\n continue;\n }\n \n if (paginationData.elementId && paginationData.elementId.indexOf(epubCfiPrefix) === 0)\n {\n _elementHighlighter.reset(); // ensure clean DOM (no CFI span markers)\n \n var partial = paginationData.elementId.substr(epubCfiPrefix.length + 1, paginationData.elementId.length - epubCfiPrefix.length - 2);\n \n if (partial.indexOf(fakeOpfRoot) === 0)\n {\n partial = partial.substr(fakeOpfRoot.length, partial.length - fakeOpfRoot.length);\n }\n//console.log(partial);\n var parts = partial.split(\",\");\n if (parts && parts.length === 3)\n {\n try\n {\n var cfi = parts[0] + parts[1];\n var $element = reader.getElementByCfi(spineItem.idref, cfi,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n\n element = ($element && $element.length > 0) ? $element[0] : undefined;\n if (element)\n {\n if (element.nodeType === Node.TEXT_NODE)\n {\n element = element.parentNode;\n }\n break;\n }\n }\n catch (error)\n {\n console.error(error);\n }\n }\n else\n {\n try\n {\n //var cfi = \"epubcfi(\" + partial + \")\";\n //var $element = EPUBcfi.getTargetElementWithPartialCFI(cfi, DOC);\n var $element = reader.getElementByCfi(spineItem.idref, partial,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n \n element = ($element && $element.length > 0) ? $element[0] : undefined;\n if (element)\n {\n if (element.nodeType === Node.TEXT_NODE)\n {\n element = element.parentNode;\n }\n break;\n }\n }\n catch (error)\n {\n console.error(error);\n }\n }\n }\n\n if (!element)\n {\n if (paginationData.initiator == self && !paginationData.elementId)\n {\n var $element = reader.getElement(spineItem.idref, \"body\");\n element = ($element && $element.length > 0) ? $element[0] : undefined;\n }\n else\n {\n var $element = reader.getElementById(spineItem.idref, paginationData.elementId);\n element = ($element && $element.length > 0) ? $element[0] : undefined;\n //(\"#\" + Globals.Helpers.escapeJQuerySelector(paginationData.elementId))\n }\n \n if (element)\n {\n /*\n console.error(\"GREEN: \" + paginationData.elementId);\n lastElement = element;\n lastElementColor = $(element).css(\"background-color\");\n $(element).css(\"background-color\", \"green\");\n */\n break;\n }\n }\n }\n\n if (!element)\n {\n console.error(\"paginationData.elementId BUT !element: \" + paginationData.elementId);\n }\n }\n\n var wasPlaying = self.isPlaying() || wasPlayingAtDocLoadStart;\n\n if(!_smilIterator || !_smilIterator.currentPar) {\n if(paginationData.initiator !== self) {\n clipBeginOffset = 0.0;\n self.reset();\n\n if (paginationData.elementId && element)\n {\n if (wasPlaying || wasPausedBecauseNoAutoNextSmil)\n {\n paginationData.elementIdResolved = element;\n self.toggleMediaOverlayRefresh(paginationData);\n }\n }\n else if (wasPlaying || wasPausedBecauseNoAutoNextSmil)\n {\n self.toggleMediaOverlay();\n }\n return;\n }\n\n //paginationData.initiator === self\n//\n// if (!paginationData.elementId)\n// {\n// console.error(\"!paginationData.elementId\");\n// clipBeginOffset = 0.0;\n// return;\n// }\n\n if(!element)\n {\n console.error(\"!element: \" + paginationData.elementId);\n clipBeginOffset = 0.0;\n return;\n }\n\n var moData = $(element).data(\"mediaOverlayData\");\n if(!moData) {\n console.error(\"!moData: \" + paginationData.elementId);\n clipBeginOffset = 0.0;\n return;\n }\n\n var parToPlay = moData.par ? moData.par : moData.pars[0];\n\n if (moData.pars)\n {\n for (var iPar = 0; iPar < moData.pars.length; iPar++)\n {\n var p = moData.pars[iPar];\n \n if (paginationData.elementId === p.cfi.smilTextSrcCfi)\n {\n parToPlay = p;\n break;\n }\n }\n }\n \n playPar(parToPlay);\n return;\n }\n\n var noReverseData = !_smilIterator.currentPar.element && !_smilIterator.currentPar.cfi;\n if(noReverseData) {\n console.error(\"!! _smilIterator.currentPar.element ??\");\n }\n\n//console.debug(\"+++> paginationData.elementId: \" + paginationData.elementId + \" /// \" + _smilIterator.currentPar.text.srcFile + \" # \" + _smilIterator.currentPar.text.srcFragmentId); //PageOpenRequest.elementId\n\n\n if(paginationData.initiator == self)\n {\n var notSameTargetID = paginationData.elementId && paginationData.elementId !== _smilIterator.currentPar.text.srcFragmentId;\n\n if(notSameTargetID) {\n console.error(\"!! paginationData.elementId !== _smilIterator.currentPar.text.srcFragmentId\");\n }\n\n if(notSameTargetID || noReverseData) {\n clipBeginOffset = 0.0;\n return;\n }\n\n if(wasPlaying)\n {\n highlightCurrentElement();\n }\n else\n {\n playCurrentPar();\n }\n }\n else\n {\n if(!wasPlaying && !wasPausedBecauseNoAutoNextSmil)\n {\n self.reset();\n return;\n }\n\n if(!paginationData.elementId)\n {\n //self.reset();\n }\n\n if(paginationData.elementId && !element)\n {\n //self.reset();\n return;\n }\n\n if(paginationData.elementId)\n {\n paginationData.elementIdResolved = element;\n }\n \n self.toggleMediaOverlayRefresh(paginationData);\n }\n };\n\n function playPar(par) {\n\n var parSmil = par.getSmil();\n if(!_smilIterator || _smilIterator.smil != parSmil)\n {\n _smilIterator = new SmilIterator(parSmil);\n }\n else {\n _smilIterator.reset();\n }\n\n _smilIterator.goToPar(par);\n\n if(!_smilIterator.currentPar) {\n console.error(\"playPar !_smilIterator.currentPar\");\n return;\n }\n\n playCurrentPar();\n }\n\n var clipBeginOffset = 0.0;\n\n var _blankPagePlayer = undefined;\n\n function initBlankPagePlayer()\n {\n self.resetBlankPage();\n\n _blankPagePlayer = setTimeout(function() {\n\n if (!_blankPagePlayer)\n {\n return;\n }\n\n self.resetBlankPage();\n\n if (!_smilIterator || !_smilIterator.currentPar)\n {\n self.reset();\n return;\n }\n\n audioCurrentTime = 0.0;\n//console.log(\"BLANK END.\");\n //nextSmil(true);\n onAudioPositionChanged(_smilIterator.currentPar.audio.clipEnd + 0.1, 2);\n\n }, 2000);\n\n onStatusChanged({isPlaying: true});\n }\n\n function playCurrentPar() {\n _wasPlayingScrolling = false;\n \n if (!_smilIterator || !_smilIterator.currentPar)\n {\n console.error(\"playCurrentPar !_smilIterator || !_smilIterator.currentPar ???\");\n return;\n }\n\n if (!_smilIterator.smil.id)\n {\n _audioPlayer.reset();\n\n self.resetTTS();\n self.resetEmbedded();\n\n setTimeout(function()\n {\n initBlankPagePlayer();\n }, 100);\n\n return;\n }\n else if (!_smilIterator.currentPar.audio.src)\n {\n clipBeginOffset = 0.0;\n\n// if (_currentTTS)\n// {\n// _skipTTSEnded = true;\n// }\n\n _audioPlayer.reset();\n\n var element = _smilIterator.currentPar.element;\n if (element)\n {\n audioCurrentTime = 0.0;\n\n var name = element.nodeName ? element.nodeName.toLowerCase() : undefined;\n\n if (name === \"audio\" || name === \"video\")\n {\n self.resetTTS();\n self.resetBlankPage();\n\n if (_currentEmbedded)\n {\n self.resetEmbedded();\n }\n\n _currentEmbedded = element;\n\n _currentEmbedded.pause();\n\n // DONE at reader_view.attachMO()\n //$(_currentEmbedded).attr(\"preload\", \"auto\");\n\n _currentEmbedded.currentTime = 0;\n\n _currentEmbedded.play();\n\n $(_currentEmbedded).on(\"ended\", self.onEmbeddedEnd);\n\n _embeddedIsPlaying = true;\n \n // gives the audio player some dispatcher time to raise the onPause event\n setTimeout(function(){\n onStatusChanged({isPlaying: true});\n }, 80);\n\n// $(element).on(\"seeked\", function()\n// {\n// $(element).off(\"seeked\", onSeeked);\n// });\n }\n else\n {\n self.resetEmbedded();\n self.resetBlankPage();\n\n _currentTTS = element.textContent; //.innerText (CSS display sensitive + script + style tags)\n if (!_currentTTS || _currentTTS == \"\")\n {\n _currentTTS = undefined;\n }\n else\n {\n speakStart(_currentTTS);\n }\n }\n }\n \n var cfi = _smilIterator.currentPar.cfi;\n if (cfi)\n {\n audioCurrentTime = 0.0;\n self.resetEmbedded();\n self.resetBlankPage();\n\n _elementHighlighter.reset(); // ensure clean DOM (no CFI span markers)\n \n var doc = cfi.cfiTextParent.ownerDocument;\n\n var startCFI = \"epubcfi(\" + cfi.partialStartCfi + \")\";\n var infoStart = EPUBcfi.getTextTerminusInfoWithPartialCFI(startCFI, doc,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n//console.log(infoStart);\n\n var endCFI = \"epubcfi(\" + cfi.partialEndCfi + \")\";\n var infoEnd = EPUBcfi.getTextTerminusInfoWithPartialCFI(endCFI, doc,\n [\"cfi-marker\", \"mo-cfi-highlight\"],\n [],\n [\"MathJax_Message\"]);\n//console.log(infoEnd);\n\n // TODO: get string range to speak\n _currentTTS = undefined;\n\n if (!_currentTTS || _currentTTS == \"\")\n {\n _currentTTS = undefined;\n }\n else\n {\n speakStart(_currentTTS);\n }\n }\n }\n else\n {\n self.resetTTS();\n self.resetEmbedded();\n self.resetBlankPage();\n\n var dur = _smilIterator.currentPar.audio.clipEnd - _smilIterator.currentPar.audio.clipBegin;\n if (dur <= 0 || clipBeginOffset > dur)\n {\n console.error(\"### MO XXX PAR OFFSET: \" + clipBeginOffset + \" / \" + dur);\n clipBeginOffset = 0.0;\n }\n else\n {\n//console.debug(\"### MO PAR OFFSET: \" + clipBeginOffset);\n }\n\n var audioContentRef = Helpers.ResolveContentRef(_smilIterator.currentPar.audio.src, _smilIterator.smil.href);\n\n var audioSource = _package.resolveRelativeUrlMO(audioContentRef);\n\n var startTime = _smilIterator.currentPar.audio.clipBegin + clipBeginOffset;\n\n//console.debug(\"PLAY START TIME: \" + startTime + \"(\"+_smilIterator.currentPar.audio.clipBegin+\" + \"+clipBeginOffset+\")\");\n\n _audioPlayer.playFile(_smilIterator.currentPar.audio.src, audioSource, startTime); //_smilIterator.currentPar.element ? _smilIterator.currentPar.element : _smilIterator.currentPar.cfi.cfiTextParent\n }\n\n clipBeginOffset = 0.0;\n\n highlightCurrentElement();\n }\n\n function nextSmil(goNext)\n {\n self.pause();\n\n//console.debug(\"current Smil: \" + _smilIterator.smil.href + \" /// \" + _smilIterator.smil.id);\n\n var nextSmil = goNext ? _package.media_overlay.getNextSmil(_smilIterator.smil) : _package.media_overlay.getPreviousSmil(_smilIterator.smil);\n if(nextSmil) {\n\n//console.debug(\"nextSmil: \" + nextSmil.href + \" /// \" + nextSmil.id);\n\n _smilIterator = new SmilIterator(nextSmil);\n if(_smilIterator.currentPar) {\n if (!goNext)\n {\n while (!_smilIterator.isLast())\n {\n _smilIterator.next();\n }\n }\n\n//console.debug(\"openContentUrl (nextSmil): \" + _smilIterator.currentPar.text.src + \" -- \" + _smilIterator.smil.href);\n\n reader.openContentUrl(_smilIterator.currentPar.text.src, _smilIterator.smil.href, self);\n }\n }\n else\n {\n console.log(\"No more SMIL\");\n self.reset();\n }\n }\n\n\n var _skipAudioEnded = false;\n// var _skipTTSEnded = false;\n\n var audioCurrentTime = 0.0;\n\n var DIRECTION_MARK = -999;\n\n// var _letPlay = false;\n\n//from\n//1 = audio player\n//2 = blank page\n//3 = video/audio embbeded\n//4 = TTS\n//5 = audio end\n//6 = user previous/next/escape\n function onAudioPositionChanged(position, from, skipping) { //noLetPlay\n\n audioCurrentTime = position;\n\n// if (_letPlay)\n// {\n// return;\n// }\n\n _skipAudioEnded = false;\n// _skipTTSEnded = false;\n\n if (!_smilIterator || !_smilIterator.currentPar)\n {\n return;\n }\n\n var parFrom = _smilIterator.currentPar;\n \n var audio = _smilIterator.currentPar.audio;\n\n //var TOLERANCE = 0.05;\n if(\n //position >= (audio.clipBegin - TOLERANCE) &&\n position > DIRECTION_MARK &&\n position <= audio.clipEnd) {\n\n//console.debug(\"onAudioPositionChanged: \" + position);\n return;\n }\n\n _skipAudioEnded = true;\n\n//console.debug(\"PLAY NEXT: \" + \"(\" + audio.clipBegin + \" -- \" + audio.clipEnd + \") [\" + from + \"] \" + position);\n//console.debug(_smilIterator.currentPar.text.srcFragmentId);\n\n var isPlaying = _audioPlayer.isPlaying();\n if (isPlaying && from === 6)\n {\n console.debug(\"from userNav _audioPlayer.isPlaying() ???\");\n }\n\n var goNext = position > audio.clipEnd;\n\n var doNotNextSmil = !_autoNextSmil && from !== 6 && goNext;\n\n var spineItemIdRef = (_smilIterator && _smilIterator.smil && _smilIterator.smil.spineItemId) ? _smilIterator.smil.spineItemId : ((_lastPaginationData && _lastPaginationData.spineItem && _lastPaginationData.spineItem.idref) ? _lastPaginationData.spineItem.idref : undefined);\n if (doNotNextSmil && spineItemIdRef && _lastPaginationData && _lastPaginationData.paginationInfo && _lastPaginationData.paginationInfo.openPages && _lastPaginationData.paginationInfo.openPages.length > 1)\n {\n //var iPage = _lastPaginationData.paginationInfo.isRightToLeft ? _lastPaginationData.paginationInfo.openPages.length - 1 : 0;\n var iPage = 0;\n \n var openPage = _lastPaginationData.paginationInfo.openPages[iPage];\n if (spineItemIdRef === openPage.idref)\n {\n doNotNextSmil = false;\n }\n }\n \n if (goNext)\n {\n _smilIterator.next();\n }\n else //position <= DIRECTION_MARK\n {\n _smilIterator.previous();\n }\n\n if(!_smilIterator.currentPar)\n {\n //\n // if (!noLetPlay)\n // {\n // _letPlay = true;\n // setTimeout(function()\n // {\n // _letPlay = false;\n // nextSmil(goNext);\n // }, 200);\n // }\n // else\n // {\n // nextSmil(goNext);\n // }\n\n//console.debug(\"NEXT SMIL ON AUDIO POS\");\n \n if (doNotNextSmil)\n {\n _wasPausedBecauseNoAutoNextSmil = true;\n self.reset();\n //self.pause();\n }\n else\n {\n nextSmil(goNext);\n }\n return;\n }\n\n//console.debug(\"ITER: \" + _smilIterator.currentPar.text.srcFragmentId);\n\n if(!_smilIterator.currentPar.audio) {\n self.pause();\n return;\n }\n \n if(_settings.mediaOverlaysSkipSkippables)\n {\n var skip = false;\n var parent = _smilIterator.currentPar;\n while (parent)\n {\n if (parent.isSkippable && parent.isSkippable(_settings.mediaOverlaysSkippables))\n {\n skip = true;\n break;\n }\n parent = parent.parent;\n }\n\n if (skip)\n {\n console.log(\"MO SKIP: \" + parent.epubtype);\n\n self.pause();\n\n var pos = goNext ? _smilIterator.currentPar.audio.clipEnd + 0.1 : DIRECTION_MARK - 1;\n\n onAudioPositionChanged(pos, from, true); //noLetPlay\n return;\n }\n }\n\n // _settings.mediaOverlaysSynchronizationGranularity\n if (!isPlaying && (_smilIterator.currentPar.element || _smilIterator.currentPar.cfi && _smilIterator.currentPar.cfi.cfiTextParent))\n {\n var scopeTo = _elementHighlighter.adjustParToSeqSyncGranularity(_smilIterator.currentPar);\n if (scopeTo && scopeTo !== _smilIterator.currentPar)\n {\n var scopeFrom = _elementHighlighter.adjustParToSeqSyncGranularity(parFrom);\n if (scopeFrom && (scopeFrom === scopeTo || !goNext))\n {\n if (scopeFrom === scopeTo)\n {\n do\n {\n if (goNext) _smilIterator.next();\n else _smilIterator.previous();\n } while (_smilIterator.currentPar && _smilIterator.currentPar.hasAncestor(scopeFrom));\n\n if (!_smilIterator.currentPar)\n {\n //console.debug(\"adjustParToSeqSyncGranularity nextSmil(goNext)\");\n\n if (doNotNextSmil)\n {\n _wasPausedBecauseNoAutoNextSmil = true;\n self.reset();\n //self.pause();\n }\n else\n {\n nextSmil(goNext);\n }\n \n return;\n }\n }\n \n//console.debug(\"ADJUSTED: \" + _smilIterator.currentPar.text.srcFragmentId);\n if (!goNext)\n {\n var landed = _elementHighlighter.adjustParToSeqSyncGranularity(_smilIterator.currentPar);\n if (landed && landed !== _smilIterator.currentPar)\n {\n var backup = _smilIterator.currentPar;\n \n var innerPar = undefined;\n do\n {\n innerPar = _smilIterator.currentPar;\n _smilIterator.previous();\n }\n while (_smilIterator.currentPar && _smilIterator.currentPar.hasAncestor(landed));\n \n if (_smilIterator.currentPar)\n {\n _smilIterator.next();\n \n if (!_smilIterator.currentPar.hasAncestor(landed))\n {\n console.error(\"adjustParToSeqSyncGranularity !_smilIterator.currentPar.hasAncestor(landed) ???\");\n }\n //assert \n }\n else\n {\n//console.debug(\"adjustParToSeqSyncGranularity reached begin\");\n\n _smilIterator.reset();\n \n if (_smilIterator.currentPar !== innerPar)\n {\n console.error(\"adjustParToSeqSyncGranularity _smilIterator.currentPar !=== innerPar???\");\n }\n }\n\n if (!_smilIterator.currentPar)\n {\n console.error(\"adjustParToSeqSyncGranularity !_smilIterator.currentPar ?????\");\n _smilIterator.goToPar(backup);\n }\n \n//console.debug(\"ADJUSTED PREV: \" + _smilIterator.currentPar.text.srcFragmentId);\n }\n }\n }\n }\n }\n \n if(_audioPlayer.isPlaying()\n && _smilIterator.currentPar.audio.src\n && _smilIterator.currentPar.audio.src == _audioPlayer.currentSmilSrc()\n && position >= _smilIterator.currentPar.audio.clipBegin\n && position <= _smilIterator.currentPar.audio.clipEnd)\n {\n//console.debug(\"ONLY highlightCurrentElement\");\n highlightCurrentElement();\n return;\n }\n\n //position <= DIRECTION_MARK goes here (goto previous):\n\n// if (!noLetPlay && position > DIRECTION_MARK\n// && _audioPlayer.isPlaying() && _audioPlayer.srcRef() != _smilIterator.currentPar.audio.src)\n// {\n// _letPlay = true;\n// setTimeout(function()\n// {\n// _letPlay = false;\n// playCurrentPar();\n// }, 100);\n//\n// playCurrentPar();\n//\n// return;\n// }\n\n playCurrentPar();\n }\n\n this.touchInit = function()\n {\n return _audioPlayer.touchInit();\n };\n\n var tokeniseTTS = function(element)\n {\n var BLOCK_DELIMITERS = ['p', 'div', 'pagenum', 'td', 'table', 'li', 'ul', 'ol'];\n var BOUNDARY_PUNCTUATION = [',', ';', '.', '-', '??', '??', '?', '!'];\n var IGNORABLE_PUNCTUATION = ['\"', '\\'', '??', '??', '??', '??'];\n\n var flush = function(t, r)\n {\n if (t.word.length <= 0)\n {\n return;\n }\n\n var pos = t.text.length;\n r.spanMap[pos] = t.counter;\n t.text += t.word;\n t.markup += t.html.substring(0, t.wordStart) +\n '' +\n t.html.substring(t.wordStart, t.wordEnd) +\n '' + t.html.substring(t.wordEnd, t.html.length);\n t.word = \"\";\n t.html = \"\";\n t.wordStart = -1;\n t.wordEnd = -1;\n t.counter++;\n };\n\n var r =\n {\n element : element,\n innerHTML_tts : \"\",\n spanMap : {},\n text : \"\",\n lastCharIndex : undefined\n };\n r.element.innerHTML_original = element.innerHTML;\n\n var t =\n {\n inTag : false,\n counter : 0,\n wordStart : -1,\n wordEnd : -1,\n text : '',\n markup : '',\n word : '',\n html : ''\n };\n\n var limit = r.element.innerHTML_original.length;\n var i = 0;\n while (i <= limit)\n {\n if (t.inTag)\n {\n t.html += r.element.innerHTML_original[i];\n if (r.element.innerHTML_original[i] == \">\") {\n t.inTag = false;\n // if it's a block element delimiter, flush\n var blockCheck = t.html.match(/<\\/(.*?)>$/);\n if (blockCheck && BLOCK_DELIMITERS.indexOf(blockCheck[1]) > -1)\n {\n flush(t, r);\n t.text += ' ';\n }\n }\n }\n else\n {\n if (i == limit || r.element.innerHTML_original[i].match(/\\s/))\n {\n flush(t, r);\n\n // append the captured whitespace\n if (i < limit)\n {\n t.text += r.element.innerHTML_original[i];\n t.markup += r.element.innerHTML_original[i];\n }\n }\n else if (BOUNDARY_PUNCTUATION.indexOf(r.element.innerHTML_original[i]) > -1)\n {\n flush(t, r);\n\n t.wordStart = t.html.length;\n t.wordEnd = t.html.length + 1;\n t.word += r.element.innerHTML_original[i];\n t.html += r.element.innerHTML_original[i];\n\n flush(t, r);\n }\n else if (r.element.innerHTML_original[i] == \"<\")\n {\n t.inTag = true;\n t.html += r.element.innerHTML_original[i];\n }\n else\n {\n if (t.word.length == 0)\n {\n t.wordStart = t.html.length;\n }\n t.wordEnd = t.html.length + 1;\n t.word += r.element.innerHTML_original[i];\n t.html += r.element.innerHTML_original[i];\n }\n }\n i++;\n }\n//\n//console.debug(t.text);\n// console.debug(\"----\");\n//console.debug(t.markup);\n\n r.text = t.text;\n r.innerHTML_tts = t.markup;\n r.element.innerHTML = r.innerHTML_tts;\n\n return r;\n };\n\n var $ttsStyle = undefined;\n function ensureTTSStyle($element)\n {\n if ($ttsStyle && $ttsStyle[0].ownerDocument === $element[0].ownerDocument)\n {\n return;\n }\n\n var style = \".tts_on{background-color:red;color:white;} .tts_off{}\";\n\n $head = $(\"head\", $element[0].ownerDocument.documentElement);\n\n $ttsStyle = $(\"\").appendTo($head);\n\n $ttsStyle.append(style);\n }\n\n var speakStart = function(txt, volume)\n {\n var tokenData = undefined;\n var curPar = (_smilIterator && _smilIterator.currentPar) ? _smilIterator.currentPar : undefined;\n var element = curPar ? curPar.element : undefined;\n var cfi = curPar ? curPar.cfi : undefined;\n\n if (!volume || volume > 0)\n {\n // gives the audio player some dispatcher time to raise the onPause event\n setTimeout(function(){\n onStatusChanged({isPlaying: true});\n }, 80);\n \n _ttsIsPlaying = true;\n\n if (TOKENIZE_TTS && element)\n {\n var $el = $(element);\n ensureTTSStyle($el);\n\n\n if (element.innerHTML_original)\n {\n element.innerHTML = element.innerHTML_original;\n element.innerHTML_original = undefined;\n }\n tokenData = tokeniseTTS(element);\n }\n }\n\n if (!_enableHTMLSpeech)\n {\n Globals.logEvent(\"MEDIA_OVERLAY_TTS_SPEAK\", \"EMIT\", \"media_overlay_player.js\");\n reader.emit(Globals.Events.MEDIA_OVERLAY_TTS_SPEAK, {tts: txt}); // resume if txt == undefined\n return;\n }\n\n if (!txt && window.speechSynthesis.paused)\n {\n//console.debug(\"TTS resume\");\n window.speechSynthesis.resume();\n\n return;\n }\n\n var text = txt || _currentTTS;\n\n if (text)\n {\n if (_SpeechSynthesisUtterance)\n {\n//console.debug(\"_SpeechSynthesisUtterance nullify\");\n\n if (TOKENIZE_TTS)\n {\n if (_SpeechSynthesisUtterance.onend)\n {\n _SpeechSynthesisUtterance.onend({forceSkipEnd: true, target: _SpeechSynthesisUtterance});\n }\n \n _SpeechSynthesisUtterance.tokenData = undefined;\n \n _SpeechSynthesisUtterance.onboundary = undefined;\n // _SpeechSynthesisUtterance.onboundary = function(event)\n // {\n // console.debug(\"OLD TTS boundary\");\n // \n // event.target.tokenData = undefined;\n // \n // };\n }\n\n _SpeechSynthesisUtterance.onend = undefined;\n// _SpeechSynthesisUtterance.onend = function(event)\n// {\n// console.debug(\"OLD TTS ended\");\n// if (TOKENIZE_TTS)\n// {\n// event.target.tokenData = undefined;\n// }\n// };\n \n _SpeechSynthesisUtterance.onerror = undefined;\n// _SpeechSynthesisUtterance.onerror = function(event)\n// {\n// console.debug(\"OLD TTS error\");\n// //console.debug(event);\n// if (TOKENIZE_TTS)\n// {\n// event.target.tokenData = undefined;\n// }\n// };\n\n _SpeechSynthesisUtterance = undefined;\n }\n//\n// if (window.speechSynthesis.pending ||\n// window.speechSynthesis.speaking)\n// {\n// _skipTTSEndEvent = true;\n// }\n \nconsole.debug(\"paused: \"+window.speechSynthesis.paused);\nconsole.debug(\"speaking: \"+window.speechSynthesis.speaking);\nconsole.debug(\"pending: \"+window.speechSynthesis.pending);\n\n// if (!window.speechSynthesis.paused)\n// {\n// console.debug(\"TTS pause before speak\");\n// window.speechSynthesis.pause();\n// }\n \n function cancelTTS(first)\n {\n if (first || window.speechSynthesis.pending)\n {\n console.debug(\"TTS cancel before speak\");\n window.speechSynthesis.cancel();\n\n setTimeout(function()\n {\n cancelTTS(false);\n }, 5);\n }\n else\n {\n updateTTS();\n }\n }\n cancelTTS(true);\n \n function updateTTS()\n {\n // setTimeout(function()\n // {\n\n _SpeechSynthesisUtterance = new SpeechSynthesisUtterance();\n\n if (TOKENIZE_TTS && tokenData)\n {\n _SpeechSynthesisUtterance.tokenData = tokenData;\n \n _SpeechSynthesisUtterance.onboundary = function(event)\n //_SpeechSynthesisUtterance.addEventListener(\"boundary\", function(event)\n {\n if (!_SpeechSynthesisUtterance)\n {\n return;\n }\n\n console.debug(\"TTS boundary: \" + event.name + \" / \" + event.charIndex);\n //console.debug(event);\n\n var tokenised = event.target.tokenData;\n if (!tokenised || !tokenised.spanMap.hasOwnProperty(event.charIndex))\n {\n return;\n }\n\n if (false && tokenised.lastCharIndex)\n {\n //console.debug(\"TTS lastCharIndex: \" + tokenised.lastCharIndex);\n var id = 'tts_' + tokenised.spanMap[tokenised.lastCharIndex];\n //console.debug(\"TTS lastCharIndex ID: \" + id);\n var spanPrevious = tokenised.element.querySelector(\"#\"+id);\n if (spanPrevious)\n {\n //console.debug(\"TTS OFF\");\n spanPrevious.className = 'tts_off';\n //spanPrevious.style.backgroundColor = \"white\";\n }\n }\n else\n {\n [].forEach.call(\n tokenised.element.querySelectorAll(\".tts_on\"),\n function(el)\n {\n console.debug(\"TTS OFF \" + el.id);\n el.className = 'tts_off';\n }\n );\n }\n\n var id = 'tts_' + tokenised.spanMap[event.charIndex];\n console.debug(\"TTS charIndex ID: \" + id);\n var spanNew = tokenised.element.querySelector(\"#\"+id);\n if (spanNew)\n {\n console.debug(\"TTS ON\");\n spanNew.className = 'tts_on';\n //spanNew.style.backgroundColor = \"transparent\";\n }\n\n tokenised.lastCharIndex = event.charIndex;\n };\n }\n\n _SpeechSynthesisUtterance.onend = function(event)\n //_SpeechSynthesisUtterance.addEventListener(\"end\", function(event)\n {\n if (!_SpeechSynthesisUtterance)\n {\n //_skipTTSEndEvent = false;\n return;\n }\n //\n // if (_skipTTSEndEvent)\n // {\n // _skipTTSEndEvent = false;\n // return;\n // }\n\nconsole.debug(\"TTS ended\");\n //console.debug(event);\n\n if (TOKENIZE_TTS)\n {\n var tokenised = event.target.tokenData;\n\n var doEnd = !event.forceSkipEnd && (_SpeechSynthesisUtterance === event.target) && (!tokenised || tokenised.element.innerHTML_original);\n\n if (tokenised)\n {\n if (tokenised.element.innerHTML_original)\n {\n tokenised.element.innerHTML = tokenised.element.innerHTML_original;\n }\n else\n {\n [].forEach.call(\n tokenised.element.querySelectorAll(\".tts_on\"),\n function(el)\n {\n console.debug(\"TTS OFF (end)\" + el.id);\n el.className = 'tts_off';\n }\n );\n }\n\n tokenised.element.innerHTML_original = undefined;\n }\n\n\n if (doEnd)\n {\n self.onTTSEnd();\n }\n else\n {\n console.debug(\"TTS end SKIPPED\");\n }\n }\n else\n {\n self.onTTSEnd();\n }\n };\n\n _SpeechSynthesisUtterance.onerror = function(event)\n //_SpeechSynthesisUtterance.addEventListener(\"error\", function(event)\n {\n if (!_SpeechSynthesisUtterance)\n {\n return;\n }\n\nconsole.error(\"TTS error\");\n//console.debug(event);\nconsole.debug(_SpeechSynthesisUtterance.text);\nconsole.debug(window.speechSynthesis.paused);\nconsole.debug(window.speechSynthesis.pending);\nconsole.debug(window.speechSynthesis.speaking);\n\n if (TOKENIZE_TTS)\n {\n var tokenised = event.target.tokenData;\n if (tokenised)\n {\n if (tokenised.element.innerHTML_original)\n {\n tokenised.element.innerHTML = tokenised.element.innerHTML_original;\n }\n else\n {\n [].forEach.call(\n tokenised.element.ownerDocument.querySelectorAll(\".tts_on\"),\n function(el)\n {\n console.debug(\"TTS OFF (error)\" + el.id);\n el.className = 'tts_off';\n }\n );\n }\n tokenised.element.innerHTML_original = undefined;\n }\n }\n };\n\n var vol = volume || _audioPlayer.getVolume();\n _SpeechSynthesisUtterance.volume = vol;\n\n _SpeechSynthesisUtterance.rate = _audioPlayer.getRate();\n _SpeechSynthesisUtterance.pitch = 1;\n\n //_SpeechSynthesisUtterance.lang = \"en-US\";\n\n _SpeechSynthesisUtterance.text = text;\n\n //console.debug(\"TTS speak: \" + text);\n window.speechSynthesis.speak(_SpeechSynthesisUtterance);\n\n if (window.speechSynthesis.paused)\n {\nconsole.debug(\"TTS resume\");\n window.speechSynthesis.resume();\n }\n\n //}, 5);\n }\n }\n };\n\n var speakStop = function()\n {\n var wasPlaying = _ttsIsPlaying;\n\n if (wasPlaying) {\n onStatusChanged({isPlaying: false});\n }\n \n _ttsIsPlaying = false;\n\n if (!_enableHTMLSpeech)\n {\n if (wasPlaying) {\n Globals.logEvent(\"MEDIA_OVERLAY_TTS_STOP\", \"EMIT\", \"media_overlay_player.js\");\n reader.emit(Globals.Events.MEDIA_OVERLAY_TTS_STOP, undefined);\n }\n return;\n }\n\n//console.debug(\"TTS pause\");\n window.speechSynthesis.pause();\n };\n\n var _timerTick = undefined;\n\n function onPlay() {\n onPause();\n\n var func = function() {\n\n if (!_smilIterator || !_smilIterator.currentPar)\n {\n return;\n }\n\n var smil = _smilIterator.smil; //currentPar.getSmil();\n if (!smil.mo)\n {\n return;\n }\n\n// if (!_smilIterator.currentPar.audio.src)\n// {\n// return;\n// }\n\n var playPosition = audioCurrentTime - _smilIterator.currentPar.audio.clipBegin;\n if (playPosition <= 0)\n {\n return;\n }\n\n var smilIndex = smil.mo.smil_models.indexOf(smil);\n\n var smilIterator = new SmilIterator(smil);\n var parIndex = -1;\n while (smilIterator.currentPar)\n {\n parIndex++;\n if (smilIterator.currentPar == _smilIterator.currentPar)\n {\n break;\n }\n smilIterator.next();\n }\n\n onStatusChanged({playPosition: playPosition, smilIndex: smilIndex, parIndex: parIndex});\n };\n\n setTimeout(func, 500);\n\n _timerTick = setInterval(func, 1500);\n }\n\n function onPause() {\n\n audioCurrentTime = 0.0;\n if (_timerTick !== undefined)\n {\n clearInterval(_timerTick);\n }\n _timerTick = undefined;\n }\n\n\n this.onEmbeddedEnd = function()\n {\n audioCurrentTime = 0.0;\n\n _embeddedIsPlaying = false;\n //_currentEmbedded = undefined;\n\n if (!_smilIterator || !_smilIterator.currentPar)\n {\n self.reset();\n return;\n }\n\n onAudioPositionChanged(_smilIterator.currentPar.audio.clipEnd + 0.1, 3);\n };\n\n this.onTTSEnd = function()\n {\n audioCurrentTime = 0.0;\n\n _ttsIsPlaying = false;\n //_currentTTS = undefined;\n\n// if(_skipTTSEnded)\n// {\n// _skipTTSEnded = false;\n// return;\n// }\n\n if (!_smilIterator || !_smilIterator.currentPar)\n {\n self.reset();\n return;\n }\n\n onAudioPositionChanged(_smilIterator.currentPar.audio.clipEnd + 0.1, 4);\n };\n\n function onAudioEnded() {\n\n onPause();\n//\n// if (_letPlay)\n// {\n// return;\n// }\n\n if(_skipAudioEnded)\n {\n _skipAudioEnded = false;\n return;\n }\n\n if (!_smilIterator || !_smilIterator.currentPar)\n {\n self.reset();\n return;\n }\n\n onAudioPositionChanged(_smilIterator.currentPar.audio.clipEnd + 0.1, 5);\n }\n\n function highlightCurrentElement() {\n\n if(!_smilIterator) {\n return;\n }\n\n if(!_smilIterator.currentPar) {\n return;\n }\n\n if (_smilIterator.currentPar.text.srcFragmentId && _smilIterator.currentPar.text.srcFragmentId.length > 0)\n {\n if (_smilIterator.currentPar.element) {\n //console.error(_smilIterator.currentPar.element.id + \": \" + _smilIterator.currentPar.audio.clipBegin + \" / \" + _smilIterator.currentPar.audio.clipEnd);\n\n if (!_elementHighlighter.isElementHighlighted(_smilIterator.currentPar))\n {\n _elementHighlighter.highlightElement(_smilIterator.currentPar, _package.media_overlay.activeClass, _package.media_overlay.playbackActiveClass);\n\n if (!_wasPlayingScrolling)\n {\n reader.insureElementVisibility(_smilIterator.currentPar.getSmil().spineItemId, _smilIterator.currentPar.element, self);\n }\n }\n \n return;\n \n } else if (_smilIterator.currentPar.cfi) {\n\n if (!_elementHighlighter.isCfiHighlighted(_smilIterator.currentPar))\n {\n _elementHighlighter.highlightCfi(_smilIterator.currentPar, _package.media_overlay.activeClass, _package.media_overlay.playbackActiveClass);\n\n if (!_wasPlayingScrolling)\n {\n reader.insureElementVisibility(_smilIterator.currentPar.getSmil().spineItemId, _smilIterator.currentPar.cfi.cfiTextParent, self);\n }\n }\n \n return;\n }\n }\n \n // body (not FRAG ID)\n if (_smilIterator.currentPar.element) {\n return;\n }\n \n //else: single SMIL per multiple XHTML? ==> open new spine item\n \n /*\n var textRelativeRef = Globals.Helpers.ResolveContentRef(_smilIterator.currentPar.text.srcFile, _smilIterator.smil.href);\nconsole.debug(\"textRelativeRef: \" + textRelativeRef);\n if (textRelativeRef)\n {\n var textAbsoluteRef = _package.resolveRelativeUrl(textRelativeRef);\nconsole.debug(\"textAbsoluteRef: \" + textAbsoluteRef);\n }\n */\n\n var src = _smilIterator.currentPar.text.src;\n var base = _smilIterator.smil.href;\n\n //self.pause();\n //self.reset();\n _smilIterator = undefined;\n\n reader.openContentUrl(src, base, self);\n }\n\n this.escape = function() {\n \n if(!_smilIterator || !_smilIterator.currentPar) {\n\n this.toggleMediaOverlay();\n return;\n }\n\n if(!self.isPlaying())\n {\n //playCurrentPar();\n self.play();\n return;\n }\n\n if(_settings.mediaOverlaysEscapeEscapables)\n {\n var parent = _smilIterator.currentPar;\n while (parent)\n {\n if (parent.isEscapable && parent.isEscapable(_settings.mediaOverlaysEscapables))\n {\n do\n {\n _smilIterator.next();\n } while (_smilIterator.currentPar && _smilIterator.currentPar.hasAncestor(parent));\n\n if (!_smilIterator.currentPar)\n {\n nextSmil(true);\n return;\n }\n\n //_smilIterator.goToPar(_smilIterator.currentPar);\n playCurrentPar();\n return;\n }\n\n parent = parent.parent;\n }\n }\n\n this.nextMediaOverlay(true);\n };\n\n\n this.playUserPar = function(par) {\n if(self.isPlaying())\n {\n self.pause();\n }\n\n if (par.element || par.cfi && par.cfi.cfiTextParent)\n {\n var seq = _elementHighlighter.adjustParToSeqSyncGranularity(par);\n if (seq && seq !== par)\n {\n var findFirstPar = function(smilNode)\n {\n if (smilNode.nodeType && smilNode.nodeType === \"par\") return smilNode;\n \n if (!smilNode.children || smilNode.children.length <= 0) return undefined;\n \n for (var i = 0; i < smilNode.children.length; i++)\n {\n var child = smilNode.children[i];\n var inPar = findFirstPar(child);\n if (inPar) return inPar;\n }\n };\n var firstPar = findFirstPar(seq);\n if (firstPar) par = firstPar;\n }\n }\n\n playPar(par);\n };\n\n this.resetTTS = function() {\n _currentTTS = undefined;\n// _skipTTSEnded = false;\n speakStop();\n };\n\n this.resetBlankPage = function() {\n var wasPlaying = false;\n \n if (_blankPagePlayer)\n {\n wasPlaying = true;\n \n var timer = _blankPagePlayer;\n _blankPagePlayer = undefined;\n clearTimeout(timer);\n }\n _blankPagePlayer = undefined;\n\n if (wasPlaying) {\n onStatusChanged({isPlaying: false});\n }\n };\n\n this.resetEmbedded = function() {\n var wasPlaying = _embeddedIsPlaying;\n \n if (_currentEmbedded)\n {\n $(_currentEmbedded).off(\"ended\", self.onEmbeddedEnd);\n _currentEmbedded.pause();\n }\n _currentEmbedded = undefined;\n \n if (wasPlaying) {\n onStatusChanged({isPlaying: false});\n }\n _embeddedIsPlaying = false;\n };\n\n this.reset = function() {\n clipBeginOffset = 0.0;\n _audioPlayer.reset();\n self.resetTTS();\n self.resetEmbedded();\n self.resetBlankPage();\n _elementHighlighter.reset();\n _smilIterator = undefined;\n _skipAudioEnded = false;\n };\n\n this.play = function ()\n {\n if (_smilIterator && _smilIterator.smil && !_smilIterator.smil.id)\n {\n initBlankPagePlayer();\n return;\n }\n else if (_currentEmbedded)\n {\n _embeddedIsPlaying = true;\n _currentEmbedded.play();\n onStatusChanged({isPlaying: true});\n }\n else if (_currentTTS)\n {\n speakStart(undefined);\n }\n else\n {\n if (!_audioPlayer.play())\n {\n console.log(\"Audio player was dead, reactivating...\");\n\n this.reset();\n this.toggleMediaOverlay();\n return;\n }\n }\n\n highlightCurrentElement();\n }\n\n this.pause = function()\n {\n _wasPlayingScrolling = false;\n \n if (_blankPagePlayer)\n {\n this.resetBlankPage();\n }\n else if (_embeddedIsPlaying)\n {\n _embeddedIsPlaying = false;\n if (_currentEmbedded)\n {\n _currentEmbedded.pause();\n }\n onStatusChanged({isPlaying: false});\n }\n else if (_ttsIsPlaying)\n {\n speakStop();\n }\n else\n {\n _audioPlayer.pause();\n }\n\n _elementHighlighter.reset();\n }\n\n this.isMediaOverlayAvailable = function() {\n\n// console.debug(\"isMediaOverlayAvailable()\");\n//\n// var now1 = window.performance && window.performance.now ? window.performance.now() : Date.now();\n//\n// if (console.time)\n// {\n// console.time(\"MO\");\n// }\n\n var visibleMediaElement = reader.getFirstVisibleMediaOverlayElement();\n\n// if (console.timeEnd)\n// {\n// console.timeEnd(\"MO\");\n// }\n//\n// var now2 = window.performance && window.performance.now ? window.performance.now() : Date.now();\n//\n// console.debug(now2 - now1);\n\n return typeof visibleMediaElement !== \"undefined\";\n };\n\n this.nextOrPreviousMediaOverlay = function(previous) {\n if(self.isPlaying())\n {\n self.pause();\n }\n else\n {\n if (_smilIterator && _smilIterator.currentPar)\n {\n //playCurrentPar();\n self.play();\n return;\n }\n }\n\n if(!_smilIterator)\n {\n this.toggleMediaOverlay();\n return;\n }\n\n var position = previous ? DIRECTION_MARK - 1 : _smilIterator.currentPar.audio.clipEnd + 0.1;\n\n onAudioPositionChanged(position, 6);\n // setTimeout(function(){\n // \n // }, 1);\n\n //self.play();\n //playCurrentPar();\n };\n\n this.nextMediaOverlay = function() {\n this.nextOrPreviousMediaOverlay(false);\n };\n\n this.previousMediaOverlay = function() {\n this.nextOrPreviousMediaOverlay(true);\n };\n\n /*\n this.setMediaOverlaySkippables = function(items) {\n\n };\n\n this.setMediaOverlayEscapables = function(items) {\n\n };\n */\n\n this.mediaOverlaysOpenContentUrl = function(contentRefUrl, sourceFileHref, offset)\n {\n clipBeginOffset = offset;\n\n //self.pause();\n //self.reset();\n _smilIterator = undefined;\n\n reader.openContentUrl(contentRefUrl, sourceFileHref, self);\n\n /*\n if (_currentPagination && _currentPagination.isFixedLayout && _currentPagination.openPages && _currentPagination.openPages.length > 0)\n {\n var combinedPath = Globals.Helpers.ResolveContentRef(contentRefUrl, sourceFileHref);\n\n var hashIndex = combinedPath.indexOf(\"#\");\n var hrefPart;\n var elementId;\n if(hashIndex >= 0) {\n hrefPart = combinedPath.substr(0, hashIndex);\n elementId = combinedPath.substr(hashIndex + 1);\n }\n else {\n hrefPart = combinedPath;\n elementId = undefined;\n }\n\n var spineItem = reader.spine.getItemByHref(hrefPart);\n var spineItemIndex = _currentPagination.openPages[0].spineItemIndex;\n\n //var idref = _currentPagination.openPages[0].idref;\n //spineItem.idref === idref\n //var currentSpineItem = reader.spine.getItemById(idref);\n //currentSpineItem == spineItem\n if (spineItem.index === spineItemIndex)\n {\n self.onPageChanged({\n paginationInfo: _currentPagination,\n elementId: elementId,\n initiator: self\n });\n }\n }\n */\n };\n\n this.toggleMediaOverlay = function() {\n if(self.isPlaying()) {\n self.pause();\n return;\n }\n\n //if we have position to continue from (reset wasn't called)\n if(_smilIterator) {\n self.play();\n return;\n }\n\n this.toggleMediaOverlayRefresh(undefined);\n };\n\n var _wasPlayingScrolling = false;\n\n this.toggleMediaOverlayRefresh = function(paginationData)\n {\n//console.debug(\"moData SMIL: \" + moData.par.getSmil().href + \" // \" + + moData.par.getSmil().id);\n\n var spineItems = reader.getLoadedSpineItems();\n\n //paginationData.isRightToLeft\n var rtl = reader.spine().isRightToLeft();\n\n //paginationData.spineItemCount\n //paginationData.openPages\n //{spineItemPageIndex: , spineItemPageCount: , idref: , spineItemIndex: }\n\n var playingPar = undefined;\n var wasPlaying = self.isPlaying();\n if(wasPlaying && _smilIterator)\n {\n var isScrollView = paginationData.initiator && paginationData.initiator instanceof ScrollView;\n if (isScrollView && _settings.mediaOverlaysPreservePlaybackWhenScroll)\n {\n _wasPlayingScrolling = true;\n return;\n }\n \n playingPar = _smilIterator.currentPar;\n self.pause();\n }\n \n _wasPlayingScrolling = false;\n\n //paginationData && paginationData.elementId\n //paginationData.initiator != self\n\n //_package.isFixedLayout()\n\n var element = (paginationData && paginationData.elementIdResolved) ? paginationData.elementIdResolved : undefined;\n\n var id = (paginationData && paginationData.elementId) ? paginationData.elementId : undefined;\n\n if (!element)\n {\n if (id)\n {\n console.error(\"[WARN] id did not resolve to element?\");\n }\n \n for(var i = (rtl ? (spineItems.length - 1) : 0); (rtl && i >=0) || (!rtl && i < spineItems.length); i += (rtl ? -1: 1))\n {\n var spineItem = spineItems[i];\n if (!spineItem)\n {\n console.error(\"spineItems[i] is undefined??\");\n continue;\n }\n \n if (paginationData && paginationData.spineItem && paginationData.spineItem != spineItem)\n {\n continue;\n }\n\n if (id)\n {\n var $element = reader.getElementById(spineItem.idref, id);\n //var $element = reader.getElement(spineItem.idref, \"#\" + ReadiumSDK.Helpers.escapeJQuerySelector(id));\n element = ($element && $element.length > 0) ? $element[0] : undefined;\n }\n else if (spineItem.isFixedLayout())\n {\n if (paginationData && paginationData.paginationInfo && paginationData.paginationInfo.openPages)\n {\n // openPages are sorted by spineItem index, so the smallest index on display is the one we need to play (page on the left in LTR, or page on the right in RTL progression)\n var index = 0; // !paginationData.paginationInfo.isRightToLeft ? 0 : paginationData.paginationInfo.openPages.length - 1;\n \n if (paginationData.paginationInfo.openPages[index] && paginationData.paginationInfo.openPages[index].idref && paginationData.paginationInfo.openPages[index].idref === spineItem.idref)\n {\n var $element = reader.getElement(spineItem.idref, \"body\");\n element = ($element && $element.length > 0) ? $element[0] : undefined;\n }\n }\n }\n\n if (element)\n {\n break;\n }\n }\n }\n\n if (!element)\n {\n element = reader.getFirstVisibleMediaOverlayElement();\n }\n\n if (!element)\n {\n self.reset();\n return;\n }\n\n var moData = $(element).data(\"mediaOverlayData\");\n\n if (!moData)\n {\n var foundMe = false;\n var depthFirstTraversal = function(elements)\n {\n if (!elements)\n {\n return false;\n }\n\n for (var i = 0; i < elements.length; i++)\n {\n if (element === elements[i]) foundMe = true;\n \n if (foundMe)\n {\n var d = $(elements[i]).data(\"mediaOverlayData\");\n if (d)\n {\n moData = d;\n return true;\n }\n }\n\n var found = depthFirstTraversal(elements[i].children);\n if (found)\n {\n return true;\n }\n }\n\n return false;\n }\n\n var root = element;\n while (root && root.nodeName.toLowerCase() !== \"body\")\n {\n root = root.parentNode;\n }\n\n if (!root)\n {\n self.reset();\n return;\n }\n\n depthFirstTraversal([root]);\n }\n\n if (!moData)\n {\n self.reset();\n return;\n }\n\n var zPar = moData.par ? moData.par : moData.pars[0];\n var parSmil = zPar.getSmil();\n if(!_smilIterator || _smilIterator.smil != parSmil)\n {\n _smilIterator = new SmilIterator(parSmil);\n }\n else\n {\n _smilIterator.reset();\n }\n \n _smilIterator.goToPar(zPar);\n \n if (!_smilIterator.currentPar && id)\n {\n _smilIterator.reset();\n _smilIterator.findTextId(id);\n }\n \n if (!_smilIterator.currentPar)\n {\n self.reset();\n return;\n }\n\n if (wasPlaying && playingPar && playingPar === _smilIterator.currentPar)\n {\n self.play();\n }\n else\n {\n playCurrentPar();\n //playPar(zPar);\n }\n };\n\n this.isPlayingCfi = function()\n {\n return _smilIterator && _smilIterator.currentPar && _smilIterator.currentPar.cfi;\n };\n \n var _wasPausedBecauseNoAutoNextSmil = false;\n var _autoNextSmil = true;\n this.setAutomaticNextSmil = function(autoNext)\n {\n _autoNextSmil = autoNext;\n };\n};\n return MediaOverlayPlayer;\n});\n\n","// Created by Boris Schneiderman.\n// Copyright (c) 2016 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/spine',[\"./spine_item\", \"../helpers\", \"URIjs\"], function(SpineItem, Helpers, URI) {\n/**\n * Wrapper of the Spine object received from the host application\n *\n * @class Models.Spine\n * @constructor\n * @param {Models.Package} epubPackage Parent package properties \n * @param {Object} spineDTO Spine data object, container for spine properties\n */\nvar Spine = function(epubPackage, spineDTO) {\n\n var self = this;\n\n /**\n * The collection of spine items\n *\n * @property items\n * @type Array\n */\n this.items = [];\n\n /**\n * The page progression direction ltr|rtl|default\n *\n * @property direction\n * @type String\n * @default \"ltr\"\n */\n this.direction = \"ltr\";\n\n /**\n * The container for parent package properties\n *\n * @property package \n * @type Models.Package\n *\n */\n this.package = epubPackage;\n\n var _handleLinear = false;\n\n /**\n * Sets a flag indicating that the app handles linear spine items\n *\n * @method handleLinear\n * @param {Boolean} handleLinear boolean flag\n */\n this.handleLinear = function(handleLinear) {\n _handleLinear = handleLinear;\n };\n\n function isValidLinearItem(item) {\n return !_handleLinear || item.linear !== \"no\";\n }\n\n /**\n * Checks if a spine item is linear. \n *\n * @method isValidLinearItem\n * @param {Number} index index of a spine item\n * @return {Boolean} TRUE if the app does not handle linear items or if the item is linear.\n */\n this.isValidLinearItem = function(index) {\n \n if(!isValidIndex(index)) {\n return undefined;\n }\n\n return isValidLinearItem(this.item(index));\n };\n\n /**\n * Checks if the page progression direction is right to left.\n *\n * @method isRightToLeft\n * @return {Boolean} \n */\n this.isRightToLeft = function() {\n\n return self.direction == \"rtl\";\n };\n\n /**\n * Checks if the page progression direction is left to right.\n *\n * @method isLeftToRight\n * @return {Boolean} TRUE if the direction is not rtl.\n */\n this.isLeftToRight = function() {\n\n return !self.isRightToLeft();\n };\n\n /**\n * Checks if an spine item index is valid. \n *\n * @method isValidIndex\n * @param {Number} index the index of the expected spine item\n * @return {Boolean} TRUE is the index is valid.\n */\n function isValidIndex(index) {\n\n return index >= 0 && index < self.items.length;\n }\n\n function lookForPrevValidItem(ix) {\n\n if(!isValidIndex(ix)) {\n return undefined;\n }\n\n var item = self.items[ix];\n\n if(isValidLinearItem(item)) {\n return item;\n }\n\n return lookForPrevValidItem(item.index - 1);\n }\n\n /**\n * Looks for the previous spine item. \n *\n * @method prevItem\n * @param {Models.SpineItem} item a spine item\n * @return {Models.SpineItem} the previous spine item or undefined.\n */\n this.prevItem = function(item) {\n\n return lookForPrevValidItem(item.index - 1);\n };\n\n function lookForNextValidItem(ix) {\n\n if(!isValidIndex(ix)) {\n return undefined;\n }\n\n var item = self.items[ix];\n\n if(isValidLinearItem(item)) {\n return item;\n }\n\n return lookForNextValidItem(item.index + 1);\n }\n\n /**\n * Looks for the next spine item. \n *\n * @method nextItem\n * @param {Models.SpineItem} item a spine item\n * @return {Models.SpineItem} the next spine item or undefined.\n */\n this.nextItem = function(item) {\n\n return lookForNextValidItem(item.index + 1);\n };\n\n /**\n * Gets the relative URL of a spine item. \n *\n * @method getItemUrl\n * @param {Models.SpineItem} item the spine item\n * @return {String} the relative URL of the spine item.\n */\n this.getItemUrl = function(item) {\n\n return self.package.resolveRelativeUrl(item.href);\n\n };\n\n /**\n * Returns the first spine item. \n *\n * @method first\n * @return {Models.SpineItem} the first spine item.\n */\n this.first = function() {\n\n return lookForNextValidItem(0);\n };\n\n /**\n * Returns the last spine item. \n *\n * @method last\n * @return {Models.SpineItem} the last spine item.\n */\n this.last = function() {\n\n return lookForPrevValidItem(this.items.length - 1);\n };\n\n /**\n * Checks if a spine item is the first in the spine. \n *\n * @method isFirstItem\n * @param {Models.SpineItem} item a spine item\n * @return {Boolean} TRUE if the spine item is the first in the list.\n */\n this.isFirstItem = function(item) {\n\n return self.first() === item;\n };\n\n /**\n * Checks if a spine item is the last in the spine. \n *\n * @method isLastItem\n * @param {Models.SpineItem} item a spine item\n * @return {Boolean} true if the spine item is the last in the list.\n */\n this.isLastItem = function(item) {\n\n return self.last() === item;\n };\n\n /**\n * Returns a spine item by its index. \n *\n * @method item\n * @param {Number} index the index of the expected spine item\n * @return {Models.SpineItem} the expected spine item or undefined.\n */\n this.item = function(index) {\n \n if (isValidIndex(index))\n return self.items[index];\n \n return undefined;\n };\n\n /**\n * Returns a spine item by its id.\n *\n * @method getItemById\n * @param {Number} idref the id of the expected spine item\n * @return {Models.SpineItem} the expected spine item or undefined.\n */\n this.getItemById = function(idref) {\n\n var length = self.items.length;\n\n for(var i = 0; i < length; i++) {\n if(self.items[i].idref == idref) {\n\n return self.items[i];\n }\n }\n\n return undefined;\n };\n\n /**\n * Returns a spine item by its href.\n *\n * @method getItemByHref\n * @param {String} href the URL of the expected spine item\n * @return {Models.SpineItem} the expected spine item or undefined.\n */\n this.getItemByHref = function(href) {\n \n var href1_ = self.package.resolveRelativeUrl(href);\n href1_ = href1_.replace(\"filesystem:chrome-extension://\", \"filesystem-chrome-extension://\");\n var href1 = new URI(href1_).normalizePathname().pathname();\n \n var length = self.items.length;\n\n for(var i = 0; i < length; i++) {\n \n var href2_ = self.package.resolveRelativeUrl(self.items[i].href);\n href2_ = href2_.replace(\"filesystem:chrome-extension://\", \"filesystem-chrome-extension://\");\n var href2 = new URI(href2_).normalizePathname().pathname();\n \n if(href1 == href2) {\n return self.items[i];\n }\n }\n\n return undefined;\n };\n\n /**\n * Updates every spine item spread, if not already defined.\n *\n * @method updateSpineItemsSpread\n */\n function updateSpineItemsSpread() {\n\n var len = self.items.length;\n\n var isFirstPageInSpread = false;\n var baseSide = self.isLeftToRight() ? SpineItem.SPREAD_LEFT : SpineItem.SPREAD_RIGHT;\n\n for(var i = 0; i < len; i++) {\n\n var spineItem = self.items[i];\n if( !spineItem.page_spread) {\n\n var spread = spineItem.isRenditionSpreadAllowed() ? (isFirstPageInSpread ? baseSide : SpineItem.alternateSpread(baseSide)) : SpineItem.SPREAD_CENTER;\n spineItem.setSpread(spread);\n }\n\n isFirstPageInSpread = !spineItem.isRenditionSpreadAllowed() || spineItem.page_spread != baseSide;\n }\n }\n\n // initialization of the local 'direction' and 'items' array from the spineDTO structure\n if(spineDTO) {\n\n if(spineDTO.direction) {\n this.direction = spineDTO.direction;\n }\n\n var length = spineDTO.items.length;\n for(var i = 0; i < length; i++) {\n var item = new SpineItem(spineDTO.items[i], i, this);\n this.items.push(item);\n }\n\n updateSpineItemsSpread();\n }\n\n};\n return Spine;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\ndefine ('readium_shared_js/models/smil_model',[\"../helpers\"], function(Helpers) {\n\nvar Smil = {};\n\n/**\n * Wrapper of a SmilNode object\n *\n * @class Smil.SmilNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent node of the new smil node\n */\n\nSmil.SmilNode = function(parent) {\n\n this.parent = parent;\n \n this.id = \"\";\n \n /**\n * Finds the smil model object, i.e. the root node of the smil tree\n *\n * @method getSmil\n * @return {Smil.SmilModel} node The smil model object\n */ \n this.getSmil = function() {\n\n var node = this;\n while(node.parent) {\n node = node.parent;\n }\n\n return node;\n };\n /**\n * Checks if the node given as a parameter is an ancestor of the current node \n *\n * @method hasAncestor\n * @param {Smil.SmilNode} node The checked node\n * @return {Bool} true if the parameter node is an ancestor\n */\n this.hasAncestor = function(node)\n {\n var parent = this.parent;\n while(parent)\n {\n if (parent == node)\n {\n return true;\n }\n\n parent = parent.parent;\n }\n\n return false;\n };\n};\n\n////////////////////////////\n//TimeContainerNode\n\n/**\n * Wrapper of a time container (smil) node \n *\n * @class Smil.TimeContainerNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent smil node\n */\n\nSmil.TimeContainerNode = function(parent) {\n\n /**\n * The parent node\n *\n * @property parent\n * @type Smil.SmilNode\n */\n \n this.parent = parent;\n \n /**\n * The children nodes\n *\n * @property children\n * @type undefined\n */\n\n this.children = undefined;\n \n /**\n * The index\n *\n * @property index\n * @type undefined\n */\n\n this.index = undefined;\n \n /**\n * The epub type\n *\n * @property epubtype\n * @type String\n */\n\n this.epubtype = \"\";\n\n\n /**\n * Checks if the smil node is escapable.\n *\n * @method isEscapable\n * @param {Array} userEscapables\n * @return {Bool} true if the smil node is escapable \n */\n\n this.isEscapable = function(userEscapables)\n {\n if (this.epubtype === \"\")\n {\n return false;\n }\n\n var smilModel = this.getSmil();\n if (!smilModel.mo)\n {\n return false;\n }\n\n var arr = smilModel.mo.escapables;\n if (userEscapables.length > 0)\n {\n arr = userEscapables;\n }\n\n for (var i = 0; i < arr.length; i++)\n {\n if (this.epubtype.indexOf(arr[i]) >= 0)\n {\n return true;\n }\n }\n\n return false;\n };\n\n /**\n * Checks is the smil node is skippable\n *\n * @method isSkippables\n * @param {Array} userSkippables\n * @return {Bool} true s the smil node is skippable\n */\n\n this.isSkippable = function(userSkippables)\n {\n if (this.epubtype === \"\")\n {\n return false;\n }\n \n var smilModel = this.getSmil();\n if (!smilModel.mo)\n {\n return false;\n }\n\n var arr = smilModel.mo.skippables;\n if (userSkippables.length > 0)\n {\n arr = userSkippables;\n }\n\n for (var i = 0; i < arr.length; i++)\n {\n if (this.epubtype.indexOf(arr[i]) >= 0)\n {\n return true;\n }\n }\n\n return false;\n };\n};\n\nSmil.TimeContainerNode.prototype = new Smil.SmilNode();\n\n\n////////////////////////////\n//MediaNode\n\n/**\n * Looks for the media parent folder\n *\n * @class Smil.MediaNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent smil node\n */\n\nSmil.MediaNode = function(parent) {\n\n /**\n * The parent node\n *\n * @property parent\n * @type Smil.SmilNode\n */\n\n this.parent = parent;\n \n /**\n * The source locator\n *\n * @property src\n * @type String\n */\n\n this.src = \"\";\n};\n\nSmil.MediaNode.prototype = new Smil.SmilNode();\n\n////////////////////////////\n//SeqNode\n\n/**\n * Node Sequence\n *\n * @class Smil.SeqNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent smil node\n */\n\nSmil.SeqNode = function(parent) {\n\n /**\n * The parent node\n *\n * @property parent\n * @type Smil.SmilNode\n */\n\n this.parent = parent;\n\n /**\n * The children nodes\n *\n * @property children\n * @type Array\n */\n\n this.children = [];\n\n /**\n * The node type (seq)\n *\n * @property nodeType\n * @type String\n */\n\n this.nodeType = \"seq\";\n\n /**\n * The text reference\n *\n * @property textref\n * @type String\n */\n\n this.textref = \"\";\n \n /**\n * Calculates the total duration of audio clips \n *\n * @method durationMilliseconds\n * @return {Number} \n */\n\n this.durationMilliseconds = function()\n {\n // returns the smil object\n var smilData = this.getSmil();\n\n var total = 0;\n \n for (var i = 0; i < this.children.length; i++)\n {\n var container = this.children[i];\n if (container.nodeType === \"par\")\n {\n if (!container.audio)\n {\n continue;\n }\n if (container.text && (!container.text.manifestItemId || container.text.manifestItemId != smilData.spineItemId))\n {\n continue;\n }\n \n var clipDur = container.audio.clipDurationMilliseconds();\n total += clipDur;\n }\n else if (container.nodeType === \"seq\")\n {\n total += container.durationMilliseconds();\n }\n }\n\n return total;\n };\n \n /**\n * Looks for a given parallel node in the current sequence node and its children.\n * Returns true if found. \n *\n * @method clipOffset\n * @param {Number} offset\n * @param {Smil.ParNode} par The reference parallel smil node\n * @return {Boolean} \n */ \n\n this.clipOffset = function(offset, par)\n {\n var smilData = this.getSmil();\n \n for (var i = 0; i < this.children.length; i++)\n {\n var container = this.children[i];\n if (container.nodeType === \"par\")\n {\n if (container == par)\n {\n return true;\n }\n\n if (!container.audio)\n {\n continue;\n }\n\n if (container.text && (!container.text.manifestItemId || container.text.manifestItemId != smilData.spineItemId))\n {\n continue;\n }\n\n var clipDur = container.audio.clipDurationMilliseconds();\n offset.offset += clipDur;\n }\n else if (container.nodeType === \"seq\")\n {\n var found = container.clipOffset(offset, par);\n if (found)\n {\n return true;\n }\n }\n }\n\n return false;\n };\n\n\n /**\n * Checks if a parallel smil node exists at a given timecode in the smil sequence node. \n * Returns the node or undefined.\n *\n * @method parallelAt\n * @param {Number} timeMilliseconds\n * @return {Smil.ParNode}\n */ \n\n this.parallelAt = function(timeMilliseconds)\n {\n var smilData = this.getSmil();\n \n var offset = 0;\n\n for (var i = 0; i < this.children.length; i++)\n {\n var timeAdjusted = timeMilliseconds - offset;\n\n var container = this.children[i];\n \n // looks for a winning parallel smil node in a child parallel smil node\n if (container.nodeType === \"par\")\n {\n // the parallel node must contain an audio clip and a text node with a proper id\n if (!container.audio)\n {\n continue;\n }\n\n if (container.text && (!container.text.manifestItemId || container.text.manifestItemId != smilData.spineItemId))\n {\n continue;\n }\n // and the timecode given as a parameter must correspond to the audio clip time range \n var clipDur = container.audio.clipDurationMilliseconds();\n\n if (clipDur > 0 && timeAdjusted <= clipDur)\n {\n return container;\n }\n\n offset += clipDur;\n }\n // looks for a winning parallel smil node in a child sequence smil node\n else if (container.nodeType === \"seq\")\n {\n var para = container.parallelAt(timeAdjusted);\n if (para)\n {\n return para;\n }\n\n offset += container.durationMilliseconds();\n }\n }\n\n return undefined;\n };\n\n /**\n * Looks for the nth parallel smil node in the current sequence node\n *\n * @method nthParallel\n * @param {Number} index\n * @param {Number} count\n * @return {Smil.ParNode} \n */ \n\n this.nthParallel = function(index, count)\n {\n for (var i = 0; i < this.children.length; i++)\n {\n var container = this.children[i];\n \n if (container.nodeType === \"par\")\n {\n count.count++;\n\n if (count.count == index)\n {\n return container;\n }\n }\n else if (container.nodeType === \"seq\")\n {\n var para = container.nthParallel(index, count);\n if (para)\n {\n return para;\n }\n }\n }\n\n return undefined;\n };\n \n};\n\nSmil.SeqNode.prototype = new Smil.TimeContainerNode();\n\n//////////////////////////\n//ParNode\n\n/**\n * Returns the parent of the SMIL file by checking out the nodes\n *\n * @class Smil.ParNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent smil node\n\n */\n\nSmil.ParNode = function(parent) {\n\n /**\n * The parent node\n *\n * @property parent\n * @type Smil.SmilNode\n */\n\n this.parent = parent;\n \n /**\n * The children files\n *\n * @property children\n * @type Array\n */\n\n this.children = [];\n \n /**\n * The Node Type\n *\n * @property nodeType which is equal to \"par\" here\n * @type String\n */\n\n this.nodeType = \"par\";\n\n /**\n * Some text\n *\n * @property text \n * @type String\n */\n this.text = undefined;\n \n /**\n * Some audio\n *\n * @property audio \n * @type unknown\n */\n \n this.audio = undefined;\n\n /**\n * An element of the epub archive\n *\n * @property element \n * @type unknown\n */\n \n this.element = undefined; \n\n /**\n * Gets the first ancestor sequence with a given epub type, or undefined.\n *\n * @method getFirstSeqAncestorWithEpubType\n * @param {String} epubtype\n * @param {Boolean} includeSelf\n * @return {Smil.SmilNode} \n */ \n\n this.getFirstSeqAncestorWithEpubType = function(epubtype, includeSelf) {\n if (!epubtype) return undefined;\n \n var parent = includeSelf ? this : this.parent;\n while (parent)\n {\n if (parent.epubtype && parent.epubtype.indexOf(epubtype) >= 0)\n {\n return parent; // assert(parent.nodeType === \"seq\")\n }\n \n parent = parent.parent;\n }\n \n return undefined;\n };\n};\n\nSmil.ParNode.prototype = new Smil.TimeContainerNode();\n\n//////////////////////////\n//TextNode\n\n/**\n * Node Sequence\n *\n * @class Smil.TextNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent smil node\n\n */\n\nSmil.TextNode = function(parent) {\n\n /**\n * The parent node\n *\n * @property parent\n * @type Smil.SmilNode\n */\n\n this.parent = parent;\n\n /**\n * The node type, set to \"text\"\n *\n * @property nodeType\n * @type String \n */\n\n this.nodeType = \"text\";\n\n /**\n * The source file\n *\n * @property srcFile\n * @type String\n */\n \n this.srcFile = \"\";\n \n /**\n * A fragment of the source file ID\n *\n * @property srcFragmentId\n * @type String\n */\n\n this.srcFragmentId = \"\";\n \n /**\n * The ID of the manifest for the current item\n *\n * @property manifestItemId\n * @type Number\n */\n \n this.manifestItemId = undefined;\n \n /**\n * Updates the ID of the manifest for the current media\n *\n * @method updateMediaManifestItemId \n */ \n\n this.updateMediaManifestItemId = function() {\n\n var smilData = this.getSmil();\n \n if (!smilData.href || !smilData.href.length)\n {\n return; // Blank MO page placeholder, no real SMIL\n }\n \n // var srcParts = item.src.split('#');\n// item.srcFile = srcParts[0];\n// item.srcFragmentId = (srcParts.length === 2) ? srcParts[1] : \"\";\n \n var src = this.srcFile ? this.srcFile : this.src;\n// console.log(\"src: \" + src);\n// console.log(\"smilData.href: \" + smilData.href);\n var ref = Helpers.ResolveContentRef(src, smilData.href);\n//console.log(\"ref: \" + ref);\n var full = smilData.mo.package.resolveRelativeUrlMO(ref);\n// console.log(\"full: \" + full);\n// console.log(\"---\");\n for (var j = 0; j < smilData.mo.package.spine.items.length; j++)\n {\n var item = smilData.mo.package.spine.items[j];\n//console.log(\"item.href: \" + item.href);\n var url = smilData.mo.package.resolveRelativeUrl(item.href);\n//console.log(\"url: \" + url);\n if (url === full)\n {\n//console.error(\"FOUND: \" + item.idref);\n this.manifestItemId = item.idref;\n return;\n }\n }\n \n console.error(\"Cannot set the Media ManifestItemId? \" + this.src + \" && \" + smilData.href);\n \n// throw \"BREAK\";\n };\n \n};\n\nSmil.TextNode.prototype = new Smil.MediaNode();\n\n///////////////////////////\n//AudioNode\n\n/**\n * Looks for the media parent folder\n *\n * @class Smil.AudioNode\n * @constructor\n * @param {Smil.SmilNode} parent Parent smil node\n */\n\nSmil.AudioNode = function(parent) {\n\n /**\n * The parent node\n *\n * @property parent\n * @type Smil.SmilNode\n */\n\n this.parent = parent;\n\n /**\n * The node type, set to \"audio\"\n *\n * @property nodeType \n * @type String\n */\n\n this.nodeType = \"audio\";\n\n /**\n * The clip begin timecode\n *\n * @property clipBegin \n * @type Number\n */\n\n this.clipBegin = 0;\n\n /**\n * The max duration of the audio clip which is almost infinite\n *\n * @property MAX \n * @type Number\n */\n\n this.MAX = 1234567890.1; //Number.MAX_VALUE - 0.1; //Infinity;\n \n /**\n * The clip end timecode\n *\n * @property clipEnd\n * @type Number\n */\n\n this.clipEnd = this.MAX;\n \n /**\n * Returns the duration of the audio clip\n *\n * @method clipDurationMilliseconds\n * @return {Number} \n */ \n\n this.clipDurationMilliseconds = function()\n {\n var _clipBeginMilliseconds = this.clipBegin * 1000;\n var _clipEndMilliseconds = this.clipEnd * 1000;\n \n if (this.clipEnd >= this.MAX || _clipEndMilliseconds <= _clipBeginMilliseconds)\n {\n return 0;\n }\n\n return _clipEndMilliseconds - _clipBeginMilliseconds;\n }; \n};\n\nSmil.AudioNode.prototype = new Smil.MediaNode();\n\n//////////////////////////////\n//SmilModel\n\n/**\n * Wrapper of the SmilModel object\n *\n * @class Models.SmilModel\n * @constructor\n */\n\nvar SmilModel = function() {\n\n /**\n * The parent object\n *\n * @property parent\n * @type any\n */\n\n this.parent = undefined;\n \n /**\n * The smil model children, i.e. a collection of seq or par smil nodes\n *\n * @property children\n * @type Array\n */\n \n this.children = []; \n \n /**\n * The manifest item ID\n *\n * @property id\n * @type Number\n */\n\n this.id = undefined; \n\n /**\n * The href of the .smil source file\n *\n * @property href\n * @type String\n */\n\n this.href = undefined; \n \n /**\n * The duration of the audio clips\n *\n * @property duration\n * @type Number\n */\n\n this.duration = undefined;\n\n /**\n * The media overlay object\n *\n * @property mo\n * @type Models.MediaOverlay\n */\n\n this.mo = undefined;\n\n /**\n * Checks if a parallel smil node exists at a given timecode in the smil model. \n * Returns the node or undefined.\n *\n * @method parallelAt\n * @param {Number} timeMillisecond \n * @return {Smil.ParNode}\n */\n \n this.parallelAt = function(timeMilliseconds)\n {\n return this.children[0].parallelAt(timeMilliseconds);\n };\n\n /**\n * Looks for the nth parallel smil node in the current smil model\n *\n * @method nthParallel\n * @param {Number} index\n * @return {Smil.ParNode} \n */\n\n this.nthParallel = function(index)\n {\n var count = {count: -1};\n return this.children[0].nthParallel(index, count);\n };\n\n /**\n * Looks for a given parallel node in the current smil model.\n * Returns its offset if found. \n *\n * @method clipOffset\n * @param {Smil.ParNode} par The reference parallel smil node\n * @return {Number} offset of the audio clip\n */\n\n this.clipOffset = function(par)\n {\n var offset = {offset: 0};\n if (this.children[0].clipOffset(offset, par))\n {\n return offset.offset;\n }\n\n return 0;\n };\n\n /**\n * Calculates the total audio duration of the smil model\n *\n * @method durationMilliseconds_Calculated \n * @return {Number}\n */\n\n this.durationMilliseconds_Calculated = function()\n {\n return this.children[0].durationMilliseconds();\n };\n \n\n var _epubtypeSyncs = [];\n // \n // this.clearSyncs = function()\n // {\n // _epubtypeSyncs = [];\n // };\n\n // local function, helper\n this.hasSync = function(epubtype)\n {\n for (var i = 0; i < _epubtypeSyncs.length; i++)\n {\n if (_epubtypeSyncs[i] === epubtype)\n {\n return true;\n }\n }\n \n return false;\n };\n\n /**\n * Stores epub types given as parameters in the _epubtypeSyncs array\n * Note: any use of the _epubtypeSyncs array?\n *\n * @method addSync\n * @param {String} epubtypes \n */\n\n this.addSync = function(epubtypes)\n {\n if (!epubtypes) return;\n\n var parts = epubtypes.split(' ');\n for (var i = 0; i < parts.length; i++)\n {\n var epubtype = parts[i].trim();\n\n if (epubtype.length > 0 && !this.hasSync(epubtype))\n {\n _epubtypeSyncs.push(epubtype);\n }\n }\n };\n \n};\n\n/**\n * Static SmilModel.fromSmilDTO method, returns a clean SmilModel object\n *\n * @method Model.fromSmilDTO\n * @param {string} smilDTO\n * @param {string} parent\n * @return {Models.SmilModel}\n*/\n\nSmilModel.fromSmilDTO = function(smilDTO, mo) {\n\n if (mo.DEBUG)\n {\n console.debug(\"Media Overlay DTO import...\");\n }\n\n // Debug level indenting function\n var indent = 0;\n var getIndent = function()\n {\n var str = \"\";\n for (var i = 0; i < indent; i++)\n {\n str += \" \";\n }\n return str;\n }\n\n var smilModel = new SmilModel();\n smilModel.id = smilDTO.id;\n smilModel.spineItemId = smilDTO.spineItemId;\n smilModel.href = smilDTO.href;\n \n smilModel.smilVersion = smilDTO.smilVersion;\n \n smilModel.duration = smilDTO.duration;\n if (smilModel.duration && smilModel.duration.length && smilModel.duration.length > 0)\n {\n console.error(\"SMIL duration is string, parsing float... (\" + smilModel.duration + \")\");\n smilModel.duration = parseFloat(smilModel.duration);\n }\n \n smilModel.mo = mo; //Models.MediaOverlay\n\n if (smilModel.mo.DEBUG)\n {\n console.log(\"JS MO smilVersion=\" + smilModel.smilVersion);\n console.log(\"JS MO id=\" + smilModel.id);\n console.log(\"JS MO spineItemId=\" + smilModel.spineItemId);\n console.log(\"JS MO href=\" + smilModel.href);\n console.log(\"JS MO duration=\" + smilModel.duration);\n }\n\n // Safe copy, helper function\n var safeCopyProperty = function(property, from, to, isRequired) {\n\n if((property in from))\n { // && from[property] !== \"\"\n\n if( !(property in to) ) {\n console.debug(\"property \" + property + \" not declared in smil node \" + to.nodeType);\n }\n\n to[property] = from[property];\n\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO: [\" + property + \"=\" + to[property] + \"]\");\n }\n }\n else if(isRequired) {\n console.log(\"Required property \" + property + \" not found in smil node \" + from.nodeType);\n }\n };\n\n // smil node creation, helper function\n var createNodeFromDTO = function(nodeDTO, parent) {\n\n var node;\n\n if(nodeDTO.nodeType == \"seq\") {\n\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO seq\");\n }\n\n node = new Smil.SeqNode(parent);\n\n safeCopyProperty(\"textref\", nodeDTO, node, ((parent && parent.parent) ? true : false));\n safeCopyProperty(\"id\", nodeDTO, node);\n safeCopyProperty(\"epubtype\", nodeDTO, node);\n\n if (node.epubtype)\n {\n node.getSmil().addSync(node.epubtype);\n }\n \n indent++;\n copyChildren(nodeDTO, node);\n indent--;\n }\n else if (nodeDTO.nodeType == \"par\") {\n\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO par\");\n }\n\n node = new Smil.ParNode(parent);\n\n safeCopyProperty(\"id\", nodeDTO, node);\n safeCopyProperty(\"epubtype\", nodeDTO, node);\n\n if (node.epubtype)\n {\n node.getSmil().addSync(node.epubtype);\n }\n\n indent++;\n copyChildren(nodeDTO, node);\n indent--;\n \n for(var i = 0, count = node.children.length; i < count; i++) {\n var child = node.children[i];\n\n if(child.nodeType == \"text\") {\n node.text = child;\n }\n else if(child.nodeType == \"audio\") {\n node.audio = child;\n }\n else {\n console.error(\"Unexpected smil node type: \" + child.nodeType);\n }\n }\n\n ////////////////\n var forceTTS = false; // for testing only!\n ////////////////\n\n if (forceTTS || !node.audio)\n {\n // synthetic speech (playback using TTS engine), or embedded media, or blank page\n var fakeAudio = new Smil.AudioNode(node);\n\n fakeAudio.clipBegin = 0;\n fakeAudio.clipEnd = fakeAudio.MAX;\n fakeAudio.src = undefined;\n\n node.audio = fakeAudio;\n }\n }\n else if (nodeDTO.nodeType == \"text\") {\n\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO text\");\n }\n\n node = new Smil.TextNode(parent);\n\n safeCopyProperty(\"src\", nodeDTO, node, true);\n safeCopyProperty(\"srcFile\", nodeDTO, node, true);\n safeCopyProperty(\"srcFragmentId\", nodeDTO, node, false);\n safeCopyProperty(\"id\", nodeDTO, node);\n \n node.updateMediaManifestItemId();\n }\n else if (nodeDTO.nodeType == \"audio\") {\n\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO audio\");\n }\n\n node = new Smil.AudioNode(parent);\n\n safeCopyProperty(\"src\", nodeDTO, node, true);\n safeCopyProperty(\"id\", nodeDTO, node);\n\n safeCopyProperty(\"clipBegin\", nodeDTO, node);\n if (node.clipBegin && node.clipBegin.length && node.clipBegin.length > 0)\n {\n console.error(\"SMIL clipBegin is string, parsing float... (\" + node.clipBegin + \")\");\n node.clipBegin = parseFloat(node.clipBegin);\n }\n if (node.clipBegin < 0)\n {\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO clipBegin adjusted to ZERO\");\n }\n node.clipBegin = 0;\n }\n\n safeCopyProperty(\"clipEnd\", nodeDTO, node);\n if (node.clipEnd && node.clipEnd.length && node.clipEnd.length > 0)\n {\n console.error(\"SMIL clipEnd is string, parsing float... (\" + node.clipEnd + \")\");\n node.clipEnd = parseFloat(node.clipEnd);\n }\n if (node.clipEnd <= node.clipBegin)\n {\n if (smilModel.mo.DEBUG)\n {\n console.log(getIndent() + \"JS MO clipEnd adjusted to MAX\");\n }\n node.clipEnd = node.MAX;\n }\n \n //node.updateMediaManifestItemId(); ONLY XHTML SPINE ITEMS \n }\n else {\n console.error(\"Unexpected smil node type: \" + nodeDTO.nodeType);\n return undefined;\n }\n\n return node;\n\n };\n\n // recursive copy of a tree, helper function\n var copyChildren = function(from, to) {\n\n var count = from.children.length;\n\n for(var i = 0; i < count; i++) {\n var node = createNodeFromDTO(from.children[i], to);\n node.index = i;\n to.children.push(node);\n }\n\n };\n\n copyChildren(smilDTO, smilModel);\n\n return smilModel;\n\n};\n\nreturn SmilModel;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/media_overlay',[\"./smil_model\"], function(SmilModel) {\n\n/**\n * Wrapper of the MediaOverlay object\n *\n * @class Models.MediaOverlay\n * @constructor\n * @param {Models.Package} packageModel EPUB package\n*/\n\nvar MediaOverlay = function(packageModel) {\n\n /**\n * The parent package object\n *\n * @property package\n * @type Models.Package\n */ \n this.package = packageModel;\n\n /**\n * Checks if a parallel smil node exists at a given timecode. \n * Returns the first corresponding node found in a smil model found, or undefined.\n *\n * @method parallelAt\n * @param {number} timeMilliseconds\n * @return {Smil.ParNode} \n */\n\n this.parallelAt = function(timeMilliseconds)\n {\n var offset = 0;\n \n for (var i = 0; i < this.smil_models.length; i++)\n {\n var smilData = this.smil_models[i];\n \n var timeAdjusted = timeMilliseconds - offset;\n\n var para = smilData.parallelAt(timeAdjusted);\n if (para)\n {\n return para;\n }\n\n offset += smilData.durationMilliseconds_Calculated();\n }\n\n return undefined;\n };\n \n /**\n * Calculates a timecode corresponding to a percent of the total audio duration (the function parameters smilData, par, and milliseconds are objects with a single field using the same name)\n *\n * @method percentToPosition\n * @param {Number} percent\n * @param {Models.SmilModel} smilData (object with a single field using the same name, used as OUT param)\n * @param {Smil.ParNode} par (object with a single field using the same name, used as OUT param)\n * @param {Number} milliseconds (object with a single field using the same name, used as OUT param)\n */\n\n this.percentToPosition = function(percent, smilData, par, milliseconds)\n {\n if (percent < 0.0 || percent > 100.0)\n {\n percent = 0.0;\n }\n \n var total = this.durationMilliseconds_Calculated();\n\n var timeMs = total * (percent / 100.0);\n\n par.par = this.parallelAt(timeMs);\n if (!par.par)\n {\n return;\n }\n \n var smilDataPar = par.par.getSmil();\n if (!smilDataPar)\n {\n return;\n }\n \n var smilDataOffset = 0;\n \n for (var i = 0; i < this.smil_models.length; i++)\n {\n smilData.smilData = this.smil_models[i];\n if (smilData.smilData == smilDataPar)\n {\n break;\n }\n smilDataOffset += smilData.smilData.durationMilliseconds_Calculated();\n }\n\n milliseconds.milliseconds = timeMs - (smilDataOffset + smilData.smilData.clipOffset(par.par));\n };\n\n /**\n * Calculates the accumulated audio duration of each smil overlay\n *\n * @method durationMilliseconds_Calculated\n * @return {Number} total duration \n */\n\n this.durationMilliseconds_Calculated = function()\n {\n var total = 0;\n \n for (var i = 0; i < this.smil_models.length; i++)\n {\n var smilData = this.smil_models[i];\n\n total += smilData.durationMilliseconds_Calculated();\n }\n \n return total;\n };\n \n /**\n * Returns the smil overlay at the given index\n *\n * @method smilAt\n * @param {Number} smilIndex\n * @return {Models.SmilModel}\n */\n\n this.smilAt = function(smilIndex)\n {\n if (smilIndex < 0 || smilIndex >= this.smil_models.length)\n {\n return undefined;\n }\n \n return this.smil_models[smilIndex];\n }\n \n /**\n * Calculates a percent of the total audio duration corresponding to a timecode\n * \n * @method positionToPercent\n * @param {Number} smilIndex Index of a smil model\n * @param {Number} parIndex\n * @param {Number} milliseconds\n * @return {Number} percent \n */\n\n this.positionToPercent = function(smilIndex, parIndex, milliseconds)\n {\n \n if (smilIndex >= this.smil_models.length)\n {\n return -1.0;\n }\n\n var smilDataOffset = 0;\n for (var i = 0; i < smilIndex; i++)\n {\n var sd = this.smil_models[i];\n smilDataOffset += sd.durationMilliseconds_Calculated();\n }\n \n var smilData = this.smil_models[smilIndex];\n\n var par = smilData.nthParallel(parIndex);\n if (!par)\n {\n return -1.0;\n }\n\n var offset = smilDataOffset + smilData.clipOffset(par) + milliseconds;\n \n var total = this.durationMilliseconds_Calculated();\n\n var percent = (offset / total) * 100;\n \n return percent;\n };\n\n /**\n * Array of smil models {Models.SmilModel}\n *\n * @property smil_models\n * @type Array\n */\n\n this.smil_models = [];\n\n /**\n * List of the skippable smil items\n *\n * @property skippables\n * @type Array\n */\n\n this.skippables = [];\n \n /**\n * List of the escapable smil items\n *\n * @property escapables\n * @type Array\n */\n\n this.escapables = [];\n\n /**\n * Duration of the smil audio\n *\n * @property duration\n * @type Number\n */\n\n this.duration = undefined;\n\n /**\n * Narrator\n *\n * @property narrator\n * @type String\n */\n\n this.narrator = undefined;\n\n /**\n * Author-defined name of the CSS \"active class\" (applied to the document as a whole)\n *\n * @property activeClass\n * @type String\n */\n\n this.activeClass = undefined;\n\n /**\n * Author-defined name of the CSS \"playback active class\" (applied to a single audio fragment)\n *\n * @property playbackActiveClass\n * @type String\n */\n\n this.playbackActiveClass = undefined;\n\n // Debug messages, must be false in production!\n this.DEBUG = false;\n\n /**\n * Returns the smil model corresponding to a spine item, or undefined if not found.\n *\n * @method getSmilBySpineItem\n * @param {Models.SpineItem} spineItem\n * @return {Models.SmilModel} \n */\n\n this.getSmilBySpineItem = function (spineItem) {\n if (!spineItem) return undefined;\n\n for(var i = 0, count = this.smil_models.length; i < count; i++)\n {\n var smil = this.smil_models[i];\n if(smil.spineItemId === spineItem.idref) {\n if (spineItem.media_overlay_id !== smil.id)\n {\n console.error(\"SMIL INCORRECT ID?? \" + spineItem.media_overlay_id + \" /// \" + smil.id);\n }\n return smil;\n }\n }\n\n return undefined;\n };\n\n /*\n this.getSmilById = function (id) {\n\n for(var i = 0, count = this.smil_models.length; i < count; i++) {\n\n var smil = this.smil_models[i];\n if(smil.id === id) {\n return smil;\n }\n }\n\n return undefined;\n };\n */\n\n /**\n * Returns the next smil model\n *\n * @method getNextSmil\n * @param {Models.SmilModel} smil The current smil model\n * @return {Models.SmilModel} \n */\n\n this.getNextSmil = function(smil) {\n\n var index = this.smil_models.indexOf(smil);\n if(index == -1 || index == this.smil_models.length - 1) {\n return undefined;\n }\n\n return this.smil_models[index + 1];\n }\n\n /**\n * Returns the previous smil model\n *\n * @method getPreviousSmil\n * @param {Models.SmilModel} smil The current smil model\n * @return {Models.SmilModel} \n */\n\n this.getPreviousSmil = function(smil) {\n\n var index = this.smil_models.indexOf(smil);\n if(index == -1 || index == 0) {\n return undefined;\n }\n\n return this.smil_models[index - 1];\n }\n};\n\n/**\n * Static MediaOverlay.fromDTO method, returns a clean MediaOverlay object\n *\n * @method MediaOverlay.fromDTO\n * @param {Object} moDTO Media overlay data object (raw JSON, as returned by a parser)\n * @param {Models.Package} packageModel EPUB package object\n * @return {Models.MediaOverlay}\n*/\n\nMediaOverlay.fromDTO = function(moDTO, packageModel) {\n\n var mo = new MediaOverlay(packageModel);\n\n if(!moDTO) {\n return mo;\n }\n\n mo.duration = moDTO.duration;\n if (mo.duration && mo.duration.length && mo.duration.length > 0)\n {\n console.error(\"SMIL total duration is string, parsing float... (\" + mo.duration + \")\");\n mo.duration = parseFloat(mo.duration);\n }\n if (mo.DEBUG)\n console.debug(\"Media Overlay Duration (TOTAL): \" + mo.duration);\n\n mo.narrator = moDTO.narrator;\n if (mo.DEBUG)\n console.debug(\"Media Overlay Narrator: \" + mo.narrator);\n\n mo.activeClass = moDTO.activeClass;\n if (mo.DEBUG)\n console.debug(\"Media Overlay Active-Class: \" + mo.activeClass);\n\n mo.playbackActiveClass = moDTO.playbackActiveClass;\n if (mo.DEBUG)\n console.debug(\"Media Overlay Playback-Active-Class: \" + mo.playbackActiveClass);\n\n var count = moDTO.smil_models.length;\n if (mo.DEBUG)\n console.debug(\"Media Overlay SMIL count: \" + count);\n\n for(var i = 0; i < count; i++) {\n var smilModel = SmilModel.fromSmilDTO(moDTO.smil_models[i], mo);\n mo.smil_models.push(smilModel);\n\n if (mo.DEBUG)\n console.debug(\"Media Overlay Duration (SPINE ITEM): \" + smilModel.duration);\n }\n\n count = moDTO.skippables.length;\n if (mo.DEBUG)\n console.debug(\"Media Overlay SKIPPABLES count: \" + count);\n\n for(var i = 0; i < count; i++) {\n mo.skippables.push(moDTO.skippables[i]);\n }\n\n count = moDTO.escapables.length;\n if (mo.DEBUG)\n console.debug(\"Media Overlay ESCAPABLES count: \" + count);\n\n for(var i = 0; i < count; i++) {\n mo.escapables.push(moDTO.escapables[i]);\n\n }\n\n return mo;\n};\n\nreturn MediaOverlay;\n});\n\n\n\n","// Created by Boris Schneiderman.\n// Copyright (c) 2016 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\ndefine('readium_shared_js/models/package_data',[],function() {\n/**\n * This object is not instantiated directly but provided by the host application to the DOMAccess layer in the\n * Views.ReaderView.OpenBookData function\n *\n * Provided for reference only\n *\n * @class Models.PackageData\n */\nvar PackageData = {\n\n /**\n * The Url of the package file\n *\n * @property rootUrl \n * @type {String}\n *\n */\n rootUrl: \"\",\n /**\n * The Url of the package file, to prefix Media Overlays SMIL audio references\n *\n * @property rootUrlMO \n * @type {String}\n *\n */\n rootUrlMO: \"\",\n /**\n * The rendering layout; expected values are \"reflowable\"|\"pre-paginated\"\n *\n * @property rendering_layout \n * @type {String}\n */\n rendering_layout: \"\",\n\n /**\n * The spine properties\n *\n * @property spine \n * @type {Object}\n */\n spine: {\n\n direction: \"ltr\",\n items: [\n {\n href:\"\",\n idref:\"\",\n page_spread:\"\", //\"page-spread-left\"|\"page-spread-right\"|\"page-spread-center\"\n rendering_layout:\"\" //\"reflowable\"|\"pre-paginated\"\n }\n ]\n }\n};\n\nreturn PackageData;\n});\n","// Created by Boris Schneiderman.\n// Copyright (c) 2016 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\ndefine('readium_shared_js/models/package',['../helpers','./spine_item','./spine','./media_overlay', './package_data', 'URIjs'], function (Helpers, SpineItem, Spine, MediaOverlay, PackageData, URI) {\n\n/**\n * Wrapper of the Package object, created in openBook()\n *\n * @class Models.Package\n * @constructor\n * @param {Models.PackageData} packageData container for package properties \n */\nvar Package = function(packageData){\n\n var self = this;\n \n /**\n * The associated spine object\n *\n * @property spine\n * @type Models.Spine\n */\n this.spine = undefined;\n\n /**\n * The root URL of the package file\n *\n * @property rootUrl\n * @type String\n */\n this.rootUrl = undefined;\n\n /**\n * The root URL of the package file, to prefix Media Overlays SMIL audio references\n *\n * @property rootUrlMO \n * @type String\n *\n */\n this.rootUrlMO = undefined;\n \n /**\n * The Media Overlays object\n *\n * @property media_overlay \n * @type Models.MediaOverlay\n *\n */ \n this.media_overlay = undefined;\n \n /**\n * The rendition viewport (as per the EPUB3 specification)\n *\n * @property rendition_viewport \n * @type String\n *\n */ \n this.rendition_viewport = undefined;\n \n /**\n * The rendition flow (as per the EPUB3 specification)\n *\n * @property rendition_flow \n * @type String\n *\n */ \n this.rendition_flow = undefined;\n \n /**\n * The rendition layout (as per the EPUB3 specification)\n *\n * @property rendition_layout \n * @type String\n *\n */ \n this.rendition_layout = undefined;\n\n /**\n * The rendition spread (as per the EPUB3 specification)\n *\n * @property rendition_spread \n * @type String\n *\n */ \n this.rendition_spread = undefined;\n\n /**\n * The rendition orientation (as per the EPUB3 specification)\n *\n * @property rendition_orientation \n * @type String\n *\n */ \n this.rendition_orientation = undefined;\n\n /**\n * Returns a resolved relative Url, Media Overlay variant.\n *\n * @method resolveRelativeUrlMO\n * @param {String} relativeUrl the relative URL to resolve\n * @return {String} the resolved relative URL.\n */\n this.resolveRelativeUrlMO = function(relativeUrl) {\n \n var relativeUrlUri = undefined;\n try {\n relativeUrlUri = new URI(relativeUrl);\n } catch(err) {\n console.error(err);\n console.log(relativeUrl);\n }\n if (relativeUrlUri && relativeUrlUri.is(\"absolute\")) return relativeUrl; //relativeUrlUri.scheme() == \"http://\", \"https://\", \"data:\", etc.\n\n\n if(self.rootUrlMO && self.rootUrlMO.length > 0) {\n\n var url = self.rootUrlMO;\n \n try {\n //url = new URI(relativeUrl).absoluteTo(url).search('').hash('').toString();\n url = new URI(url).search('').hash('').toString();\n } catch(err) {\n console.error(err);\n console.log(url);\n }\n \n if(Helpers.EndsWith(url, \"/\")){\n return url + relativeUrl;\n }\n else {\n return url + \"/\" + relativeUrl;\n }\n }\n\n return self.resolveRelativeUrl(relativeUrl);\n };\n\n /**\n * Returns a resolved relative Url.\n *\n * @method resolveRelativeUrl\n * @param {String} relativeUrl the relative URL to resolve\n * @return {String} the resolved relative URL.\n */\n this.resolveRelativeUrl = function(relativeUrl) {\n\n var relativeUrlUri = undefined;\n try {\n relativeUrlUri = new URI(relativeUrl);\n } catch(err) {\n console.error(err);\n console.log(relativeUrl);\n }\n if (relativeUrlUri && relativeUrlUri.is(\"absolute\")) return relativeUrl; //relativeUrlUri.scheme() == \"http://\", \"https://\", \"data:\", etc.\n\n \n if(self.rootUrl) {\n\n var url = self.rootUrl;\n \n try {\n //url = new URI(relativeUrl).absoluteTo(url).search('').hash('').toString();\n url = new URI(url).search('').hash('').toString();\n } catch(err) {\n console.error(err);\n console.log(url);\n }\n \n if(Helpers.EndsWith(url, \"/\")){\n return url + relativeUrl;\n }\n else {\n return url + \"/\" + relativeUrl;\n }\n }\n\n return relativeUrl;\n };\n\n /**\n * Checks if the package is Fixed Layout.\n *\n * @method isFixedLayout\n * @return {Boolean} TRUE if the package is Fixed Layout.\n */\n this.isFixedLayout = function() {\n return self.rendition_layout === SpineItem.RENDITION_LAYOUT_PREPAGINATED;\n };\n\n /**\n * Checks if the package is Reflowable.\n *\n * @method isReflowable\n * @return {Boolean} TRUE if the package is Reflowable (i.e. not Fixed Layout).\n */\n this.isReflowable = function() {\n return !self.isFixedLayout();\n };\n \n if(packageData) {\n \n this.rootUrl = packageData.rootUrl;\n this.rootUrlMO = packageData.rootUrlMO;\n\n this.rendition_viewport = packageData.rendition_viewport;\n\n this.rendition_layout = packageData.rendition_layout;\n\n this.rendition_flow = packageData.rendition_flow;\n this.rendition_orientation = packageData.rendition_orientation;\n this.rendition_spread = packageData.rendition_spread;\n \n this.spine = new Spine(this, packageData.spine);\n\n this.media_overlay = MediaOverlay.fromDTO(packageData.media_overlay, this);\n }\n};\n\nreturn Package;\n});\n\n\n","// Created by Juan Corona\n// Copyright (c) 2016 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n// OF THE POSSIBILITY OF SUCH DAMAGE.\ndefine('readium_shared_js/models/metadata',[], function () {\n\n /**\n * Wrapper of the Metadata object, created in openBook()\n *\n * @class Models.Metadata\n */\n var Metadata = function(packageMetadata) {\n this.identifier = undefined;\n this.title = undefined;\n this.author = undefined;\n this.description = undefined;\n this.publisher = undefined;\n this.language = undefined;\n this.rights = undefined;\n this.modifiedDate = undefined;\n this.publishedDate = undefined;\n this.epubVersion = undefined;\n\n if (packageMetadata) {\n this.identifier = packageMetadata.id;\n this.title = packageMetadata.title;\n this.author = packageMetadata.author;\n this.description = packageMetadata.description;\n this.language = packageMetadata.language;\n this.publisher = packageMetadata.publisher;\n this.rights = packageMetadata.rights;\n this.modifiedDate = packageMetadata.modified_date;\n this.publishedDate = packageMetadata.pubdate;\n this.epubVersion = packageMetadata.epub_version;\n }\n };\n\n return Metadata;\n});\n\n\n","\n// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/reflowable_view',[\"../globals\", \"jquery\", \"underscore\", \"eventEmitter\", \"../models/bookmark_data\", \"./cfi_navigation_logic\",\n \"../models/current_pages_info\", \"../helpers\", \"../models/page_open_request\",\n \"../models/viewer_settings\", \"ResizeSensor\"],\n function(Globals, $, _, EventEmitter, BookmarkData, CfiNavigationLogic,\n CurrentPagesInfo, Helpers, PageOpenRequest,\n ViewerSettings, ResizeSensor) {\n/**\n * Renders reflowable content using CSS columns\n * @param options\n * @constructor\n */\nvar ReflowableView = function(options, reader){\n $.extend(this, new EventEmitter());\n\n var self = this;\n\n var _$viewport = $(options.$viewport);\n var _spine = options.spine;\n var _userStyles = options.userStyles;\n var _bookStyles = options.bookStyles;\n var _iframeLoader = options.iframeLoader;\n\n var _currentSpineItem;\n var _isWaitingFrameRender = false;\n var _deferredPageRequest;\n var _fontSize = 100;\n var _fontSelection = 0;\n var _$contentFrame;\n var _navigationLogic;\n var _$el;\n var _$iframe;\n var _$epubHtml;\n var _lastPageRequest = undefined;\n\n var _cfiClassBlacklist = [\"cfi-marker\", \"mo-cfi-highlight\", \"resize-sensor\", \"resize-sensor-expand\", \"resize-sensor-shrink\", \"resize-sensor-inner\", \"js-hypothesis-config\", \"js-hypothesis-embed\"];\n var _cfiElementBlacklist = [\"hypothesis-adder\"];\n var _cfiIdBlacklist = [\"MathJax_Message\", \"MathJax_SVG_Hidden\"];\n\n var _$htmlBody;\n\n var _htmlBodyIsVerticalWritingMode;\n var _htmlBodyIsLTRDirection;\n var _htmlBodyIsLTRWritingMode;\n\n\n var _currentOpacity = -1;\n\n var _lastViewPortSize = {\n width: undefined,\n height: undefined\n };\n\n var _lastBodySize = {\n width: undefined,\n height: undefined\n };\n\n var _paginationInfo = {\n\n visibleColumnCount : 2,\n columnGap : 20,\n columnMaxWidth: 550,\n columnMinWidth: 400,\n spreadCount : 0,\n currentSpreadIndex : 0,\n currentPageIndex: 0,\n columnWidth : undefined,\n pageOffset : 0,\n columnCount: 0\n };\n\n this.render = function(){\n\n var template = Helpers.loadTemplate(\"reflowable_book_frame\", {});\n\n _$el = $(template);\n _$viewport.append(_$el);\n\n var settings = reader.viewerSettings();\n if (!settings || typeof settings.enableGPUHardwareAccelerationCSS3D === \"undefined\")\n {\n //defaults\n settings = new ViewerSettings({});\n }\n if (settings.enableGPUHardwareAccelerationCSS3D) {\n // This fixes rendering issues with WebView (native apps), which clips content embedded in iframes unless GPU hardware acceleration is enabled for CSS rendering.\n _$el.css(\"transform\", \"translateZ(0)\");\n }\n\n // See ReaderView.handleViewportResize\n // var lazyResize = _.debounce(self.onViewportResize, 100);\n // $(window).on(\"resize.ReadiumSDK.reflowableView\", _.bind(lazyResize, self));\n renderIframe();\n\n return self;\n };\n\n function setFrameSizesToRectangle(rectangle) {\n _$contentFrame.css(\"left\", rectangle.left + \"px\");\n _$contentFrame.css(\"top\", rectangle.top + \"px\");\n _$contentFrame.css(\"right\", rectangle.right + \"px\");\n _$contentFrame.css(\"bottom\", rectangle.bottom + \"px\");\n\n }\n\n this.remove = function() {\n\n //$(window).off(\"resize.ReadiumSDK.reflowableView\");\n _$el.remove();\n\n };\n\n this.isReflowable = function() {\n return true;\n };\n\n this.onViewportResize = function() {\n\n if(updateViewportSize()) {\n updatePagination();\n }\n };\n\n var _viewSettings = undefined;\n this.setViewSettings = function(settings, docWillChange) {\n\n _viewSettings = settings;\n\n _paginationInfo.columnGap = settings.columnGap;\n _paginationInfo.columnMaxWidth = settings.columnMaxWidth;\n _paginationInfo.columnMinWidth = settings.columnMinWidth;\n \n _fontSize = settings.fontSize;\n _fontSelection = settings.fontSelection;\n\n updateViewportSize();\n\n if (!docWillChange) {\n updateColumnGap();\n\n updateHtmlFontInfo();\n }\n };\n \n function getFrameDimensions() {\n return {\n width: _$iframe[0].clientWidth,\n height: _$iframe[0].clientHeight\n };\n }\n\n function getPageOffset() {\n if (_paginationInfo.rightToLeft && !_paginationInfo.isVerticalWritingMode) {\n return -_paginationInfo.pageOffset;\n }\n return _paginationInfo.pageOffset;\n }\n\n function getPaginationOffsets() {\n var offset = getPageOffset();\n if (_paginationInfo.isVerticalWritingMode) {\n return {\n top: offset,\n left: 0\n };\n }\n return {\n top: 0,\n left: offset\n };\n }\n\n function renderIframe() {\n if (_$contentFrame) {\n //destroy old contentFrame\n _$contentFrame.remove();\n }\n\n var template = Helpers.loadTemplate(\"reflowable_book_page_frame\", {});\n var $bookFrame = $(template);\n $bookFrame = _$el.append($bookFrame);\n\n _$contentFrame = $(\"#reflowable-content-frame\", $bookFrame);\n\n _$iframe = $(\"#epubContentIframe\", $bookFrame);\n\n _$iframe.css(\"left\", \"\");\n _$iframe.css(\"right\", \"\");\n _$iframe.css(\"position\", \"relative\");\n //_$iframe.css(_spine.isLeftToRight() ? \"left\" : \"right\", \"0px\");\n _$iframe.css(\"overflow\", \"hidden\");\n\n _navigationLogic = new CfiNavigationLogic({\n $iframe: _$iframe,\n frameDimensionsGetter: getFrameDimensions,\n paginationInfo: _paginationInfo,\n paginationOffsetsGetter: getPaginationOffsets,\n classBlacklist: _cfiClassBlacklist,\n elementBlacklist: _cfiElementBlacklist,\n idBlacklist: _cfiIdBlacklist\n });\n }\n\n function loadSpineItem(spineItem) {\n\n if(_currentSpineItem != spineItem) {\n\n //create & append iframe to container frame\n renderIframe();\n if (_currentSpineItem) {\n Globals.logEvent(\"CONTENT_DOCUMENT_UNLOADED\", \"EMIT\", \"reflowable_view.js [ \" + _currentSpineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_UNLOADED, _$iframe, _currentSpineItem);\n }\n\n self.resetCurrentPosition();\n\n _paginationInfo.pageOffset = 0;\n _paginationInfo.currentSpreadIndex = 0;\n _paginationInfo.currentPageIndex = 0;\n _currentSpineItem = spineItem;\n \n // TODO: this is a dirty hack!!\n _currentSpineItem.paginationInfo = _paginationInfo; \n \n _isWaitingFrameRender = true;\n\n var src = _spine.package.resolveRelativeUrl(spineItem.href);\n \n Globals.logEvent(\"CONTENT_DOCUMENT_LOAD_START\", \"EMIT\", \"reflowable_view.js [ \" + spineItem.href + \" -- \" + src + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOAD_START, _$iframe, spineItem);\n\n _$iframe.css(\"opacity\", \"0.01\");\n\n _iframeLoader.loadIframe(_$iframe[0], src, onIFrameLoad, self, {spineItem : spineItem});\n }\n }\n\n function updateHtmlFontInfo() {\n \n if(_$epubHtml) {\n var i = _fontSelection;\n var useDefault = !reader.fonts || !reader.fonts.length || i <= 0 || (i-1) >= reader.fonts.length;\n var font = (useDefault ?\n {} :\n reader.fonts[i - 1]);\n Helpers.UpdateHtmlFontAttributes(_$epubHtml, _fontSize, font, function() {self.applyStyles();});\n }\n }\n\n function updateColumnGap() {\n\n if(_$epubHtml) {\n\n _$epubHtml.css(\"column-gap\", _paginationInfo.columnGap + \"px\");\n }\n }\n\n function onIFrameLoad(success) {\n\n _isWaitingFrameRender = false;\n\n //while we where loading frame new request came\n if(_deferredPageRequest && _deferredPageRequest.spineItem != _currentSpineItem) {\n loadSpineItem(_deferredPageRequest.spineItem);\n return;\n }\n\n if(!success) {\n _$iframe.css(\"opacity\", \"1\");\n _deferredPageRequest = undefined;\n return;\n }\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOADED\", \"EMIT\", \"reflowable_view.js [ \" + _currentSpineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOADED, _$iframe, _currentSpineItem);\n\n var epubContentDocument = _$iframe[0].contentDocument;\n _$epubHtml = $(\"html\", epubContentDocument);\n _$htmlBody = $(\"body\", _$epubHtml);\n\n // TODO: how to address this correctly across all the affected platforms?!\n // Video surface sometimes (depends on the video codec) disappears from CSS column (i.e. reflow page) during playback\n // (audio continues to play normally, but video canvas is invisible).\n // https://github.com/readium/readium-js-viewer/issues/265#issuecomment-73018762\n // ...Meanwhile, reverting https://github.com/readium/readium-js-viewer/issues/239\n // by commenting the code below (which unfortunately only works with some GPU / codec configurations,\n // but actually fails on several other machines!!)\n /*\n if(window.chrome\n && window.navigator.vendor === \"Google Inc.\") // TODO: Opera (WebKit) sometimes suffers from this rendering bug too (depends on the video codec), but unfortunately GPU-accelerated rendering makes the video controls unresponsive!!\n {\n $(\"video\", _$htmlBody).css(\"transform\", \"translateZ(0)\");\n }\n */\n\n _htmlBodyIsVerticalWritingMode = false;\n _htmlBodyIsLTRDirection = true;\n _htmlBodyIsLTRWritingMode = undefined;\n\n var win = _$iframe[0].contentDocument.defaultView || _$iframe[0].contentWindow;\n\n //Helpers.isIframeAlive\n var htmlBodyComputedStyle = win.getComputedStyle(_$htmlBody[0], null);\n if (htmlBodyComputedStyle)\n {\n _htmlBodyIsLTRDirection = htmlBodyComputedStyle.direction === \"ltr\";\n\n var writingMode = undefined;\n if (htmlBodyComputedStyle.getPropertyValue)\n {\n writingMode = htmlBodyComputedStyle.getPropertyValue(\"-webkit-writing-mode\") || htmlBodyComputedStyle.getPropertyValue(\"-moz-writing-mode\") || htmlBodyComputedStyle.getPropertyValue(\"-ms-writing-mode\") || htmlBodyComputedStyle.getPropertyValue(\"-o-writing-mode\") || htmlBodyComputedStyle.getPropertyValue(\"-epub-writing-mode\") || htmlBodyComputedStyle.getPropertyValue(\"writing-mode\");\n }\n else\n {\n writingMode = htmlBodyComputedStyle.webkitWritingMode || htmlBodyComputedStyle.mozWritingMode || htmlBodyComputedStyle.msWritingMode || htmlBodyComputedStyle.oWritingMode || htmlBodyComputedStyle.epubWritingMode || htmlBodyComputedStyle.writingMode;\n }\n\n if (writingMode)\n {\n _htmlBodyIsLTRWritingMode = writingMode.indexOf(\"-lr\") >= 0; // || writingMode.indexOf(\"horizontal-\") >= 0; we need explicit!\n\n if (writingMode.indexOf(\"vertical\") >= 0 || writingMode.indexOf(\"tb-\") >= 0 || writingMode.indexOf(\"bt-\") >= 0)\n {\n _htmlBodyIsVerticalWritingMode = true;\n }\n }\n }\n\n if (_htmlBodyIsLTRDirection)\n {\n if (_$htmlBody[0].getAttribute(\"dir\") === \"rtl\" || _$epubHtml[0].getAttribute(\"dir\") === \"rtl\")\n {\n _htmlBodyIsLTRDirection = false;\n }\n }\n\n // Some EPUBs may not have explicit RTL content direction (via CSS \"direction\" property or @dir attribute) despite having a RTL page progression direction. Readium consequently tweaks the HTML in order to restore the correct block flow in the browser renderer, resulting in the appropriate CSS columnisation (which is used to emulate pagination).\n if (!_spine.isLeftToRight() && _htmlBodyIsLTRDirection && !_htmlBodyIsVerticalWritingMode)\n {\n _$htmlBody[0].setAttribute(\"dir\", \"rtl\");\n _htmlBodyIsLTRDirection = false;\n _htmlBodyIsLTRWritingMode = false;\n }\n\n _paginationInfo.isVerticalWritingMode = _htmlBodyIsVerticalWritingMode; \n\n hideBook();\n _$iframe.css(\"opacity\", \"1\");\n\n updateViewportSize();\n _$epubHtml.css(\"height\", _lastViewPortSize.height + \"px\");\n\n _$epubHtml.css(\"position\", \"relative\");\n _$epubHtml.css(\"margin\", \"0\");\n _$epubHtml.css(\"padding\", \"0\");\n\n _$epubHtml.css(\"column-axis\", (_htmlBodyIsVerticalWritingMode ? \"vertical\" : \"horizontal\"));\n\n //\n // /////////\n // //Columns Debugging\n //\n // _$epubHtml.css(\"column-rule-color\", \"red\");\n // _$epubHtml.css(\"column-rule-style\", \"dashed\");\n // _$epubHtml.css(\"column-rule-width\", \"1px\");\n // _$epubHtml.css(\"background-color\", '#b0c4de');\n //\n // ////\n\n self.applyBookStyles();\n resizeImages();\n\n updateColumnGap();\n\n updateHtmlFontInfo();\n }\n\n this.applyStyles = function() {\n\n Helpers.setStyles(_userStyles.getStyles(), _$el.parent());\n\n //because left, top, bottom, right setting ignores padding of parent container\n //we have to take it to account manually\n var elementMargins = Helpers.Margins.fromElement(_$el);\n setFrameSizesToRectangle(elementMargins.padding);\n\n\n updateViewportSize();\n updatePagination();\n };\n\n this.applyBookStyles = function() {\n\n if(_$epubHtml) { // implies _$iframe\n Helpers.setStyles(_bookStyles.getStyles(), _$iframe[0].contentDocument); //_$epubHtml\n }\n };\n\n function openDeferredElement() {\n\n if(!_deferredPageRequest) {\n return;\n }\n\n var deferredData = _deferredPageRequest;\n _deferredPageRequest = undefined;\n self.openPage(deferredData);\n\n }\n\n function _openPageInternal(pageRequest) {\n\n if(_isWaitingFrameRender) {\n _deferredPageRequest = pageRequest;\n return false;\n }\n\n // if no spine item specified we are talking about current spine item\n if(pageRequest.spineItem && pageRequest.spineItem != _currentSpineItem) {\n _deferredPageRequest = pageRequest;\n loadSpineItem(pageRequest.spineItem);\n return true;\n }\n\n var pageIndex = undefined;\n\n\n if(pageRequest.spineItemPageIndex !== undefined) {\n pageIndex = pageRequest.spineItemPageIndex;\n }\n else if(pageRequest.elementId) {\n pageIndex = _paginationInfo.currentPageIndex + _navigationLogic.getPageIndexDeltaForElementId(pageRequest.elementId);\n }\n else if(pageRequest.firstVisibleCfi && pageRequest.lastVisibleCfi) {\n var firstPageIndex;\n var lastPageIndex;\n try\n {\n firstPageIndex = _navigationLogic.getPageIndexDeltaForCfi(pageRequest.firstVisibleCfi,\n _cfiClassBlacklist,\n _cfiElementBlacklist,\n _cfiIdBlacklist);\n }\n catch (e)\n {\n firstPageIndex = 0;\n console.error(e);\n }\n try\n {\n lastPageIndex = _navigationLogic.getPageIndexDeltaForCfi(pageRequest.lastVisibleCfi,\n _cfiClassBlacklist,\n _cfiElementBlacklist,\n _cfiIdBlacklist);\n }\n catch (e)\n {\n lastPageIndex = 0;\n console.error(e);\n }\n // Go to the page in the middle of the two elements\n pageIndex = _paginationInfo.currentPageIndex + Math.round((firstPageIndex + lastPageIndex) / 2);\n }\n else if(pageRequest.elementCfi) {\n try\n {\n pageIndex = _paginationInfo.currentPageIndex + _navigationLogic.getPageIndexDeltaForCfi(pageRequest.elementCfi,\n _cfiClassBlacklist,\n _cfiElementBlacklist,\n _cfiIdBlacklist);\n }\n catch (e)\n {\n pageIndex = 0;\n console.error(e);\n }\n }\n else if(pageRequest.firstPage) {\n pageIndex = 0;\n }\n else if(pageRequest.lastPage) {\n pageIndex = _paginationInfo.columnCount - 1;\n }\n else {\n console.debug(\"No criteria in pageRequest\");\n pageIndex = 0;\n }\n\n if (pageIndex < 0 || pageIndex > _paginationInfo.columnCount) {\n console.log('Illegal pageIndex value: ', pageIndex, 'column count is ', _paginationInfo.columnCount);\n pageIndex = pageIndex < 0 ? 0 : _paginationInfo.columnCount;\n }\n\n _paginationInfo.currentPageIndex = pageIndex;\n _paginationInfo.currentSpreadIndex = Math.floor(pageIndex / _paginationInfo.visibleColumnCount) ;\n onPaginationChanged(pageRequest.initiator, pageRequest.spineItem, pageRequest.elementId);\n return true;\n }\n\n this.openPage = function(pageRequest) {\n // Go to request page, it will save the new position in onPaginationChanged\n _openPageInternal(pageRequest);\n // Save it for when pagination is updated\n _lastPageRequest = pageRequest;\n };\n\n this.resetCurrentPosition = function() {\n _lastPageRequest = undefined;\n };\n\n this.saveCurrentPosition = function() {\n // If there's a deferred page request, there's no point in saving the current position\n // as it's going to change soon\n if (_deferredPageRequest) {\n return;\n }\n\n var _firstVisibleCfi = self.getFirstVisibleCfi();\n var _lastVisibleCfi = self.getLastVisibleCfi();\n _lastPageRequest = new PageOpenRequest(_currentSpineItem, self);\n _lastPageRequest.setFirstAndLastVisibleCfi(_firstVisibleCfi.contentCFI, _lastVisibleCfi.contentCFI);\n };\n\n this.restoreCurrentPosition = function() {\n if (_lastPageRequest) {\n _openPageInternal(_lastPageRequest);\n }\n };\n\n function redraw() {\n\n var offsetVal = -_paginationInfo.pageOffset + \"px\";\n\n if (_htmlBodyIsVerticalWritingMode)\n {\n _$epubHtml.css(\"top\", offsetVal);\n }\n else\n {\n var ltr = _htmlBodyIsLTRDirection || _htmlBodyIsLTRWritingMode;\n\n _$epubHtml.css(\"left\", ltr ? offsetVal : \"\");\n _$epubHtml.css(\"right\", !ltr ? offsetVal : \"\");\n }\n\n showBook(); // as it's no longer hidden by shifting the position\n }\n\n function updateViewportSize() {\n\n var newWidth = _$contentFrame.width();\n \n // Ensure that the new viewport width is always even numbered\n // this is to prevent a rendering inconsistency between browsers when odd-numbered bounds are used for CSS columns\n // See https://github.com/readium/readium-shared-js/issues/37\n newWidth -= newWidth % 2;\n\n var newHeight = _$contentFrame.height();\n\n if(_lastViewPortSize.width !== newWidth || _lastViewPortSize.height !== newHeight){\n\n _lastViewPortSize.width = newWidth;\n _lastViewPortSize.height = newHeight;\n return true;\n }\n\n return false;\n }\n\n function onPaginationChanged_(initiator, paginationRequest_spineItem, paginationRequest_elementId) {\n _paginationInfo.currentPageIndex = _paginationInfo.currentSpreadIndex * _paginationInfo.visibleColumnCount;\n _paginationInfo.pageOffset = (_paginationInfo.columnWidth + _paginationInfo.columnGap) * _paginationInfo.visibleColumnCount * _paginationInfo.currentSpreadIndex;\n \n redraw();\n\n _.defer(function () {\n\n if (_lastPageRequest == undefined) {\n self.saveCurrentPosition();\n }\n \n Globals.logEvent(\"InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED\", \"EMIT\", \"reflowable_view.js\");\n self.emit(Globals.InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED, {\n paginationInfo: self.getPaginationInfo(),\n initiator: initiator,\n spineItem: paginationRequest_spineItem,\n elementId: paginationRequest_elementId\n });\n });\n }\n var onPaginationChanged = _.debounce(onPaginationChanged_, 100);\n\n this.openPagePrev = function (initiator) {\n\n if(!_currentSpineItem) {\n return;\n }\n\n if(_paginationInfo.currentSpreadIndex > 0) {\n // Page will change, the current position is not valid any more\n // Reset it so it's saved next time onPaginationChanged is called\n this.resetCurrentPosition();\n _paginationInfo.currentSpreadIndex--;\n onPaginationChanged(initiator, _currentSpineItem);\n }\n else {\n\n var prevSpineItem = _spine.prevItem(_currentSpineItem, true);\n if(prevSpineItem) {\n\n var pageRequest = new PageOpenRequest(prevSpineItem, initiator);\n pageRequest.setLastPage();\n self.openPage(pageRequest);\n }\n }\n };\n\n this.openPageNext = function (initiator) {\n\n if(!_currentSpineItem) {\n return;\n }\n\n if(_paginationInfo.currentSpreadIndex < _paginationInfo.spreadCount - 1) {\n // Page will change, the current position is not valid any more\n // Reset it so it's saved next time onPaginationChanged is called\n this.resetCurrentPosition();\n _paginationInfo.currentSpreadIndex++;\n onPaginationChanged(initiator, _currentSpineItem);\n }\n else {\n\n var nextSpineItem = _spine.nextItem(_currentSpineItem, true);\n if(nextSpineItem) {\n\n var pageRequest = new PageOpenRequest(nextSpineItem, initiator);\n pageRequest.setFirstPage();\n self.openPage(pageRequest);\n }\n }\n };\n\n\n function updatePagination_() {\n\n // At 100% font-size = 16px (on HTML, not body or descendant markup!)\n var MAXW = _paginationInfo.columnMaxWidth;\n var MINW = _paginationInfo.columnMinWidth;\n\n var isDoublePageSyntheticSpread = Helpers.deduceSyntheticSpread(_$viewport, _currentSpineItem, _viewSettings);\n\n var forced = (isDoublePageSyntheticSpread === false) || (isDoublePageSyntheticSpread === true);\n // excludes 0 and 1 falsy/truthy values which denote non-forced result\n\n// console.debug(\"isDoublePageSyntheticSpread: \" + isDoublePageSyntheticSpread);\n// console.debug(\"forced: \" + forced);\n//\n if (isDoublePageSyntheticSpread === 0)\n {\n isDoublePageSyntheticSpread = 1; // try double page, will shrink if doesn't fit\n// console.debug(\"TRYING SPREAD INSTEAD OF SINGLE...\");\n }\n\n _paginationInfo.visibleColumnCount = isDoublePageSyntheticSpread ? 2 : 1;\n\n if (_htmlBodyIsVerticalWritingMode)\n {\n MAXW *= 2;\n isDoublePageSyntheticSpread = false;\n forced = true;\n _paginationInfo.visibleColumnCount = 1;\n// console.debug(\"Vertical Writing Mode => single CSS column, but behaves as if two-page spread\");\n }\n\n if(!_$epubHtml) {\n return;\n }\n\n hideBook(); // shiftBookOfScreen();\n\n // \"borderLeft\" is the blank vertical strip (e.g. 40px wide) where the left-arrow button resides, i.e. previous page command\n var borderLeft = parseInt(_$viewport.css(\"border-left-width\"));\n \n // The \"columnGap\" separates two consecutive columns in a 2-page synthetic spread (e.g. 60px wide).\n // This middle gap (blank vertical strip) actually corresponds to the left page's right-most margin, combined with the right page's left-most margin.\n // So, \"adjustedGapLeft\" is half of the center strip... \n var adjustedGapLeft = _paginationInfo.columnGap/2;\n // ...but we include the \"borderLeft\" strip to avoid wasting valuable rendering real-estate: \n adjustedGapLeft = Math.max(0, adjustedGapLeft-borderLeft);\n // Typically, \"adjustedGapLeft\" is zero because the space available for the 'previous page' button is wider than half of the column gap!\n\n // \"borderRight\" is the blank vertical strip (e.g. 40px wide) where the right-arrow button resides, i.e. next page command\n var borderRight = parseInt(_$viewport.css(\"border-right-width\"));\n \n // The \"columnGap\" separates two consecutive columns in a 2-page synthetic spread (e.g. 60px wide).\n // This middle gap (blank vertical strip) actually corresponds to the left page's right-most margin, combined with the right page's left-most margin.\n // So, \"adjustedGapRight\" is half of the center strip... \n var adjustedGapRight = _paginationInfo.columnGap/2;\n // ...but we include the \"borderRight\" strip to avoid wasting valuable rendering real-estate:\n adjustedGapRight = Math.max(0, adjustedGapRight-borderRight);\n // Typically, \"adjustedGapRight\" is zero because the space available for the 'next page' button is wider than half of the column gap! (in other words, the right-most and left-most page margins are fully included in the strips reserved for the arrow buttons)\n\n // Note that \"availableWidth\" does not contain \"borderLeft\" and \"borderRight\" (.width() excludes the padding and border and margin in the CSS box model of div#epub-reader-frame) \n var availableWidth = _$viewport.width();\n \n // ...So, we substract the page margins and button spacing to obtain the width available for actual text:\n var textWidth = availableWidth - adjustedGapLeft - adjustedGapRight;\n \n // ...and if we have 2 pages / columns, then we split the text width in half: \n if (isDoublePageSyntheticSpread)\n {\n textWidth = (textWidth - _paginationInfo.columnGap) * 0.5;\n }\n\n var filler = 0;\n\n // Now, if the resulting width actually available for document content is greater than the maximum allowed value, we create even more left+right blank space to \"compress\" the horizontal run of text. \n if (textWidth > MAXW)\n {\n var eachPageColumnReduction = textWidth - MAXW;\n \n // if we have a 2-page synthetic spread, then we \"trim\" left and right sides by adding \"eachPageColumnReduction\" blank space.\n // if we have a single page / column, then this loss of text real estate is shared between right and left sides \n filler = Math.floor(eachPageColumnReduction * (isDoublePageSyntheticSpread ? 1 : 0.5));\n }\n\n // Let's check whether a narrow two-page synthetic spread (impeded reabability) can be reduced down to a single page / column:\n else if (!forced && textWidth < MINW && isDoublePageSyntheticSpread)\n {\n isDoublePageSyntheticSpread = false;\n _paginationInfo.visibleColumnCount = 1;\n\n textWidth = availableWidth - adjustedGapLeft - adjustedGapRight;\n if (textWidth > MAXW)\n {\n filler = Math.floor((textWidth - MAXW) * 0.5);\n }\n }\n \n _$el.css({\"left\": (filler+adjustedGapLeft + \"px\"), \"right\": (filler+adjustedGapRight + \"px\")});\n \n updateViewportSize(); //_$contentFrame ==> _lastViewPortSize\n\n var resultingColumnWidth = _$el.width();\n if (isDoublePageSyntheticSpread) {\n resultingColumnWidth = (resultingColumnWidth - _paginationInfo.columnGap) / 2;\n }\n resultingColumnWidth = Math.floor(resultingColumnWidth);\n if ((resultingColumnWidth-1) > MAXW) {\n console.debug(\"resultingColumnWidth > MAXW ! \" + resultingColumnWidth + \" > \" + MAXW);\n }\n \n\n _$iframe.css(\"width\", _lastViewPortSize.width + \"px\");\n _$iframe.css(\"height\", _lastViewPortSize.height + \"px\");\n\n _$epubHtml.css(\"height\", _lastViewPortSize.height + \"px\");\n\n // below min- max- are required in vertical writing mode (height is not enough, in some cases...weird!)\n _$epubHtml.css(\"min-height\", _lastViewPortSize.height + \"px\");\n _$epubHtml.css(\"max-height\", _lastViewPortSize.height + \"px\");\n\n //normalise spacing to avoid interference with column-isation\n _$epubHtml.css('margin', 0);\n _$epubHtml.css('padding', 0);\n _$epubHtml.css('border', 0);\n\n // In order for the ResizeSensor to work, the content body needs to be \"positioned\".\n // This may be an issue since it changes the assumptions some content authors might make when positioning their content.\n _$htmlBody.css('position', 'relative');\n\n _$htmlBody.css('margin', 0);\n _$htmlBody.css('padding', 0);\n\n _paginationInfo.rightToLeft = _spine.isRightToLeft();\n\n _paginationInfo.columnWidth = Math.round(((_htmlBodyIsVerticalWritingMode ? _lastViewPortSize.height : _lastViewPortSize.width) - _paginationInfo.columnGap * (_paginationInfo.visibleColumnCount - 1)) / _paginationInfo.visibleColumnCount);\n\n var useColumnCountNotWidth = _paginationInfo.visibleColumnCount > 1; // column-count == 1 does not work in Chrome, and is not needed anyway (HTML width is full viewport width, no Firefox video flickering)\n if (useColumnCountNotWidth) {\n _$epubHtml.css(\"width\", _lastViewPortSize.width + \"px\");\n _$epubHtml.css(\"column-width\", \"auto\");\n _$epubHtml.css(\"column-count\", _paginationInfo.visibleColumnCount);\n } else {\n _$epubHtml.css(\"width\", (_htmlBodyIsVerticalWritingMode ? _lastViewPortSize.width : _paginationInfo.columnWidth) + \"px\");\n _$epubHtml.css(\"column-count\", \"auto\");\n _$epubHtml.css(\"column-width\", _paginationInfo.columnWidth + \"px\");\n }\n\n _$epubHtml.css(\"column-fill\", \"auto\");\n\n _$epubHtml.css({left: \"0\", right: \"0\", top: \"0\"});\n\n Helpers.triggerLayout(_$iframe);\n\n var dim = (_htmlBodyIsVerticalWritingMode ? _$epubHtml[0].scrollHeight : _$epubHtml[0].scrollWidth);\n if (dim == 0) {\n console.error(\"Document dimensions zero?!\");\n }\n\n _paginationInfo.columnCount = (dim + _paginationInfo.columnGap) / (_paginationInfo.columnWidth + _paginationInfo.columnGap);\n _paginationInfo.columnCount = Math.round(_paginationInfo.columnCount);\n if (_paginationInfo.columnCount == 0) {\n console.error(\"Column count zero?!\");\n }\n\n var totalGaps = (_paginationInfo.columnCount-1) * _paginationInfo.columnGap;\n var colWidthCheck = (dim - totalGaps) / _paginationInfo.columnCount;\n colWidthCheck = Math.round(colWidthCheck);\n\n if (colWidthCheck > _paginationInfo.columnWidth)\n {\n console.debug(\"ADJUST COLUMN\");\n console.log(_paginationInfo.columnWidth);\n console.log(colWidthCheck);\n\n _paginationInfo.columnWidth = colWidthCheck;\n }\n\n _paginationInfo.spreadCount = Math.ceil(_paginationInfo.columnCount / _paginationInfo.visibleColumnCount);\n\n if(_paginationInfo.currentSpreadIndex >= _paginationInfo.spreadCount) {\n _paginationInfo.currentSpreadIndex = _paginationInfo.spreadCount - 1;\n }\n\n if(_deferredPageRequest) {\n\n //if there is a request for specific page we get here\n openDeferredElement();\n }\n else {\n\n // we get here on resizing the viewport\n if (_lastPageRequest) {\n // Make sure we stay on the same page after the content or the viewport \n // has been resized\n _paginationInfo.currentPageIndex = 0; // current page index is not stable, reset it\n self.restoreCurrentPosition();\n } else {\n onPaginationChanged(self, _currentSpineItem); // => redraw() => showBook(), so the trick below is not needed \n }\n\n //onPaginationChanged(self, _currentSpineItem); // => redraw() => showBook(), so the trick below is not needed \n\n // //We do this to force re-rendering of the document in the iframe.\n // //There is a bug in WebView control with right to left columns layout - after resizing the window html document\n // //is shifted in side the containing div. Hiding and showing the html element puts document in place.\n // _$epubHtml.hide();\n // setTimeout(function() {\n // _$epubHtml.show();\n // onPaginationChanged(self, _currentSpineItem); // => redraw() => showBook()\n // }, 50);\n\n }\n\n // Only initializes the resize sensor once the content has been paginated once,\n // to avoid the pagination process to trigger a resize event during its first\n // execution, provoking a flicker\n initResizeSensor();\n }\n var updatePagination = _.debounce(updatePagination_, 100);\n\n function initResizeSensor() {\n var bodyElement = _$htmlBody[0];\n if (bodyElement.resizeSensor) {\n return;\n }\n\n // We need to make sure the content has indeed be resized, especially\n // the first time it is triggered\n _lastBodySize.width = $(bodyElement).width();\n _lastBodySize.height = $(bodyElement).height();\n\n bodyElement.resizeSensor = new ResizeSensor(bodyElement, function() {\n \n var newBodySize = {\n width: $(bodyElement).width(),\n height: $(bodyElement).height()\n };\n\n console.debug(\"ReflowableView content resized ...\", newBodySize.width, newBodySize.height, _currentSpineItem.idref);\n \n if (newBodySize.width != _lastBodySize.width || newBodySize.height != _lastBodySize.height) {\n _lastBodySize.width = newBodySize.width;\n _lastBodySize.height = newBodySize.height;\n \n console.debug(\"... updating pagination.\");\n\n updatePagination();\n } else {\n console.debug(\"... ignored (identical dimensions).\");\n }\n });\n }\n \n// function shiftBookOfScreen() {\n//\n// if(_spine.isLeftToRight()) {\n// _$epubHtml.css(\"left\", (_lastViewPortSize.width + 1000) + \"px\");\n// }\n// else {\n// _$epubHtml.css(\"right\", (_lastViewPortSize.width + 1000) + \"px\");\n// }\n// }\n\n function hideBook()\n {\n if (_currentOpacity != -1) return; // already hidden\n\n // css('opacity') produces invalid result in Firefox, when iframes are involved and when is called\n // directly after set, i.e. after showBook(), see: https://github.com/jquery/jquery/issues/2622\n //_currentOpacity = $epubHtml.css('opacity');\n _currentOpacity = _$epubHtml[0].style.opacity;\n _$epubHtml.css('opacity', \"0\");\n }\n\n function showBook()\n {\n if (_currentOpacity != -1)\n {\n _$epubHtml.css('opacity', _currentOpacity);\n }\n _currentOpacity = -1;\n }\n\n this.getPaginationInfo = function() {\n\n var paginationInfo = new CurrentPagesInfo(_spine, false);\n\n if(!_currentSpineItem) {\n return paginationInfo;\n }\n\n var pageIndexes = getOpenPageIndexes();\n\n for(var i = 0, count = pageIndexes.length; i < count; i++) {\n\n paginationInfo.addOpenPage(pageIndexes[i], _paginationInfo.columnCount, _currentSpineItem.idref, _currentSpineItem.index);\n }\n\n return paginationInfo;\n\n };\n\n function getOpenPageIndexes() {\n\n var indexes = [];\n\n var currentPage = _paginationInfo.currentSpreadIndex * _paginationInfo.visibleColumnCount;\n\n for(var i = 0; i < _paginationInfo.visibleColumnCount && (currentPage + i) < _paginationInfo.columnCount; i++) {\n\n indexes.push(currentPage + i);\n }\n\n return indexes;\n\n }\n\n //we need this styles for css columnizer not to chop big images\n function resizeImages() {\n\n if(!_$epubHtml) {\n return;\n }\n\n var $elem;\n var height;\n var width;\n\n $('img, svg', _$epubHtml).each(function(){\n\n $elem = $(this);\n\n // if we set max-width/max-height to 100% columnizing engine chops images embedded in the text\n // (but not if we set it to 99-98%) go figure.\n // TODO: CSS min-w/h is content-box, not border-box (does not take into account padding + border)? => images may still overrun?\n $elem.css('max-width', '98%');\n $elem.css('max-height', '98%');\n\n if(!$elem.css('height')) {\n $elem.css('height', 'auto');\n }\n\n if(!$elem.css('width')) {\n $elem.css('width', 'auto');\n }\n\n });\n }\n\n this.bookmarkCurrentPage = function() {\n\n if(!_currentSpineItem) {\n\n return undefined;\n }\n\n return self.getFirstVisibleCfi();\n };\n\n this.getLoadedSpineItems = function() {\n return [_currentSpineItem];\n };\n\n this.getElementByCfi = function(spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist) {\n\n if(spineItemIdref != _currentSpineItem.idref) {\n console.warn(\"spine item is not loaded\");\n return undefined;\n }\n\n return _navigationLogic.getElementByCfi(cfi, classBlacklist, elementBlacklist, idBlacklist);\n };\n\n this.getElementById = function(spineItemIdref, id) {\n\n if(spineItemIdref != _currentSpineItem.idref) {\n console.error(\"spine item is not loaded\");\n return undefined;\n }\n\n return _navigationLogic.getElementById(id);\n };\n\n this.getElement = function(spineItemIdref, selector) {\n\n if(spineItemIdref != _currentSpineItem.idref) {\n console.warn(\"spine item is not loaded\");\n return undefined;\n }\n\n return _navigationLogic.getElement(selector);\n };\n\n this.getFirstVisibleMediaOverlayElement = function() {\n\n return _navigationLogic.getFirstVisibleMediaOverlayElement();\n };\n\n this.insureElementVisibility = function(spineItemId, element, initiator) {\n\n var $element = $(element);\n if(_navigationLogic.isElementVisible($element))\n {\n return;\n }\n\n var elementCfi = _navigationLogic.getCfiForElement(element);\n\n if (!elementCfi)\n {\n return;\n }\n\n var openPageRequest = new PageOpenRequest(_currentSpineItem, initiator);\n openPageRequest.setElementCfi(elementCfi);\n\n var id = element.id;\n if (!id)\n {\n id = element.getAttribute(\"id\");\n }\n\n if (id)\n {\n openPageRequest.setElementId(id);\n }\n\n self.openPage(openPageRequest);\n };\n\n this.getVisibleElementsWithFilter = function(filterFunction, includeSpineItem) {\n\n var elements = _navigationLogic.getVisibleElementsWithFilter(null, filterFunction);\n\n if (includeSpineItem) {\n return [{elements: elements, spineItem:_currentSpineItem}];\n } else {\n return elements;\n }\n\n };\n\n this.getVisibleElements = function(selector, includeSpineItem) {\n\n var elements = _navigationLogic.getAllVisibleElementsWithSelector(selector);\n\n if (includeSpineItem) {\n return [{elements: elements, spineItem:_currentSpineItem}];\n } else {\n return elements;\n }\n\n };\n\n this.isElementVisible = function ($element) {\n\n return _navigationLogic.isElementVisible($element);\n\n };\n\n this.getElements = function(spineItemIdref, selector) {\n\n if(spineItemIdref != _currentSpineItem.idref) {\n console.warn(\"spine item is not loaded\");\n return undefined;\n }\n\n return _navigationLogic.getElements(selector);\n };\n\n this.isNodeFromRangeCfiVisible = function (spineIdref, partialCfi) {\n if (_currentSpineItem.idref === spineIdref) {\n return _navigationLogic.isNodeFromRangeCfiVisible(partialCfi);\n }\n return undefined;\n };\n\n this.isVisibleSpineItemElementCfi = function (spineIdRef, partialCfi) {\n if (_navigationLogic.isRangeCfi(partialCfi)) {\n return this.isNodeFromRangeCfiVisible(spineIdRef, partialCfi);\n }\n var $elementFromCfi = this.getElementByCfi(spineIdRef, partialCfi);\n return ($elementFromCfi && this.isElementVisible($elementFromCfi));\n };\n\n this.getNodeRangeInfoFromCfi = function (spineIdRef, partialCfi) {\n if (spineIdRef != _currentSpineItem.idref) {\n console.warn(\"spine item is not loaded\");\n return undefined;\n }\n\n return _navigationLogic.getNodeRangeInfoFromCfi(partialCfi);\n };\n\n function createBookmarkFromCfi(cfi){\n return new BookmarkData(_currentSpineItem.idref, cfi);\n }\n\n this.getFirstVisibleCfi = function () {\n return createBookmarkFromCfi(_navigationLogic.getFirstVisibleCfi());\n };\n\n this.getLastVisibleCfi = function () {\n return createBookmarkFromCfi(_navigationLogic.getLastVisibleCfi());\n };\n\n this.getStartCfi = function () {\n return createBookmarkFromCfi(_navigationLogic.getStartCfi());\n };\n\n this.getEndCfi = function () {\n return createBookmarkFromCfi(_navigationLogic.getEndCfi());\n };\n\n this.getDomRangeFromRangeCfi = function (rangeCfi, rangeCfi2, inclusive) {\n if (rangeCfi2 && rangeCfi.idref !== rangeCfi2.idref) {\n console.error(\"getDomRangeFromRangeCfi: both CFIs must be scoped under the same spineitem idref\");\n return undefined;\n }\n return _navigationLogic.getDomRangeFromRangeCfi(rangeCfi.contentCFI, rangeCfi2? rangeCfi2.contentCFI: null, inclusive);\n };\n\n this.getRangeCfiFromDomRange = function (domRange) {\n return createBookmarkFromCfi(_navigationLogic.getRangeCfiFromDomRange(domRange));\n };\n\n this.getVisibleCfiFromPoint = function (x, y, precisePoint) {\n return createBookmarkFromCfi(_navigationLogic.getVisibleCfiFromPoint(x, y, precisePoint));\n };\n\n this.getRangeCfiFromPoints = function(startX, startY, endX, endY) {\n return createBookmarkFromCfi(_navigationLogic.getRangeCfiFromPoints(startX, startY, endX, endY));\n };\n\n this.getCfiForElement = function(element) {\n return createBookmarkFromCfi(_navigationLogic.getCfiForElement(element));\n };\n\n this.getElementFromPoint = function(x, y) {\n return _navigationLogic.getElementFromPoint(x,y);\n };\n\n this.getNearestCfiFromElement = function(element) {\n return createBookmarkFromCfi(_navigationLogic.getNearestCfiFromElement(element));\n };\n};\n return ReflowableView;\n});\n\n","// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/style',[], function() {\n/**\n * @class Models.Style\n * @constructor\n * @param selector\n * @param declarations\n */\nvar Style = function(selector, declarations) {\n\n /**\n * Initializing the selector\n *\n * @property selector\n * @type \n */\n\n this.selector = selector;\n\n /**\n * Initializing the declarations\n *\n * @property selector\n * @type \n */\n\n this.declarations = declarations;\n\n /**\n * Set the declarations array\n *\n * @method setDeclarations\n * @param {Object} declarations\n */\n\n this.setDeclarations = function(declarations) {\n\n for(var prop in declarations) {\n if(declarations.hasOwnProperty(prop)) {\n this.declarations[prop] = declarations[prop];\n }\n }\n\n }\n};\n return Style;\n});\n\n"," // Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/style_collection',[\"./style\"], function(Style) {\n\n/**\n *\n * @class Models.StyleCollection\n * @return StyleCollection\n * @constructor\n */\n\nvar StyleCollection = function() {\n\n var _styles = [];\n\n /**\n * Clears the collection.\n *\n * @method clear\n */\n\n this.clear = function() {\n _styles.length = 0;\n\n };\n\n /**\n * Finds the style of a selected item\n *\n * @method findStyle\n * @param selector\n * @return {Models.Style}\n */\n\n this.findStyle = function(selector) {\n\n var count = _styles.length;\n for(var i = 0; i < count; i++) {\n if(_styles[i].selector === selector) {\n return _styles[i];\n }\n }\n\n return undefined;\n };\n\n /**\n * Adds a style to the collection\n *\n * @method addStyle\n * @param selector\n * @param declarations\n * @return {Models.Style}\n */\n\n this.addStyle = function(selector, declarations) {\n\n var style = this.findStyle(selector);\n\n if(style) {\n style.setDeclarations(declarations);\n }\n else {\n style = new Style(selector, declarations);\n _styles.push(style);\n }\n\n return style;\n };\n\n /**\n * Removes a style from the collection\n *\n * @method addStyle\n * @param selector\n */\n\n this.removeStyle = function(selector) {\n \n var count = _styles.length;\n\n for(var i = 0; i < count; i++) {\n\n if(_styles[i].selector === selector) {\n _styles.splice(i, 1);\n return;\n }\n }\n };\n\n /**\n * Gets all styles\n *\n * @method getStyles\n * @return {Array}\n */\n\n this.getStyles = function() {\n return _styles;\n };\n\n /**\n * Resets the styles\n *\n * @method resetStyleValues\n */\n\n this.resetStyleValues = function() {\n\n var count = _styles.length;\n\n for(var i = 0; i < count; i++) {\n\n var style = _styles[i];\n var declarations = style.declarations;\n\n for(var prop in declarations) {\n if(declarations.hasOwnProperty(prop)) {\n declarations[prop] = '';\n }\n }\n }\n }\n\n};\n return StyleCollection;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\ndefine('readium_shared_js/models/switches',[\"jquery\", \"underscore\"], function($, _) {\n/** \n * Switches in the epub publication.\n * \n * @class Models.Switches\n * @constructor\n */\nvar Switches = function() {\n\n};\n\n// Description: Parse the epub \"switch\" tags and hide\n// cases that are not supported\n\n/**\n *\n * Static Switches.apply method.\n * \n * @method Switches.apply\n * @param dom\n */\n\nSwitches.apply = function(dom) {\n\n function isSupported(caseNode) {\n\n var ns = caseNode.attributes[\"required-namespace\"];\n if(!ns) {\n // the namespace was not specified, that should\n // never happen, we don't support it then\n console.log(\"Encountered a case statement with no required-namespace\");\n return false;\n }\n // all the xmlns that readium is known to support\n // TODO this is going to require maintenance\n var supportedNamespaces = [\"http://www.w3.org/1998/Math/MathML\"];\n return _.include(supportedNamespaces, ns.value);\n }\n\n var getQuery = ((window.navigator.userAgent.indexOf(\"Trident\") > 0) || (window.navigator.userAgent.indexOf(\"Edge\") > 0))\n ? function (elementName) { return 'epub\\\\:' + elementName; }\n : function (elementName) { return elementName; };\n\n _.each(dom.querySelectorAll(getQuery('switch')), function(switchNode) {\n\n // keep track of whether or now we found one\n var found = false;\n\n _.each(switchNode.querySelectorAll(getQuery('case')), function(caseNode) {\n\n if( !found && isSupported(caseNode) ) {\n found = true; // we found the node, don't remove it\n }\n else {\n $(caseNode).remove(); // remove the node from the dom\n }\n\n });\n\n if (found) {\n\n // if we found a supported case, remove the default\n _.each(switchNode.querySelectorAll(getQuery('default')), function(defaultNode) {\n $(defaultNode).remove();\n });\n\n }\n\n });\n};\n return Switches;\n});\n\n","// LauncherOSX\n//\n// Created by Boris Schneiderman.\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/trigger',[\"jquery\", \"../helpers\"], function($, Helpers) {\n/**\n * Trigger in an epub publication.\n *\n * @class Models.Trigger\n * @constructor\n * @param domNode\n */\n\nvar Trigger = function(domNode) {\n\n var $el = $(domNode);\n \n /**\n * epub trigger action\n *\n * @property action\n * @type String\n */\n\n this.action = $el.attr(\"action\");\n \n /**\n * epub trigger ref\n *\n * @property ref\n * @type String\n */\n\n this.ref = $el.attr(\"ref\");\n \n /**\n * epub trigger event\n *\n * @property event\n * @type String\n */\n\n this.event = $el.attr(\"ev:event\");\n \n /**\n * epub trigger observer\n *\n * @property observer\n * @type String\n */\n\n this.observer = $el.attr(\"ev:observer\");\n this.ref = $el.attr(\"ref\");\n};\n\n/**\n * Static register method\n *\n * @method register\n * @param dom\n */\nTrigger.register = function(dom) {\n $('trigger', dom).each(function() {\n var trigger = new Trigger(this);\n trigger.subscribe(dom);\n });\n};\n\n/**\n * Prototype subscribe method\n *\n * @method subscribe\n * @param dom\n */\n\nTrigger.prototype.subscribe = function(dom) {\n \n var selector = \"#\" + this.observer;\n var that = this;\n $(selector, dom).on(this.event, function() {\n return that.execute(dom);\n });\n};\n\n/**\n * Prototype execute method\n *\n * @method execute\n * @param dom\n */\n\nTrigger.prototype.execute = function(dom) {\n\n var $target = $( \"#\" + Helpers.escapeJQuerySelector(this.ref), dom);\n switch(this.action)\n {\n case \"show\":\n $target.css(\"visibility\", \"visible\");\n break;\n case \"hide\":\n $target.css(\"visibility\", \"hidden\");\n break;\n case \"play\":\n $target[0].currentTime = 0;\n $target[0].play();\n break;\n case \"pause\":\n $target[0].pause();\n break;\n case \"resume\":\n $target[0].play();\n break;\n case \"mute\":\n $target[0].muted = true;\n break;\n case \"unmute\":\n $target[0].muted = false;\n break;\n default:\n console.log(\"do not no how to handle trigger \" + this.action);\n return null;\n }\n return false; // do not propagate click event; it was already handled\n\n};\n\n return Trigger;\n});\n\n","// Created by Juan Corona\n// Copyright (c) 2016 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/models/node_range_info',[],function () {\n\n /**\n * @class Models.NodeRangePositionInfo\n * @constructor\n * @param {Node} node The actual DOM node\n * @param {Number} offest The position offsetf for the node\n */\n var NodeRangePositionInfo = function (node, offset) {\n\n /**\n * The actual DOM node\n * @property node\n * @type Node\n */\n this.node = node;\n\n /**\n * The position offsetf for the node\n * @property offset\n * @type Number\n */\n this.offset = offset;\n\n };\n\n /**\n * @class Models.NodeRangeInfo\n * @constructor\n * @param {ClientRect} clientRect\n * @param {Models.NodeRangePositionInfo} startInfo\n * @param {Models.NodeRangePositionInfo} endInfo\n */\n var NodeRangeInfo = function (clientRect, startInfo, endInfo) {\n\n var self = this;\n /**\n * Client rectangle information for the range content bounds\n * @property clientRect\n * @type ClientRect\n */\n this.clientRect = clientRect;\n\n /**\n * Node and position information providing where and which node the range starts with\n * @property startInfo\n * @type Models.NodeRangePositionInfo\n */\n this.startInfo = startInfo;\n\n /**\n * Node and position information providing where and which node the range ends with\n * @property endInfo\n * @type Models.NodeRangePositionInfo\n */\n this.endInfo = endInfo;\n\n\n this.setStartInfo = function (info) {\n self.startInfo = new NodeRangePositionInfo(info);\n return self;\n };\n\n this.setEndInfo = function (info) {\n self.endInfo = new NodeRangePositionInfo(info);\n return self;\n };\n };\n\n return NodeRangeInfo;\n});\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/external_agent_support',[\"../globals\", \"underscore\"], function(Globals, _) {\n /**\n * This module helps external agents that interact with content documents from\n * the level of the iframe browsing context:\n *\n * - By providing a means of identifying the content through metadata\n * that's brought down from the package document level.\n *\n * - By providing a direct link (bringing down the shareable URL) that could be used\n * to load the content in the proper context with the reader app instead of the actual\n * content document asset path.\n *\n * - By responding to an event when the external agent wants to bring a\n * specific range of content into view.\n *\n * @param {Views.ReaderView} reader The Reader instance\n * @constructor\n */\n var ExternalAgentSupport = function(reader) {\n\n var contentDocumentStates = {};\n var contentDocuments = {};\n\n Globals.on(Globals.Events.PLUGINS_LOADED, function() {\n // Disable the AMD environment since it's not needed anymore at this point.\n // This is done because external agents with their own module systems (Browserify)\n // might load third-party scripts that are in the format of\n // UMD (Universal Module Definition),\n // and will mistakenly try to use Readium's AMD shim, almond.js, or require.js\n if (window.define && window.define.amd) {\n delete window.define.amd;\n }\n });\n\n function appendMetaTag(_document, property, content) {\n var tag = _document.createElement('meta');\n tag.setAttribute('name', property);\n tag.setAttribute('content', content);\n _document.head.appendChild(tag);\n }\n\n function injectDublinCoreResourceIdentifiers(contentDocument, spineItem) {\n var renditionIdentifier = reader.metadata().identifier; // the package unique identifier\n var spineItemIdentifier = spineItem.idref; // use the spine item id as an identifier too\n if (renditionIdentifier && spineItemIdentifier) {\n appendMetaTag(contentDocument, 'dc.relation.ispartof', renditionIdentifier);\n appendMetaTag(contentDocument, 'dc.identifier', spineItemIdentifier);\n }\n }\n\n function determineCanonicalLinkHref(contentWindow) {\n // Only grab the href if there's no potential cross-domain violation\n // and the reader application URL has a CFI value in a 'goto' query param.\n var isSameDomain = Object.keys(contentWindow).indexOf('document') !== -1;\n if (isSameDomain && contentWindow.location.search.match(/goto=.*cfi/i)) {\n return contentWindow.location.href.split(\"#\")[0];\n }\n }\n\n function getContentDocumentCanonicalLink(contentDocument) {\n var contentDocWindow = contentDocument.defaultView;\n if (contentDocWindow && (contentDocWindow.parent|| contentDocWindow.top)) {\n var parentWindowCanonicalHref = determineCanonicalLinkHref(contentDocWindow.parent);\n var topWindowCanonicalHref = determineCanonicalLinkHref(contentDocWindow.top);\n return topWindowCanonicalHref || parentWindowCanonicalHref;\n }\n }\n\n function injectAppUrlAsCanonicalLink(contentDocument, spineItem) {\n if (contentDocument.defaultView && contentDocument.defaultView.parent) {\n var canonicalLinkHref = getContentDocumentCanonicalLink(contentDocument);\n if (canonicalLinkHref) {\n var link = contentDocument.createElement('link');\n link.setAttribute('rel', 'canonical');\n link.setAttribute('href', canonicalLinkHref);\n contentDocument.head.appendChild(link);\n contentDocumentStates[spineItem.idref].canonicalLinkElement = link;\n }\n }\n }\n\n var bringIntoViewDebounced = _.debounce(function (range) {\n var target = reader.getRangeCfiFromDomRange(range);\n var contentDocumentState = contentDocumentStates[target.idref];\n\n if (contentDocumentState && contentDocumentState.isUpdated) {\n reader.openSpineItemElementCfi(target.idref, target.contentCFI);\n } else {\n contentDocumentState.pendingNavRequest = {\n idref: target.idref,\n contentCFI: target.contentCFI\n };\n }\n }, 100);\n\n function bindBringIntoViewEvent(contentDocument) {\n // 'scrolltorange' is a non-standard event that is emitted on the content frame\n // by some external tools like Hypothes.is\n contentDocument.addEventListener('scrolltorange', function (event) {\n event.preventDefault();\n\n var range = event.detail;\n bringIntoViewDebounced(range);\n });\n }\n\n function bindSelectionPopupWorkaround(contentDocument) {\n // A hack to make the Hypothes.is 'adder' context menu popup work when the content doc body is positioned.\n // When the content doc has columns and a body with position set to 'relative'\n // the adder won't be positioned properly.\n //\n // The workaround is to clear the position property when a selection is active.\n // Then restore the position property to 'relative' when the selection clears.\n contentDocument.addEventListener('selectionchange', function () {\n var selection = contentDocument.getSelection();\n if (selection && selection.isCollapsed) {\n contentDocument.body.style.position = 'relative';\n } else {\n contentDocument.body.style.position = '';\n }\n });\n }\n\n /***\n *\n * @param {Document} contentDocument Document instance with DOM tree\n * @param {Models.SpineItem} spineItem The associated spine item object\n */\n this.bindToContentDocument = function(contentDocument, spineItem) {\n contentDocuments[spineItem.idref] = contentDocument;\n contentDocumentStates[spineItem.idref] = {};\n injectDublinCoreResourceIdentifiers(contentDocument, spineItem);\n injectAppUrlAsCanonicalLink(contentDocument, spineItem);\n bindBringIntoViewEvent(contentDocument);\n\n if (spineItem.isReflowable()) {\n bindSelectionPopupWorkaround(contentDocument);\n }\n };\n\n /***\n *\n * @param {Models.SpineItem} spineItem The associated spine item object\n */\n this.updateContentDocument = function (spineItem) {\n var contentDocument = contentDocuments[spineItem.idref];\n var state = contentDocumentStates[spineItem.idref];\n\n if (contentDocument && state) {\n\n if (state.canonicalLinkElement) {\n var canonicalLinkHref = getContentDocumentCanonicalLink(contentDocument);\n if (canonicalLinkHref) {\n state.canonicalLinkElement.setAttribute('href', canonicalLinkHref);\n }\n }\n\n state.isUpdated = true;\n\n var pendingNavRequest = state.pendingNavRequest;\n if (pendingNavRequest) {\n reader.openSpineItemElementCfi(pendingNavRequest.idref, pendingNavRequest.contentCFI);\n state.pendingNavRequest = null;\n }\n }\n };\n };\n\n return ExternalAgentSupport;\n});\n\n","// Created by Boris Schneiderman.\n// Modified by Daniel Weck\n// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n// \n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \n// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, \n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE \n// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n// OF THE POSSIBILITY OF SUCH DAMAGE.\n\ndefine('readium_shared_js/views/reader_view',[\"../globals\", \"jquery\", \"underscore\", \"eventEmitter\", \"./fixed_view\", \"../helpers\", \"./iframe_loader\", \"./internal_links_support\",\n \"./media_overlay_data_injector\", \"./media_overlay_player\", \"../models/package\", \"../models/metadata\", \"../models/page_open_request\",\n \"./reflowable_view\", \"./scroll_view\", \"../models/style_collection\", \"../models/switches\", \"../models/trigger\",\n \"../models/viewer_settings\", \"../models/bookmark_data\", \"../models/node_range_info\", \"./external_agent_support\"],\n function (Globals, $, _, EventEmitter, FixedView, Helpers, IFrameLoader, InternalLinksSupport,\n MediaOverlayDataInjector, MediaOverlayPlayer, Package, Metadata, PageOpenRequest,\n ReflowableView, ScrollView, StyleCollection, Switches, Trigger,\n ViewerSettings, BookmarkData, NodeRangeInfo, ExternalAgentSupport) {\n/**\n * Options passed on the reader from the readium loader/initializer\n *\n * @typedef {object} Globals.Views.ReaderView.ReaderOptions\n * @property {jQueryElement|string} el The element the reader view should create itself in. Can be a jquery wrapped element or a query selector.\n * @property {Globals.Views.IFrameLoader} iframeLoader An instance of an iframe loader or one expanding it.\n * @property {boolean} needsFixedLayoutScalerWorkAround\n */\n\n/**\n * Top level View object. Interface for view manipulation public APIs\n * @param {Views.ReaderView.ReaderOptions} options\n * @constructor\n */\nvar ReaderView = function (options) {\n $.extend(this, new EventEmitter());\n\n var self = this;\n var _currentView = undefined;\n var _package = undefined;\n var _metadata = undefined;\n var _spine = undefined;\n var _viewerSettings = new ViewerSettings({});\n //styles applied to the container divs\n var _userStyles = new StyleCollection();\n //styles applied to the content documents\n var _bookStyles = new StyleCollection();\n var _internalLinksSupport = new InternalLinksSupport(this);\n var _externalAgentSupport = new ExternalAgentSupport(this);\n var _mediaOverlayPlayer;\n var _mediaOverlayDataInjector;\n var _iframeLoader;\n var _$el;\n\n //We will call onViewportResize after user stopped resizing window\n var lazyResize = Helpers.extendedThrottle(\n handleViewportResizeStart,\n handleViewportResizeTick,\n handleViewportResizeEnd, 250, 1000, self);\n\n $(window).on(\"resize.ReadiumSDK.readerView\", lazyResize);\n\n this.fonts = options.fonts;\n\n\n if (options.el instanceof $) {\n _$el = options.el;\n console.log(\"** EL is a jQuery selector:\" + options.el.attr('id'));\n } else {\n _$el = $(options.el);\n console.log(\"** EL is a string:\" + _$el.attr('id'));\n }\n\n if (options.iframeLoader) {\n _iframeLoader = options.iframeLoader;\n }\n else {\n _iframeLoader = new IFrameLoader({mathJaxUrl: options.mathJaxUrl});\n }\n\n\n _needsFixedLayoutScalerWorkAround = options.needsFixedLayoutScalerWorkAround;\n /**\n * @returns {boolean}\n */\n this.needsFixedLayoutScalerWorkAround = function () {\n return _needsFixedLayoutScalerWorkAround;\n };\n\n /**\n * Create a view based on the given view type.\n * @param {Views.ReaderView.ViewType} viewType\n * @param {Views.ReaderView.ViewCreationOptions} options\n * @returns {*}\n */\n this.createViewForType = function (viewType, options) {\n var createdView;\n\n // NOTE: _$el == options.$viewport\n _$el.css(\"overflow\", \"hidden\");\n\n switch (viewType) {\n case ReaderView.VIEW_TYPE_FIXED:\n\n _$el.css(\"overflow\", \"auto\"); // for content pan, see self.setZoom()\n\n createdView = new FixedView(options, self);\n break;\n case ReaderView.VIEW_TYPE_SCROLLED_DOC:\n createdView = new ScrollView(options, false, self);\n break;\n case ReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS:\n createdView = new ScrollView(options, true, self);\n break;\n default:\n createdView = new ReflowableView(options, self);\n break;\n }\n\n return createdView;\n };\n\n /**\n * Returns the current view type of the reader view\n * @returns {ReaderView.ViewType}\n */\n this.getCurrentViewType = function () {\n\n if (!_currentView) {\n return undefined;\n }\n\n if (_currentView instanceof ReflowableView) {\n return ReaderView.VIEW_TYPE_COLUMNIZED;\n }\n\n if (_currentView instanceof FixedView) {\n return ReaderView.VIEW_TYPE_FIXED;\n }\n\n if (_currentView instanceof ScrollView) {\n if (_currentView.isContinuousScroll()) {\n return ReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS;\n }\n\n return ReaderView.VIEW_TYPE_SCROLLED_DOC;\n }\n\n console.error(\"Unrecognized view type\");\n return undefined;\n };\n\n this.getCurrentView = function () {\n return _currentView;\n };\n\n //based on https://docs.google.com/spreadsheet/ccc?key=0AoPMUkQhc4wcdDI0anFvWm96N0xRT184ZE96MXFRdFE&usp=drive_web#gid=0 document\n function deduceDesiredViewType(spineItem) {\n\n //check settings\n if (_viewerSettings.scroll == \"scroll-doc\") {\n return ReaderView.VIEW_TYPE_SCROLLED_DOC;\n }\n\n if (_viewerSettings.scroll == \"scroll-continuous\") {\n return ReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS;\n }\n\n //is fixed layout ignore flow\n if (spineItem.isFixedLayout()) {\n return ReaderView.VIEW_TYPE_FIXED;\n }\n\n //flow\n if (spineItem.isFlowScrolledDoc()) {\n return ReaderView.VIEW_TYPE_SCROLLED_DOC;\n }\n\n if (spineItem.isFlowScrolledContinuous()) {\n return ReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS;\n }\n\n return ReaderView.VIEW_TYPE_COLUMNIZED;\n }\n\n // returns true is view changed\n function initViewForItem(spineItem, callback) {\n\n var desiredViewType = deduceDesiredViewType(spineItem);\n\n if (_currentView) {\n\n if (self.getCurrentViewType() == desiredViewType) {\n callback(false);\n return;\n }\n\n resetCurrentView();\n }\n\n /**\n * View creation options\n * @typedef {object} Globals.Views.ReaderView.ViewCreationOptions\n * @property {jQueryElement} $viewport The view port element the reader view has created.\n * @property {Globals.Models.Spine} spine The spine item collection object\n * @property {Globals.Collections.StyleCollection} userStyles User styles\n * @property {Globals.Collections.StyleCollection} bookStyles Book styles\n * @property {Globals.Views.IFrameLoader} iframeLoader An instance of an iframe loader or one expanding it.\n */\n var viewCreationParams = {\n $viewport: _$el,\n spine: _spine,\n userStyles: _userStyles,\n bookStyles: _bookStyles,\n iframeLoader: _iframeLoader\n };\n\n\n _currentView = self.createViewForType(desiredViewType, viewCreationParams);\n \n Globals.logEvent(\"READER_VIEW_CREATED\", \"EMIT\", \"reader_view.js\");\n self.emit(Globals.Events.READER_VIEW_CREATED, desiredViewType);\n\n _currentView.on(Globals.Events.CONTENT_DOCUMENT_LOADED, function ($iframe, spineItem) {\n var contentDoc = $iframe[0].contentDocument;\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOADED\", \"ON\", \"reader_view.js (current view) [ \" + spineItem.href + \" ]\");\n\n if (!Helpers.isIframeAlive($iframe[0])) return;\n\n // performance degrades with large DOM (e.g. word-level text-audio sync)\n _mediaOverlayDataInjector.attachMediaOverlayData($iframe, spineItem, _viewerSettings);\n\n _internalLinksSupport.processLinkElements($iframe, spineItem);\n\n _externalAgentSupport.bindToContentDocument(contentDoc, spineItem);\n\n Trigger.register(contentDoc);\n Switches.apply(contentDoc);\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOADED\", \"EMIT\", \"reader_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOADED, $iframe, spineItem);\n });\n\n _currentView.on(Globals.Events.CONTENT_DOCUMENT_LOAD_START, function ($iframe, spineItem) {\n\n Globals.logEvent(\"CONTENT_DOCUMENT_LOAD_START\", \"EMIT\", \"reader_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_LOAD_START, $iframe, spineItem);\n });\n\n _currentView.on(Globals.Events.CONTENT_DOCUMENT_UNLOADED, function ($iframe, spineItem) {\n \n Globals.logEvent(\"CONTENT_DOCUMENT_UNLOADED\", \"EMIT\", \"reader_view.js [ \" + spineItem.href + \" ]\");\n self.emit(Globals.Events.CONTENT_DOCUMENT_UNLOADED, $iframe, spineItem);\n });\n\n _currentView.on(Globals.InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED, function (pageChangeData) {\n \n Globals.logEvent(\"InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED\", \"ON\", \"reader_view.js\");\n\n //we call on onPageChanged explicitly instead of subscribing to the Globals.Events.PAGINATION_CHANGED by\n //mediaOverlayPlayer because we hve to guarantee that mediaOverlayPlayer will be updated before the host\n //application will be notified by the same Globals.Events.PAGINATION_CHANGED event\n _mediaOverlayPlayer.onPageChanged(pageChangeData);\n\n _.defer(function () {\n Globals.logEvent(\"PAGINATION_CHANGED\", \"EMIT\", \"reader_view.js\");\n self.emit(Globals.Events.PAGINATION_CHANGED, pageChangeData);\n \n if (!pageChangeData.spineItem) return;\n _.defer(function () {\n _externalAgentSupport.updateContentDocument(pageChangeData.spineItem);\n });\n });\n });\n\n _currentView.on(Globals.Events.FXL_VIEW_RESIZED, function () {\n Globals.logEvent(\"FXL_VIEW_RESIZED\", \"EMIT\", \"reader_view.js\");\n self.emit(Globals.Events.FXL_VIEW_RESIZED);\n })\n\n _currentView.render();\n\n var docWillChange = true;\n _currentView.setViewSettings(_viewerSettings, docWillChange);\n\n // we do this to wait until elements are rendered otherwise book is not able to determine view size.\n setTimeout(function () {\n\n callback(true);\n\n }, 50);\n\n }\n\n /**\n * Returns a list of the currently active spine items\n *\n * @returns {Models.SpineItem[]}\n */\n this.getLoadedSpineItems = function () {\n\n if (_currentView) {\n return _currentView.getLoadedSpineItems();\n }\n\n return [];\n };\n\n function resetCurrentView() {\n\n if (!_currentView) {\n return;\n }\n\n Globals.logEvent(\"READER_VIEW_DESTROYED\", \"EMIT\", \"reader_view.js\");\n self.emit(Globals.Events.READER_VIEW_DESTROYED);\n\n\n Globals.logEvent(\"InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED\", \"OFF\", \"reader_view.js\");\n _currentView.off(Globals.InternalEvents.CURRENT_VIEW_PAGINATION_CHANGED);\n \n _currentView.remove();\n _currentView = undefined;\n }\n\n /**\n * Returns the currently instanced viewer settings\n *\n * @returns {Models.ViewerSettings}\n */\n this.viewerSettings = function () {\n return _viewerSettings;\n };\n\n /**\n * Returns a data object based on the package document\n *\n * @returns {Models.Package}\n */\n this.package = function () {\n return _package;\n };\n\n /**\n * Returns a data object based on the package document metadata\n *\n * @returns {Models.Metadata}\n */\n this.metadata = function () {\n return _metadata;\n };\n\n /**\n * Returns a representation of the spine as a data object, also acts as list of spine items\n *\n * @returns {Models.Spine}\n */\n this.spine = function () {\n return _spine;\n };\n\n /**\n * Returns the user CSS styles collection\n *\n * @returns {Collections.StyleCollection}\n */\n this.userStyles = function () {\n return _userStyles;\n };\n\n /**\n * Open Book Data\n *\n * @typedef {object} Globals.Views.ReaderView.OpenBookData\n * @property {Globals.Models.Package} package - packageData (required)\n * @property {Globals.Models.PageOpenRequest} openPageRequest - openPageRequestData, (optional) data related to open page request\n * @property {Globals.Views.ReaderView.SettingsData} [settings]\n * @property {Globals.Collections.StyleCollection} styles: [cssStyles]\n * @todo Define missing types\n */\n\n /**\n * Triggers the process of opening the book and requesting resources specified in the packageData\n *\n * @param {Views.ReaderView.OpenBookData} openBookData Open book data object\n */\n this.openBook = function (openBookData) {\n\n var packageData = openBookData.package ? openBookData.package : openBookData;\n\n _package = new Package(packageData);\n _metadata = new Metadata(packageData.metadata);\n\n _spine = _package.spine;\n _spine.handleLinear(true);\n\n if (_mediaOverlayPlayer) {\n _mediaOverlayPlayer.reset();\n }\n\n _mediaOverlayPlayer = new MediaOverlayPlayer(self, $.proxy(onMediaPlayerStatusChanged, self));\n _mediaOverlayPlayer.setAutomaticNextSmil(_viewerSettings.mediaOverlaysAutomaticPageTurn ? true : false); // just to ensure the internal var is set to the default settings (user settings are applied below at self.updateSettings(openBookData.settings);)\n\n _mediaOverlayDataInjector = new MediaOverlayDataInjector(_package.media_overlay, _mediaOverlayPlayer);\n\n\n resetCurrentView();\n\n if (openBookData.settings) {\n self.updateSettings(openBookData.settings);\n }\n\n if (openBookData.styles) {\n self.setStyles(openBookData.styles);\n }\n\n var pageRequestData = undefined;\n\n if (openBookData.openPageRequest && typeof(openBookData.openPageRequest) === 'function') {\n openBookData.openPageRequest = openBookData.openPageRequest();\n }\n\n if (openBookData.openPageRequest) {\n\n if (openBookData.openPageRequest.idref || (openBookData.openPageRequest.contentRefUrl && openBookData.openPageRequest.sourceFileHref)) {\n pageRequestData = openBookData.openPageRequest;\n }\n else {\n console.log(\"Invalid page request data: idref required!\");\n }\n }\n\n var fallback = false;\n if (pageRequestData) {\n\n pageRequestData = openBookData.openPageRequest;\n\n try {\n if (pageRequestData.idref) {\n\n if (pageRequestData.spineItemPageIndex) {\n fallback = !self.openSpineItemPage(pageRequestData.idref, pageRequestData.spineItemPageIndex, self);\n }\n else if (pageRequestData.elementCfi) {\n fallback = !self.openSpineItemElementCfi(pageRequestData.idref, pageRequestData.elementCfi, self);\n }\n else {\n fallback = !self.openSpineItemPage(pageRequestData.idref, 0, self);\n }\n }\n else {\n fallback = !self.openContentUrl(pageRequestData.contentRefUrl, pageRequestData.sourceFileHref, self);\n }\n } catch (err) {\n console.error(\"openPageRequest fail: fallback to first page!\")\n console.log(err);\n fallback = true;\n }\n }\n else {\n fallback = true;\n }\n\n if (fallback) {// if we where not asked to open specific page we will open the first one\n\n var spineItem = _spine.first();\n if (spineItem) {\n var pageOpenRequest = new PageOpenRequest(spineItem, self);\n pageOpenRequest.setFirstPage();\n openPage(pageOpenRequest, 0);\n }\n\n }\n\n };\n\n function onMediaPlayerStatusChanged(status) {\n\n Globals.logEvent(\"MEDIA_OVERLAY_STATUS_CHANGED\", \"EMIT\", \"reader_view.js (via MediaOverlayPlayer + AudioPlayer)\");\n self.emit(Globals.Events.MEDIA_OVERLAY_STATUS_CHANGED, status);\n }\n\n /**\n * Flips the page from left to right.\n * Takes to account the page progression direction to decide to flip to prev or next page.\n */\n this.openPageLeft = function () {\n\n if (_package.spine.isLeftToRight()) {\n self.openPagePrev();\n }\n else {\n self.openPageNext();\n }\n };\n\n /**\n * Flips the page from right to left.\n * Takes to account the page progression direction to decide to flip to prev or next page.\n */\n this.openPageRight = function () {\n\n if (_package.spine.isLeftToRight()) {\n self.openPageNext();\n }\n else {\n self.openPagePrev();\n }\n\n };\n\n /**\n * Returns if the current child view is an instance of a fixed page view\n *\n * @returns {boolean}\n */\n this.isCurrentViewFixedLayout = function () {\n return _currentView instanceof FixedView;\n };\n\n /**\n * Zoom options\n *\n * @typedef {object} Globals.Views.ReaderView.ZoomOptions\n * @property {string} style - \"user\"|\"fit-screen\"|\"fit-width\"\n * @property {number} scale - 0.0 to 1.0\n */\n\n /**\n * Set the zoom options.\n *\n * @param {Views.ReaderView.ZoomOptions} zoom Zoom options\n */\n this.setZoom = function (zoom) {\n // zoom only handled by fixed layout views\n if (self.isCurrentViewFixedLayout()) {\n _currentView.setZoom(zoom);\n }\n };\n\n /**\n * Returns the current view scale as a percentage\n *\n * @returns {number}\n */\n this.getViewScale = function () {\n if (self.isCurrentViewFixedLayout()) {\n return 100 * _currentView.getViewScale();\n }\n else {\n return 100;\n }\n };\n\n /**\n * Settings Data\n *\n * @typedef {object} Globals.Views.ReaderView.SettingsData\n * @property {number} fontSize - Font size as percentage\n * @property {number} fontSelection - Font selection as the number in the list of possible fonts, where 0 is special meaning default.\n * @property {(string|boolean)} syntheticSpread - \"auto\"|\"single\"|\"double\"\n * @property {(string|boolean)} scroll - \"auto\"|true|false\n * @property {boolean} doNotUpdateView - Indicates whether the view should be updated after the settings are applied\n * @property {boolean} mediaOverlaysEnableClick - Indicates whether media overlays are interactive on mouse clicks\n */\n\n /**\n * Updates reader view based on the settings specified in settingsData object\n *\n * @param {Globals.Views.ReaderView.SettingsData} settingsData Settings data\n * @fires Globals.Events.SETTINGS_APPLIED\n */\n this.updateSettings = function (settingsData) {\n\n//console.debug(\"UpdateSettings: \" + JSON.stringify(settingsData));\n\n _viewerSettings.update(settingsData);\n\n if (_mediaOverlayPlayer) {\n _mediaOverlayPlayer.setAutomaticNextSmil(_viewerSettings.mediaOverlaysAutomaticPageTurn ? true : false);\n }\n\n if (_currentView && !settingsData.doNotUpdateView) {\n\n var bookMark = _currentView.bookmarkCurrentPage();\n\n if (bookMark && bookMark.idref) {\n\n var wasPlaying = false;\n if (_currentView.isReflowable && _currentView.isReflowable()) {\n wasPlaying = self.isPlayingMediaOverlay();\n if (wasPlaying) {\n self.pauseMediaOverlay();\n }\n }\n\n var spineItem = _spine.getItemById(bookMark.idref);\n\n initViewForItem(spineItem, function (isViewChanged) {\n\n if (!isViewChanged) {\n var docWillChange = false;\n _currentView.setViewSettings(_viewerSettings, docWillChange);\n }\n\n self.once(ReadiumSDK.Events.PAGINATION_CHANGED, function (pageChangeData)\n {\n var cfi = new BookmarkData(bookMark.idref, bookMark.contentCFI);\n self.debugBookmarkData(cfi);\n });\n\n self.openSpineItemElementCfi(bookMark.idref, bookMark.contentCFI, self);\n\n if (wasPlaying) {\n self.playMediaOverlay();\n // setTimeout(function()\n // {\n // }, 60);\n }\n\n Globals.logEvent(\"SETTINGS_APPLIED 1 (view update)\", \"EMIT\", \"reader_view.js\");\n self.emit(Globals.Events.SETTINGS_APPLIED);\n });\n \n return;\n }\n }\n\n Globals.logEvent(\"SETTINGS_APPLIED 2 (no view update)\", \"EMIT\", \"reader_view.js\");\n self.emit(Globals.Events.SETTINGS_APPLIED);\n };\n\n /**\n * Opens the next page.\n */\n this.openPageNext = function () {\n\n if (self.getCurrentViewType() === ReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS) {\n _currentView.openPageNext(self);\n return;\n }\n\n var paginationInfo = _currentView.getPaginationInfo();\n\n if (paginationInfo.openPages.length == 0) {\n return;\n }\n\n var lastOpenPage = paginationInfo.openPages[paginationInfo.openPages.length - 1];\n\n if (lastOpenPage.spineItemPageIndex < lastOpenPage.spineItemPageCount - 1) {\n _currentView.openPageNext(self);\n return;\n }\n\n var currentSpineItem = _spine.getItemById(lastOpenPage.idref);\n\n var nextSpineItem = _spine.nextItem(currentSpineItem);\n\n if (!nextSpineItem) {\n return;\n }\n\n var openPageRequest = new PageOpenRequest(nextSpineItem, self);\n openPageRequest.setFirstPage();\n\n openPage(openPageRequest, 2);\n };\n\n /**\n * Opens the previous page.\n */\n this.openPagePrev = function () {\n\n if (self.getCurrentViewType() === ReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS) {\n _currentView.openPagePrev(self);\n return;\n }\n\n var paginationInfo = _currentView.getPaginationInfo();\n\n if (paginationInfo.openPages.length == 0) {\n return;\n }\n\n var firstOpenPage = paginationInfo.openPages[0];\n\n if (firstOpenPage.spineItemPageIndex > 0) {\n _currentView.openPagePrev(self);\n return;\n }\n\n var currentSpineItem = _spine.getItemById(firstOpenPage.idref);\n\n var prevSpineItem = _spine.prevItem(currentSpineItem);\n\n if (!prevSpineItem) {\n return;\n }\n\n var openPageRequest = new PageOpenRequest(prevSpineItem, self);\n openPageRequest.setLastPage();\n\n openPage(openPageRequest, 1);\n };\n\n function getSpineItem(idref) {\n\n if (!idref) {\n\n console.log(\"idref parameter value missing!\");\n return undefined;\n }\n\n var spineItem = _spine.getItemById(idref);\n if (!spineItem) {\n console.log(\"Spine item with id \" + idref + \" not found!\");\n return undefined;\n }\n\n return spineItem;\n\n }\n\n /**\n * Opens the page of the spine item with element with provided cfi\n *\n * @param {string} idref Id of the spine item\n * @param {string} elementCfi CFI of the element to be shown\n * @param {object} initiator optional\n */\n this.openSpineItemElementCfi = function (idref, elementCfi, initiator) {\n\n var spineItem = getSpineItem(idref);\n\n if (!spineItem) {\n return false;\n }\n\n var pageData = new PageOpenRequest(spineItem, initiator);\n if (elementCfi) {\n pageData.setElementCfi(elementCfi);\n }\n\n openPage(pageData, 0);\n\n return true;\n };\n\n /**\n * Opens specified page index of the current spine item\n *\n * @param {number} pageIndex Zero based index of the page in the current spine item\n * @param {object} initiator optional\n */\n this.openPageIndex = function (pageIndex, initiator) {\n\n if (!_currentView) {\n return false;\n }\n\n var pageRequest;\n\n if (_package.isFixedLayout()) {\n var spineItem = _spine.items[pageIndex];\n if (!spineItem) {\n return false;\n }\n\n pageRequest = new PageOpenRequest(spineItem, initiator);\n pageRequest.setPageIndex(0);\n }\n else {\n\n var spineItems = this.getLoadedSpineItems();\n if (spineItems.length > 0) {\n pageRequest = new PageOpenRequest(spineItems[0], initiator);\n pageRequest.setPageIndex(pageIndex);\n }\n }\n\n openPage(pageRequest, 0);\n\n return true;\n };\n\n // dir: 0 => new or same page, 1 => previous, 2 => next\n function openPage(pageRequest, dir) {\n\n initViewForItem(pageRequest.spineItem, function (isViewChanged) {\n\n if (!isViewChanged) {\n var docWillChange = true;\n _currentView.setViewSettings(_viewerSettings, docWillChange);\n }\n\n _currentView.openPage(pageRequest, dir);\n });\n }\n\n\n /**\n * Opens page index of the spine item with idref provided\n *\n * @param {string} idref Id of the spine item\n * @param {number} pageIndex Zero based index of the page in the spine item\n * @param {object} initiator optional\n */\n this.openSpineItemPage = function (idref, pageIndex, initiator) {\n\n var spineItem = getSpineItem(idref);\n\n if (!spineItem) {\n return false;\n }\n\n var pageData = new PageOpenRequest(spineItem, initiator);\n if (pageIndex) {\n pageData.setPageIndex(pageIndex);\n }\n\n openPage(pageData, 0);\n\n return true;\n };\n\n /**\n * Set CSS Styles to the reader container\n *\n * @param {Collections.StyleCollection} styles Style collection containing selector property and declarations object\n * @param {boolean} doNotUpdateView Whether to update the view after the styles are applied.\n */\n this.setStyles = function (styles, doNotUpdateView) {\n\n var count = styles.length;\n\n for (var i = 0; i < count; i++) {\n if (styles[i].declarations) {\n _userStyles.addStyle(styles[i].selector, styles[i].declarations);\n }\n else {\n _userStyles.removeStyle(styles[i].selector);\n }\n }\n\n applyStyles(doNotUpdateView);\n\n };\n\n /**\n * Set CSS Styles to the content documents\n *\n * @param {Collections.StyleCollection} styles Style collection containing selector property and declarations object\n */\n this.setBookStyles = function (styles) {\n\n var count = styles.length;\n\n for (var i = 0; i < count; i++) {\n if (styles[i].declarations) {\n _bookStyles.addStyle(styles[i].selector, styles[i].declarations);\n }\n else {\n _bookStyles.removeStyle(styles[i].selector);\n }\n }\n\n if (_currentView) {\n _currentView.applyBookStyles();\n }\n\n };\n\n /**\n * Gets an element from active content documents based on a query selector.\n *\n * @param {Models.SpineItem} spineItem The spine item object associated with an active content document\n * @param {string} selector The query selector\n * @returns {HTMLElement|undefined}\n */\n this.getElement = function (spineItemIdref, selector) {\n\n if (_currentView) {\n return _currentView.getElement(spineItemIdref, selector);\n }\n\n return undefined;\n };\n\n /**\n * Gets an element from active content documents based on an element id.\n *\n * @param {string} spineItemIdref The spine item idref associated with an active content document\n * @param {string} id The element id\n * @returns {HTMLElement|undefined}\n */\n this.getElementById = function (spineItemIdref, id) {\n\n if (_currentView) {\n return _currentView.getElementById(spineItemIdref, id);\n }\n\n return undefined;\n };\n\n /**\n * Gets an element from active content documents based on a content CFI.\n *\n * @param {string} spineItemIdref The spine item idref associated with an active content document\n * @param {string} cfi The partial content CFI\n * @param {string[]} [classBlacklist]\n * @param {string[]} [elementBlacklist]\n * @param {string[]} [idBlacklist]\n * @returns {HTMLElement|undefined}\n */\n this.getElementByCfi = function (spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist) {\n\n if (_currentView) {\n return _currentView.getElementByCfi(spineItemIdref, cfi, classBlacklist, elementBlacklist, idBlacklist);\n }\n\n return undefined;\n\n };\n\n function applyStyles(doNotUpdateView) {\n\n Helpers.setStyles(_userStyles.getStyles(), _$el);\n\n if (_mediaOverlayPlayer)\n _mediaOverlayPlayer.applyStyles();\n\n if (doNotUpdateView) return;\n\n if (_currentView) {\n _currentView.applyStyles();\n }\n }\n\n /**\n * Opens a content url from a media player context\n *\n * @param {string} contentRefUrl\n * @param {string} sourceFileHref\n * @param offset\n */\n this.mediaOverlaysOpenContentUrl = function (contentRefUrl, sourceFileHref, offset) {\n _mediaOverlayPlayer.mediaOverlaysOpenContentUrl(contentRefUrl, sourceFileHref, offset);\n };\n\n\n /**\n * Opens the content document specified by the url\n *\n * @param {string} contentRefUrl Url of the content document\n * @param {string | undefined} sourceFileHref Url to the file that contentRefUrl is relative to. If contentRefUrl is\n * relative ot the source file that contains it instead of the package file (ex. TOC file) We have to know the\n * sourceFileHref to resolve contentUrl relative to the package file.\n * @param {object} initiator optional\n */\n this.openContentUrl = function (contentRefUrl, sourceFileHref, initiator) {\n\n var combinedPath = Helpers.ResolveContentRef(contentRefUrl, sourceFileHref);\n\n var hashIndex = combinedPath.indexOf(\"#\");\n var hrefPart;\n var elementId;\n if (hashIndex >= 0) {\n hrefPart = combinedPath.substr(0, hashIndex);\n elementId = combinedPath.substr(hashIndex + 1);\n }\n else {\n hrefPart = combinedPath;\n elementId = undefined;\n }\n\n var spineItem = _spine.getItemByHref(hrefPart);\n if (!spineItem) {\n console.warn('spineItem ' + hrefPart + ' not found');\n // sometimes that happens because spine item's URI gets encoded,\n // yet it's compared with raw strings by `getItemByHref()` -\n // so we try to search with decoded link as well\n var decodedHrefPart = decodeURIComponent(hrefPart);\n spineItem = _spine.getItemByHref(decodedHrefPart);\n if (!spineItem) {\n console.warn('decoded spineItem ' + decodedHrefPart + ' missing as well');\n return false;\n }\n }\n\n return self.openSpineItemElementId(spineItem.idref, elementId, initiator);\n };\n\n /**\n * Opens the page of the spine item with element with provided cfi\n *\n * @param {string} idref Id of the spine item\n * @param {string} elementId id of the element to be shown\n * @param {object} initiator optional\n */\n this.openSpineItemElementId = function (idref, elementId, initiator) {\n\n var spineItem = _spine.getItemById(idref);\n if (!spineItem) {\n return false;\n }\n\n var pageData = new PageOpenRequest(spineItem, initiator);\n\n if (elementId) {\n pageData.setElementId(elementId);\n }\n\n\n openPage(pageData, 0);\n\n return true;\n };\n\n //var cfi = new BookmarkData(bookmark.idref, bookmark.contentCFI);\n this.debugBookmarkData = function(cfi) {\n\n if (!ReadiumSDK) return;\n\n var DEBUG = true; // change this to visualize the CFI range\n if (!DEBUG) return;\n \n var paginationInfo = this.getPaginationInfo();\n console.log(JSON.stringify(paginationInfo));\n \n if (paginationInfo.isFixedLayout) return;\n \n try {\n ReadiumSDK._DEBUG_CfiNavigationLogic.clearDebugOverlays();\n \n } catch (error) {\n //ignore\n }\n \n try {\n console.log(cfi);\n \n var range = this.getDomRangeFromRangeCfi(cfi);\n console.log(range);\n \n var res = ReadiumSDK._DEBUG_CfiNavigationLogic.drawDebugOverlayFromDomRange(range);\n console.log(res);\n \n var cfiFirst = ReadiumSDK.reader.getFirstVisibleCfi();\n console.log(cfiFirst);\n \n var cfiLast = ReadiumSDK.reader.getLastVisibleCfi();\n console.log(cfiLast);\n \n } catch (error) {\n //ignore\n }\n \n setTimeout(function() {\n try {\n ReadiumSDK._DEBUG_CfiNavigationLogic.clearDebugOverlays();\n } catch (error) {\n //ignore\n }\n }, 2000);\n };\n\n /**\n * Returns the bookmark associated with currently opened page.\n *\n * @returns {string} Serialized ReadiumSDK.Models.BookmarkData object as JSON string.\n * {null} If a bookmark could not be created successfully.\n */\n this.bookmarkCurrentPage = function() {\n var bookmark = _currentView.bookmarkCurrentPage();\n return bookmark ? bookmark.toString() : null;\n };\n\n /**\n * Resets all the custom styles set by setStyle callers at runtime\n */\n this.clearStyles = function () {\n\n _userStyles.resetStyleValues();\n applyStyles();\n _userStyles.clear();\n };\n\n /**\n * Resets all the custom styles set by setBookStyle callers at runtime\n */\n this.clearBookStyles = function () {\n\n if (_currentView) {\n\n _bookStyles.resetStyleValues();\n _currentView.applyBookStyles();\n }\n\n _bookStyles.clear();\n };\n\n /**\n * Returns true if media overlay available for one of the open pages.\n *\n * @returns {boolean}\n */\n this.isMediaOverlayAvailable = function () {\n\n if (!_mediaOverlayPlayer) return false;\n\n return _mediaOverlayPlayer.isMediaOverlayAvailable();\n };\n\n /*\n this.setMediaOverlaySkippables = function(items) {\n\n _mediaOverlayPlayer.setMediaOverlaySkippables(items);\n };\n\n this.setMediaOverlayEscapables = function(items) {\n\n _mediaOverlayPlayer.setMediaOverlayEscapables(items);\n };\n */\n\n /**\n * Starts/Stop playing media overlay on current page\n */\n this.toggleMediaOverlay = function () {\n\n _mediaOverlayPlayer.toggleMediaOverlay();\n };\n\n\n /**\n * Plays next fragment media overlay\n */\n this.nextMediaOverlay = function () {\n\n _mediaOverlayPlayer.nextMediaOverlay();\n\n };\n\n /**\n * Plays previous fragment media overlay\n */\n this.previousMediaOverlay = function () {\n\n _mediaOverlayPlayer.previousMediaOverlay();\n\n };\n\n /**\n * Plays next available fragment media overlay that is outside of the current escapable scope\n */\n this.escapeMediaOverlay = function () {\n\n _mediaOverlayPlayer.escape();\n };\n\n /**\n * End media overlay TTS\n * @todo Clarify what this does with Daniel.\n */\n this.ttsEndedMediaOverlay = function () {\n\n _mediaOverlayPlayer.onTTSEnd();\n };\n\n /**\n * Pause currently playing media overlays.\n */\n this.pauseMediaOverlay = function () {\n\n _mediaOverlayPlayer.pause();\n };\n\n /**\n * Start/Resume playback of media overlays.\n */\n this.playMediaOverlay = function () {\n\n _mediaOverlayPlayer.play();\n };\n\n /**\n * Determine if media overlays are currently playing.\n * @returns {boolean}\n */\n this.isPlayingMediaOverlay = function () {\n\n return _mediaOverlayPlayer.isPlaying();\n };\n\n//\n// should use Globals.Events.SETTINGS_APPLIED instead!\n// this.setRateMediaOverlay = function(rate) {\n//\n// _mediaOverlayPlayer.setRate(rate);\n// };\n// this.setVolumeMediaOverlay = function(volume){\n//\n// _mediaOverlayPlayer.setVolume(volume);\n// };\n\n /**\n * Get the first visible media overlay element from the currently active content document(s)\n * @returns {HTMLElement|undefined}\n */\n this.getFirstVisibleMediaOverlayElement = function () {\n\n if (_currentView) {\n return _currentView.getFirstVisibleMediaOverlayElement();\n }\n\n return undefined;\n };\n\n /**\n * Used to jump to an element to make sure it is visible when a content document is paginated\n * @param {string} spineItemId The spine item idref associated with an active content document\n * @param {HTMLElement} element The element to make visible\n * @param [initiator]\n */\n this.insureElementVisibility = function (spineItemId, element, initiator) {\n\n if (_currentView) {\n _currentView.insureElementVisibility(spineItemId, element, initiator);\n }\n };\n\n var _resizeBookmark = null;\n var _resizeMOWasPlaying = false;\n\n function handleViewportResizeStart() {\n\n _resizeBookmark = null;\n _resizeMOWasPlaying = false;\n\n if (_currentView) {\n\n if (_currentView.isReflowable && _currentView.isReflowable()) {\n _resizeMOWasPlaying = self.isPlayingMediaOverlay();\n if (_resizeMOWasPlaying) {\n self.pauseMediaOverlay();\n }\n }\n\n _resizeBookmark = _currentView.bookmarkCurrentPage(); // not self! (JSON string)\n }\n }\n\n function handleViewportResizeTick() {\n if (_currentView) {\n self.handleViewportResize(_resizeBookmark);\n }\n }\n\n function handleViewportResizeEnd() {\n //same as doing one final tick for now\n handleViewportResizeTick();\n\n if (_resizeMOWasPlaying) self.playMediaOverlay();\n }\n\n this.handleViewportResize = function (bookmarkToRestore) {\n if (!_currentView) return;\n\n _currentView.onViewportResize();\n };\n\n /**\n * Lets user to subscribe to iframe's window events\n *\n * @param {string} eventName Event name.\n * @param {function} callback Callback function.\n * @param {object} context User specified data passed to the callback function.\n * @returns {undefined}\n */\n this.addIFrameEventListener = function (eventName, callback, context) {\n _iframeLoader.addIFrameEventListener(eventName, callback, context);\n };\n\n var BackgroundAudioTrackManager = function (readerView) {\n var _spineItemIframeMap = {};\n var _wasPlaying = false;\n\n var _callback_playPause = undefined;\n this.setCallback_PlayPause = function (callback) {\n _callback_playPause = callback;\n };\n\n var _callback_isAvailable = undefined;\n this.setCallback_IsAvailable = function (callback) {\n _callback_isAvailable = callback;\n };\n\n this.playPause = function (doPlay) {\n _playPause(doPlay);\n };\n\n var _playPause = function (doPlay) {\n if (_callback_playPause) {\n _callback_playPause(doPlay);\n }\n\n try {\n var $iframe = undefined;\n\n for (var prop in _spineItemIframeMap) {\n if (!_spineItemIframeMap.hasOwnProperty(prop)) continue;\n\n var data = _spineItemIframeMap[prop];\n if (!data || !data.active) continue;\n\n if ($iframe) console.error(\"More than one active iframe?? (pagination)\");\n\n $iframe = data[\"$iframe\"];\n if (!$iframe) continue;\n\n var $audios = $(\"audio\", $iframe[0].contentDocument);\n\n $.each($audios, function () {\n\n var attr = this.getAttribute(\"epub:type\") || this.getAttribute(\"type\");\n\n if (!attr) return true; // continue\n\n if (attr.indexOf(\"ibooks:soundtrack\") < 0 && attr.indexOf(\"media:soundtrack\") < 0 && attr.indexOf(\"media:background\") < 0) return true; // continue\n\n if (doPlay && this.play) {\n this.play();\n }\n else if (this.pause) {\n this.pause();\n }\n\n return true; // continue (more than one track?)\n });\n }\n }\n catch (err) {\n console.error(err);\n }\n };\n\n this.setPlayState = function (wasPlaying) {\n _wasPlaying = wasPlaying;\n };\n\n readerView.on(Globals.Events.CONTENT_DOCUMENT_LOADED, function ($iframe, spineItem) {\n Globals.logEvent(\"CONTENT_DOCUMENT_LOADED\", \"ON\", \"reader_view.js (via BackgroundAudioTrackManager) [ \" + spineItem.href + \" ]\");;\n \n try {\n if (spineItem && spineItem.idref && $iframe && $iframe[0]) {\n // console.log(\"CONTENT_DOCUMENT_LOADED\");\n // console.debug(spineItem.href);\n // console.debug(spineItem.idref);\n\n _spineItemIframeMap[spineItem.idref] = {\"$iframe\": $iframe, href: spineItem.href};\n }\n }\n catch (err) {\n console.error(err);\n }\n });\n\n readerView.on(Globals.Events.PAGINATION_CHANGED, function (pageChangeData) {\n Globals.logEvent(\"PAGINATION_CHANGED\", \"ON\", \"reader_view.js (via BackgroundAudioTrackManager)\");\n \n // console.log(\"PAGINATION_CHANGED\");\n // console.debug(pageChangeData);\n //\n // if (pageChangeData.spineItem)\n // {\n // console.debug(pageChangeData.spineItem.href);\n // console.debug(pageChangeData.spineItem.idref);\n // }\n // else\n // {\n // //console.error(pageChangeData);\n // }\n //\n // if (pageChangeData.paginationInfo && pageChangeData.paginationInfo.openPages && pageChangeData.paginationInfo.openPages.length)\n // {\n // for (var i = 0; i < pageChangeData.paginationInfo.openPages.length; i++)\n // {\n // console.log(pageChangeData.paginationInfo.openPages[i].idref);\n // }\n // }\n\n var atLeastOne = false;\n\n try {\n for (var prop in _spineItemIframeMap) {\n if (!_spineItemIframeMap.hasOwnProperty(prop)) continue;\n\n var isActive = pageChangeData.spineItem && pageChangeData.spineItem.idref === prop;\n\n var isDisplayed = false;\n\n if (pageChangeData.paginationInfo && pageChangeData.paginationInfo.openPages.length) {\n var allSame = true;\n\n for (var i = 0; i < pageChangeData.paginationInfo.openPages.length; i++) {\n if (pageChangeData.paginationInfo.openPages[i].idref === prop) {\n isDisplayed = true;\n }\n else {\n allSame = false;\n }\n }\n\n if (!isActive && allSame) isActive = true;\n }\n\n if (isActive || isDisplayed) {\n var data = _spineItemIframeMap[prop];\n if (!data) continue;\n\n _spineItemIframeMap[prop][\"active\"] = isActive;\n\n var $iframe = data[\"$iframe\"];\n var href = data.href;\n\n var $audios = $(\"audio\", $iframe[0].contentDocument);\n $.each($audios, function () {\n\n var attr = this.getAttribute(\"epub:type\") || this.getAttribute(\"type\");\n\n if (!attr) return true; // continue\n\n if (attr.indexOf(\"ibooks:soundtrack\") < 0 && attr.indexOf(\"media:soundtrack\") < 0 && attr.indexOf(\"media:background\") < 0) return true; // continue\n\n this.setAttribute(\"loop\", \"loop\");\n this.removeAttribute(\"autoplay\");\n\n // DEBUG!\n //this.setAttribute(\"controls\", \"controls\");\n\n if (isActive) {\n // DEBUG!\n //$(this).css({border:\"2px solid green\"});\n }\n else {\n if (this.pause) this.pause();\n\n // DEBUG!\n //$(this).css({border:\"2px solid red\"});\n }\n\n atLeastOne = true;\n\n return true; // continue (more than one track?)\n });\n\n continue;\n }\n else {\n if (_spineItemIframeMap[prop]) _spineItemIframeMap[prop][\"$iframe\"] = undefined;\n _spineItemIframeMap[prop] = undefined;\n }\n }\n }\n catch (err) {\n console.error(err);\n }\n\n if (_callback_isAvailable) {\n _callback_isAvailable(atLeastOne);\n }\n\n if (atLeastOne) {\n if (_wasPlaying) {\n _playPause(true);\n }\n else {\n _playPause(false); // ensure correct paused state\n }\n }\n else {\n _playPause(false); // ensure correct paused state\n }\n });\n\n readerView.on(Globals.Events.MEDIA_OVERLAY_STATUS_CHANGED, function (value) {\n Globals.logEvent(\"MEDIA_OVERLAY_STATUS_CHANGED\", \"ON\", \"reader_view.js (via BackgroundAudioTrackManager)\");\n \n if (!value.smilIndex) return;\n var packageModel = readerView.package();\n var smil = packageModel.media_overlay.smilAt(value.smilIndex);\n if (!smil || !smil.spineItemId) return;\n\n var needUpdate = false;\n for (var prop in _spineItemIframeMap) {\n if (!_spineItemIframeMap.hasOwnProperty(prop)) continue;\n\n var data = _spineItemIframeMap[prop];\n if (!data) continue;\n\n if (data.active) {\n if (prop !== smil.spineItemId) {\n _playPause(false); // ensure correct paused state\n data.active = false;\n needUpdate = true;\n }\n }\n }\n\n if (needUpdate) {\n for (var prop in _spineItemIframeMap) {\n if (!_spineItemIframeMap.hasOwnProperty(prop)) continue;\n\n var data = _spineItemIframeMap[prop];\n if (!data) continue;\n\n if (!data.active) {\n if (prop === smil.spineItemId) {\n data.active = true;\n }\n }\n }\n\n if (_wasPlaying) {\n _playPause(true);\n }\n }\n });\n };\n this.backgroundAudioTrackManager = new BackgroundAudioTrackManager(self);\n\n function getCfisForVisibleRegion() {\n return {firstVisibleCfi: self.getFirstVisibleCfi(), lastVisibleCfi: self.getLastVisibleCfi()};\n }\n\n\n this.isVisibleSpineItemElementCfi = function(spineIdRef, partialCfi){\n var spineItem = getSpineItem(spineIdRef);\n\n if (!spineItem) {\n return false;\n }\n\n if (_currentView) {\n\n if(!partialCfi || (partialCfi && partialCfi === '')){\n var spines = _currentView.getLoadedSpineItems();\n for(var i = 0, count = spines.length; i < count; i++) {\n if(spines[i].idref == spineIdRef){\n return true;\n }\n }\n }\n return _currentView.isVisibleSpineItemElementCfi(spineIdRef, partialCfi);\n\n }\n return false;\n };\n\n /**\n * Gets all elements from active content documents based on a query selector.\n *\n * @param {string} spineItemIdref The spine item idref associated with the content document\n * @param {string} selector The query selector\n * @returns {HTMLElement[]}\n */\n this.getElements = function(spineItemIdref, selector) {\n\n if(_currentView) {\n return _currentView.getElements(spineItemIdref, selector);\n }\n\n return undefined;\n };\n\n /**\n * Determine if an element is visible on the active content documents\n *\n * @param {HTMLElement} element The element.\n * @returns {boolean}\n */\n this.isElementVisible = function (element) {\n return _currentView.isElementVisible($(element));\n\n };\n\n /**\n * Resolve a range CFI into an object containing info about it.\n * @param {string} spineIdRef The spine item idref associated with the content document\n * @param {string} partialCfi The partial CFI that is the range CFI to resolve\n * @returns {Models.NodeRangeInfo}\n */\n this.getNodeRangeInfoFromCfi = function (spineIdRef, partialCfi) {\n if (_currentView && spineIdRef && partialCfi) {\n var nodeRangeInfo = _currentView.getNodeRangeInfoFromCfi(spineIdRef, partialCfi);\n if (nodeRangeInfo) {\n return new NodeRangeInfo(nodeRangeInfo.clientRect)\n .setStartInfo(nodeRangeInfo.startInfo)\n .setEndInfo(nodeRangeInfo.endInfo);\n }\n }\n return undefined;\n };\n\n /**\n * Get the pagination info from the current view\n *\n * @returns {ReadiumSDK.Models.CurrentPagesInfo}\n */\n this.getPaginationInfo = function(){\n return _currentView.getPaginationInfo();\n };\n /**\n * Get CFI of the first element visible in the viewport\n * @returns {ReadiumSDK.Models.BookmarkData}\n */\n this.getFirstVisibleCfi = function() {\n if (_currentView) {\n return _currentView.getFirstVisibleCfi();\n }\n return undefined;\n };\n\n /**\n * Get CFI of the last element visible in the viewport\n * @returns {ReadiumSDK.Models.BookmarkData}\n */\n this.getLastVisibleCfi = function() {\n if (_currentView) {\n return _currentView.getLastVisibleCfi();\n }\n return undefined;\n };\n\n /**\n * Get CFI of the first element from the base of the document\n * @returns {ReadiumSDK.Models.BookmarkData}\n */\n this.getStartCfi = function() {\n if (_currentView) {\n return _currentView.getStartCfi();\n }\n return undefined;\n };\n\n /**\n * Get CFI of the last element from the base of the document\n * @returns {ReadiumSDK.Models.BookmarkData}\n */\n this.getEndCfi = function() {\n if (_currentView) {\n return _currentView.getEndCfi();\n }\n return undefined;\n };\n\n /**\n *\n * @param {string} rangeCfi\n * @param {string} [rangeCfi2]\n * @param {boolean} [inclusive]\n * @returns {array}\n */\n this.getDomRangesFromRangeCfi = function(rangeCfi, rangeCfi2, inclusive) {\n if (_currentView) {\n if (_currentView.getDomRangesFromRangeCfi) {\n return _currentView.getDomRangesFromRangeCfi(rangeCfi, rangeCfi2, inclusive);\n } else {\n return [_currentView.getDomRangeFromRangeCfi(rangeCfi, rangeCfi2, inclusive)];\n }\n }\n return undefined;\n };\n\n /**\n *\n * @param {ReadiumSDK.Models.BookmarkData} startCfi starting CFI\n * @param {ReadiumSDK.Models.BookmarkData} [endCfi] ending CFI\n * optional - may be omited if startCfi is a range CFI\n * @param {boolean} [inclusive] optional indicating if the range should be inclusive\n * @returns {array}\n */\n this.getDomRangesFromRangeCfi = function(rangeCfi, rangeCfi2, inclusive) {\n if (_currentView) {\n if (_currentView.getDomRangesFromRangeCfi) {\n return _currentView.getDomRangesFromRangeCfi(rangeCfi, rangeCfi2, inclusive);\n } else {\n return [_currentView.getDomRangeFromRangeCfi(rangeCfi, rangeCfi2, inclusive)];\n }\n }\n return undefined;\n };\n\n /**\n *\n * @param {ReadiumSDK.Models.BookmarkData} startCfi starting CFI\n * @param {ReadiumSDK.Models.BookmarkData} [endCfi] ending CFI\n * optional - may be omited if startCfi is a range CFI\n * @param {boolean} [inclusive] optional indicating if the range should be inclusive\n * @returns {DOM Range} https://developer.mozilla.org/en-US/docs/Web/API/Range\n */\n this.getDomRangeFromRangeCfi = function(startCfi, endCfi, inclusive) {\n if (_currentView) {\n return _currentView.getDomRangeFromRangeCfi(startCfi, endCfi, inclusive);\n }\n return undefined;\n };\n\n /**\n * Generate range CFI from DOM range\n * @param {DOM Range} https://developer.mozilla.org/en-US/docs/Web/API/Range\n * @returns {string} - represents Range CFI for the DOM range\n */\n this.getRangeCfiFromDomRange = function(domRange) {\n if (_currentView) {\n return _currentView.getRangeCfiFromDomRange(domRange);\n }\n return undefined;\n };\n\n /**\n * @param x\n * @param y\n * @param [precisePoint]\n * @param [spineItemIdref] Required for fixed layout views\n * @returns {string}\n */\n this.getVisibleCfiFromPoint = function (x, y, precisePoint, spineItemIdref) {\n if (_currentView) {\n return _currentView.getVisibleCfiFromPoint(x, y, precisePoint, spineItemIdref);\n }\n return undefined;\n };\n\n /**\n *\n * @param startX\n * @param startY\n * @param endX\n * @param endY\n * @param [spineItemIdref] Required for fixed layout views\n * @returns {*}\n */\n this.getRangeCfiFromPoints = function(startX, startY, endX, endY, spineItemIdref) {\n if (_currentView) {\n return _currentView.getRangeCfiFromPoints(startX, startY, endX, endY, spineItemIdref);\n }\n return undefined;\n };\n\n /**\n *\n * @param {HTMLElement} element\n * @returns {*}\n */\n this.getCfiForElement = function(element) {\n if (_currentView) {\n return _currentView.getCfiForElement(element);\n }\n return undefined;\n };\n \n /**\n * Useful for getting a CFI that's as close as possible to an invisible (not rendered, zero client rects) element\n * @param {HTMLElement} element\n * @returns {*}\n */\n this.getNearestCfiFromElement = function(element) {\n if (_currentView) {\n return _currentView.getNearestCfiFromElement(element);\n }\n return undefined;\n };\n \n};\n\n/**\n * View Type\n * @typedef {object} Globals.Views.ReaderView.ViewType\n * @property {number} VIEW_TYPE_COLUMNIZED Reflowable document view\n * @property {number} VIEW_TYPE_FIXED Fixed layout document view\n * @property {number} VIEW_TYPE_SCROLLED_DOC Scrollable document view\n * @property {number} VIEW_TYPE_SCROLLED_CONTINUOUS Continuous scrollable document view\n */\nReaderView.VIEW_TYPE_COLUMNIZED = 1;\nReaderView.VIEW_TYPE_FIXED = 2;\nReaderView.VIEW_TYPE_SCROLLED_DOC = 3;\nReaderView.VIEW_TYPE_SCROLLED_CONTINUOUS = 4;\nreturn ReaderView;\n});\n\n","/**\n * @license text 2.0.15 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/text/LICENSE\n */\n/*jslint regexp: true */\n/*global require, XMLHttpRequest, ActiveXObject,\n define, window, process, Packages,\n java, location, Components, FileUtils */\n\ndefine('text',['module'], function (module) {\n 'use strict';\n\n var text, fs, Cc, Ci, xpcIsWindows,\n progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'],\n xmlRegExp = /^\\s*<\\?xml(\\s)+version=[\\'\\\"](\\d)*.(\\d)*[\\'\\\"](\\s)*\\?>/im,\n bodyRegExp = /]*>\\s*([\\s\\S]+)\\s*<\\/body>/im,\n hasLocation = typeof location !== 'undefined' && location.href,\n defaultProtocol = hasLocation && location.protocol && location.protocol.replace(/\\:/, ''),\n defaultHostName = hasLocation && location.hostname,\n defaultPort = hasLocation && (location.port || undefined),\n buildMap = {},\n masterConfig = (module.config && module.config()) || {};\n\n function useDefault(value, defaultValue) {\n return value === undefined || value === '' ? defaultValue : value;\n }\n\n //Allow for default ports for http and https.\n function isSamePort(protocol1, port1, protocol2, port2) {\n if (port1 === port2) {\n return true;\n } else if (protocol1 === protocol2) {\n if (protocol1 === 'http') {\n return useDefault(port1, '80') === useDefault(port2, '80');\n } else if (protocol1 === 'https') {\n return useDefault(port1, '443') === useDefault(port2, '443');\n }\n }\n return false;\n }\n\n text = {\n version: '2.0.15',\n\n strip: function (content) {\n //Strips declarations so that external SVG and XML\n //documents can be added to a document without worry. Also, if the string\n //is an HTML document, only the part inside the body tag is returned.\n if (content) {\n content = content.replace(xmlRegExp, \"\");\n var matches = content.match(bodyRegExp);\n if (matches) {\n content = matches[1];\n }\n } else {\n content = \"\";\n }\n return content;\n },\n\n jsEscape: function (content) {\n return content.replace(/(['\\\\])/g, '\\\\$1')\n .replace(/[\\f]/g, \"\\\\f\")\n .replace(/[\\b]/g, \"\\\\b\")\n .replace(/[\\n]/g, \"\\\\n\")\n .replace(/[\\t]/g, \"\\\\t\")\n .replace(/[\\r]/g, \"\\\\r\")\n .replace(/[\\u2028]/g, \"\\\\u2028\")\n .replace(/[\\u2029]/g, \"\\\\u2029\");\n },\n\n createXhr: masterConfig.createXhr || function () {\n //Would love to dump the ActiveX crap in here. Need IE 6 to die first.\n var xhr, i, progId;\n if (typeof XMLHttpRequest !== \"undefined\") {\n return new XMLHttpRequest();\n } else if (typeof ActiveXObject !== \"undefined\") {\n for (i = 0; i < 3; i += 1) {\n progId = progIds[i];\n try {\n xhr = new ActiveXObject(progId);\n } catch (e) {}\n\n if (xhr) {\n progIds = [progId]; // so faster next time\n break;\n }\n }\n }\n\n return xhr;\n },\n\n /**\n * Parses a resource name into its component parts. Resource names\n * look like: module/name.ext!strip, where the !strip part is\n * optional.\n * @param {String} name the resource name\n * @returns {Object} with properties \"moduleName\", \"ext\" and \"strip\"\n * where strip is a boolean.\n */\n parseName: function (name) {\n var modName, ext, temp,\n strip = false,\n index = name.lastIndexOf(\".\"),\n isRelative = name.indexOf('./') === 0 ||\n name.indexOf('../') === 0;\n\n if (index !== -1 && (!isRelative || index > 1)) {\n modName = name.substring(0, index);\n ext = name.substring(index + 1);\n } else {\n modName = name;\n }\n\n temp = ext || modName;\n index = temp.indexOf(\"!\");\n if (index !== -1) {\n //Pull off the strip arg.\n strip = temp.substring(index + 1) === \"strip\";\n temp = temp.substring(0, index);\n if (ext) {\n ext = temp;\n } else {\n modName = temp;\n }\n }\n\n return {\n moduleName: modName,\n ext: ext,\n strip: strip\n };\n },\n\n xdRegExp: /^((\\w+)\\:)?\\/\\/([^\\/\\\\]+)/,\n\n /**\n * Is an URL on another domain. Only works for browser use, returns\n * false in non-browser environments. Only used to know if an\n * optimized .js version of a text resource should be loaded\n * instead.\n * @param {String} url\n * @returns Boolean\n */\n useXhr: function (url, protocol, hostname, port) {\n var uProtocol, uHostName, uPort,\n match = text.xdRegExp.exec(url);\n if (!match) {\n return true;\n }\n uProtocol = match[2];\n uHostName = match[3];\n\n uHostName = uHostName.split(':');\n uPort = uHostName[1];\n uHostName = uHostName[0];\n\n return (!uProtocol || uProtocol === protocol) &&\n (!uHostName || uHostName.toLowerCase() === hostname.toLowerCase()) &&\n ((!uPort && !uHostName) || isSamePort(uProtocol, uPort, protocol, port));\n },\n\n finishLoad: function (name, strip, content, onLoad) {\n content = strip ? text.strip(content) : content;\n if (masterConfig.isBuild) {\n buildMap[name] = content;\n }\n onLoad(content);\n },\n\n load: function (name, req, onLoad, config) {\n //Name has format: some.module.filext!strip\n //The strip part is optional.\n //if strip is present, then that means only get the string contents\n //inside a body tag in an HTML string. For XML/SVG content it means\n //removing the declarations so the content can be inserted\n //into the current doc without problems.\n\n // Do not bother with the work if a build and text will\n // not be inlined.\n if (config && config.isBuild && !config.inlineText) {\n onLoad();\n return;\n }\n\n masterConfig.isBuild = config && config.isBuild;\n\n var parsed = text.parseName(name),\n nonStripName = parsed.moduleName +\n (parsed.ext ? '.' + parsed.ext : ''),\n url = req.toUrl(nonStripName),\n useXhr = (masterConfig.useXhr) ||\n text.useXhr;\n\n // Do not load if it is an empty: url\n if (url.indexOf('empty:') === 0) {\n onLoad();\n return;\n }\n\n //Load the text. Use XHR if possible and in a browser.\n if (!hasLocation || useXhr(url, defaultProtocol, defaultHostName, defaultPort)) {\n text.get(url, function (content) {\n text.finishLoad(name, parsed.strip, content, onLoad);\n }, function (err) {\n if (onLoad.error) {\n onLoad.error(err);\n }\n });\n } else {\n //Need to fetch the resource across domains. Assume\n //the resource has been optimized into a JS module. Fetch\n //by the module name + extension, but do not include the\n //!strip part to avoid file system issues.\n req([nonStripName], function (content) {\n text.finishLoad(parsed.moduleName + '.' + parsed.ext,\n parsed.strip, content, onLoad);\n });\n }\n },\n\n write: function (pluginName, moduleName, write, config) {\n if (buildMap.hasOwnProperty(moduleName)) {\n var content = text.jsEscape(buildMap[moduleName]);\n write.asModule(pluginName + \"!\" + moduleName,\n \"define(function () { return '\" +\n content +\n \"';});\\n\");\n }\n },\n\n writeFile: function (pluginName, moduleName, req, write, config) {\n var parsed = text.parseName(moduleName),\n extPart = parsed.ext ? '.' + parsed.ext : '',\n nonStripName = parsed.moduleName + extPart,\n //Use a '.js' file name so that it indicates it is a\n //script that can be loaded across domains.\n fileName = req.toUrl(parsed.moduleName + extPart) + '.js';\n\n //Leverage own load() method to load plugin value, but only\n //write out values that do not have the strip argument,\n //to avoid any potential issues with ! in file names.\n text.load(nonStripName, req, function (value) {\n //Use own write() method to construct full module value.\n //But need to create shell that translates writeFile's\n //write() to the right interface.\n var textWrite = function (contents) {\n return write(fileName, contents);\n };\n textWrite.asModule = function (moduleName, contents) {\n return write.asModule(moduleName, fileName, contents);\n };\n\n text.write(pluginName, nonStripName, textWrite, config);\n }, config);\n }\n };\n\n if (masterConfig.env === 'node' || (!masterConfig.env &&\n typeof process !== \"undefined\" &&\n process.versions &&\n !!process.versions.node &&\n !process.versions['node-webkit'] &&\n !process.versions['atom-shell'])) {\n //Using special require.nodeRequire, something added by r.js.\n fs = require.nodeRequire('fs');\n\n text.get = function (url, callback, errback) {\n try {\n var file = fs.readFileSync(url, 'utf8');\n //Remove BOM (Byte Mark Order) from utf8 files if it is there.\n if (file[0] === '\\uFEFF') {\n file = file.substring(1);\n }\n callback(file);\n } catch (e) {\n if (errback) {\n errback(e);\n }\n }\n };\n } else if (masterConfig.env === 'xhr' || (!masterConfig.env &&\n text.createXhr())) {\n text.get = function (url, callback, errback, headers) {\n var xhr = text.createXhr(), header;\n xhr.open('GET', url, true);\n\n //Allow plugins direct access to xhr headers\n if (headers) {\n for (header in headers) {\n if (headers.hasOwnProperty(header)) {\n xhr.setRequestHeader(header.toLowerCase(), headers[header]);\n }\n }\n }\n\n //Allow overrides specified in config\n if (masterConfig.onXhr) {\n masterConfig.onXhr(xhr, url);\n }\n\n xhr.onreadystatechange = function (evt) {\n var status, err;\n //Do not explicitly handle errors, those should be\n //visible via console output in the browser.\n if (xhr.readyState === 4) {\n status = xhr.status || 0;\n if (status > 399 && status < 600) {\n //An http 4xx or 5xx error. Signal an error.\n err = new Error(url + ' HTTP status: ' + status);\n err.xhr = xhr;\n if (errback) {\n errback(err);\n }\n } else {\n callback(xhr.responseText);\n }\n\n if (masterConfig.onXhrComplete) {\n masterConfig.onXhrComplete(xhr, url);\n }\n }\n };\n xhr.send(null);\n };\n } else if (masterConfig.env === 'rhino' || (!masterConfig.env &&\n typeof Packages !== 'undefined' && typeof java !== 'undefined')) {\n //Why Java, why is this so awkward?\n text.get = function (url, callback) {\n var stringBuffer, line,\n encoding = \"utf-8\",\n file = new java.io.File(url),\n lineSeparator = java.lang.System.getProperty(\"line.separator\"),\n input = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)),\n content = '';\n try {\n stringBuffer = new java.lang.StringBuffer();\n line = input.readLine();\n\n // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, page 324\n // http://www.unicode.org/faq/utf_bom.html\n\n // Note that when we use utf-8, the BOM should appear as \"EF BB BF\", but it doesn't due to this bug in the JDK:\n // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058\n if (line && line.length() && line.charAt(0) === 0xfeff) {\n // Eat the BOM, since we've already found the encoding on this file,\n // and we plan to concatenating this buffer with others; the BOM should\n // only appear at the top of a file.\n line = line.substring(1);\n }\n\n if (line !== null) {\n stringBuffer.append(line);\n }\n\n while ((line = input.readLine()) !== null) {\n stringBuffer.append(lineSeparator);\n stringBuffer.append(line);\n }\n //Make sure we return a JavaScript string and not a Java string.\n content = String(stringBuffer.toString()); //String\n } finally {\n input.close();\n }\n callback(content);\n };\n } else if (masterConfig.env === 'xpconnect' || (!masterConfig.env &&\n typeof Components !== 'undefined' && Components.classes &&\n Components.interfaces)) {\n //Avert your gaze!\n Cc = Components.classes;\n Ci = Components.interfaces;\n Components.utils['import']('resource://gre/modules/FileUtils.jsm');\n xpcIsWindows = ('@mozilla.org/windows-registry-key;1' in Cc);\n\n text.get = function (url, callback) {\n var inStream, convertStream, fileObj,\n readData = {};\n\n if (xpcIsWindows) {\n url = url.replace(/\\//g, '\\\\');\n }\n\n fileObj = new FileUtils.File(url);\n\n //XPCOM, you so crazy\n try {\n inStream = Cc['@mozilla.org/network/file-input-stream;1']\n .createInstance(Ci.nsIFileInputStream);\n inStream.init(fileObj, 1, 0, false);\n\n convertStream = Cc['@mozilla.org/intl/converter-input-stream;1']\n .createInstance(Ci.nsIConverterInputStream);\n convertStream.init(inStream, \"utf-8\", inStream.available(),\n Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);\n\n convertStream.readString(inStream.available(), readData);\n convertStream.close();\n inStream.close();\n callback(readData.value);\n } catch (e) {\n throw new Error((fileObj && fileObj.path || '') + ': ' + e);\n }\n };\n }\n return text;\n});\n\n","\ndefine('text!version.json',[],function () { return '{\"readiumJsViewer\":{\"sha\":\"4ab8dab28e7ae0a74f2b1716ea09d90f7cf399a4\",\"clean\":false,\"version\":\"0.31.1\",\"chromeVersion\":\"2.31.1\",\"tag\":\"0.31.1-0-g4ab8dab\",\"branch\":\"master\",\"release\":false,\"timestamp\":1537458980651},\"readiumJs\":{\"sha\":\"999d7c32bcdd1184bcc248312267c6e744d737b9\",\"clean\":false,\"version\":\"0.31.1\",\"tag\":\"0.31.1-0-g999d7c3\",\"branch\":\"master\",\"release\":false,\"timestamp\":1537458981371},\"readiumSharedJs\":{\"sha\":\"7f245beba1ed97eaabce0aa5e9cf2f3b23e8f8f6\",\"clean\":false,\"version\":\"0.31.1\",\"tag\":\"0.31.1-0-g7f245be\",\"branch\":\"master\",\"release\":false,\"timestamp\":1537458981943}}';});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-fetch/markup_parser',[],\n function () {\n\n var MarkupParser = function (){\n\n var self = this;\n\n this.parseXml = function(xmlString) {\n return self.parseMarkup(xmlString, 'text/xml');\n };\n\n this.parseMarkup = function(markupString, contentType) {\n var parser = new window.DOMParser;\n return parser.parseFromString(markupString, contentType);\n };\n\n };\n\n return MarkupParser;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-fetch/discover_content_type',['jquery', 'URIjs'], function ($, URI) {\n\n var _instance = undefined;\n\n var ContentTypeDiscovery = function() {\n\n var self = this;\n\n ContentTypeDiscovery.suffixContentTypeMap = {\n css: 'text/css',\n epub: 'application/epub+zip',\n gif: 'image/gif',\n html: 'text/html',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n ncx: 'application/x-dtbncx+xml',\n opf: 'application/oebps-package+xml',\n png: 'image/png',\n svg: 'image/svg+xml',\n xhtml: 'application/xhtml+xml'\n };\n\n this.identifyContentTypeFromFileName = function(contentUrl) {\n var contentUrlSuffix = URI(contentUrl).suffix();\n var contentType = 'application/octet-stream';\n if (typeof ContentTypeDiscovery.suffixContentTypeMap[contentUrlSuffix] !== 'undefined') {\n contentType = ContentTypeDiscovery.suffixContentTypeMap[contentUrlSuffix];\n }\n return contentType;\n };\n\n this.identifyContentType = function (contentUrl) {\n // TODO: Make the call asynchronous (which would require a callback and would probably make sense\n // when calling functions are also remodelled for async).\n\n var contentType = $.ajax({\n type: \"HEAD\",\n url: contentUrl,\n async: false\n }).getResponseHeader('Content-Type');\n if (contentType === null) {\n contentType = self.identifyContentTypeFromFileName(contentUrl);\n console.log('guessed contentType [' + contentType + '] from URI [' + contentUrl +\n ']. Configuring the web server to provide the content type is recommended.');\n\n }\n\n return contentType;\n }\n\n };\n\n if(!_instance) {\n _instance = new ContentTypeDiscovery();\n }\n\n return _instance;\n\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-fetch/plain_resource_fetcher',['jquery', 'URIjs', './discover_content_type'], function ($, URI, ContentTypeDiscovery) {\n\n var PlainResourceFetcher = function(parentFetcher){\n\n var ebookURL = parentFetcher.getEbookURL();\n var ebookURL_filepath = parentFetcher.getEbookURL_FilePath();\n\n var self = this;\n\n // INTERNAL FUNCTIONS\n\n function fetchFileContents(pathRelativeToPackageRoot, readCallback, onerror) {\n var fileUrl = self.resolveURI(pathRelativeToPackageRoot);\n\n if (typeof pathRelativeToPackageRoot === 'undefined') {\n throw 'Fetched file relative path is undefined!';\n }\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', fileUrl, true);\n xhr.responseType = 'arraybuffer';\n xhr.onerror = onerror;\n\n xhr.onload = function (loadEvent) {\n readCallback(xhr.response);\n };\n\n xhr.send();\n }\n\n\n // PUBLIC API\n\n this.resolveURI = function (pathRelativeToPackageRoot) {\n \n var pathRelativeToPackageRootUri = undefined;\n try {\n pathRelativeToPackageRootUri = new URI(pathRelativeToPackageRoot);\n } catch(err) {\n console.error(err);\n console.log(pathRelativeToPackageRoot);\n }\n if (pathRelativeToPackageRootUri && pathRelativeToPackageRootUri.is(\"absolute\")) return pathRelativeToPackageRoot; //pathRelativeToPackageRootUri.scheme() == \"http://\", \"https://\", \"data:\", etc.\n\n\n var url = ebookURL_filepath;\n \n try {\n //url = new URI(relativeUrl).absoluteTo(url).search('').hash('').toString();\n url = new URI(url).search('').hash('').toString();\n } catch(err) {\n console.error(err);\n console.log(url);\n }\n \n return url + (url.charAt(url.length-1) == '/' ? \"\" : \"/\") + pathRelativeToPackageRoot;\n };\n\n this.fetchFileContentsText = function(pathRelativeToPackageRoot, fetchCallback, onerror) {\n var fileUrl = self.resolveURI(pathRelativeToPackageRoot);\n\n if (typeof fileUrl === 'undefined') {\n throw 'Fetched file URL is undefined!';\n }\n $.ajax({\n // encoding: \"UTF-8\",\n // mimeType: \"text/plain; charset=UTF-8\",\n // beforeSend: function( xhr ) {\n // xhr.overrideMimeType(\"text/plain; charset=UTF-8\");\n // },\n isLocal: fileUrl.indexOf(\"http\") === 0 ? false : true,\n url: fileUrl,\n dataType: 'text', //https://api.jquery.com/jQuery.ajax/\n async: true,\n success: function (result) {\n fetchCallback(result);\n },\n error: function (xhr, status, errorThrown) {\n onerror(new Error(errorThrown));\n }\n });\n };\n\n this.fetchFileContentsBlob = function(pathRelativeToPackageRoot, fetchCallback, onerror) {\n\n var decryptionFunction = parentFetcher.getDecryptionFunctionForRelativePath(pathRelativeToPackageRoot);\n if (decryptionFunction) {\n var origFetchCallback = fetchCallback;\n fetchCallback = function (unencryptedBlob) {\n decryptionFunction(unencryptedBlob, function (decryptedBlob) {\n origFetchCallback(decryptedBlob);\n });\n };\n }\n fetchFileContents(pathRelativeToPackageRoot, function (contentsArrayBuffer) {\n var blob = new Blob([contentsArrayBuffer], {\n type: ContentTypeDiscovery.identifyContentTypeFromFileName(pathRelativeToPackageRoot)\n });\n fetchCallback(blob);\n }, onerror);\n };\n };\n\n return PlainResourceFetcher;\n});\n\n","/*\n Copyright (c) 2013 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n(function(obj) {\n\t\"use strict\";\n\n\tvar ERR_BAD_FORMAT = \"File format is not recognized.\";\n\tvar ERR_CRC = \"CRC failed.\";\n\tvar ERR_ENCRYPTED = \"File contains encrypted entry.\";\n\tvar ERR_ZIP64 = \"File is using Zip64 (4gb+ file size).\";\n\tvar ERR_READ = \"Error while reading zip file.\";\n\tvar ERR_WRITE = \"Error while writing zip file.\";\n\tvar ERR_WRITE_DATA = \"Error while writing file data.\";\n\tvar ERR_READ_DATA = \"Error while reading file data.\";\n\tvar ERR_DUPLICATED_NAME = \"File already exists.\";\n\tvar CHUNK_SIZE = 512 * 1024;\n\t\n\tvar TEXT_PLAIN = \"text/plain\";\n\n\tvar appendABViewSupported;\n\ttry {\n\t\tappendABViewSupported = new Blob([ new DataView(new ArrayBuffer(0)) ]).size === 0;\n\t} catch (e) {\n\t}\n\n\tfunction Crc32() {\n\t\tthis.crc = -1;\n\t}\n\tCrc32.prototype.append = function append(data) {\n\t\tvar crc = this.crc | 0, table = this.table;\n\t\tfor (var offset = 0, len = data.length | 0; offset < len; offset++)\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];\n\t\tthis.crc = crc;\n\t};\n\tCrc32.prototype.get = function get() {\n\t\treturn ~this.crc;\n\t};\n\tCrc32.prototype.table = (function() {\n\t\tvar i, j, t, table = []; // Uint32Array is actually slower than []\n\t\tfor (i = 0; i < 256; i++) {\n\t\t\tt = i;\n\t\t\tfor (j = 0; j < 8; j++)\n\t\t\t\tif (t & 1)\n\t\t\t\t\tt = (t >>> 1) ^ 0xEDB88320;\n\t\t\t\telse\n\t\t\t\t\tt = t >>> 1;\n\t\t\ttable[i] = t;\n\t\t}\n\t\treturn table;\n\t})();\n\t\n\t// \"no-op\" codec\n\tfunction NOOP() {}\n\tNOOP.prototype.append = function append(bytes, onprogress) {\n\t\treturn bytes;\n\t};\n\tNOOP.prototype.flush = function flush() {};\n\n\tfunction blobSlice(blob, index, length) {\n\t\tif (index < 0 || length < 0 || index + length > blob.size)\n\t\t\tthrow new RangeError('offset:' + index + ', length:' + length + ', size:' + blob.size);\n\t\tif (blob.slice)\n\t\t\treturn blob.slice(index, index + length);\n\t\telse if (blob.webkitSlice)\n\t\t\treturn blob.webkitSlice(index, index + length);\n\t\telse if (blob.mozSlice)\n\t\t\treturn blob.mozSlice(index, index + length);\n\t\telse if (blob.msSlice)\n\t\t\treturn blob.msSlice(index, index + length);\n\t}\n\n\tfunction getDataHelper(byteLength, bytes) {\n\t\tvar dataBuffer, dataArray;\n\t\tdataBuffer = new ArrayBuffer(byteLength);\n\t\tdataArray = new Uint8Array(dataBuffer);\n\t\tif (bytes)\n\t\t\tdataArray.set(bytes, 0);\n\t\treturn {\n\t\t\tbuffer : dataBuffer,\n\t\t\tarray : dataArray,\n\t\t\tview : new DataView(dataBuffer)\n\t\t};\n\t}\n\n\t// Readers\n\tfunction Reader() {\n\t}\n\n\tfunction TextReader(text) {\n\t\tvar that = this, blobReader;\n\n\t\tfunction init(callback, onerror) {\n\t\t\tvar blob = new Blob([ text ], {\n\t\t\t\ttype : TEXT_PLAIN\n\t\t\t});\n\t\t\tblobReader = new BlobReader(blob);\n\t\t\tblobReader.init(function() {\n\t\t\t\tthat.size = blobReader.size;\n\t\t\t\tcallback();\n\t\t\t}, onerror);\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback, onerror) {\n\t\t\tblobReader.readUint8Array(index, length, callback, onerror);\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tTextReader.prototype = new Reader();\n\tTextReader.prototype.constructor = TextReader;\n\n\tfunction Data64URIReader(dataURI) {\n\t\tvar that = this, dataStart;\n\n\t\tfunction init(callback) {\n\t\t\tvar dataEnd = dataURI.length;\n\t\t\twhile (dataURI.charAt(dataEnd - 1) == \"=\")\n\t\t\t\tdataEnd--;\n\t\t\tdataStart = dataURI.indexOf(\",\") + 1;\n\t\t\tthat.size = Math.floor((dataEnd - dataStart) * 0.75);\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback) {\n\t\t\tvar i, data = getDataHelper(length);\n\t\t\tvar start = Math.floor(index / 3) * 4;\n\t\t\tvar end = Math.ceil((index + length) / 3) * 4;\n\t\t\tvar bytes = obj.atob(dataURI.substring(start + dataStart, end + dataStart));\n\t\t\tvar delta = index - Math.floor(start / 4) * 3;\n\t\t\tfor (i = delta; i < delta + length; i++)\n\t\t\t\tdata.array[i - delta] = bytes.charCodeAt(i);\n\t\t\tcallback(data.array);\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tData64URIReader.prototype = new Reader();\n\tData64URIReader.prototype.constructor = Data64URIReader;\n\n\tfunction BlobReader(blob) {\n\t\tvar that = this;\n\n\t\tfunction init(callback) {\n\t\t\tthat.size = blob.size;\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback, onerror) {\n\t\t\tvar reader = new FileReader();\n\t\t\treader.onload = function(e) {\n\t\t\t\tcallback(new Uint8Array(e.target.result));\n\t\t\t};\n\t\t\treader.onerror = onerror;\n\t\t\ttry {\n\t\t\t\treader.readAsArrayBuffer(blobSlice(blob, index, length));\n\t\t\t} catch (e) {\n\t\t\t\tonerror(e);\n\t\t\t}\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tBlobReader.prototype = new Reader();\n\tBlobReader.prototype.constructor = BlobReader;\n\n\t// Writers\n\n\tfunction Writer() {\n\t}\n\tWriter.prototype.getData = function(callback) {\n\t\tcallback(this.data);\n\t};\n\n\tfunction TextWriter(encoding) {\n\t\tvar that = this, blob;\n\n\t\tfunction init(callback) {\n\t\t\tblob = new Blob([], {\n\t\t\t\ttype : TEXT_PLAIN\n\t\t\t});\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction writeUint8Array(array, callback) {\n\t\t\tblob = new Blob([ blob, appendABViewSupported ? array : array.buffer ], {\n\t\t\t\ttype : TEXT_PLAIN\n\t\t\t});\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction getData(callback, onerror) {\n\t\t\tvar reader = new FileReader();\n\t\t\treader.onload = function(e) {\n\t\t\t\tcallback(e.target.result);\n\t\t\t};\n\t\t\treader.onerror = onerror;\n\t\t\treader.readAsText(blob, encoding);\n\t\t}\n\n\t\tthat.init = init;\n\t\tthat.writeUint8Array = writeUint8Array;\n\t\tthat.getData = getData;\n\t}\n\tTextWriter.prototype = new Writer();\n\tTextWriter.prototype.constructor = TextWriter;\n\n\tfunction Data64URIWriter(contentType) {\n\t\tvar that = this, data = \"\", pending = \"\";\n\n\t\tfunction init(callback) {\n\t\t\tdata += \"data:\" + (contentType || \"\") + \";base64,\";\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction writeUint8Array(array, callback) {\n\t\t\tvar i, delta = pending.length, dataString = pending;\n\t\t\tpending = \"\";\n\t\t\tfor (i = 0; i < (Math.floor((delta + array.length) / 3) * 3) - delta; i++)\n\t\t\t\tdataString += String.fromCharCode(array[i]);\n\t\t\tfor (; i < array.length; i++)\n\t\t\t\tpending += String.fromCharCode(array[i]);\n\t\t\tif (dataString.length > 2)\n\t\t\t\tdata += obj.btoa(dataString);\n\t\t\telse\n\t\t\t\tpending = dataString;\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction getData(callback) {\n\t\t\tcallback(data + obj.btoa(pending));\n\t\t}\n\n\t\tthat.init = init;\n\t\tthat.writeUint8Array = writeUint8Array;\n\t\tthat.getData = getData;\n\t}\n\tData64URIWriter.prototype = new Writer();\n\tData64URIWriter.prototype.constructor = Data64URIWriter;\n\n\tfunction BlobWriter(contentType) {\n\t\tvar data = [], that = this;\n\n\t\tfunction init(callback) {\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction writeUint8Array(array, callback) {\n\t\t\tdata.push(appendABViewSupported ? array : array.buffer);\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction getData(callback) {\n\t\t\tcallback(new Blob(data, {type: contentType}));\n\t\t}\n\n\t\tthat.init = init;\n\t\tthat.writeUint8Array = writeUint8Array;\n\t\tthat.getData = getData;\n\t}\n\tBlobWriter.prototype = new Writer();\n\tBlobWriter.prototype.constructor = BlobWriter;\n\n\t/** \n\t * inflate/deflate core functions\n\t * @param worker {Worker} web worker for the task.\n\t * @param initialMessage {Object} initial message to be sent to the worker. should contain\n\t * sn(serial number for distinguishing multiple tasks sent to the worker), and codecClass.\n\t * This function may add more properties before sending.\n\t */\n\tfunction launchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror) {\n\t\tvar chunkIndex = 0, index, outputSize, sn = initialMessage.sn, crc;\n\n\t\tfunction onflush() {\n\t\t\tworker.removeEventListener('message', onmessage, false);\n\t\t\tonend(outputSize, crc);\n\t\t}\n\n\t\tfunction onmessage(event) {\n\t\t\tvar message = event.data, data = message.data, err = message.error;\n\t\t\tif (err) {\n\t\t\t\terr.toString = function () { return 'Error: ' + this.message; };\n\t\t\t\tonreaderror(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (message.sn !== sn)\n\t\t\t\treturn;\n\t\t\tif (typeof message.codecTime === 'number')\n\t\t\t\tworker.codecTime += message.codecTime; // should be before onflush()\n\t\t\tif (typeof message.crcTime === 'number')\n\t\t\t\tworker.crcTime += message.crcTime;\n\n\t\t\tswitch (message.type) {\n\t\t\t\tcase 'append':\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\toutputSize += data.length;\n\t\t\t\t\t\twriter.writeUint8Array(data, function() {\n\t\t\t\t\t\t\tstep();\n\t\t\t\t\t\t}, onwriteerror);\n\t\t\t\t\t} else\n\t\t\t\t\t\tstep();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'flush':\n\t\t\t\t\tcrc = message.crc;\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\toutputSize += data.length;\n\t\t\t\t\t\twriter.writeUint8Array(data, function() {\n\t\t\t\t\t\t\tonflush();\n\t\t\t\t\t\t}, onwriteerror);\n\t\t\t\t\t} else\n\t\t\t\t\t\tonflush();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'progress':\n\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\tonprogress(index + message.loaded, size);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'importScripts': //no need to handle here\n\t\t\t\tcase 'newTask':\n\t\t\t\tcase 'echo':\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn('zip.js:launchWorkerProcess: unknown message: ', message);\n\t\t\t}\n\t\t}\n\n\t\tfunction step() {\n\t\t\tindex = chunkIndex * CHUNK_SIZE;\n\t\t\t// use `<=` instead of `<`, because `size` may be 0.\n\t\t\tif (index <= size) {\n\t\t\t\treader.readUint8Array(offset + index, Math.min(CHUNK_SIZE, size - index), function(array) {\n\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\tonprogress(index, size);\n\t\t\t\t\tvar msg = index === 0 ? initialMessage : {sn : sn};\n\t\t\t\t\tmsg.type = 'append';\n\t\t\t\t\tmsg.data = array;\n\t\t\t\t\t\n\t\t\t\t\t// posting a message with transferables will fail on IE10\n\t\t\t\t\ttry {\n\t\t\t\t\t\tworker.postMessage(msg, [array.buffer]);\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t\tworker.postMessage(msg); // retry without transferables\n\t\t\t\t\t}\n\t\t\t\t\tchunkIndex++;\n\t\t\t\t}, onreaderror);\n\t\t\t} else {\n\t\t\t\tworker.postMessage({\n\t\t\t\t\tsn: sn,\n\t\t\t\t\ttype: 'flush'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\toutputSize = 0;\n\t\tworker.addEventListener('message', onmessage, false);\n\t\tstep();\n\t}\n\n\tfunction launchProcess(process, reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror) {\n\t\tvar chunkIndex = 0, index, outputSize = 0,\n\t\t\tcrcInput = crcType === 'input',\n\t\t\tcrcOutput = crcType === 'output',\n\t\t\tcrc = new Crc32();\n\t\tfunction step() {\n\t\t\tvar outputData;\n\t\t\tindex = chunkIndex * CHUNK_SIZE;\n\t\t\tif (index < size)\n\t\t\t\treader.readUint8Array(offset + index, Math.min(CHUNK_SIZE, size - index), function(inputData) {\n\t\t\t\t\tvar outputData;\n\t\t\t\t\ttry {\n\t\t\t\t\t\toutputData = process.append(inputData, function(loaded) {\n\t\t\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\t\t\tonprogress(index + loaded, size);\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tonreaderror(e);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (outputData) {\n\t\t\t\t\t\toutputSize += outputData.length;\n\t\t\t\t\t\twriter.writeUint8Array(outputData, function() {\n\t\t\t\t\t\t\tchunkIndex++;\n\t\t\t\t\t\t\tsetTimeout(step, 1);\n\t\t\t\t\t\t}, onwriteerror);\n\t\t\t\t\t\tif (crcOutput)\n\t\t\t\t\t\t\tcrc.append(outputData);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunkIndex++;\n\t\t\t\t\t\tsetTimeout(step, 1);\n\t\t\t\t\t}\n\t\t\t\t\tif (crcInput)\n\t\t\t\t\t\tcrc.append(inputData);\n\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\tonprogress(index, size);\n\t\t\t\t}, onreaderror);\n\t\t\telse {\n\t\t\t\ttry {\n\t\t\t\t\toutputData = process.flush();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tonreaderror(e);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (outputData) {\n\t\t\t\t\tif (crcOutput)\n\t\t\t\t\t\tcrc.append(outputData);\n\t\t\t\t\toutputSize += outputData.length;\n\t\t\t\t\twriter.writeUint8Array(outputData, function() {\n\t\t\t\t\t\tonend(outputSize, crc.get());\n\t\t\t\t\t}, onwriteerror);\n\t\t\t\t} else\n\t\t\t\t\tonend(outputSize, crc.get());\n\t\t\t}\n\t\t}\n\n\t\tstep();\n\t}\n\n\tfunction inflate(worker, sn, reader, writer, offset, size, computeCrc32, onend, onprogress, onreaderror, onwriteerror) {\n\t\tvar crcType = computeCrc32 ? 'output' : 'none';\n\t\tif (obj.zip.useWebWorkers) {\n\t\t\tvar initialMessage = {\n\t\t\t\tsn: sn,\n\t\t\t\tcodecClass: 'Inflater',\n\t\t\t\tcrcType: crcType,\n\t\t\t};\n\t\t\tlaunchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror);\n\t\t} else\n\t\t\tlaunchProcess(new obj.zip.Inflater(), reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror);\n\t}\n\n\tfunction deflate(worker, sn, reader, writer, level, onend, onprogress, onreaderror, onwriteerror) {\n\t\tvar crcType = 'input';\n\t\tif (obj.zip.useWebWorkers) {\n\t\t\tvar initialMessage = {\n\t\t\t\tsn: sn,\n\t\t\t\toptions: {level: level},\n\t\t\t\tcodecClass: 'Deflater',\n\t\t\t\tcrcType: crcType,\n\t\t\t};\n\t\t\tlaunchWorkerProcess(worker, initialMessage, reader, writer, 0, reader.size, onprogress, onend, onreaderror, onwriteerror);\n\t\t} else\n\t\t\tlaunchProcess(new obj.zip.Deflater(), reader, writer, 0, reader.size, crcType, onprogress, onend, onreaderror, onwriteerror);\n\t}\n\n\tfunction copy(worker, sn, reader, writer, offset, size, computeCrc32, onend, onprogress, onreaderror, onwriteerror) {\n\t\tvar crcType = 'input';\n\t\tif (obj.zip.useWebWorkers && computeCrc32) {\n\t\t\tvar initialMessage = {\n\t\t\t\tsn: sn,\n\t\t\t\tcodecClass: 'NOOP',\n\t\t\t\tcrcType: crcType,\n\t\t\t};\n\t\t\tlaunchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror);\n\t\t} else\n\t\t\tlaunchProcess(new NOOP(), reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror);\n\t}\n\n\t// ZipReader\n\n\tfunction decodeASCII(str) {\n\t\tvar i, out = \"\", charCode, extendedASCII = [ '\\u00C7', '\\u00FC', '\\u00E9', '\\u00E2', '\\u00E4', '\\u00E0', '\\u00E5', '\\u00E7', '\\u00EA', '\\u00EB',\n\t\t\t\t'\\u00E8', '\\u00EF', '\\u00EE', '\\u00EC', '\\u00C4', '\\u00C5', '\\u00C9', '\\u00E6', '\\u00C6', '\\u00F4', '\\u00F6', '\\u00F2', '\\u00FB', '\\u00F9',\n\t\t\t\t'\\u00FF', '\\u00D6', '\\u00DC', '\\u00F8', '\\u00A3', '\\u00D8', '\\u00D7', '\\u0192', '\\u00E1', '\\u00ED', '\\u00F3', '\\u00FA', '\\u00F1', '\\u00D1',\n\t\t\t\t'\\u00AA', '\\u00BA', '\\u00BF', '\\u00AE', '\\u00AC', '\\u00BD', '\\u00BC', '\\u00A1', '\\u00AB', '\\u00BB', '_', '_', '_', '\\u00A6', '\\u00A6',\n\t\t\t\t'\\u00C1', '\\u00C2', '\\u00C0', '\\u00A9', '\\u00A6', '\\u00A6', '+', '+', '\\u00A2', '\\u00A5', '+', '+', '-', '-', '+', '-', '+', '\\u00E3',\n\t\t\t\t'\\u00C3', '+', '+', '-', '-', '\\u00A6', '-', '+', '\\u00A4', '\\u00F0', '\\u00D0', '\\u00CA', '\\u00CB', '\\u00C8', 'i', '\\u00CD', '\\u00CE',\n\t\t\t\t'\\u00CF', '+', '+', '_', '_', '\\u00A6', '\\u00CC', '_', '\\u00D3', '\\u00DF', '\\u00D4', '\\u00D2', '\\u00F5', '\\u00D5', '\\u00B5', '\\u00FE',\n\t\t\t\t'\\u00DE', '\\u00DA', '\\u00DB', '\\u00D9', '\\u00FD', '\\u00DD', '\\u00AF', '\\u00B4', '\\u00AD', '\\u00B1', '_', '\\u00BE', '\\u00B6', '\\u00A7',\n\t\t\t\t'\\u00F7', '\\u00B8', '\\u00B0', '\\u00A8', '\\u00B7', '\\u00B9', '\\u00B3', '\\u00B2', '_', ' ' ];\n\t\tfor (i = 0; i < str.length; i++) {\n\t\t\tcharCode = str.charCodeAt(i) & 0xFF;\n\t\t\tif (charCode > 127)\n\t\t\t\tout += extendedASCII[charCode - 128];\n\t\t\telse\n\t\t\t\tout += String.fromCharCode(charCode);\n\t\t}\n\t\treturn out;\n\t}\n\n\tfunction decodeUTF8(string) {\n\t\treturn decodeURIComponent(escape(string));\n\t}\n\n\tfunction getString(bytes) {\n\t\tvar i, str = \"\";\n\t\tfor (i = 0; i < bytes.length; i++)\n\t\t\tstr += String.fromCharCode(bytes[i]);\n\t\treturn str;\n\t}\n\n\tfunction getDate(timeRaw) {\n\t\tvar date = (timeRaw & 0xffff0000) >> 16, time = timeRaw & 0x0000ffff;\n\t\ttry {\n\t\t\treturn new Date(1980 + ((date & 0xFE00) >> 9), ((date & 0x01E0) >> 5) - 1, date & 0x001F, (time & 0xF800) >> 11, (time & 0x07E0) >> 5,\n\t\t\t\t\t(time & 0x001F) * 2, 0);\n\t\t} catch (e) {\n\t\t}\n\t}\n\n\tfunction readCommonHeader(entry, data, index, centralDirectory, onerror) {\n\t\tentry.version = data.view.getUint16(index, true);\n\t\tentry.bitFlag = data.view.getUint16(index + 2, true);\n\t\tentry.compressionMethod = data.view.getUint16(index + 4, true);\n\t\tentry.lastModDateRaw = data.view.getUint32(index + 6, true);\n\t\tentry.lastModDate = getDate(entry.lastModDateRaw);\n\t\tif ((entry.bitFlag & 0x01) === 0x01) {\n\t\t\tonerror(ERR_ENCRYPTED);\n\t\t\treturn;\n\t\t}\n\t\tif (centralDirectory || (entry.bitFlag & 0x0008) != 0x0008) {\n\t\t\tentry.crc32 = data.view.getUint32(index + 10, true);\n\t\t\tentry.compressedSize = data.view.getUint32(index + 14, true);\n\t\t\tentry.uncompressedSize = data.view.getUint32(index + 18, true);\n\t\t}\n\t\tif (entry.compressedSize === 0xFFFFFFFF || entry.uncompressedSize === 0xFFFFFFFF) {\n\t\t\tonerror(ERR_ZIP64);\n\t\t\treturn;\n\t\t}\n\t\tentry.filenameLength = data.view.getUint16(index + 22, true);\n\t\tentry.extraFieldLength = data.view.getUint16(index + 24, true);\n\t}\n\n\tfunction createZipReader(reader, callback, onerror) {\n\t\tvar inflateSN = 0;\n\n\t\tfunction Entry() {\n\t\t}\n\n\t\tEntry.prototype.getData = function(writer, onend, onprogress, checkCrc32) {\n\t\t\tvar that = this;\n\n\t\t\tfunction testCrc32(crc32) {\n\t\t\t\tvar dataCrc32 = getDataHelper(4);\n\t\t\t\tdataCrc32.view.setUint32(0, crc32);\n\t\t\t\treturn that.crc32 == dataCrc32.view.getUint32(0);\n\t\t\t}\n\n\t\t\tfunction getWriterData(uncompressedSize, crc32) {\n\t\t\t\tif (checkCrc32 && !testCrc32(crc32))\n\t\t\t\t\tonerror(ERR_CRC);\n\t\t\t\telse\n\t\t\t\t\twriter.getData(function(data) {\n\t\t\t\t\t\tonend(data);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction onreaderror(err) {\n\t\t\t\tonerror(err || ERR_READ_DATA);\n\t\t\t}\n\n\t\t\tfunction onwriteerror(err) {\n\t\t\t\tonerror(err || ERR_WRITE_DATA);\n\t\t\t}\n\n\t\t\treader.readUint8Array(that.offset, 30, function(bytes) {\n\t\t\t\tvar data = getDataHelper(bytes.length, bytes), dataOffset;\n\t\t\t\tif (data.view.getUint32(0) != 0x504b0304) {\n\t\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treadCommonHeader(that, data, 4, false, onerror);\n\t\t\t\tdataOffset = that.offset + 30 + that.filenameLength + that.extraFieldLength;\n\t\t\t\twriter.init(function() {\n\t\t\t\t\tif (that.compressionMethod === 0)\n\t\t\t\t\t\tcopy(that._worker, inflateSN++, reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror);\n\t\t\t\t\telse\n\t\t\t\t\t\tinflate(that._worker, inflateSN++, reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror);\n\t\t\t\t}, onwriteerror);\n\t\t\t}, onreaderror);\n\t\t};\n\n\t\tfunction seekEOCDR(eocdrCallback) {\n\t\t\t// \"End of central directory record\" is the last part of a zip archive, and is at least 22 bytes long.\n\t\t\t// Zip file comment is the last part of EOCDR and has max length of 64KB,\n\t\t\t// so we only have to search the last 64K + 22 bytes of a archive for EOCDR signature (0x06054b50).\n\t\t\tvar EOCDR_MIN = 22;\n\t\t\tif (reader.size < EOCDR_MIN) {\n\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ZIP_COMMENT_MAX = 256 * 256, EOCDR_MAX = EOCDR_MIN + ZIP_COMMENT_MAX;\n\n\t\t\t// In most cases, the EOCDR is EOCDR_MIN bytes long\n\t\t\tdoSeek(EOCDR_MIN, function() {\n\t\t\t\t// If not found, try within EOCDR_MAX bytes\n\t\t\t\tdoSeek(Math.min(EOCDR_MAX, reader.size), function() {\n\t\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// seek last length bytes of file for EOCDR\n\t\t\tfunction doSeek(length, eocdrNotFoundCallback) {\n\t\t\t\treader.readUint8Array(reader.size - length, length, function(bytes) {\n\t\t\t\t\tfor (var i = bytes.length - EOCDR_MIN; i >= 0; i--) {\n\t\t\t\t\t\tif (bytes[i] === 0x50 && bytes[i + 1] === 0x4b && bytes[i + 2] === 0x05 && bytes[i + 3] === 0x06) {\n\t\t\t\t\t\t\teocdrCallback(new DataView(bytes.buffer, i, EOCDR_MIN));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\teocdrNotFoundCallback();\n\t\t\t\t}, function() {\n\t\t\t\t\tonerror(ERR_READ);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tvar zipReader = {\n\t\t\tgetEntries : function(callback) {\n\t\t\t\tvar worker = this._worker;\n\t\t\t\t// look for End of central directory record\n\t\t\t\tseekEOCDR(function(dataView) {\n\t\t\t\t\tvar datalength, fileslength;\n\t\t\t\t\tdatalength = dataView.getUint32(16, true);\n\t\t\t\t\tfileslength = dataView.getUint16(8, true);\n\t\t\t\t\tif (datalength < 0 || datalength >= reader.size) {\n\t\t\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treader.readUint8Array(datalength, reader.size - datalength, function(bytes) {\n\t\t\t\t\t\tvar i, index = 0, entries = [], entry, filename, comment, data = getDataHelper(bytes.length, bytes);\n\t\t\t\t\t\tfor (i = 0; i < fileslength; i++) {\n\t\t\t\t\t\t\tentry = new Entry();\n\t\t\t\t\t\t\tentry._worker = worker;\n\t\t\t\t\t\t\tif (data.view.getUint32(index) != 0x504b0102) {\n\t\t\t\t\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treadCommonHeader(entry, data, index + 6, true, onerror);\n\t\t\t\t\t\t\tentry.commentLength = data.view.getUint16(index + 32, true);\n\t\t\t\t\t\t\tentry.directory = ((data.view.getUint8(index + 38) & 0x10) == 0x10);\n\t\t\t\t\t\t\tentry.offset = data.view.getUint32(index + 42, true);\n\t\t\t\t\t\t\tfilename = getString(data.array.subarray(index + 46, index + 46 + entry.filenameLength));\n\t\t\t\t\t\t\tentry.filename = ((entry.bitFlag & 0x0800) === 0x0800) ? decodeUTF8(filename) : decodeASCII(filename);\n\t\t\t\t\t\t\tif (!entry.directory && entry.filename.charAt(entry.filename.length - 1) == \"/\")\n\t\t\t\t\t\t\t\tentry.directory = true;\n\t\t\t\t\t\t\tcomment = getString(data.array.subarray(index + 46 + entry.filenameLength + entry.extraFieldLength, index + 46\n\t\t\t\t\t\t\t\t\t+ entry.filenameLength + entry.extraFieldLength + entry.commentLength));\n\t\t\t\t\t\t\tentry.comment = ((entry.bitFlag & 0x0800) === 0x0800) ? decodeUTF8(comment) : decodeASCII(comment);\n\t\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t\t\tindex += 46 + entry.filenameLength + entry.extraFieldLength + entry.commentLength;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback(entries);\n\t\t\t\t\t}, function() {\n\t\t\t\t\t\tonerror(ERR_READ);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tclose : function(callback) {\n\t\t\t\tif (this._worker) {\n\t\t\t\t\tthis._worker.terminate();\n\t\t\t\t\tthis._worker = null;\n\t\t\t\t}\n\t\t\t\tif (callback)\n\t\t\t\t\tcallback();\n\t\t\t},\n\t\t\t_worker: null\n\t\t};\n\n\t\tif (!obj.zip.useWebWorkers)\n\t\t\tcallback(zipReader);\n\t\telse {\n\t\t\tcreateWorker('inflater',\n\t\t\t\tfunction(worker) {\n\t\t\t\t\tzipReader._worker = worker;\n\t\t\t\t\tcallback(zipReader);\n\t\t\t\t},\n\t\t\t\tfunction(err) {\n\t\t\t\t\tonerror(err);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t// ZipWriter\n\n\tfunction encodeUTF8(string) {\n\t\treturn unescape(encodeURIComponent(string));\n\t}\n\n\tfunction getBytes(str) {\n\t\tvar i, array = [];\n\t\tfor (i = 0; i < str.length; i++)\n\t\t\tarray.push(str.charCodeAt(i));\n\t\treturn array;\n\t}\n\n\tfunction createZipWriter(writer, callback, onerror, dontDeflate) {\n\t\tvar files = {}, filenames = [], datalength = 0;\n\t\tvar deflateSN = 0;\n\n\t\tfunction onwriteerror(err) {\n\t\t\tonerror(err || ERR_WRITE);\n\t\t}\n\n\t\tfunction onreaderror(err) {\n\t\t\tonerror(err || ERR_READ_DATA);\n\t\t}\n\n\t\tvar zipWriter = {\n\t\t\tadd : function(name, reader, onend, onprogress, options) {\n\t\t\t\tvar header, filename, date;\n\t\t\t\tvar worker = this._worker;\n\n\t\t\t\tfunction writeHeader(callback) {\n\t\t\t\t\tvar data;\n\t\t\t\t\tdate = options.lastModDate || new Date();\n\t\t\t\t\theader = getDataHelper(26);\n\t\t\t\t\tfiles[name] = {\n\t\t\t\t\t\theaderArray : header.array,\n\t\t\t\t\t\tdirectory : options.directory,\n\t\t\t\t\t\tfilename : filename,\n\t\t\t\t\t\toffset : datalength,\n\t\t\t\t\t\tcomment : getBytes(encodeUTF8(options.comment || \"\"))\n\t\t\t\t\t};\n\t\t\t\t\theader.view.setUint32(0, 0x14000808);\n\t\t\t\t\tif (options.version)\n\t\t\t\t\t\theader.view.setUint8(0, options.version);\n\t\t\t\t\tif (!dontDeflate && options.level !== 0 && !options.directory)\n\t\t\t\t\t\theader.view.setUint16(4, 0x0800);\n\t\t\t\t\theader.view.setUint16(6, (((date.getHours() << 6) | date.getMinutes()) << 5) | date.getSeconds() / 2, true);\n\t\t\t\t\theader.view.setUint16(8, ((((date.getFullYear() - 1980) << 4) | (date.getMonth() + 1)) << 5) | date.getDate(), true);\n\t\t\t\t\theader.view.setUint16(22, filename.length, true);\n\t\t\t\t\tdata = getDataHelper(30 + filename.length);\n\t\t\t\t\tdata.view.setUint32(0, 0x504b0304);\n\t\t\t\t\tdata.array.set(header.array, 4);\n\t\t\t\t\tdata.array.set(filename, 30);\n\t\t\t\t\tdatalength += data.array.length;\n\t\t\t\t\twriter.writeUint8Array(data.array, callback, onwriteerror);\n\t\t\t\t}\n\n\t\t\t\tfunction writeFooter(compressedLength, crc32) {\n\t\t\t\t\tvar footer = getDataHelper(16);\n\t\t\t\t\tdatalength += compressedLength || 0;\n\t\t\t\t\tfooter.view.setUint32(0, 0x504b0708);\n\t\t\t\t\tif (typeof crc32 != \"undefined\") {\n\t\t\t\t\t\theader.view.setUint32(10, crc32, true);\n\t\t\t\t\t\tfooter.view.setUint32(4, crc32, true);\n\t\t\t\t\t}\n\t\t\t\t\tif (reader) {\n\t\t\t\t\t\tfooter.view.setUint32(8, compressedLength, true);\n\t\t\t\t\t\theader.view.setUint32(14, compressedLength, true);\n\t\t\t\t\t\tfooter.view.setUint32(12, reader.size, true);\n\t\t\t\t\t\theader.view.setUint32(18, reader.size, true);\n\t\t\t\t\t}\n\t\t\t\t\twriter.writeUint8Array(footer.array, function() {\n\t\t\t\t\t\tdatalength += 16;\n\t\t\t\t\t\tonend();\n\t\t\t\t\t}, onwriteerror);\n\t\t\t\t}\n\n\t\t\t\tfunction writeFile() {\n\t\t\t\t\toptions = options || {};\n\t\t\t\t\tname = name.trim();\n\t\t\t\t\tif (options.directory && name.charAt(name.length - 1) != \"/\")\n\t\t\t\t\t\tname += \"/\";\n\t\t\t\t\tif (files.hasOwnProperty(name)) {\n\t\t\t\t\t\tonerror(ERR_DUPLICATED_NAME);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tfilename = getBytes(encodeUTF8(name));\n\t\t\t\t\tfilenames.push(name);\n\t\t\t\t\twriteHeader(function() {\n\t\t\t\t\t\tif (reader)\n\t\t\t\t\t\t\tif (dontDeflate || options.level === 0)\n\t\t\t\t\t\t\t\tcopy(worker, deflateSN++, reader, writer, 0, reader.size, true, writeFooter, onprogress, onreaderror, onwriteerror);\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tdeflate(worker, deflateSN++, reader, writer, options.level, writeFooter, onprogress, onreaderror, onwriteerror);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\twriteFooter();\n\t\t\t\t\t}, onwriteerror);\n\t\t\t\t}\n\n\t\t\t\tif (reader)\n\t\t\t\t\treader.init(writeFile, onreaderror);\n\t\t\t\telse\n\t\t\t\t\twriteFile();\n\t\t\t},\n\t\t\tclose : function(callback) {\n\t\t\t\tif (this._worker) {\n\t\t\t\t\tthis._worker.terminate();\n\t\t\t\t\tthis._worker = null;\n\t\t\t\t}\n\n\t\t\t\tvar data, length = 0, index = 0, indexFilename, file;\n\t\t\t\tfor (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {\n\t\t\t\t\tfile = files[filenames[indexFilename]];\n\t\t\t\t\tlength += 46 + file.filename.length + file.comment.length;\n\t\t\t\t}\n\t\t\t\tdata = getDataHelper(length + 22);\n\t\t\t\tfor (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {\n\t\t\t\t\tfile = files[filenames[indexFilename]];\n\t\t\t\t\tdata.view.setUint32(index, 0x504b0102);\n\t\t\t\t\tdata.view.setUint16(index + 4, 0x1400);\n\t\t\t\t\tdata.array.set(file.headerArray, index + 6);\n\t\t\t\t\tdata.view.setUint16(index + 32, file.comment.length, true);\n\t\t\t\t\tif (file.directory)\n\t\t\t\t\t\tdata.view.setUint8(index + 38, 0x10);\n\t\t\t\t\tdata.view.setUint32(index + 42, file.offset, true);\n\t\t\t\t\tdata.array.set(file.filename, index + 46);\n\t\t\t\t\tdata.array.set(file.comment, index + 46 + file.filename.length);\n\t\t\t\t\tindex += 46 + file.filename.length + file.comment.length;\n\t\t\t\t}\n\t\t\t\tdata.view.setUint32(index, 0x504b0506);\n\t\t\t\tdata.view.setUint16(index + 8, filenames.length, true);\n\t\t\t\tdata.view.setUint16(index + 10, filenames.length, true);\n\t\t\t\tdata.view.setUint32(index + 12, length, true);\n\t\t\t\tdata.view.setUint32(index + 16, datalength, true);\n\t\t\t\twriter.writeUint8Array(data.array, function() {\n\t\t\t\t\twriter.getData(callback);\n\t\t\t\t}, onwriteerror);\n\t\t\t},\n\t\t\t_worker: null\n\t\t};\n\n\t\tif (!obj.zip.useWebWorkers)\n\t\t\tcallback(zipWriter);\n\t\telse {\n\t\t\tcreateWorker('deflater',\n\t\t\t\tfunction(worker) {\n\t\t\t\t\tzipWriter._worker = worker;\n\t\t\t\t\tcallback(zipWriter);\n\t\t\t\t},\n\t\t\t\tfunction(err) {\n\t\t\t\t\tonerror(err);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction resolveURLs(urls) {\n\t\tvar a = document.createElement('a');\n\t\treturn urls.map(function(url) {\n\t\t\ta.href = url;\n\t\t\treturn a.href;\n\t\t});\n\t}\n\n\tvar DEFAULT_WORKER_SCRIPTS = {\n\t\tdeflater: ['z-worker.js', 'deflate.js'],\n\t\tinflater: ['z-worker.js', 'inflate.js']\n\t};\n\tfunction createWorker(type, callback, onerror) {\n\t\tif (obj.zip.workerScripts !== null && obj.zip.workerScriptsPath !== null) {\n\t\t\tonerror(new Error('Either zip.workerScripts or zip.workerScriptsPath may be set, not both.'));\n\t\t\treturn;\n\t\t}\n\t\tvar scripts;\n\t\tif (obj.zip.workerScripts) {\n\t\t\tscripts = obj.zip.workerScripts[type];\n\t\t\tif (!Array.isArray(scripts)) {\n\t\t\t\tonerror(new Error('zip.workerScripts.' + type + ' is not an array!'));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tscripts = resolveURLs(scripts);\n\t\t} else {\n\t\t\tscripts = DEFAULT_WORKER_SCRIPTS[type].slice(0);\n\t\t\tscripts[0] = (obj.zip.workerScriptsPath || '') + scripts[0];\n\t\t}\n\t\tvar worker = new Worker(scripts[0]);\n\t\t// record total consumed time by inflater/deflater/crc32 in this worker\n\t\tworker.codecTime = worker.crcTime = 0;\n\t\tworker.postMessage({ type: 'importScripts', scripts: scripts.slice(1) });\n\t\tworker.addEventListener('message', onmessage);\n\t\tfunction onmessage(ev) {\n\t\t\tvar msg = ev.data;\n\t\t\tif (msg.error) {\n\t\t\t\tworker.terminate(); // should before onerror(), because onerror() may throw.\n\t\t\t\tonerror(msg.error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (msg.type === 'importScripts') {\n\t\t\t\tworker.removeEventListener('message', onmessage);\n\t\t\t\tworker.removeEventListener('error', errorHandler);\n\t\t\t\tcallback(worker);\n\t\t\t}\n\t\t}\n\t\t// catch entry script loading error and other unhandled errors\n\t\tworker.addEventListener('error', errorHandler);\n\t\tfunction errorHandler(err) {\n\t\t\tworker.terminate();\n\t\t\tonerror(err);\n\t\t}\n\t}\n\n\tfunction onerror_default(error) {\n\t\tconsole.error(error);\n\t}\n\tobj.zip = {\n\t\tReader : Reader,\n\t\tWriter : Writer,\n\t\tBlobReader : BlobReader,\n\t\tData64URIReader : Data64URIReader,\n\t\tTextReader : TextReader,\n\t\tBlobWriter : BlobWriter,\n\t\tData64URIWriter : Data64URIWriter,\n\t\tTextWriter : TextWriter,\n\t\tcreateReader : function(reader, callback, onerror) {\n\t\t\tonerror = onerror || onerror_default;\n\n\t\t\treader.init(function() {\n\t\t\t\tcreateZipReader(reader, callback, onerror);\n\t\t\t}, onerror);\n\t\t},\n\t\tcreateWriter : function(writer, callback, onerror, dontDeflate) {\n\t\t\tonerror = onerror || onerror_default;\n\t\t\tdontDeflate = !!dontDeflate;\n\n\t\t\twriter.init(function() {\n\t\t\t\tcreateZipWriter(writer, callback, onerror, dontDeflate);\n\t\t\t}, onerror);\n\t\t},\n\t\tuseWebWorkers : true,\n\t\t/**\n\t\t * Directory containing the default worker scripts (z-worker.js, deflate.js, and inflate.js), relative to current base url.\n\t\t * E.g.: zip.workerScripts = './';\n\t\t */\n\t\tworkerScriptsPath : null,\n\t\t/**\n\t\t * Advanced option to control which scripts are loaded in the Web worker. If this option is specified, then workerScriptsPath must not be set.\n\t\t * workerScripts.deflater/workerScripts.inflater should be arrays of urls to scripts for deflater/inflater, respectively.\n\t\t * Scripts in the array are executed in order, and the first one should be z-worker.js, which is used to start the worker.\n\t\t * All urls are relative to current base url.\n\t\t * E.g.:\n\t\t * zip.workerScripts = {\n\t\t * deflater: ['z-worker.js', 'deflate.js'],\n\t\t * inflater: ['z-worker.js', 'inflate.js']\n\t\t * };\n\t\t */\n\t\tworkerScripts : null,\n\t};\n\n})(this);\n\ndefine(\"zip\", (function (global) {\n return function () {\n var ret, fn;\n return ret || global.zip;\n };\n}(this)));\n\n","/*\n Copyright (c) 2013 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n(function() {\n\t\"use strict\";\n\tvar table = {\n\t\t\"application\" : {\n\t\t\t\"andrew-inset\" : \"ez\",\n\t\t\t\"annodex\" : \"anx\",\n\t\t\t\"atom+xml\" : \"atom\",\n\t\t\t\"atomcat+xml\" : \"atomcat\",\n\t\t\t\"atomserv+xml\" : \"atomsrv\",\n\t\t\t\"bbolin\" : \"lin\",\n\t\t\t\"cap\" : [ \"cap\", \"pcap\" ],\n\t\t\t\"cu-seeme\" : \"cu\",\n\t\t\t\"davmount+xml\" : \"davmount\",\n\t\t\t\"dsptype\" : \"tsp\",\n\t\t\t\"ecmascript\" : [ \"es\", \"ecma\" ],\n\t\t\t\"futuresplash\" : \"spl\",\n\t\t\t\"hta\" : \"hta\",\n\t\t\t\"java-archive\" : \"jar\",\n\t\t\t\"java-serialized-object\" : \"ser\",\n\t\t\t\"java-vm\" : \"class\",\n\t\t\t\"javascript\" : \"js\",\n\t\t\t\"m3g\" : \"m3g\",\n\t\t\t\"mac-binhex40\" : \"hqx\",\n\t\t\t\"mathematica\" : [ \"nb\", \"ma\", \"mb\" ],\n\t\t\t\"msaccess\" : \"mdb\",\n\t\t\t\"msword\" : [ \"doc\", \"dot\" ],\n\t\t\t\"mxf\" : \"mxf\",\n\t\t\t\"oda\" : \"oda\",\n\t\t\t\"ogg\" : \"ogx\",\n\t\t\t\"pdf\" : \"pdf\",\n\t\t\t\"pgp-keys\" : \"key\",\n\t\t\t\"pgp-signature\" : [ \"asc\", \"sig\" ],\n\t\t\t\"pics-rules\" : \"prf\",\n\t\t\t\"postscript\" : [ \"ps\", \"ai\", \"eps\", \"epsi\", \"epsf\", \"eps2\", \"eps3\" ],\n\t\t\t\"rar\" : \"rar\",\n\t\t\t\"rdf+xml\" : \"rdf\",\n\t\t\t\"rss+xml\" : \"rss\",\n\t\t\t\"rtf\" : \"rtf\",\n\t\t\t\"smil\" : [ \"smi\", \"smil\" ],\n\t\t\t\"xhtml+xml\" : [ \"xhtml\", \"xht\" ],\n\t\t\t\"xml\" : [ \"xml\", \"xsl\", \"xsd\" ],\n\t\t\t\"xspf+xml\" : \"xspf\",\n\t\t\t\"zip\" : \"zip\",\n\t\t\t\"vnd.android.package-archive\" : \"apk\",\n\t\t\t\"vnd.cinderella\" : \"cdy\",\n\t\t\t\"vnd.google-earth.kml+xml\" : \"kml\",\n\t\t\t\"vnd.google-earth.kmz\" : \"kmz\",\n\t\t\t\"vnd.mozilla.xul+xml\" : \"xul\",\n\t\t\t\"vnd.ms-excel\" : [ \"xls\", \"xlb\", \"xlt\", \"xlm\", \"xla\", \"xlc\", \"xlw\" ],\n\t\t\t\"vnd.ms-pki.seccat\" : \"cat\",\n\t\t\t\"vnd.ms-pki.stl\" : \"stl\",\n\t\t\t\"vnd.ms-powerpoint\" : [ \"ppt\", \"pps\", \"pot\" ],\n\t\t\t\"vnd.oasis.opendocument.chart\" : \"odc\",\n\t\t\t\"vnd.oasis.opendocument.database\" : \"odb\",\n\t\t\t\"vnd.oasis.opendocument.formula\" : \"odf\",\n\t\t\t\"vnd.oasis.opendocument.graphics\" : \"odg\",\n\t\t\t\"vnd.oasis.opendocument.graphics-template\" : \"otg\",\n\t\t\t\"vnd.oasis.opendocument.image\" : \"odi\",\n\t\t\t\"vnd.oasis.opendocument.presentation\" : \"odp\",\n\t\t\t\"vnd.oasis.opendocument.presentation-template\" : \"otp\",\n\t\t\t\"vnd.oasis.opendocument.spreadsheet\" : \"ods\",\n\t\t\t\"vnd.oasis.opendocument.spreadsheet-template\" : \"ots\",\n\t\t\t\"vnd.oasis.opendocument.text\" : \"odt\",\n\t\t\t\"vnd.oasis.opendocument.text-master\" : \"odm\",\n\t\t\t\"vnd.oasis.opendocument.text-template\" : \"ott\",\n\t\t\t\"vnd.oasis.opendocument.text-web\" : \"oth\",\n\t\t\t\"vnd.openxmlformats-officedocument.spreadsheetml.sheet\" : \"xlsx\",\n\t\t\t\"vnd.openxmlformats-officedocument.spreadsheetml.template\" : \"xltx\",\n\t\t\t\"vnd.openxmlformats-officedocument.presentationml.presentation\" : \"pptx\",\n\t\t\t\"vnd.openxmlformats-officedocument.presentationml.slideshow\" : \"ppsx\",\n\t\t\t\"vnd.openxmlformats-officedocument.presentationml.template\" : \"potx\",\n\t\t\t\"vnd.openxmlformats-officedocument.wordprocessingml.document\" : \"docx\",\n\t\t\t\"vnd.openxmlformats-officedocument.wordprocessingml.template\" : \"dotx\",\n\t\t\t\"vnd.smaf\" : \"mmf\",\n\t\t\t\"vnd.stardivision.calc\" : \"sdc\",\n\t\t\t\"vnd.stardivision.chart\" : \"sds\",\n\t\t\t\"vnd.stardivision.draw\" : \"sda\",\n\t\t\t\"vnd.stardivision.impress\" : \"sdd\",\n\t\t\t\"vnd.stardivision.math\" : [ \"sdf\", \"smf\" ],\n\t\t\t\"vnd.stardivision.writer\" : [ \"sdw\", \"vor\" ],\n\t\t\t\"vnd.stardivision.writer-global\" : \"sgl\",\n\t\t\t\"vnd.sun.xml.calc\" : \"sxc\",\n\t\t\t\"vnd.sun.xml.calc.template\" : \"stc\",\n\t\t\t\"vnd.sun.xml.draw\" : \"sxd\",\n\t\t\t\"vnd.sun.xml.draw.template\" : \"std\",\n\t\t\t\"vnd.sun.xml.impress\" : \"sxi\",\n\t\t\t\"vnd.sun.xml.impress.template\" : \"sti\",\n\t\t\t\"vnd.sun.xml.math\" : \"sxm\",\n\t\t\t\"vnd.sun.xml.writer\" : \"sxw\",\n\t\t\t\"vnd.sun.xml.writer.global\" : \"sxg\",\n\t\t\t\"vnd.sun.xml.writer.template\" : \"stw\",\n\t\t\t\"vnd.symbian.install\" : [ \"sis\", \"sisx\" ],\n\t\t\t\"vnd.visio\" : [ \"vsd\", \"vst\", \"vss\", \"vsw\" ],\n\t\t\t\"vnd.wap.wbxml\" : \"wbxml\",\n\t\t\t\"vnd.wap.wmlc\" : \"wmlc\",\n\t\t\t\"vnd.wap.wmlscriptc\" : \"wmlsc\",\n\t\t\t\"vnd.wordperfect\" : \"wpd\",\n\t\t\t\"vnd.wordperfect5.1\" : \"wp5\",\n\t\t\t\"x-123\" : \"wk\",\n\t\t\t\"x-7z-compressed\" : \"7z\",\n\t\t\t\"x-abiword\" : \"abw\",\n\t\t\t\"x-apple-diskimage\" : \"dmg\",\n\t\t\t\"x-bcpio\" : \"bcpio\",\n\t\t\t\"x-bittorrent\" : \"torrent\",\n\t\t\t\"x-cbr\" : [ \"cbr\", \"cba\", \"cbt\", \"cb7\" ],\n\t\t\t\"x-cbz\" : \"cbz\",\n\t\t\t\"x-cdf\" : [ \"cdf\", \"cda\" ],\n\t\t\t\"x-cdlink\" : \"vcd\",\n\t\t\t\"x-chess-pgn\" : \"pgn\",\n\t\t\t\"x-cpio\" : \"cpio\",\n\t\t\t\"x-csh\" : \"csh\",\n\t\t\t\"x-debian-package\" : [ \"deb\", \"udeb\" ],\n\t\t\t\"x-director\" : [ \"dcr\", \"dir\", \"dxr\", \"cst\", \"cct\", \"cxt\", \"w3d\", \"fgd\", \"swa\" ],\n\t\t\t\"x-dms\" : \"dms\",\n\t\t\t\"x-doom\" : \"wad\",\n\t\t\t\"x-dvi\" : \"dvi\",\n\t\t\t\"x-httpd-eruby\" : \"rhtml\",\n\t\t\t\"x-font\" : \"pcf.Z\",\n\t\t\t\"x-freemind\" : \"mm\",\n\t\t\t\"x-gnumeric\" : \"gnumeric\",\n\t\t\t\"x-go-sgf\" : \"sgf\",\n\t\t\t\"x-graphing-calculator\" : \"gcf\",\n\t\t\t\"x-gtar\" : [ \"gtar\", \"taz\" ],\n\t\t\t\"x-hdf\" : \"hdf\",\n\t\t\t\"x-httpd-php\" : [ \"phtml\", \"pht\", \"php\" ],\n\t\t\t\"x-httpd-php-source\" : \"phps\",\n\t\t\t\"x-httpd-php3\" : \"php3\",\n\t\t\t\"x-httpd-php3-preprocessed\" : \"php3p\",\n\t\t\t\"x-httpd-php4\" : \"php4\",\n\t\t\t\"x-httpd-php5\" : \"php5\",\n\t\t\t\"x-ica\" : \"ica\",\n\t\t\t\"x-info\" : \"info\",\n\t\t\t\"x-internet-signup\" : [ \"ins\", \"isp\" ],\n\t\t\t\"x-iphone\" : \"iii\",\n\t\t\t\"x-iso9660-image\" : \"iso\",\n\t\t\t\"x-java-jnlp-file\" : \"jnlp\",\n\t\t\t\"x-jmol\" : \"jmz\",\n\t\t\t\"x-killustrator\" : \"kil\",\n\t\t\t\"x-koan\" : [ \"skp\", \"skd\", \"skt\", \"skm\" ],\n\t\t\t\"x-kpresenter\" : [ \"kpr\", \"kpt\" ],\n\t\t\t\"x-kword\" : [ \"kwd\", \"kwt\" ],\n\t\t\t\"x-latex\" : \"latex\",\n\t\t\t\"x-lha\" : \"lha\",\n\t\t\t\"x-lyx\" : \"lyx\",\n\t\t\t\"x-lzh\" : \"lzh\",\n\t\t\t\"x-lzx\" : \"lzx\",\n\t\t\t\"x-maker\" : [ \"frm\", \"maker\", \"frame\", \"fm\", \"fb\", \"book\", \"fbdoc\" ],\n\t\t\t\"x-ms-wmd\" : \"wmd\",\n\t\t\t\"x-ms-wmz\" : \"wmz\",\n\t\t\t\"x-msdos-program\" : [ \"com\", \"exe\", \"bat\", \"dll\" ],\n\t\t\t\"x-msi\" : \"msi\",\n\t\t\t\"x-netcdf\" : [ \"nc\", \"cdf\" ],\n\t\t\t\"x-ns-proxy-autoconfig\" : [ \"pac\", \"dat\" ],\n\t\t\t\"x-nwc\" : \"nwc\",\n\t\t\t\"x-object\" : \"o\",\n\t\t\t\"x-oz-application\" : \"oza\",\n\t\t\t\"x-pkcs7-certreqresp\" : \"p7r\",\n\t\t\t\"x-python-code\" : [ \"pyc\", \"pyo\" ],\n\t\t\t\"x-qgis\" : [ \"qgs\", \"shp\", \"shx\" ],\n\t\t\t\"x-quicktimeplayer\" : \"qtl\",\n\t\t\t\"x-redhat-package-manager\" : \"rpm\",\n\t\t\t\"x-ruby\" : \"rb\",\n\t\t\t\"x-sh\" : \"sh\",\n\t\t\t\"x-shar\" : \"shar\",\n\t\t\t\"x-shockwave-flash\" : [ \"swf\", \"swfl\" ],\n\t\t\t\"x-silverlight\" : \"scr\",\n\t\t\t\"x-stuffit\" : \"sit\",\n\t\t\t\"x-sv4cpio\" : \"sv4cpio\",\n\t\t\t\"x-sv4crc\" : \"sv4crc\",\n\t\t\t\"x-tar\" : \"tar\",\n\t\t\t\"x-tcl\" : \"tcl\",\n\t\t\t\"x-tex-gf\" : \"gf\",\n\t\t\t\"x-tex-pk\" : \"pk\",\n\t\t\t\"x-texinfo\" : [ \"texinfo\", \"texi\" ],\n\t\t\t\"x-trash\" : [ \"~\", \"%\", \"bak\", \"old\", \"sik\" ],\n\t\t\t\"x-troff\" : [ \"t\", \"tr\", \"roff\" ],\n\t\t\t\"x-troff-man\" : \"man\",\n\t\t\t\"x-troff-me\" : \"me\",\n\t\t\t\"x-troff-ms\" : \"ms\",\n\t\t\t\"x-ustar\" : \"ustar\",\n\t\t\t\"x-wais-source\" : \"src\",\n\t\t\t\"x-wingz\" : \"wz\",\n\t\t\t\"x-x509-ca-cert\" : [ \"crt\", \"der\", \"cer\" ],\n\t\t\t\"x-xcf\" : \"xcf\",\n\t\t\t\"x-xfig\" : \"fig\",\n\t\t\t\"x-xpinstall\" : \"xpi\",\n\t\t\t\"applixware\" : \"aw\",\n\t\t\t\"atomsvc+xml\" : \"atomsvc\",\n\t\t\t\"ccxml+xml\" : \"ccxml\",\n\t\t\t\"cdmi-capability\" : \"cdmia\",\n\t\t\t\"cdmi-container\" : \"cdmic\",\n\t\t\t\"cdmi-domain\" : \"cdmid\",\n\t\t\t\"cdmi-object\" : \"cdmio\",\n\t\t\t\"cdmi-queue\" : \"cdmiq\",\n\t\t\t\"docbook+xml\" : \"dbk\",\n\t\t\t\"dssc+der\" : \"dssc\",\n\t\t\t\"dssc+xml\" : \"xdssc\",\n\t\t\t\"emma+xml\" : \"emma\",\n\t\t\t\"epub+zip\" : \"epub\",\n\t\t\t\"exi\" : \"exi\",\n\t\t\t\"font-tdpfr\" : \"pfr\",\n\t\t\t\"gml+xml\" : \"gml\",\n\t\t\t\"gpx+xml\" : \"gpx\",\n\t\t\t\"gxf\" : \"gxf\",\n\t\t\t\"hyperstudio\" : \"stk\",\n\t\t\t\"inkml+xml\" : [ \"ink\", \"inkml\" ],\n\t\t\t\"ipfix\" : \"ipfix\",\n\t\t\t\"json\" : \"json\",\n\t\t\t\"jsonml+json\" : \"jsonml\",\n\t\t\t\"lost+xml\" : \"lostxml\",\n\t\t\t\"mads+xml\" : \"mads\",\n\t\t\t\"marc\" : \"mrc\",\n\t\t\t\"marcxml+xml\" : \"mrcx\",\n\t\t\t\"mathml+xml\" : \"mathml\",\n\t\t\t\"mbox\" : \"mbox\",\n\t\t\t\"mediaservercontrol+xml\" : \"mscml\",\n\t\t\t\"metalink+xml\" : \"metalink\",\n\t\t\t\"metalink4+xml\" : \"meta4\",\n\t\t\t\"mets+xml\" : \"mets\",\n\t\t\t\"mods+xml\" : \"mods\",\n\t\t\t\"mp21\" : [ \"m21\", \"mp21\" ],\n\t\t\t\"mp4\" : \"mp4s\",\n\t\t\t\"oebps-package+xml\" : \"opf\",\n\t\t\t\"omdoc+xml\" : \"omdoc\",\n\t\t\t\"onenote\" : [ \"onetoc\", \"onetoc2\", \"onetmp\", \"onepkg\" ],\n\t\t\t\"oxps\" : \"oxps\",\n\t\t\t\"patch-ops-error+xml\" : \"xer\",\n\t\t\t\"pgp-encrypted\" : \"pgp\",\n\t\t\t\"pkcs10\" : \"p10\",\n\t\t\t\"pkcs7-mime\" : [ \"p7m\", \"p7c\" ],\n\t\t\t\"pkcs7-signature\" : \"p7s\",\n\t\t\t\"pkcs8\" : \"p8\",\n\t\t\t\"pkix-attr-cert\" : \"ac\",\n\t\t\t\"pkix-crl\" : \"crl\",\n\t\t\t\"pkix-pkipath\" : \"pkipath\",\n\t\t\t\"pkixcmp\" : \"pki\",\n\t\t\t\"pls+xml\" : \"pls\",\n\t\t\t\"prs.cww\" : \"cww\",\n\t\t\t\"pskc+xml\" : \"pskcxml\",\n\t\t\t\"reginfo+xml\" : \"rif\",\n\t\t\t\"relax-ng-compact-syntax\" : \"rnc\",\n\t\t\t\"resource-lists+xml\" : \"rl\",\n\t\t\t\"resource-lists-diff+xml\" : \"rld\",\n\t\t\t\"rls-services+xml\" : \"rs\",\n\t\t\t\"rpki-ghostbusters\" : \"gbr\",\n\t\t\t\"rpki-manifest\" : \"mft\",\n\t\t\t\"rpki-roa\" : \"roa\",\n\t\t\t\"rsd+xml\" : \"rsd\",\n\t\t\t\"sbml+xml\" : \"sbml\",\n\t\t\t\"scvp-cv-request\" : \"scq\",\n\t\t\t\"scvp-cv-response\" : \"scs\",\n\t\t\t\"scvp-vp-request\" : \"spq\",\n\t\t\t\"scvp-vp-response\" : \"spp\",\n\t\t\t\"sdp\" : \"sdp\",\n\t\t\t\"set-payment-initiation\" : \"setpay\",\n\t\t\t\"set-registration-initiation\" : \"setreg\",\n\t\t\t\"shf+xml\" : \"shf\",\n\t\t\t\"sparql-query\" : \"rq\",\n\t\t\t\"sparql-results+xml\" : \"srx\",\n\t\t\t\"srgs\" : \"gram\",\n\t\t\t\"srgs+xml\" : \"grxml\",\n\t\t\t\"sru+xml\" : \"sru\",\n\t\t\t\"ssdl+xml\" : \"ssdl\",\n\t\t\t\"ssml+xml\" : \"ssml\",\n\t\t\t\"tei+xml\" : [ \"tei\", \"teicorpus\" ],\n\t\t\t\"thraud+xml\" : \"tfi\",\n\t\t\t\"timestamped-data\" : \"tsd\",\n\t\t\t\"vnd.3gpp.pic-bw-large\" : \"plb\",\n\t\t\t\"vnd.3gpp.pic-bw-small\" : \"psb\",\n\t\t\t\"vnd.3gpp.pic-bw-var\" : \"pvb\",\n\t\t\t\"vnd.3gpp2.tcap\" : \"tcap\",\n\t\t\t\"vnd.3m.post-it-notes\" : \"pwn\",\n\t\t\t\"vnd.accpac.simply.aso\" : \"aso\",\n\t\t\t\"vnd.accpac.simply.imp\" : \"imp\",\n\t\t\t\"vnd.acucobol\" : \"acu\",\n\t\t\t\"vnd.acucorp\" : [ \"atc\", \"acutc\" ],\n\t\t\t\"vnd.adobe.air-application-installer-package+zip\" : \"air\",\n\t\t\t\"vnd.adobe.formscentral.fcdt\" : \"fcdt\",\n\t\t\t\"vnd.adobe.fxp\" : [ \"fxp\", \"fxpl\" ],\n\t\t\t\"vnd.adobe.xdp+xml\" : \"xdp\",\n\t\t\t\"vnd.adobe.xfdf\" : \"xfdf\",\n\t\t\t\"vnd.ahead.space\" : \"ahead\",\n\t\t\t\"vnd.airzip.filesecure.azf\" : \"azf\",\n\t\t\t\"vnd.airzip.filesecure.azs\" : \"azs\",\n\t\t\t\"vnd.amazon.ebook\" : \"azw\",\n\t\t\t\"vnd.americandynamics.acc\" : \"acc\",\n\t\t\t\"vnd.amiga.ami\" : \"ami\",\n\t\t\t\"vnd.anser-web-certificate-issue-initiation\" : \"cii\",\n\t\t\t\"vnd.anser-web-funds-transfer-initiation\" : \"fti\",\n\t\t\t\"vnd.antix.game-component\" : \"atx\",\n\t\t\t\"vnd.apple.installer+xml\" : \"mpkg\",\n\t\t\t\"vnd.apple.mpegurl\" : \"m3u8\",\n\t\t\t\"vnd.aristanetworks.swi\" : \"swi\",\n\t\t\t\"vnd.astraea-software.iota\" : \"iota\",\n\t\t\t\"vnd.audiograph\" : \"aep\",\n\t\t\t\"vnd.blueice.multipass\" : \"mpm\",\n\t\t\t\"vnd.bmi\" : \"bmi\",\n\t\t\t\"vnd.businessobjects\" : \"rep\",\n\t\t\t\"vnd.chemdraw+xml\" : \"cdxml\",\n\t\t\t\"vnd.chipnuts.karaoke-mmd\" : \"mmd\",\n\t\t\t\"vnd.claymore\" : \"cla\",\n\t\t\t\"vnd.cloanto.rp9\" : \"rp9\",\n\t\t\t\"vnd.clonk.c4group\" : [ \"c4g\", \"c4d\", \"c4f\", \"c4p\", \"c4u\" ],\n\t\t\t\"vnd.cluetrust.cartomobile-config\" : \"c11amc\",\n\t\t\t\"vnd.cluetrust.cartomobile-config-pkg\" : \"c11amz\",\n\t\t\t\"vnd.commonspace\" : \"csp\",\n\t\t\t\"vnd.contact.cmsg\" : \"cdbcmsg\",\n\t\t\t\"vnd.cosmocaller\" : \"cmc\",\n\t\t\t\"vnd.crick.clicker\" : \"clkx\",\n\t\t\t\"vnd.crick.clicker.keyboard\" : \"clkk\",\n\t\t\t\"vnd.crick.clicker.palette\" : \"clkp\",\n\t\t\t\"vnd.crick.clicker.template\" : \"clkt\",\n\t\t\t\"vnd.crick.clicker.wordbank\" : \"clkw\",\n\t\t\t\"vnd.criticaltools.wbs+xml\" : \"wbs\",\n\t\t\t\"vnd.ctc-posml\" : \"pml\",\n\t\t\t\"vnd.cups-ppd\" : \"ppd\",\n\t\t\t\"vnd.curl.car\" : \"car\",\n\t\t\t\"vnd.curl.pcurl\" : \"pcurl\",\n\t\t\t\"vnd.dart\" : \"dart\",\n\t\t\t\"vnd.data-vision.rdz\" : \"rdz\",\n\t\t\t\"vnd.dece.data\" : [ \"uvf\", \"uvvf\", \"uvd\", \"uvvd\" ],\n\t\t\t\"vnd.dece.ttml+xml\" : [ \"uvt\", \"uvvt\" ],\n\t\t\t\"vnd.dece.unspecified\" : [ \"uvx\", \"uvvx\" ],\n\t\t\t\"vnd.dece.zip\" : [ \"uvz\", \"uvvz\" ],\n\t\t\t\"vnd.denovo.fcselayout-link\" : \"fe_launch\",\n\t\t\t\"vnd.dna\" : \"dna\",\n\t\t\t\"vnd.dolby.mlp\" : \"mlp\",\n\t\t\t\"vnd.dpgraph\" : \"dpg\",\n\t\t\t\"vnd.dreamfactory\" : \"dfac\",\n\t\t\t\"vnd.ds-keypoint\" : \"kpxx\",\n\t\t\t\"vnd.dvb.ait\" : \"ait\",\n\t\t\t\"vnd.dvb.service\" : \"svc\",\n\t\t\t\"vnd.dynageo\" : \"geo\",\n\t\t\t\"vnd.ecowin.chart\" : \"mag\",\n\t\t\t\"vnd.enliven\" : \"nml\",\n\t\t\t\"vnd.epson.esf\" : \"esf\",\n\t\t\t\"vnd.epson.msf\" : \"msf\",\n\t\t\t\"vnd.epson.quickanime\" : \"qam\",\n\t\t\t\"vnd.epson.salt\" : \"slt\",\n\t\t\t\"vnd.epson.ssf\" : \"ssf\",\n\t\t\t\"vnd.eszigno3+xml\" : [ \"es3\", \"et3\" ],\n\t\t\t\"vnd.ezpix-album\" : \"ez2\",\n\t\t\t\"vnd.ezpix-package\" : \"ez3\",\n\t\t\t\"vnd.fdf\" : \"fdf\",\n\t\t\t\"vnd.fdsn.mseed\" : \"mseed\",\n\t\t\t\"vnd.fdsn.seed\" : [ \"seed\", \"dataless\" ],\n\t\t\t\"vnd.flographit\" : \"gph\",\n\t\t\t\"vnd.fluxtime.clip\" : \"ftc\",\n\t\t\t\"vnd.framemaker\" : [ \"fm\", \"frame\", \"maker\", \"book\" ],\n\t\t\t\"vnd.frogans.fnc\" : \"fnc\",\n\t\t\t\"vnd.frogans.ltf\" : \"ltf\",\n\t\t\t\"vnd.fsc.weblaunch\" : \"fsc\",\n\t\t\t\"vnd.fujitsu.oasys\" : \"oas\",\n\t\t\t\"vnd.fujitsu.oasys2\" : \"oa2\",\n\t\t\t\"vnd.fujitsu.oasys3\" : \"oa3\",\n\t\t\t\"vnd.fujitsu.oasysgp\" : \"fg5\",\n\t\t\t\"vnd.fujitsu.oasysprs\" : \"bh2\",\n\t\t\t\"vnd.fujixerox.ddd\" : \"ddd\",\n\t\t\t\"vnd.fujixerox.docuworks\" : \"xdw\",\n\t\t\t\"vnd.fujixerox.docuworks.binder\" : \"xbd\",\n\t\t\t\"vnd.fuzzysheet\" : \"fzs\",\n\t\t\t\"vnd.genomatix.tuxedo\" : \"txd\",\n\t\t\t\"vnd.geogebra.file\" : \"ggb\",\n\t\t\t\"vnd.geogebra.tool\" : \"ggt\",\n\t\t\t\"vnd.geometry-explorer\" : [ \"gex\", \"gre\" ],\n\t\t\t\"vnd.geonext\" : \"gxt\",\n\t\t\t\"vnd.geoplan\" : \"g2w\",\n\t\t\t\"vnd.geospace\" : \"g3w\",\n\t\t\t\"vnd.gmx\" : \"gmx\",\n\t\t\t\"vnd.grafeq\" : [ \"gqf\", \"gqs\" ],\n\t\t\t\"vnd.groove-account\" : \"gac\",\n\t\t\t\"vnd.groove-help\" : \"ghf\",\n\t\t\t\"vnd.groove-identity-message\" : \"gim\",\n\t\t\t\"vnd.groove-injector\" : \"grv\",\n\t\t\t\"vnd.groove-tool-message\" : \"gtm\",\n\t\t\t\"vnd.groove-tool-template\" : \"tpl\",\n\t\t\t\"vnd.groove-vcard\" : \"vcg\",\n\t\t\t\"vnd.hal+xml\" : \"hal\",\n\t\t\t\"vnd.handheld-entertainment+xml\" : \"zmm\",\n\t\t\t\"vnd.hbci\" : \"hbci\",\n\t\t\t\"vnd.hhe.lesson-player\" : \"les\",\n\t\t\t\"vnd.hp-hpgl\" : \"hpgl\",\n\t\t\t\"vnd.hp-hpid\" : \"hpid\",\n\t\t\t\"vnd.hp-hps\" : \"hps\",\n\t\t\t\"vnd.hp-jlyt\" : \"jlt\",\n\t\t\t\"vnd.hp-pcl\" : \"pcl\",\n\t\t\t\"vnd.hp-pclxl\" : \"pclxl\",\n\t\t\t\"vnd.hydrostatix.sof-data\" : \"sfd-hdstx\",\n\t\t\t\"vnd.ibm.minipay\" : \"mpy\",\n\t\t\t\"vnd.ibm.modcap\" : [ \"afp\", \"listafp\", \"list3820\" ],\n\t\t\t\"vnd.ibm.rights-management\" : \"irm\",\n\t\t\t\"vnd.ibm.secure-container\" : \"sc\",\n\t\t\t\"vnd.iccprofile\" : [ \"icc\", \"icm\" ],\n\t\t\t\"vnd.igloader\" : \"igl\",\n\t\t\t\"vnd.immervision-ivp\" : \"ivp\",\n\t\t\t\"vnd.immervision-ivu\" : \"ivu\",\n\t\t\t\"vnd.insors.igm\" : \"igm\",\n\t\t\t\"vnd.intercon.formnet\" : [ \"xpw\", \"xpx\" ],\n\t\t\t\"vnd.intergeo\" : \"i2g\",\n\t\t\t\"vnd.intu.qbo\" : \"qbo\",\n\t\t\t\"vnd.intu.qfx\" : \"qfx\",\n\t\t\t\"vnd.ipunplugged.rcprofile\" : \"rcprofile\",\n\t\t\t\"vnd.irepository.package+xml\" : \"irp\",\n\t\t\t\"vnd.is-xpr\" : \"xpr\",\n\t\t\t\"vnd.isac.fcs\" : \"fcs\",\n\t\t\t\"vnd.jam\" : \"jam\",\n\t\t\t\"vnd.jcp.javame.midlet-rms\" : \"rms\",\n\t\t\t\"vnd.jisp\" : \"jisp\",\n\t\t\t\"vnd.joost.joda-archive\" : \"joda\",\n\t\t\t\"vnd.kahootz\" : [ \"ktz\", \"ktr\" ],\n\t\t\t\"vnd.kde.karbon\" : \"karbon\",\n\t\t\t\"vnd.kde.kchart\" : \"chrt\",\n\t\t\t\"vnd.kde.kformula\" : \"kfo\",\n\t\t\t\"vnd.kde.kivio\" : \"flw\",\n\t\t\t\"vnd.kde.kontour\" : \"kon\",\n\t\t\t\"vnd.kde.kpresenter\" : [ \"kpr\", \"kpt\" ],\n\t\t\t\"vnd.kde.kspread\" : \"ksp\",\n\t\t\t\"vnd.kde.kword\" : [ \"kwd\", \"kwt\" ],\n\t\t\t\"vnd.kenameaapp\" : \"htke\",\n\t\t\t\"vnd.kidspiration\" : \"kia\",\n\t\t\t\"vnd.kinar\" : [ \"kne\", \"knp\" ],\n\t\t\t\"vnd.koan\" : [ \"skp\", \"skd\", \"skt\", \"skm\" ],\n\t\t\t\"vnd.kodak-descriptor\" : \"sse\",\n\t\t\t\"vnd.las.las+xml\" : \"lasxml\",\n\t\t\t\"vnd.llamagraphics.life-balance.desktop\" : \"lbd\",\n\t\t\t\"vnd.llamagraphics.life-balance.exchange+xml\" : \"lbe\",\n\t\t\t\"vnd.lotus-1-2-3\" : \"123\",\n\t\t\t\"vnd.lotus-approach\" : \"apr\",\n\t\t\t\"vnd.lotus-freelance\" : \"pre\",\n\t\t\t\"vnd.lotus-notes\" : \"nsf\",\n\t\t\t\"vnd.lotus-organizer\" : \"org\",\n\t\t\t\"vnd.lotus-screencam\" : \"scm\",\n\t\t\t\"vnd.lotus-wordpro\" : \"lwp\",\n\t\t\t\"vnd.macports.portpkg\" : \"portpkg\",\n\t\t\t\"vnd.mcd\" : \"mcd\",\n\t\t\t\"vnd.medcalcdata\" : \"mc1\",\n\t\t\t\"vnd.mediastation.cdkey\" : \"cdkey\",\n\t\t\t\"vnd.mfer\" : \"mwf\",\n\t\t\t\"vnd.mfmp\" : \"mfm\",\n\t\t\t\"vnd.micrografx.flo\" : \"flo\",\n\t\t\t\"vnd.micrografx.igx\" : \"igx\",\n\t\t\t\"vnd.mif\" : \"mif\",\n\t\t\t\"vnd.mobius.daf\" : \"daf\",\n\t\t\t\"vnd.mobius.dis\" : \"dis\",\n\t\t\t\"vnd.mobius.mbk\" : \"mbk\",\n\t\t\t\"vnd.mobius.mqy\" : \"mqy\",\n\t\t\t\"vnd.mobius.msl\" : \"msl\",\n\t\t\t\"vnd.mobius.plc\" : \"plc\",\n\t\t\t\"vnd.mobius.txf\" : \"txf\",\n\t\t\t\"vnd.mophun.application\" : \"mpn\",\n\t\t\t\"vnd.mophun.certificate\" : \"mpc\",\n\t\t\t\"vnd.ms-artgalry\" : \"cil\",\n\t\t\t\"vnd.ms-cab-compressed\" : \"cab\",\n\t\t\t\"vnd.ms-excel.addin.macroenabled.12\" : \"xlam\",\n\t\t\t\"vnd.ms-excel.sheet.binary.macroenabled.12\" : \"xlsb\",\n\t\t\t\"vnd.ms-excel.sheet.macroenabled.12\" : \"xlsm\",\n\t\t\t\"vnd.ms-excel.template.macroenabled.12\" : \"xltm\",\n\t\t\t\"vnd.ms-fontobject\" : \"eot\",\n\t\t\t\"vnd.ms-htmlhelp\" : \"chm\",\n\t\t\t\"vnd.ms-ims\" : \"ims\",\n\t\t\t\"vnd.ms-lrm\" : \"lrm\",\n\t\t\t\"vnd.ms-officetheme\" : \"thmx\",\n\t\t\t\"vnd.ms-powerpoint.addin.macroenabled.12\" : \"ppam\",\n\t\t\t\"vnd.ms-powerpoint.presentation.macroenabled.12\" : \"pptm\",\n\t\t\t\"vnd.ms-powerpoint.slide.macroenabled.12\" : \"sldm\",\n\t\t\t\"vnd.ms-powerpoint.slideshow.macroenabled.12\" : \"ppsm\",\n\t\t\t\"vnd.ms-powerpoint.template.macroenabled.12\" : \"potm\",\n\t\t\t\"vnd.ms-project\" : [ \"mpp\", \"mpt\" ],\n\t\t\t\"vnd.ms-word.document.macroenabled.12\" : \"docm\",\n\t\t\t\"vnd.ms-word.template.macroenabled.12\" : \"dotm\",\n\t\t\t\"vnd.ms-works\" : [ \"wps\", \"wks\", \"wcm\", \"wdb\" ],\n\t\t\t\"vnd.ms-wpl\" : \"wpl\",\n\t\t\t\"vnd.ms-xpsdocument\" : \"xps\",\n\t\t\t\"vnd.mseq\" : \"mseq\",\n\t\t\t\"vnd.musician\" : \"mus\",\n\t\t\t\"vnd.muvee.style\" : \"msty\",\n\t\t\t\"vnd.mynfc\" : \"taglet\",\n\t\t\t\"vnd.neurolanguage.nlu\" : \"nlu\",\n\t\t\t\"vnd.nitf\" : [ \"ntf\", \"nitf\" ],\n\t\t\t\"vnd.noblenet-directory\" : \"nnd\",\n\t\t\t\"vnd.noblenet-sealer\" : \"nns\",\n\t\t\t\"vnd.noblenet-web\" : \"nnw\",\n\t\t\t\"vnd.nokia.n-gage.data\" : \"ngdat\",\n\t\t\t\"vnd.nokia.n-gage.symbian.install\" : \"n-gage\",\n\t\t\t\"vnd.nokia.radio-preset\" : \"rpst\",\n\t\t\t\"vnd.nokia.radio-presets\" : \"rpss\",\n\t\t\t\"vnd.novadigm.edm\" : \"edm\",\n\t\t\t\"vnd.novadigm.edx\" : \"edx\",\n\t\t\t\"vnd.novadigm.ext\" : \"ext\",\n\t\t\t\"vnd.oasis.opendocument.chart-template\" : \"otc\",\n\t\t\t\"vnd.oasis.opendocument.formula-template\" : \"odft\",\n\t\t\t\"vnd.oasis.opendocument.image-template\" : \"oti\",\n\t\t\t\"vnd.olpc-sugar\" : \"xo\",\n\t\t\t\"vnd.oma.dd2+xml\" : \"dd2\",\n\t\t\t\"vnd.openofficeorg.extension\" : \"oxt\",\n\t\t\t\"vnd.openxmlformats-officedocument.presentationml.slide\" : \"sldx\",\n\t\t\t\"vnd.osgeo.mapguide.package\" : \"mgp\",\n\t\t\t\"vnd.osgi.dp\" : \"dp\",\n\t\t\t\"vnd.osgi.subsystem\" : \"esa\",\n\t\t\t\"vnd.palm\" : [ \"pdb\", \"pqa\", \"oprc\" ],\n\t\t\t\"vnd.pawaafile\" : \"paw\",\n\t\t\t\"vnd.pg.format\" : \"str\",\n\t\t\t\"vnd.pg.osasli\" : \"ei6\",\n\t\t\t\"vnd.picsel\" : \"efif\",\n\t\t\t\"vnd.pmi.widget\" : \"wg\",\n\t\t\t\"vnd.pocketlearn\" : \"plf\",\n\t\t\t\"vnd.powerbuilder6\" : \"pbd\",\n\t\t\t\"vnd.previewsystems.box\" : \"box\",\n\t\t\t\"vnd.proteus.magazine\" : \"mgz\",\n\t\t\t\"vnd.publishare-delta-tree\" : \"qps\",\n\t\t\t\"vnd.pvi.ptid1\" : \"ptid\",\n\t\t\t\"vnd.quark.quarkxpress\" : [ \"qxd\", \"qxt\", \"qwd\", \"qwt\", \"qxl\", \"qxb\" ],\n\t\t\t\"vnd.realvnc.bed\" : \"bed\",\n\t\t\t\"vnd.recordare.musicxml\" : \"mxl\",\n\t\t\t\"vnd.recordare.musicxml+xml\" : \"musicxml\",\n\t\t\t\"vnd.rig.cryptonote\" : \"cryptonote\",\n\t\t\t\"vnd.rn-realmedia\" : \"rm\",\n\t\t\t\"vnd.rn-realmedia-vbr\" : \"rmvb\",\n\t\t\t\"vnd.route66.link66+xml\" : \"link66\",\n\t\t\t\"vnd.sailingtracker.track\" : \"st\",\n\t\t\t\"vnd.seemail\" : \"see\",\n\t\t\t\"vnd.sema\" : \"sema\",\n\t\t\t\"vnd.semd\" : \"semd\",\n\t\t\t\"vnd.semf\" : \"semf\",\n\t\t\t\"vnd.shana.informed.formdata\" : \"ifm\",\n\t\t\t\"vnd.shana.informed.formtemplate\" : \"itp\",\n\t\t\t\"vnd.shana.informed.interchange\" : \"iif\",\n\t\t\t\"vnd.shana.informed.package\" : \"ipk\",\n\t\t\t\"vnd.simtech-mindmapper\" : [ \"twd\", \"twds\" ],\n\t\t\t\"vnd.smart.teacher\" : \"teacher\",\n\t\t\t\"vnd.solent.sdkm+xml\" : [ \"sdkm\", \"sdkd\" ],\n\t\t\t\"vnd.spotfire.dxp\" : \"dxp\",\n\t\t\t\"vnd.spotfire.sfs\" : \"sfs\",\n\t\t\t\"vnd.stepmania.package\" : \"smzip\",\n\t\t\t\"vnd.stepmania.stepchart\" : \"sm\",\n\t\t\t\"vnd.sus-calendar\" : [ \"sus\", \"susp\" ],\n\t\t\t\"vnd.svd\" : \"svd\",\n\t\t\t\"vnd.syncml+xml\" : \"xsm\",\n\t\t\t\"vnd.syncml.dm+wbxml\" : \"bdm\",\n\t\t\t\"vnd.syncml.dm+xml\" : \"xdm\",\n\t\t\t\"vnd.tao.intent-module-archive\" : \"tao\",\n\t\t\t\"vnd.tcpdump.pcap\" : [ \"pcap\", \"cap\", \"dmp\" ],\n\t\t\t\"vnd.tmobile-livetv\" : \"tmo\",\n\t\t\t\"vnd.trid.tpt\" : \"tpt\",\n\t\t\t\"vnd.triscape.mxs\" : \"mxs\",\n\t\t\t\"vnd.trueapp\" : \"tra\",\n\t\t\t\"vnd.ufdl\" : [ \"ufd\", \"ufdl\" ],\n\t\t\t\"vnd.uiq.theme\" : \"utz\",\n\t\t\t\"vnd.umajin\" : \"umj\",\n\t\t\t\"vnd.unity\" : \"unityweb\",\n\t\t\t\"vnd.uoml+xml\" : \"uoml\",\n\t\t\t\"vnd.vcx\" : \"vcx\",\n\t\t\t\"vnd.visionary\" : \"vis\",\n\t\t\t\"vnd.vsf\" : \"vsf\",\n\t\t\t\"vnd.webturbo\" : \"wtb\",\n\t\t\t\"vnd.wolfram.player\" : \"nbp\",\n\t\t\t\"vnd.wqd\" : \"wqd\",\n\t\t\t\"vnd.wt.stf\" : \"stf\",\n\t\t\t\"vnd.xara\" : \"xar\",\n\t\t\t\"vnd.xfdl\" : \"xfdl\",\n\t\t\t\"vnd.yamaha.hv-dic\" : \"hvd\",\n\t\t\t\"vnd.yamaha.hv-script\" : \"hvs\",\n\t\t\t\"vnd.yamaha.hv-voice\" : \"hvp\",\n\t\t\t\"vnd.yamaha.openscoreformat\" : \"osf\",\n\t\t\t\"vnd.yamaha.openscoreformat.osfpvg+xml\" : \"osfpvg\",\n\t\t\t\"vnd.yamaha.smaf-audio\" : \"saf\",\n\t\t\t\"vnd.yamaha.smaf-phrase\" : \"spf\",\n\t\t\t\"vnd.yellowriver-custom-menu\" : \"cmp\",\n\t\t\t\"vnd.zul\" : [ \"zir\", \"zirz\" ],\n\t\t\t\"vnd.zzazz.deck+xml\" : \"zaz\",\n\t\t\t\"voicexml+xml\" : \"vxml\",\n\t\t\t\"widget\" : \"wgt\",\n\t\t\t\"winhlp\" : \"hlp\",\n\t\t\t\"wsdl+xml\" : \"wsdl\",\n\t\t\t\"wspolicy+xml\" : \"wspolicy\",\n\t\t\t\"x-ace-compressed\" : \"ace\",\n\t\t\t\"x-authorware-bin\" : [ \"aab\", \"x32\", \"u32\", \"vox\" ],\n\t\t\t\"x-authorware-map\" : \"aam\",\n\t\t\t\"x-authorware-seg\" : \"aas\",\n\t\t\t\"x-blorb\" : [ \"blb\", \"blorb\" ],\n\t\t\t\"x-bzip\" : \"bz\",\n\t\t\t\"x-bzip2\" : [ \"bz2\", \"boz\" ],\n\t\t\t\"x-cfs-compressed\" : \"cfs\",\n\t\t\t\"x-chat\" : \"chat\",\n\t\t\t\"x-conference\" : \"nsc\",\n\t\t\t\"x-dgc-compressed\" : \"dgc\",\n\t\t\t\"x-dtbncx+xml\" : \"ncx\",\n\t\t\t\"x-dtbook+xml\" : \"dtb\",\n\t\t\t\"x-dtbresource+xml\" : \"res\",\n\t\t\t\"x-eva\" : \"eva\",\n\t\t\t\"x-font-bdf\" : \"bdf\",\n\t\t\t\"x-font-ghostscript\" : \"gsf\",\n\t\t\t\"x-font-linux-psf\" : \"psf\",\n\t\t\t\"x-font-otf\" : \"otf\",\n\t\t\t\"x-font-pcf\" : \"pcf\",\n\t\t\t\"x-font-snf\" : \"snf\",\n\t\t\t\"x-font-ttf\" : [ \"ttf\", \"ttc\" ],\n\t\t\t\"x-font-type1\" : [ \"pfa\", \"pfb\", \"pfm\", \"afm\" ],\n\t\t\t\"x-font-woff\" : \"woff\",\n\t\t\t\"x-freearc\" : \"arc\",\n\t\t\t\"x-gca-compressed\" : \"gca\",\n\t\t\t\"x-glulx\" : \"ulx\",\n\t\t\t\"x-gramps-xml\" : \"gramps\",\n\t\t\t\"x-install-instructions\" : \"install\",\n\t\t\t\"x-lzh-compressed\" : [ \"lzh\", \"lha\" ],\n\t\t\t\"x-mie\" : \"mie\",\n\t\t\t\"x-mobipocket-ebook\" : [ \"prc\", \"mobi\" ],\n\t\t\t\"x-ms-application\" : \"application\",\n\t\t\t\"x-ms-shortcut\" : \"lnk\",\n\t\t\t\"x-ms-xbap\" : \"xbap\",\n\t\t\t\"x-msbinder\" : \"obd\",\n\t\t\t\"x-mscardfile\" : \"crd\",\n\t\t\t\"x-msclip\" : \"clp\",\n\t\t\t\"x-msdownload\" : [ \"exe\", \"dll\", \"com\", \"bat\", \"msi\" ],\n\t\t\t\"x-msmediaview\" : [ \"mvb\", \"m13\", \"m14\" ],\n\t\t\t\"x-msmetafile\" : [ \"wmf\", \"wmz\", \"emf\", \"emz\" ],\n\t\t\t\"x-msmoney\" : \"mny\",\n\t\t\t\"x-mspublisher\" : \"pub\",\n\t\t\t\"x-msschedule\" : \"scd\",\n\t\t\t\"x-msterminal\" : \"trm\",\n\t\t\t\"x-mswrite\" : \"wri\",\n\t\t\t\"x-nzb\" : \"nzb\",\n\t\t\t\"x-pkcs12\" : [ \"p12\", \"pfx\" ],\n\t\t\t\"x-pkcs7-certificates\" : [ \"p7b\", \"spc\" ],\n\t\t\t\"x-research-info-systems\" : \"ris\",\n\t\t\t\"x-silverlight-app\" : \"xap\",\n\t\t\t\"x-sql\" : \"sql\",\n\t\t\t\"x-stuffitx\" : \"sitx\",\n\t\t\t\"x-subrip\" : \"srt\",\n\t\t\t\"x-t3vm-image\" : \"t3\",\n\t\t\t\"x-tads\" : \"gam\",\n\t\t\t\"x-tex\" : \"tex\",\n\t\t\t\"x-tex-tfm\" : \"tfm\",\n\t\t\t\"x-tgif\" : \"obj\",\n\t\t\t\"x-xliff+xml\" : \"xlf\",\n\t\t\t\"x-xz\" : \"xz\",\n\t\t\t\"x-zmachine\" : [ \"z1\", \"z2\", \"z3\", \"z4\", \"z5\", \"z6\", \"z7\", \"z8\" ],\n\t\t\t\"xaml+xml\" : \"xaml\",\n\t\t\t\"xcap-diff+xml\" : \"xdf\",\n\t\t\t\"xenc+xml\" : \"xenc\",\n\t\t\t\"xml-dtd\" : \"dtd\",\n\t\t\t\"xop+xml\" : \"xop\",\n\t\t\t\"xproc+xml\" : \"xpl\",\n\t\t\t\"xslt+xml\" : \"xslt\",\n\t\t\t\"xv+xml\" : [ \"mxml\", \"xhvml\", \"xvml\", \"xvm\" ],\n\t\t\t\"yang\" : \"yang\",\n\t\t\t\"yin+xml\" : \"yin\",\n\t\t\t\"envoy\" : \"evy\",\n\t\t\t\"fractals\" : \"fif\",\n\t\t\t\"internet-property-stream\" : \"acx\",\n\t\t\t\"olescript\" : \"axs\",\n\t\t\t\"vnd.ms-outlook\" : \"msg\",\n\t\t\t\"vnd.ms-pkicertstore\" : \"sst\",\n\t\t\t\"x-compress\" : \"z\",\n\t\t\t\"x-compressed\" : \"tgz\",\n\t\t\t\"x-gzip\" : \"gz\",\n\t\t\t\"x-perfmon\" : [ \"pma\", \"pmc\", \"pml\", \"pmr\", \"pmw\" ],\n\t\t\t\"x-pkcs7-mime\" : [ \"p7c\", \"p7m\" ],\n\t\t\t\"ynd.ms-pkipko\" : \"pko\"\n\t\t},\n\t\t\"audio\" : {\n\t\t\t\"amr\" : \"amr\",\n\t\t\t\"amr-wb\" : \"awb\",\n\t\t\t\"annodex\" : \"axa\",\n\t\t\t\"basic\" : [ \"au\", \"snd\" ],\n\t\t\t\"flac\" : \"flac\",\n\t\t\t\"midi\" : [ \"mid\", \"midi\", \"kar\", \"rmi\" ],\n\t\t\t\"mpeg\" : [ \"mpga\", \"mpega\", \"mp2\", \"mp3\", \"m4a\", \"mp2a\", \"m2a\", \"m3a\" ],\n\t\t\t\"mpegurl\" : \"m3u\",\n\t\t\t\"ogg\" : [ \"oga\", \"ogg\", \"spx\" ],\n\t\t\t\"prs.sid\" : \"sid\",\n\t\t\t\"x-aiff\" : [ \"aif\", \"aiff\", \"aifc\" ],\n\t\t\t\"x-gsm\" : \"gsm\",\n\t\t\t\"x-ms-wma\" : \"wma\",\n\t\t\t\"x-ms-wax\" : \"wax\",\n\t\t\t\"x-pn-realaudio\" : \"ram\",\n\t\t\t\"x-realaudio\" : \"ra\",\n\t\t\t\"x-sd2\" : \"sd2\",\n\t\t\t\"x-wav\" : \"wav\",\n\t\t\t\"adpcm\" : \"adp\",\n\t\t\t\"mp4\" : \"mp4a\",\n\t\t\t\"s3m\" : \"s3m\",\n\t\t\t\"silk\" : \"sil\",\n\t\t\t\"vnd.dece.audio\" : [ \"uva\", \"uvva\" ],\n\t\t\t\"vnd.digital-winds\" : \"eol\",\n\t\t\t\"vnd.dra\" : \"dra\",\n\t\t\t\"vnd.dts\" : \"dts\",\n\t\t\t\"vnd.dts.hd\" : \"dtshd\",\n\t\t\t\"vnd.lucent.voice\" : \"lvp\",\n\t\t\t\"vnd.ms-playready.media.pya\" : \"pya\",\n\t\t\t\"vnd.nuera.ecelp4800\" : \"ecelp4800\",\n\t\t\t\"vnd.nuera.ecelp7470\" : \"ecelp7470\",\n\t\t\t\"vnd.nuera.ecelp9600\" : \"ecelp9600\",\n\t\t\t\"vnd.rip\" : \"rip\",\n\t\t\t\"webm\" : \"weba\",\n\t\t\t\"x-aac\" : \"aac\",\n\t\t\t\"x-caf\" : \"caf\",\n\t\t\t\"x-matroska\" : \"mka\",\n\t\t\t\"x-pn-realaudio-plugin\" : \"rmp\",\n\t\t\t\"xm\" : \"xm\",\n\t\t\t\"mid\" : [ \"mid\", \"rmi\" ]\n\t\t},\n\t\t\"chemical\" : {\n\t\t\t\"x-alchemy\" : \"alc\",\n\t\t\t\"x-cache\" : [ \"cac\", \"cache\" ],\n\t\t\t\"x-cache-csf\" : \"csf\",\n\t\t\t\"x-cactvs-binary\" : [ \"cbin\", \"cascii\", \"ctab\" ],\n\t\t\t\"x-cdx\" : \"cdx\",\n\t\t\t\"x-chem3d\" : \"c3d\",\n\t\t\t\"x-cif\" : \"cif\",\n\t\t\t\"x-cmdf\" : \"cmdf\",\n\t\t\t\"x-cml\" : \"cml\",\n\t\t\t\"x-compass\" : \"cpa\",\n\t\t\t\"x-crossfire\" : \"bsd\",\n\t\t\t\"x-csml\" : [ \"csml\", \"csm\" ],\n\t\t\t\"x-ctx\" : \"ctx\",\n\t\t\t\"x-cxf\" : [ \"cxf\", \"cef\" ],\n\t\t\t\"x-embl-dl-nucleotide\" : [ \"emb\", \"embl\" ],\n\t\t\t\"x-gamess-input\" : [ \"inp\", \"gam\", \"gamin\" ],\n\t\t\t\"x-gaussian-checkpoint\" : [ \"fch\", \"fchk\" ],\n\t\t\t\"x-gaussian-cube\" : \"cub\",\n\t\t\t\"x-gaussian-input\" : [ \"gau\", \"gjc\", \"gjf\" ],\n\t\t\t\"x-gaussian-log\" : \"gal\",\n\t\t\t\"x-gcg8-sequence\" : \"gcg\",\n\t\t\t\"x-genbank\" : \"gen\",\n\t\t\t\"x-hin\" : \"hin\",\n\t\t\t\"x-isostar\" : [ \"istr\", \"ist\" ],\n\t\t\t\"x-jcamp-dx\" : [ \"jdx\", \"dx\" ],\n\t\t\t\"x-kinemage\" : \"kin\",\n\t\t\t\"x-macmolecule\" : \"mcm\",\n\t\t\t\"x-macromodel-input\" : [ \"mmd\", \"mmod\" ],\n\t\t\t\"x-mdl-molfile\" : \"mol\",\n\t\t\t\"x-mdl-rdfile\" : \"rd\",\n\t\t\t\"x-mdl-rxnfile\" : \"rxn\",\n\t\t\t\"x-mdl-sdfile\" : [ \"sd\", \"sdf\" ],\n\t\t\t\"x-mdl-tgf\" : \"tgf\",\n\t\t\t\"x-mmcif\" : \"mcif\",\n\t\t\t\"x-mol2\" : \"mol2\",\n\t\t\t\"x-molconn-Z\" : \"b\",\n\t\t\t\"x-mopac-graph\" : \"gpt\",\n\t\t\t\"x-mopac-input\" : [ \"mop\", \"mopcrt\", \"mpc\", \"zmt\" ],\n\t\t\t\"x-mopac-out\" : \"moo\",\n\t\t\t\"x-ncbi-asn1\" : \"asn\",\n\t\t\t\"x-ncbi-asn1-ascii\" : [ \"prt\", \"ent\" ],\n\t\t\t\"x-ncbi-asn1-binary\" : [ \"val\", \"aso\" ],\n\t\t\t\"x-pdb\" : [ \"pdb\", \"ent\" ],\n\t\t\t\"x-rosdal\" : \"ros\",\n\t\t\t\"x-swissprot\" : \"sw\",\n\t\t\t\"x-vamas-iso14976\" : \"vms\",\n\t\t\t\"x-vmd\" : \"vmd\",\n\t\t\t\"x-xtel\" : \"xtel\",\n\t\t\t\"x-xyz\" : \"xyz\"\n\t\t},\n\t\t\"image\" : {\n\t\t\t\"gif\" : \"gif\",\n\t\t\t\"ief\" : \"ief\",\n\t\t\t\"jpeg\" : [ \"jpeg\", \"jpg\", \"jpe\" ],\n\t\t\t\"pcx\" : \"pcx\",\n\t\t\t\"png\" : \"png\",\n\t\t\t\"svg+xml\" : [ \"svg\", \"svgz\" ],\n\t\t\t\"tiff\" : [ \"tiff\", \"tif\" ],\n\t\t\t\"vnd.djvu\" : [ \"djvu\", \"djv\" ],\n\t\t\t\"vnd.wap.wbmp\" : \"wbmp\",\n\t\t\t\"x-canon-cr2\" : \"cr2\",\n\t\t\t\"x-canon-crw\" : \"crw\",\n\t\t\t\"x-cmu-raster\" : \"ras\",\n\t\t\t\"x-coreldraw\" : \"cdr\",\n\t\t\t\"x-coreldrawpattern\" : \"pat\",\n\t\t\t\"x-coreldrawtemplate\" : \"cdt\",\n\t\t\t\"x-corelphotopaint\" : \"cpt\",\n\t\t\t\"x-epson-erf\" : \"erf\",\n\t\t\t\"x-icon\" : \"ico\",\n\t\t\t\"x-jg\" : \"art\",\n\t\t\t\"x-jng\" : \"jng\",\n\t\t\t\"x-nikon-nef\" : \"nef\",\n\t\t\t\"x-olympus-orf\" : \"orf\",\n\t\t\t\"x-photoshop\" : \"psd\",\n\t\t\t\"x-portable-anymap\" : \"pnm\",\n\t\t\t\"x-portable-bitmap\" : \"pbm\",\n\t\t\t\"x-portable-graymap\" : \"pgm\",\n\t\t\t\"x-portable-pixmap\" : \"ppm\",\n\t\t\t\"x-rgb\" : \"rgb\",\n\t\t\t\"x-xbitmap\" : \"xbm\",\n\t\t\t\"x-xpixmap\" : \"xpm\",\n\t\t\t\"x-xwindowdump\" : \"xwd\",\n\t\t\t\"bmp\" : \"bmp\",\n\t\t\t\"cgm\" : \"cgm\",\n\t\t\t\"g3fax\" : \"g3\",\n\t\t\t\"ktx\" : \"ktx\",\n\t\t\t\"prs.btif\" : \"btif\",\n\t\t\t\"sgi\" : \"sgi\",\n\t\t\t\"vnd.dece.graphic\" : [ \"uvi\", \"uvvi\", \"uvg\", \"uvvg\" ],\n\t\t\t\"vnd.dwg\" : \"dwg\",\n\t\t\t\"vnd.dxf\" : \"dxf\",\n\t\t\t\"vnd.fastbidsheet\" : \"fbs\",\n\t\t\t\"vnd.fpx\" : \"fpx\",\n\t\t\t\"vnd.fst\" : \"fst\",\n\t\t\t\"vnd.fujixerox.edmics-mmr\" : \"mmr\",\n\t\t\t\"vnd.fujixerox.edmics-rlc\" : \"rlc\",\n\t\t\t\"vnd.ms-modi\" : \"mdi\",\n\t\t\t\"vnd.ms-photo\" : \"wdp\",\n\t\t\t\"vnd.net-fpx\" : \"npx\",\n\t\t\t\"vnd.xiff\" : \"xif\",\n\t\t\t\"webp\" : \"webp\",\n\t\t\t\"x-3ds\" : \"3ds\",\n\t\t\t\"x-cmx\" : \"cmx\",\n\t\t\t\"x-freehand\" : [ \"fh\", \"fhc\", \"fh4\", \"fh5\", \"fh7\" ],\n\t\t\t\"x-pict\" : [ \"pic\", \"pct\" ],\n\t\t\t\"x-tga\" : \"tga\",\n\t\t\t\"cis-cod\" : \"cod\",\n\t\t\t\"pipeg\" : \"jfif\"\n\t\t},\n\t\t\"message\" : {\n\t\t\t\"rfc822\" : [ \"eml\", \"mime\", \"mht\", \"mhtml\", \"nws\" ]\n\t\t},\n\t\t\"model\" : {\n\t\t\t\"iges\" : [ \"igs\", \"iges\" ],\n\t\t\t\"mesh\" : [ \"msh\", \"mesh\", \"silo\" ],\n\t\t\t\"vrml\" : [ \"wrl\", \"vrml\" ],\n\t\t\t\"x3d+vrml\" : [ \"x3dv\", \"x3dvz\" ],\n\t\t\t\"x3d+xml\" : [ \"x3d\", \"x3dz\" ],\n\t\t\t\"x3d+binary\" : [ \"x3db\", \"x3dbz\" ],\n\t\t\t\"vnd.collada+xml\" : \"dae\",\n\t\t\t\"vnd.dwf\" : \"dwf\",\n\t\t\t\"vnd.gdl\" : \"gdl\",\n\t\t\t\"vnd.gtw\" : \"gtw\",\n\t\t\t\"vnd.mts\" : \"mts\",\n\t\t\t\"vnd.vtu\" : \"vtu\"\n\t\t},\n\t\t\"text\" : {\n\t\t\t\"cache-manifest\" : [ \"manifest\", \"appcache\" ],\n\t\t\t\"calendar\" : [ \"ics\", \"icz\", \"ifb\" ],\n\t\t\t\"css\" : \"css\",\n\t\t\t\"csv\" : \"csv\",\n\t\t\t\"h323\" : \"323\",\n\t\t\t\"html\" : [ \"html\", \"htm\", \"shtml\", \"stm\" ],\n\t\t\t\"iuls\" : \"uls\",\n\t\t\t\"mathml\" : \"mml\",\n\t\t\t\"plain\" : [ \"txt\", \"text\", \"brf\", \"conf\", \"def\", \"list\", \"log\", \"in\", \"bas\" ],\n\t\t\t\"richtext\" : \"rtx\",\n\t\t\t\"scriptlet\" : [ \"sct\", \"wsc\" ],\n\t\t\t\"texmacs\" : [ \"tm\", \"ts\" ],\n\t\t\t\"tab-separated-values\" : \"tsv\",\n\t\t\t\"vnd.sun.j2me.app-descriptor\" : \"jad\",\n\t\t\t\"vnd.wap.wml\" : \"wml\",\n\t\t\t\"vnd.wap.wmlscript\" : \"wmls\",\n\t\t\t\"x-bibtex\" : \"bib\",\n\t\t\t\"x-boo\" : \"boo\",\n\t\t\t\"x-c++hdr\" : [ \"h++\", \"hpp\", \"hxx\", \"hh\" ],\n\t\t\t\"x-c++src\" : [ \"c++\", \"cpp\", \"cxx\", \"cc\" ],\n\t\t\t\"x-component\" : \"htc\",\n\t\t\t\"x-dsrc\" : \"d\",\n\t\t\t\"x-diff\" : [ \"diff\", \"patch\" ],\n\t\t\t\"x-haskell\" : \"hs\",\n\t\t\t\"x-java\" : \"java\",\n\t\t\t\"x-literate-haskell\" : \"lhs\",\n\t\t\t\"x-moc\" : \"moc\",\n\t\t\t\"x-pascal\" : [ \"p\", \"pas\" ],\n\t\t\t\"x-pcs-gcd\" : \"gcd\",\n\t\t\t\"x-perl\" : [ \"pl\", \"pm\" ],\n\t\t\t\"x-python\" : \"py\",\n\t\t\t\"x-scala\" : \"scala\",\n\t\t\t\"x-setext\" : \"etx\",\n\t\t\t\"x-tcl\" : [ \"tcl\", \"tk\" ],\n\t\t\t\"x-tex\" : [ \"tex\", \"ltx\", \"sty\", \"cls\" ],\n\t\t\t\"x-vcalendar\" : \"vcs\",\n\t\t\t\"x-vcard\" : \"vcf\",\n\t\t\t\"n3\" : \"n3\",\n\t\t\t\"prs.lines.tag\" : \"dsc\",\n\t\t\t\"sgml\" : [ \"sgml\", \"sgm\" ],\n\t\t\t\"troff\" : [ \"t\", \"tr\", \"roff\", \"man\", \"me\", \"ms\" ],\n\t\t\t\"turtle\" : \"ttl\",\n\t\t\t\"uri-list\" : [ \"uri\", \"uris\", \"urls\" ],\n\t\t\t\"vcard\" : \"vcard\",\n\t\t\t\"vnd.curl\" : \"curl\",\n\t\t\t\"vnd.curl.dcurl\" : \"dcurl\",\n\t\t\t\"vnd.curl.scurl\" : \"scurl\",\n\t\t\t\"vnd.curl.mcurl\" : \"mcurl\",\n\t\t\t\"vnd.dvb.subtitle\" : \"sub\",\n\t\t\t\"vnd.fly\" : \"fly\",\n\t\t\t\"vnd.fmi.flexstor\" : \"flx\",\n\t\t\t\"vnd.graphviz\" : \"gv\",\n\t\t\t\"vnd.in3d.3dml\" : \"3dml\",\n\t\t\t\"vnd.in3d.spot\" : \"spot\",\n\t\t\t\"x-asm\" : [ \"s\", \"asm\" ],\n\t\t\t\"x-c\" : [ \"c\", \"cc\", \"cxx\", \"cpp\", \"h\", \"hh\", \"dic\" ],\n\t\t\t\"x-fortran\" : [ \"f\", \"for\", \"f77\", \"f90\" ],\n\t\t\t\"x-opml\" : \"opml\",\n\t\t\t\"x-nfo\" : \"nfo\",\n\t\t\t\"x-sfv\" : \"sfv\",\n\t\t\t\"x-uuencode\" : \"uu\",\n\t\t\t\"webviewhtml\" : \"htt\"\n\t\t},\n\t\t\"video\" : {\n\t\t\t\"3gpp\" : \"3gp\",\n\t\t\t\"annodex\" : \"axv\",\n\t\t\t\"dl\" : \"dl\",\n\t\t\t\"dv\" : [ \"dif\", \"dv\" ],\n\t\t\t\"fli\" : \"fli\",\n\t\t\t\"gl\" : \"gl\",\n\t\t\t\"mpeg\" : [ \"mpeg\", \"mpg\", \"mpe\", \"m1v\", \"m2v\", \"mp2\", \"mpa\", \"mpv2\" ],\n\t\t\t\"mp4\" : [ \"mp4\", \"mp4v\", \"mpg4\" ],\n\t\t\t\"quicktime\" : [ \"qt\", \"mov\" ],\n\t\t\t\"ogg\" : \"ogv\",\n\t\t\t\"vnd.mpegurl\" : [ \"mxu\", \"m4u\" ],\n\t\t\t\"x-flv\" : \"flv\",\n\t\t\t\"x-la-asf\" : [ \"lsf\", \"lsx\" ],\n\t\t\t\"x-mng\" : \"mng\",\n\t\t\t\"x-ms-asf\" : [ \"asf\", \"asx\", \"asr\" ],\n\t\t\t\"x-ms-wm\" : \"wm\",\n\t\t\t\"x-ms-wmv\" : \"wmv\",\n\t\t\t\"x-ms-wmx\" : \"wmx\",\n\t\t\t\"x-ms-wvx\" : \"wvx\",\n\t\t\t\"x-msvideo\" : \"avi\",\n\t\t\t\"x-sgi-movie\" : \"movie\",\n\t\t\t\"x-matroska\" : [ \"mpv\", \"mkv\", \"mk3d\", \"mks\" ],\n\t\t\t\"3gpp2\" : \"3g2\",\n\t\t\t\"h261\" : \"h261\",\n\t\t\t\"h263\" : \"h263\",\n\t\t\t\"h264\" : \"h264\",\n\t\t\t\"jpeg\" : \"jpgv\",\n\t\t\t\"jpm\" : [ \"jpm\", \"jpgm\" ],\n\t\t\t\"mj2\" : [ \"mj2\", \"mjp2\" ],\n\t\t\t\"vnd.dece.hd\" : [ \"uvh\", \"uvvh\" ],\n\t\t\t\"vnd.dece.mobile\" : [ \"uvm\", \"uvvm\" ],\n\t\t\t\"vnd.dece.pd\" : [ \"uvp\", \"uvvp\" ],\n\t\t\t\"vnd.dece.sd\" : [ \"uvs\", \"uvvs\" ],\n\t\t\t\"vnd.dece.video\" : [ \"uvv\", \"uvvv\" ],\n\t\t\t\"vnd.dvb.file\" : \"dvb\",\n\t\t\t\"vnd.fvt\" : \"fvt\",\n\t\t\t\"vnd.ms-playready.media.pyv\" : \"pyv\",\n\t\t\t\"vnd.uvvu.mp4\" : [ \"uvu\", \"uvvu\" ],\n\t\t\t\"vnd.vivo\" : \"viv\",\n\t\t\t\"webm\" : \"webm\",\n\t\t\t\"x-f4v\" : \"f4v\",\n\t\t\t\"x-m4v\" : \"m4v\",\n\t\t\t\"x-ms-vob\" : \"vob\",\n\t\t\t\"x-smv\" : \"smv\"\n\t\t},\n\t\t\"x-conference\" : {\n\t\t\t\"x-cooltalk\" : \"ice\"\n\t\t},\n\t\t\"x-world\" : {\n\t\t\t\"x-vrml\" : [ \"vrm\", \"vrml\", \"wrl\", \"flr\", \"wrz\", \"xaf\", \"xof\" ]\n\t\t}\n\t};\n\n\tvar mimeTypes = (function() {\n\t\tvar type, subtype, val, index, mimeTypes = {};\n\t\tfor (type in table) {\n\t\t\tif (table.hasOwnProperty(type)) {\n\t\t\t\tfor (subtype in table[type]) {\n\t\t\t\t\tif (table[type].hasOwnProperty(subtype)) {\n\t\t\t\t\t\tval = table[type][subtype];\n\t\t\t\t\t\tif (typeof val == \"string\") {\n\t\t\t\t\t\t\tmimeTypes[val] = type + \"/\" + subtype;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (index = 0; index < val.length; index++) {\n\t\t\t\t\t\t\t\tmimeTypes[val[index]] = type + \"/\" + subtype;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn mimeTypes;\n\t})();\n\n\tzip.getMimeType = function(filename) {\n\t\tvar defaultValue = \"application/octet-stream\";\n\t\treturn filename && mimeTypes[filename.split(\".\").pop().toLowerCase()] || defaultValue;\n\t};\n\n})();\n\ndefine(\"mime-types\", [\"zip\"], (function (global) {\n return function () {\n var ret, fn;\n return ret || global.zip;\n };\n}(this)));\n\n","/*\n Copyright (c) 2013 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n(function() {\n\t\"use strict\";\n\n\tvar CHUNK_SIZE = 512 * 1024;\n\n\tvar TextWriter = zip.TextWriter, //\n\tBlobWriter = zip.BlobWriter, //\n\tData64URIWriter = zip.Data64URIWriter, //\n\tReader = zip.Reader, //\n\tTextReader = zip.TextReader, //\n\tBlobReader = zip.BlobReader, //\n\tData64URIReader = zip.Data64URIReader, //\n\tcreateReader = zip.createReader, //\n\tcreateWriter = zip.createWriter;\n\n\tfunction ZipBlobReader(entry) {\n\t\tvar that = this, blobReader;\n\n\t\tfunction init(callback) {\n\t\t\tthat.size = entry.uncompressedSize;\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction getData(callback) {\n\t\t\tif (that.data)\n\t\t\t\tcallback();\n\t\t\telse\n\t\t\t\tentry.getData(new BlobWriter(), function(data) {\n\t\t\t\t\tthat.data = data;\n\t\t\t\t\tblobReader = new BlobReader(data);\n\t\t\t\t\tcallback();\n\t\t\t\t}, null, that.checkCrc32);\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback, onerror) {\n\t\t\tgetData(function() {\n\t\t\t\tblobReader.readUint8Array(index, length, callback, onerror);\n\t\t\t}, onerror);\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tZipBlobReader.prototype = new Reader();\n\tZipBlobReader.prototype.constructor = ZipBlobReader;\n\tZipBlobReader.prototype.checkCrc32 = false;\n\n\tfunction getTotalSize(entry) {\n\t\tvar size = 0;\n\n\t\tfunction process(entry) {\n\t\t\tsize += entry.uncompressedSize || 0;\n\t\t\tentry.children.forEach(process);\n\t\t}\n\n\t\tprocess(entry);\n\t\treturn size;\n\t}\n\n\tfunction initReaders(entry, onend, onerror) {\n\t\tvar index = 0;\n\n\t\tfunction next() {\n\t\t\tindex++;\n\t\t\tif (index < entry.children.length)\n\t\t\t\tprocess(entry.children[index]);\n\t\t\telse\n\t\t\t\tonend();\n\t\t}\n\n\t\tfunction process(child) {\n\t\t\tif (child.directory)\n\t\t\t\tinitReaders(child, next, onerror);\n\t\t\telse {\n\t\t\t\tchild.reader = new child.Reader(child.data, onerror);\n\t\t\t\tchild.reader.init(function() {\n\t\t\t\t\tchild.uncompressedSize = child.reader.size;\n\t\t\t\t\tnext();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (entry.children.length)\n\t\t\tprocess(entry.children[index]);\n\t\telse\n\t\t\tonend();\n\t}\n\n\tfunction detach(entry) {\n\t\tvar children = entry.parent.children;\n\t\tchildren.forEach(function(child, index) {\n\t\t\tif (child.id == entry.id)\n\t\t\t\tchildren.splice(index, 1);\n\t\t});\n\t}\n\n\tfunction exportZip(zipWriter, entry, onend, onprogress, totalSize) {\n\t\tvar currentIndex = 0;\n\n\t\tfunction process(zipWriter, entry, onend, onprogress, totalSize) {\n\t\t\tvar childIndex = 0;\n\n\t\t\tfunction exportChild() {\n\t\t\t\tvar child = entry.children[childIndex];\n\t\t\t\tif (child)\n\t\t\t\t\tzipWriter.add(child.getFullname(), child.reader, function() {\n\t\t\t\t\t\tcurrentIndex += child.uncompressedSize || 0;\n\t\t\t\t\t\tprocess(zipWriter, child, function() {\n\t\t\t\t\t\t\tchildIndex++;\n\t\t\t\t\t\t\texportChild();\n\t\t\t\t\t\t}, onprogress, totalSize);\n\t\t\t\t\t}, function(index) {\n\t\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\t\tonprogress(currentIndex + index, totalSize);\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdirectory : child.directory,\n\t\t\t\t\t\tversion : child.zipVersion\n\t\t\t\t\t});\n\t\t\t\telse\n\t\t\t\t\tonend();\n\t\t\t}\n\n\t\t\texportChild();\n\t\t}\n\n\t\tprocess(zipWriter, entry, onend, onprogress, totalSize);\n\t}\n\n\tfunction addFileEntry(zipEntry, fileEntry, onend, onerror) {\n\t\tfunction getChildren(fileEntry, callback) {\n\t\t\tvar entries = [];\n\t\t\tif (fileEntry.isDirectory) {\n\t\t\t\tvar directoryReader = fileEntry.createReader();\n\t\t\t\t(function readEntries() {\n\t\t\t\t\tdirectoryReader.readEntries(function(temporaryEntries) {\n\t\t\t\t\t\tif (!temporaryEntries.length)\n\t\t\t\t\t\t\tcallback(entries);\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tentries = entries.concat(temporaryEntries);\n\t\t\t\t\t\t\treadEntries();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, onerror);\n\t\t\t\t})();\n\t\t\t}\n\t\t\tif (fileEntry.isFile)\n\t\t\t\tcallback(entries);\n\t\t}\n\n\t\tfunction process(zipEntry, fileEntry, onend) {\n\t\t\tgetChildren(fileEntry, function(children) {\n\t\t\t\tvar childIndex = 0;\n\n\t\t\t\tfunction addChild(child) {\n\t\t\t\t\tfunction nextChild(childFileEntry) {\n\t\t\t\t\t\tprocess(childFileEntry, child, function() {\n\t\t\t\t\t\t\tchildIndex++;\n\t\t\t\t\t\t\tprocessChild();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (child.isDirectory)\n\t\t\t\t\t\tnextChild(zipEntry.addDirectory(child.name));\n\t\t\t\t\tif (child.isFile)\n\t\t\t\t\t\tchild.file(function(file) {\n\t\t\t\t\t\t\tvar childZipEntry = zipEntry.addBlob(child.name, file);\n\t\t\t\t\t\t\tchildZipEntry.uncompressedSize = file.size;\n\t\t\t\t\t\t\tnextChild(childZipEntry);\n\t\t\t\t\t\t}, onerror);\n\t\t\t\t}\n\n\t\t\t\tfunction processChild() {\n\t\t\t\t\tvar child = children[childIndex];\n\t\t\t\t\tif (child)\n\t\t\t\t\t\taddChild(child);\n\t\t\t\t\telse\n\t\t\t\t\t\tonend();\n\t\t\t\t}\n\n\t\t\t\tprocessChild();\n\t\t\t});\n\t\t}\n\n\t\tif (fileEntry.isDirectory)\n\t\t\tprocess(zipEntry, fileEntry, onend);\n\t\telse\n\t\t\tfileEntry.file(function(file) {\n\t\t\t\tzipEntry.addBlob(fileEntry.name, file);\n\t\t\t\tonend();\n\t\t\t}, onerror);\n\t}\n\n\tfunction getFileEntry(fileEntry, entry, onend, onprogress, onerror, totalSize, checkCrc32) {\n\t\tvar currentIndex = 0;\n\n\t\tfunction process(fileEntry, entry, onend, onprogress, onerror, totalSize) {\n\t\t\tvar childIndex = 0;\n\n\t\t\tfunction addChild(child) {\n\t\t\t\tfunction nextChild(childFileEntry) {\n\t\t\t\t\tcurrentIndex += child.uncompressedSize || 0;\n\t\t\t\t\tprocess(childFileEntry, child, function() {\n\t\t\t\t\t\tchildIndex++;\n\t\t\t\t\t\tprocessChild();\n\t\t\t\t\t}, onprogress, onerror, totalSize);\n\t\t\t\t}\n\n\t\t\t\tif (child.directory)\n\t\t\t\t\tfileEntry.getDirectory(child.name, {\n\t\t\t\t\t\tcreate : true\n\t\t\t\t\t}, nextChild, onerror);\n\t\t\t\telse\n\t\t\t\t\tfileEntry.getFile(child.name, {\n\t\t\t\t\t\tcreate : true\n\t\t\t\t\t}, function(file) {\n\t\t\t\t\t\tchild.getData(new zip.FileWriter(file, zip.getMimeType(child.name)), nextChild, function(index) {\n\t\t\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\t\t\tonprogress(currentIndex + index, totalSize);\n\t\t\t\t\t\t}, checkCrc32);\n\t\t\t\t\t}, onerror);\n\t\t\t}\n\n\t\t\tfunction processChild() {\n\t\t\t\tvar child = entry.children[childIndex];\n\t\t\t\tif (child)\n\t\t\t\t\taddChild(child);\n\t\t\t\telse\n\t\t\t\t\tonend();\n\t\t\t}\n\n\t\t\tprocessChild();\n\t\t}\n\n\t\tif (entry.directory)\n\t\t\tprocess(fileEntry, entry, onend, onprogress, onerror, totalSize);\n\t\telse\n\t\t\tentry.getData(new zip.FileWriter(fileEntry, zip.getMimeType(entry.name)), onend, onprogress, checkCrc32);\n\t}\n\n\tfunction resetFS(fs) {\n\t\tfs.entries = [];\n\t\tfs.root = new ZipDirectoryEntry(fs);\n\t}\n\n\tfunction bufferedCopy(reader, writer, onend, onprogress, onerror) {\n\t\tvar chunkIndex = 0;\n\n\t\tfunction stepCopy() {\n\t\t\tvar index = chunkIndex * CHUNK_SIZE;\n\t\t\tif (onprogress)\n\t\t\t\tonprogress(index, reader.size);\n\t\t\tif (index < reader.size)\n\t\t\t\treader.readUint8Array(index, Math.min(CHUNK_SIZE, reader.size - index), function(array) {\n\t\t\t\t\twriter.writeUint8Array(new Uint8Array(array), function() {\n\t\t\t\t\t\tchunkIndex++;\n\t\t\t\t\t\tstepCopy();\n\t\t\t\t\t});\n\t\t\t\t}, onerror);\n\t\t\telse\n\t\t\t\twriter.getData(onend);\n\t\t}\n\n\t\tstepCopy();\n\t}\n\n\tfunction addChild(parent, name, params, directory) {\n\t\tif (parent.directory)\n\t\t\treturn directory ? new ZipDirectoryEntry(parent.fs, name, params, parent) : new ZipFileEntry(parent.fs, name, params, parent);\n\t\telse\n\t\t\tthrow \"Parent entry is not a directory.\";\n\t}\n\n\tfunction ZipEntry() {\n\t}\n\n\tZipEntry.prototype = {\n\t\tinit : function(fs, name, params, parent) {\n\t\t\tvar that = this;\n\t\t\tif (fs.root && parent && parent.getChildByName(name))\n\t\t\t\tthrow \"Entry filename already exists.\";\n\t\t\tif (!params)\n\t\t\t\tparams = {};\n\t\t\tthat.fs = fs;\n\t\t\tthat.name = name;\n\t\t\tthat.id = fs.entries.length;\n\t\t\tthat.parent = parent;\n\t\t\tthat.children = [];\n\t\t\tthat.zipVersion = params.zipVersion || 0x14;\n\t\t\tthat.uncompressedSize = 0;\n\t\t\tfs.entries.push(that);\n\t\t\tif (parent)\n\t\t\t\tthat.parent.children.push(that);\n\t\t},\n\t\tgetFileEntry : function(fileEntry, onend, onprogress, onerror, checkCrc32) {\n\t\t\tvar that = this;\n\t\t\tinitReaders(that, function() {\n\t\t\t\tgetFileEntry(fileEntry, that, onend, onprogress, onerror, getTotalSize(that), checkCrc32);\n\t\t\t}, onerror);\n\t\t},\n\t\tmoveTo : function(target) {\n\t\t\tvar that = this;\n\t\t\tif (target.directory) {\n\t\t\t\tif (!target.isDescendantOf(that)) {\n\t\t\t\t\tif (that != target) {\n\t\t\t\t\t\tif (target.getChildByName(that.name))\n\t\t\t\t\t\t\tthrow \"Entry filename already exists.\";\n\t\t\t\t\t\tdetach(that);\n\t\t\t\t\t\tthat.parent = target;\n\t\t\t\t\t\ttarget.children.push(that);\n\t\t\t\t\t}\n\t\t\t\t} else\n\t\t\t\t\tthrow \"Entry is a ancestor of target entry.\";\n\t\t\t} else\n\t\t\t\tthrow \"Target entry is not a directory.\";\n\t\t},\n\t\tgetFullname : function() {\n\t\t\tvar that = this, fullname = that.name, entry = that.parent;\n\t\t\twhile (entry) {\n\t\t\t\tfullname = (entry.name ? entry.name + \"/\" : \"\") + fullname;\n\t\t\t\tentry = entry.parent;\n\t\t\t}\n\t\t\treturn fullname;\n\t\t},\n\t\tisDescendantOf : function(ancestor) {\n\t\t\tvar entry = this.parent;\n\t\t\twhile (entry && entry.id != ancestor.id)\n\t\t\t\tentry = entry.parent;\n\t\t\treturn !!entry;\n\t\t}\n\t};\n\tZipEntry.prototype.constructor = ZipEntry;\n\n\tvar ZipFileEntryProto;\n\n\tfunction ZipFileEntry(fs, name, params, parent) {\n\t\tvar that = this;\n\t\tZipEntry.prototype.init.call(that, fs, name, params, parent);\n\t\tthat.Reader = params.Reader;\n\t\tthat.Writer = params.Writer;\n\t\tthat.data = params.data;\n\t\tif (params.getData) {\n\t\t\tthat.getData = params.getData;\n\t\t}\n\t}\n\n\tZipFileEntry.prototype = ZipFileEntryProto = new ZipEntry();\n\tZipFileEntryProto.constructor = ZipFileEntry;\n\tZipFileEntryProto.getData = function(writer, onend, onprogress, onerror) {\n\t\tvar that = this;\n\t\tif (!writer || (writer.constructor == that.Writer && that.data))\n\t\t\tonend(that.data);\n\t\telse {\n\t\t\tif (!that.reader)\n\t\t\t\tthat.reader = new that.Reader(that.data, onerror);\n\t\t\tthat.reader.init(function() {\n\t\t\t\twriter.init(function() {\n\t\t\t\t\tbufferedCopy(that.reader, writer, onend, onprogress, onerror);\n\t\t\t\t}, onerror);\n\t\t\t});\n\t\t}\n\t};\n\n\tZipFileEntryProto.getText = function(onend, onprogress, checkCrc32, encoding) {\n\t\tthis.getData(new TextWriter(encoding), onend, onprogress, checkCrc32);\n\t};\n\tZipFileEntryProto.getBlob = function(mimeType, onend, onprogress, checkCrc32) {\n\t\tthis.getData(new BlobWriter(mimeType), onend, onprogress, checkCrc32);\n\t};\n\tZipFileEntryProto.getData64URI = function(mimeType, onend, onprogress, checkCrc32) {\n\t\tthis.getData(new Data64URIWriter(mimeType), onend, onprogress, checkCrc32);\n\t};\n\n\tvar ZipDirectoryEntryProto;\n\n\tfunction ZipDirectoryEntry(fs, name, params, parent) {\n\t\tvar that = this;\n\t\tZipEntry.prototype.init.call(that, fs, name, params, parent);\n\t\tthat.directory = true;\n\t}\n\n\tZipDirectoryEntry.prototype = ZipDirectoryEntryProto = new ZipEntry();\n\tZipDirectoryEntryProto.constructor = ZipDirectoryEntry;\n\tZipDirectoryEntryProto.addDirectory = function(name) {\n\t\treturn addChild(this, name, null, true);\n\t};\n\tZipDirectoryEntryProto.addText = function(name, text) {\n\t\treturn addChild(this, name, {\n\t\t\tdata : text,\n\t\t\tReader : TextReader,\n\t\t\tWriter : TextWriter\n\t\t});\n\t};\n\tZipDirectoryEntryProto.addBlob = function(name, blob) {\n\t\treturn addChild(this, name, {\n\t\t\tdata : blob,\n\t\t\tReader : BlobReader,\n\t\t\tWriter : BlobWriter\n\t\t});\n\t};\n\tZipDirectoryEntryProto.addData64URI = function(name, dataURI) {\n\t\treturn addChild(this, name, {\n\t\t\tdata : dataURI,\n\t\t\tReader : Data64URIReader,\n\t\t\tWriter : Data64URIWriter\n\t\t});\n\t};\n\tZipDirectoryEntryProto.addFileEntry = function(fileEntry, onend, onerror) {\n\t\taddFileEntry(this, fileEntry, onend, onerror);\n\t};\n\tZipDirectoryEntryProto.addData = function(name, params) {\n\t\treturn addChild(this, name, params);\n\t};\n\tZipDirectoryEntryProto.importBlob = function(blob, onend, onerror) {\n\t\tthis.importZip(new BlobReader(blob), onend, onerror);\n\t};\n\tZipDirectoryEntryProto.importText = function(text, onend, onerror) {\n\t\tthis.importZip(new TextReader(text), onend, onerror);\n\t};\n\tZipDirectoryEntryProto.importData64URI = function(dataURI, onend, onerror) {\n\t\tthis.importZip(new Data64URIReader(dataURI), onend, onerror);\n\t};\n\tZipDirectoryEntryProto.exportBlob = function(onend, onprogress, onerror) {\n\t\tthis.exportZip(new BlobWriter(\"application/zip\"), onend, onprogress, onerror);\n\t};\n\tZipDirectoryEntryProto.exportText = function(onend, onprogress, onerror) {\n\t\tthis.exportZip(new TextWriter(), onend, onprogress, onerror);\n\t};\n\tZipDirectoryEntryProto.exportFileEntry = function(fileEntry, onend, onprogress, onerror) {\n\t\tthis.exportZip(new zip.FileWriter(fileEntry, \"application/zip\"), onend, onprogress, onerror);\n\t};\n\tZipDirectoryEntryProto.exportData64URI = function(onend, onprogress, onerror) {\n\t\tthis.exportZip(new Data64URIWriter(\"application/zip\"), onend, onprogress, onerror);\n\t};\n\tZipDirectoryEntryProto.importZip = function(reader, onend, onerror) {\n\t\tvar that = this;\n\t\tcreateReader(reader, function(zipReader) {\n\t\t\tzipReader.getEntries(function(entries) {\n\t\t\t\tentries.forEach(function(entry) {\n\t\t\t\t\tvar parent = that, path = entry.filename.split(\"/\"), name = path.pop();\n\t\t\t\t\tpath.forEach(function(pathPart) {\n\t\t\t\t\t\tparent = parent.getChildByName(pathPart) || new ZipDirectoryEntry(that.fs, pathPart, null, parent);\n\t\t\t\t\t});\n\t\t\t\t\tif (!entry.directory)\n\t\t\t\t\t\taddChild(parent, name, {\n\t\t\t\t\t\t\tdata : entry,\n\t\t\t\t\t\t\tReader : ZipBlobReader\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tonend();\n\t\t\t});\n\t\t}, onerror);\n\t};\n\tZipDirectoryEntryProto.exportZip = function(writer, onend, onprogress, onerror) {\n\t\tvar that = this;\n\t\tinitReaders(that, function() {\n\t\t\tcreateWriter(writer, function(zipWriter) {\n\t\t\t\texportZip(zipWriter, that, function() {\n\t\t\t\t\tzipWriter.close(onend);\n\t\t\t\t}, onprogress, getTotalSize(that));\n\t\t\t}, onerror);\n\t\t}, onerror);\n\t};\n\tZipDirectoryEntryProto.getChildByName = function(name) {\n\t\tvar childIndex, child, that = this;\n\t\tfor (childIndex = 0; childIndex < that.children.length; childIndex++) {\n\t\t\tchild = that.children[childIndex];\n\t\t\tif (child.name == name)\n\t\t\t\treturn child;\n\t\t}\n\t};\n\n\tfunction FS() {\n\t\tresetFS(this);\n\t}\n\tFS.prototype = {\n\t\tremove : function(entry) {\n\t\t\tdetach(entry);\n\t\t\tthis.entries[entry.id] = null;\n\t\t},\n\t\tfind : function(fullname) {\n\t\t\tvar index, path = fullname.split(\"/\"), node = this.root;\n\t\t\tfor (index = 0; node && index < path.length; index++)\n\t\t\t\tnode = node.getChildByName(path[index]);\n\t\t\treturn node;\n\t\t},\n\t\tgetById : function(id) {\n\t\t\treturn this.entries[id];\n\t\t},\n\t\timportBlob : function(blob, onend, onerror) {\n\t\t\tresetFS(this);\n\t\t\tthis.root.importBlob(blob, onend, onerror);\n\t\t},\n\t\timportText : function(text, onend, onerror) {\n\t\t\tresetFS(this);\n\t\t\tthis.root.importText(text, onend, onerror);\n\t\t},\n\t\timportData64URI : function(dataURI, onend, onerror) {\n\t\t\tresetFS(this);\n\t\t\tthis.root.importData64URI(dataURI, onend, onerror);\n\t\t},\n\t\texportBlob : function(onend, onprogress, onerror) {\n\t\t\tthis.root.exportBlob(onend, onprogress, onerror);\n\t\t},\n\t\texportText : function(onend, onprogress, onerror) {\n\t\t\tthis.root.exportText(onend, onprogress, onerror);\n\t\t},\n\t\texportFileEntry : function(fileEntry, onend, onprogress, onerror) {\n\t\t\tthis.root.exportFileEntry(fileEntry, onend, onprogress, onerror);\n\t\t},\n\t\texportData64URI : function(onend, onprogress, onerror) {\n\t\t\tthis.root.exportData64URI(onend, onprogress, onerror);\n\t\t}\n\t};\n\n\tzip.fs = {\n\t\tFS : FS,\n\t\tZipDirectoryEntry : ZipDirectoryEntry,\n\t\tZipFileEntry : ZipFileEntry\n\t};\n\n\tzip.getMimeType = function() {\n\t\treturn \"application/octet-stream\";\n\t};\n\n})();\n\ndefine(\"zip-fs\", [\"mime-types\"], (function (global) {\n return function () {\n var ret, fn;\n return ret || global.zip;\n };\n}(this)));\n\n","/*\n Copyright (c) 2013 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n(function() {\n\t\"use strict\";\n\n\tvar ERR_HTTP_RANGE = \"HTTP Range not supported.\";\n\n\tvar Reader = zip.Reader;\n\tvar Writer = zip.Writer;\n\t\n\tvar ZipDirectoryEntry;\n\n\tvar appendABViewSupported;\n\ttry {\n\t\tappendABViewSupported = new Blob([ new DataView(new ArrayBuffer(0)) ]).size === 0;\n\t} catch (e) {\n\t}\n\n\tfunction isHttpFamily(url) {\n\t\tvar a = document.createElement(\"a\");\n\t\ta.href = url;\n\t\treturn a.protocol === \"http:\" || a.protocol === \"https:\";\n\t}\n\n\tfunction HttpReader(url) {\n\t\tvar that = this;\n\n\t\tfunction getData(callback, onerror) {\n\t\t\tvar request;\n\t\t\tif (!that.data) {\n\t\t\t\trequest = new XMLHttpRequest();\n\t\t\t\trequest.addEventListener(\"load\", function() {\n\t\t\t\t\tif (!that.size)\n\t\t\t\t\t\tthat.size = Number(request.getResponseHeader(\"Content-Length\")) || Number(request.response.byteLength);\n\t\t\t\t\tthat.data = new Uint8Array(request.response);\n\t\t\t\t\tcallback();\n\t\t\t\t}, false);\n\t\t\t\trequest.addEventListener(\"error\", onerror, false);\n\t\t\t\trequest.open(\"GET\", url);\n\t\t\t\trequest.responseType = \"arraybuffer\";\n\t\t\t\trequest.send();\n\t\t\t} else\n\t\t\t\tcallback();\n\t\t}\n\n\t\tfunction init(callback, onerror) {\n\t\t\tif (!isHttpFamily(url)) {\n\t\t\t\t// For schemas other than http(s), HTTP HEAD may be unavailable,\n\t\t\t\t// so use HTTP GET instead.\n\t\t\t\tgetData(callback, onerror);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar request = new XMLHttpRequest();\n\t\t\trequest.addEventListener(\"load\", function() {\n\t\t\t\tthat.size = Number(request.getResponseHeader(\"Content-Length\"));\n\t\t\t\t// If response header doesn't return size then prefetch the content.\n\t\t\t\tif (!that.size) {\n\t\t\t\t\tgetData(callback, onerror);\n\t\t\t\t} else {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t\trequest.addEventListener(\"error\", onerror, false);\n\t\t\trequest.open(\"HEAD\", url);\n\t\t\trequest.send();\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback, onerror) {\n\t\t\tgetData(function() {\n\t\t\t\tcallback(new Uint8Array(that.data.subarray(index, index + length)));\n\t\t\t}, onerror);\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tHttpReader.prototype = new Reader();\n\tHttpReader.prototype.constructor = HttpReader;\n\n\tfunction HttpRangeReader(url) {\n\t\tvar that = this;\n\n\t\tfunction init(callback, onerror) {\n\t\t\tvar request = new XMLHttpRequest();\n\t\t\trequest.addEventListener(\"load\", function() {\n\t\t\t\tthat.size = Number(request.getResponseHeader(\"Content-Length\"));\n \n // Some HTTP servers do not emit the Accept-Ranges header :(\n\t\t\t\tif (true || request.getResponseHeader(\"Accept-Ranges\") == \"bytes\")\n\t\t\t\t\tcallback();\n\t\t\t\telse\n\t\t\t\t\tonerror(ERR_HTTP_RANGE);\n\t\t\t}, false);\n\t\t\trequest.addEventListener(\"error\", onerror, false);\n\t\t\trequest.open(\"HEAD\", url);\n\t\t\trequest.send();\n\t\t}\n\n\t\tfunction readArrayBuffer(index, length, callback, onerror) {\n\t\t\tvar request = new XMLHttpRequest();\n\t\t\trequest.open(\"GET\", url);\n\t\t\trequest.responseType = \"arraybuffer\";\n\t\t\trequest.setRequestHeader(\"Range\", \"bytes=\" + index + \"-\" + (index + length - 1));\n\t\t\trequest.addEventListener(\"load\", function() {\n\t\t\t\tcallback(request.response);\n\t\t\t}, false);\n\t\t\trequest.addEventListener(\"error\", onerror, false);\n\t\t\trequest.send();\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback, onerror) {\n\t\t\treadArrayBuffer(index, length, function(arraybuffer) {\n\t\t\t\tcallback(new Uint8Array(arraybuffer));\n\t\t\t}, onerror);\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tHttpRangeReader.prototype = new Reader();\n\tHttpRangeReader.prototype.constructor = HttpRangeReader;\n\n\tfunction ArrayBufferReader(arrayBuffer) {\n\t\tvar that = this;\n\n\t\tfunction init(callback, onerror) {\n\t\t\tthat.size = arrayBuffer.byteLength;\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction readUint8Array(index, length, callback, onerror) {\n\t\t\tcallback(new Uint8Array(arrayBuffer.slice(index, index + length)));\n\t\t}\n\n\t\tthat.size = 0;\n\t\tthat.init = init;\n\t\tthat.readUint8Array = readUint8Array;\n\t}\n\tArrayBufferReader.prototype = new Reader();\n\tArrayBufferReader.prototype.constructor = ArrayBufferReader;\n\n\tfunction ArrayBufferWriter() {\n\t\tvar array, that = this;\n\n\t\tfunction init(callback, onerror) {\n\t\t\tarray = new Uint8Array();\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction writeUint8Array(arr, callback, onerror) {\n\t\t\tvar tmpArray = new Uint8Array(array.length + arr.length);\n\t\t\ttmpArray.set(array);\n\t\t\ttmpArray.set(arr, array.length);\n\t\t\tarray = tmpArray;\n\t\t\tcallback();\n\t\t}\n\n\t\tfunction getData(callback) {\n\t\t\tcallback(array.buffer);\n\t\t}\n\n\t\tthat.init = init;\n\t\tthat.writeUint8Array = writeUint8Array;\n\t\tthat.getData = getData;\n\t}\n\tArrayBufferWriter.prototype = new Writer();\n\tArrayBufferWriter.prototype.constructor = ArrayBufferWriter;\n\n\tfunction FileWriter(fileEntry, contentType) {\n\t\tvar writer, that = this;\n\n\t\tfunction init(callback, onerror) {\n\t\t\tfileEntry.createWriter(function(fileWriter) {\n\t\t\t\twriter = fileWriter;\n\t\t\t\tcallback();\n\t\t\t}, onerror);\n\t\t}\n\n\t\tfunction writeUint8Array(array, callback, onerror) {\n\t\t\tvar blob = new Blob([ appendABViewSupported ? array : array.buffer ], {\n\t\t\t\ttype : contentType\n\t\t\t});\n\t\t\twriter.onwrite = function() {\n\t\t\t\twriter.onwrite = null;\n\t\t\t\tcallback();\n\t\t\t};\n\t\t\twriter.onerror = onerror;\n\t\t\twriter.write(blob);\n\t\t}\n\n\t\tfunction getData(callback) {\n\t\t\tfileEntry.file(callback);\n\t\t}\n\n\t\tthat.init = init;\n\t\tthat.writeUint8Array = writeUint8Array;\n\t\tthat.getData = getData;\n\t}\n\tFileWriter.prototype = new Writer();\n\tFileWriter.prototype.constructor = FileWriter;\n\n\tzip.FileWriter = FileWriter;\n\tzip.HttpReader = HttpReader;\n\tzip.HttpRangeReader = HttpRangeReader;\n\tzip.ArrayBufferReader = ArrayBufferReader;\n\tzip.ArrayBufferWriter = ArrayBufferWriter;\n\n\tif (zip.fs) {\n\t\tZipDirectoryEntry = zip.fs.ZipDirectoryEntry;\n\t\tZipDirectoryEntry.prototype.addHttpContent = function(name, URL, useRangeHeader) {\n\t\t\tfunction addChild(parent, name, params, directory) {\n\t\t\t\tif (parent.directory)\n\t\t\t\t\treturn directory ? new ZipDirectoryEntry(parent.fs, name, params, parent) : new zip.fs.ZipFileEntry(parent.fs, name, params, parent);\n\t\t\t\telse\n\t\t\t\t\tthrow \"Parent entry is not a directory.\";\n\t\t\t}\n\n\t\t\treturn addChild(this, name, {\n\t\t\t\tdata : URL,\n\t\t\t\tReader : useRangeHeader ? HttpRangeReader : HttpReader\n\t\t\t});\n\t\t};\n\t\tZipDirectoryEntry.prototype.importHttpContent = function(URL, useRangeHeader, onend, onerror) {\n\t\t\tthis.importZip(useRangeHeader ? new HttpRangeReader(URL) : new HttpReader(URL), onend, onerror);\n\t\t};\n\t\tzip.fs.FS.prototype.importHttpContent = function(URL, useRangeHeader, onend, onerror) {\n\t\t\tthis.entries = [];\n\t\t\tthis.root = new ZipDirectoryEntry(this);\n\t\t\tthis.root.importHttpContent(URL, useRangeHeader, onend, onerror);\n\t\t};\n\t}\n\n})();\n\ndefine(\"zip-ext\", [\"zip-fs\"], (function (global) {\n return function () {\n var ret, fn;\n return ret || global.zip;\n };\n}(this)));\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\ndefine('readium_js/epub-fetch/zip_resource_fetcher',['jquery', 'URIjs', './discover_content_type', 'zip-ext', 'readium_shared_js/helpers'], function ($, URI, ContentTypeDiscovery, zip, Helpers) {\n\n var ZipResourceFetcher = function(parentFetcher, libDir) {\n\n var ebookURL = parentFetcher.getEbookURL();\n var ebookURL_filepath = parentFetcher.getEbookURL_FilePath();\n \n var _checkCrc32 = false;\n var _zipFs;\n\n var READIUM_ERROR_PREFIX = \"READIUM -- \";\n\n // INTERNAL FUNCTIONS\n\n // Description: perform a function with an initialized zip filesystem, making sure that such filesystem is initialized.\n // Note that due to a race condition, more than one zip filesystem may be instantiated.\n // However, the last one to be set on the model object will prevail and others would be garbage collected later.\n function withZipFsPerform(callback, onerror) {\n\n // if (!(ebookURL instanceof Blob)) \n // {onerror(\"SIMULATING ZIP LIB ERROR...\");\n // return;}\n \n if (_zipFs) {\n\n callback(_zipFs, onerror);\n\n } else {\n\n if (libDir) {\n \n // The Web Worker requires standalone z-worker/inflate/deflate.js files in libDir (i.e. cannot be aggregated/minified/optimised in the final generated single-file build)\n zip.useWebWorkers = true; // (true by default)\n zip.workerScriptsPath = libDir;\n\n } else {\n \n zip.useWebWorkers = false; // (true by default)\n }\n\n _zipFs = new zip.fs.FS();\n\n if (ebookURL instanceof Blob || ebookURL instanceof File) {\n\n _zipFs.importBlob(\n ebookURL,\n function () { \n callback(_zipFs, onerror); \n },\n function () {\n console.error(\"ZIP ERROR\");\n onerror.apply(this, arguments);\n }\n ); \n\n } else {\n \n _zipFs.importHttpContent(\n ebookURL,\n true,\n function () {\n callback(_zipFs, onerror);\n },\n function () {\n console.error(\"ZIP ERROR\");\n onerror.apply(this, arguments);\n }\n );\n }\n }\n }\n\n function fetchFileContents (relativePathRelativeToPackageRoot, readCallback, onerror) {\n\n if (typeof relativePathRelativeToPackageRoot === 'undefined') {\n throw 'Fetched file relative path is undefined!';\n }\n\n withZipFsPerform(\n function (zipFs, onerror) {\n \n var entry = zipFs.find(relativePathRelativeToPackageRoot);\n\n if (typeof entry === 'undefined' || entry === null) {\n onerror(new Error(READIUM_ERROR_PREFIX + 'Entry ' + relativePathRelativeToPackageRoot + ' not found in zip ' + ebookURL_filepath));\n } else {\n if (entry.directory) {\n onerror(new Error(READIUM_ERROR_PREFIX + 'Entry ' + relativePathRelativeToPackageRoot + ' is a directory while a file has been expected'));\n } else {\n readCallback(entry);\n }\n }\n },\n function() {\n \n var error = arguments ?\n (\n (arguments.length && (arguments[0] instanceof Error)) ?\n arguments[0]\n : ((arguments instanceof Error) ? arguments : undefined)\n )\n : undefined;\n \n // console.log(error);\n // if (!error) console.log(arguments);\n \n var isReadiumError = error ? (error.message.indexOf(READIUM_ERROR_PREFIX) == 0) : false;\n \n // we fallback to Blobl for all other types of errors (not just those emanating from the zip lib, but also from the readCallback())\n if (!isReadiumError && !(ebookURL instanceof Blob) && !(ebookURL instanceof File)) {\n console.log(\"Zip lib failed to load zipped EPUB via HTTP, trying alternative HTTP fetch... (\" + ebookURL + \")\");\n \n var xhr = new XMLHttpRequest();\n \n //xhr.addEventListener('load', function(){});\n \n xhr.onreadystatechange = function(){\n \n //console.log(\"XMLHttpRequest readyState: \" + this.readyState);\n if (this.readyState != 4) return;\n \n var success = xhr.status >= 200 && xhr.status < 300 || xhr.status === 304;\n if (success) {\n ebookURL = this.response;\n //ebookURL_filepath = Helpers.getEbookUrlFilePath(ebookURL);\n //console.log(ebookURL_filepath);\n \n _zipFs = undefined;\n\n if (ebookURL instanceof Blob || ebookURL instanceof File) {\n fetchFileContents(relativePathRelativeToPackageRoot, readCallback, onerror);\n }\n else {\n onerror(new Error(\"XMLHttpRequest response not Blob!?\"));\n }\n \n return;\n }\n \n onerror(xhr.statusText);\n };\n xhr.open('GET', ebookURL, true);\n xhr.responseType = 'blob';\n xhr.send(null); \n\n // $.get(ebookURL, function(data) {\n // console.log(typeof data);\n // ebookURL_filepath = Helpers.getEbookUrlFilePath(ebookURL);\n // //fetchFileContents(relativePathRelativeToPackageRoot, readCallback, onerror);\n\n // }).fail(function(err) {\n\n // console.log(err);\n // onerror.apply(this, arguments);\n // });\n \n } else {\n onerror.apply(this, arguments);\n }\n }\n );\n }\n\n\n // PUBLIC API\n\n this.resolveURI = function (pathRelativeToPackageRoot) {\n \n var pathRelativeToPackageRootUri = undefined;\n try {\n pathRelativeToPackageRootUri = new URI(pathRelativeToPackageRoot);\n } catch(err) {\n console.error(err);\n console.log(pathRelativeToPackageRoot);\n }\n if (pathRelativeToPackageRootUri && pathRelativeToPackageRootUri.is(\"absolute\")) return pathRelativeToPackageRoot; //pathRelativeToPackageRootUri.scheme() == \"http://\", \"https://\", \"data:\", etc.\n\n\n var url = ebookURL_filepath;\n \n try {\n //url = new URI(relativeUrl).absoluteTo(url).search('').hash('').toString();\n url = new URI(url).search('').hash('').toString();\n } catch(err) {\n console.error(err);\n console.log(url);\n }\n \n return url + (url.charAt(url.length-1) == '/' ? \"\" : \"/\") + pathRelativeToPackageRoot;\n };\n\n this.fetchFileContentsText = function(relativePathRelativeToPackageRoot, fetchCallback, onerror) {\n\n fetchFileContents(relativePathRelativeToPackageRoot, function (entry) {\n entry.getText(fetchCallback, undefined, _checkCrc32);\n }, onerror)\n };\n\n this.fetchFileContentsData64Uri = function(relativePathRelativeToPackageRoot, fetchCallback, onerror) {\n fetchFileContents(relativePathRelativeToPackageRoot, function (entry) {\n entry.getData64URI(ContentTypeDiscovery.identifyContentTypeFromFileName(relativePathRelativeToPackageRoot),\n fetchCallback, undefined, _checkCrc32);\n }, onerror)\n };\n\n this.fetchFileContentsBlob = function(relativePathRelativeToPackageRoot, fetchCallback, onerror) {\n var decryptionFunction = parentFetcher.getDecryptionFunctionForRelativePath(relativePathRelativeToPackageRoot);\n if (decryptionFunction) {\n var origFetchCallback = fetchCallback;\n fetchCallback = function (unencryptedBlob) {\n decryptionFunction(unencryptedBlob, function (decryptedBlob) {\n origFetchCallback(decryptedBlob);\n });\n };\n }\n fetchFileContents(relativePathRelativeToPackageRoot, function (entry) {\n entry.getBlob(ContentTypeDiscovery.identifyContentTypeFromFileName(relativePathRelativeToPackageRoot), fetchCallback,\n undefined, _checkCrc32);\n }, onerror)\n };\n\n };\n\n return ZipResourceFetcher;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\ndefine(\n 'readium_js/epub-fetch/content_document_fetcher',['jquery', 'underscore', 'URIjs', './discover_content_type'],\n function ($, _, URI, ContentTypeDiscovery) {\n\n\n var ContentDocumentFetcher = function (publicationFetcher, spineItem, loadedDocumentUri, publicationResourcesCache, contentDocumentTextPreprocessor) {\n\n var self = this;\n\n var _contentDocumentPathRelativeToPackage = spineItem.href;\n var _publicationFetcher = publicationFetcher;\n var _contentDocumentText;\n var _srcMediaType = spineItem.media_type;\n var _contentDocumentDom;\n var _publicationResourcesCache = publicationResourcesCache;\n var _contentDocumentTextPreprocessor = contentDocumentTextPreprocessor;\n\n // PUBLIC API\n\n this.fetchContentDocumentAndResolveDom = function (contentDocumentResolvedCallback, errorCallback) {\n _publicationFetcher.relativeToPackageFetchFileContents(_contentDocumentPathRelativeToPackage, 'text',\n function (contentDocumentText) {\n _contentDocumentText = contentDocumentText;\n if (_contentDocumentTextPreprocessor) {\n _contentDocumentText = _contentDocumentTextPreprocessor(loadedDocumentUri, _contentDocumentText);\n }\n self.resolveInternalPackageResources(contentDocumentResolvedCallback, errorCallback);\n }, errorCallback\n );\n };\n\n this.resolveInternalPackageResources = function (resolvedDocumentCallback, onerror) {\n\n _contentDocumentDom = _publicationFetcher.markupParser.parseMarkup(_contentDocumentText, _srcMediaType);\n setBaseUri(_contentDocumentDom, loadedDocumentUri);\n\n var resolutionDeferreds = [];\n\n if (_publicationFetcher.shouldFetchMediaAssetsProgrammatically()) {\n \n console.log(\"fetchMediaAssetsProgrammatically ...\");\n \n resolveDocumentImages(resolutionDeferreds, onerror);\n \n resolveDocumentAudios(resolutionDeferreds, onerror);\n resolveDocumentVideos(resolutionDeferreds, onerror);\n \n // both audio and video\n resolveResourceElements('source', 'src', 'blob', resolutionDeferreds, onerror);\n \n resolveResourceElements('object', 'data', 'blob', resolutionDeferreds, onerror);\n }\n\n // The code below is not needed since fix for https://github.com/readium/readium-js/issues/107\n // See https://github.com/readium/readium-js/issues/105\n //resolveDocumentIframes(resolutionDeferreds, onerror);\n // resolveResourceElements('iframe', 'src', 'blob', resolutionDeferreds, onerror,\n // function(data, uri, callback) {\n // callback(data);\n // });\n\n // TODO: resolution (e.g. using DOM mutation events) of scripts loaded dynamically by scripts\n resolveDocumentScripts(resolutionDeferreds, onerror);\n resolveDocumentLinkStylesheets(resolutionDeferreds, onerror);\n resolveDocumentEmbeddedStylesheets(resolutionDeferreds, onerror);\n\n $.when.apply($, resolutionDeferreds).done(function () {\n console.log(\"DOM BLOB URi DONE: \" + loadedDocumentUri);\n resolvedDocumentCallback(_contentDocumentDom);\n });\n\n };\n\n // INTERNAL FUNCTIONS\n\n function setBaseUri(documentDom, baseURI) {\n var baseElem = documentDom.getElementsByTagName('base')[0];\n if (!baseElem) {\n baseElem = documentDom.createElement('base');\n\n var anchor = documentDom.getElementsByTagName('head')[0];\n if (anchor) {\n anchor.insertBefore(baseElem, anchor.childNodes[0]);\n }\n }\n baseElem.setAttribute('href', baseURI);\n }\n\n function fetchResourceForElement(resolvedElem, refAttrOrigVal, refAttr, fetchMode, resolutionDeferreds,\n onerror, resourceDataPreprocessing) {\n\n function replaceRefAttrInElem(newResourceUrl) {\n // Store original refAttrVal in a special attribute to provide access to the original href:\n //$(resolvedElem).data('epubZipOrigHref', refAttrOrigVal);\n $(resolvedElem).attr('data-epubZipOrigHref', refAttrOrigVal);\n $(resolvedElem).attr(refAttr, newResourceUrl);\n }\n\n var refAttrUri = new URI(refAttrOrigVal);\n if (refAttrUri.scheme() !== '') {\n console.log(\"HTTP / absolute scheme res: \" + refAttrOrigVal);\n\n return;\n\n } else if (refAttrOrigVal.indexOf(\"/\") == 0) {\n console.log(\"Absolute path res: \" + refAttrOrigVal);\n\n var HTTPServerRootFolder =\n window.location ? (\n window.location.protocol\n + \"//\"\n + window.location.hostname\n + (window.location.port ? (':' + window.location.port) : '')\n ) : ''\n ;\n\n replaceRefAttrInElem(HTTPServerRootFolder + refAttrOrigVal);\n\n return;\n }\n\n var contentDocumentPathRelativeToBase = _publicationFetcher.convertPathRelativeToPackageToRelativeToBase(_contentDocumentPathRelativeToPackage);\n\n var resourceUriRelativeToBase = \"/\" + (new URI(refAttrOrigVal)).absoluteTo(contentDocumentPathRelativeToBase).toString();\n\n\n var cachedResourceUrl = _publicationResourcesCache.getResourceURL(resourceUriRelativeToBase);\n\n if (cachedResourceUrl) {\n replaceRefAttrInElem(cachedResourceUrl);\n } else {\n var resolutionDeferred = $.Deferred();\n resolutionDeferreds.push(resolutionDeferred);\n\n _publicationFetcher.relativeToPackageFetchFileContents(resourceUriRelativeToBase,\n fetchMode,\n function (resourceData) {\n\n // Generate a function to replace element's resource URL with URL of fetched data.\n // The function will either be called directly, immediately (if no preprocessing of resourceData is in effect)\n // or indirectly, later after resourceData preprocessing finishes:\n var replaceResourceURL = function (finalResourceData) {\n // Creating an object URL requires a Blob object, so resource data fetched in text mode needs to be wrapped in a Blob:\n if (fetchMode === 'text') {\n var textResourceContentType = ContentTypeDiscovery.identifyContentTypeFromFileName(resourceUriRelativeToBase);\n var declaredType = $(resolvedElem).attr('type');\n if (declaredType) {\n textResourceContentType = declaredType;\n }\n finalResourceData = new Blob([finalResourceData], {type: textResourceContentType});\n }\n //noinspection JSUnresolvedVariable,JSUnresolvedFunction\n var resourceObjectURL = window.URL.createObjectURL(finalResourceData);\n _publicationResourcesCache.putResource(resourceUriRelativeToBase,\n resourceObjectURL, finalResourceData);\n // TODO: take care of releasing object URLs when no longer needed\n replaceRefAttrInElem(resourceObjectURL);\n resolutionDeferred.resolve();\n };\n\n if (resourceDataPreprocessing) {\n resourceDataPreprocessing(resourceData, resourceUriRelativeToBase,\n replaceResourceURL);\n } else {\n replaceResourceURL(resourceData);\n }\n }, function() {\n resolutionDeferred.resolve();\n onerror.apply(this, arguments);\n });\n }\n }\n\n function fetchResourceForCssUrlMatch(cssUrlMatch, cssResourceDownloadDeferreds,\n styleSheetUriRelativeToPackageDocument, stylesheetCssResourceUrlsMap,\n isStyleSheetResource) {\n var origMatchedUrlString = cssUrlMatch[0];\n\n var extractedUrlCandidates = cssUrlMatch.slice(2);\n var extractedUrl = _.find(extractedUrlCandidates, function(matchGroup){ return typeof matchGroup !== 'undefined' });\n\n var extractedUri = new URI(extractedUrl);\n var isCssUrlRelative = extractedUri.scheme() === '';\n if (!isCssUrlRelative) {\n // Absolute URLs don't need programmatic fetching\n return;\n }\n\n var styleSheetUriRelativeToBase = _publicationFetcher.convertPathRelativeToPackageToRelativeToBase(styleSheetUriRelativeToPackageDocument);\n\n // fetchResourceForCssUrlMatch() is potentially recursive,\n // so styleSheetUriRelativeToPackageDocument may already be relative to base (i.e. absolute),\n // See preprocessCssStyleSheetData() below\n if (styleSheetUriRelativeToBase.charAt(0) === '/') {\n styleSheetUriRelativeToBase = styleSheetUriRelativeToBase.substr(1);\n }\n\n var resourceUriRelativeToBase = \"/\" + (new URI(extractedUrl)).absoluteTo(styleSheetUriRelativeToBase).toString();\n\n var cachedResourceURL = _publicationResourcesCache.getResourceURL(resourceUriRelativeToBase);\n\n\n if (cachedResourceURL) {\n stylesheetCssResourceUrlsMap[origMatchedUrlString] = {\n isStyleSheetResource: isStyleSheetResource,\n resourceObjectURL: cachedResourceURL\n };\n } else {\n var cssUrlFetchDeferred = $.Deferred();\n cssResourceDownloadDeferreds.push(cssUrlFetchDeferred);\n\n var processedBlobCallback = function (resourceDataBlob) {\n //noinspection JSUnresolvedVariable,JSUnresolvedFunction\n var resourceObjectURL = window.URL.createObjectURL(resourceDataBlob);\n stylesheetCssResourceUrlsMap[origMatchedUrlString] = {\n isStyleSheetResource: isStyleSheetResource,\n resourceObjectURL: resourceObjectURL\n };\n _publicationResourcesCache.putResource(resourceUriRelativeToBase,\n resourceObjectURL, resourceDataBlob);\n cssUrlFetchDeferred.resolve();\n };\n var fetchErrorCallback = function (error) {\n cssUrlFetchDeferred.resolve();\n };\n\n var fetchMode;\n var fetchCallback;\n if (isStyleSheetResource) {\n // TODO: test whether recursion works for nested @import rules with arbitrary indirection depth.\n fetchMode = 'text';\n fetchCallback = function (styleSheetResourceData) {\n preprocessCssStyleSheetData(styleSheetResourceData, resourceUriRelativeToBase,\n function (preprocessedStyleSheetData) {\n var resourceDataBlob = new Blob([preprocessedStyleSheetData], {type: 'text/css'});\n processedBlobCallback(resourceDataBlob);\n })\n }\n } else {\n fetchMode = 'blob';\n fetchCallback = processedBlobCallback;\n }\n\n _publicationFetcher.relativeToPackageFetchFileContents(resourceUriRelativeToBase,\n fetchMode,\n fetchCallback, fetchErrorCallback);\n }\n }\n\n function preprocessCssStyleSheetData(styleSheetResourceData, styleSheetUriRelativeToPackageDocument,\n callback) {\n var cssUrlRegexp = /[Uu][Rr][Ll]\\(\\s*([']([^']+)[']|[\"]([^\"]+)[\"]|([^)]+))\\s*\\)/g;\n var nonUrlCssImportRegexp = /@[Ii][Mm][Pp][Oo][Rr][Tt]\\s*('([^']+)'|\"([^\"]+)\")/g;\n var stylesheetCssResourceUrlsMap = {};\n var cssResourceDownloadDeferreds = [];\n // Go through the stylesheet text using all regexps and process according to those regexp matches, if any:\n [nonUrlCssImportRegexp, cssUrlRegexp].forEach(function (processingRegexp) {\n // extract all URL references in the CSS sheet,\n var cssUrlMatch = processingRegexp.exec(styleSheetResourceData);\n while (cssUrlMatch != null) {\n // then fetch and replace them with corresponding object URLs:\n var isStyleSheetResource = false;\n // Special handling of @import-ed stylesheet files - recursive preprocessing:\n // TODO: will not properly handle @import url(...):\n if (processingRegexp == nonUrlCssImportRegexp) {\n // This resource URL points to an @import-ed CSS stylesheet file. Need to preprocess its text\n // after fetching but before making an object URL of it:\n isStyleSheetResource = true;\n }\n fetchResourceForCssUrlMatch(cssUrlMatch, cssResourceDownloadDeferreds,\n styleSheetUriRelativeToPackageDocument, stylesheetCssResourceUrlsMap, isStyleSheetResource);\n cssUrlMatch = processingRegexp.exec(styleSheetResourceData);\n }\n\n });\n\n if (cssResourceDownloadDeferreds.length > 0) {\n $.when.apply($, cssResourceDownloadDeferreds).done(function () {\n for (var origMatchedUrlString in stylesheetCssResourceUrlsMap) {\n var processedResourceDescriptor = stylesheetCssResourceUrlsMap[origMatchedUrlString];\n\n\n var processedUrlString;\n if (processedResourceDescriptor.isStyleSheetResource) {\n processedUrlString = '@import \"' + processedResourceDescriptor.resourceObjectURL + '\"';\n } else {\n processedUrlString = \"url('\" + processedResourceDescriptor.resourceObjectURL + \"')\";\n }\n var origMatchedUrlStringEscaped = origMatchedUrlString.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\n \"\\\\$&\");\n var origMatchedUrlStringRegExp = new RegExp(origMatchedUrlStringEscaped, 'g');\n //noinspection JSCheckFunctionSignatures\n styleSheetResourceData =\n styleSheetResourceData.replace(origMatchedUrlStringRegExp, processedUrlString, 'g');\n\n }\n callback(styleSheetResourceData);\n });\n } else {\n callback(styleSheetResourceData);\n }\n }\n\n\n function resolveResourceElements(elemName, refAttr, fetchMode, resolutionDeferreds, onerror,\n resourceDataPreprocessing) {\n\n var resolvedElems = $(elemName + '[' + refAttr.replace(':', '\\\\:') + ']', _contentDocumentDom);\n\n resolvedElems.each(function (index, resolvedElem) {\n var refAttrOrigVal = $(resolvedElem).attr(refAttr);\n\n fetchResourceForElement(resolvedElem, refAttrOrigVal, refAttr, fetchMode, resolutionDeferreds,\n onerror, resourceDataPreprocessing);\n });\n }\n\n function resolveDocumentImages(resolutionDeferreds, onerror) {\n resolveResourceElements('img', 'src', 'blob', resolutionDeferreds, onerror);\n resolveResourceElements('image', 'xlink:href', 'blob', resolutionDeferreds, onerror);\n }\n\n function resolveDocumentAudios(resolutionDeferreds, onerror) {\n resolveResourceElements('audio', 'src', 'blob', resolutionDeferreds, onerror);\n }\n\n function resolveDocumentVideos(resolutionDeferreds, onerror) {\n resolveResourceElements('video', 'src', 'blob', resolutionDeferreds, onerror);\n resolveResourceElements('video', 'poster', 'blob', resolutionDeferreds, onerror);\n }\n\n function resolveDocumentScripts(resolutionDeferreds, onerror) {\n resolveResourceElements('script', 'src', 'blob', resolutionDeferreds, onerror);\n }\n\n function resolveDocumentLinkStylesheets(resolutionDeferreds, onerror) {\n resolveResourceElements('link', 'href', 'text', resolutionDeferreds, onerror,\n preprocessCssStyleSheetData);\n }\n\n function resolveDocumentEmbeddedStylesheets(resolutionDeferreds, onerror) {\n var resolvedElems = $('style', _contentDocumentDom);\n resolvedElems.each(function (index, resolvedElem) {\n var resolutionDeferred = $.Deferred();\n resolutionDeferreds.push(resolutionDeferred);\n var styleSheetData = $(resolvedElem).text();\n preprocessCssStyleSheetData(styleSheetData, _contentDocumentPathRelativeToPackage,\n function (resolvedStylesheetData) {\n $(resolvedElem).text(resolvedStylesheetData);\n resolutionDeferred.resolve();\n });\n });\n }\n\n };\n\n return ContentDocumentFetcher;\n\n }\n);\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\ndefine('readium_js/epub-fetch/resource_cache',['underscore'], function (_) {\n\n var ResourceCache = function(sourceWindow, configuredCacheSizeEvictThreshold) {\n\n var self = this;\n var _resourcesHash = {};\n var _orderingByLastUseTimestamp = [];\n var _cacheSize = 0;\n var CACHE_SIZE_EVICT_THRESHOLD_DEFAULT = 100000000;\n var cacheSizeEvictThreshold = determineCacheSizeThreshold();\n\n function getTimestamp() {\n return new Date().getTime();\n }\n\n function getBrowserHeapLimitInBytes() {\n if (window.performance && window.performance.memory && window.performance.memory.jsHeapSizeLimit) {\n return window.performance.memory.jsHeapSizeLimit;\n } else {\n return null;\n }\n }\n\n function determineCacheSizeThreshold() {\n if (configuredCacheSizeEvictThreshold) {\n return configuredCacheSizeEvictThreshold;\n }\n var browserHeapLimitInBytes = getBrowserHeapLimitInBytes();\n if (browserHeapLimitInBytes && browserHeapLimitInBytes / 10 > CACHE_SIZE_EVICT_THRESHOLD_DEFAULT) {\n return browserHeapLimitInBytes / 10;\n } else {\n return CACHE_SIZE_EVICT_THRESHOLD_DEFAULT;\n }\n }\n\n this.getResourceURL = function(resourceAbsoluteHref) {\n var resourceObjectUrl = null;\n var resourceData = _resourcesHash[resourceAbsoluteHref];\n if (resourceData) {\n resourceObjectUrl = resourceData.url;\n resourceData.lastUseTimestamp = getTimestamp();\n updateOrderedIndex(resourceData);\n }\n return resourceObjectUrl;\n };\n\n function removeCacheEntryFromOrderedIndex(cacheEntry) {\n // Remove the previous entry from the ordered index, if present:\n if (typeof cacheEntry.orderingByLastUseTimestampIdx !== 'undefined') {\n var orderingByLastUseTimestampIdx = cacheEntry.orderingByLastUseTimestampIdx;\n _orderingByLastUseTimestamp.splice(orderingByLastUseTimestampIdx, 1);\n // Decrement index values for all downshifted entries:\n for (var i = orderingByLastUseTimestampIdx; i < _orderingByLastUseTimestamp.length; i++) {\n var downshiftedEntry = _orderingByLastUseTimestamp[i];\n // Assertion\n if ((downshiftedEntry.orderingByLastUseTimestampIdx - 1) != i) {\n console.error('algorithm incorrect: downshiftedEntry.orderingByLastUseTimestampIdx: ' +\n downshiftedEntry.orderingByLastUseTimestampIdx + ', i: ' + i + \" -- \" + cacheEntry.absoluteHref);\n }\n downshiftedEntry.orderingByLastUseTimestampIdx = i;\n }\n }\n }\n\n function updateOrderedIndex(cacheEntry) {\n removeCacheEntryFromOrderedIndex(cacheEntry);\n var insertIdx = _.sortedIndex(_orderingByLastUseTimestamp, cacheEntry, 'lastUseTimestamp');\n _orderingByLastUseTimestamp.splice(insertIdx, 0, cacheEntry);\n cacheEntry.orderingByLastUseTimestampIdx = insertIdx;\n }\n\n this.putResource = function(resourceAbsoluteHref, resourceObjectUrl, resourceDataBlob) {\n this.trimCache();\n var currentTimestamp = getTimestamp();\n var cacheEntry = {\n url: resourceObjectUrl,\n absoluteHref: resourceAbsoluteHref,\n blob: resourceDataBlob,\n blobSize: resourceDataBlob.size,\n creationTimestamp: currentTimestamp,\n lastUseTimestamp: currentTimestamp,\n pinned: true\n };\n _resourcesHash[resourceAbsoluteHref] = cacheEntry;\n updateOrderedIndex(cacheEntry);\n _cacheSize += resourceDataBlob.size;\n };\n\n this.evictResource = function(resourceAbsoluteHref) {\n var resourceData = _resourcesHash[resourceAbsoluteHref];\n if (resourceData) {\n sourceWindow.URL.revokeObjectURL(resourceData.url);\n _cacheSize -= resourceData.blobSize;\n removeCacheEntryFromOrderedIndex(resourceData);\n delete _resourcesHash[resourceAbsoluteHref];\n }\n };\n\n this.flushCache = function() {\n // TODO: more efficient, but less code reuse: iterate over _sortedIndex first,\n // then assert an empty cache and perform backup cleanup if assertion failed\n for (var resourceAbsoluteHref in _resourcesHash) {\n this.evictResource(resourceAbsoluteHref);\n }\n // Assertion\n if (_cacheSize != 0) {\n console.error('cacheSize accounting error! cacheSize: ' + _cacheSize + ', _resourcesHash:');\n console.error(_resourcesHash);\n }\n _orderingByLastUseTimestamp = [];\n //console.log('Cache contents:');\n //console.log(_resourcesHash);\n //console.log('_orderingByLastUseTimestamp:');\n //console.log(_orderingByLastUseTimestamp);\n //console.log('Cache size:' + _cacheSize);\n };\n\n this.unPinResources = function() {\n for (var resourceAbsoluteHref in _resourcesHash) {\n var resourceData = _resourcesHash[resourceAbsoluteHref];\n resourceData.pinned = false;\n }\n };\n\n function orderingByLastUseTimestampToString() {\n return _orderingByLastUseTimestamp.reduce(function(previousValue, currentValue) {\n return previousValue + (previousValue.length > 1 ? ', ' : '') + '[' +\n currentValue.absoluteHref + ', pinned: ' + currentValue.pinned +\n ', orderingByLastUseTimestampIdx: ' + currentValue.orderingByLastUseTimestampIdx + ']'\n }, '');\n }\n\n this.trimCache = function() {\n if (_cacheSize < cacheSizeEvictThreshold) {\n return;\n }\n console.log('Trimming cache. Current cache size: ' + _cacheSize);\n\n // Loop through ordered index (by last use timestamp) starting from the least recently used entries.\n // evict unpinned resources until either:\n // 1) cache size drops below CACHE_SIZE_EVICT_THRESHOLD\n // 2) there are no more unpinned resources to evict\n for (var i = 0; i < _orderingByLastUseTimestamp.length; i++) {\n if (_cacheSize < cacheSizeEvictThreshold) {\n break;\n }\n var cacheEntry = _orderingByLastUseTimestamp[i];\n if (!cacheEntry.pinned) {\n var resourceAbsoluteHref = cacheEntry.absoluteHref;\n //console.log('Preparing to evict ' + resourceAbsoluteHref);\n //console.log('_orderingByLastUseTimestamp:');\n //console.log(orderingByLastUseTimestampToString());\n this.evictResource(resourceAbsoluteHref);\n //console.log('Evicted ' + resourceAbsoluteHref);\n //console.log('Current cache size: ' + _cacheSize);\n //console.log('_orderingByLastUseTimestamp:');\n //console.log(orderingByLastUseTimestampToString());\n //console.log('i: ' + i);\n\n // The consequent array elements have downshifted by one position.\n // The i variable now points to a different element - the evicted element's successor\n // (if not beyond array's end).\n // Make the i variable remain in place - compensate for its upcoming incrementation:\n i--;\n }\n }\n console.log('Cache size after trimming: ' + _cacheSize);\n };\n };\n\n return ResourceCache;\n });\n\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine('cryptoJs/core',[], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\t /*\n\t * Local polyfil of Object.create\n\t */\n\t var create = Object.create || (function () {\n\t function F() {};\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }())\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var i = 0; i < thatSigBytes; i += 4) {\n\t thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t var r = (function (m_w) {\n\t var m_w = m_w;\n\t var m_z = 0x3ade68b1;\n\t var mask = 0xffffffff;\n\n\t return function () {\n\t m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;\n\t m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;\n\t var result = ((m_z << 0x10) + m_w) & mask;\n\t result /= 0x100000000;\n\t result += 0.5;\n\t return result * (Math.random() > .5 ? 1 : -1);\n\t }\n\t });\n\n\t for (var i = 0, rcache; i < nBytes; i += 4) {\n\t var _r = r((rcache || Math.random()) * 0x100000000);\n\n\t rcache = _r() * 0x3ade67b7;\n\t words.push((_r() * 0x100000000) | 0);\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t var processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));\ndefine('cryptoJs', ['cryptoJs/core'], function (main) { return main; });\n\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine('cryptoJs/sha1',[\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-fetch/encryption_handler',['cryptoJs/sha1'], function (CryptoJS_SHA1) {\n\n var EncryptionHandler = function (encryptionData) {\n var self = this;\n\n var ENCRYPTION_METHODS = {\n 'http://www.idpf.org/2008/embedding': embeddedFontDeobfuscateIdpf,\n 'http://ns.adobe.com/pdf/enc#RC': embeddedFontDeobfuscateAdobe\n };\n\n // INTERNAL FUNCTIONS\n\n function blob2BinArray(blob, callback) {\n var fileReader = new FileReader();\n fileReader.onload = function () {\n var arrayBuffer = this.result;\n callback(new Uint8Array(arrayBuffer));\n };\n fileReader.readAsArrayBuffer(blob);\n }\n\n function xorObfuscatedBlob(obfuscatedResourceBlob, prefixLength, xorKey, callback) {\n var obfuscatedPrefixBlob = obfuscatedResourceBlob.slice(0, prefixLength);\n blob2BinArray(obfuscatedPrefixBlob, function (bytes) {\n var masklen = xorKey.length;\n for (var i = 0; i < prefixLength; i++) {\n bytes[i] = bytes[i] ^ (xorKey[i % masklen]);\n }\n var deobfuscatedPrefixBlob = new Blob([bytes], { type: obfuscatedResourceBlob.type });\n var remainderBlob = obfuscatedResourceBlob.slice(prefixLength);\n var deobfuscatedBlob = new Blob([deobfuscatedPrefixBlob, remainderBlob],\n { type: obfuscatedResourceBlob.type });\n\n callback(deobfuscatedBlob);\n });\n }\n\n function embeddedFontDeobfuscateIdpf(obfuscatedResourceBlob, callback) {\n \n var prefixLength = 1040;\n // Shamelessly copied from\n // https://github.com/readium/readium-chrome-extension/blob/26d4b0cafd254cfa93bf7f6225887b83052642e0/scripts/models/path_resolver.js#L102 :\n\n xorObfuscatedBlob(obfuscatedResourceBlob, prefixLength, encryptionData.uidHash, callback);\n }\n\n function urnUuidToByteArray(id) {\n var uuidRegexp = /(urn:uuid:)?([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/i;\n var matchResults = uuidRegexp.exec(id);\n var rawUuid = matchResults[2] + matchResults[3] + matchResults[4] + matchResults[5] + matchResults[6];\n if (!rawUuid || rawUuid.length != 32) {\n console.error('Bad UUID format for ID :' + id);\n }\n var byteArray = [];\n for (var i = 0; i < 16; i++) {\n var byteHex = rawUuid.substr(i * 2, 2);\n var byteNumber = parseInt(byteHex, 16);\n byteArray.push(byteNumber);\n }\n return byteArray;\n }\n\n function embeddedFontDeobfuscateAdobe(obfuscatedResourceBlob, callback) {\n \n // extract the UUID and convert to big-endian binary form (16 bytes):\n var uidWordArray = urnUuidToByteArray(encryptionData.uid);\n var prefixLength = 1024;\n\n xorObfuscatedBlob(obfuscatedResourceBlob, prefixLength, uidWordArray, callback)\n }\n\n\n // PUBLIC API\n\n this.isEncryptionSpecified = function () {\n return encryptionData && encryptionData.encryptions;\n };\n\n\n this.getEncryptionMethodForRelativePath = function (pathRelativeToRoot) {\n if (self.isEncryptionSpecified()) {\n return encryptionData.encryptions[pathRelativeToRoot];\n } else {\n return undefined;\n }\n };\n\n this.getDecryptionFunctionForRelativePath = function (pathRelativeToRoot) {\n \n var encryptionMethod = self.getEncryptionMethodForRelativePath(pathRelativeToRoot);\n \n //console.debug(pathRelativeToRoot + \" -- \" + encryptionMethod + \" ... \" + typeof ENCRYPTION_METHODS[encryptionMethod]);\n \n if (encryptionMethod && ENCRYPTION_METHODS[encryptionMethod]) {\n return ENCRYPTION_METHODS[encryptionMethod];\n } else {\n return undefined;\n }\n };\n\n };\n\n EncryptionHandler.CreateEncryptionData = function(id, encryptionDom) {\n\n var txt = unescape(encodeURIComponent(id.trim()));\n var sha = CryptoJS_SHA1(txt);\n \n //console.debug(sha.toString(CryptoJS.enc.Hex));\n \n var byteArray = [];\n \n for (var i = 0; i < sha.sigBytes; i++) {\n byteArray.push((sha.words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff);\n }\n \n // for (var i = 0; i < sha.words.length; ++i) {\n // for (var j = 3; j >= 0; --j) {\n // byteArray.push((sha.words[i] >> 8 * j) & 0xFF);\n // }\n // }\n \n var encryptionData = {\n uid: id,\n uidHash: byteArray,\n encryptions: undefined\n };\n\n var encryptedData = $('EncryptedData', encryptionDom);\n encryptedData.each(function (index, encryptedData) {\n var encryptionAlgorithm = $('EncryptionMethod', encryptedData).first().attr('Algorithm');\n\n // For some reason, jQuery selector \"\" against XML DOM sometimes doesn't match properly\n var cipherReference = $('CipherReference', encryptedData);\n cipherReference.each(function (index, CipherReference) {\n \n //var cipherReferenceURI = \"/\" + $(CipherReference).attr('URI');\n var cipherReferenceURI = $(CipherReference).attr('URI');\n \n console.log('Encryption/obfuscation algorithm ' + encryptionAlgorithm + ' specified for ' +\n cipherReferenceURI);\n\n if(!encryptionData.encryptions) {\n encryptionData.encryptions = {};\n }\n\n encryptionData.encryptions[cipherReferenceURI] = encryptionAlgorithm;\n });\n });\n\n return encryptionData;\n };\n\n return EncryptionHandler;\n});\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\ndefine('readium_js/epub-fetch/publication_fetcher',['jquery', 'URIjs', './markup_parser', './plain_resource_fetcher', './zip_resource_fetcher',\n './content_document_fetcher', './resource_cache', './encryption_handler', './discover_content_type', 'readium_shared_js/helpers'],\n function ($, URI, MarkupParser, PlainResourceFetcher, ZipResourceFetcher, ContentDocumentFetcher,\n ResourceCache, EncryptionHandler, ContentTypeDiscovery, Helpers) {\n\n var PublicationFetcher = function(ebookURL, jsLibRoot, sourceWindow, cacheSizeEvictThreshold, contentDocumentTextPreprocessor, contentType) {\n\n var self = this;\n\n self.contentTypePackageReadStrategyMap = {\n 'application/oebps-package+xml': 'exploded',\n 'application/epub+zip': 'zipped',\n 'application/zip': 'zipped'\n };\n\n var _shouldConstructDomProgrammatically;\n var _resourceFetcher;\n var _encryptionHandler;\n var _packageFullPath;\n var _packageDocumentAbsoluteUrl;\n var _packageDom;\n var _packageDomInitializationDeferred;\n var _publicationResourcesCache = new ResourceCache(sourceWindow, cacheSizeEvictThreshold);\n\n var _contentDocumentTextPreprocessor = contentDocumentTextPreprocessor;\n var _contentType = contentType;\n\n this.markupParser = new MarkupParser();\n\n this.initialize = function(callback) {\n\n var isEpubExploded = isExploded();\n\n // Non exploded EPUBs (i.e. zipped .epub documents) should be fetched in a programmatical manner:\n _shouldConstructDomProgrammatically = !isEpubExploded;\n console.log(\"_shouldConstructDomProgrammatically INIT: \" + _shouldConstructDomProgrammatically);\n \n createResourceFetcher(isEpubExploded, function(resourceFetcher) {\n \n //NOTE: _resourceFetcher == resourceFetcher\n \n self.getPackageDom(\n function() {callback(resourceFetcher);},\n function(error) {console.error(\"unable to find package document: \" + error); callback(undefined);}\n );\n });\n };\n\n\n\n // INTERNAL FUNCTIONS\n\n function isExploded() {\n // binary object means packed EPUB\n if (ebookURL instanceof Blob || ebookURL instanceof File) return false;\n\n if (_contentType &&\n (\n _contentType.indexOf(\"application/epub+zip\") >= 0\n ||\n _contentType.indexOf(\"application/zip\") >= 0\n ||\n _contentType.indexOf(\"application/octet-stream\") >= 0\n )\n ) return false;\n \n var uriTrimmed = ebookURL;\n \n try {\n //.absoluteTo(\"http://readium.org/epub\")\n uriTrimmed = new URI(uriTrimmed).search('').hash('').toString();\n } catch(err) {\n console.error(err);\n console.log(ebookURL);\n }\n \n // dumb test: ends with \".epub\" file extension\n return !(/\\.epub[3?]$/.test(uriTrimmed));\n \n // var ext = \".epub\";\n // return ebookURL.indexOf(ext, ebookURL.length - ext.length) === -1;\n }\n\n function createResourceFetcher(isExploded, callback) {\n if (isExploded) {\n console.log(' --- using PlainResourceFetcher');\n _resourceFetcher = new PlainResourceFetcher(self);\n callback(_resourceFetcher);\n } else {\n console.log(' --- using ZipResourceFetcher');\n _resourceFetcher = new ZipResourceFetcher(self, jsLibRoot);\n callback(_resourceFetcher);\n }\n }\n\n \n // PUBLIC API\n\n /**\n * Determine whether the documents fetched using this fetcher require special programmatic handling.\n * (resolving of internal resource references).\n * @returns {*} true if documents fetched using this fetcher require special programmatic handling\n * (resolving of internal resource references). Typically needed for zipped EPUBs or exploded EPUBs that contain\n * encrypted resources specified in META-INF/encryption.xml.\n *\n * false if documents can be fed directly into a window or iframe by src URL without using special fetching logic.\n */\n this.shouldConstructDomProgrammatically = function (){\n \n return _shouldConstructDomProgrammatically;\n };\n\n /**\n * Determine whether the media assets (audio, video, images) within content documents require special\n * programmatic handling.\n * @returns {*} true if content documents fetched using this fetcher require programmatic fetching\n * of media assets. Typically needed for zipped EPUBs.\n *\n * false if paths to media assets are accessible directly for the browser through their paths relative to\n * the base URI of their content document.\n */\n this.shouldFetchMediaAssetsProgrammatically = function() {\n \n var ret = _shouldConstructDomProgrammatically && !isExploded();\n return ret;\n };\n\n this.getEbookURL = function() {\n return ebookURL;\n };\n\n this.getEbookURL_FilePath = function() {\n \n return Helpers.getEbookUrlFilePath(ebookURL);\n };\n \n this.getJsLibRoot = function() {\n return jsLibRoot;\n };\n\n this.flushCache = function() {\n _publicationResourcesCache.flushCache();\n };\n\n\n this.getPackageUrl = function() {\n return _packageDocumentAbsoluteUrl;\n };\n \n this.getPackageFullPathRelativeToBase = function() {\n return _packageFullPath;\n };\n\n this.fetchContentDocument = function (attachedData, loadedDocumentUri, contentDocumentResolvedCallback, errorCallback) {\n\n // Resources loaded for previously fetched document no longer need to be pinned:\n // DANIEL: what about 2-page synthetic spread of fixed layout documents / spine items?\n // See https://github.com/readium/readium-js/issues/104\n _publicationResourcesCache.unPinResources();\n\n\n var contentDocumentFetcher = new ContentDocumentFetcher(self, attachedData.spineItem, loadedDocumentUri, _publicationResourcesCache, _contentDocumentTextPreprocessor);\n contentDocumentFetcher.fetchContentDocumentAndResolveDom(contentDocumentResolvedCallback, errorCallback);\n };\n\n this.getFileContentsFromPackage = function(filePathRelativeToPackageRoot, callback, onerror) {\n \n // AVOID INVOKING fetchFileContentsText() directly, use relativeToPackageFetchFileContents() wrapper instead so that additional checks are performed.\n \n // META-INF/container.xml initial fetch, see this.initialize()\n if (!_packageFullPath) {\n console.debug(\"FETCHING (INIT) ... \" + filePathRelativeToPackageRoot);\n if (filePathRelativeToPackageRoot && filePathRelativeToPackageRoot.charAt(0) == '/') {\n filePathRelativeToPackageRoot = filePathRelativeToPackageRoot.substr(1);\n }\n _resourceFetcher.fetchFileContentsText(filePathRelativeToPackageRoot, function (fileContents) {\n callback(fileContents);\n }, onerror);\n } else {\n self.relativeToPackageFetchFileContents(filePathRelativeToPackageRoot, 'text', function (fileContents) {\n callback(fileContents);\n }, onerror);\n }\n };\n\n\n\n this.getXmlFileDom = function (xmlFilePathRelativeToPackageRoot, callback, onerror) {\n self.getFileContentsFromPackage(xmlFilePathRelativeToPackageRoot, function (xmlFileContents) {\n var fileDom = self.markupParser.parseXml(xmlFileContents);\n callback(fileDom);\n }, onerror);\n };\n\n this.getPackageFullPath = function(callback, onerror) {\n self.getXmlFileDom('/META-INF/container.xml', function (containerXmlDom) {\n var packageFullPath = self.getRootFile(containerXmlDom);\n callback(packageFullPath);\n }, onerror);\n };\n\n this.getRootFile = function(containerXmlDom) {\n var rootFile = $('rootfile', containerXmlDom);\n var packageFullPath = rootFile.attr('full-path');\n return packageFullPath;\n };\n\n this.getPackageDom = function (callback, onerror) {\n if (_packageDom) {\n callback(_packageDom);\n } else {\n // TODO: use jQuery's Deferred\n // Register all callbacks interested in initialized packageDom, launch its instantiation only once\n // and broadcast to all callbacks registered during the initialization once it's done:\n if (_packageDomInitializationDeferred) {\n _packageDomInitializationDeferred.done(callback);\n } else {\n _packageDomInitializationDeferred = $.Deferred();\n _packageDomInitializationDeferred.done(callback);\n self.getPackageFullPath(function (packageFullPath) {\n \n _packageFullPath = packageFullPath;\n _packageDocumentAbsoluteUrl = _resourceFetcher.resolveURI(_packageFullPath);\n \n console.debug(\"PACKAGE: \");\n console.log(_packageFullPath);\n console.log(_packageDocumentAbsoluteUrl);\n \n if (packageFullPath && packageFullPath.charAt(0) != '/') {\n packageFullPath = '/' + packageFullPath;\n }\n \n self.getXmlFileDom(packageFullPath, function (packageDom) {\n _packageDom = packageDom;\n _packageDomInitializationDeferred.resolve(packageDom);\n _packageDomInitializationDeferred = undefined;\n })\n }, onerror);\n }\n }\n };\n\n // Note that if the relativeToPackagePath parameter is in fact absolute\n // (starting with \"/\", already relative to the EPUB archive's base folder)\n // then the returned value is relativeToPackagePath.\n this.convertPathRelativeToPackageToRelativeToBase = function (relativeToPackagePath) {\n\n return new URI(relativeToPackagePath).absoluteTo(_packageFullPath).toString();\n };\n\n // Note that the relativeToPackagePath parameter can in fact be absolute\n // (starting with \"/\", already relative to the EPUB archive's base folder)\n // For example: /META-INF/\n this.relativeToPackageFetchFileContents = function(relativeToPackagePath, fetchMode, fetchCallback, errorCallback) {\n\n var pathRelativeToEpubRoot = decodeURIComponent(self.convertPathRelativeToPackageToRelativeToBase(relativeToPackagePath));\n\n console.debug(\"FETCHING ... \" + pathRelativeToEpubRoot);\n\n // In case we received an absolute path, convert it to relative form or the fetch will fail:\n if (pathRelativeToEpubRoot.charAt(0) === '/') {\n pathRelativeToEpubRoot = pathRelativeToEpubRoot.substr(1);\n }\n\n var onerror = function() {\n \n var err = arguments ?\n (\n (arguments.length && (arguments[0] instanceof Error)) ?\n arguments[0]\n : ((arguments instanceof Error) ? arguments : undefined)\n )\n : undefined;\n \n // hacky! :(\n // (we need to filter these out from the console output, as they are in fact false positives)\n var optionalFetch = (pathRelativeToEpubRoot.indexOf(\"META-INF/com.apple.ibooks.display-options.xml\") == 0)\n || (pathRelativeToEpubRoot.indexOf(\"META-INF/encryption.xml\") == 0);\n \n console.log(\"MISSING: \" + pathRelativeToEpubRoot);\n \n if (!optionalFetch) {\n if (err) {\n console.error(err);\n \n if (err.message) {\n console.debug(err.message);\n }\n if (err.stack) {\n console.log(err.stack);\n }\n }\n }\n \n if (errorCallback) errorCallback.apply(this, arguments);\n };\n\n // ZIP resource fetcher does not support absolute URLs outside of the EPUB archive\n // (e.g. MathJax.js and annotations.css)\n if (//!isExploded()\n _shouldConstructDomProgrammatically // includes isExploded() and obfuscated fonts\n &&\n new URI(relativeToPackagePath).scheme() !== '') {\n\n console.log(\"shouldConstructDomProgrammatically EXTERNAL RESOURCE ...\");\n\n if (fetchMode === 'blob') {\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', relativeToPackagePath, true);\n xhr.responseType = 'arraybuffer';\n xhr.onerror = onerror;\n\n xhr.onload = function (loadEvent) {\n var blob = new Blob([xhr.response], {\n type: ContentTypeDiscovery.identifyContentTypeFromFileName(relativeToPackagePath)\n });\n fetchCallback(blob);\n };\n\n xhr.send();\n\n } else if (fetchMode === 'data64uri') {\n console.error(\"data64uri??\");\n } else {\n\n $.ajax({\n // encoding: \"UTF-8\",\n // mimeType: \"text/plain; charset=UTF-8\",\n // beforeSend: function( xhr ) {\n // xhr.overrideMimeType(\"text/plain; charset=UTF-8\");\n // },\n isLocal: false,\n url: relativeToPackagePath,\n dataType: 'text', //https://api.jquery.com/jQuery.ajax/\n async: true,\n success: function (result) {\n fetchCallback(result);\n },\n error: function (xhr, status, errorThrown) {\n onerror(new Error(errorThrown));\n }\n });\n }\n\n return;\n }\n \n var fetchFunction = _resourceFetcher.fetchFileContentsText;\n if (fetchMode === 'blob') {\n fetchFunction = _resourceFetcher.fetchFileContentsBlob;\n } else if (fetchMode === 'data64uri') {\n console.error(\"data64uri??\");\n fetchFunction = _resourceFetcher.fetchFileContentsData64Uri;\n }\n\n fetchFunction.call(_resourceFetcher, pathRelativeToEpubRoot, fetchCallback, onerror);\n };\n\n\n\n this.getRelativeXmlFileDom = function (filePath, callback, errorCallback) {\n self.getXmlFileDom(self.convertPathRelativeToPackageToRelativeToBase(filePath), callback, errorCallback);\n };\n\n // TODO: this function seems unused, and the callback parameter seems to be onError \n function readEncriptionData(callback) {\n self.getXmlFileDom('/META-INF/encryption.xml', function (encryptionDom, error) {\n\n if(error) {\n \n _encryptionHandler = new EncryptionHandler(undefined);\n callback();\n }\n else {\n\n var encryptions = [];\n\n\n var encryptedData = $('EncryptedData', encryptionDom);\n encryptedData.each(function (index, encryptedData) {\n var encryptionAlgorithm = $('EncryptionMethod', encryptedData).first().attr('Algorithm');\n\n encryptions.push({algorithm: encryptionAlgorithm});\n\n // For some reason, jQuery selector \"\" against XML DOM sometimes doesn't match properly\n var cipherReference = $('CipherReference', encryptedData);\n cipherReference.each(function (index, CipherReference) {\n var cipherReferenceURI = $(CipherReference).attr('URI');\n console.log('Encryption/obfuscation algorithm ' + encryptionAlgorithm + ' specified for ' +\n cipherReferenceURI);\n encryptions[cipherReferenceURI] = encryptionAlgorithm;\n });\n });\n }\n\n });\n }\n\n // Currently needed for deobfuscating fonts\n this.setPackageMetadata = function(packageMetadata, settingFinishedCallback) {\n\n self.getXmlFileDom('/META-INF/encryption.xml', function (encryptionDom) {\n\n var encryptionData = EncryptionHandler.CreateEncryptionData(packageMetadata.id, encryptionDom);\n\n _encryptionHandler = new EncryptionHandler(encryptionData);\n\n if (_encryptionHandler.isEncryptionSpecified()) {\n // EPUBs that use encryption for any resources should be fetched in a programmatical manner:\n _shouldConstructDomProgrammatically = true;\n console.log(\"_shouldConstructDomProgrammatically ENCRYPTION ACTIVE: \" + _shouldConstructDomProgrammatically);\n }\n\n settingFinishedCallback();\n\n\n }, function(error){\n\n _encryptionHandler = new EncryptionHandler(undefined);\n\n settingFinishedCallback();\n });\n };\n\n this.getDecryptionFunctionForRelativePath = function(pathRelativeToRoot) {\n return _encryptionHandler.getDecryptionFunctionForRelativePath(pathRelativeToRoot);\n }\n };\n\n return PublicationFetcher\n\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-model/package_document',['jquery', 'underscore', 'URIjs', 'readium_cfi_js'],\n function ($, _, URI, epubCFI) {\n\n // Description: This model provides an interface for navigating an EPUB's package document\n var PackageDocument = function(packageDocumentURL, packageDocumentDOM, resourceFetcher, metadata, spine, manifest) {\n\n var _page_prog_dir;\n\n this.manifest = manifest;\n\n this.getSharedJsPackageData = function () {\n\n var packageDocRoot = packageDocumentURL.substr(0, packageDocumentURL.lastIndexOf(\"/\"));\n return {\n rootUrl : packageDocRoot,\n rendition_viewport : metadata.rendition_viewport,\n rendition_layout : metadata.rendition_layout,\n rendition_orientation : metadata.rendition_orientation,\n rendition_flow : metadata.rendition_flow,\n rendition_spread : metadata.rendition_spread,\n media_overlay : metadata.media_overlay,\n spine : {\n direction : this.getPageProgressionDirection(),\n items : spine\n },\n metadata: metadata\n };\n };\n\n /**\n * Get spine item data in readium-shared-js accepted format.\n * @param spineIndex the index of the item within the spine\n * @returns Spine item data in readium-shared-js accepted format.\n */\n this.getSpineItem = function(spineIndex) {\n var spineItem = spine[spineIndex];\n return spineItem;\n };\n\n /**\n * Get the idref attribute value of the spine given a partial CFI\n * @param packageCFI The partial CFI that targets the spine item element in the package document\n */\n this.getSpineItemIdrefFromCFI = function(packageCFI) {\n var $spineItemElement = epubCFI.getTargetElementWithPartialCFI(\"epubcfi(\" + packageCFI + \")\", packageDocumentDOM);\n if ($spineItemElement.length) {\n return $spineItemElement[0].getAttribute('idref');\n }\n };\n\n this.setPageProgressionDirection = function(page_prog_dir) {\n _page_prog_dir = page_prog_dir;\n };\n\n\n this.getPageProgressionDirection = function() {\n if (_page_prog_dir === \"rtl\") {\n return \"rtl\";\n }\n else if (_page_prog_dir === \"default\") {\n return \"default\";\n }\n else {\n return \"ltr\";\n }\n };\n\n this.spineLength = function() {\n return spine.length;\n };\n\n this.getMetadata = function() {\n return metadata;\n };\n\n\n this.getTocItem = function(){\n\n var item = manifest.getNavItem();\n if (item) {\n return item;\n }\n\n var spine_id = metadata.ncx;\n if (spine_id && spine_id.length > 0) {\n return manifest.getManifestItemByIdref(spine_id);\n }\n\n return null;\n };\n\n this.getToc = function() {\n var item = this.getTocItem();\n if (item) {\n return item.href;\n }\n return null;\n };\n\n this.getTocText = function(callback) {\n var toc = this.getToc();\n if (!toc) {\n console.error(\"No TOC?!\");\n callback(undefined);\n return;\n }\n\n resourceFetcher.relativeToPackageFetchFileContents(toc, 'text', function (tocDocumentText) {\n callback(tocDocumentText)\n }, function (err) {\n console.error('ERROR fetching TOC from [' + toc + ']:');\n console.error(err);\n callback(undefined);\n });\n };\n\n this.getTocDom = function(callback) {\n\n this.getTocText(function (tocText) {\n if (typeof tocText === 'string') {\n var tocDom = (new DOMParser()).parseFromString(tocText, \"text/xml\");\n callback(tocDom);\n } else {\n callback(undefined);\n }\n });\n };\n\n\n // Used in EpubReader (readium-js-viewer)\n // https://github.com/readium/readium-js-viewer/blob/develop/lib/EpubReader.js#L59\n this.generateTocListDOM = function(callback) {\n var that = this;\n this.getTocDom(function (tocDom) {\n if (tocDom) {\n if (that.tocIsNcx()) {\n var $ncxOrderedList;\n $ncxOrderedList = getNcxOrderedList($(\"navMap\", tocDom));\n callback($ncxOrderedList[0]);\n } else {\n var packageDocumentAbsoluteURL = new URI(packageDocumentURL).absoluteTo(document.URL);\n var tocDocumentAbsoluteURL = new URI(that.getToc()).absoluteTo(packageDocumentAbsoluteURL);\n // add a BASE tag to change the TOC document's baseURI.\n var oldBaseTag = $(tocDom).remove('base');\n var newBaseTag = $('');\n $(newBaseTag).attr('href', tocDocumentAbsoluteURL);\n $(tocDom).find('head').append(newBaseTag);\n // TODO: fix TOC hrefs both for exploded in zipped EPUBs\n callback(tocDom);\n }\n } else {\n callback(undefined);\n }\n });\n };\n\n this.tocIsNcx = function() {\n\n var tocItem = this.getTocItem();\n var contentDocURI = tocItem.href;\n var fileExtension = contentDocURI.substr(contentDocURI.lastIndexOf('.') + 1);\n\n return fileExtension.trim().toLowerCase() === \"ncx\";\n }\n\n // ----------------------- PRIVATE HELPERS -------------------------------- //\n\n function getNcxOrderedList($navMapDOM) {\n\n var $ol = $(\"
    \");\n $.each($navMapDOM.children(\"navPoint\"), function (index, navPoint) {\n addNavPointElements($(navPoint), $ol);\n });\n return $ol;\n }\n\n // Description: Constructs an html representation of NCX navPoints, based on an object of navPoint information\n // Rationale: This is a recursive method, as NCX navPoint elements can nest 0 or more of themselves as children\n function addNavPointElements($navPointDOM, $ol) {\n\n // Add the current navPoint element to the TOC html\n var navText = $navPointDOM.children(\"navLabel\").text().trim();\n var navHref = $navPointDOM.children(\"content\").attr(\"src\");\n var $navPointLi = $('
  1. ').append(\n $('', { href: navHref, text: navText })\n );\n\n // Append nav point info\n $ol.append($navPointLi);\n\n // Append ordered list of nav points\n if ($navPointDOM.children(\"navPoint\").length > 0 ) {\n\n var $newLi = $(\"
  2. \");\n var $newOl = $(\"
      \");\n $.each($navPointDOM.children(\"navPoint\"), function (navIndex, navPoint) {\n $newOl.append(addNavPointElements($(navPoint), $newOl));\n });\n\n $newLi.append($newOl);\n $ol.append($newLi);\n }\n }\n };\n\n return PackageDocument;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-model/smil_document_parser',['jquery', 'underscore'], function ($, _) {\n\n // `SmilDocumentParser` is used to parse the xml of an epub package\n // document and build a javascript object. The constructor accepts an\n // instance of `URI` that is used to resolve paths during the process\n var SmilDocumentParser = function(packageDocument, publicationFetcher) {\n\n // Parse a media overlay manifest item XML\n this.parse = function(spineItem, manifestItemSMIL, smilJson, deferred, callback, errorCallback) {\n var that = this;\n \n var href = publicationFetcher.convertPathRelativeToPackageToRelativeToBase(manifestItemSMIL.href);\n \n if (href.charAt(0) != '/') {\n href = '/' + href;\n }\n \n publicationFetcher.getXmlFileDom(href, function(xmlDom) {\n\n var smil = $(\"smil\", xmlDom)[0];\n smilJson.smilVersion = smil.getAttribute('version');\n\n //var body = $(\"body\", xmlDom)[0];\n smilJson.children = that.getChildren(smil);\n smilJson.href = manifestItemSMIL.href;\n smilJson.id = manifestItemSMIL.id;\n smilJson.spineItemId = spineItem.idref;\n\n var mediaItem = packageDocument.getMetadata().getMediaItemByRefinesId(manifestItemSMIL.id);\n if (mediaItem) {\n smilJson.duration = mediaItem.duration;\n }\n\n callback(deferred, smilJson);\n }, function(fetchError) {\n errorCallback(deferred, fetchError);\n });\n };\n\n var safeCopyProperty = function(property, fromNode, toItem, isRequired, defaultValue) {\n var propParse = property.split(':');\n var destProperty = propParse[propParse.length - 1];\n\n if (destProperty === \"type\") {\n destProperty = \"epubtype\";\n }\n \n if (fromNode.getAttribute(property) != undefined) {\n toItem[destProperty] = fromNode.getAttribute(property);\n } else if (isRequired) {\n if (defaultValue !== undefined) {\n toItem[destProperty] = defaultValue;\n } else {\n console.log(\"Required property \" + property + \" not found in smil node \" + fromNode.nodeName);\n }\n }\n };\n\n this.getChildren = function(element) {\n var that = this;\n var children = [];\n\n $.each(element.childNodes, function(elementIndex, currElement) {\n\n if (currElement.nodeType === 1) { // ELEMENT\n var item = that.createItemFromElement(currElement);\n if (item) {\n children.push(item);\n }\n }\n });\n\n return children;\n }\n\n this.createItemFromElement = function(element) {\n var that = this;\n\n var item = {};\n item.nodeType = element.nodeName;\n \n var isBody = false;\n if (item.nodeType === \"body\")\n {\n isBody = true;\n item.nodeType = \"seq\";\n }\n\n if (item.nodeType === \"seq\") {\n\n safeCopyProperty(\"epub:textref\", element, item, !isBody);\n safeCopyProperty(\"id\", element, item);\n safeCopyProperty(\"epub:type\", element, item);\n\n item.children = that.getChildren(element);\n\n } else if (item.nodeType === \"par\") {\n\n safeCopyProperty(\"id\", element, item);\n safeCopyProperty(\"epub:type\", element, item);\n\n item.children = that.getChildren(element);\n\n } else if (item.nodeType === \"text\") {\n\n safeCopyProperty(\"src\", element, item, true);\n var srcParts = item.src.split('#');\n item.srcFile = srcParts[0];\n item.srcFragmentId = (srcParts.length === 2) ? srcParts[1] : \"\";\n safeCopyProperty(\"id\", element, item);\n // safeCopyProperty(\"epub:textref\", element, item);\n\n } else if (item.nodeType === \"audio\") {\n safeCopyProperty(\"src\", element, item, true);\n safeCopyProperty(\"id\", element, item);\n item.clipBegin = SmilDocumentParser.resolveClockValue(element.getAttribute(\"clipBegin\"));\n item.clipEnd = SmilDocumentParser.resolveClockValue(element.getAttribute(\"clipEnd\"));\n }\n else\n {\n return undefined;\n }\n\n return item;\n }\n\n function makeFakeSmilJson(spineItem) {\n return {\n id: \"\",\n href: \"\",\n spineItemId: spineItem.idref,\n children: [{\n nodeType: 'seq',\n textref: spineItem.href,\n children: [{\n nodeType: 'par',\n children: [{\n nodeType: 'text',\n src: spineItem.href,\n srcFile: spineItem.href,\n srcFragmentId: \"\"\n }]\n }]\n }]\n };\n }\n\n this.fillSmilData = function(callback) {\n var that = this;\n\n if (packageDocument.spineLength() <= 0) {\n callback();\n return;\n }\n\n var allFakeSmil = true;\n var mo_map = [];\n var parsingDeferreds = [];\n\n for (var spineIdx = 0; spineIdx < packageDocument.spineLength(); spineIdx++) {\n var spineItem = packageDocument.getSpineItem(spineIdx);\n\n if (spineItem.media_overlay_id) {\n var manifestItemSMIL = packageDocument.manifest.getManifestItemByIdref(spineItem.media_overlay_id);\n\n if (!manifestItemSMIL) {\n console.error(\"Cannot find SMIL manifest item for spine/manifest item?! \" + spineItem.media_overlay_id);\n continue;\n }\n //ASSERT manifestItemSMIL.media_type === \"application/smil+xml\"\n\n var parsingDeferred = $.Deferred();\n parsingDeferred.media_overlay_id = spineItem.media_overlay_id;\n parsingDeferreds.push(parsingDeferred);\n var smilJson = {};\n\n // Push the holder object onto the map early so that order isn't disturbed by asynchronicity:\n mo_map.push(smilJson);\n\n // The local parsingDeferred variable will have its value replaced on next loop iteration.\n // Must pass the parsingDeferred through async calls as an argument and it arrives back as myDeferred.\n that.parse(spineItem, manifestItemSMIL, smilJson, parsingDeferred, function(myDeferred, smilJson) {\n allFakeSmil = false;\n myDeferred.resolve();\n }, function(myDeferred, parseError) {\n console.log('Error when parsing SMIL manifest item ' + manifestItemSMIL.href + ':');\n console.log(parseError);\n myDeferred.resolve();\n });\n } else {\n mo_map.push(makeFakeSmilJson(spineItem));\n }\n }\n\n $.when.apply($, parsingDeferreds).done(function() {\n packageDocument.getMetadata().setMoMap(mo_map);\n if (allFakeSmil) {\n packageDocument.getMetadata().setMoMap([]);\n }\n callback();\n });\n }\n };\n\n // parse the timestamp and return the value in seconds\n // supports this syntax:\n // http://idpf.org/epub/30/spec/epub30-mediaoverlays.html#app-clock-examples\n SmilDocumentParser.resolveClockValue = function(value) {\n if (!value) return 0;\n\n var hours = 0;\n var mins = 0;\n var secs = 0;\n\n if (value.indexOf(\"min\") != -1) {\n mins = parseFloat(value.substr(0, value.indexOf(\"min\")));\n } else if (value.indexOf(\"ms\") != -1) {\n var ms = parseFloat(value.substr(0, value.indexOf(\"ms\")));\n secs = ms / 1000;\n } else if (value.indexOf(\"s\") != -1) {\n secs = parseFloat(value.substr(0, value.indexOf(\"s\")));\n } else if (value.indexOf(\"h\") != -1) {\n hours = parseFloat(value.substr(0, value.indexOf(\"h\")));\n } else {\n // parse as hh:mm:ss.fraction\n // this also works for seconds-only, e.g. 12.345\n var arr = value.split(\":\");\n secs = parseFloat(arr.pop());\n if (arr.length > 0) {\n mins = parseFloat(arr.pop());\n if (arr.length > 0) {\n hours = parseFloat(arr.pop());\n }\n }\n }\n var total = hours * 3600 + mins * 60 + secs;\n return total;\n }\n \n return SmilDocumentParser;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-model/metadata',['underscore'],\n function (_) {\n\n var Metadata = function () {\n\n var that = this;\n\n var _mediaItemIndexByRefinesId = {};\n\n /**\n * Iterate over media items and apply callback (synchronously) on each one of them.\n * @param iteratorCallback the iterator callback function, will be called once for each media item,\n * and the item will be passed as the (one and only) argument.\n * @returns the Metadata object for chaining.\n */\n this.eachMediaItem = function(iteratorCallback) {\n if (that.mediaItems) {\n _.each(that.mediaItems, iteratorCallback);\n }\n return this;\n };\n\n this.getMediaItemByRefinesId = function(id) {\n return _mediaItemIndexByRefinesId[id];\n };\n\n this.setMoMap = function(mediaOverlaysMap) {\n that.media_overlay.smil_models = mediaOverlaysMap;\n };\n\n // Initialize indexes\n this.eachMediaItem(function(item) {\n var id = item.refines;\n var hash = id.indexOf('#');\n if (hash >= 0) {\n var start = hash+1;\n var end = id.length-1;\n id = id.substr(start, end);\n }\n id = id.trim();\n\n _mediaItemIndexByRefinesId[id] = item;\n });\n\n\n };\n return Metadata;\n });\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n// \n// Redistribution and use in source and binary forms, with or without modification, \n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this \n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice, \n// this list of conditions and the following disclaimer in the documentation and/or \n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be \n// used to endorse or promote products derived from this software without specific \n// prior written permission.\n\ndefine('readium_js/epub-model/manifest',['underscore'],\n function (_) {\n\n var Manifest = function (manifestJson) {\n\n var _manifestIndexById = {};\n var _navItem;\n\n this.manifestLength = function() {\n return manifestJson.length;\n };\n\n this.getManifestItemByIdref = function (idref) {\n return _manifestIndexById[idref];\n };\n\n /**\n * Iterate over manifest items and apply callback (synchronously) on each one of them.\n * @param iteratorCallback the iterator callback function, will be called once for each manifest item,\n * and the item will be passed as the (one and only) argument.\n * @returns the Manifest object for chaining.\n */\n this.each = function(iteratorCallback) {\n _.each(manifestJson, iteratorCallback);\n return this;\n };\n\n this.getNavItem = function () {\n return _navItem;\n };\n\n // Initialize indexes\n this.each(function(manifestItem) {\n _manifestIndexById[manifestItem.id] = manifestItem;\n\n if (manifestItem.properties && manifestItem.properties.indexOf(\"nav\") !== -1) {\n _navItem = manifestItem;\n }\n });\n\n };\n return Manifest;\n });\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\ndefine('readium_js/epub-model/package_document_parser',['jquery', 'underscore', '../epub-fetch/markup_parser', 'URIjs', './package_document',\n './smil_document_parser', './metadata', './manifest', 'readium_cfi_js'],\n function($, _, MarkupParser, URI, PackageDocument, SmilDocumentParser, Metadata,\n Manifest, epubCFI) {\n\n // `PackageDocumentParser` is used to parse the xml of an epub package\n // document and build a javascript object. The constructor accepts an\n // instance of `URI` that is used to resolve paths during the process\n var PackageDocumentParser = function(publicationFetcher) {\n\n var _packageFetcher = publicationFetcher;\n var _deferredXmlDom = $.Deferred();\n var _xmlDom;\n\n publicationFetcher.getPackageDom(function(packageDom){\n _xmlDom = packageDom;\n _deferredXmlDom.resolve(packageDom);\n }, function() {\n _deferredXmlDom.resolve(undefined);\n });\n\n function fillSmilData(packageDocument, callback) {\n\n var smilParser = new SmilDocumentParser(packageDocument, publicationFetcher);\n\n smilParser.fillSmilData(function() {\n\n // return the parse result\n callback(packageDocument);\n });\n\n }\n\n // Parse an XML package document into a javascript object\n this.parse = function(callback) {\n\n _deferredXmlDom.done(function (xmlDom) {\n if (!xmlDom) {\n callback(undefined);\n return;\n }\n \n var metadata = getMetadata(xmlDom);\n\n var spineElem = xmlDom.getElementsByTagNameNS(\"*\", \"spine\")[0];\n var page_prog_dir = getElemAttr(xmlDom, 'spine', \"page-progression-direction\");\n\n // TODO: Bindings are unused\n var bindings = getJsonBindings(xmlDom);\n\n var manifest = new Manifest(getJsonManifest(xmlDom));\n var spine = getJsonSpine(xmlDom, manifest, metadata);\n\n // try to find a cover image\n var cover = getCoverHref(xmlDom);\n if (cover) {\n metadata.cover_href = cover;\n }\n\n $.when(updateMetadataWithIBookProperties(metadata)).then(function() {\n\n _packageFetcher.setPackageMetadata(metadata, function () {\n var packageDocument = new PackageDocument(publicationFetcher.getPackageUrl(), xmlDom,\n publicationFetcher, metadata, spine, manifest);\n\n packageDocument.setPageProgressionDirection(page_prog_dir);\n fillSmilData(packageDocument, callback);\n });\n });\n\n });\n };\n\n function updateMetadataWithIBookProperties(metadata) {\n\n var dff = $.Deferred();\n\n //if layout not set\n if(!metadata.rendition_layout)\n {\n var pathToIBooksSpecificXml = \"/META-INF/com.apple.ibooks.display-options.xml\";\n\n publicationFetcher.relativeToPackageFetchFileContents(pathToIBooksSpecificXml, 'text', function (ibookPropText) {\n if(ibookPropText) {\n var parser = new MarkupParser();\n var propModel = parser.parseXml(ibookPropText);\n var fixLayoutProp = $(\"option[name=fixed-layout]\", propModel)[0];\n if(fixLayoutProp) {\n var fixLayoutVal = $(fixLayoutProp).text();\n if(fixLayoutVal === \"true\") {\n metadata.rendition_layout = \"pre-paginated\";\n console.log(\"using com.apple.ibooks.display-options.xml fixed-layout property\");\n }\n }\n }\n\n dff.resolve();\n\n }, function (err) {\n\n //console.log(\"com.apple.ibooks.display-options.xml not found\");\n dff.resolve();\n });\n }\n else {\n dff.resolve();\n }\n\n return dff.promise();\n }\n\n\n function getJsonSpine(xmlDom, manifest, metadata) {\n\n var $spineElements;\n var jsonSpine = [];\n\n $spineElements = $(findXmlElemByLocalNameAnyNS(xmlDom,\"spine\")).children();\n $.each($spineElements, function (spineElementIndex, currSpineElement) {\n\n var $currSpineElement = $(currSpineElement);\n var idref = $currSpineElement.attr(\"idref\") ? $currSpineElement.attr(\"idref\") : \"\";\n var manifestItem = manifest.getManifestItemByIdref(idref);\n\n var id = $currSpineElement.attr(\"id\");\n var viewport = undefined;\n _.each(metadata.rendition_viewports, function(vp) {\n if (vp.refines == id) {\n viewport = vp.viewport;\n return true; // break\n }\n });\n\n var spineItem = {\n rendition_viewport: viewport,\n idref: idref,\n href: manifestItem.href,\n manifest_id: manifestItem.id,\n media_type: manifestItem.media_type,\n media_overlay_id: manifestItem.media_overlay_id,\n linear: $currSpineElement.attr(\"linear\") ? $currSpineElement.attr(\"linear\") : \"\",\n properties: $currSpineElement.attr(\"properties\") ? $currSpineElement.attr(\"properties\") : \"\",\n cfi: epubCFI.generatePackageDocumentCFIComponentWithSpineIndex(spineElementIndex, xmlDom)\n };\n\n var parsedProperties = parsePropertiesString(spineItem.properties);\n $.extend(spineItem, parsedProperties);\n\n jsonSpine.push(spineItem);\n });\n\n return jsonSpine;\n }\n\n function findXmlElemByLocalNameAnyNS(rootElement, localName, predicate) {\n var elements = rootElement.getElementsByTagNameNS(\"*\", localName);\n if (predicate) {\n return _.find(elements, predicate);\n } else {\n return elements[0];\n }\n }\n\n function filterXmlElemsByLocalNameAnyNS(rootElement, localName, predicate) {\n var elements = rootElement.getElementsByTagNameNS(\"*\", localName);\n return _.filter(elements, predicate);\n }\n\n function getElemText(rootElement, localName, predicate) {\n var foundElement = findXmlElemByLocalNameAnyNS(rootElement, localName, predicate);\n if (foundElement) {\n return foundElement.textContent;\n } else {\n return '';\n }\n }\n\n function getElemAttr(rootElement, localName, attrName, predicate) {\n var foundElement = findXmlElemByLocalNameAnyNS(rootElement, localName, predicate);\n if (foundElement) {\n return foundElement.getAttribute(attrName);\n } else {\n return '';\n }\n }\n\n function getMetaElemPropertyText(rootElement, attrPropertyValue) {\n\n var foundElement = findXmlElemByLocalNameAnyNS(rootElement, \"meta\", function (element) {\n return element.getAttribute(\"property\") === attrPropertyValue;\n });\n\n if (foundElement) {\n return foundElement.textContent;\n } else {\n return '';\n }\n }\n\n\n function getMetadata(xmlDom) {\n\n var metadata = new Metadata();\n var metadataElem = findXmlElemByLocalNameAnyNS(xmlDom, \"metadata\");\n var packageElem = findXmlElemByLocalNameAnyNS(xmlDom, \"package\");\n var spineElem = findXmlElemByLocalNameAnyNS(xmlDom, \"spine\");\n\n\n metadata.author = getElemText(metadataElem, \"creator\");\n metadata.description = getElemText(metadataElem, \"description\");\n metadata.epub_version =\n packageElem.getAttribute(\"version\") ? packageElem.getAttribute(\"version\") : \"\";\n metadata.id = getElemText(metadataElem,\"identifier\");\n metadata.language = getElemText(metadataElem, \"language\");\n metadata.modified_date = getMetaElemPropertyText(metadataElem, \"dcterms:modified\");\n metadata.ncx = spineElem.getAttribute(\"toc\") ? spineElem.getAttribute(\"toc\") : \"\";\n metadata.pubdate = getElemText(metadataElem, \"date\");\n metadata.publisher = getElemText(metadataElem, \"publisher\");\n metadata.rights = getElemText(metadataElem, \"rights\");\n metadata.title = getElemText(metadataElem, \"title\");\n\n metadata.rendition_orientation = getMetaElemPropertyText(metadataElem, \"rendition:orientation\");\n metadata.rendition_layout = getMetaElemPropertyText(metadataElem, \"rendition:layout\");\n metadata.rendition_spread = getMetaElemPropertyText(metadataElem, \"rendition:spread\");\n metadata.rendition_flow = getMetaElemPropertyText(metadataElem, \"rendition:flow\");\n\n\n\n\n\n\n //http://www.idpf.org/epub/301/spec/epub-publications.html#fxl-property-viewport\n\n //metadata.rendition_viewport = getMetaElemPropertyText(metadataElem, \"rendition:viewport\");\n metadata.rendition_viewport = getElemText(metadataElem, \"meta\", function (element) {\n return element.getAttribute(\"property\") === \"rendition:viewport\" && !element.hasAttribute(\"refines\")\n });\n\n var viewports = [];\n var viewportMetaElems = filterXmlElemsByLocalNameAnyNS(metadataElem, \"meta\", function (element) {\n return element.getAttribute(\"property\") === \"rendition:viewport\" && element.hasAttribute(\"refines\");\n });\n _.each(viewportMetaElems, function(currItem) {\n var id = currItem.getAttribute(\"refines\");\n if (id) {\n var hash = id.indexOf('#');\n if (hash >= 0) {\n var start = hash+1;\n var end = id.length-1;\n id = id.substr(start, end);\n }\n id = id.trim();\n }\n\n var vp = {\n refines: id,\n viewport: currItem.textContent\n };\n viewports.push(vp);\n });\n\n metadata.rendition_viewports = viewports;\n\n\n\n\n\n\n // Media part\n metadata.mediaItems = [];\n\n var overlayElems = filterXmlElemsByLocalNameAnyNS(metadataElem, \"meta\", function (element) {\n return element.getAttribute(\"property\") === \"media:duration\" && element.hasAttribute(\"refines\");\n });\n\n _.each(overlayElems, function(currItem) {\n metadata.mediaItems.push({\n refines: currItem.getAttribute(\"refines\"),\n duration: SmilDocumentParser.resolveClockValue(currItem.textContent)\n });\n });\n\n metadata.media_overlay = {\n duration: SmilDocumentParser.resolveClockValue(\n getElemText(metadataElem, \"meta\", function (element) {\n return element.getAttribute(\"property\") === \"media:duration\" && !element.hasAttribute(\"refines\")\n })\n ),\n narrator: getMetaElemPropertyText(metadataElem, \"media:narrator\"),\n activeClass: getMetaElemPropertyText(metadataElem, \"media:active-class\"),\n playbackActiveClass: getMetaElemPropertyText(metadataElem, \"media:playback-active-class\"),\n smil_models: [],\n skippables: [\"sidebar\", \"practice\", \"marginalia\", \"annotation\", \"help\", \"note\", \"footnote\", \"rearnote\",\n \"table\", \"table-row\", \"table-cell\", \"list\", \"list-item\", \"pagebreak\"],\n escapables: [\"sidebar\", \"bibliography\", \"toc\", \"loi\", \"appendix\", \"landmarks\", \"lot\", \"index\",\n \"colophon\", \"epigraph\", \"conclusion\", \"afterword\", \"warning\", \"epilogue\", \"foreword\",\n \"introduction\", \"prologue\", \"preface\", \"preamble\", \"notice\", \"errata\", \"copyright-page\",\n \"acknowledgments\", \"other-credits\", \"titlepage\", \"imprimatur\", \"contributors\", \"halftitlepage\",\n \"dedication\", \"help\", \"annotation\", \"marginalia\", \"practice\", \"note\", \"footnote\", \"rearnote\",\n \"footnotes\", \"rearnotes\", \"bridgehead\", \"page-list\", \"table\", \"table-row\", \"table-cell\", \"list\",\n \"list-item\", \"glossary\"]\n };\n\n return metadata;\n }\n\n function getJsonManifest(xmlDom) {\n\n var $manifestItems = $(findXmlElemByLocalNameAnyNS(xmlDom, \"manifest\")).children();\n var jsonManifest = [];\n\n $.each($manifestItems, function (manifestElementIndex, currManifestElement) {\n\n var $currManifestElement = $(currManifestElement);\n var currManifestElementHref = $currManifestElement.attr(\"href\") ? $currManifestElement.attr(\"href\") :\n \"\";\n var manifestItem = {\n\n href: currManifestElementHref,\n id: $currManifestElement.attr(\"id\") ? $currManifestElement.attr(\"id\") : \"\",\n media_overlay_id: $currManifestElement.attr(\"media-overlay\") ?\n $currManifestElement.attr(\"media-overlay\") : \"\",\n media_type: $currManifestElement.attr(\"media-type\") ? $currManifestElement.attr(\"media-type\") : \"\",\n properties: $currManifestElement.attr(\"properties\") ? $currManifestElement.attr(\"properties\") : \"\"\n };\n // console.log('pushing manifest item to JSON manifest. currManifestElementHref: [' + currManifestElementHref +\n // '], manifestItem.href: [' + manifestItem.href +\n // '], manifestItem:');\n // console.log(manifestItem);\n jsonManifest.push(manifestItem);\n });\n\n return jsonManifest;\n }\n\n function getJsonBindings(xmlDom) {\n\n var $bindings = $(findXmlElemByLocalNameAnyNS(xmlDom, \"bindings\")).children();\n var jsonBindings = [];\n\n $.each($bindings, function (bindingElementIndex, currBindingElement) {\n\n var $currBindingElement = $(currBindingElement);\n var binding = {\n\n handler: $currBindingElement.attr(\"handler\") ? $currBindingElement.attr(\"handler\") : \"\",\n media_type: $currBindingElement.attr(\"media-type\") ? $currBindingElement.attr(\"media-type\") : \"\"\n };\n\n jsonBindings.push(binding);\n });\n\n return jsonBindings;\n }\n\n function getCoverHref(xmlDom) {\n\n var manifest;\n var $imageNode;\n manifest = findXmlElemByLocalNameAnyNS(xmlDom, \"manifest\");\n\n // epub3 spec for a cover image is like this:\n /**/\n $imageNode = $(findXmlElemByLocalNameAnyNS(manifest, \"item\", function (element) {\n var attr = element.getAttribute(\"properties\");\n return attr && _.contains(attr.split(\" \"), \"cover-image\");\n }));\n if ($imageNode.length === 1 && $imageNode.attr(\"href\")) {\n return $imageNode.attr(\"href\");\n }\n\n // some epub2's cover image is like this:\n /**/\n var metaNode = $(findXmlElemByLocalNameAnyNS(xmlDom, \"meta\", function (element) {\n return element.getAttribute(\"name\") === \"cover\";\n }));\n var contentAttr = metaNode.attr(\"content\");\n if (metaNode.length === 1 && contentAttr) {\n $imageNode = $(findXmlElemByLocalNameAnyNS(manifest, \"item\", function (element) {\n return element.getAttribute(\"id\") === contentAttr;\n }));\n if ($imageNode.length === 1 && $imageNode.attr(\"href\")) {\n return $imageNode.attr(\"href\");\n }\n }\n\n // that didn't seem to work so, it think epub2 just uses item with id=cover\n $imageNode = $(findXmlElemByLocalNameAnyNS(manifest, \"item\", function (element) {\n return element.getAttribute(\"id\") === \"cover\";\n }));\n if ($imageNode.length === 1 && $imageNode.attr(\"href\")) {\n return $imageNode.attr(\"href\");\n }\n\n // seems like there isn't one, thats ok...\n return null;\n }\n\n function parsePropertiesString(str) {\n var properties = {};\n var allPropStrs = str.split(\" \"); // split it on white space\n for (var i = 0; i < allPropStrs.length; i++) {\n\n //ReadiumSDK.Models.SpineItem.RENDITION_ORIENTATION_LANDSCAPE\n if (allPropStrs[i] === \"rendition:orientation-landscape\") properties.rendition_orientation = \"landscape\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_ORIENTATION_PORTRAIT\n if (allPropStrs[i] === \"rendition:orientation-portrait\") properties.rendition_orientation = \"portrait\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_ORIENTATION_AUTO\n if (allPropStrs[i] === \"rendition:orientation-auto\") properties.rendition_orientation = \"auto\";\n\n\n //ReadiumSDK.Models.SpineItem.RENDITION_SPREAD_NONE\n if (allPropStrs[i] === \"rendition:spread-none\") properties.rendition_spread = \"none\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_SPREAD_LANDSCAPE\n if (allPropStrs[i] === \"rendition:spread-landscape\") properties.rendition_spread = \"landscape\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_SPREAD_PORTRAIT\n if (allPropStrs[i] === \"rendition:spread-portrait\") properties.rendition_spread = \"portrait\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_SPREAD_BOTH\n if (allPropStrs[i] === \"rendition:spread-both\") properties.rendition_spread = \"both\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_SPREAD_AUTO\n if (allPropStrs[i] === \"rendition:spread-auto\") properties.rendition_spread = \"auto\";\n\n\n //ReadiumSDK.Models.SpineItem.RENDITION_FLOW_PAGINATED\n if (allPropStrs[i] === \"rendition:flow-paginated\") properties.rendition_flow = \"paginated\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_FLOW_SCROLLED_CONTINUOUS\n if (allPropStrs[i] === \"rendition:flow-scrolled-continuous\") properties.rendition_flow = \"scrolled-continuous\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_FLOW_SCROLLED_DOC\n if (allPropStrs[i] === \"rendition:flow-scrolled-doc\") properties.rendition_flow = \"scrolled-doc\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_FLOW_AUTO\n if (allPropStrs[i] === \"rendition:flow-auto\") properties.rendition_flow = \"auto\";\n\n\n\n //ReadiumSDK.Models.SpineItem.SPREAD_CENTER\n if (allPropStrs[i] === \"rendition:page-spread-center\") properties.page_spread = \"page-spread-center\";\n\n //ReadiumSDK.Models.SpineItem.SPREAD_LEFT\n if (allPropStrs[i] === \"page-spread-left\") properties.page_spread = \"page-spread-left\";\n\n //ReadiumSDK.Models.SpineItem.SPREAD_RIGHT\n if (allPropStrs[i] === \"page-spread-right\") properties.page_spread = \"page-spread-right\";\n\n //ReadiumSDK.Models.SpineItem.RENDITION_LAYOUT_REFLOWABLE\n if (allPropStrs[i] === \"rendition:layout-reflowable\") {\n properties.fixed_flow = false; // TODO: only used in spec tests!\n properties.rendition_layout = \"reflowable\";\n }\n\n //ReadiumSDK.Models.SpineItem.RENDITION_LAYOUT_PREPAGINATED\n if (allPropStrs[i] === \"rendition:layout-pre-paginated\") {\n properties.fixed_flow = true; // TODO: only used in spec tests!\n properties.rendition_layout = \"pre-paginated\";\n }\n }\n return properties;\n }\n\n };\n\n return PackageDocumentParser;\n});\n\n","/*!\n * Bowser - a browser detector\n * https://github.com/ded/bowser\n * MIT License | (c) Dustin Diaz 2015\n */\n\n!function (root, name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\n else if (typeof define == 'function' && define.amd) define(name, definition)\n else root[name] = definition()\n}(this, 'bowser', function () {\n /**\n * See useragents.js for examples of navigator.userAgent\n */\n\n var t = true\n\n function detect(ua) {\n\n function getFirstMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[1]) || '';\n }\n\n function getSecondMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()\n , likeAndroid = /like android/i.test(ua)\n , android = !likeAndroid && /android/i.test(ua)\n , nexusMobile = /nexus\\s*[0-6]\\s*/i.test(ua)\n , nexusTablet = !nexusMobile && /nexus\\s*[0-9]+/i.test(ua)\n , chromeos = /CrOS/.test(ua)\n , silk = /silk/i.test(ua)\n , sailfish = /sailfish/i.test(ua)\n , tizen = /tizen/i.test(ua)\n , webos = /(web|hpw)(o|0)s/i.test(ua)\n , windowsphone = /windows phone/i.test(ua)\n , samsungBrowser = /SamsungBrowser/i.test(ua)\n , windows = !windowsphone && /windows/i.test(ua)\n , mac = !iosdevice && !silk && /macintosh/i.test(ua)\n , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua)\n , edgeVersion = getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.\\d+)?)/i)\n , versionIdentifier = getFirstMatch(/version\\/(\\d+(\\.\\d+)?)/i)\n , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua)\n , mobile = !tablet && /[^-]mobi/i.test(ua)\n , xbox = /xbox/i.test(ua)\n , result\n\n if (/opera/i.test(ua)) {\n // an old Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n } else if (/opr\\/|opios/i.test(ua)) {\n // a new Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: getFirstMatch(/(?:opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/SamsungBrowser/i.test(ua)) {\n result = {\n name: 'Samsung Internet for Android'\n , samsungBrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/Whale/i.test(ua)) {\n result = {\n name: 'NAVER Whale browser'\n , whale: t\n , version: getFirstMatch(/(?:whale)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/MZBrowser/i.test(ua)) {\n result = {\n name: 'MZ Browser'\n , mzbrowser: t\n , version: getFirstMatch(/(?:MZBrowser)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/coast/i.test(ua)) {\n result = {\n name: 'Opera Coast'\n , coast: t\n , version: versionIdentifier || getFirstMatch(/(?:coast)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/focus/i.test(ua)) {\n result = {\n name: 'Focus'\n , focus: t\n , version: getFirstMatch(/(?:focus)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/yabrowser/i.test(ua)) {\n result = {\n name: 'Yandex Browser'\n , yandexbrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/ucbrowser/i.test(ua)) {\n result = {\n name: 'UC Browser'\n , ucbrowser: t\n , version: getFirstMatch(/(?:ucbrowser)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/mxios/i.test(ua)) {\n result = {\n name: 'Maxthon'\n , maxthon: t\n , version: getFirstMatch(/(?:mxios)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/epiphany/i.test(ua)) {\n result = {\n name: 'Epiphany'\n , epiphany: t\n , version: getFirstMatch(/(?:epiphany)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/puffin/i.test(ua)) {\n result = {\n name: 'Puffin'\n , puffin: t\n , version: getFirstMatch(/(?:puffin)[\\s\\/](\\d+(?:\\.\\d+)?)/i)\n }\n }\n else if (/sleipnir/i.test(ua)) {\n result = {\n name: 'Sleipnir'\n , sleipnir: t\n , version: getFirstMatch(/(?:sleipnir)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/k-meleon/i.test(ua)) {\n result = {\n name: 'K-Meleon'\n , kMeleon: t\n , version: getFirstMatch(/(?:k-meleon)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (windowsphone) {\n result = {\n name: 'Windows Phone'\n , osname: 'Windows Phone'\n , windowsphone: t\n }\n if (edgeVersion) {\n result.msedge = t\n result.version = edgeVersion\n }\n else {\n result.msie = t\n result.version = getFirstMatch(/iemobile\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/msie|trident/i.test(ua)) {\n result = {\n name: 'Internet Explorer'\n , msie: t\n , version: getFirstMatch(/(?:msie |rv:)(\\d+(\\.\\d+)?)/i)\n }\n } else if (chromeos) {\n result = {\n name: 'Chrome'\n , osname: 'Chrome OS'\n , chromeos: t\n , chromeBook: t\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n } else if (/edg([ea]|ios)/i.test(ua)) {\n result = {\n name: 'Microsoft Edge'\n , msedge: t\n , version: edgeVersion\n }\n }\n else if (/vivaldi/i.test(ua)) {\n result = {\n name: 'Vivaldi'\n , vivaldi: t\n , version: getFirstMatch(/vivaldi\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (sailfish) {\n result = {\n name: 'Sailfish'\n , osname: 'Sailfish OS'\n , sailfish: t\n , version: getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/seamonkey\\//i.test(ua)) {\n result = {\n name: 'SeaMonkey'\n , seamonkey: t\n , version: getFirstMatch(/seamonkey\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/firefox|iceweasel|fxios/i.test(ua)) {\n result = {\n name: 'Firefox'\n , firefox: t\n , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \\/](\\d+(\\.\\d+)?)/i)\n }\n if (/\\((mobile|tablet);[^\\)]*rv:[\\d\\.]+\\)/i.test(ua)) {\n result.firefoxos = t\n result.osname = 'Firefox OS'\n }\n }\n else if (silk) {\n result = {\n name: 'Amazon Silk'\n , silk: t\n , version : getFirstMatch(/silk\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/phantom/i.test(ua)) {\n result = {\n name: 'PhantomJS'\n , phantom: t\n , version: getFirstMatch(/phantomjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/slimerjs/i.test(ua)) {\n result = {\n name: 'SlimerJS'\n , slimer: t\n , version: getFirstMatch(/slimerjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/blackberry|\\bbb\\d+/i.test(ua) || /rim\\stablet/i.test(ua)) {\n result = {\n name: 'BlackBerry'\n , osname: 'BlackBerry OS'\n , blackberry: t\n , version: versionIdentifier || getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (webos) {\n result = {\n name: 'WebOS'\n , osname: 'WebOS'\n , webos: t\n , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\\/(\\d+(\\.\\d+)?)/i)\n };\n /touchpad\\//i.test(ua) && (result.touchpad = t)\n }\n else if (/bada/i.test(ua)) {\n result = {\n name: 'Bada'\n , osname: 'Bada'\n , bada: t\n , version: getFirstMatch(/dolfin\\/(\\d+(\\.\\d+)?)/i)\n };\n }\n else if (tizen) {\n result = {\n name: 'Tizen'\n , osname: 'Tizen'\n , tizen: t\n , version: getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n };\n }\n else if (/qupzilla/i.test(ua)) {\n result = {\n name: 'QupZilla'\n , qupzilla: t\n , version: getFirstMatch(/(?:qupzilla)[\\s\\/](\\d+(?:\\.\\d+)+)/i) || versionIdentifier\n }\n }\n else if (/chromium/i.test(ua)) {\n result = {\n name: 'Chromium'\n , chromium: t\n , version: getFirstMatch(/(?:chromium)[\\s\\/](\\d+(?:\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/chrome|crios|crmo/i.test(ua)) {\n result = {\n name: 'Chrome'\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (android) {\n result = {\n name: 'Android'\n , version: versionIdentifier\n }\n }\n else if (/safari|applewebkit/i.test(ua)) {\n result = {\n name: 'Safari'\n , safari: t\n }\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if (iosdevice) {\n result = {\n name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'\n }\n // WTF: version is not part of user agent in web apps\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if(/googlebot/i.test(ua)) {\n result = {\n name: 'Googlebot'\n , googlebot: t\n , version: getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i) || versionIdentifier\n }\n }\n else {\n result = {\n name: getFirstMatch(/^(.*)\\/(.*) /),\n version: getSecondMatch(/^(.*)\\/(.*) /)\n };\n }\n\n // set webkit or gecko flag for browsers based on these engines\n if (!result.msedge && /(apple)?webkit/i.test(ua)) {\n if (/(apple)?webkit\\/537\\.36/i.test(ua)) {\n result.name = result.name || \"Blink\"\n result.blink = t\n } else {\n result.name = result.name || \"Webkit\"\n result.webkit = t\n }\n if (!result.version && versionIdentifier) {\n result.version = versionIdentifier\n }\n } else if (!result.opera && /gecko\\//i.test(ua)) {\n result.name = result.name || \"Gecko\"\n result.gecko = t\n result.version = result.version || getFirstMatch(/gecko\\/(\\d+(\\.\\d+)?)/i)\n }\n\n // set OS flags for platforms that have multiple browsers\n if (!result.windowsphone && (android || result.silk)) {\n result.android = t\n result.osname = 'Android'\n } else if (!result.windowsphone && iosdevice) {\n result[iosdevice] = t\n result.ios = t\n result.osname = 'iOS'\n } else if (mac) {\n result.mac = t\n result.osname = 'macOS'\n } else if (xbox) {\n result.xbox = t\n result.osname = 'Xbox'\n } else if (windows) {\n result.windows = t\n result.osname = 'Windows'\n } else if (linux) {\n result.linux = t\n result.osname = 'Linux'\n }\n\n function getWindowsVersion (s) {\n switch (s) {\n case 'NT': return 'NT'\n case 'XP': return 'XP'\n case 'NT 5.0': return '2000'\n case 'NT 5.1': return 'XP'\n case 'NT 5.2': return '2003'\n case 'NT 6.0': return 'Vista'\n case 'NT 6.1': return '7'\n case 'NT 6.2': return '8'\n case 'NT 6.3': return '8.1'\n case 'NT 10.0': return '10'\n default: return undefined\n }\n }\n\n // OS version extraction\n var osVersion = '';\n if (result.windows) {\n osVersion = getWindowsVersion(getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i))\n } else if (result.windowsphone) {\n osVersion = getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i);\n } else if (result.mac) {\n osVersion = getFirstMatch(/Mac OS X (\\d+([_\\.\\s]\\d+)*)/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (iosdevice) {\n osVersion = getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (android) {\n osVersion = getFirstMatch(/android[ \\/-](\\d+(\\.\\d+)*)/i);\n } else if (result.webos) {\n osVersion = getFirstMatch(/(?:web|hpw)os\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.blackberry) {\n osVersion = getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i);\n } else if (result.bada) {\n osVersion = getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.tizen) {\n osVersion = getFirstMatch(/tizen[\\/\\s](\\d+(\\.\\d+)*)/i);\n }\n if (osVersion) {\n result.osversion = osVersion;\n }\n\n // device type extraction\n var osMajorVersion = !result.windows && osVersion.split('.')[0];\n if (\n tablet\n || nexusTablet\n || iosdevice == 'ipad'\n || (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))\n || result.silk\n ) {\n result.tablet = t\n } else if (\n mobile\n || iosdevice == 'iphone'\n || iosdevice == 'ipod'\n || android\n || nexusMobile\n || result.blackberry\n || result.webos\n || result.bada\n ) {\n result.mobile = t\n }\n\n // Graded Browser Support\n // http://developer.yahoo.com/yui/articles/gbs\n if (result.msedge ||\n (result.msie && result.version >= 10) ||\n (result.yandexbrowser && result.version >= 15) ||\n\t\t (result.vivaldi && result.version >= 1.0) ||\n (result.chrome && result.version >= 20) ||\n (result.samsungBrowser && result.version >= 4) ||\n (result.whale && compareVersions([result.version, '1.0']) === 1) ||\n (result.mzbrowser && compareVersions([result.version, '6.0']) === 1) ||\n (result.focus && compareVersions([result.version, '1.0']) === 1) ||\n (result.firefox && result.version >= 20.0) ||\n (result.safari && result.version >= 6) ||\n (result.opera && result.version >= 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] >= 6) ||\n (result.blackberry && result.version >= 10.1)\n || (result.chromium && result.version >= 20)\n ) {\n result.a = t;\n }\n else if ((result.msie && result.version < 10) ||\n (result.chrome && result.version < 20) ||\n (result.firefox && result.version < 20.0) ||\n (result.safari && result.version < 6) ||\n (result.opera && result.version < 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] < 6)\n || (result.chromium && result.version < 20)\n ) {\n result.c = t\n } else result.x = t\n\n return result\n }\n\n var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '')\n\n bowser.test = function (browserList) {\n for (var i = 0; i < browserList.length; ++i) {\n var browserItem = browserList[i];\n if (typeof browserItem=== 'string') {\n if (browserItem in bowser) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getVersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @return {number}\n */\n function getVersionPrecision(version) {\n return version.split(\".\").length;\n }\n\n /**\n * Array::map polyfill\n *\n * @param {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n function map(arr, iterator) {\n var result = [], i;\n if (Array.prototype.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i++) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1\n * compareVersions(['1.010.2.1', '1.09.2.1.90']); // 1\n * compareVersions(['1.10.2.1', '1.10.2.1']); // 0\n * compareVersions(['1.10.2.1', '1.0800.2']); // -1\n *\n * @param {Array} versions versions to compare\n * @return {Number} comparison result\n */\n function compareVersions(versions) {\n // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));\n var chunks = map(versions, function (version) {\n var delta = precision - getVersionPrecision(version);\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n version = version + new Array(delta + 1).join(\".0\");\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return map(version.split(\".\"), function (chunk) {\n return new Array(20 - chunk.length).join(\"0\") + chunk;\n }).reverse();\n });\n\n // iterate in reverse order by reversed chunks array\n while (--precision >= 0) {\n // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precision]) {\n return 1;\n }\n else if (chunks[0][precision] === chunks[1][precision]) {\n if (precision === 0) {\n // all version chunks are same\n return 0;\n }\n }\n else {\n return -1;\n }\n }\n }\n\n /**\n * Check if browser is unsupported\n *\n * @example\n * bowser.isUnsupportedBrowser({\n * msie: \"10\",\n * firefox: \"23\",\n * chrome: \"29\",\n * safari: \"5.1\",\n * opera: \"16\",\n * phantom: \"534\"\n * });\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function isUnsupportedBrowser(minVersions, strictMode, ua) {\n var _bowser = bowser;\n\n // make strictMode param optional with ua param usage\n if (typeof strictMode === 'string') {\n ua = strictMode;\n strictMode = void(0);\n }\n\n if (strictMode === void(0)) {\n strictMode = false;\n }\n if (ua) {\n _bowser = detect(ua);\n }\n\n var version = \"\" + _bowser.version;\n for (var browser in minVersions) {\n if (minVersions.hasOwnProperty(browser)) {\n if (_bowser[browser]) {\n if (typeof minVersions[browser] !== 'string') {\n throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions));\n }\n\n // browser version and min supported version.\n return compareVersions([version, minVersions[browser]]) < 0;\n }\n }\n }\n\n return strictMode; // not found\n }\n\n /**\n * Check if browser is supported\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function check(minVersions, strictMode, ua) {\n return !isUnsupportedBrowser(minVersions, strictMode, ua);\n }\n\n bowser.isUnsupportedBrowser = isUnsupportedBrowser;\n bowser.compareVersions = compareVersions;\n bowser.check = check;\n\n /*\n * Set our detect method to the main bowser object so we can\n * reuse it to test other user agents.\n * This is needed to implement future tests.\n */\n bowser._detect = detect;\n\n /*\n * Set our detect public method to the main bowser object\n * This is needed to implement bowser in server side\n */\n bowser.detect = detect;\n return bowser\n});\n\ndefine(\"bowser\", (function (global) {\n return function () {\n var ret, fn;\n return ret || global.bowser;\n };\n}(this)));\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\ndefine('readium_js/epub-fetch/iframe_zip_loader',['URIjs', 'readium_shared_js/views/iframe_loader', 'underscore', './discover_content_type', 'bowser'], function(URI, IFrameLoader, _, ContentTypeDiscovery, bowser) {\n\n var zipIframeLoader = function( getCurrentResourceFetcher, contentDocumentTextPreprocessor) {\n\n var isIE = (window.navigator.userAgent.indexOf(\"Trident\") > 0 || window.navigator.userAgent.indexOf(\"Edge\") > 0);\n \n var basicIframeLoader = new IFrameLoader();\n\n var self = this;\n\n var _contentDocumentTextPreprocessor = contentDocumentTextPreprocessor;\n\n this.addIFrameEventListener = function (eventName, callback, context) {\n basicIframeLoader.addIFrameEventListener(eventName, callback, context);\n };\n\n this.updateIframeEvents = function (iframe) {\n basicIframeLoader.updateIframeEvents(iframe);\n };\n\n this.loadIframe = function(iframe, src, callback, caller, attachedData) {\n\n if (!iframe.baseURI) {\n \n if (isIE && iframe.ownerDocument.defaultView.frameElement) {\n \n //console.debug(iframe.ownerDocument.defaultView.location);\n iframe.baseURI = iframe.ownerDocument.defaultView.frameElement.getAttribute(\"data-loadUri\");\n \n console.log(\"EPUB doc iframe src (BEFORE):\");\n console.log(src);\n src = new URI(src).absoluteTo(iframe.baseURI).search('').hash('').toString();\n }\n else if (typeof location !== 'undefined') {\n iframe.baseURI = location.href + \"\";\n }\n \n console.error(\"!iframe.baseURI => \" + iframe.baseURI);\n }\n \n console.log(\"EPUB doc iframe src:\");\n console.log(src);\n iframe.setAttribute(\"data-src\", src);\n \n console.log(\"EPUB doc iframe base URI:\");\n console.log(iframe.baseURI);\n iframe.setAttribute(\"data-baseUri\", iframe.baseURI);\n \n\n var loadedDocumentUri = new URI(src).absoluteTo(iframe.baseURI).search('').hash('').toString();\n\n console.log(\"EPUB doc iframe LOAD URI:\");\n console.log(loadedDocumentUri);\n iframe.setAttribute(\"data-loadUri\", loadedDocumentUri);\n \n var shouldConstructDomProgrammatically = getCurrentResourceFetcher().shouldConstructDomProgrammatically();\n if (shouldConstructDomProgrammatically) {\n \n console.log(\"shouldConstructDomProgrammatically...\");\n\n getCurrentResourceFetcher().fetchContentDocument(attachedData, loadedDocumentUri,\n function (resolvedContentDocumentDom) {\n self._loadIframeWithDocument(iframe,\n attachedData,\n resolvedContentDocumentDom.documentElement.outerHTML,\n function () {\n callback.call(caller, true, attachedData);\n });\n }, function (err) {\n callback.call(caller, false, attachedData);\n }\n );\n } else {\n fetchContentDocument(loadedDocumentUri, function (contentDocumentHtml) {\n if (!contentDocumentHtml) {\n //failed to load content document\n callback.call(caller, false, attachedData);\n } else {\n self._loadIframeWithDocument(iframe, attachedData, contentDocumentHtml, function () {\n callback.call(caller, true, attachedData);\n });\n }\n });\n }\n };\n\n this._loadIframeWithDocument = function (iframe, attachedData, contentDocumentData, callback) {\n var documentDataUri, blob;\n\n var chromeIOS = bowser.ios && bowser.chrome;\n // IE and Safari 6 for iOS don't handle Blobs correctly\n // Chrome on iOS fails to access iframe.contentWindow with BlobURI and data URL :(\n var isBlobHandled = !chromeIOS // fallback to srcdoc\n && !bowser.msie\n && !(bowser.ios && (parseInt(bowser.version, 10) < 7))\n && !bowser.samsungBrowser;\n\n if (isBlobHandled) {\n var contentType = 'text/html';\n if (attachedData.spineItem.media_type && attachedData.spineItem.media_type.length) {\n contentType = attachedData.spineItem.media_type;\n }\n\n // prefer BlobBuilder as some browser supports Blob constructor but fails using it\n if (window.BlobBuilder) {\n var builder = new BlobBuilder();\n builder.append(contentDocumentData);\n blob = builder.getBlob(contentType);\n } else {\n blob = new Blob([contentDocumentData], {'type': contentType});\n }\n documentDataUri = window.URL.createObjectURL(blob);\n \n //Chrome on iOS:\n //data URL as substitute to BlobURI ... still iframe.contentWindow silent crash :(\n // var reader = new FileReader();\n // reader.onload = function(e){\n // documentDataUri = reader.result;\n // iframe.setAttribute(\"src\", documentDataUri);\n // // iframe.src = documentDataUri;\n // }\n // reader.readAsDataURL(blob);\n \n } else if (!chromeIOS) {\n // Note that this does not support CSS selectors with XHTML namespaces (e.g. epub:type)\n iframe.contentWindow.document.open();\n\n // Currently not handled automatically by winstore-jscompat,\n // so we're doing it manually. See:\n // https://github.com/MSOpenTech/winstore-jscompat/\n if (window.MSApp && window.MSApp.execUnsafeLocalFunction) {\n window.MSApp.execUnsafeLocalFunction(function() {\n iframe.contentWindow.document.write(contentDocumentData);\n });\n } else {\n iframe.contentWindow.document.write(contentDocumentData);\n }\n }\n\n iframe.onload = function () {\n var doc = iframe.contentDocument || iframe.contentWindow.document;\n\n // $('iframe', doc).each(function(i, child_iframe){\n // console.debug(child_iframe);\n // console.log(child_iframe.attr(\"data-src\"));\n // });\n \n if (iframe.contentWindow.frames) {\n for (var i = 0; i < iframe.contentWindow.frames.length; i++) {\n var child_iframe = iframe.contentWindow.frames[i];\n // console.debug(child_iframe);\n \n // console.log(child_iframe.frameElement.baseURI);\n \n // console.log(child_iframe.location);\n \n var childSrc = undefined;\n \n try{\n childSrc = child_iframe.frameElement.getAttribute(\"data-src\");\n } catch(err) {\n // HTTP(S) cross-origin access?\n console.warn(err);\n continue;\n }\n // console.log(childSrc);\n \n if (!childSrc) {\n if (child_iframe.frameElement.localName == \"iframe\") {\n console.error(\"IFRAME data-src missing?!\");\n }\n continue;\n }\n \n // console.debug(attachedData);\n var contentDocumentPathRelativeToPackage = attachedData.spineItem.href; \n \n var publicationFetcher = getCurrentResourceFetcher();\n \n var contentDocumentPathRelativeToBase = publicationFetcher.convertPathRelativeToPackageToRelativeToBase(contentDocumentPathRelativeToPackage);\n // console.log(\"contentDocumentPathRelativeToBase: \" + contentDocumentPathRelativeToBase);\n \n var refAttrOrigVal_RelativeToBase = (new URI(childSrc)).absoluteTo(contentDocumentPathRelativeToBase).toString();\n // console.log(\"refAttrOrigVal_RelativeToBase: \" + refAttrOrigVal_RelativeToBase);\n \n var packageFullPath = publicationFetcher.getPackageFullPathRelativeToBase();\n // console.log(\"packageFullPath: \" + packageFullPath);\n \n \n var refAttrOrigVal_RelativeToPackage = (new URI(\"/\"+refAttrOrigVal_RelativeToBase)).relativeTo(\"/\"+packageFullPath).toString();\n // console.log(\"refAttrOrigVal_RelativeToPackage: \" + refAttrOrigVal_RelativeToPackage);\n\n var mimetype = ContentTypeDiscovery.identifyContentTypeFromFileName(refAttrOrigVal_RelativeToPackage);\n \n var childIframeLoader = new zipIframeLoader(getCurrentResourceFetcher, contentDocumentTextPreprocessor);\n childIframeLoader.loadIframe(\n child_iframe.frameElement,\n childSrc,\n function() {\n console.log(\"CHILD IFRAME LOADED.\");\n },\n self,\n {\n spineItem:\n {\n media_type: mimetype, //attachedData.spineItem.media_type,\n href: refAttrOrigVal_RelativeToPackage\n }\n }\n );\n }\n }\n \n $('svg', doc).on(\"load\", function(){\n console.log('SVG loaded');\n });\n \n self.updateIframeEvents(iframe);\n \n var mathJax = iframe.contentWindow.MathJax;\n if (mathJax) {\n \n console.log(\"MathJax VERSION: \" + mathJax.cdnVersion + \" // \" + mathJax.fileversion + \" // \" + mathJax.version);\n \n var useFontCache = true; // default in MathJax\n \n // Firefox fails to render SVG otherwise\n if (mathJax.Hub.Browser.isFirefox) {\n useFontCache = false;\n }\n \n // Chrome 49+ fails to render SVG otherwise\n // https://github.com/readium/readium-js/issues/138\n if (mathJax.Hub.Browser.isChrome) {\n useFontCache = false;\n }\n \n // Edge fails to render SVG otherwise\n // https://github.com/readium/readium-js-viewer/issues/394#issuecomment-185382196\n if (window.navigator.userAgent.indexOf(\"Edge\") > 0) {\n useFontCache = false;\n }\n \n mathJax.Hub.Config({showMathMenu:false, messageStyle: \"none\", showProcessingMessages: true, SVG:{useFontCache:useFontCache}});\n \n // If MathJax is being used, delay the callback until it has completed rendering\n var mathJaxCallback = _.once(callback);\n \n try {\n mathJax.Hub.Queue(mathJaxCallback);\n } catch (err) {\n console.error(\"MathJax fail!\");\n callback();\n }\n \n // Or at an 8 second timeout, which ever comes first\n // window.setTimeout(mathJaxCallback, 8000);\n } else {\n callback();\n }\n\n if (isBlobHandled) {\n window.URL.revokeObjectURL(documentDataUri);\n }\n };\n\n if (isBlobHandled) {\n iframe.setAttribute(\"src\", documentDataUri);\n } else if (!chromeIOS) {\n iframe.contentWindow.document.close();\n } else { // chromeIOS\n iframe.setAttribute(\"srcdoc\", contentDocumentData);\n }\n };\n\n function fetchHtmlAsText(path, callback) {\n\n $.ajax({\n url: path,\n dataType: 'html',\n async: true,\n success: function (result) {\n\n callback(result);\n },\n error: function (xhr, status, errorThrown) {\n console.error('Error when AJAX fetching ' + path);\n console.error(status);\n console.error(errorThrown);\n callback();\n }\n });\n }\n\n function fetchContentDocument(src, callback) {\n\n fetchHtmlAsText(src, function (contentDocumentHtml) {\n\n if (!contentDocumentHtml) {\n callback();\n return;\n }\n\n if (_contentDocumentTextPreprocessor) {\n contentDocumentHtml = _contentDocumentTextPreprocessor(src, contentDocumentHtml);\n }\n\n callback(contentDocumentHtml);\n });\n }\n };\n\n return zipIframeLoader;\n});\n\n","// Copyright (c) 2014 Readium Foundation and/or its licensees. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without modification,\n// are permitted provided that the following conditions are met:\n// 1. Redistributions of source code must retain the above copyright notice, this\n// list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright notice,\n// this list of conditions and the following disclaimer in the documentation and/or\n// other materials provided with the distribution.\n// 3. Neither the name of the organization nor the names of its contributors may be\n// used to endorse or promote products derived from this software without specific\n// prior written permission.\n\n\ndefine('readium_js/Readium',['readium_shared_js/globals', 'text!version.json', 'jquery', 'underscore', 'readium_shared_js/views/reader_view', 'readium_js/epub-fetch/publication_fetcher',\n 'readium_js/epub-model/package_document_parser', 'readium_js/epub-fetch/iframe_zip_loader', 'readium_shared_js/views/iframe_loader'\n ],\n function (Globals, versionText, $, _, ReaderView, PublicationFetcher,\n PackageParser, IframeZipLoader, IframeLoader) {\n\n var DEBUG_VERSION_GIT = false;\n\n //polyfill to support old versions of some browsers\n window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n\n var Readium = function(readiumOptions, readerOptions){\n\n var _options = { mathJaxUrl: readerOptions.mathJaxUrl };\n\n var _contentDocumentTextPreprocessor = function(src, contentDocumentHtml) {\n\n function escapeMarkupEntitiesInUrl(url) {\n return url\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n }\n\n function injectedScript() {\n\n navigator.epubReadingSystem = window.parent.navigator.epubReadingSystem;\n }\n\n var sourceParts = src.split(\"/\");\n //sourceParts.pop(); //remove source file name\n var baseHref = sourceParts.join(\"/\"); // + \"/\";\n \n console.log(\"EPUB doc base href:\");\n console.log(baseHref);\n var base = \"\";\n\n var scripts = \"