{"version":3,"sources":["../node_modules/i18next/dist/esm/i18next.js","../node_modules/guid-typescript/dist/guid.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/html2canvas/dist/html2canvas.js","../node_modules/history/esm/history.js","../node_modules/hammerjs/hammer.js","../node_modules/hyphenate-style-name/index.js","../node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/history/createBrowserHistory.js","../node_modules/ieee754/index.js","../node_modules/history/warnAboutDeprecatedCJSRequire.js","../node_modules/history/index.js","../node_modules/history/cjs/history.min.js","../node_modules/html-to-draftjs/dist/html-to-draftjs.js"],"names":["consoleLogger","type","args","this","output","console","apply","Logger","concreteLogger","options","arguments","length","undefined","init","prefix","logger","debug","_len","Array","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","listener","split","forEach","event","push","filter","l","concat","observer","defer","res","rej","promise","Promise","resolve","reject","makeString","object","getLastOfPath","path","Empty","cleanKey","key","indexOf","replace","canNotTraverseDeeper","stack","shift","Object","prototype","hasOwnProperty","call","obj","k","setPath","newValue","getPath","getPathWithDefaults","data","defaultData","value","regexEscape","str","_entityMap","escape","s","chars","deepFind","keySeparator","paths","current","i","j","p","slice","join","mix","endsWith","joinedPath","getCleanedCode","code","ResourceStore","ns","defaultNS","super","ignoreJSONStructure","index","splice","lng","result","silent","addNamespaces","emit","resources","m","toString","addResource","deep","overwrite","pack","deepExtend","target","source","prop","String","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","keys","find","v","postProcessor","processors","module","name","translator","processor","process","checkedLoadedFor","Translator","services","a","t","copy","create","language","interpolation","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","c","r","RegExp","map","matched","test","ki","substring","looksLikeObjectPath","match","interpolator","nestingRegexp","parts","lastKey","overloadTranslationOptionHandler","isArray","returnDetails","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","warn","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","defaultValue","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","log","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this","parse","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","handle","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","ordinalPrefix","contextKey","contextSeparator","possibleKey","pop","returnNull","returnEmptyString","resourceStore","option","capitalize","string","charAt","toUpperCase","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","default","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","1","n","Number","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","compatibilityJSON","includes","Intl","PluralRules","error","rules","set","numbers","plurals","createRules","rule","getRule","resolvedOptions","pluralCategories","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","JSON","e","formatters","doReduce","elem","reduce","createCachedFormatter","fn","cache","stringify","formatter","Formatter","formats","opt","NumberFormat","currency","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","list","ListFormat","mem","formatName","formatOptions","formatStr","optStr","rest","isNaN","parseInt","parseFormatStr","formatted","valOptions","formatParams","locale","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","state","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","err","addResourceBundle","q","pushPath","removePending","done","loadedKeys","fcName","tried","wait","resolver","next","read","setTimeout","bind","then","catch","queueLoad","loadOne","prepareLoading","fallbackValue","isUpdate","clb","opts","get","initImmediate","preload","partialBundledLanguages","ret","tDescription","transformOptions","noop","I18n","inst","modules","external","getOwnPropertyNames","getPrototypeOf","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","on","languageDetector","detection","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","resolvedLanguage","setResolvedLanguage","Error","addPostProcessor","li","lngInLngs","hasLanguageSomeTranslations","_this2","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","_this3","fixedT","resultKey","exists","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","forkResourceStore","mergedOptions","clone","instance","createInstance","dir","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","exports","__esModule","Guid","guid","TypeError","EMPTY","isGuid","validator","gen","createEmpty","raw","out","random","equals","isEmpty","toJSON","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","extendStatics","d","b","setPrototypeOf","__proto__","__extends","__","constructor","__assign","assign","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","rejected","__generator","body","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","op","__spreadArray","to","from","ar","Bounds","left","top","width","height","add","x","w","h","fromClientRect","clientRect","windowBounds","fromDOMRectList","domRectList","domRect","rect","parseBounds","node","getBoundingClientRect","toCodePoints$1","codePoints","charCodeAt","extra","fromCodePoint$1","_i","fromCodePoint","codeUnits","codePoint","fromCharCode","chars$2","lookup$2","Uint8Array","i$2","chars$1$1","lookup$1$1","i$1$1","slice16$1","view","start","end","Uint16Array","Trie$1","Trie","initialValue","errorValue","highStart","highValueIndex","ix","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","chars$3","lookup$3","i$3","SP","BA","HY","CL","CP","EX","IN","NS","OP","IS","NU","PO","PR","SY","AL","EB","EM","H2","H3","ID","JL","JV","JT","SA","ea_OP","UnicodeTrie$1","base64","_byteLength","buffer","encoded1","encoded2","encoded3","encoded4","bufferLength","len","ArrayBuffer","bytes","decode$1","view32","polyUint32Array$1","Uint32Array","view16","polyUint16Array$1","headerLength","ceil","createTrieFromBase64$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","isAdjacentWithSpaceIgnored","currentIndex","classTypes","prev","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","before","prevIndex","cssFormattedClasses","lineBreak","wordBreak","_a","types","indices","categories","classType","codePointsToCharacterClasses","isLetterNumber","letterNumber","Break","required","isDigit","isHex","isWhiteSpace","isNameStartCodePoint","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","sign","integers","int","fraction","fracd","frac","expsign","exponent","exp","pow","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","write","chunk","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","flags","consumeName","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","unshift","delta","digits","questionMarks","digit","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","amount","min","endingCodePoint","consumeNumber","repr","unit","hex","hexCodePoint","isSurrogateCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","values","consumeSimpleBlock","consumeFunction","block","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","arg","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","parent","angle","_context","PI","isAngle","parseNamedSide","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","TRANSPARENT","isTransparent","color","asString","alpha","blue","green","red","round","getTokenColorValue","max","rgb","_b","hue2rgb","t1","t2","hue","BACKGROUND_SIZE","hsl","saturation","lightness","hsla","rgba","parseColor","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","backgroundColor","parseColorStop","stop","processColorStops","stops","lineLength","first","last","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","calculateGradientDirection","radian","corner","centerX","centerY","atan2","getAngleFromCorner","sin","cos","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","sqrt","findCorner","closest","stat","cx","cy","optimumDistance","optimumCorner","Infinity","prefixLinearGradient","angle$1","firstToken","colorStop","prefixRadialGradient","shape","size","position","isColorStop","acc","image","image_1","url","addImage","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isAtPosition_1","backgroundImage","isSupportedImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","direction","display","bit","parseDisplayValue","float","letterSpacing","WORD_BREAK","STRICT","NORMAL","lineHeight","computeLineHeight","fontSize","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflow","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","textAlign","textShadow","shadow","offsetX","offsetY","blur","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","visibility","BREAK_ALL","KEEP_ALL","zIndex","auto","order","time","opacity","textDecorationColor","textDecorationLine","line","fontFamily","accumulator","results","fontWeight","fontVariant","fontStyle","contains","content","counterIncrement","increments","filtered","counter","increment","counterReset","resets","duration","quotes","open_1","close_1","open","close","getQuote","depth","quote","boxShadow","spread","inset","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","animationDuration","cssFloat","overflowTuple","overflowX","overflowY","textDecoration","transform","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","parser","length_1","value_1","isDebugging","element","elementType","getAttribute","getElementDebugType","ElementContainer","textNodes","elements","styles","window","getComputedStyle","isHTMLElementNode","some","bounds","chars$1","lookup$1","i$1","slice16","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_INDEX_2_BLOCK_LENGTH","lookup","PseudoElementType","L","V","LV","LVT","UnicodeTrie","decode","polyUint32Array","polyUint16Array","createTrieFromBase64","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","toCodePoints","lastEnd","graphemeBreak","isGreenPixel","createForeignObjectSVG","xmlns","svg","document","createElementNS","foreignObject","setAttributeNS","appendChild","loadSerializedSVG$1","img","Image","onload","onerror","src","encodeURIComponent","XMLSerializer","serializeToString","FEATURES","createRange","testElement","createElement","TEST_HEIGHT","selectNode","rangeBounds","rangeHeight","removeChild","testRangeBounds","SUPPORT_RANGE_BOUNDS","wordSpacing","innerHTML","repeat","firstChild","textList","offset","supports","every","text","setStart","setEnd","boundAhead","testIOSLineBreak","canvas","ctx","getContext","drawImage","toDataURL","testSVG","fetch","fillStyle","fillRect","greenImageSrc","getImageData","testForeignObject","crossOrigin","XMLHttpRequest","responseType","Segmenter","TextBounds","getWrapperBounds","ownerDocument","wrapper","cloneNode","parentNode","replaceChild","segmentGraphemes","SUPPORT_NATIVE_TEXT_SEGMENTATION","segmenter","granularity","segment","bk","breaker","graphemes","splitGraphemes","breakText","breakWords","segmentWords","wordSeparators","forbiddenBreakpoints","nextIndex","LineBreaker","words","_loop_1","word_1","TextContainer","textBounds","clientRects","getClientRects","subSegments","subOffset_1","subSegment","replacementNode","splitText","parseTextBounds","CAPITALIZE","p1","p2","ImageElementContainer","_super","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","setAttribute","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","PASSWORD","InputElementContainer","input","checked","placeholder","getInputValue","SelectElementContainer","selectedIndex","TextareaElementContainer","IFrameElementContainer","iframe","contentWindow","documentElement","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","root","childNode","nextNode","nextSibling","isTextNode","isElementNode","isSlotElement","assignedNodes","container","createContainer","createsRealStackingContext","createsStackingContext","tagName","slot","shadowRoot","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","nodeType","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","className","isVideoElement","isStyleElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","entry","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","fallback","createCounterText","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","floor","createCounterStyleFromSymbols","createCJKCounter","multipliers","negativeSign","tmp","coefficient","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","CJK_TEN_COEFFICIENTS","CJK_ZEROS","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","defaultView","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","scrollTo","navigator","userAgent","clonedReferenceElement","nodeName","fonts","ready","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","srcset","loading","createCustomElementClone","copyCSSStyles","sheet","cssRules","css","cssText","textContent","inlineImages","info","clonedCanvas","clonedCtx","allowTaint","putImageData","gl","attribs","getContextAttributes","preserveDrawingBuffer","video","offsetWidth","offsetHeight","blankCanvas","appendChildNode","child","copyStyles","hasAttribute","ignoreElements","cloneChildNodes","assignedNode","createTextNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","insertBefore","after","AFTER","scrollTop","scrollLeft","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","destroy","CORNER","cloneIframeContainer","border","scrolling","imageReady","complete","all","images","interval","setInterval","childNodes","readyState","clearInterval","ignoredStyleProperties","property","item","setProperty","getPropertyValue","internalSubset","publicId","systemId","createStyles","CacheStorage","getOrigin","link","_link","href","protocol","hostname","port","isSameOrigin","_origin","setContext","location","Cache","_options","_cache","has","isBlobImage","isRenderable","loadImage","useCORS","useProxy","isInlineImage","SUPPORT_CORS_IMAGES","proxy","SUPPORT_CORS_XHR","isInlineBase64Image","imageTimeout","SUPPORT_RESPONSE_TYPE","xhr","status","response","reader_1","FileReader","addEventListener","readAsDataURL","queryString","timeout_1","timeout","ontimeout","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","substr","Vector","deltaX","deltaY","lerp","BezierCurve","startControl","endControl","subdivide","firstHalf","ab","bc","cd","abbc","bccd","dest","reverse","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","_c","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isClipEffect","effect","equalPath","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","effects","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parsePathForBorder","borderSide","createPathFromCurves","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","calculateBackgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","calculateBackgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","second","hasIntrinsicProportion","CONTAIN","COVER","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_3","height_3","FontMetrics","_data","_document","parseMetrics","span","margin","padding","whiteSpace","verticalAlign","baseline","offsetTop","middle","getMetrics","Renderer","CanvasRenderer","_activeEffects","scale","fontMetrics","textBaseline","applyEffects","popEffect","applyEffect","save","isOpacityEffect","globalAlpha","isTransformEffect","clip","restore","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","letter","measureText","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","font","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeStyle","lineWidth","lineJoin","chrome","strokeText","renderReplacedElement","box","fill","beginPath","arc","isTextInputElement","canvasTextAlign","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","mask","moveTo","lineTo","formatPath","closePath","point","bezierCurveTo","renderRepeat","pattern","resizeImage","renderBackgroundImage","this_1","x0","x1","y0","y1","gradient_1","top_1","rx","ry","radialGradient_1","midX","midY","invF","createPattern","createLinearGradient","addColorStop","background","isRadialGradient","gradient","calculateRadius","createRadialGradient","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","deltaW","deltaH","borderBoxArea","maskOffset","shadowPaintingArea","renderDashedDottedBorder","strokePaths","boxPaths","startX","startY","endX","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","parsePathForBorderStroke","setLineDash","lineCap","stroke","parseStackingContexts","calculateContentBoxPath","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","id","enabled","Date","now","getTime","instances","Context","instanceName","instanceCount","logging","renderElement","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","_q","_r","_s","_t","_u","windowWidth","innerWidth","windowHeight","innerHeight","scrollWidth","clientWidth","scrollHeight","clientHeight","parseDocumentSize","parseBackgroundColor","devicePixelRatio","removeContainer","backgroundColorOverride","defaultBackgroundColor","factory","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","pathname","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","notifyListeners","canUseDOM","getConfirmation","message","confirm","getHistoryState","history","createBrowserHistory","props","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","removeEventListener","isBlocked","pushState","nextKeys","replaceState","goBack","goForward","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","nextEntries","canGo","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","each","deprecate","method","deprecationMessage","nextKey","extend","merge","inherit","base","properties","childP","baseP","boolOrFn","ifUndefined","val1","val2","addEventListeners","handler","splitStr","removeEventListeners","hasParent","inStr","inArray","findByKey","toArray","uniqueArray","prefixed","camelProp","_uniqueId","getWindowForElement","doc","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","Input","manager","self","inputTarget","domHandler","ev","enable","inputHandler","eventType","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","getAngle","getDistance","offsetDelta","prevDelta","prevInput","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEvent","computeInputData","recognize","clientX","clientY","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","getTouchActionProps","TouchAction","compute","actions","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","Recognizer","defaults","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","isValid","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","clearTimeout","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","createInputInstance","toggleCssProps","force","stopped","curRecognizer","existing","remove","off","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","uppercasePattern","msPattern","toHyphenLower","hName","voidElement","attrs","children","startsWith","comment","o","components","u","arr","fieldContentRegExp","serializeCookie","maxAge","domain","expires","toUTCString","httpOnly","secure","sameSite","cookie","minutes","cookieOptions","setTime","nameEQ","ca","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","params","pos","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","localStorage","setItem","removeItem","lookupLocalStorage","getItem","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","convertDetectedLanguage","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","member","_interopDefault","resolvePathname","valueEqual","invariant","_extends","T","H","O","E","S","inlines","OrderedSet","entities","blocks","M","Map","A","blockquote","atomic","unstyled","aliasedElements","del","em","strong","ins","sub","sup","HTMLAnchorElement","dataset","mention","Entity","__create","title","targetOption","I","mutability","HTMLImageElement","alt","alignment","HTMLVideoElement","HTMLIFrameElement","keySeq","toSet","toOrderedSet","HTMLElement","withMutations","implementation","createHTMLDocument","getElementsByTagName","OrderedMap","__get","contentBlocks","List","entity","CharacterMetadata","ContentBlock","genKey","characterList","entityMap","enumerable","toStringTag"],"mappings":"6FAAA,wCAAMA,EAAgB,CACpBC,KAAM,SACN,IAAIC,GACFC,KAAKC,OAAO,MAAOF,IAErB,KAAKA,GACHC,KAAKC,OAAO,OAAQF,IAEtB,MAAMA,GACJC,KAAKC,OAAO,QAASF,IAEvB,OAAOD,EAAMC,GACPG,SAAWA,QAAQJ,IAAOI,QAAQJ,GAAMK,MAAMD,QAASH,KAG/D,MAAMK,EACJ,YAAYC,GACV,IAAIC,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFP,KAAKU,KAAKL,EAAgBC,GAE5B,KAAKD,GACH,IAAIC,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFP,KAAKW,OAASL,EAAQK,QAAU,WAChCX,KAAKY,OAASP,GAAkBR,EAChCG,KAAKM,QAAUA,EACfN,KAAKa,MAAQP,EAAQO,MAEvB,MACE,IAAK,IAAIC,EAAOP,UAAUC,OAAQT,EAAO,IAAIgB,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjB,EAAKiB,GAAQT,UAAUS,GAEzB,OAAOhB,KAAKiB,QAAQlB,EAAM,MAAO,IAAI,GAEvC,OACE,IAAK,IAAImB,EAAQX,UAAUC,OAAQT,EAAO,IAAIgB,MAAMG,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpB,EAAKoB,GAASZ,UAAUY,GAE1B,OAAOnB,KAAKiB,QAAQlB,EAAM,OAAQ,IAAI,GAExC,QACE,IAAK,IAAIqB,EAAQb,UAAUC,OAAQT,EAAO,IAAIgB,MAAMK,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFtB,EAAKsB,GAASd,UAAUc,GAE1B,OAAOrB,KAAKiB,QAAQlB,EAAM,QAAS,IAErC,YACE,IAAK,IAAIuB,EAAQf,UAAUC,OAAQT,EAAO,IAAIgB,MAAMO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxB,EAAKwB,GAAShB,UAAUgB,GAE1B,OAAOvB,KAAKiB,QAAQlB,EAAM,OAAQ,wBAAwB,GAE5D,QAAQA,EAAMyB,EAAKb,EAAQc,GACzB,OAAIA,IAAczB,KAAKa,MAAc,MACd,kBAAZd,EAAK,KAAiBA,EAAK,GAAK,GAAGY,IAASX,KAAKW,UAAUZ,EAAK,MACpEC,KAAKY,OAAOY,GAAKzB,IAE1B,OAAO2B,GACL,OAAO,IAAItB,EAAOJ,KAAKY,OAAQ,CAE3BD,OAAQ,GAAGX,KAAKW,UAAUe,QAEzB1B,KAAKM,UAGZ,MAAMA,GAGJ,OAFAA,EAAUA,GAAWN,KAAKM,SAClBK,OAASL,EAAQK,QAAUX,KAAKW,OACjC,IAAIP,EAAOJ,KAAKY,OAAQN,IAGnC,IAAIqB,EAAa,IAAIvB,EAErB,MAAMwB,EACJ,cACE5B,KAAK6B,UAAY,GAEnB,GAAGC,EAAQC,GAKT,OAJAD,EAAOE,MAAM,KAAKC,QAAQC,IACxBlC,KAAK6B,UAAUK,GAASlC,KAAK6B,UAAUK,IAAU,GACjDlC,KAAK6B,UAAUK,GAAOC,KAAKJ,KAEtB/B,KAET,IAAIkC,EAAOH,GACJ/B,KAAK6B,UAAUK,KACfH,EAIL/B,KAAK6B,UAAUK,GAASlC,KAAK6B,UAAUK,GAAOE,OAAOC,GAAKA,IAAMN,UAHvD/B,KAAK6B,UAAUK,IAK1B,KAAKA,GACH,IAAK,IAAIpB,EAAOP,UAAUC,OAAQT,EAAO,IAAIgB,MAAMD,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGjB,EAAKiB,EAAO,GAAKT,UAAUS,GAE7B,GAAIhB,KAAK6B,UAAUK,GAAQ,CACV,GAAGI,OAAOtC,KAAK6B,UAAUK,IACjCD,QAAQM,IACbA,KAAYxC,KAGhB,GAAIC,KAAK6B,UAAU,KAAM,CACR,GAAGS,OAAOtC,KAAK6B,UAAU,MACjCI,QAAQM,IACbA,EAASpC,MAAMoC,EAAU,CAACL,KAAUnC,QAM5C,SAASyC,IACP,IAAIC,EACAC,EACJ,MAAMC,EAAU,IAAIC,QAAQ,CAACC,EAASC,KACpCL,EAAMI,EACNH,EAAMI,IAIR,OAFAH,EAAQE,QAAUJ,EAClBE,EAAQG,OAASJ,EACVC,EAET,SAASI,EAAWC,GAClB,OAAc,MAAVA,EAAuB,GACpB,GAAKA,EAOd,SAASC,EAAcD,EAAQE,EAAMC,GACnC,SAASC,EAASC,GAChB,OAAOA,GAAOA,EAAIC,QAAQ,QAAU,EAAID,EAAIE,QAAQ,OAAQ,KAAOF,EAErE,SAASG,IACP,OAAQR,GAA4B,kBAAXA,EAE3B,MAAMS,EAAwB,kBAATP,EAAoB,GAAGZ,OAAOY,GAAQA,EAAKlB,MAAM,KACtE,KAAOyB,EAAMjD,OAAS,GAAG,CACvB,GAAIgD,IAAwB,MAAO,GACnC,MAAMH,EAAMD,EAASK,EAAMC,UACtBV,EAAOK,IAAQF,IAAOH,EAAOK,GAAO,IAAIF,GAE3CH,EADEW,OAAOC,UAAUC,eAAeC,KAAKd,EAAQK,GACtCL,EAAOK,GAEP,GAGb,OAAIG,IAA+B,GAC5B,CACLO,IAAKf,EACLgB,EAAGZ,EAASK,EAAMC,UAGtB,SAASO,EAAQjB,EAAQE,EAAMgB,GAC7B,MAAM,IACJH,EAAG,EACHC,GACEf,EAAcD,EAAQE,EAAMS,QAChCI,EAAIC,GAAKE,EAWX,SAASC,EAAQnB,EAAQE,GACvB,MAAM,IACJa,EAAG,EACHC,GACEf,EAAcD,EAAQE,GAC1B,GAAKa,EACL,OAAOA,EAAIC,GAEb,SAASI,EAAoBC,EAAMC,EAAajB,GAC9C,MAAMkB,EAAQJ,EAAQE,EAAMhB,GAC5B,YAAc5C,IAAV8D,EACKA,EAEFJ,EAAQG,EAAajB,GAkB9B,SAASmB,EAAYC,GACnB,OAAOA,EAAIlB,QAAQ,sCAAuC,QAE5D,IAAImB,EAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UAEP,SAASC,EAAON,GACd,MAAoB,kBAATA,EACFA,EAAKd,QAAQ,aAAcqB,GAAKF,EAAWE,IAE7CP,EAET,MAAMQ,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAgBnC,SAASC,EAASf,EAAKb,GACrB,IAAI6B,EAAexE,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,IACvF,IAAKwD,EAAK,OACV,GAAIA,EAAIb,GAAO,OAAOa,EAAIb,GAC1B,MAAM8B,EAAQ9B,EAAKlB,MAAM+C,GACzB,IAAIE,EAAUlB,EACd,IAAK,IAAImB,EAAI,EAAGA,EAAIF,EAAMxE,SAAU0E,EAAG,CACrC,IAAKD,EAAS,OACd,GAAiC,kBAAtBA,EAAQD,EAAME,KAAoBA,EAAI,EAAIF,EAAMxE,OACzD,OAEF,QAA0BC,IAAtBwE,EAAQD,EAAME,IAAmB,CACnC,IAAIC,EAAI,EACJC,EAAIJ,EAAMK,MAAMH,EAAGA,EAAIC,GAAGG,KAAKP,GAC/BQ,EAAMN,EAAQG,GAClB,UAAe3E,IAAR8E,GAAqBP,EAAMxE,OAAS0E,EAAIC,GAC7CA,IACAC,EAAIJ,EAAMK,MAAMH,EAAGA,EAAIC,GAAGG,KAAKP,GAC/BQ,EAAMN,EAAQG,GAEhB,QAAY3E,IAAR8E,EAAmB,OACvB,GAAY,OAARA,EAAc,OAAO,KACzB,GAAIrC,EAAKsC,SAASJ,GAAI,CACpB,GAAmB,kBAARG,EAAkB,OAAOA,EACpC,GAAIH,GAAuB,kBAAXG,EAAIH,GAAiB,OAAOG,EAAIH,GAElD,MAAMK,EAAaT,EAAMK,MAAMH,EAAIC,GAAGG,KAAKP,GAC3C,OAAIU,EAAmBX,EAASS,EAAKE,EAAYV,QACjD,EAEFE,EAAUA,EAAQD,EAAME,IAE1B,OAAOD,EAET,SAASS,EAAeC,GACtB,OAAIA,GAAQA,EAAKrC,QAAQ,KAAO,EAAUqC,EAAKpC,QAAQ,IAAK,KACrDoC,EAGT,MAAMC,UAAsBhE,EAC1B,YAAYyC,GACV,IAAI/D,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAChFsF,GAAI,CAAC,eACLC,UAAW,eAEbC,QACA/F,KAAKqE,KAAOA,GAAQ,GACpBrE,KAAKM,QAAUA,OACmBG,IAA9BT,KAAKM,QAAQyE,eACf/E,KAAKM,QAAQyE,aAAe,UAEWtE,IAArCT,KAAKM,QAAQ0F,sBACfhG,KAAKM,QAAQ0F,qBAAsB,GAGvC,cAAcH,GACR7F,KAAKM,QAAQuF,GAAGvC,QAAQuC,GAAM,GAChC7F,KAAKM,QAAQuF,GAAG1D,KAAK0D,GAGzB,iBAAiBA,GACf,MAAMI,EAAQjG,KAAKM,QAAQuF,GAAGvC,QAAQuC,GAClCI,GAAS,GACXjG,KAAKM,QAAQuF,GAAGK,OAAOD,EAAO,GAGlC,YAAYE,EAAKN,EAAIxC,GACnB,IAAI/C,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAMwE,OAAwCtE,IAAzBH,EAAQyE,aAA6BzE,EAAQyE,aAAe/E,KAAKM,QAAQyE,aACxFiB,OAAsDvF,IAAhCH,EAAQ0F,oBAAoC1F,EAAQ0F,oBAAsBhG,KAAKM,QAAQ0F,oBACnH,IAAI9C,EAAO,CAACiD,EAAKN,GACbxC,GAAsB,kBAARA,IAAkBH,EAAOA,EAAKZ,OAAOe,IACnDA,GAAsB,kBAARA,IAAkBH,EAAOA,EAAKZ,OAAOyC,EAAe1B,EAAIrB,MAAM+C,GAAgB1B,IAC5F8C,EAAI7C,QAAQ,MAAQ,IACtBJ,EAAOiD,EAAInE,MAAM,MAEnB,MAAMoE,EAASjC,EAAQnE,KAAKqE,KAAMnB,GAClC,OAAIkD,IAAWJ,GAAsC,kBAAR3C,EAAyB+C,EAC/DtB,EAAS9E,KAAKqE,MAAQrE,KAAKqE,KAAK8B,IAAQnG,KAAKqE,KAAK8B,GAAKN,GAAKxC,EAAK0B,GAE1E,YAAYoB,EAAKN,EAAIxC,EAAKkB,GACxB,IAAIjE,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAChF8F,QAAQ,GAEV,MAAMtB,OAAwCtE,IAAzBH,EAAQyE,aAA6BzE,EAAQyE,aAAe/E,KAAKM,QAAQyE,aAC9F,IAAI7B,EAAO,CAACiD,EAAKN,GACbxC,IAAKH,EAAOA,EAAKZ,OAAOyC,EAAe1B,EAAIrB,MAAM+C,GAAgB1B,IACjE8C,EAAI7C,QAAQ,MAAQ,IACtBJ,EAAOiD,EAAInE,MAAM,KACjBuC,EAAQsB,EACRA,EAAK3C,EAAK,IAEZlD,KAAKsG,cAAcT,GACnB5B,EAAQjE,KAAKqE,KAAMnB,EAAMqB,GACpBjE,EAAQ+F,QAAQrG,KAAKuG,KAAK,QAASJ,EAAKN,EAAIxC,EAAKkB,GAExD,aAAa4B,EAAKN,EAAIW,GACpB,IAAIlG,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAChF8F,QAAQ,GAEV,IAAK,MAAMI,KAAKD,EACc,kBAAjBA,EAAUC,IAAqE,mBAAlD9C,OAAOC,UAAU8C,SAASvG,MAAMqG,EAAUC,KAA0BzG,KAAK2G,YAAYR,EAAKN,EAAIY,EAAGD,EAAUC,GAAI,CACrJJ,QAAQ,IAGP/F,EAAQ+F,QAAQrG,KAAKuG,KAAK,QAASJ,EAAKN,EAAIW,GAEnD,kBAAkBL,EAAKN,EAAIW,EAAWI,EAAMC,GAC1C,IAAIvG,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAChF8F,QAAQ,GAENnD,EAAO,CAACiD,EAAKN,GACbM,EAAI7C,QAAQ,MAAQ,IACtBJ,EAAOiD,EAAInE,MAAM,KACjB4E,EAAOJ,EACPA,EAAYX,EACZA,EAAK3C,EAAK,IAEZlD,KAAKsG,cAAcT,GACnB,IAAIiB,EAAO3C,EAAQnE,KAAKqE,KAAMnB,IAAS,GACnC0D,EAzKR,SAASG,EAAWC,EAAQC,EAAQJ,GAClC,IAAK,MAAMK,KAAQD,EACJ,cAATC,GAAiC,gBAATA,IACtBA,KAAQF,EACkB,kBAAjBA,EAAOE,IAAsBF,EAAOE,aAAiBC,QAAkC,kBAAjBF,EAAOC,IAAsBD,EAAOC,aAAiBC,OAChIN,IAAWG,EAAOE,GAAQD,EAAOC,IAErCH,EAAWC,EAAOE,GAAOD,EAAOC,GAAOL,GAGzCG,EAAOE,GAAQD,EAAOC,IAI5B,OAAOF,EA4JHD,CAAWD,EAAMN,EAAWK,GAE5BC,EAAO,IACFA,KACAN,GAGPvC,EAAQjE,KAAKqE,KAAMnB,EAAM4D,GACpBxG,EAAQ+F,QAAQrG,KAAKuG,KAAK,QAASJ,EAAKN,EAAIW,GAEnD,qBAAqBL,EAAKN,GACpB7F,KAAKoH,kBAAkBjB,EAAKN,WACvB7F,KAAKqE,KAAK8B,GAAKN,GAExB7F,KAAKqH,iBAAiBxB,GACtB7F,KAAKuG,KAAK,UAAWJ,EAAKN,GAE5B,kBAAkBM,EAAKN,GACrB,YAAqCpF,IAA9BT,KAAKsH,YAAYnB,EAAKN,GAE/B,kBAAkBM,EAAKN,GAErB,OADKA,IAAIA,EAAK7F,KAAKM,QAAQwF,WACW,OAAlC9F,KAAKM,QAAQiH,iBAAkC,IAE9CvH,KAAKsH,YAAYnB,EAAKN,IAEpB7F,KAAKsH,YAAYnB,EAAKN,GAE/B,kBAAkBM,GAChB,OAAOnG,KAAKqE,KAAK8B,GAEnB,4BAA4BA,GAC1B,MAAM9B,EAAOrE,KAAKwH,kBAAkBrB,GAEpC,SADU9B,GAAQV,OAAO8D,KAAKpD,IAAS,IAC5BqD,KAAKC,GAAKtD,EAAKsD,IAAMhE,OAAO8D,KAAKpD,EAAKsD,IAAInH,OAAS,GAEhE,SACE,OAAOR,KAAKqE,MAIhB,IAAIuD,EAAgB,CAClBC,WAAY,GACZ,iBAAiBC,GACf9H,KAAK6H,WAAWC,EAAOC,MAAQD,GAEjC,OAAOD,EAAYtD,EAAOlB,EAAK/C,EAAS0H,GAItC,OAHAH,EAAW5F,QAAQgG,IACbjI,KAAK6H,WAAWI,KAAY1D,EAAQvE,KAAK6H,WAAWI,GAAWC,QAAQ3D,EAAOlB,EAAK/C,EAAS0H,MAE3FzD,IAIX,MAAM4D,EAAmB,GACzB,MAAMC,UAAmBxG,EACvB,YAAYyG,GACV,IAAI/H,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFwF,QAhSJ,SAAcuC,EAAG1D,EAAG2D,GAClBD,EAAErG,QAAQwE,IACJ7B,EAAE6B,KAAI8B,EAAE9B,GAAK7B,EAAE6B,MA+RnB+B,CAAK,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,SAAUH,EAAUrI,MAChIA,KAAKM,QAAUA,OACmBG,IAA9BT,KAAKM,QAAQyE,eACf/E,KAAKM,QAAQyE,aAAe,KAE9B/E,KAAKY,OAASe,EAAW8G,OAAO,cAElC,eAAetC,GACTA,IAAKnG,KAAK0I,SAAWvC,GAE3B,OAAO9C,GACL,IAAI/C,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAChFoI,cAAe,IAEjB,QAAYlI,IAAR4C,GAA6B,OAARA,EACvB,OAAO,EAET,MAAMuF,EAAW5I,KAAK6C,QAAQQ,EAAK/C,GACnC,OAAOsI,QAA6BnI,IAAjBmI,EAASnG,IAE9B,eAAeY,EAAK/C,GAClB,IAAIuI,OAAsCpI,IAAxBH,EAAQuI,YAA4BvI,EAAQuI,YAAc7I,KAAKM,QAAQuI,iBACrEpI,IAAhBoI,IAA2BA,EAAc,KAC7C,MAAM9D,OAAwCtE,IAAzBH,EAAQyE,aAA6BzE,EAAQyE,aAAe/E,KAAKM,QAAQyE,aAC9F,IAAI+D,EAAaxI,EAAQuF,IAAM7F,KAAKM,QAAQwF,WAAa,GACzD,MAAMiD,EAAuBF,GAAexF,EAAIC,QAAQuF,IAAgB,EAClEG,GAAwBhJ,KAAKM,QAAQ2I,0BAA4B3I,EAAQyE,eAAiB/E,KAAKM,QAAQ4I,yBAA2B5I,EAAQuI,cA7NpJ,SAA6BxF,EAAKwF,EAAa9D,GAC7C8D,EAAcA,GAAe,GAC7B9D,EAAeA,GAAgB,GAC/B,MAAMoE,EAAgBtE,EAAMzC,OAAOgH,GAAKP,EAAYvF,QAAQ8F,GAAK,GAAKrE,EAAazB,QAAQ8F,GAAK,GAChG,GAA6B,IAAzBD,EAAc3I,OAAc,OAAO,EACvC,MAAM6I,EAAI,IAAIC,OAAO,IAAIH,EAAcI,IAAIH,GAAW,MAANA,EAAY,MAAQA,GAAG9D,KAAK,SAC5E,IAAIkE,GAAWH,EAAEI,KAAKpG,GACtB,IAAKmG,EAAS,CACZ,MAAME,EAAKrG,EAAIC,QAAQyB,GACnB2E,EAAK,IAAML,EAAEI,KAAKpG,EAAIsG,UAAU,EAAGD,MACrCF,GAAU,GAGd,OAAOA,EAgN2JI,CAAoBvG,EAAKwF,EAAa9D,GACtM,GAAIgE,IAAyBC,EAAsB,CACjD,MAAMvC,EAAIpD,EAAIwG,MAAM7J,KAAK8J,aAAaC,eACtC,GAAItD,GAAKA,EAAEjG,OAAS,EAClB,MAAO,CACL6C,MACAyF,cAGJ,MAAMkB,EAAQ3G,EAAIrB,MAAM6G,IACpBA,IAAgB9D,GAAgB8D,IAAgB9D,GAAgB/E,KAAKM,QAAQuF,GAAGvC,QAAQ0G,EAAM,KAAO,KAAGlB,EAAakB,EAAMtG,SAC/HL,EAAM2G,EAAM1E,KAAKP,GAGnB,MAD0B,kBAAf+D,IAAyBA,EAAa,CAACA,IAC3C,CACLzF,MACAyF,cAGJ,UAAUrB,EAAMnH,EAAS2J,GAQvB,GAPuB,kBAAZ3J,GAAwBN,KAAKM,QAAQ4J,mCAC9C5J,EAAUN,KAAKM,QAAQ4J,iCAAiC3J,YAEnC,kBAAZD,IAAsBA,EAAU,IACtCA,IAEAA,IAASA,EAAU,SACXG,IAATgH,GAA+B,OAATA,EAAe,MAAO,GAC3C1G,MAAMoJ,QAAQ1C,KAAOA,EAAO,CAACN,OAAOM,KACzC,MAAM2C,OAA0C3J,IAA1BH,EAAQ8J,cAA8B9J,EAAQ8J,cAAgBpK,KAAKM,QAAQ8J,cAC3FrF,OAAwCtE,IAAzBH,EAAQyE,aAA6BzE,EAAQyE,aAAe/E,KAAKM,QAAQyE,cACxF,IACJ1B,EAAG,WACHyF,GACE9I,KAAKqK,eAAe5C,EAAKA,EAAKjH,OAAS,GAAIF,GACzCgK,EAAYxB,EAAWA,EAAWtI,OAAS,GAC3C2F,EAAM7F,EAAQ6F,KAAOnG,KAAK0I,SAC1B6B,EAA0BjK,EAAQiK,yBAA2BvK,KAAKM,QAAQiK,wBAChF,GAAIpE,GAA6B,WAAtBA,EAAIqE,cAA4B,CACzC,GAAID,EAAyB,CAC3B,MAAM1B,EAAcvI,EAAQuI,aAAe7I,KAAKM,QAAQuI,YACxD,OAAIuB,EACK,CACL3H,IAAK,GAAG6H,IAAYzB,IAAcxF,IAClCoH,QAASpH,EACTqH,aAAcrH,EACdsH,QAASxE,EACTyE,OAAQN,GAGL,GAAGA,IAAYzB,IAAcxF,IAEtC,OAAI+G,EACK,CACL3H,IAAKY,EACLoH,QAASpH,EACTqH,aAAcrH,EACdsH,QAASxE,EACTyE,OAAQN,GAGLjH,EAET,MAAMuF,EAAW5I,KAAK6C,QAAQ4E,EAAMnH,GACpC,IAAImC,EAAMmG,GAAYA,EAASnG,IAC/B,MAAMoI,EAAajC,GAAYA,EAAS6B,SAAWpH,EAC7CyH,EAAkBlC,GAAYA,EAAS8B,cAAgBrH,EACvD0H,EAAUpH,OAAOC,UAAU8C,SAASvG,MAAMsC,GAE1CuI,OAAoCvK,IAAvBH,EAAQ0K,WAA2B1K,EAAQ0K,WAAahL,KAAKM,QAAQ0K,WAClFC,GAA8BjL,KAAKkL,YAAclL,KAAKkL,WAAWC,eAEvE,GAAIF,GAA8BxI,IADI,kBAARA,GAAmC,mBAARA,GAAoC,kBAARA,IAHpE,CAAC,kBAAmB,oBAAqB,mBAIUa,QAAQyH,GAAW,IAA6B,kBAAfC,GAAuC,mBAAZD,GAA+B,CAC7J,IAAKzK,EAAQ8K,gBAAkBpL,KAAKM,QAAQ8K,cAAe,CACpDpL,KAAKM,QAAQ+K,uBAChBrL,KAAKY,OAAO0K,KAAK,mEAEnB,MAAMjC,EAAIrJ,KAAKM,QAAQ+K,sBAAwBrL,KAAKM,QAAQ+K,sBAAsBR,EAAYpI,EAAK,IAC9FnC,EACHuF,GAAIiD,IACD,QAAQzF,MAAQrD,KAAK0I,mDAC1B,OAAI0B,GACFxB,EAASnG,IAAM4G,EACRT,GAEFS,EAET,GAAItE,EAAc,CAChB,MAAMwG,EAA6B,mBAAZR,EACjBvC,EAAO+C,EAAiB,GAAK,GAC7BC,EAAcD,EAAiBT,EAAkBD,EACvD,IAAK,MAAMpE,KAAKhE,EACd,GAAIkB,OAAOC,UAAUC,eAAeC,KAAKrB,EAAKgE,GAAI,CAChD,MAAMgF,EAAU,GAAGD,IAAczG,IAAe0B,IAChD+B,EAAK/B,GAAKzG,KAAK0L,UAAUD,EAAS,IAC7BnL,EAED0K,YAAY,EACZnF,GAAIiD,IAGJN,EAAK/B,KAAOgF,IAASjD,EAAK/B,GAAKhE,EAAIgE,IAG3ChE,EAAM+F,QAEH,GAAIyC,GAAoD,kBAAfD,GAAuC,mBAAZD,EACzEtI,EAAMA,EAAI6C,KAAK0F,GACXvI,IAAKA,EAAMzC,KAAK2L,kBAAkBlJ,EAAKgF,EAAMnH,EAAS2J,QACrD,CACL,IAAI2B,GAAc,EACdnB,GAAU,EACd,MAAMoB,OAAwCpL,IAAlBH,EAAQwL,OAAgD,kBAAlBxL,EAAQwL,MACpEC,EAAkB3D,EAAW2D,gBAAgBzL,GAC7C0L,EAAqBH,EAAsB7L,KAAKiM,eAAeC,UAAU/F,EAAK7F,EAAQwL,MAAOxL,GAAW,GACxG6L,EAAoC7L,EAAQ8L,SAAWP,EAAsB7L,KAAKiM,eAAeC,UAAU/F,EAAK7F,EAAQwL,MAAO,CACnIM,SAAS,IACN,GACCC,EAAe/L,EAAQ,eAAe0L,IAAyB1L,EAAQ,eAAe6L,IAAwC7L,EAAQ+L,cACvIrM,KAAKsM,cAAc7J,IAAQsJ,IAC9BH,GAAc,EACdnJ,EAAM4J,GAEHrM,KAAKsM,cAAc7J,KACtBgI,GAAU,EACVhI,EAAMY,GAER,MACMkJ,GADiCjM,EAAQkM,gCAAkCxM,KAAKM,QAAQkM,iCACtC/B,OAAUhK,EAAYgC,EACxEgK,EAAgBV,GAAmBM,IAAiB5J,GAAOzC,KAAKM,QAAQmM,cAC9E,GAAIhC,GAAWmB,GAAea,EAAe,CAE3C,GADAzM,KAAKY,OAAO8L,IAAID,EAAgB,YAAc,aAActG,EAAKmE,EAAWjH,EAAKoJ,EAAgBJ,EAAe5J,GAC5GsC,EAAc,CAChB,MAAM4H,EAAK3M,KAAK6C,QAAQQ,EAAK,IACxB/C,EACHyE,cAAc,IAEZ4H,GAAMA,EAAGlK,KAAKzC,KAAKY,OAAO0K,KAAK,mLAErC,IAAIsB,EAAO,GACX,MAAMC,EAAe7M,KAAK8M,cAAcC,iBAAiB/M,KAAKM,QAAQ0M,YAAa1M,EAAQ6F,KAAOnG,KAAK0I,UACvG,GAAmC,aAA/B1I,KAAKM,QAAQ2M,eAAgCJ,GAAgBA,EAAa,GAC5E,IAAK,IAAI3H,EAAI,EAAGA,EAAI2H,EAAarM,OAAQ0E,IACvC0H,EAAKzK,KAAK0K,EAAa3H,QAEe,QAA/BlF,KAAKM,QAAQ2M,cACtBL,EAAO5M,KAAK8M,cAAcI,mBAAmB5M,EAAQ6F,KAAOnG,KAAK0I,UAEjEkE,EAAKzK,KAAK7B,EAAQ6F,KAAOnG,KAAK0I,UAEhC,MAAMyE,EAAO,CAAC9K,EAAG2B,EAAGoJ,KAClB,MAAMC,EAAoBtB,GAAmBqB,IAAyB3K,EAAM2K,EAAuBb,EAC/FvM,KAAKM,QAAQgN,kBACftN,KAAKM,QAAQgN,kBAAkBjL,EAAGiI,EAAWtG,EAAGqJ,EAAmBZ,EAAenM,GACzEN,KAAKuN,kBAAoBvN,KAAKuN,iBAAiBC,aACxDxN,KAAKuN,iBAAiBC,YAAYnL,EAAGiI,EAAWtG,EAAGqJ,EAAmBZ,EAAenM,GAEvFN,KAAKuG,KAAK,aAAclE,EAAGiI,EAAWtG,EAAGvB,IAEvCzC,KAAKM,QAAQkN,cACXxN,KAAKM,QAAQmN,oBAAsB5B,EACrCe,EAAK3K,QAAQyG,IACX1I,KAAKiM,eAAeyB,YAAYhF,EAAUpI,GAAS2B,QAAQ0L,IACzDR,EAAK,CAACzE,GAAWrF,EAAMsK,EAAQrN,EAAQ,eAAeqN,IAAatB,OAIvEc,EAAKP,EAAMvJ,EAAKgJ,IAItB5J,EAAMzC,KAAK2L,kBAAkBlJ,EAAKgF,EAAMnH,EAASsI,EAAUqB,GACvDQ,GAAWhI,IAAQY,GAAOrD,KAAKM,QAAQsN,8BAA6BnL,EAAM,GAAG6H,KAAajH,MACzFoH,GAAWmB,IAAgB5L,KAAKM,QAAQuN,yBAEzCpL,EADoC,OAAlCzC,KAAKM,QAAQiH,iBACTvH,KAAKM,QAAQuN,uBAAuB7N,KAAKM,QAAQsN,4BAA8B,GAAGtD,KAAajH,IAAQA,EAAKuI,EAAcnJ,OAAMhC,GAEhIT,KAAKM,QAAQuN,uBAAuBpL,IAIhD,OAAI2H,GACFxB,EAASnG,IAAMA,EACRmG,GAEFnG,EAET,kBAAkBA,EAAKY,EAAK/C,EAASsI,EAAUqB,GAC7C,IAAI6D,EAAQ9N,KACZ,GAAIA,KAAKkL,YAAclL,KAAKkL,WAAW6C,MACrCtL,EAAMzC,KAAKkL,WAAW6C,MAAMtL,EAAK,IAC5BzC,KAAKM,QAAQqI,cAAcqF,oBAC3B1N,GACFsI,EAAS+B,QAAS/B,EAASgC,OAAQhC,EAAS6B,QAAS,CACtD7B,kBAEG,IAAKtI,EAAQ2N,kBAAmB,CACjC3N,EAAQqI,eAAe3I,KAAK8J,aAAapJ,KAAK,IAC7CJ,EAEDqI,cAAe,IACV3I,KAAKM,QAAQqI,iBACbrI,EAAQqI,iBAIjB,MAAMuF,EAAiC,kBAARzL,IAAqBnC,GAAWA,EAAQqI,oBAA2DlI,IAA1CH,EAAQqI,cAAcuF,gBAAgC5N,EAAQqI,cAAcuF,gBAAkBlO,KAAKM,QAAQqI,cAAcuF,iBACjN,IAAIC,EACJ,GAAID,EAAiB,CACnB,MAAME,EAAK3L,EAAIoH,MAAM7J,KAAK8J,aAAaC,eACvCoE,EAAUC,GAAMA,EAAG5N,OAErB,IAAI6D,EAAO/D,EAAQiD,SAAsC,kBAApBjD,EAAQiD,QAAuBjD,EAAQiD,QAAUjD,EAMtF,GALIN,KAAKM,QAAQqI,cAAcqF,mBAAkB3J,EAAO,IACnDrE,KAAKM,QAAQqI,cAAcqF,oBAC3B3J,IAEL5B,EAAMzC,KAAK8J,aAAauE,YAAY5L,EAAK4B,EAAM/D,EAAQ6F,KAAOnG,KAAK0I,SAAUpI,GACzE4N,EAAiB,CACnB,MAAMI,EAAK7L,EAAIoH,MAAM7J,KAAK8J,aAAaC,eAEnCoE,GADYG,GAAMA,EAAG9N,UACFF,EAAQiO,MAAO,IAEnCjO,EAAQ6F,KAAyC,OAAlCnG,KAAKM,QAAQiH,kBAA6BqB,GAAYA,EAASnG,MAAKnC,EAAQ6F,IAAMyC,EAAS+B,UAC1F,IAAjBrK,EAAQiO,OAAgB9L,EAAMzC,KAAK8J,aAAayE,KAAK9L,GAAK,WAC5D,IAAK,IAAI3B,EAAOP,UAAUC,OAAQT,EAAO,IAAIgB,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjB,EAAKiB,GAAQT,UAAUS,GAEzB,OAAIiJ,GAAWA,EAAQ,KAAOlK,EAAK,KAAOO,EAAQkO,SAChDV,EAAMlN,OAAO0K,KAAK,6CAA6CvL,EAAK,cAAcsD,EAAI,MAC/E,MAEFyK,EAAMpC,aAAa3L,EAAMsD,KAC/B/C,IACCA,EAAQqI,eAAe3I,KAAK8J,aAAa2E,QAE/C,MAAMC,EAAcpO,EAAQoO,aAAe1O,KAAKM,QAAQoO,YAClDC,EAA4C,kBAAhBD,EAA2B,CAACA,GAAeA,EAO7E,YANYjO,IAARgC,GAA6B,OAARA,GAAgBkM,GAAsBA,EAAmBnO,SAAyC,IAA/BF,EAAQsO,qBAClGnM,EAAMmF,EAAciH,OAAOF,EAAoBlM,EAAKY,EAAKrD,KAAKM,SAAWN,KAAKM,QAAQwO,wBAA0B,CAC9GC,aAAcnG,KACXtI,GACDA,EAASN,OAERyC,EAET,QAAQgF,GACN,IACIuH,EACAvE,EACAC,EACAC,EACAC,EALAtK,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAqElF,MA/DoB,kBAATkH,IAAmBA,EAAO,CAACA,IACtCA,EAAKxF,QAAQ+B,IACX,GAAIhE,KAAKsM,cAAc0C,GAAQ,OAC/B,MAAMC,EAAYjP,KAAKqK,eAAerG,EAAG1D,GACnC+C,EAAM4L,EAAU5L,IACtBoH,EAAUpH,EACV,IAAIyF,EAAamG,EAAUnG,WACvB9I,KAAKM,QAAQ4O,aAAYpG,EAAaA,EAAWxG,OAAOtC,KAAKM,QAAQ4O,aACzE,MAAMrD,OAAwCpL,IAAlBH,EAAQwL,OAAgD,kBAAlBxL,EAAQwL,MACpEqD,EAAwBtD,IAAwBvL,EAAQ8L,SAA6B,IAAlB9L,EAAQwL,OAAe9L,KAAKiM,eAAemD,mBAC9GC,OAA2C5O,IAApBH,EAAQkO,UAAqD,kBAApBlO,EAAQkO,SAAmD,kBAApBlO,EAAQkO,UAA6C,KAApBlO,EAAQkO,QAChJc,EAAQhP,EAAQsM,KAAOtM,EAAQsM,KAAO5M,KAAK8M,cAAcI,mBAAmB5M,EAAQ6F,KAAOnG,KAAK0I,SAAUpI,EAAQ0M,aACxHlE,EAAW7G,QAAQ4D,IACb7F,KAAKsM,cAAc0C,KACvBpE,EAAS/E,GACJsC,EAAiB,GAAGmH,EAAM,MAAMzJ,MAAS7F,KAAKuP,OAASvP,KAAKuP,MAAMC,qBAAuBxP,KAAKuP,MAAMC,mBAAmB5E,KAC1HzC,EAAiB,GAAGmH,EAAM,MAAMzJ,MAAQ,EACxC7F,KAAKY,OAAO0K,KAAK,QAAQb,qBAA2B6E,EAAMhK,KAAK,2CAA2CsF,wBAA8B,6NAE1I0E,EAAMrN,QAAQ0D,IACZ,GAAI3F,KAAKsM,cAAc0C,GAAQ,OAC/BrE,EAAUhF,EACV,MAAM8J,EAAY,CAACpM,GACnB,GAAIrD,KAAKkL,YAAclL,KAAKkL,WAAWwE,cACrC1P,KAAKkL,WAAWwE,cAAcD,EAAWpM,EAAKsC,EAAME,EAAIvF,OACnD,CACL,IAAIqP,EACA9D,IAAqB8D,EAAe3P,KAAKiM,eAAeC,UAAUvG,EAAMrF,EAAQwL,MAAOxL,IAC3F,MAAMsP,EAAgB5P,KAAKM,QAAQuP,gBAAhB,OACbC,EAAgB,GAAG9P,KAAKM,QAAQuP,yBAAyB7P,KAAKM,QAAQuP,kBAU5E,GATIhE,IACF4D,EAAUtN,KAAKkB,EAAMsM,GACjBrP,EAAQ8L,SAAmD,IAAxCuD,EAAarM,QAAQwM,IAC1CL,EAAUtN,KAAKkB,EAAMsM,EAAapM,QAAQuM,EAAe9P,KAAKM,QAAQuP,kBAEpEV,GACFM,EAAUtN,KAAKkB,EAAMuM,IAGrBP,EAAsB,CACxB,MAAMU,EAAa,GAAG1M,IAAMrD,KAAKM,QAAQ0P,mBAAmB1P,EAAQkO,UACpEiB,EAAUtN,KAAK4N,GACXlE,IACF4D,EAAUtN,KAAK4N,EAAaJ,GACxBrP,EAAQ8L,SAAmD,IAAxCuD,EAAarM,QAAQwM,IAC1CL,EAAUtN,KAAK4N,EAAaJ,EAAapM,QAAQuM,EAAe9P,KAAKM,QAAQuP,kBAE3EV,GACFM,EAAUtN,KAAK4N,EAAaH,KAKpC,IAAIK,EACJ,KAAOA,EAAcR,EAAUS,OACxBlQ,KAAKsM,cAAc0C,KACtBtE,EAAeuF,EACfjB,EAAQhP,KAAKsH,YAAY3B,EAAME,EAAIoK,EAAa3P,WAMnD,CACLmC,IAAKuM,EACLvE,UACAC,eACAC,UACAC,UAGJ,cAAcnI,GACZ,YAAehC,IAARgC,MAAwBzC,KAAKM,QAAQ6P,YAAsB,OAAR1N,OAAoBzC,KAAKM,QAAQ8P,mBAA6B,KAAR3N,GAElH,YAAYkD,EAAME,EAAIxC,GACpB,IAAI/C,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAIP,KAAKkL,YAAclL,KAAKkL,WAAW5D,YAAoBtH,KAAKkL,WAAW5D,YAAY3B,EAAME,EAAIxC,EAAK/C,GAC/FN,KAAKqQ,cAAc/I,YAAY3B,EAAME,EAAIxC,EAAK/C,GAEvD,uBAAuBA,GAErB,IAAK,MAAMgQ,KAAUhQ,EACnB,GAAIqD,OAAOC,UAAUC,eAAeC,KAAKxD,EAASgQ,IAFrC,iBAE2DA,EAAO3G,UAAU,EAF5E,eAEsFnJ,cAAWC,IAAcH,EAAQgQ,GAClI,OAAO,EAGX,OAAO,GAIX,SAASC,EAAWC,GAClB,OAAOA,EAAOC,OAAO,GAAGC,cAAgBF,EAAOnL,MAAM,GAEvD,MAAMsL,EACJ,YAAYrQ,GACVN,KAAKM,QAAUA,EACfN,KAAK4Q,cAAgB5Q,KAAKM,QAAQsQ,gBAAiB,EACnD5Q,KAAKY,OAASe,EAAW8G,OAAO,iBAElC,sBAAsB9C,GAEpB,KADAA,EAAOD,EAAeC,KACTA,EAAKrC,QAAQ,KAAO,EAAG,OAAO,KAC3C,MAAM8B,EAAIO,EAAK3D,MAAM,KACrB,OAAiB,IAAboD,EAAE5E,OAAqB,MAC3B4E,EAAE8K,MACoC,MAAlC9K,EAAEA,EAAE5E,OAAS,GAAGgK,cAA8B,KAC3CxK,KAAK6Q,mBAAmBzL,EAAEE,KAAK,OAExC,wBAAwBK,GAEtB,KADAA,EAAOD,EAAeC,KACTA,EAAKrC,QAAQ,KAAO,EAAG,OAAOqC,EAC3C,MAAMP,EAAIO,EAAK3D,MAAM,KACrB,OAAOhC,KAAK6Q,mBAAmBzL,EAAE,IAEnC,mBAAmBO,GACjB,GAAoB,kBAATA,GAAqBA,EAAKrC,QAAQ,MAAQ,EAAG,CACtD,MAAMwN,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACtE,IAAI1L,EAAIO,EAAK3D,MAAM,KAcnB,OAbIhC,KAAKM,QAAQyQ,aACf3L,EAAIA,EAAEmE,IAAIyH,GAAQA,EAAKxG,eACD,IAAbpF,EAAE5E,QACX4E,EAAE,GAAKA,EAAE,GAAGoF,cACZpF,EAAE,GAAKA,EAAE,GAAGsL,cACRI,EAAaxN,QAAQ8B,EAAE,GAAGoF,gBAAkB,IAAGpF,EAAE,GAAKmL,EAAWnL,EAAE,GAAGoF,iBACpD,IAAbpF,EAAE5E,SACX4E,EAAE,GAAKA,EAAE,GAAGoF,cACQ,IAAhBpF,EAAE,GAAG5E,SAAc4E,EAAE,GAAKA,EAAE,GAAGsL,eACtB,QAATtL,EAAE,IAAgC,IAAhBA,EAAE,GAAG5E,SAAc4E,EAAE,GAAKA,EAAE,GAAGsL,eACjDI,EAAaxN,QAAQ8B,EAAE,GAAGoF,gBAAkB,IAAGpF,EAAE,GAAKmL,EAAWnL,EAAE,GAAGoF,gBACtEsG,EAAaxN,QAAQ8B,EAAE,GAAGoF,gBAAkB,IAAGpF,EAAE,GAAKmL,EAAWnL,EAAE,GAAGoF,iBAErEpF,EAAEE,KAAK,KAEhB,OAAOtF,KAAKM,QAAQ2Q,WAAajR,KAAKM,QAAQyQ,aAAepL,EAAK6E,cAAgB7E,EAEpF,gBAAgBA,GAId,OAH0B,iBAAtB3F,KAAKM,QAAQ4Q,MAA2BlR,KAAKM,QAAQ6Q,4BACvDxL,EAAO3F,KAAKoR,wBAAwBzL,KAE9B3F,KAAK4Q,gBAAkB5Q,KAAK4Q,cAAcpQ,QAAUR,KAAK4Q,cAActN,QAAQqC,IAAS,EAElG,sBAAsB2J,GACpB,IAAKA,EAAO,OAAO,KACnB,IAAIN,EAmBJ,OAlBAM,EAAMrN,QAAQ0D,IACZ,GAAIqJ,EAAO,OACX,MAAMqC,EAAarR,KAAK6Q,mBAAmBlL,GACtC3F,KAAKM,QAAQsQ,gBAAiB5Q,KAAKsR,gBAAgBD,KAAarC,EAAQqC,MAE1ErC,GAAShP,KAAKM,QAAQsQ,eACzBtB,EAAMrN,QAAQ0D,IACZ,GAAIqJ,EAAO,OACX,MAAMuC,EAAUvR,KAAKoR,wBAAwBzL,GAC7C,GAAI3F,KAAKsR,gBAAgBC,GAAU,OAAOvC,EAAQuC,EAClDvC,EAAQhP,KAAKM,QAAQsQ,cAAclJ,KAAK8J,GAClCA,IAAiBD,EAAgBC,EACjCA,EAAalO,QAAQ,KAAO,GAAKiO,EAAQjO,QAAQ,KAAO,OAA5D,EACsC,IAAlCkO,EAAalO,QAAQiO,GAAuBC,OAAhD,KAIDxC,IAAOA,EAAQhP,KAAK+M,iBAAiB/M,KAAKM,QAAQ0M,aAAa,IAC7DgC,EAET,iBAAiByC,EAAW9L,GAC1B,IAAK8L,EAAW,MAAO,GAGvB,GAFyB,oBAAdA,IAA0BA,EAAYA,EAAU9L,IAClC,kBAAd8L,IAAwBA,EAAY,CAACA,IACG,mBAA/C9N,OAAOC,UAAU8C,SAASvG,MAAMsR,GAAiC,OAAOA,EAC5E,IAAK9L,EAAM,OAAO8L,EAAUC,SAAW,GACvC,IAAI1C,EAAQyC,EAAU9L,GAKtB,OAJKqJ,IAAOA,EAAQyC,EAAUzR,KAAK2R,sBAAsBhM,KACpDqJ,IAAOA,EAAQyC,EAAUzR,KAAK6Q,mBAAmBlL,KACjDqJ,IAAOA,EAAQyC,EAAUzR,KAAKoR,wBAAwBzL,KACtDqJ,IAAOA,EAAQyC,EAAUC,SACvB1C,GAAS,GAElB,mBAAmBrJ,EAAMiM,GACvB,MAAMC,EAAgB7R,KAAK+M,iBAAiB6E,GAAgB5R,KAAKM,QAAQ0M,aAAe,GAAIrH,GACtF2J,EAAQ,GACRwC,EAAU1I,IACTA,IACDpJ,KAAKsR,gBAAgBlI,GACvBkG,EAAMnN,KAAKiH,GAEXpJ,KAAKY,OAAO0K,KAAK,uDAAuDlC,KAa5E,MAVoB,kBAATzD,IAAsBA,EAAKrC,QAAQ,MAAQ,GAAKqC,EAAKrC,QAAQ,MAAQ,IACpD,iBAAtBtD,KAAKM,QAAQ4Q,MAAyBY,EAAQ9R,KAAK6Q,mBAAmBlL,IAChD,iBAAtB3F,KAAKM,QAAQ4Q,MAAiD,gBAAtBlR,KAAKM,QAAQ4Q,MAAwBY,EAAQ9R,KAAK2R,sBAAsBhM,IAC1F,gBAAtB3F,KAAKM,QAAQ4Q,MAAwBY,EAAQ9R,KAAKoR,wBAAwBzL,KACrD,kBAATA,GAChBmM,EAAQ9R,KAAK6Q,mBAAmBlL,IAElCkM,EAAc5P,QAAQ8P,IAChBzC,EAAMhM,QAAQyO,GAAM,GAAGD,EAAQ9R,KAAK6Q,mBAAmBkB,MAEtDzC,GAIX,IAAI0C,EAAO,CAAC,CACVpF,KAAM,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,MACjIqF,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDnF,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACzYqF,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDnF,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACxIqF,GAAI,CAAC,GACLF,GAAI,GACH,CACDnF,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAClDqF,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,KACrBF,GAAI,GACH,CACDnF,KAAM,CAAC,KAAM,MACbqF,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDnF,KAAM,CAAC,MAAO,MACdqF,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,GACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,IACjBF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,EAAG,IACdF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDnF,KAAM,CAAC,OACPqF,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDnF,KAAM,CAAC,MACPqF,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDnF,KAAM,CAAC,KAAM,MACbqF,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,KAEFG,EAAqB,CACvBC,EAAG,SAAUC,GACX,OAAOC,OAAOD,EAAI,IAEpBE,EAAG,SAAUF,GACX,OAAOC,OAAY,GAALD,IAEhBG,EAAG,SAAUH,GACX,OAAO,GAETI,EAAG,SAAUJ,GACX,OAAOC,OAAOD,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,IAEvHK,EAAG,SAAUL,GACX,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,IAE/GM,EAAG,SAAUN,GACX,OAAOC,OAAY,GAALD,EAAS,EAAIA,GAAK,GAAKA,GAAK,EAAI,EAAI,IAEpDO,EAAG,SAAUP,GACX,OAAOC,OAAY,GAALD,EAAS,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,IAEjGQ,EAAG,SAAUR,GACX,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,GAAe,IAALA,EAAU,EAAI,IAElES,EAAG,SAAUT,GACX,OAAOC,OAAOD,GAAK,IAErBU,GAAI,SAAUV,GACZ,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,IAEnEW,GAAI,SAAUX,GACZ,OAAOC,OAAY,GAALD,GAAe,IAALA,EAAU,EAAS,GAALA,GAAe,IAALA,EAAU,EAAIA,EAAI,GAAKA,EAAI,GAAK,EAAI,IAEtFY,GAAI,SAAUZ,GACZ,OAAOC,OAAOD,EAAI,IAAM,GAAKA,EAAI,KAAO,KAE1Ca,GAAI,SAAUb,GACZ,OAAOC,OAAa,IAAND,IAEhBc,GAAI,SAAUd,GACZ,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAI,IAEvDe,GAAI,SAAUf,GACZ,OAAOC,OAAOD,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,IAExGgB,GAAI,SAAUhB,GACZ,OAAOC,OAAOD,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAU,IAANA,EAAU,EAAI,IAEjEiB,GAAI,SAAUjB,GACZ,OAAOC,OAAY,GAALD,GAAUA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAI,IAE7DkB,GAAI,SAAUlB,GACZ,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,EAAS,EAAI,IAE1CmB,GAAI,SAAUnB,GACZ,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,GAAK,EAAI,IAE5GoB,GAAI,SAAUpB,GACZ,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAI,IAEzEqB,GAAI,SAAUrB,GACZ,OAAOC,OAAOD,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,EAAI,EAAI,IAEzFsB,GAAI,SAAUtB,GACZ,OAAOC,OAAY,GAALD,EAAS,EAAS,GAALA,EAAS,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,IAAM,EAAI,EAAI,KAGnF,MAAMuB,EAAkB,CAAC,KAAM,KAAM,MAC/BC,EAAe,CAAC,MAChBC,EAAgB,CACpBC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,MAAO,GAcT,MAAMC,EACJ,YAAYtH,GACV,IAAIxM,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFP,KAAK8M,cAAgBA,EACrB9M,KAAKM,QAAUA,EACfN,KAAKY,OAASe,EAAW8G,OAAO,kBAC1BzI,KAAKM,QAAQ+T,oBAAqBT,EAAaU,SAAStU,KAAKM,QAAQ+T,oBAAwC,qBAATE,MAAyBA,KAAKC,cACtIxU,KAAKM,QAAQ+T,kBAAoB,KACjCrU,KAAKY,OAAO6T,MAAM,uJAEpBzU,KAAK0U,MAtBT,WACE,MAAMA,EAAQ,GASd,OARA1C,EAAK/P,QAAQ0S,IACXA,EAAI/H,KAAK3K,QAAQI,IACfqS,EAAMrS,GAAK,CACTuS,QAASD,EAAI1C,GACb4C,QAAS3C,EAAmByC,EAAI5C,SAI/B2C,EAYQI,GAEf,QAAQ3O,EAAKpC,GACX/D,KAAK0U,MAAMvO,GAAOpC,EAEpB,QAAQ4B,GACN,IAAIrF,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,GAAIP,KAAKoP,mBACP,IACE,OAAO,IAAImF,KAAKC,YAAY9O,EAAeC,GAAO,CAChD7F,KAAMQ,EAAQ8L,QAAU,UAAY,aAEtC,MACA,OAGJ,OAAOpM,KAAK0U,MAAM/O,IAAS3F,KAAK0U,MAAM1U,KAAK8M,cAAcsE,wBAAwBzL,IAEnF,YAAYA,GACV,IAAIrF,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAMwU,EAAO/U,KAAKgV,QAAQrP,EAAMrF,GAChC,OAAIN,KAAKoP,mBACA2F,GAAQA,EAAKE,kBAAkBC,iBAAiB1U,OAAS,EAE3DuU,GAAQA,EAAKH,QAAQpU,OAAS,EAEvC,oBAAoBmF,EAAMtC,GACxB,IAAI/C,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAOP,KAAK0N,YAAY/H,EAAMrF,GAASiJ,IAAIoE,GAAU,GAAGtK,IAAMsK,KAEhE,YAAYhI,GACV,IAAIrF,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAMwU,EAAO/U,KAAKgV,QAAQrP,EAAMrF,GAChC,OAAKyU,EAGD/U,KAAKoP,mBACA2F,EAAKE,kBAAkBC,iBAAiBC,KAAK,CAACC,EAAiBC,IAAoBxB,EAAcuB,GAAmBvB,EAAcwB,IAAkB9L,IAAI+L,GAAkB,GAAGtV,KAAKM,QAAQiV,UAAUjV,EAAQ8L,QAAU,UAAUpM,KAAKM,QAAQiV,QAAY,KAAKD,KAEhQP,EAAKH,QAAQrL,IAAIiM,GAAUxV,KAAKkM,UAAUvG,EAAM6P,EAAQlV,IALtD,GAOX,UAAUqF,EAAMmG,GACd,IAAIxL,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,MAAMwU,EAAO/U,KAAKgV,QAAQrP,EAAMrF,GAChC,OAAIyU,EACE/U,KAAKoP,mBACA,GAAGpP,KAAKM,QAAQiV,UAAUjV,EAAQ8L,QAAU,UAAUpM,KAAKM,QAAQiV,QAAY,KAAKR,EAAKU,OAAO3J,KAElG9L,KAAK0V,yBAAyBX,EAAMjJ,IAE7C9L,KAAKY,OAAO0K,KAAK,6BAA6B3F,GACvC,IAET,yBAAyBoP,EAAMjJ,GAC7B,MAAM6J,EAAMZ,EAAKa,MAAQb,EAAKF,QAAQ/I,GAASiJ,EAAKF,QAAQgB,KAAKC,IAAIhK,IACrE,IAAI6B,EAASoH,EAAKH,QAAQe,GACtB3V,KAAKM,QAAQyV,sBAAgD,IAAxBhB,EAAKH,QAAQpU,QAAoC,IAApBuU,EAAKH,QAAQ,KAClE,IAAXjH,EACFA,EAAS,SACW,IAAXA,IACTA,EAAS,KAGb,MAAMqI,EAAe,IAAMhW,KAAKM,QAAQiV,SAAW5H,EAAOjH,WAAa1G,KAAKM,QAAQiV,QAAU5H,EAAOjH,WAAaiH,EAAOjH,WACzH,MAAuC,OAAnC1G,KAAKM,QAAQ+T,kBACA,IAAX1G,EAAqB,GACH,kBAAXA,EAA4B,WAAWA,EAAOjH,WAClDsP,IACqC,OAAnChW,KAAKM,QAAQ+T,mBAEbrU,KAAKM,QAAQyV,sBAAgD,IAAxBhB,EAAKH,QAAQpU,QAAoC,IAApBuU,EAAKH,QAAQ,GADjFoB,IAIFhW,KAAKM,QAAQiV,SAAWI,EAAIjP,WAAa1G,KAAKM,QAAQiV,QAAUI,EAAIjP,WAAaiP,EAAIjP,WAE9F,mBACE,OAAQiN,EAAgBW,SAAStU,KAAKM,QAAQ+T,oBAIlD,SAAS4B,EAAqB5R,EAAMC,EAAajB,GAC/C,IAAI0B,EAAexE,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,IACnFyF,IAAsBzF,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,KAAmBA,UAAU,GACrF2C,EAAOkB,EAAoBC,EAAMC,EAAajB,GAKlD,OAJKH,GAAQ8C,GAAsC,kBAAR3C,IACzCH,EAAO4B,EAAST,EAAMhB,EAAK0B,QACdtE,IAATyC,IAAoBA,EAAO4B,EAASR,EAAajB,EAAK0B,KAErD7B,EAET,MAAMgT,EACJ,cACE,IAAI5V,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFP,KAAKY,OAASe,EAAW8G,OAAO,gBAChCzI,KAAKM,QAAUA,EACfN,KAAKmW,OAAS7V,EAAQqI,eAAiBrI,EAAQqI,cAAcwN,QAAU,CAAC5R,GAASA,GACjFvE,KAAKU,KAAKJ,GAEZ,OACE,IAAIA,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC7ED,EAAQqI,gBAAerI,EAAQqI,cAAgB,CAClDyN,aAAa,IAEf,MAAMC,EAAQ/V,EAAQqI,cACtB3I,KAAK2E,YAA0BlE,IAAjB4V,EAAM1R,OAAuB0R,EAAM1R,OAASA,EAC1D3E,KAAKoW,iBAAoC3V,IAAtB4V,EAAMD,aAA4BC,EAAMD,YAC3DpW,KAAKsW,yBAAoD7V,IAA9B4V,EAAMC,qBAAoCD,EAAMC,oBAC3EtW,KAAKW,OAAS0V,EAAM1V,OAAS6D,EAAY6R,EAAM1V,QAAU0V,EAAME,eAAiB,KAChFvW,KAAK2N,OAAS0I,EAAM1I,OAASnJ,EAAY6R,EAAM1I,QAAU0I,EAAMG,eAAiB,KAChFxW,KAAKyW,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,iBAAmB,IAChGzW,KAAK0W,eAAiBL,EAAMM,eAAiB,GAAKN,EAAMK,gBAAkB,IAC1E1W,KAAK2W,eAAiB3W,KAAK0W,eAAiB,GAAKL,EAAMM,gBAAkB,GACzE3W,KAAK4W,cAAgBP,EAAMO,cAAgBpS,EAAY6R,EAAMO,eAAiBP,EAAMQ,sBAAwBrS,EAAY,OACxHxE,KAAK8W,cAAgBT,EAAMS,cAAgBtS,EAAY6R,EAAMS,eAAiBT,EAAMU,sBAAwBvS,EAAY,KACxHxE,KAAKgX,wBAA0BX,EAAMW,wBAA0BX,EAAMW,wBAA0BX,EAAMW,yBAA2B,IAChIhX,KAAKiX,YAAcZ,EAAMY,YAAcZ,EAAMY,YAAc,IAC3DjX,KAAKkX,kBAAsCzW,IAAvB4V,EAAMa,cAA6Bb,EAAMa,aAC7DlX,KAAKmX,cAEP,QACMnX,KAAKM,SAASN,KAAKU,KAAKV,KAAKM,SAEnC,cACE,MAAM8W,EAAY,GAAGpX,KAAKW,cAAcX,KAAK2N,SAC7C3N,KAAKqX,OAAS,IAAI/N,OAAO8N,EAAW,KACpC,MAAME,EAAoB,GAAGtX,KAAKW,SAASX,KAAK0W,sBAAsB1W,KAAK2W,iBAAiB3W,KAAK2N,SACjG3N,KAAKuX,eAAiB,IAAIjO,OAAOgO,EAAmB,KACpD,MAAME,EAAmB,GAAGxX,KAAK4W,qBAAqB5W,KAAK8W,gBAC3D9W,KAAK+J,cAAgB,IAAIT,OAAOkO,EAAkB,KAEpD,YAAY/S,EAAKJ,EAAM8B,EAAK7F,GAC1B,IAAIuJ,EACAtF,EACAkT,EACJ,MAAMnT,EAActE,KAAKM,SAAWN,KAAKM,QAAQqI,eAAiB3I,KAAKM,QAAQqI,cAAcqF,kBAAoB,GACjH,SAAS0J,EAAUC,GACjB,OAAOA,EAAIpU,QAAQ,MAAO,QAE5B,MAAMqU,EAAevU,IACnB,GAAIA,EAAIC,QAAQtD,KAAKyW,iBAAmB,EAAG,CACzC,MAAMvT,EAAO+S,EAAqB5R,EAAMC,EAAajB,EAAKrD,KAAKM,QAAQyE,aAAc/E,KAAKM,QAAQ0F,qBAClG,OAAOhG,KAAKkX,aAAelX,KAAKmW,OAAOjT,OAAMzC,EAAW0F,EAAK,IACxD7F,KACA+D,EACHwT,iBAAkBxU,IACfH,EAEP,MAAMkC,EAAI/B,EAAIrB,MAAMhC,KAAKyW,iBACnBzS,EAAIoB,EAAE1B,QAAQoU,OACdC,EAAI3S,EAAEE,KAAKtF,KAAKyW,iBAAiBqB,OACvC,OAAO9X,KAAKmW,OAAOF,EAAqB5R,EAAMC,EAAaN,EAAGhE,KAAKM,QAAQyE,aAAc/E,KAAKM,QAAQ0F,qBAAsB+R,EAAG5R,EAAK,IAC/H7F,KACA+D,EACHwT,iBAAkB7T,KAGtBhE,KAAKmX,cACL,MAAMa,EAA8B1X,GAAWA,EAAQ0X,6BAA+BhY,KAAKM,QAAQ0X,4BAC7F9J,EAAkB5N,GAAWA,EAAQqI,oBAA2DlI,IAA1CH,EAAQqI,cAAcuF,gBAAgC5N,EAAQqI,cAAcuF,gBAAkBlO,KAAKM,QAAQqI,cAAcuF,gBA2CrL,MA1Cc,CAAC,CACb+J,MAAOjY,KAAKuX,eACZW,UAAWP,GAAOD,EAAUC,IAC3B,CACDM,MAAOjY,KAAKqX,OACZa,UAAWP,GAAO3X,KAAKoW,YAAcsB,EAAU1X,KAAK2E,OAAOgT,IAAQD,EAAUC,KAEzE1V,QAAQkW,IAEZ,IADAV,EAAW,EACJ5N,EAAQsO,EAAKF,MAAMG,KAAK3T,IAAM,CACnC,MAAM4T,EAAaxO,EAAM,GAAGiO,OAE5B,GADAvT,EAAQqT,EAAaS,QACP5X,IAAV8D,EACF,GAA2C,oBAAhCyT,EAA4C,CACrD,MAAMM,EAAON,EAA4BvT,EAAKoF,EAAOvJ,GACrDiE,EAAwB,kBAAT+T,EAAoBA,EAAO,QACrC,GAAIhY,GAAWqD,OAAOC,UAAUC,eAAeC,KAAKxD,EAAS+X,GAClE9T,EAAQ,OACH,IAAI2J,EAAiB,CAC1B3J,EAAQsF,EAAM,GACd,SAEA7J,KAAKY,OAAO0K,KAAK,8BAA8B+M,uBAAgC5T,KAC/EF,EAAQ,OAEgB,kBAAVA,GAAuBvE,KAAKsW,sBAC5C/R,EAAQxB,EAAWwB,IAErB,MAAM2T,EAAYC,EAAKD,UAAU3T,GASjC,GARAE,EAAMA,EAAIlB,QAAQsG,EAAM,GAAIqO,GACxBhK,GACFiK,EAAKF,MAAMM,WAAahU,EAAM/D,OAC9B2X,EAAKF,MAAMM,WAAa1O,EAAM,GAAGrJ,QAEjC2X,EAAKF,MAAMM,UAAY,EAEzBd,IACIA,GAAYzX,KAAKiX,YACnB,SAICxS,EAET,KAAKA,EAAKsN,GACR,IACIlI,EACAtF,EACAiU,EAHAlY,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAIlF,SAASkY,EAAiBpV,EAAKqV,GAC7B,MAAMC,EAAM3Y,KAAKgX,wBACjB,GAAI3T,EAAIC,QAAQqV,GAAO,EAAG,OAAOtV,EACjC,MAAM+F,EAAI/F,EAAIrB,MAAM,IAAIsH,OAAUqP,EAAH,UAC/B,IAAIC,EAAgB,IAAIxP,EAAE,GAC1B/F,EAAM+F,EAAE,GACRwP,EAAgB5Y,KAAKqO,YAAYuK,EAAeJ,GAChD,MAAMK,EAAsBD,EAAc/O,MAAM,MAC1CiP,EAAsBF,EAAc/O,MAAM,OAC5CgP,GAAuBA,EAAoBrY,OAAS,IAAM,IAAMsY,GAAuBA,EAAoBtY,OAAS,IAAM,KAC5HoY,EAAgBA,EAAcrV,QAAQ,KAAM,MAE9C,IACEiV,EAAgBO,KAAKhL,MAAM6K,GACvBF,IAAkBF,EAAgB,IACjCE,KACAF,IAEL,MAAOQ,GAEP,OADAhZ,KAAKY,OAAO0K,KAAK,oDAAoDjI,EAAO2V,GACrE,GAAG3V,IAAMsV,IAAMC,IAGxB,cADOJ,EAAcnM,aACdhJ,EAET,KAAOwG,EAAQ7J,KAAK+J,cAAcqO,KAAK3T,IAAM,CAC3C,IAAIwU,EAAa,GACjBT,EAAgB,IACXlY,GAELkY,EAAgBA,EAAcjV,SAA4C,kBAA1BiV,EAAcjV,QAAuBiV,EAAcjV,QAAUiV,EAC7GA,EAAc5J,oBAAqB,SAC5B4J,EAAcnM,aACrB,IAAI6M,GAAW,EACf,IAAgD,IAA5CrP,EAAM,GAAGvG,QAAQtD,KAAKyW,mBAA4B,OAAOhN,KAAKI,EAAM,IAAK,CAC3E,MAAMR,EAAIQ,EAAM,GAAG7H,MAAMhC,KAAKyW,iBAAiBlN,IAAI4P,GAAQA,EAAKrB,QAChEjO,EAAM,GAAKR,EAAE3F,QACbuV,EAAa5P,EACb6P,GAAW,EAGb,GADA3U,EAAQwN,EAAG0G,EAAiB3U,KAAK9D,KAAM6J,EAAM,GAAGiO,OAAQU,GAAgBA,GACpEjU,GAASsF,EAAM,KAAOpF,GAAwB,kBAAVF,EAAoB,OAAOA,EAC9C,kBAAVA,IAAoBA,EAAQxB,EAAWwB,IAC7CA,IACHvE,KAAKY,OAAO0K,KAAK,qBAAqBzB,EAAM,kBAAkBpF,KAC9DF,EAAQ,IAEN2U,IACF3U,EAAQ0U,EAAWG,OAAO,CAACzR,EAAGoQ,IAAM/X,KAAKmW,OAAOxO,EAAGoQ,EAAGzX,EAAQ6F,IAAK,IAC9D7F,EACHuX,iBAAkBhO,EAAM,GAAGiO,SACzBvT,EAAMuT,SAEZrT,EAAMA,EAAIlB,QAAQsG,EAAM,GAAItF,GAC5BvE,KAAKqX,OAAOkB,UAAY,EAE1B,OAAO9T,GAiCX,SAAS4U,EAAsBC,GAC7B,MAAMC,EAAQ,GACd,OAAO,SAAyB5B,EAAKxR,EAAK7F,GACxC,MAAM+C,EAAM8C,EAAM4S,KAAKS,UAAUlZ,GACjC,IAAImZ,EAAYF,EAAMlW,GAKtB,OAJKoW,IACHA,EAAYH,EAAG5T,EAAeS,GAAM7F,GACpCiZ,EAAMlW,GAAOoW,GAERA,EAAU9B,IAGrB,MAAM+B,EACJ,cACE,IAAIpZ,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFP,KAAKY,OAASe,EAAW8G,OAAO,aAChCzI,KAAKM,QAAUA,EACfN,KAAK2Z,QAAU,CACbnE,OAAQ6D,EAAsB,CAAClT,EAAKyT,KAClC,MAAMH,EAAY,IAAIlF,KAAKsF,aAAa1T,EAAK,IACxCyT,IAEL,OAAOjC,GAAO8B,EAAUtD,OAAOwB,KAEjCmC,SAAUT,EAAsB,CAAClT,EAAKyT,KACpC,MAAMH,EAAY,IAAIlF,KAAKsF,aAAa1T,EAAK,IACxCyT,EACHG,MAAO,aAET,OAAOpC,GAAO8B,EAAUtD,OAAOwB,KAEjCqC,SAAUX,EAAsB,CAAClT,EAAKyT,KACpC,MAAMH,EAAY,IAAIlF,KAAK0F,eAAe9T,EAAK,IAC1CyT,IAEL,OAAOjC,GAAO8B,EAAUtD,OAAOwB,KAEjCuC,aAAcb,EAAsB,CAAClT,EAAKyT,KACxC,MAAMH,EAAY,IAAIlF,KAAK4F,mBAAmBhU,EAAK,IAC9CyT,IAEL,OAAOjC,GAAO8B,EAAUtD,OAAOwB,EAAKiC,EAAIQ,OAAS,SAEnDC,KAAMhB,EAAsB,CAAClT,EAAKyT,KAChC,MAAMH,EAAY,IAAIlF,KAAK+F,WAAWnU,EAAK,IACtCyT,IAEL,OAAOjC,GAAO8B,EAAUtD,OAAOwB,MAGnC3X,KAAKU,KAAKJ,GAEZ,KAAK+H,GAIH,MAAMgO,GAHQ9V,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAChFoI,cAAe,KAEKA,cACtB3I,KAAKyW,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,iBAAmB,IAElG,IAAI1O,EAAMgK,GACR/R,KAAK2Z,QAAQ5R,EAAKyC,cAAcsN,QAAU/F,EAE5C,UAAUhK,EAAMgK,GACd/R,KAAK2Z,QAAQ5R,EAAKyC,cAAcsN,QAAUuB,EAAsBtH,GAElE,OAAOxN,EAAO4R,EAAQhQ,GACpB,IAAI7F,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GA0BlF,OAzBgB4V,EAAOnU,MAAMhC,KAAKyW,iBACX2C,OAAO,CAACmB,EAAKxC,KAClC,MAAM,WACJyC,EAAU,cACVC,GApGR,SAAwBC,GACtB,IAAIF,EAAaE,EAAUlQ,cAAcsN,OACzC,MAAM2C,EAAgB,GACtB,GAAIC,EAAUpX,QAAQ,MAAQ,EAAG,CAC/B,MAAM8B,EAAIsV,EAAU1Y,MAAM,KAC1BwY,EAAapV,EAAE,GAAGoF,cAAcsN,OAChC,MAAM6C,EAASvV,EAAE,GAAGuE,UAAU,EAAGvE,EAAE,GAAG5E,OAAS,GAC/C,GAAmB,aAAfga,GAA6BG,EAAOrX,QAAQ,KAAO,EAChDmX,EAAcX,WAAUW,EAAcX,SAAWa,EAAO7C,aACxD,GAAmB,iBAAf0C,GAAiCG,EAAOrX,QAAQ,KAAO,EAC3DmX,EAAcL,QAAOK,EAAcL,MAAQO,EAAO7C,YAClD,CACQ6C,EAAO3Y,MAAM,KACrBC,QAAQ2X,IACX,IAAKA,EAAK,OACV,MAAOvW,KAAQuX,GAAQhB,EAAI5X,MAAM,KAC3B2V,EAAMiD,EAAKtV,KAAK,KAAKwS,OAAOvU,QAAQ,WAAY,IACjDkX,EAAcpX,EAAIyU,UAAS2C,EAAcpX,EAAIyU,QAAUH,GAChD,UAARA,IAAiB8C,EAAcpX,EAAIyU,SAAU,GACrC,SAARH,IAAgB8C,EAAcpX,EAAIyU,SAAU,GAC3C+C,MAAMlD,KAAM8C,EAAcpX,EAAIyU,QAAUgD,SAASnD,EAAK,QAIjE,MAAO,CACL6C,aACAC,iBA2EMM,CAAehD,GACnB,GAAI/X,KAAK2Z,QAAQa,GAAa,CAC5B,IAAIQ,EAAYT,EAChB,IACE,MAAMU,EAAa3a,GAAWA,EAAQ4a,cAAgB5a,EAAQ4a,aAAa5a,EAAQuX,mBAAqB,GAClGxV,EAAI4Y,EAAWE,QAAUF,EAAW9U,KAAO7F,EAAQ6a,QAAU7a,EAAQ6F,KAAOA,EAClF6U,EAAYhb,KAAK2Z,QAAQa,GAAYD,EAAKlY,EAAG,IACxCoY,KACAna,KACA2a,IAEL,MAAOxG,GACPzU,KAAKY,OAAO0K,KAAKmJ,GAEnB,OAAOuG,EAIT,OAFEhb,KAAKY,OAAO0K,KAAK,oCAAoCkP,GAEhDD,GACNhW,IAWP,MAAM6W,UAAkBxZ,EACtB,YAAYyZ,EAASC,EAAOjT,GAC1B,IAAI/H,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClFwF,QACA/F,KAAKqb,QAAUA,EACfrb,KAAKsb,MAAQA,EACbtb,KAAKqI,SAAWA,EAChBrI,KAAK8M,cAAgBzE,EAASyE,cAC9B9M,KAAKM,QAAUA,EACfN,KAAKY,OAASe,EAAW8G,OAAO,oBAChCzI,KAAKub,aAAe,GACpBvb,KAAKwb,iBAAmBlb,EAAQkb,kBAAoB,GACpDxb,KAAKyb,aAAe,EACpBzb,KAAK0b,WAAapb,EAAQob,YAAc,EAAIpb,EAAQob,WAAa,EACjE1b,KAAK2b,aAAerb,EAAQqb,cAAgB,EAAIrb,EAAQqb,aAAe,IACvE3b,KAAK4b,MAAQ,GACb5b,KAAK6b,MAAQ,GACT7b,KAAKqb,SAAWrb,KAAKqb,QAAQ3a,MAC/BV,KAAKqb,QAAQ3a,KAAK2H,EAAU/H,EAAQ+a,QAAS/a,GAGjD,UAAUwb,EAAWhT,EAAYxI,EAASyb,GACxC,MAAMC,EAAS,GACTC,EAAU,GACVC,EAAkB,GAClBC,EAAmB,GA4BzB,OA3BAL,EAAU7Z,QAAQkE,IAChB,IAAIiW,GAAmB,EACvBtT,EAAW7G,QAAQ4D,IACjB,MAAMkC,EAAO,GAAG5B,KAAON,KAClBvF,EAAQ+b,QAAUrc,KAAKsb,MAAMlU,kBAAkBjB,EAAKN,GACvD7F,KAAK4b,MAAM7T,GAAQ,EACV/H,KAAK4b,MAAM7T,GAAQ,IAAmC,IAArB/H,KAAK4b,MAAM7T,QAC/BtH,IAAlBwb,EAAQlU,KAAqBkU,EAAQlU,IAAQ,IAEjD/H,KAAK4b,MAAM7T,GAAQ,EACnBqU,GAAmB,OACG3b,IAAlBwb,EAAQlU,KAAqBkU,EAAQlU,IAAQ,QAC5BtH,IAAjBub,EAAOjU,KAAqBiU,EAAOjU,IAAQ,QAClBtH,IAAzB0b,EAAiBtW,KAAmBsW,EAAiBtW,IAAM,OAG9DuW,IAAkBF,EAAgB/V,IAAO,MAE5CxC,OAAO8D,KAAKuU,GAAQxb,QAAUmD,OAAO8D,KAAKwU,GAASzb,SACrDR,KAAK6b,MAAM1Z,KAAK,CACd8Z,UACAK,aAAc3Y,OAAO8D,KAAKwU,GAASzb,OACnC+b,OAAQ,GACRC,OAAQ,GACRT,aAGG,CACLC,OAAQrY,OAAO8D,KAAKuU,GACpBC,QAAStY,OAAO8D,KAAKwU,GACrBC,gBAAiBvY,OAAO8D,KAAKyU,GAC7BC,iBAAkBxY,OAAO8D,KAAK0U,IAGlC,OAAOpU,EAAM0U,EAAKpY,GAChB,MAAMO,EAAImD,EAAK/F,MAAM,KACfmE,EAAMvB,EAAE,GACRiB,EAAKjB,EAAE,GACT6X,GAAKzc,KAAKuG,KAAK,gBAAiBJ,EAAKN,EAAI4W,GACzCpY,GACFrE,KAAKsb,MAAMoB,kBAAkBvW,EAAKN,EAAIxB,GAExCrE,KAAK4b,MAAM7T,GAAQ0U,GAAO,EAAI,EAC9B,MAAMF,EAAS,GACfvc,KAAK6b,MAAM5Z,QAAQ0a,KAp3CvB,SAAkB3Z,EAAQE,EAAMgB,EAAU5B,GACxC,MAAM,IACJyB,EAAG,EACHC,GACEf,EAAcD,EAAQE,EAAMS,QAChCI,EAAIC,GAAKD,EAAIC,IAAM,GACf1B,IAAQyB,EAAIC,GAAKD,EAAIC,GAAG1B,OAAO4B,IAC9B5B,GAAQyB,EAAIC,GAAG7B,KAAK+B,GA82CrB0Y,CAASD,EAAEJ,OAAQ,CAACpW,GAAMN,GA7EhC,SAAuB8W,EAAG5U,QACAtH,IAApBkc,EAAEV,QAAQlU,YACL4U,EAAEV,QAAQlU,GACjB4U,EAAEL,gBA2EAO,CAAcF,EAAG5U,GACb0U,GAAKE,EAAEH,OAAOra,KAAKsa,GACA,IAAnBE,EAAEL,cAAuBK,EAAEG,OAC7BnZ,OAAO8D,KAAKkV,EAAEJ,QAAQta,QAAQI,IACvBka,EAAOla,KAAIka,EAAOla,GAAK,IAC5B,MAAM0a,EAAaJ,EAAEJ,OAAOla,GACxB0a,EAAWvc,QACbuc,EAAW9a,QAAQmQ,SACI3R,IAAjB8b,EAAOla,GAAG+P,KAAkBmK,EAAOla,GAAG+P,IAAK,OAIrDuK,EAAEG,MAAO,EACLH,EAAEH,OAAOhc,OACXmc,EAAEZ,SAASY,EAAEH,QAEbG,EAAEZ,cAIR/b,KAAKuG,KAAK,SAAUgW,GACpBvc,KAAK6b,MAAQ7b,KAAK6b,MAAMzZ,OAAOua,IAAMA,EAAEG,MAEzC,KAAK3W,EAAKN,EAAImX,GACZ,IAAIC,EAAQ1c,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,EAC5E2c,EAAO3c,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAKP,KAAK2b,aAChFI,EAAWxb,UAAUC,OAAS,EAAID,UAAU,QAAKE,EACrD,IAAK0F,EAAI3F,OAAQ,OAAOub,EAAS,KAAM,IACvC,GAAI/b,KAAKyb,cAAgBzb,KAAKwb,iBAS5B,YARAxb,KAAKub,aAAapZ,KAAK,CACrBgE,MACAN,KACAmX,SACAC,QACAC,OACAnB,aAIJ/b,KAAKyb,eACL,MAAM0B,EAAW,CAACV,EAAKpY,KAErB,GADArE,KAAKyb,eACDzb,KAAKub,aAAa/a,OAAS,EAAG,CAChC,MAAM4c,EAAOpd,KAAKub,aAAa7X,QAC/B1D,KAAKqd,KAAKD,EAAKjX,IAAKiX,EAAKvX,GAAIuX,EAAKJ,OAAQI,EAAKH,MAAOG,EAAKF,KAAME,EAAKrB,UAEpEU,GAAOpY,GAAQ4Y,EAAQjd,KAAK0b,WAC9B4B,WAAW,KACTtd,KAAKqd,KAAKvZ,KAAK9D,KAAMmG,EAAKN,EAAImX,EAAQC,EAAQ,EAAU,EAAPC,EAAUnB,IAC1DmB,GAGLnB,EAASU,EAAKpY,IAEV0N,EAAK/R,KAAKqb,QAAQ2B,GAAQO,KAAKvd,KAAKqb,SAC1C,GAAkB,IAAdtJ,EAAGvR,OAaP,OAAOuR,EAAG5L,EAAKN,EAAIsX,GAZjB,IACE,MAAM9T,EAAI0I,EAAG5L,EAAKN,GACdwD,GAAuB,oBAAXA,EAAEmU,KAChBnU,EAAEmU,KAAKnZ,GAAQ8Y,EAAS,KAAM9Y,IAAOoZ,MAAMN,GAE3CA,EAAS,KAAM9T,GAEjB,MAAOoT,GACPU,EAASV,IAMf,eAAeX,EAAWhT,GACxB,IAAIxI,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewb,EAAWxb,UAAUC,OAAS,EAAID,UAAU,QAAKE,EACrD,IAAKT,KAAKqb,QAER,OADArb,KAAKY,OAAO0K,KAAK,kEACVyQ,GAAYA,IAEI,kBAAdD,IAAwBA,EAAY9b,KAAK8M,cAAcI,mBAAmB4O,IAC3D,kBAAfhT,IAAyBA,EAAa,CAACA,IAClD,MAAMkT,EAAShc,KAAK0d,UAAU5B,EAAWhT,EAAYxI,EAASyb,GAC9D,IAAKC,EAAOA,OAAOxb,OAEjB,OADKwb,EAAOC,QAAQzb,QAAQub,IACrB,KAETC,EAAOA,OAAO/Z,QAAQ8F,IACpB/H,KAAK2d,QAAQ5V,KAGjB,KAAK+T,EAAWhT,EAAYiT,GAC1B/b,KAAK4d,eAAe9B,EAAWhT,EAAY,GAAIiT,GAEjD,OAAOD,EAAWhT,EAAYiT,GAC5B/b,KAAK4d,eAAe9B,EAAWhT,EAAY,CACzCuT,QAAQ,GACPN,GAEL,QAAQhU,GACN,IAAIpH,EAASJ,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAMqE,EAAImD,EAAK/F,MAAM,KACfmE,EAAMvB,EAAE,GACRiB,EAAKjB,EAAE,GACb5E,KAAKqd,KAAKlX,EAAKN,EAAI,YAAQpF,OAAWA,EAAW,CAACgc,EAAKpY,KACjDoY,GAAKzc,KAAKY,OAAO0K,KAAK,GAAG3K,sBAA2BkF,kBAAmBM,WAAcsW,IACpFA,GAAOpY,GAAMrE,KAAKY,OAAO8L,IAAI,GAAG/L,qBAA0BkF,kBAAmBM,IAAO9B,GACzFrE,KAAKuc,OAAOxU,EAAM0U,EAAKpY,KAG3B,YAAYyX,EAAWxR,EAAWjH,EAAKwa,EAAeC,GACpD,IAAIxd,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewd,EAAMxd,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,OAC9E,GAAIP,KAAKqI,SAASkH,OAASvP,KAAKqI,SAASkH,MAAMC,qBAAuBxP,KAAKqI,SAASkH,MAAMC,mBAAmBlF,GAC3GtK,KAAKY,OAAO0K,KAAK,qBAAqBjI,wBAA0BiH,wBAAiC,iOAGnG,QAAY7J,IAAR4C,GAA6B,OAARA,GAAwB,KAARA,EAAzC,CACA,GAAIrD,KAAKqb,SAAWrb,KAAKqb,QAAQ5S,OAAQ,CACvC,MAAMuV,EAAO,IACR1d,EACHwd,YAEI/L,EAAK/R,KAAKqb,QAAQ5S,OAAO8U,KAAKvd,KAAKqb,SACzC,GAAItJ,EAAGvR,OAAS,EACd,IACE,IAAI6I,EAEFA,EADgB,IAAd0I,EAAGvR,OACDuR,EAAG+J,EAAWxR,EAAWjH,EAAKwa,EAAeG,GAE7CjM,EAAG+J,EAAWxR,EAAWjH,EAAKwa,GAEhCxU,GAAuB,oBAAXA,EAAEmU,KAChBnU,EAAEmU,KAAKnZ,GAAQ0Z,EAAI,KAAM1Z,IAAOoZ,MAAMM,GAEtCA,EAAI,KAAM1U,GAEZ,MAAOoT,GACPsB,EAAItB,QAGN1K,EAAG+J,EAAWxR,EAAWjH,EAAKwa,EAAeE,EAAKC,GAGjDlC,GAAcA,EAAU,IAC7B9b,KAAKsb,MAAM3U,YAAYmV,EAAU,GAAIxR,EAAWjH,EAAKwa,KAIzD,SAASI,IACP,MAAO,CACLpd,OAAO,EACPqd,eAAe,EACfrY,GAAI,CAAC,eACLC,UAAW,CAAC,eACZkH,YAAa,CAAC,OACdkC,YAAY,EACZ0B,eAAe,EACfO,0BAA0B,EAC1BD,KAAM,MACNiN,SAAS,EACTpI,sBAAsB,EACtBhR,aAAc,IACd8D,YAAa,IACbgH,gBAAiB,IACjBG,iBAAkB,IAClBoO,yBAAyB,EACzB5Q,aAAa,EACbf,eAAe,EACfQ,cAAe,WACfQ,oBAAoB,EACpBH,mBAAmB,EACnB0K,6BAA6B,EAC7BtJ,aAAa,EACbI,yBAAyB,EACzBqB,YAAY,EACZC,mBAAmB,EACnBhF,eAAe,EACfJ,YAAY,EACZK,uBAAuB,EACvBwC,wBAAwB,EACxBD,6BAA6B,EAC7BrD,yBAAyB,EACzBL,iCAAkC,SAAgBnK,GAChD,IAAIse,EAAM,GAIV,GAHuB,kBAAZte,EAAK,KAAiBse,EAAMte,EAAK,IACrB,kBAAZA,EAAK,KAAiBse,EAAIhS,aAAetM,EAAK,IAClC,kBAAZA,EAAK,KAAiBse,EAAIC,aAAeve,EAAK,IAClC,kBAAZA,EAAK,IAAsC,kBAAZA,EAAK,GAAiB,CAC9D,MAAMO,EAAUP,EAAK,IAAMA,EAAK,GAChC4D,OAAO8D,KAAKnH,GAAS2B,QAAQoB,IAC3Bgb,EAAIhb,GAAO/C,EAAQ+C,KAGvB,OAAOgb,GAET1V,cAAe,CACbyN,aAAa,EACbD,OAAQ,CAAC5R,EAAO4R,EAAQhQ,EAAK7F,IAAYiE,EACzC5D,OAAQ,KACRgN,OAAQ,KACR8I,gBAAiB,IACjBC,eAAgB,IAChBE,cAAe,MACfE,cAAe,IACfE,wBAAyB,IACzBC,YAAa,IACb/I,iBAAiB,IAIvB,SAASqQ,EAAiBje,GAOxB,MAN0B,kBAAfA,EAAQuF,KAAiBvF,EAAQuF,GAAK,CAACvF,EAAQuF,KACvB,kBAAxBvF,EAAQ0M,cAA0B1M,EAAQ0M,YAAc,CAAC1M,EAAQ0M,cAC1C,kBAAvB1M,EAAQ4O,aAAyB5O,EAAQ4O,WAAa,CAAC5O,EAAQ4O,aACtE5O,EAAQsQ,eAAiBtQ,EAAQsQ,cAActN,QAAQ,UAAY,IACrEhD,EAAQsQ,cAAgBtQ,EAAQsQ,cAActO,OAAO,CAAC,YAEjDhC,EAGT,SAASke,KAST,MAAMC,UAAa7c,EACjB,cACE,IAAItB,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewb,EAAWxb,UAAUC,OAAS,EAAID,UAAU,QAAKE,EAXzD,IAA6Bie,EAoBzB,GARA3Y,QACA/F,KAAKM,QAAUie,EAAiBje,GAChCN,KAAKqI,SAAW,GAChBrI,KAAKY,OAASe,EACd3B,KAAK2e,QAAU,CACbC,SAAU,IAjBaF,EAmBL1e,KAlBT2D,OAAOkb,oBAAoBlb,OAAOmb,eAAeJ,IACzDzc,QAAQsY,IACc,oBAAdmE,EAAKnE,KACdmE,EAAKnE,GAAOmE,EAAKnE,GAAKgD,KAAKmB,MAgBzB3C,IAAa/b,KAAK+e,gBAAkBze,EAAQ0e,QAAS,CACvD,IAAKhf,KAAKM,QAAQ4d,cAEhB,OADAle,KAAKU,KAAKJ,EAASyb,GACZ/b,KAETsd,WAAW,KACTtd,KAAKU,KAAKJ,EAASyb,IAClB,IAGP,OACE,IAAIjO,EAAQ9N,KACZ,IAAIM,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewb,EAAWxb,UAAUC,OAAS,EAAID,UAAU,QAAKE,EAC9B,oBAAZH,IACTyb,EAAWzb,EACXA,EAAU,KAEPA,EAAQwF,YAAmC,IAAtBxF,EAAQwF,WAAuBxF,EAAQuF,KACrC,kBAAfvF,EAAQuF,GACjBvF,EAAQwF,UAAYxF,EAAQuF,GACnBvF,EAAQuF,GAAGvC,QAAQ,eAAiB,IAC7ChD,EAAQwF,UAAYxF,EAAQuF,GAAG,KAGnC,MAAMoZ,EAAUhB,IAkBhB,SAASiB,EAAoBC,GAC3B,OAAKA,EACwB,oBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,KAI7B,GAtBAnf,KAAKM,QAAU,IACV2e,KACAjf,KAAKM,WACLie,EAAiBje,IAEgB,OAAlCN,KAAKM,QAAQiH,mBACfvH,KAAKM,QAAQqI,cAAgB,IACxBsW,EAAQtW,iBACR3I,KAAKM,QAAQqI,qBAGSlI,IAAzBH,EAAQyE,eACV/E,KAAKM,QAAQ2I,wBAA0B3I,EAAQyE,mBAErBtE,IAAxBH,EAAQuI,cACV7I,KAAKM,QAAQ4I,uBAAyB5I,EAAQuI,cAO3C7I,KAAKM,QAAQ0e,QAAS,CAMzB,IAAIvF,EALAzZ,KAAK2e,QAAQ/d,OACfe,EAAWjB,KAAKwe,EAAoBlf,KAAK2e,QAAQ/d,QAASZ,KAAKM,SAE/DqB,EAAWjB,KAAK,KAAMV,KAAKM,SAGzBN,KAAK2e,QAAQlF,UACfA,EAAYzZ,KAAK2e,QAAQlF,UACA,qBAATlF,OAChBkF,EAAYC,GAEd,MAAM0F,EAAK,IAAIzO,EAAa3Q,KAAKM,SACjCN,KAAKsb,MAAQ,IAAI1V,EAAc5F,KAAKM,QAAQkG,UAAWxG,KAAKM,SAC5D,MAAMsE,EAAI5E,KAAKqI,SACfzD,EAAEhE,OAASe,EACXiD,EAAEyL,cAAgBrQ,KAAKsb,MACvB1W,EAAEkI,cAAgBsS,EAClBxa,EAAEqH,eAAiB,IAAImI,EAAegL,EAAI,CACxC7J,QAASvV,KAAKM,QAAQuP,gBACtBwE,kBAAmBrU,KAAKM,QAAQ+T,kBAChC0B,qBAAsB/V,KAAKM,QAAQyV,wBAEjC0D,GAAezZ,KAAKM,QAAQqI,cAAcwN,QAAUnW,KAAKM,QAAQqI,cAAcwN,SAAW8I,EAAQtW,cAAcwN,SAClHvR,EAAE6U,UAAYyF,EAAoBzF,GAClC7U,EAAE6U,UAAU/Y,KAAKkE,EAAG5E,KAAKM,SACzBN,KAAKM,QAAQqI,cAAcwN,OAASvR,EAAE6U,UAAUtD,OAAOoH,KAAK3Y,EAAE6U,YAEhE7U,EAAEkF,aAAe,IAAIoM,EAAalW,KAAKM,SACvCsE,EAAE2K,MAAQ,CACRC,mBAAoBxP,KAAKwP,mBAAmB+N,KAAKvd,OAEnD4E,EAAE2I,iBAAmB,IAAI6N,EAAU8D,EAAoBlf,KAAK2e,QAAQtD,SAAUzW,EAAEyL,cAAezL,EAAG5E,KAAKM,SACvGsE,EAAE2I,iBAAiB8R,GAAG,KAAK,SAAUnd,GACnC,IAAK,IAAIpB,EAAOP,UAAUC,OAAQT,EAAO,IAAIgB,MAAMD,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGjB,EAAKiB,EAAO,GAAKT,UAAUS,GAE7B8M,EAAMvH,KAAKrE,KAAUnC,MAEnBC,KAAK2e,QAAQW,mBACf1a,EAAE0a,iBAAmBJ,EAAoBlf,KAAK2e,QAAQW,kBAClD1a,EAAE0a,iBAAiB5e,MAAMkE,EAAE0a,iBAAiB5e,KAAKkE,EAAG5E,KAAKM,QAAQif,UAAWvf,KAAKM,UAEnFN,KAAK2e,QAAQzT,aACftG,EAAEsG,WAAagU,EAAoBlf,KAAK2e,QAAQzT,YAC5CtG,EAAEsG,WAAWxK,MAAMkE,EAAEsG,WAAWxK,KAAKV,OAE3CA,KAAKgI,WAAa,IAAII,EAAWpI,KAAKqI,SAAUrI,KAAKM,SACrDN,KAAKgI,WAAWqX,GAAG,KAAK,SAAUnd,GAChC,IAAK,IAAIhB,EAAQX,UAAUC,OAAQT,EAAO,IAAIgB,MAAMG,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGpB,EAAKoB,EAAQ,GAAKZ,UAAUY,GAE9B2M,EAAMvH,KAAKrE,KAAUnC,MAEvBC,KAAK2e,QAAQC,SAAS3c,QAAQwE,IACxBA,EAAE/F,MAAM+F,EAAE/F,KAAKV,QAKvB,GAFAA,KAAKmW,OAASnW,KAAKM,QAAQqI,cAAcwN,OACpC4F,IAAUA,EAAWyC,GACtBxe,KAAKM,QAAQ0M,cAAgBhN,KAAKqI,SAASiX,mBAAqBtf,KAAKM,QAAQ6F,IAAK,CACpF,MAAMmJ,EAAQtP,KAAKqI,SAASyE,cAAcC,iBAAiB/M,KAAKM,QAAQ0M,aACpEsC,EAAM9O,OAAS,GAAkB,QAAb8O,EAAM,KAActP,KAAKM,QAAQ6F,IAAMmJ,EAAM,IAElEtP,KAAKqI,SAASiX,kBAAqBtf,KAAKM,QAAQ6F,KACnDnG,KAAKY,OAAO0K,KAAK,2DAEF,CAAC,cAAe,oBAAqB,oBAAqB,qBAClErJ,QAAQ+a,IACfhd,KAAKgd,GAAU,WACb,OAAOlP,EAAMwN,MAAM0B,MAAWzc,cAGV,CAAC,cAAe,eAAgB,oBAAqB,wBAC7D0B,QAAQ+a,IACtBhd,KAAKgd,GAAU,WAEb,OADAlP,EAAMwN,MAAM0B,MAAWzc,WAChBuN,KAGX,MAAM0R,EAAWhd,IACX0O,EAAO,KACX,MAAMuO,EAAS,CAAChD,EAAKlU,KACfvI,KAAK+e,gBAAkB/e,KAAK0f,sBAAsB1f,KAAKY,OAAO0K,KAAK,yEACvEtL,KAAK+e,eAAgB,EAChB/e,KAAKM,QAAQ0e,SAAShf,KAAKY,OAAO8L,IAAI,cAAe1M,KAAKM,SAC/DN,KAAKuG,KAAK,cAAevG,KAAKM,SAC9Bkf,EAAS3c,QAAQ0F,GACjBwT,EAASU,EAAKlU,IAEhB,GAAIvI,KAAK8b,WAA+C,OAAlC9b,KAAKM,QAAQiH,mBAA8BvH,KAAK+e,cAAe,OAAOU,EAAO,KAAMzf,KAAKuI,EAAEgV,KAAKvd,OACrHA,KAAK2f,eAAe3f,KAAKM,QAAQ6F,IAAKsZ,IAOxC,OALIzf,KAAKM,QAAQkG,YAAcxG,KAAKM,QAAQ4d,cAC1ChN,IAEAoM,WAAWpM,EAAM,GAEZsO,EAET,cAAc9W,GACZ,IACIkX,EADWrf,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAKie,EAEnF,MAAM7T,EAA8B,kBAAbjC,EAAwBA,EAAW1I,KAAK0I,SAE/D,GADwB,oBAAbA,IAAyBkX,EAAelX,IAC9C1I,KAAKM,QAAQkG,WAAaxG,KAAKM,QAAQ8d,wBAAyB,CACnE,GAAIzT,GAAqC,WAA1BA,EAAQH,cAA4B,OAAOoV,IAC1D,MAAM5D,EAAS,GACT6D,EAAS1Z,IACb,IAAKA,EAAK,OACGnG,KAAKqI,SAASyE,cAAcI,mBAAmB/G,GACvDlE,QAAQI,IACP2Z,EAAO1Y,QAAQjB,GAAK,GAAG2Z,EAAO7Z,KAAKE,MAG3C,GAAKsI,EAIHkV,EAAOlV,OAJK,CACM3K,KAAKqI,SAASyE,cAAcC,iBAAiB/M,KAAKM,QAAQ0M,aAClE/K,QAAQI,GAAKwd,EAAOxd,IAI5BrC,KAAKM,QAAQ6d,SACfne,KAAKM,QAAQ6d,QAAQlc,QAAQI,GAAKwd,EAAOxd,IAE3CrC,KAAKqI,SAASkF,iBAAiB2D,KAAK8K,EAAQhc,KAAKM,QAAQuF,GAAImT,IACtDA,GAAMhZ,KAAK8f,mBAAoB9f,KAAK0I,UAAU1I,KAAK+f,oBAAoB/f,KAAK0I,UACjFkX,EAAa5G,UAGf4G,EAAa,MAGjB,gBAAgBhT,EAAM/G,EAAIkW,GACxB,MAAMyD,EAAWhd,IAQjB,OAPKoK,IAAMA,EAAO5M,KAAK8b,WAClBjW,IAAIA,EAAK7F,KAAKM,QAAQuF,IACtBkW,IAAUA,EAAWyC,GAC1Bxe,KAAKqI,SAASkF,iBAAiB8O,OAAOzP,EAAM/G,EAAI4W,IAC9C+C,EAAS3c,UACTkZ,EAASU,KAEJ+C,EAET,IAAI1X,GACF,IAAKA,EAAQ,MAAM,IAAIkY,MAAM,iGAC7B,IAAKlY,EAAOhI,KAAM,MAAM,IAAIkgB,MAAM,4FAsBlC,MArBoB,YAAhBlY,EAAOhI,OACTE,KAAK2e,QAAQtD,QAAUvT,IAEL,WAAhBA,EAAOhI,MAAqBgI,EAAO4E,KAAO5E,EAAOwD,MAAQxD,EAAO2M,SAClEzU,KAAK2e,QAAQ/d,OAASkH,GAEJ,qBAAhBA,EAAOhI,OACTE,KAAK2e,QAAQW,iBAAmBxX,GAEd,eAAhBA,EAAOhI,OACTE,KAAK2e,QAAQzT,WAAapD,GAER,kBAAhBA,EAAOhI,MACT8H,EAAcqY,iBAAiBnY,GAEb,cAAhBA,EAAOhI,OACTE,KAAK2e,QAAQlF,UAAY3R,GAEP,aAAhBA,EAAOhI,MACTE,KAAK2e,QAAQC,SAASzc,KAAK2F,GAEtB9H,KAET,oBAAoBqC,GAClB,GAAKA,GAAMrC,KAAK8b,aACZ,CAAC,SAAU,OAAOxY,QAAQjB,IAAM,GACpC,IAAK,IAAI6d,EAAK,EAAGA,EAAKlgB,KAAK8b,UAAUtb,OAAQ0f,IAAM,CACjD,MAAMC,EAAYngB,KAAK8b,UAAUoE,GACjC,KAAI,CAAC,SAAU,OAAO5c,QAAQ6c,IAAc,IACxCngB,KAAKsb,MAAM8E,4BAA4BD,GAAY,CACrDngB,KAAK8f,iBAAmBK,EACxB,QAIN,eAAeha,EAAK4V,GAClB,IAAIsE,EAASrgB,KACbA,KAAKsgB,qBAAuBna,EAC5B,MAAMqZ,EAAWhd,IACjBxC,KAAKuG,KAAK,mBAAoBJ,GAC9B,MAAMoa,EAAcle,IAClBrC,KAAK0I,SAAWrG,EAChBrC,KAAK8b,UAAY9b,KAAKqI,SAASyE,cAAcI,mBAAmB7K,GAChErC,KAAK8f,sBAAmBrf,EACxBT,KAAK+f,oBAAoB1d,IAErBya,EAAO,CAACL,EAAKpa,KACbA,GACFke,EAAYle,GACZrC,KAAKgI,WAAW2X,eAAetd,GAC/BrC,KAAKsgB,0BAAuB7f,EAC5BT,KAAKuG,KAAK,kBAAmBlE,GAC7BrC,KAAKY,OAAO8L,IAAI,kBAAmBrK,IAEnCrC,KAAKsgB,0BAAuB7f,EAE9B+e,EAAS3c,SAAQ,WACf,OAAOwd,EAAO9X,KAAKhI,cAEjBwb,GAAUA,EAASU,GAAK,WAC1B,OAAO4D,EAAO9X,KAAKhI,eAGjBigB,EAAS5T,IACRzG,GAAQyG,IAAQ5M,KAAKqI,SAASiX,mBAAkB1S,EAAO,IAC5D,MAAMvK,EAAoB,kBAATuK,EAAoBA,EAAO5M,KAAKqI,SAASyE,cAAc2T,sBAAsB7T,GAC1FvK,IACGrC,KAAK0I,UACR6X,EAAYle,GAETrC,KAAKgI,WAAWU,UAAU1I,KAAKgI,WAAW2X,eAAetd,GAC1DrC,KAAKqI,SAASiX,kBAAoBtf,KAAKqI,SAASiX,iBAAiBoB,mBAAmB1gB,KAAKqI,SAASiX,iBAAiBoB,kBAAkBre,IAE3IrC,KAAK2gB,cAActe,EAAGoa,IACpBK,EAAKL,EAAKpa,MAcd,OAXK8D,IAAOnG,KAAKqI,SAASiX,kBAAqBtf,KAAKqI,SAASiX,iBAAiBsB,OAElEza,GAAOnG,KAAKqI,SAASiX,kBAAoBtf,KAAKqI,SAASiX,iBAAiBsB,MAC7B,IAAjD5gB,KAAKqI,SAASiX,iBAAiBuB,OAAOrgB,OACxCR,KAAKqI,SAASiX,iBAAiBuB,SAASrD,KAAKgD,GAE7CxgB,KAAKqI,SAASiX,iBAAiBuB,OAAOL,GAGxCA,EAAOra,GARPqa,EAAOxgB,KAAKqI,SAASiX,iBAAiBuB,UAUjCrB,EAET,UAAUrZ,EAAKN,EAAIib,GACjB,IAAIC,EAAS/gB,KACb,MAAMghB,EAAS,SAAU3d,EAAK2a,GAC5B,IAAI1d,EACJ,GAAoB,kBAAT0d,EAAmB,CAC5B,IAAK,IAAI5c,EAAQb,UAAUC,OAAQoa,EAAO,IAAI7Z,MAAMK,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGuZ,EAAKvZ,EAAQ,GAAKd,UAAUc,GAE9Bf,EAAUygB,EAAOzgB,QAAQ4J,iCAAiC,CAAC7G,EAAK2a,GAAM1b,OAAOsY,SAE7Eta,EAAU,IACL0d,GAGP1d,EAAQ6F,IAAM7F,EAAQ6F,KAAO6a,EAAO7a,IACpC7F,EAAQsM,KAAOtM,EAAQsM,MAAQoU,EAAOpU,KACtCtM,EAAQuF,GAAKvF,EAAQuF,IAAMmb,EAAOnb,GAClCvF,EAAQwgB,UAAYxgB,EAAQwgB,WAAaA,GAAaE,EAAOF,UAC7D,MAAM/b,EAAegc,EAAOzgB,QAAQyE,cAAgB,IACpD,IAAIkc,EAMJ,OAJEA,EADE3gB,EAAQwgB,WAAa/f,MAAMoJ,QAAQ9G,GACzBA,EAAIkG,IAAIvF,GAAK,GAAG1D,EAAQwgB,YAAY/b,IAAef,KAEnD1D,EAAQwgB,UAAY,GAAGxgB,EAAQwgB,YAAY/b,IAAe1B,IAAQA,EAEzE0d,EAAOxY,EAAE0Y,EAAW3gB,IAS7B,MAPmB,kBAAR6F,EACT6a,EAAO7a,IAAMA,EAEb6a,EAAOpU,KAAOzG,EAEhB6a,EAAOnb,GAAKA,EACZmb,EAAOF,UAAYA,EACZE,EAET,IACE,OAAOhhB,KAAKgI,YAAchI,KAAKgI,WAAW0D,aAAanL,WAEzD,SACE,OAAOP,KAAKgI,YAAchI,KAAKgI,WAAWkZ,UAAU3gB,WAEtD,oBAAoBsF,GAClB7F,KAAKM,QAAQwF,UAAYD,EAE3B,mBAAmBA,GACjB,IAAIvF,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,IAAKP,KAAK+e,cAER,OADA/e,KAAKY,OAAO0K,KAAK,kDAAmDtL,KAAK8b,YAClE,EAET,IAAK9b,KAAK8b,YAAc9b,KAAK8b,UAAUtb,OAErC,OADAR,KAAKY,OAAO0K,KAAK,6DAA8DtL,KAAK8b,YAC7E,EAET,MAAM3V,EAAM7F,EAAQ6F,KAAOnG,KAAK8f,kBAAoB9f,KAAK8b,UAAU,GAC7D9O,IAAchN,KAAKM,SAAUN,KAAKM,QAAQ0M,YAC1CmU,EAAUnhB,KAAK8b,UAAU9b,KAAK8b,UAAUtb,OAAS,GACvD,GAA0B,WAAtB2F,EAAIqE,cAA4B,OAAO,EAC3C,MAAM4W,EAAiB,CAAC/e,EAAG+P,KACzB,MAAMiP,EAAYrhB,KAAKqI,SAASkF,iBAAiBqO,MAAM,GAAGvZ,KAAK+P,KAC/D,OAAsB,IAAfiP,GAAkC,IAAdA,GAE7B,GAAI/gB,EAAQghB,SAAU,CACpB,MAAMC,EAAYjhB,EAAQghB,SAASthB,KAAMohB,GACzC,QAAkB3gB,IAAd8gB,EAAyB,OAAOA,EAEtC,QAAIvhB,KAAKoH,kBAAkBjB,EAAKN,OAC3B7F,KAAKqI,SAASkF,iBAAiB8N,WAAWrb,KAAKM,QAAQkG,WAAcxG,KAAKM,QAAQ8d,8BACnFgD,EAAejb,EAAKN,IAASmH,IAAeoU,EAAeD,EAAStb,KAG1E,eAAeA,EAAIkW,GACjB,MAAMyD,EAAWhd,IACjB,OAAKxC,KAAKM,QAAQuF,IAIA,kBAAPA,IAAiBA,EAAK,CAACA,IAClCA,EAAG5D,QAAQmQ,IACLpS,KAAKM,QAAQuF,GAAGvC,QAAQ8O,GAAK,GAAGpS,KAAKM,QAAQuF,GAAG1D,KAAKiQ,KAE3DpS,KAAK2gB,cAAclE,IACjB+C,EAAS3c,UACLkZ,GAAUA,EAASU,KAElB+C,IAXDzD,GAAUA,IACPnZ,QAAQC,WAYnB,cAAc+J,EAAMmP,GAClB,MAAMyD,EAAWhd,IACG,kBAAToK,IAAmBA,EAAO,CAACA,IACtC,MAAM4U,EAAYxhB,KAAKM,QAAQ6d,SAAW,GACpCsD,EAAU7U,EAAKxK,OAAO+D,GAAOqb,EAAUle,QAAQ6C,GAAO,GAC5D,OAAKsb,EAAQjhB,QAIbR,KAAKM,QAAQ6d,QAAUqD,EAAUlf,OAAOmf,GACxCzhB,KAAK2gB,cAAclE,IACjB+C,EAAS3c,UACLkZ,GAAUA,EAASU,KAElB+C,IARDzD,GAAUA,IACPnZ,QAAQC,WASnB,IAAIsD,GAEF,GADKA,IAAKA,EAAMnG,KAAK8f,mBAAqB9f,KAAK8b,WAAa9b,KAAK8b,UAAUtb,OAAS,EAAIR,KAAK8b,UAAU,GAAK9b,KAAK0I,YAC5GvC,EAAK,MAAO,MACjB,MACM2G,EAAgB9M,KAAKqI,UAAYrI,KAAKqI,SAASyE,eAAiB,IAAI6D,EAAasN,KACvF,MAFgB,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,OAEna3a,QAAQwJ,EAAcsE,wBAAwBjL,KAAS,GAAKA,EAAIqE,cAAclH,QAAQ,SAAW,EAAI,MAAQ,MAE9H,wBAGE,OAAO,IAAImb,EAFGle,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACnEA,UAAUC,OAAS,EAAID,UAAU,QAAKE,GAGvD,gBACE,IAAIH,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC9Ewb,EAAWxb,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAKie,EACnF,MAAMkD,EAAoBphB,EAAQohB,kBAC9BA,UAA0BphB,EAAQohB,kBACtC,MAAMC,EAAgB,IACjB3hB,KAAKM,WACLA,EAED0e,SAAS,GAGP4C,EAAQ,IAAInD,EAAKkD,QACDlhB,IAAlBH,EAAQO,YAA0CJ,IAAnBH,EAAQK,SACzCihB,EAAMhhB,OAASghB,EAAMhhB,OAAOghB,MAAMthB,IA4BpC,MA1BsB,CAAC,QAAS,WAAY,YAC9B2B,QAAQwE,IACpBmb,EAAMnb,GAAKzG,KAAKyG,KAElBmb,EAAMvZ,SAAW,IACZrI,KAAKqI,UAEVuZ,EAAMvZ,SAASkH,MAAQ,CACrBC,mBAAoBoS,EAAMpS,mBAAmB+N,KAAKqE,IAEhDF,IACFE,EAAMtG,MAAQ,IAAI1V,EAAc5F,KAAKsb,MAAMjX,KAAMsd,GACjDC,EAAMvZ,SAASgI,cAAgBuR,EAAMtG,OAEvCsG,EAAM5Z,WAAa,IAAII,EAAWwZ,EAAMvZ,SAAUsZ,GAClDC,EAAM5Z,WAAWqX,GAAG,KAAK,SAAUnd,GACjC,IAAK,IAAIZ,EAAQf,UAAUC,OAAQT,EAAO,IAAIgB,MAAMO,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGxB,EAAKwB,EAAQ,GAAKhB,UAAUgB,GAE9BqgB,EAAMrb,KAAKrE,KAAUnC,MAEvB6hB,EAAMlhB,KAAKihB,EAAe5F,GAC1B6F,EAAM5Z,WAAW1H,QAAUqhB,EAC3BC,EAAM5Z,WAAWuF,iBAAiBlF,SAASkH,MAAQ,CACjDC,mBAAoBoS,EAAMpS,mBAAmB+N,KAAKqE,IAE7CA,EAET,SACE,MAAO,CACLthB,QAASN,KAAKM,QACdgb,MAAOtb,KAAKsb,MACZ5S,SAAU1I,KAAK0I,SACfoT,UAAW9b,KAAK8b,UAChBgE,iBAAkB9f,KAAK8f,mBAI7B,MAAM+B,EAAWpD,EAAKqD,iBACtBD,EAASC,eAAiBrD,EAAKqD,eAERD,EAASC,eACpBD,EAASE,IACRF,EAASnhB,KACAmhB,EAASlB,cACPkB,EAASG,gBACrBH,EAASI,IACEJ,EAASlC,eACdkC,EAASK,UACjBL,EAAStZ,EACJsZ,EAASX,OACIW,EAASM,oBACVN,EAASrS,mBACbqS,EAASO,eACVP,EAASQ,e,iCC3tE/BC,EAAQC,YAAa,EACrB,IAAIC,EAAsB,WACtB,SAASA,EAAKC,GACV,IAAKA,EACD,MAAM,IAAIC,UAAU,2CAExB1iB,KAAKuE,MAAQie,EAAKG,MACdF,GAAQD,EAAKI,OAAOH,KACpBziB,KAAKuE,MAAQke,GA6CrB,OA1CAD,EAAKI,OAAS,SAAUH,GACpB,IAAIle,EAAQke,EAAK/b,WACjB,OAAO+b,IAASA,aAAgBD,GAAQA,EAAKK,UAAUpZ,KAAKlF,KAEhEie,EAAK/Z,OAAS,WACV,OAAO,IAAI+Z,EAAK,CAACA,EAAKM,IAAI,GAAIN,EAAKM,IAAI,GAAIN,EAAKM,IAAI,GAAIN,EAAKM,IAAI,GAAIN,EAAKM,IAAI,IAAIxd,KAAK,OAE3Fkd,EAAKO,YAAc,WACf,OAAO,IAAIP,EAAK,cAEpBA,EAAKzU,MAAQ,SAAU0U,GACnB,OAAO,IAAID,EAAKC,IAEpBD,EAAKQ,IAAM,WACP,MAAO,CAACR,EAAKM,IAAI,GAAIN,EAAKM,IAAI,GAAIN,EAAKM,IAAI,GAAIN,EAAKM,IAAI,GAAIN,EAAKM,IAAI,IAAIxd,KAAK,MAElFkd,EAAKM,IAAM,SAAUhX,GAEjB,IADA,IAAImX,EAAM,GACD/d,EAAI,EAAGA,EAAI4G,EAAO5G,IAEvB+d,IAA+B,OAArB,EAAIpN,KAAKqN,UAAuB,GAAGxc,SAAS,IAAIiD,UAAU,GAExE,OAAOsZ,GAEXT,EAAK5e,UAAUuf,OAAS,SAAUhP,GAG9B,OAAOqO,EAAKI,OAAOzO,IAAUnU,KAAKuE,QAAU4P,EAAMzN,YAEtD8b,EAAK5e,UAAUwf,QAAU,WACrB,OAAOpjB,KAAKuE,QAAUie,EAAKG,OAE/BH,EAAK5e,UAAU8C,SAAW,WACtB,OAAO1G,KAAKuE,OAEhBie,EAAK5e,UAAUyf,OAAS,WACpB,MAAO,CACH9e,MAAOvE,KAAKuE,QAGpBie,EAAKK,UAAY,IAAIvZ,OAAO,iEAAkE,KAC9FkZ,EAAKG,MAAQ,uCACNH,EApDc,GAsDzBF,EAAQE,KAAOA,G,kCCtDf,IAAIc,EAAU,EAAQ,MAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXnkB,MAAM,GAEJokB,EAAgB,CAClBnc,MAAM,EACNvH,QAAQ,EACRoD,WAAW,EACXugB,QAAQ,EACRC,QAAQ,EACR7jB,WAAW,EACX8jB,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTZ,cAAc,EACdC,aAAa,EACbK,WAAW,EACXnkB,MAAM,GAEJ0kB,EAAe,GAInB,SAASC,EAAWC,GAElB,OAAIpB,EAAQqB,OAAOD,GACVJ,EAIFE,EAAaE,EAAoB,WAAMnB,EAVhDiB,EAAalB,EAAQsB,YAhBK,CACxB,UAAY,EACZC,QAAQ,EACRlB,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbO,EAAalB,EAAQwB,MAAQR,EAY7B,IAAIS,EAAiBphB,OAAOohB,eACxBlG,EAAsBlb,OAAOkb,oBAC7BmG,EAAwBrhB,OAAOqhB,sBAC/BC,EAA2BthB,OAAOshB,yBAClCnG,EAAiBnb,OAAOmb,eACxBoG,EAAkBvhB,OAAOC,UAsC7BkE,EAAOwa,QArCP,SAAS6C,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBzG,EAAeuG,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAI7d,EAAOoX,EAAoBwG,GAE3BL,IACFvd,EAAOA,EAAKnF,OAAO0iB,EAAsBK,KAM3C,IAHA,IAAIG,EAAgBf,EAAWW,GAC3BK,EAAgBhB,EAAWY,GAEtBngB,EAAI,EAAGA,EAAIuC,EAAKjH,SAAU0E,EAAG,CACpC,IAAI7B,EAAMoE,EAAKvC,GAEf,IAAKgf,EAAc7gB,MAAUiiB,IAAaA,EAAUjiB,OAAWoiB,IAAiBA,EAAcpiB,OAAWmiB,IAAiBA,EAAcniB,IAAO,CAC7I,IAAIqiB,EAAaT,EAAyBI,EAAiBhiB,GAE3D,IAEE0hB,EAAeK,EAAiB/hB,EAAKqiB,GACrC,MAAO1M,OAKf,OAAOoM,I,oBC7F0Dtd,EAAOwa,QAGlE,WAAe,aAkBnB,IAAIqD,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBhiB,OAAOmiB,gBAClB,CAAEC,UAAW,cAAgBhlB,OAAS,SAAU6kB,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIzgB,KAAKygB,EAAOliB,OAAOC,UAAUC,eAAeC,KAAK+hB,EAAGzgB,KAAIwgB,EAAExgB,GAAKygB,EAAEzgB,MAC3EwgB,EAAGC,IAG5B,SAASG,EAAUJ,EAAGC,GAClB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAInD,UAAU,uBAAyBvb,OAAO0e,GAAK,iCAE7D,SAASI,IAAOjmB,KAAKkmB,YAAcN,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEhiB,UAAkB,OAANiiB,EAAaliB,OAAO8E,OAAOod,IAAMI,EAAGriB,UAAYiiB,EAAEjiB,UAAW,IAAIqiB,GAGnF,IAAIE,EAAW,WAQX,OAPAA,EAAWxiB,OAAOyiB,QAAU,SAAkB7d,GAC1C,IAAK,IAAI3D,EAAGM,EAAI,EAAGkN,EAAI7R,UAAUC,OAAQ0E,EAAIkN,EAAGlN,IAE5C,IAAK,IAAIE,KADTR,EAAIrE,UAAU2E,GACOvB,OAAOC,UAAUC,eAAeC,KAAKc,EAAGQ,KAAImD,EAAEnD,GAAKR,EAAEQ,IAE9E,OAAOmD,IAEKpI,MAAMH,KAAMO,YAGhC,SAAS8lB,EAAUC,EAASC,EAAYC,EAAGC,GAEvC,OAAO,IAAKD,IAAMA,EAAI5jB,WAAU,SAAUC,EAASC,GAC/C,SAAS4jB,EAAUniB,GAAS,IAAMoiB,EAAKF,EAAUrJ,KAAK7Y,IAAW,MAAOyU,GAAKlW,EAAOkW,IACpF,SAAS4N,EAASriB,GAAS,IAAMoiB,EAAKF,EAAiB,MAAEliB,IAAW,MAAOyU,GAAKlW,EAAOkW,IACvF,SAAS2N,EAAKvgB,GAJlB,IAAe7B,EAIa6B,EAAO0W,KAAOja,EAAQuD,EAAO7B,QAJ1CA,EAIyD6B,EAAO7B,MAJhDA,aAAiBiiB,EAAIjiB,EAAQ,IAAIiiB,GAAE,SAAU3jB,GAAWA,EAAQ0B,OAITiZ,KAAKkJ,EAAWE,GAClGD,GAAMF,EAAYA,EAAUtmB,MAAMmmB,EAASC,GAAc,KAAKnJ,WAItE,SAASyJ,EAAYP,EAASQ,GAC1B,IAAsG/O,EAAGgP,EAAGxe,EAAGye,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP5e,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO6e,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAE5J,KAAMkK,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOxnB,OAAUgnB,EACvJ,SAASM,EAAKlV,GAAK,OAAO,SAAUzK,GAAK,OACzC,SAAc8f,GACV,GAAI1P,EAAG,MAAM,IAAI2K,UAAU,mCAC3B,KAAOuE,GAAG,IACN,GAAIlP,EAAI,EAAGgP,IAAMxe,EAAY,EAARkf,EAAG,GAASV,EAAU,OAAIU,EAAG,GAAKV,EAAS,SAAOxe,EAAIwe,EAAU,SAAMxe,EAAEzE,KAAKijB,GAAI,GAAKA,EAAE3J,SAAW7U,EAAIA,EAAEzE,KAAKijB,EAAGU,EAAG,KAAK3K,KAAM,OAAOvU,EAE3J,OADIwe,EAAI,EAAGxe,IAAGkf,EAAK,CAAS,EAARA,EAAG,GAAQlf,EAAEhE,QACzBkjB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGlf,EAAIkf,EAAI,MACxB,KAAK,EAAc,OAAXR,EAAEC,QAAgB,CAAE3iB,MAAOkjB,EAAG,GAAI3K,MAAM,GAChD,KAAK,EAAGmK,EAAEC,QAASH,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKR,EAAEI,IAAInX,MAAO+W,EAAEG,KAAKlX,MAAO,SACxC,QACI,KAAkB3H,GAAZA,EAAI0e,EAAEG,MAAY5mB,OAAS,GAAK+H,EAAEA,EAAE/H,OAAS,MAAkB,IAAVinB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAER,EAAI,EAAG,SACjG,GAAc,IAAVQ,EAAG,MAAclf,GAAMkf,EAAG,GAAKlf,EAAE,IAAMkf,EAAG,GAAKlf,EAAE,IAAM,CAAE0e,EAAEC,MAAQO,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYR,EAAEC,MAAQ3e,EAAE,GAAI,CAAE0e,EAAEC,MAAQ3e,EAAE,GAAIA,EAAIkf,EAAI,MAC7D,GAAIlf,GAAK0e,EAAEC,MAAQ3e,EAAE,GAAI,CAAE0e,EAAEC,MAAQ3e,EAAE,GAAI0e,EAAEI,IAAIllB,KAAKslB,GAAK,MACvDlf,EAAE,IAAI0e,EAAEI,IAAInX,MAChB+W,EAAEG,KAAKlX,MAAO,SAEtBuX,EAAKX,EAAKhjB,KAAKwiB,EAASW,GAC1B,MAAOjO,GAAKyO,EAAK,CAAC,EAAGzO,GAAI+N,EAAI,EAAK,QAAUhP,EAAIxP,EAAI,EACtD,GAAY,EAARkf,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEljB,MAAOkjB,EAAG,GAAKA,EAAG,QAAK,EAAQ3K,MAAM,GArB9B6J,CAAK,CAACvU,EAAGzK,MAyB7D,SAAS+f,EAAcC,EAAIC,EAAM9gB,GAC7B,GAAIA,GAA6B,IAArBvG,UAAUC,OAAc,IAAK,IAA4BqnB,EAAxB3iB,EAAI,EAAG7C,EAAIulB,EAAKpnB,OAAY0E,EAAI7C,EAAG6C,KACxE2iB,GAAQ3iB,KAAK0iB,IACRC,IAAIA,EAAK9mB,MAAM6C,UAAUyB,MAAMvB,KAAK8jB,EAAM,EAAG1iB,IAClD2iB,EAAG3iB,GAAK0iB,EAAK1iB,IAGrB,OAAOyiB,EAAGrlB,OAAOulB,GAAMD,GAoG3B,IAjGA,IAAIE,EAAwB,WACxB,SAASA,EAAOC,EAAMC,EAAKC,EAAOC,GAC9BloB,KAAK+nB,KAAOA,EACZ/nB,KAAKgoB,IAAMA,EACXhoB,KAAKioB,MAAQA,EACbjoB,KAAKkoB,OAASA,EAelB,OAbAJ,EAAOlkB,UAAUukB,IAAM,SAAUC,EAAGrB,EAAGsB,EAAGC,GACtC,OAAO,IAAIR,EAAO9nB,KAAK+nB,KAAOK,EAAGpoB,KAAKgoB,IAAMjB,EAAG/mB,KAAKioB,MAAQI,EAAGroB,KAAKkoB,OAASI,IAEjFR,EAAOS,eAAiB,SAAU/Z,EAASga,GACvC,OAAO,IAAIV,EAAOU,EAAWT,KAAOvZ,EAAQia,aAAaV,KAAMS,EAAWR,IAAMxZ,EAAQia,aAAaT,IAAKQ,EAAWP,MAAOO,EAAWN,SAE3IJ,EAAOY,gBAAkB,SAAUla,EAASma,GACxC,IAAIC,EAAU7nB,MAAM6mB,KAAKe,GAAajhB,MAAK,SAAUmhB,GAAQ,OAAsB,IAAfA,EAAKZ,SACzE,OAAOW,EACD,IAAId,EAAOc,EAAQb,KAAOvZ,EAAQia,aAAaV,KAAMa,EAAQZ,IAAMxZ,EAAQia,aAAaT,IAAKY,EAAQX,MAAOW,EAAQV,QACpHJ,EAAOnF,OAEjBmF,EAAOnF,MAAQ,IAAImF,EAAO,EAAG,EAAG,EAAG,GAC5BA,EApBgB,GAsBvBgB,EAAc,SAAUta,EAASua,GACjC,OAAOjB,EAAOS,eAAe/Z,EAASua,EAAKC,0BAkB3CC,EAAiB,SAAUxkB,GAI3B,IAHA,IAAIykB,EAAa,GACbhkB,EAAI,EACJ1E,EAASiE,EAAIjE,OACV0E,EAAI1E,GAAQ,CACf,IAAI+D,EAAQE,EAAI0kB,WAAWjkB,KAC3B,GAAIX,GAAS,OAAUA,GAAS,OAAUW,EAAI1E,EAAQ,CAClD,IAAI4oB,EAAQ3kB,EAAI0kB,WAAWjkB,KACF,SAAZ,MAARkkB,GACDF,EAAW/mB,OAAe,KAARoC,IAAkB,KAAe,KAAR6kB,GAAiB,QAG5DF,EAAW/mB,KAAKoC,GAChBW,UAIJgkB,EAAW/mB,KAAKoC,GAGxB,OAAO2kB,GAEPG,EAAkB,WAElB,IADA,IAAIH,EAAa,GACRI,EAAK,EAAGA,EAAK/oB,UAAUC,OAAQ8oB,IACpCJ,EAAWI,GAAM/oB,UAAU+oB,GAE/B,GAAIniB,OAAOoiB,cACP,OAAOpiB,OAAOoiB,cAAcppB,MAAMgH,OAAQ+hB,GAE9C,IAAI1oB,EAAS0oB,EAAW1oB,OACxB,IAAKA,EACD,MAAO,GAKX,IAHA,IAAIgpB,EAAY,GACZvjB,GAAS,EACTG,EAAS,KACJH,EAAQzF,GAAQ,CACrB,IAAIipB,EAAYP,EAAWjjB,GACvBwjB,GAAa,MACbD,EAAUrnB,KAAKsnB,IAGfA,GAAa,MACbD,EAAUrnB,KAAyB,OAAnBsnB,GAAa,IAAeA,EAAY,KAAS,SAEjExjB,EAAQ,IAAMzF,GAAUgpB,EAAUhpB,OAAS,SAC3C4F,GAAUe,OAAOuiB,aAAavpB,MAAMgH,OAAQqiB,GAC5CA,EAAUhpB,OAAS,GAG3B,OAAO4F,GAEPujB,EAAU,mEAEVC,EAAiC,qBAAfC,WAA6B,GAAK,IAAIA,WAAW,KAC9DC,EAAM,EAAGA,EAAMH,EAAQnpB,OAAQspB,IACpCF,EAASD,EAAQR,WAAWW,IAAQA,EAWxC,IAHA,IAAIC,EAAY,mEAEZC,EAAmC,qBAAfH,WAA6B,GAAK,IAAIA,WAAW,KAChEI,EAAQ,EAAGA,EAAQF,EAAUvpB,OAAQypB,IAC1CD,EAAWD,EAAUZ,WAAWc,IAAUA,EA6L9C,IA3LA,IAoGIC,EAAY,SAAUC,EAAMC,EAAOC,GACnC,OAAIF,EAAK9kB,MACE8kB,EAAK9kB,MAAM+kB,EAAOC,GAEtB,IAAIC,YAAYvpB,MAAM6C,UAAUyB,MAAMvB,KAAKqmB,EAAMC,EAAOC,KAmB/DE,EAAwB,WACxB,SAASC,EAAKC,EAAcC,EAAYC,EAAWC,EAAgB3kB,EAAO5B,GACtErE,KAAKyqB,aAAeA,EACpBzqB,KAAK0qB,WAAaA,EAClB1qB,KAAK2qB,UAAYA,EACjB3qB,KAAK4qB,eAAiBA,EACtB5qB,KAAKiG,MAAQA,EACbjG,KAAKqE,KAAOA,EA8ChB,OAtCAmmB,EAAK5mB,UAAUqa,IAAM,SAAUwL,GAC3B,IAAIoB,EACJ,GAAIpB,GAAa,EAAG,CAChB,GAAIA,EAAY,OAAYA,EAAY,OAAWA,GAAa,MAM5D,OADAoB,IADAA,EAAK7qB,KAAKiG,MAAMwjB,GAtGT,KASI,IAgBFqB,GA8E4BrB,GAC9BzpB,KAAKqE,KAAKwmB,GAErB,GAAIpB,GAAa,MASb,OADAoB,IADAA,EAAK7qB,KAAKiG,MA5FS,MA4F8BwjB,EAAY,OAjHtD,MASI,IAgBFqB,GAyF4BrB,GAC9BzpB,KAAKqE,KAAKwmB,GAErB,GAAIpB,EAAYzpB,KAAK2qB,UAOjB,OALAE,EAAKE,MAAiEtB,GArH/D,IAsHPoB,EAAK7qB,KAAKiG,MAAM4kB,GAChBA,GAAOpB,GAzHA,EAwDKuB,GAmEZH,IADAA,EAAK7qB,KAAKiG,MAAM4kB,KAjHL,IAgBFC,GAkG4BrB,GAC9BzpB,KAAKqE,KAAKwmB,GAErB,GAAIpB,GAAa,QACb,OAAOzpB,KAAKqE,KAAKrE,KAAK4qB,gBAI9B,OAAO5qB,KAAK0qB,YAETF,EArDgB,GA6DvBS,EAAU,mEAEVC,EAAiC,qBAAfrB,WAA6B,GAAK,IAAIA,WAAW,KAC9DsB,EAAM,EAAGA,EAAMF,EAAQzqB,OAAQ2qB,IACpCD,EAASD,EAAQ9B,WAAWgC,IAAQA,EAGxC,IAYIC,EAAK,GAILC,EAAK,GAELC,EAAK,GAGLC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GAGLC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GAGLC,EAAK,GAELC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GAELC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GAELC,EAAK,GAELC,EAAQ,CAAC,KAAQ,OAIjBC,EArIyB,SAAUC,EAAQC,GAC3C,IAPsB5C,EAAMC,EAAOC,EAO/B2C,EAjHO,SAAUF,GACrB,IAA8D5nB,EAAU+nB,EAAUC,EAAUC,EAAUC,EAAlGC,EAA+B,IAAhBP,EAAOtsB,OAAe8sB,EAAMR,EAAOtsB,OAAW4E,EAAI,EACnC,MAA9B0nB,EAAOA,EAAOtsB,OAAS,KACvB6sB,IACkC,MAA9BP,EAAOA,EAAOtsB,OAAS,IACvB6sB,KAGR,IAAIL,EAAgC,qBAAhBO,aACM,qBAAf1D,YAC+B,qBAA/BA,WAAWjmB,UAAUyB,MAC1B,IAAIkoB,YAAYF,GAChB,IAAItsB,MAAMssB,GACZG,EAAQzsB,MAAMoJ,QAAQ6iB,GAAUA,EAAS,IAAInD,WAAWmD,GAC5D,IAAK9nB,EAAI,EAAGA,EAAIooB,EAAKpoB,GAAK,EACtB+nB,EAAWjD,EAAW8C,EAAO3D,WAAWjkB,IACxCgoB,EAAWlD,EAAW8C,EAAO3D,WAAWjkB,EAAI,IAC5CioB,EAAWnD,EAAW8C,EAAO3D,WAAWjkB,EAAI,IAC5CkoB,EAAWpD,EAAW8C,EAAO3D,WAAWjkB,EAAI,IAC5CsoB,EAAMpoB,KAAQ6nB,GAAY,EAAMC,GAAY,EAC5CM,EAAMpoB,MAAoB,GAAX8nB,IAAkB,EAAMC,GAAY,EACnDK,EAAMpoB,MAAoB,EAAX+nB,IAAiB,EAAiB,GAAXC,EAE1C,OAAOJ,EA0FMS,CAASX,GAClBY,EAAS3sB,MAAMoJ,QAAQ6iB,GAjFP,SAAUA,GAG9B,IAFA,IAAIxsB,EAASwsB,EAAOxsB,OAChBgtB,EAAQ,GACHtoB,EAAI,EAAGA,EAAI1E,EAAQ0E,GAAK,EAC7BsoB,EAAMrrB,KAAM6qB,EAAO9nB,EAAI,IAAM,GAAO8nB,EAAO9nB,EAAI,IAAM,GAAO8nB,EAAO9nB,EAAI,IAAM,EAAK8nB,EAAO9nB,IAE7F,OAAOsoB,EA2E8BG,CAAkBX,GAAU,IAAIY,YAAYZ,GAC7Ea,EAAS9sB,MAAMoJ,QAAQ6iB,GA1FP,SAAUA,GAG9B,IAFA,IAAIxsB,EAASwsB,EAAOxsB,OAChBgtB,EAAQ,GACHtoB,EAAI,EAAGA,EAAI1E,EAAQ0E,GAAK,EAC7BsoB,EAAMrrB,KAAM6qB,EAAO9nB,EAAI,IAAM,EAAK8nB,EAAO9nB,IAE7C,OAAOsoB,EAoF8BM,CAAkBd,GAAU,IAAI1C,YAAY0C,GAE7E/mB,EAAQikB,EAAU2D,EAAQE,GAAkBL,EAAO,GAAK,GACxDrpB,EAAqB,IAAdqpB,EAAO,GACZxD,EAAU2D,GAHG,GAGqBH,EAAO,IAAM,IAb/BvD,EAcNuD,EAdYtD,EAcJvU,KAAKmY,MAJV,GAI+BN,EAAO,IAAM,GAb3DvD,EAAK9kB,MACE8kB,EAAK9kB,MAAM+kB,EAAOC,GAEtB,IAAIuD,YAAY7sB,MAAM6C,UAAUyB,MAAMvB,KAAKqmB,EAAMC,EAAOC,KAW/D,OAAO,IAAIE,EAAOmD,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIznB,EAAO5B,GA4HrD4pB,CAtDL,4pnDAuDXC,EAAc,CAAChC,EAbV,IAcLiC,EAAmB,CApDd,EACE,EACA,EAEF,GAiDLC,EAAU,CAAChD,EA/CN,GAgDLiD,EAAiB,CAACrC,EAAID,GACtBuC,EAAcH,EAAiB7rB,OAAO8rB,GACtCG,EAAwB,CAAC/B,EAAIC,EAAIC,EAAIL,EAAIC,GACzCkC,EAAS,CAAClD,EAAID,GA+DdoD,GAA6B,SAAUnmB,EAAGud,EAAG6I,EAAcC,GAC3D,IAAI1pB,EAAU0pB,EAAWD,GACzB,GAAI3tB,MAAMoJ,QAAQ7B,IAA6B,IAAxBA,EAAEhF,QAAQ2B,GAAkBqD,IAAMrD,EAErD,IADA,IAAIC,EAAIwpB,EACDxpB,GAAKypB,EAAWnuB,QAAQ,CAG3B,IADI4c,EAAOuR,IADXzpB,MAEa2gB,EACT,OAAO,EAEX,GAAIzI,IAASgO,EACT,MAIZ,GAAInmB,IAAYmmB,EAEZ,IADIlmB,EAAIwpB,EACDxpB,EAAI,GAAG,CAEV,IAAI0pB,EAAOD,IADXzpB,GAEA,GAAInE,MAAMoJ,QAAQ7B,IAA0B,IAArBA,EAAEhF,QAAQsrB,GAAetmB,IAAMsmB,EAElD,IADA,IAAIxc,EAAIsc,EACDtc,GAAKuc,EAAWnuB,QAAQ,CAE3B,IAAI4c,EACJ,IADIA,EAAOuR,IADXvc,MAEayT,EACT,OAAO,EAEX,GAAIzI,IAASgO,EACT,MAIZ,GAAIwD,IAASxD,EACT,MAIZ,OAAO,GAEPyD,GAA4B,SAAUH,EAAcC,GAEpD,IADA,IAAIzpB,EAAIwpB,EACDxpB,GAAK,GAAG,CACX,IAAIpF,EAAO6uB,EAAWzpB,GACtB,GAAIpF,IAASsrB,EAIT,OAAOtrB,EAHPoF,IAMR,OAAO,GAEP4pB,GAAoB,SAAU5F,EAAYyF,EAAYI,EAAU9oB,EAAO+oB,GACvE,GAAwB,IAApBD,EAAS9oB,GACT,MA/HkB,OAiItB,IAAIyoB,EAAezoB,EAAQ,EAC3B,GAAIlF,MAAMoJ,QAAQ6kB,KAAsD,IAAlCA,EAAgBN,GAClD,MAnIkB,OAqItB,IAAIO,EAAcP,EAAe,EAC7BQ,EAAaR,EAAe,EAC5BzpB,EAAU0pB,EAAWD,GAGrBS,EAASF,GAAe,EAAIN,EAAWM,GAAe,EACtD7R,EAAOuR,EAAWO,GACtB,GA3LO,IA2LHjqB,GA1LG,IA0LiBmY,EACpB,MA7IkB,OA+ItB,IAA2C,IAAvC+Q,EAAiB7qB,QAAQ2B,GACzB,MAjJc,IAoJlB,IAAwC,IAApCkpB,EAAiB7qB,QAAQ8Z,GACzB,MApJkB,OAuJtB,IAA+B,IAA3BgR,EAAQ9qB,QAAQ8Z,GAChB,MAxJkB,OA2JtB,GArMK,IAqMDyR,GAA0BH,EAAcC,GACxC,MA3Jc,OA8JlB,GAtMQ,KAsMJ9B,EAAc5O,IAAIiL,EAAWwF,IAC7B,MAhKkB,OAmKtB,IAAKzpB,IAAYknB,GAAMlnB,IAAYmnB,IA1M3B,KA0MkCS,EAAc5O,IAAIiL,EAAWgG,IACnE,MApKkB,OAuKtB,GAlNK,IAkNDjqB,GAlNC,IAkNiBmY,EAClB,MAxKkB,OA2KtB,GApNK,IAoNDnY,EACA,MA5KkB,OA+KtB,IAAuC,IAAnC,CAACmmB,EAAIC,EAAIC,GAAIhoB,QAAQ2B,IAxNpB,IAwNuCmY,EACxC,MAhLkB,OAmLtB,IAA4C,IAAxC,CAACmO,EAAIC,EAAIC,EAAII,EAAII,GAAI3oB,QAAQ8Z,GAC7B,MApLkB,OAuLtB,GAAIyR,GAA0BH,EAAcC,KAAgB/C,EACxD,MAxLkB,OA2LtB,GAAI6C,GApNC,GAoN8B7C,EAAI8C,EAAcC,GACjD,MA5LkB,OA+LtB,GAAIF,GAA2B,CAAClD,EAAIC,GAAKG,EAAI+C,EAAcC,GACvD,MAhMkB,OAmMtB,GAAIF,GAxOC,MAwOkCC,EAAcC,GACjD,MApMkB,OAuMtB,GAAI1pB,IAAYmmB,EACZ,MAvMc,OA0MlB,GApOK,KAoODnmB,GApOC,KAoOiBmY,EAClB,MA5MkB,OA+MtB,GAhPK,KAgPDA,GAhPC,KAgPcnY,EACf,MA/Mc,OAkNlB,IAAoC,IAAhC,CAAComB,EAAIC,EAAIK,GAAIroB,QAAQ8Z,IAtPpB,KAsPoCnY,EACrC,MApNkB,OAuNtB,GAjOK,KAiODkqB,IAA8C,IAA7BX,EAAOlrB,QAAQ2B,GAChC,MAxNkB,OA2NtB,GAAIA,IAAYgnB,GArOX,KAqOiB7O,EAClB,MA5NkB,OA+NtB,GAAIA,IAASsO,EACT,MAhOkB,OAmOtB,IAAoC,IAA/BwC,EAAY5qB,QAAQ8Z,IAAgBnY,IAAY6mB,IAA0C,IAAlCoC,EAAY5qB,QAAQ2B,IAAmBmY,IAAS0O,EACzG,MApOkB,OAuOtB,GAAK7mB,IAAY+mB,IAAsC,IAAhC,CAACO,EAAIJ,EAAIC,GAAI9oB,QAAQ8Z,KACJ,IAAnC,CAACmP,EAAIJ,EAAIC,GAAI9oB,QAAQ2B,IAAmBmY,IAAS2O,EAClD,MAzOkB,OA4OtB,IAAuC,IAAlCmC,EAAY5qB,QAAQ2B,KAAqD,IAAlCopB,EAAe/qB,QAAQ8Z,KACzB,IAArCiR,EAAe/qB,QAAQ2B,KAAkD,IAA/BipB,EAAY5qB,QAAQ8Z,GAC/D,MA9OkB,OAiPtB,IAEgC,IAA/B,CAAC4O,EAAID,GAAIzoB,QAAQ2B,KACbmY,IAAS0O,IAAmC,IAA5B,CAACF,EAAIN,GAAIhoB,QAAQ8Z,IAAgBuR,EAAWO,EAAa,KAAOpD,KAEjD,IAA/B,CAACF,EAAIN,GAAIhoB,QAAQ2B,IAAmBmY,IAAS0O,GAE7C7mB,IAAY6mB,IAAsC,IAAhC,CAACA,EAAIG,EAAIJ,GAAIvoB,QAAQ8Z,GACxC,MAzPkB,OA4PtB,IAA4C,IAAxC,CAAC0O,EAAIG,EAAIJ,EAAIN,EAAIC,GAAIloB,QAAQ8Z,GAE7B,IADA,IAAIgS,EAAYV,EACTU,GAAa,GAAG,CAEnB,IADItvB,EAAO6uB,EAAWS,MACTtD,EACT,MAjQU,OAmQT,IAAgC,IAA5B,CAACG,EAAIJ,GAAIvoB,QAAQxD,GAItB,MAHAsvB,IAQZ,IAAgC,IAA5B,CAACpD,EAAID,GAAIzoB,QAAQ8Z,GAEjB,IADIgS,GAA2C,IAA/B,CAAC7D,EAAIC,GAAIloB,QAAQ2B,GAAkBgqB,EAAcP,EAC1DU,GAAa,GAAG,CACnB,IAAItvB,EACJ,IADIA,EAAO6uB,EAAWS,MACTtD,EACT,MAjRU,OAmRT,IAAgC,IAA5B,CAACG,EAAIJ,GAAIvoB,QAAQxD,GAItB,MAHAsvB,IAQZ,GAAK5C,IAAOvnB,IAA+C,IAApC,CAACunB,EAAIC,EAAIJ,EAAIC,GAAIhpB,QAAQ8Z,KACZ,IAA/B,CAACqP,EAAIJ,GAAI/oB,QAAQ2B,KAA+C,IAA5B,CAACwnB,EAAIC,GAAIppB,QAAQ8Z,KACtB,IAA/B,CAACsP,EAAIJ,GAAIhpB,QAAQ2B,IAAmBmY,IAASsP,EAC9C,MA/RkB,OAkStB,IAAiD,IAA5C6B,EAAsBjrB,QAAQ2B,KAA+C,IAA5B,CAACymB,EAAIK,GAAIzoB,QAAQ8Z,KACzB,IAAzCmR,EAAsBjrB,QAAQ8Z,IAAgBnY,IAAY+mB,EAC3D,MApSkB,OAuStB,IAAsC,IAAlCkC,EAAY5qB,QAAQ2B,KAAkD,IAA/BipB,EAAY5qB,QAAQ8Z,GAC3D,MAxSkB,OA2StB,GAAInY,IAAY4mB,IAAqC,IAA/BqC,EAAY5qB,QAAQ8Z,GACtC,MA5SkB,OA+StB,IAAkD,IAA7C8Q,EAAY5rB,OAAOwpB,GAAIxoB,QAAQ2B,IAChCmY,IAASwO,IACkC,IAA3CgB,EAAMtpB,QAAQ4lB,EAAWgG,MACkB,IAA1ChB,EAAY5rB,OAAOwpB,GAAIxoB,QAAQ8Z,IAAgBnY,IAAYumB,EAC5D,MAnTkB,OAuTtB,GA5TO,KA4THvmB,GA5TG,KA4TiBmY,EAAe,CAGnC,IAFA,IAAIlY,EAAI6pB,EAASL,GACb5iB,EAAQ,EACL5G,EAAI,GA/TR,KAiUKypB,IADJzpB,IAEI4G,IAMR,GAAIA,EAAQ,IAAM,EACd,MApUc,OAwUtB,OAAI7G,IAAYknB,GAAM/O,IAASgP,EAxUT,OACJ,QA4UlBiD,GAAsB,SAAUnG,EAAY5oB,GACvCA,IACDA,EAAU,CAAEgvB,UAAW,SAAUC,UAAW,WAEhD,IAAIC,EAvU2B,SAAUtG,EAAYoG,QACnC,IAAdA,IAAwBA,EAAY,UACxC,IAAIG,EAAQ,GACRC,EAAU,GACVC,EAAa,GAwDjB,OAvDAzG,EAAWjnB,SAAQ,SAAUwnB,EAAWxjB,GACpC,IAAI2pB,EAAY/C,EAAc5O,IAAIwL,GAQlC,GAPImG,EAnEiB,IAoEjBD,EAAWxtB,MAAK,GAChBytB,GArEiB,IAwEjBD,EAAWxtB,MAAK,IAEoC,IAApD,CAAC,SAAU,OAAQ,SAASmB,QAAQgsB,KAEyB,IAAzD,CAAC,KAAQ,KAAQ,MAAQ,OAAQhsB,QAAQmmB,GAEzC,OADAiG,EAAQvtB,KAAK8D,GACNwpB,EAAMttB,KA7DpB,IAgED,GA5EC,IA4EGytB,GAtEA,KAsEoBA,EAAqB,CAEzC,GAAc,IAAV3pB,EAEA,OADAypB,EAAQvtB,KAAK8D,GACNwpB,EAAMttB,KAAK+pB,GAItB,IAAI0C,EAAOa,EAAMxpB,EAAQ,GACzB,OAAmC,IAA/BqoB,EAAYhrB,QAAQsrB,IACpBc,EAAQvtB,KAAKutB,EAAQzpB,EAAQ,IACtBwpB,EAAMttB,KAAKysB,KAEtBc,EAAQvtB,KAAK8D,GACNwpB,EAAMttB,KAAK+pB,IAGtB,OADAwD,EAAQvtB,KAAK8D,GA9DZ,KA+DG2pB,EACOH,EAAMttB,KAAmB,WAAdmtB,EAAyB3D,EAAKY,GAEhDqD,IAAcjD,GApEjB,KAuEGiD,EAFOH,EAAMttB,KAAK+pB,GAvDrB,KA+DG0D,EACKnG,GAAa,QAAWA,GAAa,QAAaA,GAAa,QAAWA,GAAa,OACjFgG,EAAMttB,KAAKoqB,GAGXkD,EAAMttB,KAAK+pB,QAG1BuD,EAAMttB,KAAKytB,MAER,CAACF,EAASD,EAAOE,GA2QfE,CAA6B3G,EAAY5oB,EAAQgvB,WAAYP,EAAWS,EAAG,GAAIb,EAAaa,EAAG,GAAIM,EAAiBN,EAAG,GAShI,MAR0B,cAAtBlvB,EAAQivB,WAAmD,eAAtBjvB,EAAQivB,YAC7CZ,EAAaA,EAAWplB,KAAI,SAAUzJ,GAAQ,OAAwC,IAAhC,CAACgsB,EAAII,EAAIS,GAAIrpB,QAAQxD,GAAeysB,EAAKzsB,MAO5F,CAACivB,EAAUJ,EAL+B,aAAtBruB,EAAQivB,UAC7BO,EAAevmB,KAAI,SAAUwmB,EAAc7qB,GACzC,OAAO6qB,GAAgB7G,EAAWhkB,IAAM,OAAUgkB,EAAWhkB,IAAM,cAErEzE,IAGNuvB,GAAuB,WACvB,SAASA,EAAM9G,EAAYoG,EAAWlF,EAAOC,GACzCrqB,KAAKkpB,WAAaA,EAClBlpB,KAAKiwB,SAhWS,MAgWEX,EAChBtvB,KAAKoqB,MAAQA,EACbpqB,KAAKqqB,IAAMA,EAKf,OAHA2F,EAAMpsB,UAAUyB,MAAQ,WACpB,OAAOgkB,EAAgBlpB,WAAM,EAAQH,KAAKkpB,WAAW7jB,MAAMrF,KAAKoqB,MAAOpqB,KAAKqqB,OAEzE2F,EAVe,GA+FtBE,GAAU,SAAUzG,GAAa,OAAOA,GAXjC,IAWsDA,GAAa,IAE1E0G,GAAQ,SAAU1G,GAClB,OAAOyG,GAAQzG,IAAeA,GAR1B,IAQ4CA,GAN5C,IAMgEA,GAbhE,IAakFA,GAXlF,KAiBJ2G,GAAe,SAAU3G,GACzB,OA/DY,KA+DLA,GA5DgB,IA4DWA,GA3D1B,KA2DgEA,GAExE4G,GAAuB,SAAU5G,GACjC,OANW,SAAUA,GAAa,OAFd,SAAUA,GAAa,OAAOA,GAf9C,IAegEA,GAXhE,IAaqC6G,CAAkB7G,IADvC,SAAUA,GAAa,OAAOA,GAX9C,IAWgEA,GAPhE,GAQqE8G,CAAkB9G,GAMpF+G,CAAS/G,IALM,SAAUA,GAAa,OAAOA,GAlC1C,IAuCoBgH,CAAoBhH,IArDvC,KAqDqDA,GAEhEiH,GAAkB,SAAUjH,GAC5B,OAAO4G,GAAqB5G,IAAcyG,GAAQzG,IAvDnC,KAuDiDA,GAEhEkH,GAA0B,SAAUlH,GACpC,OAASA,GArCF,GAqCuBA,GApClB,GACM,KAoCdA,GACCA,GApCO,IAoCmBA,GAnCH,IACnB,MAmCLA,GAEJmH,GAAgB,SAAUC,EAAIC,GAC9B,OA5EkB,KA4EdD,GA9EQ,KAiFLC,GAEPC,GAAoB,SAAUF,EAAIC,EAAIE,GACtC,OAtEe,KAsEXH,EACOR,GAAqBS,IAAOF,GAAcE,EAAIE,KAEhDX,GAAqBQ,MArFZ,KAwFTA,IAA0BD,GAAcC,EAAIC,KAKrDG,GAAgB,SAAUJ,EAAIC,EAAIE,GAClC,OAlEY,KAkERH,GAlFW,KAkFSA,IAChBX,GAAQY,IA/DJ,KAkEDA,GAAoBZ,GAAQc,GAG5Bd,GArEC,KAoERW,EACeC,EAEJD,IAEfK,GAAiB,SAAUhI,GAC3B,IAAI9f,EAAI,EACJ+nB,EAAO,EA/EC,KAgFRjI,EAAW9f,IAhGA,KAgGoB8f,EAAW9f,KAhG/B,KAiGP8f,EAAW9f,KACX+nB,GAAQ,GAEZ/nB,KAGJ,IADA,IAAIgoB,EAAW,GACRlB,GAAQhH,EAAW9f,KACtBgoB,EAASjvB,KAAK+mB,EAAW9f,MAE7B,IAAIioB,EAAMD,EAAS5wB,OAASsa,SAASuO,EAAgBlpB,WAAM,EAAQixB,GAAW,IAAM,EAtFxE,KAuFRlI,EAAW9f,IACXA,IAGJ,IADA,IAAIkoB,EAAW,GACRpB,GAAQhH,EAAW9f,KACtBkoB,EAASnvB,KAAK+mB,EAAW9f,MAE7B,IAAImoB,EAAQD,EAAS9wB,OACjBgxB,EAAOD,EAAQzW,SAASuO,EAAgBlpB,WAAM,EAAQmxB,GAAW,IAAM,EAhFvE,KAiFApI,EAAW9f,IAtFX,MAsFuB8f,EAAW9f,IAClCA,IAEJ,IAAIqoB,EAAU,EAvGF,KAwGRvI,EAAW9f,IAxHA,KAwHoB8f,EAAW9f,KAxH/B,KAyHP8f,EAAW9f,KACXqoB,GAAW,GAEfroB,KAGJ,IADA,IAAIsoB,EAAW,GACRxB,GAAQhH,EAAW9f,KACtBsoB,EAASvvB,KAAK+mB,EAAW9f,MAE7B,IAAIuoB,EAAMD,EAASlxB,OAASsa,SAASuO,EAAgBlpB,WAAM,EAAQuxB,GAAW,IAAM,EACpF,OAAOP,GAAQE,EAAMG,EAAO3b,KAAK+b,IAAI,IAAKL,IAAU1b,KAAK+b,IAAI,GAAIH,EAAUE,IAE3EE,GAAyB,CACzB/xB,KAAM,GAENgyB,GAA0B,CAC1BhyB,KAAM,GAENiyB,GAAc,CAAEjyB,KAAM,GACtBkyB,GAAqB,CAAElyB,KAAM,IAC7BmyB,GAAqB,CAAEnyB,KAAM,GAC7BoyB,GAAe,CAAEpyB,KAAM,IACvBqyB,GAAmB,CAAEryB,KAAM,GAC3BsyB,GAAsB,CAAEtyB,KAAM,IAC9BuyB,GAA2B,CAC3BvyB,KAAM,IAENwyB,GAA4B,CAC5BxyB,KAAM,IAENyyB,GAAwB,CAAEzyB,KAAM,IAChC0yB,GAAgB,CAAE1yB,KAAM,IACxB2yB,GAAmB,CAAE3yB,KAAM,GAC3B4yB,GAAY,CAAE5yB,KAAM,IACpB6yB,GAAY,CAAE7yB,KAAM,IACpB8yB,GAAc,CAAE9yB,KAAM,IACtB+yB,GAAkB,CAAE/yB,KAAM,IAC1BgzB,GAA4B,CAC5BhzB,KAAM,IAENizB,GAA6B,CAC7BjzB,KAAM,IAENkzB,GAAmB,CAAElzB,KAAM,IAC3BmzB,GAAY,CAAEnzB,KAAM,IACpBozB,GAA2B,WAC3B,SAASA,IACLlzB,KAAKmzB,OAAS,GAmblB,OAjbAD,EAAUtvB,UAAUwvB,MAAQ,SAAUC,GAClCrzB,KAAKmzB,OAASnzB,KAAKmzB,OAAO7wB,OAAO2mB,EAAeoK,KAEpDH,EAAUtvB,UAAUyZ,KAAO,WAGvB,IAFA,IAAIiW,EAAS,GACTC,EAAQvzB,KAAKwzB,eACVD,IAAUN,IACbK,EAAOnxB,KAAKoxB,GACZA,EAAQvzB,KAAKwzB,eAEjB,OAAOF,GAEXJ,EAAUtvB,UAAU4vB,aAAe,WAC/B,IAAI/J,EAAYzpB,KAAKyzB,mBACrB,OAAQhK,GACJ,KAlMS,GAmML,OAAOzpB,KAAK0zB,mBAnMP,IAoMT,KAlMM,GAmMF,IAAI7C,EAAK7wB,KAAK2zB,cAAc,GACxB7C,EAAK9wB,KAAK2zB,cAAc,GACxB3C,EAAKhxB,KAAK2zB,cAAc,GAC5B,GAAIjD,GAAgBG,IAAOD,GAAcE,EAAIE,GAAK,CAC9C,IAAI4C,EAAQ7C,GAAkBF,EAAIC,EAAIE,GAjN5C,EADU,EAoNJ,MAAO,CAAElxB,KAAM,EAAoByE,MADvBvE,KAAK6zB,cACgCD,MAAOA,GAE5D,MACJ,KA3MM,GA4MF,GA9ME,KA8ME5zB,KAAK2zB,cAAc,GAEnB,OADA3zB,KAAKyzB,mBACEzB,GAEX,MACJ,KA/MK,GAgND,OAAOhyB,KAAK0zB,mBAhNX,IAiNL,KAhNW,GAiNP,OAAO7B,GACX,KAjNY,GAkNR,OAAOC,GACX,KAlMG,GAmMC,GA1NE,KA0NE9xB,KAAK2zB,cAAc,GAEnB,OADA3zB,KAAKyzB,mBACElB,GAEX,MACJ,KAvMI,GAwMA,GAAItB,GAAcxH,EAAWzpB,KAAK2zB,cAAc,GAAI3zB,KAAK2zB,cAAc,IAEnE,OADA3zB,KAAK8zB,mBAAmBrK,GACjBzpB,KAAK+zB,sBAEhB,MACJ,KA5MA,GA6MI,OAAOhC,GACX,KA/NO,GAgOH,IAAIiC,EAAKvK,EACLwK,EAAKj0B,KAAK2zB,cAAc,GACxBO,EAAKl0B,KAAK2zB,cAAc,GAC5B,GAAI1C,GAAc+C,EAAIC,EAAIC,GAEtB,OADAl0B,KAAK8zB,mBAAmBrK,GACjBzpB,KAAK+zB,sBAEhB,GAAIhD,GAAkBiD,EAAIC,EAAIC,GAE1B,OADAl0B,KAAK8zB,mBAAmBrK,GACjBzpB,KAAKm0B,wBAEhB,GA3OG,KA2OCF,GAxOI,KAwOmBC,EAGvB,OAFAl0B,KAAKyzB,mBACLzzB,KAAKyzB,mBACEd,GAEX,MACJ,KA7NI,GA8NA,GAAI1B,GAAcxH,EAAWzpB,KAAK2zB,cAAc,GAAI3zB,KAAK2zB,cAAc,IAEnE,OADA3zB,KAAK8zB,mBAAmBrK,GACjBzpB,KAAK+zB,sBAEhB,MACJ,KApQE,GAqQE,GAzOD,KAyOK/zB,KAAK2zB,cAAc,GAEnB,IADA3zB,KAAKyzB,qBACQ,CACT,IAAIrqB,EAAIpJ,KAAKyzB,mBACb,GA7OT,KA6OarqB,GAzQd,MA0QcA,EAAIpJ,KAAKyzB,oBAEL,OAAOzzB,KAAKwzB,eAGpB,IAvOd,IAuOkBpqB,EACA,OAAOpJ,KAAKwzB,eAIxB,MACJ,KAtPA,GAuPI,OAAOZ,GACX,KAvPI,GAwPA,OAAOC,GACX,KA1QS,GA2QL,GA5QO,KA4QH7yB,KAAK2zB,cAAc,IA7QpB,KA8QC3zB,KAAK2zB,cAAc,IA9QpB,KA+QC3zB,KAAK2zB,cAAc,GAGnB,OAFA3zB,KAAKyzB,mBACLzzB,KAAKyzB,mBACEf,GAEX,MACJ,KAjRQ,GAkRJ,IAAI0B,EAAKp0B,KAAK2zB,cAAc,GACxBU,EAAKr0B,KAAK2zB,cAAc,GACxBW,EAAKt0B,KAAK2zB,cAAc,GAC5B,GAAI5C,GAAkBqD,EAAIC,EAAIC,GAE1B,MAAO,CAAEx0B,KAAM,EAA0ByE,MAD7BvE,KAAK6zB,eAGrB,MACJ,KAzRc,GA0RV,OAAOf,GACX,KA5SU,GA6SN,GAAIlC,GAAcnH,EAAWzpB,KAAK2zB,cAAc,IAE5C,OADA3zB,KAAK8zB,mBAAmBrK,GACjBzpB,KAAKm0B,wBAEhB,MACJ,KAhSe,GAiSX,OAAOpB,GACX,KAjSY,GAkSR,GAjTE,KAiTE/yB,KAAK2zB,cAAc,GAEnB,OADA3zB,KAAKyzB,mBACExB,GAEX,MACJ,KAtSa,IAuST,OAAOI,GACX,KAtSc,IAuSV,OAAOC,GACX,KAlRJ,IAmRI,KA9QJ,GA+QQ,IAAIiC,EAAKv0B,KAAK2zB,cAAc,GACxBa,EAAKx0B,KAAK2zB,cAAc,GAM5B,OA3SA,KAsSIY,IAAqBpE,GAAMqE,IA7S3B,KA6SkCA,IAClCx0B,KAAKyzB,mBACLzzB,KAAKy0B,4BAETz0B,KAAK8zB,mBAAmBrK,GACjBzpB,KAAKm0B,wBAChB,KAjTQ,IAkTJ,GArUE,KAqUEn0B,KAAK2zB,cAAc,GAEnB,OADA3zB,KAAKyzB,mBACEtB,GAEX,GAtTI,MAsTAnyB,KAAK2zB,cAAc,GAEnB,OADA3zB,KAAKyzB,mBACEvB,GAEX,MACJ,KA1TA,IA2TI,GA/UE,KA+UElyB,KAAK2zB,cAAc,GAEnB,OADA3zB,KAAKyzB,mBACErB,GAEX,MACJ,KAjTF,EAkTM,OAAOa,GAEf,OAAI7C,GAAa3G,IACbzpB,KAAK00B,oBACE1B,IAEP9C,GAAQzG,IACRzpB,KAAK8zB,mBAAmBrK,GACjBzpB,KAAK+zB,uBAEZ1D,GAAqB5G,IACrBzpB,KAAK8zB,mBAAmBrK,GACjBzpB,KAAKm0B,yBAET,CAAEr0B,KAAM,EAAqByE,MAAO8kB,EAAgBI,KAE/DyJ,EAAUtvB,UAAU6vB,iBAAmB,WACnC,IAAIlvB,EAAQvE,KAAKmzB,OAAOzvB,QACxB,MAAwB,qBAAVa,GAAyB,EAAIA,GAE/C2uB,EAAUtvB,UAAUkwB,mBAAqB,SAAUrK,GAC/CzpB,KAAKmzB,OAAOwB,QAAQlL,IAExByJ,EAAUtvB,UAAU+vB,cAAgB,SAAUiB,GAC1C,OAAIA,GAAS50B,KAAKmzB,OAAO3yB,QACb,EAELR,KAAKmzB,OAAOyB,IAEvB1B,EAAUtvB,UAAU6wB,yBAA2B,WAG3C,IAFA,IAAII,EAAS,GACTpL,EAAYzpB,KAAKyzB,mBACdtD,GAAM1G,IAAcoL,EAAOr0B,OAAS,GACvCq0B,EAAO1yB,KAAKsnB,GACZA,EAAYzpB,KAAKyzB,mBAGrB,IADA,IAAIqB,GAAgB,EAxWR,KAyWLrL,GAA+BoL,EAAOr0B,OAAS,GAClDq0B,EAAO1yB,KAAKsnB,GACZA,EAAYzpB,KAAKyzB,mBACjBqB,GAAgB,EAEpB,GAAIA,EAGA,MAAO,CAAEh1B,KAAM,GAA8BsqB,MAF/BtP,SAASuO,EAAgBlpB,WAAM,EAAQ00B,EAAOtrB,KAAI,SAAUwrB,GAAS,OA/W3E,KA+WmFA,EA5V5F,GA4V6HA,MAAa,IAE5E1K,IADnDvP,SAASuO,EAAgBlpB,WAAM,EAAQ00B,EAAOtrB,KAAI,SAAUwrB,GAAS,OAhXvE,KAgX+EA,EArV3F,GAqVyHA,MAAa,KAGtI,IAAI3K,EAAQtP,SAASuO,EAAgBlpB,WAAM,EAAQ00B,GAAS,IAC5D,GA7XW,KA6XP70B,KAAK2zB,cAAc,IAAuBxD,GAAMnwB,KAAK2zB,cAAc,IAAK,CACxE3zB,KAAKyzB,mBACLhK,EAAYzpB,KAAKyzB,mBAEjB,IADA,IAAIuB,EAAY,GACT7E,GAAM1G,IAAcuL,EAAUx0B,OAAS,GAC1Cw0B,EAAU7yB,KAAKsnB,GACfA,EAAYzpB,KAAKyzB,mBAGrB,MAAO,CAAE3zB,KAAM,GAA8BsqB,MAAOA,EAAOC,IADjDvP,SAASuO,EAAgBlpB,WAAM,EAAQ60B,GAAY,KAI7D,MAAO,CAAEl1B,KAAM,GAA8BsqB,MAAOA,EAAOC,IAAKD,IAGxE8I,EAAUtvB,UAAUuwB,sBAAwB,WACxC,IAAI5vB,EAAQvE,KAAK6zB,cACjB,MAA4B,QAAxBtvB,EAAMiG,eAjZK,KAiZsBxK,KAAK2zB,cAAc,IACpD3zB,KAAKyzB,mBACEzzB,KAAKi1B,mBAnZD,KAqZNj1B,KAAK2zB,cAAc,IACxB3zB,KAAKyzB,mBACE,CAAE3zB,KAAM,GAAyByE,MAAOA,IAE5C,CAAEzE,KAAM,GAAsByE,MAAOA,IAEhD2uB,EAAUtvB,UAAUqxB,gBAAkB,WAClC,IAAI1wB,EAAQ,GAEZ,GADAvE,KAAK00B,qBA/XH,IAgYE10B,KAAK2zB,cAAc,GACnB,MAAO,CAAE7zB,KAAM,GAAoByE,MAAO,IAE9C,IAAI6Y,EAAOpd,KAAK2zB,cAAc,GAC9B,GAnaS,KAmaLvW,GAxaS,KAwacA,EAAyB,CAChD,IAAI8X,EAAcl1B,KAAK0zB,mBAAmB1zB,KAAKyzB,oBAC/C,OAAyB,IAArByB,EAAYp1B,OACZE,KAAK00B,qBAvYX,IAwYU10B,KAAK2zB,cAAc,IAraf,KAqa6B3zB,KAAK2zB,cAAc,KACpD3zB,KAAKyzB,mBACE,CAAE3zB,KAAM,GAAoByE,MAAO2wB,EAAY3wB,SAG9DvE,KAAKm1B,wBACE3C,IAEX,OAAa,CACT,IAAI/I,EAAYzpB,KAAKyzB,mBACrB,IAlZF,IAkZMhK,GA/aQ,KA+aaA,EACrB,MAAO,CAAE3pB,KAAM,GAAoByE,MAAO8kB,EAAgBlpB,WAAM,EAAQoE,IAEvE,GAAI6rB,GAAa3G,GAElB,OADAzpB,KAAK00B,qBAtZX,IAuZU10B,KAAK2zB,cAAc,IApbf,KAob6B3zB,KAAK2zB,cAAc,IACpD3zB,KAAKyzB,mBACE,CAAE3zB,KAAM,GAAoByE,MAAO8kB,EAAgBlpB,WAAM,EAAQoE,MAE5EvE,KAAKm1B,wBACE3C,IAEN,GAlcI,KAkcA/I,GA7bJ,KA8bDA,GA7bO,KA8bPA,GACAkH,GAAwBlH,GAExB,OADAzpB,KAAKm1B,wBACE3C,GAEN,GA5cK,KA4cD/I,EAA+B,CACpC,IAAImH,GAAcnH,EAAWzpB,KAAK2zB,cAAc,IAK5C,OADA3zB,KAAKm1B,wBACE3C,GAJPjuB,EAAMpC,KAAKnC,KAAKo1B,gCAQpB7wB,EAAMpC,KAAKsnB,KAIvByJ,EAAUtvB,UAAU8wB,kBAAoB,WACpC,KAAOtE,GAAapwB,KAAK2zB,cAAc,KACnC3zB,KAAKyzB,oBAGbP,EAAUtvB,UAAUuxB,sBAAwB,WACxC,OAAa,CACT,IAAI1L,EAAYzpB,KAAKyzB,mBACrB,GAxdY,KAwdRhK,IA3bN,IA2byCA,EACnC,OAEAmH,GAAcnH,EAAWzpB,KAAK2zB,cAAc,KAC5C3zB,KAAKo1B,4BAIjBlC,EAAUtvB,UAAUyxB,mBAAqB,SAAUvpB,GAG/C,IAFA,IACIvH,EAAQ,GACLuH,EAAQ,GAAG,CACd,IAAIwpB,EAASzf,KAAK0f,IAHC,IAGqBzpB,GACxCvH,GAAS8kB,EAAgBlpB,WAAM,EAAQH,KAAKmzB,OAAOjtB,OAAO,EAAGovB,IAC7DxpB,GAASwpB,EAGb,OADAt1B,KAAKmzB,OAAOzvB,QACLa,GAEX2uB,EAAUtvB,UAAU8vB,mBAAqB,SAAU8B,GAG/C,IAFA,IAAIjxB,EAAQ,GACRW,EAAI,IACL,CACC,IAAIukB,EAAYzpB,KAAKmzB,OAAOjuB,GAC5B,IAndF,IAmdMukB,QAAmChpB,IAAdgpB,GAA2BA,IAAc+L,EAE9D,MAAO,CAAE11B,KAAM,EAAsByE,MADrCA,GAASvE,KAAKq1B,mBAAmBnwB,IAGrC,GAhgBI,KAggBAukB,EAEA,OADAzpB,KAAKmzB,OAAOjtB,OAAO,EAAGhB,GACfutB,GAEX,GAlgBU,KAkgBNhJ,EAA+B,CAC/B,IAAIrM,EAAOpd,KAAKmzB,OAAOjuB,EAAI,IA5djC,IA6dUkY,QAAyB3c,IAAT2c,IAtgBpB,KAugBQA,GACA7Y,GAASvE,KAAKq1B,mBAAmBnwB,GACjCA,GAAK,EACLlF,KAAKmzB,OAAOzvB,SAEPktB,GAAcnH,EAAWrM,KAC9B7Y,GAASvE,KAAKq1B,mBAAmBnwB,GACjCX,GAAS8kB,EAAgBrpB,KAAKo1B,2BAC9BlwB,GAAK,IAIjBA,MAGRguB,EAAUtvB,UAAU6xB,cAAgB,WAChC,IAAIC,EAAO,GACP51B,EA1hBO,EA2hBP+wB,EAAK7wB,KAAK2zB,cAAc,GAI5B,IA/fQ,KA4fJ9C,GA5gBO,KA4gBaA,GACpB6E,EAAKvzB,KAAKnC,KAAKyzB,oBAEZvD,GAAQlwB,KAAK2zB,cAAc,KAC9B+B,EAAKvzB,KAAKnC,KAAKyzB,oBAEnB5C,EAAK7wB,KAAK2zB,cAAc,GACxB,IAAI7C,EAAK9wB,KAAK2zB,cAAc,GAC5B,GAhgBQ,KAggBJ9C,GAAoBX,GAAQY,GAG5B,IAFA4E,EAAKvzB,KAAKnC,KAAKyzB,mBAAoBzzB,KAAKyzB,oBACxC3zB,EAriBM,EAsiBCowB,GAAQlwB,KAAK2zB,cAAc,KAC9B+B,EAAKvzB,KAAKnC,KAAKyzB,oBAGvB5C,EAAK7wB,KAAK2zB,cAAc,GACxB7C,EAAK9wB,KAAK2zB,cAAc,GACxB,IAAI3C,EAAKhxB,KAAK2zB,cAAc,GAC5B,IA3fA,KA2fK9C,GAhgBL,MAggBiBA,MA9gBT,KA8gByBC,GA9hBtB,KA8hB0CA,IAAwBZ,GAAQc,IAAQd,GAAQY,IAGjG,IAFA4E,EAAKvzB,KAAKnC,KAAKyzB,mBAAoBzzB,KAAKyzB,oBACxC3zB,EA/iBM,EAgjBCowB,GAAQlwB,KAAK2zB,cAAc,KAC9B+B,EAAKvzB,KAAKnC,KAAKyzB,oBAGvB,MAAO,CAACvC,GAAewE,GAAO51B,IAElCozB,EAAUtvB,UAAUmwB,oBAAsB,WACtC,IAAIvE,EAAKxvB,KAAKy1B,gBAAiBjgB,EAASga,EAAG,GAAIoE,EAAQpE,EAAG,GACtDqB,EAAK7wB,KAAK2zB,cAAc,GACxB7C,EAAK9wB,KAAK2zB,cAAc,GACxB3C,EAAKhxB,KAAK2zB,cAAc,GAC5B,OAAI5C,GAAkBF,EAAIC,EAAIE,GAEnB,CAAElxB,KAAM,GAA0B0V,OAAQA,EAAQoe,MAAOA,EAAO+B,KAD5D31B,KAAK6zB,eAljBN,KAqjBVhD,GACA7wB,KAAKyzB,mBACE,CAAE3zB,KAAM,GAA2B0V,OAAQA,EAAQoe,MAAOA,IAE9D,CAAE9zB,KAAM,GAAuB0V,OAAQA,EAAQoe,MAAOA,IAEjEV,EAAUtvB,UAAUwxB,wBAA0B,WAC1C,IAAI3L,EAAYzpB,KAAKyzB,mBACrB,GAAItD,GAAM1G,GAAY,CAElB,IADA,IAAImM,EAAMvM,EAAgBI,GACnB0G,GAAMnwB,KAAK2zB,cAAc,KAAOiC,EAAIp1B,OAAS,GAChDo1B,GAAOvM,EAAgBrpB,KAAKyzB,oBAE5BrD,GAAapwB,KAAK2zB,cAAc,KAChC3zB,KAAKyzB,mBAET,IAAIoC,EAAe/a,SAAS8a,EAAK,IACjC,OAAqB,IAAjBC,GAzhBW,SAAUpM,GAAa,OAAOA,GAAa,OAAUA,GAAa,MAyhBvDqM,CAAqBD,IAAiBA,EAAe,QAnjB/D,MAsjBTA,EAEX,OA3iBE,IA2iBEpM,EAxjBgB,MA2jBbA,GAEXyJ,EAAUtvB,UAAUiwB,YAAc,WAE9B,IADA,IAAIztB,EAAS,KACA,CACT,IAAIqjB,EAAYzpB,KAAKyzB,mBACrB,GAAI/C,GAAgBjH,GAChBrjB,GAAUijB,EAAgBI,OAEzB,KAAImH,GAAcnH,EAAWzpB,KAAK2zB,cAAc,IAKjD,OADA3zB,KAAK8zB,mBAAmBrK,GACjBrjB,EAJPA,GAAUijB,EAAgBrpB,KAAKo1B,8BAQpClC,EArbmB,GAwb1B6C,GAAwB,WACxB,SAASA,EAAOzC,GACZtzB,KAAKg2B,QAAU1C,EAwFnB,OAtFAyC,EAAOttB,OAAS,SAAUlE,GACtB,IAAI0xB,EAAY,IAAI/C,GAEpB,OADA+C,EAAU7C,MAAM7uB,GACT,IAAIwxB,EAAOE,EAAU5Y,SAEhC0Y,EAAOG,WAAa,SAAU3xB,GAC1B,OAAOwxB,EAAOttB,OAAOlE,GAAO4xB,uBAEhCJ,EAAOK,YAAc,SAAU7xB,GAC3B,OAAOwxB,EAAOttB,OAAOlE,GAAO8xB,wBAEhCN,EAAOnyB,UAAUuyB,oBAAsB,WAEnC,IADA,IAAI5C,EAAQvzB,KAAKwzB,eACK,KAAfD,EAAMzzB,MACTyzB,EAAQvzB,KAAKwzB,eAEjB,GAAmB,KAAfD,EAAMzzB,KACN,MAAM,IAAIw2B,YAAY,qDAE1Bt2B,KAAKu2B,eAAehD,GACpB,IAAIhvB,EAAQvE,KAAKw2B,wBACjB,GACIjD,EAAQvzB,KAAKwzB,qBACO,KAAfD,EAAMzzB,MACf,GAAmB,KAAfyzB,EAAMzzB,KACN,OAAOyE,EAEX,MAAM,IAAI+xB,YAAY,qFAE1BP,EAAOnyB,UAAUyyB,qBAAuB,WAEpC,IADA,IAAII,EAAS,KACA,CACT,IAAIlyB,EAAQvE,KAAKw2B,wBACjB,GAAmB,KAAfjyB,EAAMzE,KACN,OAAO22B,EAEXA,EAAOt0B,KAAKoC,GACZkyB,EAAOt0B,SAGf4zB,EAAOnyB,UAAU4yB,sBAAwB,WACrC,IAAIjD,EAAQvzB,KAAKwzB,eACjB,OAAQD,EAAMzzB,MACV,KAAK,GACL,KAAK,GACL,KAAK,EACD,OAAOE,KAAK02B,mBAAmBnD,EAAMzzB,MACzC,KAAK,GACD,OAAOE,KAAK22B,gBAAgBpD,GAEpC,OAAOA,GAEXwC,EAAOnyB,UAAU8yB,mBAAqB,SAAU52B,GAG5C,IAFA,IAAI82B,EAAQ,CAAE92B,KAAMA,EAAM22B,OAAQ,IAC9BlD,EAAQvzB,KAAKwzB,iBACJ,CACT,GAAmB,KAAfD,EAAMzzB,MAA+B+2B,GAAiBtD,EAAOzzB,GAC7D,OAAO82B,EAEX52B,KAAKu2B,eAAehD,GACpBqD,EAAMH,OAAOt0B,KAAKnC,KAAKw2B,yBACvBjD,EAAQvzB,KAAKwzB,iBAGrBuC,EAAOnyB,UAAU+yB,gBAAkB,SAAUG,GAMzC,IALA,IAAIC,EAAc,CACdhvB,KAAM+uB,EAAcvyB,MACpBkyB,OAAQ,GACR32B,KAAM,MAEG,CACT,IAAIyzB,EAAQvzB,KAAKwzB,eACjB,GAAmB,KAAfD,EAAMzzB,MAA8C,IAAfyzB,EAAMzzB,KAC3C,OAAOi3B,EAEX/2B,KAAKu2B,eAAehD,GACpBwD,EAAYN,OAAOt0B,KAAKnC,KAAKw2B,2BAGrCT,EAAOnyB,UAAU4vB,aAAe,WAC5B,IAAID,EAAQvzB,KAAKg2B,QAAQtyB,QACzB,MAAwB,qBAAV6vB,EAAwBN,GAAYM,GAEtDwC,EAAOnyB,UAAU2yB,eAAiB,SAAUhD,GACxCvzB,KAAKg2B,QAAQrB,QAAQpB,IAElBwC,EA1FgB,GA4FvBiB,GAAmB,SAAUzD,GAAS,OAAsB,KAAfA,EAAMzzB,MACnDm3B,GAAgB,SAAU1D,GAAS,OAAsB,KAAfA,EAAMzzB,MAChDo3B,GAAe,SAAU3D,GAAS,OAAsB,KAAfA,EAAMzzB,MAC/Cq3B,GAAgB,SAAU5D,GAAS,OAAsB,IAAfA,EAAMzzB,MAChDs3B,GAAmB,SAAU7D,EAAOhvB,GACpC,OAAO2yB,GAAa3D,IAAUA,EAAMhvB,QAAUA,GAE9C8yB,GAAgB,SAAU9D,GAAS,OAAsB,KAAfA,EAAMzzB,MAChDw3B,GAA0B,SAAU/D,GACpC,OAAsB,KAAfA,EAAMzzB,MAAqD,IAAfyzB,EAAMzzB,MAEzDy3B,GAAoB,SAAUjE,GAC9B,IAAIvzB,EAAO,GACPy3B,EAAM,GAiBV,OAhBAlE,EAAOrxB,SAAQ,SAAUsxB,GACrB,GAAmB,IAAfA,EAAMzzB,KAA8B,CACpC,GAAmB,IAAf03B,EAAIh3B,OACJ,MAAM,IAAIwf,MAAM,oDAIpB,OAFAjgB,EAAKoC,KAAKq1B,QACVA,EAAM,IAGS,KAAfjE,EAAMzzB,MACN03B,EAAIr1B,KAAKoxB,MAGbiE,EAAIh3B,QACJT,EAAKoC,KAAKq1B,GAEPz3B,GAEP82B,GAAmB,SAAUtD,EAAOzzB,GACpC,OAAa,KAATA,GAA6D,KAAfyzB,EAAMzzB,MAG3C,KAATA,GAA8D,KAAfyzB,EAAMzzB,MAGzC,IAATA,GAA0D,IAAfyzB,EAAMzzB,MAGxD23B,GAAW,SAAUlE,GACrB,OAAsB,KAAfA,EAAMzzB,MAAiD,KAAfyzB,EAAMzzB,MAGrD43B,GAAqB,SAAUnE,GAC/B,OAAsB,KAAfA,EAAMzzB,MAAsC23B,GAASlE,IAE5DoE,GAA6B,SAAUrE,GACvC,OAAOA,EAAO9yB,OAAS,EAAI,CAAC8yB,EAAO,GAAIA,EAAO,IAAM,CAACA,EAAO,KAE5DsE,GAAc,CACd93B,KAAM,GACN0V,OAAQ,EACRoe,MAjwBe,GAmwBfiE,GAAgB,CAChB/3B,KAAM,GACN0V,OAAQ,GACRoe,MAtwBe,GAwwBfkE,GAAkB,CAClBh4B,KAAM,GACN0V,OAAQ,IACRoe,MA3wBe,GA6wBfmE,GAA2B,SAAUC,EAAO/P,EAAOC,GACnD,IAAIE,EAAI4P,EAAM,GAAIjR,EAAIiR,EAAM,GAC5B,MAAO,CAACC,GAAiB7P,EAAGH,GAAQgQ,GAA8B,qBAANlR,EAAoBA,EAAIqB,EAAGF,KAEvF+P,GAAmB,SAAU1E,EAAO2E,GACpC,GAAmB,KAAf3E,EAAMzzB,KACN,OAAQyzB,EAAM/d,OAAS,IAAO0iB,EAElC,GAAIlB,GAAiBzD,GACjB,OAAQA,EAAMoC,MACV,IAAK,MACL,IAAK,KACD,OAAO,GAAKpC,EAAM/d,OACtB,IAAK,KACL,QACI,OAAO+d,EAAM/d,OAGzB,OAAO+d,EAAM/d,QAOb2iB,GAEO,SAAUC,EAAU7zB,GACvB,GAAmB,KAAfA,EAAMzE,KACN,OAAQyE,EAAMoxB,MACV,IATN,MAUU,OAAQ9f,KAAKwiB,GAAK9zB,EAAMiR,OAAU,IACtC,IAVL,OAWS,OAAQK,KAAKwiB,GAAK,IAAO9zB,EAAMiR,OACnC,IAXN,MAYU,OAAOjR,EAAMiR,OACjB,IAZL,OAaS,OAAiB,EAAVK,KAAKwiB,GAAS9zB,EAAMiR,OAGvC,MAAM,IAAIwK,MAAM,2BAGpBsY,GAAU,SAAU/zB,GACpB,OAAmB,KAAfA,EAAMzE,OAvBJ,QAwBEyE,EAAMoxB,MAvBP,SAuBuBpxB,EAAMoxB,MAtB9B,QAsB+CpxB,EAAMoxB,MArBpD,SAqBoEpxB,EAAMoxB,OAMjF4C,GAAiB,SAAUjF,GAK3B,OAJmBA,EACdlxB,OAAO80B,IACP3tB,KAAI,SAAUivB,GAAS,OAAOA,EAAMj0B,SACpCe,KAAK,MAEN,IAAK,kBACL,IAAK,kBACL,IAAK,WACL,IAAK,WACD,MAAO,CAACsyB,GAAaA,IACzB,IAAK,SACL,IAAK,SACD,OAAOa,GAAI,GACf,IAAK,iBACL,IAAK,iBACL,IAAK,YACL,IAAK,YACD,MAAO,CAACb,GAAaE,IACzB,IAAK,WACL,IAAK,OACD,OAAOW,GAAI,IACf,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,eACD,MAAO,CAACX,GAAiBA,IAC7B,IAAK,YACL,IAAK,MACD,OAAOW,GAAI,KACf,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,cACD,MAAO,CAACX,GAAiBF,IAC7B,IAAK,UACL,IAAK,QACD,OAAOa,GAAI,KAEnB,OAAO,GAEPA,GAAM,SAAUA,GAAO,OAAQ5iB,KAAKwiB,GAAKI,EAAO,KAEhDC,GAEO,SAAUlqB,EAASjK,GACtB,GAAmB,KAAfA,EAAMzE,KAA4B,CAClC,IAAI64B,EAAgBC,GAA0Br0B,EAAMwD,MACpD,GAA6B,qBAAlB4wB,EACP,MAAM,IAAI3Y,MAAM,sDAAyDzb,EAAMwD,KAAO,KAE1F,OAAO4wB,EAAcnqB,EAASjK,EAAMkyB,QAExC,GAAmB,IAAflyB,EAAMzE,KAA6B,CACnC,GAA2B,IAAvByE,EAAMA,MAAM/D,OAAc,CAC1B,IAAI6I,EAAI9E,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bqd,EAAIziB,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bkc,EAAIthB,EAAMA,MAAMoF,UAAU,EAAG,GACjC,OAAO7C,GAAKgU,SAASzR,EAAIA,EAAG,IAAKyR,SAASkM,EAAIA,EAAG,IAAKlM,SAAS+K,EAAIA,EAAG,IAAK,GAE/E,GAA2B,IAAvBthB,EAAMA,MAAM/D,OAAc,CACtB6I,EAAI9E,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bqd,EAAIziB,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bkc,EAAIthB,EAAMA,MAAMoF,UAAU,EAAG,GAFjC,IAGIrB,EAAI/D,EAAMA,MAAMoF,UAAU,EAAG,GACjC,OAAO7C,GAAKgU,SAASzR,EAAIA,EAAG,IAAKyR,SAASkM,EAAIA,EAAG,IAAKlM,SAAS+K,EAAIA,EAAG,IAAK/K,SAASxS,EAAIA,EAAG,IAAM,KAErG,GAA2B,IAAvB/D,EAAMA,MAAM/D,OAIZ,OAHI6I,EAAI9E,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bqd,EAAIziB,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bkc,EAAIthB,EAAMA,MAAMoF,UAAU,EAAG,GAC1B7C,GAAKgU,SAASzR,EAAG,IAAKyR,SAASkM,EAAG,IAAKlM,SAAS+K,EAAG,IAAK,GAEnE,GAA2B,IAAvBthB,EAAMA,MAAM/D,OAKZ,OAJI6I,EAAI9E,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bqd,EAAIziB,EAAMA,MAAMoF,UAAU,EAAG,GAC7Bkc,EAAIthB,EAAMA,MAAMoF,UAAU,EAAG,GAC7BrB,EAAI/D,EAAMA,MAAMoF,UAAU,EAAG,GAC1B7C,GAAKgU,SAASzR,EAAG,IAAKyR,SAASkM,EAAG,IAAKlM,SAAS+K,EAAG,IAAK/K,SAASxS,EAAG,IAAM,KAGzF,GAAmB,KAAf/D,EAAMzE,KAA+B,CACrC,IAAI+4B,EAAaC,GAAOv0B,EAAMA,MAAMmM,eACpC,GAA0B,qBAAfmoB,EACP,OAAOA,EAGf,OAAOC,GAAOC,aAGlBC,GAAgB,SAAUC,GAAS,OAA0B,KAAlB,IAAOA,IAClDC,GAAW,SAAUD,GACrB,IAAIE,EAAQ,IAAOF,EACfG,EAAO,IAAQH,GAAS,EACxBI,EAAQ,IAAQJ,GAAS,GACzBK,EAAM,IAAQL,GAAS,GAC3B,OAAOE,EAAQ,IAAM,QAAUG,EAAM,IAAMD,EAAQ,IAAMD,EAAO,IAAMD,EAAQ,IAAM,IAAM,OAASG,EAAM,IAAMD,EAAQ,IAAMD,EAAO,KAEpItyB,GAAO,SAAUuC,EAAG2d,EAAGnB,EAAGvd,GAC1B,OAASe,GAAK,GAAO2d,GAAK,GAAOnB,GAAK,EAAMhQ,KAAK0jB,MAAU,IAAJjxB,IAAY,KAAQ,GAE3EkxB,GAAqB,SAAUjG,EAAOruB,GACtC,GAAmB,KAAfquB,EAAMzzB,KACN,OAAOyzB,EAAM/d,OAEjB,GAAmB,KAAf+d,EAAMzzB,KAAoC,CAC1C,IAAI25B,EAAY,IAANv0B,EAAU,EAAI,IACxB,OAAa,IAANA,EAAWquB,EAAM/d,OAAS,IAAOikB,EAAM5jB,KAAK0jB,MAAOhG,EAAM/d,OAAS,IAAOikB,GAEpF,OAAO,GAEPC,GAAM,SAAUtB,EAAUr4B,GAC1B,IAAIuzB,EAASvzB,EAAKqC,OAAOk1B,IACzB,GAAsB,IAAlBhE,EAAO9yB,OAAc,CACrB,IAAIgvB,EAAK8D,EAAO/pB,IAAIiwB,IAAqBnwB,EAAImmB,EAAG,GAAIxI,EAAIwI,EAAG,GAAI3J,EAAI2J,EAAG,GACtE,OAAO1oB,GAAKuC,EAAG2d,EAAGnB,EAAG,GAEzB,GAAsB,IAAlByN,EAAO9yB,OAAc,CACrB,IAAIm5B,EAAKrG,EAAO/pB,IAAIiwB,IAAsDlxB,GAAjCe,EAAIswB,EAAG,GAAI3S,EAAI2S,EAAG,GAAI9T,EAAI8T,EAAG,GAAQA,EAAG,IACjF,OAAO7yB,GAAKuC,EAAG2d,EAAGnB,EAAGvd,GAEzB,OAAO,GAEX,SAASsxB,GAAQC,EAAIC,EAAIC,GAOrB,OANIA,EAAM,IACNA,GAAO,GAEPA,GAAO,IACPA,GAAO,GAEPA,EAAM,EAAI,GACFD,EAAKD,GAAME,EAAM,EAAIF,EAExBE,EAAM,GACJD,EAEFC,EAAM,EAAI,EACI,GAAXD,EAAKD,IAAW,EAAI,EAAIE,GAAOF,EAGhCA,EAGf,IAwuBIG,GAxuBAC,GAAM,SAAUzrB,EAASzO,GACzB,IAAIuzB,EAASvzB,EAAKqC,OAAOk1B,IACrByC,EAAMzG,EAAO,GAAI4G,EAAa5G,EAAO,GAAI6G,EAAY7G,EAAO,GAAI6F,EAAQ7F,EAAO,GAC/EhL,GAAkB,KAAbyR,EAAIj6B,KAAiC24B,GAAIsB,EAAIvkB,QAAU2iB,GAAY3pB,EAASurB,KAAmB,EAAVlkB,KAAKwiB,IAC/FzzB,EAAI8yB,GAAmBwC,GAAcA,EAAW1kB,OAAS,IAAM,EAC/DnT,EAAIq1B,GAAmByC,GAAaA,EAAU3kB,OAAS,IAAM,EAC7DlN,EAAqB,qBAAV6wB,GAAyBzB,GAAmByB,GAASlB,GAAiBkB,EAAO,GAAK,EACjG,GAAU,IAANv0B,EACA,OAAOkC,GAAS,IAAJzE,EAAa,IAAJA,EAAa,IAAJA,EAAS,GAE3C,IAAIy3B,EAAKz3B,GAAK,GAAMA,GAAKuC,EAAI,GAAKvC,EAAIuC,EAAIvC,EAAIuC,EAC1Ci1B,EAAS,EAAJx3B,EAAQy3B,EACbzwB,EAAIuwB,GAAQC,EAAIC,EAAIxR,EAAI,EAAI,GAC5BtB,EAAI4S,GAAQC,EAAIC,EAAIxR,GACpBzC,EAAI+T,GAAQC,EAAIC,EAAIxR,EAAI,EAAI,GAChC,OAAOxhB,GAAS,IAAJuC,EAAa,IAAJ2d,EAAa,IAAJnB,EAASvd,IAEvCswB,GAA4B,CAC5BqB,IAAKA,GACLG,KAAMH,GACNP,IAAKA,GACLW,KAAMX,IAENY,GAAa,SAAU9rB,EAASjK,GAChC,OAAOm0B,GAAclqB,EAASunB,GAAOttB,OAAOlE,GAAO4xB,wBAEnD2C,GAAS,CACTyB,UAAW,WACXC,aAAc,WACdC,KAAM,SACNC,WAAY,WACZC,MAAO,WACPC,MAAO,WACPC,OAAQ,WACRC,MAAO,IACPC,eAAgB,WAChBC,KAAM,MACNC,WAAY,WACZC,MAAO,WACPC,UAAW,WACXC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,MAAO,WACPC,eAAgB,WAChBC,SAAU,WACVC,QAAS,WACTC,KAAM,SACNC,SAAU,MACVC,SAAU,QACVC,cAAe,WACfC,SAAU,WACVC,UAAW,QACXC,SAAU,WACVC,UAAW,WACXC,YAAa,WACbC,eAAgB,WAChBC,WAAY,WACZC,WAAY,WACZC,QAAS,WACTC,WAAY,WACZC,aAAc,WACdC,cAAe,WACfC,cAAe,UACfC,cAAe,UACfC,cAAe,SACfC,WAAY,WACZC,SAAU,WACVC,YAAa,SACbC,QAAS,WACTC,QAAS,WACTC,WAAY,UACZC,UAAW,WACXC,YAAa,WACbC,YAAa,UACbC,QAAS,WACTC,UAAW,WACXC,WAAY,WACZC,KAAM,WACNC,UAAW,WACXC,KAAM,WACNC,MAAO,QACPC,YAAa,WACbC,KAAM,WACNC,SAAU,WACVC,QAAS,WACTC,UAAW,WACXC,OAAQ,WACRC,MAAO,WACPC,MAAO,WACPC,SAAU,WACVC,cAAe,WACfC,UAAW,WACXC,aAAc,WACdC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,qBAAsB,WACtBC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,UAAW,WACXC,YAAa,WACbC,cAAe,UACfC,aAAc,WACdC,eAAgB,WAChBC,eAAgB,WAChBC,eAAgB,WAChBC,YAAa,WACbC,KAAM,SACNC,UAAW,UACXC,MAAO,WACPC,QAAS,WACTC,OAAQ,WACRC,iBAAkB,WAClBC,WAAY,MACZC,aAAc,WACdC,aAAc,WACdC,eAAgB,WAChBC,gBAAiB,WACjBC,kBAAmB,SACnBC,gBAAiB,WACjBC,gBAAiB,WACjBC,aAAc,UACdC,UAAW,WACXC,UAAW,WACXC,SAAU,WACVC,YAAa,WACbC,KAAM,MACNC,QAAS,WACTC,MAAO,WACPC,UAAW,WACXC,OAAQ,WACRC,UAAW,WACXC,OAAQ,WACRC,cAAe,WACfC,UAAW,WACXC,cAAe,WACfC,cAAe,WACfC,WAAY,WACZC,UAAW,WACXC,KAAM,WACNC,KAAM,WACNC,KAAM,WACNC,WAAY,WACZC,OAAQ,WACRC,cAAe,WACfC,IAAK,WACLC,UAAW,WACXC,UAAW,WACXC,YAAa,WACbC,OAAQ,WACRC,WAAY,WACZC,SAAU,UACVC,SAAU,WACVC,OAAQ,WACRC,OAAQ,WACRC,QAAS,WACTC,UAAW,WACXC,UAAW,WACXC,UAAW,WACXC,KAAM,WACNC,YAAa,SACbC,UAAW,WACXC,IAAK,WACLC,KAAM,QACNC,QAAS,WACTC,OAAQ,WACRpK,YAAa,EACbqK,UAAW,WACXC,OAAQ,WACRC,MAAO,WACPC,MAAO,WACPC,WAAY,WACZC,OAAQ,WACRC,YAAa,YAGbC,GAAiB,CACjB57B,KAAM,kBACN0iB,aAAc,aACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOA,EAAO/pB,KAAI,SAAUgqB,GACxB,GAAI2D,GAAa3D,GACb,OAAQA,EAAMhvB,OACV,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EAGnB,OAAO,OAKfq/B,GAAkB,CAClB77B,KAAM,mBACN0iB,aAAc,cACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,SAGR0tB,GAAiB,SAAUr1B,EAASzO,GACpC,IAAIk5B,EAAQP,GAAclqB,EAASzO,EAAK,IACpC+jC,EAAO/jC,EAAK,GAChB,OAAO+jC,GAAQpM,GAAmBoM,GAAQ,CAAE7K,MAAOA,EAAO6K,KAAMA,GAAS,CAAE7K,MAAOA,EAAO6K,KAAM,OAE/FC,GAAoB,SAAUC,EAAOC,GACrC,IAAIC,EAAQF,EAAM,GACdG,EAAOH,EAAMA,EAAMxjC,OAAS,GACb,OAAf0jC,EAAMJ,OACNI,EAAMJ,KAAOlM,IAEC,OAAduM,EAAKL,OACLK,EAAKL,KAAOhM,IAIhB,IAFA,IAAIsM,EAAe,GACfC,EAAW,EACNn/B,EAAI,EAAGA,EAAI8+B,EAAMxjC,OAAQ0E,IAAK,CACnC,IAAIo/B,EAASN,EAAM9+B,GAAG4+B,KACtB,GAAe,OAAXQ,EAAiB,CACjB,IAAIC,EAAgBtM,GAAiBqM,EAAQL,GACzCM,EAAgBF,EAChBD,EAAajiC,KAAKoiC,GAGlBH,EAAajiC,KAAKkiC,GAEtBA,EAAWE,OAGXH,EAAajiC,KAAK,MAG1B,IAAIqiC,EAAW,KACf,IAASt/B,EAAI,EAAGA,EAAIk/B,EAAa5jC,OAAQ0E,IAAK,CAC1C,IAAIu/B,EAASL,EAAal/B,GAC1B,GAAe,OAAXu/B,EACiB,OAAbD,IACAA,EAAWt/B,QAGd,GAAiB,OAAbs/B,EAAmB,CAIxB,IAHA,IAAIE,EAAYx/B,EAAIs/B,EAEhBG,GAAYF,EADAL,EAAaI,EAAW,KACDE,EAAY,GAC1C1d,EAAI,EAAGA,GAAK0d,EAAW1d,IAC5Bod,EAAaI,EAAWxd,EAAI,GAAK2d,EAAW3d,EAEhDwd,EAAW,MAGnB,OAAOR,EAAMz6B,KAAI,SAAUimB,EAAItqB,GAE3B,MAAO,CAAE+zB,MADGzJ,EAAGyJ,MACQ6K,KAAMjuB,KAAK4jB,IAAI5jB,KAAK0f,IAAI,EAAG6O,EAAal/B,GAAK++B,GAAa,QAUrFW,GAA6B,SAAUzM,EAAOlQ,EAAOC,GACrD,IAAI2c,EAA0B,kBAAV1M,EAAqBA,EARpB,SAAU2M,EAAQ7c,EAAOC,GAC9C,IAAI6c,EAAU9c,EAAQ,EAClB+c,EAAU9c,EAAS,EACnBE,EAAI6P,GAAiB6M,EAAO,GAAI7c,GAAS8c,EACzChe,EAAIie,EAAU/M,GAAiB6M,EAAO,GAAI5c,GAC9C,OAAQrS,KAAKovB,MAAMle,EAAGqB,GAAe,EAAVvS,KAAKwiB,KAAqB,EAAVxiB,KAAKwiB,IAGC6M,CAAmB/M,EAAOlQ,EAAOC,GAC9E+b,EAAapuB,KAAKC,IAAImS,EAAQpS,KAAKsvB,IAAIN,IAAWhvB,KAAKC,IAAIoS,EAASrS,KAAKuvB,IAAIP,IAC7EQ,EAAYpd,EAAQ,EACpBqd,EAAapd,EAAS,EACtBqd,EAAiBtB,EAAa,EAC9BuB,EAAQ3vB,KAAKsvB,IAAIN,EAAShvB,KAAKwiB,GAAK,GAAKkN,EACzCE,EAAQ5vB,KAAKuvB,IAAIP,EAAShvB,KAAKwiB,GAAK,GAAKkN,EAC7C,MAAO,CAACtB,EAAYoB,EAAYI,EAAOJ,EAAYI,EAAOH,EAAaE,EAAOF,EAAaE,IAE3FE,GAAW,SAAUp9B,EAAGud,GAAK,OAAOhQ,KAAK8vB,KAAKr9B,EAAIA,EAAIud,EAAIA,IAC1D+f,GAAa,SAAU3d,EAAOC,EAAQE,EAAGrB,EAAG8e,GAO5C,MANc,CACV,CAAC,EAAG,GACJ,CAAC,EAAG3d,GACJ,CAACD,EAAO,GACR,CAACA,EAAOC,IAEG9O,QAAO,SAAU0sB,EAAMhB,GAClC,IAAIiB,EAAKjB,EAAO,GAAIkB,EAAKlB,EAAO,GAC5Blf,EAAI8f,GAAStd,EAAI2d,EAAIhf,EAAIif,GAC7B,OAAIH,EAAUjgB,EAAIkgB,EAAKG,gBAAkBrgB,EAAIkgB,EAAKG,iBACvC,CACHC,cAAepB,EACfmB,gBAAiBrgB,GAGlBkgB,IACR,CACCG,gBAAiBJ,EAAUM,KAAW,IACtCD,cAAe,OAChBA,eAoFHE,GAAuB,SAAU53B,EAAS8kB,GAC1C,IAAI+S,EAAU5N,GAAI,KACduL,EAAQ,GAiBZ,OAhBAzM,GAAkBjE,GAAQrxB,SAAQ,SAAUu1B,EAAKtyB,GAC7C,GAAU,IAANA,EAAS,CACT,IAAIohC,EAAa9O,EAAI,GACrB,GAAwB,KAApB8O,EAAWxmC,OACuD,IAAlE,CAAC,MAAO,OAAQ,QAAS,UAAUwD,QAAQgjC,EAAW/hC,OAEtD,YADA8hC,EAAU9N,GAAef,IAGxB,GAAIc,GAAQgO,GAEb,YADAD,GAAWlO,GAAY3pB,EAAS83B,GAAc7N,GAAI,MAAQA,GAAI,MAItE,IAAI8N,EAAY1C,GAAer1B,EAASgpB,GACxCwM,EAAM7hC,KAAKokC,MAER,CACHpO,MAAOkO,EACPrC,MAAOA,EACPlkC,KAAM,IA2IV0mC,GAAuB,SAAUh4B,EAAS8kB,GAC1C,IAAImT,EAAQ,EACRC,EAAO,EACP1C,EAAQ,GACR2C,EAAW,GAoEf,OAnEApP,GAAkBjE,GAAQrxB,SAAQ,SAAUu1B,EAAKtyB,GAC7C,IAAI0hC,GAAc,EA6DlB,GA5DU,IAAN1hC,EACA0hC,EAAcpP,EAAIpe,QAAO,SAAUytB,EAAKtT,GACpC,GAAI2D,GAAa3D,GACb,OAAQA,EAAMhvB,OACV,IAAK,SAED,OADAoiC,EAASxkC,KAAK01B,KACP,EACX,IAAK,MACL,IAAK,OAED,OADA8O,EAASxkC,KAAKy1B,KACP,EACX,IAAK,QACL,IAAK,SAED,OADA+O,EAASxkC,KAAK21B,KACP,OAGd,GAAIJ,GAAmBnE,IAAUkE,GAASlE,GAE3C,OADAoT,EAASxkC,KAAKoxB,IACP,EAEX,OAAOsT,IACRD,GAEQ,IAAN1hC,IACL0hC,EAAcpP,EAAIpe,QAAO,SAAUytB,EAAKtT,GACpC,GAAI2D,GAAa3D,GACb,OAAQA,EAAMhvB,OACV,IAlHX,SAoHe,OADAkiC,EAAQ,GACD,EACX,IApHV,UAsHc,OADAA,EAAQ,GACD,EACX,IArHV,UAsHU,IA7HL,eA+HS,OADAC,EAAO,GACA,EACX,IA/HJ,gBAiIQ,OADAA,EAAO,GACA,EACX,IAjIH,iBAmIO,OADAA,EAAO,GACA,EACX,IAhIZ,QAiIY,IApIF,kBAsIM,OADAA,EAAO,GACA,OAGd,GAAIjP,GAASlE,IAAUmE,GAAmBnE,GAK3C,OAJKxyB,MAAMoJ,QAAQu8B,KACfA,EAAO,IAEXA,EAAKvkC,KAAKoxB,IACH,EAEX,OAAOsT,IACRD,IAEHA,EAAa,CACb,IAAIL,EAAY1C,GAAer1B,EAASgpB,GACxCwM,EAAM7hC,KAAKokC,OAGZ,CAAEG,KAAMA,EAAMD,MAAOA,EAAOzC,MAAOA,EAAO2C,SAAUA,EAAU7mC,KAAM,IAS3EgnC,GAEO,SAAUt4B,EAASjK,GACtB,GAAmB,KAAfA,EAAMzE,KAA6B,CACnC,IAAIinC,EAAU,CAAEC,IAAKziC,EAAMA,MAAOzE,KAAM,GAExC,OADA0O,EAAQ+K,MAAM0tB,SAAS1iC,EAAMA,OACtBwiC,EAEX,GAAmB,KAAfxiC,EAAMzE,KAA4B,CAClC,IAAIonC,EAAgBC,GAA0B5iC,EAAMwD,MACpD,GAA6B,qBAAlBm/B,EACP,MAAM,IAAIlnB,MAAM,sDAAyDzb,EAAMwD,KAAO,KAE1F,OAAOm/B,EAAc14B,EAASjK,EAAMkyB,QAExC,MAAM,IAAIzW,MAAM,0BAA4Bzb,EAAMzE,OAOtDqnC,GAA4B,CAC5B,kBA9RiB,SAAU34B,EAAS8kB,GACpC,IAAI+S,EAAU5N,GAAI,KACduL,EAAQ,GAgBZ,OAfAzM,GAAkBjE,GAAQrxB,SAAQ,SAAUu1B,EAAKtyB,GAC7C,GAAU,IAANA,EAAS,CACT,IAAIohC,EAAa9O,EAAI,GACrB,GAAwB,KAApB8O,EAAWxmC,MAAsD,OAArBwmC,EAAW/hC,MAEvD,YADA8hC,EAAU9N,GAAef,IAGxB,GAAIc,GAAQgO,GAEb,YADAD,EAAUlO,GAAY3pB,EAAS83B,IAIvC,IAAIC,EAAY1C,GAAer1B,EAASgpB,GACxCwM,EAAM7hC,KAAKokC,MAER,CAAEpO,MAAOkO,EAASrC,MAAOA,EAAOlkC,KAAM,IA6Q7C,uBAAwBsmC,GACxB,sBAAuBA,GACvB,qBAAsBA,GACtB,0BAA2BA,GAC3B,kBAxLiB,SAAU53B,EAAS8kB,GACpC,IAAImT,EAAQ,EACRC,EAAO,EACP1C,EAAQ,GACR2C,EAAW,GAoEf,OAnEApP,GAAkBjE,GAAQrxB,SAAQ,SAAUu1B,EAAKtyB,GAC7C,IAAI0hC,GAAc,EAClB,GAAU,IAAN1hC,EAAS,CACT,IAAIkiC,GAAiB,EACrBR,EAAcpP,EAAIpe,QAAO,SAAUytB,EAAKtT,GACpC,GAAI6T,EACA,GAAIlQ,GAAa3D,GACb,OAAQA,EAAMhvB,OACV,IAAK,SAED,OADAoiC,EAASxkC,KAAK01B,IACPgP,EACX,IAAK,MACL,IAAK,OAED,OADAF,EAASxkC,KAAKy1B,IACPiP,EACX,IAAK,QACL,IAAK,SAED,OADAF,EAASxkC,KAAK21B,IACP+O,OAGVnP,GAAmBnE,IAAUkE,GAASlE,KAC3CoT,EAASxkC,KAAKoxB,QAGjB,GAAI2D,GAAa3D,GAClB,OAAQA,EAAMhvB,OACV,IApCX,SAsCe,OADAkiC,EAAQ,GACD,EACX,IAtCV,UAwCc,OADAA,EAAQ,GACD,EACX,IAAK,KAED,OADAW,GAAiB,GACV,EACX,IAjDL,eAmDS,OADAV,EAAO,GACA,EACX,IA9CZ,QA+CY,IApDJ,gBAsDQ,OADAA,EAAO,GACA,EACX,IAjDV,UAkDU,IAvDH,iBAyDO,OADAA,EAAO,GACA,EACX,IAzDF,kBA2DM,OADAA,EAAO,GACA,OAGd,GAAIjP,GAASlE,IAAUmE,GAAmBnE,GAK3C,OAJKxyB,MAAMoJ,QAAQu8B,KACfA,EAAO,IAEXA,EAAKvkC,KAAKoxB,IACH,EAEX,OAAOsT,IACRD,GAEP,GAAIA,EAAa,CACb,IAAIL,EAAY1C,GAAer1B,EAASgpB,GACxCwM,EAAM7hC,KAAKokC,OAGZ,CAAEG,KAAMA,EAAMD,MAAOA,EAAOzC,MAAOA,EAAO2C,SAAUA,EAAU7mC,KAAM,IAiH3E,uBAAwB0mC,GACxB,sBAAuBA,GACvB,qBAAsBA,GACtB,0BAA2BA,GAC3B,mBAzPiB,SAAUh4B,EAAS8kB,GACpC,IAAI6E,EAAQM,GAAI,KACZuL,EAAQ,GACRlkC,EAAO,EAwCX,OApCAy3B,GAAkBjE,GAAQrxB,SAAQ,SAAUu1B,EAAKtyB,GAC7C,IAAIohC,EAAa9O,EAAI,GACrB,GAAU,IAANtyB,EAAS,CACT,GAAIgyB,GAAaoP,IAAoC,WAArBA,EAAW/hC,MAEvC,YADAzE,EAAO,GAGN,GAAIo3B,GAAaoP,IAAoC,WAArBA,EAAW/hC,MAE5C,YADAzE,EAAO,GAIf,GAAwB,KAApBwmC,EAAWxmC,KACX,GAAwB,SAApBwmC,EAAWv+B,KAAiB,CAC5B,IAAIkxB,EAAQP,GAAclqB,EAAS83B,EAAW7P,OAAO,IACrDuN,EAAM7hC,KAAK,CAAE2hC,KAAMlM,GAAaqB,MAAOA,SAEtC,GAAwB,OAApBqN,EAAWv+B,KACZkxB,EAAQP,GAAclqB,EAAS83B,EAAW7P,OAAO,IACrDuN,EAAM7hC,KAAK,CAAE2hC,KAAMhM,GAAiBmB,MAAOA,SAE1C,GAAwB,eAApBqN,EAAWv+B,KAAuB,CACvC,IAAI0uB,EAAS6P,EAAW7P,OAAOr0B,OAAOk1B,IACtC,GAAsB,IAAlBb,EAAOj2B,OAAc,CACjBy4B,EAAQP,GAAclqB,EAASioB,EAAO,IAA1C,IACI6N,EAAS7N,EAAO,GAChBQ,GAAcqN,IACdN,EAAM7hC,KAAK,CACP2hC,KAAM,CAAEhkC,KAAM,GAA2B0V,OAAwB,IAAhB8uB,EAAO9uB,OAAcoe,MAAO0Q,EAAO1Q,OACpFqF,MAAOA,SAOf,IAATn5B,EACD,CACEq4B,OAAQA,EAAQM,GAAI,MAAQA,GAAI,KAChCuL,MAAOA,EACPlkC,KAAMA,GAER,CAAE4mC,KA5CG,EA4CSD,MA7CR,EA6CsBzC,MAAOA,EAAO2C,SA3CjC,GA2CqD7mC,KAAMA,KA2M1EunC,GAAkB,CAClBt/B,KAAM,mBACN0iB,aAAc,OACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUS,EAAS8kB,GACtB,GAAsB,IAAlBA,EAAO9yB,OACP,MAAO,GAEX,IAAI0jC,EAAQ5Q,EAAO,GACnB,OAAmB,KAAf4Q,EAAMpkC,MAAiD,SAAhBokC,EAAM3/B,MACtC,GAEJ+uB,EACFlxB,QAAO,SAAUmC,GAAS,OAAO+yB,GAAwB/yB,IAhCtE,SAA0BA,GACtB,QAAyB,KAAfA,EAAMzE,MAAiD,SAAhByE,EAAMA,SACnC,KAAfA,EAAMzE,QAAgCqnC,GAA0B5iC,EAAMwD,OA8BCu/B,CAAiB/iC,MACpFgF,KAAI,SAAUhF,GAAS,OAAOuiC,GAAYt4B,EAASjK,QAI5DgjC,GAAmB,CACnBx/B,KAAM,oBACN0iB,aAAc,aACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOA,EAAO/pB,KAAI,SAAUgqB,GACxB,GAAI2D,GAAa3D,GACb,OAAQA,EAAMhvB,OACV,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EAGnB,OAAO,OAKfijC,GAAqB,CACrBz/B,KAAM,sBACN0iB,aAAc,QACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOiE,GAAkBjE,GACpB/pB,KAAI,SAAUktB,GAAU,OAAOA,EAAOr0B,OAAOs1B,OAC7CnuB,IAAIouB,MAIb8P,GAAmB,CACnB1/B,KAAM,oBACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOiE,GAAkBjE,GACpB/pB,KAAI,SAAUktB,GACf,OAAOA,EACFr0B,OAAO80B,IACP3tB,KAAI,SAAUgqB,GAAS,OAAOA,EAAMhvB,SACpCe,KAAK,QAETiE,IAAIm+B,MAGbA,GAAwB,SAAUnjC,GAClC,OAAQA,GACJ,IAAK,YACD,OAAO,EACX,IAAK,WACL,IAAK,mBACD,OAAO,EACX,IAAK,WACL,IAAK,mBACD,OAAO,EACX,IAAK,SACL,QACI,OAAO,KAKnB,SAAWy1B,GACPA,EAAsB,KAAI,OAC1BA,EAAyB,QAAI,UAC7BA,EAAuB,MAAI,QAH/B,CAIGA,KAAoBA,GAAkB,KACzC,IA6NI2N,GA7NAC,GAAiB,CACjB7/B,KAAM,kBACN0iB,aAAc,IACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOiE,GAAkBjE,GAAQ/pB,KAAI,SAAUktB,GAAU,OAAOA,EAAOr0B,OAAOylC,SAGlFA,GAA4B,SAAUtjC,GACtC,OAAO2yB,GAAa3yB,IAAUmzB,GAAmBnzB,IAGjDujC,GAAqB,SAAUC,GAAQ,MAAO,CAC9ChgC,KAAM,UAAYggC,EAAO,SACzBtd,aAAc,cACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,UAER6xB,GAAiBF,GAAmB,OACpCG,GAAmBH,GAAmB,SACtCI,GAAoBJ,GAAmB,UACvCK,GAAkBL,GAAmB,QAErCM,GAAsB,SAAUL,GAAQ,MAAO,CAC/ChgC,KAAM,iBAAmBggC,EACzBtd,aAAc,MACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOqE,GAA2BrE,EAAOlxB,OAAOs1B,QAGpD2Q,GAAsBD,GAAoB,YAC1CE,GAAuBF,GAAoB,aAC3CG,GAA0BH,GAAoB,gBAC9CI,GAAyBJ,GAAoB,eAE7CK,GAAqB,SAAUV,GAAQ,MAAO,CAC9ChgC,KAAM,UAAYggC,EAAO,SACzBtd,aAAc,QACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUre,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EAEf,OAAO,KAGX2uB,GAAiBD,GAAmB,OACpCE,GAAmBF,GAAmB,SACtCG,GAAoBH,GAAmB,UACvCI,GAAkBJ,GAAmB,QAErCK,GAAqB,SAAUf,GAAQ,MAAO,CAC9ChgC,KAAM,UAAYggC,EAAO,SACzBtd,aAAc,IACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU7E,GACvB,OAAIyD,GAAiBzD,GACVA,EAAM/d,OAEV,KAGXuzB,GAAiBD,GAAmB,OACpCE,GAAmBF,GAAmB,SACtCG,GAAoBH,GAAmB,UACvCI,GAAkBJ,GAAmB,QAErC7P,GAAQ,CACRlxB,KAAM,QACN0iB,aAAc,cACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,SAGRgzB,GAAY,CACZphC,KAAM,YACN0iB,aAAc,MACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU+Q,GACvB,OAAQA,GACJ,IAAK,MACD,OAAO,EACX,IAAK,MACL,QACI,OAAO,KAKnBC,GAAU,CACVrhC,KAAM,UACN0iB,aAAc,eACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOA,EAAOlxB,OAAO80B,IAAc9d,QAAO,SAAUiwB,EAAK9V,GACrD,OAAO8V,EAAMC,GAAkB/V,EAAMhvB,SACtC,KAGP+kC,GAAoB,SAAUF,GAC9B,OAAQA,GACJ,IAAK,QACL,IAAK,cACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,OACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,OACL,IAAK,eACD,OAAO,IACX,IAAK,OACL,IAAK,WACD,OAAO,IACX,IAAK,OACD,OAAO,IACX,IAAK,UACD,OAAO,KACX,IAAK,YACD,OAAO,KACX,IAAK,kBACD,OAAO,KACX,IAAK,qBACD,OAAO,KACX,IAAK,qBACD,OAAO,MACX,IAAK,YACD,OAAO,MACX,IAAK,aACD,OAAO,MACX,IAAK,qBACD,OAAO,OACX,IAAK,eACD,OAAO,OACX,IAAK,gBACD,OAAO,OACX,IAAK,YACD,OAAO,QACX,IAAK,YACD,OAAO,QACX,IAAK,sBACD,OAAO,QACX,IAAK,sBACD,OAAO,QACX,IAAK,WACD,OAAO,SACX,IAAK,eACD,OAAO,SACX,IAAK,mBACD,OAAO,SACX,IAAK,eACD,OAAO,UACX,IAAK,cACD,OAAO,UACX,IAAK,cACD,OAAO,UAEf,OAAO,GAGPG,GAAQ,CACRxhC,KAAM,QACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUmR,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,eACD,OAAO,EACX,IAAK,aACD,OAAO,EAEf,OAAO,IAIXC,GAAgB,CAChBzhC,KAAM,iBACN0iB,aAAc,IACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU7E,GACvB,OAAmB,KAAfA,EAAMzzB,MAAiD,WAAhByzB,EAAMhvB,MACtC,EAEQ,KAAfgvB,EAAMzzB,MAGS,KAAfyzB,EAAMzzB,KAFCyzB,EAAM/d,OAKV,KAKf,SAAWmyB,GACPA,EAAmB,OAAI,SACvBA,EAAmB,OAAI,SAF3B,CAGGA,KAAeA,GAAa,KAC/B,IAgaI8B,GAhaAna,GAAY,CACZvnB,KAAM,aACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9I,GACvB,OAAQA,GACJ,IAAK,SACD,OAAOqY,GAAW+B,OACtB,IAAK,SACL,QACI,OAAO/B,GAAWgC,UAK9BC,GAAa,CACb7hC,KAAM,cACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,GAEN+pC,GAAoB,SAAUtW,EAAOuW,GACrC,OAAI5S,GAAa3D,IAA0B,WAAhBA,EAAMhvB,MACtB,IAAMulC,EAEO,KAAfvW,EAAMzzB,KACJgqC,EAAWvW,EAAM/d,OAEnBkiB,GAAmBnE,GACjB0E,GAAiB1E,EAAOuW,GAE5BA,GAGPC,GAAiB,CACjBhiC,KAAM,mBACN0iB,aAAc,OACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUS,EAAS+kB,GACtB,OAAmB,KAAfA,EAAMzzB,MAAiD,SAAhByzB,EAAMhvB,MACtC,KAEJuiC,GAAYt4B,EAAS+kB,KAIhCyW,GAAoB,CACpBjiC,KAAM,sBACN0iB,aAAc,UACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUuO,GACvB,OAAQA,GACJ,IAAK,SACD,OAAO,EACX,IAAK,UACL,QACI,OAAO,KAKnBsD,GAAgB,CAChBliC,KAAM,kBACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUt4B,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,uBACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,GACX,IAAK,eACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,qBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,aACD,OAAO,GACX,IAAK,mBACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WAEL,IAAK,SACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,uBACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,MACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,OACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,OACL,QACI,OAAQ,KAKpBoqC,GAAgB,SAAUnC,GAAQ,MAAO,CACzChgC,KAAM,UAAYggC,EAClBtd,aAAc,IACd9pB,QAAQ,EACRb,KAAM,IAENqqC,GAAYD,GAAc,OAC1BE,GAAcF,GAAc,SAC5BG,GAAeH,GAAc,UAC7BI,GAAaJ,GAAc,QAE3BK,GAAW,CACXxiC,KAAM,WACN0iB,aAAc,UACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOA,EAAOlxB,OAAO80B,IAAc3tB,KAAI,SAAUghC,GAC7C,OAAQA,EAAShmC,OACb,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,OACD,OAAO,EACX,IAAK,OACD,OAAO,EACX,IAAK,UACL,QACI,OAAO,QAMvBimC,GAAe,CACfziC,KAAM,gBACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUmS,GACvB,OAAQA,GACJ,IAAK,aACD,MAAO,aACX,IAAK,SACL,QACI,MAAO,YAKnBE,GAAiB,SAAU1C,GAAQ,MAAO,CAC1ChgC,KAAM,WAAaggC,EACnBtd,aAAc,IACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,sBAERu0B,GAAaD,GAAe,OAC5BE,GAAeF,GAAe,SAC9BG,GAAgBH,GAAe,UAC/BI,GAAcJ,GAAe,QAE7BK,GAAY,CACZ/iC,KAAM,aACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU0S,GACvB,OAAQA,GACJ,IAAK,QACD,OAAO,EACX,IAAK,SACL,IAAK,UACD,OAAO,EACX,IAAK,OACL,QACI,OAAO,KAKnBnE,GAAW,CACX5+B,KAAM,WACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUuO,GACvB,OAAQA,GACJ,IAAK,WACD,OAAO,EACX,IAAK,WACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,SACD,OAAO,EAEf,OAAO,IAIXoE,GAAa,CACbhjC,KAAM,cACN0iB,aAAc,OACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUS,EAAS8kB,GACtB,OAAsB,IAAlBA,EAAO9yB,QAAgB42B,GAAiB9D,EAAO,GAAI,QAC5C,GAEJiE,GAAkBjE,GAAQ/pB,KAAI,SAAUktB,GAQ3C,IAPA,IAAIuU,EAAS,CACT/R,MAAOH,GAAOC,YACdkS,QAASrT,GACTsT,QAAStT,GACTuT,KAAMvT,IAENxuB,EAAI,EACClE,EAAI,EAAGA,EAAIuxB,EAAOj2B,OAAQ0E,IAAK,CACpC,IAAIquB,EAAQkD,EAAOvxB,GACfuyB,GAASlE,IACC,IAANnqB,EACA4hC,EAAOC,QAAU1X,EAEN,IAANnqB,EACL4hC,EAAOE,QAAU3X,EAGjByX,EAAOG,KAAO5X,EAElBnqB,KAGA4hC,EAAO/R,MAAQP,GAAclqB,EAAS+kB,GAG9C,OAAOyX,OAKfI,GAAgB,CAChBrjC,KAAM,iBACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUgT,GACvB,OAAQA,GACJ,IAAK,YACD,OAAO,EACX,IAAK,YACD,OAAO,EACX,IAAK,aACD,OAAO,EAEf,OAAO,IAIXC,GAAc,CACdtjC,KAAM,YACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU7E,GACvB,GAAmB,KAAfA,EAAMzzB,MAAiD,SAAhByzB,EAAMhvB,MAC7C,OAAO,KAEX,GAAmB,KAAfgvB,EAAMzzB,KAA4B,CAClC,IAAIwrC,EAAoBC,GAA8BhY,EAAMxrB,MAC5D,GAAiC,qBAAtBujC,EACP,MAAM,IAAItrB,MAAM,0DAA6DuT,EAAMxrB,KAAO,KAE9F,OAAOujC,EAAkB/X,EAAMkD,QAEnC,OAAO,OAaX8U,GAAgC,CAChCC,OAXS,SAAUzrC,GACnB,IAAI02B,EAAS12B,EAAKqC,QAAO,SAAUo1B,GAAO,OAAoB,KAAbA,EAAI13B,QAAmCyJ,KAAI,SAAUiuB,GAAO,OAAOA,EAAIhiB,UACxH,OAAyB,IAAlBihB,EAAOj2B,OAAei2B,EAAS,MAUtCgV,SAPW,SAAU1rC,GACrB,IAAI02B,EAAS12B,EAAKqC,QAAO,SAAUo1B,GAAO,OAAoB,KAAbA,EAAI13B,QAAmCyJ,KAAI,SAAUiuB,GAAO,OAAOA,EAAIhiB,UACpH4e,EAAKqC,EAAO,GAAIiV,EAAKjV,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI,IAAIpC,EAAKoC,EAAO,GAAIkV,EAAKlV,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAK,IAAImV,EAAKnV,EAAO,IAAKoV,EAAKpV,EAAO,IACnM,OADwMA,EAAO,IAAKA,EAAO,IAClM,KAAlBA,EAAOj2B,OAAgB,CAAC4zB,EAAIsX,EAAIrX,EAAIsX,EAAIC,EAAIC,GAAM,OAOzDC,GAAgB,CAChBhsC,KAAM,GACN0V,OAAQ,GACRoe,MA5xEe,GA8xEfmY,GAAU,CAACD,GAAeA,IAC1BE,GAAkB,CAClBjkC,KAAM,mBACN0iB,aAAc,UACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,IAAI2Y,EAAU3Y,EAAOlxB,OAAOs1B,IAC5B,OAAuB,IAAnBuU,EAAQzrC,OACDurC,GAEJ,CAACE,EAAQ,GAAIA,EAAQ,MAIhCC,GAAa,CACbnkC,KAAM,UACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU8T,GACvB,OAAQA,GACJ,IAAK,SACD,OAAO,EACX,IAAK,WACD,OAAO,EACX,IAAK,UACL,QACI,OAAO,MAMvB,SAAWzC,GACPA,EAAmB,OAAI,SACvBA,EAAsB,UAAI,YAC1BA,EAAqB,SAAI,WAH7B,CAIGA,KAAeA,GAAa,KAomB/B,IAnmBA,IAAIla,GAAY,CACZxnB,KAAM,aACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU7I,GACvB,OAAQA,GACJ,IAAK,YACD,OAAOka,GAAW0C,UACtB,IAAK,WACD,OAAO1C,GAAW2C,SACtB,IAAK,SACL,QACI,OAAO3C,GAAWE,UAK9B0C,GAAS,CACTtkC,KAAM,UACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU7E,GACvB,GAAmB,KAAfA,EAAMzzB,KACN,MAAO,CAAEwsC,MAAM,EAAMC,MAAO,GAEhC,GAAItV,GAAc1D,GACd,MAAO,CAAE+Y,MAAM,EAAOC,MAAOhZ,EAAM/d,QAEvC,MAAM,IAAIwK,MAAM,mCAIpBwsB,GAEO,SAAUpU,EAAU7zB,GACvB,GAAmB,KAAfA,EAAMzE,KACN,OAAQyE,EAAMoxB,KAAKnrB,eACf,IAAK,IACD,OAAO,IAAOjG,EAAMiR,OACxB,IAAK,KACD,OAAOjR,EAAMiR,OAGzB,MAAM,IAAIwK,MAAM,0BAIpBysB,GAAU,CACV1kC,KAAM,UACN0iB,aAAc,IACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU7E,GACvB,OAAI0D,GAAc1D,GACPA,EAAM/d,OAEV,IAIXk3B,GAAsB,CACtB3kC,KAAM,wBACN0iB,aAAc,cACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,SAGRw2B,GAAqB,CACrB5kC,KAAM,uBACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOA,EACFlxB,OAAO80B,IACP3tB,KAAI,SAAUgqB,GACf,OAAQA,EAAMhvB,OACV,IAAK,YACD,OAAO,EACX,IAAK,WACD,OAAO,EACX,IAAK,eACD,OAAO,EACX,IAAK,OACD,OAAO,EAEf,OAAO,KAENnC,QAAO,SAAUwqC,GAAQ,OAAgB,IAATA,OAIzCC,GAAa,CACb9kC,KAAM,cACN0iB,aAAc,GACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,IAAIwZ,EAAc,GACdC,EAAU,GAmBd,OAlBAzZ,EAAOrxB,SAAQ,SAAUsxB,GACrB,OAAQA,EAAMzzB,MACV,KAAK,GACL,KAAK,EACDgtC,EAAY3qC,KAAKoxB,EAAMhvB,OACvB,MACJ,KAAK,GACDuoC,EAAY3qC,KAAKoxB,EAAM/d,OAAO9O,YAC9B,MACJ,KAAK,EACDqmC,EAAQ5qC,KAAK2qC,EAAYxnC,KAAK,MAC9BwnC,EAAYtsC,OAAS,MAI7BssC,EAAYtsC,QACZusC,EAAQ5qC,KAAK2qC,EAAYxnC,KAAK,MAE3BynC,EAAQxjC,KAAI,SAAUnD,GAAU,OAAiC,IAAzBA,EAAO9C,QAAQ,KAAc8C,EAAS,IAAMA,EAAS,SAIxG0jC,GAAW,CACX/hC,KAAM,YACN0iB,aAAc,IACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,UAGR62B,GAAa,CACbjlC,KAAM,cACN0iB,aAAc,SACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU7E,GACvB,GAAI0D,GAAc1D,GACd,OAAOA,EAAM/d,OAEjB,GAAI0hB,GAAa3D,GACb,OAAQA,EAAMhvB,OACV,IAAK,OACD,OAAO,IACX,IAAK,SACL,QACI,OAAO,IAGnB,OAAO,MAIX0oC,GAAc,CACdllC,KAAM,eACN0iB,aAAc,OACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU9E,GACvB,OAAOA,EAAOlxB,OAAO80B,IAAc3tB,KAAI,SAAUgqB,GAAS,OAAOA,EAAMhvB,WAI3E2oC,GAAY,CACZnlC,KAAM,aACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAUmS,GACvB,OAAQA,GACJ,IAAK,UACD,MAAO,UACX,IAAK,SACD,MAAO,SACX,IAAK,SACL,QACI,MAAO,YAKnB4C,GAAW,SAAU9D,EAAK9kC,GAAS,OAAyB,KAAjB8kC,EAAM9kC,IAEjD6oC,GAAU,CACVrlC,KAAM,UACN0iB,aAAc,OACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU9E,GACvB,GAAsB,IAAlBA,EAAO9yB,OACP,MAAO,GAEX,IAAI0jC,EAAQ5Q,EAAO,GACnB,OAAmB,KAAf4Q,EAAMpkC,MAAiD,SAAhBokC,EAAM3/B,MACtC,GAEJ+uB,IAIX+Z,GAAmB,CACnBtlC,KAAM,oBACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,GAAsB,IAAlBA,EAAO9yB,OACP,OAAO,KAEX,IAAI0jC,EAAQ5Q,EAAO,GACnB,GAAmB,KAAf4Q,EAAMpkC,MAAiD,SAAhBokC,EAAM3/B,MAC7C,OAAO,KAIX,IAFA,IAAI+oC,EAAa,GACbC,EAAWja,EAAOlxB,OAAOi1B,IACpBnyB,EAAI,EAAGA,EAAIqoC,EAAS/sC,OAAQ0E,IAAK,CACtC,IAAIsoC,EAAUD,EAASroC,GACnBkY,EAAOmwB,EAASroC,EAAI,GACxB,GAAqB,KAAjBsoC,EAAQ1tC,KAA+B,CACvC,IAAI2tC,EAAYrwB,GAAQ6Z,GAAc7Z,GAAQA,EAAK5H,OAAS,EAC5D83B,EAAWnrC,KAAK,CAAEqrC,QAASA,EAAQjpC,MAAOkpC,UAAWA,KAG7D,OAAOH,IAIXI,GAAe,CACf3lC,KAAM,gBACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,GAAsB,IAAlBA,EAAO9yB,OACP,MAAO,GAIX,IAFA,IAAImtC,EAAS,GACTJ,EAAWja,EAAOlxB,OAAOi1B,IACpBnyB,EAAI,EAAGA,EAAIqoC,EAAS/sC,OAAQ0E,IAAK,CACtC,IAAIsoC,EAAUD,EAASroC,GACnBkY,EAAOmwB,EAASroC,EAAI,GACxB,GAAIgyB,GAAasW,IAA8B,SAAlBA,EAAQjpC,MAAkB,CACnD,IAAIkK,EAAQ2O,GAAQ6Z,GAAc7Z,GAAQA,EAAK5H,OAAS,EACxDm4B,EAAOxrC,KAAK,CAAEqrC,QAASA,EAAQjpC,MAAOkK,MAAOA,KAGrD,OAAOk/B,IAIXC,GAAW,CACX7lC,KAAM,WACN0iB,aAAc,KACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUS,EAAS8kB,GACtB,OAAOA,EAAOlxB,OAAO40B,IAAkBztB,KAAI,SAAUgqB,GAAS,OAAOiZ,GAAWh+B,EAAS+kB,QAI7Fsa,GAAS,CACT9lC,KAAM,SACN0iB,aAAc,OACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,GAAsB,IAAlBA,EAAO9yB,OACP,OAAO,KAEX,IAAI0jC,EAAQ5Q,EAAO,GACnB,GAAmB,KAAf4Q,EAAMpkC,MAAiD,SAAhBokC,EAAM3/B,MAC7C,OAAO,KAEX,IAAIspC,EAAS,GACTN,EAAWja,EAAOlxB,OAAO+0B,IAC7B,GAAIoW,EAAS/sC,OAAS,IAAM,EACxB,OAAO,KAEX,IAAK,IAAI0E,EAAI,EAAGA,EAAIqoC,EAAS/sC,OAAQ0E,GAAK,EAAG,CACzC,IAAI4oC,EAASP,EAASroC,GAAGX,MACrBwpC,EAAUR,EAASroC,EAAI,GAAGX,MAC9BspC,EAAO1rC,KAAK,CAAE6rC,KAAMF,EAAQG,MAAOF,IAEvC,OAAOF,IAGXK,GAAW,SAAUL,EAAQM,EAAOH,GACpC,IAAKH,EACD,MAAO,GAEX,IAAIO,EAAQP,EAAOh4B,KAAK0f,IAAI4Y,EAAON,EAAOrtC,OAAS,IACnD,OAAK4tC,EAGEJ,EAAOI,EAAMJ,KAAOI,EAAMH,MAFtB,IAKXI,GAAY,CACZtmC,KAAM,aACN0iB,aAAc,OACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUS,EAAS8kB,GACtB,OAAsB,IAAlBA,EAAO9yB,QAAgB42B,GAAiB9D,EAAO,GAAI,QAC5C,GAEJiE,GAAkBjE,GAAQ/pB,KAAI,SAAUktB,GAU3C,IATA,IAAIuU,EAAS,CACT/R,MAAO,IACPgS,QAASrT,GACTsT,QAAStT,GACTuT,KAAMvT,GACN0W,OAAQ1W,GACR2W,OAAO,GAEPnlC,EAAI,EACClE,EAAI,EAAGA,EAAIuxB,EAAOj2B,OAAQ0E,IAAK,CACpC,IAAIquB,EAAQkD,EAAOvxB,GACfkyB,GAAiB7D,EAAO,SACxByX,EAAOuD,OAAQ,EAEV9W,GAASlE,IACJ,IAANnqB,EACA4hC,EAAOC,QAAU1X,EAEN,IAANnqB,EACL4hC,EAAOE,QAAU3X,EAEN,IAANnqB,EACL4hC,EAAOG,KAAO5X,EAGdyX,EAAOsD,OAAS/a,EAEpBnqB,KAGA4hC,EAAO/R,MAAQP,GAAclqB,EAAS+kB,GAG9C,OAAOyX,OAKfwD,GAAa,CACbzmC,KAAM,cACN0iB,aAAc,SACd9pB,QAAQ,EACRb,KAAM,EACNiO,MAAO,SAAUqqB,EAAU9E,GACvB,IACImb,EAAS,GAmBb,OAlBAnb,EAAOlxB,OAAO80B,IAAcj1B,SAAQ,SAAUsxB,GAC1C,OAAQA,EAAMhvB,OACV,IAAK,SACDkqC,EAAOtsC,KAAK,GACZ,MACJ,IAAK,OACDssC,EAAOtsC,KAAK,GACZ,MACJ,IAAK,UACDssC,EAAOtsC,KAAK,OAXJ,CAAC,EAAc,EAAgB,GAerCF,SAAQ,SAAUsC,IACG,IAA3BkqC,EAAOnrC,QAAQiB,IACfkqC,EAAOtsC,KAAKoC,MAGbkqC,IAIXC,GAAwB,CACxB3mC,KAAM,4BACN0iB,aAAc,eACd9pB,QAAQ,EACRb,KAAM,EACNqW,OAAQ,SAGRw4B,GAAwB,CACxB5mC,KAAM,4BACN0iB,aAAc,IACd3qB,KAAM,EACNa,QAAQ,EACRoN,MAAO,SAAUqqB,EAAU7E,GACvB,OAAIyD,GAAiBzD,GACVA,EAAM/d,OAEV,IAIXo5B,GAAsC,WACtC,SAASA,EAAqBpgC,EAASqgC,GACnC,IAAIrf,EAAImK,EACR35B,KAAK8uC,kBAAoB/gC,GAAMS,EAASo/B,GAAUiB,EAAYC,mBAC9D9uC,KAAK2jC,eAAiB51B,GAAMS,EAASm1B,GAAgBkL,EAAYlL,gBACjE3jC,KAAK4jC,gBAAkB71B,GAAMS,EAASo1B,GAAiBiL,EAAYjL,iBACnE5jC,KAAKqnC,gBAAkBt5B,GAAMS,EAAS64B,GAAiBwH,EAAYxH,iBACnErnC,KAAKunC,iBAAmBx5B,GAAMS,EAAS+4B,GAAkBsH,EAAYtH,kBACrEvnC,KAAKwnC,mBAAqBz5B,GAAMS,EAASg5B,GAAoBqH,EAAYrH,oBACzExnC,KAAKynC,iBAAmB15B,GAAMS,EAASi5B,GAAkBoH,EAAYpH,kBACrEznC,KAAK4nC,eAAiB75B,GAAMS,EAASo5B,GAAgBiH,EAAYjH,gBACjE5nC,KAAKgoC,eAAiBj6B,GAAMS,EAASw5B,GAAgB6G,EAAY7G,gBACjEhoC,KAAKioC,iBAAmBl6B,GAAMS,EAASy5B,GAAkB4G,EAAY5G,kBACrEjoC,KAAKkoC,kBAAoBn6B,GAAMS,EAAS05B,GAAmB2G,EAAY3G,mBACvEloC,KAAKmoC,gBAAkBp6B,GAAMS,EAAS25B,GAAiB0G,EAAY1G,iBACnEnoC,KAAKqoC,oBAAsBt6B,GAAMS,EAAS65B,GAAqBwG,EAAYxG,qBAC3EroC,KAAKsoC,qBAAuBv6B,GAAMS,EAAS85B,GAAsBuG,EAAYvG,sBAC7EtoC,KAAKuoC,wBAA0Bx6B,GAAMS,EAAS+5B,GAAyBsG,EAAYtG,yBACnFvoC,KAAKwoC,uBAAyBz6B,GAAMS,EAASg6B,GAAwBqG,EAAYrG,wBACjFxoC,KAAK0oC,eAAiB36B,GAAMS,EAASk6B,GAAgBmG,EAAYnG,gBACjE1oC,KAAK2oC,iBAAmB56B,GAAMS,EAASm6B,GAAkBkG,EAAYlG,kBACrE3oC,KAAK4oC,kBAAoB76B,GAAMS,EAASo6B,GAAmBiG,EAAYjG,mBACvE5oC,KAAK6oC,gBAAkB96B,GAAMS,EAASq6B,GAAiBgG,EAAYhG,iBACnE7oC,KAAK+oC,eAAiBh7B,GAAMS,EAASu6B,GAAgB8F,EAAY9F,gBACjE/oC,KAAKgpC,iBAAmBj7B,GAAMS,EAASw6B,GAAkB6F,EAAY7F,kBACrEhpC,KAAKipC,kBAAoBl7B,GAAMS,EAASy6B,GAAmB4F,EAAY5F,mBACvEjpC,KAAKkpC,gBAAkBn7B,GAAMS,EAAS06B,GAAiB2F,EAAY3F,iBACnElpC,KAAKquC,UAAYtgC,GAAMS,EAAS6/B,GAAWQ,EAAYR,WACvDruC,KAAKi5B,MAAQlrB,GAAMS,EAASyqB,GAAO4V,EAAY5V,OAC/Cj5B,KAAKmpC,UAAYp7B,GAAMS,EAAS26B,GAAW0F,EAAY1F,WACvDnpC,KAAKopC,QAAUr7B,GAAMS,EAAS46B,GAASyF,EAAYzF,SACnDppC,KAAKupC,MAAQx7B,GAAMS,EAAS+6B,GAAOsF,EAAYE,UAC/C/uC,KAAK6sC,WAAa9+B,GAAMS,EAASq+B,GAAYgC,EAAYhC,YACzD7sC,KAAK8pC,SAAW/7B,GAAMS,EAASs7B,GAAU+E,EAAY/E,UACrD9pC,KAAKktC,UAAYn/B,GAAMS,EAAS0+B,GAAW2B,EAAY3B,WACvDltC,KAAKitC,YAAcl/B,GAAMS,EAASy+B,GAAa4B,EAAY5B,aAC3DjtC,KAAKgtC,WAAaj/B,GAAMS,EAASw+B,GAAY6B,EAAY7B,YACzDhtC,KAAKwpC,cAAgBz7B,GAAMS,EAASg7B,GAAeqF,EAAYrF,eAC/DxpC,KAAKsvB,UAAYvhB,GAAMS,EAAS8gB,GAAWuf,EAAYvf,WACvDtvB,KAAK4pC,WAAa77B,GAAMS,EAASo7B,GAAYiF,EAAYjF,YACzD5pC,KAAK+pC,eAAiBh8B,GAAMS,EAASu7B,GAAgB8E,EAAY9E,gBACjE/pC,KAAKgqC,kBAAoBj8B,GAAMS,EAASw7B,GAAmB6E,EAAY7E,mBACvEhqC,KAAKiqC,cAAgBl8B,GAAMS,EAASy7B,GAAe4E,EAAY5E,eAC/DjqC,KAAKmqC,UAAYp8B,GAAMS,EAAS27B,GAAW0E,EAAY1E,WACvDnqC,KAAKoqC,YAAcr8B,GAAMS,EAAS47B,GAAayE,EAAYzE,aAC3DpqC,KAAKqqC,aAAet8B,GAAMS,EAAS67B,GAAcwE,EAAYxE,cAC7DrqC,KAAKsqC,WAAav8B,GAAMS,EAAS87B,GAAYuE,EAAYvE,YACzDtqC,KAAKysC,QAAU1+B,GAAMS,EAASi+B,GAASoC,EAAYpC,SACnD,IAAIuC,EAAgBjhC,GAAMS,EAAS+7B,GAAUsE,EAAYtE,UACzDvqC,KAAKivC,UAAYD,EAAc,GAC/BhvC,KAAKkvC,UAAYF,EAAcA,EAAcxuC,OAAS,EAAI,EAAI,GAC9DR,KAAKwqC,aAAez8B,GAAMS,EAASg8B,GAAcqE,EAAYrE,cAC7DxqC,KAAK0qC,WAAa38B,GAAMS,EAASk8B,GAAYmE,EAAYnE,YACzD1qC,KAAK2qC,aAAe58B,GAAMS,EAASm8B,GAAckE,EAAYlE,cAC7D3qC,KAAK4qC,cAAgB78B,GAAMS,EAASo8B,GAAeiE,EAAYjE,eAC/D5qC,KAAK6qC,YAAc98B,GAAMS,EAASq8B,GAAagE,EAAYhE,aAC3D7qC,KAAKwuC,WAAazgC,GAAMS,EAASggC,GAAYK,EAAYL,YACzDxuC,KAAK2mC,SAAW54B,GAAMS,EAASm4B,GAAUkI,EAAYlI,UACrD3mC,KAAK8qC,UAAY/8B,GAAMS,EAASs8B,GAAW+D,EAAY/D,WACvD9qC,KAAK0sC,oBAAsB3+B,GAAMS,EAASk+B,GAAgE,QAA1Cld,EAAKqf,EAAYnC,2BAAwC,IAAPld,EAAgBA,EAAKqf,EAAY5V,OACnJj5B,KAAK2sC,mBAAqB5+B,GAAMS,EAASm+B,GAA8D,QAAzChT,EAAKkV,EAAYlC,0BAAuC,IAAPhT,EAAgBA,EAAKkV,EAAYM,gBAChJnvC,KAAK+qC,WAAah9B,GAAMS,EAASu8B,GAAY8D,EAAY9D,YACzD/qC,KAAKorC,cAAgBr9B,GAAMS,EAAS48B,GAAeyD,EAAYzD,eAC/DprC,KAAKovC,UAAYrhC,GAAMS,EAAS68B,GAAawD,EAAYO,WACzDpvC,KAAKgsC,gBAAkBj+B,GAAMS,EAASw9B,GAAiB6C,EAAY7C,iBACnEhsC,KAAKksC,WAAan+B,GAAMS,EAAS09B,GAAY2C,EAAY3C,YACzDlsC,KAAK0uC,sBAAwB3gC,GAAMS,EAASkgC,GAAuBG,EAAYH,uBAC/E1uC,KAAK2uC,sBAAwB5gC,GAAMS,EAASmgC,GAAuBE,EAAYF,uBAC/E3uC,KAAKuvB,UAAYxhB,GAAMS,EAAS+gB,GAAWsf,EAAYtf,WACvDvvB,KAAKqsC,OAASt+B,GAAMS,EAAS69B,GAAQwC,EAAYxC,QA4BrD,OA1BAuC,EAAqBhrC,UAAUyrC,UAAY,WACvC,OAAOrvC,KAAKopC,QAAU,GAAKppC,KAAKysC,QAAU,GAAyB,IAApBzsC,KAAKksC,YAExD0C,EAAqBhrC,UAAUo1B,cAAgB,WAC3C,OAAOA,GAAch5B,KAAK4jC,kBAE9BgL,EAAqBhrC,UAAU0rC,cAAgB,WAC3C,OAA0B,OAAnBtvC,KAAKovC,WAEhBR,EAAqBhrC,UAAU2rC,aAAe,WAC1C,OAAyB,IAAlBvvC,KAAK2mC,UAEhBiI,EAAqBhrC,UAAU4rC,uBAAyB,WACpD,OAAOxvC,KAAKuvC,iBAAmBvvC,KAAKqsC,OAAOC,MAE/CsC,EAAqBhrC,UAAU6rC,WAAa,WACxC,OAAsB,IAAfzvC,KAAKupC,OAEhBqF,EAAqBhrC,UAAU8rC,cAAgB,WAC3C,OAAQvC,GAASntC,KAAKopC,QAAS,IAC3B+D,GAASntC,KAAKopC,QAAS,WACvB+D,GAASntC,KAAKopC,QAAS,YACvB+D,GAASntC,KAAKopC,QAAS,YACvB+D,GAASntC,KAAKopC,QAAS,WACvB+D,GAASntC,KAAKopC,QAAS,YAExBwF,EAjG8B,GAmGrCe,GACA,SAAoCnhC,EAASqgC,GACzC7uC,KAAKotC,QAAUr/B,GAAMS,EAAS4+B,GAASyB,EAAYzB,SACnDptC,KAAK6tC,OAAS9/B,GAAMS,EAASq/B,GAAQgB,EAAYhB,SAIrD+B,GACA,SAAqCphC,EAASqgC,GAC1C7uC,KAAKqtC,iBAAmBt/B,GAAMS,EAAS6+B,GAAkBwB,EAAYxB,kBACrErtC,KAAK0tC,aAAe3/B,GAAMS,EAASk/B,GAAcmB,EAAYnB,eAKjE3/B,GAAQ,SAAUS,EAASkX,EAAY3L,GACvC,IAAIkc,EAAY,IAAI/C,GAChB3uB,EAAkB,OAAVwV,GAAmC,qBAAVA,EAAwBA,EAAMrT,WAAagf,EAAW+E,aAC3FwL,EAAU7C,MAAM7uB,GAChB,IAAIsrC,EAAS,IAAI9Z,GAAOE,EAAU5Y,QAClC,OAAQqI,EAAW5lB,MACf,KAAK,EACD,IAAIyzB,EAAQsc,EAAO1Z,sBACnB,OAAOzQ,EAAW3X,MAAMS,EAAS0oB,GAAa3D,GAASA,EAAMhvB,MAAQmhB,EAAW+E,cACpF,KAAK,EACD,OAAO/E,EAAW3X,MAAMS,EAASqhC,EAAO1Z,uBAC5C,KAAK,EACD,OAAOzQ,EAAW3X,MAAMS,EAASqhC,EAAOxZ,wBAC5C,KAAK,EACD,OAAOwZ,EAAO1Z,sBAClB,KAAK,EACD,OAAQzQ,EAAWvP,QACf,IAAK,QACD,OAAOgiB,GAAY3pB,EAASqhC,EAAO1Z,uBACvC,IAAK,QACD,OAAOuC,GAAclqB,EAASqhC,EAAO1Z,uBACzC,IAAK,QACD,OAAO2Q,GAAYt4B,EAASqhC,EAAO1Z,uBACvC,IAAK,SACD,IAAI2Z,EAAWD,EAAO1Z,sBACtB,OAAOsB,GAASqY,GAAYA,EAAWlY,GAC3C,IAAK,oBACD,IAAImY,EAAUF,EAAO1Z,sBACrB,OAAOuB,GAAmBqY,GAAWA,EAAUnY,GACnD,IAAK,OACD,OAAO4U,GAAWh+B,EAASqhC,EAAO1Z,0BAsBlD6Z,GAAc,SAAUC,EAASnwC,GACjC,IAAIowC,EAhBkB,SAAUD,GAEhC,OADgBA,EAAQE,aAFG,2BAIvB,IAAK,MACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,QACI,OAAO,GAIGC,CAAoBH,GACtC,OAAuB,IAAhBC,GAA+BpwC,IAASowC,GAG/CG,GACA,SAA0B7hC,EAASyhC,GAC/BjwC,KAAKwO,QAAUA,EACfxO,KAAKswC,UAAY,GACjBtwC,KAAKuwC,SAAW,GAChBvwC,KAAK4zB,MAAQ,EACToc,GAAYC,EAAS,GAGzBjwC,KAAKwwC,OAAS,IAAI5B,GAAqBpgC,EAASiiC,OAAOC,iBAAiBT,EAAS,OAC7EU,GAAkBV,KACdjwC,KAAKwwC,OAAO1B,kBAAkB8B,MAAK,SAAUhD,GAAY,OAAOA,EAAW,OAC3EqC,EAAQl2B,MAAM+0B,kBAAoB,MAER,OAA1B9uC,KAAKwwC,OAAOpB,YAEZa,EAAQl2B,MAAMq1B,UAAY,SAGlCpvC,KAAK6wC,OAAS/nB,EAAY9oB,KAAKwO,QAASyhC,GACpCD,GAAYC,EAAS,KACrBjwC,KAAK4zB,OAAS,KAkBtBkd,GAAU,mEAEVC,GAAiC,qBAAflnB,WAA6B,GAAK,IAAIA,WAAW,KAC9DmnB,GAAM,EAAGA,GAAMF,GAAQtwC,OAAQwwC,KACpCD,GAASD,GAAQ3nB,WAAW6nB,KAAQA,GA6LxC,IA3LA,IAoGIC,GAAU,SAAU9mB,EAAMC,EAAOC,GACjC,OAAIF,EAAK9kB,MACE8kB,EAAK9kB,MAAM+kB,EAAOC,GAEtB,IAAIC,YAAYvpB,MAAM6C,UAAUyB,MAAMvB,KAAKqmB,EAAMC,EAAOC,KAmB/DG,GAAsB,WACtB,SAASA,EAAKC,EAAcC,EAAYC,EAAWC,EAAgB3kB,EAAO5B,GACtErE,KAAKyqB,aAAeA,EACpBzqB,KAAK0qB,WAAaA,EAClB1qB,KAAK2qB,UAAYA,EACjB3qB,KAAK4qB,eAAiBA,EACtB5qB,KAAKiG,MAAQA,EACbjG,KAAKqE,KAAOA,EA8ChB,OAtCAmmB,EAAK5mB,UAAUqa,IAAM,SAAUwL,GAC3B,IAAIoB,EACJ,GAAIpB,GAAa,EAAG,CAChB,GAAIA,EAAY,OAAYA,EAAY,OAAWA,GAAa,MAM5D,OADAoB,IADAA,EAAK7qB,KAAKiG,MAAMwjB,GAtGX,KASI,IAgBFynB,GA8E4BznB,GAC5BzpB,KAAKqE,KAAKwmB,GAErB,GAAIpB,GAAa,MASb,OADAoB,IADAA,EAAK7qB,KAAKiG,MA5FO,MA4F8BwjB,EAAY,OAjHtD,MASI,IAgBFynB,GAyF4BznB,GAC5BzpB,KAAKqE,KAAKwmB,GAErB,GAAIpB,EAAYzpB,KAAK2qB,UAOjB,OALAE,EAAKsmB,MAA6D1nB,GArH7D,IAsHLoB,EAAK7qB,KAAKiG,MAAM4kB,GAChBA,GAAOpB,GAzHF,EAwDK2nB,GAmEVvmB,IADAA,EAAK7qB,KAAKiG,MAAM4kB,KAjHP,IAgBFqmB,GAkG4BznB,GAC5BzpB,KAAKqE,KAAKwmB,GAErB,GAAIpB,GAAa,QACb,OAAOzpB,KAAKqE,KAAKrE,KAAK4qB,gBAI9B,OAAO5qB,KAAK0qB,YAETF,EArDc,GA6DrB3lB,GAAQ,mEAERwsC,GAA+B,qBAAfxnB,WAA6B,GAAK,IAAIA,WAAW,KAC5D3kB,GAAI,EAAGA,GAAIL,GAAMrE,OAAQ0E,KAC9BmsC,GAAOxsC,GAAMskB,WAAWjkB,KAAMA,GAGlC,IAmgDIosC,GA7/CAC,GAAI,EACJC,GAAI,EAEJC,GAAK,GACLC,GAAM,GA0BNnoB,GAAgB,WAEhB,IADA,IAAIL,EAAa,GACRI,EAAK,EAAGA,EAAK/oB,UAAUC,OAAQ8oB,IACpCJ,EAAWI,GAAM/oB,UAAU+oB,GAE/B,GAAIniB,OAAOoiB,cACP,OAAOpiB,OAAOoiB,cAAcppB,MAAMgH,OAAQ+hB,GAE9C,IAAI1oB,EAAS0oB,EAAW1oB,OACxB,IAAKA,EACD,MAAO,GAKX,IAHA,IAAIgpB,EAAY,GACZvjB,GAAS,EACTG,EAAS,KACJH,EAAQzF,GAAQ,CACrB,IAAIipB,EAAYP,EAAWjjB,GACvBwjB,GAAa,MACbD,EAAUrnB,KAAKsnB,IAGfA,GAAa,MACbD,EAAUrnB,KAAyB,OAAnBsnB,GAAa,IAAeA,EAAY,KAAS,SAEjExjB,EAAQ,IAAMzF,GAAUgpB,EAAUhpB,OAAS,SAC3C4F,GAAUe,OAAOuiB,aAAavpB,MAAMgH,OAAQqiB,GAC5CA,EAAUhpB,OAAS,GAG3B,OAAO4F,GAEPurC,GAlJuB,SAAU7kB,EAAQC,GACzC,IAPoB5C,EAAMC,EAAOC,EAO7B2C,EAjHK,SAAUF,GACnB,IAA8D5nB,EAAU+nB,EAAUC,EAAUC,EAAUC,EAAlGC,EAA+B,IAAhBP,EAAOtsB,OAAe8sB,EAAMR,EAAOtsB,OAAW4E,EAAI,EACnC,MAA9B0nB,EAAOA,EAAOtsB,OAAS,KACvB6sB,IACkC,MAA9BP,EAAOA,EAAOtsB,OAAS,IACvB6sB,KAGR,IAAIL,EAAgC,qBAAhBO,aACM,qBAAf1D,YAC+B,qBAA/BA,WAAWjmB,UAAUyB,MAC1B,IAAIkoB,YAAYF,GAChB,IAAItsB,MAAMssB,GACZG,EAAQzsB,MAAMoJ,QAAQ6iB,GAAUA,EAAS,IAAInD,WAAWmD,GAC5D,IAAK9nB,EAAI,EAAGA,EAAIooB,EAAKpoB,GAAK,EACtB+nB,EAAW8jB,GAASjkB,EAAO3D,WAAWjkB,IACtCgoB,EAAW6jB,GAASjkB,EAAO3D,WAAWjkB,EAAI,IAC1CioB,EAAW4jB,GAASjkB,EAAO3D,WAAWjkB,EAAI,IAC1CkoB,EAAW2jB,GAASjkB,EAAO3D,WAAWjkB,EAAI,IAC1CsoB,EAAMpoB,KAAQ6nB,GAAY,EAAMC,GAAY,EAC5CM,EAAMpoB,MAAoB,GAAX8nB,IAAkB,EAAMC,GAAY,EACnDK,EAAMpoB,MAAoB,EAAX+nB,IAAiB,EAAiB,GAAXC,EAE1C,OAAOJ,EA0FM4kB,CAAO9kB,GAChBY,EAAS3sB,MAAMoJ,QAAQ6iB,GAjFT,SAAUA,GAG5B,IAFA,IAAIxsB,EAASwsB,EAAOxsB,OAChBgtB,EAAQ,GACHtoB,EAAI,EAAGA,EAAI1E,EAAQ0E,GAAK,EAC7BsoB,EAAMrrB,KAAM6qB,EAAO9nB,EAAI,IAAM,GAAO8nB,EAAO9nB,EAAI,IAAM,GAAO8nB,EAAO9nB,EAAI,IAAM,EAAK8nB,EAAO9nB,IAE7F,OAAOsoB,EA2E8BqkB,CAAgB7kB,GAAU,IAAIY,YAAYZ,GAC3Ea,EAAS9sB,MAAMoJ,QAAQ6iB,GA1FT,SAAUA,GAG5B,IAFA,IAAIxsB,EAASwsB,EAAOxsB,OAChBgtB,EAAQ,GACHtoB,EAAI,EAAGA,EAAI1E,EAAQ0E,GAAK,EAC7BsoB,EAAMrrB,KAAM6qB,EAAO9nB,EAAI,IAAM,EAAK8nB,EAAO9nB,IAE7C,OAAOsoB,EAoF8BskB,CAAgB9kB,GAAU,IAAI1C,YAAY0C,GAE3E/mB,EAAQgrC,GAAQpjB,EAAQE,GAAkBL,EAAO,GAAK,GACtDrpB,EAAqB,IAAdqpB,EAAO,GACZujB,GAAQpjB,GAHK,GAGmBH,EAAO,IAAM,IAb/BvD,EAcNuD,EAdYtD,EAcJvU,KAAKmY,MAJR,GAI6BN,EAAO,IAAM,GAbzDvD,EAAK9kB,MACE8kB,EAAK9kB,MAAM+kB,EAAOC,GAEtB,IAAIuD,YAAY7sB,MAAM6C,UAAUyB,MAAMvB,KAAKqmB,EAAMC,EAAOC,KAW/D,OAAO,IAAIG,GAAKkD,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIznB,EAAO5B,GAyIrD0tC,CA/QL,gjzBAkRTC,GAAmB,SAAUvoB,GAAa,OAAOkoB,GAAY1zB,IAAIwL,IACjEwoB,GAAwB,SAAUC,EAAavjB,EAAY1oB,GAC3D,IAAImpB,EAAYnpB,EAAQ,EACpB2oB,EAAOD,EAAWS,GAClBnqB,EAAU0pB,EAAW1oB,EAAQ,GAC7BmX,EAAOuR,EAAW1oB,GAEtB,GA5EK,IA4EDhB,GA3EC,IA2EiBmY,EAClB,MAVgB,OAapB,GAhFK,IAgFDnY,GA/EC,IA+EiBA,GA9EZ,IA8E8BA,EACpC,MAbY,OAgBhB,GApFK,IAoFDmY,GAnFC,IAmFcA,GAlFT,IAkFwBA,EAC9B,MAjBY,OAqBhB,GAAInY,IAAYssC,KAAwC,IAAnC,CAACA,GAAGC,GAAGC,GAAIC,IAAKpuC,QAAQ8Z,GACzC,MAvBgB,OA0BpB,IAAKnY,IAAYwsC,IAAMxsC,IAAYusC,MAAOp0B,IAASo0B,IAtF/C,KAsFoDp0B,GACpD,MA3BgB,OA8BpB,IAAKnY,IAAYysC,IA1Fb,KA0FoBzsC,IA1FpB,KA0FsCmY,EACtC,MA/BgB,OAkCpB,GA3FM,KA2FFA,GAlGK,IAkGWA,EAChB,MAnCgB,OAuCpB,GAtGc,IAsGVA,EACA,MAxCgB,OA2CpB,GA/GU,IA+GNnY,EACA,MA5CgB,OA+CpB,GAxGM,KAwGFA,GAvGoB,KAuGDmY,EAAgC,CACnD,KAhHK,IAgHEwR,GACHA,EAAOD,IAAaS,GAExB,GA3GoB,KA2GhBR,EACA,MApDY,OA0DpB,GAjHK,KAiHD3pB,GAjHC,KAiHiBmY,EAAa,CAE/B,IADA,IAAI+0B,EAAU,EAlHb,KAmHMvjB,GACHujB,IACAvjB,EAAOD,IAAaS,GAExB,GAAI+iB,EAAU,IAAM,EAChB,MAjEY,OAoEpB,MAnEgB,QAqEhBC,GAAkB,SAAU3tC,GAC5B,IAAIykB,EA7HW,SAAUzkB,GAIzB,IAHA,IAAIykB,EAAa,GACbhkB,EAAI,EACJ1E,EAASiE,EAAIjE,OACV0E,EAAI1E,GAAQ,CACf,IAAI+D,EAAQE,EAAI0kB,WAAWjkB,KAC3B,GAAIX,GAAS,OAAUA,GAAS,OAAUW,EAAI1E,EAAQ,CAClD,IAAI4oB,EAAQ3kB,EAAI0kB,WAAWjkB,KACF,SAAZ,MAARkkB,GACDF,EAAW/mB,OAAe,KAARoC,IAAkB,KAAe,KAAR6kB,GAAiB,QAG5DF,EAAW/mB,KAAKoC,GAChBW,UAIJgkB,EAAW/mB,KAAKoC,GAGxB,OAAO2kB,EAyGUmpB,CAAa5tC,GAC1BjE,EAAS0oB,EAAW1oB,OACpByF,EAAQ,EACRqsC,EAAU,EACV3jB,EAAazF,EAAW3f,IAAIyoC,IAChC,MAAO,CACH50B,KAAM,WACF,GAAInX,GAASzF,EACT,MAAO,CAAEsc,MAAM,EAAMvY,MAAO,MAGhC,IADA,IAAIguC,EAjFQ,OAkFLtsC,EAAQzF,GAlFH,UAmFP+xC,EAAgBN,GAAsB/oB,EAAYyF,IAAc1oB,MACrE,GApFY,SAoFRssC,GAAuCtsC,IAAUzF,EAAQ,CACzD,IAAI+D,EAAQglB,GAAcppB,MAAM,KAAM+oB,EAAW7jB,MAAMitC,EAASrsC,IAEhE,OADAqsC,EAAUrsC,EACH,CAAE1B,MAAOA,EAAOuY,MAAM,GAEjC,MAAO,CAAEA,MAAM,EAAMvY,MAAO,SAqFpCiuC,GAAe,SAAUnuC,GACzB,OAAmB,IAAZA,EAAK,IAAwB,MAAZA,EAAK,IAA0B,IAAZA,EAAK,IAAwB,MAAZA,EAAK,IAwCjEouC,GAAyB,SAAUxqB,EAAOC,EAAQE,EAAGrB,EAAGgC,GACxD,IAAI2pB,EAAQ,6BACRC,EAAMC,SAASC,gBAAgBH,EAAO,OACtCI,EAAgBF,SAASC,gBAAgBH,EAAO,iBAUpD,OATAC,EAAII,eAAe,KAAM,QAAS9qB,EAAMvhB,YACxCisC,EAAII,eAAe,KAAM,SAAU7qB,EAAOxhB,YAC1CosC,EAAcC,eAAe,KAAM,QAAS,QAC5CD,EAAcC,eAAe,KAAM,SAAU,QAC7CD,EAAcC,eAAe,KAAM,IAAK3qB,EAAE1hB,YAC1CosC,EAAcC,eAAe,KAAM,IAAKhsB,EAAErgB,YAC1CosC,EAAcC,eAAe,KAAM,4BAA6B,QAChEJ,EAAIK,YAAYF,GAChBA,EAAcE,YAAYjqB,GACnB4pB,GAEPM,GAAsB,SAAUN,GAChC,OAAO,IAAI/vC,SAAQ,SAAUC,EAASC,GAClC,IAAIowC,EAAM,IAAIC,MACdD,EAAIE,OAAS,WAAc,OAAOvwC,EAAQqwC,IAC1CA,EAAIG,QAAUvwC,EACdowC,EAAII,IAAM,oCAAsCC,oBAAmB,IAAIC,eAAgBC,kBAAkBd,QAG7Ge,GAAW,CACX,2BACI,IAAInvC,EAvIU,SAAUquC,GAE5B,GAAIA,EAASe,YAAa,CACtB,IAAIv5B,EAAQw4B,EAASe,cACrB,GAAIv5B,EAAM4O,sBAAuB,CAC7B,IAAI4qB,EAAchB,EAASiB,cAAc,aACzCD,EAAY75B,MAAMmO,OAAS4rB,QAC3BF,EAAY75B,MAAMqvB,QAAU,QAC5BwJ,EAAS9rB,KAAKksB,YAAYY,GAC1Bx5B,EAAM25B,WAAWH,GACjB,IAAII,EAAc55B,EAAM4O,wBACpBirB,EAAcp+B,KAAK0jB,MAAMya,EAAY9rB,QAEzC,GADA0qB,EAAS9rB,KAAKotB,YAAYN,GAXhB,MAYNK,EACA,OAAO,GAInB,OAAO,EAqHSE,CAAgBvB,UAE5B,OADAjvC,OAAOohB,eAAe2uB,GAAU,uBAAwB,CAAEnvC,MAAOA,IAC1DA,GAEX,4BACI,IAAIA,EAAQmvC,GAASU,sBAxHN,SAAUxB,GAC7B,IAAIgB,EAAchB,EAASiB,cAAc,aACzCD,EAAY75B,MAAMkO,MAAQ,OAC1B2rB,EAAY75B,MAAMqvB,QAAU,QAC5BwK,EAAY75B,MAAM+vB,SAAW,OAC7B8J,EAAY75B,MAAMyvB,cAAgB,MAClCoK,EAAY75B,MAAMs6B,YAAc,MAChCzB,EAAS9rB,KAAKksB,YAAYY,GAC1B,IAAIx5B,EAAQw4B,EAASe,cACrBC,EAAYU,UAAiC,mBAAd,GAAGC,OAAwB,YAAYA,OAAO,IAAM,GACnF,IAAIxrB,EAAO6qB,EAAYY,WACnBC,EAAWxrB,EAAeF,EAAK1kB,MAAMkF,KAAI,SAAUrE,GAAK,OAAOmkB,EAAgBnkB,MAC/EwvC,EAAS,EACT9lB,EAAO,GAEP+lB,EAAWF,EAASG,OAAM,SAAUC,EAAM3vC,GAC1CkV,EAAM06B,SAAS/rB,EAAM2rB,GACrBt6B,EAAM26B,OAAOhsB,EAAM2rB,EAASG,EAAKr0C,QACjC,IAAIqoB,EAAOzO,EAAM4O,wBACjB0rB,GAAUG,EAAKr0C,OACf,IAAIw0C,EAAansB,EAAKT,EAAIwG,EAAKxG,GAAKS,EAAK9B,EAAI6H,EAAK7H,EAElD,OADA6H,EAAO/F,EACG,IAAN3jB,GAGG8vC,KAGX,OADApC,EAAS9rB,KAAKotB,YAAYN,GACnBe,EA4F0CM,CAAiBrC,UAE9D,OADAjvC,OAAOohB,eAAe2uB,GAAU,wBAAyB,CAAEnvC,MAAOA,IAC3DA,GAEX,0BACI,IAAIA,EA7FE,SAAUquC,GACpB,IAAIM,EAAM,IAAIC,MACV+B,EAAStC,EAASiB,cAAc,UAChCsB,EAAMD,EAAOE,WAAW,MAC5B,IAAKD,EACD,OAAO,EAEXjC,EAAII,IAAM,oEACV,IACI6B,EAAIE,UAAUnC,EAAK,EAAG,GACtBgC,EAAOI,YAEX,MAAOt8B,GACH,OAAO,EAEX,OAAO,EA8ESu8B,CAAQ3C,UAEpB,OADAjvC,OAAOohB,eAAe2uB,GAAU,sBAAuB,CAAEnvC,MAAOA,IACzDA,GAEX,oCACI,IAAIA,EAA8B,oBAAfxD,MAAM6mB,MAA+C,oBAAjB6oB,OAAO+E,MA9E9C,SAAU5C,GAC9B,IAAIsC,EAAStC,EAASiB,cAAc,UAEpCqB,EAAOjtB,MADI,IAEXitB,EAAOhtB,OAFI,IAGX,IAAIitB,EAAMD,EAAOE,WAAW,MAC5B,IAAKD,EACD,OAAOvyC,QAAQE,QAAO,GAE1BqyC,EAAIM,UAAY,iBAChBN,EAAIO,SAAS,EAAG,EARL,SASX,IAAIxC,EAAM,IAAIC,MACVwC,EAAgBT,EAAOI,YAC3BpC,EAAII,IAAMqC,EACV,IAAIhD,EAAMF,GAZC,QAYkC,EAAG,EAAGS,GAGnD,OAFAiC,EAAIM,UAAY,MAChBN,EAAIO,SAAS,EAAG,EAdL,SAeJzC,GAAoBN,GACtBn1B,MAAK,SAAU01B,GAChBiC,EAAIE,UAAUnC,EAAK,EAAG,GACtB,IAAI7uC,EAAO8wC,EAAIS,aAAa,EAAG,EAlBxB,SAkBuCvxC,KAC9C8wC,EAAIM,UAAY,MAChBN,EAAIO,SAAS,EAAG,EApBT,SAqBP,IAAI3sB,EAAO6pB,EAASiB,cAAc,OAIlC,OAHA9qB,EAAKhP,MAAMstB,gBAAkB,OAASsO,EAAgB,IACtD5sB,EAAKhP,MAAMmO,OAASwe,QAEb8L,GAAanuC,GACd4uC,GAAoBR,GA1BnB,QA0BsD,EAAG,EAAG1pB,IAC7DnmB,QAAQE,QAAO,MAEpB0a,MAAK,SAAU01B,GAGhB,OAFAiC,EAAIE,UAAUnC,EAAK,EAAG,GAEfV,GAAa2C,EAAIS,aAAa,EAAG,EAhCjC,SAgCgDvxC,SAEtDoZ,OAAM,WAAc,OAAO,KA2CtBo4B,CAAkBjD,UAClBhwC,QAAQC,SAAQ,GAEtB,OADAc,OAAOohB,eAAe2uB,GAAU,gCAAiC,CAAEnvC,MAAOA,IACnEA,GAEX,0BACI,IAAIA,EA3G2D,qBAA5B,IAAI4uC,OAAQ2C,YA6G/C,OADAnyC,OAAOohB,eAAe2uB,GAAU,sBAAuB,CAAEnvC,MAAOA,IACzDA,GAEX,4BACI,IAAIA,EA/G6E,kBAAtC,IAAIwxC,gBAAiBC,aAiHhE,OADAryC,OAAOohB,eAAe2uB,GAAU,wBAAyB,CAAEnvC,MAAOA,IAC3DA,GAEX,uBACI,IAAIA,EAAQ,oBAAqB,IAAIwxC,eAErC,OADApyC,OAAOohB,eAAe2uB,GAAU,mBAAoB,CAAEnvC,MAAOA,IACtDA,GAEX,uCAEI,IAAIA,IAA2B,qBAATgQ,OAAwBA,KAAK0hC,WAEnD,OADAtyC,OAAOohB,eAAe2uB,GAAU,mCAAoC,CAAEnvC,MAAOA,IACtEA,IAIX2xC,GACA,SAAoBrB,EAAMhE,GACtB7wC,KAAK60C,KAAOA,EACZ70C,KAAK6wC,OAASA,GAqClBsF,GAAmB,SAAU3nC,EAASua,GACtC,IAAIqtB,EAAgBrtB,EAAKqtB,cACzB,GAAIA,EAAe,CACf,IAAIC,EAAUD,EAAcvC,cAAc,sBAC1CwC,EAAQrD,YAAYjqB,EAAKutB,WAAU,IACnC,IAAIC,EAAaxtB,EAAKwtB,WACtB,GAAIA,EAAY,CACZA,EAAWC,aAAaH,EAASttB,GACjC,IAAI8nB,EAAS/nB,EAAYta,EAAS6nC,GAIlC,OAHIA,EAAQ7B,YACR+B,EAAWC,aAAaH,EAAQ7B,WAAY6B,GAEzCxF,GAGf,OAAO/oB,EAAOnF,OAEdgxB,GAAc,SAAU5qB,EAAM2rB,EAAQl0C,GACtC,IAAI41C,EAAgBrtB,EAAKqtB,cACzB,IAAKA,EACD,MAAM,IAAIp2B,MAAM,8BAEpB,IAAI5F,EAAQg8B,EAAczC,cAG1B,OAFAv5B,EAAM06B,SAAS/rB,EAAM2rB,GACrBt6B,EAAM26B,OAAOhsB,EAAM2rB,EAASl0C,GACrB4Z,GAEPq8B,GAAmB,SAAUlyC,GAC7B,GAAImvC,GAASgD,iCAAkC,CAE3C,IAAIC,EAAY,IAAIpiC,KAAK0hC,eAAU,EAAQ,CAAEW,YAAa,aAE1D,OAAO71C,MAAM6mB,KAAK+uB,EAAUE,QAAQtyC,IAAQgF,KAAI,SAAUstC,GAAW,OAAOA,EAAQA,WAExF,OAzQiB,SAAUpyC,GAI3B,IAHA,IAEIqyC,EAFAC,EAAU3E,GAAgB3tC,GAC1BuyC,EAAY,KAEPF,EAAKC,EAAQ35B,QAAQN,MACtBg6B,EAAGvyC,OACHyyC,EAAU70C,KAAK20C,EAAGvyC,MAAMc,SAGhC,OAAO2xC,EAgQAC,CAAe1yC,IAatB2yC,GAAY,SAAU3yC,EAAOisC,GAC7B,OAAgC,IAAzBA,EAAOhH,cAAsBiN,GAAiBlyC,GAZtC,SAAUA,EAAOisC,GAChC,GAAIkD,GAASgD,iCAAkC,CAE3C,IAAIC,EAAY,IAAIpiC,KAAK0hC,eAAU,EAAQ,CACvCW,YAAa,SAGjB,OAAO71C,MAAM6mB,KAAK+uB,EAAUE,QAAQtyC,IAAQgF,KAAI,SAAUstC,GAAW,OAAOA,EAAQA,WAExF,OAAOM,GAAW5yC,EAAOisC,GAGqC4G,CAAa7yC,EAAOisC,IAGlF6G,GAAiB,CAAC,GAAQ,IAAQ,KAAQ,MAAS,MAAS,KAAQ,MACpEF,GAAa,SAAU1yC,EAAK+rC,GA6B5B,IA5BA,IAKIsG,EALAC,EAnkHU,SAAUtyC,EAAKnE,GAC7B,IAAI4oB,EAAaD,EAAexkB,GAC5B+qB,EAAKH,GAAoBnG,EAAY5oB,GAAUyuB,EAAWS,EAAG,GAAIb,EAAaa,EAAG,GAAI8nB,EAAuB9nB,EAAG,GAC/GhvB,EAAS0oB,EAAW1oB,OACpB8xC,EAAU,EACViF,EAAY,EAChB,MAAO,CACHn6B,KAAM,WACF,GAAIm6B,GAAa/2C,EACb,MAAO,CAAEsc,MAAM,EAAMvY,MAAO,MAGhC,IADA,IAAI+qB,EAnXU,OAoXPioB,EAAY/2C,GApXL,UAqXT8uB,EAAYR,GAAkB5F,EAAYyF,EAAYI,IAAYwoB,EAAWD,MAElF,GAvXc,SAuXVhoB,GAAqCioB,IAAc/2C,EAAQ,CAC3D,IAAI+D,EAAQ,IAAIyrB,GAAM9G,EAAYoG,EAAWgjB,EAASiF,GAEtD,OADAjF,EAAUiF,EACH,CAAEhzC,MAAOA,EAAOuY,MAAM,GAEjC,MAAO,CAAEA,MAAM,EAAMvY,MAAO,QA+iHtBizC,CAAY/yC,EAAK,CAC3B6qB,UAAWkhB,EAAOlhB,UAClBC,UAAmC,eAAxBihB,EAAOhG,aAAiD,aAAegG,EAAOjhB,YAEzFkoB,EAAQ,GAERC,EAAU,WACV,GAAIZ,EAAGvyC,MAAO,CACV,IAAIA,EAAQuyC,EAAGvyC,MAAMc,QACjB6jB,EAAaD,EAAe1kB,GAC5BozC,EAAS,GACbzuB,EAAWjnB,SAAQ,SAAUwnB,IACkB,IAAvC4tB,GAAe/zC,QAAQmmB,GACvBkuB,GAAUtuB,EAAgBI,IAGtBkuB,EAAOn3C,QACPi3C,EAAMt1C,KAAKw1C,GAEfF,EAAMt1C,KAAKknB,EAAgBI,IAC3BkuB,EAAS,OAGbA,EAAOn3C,QACPi3C,EAAMt1C,KAAKw1C,OAIdb,EAAKC,EAAQ35B,QAAQN,MAC1B46B,IAEJ,OAAOD,GAGPG,GACA,SAAuBppC,EAASua,EAAMynB,GAClCxwC,KAAK60C,KAAOzF,GAAUrmB,EAAK1kB,KAAMmsC,EAAOpF,eACxCprC,KAAK63C,WA3HS,SAAUrpC,EAASjK,EAAOisC,EAAQznB,GACpD,IAAI0rB,EAAWyC,GAAU3yC,EAAOisC,GAC5BqH,EAAa,GACbnD,EAAS,EA4Bb,OA3BAD,EAASxyC,SAAQ,SAAU4yC,GACvB,GAAIrE,EAAO7D,mBAAmBnsC,QAAUq0C,EAAK/8B,OAAOtX,OAAS,EACzD,GAAIkzC,GAASU,qBAAsB,CAC/B,IAAI0D,EAAcnE,GAAY5qB,EAAM2rB,EAAQG,EAAKr0C,QAAQu3C,iBACzD,GAAID,EAAYt3C,OAAS,EAAG,CACxB,IAAIw3C,EAAcvB,GAAiB5B,GAC/BoD,EAAc,EAClBD,EAAY/1C,SAAQ,SAAUi2C,GAC1BL,EAAW11C,KAAK,IAAI+zC,GAAWgC,EAAYpwB,EAAOY,gBAAgBla,EAASmlC,GAAY5qB,EAAMkvB,EAAcvD,EAAQwD,EAAW13C,QAAQu3C,oBACtIE,GAAeC,EAAW13C,eAI9Bq3C,EAAW11C,KAAK,IAAI+zC,GAAWrB,EAAM/sB,EAAOY,gBAAgBla,EAASspC,SAGxE,CACD,IAAIK,EAAkBpvB,EAAKqvB,UAAUvD,EAAKr0C,QAC1Cq3C,EAAW11C,KAAK,IAAI+zC,GAAWrB,EAAMsB,GAAiB3nC,EAASua,KAC/DA,EAAOovB,OAGLzE,GAASU,uBACfrrB,EAAOA,EAAKqvB,UAAUvD,EAAKr0C,SAE/Bk0C,GAAUG,EAAKr0C,UAEZq3C,EA4FeQ,CAAgB7pC,EAASxO,KAAK60C,KAAMrE,EAAQznB,IAIlEqmB,GAAY,SAAUyF,EAAMzF,GAC5B,OAAQA,GACJ,KAAK,EACD,OAAOyF,EAAKrqC,cAChB,KAAK,EACD,OAAOqqC,EAAKtxC,QAAQ+0C,GAAY/nC,IACpC,KAAK,EACD,OAAOskC,EAAKnkC,cAChB,QACI,OAAOmkC,IAGfyD,GAAa,2BACb/nC,GAAa,SAAU9J,EAAG8xC,EAAIC,GAC9B,OAAI/xC,EAAEjG,OAAS,EACJ+3C,EAAKC,EAAG9nC,cAEZjK,GAGPgyC,GAAuC,SAAUC,GAEjD,SAASD,EAAsBjqC,EAAS0kC,GACpC,IAAIplC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAAS0kC,IAAQlzC,KAK/C,OAJA8N,EAAMwlC,IAAMJ,EAAIyF,YAAczF,EAAII,IAClCxlC,EAAM8qC,eAAiB1F,EAAI2F,aAC3B/qC,EAAMgrC,gBAAkB5F,EAAI6F,cAC5BjrC,EAAMU,QAAQ+K,MAAM0tB,SAASn5B,EAAMwlC,KAC5BxlC,EAEX,OATAkY,EAAUyyB,EAAuBC,GAS1BD,EAV+B,CAWxCpI,IAEE2I,GAAwC,SAAUN,GAElD,SAASM,EAAuBxqC,EAAS0mC,GACrC,IAAIpnC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAAS0mC,IAAWl1C,KAIlD,OAHA8N,EAAMonC,OAASA,EACfpnC,EAAM8qC,eAAiB1D,EAAOjtB,MAC9Bna,EAAMgrC,gBAAkB5D,EAAOhtB,OACxBpa,EAEX,OARAkY,EAAUgzB,EAAwBN,GAQ3BM,EATgC,CAUzC3I,IAEE4I,GAAqC,SAAUP,GAE/C,SAASO,EAAoBzqC,EAAS0kC,GAClC,IAAIplC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAAS0kC,IAAQlzC,KAC3C4E,EAAI,IAAI4uC,cACR3C,EAAS/nB,EAAYta,EAAS0kC,GAOlC,OANAA,EAAIgG,aAAa,QAASrI,EAAO5oB,MAAQ,MACzCirB,EAAIgG,aAAa,SAAUrI,EAAO3oB,OAAS,MAC3Cpa,EAAM6kC,IAAM,sBAAwBY,mBAAmB3uC,EAAE6uC,kBAAkBP,IAC3EplC,EAAM8qC,eAAiB1F,EAAIjrB,MAAMkxB,QAAQ50C,MACzCuJ,EAAMgrC,gBAAkB5F,EAAIhrB,OAAOixB,QAAQ50C,MAC3CuJ,EAAMU,QAAQ+K,MAAM0tB,SAASn5B,EAAM6kC,KAC5B7kC,EAEX,OAbAkY,EAAUizB,EAAqBP,GAaxBO,EAd6B,CAetC5I,IAEE+I,GAAoC,SAAUV,GAE9C,SAASU,EAAmB5qC,EAASyhC,GACjC,IAAIniC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASyhC,IAAYjwC,KAEnD,OADA8N,EAAMvJ,MAAQ0rC,EAAQ1rC,MACfuJ,EAEX,OANAkY,EAAUozB,EAAoBV,GAMvBU,EAP4B,CAQrC/I,IAEEgJ,GAAoC,SAAUX,GAE9C,SAASW,EAAmB7qC,EAASyhC,GACjC,IAAIniC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASyhC,IAAYjwC,KAGnD,OAFA8N,EAAMsc,MAAQ6lB,EAAQ7lB,MACtBtc,EAAMwrC,SAAuC,mBAArBrJ,EAAQqJ,WAA+C,IAArBrJ,EAAQqJ,SAC3DxrC,EAEX,OAPAkY,EAAUqzB,EAAoBX,GAOvBW,EAR4B,CASrChJ,IAEEkJ,GAAyB,CACzB,CACIz5C,KAAM,GACN8zB,MAAO,EACP+B,KAAM,KACNngB,OAAQ,IAGZgkC,GAAsB,CACtB,CACI15C,KAAM,GACN8zB,MAAO,EACPpe,OAAQ,KAkBZikC,GAAW,WAEXC,GAAuC,SAAUhB,GAEjD,SAASgB,EAAsBlrC,EAASmrC,GACpC,IApB4B9I,EAoBxB/iC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASmrC,IAAU35C,KAyBjD,OAxBA8N,EAAMhO,KAAO65C,EAAM75C,KAAK0K,cACxBsD,EAAM8rC,QAAUD,EAAMC,QACtB9rC,EAAMvJ,MAdM,SAAUwkB,GAC1B,IAAIxkB,EAAQwkB,EAAKjpB,OAAS25C,GAAW,IAAI14C,MAAMgoB,EAAKxkB,MAAM/D,OAAS,GAAG8E,KAAK,UAAYyjB,EAAKxkB,MAC5F,OAAwB,IAAjBA,EAAM/D,OAAeuoB,EAAK8wB,aAAe,GAAKt1C,EAYnCu1C,CAAcH,GAVrB,aAWH7rC,EAAMhO,MAVN,UAU2BgO,EAAMhO,OACjCgO,EAAM0iC,OAAO5M,gBAAkB,WAC/B91B,EAAM0iC,OAAOxI,eACTl6B,EAAM0iC,OAAOvI,iBACTn6B,EAAM0iC,OAAOtI,kBACTp6B,EAAM0iC,OAAOrI,gBACT,WAChBr6B,EAAM0iC,OAAOzH,eACTj7B,EAAM0iC,OAAOxH,iBACTl7B,EAAM0iC,OAAOvH,kBACTn7B,EAAM0iC,OAAOtH,gBACT,EAChBp7B,EAAM0iC,OAAO9H,eACT56B,EAAM0iC,OAAO7H,iBACT76B,EAAM0iC,OAAO5H,kBACT96B,EAAM0iC,OAAO3H,gBACT,EAChB/6B,EAAM0iC,OAAO7M,eAAiB,CAAC,GAC/B71B,EAAM0iC,OAAOjJ,iBAAmB,CAAC,GACjCz5B,EAAM+iC,QA3CkBA,EA2CW/iC,EAAM+iC,QA1CtC5oB,MAAQ4oB,EAAO3oB,OACf,IAAIJ,EAAO+oB,EAAO9oB,MAAQ8oB,EAAO5oB,MAAQ4oB,EAAO3oB,QAAU,EAAG2oB,EAAO7oB,IAAK6oB,EAAO3oB,OAAQ2oB,EAAO3oB,QAEjG2oB,EAAO5oB,MAAQ4oB,EAAO3oB,OACpB,IAAIJ,EAAO+oB,EAAO9oB,KAAM8oB,EAAO7oB,KAAO6oB,EAAO3oB,OAAS2oB,EAAO5oB,OAAS,EAAG4oB,EAAO5oB,MAAO4oB,EAAO5oB,OAElG4oB,GAsCK/iC,EAAMhO,MACV,IAjCG,WAkCCgO,EAAM0iC,OAAOlI,qBACTx6B,EAAM0iC,OAAOnI,oBACTv6B,EAAM0iC,OAAOjI,wBACTz6B,EAAM0iC,OAAOhI,uBACT+Q,GAChB,MACJ,IAvCA,QAwCIzrC,EAAM0iC,OAAOlI,qBACTx6B,EAAM0iC,OAAOnI,oBACTv6B,EAAM0iC,OAAOjI,wBACTz6B,EAAM0iC,OAAOhI,uBACTgR,GAGxB,OAAO1rC,EAEX,OA7CAkY,EAAU0zB,EAAuBhB,GA6C1BgB,EA9C+B,CA+CxCrJ,IAEE0J,GAAwC,SAAUrB,GAElD,SAASqB,EAAuBvrC,EAASyhC,GACrC,IAAIniC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASyhC,IAAYjwC,KAC/CsQ,EAAS2/B,EAAQ3vC,QAAQ2vC,EAAQ+J,eAAiB,GAEtD,OADAlsC,EAAMvJ,MAAQ+L,GAASA,EAAOukC,MAAa,GACpC/mC,EAEX,OAPAkY,EAAU+zB,EAAwBrB,GAO3BqB,EARgC,CASzC1J,IAEE4J,GAA0C,SAAUvB,GAEpD,SAASuB,EAAyBzrC,EAASyhC,GACvC,IAAIniC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASyhC,IAAYjwC,KAEnD,OADA8N,EAAMvJ,MAAQ0rC,EAAQ1rC,MACfuJ,EAEX,OANAkY,EAAUi0B,EAA0BvB,GAM7BuB,EAPkC,CAQ3C5J,IAEE6J,GAAwC,SAAUxB,GAElD,SAASwB,EAAuB1rC,EAAS2rC,GACrC,IAAIrsC,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAAS2rC,IAAWn6C,KAClD8N,EAAMwlC,IAAM6G,EAAO7G,IACnBxlC,EAAMma,MAAQnN,SAASq/B,EAAOlyB,MAAO,KAAO,EAC5Cna,EAAMoa,OAASpN,SAASq/B,EAAOjyB,OAAQ,KAAO,EAC9Cpa,EAAM81B,gBAAkB91B,EAAM0iC,OAAO5M,gBACrC,IACI,GAAIuW,EAAOC,eACPD,EAAOC,cAAcxH,UACrBuH,EAAOC,cAAcxH,SAASyH,gBAAiB,CAC/CvsC,EAAMwsC,KAAOC,GAAU/rC,EAAS2rC,EAAOC,cAAcxH,SAASyH,iBAE9D,IAAIG,EAA0BL,EAAOC,cAAcxH,SAASyH,gBACtD/f,GAAW9rB,EAASkiC,iBAAiByJ,EAAOC,cAAcxH,SAASyH,iBAAiBzW,iBACpF9K,GAAOC,YACT0hB,EAAsBN,EAAOC,cAAcxH,SAAS9rB,KAClDwT,GAAW9rB,EAASkiC,iBAAiByJ,EAAOC,cAAcxH,SAAS9rB,MAAM8c,iBACzE9K,GAAOC,YACbjrB,EAAM81B,gBAAkB5K,GAAcwhB,GAChCxhB,GAAcyhB,GACV3sC,EAAM0iC,OAAO5M,gBACb6W,EACJD,GAGd,MAAOxhC,IACP,OAAOlL,EAEX,OA7BAkY,EAAUk0B,EAAwBxB,GA6B3BwB,EA9BgC,CA+BzC7J,IAEEqK,GAAc,CAAC,KAAM,KAAM,QAC3BC,GAAgB,SAAUnsC,EAASua,EAAMmP,EAAQ0iB,GACjD,IAAK,IAAIC,EAAY9xB,EAAKyrB,WAAYsG,OAAW,EAAQD,EAAWA,EAAYC,EAE5E,GADAA,EAAWD,EAAUE,YACjBC,GAAWH,IAAcA,EAAUx2C,KAAKyT,OAAOtX,OAAS,EACxD03B,EAAOoY,UAAUnuC,KAAK,IAAIy1C,GAAcppC,EAASqsC,EAAW3iB,EAAOsY,cAElE,GAAIyK,GAAcJ,GACnB,GAAIK,GAAcL,IAAcA,EAAUM,cACtCN,EAAUM,gBAAgBl5C,SAAQ,SAAU44C,GAAa,OAAOF,GAAcnsC,EAASqsC,EAAW3iB,EAAQ0iB,UAEzG,CACD,IAAIQ,EAAYC,GAAgB7sC,EAASqsC,GACrCO,EAAU5K,OAAOnB,cACbiM,GAA2BT,EAAWO,EAAWR,GACjDQ,EAAUxnB,OAAS,EAEd2nB,GAAuBH,EAAU5K,UACtC4K,EAAUxnB,OAAS,IAEyB,IAA5C8mB,GAAYp3C,QAAQu3C,EAAUW,WAC9BJ,EAAUxnB,OAAS,GAEvBsE,EAAOqY,SAASpuC,KAAKi5C,GACrBP,EAAUY,KACNZ,EAAUa,WACVf,GAAcnsC,EAASqsC,EAAUa,WAAYN,EAAWR,GAElDe,GAAkBd,IACvBe,GAAaf,IACbgB,GAAgBhB,IACjBF,GAAcnsC,EAASqsC,EAAWO,EAAWR,MAOjES,GAAkB,SAAU7sC,EAASyhC,GACrC,OAAI6L,GAAe7L,GACR,IAAIwI,GAAsBjqC,EAASyhC,GAE1C8L,GAAgB9L,GACT,IAAI+I,GAAuBxqC,EAASyhC,GAE3C2L,GAAa3L,GACN,IAAIgJ,GAAoBzqC,EAASyhC,GAExC+L,GAAY/L,GACL,IAAImJ,GAAmB5qC,EAASyhC,GAEvCgM,GAAYhM,GACL,IAAIoJ,GAAmB7qC,EAASyhC,GAEvCiM,GAAejM,GACR,IAAIyJ,GAAsBlrC,EAASyhC,GAE1C4L,GAAgB5L,GACT,IAAI8J,GAAuBvrC,EAASyhC,GAE3C0L,GAAkB1L,GACX,IAAIgK,GAAyBzrC,EAASyhC,GAE7CkM,GAAgBlM,GACT,IAAIiK,GAAuB1rC,EAASyhC,GAExC,IAAII,GAAiB7hC,EAASyhC,IAErCsK,GAAY,SAAU/rC,EAASyhC,GAC/B,IAAImL,EAAYC,GAAgB7sC,EAASyhC,GAGzC,OAFAmL,EAAUxnB,OAAS,EACnB+mB,GAAcnsC,EAASyhC,EAASmL,EAAWA,GACpCA,GAEPE,GAA6B,SAAUvyB,EAAMqyB,EAAWR,GACxD,OAAQQ,EAAU5K,OAAOhB,0BACrB4L,EAAU5K,OAAO/D,QAAU,GAC3B2O,EAAU5K,OAAOlB,iBAChB8M,GAAcrzB,IAAS6xB,EAAKpK,OAAOxX,iBAExCuiB,GAAyB,SAAU/K,GAAU,OAAOA,EAAOjB,gBAAkBiB,EAAOf,cACpFuL,GAAa,SAAUjyB,GAAQ,OAAOA,EAAKszB,WAAaC,KAAKC,WAC7DtB,GAAgB,SAAUlyB,GAAQ,OAAOA,EAAKszB,WAAaC,KAAKE,cAChE7L,GAAoB,SAAU5nB,GAC9B,OAAOkyB,GAAclyB,IAA+B,qBAAfA,EAAKhP,QAA0B0iC,GAAiB1zB,IAErF0zB,GAAmB,SAAUxM,GAC7B,MAAoC,kBAAtBA,EAAQyM,WAEtBV,GAAc,SAAUjzB,GAAQ,MAAwB,OAAjBA,EAAKyyB,SAC5CS,GAAc,SAAUlzB,GAAQ,MAAwB,OAAjBA,EAAKyyB,SAC5CU,GAAiB,SAAUnzB,GAAQ,MAAwB,UAAjBA,EAAKyyB,SAE/CI,GAAe,SAAU7yB,GAAQ,MAAwB,QAAjBA,EAAKyyB,SAC7CY,GAAgB,SAAUrzB,GAAQ,MAAwB,SAAjBA,EAAKyyB,SAC9CO,GAAkB,SAAUhzB,GAAQ,MAAwB,WAAjBA,EAAKyyB,SAChDmB,GAAiB,SAAU5zB,GAAQ,MAAwB,UAAjBA,EAAKyyB,SAC/CM,GAAiB,SAAU/yB,GAAQ,MAAwB,QAAjBA,EAAKyyB,SAC/CW,GAAkB,SAAUpzB,GAAQ,MAAwB,WAAjBA,EAAKyyB,SAChDoB,GAAiB,SAAU7zB,GAAQ,MAAwB,UAAjBA,EAAKyyB,SAE/CG,GAAoB,SAAU5yB,GAAQ,MAAwB,aAAjBA,EAAKyyB,SAClDK,GAAkB,SAAU9yB,GAAQ,MAAwB,WAAjBA,EAAKyyB,SAChDN,GAAgB,SAAUnyB,GAAQ,MAAwB,SAAjBA,EAAKyyB,SAE9CqB,GAAkB,SAAU9zB,GAAQ,OAAOA,EAAKyyB,QAAQl4C,QAAQ,KAAO,GAEvEw5C,GAA8B,WAC9B,SAASA,IACL98C,KAAK+8C,SAAW,GA+CpB,OA7CAD,EAAal5C,UAAUo5C,gBAAkB,SAAUj1C,GAC/C,IAAIylC,EAAUxtC,KAAK+8C,SAASh1C,GAC5B,OAAIylC,GAAWA,EAAQhtC,OACZgtC,EAAQA,EAAQhtC,OAAS,GAE7B,GAEXs8C,EAAal5C,UAAUq5C,iBAAmB,SAAUl1C,GAChD,IAAIylC,EAAUxtC,KAAK+8C,SAASh1C,GAC5B,OAAOylC,GAAoB,IAE/BsP,EAAal5C,UAAUsM,IAAM,SAAU6sC,GACnC,IAAIjvC,EAAQ9N,KACZ+8C,EAAS96C,SAAQ,SAAUurC,GAAW,OAAO1/B,EAAMivC,SAASvP,GAASt9B,UAEzE4sC,EAAal5C,UAAUmK,MAAQ,SAAUgM,GACrC,IAAIjM,EAAQ9N,KACRqtC,EAAmBtzB,EAAMszB,iBACzBK,EAAe3zB,EAAM2zB,aACrBwP,GAAW,EACU,OAArB7P,GACAA,EAAiBprC,SAAQ,SAAUk7C,GAC/B,IAAI3P,EAAU1/B,EAAMivC,SAASI,EAAM3P,SAC/BA,GAA+B,IAApB2P,EAAM1P,YACjByP,GAAW,EACN1P,EAAQhtC,QACTgtC,EAAQrrC,KAAK,GAEjBqrC,EAAQ33B,KAAK4jB,IAAI,EAAG+T,EAAQhtC,OAAS,KAAO28C,EAAM1P,cAI9D,IAAI2P,EAAe,GAWnB,OAVIF,GACAxP,EAAazrC,SAAQ,SAAUk7C,GAC3B,IAAI3P,EAAU1/B,EAAMivC,SAASI,EAAM3P,SACnC4P,EAAaj7C,KAAKg7C,EAAM3P,SACnBA,IACDA,EAAU1/B,EAAMivC,SAASI,EAAM3P,SAAW,IAE9CA,EAAQrrC,KAAKg7C,EAAM1uC,UAGpB2uC,GAEJN,EAjDsB,GAmD7BO,GAAc,CACdjsB,SAAU,CAAC,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAC9DqF,OAAQ,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,MAE3E6mB,GAAW,CACXlsB,SAAU,CACN,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAC3G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpDqF,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAGJ8mB,GAAS,CACTnsB,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpDqF,OAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAGJ+mB,GAAW,CACXpsB,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5DqF,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAGJgnB,GAAwB,SAAUl5C,EAAOgxB,EAAKkE,EAAKikB,EAASC,EAAUhwC,GACtE,OAAIpJ,EAAQgxB,GAAOhxB,EAAQk1B,EAChBmkB,GAAkBr5C,EAAOo5C,EAAUhwC,EAAOnN,OAAS,GAEtDk9C,EAAQtsB,SAAShY,QAAO,SAAU5I,EAAQqtC,EAAS53C,GACvD,KAAO1B,GAASs5C,GACZt5C,GAASs5C,EACTrtC,GAAUktC,EAAQjnB,OAAOxwB,GAE7B,OAAOuK,IACR,IAAM7C,GAETmwC,GAAuC,SAAUv5C,EAAOw5C,EAAsBC,EAAW7gC,GACzF,IAAI3M,EAAS,GACb,GACSwtC,GACDz5C,IAEJiM,EAAS2M,EAAS5Y,GAASiM,EAC3BjM,GAASw5C,QACJx5C,EAAQw5C,GAAwBA,GACzC,OAAOvtC,GAEPytC,GAA8B,SAAU15C,EAAO25C,EAAqBC,EAAmBH,EAAWrwC,GAClG,IAAIowC,EAAuBI,EAAoBD,EAAsB,EACrE,OAAS35C,EAAQ,EAAI,IAAM,KACtBu5C,GAAqCjoC,KAAKC,IAAIvR,GAAQw5C,EAAsBC,GAAW,SAAUv0B,GAC9F,OAAOJ,EAAgBxT,KAAKuoC,MAAM30B,EAAYs0B,GAAwBG,MAEtEvwC,IAER0wC,GAAgC,SAAU95C,EAAOm5C,EAAS/vC,QAC3C,IAAXA,IAAqBA,EAAS,MAClC,IAAIowC,EAAuBL,EAAQl9C,OACnC,OAAQs9C,GAAqCjoC,KAAKC,IAAIvR,GAAQw5C,GAAsB,GAAO,SAAUt0B,GAAa,OAAOi0B,EAAQ7nC,KAAKuoC,MAAM30B,EAAYs0B,OAA6BpwC,GAMrL2wC,GAAmB,SAAU/5C,EAAOqQ,EAAS2pC,EAAaC,EAAc7wC,EAAQimB,GAChF,GAAIrvB,GAAS,MAAQA,EAAQ,KACzB,OAAOq5C,GAAkBr5C,EAAO,EAAqBoJ,EAAOnN,OAAS,GAEzE,IAAIi+C,EAAM5oC,KAAKC,IAAIvR,GACfiM,EAAS7C,EACb,GAAY,IAAR8wC,EACA,OAAO7pC,EAAQ,GAAKpE,EAExB,IAAK,IAAIukB,EAAQ,EAAG0pB,EAAM,GAAK1pB,GAAS,EAAGA,IAAS,CAChD,IAAI2pB,EAAcD,EAAM,GACJ,IAAhBC,GAAqBvR,GAASvZ,EAf1B,IAe0D,KAAXpjB,EACnDA,EAASoE,EAAQ8pC,GAAeluC,EAE3BkuC,EAAc,GACF,IAAhBA,GAA+B,IAAV3pB,GACL,IAAhB2pB,GAA+B,IAAV3pB,GAAeoY,GAASvZ,EAnB/B,IAoBE,IAAhB8qB,GAA+B,IAAV3pB,GAAeoY,GAASvZ,EAnB1B,IAmB+DrvB,EAAQ,KAC1E,IAAhBm6C,GAAqB3pB,EAAQ,GAAKoY,GAASvZ,EAnBzB,GAoBnBpjB,EAASoE,EAAQ8pC,IAAgB3pB,EAAQ,EAAIwpB,EAAYxpB,EAAQ,GAAK,IAAMvkB,EAEvD,IAAhBkuC,GAAqB3pB,EAAQ,IAClCvkB,EAAS+tC,EAAYxpB,EAAQ,GAAKvkB,GAEtCiuC,EAAM5oC,KAAKuoC,MAAMK,EAAM,IAE3B,OAAQl6C,EAAQ,EAAIi6C,EAAe,IAAMhuC,GAMzCotC,GAAoB,SAAUr5C,EAAOzE,EAAM6+C,GAC3C,IAAIC,EAAgBD,EAAe,KAAO,GACtCE,EAAYF,EAAe,SAAM,GACjCG,EAAeH,EAAe,KAAO,GACrCI,EAAcJ,EAAe,IAAM,GACvC,OAAQ7+C,GACJ,KAAK,EACD,MAAO,SAAMi/C,EACjB,KAAK,EACD,MAAO,SAAMA,EACjB,KAAK,EACD,MAAO,SAAMA,EACjB,KAAK,EACD,IAAIvuC,EAASytC,GAA4B15C,EAAO,GAAI,IAAI,EAAMq6C,GAC9D,OAAOpuC,EAAOhQ,OAAS,EAAI,IAAMgQ,EAASA,EAC9C,KAAK,EACD,OAAO6tC,GAA8B95C,EAAO,+DAAcs6C,GAC9D,KAAK,EACD,OAAOpB,GAAsBl5C,EAAO,EAAG,KAAM84C,GAAa,EAAiBuB,GAAep0C,cAC9F,KAAK,EACD,OAAOizC,GAAsBl5C,EAAO,EAAG,KAAM84C,GAAa,EAAiBuB,GAC/E,KAAK,EACD,OAAOX,GAA4B15C,EAAO,IAAK,KAAK,EAAOq6C,GAC/D,KAAK,EACD,OAAOX,GAA4B15C,EAAO,GAAI,KAAK,EAAOq6C,GAC9D,KAAK,GACD,OAAOX,GAA4B15C,EAAO,GAAI,IAAI,EAAOq6C,GAC7D,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAM,MAAM,EAAMq6C,GAChE,KAAK,GACL,KAAK,GACD,OAAOnB,GAAsBl5C,EAAO,EAAG,KAAM+4C,GAAU,EAAiBsB,GAC5E,KAAK,GACD,OAAOnB,GAAsBl5C,EAAO,EAAG,KAAM+4C,GAAU,EAAiBsB,GAAep0C,cAC3F,KAAK,GACD,OAAOyzC,GAA4B15C,EAAO,KAAM,MAAM,EAAMq6C,GAChE,KAAK,GACL,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAM,MAAM,EAAMq6C,GAChE,KAAK,GACD,OAAOP,GAA8B95C,EAAO,2EAAgBs6C,GAChE,KAAK,GACD,OAAOR,GAA8B95C,EAAO,+DAAcs6C,GAC9D,KAAK,GACL,KAAK,GACD,OAAOP,GAAiB/5C,EAAO,+DAjDR,2BAiDoD,SAAKs6C,EAAWG,IAC/F,KAAK,GACD,OAAOV,GAAiB/5C,EAAO,+DAlDV,2BAkDoD,SAAKs6C,EAAWI,IAC7F,KAAK,GACD,OAAOX,GAAiB/5C,EAAO,+DArDR,2BAqDoD,SAAKs6C,EAAWG,IAC/F,KAAK,GACD,OAAOV,GAAiB/5C,EAAO,+DAtDV,2BAsDoD,SAAKs6C,EAAWI,IAC7F,KAAK,GACD,OAAOX,GAAiB/5C,EAAO,+DAAc,2BAvDjC,2BAuD4Ds6C,EAAW,GACvF,KAAK,GACD,OAAOP,GAAiB/5C,EAAO,+DAAc,2BAzDjC,2BAyD4Ds6C,EAAWI,GACvF,KAAK,GACD,OAAOX,GAAiB/5C,EAAO,+DAAc,2BA1DnC,2BA0D4Du6C,EAAcG,GACxF,KAAK,GACD,OAAOX,GAAiB/5C,EAAO,+DAAc,2BA5DnC,2BA4D4Du6C,EAAc,GACxF,KAAK,GACD,OAAOR,GAAiB/5C,EAAO,+DAAc,qBA9DnC,2BA8D2Du6C,EAAcG,GACvF,KAAK,GACD,OAAOhB,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOnB,GAAsBl5C,EAAO,EAAG,MAAOi5C,GAAU,EAAiBoB,GAC7E,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOnB,GAAsBl5C,EAAO,EAAG,MAAOg5C,GAAQ,EAAiBqB,GAC3E,KAAK,GACD,OAAOP,GAA8B95C,EAAO,oSAChD,KAAK,GACD,OAAO85C,GAA8B95C,EAAO,8RAChD,KAAK,GACD,OAAO05C,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOP,GAA8B95C,EAAO,mSAAoDs6C,GACpG,KAAK,GACD,OAAOR,GAA8B95C,EAAO,6RAAmDs6C,GACnG,KAAK,GACD,OAAOZ,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAQ,MAAQ,EAAMq6C,GACpE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAQ,MAAQ,EAAMq6C,GACpE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,GACD,OAAOX,GAA4B15C,EAAO,KAAO,MAAO,EAAMq6C,GAClE,KAAK,EACL,QACI,OAAOX,GAA4B15C,EAAO,GAAI,IAAI,EAAMq6C,KAKhEM,GAAgC,WAChC,SAASA,EAAe1wC,EAASyhC,EAAS3vC,GAOtC,GANAN,KAAKwO,QAAUA,EACfxO,KAAKM,QAAUA,EACfN,KAAKm/C,iBAAmB,GACxBn/C,KAAKo/C,iBAAmBnP,EACxBjwC,KAAK+8C,SAAW,IAAID,GACpB98C,KAAKq/C,WAAa,GACbpP,EAAQmG,cACT,MAAM,IAAIp2B,MAAM,kDAEpBhgB,KAAKq6C,gBAAkBr6C,KAAKs2C,UAAUrG,EAAQmG,cAAciE,iBAAiB,GA2VjF,OAzVA6E,EAAet7C,UAAU07C,SAAW,SAAUlJ,EAAemJ,GACzD,IAAIzxC,EAAQ9N,KACRm6C,EAASqF,GAAsBpJ,EAAemJ,GAClD,IAAKpF,EAAOC,cACR,OAAOx3C,QAAQE,OAAO,gCAE1B,IAAI28C,EAAUrJ,EAAcsJ,YAAYC,YACpCC,EAAUxJ,EAAcsJ,YAAYG,YACpCC,EAAc3F,EAAOC,cACrB2F,EAAgBD,EAAYlN,SAI5BoN,EAAaC,GAAa9F,GAAQ38B,MAAK,WAAc,OAAO6I,EAAUvY,OAAO,OAAQ,GAAQ,WAC7F,IAAIoyC,EAASd,EACb,OAAOv4B,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EAYD,OAXAlnB,KAAKm/C,iBAAiBl9C,QAAQk+C,IAC1BL,IACAA,EAAYM,SAASb,EAAWx3B,KAAMw3B,EAAWv3B,MAC7C,sBAAsBve,KAAK42C,UAAUC,YACpCR,EAAYF,UAAYL,EAAWv3B,KAAO83B,EAAYL,UAAYF,EAAWx3B,OAC9E/nB,KAAKwO,QAAQ5N,OAAO0K,KAAK,yDACzBtL,KAAKwO,QAAQia,aAAezoB,KAAKwO,QAAQia,aAAaN,IAAI23B,EAAYL,QAAUF,EAAWx3B,KAAM+3B,EAAYF,QAAUL,EAAWv3B,IAAK,EAAG,KAGlJk4B,EAAUlgD,KAAKM,QAAQ4/C,QAES,qBADhCd,EAAmBp/C,KAAKugD,wBAEb,CAAC,EAAc39C,QAAQE,OAAO,qBAAuB9C,KAAKo/C,iBAAiBoB,SAAW,4BAE3FT,EAAcU,OAASV,EAAcU,MAAMC,MAC1C,CAAC,EAAaX,EAAcU,MAAMC,OADuB,CAAC,EAAa,GAElF,KAAK,EACDlxB,EAAGrI,OACHqI,EAAGtI,MAAQ,EACf,KAAK,EACD,MAAK,iBAAiBzd,KAAK42C,UAAUC,WAC9B,CAAC,EAAaK,GAAYZ,IADuB,CAAC,EAAa,GAE1E,KAAK,EACDvwB,EAAGrI,OACHqI,EAAGtI,MAAQ,EACf,KAAK,EACD,MAAuB,oBAAZg5B,EACA,CAAC,EAAct9C,QAAQC,UACrB2a,MAAK,WAAc,OAAO0iC,EAAQH,EAAeX,MACjD5hC,MAAK,WAAc,OAAO28B,MAEhC,CAAC,EAAcA,aAUtC,OANA4F,EAAc/R,OACd+R,EAAc3sB,MAAMwtB,GAAiBhO,SAASiO,SAAW,iBAEzDC,GAAmB9gD,KAAKo/C,iBAAiBhJ,cAAeqJ,EAASG,GACjEG,EAAcvJ,aAAauJ,EAAcgB,UAAU/gD,KAAKq6C,iBAAkB0F,EAAc1F,iBACxF0F,EAAc9R,QACP+R,GAEXd,EAAet7C,UAAUo9C,mBAAqB,SAAUj4B,GAIpD,GAHIinB,GAAYjnB,EAAM,GAGlBgzB,GAAgBhzB,GAChB,OAAO/oB,KAAKihD,kBAAkBl4B,GAElC,GAAI4zB,GAAe5zB,GACf,OAAO/oB,KAAKkhD,iBAAiBn4B,GAEjC,GAAI6zB,GAAe7zB,GACf,OAAO/oB,KAAKmhD,iBAAiBp4B,GAEjC,IAAInH,EAAQmH,EAAKutB,WAAU,GAU3B,OATIwF,GAAel6B,KACXk6B,GAAe/yB,IAASA,EAAK4vB,YAAc5vB,EAAK4vB,aAAe5vB,EAAKuqB,MACpE1xB,EAAM0xB,IAAMvqB,EAAK4vB,WACjB/2B,EAAMw/B,OAAS,IAEG,SAAlBx/B,EAAMy/B,UACNz/B,EAAMy/B,QAAU,UAGpBxE,GAAgBj7B,GACT5hB,KAAKshD,yBAAyB1/B,GAElCA,GAEXs9B,EAAet7C,UAAU09C,yBAA2B,SAAUv4B,GAC1D,IAAInH,EAAQgxB,SAASiB,cAAc,4BAEnC,OADA0N,GAAcx4B,EAAKhP,MAAO6H,GACnBA,GAEXs9B,EAAet7C,UAAUu9C,iBAAmB,SAAUp4B,GAClD,IACI,IAAIy4B,EAAQz4B,EAAKy4B,MACjB,GAAIA,GAASA,EAAMC,SAAU,CACzB,IAAIC,EAAM,GAAGr8C,MAAMvB,KAAK09C,EAAMC,SAAU,GAAGroC,QAAO,SAAUsoC,EAAK3sC,GAC7D,OAAIA,GAAgC,kBAAjBA,EAAK4sC,QACbD,EAAM3sC,EAAK4sC,QAEfD,IACR,IACC3nC,EAAQgP,EAAKutB,WAAU,GAE3B,OADAv8B,EAAM6nC,YAAcF,EACb3nC,GAGf,MAAOf,GAGH,GADAhZ,KAAKwO,QAAQ5N,OAAO6T,MAAM,qCAAsCuE,GACjD,kBAAXA,EAAEjR,KACF,MAAMiR,EAGd,OAAO+P,EAAKutB,WAAU,IAE1B4I,EAAet7C,UAAUq9C,kBAAoB,SAAU/L,GACnD,IAAI1lB,EACJ,GAAIxvB,KAAKM,QAAQuhD,cAAgB3M,EAAOkB,cAAe,CACnD,IAAIlD,EAAMgC,EAAOkB,cAAcvC,cAAc,OAC7C,IAEI,OADAX,EAAII,IAAM4B,EAAOI,YACVpC,EAEX,MAAOl6B,GACHhZ,KAAKwO,QAAQ5N,OAAOkhD,KAAK,sDAAuD5M,IAGxF,IAAI6M,EAAe7M,EAAOoB,WAAU,GACpC,IACIyL,EAAa95B,MAAQitB,EAAOjtB,MAC5B85B,EAAa75B,OAASgtB,EAAOhtB,OAC7B,IAAIitB,EAAMD,EAAOE,WAAW,MACxB4M,EAAYD,EAAa3M,WAAW,MACxC,GAAI4M,EACA,IAAKhiD,KAAKM,QAAQ2hD,YAAc9M,EAC5B6M,EAAUE,aAAa/M,EAAIS,aAAa,EAAG,EAAGV,EAAOjtB,MAAOitB,EAAOhtB,QAAS,EAAG,OAE9E,CACD,IAAIi6B,EAA4C,QAAtC3yB,EAAK0lB,EAAOE,WAAW,iBAA8B,IAAP5lB,EAAgBA,EAAK0lB,EAAOE,WAAW,SAC/F,GAAI+M,EAAI,CACJ,IAAIC,EAAUD,EAAGE,wBACyE,KAAzE,OAAZD,QAAgC,IAAZA,OAAqB,EAASA,EAAQE,wBAC3DtiD,KAAKwO,QAAQ5N,OAAO0K,KAAK,sEAAuE4pC,GAGxG8M,EAAU3M,UAAUH,EAAQ,EAAG,GAGvC,OAAO6M,EAEX,MAAO/oC,GACHhZ,KAAKwO,QAAQ5N,OAAOkhD,KAAK,0CAA2C5M,GAExE,OAAO6M,GAEX7C,EAAet7C,UAAUs9C,iBAAmB,SAAUqB,GAClD,IAAIrN,EAASqN,EAAMnM,cAAcvC,cAAc,UAC/CqB,EAAOjtB,MAAQs6B,EAAMC,YACrBtN,EAAOhtB,OAASq6B,EAAME,aACtB,IAAItN,EAAMD,EAAOE,WAAW,MAC5B,IAOI,OANID,IACAA,EAAIE,UAAUkN,EAAO,EAAG,EAAGrN,EAAOjtB,MAAOitB,EAAOhtB,QAC3CloB,KAAKM,QAAQ2hD,YACd9M,EAAIS,aAAa,EAAG,EAAGV,EAAOjtB,MAAOitB,EAAOhtB,SAG7CgtB,EAEX,MAAOl8B,GACHhZ,KAAKwO,QAAQ5N,OAAOkhD,KAAK,yCAA0CS,GAEvE,IAAIG,EAAcH,EAAMnM,cAAcvC,cAAc,UAGpD,OAFA6O,EAAYz6B,MAAQs6B,EAAMC,YAC1BE,EAAYx6B,OAASq6B,EAAME,aACpBC,GAEXxD,EAAet7C,UAAU++C,gBAAkB,SAAU/gC,EAAOghC,EAAOC,GAC1D5H,GAAc2H,KAzjBqC,WA0jBlCA,EA1jBsBpH,SA2jBnCoH,EAAME,aArMA,4BAsMiC,oBAAhC9iD,KAAKM,QAAQyiD,gBAAkC/iD,KAAKM,QAAQyiD,eAAeH,KAClF5iD,KAAKM,QAAQuiD,YAAe5H,GAAc2H,IAAWhG,GAAegG,IACrEhhC,EAAMoxB,YAAYhzC,KAAKs2C,UAAUsM,EAAOC,KAIpD3D,EAAet7C,UAAUo/C,gBAAkB,SAAUj6B,EAAMnH,EAAOihC,GAE9D,IADA,IAAI/0C,EAAQ9N,KACH4iD,EAAQ75B,EAAK2yB,WAAa3yB,EAAK2yB,WAAWlH,WAAazrB,EAAKyrB,WAAYoO,EAAOA,EAAQA,EAAM7H,YAClG,GAAIE,GAAc2H,IAAU1H,GAAc0H,IAAyC,oBAAxBA,EAAMzH,cAA8B,CAC3F,IAAIA,EAAgByH,EAAMzH,gBACtBA,EAAc36C,QACd26C,EAAcl5C,SAAQ,SAAUghD,GAAgB,OAAOn1C,EAAM60C,gBAAgB/gC,EAAOqhC,EAAcJ,WAItG7iD,KAAK2iD,gBAAgB/gC,EAAOghC,EAAOC,IAI/C3D,EAAet7C,UAAU0yC,UAAY,SAAUvtB,EAAM85B,GACjD,GAAI7H,GAAWjyB,GACX,OAAO6pB,SAASsQ,eAAen6B,EAAK1kB,MAExC,IAAK0kB,EAAKqtB,cACN,OAAOrtB,EAAKutB,WAAU,GAE1B,IAAI7F,EAAS1nB,EAAKqtB,cAAcsJ,YAChC,GAAIjP,GAAUwK,GAAclyB,KAAU4nB,GAAkB5nB,IAAS0zB,GAAiB1zB,IAAQ,CACtF,IAAInH,EAAQ5hB,KAAKghD,mBAAmBj4B,GACpCnH,EAAM7H,MAAMopC,mBAAqB,OACjC,IAAIppC,EAAQ02B,EAAOC,iBAAiB3nB,GAChCq6B,EAAc3S,EAAOC,iBAAiB3nB,EAAM,WAC5Cs6B,EAAa5S,EAAOC,iBAAiB3nB,EAAM,UAC3C/oB,KAAKo/C,mBAAqBr2B,GAAQ4nB,GAAkB/uB,KACpD5hB,KAAKugD,uBAAyB3+B,GAE9Bw6B,GAAcx6B,IACd0hC,GAAuB1hC,GAE3B,IAAIm7B,EAAW/8C,KAAK+8C,SAAShvC,MAAM,IAAI6hC,GAA4B5vC,KAAKwO,QAASuL,IAC7EoV,EAASnvB,KAAKujD,qBAAqBx6B,EAAMnH,EAAOwhC,EAAa9R,GAAkBkS,QAC/E3G,GAAgB9zB,KAChB85B,GAAa,GAEZlG,GAAe5zB,IAChB/oB,KAAKgjD,gBAAgBj6B,EAAMnH,EAAOihC,GAElC1zB,GACAvN,EAAM6hC,aAAat0B,EAAQvN,EAAM4yB,YAErC,IAAIkP,EAAQ1jD,KAAKujD,qBAAqBx6B,EAAMnH,EAAOyhC,EAAY/R,GAAkBqS,OAgBjF,OAfID,GACA9hC,EAAMoxB,YAAY0Q,GAEtB1jD,KAAK+8C,SAAS7sC,IAAI6sC,IACbhjC,IAAU/Z,KAAKM,QAAQuiD,YAAcpG,GAAiB1zB,MAAWozB,GAAgBpzB,IAClF85B,IACAtB,GAAcxnC,EAAO6H,GAEF,IAAnBmH,EAAK66B,WAAuC,IAApB76B,EAAK86B,YAC7B7jD,KAAKm/C,iBAAiBh9C,KAAK,CAACyf,EAAOmH,EAAK86B,WAAY96B,EAAK66B,aAExDjI,GAAkB5yB,IAAS8yB,GAAgB9yB,MAC3C4yB,GAAkB/5B,IAAUi6B,GAAgBj6B,MAC7CA,EAAMrd,MAAQwkB,EAAKxkB,OAEhBqd,EAEX,OAAOmH,EAAKutB,WAAU,IAE1B4I,EAAet7C,UAAU2/C,qBAAuB,SAAUx6B,EAAMnH,EAAO7H,EAAO+pC,GAC1E,IAAIh2C,EAAQ9N,KACZ,GAAK+Z,EAAL,CAGA,IAAIxV,EAAQwV,EAAMqzB,QACdwF,EAAWhxB,EAAMw0B,cACrB,GAAKxD,GAAaruC,GAAmB,SAAVA,GAA8B,qBAAVA,GAAkD,SAAlBwV,EAAMqvB,QAArF,CAGAppC,KAAK+8C,SAAShvC,MAAM,IAAI6hC,GAA4B5vC,KAAKwO,QAASuL,IAClE,IAAI80B,EAAc,IAAIc,GAA2B3vC,KAAKwO,QAASuL,GAC3DgqC,EAA2BnR,EAASiB,cAAc,4BACtD0N,GAAcxnC,EAAOgqC,GACrBlV,EAAYzB,QAAQnrC,SAAQ,SAAUsxB,GAClC,GAAmB,IAAfA,EAAMzzB,KACNikD,EAAyB/Q,YAAYJ,EAASsQ,eAAe3vB,EAAMhvB,aAElE,GAAmB,KAAfgvB,EAAMzzB,KAA6B,CACxC,IAAIozC,EAAMN,EAASiB,cAAc,OACjCX,EAAII,IAAM/f,EAAMhvB,MAChB2uC,EAAIn5B,MAAM0yB,QAAU,IACpBsX,EAAyB/Q,YAAYE,QAEpC,GAAmB,KAAf3f,EAAMzzB,MACX,GAAmB,SAAfyzB,EAAMxrB,KAAiB,CACvB,IAAIi8C,EAAOzwB,EAAMkD,OAAOr0B,OAAO80B,IAC3B8sB,EAAKxjD,QACLujD,EAAyB/Q,YAAYJ,EAASsQ,eAAen6B,EAAKonB,aAAa6T,EAAK,GAAGz/C,QAAU,UAGpG,GAAmB,YAAfgvB,EAAMxrB,KAAoB,CAC/B,IAAIynB,EAAK+D,EAAMkD,OAAOr0B,OAAOk1B,IAA0BkW,EAAUhe,EAAG,GAAIy0B,EAAez0B,EAAG,GAC1F,GAAIge,GAAWtW,GAAasW,GAAU,CAClC,IAAI0W,EAAep2C,EAAMivC,SAASC,gBAAgBxP,EAAQjpC,OACtD4/C,EAAcF,GAAgB/sB,GAAa+sB,GACzCha,GAAcl8B,MAAMD,EAAMU,QAASy1C,EAAa1/C,OAChD,EACNw/C,EAAyB/Q,YAAYJ,EAASsQ,eAAetF,GAAkBsG,EAAcC,GAAa,WAG7G,GAAmB,aAAf5wB,EAAMxrB,KAAqB,CAChC,IAAI4xB,EAAKpG,EAAMkD,OAAOr0B,OAAOk1B,IAA2C8sB,GAAjB5W,EAAU7T,EAAG,GAAYA,EAAG,IACnF,GADuFsqB,EAAetqB,EAAG,GACrG6T,GAAWtW,GAAasW,GAAU,CAClC,IAAI6W,EAAgBv2C,EAAMivC,SAASE,iBAAiBzP,EAAQjpC,OACxD+/C,EAAgBL,GAAgB/sB,GAAa+sB,GAC3Cha,GAAcl8B,MAAMD,EAAMU,QAASy1C,EAAa1/C,OAChD,EACFggD,EAAYH,GAAwB,IAAfA,EAAMtkD,KAAgCskD,EAAM7/C,MAAQ,GACzEswC,EAAOwP,EACN96C,KAAI,SAAUhF,GAAS,OAAOq5C,GAAkBr5C,EAAO+/C,GAAe,MACtEh/C,KAAKi/C,GACVR,EAAyB/Q,YAAYJ,EAASsQ,eAAerO,WAKpE,GAAmB,KAAfthB,EAAMzzB,KACX,OAAQyzB,EAAMhvB,OACV,IAAK,aACDw/C,EAAyB/Q,YAAYJ,EAASsQ,eAAehV,GAASW,EAAYhB,OAAQ//B,EAAMuxC,cAAc,KAC9G,MACJ,IAAK,cACD0E,EAAyB/Q,YAAYJ,EAASsQ,eAAehV,GAASW,EAAYhB,SAAU//B,EAAMuxC,YAAY,KAC9G,MACJ,QAEI0E,EAAyB/Q,YAAYJ,EAASsQ,eAAe3vB,EAAMhvB,YAInFw/C,EAAyBrH,UAAY8H,GAAmC,IAAMC,GAC9E,IAAIC,EAAeZ,IAAcxS,GAAkBkS,OAC7C,IAAMgB,GACN,IAAMC,GAOZ,OANIhI,GAAiB76B,GACjBA,EAAM86B,UAAUiI,WAAaD,EAG7B9iC,EAAM86B,WAAagI,EAEhBX,KAEX7E,EAAe0F,QAAU,SAAUxJ,GAC/B,QAAIA,EAAU7E,aACV6E,EAAU7E,WAAWrC,YAAYkH,IAC1B,IAIR8D,EAtWwB,IAyWnC,SAAW5N,GACPA,EAAkBA,EAA0B,OAAI,GAAK,SACrDA,EAAkBA,EAAyB,MAAI,GAAK,QAFxD,CAGGA,KAAsBA,GAAoB,KAC7C,IA+bIuT,GA/bArF,GAAwB,SAAUpJ,EAAevF,GACjD,IAAIiU,EAAuB1O,EAAcvC,cAAc,UAYvD,OAXAiR,EAAqBpI,UAAY,wBACjCoI,EAAqB/qC,MAAMmyB,WAAa,SACxC4Y,EAAqB/qC,MAAM4sB,SAAW,QACtCme,EAAqB/qC,MAAMgO,KAAO,WAClC+8B,EAAqB/qC,MAAMiO,IAAM,MACjC88B,EAAqB/qC,MAAMgrC,OAAS,IACpCD,EAAqB78B,MAAQ4oB,EAAO5oB,MAAMvhB,WAC1Co+C,EAAqB58B,OAAS2oB,EAAO3oB,OAAOxhB,WAC5Co+C,EAAqBE,UAAY,KACjCF,EAAqB5L,aAzXF,0BAyXiC,QACpD9C,EAActvB,KAAKksB,YAAY8R,GACxBA,GAEPG,GAAa,SAAU/R,GACvB,OAAO,IAAItwC,SAAQ,SAAUC,GACrBqwC,EAAIgS,SACJriD,IAGCqwC,EAAII,KAITJ,EAAIE,OAASvwC,EACbqwC,EAAIG,QAAUxwC,GAJVA,QAOR89C,GAAc,SAAU/N,GACxB,OAAOhwC,QAAQuiD,IAAI,GAAG9/C,MAAMvB,KAAK8uC,EAASwS,OAAQ,GAAG77C,IAAI07C,MAEzDhF,GAAe,SAAU9F,GACzB,OAAO,IAAIv3C,SAAQ,SAAUC,EAASC,GAClC,IAAIg9C,EAAc3F,EAAOC,cACzB,IAAK0F,EACD,OAAOh9C,EAAO,iCAElB,IAAIi9C,EAAgBD,EAAYlN,SAChCkN,EAAY1M,OAAS+G,EAAO/G,OAAS,WACjC0M,EAAY1M,OAAS+G,EAAO/G,OAAS,KACrC,IAAIiS,EAAWC,aAAY,WACnBvF,EAAcj5B,KAAKy+B,WAAW/kD,OAAS,GAAkC,aAA7Bu/C,EAAcyF,aAC1DC,cAAcJ,GACdxiD,EAAQs3C,MAEb,SAIXuL,GAAyB,CACzB,MACA,IACA,WAEAnE,GAAgB,SAAUxnC,EAAO/S,GAEjC,IAAK,IAAI9B,EAAI6U,EAAMvZ,OAAS,EAAG0E,GAAK,EAAGA,IAAK,CACxC,IAAIygD,EAAW5rC,EAAM6rC,KAAK1gD,IACwB,IAA9CwgD,GAAuBpiD,QAAQqiD,IAC/B3+C,EAAO+S,MAAM8rC,YAAYF,EAAU5rC,EAAM+rC,iBAAiBH,IAGlE,OAAO3+C,GAEP45C,GAAmB,SAAUC,GAC7B,IAAIp8C,EAAM,GAiBV,OAhBIo8C,IACAp8C,GAAO,aACHo8C,EAAQ94C,OACRtD,GAAOo8C,EAAQ94C,MAEf84C,EAAQkF,iBACRthD,GAAOo8C,EAAQkF,gBAEflF,EAAQmF,WACRvhD,GAAO,IAAOo8C,EAAQmF,SAAW,KAEjCnF,EAAQoF,WACRxhD,GAAO,IAAOo8C,EAAQoF,SAAW,KAErCxhD,GAAO,KAEJA,GAEPq8C,GAAqB,SAAU1K,EAAehuB,EAAGrB,GAC7CqvB,GACAA,EAAcsJ,cACbt3B,IAAMguB,EAAcsJ,YAAYC,aAAe54B,IAAMqvB,EAAcsJ,YAAYG,cAChFzJ,EAAcsJ,YAAYU,SAASh4B,EAAGrB,IAG1Co5B,GAAoB,SAAU3wB,GAC9B,IAAIygB,EAAUzgB,EAAG,GAAIpH,EAAIoH,EAAG,GAAIzI,EAAIyI,EAAG,GACvCygB,EAAQ4T,WAAaz7B,EACrB6nB,EAAQ2T,UAAY78B,GAIpBy9B,GAAmC,wCACnCC,GAAkC,uCAElCnB,GAAyB,SAAUx8B,GACnCo/B,GAAap/B,EAAM,IAAM09B,GAAN,sFAAsGC,GAAtG,2EAEnByB,GAAe,SAAUp/B,EAAM0pB,GAC/B,IAAIoC,EAAW9rB,EAAKsvB,cACpB,GAAIxD,EAAU,CACV,IAAI74B,EAAQ64B,EAASiB,cAAc,SACnC95B,EAAM6nC,YAAcpR,EACpB1pB,EAAKksB,YAAYj5B,KAIrBosC,GAA8B,WAC9B,SAASA,KAmBT,OAjBAA,EAAaC,UAAY,SAAUpf,GAC/B,IAAIqf,EAAOF,EAAaG,MACxB,OAAKD,GAGLA,EAAKE,KAAOvf,EACZqf,EAAKE,KAAOF,EAAKE,KACVF,EAAKG,SAAWH,EAAKI,SAAWJ,EAAKK,MAJjC,eAMfP,EAAaQ,aAAe,SAAUrT,GAClC,OAAO6S,EAAaC,UAAU9S,KAAS6S,EAAaS,SAExDT,EAAaU,WAAa,SAAUpW,GAChC0V,EAAaG,MAAQ7V,EAAOmC,SAASiB,cAAc,KACnDsS,EAAaS,QAAUT,EAAaC,UAAU3V,EAAOqW,SAASP,OAElEJ,EAAaS,QAAU,cAChBT,EApBsB,GAsB7BY,GAAuB,WACvB,SAASA,EAAMv4C,EAASw4C,GACpBhnD,KAAKwO,QAAUA,EACfxO,KAAKgnD,SAAWA,EAEhBhnD,KAAKinD,OAAS,GAsHlB,OApHAF,EAAMnjD,UAAUqjC,SAAW,SAAUqM,GACjC,IAAIltC,EAASxD,QAAQC,UACrB,OAAI7C,KAAKknD,IAAI5T,GACFltC,EAEP+gD,GAAY7T,IAAQ8T,GAAa9T,KAChCtzC,KAAKinD,OAAO3T,GAAOtzC,KAAKqnD,UAAU/T,IAAM71B,OAAM,eAGxCrX,GAEJA,GAGX2gD,EAAMnjD,UAAUiG,MAAQ,SAAUypC,GAC9B,OAAOtzC,KAAKinD,OAAO3T,IAEvByT,EAAMnjD,UAAUyjD,UAAY,SAAUhkD,GAClC,OAAOgjB,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAI2mD,EAAcW,EAASC,EAAUjU,EACjCxlC,EAAQ9N,KACZ,OAAO6mB,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EASD,OARAy/B,EAAeR,GAAaQ,aAAatjD,GACzCikD,GAAWE,GAAcnkD,KAAkC,IAA1BrD,KAAKgnD,SAASM,SAAoB5T,GAAS+T,sBAAwBd,EACpGY,GAAYC,GAAcnkD,KACrBsjD,IACAQ,GAAY9jD,IACkB,kBAAxBrD,KAAKgnD,SAASU,OACrBhU,GAASiU,mBACRL,EACAX,IAC4B,IAA7B3mD,KAAKgnD,SAAS/E,YACbuF,GAAcnkD,IACd8jD,GAAY9jD,IACZkkD,GACAD,GAGLhU,EAAMjwC,EACDkkD,EACE,CAAC,EAAavnD,KAAK0nD,MAAMpU,IADV,CAAC,EAAa,IAHzB,CAAC,GAKhB,KAAK,EACDA,EAAM9jB,EAAGrI,OACTqI,EAAGtI,MAAQ,EACf,KAAK,EAED,OADAlnB,KAAKwO,QAAQ5N,OAAOC,MAAM,eAAiBwC,EAAIsG,UAAU,EAAG,MACrD,CAAC,EAAa,IAAI/G,SAAQ,SAAUC,EAASC,GAC5C,IAAIowC,EAAM,IAAIC,MACdD,EAAIE,OAAS,WAAc,OAAOvwC,EAAQqwC,IAC1CA,EAAIG,QAAUvwC,GAEV8kD,GAAoBtU,IAAQgU,KAC5BpU,EAAI4C,YAAc,aAEtB5C,EAAII,IAAMA,GACW,IAAjBJ,EAAIgS,UAEJ5nC,YAAW,WAAc,OAAOza,EAAQqwC,KAAS,KAEjDplC,EAAMk5C,SAASa,aAAe,GAC9BvqC,YAAW,WAAc,OAAOxa,EAAO,cAAgBgL,EAAMk5C,SAASa,aAAe,uBAAyB/5C,EAAMk5C,SAASa,kBAG7I,KAAK,EAAG,MAAO,CAAC,EAAcr4B,EAAGrI,gBAKjD4/B,EAAMnjD,UAAUsjD,IAAM,SAAU7jD,GAC5B,MAAmC,qBAArBrD,KAAKinD,OAAO5jD,IAE9B0jD,EAAMnjD,UAAU6D,KAAO,WACnB,OAAO7E,QAAQC,QAAQc,OAAO8D,KAAKzH,KAAKinD,UAE5CF,EAAMnjD,UAAU8jD,MAAQ,SAAUpU,GAC9B,IAAIxlC,EAAQ9N,KACR0nD,EAAQ1nD,KAAKgnD,SAASU,MAC1B,IAAKA,EACD,MAAM,IAAI1nC,MAAM,oBAEpB,IAAI3c,EAAMiwC,EAAI3pC,UAAU,EAAG,KAC3B,OAAO,IAAI/G,SAAQ,SAAUC,EAASC,GAClC,IAAIkzC,EAAetC,GAASoU,sBAAwB,OAAS,OACzDC,EAAM,IAAIhS,eACdgS,EAAI3U,OAAS,WACT,GAAmB,MAAf2U,EAAIC,OACJ,GAAqB,SAAjBhS,EACAnzC,EAAQklD,EAAIE,cAEX,CACD,IAAIC,EAAW,IAAIC,WACnBD,EAASE,iBAAiB,QAAQ,WAAc,OAAOvlD,EAAQqlD,EAAS9hD,WAAY,GACpF8hD,EAASE,iBAAiB,SAAS,SAAUpvC,GAAK,OAAOlW,EAAOkW,MAAO,GACvEkvC,EAASG,cAAcN,EAAIE,eAI/BnlD,EAAO,4BAA8BO,EAAM,qBAAuB0kD,EAAIC,SAG9ED,EAAI1U,QAAUvwC,EACd,IAAIwlD,EAAcZ,EAAMpkD,QAAQ,MAAQ,EAAI,IAAM,IAKlD,GAJAykD,EAAI/Z,KAAK,MAAO,GAAK0Z,EAAQY,EAAc,OAAS/U,mBAAmBD,GAAO,iBAAmB0C,GAC5E,SAAjBA,GAA2B+R,aAAehS,iBAC1CgS,EAAI/R,aAAeA,GAEnBloC,EAAMk5C,SAASa,aAAc,CAC7B,IAAIU,EAAYz6C,EAAMk5C,SAASa,aAC/BE,EAAIS,QAAUD,EACdR,EAAIU,UAAY,WAAc,OAAO3lD,EAAO,cAAgBylD,EAAY,gBAAkBllD,IAE9F0kD,EAAI56C,WAGL45C,EA3He,GA6HtB2B,GAAa,yBACbC,GAAgB,2BAChBC,GAAa,mBACbxB,GAAe,SAAU9T,GAAO,OAAOI,GAASmV,sBAAwBC,GAAMxV,IAC9EkU,GAAgB,SAAUlU,GAAO,OAAOsV,GAAWn/C,KAAK6pC,IACxDsU,GAAsB,SAAUtU,GAAO,OAAOqV,GAAcl/C,KAAK6pC,IACjE6T,GAAc,SAAU7T,GAAO,MAA4B,SAArBA,EAAIyV,OAAO,EAAG,IACpDD,GAAQ,SAAUxV,GAAO,MAAwC,QAAjCA,EAAIyV,QAAQ,GAAGv+C,eAA2Bk+C,GAAWj/C,KAAK6pC,IAE1F0V,GAAwB,WACxB,SAASA,EAAO5gC,EAAGrB,GACf/mB,KAAKF,KAAO,EACZE,KAAKooB,EAAIA,EACTpoB,KAAK+mB,EAAIA,EAKb,OAHAiiC,EAAOplD,UAAUukB,IAAM,SAAU8gC,EAAQC,GACrC,OAAO,IAAIF,EAAOhpD,KAAKooB,EAAI6gC,EAAQjpD,KAAK+mB,EAAImiC,IAEzCF,EATgB,GAYvBG,GAAO,SAAU7gD,EAAGud,EAAGtd,GACvB,OAAO,IAAIygD,GAAO1gD,EAAE8f,GAAKvC,EAAEuC,EAAI9f,EAAE8f,GAAK7f,EAAGD,EAAEye,GAAKlB,EAAEkB,EAAIze,EAAEye,GAAKxe,IAE7D6gD,GAA6B,WAC7B,SAASA,EAAYh/B,EAAOi/B,EAAcC,EAAYj/B,GAClDrqB,KAAKF,KAAO,EACZE,KAAKoqB,MAAQA,EACbpqB,KAAKqpD,aAAeA,EACpBrpD,KAAKspD,WAAaA,EAClBtpD,KAAKqqB,IAAMA,EAiBf,OAfA++B,EAAYxlD,UAAU2lD,UAAY,SAAUhhD,EAAGihD,GAC3C,IAAIC,EAAKN,GAAKnpD,KAAKoqB,MAAOpqB,KAAKqpD,aAAc9gD,GACzCmhD,EAAKP,GAAKnpD,KAAKqpD,aAAcrpD,KAAKspD,WAAY/gD,GAC9CohD,EAAKR,GAAKnpD,KAAKspD,WAAYtpD,KAAKqqB,IAAK9hB,GACrCqhD,EAAOT,GAAKM,EAAIC,EAAInhD,GACpBshD,EAAOV,GAAKO,EAAIC,EAAIphD,GACpBuhD,EAAOX,GAAKS,EAAMC,EAAMthD,GAC5B,OAAOihD,EAAY,IAAIJ,EAAYppD,KAAKoqB,MAAOq/B,EAAIG,EAAME,GAAQ,IAAIV,EAAYU,EAAMD,EAAMF,EAAI3pD,KAAKqqB,MAE1G++B,EAAYxlD,UAAUukB,IAAM,SAAU8gC,EAAQC,GAC1C,OAAO,IAAIE,EAAYppD,KAAKoqB,MAAMjC,IAAI8gC,EAAQC,GAASlpD,KAAKqpD,aAAalhC,IAAI8gC,EAAQC,GAASlpD,KAAKspD,WAAWnhC,IAAI8gC,EAAQC,GAASlpD,KAAKqqB,IAAIlC,IAAI8gC,EAAQC,KAE5JE,EAAYxlD,UAAUmmD,QAAU,WAC5B,OAAO,IAAIX,EAAYppD,KAAKqqB,IAAKrqB,KAAKspD,WAAYtpD,KAAKqpD,aAAcrpD,KAAKoqB,QAEvEg/B,EAvBqB,GAyB5BY,GAAgB,SAAU9mD,GAAQ,OAAqB,IAAdA,EAAKpD,MAE9CmqD,GACA,SAAqBha,GACjB,IAAIO,EAASP,EAAQO,OACjBK,EAASZ,EAAQY,OACjBrhB,EAAKuI,GAAyByY,EAAOnI,oBAAqBwI,EAAO5oB,MAAO4oB,EAAO3oB,QAASgiC,EAAM16B,EAAG,GAAI26B,EAAM36B,EAAG,GAC9GmK,EAAK5B,GAAyByY,EAAOlI,qBAAsBuI,EAAO5oB,MAAO4oB,EAAO3oB,QAASkiC,EAAMzwB,EAAG,GAAI0wB,EAAM1wB,EAAG,GAC/G2wB,EAAKvyB,GAAyByY,EAAOjI,wBAAyBsI,EAAO5oB,MAAO4oB,EAAO3oB,QAASqiC,EAAMD,EAAG,GAAIE,EAAMF,EAAG,GAClHG,EAAK1yB,GAAyByY,EAAOhI,uBAAwBqI,EAAO5oB,MAAO4oB,EAAO3oB,QAASwiC,EAAMD,EAAG,GAAIE,EAAMF,EAAG,GACjHG,EAAU,GACdA,EAAQzoD,MAAM+nD,EAAME,GAAOvZ,EAAO5oB,OAClC2iC,EAAQzoD,MAAMuoD,EAAMH,GAAO1Z,EAAO5oB,OAClC2iC,EAAQzoD,MAAMgoD,EAAMQ,GAAO9Z,EAAO3oB,QAClC0iC,EAAQzoD,MAAMkoD,EAAMG,GAAO3Z,EAAO3oB,QAClC,IAAI2iC,EAAYh1C,KAAK4jB,IAAIt5B,MAAM0V,KAAM+0C,GACjCC,EAAY,IACZX,GAAOW,EACPV,GAAOU,EACPT,GAAOS,EACPR,GAAOQ,EACPN,GAAOM,EACPL,GAAOK,EACPH,GAAOG,EACPF,GAAOE,GAEX,IAAIC,EAAWja,EAAO5oB,MAAQmiC,EAC1BW,EAAcla,EAAO3oB,OAASsiC,EAC9BQ,EAAcna,EAAO5oB,MAAQsiC,EAC7BU,EAAapa,EAAO3oB,OAASyiC,EAC7B5hB,EAAiByH,EAAOzH,eACxBC,EAAmBwH,EAAOxH,iBAC1BC,EAAoBuH,EAAOvH,kBAC3BC,EAAkBsH,EAAOtH,gBACzBwB,EAAazS,GAAiBuY,EAAO9F,WAAYuF,EAAQY,OAAO5oB,OAChE0iB,EAAe1S,GAAiBuY,EAAO7F,aAAcsF,EAAQY,OAAO5oB,OACpE2iB,EAAgB3S,GAAiBuY,EAAO5F,cAAeqF,EAAQY,OAAO5oB,OACtE4iB,EAAc5S,GAAiBuY,EAAO3F,YAAaoF,EAAQY,OAAO5oB,OACtEjoB,KAAKkrD,4BACDhB,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAM+gB,EAAiB,EAAGmhB,EAAMhhB,EAAkB,EAAGihB,EAAMphB,EAAiB,EAAG8b,GAAOuG,UAC/I,IAAIpC,GAAOnY,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAM+gB,EAAiB,GACtF/oC,KAAKqrD,6BACDnB,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAO+iC,EAAUja,EAAO7oB,IAAM+gB,EAAiB,EAAGqhB,EAAMphB,EAAmB,EAAGqhB,EAAMthB,EAAiB,EAAG8b,GAAOyG,WACrI,IAAItC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAQ+gB,EAAmB,EAAG6H,EAAO7oB,IAAM+gB,EAAiB,GACtG/oC,KAAKurD,gCACDhB,EAAM,GAAKC,EAAM,EACXW,GAAeta,EAAO9oB,KAAOijC,EAAana,EAAO7oB,IAAM+iC,EAAaR,EAAMvhB,EAAmB,EAAGwhB,EAAMvhB,EAAoB,EAAG4b,GAAO2G,cACpI,IAAIxC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAQ+gB,EAAmB,EAAG6H,EAAO7oB,IAAM6oB,EAAO3oB,OAAS+gB,EAAoB,GACzHjpC,KAAKyrD,+BACDf,EAAM,GAAKC,EAAM,EACXQ,GAAeta,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAMijC,EAAYP,EAAMxhB,EAAkB,EAAGyhB,EAAM1hB,EAAoB,EAAG4b,GAAO6G,aAC1I,IAAI1C,GAAOnY,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAM6oB,EAAO3oB,OAAS+gB,EAAoB,GACzGjpC,KAAK2rD,4BACDzB,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAA0B,EAAlBmhB,EAAuB,EAAG2H,EAAO7oB,IAAwB,EAAjB+gB,EAAsB,EAAGmhB,EAAyB,EAAlBhhB,EAAuB,EAAGihB,EAAwB,EAAjBphB,EAAsB,EAAG8b,GAAOuG,UACvK,IAAIpC,GAAOnY,EAAO9oB,KAA0B,EAAlBmhB,EAAuB,EAAG2H,EAAO7oB,IAAwB,EAAjB+gB,EAAsB,GAClG/oC,KAAK4rD,6BACD1B,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAO+iC,EAAUja,EAAO7oB,IAAwB,EAAjB+gB,EAAsB,EAAGqhB,EAA0B,EAAnBphB,EAAwB,EAAGqhB,EAAwB,EAAjBthB,EAAsB,EAAG8b,GAAOyG,WACvJ,IAAItC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAA4B,EAAnB+gB,EAAwB,EAAG6H,EAAO7oB,IAAwB,EAAjB+gB,EAAsB,GAClH/oC,KAAK6rD,gCACDtB,EAAM,GAAKC,EAAM,EACXW,GAAeta,EAAO9oB,KAAOijC,EAAana,EAAO7oB,IAAM+iC,EAAaR,EAA0B,EAAnBvhB,EAAwB,EAAGwhB,EAA2B,EAApBvhB,EAAyB,EAAG4b,GAAO2G,cAChJ,IAAIxC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAA4B,EAAnB+gB,EAAwB,EAAG6H,EAAO7oB,IAAM6oB,EAAO3oB,OAA8B,EAApB+gB,EAAyB,GACrIjpC,KAAK8rD,+BACDpB,EAAM,GAAKC,EAAM,EACXQ,GAAeta,EAAO9oB,KAA0B,EAAlBmhB,EAAuB,EAAG2H,EAAO7oB,IAAMijC,EAAYP,EAAyB,EAAlBxhB,EAAuB,EAAGyhB,EAA2B,EAApB1hB,EAAyB,EAAG4b,GAAO6G,aAC5J,IAAI1C,GAAOnY,EAAO9oB,KAA0B,EAAlBmhB,EAAuB,EAAG2H,EAAO7oB,IAAM6oB,EAAO3oB,OAA8B,EAApB+gB,EAAyB,GACrHjpC,KAAK+rD,oBACD7B,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAM+gB,EAAiB,EAAGmhB,EAAMhhB,EAAkB,EAAGihB,EAAMphB,EAAiB,EAAG8b,GAAOuG,UAC/I,IAAIpC,GAAOnY,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAM+gB,EAAiB,GACtF/oC,KAAKgsD,qBACD9B,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAO+iC,EAAUja,EAAO7oB,IAAM+gB,EAAiB,EAAGqhB,EAAMphB,EAAmB,EAAGqhB,EAAMthB,EAAiB,EAAG8b,GAAOyG,WACrI,IAAItC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAQ+gB,EAAmB,EAAG6H,EAAO7oB,IAAM+gB,EAAiB,GACtG/oC,KAAKisD,wBACD1B,EAAM,GAAKC,EAAM,EACXW,GAAeta,EAAO9oB,KAAOijC,EAAana,EAAO7oB,IAAM+iC,EAAaR,EAAMvhB,EAAmB,EAAGwhB,EAAMvhB,EAAoB,EAAG4b,GAAO2G,cACpI,IAAIxC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAQ+gB,EAAmB,EAAG6H,EAAO7oB,IAAM6oB,EAAO3oB,OAAS+gB,EAAoB,GACzHjpC,KAAKksD,uBACDxB,EAAM,GAAKC,EAAM,EACXQ,GAAeta,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAMijC,EAAYP,EAAMxhB,EAAkB,EAAGyhB,EAAM1hB,EAAoB,EAAG4b,GAAO6G,aAC1I,IAAI1C,GAAOnY,EAAO9oB,KAAOmhB,EAAkB,EAAG2H,EAAO7oB,IAAM6oB,EAAO3oB,OAAS+gB,EAAoB,GACzGjpC,KAAKmsD,iBACDjC,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAM8oB,EAAO7oB,IAAKkiC,EAAKC,EAAKtF,GAAOuG,UACzD,IAAIpC,GAAOnY,EAAO9oB,KAAM8oB,EAAO7oB,KACzChoB,KAAKosD,kBACDhC,EAAM,GAAKC,EAAM,EACXc,GAAeta,EAAO9oB,KAAO+iC,EAAUja,EAAO7oB,IAAKoiC,EAAKC,EAAKxF,GAAOyG,WACpE,IAAItC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAO4oB,EAAO7oB,KACxDhoB,KAAKqsD,qBACD9B,EAAM,GAAKC,EAAM,EACXW,GAAeta,EAAO9oB,KAAOijC,EAAana,EAAO7oB,IAAM+iC,EAAaR,EAAKC,EAAK3F,GAAO2G,cACrF,IAAIxC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAO4oB,EAAO7oB,IAAM6oB,EAAO3oB,QACrEloB,KAAKssD,oBACD5B,EAAM,GAAKC,EAAM,EACXQ,GAAeta,EAAO9oB,KAAM8oB,EAAO7oB,IAAMijC,EAAYP,EAAKC,EAAK9F,GAAO6G,aACtE,IAAI1C,GAAOnY,EAAO9oB,KAAM8oB,EAAO7oB,IAAM6oB,EAAO3oB,QACtDloB,KAAKusD,kBACDrC,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAOmhB,EAAiB2H,EAAO7oB,IAAM+gB,EAAgBlzB,KAAK4jB,IAAI,EAAGywB,EAAMhhB,GAAkBrzB,KAAK4jB,IAAI,EAAG0wB,EAAMphB,GAAiB8b,GAAOuG,UACzJ,IAAIpC,GAAOnY,EAAO9oB,KAAOmhB,EAAiB2H,EAAO7oB,IAAM+gB,GACjE/oC,KAAKwsD,mBACDpC,EAAM,GAAKC,EAAM,EACXc,GAAeta,EAAO9oB,KAAOlS,KAAK0f,IAAIu1B,EAAUja,EAAO5oB,MAAQ+gB,GAAmB6H,EAAO7oB,IAAM+gB,EAAgB+hB,EAAWja,EAAO5oB,MAAQ+gB,EAAmB,EAAInzB,KAAK4jB,IAAI,EAAG2wB,EAAMphB,GAAmBnzB,KAAK4jB,IAAI,EAAG4wB,EAAMthB,GAAiB8b,GAAOyG,WAC/O,IAAItC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAQ+gB,EAAkB6H,EAAO7oB,IAAM+gB,GACjF/oC,KAAKysD,sBACDlC,EAAM,GAAKC,EAAM,EACXW,GAAeta,EAAO9oB,KAAOlS,KAAK0f,IAAIy1B,EAAana,EAAO5oB,MAAQihB,GAAkB2H,EAAO7oB,IAAMnS,KAAK0f,IAAIw1B,EAAala,EAAO3oB,OAAS+gB,GAAoBpzB,KAAK4jB,IAAI,EAAG8wB,EAAMvhB,GAAmBnzB,KAAK4jB,IAAI,EAAG+wB,EAAMvhB,GAAoB4b,GAAO2G,cAC7O,IAAIxC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAQ+gB,EAAkB6H,EAAO7oB,IAAM6oB,EAAO3oB,OAAS+gB,GACjGjpC,KAAK0sD,qBACDhC,EAAM,GAAKC,EAAM,EACXQ,GAAeta,EAAO9oB,KAAOmhB,EAAiB2H,EAAO7oB,IAAMnS,KAAK0f,IAAI01B,EAAYpa,EAAO3oB,OAAS+gB,GAAoBpzB,KAAK4jB,IAAI,EAAGixB,EAAMxhB,GAAkBrzB,KAAK4jB,IAAI,EAAGkxB,EAAM1hB,GAAoB4b,GAAO6G,aACrM,IAAI1C,GAAOnY,EAAO9oB,KAAOmhB,EAAiB2H,EAAO7oB,IAAM6oB,EAAO3oB,OAAS+gB,GACjFjpC,KAAK2sD,kBACDzC,EAAM,GAAKC,EAAM,EACXgB,GAAeta,EAAO9oB,KAAOmhB,EAAkB2B,EAAagG,EAAO7oB,IAAM+gB,EAAiB2B,EAAY70B,KAAK4jB,IAAI,EAAGywB,GAAOhhB,EAAkB2B,IAAeh1B,KAAK4jB,IAAI,EAAG0wB,GAAOphB,EAAiB2B,IAAcma,GAAOuG,UACnN,IAAIpC,GAAOnY,EAAO9oB,KAAOmhB,EAAkB2B,EAAagG,EAAO7oB,IAAM+gB,EAAiB2B,GAChG1qC,KAAK4sD,mBACDxC,EAAM,GAAKC,EAAM,EACXc,GAAeta,EAAO9oB,KAAOlS,KAAK0f,IAAIu1B,EAAUja,EAAO5oB,MAAQihB,EAAkB2B,GAAcgG,EAAO7oB,IAAM+gB,EAAiB2B,EAAYogB,EAAWja,EAAO5oB,MAAQihB,EAAkB2B,EAAc,EAAIuf,EAAMlhB,EAAkB2B,EAAawf,GAAOthB,EAAiB2B,GAAama,GAAOyG,WACxR,IAAItC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,OAAS+gB,EAAmB2B,GAAekG,EAAO7oB,IAAM+gB,EAAiB2B,GACnH1qC,KAAK6sD,sBACDtC,EAAM,GAAKC,EAAM,EACXW,GAAeta,EAAO9oB,KAAOlS,KAAK0f,IAAIy1B,EAAana,EAAO5oB,OAASihB,EAAkB2B,IAAegG,EAAO7oB,IAAMnS,KAAK0f,IAAIw1B,EAAala,EAAO3oB,OAAS6gB,EAAiB2B,GAAa70B,KAAK4jB,IAAI,EAAG8wB,GAAOvhB,EAAmB2B,IAAgB6f,GAAOvhB,EAAoB2B,GAAgBia,GAAO2G,cAC7R,IAAIxC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,OAAS+gB,EAAmB2B,GAAekG,EAAO7oB,IAAM6oB,EAAO3oB,QAAU+gB,EAAoB2B,IACvI5qC,KAAK8sD,qBACDpC,EAAM,GAAKC,EAAM,EACXQ,GAAeta,EAAO9oB,KAAOmhB,EAAkB2B,EAAagG,EAAO7oB,IAAMijC,EAAYp1C,KAAK4jB,IAAI,EAAGixB,GAAOxhB,EAAkB2B,IAAe8f,GAAO1hB,EAAoB2B,GAAgBia,GAAO6G,aAC3L,IAAI1C,GAAOnY,EAAO9oB,KAAOmhB,EAAkB2B,EAAagG,EAAO7oB,IAAM6oB,EAAO3oB,QAAU+gB,EAAoB2B,MAK5H,SAAWia,GACPA,EAAOA,EAAiB,SAAI,GAAK,WACjCA,EAAOA,EAAkB,UAAI,GAAK,YAClCA,EAAOA,EAAqB,aAAI,GAAK,eACrCA,EAAOA,EAAoB,YAAI,GAAK,cAJxC,CAKGA,KAAWA,GAAS,KACvB,IAAIsG,GAAiB,SAAU/iC,EAAGrB,EAAGgmC,EAAIC,EAAIrmB,GACzC,IAAIsmB,GAAcp3C,KAAK8vB,KAAK,GAAK,GAAK,EAA1B,EACRunB,EAAKH,EAAKE,EACVE,EAAKH,EAAKC,EACVG,EAAKhlC,EAAI2kC,EACTM,EAAKtmC,EAAIimC,EACb,OAAQrmB,GACJ,KAAKke,GAAOuG,SACR,OAAO,IAAIhC,GAAY,IAAIJ,GAAO5gC,EAAGilC,GAAK,IAAIrE,GAAO5gC,EAAGilC,EAAKF,GAAK,IAAInE,GAAOoE,EAAKF,EAAInmC,GAAI,IAAIiiC,GAAOoE,EAAIrmC,IAC7G,KAAK89B,GAAOyG,UACR,OAAO,IAAIlC,GAAY,IAAIJ,GAAO5gC,EAAGrB,GAAI,IAAIiiC,GAAO5gC,EAAI8kC,EAAInmC,GAAI,IAAIiiC,GAAOoE,EAAIC,EAAKF,GAAK,IAAInE,GAAOoE,EAAIC,IAC5G,KAAKxI,GAAO2G,aACR,OAAO,IAAIpC,GAAY,IAAIJ,GAAOoE,EAAIrmC,GAAI,IAAIiiC,GAAOoE,EAAIrmC,EAAIomC,GAAK,IAAInE,GAAO5gC,EAAI8kC,EAAIG,GAAK,IAAIrE,GAAO5gC,EAAGilC,IAC5G,KAAKxI,GAAO6G,YACZ,QACI,OAAO,IAAItC,GAAY,IAAIJ,GAAOoE,EAAIC,GAAK,IAAIrE,GAAOoE,EAAKF,EAAIG,GAAK,IAAIrE,GAAO5gC,EAAGrB,EAAIomC,GAAK,IAAInE,GAAO5gC,EAAGrB,MAGjHumC,GAAyB,SAAUC,GACnC,MAAO,CAACA,EAAOpB,iBAAkBoB,EAAOnB,kBAAmBmB,EAAOlB,qBAAsBkB,EAAOjB,sBAU/FkB,GAA0B,SAAUD,GACpC,MAAO,CACHA,EAAOhB,kBACPgB,EAAOf,mBACPe,EAAOd,sBACPc,EAAOb,uBAIXe,GACA,SAAyBxiB,EAASC,EAASM,GACvCxrC,KAAKirC,QAAUA,EACfjrC,KAAKkrC,QAAUA,EACflrC,KAAKwrC,OAASA,EACdxrC,KAAKF,KAAO,EACZE,KAAKgH,OAAS,GAIlB0mD,GACA,SAAoBxqD,EAAM8D,GACtBhH,KAAKkD,KAAOA,EACZlD,KAAKgH,OAASA,EACdhH,KAAKF,KAAO,GAIhB6tD,GACA,SAAuBlhB,GACnBzsC,KAAKysC,QAAUA,EACfzsC,KAAKF,KAAO,EACZE,KAAKgH,OAAS,GAOlB4mD,GAAe,SAAUC,GAAU,OAAuB,IAAhBA,EAAO/tD,MAGjDguD,GAAY,SAAUxlD,EAAGud,GACzB,OAAIvd,EAAE9H,SAAWqlB,EAAErlB,QACR8H,EAAEsoC,MAAK,SAAUjpC,EAAGzC,GAAK,OAAOyC,IAAMke,EAAE3gB,OAoBnD6oD,GACA,SAAyB3S,GACrBp7C,KAAKiwC,QAAUmL,EACfp7C,KAAKguD,YAAc,GACnBhuD,KAAKiuD,eAAiB,GACtBjuD,KAAKkuD,eAAiB,GACtBluD,KAAKmuD,uCAAyC,GAC9CnuD,KAAKouD,eAAiB,GACtBpuD,KAAKquD,oBAAsB,GAC3BruD,KAAKsuD,yBAA2B,IAIpCC,GAA8B,WAC9B,SAASA,EAAanT,EAAWljB,GAQ7B,GAPAl4B,KAAKo7C,UAAYA,EACjBp7C,KAAKk4B,OAASA,EACdl4B,KAAKwuD,QAAU,GACfxuD,KAAKutD,OAAS,IAAItD,GAAYjqD,KAAKo7C,WAC/Bp7C,KAAKo7C,UAAU5K,OAAO/D,QAAU,GAChCzsC,KAAKwuD,QAAQrsD,KAAK,IAAIwrD,GAAc3tD,KAAKo7C,UAAU5K,OAAO/D,UAEtB,OAApCzsC,KAAKo7C,UAAU5K,OAAOpB,UAAoB,CAC1C,IAAInE,EAAUjrC,KAAKo7C,UAAUvK,OAAO9oB,KAAO/nB,KAAKo7C,UAAU5K,OAAOxE,gBAAgB,GAAGx2B,OAChF01B,EAAUlrC,KAAKo7C,UAAUvK,OAAO7oB,IAAMhoB,KAAKo7C,UAAU5K,OAAOxE,gBAAgB,GAAGx2B,OAC/Eg2B,EAASxrC,KAAKo7C,UAAU5K,OAAOpB,UACnCpvC,KAAKwuD,QAAQrsD,KAAK,IAAIsrD,GAAgBxiB,EAASC,EAASM,IAE5D,GAAwC,IAApCxrC,KAAKo7C,UAAU5K,OAAOvB,UAA+B,CACrD,IAAIwf,EAAYnB,GAAuBttD,KAAKutD,QACxCmB,EAAalB,GAAwBxtD,KAAKutD,QAC1CO,GAAUW,EAAWC,GACrB1uD,KAAKwuD,QAAQrsD,KAAK,IAAIurD,GAAWe,EAAW,KAG5CzuD,KAAKwuD,QAAQrsD,KAAK,IAAIurD,GAAWe,EAAW,IAC5CzuD,KAAKwuD,QAAQrsD,KAAK,IAAIurD,GAAWgB,EAAY,MA4BzD,OAxBAH,EAAa3qD,UAAU+qD,WAAa,SAAU3nD,GAI1C,IAHA,IAAI4nD,GAAwF,IAA/E,CAAC,EAAkB,GAAetrD,QAAQtD,KAAKo7C,UAAU5K,OAAO7J,UACzEzO,EAASl4B,KAAKk4B,OACds2B,EAAUxuD,KAAKwuD,QAAQnpD,MAAM,GAC1B6yB,GAAQ,CACX,IAAI22B,EAAkB32B,EAAOs2B,QAAQpsD,QAAO,SAAUyrD,GAAU,OAAQD,GAAaC,MACrF,GAAIe,GAA+C,IAArC12B,EAAOkjB,UAAU5K,OAAO7J,WAAgCzO,EAAOA,QAGzE,GAFAs2B,EAAQ75B,QAAQx0B,MAAMquD,EAASK,GAC/BD,GAA0F,IAAjF,CAAC,EAAkB,GAAetrD,QAAQ40B,EAAOkjB,UAAU5K,OAAO7J,UACjC,IAAtCzO,EAAOkjB,UAAU5K,OAAOvB,UAA+B,CACvD,IAAIwf,EAAYnB,GAAuBp1B,EAAOq1B,QAC1CmB,EAAalB,GAAwBt1B,EAAOq1B,QAC3CO,GAAUW,EAAWC,IACtBF,EAAQ75B,QAAQ,IAAI+4B,GAAWgB,EAAY,UAKnDF,EAAQ75B,QAAQx0B,MAAMquD,EAASK,GAEnC32B,EAASA,EAAOA,OAEpB,OAAOs2B,EAAQpsD,QAAO,SAAUyrD,GAAU,OAAO1gB,GAAS0gB,EAAO7mD,OAAQA,OAEtEunD,EAnDsB,GAqD7BO,GAAiB,SAAU52B,EAAQ62B,EAAiBC,EAAqBC,GACzE/2B,EAAOkjB,UAAU7K,SAAStuC,SAAQ,SAAU2gD,GACxC,IAAIsM,EAA6B/hB,GAASyV,EAAMhvB,MAAO,GACnD2nB,EAAyBpO,GAASyV,EAAMhvB,MAAO,GAC/Cu7B,EAAiB,IAAIZ,GAAa3L,EAAO1qB,GACzCiV,GAASyV,EAAMpS,OAAOpH,QAAS,OAC/B6lB,EAAU9sD,KAAKgtD,GAEnB,IAAIC,EAAiBjiB,GAASyV,EAAMhvB,MAAO,GAAyB,GAAKq7B,EACzE,GAAIC,GAA8B3T,EAAwB,CACtD,IAAI8T,EAAcH,GAA8BtM,EAAMpS,OAAOjB,eAAiByf,EAAsBD,EAChGtrD,EAAQ,IAAIsqD,GAAgBoB,GAChC,GAAIvM,EAAMpS,OAAOjB,gBAAkBqT,EAAMpS,OAAO/D,QAAU,GAAKmW,EAAMpS,OAAOlB,gBAAiB,CACzF,IAAIggB,EAAU1M,EAAMpS,OAAOnE,OAAOE,MAClC,GAAI+iB,EAAU,EAAG,CACb,IAAIC,EAAU,EACdF,EAAYnB,eAAetd,MAAK,SAAU3rC,EAASC,GAC/C,OAAIoqD,EAAUrqD,EAAQgrC,QAAQmL,UAAU5K,OAAOnE,OAAOE,OAClDgjB,EAAUrqD,GACH,GAEFqqD,EAAU,KAKvBF,EAAYnB,eAAehoD,OAAOqpD,EAAS,EAAG9rD,QAE7C,GAAI6rD,EAAU,EAAG,CAClB,IAAIE,EAAU,EACdH,EAAYjB,eAAexd,MAAK,SAAU3rC,EAASC,GAC/C,OAAIoqD,GAAWrqD,EAAQgrC,QAAQmL,UAAU5K,OAAOnE,OAAOE,OACnDijB,EAAUtqD,EAAI,GACP,GAEFsqD,EAAU,KAKvBH,EAAYjB,eAAeloD,OAAOspD,EAAS,EAAG/rD,QAG9C4rD,EAAYlB,uCAAuChsD,KAAKsB,QAIxDm/C,EAAMpS,OAAOf,aACb4f,EAAYhB,oBAAoBlsD,KAAKsB,GAGrC4rD,EAAYf,yBAAyBnsD,KAAKsB,GAGlDqrD,GAAeK,EAAgB1rD,EAAOyrD,EAA6BzrD,EAAQurD,EAAqBI,QAG5FxM,EAAMpS,OAAOd,gBACbqf,EAAgBf,YAAY7rD,KAAKgtD,GAGjCJ,EAAgBd,eAAe9rD,KAAKgtD,GAExCL,GAAeK,EAAgBJ,EAAiBC,EAAqBI,GAErEjiB,GAASyV,EAAMhvB,MAAO,IACtB67B,GAAiB7M,EAAOwM,OAIhCK,GAAmB,SAAUC,EAAOnf,GAGpC,IAFA,IAAIof,EAAYD,aAAiBrW,GAAqBqW,EAAMtlC,MAAQ,EAChEkvB,EAAWoW,aAAiBrW,IAAqBqW,EAAMpW,SAClDp0C,EAAI,EAAGA,EAAIqrC,EAAS/vC,OAAQ0E,IAAK,CACtC,IAAI0gD,EAAOrV,EAASrrC,GAChB0gD,EAAKxK,qBAAqBhC,IACM,kBAAzBwM,EAAKxK,UAAU72C,OACG,IAAzBqhD,EAAKxK,UAAU72C,QACforD,EAAY/J,EAAKxK,UAAU72C,OAE/BqhD,EAAKgK,UAAYhS,GAAkB+R,EAAW/J,EAAKxK,UAAU5K,OAAOvG,eAAe,GACnF0lB,GAAarW,GAAY,EAAI,IAYjCuW,GAAqB,SAAUtC,EAAQuC,GACvC,OAAQA,GACJ,KAAK,EACD,OAAOC,GAAqBxC,EAAOpB,iBAAkBoB,EAAOhB,kBAAmBgB,EAAOnB,kBAAmBmB,EAAOf,oBACpH,KAAK,EACD,OAAOuD,GAAqBxC,EAAOnB,kBAAmBmB,EAAOf,mBAAoBe,EAAOlB,qBAAsBkB,EAAOd,uBACzH,KAAK,EACD,OAAOsD,GAAqBxC,EAAOlB,qBAAsBkB,EAAOd,sBAAuBc,EAAOjB,oBAAqBiB,EAAOb,sBAC9H,KAAK,EACL,QACI,OAAOqD,GAAqBxC,EAAOjB,oBAAqBiB,EAAOb,qBAAsBa,EAAOpB,iBAAkBoB,EAAOhB,qBA0C7HyD,GAA6B,SAAUC,EAAQC,GAC/C,IAAIhtD,EAAO,GAaX,OAZI8mD,GAAciG,GACd/sD,EAAKf,KAAK8tD,EAAO1G,UAAU,IAAK,IAGhCrmD,EAAKf,KAAK8tD,GAEVjG,GAAckG,GACdhtD,EAAKf,KAAK+tD,EAAO3G,UAAU,IAAK,IAGhCrmD,EAAKf,KAAK+tD,GAEPhtD,GAEP6sD,GAAuB,SAAUE,EAAQE,EAAQD,EAAQE,GACzD,IAAIltD,EAAO,GAyBX,OAxBI8mD,GAAciG,GACd/sD,EAAKf,KAAK8tD,EAAO1G,UAAU,IAAK,IAGhCrmD,EAAKf,KAAK8tD,GAEVjG,GAAckG,GACdhtD,EAAKf,KAAK+tD,EAAO3G,UAAU,IAAK,IAGhCrmD,EAAKf,KAAK+tD,GAEVlG,GAAcoG,GACdltD,EAAKf,KAAKiuD,EAAO7G,UAAU,IAAK,GAAMQ,WAGtC7mD,EAAKf,KAAKiuD,GAEVpG,GAAcmG,GACdjtD,EAAKf,KAAKguD,EAAO5G,UAAU,IAAK,GAAOQ,WAGvC7mD,EAAKf,KAAKguD,GAEPjtD,GAGPwrD,GAAa,SAAUze,GACvB,IAAIY,EAASZ,EAAQY,OACjBL,EAASP,EAAQO,OACrB,OAAOK,EAAO1oB,IAAIqoB,EAAOtH,gBAAiBsH,EAAOzH,iBAAkByH,EAAOxH,iBAAmBwH,EAAOtH,mBAAoBsH,EAAOzH,eAAiByH,EAAOvH,qBAEvJonB,GAAa,SAAUpgB,GACvB,IAAIO,EAASP,EAAQO,OACjBK,EAASZ,EAAQY,OACjBhG,EAAc5S,GAAiBuY,EAAO3F,YAAagG,EAAO5oB,OAC1D0iB,EAAe1S,GAAiBuY,EAAO7F,aAAckG,EAAO5oB,OAC5DyiB,EAAazS,GAAiBuY,EAAO9F,WAAYmG,EAAO5oB,OACxD2iB,EAAgB3S,GAAiBuY,EAAO5F,cAAeiG,EAAO5oB,OAClE,OAAO4oB,EAAO1oB,IAAI0iB,EAAc2F,EAAOtH,gBAAiBwB,EAAa8F,EAAOzH,iBAAkByH,EAAOxH,iBAAmBwH,EAAOtH,gBAAkB2B,EAAcF,KAAiB6F,EAAOzH,eAAiByH,EAAOvH,kBAAoByB,EAAaE,KAqBhP0lB,GAA+B,SAAUlV,EAAWn1C,EAAOsqD,GAC3D,IAAIC,EAnBiC,SAAUjpB,EAAkB0I,GACjE,OAAyB,IAArB1I,EACO0I,EAAQY,OAEM,IAArBtJ,EACO8oB,GAAWpgB,GAEfye,GAAWze,GAYcwgB,CAAmCC,GAA2BtV,EAAU5K,OAAOjJ,iBAAkBthC,GAAQm1C,GACrIuV,EAX8B,SAAUhtB,EAAgBsM,GAC5D,OAAuB,IAAnBtM,EACOsM,EAAQY,OAEI,IAAnBlN,EACO0sB,GAAWpgB,GAEfye,GAAWze,GAIW2gB,CAAgCF,GAA2BtV,EAAU5K,OAAO7M,eAAgB19B,GAAQm1C,GAC7HyV,EAAsBC,GAAwBJ,GAA2BtV,EAAU5K,OAAO5I,eAAgB3hC,GAAQsqD,EAAeC,GACjIO,EAAYF,EAAoB,GAAIG,EAAaH,EAAoB,GACrElqB,EAAW5O,GAAyB24B,GAA2BtV,EAAU5K,OAAOhJ,mBAAoBvhC,GAAQuqD,EAA0BvoC,MAAQ8oC,EAAWP,EAA0BtoC,OAAS8oC,GAIhM,MAAO,CAHIC,GAA8BP,GAA2BtV,EAAU5K,OAAO/I,iBAAkBxhC,GAAQ0gC,EAAUkqB,EAAqBL,EAA2BG,GAC3J96C,KAAK0jB,MAAMi3B,EAA0BzoC,KAAO4e,EAAS,IACrD9wB,KAAK0jB,MAAMi3B,EAA0BxoC,IAAM2e,EAAS,IAClCoqB,EAAWC,IAE3CE,GAAS,SAAU39B,GAAS,OAAO2D,GAAa3D,IAAUA,EAAMhvB,QAAUy1B,GAAgBm3B,MAC1FC,GAAoB,SAAU7sD,GAAS,MAAwB,kBAAVA,GACrDusD,GAA0B,SAAUpqB,EAAMlX,EAAIqhB,GAC9C,IAAI+H,EAAiBppB,EAAG,GAAIspB,EAAkBtpB,EAAG,GAAI6hC,EAAsB7hC,EAAG,GAC1E0U,EAAQwC,EAAK,GAAI4qB,EAAS5qB,EAAK,GACnC,IAAKxC,EACD,MAAO,CAAC,EAAG,GAEf,GAAIxM,GAAmBwM,IAAUotB,GAAU55B,GAAmB45B,GAC1D,MAAO,CAACr5B,GAAiBiM,EAAO2M,EAAO5oB,OAAQgQ,GAAiBq5B,EAAQzgB,EAAO3oB,SAEnF,IAAIqpC,EAAyBH,GAAkBC,GAC/C,GAAIn6B,GAAagN,KAAWA,EAAM3/B,QAAUy1B,GAAgBw3B,SAAWttB,EAAM3/B,QAAUy1B,GAAgBy3B,OACnG,OAAIL,GAAkBC,GACAxgB,EAAO5oB,MAAQ4oB,EAAO3oB,OACnBmpC,KAAyBntB,EAAM3/B,QAAUy1B,GAAgBy3B,OACxE,CAAC5gB,EAAO5oB,MAAO4oB,EAAO5oB,MAAQopC,GAC9B,CAACxgB,EAAO3oB,OAASmpC,EAAqBxgB,EAAO3oB,QAEhD,CAAC2oB,EAAO5oB,MAAO4oB,EAAO3oB,QAEjC,IAAIwpC,EAAoBN,GAAkBxY,GACtC+Y,EAAqBP,GAAkBtY,GACvC8Y,EAAyBF,GAAqBC,EAElD,GAAIT,GAAOhtB,MAAYotB,GAAUJ,GAAOI,IAEpC,OAAII,GAAqBC,EACd,CAAC/Y,EAAgBE,GAIvByY,GAA2BK,EAM5BA,GAA0BL,EAOnB,CANOG,EACR9Y,EACAE,EAAkBuY,EACTM,EACT7Y,EACAF,EAAiByY,GAOpB,CAFOK,EAAoB9Y,EAAiB/H,EAAO5oB,MAC3C0pC,EAAqB7Y,EAAkBjI,EAAO3oB,QAjBlD,CAAC2oB,EAAO5oB,MAAO4oB,EAAO3oB,QAsBrC,GAAIqpC,EAAwB,CACxB,IAAIM,EAAU,EACVC,EAAW,EAaf,OAZIp6B,GAAmBwM,GACnB2tB,EAAU55B,GAAiBiM,EAAO2M,EAAO5oB,OAEpCyP,GAAmB45B,KACxBQ,EAAW75B,GAAiBq5B,EAAQzgB,EAAO3oB,SAE3CgpC,GAAOhtB,GACP2tB,EAAUC,EAAWT,EAEfC,IAAUJ,GAAOI,KACvBQ,EAAWD,EAAUR,GAElB,CAACQ,EAASC,GAMrB,IAAI7pC,EAAQ,KACRC,EAAS,KAmBb,GAlBIwP,GAAmBwM,GACnBjc,EAAQgQ,GAAiBiM,EAAO2M,EAAO5oB,OAElCqpC,GAAU55B,GAAmB45B,KAClCppC,EAAS+P,GAAiBq5B,EAAQzgB,EAAO3oB,SAE/B,OAAVD,GAAoBqpC,IAAUJ,GAAOI,KACrCppC,EACIwpC,GAAqBC,EACd1pC,EAAQ2wB,EAAkBE,EAC3BjI,EAAO3oB,QAEN,OAAXA,GAAmBgpC,GAAOhtB,KAC1Bjc,EACIypC,GAAqBC,EACdzpC,EAAS4wB,EAAmBF,EAC7B/H,EAAO5oB,OAEP,OAAVA,GAA6B,OAAXC,EAClB,MAAO,CAACD,EAAOC,GAEnB,MAAM,IAAIlI,MAAM,oDAEhB0wC,GAA6B,SAAUj6B,EAAQxwB,GAC/C,IAAI1B,EAAQkyB,EAAOxwB,GACnB,MAAqB,qBAAV1B,EACAkyB,EAAO,GAEXlyB,GAEP0sD,GAAgC,SAAU1c,EAAQ/kB,EAAImK,EAAI62B,EAA2BG,GACrF,IAAIvoC,EAAIoH,EAAG,GAAIzI,EAAIyI,EAAG,GAClBvH,EAAQ0R,EAAG,GAAIzR,EAASyR,EAAG,GAC/B,OAAQ4a,GACJ,KAAK,EACD,MAAO,CACH,IAAIyU,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,MAAOlS,KAAK0jB,MAAMi3B,EAA0BxoC,IAAMjB,IAClG,IAAIiiC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOyoC,EAA0BvoC,OAAQpS,KAAK0jB,MAAMi3B,EAA0BxoC,IAAMjB,IACpI,IAAIiiC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOyoC,EAA0BvoC,OAAQpS,KAAK0jB,MAAMrR,EAASsoC,EAA0BxoC,IAAMjB,IAC7I,IAAIiiC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,MAAOlS,KAAK0jB,MAAMrR,EAASsoC,EAA0BxoC,IAAMjB,KAEnH,KAAK,EACD,MAAO,CACH,IAAIiiC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,GAAIvS,KAAK0jB,MAAMi3B,EAA0BxoC,MAChG,IAAIghC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,EAAIH,GAAQpS,KAAK0jB,MAAMi3B,EAA0BxoC,MACxG,IAAIghC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,EAAIH,GAAQpS,KAAK0jB,MAAMi3B,EAA0BtoC,OAASsoC,EAA0BxoC,MAC3I,IAAIghC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,GAAIvS,KAAK0jB,MAAMi3B,EAA0BtoC,OAASsoC,EAA0BxoC,OAE3I,KAAK,EACD,MAAO,CACH,IAAIghC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,GAAIvS,KAAK0jB,MAAMi3B,EAA0BxoC,IAAMjB,IACtG,IAAIiiC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,EAAIH,GAAQpS,KAAK0jB,MAAMi3B,EAA0BxoC,IAAMjB,IAC9G,IAAIiiC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,EAAIH,GAAQpS,KAAK0jB,MAAMi3B,EAA0BxoC,IAAMjB,EAAImB,IAClH,IAAI8gC,GAAOnzC,KAAK0jB,MAAMi3B,EAA0BzoC,KAAOK,GAAIvS,KAAK0jB,MAAMi3B,EAA0BxoC,IAAMjB,EAAImB,KAElH,QACI,MAAO,CACH,IAAI8gC,GAAOnzC,KAAK0jB,MAAMo3B,EAAuB5oC,MAAOlS,KAAK0jB,MAAMo3B,EAAuB3oC,MACtF,IAAIghC,GAAOnzC,KAAK0jB,MAAMo3B,EAAuB5oC,KAAO4oC,EAAuB1oC,OAAQpS,KAAK0jB,MAAMo3B,EAAuB3oC,MACrH,IAAIghC,GAAOnzC,KAAK0jB,MAAMo3B,EAAuB5oC,KAAO4oC,EAAuB1oC,OAAQpS,KAAK0jB,MAAMo3B,EAAuBzoC,OAASyoC,EAAuB3oC,MACrJ,IAAIghC,GAAOnzC,KAAK0jB,MAAMo3B,EAAuB5oC,MAAOlS,KAAK0jB,MAAMo3B,EAAuBzoC,OAASyoC,EAAuB3oC,SAQlI+pC,GAA6B,WAC7B,SAASA,EAAYnf,GACjB5yC,KAAKgyD,MAAQ,GACbhyD,KAAKiyD,UAAYrf,EA2CrB,OAzCAmf,EAAYnuD,UAAUsuD,aAAe,SAAUrlB,EAAY/C,GACvD,IAAIsR,EAAYp7C,KAAKiyD,UAAUpe,cAAc,OACzCX,EAAMlzC,KAAKiyD,UAAUpe,cAAc,OACnCse,EAAOnyD,KAAKiyD,UAAUpe,cAAc,QACpC/sB,EAAO9mB,KAAKiyD,UAAUnrC,KAC1Bs0B,EAAUrhC,MAAMmyB,WAAa,SAC7BkP,EAAUrhC,MAAM8yB,WAAaA,EAC7BuO,EAAUrhC,MAAM+vB,SAAWA,EAC3BsR,EAAUrhC,MAAMq4C,OAAS,IACzBhX,EAAUrhC,MAAMs4C,QAAU,IAC1BjX,EAAUrhC,MAAMu4C,WAAa,SAC7BxrC,EAAKksB,YAAYoI,GACjBlI,EAAII,IApBM,iFAqBVJ,EAAIjrB,MAAQ,EACZirB,EAAIhrB,OAAS,EACbgrB,EAAIn5B,MAAMq4C,OAAS,IACnBlf,EAAIn5B,MAAMs4C,QAAU,IACpBnf,EAAIn5B,MAAMw4C,cAAgB,WAC1BJ,EAAKp4C,MAAM8yB,WAAaA,EACxBslB,EAAKp4C,MAAM+vB,SAAWA,EACtBqoB,EAAKp4C,MAAMq4C,OAAS,IACpBD,EAAKp4C,MAAMs4C,QAAU,IACrBF,EAAKnf,YAAYhzC,KAAKiyD,UAAU/O,eA5BtB,gBA6BV9H,EAAUpI,YAAYmf,GACtB/W,EAAUpI,YAAYE,GACtB,IAAIsf,EAAWtf,EAAIuf,UAAYN,EAAKM,UAAY,EAChDrX,EAAUlH,YAAYie,GACtB/W,EAAUpI,YAAYhzC,KAAKiyD,UAAU/O,eAjC3B,gBAkCV9H,EAAUrhC,MAAM6vB,WAAa,SAC7BsJ,EAAIn5B,MAAMw4C,cAAgB,QAC1B,IAAIG,EAASxf,EAAIuf,UAAYrX,EAAUqX,UAAY,EAEnD,OADA3rC,EAAKotB,YAAYkH,GACV,CAAEoX,SAAUA,EAAUE,OAAQA,IAEzCX,EAAYnuD,UAAU+uD,WAAa,SAAU9lB,EAAY/C,GACrD,IAAIzmC,EAAMwpC,EAAa,IAAM/C,EAI7B,MAH+B,qBAApB9pC,KAAKgyD,MAAM3uD,KAClBrD,KAAKgyD,MAAM3uD,GAAOrD,KAAKkyD,aAAarlB,EAAY/C,IAE7C9pC,KAAKgyD,MAAM3uD,IAEf0uD,EA9CqB,GAiD5Ba,GACA,SAAkBpkD,EAASlO,GACvBN,KAAKwO,QAAUA,EACfxO,KAAKM,QAAUA,GAMnBuyD,GAAgC,SAAUna,GAE1C,SAASma,EAAerkD,EAASlO,GAC7B,IAAIwN,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASlO,IAAYN,KAgBnD,OAfA8N,EAAMglD,eAAiB,GACvBhlD,EAAMonC,OAAS50C,EAAQ40C,OAAS50C,EAAQ40C,OAAStC,SAASiB,cAAc,UACxE/lC,EAAMqnC,IAAMrnC,EAAMonC,OAAOE,WAAW,MAC/B90C,EAAQ40C,SACTpnC,EAAMonC,OAAOjtB,MAAQpS,KAAKuoC,MAAM99C,EAAQ2nB,MAAQ3nB,EAAQyyD,OACxDjlD,EAAMonC,OAAOhtB,OAASrS,KAAKuoC,MAAM99C,EAAQ4nB,OAAS5nB,EAAQyyD,OAC1DjlD,EAAMonC,OAAOn7B,MAAMkO,MAAQ3nB,EAAQ2nB,MAAQ,KAC3Cna,EAAMonC,OAAOn7B,MAAMmO,OAAS5nB,EAAQ4nB,OAAS,MAEjDpa,EAAMklD,YAAc,IAAIjB,GAAYnf,UACpC9kC,EAAMqnC,IAAI4d,MAAMjlD,EAAMxN,QAAQyyD,MAAOjlD,EAAMxN,QAAQyyD,OACnDjlD,EAAMqnC,IAAIzpC,WAAWpL,EAAQ8nB,GAAI9nB,EAAQymB,GACzCjZ,EAAMqnC,IAAI8d,aAAe,SACzBnlD,EAAMglD,eAAiB,GACvBhlD,EAAMU,QAAQ5N,OAAOC,MAAM,gCAAkCP,EAAQ2nB,MAAQ,IAAM3nB,EAAQ4nB,OAAS,gBAAkB5nB,EAAQyyD,OACvHjlD,EAo3BX,OAt4BAkY,EAAU6sC,EAAgBna,GAoB1Bma,EAAejvD,UAAUsvD,aAAe,SAAU1E,GAE9C,IADA,IAAI1gD,EAAQ9N,KACLA,KAAK8yD,eAAetyD,QACvBR,KAAKmzD,YAET3E,EAAQvsD,SAAQ,SAAU4rD,GAAU,OAAO//C,EAAMslD,YAAYvF,OAEjEgF,EAAejvD,UAAUwvD,YAAc,SAAUvF,GAC7C7tD,KAAKm1C,IAAIke,OA7iBK,SAAUxF,GAAU,OAAuB,IAAhBA,EAAO/tD,KA8iB5CwzD,CAAgBzF,KAChB7tD,KAAKm1C,IAAIoe,YAAc1F,EAAOphB,SAnjBlB,SAAUohB,GAC9B,OAAuB,IAAhBA,EAAO/tD,KAojBN0zD,CAAkB3F,KAClB7tD,KAAKm1C,IAAIzpC,UAAUmiD,EAAO5iB,QAAS4iB,EAAO3iB,SAC1ClrC,KAAKm1C,IAAI/F,UAAUye,EAAOriB,OAAO,GAAIqiB,EAAOriB,OAAO,GAAIqiB,EAAOriB,OAAO,GAAIqiB,EAAOriB,OAAO,GAAIqiB,EAAOriB,OAAO,GAAIqiB,EAAOriB,OAAO,IAC3HxrC,KAAKm1C,IAAIzpC,WAAWmiD,EAAO5iB,SAAU4iB,EAAO3iB,UAE5C0iB,GAAaC,KACb7tD,KAAKkD,KAAK2qD,EAAO3qD,MACjBlD,KAAKm1C,IAAIse,QAEbzzD,KAAK8yD,eAAe3wD,KAAK0rD,IAE7BgF,EAAejvD,UAAUuvD,UAAY,WACjCnzD,KAAK8yD,eAAe5iD,MACpBlQ,KAAKm1C,IAAIue,WAEbb,EAAejvD,UAAU+vD,YAAc,SAAUlwD,GAC7C,OAAO4iB,EAAUrmB,UAAM,OAAQ,GAAQ,WAEnC,OAAO6mB,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EAED,OADSzjB,EAAMwsC,QAAQmL,UAAU5K,OACrBnB,YACL,CAAC,EAAarvC,KAAK4zD,mBAAmBnwD,IADb,CAAC,EAAa,GAElD,KAAK,EACD+rB,EAAGrI,OACHqI,EAAGtI,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,WAKhC2rC,EAAejvD,UAAUiwD,WAAa,SAAUC,GAC5C,OAAOztC,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,OAAO6mB,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EAID,OAHIimB,GAAS2mB,EAAM1Y,UAAUxnB,MAAO,IAG/BkgC,EAAM1Y,UAAU5K,OAAOnB,YACrB,CAAC,EAAarvC,KAAK+zD,+BAA+BD,IADT,CAAC,EAAa,GAElE,KAAK,EAED,OADAtkC,EAAGrI,OACI,CAAC,EAAannB,KAAKg0D,kBAAkBF,IAChD,KAAK,EACDtkC,EAAGrI,OACHqI,EAAGtI,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,WAKhC2rC,EAAejvD,UAAUqwD,4BAA8B,SAAUpf,EAAMrL,EAAegpB,GAClF,IAAI1kD,EAAQ9N,KACU,IAAlBwpC,EACAxpC,KAAKm1C,IAAI+e,SAASrf,EAAKA,KAAMA,EAAKhE,OAAO9oB,KAAM8sB,EAAKhE,OAAO7oB,IAAMwqC,GAGnD/b,GAAiB5B,EAAKA,MAC5Bz7B,QAAO,SAAU2O,EAAMosC,GAE3B,OADArmD,EAAMqnC,IAAI+e,SAASC,EAAQpsC,EAAM8sB,EAAKhE,OAAO7oB,IAAMwqC,GAC5CzqC,EAAOja,EAAMqnC,IAAIif,YAAYD,GAAQlsC,QAC7C4sB,EAAKhE,OAAO9oB,OAGvB8qC,EAAejvD,UAAUywD,gBAAkB,SAAU7jB,GACjD,IAAIvD,EAAcuD,EAAOvD,YACpB7qC,QAAO,SAAUkyD,GAAW,MAAmB,WAAZA,GAAoC,eAAZA,KAC3DhvD,KAAK,IACNunC,EAAa0nB,GAAkB/jB,EAAO3D,YAAYvnC,KAAK,MACvDwkC,EAAW9S,GAAiBwZ,EAAO1G,UACjC,GAAK0G,EAAO1G,SAASt0B,OAASg7B,EAAO1G,SAASnU,KAC9C6a,EAAO1G,SAASt0B,OAAS,KAC/B,MAAO,CACH,CAACg7B,EAAOtD,UAAWD,EAAauD,EAAOxD,WAAYlD,EAAU+C,GAAYvnC,KAAK,KAC9EunC,EACA/C,IAGR+oB,EAAejvD,UAAU4wD,eAAiB,SAAU3f,EAAMrE,GACtD,OAAOnqB,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIwvB,EAAIilC,EAAM5nB,EAAY/C,EAAUnQ,EAAI64B,EAAUE,EAAQlkB,EACtD1gC,EAAQ9N,KACZ,OAAO6mB,EAAY7mB,MAAM,SAAUsqD,GAmE/B,OAlEA96B,EAAKxvB,KAAKq0D,gBAAgB7jB,GAASikB,EAAOjlC,EAAG,GAAIqd,EAAard,EAAG,GAAIsa,EAAWta,EAAG,GACnFxvB,KAAKm1C,IAAIsf,KAAOA,EAChBz0D,KAAKm1C,IAAIhM,UAAiC,IAArBqH,EAAOrH,UAA4B,MAAQ,MAChEnpC,KAAKm1C,IAAIrK,UAAY,OACrB9qC,KAAKm1C,IAAI8d,aAAe,aACxBt5B,EAAK35B,KAAKgzD,YAAYL,WAAW9lB,EAAY/C,GAAW0oB,EAAW74B,EAAG64B,SAAUE,EAAS/4B,EAAG+4B,OAC5FlkB,EAAagC,EAAOhC,WACpBqG,EAAKgD,WAAW51C,SAAQ,SAAU4yC,GAC9BrG,EAAWvsC,SAAQ,SAAUyyD,GACzB,OAAQA,GACJ,KAAK,EACD5mD,EAAMqnC,IAAIM,UAAYvc,GAASsX,EAAOvX,OACtCnrB,EAAMmmD,4BAA4Bpf,EAAMrE,EAAOhH,cAAegpB,GAC9D,IAAImC,EAAcnkB,EAAOzF,WACrB4pB,EAAYn0D,QAAUq0C,EAAKA,KAAK/8B,OAAOtX,SACvCm0D,EACKtvD,MAAM,GACN0kD,UACA9nD,SAAQ,SAAU8oC,GACnBj9B,EAAMqnC,IAAIyf,YAAc17B,GAAS6R,EAAW9R,OAC5CnrB,EAAMqnC,IAAI0f,cAAgB9pB,EAAWE,QAAQz1B,OAAS1H,EAAMxN,QAAQyyD,MACpEjlD,EAAMqnC,IAAI2f,cAAgB/pB,EAAWG,QAAQ11B,OAAS1H,EAAMxN,QAAQyyD,MACpEjlD,EAAMqnC,IAAI4f,WAAahqB,EAAWI,KAAK31B,OACvC1H,EAAMmmD,4BAA4Bpf,EAAMrE,EAAOhH,cAAegpB,MAElE1kD,EAAMqnC,IAAIyf,YAAc,GACxB9mD,EAAMqnC,IAAI0f,cAAgB,EAC1B/mD,EAAMqnC,IAAI2f,cAAgB,EAC1BhnD,EAAMqnC,IAAI4f,WAAa,GAEvBvkB,EAAO7D,mBAAmBnsC,SAC1BsN,EAAMqnC,IAAIM,UAAYvc,GAASsX,EAAO9D,qBAAuB8D,EAAOvX,OACpEuX,EAAO7D,mBAAmB1qC,SAAQ,SAAU0qC,GACxC,OAAQA,GACJ,KAAK,EAID7+B,EAAMqnC,IAAIO,SAASb,EAAKhE,OAAO9oB,KAAMlS,KAAK0jB,MAAMsb,EAAKhE,OAAO7oB,IAAMwqC,GAAW3d,EAAKhE,OAAO5oB,MAAO,GAChG,MACJ,KAAK,EACDna,EAAMqnC,IAAIO,SAASb,EAAKhE,OAAO9oB,KAAMlS,KAAK0jB,MAAMsb,EAAKhE,OAAO7oB,KAAM6sB,EAAKhE,OAAO5oB,MAAO,GACrF,MACJ,KAAK,EAEDna,EAAMqnC,IAAIO,SAASb,EAAKhE,OAAO9oB,KAAMlS,KAAKmY,KAAK6mB,EAAKhE,OAAO7oB,IAAM0qC,GAAS7d,EAAKhE,OAAO5oB,MAAO,QAK7G,MACJ,KAAK,EACGuoB,EAAO7B,uBAAyBkG,EAAKA,KAAK/8B,OAAOtX,SACjDsN,EAAMqnC,IAAI6f,YAAc97B,GAASsX,EAAO9B,uBACxC5gC,EAAMqnC,IAAI8f,UAAYzkB,EAAO7B,sBAE7B7gC,EAAMqnC,IAAI+f,SAAazkB,OAAO0kB,OAAS,QAAU,QACjDrnD,EAAMqnC,IAAIigB,WAAWvgB,EAAKA,KAAMA,EAAKhE,OAAO9oB,KAAM8sB,EAAKhE,OAAO7oB,IAAMwqC,IAExE1kD,EAAMqnC,IAAI6f,YAAc,GACxBlnD,EAAMqnC,IAAI8f,UAAY,EACtBnnD,EAAMqnC,IAAI+f,SAAW,eAK9B,CAAC,UAIpBrC,EAAejvD,UAAUyxD,sBAAwB,SAAUja,EAAWmS,EAAQzmB,GAC1E,GAAIA,GAASsU,EAAUxC,eAAiB,GAAKwC,EAAUtC,gBAAkB,EAAG,CACxE,IAAIwc,EAAMjF,GAAWjV,GACjBl4C,EAAOsqD,GAAwBD,GACnCvtD,KAAKkD,KAAKA,GACVlD,KAAKm1C,IAAIke,OACTrzD,KAAKm1C,IAAIse,OACTzzD,KAAKm1C,IAAIE,UAAUvO,EAAO,EAAG,EAAGsU,EAAUxC,eAAgBwC,EAAUtC,gBAAiBwc,EAAIvtC,KAAMutC,EAAIttC,IAAKstC,EAAIrtC,MAAOqtC,EAAIptC,QACvHloB,KAAKm1C,IAAIue,YAGjBb,EAAejvD,UAAUowD,kBAAoB,SAAUF,GACnD,OAAOztC,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIo7C,EAAWmS,EAAQ/c,EAAQlnB,EAAIkG,EAAIozB,EAAqC1N,EAAQxO,EAAM/M,EAAgBmQ,EAAU0oB,EAAkBpqC,EAAGyvB,EAAY3E,EAAKpM,EAAOE,EAAK6F,EAAYgE,EAClL,OAAOhqB,EAAY7mB,MAAM,SAAUsqD,GAC/B,OAAQA,EAAGpjC,OACP,KAAK,EACDlnB,KAAKkzD,aAAaY,EAAMnF,WAAW,IACnCvT,EAAY0Y,EAAM1Y,UAClBmS,EAASuG,EAAMvG,OACf/c,EAAS4K,EAAU5K,OACnBlnB,EAAK,EAAGkG,EAAK4rB,EAAU9K,UACvBga,EAAGpjC,MAAQ,EACf,KAAK,EACD,OAAMoC,EAAKkG,EAAGhvB,QACdoiD,EAAQpzB,EAAGlG,GACJ,CAAC,EAAatpB,KAAKw0D,eAAe5R,EAAOpS,KAFlB,CAAC,EAAa,GAGhD,KAAK,EACD8Z,EAAGnjC,OACHmjC,EAAGpjC,MAAQ,EACf,KAAK,EAED,OADAoC,IACO,CAAC,EAAa,GACzB,KAAK,EACD,KAAM8xB,aAAqB3C,IAAwB,MAAO,CAAC,EAAa,GACxE6R,EAAGpjC,MAAQ,EACf,KAAK,EAED,OADAojC,EAAGljC,KAAKjlB,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAanC,KAAKwO,QAAQ+K,MAAM1P,MAAMuxC,EAAU9H,MAC5D,KAAK,EAGD,OAFAxM,EAAQwjB,EAAGnjC,OACXnnB,KAAKq1D,sBAAsBja,EAAWmS,EAAQzmB,GACvC,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAwjB,EAAGnjC,OACHnnB,KAAKwO,QAAQ5N,OAAO6T,MAAM,uBAAyB2mC,EAAU9H,KACtD,CAAC,EAAa,GACzB,KAAK,EAID,GAHI8H,aAAqBpC,IACrBh5C,KAAKq1D,sBAAsBja,EAAWmS,EAAQnS,EAAUlG,UAEtDkG,aAAqBnC,IAAsB,MAAO,CAAC,EAAa,IACtEqR,EAAGpjC,MAAQ,EACf,KAAK,EAED,OADAojC,EAAGljC,KAAKjlB,KAAK,CAAC,EAAG,GAAI,CAAE,KAChB,CAAC,EAAanC,KAAKwO,QAAQ+K,MAAM1P,MAAMuxC,EAAUzI,MAC5D,KAAK,GAGD,OAFA7L,EAAQwjB,EAAGnjC,OACXnnB,KAAKq1D,sBAAsBja,EAAWmS,EAAQzmB,GACvC,CAAC,EAAa,IACzB,KAAK,GAGD,OAFAwjB,EAAGnjC,OACHnnB,KAAKwO,QAAQ5N,OAAO6T,MAAM,qBAAuB2mC,EAAUzI,IAAIhpC,UAAU,EAAG,MACrE,CAAC,EAAa,IACzB,KAAK,GACD,OAAMyxC,aAAqBlB,IAA0BkB,EAAUd,KASxD,CAAC,EARS,IAAIuY,EAAe7yD,KAAKwO,QAAS,CAC9CukD,MAAO/yD,KAAKM,QAAQyyD,MACpBnvB,gBAAiBwX,EAAUxX,gBAC3Bxb,EAAG,EACHrB,EAAG,EACHkB,MAAOmzB,EAAUnzB,MACjBC,OAAQkzB,EAAUlzB,SAEcrD,OAAOu2B,EAAUd,OATwB,CAAC,EAAa,IAU/F,KAAK,GACDpF,EAASoV,EAAGnjC,OACRi0B,EAAUnzB,OAASmzB,EAAUlzB,QAC7BloB,KAAKm1C,IAAIE,UAAUH,EAAQ,EAAG,EAAGkG,EAAUnzB,MAAOmzB,EAAUlzB,OAAQkzB,EAAUvK,OAAO9oB,KAAMqzB,EAAUvK,OAAO7oB,IAAKozB,EAAUvK,OAAO5oB,MAAOmzB,EAAUvK,OAAO3oB,QAE9JoiC,EAAGpjC,MAAQ,GACf,KAAK,GA+BD,GA9BIk0B,aAAqB1B,KACrBhT,EAAO7wB,KAAK0f,IAAI6lB,EAAUvK,OAAO5oB,MAAOmzB,EAAUvK,OAAO3oB,QA5tEtE,aA6tEiBkzB,EAAUt7C,KACNs7C,EAAUxB,UACV55C,KAAKm1C,IAAIke,OACTrzD,KAAKkD,KAAK,CACN,IAAI8lD,GAAO5N,EAAUvK,OAAO9oB,KAAc,OAAP2e,EAAgB0U,EAAUvK,OAAO7oB,IAAa,IAAP0e,GAC1E,IAAIsiB,GAAO5N,EAAUvK,OAAO9oB,KAAc,IAAP2e,EAAa0U,EAAUvK,OAAO7oB,IAAa,MAAP0e,GACvE,IAAIsiB,GAAO5N,EAAUvK,OAAO9oB,KAAc,OAAP2e,EAAgB0U,EAAUvK,OAAO7oB,IAAa,OAAP0e,GAC1E,IAAIsiB,GAAO5N,EAAUvK,OAAO9oB,KAAc,OAAP2e,EAAgB0U,EAAUvK,OAAO7oB,IAAa,MAAP0e,GAC1E,IAAIsiB,GAAO5N,EAAUvK,OAAO9oB,KAAc,OAAP2e,EAAgB0U,EAAUvK,OAAO7oB,IAAa,IAAP0e,GAC1E,IAAIsiB,GAAO5N,EAAUvK,OAAO9oB,KAAc,IAAP2e,EAAa0U,EAAUvK,OAAO7oB,IAAa,OAAP0e,GACvE,IAAIsiB,GAAO5N,EAAUvK,OAAO9oB,KAAc,OAAP2e,EAAgB0U,EAAUvK,OAAO7oB,IAAa,IAAP0e,KAE9E1mC,KAAKm1C,IAAIM,UAAYvc,GAtuEvC,WAuuEkBl5B,KAAKm1C,IAAIogB,OACTv1D,KAAKm1C,IAAIue,WA1uEjC,UA6uEyBtY,EAAUt7C,MACXs7C,EAAUxB,UACV55C,KAAKm1C,IAAIke,OACTrzD,KAAKm1C,IAAIqgB,YACTx1D,KAAKm1C,IAAIsgB,IAAIra,EAAUvK,OAAO9oB,KAAO2e,EAAO,EAAG0U,EAAUvK,OAAO7oB,IAAM0e,EAAO,EAAGA,EAAO,EAAG,EAAa,EAAV7wB,KAAKwiB,IAAQ,GAC1Gr4B,KAAKm1C,IAAIM,UAAYvc,GAhvEvC,WAivEkBl5B,KAAKm1C,IAAIogB,OACTv1D,KAAKm1C,IAAIue,YAIjBgC,GAAmBta,IAAcA,EAAU72C,MAAM/D,OAAQ,CASzD,OARAm5B,EAAK35B,KAAKq0D,gBAAgB7jB,GAAS3D,EAAalT,EAAG,GAAImQ,EAAWnQ,EAAG,GACrE64B,EAAWxyD,KAAKgzD,YAAYL,WAAW9lB,EAAY/C,GAAU0oB,SAC7DxyD,KAAKm1C,IAAIsf,KAAO5nB,EAChB7sC,KAAKm1C,IAAIM,UAAYvc,GAASsX,EAAOvX,OACrCj5B,KAAKm1C,IAAI8d,aAAe,aACxBjzD,KAAKm1C,IAAIrK,UAAY6qB,GAAgBva,EAAU5K,OAAO1F,WACtD+F,EAASwf,GAAWjV,GACpBhzB,EAAI,EACIgzB,EAAU5K,OAAO1F,WACrB,KAAK,EACD1iB,GAAKyoB,EAAO5oB,MAAQ,EACpB,MACJ,KAAK,EACDG,GAAKyoB,EAAO5oB,MAGpB4vB,EAAahH,EAAO1oB,IAAIC,EAAG,EAAG,GAAIyoB,EAAO3oB,OAAS,EAAI,GACtDloB,KAAKm1C,IAAIke,OACTrzD,KAAKkD,KAAK,CACN,IAAI8lD,GAAOnY,EAAO9oB,KAAM8oB,EAAO7oB,KAC/B,IAAIghC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAO4oB,EAAO7oB,KAC9C,IAAIghC,GAAOnY,EAAO9oB,KAAO8oB,EAAO5oB,MAAO4oB,EAAO7oB,IAAM6oB,EAAO3oB,QAC3D,IAAI8gC,GAAOnY,EAAO9oB,KAAM8oB,EAAO7oB,IAAM6oB,EAAO3oB,UAEhDloB,KAAKm1C,IAAIse,OACTzzD,KAAKi0D,4BAA4B,IAAI/d,GAAWkF,EAAU72C,MAAOszC,GAAarH,EAAOhH,cAAegpB,GACpGxyD,KAAKm1C,IAAIue,UACT1zD,KAAKm1C,IAAI8d,aAAe,aACxBjzD,KAAKm1C,IAAIrK,UAAY,OAEzB,IAAKqC,GAASiO,EAAU5K,OAAOpH,QAAS,MAAuB,MAAO,CAAC,EAAa,IACpF,GAA0C,OAApCgS,EAAU5K,OAAOzG,eAA0B,MAAO,CAAC,EAAa,IAEtE,GAAmB,KADnBmJ,EAAMkI,EAAU5K,OAAOzG,gBACbjqC,KAAuB,MAAO,CAAC,EAAa,IACtDgnC,OAAQ,EACRE,EAAMkM,EAAIlM,IACVsjB,EAAGpjC,MAAQ,GACf,KAAK,GAED,OADAojC,EAAGljC,KAAKjlB,KAAK,CAAC,GAAI,GAAI,CAAE,KACjB,CAAC,EAAanC,KAAKwO,QAAQ+K,MAAM1P,MAAMm9B,IAClD,KAAK,GAGD,OAFAF,EAAQwjB,EAAGnjC,OACXnnB,KAAKm1C,IAAIE,UAAUvO,EAAOsU,EAAUvK,OAAO9oB,MAAQ+e,EAAM7e,MAAQ,IAAKmzB,EAAUvK,OAAO7oB,KAChF,CAAC,EAAa,IACzB,KAAK,GAGD,OAFAsiC,EAAGnjC,OACHnnB,KAAKwO,QAAQ5N,OAAO6T,MAAM,kCAAoCuyB,GACvD,CAAC,EAAa,IACzB,KAAK,GAAI,MAAO,CAAC,EAAa,IAC9B,KAAK,GACG8sB,EAAMlE,YAAiD,IAApCxU,EAAU5K,OAAOvG,gBACpC4C,EAAa7sC,KAAKq0D,gBAAgB7jB,GAAQ,GAC1CxwC,KAAKm1C,IAAIsf,KAAO5nB,EAChB7sC,KAAKm1C,IAAIM,UAAYvc,GAASsX,EAAOvX,OACrCj5B,KAAKm1C,IAAI8d,aAAe,SACxBjzD,KAAKm1C,IAAIrK,UAAY,QACrB+F,EAAS,IAAI/oB,EAAOszB,EAAUvK,OAAO9oB,KAAMqzB,EAAUvK,OAAO7oB,IAAMiQ,GAAiBmjB,EAAU5K,OAAO9F,WAAY0Q,EAAUvK,OAAO5oB,OAAQmzB,EAAUvK,OAAO5oB,MAAO4hB,GAAkB2G,EAAO5G,WAAY4G,EAAO1G,SAASt0B,QAAU,EAAI,GACpOxV,KAAKi0D,4BAA4B,IAAI/d,GAAW4d,EAAMlE,UAAW/e,GAASL,EAAOhH,cAAeK,GAAkB2G,EAAO5G,WAAY4G,EAAO1G,SAASt0B,QAAU,EAAI,GACnKxV,KAAKm1C,IAAI8d,aAAe,SACxBjzD,KAAKm1C,IAAIrK,UAAY,QAEzBwf,EAAGpjC,MAAQ,GACf,KAAK,GAAI,MAAO,CAAC,WAKjC2rC,EAAejvD,UAAUgwD,mBAAqB,SAAUnwD,GACpD,OAAO4iB,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIspB,EAAIkG,EAAWmK,EAAI2wB,EAAWG,EAAImL,EAAWC,EAAIC,EAAWC,EAAIC,EAAWC,EAAIC,EAAWC,EAAIC,EAAIxT,EACtG,OAAO/7B,EAAY7mB,MAAM,SAAUq2D,GAC/B,OAAQA,EAAGnvC,OACP,KAAK,EAMD,OALIimB,GAAS1pC,EAAMwsC,QAAQmL,UAAUxnB,MAAO,IAKrC,CAAC,EAAa5zB,KAAK+zD,+BAA+BtwD,EAAMwsC,UACnE,KAAK,EAGDomB,EAAGlvC,OACHmC,EAAK,EAAGkG,EAAK/rB,EAAMyqD,eACnBmI,EAAGnvC,MAAQ,EACf,KAAK,EACD,OAAMoC,EAAKkG,EAAGhvB,QACdoiD,EAAQpzB,EAAGlG,GACJ,CAAC,EAAatpB,KAAK2zD,YAAY/Q,KAFR,CAAC,EAAa,GAGhD,KAAK,EACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,EACf,KAAK,EAED,OADAoC,IACO,CAAC,EAAa,GACzB,KAAK,EAEL,MAAO,CAAC,EAAatpB,KAAKg0D,kBAAkBvwD,EAAMwsC,UAClD,KAAK,EAEDomB,EAAGlvC,OACHwS,EAAK,EAAG2wB,EAAK7mD,EAAMwqD,eACnBoI,EAAGnvC,MAAQ,EACf,KAAK,EACD,OAAMyS,EAAK2wB,EAAG9pD,QACdoiD,EAAQ0H,EAAG3wB,GACJ,CAAC,EAAa35B,KAAK6zD,WAAWjR,KAFP,CAAC,EAAa,IAGhD,KAAK,EACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,EACf,KAAK,EAED,OADAyS,IACO,CAAC,EAAa,GACzB,KAAK,GACD8wB,EAAK,EAAGmL,EAAKnyD,EAAM4qD,oBACnBgI,EAAGnvC,MAAQ,GACf,KAAK,GACD,OAAMujC,EAAKmL,EAAGp1D,QACdoiD,EAAQgT,EAAGnL,GACJ,CAAC,EAAazqD,KAAK2zD,YAAY/Q,KAFR,CAAC,EAAa,IAGhD,KAAK,GACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,GACf,KAAK,GAED,OADAujC,IACO,CAAC,EAAa,IACzB,KAAK,GACDoL,EAAK,EAAGC,EAAKryD,EAAM6qD,yBACnB+H,EAAGnvC,MAAQ,GACf,KAAK,GACD,OAAM2uC,EAAKC,EAAGt1D,QACdoiD,EAAQkT,EAAGD,GACJ,CAAC,EAAa71D,KAAK2zD,YAAY/Q,KAFR,CAAC,EAAa,IAGhD,KAAK,GACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,GACf,KAAK,GAED,OADA2uC,IACO,CAAC,EAAa,IACzB,KAAK,GACDE,EAAK,EAAGC,EAAKvyD,EAAMuqD,YACnBqI,EAAGnvC,MAAQ,GACf,KAAK,GACD,OAAM6uC,EAAKC,EAAGx1D,QACdoiD,EAAQoT,EAAGD,GACJ,CAAC,EAAa/1D,KAAK6zD,WAAWjR,KAFP,CAAC,EAAa,IAGhD,KAAK,GACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,GACf,KAAK,GAED,OADA6uC,IACO,CAAC,EAAa,IACzB,KAAK,GACDE,EAAK,EAAGC,EAAKzyD,EAAM0qD,uCACnBkI,EAAGnvC,MAAQ,GACf,KAAK,GACD,OAAM+uC,EAAKC,EAAG11D,QACdoiD,EAAQsT,EAAGD,GACJ,CAAC,EAAaj2D,KAAK2zD,YAAY/Q,KAFR,CAAC,EAAa,IAGhD,KAAK,GACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,GACf,KAAK,GAED,OADA+uC,IACO,CAAC,EAAa,IACzB,KAAK,GACDE,EAAK,EAAGC,EAAK3yD,EAAM2qD,eACnBiI,EAAGnvC,MAAQ,GACf,KAAK,GACD,OAAMivC,EAAKC,EAAG51D,QACdoiD,EAAQwT,EAAGD,GACJ,CAAC,EAAan2D,KAAK2zD,YAAY/Q,KAFR,CAAC,EAAa,IAGhD,KAAK,GACDyT,EAAGlvC,OACHkvC,EAAGnvC,MAAQ,GACf,KAAK,GAED,OADAivC,IACO,CAAC,EAAa,IACzB,KAAK,GAAI,MAAO,CAAC,WAKjCtD,EAAejvD,UAAU0yD,KAAO,SAAUtxD,GACtChF,KAAKm1C,IAAIqgB,YACTx1D,KAAKm1C,IAAIohB,OAAO,EAAG,GACnBv2D,KAAKm1C,IAAIqhB,OAAOx2D,KAAKk1C,OAAOjtB,MAAO,GACnCjoB,KAAKm1C,IAAIqhB,OAAOx2D,KAAKk1C,OAAOjtB,MAAOjoB,KAAKk1C,OAAOhtB,QAC/CloB,KAAKm1C,IAAIqhB,OAAO,EAAGx2D,KAAKk1C,OAAOhtB,QAC/BloB,KAAKm1C,IAAIqhB,OAAO,EAAG,GACnBx2D,KAAKy2D,WAAWzxD,EAAMK,MAAM,GAAG0kD,WAC/B/pD,KAAKm1C,IAAIuhB,aAEb7D,EAAejvD,UAAUV,KAAO,SAAU8B,GACtChF,KAAKm1C,IAAIqgB,YACTx1D,KAAKy2D,WAAWzxD,GAChBhF,KAAKm1C,IAAIuhB,aAEb7D,EAAejvD,UAAU6yD,WAAa,SAAUzxD,GAC5C,IAAI8I,EAAQ9N,KACZgF,EAAM/C,SAAQ,SAAU00D,EAAO1wD,GAC3B,IAAImkB,EAAQ4/B,GAAc2M,GAASA,EAAMvsC,MAAQusC,EACnC,IAAV1wD,EACA6H,EAAMqnC,IAAIohB,OAAOnsC,EAAMhC,EAAGgC,EAAMrD,GAGhCjZ,EAAMqnC,IAAIqhB,OAAOpsC,EAAMhC,EAAGgC,EAAMrD,GAEhCijC,GAAc2M,IACd7oD,EAAMqnC,IAAIyhB,cAAcD,EAAMtN,aAAajhC,EAAGuuC,EAAMtN,aAAatiC,EAAG4vC,EAAMrN,WAAWlhC,EAAGuuC,EAAMrN,WAAWviC,EAAG4vC,EAAMtsC,IAAIjC,EAAGuuC,EAAMtsC,IAAItD,OAI/I8rC,EAAejvD,UAAUizD,aAAe,SAAU3zD,EAAM4zD,EAAS7rB,EAASC,GACtElrC,KAAKkD,KAAKA,GACVlD,KAAKm1C,IAAIM,UAAYqhB,EACrB92D,KAAKm1C,IAAIzpC,UAAUu/B,EAASC,GAC5BlrC,KAAKm1C,IAAIogB,OACTv1D,KAAKm1C,IAAIzpC,WAAWu/B,GAAUC,IAElC2nB,EAAejvD,UAAUmzD,YAAc,SAAUjwB,EAAO7e,EAAOC,GAC3D,IAAIsH,EACJ,GAAIsX,EAAM7e,QAAUA,GAAS6e,EAAM5e,SAAWA,EAC1C,OAAO4e,EAEX,IACIoO,GADqD,QAApC1lB,EAAKxvB,KAAKk1C,OAAOkB,qBAAkC,IAAP5mB,EAAgBA,EAAKojB,UAC3DiB,cAAc,UAKzC,OAJAqB,EAAOjtB,MAAQpS,KAAK4jB,IAAI,EAAGxR,GAC3BitB,EAAOhtB,OAASrS,KAAK4jB,IAAI,EAAGvR,GAClBgtB,EAAOE,WAAW,MACxBC,UAAUvO,EAAO,EAAG,EAAGA,EAAM7e,MAAO6e,EAAM5e,OAAQ,EAAG,EAAGD,EAAOC,GAC5DgtB,GAEX2d,EAAejvD,UAAUozD,sBAAwB,SAAU5b,GACvD,OAAO/0B,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIiG,EAAOyxC,EAASuf,EAAQ3tC,EAAIkG,EAAI6X,EACpC,OAAOxgB,EAAY7mB,MAAM,SAAU25B,GAC/B,OAAQA,EAAGzS,OACP,KAAK,EACDjhB,EAAQm1C,EAAU5K,OAAOnJ,gBAAgB7mC,OAAS,EAClDk3C,EAAU,SAAUrQ,GAChB,IAAIP,EAAOE,EAAKsjB,EAAwCG,EAA+BmL,EAAI3xB,EAAYizB,EAAIC,EAAIC,EAAIC,EAAIniB,EAAQC,EAAKmiB,EAAYR,EAASjB,EAAI3yD,EAAM6kB,EAAMwvC,EAAOtvC,EAAOC,EAAQye,EAAUve,EAAGrB,EAAG+uC,EAAI0B,EAAIC,EAAIC,EAAkBC,EAAMC,EAAM7/C,EAAG8/C,EAC5P,OAAOhxC,EAAY7mB,MAAM,SAAU+1D,GAC/B,OAAQA,EAAG7uC,OACP,KAAK,EACD,GAA+B,IAAzBmgB,EAAgBvnC,KAAuB,MAAO,CAAC,EAAa,GAClEgnC,OAAQ,EACRE,EAAMK,EAAgBL,IACtB+uB,EAAG7uC,MAAQ,EACf,KAAK,EAED,OADA6uC,EAAG3uC,KAAKjlB,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAa80D,EAAOzoD,QAAQ+K,MAAM1P,MAAMm9B,IACpD,KAAK,EAED,OADAF,EAAQivB,EAAG5uC,OACJ,CAAC,EAAa,GACzB,KAAK,EAGD,OAFA4uC,EAAG5uC,OACH8vC,EAAOzoD,QAAQ5N,OAAO6T,MAAM,kCAAoCuyB,GACzD,CAAC,EAAa,GACzB,KAAK,EAUD,OATIF,IACAwjB,EAAKgG,GAA6BlV,EAAWn1C,EAAO,CAChD6gC,EAAM7e,MACN6e,EAAM5e,OACN4e,EAAM7e,MAAQ6e,EAAM5e,SACpBhlB,EAAOonD,EAAG,GAAIliC,EAAIkiC,EAAG,GAAIvjC,EAAIujC,EAAG,GAAIriC,EAAQqiC,EAAG,GAAIpiC,EAASoiC,EAAG,GACnEwM,EAAUG,EAAO9hB,IAAI2iB,cAAcb,EAAOF,YAAYjwB,EAAO7e,EAAOC,GAAS,UAC7E+uC,EAAOJ,aAAa3zD,EAAM4zD,EAAS1uC,EAAGrB,IAEnC,CAAC,EAAa,GACzB,KAAK,EA5oJV,IA6oJ8BsgB,EA7oJvCvnC,MA8oJsB2qD,EAAK6F,GAA6BlV,EAAWn1C,EAAO,CAAC,KAAM,KAAM,OAAQ/C,EAAOunD,EAAG,GAAIriC,EAAIqiC,EAAG,GAAI1jC,EAAI0jC,EAAG,GAAIxiC,EAAQwiC,EAAG,GAAIviC,EAASuiC,EAAG,GACxImL,EAAKhxB,GAA2ByC,EAAgBlP,MAAOlQ,EAAOC,GAAS+b,EAAa2xB,EAAG,GAAIsB,EAAKtB,EAAG,GAAIuB,EAAKvB,EAAG,GAAIwB,EAAKxB,EAAG,GAAIyB,EAAKzB,EAAG,IACvI1gB,EAAStC,SAASiB,cAAc,WACzB5rB,MAAQA,EACfitB,EAAOhtB,OAASA,EAChBitB,EAAMD,EAAOE,WAAW,MACxBkiB,EAAaniB,EAAI4iB,qBAAqBb,EAAIE,EAAID,EAAIE,GAClDtzB,GAAkBsD,EAAgBrD,MAAOC,GAAYhiC,SAAQ,SAAUskC,GACnE,OAAO+wB,EAAWU,aAAazxB,EAAUzC,KAAM5K,GAASqN,EAAUtN,WAEtEkc,EAAIM,UAAY6hB,EAChBniB,EAAIO,SAAS,EAAG,EAAGztB,EAAOC,GACtBD,EAAQ,GAAKC,EAAS,IACtB4uC,EAAUG,EAAO9hB,IAAI2iB,cAAc5iB,EAAQ,UAC3C+hB,EAAOJ,aAAa3zD,EAAM4zD,EAAS1uC,EAAGrB,KA1pJ/D,SAAUkxC,GAC7B,OAA2B,IAApBA,EAAWn4D,KA4pJ2Bo4D,CAAiB7wB,KACtBwuB,EAAKvF,GAA6BlV,EAAWn1C,EAAO,CAChD,KACA,KACA,OACA/C,EAAO2yD,EAAG,GAAI9tC,EAAO8tC,EAAG,GAAI0B,EAAQ1B,EAAG,GAAI5tC,EAAQ4tC,EAAG,GAAI3tC,EAAS2tC,EAAG,GAC1ElvB,EAA+C,IAApCU,EAAgBV,SAASnmC,OAAe,CAACq3B,IAAiBwP,EAAgBV,SACrFve,EAAI6P,GAAiB0O,EAAS,GAAI1e,GAClClB,EAAIkR,GAAiB0O,EAASA,EAASnmC,OAAS,GAAI0nB,GACpD4tC,EAv+JtB,SAAUqC,EAAU/vC,EAAGrB,EAAGkB,EAAOC,GACnD,IAAIsvC,EAAK,EACLC,EAAK,EACT,OAAQU,EAASzxB,MACb,KAAK,EAGsB,IAAnByxB,EAAS1xB,MACT+wB,EAAKC,EAAK5hD,KAAK0f,IAAI1f,KAAKC,IAAIsS,GAAIvS,KAAKC,IAAIsS,EAAIH,GAAQpS,KAAKC,IAAIiR,GAAIlR,KAAKC,IAAIiR,EAAImB,IAEvD,IAAnBiwC,EAAS1xB,QACd+wB,EAAK3hD,KAAK0f,IAAI1f,KAAKC,IAAIsS,GAAIvS,KAAKC,IAAIsS,EAAIH,IACxCwvC,EAAK5hD,KAAK0f,IAAI1f,KAAKC,IAAIiR,GAAIlR,KAAKC,IAAIiR,EAAImB,KAE5C,MACJ,KAAK,EAGD,GAAuB,IAAnBiwC,EAAS1xB,MACT+wB,EAAKC,EAAK5hD,KAAK0f,IAAImQ,GAAStd,EAAGrB,GAAI2e,GAAStd,EAAGrB,EAAImB,GAASwd,GAAStd,EAAIH,EAAOlB,GAAI2e,GAAStd,EAAIH,EAAOlB,EAAImB,SAE3G,GAAuB,IAAnBiwC,EAAS1xB,MAA2B,CAEzC,IAAIr9B,EAAIyM,KAAK0f,IAAI1f,KAAKC,IAAIiR,GAAIlR,KAAKC,IAAIiR,EAAImB,IAAWrS,KAAK0f,IAAI1f,KAAKC,IAAIsS,GAAIvS,KAAKC,IAAIsS,EAAIH,IACrFuH,EAAKoW,GAAW3d,EAAOC,EAAQE,EAAGrB,GAAG,GAAOgf,EAAKvW,EAAG,GAAIwW,EAAKxW,EAAG,GAEpEioC,EAAKruD,GADLouD,EAAK9xB,GAASK,EAAK3d,GAAI4d,EAAKjf,GAAK3d,IAGrC,MACJ,KAAK,EAEsB,IAAnB+uD,EAAS1xB,MACT+wB,EAAKC,EAAK5hD,KAAK4jB,IAAI5jB,KAAKC,IAAIsS,GAAIvS,KAAKC,IAAIsS,EAAIH,GAAQpS,KAAKC,IAAIiR,GAAIlR,KAAKC,IAAIiR,EAAImB,IAEvD,IAAnBiwC,EAAS1xB,QACd+wB,EAAK3hD,KAAK4jB,IAAI5jB,KAAKC,IAAIsS,GAAIvS,KAAKC,IAAIsS,EAAIH,IACxCwvC,EAAK5hD,KAAK4jB,IAAI5jB,KAAKC,IAAIiR,GAAIlR,KAAKC,IAAIiR,EAAImB,KAE5C,MACJ,KAAK,EAGD,GAAuB,IAAnBiwC,EAAS1xB,MACT+wB,EAAKC,EAAK5hD,KAAK4jB,IAAIiM,GAAStd,EAAGrB,GAAI2e,GAAStd,EAAGrB,EAAImB,GAASwd,GAAStd,EAAIH,EAAOlB,GAAI2e,GAAStd,EAAIH,EAAOlB,EAAImB,SAE3G,GAAuB,IAAnBiwC,EAAS1xB,MAA2B,CAErCr9B,EAAIyM,KAAK4jB,IAAI5jB,KAAKC,IAAIiR,GAAIlR,KAAKC,IAAIiR,EAAImB,IAAWrS,KAAK4jB,IAAI5jB,KAAKC,IAAIsS,GAAIvS,KAAKC,IAAIsS,EAAIH,IAAzF,IACI0R,EAAKiM,GAAW3d,EAAOC,EAAQE,EAAGrB,GAAG,GAAQgf,EAAKpM,EAAG,GAAIqM,EAAKrM,EAAG,GAErE89B,EAAKruD,GADLouD,EAAK9xB,GAASK,EAAK3d,GAAI4d,EAAKjf,GAAK3d,KAS7C,OAJIrI,MAAMoJ,QAAQguD,EAASzxB,QACvB8wB,EAAKv/B,GAAiBkgC,EAASzxB,KAAK,GAAIze,GACxCwvC,EAA8B,IAAzBU,EAASzxB,KAAKlmC,OAAey3B,GAAiBkgC,EAASzxB,KAAK,GAAIxe,GAAUsvC,GAE5E,CAACA,EAAIC,GA66JiCW,CAAgB/wB,EAAiBjf,EAAGrB,EAAGkB,EAAOC,GAASsvC,EAAK1B,EAAG,GAAI2B,EAAK3B,EAAG,GAC5E0B,EAAK,GAAKC,EAAK,IACfC,EAAmBT,EAAO9hB,IAAIkjB,qBAAqBtwC,EAAOK,EAAGmvC,EAAQxwC,EAAG,EAAGgB,EAAOK,EAAGmvC,EAAQxwC,EAAGywC,GAChGzzB,GAAkBsD,EAAgBrD,MAAY,EAALwzB,GAAQv1D,SAAQ,SAAUskC,GAC/D,OAAOmxB,EAAiBM,aAAazxB,EAAUzC,KAAM5K,GAASqN,EAAUtN,WAE5Eg+B,EAAO/zD,KAAKA,GACZ+zD,EAAO9hB,IAAIM,UAAYiiB,EACnBF,IAAOC,GACPE,EAAOvc,EAAUvK,OAAO9oB,KAAO,GAAMqzB,EAAUvK,OAAO5oB,MACtD2vC,EAAOxc,EAAUvK,OAAO7oB,IAAM,GAAMozB,EAAUvK,OAAO3oB,OAErD2vC,EAAO,GADP9/C,EAAI0/C,EAAKD,GAETP,EAAO9hB,IAAIke,OACX4D,EAAO9hB,IAAIzpC,UAAUisD,EAAMC,GAC3BX,EAAO9hB,IAAI/F,UAAU,EAAG,EAAG,EAAGr3B,EAAG,EAAG,GACpCk/C,EAAO9hB,IAAIzpC,WAAWisD,GAAOC,GAC7BX,EAAO9hB,IAAIO,SAAS3tB,EAAM8vC,GAAQN,EAAQK,GAAQA,EAAM3vC,EAAOC,EAAS2vC,GACxEZ,EAAO9hB,IAAIue,WAGXuD,EAAO9hB,IAAIogB,SAIvBQ,EAAG7uC,MAAQ,EACf,KAAK,EAED,OADAjhB,IACO,CAAC,QAIxBgxD,EAASj3D,KACTspB,EAAK,EAAGkG,EAAK4rB,EAAU5K,OAAOnJ,gBAAgBhiC,MAAM,GAAG0kD,UACvDpwB,EAAGzS,MAAQ,EACf,KAAK,EACD,OAAMoC,EAAKkG,EAAGhvB,QACd6mC,EAAkB7X,EAAGlG,GACd,CAAC,EAAcouB,EAAQrQ,KAFA,CAAC,EAAa,GAGhD,KAAK,EACD1N,EAAGxS,OACHwS,EAAGzS,MAAQ,EACf,KAAK,EAED,OADAoC,IACO,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,WAKhCupC,EAAejvD,UAAU00D,kBAAoB,SAAUr/B,EAAO8O,EAAMwwB,GAChE,OAAOlyC,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,OAAO6mB,EAAY7mB,MAAM,SAAUwvB,GAI/B,OAHAxvB,KAAKkD,KAAK2sD,GAAmB0I,EAAaxwB,IAC1C/nC,KAAKm1C,IAAIM,UAAYvc,GAASD,GAC9Bj5B,KAAKm1C,IAAIogB,OACF,CAAC,UAIpB1C,EAAejvD,UAAU40D,mBAAqB,SAAUv/B,EAAOhR,EAAO8f,EAAMwwB,GACxE,OAAOlyC,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIy4D,EAAYC,EAChB,OAAO7xC,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EACD,OAAMe,EAAQ,EACP,CAAC,EAAajoB,KAAKs4D,kBAAkBr/B,EAAO8O,EAAMwwB,IADhC,CAAC,EAAa,GAE3C,KAAK,EAED,OADA/oC,EAAGrI,OACI,CAAC,GACZ,KAAK,EAQD,OAPAsxC,EA3+BY,SAAUlL,EAAQuC,GAClD,OAAQA,GACJ,KAAK,EACD,OAAOC,GAAqBxC,EAAOpB,iBAAkBoB,EAAOrC,4BAA6BqC,EAAOnB,kBAAmBmB,EAAOlC,8BAC9H,KAAK,EACD,OAAO0E,GAAqBxC,EAAOnB,kBAAmBmB,EAAOlC,6BAA8BkC,EAAOlB,qBAAsBkB,EAAOhC,iCACnI,KAAK,EACD,OAAOwE,GAAqBxC,EAAOlB,qBAAsBkB,EAAOhC,gCAAiCgC,EAAOjB,oBAAqBiB,EAAO9B,gCACxI,KAAK,EACL,QACI,OAAOsE,GAAqBxC,EAAOjB,oBAAqBiB,EAAO9B,+BAAgC8B,EAAOpB,iBAAkBoB,EAAOrC,8BAi+BtGyN,CAA8BJ,EAAaxwB,GACxD/nC,KAAKkD,KAAKu1D,GACVz4D,KAAKm1C,IAAIM,UAAYvc,GAASD,GAC9Bj5B,KAAKm1C,IAAIogB,OACTmD,EAl+BY,SAAUnL,EAAQuC,GAClD,OAAQA,GACJ,KAAK,EACD,OAAOC,GAAqBxC,EAAO5B,4BAA6B4B,EAAOhB,kBAAmBgB,EAAO3B,6BAA8B2B,EAAOf,oBAC1I,KAAK,EACD,OAAOuD,GAAqBxC,EAAO3B,6BAA8B2B,EAAOf,mBAAoBe,EAAO1B,gCAAiC0B,EAAOd,uBAC/I,KAAK,EACD,OAAOsD,GAAqBxC,EAAO1B,gCAAiC0B,EAAOd,sBAAuBc,EAAOzB,+BAAgCyB,EAAOb,sBACpJ,KAAK,EACL,QACI,OAAOqD,GAAqBxC,EAAOzB,+BAAgCyB,EAAOb,qBAAsBa,EAAO5B,4BAA6B4B,EAAOhB,oBAw9BlHqM,CAA8BL,EAAaxwB,GACxD/nC,KAAKkD,KAAKw1D,GACV14D,KAAKm1C,IAAIogB,OACF,CAAC,WAK5B1C,EAAejvD,UAAUmwD,+BAAiC,SAAUD,GAChE,OAAOztC,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIwwC,EAAQqoB,EAAeC,EAASnI,EAAwB5oB,EAAMze,EAAIyvC,EAAWhU,EAC7Ej3C,EAAQ9N,KACZ,OAAO6mB,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EAWD,OAVAlnB,KAAKkzD,aAAaY,EAAMnF,WAAW,IACnCne,EAASsjB,EAAM1Y,UAAU5K,OACzBqoB,GAAiB7/B,GAAcwX,EAAO5M,kBAAoB4M,EAAOnJ,gBAAgB7mC,OACjFs4D,EAAU,CACN,CAAE/+C,MAAOy2B,EAAO9H,eAAgBzP,MAAOuX,EAAOxI,eAAgB/f,MAAOuoB,EAAOzH,gBAC5E,CAAEhvB,MAAOy2B,EAAO7H,iBAAkB1P,MAAOuX,EAAOvI,iBAAkBhgB,MAAOuoB,EAAOxH,kBAChF,CAAEjvB,MAAOy2B,EAAO5H,kBAAmB3P,MAAOuX,EAAOtI,kBAAmBjgB,MAAOuoB,EAAOvH,mBAClF,CAAElvB,MAAOy2B,EAAO3H,gBAAiB5P,MAAOuX,EAAOrI,gBAAiBlgB,MAAOuoB,EAAOtH,kBAElFynB,EAAyBqI,GAAsCtI,GAA2BlgB,EAAO7M,eAAgB,GAAImwB,EAAMvG,QACrHsL,GAAiBroB,EAAOnC,UAAU7tC,QACxCR,KAAKm1C,IAAIke,OACTrzD,KAAKkD,KAAKytD,GACV3wD,KAAKm1C,IAAIse,OACJz6B,GAAcwX,EAAO5M,mBACtB5jC,KAAKm1C,IAAIM,UAAYvc,GAASsX,EAAO5M,iBACrC5jC,KAAKm1C,IAAIogB,QAEN,CAAC,EAAav1D,KAAKg3D,sBAAsBlD,EAAM1Y,aARE,CAAC,EAAa,GAS1E,KAAK,EACD5rB,EAAGrI,OACHnnB,KAAKm1C,IAAIue,UACTljB,EAAOnC,UACFhpC,MAAM,GACN0kD,UACA9nD,SAAQ,SAAU+oC,GACnBl9B,EAAMqnC,IAAIke,OACV,IArtCEnwD,EAAM+lD,EAAQC,EAAQ+P,EAAQC,EAqtC5BC,EAAgB7L,GAAuBwG,EAAMvG,QAC7C6L,EAAapuB,EAAOuD,MAAQ,EA/sB1C,IAgtBc8qB,GAvtCFn2D,EAutCqCi2D,EAvtC/BlQ,GAutC+CmQ,GAAcpuB,EAAOuD,MAAQ,GAAK,GAAKvD,EAAOsD,OAAO94B,OAvtC5F0zC,GAutCqGle,EAAOuD,MAAQ,GAAK,GAAKvD,EAAOsD,OAAO94B,OAvtCpIyjD,EAutC4IjuB,EAAOsD,OAAO94B,QAAUw1B,EAAOuD,OAAS,EAAI,GAvtChL2qB,EAutCoLluB,EAAOsD,OAAO94B,QAAUw1B,EAAOuD,OAAS,EAAI,GAttCjRrrC,EAAKqG,KAAI,SAAUotD,EAAO1wD,GAC7B,OAAQA,GACJ,KAAK,EACD,OAAO0wD,EAAMxuC,IAAI8gC,EAAQC,GAC7B,KAAK,EACD,OAAOyN,EAAMxuC,IAAI8gC,EAASgQ,EAAQ/P,GACtC,KAAK,EACD,OAAOyN,EAAMxuC,IAAI8gC,EAASgQ,EAAQ/P,EAASgQ,GAC/C,KAAK,EACD,OAAOvC,EAAMxuC,IAAI8gC,EAAQC,EAASgQ,GAE1C,OAAOvC,MA4sCiB3rB,EAAOuD,OACPzgC,EAAM5K,KAAKi2D,GACXrrD,EAAMqnC,IAAIse,OACV3lD,EAAMwoD,KAAK+C,KAGXvrD,EAAMwoD,KAAK6C,GACXrrD,EAAMqnC,IAAIse,OACV3lD,EAAM5K,KAAKm2D,IAEfvrD,EAAMqnC,IAAI0f,cAAgB7pB,EAAOC,QAAQz1B,OAAS4jD,EAClDtrD,EAAMqnC,IAAI2f,cAAgB9pB,EAAOE,QAAQ11B,OACzC1H,EAAMqnC,IAAIyf,YAAc17B,GAAS8R,EAAO/R,OACxCnrB,EAAMqnC,IAAI4f,WAAa/pB,EAAOG,KAAK31B,OACnC1H,EAAMqnC,IAAIM,UAAYzK,EAAOuD,MAAQrV,GAAS8R,EAAO/R,OAAS,gBAC9DnrB,EAAMqnC,IAAIogB,OACVznD,EAAMqnC,IAAIue,aAEdlkC,EAAGtI,MAAQ,EACf,KAAK,EACD6gB,EAAO,EACPze,EAAK,EAAGyvC,EAAYD,EACpBtpC,EAAGtI,MAAQ,EACf,KAAK,EACD,OAAMoC,EAAKyvC,EAAUv4D,OAEE,KADvBukD,EAASgU,EAAUzvC,IACNvP,QAA2Bif,GAAc+rB,EAAO9rB,QAAU8rB,EAAO98B,MAAQ,EAC/D,IAAjB88B,EAAOhrC,MAAkC,CAAC,EAAa,GACtD,CAAC,EAAa/Z,KAAKs5D,yBAAyBvU,EAAO9rB,MAAO8rB,EAAO98B,MAAO8f,EAAM+rB,EAAMvG,OAAQ,IAFF,CAAC,EAAa,IAF1E,CAAC,EAAa,IAKvD,KAAK,EAED,OADA/9B,EAAGrI,OACI,CAAC,EAAa,IACzB,KAAK,EACD,OAAuB,IAAjB49B,EAAOhrC,MAAkC,CAAC,EAAa,GACtD,CAAC,EAAa/Z,KAAKs5D,yBAAyBvU,EAAO9rB,MAAO8rB,EAAO98B,MAAO8f,EAAM+rB,EAAMvG,OAAQ,IACvG,KAAK,EAED,OADA/9B,EAAGrI,OACI,CAAC,EAAa,IACzB,KAAK,EACD,OAAuB,IAAjB49B,EAAOhrC,MAAkC,CAAC,EAAa,GACtD,CAAC,EAAa/Z,KAAKw4D,mBAAmBzT,EAAO9rB,MAAO8rB,EAAO98B,MAAO8f,EAAM+rB,EAAMvG,SACzF,KAAK,EAED,OADA/9B,EAAGrI,OACI,CAAC,EAAa,IACzB,KAAK,EAAG,MAAO,CAAC,EAAannB,KAAKs4D,kBAAkBvT,EAAO9rB,MAAO8O,EAAM+rB,EAAMvG,SAC9E,KAAK,GACD/9B,EAAGrI,OACHqI,EAAGtI,MAAQ,GACf,KAAK,GACD6gB,IACAvY,EAAGtI,MAAQ,GACf,KAAK,GAED,OADAoC,IACO,CAAC,EAAa,GACzB,KAAK,GAAI,MAAO,CAAC,WAKjCupC,EAAejvD,UAAU01D,yBAA2B,SAAUrgC,EAAOhR,EAAO8f,EAAMwwB,EAAax+C,GAC3F,OAAOsM,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIu5D,EAAaC,EAAUC,EAAQC,EAAQC,EAAMC,EAAMp5D,EAAQq5D,EAAYC,EAAaC,EAAaC,EAAYC,EAAgBC,EAAUC,EAAwBC,EAAOC,EAC1K,OAAOxzC,EAAY7mB,MAAM,SAAUwvB,GAiG/B,OAhGAxvB,KAAKm1C,IAAIke,OACTkG,EAlkCe,SAAUhM,EAAQuC,GAC7C,OAAQA,GACJ,KAAK,EACD,OAAOE,GAA2BzC,EAAOxB,oBAAqBwB,EAAOvB,sBACzE,KAAK,EACD,OAAOgE,GAA2BzC,EAAOvB,qBAAsBuB,EAAOtB,yBAC1E,KAAK,EACD,OAAO+D,GAA2BzC,EAAOtB,wBAAyBsB,EAAOrB,wBAC7E,KAAK,EACL,QACI,OAAO8D,GAA2BzC,EAAOrB,uBAAwBqB,EAAOxB,sBAwjCtDuO,CAAyB/B,EAAaxwB,GACpDyxB,EAAW3J,GAAmB0I,EAAaxwB,GAC7B,IAAVhuB,IACA/Z,KAAKkD,KAAKs2D,GACVx5D,KAAKm1C,IAAIse,QAETzJ,GAAcwP,EAAS,KACvBC,EAASD,EAAS,GAAGpvC,MAAMhC,EAC3BsxC,EAASF,EAAS,GAAGpvC,MAAMrD,IAG3B0yC,EAASD,EAAS,GAAGpxC,EACrBsxC,EAASF,EAAS,GAAGzyC,GAErBijC,GAAcwP,EAAS,KACvBG,EAAOH,EAAS,GAAGnvC,IAAIjC,EACvBwxC,EAAOJ,EAAS,GAAGnvC,IAAItD,IAGvB4yC,EAAOH,EAAS,GAAGpxC,EACnBwxC,EAAOJ,EAAS,GAAGzyC,GAGnBvmB,EADS,IAATunC,GAAuB,IAATA,EACLlyB,KAAKC,IAAI2jD,EAASE,GAGlB9jD,KAAKC,IAAI4jD,EAASE,GAE/B55D,KAAKm1C,IAAIqgB,YACK,IAAVz7C,EACA/Z,KAAKy2D,WAAW8C,GAGhBv5D,KAAKy2D,WAAW+C,EAASn0D,MAAM,EAAG,IAEtCw0D,EAAa5xC,EAAQ,EAAY,EAARA,EAAoB,EAARA,EACrC6xC,EAAc7xC,EAAQ,EAAY,EAARA,EAAYA,EACxB,IAAVlO,IACA8/C,EAAa5xC,EACb6xC,EAAc7xC,GAElB8xC,GAAc,EACVv5D,GAAuB,EAAbq5D,EACVE,GAAc,EAETv5D,GAAuB,EAAbq5D,EAAiBC,GAEhCD,GADAG,EAAax5D,GAAU,EAAIq5D,EAAaC,GAExCA,GAAeE,IAGfC,EAAiBpkD,KAAKuoC,OAAO59C,EAASs5D,IAAgBD,EAAaC,IACnEI,GAAY15D,EAASy5D,EAAiBJ,IAAeI,EAAiB,GAEtEH,GADAK,GAAY35D,GAAUy5D,EAAiB,GAAKJ,GAAcI,IAE1C,GAAKpkD,KAAKC,IAAIgkD,EAAcI,GAAYrkD,KAAKC,IAAIgkD,EAAcK,GACrED,EACAC,GAEVJ,IACc,IAAVhgD,EACA/Z,KAAKm1C,IAAIolB,YAAY,CAAC,EAAGV,EAAaC,IAGtC95D,KAAKm1C,IAAIolB,YAAY,CAACV,EAAYC,KAG5B,IAAV//C,GACA/Z,KAAKm1C,IAAIqlB,QAAU,QACnBx6D,KAAKm1C,IAAI8f,UAAYhtC,GAGrBjoB,KAAKm1C,IAAI8f,UAAoB,EAARhtC,EAAY,IAErCjoB,KAAKm1C,IAAI6f,YAAc97B,GAASD,GAChCj5B,KAAKm1C,IAAIslB,SACTz6D,KAAKm1C,IAAIolB,YAAY,IAEP,IAAVxgD,IACIiwC,GAAcwP,EAAS,MACvBY,EAAQZ,EAAS,GACjBa,EAAQb,EAAS,GACjBx5D,KAAKm1C,IAAIqgB,YACTx1D,KAAKy2D,WAAW,CAAC,IAAIzN,GAAOoR,EAAM/vC,IAAIjC,EAAGgyC,EAAM/vC,IAAItD,GAAI,IAAIiiC,GAAOqR,EAAMjwC,MAAMhC,EAAGiyC,EAAMjwC,MAAMrD,KAC7F/mB,KAAKm1C,IAAIslB,UAETzQ,GAAcwP,EAAS,MACvBY,EAAQZ,EAAS,GACjBa,EAAQb,EAAS,GACjBx5D,KAAKm1C,IAAIqgB,YACTx1D,KAAKy2D,WAAW,CAAC,IAAIzN,GAAOoR,EAAM/vC,IAAIjC,EAAGgyC,EAAM/vC,IAAItD,GAAI,IAAIiiC,GAAOqR,EAAMjwC,MAAMhC,EAAGiyC,EAAMjwC,MAAMrD,KAC7F/mB,KAAKm1C,IAAIslB,WAGjBz6D,KAAKm1C,IAAIue,UACF,CAAC,UAIpBb,EAAejvD,UAAUihB,OAAS,SAAUorB,GACxC,OAAO5pB,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAIyD,EACJ,OAAOojB,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EAMD,OALIlnB,KAAKM,QAAQsjC,kBACb5jC,KAAKm1C,IAAIM,UAAYvc,GAASl5B,KAAKM,QAAQsjC,iBAC3C5jC,KAAKm1C,IAAIO,SAAS11C,KAAKM,QAAQ8nB,EAAGpoB,KAAKM,QAAQymB,EAAG/mB,KAAKM,QAAQ2nB,MAAOjoB,KAAKM,QAAQ4nB,SAEvFzkB,EA/tCI,SAAU23C,GAClC,IAAI+T,EAAiB,IAAIZ,GAAanT,EAAW,MAC7CR,EAAO,IAAImT,GAAgBoB,GAC3BF,EAAY,GAGhB,OAFAH,GAAeK,EAAgBvU,EAAMA,EAAMqU,GAC3CQ,GAAiBN,EAAe/T,UAAW6T,GACpCrU,EAytCqB8f,CAAsBzqB,GACvB,CAAC,EAAajwC,KAAK2zD,YAAYlwD,IAC1C,KAAK,EAGD,OAFA+rB,EAAGrI,OACHnnB,KAAKkzD,aAAa,IACX,CAAC,EAAclzD,KAAKk1C,gBAKxC2d,EAv4BwB,CAw4BjCD,IACE8C,GAAqB,SAAUta,GAC/B,OAAIA,aAAqBnB,IAGhBmB,aAAqBrB,IAGrBqB,aAAqB1B,IA51FtB,UA41F+C0B,EAAUt7C,MA71FtD,aA61FwEs7C,EAAUt7C,MAK7Fk5D,GAAwC,SAAUvF,EAAMlG,GACxD,OAAQkG,GACJ,KAAK,EACD,OAAOnG,GAAuBC,GAClC,KAAK,EACD,OAz9CkB,SAAUA,GACpC,MAAO,CACHA,EAAOZ,kBACPY,EAAOX,mBACPW,EAAOV,sBACPU,EAAOT,sBAo9CI6N,CAAwBpN,GACnC,KAAK,EACL,QACI,OAAOC,GAAwBD,KAGvCoI,GAAkB,SAAU7qB,GAC5B,OAAQA,GACJ,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,QACX,KAAK,EACL,QACI,MAAO,SAIf8vB,GAAiB,CAAC,gBAAiB,aACnCrG,GAAoB,SAAUsG,GAC9B,MAAO,qBAAqBpxD,KAAKgnC,OAAO4P,UAAUC,WAC5Cua,EAAaz4D,QAAO,SAAUyqC,GAAc,OAA+C,IAAxC+tB,GAAet3D,QAAQupC,MAC1EguB,GAGNC,GAAuC,SAAUpiB,GAEjD,SAASoiB,EAAsBtsD,EAASlO,GACpC,IAAIwN,EAAQ4qC,EAAO50C,KAAK9D,KAAMwO,EAASlO,IAAYN,KAWnD,OAVA8N,EAAMonC,OAAS50C,EAAQ40C,OAAS50C,EAAQ40C,OAAStC,SAASiB,cAAc,UACxE/lC,EAAMqnC,IAAMrnC,EAAMonC,OAAOE,WAAW,MACpCtnC,EAAMxN,QAAUA,EAChBwN,EAAMonC,OAAOjtB,MAAQpS,KAAKuoC,MAAM99C,EAAQ2nB,MAAQ3nB,EAAQyyD,OACxDjlD,EAAMonC,OAAOhtB,OAASrS,KAAKuoC,MAAM99C,EAAQ4nB,OAAS5nB,EAAQyyD,OAC1DjlD,EAAMonC,OAAOn7B,MAAMkO,MAAQ3nB,EAAQ2nB,MAAQ,KAC3Cna,EAAMonC,OAAOn7B,MAAMmO,OAAS5nB,EAAQ4nB,OAAS,KAC7Cpa,EAAMqnC,IAAI4d,MAAMjlD,EAAMxN,QAAQyyD,MAAOjlD,EAAMxN,QAAQyyD,OACnDjlD,EAAMqnC,IAAIzpC,WAAWpL,EAAQ8nB,GAAI9nB,EAAQymB,GACzCjZ,EAAMU,QAAQ5N,OAAOC,MAAM,oDAAsDP,EAAQ2nB,MAAQ,IAAM3nB,EAAQ4nB,OAAS,OAAS5nB,EAAQ8nB,EAAI,IAAM9nB,EAAQymB,EAAI,gBAAkBzmB,EAAQyyD,OAClLjlD,EAsBX,OAnCAkY,EAAU80C,EAAuBpiB,GAejCoiB,EAAsBl3D,UAAUihB,OAAS,SAAUorB,GAC/C,OAAO5pB,EAAUrmB,UAAM,OAAQ,GAAQ,WACnC,IAAI2yC,EAAKO,EACT,OAAOrsB,EAAY7mB,MAAM,SAAUwvB,GAC/B,OAAQA,EAAGtI,OACP,KAAK,EAED,OADAyrB,EAAMF,GAAuBzyC,KAAKM,QAAQ2nB,MAAQjoB,KAAKM,QAAQyyD,MAAO/yD,KAAKM,QAAQ4nB,OAASloB,KAAKM,QAAQyyD,MAAO/yD,KAAKM,QAAQyyD,MAAO/yD,KAAKM,QAAQyyD,MAAO9iB,GACjJ,CAAC,EAAa8qB,GAAkBpoB,IAC3C,KAAK,EAOD,OANAO,EAAM1jB,EAAGrI,OACLnnB,KAAKM,QAAQsjC,kBACb5jC,KAAKm1C,IAAIM,UAAYvc,GAASl5B,KAAKM,QAAQsjC,iBAC3C5jC,KAAKm1C,IAAIO,SAAS,EAAG,EAAG11C,KAAKM,QAAQ2nB,MAAQjoB,KAAKM,QAAQyyD,MAAO/yD,KAAKM,QAAQ4nB,OAASloB,KAAKM,QAAQyyD,QAExG/yD,KAAKm1C,IAAIE,UAAUnC,GAAMlzC,KAAKM,QAAQ8nB,EAAIpoB,KAAKM,QAAQyyD,OAAQ/yD,KAAKM,QAAQymB,EAAI/mB,KAAKM,QAAQyyD,OACtF,CAAC,EAAc/yD,KAAKk1C,gBAKxC4lB,EApC+B,CAqCxClI,IACEmI,GAAoB,SAAUpoB,GAC9B,OAAO,IAAI/vC,SAAQ,SAAUC,EAASC,GAClC,IAAIowC,EAAM,IAAIC,MACdD,EAAIE,OAAS,WACTvwC,EAAQqwC,IAEZA,EAAIG,QAAUvwC,EACdowC,EAAII,IAAM,oCAAsCC,oBAAmB,IAAIC,eAAgBC,kBAAkBd,QAI7GvyC,GAAwB,WACxB,SAASA,EAAOovB,GACZ,IAAIwrC,EAAKxrC,EAAGwrC,GAAIC,EAAUzrC,EAAGyrC,QAC7Bj7D,KAAKg7D,GAAKA,EACVh7D,KAAKi7D,QAAUA,EACfj7D,KAAKoqB,MAAQ8wC,KAAKC,MAuEtB,OApEA/6D,EAAOwD,UAAU/C,MAAQ,WAErB,IADA,IAAId,EAAO,GACFupB,EAAK,EAAGA,EAAK/oB,UAAUC,OAAQ8oB,IACpCvpB,EAAKupB,GAAM/oB,UAAU+oB,GAErBtpB,KAAKi7D,UAEiB,qBAAXxqB,QAA0BA,OAAOvwC,SAAoC,oBAAlBA,QAAQW,MAElEX,QAAQW,MAAMV,MAAMD,QAASwnB,EAAc,CAAC1nB,KAAKg7D,GAAIh7D,KAAKo7D,UAAY,MAAOr7D,IAG7EC,KAAK8hD,KAAK3hD,MAAMH,KAAMD,KAIlCK,EAAOwD,UAAUw3D,QAAU,WACvB,OAAOF,KAAKC,MAAQn7D,KAAKoqB,OAG7BhqB,EAAOwD,UAAUk+C,KAAO,WAEpB,IADA,IAAI/hD,EAAO,GACFupB,EAAK,EAAGA,EAAK/oB,UAAUC,OAAQ8oB,IACpCvpB,EAAKupB,GAAM/oB,UAAU+oB,GAErBtpB,KAAKi7D,SAEiB,qBAAXxqB,QAA0BA,OAAOvwC,SAAmC,oBAAjBA,QAAQ4hD,MAElE5hD,QAAQ4hD,KAAK3hD,MAAMD,QAASwnB,EAAc,CAAC1nB,KAAKg7D,GAAIh7D,KAAKo7D,UAAY,MAAOr7D,KAKxFK,EAAOwD,UAAU0H,KAAO,WAEpB,IADA,IAAIvL,EAAO,GACFupB,EAAK,EAAGA,EAAK/oB,UAAUC,OAAQ8oB,IACpCvpB,EAAKupB,GAAM/oB,UAAU+oB,GAErBtpB,KAAKi7D,UAEiB,qBAAXxqB,QAA0BA,OAAOvwC,SAAmC,oBAAjBA,QAAQoL,KAElEpL,QAAQoL,KAAKnL,MAAMD,QAASwnB,EAAc,CAAC1nB,KAAKg7D,GAAIh7D,KAAKo7D,UAAY,MAAOr7D,IAG5EC,KAAK8hD,KAAK3hD,MAAMH,KAAMD,KAKlCK,EAAOwD,UAAU6Q,MAAQ,WAErB,IADA,IAAI1U,EAAO,GACFupB,EAAK,EAAGA,EAAK/oB,UAAUC,OAAQ8oB,IACpCvpB,EAAKupB,GAAM/oB,UAAU+oB,GAErBtpB,KAAKi7D,UAEiB,qBAAXxqB,QAA0BA,OAAOvwC,SAAoC,oBAAlBA,QAAQuU,MAElEvU,QAAQuU,MAAMtU,MAAMD,QAASwnB,EAAc,CAAC1nB,KAAKg7D,GAAIh7D,KAAKo7D,UAAY,MAAOr7D,IAG7EC,KAAK8hD,KAAK3hD,MAAMH,KAAMD,KAIlCK,EAAOi7D,UAAY,GACZj7D,EA5EgB,GA+EvBk7D,GAAyB,WACzB,SAASA,EAAQh7D,EAASmoB,GACtB,IAAI+G,EACJxvB,KAAKyoB,aAAeA,EACpBzoB,KAAKu7D,aAAe,IAAMD,EAAQE,gBAClCx7D,KAAKY,OAAS,IAAIR,GAAO,CAAE46D,GAAIh7D,KAAKu7D,aAAcN,QAAS36D,EAAQm7D,UACnEz7D,KAAKuZ,MAAiC,QAAxBiW,EAAKlvB,EAAQiZ,aAA0B,IAAPiW,EAAgBA,EAAK,IAAIu3B,GAAM/mD,KAAMM,GAGvF,OADAg7D,EAAQE,cAAgB,EACjBF,EATiB,GAgBN,qBAAX7qB,QACP0V,GAAaU,WAAWpW,QAE5B,IAAIirB,GAAgB,SAAUzrB,EAASjyB,GAAQ,OAAOqI,OAAU,OAAQ,OAAQ,GAAQ,WACpF,IAAI+vB,EAAesJ,EAAaic,EAAiBC,EAAgBC,EAAepzC,EAAcja,EAASstD,EAAwBC,EAAcC,EAAgBC,EAAe7gB,EAAW5rB,EAAIvH,EAAOC,EAAQH,EAAMC,EAAK4b,EAAiBs4B,EAAehnB,EAAkB0F,EACnQjhB,EAAI2wB,EAAIG,EAAImL,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI8F,EAAIC,EAAIC,EAAIC,EACpE,OAAOz1C,EAAY7mB,MAAM,SAAUu8D,GAC/B,OAAQA,EAAGr1C,OACP,KAAK,EACD,IAAK+oB,GAA8B,kBAAZA,EACnB,MAAO,CAAC,EAAcrtC,QAAQE,OAAO,+CAGzC,KADAszC,EAAgBnG,EAAQmG,eAEpB,MAAM,IAAIp2B,MAAM,yCAGpB,KADA0/B,EAActJ,EAAcsJ,aAExB,MAAM,IAAI1/B,MAAM,wCA4BpB,OA1BA27C,EAAkB,CACd1Z,WAAuC,QAA1BtoB,EAAK3b,EAAKikC,kBAA+B,IAAPtoB,GAAgBA,EAC/DkuB,aAA2C,QAA5ByC,EAAKtsC,EAAK6pC,oBAAiC,IAAPyC,EAAgBA,EAAK,KACxE5C,MAAO1pC,EAAK0pC,MACZJ,QAAiC,QAAvBmD,EAAKzsC,EAAKspC,eAA4B,IAAPmD,GAAgBA,GAE7DmR,EAAiBz1C,EAAS,CAAEs1C,QAAiC,QAAvB7F,EAAK53C,EAAKy9C,eAA4B,IAAP7F,GAAgBA,EAAWr8C,MAAOyE,EAAKzE,OAASoiD,GACrHE,EAAgB,CACZW,YAAyC,QAA3B3G,EAAK73C,EAAKw+C,mBAAgC,IAAP3G,EAAgBA,EAAKnW,EAAY+c,WAClFC,aAA2C,QAA5B5G,EAAK93C,EAAK0+C,oBAAiC,IAAP5G,EAAgBA,EAAKpW,EAAYid,YACpFld,QAAiC,QAAvBsW,EAAK/3C,EAAKyhC,eAA4B,IAAPsW,EAAgBA,EAAKrW,EAAYC,YAC1EC,QAAiC,QAAvBoW,EAAKh4C,EAAK4hC,eAA4B,IAAPoW,EAAgBA,EAAKtW,EAAYG,aAE9Ep3B,EAAe,IAAIX,EAAO+zC,EAAcpc,QAASoc,EAAcjc,QAASic,EAAcW,YAAaX,EAAca,cACjHluD,EAAU,IAAI8sD,GAAQM,EAAgBnzC,GACtCqzC,EAAgE,QAAtC7F,EAAKj4C,EAAK89C,8BAA2C,IAAP7F,GAAgBA,EACxF8F,EAAe,CACX9Z,WAAuC,QAA1BiU,EAAKl4C,EAAKikC,kBAA+B,IAAPiU,GAAgBA,EAC/DhW,QAASliC,EAAKkiC,QACd6C,eAAgB/kC,EAAK+kC,eACrBlB,aAAcia,EACdjZ,WAAYiZ,GAEhBttD,EAAQ5N,OAAOC,MAAM,qCAAuC4nB,EAAaR,MAAQ,IAAMQ,EAAaP,OAAS,iBAAmBO,EAAaV,KAAO,KAAOU,EAAaT,KACxKg0C,EAAiB,IAAI9c,GAAe1wC,EAASyhC,EAAS8rB,IACtDE,EAAgBD,EAAezb,wBAIxB,CAAC,EAAayb,EAAe1c,SAASlJ,EAAe3tB,IAFjD,CAAC,EAAc7lB,QAAQE,OAAO,4CAG7C,KAAK,EAeD,OAdAs4C,EAAYmhB,EAAGp1C,OACfqI,EAAK4sB,GAAc6f,IA73F2B,SA63FKA,EA73FjBzgB,QAplJ1B,SAAU5I,GAC9B,IAAI9rB,EAAO8rB,EAAS9rB,KAChBuzB,EAAkBzH,EAASyH,gBAC/B,IAAKvzB,IAASuzB,EACV,MAAM,IAAIr6B,MAAM,+BAEpB,IAAIiI,EAAQpS,KAAK4jB,IAAI5jB,KAAK4jB,IAAI3S,EAAK81C,YAAaviB,EAAgBuiB,aAAc/mD,KAAK4jB,IAAI3S,EAAK07B,YAAanI,EAAgBmI,aAAc3sC,KAAK4jB,IAAI3S,EAAK+1C,YAAaxiB,EAAgBwiB,cAC9K30C,EAASrS,KAAK4jB,IAAI5jB,KAAK4jB,IAAI3S,EAAKg2C,aAAcziB,EAAgByiB,cAAejnD,KAAK4jB,IAAI3S,EAAK27B,aAAcpI,EAAgBoI,cAAe5sC,KAAK4jB,IAAI3S,EAAKi2C,aAAc1iB,EAAgB0iB,eACxL,OAAO,IAAIj1C,EAAO,EAAG,EAAGG,EAAOC,GA08Ob80C,CAAkBf,EAAc7lB,eAChCttB,EAAYta,EAASytD,GAAgBh0C,EAAQuH,EAAGvH,MAAOC,EAASsH,EAAGtH,OAAQH,EAAOyH,EAAGzH,KAAMC,EAAMwH,EAAGxH,IAC1G4b,EAAkBq5B,GAAqBzuD,EAASytD,EAAej+C,EAAK4lB,iBACpEs4B,EAAgB,CACZhnB,OAAQl3B,EAAKk3B,OACbtR,gBAAiBA,EACjBmvB,MAAkG,QAA1FqD,EAA2B,QAArBD,EAAKn4C,EAAK+0C,aAA0B,IAAPoD,EAAgBA,EAAKzW,EAAYwd,wBAAqC,IAAP9G,EAAgBA,EAAK,EAC/HhuC,GAAsB,QAAjBiuC,EAAKr4C,EAAKoK,SAAsB,IAAPiuC,EAAgBA,EAAK,GAAKtuC,EACxDhB,GAAsB,QAAjBo1C,EAAKn+C,EAAK+I,SAAsB,IAAPo1C,EAAgBA,EAAK,GAAKn0C,EACxDC,MAA6B,QAArBm0C,EAAKp+C,EAAKiK,aAA0B,IAAPm0C,EAAgBA,EAAKvmD,KAAKmY,KAAK/F,GACpEC,OAA+B,QAAtBm0C,EAAKr+C,EAAKkK,cAA2B,IAAPm0C,EAAgBA,EAAKxmD,KAAKmY,KAAK9F,IAErE4zC,GACLttD,EAAQ5N,OAAOC,MAAM,mDAEd,CAAC,EADG,IAAIi6D,GAAsBtsD,EAAS0tD,GAChBr3C,OAAOo3C,KAHD,CAAC,EAAa,GAItD,KAAK,EAED,OADA/mB,EAASqnB,EAAGp1C,OACL,CAAC,EAAa,GACzB,KAAK,EASD,OARA3Y,EAAQ5N,OAAOC,MAAM,uCAAyCknB,EAAO,IAAMC,EAAM,cAAgBC,EAAQ,IAAMC,EAAS,6BACxH1Z,EAAQ5N,OAAOC,MAAM,wBACrB+5C,EAAOL,GAAU/rC,EAASytD,GACtBr4B,IAAoBgX,EAAKpK,OAAO5M,kBAChCgX,EAAKpK,OAAO5M,gBAAkB9K,GAAOC,aAEzCvqB,EAAQ5N,OAAOC,MAAM,oCAAsCq7D,EAAc9zC,EAAI,IAAM8zC,EAAcn1C,EAAI,cAAgBm1C,EAAcj0C,MAAQ,IAAMi0C,EAAch0C,QAExJ,CAAC,EADG,IAAI2qC,GAAerkD,EAAS0tD,GACTr3C,OAAO+1B,IACzC,KAAK,EACD1F,EAASqnB,EAAGp1C,OACZo1C,EAAGr1C,MAAQ,EACf,KAAK,EAOD,OANoC,QAA/Bo1C,EAAKt+C,EAAKm/C,uBAAoC,IAAPb,GAAgBA,KACnDpd,GAAe0F,QAAQxJ,IACxB5sC,EAAQ5N,OAAO6T,MAAM,gEAG7BjG,EAAQ5N,OAAOC,MAAM,sBACd,CAAC,EAAcq0C,WAIlC+nB,GAAuB,SAAUzuD,EAASyhC,EAASmtB,GACnD,IAAIhnB,EAAgBnG,EAAQmG,cAExBoE,EAA0BpE,EAAciE,gBACtC/f,GAAW9rB,EAASkiC,iBAAiB0F,EAAciE,iBAAiBzW,iBACpE9K,GAAOC,YACT0hB,EAAsBrE,EAActvB,KAClCwT,GAAW9rB,EAASkiC,iBAAiB0F,EAActvB,MAAM8c,iBACzD9K,GAAOC,YACTskC,EAA4D,kBAA5BD,EAC9B9iC,GAAW9rB,EAAS4uD,GACQ,OAA5BA,EACItkC,GAAOC,YACP,WACV,OAAOkX,IAAYmG,EAAciE,gBAC3BrhB,GAAcwhB,GACVxhB,GAAcyhB,GACV4iB,EACA5iB,EACJD,EACJ6iB,GAGV,OA3HkB,SAAUptB,EAAS3vC,GAEjC,YADgB,IAAZA,IAAsBA,EAAU,IAC7Bo7D,GAAczrB,EAAS3vC,IAnhP8Cg9D,I,kCCNpF,uPAMA,SAASC,EAAgBr6D,GACvB,MAA0B,MAAnBA,EAAKuN,OAAO,GAAavN,EAAO,IAAMA,EAE/C,SAASs6D,EAAkBt6D,GACzB,MAA0B,MAAnBA,EAAKuN,OAAO,GAAavN,EAAK6lD,OAAO,GAAK7lD,EAKnD,SAASu6D,EAAcv6D,EAAMvC,GAC3B,OAJF,SAAqBuC,EAAMvC,GACzB,OAA4D,IAArDuC,EAAKsH,cAAclH,QAAQ3C,EAAO6J,iBAAuE,IAA/C,MAAMlH,QAAQJ,EAAKuN,OAAO9P,EAAOH,SAG3Fk9D,CAAYx6D,EAAMvC,GAAUuC,EAAK6lD,OAAOpoD,EAAOH,QAAU0C,EAElE,SAASy6D,EAAmBz6D,GAC1B,MAAwC,MAAjCA,EAAKuN,OAAOvN,EAAK1C,OAAS,GAAa0C,EAAKmC,MAAM,GAAI,GAAKnC,EA0BpE,SAAS06D,EAAW9W,GAClB,IAAI+W,EAAW/W,EAAS+W,SACpBC,EAAShX,EAASgX,OAClBC,EAAOjX,EAASiX,KAChB76D,EAAO26D,GAAY,IAGvB,OAFIC,GAAqB,MAAXA,IAAgB56D,GAA6B,MAArB46D,EAAOrtD,OAAO,GAAaqtD,EAAS,IAAMA,GAC5EC,GAAiB,MAATA,IAAc76D,GAA2B,MAAnB66D,EAAKttD,OAAO,GAAastD,EAAO,IAAMA,GACjE76D,EAGT,SAAS86D,EAAe96D,EAAM0Y,EAAOvY,EAAK46D,GACxC,IAAInX,EAEgB,kBAAT5jD,GAET4jD,EAvCJ,SAAmB5jD,GACjB,IAAI26D,EAAW36D,GAAQ,IACnB46D,EAAS,GACTC,EAAO,GACPG,EAAYL,EAASv6D,QAAQ,MAEd,IAAf46D,IACFH,EAAOF,EAAS9U,OAAOmV,GACvBL,EAAWA,EAAS9U,OAAO,EAAGmV,IAGhC,IAAIC,EAAcN,EAASv6D,QAAQ,KAOnC,OALqB,IAAjB66D,IACFL,EAASD,EAAS9U,OAAOoV,GACzBN,EAAWA,EAAS9U,OAAO,EAAGoV,IAGzB,CACLN,SAAUA,EACVC,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,GAkBfK,CAAUl7D,IACZ0Y,MAAQA,QAISnb,KAD1BqmD,EAAW,YAAS,GAAI5jD,IACX26D,WAAwB/W,EAAS+W,SAAW,IAErD/W,EAASgX,OACuB,MAA9BhX,EAASgX,OAAOrtD,OAAO,KAAYq2C,EAASgX,OAAS,IAAMhX,EAASgX,QAExEhX,EAASgX,OAAS,GAGhBhX,EAASiX,KACqB,MAA5BjX,EAASiX,KAAKttD,OAAO,KAAYq2C,EAASiX,KAAO,IAAMjX,EAASiX,MAEpEjX,EAASiX,KAAO,QAGJt9D,IAAVmb,QAA0Cnb,IAAnBqmD,EAASlrC,QAAqBkrC,EAASlrC,MAAQA,IAG5E,IACEkrC,EAAS+W,SAAWQ,UAAUvX,EAAS+W,UACvC,MAAO7kD,GACP,MAAIA,aAAaslD,SACT,IAAIA,SAAS,aAAexX,EAAS+W,SAAxB,iFAEb7kD,EAoBV,OAhBI3V,IAAKyjD,EAASzjD,IAAMA,GAEpB46D,EAEGnX,EAAS+W,SAE6B,MAAhC/W,EAAS+W,SAASptD,OAAO,KAClCq2C,EAAS+W,SAAW,kBAAgB/W,EAAS+W,SAAUI,EAAgBJ,WAFvE/W,EAAS+W,SAAWI,EAAgBJ,SAMjC/W,EAAS+W,WACZ/W,EAAS+W,SAAW,KAIjB/W,EAET,SAASyX,EAAkBj2D,EAAGud,GAC5B,OAAOvd,EAAEu1D,WAAah4C,EAAEg4C,UAAYv1D,EAAEw1D,SAAWj4C,EAAEi4C,QAAUx1D,EAAEy1D,OAASl4C,EAAEk4C,MAAQz1D,EAAEjF,MAAQwiB,EAAExiB,KAAO,kBAAWiF,EAAEsT,MAAOiK,EAAEjK,OAG7H,SAAS4iD,IACP,IAAIC,EAAS,KAiCb,IAAIC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6B/X,EAAUgY,EAAQC,EAAqBhjD,GAIlE,GAAc,MAAV0iD,EAAgB,CAClB,IAAIr4D,EAA2B,oBAAXq4D,EAAwBA,EAAO3X,EAAUgY,GAAUL,EAEjD,kBAAXr4D,EAC0B,oBAAxB24D,EACTA,EAAoB34D,EAAQ2V,GAG5BA,GAAS,GAIXA,GAAoB,IAAX3V,QAGX2V,GAAS,IAmCXijD,eA7BF,SAAwB1lD,GACtB,IAAI2lD,GAAW,EAEf,SAASl9D,IACHk9D,GAAU3lD,EAAGnZ,WAAM,EAAQI,WAIjC,OADAm+D,EAAUv8D,KAAKJ,GACR,WACLk9D,GAAW,EACXP,EAAYA,EAAUt8D,QAAO,SAAUwjD,GACrC,OAAOA,IAAS7jD,OAmBpBm9D,gBAdF,WACE,IAAK,IAAIp+D,EAAOP,UAAUC,OAAQT,EAAO,IAAIgB,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EjB,EAAKiB,GAAQT,UAAUS,GAGzB09D,EAAUz8D,SAAQ,SAAUF,GAC1B,OAAOA,EAAS5B,WAAM,EAAQJ,QAYpC,IAAIo/D,IAAiC,qBAAX1uB,SAA0BA,OAAOmC,WAAYnC,OAAOmC,SAASiB,eACvF,SAASurB,EAAgBC,EAAStjD,GAChCA,EAAS00B,OAAO6uB,QAAQD,IA2C1B,SAASE,IACP,IACE,OAAO9uB,OAAO+uB,QAAQ5jD,OAAS,GAC/B,MAAO5C,GAGP,MAAO,IASX,SAASymD,EAAqBC,QACd,IAAVA,IACFA,EAAQ,IAGTP,GAAsG,mBAAU,GACjH,IAAIQ,EAAgBlvB,OAAO+uB,QACvBI,EAvDN,WACE,IAAIC,EAAKpvB,OAAO4P,UAAUC,UAC1B,QAAmC,IAA9Buf,EAAGv8D,QAAQ,gBAAuD,IAA/Bu8D,EAAGv8D,QAAQ,iBAA2D,IAAjCu8D,EAAGv8D,QAAQ,mBAAqD,IAA1Bu8D,EAAGv8D,QAAQ,YAAqD,IAAjCu8D,EAAGv8D,QAAQ,oBACtJmtC,OAAO+uB,SAAW,cAAe/uB,OAAO+uB,SAoD3BM,GAChBC,KA7CsD,IAAnDtvB,OAAO4P,UAAUC,UAAUh9C,QAAQ,YA8CtC08D,EAASN,EACTO,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOjB,oBAC/BA,OAAgD,IAA1BoB,EAAmCf,EAAkBe,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAWZ,EAAMY,SAAW3C,EAAmBJ,EAAgBmC,EAAMY,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAIC,EAAOD,GAAgB,GACvBn9D,EAAMo9D,EAAKp9D,IACXuY,EAAQ6kD,EAAK7kD,MAEb8kD,EAAmBjwB,OAAOqW,SAI1B5jD,EAHWw9D,EAAiB7C,SACnB6C,EAAiB5C,OACnB4C,EAAiB3C,KAI5B,OADIuC,IAAUp9D,EAAOu6D,EAAcv6D,EAAMo9D,IAClCtC,EAAe96D,EAAM0Y,EAAOvY,GAGrC,SAASs9D,IACP,OAAO9qD,KAAKqN,SAASxc,SAAS,IAAIqiD,OAAO,EAAGsX,GAG9C,IAAIO,EAAoBpC,IAExB,SAASqC,EAASC,GAChB,YAAStB,EAASsB,GAElBtB,EAAQh/D,OAASm/D,EAAcn/D,OAC/BogE,EAAkB1B,gBAAgBM,EAAQ1Y,SAAU0Y,EAAQV,QAG9D,SAASiC,EAAe7+D,IApE1B,SAAmCA,GACjC,YAAuBzB,IAAhByB,EAAM0Z,QAAiE,IAA1CykC,UAAUC,UAAUh9C,QAAQ,UAqE1D09D,CAA0B9+D,IAC9B++D,EAAUV,EAAer+D,EAAM0Z,QAGjC,SAASslD,IACPD,EAAUV,EAAehB,MAG3B,IAAI4B,GAAe,EAEnB,SAASF,EAAUna,GACjB,GAAIqa,EACFA,GAAe,EACfN,QACK,CAELD,EAAkB/B,oBAAoB/X,EADzB,MAC2CiY,GAAqB,SAAUqC,GACjFA,EACFP,EAAS,CACP/B,OAJO,MAKPhY,SAAUA,IASpB,SAAmBua,GACjB,IAAIC,EAAa9B,EAAQ1Y,SAIrBya,EAAUC,EAAQl+D,QAAQg+D,EAAWj+D,MACxB,IAAbk+D,IAAgBA,EAAU,GAC9B,IAAIE,EAAYD,EAAQl+D,QAAQ+9D,EAAah+D,MAC1B,IAAfo+D,IAAkBA,EAAY,GAClC,IAAI7sC,EAAQ2sC,EAAUE,EAElB7sC,IACFusC,GAAe,EACfO,EAAG9sC,IAnBC+sC,CAAU7a,OAuBlB,IAAI8a,EAAkBrB,EAAehB,KACjCiC,EAAU,CAACI,EAAgBv+D,KAE/B,SAASw+D,EAAW/a,GAClB,OAAOwZ,EAAW1C,EAAW9W,GAuE/B,SAAS4a,EAAGtvD,GACVutD,EAAc+B,GAAGtvD,GAWnB,IAAI0vD,EAAgB,EAEpB,SAASC,EAAkBntC,GAGH,KAFtBktC,GAAiBltC,IAEoB,IAAVA,GACzB6b,OAAO2X,iBA7MO,WA6MyB2Y,GACnChB,GAAyBtvB,OAAO2X,iBA7MpB,aA6MsD8Y,IAC3C,IAAlBY,IACTrxB,OAAOuxB,oBAhNO,WAgN4BjB,GACtChB,GAAyBtvB,OAAOuxB,oBAhNpB,aAgNyDd,IAI7E,IAAIe,GAAY,EAiChB,IAAIzC,EAAU,CACZh/D,OAAQm/D,EAAcn/D,OACtBs+D,OAAQ,MACRhY,SAAU8a,EACVC,WAAYA,EACZ1/D,KApIF,SAAce,EAAM0Y,GAElB,IACIkrC,EAAWkX,EAAe96D,EAAM0Y,EAAO+kD,IAAanB,EAAQ1Y,UAChE8Z,EAAkB/B,oBAAoB/X,EAFzB,OAE2CiY,GAAqB,SAAUqC,GACrF,GAAKA,EAAL,CACA,IAAI7a,EAAOsb,EAAW/a,GAClBzjD,EAAMyjD,EAASzjD,IACfuY,EAAQkrC,EAASlrC,MAErB,GAAIgkD,EAMF,GALAD,EAAcuC,UAAU,CACtB7+D,IAAKA,EACLuY,MAAOA,GACN,KAAM2qC,GAEL2Z,EACFzvB,OAAOqW,SAASP,KAAOA,MAClB,CACL,IAAIn3B,EAAYoyC,EAAQl+D,QAAQk8D,EAAQ1Y,SAASzjD,KAC7C8+D,EAAWX,EAAQn8D,MAAM,EAAG+pB,EAAY,GAC5C+yC,EAAShgE,KAAK2kD,EAASzjD,KACvBm+D,EAAUW,EACVtB,EAAS,CACP/B,OAtBK,OAuBLhY,SAAUA,SAKdrW,OAAOqW,SAASP,KAAOA,OAuG3BhjD,QAlGF,SAAiBL,EAAM0Y,GAErB,IACIkrC,EAAWkX,EAAe96D,EAAM0Y,EAAO+kD,IAAanB,EAAQ1Y,UAChE8Z,EAAkB/B,oBAAoB/X,EAFzB,UAE2CiY,GAAqB,SAAUqC,GACrF,GAAKA,EAAL,CACA,IAAI7a,EAAOsb,EAAW/a,GAClBzjD,EAAMyjD,EAASzjD,IACfuY,EAAQkrC,EAASlrC,MAErB,GAAIgkD,EAMF,GALAD,EAAcyC,aAAa,CACzB/+D,IAAKA,EACLuY,MAAOA,GACN,KAAM2qC,GAEL2Z,EACFzvB,OAAOqW,SAASvjD,QAAQgjD,OACnB,CACL,IAAIn3B,EAAYoyC,EAAQl+D,QAAQk8D,EAAQ1Y,SAASzjD,MAC9B,IAAf+rB,IAAkBoyC,EAAQpyC,GAAa03B,EAASzjD,KACpDw9D,EAAS,CACP/B,OApBK,UAqBLhY,SAAUA,SAKdrW,OAAOqW,SAASvjD,QAAQgjD,QAuE5Bmb,GAAIA,EACJW,OA/DF,WACEX,GAAI,IA+DJY,UA5DF,WACEZ,EAAG,IA4DH9qC,MAzCF,SAAe6nC,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8D,EAAU3B,EAAkBjC,UAAUF,GAO1C,OALKwD,IACHF,EAAkB,GAClBE,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZF,GAAmB,IAGdQ,MAwBTC,OApBF,SAAgBzgE,GACd,IAAI0gE,EAAW7B,EAAkB5B,eAAej9D,GAEhD,OADAggE,EAAkB,GACX,WACLA,GAAmB,GACnBU,OAiBJ,OAAOjD,EAGT,IACIkD,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoB1/D,GAC9B,MAA0B,MAAnBA,EAAKuN,OAAO,GAAavN,EAAO,KAAOs6D,EAAkBt6D,IAElE2/D,WAAY,SAAoB3/D,GAC9B,MAA0B,MAAnBA,EAAKuN,OAAO,GAAavN,EAAK6lD,OAAO,GAAK7lD,IAGrD4/D,QAAS,CACPF,WAAYpF,EACZqF,WAAYtF,GAEdwF,MAAO,CACLH,WAAYrF,EACZsF,WAAYtF,IAIhB,SAASyF,EAAUh8B,GACjB,IAAIk3B,EAAYl3B,EAAI1jC,QAAQ,KAC5B,OAAsB,IAAf46D,EAAmBl3B,EAAMA,EAAI3hC,MAAM,EAAG64D,GAG/C,SAAS+E,IAGP,IAAI1c,EAAO9V,OAAOqW,SAASP,KACvB2X,EAAY3X,EAAKjjD,QAAQ,KAC7B,OAAsB,IAAf46D,EAAmB,GAAK3X,EAAK58C,UAAUu0D,EAAY,GAO5D,SAASgF,EAAgBhgE,GACvButC,OAAOqW,SAASvjD,QAAQy/D,EAAUvyB,OAAOqW,SAASP,MAAQ,IAAMrjD,GAGlE,SAASigE,EAAkBzD,QACX,IAAVA,IACFA,EAAQ,IAGTP,GAAmG,mBAAU,GAC9G,IAAIQ,EAAgBlvB,OAAO+uB,QAEvBQ,GAnUGvvB,OAAO4P,UAAUC,UAAUh9C,QAAQ,WAmU7Bo8D,GACTS,EAAwBH,EAAOjB,oBAC/BA,OAAgD,IAA1BoB,EAAmCf,EAAkBe,EAC3EiD,EAAkBpD,EAAOqD,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClD9C,EAAWZ,EAAMY,SAAW3C,EAAmBJ,EAAgBmC,EAAMY,WAAa,GAClFgD,EAAwBZ,EAAeW,GACvCT,EAAaU,EAAsBV,WACnCC,EAAaS,EAAsBT,WAEvC,SAAStC,IACP,IAAIr9D,EAAO2/D,EAAWI,KAGtB,OADI3C,IAAUp9D,EAAOu6D,EAAcv6D,EAAMo9D,IAClCtC,EAAe96D,GAGxB,IAAI09D,EAAoBpC,IAExB,SAASqC,EAASC,GAChB,YAAStB,EAASsB,GAElBtB,EAAQh/D,OAASm/D,EAAcn/D,OAC/BogE,EAAkB1B,gBAAgBM,EAAQ1Y,SAAU0Y,EAAQV,QAG9D,IAAIqC,GAAe,EACfoC,EAAa,KAMjB,SAASrC,IACP,IAL4B54D,EAAGud,EAK3B3iB,EAAO+/D,IACPO,EAAcZ,EAAW1/D,GAE7B,GAAIA,IAASsgE,EAEXN,EAAgBM,OACX,CACL,IAAI1c,EAAWyZ,IACXkD,EAAejE,EAAQ1Y,SAC3B,IAAKqa,IAdwBt7C,EAc2BihC,GAd9Bx+C,EAcgBm7D,GAbnC5F,WAAah4C,EAAEg4C,UAAYv1D,EAAEw1D,SAAWj4C,EAAEi4C,QAAUx1D,EAAEy1D,OAASl4C,EAAEk4C,MAaL,OAEnE,GAAIwF,IAAe3F,EAAW9W,GAAW,OAEzCyc,EAAa,KAKjB,SAAmBzc,GACjB,GAAIqa,EACFA,GAAe,EACfN,QACK,CAELD,EAAkB/B,oBAAoB/X,EADzB,MAC2CiY,GAAqB,SAAUqC,GACjFA,EACFP,EAAS,CACP/B,OAJO,MAKPhY,SAAUA,IASpB,SAAmBua,GACjB,IAAIC,EAAa9B,EAAQ1Y,SAIrBya,EAAUmC,EAASC,YAAY/F,EAAW0D,KAC7B,IAAbC,IAAgBA,EAAU,GAC9B,IAAIE,EAAYiC,EAASC,YAAY/F,EAAWyD,KAC7B,IAAfI,IAAkBA,EAAY,GAClC,IAAI7sC,EAAQ2sC,EAAUE,EAElB7sC,IACFusC,GAAe,EACfO,EAAG9sC,IAnBC+sC,CAAU7a,OAjBdma,CAAUna,IAyCd,IAAI5jD,EAAO+/D,IACPO,EAAcZ,EAAW1/D,GACzBA,IAASsgE,GAAaN,EAAgBM,GAC1C,IAAI5B,EAAkBrB,IAClBmD,EAAW,CAAC9F,EAAWgE,IAuE3B,SAASF,EAAGtvD,GAEVutD,EAAc+B,GAAGtvD,GAWnB,IAAI0vD,EAAgB,EAEpB,SAASC,EAAkBntC,GAGH,KAFtBktC,GAAiBltC,IAEoB,IAAVA,EACzB6b,OAAO2X,iBAxOW,aAwOyB8Y,GAChB,IAAlBY,GACTrxB,OAAOuxB,oBA1OW,aA0O4Bd,GAIlD,IAAIe,GAAY,EAiChB,IAAIzC,EAAU,CACZh/D,OAAQm/D,EAAcn/D,OACtBs+D,OAAQ,MACRhY,SAAU8a,EACVC,WAnIF,SAAoB/a,GAClB,IAAI8c,EAAUhxB,SAASixB,cAAc,QACjCtd,EAAO,GAMX,OAJIqd,GAAWA,EAAQzzB,aAAa,UAClCoW,EAAOyc,EAAUvyB,OAAOqW,SAASP,OAG5BA,EAAO,IAAMqc,EAAWtC,EAAW1C,EAAW9W,KA4HrD3kD,KAzHF,SAAce,EAAM0Y,GAElB,IACIkrC,EAAWkX,EAAe96D,OAAMzC,OAAWA,EAAW++D,EAAQ1Y,UAClE8Z,EAAkB/B,oBAAoB/X,EAFzB,OAE2CiY,GAAqB,SAAUqC,GACrF,GAAKA,EAAL,CACA,IAAIl+D,EAAO06D,EAAW9W,GAClB0c,EAAcZ,EAAWtC,EAAWp9D,GAGxC,GAFkB+/D,MAAkBO,EAEnB,CAIfD,EAAargE,EAxIrB,SAAsBA,GACpButC,OAAOqW,SAASiX,KAAO76D,EAwIjB4gE,CAAaN,GACb,IAAIp0C,EAAYs0C,EAASC,YAAY/F,EAAW4B,EAAQ1Y,WACpDid,EAAYL,EAASr+D,MAAM,EAAG+pB,EAAY,GAC9C20C,EAAU5hE,KAAKe,GACfwgE,EAAWK,EACXlD,EAAS,CACP/B,OAnBO,OAoBPhY,SAAUA,SAIZ+Z,SAgGJt9D,QA3FF,SAAiBL,EAAM0Y,GAErB,IACIkrC,EAAWkX,EAAe96D,OAAMzC,OAAWA,EAAW++D,EAAQ1Y,UAClE8Z,EAAkB/B,oBAAoB/X,EAFzB,UAE2CiY,GAAqB,SAAUqC,GACrF,GAAKA,EAAL,CACA,IAAIl+D,EAAO06D,EAAW9W,GAClB0c,EAAcZ,EAAWtC,EAAWp9D,GACtB+/D,MAAkBO,IAMlCD,EAAargE,EACbggE,EAAgBM,IAGlB,IAAIp0C,EAAYs0C,EAASpgE,QAAQs6D,EAAW4B,EAAQ1Y,YACjC,IAAf13B,IAAkBs0C,EAASt0C,GAAalsB,GAC5C29D,EAAS,CACP/B,OAnBS,UAoBThY,SAAUA,SAsEd4a,GAAIA,EACJW,OA7DF,WACEX,GAAI,IA6DJY,UA1DF,WACEZ,EAAG,IA0DH9qC,MAzCF,SAAe6nC,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8D,EAAU3B,EAAkBjC,UAAUF,GAO1C,OALKwD,IACHF,EAAkB,GAClBE,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZF,GAAmB,IAGdQ,MAwBTC,OApBF,SAAgBzgE,GACd,IAAI0gE,EAAW7B,EAAkB5B,eAAej9D,GAEhD,OADAggE,EAAkB,GACX,WACLA,GAAmB,GACnBU,OAiBJ,OAAOjD,EAGT,SAASwE,EAAM5xD,EAAG6xD,EAAYC,GAC5B,OAAOruD,KAAK0f,IAAI1f,KAAK4jB,IAAIrnB,EAAG6xD,GAAaC,GAO3C,SAASC,EAAoBzE,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAIM,EAASN,EACTX,EAAsBiB,EAAOjB,oBAC7BqF,EAAwBpE,EAAOqE,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBtE,EAAOuE,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDlE,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CQ,EAAoBpC,IAExB,SAASqC,EAASC,GAChB,YAAStB,EAASsB,GAElBtB,EAAQh/D,OAASg/D,EAAQgF,QAAQhkE,OACjCogE,EAAkB1B,gBAAgBM,EAAQ1Y,SAAU0Y,EAAQV,QAG9D,SAAS6B,IACP,OAAO9qD,KAAKqN,SAASxc,SAAS,IAAIqiD,OAAO,EAAGsX,GAG9C,IAAIp6D,EAAQ+9D,EAAMO,EAAc,EAAGF,EAAe7jE,OAAS,GACvDgkE,EAAUH,EAAe96D,KAAI,SAAU4zC,GACzC,OAAmC6gB,EAAe7gB,OAAO18C,EAAjC,kBAAV08C,EAAsDwjB,IAAgDxjB,EAAM95C,KAAOs9D,QAG/HkB,EAAajE,EAyCjB,SAAS8D,EAAGtvD,GACV,IAAImlC,EAAYysB,EAAMxE,EAAQv5D,MAAQmM,EAAG,EAAGotD,EAAQgF,QAAQhkE,OAAS,GAEjEsmD,EAAW0Y,EAAQgF,QAAQjtB,GAC/BqpB,EAAkB/B,oBAAoB/X,EAFzB,MAE2CiY,GAAqB,SAAUqC,GACjFA,EACFP,EAAS,CACP/B,OALO,MAMPhY,SAAUA,EACV7gD,MAAOsxC,IAKTspB,OA8BN,IAAIrB,EAAU,CACZh/D,OAAQgkE,EAAQhkE,OAChBs+D,OAAQ,MACRhY,SAAU0d,EAAQv+D,GAClBA,MAAOA,EACPu+D,QAASA,EACT3C,WAAYA,EACZ1/D,KA1FF,SAAce,EAAM0Y,GAElB,IACIkrC,EAAWkX,EAAe96D,EAAM0Y,EAAO+kD,IAAanB,EAAQ1Y,UAChE8Z,EAAkB/B,oBAAoB/X,EAFzB,OAE2CiY,GAAqB,SAAUqC,GACrF,GAAKA,EAAL,CACA,IACI7pB,EADYioB,EAAQv5D,MACI,EACxBw+D,EAAcjF,EAAQgF,QAAQn/D,MAAM,GAEpCo/D,EAAYjkE,OAAS+2C,EACvBktB,EAAYv+D,OAAOqxC,EAAWktB,EAAYjkE,OAAS+2C,EAAWuP,GAE9D2d,EAAYtiE,KAAK2kD,GAGnB+Z,EAAS,CACP/B,OAfS,OAgBThY,SAAUA,EACV7gD,MAAOsxC,EACPitB,QAASC,SAuEblhE,QAlEF,SAAiBL,EAAM0Y,GAErB,IACIkrC,EAAWkX,EAAe96D,EAAM0Y,EAAO+kD,IAAanB,EAAQ1Y,UAChE8Z,EAAkB/B,oBAAoB/X,EAFzB,UAE2CiY,GAAqB,SAAUqC,GAChFA,IACL5B,EAAQgF,QAAQhF,EAAQv5D,OAAS6gD,EACjC+Z,EAAS,CACP/B,OANS,UAOThY,SAAUA,SA0Dd4a,GAAIA,EACJW,OAnCF,WACEX,GAAI,IAmCJY,UAhCF,WACEZ,EAAG,IAgCHgD,MA7BF,SAAetyD,GACb,IAAImlC,EAAYioB,EAAQv5D,MAAQmM,EAChC,OAAOmlC,GAAa,GAAKA,EAAYioB,EAAQgF,QAAQhkE,QA4BrDo2B,MAzBF,SAAe6nC,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJmC,EAAkBjC,UAAUF,IAqBnC+D,OAlBF,SAAgBzgE,GACd,OAAO6+D,EAAkB5B,eAAej9D,KAmB1C,OAAOy9D,I,qBCn5BT,OAKA,SAAU/uB,EAAQmC,EAAU+xB,EAAYlkE,GACtC,aAEF,IA+FI2lB,EA/FAw+C,EAAkB,CAAC,GAAI,SAAU,MAAO,KAAM,KAAM,KACpDC,EAAejyB,EAASiB,cAAc,OAItCta,EAAQ1jB,KAAK0jB,MACbzjB,EAAMD,KAAKC,IACXqlD,EAAMD,KAAKC,IASf,SAAS2J,EAAkBxrD,EAAIkvC,EAASh6C,GACpC,OAAO8O,WAAWynD,EAAOzrD,EAAI9K,GAAUg6C,GAY3C,SAASwc,EAAextC,EAAKle,EAAI9K,GAC7B,QAAIzN,MAAMoJ,QAAQqtB,KACdytC,EAAKztC,EAAKhpB,EAAQ8K,GAAK9K,IAChB,GAWf,SAASy2D,EAAKlhE,EAAKyjB,EAAUhZ,GACzB,IAAItJ,EAEJ,GAAKnB,EAIL,GAAIA,EAAI9B,QACJ8B,EAAI9B,QAAQulB,EAAUhZ,QACnB,QAvDX,IAuDezK,EAAIvD,OAEX,IADA0E,EAAI,EACGA,EAAInB,EAAIvD,QACXgnB,EAAS1jB,KAAK0K,EAASzK,EAAImB,GAAIA,EAAGnB,GAClCmB,SAGJ,IAAKA,KAAKnB,EACNA,EAAIF,eAAeqB,IAAMsiB,EAAS1jB,KAAK0K,EAASzK,EAAImB,GAAIA,EAAGnB,GAYvE,SAASmhE,EAAUC,EAAQp9D,EAAMs3D,GAC7B,IAAI+F,EAAqB,sBAAwBr9D,EAAO,KAAOs3D,EAAU,SACzE,OAAO,WACH,IAAIrmD,EAAI,IAAIgH,MAAM,mBACdvc,EAAQuV,GAAKA,EAAEvV,MAAQuV,EAAEvV,MAAMF,QAAQ,kBAAmB,IACzDA,QAAQ,cAAe,IACvBA,QAAQ,6BAA8B,kBAAoB,sBAE3DmJ,EAAM+jC,EAAOvwC,UAAYuwC,EAAOvwC,QAAQoL,MAAQmlC,EAAOvwC,QAAQwM,KAInE,OAHIA,GACAA,EAAI5I,KAAK2sC,EAAOvwC,QAASklE,EAAoB3hE,GAE1C0hE,EAAOhlE,MAAMH,KAAMO,YAa9B6lB,EADyB,oBAAlBziB,OAAOyiB,OACL,SAAgBpf,GACrB,QArGR,IAqGYA,GAAmC,OAAXA,EACxB,MAAM,IAAI0b,UAAU,8CAIxB,IADA,IAAIziB,EAAS0D,OAAOqD,GACXf,EAAQ,EAAGA,EAAQ1F,UAAUC,OAAQyF,IAAS,CACnD,IAAIgB,EAAS1G,UAAU0F,GACvB,QA5GZ,IA4GgBgB,GAAmC,OAAXA,EACxB,IAAK,IAAIo+D,KAAWp+D,EACZA,EAAOpD,eAAewhE,KACtBplE,EAAOolE,GAAWp+D,EAAOo+D,IAKzC,OAAOplE,GAGF0D,OAAOyiB,OAWpB,IAAIk/C,EAASJ,GAAU,SAAgBpb,EAAMxW,EAAKiyB,GAG9C,IAFA,IAAI99D,EAAO9D,OAAO8D,KAAK6rC,GACnBpuC,EAAI,EACDA,EAAIuC,EAAKjH,UACP+kE,GAAUA,QAtIvB,IAsIgCzb,EAAKriD,EAAKvC,OAC9B4kD,EAAKriD,EAAKvC,IAAMouC,EAAI7rC,EAAKvC,KAE7BA,IAEJ,OAAO4kD,IACR,SAAU,iBASTyb,EAAQL,GAAU,SAAepb,EAAMxW,GACvC,OAAOgyB,EAAOxb,EAAMxW,GAAK,KAC1B,QAAS,iBAQZ,SAASkyB,EAAQ5iB,EAAO6iB,EAAMC,GAC1B,IACIC,EADAC,EAAQH,EAAK7hE,WAGjB+hE,EAAS/iB,EAAMh/C,UAAYD,OAAO8E,OAAOm9D,IAClC1/C,YAAc08B,EACrB+iB,EAAOjtB,OAASktB,EAEZF,GACAt/C,EAAOu/C,EAAQD,GAUvB,SAASX,EAAOzrD,EAAI9K,GAChB,OAAO,WACH,OAAO8K,EAAGnZ,MAAMqO,EAASjO,YAWjC,SAASslE,EAASluD,EAAK5X,GACnB,MA1LgB,mBA0LL4X,EACAA,EAAIxX,MAAMJ,GAAOA,EAAK,SAjMrC,EAiMkEA,GAEvD4X,EASX,SAASmuD,EAAYC,EAAMC,GACvB,YA7MJ,IA6MYD,EAAsBC,EAAOD,EASzC,SAASE,EAAkBj/D,EAAQyoB,EAAOy2C,GACtCjB,EAAKkB,EAAS12C,IAAQ,SAAS3vB,GAC3BkH,EAAOohD,iBAAiBtoD,EAAMomE,GAAS,MAU/C,SAASE,EAAqBp/D,EAAQyoB,EAAOy2C,GACzCjB,EAAKkB,EAAS12C,IAAQ,SAAS3vB,GAC3BkH,EAAOg7D,oBAAoBliE,EAAMomE,GAAS,MAWlD,SAASG,EAAUt9C,EAAMmP,GACrB,KAAOnP,GAAM,CACT,GAAIA,GAAQmP,EACR,OAAO,EAEXnP,EAAOA,EAAKwtB,WAEhB,OAAO,EASX,SAAS+vB,EAAM7hE,EAAKiD,GAChB,OAAOjD,EAAInB,QAAQoE,IAAS,EAQhC,SAASy+D,EAAS1hE,GACd,OAAOA,EAAIqT,OAAO9V,MAAM,QAU5B,SAASukE,EAAQjzB,EAAK5rC,EAAM8+D,GACxB,GAAIlzB,EAAIhwC,UAAYkjE,EAChB,OAAOlzB,EAAIhwC,QAAQoE,GAGnB,IADA,IAAIxC,EAAI,EACDA,EAAIouC,EAAI9yC,QAAQ,CACnB,GAAKgmE,GAAalzB,EAAIpuC,GAAGshE,IAAc9+D,IAAW8+D,GAAalzB,EAAIpuC,KAAOwC,EACtE,OAAOxC,EAEXA,IAEJ,OAAQ,EAShB,SAASuhE,EAAQ1iE,GACb,OAAOhD,MAAM6C,UAAUyB,MAAMvB,KAAKC,EAAK,GAU3C,SAAS2iE,EAAYpzB,EAAKjwC,EAAK8R,GAK3B,IAJA,IAAI43B,EAAU,GACVtW,EAAS,GACTvxB,EAAI,EAEDA,EAAIouC,EAAI9yC,QAAQ,CACnB,IAAImX,EAAMtU,EAAMiwC,EAAIpuC,GAAG7B,GAAOiwC,EAAIpuC,GAC9BqhE,EAAQ9vC,EAAQ9e,GAAO,GACvBo1B,EAAQ5qC,KAAKmxC,EAAIpuC,IAErBuxB,EAAOvxB,GAAKyS,EACZzS,IAaJ,OAVIiQ,IAII43B,EAHC1pC,EAGS0pC,EAAQ53B,MAAK,SAAyB7M,EAAGud,GAC/C,OAAOvd,EAAEjF,GAAOwiB,EAAExiB,MAHZ0pC,EAAQ53B,QAQnB43B,EASX,SAAS45B,EAAS5iE,EAAK4hD,GAKnB,IAJA,IAAIhlD,EAAQuG,EACR0/D,EAAYjhB,EAAS,GAAGj1C,cAAgBi1C,EAAStgD,MAAM,GAEvDH,EAAI,EACDA,EAAI0/D,EAAgBpkE,QAAQ,CAI/B,IAFA0G,GADAvG,EAASikE,EAAgB1/D,IACPvE,EAASimE,EAAYjhB,KAE3B5hD,EACR,OAAOmD,EAEXhC,KASR,IAAI2hE,EAAY,EAUhB,SAASC,EAAoB72B,GACzB,IAAI82B,EAAM92B,EAAQmG,eAAiBnG,EACnC,OAAQ82B,EAAIrnB,aAAeqnB,EAAIC,cAAgBv2B,EAGnD,IAEIw2B,EAAiB,iBAAkBx2B,EACnCy2B,OA1XJ,IA0X6BP,EAASl2B,EAAQ,gBAC1C02B,EAAqBF,GAJN,wCAIoCx9D,KAAK42C,UAAUC,WAwBlE8mB,EAAW,CAAC,IAAK,KACjBC,EAAkB,CAAC,UAAW,WASlC,SAASC,EAAMC,EAASxrD,GACpB,IAAIyrD,EAAOxnE,KACXA,KAAKunE,QAAUA,EACfvnE,KAAK+b,SAAWA,EAChB/b,KAAKiwC,QAAUs3B,EAAQt3B,QACvBjwC,KAAKgH,OAASugE,EAAQjnE,QAAQmnE,YAI9BznE,KAAK0nE,WAAa,SAASC,GACnB9B,EAAS0B,EAAQjnE,QAAQsnE,OAAQ,CAACL,KAClCC,EAAKtB,QAAQyB,IAIrB3nE,KAAKU,OA4DT,SAASmnE,EAAaN,EAASO,EAAWnuB,GACtC,IAAIouB,EAAcpuB,EAAMquB,SAASxnE,OAC7BynE,EAAqBtuB,EAAMuuB,gBAAgB1nE,OAC3C2nE,EAvGU,EAuGCL,GAA4BC,EAAcE,IAAuB,EAC5EG,EAAuB,GAAZN,GAA2CC,EAAcE,IAAuB,EAE/FtuB,EAAMwuB,UAAYA,EAClBxuB,EAAMyuB,UAAYA,EAEdD,IACAZ,EAAQc,QAAU,IAKtB1uB,EAAMmuB,UAAYA,EAiBtB,SAA0BP,EAAS5tB,GAC/B,IAAI0uB,EAAUd,EAAQc,QAClBL,EAAWruB,EAAMquB,SACjBM,EAAiBN,EAASxnE,OAGzB6nE,EAAQE,aACTF,EAAQE,WAAaC,EAAqB7uB,IAI1C2uB,EAAiB,IAAMD,EAAQI,cAC/BJ,EAAQI,cAAgBD,EAAqB7uB,GACnB,IAAnB2uB,IACPD,EAAQI,eAAgB,GAG5B,IAAIF,EAAaF,EAAQE,WACrBE,EAAgBJ,EAAQI,cACxBC,EAAeD,EAAgBA,EAAcE,OAASJ,EAAWI,OAEjEA,EAAShvB,EAAMgvB,OAASC,EAAUZ,GACtCruB,EAAMkvB,UAAY1N,IAClBxhB,EAAMmvB,UAAYnvB,EAAMkvB,UAAYN,EAAWM,UAE/ClvB,EAAMxhB,MAAQ4wC,EAASL,EAAcC,GACrChvB,EAAMjU,SAAWsjC,EAAYN,EAAcC,GA0B/C,SAAwBN,EAAS1uB,GAC7B,IAAIgvB,EAAShvB,EAAMgvB,OACfj0B,EAAS2zB,EAAQY,aAAe,GAChCC,EAAYb,EAAQa,WAAa,GACjCC,EAAYd,EAAQc,WAAa,GA5LvB,IA8LVxvB,EAAMmuB,WA5LE,IA4L2BqB,EAAUrB,YAC7CoB,EAAYb,EAAQa,UAAY,CAC5B9gD,EAAG+gD,EAAUlgB,QAAU,EACvBliC,EAAGoiD,EAAUjgB,QAAU,GAG3BxU,EAAS2zB,EAAQY,YAAc,CAC3B7gD,EAAGugD,EAAOvgD,EACVrB,EAAG4hD,EAAO5hD,IAIlB4yB,EAAMsP,OAASigB,EAAU9gD,GAAKugD,EAAOvgD,EAAIssB,EAAOtsB,GAChDuxB,EAAMuP,OAASggB,EAAUniD,GAAK4hD,EAAO5hD,EAAI2tB,EAAO3tB,GA3ChDqiD,CAAef,EAAS1uB,GACxBA,EAAM0vB,gBAAkBC,EAAa3vB,EAAMsP,OAAQtP,EAAMuP,QAEzD,IAAIqgB,EAAkBC,EAAY7vB,EAAMmvB,UAAWnvB,EAAMsP,OAAQtP,EAAMuP,QACvEvP,EAAM8vB,iBAAmBF,EAAgBnhD,EACzCuxB,EAAM+vB,iBAAmBH,EAAgBxiD,EACzC4yB,EAAM4vB,gBAAmBzzD,EAAIyzD,EAAgBnhD,GAAKtS,EAAIyzD,EAAgBxiD,GAAMwiD,EAAgBnhD,EAAImhD,EAAgBxiD,EAEhH4yB,EAAMoZ,MAAQ0V,GAkNAr+C,EAlNyBq+C,EAAcT,SAkNhC39C,EAlN0C29C,EAmNxDgB,EAAY3+C,EAAI,GAAIA,EAAI,GAAIg9C,GAAmB2B,EAAY5+C,EAAM,GAAIA,EAAM,GAAIi9C,IAnNX,EAC3E1tB,EAAMgwB,SAAWlB,EAsMrB,SAAqBr+C,EAAOC,GACxB,OAAO0+C,EAAS1+C,EAAI,GAAIA,EAAI,GAAIg9C,GAAmB0B,EAAS3+C,EAAM,GAAIA,EAAM,GAAIi9C,GAvM/CuC,CAAYnB,EAAcT,SAAUA,GAAY,EAEjFruB,EAAMkwB,YAAexB,EAAQc,UAAsCxvB,EAAMquB,SAASxnE,OAC9E6nE,EAAQc,UAAUU,YAAelwB,EAAMquB,SAASxnE,OAAS6nE,EAAQc,UAAUU,YADtClwB,EAAMquB,SAASxnE,OAwC5D,SAAkC6nE,EAAS1uB,GACvC,IAEImwB,EAAUC,EAAWC,EAAW7gC,EAFhChF,EAAOkkC,EAAQ4B,cAAgBtwB,EAC/BmvB,EAAYnvB,EAAMkvB,UAAY1kC,EAAK0kC,UAGvC,GArNe,GAqNXlvB,EAAMmuB,YAA8BgB,EA1NrB,SAlYvB,IA4lB4E3kC,EAAK2lC,UAAyB,CAClG,IAAI7gB,EAAStP,EAAMsP,OAAS9kB,EAAK8kB,OAC7BC,EAASvP,EAAMuP,OAAS/kB,EAAK+kB,OAE7BvhD,EAAI6hE,EAAYV,EAAW7f,EAAQC,GACvC6gB,EAAYpiE,EAAEygB,EACd4hD,EAAYriE,EAAEof,EACd+iD,EAAYh0D,EAAInO,EAAEygB,GAAKtS,EAAInO,EAAEof,GAAMpf,EAAEygB,EAAIzgB,EAAEof,EAC3CoiB,EAAYmgC,EAAargB,EAAQC,GAEjCmf,EAAQ4B,aAAetwB,OAGvBmwB,EAAW3lC,EAAK2lC,SAChBC,EAAY5lC,EAAK4lC,UACjBC,EAAY7lC,EAAK6lC,UACjB7gC,EAAYhF,EAAKgF,UAGrBwQ,EAAMmwB,SAAWA,EACjBnwB,EAAMowB,UAAYA,EAClBpwB,EAAMqwB,UAAYA,EAClBrwB,EAAMxQ,UAAYA,EAhElB+gC,CAAyB7B,EAAS1uB,GA4MtC,IAAkBvvB,EAAOC,EAzMrB,IAAIrjB,EAASugE,EAAQt3B,QACjBo2B,EAAU1sB,EAAMwwB,SAASnjE,OAAQA,KACjCA,EAAS2yC,EAAMwwB,SAASnjE,QAE5B2yC,EAAM3yC,OAASA,EA/DfojE,CAAiB7C,EAAS5tB,GAG1B4tB,EAAQhhE,KAAK,eAAgBozC,GAE7B4tB,EAAQ8C,UAAU1wB,GAClB4tB,EAAQc,QAAQc,UAAYxvB,EA0HhC,SAAS6uB,EAAqB7uB,GAK1B,IAFA,IAAIquB,EAAW,GACX9iE,EAAI,EACDA,EAAIy0C,EAAMquB,SAASxnE,QACtBwnE,EAAS9iE,GAAK,CACVolE,QAAS/wC,EAAMogB,EAAMquB,SAAS9iE,GAAGolE,SACjCC,QAAShxC,EAAMogB,EAAMquB,SAAS9iE,GAAGqlE,UAErCrlE,IAGJ,MAAO,CACH2jE,UAAW1N,IACX6M,SAAUA,EACVW,OAAQC,EAAUZ,GAClB/e,OAAQtP,EAAMsP,OACdC,OAAQvP,EAAMuP,QAStB,SAAS0f,EAAUZ,GACf,IAAIM,EAAiBN,EAASxnE,OAG9B,GAAuB,IAAnB8nE,EACA,MAAO,CACHlgD,EAAGmR,EAAMyuC,EAAS,GAAGsC,SACrBvjD,EAAGwS,EAAMyuC,EAAS,GAAGuC,UAK7B,IADA,IAAIniD,EAAI,EAAGrB,EAAI,EAAG7hB,EAAI,EACfA,EAAIojE,GACPlgD,GAAK4/C,EAAS9iE,GAAGolE,QACjBvjD,GAAKihD,EAAS9iE,GAAGqlE,QACjBrlE,IAGJ,MAAO,CACHkjB,EAAGmR,EAAMnR,EAAIkgD,GACbvhD,EAAGwS,EAAMxS,EAAIuhD,IAWrB,SAASkB,EAAYV,EAAW1gD,EAAGrB,GAC/B,MAAO,CACHqB,EAAGA,EAAI0gD,GAAa,EACpB/hD,EAAGA,EAAI+hD,GAAa,GAU5B,SAASQ,EAAalhD,EAAGrB,GACrB,OAAIqB,IAAMrB,EAzTO,EA6TbjR,EAAIsS,IAAMtS,EAAIiR,GACPqB,EAAI,EA7TE,EACC,EA8TXrB,EAAI,EA7TI,EACE,GAsUrB,SAASiiD,EAAYzwB,EAAIC,EAAIknB,GACpBA,IACDA,EAAQ0H,GAEZ,IAAIh/C,EAAIowB,EAAGknB,EAAM,IAAMnnB,EAAGmnB,EAAM,IAC5B34C,EAAIyxB,EAAGknB,EAAM,IAAMnnB,EAAGmnB,EAAM,IAEhC,OAAO7pD,KAAK8vB,KAAMvd,EAAIA,EAAMrB,EAAIA,GAUpC,SAASgiD,EAASxwB,EAAIC,EAAIknB,GACjBA,IACDA,EAAQ0H,GAEZ,IAAIh/C,EAAIowB,EAAGknB,EAAM,IAAMnnB,EAAGmnB,EAAM,IAC5B34C,EAAIyxB,EAAGknB,EAAM,IAAMnnB,EAAGmnB,EAAM,IAChC,OAA0B,IAAnB7pD,KAAKovB,MAAMle,EAAGqB,GAAWvS,KAAKwiB,GA1TzCivC,EAAM1jE,UAAY,CAKdsiE,QAAS,aAKTxlE,KAAM,WACFV,KAAKwqE,MAAQvE,EAAkBjmE,KAAKiwC,QAASjwC,KAAKwqE,KAAMxqE,KAAK0nE,YAC7D1nE,KAAKyqE,UAAYxE,EAAkBjmE,KAAKgH,OAAQhH,KAAKyqE,SAAUzqE,KAAK0nE,YACpE1nE,KAAK0qE,OAASzE,EAAkBa,EAAoB9mE,KAAKiwC,SAAUjwC,KAAK0qE,MAAO1qE,KAAK0nE,aAMxF9iB,QAAS,WACL5kD,KAAKwqE,MAAQpE,EAAqBpmE,KAAKiwC,QAASjwC,KAAKwqE,KAAMxqE,KAAK0nE,YAChE1nE,KAAKyqE,UAAYrE,EAAqBpmE,KAAKgH,OAAQhH,KAAKyqE,SAAUzqE,KAAK0nE,YACvE1nE,KAAK0qE,OAAStE,EAAqBU,EAAoB9mE,KAAKiwC,SAAUjwC,KAAK0qE,MAAO1qE,KAAK0nE,cA4T/F,IAAIiD,EAAkB,CAClBC,UA/Xc,EAgYdC,UA/Xa,EAgYbC,QA/XY,GA0YhB,SAASC,IACL/qE,KAAKwqE,KATkB,YAUvBxqE,KAAK0qE,MATiB,oBAWtB1qE,KAAKgrE,SAAU,EAEf1D,EAAMnnE,MAAMH,KAAMO,WAGtBilE,EAAQuF,EAAYzD,EAAO,CAKvBpB,QAAS,SAAmByB,GACxB,IAAIG,EAAY6C,EAAgBhD,EAAG7nE,MA3ZzB,EA8ZNgoE,GAAyC,IAAdH,EAAGsD,SAC9BjrE,KAAKgrE,SAAU,GA9ZV,EAiaLlD,GAAuC,IAAbH,EAAGuD,QAC7BpD,EAjaI,GAqaH9nE,KAAKgrE,UAraF,EAyaJlD,IACA9nE,KAAKgrE,SAAU,GAGnBhrE,KAAK+b,SAAS/b,KAAKunE,QAASO,EAAW,CACnCE,SAAU,CAACL,GACXO,gBAAiB,CAACP,GAClBwD,YAvbW,QAwbXhB,SAAUxC,QAKtB,IAAIyD,EAAoB,CACpBC,YAzbc,EA0bdC,YAzba,EA0bbC,UAzbY,EA0bZC,cAzbe,EA0bfC,WA1be,GA8bfC,EAAyB,CACzBp5D,EAzcmB,QA0cnBC,EAzciB,MA0cjBC,EAzcmB,QA0cnBC,EAzcoB,UA4cpBk5D,EAAyB,cACzBC,EAAwB,sCAa5B,SAASC,KACL7rE,KAAKwqE,KAAOmB,EACZ3rE,KAAK0qE,MAAQkB,EAEbtE,EAAMnnE,MAAMH,KAAMO,WAElBP,KAAKsb,MAAStb,KAAKunE,QAAQc,QAAQyD,cAAgB,GAhBnDr7B,EAAOs7B,iBAAmBt7B,EAAOu7B,eACjCL,EAAyB,gBACzBC,EAAwB,6CAiB5BpG,EAAQqG,GAAmBvE,EAAO,CAK9BpB,QAAS,SAAmByB,GACxB,IAAIrsD,EAAQtb,KAAKsb,MACb2wD,GAAgB,EAEhBC,EAAsBvE,EAAG7nE,KAAK0K,cAAcjH,QAAQ,KAAM,IAC1DukE,EAAYsD,EAAkBc,GAC9Bf,EAAcO,EAAuB/D,EAAGwD,cAAgBxD,EAAGwD,YAE3DgB,EAnfW,SAmfAhB,EAGXiB,EAAa7F,EAAQjrD,EAAOqsD,EAAG0E,UAAW,aA/epC,EAkfNvE,IAA0C,IAAdH,EAAGsD,QAAgBkB,GAC3CC,EAAa,IACb9wD,EAAMnZ,KAAKwlE,GACXyE,EAAa9wD,EAAM9a,OAAS,GAEb,GAAZsnE,IACPmE,GAAgB,GAIhBG,EAAa,IAKjB9wD,EAAM8wD,GAAczE,EAEpB3nE,KAAK+b,SAAS/b,KAAKunE,QAASO,EAAW,CACnCE,SAAU1sD,EACV4sD,gBAAiB,CAACP,GAClBwD,YAAaA,EACbhB,SAAUxC,IAGVsE,GAEA3wD,EAAMpV,OAAOkmE,EAAY,OAKrC,IAAIE,GAAyB,CACzBC,WAlhBc,EAmhBdC,UAlhBa,EAmhBbC,SAlhBY,EAmhBZC,YAlhBe,GA6hBnB,SAASC,KACL3sE,KAAKyqE,SATwB,aAU7BzqE,KAAK0qE,MATwB,4CAU7B1qE,KAAK4sE,SAAU,EAEftF,EAAMnnE,MAAMH,KAAMO,WAsCtB,SAASssE,GAAuBlF,EAAI7nE,GAChC,IAAIqlD,EAAMshB,EAAQkB,EAAGmF,SACjBC,EAAUtG,EAAQkB,EAAGqF,gBAMzB,OAJW,GAAPltE,IACAqlD,EAAMuhB,EAAYvhB,EAAI7iD,OAAOyqE,GAAU,cAAc,IAGlD,CAAC5nB,EAAK4nB,GA3CjBvH,EAAQmH,GAAkBrF,EAAO,CAC7BpB,QAAS,SAAmByB,GACxB,IAAI7nE,EAAOwsE,GAAuB3E,EAAG7nE,MAOrC,GAjjBU,IA6iBNA,IACAE,KAAK4sE,SAAU,GAGd5sE,KAAK4sE,QAAV,CAIA,IAAIE,EAAUD,GAAuB/oE,KAAK9D,KAAM2nE,EAAI7nE,GAGzC,GAAPA,GAAqCgtE,EAAQ,GAAGtsE,OAASssE,EAAQ,GAAGtsE,SAAW,IAC/ER,KAAK4sE,SAAU,GAGnB5sE,KAAK+b,SAAS/b,KAAKunE,QAASznE,EAAM,CAC9BkoE,SAAU8E,EAAQ,GAClB5E,gBAAiB4E,EAAQ,GACzB3B,YAtkBW,QAukBXhB,SAAUxC,QAsBtB,IAAIsF,GAAkB,CAClBV,WAvlBc,EAwlBdC,UAvlBa,EAwlBbC,SAvlBY,EAwlBZC,YAvlBe,GAimBnB,SAASQ,KACLltE,KAAKyqE,SARiB,4CAStBzqE,KAAKmtE,UAAY,GAEjB7F,EAAMnnE,MAAMH,KAAMO,WA0BtB,SAAS6sE,GAAWzF,EAAI7nE,GACpB,IAAIutE,EAAa5G,EAAQkB,EAAGmF,SACxBK,EAAYntE,KAAKmtE,UAGrB,GAAW,EAAPrtE,GAA2D,IAAtButE,EAAW7sE,OAEhD,OADA2sE,EAAUE,EAAW,GAAGC,aAAc,EAC/B,CAACD,EAAYA,GAGxB,IAAInoE,EACAqoE,EACAP,EAAiBvG,EAAQkB,EAAGqF,gBAC5BQ,EAAuB,GACvBxmE,EAAShH,KAAKgH,OAQlB,GALAumE,EAAgBF,EAAWjrE,QAAO,SAASqrE,GACvC,OAAOpH,EAAUoH,EAAMzmE,OAAQA,MAppBrB,IAwpBVlH,EAEA,IADAoF,EAAI,EACGA,EAAIqoE,EAAc/sE,QACrB2sE,EAAUI,EAAcroE,GAAGooE,aAAc,EACzCpoE,IAMR,IADAA,EAAI,EACGA,EAAI8nE,EAAexsE,QAClB2sE,EAAUH,EAAe9nE,GAAGooE,aAC5BE,EAAqBrrE,KAAK6qE,EAAe9nE,IAIlC,GAAPpF,UACOqtE,EAAUH,EAAe9nE,GAAGooE,YAEvCpoE,IAGJ,OAAKsoE,EAAqBhtE,OAInB,CAEHkmE,EAAY6G,EAAcjrE,OAAOkrE,GAAuB,cAAc,GACtEA,QAPJ,EAnEJhI,EAAQ0H,GAAY5F,EAAO,CACvBpB,QAAS,SAAoByB,GACzB,IAAI7nE,EAAOmtE,GAAgBtF,EAAG7nE,MAC1BgtE,EAAUM,GAAWtpE,KAAK9D,KAAM2nE,EAAI7nE,GACnCgtE,GAIL9sE,KAAK+b,SAAS/b,KAAKunE,QAASznE,EAAM,CAC9BkoE,SAAU8E,EAAQ,GAClB5E,gBAAiB4E,EAAQ,GACzB3B,YA7nBW,QA8nBXhB,SAAUxC,OA+EtB,SAAS+F,KACLpG,EAAMnnE,MAAMH,KAAMO,WAElB,IAAI2lE,EAAUnB,EAAO/kE,KAAKkmE,QAASlmE,MACnCA,KAAKytE,MAAQ,IAAIP,GAAWltE,KAAKunE,QAASrB,GAC1ClmE,KAAK2tE,MAAQ,IAAI5C,EAAW/qE,KAAKunE,QAASrB,GAE1ClmE,KAAK4tE,aAAe,KACpB5tE,KAAK6tE,YAAc,GAqCvB,SAASC,GAAchG,EAAWiG,GAnvBhB,EAovBVjG,GACA9nE,KAAK4tE,aAAeG,EAAU7F,gBAAgB,GAAGoF,WACjDU,GAAalqE,KAAK9D,KAAM+tE,IACL,GAAZjG,GACPkG,GAAalqE,KAAK9D,KAAM+tE,GAIhC,SAASC,GAAaD,GAClB,IAAIN,EAAQM,EAAU7F,gBAAgB,GAEtC,GAAIuF,EAAMH,aAAettE,KAAK4tE,aAAc,CACxC,IAAIK,EAAY,CAAC7lD,EAAGqlD,EAAMnD,QAASvjD,EAAG0mD,EAAMlD,SAC5CvqE,KAAK6tE,YAAY1rE,KAAK8rE,GACtB,IAAIC,EAAMluE,KAAK6tE,YAOfvwD,YANsB,WAClB,IAAIpY,EAAIgpE,EAAI5qE,QAAQ2qE,GAChB/oE,GAAK,GACLgpE,EAAIhoE,OAAOhB,EAAG,KAnEV,OA0EpB,SAASipE,GAAiBJ,GAEtB,IADA,IAAI3lD,EAAI2lD,EAAU5D,SAASG,QAASvjD,EAAIgnD,EAAU5D,SAASI,QAClDrlE,EAAI,EAAGA,EAAIlF,KAAK6tE,YAAYrtE,OAAQ0E,IAAK,CAC9C,IAAIqD,EAAIvI,KAAK6tE,YAAY3oE,GACrBkpE,EAAKv4D,KAAKC,IAAIsS,EAAI7f,EAAE6f,GAAIimD,EAAKx4D,KAAKC,IAAIiR,EAAIxe,EAAEwe,GAChD,GAAIqnD,GA9ES,IA8EeC,GA9Ef,GA+ET,OAAO,EAGf,OAAO,EArEX7I,EAAQkI,GAAiBpG,EAAO,CAO5BpB,QAAS,SAAoBqB,EAAS+G,EAAYC,GAC9C,IAAIpC,EAhuBW,SAguBAoC,EAAUpD,YACrBqD,EA/tBW,SA+tBAD,EAAUpD,YAEzB,KAAIqD,GAAWD,EAAUE,oBAAsBF,EAAUE,mBAAmBC,kBAA5E,CAKA,GAAIvC,EACA2B,GAAchqE,KAAK9D,KAAMsuE,EAAYC,QAClC,GAAIC,GAAWL,GAAiBrqE,KAAK9D,KAAMuuE,GAC9C,OAGJvuE,KAAK+b,SAASwrD,EAAS+G,EAAYC,KAMvC3pB,QAAS,WACL5kD,KAAKytE,MAAM7oB,UACX5kD,KAAK2tE,MAAM/oB,aA0CnB,IAAI+pB,GAAwBhI,EAAS9B,EAAa9qD,MAAO,eACrD60D,QA9pCJ,IA8pC0BD,GAStBE,GA4IJ,WACI,IAAKD,GACD,OAAO,EAEX,IAAIE,EAAW,GACXC,EAAct+B,EAAOu+B,KAAOv+B,EAAOu+B,IAAIr6B,SAO3C,MANA,CAAC,OAAQ,eAAgB,QAAS,QAAS,cAAe,QAAQ1yC,SAAQ,SAAS0V,GAI/Em3D,EAASn3D,IAAOo3D,GAAct+B,EAAOu+B,IAAIr6B,SAAS,eAAgBh9B,MAE/Dm3D,EAxJYG,GASvB,SAASC,GAAY3H,EAAShjE,GAC1BvE,KAAKunE,QAAUA,EACfvnE,KAAK2U,IAAIpQ,GAGb2qE,GAAYtrE,UAAY,CAKpB+Q,IAAK,SAASpQ,GAzBS,WA2BfA,IACAA,EAAQvE,KAAKmvE,WAGbP,IAAuB5uE,KAAKunE,QAAQt3B,QAAQl2B,OAAS80D,GAAiBtqE,KACtEvE,KAAKunE,QAAQt3B,QAAQl2B,MAAM40D,IAAyBpqE,GAExDvE,KAAKovE,QAAU7qE,EAAMiG,cAAcsN,QAMvCu3D,OAAQ,WACJrvE,KAAK2U,IAAI3U,KAAKunE,QAAQjnE,QAAQgvE,cAOlCH,QAAS,WACL,IAAIC,EAAU,GAMd,OALAnK,EAAKjlE,KAAKunE,QAAQgI,aAAa,SAASC,GAChC3J,EAAS2J,EAAWlvE,QAAQsnE,OAAQ,CAAC4H,MACrCJ,EAAUA,EAAQ9sE,OAAOktE,EAAWC,sBAgEpD,SAA2BL,GAEvB,GAAI9I,EAAM8I,EAnHU,QAoHhB,MApHgB,OAuHpB,IAAIM,EAAUpJ,EAAM8I,EAtHC,SAuHjBO,EAAUrJ,EAAM8I,EAtHC,SA4HrB,GAAIM,GAAWC,EACX,MA/HgB,OAmIpB,GAAID,GAAWC,EACX,OAAOD,EAnIU,QACA,QAsIrB,GAAIpJ,EAAM8I,EAzIkB,gBA0IxB,MA1IwB,eA6I5B,MA9IoB,OAsDTQ,CAAkBR,EAAQ9pE,KAAK,OAO1CuqE,gBAAiB,SAASl2B,GACtB,IAAIwwB,EAAWxwB,EAAMwwB,SACjBhhC,EAAYwQ,EAAM0vB,gBAGtB,GAAIrpE,KAAKunE,QAAQc,QAAQyH,UACrB3F,EAAS4F,qBADb,CAKA,IAAIX,EAAUpvE,KAAKovE,QACfY,EAAU1J,EAAM8I,EAtEJ,UAsEoCP,GAAkC,KAClFc,EAAUrJ,EAAM8I,EArEH,WAqEoCP,GArEpC,SAsEba,EAAUpJ,EAAM8I,EAvEH,WAuEoCP,GAvEpC,SAyEjB,GAAImB,EAAS,CAGT,IAAIC,EAAyC,IAA1Bt2B,EAAMquB,SAASxnE,OAC9B0vE,EAAgBv2B,EAAMjU,SAAW,EACjCyqC,EAAiBx2B,EAAMmvB,UAAY,IAEvC,GAAImH,GAAgBC,GAAiBC,EACjC,OAIR,IAAIT,IAAWC,EAKf,OAAIK,GACCL,GAj3BcS,EAi3BHjnC,GACXumC,GAj3BYW,GAi3BDlnC,EACLnpC,KAAKswE,WAAWnG,QAH3B,IAWJmG,WAAY,SAASnG,GACjBnqE,KAAKunE,QAAQc,QAAQyH,WAAY,EACjC3F,EAAS4F,mBA+FjB,SAASQ,GAAWjwE,GAChBN,KAAKM,QAAU8lB,EAAO,GAAIpmB,KAAKwwE,SAAUlwE,GAAW,IAEpDN,KAAKg7D,GApgCE6L,IAsgCP7mE,KAAKunE,QAAU,KAGfvnE,KAAKM,QAAQsnE,OAAS9B,EAAY9lE,KAAKM,QAAQsnE,QAAQ,GAEvD5nE,KAAK4b,MAxBY,EA0BjB5b,KAAKywE,aAAe,GACpBzwE,KAAK0wE,YAAc,GAqOvB,SAASC,GAAS/0D,GACd,OA5PkB,GA4PdA,EACO,SA/PG,EAgQHA,EACA,MAlQK,EAmQLA,EACA,OArQG,EAsQHA,EACA,QAEJ,GAQX,SAASg1D,GAAaznC,GAClB,OAnuCiB,IAmuCbA,EACO,OAruCI,GAsuCJA,EACA,KAzuCM,GA0uCNA,EACA,OA1uCO,GA2uCPA,EACA,QAEJ,GASX,SAAS0nC,GAA6BC,EAAiBtB,GACnD,IAAIjI,EAAUiI,EAAWjI,QACzB,OAAIA,EACOA,EAAQtpD,IAAI6yD,GAEhBA,EAQX,SAASC,KACLR,GAAWpwE,MAAMH,KAAMO,WA6D3B,SAASywE,KACLD,GAAe5wE,MAAMH,KAAMO,WAE3BP,KAAKixE,GAAK,KACVjxE,KAAKkxE,GAAK,KA4Ed,SAASC,KACLJ,GAAe5wE,MAAMH,KAAMO,WAsC/B,SAAS6wE,KACLb,GAAWpwE,MAAMH,KAAMO,WAEvBP,KAAKqxE,OAAS,KACdrxE,KAAKsxE,OAAS,KAmElB,SAASC,KACLR,GAAe5wE,MAAMH,KAAMO,WA8B/B,SAASixE,KACLT,GAAe5wE,MAAMH,KAAMO,WA2D/B,SAASkxE,KACLlB,GAAWpwE,MAAMH,KAAMO,WAIvBP,KAAK0xE,OAAQ,EACb1xE,KAAK2xE,SAAU,EAEf3xE,KAAKqxE,OAAS,KACdrxE,KAAKsxE,OAAS,KACdtxE,KAAK8L,MAAQ,EAqGjB,SAAS8lE,GAAO3hC,EAAS3vC,GAGrB,OAFAA,EAAUA,GAAW,IACbivE,YAAczJ,EAAYxlE,EAAQivE,YAAaqC,GAAOpB,SAASqB,QAChE,IAAIC,GAAQ7hC,EAAS3vC,GA7tBhCiwE,GAAW3sE,UAAY,CAKnB4sE,SAAU,GAOV77D,IAAK,SAASrU,GAKV,OAJA8lB,EAAOpmB,KAAKM,QAASA,GAGrBN,KAAKunE,SAAWvnE,KAAKunE,QAAQ+H,YAAYD,SAClCrvE,MAQX+xE,cAAe,SAASjB,GACpB,GAAI9L,EAAe8L,EAAiB,gBAAiB9wE,MACjD,OAAOA,KAGX,IAAIywE,EAAezwE,KAAKywE,aAMxB,OAJKA,GADLK,EAAkBD,GAA6BC,EAAiB9wE,OAC9Bg7D,MAC9ByV,EAAaK,EAAgB9V,IAAM8V,EACnCA,EAAgBiB,cAAc/xE,OAE3BA,MAQXgyE,kBAAmB,SAASlB,GACxB,OAAI9L,EAAe8L,EAAiB,oBAAqB9wE,QAIzD8wE,EAAkBD,GAA6BC,EAAiB9wE,aACzDA,KAAKywE,aAAaK,EAAgB9V,KAJ9Bh7D,MAafiyE,eAAgB,SAASnB,GACrB,GAAI9L,EAAe8L,EAAiB,iBAAkB9wE,MAClD,OAAOA,KAGX,IAAI0wE,EAAc1wE,KAAK0wE,YAMvB,OAJ+C,IAA3CnK,EAAQmK,EADZI,EAAkBD,GAA6BC,EAAiB9wE,SAE5D0wE,EAAYvuE,KAAK2uE,GACjBA,EAAgBmB,eAAejyE,OAE5BA,MAQXkyE,mBAAoB,SAASpB,GACzB,GAAI9L,EAAe8L,EAAiB,qBAAsB9wE,MACtD,OAAOA,KAGX8wE,EAAkBD,GAA6BC,EAAiB9wE,MAChE,IAAIiG,EAAQsgE,EAAQvmE,KAAK0wE,YAAaI,GAItC,OAHI7qE,GAAS,GACTjG,KAAK0wE,YAAYxqE,OAAOD,EAAO,GAE5BjG,MAOXmyE,mBAAoB,WAChB,OAAOnyE,KAAK0wE,YAAYlwE,OAAS,GAQrC4xE,iBAAkB,SAAStB,GACvB,QAAS9wE,KAAKywE,aAAaK,EAAgB9V,KAQ/Cz0D,KAAM,SAASozC,GACX,IAAI6tB,EAAOxnE,KACP4b,EAAQ5b,KAAK4b,MAEjB,SAASrV,EAAKrE,GACVslE,EAAKD,QAAQhhE,KAAKrE,EAAOy3C,GAIzB/9B,EArJM,GAsJNrV,EAAKihE,EAAKlnE,QAAQ4B,MAAQyuE,GAAS/0D,IAGvCrV,EAAKihE,EAAKlnE,QAAQ4B,OAEdy3C,EAAM04B,iBACN9rE,EAAKozC,EAAM04B,iBAIXz2D,GAhKM,GAiKNrV,EAAKihE,EAAKlnE,QAAQ4B,MAAQyuE,GAAS/0D,KAU3C02D,QAAS,SAAS34B,GACd,GAAI35C,KAAKuyE,UACL,OAAOvyE,KAAKuG,KAAKozC,GAGrB35C,KAAK4b,MA7KM,IAoLf22D,QAAS,WAEL,IADA,IAAIrtE,EAAI,EACDA,EAAIlF,KAAK0wE,YAAYlwE,QAAQ,CAChC,KAAkC,GAA5BR,KAAK0wE,YAAYxrE,GAAG0W,OACtB,OAAO,EAEX1W,IAEJ,OAAO,GAOXmlE,UAAW,SAASkE,GAGhB,IAAIiE,EAAiBpsD,EAAO,GAAImoD,GAGhC,IAAK1I,EAAS7lE,KAAKM,QAAQsnE,OAAQ,CAAC5nE,KAAMwyE,IAGtC,OAFAxyE,KAAKyO,aACLzO,KAAK4b,MA3ME,IAgNM,GAAb5b,KAAK4b,QACL5b,KAAK4b,MAvNI,GA0Nb5b,KAAK4b,MAAQ5b,KAAKkI,QAAQsqE,GAIT,GAAbxyE,KAAK4b,OACL5b,KAAKsyE,QAAQE,IAWrBtqE,QAAS,SAASqmE,KAOlBkB,eAAgB,aAOhBhhE,MAAO,cA8DX+2D,EAAQuL,GAAgBR,GAAY,CAKhCC,SAAU,CAKNxI,SAAU,GASdyK,SAAU,SAAS94B,GACf,IAAI+4B,EAAiB1yE,KAAKM,QAAQ0nE,SAClC,OAA0B,IAAnB0K,GAAwB/4B,EAAMquB,SAASxnE,SAAWkyE,GAS7DxqE,QAAS,SAASyxC,GACd,IAAI/9B,EAAQ5b,KAAK4b,MACbksD,EAAYnuB,EAAMmuB,UAElB6K,EAAuB,EAAR/2D,EACfg3D,EAAU5yE,KAAKyyE,SAAS94B,GAG5B,OAAIg5B,IAlzCO,EAkzCU7K,IAA6B8K,GAvVpC,GAwVHh3D,EACA+2D,GAAgBC,EArzCnB,EAszCA9K,EA5VE,EA6VKlsD,EA/VL,EAgWOA,EA/VL,EAkWDA,EAnWD,EAKC,MAiXnB4pD,EAAQwL,GAAeD,GAAgB,CAKnCP,SAAU,CACNtuE,MAAO,MACP2wE,UAAW,GACX7K,SAAU,EACV7+B,UA50CY2pC,IA+0ChBrD,eAAgB,WACZ,IAAItmC,EAAYnpC,KAAKM,QAAQ6oC,UACzBimC,EAAU,GAOd,OA11CmBgB,EAo1CfjnC,GACAimC,EAAQjtE,KA9jBK,SAtxBAkuE,GAs1CblnC,GACAimC,EAAQjtE,KAlkBK,SAokBVitE,GAGX2D,cAAe,SAASp5B,GACpB,IAAIr5C,EAAUN,KAAKM,QACf0yE,GAAW,EACXttC,EAAWiU,EAAMjU,SACjByD,EAAYwQ,EAAMxQ,UAClB/gB,EAAIuxB,EAAMsP,OACVliC,EAAI4yB,EAAMuP,OAed,OAZM/f,EAAY7oC,EAAQ6oC,YAt2CPinC,EAu2CX9vE,EAAQ6oC,WACRA,EAAmB,IAAN/gB,EA92CR,EA82CqCA,EAAI,EA72CzC,EACC,EA62CN4qD,EAAW5qD,GAAKpoB,KAAKixE,GACrBvrC,EAAW7vB,KAAKC,IAAI6jC,EAAMsP,UAE1B9f,EAAmB,IAANpiB,EAl3CR,EAk3CqCA,EAAI,EA/2C3C,EACE,GA+2CLisD,EAAWjsD,GAAK/mB,KAAKkxE,GACrBxrC,EAAW7vB,KAAKC,IAAI6jC,EAAMuP,UAGlCvP,EAAMxQ,UAAYA,EACX6pC,GAAYttC,EAAWplC,EAAQuyE,WAAa1pC,EAAY7oC,EAAQ6oC,WAG3EspC,SAAU,SAAS94B,GACf,OAAOo3B,GAAentE,UAAU6uE,SAAS3uE,KAAK9D,KAAM25C,KAva1C,EAwaL35C,KAAK4b,SAxaA,EAwa0B5b,KAAK4b,QAAwB5b,KAAK+yE,cAAcp5B,KAGxFpzC,KAAM,SAASozC,GAEX35C,KAAKixE,GAAKt3B,EAAMsP,OAChBjpD,KAAKkxE,GAAKv3B,EAAMuP,OAEhB,IAAI/f,EAAYynC,GAAaj3B,EAAMxQ,WAE/BA,IACAwQ,EAAM04B,gBAAkBryE,KAAKM,QAAQ4B,MAAQinC,GAEjDnpC,KAAK04C,OAAOnyC,KAAKzC,KAAK9D,KAAM25C,MAcpC6rB,EAAQ2L,GAAiBJ,GAAgB,CAKrCP,SAAU,CACNtuE,MAAO,QACP2wE,UAAW,EACX7K,SAAU,GAGdyH,eAAgB,WACZ,MAAO,CAzoBS,SA4oBpBgD,SAAU,SAAS94B,GACf,OAAO35C,KAAK04C,OAAO+5B,SAAS3uE,KAAK9D,KAAM25C,KAClC9jC,KAAKC,IAAI6jC,EAAMoZ,MAAQ,GAAK/yD,KAAKM,QAAQuyE,WApdpC,EAodiD7yE,KAAK4b,QAGpErV,KAAM,SAASozC,GACX,GAAoB,IAAhBA,EAAMoZ,MAAa,CACnB,IAAIkgB,EAAQt5B,EAAMoZ,MAAQ,EAAI,KAAO,MACrCpZ,EAAM04B,gBAAkBryE,KAAKM,QAAQ4B,MAAQ+wE,EAEjDjzE,KAAK04C,OAAOnyC,KAAKzC,KAAK9D,KAAM25C,MAiBpC6rB,EAAQ4L,GAAiBb,GAAY,CAKjCC,SAAU,CACNtuE,MAAO,QACP8lE,SAAU,EACVx7B,KAAM,IACNqmC,UAAW,GAGfpD,eAAgB,WACZ,MAAO,CAtrBS,SAyrBpBvnE,QAAS,SAASyxC,GACd,IAAIr5C,EAAUN,KAAKM,QACf4yE,EAAgBv5B,EAAMquB,SAASxnE,SAAWF,EAAQ0nE,SAClDmL,EAAgBx5B,EAAMjU,SAAWplC,EAAQuyE,UACzCO,EAAYz5B,EAAMmvB,UAAYxoE,EAAQksC,KAM1C,GAJAxsC,KAAKsxE,OAAS33B,GAITw5B,IAAkBD,GAAoC,GAAlBv5B,EAAMmuB,YAA2CsL,EACtFpzE,KAAKyO,aACF,GAn+CG,EAm+CCkrC,EAAMmuB,UACb9nE,KAAKyO,QACLzO,KAAKqxE,OAASvM,GAAkB,WAC5B9kE,KAAK4b,MA1gBH,EA2gBF5b,KAAKsyE,YACNhyE,EAAQksC,KAAMxsC,WACd,GAv+CC,EAu+CG25C,EAAMmuB,UACb,OA9gBM,EAghBV,OA7gBW,IAghBfr5D,MAAO,WACH4kE,aAAarzE,KAAKqxE,SAGtB9qE,KAAM,SAASozC,GAvhBD,IAwhBN35C,KAAK4b,QAIL+9B,GAt/CI,EAs/CMA,EAAMmuB,UAChB9nE,KAAKunE,QAAQhhE,KAAKvG,KAAKM,QAAQ4B,MAAQ,KAAMy3C,IAE7C35C,KAAKsxE,OAAOzI,UAAY1N,IACxBn7D,KAAKunE,QAAQhhE,KAAKvG,KAAKM,QAAQ4B,MAAOlC,KAAKsxE,aAevD9L,EAAQ+L,GAAkBR,GAAgB,CAKtCP,SAAU,CACNtuE,MAAO,SACP2wE,UAAW,EACX7K,SAAU,GAGdyH,eAAgB,WACZ,MAAO,CAvvBS,SA0vBpBgD,SAAU,SAAS94B,GACf,OAAO35C,KAAK04C,OAAO+5B,SAAS3uE,KAAK9D,KAAM25C,KAClC9jC,KAAKC,IAAI6jC,EAAMgwB,UAAY3pE,KAAKM,QAAQuyE,WAlkBnC,EAkkBgD7yE,KAAK4b,UAcvE4pD,EAAQgM,GAAiBT,GAAgB,CAKrCP,SAAU,CACNtuE,MAAO,QACP2wE,UAAW,GACX/I,SAAU,GACV3gC,UAAW2pC,GACX9K,SAAU,GAGdyH,eAAgB,WACZ,OAAOuB,GAAcptE,UAAU6rE,eAAe3rE,KAAK9D,OAGvDyyE,SAAU,SAAS94B,GACf,IACImwB,EADA3gC,EAAYnpC,KAAKM,QAAQ6oC,UAW7B,OARgB,GAAZA,EACA2gC,EAAWnwB,EAAM4vB,gBArjDF6G,EAsjDRjnC,EACP2gC,EAAWnwB,EAAM8vB,iBAtjDJ4G,GAujDNlnC,IACP2gC,EAAWnwB,EAAM+vB,kBAGd1pE,KAAK04C,OAAO+5B,SAAS3uE,KAAK9D,KAAM25C,IACnCxQ,EAAYwQ,EAAM0vB,iBAClB1vB,EAAMjU,SAAW1lC,KAAKM,QAAQuyE,WAC9Bl5B,EAAMkwB,aAAe7pE,KAAKM,QAAQ0nE,UAClClyD,EAAIg0D,GAAY9pE,KAAKM,QAAQwpE,UAzkDzB,EAykDqCnwB,EAAMmuB,WAGvDvhE,KAAM,SAASozC,GACX,IAAIxQ,EAAYynC,GAAaj3B,EAAM0vB,iBAC/BlgC,GACAnpC,KAAKunE,QAAQhhE,KAAKvG,KAAKM,QAAQ4B,MAAQinC,EAAWwQ,GAGtD35C,KAAKunE,QAAQhhE,KAAKvG,KAAKM,QAAQ4B,MAAOy3C,MA2B9C6rB,EAAQiM,GAAelB,GAAY,CAK/BC,SAAU,CACNtuE,MAAO,MACP8lE,SAAU,EACVsL,KAAM,EACNjuB,SAAU,IACV7Y,KAAM,IACNqmC,UAAW,EACXU,aAAc,IAGlB9D,eAAgB,WACZ,MAAO,CAh2BiB,iBAm2B5BvnE,QAAS,SAASyxC,GACd,IAAIr5C,EAAUN,KAAKM,QAEf4yE,EAAgBv5B,EAAMquB,SAASxnE,SAAWF,EAAQ0nE,SAClDmL,EAAgBx5B,EAAMjU,SAAWplC,EAAQuyE,UACzCW,EAAiB75B,EAAMmvB,UAAYxoE,EAAQksC,KAI/C,GAFAxsC,KAAKyO,QAzoDK,EA2oDLkrC,EAAMmuB,WAA4C,IAAf9nE,KAAK8L,MACzC,OAAO9L,KAAKyzE,cAKhB,GAAIN,GAAiBK,GAAkBN,EAAe,CAClD,GAhpDI,GAgpDAv5B,EAAMmuB,UACN,OAAO9nE,KAAKyzE,cAGhB,IAAIC,GAAgB1zE,KAAK0xE,OAAS/3B,EAAMkvB,UAAY7oE,KAAK0xE,MAAQpxE,EAAQ+kD,SACrEsuB,GAAiB3zE,KAAK2xE,SAAW3I,EAAYhpE,KAAK2xE,QAASh4B,EAAMgvB,QAAUroE,EAAQizE,aAgBvF,GAdAvzE,KAAK0xE,MAAQ/3B,EAAMkvB,UACnB7oE,KAAK2xE,QAAUh4B,EAAMgvB,OAEhBgL,GAAkBD,EAGnB1zE,KAAK8L,OAAS,EAFd9L,KAAK8L,MAAQ,EAKjB9L,KAAKsxE,OAAS33B,EAKG,IADF35C,KAAK8L,MAAQxL,EAAQgzE,KAIhC,OAAKtzE,KAAKmyE,sBAGNnyE,KAAKqxE,OAASvM,GAAkB,WAC5B9kE,KAAK4b,MAltBX,EAmtBM5b,KAAKsyE,YACNhyE,EAAQ+kD,SAAUrlD,MAttBvB,GAEA,EAytBV,OAttBW,IAytBfyzE,YAAa,WAIT,OAHAzzE,KAAKqxE,OAASvM,GAAkB,WAC5B9kE,KAAK4b,MA3tBE,KA4tBR5b,KAAKM,QAAQ+kD,SAAUrlD,MA5tBf,IAguBfyO,MAAO,WACH4kE,aAAarzE,KAAKqxE,SAGtB9qE,KAAM,WAvuBQ,GAwuBNvG,KAAK4b,QACL5b,KAAKsxE,OAAOsC,SAAW5zE,KAAK8L,MAC5B9L,KAAKunE,QAAQhhE,KAAKvG,KAAKM,QAAQ4B,MAAOlC,KAAKsxE,YAoBvDM,GAAOiC,QAAU,QAMjBjC,GAAOpB,SAAW,CAOdsD,WAAW,EAQXxE,YAl9BuB,UAw9BvB1H,QAAQ,EASRH,YAAa,KAObsM,WAAY,KAOZlC,OAAQ,CAEJ,CAACN,GAAkB,CAAC3J,QAAQ,IAC5B,CAACuJ,GAAiB,CAACvJ,QAAQ,GAAQ,CAAC,WACpC,CAAC4J,GAAiB,CAACroC,UArwDAinC,IAswDnB,CAACY,GAAe,CAAC7nC,UAtwDEinC,GAswDgC,CAAC,UACpD,CAACqB,IACD,CAACA,GAAe,CAACvvE,MAAO,YAAaoxE,KAAM,GAAI,CAAC,QAChD,CAAClC,KAQL4C,SAAU,CAMNC,WAAY,OAOZC,YAAa,OASbC,aAAc,OAOdC,eAAgB,OAOhBC,SAAU,OAQVC,kBAAmB,kBAa3B,SAASxC,GAAQ7hC,EAAS3vC,GACtBN,KAAKM,QAAU8lB,EAAO,GAAIwrD,GAAOpB,SAAUlwE,GAAW,IAEtDN,KAAKM,QAAQmnE,YAAcznE,KAAKM,QAAQmnE,aAAex3B,EAEvDjwC,KAAKu0E,SAAW,GAChBv0E,KAAKqoE,QAAU,GACfroE,KAAKuvE,YAAc,GACnBvvE,KAAKw0E,YAAc,GAEnBx0E,KAAKiwC,QAAUA,EACfjwC,KAAK25C,MApxDT,SAA6B4tB,GACzB,IACIwM,EAAaxM,EAAQjnE,QAAQyzE,WAajC,OAAO,IAXHA,IAEO7M,EACA2E,GACA1E,EACA+F,GACCjG,EAGDyG,GAFA3C,IAIOxD,EAASM,GAqwDd4M,CAAoBz0E,MACjCA,KAAKsvE,YAAc,IAAIJ,GAAYlvE,KAAMA,KAAKM,QAAQgvE,aAEtDoF,GAAe10E,MAAM,GAErBilE,EAAKjlE,KAAKM,QAAQivE,aAAa,SAAS3pB,GACpC,IAAI4pB,EAAaxvE,KAAKmoB,IAAI,IAAKy9B,EAAK,GAAIA,EAAK,KAC7CA,EAAK,IAAM4pB,EAAWuC,cAAcnsB,EAAK,IACzCA,EAAK,IAAM4pB,EAAWyC,eAAersB,EAAK,MAC3C5lD,MA4PP,SAAS00E,GAAenN,EAASp/C,GAC7B,IAIIjhB,EAJA+oC,EAAUs3B,EAAQt3B,QACjBA,EAAQl2B,QAIbkrD,EAAKsC,EAAQjnE,QAAQ0zE,UAAU,SAASzvE,EAAOwD,GAC3Cb,EAAOy/D,EAAS12B,EAAQl2B,MAAOhS,GAC3BogB,GACAo/C,EAAQiN,YAAYttE,GAAQ+oC,EAAQl2B,MAAM7S,GAC1C+oC,EAAQl2B,MAAM7S,GAAQ3C,GAEtB0rC,EAAQl2B,MAAM7S,GAAQqgE,EAAQiN,YAAYttE,IAAS,MAGtDihB,IACDo/C,EAAQiN,YAAc,KAzQ9B1C,GAAQluE,UAAY,CAMhB+Q,IAAK,SAASrU,GAaV,OAZA8lB,EAAOpmB,KAAKM,QAASA,GAGjBA,EAAQgvE,aACRtvE,KAAKsvE,YAAYD,SAEjB/uE,EAAQmnE,cAERznE,KAAK25C,MAAMiL,UACX5kD,KAAK25C,MAAM3yC,OAAS1G,EAAQmnE,YAC5BznE,KAAK25C,MAAMj5C,QAERV,MASX8jC,KAAM,SAAS6wC,GACX30E,KAAKqoE,QAAQuM,QAAUD,EA5Db,EADP,GAsEPtK,UAAW,SAASkE,GAChB,IAAIlG,EAAUroE,KAAKqoE,QACnB,IAAIA,EAAQuM,QAAZ,CAOA,IAAIpF,EAFJxvE,KAAKsvE,YAAYO,gBAAgBtB,GAGjC,IAAIgB,EAAcvvE,KAAKuvE,YAKnBsF,EAAgBxM,EAAQwM,gBAIvBA,GAAkBA,GAz8Bb,EAy8B8BA,EAAcj5D,SAClDi5D,EAAgBxM,EAAQwM,cAAgB,MAI5C,IADA,IAAI3vE,EAAI,EACDA,EAAIqqE,EAAY/uE,QACnBgvE,EAAaD,EAAYrqE,GA9FnB,IAsGFmjE,EAAQuM,SACHC,GAAiBrF,GAAcqF,IAChCrF,EAAW4C,iBAAiByC,GAGhCrF,EAAW/gE,QAFX+gE,EAAWnF,UAAUkE,IAOpBsG,GAAoC,GAAnBrF,EAAW5zD,QAC7Bi5D,EAAgBxM,EAAQwM,cAAgBrF,GAE5CtqE,MASR+Y,IAAK,SAASuxD,GACV,GAAIA,aAAsBe,GACtB,OAAOf,EAIX,IADA,IAAID,EAAcvvE,KAAKuvE,YACdrqE,EAAI,EAAGA,EAAIqqE,EAAY/uE,OAAQ0E,IACpC,GAAIqqE,EAAYrqE,GAAG5E,QAAQ4B,OAASstE,EAChC,OAAOD,EAAYrqE,GAG3B,OAAO,MASXijB,IAAK,SAASqnD,GACV,GAAIxK,EAAewK,EAAY,MAAOxvE,MAClC,OAAOA,KAIX,IAAI80E,EAAW90E,KAAKie,IAAIuxD,EAAWlvE,QAAQ4B,OAS3C,OARI4yE,GACA90E,KAAK+0E,OAAOD,GAGhB90E,KAAKuvE,YAAYptE,KAAKqtE,GACtBA,EAAWjI,QAAUvnE,KAErBA,KAAKsvE,YAAYD,SACVG,GAQXuF,OAAQ,SAASvF,GACb,GAAIxK,EAAewK,EAAY,SAAUxvE,MACrC,OAAOA,KAMX,GAHAwvE,EAAaxvE,KAAKie,IAAIuxD,GAGN,CACZ,IAAID,EAAcvvE,KAAKuvE,YACnBtpE,EAAQsgE,EAAQgJ,EAAaC,IAElB,IAAXvpE,IACAspE,EAAYrpE,OAAOD,EAAO,GAC1BjG,KAAKsvE,YAAYD,UAIzB,OAAOrvE,MASXqf,GAAI,SAASvd,EAAQokE,GACjB,QAp5ER,IAo5EYpkE,QAp5EZ,IAu5EYokE,EAAJ,CAIA,IAAIqO,EAAWv0E,KAAKu0E,SAKpB,OAJAtP,EAAKkB,EAASrkE,IAAS,SAASI,GAC5BqyE,EAASryE,GAASqyE,EAASryE,IAAU,GACrCqyE,EAASryE,GAAOC,KAAK+jE,MAElBlmE,OASXg1E,IAAK,SAASlzE,EAAQokE,GAClB,QA16ER,IA06EYpkE,EAAJ,CAIA,IAAIyyE,EAAWv0E,KAAKu0E,SAQpB,OAPAtP,EAAKkB,EAASrkE,IAAS,SAASI,GACvBgkE,EAGDqO,EAASryE,IAAUqyE,EAASryE,GAAOgE,OAAOqgE,EAAQgO,EAASryE,GAAQgkE,GAAU,UAFtEqO,EAASryE,MAKjBlC,OAQXuG,KAAM,SAASrE,EAAOmC,GAEdrE,KAAKM,QAAQwzE,WAkEzB,SAAyB5xE,EAAOmC,GAC5B,IAAI4wE,EAAeriC,EAASsiC,YAAY,SACxCD,EAAaE,UAAUjzE,GAAO,GAAM,GACpC+yE,EAAaG,QAAU/wE,EACvBA,EAAK2C,OAAOquE,cAAcJ,GArElBK,CAAgBpzE,EAAOmC,GAI3B,IAAIkwE,EAAWv0E,KAAKu0E,SAASryE,IAAUlC,KAAKu0E,SAASryE,GAAOmD,QAC5D,GAAKkvE,GAAaA,EAAS/zE,OAA3B,CAIA6D,EAAKvE,KAAOoC,EACZmC,EAAK0rE,eAAiB,WAClB1rE,EAAK8lE,SAAS4F,kBAIlB,IADA,IAAI7qE,EAAI,EACDA,EAAIqvE,EAAS/zE,QAChB+zE,EAASrvE,GAAGb,GACZa,MAQR0/C,QAAS,WACL5kD,KAAKiwC,SAAWykC,GAAe10E,MAAM,GAErCA,KAAKu0E,SAAW,GAChBv0E,KAAKqoE,QAAU,GACfroE,KAAK25C,MAAMiL,UACX5kD,KAAKiwC,QAAU,OAyCvB7pB,EAAOwrD,GAAQ,CACX2D,YAtoEc,EAuoEdC,WAtoEa,EAuoEbC,UAtoEY,EAuoEZC,aAtoEe,EAwoEfC,eAlrCiB,EAmrCjBC,YAlrCc,EAmrCdC,cAlrCgB,EAmrChBC,YAlrCc,EAmrCdC,iBAnrCc,EAorCdC,gBAlrCkB,GAmrClBC,aAlrCe,GAorCfC,eA9oEiB,EA+oEjB9F,eA9oEiB,EA+oEjB+F,gBA9oEkB,EA+oElB9F,aA9oEe,EA+oEf+F,eA9oEiB,GA+oEjBtD,qBA7oEuB1C,EA8oEvBiG,mBA7oEqBhG,GA8oErBiG,cA7oEgBxD,GA+oEhBhB,QAASA,GACTxK,MAAOA,EACP4H,YAAaA,GAEbhC,WAAYA,GACZnC,WAAYA,EACZc,kBAAmBA,GACnB6B,gBAAiBA,GACjBf,iBAAkBA,GAElB4D,WAAYA,GACZQ,eAAgBA,GAChBwF,IAAK9E,GACL+E,IAAKxF,GACLyF,MAAOjF,GACPkF,MAAOvF,GACPwF,OAAQpF,GACRqF,MAAOxF,GAEP/xD,GAAI4mD,EACJ+O,IAAK5O,EACLnB,KAAMA,EACNM,MAAOA,EACPD,OAAQA,EACRl/C,OAAQA,EACRo/C,QAASA,EACTT,OAAQA,EACR4B,SAAUA,KAKsB,qBAAXl2B,EAAyBA,EAA0B,qBAAT+2B,KAAuBA,KAAO,IACtFoK,OAASA,QAjkFpB,KAokFI,aACI,OAAOA,IACV,8BAtkFL,CA6kFGnhC,OAAQmC,W,kCCllFX,OACA,IAAIikC,EAAmB,SACnBC,EAAY,OACZv9D,EAAQ,GAEZ,SAASw9D,EAAcltE,GACrB,MAAO,IAAMA,EAAMW,cAYN,UATf,SAA4BzC,GAC1B,GAAIwR,EAAM1V,eAAekE,GACvB,OAAOwR,EAAMxR,GAGf,IAAIivE,EAAQjvE,EAAKxE,QAAQszE,EAAkBE,GAC3C,OAAQx9D,EAAMxR,GAAQ+uE,EAAUrtE,KAAKutE,GAAS,IAAMA,EAAQA,I,kCCf9D,uBAAiCzuE,EAAE,qDAAqD,SAAS6J,EAAEA,GAAG,IAAI/I,EAAE,CAACvJ,KAAK,MAAMiI,KAAK,GAAGkvE,aAAY,EAAGC,MAAM,GAAGC,SAAS,IAAIjyE,EAAEkN,EAAEvI,MAAM,uBAAuB,GAAG3E,IAAImE,EAAEtB,KAAK7C,EAAE,IAAI,IAAEA,EAAE,KAAK,MAAMkN,EAAE3B,OAAO2B,EAAE5R,OAAO,MAAM6I,EAAE4tE,aAAY,GAAI5tE,EAAEtB,KAAKqvE,WAAW,QAAQ,CAAC,IAAIxyE,EAAEwN,EAAE9O,QAAQ,UAAU,MAAM,CAACxD,KAAK,UAAUu3E,SAAS,IAAIzyE,EAAEwN,EAAE/M,MAAM,EAAET,GAAG,IAAI,IAAI,IAAI0D,EAAE,IAAIgB,OAAOf,GAAGa,EAAE,KAAK,QAAQA,EAAEd,EAAE8P,KAAKhG,KAAK,GAAGhJ,EAAE,GAAG0O,OAAO,GAAG1O,EAAE,GAAG,CAAC,IAAIkuE,EAAEluE,EAAE,GAAG0O,OAAOzV,EAAE,CAACi1E,EAAE,IAAIA,EAAEh0E,QAAQ,MAAM,IAAIjB,EAAEi1E,EAAEt1E,MAAM,MAAMqH,EAAE6tE,MAAM70E,EAAE,IAAIA,EAAE,GAAGiG,EAAEiQ,iBAAiBnP,EAAE,KAAKC,EAAE6tE,MAAM9tE,EAAE,IAAIA,EAAE,GAAG0O,OAAOnO,UAAU,EAAEP,EAAE,GAAG5I,OAAO,IAAI,OAAO6I,EAAE,IAAIA,EAAE,kDAAkDnE,EAAE,QAAQN,EAAEjB,OAAO8E,OAAO,MAAM,SAASH,EAAE0Q,EAAEzQ,GAAG,OAAOA,EAAEzI,MAAM,IAAI,OAAO,OAAOkZ,EAAEzQ,EAAE6kC,QAAQ,IAAI,MAAM,OAAOp0B,GAAG,IAAIzQ,EAAER,MAAMQ,EAAE2uE,MAAM,SAASl+D,GAAG,IAAIzQ,EAAE,GAAG,IAAI,IAAI6J,KAAK4G,EAAEzQ,EAAEpG,KAAKiQ,EAAE,KAAK4G,EAAE5G,GAAG,KAAK,OAAO7J,EAAE/H,OAAO,IAAI+H,EAAEjD,KAAK,KAAK,GAA5F,CAAgGiD,EAAE2uE,OAAO,KAAK3uE,EAAE0uE,YAAY,KAAK,KAAK1uE,EAAE0uE,YAAYj+D,EAAEA,EAAEzQ,EAAE4uE,SAAS/9D,OAAO9Q,EAAE,IAAI,KAAKC,EAAER,KAAK,IAAI,IAAI,UAAU,OAAOiR,EAAE,UAAUzQ,EAAE8uE,QAAQ,UAAU,IAAIjuE,EAAE,CAAC2E,MAAM,SAASiL,EAAEzQ,GAAGA,IAAIA,EAAE,IAAIA,EAAEgvE,aAAahvE,EAAEgvE,WAAW3yE,GAAG,IAAI0D,EAAEc,EAAE,GAAGkuE,EAAE,GAAGj1E,GAAG,EAAEoE,GAAE,EAAG,GAAG,IAAIuS,EAAE1V,QAAQ,KAAK,CAAC,IAAIk0E,EAAEx+D,EAAE1V,QAAQ,KAAK8F,EAAEjH,KAAK,CAACrC,KAAK,OAAOstC,SAAS,IAAIoqC,EAAEx+D,EAAEA,EAAErP,UAAU,EAAE6tE,KAAK,OAAOx+D,EAAEzV,QAAQ8F,GAAE,SAASA,EAAEzE,GAAG,GAAG6B,EAAE,CAAC,GAAG4C,IAAI,KAAKf,EAAEP,KAAK,IAAI,OAAOtB,GAAE,EAAG,IAAI+wE,EAAEz/D,EAAE,MAAM1O,EAAEoH,OAAO,GAAG6X,EAAEjf,EAAE+tE,WAAW,WAAWhyE,EAAER,EAAEyE,EAAE7I,OAAOolB,EAAE5M,EAAEvI,OAAOrL,GAAG,GAAGkjB,EAAE,CAAC,IAAI3gB,EAAEyK,EAAE/I,GAAG,OAAOhH,EAAE,GAAG+G,EAAEjH,KAAKwF,GAAGyB,KAAKouE,EAAEF,EAAEj1E,IAAI80E,SAASh1E,KAAKwF,GAAGyB,GAAG,GAAG2O,IAAI1V,IAAI,SAASiG,EAAE8J,EAAE/I,IAAIvJ,MAAMyI,EAAEgvE,WAAWjvE,EAAEP,QAAQO,EAAExI,KAAK,YAAY2G,GAAE,GAAI6B,EAAE2uE,aAAaxwE,IAAImf,GAAG,MAAMA,GAAGtd,EAAE6uE,SAASh1E,KAAK,CAACrC,KAAK,OAAOstC,QAAQp0B,EAAE3T,MAAMD,EAAE4T,EAAE1V,QAAQ,IAAI8B,MAAM,IAAI/C,GAAG+G,EAAEjH,KAAKmG,IAAIkvE,EAAEF,EAAEj1E,EAAE,KAAKm1E,EAAEL,SAASh1E,KAAKmG,GAAGgvE,EAAEj1E,GAAGiG,KAAKyP,GAAGzP,EAAE2uE,eAAe50E,GAAG,IAAIiG,EAAE2uE,aAAa3uE,EAAEP,OAAOsB,EAAEhE,MAAM,GAAG,MAAMhD,IAAIiG,GAAG,IAAIjG,EAAE+G,EAAEkuE,EAAEj1E,KAAKoE,GAAG,MAAMmf,GAAGA,GAAG,CAAC4xD,GAAG,IAAIn1E,EAAE+G,EAAEkuE,EAAEj1E,GAAG80E,SAAS,IAAI/uD,EAAEpP,EAAE1V,QAAQ,IAAI8B,GAAG4hB,EAAEhO,EAAE3T,MAAMD,GAAG,IAAIgjB,OAAE,EAAOA,GAAGljB,EAAEuE,KAAKud,KAAKA,EAAE,MAAMoB,GAAG,GAAG/lB,EAAEm1E,EAAEh3E,QAAQ,GAAG,MAAMwmB,IAAIwwD,EAAEr1E,KAAK,CAACrC,KAAK,OAAOstC,QAAQpmB,QAAO5d,GAAGoQ,UAAU,SAASR,GAAG,OAAOA,EAAEI,QAAO,SAASJ,EAAEzQ,GAAG,OAAOyQ,EAAE1Q,EAAE,GAAGC,KAAI,MAAqB,O,kCCApiE,0DAGIkvE,EAAM,GACNxS,EAAOwS,EAAIx1E,QACXoD,EAAQoyE,EAAIpyE,MAChB,SAASmrE,EAASzsE,GAQhB,OAPAkhE,EAAKnhE,KAAKuB,EAAMvB,KAAKvD,UAAW,IAAI,SAAU0G,GAC5C,GAAIA,EACF,IAAK,IAAIC,KAAQD,OACGxG,IAAdsD,EAAImD,KAAqBnD,EAAImD,GAAQD,EAAOC,OAI/CnD,EAIT,IAAI2zE,EAAqB,wCACrBC,EAAkB,SAAyB5vE,EAAM4P,EAAKrX,GACxD,IAAIsZ,EAAMtZ,GAAW,GACrBsZ,EAAI1W,KAAO0W,EAAI1W,MAAQ,IACvB,IAAIqB,EAAQgvC,mBAAmB57B,GAC3BlT,EAAM,GAAGnC,OAAOyF,EAAM,KAAKzF,OAAOiC,GACtC,GAAIqV,EAAIg+D,OAAS,EAAG,CAClB,IAAIA,EAASh+D,EAAIg+D,OAAS,EAC1B,GAAIvlE,OAAOwI,MAAM+8D,GAAS,MAAM,IAAI53D,MAAM,6BAC1Cvb,GAAO,aAAanC,OAAOuT,KAAKuoC,MAAMw5B,IAExC,GAAIh+D,EAAIi+D,OAAQ,CACd,IAAKH,EAAmBjuE,KAAKmQ,EAAIi+D,QAC/B,MAAM,IAAIn1D,UAAU,4BAEtBje,GAAO,YAAYnC,OAAOsX,EAAIi+D,QAEhC,GAAIj+D,EAAI1W,KAAM,CACZ,IAAKw0E,EAAmBjuE,KAAKmQ,EAAI1W,MAC/B,MAAM,IAAIwf,UAAU,0BAEtBje,GAAO,UAAUnC,OAAOsX,EAAI1W,MAE9B,GAAI0W,EAAIk+D,QAAS,CACf,GAAuC,oBAA5Bl+D,EAAIk+D,QAAQC,YACrB,MAAM,IAAIr1D,UAAU,6BAEtBje,GAAO,aAAanC,OAAOsX,EAAIk+D,QAAQC,eAIzC,GAFIn+D,EAAIo+D,WAAUvzE,GAAO,cACrBmV,EAAIq+D,SAAQxzE,GAAO,YACnBmV,EAAIs+D,SAEN,OADuC,kBAAjBt+D,EAAIs+D,SAAwBt+D,EAAIs+D,SAAS1tE,cAAgBoP,EAAIs+D,UAEjF,KAAK,EACHzzE,GAAO,oBACP,MACF,IAAK,MACHA,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAIie,UAAU,8BAG1B,OAAOje,GAEL0zE,EACM,SAAgBpwE,EAAMxD,EAAO6zE,EAASP,GAC5C,IAAIQ,EAAgB93E,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CACtF2C,KAAM,IACNg1E,SAAU,UAERE,IACFC,EAAcP,QAAU,IAAI5c,KAC5Bmd,EAAcP,QAAQQ,QAAQD,EAAcP,QAAQ1c,UAAsB,GAAVgd,EAAe,MAE7EP,IAAQQ,EAAcR,OAASA,GACnCjlC,SAASulC,OAASR,EAAgB5vE,EAAMwrC,mBAAmBhvC,GAAQ8zE,IAXnEF,EAaI,SAAcpwE,GAGlB,IAFA,IAAIwwE,EAAS,GAAGj2E,OAAOyF,EAAM,KACzBywE,EAAK5lC,SAASulC,OAAOn2E,MAAM,KACtBkD,EAAI,EAAGA,EAAIszE,EAAGh4E,OAAQ0E,IAAK,CAElC,IADA,IAAIkE,EAAIovE,EAAGtzE,GACY,MAAhBkE,EAAEqH,OAAO,IACdrH,EAAIA,EAAEO,UAAU,EAAGP,EAAE5I,QAEvB,GAA0B,IAAtB4I,EAAE9F,QAAQi1E,GAAe,OAAOnvE,EAAEO,UAAU4uE,EAAO/3E,OAAQ4I,EAAE5I,QAEnE,OAAO,MAMPi4E,EAAW,CACb1wE,KAAM,SACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EACJ,GAAI1O,EAAQo4E,cAAoC,qBAAb9lC,SAA0B,CAC3D,IAAIxpC,EAAI+uE,EAAY73E,EAAQo4E,cACxBtvE,IAAG4F,EAAQ5F,GAEjB,OAAO4F,GAET0R,kBAAmB,SAA2Bva,EAAK7F,GAC7CA,EAAQo4E,cAAoC,qBAAb9lC,UACjCulC,EAAc73E,EAAQo4E,aAAcvyE,EAAK7F,EAAQq4E,cAAer4E,EAAQs4E,aAAct4E,EAAQ+3E,iBAKhGQ,EAAc,CAChB9wE,KAAM,cACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EACJ,GAAsB,qBAAXyhC,OAAwB,CACjC,IAAIqtB,EAASrtB,OAAOqW,SAASgX,QACxBrtB,OAAOqW,SAASgX,QAAUrtB,OAAOqW,SAASiX,MAAQttB,OAAOqW,SAASiX,KAAKz6D,QAAQ,MAAQ,IAC1Fw6D,EAASrtB,OAAOqW,SAASiX,KAAKp0D,UAAU8mC,OAAOqW,SAASiX,KAAKz6D,QAAQ,OAIvE,IAFA,IACIw1E,EADQhb,EAAOn0D,UAAU,GACV3H,MAAM,KAChBkD,EAAI,EAAGA,EAAI4zE,EAAOt4E,OAAQ0E,IAAK,CACtC,IAAI6zE,EAAMD,EAAO5zE,GAAG5B,QAAQ,KAC5B,GAAIy1E,EAAM,EACED,EAAO5zE,GAAGyE,UAAU,EAAGovE,KACrBz4E,EAAQ04E,oBAClBhqE,EAAQ8pE,EAAO5zE,GAAGyE,UAAUovE,EAAM,KAK1C,OAAO/pE,IAIPiqE,EAAyB,KACzBC,EAAwB,WAC1B,GAA+B,OAA3BD,EAAiC,OAAOA,EAC5C,IACEA,EAAoC,cAAXxoC,QAAkD,OAAxBA,OAAO0oC,aAE1D1oC,OAAO0oC,aAAaC,QADN,wBACuB,OACrC3oC,OAAO0oC,aAAaE,WAFN,yBAGd,MAAOrgE,GACPigE,GAAyB,EAE3B,OAAOA,GAELE,EAAe,CACjBpxE,KAAM,eACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EACJ,GAAI1O,EAAQg5E,oBAAsBJ,IAAyB,CACzD,IAAI/yE,EAAMsqC,OAAO0oC,aAAaI,QAAQj5E,EAAQg5E,oBAC1CnzE,IAAK6I,EAAQ7I,GAEnB,OAAO6I,GAET0R,kBAAmB,SAA2Bva,EAAK7F,GAC7CA,EAAQg5E,oBAAsBJ,KAChCzoC,OAAO0oC,aAAaC,QAAQ94E,EAAQg5E,mBAAoBnzE,KAK1DqzE,EAA2B,KAC3BC,EAA0B,WAC5B,GAAiC,OAA7BD,EAAmC,OAAOA,EAC9C,IACEA,EAAsC,cAAX/oC,QAAoD,OAA1BA,OAAOipC,eAE5DjpC,OAAOipC,eAAeN,QADR,wBACyB,OACvC3oC,OAAOipC,eAAeL,WAFR,yBAGd,MAAOrgE,GACPwgE,GAA2B,EAE7B,OAAOA,GAELE,EAAiB,CACnB3xE,KAAM,iBACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EACJ,GAAI1O,EAAQq5E,sBAAwBF,IAA2B,CAC7D,IAAItzE,EAAMsqC,OAAOipC,eAAeH,QAAQj5E,EAAQq5E,sBAC5CxzE,IAAK6I,EAAQ7I,GAEnB,OAAO6I,GAET0R,kBAAmB,SAA2Bva,EAAK7F,GAC7CA,EAAQq5E,sBAAwBF,KAClChpC,OAAOipC,eAAeN,QAAQ94E,EAAQq5E,qBAAsBxzE,KAK9DyzE,EAAc,CAChB7xE,KAAM,YACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EAAQ,GACZ,GAAyB,qBAAdqxC,UAA2B,CACpC,GAAIA,UAAUvkC,UAEZ,IAAK,IAAI5W,EAAI,EAAGA,EAAIm7C,UAAUvkC,UAAUtb,OAAQ0E,IAC9C8J,EAAM7M,KAAKk+C,UAAUvkC,UAAU5W,IAG/Bm7C,UAAUw5B,cACZ7qE,EAAM7M,KAAKk+C,UAAUw5B,cAEnBx5B,UAAU33C,UACZsG,EAAM7M,KAAKk+C,UAAU33C,UAGzB,OAAOsG,EAAMxO,OAAS,EAAIwO,OAAQvO,IAIlCq5E,EAAU,CACZ/xE,KAAM,UACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EACA8qE,EAAUx5E,EAAQw5E,UAAgC,qBAAblnC,SAA2BA,SAASyH,gBAAkB,MAI/F,OAHIy/B,GAA2C,oBAAzBA,EAAQ3pC,eAC5BnhC,EAAQ8qE,EAAQ3pC,aAAa,SAExBnhC,IAIP9L,EAAO,CACT6E,KAAM,OACNspC,OAAQ,SAAgB/wC,GACtB,IAAI0O,EACJ,GAAsB,qBAAXyhC,OAAwB,CACjC,IAAI/nC,EAAW+nC,OAAOqW,SAAS+W,SAASh0D,MAAM,mBAC9C,GAAInB,aAAoB3H,MACtB,GAA2C,kBAAhCT,EAAQy5E,oBAAkC,CACnD,GAAqD,kBAA1CrxE,EAASpI,EAAQy5E,qBAC1B,OAEF/qE,EAAQtG,EAASpI,EAAQy5E,qBAAqBx2E,QAAQ,IAAK,SAE3DyL,EAAQtG,EAAS,GAAGnF,QAAQ,IAAK,IAIvC,OAAOyL,IAIPgrE,EAAY,CACdjyE,KAAM,YACNspC,OAAQ,SAAgB/wC,GAEtB,IAAI25E,EAAuE,kBAArC35E,EAAQ25E,yBAAwC35E,EAAQ25E,yBAA2B,EAAI,EAIzHvxE,EAA6B,qBAAX+nC,QAA0BA,OAAOqW,UAAYrW,OAAOqW,SAASL,UAAYhW,OAAOqW,SAASL,SAAS58C,MAAM,0DAG9H,GAAKnB,EAEL,OAAOA,EAASuxE,KAsBpB,IAAIC,EAAuB,WACzB,SAASA,EAAQ7xE,GACf,IAAI/H,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAClF,YAAgBP,KAAMk6E,GACtBl6E,KAAKF,KAAO,mBACZE,KAAKm6E,UAAY,GACjBn6E,KAAKU,KAAK2H,EAAU/H,GAiEtB,OA/DA,YAAa45E,EAAS,CAAC,CACrB72E,IAAK,OACLkB,MAAO,SAAc8D,GACnB,IAAI/H,EAAUC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC9E65E,EAAc75E,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACtFP,KAAKqI,SAAWA,GAAY,CAC1ByE,cAAe,IAEjB9M,KAAKM,QAAUkwE,EAASlwE,EAASN,KAAKM,SAAW,GAjC9C,CACLisC,MAAO,CAAC,cAAe,SAAU,eAAgB,iBAAkB,YAAa,WAChFysC,kBAAmB,MACnBN,aAAc,UACdY,mBAAoB,aACpBK,qBAAsB,aAEtBU,OAAQ,CAAC,gBACTC,gBAAiB,CAAC,UAIlBC,wBAAyB,SAAiCl4E,GACxD,OAAOA,KAqB6C,kBAAzCrC,KAAKM,QAAQi6E,yBAAwCv6E,KAAKM,QAAQi6E,wBAAwBj3E,QAAQ,UAAY,IACvHtD,KAAKM,QAAQi6E,wBAA0B,SAAUl4E,GAC/C,OAAOA,EAAEkB,QAAQ,IAAK,OAKtBvD,KAAKM,QAAQk6E,qBAAoBx6E,KAAKM,QAAQy5E,oBAAsB/5E,KAAKM,QAAQk6E,oBACrFx6E,KAAKo6E,YAAcA,EACnBp6E,KAAKy6E,YAAYhC,GACjBz4E,KAAKy6E,YAAY5B,GACjB74E,KAAKy6E,YAAYtB,GACjBn5E,KAAKy6E,YAAYf,GACjB15E,KAAKy6E,YAAYb,GACjB55E,KAAKy6E,YAAYX,GACjB95E,KAAKy6E,YAAYv3E,GACjBlD,KAAKy6E,YAAYT,KAElB,CACD32E,IAAK,cACLkB,MAAO,SAAqBm2E,GAC1B16E,KAAKm6E,UAAUO,EAAS3yE,MAAQ2yE,IAEjC,CACDr3E,IAAK,SACLkB,MAAO,SAAgBo2E,GACrB,IAAI7sE,EAAQ9N,KACP26E,IAAgBA,EAAiB36E,KAAKM,QAAQisC,OACnD,IAAIquC,EAAW,GAWf,OAVAD,EAAe14E,SAAQ,SAAU44E,GAC/B,GAAI/sE,EAAMqsE,UAAUU,GAAe,CACjC,IAAIxpC,EAASvjC,EAAMqsE,UAAUU,GAAcxpC,OAAOvjC,EAAMxN,SACpD+wC,GAA4B,kBAAXA,IAAqBA,EAAS,CAACA,IAChDA,IAAQupC,EAAWA,EAASt4E,OAAO+uC,QAG3CupC,EAAWA,EAASrxE,KAAI,SAAUqc,GAChC,OAAO9X,EAAMxN,QAAQi6E,wBAAwB30D,MAE3C5lB,KAAKqI,SAASyE,cAAc2T,sBAA8Bm6D,EACvDA,EAASp6E,OAAS,EAAIo6E,EAAS,GAAK,OAE5C,CACDv3E,IAAK,oBACLkB,MAAO,SAA2B4B,EAAKk0E,GACrC,IAAIh6D,EAASrgB,KACRq6E,IAAQA,EAASr6E,KAAKM,QAAQ+5E,QAC9BA,IACDr6E,KAAKM,QAAQg6E,iBAAmBt6E,KAAKM,QAAQg6E,gBAAgBh3E,QAAQ6C,IAAQ,GACjFk0E,EAAOp4E,SAAQ,SAAU64E,GACnBz6D,EAAO85D,UAAUW,IAAYz6D,EAAO85D,UAAUW,GAAWp6D,kBAAkBva,EAAKka,EAAO/f,iBAI1F45E,EAvEkB,GAyE3BA,EAAQp6E,KAAO,oB,kCC3Wf,EAAQ,KAAR,CAA8C,wBAC9CgI,EAAOwa,QAAU,EAAQ,MAAcm9C,sB,mBCDvCn9C,EAAQjF,KAAO,SAAU2P,EAAQ0nB,EAAQqmC,EAAMC,EAAMC,GACnD,IAAIjiE,EAAGvS,EACHy0E,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTn2E,EAAI61E,EAAQE,EAAS,EAAK,EAC1Br1D,EAAIm1D,GAAQ,EAAI,EAChBn2E,EAAIooB,EAAO0nB,EAASxvC,GAOxB,IALAA,GAAK0gB,EAEL5M,EAAIpU,GAAM,IAAOy2E,GAAU,EAC3Bz2E,KAAQy2E,EACRA,GAASH,EACFG,EAAQ,EAAGriE,EAAS,IAAJA,EAAWgU,EAAO0nB,EAASxvC,GAAIA,GAAK0gB,EAAGy1D,GAAS,GAKvE,IAHA50E,EAAIuS,GAAM,IAAOqiE,GAAU,EAC3BriE,KAAQqiE,EACRA,GAASL,EACFK,EAAQ,EAAG50E,EAAS,IAAJA,EAAWumB,EAAO0nB,EAASxvC,GAAIA,GAAK0gB,EAAGy1D,GAAS,GAEvE,GAAU,IAANriE,EACFA,EAAI,EAAIoiE,MACH,IAAIpiE,IAAMmiE,EACf,OAAO10E,EAAI60E,IAAsBn1C,KAAdvhC,GAAK,EAAI,GAE5B6B,GAAQoP,KAAK+b,IAAI,EAAGopD,GACpBhiE,GAAQoiE,EAEV,OAAQx2E,GAAK,EAAI,GAAK6B,EAAIoP,KAAK+b,IAAI,EAAG5Y,EAAIgiE,IAG5C14D,EAAQ8Q,MAAQ,SAAUpG,EAAQzoB,EAAOmwC,EAAQqmC,EAAMC,EAAMC,GAC3D,IAAIjiE,EAAGvS,EAAG2C,EACN8xE,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAcnlE,KAAK+b,IAAI,GAAI,IAAM/b,KAAK+b,IAAI,GAAI,IAAM,EAC1D1sB,EAAI61E,EAAO,EAAKE,EAAS,EACzBr1D,EAAIm1D,EAAO,GAAK,EAChBn2E,EAAIL,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQsR,KAAKC,IAAIvR,GAEbsW,MAAMtW,IAAUA,IAAU4hC,KAC5B1/B,EAAIoU,MAAMtW,GAAS,EAAI,EACvByU,EAAImiE,IAEJniE,EAAInD,KAAKuoC,MAAMvoC,KAAKnJ,IAAInI,GAASsR,KAAK2lE,KAClCj3E,GAAS6E,EAAIyM,KAAK+b,IAAI,GAAI5Y,IAAM,IAClCA,IACA5P,GAAK,IAGL7E,GADEyU,EAAIoiE,GAAS,EACNG,EAAKnyE,EAELmyE,EAAK1lE,KAAK+b,IAAI,EAAG,EAAIwpD,IAEpBhyE,GAAK,IACf4P,IACA5P,GAAK,GAGH4P,EAAIoiE,GAASD,GACf10E,EAAI,EACJuS,EAAImiE,GACKniE,EAAIoiE,GAAS,GACtB30E,GAAMlC,EAAQ6E,EAAK,GAAKyM,KAAK+b,IAAI,EAAGopD,GACpChiE,GAAQoiE,IAER30E,EAAIlC,EAAQsR,KAAK+b,IAAI,EAAGwpD,EAAQ,GAAKvlE,KAAK+b,IAAI,EAAGopD,GACjDhiE,EAAI,IAIDgiE,GAAQ,EAAGhuD,EAAO0nB,EAASxvC,GAAS,IAAJuB,EAAUvB,GAAK0gB,EAAGnf,GAAK,IAAKu0E,GAAQ,GAI3E,IAFAhiE,EAAKA,GAAKgiE,EAAQv0E,EAClBy0E,GAAQF,EACDE,EAAO,EAAGluD,EAAO0nB,EAASxvC,GAAS,IAAJ8T,EAAU9T,GAAK0gB,EAAG5M,GAAK,IAAKkiE,GAAQ,GAE1EluD,EAAO0nB,EAASxvC,EAAI0gB,IAAU,IAAJhhB,I,kCCvD5BkD,EAAOwa,QAAU,SAASm5D,M,kCCzBxB3zE,EAAOwa,QAAU,EAAQ,O,kCCHd,SAASo5D,EAAgBnzE,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,YAAYA,EAAEA,EAAEmJ,QAAQnJ,EAAE5E,OAAOohB,eAAezC,EAAQ,aAAa,CAAC/d,OAAM,IAAK,IAAIo3E,EAAgBD,EAAgB,EAAQ,OAAqBE,EAAWF,EAAgB,EAAQ,OAAgB,EAAQ,MAAgB,IAAIG,EAAUH,EAAgB,EAAQ,OAAmB,SAASI,IAAW,OAAOA,EAASn4E,OAAOyiB,QAAQ,SAAS7d,GAAG,IAAI,IAAI6J,EAAE,EAAEA,EAAE7R,UAAUC,OAAO4R,IAAI,CAAC,IAAI4G,EAAEzY,UAAU6R,GAAG,IAAI,IAAI9J,KAAK0Q,EAAErV,OAAOC,UAAUC,eAAeC,KAAKkV,EAAE1Q,KAAKC,EAAED,GAAG0Q,EAAE1Q,IAAI,OAAOC,IAAIpI,MAAMH,KAAKO,WAAW,SAASg9D,EAAgBh1D,GAAG,MAAM,MAAMA,EAAEkI,OAAO,GAAGlI,EAAE,IAAIA,EAAE,SAASi1D,EAAkBj1D,GAAG,MAAM,MAAMA,EAAEkI,OAAO,GAAGlI,EAAEwgD,OAAO,GAAGxgD,EAAwH,SAASk1D,EAAcl1D,EAAE6J,GAAG,OAAlJ,SAAqB7J,EAAE6J,GAAG,OAAO,IAAI7J,EAAEiC,cAAclH,QAAQ8O,EAAE5H,iBAAiB,IAAI,MAAMlH,QAAQiF,EAAEkI,OAAO2B,EAAE5R,SAA4Ck9D,CAAYn1D,EAAE6J,GAAG7J,EAAEwgD,OAAO32C,EAAE5R,QAAQ+H,EAAE,SAASo1D,EAAmBp1D,GAAG,MAAM,MAAMA,EAAEkI,OAAOlI,EAAE/H,OAAO,GAAG+H,EAAElD,MAAM,GAAG,GAAGkD,EAAE,SAAS61D,EAAU71D,GAAG,IAAI6J,EAAE7J,GAAG,IAAIyQ,EAAE,GAAG1Q,EAAE,GAAGe,EAAE+I,EAAE9O,QAAQ,MAAM,IAAI+F,IAAIf,EAAE8J,EAAE22C,OAAO1/C,GAAG+I,EAAEA,EAAE22C,OAAO,EAAE1/C,IAAI,IAAIiuE,EAAEllE,EAAE9O,QAAQ,KAAK,OAAO,IAAIg0E,IAAIt+D,EAAE5G,EAAE22C,OAAOuuB,GAAGllE,EAAEA,EAAE22C,OAAO,EAAEuuB,IAAI,CAACzZ,SAASzrD,EAAE0rD,OAAO,MAAM9kD,EAAE,GAAGA,EAAE+kD,KAAK,MAAMz1D,EAAE,GAAGA,GAAG,SAASs1D,EAAWr1D,GAAG,IAAI6J,EAAE7J,EAAEs1D,SAAS7kD,EAAEzQ,EAAEu1D,OAAOx1D,EAAEC,EAAEw1D,KAAK10D,EAAE+I,GAAG,IAAI,OAAO4G,GAAG,MAAMA,IAAI3P,GAAG,MAAM2P,EAAEvI,OAAO,GAAGuI,EAAE,IAAIA,GAAG1Q,GAAG,MAAMA,IAAIe,GAAG,MAAMf,EAAEmI,OAAO,GAAGnI,EAAE,IAAIA,GAAGe,EAAE,SAAS20D,EAAez1D,EAAE6J,EAAE4G,EAAE1Q,GAAG,IAAIe,EAAE,iBAAiBd,GAAGc,EAAE+0D,EAAU71D,IAAIqT,MAAMxJ,QAAG,KAAU/I,EAAEyyE,EAAS,GAAGvzE,IAAIs1D,WAAWx0D,EAAEw0D,SAAS,IAAIx0D,EAAEy0D,OAAO,MAAMz0D,EAAEy0D,OAAOrtD,OAAO,KAAKpH,EAAEy0D,OAAO,IAAIz0D,EAAEy0D,QAAQz0D,EAAEy0D,OAAO,GAAGz0D,EAAE00D,KAAK,MAAM10D,EAAE00D,KAAKttD,OAAO,KAAKpH,EAAE00D,KAAK,IAAI10D,EAAE00D,MAAM10D,EAAE00D,KAAK,QAAG,IAAS3rD,QAAG,IAAS/I,EAAEuS,QAAQvS,EAAEuS,MAAMxJ,IAAI,IAAI/I,EAAEw0D,SAASQ,UAAUh1D,EAAEw0D,UAAU,MAAMt1D,GAAG,MAAMA,aAAa+1D,SAAS,IAAIA,SAAS,aAAaj1D,EAAEw0D,SAAS,iFAAiFt1D,EAAE,OAAOyQ,IAAI3P,EAAEhG,IAAI2V,GAAG1Q,EAAEe,EAAEw0D,SAAS,MAAMx0D,EAAEw0D,SAASptD,OAAO,KAAKpH,EAAEw0D,SAAS8d,EAAgBtyE,EAAEw0D,SAASv1D,EAAEu1D,WAAWx0D,EAAEw0D,SAASv1D,EAAEu1D,SAASx0D,EAAEw0D,WAAWx0D,EAAEw0D,SAAS,KAAKx0D,EAAmJ,SAASm1D,IAA0B,IAAI8Y,EAAE,KAAShvE,EAAE,GAAG,MAAM,CAACq2D,UAAU,SAASp2D,GAAG,OAAO+uE,EAAE/uE,EAAE,WAAW+uE,IAAI/uE,IAAI+uE,EAAE,QAAQzY,oBAAoB,SAASt2D,EAAE6J,EAAE4G,EAAE1Q,GAAG,GAAG,MAAMgvE,EAAE,CAAC,IAAIjuE,EAAE,mBAAmBiuE,EAAEA,EAAE/uE,EAAE6J,GAAGklE,EAAE,iBAAiBjuE,EAAE,mBAAmB2P,EAAEA,EAAE3P,EAAEf,GAAGA,GAAE,GAAIA,GAAE,IAAKe,QAAQf,GAAE,IAAK02D,eAAe,SAASz2D,GAAG,IAAI6J,GAAE,EAAG,SAAS4G,IAAI5G,GAAG7J,EAAEpI,WAAM,EAAOI,WAAW,OAAO+H,EAAEnG,KAAK6W,GAAG,WAAW5G,GAAE,EAAG9J,EAAEA,EAAElG,QAAO,SAASmG,GAAG,OAAOA,IAAIyQ,OAAMkmD,gBAAgB,WAAW,IAAI,IAAI32D,EAAEhI,UAAUC,OAAO4R,EAAE,IAAIrR,MAAMwH,GAAGyQ,EAAE,EAAEA,EAAEzQ,EAAEyQ,IAAI5G,EAAE4G,GAAGzY,UAAUyY,GAAG1Q,EAAErG,SAAQ,SAASsG,GAAG,OAAOA,EAAEpI,WAAM,EAAOiS,QAAO,IAAI+sD,IAAY,oBAAoB1uB,SAASA,OAAOmC,WAAWnC,OAAOmC,SAASiB,eAAe,SAASurB,EAAgB72D,EAAE6J,GAAGA,EAAEq+B,OAAO6uB,QAAQ/2D,IAAynB,SAASg3D,IAAkB,IAAI,OAAO9uB,OAAO+uB,QAAQ5jD,OAAO,GAAG,MAAMrT,GAAG,MAAM,IAAuzE,IAAmCm6D,EAAe,CAACC,SAAS,CAACC,WAAW,SAASr6D,GAAG,MAAM,MAAMA,EAAEkI,OAAO,GAAGlI,EAAE,KAAKi1D,EAAkBj1D,IAAIs6D,WAAW,SAASt6D,GAAG,MAAM,MAAMA,EAAEkI,OAAO,GAAGlI,EAAEwgD,OAAO,GAAGxgD,IAAIu6D,QAAQ,CAACF,WAAWpF,EAAkBqF,WAAWtF,GAAiBwF,MAAM,CAACH,WAAWrF,EAAgBsF,WAAWtF,IAAkB,SAASyF,EAAUz6D,GAAG,IAAI6J,EAAE7J,EAAEjF,QAAQ,KAAK,OAAO,IAAI8O,EAAE7J,EAAEA,EAAElD,MAAM,EAAE+M,GAAG,SAAS6wD,IAAc,IAAI16D,EAAEkoC,OAAOqW,SAASP,KAAKn0C,EAAE7J,EAAEjF,QAAQ,KAAK,OAAO,IAAI8O,EAAE,GAAG7J,EAAEoB,UAAUyI,EAAE,GAAmD,SAAS8wD,EAAgB36D,GAAGkoC,OAAOqW,SAASvjD,QAAQy/D,EAAUvyB,OAAOqW,SAASP,MAAM,IAAIh+C,GAAm1E,SAASy7D,EAAMz7D,EAAE6J,EAAE4G,GAAG,OAAOnD,KAAK0f,IAAI1f,KAAK4jB,IAAIlxB,EAAE6J,GAAG4G,GAAu3CsJ,EAAQm9C,qBAArrN,SAA8Bl3D,QAAG,IAASA,IAAIA,EAAE,IAAI42D,GAAW0c,GAAU,GAAI,IAAIj3E,EAAE6rC,OAAO+uB,QAAQp2D,EAAzyB,WAA2B,IAAIb,EAAEkoC,OAAO4P,UAAUC,UAAU,QAAQ,IAAI/3C,EAAEjF,QAAQ,gBAAgB,IAAIiF,EAAEjF,QAAQ,iBAAiB,IAAIiF,EAAEjF,QAAQ,mBAAmB,IAAIiF,EAAEjF,QAAQ,YAAY,IAAIiF,EAAEjF,QAAQ,mBAAoBmtC,OAAO+uB,SAAS,cAAc/uB,OAAO+uB,QAAwiBM,GAAkB1tD,KAAlgB,IAAIq+B,OAAO4P,UAAUC,UAAUh9C,QAAQ,YAA6f0V,EAAEzQ,EAAED,EAAE0Q,EAAEknD,aAAa53C,OAAE,IAAShgB,GAAGA,EAAEe,EAAE2P,EAAE+lD,oBAAoByY,OAAE,IAASnuE,EAAE+1D,EAAgB/1D,EAAEiuE,EAAEt+D,EAAEqnD,UAAUn7D,OAAE,IAASoyE,EAAE,EAAEA,EAAEv/D,EAAExP,EAAE+3D,SAAS3C,EAAmBJ,EAAgBh1D,EAAE+3D,WAAW,GAAG,SAASj+D,EAAEkG,GAAG,IAAI6J,EAAE7J,GAAG,GAAGyQ,EAAE5G,EAAE/O,IAAIiF,EAAE8J,EAAEwJ,MAAMvS,EAAEonC,OAAOqW,SAASwwB,EAAEjuE,EAAEw0D,SAASx0D,EAAEy0D,OAAOz0D,EAAE00D,KAAK,OAAOhmD,IAAIu/D,EAAE7Z,EAAc6Z,EAAEv/D,IAAIimD,EAAesZ,EAAEhvE,EAAE0Q,GAAG,SAAS4M,IAAI,OAAO/P,KAAKqN,SAASxc,SAAS,IAAIqiD,OAAO,EAAE7jD,GAAG,IAAIyC,EAAE62D,IAA0B,SAASp5D,EAAEmD,GAAGuzE,EAASC,EAAExzE,GAAGwzE,EAAEv7E,OAAOoE,EAAEpE,OAAOmH,EAAEu3D,gBAAgB6c,EAAEj1B,SAASi1B,EAAEjd,QAAQ,SAAS93C,EAAEze,IAAr5B,SAAmCA,GAAG,YAAO,IAASA,EAAEqT,QAAQ,IAAIykC,UAAUC,UAAUh9C,QAAQ,UAAwzB09D,CAA0Bz4D,IAAI8f,EAAEhmB,EAAEkG,EAAEqT,QAAQ,SAAS4K,IAAI6B,EAAEhmB,EAAEk9D,MAAoB,IAAI94D,GAAE,EAAG,SAAS4hB,EAAEjW,GAAM3L,GAAEA,GAAE,EAAGrB,KAASuC,EAAEk3D,oBAAoBzsD,EAAE,MAAMolE,GAAE,SAASjvE,GAAGA,EAAEnD,EAAE,CAAC05D,OAAO,MAAMhY,SAAS10C,IAAI,SAAS7J,GAAG,IAAI6J,EAAE2pE,EAAEj1B,SAAS9tC,EAAEgjE,EAAE14E,QAAQ8O,EAAE/O,MAAM,IAAI2V,IAAIA,EAAE,GAAG,IAAI1Q,EAAE0zE,EAAE14E,QAAQiF,EAAElF,MAAM,IAAIiF,IAAIA,EAAE,GAAG,IAAIe,EAAE2P,EAAE1Q,EAAEe,IAAI5C,GAAE,EAAG8qC,EAAEloC,IAAxH,CAA6H+I,MAAM,IAAI2U,EAAE1kB,EAAEk9D,KAAmByc,EAAE,CAACj1D,EAAE1jB,KAAK,SAAS+kB,EAAE7f,GAAG,OAAOwP,EAAE6lD,EAAWr1D,GAAG,SAASgpC,EAAEhpC,GAAG3D,EAAE88D,GAAGn5D,GAAG,IAAI0zE,EAAE,EAAE,SAASC,EAAE3zE,GAAG,KAAK0zE,GAAG1zE,IAAI,IAAIA,GAAGkoC,OAAO2X,iBAAtvC,WAAqxCphC,GAAG5U,GAAGq+B,OAAO2X,iBAAvwC,aAAwyC5hC,IAAI,IAAIy1D,IAAIxrC,OAAOuxB,oBAAt1C,WAAw3Ch7C,GAAG5U,GAAGq+B,OAAOuxB,oBAA12C,aAA84Cx7C,IAAI,IAAI21D,GAAE,EAAOJ,EAAE,CAACv7E,OAAOoE,EAAEpE,OAAOs+D,OAAO,MAAMhY,SAAS//B,EAAE86C,WAAWz5C,EAAEjmB,KAAK,SAASoG,EAAE6J,GAAG,IAAIlN,EAAE84D,EAAez1D,EAAE6J,EAAEwT,IAAIm2D,EAAEj1B,UAAUn/C,EAAEk3D,oBAAoB35D,EAAE,OAAOsyE,GAAE,SAASjvE,GAAG,GAAGA,EAAE,CAAC,IAAI6J,EAAEgW,EAAEljB,GAAG8T,EAAE9T,EAAE7B,IAAIiF,EAAEpD,EAAE0W,MAAM,GAAGxS,EAAE,GAAGxE,EAAEs9D,UAAU,CAAC7+D,IAAI2V,EAAE4C,MAAMtT,GAAG,KAAK8J,GAAGkW,EAAEmoB,OAAOqW,SAASP,KAAKn0C,MAAM,CAAC,IAAI/I,EAAE2yE,EAAE14E,QAAQy4E,EAAEj1B,SAASzjD,KAAKi0E,EAAE0E,EAAE32E,MAAM,EAAEgE,EAAE,GAAGiuE,EAAEn1E,KAAK+C,EAAE7B,KAAK24E,EAAE1E,EAAElyE,EAAE,CAAC05D,OAAO,OAAOhY,SAAS5hD,SAASurC,OAAOqW,SAASP,KAAKn0C,OAAM7O,QAAQ,SAASgF,EAAE6J,GAAG,IAAIklE,EAAE,UAAUpyE,EAAE84D,EAAez1D,EAAE6J,EAAEwT,IAAIm2D,EAAEj1B,UAAUn/C,EAAEk3D,oBAAoB35D,EAAEoyE,EAAEE,GAAE,SAASjvE,GAAG,GAAGA,EAAE,CAAC,IAAI6J,EAAEgW,EAAEljB,GAAG8T,EAAE9T,EAAE7B,IAAIiF,EAAEpD,EAAE0W,MAAM,GAAGxS,EAAE,GAAGxE,EAAEw9D,aAAa,CAAC/+D,IAAI2V,EAAE4C,MAAMtT,GAAG,KAAK8J,GAAGkW,EAAEmoB,OAAOqW,SAASvjD,QAAQ6O,OAAO,CAAC,IAAI/I,EAAE2yE,EAAE14E,QAAQy4E,EAAEj1B,SAASzjD,MAAM,IAAIgG,IAAI2yE,EAAE3yE,GAAGnE,EAAE7B,KAAK+B,EAAE,CAAC05D,OAAOwY,EAAExwB,SAAS5hD,SAASurC,OAAOqW,SAASvjD,QAAQ6O,QAAOsvD,GAAGnwB,EAAE8wB,OAAO,WAAW9wB,GAAG,IAAI+wB,UAAU,WAAW/wB,EAAE,IAAI3a,MAAM,SAASruB,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI6J,EAAEzK,EAAEg3D,UAAUp2D,GAAG,OAAO4zE,IAAID,EAAE,GAAGC,GAAE,GAAI,WAAW,OAAOA,IAAIA,GAAE,EAAGD,GAAG,IAAI9pE,MAAMowD,OAAO,SAASj6D,GAAG,IAAI6J,EAAEzK,EAAEq3D,eAAez2D,GAAG,OAAO2zE,EAAE,GAAG,WAAWA,GAAG,GAAG9pE,OAAO,OAAO2pE,GAA86Iz5D,EAAQ6gD,kBAArzH,SAA2B56D,QAAG,IAASA,IAAIA,EAAE,IAAI42D,GAAW0c,GAAU,GAAI,IAAIzpE,EAAEq+B,OAAO+uB,QAAQxmD,GAApzGy3B,OAAO4P,UAAUC,UAAUh9C,QAAQ,WAAuzGiF,GAAGD,EAAE0Q,EAAE+lD,oBAAoB75D,OAAE,IAASoD,EAAE82D,EAAgB92D,EAAEe,EAAE2P,EAAEqqD,SAASiU,OAAE,IAASjuE,EAAE,QAAQA,EAAEzE,EAAE2D,EAAE+3D,SAAS3C,EAAmBJ,EAAgBh1D,EAAE+3D,WAAW,GAAGl3D,EAAEs5D,EAAe4U,GAAGhvD,EAAElf,EAAEw5D,WAAW4U,EAAEpuE,EAAEy5D,WAAW,SAAS9qD,IAAI,IAAIxP,EAAEivE,EAAEvU,KAAe,OAAOr+D,IAAI2D,EAAEk1D,EAAcl1D,EAAE3D,IAAIo5D,EAAez1D,GAAG,IAAIlG,EAAEm8D,IAA0B,SAAS54C,EAAErd,GAAGuzE,EAASI,EAAE3zE,GAAG2zE,EAAE17E,OAAO4R,EAAE5R,OAAO6B,EAAE68D,gBAAgBgd,EAAEp1B,SAASo1B,EAAEpd,QAAQ,IAAIn3D,GAAE,EAAGvC,EAAE,KAAK,SAAS4hB,IAAI,IAAIze,EAAE06D,IAAc7wD,EAAEkW,EAAE/f,GAAG,GAAGA,IAAI6J,EAAE8wD,EAAgB9wD,OAAO,CAAC,IAAI4G,EAAEjB,IAAIzP,EAAE4zE,EAAEp1B,SAAS,IAAIn/C,GAAG,SAASY,EAAE6J,GAAG,OAAO7J,EAAEs1D,WAAWzrD,EAAEyrD,UAAUt1D,EAAEu1D,SAAS1rD,EAAE0rD,QAAQv1D,EAAEw1D,OAAO3rD,EAAE2rD,KAA9E,CAAoFz1D,EAAE0Q,GAAG,OAAO,GAAG5T,IAAIw4D,EAAW5kD,GAAG,OAAO5T,EAAE,KAAK,SAASgN,GAAMzK,GAAEA,GAAE,EAAGie,KAASvjB,EAAEw8D,oBAAoBzsD,EAAE,MAAMlN,GAAE,SAASqD,GAAGA,EAAEqd,EAAE,CAACk5C,OAAO,MAAMhY,SAAS10C,IAAI,SAAS7J,GAAG,IAAI6J,EAAE8pE,EAAEp1B,SAAS9tC,EAAE+N,EAAE48C,YAAY/F,EAAWxrD,KAAK,IAAI4G,IAAIA,EAAE,GAAG,IAAI1Q,EAAEye,EAAE48C,YAAY/F,EAAWr1D,KAAK,IAAID,IAAIA,EAAE,GAAG,IAAIe,EAAE2P,EAAE1Q,EAAEe,IAAI1B,GAAE,EAAGq0E,EAAE3yE,IAAhJ,CAAqJ+I,MAA/P,CAAsQ4G,IAAI,IAAIwN,EAAEy8C,IAAcx8D,EAAE6hB,EAAE9B,GAAGA,IAAI/f,GAAGy8D,EAAgBz8D,GAAG,IAAI4hB,EAAEtQ,IAAIgP,EAAE,CAAC62C,EAAWv1C,IAAI,SAAS2zD,EAAEzzE,GAAG6J,EAAEsvD,GAAGn5D,GAAG,IAAI6f,EAAE,EAAE,SAASmpB,EAAEhpC,GAAG,KAAK6f,GAAG7f,IAAI,IAAIA,EAAEkoC,OAAO2X,iBAApyD,aAAu0DphC,GAAG,IAAIoB,GAAGqoB,OAAOuxB,oBAAx1D,aAA83Dh7C,GAAG,IAAIi1D,GAAE,EAAOC,EAAE,CAAC17E,OAAO4R,EAAE5R,OAAOs+D,OAAO,MAAMhY,SAASz+B,EAAEw5C,WAAW,SAASt5D,GAAG,IAAI6J,EAAEwgC,SAASixB,cAAc,QAAQ7qD,EAAE,GAAG,OAAO5G,GAAGA,EAAE+9B,aAAa,UAAUn3B,EAAEgqD,EAAUvyB,OAAOqW,SAASP,OAAOvtC,EAAE,IAAIsP,EAAE1jB,EAAEg5D,EAAWr1D,KAAKpG,KAAK,SAASoG,EAAE6J,GAAG,IAAIklE,EAAEtZ,EAAez1D,OAAE,OAAO,EAAO2zE,EAAEp1B,UAAUzkD,EAAEw8D,oBAAoByY,EAAE,OAAOpyE,GAAE,SAASqD,GAAG,GAAGA,EAAE,CAAC,IAAI6J,EAAEwrD,EAAW0Z,GAAGt+D,EAAEsP,EAAE1jB,EAAEwN,GAAG,GAAG6wD,MAAgBjqD,EAAE,CAAC5T,EAAEgN,EAAxyD,SAAsB7J,GAAGkoC,OAAOqW,SAASiX,KAAKx1D,EAA4vDu7D,CAAa9qD,GAAG,IAAI1Q,EAAEye,EAAE48C,YAAY/F,EAAWse,EAAEp1B,WAAWz9C,EAAE0d,EAAE1hB,MAAM,EAAEiD,EAAE,GAAGe,EAAElH,KAAKiQ,GAAG2U,EAAE1d,EAAEuc,EAAE,CAACk5C,OAAO,OAAOhY,SAASwwB,SAAS1xD,SAAQriB,QAAQ,SAASgF,EAAE6J,GAAG,IAAI/I,EAAE,UAAUiuE,EAAEtZ,EAAez1D,OAAE,OAAO,EAAO2zE,EAAEp1B,UAAUzkD,EAAEw8D,oBAAoByY,EAAEjuE,EAAEnE,GAAE,SAASqD,GAAG,GAAGA,EAAE,CAAC,IAAI6J,EAAEwrD,EAAW0Z,GAAGt+D,EAAEsP,EAAE1jB,EAAEwN,GAAG6wD,MAAgBjqD,IAAI5T,EAAEgN,EAAE8wD,EAAgBlqD,IAAI,IAAI1Q,EAAEye,EAAEzjB,QAAQs6D,EAAWse,EAAEp1B,YAAY,IAAIx+C,IAAIye,EAAEze,GAAG8J,GAAGwT,EAAE,CAACk5C,OAAOz1D,EAAEy9C,SAASwwB,SAAQ5V,GAAGsa,EAAE3Z,OAAO,WAAW2Z,GAAG,IAAI1Z,UAAU,WAAW0Z,EAAE,IAAIplD,MAAM,SAASruB,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI6J,EAAE/P,EAAEs8D,UAAUp2D,GAAG,OAAO0zE,IAAI1qC,EAAE,GAAG0qC,GAAE,GAAI,WAAW,OAAOA,IAAIA,GAAE,EAAG1qC,GAAG,IAAIn/B,MAAMowD,OAAO,SAASj6D,GAAG,IAAI6J,EAAE/P,EAAE28D,eAAez2D,GAAG,OAAOgpC,EAAE,GAAG,WAAWA,GAAG,GAAGn/B,OAAO,OAAO8pE,GAA2gD55D,EAAQ6hD,oBAA19C,SAA6B57D,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAI6J,EAAE7J,EAAEc,EAAE+I,EAAE2sD,oBAAoB/lD,EAAE5G,EAAEiyD,eAAe/7D,OAAE,IAAS0Q,EAAE,CAAC,KAAKA,EAAEs+D,EAAEllE,EAAEmyD,aAAar/D,OAAE,IAASoyE,EAAE,EAAEA,EAAE1yE,EAAEwN,EAAEiuD,UAAUj3D,OAAE,IAASxE,EAAE,EAAEA,EAAE0jB,EAAEk2C,IAA0B,SAASgZ,EAAEjvE,GAAGuzE,EAAS90D,EAAEze,GAAGye,EAAExmB,OAAOwmB,EAAEw9C,QAAQhkE,OAAO8nB,EAAE42C,gBAAgBl4C,EAAE8/B,SAAS9/B,EAAE83C,QAAQ,SAAS/mD,IAAI,OAAOlC,KAAKqN,SAASxc,SAAS,IAAIqiD,OAAO,EAAE3/C,GAAG,IAAI/G,EAAE2hE,EAAM9+D,EAAE,EAAEoD,EAAE9H,OAAO,GAAGolB,EAAEtd,EAAEiB,KAAI,SAAShB,GAAG,OAAOy1D,EAAez1D,OAAE,EAAO,iBAAiBA,EAAEwP,IAAIxP,EAAElF,KAAK0U,QAAOpQ,EAAEi2D,EAAW,SAASx4D,EAAEmD,GAAG,IAAI6J,EAAE4xD,EAAMh9C,EAAE/gB,MAAMsC,EAAE,EAAEye,EAAEw9C,QAAQhkE,OAAO,GAAGwY,EAAEgO,EAAEw9C,QAAQpyD,GAAGkW,EAAEu2C,oBAAoB7lD,EAAE,MAAM3P,GAAE,SAASd,GAAGA,EAAEivE,EAAE,CAAC1Y,OAAO,MAAMhY,SAAS9tC,EAAE/S,MAAMmM,IAAIolE,OAAM,IAAIxwD,EAAE,CAACxmB,OAAOolB,EAAEplB,OAAOs+D,OAAO,MAAMhY,SAASlhC,EAAEvjB,GAAG4D,MAAM5D,EAAEmiE,QAAQ5+C,EAAEi8C,WAAWl6D,EAAExF,KAAK,SAASoG,EAAE6J,GAAG,IAAI9J,EAAE01D,EAAez1D,EAAE6J,EAAE2F,IAAIiP,EAAE8/B,UAAUx+B,EAAEu2C,oBAAoBv2D,EAAE,OAAOe,GAAE,SAASd,GAAG,GAAGA,EAAE,CAAC,IAAI6J,EAAE4U,EAAE/gB,MAAM,EAAE+S,EAAEgO,EAAEw9C,QAAQn/D,MAAM,GAAG2T,EAAExY,OAAO4R,EAAE4G,EAAE9S,OAAOkM,EAAE4G,EAAExY,OAAO4R,EAAE9J,GAAG0Q,EAAE7W,KAAKmG,GAAGkvE,EAAE,CAAC1Y,OAAO,OAAOhY,SAASx+C,EAAErC,MAAMmM,EAAEoyD,QAAQxrD,SAAQzV,QAAQ,SAASgF,EAAE6J,GAAG,IAAI4G,EAAE,UAAU1Q,EAAE01D,EAAez1D,EAAE6J,EAAE2F,IAAIiP,EAAE8/B,UAAUx+B,EAAEu2C,oBAAoBv2D,EAAE0Q,EAAE3P,GAAE,SAASd,GAAGA,IAAIye,EAAEw9C,QAAQx9C,EAAE/gB,OAAOqC,EAAEkvE,EAAE,CAAC1Y,OAAO9lD,EAAE8tC,SAASx+C,SAAQo5D,GAAGt8D,EAAEi9D,OAAO,WAAWj9D,GAAG,IAAIk9D,UAAU,WAAWl9D,EAAE,IAAIs/D,MAAM,SAASn8D,GAAG,IAAI6J,EAAE4U,EAAE/gB,MAAMsC,EAAE,OAAO,GAAG6J,GAAGA,EAAE4U,EAAEw9C,QAAQhkE,QAAQo2B,MAAM,SAASruB,GAAG,YAAO,IAASA,IAAIA,GAAE,GAAI+f,EAAEq2C,UAAUp2D,IAAIi6D,OAAO,SAASj6D,GAAG,OAAO+f,EAAE02C,eAAez2D,KAAK,OAAOye,GAAgJ1E,EAAQ07C,eAAeA,EAAe17C,EAAQi8C,kBAA55Q,SAA2Bh2D,EAAE6J,GAAG,OAAO7J,EAAEs1D,WAAWzrD,EAAEyrD,UAAUt1D,EAAEu1D,SAAS1rD,EAAE0rD,QAAQv1D,EAAEw1D,OAAO3rD,EAAE2rD,MAAMx1D,EAAElF,MAAM+O,EAAE/O,KAAKu4E,EAAWrzE,EAAEqT,MAAMxJ,EAAEwJ,QAAszQ0G,EAAQ87C,UAAUA,EAAU97C,EAAQs7C,WAAWA,G,oBCA3oUntB,OAA7Q3oC,EAAOwa,QAA6Q,SAASlQ,EAAE/I,GAAG,OAAOiuE,EAAE,GAAGpyE,EAAEuB,EAAE6B,EAAE,CAAC,SAAS0Q,EAAEzQ,GAAGyQ,EAAEsJ,QAAQlQ,GAAG,SAAS4G,EAAEzQ,GAAGyQ,EAAEsJ,QAAQjZ,GAAG,SAAS2P,EAAEzQ,EAAE6J,GAAG4G,EAAEsJ,QAAQlQ,EAAE,IAAI,SAAS4G,EAAEzQ,EAAE6J,GAAG,aAAaA,EAAE/I,EAAEd,GAAG,IAAIZ,EAAEyK,EAAE,GAAGolE,EAAEplE,EAAE,GAAqOgW,EAAE,SAASpP,EAAEzQ,EAAE6J,GAAG,IAAI/I,EAAEnE,EAAE8T,EAAE4oC,YAAY,MAAM,KAAK18C,EAAE4S,OAAO,CAACub,OAAOhqB,EAAE+I,EAAE,CAACyiC,KAAK,IAAIunC,QAAQ,CAAC,IAAI5E,EAAE6E,YAAYC,SAAS,CAACjzE,GAAGkzE,OAAO,MAAM,CAAClpD,MAAM,CAACwhB,KAAK3vC,EAAEk3E,QAAQr7E,MAAMmE,EAAE1E,QAAQ+0D,KAAKhtD,GAAG+zE,SAASv7E,MAAMmE,EAAE1E,QAAQ+0D,KAAKnjD,GAAGmqE,OAAO,MAAMC,EAAE,WAAW,MAAM,CAAC3nC,KAAK,KAAKunC,QAAQ,CAAC,IAAI5E,EAAE6E,YAAYC,SAAS,IAAIv7E,MAAM,GAAGw7E,OAAO,KAAoEL,EAAE,SAASljE,EAAEzQ,GAAG,MAAM,CAACssC,KAAK,GAAGunC,QAAQ,GAAGE,SAAS,GAAGC,OAAO,CAAC,CAACz8E,KAAKkZ,EAAEm1B,MAAM,EAAE9pC,KAAKkE,GAAG,IAAIivE,EAAEiF,IAAI,QAAQp0D,EAAE,SAASrP,EAAEzQ,EAAE6J,GAAG,MAAM,CAACyiC,KAAK,KAAKunC,QAAQ,GAAGE,SAAS,GAAGC,OAAO,CAAC,CAACz8E,KAAKkZ,EAAEm1B,MAAMt4B,KAAK4jB,IAAI,EAAE5jB,KAAK0f,IAAI,EAAEhtB,IAAIlE,KAAK+N,GAAG,IAAIolE,EAAEiF,IAAI,QAAQV,EAAE,SAAS/iE,GAAG,MAAM,CAAC67B,KAAK,MAAMunC,QAAQ,CAAC,IAAI5E,EAAE6E,YAAYC,SAAS,CAACtjE,GAAGujE,OAAO,CAAC,CAACz8E,KAAK,SAASquC,MAAM,EAAE9pC,KAAK,IAAImzE,EAAEiF,IAAI,QAAQlrC,EAAE,SAASv4B,EAAEzQ,GAAG,MAAM,CAACssC,KAAK77B,EAAE67B,KAAKtsC,EAAEssC,KAAKunC,QAAQpjE,EAAEojE,QAAQ95E,OAAOiG,EAAE6zE,SAASE,SAAStjE,EAAEsjE,SAASh6E,OAAOiG,EAAE+zE,UAAUC,OAAOvjE,EAAEujE,OAAOj6E,OAAOiG,EAAEg0E,UAAUG,EAAE,IAAIlF,EAAEiF,IAAI,CAAC,aAAa,CAACxsC,QAAQ,MAAM,aAAa,CAACA,QAAQ,MAAM,eAAe,CAACA,QAAQ,MAAM,cAAc,CAACA,QAAQ,MAAM,cAAc,CAACA,QAAQ,MAAM,aAAa,CAACA,QAAQ,MAAM,sBAAsB,CAACA,QAAQ,KAAKoG,QAAQ,MAAM,oBAAoB,CAACpG,QAAQ,KAAKoG,QAAQ,MAAMsmC,WAAW,CAAC1sC,QAAQ,cAActqC,KAAK,CAACsqC,QAAQ,OAAO2sC,OAAO,CAAC3sC,QAAQ,UAAU4sC,SAAS,CAAC5sC,QAAQ,IAAI6sC,gBAAgB,CAAC,UAAcb,EAAE,CAACt2E,KAAK,OAAOo3E,IAAI,gBAAgBC,GAAG,SAASC,OAAO,OAAOC,IAAI,YAAYC,IAAI,YAAYC,IAAI,eAAe,SAASjB,EAAEnjE,GAAG,OAAOA,EAAEe,MAAM+wB,UAAU,IAAI0sC,EAAEiF,IAAI,CAAC,aAAazjE,EAAEe,MAAM+wB,YAAY9xB,EAAEe,MAAMuwB,WAAW,IAAIktC,EAAEiF,IAAI,CAAC,cAAczjE,EAAEe,MAAMuwB,kBAAa,EAAO,IAAIrjB,EAAE,SAASjO,GAAG,IAAIzQ,OAAE,EAAO,GAAGyQ,aAAaqkE,kBAAkB,CAAC,IAAIjrE,EAAE,GAAG7J,EAAEyQ,EAAEskE,cAAS,IAAStkE,EAAEskE,QAAQC,SAASnrE,EAAE40B,IAAIhuB,EAAEutC,KAAKn0C,EAAEyiC,KAAK77B,EAAEs7B,UAAUliC,EAAE7N,MAAMyU,EAAEskE,QAAQ/4E,MAAMoD,EAAE61E,OAAOC,SAAS,UAAU,YAAYrrE,KAAKA,EAAE40B,IAAIhuB,EAAEm3B,cAAcn3B,EAAEm3B,aAAa,SAASn3B,EAAEutC,KAAKn0C,EAAEsrE,MAAM1kE,EAAEs7B,UAAUliC,EAAEurE,aAAa3kE,EAAEhS,OAAOW,EAAE61E,OAAOC,SAAS,OAAO,UAAUrrE,IAAI,OAAO7J,GAAG6J,EAAEwT,EAAErd,EAAE,WAAU,WAAW,OAAOc,KAAI,IAAU0O,EAAE,IAAIzO,OAAO,SAAS,KAAKnE,GAAE,EAAG,SAASy4E,EAAE5kE,EAAEzQ,EAAE6J,EAAE/I,EAAEnE,EAAEoD,GAAG,IAAIgvE,EAAEt+D,EAAEwnC,SAASh2C,cAAc,GAAGlC,EAAE,CAAC,IAAIjG,EAAEiG,EAAEgvE,EAAEt+D,GAAG,GAAG3W,EAAE,CAAC,IAAI+G,EAAEzB,EAAE61E,OAAOC,SAASp7E,EAAEvC,KAAKuC,EAAEw7E,WAAWx7E,EAAEgC,MAAM,IAAI,MAAM,CAACgvB,MAAM0oD,EAAE3yE,KAAK,GAAG,UAAUkuE,GAAG,OAAOt+D,EAAE4oC,YAAY,OAAOx5B,EAAEpP,EAAEzQ,EAAErD,GAAG,GAAG,OAAOoyE,EAAE,MAAM,CAACjkD,MAAMmpD,KAAK,GAAG,QAAQlF,GAAGt+D,aAAa8kE,iBAAiB,CAAC,IAAItG,EAAE,GAAGA,EAAElkC,IAAIt6B,EAAEm3B,cAAcn3B,EAAEm3B,aAAa,QAAQn3B,EAAEs6B,IAAIkkC,EAAEuG,IAAI/kE,EAAE+kE,IAAIvG,EAAEtvD,OAAOlP,EAAEe,MAAMmO,OAAOsvD,EAAEvvD,MAAMjP,EAAEe,MAAMkO,MAAMjP,EAAEe,MAAMwvB,QAAQiuC,EAAEwG,UAAUhlE,EAAEe,MAAMwvB,OAAO,IAAI3kC,EAAE+C,EAAE61E,OAAOC,SAAS,QAAQ,UAAUjG,GAAG,MAAM,CAACnkD,MAAM0oD,EAAEn3E,IAAI,GAAG,UAAU0yE,GAAGt+D,aAAailE,iBAAiB,CAAC,IAAIr4D,EAAE,GAAGA,EAAE0tB,IAAIt6B,EAAEm3B,cAAcn3B,EAAEm3B,aAAa,QAAQn3B,EAAEs6B,IAAI1tB,EAAEm4D,IAAI/kE,EAAE+kE,IAAIn4D,EAAEsC,OAAOlP,EAAEe,MAAMmO,OAAOtC,EAAEqC,MAAMjP,EAAEe,MAAMkO,MAAMjP,EAAEe,MAAMwvB,QAAQ3jB,EAAEo4D,UAAUhlE,EAAEe,MAAMwvB,OAAO,IAAIxxB,EAAEpQ,EAAE61E,OAAOC,SAAS,QAAQ,UAAU73D,GAAG,MAAM,CAACyN,MAAM0oD,EAAEhkE,IAAI,GAAG,WAAWu/D,GAAGt+D,aAAaklE,kBAAkB,CAAC,IAAIz3E,EAAE,GAAGA,EAAE6sC,IAAIt6B,EAAEm3B,cAAcn3B,EAAEm3B,aAAa,QAAQn3B,EAAEs6B,IAAI7sC,EAAEyhB,OAAOlP,EAAEkP,OAAOzhB,EAAEwhB,MAAMjP,EAAEiP,MAAM,IAAI7iB,EAAEuC,EAAE61E,OAAOC,SAAS,gBAAgB,UAAUh3E,GAAG,MAAM,CAAC4sB,MAAM0oD,EAAE32E,IAAI,IAAIkjB,EAAEvB,EAAE,SAASxe,EAAE6J,GAAG,IAAI4G,EAAE0jE,EAAEt6E,QAAO,SAAS4W,GAAG,OAAOA,EAAEi3B,UAAU1nC,KAAKyQ,EAAEq9B,SAASr9B,EAAEq9B,UAAUjkC,IAAI4G,EAAEq9B,UAAU9tC,GAAGyQ,EAAE8jE,kBAAkB,EAAE9jE,EAAE8jE,gBAAgBx5E,QAAQiF,MAAK41E,SAASC,QAAQ3X,UAAU,GAAG,IAAIztD,EAAExY,OAAO,OAAOwY,EAAE,GAApN,CAAwNs+D,EAAEjuE,GAAG0d,IAAI,OAAOuwD,GAAG,OAAOA,GAAGjuE,EAAEiuE,EAAEllE,GAAG,IAAI,wBAAwB2U,GAAG,sBAAsBA,IAAI1d,EAAE,GAAG+I,GAAG,GAAGjN,GAAGmjB,EAAE4zD,EAAEn1D,EAAEo1D,EAAEnjE,IAAI7T,GAAE,GAAImjB,EAAED,EAAEtB,EAAE3U,EAAE+pE,EAAEnjE,MAAMsP,EAAEA,GAAx+F,CAACusB,KAAK,GAAGunC,QAAQ,GAAGE,SAAS,GAAGC,OAAO,IAAw8Fh0E,EAAE,SAASyQ,EAAEzQ,EAAE6J,GAAG,IAAI/I,EAAEnE,EAAE+2E,EAAEjjE,GAAG,GAAG9T,EAAEmE,EAAE+I,EAAE+V,IAAIjjB,GAAGm5E,oBAAoB,GAAG91E,aAAa+1E,YAAY,CAAC,IAAIl1E,EAAEb,EAAEc,GAAGA,EAAE+I,GAAGmsE,eAAc,SAASvlE,GAAG,IAAIzQ,EAAEa,EAAE2Q,MAAMkf,MAAM7mB,EAAEhJ,EAAE2Q,MAAM6pB,gBAAgBv6B,EAAED,EAAE2Q,MAAM+vB,SAAS5kC,EAAEkE,EAAE2Q,MAAM8yB,WAAWtpC,QAAQ,SAAS,IAAI+E,EAAEc,EAAE2Q,MAAMizB,WAAWsqC,EAAEluE,EAAE2Q,MAAMo1B,eAAe9sC,EAAE+G,EAAE2Q,MAAMmzB,UAAU3kC,GAAGyQ,EAAEmP,IAAI,SAAS7lB,OAAOiG,EAAEhF,QAAQ,KAAK,MAAM6O,GAAG4G,EAAEmP,IAAI,WAAW7lB,OAAO8P,EAAE7O,QAAQ,KAAK,MAAM8F,GAAG2P,EAAEmP,IAAI,YAAY7lB,OAAO+G,EAAE9F,QAAQ,OAAO,MAAM2B,GAAG8T,EAAEmP,IAAI,cAAc7lB,OAAO4C,IAAI,SAASoD,GAAG0Q,EAAEmP,IAAI8zD,EAAEgB,QAAQ,cAAc3F,GAAGt+D,EAAEmP,IAAI8zD,EAAEiB,KAAK,WAAW76E,GAAG2W,EAAEmP,IAAI8zD,EAAEe,OAAMqB,eAAe,OAAOh1E,EAAplB,CAAulBiuE,EAAEt+D,EAAEzQ,GAAG,IAAI,IAAIsd,EAAE7M,EAAEw7B,WAAW3uB,GAAG,CAAC,IAAImB,EAAE42D,EAAE/3D,EAAEtd,EAAE6J,EAAE/I,EAAE4d,EAAEpB,IAAI3gB,EAAEoD,GAAG+qB,MAAM/K,EAAEipB,EAAEjpB,EAAEtB,GAAGnB,EAAEA,EAAEk1B,YAAY,MAAM,CAAC1nB,MAAM/K,GAAG,SAASjf,EAAE2P,EAAEzQ,GAAG,IAAI6J,EAAIlN,EAAEoD,GAAG8J,EAAE7J,GAA2BrD,EAAhyI,SAAS8T,GAAG,IAAIzQ,EAAE6J,EAAE,KAAK,OAAOwgC,SAAS4rC,gBAAgB5rC,SAAS4rC,eAAeC,sBAAsBl2E,EAAEqqC,SAAS4rC,eAAeC,mBAAmB,QAAQpkC,gBAAgB/F,UAAUt7B,EAAE5G,EAAE7J,EAAEm2E,qBAAqB,QAAQ,IAAItsE,EAAqkIxN,CAAzBoU,EAAElB,OAAOvU,QAAQwU,EAAvnE,QAAsoE5S,GAAE,EAAG,CAACkuB,MAAMuqD,EAAE14E,EAAE,IAAIsyE,EAAE6E,YAAY,EAAE,QAAG,EAAOjqE,GAAGihB,QAAQ,MAAM,GAAG/qB,EAAE,CAAC,IAAIgvE,EAAEhvE,EAAE+qB,MAAMhxB,EAAE,IAAIm1E,EAAEmH,WAAW,IAAIrH,EAAEgF,UAAUhF,EAAEgF,SAASr6E,SAAQ,SAAS+W,GAAGA,IAAI3W,EAAEA,EAAEsS,IAAIqE,EAAErR,EAAE61E,OAAOoB,MAAM5lE,QAAO,IAAI5P,EAAE,EAAE,MAAM,CAACy1E,cAAcvH,EAAEziC,KAAK7yC,MAAM,MAAMuH,KAAI,SAASyP,EAAEzQ,GAAG,IAAI6J,EAAEhJ,EAAE4P,EAAExY,OAAO6I,EAAEiuE,GAAGA,EAAE8E,QAAQ/2E,MAAM+D,EAAEgJ,GAAGlN,EAAEoyE,GAAGA,EAAEgF,SAASj3E,MAAM+D,EAAEgJ,GAAG9J,EAAE,IAAIkvE,EAAEsH,KAAKz1E,EAAEE,KAAI,SAASyP,EAAEzQ,GAAG,IAAI6J,EAAE,CAAC2H,MAAMf,EAAE+lE,OAAO,MAAM,OAAO75E,EAAEqD,KAAK6J,EAAE2sE,OAAO75E,EAAEqD,IAAIZ,EAAEq3E,kBAAkBv2E,OAAO2J,OAAM,OAAOhJ,EAAEgJ,EAAE,IAAIzK,EAAEs3E,aAAa,CAAC57E,IAAIM,OAAOgE,EAAEu3E,OAATv7E,GAAmB7D,KAAKw3E,GAAGA,EAAEiF,OAAOh0E,IAAI+uE,EAAEiF,OAAOh0E,GAAGzI,MAAM,WAAWquC,MAAMmpC,GAAGA,EAAEiF,OAAOh0E,IAAI+uE,EAAEiF,OAAOh0E,GAAG4lC,MAAM9pC,KAAKizE,GAAGA,EAAEiF,OAAOh0E,IAAI+uE,EAAEiF,OAAOh0E,GAAGlE,MAAM,IAAImzE,EAAEiF,IAAI,IAAI5nC,KAAK77B,EAAEmmE,cAAc72E,OAAM82E,UAAU/8E,GAAG,OAAO,QAAQ6C,EAAEkE,EAAEkuE,EAAEpyE,EAAE0gB,EAAE,SAAS5M,EAAEzQ,EAAE6J,GAAGlN,EAAEoyE,EAAEt+D,EAAEzQ,IAAI5E,OAAOohB,eAAe/L,EAAEzQ,EAAE,CAAC82E,YAAW,EAAGphE,IAAI7L,KAAKlN,EAAEmE,EAAE,SAAS2P,GAAG,oBAAoBuO,QAAQA,OAAO+3D,aAAa37E,OAAOohB,eAAe/L,EAAEuO,OAAO+3D,YAAY,CAAC/6E,MAAM,WAAWZ,OAAOohB,eAAe/L,EAAE,aAAa,CAACzU,OAAM,KAAMW,EAAEqD,EAAE,SAASA,EAAEyQ,GAAG,GAAG,EAAEA,IAAIzQ,EAAErD,EAAEqD,IAAI,EAAEyQ,EAAE,OAAOzQ,EAAE,GAAG,EAAEyQ,GAAG,iBAAiBzQ,GAAGA,GAAGA,EAAEga,WAAW,OAAOha,EAAE,IAAI6J,EAAEzO,OAAO8E,OAAO,MAAM,GAAGvD,EAAEmE,EAAE+I,GAAGzO,OAAOohB,eAAe3S,EAAE,UAAU,CAACitE,YAAW,EAAG96E,MAAMgE,IAAI,EAAEyQ,GAAG,iBAAiBzQ,EAAE,IAAI,IAAIc,KAAKd,EAAErD,EAAE0gB,EAAExT,EAAE/I,EAAE,SAAS2P,GAAG,OAAOzQ,EAAEyQ,IAAIuE,KAAK,KAAKlU,IAAI,OAAO+I,GAAGlN,EAAEkN,EAAE,SAAS4G,GAAG,IAAIzQ,EAAEyQ,GAAGA,EAAEuJ,WAAW,WAAW,OAAOvJ,EAAEtH,SAAS,WAAW,OAAOsH,GAAG,OAAO9T,EAAE0gB,EAAErd,EAAE,IAAIA,GAAGA,GAAGrD,EAAEoyE,EAAE,SAASt+D,EAAEzQ,GAAG,OAAO5E,OAAOC,UAAUC,eAAeC,KAAKkV,EAAEzQ,IAAIrD,EAAEE,EAAE,GAAGF,EAAEA,EAAEN,EAAE,GAAG,SAASM,EAAE8T,GAAG,GAAGs+D,EAAEt+D,GAAG,OAAOs+D,EAAEt+D,GAAGsJ,QAAQ,IAAI/Z,EAAE+uE,EAAEt+D,GAAG,CAAC9T,EAAE8T,EAAE3W,GAAE,EAAGigB,QAAQ,IAAI,OAAOha,EAAE0Q,GAAGlV,KAAKyE,EAAE+Z,QAAQ/Z,EAAEA,EAAE+Z,QAAQpd,GAAGqD,EAAElG,GAAE,EAAGkG,EAAE+Z,QAAQ,IAAIha,EAAEgvE,EAA7wM/uE,CAAE,EAAQ,MAAa,EAAQ","file":"static/js/defaultVendors~main~73914085.d765a22f.chunk.js","sourcesContent":["const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n this.observers[event] = this.observers[event] || [];\n this.observers[event].push(listener);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(l => l !== listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = [].concat(this.observers[event]);\n cloned.forEach(observer => {\n observer(...args);\n });\n }\n if (this.observers['*']) {\n const cloned = [].concat(this.observers['*']);\n cloned.forEach(observer => {\n observer.apply(observer, [event, ...args]);\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nconst chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = new RegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const paths = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n let j = 2;\n let p = paths.slice(i, i + j).join(keySeparator);\n let mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n const joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n const result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const defaultValue = options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n this.pluralResolver.getSuffixes(language, options).forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: resolved,\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const regexpStr = `${this.prefix}(.+?)${this.suffix}`;\n this.regexp = new RegExp(regexpStr, 'g');\n const regexpUnescapeStr = `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n const nestingRegexpStr = `${this.nestingPrefix}(.+?)${this.nestingSuffix}`;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: (value, format, lng, options) => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Guid = /** @class */ (function () {\r\n function Guid(guid) {\r\n if (!guid) {\r\n throw new TypeError(\"Invalid argument; `value` has no value.\");\r\n }\r\n this.value = Guid.EMPTY;\r\n if (guid && Guid.isGuid(guid)) {\r\n this.value = guid;\r\n }\r\n }\r\n Guid.isGuid = function (guid) {\r\n var value = guid.toString();\r\n return guid && (guid instanceof Guid || Guid.validator.test(value));\r\n };\r\n Guid.create = function () {\r\n return new Guid([Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join(\"-\"));\r\n };\r\n Guid.createEmpty = function () {\r\n return new Guid(\"emptyguid\");\r\n };\r\n Guid.parse = function (guid) {\r\n return new Guid(guid);\r\n };\r\n Guid.raw = function () {\r\n return [Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join(\"-\");\r\n };\r\n Guid.gen = function (count) {\r\n var out = \"\";\r\n for (var i = 0; i < count; i++) {\r\n // tslint:disable-next-line:no-bitwise\r\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n return out;\r\n };\r\n Guid.prototype.equals = function (other) {\r\n // Comparing string `value` against provided `guid` will auto-call\r\n // toString on `guid` for comparison\r\n return Guid.isGuid(other) && this.value === other.toString();\r\n };\r\n Guid.prototype.isEmpty = function () {\r\n return this.value === Guid.EMPTY;\r\n };\r\n Guid.prototype.toString = function () {\r\n return this.value;\r\n };\r\n Guid.prototype.toJSON = function () {\r\n return {\r\n value: this.value\r\n };\r\n };\r\n Guid.validator = new RegExp(\"^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$\", \"i\");\r\n Guid.EMPTY = \"00000000-0000-0000-0000-000000000000\";\r\n return Guid;\r\n}());\r\nexports.Guid = Guid;\r\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*!\n * html2canvas 1.4.1 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\n\n var Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n }());\n var parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n };\n var parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n };\n\n /*\n * css-line-break 2.1.0 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n }\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n }\n var decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2$1 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1$1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT$1 = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\n var slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n }\n\n var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\n var LETTER_NUMBER_MODIFIER = 50;\n // Non-tailorable Line Breaking Classes\n var BK = 1; // Cause a line break (after)\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\n var LF$1 = 3; // Cause a line break (after)\n var CM = 4; // Prohibit a line break between the character and the preceding character\n var NL = 5; // Cause a line break (after)\n var WJ = 7; // Prohibit line breaks before and after\n var ZW = 8; // Provide a break opportunity\n var GL = 9; // Prohibit line breaks before and after\n var SP = 10; // Enable indirect line breaks\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n // Break Opportunities\n var B2 = 12; // Provide a line break opportunity before and after the character\n var BA = 13; // Generally provide a line break opportunity after the character\n var BB = 14; // Generally provide a line break opportunity before the character\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\n var CB = 16; // Provide a line break opportunity contingent on additional information\n // Characters Prohibiting Certain Breaks\n var CL = 17; // Prohibit line breaks before\n var CP = 18; // Prohibit line breaks before\n var EX = 19; // Prohibit line breaks before\n var IN = 20; // Allow only indirect line breaks between pairs\n var NS = 21; // Allow only indirect line breaks before\n var OP = 22; // Prohibit line breaks after\n var QU = 23; // Act like they are both opening and closing\n // Numeric Context\n var IS = 24; // Prevent breaks after any and before numeric\n var NU = 25; // Form numeric expressions for line breaking purposes\n var PO = 26; // Do not break following a numeric expression\n var PR = 27; // Do not break in front of a numeric expression\n var SY = 28; // Prevent a break before; and allow a break after\n // Other Characters\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\n var EB = 32; // Do not break from following Emoji Modifier\n var EM = 33; // Do not break from preceding Emoji Base\n var H2 = 34; // Form Korean syllable blocks\n var H3 = 35; // Form Korean syllable blocks\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\n var ID = 37; // Break before or after; except in some numeric context\n var JL = 38; // Form Korean syllable blocks\n var JV = 39; // Form Korean syllable blocks\n var JT = 40; // Form Korean syllable blocks\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n var ea_OP = [0x2329, 0xff08];\n var BREAK_MANDATORY = '!';\n var BREAK_NOT_ALLOWED$1 = '×';\n var BREAK_ALLOWED$1 = '÷';\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\n var ALPHABETICS = [AL, HL];\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\n var SPACE$1 = [SP, ZW];\n var PREFIX_POSTFIX = [PR, PO];\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\n var HYPHEN = [HY, BA];\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n };\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n };\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n };\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n };\n var cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n };\n var Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n }());\n var LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n\n // https://www.w3.org/TR/css-syntax-3\n var FLAG_UNRESTRICTED = 1 << 0;\n var FLAG_ID = 1 << 1;\n var FLAG_INTEGER = 1 << 2;\n var FLAG_NUMBER = 1 << 3;\n var LINE_FEED = 0x000a;\n var SOLIDUS = 0x002f;\n var REVERSE_SOLIDUS = 0x005c;\n var CHARACTER_TABULATION = 0x0009;\n var SPACE = 0x0020;\n var QUOTATION_MARK = 0x0022;\n var EQUALS_SIGN = 0x003d;\n var NUMBER_SIGN = 0x0023;\n var DOLLAR_SIGN = 0x0024;\n var PERCENTAGE_SIGN = 0x0025;\n var APOSTROPHE = 0x0027;\n var LEFT_PARENTHESIS = 0x0028;\n var RIGHT_PARENTHESIS = 0x0029;\n var LOW_LINE = 0x005f;\n var HYPHEN_MINUS = 0x002d;\n var EXCLAMATION_MARK = 0x0021;\n var LESS_THAN_SIGN = 0x003c;\n var GREATER_THAN_SIGN = 0x003e;\n var COMMERCIAL_AT = 0x0040;\n var LEFT_SQUARE_BRACKET = 0x005b;\n var RIGHT_SQUARE_BRACKET = 0x005d;\n var CIRCUMFLEX_ACCENT = 0x003d;\n var LEFT_CURLY_BRACKET = 0x007b;\n var QUESTION_MARK = 0x003f;\n var RIGHT_CURLY_BRACKET = 0x007d;\n var VERTICAL_LINE = 0x007c;\n var TILDE = 0x007e;\n var CONTROL = 0x0080;\n var REPLACEMENT_CHARACTER = 0xfffd;\n var ASTERISK = 0x002a;\n var PLUS_SIGN = 0x002b;\n var COMMA = 0x002c;\n var COLON = 0x003a;\n var SEMICOLON = 0x003b;\n var FULL_STOP = 0x002e;\n var NULL = 0x0000;\n var BACKSPACE = 0x0008;\n var LINE_TABULATION = 0x000b;\n var SHIFT_OUT = 0x000e;\n var INFORMATION_SEPARATOR_ONE = 0x001f;\n var DELETE = 0x007f;\n var EOF = -1;\n var ZERO = 0x0030;\n var a = 0x0061;\n var e = 0x0065;\n var f = 0x0066;\n var u = 0x0075;\n var z = 0x007a;\n var A = 0x0041;\n var E = 0x0045;\n var F = 0x0046;\n var U = 0x0055;\n var Z = 0x005a;\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\n var isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n };\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\n var isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n };\n var isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n };\n var isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n };\n var isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n };\n var isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n };\n var isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n };\n var isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n };\n var stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n };\n var LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n };\n var RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n };\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\n var LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n };\n var RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n };\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\n var LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n };\n var RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n };\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\n var Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n }());\n\n var Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n }());\n var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\n var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\n var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\n var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\n var isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n };\n var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\n var nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n };\n var parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n };\n var isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n };\n\n var isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n };\n\n var isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n };\n var parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n };\n var ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n };\n var FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n };\n var getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n };\n var getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n };\n\n var DEG = 'deg';\n var GRAD = 'grad';\n var RAD = 'rad';\n var TURN = 'turn';\n var angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n };\n var isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n };\n var parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n };\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n };\n var isTransparent = function (color) { return (0xff & color) === 0; };\n var asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n };\n var pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n };\n var getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n };\n var rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n };\n function hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n }\n var hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n };\n var SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n };\n var parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n };\n var COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n };\n\n var backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n };\n var processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n };\n var getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n };\n var calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n };\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\n var findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n };\n var calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n };\n\n var linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n };\n\n var prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n };\n\n var webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n };\n\n var CLOSEST_SIDE = 'closest-side';\n var FARTHEST_SIDE = 'farthest-side';\n var CLOSEST_CORNER = 'closest-corner';\n var FARTHEST_CORNER = 'farthest-corner';\n var CIRCLE = 'circle';\n var ELLIPSE = 'ellipse';\n var COVER = 'cover';\n var CONTAIN = 'contain';\n var radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n };\n var isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n };\n var image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n };\n function isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n }\n var SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n };\n\n var backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n };\n\n var backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n };\n\n var backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n };\n var parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n };\n\n var BACKGROUND_SIZE;\n (function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\n var backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n };\n var isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n };\n\n var borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n }); };\n var borderTopColor = borderColorForSide('top');\n var borderRightColor = borderColorForSide('right');\n var borderBottomColor = borderColorForSide('bottom');\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n }); };\n var borderTopLeftRadius = borderRadiusForSide('top-left');\n var borderTopRightRadius = borderRadiusForSide('top-right');\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n }); };\n var borderTopStyle = borderStyleForSide('top');\n var borderRightStyle = borderStyleForSide('right');\n var borderBottomStyle = borderStyleForSide('bottom');\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n }); };\n var borderTopWidth = borderWidthForSide('top');\n var borderRightWidth = borderWidthForSide('right');\n var borderBottomWidth = borderWidthForSide('bottom');\n var borderLeftWidth = borderWidthForSide('left');\n\n var color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n };\n\n var display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n };\n var parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n };\n\n var float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n };\n\n var letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n };\n\n var LINE_BREAK;\n (function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n })(LINE_BREAK || (LINE_BREAK = {}));\n var lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n };\n\n var lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n };\n var computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n };\n\n var listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n };\n\n var listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n };\n\n var listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n };\n\n var marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n }); };\n var marginTop = marginForSide('top');\n var marginRight = marginForSide('right');\n var marginBottom = marginForSide('bottom');\n var marginLeft = marginForSide('left');\n\n var overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n };\n\n var overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n }); };\n var paddingTop = paddingForSide('top');\n var paddingRight = paddingForSide('right');\n var paddingBottom = paddingForSide('bottom');\n var paddingLeft = paddingForSide('left');\n\n var textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n };\n\n var position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n };\n\n var textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n };\n\n var transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n };\n var matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n };\n // doesn't support 3D transforms at the moment\n var matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n };\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n };\n\n var DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\n var transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n };\n\n var visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n };\n\n var WORD_BREAK;\n (function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n })(WORD_BREAK || (WORD_BREAK = {}));\n var wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n };\n\n var zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n };\n\n var time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n };\n\n var opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n };\n\n var textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n };\n\n var fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n };\n\n var fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n };\n\n var fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n };\n\n var fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n };\n\n var fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n };\n\n var counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n };\n\n var counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n };\n\n var duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n };\n\n var quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n };\n var getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n };\n\n var boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n };\n\n var webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n }());\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n }());\n var CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n }());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n };\n\n var elementDebuggerAttribute = 'data-html2canvas-debug';\n var getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n };\n var isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n };\n\n var ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n }());\n\n /*\n * text-segmentation 1.0.3 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n }\n var decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n var slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n var Prepend = 1;\n var CR = 2;\n var LF = 3;\n var Control = 4;\n var Extend = 5;\n var SpacingMark = 7;\n var L = 8;\n var V = 9;\n var T = 10;\n var LV = 11;\n var LVT = 12;\n var ZWJ = 13;\n var Extended_Pictographic = 14;\n var RI = 15;\n var toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var UnicodeTrie = createTrieFromBase64(base64);\n var BREAK_NOT_ALLOWED = '×';\n var BREAK_ALLOWED = '÷';\n var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n };\n var GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n var splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n };\n\n var testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n };\n var testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n };\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\n var testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n };\n var isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n };\n var testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n };\n var createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n };\n var loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n var FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n };\n\n var TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n }());\n var parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n };\n var getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n };\n var createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n };\n var segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n };\n var segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n };\n var breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n };\n // https://drafts.csswg.org/css-text/#word-separator\n var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n var breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n };\n\n var TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n }());\n var transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n };\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n var capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n ];\n var RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n ];\n var reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n };\n var getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n };\n var CHECKBOX = 'checkbox';\n var RADIO = 'radio';\n var PASSWORD = 'password';\n var INPUT_COLOR = 0x2a2a2aff;\n var InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n }(ElementContainer));\n\n var IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\n var parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n };\n var createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n };\n var parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n };\n var createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n };\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n var isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n };\n var isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n };\n var isLIElement = function (node) { return node.tagName === 'LI'; };\n var isOLElement = function (node) { return node.tagName === 'OL'; };\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\n var isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n var isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\n var CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n }());\n var ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n };\n var ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Ք',\n 'Փ',\n 'Ւ',\n 'Ց',\n 'Ր',\n 'Տ',\n 'Վ',\n 'Ս',\n 'Ռ',\n 'Ջ',\n 'Պ',\n 'Չ',\n 'Ո',\n 'Շ',\n 'Ն',\n 'Յ',\n 'Մ',\n 'Ճ',\n 'Ղ',\n 'Ձ',\n 'Հ',\n 'Կ',\n 'Ծ',\n 'Խ',\n 'Լ',\n 'Ի',\n 'Ժ',\n 'Թ',\n 'Ը',\n 'Է',\n 'Զ',\n 'Ե',\n 'Դ',\n 'Գ',\n 'Բ',\n 'Ա'\n ]\n };\n var HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n 'א׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n 'ע',\n 'ס',\n 'נ',\n 'מ',\n 'ל',\n 'כ',\n 'יט',\n 'יח',\n 'יז',\n 'טז',\n 'טו',\n 'י',\n 'ט',\n 'ח',\n 'ז',\n 'ו',\n 'ה',\n 'ד',\n 'ג',\n 'ב',\n 'א'\n ]\n };\n var GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'ჭ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'ო',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'ა'\n ]\n };\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n };\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n };\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n };\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n };\n var CJK_ZEROS = 1 << 0;\n var CJK_TEN_COEFFICIENTS = 1 << 1;\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n };\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\n var JAPANESE_NEGATIVE = 'マイナス';\n var KOREAN_NEGATIVE = '마이너스';\n var createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? '、' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return '◦' + spaceSuffix;\n case 2 /* SQUARE */:\n return '◾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n var DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline