{"version":3,"sources":["core/reducers/ReducerUtils.ts","constants/Enums/TelemetryObjectId.ts","core/authentication/web/msalconfig.ts","constants/Enums/AppCatalogKeys.ts","constants/Enums/UserSettingsKeys.ts","constants/Enums/UpdateTypes.ts","utils/randomString.ts","core/reducers/AppDefinitionReducers.ts","core/actions/ContactInformationActions.ts","core/actions/ECSClientActions.ts","core/actions/FeatureFlagActions.ts","utils/messageExtensionAsset.ts","core/reducers/UILoadingReducers.ts","constants/Routes.ts","constants/Enums/TelemetryEventName.ts","spec-parser/validate/index.js","utils/parseApiSpec.ts","core/actions/NotificationActions.ts","spec-parser/validate/validate_schema_version3.js","components/notifications/style.ts","components/notifications/ErrorInformations.tsx","components/notifications/Notifications.tsx","interfaces/AppCategory.ts","interfaces/IAppListViewModel.ts","interfaces/IBotFrameworkBot.ts","interfaces/ILocalizationInfo.ts","interfaces/ISceneDesigner.ts","interfaces/IStaticTab.ts","interfaces/LicenseCategory.ts","interfaces/ManifestVersions.ts","interfaces/RestrictedTenantTypes.ts","interfaces/SupportedTenantRegions.ts","interfaces/AppIndustry.ts","core/actions/index.ts","core/actions/BotActions.ts","constants/Components.ts","components/common/AccessibilityUtils.tsx","core/actions/SceneActions.ts","core/reducers/ToolbarReducers.ts","constants/Enums/AnalyticsIKSKeys.ts","core/reducers/UserContext.ts","core/reducers/AdaptiveCardReducers.ts","core/reducers/AnalyticsReducers.ts","core/reducers/AppCatalogReducers.ts","core/reducers/AppFlightingReducers.ts","core/reducers/AppUserReducers.ts","core/reducers/BotReducers.ts","constants/Enums/ComposeExtensionAssetKeys.ts","core/reducers/ComposeExtensionAssetReducer.ts","core/reducers/ContactInformationReducers.ts","core/reducers/ECSClientReducers.ts","core/reducers/ErrorPageReducers.ts","core/reducers/FeatureFlagReducers.ts","core/reducers/HeaderReducers.ts","core/reducers/IdentityPlatformReducers.ts","core/reducers/NetworkReducers.ts","core/reducers/PreValidationReducers.ts","core/reducers/PublishingStatusReducers.ts","core/reducers/SceneReducers.ts","core/reducers/ThemeReducer.ts","core/reducers/UserSettingsReducers.ts","core/reducers/ValidationReducers.ts","core/reducers/ValidationV2Reducers.ts","constants/Enums/ApiKeyRegistrationKeys.ts","core/reducers/ApiKeyRegistrationReducers.ts","constants/Enums/MessagingExtensionConfigurationKeys.ts","core/reducers/MessagingExtensionConfigurationReducers.ts","constants/Enums/OAuthConfigurationKeys.ts","core/reducers/OAuthConfigurationReducers.ts","constants/Enums/EntraConfigurationKeys.ts","core/reducers/EntraConfigurationReducers.ts","core/reducers/AnalyticsV2FilterReducers.ts","utils/AnalyticsV2ReducersUtils.ts","core/reducers/AnalyticsV2Reducers.ts","core/reducers/AppPublishTypeReducers.ts","core/reducers/AppPackageEditorReducers.ts","core/reducers/index.ts","core/dataProcessorMiddleware.ts","core/store/index.ts","AppStateInit.tsx","core/actions/ValidationActions.ts","core/actions/AdaptiveCardActions.ts","interfaces/IAppPackageEditor.ts","constants/Enums/AppsKeys.ts","utils/DownloadFile.ts","core/reducers/AppContextReducers.ts","interfaces/IAnalyticsV2.ts","constants/Enums/AnalyticsKeys.ts","core/apiMiddleware/index.ts","utils/analyticsV2UrlBuilder.ts","core/actions/AnalyticsV2Actions.ts","constants/Enums/BotType.ts","core/actions/IdentityAppsActions.ts","utils/StringUtils.tsx","constants/Enums/TokenIssuer.ts","constants/Enums/UserRoleTemplate.ts","core/authentication/web/MsalAuthClient.ts","core/authentication/teams/TeamsAuthClient.ts","core/authentication/test/MockAuthClient.ts","core/authentication/ApsAuthClient.ts","components/notifications/NotificationsUtil.ts","constants/Enums/GetAppDefinitionsStates.ts","core/actions/ComposeExtensionAssetActions.ts","constants/Enums/UploadIconType.ts","core/reducers/SwitchLoadingReducer.ts","core/actions/ValidationV2Actions.ts","core/actions/ApiKeyRegistrationActions.ts","interfaces/IOAuthConfiguration.ts","utils/parseContent.ts","components/icons/index.tsx","components/layoutToggle/index.tsx","core/actions/ErrorPageActions.ts","core/actions/AppCatalogSubmitState.ts","core/reducers/NotificationReducers.ts","core/actions/PublishingStatusActions.ts","core/actions/UserSettingsActions.ts","constants/APIEndpoints.ts","core/actions/OAuthConfigurationActions.ts","core/actions/EntraConfigurationActions.ts","core/actions/AppPackageEditorActions.ts","constants/Enums/AppList.ts","core/store/persistStore.ts","core/actions/AnalyticsActions.ts","interfaces/IApiKeyRegistration.ts","core/actions/AppPublishTypeActions.ts","objects/regionSettings.ts","core/actions/UserContextAction.ts","utils/getFileBlobData.ts","core/actions/AppCatalogActions.ts","core/actions/AppDefinitionActions.ts","constants/Enums/QueryStringKeys.ts","core/actions/HeaderActions.ts","core/actions/NetworkActions.ts","constants/Links.ts","interfaces/IScene.ts","core/actions/AppFlightingActions.ts","core/actions/AppUserInfoActions.ts","core/reducers/AuthenticatedImageReducer.ts","constants/Enums/SwitchAPIType.ts","core/actions/MessagingExtensionConfigurationActions.ts","core/actions/ThemeActions.ts","constants/Enums/AppPublishType.ts","core/telemetry/Logger.ts"],"names":["StateKeys","updateState","rootStateKey","state","action","stateKey","_objectSpread","_defineProperty","payload","updateAppDefinitionError","appsKeys","AppDefinitionValidationError","updateAppDefinitionSelectedEnvironment","AppDefinitionSelectedEnvironment","updateAppEnvironmentMenuIndex","AppEnvironmentMenuIndex","CreateAppDefinitionBot","appDefinitionCopy","AppDefinition","bots","updatedApp","CreateAppDefinitionMessagingExtension","messagingExtensions","updateAppListUserMode","AppListUserMode","updateAppListViewModel","key","userMode","AppListUserModes","Admin","AppListTenantViewModel","AppListOwnerViewModel","filterAppList","val","isAdmin","vmKey","appKey","AllAppDefinitions","AppDefinitions","filterFn","x","_ref","_x$shortName","_x$teamsAppId","_x$appId","lower","toLowerCase","expr","appName","indexOf","shortName","validate","teamsAppId","appId","results","isSearching","searchKey","filter","filterResults","filtering","pageAppList","_objectSpread9","_action$payload","page","update","concat","searching","upgradeLegacyApp","_objectSpread10","id","apps","cloneDeep","legacyApps","LegacyAppDefinitions","a","idx","findIndex","splice","LegacyAppDefinitionsCount","length","getBots","Bots","_toConsumableArray","addNewBot","botsKeys","getBotManagementBotFromFramework","BotFrameworkBotManagement","getBotEvents","BotEvent","getBotManagementBotFromAad","BotAadBotManagement","getAppBotFromFramework","BotFrameworkAppBot","getAppBotFromAad","BotAadAppBot","deleteBotManagementBotFromFramework","_objectSpread17","bot","botId","botDeleted","DeletedBotId","clearBotId","deleteBotManagementBotFromAad","getMessagingExtensionBotFromFramework","BotFrameworkMessagingExtension","getMessagingExtensionBotFromAad","BotAadMessagingExtension","getAppBotFromAadFailure","updateBotFramework","botType","BotType","AppBot","AppMessagingExtensionBot","BotManagement","updateBotAad","passwordCredentials","addAppPasswordAad","_objectSpread29","newBotAadAppBot","BotAppPassword","_objectSpread30","newBotAadMessagingExtension","_objectSpread31","newBotAadBotManagement","showCopyAppPasswordDialog","showCopyPasswordDialog","updateBotListViewModel","BotListViewModel","resetAppDeletedFlag","AppDeleted","resetAppDefinitionState","_objectSpread35","UpdatedApp","AppDefinitionItem","displayName","resetPersonalTabAddedFlag","PersonalTabAdded","resetBotDeletedFlag","createOrUpdatePersonalApp","_objectSpread38","updatedAppDef","staticTabs","deletePersonalTab","_objectSpread39","createGroupTab","_objectSpread40","updatedAppDefinition","configurableTabs","updateGroupTab","_objectSpread41","getAppCatalogName","catalogName","appCatalogName","uploadApp","_objectSpread42","appCatalogKeys","SubmittedApp","CachedApp","submittedApp","updateApp","_objectSpread43","cancelRequest","checkIfAppAlreadyPublished","getAppByTeamsAppId","createConnector","_objectSpread47","connectors","updateConnector","_objectSpread48","getOwnerCards","ownerCardsModel","ownerCards","ownerCardListPageNumber","setOwnerCardListComplete","ownerCardListComplete","getTenantCards","tenantCardsModel","tenantCards","tenantCardListPageNumber","setTenantCardListComplete","tenantCardListComplete","getCard","Card","clearCard","createCard","_objectSpread51","cardsKeys","TenantCardsModel","TenantCards","OwnerCardsModel","OwnerCards","updateCard","_objectSpread54","tenantCardList","map","c","data","ownerCardList","deleteCard","_objectSpread57","getLanguage","userSettingsKeys","Language","isUserDevX","IsUserDevX","isPrivilegedTeamsAdmin","IsPrivilegedTeamsAdmin","isSideLoadingInteractionEnabled","IsSideloadingEnabled","getTenantSettings","TenantSettings","getScenes","list","scenes","scene","isSample","samples","getScene","updateDrawing","drawing","drawings","deleteDrawing","createScene","_action$payload2","_objectSpread63","importScene","sceneDeleteDialogStatus","isSceneDeleteDialogOpen","sceneTemplatesDialogStatus","isSceneTemplatesDialogOpen","cleanScene","addImageToImagesToUploadList","imagesToUpload","cleanImagesToUploadList","CanvasInitStatus","isCanvasInitialized","sceneAppDialogStatus","isSceneOnlyAppDialogOpen","sceneShareDialogStatus","isSceneShareDialogOpen","blinkImage","sceneLoader","updateDrawingState","forceUpdateSceneDesigner","forceUpdate","updateScene","_action$payload3","_objectSpread64","newScenes","s","deleteScene","_action$payload4","_objectSpread65","updatedList","uploadScene","uploadStatus","setSampleSceneMode","sampleMode","getIdentityApps","IdentityApps","getIdentityAppInfo","app","createIdentityApp","iApp","updatePassword","oneTimePass","createNewPassword","newPassword","endDate","hint","startDate","value","keyId","newAadApp","newPasswords","deleteAadAppPassword","showErrorMessage","failedAction","type","clearIdentityApp","addTeamsApp","IdentityAppsKeys","TeamsApp","updateTeamsApp","getAadAppCandidates","aadAppCandidates","clearAadAppCandidates","setIsSceneDesignerEnabled","isSceneDesignerEnabled","setECSClientLoaded","isECSClientLoaded","updateAppUserInfo","aadId","isAppAdmin","isMicrosoftEmployee","isTenantAdmin","username","getAppDefinitionOwnerCandidates","AppDefinitionOwnerCandidates","clearAppDefinitionOwnerCandidates","updateUserContext","loadAnalytics","isLoadingCompleted","getAnalytics","setFailureAnalytics","hasFailed","updatePublishingStatus","appPublishingStaticsRepoStatus","appPublishingOneCdnStatus","appPublishingCdnStatus","appPublishingOmexStatus","appPublishingStoreStatus","setPublishingStatusFailure","errors","status","traceId","headers","timestamp","date","clearPublishingStatus","undefined","TelemetryObjectId","apiScopes","Config","baseUrl","authSvcApiScopes","authServiceScope","supportCentralScopes","supportCentralAuthSource","apiTokenRequest","scopes","redirectStartPage","window","location","href","redirectUri","origin","msalConfig","auth","clientId","process","authority","postLogoutRedirectUri","cache","cacheLocation","storeAuthStateInCookie","system","tokenRenewalOffsetSeconds","iframeHashTimeout","loggerOptions","logLevel","LogLevel","Error","loggerCallback","level","message","containsPii","Logger","LogError","TelemetryEventName","MsalLibrary","piiLoggingEnabled","UpdateTypes","randomString","n","arguments","Math","random","toString","slice","AppDefinitionActionTypes","initialState","_initialState","LatestPublicManifestVersion","AppDefinitionsCount","AllAppDefinitionsCount","GetAppDefinitionsState","GetAppDefinitionsStates","BUSY","AppDefinitionToDuplicate","AppDefinitionItemIssues","AppDefinitionSchema","properties","AppDefinitionImportUnprocessable","errorMessage","AppFile","File","Owner","layout","LayoutType","List","sort","column","direction","SortDirections","ASC","search","searchResults","SessionKey","ImportFromCatalogError","appsSlice","createSlice","name","Apps","reducers","_reducers","UpdateAppDefinition","set","appDefinitions","GetMyAppDefinitions","_ref2","GetLatestPublicManifestVersion","_ref3","UpgradeToLatestPublicManifestVersion","manifestVersion","GetMyAppDefinitionsCount","_ref4","GetAllAppDefinitions","_ref5","GetAllAppDefinitionsCount","_ref6","GetMyLegacyAppDefinitions","_ref7","GetMyLegacyAppDefinitionsCount","_ref8","GetAppDefinition","_ref9","_ref10","AppDefinitionExists","_ref11","_ref12","_ref13","CreateAppDefinition","_ref14","DeleteAppDefinition","_ref15","filterExpr","appDefinition","LeaveAppDefinition","_ref16","ImportFromCatalogFailure","_ref17","GetAppDefinitionItem","_ref18","AppDefinitionItemHasIssues","_ref19","GetAppDefinitionSchema","_ref20","ResetAppDefinitionState","AppDefinitionImportValidationError","AppDefinitionUserModeUpdate","AppDefinitionViewModelUpdate","AppDefinitionFilterAppsList","AppDefinitionPageAppsList","AppDefinitionUpgradeLegacyApp","GetAppDefinitionsOwnerCandidates","ClearAppDefinitionsOwnerCandidates","CreateOrUpdatePersonalTab","DeletePersonalTab","CreateGroupOrMeetingTab","UpdateGroupOrMeetingTab","DeleteGroupOrMeetingTab","CreateConnector","DeleteConnector","UpdateConnector","UpdateAppDefinitionSelectedEnvironment","UpdateAppEnvironmentMenuIndex","Reset","ResetPersonalTabAddedFlag","Update","Object","assign","Revert","_action","AppOwnerContactInformationActionTypes","GetAppOwnerContactInfo","dispatch","apiAction","url","REACT_APP_LOCAL_API_HOST","apiUrl","method","ApiMethods","Get","onStart","uiLoadingSlice","actions","UILoadingActionTypes","Start","onSuccess","Complete","AppOwnerContactInformation","GetAppOwnerContactInformationSuccess","onFailure","error","GetAppOwnerContactInformationFailure","UpdateAppOwnerContactInfo","contactInfoDraft","failureMessage","Post","_data$repository","UpdateAppOwnerContactInformationSuccess","repository","remoteUrl","pullRequestId","showNotification","NotificationType","GetErrorContext","UpdateAppOwnerContactInformationFailure","ClearAppOwnerContactInformationPRLink","ECSClientActionTypes","ECSClient","SetECSClientLoaded","FeatureFlagTypes","_regeneratorRuntime","exports","Op","prototype","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","zipAllAssets","_x","_zipAllAssets","apply","_asyncToGenerator","_callee","uploadAssets","zip","content","_context","JSZip","asset","file","generateAsync","unzipAllAssets","_x2","_unzipAllAssets","_callee2","res","assets","_iterator","_step","_context2","loadAsync","base64","all","files","fileId","zipFile","fileContent","_createForOfIteratorHelper","e","f","parseApiSpecFromAppDefinition","_x3","_x4","_parseApiSpecFromAppDefinition","_callee3","apiSpec","ext","apiInfo","_context3","apiSpecificationFilePath","find","extname","validateAndListApis","parseContent","apiList","UILoadingActionStatus","UILoading","Loading","containerName","ReservedPaths","Details","Routes","Index","Root","Home","Auth","AppConfig","Validation","BotConfig","Cards","CardDetails","CardDetailsPaths","Identity","IdentityAppsListPaths","IdentityAppDetails","Help","AuthRedirect","Tools","Changelog","ApiKeyRegistration","ApiKeyRegistrationNew","ApiKeyRegistrationDetail","OAuthConfiguration","OAuthConfigurationNew","OAuthConfigurationDetail","EntraConfiguration","EntraConfigurationNew","EntraConfigurationDetail","Scenes","NewScene","SceneDetails","Overview","AppDetails","AppBranding","AppOverview","AppOwners","AppAnalytics","AppAnalyticsV2","AppAnalyticsRegionDetails","AppFlights","AppCapabilities","AppPackageEditor","Permissions","AppLanguages","AppEnvironments","AppSubscriptionOffer","Capabilities","PersonalApp","GroupApp","MeetingTab","Bot","Connectors","SceneCapability","MessagingExtensions","AppMessagingExtensionsDetail","AppMessagingExtensionsDetailEdit","AppMessagingExtensionsCommand","AppMessagingExtensionsCommandEdit","Activity","CopilotPlugin","Distributions","AppInstall","AppCatalog","AppCatalogSubmit","AppCatalogStatus","AppSubmit","AppWithdraw","NewFlight","FlightPR","AppContactInfo","Domains","AppPackage","Advanced","Internal","AdminSettings","Devices","SingleSignOn","AppValidations","ValidationDetail","BotConfigure","BotChannels","BotEvents","BotClientSecrets","newCard","CreateIdentityApp","CreateBrandNew","LinkExisting","IdentityAppOverview","Secret","ApiPermissions","ExposeApi","LinkedApps","DevelopWithTeamsToolkit","SubRoutes","BrandNew","personalApp","getCapabilitySubRoute","groupApp","meetingApp","messagingExtension","activity","route","split","OpenapiVersion3SchemaValidator","_validateAndListApis","specParser","validationResult","SpecParser","allowMultipleParameters","allowBearerTokenAuth","allowAPIKeyAuth","allowOauth2","ValidationStatus","Valid","listSupportedAPIInfo","ErrorType","SpecNotValid","warnings","t0","getDisplayErrorMessage","intl","getMessageFromErroType","join","formatMessage","RemoteRefNotSupported","NoServerInformation","UrlProtocolNotSupported","RelativeServerUrlNotSupported","NoSupportedApi","ResolveServerUrlFailed","SwaggerNotSupported","NotificationActionTypes","show","errorContext","externalLink","Notification","Show","formats","require","equal","pattern0","RegExp","pattern1","refVal","refVal1","dataPath","parentData","parentDataProperty","rootData","Array","isArray","keyword","schemaPath","params","valid1","key0","schema","test","additionalProperty","title","missingProperty","errs_1","description","data1","termsOfService","format","contact","valid3","key2","errs_3","data2","email","license","version","required","$ref","patternProperties","additionalProperties","refVal5","variables","key1","valid4","key3","data3","enum","errs_4","i4","default","items","refVal8","externalDocs","refVal9","pattern2","vErrors","refVal10","pattern3","pattern4","summary","servers","i1","errs_2","valid2","parameters","j","outer","errs__2","prevValid2","refVal11","missing4","key4","errs_5","refVal23","oneOf","uniqueItems","in","deprecated","allowEmptyValue","style","explode","allowReserved","errs__1","prevValid1","refVal12","missing3","limit","refVal16","examples","errs__4","valid5","externalValue","example","schema4","refVal22","allowedValues","minProperties","maxProperties","allOf","multipleOf","comparison","exclusive","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","regex","maxItems","minItems","schema1","not","anyOf","nullable","discriminator","propertyName","mapping","readOnly","writeOnly","xml","namespace","uri","prefix","attribute","wrapped","encoding","refVal18","contentType","refVal19","tags","operationId","requestBody","refVal24","responses","refVal25","callbacks","refVal28","security","pattern5","refVal26","links","refVal27","errs__0","operationRef","server","refVal29","pattern6","schemas","requestBodies","securitySchemes","refVal30","pattern7","prevValid0","valid0","schema3","refVal31","i3","scheme","bearerFormat","refVal32","errs__3","refVal33","refVal39","openIdConnectUrl","flows","refVal34","implicit","authorizationUrl","refreshUrl","password","tokenUrl","clientCredentials","authorizationCode","openapi","paths","components","$schema","definitions","Reference","Info","Contact","License","Server","ServerVariable","Components","Schema","Discriminator","XML","Response","MediaType","Example","Header","Paths","PathItem","Operation","Responses","SecurityRequirement","Tag","ExternalDocumentation","ExampleXORExamples","SchemaXORContent","Parameter","ParameterLocation","RequestBody","SecurityScheme","APIKeySecurityScheme","HTTPSecurityScheme","OAuth2SecurityScheme","OpenIdConnectSecurityScheme","OAuthFlows","ImplicitOAuthFlow","PasswordOAuthFlow","ClientCredentialsFlow","AuthorizationCodeOAuthFlow","Link","Callback","Encoding","module","useStyles","makeStyles","correlationText","paddingLeft","messageBar","zIndex","position","ErrorInformations","className","notificationType","useIntl","correlationId","React","createElement","Text","defaultMessage","Strings","errorCorrelationMessage","statusCode","Notifications","useDispatch","notificationGlobalState","useSelector","notification","history","useHistory","classes","IntentMap","Map","Success","Warning","Informational","handleDismiss","listen","Fragment","_document$getElementB","_document$getElementB2","_document$getElementB3","_document$getElementB4","_document$getElementB5","_notificationGlobalSt","_notificationGlobalSt2","_notificationGlobalSt3","navBarWidth","document","getElementById","offsetWidth","topPosition","offsetHeight","MessageBar","left","top","width","intent","get","role","MessageBarBody","errorCode","target","MessageBarActions","containerAction","Button","onClick","appearance","icon","DismissRegular","autoFocus","RenderNotification","AppCategory","BotChannelType","BotMeetingEventType","JsonKeyMapper","LocalizationFormLimits","LoaderType","UploadImageType","staticTabContext","staticTabScope","LicenseCategory","ManifestVersion","RestrictedTenantTypes","SupportedTenantRegions","AppIndustry","API","actionParams","BotActionTypes","GetAllBots","notificationFailureString","LogInfo","GetBots","getBotsSuccess","GetAppDefinitionsError","getBotsError","BotFailure","CreateBotWithAad","notificationSuccessString","callback","signInAudience","AddNewBotAad","newData","callingEndpoint","messagingEndpoint","CreateBotWithFramework","AddNewBotAadError","addNewBotAadError","Links","BotFrameworkKnownIssues","AddNewBot","CreateBot","AddNewBotError","addNewBotError","GetBotFromFramework","GetBot","GetBotManagementBotFromFramework","GetAppBotFromFramework","GetAppMessagingExtensionBotFromFramework","GetBotError","getBotError","ResetBotFromFramework","GetBotFromAad","GetBotManagementBotFromAad","GetAppBotFromAad","GetAppMessagingExtensionBotFromAad","GetBotFromAadFailure","UpdateBotMessageEndpointAddress","UpdateBotMessageEndpointAddressSuccessfully","UpdateBotFramework","UpdateBotMessageEndpointAddressError","endpointFailedToUpdate","UpdateBotChannels","UpdateBotChannelsSuccessfully","UpdateBotChannelsError","channelsFailedToUpdate","DeleteAppPasswordAad","objectId","passwordId","Delete","_data$passwords","DeleteAppPasswordSuccessfully","passwords","UpdateBotAad","DeleteAppPasswordError","appPasswordDeleteError","CreateAppPasswordAad","CreateAppPasswordSuccessfully","ShowCopyPasswordDialog","CreateAppPasswordError","appPasswordGenerateError","DeleteBotManagementBotFromFramework","DeleteBotFromFrameworkSuccessfully","DeleteBotFromFramework","DeleteBotFromFrameworkError","ResetBotDeleted","ClearBotId","ResetDeletedBotId","UpdateBotListViewModel","GetBotEvent","GetBotEvents","GetBotEventError","eventTypes","UpdateBotEvent","Put","response","UpdateBotEventError","DeleteBotEvent","DeleteBotEventError","MAX_PERSONAL_TABS","MicrosoftTenantId","DEFAULT_DEVELOPER_NAME","DEFAULT_WEBSITE_URL","DEFAULT_PRIVACY_URL","DEFAULT_TERMS_OF_USE_URL","SCENE_IMAGE_BASE_URI","OCV_PPE_APP_ID","maxSpriteSize","maxTotalSceneAssests","maxParticipantsOrSprites","regexUUID","preferredThemeKey","preferredLanguageKey","selfClickOnEnterOrSpace","_e$currentTarget","stopPropagation","currentTarget","click","onActivate","handler","onKeyDown","tabIndex","SceneActionTypes","GetAllScenes","GetScenesSuccessfully","getScenesSuccess","SceneDesigner","GetScenesError","getScenesError","SceneFailure","PopulateScene","GetScene","CreateScene","CreateSceneSuccessfully","UpdateScene","sceneId","UpdateSceneSuccessfully","UpdateSceneError","UploadSceneBackgroundImage","UploadSceneImage","inProgress","_data","UploadedSceneBackgroundImageSuccessfully","uploadSuccess","UploadedSceneBackgroundImageError","uploadError","DeleteScene","q","DeleteSceneSuccessfully","DeleteSceneError","CopySampleSceneImages","sourceId","destinationId","_dispatch","SetSampleSceneMode","SampleSceneMode","GetDrawing","drawingId","GetDrawingSuccessfully","getDrawingsSuccess","GetDrawingError","getDrawingsError","DrawingFailure","SaveDrawing","UpdateDrawing","DeleteDrawing","ToolbarActionTypes","toolbarSlice","Toolbar","SaveAndRevert","ToolbarKeys","Actions","EntityType","Area","Host","Capability","OS","Platform","Period","Metric","Group","GroupName","userInitalRegionSetting","_cardsKeys$TenantCard","TenantCardListComplete","TenantCardListPageNumber","_cardsKeys$OwnerCards","OwnerCardListComplete","OwnerCardListPageNumber","adaptiveCardSlice","AdaptiveCards","CardActionTypes","GetAllOwnerCards","SetOwnerCardListComplete","GetAllTenantCards","SetTenantCardListComplete","GetCard","CreatCard","UpdateCard","DeleteCard","ClearCard","analyticsSlice","Analytics","AnalyticsActionTypes","LoadActiveUserData","AnalyticsKeys","ActiveUsers","GetActiveUserData","GetActiveUserDataFailure","LoadMetricData","Metrics","GetMetricData","GetMetricDataFailure","pendingApprovalExists","resData","IsUploaded","IsUpdated","IsCancelled","CatalogName","AppPublishingStatus","AppCatalogSubmitState","Unpublished","appCatalogSlice","AppCatalogActionTypes","GetAppCatalogNameSuccess","CheckIfAppAlreadyPublishedSuccess","UploadAppSuccess","UpdateAppSuccess","GetAppByTeamsAppIdSuccess","CancelRequestSuccess","appFlightingSlice","AppFlighting","rollouts","withdrawAppLink","promoteAppError","withdrawAppError","AppFlightingActionTypes","CreateAppFlightingSuccess","CreateAppFlightingFailure","appFlightingKeys","castDraft","isDeleted","GetAppFlightingSuccess","GetAppFlightingFailure","DeleteAppFlightingRollbacksSuccess","DeleteAppFlightingRollbacksFailure","ResetError","WithdrawAppSuccess","ClearWithdrawAppLink","PromoteAppError","ClearPromoteAppError","WithdrawAppError","AppUserInfo","AadId","DisplayName","IsAppAdmin","IsMicrosoftEmployee","IsTenantAdmin","Username","appUserSlice","AppUserInfoTypes","UpdateAppUserInfo","BotAppPasswordAppBot","DESC","botsSlice","DeleteBotFromAad","ComposeExtensionAssetKeys","hasGetError","isLoading","availableApis","isUploadingAndUpdatingApp","composeExtensionAssetSlice","ComposeExtensionAsset","ComposeExtensionAssetActionTypes","GetComposeExtensionAssetZipStart","GetComposeExtensionAssetZipSuccess","GetComposeExtensionAssetZipFailure","UploadComposeExtensionAssetZipSuccess","UploadComposeExtensionAssetSuccess","UploadCompoeseExtensionAssetZipFailure","UploadCompoeseExtensionAssetFailure","UploadComposeExtensionAssetStart","UploadComposeExtensionAssetZipStart","UpdateAvailableApis","ClearAssets","CompleteUploadAndUpdate","appOwnerContactInformationSlice","appOwnerContactInformation","icmTeam","attestationDate","teamName","emails","updatePRLink","ecsClientSlice","errorPageSlice","ErrorPage","ErrorPageActionTypes","ShowError","featureFlagSlice","FeatureFlag","isBotManagementEnabled","isCardEditorEnabled","isIdentityManagementEnabled","isPackageValidationEnabled","SetIsSceneDesignerEnabled","shellInfo","getActionPayload","HeaderActionTypes","GetShellInfo","headerSlice","JSON","parse","AadAppCandidates","identityPlatformSlice","IdentityAppsActionTypes","GetAllAadApps","ClearApp","GetAadAppCandidate","ClearAadAppCandidate","CreateTeamsApp","UpdateTeamsApp","CreateIdentityAppAndUpdateAppDefinition","GetAadAppInfo","CreateAadAppPassword","DeleteAadAppPassword","ClearOneTimePassword","GetAadAppInfoFailed","networkSlice","Network","NetworkActionTypes","preValidationSlice","PreValidation","PreValidationActionTypes","Failure","publishingStatusKeys","publishingStatusSlice","AppPublishingStatusState","PublishingStatusActionTypes","GetAppPublishingStatusSuccess","GetAppPublishingStatusFail","ClearPublishingStatus","none","Loaded","isActivated","isEditing","sceneSlice","CleanImageList","AddImageToSceneImageList","ImportScene","CleanScene","SceneAppDialog","SceneShareDialog","BlinkImage","SceneLoader","SceneDeleteDialog","SceneTemplatesDialog","Drawing","updateSceneList","themeSlice","Theme","ThemeActionTypes","SetTheme","cachedUserRegion","UserContextActionTypes","UserContextRegion","_cacheUserRegionSetti","cacheUserRegionSettings","SettingsExpiry","Date","now","TeamsDevPortalRegionSetting","GetRegionEndpointsError","loginSuccess","userRegion","userContextSlice","UserContext","UpdateUserContext","developerToolsForShowingAppUsageMetrics","userSettingsSlice","UserSettings","UserSettingsActionTypes","GetLanguage","IsSideLoadingInteractionEnabledForTenant","GetTenantSettings","validationResultsKeys","notes","addInDetails","developerName","validationSlice","ValidationActionTypes","validationV2Keys","validationCount","validationList","appValidations","continuationToken","validationDetail","newValidation","appValidationId","validationV2Slice","ValidationV2","AppValidationActionTypes","ValidationCount","totalCount","ValidationList","validationsList","NewValidation","ValidationStateReset","ValidationDetailReset","ApiKeyRegistrationKeys","emptyState","targetUrlsShouldStartWith","applicableToApps","ApiKeyTargetAppType","SpecificApp","specificAppId","clientSecrets","targetAudience","ApiSecretRegistrationAudienceType","HomeTenant","ApiKeyRegistrationLoaded","ApiKeyRegistrationList","ApiKeyRegistrationSaved","ApiSecretSaved","apiKeyRegistrationsSlice","ApiKeyRegistrations","ApiKeyRegistrationsActionTypes","APIKeyRegistrationList_Success","APIKeyRegistrationItemRead_Success","APIKeyRegistrationReset","APIKeyRegistrationSavedIDReset","APIKeyRegistrationDelete_Success","item","APIKeyRegistrationCreate_Success","APIKeyRegistrationUpdate_Success","APISecretCreate_Success","ResetSavedApiSecret","MessagingExtensionConfigurationKeys","configuration","applicationId","tenantId","messagingExtensionId","canUpdateConfiguration","commands","statusText","messagingExtensionConfigurationSlice","MessagingExtensionConfiguration","MessagingExtensionConfigurationActionTypes","GetMessagingExtensionConfigurationStart","GetMessagingExtensionConfigurationSuccess","GetMessagingExtensionConfigurationFailure","ClearConfiguration","OAuthConfigurationKeys","oAuthConfigId","OAuthConfigurationTargetAppType","m365AppId","clientSecret","OAuthConfigurationAudienceType","authorizationEndpoint","tokenExchangeEndpoint","tokenRefreshEndpoint","isPKCEEnabled","identityProvider","OAuthIdentityProviderType","Custom","tokenExchangeMethodType","OAuthTokenExchangeMethodType","PostRequestBody","OAuthConfigurationLoaded","OAuthConfigurationList","OAuthConfigurationSaved","OAuthConfigurationError","oAuthConfigurationsSlice","OAuthConfigurations","OAuthConfigurationsActionTypes","OAuthConfigurationList_Success","OAuthConfigurationItemRead_Success","OAuthConfigurationReset","OAuthConfigurationSavedIDReset","OAuthConfigurationDelete_Success","OAuthConfigurationCreate_Success","configurationRegistrationId","OAuthConfigurationCreate_Failed","OAuthConfigurationUpdate_Failed","OAuthConfigurationUpdate_Success","EntraConfigurationKeys","MicrosoftEntra","resourceIdentifierUri","EntraConfigurationLoaded","EntraConfigurationList","EntraConfigurationSaved","EntraConfigurationError","entraConfigurationsSlice","EntraConfigurations","EntraConfigurationsActionTypes","EntraConfigurationList_Success","EntraConfigurationItemRead_Success","EntraConfigurationReset","EntraConfigurationSavedIDReset","EntraConfigurationDelete_Success","EntraConfigurationCreate_Success","EntraConfigurationCreate_Failed","EntraConfigurationUpdate_Failed","EntraConfigurationUpdate_Success","entityType","User","area","AllUp","host","capability","os","platform","analyticsFilterV2Slice","AnalyticsFilterV2","AnalyticsV2FilterActionTypes","UpdatedAnalyticsV2Filter","analyticsFilterV2StateSlice","AnalyticsFilterV2State","isVisible","SetFilterVisibility","convertToHostMultiLineData","metrics","reduce","acc","metric","period","hostTranslationKey","convertToHostBarChartData","_metric$latestUsage5","latestUsage","usage","convertToOSBarChartData","_metric$latestUsage9","osTranslationKey","convertToCapabilityTrendData","_metric$latestUsage14","_metric$latestUsage15","_metric$latestUsage16","capabilityTranslationKey","stringValue","moMString","percent","moMPercent","extractUsageByIntensity","_median$data","_median$data$","_percentage$data","_percentage$data$","_ratio$data","_ratio$data$","median","Median","percentage","Percentage5Days","ratio","Ratio","mau","widgetEmpty","AnalyticsV2WidgetLoadingState","NotLoaded","initialFilter","AnalyticsV2Keys","UsageSummary","LastUpdated","UsageByTimePeriod","UsageByRetentionIntensity","UsageByRegion","UsageByHost","UsageByOS","UsageByPlatform","UsageByCapability","analyticsV2Slice","AnalyticsV2","AnalyticsV2ActionTypes","Refreshing","LoadingData","LoadingFailed","APISuccess","setLastUpdated","apiResponse","latestUsageDate","reduceApiSuccess","lastUpdated","widgetData","successes","groupName","UsageData","_metric$latestUsage","_metric$latestUsage2","_metric$latestUsage3","retention","metricTranslationKey","intensity","_metric$latestUsage4","region","z","trend","_metric$latestUsage10","_metric$latestUsage11","_metric$latestUsage12","bar","_metric$latestUsage6","_metric$latestUsage7","_metric$latestUsage8","multiLine","HostCapability","_metric$latestUsage13","platformTranslationKey","appTypeSlice","AppType","AppTypeActionsTypes","GetAppPublishTypeSuccess","isAppInCDN","some","wasAppFound","appType","AppPublishType","CDN_App","TDP_App","GetAppPublishTypeFail","AppPackageEditorStatus","initFiles","localFiles","appPackageEditorSlice","AppPackageEditorActionTypes","StatusChange","InitialFile_Add","LocalFile_Add","LocalFile_Remove","LocalFile_Update","DiscardChanges","PackageUpdateStart","Saving","PackageUpdateSuccess","SavedSuccess","PackageUpdateFailure","SavedFailed","reducer","_reducer","appContextSlice","notificationSlice","authenticatedImageSlice","switchLoadingSlice","dataProcessorMiddleware","getState","apis","SwitchLoadingActionTypes","store","configureStore","middleware","thunkMiddleware","apiMiddleware","App","lazy","AppStateInit","initializeIcons","enableMapSet","Suspense","fallback","ReduxProvider","SWRConfig","provider","PreValidate","preValidationErrorMessage","ValidateAppDefinition","appEnvironmentId","LogUserBi","PartnerCenterAppPkgValidation","ValidatePackage","isImport","UploadAppDefinitionFromZip","appUploadedSuccessfully","appFailedToUpload","ResetPackageValidation","adaptiveCards","GetOwnerCardsSuccessfully","GetOwnerCardsError","CardFailure","GetTenantCardsSuccessfully","GetTenantCardsError","cardId","GetCardSuccessfully","GetCardError","CreateCard","CreateCardSuccessfully","UpdateCardSuccessfully","UpdateCardError","DeleteCardSuccessfully","DeleteCardError","SendCard","card","jsonContent","cardContent","cardType","images","image","buttons","button","SendCardSuccessfully","sendCardSuccess","SendCardError","sendCarderror","AppPackageEditorFileTypes","supportedFileTypes","supportedImages","_supportedImages","Icon","height","supportedFormats","OutLine","downloadFile","_downloadFile","filename","stringToBlob","linkBlob","_stringToBlob","blob","element","setAttribute","URL","createObjectURL","replaceAll","display","body","appendChild","removeChild","downloadJson","fileName","dataStr","downloadAnchorNode","remove","appValidationExportUtils","Blob","link","console","log","isSidebarOpen","isDialogOpen","isDialogConfirmDisabled","dialogConfirmCallback","noop","AppContextActionTypes","AppContext","Sidebar","OpenDialog","dialogProps","CloseDialog","_","SetDialogConfirmDisabled","SetDialogConfirmCallback","AnalyticsPageTabs","AnalyticsV2Interval","AnalyticsV2WidgetSize","apiRequest","config","_config$transformAxio","serviceToken","dataOrParams","transformAxiosRequest","GetCorrelationId","ServiceToken","AppStudio","includes","ApsAuthClient","getServiceToken","accessToken","axios","defaults","baseURL","REACT_APP_BASE_URL","common","request","ApiMiddleware","swrKey","onNetworkStart","onNetworkSuccess","_error$response","_error$request","responseURL","onNetworkError","analyticsV2Url","AnalyticsV2API","analyticsEndpoint","replace","analyticsV2Payload","payloads","filters","dependencyFilters","groups","ResetAppAnalyticsV2","ResetAnalyticsV2Filter","UpdateAnalyticsV2Filter","visibility","RefreshWidget","GetAnalyticsV2Data","AnalyticsV2APISuccess","AnalyticsV2APIFailure","APIFailure","GetIdentityApps","getAppDefinitionsSuccess","getAppDefinitionsError","retry","GetIdentityAppInfo","GetIdentityAppInfoError","aadApp","resourceUrl","successMessage","newTeamsAppData","webApplicationInfoResource","webApplicationInfoId","CreateIdentityAppFailed","CreateIdentityAppFromTeamsApp","GetAppDefinitionToUpdate","dataToUpdateAppDefinition","newApp","GetAppDefinitionError","getAppDefinitionError","AppDefinitionFailure","AddAppDefinition","UpdateAppIDWhenFirstCreate","AddAppDefinitionError","addAppDefinitionError","UpdateAppDefinitionError","UpdateTeamsAppFailed","ClearIdentityApp","delayMs","CreateAadAppPasswordFailed","delay","DeleteAadAppPasswordFailed","ClearOneTimePass","SearchAadAppCandidate","SearchAppDefinitionError","ClearAadAppCandidates","FormattedMessage","intlKey","IntlFormattedMessage","TokenIssuer","UserRoleTemplate","getLoginHintFromQueryString","getQueryValue","QueryStringKeys","LoginHint","MsalAuthClient","_this","_classCallCheck","msalClient","apsTokenRequest","this","PublicClientApplication","addEventCallback","event","eventType","EventType","LOGIN_SUCCESS","account","setActiveAccount","_createClass","_login","currentLoginHint","_ref3$wids","handleRedirectPromise","getAccount","loginRedirect","loginHint","userName","idTokenClaims","oid","preferredUserName","preferred_username","internalUser","wids","wid","TeamsAdministrator","GlobalAdministrator","GetUserEndpoints","getToken","_logout","logoutRedirect","_getToken","getMsalToken","_getAuthSvcToken","_callee4","silentRequest","_context4","forceRefresh","acquireTokenSilent","_getSupportCentralToken","_callee5","_context5","getActiveAccount","accounts","getAllAccounts","_window$localStorage","localStorage","removeItem","possibleAccount","_getMsalToken","_callee6","tokenRequest","_context6","InteractionRequiredAuthError","acquireTokenRedirect","BrowserAuthError","AuthError","TeamsAuthClient","teamsSDK","getAuthToken","resources","successCallback","token","failureCallback","reason","userObjectId","tid","userPrincipalName","homeAccountId","localAccountId","environment","mockId","MockAuthClient","getContext","ApsAuthProvider","tokenServiceType","client","Teams","E2E","Msal","SignIn","appStudioHost","HostType","TEAMS","WEB","login","SignOut","logout","isLoggedIn","isUserLoggedIn","getAuthSvcToken","getSupportCentralToken","service","AuthSvc","SupportCentral","CorrelationIdHeaderKey","TimestampHeaderKey","_response$headers","_response$data","_response$data2","_response$headers2","toUTCString","UploadComposeExtensionAsset","uploadAsset","appMessagingExtensionToUpdate","uploadSuccessMessage","uploadErrorMessage","updateAppSuccessMessage","updateAppErrorMessage","followUpAPI","UploadComposeExtensionAssetSuccessfully","UpdateAppDefinitionMessagingExtension","createOrUpdateMessagingExtensionOnSingleFileLoaded","UploadComposeExtensionAssetError","ClearExtensionAssets","UploadComposeExtensionAssetZip","messageExtensionToUpdate","updateAppSucessMessage","UploadComposeExtensionAssetZipSuccessfully","UploadComposeExtensionAssetZipError","GetComposeExtensionZipAsset","errrorMessage","isFromGetMEConfig","GetComposeExtensionAssetZipSuccessfully","GetComposeExtensionAssetZipError","UploadIconType","SwitchLoadingActionStatus","SwitchLoading","GetAppValidationCount","appDefinitionId","appValidationAPI","getAppValidationCount","ValidationFailure","GetAppValidationList","pageSize","getAppValidation","GetAppValidationDetail","validationId","getAppValidationDetail","CreateNewAppValidation","newAppValidation","NewAppValidationV2CreatedSuccess","AppValidationV2Created","ResetAppValidationState","ExportValidationReport","exportReport","AppValidationDownloadReport","ValidationReportExport","ExportValidationZip","exportZip","AppValidationDownloadPackage","validationZipExport","ResetValidationDetails","GetApiKeyRegistrationList","ApiKeyRegistrationsAPI","getApiKeyRegistrationsList","uuidv4","APIKeyRegistrationList_Failed","DeleteApiKeyRegistrationItem","deleteAPIKeyRegistrationItem","NewApiKeyRegistrationDelete","APIKeyRegistrationDelete_Failed","ResetApiKeyRegistration","ResetSavedApiKeyID","GetApiKeyRegistrationItem","getAPIKeyRegistrationItem","APIKeyRegistrationItemRead_Failed","CreateNewApiKeyRegistration","createApiKeyRegistrationItem","NewApiKeyRegistrationSuccess","APIKeyRegistrationCreate_Failed","NewApiKeyRegistrationFailure","UpdateApiKeyRegistration","updateApiKeyRegistrationItem","Patch","NewApiKeyRegistrationUpdate","APIKeyRegistrationUpdate_Failed","DeleteClientSecretItem","secretId","ApiSecretWithId","NewApiKeySecretDelete","APISecretDelete_Failed","CreateClientSecretItem","ApiSecret","NewApiKeySecretCreateSuccess","APISecretCreate_Failed","NewApiKeySecretCreateFailure","AnyApp","yaml","ListViewIcon","createSvgIcon","svg","props","viewBox","d","fill","LayoutToggle","currentLayout","onClickGrid","onClickList","theme","useFluentContext","ButtonGroup","iconOnly","outline","tableToggleAriaLabel","styles","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderRightWidth","boxShadow","color","siteVariables","colorScheme","brand","foreground","foreground1","GridIcon","Grid","gridToggleAriaLabel","ErrorCode","showError","GetAppPublishingStatus","externalId","GetAppPublishingStatusSuccessfully","getAppPublishingStatusSuccess","GetAppPublishingStatusError","getAppPublishingStatusError","ClearAppPublishingStatus","userSettingsLanguageError","GetUserSettingsLanguageError","UpdateIsSideLoadingInteractionEnabledForTenant","isEnabled","isSideloadedAppsInteractionEnabled","IsSideLoadingInteractionEnabledForTenantError","GetUserSettingsTenantSettingsError","OAuthConfigurationsAPI","getOAuthConfigurationsList","getOAuthConfigurationItem","deleteOAuthConfigurationItem","createOAuthConfigurationItem","updateOAuthConfigurationItem","createOAuthConfigurationTelemetryPayload","oAuthState","_oAuthState$scopes","stringify","targetOrg_Value","appType_Value","scope_Value","GetOAuthConfigurationList","OAuthConfigurationList_Failed","DeleteOAuthConfigurationItem","OAuthConfigurationDelete","OAuthConfigurationDelete_Failed","ResetOAuthConfiguration","ResetSavedOAuthID","GetOAuthConfigurationItem","OAuthConfigurationItemRead_Failed","CreateNewOAuthConfiguration","NewOAuthConfigurationSuccess","NewOAuthConfigurationFailure","UpdateOAuthConfiguration","OAuthConfigurationUpdateSuccess","OAuthConfigurationUpdateFailure","createEntraConfigurationTelemetryPayload","EntraState","GetEntraConfigurationList","EntraConfigurationList_Failed","deleteEntraConfigurationItem","EntraConfigurationDelete","EntraConfigurationDelete_Failed","ResetEntraConfiguration","ResetSavedEntraID","GetEntraConfigurationItem","EntraConfigurationItemRead_Failed","CreateNewEntraConfiguration","NewEntraConfigurationSuccess","NewEntraConfigurationFailure","UpdateEntraConfiguration","EntraConfigurationUpdateSuccess","EntraConfigurationUpdateFailure","packageUpdateAPIEnpoints","overwrite","AppPackageEditorReset","AppPackageEditorStatusChange","AppPackageEditorAddInitialFile","AppPackageEditorAddLocalFile","AppPackageEditorRemoveLocalFile","AppPackageEditorUpdateLocalFile","AppPackageEditorDiscardChanges","UpdatePackageUsingImport","successString","failureString","AppPackageEditorSaveSuccess","AppPackageEditorSaveFail","setActionPayload","actionName","actionPayload","setItem","_window$localStorage2","getItem","GetMonthlyActiveUsers","GetMetrics","aggregationType","operatingSystem","maxSupportedKeys","ApiMessagingExtensionAuthType","GetAppPublishType","ResetAppPublishType","RegionSettings","teamsDevPortalRegionSetting","createAction","authServiceBaseUri","_data$regionGtms","_data$regionGtms2","_data$regionGtms3","_data$regionGtms4","GetRegionEndpointsSuccessfully","getRegionSuccess","regionGtms","teamsDevPortal","getRegionError","getFileBlobData","_getFileBlobData","GetAppCatalogName","CheckIfAppAlreadyPublished","_data$value$0$appDefi","publishingState","GetAppDefinitionForUploadApp","conflictErrorMessage","UploadApp","_data$error","LOBPublishNewRequest","code","GetAppDefinitionForUpdateApp","UpdateApp","GetAppByTeamsAppId","CancelRequest","ValidateTeamsAppDefinitionBeforeInstall","cb","InstallAppInTeams","closeDialogCallback","InstallAppInTeamsSuccess","InstallAppInTeamsFailure","pageNumber","GetAppDefinitions","FREE","successCb","failureCb","DeleteAppDefinitionError","deleteAppDefinitionError","createCallback","DuplicateAppDefinition","duplicateAppId","duplicateNotificationSuccessString","duplicateNotificationFailString","updateName","updateAppOwnersDefinition","userList","takeAppOwnership","manifestId","TakeAppOwnership","overwriteIfAppAlreadyExists","ImportAppDefinition","_error$data","_error$data2","eventData","UploadAppDefinitionError","SetAppDefinitionExist","SetImportUnprocessable","ImportAppDefinitionFailure","duplicateAppDefinition","SetAppFile","DownloadAppDefinition","hideNotification","downloadText","AppDistributeDownloadAppPackage","DownloadAppDefinitionError","downloadAppDefinitionError","nextAppDefinition","localeData","shouldProcessImage","OverrideAppDefinition","isFromSwitch","ClearMessagingExtensionConfiguration","OverrideAppDefinitionError","selectedEnvironment","index","UploadAppIcons","iconType","UploadAppIcon","Sharepoint","produce","draftAppDefinition","Color","colorIcon","Outline","outlineIcon","sharePointPreviewImage","uploadAppDefinitionError","AddAppDefinitionBotSuccessfully","AddAppDefinitionBotError","appDefinitionBotFailedToCreate","UpdateAppDefinitionBot","UpdateAppDefinitionBotSuccessfully","UpdateAppDefinitionBotError","appDefinitionBotFailedToUpdate","DeleteAppDefinitionBot","DeleteAppDefinitionBotSuccessfully","DeleteAppDefinitionBotError","appBotFailedToReset","isFromUploadAssets","isFromSwitchMessagingExtension","AddAppDefinitionMessagingExtensionSuccessfully","messagingExtensionServiceType","AddAppDefinitionMessagingExtensionError","UpdateAppDefinitionMessagingExtensionSuccessfully","SwitchAPIType","UpdateMessagingExtensionAndGetConfigAndAsset","UploadComposeExtensionAssetAndGetConfig","GetMessagingExtensionConfiguration","UpdateAppDefinitionMessagingExtensionError","messagingExtensionFailedToUpdate","DeleteAppDefinitionMessagingExtension","DeleteAppDefinitionMessagingExtensionSuccessfully","DeleteAppDefinitionMessagingExtensionError","messagingExtensionFailedToDelete","teamsApp","groupTab","CreateGroupOrMeetingTabError","UpdateGroupOrMeetingTabError","deleted","DeleteGroupOrMeetingTabError","CreateConnectorError","UpdateAppListUserMode","mode","UpdateAppListViewModel","SearchAppsList","SearchMyAppsWithCallback","PageAppsList","GetOwnerCandidates","query","ImportAppFromCatalog","overwriteIfAppExistsInDeveloperPortal","ring","ClearImportFromCatalogError","ClearOwnerCandidates","UpgradeLegacyApp","NavBarDataJson","GetHeaderShellInfoError","NetworkActionStatus","StateKey","Processing","Status","Successful","makeDocsLink","resource","searchParams","PersonalTabs","M365Apps","GroupChannelApp","MeetingExtension","BasicInfo","ManifestSchema","Tabs","BotDescription","Connector","MessagingExtension","MessagingExtensionDesc","MessagingExtensionCmdDesc","DevicePermission","TeamPermission","ChatAndMeetingPermission","UserPermission","AppCustomization","PublishToOrg","TestAndSubmit","AdditionalLanguages","LocalizationJSONSchamaReference","BotFrameworkSettings","ConnectorDashboard","ValidDomainDocumentation","AadAppReg","PartnerLearnMore","PartnerLearnMoreOverview","WebApplicationInfo","SharePointTab","SSO","LoadingIndicatorDoc","smeAuth","apiKeyRegistrationDocs","oAuthConfigurationDocs","entraConfigurationDocs","oAuthConfigurationIdDocs","oAuthConfigurationRestrictByTenantDocs","oAuthConfigurationRestrictByAppIdDocs","oAuthAuthorizationServerSettingsDocs","AzurePortalAppDetails","CapabilityDocs","EnableCustomApps","BrandDetails","AppSubmitGuidlines","AppAttestation","AppAuth","AppTesting","AppBasicInfo","AppDomain","BotDefaultMessages","TabPinningInfo","PartnerCenter","CommercialMarketplace","HowToCreateOffer","HowToCreateSaaSOfferPlans","HowToTestPreviewOffer","PublisherID","OfferID","AzureAppRegistrations","AzureAppOverview","AzureSupportedAccounts","AzureAppUri","AzureServicePrincipal","AppSubmissionTips","DevicePermissionDoc","GroupAndChannelAppDoc","AddMSTeamsTabInSharePoint","BuildMSTeamsTabWithSharePoint","MeetingsApp","Privacy","TermsOfUse","Gcc","GccHighDod","AppValidationV2","InstallVSTeamsToolkit","InstallVSCodeTeamsToolkit","AppIngestionWiki","TeamsToolkitFundamentals","ItalianAccessibilityDeclaration","BuildCopilotPlugin","OpenApiSpec","AnalyticsV2AdminPermissions","CopilotDeclarativeAgents","CopilotCustomEngine","CopilotStudio","IconAssets","EditIcon","sampleIcon","addFlight","removeFlight","globe","internalRing","success","warning","contoso","listView","publishOrg","distributeFlightApp","defaultAssets","notFound","fileWithLock","personWithLock","personWithShield","HomeAssets","hero","featured","NewHomeAssets","heroDark","adaptiveCard","importApp","createApp","copilot","copilotStudio","vsCode","createLight","createDark","importLight","importDark","cardLight","cardDark","HomeLinks","FluentUISite","FluentUIGithub","TeamsUITemplatesDocs","TeamsUITemplatesPlayground","TeamsSampleAppGithub","TeamsVSCodeExtension","TeamsVSExtension","TeamsAppTemplate","TeamsPlatformDocs","TeamsUIChartsGithub","TeamsCertificationDocs","TeamsSampleAppDownload","TeamsACATDocs","M365DevDocs","SampleAppsRepository","M365DeveloperBlog","ToolIcons","vscode","teamsUIKit","teams","sampleApp","identity","validation","figma","w3c","able","inclusive","shield","acat","apikey","oauth","entra","m365DevDoc","sampleAppsRepository","developerBlog","appCompliance","m365UIKit","ToolLinks","VSCodeExt","TeamsFigma","AbleFigma","W3CStandards","InclusiveDesign","M365KitFigma","TeamsIcon","installAppDefinitionLink","guidPlaceHolder","openInVSCodeLink","openInVSLink","validationAssets","empty","wait","copilotPluginAssets","uploadApiSpec","changeMEType","ApiBasedMessageExtensionAssets","ApiSpecSaved","packageEditorAssets","folder","oneShellHeaderBootstrapperLink","LayerType","CardType","CreateAppFlightError","UpdateWithdrawAppLink","UpdateWithdrawAppError","ResetAppFlightingError","authenticatedImageAdapter","createEntityAdapter","selectId","authenticatedImage","src","adapterSelectors","getSelectors","authenticatedImageSelectors","selectBySrc","selectById","getInitialState","AuthenticatedImages","startLoadingImage","current","setOne","loadImage","objectUri","failImage","GetMessagingExtensionConfig","GetMessagingExtensionConfigAndAsset","GetMessagingExtensionConfigurationSuccessfully","GetMessagingExtensionConfigurationError","setTheme","themes","LoggingTableName","logger","oneDS","instrumentationKey","extensions","webAnalyticsConfiguration","autoCapture","pageView","onLoad","scroll","onUnload","isTelemetryEnabled","isOneDsTelemetryEnabled","isConsoleLoggingEnabled","isLocalConsoleLoggingEnabled","sessionId","initialize","setLoggingContext","userContext","_userContext$tenantId","propertyManager","getPropertyManager","getPropertiesContext","user","localId","setProperty","eventName","telemetryPayload","createTelemetryPayload","logToOneDS","trackException","correlationCount","session","setId","buildDate","commitHast","EnvironmentType","tableName","trackEvent","Local","EnableOneDsTelemetry","EnableConsoleLogging"],"mappings":";y1HAeYA,EAAS,SAATA,GAAS,OAATA,EAAS,oBAATA,EAAS,kBAATA,EAAS,8BAATA,EAAS,YAATA,EAAS,YAATA,EAAS,gBAATA,EAAS,4BAATA,EAAS,oBAATA,EAAS,4BAATA,EAAS,8BAATA,EAAS,wBAATA,EAAS,4BAATA,EAAS,0BAATA,EAAS,sCAATA,EAAS,gDAATA,EAAS,kBAATA,EAAS,oCAATA,EAAS,wBAATA,EAAS,4BAATA,EAAS,eAATA,EAAS,kBAATA,EAAS,sBAATA,EAAS,8BAATA,EAAS,wBAATA,EAAS,0BAATA,EAAS,sBAATA,EAAS,0BAATA,EAAS,kBAATA,EAAS,sBAATA,EAAS,0BAATA,EAAS,wBAATA,EAAS,oDAATA,EAAS,2DAATA,EAAS,0CAATA,EAAS,8CAATA,EAAS,kEAATA,EAAS,0CAATA,EAAS,0CAATA,EAAS,0CAATA,EAAS,8BAATA,CAAS,MAqDRC,EAAc,SAACC,GAAuB,OAAK,SAACC,EAAYC,GACnE,OAAIA,EAAOC,UAAYH,IAAiBE,EAAOC,SAC7CC,wBAAA,GAAYH,GAAK,GAAAI,YAAA,GAAGH,EAAOC,UAAYH,EAAeE,EAAOI,UAEtDJ,EAAOI,OAElB,CAAE,EAIWC,EAA2B,SAACP,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACxFH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBG,IAASC,6BAA+BP,EAAOI,SAAO,CACtD,EAEUI,EAAyC,SAACV,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACtGH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBG,IAASG,iCAAmCT,EAAOI,SAAO,CAC1D,EAEUM,EAAgC,SAACZ,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC7FH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBG,IAASK,wBAA0BX,EAAOI,SAAO,CACjD,EAEUQ,EAAyB,WAAH,OAAS,SAACb,EAAYC,GACvD,IAAMa,EAAiBX,YAAA,GAAQH,EAAMe,eAErC,OADAD,EAAkBE,KAAOf,EAAOI,QAChCF,wBAAA,GAAYH,GAAK,IAAEe,cAAeD,EAAmBG,WAAYH,GACnE,CAAE,EAEWI,EAAwC,WAAH,OAAS,SAAClB,EAAYC,GACtE,IAAMa,EAAiBX,YAAA,GAAQH,EAAMe,eAErC,OADAD,EAAkBK,oBAAsBlB,EAAOI,QAC/CF,wBAAA,GAAYH,GAAK,IAAEe,cAAeD,EAAmBG,WAAYH,GACnE,CAAE,EAEWM,EAAwB,WAAH,OAAS,SAACpB,EAAYC,GAAW,OAAAE,wBAAA,GAC9DH,GAAK,GAAAI,YAAA,GACPG,IAASc,gBAAkBpB,EAAOI,SAAO,CACzC,EAEUiB,EAAyB,WAAH,OAAS,SAACtB,EAAYC,GACvD,IAAMsB,EAActB,EAAOuB,WAAaC,IAAiBC,MAAQnB,IAASoB,uBAAyBpB,IAASqB,sBAE5G,OAAAzB,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACPmB,EAAGpB,wBAAA,GACCH,EAAMuB,IACNtB,EAAOI,UAGhB,CAAE,EAEWwB,EAAgB,WAAH,OAAS,SAAC7B,EAAYC,GAC9C,IAAM6B,EAAc7B,EAAOI,QACrB0B,EAAmB9B,EAAOuB,WAAaC,IAAiBC,MAExDM,EAAgBD,EAAUxB,IAASoB,uBAAyBpB,IAASqB,sBAErEK,EAAiBF,EAAUxB,IAAS2B,kBAAoB3B,IAAS4B,eAEjEC,EAAW,SAACC,GAAuB,IAADC,EAAAC,EAAAC,EAAAC,EAChCC,EAAgBZ,EAAIa,cACpBC,GAAyB,QAATN,EAAAD,EAAEQ,eAAO,IAAAP,OAAA,EAATA,EAAYK,cAAcG,QAAQJ,KAAU,IAAgB,QAAXH,EAAAF,EAAEU,iBAAS,IAAAR,OAAA,EAAXA,EAAaI,cAAcG,QAAQJ,KAAU,EAEpH,OAAOM,YAASlB,GAAOc,IAAoB,QAAZJ,EAAAH,EAAEY,kBAAU,IAAAT,OAAA,EAAZA,EAAcM,QAAQhB,KAAQ,IAAY,QAAPW,EAAAJ,EAAEa,aAAK,IAAAT,OAAA,EAAPA,EAASK,QAAQhB,KAAQ,EAAIc,CACjG,EAEIO,EAA0BnD,EAAMiC,GAE9BmB,EAAcpD,EAAMgC,GAAkB,UAG5C,GAAIoB,EAAa,CACf,IAAMC,EAAYrD,EAAMgC,GAAsB,cAEzCF,IACHqB,EAAUE,GAGRvB,IACFqB,EAAUE,EAAUC,OAAOlB,GAE/B,CAaA,OAVKgB,IACEtB,IACHqB,EAAUnD,EAAMiC,IAGdH,IACFqB,EAAUnD,EAAMiC,GAAQqB,OAAOlB,KAInCjC,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP4B,EAAK7B,wBAAA,GACDH,EAAMgC,IACN,CAAEsB,OAAQxB,EAAKyB,cAAeJ,EAASK,YAAa1B,KAG7D,CAAE,EAEW2B,EAAc,WAAH,OAAS,SAACzD,EAAYC,GAAiB,IAADyD,EACtD3B,EAAmB9B,EAAOuB,WAAaC,IAAiBC,MAExDM,EAAgBD,EAAUxB,IAASoB,uBAAyBpB,IAASqB,sBAErEK,EAAiBF,EAAUxB,IAAS2B,kBAAoB3B,IAAS4B,eAEvEwB,EAA0B1D,EAAOI,QAAzBuD,EAAID,EAAJC,KAAMT,EAAOQ,EAAPR,QAEVU,EAA2B7D,EAAMiC,GAUrC,OARa,IAAT2B,IACFC,EAASV,GAGPS,EAAO,IACTC,EAAS7D,EAAMiC,GAAQ6B,OAAOX,IAGhChD,wBAAA,GACKH,GAAK,IAAA0D,EAAA,GAAAtD,YAAAsD,EACP1B,EAAK7B,wBAAA,GACDH,EAAMgC,IACN,CAAE4B,OAAMG,WAAW,EAAOP,WAAW,EAAOF,OAAQ,MAAIlD,YAAAsD,EAE5DzB,EAAS4B,GAAMH,GAEpB,CAAE,EAEWM,EAAmB,WAAH,OAAS,SAAChE,EAAYC,GAAiB,IAADgE,EAC3DC,EAAajE,EAAOI,QAAQ4C,WAC5BkB,EAAyBC,oBAAUpE,EAAMO,IAAS4B,iBAClDkC,EAA+BrE,EAAMO,IAAS+D,sBAAsBhB,QAAO,SAACiB,GAAiB,OAAKA,EAAEtB,aAAeiB,CAAE,IACrHM,EAAcL,EAAKM,WAAU,SAACF,GAAiB,OAAKA,EAAEtB,aAAeiB,CAAE,IAG7E,OAFAC,EAAKO,OAAOF,EAAK,EAAGvE,EAAOI,SAE3BF,wBAAA,GACKH,GAAK,IAAAiE,EAAA,GAAA7D,YAAA6D,EACP1D,IAAS4B,eAAiBgC,GAAI/D,YAAA6D,EAC9B1D,IAAS+D,qBAAuBD,GAAUjE,YAAA6D,EAC1C1D,IAASoE,0BAA4BN,EAAWO,QAAMX,GAE3D,CAAE,EAGWY,EAAU,SAAC9E,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACvEH,GACAA,EAAMD,IAAa,IACtB+E,KAAIC,YAAM9E,EAAOI,UAAQ,CACxB,EAEU2E,EAAY,WAAH,OAAS,SAAChF,EAAYC,GAAW,OAAAE,wBAAA,GAClDH,GAAK,GAAAI,YAAA,GACP6E,IAASH,KAAI,GAAAhB,OAAAiB,YAAO/E,EAAMiF,IAASH,OAAK,CAAE7E,EAAOI,WAAO,CACxD,EAEU6E,EAAmC,WAAH,OAAS,SAAClF,EAAYC,GAAW,OAAAE,wBAAA,GACzEH,GAAK,GAAAI,YAAA,GACP6E,IAASE,0BAA4BlF,EAAOI,SAAO,CACnD,EAEU+E,EAAe,WAAH,OAAS,SAACpF,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAG6E,IAASI,SAAWpF,EAAOI,SAAO,CAAI,EAEtGiF,EAA6B,WAAH,OAAS,SAACtF,EAAYC,GAAW,OAAAE,wBAAA,GACnEH,GAAK,GAAAI,YAAA,GACP6E,IAASM,oBAAsBtF,EAAOI,SAAO,CAC7C,EAEUmF,EAAyB,WAAH,OAAS,SAACxF,EAAYC,GAAW,OAAAE,wBAAA,GAC/DH,GAAK,GAAAI,YAAA,GACP6E,IAASQ,mBAAqBxF,EAAOI,SAAO,CAC5C,EAEUqF,EAAmB,WAAH,OAAS,SAAC1F,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAG6E,IAASU,aAAe1F,EAAOI,SAAO,CAAI,EAE9GuF,EAAsC,WAAH,OAAS,SAAC5F,EAAYC,GAAW,IAAA4F,EAAA,OAAA1F,wBAAA,GAC5EH,GAAK,IAAA6F,EAAA,GAAAzF,YAAAyF,EACPZ,IAASH,KAAO9E,EAAMiF,IAASH,MAAMxB,QAAO,SAACwC,GAAqB,OAAKA,EAAIC,QAAU9F,EAAOI,OAAO,KAACD,YAAAyF,EACpGZ,IAASE,0BAA4B,CAAC,GAAC/E,YAAAyF,EACvCZ,IAASe,YAAa,GAAI5F,YAAAyF,EAC1BZ,IAASgB,aAAehG,EAAOI,SAAOwF,GAAA,CACtC,EAEUK,EAAa,WAAH,OAAS,SAAClG,EAAYC,GAAW,OAAAE,wBAAA,GACnDH,GAAK,GAAAI,YAAA,GACP6E,IAASgB,aAAehG,EAAOI,SAAO,CACtC,EAEU8F,EAAgC,WAAH,OAAS,SAACnG,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAG6E,IAASM,oBAAsB,CAAC,GAAC,CAAI,EAEtHa,EAAwC,WAAH,OAAS,SAACpG,EAAYC,GAAW,OAAAE,wBAAA,GAC9EH,GAAK,GAAAI,YAAA,GACP6E,IAASoB,+BAAiCpG,EAAOI,SAAO,CACxD,EAEUiG,EAAkC,WAAH,OAAS,SAACtG,EAAYC,GAAW,OAAAE,wBAAA,GACxEH,GAAK,GAAAI,YAAA,GACP6E,IAASsB,yBAA2BtG,EAAOI,SAAO,CAClD,EAEUmG,EAA0B,WAAH,OAAS,SAACxG,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAG6E,IAASU,aAAe1F,EAAOI,SAAO,CAAI,EAErHoG,EAAqB,WAAH,OAAS,SAACzG,EAAYC,GACnD,OAAQA,EAAOyG,SACb,KAAKC,IAAQC,OACX,OAAAzG,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP6E,IAASQ,mBAAqBxF,EAAOI,UAG1C,KAAKsG,IAAQE,yBACX,OAAA1G,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP6E,IAASoB,+BAAiCpG,EAAOI,UAGtD,KAAKsG,IAAQG,cACX,OAAA3G,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP6E,IAASE,0BAAyBhF,wBAAA,GAC9BH,EAAMiF,IAASE,4BACflF,EAAOI,WAKpB,CAAE,EAEW0G,EAAe,WAAH,OAAS,SAAC/G,EAAYC,GAC7C,OAAQA,EAAOyG,SACb,KAAKC,IAAQC,OACX,OAAAzG,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP6E,IAASU,aAAYxF,wBAAA,GAAQH,EAAMiF,IAASU,eAAa,IAAEqB,oBAAqB/G,EAAOI,QAAQ2G,wBAGpG,KAAKL,IAAQE,yBACX,OAAA1G,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP6E,IAASsB,yBAAwBpG,wBAAA,GAC7BH,EAAMiF,IAASsB,2BAAyB,IAC3CS,oBAAqB/G,EAAOI,QAAQ2G,wBAI1C,KAAKL,IAAQG,cACX,OAAA3G,wBAAA,GACKH,GAAK,GAAAI,YAAA,GACP6E,IAASM,oBAAmBpF,wBAAA,GAAQH,EAAMiF,IAASM,sBAAoB,IAAEyB,oBAAqB/G,EAAOI,QAAQ2G,wBAItH,CAAE,EAEWC,EAAoB,WAAH,OAAS,SAACjH,EAAYC,GAClD,OAAQA,EAAOyG,SACb,KAAKC,IAAQC,OAAS,IAADM,EACbC,EAAehH,YAAA,GAAQH,EAAMiF,IAASU,eAE5C,OADAwB,EAAgBH,oBAAmB,GAAAlD,OAAAiB,YAAOoC,EAAgBH,qBAAmB,CAAE/G,EAAOI,UACtFF,wBAAA,GACKH,GAAK,IAAAkH,EAAA,GAAA9G,YAAA8G,EACPjC,IAASmC,eAAiBnH,EAAOI,SAAOD,YAAA8G,EACxCjC,IAASU,aAAewB,GAAeD,IAG5C,KAAKP,IAAQE,yBAA2B,IAADQ,EAC/BC,EAA2BnH,YAAA,GAAQH,EAAMiF,IAASsB,2BAExD,OADAe,EAA4BN,oBAAmB,GAAAlD,OAAAiB,YAAOuC,EAA4BN,qBAAmB,CAAE/G,EAAOI,UAC9GF,wBAAA,GACKH,GAAK,IAAAqH,EAAA,GAAAjH,YAAAiH,EACPpC,IAASmC,eAAiBnH,EAAOI,SAAOD,YAAAiH,EACxCpC,IAASsB,yBAA2Be,GAA2BD,IAGpE,KAAKV,IAAQG,cAAgB,IAADS,EACpBC,EAAsBrH,YAAA,GAAQH,EAAMiF,IAASM,sBAEnD,OADAiC,EAAuBR,oBAAmB,GAAAlD,OAAAiB,YAAOyC,EAAuBR,qBAAmB,CAAE/G,EAAOI,UACpGF,wBAAA,GACKH,GAAK,IAAAuH,EAAA,GAAAnH,YAAAmH,EACPtC,IAASmC,eAAiBnH,EAAOI,SAAOD,YAAAmH,EACxCtC,IAASM,oBAAsBiC,GAAsBD,IAI9D,CAAE,EAEWE,EAA4B,WAAH,OAAS,SAACzH,EAAYC,GAAW,OAAAE,wBAAA,GAClEH,GAAK,GAAAI,YAAA,GACP6E,IAASyC,uBAAyBzH,EAAOI,SAAO,CAChD,EAEUsH,EAAyB,WAAH,OAAS,SAAC3H,EAAYC,GAAW,OAAAE,wBAAA,GAC/DH,GAAK,GAAAI,YAAA,GACP6E,IAAS2C,iBAAmB3H,EAAOI,SAAO,CAC1C,EAEUwH,EAAsB,WAAH,OAAS,SAAC7H,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAGG,IAASuH,YAAa,GAAK,CAAI,EAEtGC,EAA0B,WAAH,OAAS,SAAC/H,EAAYC,GAAW,IAAA+H,EAAA,OAAA7H,wBAAA,GAChEH,GAAK,IAAAgI,EAAA,GAAA5H,YAAA4H,EACPzH,IAASQ,cAAgB,CAAC,GAACX,YAAA4H,EAC3BzH,IAAS0H,WAAa,CAAC,GAAC7H,YAAA4H,EACxBzH,IAAS2H,kBAAoB,CAAC,GAAC9H,YAAA4H,EAC/BzH,IAASG,iCAAmC,CAAEwD,GAAI,GAAIiE,YAAa,KAAI/H,YAAA4H,EACvEzH,IAASK,wBAA0B,GAACR,YAAA4H,EACpCzH,IAASC,6BAA+B,IAAEwH,GAAA,CAC1C,EAEUI,EAA4B,WAAH,OAAS,SAACpI,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAGG,IAAS8H,kBAAmB,GAAK,CAAI,EAElHC,EAAsB,WAAH,OAAS,SAACtI,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,GAAAI,YAAA,GAAG6E,IAASe,YAAa,GAAK,CAAI,EAGtGuC,EAA4B,WAAH,OAAS,SAACvI,EAAYC,GAAiB,IAADuI,EACpEC,EAAatI,YAAA,GAAQH,EAAMe,eAEjC,OADA0H,EAAcC,WAAazI,EAAOI,QAClCF,wBAAA,GAAYH,GAAK,IAAAwI,EAAA,GAAApI,YAAAoI,EAAGjI,IAASQ,cAAgB0H,GAAarI,YAAAoI,EAAC,aAAa,CAAC,GAACpI,YAAAoI,EAAGjI,IAAS8H,kBAAmB,GAAIG,GAC/G,CAAE,EAEWG,EAAoB,WAAH,OAAS,SAAC3I,EAAYC,GAAiB,IAAD2I,EAC5DH,EAAatI,YAAA,GAAQH,EAAMe,eAEjC,OADA0H,EAAcC,WAAazI,EAAOI,QAAQqI,WAC1CvI,wBAAA,GAAYH,GAAK,IAAA4I,EAAA,GAAAxI,YAAAwI,EAAGrI,IAASQ,cAAgB0H,GAAarI,YAAAwI,EAAC,aAAa,CAAC,GAACA,GAC5E,CAAE,EAGWC,EAAiB,WAAH,OAAS,SAAC7I,EAAYC,GAAiB,IAAD6I,EACzDC,EAAoB5I,YAAA,GAAQH,EAAMe,eAExC,OADAgI,EAAqBC,iBAAmB/I,EAAOI,QAC/CF,wBAAA,GAAYH,GAAK,IAAA8I,EAAA,GAAA1I,YAAA0I,EAAGvI,IAASQ,cAAgBgI,GAAoB3I,YAAA0I,EAAC,aAAaC,GAAoBD,GACrG,CAAE,EAEWG,EAAiB,WAAH,OAAS,SAACjJ,EAAYC,GAAW,IAAAiJ,EAAA,OAAA/I,wBAAA,GACvDH,GAAK,IAAAkJ,EAAA,GAAA9I,YAAA8I,EACP3I,IAASQ,cAAgBd,EAAOI,SAAOD,YAAA8I,EAAC,aAC7BjJ,EAAOI,SAAO6I,GAAA,CACzB,EAGUC,EAAoB,SAACpJ,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACjFH,GACAA,EAAMD,IAAa,IACtBqJ,YAAanJ,EAAOI,QAAQgJ,gBAAc,CACzC,EAEUC,EAAY,SAACvJ,GAAuB,OAAK,SAACC,EAAYC,GAAW,IAAAsJ,EAAA,OAAApJ,oCAAA,GACzEH,GACAA,EAAMD,IAAa,IAAAwJ,EAAA,GAAAnJ,YAAAmJ,EACrBC,IAAeC,aAAexJ,EAAOI,SAAOD,YAAAmJ,EAC5CC,IAAeE,UAAYzJ,EAAOI,QAAQsJ,cAAYJ,GAAA,CACtD,EAEUK,EAAY,SAAC7J,GAAuB,OAAK,SAACC,EAAYC,GAAW,IAAA4J,EAAA,OAAA1J,oCAAA,GACzEH,GACAA,EAAMD,IAAa,IAAA8J,EAAA,GAAAzJ,YAAAyJ,EACrBL,IAAeC,aAAexJ,EAAOI,SAAOD,YAAAyJ,EAC5CL,IAAeE,UAAYzJ,EAAOI,QAAQsJ,cAAYE,GAAA,CACtD,EAEUC,GAAgB,SAAC/J,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC7EH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBoJ,IAAeC,aAAexJ,EAAOI,SAAO,CAC5C,EAEU0J,GAA6B,SAAChK,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC1FH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBoJ,IAAeC,aAAexJ,EAAOI,SAAO,CAC5C,EAEU2J,GAAqB,SAACjK,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAClFH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBoJ,IAAeC,aAAexJ,EAAOI,SAAO,CAC5C,EAGU4J,GAAkB,WAAH,OAAS,SAACjK,EAAYC,GAAiB,IAADiK,EAC1DnB,EAAoB5I,YAAA,GAAQH,EAAMe,eAExC,OADAgI,EAAqBoB,WAAalK,EAAOI,QACzCF,wBAAA,GAAYH,GAAK,IAAAkK,EAAA,GAAA9J,YAAA8J,EAAG3J,IAASQ,cAAgBgI,GAAoB3I,YAAA8J,EAAC,aAAanB,GAAoBmB,GACrG,CAAE,EAEWE,GAAkB,WAAH,OAAS,SAACpK,EAAYC,GAAW,IAAAoK,EAAA,OAAAlK,wBAAA,GACxDH,GAAK,IAAAqK,EAAA,GAAAjK,YAAAiK,EACP9J,IAASQ,cAAgBd,EAAOI,SAAOD,YAAAiK,EAAC,aAC7BpK,EAAOI,SAAOgK,GAAA,CACzB,EAIUC,GAAgB,WAAH,OAAS,SAACtK,EAAYC,GAAW,OAAAE,wBAAA,GACtDH,GAAK,IACRuK,gBAAepK,wBAAA,GACVH,EAAMuK,iBAAe,IACxBC,WAAW,GAAD1G,OAAAiB,YAAM/E,EAAMuK,gBAAgBC,YAAUzF,YAAK9E,EAAOI,UAC5DoK,wBAAyBzK,EAAMuK,gBAAgBE,wBAA0B,KAC1E,CACA,EAEUC,GAA2B,WAAH,OAAS,SAAC1K,EAAYC,GAAW,OAAAE,wBAAA,GACjEH,GAAK,IACRuK,gBAAepK,wBAAA,GAAOH,EAAMuK,iBAAe,IAAEI,sBAAuB1K,EAAOI,WAAS,CACnF,EAEUuK,GAAiB,WAAH,OAAS,SAAC5K,EAAYC,GAAW,OAAAE,wBAAA,GACvDH,GAAK,IACR6K,iBAAgB1K,wBAAA,GACXH,EAAM6K,kBAAgB,IACzBC,YAAY,GAADhH,OAAAiB,YAAM/E,EAAM6K,iBAAiBC,aAAW/F,YAAK9E,EAAOI,UAC/D0K,yBAA0B/K,EAAM6K,iBAAiBE,yBAA2B,KAC7E,CACA,EAEUC,GAA4B,WAAH,OAAS,SAAChL,EAAYC,GAAW,OAAAE,wBAAA,GAClEH,GAAK,IACR6K,iBAAgB1K,wBAAA,GAAOH,EAAM6K,kBAAgB,IAAEI,uBAAwBhL,EAAOI,WAAS,CACtF,EAEU6K,GAAU,SAACnL,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACvEH,GACAA,EAAMD,IAAa,IACtBoL,KAAMlL,EAAOI,SAAO,CACnB,EACU+K,GAAY,SAACrL,GAAuB,OAAK,SAACC,GAAU,OAAAG,oCAAA,GAAWH,GAAUA,EAAMD,IAAa,IAAEoL,KAAM,MAAI,CAAI,EAE5GE,GAAa,WAAH,OAAS,SAACrL,EAAYC,GAAW,IAAAqL,EAAA,OAAAnL,wBAAA,GACnDH,GAAK,IAAAsL,EAAA,GAAAlL,YAAAkL,EACPC,IAAUC,iBAAgBrL,wBAAA,GACtBH,EAAMuL,IAAUC,mBAAiB,GAAApL,YAAA,GACnCmL,IAAUE,YAAW,GAAA3H,OAAAiB,YAAO/E,EAAMuL,IAAUC,kBAAkBD,IAAUE,cAAY,CAAExL,EAAOI,aAAOD,YAAAkL,EAEtGC,IAAUG,gBAAevL,wBAAA,GACrBH,EAAMuL,IAAUG,kBAAgB,GAAAtL,YAAA,GAClCmL,IAAUI,WAAU,GAAA7H,OAAAiB,YAAO/E,EAAMuL,IAAUG,iBAAiBH,IAAUI,aAAW,CAAE1L,EAAOI,aAAOiL,GAAA,CAEnG,EAEUM,GAAa,WAAH,OAAS,SAAC5L,EAAYC,GAAiB,IAAD4L,EACrDC,EAAiB9L,EAAMuL,IAAUC,kBAAkBD,IAAUE,aAAaM,KAAI,SAACC,GACnF,OAAIA,EAAE9H,KAAOjE,EAAOI,QAAQ4L,KAAK/H,GACxBjE,EAAOI,QAAQ4L,KAEjBD,CACT,IACME,EAAgBlM,EAAMuL,IAAUG,iBAAiBH,IAAUI,YAAYI,KAAI,SAACC,GAChF,OAAIA,EAAE9H,KAAOjE,EAAOI,QAAQ4L,KAAK/H,GACxBjE,EAAOI,QAAQ4L,KAEjBD,CACT,IACA,OAAA7L,wBAAA,GACKH,GAAK,IAAA6L,EAAA,GAAAzL,YAAAyL,EACPN,IAAUC,iBAAgBrL,wBAAA,GACtBH,EAAMuL,IAAUC,mBAAiB,GAAApL,YAAA,GACnCmL,IAAUE,YAAcK,KAAc1L,YAAAyL,EAExCN,IAAUG,gBAAevL,wBAAA,GACrBH,EAAMuL,IAAUG,kBAAgB,GAAAtL,YAAA,GAClCmL,IAAUI,WAAaO,KAAa9L,YAAAyL,EAAA,OAEjC5L,EAAOI,QAAQ4L,MAAIJ,GAE7B,CAAE,EAEWM,GAAa,WAAH,OAAS,SAACnM,EAAYC,GAAiB,IAADmM,EACrDN,EAAiB9L,EAAMuL,IAAUC,kBAAkBD,IAAUE,aAAanI,QAAO,SAAC0I,GAAQ,OAAKA,EAAE9H,KAAOjE,EAAOI,OAAO,IACtH6L,EAAgBlM,EAAMuL,IAAUG,iBAAiBH,IAAUI,YAAYrI,QAAO,SAAC0I,GAAQ,OAAKA,EAAE9H,KAAOjE,EAAOI,OAAO,IACzH,OAAAF,wBAAA,GACKH,GAAK,IAAAoM,EAAA,GAAAhM,YAAAgM,EACPb,IAAUC,iBAAgBrL,wBAAA,GACtBH,EAAMuL,IAAUC,mBAAiB,GAAApL,YAAA,GACnCmL,IAAUE,YAAcK,KAAc1L,YAAAgM,EAExCb,IAAUG,gBAAevL,wBAAA,GACrBH,EAAMuL,IAAUG,kBAAgB,GAAAtL,YAAA,GAClCmL,IAAUI,WAAaO,KAAaE,GAG3C,CAAE,EAGWC,GAAc,SAACtM,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC3EH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBkM,IAAiBC,SAAWtM,EAAOI,SAAO,CAC1C,EAEUmM,GAAa,SAACzM,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC1EH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBkM,IAAiBG,WAAaxM,EAAOI,SAAO,CAC5C,EAEUqM,GAAyB,SAAC3M,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACtFH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBkM,IAAiBK,uBAAyB1M,EAAOI,SAAO,CACxD,EAEUuM,GAAkC,SAAC7M,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC/FH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBkM,IAAiBO,qBAAuB5M,EAAOI,SAAO,CACtD,EAEUyM,GAAoB,SAAC/M,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACjFH,GACAA,EAAMD,IAAa,GAAAK,YAAA,GACrBkM,IAAiBS,eAAiB9M,EAAOI,SAAO,CAChD,EAGU2M,GAAY,SAACjN,GAAuB,OAAK,SAACC,EAAYC,GACjE,IAAMgN,EAAOhN,EAAOI,QACd6M,EAASD,EAAK3J,QAAO,SAAC6J,GAAa,OAAMA,EAAMC,QAAQ,IACvDC,EAAUJ,EAAK3J,QAAO,SAAC6J,GAAa,OAAKA,EAAMC,QAAQ,IAC7D,OAAAjN,oCAAA,GAAYH,GAAUA,EAAMD,IAAa,IAAEmN,SAAQG,WACrD,CAAE,EAEWC,GAAW,SAACvN,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACxEH,GACAA,EAAMD,IAAa,IACtBoN,MAAOlN,EAAOI,SAAO,CACpB,EAEUkN,GAAgB,SAACxN,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,wBAAA,GAC7EH,GAAK,IACRwN,QAAOrN,wBAAA,GAAOH,EAAe,SAAC,IAAEyN,SAAUxN,EAAOI,WAAS,CACzD,EAEUqN,GAAgB,SAAC3N,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,wBAAA,GAC7EH,GAAK,IACRwN,QAAOrN,wBAAA,GAAOH,EAAe,SAAC,IAAEyN,SAAU,MAAI,CAC7C,EAEUE,GAAc,SAAC5N,GAAuB,OAAK,SAACC,EAAYC,GAAiB,IAAD2N,EAAAC,EAC7EtM,GAAoB,QAAdqM,EAAA3N,EAAOI,eAAO,IAAAuN,OAAA,EAAdA,EAAgBR,UAAW,UAAY,SACnD,OAAAjN,oCAAA,GACKH,GACAA,EAAMD,IAAa,IAAA8N,EAAA,GAAAzN,YAAAyN,EACrBtM,EAAG,GAAAuC,OAAAiB,YAAY,OAAL/E,QAAK,IAALA,OAAK,EAALA,EAAQuB,IAAI,CAAEtB,EAAOI,WAAOD,YAAAyN,EAAA,QAChC5N,EAAOI,SAAOwN,GAEzB,CAAE,EAEWC,GAAc,SAAC/N,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC3EH,GACAA,EAAMD,IAAa,IACtBoN,MAAOlN,EAAOI,SAAO,CACpB,EAEU0N,GAA0B,SAAChO,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACvFH,GACAA,EAAMD,IAAa,IACtBiO,wBAAyB/N,EAAOI,SAAO,CACtC,EAEU4N,GAA6B,SAAClO,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC1FH,GACAA,EAAMD,IAAa,IACtBmO,2BAA4BjO,EAAOI,SAAO,CACzC,EAEU8N,GAAa,WAAH,OAAS,SAACnO,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,IAAEmN,MAAO,MAAI,CAAI,EAE5EiB,GAA+B,SAACrO,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC5FH,GACAA,EAAMD,IAAa,IACtBsO,eAAe,GAADvK,OAAAiB,YAAM/E,EAAMqO,gBAAc,CAAEpO,EAAOI,WAAQ,CACxD,EAEUiO,GAA0B,SAACvO,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACvFH,GACAA,EAAMD,IAAa,IACtBsO,eAAgB,IAAE,CACjB,EACUE,GAAmB,SAACxO,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAChFH,GACAA,EAAMD,IAAa,IACtByO,oBAAqBvO,EAAOI,SAAO,CAClC,EACUoO,GAAuB,WAAH,OAAS,SAACzO,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,IAAE0O,yBAA0BzO,EAAOI,SAAO,CAAI,EACnHsO,GAAyB,WAAH,OAAS,SAAC3O,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,IAAE4O,uBAAwB3O,EAAOI,SAAO,CAAI,EAEnHwO,GAAa,SAAC9O,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC1EH,GACAA,EAAMD,IAAa,IACtB8O,WAAY5O,EAAOI,SAAO,CACzB,EAEUyO,GAAc,SAAC/O,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC3EH,GACAA,EAAMD,IAAa,IACtB+O,YAAa7O,EAAOI,SAAO,CAC1B,EAEU0O,GAAqB,SAAChP,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAClFH,GACAA,EAAMD,IAAa,IACtByN,QAASvN,EAAOI,SAAO,CACtB,EAEU2O,GAA2B,SAACjP,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACxFH,GACAA,EAAMD,IAAa,IACtBkP,aAAcjP,EAAMiP,aAAW,CAC9B,EAEUC,GAAc,SAACnP,GAAuB,OAAK,SAACC,EAAYC,GAAiB,IAADkP,EAAAC,EAC7E7N,GAAoB,QAAd4N,EAAAlP,EAAOI,eAAO,IAAA8O,OAAA,EAAdA,EAAgB/B,UAAW,UAAY,SAC7CiC,EAAYrP,EAAMuB,GAAKwK,KAAI,SAACuD,GAChC,OAAIA,EAAEpL,KAAOjE,EAAOI,QAAQ6D,GACnBjE,EAAOI,QAETiP,CACT,IACA,OAAAnP,oCAAA,GAAYH,GAAUA,EAAMD,IAAa,IAAAqP,EAAA,GAAAhP,YAAAgP,EAAG7N,EAAM8N,GAASjP,YAAAgP,EAAC,QAAQnP,EAAOI,SAAO+O,GACpF,CAAE,EAEWG,GAAc,SAACxP,GAAuB,OAAK,SAACC,EAAYC,GAAiB,IAADuP,EAAAC,EAC7ElO,GAAoB,QAAdiO,EAAAvP,EAAOI,eAAO,IAAAmP,OAAA,EAAdA,EAAgBpC,UAAW,UAAY,SAC7CsC,EAAc1P,EAAMuB,GAAK+B,QAAO,SAACgM,GAAS,OAAKA,EAAEpL,KAAOjE,EAAOI,QAAQ6D,EAAE,IAC/E,OAAA/D,oCAAA,GAAYH,GAAUA,EAAMD,IAAa,IAAA0P,EAAA,GAAArP,YAAAqP,EAAGlO,EAAMmO,GAAWtP,YAAAqP,EAAC,QAAQ,MAAIA,GAC5E,CAAE,EAEWE,GAAc,SAAC5P,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC3EH,GACAA,EAAMD,IAAa,IACtB6P,aAAc3P,EAAOI,SAAO,CAC3B,EAEUwP,GAAqB,SAAC9P,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAClFH,GACAA,EAAMD,IAAa,IACtB+P,WAAY7P,EAAOI,SAAO,CACzB,EAGU0P,GAAkB,WAAH,OAAS,SAAC/P,EAAYC,GAChD,IAAMkE,EAAOlE,EAAOI,QAAQ8D,KAC5B,OAAAhE,oCAAA,GAAYH,GAAUA,EAAMH,EAAUmQ,eAAa,IAAE7L,KAAIY,YAAMZ,IACjE,CAAE,EAEW8L,GAAqB,WAAH,OAAS,SAACjQ,EAAYC,GACnD,IAAMiQ,EAAMjQ,EAAOI,SAAWJ,EAAOI,QAAQuE,OAAS,EAAI3E,EAAOI,QAAQ,GAAK,CAAC,CAAC,GAChF,OAAAF,oCAAA,GAAYH,GAAUA,EAAMH,EAAUmQ,eAAa,IAAEE,IAAG/P,YAAA,GAAO+P,IACjE,CAAE,EAEWC,GAAoB,WAAH,OAAS,SAACnQ,EAAYC,GAClD,IAAMmQ,EAAOnQ,EAAOI,QAAUJ,EAAOI,QAAU,KAC/C,OAAAF,oCAAA,GAAYH,GAAUA,EAAMH,EAAUmQ,eAAa,IAAE7L,KAAK,GAADL,OAAAiB,YAAM/E,EAAMmE,MAAI,CAAEiM,IAAOF,IAAKE,GACzF,CAAE,EAEWC,GAAiB,WAAH,OAAS,SAACrQ,EAAYC,GAAW,OAAAE,oCAAA,GACvDH,GACAA,EAAMH,EAAUmQ,eAAa,IAChCM,YAAarQ,EAAOI,SAAO,CAC1B,EAEUkQ,GAAoB,WAAH,OAAS,SAACvQ,EAAYC,GAClD,IAAQI,EAAYJ,EAAZI,QACFmQ,EAAc,CAAEC,QAAS,KAAMC,KAAMrQ,EAAQqQ,KAAMC,UAAW,KAAMC,MAAO,KAAMC,MAAOxQ,EAAQ6D,IAChG4M,EAAS3Q,YAAA,GAAQH,EAAMkQ,KACvBa,EAAY,GAAAjN,OAAAiB,YAAO+L,EAAU9J,qBAAmB,CAAEwJ,IAExD,OADAM,EAAU9J,oBAAsB+J,EAChC5Q,oCAAA,GAAYH,GAAUA,EAAMH,EAAUmQ,eAAa,IAAEE,IAAKY,EAAWR,YAAarQ,EAAOI,SAC3F,CAAE,EAEW2Q,GAAuB,WAAH,OAAS,SAAChR,EAAYC,GACrD,IAAQI,EAAYJ,EAAZI,QACR,OAAAF,wBAAA,GAAYH,GAAK,IAAEkQ,IAAG/P,wBAAA,GAAOH,EAAMkQ,KAAG,IAAElJ,oBAAqB3G,EAAQ2G,uBACvE,CAAE,EAEWiK,GAAmB,SAAC/Q,GAAmB,OAAK,SAACF,EAAYC,GAAW,OAAAE,oCAAA,GAC5EH,GACAA,EAAME,IAAS,IAClBgR,aAAcjR,EAAOkR,MAAI,CACxB,EAEUC,GAAmB,WAAH,OAAS,SAACpR,EAAYC,GAAW,OAAAE,oCAAA,GACzDH,GACAA,EAAMH,EAAUmQ,eAAa,IAChCE,IAAKjQ,EAAOI,QACZ6Q,aAAc,MAAI,CACjB,EAEUG,GAAc,WAAH,OAAS,SAACrR,EAAYC,GAAW,OAAAE,oCAAA,GACpDH,GACAA,EAAMH,EAAUmQ,eAAa,GAAA5P,YAAA,GAC/BkR,IAAiBC,SAAWtR,EAAOI,SAAO,CAC1C,EAEUmR,GAAiB,WAAH,OAAS,SAACxR,EAAYC,GAAW,OAAAE,wBAAA,GACvDH,GAAK,GAAAI,YAAA,CACRW,cAAed,EAAOI,SACrBiR,IAAiBC,SAAWtR,EAAOI,SAAO,CAC1C,EAEUoR,GAAsB,WAAH,OAAS,SAACzR,EAAYC,GAAW,OAAAE,oCAAA,GAC5DH,GACAA,EAAMH,EAAUmQ,eAAa,IAChC0B,iBAAkBzR,EAAOI,SAAO,CAC/B,EAEUsR,GAAwB,WAAH,OAAS,SAAC3R,EAAYC,GAAW,OAAAE,oCAAA,GAC9DH,GACAA,EAAMH,EAAUmQ,eAAa,IAChC0B,iBAAkB,IAAE,CACnB,EAIUE,GAA4B,WAAH,OAAS,SAAC5R,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,IAAE6R,uBAAwB5R,EAAOI,SAAO,CAAI,EAEtHyR,GAAqB,WAAH,OAAS,SAAC9R,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,IAAE+R,kBAAmB9R,EAAOI,SAAO,CAAI,EAG1G2R,GAAoB,WAAH,OAAS,SAAChS,EAAYC,GAAW,OAAAE,wBAAA,GAC1DH,GAAK,IACRiS,MAAOhS,EAAOI,QAAQ4R,MACtB9J,YAAalI,EAAOI,QAAQ8H,YAC5B+J,WAAYjS,EAAOI,QAAQ6R,WAC3BC,oBAAqBlS,EAAOI,QAAQ8R,oBACpCC,cAAenS,EAAOI,QAAQ+R,cAC9BC,SAAUpS,EAAOI,QAAQgS,UAAQ,CAChC,EAEUC,GAAkC,WAAH,OAAS,SAACtS,EAAYC,GAAW,OAAAE,wBAAA,GACxEH,GAAK,IACRuS,6BAA8BtS,EAAOI,SAAO,CAC3C,EAEUmS,GAAoC,WAAH,OAAS,SAACxS,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAK,IAAEuS,6BAA8B,IAAE,CAAI,EAGxHE,GAAoB,WAAH,OAAS,SAACzS,EAAYC,GAAW,OAAAE,wBAAA,GAAWH,GAAUC,EAAOI,QAAO,CAAI,EAGzFqS,GAAgB,SAACnR,GAAkB,OAAK,SAACvB,EAAYC,GAAW,OAAAE,wBAAA,GACxEH,GAAK,GAAAI,YAAA,GACPH,EAAOiD,MAAK/C,wBAAA,GACRH,EAAMC,EAAOiD,QAAM,GAAA9C,YAAA,GACrBmB,EAAM,CACLoR,oBAAoB,MACrB,CAEF,EAEUC,GAAe,SAACrR,GAAkB,OAAK,SAACvB,EAAYC,GAAW,OAAAE,wBAAA,GACvEH,GAAK,GAAAI,YAAA,GACPH,EAAOiD,MAAK/C,wBAAA,GACRH,EAAMC,EAAOiD,QAAM,GAAA9C,YAAA,GACrBmB,EAAM,CACL0K,KAAMhM,EAAOI,QACbsS,oBAAoB,MACrB,CAEF,EAEUE,GAAsB,SAACtR,GAAkB,OAAK,SAACvB,EAAYC,GAAW,OAAAE,wBAAA,GAC9EH,GAAK,GAAAI,YAAA,GACPH,EAAOiD,MAAK/C,wBAAA,GACRH,EAAMC,EAAOiD,QAAM,GAAA9C,YAAA,GACrBmB,EAAM,CACLoR,oBAAoB,EACpBG,WAAW,MACZ,CAEF,EAGUC,GAAyB,SAAChT,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GACtFH,GACAA,EAAMD,IAAa,IACtBiT,+BAAgC/S,EAAOI,QAAQ2S,+BAC/CC,0BAA2BhT,EAAOI,QAAQ4S,0BAC1CC,uBAAwBjT,EAAOI,QAAQ6S,uBACvCC,wBAAyBlT,EAAOI,QAAQ8S,wBACxCC,yBAA0BnT,EAAOI,QAAQ+S,0BAAwB,CAChE,EAEUC,GAA6B,SAACtT,GAAuB,OAAK,SAACC,EAAYC,GAAW,OAAAE,oCAAA,GAC1FH,GACAA,EAAMD,IAAa,IACtBuT,OAAQ,CACNC,OAAQtT,EAAOI,QAAQkT,OACvBC,QAASvT,EAAOI,QAAQoT,QAAQ,oBAChCC,UAAWzT,EAAOI,QAAQoT,QAAQE,OACnC,CACA,EAEUC,GAAwB,SAAC7T,GAAuB,OAAK,SAACC,GAAU,OAAAG,oCAAA,GACxEH,GACAA,EAAMD,IAAa,IACtBiT,+BAAgC,GAChCC,0BAA2B,GAC3BC,uBAAwB,GACxBC,wBAAyB,GACzBC,yBAA0B,GAC1BE,OAAQ,CAAEC,YAAQM,EAAWL,QAAS,GAAIE,UAAW,KAAI,CACxD,C,mCC/2BH,kCAMO,IAAKI,EAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,kCAAjBA,EAAiB,sCAAjBA,EAAiB,wCAAjBA,EAAiB,4CAAjBA,EAAiB,0CAAjBA,EAAiB,0CAAjBA,EAAiB,4CAAjBA,EAAiB,sDAAjBA,EAAiB,gDAAjBA,EAAiB,4CAAjBA,EAAiB,kDAAjBA,EAAiB,wDAAjBA,EAAiB,0DAAjBA,EAAiB,8CAAjBA,EAAiB,gDAAjBA,EAAiB,gDAAjBA,EAAiB,2DAAjBA,EAAiB,sDAAjBA,EAAiB,kDAAjBA,EAAiB,0DAAjBA,EAAiB,8CAAjBA,EAAiB,sEAAjBA,EAAiB,sEAAjBA,EAAiB,8FAAjBA,EAAiB,sFAAjBA,EAAiB,oFAAjBA,EAAiB,2FAAjBA,EAAiB,yFAAjBA,EAAiB,6FAAjBA,EAAiB,gFAAjBA,EAAiB,iEAAjBA,EAAiB,uDAAjBA,EAAiB,yDAAjBA,EAAiB,uDAAjBA,EAAiB,mEAAjBA,EAAiB,iEAAjBA,EAAiB,8EAAjBA,EAAiB,+CAAjBA,EAAiB,4DAAjBA,EAAiB,8DAAjBA,EAAiB,6CAAjBA,EAAiB,uCAAjBA,EAAiB,8CAAjBA,EAAiB,6CAAjBA,EAAiB,yDAAjBA,EAAiB,2CAAjBA,EAAiB,kDAAjBA,EAAiB,kCAAjBA,EAAiB,oEAAjBA,EAAiB,qDAAjBA,EAAiB,qDAAjBA,EAAiB,wEAAjBA,EAAiB,2EAAjBA,EAAiB,kDAAjBA,EAAiB,2CAAjBA,EAAiB,6CAAjBA,EAAiB,2CAAjBA,EAAiB,+CAAjBA,EAAiB,8DAAjBA,EAAiB,qDAAjBA,EAAiB,yDAAjBA,EAAiB,yDAAjBA,EAAiB,0EAAjBA,EAAiB,mDAAjBA,EAAiB,iDAAjBA,EAAiB,iDAAjBA,EAAiB,+CAAjBA,EAAiB,2DAAjBA,EAAiB,oEAAjBA,EAAiB,2CAAjBA,EAAiB,yCAAjBA,EAAiB,+CAAjBA,EAAiB,qDAAjBA,EAAiB,oCAAjBA,EAAiB,4DAAjBA,EAAiB,2DAAjBA,EAAiB,kEAAjBA,EAAiB,wDAAjBA,EAAiB,8CAAjBA,EAAiB,4BAAjBA,EAAiB,6EAAjBA,EAAiB,mDAAjBA,EAAiB,qDAAjBA,EAAiB,mDAAjBA,EAAiB,uDAAjBA,EAAiB,0DAAjBA,EAAiB,oDAAjBA,EAAiB,yCAAjBA,EAAiB,wEAAjBA,EAAiB,qDAAjBA,EAAiB,6CAAjBA,EAAiB,iDAAjBA,EAAiB,mDAAjBA,EAAiB,uGAAjBA,EAAiB,qGAAjBA,EAAiB,qCAAjBA,EAAiB,gCAAjBA,EAAiB,0DAAjBA,EAAiB,2DAAjBA,EAAiB,0FAAjBA,EAAiB,+DAAjBA,EAAiB,2DAAjBA,EAAiB,4EAAjBA,EAAiB,0EAAjBA,EAAiB,mEAAjBA,EAAiB,0EAAjBA,EAAiB,wEAAjBA,EAAiB,uEAAjBA,EAAiB,sEAAjBA,EAAiB,qEAAjBA,EAAiB,gFAAjBA,EAAiB,yEAAjBA,EAAiB,uEAAjBA,EAAiB,wCAAjBA,EAAiB,kEAAjBA,EAAiB,2DAAjBA,EAAiB,yDAAjBA,EAAiB,6DAAjBA,EAAiB,8BAAjBA,EAAiB,sBAAjBA,EAAiB,sEAAjBA,EAAiB,oEAAjBA,EAAiB,2DAAjBA,EAAiB,4EAAjBA,EAAiB,mFAAjBA,EAAiB,+CAAjBA,EAAiB,iDAAjBA,EAAiB,uDAAjBA,EAAiB,mFAAjBA,EAAiB,oEAAjBA,EAAiB,qDAAjBA,EAAiB,mDAAjBA,EAAiB,+CAAjBA,EAAiB,2CAAjBA,EAAiB,2CAAjBA,EAAiB,iDAAjBA,EAAiB,2CAAjBA,EAAiB,iDAAjBA,EAAiB,kEAAjBA,EAAiB,mEAAjBA,EAAiB,gEAAjBA,EAAiB,gEAAjBA,EAAiB,8DAAjBA,EAAiB,8DAAjBA,EAAiB,iEAAjBA,EAAiB,iEAAjBA,EAAiB,kDAAjBA,EAAiB,qEAAjBA,EAAiB,2EAAjBA,EAAiB,uEAAjBA,EAAiB,+DAAjBA,EAAiB,+DAAjBA,EAAiB,qEAAjBA,EAAiB,qEAAjBA,EAAiB,sDAAjBA,EAAiB,oEAAjBA,EAAiB,0EAAjBA,EAAiB,sEAAjBA,EAAiB,gEAAjBA,EAAiB,sEAAjBA,EAAiB,iEAAjBA,EAAiB,+DAAjBA,EAAiB,+DAAjBA,EAAiB,+DAAjBA,EAAiB,qEAAjBA,EAAiB,qEAAjBA,EAAiB,sDAAjBA,EAAiB,oEAAjBA,EAAiB,0EAAjBA,EAAiB,sEAAjBA,EAAiB,gEAAjBA,EAAiB,sEAAjBA,EAAiB,iEAAjBA,EAAiB,+DAAjBA,EAAiB,8EAAjBA,EAAiB,oFAAjBA,EAAiB,sCAAjBA,EAAiB,iDAAjBA,EAAiB,iDAAjBA,EAAiB,qDAAjBA,EAAiB,+DAAjBA,EAAiB,kEAAjBA,EAAiB,gFAAjBA,EAAiB,iEAAjBA,EAAiB,8DAAjBA,EAAiB,wDAAjBA,EAAiB,uDAAjBA,EAAiB,iDAAjBA,EAAiB,iDAAjBA,EAAiB,4CAAjBA,EAAiB,qDAAjBA,EAAiB,4DAAjBA,CAAiB,K,oCCN7B,iNAWaC,EAAY,CAAC,GAADjQ,OAAIkQ,IAAOC,QAAO,gCAAAnQ,OAAgCkQ,IAAOC,QAAO,qBAC5EC,EAAmB,CAAC,GAADpQ,OAAIkQ,IAAOG,iBAAgB,sBAC9CC,EAAuB,CAAC,GAADtQ,OAAIkQ,IAAOK,yBAAwB,cAE1DC,EAAkB,CAAEC,OAAO,GAADzQ,OAAMiQ,GAAYS,kBAAmBC,OAAOC,SAASC,MAKtFC,GAHyC,GAAD9Q,OAAMoQ,GAAsCO,OAAOC,SAASC,KAGzF,GAAA7Q,OAAM2Q,OAAOC,SAASG,OAAM,UAChCC,EAA4B,CACvCC,KAAM,CACJC,SAAUC,uCACVL,cACAM,UAAWD,2CACXE,sBAAuBP,GAEzBQ,MAAO,CACLC,cAAe,iBACfC,wBAAwB,GAE1BC,OAAQ,CACNC,0BAA2B,IAC3BC,kBAAmB,IACnBC,cAAe,CACbC,SAAUC,IAASC,MACnBC,eAAgB,SAACC,EAAOC,EAASC,GAC3BA,GAGIF,IACDH,IAASC,OACZK,IAAOC,SAASC,IAAmBC,YAAY,UAADvS,OAAYkS,GAKhE,EACAM,mBAAmB,I,oCCjDzB,kCAAO,IAAK9M,EAAc,SAAdA,GAAc,OAAdA,EAAc,sBAAdA,EAAc,4BAAdA,EAAc,0BAAdA,EAAc,0CAAdA,CAAc,K,oCCA1B,kCAMO,IAAK8C,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,oBAAhBA,EAAgB,4CAAhBA,EAAgB,wBAAhBA,EAAgB,gDAAhBA,EAAgB,gCAAhBA,CAAgB,K,mCCN5B,kCAMO,IAAKiK,EAAW,SAAXA,GAAW,OAAXA,EAAW,oBAAXA,EAAW,oBAAXA,EAAW,kBAAXA,EAAW,mDAAXA,EAAW,mCAAXA,CAAW,K,mPCNVC,EAAe,WAAH,IAAIC,EAACC,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,EAAC,OAChCC,KAAKC,SACFC,SAAS,IACTC,MAAM,EAAGL,EAAI,EAAG,ECoCTM,EAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,wDAAxBA,EAAwB,8EAAxBA,EAAwB,0FAAxBA,EAAwB,kEAAxBA,EAAwB,oEAAxBA,EAAwB,8EAAxBA,EAAwB,0DAAxBA,EAAwB,oEAAxBA,EAAwB,8DAAxBA,EAAwB,kDAAxBA,EAAwB,oDAAxBA,EAAwB,wEAAxBA,EAAwB,wDAAxBA,EAAwB,gEAAxBA,EAAwB,wDAAxBA,EAAwB,sDAAxBA,EAAwB,4DAAxBA,EAAwB,wDAAxBA,EAAwB,wDAAxBA,EAAwB,qEAAxBA,EAAwB,gCAAxBA,EAAwB,kEAAxBA,EAAwB,sEAAxBA,EAAwB,yDAAxBA,EAAwB,8DAAxBA,EAAwB,4FAAxBA,EAAwB,6CAAxBA,EAAwB,yEAAxBA,EAAwB,4BAAxBA,EAAwB,2DAAxBA,EAAwB,6DAAxBA,EAAwB,2DAAxBA,EAAwB,uDAAxBA,EAAwB,+DAAxBA,EAAwB,oEAAxBA,EAAwB,wEAAxBA,EAAwB,gDAAxBA,EAAwB,oEAAxBA,EAAwB,oDAAxBA,EAAwB,wCAAxBA,EAAwB,uDAAxBA,EAAwB,uDAAxBA,EAAwB,uDAAxBA,EAAwB,0CAAxBA,EAAwB,gDAAxBA,EAAwB,gDAAxBA,EAAwB,gDAAxBA,EAAwB,uDAAxBA,EAAwB,sEAAxBA,EAAwB,2DAAxBA,EAAwB,4EAAxBA,EAAwB,4EAAxBA,CAAwB,MAuH9BC,GAAwBC,EAAA,GAAA7W,YAAA6W,EAC3B1W,IAAS4B,eAAiB,IAAE/B,YAAA6W,EAC5B1W,IAAS2W,4BAA8B,IAAE9W,YAAA6W,EACzC1W,IAAS4W,oBAAsB,GAAC/W,YAAA6W,EAChC1W,IAAS2B,kBAAoB,IAAE9B,YAAA6W,EAC/B1W,IAAS6W,uBAAyB,GAAChX,YAAA6W,EACnC1W,IAAS+D,qBAAuB,IAAElE,YAAA6W,EAClC1W,IAASoE,0BAA4B,GAACvE,YAAA6W,EACtC1W,IAASQ,cAAgB,CAAC,GAACX,YAAA6W,EAC3B1W,IAAS8W,uBAAyBC,IAAwBC,MAAInX,YAAA6W,EAC9D1W,IAASiX,yBAA2B,CAAC,GAACpX,YAAA6W,EACtC1W,IAAS0H,WAAa,CAAC,GAAC7H,YAAA6W,EACxB1W,IAASuH,YAAa,GAAK1H,YAAA6W,EAC3B1W,IAAS8H,kBAAmB,GAAKjI,YAAA6W,EACjC1W,IAAS2H,kBAAoB,CAAC,GAAC9H,YAAA6W,EAC/B1W,IAASkX,wBAA0B,CAAC,GAACrX,YAAA6W,EACrC1W,IAASmX,oBAAsB,IAAEtX,YAAA6W,EACjC1W,IAASG,iCAAmC,CAAEwD,GAAI,GAAIiE,YAAa,GAAIwP,WAAY,KAAIvX,YAAA6W,EACvF1W,IAASK,wBAA0B,GAACR,YAAA6W,EACpC1W,IAASC,6BAA+B,IAAEJ,YAAA6W,EAC1C1W,IAASqX,iCAAmC,CAAEC,aAAc,KAAIzX,YAAA6W,EAChE1W,IAASuX,QAAU,IAAIC,KAAK,CAAC,IAAI,KAAG3X,YAAA6W,EACpC1W,IAASc,gBAAkBI,IAAiBuW,OAAK5X,YAAA6W,EACjD1W,IAASqB,sBAAwB,CAChCqW,OAAQC,IAAWC,KACnBC,KAAM,CACJC,OAAQ,UACRC,UAAWC,IAAeC,KAE5B5U,KAAM,EACN6U,OAAQ,GACR1U,WAAW,EACX2U,cAAe,KAChBtY,YAAA6W,EACA1W,IAASoB,uBAAyB,CACjCsW,OAAQC,IAAWC,KACnBC,KAAM,CACJC,OAAQ,UACRC,UAAWC,IAAeC,KAE5B5U,KAAM,EACN6U,OAAQ,GACR1U,WAAW,EACX2U,cAAe,KAChBtY,YAAA6W,EACA1W,IAASgS,6BAA+B,IAAEnS,YAAA6W,EAC1C1W,IAASoY,WAAanC,EAAa,IAAEpW,YAAA6W,EACrC1W,IAASqY,uBAAyB,CAAC,GAAC3B,GAU1B4B,EAAYC,YAAY,CACnCC,KAAMlZ,IAAUmZ,KAChBhC,eACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EAGLnC,EAAyBoC,qBAAsB,SAACnZ,EAAKsC,GAAyC,IAArCjC,EAAOiC,EAAPjC,QACxD+Y,IAAIpZ,EAAO,CAACO,IAASQ,eAAgBV,GACrC+Y,IAAIpZ,EAAO,CAACO,IAAS0H,YAAa5H,GAClC+Y,IAAIpZ,EAAO,CAACO,IAASoY,YAAanC,EAAa,IAC/C3S,IAAO7D,EAAO,CAACO,IAAS4B,iBAAiB,SAACkX,GAAgC,OACxEA,EAAetN,KAAI,SAACmE,GAClB,OAAIA,EAAIjN,aAAe5C,EAAQ4C,WACtB5C,EAEF6P,CACT,GAAE,GAEN,IAAC9P,YAAA8Y,EACAnC,EAAyBuC,qBAAsB,SAACtZ,EAAKuZ,GAA0C,IAAtClZ,EAAOkZ,EAAPlZ,QACxD+Y,IAAIpZ,EAAO,CAACO,IAAS4B,gBAAe4C,YAAM1E,GAC5C,IAACD,YAAA8Y,EACAnC,EAAyByC,gCAAiC,SAACxZ,EAAKyZ,GAA0C,IAAtCpZ,EAAOoZ,EAAPpZ,QACnE+Y,IAAIpZ,EAAO,CAACO,IAAS2W,6BAA8B7W,EACrD,IAACD,YAAA8Y,EACAnC,EAAyB2C,sCAAuC,SAAC1Z,GAChEoZ,IAAIpZ,EAAO,CAACO,IAASQ,eAAcZ,wBAAA,GAAOH,EAAMe,eAAa,IAAE4Y,gBAAiB3Z,EAAMkX,8BACxF,IAAC9W,YAAA8Y,EACAnC,EAAyB6C,0BAA2B,SAAC5Z,EAAK6Z,GAA0C,IAAtCxZ,EAAOwZ,EAAPxZ,QAC7D+Y,IAAIpZ,EAAO,CAACO,IAAS4W,qBAAsB9W,EAC7C,IAACD,YAAA8Y,EACAnC,EAAyB+C,sBAAuB,SAAC9Z,EAAK+Z,GAA0C,IAAtC1Z,EAAO0Z,EAAP1Z,QACzD+Y,IAAIpZ,EAAO,CAACO,IAAS2B,mBAAkB6C,YAAM1E,GAC/C,IAACD,YAAA8Y,EACAnC,EAAyBiD,2BAA4B,SAACha,EAAKia,GAA0C,IAAtC5Z,EAAO4Z,EAAP5Z,QAC9D+Y,IAAIpZ,EAAO,CAACO,IAAS6W,wBAAyB/W,EAChD,IAACD,YAAA8Y,EACAnC,EAAyBmD,2BAA4B,SAACla,EAAKma,GAA0C,IAAtC9Z,EAAO8Z,EAAP9Z,QAC9D+Y,IAAIpZ,EAAO,CAACO,IAAS+D,sBAAqBS,YAAM1E,GAClD,IAACD,YAAA8Y,EACAnC,EAAyBqD,gCAAiC,SAACpa,EAAKqa,GAA0C,IAAtCha,EAAOga,EAAPha,QACnE+Y,IAAIpZ,EAAO,CAACO,IAASoE,2BAA4BtE,EACnD,IAACD,YAAA8Y,EACAnC,EAAyBuD,kBAAmB,SAACta,EAAKua,GAAyC,IAArCla,EAAOka,EAAPla,QACrD+Y,IAAIpZ,EAAO,CAACO,IAASQ,eAAgBV,GACrC+Y,IAAIpZ,EAAO,CAACO,IAASuH,aAAa,EACpC,IAAC1H,YAAA8Y,EACAnC,EAAyBM,wBAAyB,SAACrX,EAAKwa,GAA2D,IAAvDna,EAAOma,EAAPna,QAC3D+Y,IAAIpZ,EAAO,CAACO,IAAS8W,wBAAyBhX,EAChD,IAACD,YAAA8Y,EACAnC,EAAyB0D,qBAAsB,SAACza,EAAK0a,GAAyC,IAArCra,EAAOqa,EAAPra,QACxD+Y,IAAIpZ,EAAO,CAACO,IAASiX,0BAA2BnX,EAClD,IAACD,YAAA8Y,EACAnC,EAAyBa,kCAAmC,SAAC5X,EAAK2a,GAA2D,IAAvDta,EAAOsa,EAAPta,QACrE+Y,IAAIpZ,EAAO,CAACO,IAASqX,kCAAmCvX,EAC1D,IAACD,YAAA8Y,EACAnC,EAAyBe,SAAU,SAAC9X,EAAK4a,GAAwC,IAApCva,EAAOua,EAAPva,QAC5C+Y,IAAIpZ,EAAO,CAACO,IAASuX,SAAUzX,EACjC,IAACD,YAAA8Y,EACAnC,EAAyB8D,qBAAsB,SAAC7a,EAAK8a,GAAyC,IAArCza,EAAOya,EAAPza,QACxDwD,IAAO7D,EAAO,CAACO,IAAS4B,iBAAiB,SAACkX,GAAc,SAAAvV,OAAAiB,YAASsU,GAAc,CAAEhZ,GAAU,IAC3F+Y,IAAIpZ,EAAO,CAACO,IAASQ,eAAgBV,GACrC+Y,IAAIpZ,EAAO,CAACO,IAASiX,0BAA2B,CAAC,GACjD4B,IAAIpZ,EAAO,CAACO,IAAS0H,YAAa,CAAC,GACnCmR,IAAIpZ,EAAO,CAACO,IAASoY,YAAanC,EAAa,GACjD,IAACpW,YAAA8Y,EACAnC,EAAyBgE,qBAAsB,SAAC/a,EAAKgb,GAAgE,IAA5D3a,EAAO2a,EAAP3a,QAClD4a,EAAa,SAACC,GAA6B,OAAKA,EAAcjY,aAAe5C,CAAQ,EAC3FwD,IAAO7D,EAAO,CAACO,IAAS4B,iBAAiB,SAACkX,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IAC9FpX,IAAO7D,EAAO,CAACO,IAAS+D,uBAAuB,SAAC+U,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IACpGpX,IAAO7D,EAAO,CAACO,IAASqB,sBAAuB,kBAAkB,SAACyX,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IACtHpX,IAAO7D,EAAO,CAACO,IAASoB,uBAAwB,kBAAkB,SAAC0X,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IACvH7B,IAAIpZ,EAAO,CAACO,IAASQ,eAAgB,CAAC,GACtCqY,IAAIpZ,EAAO,CAACO,IAASuH,aAAa,GAClCsR,IAAIpZ,EAAO,CAACO,IAAS0H,YAAa,CAAC,GACnCmR,IAAIpZ,EAAO,CAACO,IAASoY,YAAanC,EAAa,GACjD,IAACpW,YAAA8Y,EACAnC,EAAyBoE,oBAAqB,SAACnb,EAAKob,GAAgE,IAA5D/a,EAAO+a,EAAP/a,QACjD4a,EAAa,SAACC,GAA6B,OAAKA,EAAcjY,aAAe5C,CAAQ,EAC3FwD,IAAO7D,EAAO,CAACO,IAAS4B,iBAAiB,SAACkX,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IAC9FpX,IAAO7D,EAAO,CAACO,IAAS+D,uBAAuB,SAAC+U,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IACpGpX,IAAO7D,EAAO,CAACO,IAASqB,sBAAuB,kBAAkB,SAACyX,GAAc,OAAKA,EAAe/V,OAAO2X,EAAW,IACtH7B,IAAIpZ,EAAO,CAACO,IAASQ,eAAgB,CAAC,GACtCqY,IAAIpZ,EAAO,CAACO,IAASuH,aAAa,GAClCsR,IAAIpZ,EAAO,CAACO,IAAS0H,YAAa,CAAC,GACnCmR,IAAIpZ,EAAO,CAACO,IAASoY,YAAanC,EAAa,GACjD,IAACpW,YAAA8Y,EACAnC,EAAyBsE,0BAA2B,SAACrb,EAAKsb,GAA+D,IAA3Djb,EAAOib,EAAPjb,QAC7D+Y,IAAIpZ,EAAO,CAACO,IAASqY,wBAAyBvY,EAChD,IAACD,YAAA8Y,EAGAnC,EAAyBwE,sBAAuB,SAACvb,EAAKwb,GAAyC,IAArCnb,EAAOmb,EAAPnb,QACzD+Y,IAAIpZ,EAAO,CAACO,IAAS2H,mBAAoB7H,GACzC+Y,IAAIpZ,EAAO,CAACO,IAASkX,yBAA0B,GACjD,IAACrX,YAAA8Y,EACAnC,EAAyB0E,4BAA6B,SACrDzb,EAAK0b,GAED,IADFrb,EAAOqb,EAAPrb,QAEF+Y,IAAIpZ,EAAO,CAACO,IAASkX,yBAA0BpX,EACjD,IAACD,YAAA8Y,EACAnC,EAAyB4E,wBAAyB,SAAC3b,EAAK4b,GAA0C,IAAtCvb,EAAOub,EAAPvb,QAC3D+Y,IAAIpZ,EAAO,CAACO,IAASmX,qBAAsBrX,EAC7C,IAACD,YAAA8Y,EAIAnC,EAAyB8E,wBAA0B9T,gBAAyB3H,YAAA8Y,EAC5EnC,EAAyB+E,mCAAqCxb,aAAyBT,IAAUmZ,OAAK5Y,YAAA8Y,EACtGnC,EAAyBgF,4BAA8B3a,gBAAuBhB,YAAA8Y,EAC9EnC,EAAyBiF,6BAA+B1a,gBAAwBlB,YAAA8Y,EAChFnC,EAAyBkF,4BAA8Bpa,eAAezB,YAAA8Y,EACtEnC,EAAyBmF,0BAA4BzY,gBAAarD,YAAA8Y,EAClEnC,EAAyBoF,8BAAgCnY,gBAAkB5D,YAAA8Y,EAG3EnC,EAAyBlW,uBAAyBA,eAAwBT,YAAA8Y,EAG1EnC,EAAyB7V,sCAAwCA,eAAuCd,YAAA8Y,EAGxGnC,EAAyBqF,iCAAmC9J,eAAiClS,YAAA8Y,EAC7FnC,EAAyBsF,mCAAqC7J,eAAmCpS,YAAA8Y,EAGjGnC,EAAyBuF,0BAA4B/T,eAA2BnI,YAAA8Y,EAChFnC,EAAyBwF,kBAAoB5T,eAAmBvI,YAAA8Y,EAGhEnC,EAAyByF,wBAA0B3T,eAAgBzI,YAAA8Y,EACnEnC,EAAyB0F,wBAA0BxT,gBAAgB7I,YAAA8Y,EACnEnC,EAAyB2F,wBAA0BzT,gBAAgB7I,YAAA8Y,EAGnEnC,EAAyB4F,gBAAkB1S,eAAiB7J,YAAA8Y,EAC5DnC,EAAyB6F,gBAAkBxS,gBAAiBhK,YAAA8Y,EAC5DnC,EAAyB8F,gBAAkBzS,gBAAiBhK,YAAA8Y,EAG5DnC,EAAyB+F,uCAAyCrc,aAAuCZ,IAAUmZ,OAAK5Y,YAAA8Y,EACxHnC,EAAyBgG,8BAAgCpc,aAA8Bd,IAAUmZ,OAAK5Y,YAAA8Y,EAEtG3C,IAAYyG,MAAQnV,gBAAqBzH,YAAA8Y,EACzC3C,IAAY0G,0BAA4B7U,gBAA2BhI,YAAA8Y,EACnE3C,IAAY2G,QAAS,SAACld,EAAOC,GAC5Bkd,OAAOC,OAAOpd,EAAMO,IAAS0H,YAAahI,EAAOI,QACnD,IAACD,YAAA8Y,EACA3C,IAAY8G,QAAS,SAACrd,EAAOsd,GAC5BlE,IAAIpZ,EAAOO,IAAS0H,WAAY,CAAC,GACjCmR,IAAIpZ,EAAOO,IAASoY,WAAYnC,EAAa,GAC/C,IAAC0C,KAIUL,EAAiB,O,oCCnXhC,iMAiBY0E,EAAqC,SAArCA,GAAqC,OAArCA,EAAqC,8EAArCA,EAAqC,6EAArCA,EAAqC,oFAArCA,EAAqC,mFAArCA,EAAqC,gFAArCA,CAAqC,MAQpCC,EAAyB,SAACva,EAAoBwa,GAAqB,OAC9EC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,kBAAA/Z,OAAiBb,EAAU,iBACxF6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAU2e,2BAA0B,KAAA1a,OAAIyZ,EAAsCkB,sCACvFpe,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAEV,OADAlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU2e,2BAA0B,KAAA1a,OAAIyZ,EAAsCqB,sCACvFve,QAAS,CAAE6C,MAAOD,GAEtB,GACC,EAEQ4b,EAA4B,SACvC5b,EACA6b,EACAC,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,kBAAA/Z,OAAiBb,EAAU,iBACxF6a,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDpS,KAAM6S,EACNR,UAAW,SAACrS,GAEC,IAADgT,EAAV,GADAxB,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAU2e,2BAA0B,KAAA1a,OAAIyZ,EAAsC2B,yCACvF7e,QAAQ,GAADyD,OAAoB,QAApBmb,EAAKhT,EAAKkT,kBAAU,IAAAF,OAAA,EAAfA,EAAiBG,UAAS,iBAAAtb,OAAgBmI,EAAKoT,eAGjE,EACAX,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU2e,2BAA0B,KAAA1a,OAAIyZ,EAAsCkC,yCACvFpf,QAAS,GAEb,GACC,EAEQqf,EAAwC,WAAH,MAAmB,CACnEvO,KAAK,GAADrN,OAAKjE,IAAU2e,2BAA0B,KAAA1a,OAAIyZ,EAAsCmC,uCACvFrf,QAAS,GACV,C,oCCjFD,iFAQYsf,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,yCAApBA,CAAoB,MAInB7N,EAAqB,WAAH,MAAmB,CAChDX,KAAK,GAADrN,OAAKjE,IAAU+f,UAAS,KAAA9b,OAAI6b,EAAqBE,oBACrDxf,QAAS,CACP0R,mBAAmB,GAEtB,C,oCCjBD,kCAAO,IAAK+N,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,sDAAhBA,EAAgB,sDAAhBA,EAAgB,gDAAhBA,EAAgB,gEAAhBA,EAAgB,8DAAhBA,CAAgB,K,yNCC5BC,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CA6BO,SAAe8H,EAAYC,GAAA,OAAAC,EAAAC,MAAC,KAADvR,UAAA,CASjC,SAAAsR,IAAA,OAAAA,EAAAE,YAAAnI,IAAAkG,MATM,SAAAkC,EAA4BC,GAAsB,IAAAC,EAAAC,EAAA,OAAAvI,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,OAIpD,OAHG0D,EAAM,IAAIG,IAChBJ,EAAarF,SAAQ,SAAC0F,GACpBJ,EAAIK,KAAKD,EAAM1P,KAAM0P,EAAMxc,KAC7B,IAAGsc,EAAA5D,KAAA,EAEmB0D,EAAIM,cAAc,CAAExX,KAAM,eAAgB,KAAD,EAAlD,OAAPmX,EAAOC,EAAAtE,KAAAsE,EAAAnE,OAAA,SAENkE,GAAO,wBAAAC,EAAAxB,OAAA,GAAAoB,EAAA,MACfF,MAAA,KAAAvR,UAAA,CAEM,SAAekS,EAAcC,GAAA,OAAAC,EAAAb,MAAC,KAADvR,UAAA,CAwBnC,SAAAoS,IAAA,OAAAA,EAAAZ,YAAAnI,IAAAkG,MAxBM,SAAA8C,EAA8B9c,GAAY,IAAAoc,EAAAW,EAAAC,EAAAC,EAAAC,EAAAV,EAAA,OAAA1I,IAAAsB,MAAA,SAAA+H,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAzE,MAAA,UAClC,KAAT1Y,EAAW,CAAAmd,EAAAzE,KAAA,eAAAyE,EAAAhF,OAAA,SACNkC,QAAQlD,QAAQ,KAAG,cAAAgG,EAAAzE,KAAA,EAEV6D,IAAMa,UAAUpd,EAAM,CAAEqd,QAAQ,IAAQ,KAAD,EACjC,OADlBjB,EAAGe,EAAAnF,KACH+E,EAAgB,GAAEI,EAAAzE,KAAA,EACH2B,QAAQiD,IAC3BpM,OAAOqJ,KAAK6B,EAAImB,OAAOzd,KAAI,SAAC0d,GAC1B,IAAMC,EAAUrB,EAAIK,KAAKe,GACzB,OAAIC,EACKA,EAAQrD,MAAM,UAAU5C,MAAK,SAACkG,GAAW,MAAM,CAAE5Q,KAAM0Q,EAAQxd,KAAM0d,EAAa,IAElFrD,QAAQlD,aAAQvP,EAE3B,KACA,KAAD,EATKoV,EAAMG,EAAAnF,KAAAiF,EAAAU,YAWQX,GAAM,IAA1B,IAAAC,EAAA5Z,MAAA6Z,EAAAD,EAAAzS,KAAA4N,OAAWoE,EAAKU,EAAAvY,QAEZoY,EAAI3D,KAAKoD,EAEZ,OAAArH,GAAA8H,EAAAW,EAAAzI,EAAA,SAAA8H,EAAAY,GAAA,QAAAV,EAAAhF,OAAA,SAEM4E,GAAG,yBAAAI,EAAArC,OAAA,GAAAgC,EAAA,MACXd,MAAA,KAAAvR,UAAA,CAEM,SAAeqT,EAA6BC,EAAAC,GAAA,OAAAC,EAAAjC,MAAC,KAADvR,UAAA,CAWlD,SAAAwT,IAAA,OAAAA,EAAAhC,YAAAnI,IAAAkG,MAXM,SAAAkE,EAA6Cja,EAAoB+Y,GAAgB,IAAAmB,EAAAC,EAAAC,EAAA,OAAAvK,IAAAsB,MAAA,SAAAkJ,GAAA,cAAAA,EAAA1D,KAAA0D,EAAA5F,MAAA,YAClFzU,EAAI/O,qBAAuB+O,EAAI/O,oBAAoB,IAAM+O,EAAI/O,oBAAoB,GAAGqpB,0BAAwB,CAAAD,EAAA5F,KAAA,QACF,KAAtGyF,EAAUnB,EAAOwB,MAAK,SAAChC,GAAK,OAAKA,EAAM1P,OAAS7I,EAAI/O,oBAAqB,GAAGqpB,wBAAwB,KAE9F,CAADD,EAAA5F,KAAA,QACyB,OAA5B0F,EAAMK,kBAAQN,EAASrR,MAAKwR,EAAA5F,KAAA,EACZgG,YAAoBC,YAAaP,EAAKD,EAAQne,OAAO,KAAD,EAA7D,OAAPqe,EAAOC,EAAAtG,KAAAsG,EAAAnG,OAAA,SACNkG,EAAQO,SAAO,cAAAN,EAAAnG,OAAA,SAGnB,IAAE,wBAAAmG,EAAAxD,OAAA,GAAAoD,EAAA,MACVlC,MAAA,KAAAvR,UAAA,C,yKC3EW0H,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,sBAApBA,EAAoB,4BAApBA,CAAoB,MAKpB0M,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,kBAArBA,EAAqB,oBAArBA,CAAqB,MAWpB5M,EAAiBpF,YAAY,CACxCC,KAAMlZ,IAAUkrB,UAChB/T,aAJoC,CAAC,EAKrCiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLkF,EAAqBC,OAAQ,iBAAO,CAAE9K,OAAQuX,EAAsBE,QAAS,IAAC5qB,YAAA8Y,EAC9EkF,EAAqBG,UAAW,iBAAO,CAAEhL,OAAQuX,EAAsBvM,SAAU,IAACrF,KAIxEgF,EAAsB,O,mCC5BrC,oEAMA,IAAM+M,EAAwD,GAEjDC,EACJ,CAAEC,QAAS,WADPD,EAED,CAAE/S,KAAM,mDAGPiT,EAAS,CACpBC,MAAM,aAGNC,KAAK,IAADxnB,OAAMmnB,GACVM,KAAK,IAADznB,OAAMmnB,EAAa,QACvBO,KAAK,IAAD1nB,OAAMmnB,EAAa,QACvBjS,KAAK,IAADlV,OAAMmnB,EAAa,QACvBQ,UAAU,IAAD3nB,OAAMmnB,EAAa,eAC5BnmB,KAAK,IAADhB,OAAMmnB,EAAa,QACvBS,WAAW,IAAD5nB,OAAMmnB,EAAa,cAC7BU,UAAU,IAAD7nB,OAAMmnB,EAAa,eAC5BW,MAAM,IAAD9nB,OAAMmnB,EAAa,SACxBY,YAAY,IAAD/nB,OAAMmnB,EAAa,iBAC9Ba,iBAAiB,IAADhoB,OAAMmnB,EAAa,mBAAAnnB,OAAkBonB,EAAoBC,QAAO,KAChFY,SAAS,IAADjoB,OAAMmnB,EAAa,YAC3Be,sBAAsB,IAADloB,OAAMmnB,EAAa,cAAAnnB,OAAaonB,EAAuB/S,KAAI,KAChF8T,mBAAmB,IAADnoB,OAAMmnB,EAAa,mBACrCiB,KAAK,IAADpoB,OAAMmnB,EAAa,QACvBpV,MAAM,IAAD/R,OAAMmnB,EAAa,SACxBkB,aAAa,IAADroB,OAAMmnB,EAAa,mBAC/BmB,MAAM,IAADtoB,OAAMmnB,EAAa,SACxBoB,UAAU,IAADvoB,OAAMmnB,EAAa,aAC5BqB,mBAAmB,IAADxoB,OAAMmnB,EAAa,wBACrCsB,sBAAsB,IAADzoB,OAAMmnB,EAAa,4BACxCuB,yBAAyB,IAAD1oB,OAAMmnB,EAAa,+BAC3CwB,mBAAmB,IAAD3oB,OAAMmnB,EAAa,uBACrCyB,sBAAsB,IAAD5oB,OAAMmnB,EAAa,2BACxC0B,yBAAyB,IAAD7oB,OAAMmnB,EAAa,8BAC3C2B,mBAAmB,IAAD9oB,OAAMmnB,EAAa,uBACrC4B,sBAAsB,IAAD/oB,OAAMmnB,EAAa,2BACxC6B,yBAAyB,IAADhpB,OAAMmnB,EAAa,8BAG3C8B,OAAO,IAADjpB,OAAMmnB,EAAa,UACzB+B,SAAS,IAADlpB,OAAMmnB,EAAa,cAC3BgC,aAAa,IAADnpB,OAAMmnB,EAAa,mBAG/BiC,SAAS,IAADppB,OAAMmnB,EAAa,wBAC3BkC,WAAW,IAADrpB,OAAMmnB,EAAa,uBAC7BmC,YAAY,IAADtpB,OAAMmnB,EAAa,wBAC9BoC,YAAY,IAADvpB,OAAMmnB,EAAa,wBAC9BqC,UAAU,IAADxpB,OAAMmnB,EAAa,sBAC5BsC,aAAa,IAADzpB,OAAMmnB,EAAa,yBAC/BuC,eAAe,IAAD1pB,OAAMmnB,EAAa,6BACjCwC,0BAA0B,IAAD3pB,OAAMmnB,EAAa,gCAC5CyC,WAAW,IAAD5pB,OAAMmnB,EAAa,uBAC7B0C,gBAAgB,IAAD7pB,OAAMmnB,EAAa,4BAClC2C,iBAAiB,IAAD9pB,OAAMmnB,EAAa,kCACnC4C,YAAY,IAAD/pB,OAAMmnB,EAAa,2BAC9B6C,aAAa,IAADhqB,OAAMmnB,EAAa,yBAC/B8C,gBAAgB,IAADjqB,OAAMmnB,EAAa,4BAClC+C,qBAAqB,IAADlqB,OAAMmnB,EAAa,6BAGvCgD,aAAa,IAADnqB,OAAMmnB,EAAa,4BAC/BiD,YAAY,IAADpqB,OAAMmnB,EAAa,yCAC9BkD,SAAS,IAADrqB,OAAMmnB,EAAa,kDAC3BmD,WAAW,IAADtqB,OAAMmnB,EAAa,wCAC7BoD,IAAI,IAADvqB,OAAMmnB,EAAa,gCACtBqD,WAAW,IAADxqB,OAAMmnB,EAAa,sCAC7BsD,gBAAgB,IAADzqB,OAAMmnB,EAAa,mCAClCuD,oBAAoB,IAAD1qB,OAAMmnB,EAAa,gDACtCwD,6BAA6B,IAAD3qB,OAAMmnB,EAAa,uDAC/CyD,iCAAiC,IAAD5qB,OAAMmnB,EAAa,4DACnD0D,8BAA8B,IAAD7qB,OAAMmnB,EAAa,wDAChD2D,kCAAkC,IAAD9qB,OAAMmnB,EAAa,0EACpD4D,SAAS,IAAD/qB,OAAMmnB,EAAa,qCAC3B6D,cAAc,IAADhrB,OAAMmnB,EAAa,2CAGhC8D,cAAc,IAADjrB,OAAMmnB,EAAa,6BAChC+D,WAAW,IAADlrB,OAAMmnB,EAAa,yCAC7BgE,WAAW,IAADnrB,OAAMmnB,EAAa,yCAC7BiE,iBAAiB,IAADprB,OAAMmnB,EAAa,gDACnCkE,iBAAiB,IAADrrB,OAAMmnB,EAAa,gDACnCmE,UAAU,IAADtrB,OAAMmnB,EAAa,wCAC5BoE,YAAY,IAADvrB,OAAMmnB,EAAa,gCAC9BqE,UAAU,IAADxrB,OAAMmnB,EAAa,mCAC5BsE,SAAS,IAADzrB,OAAMmnB,EAAa,+BAC3BuE,eAAe,IAAD1rB,OAAMmnB,EAAa,wCAGjCwE,QAAQ,IAAD3rB,OAAMmnB,EAAa,uBAC1ByE,WAAW,IAAD5rB,OAAMmnB,EAAa,2BAC7B0E,SAAS,IAAD7rB,OAAMmnB,EAAa,oCAC3B2E,SAAS,IAAD9rB,OAAMmnB,EAAa,oCAC3B4E,cAAc,IAAD/rB,OAAMmnB,EAAa,uCAChC6E,QAAQ,IAADhsB,OAAMmnB,EAAa,uBAC1B8E,aAAa,IAADjsB,OAAMmnB,EAAa,4BAC/B+E,eAAe,IAADlsB,OAAMmnB,EAAa,8BACjCgF,iBAAiB,IAADnsB,OAAMmnB,EAAa,4CAGnCiF,aAAa,IAADpsB,OAAMmnB,EAAa,yBAC/BkF,YAAY,IAADrsB,OAAMmnB,EAAa,wBAC9BmF,UAAU,IAADtsB,OAAMmnB,EAAa,sBAC5BoF,iBAAiB,IAADvsB,OAAMmnB,EAAa,8BAGnCqF,QAAQ,IAADxsB,OAAMmnB,EAAa,aAG1BsF,kBAAkB,IAADzsB,OAAMmnB,EAAa,mBAEpCuF,eAAe,IAAD1sB,OAAMmnB,EAAa,6BACjCwF,aAAa,IAAD3sB,OAAMmnB,EAAa,iCAC/ByF,oBAAoB,IAAD5sB,OAAMmnB,EAAa,4BACtC0F,OAAO,IAAD7sB,OAAMmnB,EAAa,2BACzB2F,eAAe,IAAD9sB,OAAMmnB,EAAa,mCACjC4F,UAAU,IAAD/sB,OAAMmnB,EAAa,8BAC5B6F,WAAW,IAADhtB,OAAMmnB,EAAa,+BAG7B8F,wBAAwB,IAADjtB,OAAMmnB,EAAa,2CAG/B+F,EAAY,CAEvBjF,SAAU,CACRkF,SAAU,aACVR,aAAc,iBACdvD,SAAU,YACV4D,WAAY,eACZH,OAAO,WACPC,eAAe,mBACfC,UAAU,eAEZ9vB,cAAe,CACbmwB,YAAaC,EAAsB/F,EAAO8C,aAC1CkD,SAAUD,EAAsB/F,EAAO+C,UACvChkB,WAAYgnB,EAAsB/F,EAAOkD,YACzC+C,WAAYF,EAAsB/F,EAAOgD,YACzClhB,OAAQikB,EAAsB/F,EAAOmD,iBACrC+C,mBAAoBH,EAAsB/F,EAAOoD,qBACjD1oB,IAAKqrB,EAAsB/F,EAAOiD,KAClCkD,SAAUJ,EAAsB/F,EAAOyD,YAI3C,SAASsC,EAAsBK,GAC7B,MAAM,IAAN1tB,OAAwD0tB,EAAMC,MAAM,KAAK,GAC3E,C,mCC5JA,kCAMO,IAAKrb,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,cAAlBA,EAAkB,YAAlBA,EAAkB,gBAAlBA,EAAkB,mDAAlBA,EAAkB,+EAAlBA,EAAkB,4FAAlBA,EAAkB,8DAAlBA,EAAkB,iDAAlBA,EAAkB,4DAAlBA,EAAkB,qDAAlBA,EAAkB,iDAAlBA,EAAkB,4DAAlBA,EAAkB,uDAAlBA,EAAkB,kEAAlBA,EAAkB,qDAAlBA,EAAkB,gEAAlBA,EAAkB,uDAAlBA,EAAkB,kEAAlBA,EAAkB,2DAAlBA,EAAkB,sEAAlBA,EAAkB,2DAAlBA,EAAkB,sEAAlBA,EAAkB,6DAAlBA,EAAkB,wEAAlBA,EAAkB,uDAAlBA,EAAkB,sDAAlBA,EAAkB,2CAAlBA,EAAkB,iEAAlBA,EAAkB,yFAAlBA,EAAkB,uFAAlBA,EAAkB,4EAAlBA,EAAkB,0CAAlBA,EAAkB,kEAAlBA,EAAkB,sBAAlBA,EAAkB,wBAAlBA,EAAkB,kCAAlBA,EAAkB,2BAAlBA,EAAkB,gCAAlBA,EAAkB,oCAAlBA,EAAkB,+BAAlBA,EAAkB,2EAAlBA,EAAkB,2EAAlBA,EAAkB,yFAAlBA,EAAkB,wDAAlBA,EAAkB,6DAAlBA,EAAkB,4CAAlBA,EAAkB,2DAAlBA,EAAkB,6CAAlBA,EAAkB,mDAAlBA,EAAkB,kEAAlBA,EAAkB,uDAAlBA,EAAkB,qEAAlBA,EAAkB,8DAAlBA,EAAkB,2DAAlBA,EAAkB,2CAAlBA,EAAkB,sDAAlBA,EAAkB,mDAAlBA,EAAkB,8DAAlBA,EAAkB,+CAAlBA,EAAkB,0DAAlBA,EAAkB,mDAAlBA,EAAkB,8DAAlBA,EAAkB,mDAAlBA,EAAkB,8DAAlBA,EAAkB,mDAAlBA,EAAkB,8DAAlBA,EAAkB,6CAAlBA,EAAkB,iEAAlBA,EAAkB,4CAAlBA,EAAkB,iEAAlBA,EAAkB,4CAAlBA,EAAkB,iEAAlBA,EAAkB,8BAAlBA,EAAkB,yCAAlBA,EAAkB,4BAAlBA,EAAkB,uCAAlBA,EAAkB,uCAAlBA,EAAkB,kDAAlBA,EAAkB,6CAAlBA,EAAkB,wDAAlBA,EAAkB,6CAAlBA,EAAkB,wDAAlBA,EAAkB,sCAAlBA,EAAkB,iDAAlBA,EAAkB,+BAAlBA,EAAkB,0CAAlBA,EAAkB,qGAAlBA,EAAkB,4FAAlBA,EAAkB,uEAAlBA,EAAkB,8DAAlBA,EAAkB,+DAAlBA,EAAkB,sDAAlBA,EAAkB,uEAAlBA,EAAkB,8DAAlBA,EAAkB,uEAAlBA,EAAkB,8DAAlBA,EAAkB,6EAAlBA,EAAkB,oEAAlBA,EAAkB,iEAAlBA,EAAkB,wDAAlBA,EAAkB,4EAAlBA,EAAkB,mEAAlBA,EAAkB,kFAAlBA,EAAkB,yEAAlBA,EAAkB,kFAAlBA,EAAkB,yEAAlBA,EAAkB,2GAAlBA,EAAkB,kGAAlBA,EAAkB,0HAAlBA,EAAkB,8GAAlBA,EAAkB,iHAAlBA,EAAkB,wGAAlBA,EAAkB,iHAAlBA,EAAkB,wGAAlBA,EAAkB,wCAAlBA,EAAkB,mDAAlBA,EAAkB,8CAAlBA,EAAkB,yDAAlBA,EAAkB,8CAAlBA,EAAkB,yDAAlBA,EAAkB,8CAAlBA,EAAkB,yDAAlBA,EAAkB,mFAAlBA,EAAkB,0EAAlBA,EAAkB,mFAAlBA,EAAkB,0EAAlBA,EAAkB,mFAAlBA,EAAkB,0EAAlBA,EAAkB,wEAAlBA,EAAkB,8CAAlBA,EAAkB,kEAAlBA,EAAkB,sDAAlBA,EAAkB,0EAAlBA,EAAkB,+DAAlBA,EAAkB,6DAAlBA,EAAkB,oDAAlBA,EAAkB,2CAAlBA,EAAkB,+DAAlBA,EAAkB,sDAAlBA,EAAkB,iEAAlBA,EAAkB,wDAAlBA,EAAkB,kDAAlBA,EAAkB,yCAAlBA,EAAkB,wDAAlBA,EAAkB,+CAAlBA,EAAkB,wDAAlBA,EAAkB,+CAAlBA,EAAkB,wDAAlBA,EAAkB,+CAAlBA,EAAkB,sDAAlBA,EAAkB,6CAAlBA,EAAkB,oDAAlBA,EAAkB,2CAAlBA,EAAkB,0DAAlBA,EAAkB,iDAAlBA,EAAkB,0DAAlBA,EAAkB,iDAAlBA,EAAkB,0DAAlBA,EAAkB,iDAAlBA,EAAkB,4FAAlBA,EAAkB,mFAAlBA,EAAkB,0DAAlBA,EAAkB,iDAAlBA,EAAkB,wDAAlBA,EAAkB,+CAAlBA,EAAkB,8DAAlBA,EAAkB,qDAAlBA,EAAkB,8DAAlBA,EAAkB,qDAAlBA,EAAkB,8DAAlBA,EAAkB,qDAAlBA,EAAkB,uDAAlBA,EAAkB,0DAAlBA,EAAkB,8DAAlBA,EAAkB,iEAAlBA,EAAkB,2DAAlBA,EAAkB,8DAAlBA,EAAkB,+DAAlBA,EAAkB,sDAAlBA,EAAkB,iDAAlBA,EAAkB,oCAAlBA,EAAkB,yEAAlBA,EAAkB,8DAAlBA,EAAkB,2DAAlBA,EAAkB,0EAAlBA,EAAkB,4DAAlBA,EAAkB,2CAAlBA,EAAkB,8FAAlBA,EAAkB,iFAAlBA,EAAkB,wEAAlBA,EAAkB,wFAAlBA,EAAkB,+EAAlBA,EAAkB,kFAAlBA,EAAkB,yEAAlBA,EAAkB,kCAAlBA,EAAkB,kFAAlBA,EAAkB,yEAAlBA,EAAkB,wCAAlBA,EAAkB,+FAAlBA,EAAkB,sFAAlBA,EAAkB,oFAAlBA,CAAkB,K,uICGfsb,E,OAA8B,E,uBCR7C3R,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CAWO,SAAe2K,EAAmB5C,GAAA,OAAA4J,EAAA1J,MAAC,KAADvR,UAAA,CAqDxC,SAAAib,IAAA,OAAAA,EAAAzJ,YAAAnI,IAAAkG,MArDM,SAAAkC,EAAmCG,GAA+B,IAAAsJ,EAAAC,EAAAhH,EAAA,OAAA9K,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,OAMrE,OALIiN,EAAa,IAAIE,IAAWxJ,EAAS,CACzCyJ,yBAAyB,EACzBC,sBAAsB,EACtBC,iBAAiB,EACjBC,aAAa,IACb3J,EAAA1B,KAAA,EAAA0B,EAAA5D,KAAA,EAE+BiN,EAAW5uB,WAAW,KAAD,EAA9B,IAAhB6uB,EAAgBtJ,EAAAtE,MACD1Q,SAAW4e,IAAiBC,MAAK,CAAA7J,EAAA5D,KAAA,SACU,IAAxC+M,EAA+BpJ,GACnC,CAADC,EAAA5D,KAAA,gBAAA4D,EAAA5D,KAAA,GACOiN,EAAWS,uBAAuB,KAAD,GAA1C,OAAPxH,EAAOtC,EAAAtE,KAAAsE,EAAAnE,OAAA,SACN,CACLyN,mBACAhH,YACD,eAAAtC,EAAAnE,OAAA,SAEM,CACLyN,iBAAkB,CAChBte,OAAQ4e,IAAiBtc,MACzBvC,OAAQ,CACN,CACEnC,KAAMmhB,IAAUC,aAChBjK,QAAS,yBAGbkK,SAAU,IAEZ3H,QAAS,KACV,QAAAtC,EAAA5D,KAAA,wBAAA4D,EAAAnE,OAAA,SAGI,CACLyN,mBACAhH,QAAS,KACV,QAAAtC,EAAA5D,KAAA,wBAAA4D,EAAA1B,KAAA,GAAA0B,EAAAkK,GAAAlK,EAAA,SAAAA,EAAAnE,OAAA,SAGI,CACLyN,iBAAkB,CAChBte,OAAQ4e,IAAiBtc,MACzBvC,OAAQ,CACN,CACEnC,KAAMmhB,IAAUC,aAChBjK,QAASC,EAAAkK,GAAazc,UAG1Bwc,SAAU,IAEZ3H,QAAS,KACV,yBAAAtC,EAAAxB,OAAA,GAAAoB,EAAA,oBAEJF,MAAA,KAAAvR,UAAA,CAEM,SAASgc,EAAuBC,EAAiBrf,GACtD,OAAOA,EAAOvH,KAAI,SAAC4S,GAAK,OAAKiU,EAAuBD,EAAMhU,EAAM,IAAEkU,KAAK,KACzE,CAUA,SAASD,EAAuBD,EAAiBhU,GAC/C,IACE,OAAQA,EAAMxN,MACZ,KAAKmhB,IAAUC,aACb,OAAOO,YAAcH,EAAM,sBAE7B,KAAKL,IAAUS,sBACb,OAAOD,YAAcH,EAAM,+CAAgD,CAAE1mB,KAAM0S,EAAM1S,KAAK4mB,KAAK,QACrG,KAAKP,IAAUU,oBACb,OAAOF,YAAcH,EAAM,kCAC7B,KAAKL,IAAUW,wBACb,OAAOH,YAAcH,EAAM,qCAAsC,CAAE1mB,KAAM0S,EAAM1S,OACjF,KAAKqmB,IAAUY,8BACb,OAAOJ,YAAcH,EAAM,4CAC7B,KAAKL,IAAUa,eACb,OAAOL,YAAcH,EAAM,6BAC7B,KAAKL,IAAUc,uBACb,OAAOzU,EAAM2J,QACf,KAAKgK,IAAUe,oBACb,OAAOP,YAAcH,EAAM,kCAE7B,QACE,OAAOhU,EAAM2J,QAEnB,CAAE,MAAOuB,GACP,OAAOlL,EAAM2J,OACf,CACF,C,mCCxGA,iFAEYgL,EAAuB,SAAvBA,GAAuB,OAAvBA,EAAuB,yBAAvBA,CAAuB,MAItBhU,EAAmB,SAC9BiU,EACAvd,EACA7E,EACAqiB,EACAC,GAAqB,MACR,CACbtiB,KAAK,GAADrN,OAAKjE,IAAU6zB,aAAY,KAAA5vB,OAAIwvB,EAAwBK,MAC3DtzB,QAAS,CACPkzB,OACAvd,UACA7E,OACAqiB,eACAC,gBAEH,C,oCClBD,IAAIG,EAAUC,EAAQ,IAARA,GACVC,EAAQD,EAAQ,MAChB7wB,EAAY,WACd,IAAI+wB,EAAW,IAAIC,OAAO,OACtBC,EAAW,IAAID,OAAO,uBAOtBE,GANW,IAAIF,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BACb,IACTG,EAAW,WACb,IAAIJ,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAIvE,IAAItoB,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAsbrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApbL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAmBhhB,IAAf5H,EAAKipB,MAaP,OAZAL,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,SAEnBnf,QAAS,2CAGN,EAEP,IAAIof,EAxCC,EAyCL,GAA0B,kBAAfnpB,EAAKipB,MAYd,OAXAlyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM6e,EAvDC,IAuDmBO,EAEd,CACV,QAAyBvhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EA7DD,EA8DH,GAAgC,kBAArBnpB,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EA5ED,IA4EqBO,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKspB,gBAEfV,GAAS,MACJ,CAEL,GApFC,KAmFGO,EAnFH,GAoFsB,CACrB,GAAqB,kBAAVE,EA2BT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,kBAC7BO,WAAY,mCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKM,GAYjC,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,kBAC7BO,WAAY,qCACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI6e,EAnHH,IAmHuBO,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKwpB,SAEfZ,GAAS,MACJ,CACDO,EA1HL,EA4HC,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAwIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAvIP,IACI0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAEtB,KADuC,QAARK,GAA0B,OAARA,GAAyB,SAARA,GAAmB5B,EAASiB,KAAKW,IAcjG,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,6CACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CACV,QAAmB7hB,IAAfyhB,EAAMvc,KACR2c,GAAS,MACJ,CACL,IAAIE,EAtJX,EAuJO,GAA0B,kBAAfN,EAAMvc,KAYf,OAXA/V,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,6CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EArKX,IAqK+BE,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM3X,KAEhB+X,GAAS,MACJ,CAEL,GA7KT,KA4KaE,EA5Kb,GA6KgC,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,4CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,8CACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EA5Mb,IA4MiCE,CAC1B,CACA,GAAIF,EAEF,QAAc7hB,KADVgiB,EAAQP,EAAMQ,OAEhBJ,GAAS,MACJ,CAEL,GApNX,KAmNeE,EAnNf,GAoNkC,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,8CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQkC,MAAMd,KAAKa,GAYtB,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,gDACZC,OAAQ,CACNY,OAAQ,SAEVxf,QAAS,iCAGN,CAgBb,CACI0f,EAnPf,IAmPmCE,CAC1B,CAEJ,CACF,CAgBEf,EAvQL,IAuQyBO,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EACJ,QAAczhB,KADVyhB,EAAQrpB,EAAK8pB,SAEflB,GAAS,MACJ,CACDO,EA9QP,EAgRG,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA8GvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA3GD0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAEtB,KADuC,QAARK,GAA0B,OAARA,GAAiB5B,EAASiB,KAAKW,IAc9E,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,6CACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CACV,QAAmB7hB,IAAfyhB,EAAMvc,KAaR,OAZA2c,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,iCACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,0CAGN,EAEP,IAkBI6f,EAlBAD,EAvTf,EAwTW,GAA0B,kBAAfN,EAAMvc,KAYf,OAXA/V,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,6CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM0f,EAtUf,IAsUmCE,EAIxB,QAAc/hB,KADVgiB,EAAQP,EAAM3X,KAEhB+X,GAAS,MACJ,CAEL,GA9Ub,KA6UiBE,EA7UjB,GA8UoC,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,4CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,8CACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EA7WjB,IA6WqCE,CAC1B,CAEJ,CAiBAf,EAjYP,IAiY2BO,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAK+pB,QAaP,OAZAnB,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,WAEnBnf,QAAS,6CAGN,EAEHof,EAnZT,EAoZK,GAA4B,kBAAjBnpB,EAAK+pB,QAYd,OAXAhzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAlaT,IAka6BO,CAE5B,CACF,CACF,CACF,CACF,CACF,CAiBJ,OADApyB,EAASsQ,OA1bK,MA2bPA,CACT,CACF,CAxce,GAycf6gB,EAAQY,OAAS,CACf5jB,KAAM,SACN8kB,SAAU,CAAC,QAAS,WACpBte,WAAY,CACVud,MAAO,CACL/jB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERokB,eAAgB,CACdpkB,KAAM,SACNqkB,OAAQ,iBAEVC,QAAS,CACPS,KAAM,yBAERH,QAAS,CACPG,KAAM,yBAERF,QAAS,CACP7kB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBjC,EAAQ7gB,OAAS,KACjB4gB,EAAO,GAAKC,EAqBZD,EAAO,GApBO,CACZ/iB,KAAM,SACNwG,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERwM,IAAK,CACHxM,KAAM,SACNqkB,OAAQ,iBAEVM,MAAO,CACL3kB,KAAM,SACNqkB,OAAQ,UAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAoBxBlC,EAAO,GAjBO,CACZ/iB,KAAM,SACN8kB,SAAU,CAAC,QACXte,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERwM,IAAK,CACHxM,KAAM,SACNqkB,OAAQ,kBAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAoBxBlC,EAAO,GAjBO,CACZ/iB,KAAM,SACN8kB,SAAU,CAAC,OACXte,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAERwM,IAAK,CACHxM,KAAM,SACNqkB,OAAQ,kBAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAGxB,IAAIC,EAAW,WACb,IAAItC,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAIvE,IAAItoB,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA+QrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA7QL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KADuC,OAAR6oB,GAAyB,eAARA,GAAiC,aAARA,GAAuBf,EAASiB,KAAKF,IAc5G,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAiBhhB,IAAb5H,EAAK0R,IAaP,OAZAkX,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,OAEnBnf,QAAS,yCAGN,EAEP,IAAIof,EAxCC,EAyCL,GAAwB,kBAAbnpB,EAAK0R,IAYd,OAXA3a,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,OAC7BO,WAAY,wBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM6e,EAvDC,IAuDmBO,EAEd,CACV,QAAyBvhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EA7DD,EA8DH,GAAgC,kBAArBnpB,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EA5ED,IA4EqBO,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EAAQrpB,EAAKqqB,UACjB,QAAcziB,IAAVyhB,EACFT,GAAS,MACJ,CACDO,EAnFH,EAoFD,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAwKvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EArKP,IAAK,IAAIugB,KAAQjB,EAAO,CACtB,IAAIO,EAAQP,EAAMiB,GAGlB,IAAIV,GAA0B,kBAAVA,GAAuBrB,MAAMC,QAAQoB,GA+IvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,oCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA7IL,IACIwgB,GAAS,EACb,IAAK,IAAIC,KAAQZ,EAAO,CAQtB,KALU,QAARY,GACQ,WAARA,GACQ,eAARA,GACA1C,EAASiB,KAAKyB,IAed,OAZAD,GAAS,EACTxzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,oDACZC,OAAQ,CACNK,mBAAoB,GAAKwB,GAE3BzgB,QAAS,2CAGN,CAGX,CACA,GAAIwgB,EAAQ,CACV,IAAIE,EAAQb,EAAMc,KAClB,QAAc9iB,IAAV6iB,EACFF,GAAS,MACJ,CACL,IAAII,EA7Hf,EA8HW,IAAIpC,MAAMC,QAAQiC,GAkChB,OAXA1zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,UACrD5B,WAAY,oDACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/BP,IAFA,IAES6gB,EAAK,EAAGA,EAAKH,EAAM9xB,OAAQiyB,IAAM,CAExC,GAAyB,kBAAdH,EAAMG,GAYf,OAXA7zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,WAAaM,EAAK,IACvElC,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGL,CACN,CAeEwgB,EAlKf,IAkKmCI,CAC1B,CACA,GAAIJ,EAAQ,CACV,QAAsB3iB,IAAlBgiB,EAAMiB,QAaR,OAZAN,GAAS,EACTxzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,wCACZC,OAAQ,CACNO,gBAAiB,WAEnBnf,QAAS,6CAGN,EAEH4gB,EApLjB,EAqLa,GAA6B,kBAAlBf,EAAMiB,QAYf,OAXA9zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,aACrD5B,WAAY,uDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFMwgB,EAnMjB,IAmMqCI,EAGxB,QAA0B/iB,IAAtBgiB,EAAMR,YACRmB,GAAS,MACJ,CACDI,EAzMnB,EA0Me,GAAiC,kBAAtBf,EAAMR,YAYf,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,iBACrD5B,WAAY,2DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAELwgB,EAxNnB,IAwNuCI,CAC1B,CAEJ,CACF,CAkBJ,KADatjB,EACA,KACf,CAeEuhB,EA9PH,IA8PuBO,CAC1B,CACF,CACF,CACF,CAiBJ,OADApyB,EAASsQ,OAnRK,MAoRPA,CACT,CACF,CAjSe,GAkSf+iB,EAAQtB,OAAS,CACf5jB,KAAM,SACN8kB,SAAU,CAAC,OACXte,WAAY,CACVgG,IAAK,CACHxM,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERmlB,UAAW,CACTnlB,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,kCAIZC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBC,EAAQ/iB,OAAS,KACjB4gB,EAAO,GAAKmC,EAuBZnC,EAAO,GAtBO,CACZ/iB,KAAM,SACN8kB,SAAU,CAAC,WACXte,WAAY,CACVgf,KAAM,CACJxlB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,WAGV2lB,QAAS,CACP3lB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAYxBlC,EAAO,GATO,CACZ/iB,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,YAKZ,IAAI6lB,EAAW,WACb,IAAIjD,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAIvE,IAAItoB,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAuNrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EArNL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KADuC,QAAR6oB,GAA0B,eAARA,GAAiC,gBAARA,GAA0Bf,EAASiB,KAAKF,IAchH,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAkBhhB,IAAd5H,EAAK8M,KAaP,OAZA8b,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,0CAGN,EAEP,IAAIof,EAxCC,EAyCL,GAAyB,kBAAdnpB,EAAK8M,KAYd,OAXA/V,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM6e,EAvDC,IAuDmBO,EAEd,CACV,QAAyBvhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EA7DD,EA8DH,GAAgC,kBAArBnpB,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EA5ED,IA4EqBO,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EAAQrpB,EAAKgrB,aACjB,QAAcpjB,IAAVyhB,EACFT,GAAS,MACJ,CACDO,EAnFH,EAqFD,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA8GvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,2CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5GL,IACI0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAEtB,KADuC,eAARK,GAAiC,OAARA,GAAiB5B,EAASiB,KAAKW,IAcrF,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,2DACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CACV,QAA0B7hB,IAAtByhB,EAAMD,YACRK,GAAS,MACJ,CACL,IAAIE,EAhHX,EAiHO,GAAiC,kBAAtBN,EAAMD,YAYf,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,4BAC7BO,WAAY,kEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EA/HX,IA+H+BE,CAC1B,CACA,GAAIF,EAAQ,CACV,IAAIG,EAAQP,EAAM3X,IAClB,QAAc9J,IAAVgiB,EAaF,OAZAH,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,+CACZC,OAAQ,CACNO,gBAAiB,OAEnBnf,QAAS,yCAGN,EAGP,GAnJT,KAkJa4f,EAlJb,GAmJgC,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,4DACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EAlLb,IAkLiCE,CAE5B,CACF,CAiBAf,EAtMH,IAsMuBO,CAC1B,CACF,CACF,CACF,CAiBJ,OADApyB,EAASsQ,OA3NK,MA4NPA,CACT,CACF,CAzOe,GA0Of0jB,EAAQjC,OAAS,CACf5jB,KAAM,SACN8kB,SAAU,CAAC,QACXte,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAER8lB,aAAc,CACZf,KAAM,wCAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBY,EAAQ1jB,OAAS,KACjB4gB,EAAO,GAAK8C,EACZ,IAAIE,EAAW,WACb,IAAInD,EAAW,IAAIC,OAAO,OAEtBmD,GADW,IAAInD,OAAO,uBACX,IAAIA,OAAO,SACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAgDrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA/CP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BkrB,EAASnC,KAAKF,IAASf,EAASiB,KAAKF,IAclE,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EACF,IAAK,IAAIC,KAAQ7oB,EACf,GAAIkrB,EAASnC,KAAKF,GAAO,CACvB,IAAIM,EAAS9hB,EAOb,GANK+jB,EAASprB,EAAK6oB,IAAQV,GAAY,IAAM,KAAOU,EAAO,KAAM7oB,EAAM6oB,EAAMP,KAG3EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BC,EAAS/jB,OAC1B8jB,EAAQtzB,OAAOuzB,EAAS/jB,SACtB1O,UAEfiwB,EAASvhB,IAAW8hB,GACX,KACf,MAAOP,GAAS,EAkBtB,OADA7xB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAnEe,GAoEf4jB,EAAQnC,OAAS,CACf5jB,KAAM,SACNglB,kBAAmB,CACjB,OAAQ,CACND,KAAM,0BAER,MAAO,CAAC,GAEVE,sBAAsB,GAExBc,EAAQ5jB,OAAS,KACjB4gB,EAAO,GAAKgD,EACZ,IAAIG,EAAY,WACd,IAAItD,EAAW,IAAIC,OAAO,OAGtBsD,GAFW,IAAItD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,qDACtBuD,EAAW,IAAIvD,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA2UrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1UP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAWrB,KARU,QAAR6oB,GACQ,WAARA,GACQ,eAARA,GACQ,WAARA,GACQ,cAARA,GACAwC,EAAStC,KAAKF,IACdf,EAASiB,KAAKF,IAed,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAkBhhB,IAAd5H,EAAKiqB,KACPrB,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,GAAyB,kBAAdrH,EAAKiqB,KAYd,OAXAlzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,2BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAKurB,QACP3C,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,kBAAjBrH,EAAKurB,QAYd,OAXAx0B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKwrB,SAEf5C,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAyBhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EAtBP,IAFA,IAES0hB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACxC,IAAIC,EAASrkB,EAOb,GANK4gB,EAAO,GAAGoB,EAAMoC,IAAMtD,GAAY,IAAM,YAAcsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAG9EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,GAAG5gB,OAC3B8jB,EAAQtzB,OAAOowB,EAAO,GAAG5gB,SACvB1O,UAEfgzB,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EACJ,QAAczhB,KADVyhB,EAAQrpB,EAAK4rB,YAEfhD,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAiKhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EAhKH6e,GAAS,EACb,GAAIS,EAAM1wB,OAAS,EAAG,CACpB,IACEkzB,EADElS,EAAI0P,EAAM1wB,OAEdmzB,EAAO,KAAOnS,KACZ,IAAKkS,EAAIlS,EAAGkS,KACV,GAAIhE,EAAMwB,EAAM1P,GAAI0P,EAAMwC,IAAK,CAC7BjD,GAAS,EACT,MAAMkD,CACR,CAGN,CACA,IAAKlD,EAaH,OAZA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,cACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,sCACZC,OAAQ,CACNhP,EAAGA,EACHkS,EAAGA,GAEL9hB,QAAS,6CAA+C8hB,EAAI,QAAUlS,EAAI,qBAGvE,EAIP,IAAS8R,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACxC,IAAI7B,EAAQP,EAAMoC,GAEdM,GADAL,EAASrkB,EACCA,GACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACR4kB,EAASrC,GAAQzB,GAAY,IAAM,eAAiBsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAG5EjhB,GAFsB8jB,EAAN,OAAZA,EAA4Bc,EAAS5kB,OAC1B8jB,EAAQtzB,OAAOo0B,EAAS5kB,SACtB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAEb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CACpD,IAAI/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,IACnD/C,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GACdC,EAAS/kB,EACb,GAAIA,IAAW+kB,EACb,GAAqB,kBAAV3B,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,MAAQU,EAAO,KAClEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,MAAQU,EAAO,KAClEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,IACnD/C,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IACIoiB,EAKJ,IALIA,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,IACnD/C,WAAY,sCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAgBA9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EACF,IAAK,IAAIC,KAAQ7oB,EACf,GAAIqrB,EAAStC,KAAKF,GAAO,CACnBM,EAAS9hB,EAOb,GANKglB,EAASrsB,EAAK6oB,IAAQV,GAAY,IAAM,KAAOU,EAAO,KAAM7oB,EAAM6oB,EAAMP,KAG3EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BkB,EAAShlB,OAC1B8jB,EAAQtzB,OAAOw0B,EAAShlB,SACtB1O,UAEfiwB,EAASvhB,IAAW8hB,GACX,KACf,MAAOP,GAAS,CAGtB,CACF,CACF,CACF,CACF,CAgBF,OADA7xB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA9VgB,GA+VhB+jB,EAAStC,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVue,KAAM,CACJ/kB,KAAM,UAERqmB,QAAS,CACPrmB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERsmB,QAAS,CACPtmB,KAAM,QACN4lB,MAAO,CACLb,KAAM,yBAGV2B,WAAY,CACV1mB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,6BAIZsC,aAAa,IAGjBrC,kBAAmB,CACjB,mDAAoD,CAClDD,KAAM,2BAER,MAAO,CAAC,GAEVE,sBAAsB,GAExBiB,EAAS/jB,OAAS,KAClB4gB,EAAO,IAAMmD,EACb,IAAIa,EAAY,WACd,IAAInE,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAotBrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAltBL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAkBhhB,IAAd5H,EAAK8M,KAaP,OAZA8b,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,0CAGN,EAEP,IAAIof,EAAS9hB,EACb,GAAyB,kBAAdrH,EAAK8M,KAYd,OAXA/V,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM6e,EAASvhB,IAAW8hB,EAEd,CACV,QAAgBvhB,IAAZ5H,EAAKwsB,GAaP,OAZA5D,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,MAEnBnf,QAAS,wCAGN,EAEHof,EAAS9hB,EACb,GAAuB,kBAAZrH,EAAKwsB,GAYd,OAXAz1B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,uBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM6e,EAASvhB,IAAW8hB,EAEd,CACV,QAAyBvhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAsBhhB,IAAlB5H,EAAKgqB,SACPpB,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA6B,mBAAlBrH,EAAKgqB,SAYd,OAXAjzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAwBhhB,IAApB5H,EAAKysB,WACP7D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA+B,mBAApBrH,EAAKysB,WAYd,OAXA11B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAA6BhhB,IAAzB5H,EAAK0sB,gBACP9D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAoC,mBAAzBrH,EAAK0sB,gBAYd,OAXA31B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAC7BO,WAAY,oCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAmBhhB,IAAf5H,EAAK2sB,MACP/D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA0B,kBAAfrH,EAAK2sB,MAYd,OAXA51B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAK4sB,QACPhE,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,mBAAjBrH,EAAK4sB,QAYd,OAXA71B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAA2BhhB,IAAvB5H,EAAK6sB,cACPjE,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAkC,mBAAvBrH,EAAK6sB,cAYd,OAXA91B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,kCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK8oB,QAEfF,GAAS,MACJ,CACDO,EAAS9hB,EAAb,IACIylB,EAAUzlB,EACV0lB,GAAa,EAEbrB,GADA9C,GAAS,EACAvhB,GACR2lB,EAAS3D,GAAQlB,GAAY,IAAM,UAAWnoB,EAAM,SAAUsoB,KAGjEjhB,GAFsB8jB,EAAN,OAAZA,EAA4B6B,EAAS3lB,OAC1B8jB,EAAQtzB,OAAOm1B,EAAS3lB,SACtB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EAAb,IACIsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAE/D,QAAmBzhB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CACpD,IAAI9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACL,IACIkjB,GAAS,EACb,IAAK,IAAIC,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACvB,IAAIZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,YAAcqC,EAAO,KAClD9B,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,YAAcqC,EAAO,KAClD9B,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIkjB,EAASljB,IAAWsjB,GACX,KACf,MAAOJ,GAAS,CAEpB,CACF,KAAO,CACDpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IAAIoiB,EAASpiB,IAAWsiB,EAMxB,IALIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,4BACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IA0EQS,EAzER,QAAczhB,KADVyhB,EAAQrpB,EAAKqc,SAEfuM,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA+DvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA9DP,GAAImH,OAAOqJ,KAAK8O,GAAO1wB,OAAS,EAY9B,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,gBACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,qCACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,4CAGN,EAEP,GAAImH,OAAOqJ,KAAK8O,GAAO1wB,OAAS,EAY9B,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,gBACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,qCACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,4CAGN,EAEH+iB,EAAUzlB,EAAd,IACIskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBqC,EAASrkB,EAeb,GAbG8lB,EACC9D,EAAMiB,IACLnC,GAAY,IAAM,aAAemC,EAAO,KACzCjB,EACAiB,EACAhC,KAKFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BgC,EAAS9lB,OAC1B8jB,EAAQtzB,OAAOs1B,EAAS9lB,SACtB1O,UAEfgzB,EAAStkB,IAAWqkB,GACX,KACf,CAiBF9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EACF,GAAIA,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAKotB,UAEfxE,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAmQvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAlQH+iB,EAAUzlB,EACVskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAElBqC,EAASrkB,EADb,IAEI0kB,EAAU1kB,EACV2kB,GAAa,EAGbrB,GAFAgB,GAAS,EACThC,EAAStiB,EACAA,GACb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIyD,EAAUhmB,EACVimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EAAO,CAStB,KANU,WAARuC,GACQ,eAARA,GACQ,SAARA,GACQ,iBAARA,GACArE,EAASiB,KAAKoD,IAEG,CACjBmB,GAAS,EACLnY,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6CACZC,OAAQ,CACNK,mBAAoB,GAAKmD,GAE3BpiB,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIimB,EAAQ,CACV,QAAsB1lB,IAAlBgiB,EAAM2B,QACR+B,GAAS,MACJ,CACL,IAAIlB,EAAS/kB,EACb,GAA6B,kBAAlBuiB,EAAM2B,QAAsB,CACjCpW,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,aACpD5B,WAAY,gDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EAAQ,CACV,QAA0B1lB,IAAtBgiB,EAAMR,YACRkE,GAAS,MACJ,CACDlB,EAAS/kB,EACb,GAAiC,kBAAtBuiB,EAAMR,YAA0B,CACrCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,iBACpD5B,WAAY,oDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EACF,GAAIA,EAEF,QAAc1lB,KADV6iB,EAAQb,EAAM2D,eAEhBD,GAAS,MACJ,CAEL,GAAIjmB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,wDACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,sDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEEimB,EAASjmB,IAAW+kB,CAC1B,CAGN,CACF,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,GACpBlB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDgmB,EAAUhmB,EACVimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,EAMxB,IALIlB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CAGN,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAgBJ,GAAe,IAAX9hB,EAAc,CACZ8hB,EAAS9hB,EACTqkB,EAASrkB,EACT0kB,EAAU1kB,EACVsiB,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAsB4H,IAAjB5H,EAAKwtB,UAA0BP,EAAW,kBAAmCrlB,IAAlB5H,EAAKotB,WAA2BH,EAAW,aAAe,CACpH9X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIoiB,EAASpiB,IAAWsiB,EAWtB,OATA5yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,uCACZC,OAAQ,CAAC,EACT5e,QAAS,yBAGN,EAEP1C,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAGfQ,EAAStkB,IAAWqkB,EAExB,GADI9C,EAASvhB,IAAW8hB,EACZ,CACNA,EAAS9hB,EACTqkB,EAASrkB,EACT0kB,EAAU1kB,EACVsiB,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAqB4H,IAAhB5H,EAAK8oB,SAAyBmE,EAAW,iBAAiCrlB,IAAjB5H,EAAKqc,UAA0B4Q,EAAW,YAAc,CAChH9X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIoiB,EAASpiB,IAAWsiB,EAWtB,OATA5yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qCACZC,OAAQ,CAAC,EACT5e,QAAS,yBAGN,EAEP1C,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAEbY,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,SAEjC4H,IAAhB5H,EAAK8oB,SAAyBmE,EAAW,WAAY,CACnD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,kDACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEEoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAClC,IAEMiB,EAFFtD,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,SAEhC4H,IAAjB5H,EAAKqc,UAA0B4Q,EAAW,YAAa,CACrD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,kDACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEF,GAAIA,IAAWsiB,EAAQ,CACjBgB,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAmB4H,IAAf5H,EAAK2sB,OAAmC,SAAW,CACjDxX,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADIZ,EAASljB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAqB4H,IAAjB5H,EAAK4sB,SAAqC,WAAa,CACrDzX,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADIZ,EAASljB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAA2B4H,IAAvB5H,EAAK6sB,eAA2C,iBAAmB,CACjE1X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADIZ,EAASljB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAqB4H,IAAjB5H,EAAKwtB,SAAqC,WAAa,CACrDrY,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADIZ,EAASljB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAsB4H,IAAlB5H,EAAKotB,UAAsC,YAAc,CACvDjY,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAGfZ,EAASljB,IAAWsjB,CAC1B,CACF,CACF,CACF,CACF,CAMA,IALIlB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,uCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAIjBQ,EAAStkB,IAAWqkB,EAExB,GADI9C,EAASvhB,IAAW8hB,EACZ,CACNA,EAAS9hB,EACTqkB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAGtDuqB,GAAS,EACb,QAAgB3iB,IAAZ5H,EAAKwsB,GACPjC,GAAS,MACJ,CACDI,EAAStjB,EAAb,IACIomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAW8gB,GAAG9B,KAE9CH,GAAS,EACT,IAAK,IAAIK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAKwsB,GAAIiB,EAAQ7C,IAAM,CAC/BL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,6DACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CACA,GAAIJ,EAAQ,CACV,QAAmB3iB,IAAf5H,EAAK2sB,MACPpC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAWihB,MAAMjC,KAEjDH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAK2sB,MAAOc,EAAQ7C,IAAM,CAClCL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,gEACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CACA,GAAIJ,EACF,QAAsB3iB,IAAlB5H,EAAKgqB,SAAwB,CAC/BO,GAAS,EACLpV,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,mDACZC,OAAQ,CACNO,gBAAiB,YAEnBnf,QAAS,4CAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDsjB,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAWse,SAASU,KAEpDH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAKgqB,SAAUyD,EAAQ7C,IAAM,CACrCL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,mEACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CAEJ,CAEJ,EACIlB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAExDuqB,GAAS,EACb,QAAgB3iB,IAAZ5H,EAAKwsB,GACPjC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAW8gB,GAAG9B,KAE9CH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAKwsB,GAAIiB,EAAQ7C,IAAM,CAC/BL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,6DACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CACA,GAAIJ,EACF,QAAmB3iB,IAAf5H,EAAK2sB,MACPpC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAWihB,MAAMjC,KAEjDH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAK2sB,MAAOc,EAAQ7C,IAAM,CAClCL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,gEACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CAEJ,CAEA,IADIlB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,MAC9B,CACClC,IAAQkC,EAASK,GAAa,GAC9BrC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAExDuqB,GAAS,EACb,QAAgB3iB,IAAZ5H,EAAKwsB,GACPjC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAW8gB,GAAG9B,KAE9CH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAKwsB,GAAIiB,EAAQ7C,IAAM,CAC/BL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,6DACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CACA,GAAIJ,EACF,QAAmB3iB,IAAf5H,EAAK2sB,MACPpC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAWihB,MAAMjC,KAEjDH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAK2sB,MAAOc,EAAQ7C,IAAM,CAClCL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,gEACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CAEJ,CAEA,IADIlB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,MAC9B,CACClC,IAAQkC,EAASK,GAAa,GAC9BrC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAExDuqB,GAAS,EACb,QAAgB3iB,IAAZ5H,EAAKwsB,GACPjC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAW8gB,GAAG9B,KAE9CH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAKwsB,GAAIiB,EAAQ7C,IAAM,CAC/BL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,6DACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CACA,GAAIJ,EACF,QAAmB3iB,IAAf5H,EAAK2sB,MACPpC,GAAS,MACJ,CACDI,EAAStjB,EACTomB,EAAUC,EAASpB,MAAM,GAAG5gB,WAAWihB,MAAMjC,KAEjDH,GAAS,EACT,IAASK,EAAK,EAAGA,EAAK6C,EAAQ90B,OAAQiyB,IACpC,GAAI/C,EAAM7nB,EAAK2sB,MAAOc,EAAQ7C,IAAM,CAClCL,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPpV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,gEACZC,OAAQ,CACNgF,cAAeF,GAEjB1jB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIkjB,EAASljB,IAAWsjB,CAC1B,CAEJ,EACIlB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,EAEtC,CACF,CACA,IAAKL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,wCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAGfQ,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CACF,CACF,CAEA,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAj3CgB,GAk3ChB4kB,EAASnD,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERsnB,GAAI,CACFtnB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAER8kB,SAAU,CACR9kB,KAAM,UACN2lB,SAAS,GAEX4B,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEX6B,gBAAiB,CACfxnB,KAAM,UACN2lB,SAAS,GAEX8B,MAAO,CACLznB,KAAM,UAER0nB,QAAS,CACP1nB,KAAM,WAER2nB,cAAe,CACb3nB,KAAM,UACN2lB,SAAS,GAEX/B,OAAQ,CACNwD,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZ5N,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,2BAER2D,cAAe,EACfC,cAAe,GAEjBL,QAAS,CAAC,EACVJ,SAAU,CACRloB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,yBAER,CACEA,KAAM,+BAMhBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtBH,SAAU,CAAC,OAAQ,MACnB8D,MAAO,CACL,CACE7D,KAAM,oCAER,CACEA,KAAM,kCAER,CACEA,KAAM,qCAIZgC,EAAS5kB,OAAS,KAClB4gB,EAAO,IAAMgE,EACb,IAAIe,EAAY,WACd,IAAIlF,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA6vErD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5vEP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAmBhhB,IAAf5H,EAAKipB,MACPL,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,GAA0B,kBAAfrH,EAAKipB,MAYd,OAXAlyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK+tB,YAEfnF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,EA6BT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5BP,GAAIsf,GAAS,GAAKA,IAAUA,EAc1B,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,mBACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,2CACZC,OAAQ,CACNqF,WAAY,IACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,mBAGN,EAgBP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAKkuB,QACPtF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,kBAAjBrH,EAAKkuB,QAYd,OAXAn3B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAA8BhhB,IAA1B5H,EAAKmuB,iBACPvF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqC,mBAA1BrH,EAAKmuB,iBAYd,OAXAp3B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,qCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAKouB,QACPxF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,kBAAjBrH,EAAKouB,QAYd,OAXAr3B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAA8BhhB,IAA1B5H,EAAKquB,iBACPzF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqC,mBAA1BrH,EAAKquB,iBAYd,OAXAt3B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,qCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKsuB,WAEf1F,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,GAAsBA,EAAQ,GAAKA,IAAUA,EAYtD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAET,GAAqB,kBAAVsf,IACLA,EAAQ,GAAKA,IAAUA,GAczB,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,iCACZC,OAAQ,CACNqF,WAAY,KACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,oBAGN,EAGP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKuuB,WAEf3F,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,GAAsBA,EAAQ,GAAKA,IAAUA,EAYtD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAET,GAAqB,kBAAVsf,IACLA,EAAQ,GAAKA,IAAUA,GAczB,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,iCACZC,OAAQ,CACNqF,WAAY,KACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,oBAGN,EAGP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKwuB,SAEf5F,GAAS,MACJ,CAEL,GAAIvhB,KADA8hB,EAAS9hB,GACU,CACrB,GAAqB,kBAAVgiB,EA2BT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ8G,MAAMpF,GAYjB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,8BACZC,OAAQ,CACNY,OAAQ,SAEVxf,QAAS,iCAGN,CAgBb,CACI6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK0uB,UAEf9F,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,GAAsBA,EAAQ,GAAKA,IAAUA,EAYtD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAET,GAAqB,kBAAVsf,IACLA,EAAQ,GAAKA,IAAUA,GAczB,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,gCACZC,OAAQ,CACNqF,WAAY,KACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,oBAGN,EAGP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK2uB,UAEf/F,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,GAAsBA,EAAQ,GAAKA,IAAUA,EAYtD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAET,GAAqB,kBAAVsf,IACLA,EAAQ,GAAKA,IAAUA,GAczB,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,gCACZC,OAAQ,CACNqF,WAAY,KACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,oBAGN,EAGP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKusB,YACP3D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,mBAArBrH,EAAKusB,YAYd,OAXAx1B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK6tB,eAEfjF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,GAAsBA,EAAQ,GAAKA,IAAUA,EAYtD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,kCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAET,GAAqB,kBAAVsf,IACLA,EAAQ,GAAKA,IAAUA,GAczB,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,qCACZC,OAAQ,CACNqF,WAAY,KACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,oBAGN,EAGP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK4tB,eAEfhF,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,GAAsBA,EAAQ,GAAKA,IAAUA,EAYtD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,kCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAET,GAAqB,kBAAVsf,IACLA,EAAQ,GAAKA,IAAUA,GAczB,OAbAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,qCACZC,OAAQ,CACNqF,WAAY,KACZd,MAAO,EACPe,WAAW,GAEblkB,QAAS,oBAGN,EAGP6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKgqB,UAEfpB,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GA+EhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA9EP,GAAIsf,EAAM1wB,OAAS,EAYjB,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,iCACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,uCAGN,EAEH6e,GAAS,EACb,GAAIS,EAAM1wB,OAAS,EAAG,CACpB,IACEkzB,EADElS,EAAI0P,EAAM1wB,OAEdmzB,EAAO,KAAOnS,KACZ,IAAKkS,EAAIlS,EAAGkS,KACV,GAAIhE,EAAMwB,EAAM1P,GAAI0P,EAAMwC,IAAK,CAC7BjD,GAAS,EACT,MAAMkD,CACR,CAGN,CACA,IAAKlD,EAcH,OAbA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,cACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,oCACZC,OAAQ,CACNhP,EAAGA,EACHkS,EAAGA,GAEL9hB,QACE,6CAA+C8hB,EAAI,QAAUlS,EAAI,qBAGhE,EAIP,IAFA,IAAImT,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACxC,IAAIC,EAASrkB,EACb,GAAyB,kBAAdgiB,EAAMoC,GAYf,OAXA10B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,IACjD/C,WAAY,mCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KADI4hB,EAAStkB,IAAWqkB,GACX,KACf,CAiBF9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK0qB,MAEf9B,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAgChB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/BP,GAAIsf,EAAM1wB,OAAS,EAYjB,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,6BACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,uCAGN,EAGD+iB,EAAUzlB,EAkBhBuhB,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKkF,MAEf0jB,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,EAYT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAET,IAAI6kB,EAAU73B,EAAS+xB,OAAOpd,WAAWxG,KAAKwlB,KAE9C9B,GAAS,EACT,IAAS6C,EAAK,EAAGA,EAAKmD,EAAQj2B,OAAQ8yB,IACpC,GAAI5D,EAAMwB,EAAOuF,EAAQnD,IAAM,CAC7B7C,GAAS,EACT,KACF,CACF,IAAKA,EAYH,OAXA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNgF,cAAeiB,GAEjB7kB,QAAS,kDAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK6uB,KAEfjG,GAAS,MACJ,CACDO,EAAS9hB,EACTylB,EAAUzlB,EADd,IAEI0lB,GAAa,EACbnE,GAAS,EACT8C,EAASrkB,EACR4gB,EAAO,IAAIoB,GAAQlB,GAAY,IAAM,OAAQnoB,EAAM,MAAOsoB,KAG7DjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EAAb,IACIsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAE/D,QAAmBzhB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CACpD,IAAI9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,OAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACvB,IAAIZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,SAAWqC,EAAO,KAC/C9B,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,SAAWqC,EAAO,KAC/C9B,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,OAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IAAIoiB,EAASpiB,IAAWsiB,EAMxB,IALIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,OAC7BO,WAAY,yBACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK8tB,OAEflF,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAwIhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EArIP,IAFI+iB,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACpC7B,EAAQP,EAAMoC,GACdC,EAASrkB,EADb,IAEI0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEV4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,UAAYsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAIvEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAAb,IACIsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,MAAQU,EAAO,KAC7DzD,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,MAAQU,EAAO,KAC7DzD,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,iCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKssB,OAEf1D,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GA+IhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA5IP,IAFI+iB,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACpC7B,EAAQP,EAAMoC,GACdC,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEV4gB,EAAO,IACN2B,GACCzB,GAAY,IAAM,UAAYsD,EAAK,IACpCpC,EACAoC,EACAnD,KAKFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UACGA,GAAY,IAAM,UAAYsD,EAAK,MAAQU,EAAO,KACrDzD,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,MAAQU,EAAO,KAC7DzD,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,iCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK8uB,OAEflG,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAgJhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA7IP,IAFI+iB,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACpC7B,EAAQP,EAAMoC,GACdC,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEV4gB,EAAO,IACN2B,GACCzB,GAAY,IAAM,UAAYsD,EAAK,IACpCpC,EACAoC,EACAnD,KAKFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UACGA,GAAY,IAAM,UAAYsD,EAAK,MAAQU,EAAO,KACrDzD,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UACGA,GAAY,IAAM,UAAYsD,EAAK,MAAQU,EAAO,KACrDzD,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,UAAYsD,EAAK,IAC9C/C,WAAY,iCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK8qB,OAEflC,GAAS,MACJ,CACDO,EAAS9hB,EACTylB,EAAUzlB,EACV0lB,GAAa,EACbnE,GAAS,EACT8C,EAASrkB,EACR4gB,EAAO,IAAIoB,GAAQlB,GAAY,IAAM,SAAUnoB,EAAM,QAASsoB,KAGjEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EACTsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAE/D,QAAmBzhB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CAChD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACnBZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,WAAaqC,EAAO,KACjD9B,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,WAAaqC,EAAO,KACjD9B,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,EAMxB,IALIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,2BACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK0L,YAEfkd,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA0JvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAzJH+iB,EAAUzlB,EACVskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBO,EAAQP,EAAMiB,GACdoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEV4gB,EAAO,IACN2B,GACCzB,GAAY,IAAM,gBAAkBmC,EAAO,KAC5CjB,EACAiB,EACAhC,KAKFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,KACtD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IACIC,EADA3B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UACGA,GAAY,IACb,gBACAmC,EACA,OACA6B,EACA,KACFzD,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UACGA,GAAY,IACb,gBACAmC,EACA,OACA6B,EACA,KACFzD,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,KACtD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,KACtD5B,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKmqB,sBAEfvB,GAAS,MACJ,CACDO,EAAS9hB,EACTylB,EAAUzlB,EACV0lB,GAAa,EACbnE,GAAS,EACT8C,EAASrkB,EAEV4gB,EAAO,IACNoB,GACClB,GAAY,IAAM,wBACnBnoB,EACA,uBACAsoB,KAKFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EACTsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAC/D,IAAI4D,EACJ,QAAmBrlB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CAChD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,wBAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACnBZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UACGA,GAAY,IACb,0BACAqC,EACA,KACF9B,WACE,mEACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UACGA,GAAY,IAAM,0BAA4BqC,EAAO,KACxD9B,WACE,iEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,wBAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,EAExB,IADIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,MAC9B,CACC+C,IAAQ/C,EAASmE,GAAa,GAC9BrB,EAASrkB,EACb,GAAqB,mBAAVgiB,EAAqB,CAC1BlU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,wBAC7BO,WAAY,iDACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,qBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EACIskB,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,EAEtC,CACA,IAAKnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,wBAC7BO,WAAY,0CACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAoBhhB,IAAhB5H,EAAKupB,OACPX,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA2B,kBAAhBrH,EAAKupB,OAYd,OAXAxyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,2BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,GACEA,EAAQ,CACV,QAAsBhhB,IAAlB5H,EAAK+uB,SACPnG,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA6B,mBAAlBrH,EAAK+uB,SAYd,OAXAh4B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKgvB,eAEfpG,GAAS,MACJ,CACDO,EAAS9hB,EACTqkB,EAASrkB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA2GvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,mCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAzGDgiB,EAAU1kB,EACVoiB,GAAS,EACb,QAA2B7hB,IAAvByhB,EAAM4F,aAaR,OAZAxF,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,uCACZC,OAAQ,CACNO,gBAAiB,gBAEnBnf,QAAS,kDAGN,EAEH4f,EAAStiB,EACb,GAAkC,kBAAvBgiB,EAAM4F,aAcf,OAbAl4B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IAAM,8BACrBO,WACE,2DACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM0f,EAASpiB,IAAWsiB,EAIxB,QAAc/hB,KADVgiB,EAAQP,EAAM6F,SAEhBzF,GAAS,MACJ,CACDE,EAAStiB,EACb,IACEuiB,GACiB,kBAAVA,GACNrB,MAAMC,QAAQoB,GA0Cf,OAbA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IAAM,yBACrBO,WACE,sDACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAtCP,IAAK,IAAIygB,KAAQZ,EAAO,CAClBe,EAAStjB,EACb,GAA2B,kBAAhBuiB,EAAMY,GAiBf,OAhBAzzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IACb,2BACAqC,EACA,KACF9B,WACE,2EACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KADa1C,IAAWsjB,GACX,KACf,CAiBElB,EAASpiB,IAAWsiB,CAC1B,CAiBFgC,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAsBhhB,IAAlB5H,EAAKmvB,SACPvG,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA6B,mBAAlBrH,EAAKmvB,SAYd,OAXAp4B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAuBhhB,IAAnB5H,EAAKovB,UACPxG,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA8B,mBAAnBrH,EAAKovB,UAYd,OAXAr4B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,GACEA,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKgrB,cAEfpC,GAAS,MACJ,CACDO,EAAS9hB,EACTqkB,EAASrkB,EACb,IACEgiB,GACiB,kBAAVA,GACNd,MAAMC,QAAQa,GAoIf,OAZAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WACE,2CACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAjIDgiB,EAAU1kB,EACVoiB,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAOtB,KAJU,eAARK,GACQ,OAARA,GACA5B,EAASiB,KAAKW,IAiBd,OAdAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,gBAC7BO,WACE,2DACFC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QACE,2CAGC,CAGX,CACA,GAAI0f,EAAQ,CACV,QAA0B7hB,IAAtByhB,EAAMD,YACRK,GAAS,MACJ,CACDE,EAAStiB,EACb,GAAiC,kBAAtBgiB,EAAMD,YAef,OAdAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IACb,4BACFO,WACE,kEACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM3X,KAiBhB,OAfA+X,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UACGA,GAAY,IAAM,gBACrBO,WACE,+CACFC,OAAQ,CACNO,gBAAiB,OAEnBnf,QACE,yCAGC,EAGP,GAAI1C,KADAsiB,EAAStiB,GACU,CACrB,GAAqB,kBAAVuiB,EAkCT,OAdA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IACb,oBACFO,WACE,0DACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAjCP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAgBjC,OAfA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UACGA,GAAY,IACb,oBACFO,WACE,4DACFC,OAAQ,CACNY,OAAQ,iBAEVxf,QACE,yCAGC,CAmBb,CACI0f,EAASpiB,IAAWsiB,CAE5B,CACF,CAiBAgC,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAwBhhB,IAApB5H,EAAKysB,WACP7D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA+B,mBAApBrH,EAAKysB,WAYd,OAXA11B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CAEE,IAAIE,EADN,GAAIT,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAKqvB,KAEfzG,GAAS,MACJ,CACDO,EAAS9hB,EACTqkB,EAASrkB,EACb,IACEgiB,GACiB,kBAAVA,GACNd,MAAMC,QAAQa,GA+Lf,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,OAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA7LHgiB,EAAU1kB,EACVoiB,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAUtB,KAPU,QAARK,GACQ,aAARA,GACQ,UAARA,GACQ,aAARA,GACQ,WAARA,GACA5B,EAASiB,KAAKW,IAiBd,OAdAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,OAC7BO,WACE,yCACFC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QACE,2CAGC,CAGX,CACA,GAAI0f,EAAQ,CACV,QAAmB7hB,IAAfyhB,EAAMvc,KACR2c,GAAS,MACJ,CACDE,EAAStiB,EACb,GAA0B,kBAAfgiB,EAAMvc,KAaf,OAZA/V,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WACE,yCACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAMiG,WAEhB7F,GAAS,MACJ,CAEL,GAAIpiB,KADAsiB,EAAStiB,GACU,CACrB,GAAqB,kBAAVuiB,EAgCT,OAbA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IAAM,iBACrBO,WACE,8CACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA/BP,IAAK4d,EAAQ4H,IAAIxG,KAAKa,GAepB,OAdA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UACGA,GAAY,IACb,iBACFO,WACE,gDACFC,OAAQ,CACNY,OAAQ,OAEVxf,QAAS,+BAGN,CAkBb,CACI0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CACV,QAAqB7hB,IAAjByhB,EAAMmG,OACR/F,GAAS,MACJ,CACDE,EAAStiB,EACb,GAA4B,kBAAjBgiB,EAAMmG,OAcf,OAbAz4B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IAAM,cACrBO,WACE,2CACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CACV,QAAwB7hB,IAApByhB,EAAMoG,UACRhG,GAAS,MACJ,CACDE,EAAStiB,EACb,GAC6B,mBAApBgiB,EAAMoG,UAgBb,OAdA14B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IACb,iBACFO,WACE,8CACFC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EACF,QAAsB7hB,IAAlByhB,EAAMqG,QACRjG,GAAS,MACJ,CACDE,EAAStiB,EACb,GAC2B,mBAAlBgiB,EAAMqG,QAgBb,OAdA34B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UACGA,GAAY,IACb,eACFO,WACE,4CACFC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CAEJ,CACF,CACF,CACF,CAeEgC,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CAEJ,CACF,CACF,CACF,CAEJ,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAgBF,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAhxEgB,GAixEhB2lB,EAASlE,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVud,MAAO,CACL/jB,KAAM,UAER6oB,WAAY,CACV7oB,KAAM,SACNkpB,QAAS,EACTC,kBAAkB,GAEpBH,QAAS,CACPhpB,KAAM,UAERipB,iBAAkB,CAChBjpB,KAAM,UACN2lB,SAAS,GAEXuD,QAAS,CACPlpB,KAAM,UAERmpB,iBAAkB,CAChBnpB,KAAM,UACN2lB,SAAS,GAEXyD,UAAW,CACTppB,KAAM,UACNkpB,QAAS,GAEXG,UAAW,CACTrpB,KAAM,UACNkpB,QAAS,EACTvD,QAAS,GAEX2D,QAAS,CACPtpB,KAAM,SACNqkB,OAAQ,SAEVmF,SAAU,CACRxpB,KAAM,UACNkpB,QAAS,GAEXO,SAAU,CACRzpB,KAAM,UACNkpB,QAAS,EACTvD,QAAS,GAEX0B,YAAa,CACXrnB,KAAM,UACN2lB,SAAS,GAEXgD,cAAe,CACb3oB,KAAM,UACNkpB,QAAS,GAEXR,cAAe,CACb1oB,KAAM,UACNkpB,QAAS,EACTvD,QAAS,GAEXb,SAAU,CACR9kB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,UAERypB,SAAU,EACVpC,aAAa,GAEf7B,KAAM,CACJxlB,KAAM,QACN4lB,MAAO,CAAC,EACR6D,SAAU,EACVpC,aAAa,GAEfrnB,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,QAAS,UAAW,UAAW,SAAU,SAAU,WAE5DmE,IAAK,CACHvC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZ6D,MAAO,CACL5oB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKdqC,MAAO,CACLpnB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKd6E,MAAO,CACL5pB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKda,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZve,WAAY,CACVxG,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKdE,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,2BAER,CACE/kB,KAAM,YAGV2lB,SAAS,GAEXzB,YAAa,CACXlkB,KAAM,UAERqkB,OAAQ,CACNrkB,KAAM,UAER2lB,QAAS,CAAC,EACVkE,SAAU,CACR7pB,KAAM,UACN2lB,SAAS,GAEXmE,cAAe,CACb/E,KAAM,+BAERkF,SAAU,CACRjqB,KAAM,UACN2lB,SAAS,GAEXuE,UAAW,CACTlqB,KAAM,UACN2lB,SAAS,GAEX2C,QAAS,CAAC,EACVxC,aAAc,CACZf,KAAM,uCAERwC,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEXwE,IAAK,CACHpF,KAAM,sBAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB6C,EAAS3lB,OAAS,KAClB4gB,EAAO,IAAM+E,EAWb/E,EAAO,IAVQ,CACb/iB,KAAM,SACN8kB,SAAU,CAAC,QACXE,kBAAmB,CACjB,WAAY,CACVhlB,KAAM,SACNqkB,OAAQ,mBAoBdtB,EAAO,IAfQ,CACb/iB,KAAM,SACN8kB,SAAU,CAAC,gBACXte,WAAY,CACVujB,aAAc,CACZ/pB,KAAM,UAERgqB,QAAS,CACPhqB,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,aAiCd+iB,EAAO,IA3BQ,CACb/iB,KAAM,SACNwG,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERoqB,UAAW,CACTpqB,KAAM,SACNqkB,OAAQ,OAEViG,OAAQ,CACNtqB,KAAM,UAERuqB,UAAW,CACTvqB,KAAM,UACN2lB,SAAS,GAEX6E,QAAS,CACPxqB,KAAM,UACN2lB,SAAS,IAGbX,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAGxB,IAAIgD,EAAY,WACd,IAAIrF,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAodrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAndP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CASrB,KANU,UAAR6oB,GACQ,WAARA,GACQ,YAARA,GACQ,YAARA,GACAf,EAASiB,KAAKF,IAed,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK8oB,QAEfF,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACTylB,EAAUzlB,EACV0lB,GAAa,EAEbrB,GADA9C,GAAS,EACAvhB,GACR4gB,EAAO,IAAIoB,GAAQlB,GAAY,IAAM,UAAWnoB,EAAM,SAAUsoB,KAGnEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EAAb,IACIsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAE/D,QAAmBzhB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CACpD,IAAI9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACvB,IAAIZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,YAAcqC,EAAO,KAClD9B,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,YAAcqC,EAAO,KAClD9B,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IAAIoiB,EAASpiB,IAAWsiB,EAMxB,IALIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,4BACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,GACEA,EAAQ,CACV,IA4QMS,EA3QN,QAAczhB,KADVyhB,EAAQrpB,EAAKotB,UAEfxE,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAkQvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAjQH+iB,EAAUzlB,EAAd,IACIskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAElBqC,EAASrkB,EADb,IAEI0kB,EAAU1kB,EACV2kB,GAAa,EAGbrB,GAFAgB,GAAS,EACThC,EAAStiB,EACAA,GACb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IACI0D,GAAS,EACb,IAAK,IAAInB,KAAQvC,EAAO,CAStB,KANU,WAARuC,GACQ,eAARA,GACQ,SAARA,GACQ,iBAARA,GACArE,EAASiB,KAAKoD,IAEG,CACjBmB,GAAS,EACLnY,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6CACZC,OAAQ,CACNK,mBAAoB,GAAKmD,GAE3BpiB,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIimB,EAAQ,CACV,QAAsB1lB,IAAlBgiB,EAAM2B,QACR+B,GAAS,MACJ,CACL,IAAIlB,EAAS/kB,EACb,GAA6B,kBAAlBuiB,EAAM2B,QAAsB,CACjCpW,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,aACpD5B,WAAY,gDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EAAQ,CACV,QAA0B1lB,IAAtBgiB,EAAMR,YACRkE,GAAS,MACJ,CACDlB,EAAS/kB,EACb,GAAiC,kBAAtBuiB,EAAMR,YAA0B,CACrCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,iBACpD5B,WAAY,oDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EACF,GAAIA,EAEF,QAAc1lB,KADV6iB,EAAQb,EAAM2D,eAEhBD,GAAS,MACJ,CAEL,GAAIjmB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,wDACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,sDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEEimB,EAASjmB,IAAW+kB,CAC1B,CAGN,CACF,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAK2vB,UAEf/G,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAyBvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAxBH+iB,EAAUzlB,EACVskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBqC,EAASrkB,EAOb,GANKuoB,EAASvG,EAAMiB,IAAQnC,GAAY,IAAM,cAAgBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGtFjhB,GAFsB8jB,EAAN,OAAZA,EAA4ByE,EAASvoB,OAC1B8jB,EAAQtzB,OAAO+3B,EAASvoB,SACtB1O,UAEfgzB,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CAEJ,CAEJ,CAeF,GAAe,IAAX9hB,EAAc,CAChB,IAKM4lB,EALF9D,EAAS9hB,EACTqkB,EAASrkB,EACT0kB,EAAU1kB,EACVsiB,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAsB4H,IAAjB5H,EAAKwtB,UAA0BP,EAAW,kBAAmCrlB,IAAlB5H,EAAKotB,WAA2BH,EAAW,aAAe,CACpH9X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIoiB,EAASpiB,IAAWsiB,EAWtB,OATA5yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,uCACZC,OAAQ,CAAC,EACT5e,QAAS,yBAGN,EAEP1C,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAGfQ,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CAEA,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA3gBgB,GA4gBhB8lB,EAASrE,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVod,OAAQ,CACNwD,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZuD,QAAS,CAAC,EACVJ,SAAU,CACRloB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,yBAER,CACEA,KAAM,8BAKd0F,SAAU,CACRzqB,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,4BAIZC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB2D,MAAO,CACL,CACE7D,KAAM,sCAIZkD,EAAS9lB,OAAS,KAClB4gB,EAAO,IAAMkF,EAqBblF,EAAO,IApBQ,CACb/iB,KAAM,SACNwG,WAAY,CACV6f,QAAS,CACPrmB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERP,MAAO,CAAC,EACR4oB,cAAe,CACbroB,KAAM,SACNqkB,OAAQ,kBAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAGxB,IAAIyF,EAAY,WACd,IAAI9H,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAwSrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAvSP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAUrB,KAPU,eAAR6oB,GACQ,WAARA,GACQ,SAARA,GACQ,WAARA,GACQ,iBAARA,GACAf,EAASiB,KAAKF,IAed,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAK6vB,YACPjH,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAK6vB,YAYd,OAXA94B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKwH,SAEfohB,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAoIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAnIP,IACI4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CACtB,IAAIO,EAAQP,EAAMiB,GACdoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EAEbrC,GADAgC,GAAS,EACAtkB,GACRyoB,EAASlG,GAAQzB,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAG/EjhB,GAFsB8jB,EAAN,OAAZA,EAA4B2E,EAASzoB,OAC1B8jB,EAAQtzB,OAAOi4B,EAASzoB,SACtB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAEb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CACpD,IAAI/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GACdC,EAAS/kB,EACb,GAAIA,IAAW+kB,EACb,GAAqB,kBAAV3B,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IACIoiB,EAKJ,IALIA,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,kDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EACJ,QAAczhB,KADVyhB,EAAQrpB,EAAK2sB,OAEf/D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,EAYT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAET,IAAI6kB,EAAU73B,EAAS+xB,OAAOpd,WAAWihB,MAAMjC,KAE/C9B,GAAS,EACT,IAAK,IAAI6C,EAAK,EAAGA,EAAKmD,EAAQj2B,OAAQ8yB,IACpC,GAAI5D,EAAMwB,EAAOuF,EAAQnD,IAAM,CAC7B7C,GAAS,EACT,KACF,CACF,IAAKA,EAYH,OAXA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNgF,cAAeiB,GAEjB7kB,QAAS,kDAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAK4sB,QACPhE,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,mBAAjBrH,EAAK4sB,QAYd,OAXA71B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EACF,QAA2BhhB,IAAvB5H,EAAK6sB,cACPjE,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAkC,mBAAvBrH,EAAK6sB,cAYd,OAXA91B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,kCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CACF,CACF,CAgBF,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA3TgB,GA4ThBuoB,EAAS9G,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVmkB,YAAa,CACX3qB,KAAM,UAERsC,QAAS,CACPtC,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKd0C,MAAO,CACLznB,KAAM,SACNwlB,KAAM,CAAC,OAAQ,iBAAkB,gBAAiB,eAEpDkC,QAAS,CACP1nB,KAAM,WAER2nB,cAAe,CACb3nB,KAAM,UACN2lB,SAAS,IAGbX,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExByF,EAASvoB,OAAS,KAClB4gB,EAAO,IAAM2H,EACb,IAAIE,EAAY,WACd,IAAIhI,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA8pBrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA7pBP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAsBhhB,IAAlB5H,EAAKgqB,SACPpB,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA6B,mBAAlBrH,EAAKgqB,SAYd,OAXAjzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAwBhhB,IAApB5H,EAAKysB,WACP7D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA+B,mBAApBrH,EAAKysB,WAYd,OAXA11B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAA6BhhB,IAAzB5H,EAAK0sB,gBACP9D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAoC,mBAAzBrH,EAAK0sB,gBAYd,OAXA31B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAC7BO,WAAY,oCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK2sB,OAEf/D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAqB,kBAAVgiB,EAYT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAET,IAAI6kB,EAAU73B,EAAS+xB,OAAOpd,WAAWihB,MAAMjC,KAE/C9B,GAAS,EACT,IAAK,IAAI6C,EAAK,EAAGA,EAAKmD,EAAQj2B,OAAQ8yB,IACpC,GAAI5D,EAAMwB,EAAOuF,EAAQnD,IAAM,CAC7B7C,GAAS,EACT,KACF,CACF,IAAKA,EAYH,OAXA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNgF,cAAeiB,GAEjB7kB,QAAS,kDAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAK4sB,QACPhE,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,mBAAjBrH,EAAK4sB,QAYd,OAXA71B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAA2BhhB,IAAvB5H,EAAK6sB,cACPjE,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAkC,mBAAvBrH,EAAK6sB,cAYd,OAXA91B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,kCACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK8oB,QAEfF,GAAS,MACJ,CACDO,EAAS9hB,EAAb,IACIylB,EAAUzlB,EACV0lB,GAAa,EAEbrB,GADA9C,GAAS,EACAvhB,GACR4gB,EAAO,IAAIoB,GAAQlB,GAAY,IAAM,UAAWnoB,EAAM,SAAUsoB,KAGnEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EAAb,IACIsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAE/D,QAAmBzhB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CACpD,IAAI9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACvB,IAAIZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,YAAcqC,EAAO,KAClD9B,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,YAAcqC,EAAO,KAClD9B,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IAAIoiB,EAASpiB,IAAWsiB,EAMxB,IALIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,4BACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAoEQS,EAnER,QAAczhB,KADVyhB,EAAQrpB,EAAKqc,SAEfuM,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAyDvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAxDP,GAAImH,OAAOqJ,KAAK8O,GAAO1wB,OAAS,EAY9B,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,gBACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,qCACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,4CAGN,EAEP,GAAImH,OAAOqJ,KAAK8O,GAAO1wB,OAAS,EAY9B,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,gBACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,qCACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,4CAGN,EAEH+iB,EAAUzlB,EAAd,IACIskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBqC,EAASrkB,EASb,GAPG4gB,EAAO,IAAIoB,EAAMiB,IAAQnC,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAIrFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,UAEfgzB,EAAStkB,IAAWqkB,GACX,KACf,CAiBF9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EACF,GAAIA,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAKotB,UAEfxE,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAkQvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAjQH+iB,EAAUzlB,EACVskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAElBqC,EAASrkB,EADb,IAEI0kB,EAAU1kB,EACV2kB,GAAa,EAGbrB,GAFAgB,GAAS,EACThC,EAAStiB,EACAA,GACb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIyD,EAAUhmB,EACVimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EAAO,CAStB,KANU,WAARuC,GACQ,eAARA,GACQ,SAARA,GACQ,iBAARA,GACArE,EAASiB,KAAKoD,IAEG,CACjBmB,GAAS,EACLnY,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6CACZC,OAAQ,CACNK,mBAAoB,GAAKmD,GAE3BpiB,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIimB,EAAQ,CACV,QAAsB1lB,IAAlBgiB,EAAM2B,QACR+B,GAAS,MACJ,CACL,IAAIlB,EAAS/kB,EACb,GAA6B,kBAAlBuiB,EAAM2B,QAAsB,CACjCpW,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,aACpD5B,WAAY,gDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EAAQ,CACV,QAA0B1lB,IAAtBgiB,EAAMR,YACRkE,GAAS,MACJ,CACDlB,EAAS/kB,EACb,GAAiC,kBAAtBuiB,EAAMR,YAA0B,CACrCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,iBACpD5B,WAAY,oDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EACF,GAAIA,EAEF,QAAc1lB,KADV6iB,EAAQb,EAAM2D,eAEhBD,GAAS,MACJ,CAEL,GAAIjmB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,wDACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,sDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEEimB,EAASjmB,IAAW+kB,CAC1B,CAGN,CACF,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDgmB,EAAUhmB,EACVimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CAGN,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAeF,GAAe,IAAX9hB,EAAc,CACZ8hB,EAAS9hB,EACTqkB,EAASrkB,EACT0kB,EAAU1kB,EACVsiB,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAsB4H,IAAjB5H,EAAKwtB,UAA0BP,EAAW,kBAAmCrlB,IAAlB5H,EAAKotB,WAA2BH,EAAW,aAAe,CACpH9X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIoiB,EAASpiB,IAAWsiB,EAWtB,OATA5yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,uCACZC,OAAQ,CAAC,EACT5e,QAAS,yBAGN,EAEP1C,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAGfQ,EAAStkB,IAAWqkB,EAExB,GADI9C,EAASvhB,IAAW8hB,EACZ,CACNA,EAAS9hB,EACTqkB,EAASrkB,EACT0kB,EAAU1kB,EACVsiB,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAqB4H,IAAhB5H,EAAK8oB,SAAyBmE,EAAW,iBAAiCrlB,IAAjB5H,EAAKqc,UAA0B4Q,EAAW,YAAc,CAChH9X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIoiB,EAASpiB,IAAWsiB,EAWtB,OATA5yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qCACZC,OAAQ,CAAC,EACT5e,QAAS,yBAGN,EAEP1C,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAEbY,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,SAEjC4H,IAAhB5H,EAAK8oB,SAAyBmE,EAAW,WAAY,CACnD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,kDACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEEoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAClC,IAEMiB,EAFFtD,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,SAEhC4H,IAAjB5H,EAAKqc,UAA0B4Q,EAAW,YAAa,CACrD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,kDACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEF,GAAIA,IAAWsiB,EAAQ,CACjBgB,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAmB4H,IAAf5H,EAAK2sB,OAAmC,SAAW,CACjDxX,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADa9jB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAqB4H,IAAjB5H,EAAK4sB,SAAqC,WAAa,CACrDzX,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADa9jB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAA2B4H,IAAvB5H,EAAK6sB,eAA2C,iBAAmB,CACjE1X,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADa9jB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAqB4H,IAAjB5H,EAAKwtB,SAAqC,WAAa,CACrDrY,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,MAInB,GADa9jB,IAAWsjB,EACZ,CACNA,EAAStjB,EACTgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAAsB4H,IAAlB5H,EAAKotB,UAAsC,YAAc,CACvDjY,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIimB,EAASjmB,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,KAIrB,CACF,CACF,CACF,CACF,CAMA,IALI1B,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,uCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,MAIjBQ,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CACF,CAEA,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAr+BgB,GAs+BhByoB,EAAShH,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAER8kB,SAAU,CACR9kB,KAAM,UACN2lB,SAAS,GAEX4B,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEX6B,gBAAiB,CACfxnB,KAAM,UACN2lB,SAAS,GAEX8B,MAAO,CACLznB,KAAM,SACNwlB,KAAM,CAAC,UACPG,QAAS,UAEX+B,QAAS,CACP1nB,KAAM,WAER2nB,cAAe,CACb3nB,KAAM,UACN2lB,SAAS,GAEX/B,OAAQ,CACNwD,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZ5N,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,2BAER2D,cAAe,EACfC,cAAe,GAEjBL,QAAS,CAAC,EACVJ,SAAU,CACRloB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,yBAER,CACEA,KAAM,+BAMhBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB2D,MAAO,CACL,CACE7D,KAAM,oCAER,CACEA,KAAM,oCAIZ6F,EAASzoB,OAAS,KAClB4gB,EAAO,IAAM6H,EAOb7H,EAAO,IANQ,CACbmB,YAAa,8CACbyF,IAAK,CACH7E,SAAU,CAAC,UAAW,cA8C1B/B,EAAO,IA1CQ,CACbmB,YAAa,sEACbyF,IAAK,CACH7E,SAAU,CAAC,SAAU,YAEvBsC,MAAO,CACL,CACEtC,SAAU,CAAC,WAEb,CACEA,SAAU,CAAC,WACXZ,YAAa,wDACb0E,MAAO,CACL,CACEe,IAAK,CACH7E,SAAU,CAAC,WAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,aAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,mBAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,aAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,kBAQvB,IAAI0D,EAAW,CACbtE,YAAa,qBACbkD,MAAO,CACL,CACElD,YAAa,oBACbY,SAAU,CAAC,YACXte,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,SAETiC,MAAO,CACLjC,KAAM,CAAC,SAAU,QAAS,UAC1BG,QAAS,UAEXb,SAAU,CACRU,KAAM,EAAC,MAIb,CACEtB,YAAa,qBACb1d,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,UAETiC,MAAO,CACLjC,KAAM,CAAC,OAAQ,iBAAkB,gBAAiB,cAClDG,QAAS,UAIf,CACEzB,YAAa,sBACb1d,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,WAETiC,MAAO,CACLjC,KAAM,CAAC,UACPG,QAAS,YAIf,CACEzB,YAAa,sBACb1d,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,WAETiC,MAAO,CACLjC,KAAM,CAAC,QACPG,QAAS,YAMnB5C,EAAO,IAAMyF,EACb,IAAIrB,EAAY,WACd,IAAIvE,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAi3BrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA/2BL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK+vB,MAEfnH,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAkChB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/BP,IAFA,IAAI+iB,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACxC,IAAIC,EAASrkB,EACb,GAAyB,kBAAdgiB,EAAMoC,GAYf,OAXA10B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAAWsD,EAAK,IAC7C/C,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KADI4hB,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAqBhhB,IAAjB5H,EAAKurB,QACP3C,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA4B,kBAAjBrH,EAAKurB,QAYd,OAXAx0B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKgrB,cAEfpC,GAAS,MACJ,CACDO,EAAS9hB,EACTqkB,EAASrkB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA8GvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,2CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5GL,IAAIgiB,EAAU1kB,EACVoiB,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAEtB,KADuC,eAARK,GAAiC,OAARA,GAAiB5B,EAASiB,KAAKW,IAcrF,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,2DACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CACV,QAA0B7hB,IAAtByhB,EAAMD,YACRK,GAAS,MACJ,CACL,IAAIE,EAAStiB,EACb,GAAiC,kBAAtBgiB,EAAMD,YAYf,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,4BAC7BO,WAAY,kEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM3X,KAchB,OAZA+X,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,+CACZC,OAAQ,CACNO,gBAAiB,OAEnBnf,QAAS,yCAGN,EAGP,GAAI1C,KADAsiB,EAAStiB,GACU,CACrB,GAAqB,kBAAVuiB,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,4DACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EAASpiB,IAAWsiB,CAE5B,CACF,CAgBJ,IAAIgC,EAAStkB,IAAWqkB,EACpB9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKgwB,YACPpH,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKgwB,YAYd,OAXAj5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK4rB,YAEfhD,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAiKhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EAhKH6e,GAAS,EACb,GAAIS,EAAM1wB,OAAS,EAAG,CACpB,IACEkzB,EADElS,EAAI0P,EAAM1wB,OAEdmzB,EAAO,KAAOnS,KACZ,IAAKkS,EAAIlS,EAAGkS,KACV,GAAIhE,EAAMwB,EAAM1P,GAAI0P,EAAMwC,IAAK,CAC7BjD,GAAS,EACT,MAAMkD,CACR,CAGN,CACA,IAAKlD,EAaH,OAZA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,cACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,sCACZC,OAAQ,CACNhP,EAAGA,EACHkS,EAAGA,GAEL9hB,QAAS,6CAA+C8hB,EAAI,QAAUlS,EAAI,qBAGvE,EAIP,IAFImT,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACxC,IAAI7B,EAAQP,EAAMoC,GAGdO,GAFAN,EAASrkB,EACT0kB,EAAU1kB,GACG,GACbskB,GAAS,EACThC,EAAStiB,EACR4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,eAAiBsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAG9EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAAb,IACIsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CACpD,IAAI/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,IACnD/C,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,MAAQU,EAAO,KAClEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,MAAQU,EAAO,KAClEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,IACnD/C,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,eAAiBsD,EAAK,IACnD/C,WAAY,sCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAgBA9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKiwB,aAEfrH,GAAS,MACJ,CACDO,EAAS9hB,EACTylB,EAAUzlB,EADd,IAEI0lB,GAAa,EACbnE,GAAS,EACT8C,EAASrkB,EACR6oB,EAAS7G,GAAQlB,GAAY,IAAM,eAAgBnoB,EAAM,cAAesoB,KAG3EjhB,GAFsB8jB,EAAN,OAAZA,EAA4B+E,EAAS7oB,OAC1B8jB,EAAQtzB,OAAOq4B,EAAS7oB,SACtB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EACTsiB,EAAStiB,EACb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAC/D,IAAI4D,EACJ,QAAmBrlB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CAChD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACnBZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,iBAAmBqC,EAAO,KACvD9B,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAAmBqC,EAAO,KACvD9B,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,EAMxB,IALIgC,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,iCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAuBhhB,IAAnB5H,EAAKmwB,UAaP,OAZAvH,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,aAEnBnf,QAAS,+CAGN,EAEHof,EAAS9hB,EAQf,GAPO+oB,EAASpwB,EAAKmwB,WAAYhI,GAAY,IAAM,aAAcnoB,EAAM,YAAasoB,KAGhFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BiF,EAAS/oB,OAC1B8jB,EAAQtzB,OAAOu4B,EAAS/oB,SACtB1O,QAEfiwB,EAASvhB,IAAW8hB,EAEd,CAEV,QAAcvhB,KADVyhB,EAAQrpB,EAAKqwB,WAEfzH,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAoIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAnIH+iB,EAAUzlB,EACVskB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBO,EAAQP,EAAMiB,GACdoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACRipB,EAAS1G,GAAQzB,GAAY,IAAM,eAAiBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGjFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BmF,EAASjpB,OAC1B8jB,EAAQtzB,OAAOy4B,EAASjpB,SACtB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACTsjB,EAAStjB,EACb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,OAAS6B,EAAO,KACrEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,OAAS6B,EAAO,KACrEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,oDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAwBhhB,IAApB5H,EAAKysB,WACP7D,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA+B,mBAApBrH,EAAKysB,WAYd,OAXA11B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IA4FMS,EA3FN,QAAczhB,KADVyhB,EAAQrpB,EAAKuwB,UAEf3H,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAkFhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/EP,IAFI+iB,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CAEpCC,EAASrkB,EACTsiB,EAAStiB,EACb,KAHIuiB,EAAQP,EAAMoC,KAGY,kBAAV7B,GAAuBrB,MAAMC,QAAQoB,GAyDvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,IACjD/C,WAAY,yCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAtDP,IAAK,IAAIygB,KAAQZ,EAAO,CAClBa,EAAQb,EAAMY,GACdG,EAAStjB,EACb,IAAIkhB,MAAMC,QAAQiC,GAkChB,OAXA1zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,MAAQjB,EAAO,KAChE9B,WAAY,8DACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/BP,IAFA,IAES6gB,EAAK,EAAGA,EAAKH,EAAM9xB,OAAQiyB,IAAM,CACxC,IAAIwB,EAAS/kB,EACb,GAAyB,kBAAdojB,EAAMG,GAYf,OAXA7zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,MAAQjB,EAAO,MAAQI,EAAK,IAC7ElC,WAAY,oEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KADa1C,IAAW+kB,GACX,KACf,CAgBF,KADa/kB,IAAWsjB,GACX,KACf,CAeElB,EAASpiB,IAAWsiB,EAExB,KADIgC,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAKwrB,SAEf5C,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAyBhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EAtBP,IAFI+iB,EAAUzlB,EAELokB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACpCC,EAASrkB,EAOb,GANK4gB,EAAO,GAAGoB,EAAMoC,IAAMtD,GAAY,IAAM,YAAcsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAG9EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,GAAG5gB,OAC3B8jB,EAAQtzB,OAAOowB,EAAO,GAAG5gB,SACvB1O,UAEfgzB,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAiBJ,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAp4BgB,GAq4BhBglB,EAASvD,OAAS,CAChB5jB,KAAM,SACN8kB,SAAU,CAAC,aACXte,WAAY,CACVqkB,KAAM,CACJ7qB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,WAGVqmB,QAAS,CACPrmB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAER8lB,aAAc,CACZf,KAAM,uCAER+F,YAAa,CACX9qB,KAAM,UAER0mB,WAAY,CACV1mB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,6BAIZsC,aAAa,GAEf0D,YAAa,CACX3D,MAAO,CACL,CACErC,KAAM,6BAER,CACEA,KAAM,6BAIZkG,UAAW,CACTlG,KAAM,2BAERoG,UAAW,CACTnrB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,0BAER,CACEA,KAAM,8BAKdwC,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEX0F,SAAU,CACRrrB,KAAM,QACN4lB,MAAO,CACLb,KAAM,sCAGVuB,QAAS,CACPtmB,KAAM,QACN4lB,MAAO,CACLb,KAAM,0BAIZC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBkC,EAAShlB,OAAS,KAClB4gB,EAAO,IAAMoE,EACb,IAAI6D,EAAY,WACd,IAAIpI,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAgIrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA9HL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KADuC,eAAR6oB,GAAiC,WAARA,GAA6B,YAARA,GAAsBf,EAASiB,KAAKF,IAc/G,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EAAQrpB,EAAKqc,QACjB,QAAczU,IAAVyhB,EAaF,OAZAT,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,WAEnBnf,QAAS,6CAGN,EAEHof,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAyBvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAtBP,IAAK,IAAIugB,KAAQjB,EAAO,CACtB,IAAIqC,EAASrkB,EAOb,GANK4gB,EAAO,IAAIoB,EAAMiB,IAAQnC,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGvFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,UAEN0O,IAAWqkB,GACX,KACf,CAiBJ,GAFM9C,EAASvhB,IAAW8hB,EAGxB,QAAsBvhB,IAAlB5H,EAAKgqB,SACPpB,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAA6B,mBAAlBrH,EAAKgqB,SAYd,OAXAjzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,WAER6E,QAAS,uBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CAiBJ,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAnJgB,GAoJhB6oB,EAASpH,OAAS,CAChB5jB,KAAM,SACN8kB,SAAU,CAAC,WACXte,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAERmX,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,4BAGVD,SAAU,CACR9kB,KAAM,UACN2lB,SAAS,IAGbX,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB+F,EAAS7oB,OAAS,KAClB4gB,EAAO,IAAMiI,EACb,IAAIE,EAAY,WACd,IAAItI,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACtByI,EAAW,IAAIzI,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAkSrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAjSP,GAAImH,OAAOqJ,KAAKva,GAAMrH,OAAS,EAY7B,OAXA5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,gBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,kBACZC,OAAQ,CACNuE,MAAO,GAETnjB,QAAS,4CAGN,EAEP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KADuC,WAAR6oB,GAAqB2H,EAASzH,KAAKF,IAASf,EAASiB,KAAKF,IAcvF,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK6qB,SAEfjC,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACTylB,EAAUzlB,EACV0lB,GAAa,EAEbrB,GADA9C,GAAS,EACAvhB,GACRopB,EAASpH,GAAQlB,GAAY,IAAM,WAAYnoB,EAAM,UAAWsoB,KAGnEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BsF,EAASppB,OAC1B8jB,EAAQtzB,OAAO44B,EAASppB,SACtB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EAEb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAE/D,QAAmBzhB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CACpD,IAAI9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACvB,IAAIZ,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,aAAeqC,EAAO,KACnD9B,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAeqC,EAAO,KACnD9B,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIskB,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,6BACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CACE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,MAGfvC,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EACF,IAAK,IAAIC,KAAQ7oB,EACf,GAAIwwB,EAASzH,KAAKF,GAAO,CACvB,IAAIQ,EAAQrpB,EAAK6oB,GACbM,EAAS9hB,EACTylB,EAAUzlB,EACV0lB,GAAa,EACbnE,GAAS,EACT8C,EAASrkB,EACR4gB,EAAO,IAAIoB,GAAQlB,GAAY,IAAM,KAAOU,EAAO,KAAM7oB,EAAM6oB,EAAMP,KAGxEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEfgzB,EAAStkB,IAAWqkB,KACZ9C,EAASmE,GAAa,GAC9BrB,EAASrkB,EAEb,GAAIgiB,GAA0B,kBAAVA,IAAuBd,MAAMC,QAAQa,GAAQ,CAC/D,IAAI4D,EACJ,QAAmBrlB,IAAfyhB,EAAMY,OAAuBgD,EAAW,SAAU,CAChD9X,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,KAAOU,EAAO,KAC3CH,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAK+D,GAExBljB,QAAS,kCAAoCkjB,EAAW,KAE1C,OAAZ9B,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAImjB,KAAQnB,EACf,GAAIiC,EAASvC,KAAKyB,GAAO,CACvB,IACIG,EADAf,EAAQP,EAAMmB,GAElB,GAAInjB,KADAsjB,EAAStjB,GAEX,GAAqB,kBAAVuiB,GACT,IAAKjC,EAAQ,iBAAiBoB,KAAKa,GAAQ,CACrCzU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,KAAOU,EAAO,OAAS2B,EAAO,KAC3D9B,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,KAAOU,EAAO,OAAS2B,EAAO,KAC3D9B,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAWsjB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDxV,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,KAAOU,EAAO,KAC3CH,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IACIskB,EAKJ,IALIA,EAAStkB,IAAWqkB,IACVqB,EAAYnE,GAAS,EAE7B+C,IAAQ/C,EAASmE,GAAa,IAE/BnE,EAAQ,CACPzT,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,KAAOU,EAAO,KAC3CH,WAAY,oEACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAASylB,EACO,OAAZ3B,IACE2B,EAAS3B,EAAQxyB,OAASm0B,EACzB3B,EAAU,QAGfvC,EAASvhB,IAAW8hB,GACX,KACf,MAAOP,GAAS,CAGtB,CAiBJ,OADA7xB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CArTgB,GAsThB+oB,EAAStH,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVmf,QAAS,CACPyB,MAAO,CACL,CACErC,KAAM,0BAER,CACEA,KAAM,8BAKdC,kBAAmB,CACjB,uBAAwB,CACtBoC,MAAO,CACL,CACErC,KAAM,0BAER,CACEA,KAAM,6BAIZ,MAAO,CAAC,GAEV2D,cAAe,EACfzD,sBAAsB,GAExBiG,EAAS/oB,OAAS,KAClB4gB,EAAO,IAAMmI,EACb,IAAIK,EAAY,WACd,IAAI3I,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA+YrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA7YL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CASrB,KANU,eAAR6oB,GACQ,WAARA,GACQ,WAARA,GACQ,SAARA,GACAf,EAASiB,KAAKF,IAed,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YAaP,OAZAR,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,eAEnBnf,QAAS,iDAGN,EAEP,IAAIof,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAIX,GAFM6e,EAASvhB,IAAW8hB,EAEd,CAEV,QAAcvhB,KADVyhB,EAAQrpB,EAAKwH,SAEfohB,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAoIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAnIP,IACI4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CACtB,IAAIO,EAAQP,EAAMiB,GACdoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EAEbrC,GADAgC,GAAS,EACAtkB,GACR4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGjFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAEb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CACpD,IAAI/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,kDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAmCMS,EAlCN,QAAczhB,KADVyhB,EAAQrpB,EAAKqc,SAEfuM,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAyBvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAvBH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBqC,EAASrkB,EAOb,GANK4gB,EAAO,IAAIoB,EAAMiB,IAAQnC,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGvFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,UAEfgzB,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAK0wB,OAEf9H,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAoIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAlIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EAAO,CAClBO,EAAQP,EAAMiB,GACdoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACRspB,EAAS/G,GAAQzB,GAAY,IAAM,WAAamC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAG7EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BwF,EAAStpB,OAC1B8jB,EAAQtzB,OAAO84B,EAAStpB,SACtB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAEb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,KACjD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAGL,IAAK,IAAI8kB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IACIC,EADA3B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,OAAS6B,EAAO,KACjEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,OAAS6B,EAAO,KACjEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADaA,IAAW+kB,GACX,KACf,MAAgB,CAEpB,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,KACjD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IACIoiB,EAKJ,IALIA,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,KACjD5B,WAAY,gDACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CACF,CAiBJ,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAlagB,GAmahBopB,EAAS3H,OAAS,CAChB5jB,KAAM,SACN8kB,SAAU,CAAC,eACXte,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAERsC,QAAS,CACPtC,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKd5N,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,4BAGVyG,MAAO,CACLxrB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,sBAER,CACEA,KAAM,+BAMhBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBsG,EAASppB,OAAS,KAClB4gB,EAAO,IAAMwI,EACb,IAAIE,EAAY,WACd,IAAI7I,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA+JrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA9JP,IAAI6mB,EAAUvpB,EACVuhB,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKgwB,YACPpH,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKgwB,YAYd,OAXAj5B,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK6wB,cAEfjI,GAAS,MACJ,CAEL,GAAIvhB,KADA8hB,EAAS9hB,GACU,CACrB,GAAqB,kBAAVgiB,EA2BT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,iCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKM,GAYjC,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,mCACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EACJ,QAAczhB,KADVyhB,EAAQrpB,EAAK4rB,YAEfhD,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAevD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,GACEA,EAAQ,CACV,QAAyBhhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EACF,QAAoBhhB,IAAhB5H,EAAK8wB,OACPlI,GAAS,MACJ,CACDO,EAAS9hB,EACR4gB,EAAO,GAAGjoB,EAAK8wB,QAAS3I,GAAY,IAAM,UAAWnoB,EAAM,SAAUsoB,KAGxEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,GAAG5gB,OAC3B8jB,EAAQtzB,OAAOowB,EAAO,GAAG5gB,SACvB1O,QAEfiwB,EAASvhB,IAAW8hB,CAC1B,CAEJ,CAEJ,CACF,CACF,CAeF,GAAe,IAAX9hB,EAAc,CACZupB,EAAUvpB,EACV8hB,EAAS9hB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QACwB4H,IAArB5H,EAAKgwB,aAAyC,qBACxBpoB,IAAtB5H,EAAK6wB,cAA0C,gBAChD,CACA,IAAI1b,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADIuhB,EAASvhB,IAAW8hB,EAWtB,OATApyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,QACZC,OAAQ,CAAC,EACT5e,QAAS,yBAGN,EAEP1C,EAASupB,EACO,OAAZzF,IACEyF,EAASzF,EAAQxyB,OAASi4B,EACzBzF,EAAU,KAGrB,CAEA,OADAp0B,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CArNgB,GAsNhBspB,EAAS7H,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVskB,YAAa,CACX9qB,KAAM,UAER2rB,aAAc,CACZ3rB,KAAM,SACNqkB,OAAQ,iBAEVqC,WAAY,CACV1mB,KAAM,SACNilB,qBAAsB,CAAC,GAEzB8F,YAAa,CAAC,EACd7G,YAAa,CACXlkB,KAAM,UAER4rB,OAAQ,CACN7G,KAAM,yBAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB0E,IAAK,CACHzF,YAAa,wDACbY,SAAU,CAAC,cAAe,kBAG9B2G,EAAStpB,OAAS,KAClB4gB,EAAO,IAAM0I,EACb,IAAIL,EAAY,WACd,IAAIxI,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA4BrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAzBP,IAAK,IAAI8e,KAAQ7oB,EAAM,CAErB,IAD+B8nB,EAASiB,KAAKF,GAC1B,CACjB,IAAIM,EAAS9hB,EAOb,GANK4gB,EAAO,IAAIjoB,EAAK6oB,IAAQV,GAAY,IAAM,KAAOU,EAAO,KAAM7oB,EAAM6oB,EAAMP,KAG7EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,UAEN0O,IAAW8hB,GACX,KACf,CACF,CAgBF,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA/CgB,GAgDhBipB,EAASxH,OAAS,CAChB5jB,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,0BAERC,kBAAmB,CACjB,MAAO,CAAC,IAGZoG,EAASjpB,OAAS,KAClB4gB,EAAO,IAAMqI,EACb,IAAIS,EAAY,WACd,IAAIjJ,EAAW,IAAIC,OAAO,OAItBuD,GAHW,IAAIvD,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,aAEtBiJ,GADW,IAAIjJ,OAAO,wBACX,IAAIA,OAAO,0BACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA07CrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAz7CP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKixB,SAEfrI,GAAS,MACJ,CACL,IAAIO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EArIP,IACI4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CACvB,IAAIV,EAAQP,EAAMiB,GACdoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EAEbrC,GADAgC,GAAS,EACAtkB,GACR4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGjFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAEb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CACpD,IAAI/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACL,IACIimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACvB,IAAI1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,iFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKmwB,WAEfvH,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,OAAS6B,EAAO,KACrEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,OAAS6B,EAAO,KACrEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAWb,GAVK4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,eAAiBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGnFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,mFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK4rB,YAEfhD,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,cAC7BO,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,KACtD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,OAAS6B,EAAO,KACtEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,OAAS6B,EAAO,KACtEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,KACtD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAWb,GAVK4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,gBAAkBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGpFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,gBAAkBmC,EAAO,KACtD5B,WAAY,oFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKotB,UAEfxE,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAoQvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAlQH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,OAAS6B,EAAO,KACpEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAEb,GAAIuiB,GAA0B,kBAAVA,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE3D0D,GAAS,EACb,IAAK,IAAInB,KAAQvC,EAAO,CAStB,KANU,WAARuC,GACQ,eAARA,GACQ,SAARA,GACQ,iBAARA,GACArE,EAASiB,KAAKoD,IAEG,CACjBmB,GAAS,EACLnY,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6CACZC,OAAQ,CACNK,mBAAoB,GAAKmD,GAE3BpiB,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIimB,EAAQ,CACV,QAAsB1lB,IAAlBgiB,EAAM2B,QACR+B,GAAS,MACJ,CACL,IAAIlB,EAAS/kB,EACb,GAA6B,kBAAlBuiB,EAAM2B,QAAsB,CACjCpW,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,aACpD5B,WAAY,gDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EAAQ,CACV,QAA0B1lB,IAAtBgiB,EAAMR,YACRkE,GAAS,MACJ,CACDlB,EAAS/kB,EACb,GAAiC,kBAAtBuiB,EAAMR,YAA0B,CACrCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,iBACpD5B,WAAY,oDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIimB,EAASjmB,IAAW+kB,CAC1B,CACA,GAAIkB,EACF,GAAIA,EAEF,QAAc1lB,KADV6iB,EAAQb,EAAM2D,eAEhBD,GAAS,MACJ,CAEL,GAAIjmB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,wDACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,mBACpD5B,WAAY,sDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEEimB,EAASjmB,IAAW+kB,CAC1B,CAGN,CACF,CACF,KAAO,CACDjX,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOA,IALIoiB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,cAAgBmC,EAAO,KACpD5B,WAAY,kFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKkxB,eAEftI,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,iBAC7BO,WAAY,kCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,mBAAqBmC,EAAO,KACzD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,mBAAqBmC,EAAO,OAAS6B,EAAO,KACzEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAAqBmC,EAAO,OAAS6B,EAAO,KACzEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAAqBmC,EAAO,KACzD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAWb,GAVK4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,mBAAqBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGvFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,mBAAqBmC,EAAO,KACzD5B,WAAY,uFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKwH,SAEfohB,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,OAAS6B,EAAO,KACnEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAWb,GAVK4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,aAAemC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGjFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,aAAemC,EAAO,KACnD5B,WAAY,iFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKmxB,iBAEfvI,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAuIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAC7BO,WAAY,oCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EArIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,qBAAuBmC,EAAO,KAC3D5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,qBAAuBmC,EAAO,OAAS6B,EAAO,KAC3EzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAAuBmC,EAAO,OAAS6B,EAAO,KAC3EzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAAuBmC,EAAO,KAC3D5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAWb,GAVK+pB,EAASxH,GAAQzB,GAAY,IAAM,qBAAuBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGvFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BiG,EAAS/pB,OAC1B8jB,EAAQtzB,OAAOu5B,EAAS/pB,SACtB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,qBAAuBmC,EAAO,KAC3D5B,WACE,yFACFC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAgJMS,EA/IN,QAAczhB,KADVyhB,EAAQrpB,EAAK0wB,OAEf9H,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,SAC7BO,WAAY,0BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAE/D,QAAmBhiB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,KACjD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,OAAS6B,EAAO,KACjEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,OAAS6B,EAAO,KACjEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,KACjD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EAWb,GAVK4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,WAAamC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAG/EjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,WAAamC,EAAO,KACjD5B,WAAY,+EACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAKqwB,WAEfzH,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAsIvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAC7BO,WAAY,8BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EApIH4hB,GAAS,EACb,IAAK,IAAIrB,KAAQjB,EACf,GAAI2H,EAASjI,KAAKuB,GAAO,CAEnBoB,EAASrkB,EACT0kB,EAAU1kB,EACV2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EAEb,IAPIuiB,EAAQP,EAAMiB,KAOY,kBAAVV,IAAuBrB,MAAMC,QAAQoB,GAAQ,CAC/D,IAAIsC,EACJ,QAAmBtkB,IAAfgiB,EAAMK,OAAuBiC,EAAW,SAAU,CAChD/W,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,mCACZC,OAAQ,CACNO,gBAAiB,GAAKgD,GAExBniB,QAAS,kCAAoCmiB,EAAW,KAE1C,OAAZf,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEDimB,GAAS,EACb,IAAK,IAAInB,KAAQvC,EACf,GAAI0B,EAASvC,KAAKoD,GAAO,CACnB1B,EAAQb,EAAMuC,GAElB,GAAI9kB,KADA+kB,EAAS/kB,GAEX,GAAqB,kBAAVojB,GACT,IAAK9C,EAAQ,iBAAiBoB,KAAK0B,GAAQ,CACrCtV,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,OAAS6B,EAAO,KACrEzD,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,OAAS6B,EAAO,KACrEzD,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,KADIimB,EAASjmB,IAAW+kB,GACX,KACf,MAAOkB,GAAS,CAEpB,CACF,KAAO,CACDnY,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,+BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,EAEIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAClC,IAMIvC,EANAE,EAAStiB,EAWb,GAVK4gB,EAAO,IAAI2B,GAAQzB,GAAY,IAAM,eAAiBmC,EAAO,KAAMjB,EAAOiB,EAAMhC,KAGnFjhB,GAFsB8jB,EAAN,OAAZA,EAA4BlD,EAAO,IAAI5gB,OAC5B8jB,EAAQtzB,OAAOowB,EAAO,IAAI5gB,SACxB1O,SAEf8wB,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,IAE/BL,EAAQ,CACPxW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,eAAiBmC,EAAO,KACrD5B,WAAY,mFACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,GAPE9jB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,QAGfQ,EAAStkB,IAAWqkB,GACX,KACf,MAAOC,GAAS,EAgBhB/C,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAgBF,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA78CgB,GA88ChB0pB,EAASjI,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACVulB,QAAS,CACP/rB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,+BAMhBkG,UAAW,CACTjrB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,8BAMhB2B,WAAY,CACV1mB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,+BAMhBmD,SAAU,CACRloB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,6BAMhBiH,cAAe,CACbhsB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,iCAMhBziB,QAAS,CACPtC,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,4BAMhBkH,gBAAiB,CACfjsB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,oCAMhByG,MAAO,CACLxrB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,0BAMhBoG,UAAW,CACTnrB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,+BAOlBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB4G,EAAS1pB,OAAS,KAClB4gB,EAAO,IAAM8I,EACb,IAAIK,EAAY,WACd,IAAItJ,EAAW,IAAIC,OAAO,OAOtBsJ,GANW,IAAItJ,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,+BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,OACIO,IAAb0gB,IAAwBA,EAAWtoB,GACvC,IAAI4wB,EAAUvpB,EACViqB,GAAa,EACbC,GAAS,EACTpI,EAAS9hB,EACTqkB,EAASrkB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAE1D,IAAI+rB,EAAU1kB,EACVoiB,GAAS,EACb,IAAK,IAAIC,KAAQ1pB,EAAM,CASrB,KANU,QAAR0pB,GACQ,QAARA,GACQ,MAARA,GACQ,eAARA,GACA5B,EAASiB,KAAKW,IAEG,CACjBD,GAAS,EACT,IAAItU,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,0DACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIoiB,EAAQ,CAEV,QAAc7hB,KADVyhB,EAAQrpB,EAAKkF,MACQ,CACvBukB,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,8CACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,wCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACL,IAAIsiB,EAAStiB,EACb,GAAqB,kBAAVgiB,EAAoB,CACzBlU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IAAImqB,EAAUC,EAAS/lB,WAAWxG,KAAKwlB,KAEvCjB,GAAS,EACT,IAAK,IAAIiI,EAAK,EAAGA,EAAKF,EAAQ74B,OAAQ+4B,IACpC,GAAI7J,EAAMwB,EAAOmI,EAAQE,IAAM,CAC7BjI,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPtU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,0DACZC,OAAQ,CACNgF,cAAe6D,GAEjBznB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CACV,QAAkB7hB,IAAd5H,EAAK8M,KAAoB,CAC3B2c,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,8CACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,wCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDsiB,EAAStiB,EACb,GAAyB,kBAAdrH,EAAK8M,KAAmB,CAC7BqI,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVyhB,EAAQrpB,EAAKwsB,IACQ,CACvB/C,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,8CACZC,OAAQ,CACNO,gBAAiB,MAEnBnf,QAAS,sCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDsiB,EAAStiB,EACb,GAAqB,kBAAVgiB,EAAoB,CACzBlU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,wDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACImqB,EAAUC,EAAS/lB,WAAW8gB,GAAG9B,KAErCjB,GAAS,EACT,IAASiI,EAAK,EAAGA,EAAKF,EAAQ74B,OAAQ+4B,IACpC,GAAI7J,EAAMwB,EAAOmI,EAAQE,IAAM,CAC7BjI,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPtU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,MAC7BO,WAAY,wDACZC,OAAQ,CACNgF,cAAe6D,GAEjBznB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EACF,QAAyB7hB,IAArB5H,EAAKopB,YACPK,GAAS,MACJ,CACDE,EAAStiB,EACb,GAAgC,kBAArBrH,EAAKopB,YAA0B,CACpCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CAEJ,CACF,CACF,CAEJ,KAAO,CACDxU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,0CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IAAIskB,EAAStkB,IAAWqkB,GACpB9C,EAASvhB,IAAW8hB,KACZoI,EAASD,GAAa,GAC9BnI,EAAS9hB,EACTqkB,EAASrkB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAEtD+rB,EAAU1kB,EACVoiB,GAAS,EACb,IAAK,IAAIC,KAAQ1pB,EAAM,CASrB,KANU,UAAR0pB,GACQ,gBAARA,GACQ,eAARA,GACQ,QAARA,GACA5B,EAASiB,KAAKW,IAEG,CACjBD,GAAS,EACLtU,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,wDACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIoiB,EAAQ,CACV,QAAoB7hB,IAAhB5H,EAAK2xB,OAAsB,CAC7BlI,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,4CACZC,OAAQ,CACNO,gBAAiB,UAEnBnf,QAAS,0CAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDsiB,EAAStiB,EACb,GAA2B,kBAAhBrH,EAAK2xB,OAAqB,CAC/Bxc,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CACV,QAA0B7hB,IAAtB5H,EAAK4xB,aACPnI,GAAS,MACJ,CACDE,EAAStiB,EACb,GAAiC,kBAAtBrH,EAAK4xB,aAA2B,CACrCzc,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,gEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CACV,QAAyB7hB,IAArB5H,EAAKopB,YACPK,GAAS,MACJ,CACDE,EAAStiB,EACb,GAAgC,kBAArBrH,EAAKopB,YAA0B,CACpCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,+DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAEF,QAAc7hB,KADVyhB,EAAQrpB,EAAKkF,MACQ,CACvBukB,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,4CACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,wCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDsiB,EAAStiB,EACb,GAAqB,kBAAVgiB,EAAoB,CACzBlU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,wDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACImqB,EAAUK,EAASnmB,WAAWxG,KAAKwlB,KAEvCjB,GAAS,EACT,IAASiI,EAAK,EAAGA,EAAKF,EAAQ74B,OAAQ+4B,IACpC,GAAI7J,EAAMwB,EAAOmI,EAAQE,IAAM,CAC7BjI,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPtU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,wDACZC,OAAQ,CACNgF,cAAe6D,GAEjBznB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CAEJ,CACF,CACF,CAEJ,KAAO,CACDxU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,wCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,GAAIA,IAAWqkB,EAAQ,CACjBK,EAAU1kB,EAAd,IACI2kB,GAAa,EACbL,GAAS,EACThC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAC5D,IAAI8xB,EAAUzqB,EAGd,QAAcO,KADVyhB,EAAQrpB,EAAK2xB,SAEN,MACJ,CACL,IAAIhH,EAAStjB,EACb,GAAqB,kBAAVgiB,GACT,IAAKgI,EAAStI,KAAKM,GAAQ,CACrBlU,EAAM,CACRsT,QAAS,UACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,qEACZC,OAAQ,CACN6F,QAAS,8BAEXzkB,QAAS,qDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,kEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEF,CACF,EACIoiB,EAASpiB,IAAWsiB,KACZgC,EAASK,GAAa,GAC9BrC,EAAStiB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CACxD8xB,EAAUzqB,EAGd,QAAcO,KADVyhB,EAAQrpB,EAAK2xB,SAEN,MACJ,CACDhH,EAAStjB,EAAb,IACIgmB,EAAUhmB,EACV+kB,EAAS/kB,EACb,GAAqB,kBAAVgiB,GACT,IAAKgI,EAAStI,KAAKM,GAAQ,CACrBlU,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEA,GADaA,IAAW+kB,EACZ,CACNjX,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,UAC7BO,WAAY,iEACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASgmB,EACO,OAAZlC,IACEkC,EAASlC,EAAQxyB,OAAS00B,EACzBlC,EAAU,KAIrB,CACF,CACA,GAAI9jB,IAAWsiB,EAAQ,CACjBmI,EAAUzqB,EACVsjB,EAAStjB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAErD,QAA0B4H,IAAtB5H,EAAK4xB,cAA0C,gBAAkB,CAC/Dzc,EAAM,CAAC,EACK,OAAZgW,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAGF,GADaA,IAAWsjB,EACZ,CACNxV,EAAM,CACRsT,QAAS,MACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,+CACZC,OAAQ,CAAC,EACT5e,QAAS,uBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACEA,EAASyqB,EACO,OAAZ3G,IACE2G,EAAS3G,EAAQxyB,OAASm5B,EACzB3G,EAAU,KAGrB,CAMA,IALI1B,EAASpiB,IAAWsiB,IACVqC,EAAYL,GAAS,EAE7BlC,IAAQkC,EAASK,GAAa,GAE/BL,EAYHtkB,EAAS0kB,EACO,OAAZZ,IACEY,EAASZ,EAAQxyB,OAASozB,EACzBZ,EAAU,UAfN,CACPhW,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yCACZC,OAAQ,CAAC,EACT5e,QAAS,4CAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAOF,CACIskB,EAAStkB,IAAWqkB,EAExB,IADI9C,EAASvhB,IAAW8hB,IACVmI,EAAYC,GAAS,MAC9B,CACC3I,IAAQ2I,EAASD,GAAa,GAC9BnI,EAAS9hB,EAOb,GANK0qB,EAAS/xB,EAAMmoB,GAAY,GAAIC,EAAYC,EAAoBC,KAGlEjhB,GAFsB8jB,EAAN,OAAZA,EAA4B4G,EAAS1qB,OAC1B8jB,EAAQtzB,OAAOk6B,EAAS1qB,SACtB1O,SAEfiwB,EAASvhB,IAAW8hB,IACVmI,EAAYC,GAAS,MAC9B,CACC3I,IAAQ2I,EAASD,GAAa,GAC9BnI,EAAS9hB,EACTqkB,EAASrkB,EACb,GAAIrH,GAAwB,kBAATA,IAAsBuoB,MAAMC,QAAQxoB,GAAO,CAEtD+rB,EAAU1kB,EACVoiB,GAAS,EACb,IAAK,IAAIC,KAAQ1pB,EAAM,CAQrB,KALU,QAAR0pB,GACQ,oBAARA,GACQ,eAARA,GACA5B,EAASiB,KAAKW,IAEG,CACjBD,GAAS,EACLtU,EAAM,CACRsT,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,iEACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,yCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACA,KACF,CACF,CACA,GAAIoiB,EAAQ,CAEV,QAAc7hB,KADVyhB,EAAQrpB,EAAKkF,MACQ,CACvBukB,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,wCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CACDsiB,EAAStiB,EACb,GAAqB,kBAAVgiB,EAAoB,CACzBlU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACImqB,EAAUQ,EAAStmB,WAAWxG,KAAKwlB,KAEvCjB,GAAS,EACT,IAASiI,EAAK,EAAGA,EAAKF,EAAQ74B,OAAQ+4B,IACpC,GAAI7J,EAAMwB,EAAOmI,EAAQE,IAAM,CAC7BjI,GAAS,EACT,KACF,CACF,IAAKA,EAAQ,CACPtU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,iEACZC,OAAQ,CACNgF,cAAe6D,GAEjBznB,QAAS,gDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CACV,IAAIJ,EACJ,QAAczhB,KADVyhB,EAAQrpB,EAAKiyB,kBACQ,CACvBxI,GAAS,EACLtU,EAAM,CACRsT,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,qDACZC,OAAQ,CACNO,gBAAiB,oBAEnBnf,QAAS,oDAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,KAAO,CAEL,GAAIA,KADAsiB,EAAStiB,GAEX,GAAqB,kBAAVgiB,GACT,IAAK1B,EAAQ,iBAAiBoB,KAAKM,GAAQ,CACrClU,EAAM,CACRsT,QAAS,SACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,+EACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,uCAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,MACK,CACD8N,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,6EACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CAEEoiB,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EACF,QAAyB7hB,IAArB5H,EAAKopB,YACPK,GAAS,MACJ,CACDE,EAAStiB,EACb,GAAgC,kBAArBrH,EAAKopB,YAA0B,CACpCjU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,wEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACIoiB,EAASpiB,IAAWsiB,CAC1B,CAEJ,CACF,CAEJ,KAAO,CACDxU,EAAM,CACRsT,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,iDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,oBAEK,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,GACF,CACA,IACIuhB,EADA+C,EAAStkB,IAAWqkB,GACpB9C,EAASvhB,IAAW8hB,IACVmI,EAAYC,GAAS,EAE7B3I,IAAQ2I,EAASD,GAAa,EAEtC,CACF,CACA,IAAKC,EAAQ,CACPpc,EAAM,CACRsT,QAAS,QACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,UACZC,OAAQ,CAAC,EACT5e,QAAS,4CAMX,OAJgB,OAAZohB,EAAkBA,EAAU,CAAChW,GAC5BgW,EAAQ/R,KAAKjE,GAClB9N,IACAtQ,EAASsQ,OAAS8jB,GACX,CACT,CAQA,OAPE9jB,EAASupB,EACO,OAAZzF,IACEyF,EAASzF,EAAQxyB,OAASi4B,EACzBzF,EAAU,MAGnBp0B,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CAvxBgB,GAwxBhB+pB,EAAStI,OAAS,CAChBwD,MAAO,CACL,CACErC,KAAM,sCAER,CACEA,KAAM,oCAER,CACEA,KAAM,sCAER,CACEA,KAAM,+CAIZmH,EAAS/pB,OAAS,KAClB4gB,EAAO,IAAMmJ,EACb,IAAIK,EAAW,CACbvsB,KAAM,SACN8kB,SAAU,CAAC,OAAQ,OAAQ,MAC3Bte,WAAY,CACVxG,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,WAET5d,KAAM,CACJ5H,KAAM,UAERsnB,GAAI,CACFtnB,KAAM,SACNwlB,KAAM,CAAC,SAAU,QAAS,WAE5BtB,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBlC,EAAO,IAAMwJ,EACb,IAAII,EAAW,CACb3sB,KAAM,SACN8kB,SAAU,CAAC,SAAU,QACrBte,WAAY,CACVimB,OAAQ,CACNzsB,KAAM,UAER0sB,aAAc,CACZ1sB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERA,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,UAGXR,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtBmC,MAAO,CACL,CACElD,YAAa,SACb1d,WAAY,CACVimB,OAAQ,CACNzsB,KAAM,SACNspB,QAAS,gCAIf,CACEpF,YAAa,aACbyF,IAAK,CACH7E,SAAU,CAAC,iBAEbte,WAAY,CACVimB,OAAQ,CACN9C,IAAK,CACH3pB,KAAM,SACNspB,QAAS,mCAOrBvG,EAAO,IAAM4J,EACb,IAAIE,EAAY,WACd,IAAIjK,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA4IrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1IL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KADuC,QAAR6oB,GAA0B,SAARA,GAA2B,eAARA,GAAyBf,EAASiB,KAAKF,IAczG,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CACV,IAAIS,EAAQrpB,EAAKkF,KACjB,QAAc0C,IAAVyhB,EAaF,OAZAT,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,0CAGN,EAEP,IAAIof,EAAS9hB,EACb,GAAqB,kBAAVgiB,EAYT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAET,IAAI6kB,EAAU73B,EAAS+xB,OAAOpd,WAAWxG,KAAKwlB,KAE9C9B,GAAS,EACT,IAAK,IAAI6C,EAAK,EAAGA,EAAKmD,EAAQj2B,OAAQ8yB,IACpC,GAAI5D,EAAMwB,EAAOuF,EAAQnD,IAAM,CAC7B7C,GAAS,EACT,KACF,CACF,IAAKA,EAYH,OAXA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNgF,cAAeiB,GAEjB7kB,QAAS,kDAGN,EAIX,GAFM6e,EAASvhB,IAAW8hB,EAEd,CACV,QAAmBvhB,IAAf5H,EAAKkyB,MAaP,OAZAtJ,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,SAEnBnf,QAAS,2CAGN,EAEHof,EAAS9hB,EAQf,GAPO8qB,EAASnyB,EAAKkyB,OAAQ/J,GAAY,IAAM,SAAUnoB,EAAM,QAASsoB,KAGpEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BgH,EAAS9qB,OAC1B8jB,EAAQtzB,OAAOs6B,EAAS9qB,SACtB1O,QAEfiwB,EAASvhB,IAAW8hB,EAGxB,QAAyBvhB,IAArB5H,EAAKopB,YACPR,GAAS,MACJ,CACDO,EAAS9hB,EACb,GAAgC,kBAArBrH,EAAKopB,YAYd,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,eAC7BO,WAAY,gCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL6e,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CAiBJ,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA/JgB,GAgKhB0qB,EAASjJ,OAAS,CAChB5jB,KAAM,SACN8kB,SAAU,CAAC,OAAQ,SACnBte,WAAY,CACVxG,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,WAETwH,MAAO,CACLjI,KAAM,4BAERb,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB4H,EAAS1qB,OAAS,KAClB4gB,EAAO,IAAM8J,EACb,IAAII,EAAY,WACd,IAAIrK,EAAW,IAAIC,OAAO,OACX,IAAIA,OAAO,uBACX,IAAIA,OAAO,QACX,IAAIA,OAAO,oDACX,IAAIA,OAAO,YACX,IAAIA,OAAO,wBACX,IAAIA,OAAO,yBACX,IAAIA,OAAO,8BAC1B,OAAO,SAAShxB,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAIvE,IAAItoB,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GA+4BrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA94BP,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CASrB,KANU,YAAR6oB,GACQ,YAARA,GACQ,qBAARA,GACQ,qBAARA,GACAf,EAASiB,KAAKF,IAed,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKoyB,UAEfxJ,GAAS,MACJ,CACL,IAAIO,EAnCG,EAqCP,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA+LvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,uCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA7LL,IACI0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAQtB,KALU,oBAARK,GACQ,cAARA,GACQ,UAARA,GACA5B,EAASiB,KAAKW,IAed,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,uDACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAMgJ,kBAchB,OAZA5I,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,2CACZC,OAAQ,CACNO,gBAAiB,oBAEnBnf,QAAS,sDAGN,EAGP,GApFD,KAmFK4f,EAnFL,GAoFwB,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,6BAC7BO,WAAY,mEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,6BAC7BO,WAAY,qEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CAGF,GAFM0f,EAnHL,IAmHyBE,EAEd,CAEV,QAAc/hB,KADVgiB,EAAQP,EAAMiJ,YAEhB7I,GAAS,MACJ,CAEL,GA3HH,KA0HOE,EA1HP,GA2H0B,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,uBAC7BO,WAAY,6DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,uBAC7BO,WAAY,+DACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EA1JP,IA0J2BE,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM/gB,QAchB,OAZAmhB,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,2CACZC,OAAQ,CACNO,gBAAiB,UAEnBnf,QAAS,4CAGN,EAEP,IAAI4f,EA7KT,EA8KK,IAAIC,GAA0B,kBAAVA,GAAuBrB,MAAMC,QAAQoB,GAkCvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAC7BO,WAAY,yDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA/BP,IAAK,IAAIygB,KAAQZ,EAAO,CACtB,IAAIe,EAlLb,EAmLS,GAA2B,kBAAhBf,EAAMY,GAYf,OAXAzzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAAuBqC,EAAO,KAC3D9B,WAAY,8EACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KAlMT,IAiMiC4gB,GACX,KACf,CAeElB,EAlNT,IAkN6BE,CAE5B,CACF,CACF,CAiBAf,EAvOG,IAuOiBO,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKuyB,UAEf3J,GAAS,MACJ,CACDO,EA9OC,EAgPL,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA+LvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,uCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5LD0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAQtB,KALU,YAARK,GACQ,cAARA,GACQ,UAARA,GACA5B,EAASiB,KAAKW,IAed,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,uDACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAMmJ,UAchB,OAZA/I,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,2CACZC,OAAQ,CACNO,gBAAiB,YAEnBnf,QAAS,8CAGN,EAGP,GA/RH,KA8RO4f,EA9RP,GA+R0B,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,2DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,6DACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CAGF,GAFM0f,EA9TP,IA8T2BE,EAEd,CAEV,QAAc/hB,KADVgiB,EAAQP,EAAMiJ,YAEhB7I,GAAS,MACJ,CAEL,GAtUL,KAqUSE,EArUT,GAsU4B,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,uBAC7BO,WAAY,6DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,uBAC7BO,WAAY,+DACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EArWT,IAqW6BE,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM/gB,QAchB,OAZAmhB,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,2CACZC,OAAQ,CACNO,gBAAiB,UAEnBnf,QAAS,4CAGN,EAEH4f,EAxXX,EAyXO,IAAIC,GAA0B,kBAAVA,GAAuBrB,MAAMC,QAAQoB,GAkCvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,mBAC7BO,WAAY,yDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA/BP,IAAK,IAAIygB,KAAQZ,EAAO,CAClBe,EA7Xf,EA8XW,GAA2B,kBAAhBf,EAAMY,GAYf,OAXAzzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAAuBqC,EAAO,KAC3D9B,WAAY,8EACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KA7YX,IA4YmC4gB,GACX,KACf,CAeElB,EA7ZX,IA6Z+BE,CAE5B,CACF,CACF,CAiBAf,EAlbC,IAkbmBO,CAC1B,CACA,GAAIP,EAAQ,CACV,IA2MMS,EA1MN,QAAczhB,KADVyhB,EAAQrpB,EAAKyyB,mBAEf7J,GAAS,MACJ,CACDO,EAzbD,EA2bH,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA+LvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,2CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5LD0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAQtB,KALU,YAARK,GACQ,cAARA,GACQ,UAARA,GACA5B,EAASiB,KAAKW,IAed,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,2DACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAMmJ,UAchB,OAZA/I,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,+CACZC,OAAQ,CACNO,gBAAiB,YAEnBnf,QAAS,8CAGN,EAGP,GA1eL,KAyeS4f,EAzeT,GA0e4B,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,8BAC7BO,WAAY,+DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,8BAC7BO,WAAY,iEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CAGF,GAFM0f,EAzgBT,IAygB6BE,EAEd,CAEV,QAAc/hB,KADVgiB,EAAQP,EAAMiJ,YAEhB7I,GAAS,MACJ,CAEL,GAjhBP,KAghBWE,EAhhBX,GAihB8B,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gCAC7BO,WAAY,iEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,gCAC7BO,WAAY,mEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EAhjBX,IAgjB+BE,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM/gB,QAchB,OAZAmhB,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,+CACZC,OAAQ,CACNO,gBAAiB,UAEnBnf,QAAS,4CAGN,EAEH4f,EAnkBb,EAokBS,IAAIC,GAA0B,kBAAVA,GAAuBrB,MAAMC,QAAQoB,GAkCvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,4BAC7BO,WAAY,6DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA/BP,IAAK,IAAIygB,KAAQZ,EAAO,CAClBe,EAxkBjB,EAykBa,GAA2B,kBAAhBf,EAAMY,GAYf,OAXAzzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,8BAAgCqC,EAAO,KACpE9B,WAAY,kFACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KAxlBb,IAulBqC4gB,GACX,KACf,CAeElB,EAxmBb,IAwmBiCE,CAE5B,CACF,CACF,CAiBAf,EA7nBD,IA6nBqBO,CAC1B,CACA,GAAIP,EAEF,QAAchhB,KADVyhB,EAAQrpB,EAAK0yB,mBAEf9J,GAAS,MACJ,CACDO,EApoBH,EAsoBD,IAAIE,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GAqPvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,gDACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAlPD0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAStB,KANU,oBAARK,GACQ,YAARA,GACQ,cAARA,GACQ,UAARA,GACA5B,EAASiB,KAAKW,IAed,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,gEACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAMgJ,kBAchB,OAZA5I,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,oDACZC,OAAQ,CACNO,gBAAiB,oBAEnBnf,QAAS,sDAGN,EAGP,GAtrBP,KAqrBW4f,EArrBX,GAsrB8B,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,sCAC7BO,WAAY,4EACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,sCAC7BO,WAAY,8EACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CAGF,GAFM0f,EArtBX,IAqtB+BE,EAEd,CAEV,QAAc/hB,KADVgiB,EAAQP,EAAMmJ,UAchB,OAZA/I,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,oDACZC,OAAQ,CACNO,gBAAiB,YAEnBnf,QAAS,8CAGN,EAGP,GAzuBT,KAwuBa4f,EAxuBb,GAyuBgC,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,8BAC7BO,WAAY,oEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,8BAC7BO,WAAY,sEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CAGF,GAFM0f,EAxwBb,IAwwBiCE,EAEd,CAEV,QAAc/hB,KADVgiB,EAAQP,EAAMiJ,YAEhB7I,GAAS,MACJ,CAEL,GAhxBX,KA+wBeE,EA/wBf,GAgxBkC,CACrB,GAAqB,kBAAVC,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gCAC7BO,WAAY,sEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,gCAC7BO,WAAY,wEACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EA/yBf,IA+yBmCE,CAC1B,CACA,GAAIF,EAAQ,CACV,IAAIG,EACJ,QAAchiB,KADVgiB,EAAQP,EAAM/gB,QAchB,OAZAmhB,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,qBAC7BO,WAAY,oDACZC,OAAQ,CACNO,gBAAiB,UAEnBnf,QAAS,4CAGN,EAEH4f,EAl0BjB,EAm0Ba,IAAIC,GAA0B,kBAAVA,GAAuBrB,MAAMC,QAAQoB,GAmCvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,4BAC7BO,WAAY,kEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAhCP,IAAK,IAAIygB,KAAQZ,EAAO,CAClBe,EAv0BrB,EAw0BiB,GAA2B,kBAAhBf,EAAMY,GAaf,OAZAzzB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,8BAAgCqC,EAAO,KACpE9B,WACE,uFACFC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KAx1BjB,IAu1ByC4gB,GACX,KACf,CAeElB,EAx2BjB,IAw2BqCE,CAE5B,CACF,CACF,CACF,CAiBAf,EA93BH,IA83BuBO,CAC1B,CAEJ,CACF,CACF,CAgBF,OADApyB,EAASsQ,OAn5BK,MAo5BPA,CACT,CACF,CAj6BgB,GAk6BhB8qB,EAASrJ,OAAS,CAChB5jB,KAAM,SACNwG,WAAY,CACV0mB,SAAU,CACRnI,KAAM,mCAERsI,SAAU,CACRtI,KAAM,mCAERwI,kBAAmB,CACjBxI,KAAM,uCAERyI,kBAAmB,CACjBzI,KAAM,6CAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBgI,EAAS9qB,OAAS,KAClB4gB,EAAO,IAAMkK,EAyBblK,EAAO,IAxBQ,CACb/iB,KAAM,SACN8kB,SAAU,CAAC,mBAAoB,UAC/Bte,WAAY,CACV2mB,iBAAkB,CAChBntB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GA2BxBlC,EAAO,IAxBQ,CACb/iB,KAAM,SACN8kB,SAAU,CAAC,WAAY,UACvBte,WAAY,CACV8mB,SAAU,CACRttB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GA2BxBlC,EAAO,IAxBQ,CACb/iB,KAAM,SACN8kB,SAAU,CAAC,WAAY,UACvBte,WAAY,CACV8mB,SAAU,CACRttB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GA+BxBlC,EAAO,IA5BQ,CACb/iB,KAAM,SACN8kB,SAAU,CAAC,mBAAoB,WAAY,UAC3Cte,WAAY,CACV2mB,iBAAkB,CAChBntB,KAAM,SACNqkB,OAAQ,iBAEViJ,SAAU,CACRttB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAGxB,IAAI6H,EAAW,CACb9sB,KAAM,SACN8kB,SAAU,CAAC,OAAQ,oBACnBte,WAAY,CACVxG,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,kBAETuH,iBAAkB,CAChB/sB,KAAM,SACNqkB,OAAQ,iBAEVH,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAGxB,OADAlC,EAAO,IAAM+J,EACN,SAASj7B,EAASiJ,EAAMmoB,EAAUC,EAAYC,EAAoBC,GAEvE,IAAI6C,EAAU,KACV9jB,EAAS,EAEb,QADiBO,IAAb0gB,IAAwBA,EAAWtoB,IACnCA,GAAwB,kBAATA,GAAsBuoB,MAAMC,QAAQxoB,GAkdrD,OAXAjJ,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,SACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAhdL,IACI6e,GAAS,EACb,IAAK,IAAIC,KAAQ7oB,EAAM,CAErB,KAD+BjJ,EAAS+xB,OAAOpd,WAAWmd,IAASf,EAASiB,KAAKF,IAc/E,OAZAD,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,yBACZC,OAAQ,CACNK,mBAAoB,GAAKH,GAE3B9e,QAAS,2CAGN,CAGX,CACA,GAAI6e,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAK2yB,SAcf,OAZA/J,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,WAEnBnf,QAAS,6CAGN,EAEP,IAAIof,EAAS9hB,EACb,GAAqB,kBAAVgiB,EA2BT,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAKie,EAASe,KAAKM,GAYjB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,UACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,+BACZC,OAAQ,CACN6F,QAAS,uBAEXzkB,QAAS,gDAGN,EAkBb,GAFM6e,EAASvhB,IAAW8hB,EAEd,CACV,QAAkBvhB,IAAd5H,EAAKwY,KAaP,OAZAoQ,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,QAEnBnf,QAAS,0CAGN,EAEHof,EAAS9hB,EAQf,GAPO6gB,EAAQloB,EAAKwY,MAAO2P,GAAY,IAAM,QAASnoB,EAAM,OAAQsoB,KAGhEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BjD,EAAQ7gB,OACzB8jB,EAAQtzB,OAAOqwB,EAAQ7gB,SACrB1O,QAEfiwB,EAASvhB,IAAW8hB,EAEd,CAEV,QAAcvhB,KADVyhB,EAAQrpB,EAAKgrB,cAEfpC,GAAS,MACJ,CACDO,EAAS9hB,EAAb,IACIqkB,EAASrkB,EACb,IAAIgiB,GAA0B,kBAAVA,GAAuBd,MAAMC,QAAQa,GA8GvD,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,2CACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA5GL,IACI0f,GAAS,EACb,IAAK,IAAIC,KAAQL,EAAO,CAEtB,KADuC,eAARK,GAAiC,OAARA,GAAiB5B,EAASiB,KAAKW,IAcrF,OAZAD,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,uBACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,2DACZC,OAAQ,CACNK,mBAAoB,GAAKU,GAE3B3f,QAAS,2CAGN,CAGX,CACA,GAAI0f,EAAQ,CACV,QAA0B7hB,IAAtByhB,EAAMD,YACRK,GAAS,MACJ,CACL,IAAIE,EAAStiB,EACb,GAAiC,kBAAtBgiB,EAAMD,YAYf,OAXAryB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,4BAC7BO,WAAY,kEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAEL0f,EAASpiB,IAAWsiB,CAC1B,CACA,GAAIF,EAAQ,CAEV,QAAc7hB,KADVgiB,EAAQP,EAAM3X,KAchB,OAZA+X,GAAS,EACT1yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,gBAC7BO,WAAY,+CACZC,OAAQ,CACNO,gBAAiB,OAEnBnf,QAAS,yCAGN,EAGP,GAAI1C,KADAsiB,EAAStiB,GACU,CACrB,GAAqB,kBAAVuiB,EA2BT,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,0DACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EA1BP,IAAK4d,EAAQ,iBAAiBoB,KAAKa,GAYjC,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,SACTN,UAAWA,GAAY,IAAM,oBAC7BO,WAAY,4DACZC,OAAQ,CACNY,OAAQ,iBAEVxf,QAAS,yCAGN,CAgBb,CACI0f,EAASpiB,IAAWsiB,CAE5B,CACF,CAiBAf,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKwrB,SAEf5C,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAyBhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,WAC7BO,WAAY,4BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EAtBP,IAFA,IAES0hB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACpCC,EAASrkB,EAOb,GANK+iB,EAAQf,EAAMoC,IAAMtD,GAAY,IAAM,YAAcsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAG5EjhB,GAFsB8jB,EAAN,OAAZA,EAA4Bf,EAAQ/iB,OACzB8jB,EAAQtzB,OAAOuyB,EAAQ/iB,SACrB1O,UAEN0O,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CAEV,QAAchhB,KADVyhB,EAAQrpB,EAAKuwB,UAEf3H,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAkFhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,YAC7BO,WAAY,6BACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/EP,IAAS0hB,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACxC,IAAI7B,EACA8B,EAASrkB,EACTsiB,EAAStiB,EACb,KAHIuiB,EAAQP,EAAMoC,KAGY,kBAAV7B,GAAuBrB,MAAMC,QAAQoB,GAyDvD,OAXA7yB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,IACjD/C,WAAY,yCACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAtDP,IAAK,IAAIygB,KAAQZ,EAAO,CACtB,IAAIa,EAAQb,EAAMY,GACdG,EAAStjB,EACb,IAAIkhB,MAAMC,QAAQiC,GAkChB,OAXA1zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,MAAQjB,EAAO,KAChE9B,WAAY,8DACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EA/BP,IAFA,IAES6gB,EAAK,EAAGA,EAAKH,EAAM9xB,OAAQiyB,IAAM,CACxC,IAAIwB,EAAS/kB,EACb,GAAyB,kBAAdojB,EAAMG,GAYf,OAXA7zB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,aAAesD,EAAK,MAAQjB,EAAO,MAAQI,EAAK,IAC7ElC,WAAY,oEACZC,OAAQ,CACNzjB,KAAM,UAER6E,QAAS,sBAGN,EAGT,KADa1C,IAAW+kB,GACX,KACf,CAgBF,KADa/kB,IAAWsjB,GACX,KACf,CAeElB,EAASpiB,IAAWsiB,EAExB,KADatiB,IAAWqkB,GACX,KACf,CAeE9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,IAAIS,EACJ,QAAczhB,KADVyhB,EAAQrpB,EAAK+vB,MAEfnH,GAAS,MACJ,CACDO,EAAS9hB,EACb,IAAIkhB,MAAMC,QAAQa,GAsDhB,OAXAtyB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,OACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,yBACZC,OAAQ,CACNzjB,KAAM,SAER6E,QAAS,qBAGN,EArDH6e,GAAS,EACb,GAAIS,EAAM1wB,OAAS,EAAG,CACpB,IACEkzB,EADElS,EAAI0P,EAAM1wB,OAEdmzB,EAAO,KAAOnS,KACZ,IAAKkS,EAAIlS,EAAGkS,KACV,GAAIhE,EAAMwB,EAAM1P,GAAI0P,EAAMwC,IAAK,CAC7BjD,GAAS,EACT,MAAMkD,CACR,CAGN,CACA,IAAKlD,EAaH,OAZA7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,cACTN,UAAWA,GAAY,IAAM,QAC7BO,WAAY,gCACZC,OAAQ,CACNhP,EAAGA,EACHkS,EAAGA,GAEL9hB,QAAS,6CAA+C8hB,EAAI,QAAUlS,EAAI,qBAGvE,EAIP,IAAS8R,EAAK,EAAGA,EAAKpC,EAAM1wB,OAAQ8yB,IAAM,CACpCC,EAASrkB,EAOb,GANK0jB,EAAQ1B,EAAMoC,IAAMtD,GAAY,IAAM,SAAWsD,EAAK,IAAKpC,EAAOoC,EAAInD,KAGzEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BJ,EAAQ1jB,OACzB8jB,EAAQtzB,OAAOkzB,EAAQ1jB,SACrB1O,UAEN0O,IAAWqkB,GACX,KACf,CAgBA9C,EAASvhB,IAAW8hB,CAC1B,CACA,GAAIP,EAAQ,CACV,QAAmBhhB,IAAf5H,EAAK4yB,MAaP,OAZAhK,GAAS,EACT7xB,EAASsQ,OAAS,CAChB,CACEohB,QAAS,WACTN,UAAWA,GAAY,IAAM,GAC7BO,WAAY,aACZC,OAAQ,CACNO,gBAAiB,SAEnBnf,QAAS,2CAGN,EAEHof,EAAS9hB,EAQf,GAPO4jB,EAAQjrB,EAAK4yB,OAAQzK,GAAY,IAAM,SAAUnoB,EAAM,QAASsoB,KAGnEjhB,GAFsB8jB,EAAN,OAAZA,EAA4BF,EAAQ5jB,OACzB8jB,EAAQtzB,OAAOozB,EAAQ5jB,SACrB1O,QAEfiwB,EAASvhB,IAAW8hB,EAGxB,QAAwBvhB,IAApB5H,EAAK6yB,WACPjK,GAAS,MACJ,CACDO,EAAS9hB,EACR0pB,EAAS/wB,EAAK6yB,YAAa1K,GAAY,IAAM,cAAenoB,EAAM,aAAcsoB,KAGnFjhB,GAFsB8jB,EAAN,OAAZA,EAA4B4F,EAAS1pB,OAC1B8jB,EAAQtzB,OAAOk5B,EAAS1pB,SACtB1O,QAEfiwB,EAASvhB,IAAW8hB,CAC1B,CAEJ,CACF,CACF,CACF,CACF,CACF,CACF,CAiBJ,OADApyB,EAASsQ,OAAS8jB,EACA,IAAX9jB,CACT,CACF,CA5gcgB,GA6gchBtQ,EAAS+xB,OAAS,CAChB7wB,GAAI,sDACJ66B,QAAS,0CACT1J,YAAa,kGACblkB,KAAM,SACN8kB,SAAU,CAAC,UAAW,OAAQ,SAC9Bte,WAAY,CACVinB,QAAS,CACPztB,KAAM,SACNspB,QAAS,uBAEXhW,KAAM,CACJyR,KAAM,sBAERe,aAAc,CACZf,KAAM,uCAERuB,QAAS,CACPtmB,KAAM,QACN4lB,MAAO,CACLb,KAAM,yBAGVsG,SAAU,CACRrrB,KAAM,QACN4lB,MAAO,CACLb,KAAM,sCAGV8F,KAAM,CACJ7qB,KAAM,QACN4lB,MAAO,CACLb,KAAM,qBAERsC,aAAa,GAEfqG,MAAO,CACL3I,KAAM,uBAER4I,WAAY,CACV5I,KAAM,6BAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB4I,YAAa,CACXC,UAAW,CACT9tB,KAAM,SACN8kB,SAAU,CAAC,QACXE,kBAAmB,CACjB,WAAY,CACVhlB,KAAM,SACNqkB,OAAQ,mBAId0J,KAAM,CACJ/tB,KAAM,SACN8kB,SAAU,CAAC,QAAS,WACpBte,WAAY,CACVud,MAAO,CACL/jB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERokB,eAAgB,CACdpkB,KAAM,SACNqkB,OAAQ,iBAEVC,QAAS,CACPS,KAAM,yBAERH,QAAS,CACPG,KAAM,yBAERF,QAAS,CACP7kB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB+I,QAAS,CACPhuB,KAAM,SACNwG,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERwM,IAAK,CACHxM,KAAM,SACNqkB,OAAQ,iBAEVM,MAAO,CACL3kB,KAAM,SACNqkB,OAAQ,UAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBgJ,QAAS,CACPjuB,KAAM,SACN8kB,SAAU,CAAC,QACXte,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERwM,IAAK,CACHxM,KAAM,SACNqkB,OAAQ,kBAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBiJ,OAAQ,CACNluB,KAAM,SACN8kB,SAAU,CAAC,OACXte,WAAY,CACVgG,IAAK,CACHxM,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERmlB,UAAW,CACTnlB,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,kCAIZC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBkJ,eAAgB,CACdnuB,KAAM,SACN8kB,SAAU,CAAC,WACXte,WAAY,CACVgf,KAAM,CACJxlB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,WAGV2lB,QAAS,CACP3lB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBmJ,WAAY,CACVpuB,KAAM,SACNwG,WAAY,CACVulB,QAAS,CACP/rB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,+BAMhBkG,UAAW,CACTjrB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,8BAMhB2B,WAAY,CACV1mB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,+BAMhBmD,SAAU,CACRloB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,6BAMhBiH,cAAe,CACbhsB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,iCAMhBziB,QAAS,CACPtC,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,4BAMhBkH,gBAAiB,CACfjsB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,oCAMhByG,MAAO,CACLxrB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,0BAMhBoG,UAAW,CACTnrB,KAAM,SACNglB,kBAAmB,CACjB,wBAAyB,CACvBoC,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,+BAOlBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBoJ,OAAQ,CACNruB,KAAM,SACNwG,WAAY,CACVud,MAAO,CACL/jB,KAAM,UAER6oB,WAAY,CACV7oB,KAAM,SACNkpB,QAAS,EACTC,kBAAkB,GAEpBH,QAAS,CACPhpB,KAAM,UAERipB,iBAAkB,CAChBjpB,KAAM,UACN2lB,SAAS,GAEXuD,QAAS,CACPlpB,KAAM,UAERmpB,iBAAkB,CAChBnpB,KAAM,UACN2lB,SAAS,GAEXyD,UAAW,CACTppB,KAAM,UACNkpB,QAAS,GAEXG,UAAW,CACTrpB,KAAM,UACNkpB,QAAS,EACTvD,QAAS,GAEX2D,QAAS,CACPtpB,KAAM,SACNqkB,OAAQ,SAEVmF,SAAU,CACRxpB,KAAM,UACNkpB,QAAS,GAEXO,SAAU,CACRzpB,KAAM,UACNkpB,QAAS,EACTvD,QAAS,GAEX0B,YAAa,CACXrnB,KAAM,UACN2lB,SAAS,GAEXgD,cAAe,CACb3oB,KAAM,UACNkpB,QAAS,GAEXR,cAAe,CACb1oB,KAAM,UACNkpB,QAAS,EACTvD,QAAS,GAEXb,SAAU,CACR9kB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,UAERypB,SAAU,EACVpC,aAAa,GAEf7B,KAAM,CACJxlB,KAAM,QACN4lB,MAAO,CAAC,EACR6D,SAAU,EACVpC,aAAa,GAEfrnB,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,QAAS,UAAW,UAAW,SAAU,SAAU,WAE5DmE,IAAK,CACHvC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZ6D,MAAO,CACL5oB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKdqC,MAAO,CACLpnB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKd6E,MAAO,CACL5pB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKda,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZve,WAAY,CACVxG,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKdE,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,2BAER,CACE/kB,KAAM,YAGV2lB,SAAS,GAEXzB,YAAa,CACXlkB,KAAM,UAERqkB,OAAQ,CACNrkB,KAAM,UAER2lB,QAAS,CAAC,EACVkE,SAAU,CACR7pB,KAAM,UACN2lB,SAAS,GAEXmE,cAAe,CACb/E,KAAM,+BAERkF,SAAU,CACRjqB,KAAM,UACN2lB,SAAS,GAEXuE,UAAW,CACTlqB,KAAM,UACN2lB,SAAS,GAEX2C,QAAS,CAAC,EACVxC,aAAc,CACZf,KAAM,uCAERwC,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEXwE,IAAK,CACHpF,KAAM,sBAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBqJ,cAAe,CACbtuB,KAAM,SACN8kB,SAAU,CAAC,gBACXte,WAAY,CACVujB,aAAc,CACZ/pB,KAAM,UAERgqB,QAAS,CACPhqB,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,aAKduuB,IAAK,CACHvuB,KAAM,SACNwG,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERoqB,UAAW,CACTpqB,KAAM,SACNqkB,OAAQ,OAEViG,OAAQ,CACNtqB,KAAM,UAERuqB,UAAW,CACTvqB,KAAM,UACN2lB,SAAS,GAEX6E,QAAS,CACPxqB,KAAM,UACN2lB,SAAS,IAGbX,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBuJ,SAAU,CACRxuB,KAAM,SACN8kB,SAAU,CAAC,eACXte,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAERsC,QAAS,CACPtC,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKd5N,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,4BAGVyG,MAAO,CACLxrB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,sBAER,CACEA,KAAM,+BAMhBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBwJ,UAAW,CACTzuB,KAAM,SACNwG,WAAY,CACVod,OAAQ,CACNwD,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZuD,QAAS,CAAC,EACVJ,SAAU,CACRloB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,yBAER,CACEA,KAAM,8BAKd0F,SAAU,CACRzqB,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,4BAIZC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB2D,MAAO,CACL,CACE7D,KAAM,sCAIZ2J,QAAS,CACP1uB,KAAM,SACNwG,WAAY,CACV6f,QAAS,CACPrmB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERP,MAAO,CAAC,EACR4oB,cAAe,CACbroB,KAAM,SACNqkB,OAAQ,kBAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB0J,OAAQ,CACN3uB,KAAM,SACNwG,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAER8kB,SAAU,CACR9kB,KAAM,UACN2lB,SAAS,GAEX4B,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEX6B,gBAAiB,CACfxnB,KAAM,UACN2lB,SAAS,GAEX8B,MAAO,CACLznB,KAAM,SACNwlB,KAAM,CAAC,UACPG,QAAS,UAEX+B,QAAS,CACP1nB,KAAM,WAER2nB,cAAe,CACb3nB,KAAM,UACN2lB,SAAS,GAEX/B,OAAQ,CACNwD,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZ5N,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,2BAER2D,cAAe,EACfC,cAAe,GAEjBL,QAAS,CAAC,EACVJ,SAAU,CACRloB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,yBAER,CACEA,KAAM,+BAMhBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB2D,MAAO,CACL,CACE7D,KAAM,oCAER,CACEA,KAAM,oCAIZ6J,MAAO,CACL5uB,KAAM,SACNglB,kBAAmB,CACjB,OAAQ,CACND,KAAM,0BAER,MAAO,CAAC,GAEVE,sBAAsB,GAExB4J,SAAU,CACR7uB,KAAM,SACNwG,WAAY,CACVue,KAAM,CACJ/kB,KAAM,UAERqmB,QAAS,CACPrmB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERsmB,QAAS,CACPtmB,KAAM,QACN4lB,MAAO,CACLb,KAAM,yBAGV2B,WAAY,CACV1mB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,6BAIZsC,aAAa,IAGjBrC,kBAAmB,CACjB,mDAAoD,CAClDD,KAAM,2BAER,MAAO,CAAC,GAEVE,sBAAsB,GAExB6J,UAAW,CACT9uB,KAAM,SACN8kB,SAAU,CAAC,aACXte,WAAY,CACVqkB,KAAM,CACJ7qB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,WAGVqmB,QAAS,CACPrmB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAER8lB,aAAc,CACZf,KAAM,uCAER+F,YAAa,CACX9qB,KAAM,UAER0mB,WAAY,CACV1mB,KAAM,QACN4lB,MAAO,CACLwB,MAAO,CACL,CACErC,KAAM,2BAER,CACEA,KAAM,6BAIZsC,aAAa,GAEf0D,YAAa,CACX3D,MAAO,CACL,CACErC,KAAM,6BAER,CACEA,KAAM,6BAIZkG,UAAW,CACTlG,KAAM,2BAERoG,UAAW,CACTnrB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,0BAER,CACEA,KAAM,8BAKdwC,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEX0F,SAAU,CACRrrB,KAAM,QACN4lB,MAAO,CACLb,KAAM,sCAGVuB,QAAS,CACPtmB,KAAM,QACN4lB,MAAO,CACLb,KAAM,0BAIZC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB8J,UAAW,CACT/uB,KAAM,SACNwG,WAAY,CACVmf,QAAS,CACPyB,MAAO,CACL,CACErC,KAAM,0BAER,CACEA,KAAM,8BAKdC,kBAAmB,CACjB,uBAAwB,CACtBoC,MAAO,CACL,CACErC,KAAM,0BAER,CACEA,KAAM,6BAIZ,MAAO,CAAC,GAEV2D,cAAe,EACfzD,sBAAsB,GAExB+J,oBAAqB,CACnBhvB,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,QACN4lB,MAAO,CACL5lB,KAAM,YAIZivB,IAAK,CACHjvB,KAAM,SACN8kB,SAAU,CAAC,QACXte,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAER8lB,aAAc,CACZf,KAAM,wCAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBiK,sBAAuB,CACrBlvB,KAAM,SACN8kB,SAAU,CAAC,OACXte,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAERwM,IAAK,CACHxM,KAAM,SACNqkB,OAAQ,kBAGZW,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBkK,mBAAoB,CAClBjL,YAAa,8CACbyF,IAAK,CACH7E,SAAU,CAAC,UAAW,cAG1BsK,iBAAkB,CAChBlL,YAAa,sEACbyF,IAAK,CACH7E,SAAU,CAAC,SAAU,YAEvBsC,MAAO,CACL,CACEtC,SAAU,CAAC,WAEb,CACEA,SAAU,CAAC,WACXZ,YAAa,wDACb0E,MAAO,CACL,CACEe,IAAK,CACH7E,SAAU,CAAC,WAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,aAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,mBAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,aAGf,CACE6E,IAAK,CACH7E,SAAU,CAAC,kBAOvBuK,UAAW,CACTrvB,KAAM,SACNwG,WAAY,CACVoB,KAAM,CACJ5H,KAAM,UAERsnB,GAAI,CACFtnB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAER8kB,SAAU,CACR9kB,KAAM,UACN2lB,SAAS,GAEX4B,WAAY,CACVvnB,KAAM,UACN2lB,SAAS,GAEX6B,gBAAiB,CACfxnB,KAAM,UACN2lB,SAAS,GAEX8B,MAAO,CACLznB,KAAM,UAER0nB,QAAS,CACP1nB,KAAM,WAER2nB,cAAe,CACb3nB,KAAM,UACN2lB,SAAS,GAEX/B,OAAQ,CACNwD,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,6BAIZ5N,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,2BAER2D,cAAe,EACfC,cAAe,GAEjBL,QAAS,CAAC,EACVJ,SAAU,CACRloB,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,yBAER,CACEA,KAAM,+BAMhBC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtBH,SAAU,CAAC,OAAQ,MACnB8D,MAAO,CACL,CACE7D,KAAM,oCAER,CACEA,KAAM,kCAER,CACEA,KAAM,qCAIZuK,kBAAmB,CACjBpL,YAAa,qBACbkD,MAAO,CACL,CACElD,YAAa,oBACbY,SAAU,CAAC,YACXte,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,SAETiC,MAAO,CACLjC,KAAM,CAAC,SAAU,QAAS,UAC1BG,QAAS,UAEXb,SAAU,CACRU,KAAM,EAAC,MAIb,CACEtB,YAAa,qBACb1d,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,UAETiC,MAAO,CACLjC,KAAM,CAAC,OAAQ,iBAAkB,gBAAiB,cAClDG,QAAS,UAIf,CACEzB,YAAa,sBACb1d,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,WAETiC,MAAO,CACLjC,KAAM,CAAC,UACPG,QAAS,YAIf,CACEzB,YAAa,sBACb1d,WAAY,CACV8gB,GAAI,CACF9B,KAAM,CAAC,WAETiC,MAAO,CACLjC,KAAM,CAAC,QACPG,QAAS,YAMnB4J,YAAa,CACXvvB,KAAM,SACN8kB,SAAU,CAAC,WACXte,WAAY,CACV0d,YAAa,CACXlkB,KAAM,UAERmX,QAAS,CACPnX,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,4BAGVD,SAAU,CACR9kB,KAAM,UACN2lB,SAAS,IAGbX,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBuK,eAAgB,CACdpI,MAAO,CACL,CACErC,KAAM,sCAER,CACEA,KAAM,oCAER,CACEA,KAAM,sCAER,CACEA,KAAM,+CAIZ0K,qBAAsB,CACpBzvB,KAAM,SACN8kB,SAAU,CAAC,OAAQ,OAAQ,MAC3Bte,WAAY,CACVxG,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,WAET5d,KAAM,CACJ5H,KAAM,UAERsnB,GAAI,CACFtnB,KAAM,SACNwlB,KAAM,CAAC,SAAU,QAAS,WAE5BtB,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExByK,mBAAoB,CAClB1vB,KAAM,SACN8kB,SAAU,CAAC,SAAU,QACrBte,WAAY,CACVimB,OAAQ,CACNzsB,KAAM,UAER0sB,aAAc,CACZ1sB,KAAM,UAERkkB,YAAa,CACXlkB,KAAM,UAERA,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,UAGXR,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtBmC,MAAO,CACL,CACElD,YAAa,SACb1d,WAAY,CACVimB,OAAQ,CACNzsB,KAAM,SACNspB,QAAS,gCAIf,CACEpF,YAAa,aACbyF,IAAK,CACH7E,SAAU,CAAC,iBAEbte,WAAY,CACVimB,OAAQ,CACN9C,IAAK,CACH3pB,KAAM,SACNspB,QAAS,mCAOrBqG,qBAAsB,CACpB3vB,KAAM,SACN8kB,SAAU,CAAC,OAAQ,SACnBte,WAAY,CACVxG,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,WAETwH,MAAO,CACLjI,KAAM,4BAERb,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB2K,4BAA6B,CAC3B5vB,KAAM,SACN8kB,SAAU,CAAC,OAAQ,oBACnBte,WAAY,CACVxG,KAAM,CACJA,KAAM,SACNwlB,KAAM,CAAC,kBAETuH,iBAAkB,CAChB/sB,KAAM,SACNqkB,OAAQ,iBAEVH,YAAa,CACXlkB,KAAM,WAGVglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB4K,WAAY,CACV7vB,KAAM,SACNwG,WAAY,CACV0mB,SAAU,CACRnI,KAAM,mCAERsI,SAAU,CACRtI,KAAM,mCAERwI,kBAAmB,CACjBxI,KAAM,uCAERyI,kBAAmB,CACjBzI,KAAM,6CAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB6K,kBAAmB,CACjB9vB,KAAM,SACN8kB,SAAU,CAAC,mBAAoB,UAC/Bte,WAAY,CACV2mB,iBAAkB,CAChBntB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB8K,kBAAmB,CACjB/vB,KAAM,SACN8kB,SAAU,CAAC,WAAY,UACvBte,WAAY,CACV8mB,SAAU,CACRttB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExB+K,sBAAuB,CACrBhwB,KAAM,SACN8kB,SAAU,CAAC,WAAY,UACvBte,WAAY,CACV8mB,SAAU,CACRttB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBgL,2BAA4B,CAC1BjwB,KAAM,SACN8kB,SAAU,CAAC,mBAAoB,WAAY,UAC3Cte,WAAY,CACV2mB,iBAAkB,CAChBntB,KAAM,SACNqkB,OAAQ,iBAEViJ,SAAU,CACRttB,KAAM,SACNqkB,OAAQ,iBAEV+I,WAAY,CACVptB,KAAM,SACNqkB,OAAQ,iBAEVjhB,OAAQ,CACNpD,KAAM,SACNilB,qBAAsB,CACpBjlB,KAAM,YAIZglB,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,GAExBiL,KAAM,CACJlwB,KAAM,SACNwG,WAAY,CACVskB,YAAa,CACX9qB,KAAM,UAER2rB,aAAc,CACZ3rB,KAAM,SACNqkB,OAAQ,iBAEVqC,WAAY,CACV1mB,KAAM,SACNilB,qBAAsB,CAAC,GAEzB8F,YAAa,CAAC,EACd7G,YAAa,CACXlkB,KAAM,UAER4rB,OAAQ,CACN7G,KAAM,yBAGVC,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,EACtB0E,IAAK,CACHzF,YAAa,wDACbY,SAAU,CAAC,cAAe,kBAG9BqL,SAAU,CACRnwB,KAAM,SACNilB,qBAAsB,CACpBF,KAAM,0BAERC,kBAAmB,CACjB,MAAO,CAAC,IAGZoL,SAAU,CACRpwB,KAAM,SACNwG,WAAY,CACVmkB,YAAa,CACX3qB,KAAM,UAERsC,QAAS,CACPtC,KAAM,SACNilB,qBAAsB,CACpBmC,MAAO,CACL,CACErC,KAAM,wBAER,CACEA,KAAM,8BAKd0C,MAAO,CACLznB,KAAM,SACNwlB,KAAM,CAAC,OAAQ,iBAAkB,gBAAiB,eAEpDkC,QAAS,CACP1nB,KAAM,WAER2nB,cAAe,CACb3nB,KAAM,UACN2lB,SAAS,IAGbX,kBAAmB,CACjB,MAAO,CAAC,GAEVC,sBAAsB,KAI5BpzB,EAASsQ,OAAS,KAClBkuB,EAAOxhB,QAAUhd,C,oNCj+eJy+B,EAAYC,YAAW,CAClCC,gBAAiB,CACfC,YAAa,QAEfC,WAAY,CACVC,OAAQ,EACRC,SAAU,W,4BCFDC,EAAiD,SAAH1/B,GAAuD,IAAjDkxB,EAAYlxB,EAAZkxB,aAAcyO,EAAS3/B,EAAT2/B,UAAWC,EAAgB5/B,EAAhB4/B,iBAClFvP,EAAOwP,cACb,OAAID,IAAqB3iB,EAAiB1J,QAAqB,OAAZ2d,QAAY,IAAZA,OAAY,EAAZA,EAAc4O,eAE7DC,IAAAC,cAACC,IAAI,CAAC,YAAU,SAASN,UAAWA,GACjCtP,EAAKG,cACJ,CACE5uB,GAAI,0BACJs+B,eAAgBC,EAAQC,yBAE1B,CACEN,cAA2B,OAAZ5O,QAAY,IAAZA,OAAY,EAAZA,EAAc4O,cAC7B1uB,UAAuB,OAAZ8f,QAAY,IAAZA,OAAY,EAAZA,EAAc9f,UACzBivB,WAAwB,OAAZnP,QAAY,IAAZA,OAAY,EAAZA,EAAcmP,cAM3B,IAEX,E,0BCfYpjB,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,qBAAhBA,IAAgB,qBAAhBA,IAAgB,iBAAhBA,IAAgB,iCAAhBA,CAAgB,MAqHbqjB,IAxFiB,WAE9B,IAAMnlB,EAAWolB,cACXlQ,EAAOwP,cACPW,EAAyCC,aAAY,SAAC/iC,GAAU,OAAKA,EAAMgjC,YAAY,IACvFC,EAAUC,cACVC,EAAU1B,IAGV2B,EAAY,IAAIC,IAAwC,CAC5D,CAAC9jB,EAAiB+jB,QAAS,WAC3B,CAAC/jB,EAAiB1J,MAAO,SACzB,CAAC0J,EAAiBgkB,QAAS,WAC3B,CAAChkB,EAAiBikB,cAAe,UAI7BC,EAAgB,WACpBhmB,EAAS6B,aAAiB,GAC5B,EAEA2jB,EAAQS,QAAO,WACbD,GACF,IA8DA,OAAOpB,IAAAC,cAAAD,IAAAsB,SAAA,KA5DoB,SAACxyB,GAA6B,IAADyyB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAChDC,EAA6D,QAAlDR,EAAGS,SAASC,eAAe,+BAAuB,IAAAV,OAAA,EAA/CA,EAAiDW,YAG/DC,GAFyE,QAA7DX,EAA+C,QAA/CC,EAAGO,SAASC,eAAe,4BAAoB,IAAAR,OAAA,EAA5CA,EAA8CW,oBAAY,IAAAZ,IAAI,IACb,QAAnDE,EAAqC,QAArCC,EAAGK,SAASC,eAAe,kBAAU,IAAAN,OAAA,EAAlCA,EAAoCS,oBAAY,IAAAV,IAAI,GAE1E,OACE1B,IAAAC,cAAAD,IAAAsB,SAAA,KACGxyB,EACCkxB,IAAAC,cAACoC,IAAU,CACT9L,MAAO,CACL+L,KAAiB,OAAXP,QAAW,IAAXA,IAAe,EACrBQ,IAAKJ,EACLK,MAAOT,EAAW,eAAAtgC,OAAkBsgC,EAAW,OAAQ,QAEzDU,OAAQ1B,EAAU2B,IAAI5zB,GACtB8wB,UAAWkB,EAAQtB,WACnBmD,KAAK,QACL,cAAY,eACZ9gC,GAAG,4BAEHm+B,IAAAC,cAAC2C,IAAc,MACwB,QAApChB,EAAAnB,EAAwBtP,oBAAY,IAAAyQ,OAAA,EAApCA,EAAsCiB,WACnCvS,EAAKG,cAAc,CACnB5uB,GAAI4+B,EAAwBtP,aAAa0R,UACzC1C,eAAkE,QAApD0B,EAAsC,QAAtCC,EAAErB,EAAwBtP,oBAAY,IAAA2Q,OAAA,EAApCA,EAAsCtsB,oBAAY,IAAAqsB,IAAIpB,EAAwB9sB,UAE9F8sB,EAAwB9sB,QAE3B8sB,EAAwBrP,cACvB4O,IAAAC,cAACjB,IAAI,CAACY,UAAWkB,EAAQxB,gBAAiBwD,OAAO,SAASxwB,KAAMmuB,EAAwBrP,cACrFX,YAAcH,EAAM,0BAGzB0P,IAAAC,cAACN,EAAiB,CAChBxO,aAAcsP,EAAwBtP,aACtCyO,UAAWkB,EAAQxB,gBACnBO,iBAAkBY,EAAwB3xB,QAG9CkxB,IAAAC,cAAC8C,IAAiB,CAChBC,gBACEhD,IAAAC,cAACgD,IAAM,CACL,aAAYxS,YAAcH,EAAM,SAChC,mBAAiB,2BACjB,YAAU,MACV4S,QAAS9B,EACT+B,WAAW,cACXC,KAAMpD,IAAAC,cAACoD,IAAc,MACrBC,WAAS,OAMjBtD,IAAAC,cAAAD,IAAAsB,SAAA,MAIR,CAEUiC,CAAmB9C,EAAwB3xB,MACvD,C,ymBC/HO,IAAK00B,EAAW,SAAXA,GAAW,OAAXA,EAAW,sBAAXA,EAAW,8BAAXA,EAAW,sCAAXA,EAAW,4DAAXA,EAAW,kCAAXA,EAAW,gDAAXA,EAAW,gCAAXA,EAAW,sBAAXA,EAAW,sCAAXA,EAAW,0CAAXA,EAAW,0DAAXA,EAAW,gDAAXA,EAAW,kBAAXA,EAAW,YAAXA,EAAW,gBAAXA,EAAW,sBAAXA,EAAW,0BAAXA,EAAW,4BAAXA,EAAW,8CAAXA,EAAW,sBAAXA,EAAW,gCAAXA,EAAW,cAAXA,EAAW,sCAAXA,EAAW,4BAAXA,EAAW,sCAAXA,EAAW,sBAAXA,EAAW,sCAAXA,EAAW,oDAAXA,EAAW,8CAAXA,EAAW,gBAAXA,EAAW,0CAAXA,EAAW,0CAAXA,EAAW,sBAAXA,EAAW,8DAAXA,CAAW,MCGXttB,EAAc,SAAdA,GAAc,OAAdA,EAAc,UAAdA,EAAc,YAAdA,CAAc,MCHdutB,EAAc,SAAdA,GAAc,OAAdA,EAAc,kBAAdA,EAAc,gCAAdA,CAAc,MAKdC,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,sCAAnBA,EAAmB,kCAAnBA,CAAmB,MCgBnBC,EAAa,SAAbA,GAAa,OAAbA,EAAa,uBAAbA,EAAa,qBAAbA,EAAa,qCAAbA,EAAa,mCAAbA,CAAa,MAObC,EAAsB,SAAtBA,GAAsB,OAAtBA,IAAsB,0BAAtBA,IAAsB,yBAAtBA,IAAsB,wCAAtBA,IAAsB,uCAAtBA,IAAsB,qCAAtBA,IAAsB,gDAAtBA,IAAsB,6DAAtBA,IAAsB,oDAAtBA,IAAsB,iEAAtBA,IAAsB,8DAAtBA,IAAsB,2EAAtBA,IAAsB,+EAAtBA,IAAsB,6EAAtBA,IAAsB,qEAAtBA,IAAsB,mDAAtBA,IAAsB,qDAAtBA,CAAsB,M,SCGtBC,EAAU,SAAVA,GAAU,OAAVA,IAAU,mBAAVA,IAAU,mBAAVA,IAAU,2BAAVA,IAAU,qBAAVA,IAAU,qCAAVA,CAAU,MAQVC,EAAe,SAAfA,GAAe,OAAfA,IAAe,eAAfA,IAAe,2BAAfA,IAAe,iCAAfA,IAAe,6BAAfA,CAAe,MCdfC,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,0BAAhBA,EAAgB,wBAAhBA,EAAgB,gCAAhBA,EAAgB,gCAAhBA,EAAgB,sCAAhBA,EAAgB,oCAAhBA,EAAgB,4BAAhBA,EAAgB,4BAAhBA,CAAgB,MAWhBC,EAAc,SAAdA,GAAc,OAAdA,EAAc,oBAAdA,EAAc,YAAdA,EAAc,sBAAdA,CAAc,MCpCdC,EAAe,SAAfA,GAAe,OAAfA,EAAe,0BAAfA,EAAe,oCAAfA,EAAe,oCAAfA,EAAe,cAAfA,EAAe,wBAAfA,EAAe,sBAAfA,EAAe,cAAfA,EAAe,cAAfA,EAAe,YAAfA,EAAe,sCAAfA,EAAe,kBAAfA,EAAe,wCAAfA,CAAe,MCAfC,EAAe,SAAfA,GAAe,OAAfA,EAAe,wBAAfA,EAAe,gCAAfA,EAAe,aAAfA,EAAe,aAAfA,EAAe,aAAfA,EAAe,aAAfA,CAAe,MCAfC,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,oBAArBA,CAAqB,MCArBC,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,UAAtBA,EAAsB,YAAtBA,EAAsB,UAAtBA,EAAsB,oBAAtBA,EAAsB,YAAtBA,EAAsB,YAAtBA,CAAsB,MCAtBC,EAAW,SAAXA,GAAW,OAAXA,EAAW,0BAAXA,EAAW,4BAAXA,EAAW,sBAAXA,EAAW,kBAAXA,EAAW,wBAAXA,EAAW,sDAAXA,EAAW,8BAAXA,EAAW,cAAXA,EAAW,4CAAXA,EAAW,gBAAXA,EAAW,gCAAXA,CAAW,K,kGCUvB,sGAAO,IAAMC,EAAM,WAEP5oB,EAAU,SAAVA,GAAU,OAAVA,EAAU,UAAVA,EAAU,UAAVA,EAAU,YAAVA,EAAU,cAAVA,EAAU,gBAAVA,CAAU,MAsBTL,EAAY,SAACkpB,GACxB,MAAO,CACLz1B,KAAMw1B,EACNtmC,QAASumC,EAEb,C,4wBCbYC,EAAc,SAAdA,GAAc,OAAdA,EAAc,4BAAdA,EAAc,6DAAdA,EAAc,wEAAdA,EAAc,wCAAdA,EAAc,oDAAdA,EAAc,4EAAdA,EAAc,wFAAdA,EAAc,0BAAdA,EAAc,sBAAdA,EAAc,gCAAdA,EAAc,4CAAdA,EAAc,gDAAdA,EAAc,gDAAdA,EAAc,wCAAdA,EAAc,oDAAdA,EAAc,0CAAdA,EAAc,oDAAdA,EAAc,yBAAdA,EAAc,gDAAdA,EAAc,oDAAdA,EAAc,gCAAdA,EAAc,sCAAdA,CAAc,MAyBbC,EAAa,SAACC,EAA+CtpB,GAAqB,OAC7FC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,iBACrBC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmB6wB,QAASxE,EAAQyE,gBACnDzpB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeC,YAC1CzmC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAKV,OAJAooB,GACEtpB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACrGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQ2E,cAC5D,CACLj2B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQC,EAAmB,SAC9Br7B,EACAs7B,EACAR,EACAtpB,EACA+pB,GAA8B,OAE9B9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,cAC7DC,OAAQC,IAAWiB,KACnB/S,KAAI9L,wBAAA,GACC8L,GAAI,IACPw7B,eAAgB,wBAElBxpB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACViK,IAAO8wB,QAAQ5wB,IAAmBsxB,aAAcz7B,EAAK/H,IACrD,IAAMyjC,EAAU,CACd5hC,MAAOkG,EAAK/I,MACZ0kC,gBAAiB,GACjBC,kBAAmB,GACnB9uB,KAAM9M,EAAK9D,aAEb,OAAO2/B,EAAuBH,EAASJ,EAA2BR,EAA2BtpB,EAAU+pB,EACzG,EACA9oB,UAAW,SAACC,GAYV,OAXAzI,IAAOC,SAASC,IAAmB2xB,kBAAmBtF,EAAQuF,mBAC9DvqB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACAynB,EACAxnB,IAAiB1J,MACjB2J,YAAgBb,GAChBspB,IAAMC,0BAGH,CACL/2B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQS,EAAyB,SACpC77B,EAMAs7B,EACAR,EACAtpB,EACA+pB,GAA8B,OAE9B9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,iBACrBC,OAAQC,IAAWiB,KACnB/S,OACAqS,UAAW,SAACrS,GAKV,OAJAu7B,GAAYA,EAASv7B,GACrBwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5EptB,IAAO8wB,QAAQ5wB,IAAmB+xB,UAAWl8B,EAAKlG,OAC3C,CACLoL,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeuB,WAC1C/nC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAIV,OAHAzI,IAAOC,SAASC,IAAmBiyB,eAAgB5F,EAAQ6F,gBAC3D7qB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KAC5F,CACLxN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQkB,EAAsB,SAACxiC,EAAeoL,EAAesM,GAAqB,OACrFC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,GACtC+X,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,GAFAiK,IAAO8wB,QAAQ5wB,IAAmBoyB,OAAQv8B,EAAKlG,OAC/C0X,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,OAAQkF,GACN,KAAKxK,IAAQG,cACX,MAAO,CACLqK,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAe4B,kCAC1CpoC,QAAS4L,GAEb,KAAKtF,IAAQC,OACX,MAAO,CACLuK,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAe6B,wBAC1CroC,QAAS4L,GAEb,KAAKtF,IAAQE,yBACX,MAAO,CACLsK,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAe8B,0CAC1CtoC,QAAS4L,GAInB,EACAyS,UAAW,SAACC,GAGV,OAFAzI,IAAOC,SAASC,IAAmBwyB,YAAanG,EAAQoG,aACxDprB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQyB,EAAwB,WAAH,MAAU,CAC1C33B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAe4B,kCAC1CpoC,QAAS,CAAC,EACX,EAEY0oC,EAAgB,SAAChjC,EAAeoL,EAAesM,GAAqB,OAC/EC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,eAAA/Z,OAAciC,EAAK,iBAChF+X,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAEV,GADAwR,EAASS,IAAeC,QAAQC,IAAqBG,cAC7C,OAAJtS,QAAI,IAAJA,OAAI,EAAJA,EAAMrH,QAAS,EAEjB,OADAsR,IAAO8wB,QAAQ5wB,IAAmBoyB,OAAQv8B,EAAK,GAAG/H,IAC1CiN,GACN,KAAKxK,IAAQG,cACX,MAAO,CACLqK,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAemC,4BAC1C3oC,QAAS4L,EAAK,IAElB,KAAKtF,IAAQC,OACX,MAAO,CACLuK,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeoC,kBAC1C5oC,QAAS4L,EAAK,IAElB,KAAKtF,IAAQE,yBACX,MAAO,CACLsK,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeqC,oCAC1C7oC,QAAS4L,EAAK,IAIxB,EACAyS,UAAW,SAACC,GACV,GAAIA,EAGF,OAFAzI,IAAOC,SAASC,IAAmBwyB,YAAanG,EAAQoG,aACxDprB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAesC,sBAC1C9oC,QAASse,EAAM1S,KAGrB,GACC,EAEQm9B,EAAkC,SAC7CrjC,EACAkG,EACAvF,EACA6gC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,GACtC+X,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,GAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5EptB,IAAO8wB,QAAQ5wB,IAAmBizB,4CAA6Cp9B,EAAKlG,OAChFkG,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeyC,oBAC1C5iC,UACArG,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBmzB,qCAAsC9G,EAAQ+G,wBAC1E,CACLr4B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQoC,EAAoB,SAC/B1jC,EACAkG,EACAvF,EACA6gC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,GACtC+X,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,GAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5EptB,IAAO8wB,QAAQ5wB,IAAmBszB,8BAA+Bz9B,EAAKlG,OAClEkG,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeyC,oBAC1C5iC,UACArG,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBuzB,uBAAwBlH,EAAQmH,wBAC5D,CACLz4B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQwC,EAAuB,SAClCC,EACAC,EACArjC,EACA6gC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,YAAA/Z,OAAWgmC,EAAQ,eAAAhmC,OAAcimC,GACtDjsB,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEC,IAADg+B,EAAV,GADA/zB,IAAO8wB,QAAQ5wB,IAAmB8zB,8BAA+BJ,GAC7D79B,EAMF,OALc,QAAdg+B,EAAAh+B,EAAKk+B,iBAAS,IAAAF,GAAdA,EAAgBlnB,SAAQ,SAACyb,GACvBA,EAAS3tB,MAAQ2tB,EAASt6B,EAC5B,IACAuZ,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeuD,cAC1C1jC,UACArG,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBi0B,uBAAwB5H,EAAQ6H,wBAC5D,CACLn5B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQkD,EAAuB,SAClCT,EACApjC,EACA6gC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,YAAA/Z,OAAWgmC,EAAQ,cACxChsB,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmBo0B,8BAA+Bv+B,EAAK/H,IAClE+H,EAKF,OAJAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASgtB,GAAuB,IAChCx+B,EAAK4E,MAAQ5E,EAAK/H,GACX,CACLiN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAe0D,sBAC1C7jC,UACArG,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBs0B,uBAAwBjI,EAAQkI,0BAC5D,CACLx5B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAEQoD,EAAyB,SAAClX,GAAa,MAAe,CACjEpiB,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAe4D,wBAC1CpqC,QAASkzB,EACV,EAEYqX,EAAsC,SACjD7kC,EACAwhC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,GACtC+X,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmBy0B,mCAAoC9kC,QACzD8N,IAAT5H,EAGF,OAFAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeiE,wBAC1CzqC,QAAS0F,EAGf,EACA2Y,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmB20B,4BAA6BhlC,GACzD,CACLoL,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeQ,YAE9C,GACC,EAiCQ/+B,EAAsB,WAAH,MAAmB,CACjD6I,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAIyS,IAAYy0B,iBACvC3qC,QAAOD,YAAA,GACJ6E,IAASe,YAAa,GAE1B,EA+BYilC,EAAa,WAAH,MAAmB,CACxC95B,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAeqE,mBAC1C7qC,QAAS,KACV,EAEY8qC,EAAyB,SAAC9qC,GAAmC,MAAM,CAC9E8Q,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAesE,wBAC1C9qC,UACD,EAEY+qC,EAAc,SAACrlC,EAAe0X,EAAuB8pB,GAAkC,OAClG7pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,EAAK,0BAC3C+X,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAMV,GALAiK,IAAO8wB,QAAQ5wB,IAAmBg1B,YAAan/B,EAAKlG,OACpD0X,EAASS,IAAeC,QAAQC,IAAqBG,aACjDgpB,GACF9pB,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAE1Er3B,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAewE,cAC1ChrC,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAGV,GAFAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmBk1B,iBAAkBvlC,GAC/B,MAAjB4Y,EAAMpL,OAIR,OAHIg0B,GACF9pB,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAEvE,CACLnyB,KAAK,GAADrN,OAAKjE,IAAUiF,KAAI,KAAAhB,OAAI+iC,EAAewE,cAC1ChrC,QAAS,CAAE0F,QAAOwlC,WAAY,IAGpC,GACC,EAEQC,EAAiB,SAC5BzlC,EACAkG,EACAwR,EACA8pB,EACAR,GAAiC,OAEjCrpB,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,EAAK,0BAC3C+X,OAAQC,IAAW0tB,IACnBx/B,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACotB,GACVx1B,IAAO8wB,QAAQ5wB,IAAmBo1B,eAAgBzlC,GAClD0X,EAAS2tB,EAAYrlC,EAAO0X,EAAU8pB,GACxC,EACA7oB,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAO8wB,QAAQ5wB,IAAmBu1B,oBAAqB5lC,EACzD,GACC,EAEQ6lC,EAAiB,SAC5B7lC,EACA0X,EACA8pB,EACAR,GAAiC,OAEjCrpB,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,kBAAA/Z,OAAiBiC,EAAK,0BAC3C+X,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACotB,GACVx1B,IAAO8wB,QAAQ5wB,IAAmBw1B,eAAgB7lC,GAClD0X,EAAS2tB,EAAYrlC,EAAO0X,EAAU8pB,GACxC,EACA7oB,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAO8wB,QAAQ5wB,IAAmBy1B,oBAAqB9lC,EACzD,GACC,C,mCC3jBL,4dAMO,IAAM+lC,EAAoB,GAGpBC,EAAoB,uCAIpBC,EAAyB,YACzBC,EAAsB,4BACtBC,EAAsB,uDACtBC,EAA2B,uEAC3BC,EAAoB,GAAAtoC,OAAMmR,sCAAsC,iBAEhEo3B,EAAiB,MACjBC,EAAgB,IAChBC,EAAuB,IACvBC,EAA2B,GAC3BC,EAAY,gFAEZC,EAAoB,kBACpBC,EAAuB,oB,mCClB7B,SAASC,EAA+C/iB,GACpB,IAADgjB,EAA1B,UAAVhjB,EAAEtoB,KAA6B,MAAVsoB,EAAEtoB,MACzBsoB,EAAEijB,kBACD,OAADjjB,QAAC,IAADA,GAAgB,QAAfgjB,EAADhjB,EAAGkjB,qBAAa,IAAAF,GAAhBA,EAAkBG,QAEtB,CAbA,oEAeO,IAAMC,EAAa,SAACC,GAAgD,MAAM,CAC/E3H,QAAS,SAAC1b,GAA0B,OAAKqjB,GAAWA,EAAQrjB,EAAE,EAC9DsjB,UAAW,SAACtjB,GACVA,EAAEijB,kBACY,UAAVjjB,EAAEtoB,KAA6B,MAAVsoB,EAAEtoB,KACzB2rC,GAAWA,EAAQrjB,EAEvB,EACAujB,SAAU,EACX,C,mCCxBD,qhBAqBYC,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,kCAAhBA,EAAgB,0BAAhBA,EAAgB,gCAAhBA,EAAgB,gCAAhBA,EAAgB,gCAAhBA,EAAgB,kCAAhBA,EAAgB,qCAAhBA,EAAgB,0DAAhBA,EAAgB,sCAAhBA,EAAgB,0CAAhBA,EAAgB,gCAAhBA,EAAgB,8BAAhBA,EAAgB,iCAAhBA,EAAgB,qCAAhBA,EAAgB,yBAAhBA,EAAgB,2BAAhBA,EAAgB,wCAAhBA,EAAgB,8CAAhBA,EAAgB,kBAAhBA,EAAgB,mCAAhBA,EAAgB,2BAAhBA,EAAgB,mCAAhBA,EAAgB,sCAAhBA,EAAgB,gCAAhBA,EAAgB,kCAAhBA,EAAgB,sCAAhBA,EAAgB,sCAAhBA,CAAgB,MA8BfC,EAAe,SAACvG,EAAmCtpB,GAAqB,OACnFC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,WAC7DC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,OAHAiK,IAAO8wB,QAAQ5wB,IAAmBm3B,sBAAuB9K,EAAQ+K,kBACjE/vB,EAASS,IAAeC,QAAQC,IAAqBG,aAE9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBC,cACrDjtC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBs3B,eAAgBjL,EAAQkL,gBACpD,CACLx8B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBO,cAEzD,GACC,EA0BQC,EAAgB,SAAC5hC,GAAY,MAAM,CAC9CkF,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBS,UACrDztC,QAAS4L,EACV,EAEY8hC,EAAc,SACzB9hC,EACAs7B,EACAR,EACAtpB,EACAwlB,EACAuE,GAAoC,OAEpC9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,WAC7DC,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAOV,OANAu7B,GAAS,GACTtxB,IAAO8wB,QAAQ5wB,IAAmB43B,wBAAyB/hC,EAAK/H,IAChEuZ,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5EL,EAAQ5d,KAAKpZ,EAAK/H,IAEX,CACLiN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBU,aACrD1tC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAIV,OAHA6oB,GAAS,GACT/pB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQkL,gBAC5D,CACLx8B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBO,cAEzD,GACC,EAEQK,EAAc,SACzBhiC,EACAiiC,EACA3G,EACAR,EACAtpB,EACA+pB,GAAqC,OAErC9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,YAAA/Z,OAAWoqC,GACxEpwB,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAKV,OAJAu7B,GAAYA,GAAS,GACrBtxB,IAAO8wB,QAAQ5wB,IAAmB+3B,wBAAyBliC,EAAK/H,IAChEuZ,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UACrE,CACLnyB,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBY,aACrD5tC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAIV,OAHA6oB,GAAYA,GAAS,GACrB/pB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBg4B,iBAAkBniC,EAAK/H,IACnD,CACLiN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBO,cAEzD,GACC,EAEQS,EAA6B,SACxCpiC,EACAiiC,EACAzwB,EACA+pB,EACAp6B,GAAiB,OAEjBsQ,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,YAAA/Z,OAAWoqC,EAAO,qBAAApqC,OAAoBsJ,GACnG0Q,OAAQC,IAAWiB,KACnB/S,OACAgS,QAAS,iBAAO,CACd9M,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBiB,kBACrDjuC,QAAS8lC,IAAgBoI,WAC1B,EACDjwB,UAAW,SAACkwB,GAIV,OAHAt4B,IAAO8wB,QAAQ5wB,IAAmBq4B,yCAA0CP,GAC5E1G,GAAS,GACT/pB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBiB,kBACrDjuC,QAAS8lC,IAAgBuI,cAE7B,EACAhwB,UAAW,SAACC,GAGV,OAFAzI,IAAOC,SAASC,IAAmBu4B,kCAAmCT,GACtE1G,GAAS,GACF,CACLr2B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBiB,kBACrDjuC,QAAS8lC,IAAgByI,YAE7B,GACC,EAEQC,EAAc,SACzBX,EACA3G,EACAR,EACA9D,EACAxlB,EACArQ,GAEA,IAAM0hC,EAAI1hC,EAAQ,iBAAsB,GACxC,OAAOsQ,YAAU,CACfC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,YAAA/Z,OAAWoqC,GAAOpqC,OAAGgrC,GAClFhxB,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACV,GAAIA,EAKF,OAJAg3B,EAAQ5d,KAAK,WACbnP,IAAO8wB,QAAQ5wB,IAAmB24B,wBAAyBb,GAC3DzwB,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBwB,aACrDxuC,QAAS,CAAE6D,GAAIgqC,EAAS9gC,WAAYA,GAG1C,EACAsR,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB44B,iBAAkBd,GAC9C,CACL/8B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBO,cAEzD,GAEJ,EAEaqB,EAAwB,SAACC,EAAkBC,EAAuBC,GAAsB,OACnG1xB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,YAAA/Z,OAAWorC,EAAQ,iBAAAprC,OAAgBqrC,EAAa,kBAC7GrxB,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAWJ,IAAeC,QAAQC,IAAqBG,UACvDG,UAAWR,IAAeC,QAAQC,IAAqBG,WACtD,EAEQ8wB,EAAqB,WAAH,IAAIv/B,EAAU4G,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,IAAAA,UAAA,GAAQ,MAAM,CACzDvF,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBiC,iBACrDjvC,QAASyP,EACV,EAEYy/B,EAAa,SAACC,EAAmBzI,EAAmCtpB,GAAuB,OACtGC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,qBAAA/Z,OAAoB0rC,GACjF1xB,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBq5B,uBAAwBhN,EAAQiN,oBAClEjyB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBkC,YACrDlvC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBu5B,gBAAiBlN,EAAQmN,kBACrD,CACLz+B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBwC,gBAEzD,GACC,EAEQC,EAAc,SAACtiC,EAA6Bu5B,EAAmCtpB,GAAuB,OACjHC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAC7DC,OAAQC,IAAWiB,KACnB/S,KAAMuB,EACNyQ,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBq5B,uBAAwBhN,EAAQiN,oBAClEjyB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiByC,aACrDzvC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBu5B,gBAAiBlN,EAAQmN,kBACrD,CACLz+B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBwC,gBAEzD,GACC,EAEQE,EAAgB,SAACviC,EAA6Bu5B,EAAmCtpB,GAAuB,OACnHC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,qBAAA/Z,OAAoB0J,EAAQtJ,IACzF4Z,OAAQC,IAAWiB,KACnB/S,KAAMuB,EACNyQ,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBq5B,uBAAwBhN,EAAQiN,oBAClEjyB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiB0C,eACrD1vC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBu5B,gBAAiBlN,EAAQmN,kBACrD,CACLz+B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBwC,gBAEzD,GACC,EAEQG,EAAgB,SAACR,EAAmBzI,EAAmCtpB,GAAuB,OACzGC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,qBAAA/Z,OAAoB0rC,GACjF1xB,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBq5B,uBAAwBhN,EAAQiN,oBAClEjyB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiB2C,eACrD3vC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBu5B,gBAAiBlN,EAAQmN,kBACrD,CACLz+B,KAAK,GAADrN,OAAKjE,IAAU4tC,cAAa,KAAA3pC,OAAIupC,EAAiBwC,gBAEzD,GACC,C,gKC3UOI,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,sCAAlBA,CAAkB,MAmBjBC,EAAep3B,YAAY,CACtCC,KAAMlZ,IAAUswC,QAChBn5B,aAJkC,CAAC,EAKnCiC,SAAQ7Y,YAAA,GACL6vC,EAAmBG,eAAgB,SAACpwC,EAAOC,GAC1CmZ,IAAIpZ,EAAOqwC,IAAYC,QAASrwC,EAAOI,QACzC,MAIW6vC,EAAoB,O,mCCxCnC,oVAEO,IAAKK,EAAU,SAAVA,GAAU,OAAVA,EAAU,aAAVA,EAAU,iBAAVA,CAAU,MAMVC,EAAI,SAAJA,GAAI,OAAJA,EAAI,YAAJA,EAAI,mBAAJA,EAAI,oBAAJA,EAAI,mBAAJA,EAAI,YAAJA,EAAI,YAAJA,EAAI,aAAJA,EAAI,6BAAJA,EAAI,oBAAJA,EAAI,aAAJA,EAAI,kBAAJA,EAAI,cAAJA,EAAI,kBAAJA,EAAI,YAAJA,EAAI,kBAAJA,EAAI,0CAAJA,CAAI,MAmBJC,EAAI,SAAJA,GAAI,OAAJA,EAAI,YAAJA,EAAI,cAAJA,EAAI,kBAAJA,EAAI,kBAAJA,EAAI,kBAAJA,CAAI,MAQJC,EAAU,SAAVA,GAAU,OAAVA,EAAU,YAAVA,EAAU,qCAAVA,EAAU,qBAAVA,EAAU,oCAAVA,EAAU,wBAAVA,EAAU,qBAAVA,EAAU,0BAAVA,CAAU,MAUVC,EAAE,SAAFA,GAAE,OAAFA,EAAE,YAAFA,EAAE,UAAFA,EAAE,kBAAFA,EAAE,UAAFA,EAAE,kBAAFA,EAAE,kBAAFA,EAAE,oBAAFA,EAAE,cAAFA,CAAE,MAWFC,EAAQ,SAARA,GAAQ,OAARA,EAAQ,YAARA,EAAQ,gBAARA,EAAQ,UAARA,EAAQ,kBAARA,EAAQ,sBAARA,EAAQ,kBAARA,CAAQ,MASRC,EAAM,SAANA,GAAM,OAANA,EAAM,eAANA,EAAM,YAANA,EAAM,aAANA,CAAM,MAMNC,EAAM,SAANA,GAAM,OAANA,EAAM,qBAANA,EAAM,eAANA,EAAM,2BAANA,EAAM,qBAANA,EAAM,+BAANA,EAAM,wBAANA,EAAM,4CAANA,EAAM,oBAANA,CAAM,MAWNC,EAAK,SAALA,GAAK,OAALA,EAAK,QAALA,EAAK,oBAALA,EAAK,gBAALA,EAAK,YAALA,EAAK,wBAALA,CAAK,MAQLC,EAAS,SAATA,GAAS,OAATA,EAAS,sBAATA,EAAS,kBAATA,EAAS,8BAATA,EAAS,wBAATA,EAAS,sBAATA,EAAS,2CAATA,CAAS,K,yFChFjBC,E,+EC2BEj6B,GAAgCC,EAAA,GAAA7W,YAAA6W,EACnC1L,IAAUC,kBAAgB0lC,EAAA,GAAA9wC,YAAA8wC,EACxB3lC,IAAUE,YAAc,IAAErL,YAAA8wC,EAC1B3lC,IAAU4lC,wBAAyB,GAAK/wC,YAAA8wC,EACxC3lC,IAAU6lC,yBAA2B,GAACF,IAAA9wC,YAAA6W,EAExC1L,IAAUG,iBAAe2lC,EAAA,GAAAjxC,YAAAixC,EACvB9lC,IAAUI,WAAa,IAAEvL,YAAAixC,EACzB9lC,IAAU+lC,uBAAwB,GAAKlxC,YAAAixC,EACvC9lC,IAAUgmC,wBAA0B,GAACF,IAAAjxC,YAAA6W,EAEvC1L,IAAUJ,KAAO,MAAI8L,GAGXu6B,EAAoB14B,YAAY,CAC3CC,KAAMlZ,IAAU4xC,cAChBz6B,eACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLw4B,IAAgBC,iBAAmBrnC,gBAAelK,YAAA8Y,EAClDw4B,IAAgBE,yBAA2BlnC,gBAA0BtK,YAAA8Y,EACrEw4B,IAAgBG,kBAAoBjnC,gBAAgBxK,YAAA8Y,EACpDw4B,IAAgBI,0BAA4B9mC,gBAA2B5K,YAAA8Y,EACvEw4B,IAAgBK,QAAU7mC,YAAQrL,IAAU4xC,gBAAcrxC,YAAA8Y,EAC1Dw4B,IAAgBM,UAAY3mC,eAAYjL,YAAA8Y,EACxCw4B,IAAgBO,WAAarmC,gBAAYxL,YAAA8Y,EACzCw4B,IAAgBQ,WAAa/lC,eAAY/L,YAAA8Y,EACzCw4B,IAAgBS,UAAY/mC,YAAUvL,IAAU4xC,gBAAcv4B,K,GAIpDs4B,EAAyB,Q,iBClC3BY,EAAiBt5B,YAAY,CACxCC,KAAMlZ,IAAUwyC,UAChBr7B,aAJoC,CAAC,EAKrCiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLo5B,IAAqBC,mBAAqB7/B,aAAc8/B,IAAcC,cAAYryC,YAAA8Y,EAClFo5B,IAAqBI,kBAAoB9/B,YAAa4/B,IAAcC,cAAYryC,YAAA8Y,EAChFo5B,IAAqBK,yBAA2B9/B,aAAoB2/B,IAAcC,cAAYryC,YAAA8Y,EAC9Fo5B,IAAqBM,eAAiBlgC,aAAc8/B,IAAcK,UAAQzyC,YAAA8Y,EAC1Eo5B,IAAqBQ,cAAgBlgC,YAAa4/B,IAAcK,UAAQzyC,YAAA8Y,EACxEo5B,IAAqBS,qBAAuBlgC,aAAoB2/B,IAAcK,UAAQ35B,K,GAI5Ek5B,EAAsB,Q,2BCP/Bp7B,GAA8BC,EAAA,GAAA7W,YAAA6W,EACjCzN,IAAeE,UAAY,CAAC,GAACtJ,YAAA6W,EAC7BzN,IAAeC,aAAe,CAC7BupC,sBAAuB,KACvBC,QAAS,GACTC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbnnC,KAAM,CAAC,IACR7L,YAAA6W,EACAzN,IAAe6pC,YAAc,IAAEjzC,YAAA6W,EAC/BzN,IAAe8pC,oBAAsBC,IAAsBC,aAAWv8B,GAG5Dw8B,EAAkB36B,YAAY,CACzCC,KAAMlZ,IAAUovB,WAChBjY,eACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLw6B,IAAsBC,yBAA2BxqC,YAAkBtJ,IAAUovB,aAAW7uB,YAAA8Y,EACxFw6B,IAAsBE,kCAAoC7pC,YAA2BlK,IAAUovB,aAAW7uB,YAAA8Y,EAC1Gw6B,IAAsBG,iBAAmBvqC,aAAUzJ,IAAUovB,aAAW7uB,YAAA8Y,EACxEw6B,IAAsBI,iBAAmBlqC,aAAU/J,IAAUovB,aAAW7uB,YAAA8Y,EACxEw6B,IAAsBK,0BAA4B/pC,YAAmBnK,IAAUovB,aAAW7uB,YAAA8Y,EAC1Fw6B,IAAsBM,qBAAuBlqC,YAAcjK,IAAUovB,aAAW/V,K,GAItEu6B,EAAuB,Q,mCCjBzBQ,EAAoBn7B,YAAY,CAC3CC,KAAMlZ,IAAUq0C,aAChBl9B,aAlBuC,CACvCm9B,SAAU,GACV7gC,OAAQ,CACNrH,KAAM,IAERmoC,gBAAiB,GACjBC,gBAAiB,CAAC,EAClBC,iBAAkB,CAAC,GAYnBr7B,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLq7B,IAAwBC,0BAA4B10C,aAAYD,IAAUq0C,eAAa9zC,YAAA8Y,EACvFq7B,IAAwBE,2BAA4B,SAACz0C,EAAKsC,GAA8D,IAA1DjC,EAAOiC,EAAPjC,QAC7DL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAUt0C,EAC7C,IAACD,YAAA8Y,EACAq7B,IAAwBM,uBAAyB/0C,aAAYD,IAAUq0C,eAAa9zC,YAAA8Y,EACpFq7B,IAAwBO,uBAAyBh1C,aAAYD,IAAUq0C,eAAa9zC,YAAA8Y,EACpFq7B,IAAwBQ,mCAAqCj1C,aAAYD,IAAUq0C,eAAa9zC,YAAA8Y,EAChGq7B,IAAwBS,oCAAqC,SAACh1C,EAAKuZ,GAA8D,IAA1DlZ,EAAOkZ,EAAPlZ,QACtEL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAUt0C,EAC7C,IAACD,YAAA8Y,EACAq7B,IAAwBU,YAAa,SAACj1C,EAAKyZ,GAA8D,IAA1DpZ,EAAOoZ,EAAPpZ,QAC9CL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAUt0C,EAC7C,IAACD,YAAA8Y,EACAq7B,IAAwBW,oBAAqB,SAACl1C,EAAK6Z,GAA0C,IAAtCxZ,EAAOwZ,EAAPxZ,QACtDL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAU30C,EAAM00C,IAAiBphC,SAClEtT,EAAM00C,IAAiBN,iBAAmBO,YAAUt0C,EACtD,IAACD,YAAA8Y,EACAq7B,IAAwBY,sBAAuB,SAACn1C,EAAK+Z,GAA0C,IAAtC1Z,EAAO0Z,EAAP1Z,QACxDL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAU30C,EAAM00C,IAAiBphC,SAClEtT,EAAM00C,IAAiBN,iBAAmBO,YAAUt0C,EACtD,IAACD,YAAA8Y,EACAq7B,IAAwBa,iBAAkB,SAACp1C,EAAKia,GAAmD,IAA/C5Z,EAAO4Z,EAAP5Z,QACnDL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAU30C,EAAM00C,IAAiBphC,SAClEtT,EAAM00C,IAAiBN,iBAAmBO,YAAU30C,EAAM00C,IAAiBN,kBAC3Ep0C,EAAM00C,IAAiBL,iBAAmBM,YAAUt0C,EACtD,IAACD,YAAA8Y,EACAq7B,IAAwBc,sBAAuB,SAACr1C,EAAKma,GAAmD,IAA/C9Z,EAAO8Z,EAAP9Z,QACxDL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAU30C,EAAM00C,IAAiBphC,SAClEtT,EAAM00C,IAAiBN,iBAAmBO,YAAU30C,EAAM00C,IAAiBN,kBAC3Ep0C,EAAM00C,IAAiBL,iBAAmBM,YAAUt0C,EACtD,IAACD,YAAA8Y,EACAq7B,IAAwBe,kBAAmB,SAACt1C,EAAKqa,GAAqD,IAAjDha,EAAOga,EAAPha,QACpDL,EAAM00C,IAAiBr7B,gBAAkBs7B,YAAU30C,EAAM00C,IAAiBr7B,iBAC1ErZ,EAAM00C,IAAiBE,WAAaD,YAAU30C,EAAM00C,IAAiBE,YACrE50C,EAAM00C,IAAiBP,UAAYQ,YAAU30C,EAAM00C,IAAiBP,WACpEn0C,EAAM00C,IAAiBphC,QAAUqhC,YAAU30C,EAAM00C,IAAiBphC,SAClEtT,EAAM00C,IAAiBN,iBAAmBO,YAAU30C,EAAM00C,IAAiBN,kBAC3Ep0C,EAAM00C,IAAiBL,iBAAmBM,YAAU30C,EAAM00C,IAAiBL,kBAC3Er0C,EAAM00C,IAAiBJ,kBAAoBK,YAAUt0C,EACvD,IAAC6Y,K,GAIU+6B,EAAyB,Q,QC9FlCj9B,GAA2BC,EAAA,GAAA7W,YAAA6W,EAC9Bs+B,IAAYC,MAAQ,IAAEp1C,YAAA6W,EACtBs+B,IAAYE,YAAc,IAAEr1C,YAAA6W,EAC5Bs+B,IAAYG,WAAa,CAAC,GAACt1C,YAAA6W,EAC3Bs+B,IAAYI,qBAAsB,GAAKv1C,YAAA6W,EACvCs+B,IAAYK,eAAgB,GAAKx1C,YAAA6W,EACjCs+B,IAAYM,SAAW,IAAEz1C,YAAA6W,EACzBs+B,IAAY9oC,YAAa,GAAKwK,GAGpB6+B,EAAeh9B,YAAY,CACtCC,KAAMlZ,IAAU01C,YAChBv+B,eACAiC,SAAQ7Y,YAAA,GACL21C,IAAiBC,kBAAoBhkC,kB,gDCyBpCgF,IAAwBC,EAAA,GAAA7W,YAAA6W,EAC3BhS,IAASM,oBAAsB,CAAC,GAACnF,YAAA6W,EACjChS,IAASE,0BAA4B,MAAI/E,YAAA6W,EACzChS,IAASU,aAAe,CAAC,GAACvF,YAAA6W,EAC1BhS,IAASQ,mBAAqB,CAAC,GAACrF,YAAA6W,EAChChS,IAASgxC,qBAAuB,CAAC,GAAC71C,YAAA6W,EAClChS,IAASsB,yBAA2B,CAAC,GAACnG,YAAA6W,EACtChS,IAASoB,+BAAiC,CAAC,GAACjG,YAAA6W,EAC5ChS,IAASmC,eAAiB,CAAC,GAAChH,YAAA6W,EAC5BhS,IAASH,KAAO,MAAI1E,YAAA6W,EACpBhS,IAASI,SAAW,CAAEU,MAAO,GAAIwlC,WAAY,KAAInrC,YAAA6W,EACjDhS,IAASyC,wBAAyB,GAAKtH,YAAA6W,EACvChS,IAASe,YAAa,GAAK5F,YAAA6W,EAC3BhS,IAASgB,aAAe,MAAI7F,YAAA6W,EAC5BhS,IAAS2C,iBAAmB,CAC3BqQ,OAAQC,KAAWC,KACnBC,KAAM,CACJC,OAAQ,UACRC,UAAWC,KAAe29B,MAE5Bz9B,OAAQ,GACR1U,WAAW,EACX2U,cAAe,KAChBzB,GAGUk/B,GAAYr9B,YAAY,CACnCC,KAAMlZ,IAAUiF,KAChBkS,gBACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACL2tB,IAAeC,WAAajiC,YAAQhF,IAAUiF,OAAK1E,YAAA8Y,EACnD2tB,IAAeuB,UAAYpjC,eAAW5E,YAAA8Y,EACtC2tB,IAAe4B,iCAAmCvjC,eAAkC9E,YAAA8Y,EACpF2tB,IAAemC,2BAA6B1jC,eAA4BlF,YAAA8Y,EACxE2tB,IAAe6B,uBAAyBljC,eAAwBpF,YAAA8Y,EAChE2tB,IAAeoC,iBAAmBvjC,eAAkBtF,YAAA8Y,EACpD2tB,IAAe8B,yCAA2CviC,gBAAuChG,YAAA8Y,EACjG2tB,IAAeqC,mCAAqC5iC,eAAiClG,YAAA8Y,EACrF2tB,IAAeyC,mBAAqB7iC,gBAAoBrG,YAAA8Y,EACxD2tB,IAAeuD,aAAerjC,gBAAc3G,YAAA8Y,EAC5C2tB,IAAe0D,qBAAuBtjC,eAAmB7G,YAAA8Y,EACzD2tB,IAAe4D,uBAAyBhjC,gBAA2BrH,YAAA8Y,EACnE2tB,IAAesC,qBAAuB3iC,eAAyBpG,YAAA8Y,EAC/D2tB,IAAeuP,iBAAmBjwC,eAA+B/F,YAAA8Y,EACjE2tB,IAAeiE,uBAAyBllC,eAAqCxF,YAAA8Y,EAC7E2tB,IAAeqE,kBAAoBhlC,eAAY9F,YAAA8Y,EAC/C2tB,IAAesE,uBAAyBxjC,gBAAwBvH,YAAA8Y,EAChE3C,KAAYy0B,gBAAkB1iC,gBAAqBlI,YAAA8Y,EACnD2tB,IAAewE,aAAejmC,eAAc8T,K,IAIlCi9B,GAAiB,Q,6BC5GpBE,GAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,cAAzBA,EAAyB,8BAAzBA,EAAyB,0BAAzBA,EAAyB,sBAAzBA,EAAyB,sDAAzBA,CAAyB,MCgB/Br/B,IAAyCC,EAAA,GAAA7W,YAAA6W,EAC5Co/B,GAA0B5tB,MAAQ,IAAEroB,YAAA6W,EACpCo/B,GAA0BC,aAAc,GAAKl2C,YAAA6W,EAC7Co/B,GAA0BE,WAAY,GAAKn2C,YAAA6W,EAC3Co/B,GAA0BG,cAAgB,IAAEp2C,YAAA6W,EAC5Co/B,GAA0BI,2BAA4B,GAAKx/B,GAGjDy/B,GAA6B59B,YAAY,CACpDC,KAAMlZ,IAAU82C,sBAChB3/B,gBACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACL09B,KAAiCC,kCAAmC,SAAC72C,GACpE6D,KAAO7D,EAAOq2C,GAA0B5tB,OAAO,iBAAM,EAAE,IACvD5kB,KAAO7D,EAAOq2C,GAA0BG,eAAe,iBAAM,EAAE,IAC/D3yC,KAAO7D,EAAOq2C,GAA0BE,WAAW,kBAAM,CAAI,IAC7D1yC,KAAO7D,EAAOq2C,GAA0BC,aAAa,kBAAM,CAAK,GAClE,IAACl2C,YAAA8Y,EACA09B,KAAiCE,oCAAqC,SAAC92C,EAAKsC,GAAoD,IAAhDjC,EAAOiC,EAAPjC,QAC/EwD,KAAO7D,EAAOq2C,GAA0B5tB,OAAO,kBAAMpoB,EAAQ4oB,MAAM,IACnEplB,KAAO7D,EAAOq2C,GAA0BG,eAAe,kBAAMn2C,EAAQm2C,aAAa,IAClF3yC,KAAO7D,EAAOq2C,GAA0BE,WAAW,kBAAM,CAAK,IAC9D1yC,KAAO7D,EAAOq2C,GAA0BC,aAAa,kBAAM,CAAK,GAClE,IAACl2C,YAAA8Y,EACA09B,KAAiCG,oCAAqC,SAAC/2C,GACtE6D,KAAO7D,EAAOq2C,GAA0B5tB,OAAO,iBAAM,EAAE,IACvD5kB,KAAO7D,EAAOq2C,GAA0BG,eAAe,iBAAM,EAAE,IAC/D3yC,KAAO7D,EAAOq2C,GAA0BE,WAAW,kBAAM,CAAK,IAC9D1yC,KAAO7D,EAAOq2C,GAA0BC,aAAa,kBAAM,CAAI,GACjE,IAACl2C,YAAA8Y,EACA09B,KAAiCI,uCAAwC,SAACh3C,EAAKuZ,GAA4C,IAAxClZ,EAAOkZ,EAAPlZ,QAClFwD,KAAO7D,EAAOq2C,GAA0B5tB,OAAO,kBAAMpoB,CAAO,GAC9D,IAACD,YAAA8Y,EACA09B,KAAiCK,oCAAqC,SAACj3C,EAAKyZ,GAAgD,IAA5CpZ,EAAOoZ,EAAPpZ,QAC/EwD,KAAO7D,EAAOq2C,GAA0B5tB,OAAO,iBAAM,CAAC,CAAE1P,KAAM1Y,EAAQ0Y,KAAM9M,KAAM5L,EAAQ4L,MAAO,GACnG,IAAC7L,YAAA8Y,EACA09B,KAAiCM,wCAAyC,SAACl3C,GAC1E6D,KAAO7D,EAAOq2C,GAA0BI,2BAA2B,kBAAM,CAAK,GAChF,IAACr2C,YAAA8Y,EACA09B,KAAiCO,qCAAsC,SAACn3C,GACvE6D,KAAO7D,EAAOq2C,GAA0BI,2BAA2B,kBAAM,CAAK,GAChF,IAACr2C,YAAA8Y,EACA09B,KAAiCQ,kCAAmC,SAACp3C,GACpE6D,KAAO7D,EAAOq2C,GAA0BI,2BAA2B,kBAAM,CAAI,GAC/E,IAACr2C,YAAA8Y,EACA09B,KAAiCS,qCAAsC,SAACr3C,GACvE6D,KAAO7D,EAAOq2C,GAA0BI,2BAA2B,kBAAM,CAAI,GAC/E,IAACr2C,YAAA8Y,EACA09B,KAAiCU,qBAAsB,SAACt3C,EAAK6Z,GAA6C,IAAzCxZ,EAAOwZ,EAAPxZ,QAChEwD,KAAO7D,EAAOq2C,GAA0BG,eAAe,kBAAMn2C,CAAO,GACtE,IAACD,YAAA8Y,EACA09B,KAAiCW,aAAc,SAACv3C,GAC/C6D,KAAO7D,EAAOq2C,GAA0BG,eAAe,iBAAM,EAAE,IAC/D3yC,KAAO7D,EAAOq2C,GAA0B5tB,OAAO,iBAAM,EAAE,IACvD5kB,KAAO7D,EAAOq2C,GAA0BC,aAAa,kBAAM,CAAK,IAChEzyC,KAAO7D,EAAOq2C,GAA0BE,WAAW,kBAAM,CAAK,GAChE,IAACn2C,YAAA8Y,EACA09B,KAAiCY,yBAA0B,SAACx3C,GAC3D6D,KAAO7D,EAAOq2C,GAA0BI,2BAA2B,kBAAM,CAAK,GAChF,IAACv9B,K,IAIUw9B,GAAkC,Q,kBCzDpCe,GAAkC3+B,YAAY,CACzDC,KAAMlZ,IAAU2e,2BAChBxH,aAd8C,CAC9C0gC,2BAA4B,CAC1Bx0C,MAAO,GACPL,QAAS,GACT80C,QAAS,GACTC,gBAAiB,GACjBC,SAAU,GACVC,OAAQ,IAEVC,aAAc,IAMd9+B,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLqE,KAAsCkB,sCAAuC,SAC5Eze,EAAUsC,GAAA,IACRjC,EAAOiC,EAAPjC,QAAO,OAAAF,0BAAA,GACAH,GAAK,IAAE03C,2BAA4Br3C,GAAO,IAAGD,YAAA8Y,EACvDqE,KAAsCqB,sCAAuC,SAC5E5e,EAAUuZ,GAAA,IACRlZ,EAAOkZ,EAAPlZ,QAAO,OAAAF,0BAAA,GACAH,GAAK,IAAE03C,2BAA4Br3C,GAAO,IAAGD,YAAA8Y,EACvDqE,KAAsC2B,yCAA0C,SAC/Elf,EAAUyZ,GAAA,IACRpZ,EAAOoZ,EAAPpZ,QAAO,OAAAF,0BAAA,GACAH,GAAK,IAAE+3C,aAAc13C,GAAO,IAAGD,YAAA8Y,EACzCqE,KAAsCmC,uCAAwC,SAC7E1f,EAAU6Z,GACDA,EAAPxZ,QAAO,OAAAF,0BAAA,GACAH,GAAK,IAAE+3C,aAAc,IAAE,IAAG7+B,K,WC/B5B8+B,GAAiBl/B,YAAY,CACxCC,KAAMlZ,IAAU+f,UAChB5I,aAJoC,CAAEjF,mBAAmB,GAKzDkH,SAAQ7Y,YAAA,GACLuf,KAAqBE,mBAAqB/N,kB,UCRlCmmC,GAAiBn/B,YAAY,CACxCC,KAAMlZ,IAAUq4C,UAChBlhC,aAAc,CAAC,EACfiC,SAAQ7Y,YAAA,GACL+3C,KAAqBC,UAAYt4C,aAAYD,IAAUq4C,c,WCG/CG,GAAmBv/B,YAAY,CAC1CC,KAAMlZ,IAAUy4C,YAChBthC,aAViC,CACjCnF,wBAAwB,EACxB0mC,wBAAwB,EACxBC,qBAAqB,EACrBC,6BAA6B,EAC7BC,4BAA4B,GAM5Bz/B,SAAQ7Y,YAAA,GACL0f,KAAiB64B,0BAA4B/mC,kB,IAInCymC,GAAwB,Q,kBCtBjCO,GAAYC,aAAiBC,KAAkBC,cAIxCC,GAAclgC,YAAY,CACrCC,KAAMlZ,IAAUigC,OAChB9oB,aAAe4hC,IAAaK,KAAKC,MAAMN,KAAe,CAAC,EACvD3/B,SAAQ7Y,YAAA,GACL04C,KAAkBC,aAAej5C,aAAYD,IAAUigC,W,UCuBtD9oB,IAAoCC,EAAA,GAAA7W,YAAA6W,EACvC3F,IAAiB0H,KAAO,MAAI5Y,YAAA6W,EAC5B3F,IAAiB6nC,iBAAmB,IAAEliC,GAG5BmiC,GAAwBtgC,YAAY,CAC/CC,KAAMlZ,IAAUmQ,aAChBgH,gBACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EAELmgC,KAAwBC,cAAgBvpC,eAAiB3P,YAAA8Y,EACzDmgC,KAAwBE,SAAWnoC,eAAkBhR,YAAA8Y,EACrDmgC,KAAwBG,mBAAqB/nC,eAAqBrR,YAAA8Y,EAClEmgC,KAAwBI,qBAAuB9nC,eAAuBvR,YAAA8Y,EAGtEmgC,KAAwBK,eAAiBroC,eAAajR,YAAA8Y,EACtDmgC,KAAwBM,eAAiBnoC,gBAAgBpR,YAAA8Y,EAGzDmgC,KAAwB9oB,kBAAoBpgB,eAAmB/P,YAAA8Y,EAC/DmgC,KAAwBO,wCAA0CzpC,eAAmB/P,YAAA8Y,EAGrFmgC,KAAwBQ,cAAgB5pC,eAAoB7P,YAAA8Y,EAC5DmgC,KAAwBS,qBAAuBvpC,eAAmBnQ,YAAA8Y,EAClEmgC,KAAwBU,qBAAuB/oC,eAAsB5Q,YAAA8Y,EACrEmgC,KAAwBW,qBAAuB3pC,gBAAgBjQ,YAAA8Y,EAC/DmgC,KAAwBY,oBAAsBhpC,aAAiBpR,IAAUmQ,eAAakJ,K,IAI5EkgC,GAA6B,Q,QCxD/Bc,GAAephC,YAAY,CACtCC,KAAMlZ,IAAUs6C,QAChBnjC,aAJkC,CAAC,EAKnCiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLkhC,KAAmB/7B,MAAQve,aAAYD,IAAUs6C,UAAQ/5C,YAAA8Y,EACzDkhC,KAAmB9W,QAAUxjC,aAAYD,IAAUs6C,UAAQ/5C,YAAA8Y,EAC3DkhC,KAAmBvkC,MAAQ/V,aAAYD,IAAUs6C,UAAQjhC,K,IAI/CghC,GAAoB,Q,kBCRtBG,GAAqBvhC,YAAY,CAC5CC,KAAMlZ,IAAUy6C,cAChBtjC,aANwC,CACxC1D,OAAQ,IAMR2F,UAAQC,EAAA,GAAA9Y,YAAA8Y,EAELqhC,KAAyBjX,QAAUxjC,aAAYD,IAAUy6C,gBAAcl6C,YAAA8Y,EACvEqhC,KAAyBC,QAAU16C,aAAYD,IAAUy6C,gBAAcphC,K,IAI7DmhC,GAA0B,Q,QCJnCrjC,IAAoCC,EAAA,GAAA7W,YAAA6W,EACvCwjC,IAAqBrnC,yBAA2B,IAAEhT,YAAA6W,EAClDwjC,IAAqBxnC,0BAA4B,IAAE7S,YAAA6W,EACnDwjC,IAAqBvnC,uBAAyB,IAAE9S,YAAA6W,EAChDwjC,IAAqBtnC,wBAA0B,IAAE/S,YAAA6W,EACjDwjC,IAAqBznC,+BAAiC,IAAE5S,YAAA6W,EACxDwjC,IAAqBnnC,OAAS,CAAEC,YAAQM,EAAWL,QAAS,GAAIE,UAAW,KAAIuD,GAGrEyjC,GAAwB5hC,YAAY,CAC/CC,KAAMlZ,IAAU86C,yBAChB3jC,gBACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACL0hC,KAA4BC,8BAAgC9nC,aAAuBlT,IAAU86C,2BAAyBv6C,YAAA8Y,EACtH0hC,KAA4BE,2BAA6BznC,aAA2BxT,IAAU86C,2BAAyBv6C,YAAA8Y,EACvH0hC,KAA4BG,sBAAwBnnC,YAAsB/T,IAAU86C,2BAAyBzhC,K,IAInGwhC,GAA6B,Q,QCHtC1jC,GAA+B,CACnC7J,MAAO,KACPD,OAAQ,GACRG,QAAS,GACTuC,aAAcu2B,KAAgB6U,KAC9B3sC,eAAgB,GAChBG,qBAAqB,EACrBE,0BAA0B,EAC1BE,wBAAwB,EACxBC,WAAY,KACZC,YAAao3B,KAAW+U,OACxBjtC,yBAAyB,EACzBE,4BAA4B,EAC5B4B,YAAY,EACZtC,QAAS,CACPC,SAAU,GACVytC,aAAa,EACbC,WAAW,GAEblsC,aAAa,GAGFmsC,GAAatiC,YAAY,CACpCC,KAAMlZ,IAAU4tC,cAChBz2B,gBACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACLm0B,KAAiBC,aAAetgC,aAAUnN,IAAU4tC,gBAAcrtC,YAAA8Y,EAClEm0B,KAAiBS,SAAWxgC,aAASzN,IAAU4tC,gBAAcrtC,YAAA8Y,EAC7Dm0B,KAAiBU,YAAcpgC,YAAY9N,IAAU4tC,gBAAcrtC,YAAA8Y,EACnEm0B,KAAiBY,YAAc/+B,aAAYrP,IAAU4tC,gBAAcrtC,YAAA8Y,EACnEm0B,KAAiBwB,YAAct/B,YAAY1P,IAAU4tC,gBAAcrtC,YAAA8Y,EACnEm0B,KAAiBiB,iBAAmB3+B,aAAY9P,IAAU4tC,gBAAcrtC,YAAA8Y,EACxEm0B,KAAiBgO,eAAiB/sC,YAAwBzO,IAAU4tC,gBAAcrtC,YAAA8Y,EAClFm0B,KAAiBiO,yBAA2BltC,YAA6BvO,IAAU4tC,gBAAcrtC,YAAA8Y,EACjGm0B,KAAiB9+B,iBAAmBA,YAAiB1O,IAAU4tC,gBAAcrtC,YAAA8Y,EAC7Em0B,KAAiBkO,YAAcztC,aAAYjO,IAAU4tC,gBAAcrtC,YAAA8Y,EACnEm0B,KAAiBmO,WAAartC,eAAY/N,YAAA8Y,EAC1Cm0B,KAAiBoO,eAAiBhtC,gBAAsBrO,YAAA8Y,EACxDm0B,KAAiBqO,iBAAmB/sC,gBAAwBvO,YAAA8Y,EAC5Dm0B,KAAiBsO,WAAa9sC,YAAWhP,IAAU4tC,gBAAcrtC,YAAA8Y,EACjEm0B,KAAiBuO,YAAc9sC,aAAYjP,IAAU4tC,gBAAcrtC,YAAA8Y,EACnEm0B,KAAiBwO,kBAAoB9tC,aAAwBlO,IAAU4tC,gBAAcrtC,YAAA8Y,EACrFm0B,KAAiByO,qBAAuB7tC,aAA2BpO,IAAU4tC,gBAAcrtC,YAAA8Y,EAC3Fm0B,KAAiBp+B,YAAcD,YAAyBnP,IAAU4tC,gBAAcrtC,YAAA8Y,EAChFm0B,KAAiB0O,QAAUhtC,aAAmBlP,IAAU4tC,gBAAcrtC,YAAA8Y,EACtEm0B,KAAiBkC,WAAahiC,aAAc1N,IAAU4tC,gBAAcrtC,YAAA8Y,EACpEm0B,KAAiB0C,cAAgBxiC,aAAc1N,IAAU4tC,gBAAcrtC,YAAA8Y,EACvEm0B,KAAiByC,YAAcviC,aAAc1N,IAAU4tC,gBAAcrtC,YAAA8Y,EACrEm0B,KAAiB2C,cAAgBtiC,YAAc7N,IAAU4tC,gBAAcrtC,YAAA8Y,EACvEm0B,KAAiBiC,gBAAkBz/B,aAAmBhQ,IAAU4tC,gBAAcrtC,YAAA8Y,EAC9Em0B,KAAiB2O,iBAAkB,SAACh8C,EAAUsC,GAAA,IAAIjC,EAAOiC,EAAPjC,QAAO,OAAAF,0BAAA,GAAkBH,GAAK,IAAEkN,OAAQ7M,GAAO,IAAG6Y,K,IAI1FkiC,GAAkB,Q,QCvEpBa,GAAanjC,YAAY,CACpCC,KAAMlZ,IAAUq8C,MAChBllC,aAJgC,CAAC,EAKjCiC,SAAQ7Y,YAAA,GACL+7C,KAAiBC,SAAWt8C,aAAYD,IAAUq8C,U,iDnBdjDG,GAAmBxD,aAAiByD,KAAuBC,mBAGjE,GAAIF,GACF,IAAK,IAADG,GACIC,GAA0CxD,KAAKC,MAAMmD,KAChB,QAAvCG,GAACC,GAAwBC,sBAAc,IAAAF,MAAI,IAAMG,KAAKC,QACxD3L,EAA0BwL,GAAwBI,4BAEtD,CAAE,MAAOl+B,IACPzI,KAAO8wB,QAAQ5wB,KAAmB0mC,wBAAyB,sCAC7D,CAGF,I,4DAAM9lC,GAA6B,CACjC+lC,cAAc,EACdC,WAAY/L,GAGDgM,GAAmBnkC,YAAY,CAC1CC,KAAMlZ,IAAUq9C,YAChBlmC,gBACAiC,SAAQ7Y,YAAA,GACLk8C,KAAuBa,kBAAoB1qC,kB,qBoBX1CuE,IAAgCC,GAAA,GAAA7W,YAAA6W,GACnC3K,KAAiBC,SAAW,CAAC,GAACnM,YAAA6W,GAC9B3K,KAAiBO,sBAAuB,GAAKzM,YAAA6W,GAC7C3K,KAAiBG,YAAa,GAAKrM,YAAA6W,GACnC3K,KAAiBK,wBAAyB,GAAKvM,YAAA6W,GAC/C3K,KAAiBS,eAAiB,CAC/BqwC,wCAAyC,GACzCxwC,iCAAiC,IAClCqK,IAGQomC,GAAoBvkC,YAAY,CAC3CC,KAAMlZ,IAAUy9C,aAChBtmC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACLqkC,KAAwBC,YAAcnxC,YAAYxM,IAAUy9C,eAAal9C,YAAA8Y,GACzEqkC,KAAwBE,yCAA2C7wC,aAAgC/M,IAAUy9C,eAAal9C,YAAA8Y,GAC1HqkC,KAAwB9wC,WAAaD,aAAW3M,IAAUy9C,eAAal9C,YAAA8Y,GACvEqkC,KAAwB5wC,uBAAyBD,aAAuB7M,IAAUy9C,eAAal9C,YAAA8Y,GAC/FqkC,KAAwBG,kBAAoB5wC,aAAkBjN,IAAUy9C,eAAapkC,MCxBpFlC,ID4BSqmC,GAAyB,QC5BDpmC,GAAA,GAAA7W,YAAA6W,GACpC0mC,IAAsBrqC,OAAS,IAAElT,YAAA6W,GACjC0mC,IAAsBC,MAAQ,IAAEx9C,YAAA6W,GAChC0mC,IAAsBnrB,SAAW,IAAEpyB,YAAA6W,GACnC0mC,IAAsBpqC,OAAS,IAAEnT,YAAA6W,GACjC0mC,IAAsBE,aAAe,CAAE11C,YAAa,GAAI21C,cAAe,GAAI9nB,QAAS,GAAIrc,gBAAiB,KAAIvZ,YAAA6W,GAAC,eACjG,MAAIA,IAGP8mC,GAAkBjlC,YAAY,CACzCC,KAAMlZ,IAAU6rB,WAChB1U,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GAEL8kC,KAAsB1a,QAAUxjC,aAAYD,IAAU6rB,aAAWtrB,YAAA8Y,GACjE8kC,KAAsBxD,QAAU16C,aAAYD,IAAU6rB,aAAWxS,M,UCjBhElC,IAAiCC,GAAA,GAAA7W,YAAA6W,GACpCgnC,IAAiBC,gBAAkB,MAAI99C,YAAA6W,GACvCgnC,IAAiBE,eAAiB,CAAEC,eAAgB,KAAMC,kBAAmB,OAAMj+C,YAAA6W,GACnFgnC,IAAiBK,iBAAmB,MAAIl+C,YAAA6W,GACxCgnC,IAAiBM,cAAgB,CAAEC,gBAAiB,KAAMjrC,OAAQ,OAAM0D,IAG9DwnC,GAAoB3lC,YAAY,CAC3CC,KAAMlZ,IAAU6+C,aAChB1nC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACLylC,KAAyBC,iBAAkB,SAAC5+C,EAAKsC,GAA0D,IAAtDjC,EAAOiC,EAAPjC,QACpDwD,KAAO7D,EAAO,CAACi+C,IAAiBC,kBAAkB,kBAAM79C,EAAQw+C,WAAax+C,EAAQw+C,WAAa,CAAC,GACrG,IAACz+C,YAAA8Y,GACAylC,KAAyBG,gBAAiB,SAAC9+C,EAAKuZ,GAAsD,IAAlDlZ,EAAOkZ,EAAPlZ,QACnDwD,KAAO7D,EAAO,CAACi+C,IAAiBE,iBAAiB,iBAAO,CACtDC,eAAgB/9C,EAAQ+9C,eAAkBp+C,EAAM++C,gBAAgBX,eAAiBp+C,EAAM++C,gBAAgBX,eAAet6C,OAAOzD,EAAQ+9C,gBAAkB/9C,EAAQ+9C,eAAkB,GACjLC,kBAAmBh+C,EAAQg+C,kBAC5B,GACH,IAACj+C,YAAA8Y,GACAylC,KAAyB1uB,kBAAmB,SAACjwB,EAAKyZ,GAAsD,IAAlDpZ,EAAOoZ,EAAPpZ,QACrDwD,KAAO7D,EAAO,CAACi+C,IAAiBK,mBAAmB,kBAAMj+C,CAAO,GAClE,IAACD,YAAA8Y,GACAylC,KAAyBK,eAAgB,SAACh/C,EAAK6Z,GAA0D,IAAtDxZ,EAAOwZ,EAAPxZ,QAClDwD,KAAO7D,EAAO,CAACi+C,IAAiBM,gBAAgB,kBAAMl+C,CAAO,GAC/D,IAACD,YAAA8Y,GACAylC,KAAyBM,sBAAuB,SAACj/C,GAAK,OAAKgX,EAAY,IAAA5W,YAAA8Y,GACvEylC,KAAyBO,uBAAwB,SAACl/C,EAAK+Z,GAAWA,EAAP1Z,QAC1DwD,KAAO7D,EAAO,CAACi+C,IAAiBK,mBAAmB,kBAAM,IAAI,GAC/D,IAACplC,M,UC3COimC,GAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,gDAAtBA,EAAsB,wCAAtBA,EAAsB,oDAAtBA,EAAsB,kDAAtBA,EAAsB,gCAAtBA,CAAsB,M,UCoB5BC,GAAwC,CAC5Cl7C,GAAI,GACJmxB,YAAa,GACbgqB,0BAA2B,GAC3BC,iBAAkBC,KAAoBC,YACtCC,cAAe,GACfC,cAAe,GACfC,eAAgBC,KAAkCC,YAG9C7oC,IAAsCC,GAAA,GAAA7W,YAAA6W,GACzCkoC,GAAuBW,0BAA2B,GAAK1/C,YAAA6W,GACvDkoC,GAAuBY,uBAAyB,IAAE3/C,YAAA6W,GAClDkoC,GAAuB7yB,mBAAqB8yB,IAAUh/C,YAAA6W,GACtDkoC,GAAuBa,wBAA0B,MAAI5/C,YAAA6W,GACrDkoC,GAAuBc,eAAiB,MAAIhpC,IAOlCipC,GAA2BpnC,YAAY,CAClDC,KAAMlZ,IAAUsgD,oBAChBnpC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACLknC,KAA+BC,gCAAiC,SAC/DrgD,EAAKsC,GAED,IADFjC,EAAOiC,EAAPjC,SAEK,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASuQ,OACL/M,KAAO7D,EAAO,CAACm/C,GAAuBY,yBAAyB,kBAAM1/C,EAAQuQ,KAAK,IAClF/M,KAAO7D,EAAO,CAACm/C,GAAuBY,yBAAyB,iBAAM,EAAE,GAC7E,IAAC3/C,YAAA8Y,GAEAknC,KAA+BE,oCAAqC,SACnEtgD,EAAKuZ,GAED,IADFlZ,EAAOkZ,EAAPlZ,QAEFwD,KAAO7D,EAAO,CAACm/C,GAAuBW,2BAA2B,kBAAM,CAAI,IAC3Ej8C,KACE7D,EACA,CAACm/C,GAAuB7yB,qBACxB,iBACG,CACCpoB,GAAI7D,EAAQ6D,GACZmxB,YAAah1B,EAAQg1B,YACrBgqB,0BAA2Bh/C,EAAQg/C,0BACnCC,iBAAkBj/C,EAAQi/C,iBAC1BG,cAAep/C,EAAQo/C,cACvBC,cAAer/C,EAAQq/C,cACvBC,eAAgBt/C,EAAQs/C,eACzB,GAEP,IAACv/C,YAAA8Y,GAEAknC,KAA+BG,yBAA0B,SAACvgD,GACzD6D,KAAO7D,EAAO,CAACm/C,GAAuBW,2BAA2B,kBAAM,CAAK,IAC5Ej8C,KAAO7D,EAAO,CAACm/C,GAAuB7yB,qBAAqB,kBAAM8yB,EAAU,GAC7E,IAACh/C,YAAA8Y,GAEAknC,KAA+BI,gCAAiC,SAACxgD,GAChE6D,KAAO7D,EAAO,CAACm/C,GAAuBa,0BAA0B,kBAAM,IAAI,GAC5E,IAAC5/C,YAAA8Y,GAEAknC,KAA+BK,kCAAmC,SAACzgD,EAAKyZ,GAAmB,IAAfpZ,EAAOoZ,EAAPpZ,QAC3EwD,KAAO7D,EAAO,CAACm/C,GAAuBY,yBAAyB,kBAC7D//C,EAAMm/C,GAAuBY,wBAAwBz8C,QAAO,SAACo9C,GAAI,OAAKA,EAAKx8C,KAAO7D,EAAQ6D,EAAE,GAAC,GAEjG,IAAC9D,YAAA8Y,GAEAknC,KAA+BO,kCAAmC,SAAC3gD,EAAOK,GACzEwD,KAAO7D,EAAO,CAACm/C,GAAuBa,0BAA0B,kBAAM3/C,EAAQA,QAAQ6D,EAAE,GAC1F,IAAC9D,YAAA8Y,GAEAknC,KAA+BQ,kCAAmC,SAAC5gD,EAAK6Z,GAAmB,IAAfxZ,EAAOwZ,EAAPxZ,QAC3EwD,KAAO7D,EAAO,CAACm/C,GAAuBa,0BAA0B,kBAAM3/C,CAAO,GAC/E,IAACD,YAAA8Y,GAEAknC,KAA+BS,yBAA0B,SAAC7gD,EAAK+Z,GAAmB,IAAf1Z,EAAO0Z,EAAP1Z,QAClEwD,KAAO7D,EAAO,CAACm/C,GAAuBc,iBAAiB,kBAAM5/C,CAAO,GACtE,IAACD,YAAA8Y,GAEAknC,KAA+BU,qBAAsB,SAAC9gD,GACrD6D,KAAO7D,EAAO,CAACm/C,GAAuBc,iBAAiB,kBAAM,IAAI,GACnE,IAAC/mC,MCnGO6nC,GAAmC,SAAnCA,GAAmC,OAAnCA,EAAmC,8BAAnCA,EAAmC,cAAnCA,EAAmC,sBAAnCA,CAAmC,M,UCczC/pC,IAAmDC,GAAA,GAAA7W,YAAA6W,GACtD8pC,GAAoCC,cAAgB,CACnD98C,GAAI,GACJ+8C,cAAe,GACfC,SAAU,GACVC,qBAAsB,GACtB7vB,mBAAoB,CAClBwY,SAAU,GACV/wB,KAAM,GACNqoC,wBAAwB,EACxBC,SAAU,MAEbjhD,YAAA6W,GACA8pC,GAAoCpiC,MAAQ,CAAE1S,KAAM,CAAC,EAAGsH,OAAQ,EAAG+tC,WAAY,GAAI7tC,QAAS,CAAC,IAAGrT,YAAA6W,GAChG8pC,GAAoCxK,WAAY,GAAKt/B,IAG3CsqC,GAAuCzoC,YAAY,CAC9DC,KAAMlZ,IAAU2hD,gCAChBxqC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACLuoC,KAA2CC,yCAA0C,SAAC1hD,GACrF6D,KAAO7D,EAAO+gD,GAAoCxK,WAAW,kBAAM,CAAI,GACzE,IAACn2C,YAAA8Y,GACAuoC,KAA2CE,2CAA4C,SACtF3hD,EAAKsC,GAED,IADFjC,EAAOiC,EAAPjC,QAEFwD,KAAO7D,EAAO+gD,GAAoCC,eAAe,kBAAM3gD,CAAO,IAC9EwD,KAAO7D,EAAO+gD,GAAoCpiC,OAAO,WAAO,IAChE9a,KAAO7D,EAAO+gD,GAAoCxK,WAAW,kBAAM,CAAK,GAC1E,IAACn2C,YAAA8Y,GACAuoC,KAA2CG,2CAA4C,SACtF5hD,EAAKuZ,GAED,IADFlZ,EAAOkZ,EAAPlZ,QAEFwD,KAAO7D,EAAO+gD,GAAoCC,eAAe,WAAO,IACxEn9C,KAAO7D,EAAO+gD,GAAoCpiC,OAAO,kBAAMte,CAAO,IACtEwD,KAAO7D,EAAO+gD,GAAoCxK,WAAW,kBAAM,CAAK,GAC1E,IAACn2C,YAAA8Y,GACAuoC,KAA2CI,oBAAqB,SAAC7hD,GAChE6D,KAAO7D,EAAO+gD,GAAoCC,eAAe,WAAe,IAChFn9C,KAAO7D,EAAO+gD,GAAoCxK,WAAW,kBAAM,CAAK,GAC1E,IAACr9B,M,IAIUqoC,GAA4C,Q,QCnE/CO,GAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,gDAAtBA,EAAsB,wCAAtBA,EAAsB,oDAAtBA,EAAsB,kDAAtBA,EAAsB,kDAAtBA,CAAsB,M,oBCqB5B1C,GAAwC,CAC5C2C,cAAe,GACf1sB,YAAa,GACbgqB,0BAA2B,GAC3BC,iBAAkB0C,KAAgCxC,YAClDyC,UAAW,GACXC,aAAc,GACdvC,eAAgBwC,KAA+BtC,WAC/C7qC,SAAU,GACVotC,sBAAuB,GACvBC,sBAAuB,GACvBC,qBAAsB,GACtB/tC,OAAQ,GACRguC,eAAe,EACfC,iBAAkBC,KAA0BC,OAC5CC,wBAAyBC,KAA6BC,iBAGlD7rC,IAAsCC,GAAA,GAAA7W,YAAA6W,GACzC6qC,GAAuBgB,0BAA2B,GAAK1iD,YAAA6W,GACvD6qC,GAAuBiB,uBAAyB,IAAE3iD,YAAA6W,GAClD6qC,GAAuBr1B,mBAAqB2yB,IAAUh/C,YAAA6W,GACtD6qC,GAAuBkB,wBAA0B,MAAI5iD,YAAA6W,GACrD6qC,GAAuBmB,wBAA0B,MAAIhsC,IAG3CisC,GAA2BpqC,YAAY,CAClDC,KAAMlZ,IAAUsjD,oBAChBnsC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACLkqC,KAA+BC,gCAAiC,SAC/DrjD,EAAKsC,GAED,IADFjC,EAAOiC,EAAPjC,QAEFA,EAAQuE,OAAS,EACbf,KAAO7D,EAAO,CAAC8hD,GAAuBiB,yBAAyB,kBAAM1iD,CAAO,IAC5EwD,KAAO7D,EAAO,CAAC8hD,GAAuBiB,yBAAyB,iBAAM,EAAE,GAC7E,IAAC3iD,YAAA8Y,GAEAkqC,KAA+BE,oCAAqC,SACnEtjD,EAAKuZ,GAED,IADFlZ,EAAOkZ,EAAPlZ,QAEFwD,KAAO7D,EAAO,CAAC8hD,GAAuBgB,2BAA2B,kBAAM,CAAI,IAC3E9iD,EAAM8hD,GAAuBr1B,oBAAsBpsB,CACrD,IAACD,YAAA8Y,GAEAkqC,KAA+BG,yBAA0B,SAACvjD,GACzD6D,KAAO7D,EAAO,CAAC8hD,GAAuBgB,2BAA2B,kBAAM,CAAK,IAC5Ej/C,KAAO7D,EAAO,CAAC8hD,GAAuBr1B,qBAAqB,kBAAM2yB,EAAU,GAC7E,IAACh/C,YAAA8Y,GAEAkqC,KAA+BI,gCAAiC,SAACxjD,GAChE6D,KAAO7D,EAAO,CAAC8hD,GAAuBkB,0BAA0B,kBAAM,IAAI,GAC5E,IAAC5iD,YAAA8Y,GAEAkqC,KAA+BK,kCAAmC,SAACzjD,EAAKyZ,GAAmB,IAAfpZ,EAAOoZ,EAAPpZ,QAC3EwD,KAAO7D,EAAO,CAAC8hD,GAAuBiB,yBAAyB,kBAC7D/iD,EAAM8hD,GAAuBiB,wBAAwBz/C,QAAO,SAACo9C,GAAI,OAAKA,EAAKqB,gBAAkB1hD,EAAQ6D,EAAE,GAAC,GAE5G,IAAC9D,YAAA8Y,GAEAkqC,KAA+BM,kCAAmC,SAAC1jD,EAAOK,GACzEwD,KACE7D,EACA,CAAC8hD,GAAuBkB,0BACxB,kBAAM3iD,EAAQA,QAAQsjD,4BAA4B5B,aAAa,GAEnE,IAAC3hD,YAAA8Y,GAEAkqC,KAA+BQ,iCAAkC,SAAC5jD,EAAOK,GACxEwD,KAAO7D,EAAO,CAAC8hD,GAAuBmB,0BAA0B,kBAAM,IAAIptC,MAAMxV,EAAQA,QAAQ,GAClG,IAACD,YAAA8Y,GAEAkqC,KAA+BS,iCAAkC,SAAC7jD,EAAOK,GACxEwD,KAAO7D,EAAO,CAAC8hD,GAAuBmB,0BAA0B,kBAAM,IAAIptC,MAAMxV,EAAQA,QAAQ,GAClG,IAACD,YAAA8Y,GAEAkqC,KAA+BU,kCAAmC,SAAC9jD,EAAK6Z,GAAmB,IAAfxZ,EAAOwZ,EAAPxZ,QAC3EwD,KAAO7D,EAAO,CAAC8hD,GAAuBkB,0BAA0B,kBAAM3iD,EAAQ6D,EAAE,GAClF,IAACgV,MCrGO6qC,GAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,gDAAtBA,EAAsB,wCAAtBA,EAAsB,oDAAtBA,EAAsB,kDAAtBA,EAAsB,kDAAtBA,CAAsB,M,UCoB5B3E,GAAuC,CAC3C2C,cAAe,GACf1sB,YAAa,GACbgqB,0BAA2B,GAC3BC,iBAAkB0C,KAAgCxC,YAClDyC,UAAW,GACXtC,eAAgBwC,KAA+BtC,WAC/C7qC,SAAU,GACVwtC,iBAAkBC,KAA0BuB,eAC5CC,sBAAuB,IAGnBjtC,IAAsCC,GAAA,GAAA7W,YAAA6W,GACzC8sC,GAAuBG,0BAA2B,GAAK9jD,YAAA6W,GACvD8sC,GAAuBI,uBAAyB,IAAE/jD,YAAA6W,GAClD8sC,GAAuBn3B,mBAAqBwyB,IAAUh/C,YAAA6W,GACtD8sC,GAAuBK,wBAA0B,MAAIhkD,YAAA6W,GACrD8sC,GAAuBM,wBAA0B,MAAIptC,IAG3CqtC,GAA2BxrC,YAAY,CAClDC,KAAMlZ,IAAU0kD,oBAChBvtC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACLsrC,KAA+BC,gCAAiC,SAC/DzkD,EAAKsC,GAED,IADFjC,EAAOiC,EAAPjC,QAEFA,EAAQuE,OAAS,EACbf,KAAO7D,EAAO,CAAC+jD,GAAuBI,yBAAyB,kBAAM9jD,CAAO,IAC5EwD,KAAO7D,EAAO,CAAC+jD,GAAuBI,yBAAyB,iBAAM,EAAE,GAC7E,IAAC/jD,YAAA8Y,GAEAsrC,KAA+BE,oCAAqC,SACnE1kD,EAAKuZ,GAED,IADFlZ,EAAOkZ,EAAPlZ,QAEFwD,KAAO7D,EAAO,CAAC+jD,GAAuBG,2BAA2B,kBAAM,CAAI,IAC3ElkD,EAAM+jD,GAAuBn3B,oBAAsBvsB,CACrD,IAACD,YAAA8Y,GAEAsrC,KAA+BG,yBAA0B,SAAC3kD,GACzD6D,KAAO7D,EAAO,CAAC+jD,GAAuBG,2BAA2B,kBAAM,CAAK,IAC5ErgD,KAAO7D,EAAO,CAAC+jD,GAAuBn3B,qBAAqB,kBAAMwyB,EAAU,GAC7E,IAACh/C,YAAA8Y,GAEAsrC,KAA+BI,gCAAiC,SAAC5kD,GAChE6D,KAAO7D,EAAO,CAAC+jD,GAAuBK,0BAA0B,kBAAM,IAAI,GAC5E,IAAChkD,YAAA8Y,GAEAsrC,KAA+BK,kCAAmC,SAAC7kD,EAAKyZ,GAAmB,IAAfpZ,EAAOoZ,EAAPpZ,QAC3EwD,KAAO7D,EAAO,CAAC+jD,GAAuBI,yBAAyB,kBAC7DnkD,EAAM+jD,GAAuBI,wBAAwB7gD,QAAO,SAACo9C,GAAI,OAAKA,EAAKqB,gBAAkB1hD,EAAQ6D,EAAE,GAAC,GAE5G,IAAC9D,YAAA8Y,GAEAsrC,KAA+BM,kCAAmC,SAAC9kD,EAAOK,GACzEwD,KACE7D,EACA,CAAC+jD,GAAuBK,0BACxB,kBAAM/jD,EAAQA,QAAQsjD,4BAA4B5B,aAAa,GAEnE,IAAC3hD,YAAA8Y,GAEAsrC,KAA+BO,iCAAkC,SAAC/kD,EAAOK,GACxEwD,KAAO7D,EAAO,CAAC+jD,GAAuBM,0BAA0B,kBAAM,IAAIxuC,MAAMxV,EAAQA,QAAQ,GAClG,IAACD,YAAA8Y,GAEAsrC,KAA+BQ,iCAAkC,SAAChlD,EAAOK,GACxEwD,KAAO7D,EAAO,CAAC+jD,GAAuBM,0BAA0B,kBAAM,IAAIxuC,MAAMxV,EAAQA,QAAQ,GAClG,IAACD,YAAA8Y,GAEAsrC,KAA+BS,kCAAmC,SAACjlD,EAAK6Z,GAAmB,IAAfxZ,EAAOwZ,EAAPxZ,QAC3EwD,KAAO7D,EAAO,CAAC+jD,GAAuBK,0BAA0B,kBAAM/jD,EAAQ6D,EAAE,GAClF,IAACgV,M,8BCxFQlC,GAAoC,CAC7CkuC,WAAY3U,KAAW4U,KACvBC,KAAM5U,KAAK6U,MACXC,KAAM7U,KAAK4U,MACXE,WAAY7U,KAAW2U,MACvBG,GAAI7U,KAAG0U,MACPI,SAAU7U,KAASyU,OAGVK,GAAyB5sC,YAAY,CAC9CC,KAAMlZ,IAAU8lD,kBAChB3uC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACH0sC,KAA6BC,0BAA2B,SAAC7lD,EAAKsC,GAAW,OAAAA,EAAPjC,OAAiE,IAAAD,YAAA8Y,GACnI0sC,KAA6B5oC,OAAQ,SAAChd,GAAK,OAAagX,EAAY,IAAAkC,MAIhE4sC,GAA8BhtC,YAAY,CACnDC,KAAMlZ,IAAUkmD,uBAChB/uC,aAAc,CACVgvC,WAAW,GAEf/sC,SAAQ7Y,YAAA,GACHwlD,KAA6BK,qBAAsB,SAACjmD,EAAKuZ,GAA2C,IAAvClZ,EAAOkZ,EAAPlZ,QAE1D,OADAL,EAAMgmD,UAAY3lD,EACXL,CACX,MCsBKkmD,GAA6B,SAACC,GAAwC,OAC/EA,EAAQC,QAAO,SAACC,EAAKC,GAGjB,OAFAD,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,CAAC,EAC5CD,EAAOE,qBAAuBH,EAAIC,EAAOC,QAASD,EAAOE,oBAAsBF,EAAOr6C,MAAQ,IACvFo6C,CACX,GAAG,CAAC,EAA6C,EAExCI,GAA4B,SAACN,GAAwC,OAC9EA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAADI,EAG5B,OAFAL,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,CAAC,EAC5CD,EAAOE,qBAAuBH,EAAIC,EAAOC,QAASD,EAAOE,qBAAwC,QAAlBE,EAAAJ,EAAOK,mBAAW,IAAAD,OAAA,EAAlBA,EAAoBE,QAAS,GACrGP,CACX,GAAG,CAAC,EAA+B,EAkB1BQ,GAA0B,SAACV,GAAwC,OAC5EA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAADQ,EAG5B,OAFAT,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,CAAC,EAC5CD,EAAOS,mBAAqBV,EAAIC,EAAOC,QAASD,EAAOS,mBAAsC,QAAlBD,EAAAR,EAAOK,mBAAW,IAAAG,OAAA,EAAlBA,EAAoBF,QAAS,GACjGP,CACX,GAAG,CAAC,EAA+B,EAqC1BW,GAA+B,SAACb,GAAwC,OACjFA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAADW,EAAAC,EAAAC,EAU5B,OATAd,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,GAC3CD,EAAOc,0BAA4Bf,EAAIC,EAAOC,QAASlhC,KACnD,CACIzU,OAAyB,QAAlBq2C,EAAAX,EAAOK,mBAAW,IAAAM,OAAA,EAAlBA,EAAoBL,QAAS,EACpCS,aAA+B,QAAlBH,EAAAZ,EAAOK,mBAAW,IAAAO,OAAA,EAAlBA,EAAoBI,YAAa,GAC9CC,SAA2B,QAAlBJ,EAAAb,EAAOK,mBAAW,IAAAQ,OAAA,EAAlBA,EAAoBK,aAAc,EAC3CjmD,IAAK+kD,EAAOc,2BAGbf,CACX,GAAG,CAAC,EAAgC,EAI3BoB,GAA0B,SAACtB,GAA8C,IAADuB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3EC,EAAS7B,EAAQ17B,MAAK,SAAA67B,GAAM,OAAGA,EAAOA,SAAWxV,KAAOmX,MAAM,IAC9DC,EAAa/B,EAAQ17B,MAAK,SAAA67B,GAAM,OAAGA,EAAOA,SAAWxV,KAAOqX,eAAe,IAC3EC,EAAQjC,EAAQ17B,MAAK,SAAA67B,GAAM,OAAGA,EAAOA,SAAWxV,KAAOuX,KAAK,IAClE,MAAO,CACHL,QAAc,OAANA,QAAM,IAANA,GAAY,QAANN,EAANM,EAAQ/7C,YAAI,IAAAy7C,GAAK,QAALC,EAAZD,EAAe,UAAE,IAAAC,OAAX,EAANA,EAAmBf,QAAS,EACpCsB,YAAsB,OAAVA,QAAU,IAAVA,GAAgB,QAANN,EAAVM,EAAYj8C,YAAI,IAAA27C,GAAK,QAALC,EAAhBD,EAAmB,UAAE,IAAAC,OAAX,EAAVA,EAAuBjB,QAAS,EAC5C0B,KAAU,OAALF,QAAK,IAALA,GAAW,QAANN,EAALM,EAAOn8C,YAAI,IAAA67C,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAX,EAALA,EAAkBnB,QAAS,EAExC,EC/GM2B,GAAc,CAChBh1C,OAAQi1C,KAA8BC,UACtCnlD,OAAQolD,IAGN1xC,IAA+BC,GAAA,GAAA7W,YAAA6W,GAChC0xC,IAAgBC,aAAeL,IAAWnoD,YAAA6W,GAC1C0xC,IAAgBE,YAAcN,IAAWnoD,YAAA6W,GACzC0xC,IAAgBG,kBAAoBP,IAAWnoD,YAAA6W,GAC/C0xC,IAAgBI,0BAA4BR,IAAWnoD,YAAA6W,GACvD0xC,IAAgBK,cAAgBT,IAAWnoD,YAAA6W,GAC3C0xC,IAAgBM,YAAcV,IAAWnoD,YAAA6W,GACzC0xC,IAAgBO,UAAYX,IAAWnoD,YAAA6W,GACvC0xC,IAAgBQ,gBAAkBZ,IAAWnoD,YAAA6W,GAC7C0xC,IAAgBS,kBAAoBb,IAAWtxC,IAGvCoyC,GAAmBvwC,YAAY,CACxCC,KAAMlZ,IAAUypD,YAChBtyC,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACHqwC,KAAuBvsC,OAAQ,kBAAMhG,EAAY,IAAA5W,YAAA8Y,GACjDqwC,KAAuBC,YAAa,SAACxpD,EAAKsC,GAAmB,IAAfjC,EAAOiC,EAAPjC,QAC3CwD,KAAO7D,EAAO,CAACK,EAAQkB,MAAiC,iBACpD,CACIgS,OAAQi1C,KAA8BgB,WACtClmD,OAAQjD,EAAQiD,OACnB,GAET,IAAClD,YAAA8Y,GACAqwC,KAAuBE,aAAc,SAACzpD,EAAKuZ,GAAmB,IAAflZ,EAAOkZ,EAAPlZ,QAC5CwD,KAAO7D,EAAO,CAACK,EAAQkB,MAAiC,kBAAApB,0BAAC,CAAD,EAE7CH,EAAMK,EAAQkB,MAA+B,IAChDgS,OAAQi1C,KAA8Bx9B,SAAO,GAGzD,IAAC5qB,YAAA8Y,GACAqwC,KAAuBG,eAAgB,SAAC1pD,EAAKyZ,GAAmB,IAAfpZ,EAAOoZ,EAAPpZ,QAC9CwD,KAAO7D,EAAO,CAACK,EAAQkB,MAAiC,kBAAApB,0BAAC,CAAD,EAE7CH,EAAMK,EAAQkB,MAA+B,IAChDgS,OAAQi1C,KAA8B3yC,OAAK,GAGvD,IAACzV,YAAA8Y,GACAqwC,KAAuBI,YAAa,SAAC3pD,EAAK6Z,GAGnC,IAHuCxZ,EAAOwZ,EAAPxZ,QAI3CupD,GAAe5pD,EAAOK,EAAQwpD,YAAYC,iBAC1CC,GAAiB/pD,EAAOK,EAAQwpD,YAAaxpD,EAAQkB,IACzD,IAAC2X,MAIH0wC,GAAiB,SAAC5pD,EAAyCgqD,GAC1DhqD,EAAM2oD,IAAgBE,aAAaoB,aAAeD,GACjDnmD,KAAO7D,EAAO,CAAC2oD,IAAgBE,cAAc,kBAAA1oD,0BAAC,CAAD,EACtCH,EAAM2oD,IAAgBE,cAAY,IACrCt1C,OAAQi1C,KAA8BvN,OACtCgP,WAAYD,GAAW,GAGnC,EAEMD,GAAmB,SACrB/pD,EACA6pD,EACAtoD,GAEAsoD,EAAYK,UAAUnnC,SAAQ,SAACiG,GAC3B,OAAQA,EAAImhC,WACR,KAAKnZ,KAAUoZ,UACP7oD,IAAQonD,IAAgBG,oBACxB9oD,EAAM2oD,IAAgBC,cAAcr1C,SAAWi1C,KAA8BvN,QAC1Ep3C,KAAO7D,EAAO,CAAC2oD,IAAgBC,eAAe,kBAAAzoD,0BAAC,CAAD,EAC1CH,EAAM2oD,IAAgBC,eAAa,IACtCr1C,OAAQi1C,KAA8BvN,OACtCgP,YD3GqB9D,EC2GoBn9B,EAAIm9B,QD1GjEA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAAD+D,EAAAC,EAAAC,EAU5B,OATAlE,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,GAC3CD,EAAOC,QAAUF,EAAIC,EAAOC,QAASlhC,KACjC,CACIzU,OAAyB,QAAlBy5C,EAAA/D,EAAOK,mBAAW,IAAA0D,OAAA,EAAlBA,EAAoBzD,QAAS,EACpCS,aAA+B,QAAlBiD,EAAAhE,EAAOK,mBAAW,IAAA2D,OAAA,EAAlBA,EAAoBhD,YAAa,GAC9CC,SAA2B,QAAlBgD,EAAAjE,EAAOK,mBAAW,IAAA4D,OAAA,EAAlBA,EAAoB/C,aAAc,EAC3CjmD,IAAK+kD,EAAOC,SAGbF,CACX,GAAG,CAAC,MAZoC,IAACF,CC2GgC,IAEzDtiD,KAAO7D,EAAO,CAAC2oD,IAAgBG,oBAAoB,kBAAA3oD,0BAAC,CAAD,EAExCH,EAAM2oD,IAAgBG,oBAAkB,IAC3Cv1C,OAAQi1C,KAA8BvN,OACtCgP,YDlGiB9D,ECkGwBn9B,EAAIm9B,QDjGrEA,EAAQC,QAAO,SAACC,EAAKC,GAEjB,OADAD,EAAIC,EAAOC,QAAUD,EAAOr6C,MAAQ,GAC7Bo6C,CACX,GAAG,CAAC,MAJoC,IAACF,CCkGoC,KAI7D5kD,IAAQonD,IAAgBI,2BACxBllD,KAAO7D,EAAO,CAAC2oD,IAAgBI,4BAA4B,kBAAA5oD,0BAAC,CAAD,EAEhDH,EAAM2oD,IAAgBI,4BAA0B,IACnDx1C,OAAQi1C,KAA8BvN,OACtCgP,WAAY,CACRO,WDtGYrE,ECsG2Bn9B,EAAIm9B,QDrGvEA,EAAQC,QAAO,SAACC,EAAKC,GAGjB,OAFAD,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,CAAC,EAC5CF,EAAIC,EAAOC,QAASD,EAAOmE,sBAAwBnE,EAAOA,QAAUA,EAAOr6C,MAAQ,GAC5Eo6C,CACX,GAAG,CAAC,ICkGwBqE,UAAWjD,GAAwBz+B,EAAIm9B,YDvG5B,IAACA,CCwGf,IAGb,MACJ,KAAKnV,KAAUR,KACPjvC,IAAQonD,IAAgBK,eACxBnlD,KAAO7D,EAAO,CAAC2oD,IAAgBK,gBAAgB,kBAAA7oD,0BAAC,CAAD,EAEpCH,EAAM2oD,IAAgBK,gBAAc,IACvCz1C,OAAQi1C,KAA8BvN,OACtCgP,YDzGa9D,ECyGwBn9B,EAAIm9B,QDxGjEA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAADqE,EAM5B,OALAtE,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,GAC3CD,EAAOsE,QAAUvE,EAAIC,EAAOC,QAASlhC,KAAK,CACtCtM,KAAMutC,EAAOsE,OACbC,GAAqB,QAAlBF,EAAArE,EAAOK,mBAAW,IAAAgE,OAAA,EAAlBA,EAAoB/D,QAAS,IAE7BP,CACX,GAAG,CAAC,MARgC,IAACF,CCyGoC,IAG7D,MACJ,KAAKnV,KAAUL,GACPpvC,IAAQonD,IAAgBO,WACxBrlD,KAAO7D,EAAO,CAAC2oD,IAAgBO,YAAY,kBAAA/oD,0BAAC,CAAD,EAEhCH,EAAM2oD,IAAgBO,YAAU,IACnC31C,OAAQi1C,KAA8BvN,OACtCgP,WAAY,CACRa,ODnEK3E,ECmEuBn9B,EAAIm9B,QDlE5DA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAADyE,EAAAC,EAAAC,EAU5B,OATA5E,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,GAC3CD,EAAOS,kBAAoBV,EAAIC,EAAOC,QAASlhC,KAC3C,CACIzU,OAAyB,QAAlBm6C,EAAAzE,EAAOK,mBAAW,IAAAoE,OAAA,EAAlBA,EAAoBnE,QAAS,EACpCS,aAA+B,QAAlB2D,EAAA1E,EAAOK,mBAAW,IAAAqE,OAAA,EAAlBA,EAAoB1D,YAAa,GAC9CC,SAA2B,QAAlB0D,EAAA3E,EAAOK,mBAAW,IAAAsE,OAAA,EAAlBA,EAAoBzD,aAAc,EAC3CjmD,IAAK+kD,EAAOS,mBAGbV,CACX,GAAG,CAAC,ICwDwB6E,IAAKrE,GAAwB79B,EAAIm9B,YDpE7B,IAACA,CCqER,IAGb,MACJ,KAAKnV,KAAUP,KACPlvC,IAAQonD,IAAgBM,aACxBplD,KAAO7D,EAAO,CAAC2oD,IAAgBM,cAAc,kBAAA9oD,0BAAC,CAAD,EAElCH,EAAM2oD,IAAgBM,cAAY,IACrC11C,OAAQi1C,KAA8BvN,OACtCgP,WAAY,CACRa,ODvGO3E,ECuGuBn9B,EAAIm9B,QDtG9DA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAAD6E,EAAAC,EAAAC,EAU5B,OATAhF,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,GAC3CD,EAAOE,oBAAsBH,EAAIC,EAAOC,QAASlhC,KAC7C,CACIzU,OAAyB,QAAlBu6C,EAAA7E,EAAOK,mBAAW,IAAAwE,OAAA,EAAlBA,EAAoBvE,QAAS,EACpCS,aAA+B,QAAlB+D,EAAA9E,EAAOK,mBAAW,IAAAyE,OAAA,EAAlBA,EAAoB9D,YAAa,GAC9CC,SAA2B,QAAlB8D,EAAA/E,EAAOK,mBAAW,IAAA0E,OAAA,EAAlBA,EAAoB7D,aAAc,EAC3CjmD,IAAK+kD,EAAOE,qBAGbH,CACX,GAAG,CAAC,IC4FwB6E,IAAKzE,GAA0Bz9B,EAAIm9B,SACnCmF,UAAWpF,GAA2Bl9B,EAAIm9B,YDzGpC,IAACA,CC0GV,IAIb,MACJ,KAAKnV,KAAUua,eACPhqD,IAAQonD,IAAgBS,mBACxBvlD,KAAO7D,EAAO,CAAC2oD,IAAgBS,oBAAoB,kBAAAjpD,0BAAC,CAAD,EAExCH,EAAM2oD,IAAgBS,oBAAkB,IAC3C71C,OAAQi1C,KAA8BvN,OACtCgP,WAAY,CACRrD,ODtEiBT,ECsEuBn9B,EAAIm9B,QDrExEA,EAAQC,QAAO,SAACC,EAAG/jD,GAAwD,IAApDikD,EAAMjkD,EAANikD,OAAQhB,EAAUjjD,EAAVijD,WAAYiB,EAAkBlkD,EAAlBkkD,mBAAoBv6C,EAAI3J,EAAJ2J,KAM3D,OALIs5C,GAAciB,IACdH,EAAId,GAAcc,EAAId,IAAe,CAAC,EACtCc,EAAId,GAAagB,GAAUF,EAAId,GAAagB,IAAW,CAAC,EACxDF,EAAId,GAAagB,GAASC,GAAsBv6C,GAAQ,IAErDo6C,CACX,GAAG,CAAC,IC+DwByE,MAAO9D,GAA6Bh+B,EAAIm9B,YDvExB,IAACA,CCwEpB,IAIb,MACJ,KAAKnV,KAAUJ,SACPrvC,IAAQonD,IAAgBQ,iBACxBtlD,KAAO7D,EAAO,CAAC2oD,IAAgBQ,kBAAkB,kBAAAhpD,0BAAC,CAAD,EAEtCH,EAAM2oD,IAAgBQ,kBAAgB,IACzC51C,OAAQi1C,KAA8BvN,OACtCgP,YD5FkB9D,EC4FwBn9B,EAAIm9B,QD3FtEA,EAAQC,QAAO,SAACC,EAAKC,GAAY,IAADkF,EAG5B,OAFAnF,EAAIC,EAAOC,QAAUF,EAAIC,EAAOC,SAAW,CAAC,EAC5CD,EAAOmF,yBAA2BpF,EAAIC,EAAOC,QAASD,EAAOmF,yBAA4C,QAAlBD,EAAAlF,EAAOK,mBAAW,IAAA6E,OAAA,EAAlBA,EAAoB5E,QAAS,GAC7GP,CACX,GAAG,CAAC,MALqC,IAACF,CC4FoC,IAK9E,GACJ,E,oBCpMMnvC,GAA8B,CAAC,EAExB00C,GAAe5yC,YAAY,CACtCC,KAAMlZ,IAAU8rD,QAChB30C,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACL0yC,KAAoBC,0BAA2B,SAAC7rD,EAAKsC,GAA0D,IACxGwpD,EADyDxpD,EAAPjC,QAC7B0rD,MAAK,SAAAx4C,GAAM,OAA2B,IAAvBA,EAAOy4C,WAAoB,IACrE,OAAA7rD,0BAAA,GACKH,GAAK,IACRisD,QAASH,EAAaI,KAAeC,QAAUD,KAAeE,SAElE,IAAChsD,YAAA8Y,GACA0yC,KAAoBS,uBAAwB,SAACrsD,GAE5C,OAAAG,0BAAA,GACKH,GAAK,IACRisD,QAASC,KAAeE,SAE5B,IAAChsD,YAAA8Y,GACA0yC,KAAoB5uC,OAAQ,kBAAMhG,EAAY,IAAAkC,M,oBCzB7ClC,GAAkC,CACpCzD,OAAQ+4C,KAAuB7D,UAC/B8D,UAAW,GACXC,WAAY,IAGHC,GAAwB3zC,YAAY,CAC7CC,KAAMlZ,IAAU+tB,iBAChB5W,gBACAiC,UAAQC,GAAA,GAAA9Y,YAAA8Y,GACHwzC,KAA4B1vC,OAAQ,SAAChd,GAElC,OADQgX,EAEZ,IAAC5W,YAAA8Y,GACAwzC,KAA4BC,cAAe,SAAC3sD,EAAKsC,GAA0D,IAAtDjC,EAAOiC,EAAPjC,QAElD,OADAL,EAAMuT,OAASlT,EACRL,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BE,iBAAkB,SAAC5sD,EAAKuZ,GAAyD,IAArDlZ,EAAOkZ,EAAPlZ,QAErD,OADAL,EAAMusD,UAAUlnC,KAAKhlB,GACdL,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BG,eAAgB,SAAC7sD,EAAKyZ,GAAyD,IAArDpZ,EAAOoZ,EAAPpZ,QAEnD,OADAL,EAAMwsD,WAAWnnC,KAAKhlB,GACfL,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BI,kBAAmB,SAAC9sD,EAAK6Z,GAA0C,IAAtCxZ,EAAOwZ,EAAPxZ,QAEtD,OADAL,EAAMwsD,WAAaxsD,EAAMwsD,WAAWlpD,QAAO,SAAAolB,GAAI,OAAIA,EAAKxkB,KAAO7D,CAAO,IAC/DL,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BK,kBAAmB,SAAC/sD,EAAK+Z,GAAyD,IAArD1Z,EAAO0Z,EAAP1Z,QAItD,OAHAL,EAAMwsD,WAAaxsD,EAAMwsD,WAAWzgD,KAAI,SAAA2c,GAAI,OACxCA,EAAKxkB,KAAO7D,EAAQ6D,GAAK7D,EAAUqoB,CAAI,IAEpC1oB,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BM,gBAAiB,SAAChtD,GAE3C,OADAA,EAAMwsD,WAAaxsD,EAAMusD,UAClBvsD,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BO,oBAAqB,SAACjtD,GAE/C,OADAA,EAAMuT,OAAS+4C,KAAuBY,OAC/BltD,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BS,sBAAuB,SAACntD,GAEjD,OADAA,EAAMuT,OAAS+4C,KAAuBc,aAC/BptD,CACX,IAACI,YAAA8Y,GACAwzC,KAA4BW,sBAAuB,SAACrtD,GAEjD,OADAA,EAAMuT,OAAS+4C,KAAuBgB,YAC/BttD,CACX,IAACkZ,MClBIq0C,IAAOC,GAAA,GAAAptD,YAAAotD,GACjBhc,EAAkBz4B,KAAOy4B,EAAkB+b,SAAOntD,YAAAotD,GAClDpb,EAAer5B,KAAOq5B,EAAemb,SAAOntD,YAAAotD,GAC5C/Z,EAAgB16B,KAAO06B,EAAgB8Z,SAAOntD,YAAAotD,GAC9CC,IAAgB10C,KAAO00C,IAAgBF,SAAOntD,YAAAotD,GAC9C30C,IAAUE,KAAOF,IAAU00C,SAAOntD,YAAAotD,GAClCvZ,EAAkBl7B,KAAOk7B,EAAkBsZ,SAAOntD,YAAAotD,GAClD1X,EAAa/8B,KAAO+8B,EAAayX,SAAOntD,YAAAotD,GACxCrX,GAAUp9B,KAAOo9B,GAAUoX,SAAOntD,YAAAotD,GAClCxV,GAAej/B,KAAOi/B,GAAeuV,SAAOntD,YAAAotD,GAC5CvV,GAAel/B,KAAOk/B,GAAesV,SAAOntD,YAAAotD,GAC5CnV,GAAiBt/B,KAAOs/B,GAAiBkV,SAAOntD,YAAAotD,GAChDxU,GAAYjgC,KAAOigC,GAAYuU,SAAOntD,YAAAotD,GACtCpU,GAAsBrgC,KAAOqgC,GAAsBmU,SAAOntD,YAAAotD,GAC1DtT,GAAanhC,KAAOmhC,GAAaqT,SAAOntD,YAAAotD,GACxCE,KAAkB30C,KAAO20C,KAAkBH,SAAOntD,YAAAotD,GAClDnT,GAAmBthC,KAAOshC,GAAmBkT,SAAOntD,YAAAotD,GACpDpS,GAAWriC,KAAOqiC,GAAWmS,SAAOntD,YAAAotD,GACpCvR,GAAWljC,KAAOkjC,GAAWsR,SAAOntD,YAAAotD,GACpCtd,KAAan3B,KAAOm3B,KAAaqd,SAAOntD,YAAAotD,GACxCtvC,KAAenF,KAAOmF,KAAeqvC,SAAOntD,YAAAotD,GAC5CvQ,GAAiBlkC,KAAOkkC,GAAiBsQ,SAAOntD,YAAAotD,GAChDnQ,GAAkBtkC,KAAOskC,GAAkBkQ,SAAOntD,YAAAotD,GAClDzP,GAAgBhlC,KAAOglC,GAAgBwP,SAAOntD,YAAAotD,GAC9C9S,GAAsB3hC,KAAO2hC,GAAsB6S,SAAOntD,YAAAotD,GAC1D/O,GAAkB1lC,KAAO0lC,GAAkB8O,SAAOntD,YAAAotD,GAClD/V,GAAgC1+B,KAAO0+B,GAAgC8V,SAAOntD,YAAAotD,GAC9E9W,GAA2B39B,KAAO29B,GAA2B6W,SAAOntD,YAAAotD,GACpEG,IAAwB50C,KAAO40C,IAAwBJ,SAAOntD,YAAAotD,GAC9DtN,GAAyBnnC,KAAOmnC,GAAyBqN,SAAOntD,YAAAotD,GAChEtK,GAAyBnqC,KAAOmqC,GAAyBqK,SAAOntD,YAAAotD,GAChElJ,GAAyBvrC,KAAOurC,GAAyBiJ,SAAOntD,YAAAotD,GAChEjM,GAAqCxoC,KAAOwoC,GAAqCgM,SAAOntD,YAAAotD,GACxFI,KAAmB70C,KAAO60C,KAAmBL,SAAOntD,YAAAotD,GACpDnE,GAAiBtwC,KAAOswC,GAAiBkE,SAAOntD,YAAAotD,GAChD9H,GAAuB3sC,KAAO2sC,GAAuB6H,SAAOntD,YAAAotD,GAC5D1H,GAA4B/sC,KAAO+sC,GAA4ByH,SAAOntD,YAAAotD,GACtE9B,GAAa3yC,KAAO2yC,GAAa6B,SAAOntD,YAAAotD,GACxCf,GAAsB1zC,KAAO0zC,GAAsBc,SAAOC,I,WCtC9CK,GA7Bb,SADkCvrD,GAAA,IAC/Bmb,EAAQnb,EAARmb,SAAUqwC,EAAQxrD,EAARwrD,SAAQ,OACrB,SAACnpC,GAAc,OACf,SAAC1kB,GACC,OAAIA,EAEAA,EAAOkR,OAAI,GAAArN,OAAQjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,KAAiCE,oCAiBhFnyB,EAAK1kB,QAfZ2oB,aAAgB3oB,EAAiCI,SAASojB,MAAK,SAACwF,GAC9D,IAEM/Y,EAFQ49C,IAEI3pD,KAAKlD,WACtBhB,EAA2CI,QAAU,CACpD4oB,SACAutB,cAAe,IAEjBzsB,aAA8B7Z,EAAsB+Y,GAAQxF,MAAK,SAACsqC,GAC/D9tD,EAA2CI,QAAQm2C,cAAgBuX,EACpEppC,EAAK1kB,GACLwd,EAASmwC,KAAmBzvC,QAAQ6vC,KAAyBzvC,YAC/D,GACF,IAKKoG,EAAK1kB,EAEhB,CAAE,CAAD,ECzBYguD,GALDC,YAAe,CAC3BX,WACAY,WAAY,CAACC,IAAiBC,IAAeR,M,8BCDzCS,GAAMC,gBAAK,kBAAM,sDAAe,IAoBvBC,UAjBgB,WAI7B,OAHAC,eACAC,cAGErsB,IAAAC,cAACqsB,WAAQ,CAACC,SAAUvsB,IAAAC,cAAAD,IAAAsB,SAAA,OAEhBtB,IAAAC,cAACusB,KAAa,CAACZ,MAAOA,IACpB5rB,IAAAC,cAACwsB,KAAS,CAACl+C,MAAO,CAAEm+C,SAAU,kBAAM,IAAI1rB,GAAK,IAC3ChB,IAAAC,cAACgsB,GAAG,QAMhB,C,mCCzBA,sSAsBYtQ,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,6BAArBA,EAAqB,4BAArBA,CAAqB,MAKrBzD,EAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,iCAAxBA,EAAwB,gCAAxBA,CAAwB,MAKvByU,EAAc,SAAC/iD,EAA2BwR,GAAqB,OAC1EC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,iCACrBC,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUy6C,cAAa,KAAAx2C,OAAIy2C,EAAyBjX,SAC7DjjC,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMmjB,EAAQwsB,0BAA2B1vC,IAAiBgkB,SACtF,GACC,EAEQ2rB,EAAwB,SAACjsD,EAAoBwa,EAAuB0xC,GAC/E,IAAMrgB,EAAIqgB,EAAgB,qBAAArrD,OAAwBqrD,GAAqB,GAEvE,OAAOzxC,YAAU,CACfC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,yCAAAa,OAAwCgrC,GAC1FhxB,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,GAFAiK,IAAOk5C,UAAUt7C,IAAkBu7C,8BAA+B,CAACnsD,MAAOD,IAC1Ewa,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAU6rB,WAAU,KAAA5nB,OAAIk6C,EAAsB1a,SACvDjjC,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GAEJ,EAEa+wC,EAAkB,SAACjnC,EAAW5K,EAAuB8xC,EAAoB/nB,GAAyC,OAC7H9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,qDACrBC,OAAQC,IAAWiB,KACnBvL,QAAS,CACP,eAAgB,mBAElBxH,KAAMoc,EACNpK,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EAIF,OAH2B,IAAvBA,EAAKqH,OAAO1O,QAAgB2qD,GAC9B9xC,EAAS+xC,YAA2BnnC,EAAKoa,EAAQgtB,wBAAyBhtB,EAAQitB,kBAAmBjyC,EAAU+pB,IAE1G,CACLr2B,KAAK,GAADrN,OAAKjE,IAAU6rB,WAAU,KAAA5nB,OAAIk6C,EAAsB1a,SACvDjjC,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GACC,EAEQoxC,EAAyB,WAAH,MAAU,CAC3Cx+C,KAAK,GAADrN,OAAKjE,IAAU6rB,WAAU,KAAA5nB,OAAIk6C,EAAsB1a,SACvDjjC,QAAS,CAAC,EACX,C,+aCtFWqxC,EAAe,SAAfA,GAAe,OAAfA,EAAe,yCAAfA,EAAe,yDAAfA,EAAe,2CAAfA,EAAe,2DAAfA,EAAe,uBAAfA,EAAe,4BAAfA,EAAe,6BAAfA,EAAe,6BAAfA,EAAe,+BAAfA,EAAe,2BAAfA,CAAe,MAiBdC,EAAmB,SAAC5K,GAAiC,OAAK,SAACtpB,EAAuBqwC,GAC7F,IACmBvjD,EACfujD,IADF8B,cAAiBrlD,gBAEfA,EAAgBI,uBAGpB8S,EACEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,yBAAA/Z,OAAwByG,EAAgBE,yBAC7DqT,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAOV,OALAiK,IAAO8wB,QAAQ5wB,IAAmBy5C,0BAA2BptB,EAAQyE,gBACrEzpB,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EAAKrH,OApBI,IAqBX6Y,EAASm0B,GAAyB,IAE7B,CACLzgC,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBC,kBACpDtxC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB05C,mBAAoBrtB,EAAQ2E,cACxD,CACLj2B,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,IAGN,CAAE,EAEIne,EAA2B,SAACvxC,GAAgB,MAAM,CACtD8Q,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBE,0BACpDvxC,UACD,EAEYwxC,EAAoB,SAAC9K,GAAiC,OAAK,SAACtpB,EAAuBqwC,GAC9F,IACmBjjD,EACfijD,IADF8B,cAAiB/kD,iBAEfA,EAAiBI,wBAGrBwS,EACEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,2BAAA/Z,OAA0B+G,EAAiBE,0BAChE+S,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAOV,OALAiK,IAAO8wB,QAAQ5wB,IAAmB45C,2BAA4BvtB,EAAQyE,gBACtEzpB,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EAAKrH,OA5DI,IA6DX6Y,EAASq0B,GAA0B,IAE9B,CACL3gC,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBG,mBACpDxxC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB65C,oBAAqBxtB,EAAQ2E,cACzD,CACLj2B,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,IAGN,CAAE,EAEIje,EAA4B,SAACzxC,GAAgB,MAAM,CACvD8Q,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBI,2BACpDzxC,UACD,EAEY0xC,EAAU,SAACme,EAAgBnuD,EAAkBglC,EAAmCtpB,GAAqB,OAChHC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,WAAA/Z,OAAU/B,EAAU,OAAS,IAAE+B,OAAGosD,GACvDpyC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmB+5C,oBAAqB1tB,EAAQyE,gBAC/DzpB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBK,SACpD1xC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBg6C,aAAc3tB,EAAQ2E,cAClD,CACLj2B,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,GACC,EAEQ5d,EAAY,WAAH,MAAU,CAC9BhhC,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBS,WACrD,EAEYke,EAAa,SACxBpkD,EACAs7B,EACAR,EACAtpB,EACA+pB,GAA+B,OAE/B9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,WACrBC,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAKV,OAJAiK,IAAO8wB,QAAQ5wB,IAAmBk6C,uBAAwBrkD,EAAK/H,IAC/DuZ,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5EkE,GAAYA,EAASv7B,EAAK/H,IACnB,CACLiN,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBM,WACpD3xC,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQ2E,cAC5D,CACLj2B,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,GACC,EAEQ9d,EACX,SAAChmC,EAAsBs7B,EAAmCR,GAAiC,OACzF,SAACtpB,EAAuBqwC,GACtB,IACiB17C,EACb07C,IADFvY,YAAenjC,cAEjBqL,EACEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,UAAA/Z,OAASsO,EAAgB,OAAS,GAAE,KAAAtO,OAAQ,OAAJmI,QAAI,IAAJA,OAAI,EAAJA,EAAM/H,IACnE4Z,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAKV,OAJAiK,IAAO8wB,QAAQ5wB,IAAmBm6C,uBAA4B,OAAJtkD,QAAI,IAAJA,OAAI,EAAJA,EAAM/H,IAChEuZ,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAErE,CACLnyB,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBO,YACpD5xC,QAAS,CACP4L,QAGN,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBo6C,gBAAqB,OAAJvkD,QAAI,IAAJA,OAAI,EAAJA,EAAM/H,IACnD,CACLiN,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,IAGN,CAAE,EAEO7d,EACX,SAACge,EAAgB3oB,EAAmCR,GAAiC,OACnF,SAACtpB,EAAuBqwC,GACtB,IAAQ17C,EAAkB07C,IAAWvY,YAA7BnjC,cACRqL,EACEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,UAAA/Z,OAASsO,EAAgB,OAAS,GAAE,KAAAtO,OAAIosD,GAC7DpyC,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACV,GAAIA,EAIF,OAHAiK,IAAO8wB,QAAQ5wB,IAAmBq6C,uBAAwBP,GAC1DzyC,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBQ,YACpD7xC,QAAS6vD,EAGf,EACAxxC,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBs6C,gBAAiBR,GAC7C,CACL/+C,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,IAGN,CAAE,EAEOY,EAAW,SACtBC,EACArpB,EACAR,EACAtpB,GAEA,IAAIye,EAA2B,CAAE20B,YAAaD,EAAKE,aAC7CC,EAA6B,iBAAlBH,EAAKG,SAA8B,WAAaH,EAAKG,SACtE,GAAsB,SAAlBH,EAAKG,UAAyC,cAAlBH,EAAKG,SAA0B,CAC7D,IAAMD,EAA4B7X,KAAKC,MAAM0X,EAAKE,aAAaxoC,QAC/D4T,EAAW/7B,wBAAA,GACN2wD,GAAW,IACdE,OAAQF,EAAYE,OAAOjlD,KAAI,SAACklD,GAAsB,OAAKA,EAAMtzC,GAAG,IACpEuzC,QAASJ,EAAYI,QAAQnlD,KAAI,SAAColD,GAAyB,OAAKA,EAAOvgD,KAAK,KAEhF,CAEA,OAAO8M,YAAU,CACfC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,UAAA/Z,OAASitD,GAC9BjzC,OAAQC,IAAWiB,KACnB/S,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,WACTpI,IAAO8wB,QAAQ5wB,IAAmBg7C,qBAAsB3uB,EAAQ4uB,iBAChE5zC,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,EACAG,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBk7C,cAAe7uB,EAAQ8uB,eACnD,CACLpgD,KAAK,GAADrN,OAAKjE,IAAU4xC,cAAa,KAAA3tC,OAAI4tC,EAAgBqe,aAExD,GAEJ,C,yLCjRYzD,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,sBAAtBA,EAAsB,sBAAtBA,EAAsB,oCAAtBA,EAAsB,0BAAtBA,EAAsB,oCAAtBA,EAAsB,gBAAtBA,EAAsB,4BAAtBA,EAAsB,0BAAtBA,CAAsB,MAWtBkF,EAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,oBAAzBA,EAAyB,eAAzBA,EAAyB,qBAAzBA,EAAyB,0BAAzBA,EAAyB,sDAAzBA,EAAyB,oBAAzBA,EAAyB,YAAzBA,EAAyB,YAAzBA,EAAyB,UAAzBA,EAAyB,gBAAzBA,EAAyB,0BAAzBA,CAAyB,MA0CxBC,EAAqB,CAAC,QAAS,QAAS,OAAQ,QAEhDC,GAAeC,EAAA,GAAAvxD,YAAAuxD,EACzBH,EAA0BI,KAAO,CAChC/sB,MAAO,IACPgtB,OAAQ,IACRC,iBAAkB,CAAC,UACpB1xD,YAAAuxD,EACAH,EAA0BO,QAAU,CACnCltB,MAAO,GACPgtB,OAAQ,GACRC,iBAAkB,CAAC,UACpBH,E,mCClEH,oVAAO,IAAKpxD,EAAQ,SAARA,GAAQ,OAARA,EAAQ,gCAARA,EAAQ,0DAARA,EAAQ,0CAARA,EAAQ,sCAARA,EAAQ,gDAARA,EAAQ,4CAARA,EAAQ,sDAARA,EAAQ,gDAARA,EAAQ,8BAARA,EAAQ,oDAARA,EAAQ,gFAARA,EAAQ,kGAARA,EAAQ,wBAARA,EAAQ,wBAARA,EAAQ,sCAARA,EAAQ,kDAARA,EAAQ,0CAARA,EAAQ,oEAARA,EAAQ,kDAARA,EAAQ,4DAARA,EAAQ,oCAARA,EAAQ,8CAARA,EAAQ,gDAARA,EAAQ,kCAARA,EAAQ,4DAARA,EAAQ,oCAARA,EAAQ,wCAARA,EAAQ,oEAARA,EAAQ,kBAARA,EAAQ,wBAARA,EAAQ,gDAARA,EAAQ,8CAARA,CAAQ,MAmCR0E,EAAQ,SAARA,GAAQ,OAARA,EAAQ,YAARA,EAAQ,0CAARA,EAAQ,sDAARA,EAAQ,0DAARA,EAAQ,4BAARA,EAAQ,wCAARA,EAAQ,yCAARA,EAAQ,oDAARA,EAAQ,gEAARA,EAAQ,gCAARA,EAAQ,gDAARA,EAAQ,wBAARA,EAAQ,4BAARA,EAAQ,oCAARA,EAAQ,oBAARA,CAAQ,MAkBRsG,EAAS,SAATA,GAAS,OAATA,EAAS,oCAATA,EAAS,0BAATA,EAAS,gDAATA,EAAS,oDAATA,EAAS,kCAATA,EAAS,wBAATA,EAAS,8CAATA,EAAS,kDAATA,EAAS,YAATA,CAAS,MAgBT+F,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,YAAhBA,EAAgB,UAAhBA,EAAgB,oBAAhBA,EAAgB,oCAAhBA,EAAgB,8BAAhBA,CAAgB,MAQhBikC,EAAW,SAAXA,GAAW,OAAXA,EAAW,8BAAXA,EAAW,wBAAXA,EAAW,0CAAXA,EAAW,cAAXA,EAAW,0BAAXA,EAAW,oBAAXA,EAAW,wBAAXA,CAAW,MAUXlF,EAAW,SAAXA,GAAW,OAAXA,EAAW,kBAAXA,CAAW,MAIXsN,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,gBAArBA,EAAqB,oBAArBA,EAAqB,cAArBA,EAAqB,gBAArBA,EAAqB,4BAArBA,EAAqB,4BAArBA,CAAqB,MASrBjJ,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,gCAAhBA,EAAgB,gBAAhBA,EAAgB,sBAAhBA,EAAgB,oBAAhBA,EAAgB,kCAAhBA,EAAgB,kCAAhBA,EAAgB,oCAAhBA,CAAgB,MAUhB+F,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,sDAApBA,EAAoB,gDAApBA,EAAoB,gEAApBA,EAAoB,kDAApBA,EAAoB,oDAApBA,EAAoB,gBAApBA,CAAoB,MASpBwD,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,mCAAhBA,EAAgB,iCAAhBA,EAAgB,oCAAhBA,EAAgB,8BAAhBA,CAAgB,K,yPCtH5Bl+B,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CAOe,SAAegyC,EAAYjqC,EAAAc,GAAA,OAAAopC,EAAAhqC,MAAC,KAADvR,UAAA,CAGzC,SAAAu7C,IAAA,OAAAA,EAAA/pC,YAAAnI,IAAAkG,MAHc,SAAAkC,EAA4B+pC,EAAkB5pC,GAAe,OAAAvI,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,cAAA4D,EAAA5D,KAAA,EACvDwtC,EAAa7pC,GAAS,KAAD,EACxC8pC,EADU7pC,EAAAtE,KACKiuC,GAAU,wBAAA3pC,EAAAxB,OAAA,GAAAoB,EAAA,MAC1BF,MAAA,KAAAvR,UAAA,CAEM,SAAey7C,EAAYnoC,GAAA,OAAAqoC,EAAApqC,MAAC,KAADvR,UAAA,CAIjC,SAAA27C,IAAA,OAAAA,EAAAnqC,YAAAnI,IAAAkG,MAJM,SAAA8C,EAA4BT,GAAe,IAAAD,EAAA,OAAAtI,IAAAsB,MAAA,SAAA+H,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAzE,MAAA,OACzB,OAAjB0D,EAAM,IAAIG,IAAOY,EAAAzE,KAAA,EACjB0D,EAAIgB,UAAUf,EAAS,CAAEgB,QAAQ,IAAQ,KAAD,SAAAF,EAAAhF,OAAA,SACvCiE,EAAIM,cAAc,CAAExX,KAAM,UAAS,wBAAAiY,EAAArC,OAAA,GAAAgC,EAAA,MAC3Cd,MAAA,KAAAvR,UAAA,CAEM,SAAS07C,EAASE,EAAYJ,GACnC,IAAMK,EAAUluB,SAAS/B,cAAc,KACvCiwB,EAAQC,aAAa,OAAQC,IAAIC,gBAAgBJ,IACjDC,EAAQC,aAAa,WAAYN,EAASS,WAAW,IAAK,MAC1DJ,EAAQ35B,MAAMg6B,QAAU,OACxBvuB,SAASwuB,KAAKC,YAAYP,GAC1BA,EAAQvlB,QACR3I,SAASwuB,KAAKE,YAAYR,EAC5B,CAEO,IAAMS,EAAe,SAACC,EAAkBpC,GAC7C,IAAMqC,EAAO,gCAAApvD,OAAmC+sD,GAC1CsC,EAAqB9uB,SAAS/B,cAAc,KAClD6wB,EAAmBX,aAAa,OAAQU,GACxCC,EAAmBX,aAAa,WAAW,GAAD1uD,OAAKmvD,EAAQ,UACvD5uB,SAASwuB,KAAKC,YAAYK,GAC1BA,EAAmBnmB,QACnBmmB,EAAmBC,QACrB,EAIaC,EAA2B,SACtCpnD,EACA8M,EACAsR,GAEA,IACE,IAAMioC,EAAO,IAAIgB,KAAK,CAACrnD,IACjB0R,EAAMlJ,OAAOg+C,IAAIC,gBAAgBJ,GACjCiB,EAAOlvB,SAAS/B,cAAc,KACpCixB,EAAK5+C,KAAOgJ,EACZ41C,EAAKf,aAAa,WAAYz5C,EAAKjV,OAAO,IAAKumB,IAC/CkpC,EAAK36B,MAAMg6B,QAAU,OACrBvuB,SAASwuB,KAAKC,YAAYS,GAC1BA,EAAKvmB,OACP,CAAE,MAAOruB,GACP60C,QAAQC,IAAI90C,EACd,CACF,C,kKCjCM3H,EAAiC,CACrC08C,eAAe,EACfC,cAAc,EACdC,yBAAyB,EACzBC,sBAAuBC,KAGbC,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,6BAArBA,EAAqB,wBAArBA,EAAqB,0BAArBA,EAAqB,oDAArBA,EAAqB,oDAArBA,CAAqB,MAQpBtG,EAAkB30C,YAAY,CACzCC,KAAMlZ,IAAUm0D,WAChBh9C,eACAiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACL66C,EAAsBE,SAAU,SAACj0D,EAAKsC,GAAqE,IAAjEjC,EAAOiC,EAAPjC,QACzCL,EAAM0zD,cAAgBrzD,CACxB,IAACD,YAAA8Y,EACA66C,EAAsBG,YAAa,SAACl0D,EAAKuZ,GAAyD,IAArDlZ,EAAOkZ,EAAPlZ,QAC5CL,EAAM2zD,cAAe,EACrB3zD,EAAMm0D,YAAcxf,YAAUt0C,GAC9BL,EAAM4zD,wBAA0B,4BAA6BvzD,KAAYA,EAAQuzD,uBACnF,IAACxzD,YAAA8Y,EACA66C,EAAsBK,aAAc,SAACp0D,EAAOq0D,GAC3Cr0D,EAAM2zD,cAAe,EACrB3zD,EAAM6zD,sBAAwBC,GAChC,IAAC1zD,YAAA8Y,EACA66C,EAAsBO,0BAA2B,SAACt0D,EAAKyZ,GAA2C,IAAvCpZ,EAAOoZ,EAAPpZ,QAC1DL,EAAM4zD,0BAA4BvzD,CACpC,IAACD,YAAA8Y,EACA66C,EAAsBQ,0BAA2B,SAACv0D,EAAK6Z,GAA8C,IAA1CxZ,EAAOwZ,EAAPxZ,QAC1DL,EAAM6zD,sBAAwBxzD,CAChC,IAAC6Y,KAIUu0C,EAAuB,O,mCC9DtC,wIAAO,IAAK+G,EAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,oBAAjBA,EAAiB,gCAAjBA,EAAiB,wBAAjBA,EAAiB,kBAAjBA,EAAiB,oBAAjBA,CAAiB,MAQjBhM,EAA6B,SAA7BA,GAA6B,OAA7BA,EAA6B,sBAA7BA,EAA6B,wBAA7BA,EAA6B,kBAA7BA,EAA6B,cAA7BA,EAA6B,gBAA7BA,CAA6B,MAQ7BiM,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,cAAnBA,EAAmB,kBAAnBA,EAAmB,gBAAnBA,CAAmB,MAMnBC,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,cAArBA,EAAqB,gBAArBA,EAAqB,cAArBA,CAAqB,K,mCCzBjC,oEAMO,IAAKliB,EAAa,SAAbA,GAAa,OAAbA,EAAa,0BAAbA,EAAa,kBAAbA,CAAa,MAKbmW,EAAe,SAAfA,GAAe,OAAfA,EAAe,0BAAfA,EAAe,4BAAfA,EAAe,sCAAfA,EAAe,sDAAfA,EAAe,8BAAfA,EAAe,gCAAfA,EAAe,0BAAfA,EAAe,sBAAfA,EAAe,kCAAfA,EAAe,sCAAfA,CAAe,K,qKCV3B5oC,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CAeO,IAAM20C,EAAU,eAAAryD,EAAA4lB,YAAAnI,IAAAkG,MAAG,SAAAkC,EAAOysC,GAAyB,IAAAC,EAAAl3C,EAAAG,EAAA7R,EAAAwH,EAAA2uB,EAAA0yB,EAAAC,EAAAC,EAAA,OAAAj1C,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,OAKmC,OAJnFhH,EAA+Bi3C,EAA/Bj3C,IAAKG,EAA0B82C,EAA1B92C,OAAQ7R,EAAkB2oD,EAAlB3oD,KAAMwH,EAAYmhD,EAAZnhD,QACrB2uB,EAAgBwyB,EAAOxyB,eAAiBlsB,IAAO++C,mBAC/CH,EAAeF,EAAOE,cAAgBI,IAAaC,UACnDJ,EAAe,CAAC,MAAO,UAAUK,SAASt3C,GAAU,SAAW,OAC/Dk3C,EAAoD,QAA/BH,EAAGD,EAAOI,6BAAqB,IAAAH,IAAK,SAACxyD,GAAqB,OAAKA,CAAC,EAAAkmB,EAAAnE,OAAA,SAEpFixC,IAAcC,gBAAgBR,GAAcrxC,MAAK,SAAC8xC,GACvD,GAAoB,oBAAhBA,GAAqD,oBAAhBA,EAAmC,CAE1EC,IAAMC,SAASC,QAAUzgD,ylCAAY0gD,oBAAsB,GAC3DH,IAAMC,SAAShiD,QAAQmiD,OAAO,gBAAkB,mBAChDJ,IAAMC,SAAShiD,QAAQmiD,OAAsB,cAAC,UAAA9xD,OAAayxD,GAC3DC,IAAMC,SAAShiD,QAAQmiD,OAAO,oBAAsBxzB,EACpDozB,IAAMC,SAAShiD,QAAQmiD,OAAO,iBAAmB,kBACjD,IAAMC,EAAUb,EAAqB50D,YAAC,CACpCud,MACAG,SACArK,WACCshD,EAAe9oD,IAElB,OAAOupD,IAAMK,QAAQA,EACvB,CAEE,MADA3/C,IAAO8wB,QAAQ5wB,IAAmB0/C,cAAe,OAAQ,sBAAuB1zB,GAC1E,IAAIvsB,MAAM,sBAEpB,KAAE,wBAAA0S,EAAAxB,OAAA,GAAAoB,EAAA,KACH,gBA3BsBJ,GAAA,OAAAzlB,EAAA2lB,MAAA,KAAAvR,UAAA,KAyDR23C,IA3Bb,SADwB90C,GAAA,IACrBkE,EAAQlE,EAARkE,SAAQ,OACT,SAACkH,GAAS,OACR,SAAC1kB,GACC,GAAIA,IACF0kB,EAAK1kB,GACDA,EAAOkR,OAASw1B,KAAK,CACvB,IAAAhjC,EAAkD1D,EAAOI,QAAjD4d,EAAOta,EAAPsa,QAASK,EAAS3a,EAAT2a,UAAWI,EAAS/a,EAAT+a,UACtB0jB,GADuCz+B,EAANoyD,OACjB91D,EAAOI,QAAQ+hC,eAAiBlsB,IAAO++C,oBAK7D,OAHIh3C,GAASR,EAASQ,KACtBR,EAASu4C,eAEFrB,EAAW10D,EAAOI,SACtBojB,MAAK,SAAAhK,GAAe,IAAZxN,EAAIwN,EAAJxN,KACPiK,IAAO8wB,QAAQ5wB,IAAmB0/C,cAAe,OAAQ,UAAW1zB,GACpE3kB,EAASw4C,eACTx4C,EAASa,EAAUrS,GACrB,IACC0b,OAAM,SAAChJ,GAAuB,IAADu3C,EAAAC,EAC5BjgD,IAAO8wB,QAAQ5wB,IAAmB0/C,cAAe,OAAO,UAADhyD,OAAiB,OAAL6a,QAAK,IAALA,GAAe,QAAVu3C,EAALv3C,EAAO+sB,gBAAQ,IAAAwqB,OAAV,EAALA,EAAiB3iD,OAAM,UAAAzP,OAAc,OAAL6a,QAAK,IAALA,GAAc,QAATw3C,EAALx3C,EAAOk3C,eAAO,IAAAM,OAAT,EAALA,EAAgBC,aAAeh0B,GAClI3kB,EAAS44C,YAAe13C,IACpBD,GAAWjB,EAASiB,EAAUC,EAAM+sB,UAC1C,GACJ,CAEJ,CAAE,CAAD,C,2VCjEM4qB,EAAiB,SAC1BpzD,EACAI,GAEA,IAAIqa,EAAM44C,IAAeC,kBAGzB,OAFA74C,EAAMA,EAAI84C,QAAQ,SAAUvzD,GAC5Bya,EAAG,GAAA7Z,OAAM6Z,EAAG,gBAAA7Z,OAAeR,EAAO4hD,WAEtC,EAEawR,EAAqB,SAC9B9hC,EACAtxB,GAkBA,MATuC,CACnCqzD,SAAU,CACN,CACIC,QAVyC,CACjDpR,GAAI5wB,EAAOiiC,kBAAkBrR,GAAKliD,EAAOkiD,GAAK7U,IAAG0U,MACjDuF,OAAQh2B,EAAOiiC,kBAAkBzR,KAAO9hD,EAAO8hD,KAAO5U,IAAK6U,MAC3DI,SAAU7wB,EAAOiiC,kBAAkBpR,SAAWniD,EAAOmiD,SAAW7U,IAASyU,MACzEC,KAAM1wB,EAAOiiC,kBAAkBvR,KAAOhiD,EAAOgiD,KAAO7U,IAAK4U,MACzDE,WAAY3wB,EAAOiiC,kBAAkBtR,WAAajiD,EAAOiiD,WAAa7U,IAAW2U,OAMzEyR,OAAQliC,EAAOkiC,OACf3Q,QAASvxB,EAAO0xB,SAKhC,E,0BCzBYiD,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,cAAtBA,EAAsB,wBAAtBA,EAAsB,0BAAtBA,EAAsB,8BAAtBA,EAAsB,wBAAtBA,EAAsB,wBAAtBA,CAAsB,MAStB3D,EAA4B,SAA5BA,GAA4B,OAA5BA,EAA4B,oDAA5BA,EAA4B,0CAA5BA,EAA4B,cAA5BA,CAA4B,MAO3BmR,EAAsB,WACjC,MAAO,CACL5lD,KAAK,GAADrN,OAAKjE,IAAUypD,YAAW,KAAAxlD,OAAIylD,EAAuBvsC,OAE7D,EAEag6C,EAAyB,WACpC,MAAO,CACL7lD,KAAK,GAADrN,OAAKjE,IAAU8lD,kBAAiB,KAAA7hD,OAAI8hD,EAA6B5oC,OAEzE,EAGai6C,EAA0B,SAAC3zD,GACtC,MAAO,CACL6N,KAAK,GAADrN,OAAKjE,IAAU8lD,kBAAiB,KAAA7hD,OAAI8hD,EAA6BC,0BACrExlD,QAASiD,EAEb,EAGa2iD,EAAsB,SAACiR,GAClC,MAAO,CACL/lD,KAAK,GAADrN,OAAKjE,IAAUkmD,uBAAsB,KAAAjiD,OAAI8hD,EAA6BK,qBAC1E5lD,QAAS62D,EAEb,EAGaC,EAAgB,SAC3B51D,EACA+B,GAEA,MAAO,CACL6N,KAAK,GAADrN,OAAKjE,IAAUypD,YAAW,KAAAxlD,OAAIylD,EAAuBC,YACzDnpD,QAAS,CACPkB,IAAKA,EACL+B,OAAQA,GAGd,EAqBa8zD,EAAqB,SAChC35C,EACAva,EACAI,EACAsxB,GAEA,OAAOlX,YAAU,CACfC,IAAK24C,EAAepzD,EAAOI,GAC3Bwa,OAAQC,IAAWiB,KACnB/S,KAAMyqD,EAAmB9hC,EAAQtxB,GACjC2a,QAAS,WA5BO,IAAC1c,EA6Bfkc,GA7Belc,EA6BMqzB,EAAOrzB,IA5BzB,CACL4P,KAAK,GAADrN,OAAKjE,IAAUypD,YAAW,KAAAxlD,OAAIylD,EAAuBE,aACzDppD,QAAS,CACPkB,IAAKA,MA0BLkc,EAASS,IAAeC,QAAQC,IAAqBC,SACvD,EACAC,UAAW,SAACrS,GAMV,OALAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOk5C,UAAUt7C,IAAkBujD,sBAAuB,CACxDn0D,MAAOA,EACP8S,QAAS4e,EAAOrzB,MAEX,CACL4P,KAAK,GAADrN,OAAKjE,IAAUypD,YAAW,KAAAxlD,OAAIylD,EAAuBI,YACzDtpD,QAAU,CACRwpD,YAAa59C,EACb1K,IAAKqzB,EAAOrzB,KAGlB,EACAmd,UAAW,WApCO,IAACnd,EA2CjB,OANAkc,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOk5C,UAAUt7C,IAAkBwjD,sBAAuB,CACxDp0D,MAAOA,EACP8S,QAAS4e,EAAOrzB,MAElBkc,GA1CiBlc,EA0CMqzB,EAAOrzB,IAzC3B,CACL4P,KAAK,GAADrN,OAAKjE,IAAUypD,YAAW,KAAAxlD,OAAIylD,EAAuBG,eACzDrpD,QAAS,CAAEkB,IAAKA,MAwCP,CACL4P,KAAK,GAADrN,OAAKjE,IAAUypD,YAAW,KAAAxlD,OAAIylD,EAAuBgO,YAE7D,GAEJ,C,mCCjIA,kCAMO,IAAK5wD,EAAO,SAAPA,GAAO,OAAPA,EAAO,8BAAPA,EAAO,gBAAPA,EAAO,oDAAPA,CAAO,K,kpsWCmBP0yC,EAAuB,SAAvBA,GAAuB,OAAvBA,EAAuB,uCAAvBA,EAAuB,oDAAvBA,EAAuB,iDAAvBA,EAAuB,qDAAvBA,EAAuB,uCAAvBA,EAAuB,oDAAvBA,EAAuB,0CAAvBA,EAAuB,uDAAvBA,EAAuB,2FAAvBA,EAAuB,wGAAvBA,EAAuB,8CAAvBA,EAAuB,2DAAvBA,EAAuB,yCAAvBA,EAAuB,sDAAvBA,EAAuB,6BAAvBA,EAAuB,qDAAvBA,EAAuB,+CAAvBA,EAAuB,4DAAvBA,EAAuB,qDAAvBA,EAAuB,kEAAvBA,CAAuB,MA+BtBC,EAAgB,SAACvS,EAAmCtpB,GAAqB,OACpFC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,iBAC7DC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBohD,gBAAiB/0B,EAAQg1B,0BAC3Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBC,eAC3Dj5C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBohD,gBAAiB/0B,EAAQi1B,wBACrD,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBC,eAE/D,GACC,EAEQO,EAAgB,SAAhBA,EAAiB32C,EAAey0D,EAAel6C,GAAqB,OAC/EC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,eAAA/Z,OAAcZ,EAAK,aAAY,GAC5F4a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBwhD,mBAAoBn1B,EAAQg1B,0BAE1DxrD,EAAKrH,OAAS,GAChB6Y,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBQ,eAC3Dx5C,QAAS4L,IAGG,IAAV0rD,GACFl6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBY,wBAG/Dx8B,EAASo8B,EAAc32C,EAAOy0D,EAAQ,EAAGl6C,IAE3CvH,IAAO8wB,QAAQ5wB,IAAmBwhD,mBAAoBn1B,EAAQg1B,0BAC9Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBQ,eAC3Dx5C,QAAS4L,GAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmByhD,wBAAyBp1B,EAAQi1B,wBAC7D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBY,qBAE/D,GACC,EAEQ1pB,EAAoB,SAC/BunC,EACAC,EACAC,EACAj5C,EACAtB,EACAwlB,GAAgB,OAEhBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,cAC7DC,OAAQC,IAAWiB,KACnB/S,KAAM6rD,EACN75C,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACiF,GACVrN,IAAO8wB,QAAQ5wB,IAAmBma,kBAAmBkS,EAAQg1B,0BAC7D,IACMQ,EAAkB,CACtBC,2BAA4BH,EAC5BI,qBAAsB50C,EAAOrgB,MAC7BH,UAAWwgB,EAAOpb,YAClB6tB,QALqB,SAWvB,OAJAvY,EAASi8B,EAAeue,EAAiBD,EAAgBj5C,EAAgBtB,EAAUwlB,IACnF/sB,IAAO8wB,QAAQ5wB,IAAmBma,kBAAmBkS,EAAQg1B,0BAE7Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwB9oB,mBAC3DlwB,QAASkjB,EAEb,EACA7E,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmByhD,wBAAyBp1B,EAAQi1B,wBAC7D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwB+e,yBAE/D,GACC,EAEQC,EAAgC,SAC3CP,EACAC,EACA90D,EACA+0D,EACAj5C,EACAtB,EACAwlB,GAAgB,OAEhBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,cAC7DC,OAAQC,IAAWiB,KACnB/S,KAAM6rD,EACN75C,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACiF,GACVrN,IAAO8wB,QAAQ5wB,IAAmBma,kBAAmBkS,EAAQg1B,0BAC7Dh6C,EAAS66C,EAAyBr1D,EAAY80D,EAAax0C,EAAQy0C,EAAgBj5C,EAAgBtB,EAAUwlB,GAC/G,EACAvkB,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmByhD,wBAAyBp1B,EAAQi1B,wBAC7D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwB+e,yBAE/D,GACC,EAEQE,EAA2B,SACtCr1D,EACA80D,EACAQ,EACAP,EACAj5C,EACAtB,EACAwlB,GAAgB,OAEhBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,GAChF6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACpO,GAGV,GAFAuN,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmBkE,iBAAkBpK,EAAIjN,YACpDiN,EAAK,CACP,IAAMsoD,EAAMr4D,YAAA,GAAQ+P,GACpBsoD,EAAOL,qBAAuBI,EAA0Br1D,MACxDs1D,EAAON,2BAA6BH,EACpCt6C,EAASk8B,EAAe6e,EAAQR,EAAgBj5C,EAAgBtB,EAAUwlB,GAC5E,CACF,EACAvkB,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmBqiD,sBAAuBh2B,EAAQi2B,uBAC3D,CACLvnD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQjf,EAAiB,SAC5BztC,EACA+rD,EACAj5C,EACAtB,EACAwlB,GAAiB,OAEjBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,mBAC7DC,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACViK,IAAO8wB,QAAQ5wB,IAAmBwiD,iBAAkB3sD,EAAKhJ,YACzDgJ,EAAK/I,MAAQ+I,EAAKhJ,WAClBwa,EAASS,IAAeC,QAAQC,IAAqBG,aACjD0kB,GACFA,EAAQ5d,KAAK+F,IAAOW,UAEtBtO,EACEo7C,YAA2B5sD,EAAM+rD,EAAgBj5C,EAAgBtB,EAAUwlB,EAASoW,EAAwBK,gBAEhH,EACAh7B,UAAW,SAACC,GAEV,OADAzI,IAAOC,SAASC,IAAmB0iD,sBAAuBr2B,EAAQs2B,uBAC3D,CACL5nD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQhf,EAAiB,SAC5B1tC,EACA+rD,EACAj5C,EACAtB,EACAwlB,GAAgB,OAEhBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBmI,EAAKhJ,YACrF6a,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAMV,OALAwR,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UACjE7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmB+C,oBAAqBlN,EAAKhJ,YAC5Dwa,EAAS5E,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,IAC/Cg3B,EAAQ5d,KAAK+F,IAAOW,UACb,CACL5a,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBM,gBAC3Dt5C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmB4iD,yBAA0Bv2B,EAAQniC,0BAC9D,CACL6Q,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwB4f,sBAE/D,GACC,EAEQC,EAAmB,WAAH,MAAU,CACrC/nD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBE,UAC3Dl5C,QAAS,KACV,EAEYkqC,EAAuB,SAAvBA,EACXT,EACAkuB,EACAj5C,EACA44C,EACAwB,EACA17C,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,YAAA/Z,OAAWgmC,EAAQ,cAChFhsB,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmBo0B,8BAA+Bv+B,EAAK/H,IAClE+H,EAGF,OAFAwR,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UACjE7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBS,sBAC3Dz5C,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAEV,OAAc,IAAVg5C,GADmB,CAAC,IAAK,KACKvC,SAASz2C,EAAMpL,SAC/CkK,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBs0B,uBAAwBjI,EAAQkI,0BAC5D,CACLx5B,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwB+f,+BAI/DC,KAAM,kBAAM57C,EAAS8sB,EAAqBT,EAAUkuB,EAAgBj5C,EAAgB44C,EAAQ,EAAGwB,EAAS17C,GAAU,GAAE07C,GAEpH17C,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBs0B,uBAAwBjI,EAAQkI,0BAC5D,CACLx5B,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwB+f,6BAE/D,GACC,EAEQvvB,EAAuB,SAClCC,EACAC,EACAiuB,EACAj5C,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,YAAA/Z,OAAWgmC,EAAQ,eAAAhmC,OAAcimC,GAC9FjsB,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmB8zB,8BAA+BJ,GAC7D79B,EAGF,OAFAwR,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UACjE7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBU,sBAC3D15C,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBi0B,uBAAwB5H,EAAQ6H,wBAC5D,CACLn5B,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBigB,4BAE/D,GACC,EAEQC,EAAmB,WAAH,MAAU,CACrCpoD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBW,sBAC3D35C,aAASwT,EACV,EAEY2lD,EAAwB,SAAC/gD,EAAgBgF,GACpD,IAAME,EAAG,GAAA7Z,OAAMmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,gCAAA/Z,OAA+B2U,GACnG,OAAOiF,YAAU,CACfC,MACAG,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACnb,GAEV,OADAsa,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBG,oBAC3Dn5C,QAAS8C,EAEb,EACAub,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmBqjD,yBAA0B96C,EAAM2iC,YACnE7jC,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GAEJ,EAEam7C,EAAwB,WAAH,MAAU,CAC1CvoD,KAAK,GAADrN,OAAKjE,IAAUmQ,aAAY,KAAAlM,OAAIu1C,EAAwBI,sBAC5D,C,kCCpYD,0GAYO,SAAS3mB,EAAcH,EAAiBpxB,EAAcqhB,GAC3D,OAAO+P,EAAKG,cAAc,CAAE5uB,GAAI3C,EAAKihC,eAAiBC,EAAmClhC,IAAQqhB,EACnG,CAGO,SAAS+2C,EAAgBr3D,GAA2E,IAAxEs3D,EAAOt3D,EAAPs3D,QAASh3C,EAAMtgB,EAANsgB,OAC1C,OAAOyf,IAAAC,cAACu3B,IAAoB,CAAC31D,GAAI01D,EAASp3B,eAAgBC,EAAQm3B,GAAUh3C,OAAQA,GACtF,C,qDCbYk3C,EAAW,SAAXA,GAAW,OAAXA,IAAW,eAAXA,IAAW,iBAAXA,IAAW,aAAXA,CAAW,M,6GCGXC,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,2DAAhBA,EAAgB,0DAAhBA,EAAgB,oDAAhBA,EAAgB,mDAAhBA,CAAgB,M,sCCR5Bh6C,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CA4BA,IAAMg6C,EAA8B,WAAH,OAASC,YAAcC,IAAgBC,UAAW,EAEtEC,EAAc,WAIzB,SAAAA,IAAe,IAADC,EAAA,KAAAC,YAAA,KAAAF,GAAA,KAHNG,gBAAU,OACVC,qBAAe,EAGrBC,KAAKF,WAAa,IAAIG,IAAwB5lD,KAC9C2lD,KAAKD,gBAAkBlmD,IAGvBmmD,KAAKF,WAAWI,kBAAiB,SAACC,GAChC,GAAIA,EAAMC,YAAcC,IAAUC,cAAe,CAC/C,IAAMC,EAAUJ,EAAMv6D,QAAS26D,QAC/BX,EAAKE,WAAWU,iBAAiBD,GACjC9kD,IAAO8wB,QAAQ5wB,IAAmBgkD,eAAe,GAADt2D,OAAKs2D,EAAerhD,KAAI,SAC1E,CACF,GACF,CAkKC,OA7JDmiD,YAAAd,EAAA,EAAA74D,IAAA,QAAAqP,MAAA,eAAAuqD,EAAAjzC,YAAAnI,IAAAkG,MACA,SAAAkC,EAAmB1K,GAAc,IAAA29C,EAAAJ,EAAA14D,EAAAiX,EAAAE,EAAA4hD,EAAA,OAAAt7C,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,OACuB,OAAhDy2C,EAAmBpB,IAA6BzxC,EAAA5D,KAAA,EAChD81C,KAAKF,WAAWe,wBAAwB,KAAD,EAE5B,GADbN,EAAUP,KAAKc,aAAYhzC,EAAAkK,GAC/BgoC,KAAKc,aAAYhzC,EAAAkK,GAAA,CAAAlK,EAAA5D,KAAA,eAAA4D,EAAA5D,KAAA,EACR81C,KAAKF,WAAWiB,cAAar7D,wBAAC,CAAC,EACjCs6D,KAAKD,iBAAe,IACvBiB,UAAgC,OAArBL,OAA4BvnD,EAAYunD,KACnD,QAEJJ,EAAUA,GAAWP,KAAKc,eACX99C,IACbA,EACE0/B,YAAkB,CAChBJ,cAAc,EACdmE,SAAU8Z,EAAQ9Z,SAClBnoC,KAAMiiD,EAAQjiD,KACd2iD,SAAUV,EAAQ3oD,SAElBJ,MAA6B,QAAxB3P,EAAG04D,EAAQW,qBAAa,IAAAr5D,OAAA,EAAtBA,EAAgCs5D,IAEvCC,kBAAyC,QAAxBtiD,EAAGyhD,EAAQW,qBAAa,IAAApiD,OAAA,EAAtBA,EAAgCuiD,mBACnDC,aAAcf,EAAQ9Z,WAAanV,IAEnC35B,iBAAuC,QAAvBqH,EAAEuhD,EAAQW,qBAAa,IAAAliD,GAAc,QAAd4hD,EAAtB5hD,EAAgCuiD,YAAI,IAAAX,OAAd,EAAtBA,EAAsCtP,MACrD,SAACkQ,GAAW,OAAKA,IAAQlC,EAAiBmC,oBAAsBD,IAAQlC,EAAiBoC,mBAAmB,QAIlH1+C,EAAS2+C,YAAiB3+C,IAC1Bg9C,KAAK4B,YACN,yBAAA9zC,EAAAxB,OAAA,GAAAoB,EAAA,UACF,gBAAAJ,GAAA,OAAAozC,EAAAlzC,MAAA,KAAAvR,UAAA,EAjCD,IAmCA,CAAAnV,IAAA,SAAAqP,MAAA,eAAA0rD,EAAAp0C,YAAAnI,IAAAkG,MAGA,SAAA8C,IAAA,OAAAhJ,IAAAsB,MAAA,SAAA+H,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAzE,MAAA,OACmB,GADnByE,EAAAqJ,GACEgoC,KAAKc,cAAYnyC,EAAAqJ,GAAA,CAAArJ,EAAAzE,KAAA,eAAAyE,EAAAzE,KAAA,EAAW81C,KAAKF,WAAWgC,iBAAgB,wBAAAnzC,EAAArC,OAAA,GAAAgC,EAAA,UAC7D,yBAAAuzC,EAAAr0C,MAAA,KAAAvR,UAAA,EALD,IAOA,CAAAnV,IAAA,iBAAAqP,MAGA,WACE,QAAS6pD,KAAKc,YAChB,GAEA,CAAAh6D,IAAA,WAAAqP,MAAA,eAAA4rD,EAAAt0C,YAAAnI,IAAAkG,MAGA,SAAAkE,IAAA,IAAAorC,EAAA,OAAAx1C,IAAAsB,MAAA,SAAAkJ,GAAA,cAAAA,EAAA1D,KAAA0D,EAAA5F,MAAA,cAAA4F,EAAA5F,KAAA,EAC4B81C,KAAKgC,aAAahC,KAAKD,iBAAiB,KAAD,EAAhD,OAAXjF,EAAWhrC,EAAAtG,KAAAsG,EAAAnG,OAAA,SACVmxC,GAAW,wBAAAhrC,EAAAxD,OAAA,GAAAoD,EAAA,UACnB,yBAAAqyC,EAAAv0C,MAAA,KAAAvR,UAAA,EAND,IAQA,CAAAnV,IAAA,kBAAAqP,MAAA,eAAA8rD,EAAAx0C,YAAAnI,IAAAkG,MAGA,SAAA02C,IAAA,IAAAC,EAAAlxB,EAAA,OAAA3rB,IAAAsB,MAAA,SAAAw7C,GAAA,cAAAA,EAAAh2C,KAAAg2C,EAAAl4C,MAAA,OAQK,OARLk4C,EAAAh2C,KAAA,EAEU+1C,EAA+B,CACnC5B,QAASP,KAAKc,aACdhnD,OAAQL,IAERU,YAAaH,OAAOC,SAASC,KAC7BmoD,cAAc,GACfD,EAAAl4C,KAAA,EACsB81C,KAAKF,WAAWwC,mBAAmBH,GAAe,KAAD,EAA1D,OAARlxB,EAAQmxB,EAAA54C,KAAA44C,EAAAz4C,OAAA,SACPsnB,EAAS6pB,aAAW,OAEkE,OAFlEsH,EAAAh2C,KAAA,EAAAg2C,EAAApqC,GAAAoqC,EAAA,SAE3B3mD,IAAOC,SAASC,IAAmBgkD,eAAe,iCAADt2D,OAAA+4D,EAAApqC,KAA4CoqC,EAAAz4C,OAAA,SACtF,iBAAe,yBAAAy4C,EAAA91C,OAAA,GAAA41C,EAAA,kBAEzB,yBAAAD,EAAAz0C,MAAA,KAAAvR,UAAA,EAlBD,IAoBA,CAAAnV,IAAA,yBAAAqP,MAAA,eAAAosD,EAAA90C,YAAAnI,IAAAkG,MAGA,SAAAg3C,IAAA,IAAAL,EAAAlxB,EAAA,OAAA3rB,IAAAsB,MAAA,SAAA67C,GAAA,cAAAA,EAAAr2C,KAAAq2C,EAAAv4C,MAAA,OAQK,OARLu4C,EAAAr2C,KAAA,EAEU+1C,EAA+B,CACnC5B,QAASP,KAAKc,aACdhnD,OAAQH,IAERQ,YAAaH,OAAOC,SAASC,KAC7BmoD,cAAc,GACfI,EAAAv4C,KAAA,EACsB81C,KAAKF,WAAWwC,mBAAmBH,GAAe,KAAD,EAA1D,OAARlxB,EAAQwxB,EAAAj5C,KAAAi5C,EAAA94C,OAAA,SACPsnB,EAAS6pB,aAAW,OAEyE,OAFzE2H,EAAAr2C,KAAA,EAAAq2C,EAAAzqC,GAAAyqC,EAAA,SAE3BhnD,IAAOC,SAASC,IAAmBgkD,eAAe,wCAADt2D,OAAAo5D,EAAAzqC,KAAmDyqC,EAAA94C,OAAA,SAC7F,iBAAe,yBAAA84C,EAAAn2C,OAAA,GAAAk2C,EAAA,kBAEzB,yBAAAD,EAAA/0C,MAAA,KAAAvR,UAAA,EAlBD,IAoBA,CAAAnV,IAAA,aAAAqP,MAGA,WACE,IAAIoqD,EAAUP,KAAKF,WAAW4C,mBACxB1B,EAAYzB,IAClB,GAAIgB,KACGS,GAAaT,EAAQ3oD,WAAaopD,GACrC,OAAOT,EAIX,IAAMoC,EAAW3C,KAAKF,WAAW8C,iBAEjC,GAAID,EAASx4D,OAAS,EAAG,CACP,IAAD04D,EAAf,GAAI7B,EAGiB,QAAnB6B,EAAA7oD,OAAO8oD,oBAAY,IAAAD,GAAnBA,EAAqBE,WAAW1kB,IAAkBC,cAEpD,IAAM0kB,EAAmBhC,EAA0B2B,EAAS3yC,MAAK,SAACuwC,GAAO,OAAKA,EAAQ3oD,WAAaopD,CAAS,IAAvE2B,EAAS,GAC9CpC,EAAyB,OAAfyC,QAAe,IAAfA,IAAmB,KACzBA,GACFhD,KAAKF,WAAWU,iBAAiBD,EAErC,CAEA,OAAmB,OAAZA,OAAmBnnD,EAAYmnD,CACxC,GAEA,CAAAz5D,IAAA,eAAAqP,MAAA,eAAA8sD,EAAAx1C,YAAAnI,IAAAkG,MAGA,SAAA03C,EAA2BC,GAA6B,IAAAhB,EAAAlxB,EAAA,OAAA3rB,IAAAsB,MAAA,SAAAw8C,GAAA,cAAAA,EAAAh3C,KAAAg3C,EAAAl5C,MAAA,OAQnD,OARmDk5C,EAAAh3C,KAAA,EAE9C+1C,EAA+B,CACnC5B,QAASP,KAAKc,aACdhnD,OAAQR,IAERa,YAAaH,OAAOC,SAASC,KAC7BmoD,cAAc,GACfe,EAAAl5C,KAAA,EACsB81C,KAAKF,WAAWwC,mBAAmBH,GAAe,KAAD,EAA1D,OAARlxB,EAAQmyB,EAAA55C,KAAA45C,EAAAz5C,OAAA,SACPsnB,EAAS6pB,aAAW,UAAAsI,EAAAh3C,KAAA,EAAAg3C,EAAAprC,GAAAorC,EAAA,WAEvBA,EAAAprC,cAAiBqrC,KAA4B,CAAAD,EAAAl5C,KAAA,SACwE,OAAvHzO,IAAOC,SAASC,IAAmBgkD,eAAe,oEAAqEyD,EAAAl5C,KAAA,GACjH81C,KAAKF,WAAWe,wBAAwB,KAAD,UAAAuC,EAAAl5C,KAAA,GACvC81C,KAAKF,WAAWwD,qBAAqBH,GAAc,KAAD,UAAAC,EAAAz5C,OAAA,SACjD,mBAAiB,aACfy5C,EAAAprC,cAAiBurC,KAAoBH,EAAAprC,cAAiBwrC,KAAS,CAAAJ,EAAAl5C,KAAA,SAC8C,OAAtHzO,IAAOC,SAASC,IAAmBgkD,eAAe,0DAADt2D,OAAA+5D,EAAAprC,KAAqEorC,EAAAl5C,KAAA,GAChH81C,KAAKF,WAAWiB,cAAcf,KAAKD,iBAAiB,KAAD,UAAAqD,EAAAz5C,OAAA,SAClD,mBAAiB,QAEsD,OAA9ElO,IAAOC,SAASC,IAAmBgkD,eAAe,kBAADt2D,OAAA+5D,EAAAprC,KAA6BorC,EAAAl5C,KAAA,GACxE81C,KAAKF,WAAWiB,cAAcf,KAAKD,iBAAiB,KAAD,UAAAqD,EAAAz5C,OAAA,SAClD,iBAAe,yBAAAy5C,EAAA92C,OAAA,GAAA42C,EAAA,kBAG3B,gBAAA90C,GAAA,OAAA60C,EAAAz1C,MAAA,KAAAvR,UAAA,EA9BD,MA8BC0jD,CAAA,CAlLwB,G,mCC9B3Br6C,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CAYO,IAAMk+C,EAAe,WAI1B,SAAAA,IAAc5D,YAAA,KAAA4D,EAAC,CA4Fd,OA5FehD,YAAAgD,EAAA,EAAA38D,IAAA,WAAAqP,MAAA,eAAA4rD,EAAAt0C,YAAAnI,IAAAkG,MAEhB,SAAAkC,IAAA,OAAApI,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,cAAA4D,EAAAnE,OAAA,SACS,IAAIkC,SAAQ,SAAClD,EAASC,GAC3B86C,iBAAwBC,aAAa,CACnCC,UAAW,CAACppD,uCACZqpD,gBAAiB,SAACC,GAChBroD,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,mBAClD96C,EAAQm7C,EACV,EACAC,gBAAiB,SAACC,GAChBvoD,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,mBAADp6D,OAAqB26D,IACtEp7C,EAAOo7C,EACT,GAEJ,KAAE,wBAAAl2C,EAAAxB,OAAA,GAAAoB,EAAA,KACH,yBAAAq0C,EAAAv0C,MAAA,KAAAvR,UAAA,EAhBe,IAgBf,CAAAnV,IAAA,kBAAAqP,MAAA,eAAA8rD,EAAAx0C,YAAAnI,IAAAkG,MAED,SAAA8C,IAAA,OAAAhJ,IAAAsB,MAAA,SAAA+H,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAzE,MAAA,cAAAyE,EAAAhF,OAAA,SACS,IAAIkC,SAAQ,SAAClD,EAASC,GAC3B86C,iBAAwBC,aAAa,CACnCC,UAAW,CAACppD,gCACZqpD,gBAAiB,SAACC,GAChBroD,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,0BAClD96C,EAAQm7C,EACV,EACAC,gBAAiB,SAACC,GAChBvoD,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,0BAADp6D,OAA4B26D,IAC7Ep7C,EAAOo7C,EACT,GAEJ,KAAE,wBAAAr1C,EAAArC,OAAA,GAAAgC,EAAA,KACH,yBAAA2zC,EAAAz0C,MAAA,KAAAvR,UAAA,EAhBA,IAgBA,CAAAnV,IAAA,yBAAAqP,MAAA,eAAAosD,EAAA90C,YAAAnI,IAAAkG,MAED,SAAAkE,IAAA,OAAApK,IAAAsB,MAAA,SAAAkJ,GAAA,cAAAA,EAAA1D,KAAA0D,EAAA5F,MAAA,cAAA4F,EAAAnG,OAAA,SACS,IAAIkC,SAAQ,SAAClD,EAASC,GAC3B86C,iBAAwBC,aAAa,CACnCC,UAAW,CAACppD,6BACZqpD,gBAAiB,SAACC,GAChBroD,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,iCAClD96C,EAAQm7C,EACV,EACAC,gBAAiB,SAACC,GAChBvoD,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,iCAADp6D,OAAmC26D,IACpFp7C,EAAOo7C,EACT,GAEJ,KAAE,wBAAAl0C,EAAAxD,OAAA,GAAAoD,EAAA,KACH,yBAAA6yC,EAAA/0C,MAAA,KAAAvR,UAAA,EAhBA,IAgBA,CAAAnV,IAAA,QAAAqP,MAAA,eAAAuqD,EAAAjzC,YAAAnI,IAAAkG,MAED,SAAA02C,EAAmBl/C,GAAc,OAAAsC,IAAAsB,MAAA,SAAAw7C,GAAA,cAAAA,EAAAh2C,KAAAg2C,EAAAl4C,MAAA,OAC/Bw5C,cAAoB,SAACr8C,GACnB5L,IAAO8wB,QAAQ5wB,IAAmB8nD,gBAAgB,GAADp6D,OAAKge,EAAQ48C,aAAY,oBAC1EjhD,EACE0/B,YAAkB,CAChBJ,cAAc,EACdmE,SAAUp/B,EAAQ68C,IAClB5lD,KAAM+I,EAAQ88C,kBACdlD,SAAU55C,EAAQ88C,kBAClB3sD,MAAO6P,EAAQ48C,aACf7C,kBAAmB/5C,EAAQ88C,kBAC3B7C,aAAcj6C,EAAQ68C,MAAQ5yB,OAGlCtuB,EAAS2+C,YAAiB3+C,GAC5B,IAAG,wBAAAo/C,EAAA91C,OAAA,GAAA41C,EAAA,KACJ,gBAAA50C,GAAA,OAAAozC,EAAAlzC,MAAA,KAAAvR,UAAA,EAlBA,IAoBD,CAAAnV,IAAA,SAAAqP,MAGA,WAAuB,GAEvB,CAAArP,IAAA,iBAAAqP,MAGA,WACE,OAAO,CACT,GAAC,CAAArP,IAAA,aAAAqP,MAED,WAWE,MAViC,CAC/BiuD,cAAe,GACfC,eAAgB,GAChBzsD,SAAU,GACV6uC,SAAU,GACVnoC,KAAM,GACN4iD,cAAe,CAAC,EAChBoD,YAAa,GAIjB,KAACb,CAAA,CAhGyB,G,aCZ5Bn+C,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CASA,IAAMg/C,EAAiB,uCAEVC,EAAc,WACzB,SAAAA,IAAc3E,YAAA,KAAA2E,EAAC,CAyDd,OAzDe/D,YAAA+D,EAAA,EAAA19D,IAAA,WAAAqP,MAAA,eAAA4rD,EAAAt0C,YAAAnI,IAAAkG,MAEhB,SAAAkC,IAAA,OAAApI,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,cAAA4D,EAAAnE,OAAA,SACS46C,GAAM,wBAAAz2C,EAAAxB,OAAA,GAAAoB,EAAA,KACd,yBAAAq0C,EAAAv0C,MAAA,KAAAvR,UAAA,EAJe,IAIf,CAAAnV,IAAA,kBAAAqP,MAAA,eAAA8rD,EAAAx0C,YAAAnI,IAAAkG,MAED,SAAA8C,IAAA,OAAAhJ,IAAAsB,MAAA,SAAA+H,GAAA,cAAAA,EAAAvC,KAAAuC,EAAAzE,MAAA,cAAAyE,EAAAhF,OAAA,SACS46C,GAAM,wBAAA51C,EAAArC,OAAA,GAAAgC,EAAA,KACd,yBAAA2zC,EAAAz0C,MAAA,KAAAvR,UAAA,EAJA,IAIA,CAAAnV,IAAA,yBAAAqP,MAAA,eAAAosD,EAAA90C,YAAAnI,IAAAkG,MAED,SAAAkE,IAAA,OAAApK,IAAAsB,MAAA,SAAAkJ,GAAA,cAAAA,EAAA1D,KAAA0D,EAAA5F,MAAA,cAAA4F,EAAAnG,OAAA,SACS46C,GAAM,wBAAAz0C,EAAAxD,OAAA,GAAAoD,EAAA,KACd,yBAAA6yC,EAAA/0C,MAAA,KAAAvR,UAAA,EAJA,IAIA,CAAAnV,IAAA,QAAAqP,MAAA,eAAAuqD,EAAAjzC,YAAAnI,IAAAkG,MAED,SAAA02C,EAAmBl/C,GAAa,OAAAsC,IAAAsB,MAAA,SAAAw7C,GAAA,cAAAA,EAAAh2C,KAAAg2C,EAAAl4C,MAAA,OAC9BlH,EAAS0/B,YAAkBsd,KAAKyE,eAAe,wBAAArC,EAAA91C,OAAA,GAAA41C,EAAA,UAChD,gBAAA50C,GAAA,OAAAozC,EAAAlzC,MAAA,KAAAvR,UAAA,EAJA,IAMD,CAAAnV,IAAA,SAAAqP,MAGA,WAAuB,GAEvB,CAAArP,IAAA,iBAAAqP,MAGA,WACE,OAAO,CACT,GAAC,CAAArP,IAAA,aAAAqP,MAED,WAaE,MAZiC,CAC/BiuD,cAAe,GACfC,eAAgB,GAChBzsD,SAAU,QACV6uC,SAAU8d,EACVjmD,KAAM,YACNgmD,YAAa,GACbpD,cAAe,CACbC,IAAKoD,GAKX,GAAC,CAAAz9D,IAAA,aAAAqP,MAED,WAA2B,IAADtO,EAClB04D,EAAuBP,KAAKc,aAClC,MAAO,CACLxe,cAAc,EACdmE,SAAU8Z,EAAQ9Z,SAClBnoC,KAAMiiD,EAAQjiD,KACd2iD,SAAUV,EAAQ3oD,SAClBJ,MAA6B,QAAxB3P,EAAG04D,EAAQW,qBAAa,IAAAr5D,OAAA,EAAtBA,EAAgCs5D,IACvCC,kBAAmBb,EAAQ3oD,SAC3B0pD,cAAc,EAElB,KAACkD,CAAA,CA1DwB,GC0IrB5J,EAAgB,IAtID,WAEnB,SAAA8J,EAAYC,GACV,OADyC9E,YAAA,KAAA6E,GAAA,KADnCE,YAAM,EAEJD,GACN,KAAKtF,EAAYwF,MACf7E,KAAK4E,OAAS,IAAInB,EAClB,MACF,KAAKpE,EAAYyF,IACf9E,KAAK4E,OAAS,IAAIJ,EAClB,MACF,KAAKnF,EAAY0F,KACjB,QACE/E,KAAK4E,OAAS,IAAIjF,EAItBlkD,IAAO8wB,QAAQ5wB,IAAmBi/C,cAAc,GAADvxD,OAAKq7D,EAAgBpmD,KAAI,SAC1E,CA2GC,OAzGDmiD,YAAAiE,EAAA,EAAA59D,IAAA,QAAAqP,MAGA,SAAa6M,GAEX,OADAvH,IAAO8wB,QAAQ5wB,IAAmBqpD,QAC1BzrD,IAAO0rD,eACb,KAAKC,IAASC,MACd,KAAKD,IAASE,KAEZpF,KAAK4E,OAAOS,MAAMriD,EAExB,GAEA,CAAAlc,IAAA,SAAAqP,MAGA,WAEE,OADAsF,IAAO8wB,QAAQ5wB,IAAmB2pD,SAC1B/rD,IAAO0rD,eACb,KAAKC,IAASC,MACZ,OACF,KAAKD,IAASE,IACd,QACEpF,KAAK4E,OAAOW,SAElB,GAEA,CAAAz+D,IAAA,iBAAAqP,MAGA,WACE,IAAIqvD,GAAa,EACjB,OAAQjsD,IAAO0rD,eACb,KAAKC,IAASC,MACZ,OACF,KAAKD,IAASE,IACd,QACEI,EAAaxF,KAAK4E,OAAOa,iBAG7B,OADAhqD,IAAO8wB,QAAQ5wB,IAAmBi/C,cAAc,aAADvxD,OAAem8D,IACvDA,CACT,GAEA,CAAA1+D,IAAA,kBAAAqP,MAGA,WACE,OAAQoD,IAAO0rD,eACb,KAAKC,IAASC,MACd,KAAKD,IAASE,KAEZ,OAAOpF,KAAK4E,OAAOc,iBAEzB,GAEF,CAAA5+D,IAAA,yBAAAqP,MAGE,WACE,OAAQoD,IAAO0rD,eACb,KAAKC,IAASC,MACd,KAAKD,IAASE,KAEZ,OAAOpF,KAAK4E,OAAOe,wBAEzB,GAEA,CAAA7+D,IAAA,kBAAAqP,MAGA,SAAuByvD,GACrB,OAAQA,GACN,KAAKnL,IAAaoL,QAChB,OAAO7F,KAAK0F,kBACd,KAAKjL,IAAaqL,eAChB,OAAO9F,KAAK2F,yBACd,KAAKlL,IAAaC,UAClB,QACE,OAAOsF,KAAK4E,OAAOhD,WAEzB,GAEA,CAAA96D,IAAA,WAAAqP,MAGA,WACE,OAAQoD,IAAO0rD,eACb,KAAKC,IAASC,MACd,KAAKD,IAASE,KAEZ,OAAOpF,KAAK4E,OAAOhD,UAEzB,GAEA,CAAA96D,IAAA,aAAAqP,MAGA,WACE,OAAQoD,IAAO0rD,eACb,KAAKC,IAASC,MACZ,OACF,KAAKD,IAASE,IACd,QACE,OAAOpF,KAAK4E,OAAO9D,aAEzB,KAAC4D,CAAA,CA5HkB,GAsIC,CANpBnrD,IAAO0rD,gBAAkBC,IAASC,MAC9B9F,EAAYwF,MACZtrD,IAAO0rD,gBAAkBC,IAASJ,IAClCzF,EAAYyF,IACZzF,EAAY0F,MAIHnK,K,mCCrJf,sCAAMmL,EAAyB,mBACzBC,EAAqB,OAEdjhD,EAAkB,SAACksB,GAA2C,IAADg1B,EAAAC,EAAAC,EAETC,EADzDt9C,EAAuB,CAAC,GAClB,OAARmoB,QAAQ,IAARA,GAAiB,QAATg1B,EAARh1B,EAAUj4B,eAAO,IAAAitD,OAAT,EAARA,EAAmBtgD,eAAeogD,MACpCj9C,EAAO6e,cAAgBsJ,EAASj4B,QAAQ+sD,IAG5B,OAAR90B,QAAQ,IAARA,GAAiB,QAATm1B,EAARn1B,EAAUj4B,eAAO,IAAAotD,OAAT,EAARA,EAAmBzgD,eAAeqgD,IACpCl9C,EAAO7P,UAAYg4B,EAASj4B,QAAQgtD,GAEpCl9C,EAAO7P,WAAY,IAAIipC,MAAOmkB,eAgBlC,OAZY,OAARp1B,QAAQ,IAARA,OAAQ,EAARA,EAAUn4B,UACZgQ,EAAOof,WAAa+I,EAASn4B,SAGnB,OAARm4B,QAAQ,IAARA,GAAc,QAANi1B,EAARj1B,EAAUz/B,YAAI,IAAA00D,OAAN,EAARA,EAAgBz7B,aAClB3hB,EAAO2hB,UAAYwG,EAASz/B,KAAKi5B,YAGvB,OAARwG,QAAQ,IAARA,GAAc,QAANk1B,EAARl1B,EAAUz/B,YAAI,IAAA20D,OAAN,EAARA,EAAgB/oD,gBAClB0L,EAAO1L,aAAe6zB,EAASz/B,KAAK4L,cAG/B0L,CACT,C,mCChCA,kCAMO,IAAKjM,EAAuB,SAAvBA,GAAuB,OAAvBA,IAAuB,eAAvBA,IAAuB,eAAvBA,CAAuB,K,mCCNnC,uSAyBYs/B,EAAgC,SAAhCA,GAAgC,OAAhCA,EAAgC,8FAAhCA,EAAgC,+FAAhCA,EAAgC,oGAAhCA,EAAgC,qGAAhCA,EAAgC,0FAAhCA,EAAgC,gGAAhCA,EAAgC,8FAAhCA,EAAgC,8FAAhCA,EAAgC,0FAAhCA,EAAgC,gEAAhCA,EAAgC,gDAAhCA,EAAgC,wEAAhCA,CAAgC,MAqDrC,IAAMmqB,EAA8B,SACzC79D,EACA89D,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5jD,EACAswC,EACAuT,EACA3uC,GAAgB,OAEhBjV,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBZ,EAAK,4BACrF4a,OAAQC,IAAWiB,KACnB/S,KAAM+0D,EACN/iD,QAAS,WACPR,EAAS25B,KACT35B,EAASS,IAAeC,QAAQC,IAAqBC,UACjDijD,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyB3vC,SAEjE,EACAC,UAAW,SAACrS,GACViK,IAAO8wB,QAAQ5wB,IAAmBmrD,wCAAyCL,GAC3EzjD,EAASw5B,EAAmC+pB,IAC5CvjD,EAASS,IAAeC,QAAQC,IAAqBG,aACjDwvC,GACFtwC,EAAS65B,EAAoByW,IAnErC,SACE7qD,EACA+9D,EACAxjD,EACAu6C,EACAngD,EACAypD,EACA3uC,GAEIsuC,EAA8Bn3B,SAChCrsB,EACE+jD,YACEt+D,EACA+9D,EAA8Bn3B,SAC9Bm3B,EACAjJ,EACAngD,EACA4F,EACA6jD,EACA3uC,GACA,IAIJlV,EACEvc,YACEgC,EACA+9D,EACAjJ,EACAngD,EACA4F,GACA,IACE6jD,GAIV,CAiCMG,CACEv+D,EACA+9D,EACAxjD,EACA2jD,EACAC,EACAC,EACA3uC,EAEJ,EACAjU,UAAW,SAACC,GAQV,OAPAlB,EAAS6B,aAAiB,EAAM6hD,EAAoB5hD,IAAiB1J,MAAO2J,YAAgBb,KAC5FlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS+5B,KACTthC,IAAOC,SAASC,IAAmBsrD,iCAAkCP,GACjEG,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAExD,CACLrpC,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCO,qCAEjF,GACC,EAEQC,EAAmC,WAAH,MAAmB,CAC9DjmC,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCQ,kCAC9E,EAEYH,EAAqC,SAAChrC,GAAkB,MAAe,CAClFkF,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCK,oCAC7E52C,QAAS4L,EACV,EAgCY01D,EAAuB,WAAH,MAAmB,CAClDxwD,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCW,aAC9E,EAEYC,EAA0B,WAAH,MAAmB,CACrDrmC,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCY,yBAC9E,EAEYF,EAAsB,SAACrrC,GAAe,MAAe,CAChEkF,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCU,qBAC7Ej3C,QAAS4L,EACV,EAEY21D,EAAiC,SAC5C1+D,EACAwmB,EACAT,EACA8kC,EACA8T,EACAX,EACAC,EACAW,EACAT,EACA5jD,EACA6jD,EACA3uC,GAAgB,OAEhBjV,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBZ,EAAK,6BACrF4a,OAAQC,IAAWiB,KACnBvL,QAAS,CACP,eAAgB,mBAElBxH,KAAMyd,EACNzL,QAAS,WACPR,EA7D6D,CACjEtM,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCS,uCA6DzE55B,EAASS,IAAeC,QAAQC,IAAqBC,UACjDijD,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyB3vC,SAEjE,EACAC,UAAW,SAACrS,GACViK,IAAO8wB,QAAQ5wB,IAAmB2rD,2CAA4Cb,GAC9EzjD,EAjE+C,SAACxR,GAAc,MAAe,CACjFkF,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCI,uCAC7E32C,QAAS4L,EACV,CA8Dc+qC,CAAsC/tB,IAC/CxL,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS65B,EAAoByW,IAC7BtwC,EACE+jD,YACEt+D,EACA2+D,EAAyB/3B,SACzB+3B,EACAC,EACAT,EACA5jD,EACA6jD,EACA3uC,GACA,GAGN,EACAjU,UAAW,SAACC,GAQV,OAPAlB,EAAS6B,aAAiB,EAAM6hD,EAAoB5hD,IAAiB1J,MAAO2J,YAAgBb,KAC5FlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS+5B,KACL8pB,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAE/DtkC,IAAOC,SAASC,IAAmB4rD,oCAAqCb,GACjE,CACLhwD,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCM,wCAEjF,GACC,EAEQ+qB,EAA8B,SACzC/+D,EACA80D,EACAkK,EACAzkD,EACA0kD,GAA2B,OAE3BzkD,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBZ,EAAK,6BACrF4a,OAAQC,IAAWC,IACnBC,QAAS,WACPR,EAlGuD,CAC3DtM,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCC,oCAkGrEsrB,GACF1kD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyB3vC,SAEjE,EACAC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBgsD,wCAAyCpK,GAEpE,CACL7mD,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCE,oCAC7Ez2C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAMV,OALAlB,EAAS6B,aAAiB,EAAM4iD,EAAe3iD,IAAiB1J,MAAO2J,YAAgBb,KACnFwjD,GACF1kD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAE/DtkC,IAAOC,SAASC,IAAmBisD,iCAAkCH,GAC9D,CACL/wD,KAAK,GAADrN,OAAKjE,IAAU82C,sBAAqB,KAAA7yC,OAAI8yC,EAAiCG,oCAEjF,GACC,C,mCCxRL,kCAMO,IAAKurB,EAAc,SAAdA,GAAc,OAAdA,EAAc,cAAdA,EAAc,kBAAdA,EAAc,oCAAdA,CAAc,K,yKCHdtU,EAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,sBAAxBA,EAAwB,4BAAxBA,EAAwB,0BAAxBA,CAAwB,MAMxBuU,EAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,kBAAzBA,EAAyB,oBAAzBA,EAAyB,kBAAzBA,CAAyB,MAWxB3U,EAAqB90C,YAAY,CAC5CC,KAAMlZ,IAAU2iE,cAChBxrD,aAJwC,CAAC,EAKzCiC,UAAQC,EAAA,GAAA9Y,YAAA8Y,EACL80C,EAAyB3vC,OAAQ,iBAAO,CAAE9K,OAAQgvD,EAA0Bv3C,QAAS,IAAC5qB,YAAA8Y,EACtF80C,EAAyBzvC,UAAW,iBAAO,CAAEhL,OAAQgvD,EAA0BhkD,SAAU,IAACne,YAAA8Y,EAC1F80C,EAAyBxT,SAAU,iBAAO,CAAEjnC,OAAQgvD,EAA0B/nB,QAAS,IAACthC,KAI9E00C,EAA0B,O,mCC9BzC,+YAcYjP,EAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,uCAAxBA,EAAwB,qCAAxBA,EAAwB,yCAAxBA,EAAwB,mCAAxBA,EAAwB,2CAAxBA,EAAwB,oDAAxBA,EAAwB,kDAAxBA,EAAwB,sDAAxBA,EAAwB,gDAAxBA,CAAwB,MAYvB8jB,EAAwB,SAAChlD,EAAuBilD,GAAuB,OAClFhlD,YAAU,CACRC,IAAI,GAAD7Z,OAAK6+D,IAAiBC,sBAAsBnM,QAAQ,mBAAoBiM,IAC3E5kD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBC,iBAC5Dv+C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMq/B,EAAyBC,gBAAiBr/B,IAAiB1J,MAAO2J,YAAgBb,KAClHlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBkkB,mBAEhE,GACC,EAEQC,EAAuB,SAACrlD,EAAuBilD,EAAyBK,EAAmB1kB,GAA0B,OAChI3gC,YAAU,CACRC,IAAI,GAAD7Z,OAAK6+D,IAAiBK,iBAAiBvM,QAAQ,mBAAoBiM,GAAgB,cAAA5+D,OAAai/D,GAAY,IAC/GjlD,OAAQC,IAAWC,IACnBvK,QAAS4qC,GAAqB,CAC5B,uBAAwBA,GAE1BpgC,SAAUogC,GAAqBngC,IAAeC,QAAQC,IAAqBC,OAC3EC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBG,gBAC5Dz+C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMq/B,EAAyBG,eAAgBv/B,IAAiB1J,MAAO2J,YAAgBb,KACjHlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBkkB,mBAEhE,GACC,EAEQI,EAAyB,SAACxlD,EAAuBylD,GAAoB,OAChFxlD,YAAU,CACRC,IAAI,GAAD7Z,OAAK6+D,IAAiBQ,uBAAuB1M,QAAQ,gBAAiByM,IACzEplD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyB1uB,kBAC5D5vB,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAEV,OADAlB,EAAS6B,aAAiB,EAAMq/B,EAAyB1uB,iBAAkB1Q,IAAiB1J,MAAO2J,YAAgBb,KAC5G,CACLxN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBkkB,mBAEhE,GACC,EAEQO,EAAyB,SAAC3lD,EAAuBye,GAC5D,OAAOxe,YAAU,CACfC,IAAI,GAAD7Z,OAAK6+D,IAAiBU,kBACzBvlD,OAAQC,IAAWiB,KACnB/S,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,OAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOu9C,IAAIr9C,IAAmBktD,iCAAiC,CAACttD,QAASkmB,EAAYwmC,kBACrFxsD,IAAOk5C,UAAUt7C,IAAkByvD,uBAAuB,CAACrgE,MAAMg5B,EAAYwmC,kBACtE,CACLvxD,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBK,eAC5D3+C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMq/B,EAAyB1uB,iBAAkB1Q,IAAiB1J,MAAO2J,YAAgBb,KAC5G,CACLxN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBkkB,mBAEhE,GAEJ,EAEaW,EAA0B,SAAC/lD,GAAqB,MAAM,CACjEtM,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBM,sBAC7D,EAEYwkB,EAAyB,SAAChmD,EAAuBylD,EAAsBhgE,GAClF,OAAOwa,YAAU,CACfC,IAAI,GAAD7Z,OAAK6+D,IAAiBe,aAAajN,QAAQ,gBAAiByM,IAC/DplD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,OAHAiK,IAAOu9C,IAAI3/C,IAAkB6vD,4BAA6B,CAAE3tD,QAAS9S,IACrEua,EAASS,IAAeC,QAAQC,IAAqBG,aACrD80C,YAAyBpnD,EAAMi3D,EAAc,OACtC,CACL/xD,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBilB,wBAC5DvjE,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMq/B,EAAyBilB,uBAAwBrkD,IAAiB1J,MAAO2J,YAAgBb,KAClH,CACLxN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBkkB,mBAEhE,GAEJ,EAEagB,EAAsB,SAACpmD,EAAuBylD,EAAsBhgE,GAC/E,OAAOwa,YAAU,CACfC,IAAI,GAAD7Z,OAAK6+D,IAAiBmB,UAAUrN,QAAQ,gBAAiByM,IAC5DplD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,OAHAiK,IAAOu9C,IAAI3/C,IAAkBiwD,6BAA8B,CAAE/tD,QAAS9S,IACtEua,EAASS,IAAeC,QAAQC,IAAqBG,aACrDyzC,YAAakR,EAAcj3D,GACpB,CACLkF,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBqlB,qBAC5D3jE,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMq/B,EAAyBilB,uBAAwBrkD,IAAiB1J,MAAO2J,YAAgBb,KAClH,CACLxN,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBkkB,mBAEhE,GAEJ,EAEaoB,EAAyB,WAAH,MAAU,CAC3C9yD,KAAK,GAADrN,OAAKjE,IAAU6+C,aAAY,KAAA56C,OAAI66C,EAAyBO,uBAC7D,C,mCC1KD,2cAaYkB,EAA8B,SAA9BA,GAA8B,OAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,wEAA9BA,EAA8B,sEAA9BA,EAA8B,gEAA9BA,EAA8B,8DAA9BA,EAA8B,kDAA9BA,EAA8B,gEAA9BA,EAA8B,0CAA9BA,EAA8B,gDAA9BA,EAA8B,gDAA9BA,EAA8B,8CAA9BA,EAA8B,kDAA9BA,CAA8B,MAqB7B8jB,EAA4B,SAACzmD,GAAqB,OAC7DC,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuBC,4BAC/BtmD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BC,gCACzEhgD,QAAS4L,EAEb,EACAm2B,cAAeiiC,cACf3lD,UAAW,SAACC,GAUV,OATAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8gC,EAA+BkkB,8BAC/B/kD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BkkB,+BAE7E,GACC,EAGQC,EAA+B,SAAC9mD,EAAuBvZ,EAAY8R,GAAc,OAC5F0H,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuBK,6BAA6B/N,QAAQ,2BAA4BvyD,IAChG4Z,OAAQC,IAAWisB,OACnB5H,cAAeiiC,cACfpmD,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,WAIT,OAHAb,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMtJ,EAASuJ,IAAiB+jB,UAC1DptB,IAAOk5C,UAAUt7C,IAAkB2wD,4BAA6B,CAAC,GAC1D,CACLtzD,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BK,kCACzEpgD,QAAS,CAAE6D,MAEf,EACAwa,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8gC,EAA+BskB,gCAC/BnlD,IAAiB1J,MACjB2J,YAAgBb,IAGtB,GACC,EAGQgmD,EAA0B,SAAClnD,GAEtC,OADAA,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BG,yBACzElgD,QAAS,GAEb,EAGaukE,EAAqB,WAAH,MAAU,CACvCzzD,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BI,gCACzEngD,QAAS,GACV,EAGYygD,EAAsB,WAAH,MAAU,CACxC3vC,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BU,qBACzEzgD,QAAS,GACV,EAGYwkE,EAA4B,SAACpnD,EAAuBvZ,GAAU,OACzEwZ,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuBW,0BAA0BrO,QAAQ,2BAA4BvyD,IAC7F4Z,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BE,oCACzEjgD,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GASV,OARAlB,EACE6B,aACE,EACA8gC,EAA+BkkB,8BAC/B/kD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+B2kB,mCAE7E,GACC,EAGQC,EAA8B,SAACvnD,EAAuBye,GAAsC,OACvGxe,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuBc,8BAC/BnnD,OAAQC,IAAWiB,KACnB/S,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAIV,OAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOk5C,UAAUt7C,IAAkBoxD,6BAA8B,CAAC,GAE3D,CACL7kE,QAAS4L,EACTkF,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BO,kCAE7E,EACAjiC,UAAW,SAACC,GAUV,OATAlB,EACE6B,aACE,EACA8gC,EAA+B+kB,gCAC/B5lD,IAAiB1J,MACjB2J,YAAgBb,KAGpBzI,IAAOk5C,UAAUt7C,IAAkBsxD,6BAA8B,CAAC,GAC3D,CACLj0D,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+B+kB,iCAE7E,GACC,EAGQE,EAA2B,SAAC5nD,EAAuBvZ,EAAYg4B,GAA+C,OACzHxe,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuBmB,6BAA6B7O,QAAQ,2BAA4BvyD,IAChG4Z,OAAQC,IAAWwnD,MACnBt5D,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,WAIT,OAHAb,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAM8gC,EAA+BQ,iCAAkCrhC,IAAiB+jB,UAClHptB,IAAOk5C,UAAUt7C,IAAkB0xD,4BAA6B,CAAC,GAC1D,CACLr0D,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BQ,kCACzEvgD,QAAS,CAAE6D,MAEf,EACAwa,UAAW,SAACC,GASV,OARAlB,EACE6B,aACE,EACA8gC,EAA+BqlB,gCAC/BlmD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BqlB,iCAE7E,GACC,EAEQC,EAAyB,SAACjoD,EAAuB5M,EAAe80D,EAAkB3vD,GAAe,OAC5G0H,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuByB,gBAAgBnP,QAAQ,2BAA4B5lD,GAAO4lD,QAAQ,kBAAmBkP,IACrH7nD,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GACVwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMtJ,EAASuJ,IAAiB+jB,UAC1DptB,IAAOu9C,IAAI3/C,IAAkB+xD,sBAAuB,CAAC,EACvD,EACAnnD,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aAAiB,EAAM8gC,EAA+B0lB,uBAAwBvmD,IAAiB1J,MAAO2J,YAAgBb,IAE1H,GACC,EAGQonD,EAAyB,SACpCtoD,EACA5M,EACAqrB,EACAlmB,GAAe,OAEf0H,YAAU,CACRC,IAAI,GAAD7Z,OAAKqgE,IAAuB6B,UAAUvP,QAAQ,2BAA4B5lD,IAC7E5E,KAAMiwB,EACNpe,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAIV,OAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMtJ,EAASuJ,IAAiB+jB,UAC1DptB,IAAOk5C,UAAUt7C,IAAkBmyD,6BAA8B,CAAC,GAC3D,CACL90D,KAAK,GAADrN,OAAKjE,IAAUsgD,oBAAmB,KAAAr8C,OAAIs8C,EAA+BS,yBACzExgD,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aAAiB,EAAM8gC,EAA+B8lB,uBAAwB3mD,IAAiB1J,MAAO2J,YAAgBb,KAExHzI,IAAOk5C,UAAUt7C,IAAkBqyD,6BAA8B,CAAC,EACpE,GACC,C,mCCjOL,wIAAO,IAAKnkB,EAA+B,SAA/BA,GAA+B,OAA/BA,EAA+B,0BAA/BA,EAA+B,gBAA/BA,CAA+B,MAK/BG,EAA8B,SAA9BA,GAA8B,OAA9BA,EAA8B,wBAA9BA,EAA8B,sBAA9BA,CAA8B,MAK9BM,EAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,gBAAzBA,EAAyB,gCAAzBA,CAAyB,MAKzBG,EAA4B,SAA5BA,GAA4B,OAA5BA,EAA4B,oDAA5BA,EAA4B,kCAA5BA,CAA4B,MAQpBZ,EAAgCokB,OAElCjkB,EAA+BtC,WAM7B4C,EAA0BC,OAM1BV,EAAgCxC,YAGlC2C,EAA+BtC,WAM7B4C,EAA0BC,M,mCC5E9C,wDAEO,SAAS93B,EAAaF,EAAiBf,GAC5C,IAAKA,GAA6B,KAAdA,EAClB,MAAO,CAAC,EAEV,OAAQe,GACN,IAAK,QAKH,OAAOf,EACT,IAAK,QACL,IAAK,OACH,IACE,OAAO08C,IAAKntB,MAAMvvB,EACpB,CAAE,MAAOE,GACP,OAAOF,CACT,CACF,QACE,OAAOA,EAEb,C,mICXa28C,EAAeC,YAAc,CAAEC,IATxB,SAAHlkE,GAAA,IAAM6gC,EAAO7gC,EAAP6gC,QAASsjC,EAAKnkE,EAALmkE,MAAK,OACnCpkC,IAAAC,cAAA,MAAAnlB,OAAAC,OAAA,CAAKspD,QAAQ,oBAAoBzkC,UAAWkB,EAAQqjC,KAASC,GAC3DpkC,IAAAC,cAAA,QACEqkC,EAAE,uKACFC,KAAK,iBAEH,EAGsDz+D,YAAa,a,yDCL/D+P,EAAU,SAAVA,GAAU,OAAVA,EAAU,YAAVA,EAAU,YAAVA,CAAU,MAWT2uD,EAAe,SAAHvkE,GAAyE,IAAnEwkE,EAAaxkE,EAAbwkE,cAAeC,EAAWzkE,EAAXykE,YAAaC,EAAW1kE,EAAX0kE,YACnDr0C,EAAOwP,cACL8kC,EAAUC,cAAVD,MAER,OACE5kC,IAAAC,cAAC6kC,IAAW,CACVjW,QAAS,CACP,CACE3vD,IAAK,mBACL6lE,UAAU,EACV3hC,KAAOpD,IAAAC,cAACgkC,EAAY,CAACe,QAASP,IAAkB5uD,EAAWC,OAC3DotB,QAASyhC,EACT75B,UAAWP,IACX,aAAcja,EAAKG,cAAc,CAAE5uB,GAAI,uBAAwBs+B,eAAgBC,EAAQ6kC,uBACvF,eAAgBR,IAAkB5uD,EAAWC,KAC7CovD,OAAQ,CACNC,oBAAqB,MACrBC,uBAAwB,MACxBC,qBAAsB,EACtBC,wBAAyB,EACzBC,iBAAkB,EAClBC,UAAW,OACXC,MACEhB,IAAkB5uD,EAAWC,KACzB8uD,EAAMc,cAAcC,YAAYC,MAAMC,WACtCjB,EAAMc,cAAcC,YAAYlxC,QAAQqxC,cAGlD,CACE5mE,IAAK,mBACL6lE,UAAU,EACV3hC,KAAMpD,IAAAC,cAAC8lC,IAActB,IAAkB5uD,EAAWmwD,MAAQ,CAAEhB,SAAS,IACrE9hC,QAASwhC,EACT55B,UAAWP,IACX,aAAcja,EAAKG,cAAc,CAAE5uB,GAAI,sBAAuBs+B,eAAgBC,EAAQ6lC,sBACtF,eAAgBxB,IAAkB5uD,EAAWmwD,KAC7Cd,OAAQ,CACNG,qBAAsB,iBACtBC,wBAAyB,iBACzBH,oBAAqB,EACrBC,uBAAwB,EACxBI,UAAW,OACXC,MACEhB,IAAkB5uD,EAAWmwD,KACzBpB,EAAMc,cAAcC,YAAYC,MAAMC,WACtCjB,EAAMc,cAAcC,YAAYlxC,QAAQqxC,gBAM1D,C,mCCrEA,mHAUYhwB,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,uBAApBA,CAAoB,MAIpBowB,EAAS,SAATA,GAAS,OAATA,IAAS,6BAATA,IAAS,iCAATA,IAAS,2BAATA,IAAS,yBAATA,IAAS,6BAATA,IAAS,uCAATA,IAAS,+BAATA,IAAS,qCAATA,IAAS,6BAATA,IAAS,6CAATA,IAAS,qCAATA,IAAS,qBAATA,CAAS,MAeRC,EAAY,SAACtjC,EAAsB/zB,GAAgB,MAAe,CAC3EA,KAAK,GAADrN,OAAKjE,IAAUq4C,UAAS,KAAAp0C,OAAIq0C,EAAqBC,WACrD/3C,QAAS,CACP8Q,OACA+zB,aAEH,C,mCCnCH,kCAKO,IAAKqO,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,0BAArBA,EAAqB,sBAArBA,EAAqB,sBAArBA,EAAqB,oBAArBA,CAAqB,K,4GCCpBma,EAAoB50C,YAAY,CAC3CC,KAAMlZ,IAAU6zB,aAChB1c,aAAc,CAAC,EACfiC,SAAQ7Y,YAAA,GACLkzB,IAAwBK,KAAO7zB,aAAYD,IAAU6zB,gB,mCCV1D,sKAiBaknB,EAA2B,SAA3BA,GAA2B,OAA3BA,EAA2B,0DAA3BA,EAA2B,oDAA3BA,EAA2B,8CAA3BA,CAA2B,MAO1B6tB,EAAyB,SAACC,EAAoBjrD,GAAqB,OAC/EC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,4BAAA/Z,OAA2B4kE,EAAU,WAClG5qD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBuyD,mCAAoClmC,EAAQmmC,+BAC9EnrD,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU86C,yBAAwB,KAAA72C,OAAI82C,EAA4BC,+BAC3Ex6C,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmByyD,4BAA6BpmC,EAAQqmC,6BACjE,CACL33D,KAAK,GAADrN,OAAKjE,IAAU86C,yBAAwB,KAAA72C,OAAI82C,EAA4BE,4BAC3Ez6C,QAASse,EAEb,GACC,EAEUoqD,EAA2B,WACtC,MAAO,CACL53D,KAAK,GAADrN,OAAKjE,IAAU86C,yBAAwB,KAAA72C,OAAI82C,EAA4BG,uBAE/E,C,mCCnDF,gTAqBawC,EAAuB,SAAvBA,GAAuB,OAAvBA,EAAuB,uCAAvBA,EAAuB,iGAAvBA,EAAuB,qCAAvBA,EAAuB,6DAAvBA,EAAuB,mDAAvBA,CAAuB,MAQtBC,EAAc,SAAC//B,GAAqB,OAC/CC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,wBACrBC,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAAe,MAAM,CAC/BkF,KAAK,GAADrN,OAAKjE,IAAUy9C,aAAY,KAAAx5C,OAAIy5C,EAAwBC,aAC3Dn9C,QAAS4L,EACV,EACDyS,UAAW,SAACC,GACVlB,EAAS6B,aAAiB,EAAMmjB,EAAQumC,0BAA2BzpD,IAAiB1J,MAAO2J,YAAgBb,KAC3GzI,IAAOC,SAASC,IAAmB6yD,6BAA8BtqD,EAAM2iC,WACzE,GACC,EAsBQ4nB,EAAiD,SAC5DC,EACAnR,EACAngD,EACA4F,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,+CACrBC,OAAQC,IAAW0tB,IACnBx/B,KAAM,CAAEm9D,mCAAoCD,GAC5ClrD,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,GAFAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UAC7Dr3B,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUy9C,aAAY,KAAAx5C,OAAIy5C,EAAwBE,0CAC3Dp9C,QAAS0kC,IAAIkU,KAAKC,MAAMjtC,GAAO,CAAC,mBAAoB,QAAS,OAAQ,mCAAoC,MAG/G,EACAyS,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMzH,EAAc0H,IAAiB1J,MAAO2J,YAAgBb,KACtFzI,IAAOC,SAASC,IAAmBizD,8CAA+C1qD,EAAM2iC,WAC1F,GACC,EAEQ70C,EAAa,SAACgR,GAAqB,OAC9CC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,wBACrBC,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAAa,MAAM,CAC7BkF,KAAK,GAADrN,OAAKjE,IAAUy9C,aAAY,KAAAx5C,OAAIy5C,EAAwB9wC,YAC3DpM,QAAS4L,EACV,EACDyS,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmB6yD,6BAA8BtqD,EAAM2iC,WACzE,GACC,EAEQ30C,EAAyB,WAAH,OACjC+Q,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,wCAC7DC,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAAa,MAAM,CAC7BkF,KAAK,GAADrN,OAAKjE,IAAUy9C,aAAY,KAAAx5C,OAAIy5C,EAAwB5wC,wBAC3DtM,QAAS4L,EACV,EACDyS,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmB6yD,6BAA8BtqD,EAAM2iC,WACzE,GACC,EAEQ5D,EAAoB,SAACjgC,GAAqB,OACtDC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,mCACrBC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUy9C,aAAY,KAAAx5C,OAAIy5C,EAAwBG,mBAC3Dr9C,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBkzD,mCAAoC3qD,EACzE,GACC,C,mCCvIL,oJAEM2mC,EAAI,GAAAxhD,OAAMmR,ylCAAY2I,0BAA4B5J,IAAO6J,QAElD8kD,EAAmB,CAC9BC,sBAAsB,GAAD9+D,OAAKwhD,EAAI,8DAC9B0d,iBAAiB,GAADl/D,OAAKwhD,EAAI,wDACzB6d,uBAAuB,GAADr/D,OAAKwhD,EAAI,sCAC/B+d,iBAAiB,GAADv/D,OAAKwhD,EAAI,+CACzBoe,aAAa,GAAD5/D,OAAKwhD,EAAI,6CACrBwe,UAAU,GAADhgE,OAAKwhD,EAAI,kDAGP6e,EAAyB,CACpCC,2BAA2B,GAADtgE,OAAKwhD,EAAI,gCACnCwf,0BAA0B,GAADhhE,OAAKwhD,EAAI,yDAClCkf,6BAA6B,GAAD1gE,OAAKwhD,EAAI,yDACrC2f,6BAA6B,GAADnhE,OAAKwhD,EAAI,gCACrCggB,6BAA6B,GAADxhE,OAAKwhD,EAAI,yDACrCsgB,gBAAgB,GAAD9hE,OAAKwhD,EAAI,uFACxB0gB,UAAU,GAADliE,OAAKwhD,EAAI,yEAGPikB,EAAyB,CACpCC,2BAA2B,GAAD1lE,OAAKwhD,EAAI,6BACnCmkB,0BAA0B,GAAD3lE,OAAKwhD,EAAI,mDAClCokB,6BAA6B,GAAD5lE,OAAKwhD,EAAI,mDACrCqkB,6BAA6B,GAAD7lE,OAAKwhD,EAAI,6BACrCskB,6BAA6B,GAAD9lE,OAAKwhD,EAAI,oDAG1BiR,EAAiB,CAC5BC,kBAAkB,GAAD1yD,OAAKwhD,EAAI,mC,mCC/B5B,qWAiBMukB,EAA2C,SAACC,GAA8C,IAAAC,EAAA,MAAM,CACpG/zD,QAASijC,KAAK+wB,UAAU,CACtBC,gBAAiBH,EAAWnqB,eAC5BuqB,cAAeJ,EAAWxqB,iBAC1B6qB,YAA8B,QAAnBJ,EAAED,EAAWv1D,cAAM,IAAAw1D,OAAA,EAAjBA,EAAmBl3C,KAAK,QAExC,EAEWuwB,EAA8B,SAA9BA,GAA8B,OAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,wEAA9BA,EAA8B,sEAA9BA,EAA8B,gEAA9BA,EAA8B,8DAA9BA,EAA8B,kDAA9BA,EAA8B,gEAA9BA,CAA8B,MAgB7BgnB,EAA4B,SAAC3sD,EAAuB+kC,GAA4C,OAC3G9kC,YAAU,CACRC,IAAK6kC,EAAgB,GAAA1+C,OACdylE,IAAuBC,2BAA0B,sBAAA1lE,OAAqB0+C,GAAgB,GAAA1+C,OACtFylE,IAAuBC,4BAC9B1rD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BC,gCACzEhjD,QAAS4L,EAEb,EACAm2B,cAAeiiC,cACf3lD,UAAW,SAACC,GAUV,OATAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8jC,EAA+BinB,8BAC/B9qD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BinB,+BAE7E,GACC,EAGQC,EAA+B,SAAC7sD,EAAuBvZ,EAAY8R,GAAe,OAC7F0H,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBG,6BAA6BjT,QAAQ,wBAAyBvyD,IAC7F4Z,OAAQC,IAAWisB,OACnB5H,cAAeiiC,cACfpmD,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,WAIT,OAHAb,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMtJ,EAASuJ,IAAiB+jB,UAC1DptB,IAAOk5C,UAAUt7C,IAAkBy2D,yBAA0B,CAAC,GACvD,CACLp5D,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BK,kCACzEpjD,QAAS,CAAE6D,MAEf,EACAwa,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8jC,EAA+BonB,gCAC/BjrD,IAAiB1J,MACjB2J,YAAgBb,IAGtB,GACC,EAGQ8rD,EAA0B,SAAChtD,GAEtC,OADAA,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BG,yBACzEljD,QAAS,GAEb,EAGaqqE,EAAoB,WAAH,MAAU,CACtCv5D,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BI,gCACzEnjD,QAAS,GACV,EAGYsqE,EAA4B,SAACltD,EAAuBvZ,GAAU,OACzEwZ,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBE,0BAA0BhT,QAAQ,wBAAyBvyD,IAC1F4Z,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BE,oCACzEjjD,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAUV,OATAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8jC,EAA+BinB,8BAC/B9qD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BwnB,mCAE7E,GACC,EAGQC,EAA8B,SAACptD,EAAuBye,GAAmD,OACpHxe,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBI,8BAC/B7rD,OAAQC,IAAWiB,KACnB/S,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAIV,OAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOk5C,UAAUt7C,IAAkBg3D,6BAA8BjB,EAAyC3tC,IAEnG,CACL77B,QAAS4L,EACTkF,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BM,kCAE7E,EACAhlC,UAAW,SAACC,GAWV,OAVAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8jC,EAA+BQ,gCAC/BrkC,IAAiB1J,MACjB2J,YAAgBb,KAGpBzI,IAAOk5C,UAAUt7C,IAAkBi3D,6BAA8BlB,EAAyC3tC,IACnG,CACL/qB,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BQ,iCAE7E,GACC,EAGQonB,EAA2B,SAACvtD,EAAuBvZ,EAAYg4B,GAA+C,OACzHxe,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBK,6BAA6BnT,QAAQ,wBAAyBvyD,IAC7F4Z,OAAQC,IAAWwnD,MACnBt5D,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,WAIT,OAHAb,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAM8jC,EAA+BU,iCAAkCvkC,IAAiB+jB,UAClHptB,IAAOk5C,UAAUt7C,IAAkBm3D,gCAAiCpB,EAAyC3tC,IACtG,CACL/qB,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BU,kCACzEzjD,QAAS,CAAE6D,MAEf,EACAwa,UAAW,SAACC,GAWV,OAVAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACA8jC,EAA+BS,gCAC/BtkC,IAAiB1J,MACjB2J,YAAgBb,KAGpBzI,IAAOk5C,UAAUt7C,IAAkBo3D,gCAAiCrB,EAAyC3tC,IACtG,CACL/qB,KAAK,GAADrN,OAAKjE,IAAUsjD,oBAAmB,KAAAr/C,OAAIs/C,EAA+BS,iCAE7E,GACC,C,mCCpNL,8WAiBMsnB,EAA2C,SAACC,GAAuE,MAAM,CAC7Hp1D,QAASijC,KAAK+wB,UAAU,CACtBC,gBAAiBmB,EAAWzrB,eAC5BuqB,cAAekB,EAAW9rB,mBAE7B,EAEWkF,EAA8B,SAA9BA,GAA8B,OAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,oEAA9BA,EAA8B,kEAA9BA,EAA8B,wEAA9BA,EAA8B,sEAA9BA,EAA8B,gEAA9BA,EAA8B,8DAA9BA,EAA8B,kDAA9BA,EAA8B,gEAA9BA,CAA8B,MAgB7B6mB,EAA4B,SAAC5tD,GAAqB,OAC7DC,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBC,2BAA0B,sBAAA1lE,OAAqB2+C,IAA0BuB,gBACxGlmC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BC,gCACzEpkD,QAAS4L,EAEb,EACAm2B,cAAeiiC,cACf3lD,UAAW,SAACC,GAUV,OATAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACAklC,EAA+B8mB,8BAC/B/rD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+B8mB,+BAE7E,GACC,EAGQC,EAA+B,SAAC9tD,EAAuBvZ,EAAY8R,GAAe,OAC7F0H,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBG,6BAA6BjT,QAAQ,wBAAyBvyD,IAC7F4Z,OAAQC,IAAWisB,OACnB5H,cAAeiiC,cACfpmD,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,WAIT,OAHAb,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMtJ,EAASuJ,IAAiB+jB,UAC1DptB,IAAOk5C,UAAUt7C,IAAkB03D,yBAA0B,CAAC,GACvD,CACLr6D,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BK,kCACzExkD,QAAS,CAAE6D,MAEf,EACAwa,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACAklC,EAA+BinB,gCAC/BlsD,IAAiB1J,MACjB2J,YAAgBb,IAGtB,GACC,EAGQ+sD,EAA0B,SAACjuD,GAEtC,OADAA,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BG,yBACzEtkD,QAAS,GAEb,EAGasrE,EAAoB,WAAH,MAAU,CACtCx6D,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BI,gCACzEvkD,QAAS,GACV,EAGYurE,EAA4B,SAACnuD,EAAuBvZ,GAAU,OACzEwZ,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBE,0BAA0BhT,QAAQ,wBAAyBvyD,IAC1F4Z,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BE,oCACzErkD,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAUV,OATAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACAklC,EAA+B8mB,8BAC/B/rD,IAAiB1J,MACjB2J,YAAgBb,KAGb,CACLxN,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BqnB,mCAE7E,GACC,EAGQC,EAA8B,SAACruD,EAAuBye,GAAkD,OACnHxe,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBI,8BAC/B7rD,OAAQC,IAAWiB,KACnB/S,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,SAACrS,GAIV,OAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOk5C,UAAUt7C,IAAkBi4D,6BAA8BZ,EAAyCjvC,IAEnG,CACL77B,QAAS4L,EACTkF,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BM,kCAE7E,EACApmC,UAAW,SAACC,GAWV,OAVAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACAklC,EAA+BO,gCAC/BxlC,IAAiB1J,MACjB2J,YAAgBb,KAGpBzI,IAAOk5C,UAAUt7C,IAAkBk4D,6BAA8Bb,EAAyCjvC,IACnG,CACL/qB,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BO,iCAE7E,GACC,EAGQknB,EAA2B,SAACxuD,EAAuBvZ,EAAYg4B,GAA8C,OACxHxe,YAAU,CACRC,IAAI,GAAD7Z,OAAKylE,IAAuBK,6BAA6BnT,QAAQ,wBAAyBvyD,IAC7F4Z,OAAQC,IAAWwnD,MACnBt5D,KAAMiwB,EACNje,QAASC,IAAeC,QAAQC,IAAqBC,OACrD+jB,cAAeiiC,cACf/lD,UAAW,WAIT,OAHAb,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMklC,EAA+BS,iCAAkC1lC,IAAiB+jB,UAClHptB,IAAOk5C,UAAUt7C,IAAkBo4D,gCAAiCf,EAAyCjvC,IACtG,CACL/qB,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BS,kCACzE5kD,QAAS,CAAE6D,MAEf,EACAwa,UAAW,SAACC,GAWV,OAVAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EACE6B,aACE,EACAklC,EAA+BQ,gCAC/BzlC,IAAiB1J,MACjB2J,YAAgBb,KAGpBzI,IAAOk5C,UAAUt7C,IAAkBq4D,gCAAiChB,EAAyCjvC,IACtG,CACL/qB,KAAK,GAADrN,OAAKjE,IAAU0kD,oBAAmB,KAAAzgD,OAAI0gD,EAA+BQ,iCAE7E,GACC,C,mCCjNL,4XAUY0H,EAA2B,SAA3BA,GAA2B,OAA3BA,EAA2B,cAA3BA,EAA2B,4BAA3BA,EAA2B,kCAA3BA,EAA2B,8BAA3BA,EAA2B,oCAA3BA,EAA2B,oCAA3BA,EAA2B,gCAA3BA,EAA2B,wCAA3BA,EAA2B,4CAA3BA,EAA2B,4CAA3BA,CAA2B,MAajC0f,EAA2B,CAC7BC,UAAU,GAADvoE,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,0DAAyD,IAGnHyuD,EAAwB,WACjC,MAAO,CACHn7D,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4B1vC,OAE3E,EAEauvD,EAA+B,SAACh5D,GACzC,MAAO,CACHpC,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BC,cACnEtsD,QAASkT,EAEjB,EAEai5D,EAAiC,SAAC9jD,GAC3C,MAAO,CACHvX,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BE,iBACnEvsD,QAASqoB,EAEjB,EAEa+jD,EAA+B,SAAC/jD,GACzC,MAAO,CACHvX,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BG,eACnExsD,QAASqoB,EAEjB,EAEagkD,EAAkC,SAACjjD,GAC5C,MAAO,CACHtY,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BI,kBACnEzsD,QAASopB,EAEjB,EAEakjD,EAAkC,SAACjkD,GAC5C,MAAO,CACHvX,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BK,kBACnE1sD,QAASqoB,EAEjB,EAEakkD,EAAiC,WAC1C,MAAO,CACHz7D,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BM,gBAE3E,EAEa6f,EAA2B,SAACpvD,EAAuBiL,EAAYokD,EAAuBC,EAAuB7pE,GACtH,OAAOwa,YAAU,CACbC,IAAKyuD,EAAyBC,UAC9BvuD,OAAQC,IAAWiB,KACnBvL,QAAS,CACL,eAAgB,mBAEpBxH,KAAMyc,EACNzK,QAAS,WAEL,OADAR,EAASS,IAAeC,QAAQC,IAAqBC,UAC9C,CACHlN,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BO,oBAE3E,EACA3uC,UAAW,SAACotB,GAMR,OALAjuB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMwtD,EAAevtD,IAAiB+jB,UAChEptB,IAAOk5C,UAAUt7C,IAAkBk5D,4BAA4B,CAC3D9pE,UAEG,CACHiO,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BS,sBACnE9sD,QAASqrC,EAEjB,EACAhtB,UAAW,SAACC,GAOR,OANAlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMytD,EAAextD,IAAiB1J,QAChEK,IAAOk5C,UAAUt7C,IAAkBm5D,yBAAyB,CACxD/pE,QACA8S,QAAS2I,EAAM9H,aAEZ,CACH1F,KAAK,GAADrN,OAAKjE,IAAU+tB,iBAAgB,KAAA9pB,OAAI4oD,EAA4BW,sBACnEhtD,QAASse,EAEjB,GAER,C,mCCjHA,kCAMO,IAAKld,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,cAAhBA,EAAgB,cAAhBA,CAAgB,K,mCCN5B,oEAAO,IAAMyrE,EAAmB,SAACC,EAAoBC,GAAwB,IAAD9P,EAC1E6P,IAAiC,QAAvB7P,EAAI7oD,OAAO8oD,oBAAY,IAAAD,GAAnBA,EAAqB+P,QAAQF,EAAYC,GAAiB,IAC1E,EACav0B,EAAmB,SAACs0B,GAAwB,IAADG,EACtD,OAAQH,IAAiC,QAAvBG,EAAI74D,OAAO8oD,oBAAY,IAAA+P,OAAA,EAAnBA,EAAqBC,QAAQJ,UAAgBt5D,CACrE,C,mCCLA,6IAcYy+B,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,6CAApBA,EAAoB,4DAApBA,EAAoB,kDAApBA,EAAoB,qCAApBA,EAAoB,mDAApBA,EAAoB,0CAApBA,CAAoB,MASnBk7B,EAAwB,SAAC9K,EAAyBjlD,GAAqB,OAClFC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,2CAAA/Z,OAA0C4+D,GACvG5kD,OAAQC,IAAWC,IACnBC,QAAS,iBAAO,CACd9M,KAAK,GAADrN,OAAKjE,IAAUwyC,UAAS,KAAAvuC,OAAIwuC,EAAqBC,oBACrDrvC,MAAOw/D,EACR,EACDpkD,UAAW,SAACrS,GAMV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUwyC,UAAS,KAAAvuC,OAAIwuC,EAAqBI,mBACrDxvC,MAAOw/D,EACPriE,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAEV,OADAlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUwyC,UAAS,KAAAvuC,OAAIwuC,EAAqBK,0BACrDzvC,MAAOw/D,EAEX,GACC,EAEQ+K,EAAa,SACxB/K,EACAgL,EACAjoB,EACAkoB,EACAvoB,EACA3nC,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OACDmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,uCAAA/Z,OACjB4+D,EAAe,gBAAA5+D,OAAe4pE,EAAe,sBAAA5pE,OACrE2hD,EAAQ,kBAAA3hD,OAAiB6pE,EAAe,UAAA7pE,OAASshD,GAC/DtnC,OAAQC,IAAWC,IACnBC,QAAS,iBAAO,CACd9M,KAAK,GAADrN,OAAKjE,IAAUwyC,UAAS,KAAAvuC,OAAIwuC,EAAqBM,gBACrD1vC,MAAOw/D,EACR,EACDpkD,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUwyC,UAAS,KAAAvuC,OAAIwuC,EAAqBQ,eACrD5vC,MAAOw/D,EACPriE,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAEV,OADAlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUwyC,UAAS,KAAAvuC,OAAIwuC,EAAqBS,sBACrD7vC,MAAOw/D,EAEX,GACC,C,mCCjEL,wIAAO,IAAKnjB,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,0BAAnBA,EAAmB,iBAAnBA,CAAmB,MAKnBK,EAAiC,SAAjCA,GAAiC,OAAjCA,EAAiC,wBAAjCA,EAAiC,sBAAjCA,CAAiC,MAMhCguB,EAAmB,EAEpBC,EAA6B,SAA7BA,GAA6B,OAA7BA,EAA6B,cAA7BA,EAA6B,8BAA7BA,EAA6B,uBAA7BA,EAA6B,iBAA7BA,CAA6B,K,mCChCzC,+JAQYjiB,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,oDAAnBA,EAAmB,8CAAnBA,EAAmB,cAAnBA,CAAmB,MAMlBkiB,EAAoB,SAACpF,EAAoBjrD,GAAqB,OACzEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,4BAAA/Z,OAA2B4kE,EAAU,cAClG5qD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU8rD,QAAO,KAAA7nD,OAAI8nD,EAAoBC,0BAClDxrD,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMssC,EAAoBS,sBAAuB9sC,IAAiB1J,MAAO2J,YAAgBb,KACnHlB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAU8rD,QAAO,KAAA7nD,OAAI8nD,EAAoBS,uBAClDhsD,QAASse,EAEb,GACC,EAEQovD,EAAsB,WAAH,MAC/B,CACC58D,KAAK,GAADrN,OAAKjE,IAAU8rD,QAAO,KAAA7nD,OAAI8nD,EAAoB5uC,OACnD,C,yOCxCYgxD,EAAc9S,aAIzB,SAAA8S,EAAYC,GAAqC3T,YAAA,KAAA0T,GAAA,KAH1CnxB,iCAA2B,OAC3BH,oBAAc,EAGnB+d,KAAK5d,4BAA8BoxB,EAGnCxT,KAAK/d,eAAiBC,KAAKC,MAAQ,MACrC,ICYUN,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,sCAAtBA,EAAsB,uCAAtBA,CAAsB,MAKrBa,EAAoB+wB,YAC/B,CAACruE,IAAUq9C,YAAaZ,EAAuBa,mBAAmBtqB,KAAK,MAG5DupC,EAAmB,SAAC3+C,GAAuB,OACtDC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAOm6D,mBAAkB,sBACjCrwD,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAAuB,IAADmiE,EAAAC,EAAAC,EAAAC,EAIhC,OAHAr4D,IAAO8wB,QAAQ5wB,IAAmBo4D,+BAAgC/rC,EAAQgsC,iBAAsB,OAAJxiE,QAAI,IAAJA,GAAgB,QAAZmiE,EAAJniE,EAAMyiE,kBAAU,IAAAN,OAAZ,EAAJA,EAAkBO,gBAC9GlxD,EAASS,IAAeC,QAAQC,IAAqBG,cACjD,OAAJtS,QAAI,IAAJA,GAAgB,QAAZoiE,EAAJpiE,EAAMyiE,kBAAU,IAAAL,OAAZ,EAAJA,EAAkBM,iBAAkBzB,YAAiB5wB,EAAuBC,kBAAmBtD,KAAK+wB,UAAU,IAAIgE,EAAmB,OAAJ/hE,QAAI,IAAJA,GAAgB,QAAZqiE,EAAJriE,EAAMyiE,kBAAU,IAAAJ,OAAZ,EAAJA,EAAkBK,kBAC5IxxB,EAAkB,CACvBH,WAAgB,OAAJ/wC,QAAI,IAAJA,GAAgB,QAAZsiE,EAAJtiE,EAAMyiE,kBAAU,IAAAH,OAAZ,EAAJA,EAAkBI,gBAElC,EACAjwD,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmB0mC,wBAAyBra,EAAQmsC,eACtE,EACA9Z,aAAcI,IAAaoL,SAC1B,C,kZC9CLvgD,EAAA,kBAAAC,CAAA,MAAAA,EAAA,GAAAC,EAAA9C,OAAA+C,UAAAC,EAAAF,EAAAG,eAAAC,EAAAlD,OAAAkD,gBAAA,SAAAC,EAAA/e,EAAAgf,GAAAD,EAAA/e,GAAAgf,EAAA3P,KAAA,EAAA4P,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAV,EAAA/e,EAAAqP,GAAA,OAAAuM,OAAAkD,eAAAC,EAAA/e,EAAA,CAAAqP,QAAAqQ,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAA/e,EAAA,KAAAyf,EAAA,aAAAI,GAAAJ,EAAA,SAAAV,EAAA/e,EAAAqP,GAAA,OAAA0P,EAAA/e,GAAAqP,CAAA,WAAAyQ,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAArB,qBAAAyB,EAAAJ,EAAAI,EAAAC,EAAAzE,OAAA0E,OAAAH,EAAAxB,WAAA4B,EAAA,IAAAC,EAAAN,GAAA,WAAApB,EAAAuB,EAAA,WAAAhR,MAAAoR,EAAAV,EAAAE,EAAAM,KAAAF,CAAA,UAAAK,EAAAC,EAAA5B,EAAA6B,GAAA,WAAAhR,KAAA,SAAAgR,IAAAD,EAAAE,KAAA9B,EAAA6B,GAAA,OAAAf,GAAA,OAAAjQ,KAAA,QAAAgR,IAAAf,EAAA,EAAApB,EAAAqB,OAAA,IAAAgB,EAAA,YAAAV,IAAA,UAAAW,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAxB,EAAAwB,EAAA9B,GAAA,8BAAA+B,EAAAtF,OAAAuF,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAA1C,GAAAE,EAAAiC,KAAAO,EAAAjC,KAAA8B,EAAAG,GAAA,IAAAE,EAAAN,EAAArC,UAAAyB,EAAAzB,UAAA/C,OAAA0E,OAAAW,GAAA,SAAAM,EAAA5C,GAAA,0BAAA6C,SAAA,SAAAjF,GAAAkD,EAAAd,EAAApC,GAAA,SAAAqE,GAAA,YAAAa,QAAAlF,EAAAqE,EAAA,gBAAAc,EAAArB,EAAAsB,GAAA,SAAAC,EAAArF,EAAAqE,EAAAiB,EAAAC,GAAA,IAAAC,EAAArB,EAAAL,EAAA9D,GAAA8D,EAAAO,GAAA,aAAAmB,EAAAnS,KAAA,KAAAoS,EAAAD,EAAAnB,IAAAvR,EAAA2S,EAAA3S,MAAA,OAAAA,GAAA,iBAAAA,GAAAuP,EAAAiC,KAAAxR,EAAA,WAAAsS,EAAAE,QAAAxS,EAAA4S,SAAAC,MAAA,SAAA7S,GAAAuS,EAAA,OAAAvS,EAAAwS,EAAAC,EAAA,aAAAjC,GAAA+B,EAAA,QAAA/B,EAAAgC,EAAAC,EAAA,IAAAH,EAAAE,QAAAxS,GAAA6S,MAAA,SAAAC,GAAAH,EAAA3S,MAAA8S,EAAAN,EAAAG,EAAA,aAAA5E,GAAA,OAAAwE,EAAA,QAAAxE,EAAAyE,EAAAC,EAAA,IAAAA,EAAAC,EAAAnB,IAAA,KAAAwB,EAAAtD,EAAA,gBAAAzP,MAAA,SAAAkN,EAAAqE,GAAA,SAAAyB,IAAA,WAAAV,GAAA,SAAAE,EAAAC,GAAAF,EAAArF,EAAAqE,EAAAiB,EAAAC,EAAA,WAAAM,MAAAF,KAAAG,QAAA,aAAA5B,EAAAV,EAAAE,EAAAM,GAAA,IAAA9hB,EAAA,iCAAA8d,EAAAqE,GAAA,iBAAAniB,EAAA,UAAA6V,MAAA,iDAAA7V,EAAA,cAAA8d,EAAA,MAAAqE,EAAA,OAAA0B,GAAA,KAAA/B,EAAAhE,SAAAgE,EAAAK,QAAA,KAAA2B,EAAAhC,EAAAgC,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAhC,GAAA,GAAAiC,EAAA,IAAAA,IAAA1B,EAAA,gBAAA0B,CAAA,cAAAjC,EAAAhE,OAAAgE,EAAAmC,KAAAnC,EAAAoC,MAAApC,EAAAK,SAAA,aAAAL,EAAAhE,OAAA,uBAAA9d,EAAA,MAAAA,EAAA,YAAA8hB,EAAAK,IAAAL,EAAAqC,kBAAArC,EAAAK,IAAA,gBAAAL,EAAAhE,QAAAgE,EAAAsC,OAAA,SAAAtC,EAAAK,KAAAniB,EAAA,gBAAAsjB,EAAArB,EAAAX,EAAAE,EAAAM,GAAA,cAAAwB,EAAAnS,KAAA,IAAAnR,EAAA8hB,EAAAuC,KAAA,6BAAAf,EAAAnB,MAAAE,EAAA,gBAAAzR,MAAA0S,EAAAnB,IAAAkC,KAAAvC,EAAAuC,KAAA,WAAAf,EAAAnS,OAAAnR,EAAA,YAAA8hB,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAA,YAAA6B,EAAAF,EAAAhC,GAAA,IAAAwC,EAAAxC,EAAAhE,SAAAgG,EAAAnD,SAAA2D,GAAA,QAAAzQ,IAAAiK,EAAA,OAAAgE,EAAAgC,SAAA,eAAAQ,GAAAR,EAAAnD,SAAA4D,SAAAzC,EAAAhE,OAAA,SAAAgE,EAAAK,SAAAtO,EAAAmQ,EAAAF,EAAAhC,GAAA,UAAAA,EAAAhE,SAAA,WAAAwG,IAAAxC,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAAF,EAAA,aAAAjC,EAAA,IAAAiB,EAAArB,EAAAnE,EAAAgG,EAAAnD,SAAAmB,EAAAK,KAAA,aAAAmB,EAAAnS,KAAA,OAAA2Q,EAAAhE,OAAA,QAAAgE,EAAAK,IAAAmB,EAAAnB,IAAAL,EAAAgC,SAAA,KAAAzB,EAAA,IAAAoC,EAAAnB,EAAAnB,IAAA,OAAAsC,IAAAJ,MAAAvC,EAAAgC,EAAAY,YAAAD,EAAA7T,MAAAkR,EAAA6C,KAAAb,EAAAc,QAAA,WAAA9C,EAAAhE,SAAAgE,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,GAAAiO,EAAAgC,SAAA,KAAAzB,GAAAoC,GAAA3C,EAAAhE,OAAA,QAAAgE,EAAAK,IAAA,IAAAqC,UAAA,oCAAA1C,EAAAgC,SAAA,KAAAzB,EAAA,UAAAwC,EAAAC,GAAA,IAAAC,EAAA,CAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,SAAAM,WAAAC,KAAAN,EAAA,UAAAO,EAAAP,GAAA,IAAAzB,EAAAyB,EAAAQ,YAAA,GAAAjC,EAAAnS,KAAA,gBAAAmS,EAAAnB,IAAA4C,EAAAQ,WAAAjC,CAAA,UAAAvB,EAAAN,GAAA,KAAA2D,WAAA,EAAAJ,OAAA,SAAAvD,EAAAsB,QAAA8B,EAAA,WAAAW,OAAA,YAAA5C,EAAA6C,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA/E,GAAA,GAAAgF,EAAA,OAAAA,EAAAtD,KAAAqD,GAAA,sBAAAA,EAAAd,KAAA,OAAAc,EAAA,IAAAE,MAAAF,EAAA7gB,QAAA,KAAAghB,GAAA,EAAAjB,EAAA,SAAAA,IAAA,OAAAiB,EAAAH,EAAA7gB,QAAA,GAAAub,EAAAiC,KAAAqD,EAAAG,GAAA,OAAAjB,EAAA/T,MAAA6U,EAAAG,GAAAjB,EAAAN,MAAA,EAAAM,EAAA,OAAAA,EAAA/T,WAAAiD,EAAA8Q,EAAAN,MAAA,EAAAM,CAAA,SAAAA,QAAA,SAAAA,KAAAd,EAAA,UAAAA,IAAA,OAAAjT,WAAAiD,EAAAwQ,MAAA,UAAA/B,EAAApC,UAAAqC,EAAAlC,EAAAwC,EAAA,eAAAjS,MAAA2R,EAAArB,cAAA,IAAAb,EAAAkC,EAAA,eAAA3R,MAAA0R,EAAApB,cAAA,IAAAoB,EAAAna,YAAA6Y,EAAAuB,EAAAzB,EAAA,qBAAAd,EAAA6F,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAAE,YAAA,QAAAD,QAAAzD,GAAA,uBAAAyD,EAAA5d,aAAA4d,EAAAhN,MAAA,EAAAiH,EAAAiG,KAAA,SAAAH,GAAA,OAAA3I,OAAA+I,eAAA/I,OAAA+I,eAAAJ,EAAAvD,IAAAuD,EAAAK,UAAA5D,EAAAvB,EAAA8E,EAAAhF,EAAA,sBAAAgF,EAAA5F,UAAA/C,OAAA0E,OAAAgB,GAAAiD,CAAA,EAAA9F,EAAAoG,MAAA,SAAAjE,GAAA,OAAAqB,QAAArB,EAAA,EAAAW,EAAAG,EAAA/C,WAAAc,EAAAiC,EAAA/C,UAAAU,GAAA,0BAAAZ,EAAAiD,gBAAAjD,EAAAqG,MAAA,SAAA/E,EAAAC,EAAAC,EAAAC,EAAAyB,QAAA,IAAAA,MAAAoD,SAAA,IAAAC,EAAA,IAAAtD,EAAA5B,EAAAC,EAAAC,EAAAC,EAAAC,GAAAyB,GAAA,OAAAlD,EAAA6F,oBAAAtE,GAAAgF,IAAA5B,OAAAlB,MAAA,SAAAF,GAAA,OAAAA,EAAAc,KAAAd,EAAA3S,MAAA2V,EAAA5B,MAAA,KAAA7B,EAAAD,GAAA7B,EAAA6B,EAAA/B,EAAA,aAAAE,EAAA6B,EAAAnC,GAAA,0BAAAM,EAAA6B,EAAA,qDAAA7C,EAAAwG,KAAA,SAAA1kB,GAAA,IAAA2kB,EAAAtJ,OAAArb,GAAA0kB,EAAA,WAAAjlB,KAAAklB,EAAAD,EAAAnB,KAAA9jB,GAAA,OAAAilB,EAAAE,UAAA,SAAA/B,IAAA,KAAA6B,EAAA5hB,QAAA,KAAArD,EAAAilB,EAAAG,MAAA,GAAAplB,KAAAklB,EAAA,OAAA9B,EAAA/T,MAAArP,EAAAojB,EAAAN,MAAA,EAAAM,CAAA,QAAAA,EAAAN,MAAA,EAAAM,CAAA,GAAA3E,EAAA4C,SAAAb,EAAA7B,UAAA,CAAA8F,YAAAjE,EAAAyD,MAAA,SAAAoB,GAAA,QAAAC,KAAA,OAAAlC,KAAA,OAAAV,KAAA,KAAAC,WAAArQ,EAAA,KAAAwQ,MAAA,OAAAP,SAAA,UAAAhG,OAAA,YAAAqE,SAAAtO,EAAA,KAAAuR,WAAArC,QAAAuC,IAAAsB,EAAA,QAAA7N,KAAA,WAAAA,EAAA+N,OAAA,IAAA3G,EAAAiC,KAAA,KAAArJ,KAAA4M,OAAA5M,EAAAjC,MAAA,WAAAiC,QAAAlF,EAAA,EAAAkT,KAAA,gBAAA1C,MAAA,MAAA2C,EAAA,KAAA5B,WAAA,GAAAG,WAAA,aAAAyB,EAAA7V,KAAA,MAAA6V,EAAA7E,IAAA,YAAA8E,IAAA,EAAA9C,kBAAA,SAAA+C,GAAA,QAAA7C,KAAA,MAAA6C,EAAA,IAAApF,EAAA,cAAAqF,EAAAC,EAAAC,GAAA,OAAA/D,EAAAnS,KAAA,QAAAmS,EAAAnB,IAAA+E,EAAApF,EAAA6C,KAAAyC,EAAAC,IAAAvF,EAAAhE,OAAA,OAAAgE,EAAAK,SAAAtO,KAAAwT,CAAA,SAAAzB,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAAtC,EAAAyB,EAAAQ,WAAA,YAAAR,EAAAC,OAAA,OAAAmC,EAAA,UAAApC,EAAAC,QAAA,KAAA6B,KAAA,KAAAS,EAAAnH,EAAAiC,KAAA2C,EAAA,YAAAwC,EAAApH,EAAAiC,KAAA2C,EAAA,iBAAAuC,GAAAC,EAAA,SAAAV,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,WAAA4B,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,SAAAoC,GAAA,QAAAT,KAAA9B,EAAAE,SAAA,OAAAkC,EAAApC,EAAAE,UAAA,YAAAsC,EAAA,UAAA1R,MAAA,kDAAAgR,KAAA9B,EAAAG,WAAA,OAAAiC,EAAApC,EAAAG,WAAA,KAAAd,OAAA,SAAAjT,EAAAgR,GAAA,QAAAyD,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,QAAA,KAAA6B,MAAA1G,EAAAiC,KAAA2C,EAAA,oBAAA8B,KAAA9B,EAAAG,WAAA,KAAAsC,EAAAzC,EAAA,OAAAyC,IAAA,UAAArW,GAAA,aAAAA,IAAAqW,EAAAxC,QAAA7C,MAAAqF,EAAAtC,aAAAsC,EAAA,UAAAlE,EAAAkE,IAAAjC,WAAA,UAAAjC,EAAAnS,OAAAmS,EAAAnB,MAAAqF,GAAA,KAAA1J,OAAA,YAAA6G,KAAA6C,EAAAtC,WAAA7C,GAAA,KAAAoF,SAAAnE,EAAA,EAAAmE,SAAA,SAAAnE,EAAA6B,GAAA,aAAA7B,EAAAnS,KAAA,MAAAmS,EAAAnB,IAAA,gBAAAmB,EAAAnS,MAAA,aAAAmS,EAAAnS,KAAA,KAAAwT,KAAArB,EAAAnB,IAAA,WAAAmB,EAAAnS,MAAA,KAAA8V,KAAA,KAAA9E,IAAAmB,EAAAnB,IAAA,KAAArE,OAAA,cAAA6G,KAAA,kBAAArB,EAAAnS,MAAAgU,IAAA,KAAAR,KAAAQ,GAAA9C,CAAA,EAAAqF,OAAA,SAAAxC,GAAA,QAAAU,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAG,eAAA,YAAAuC,SAAA1C,EAAAQ,WAAAR,EAAAI,UAAAG,EAAAP,GAAA1C,CAAA,GAAAsF,MAAA,SAAA3C,GAAA,QAAAY,EAAA,KAAAR,WAAAxgB,OAAA,EAAAghB,GAAA,IAAAA,EAAA,KAAAb,EAAA,KAAAK,WAAAQ,GAAA,GAAAb,EAAAC,WAAA,KAAA1B,EAAAyB,EAAAQ,WAAA,aAAAjC,EAAAnS,KAAA,KAAAyW,EAAAtE,EAAAnB,IAAAmD,EAAAP,EAAA,QAAA6C,CAAA,YAAA/R,MAAA,0BAAAgS,cAAA,SAAApC,EAAAf,EAAAE,GAAA,YAAAd,SAAA,CAAAnD,SAAAiC,EAAA6C,GAAAf,aAAAE,WAAA,cAAA9G,SAAA,KAAAqE,SAAAtO,GAAAwO,CAAA,GAAArC,CAAA,CACe,SAAe6uD,EAAe9mD,GAAA,OAAA+mD,EAAA7mD,MAAC,KAADvR,UAAA,CAM5C,SAAAo4D,IAAA,OAAAA,EAAA5mD,YAAAnI,IAAAkG,MANc,SAAAkC,EAA+BG,GAAe,IAAAD,EAAAiqC,EAAA,OAAAvyC,IAAAsB,MAAA,SAAAkH,GAAA,cAAAA,EAAA1B,KAAA0B,EAAA5D,MAAA,OACpC,OAAjB0D,EAAM,IAAIG,IAAOD,EAAA5D,KAAA,EACjB0D,EAAIgB,UAAUf,EAAS,CAAEgB,QAAQ,IAAQ,KAAD,SAAAf,EAAA5D,KAAA,EAC3B0D,EAAIM,cAAc,CAAExX,KAAM,SAAU,KAAD,EAA5C,OAAJmhD,EAAI/pC,EAAAtE,KAAAsE,EAAAnE,OAAA,SAEHkuC,GAAI,wBAAA/pC,EAAAxB,OAAA,GAAAoB,EAAA,MACZF,MAAA,KAAAvR,UAAA,C,kECYWg9B,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,yDAArBA,EAAqB,wDAArBA,EAAqB,8EAArBA,EAAqB,kFAArBA,EAAqB,iFAArBA,EAAqB,gDAArBA,EAAqB,gDAArBA,EAAqB,+CAArBA,EAAqB,kEAArBA,EAAqB,wDAArBA,EAAqB,gEAArBA,EAAqB,+DAArBA,CAAqB,MAcpBq7B,EAAoB,WAAH,OAC5BrxD,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,4BACrBC,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GACV,GAAIA,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBC,0BACvDtzC,QAAS,CAAEgJ,eAAgB4C,EAAK2E,MAAM,GAAGzI,aAG/C,EACAuW,UAAW,SAACC,GAA0B,GACrC,EAEQqwD,EAA6B,SAAC/rE,EAAoBwa,GAAqB,OAClFC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,gBAAA/Z,OAAeb,GACpC6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OAErDC,UAAW,SAACrS,GAEC,IAADgjE,EAAV,GADAxxD,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBE,mCACvDvzC,QAAS4L,EAAK2E,MAAMhM,OAAS,EAAmC,QAAlCqqE,EAAGhjE,EAAK2E,MAAM,GAAGyI,eAAe,UAAE,IAAA41D,OAAA,EAA/BA,EAAiCC,gBAAkB37B,IAAsBC,YAGhH,EACA90B,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GACC,EAEQ4wD,EAA+B,SAC1Cj/D,EACA6O,EACAtB,EACA2xD,GAA6B,OAE7B1xD,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,oBAAA/Z,OAAmBoM,EAAIjN,WAAU,aACtD6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACNA,GACF4iE,EAAgB5iE,GAAMwX,MAAK,SAAC6uC,GAC1B70C,EAAS4xD,EAAU/c,EAAMpiD,EAAK6O,EAAgBtB,EAAU2xD,GAC1D,GAEJ,EACA1wD,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,IAC1F,GACC,EAEQ0wD,EAAY,SACvB/c,EACApiD,EACA6O,EACAtB,EACA2xD,GAA6B,OAE7B1xD,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,eACrBC,OAAQC,IAAWiB,KACnBvL,QAAS,CACP,eAAgB,kCAElBxH,KAAMqmD,EACNh0C,UAAW,SAACrS,GAAwC,IAADqjE,EAGjD,OAFAp5D,IAAOk5C,UAAUt7C,IAAkBy7D,qBAAsB,CAAErsE,MAAOgN,EAAIhN,QACtEua,EAASS,IAAeC,QAAQC,IAAqBG,aAC5B,cAAX,QAAV+wD,EAAArjE,EAAK0S,aAAK,IAAA2wD,OAAA,EAAVA,EAAYE,MACPlwD,aAAiB,EAAM8vD,EAAsB7vD,IAAiB1J,QACxD,OAAJ5J,QAAI,IAAJA,OAAI,EAAJA,EAAM0S,OACRW,aAAiB,EAAMP,EAAgBQ,IAAiB1J,OAExD,CACL1E,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBI,kBACvDzzC,QAAS,CACPsJ,aAAcuG,EACdgjC,YAAajnC,EAAK0S,MAClBw0B,WAAW,GAInB,EACAz0B,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,IAC1F,GACC,EAEQ8wD,EAA+B,SAC1CxsE,EACAiN,EACA6O,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,oBAAA/Z,OAAmBoM,EAAIjN,WAAU,aACtD6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACNA,GACF4iE,EAAgB5iE,GAAMwX,MAAK,SAAC6uC,GAC1B70C,EAASiyD,EAAUzsE,EAAYiN,EAAKoiD,EAAMvzC,EAAgBtB,GAC5D,GAEJ,EACAiB,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,IAC1F,GACC,EAEQ+wD,EAAY,SAACzsE,EAAoBiN,EAAqBoiD,EAAYvzC,EAAwBtB,GAAqB,OAC1HC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,gBAAA/Z,OAAeb,EAAU,mBAC9C6a,OAAQC,IAAWiB,KACnBvL,QAAS,CACP,eAAgB,kCAElBxH,KAAMqmD,EAENh0C,UAAW,SAACrS,GAGV,GAFAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAEjDtS,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBI,kBACvDzzC,QAAS,CACP2yC,uBAAuB,EACvBrpC,aAAcuG,EACd+iC,QAAShnC,EACTknC,WAAW,GAInB,EACAz0B,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,IAC1F,GACC,EAEQgxD,EAAqB,SAACzsE,EAAeua,GAAqB,OACrEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,gBAAA/Z,OAAeZ,GACpC4a,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GACV,GAAIA,EAAM,CACR,IAAI5L,EAAU,CACZ6D,QAAI2P,EACJ60D,WAAYxlE,EACZmW,oBAAgBxF,EAChBu/B,aAAa,GAYf,OATInnC,EAAK2E,OAAS3E,EAAK2E,MAAMhM,OAAS,IACpCvE,EAAU,CACR6D,GAAI+H,EAAK2E,MAAM,GAAG1M,GAClBwkE,WAAYz8D,EAAK2E,MAAM,GAAG83D,WAC1BrvD,eAAgBpN,EAAK2E,MAAM,GAAGyI,eAAeqN,UAC7C0sB,aAAa,IAIV,CACLjiC,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBK,2BACvD1zC,UAEJ,CACF,EACAqe,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GACC,EAEQqxD,EAAgB,SAAC3sE,EAAoBy/D,EAAyB3jD,EAAwBtB,GAAqB,OACtHC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,gBAAA/Z,OAAeb,EAAU,oBAAAa,OAAmB4+D,GACjE5kD,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,WAET,OADAb,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBM,sBACvD3zC,QAAS,CAAE+yC,aAAa,GAE5B,EACA10B,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,IAC1F,GACC,EAEQkxD,EAA0C,SACrD5sE,EACA8b,EACAtB,EACAqyD,GAAiC,OAEjCpyD,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,kBAClD6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GACNA,GACF6jE,GAAMA,EAAG7sE,EAEb,EACAyb,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,IAC1F,GACC,EAEQoxD,EAAoB,SAC/B9sE,EACAskC,EACAR,EACAtpB,EACAuyD,GAAgC,OAEhCtyD,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,gBAAA/Z,OAAeb,EAAU,YAC9C6a,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAIV,OAHAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E0sC,GAAuBA,IAChB,CACL7+D,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBu8B,0BACvD5vE,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDyxD,GAAuBA,IAChB,CACL7+D,KAAK,GAADrN,OAAKjE,IAAUovB,WAAU,KAAAnrB,OAAI4vC,EAAsBw8B,0BAE3D,GACC,C,u2DCtOQ52D,EAAsB,SAACmE,GAAqB,IAAE0yD,EAAUz5D,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,EAAC,OACvEgH,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,mCAAA/Z,OAAkCqsE,GAC/FryD,OAAQC,IAAWC,IACnBC,QAAS,WACP,GAAmB,IAAfkyD,EAEF,OADA1yD,EAASpG,EAAuBC,IAAwBC,OACjD2G,IAAeC,QAAQC,IAAqBC,QAEvD,EACAC,UAAW,SAACrS,GAIV,OAHAiK,IAAO8wB,QAAQ5wB,IAAmBg6D,kBAAmB3tC,EAAQg1B,0BAC7Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASpG,EAAuBC,IAAwB+4D,OACjD,CACLl/D,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBuC,qBACpDjZ,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAKV,OAJAlB,EAAS6B,aAAiB,EAAMvI,IAAyBuC,oBAAqBiG,IAAiB1J,MAAO2J,YAAgBb,KACtHlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASpG,EAAuBC,IAAwB+4D,OACxDn6D,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQi1B,wBAC5D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ/+C,EAA2B,SAAC6D,GAAqB,OAC5DC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,4BAC7DC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBg6D,kBAAmB3tC,EAAQg1B,0BAC7Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB6C,0BACpDvZ,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMvI,IAAyB+C,qBAAsByF,IAAiB1J,MAAO2J,YAAgBb,KACvHzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQi1B,wBAC5D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ7+C,EAAuB,SAAC2D,EAAuB0yD,GAAmB,OAC7EzyD,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oCAAA/Z,OAAmCqsE,GAAc,GAC9GryD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBg6D,kBAAmB3tC,EAAQg1B,0BAC7Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB+C,sBACpDzZ,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMvI,IAAyB+C,qBAAsByF,IAAiB1J,MAAO2J,YAAgBb,KACvHzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQi1B,wBAC5D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ3+C,EAA4B,SAACyD,GAAqB,OAC7DC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,6BAC7DC,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,OAFAiK,IAAO8wB,QAAQ5wB,IAAmBg6D,kBAAmB3tC,EAAQg1B,0BAC7Dh6C,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBiD,2BACpD3Z,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMvI,IAAyB+C,qBAAsByF,IAAiB1J,MAAO2J,YAAgBb,KACvHzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQi1B,wBAC5D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQz+C,EAA4B,SAACuD,EAAuB0yD,GAAmB,OAClFzyD,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,yCAAA/Z,OAAkD,OAAVqsE,QAAU,IAAVA,IAAc,GACnHryD,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAEV,OADAiK,IAAO8wB,QAAQ5wB,IAAmBg6D,kBAAmB3tC,EAAQg1B,0BACtD,CACLtmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBmD,2BACpD7Z,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAKV,OAJAlB,EACE6B,aAAiB,EAAMvI,IAAyBmD,0BAA2BqF,IAAiB1J,MAAO2J,YAAgBb,KAErHzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQi1B,wBAC5D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQv+C,EAAiC,SAACqD,GAAqB,OAClEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,mCAC7DC,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAEV,OADAiK,IAAO8wB,QAAQ5wB,IAAmBg6D,kBAAmB3tC,EAAQg1B,0BACtD,CACLtmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBqD,gCACpD/Z,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMvI,IAAyB+C,qBAAsByF,IAAiB1J,MAAO2J,YAAgBb,KACvHzI,IAAOC,SAASC,IAAmB+wB,uBAAwB1E,EAAQi1B,wBAC5D,CACLvmD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQthD,EAAyB,SAAChX,GAAgC,MAAM,CAC3E8Q,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBM,wBACpDhX,UACD,EAEYia,EAAmB,SAC9BrX,EACA8jC,EACAtpB,EACA6yD,EACAC,GAAsB,OAEtB7yD,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,GAChF6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAMV,GALAwR,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmBkE,iBAAkBrO,EAAKhJ,YACzD4V,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GACtCqkE,GAAaA,EAAUrkE,GAEnBA,EACF,MAAO,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBuD,kBACpDja,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAIV,OAHA4xD,GAAaA,IACb9yD,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBqiD,sBAAuBh2B,EAAQi2B,uBAC3D,CACLvnD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,EACA5C,OAAO,kBAADjyD,OAAoBb,IACzB,EAEQkY,EAAqB,SAChClY,EACAskC,EACAR,EACAtpB,EACAwlB,GAAiB,OAEjBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,iBAC1F6a,OAAQC,IAAWiB,KACnBf,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,GAFAiK,IAAO8wB,QAAQ5wB,IAAmB+E,mBAAoBlY,GACtDs6D,aAAaC,WAAW,GAAD15D,OAAIb,EAAU,iBACjCgJ,EAMF,OALAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACjD0kB,GACFA,EAAQ5d,KAAK,SAER,CACLlU,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoE,oBACpD9a,QAAS4C,EAGf,EACAyb,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBo6D,yBAA0B/tC,EAAQguC,0BAC9D,CACLt/D,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ59C,EAAsB,SACjC9X,EACAskC,EACAR,EACAtpB,EACAwlB,GAAiB,OAEjBvlB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,GAChF6a,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAGV,GAFAiK,IAAO8wB,QAAQ5wB,IAAmB2E,oBAAqB9X,GACvDs6D,aAAaC,WAAW,GAAD15D,OAAIb,EAAU,iBACjCgJ,EAMF,OALIg3B,GACFA,EAAQ5d,KAAK,SAEf5H,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBgE,qBACpD1a,QAAS4C,EAGf,EACAyb,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBo6D,yBAA0B/tC,EAAQguC,0BAC9D,CACLt/D,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EA8BQE,EAA6B,SACxC5sD,EACAs7B,EACAR,EACAtpB,EACAwlB,EACA9xB,GAAiB,OAEjBuM,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBmI,EAAKhJ,YACrF6a,OAAQC,IAAWiB,KACnB/S,OACAqS,UAAW,SAACrS,GAIV,GAHAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmB+C,oBAAqBlN,EAAKhJ,YACxDgJ,EAGF,OAFAg3B,GAAWA,EAAQ5d,KAAK,QAADvhB,OAASmI,EAAKhJ,aAE9B,CACLkO,KAAMA,GAAI,GAAArN,OAAOjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8D,qBAC5Dxa,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB4iD,yBAA0Bv2B,EAAQniC,0BAC9D,CACL6Q,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ99C,EAAsB,SACjC5O,EACAs7B,EACAR,EACAtpB,EACAwlB,EACAytC,GAAwD,OAExDhzD,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,mBAC7DC,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAMV,OALAiK,IAAO8wB,QAAQ5wB,IAAmBwiD,iBAAkB3sD,EAAKhJ,YACzDiT,IAAOk5C,UAAUt7C,IAAkB+G,oBAAqB,CAAE3X,MAAO+I,EAAKhJ,aAEtEgJ,EAAK/I,MAAQ+I,EAAKhJ,WAClBytE,GAAkBA,EAAezkE,GAC1B4sD,EAA2B5sD,EAAMs7B,EAA2BR,EAA2BtpB,EAAUwlB,EAC1G,EACAvkB,UAAW,SAACC,GAEV,OADAzI,IAAOC,SAASC,IAAmB0iD,sBAAuBr2B,EAAQs2B,uBAC3D,CACL5nD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQgY,EAAyB,SACpCC,EACAC,EACAC,EACArzD,GAAqB,IACrBszD,EAAUr6D,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,GACbxG,EAAoBwG,UAAA9R,OAAA,EAAA8R,UAAA,QAAA7C,EACpB2zB,EAAwC9wB,UAAA9R,OAAA,EAAA8R,UAAA,QAAA7C,EAAA,OAExC6J,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,6BAAA/Z,OAC3DoM,EAAM,GAAE,IAAApM,OAAO8sE,EAAc,KAAA9sE,OAAIitE,IAEnCjzD,OAAQC,IAAWiB,KACnB/S,KAAMiE,EACN+N,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAWV,OAVAiK,IAAO8wB,QAAQ5wB,IAAmBwiD,iBAAkB3sD,EAAKhJ,YACzDiT,IAAOk5C,UAAUt7C,IAAkB68D,uBAAwB,CAAEztE,MAAO+I,EAAKhJ,aACzEwa,EAAS6B,aAAiB,EAAMuxD,EAAoCtxD,IAAiB+jB,UACrF7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrD1F,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GACtCwR,EAAS,CACPtM,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8D,qBACpDxa,QAAS4L,IAEXu7B,GAAYA,EAASv7B,GACd,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMwxD,EAAiCvxD,IAAiB1J,MAAO2J,YAAgBb,KACzGzI,IAAOC,SAASC,IAAmB0iD,sBAAuBr2B,EAAQs2B,uBAC3D,CACL5nD,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQqY,EAA4B,SACvC/kE,EACAs7B,EACAR,EACAtpB,EACA+pB,GAAkD,OAElD9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,uBAAA/Z,OAAsBmI,EAAKhJ,WAAU,UAClG6a,OAAQC,IAAWiB,KACnB/S,KAAMA,EAAKglE,SACXhzD,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,WAKT,OAJAb,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmB+C,oBAAqBlN,EAAK/I,OAC5D2V,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GAC/B,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmB4iD,yBAA0Br6C,EAAM2iC,YAC5D,CACLnwC,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQuY,EAAmB,SAC9BC,EACA5pC,EACAR,EACAtpB,EACAwlB,EACAuE,GAA4D,OAE5D9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBqtE,EAAU,kBAC1FrzD,OAAQC,IAAWiB,KACnBf,QAAS,WACPR,EAASpG,EAAuBC,IAAwBC,MAC1D,EACA+G,UAAW,SAACrS,GAOV,OANAwR,EAASpG,EAAuBC,IAAwB+4D,OACxD5yD,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5EptB,IAAO8wB,QAAQ5wB,IAAmBg7D,iBAAkBD,GAChDllE,GACFg3B,GAAWA,EAAQ5d,KAAK,QAADvhB,OAASmI,EAAKhJ,aAEhC,CACLkO,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8D,qBACpDxa,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAIV,OAHAlB,EAASpG,EAAuBC,IAAwB+4D,OACxDn6D,IAAOC,SAASC,IAAmBg7D,iBAAkBzyD,EAAM2iC,YAC3D9Z,GAAYA,EAAS7oB,EAAOwyD,GACrB,CACLhgE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQnJ,EAA6B,SACxC9mC,EACA6e,EACAR,EACAtpB,EACA+pB,GAAwC,IACxC6pC,EAA2B36D,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,IAAAA,UAAA,GAAQ,OAEnCgH,YAAU,CACRC,IAAI,GAAD7Z,OACDmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,0DAAA/Z,OACEutE,GACzDvzD,OAAQC,IAAWiB,KACnBvL,QAAS,CACP,eAAgB,mBAElBxH,KAAMyc,EACNzK,QAAS,WAEP,OADAR,EAASpG,EAAuBC,IAAwBC,OACjD2G,IAAeC,QAAQC,IAAqBC,QACrD,EACAC,UAAW,SAACrS,GAOV,OANAiK,IAAO8wB,QAAQ5wB,IAAmBk7D,oBAAqBrlE,EAAKhJ,YAC5DiT,IAAOk5C,UAAUt7C,IAAkBw9D,oBAAqB,CAAEpuE,MAAO+I,EAAKhJ,aACtEwa,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASpG,EAAuBC,IAAwB+4D,OACxD7oC,GAAYA,EAASv7B,GACd,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8D,qBACpDxa,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAA0B,IAAD4yD,EAAAC,EAC7BC,EAAY,CAAEz7D,QAAc,OAAL2I,QAAK,IAALA,GAAW,QAAN4yD,EAAL5yD,EAAO1S,YAAI,IAAAslE,OAAN,EAALA,EAAav7D,SAK1C,OAJAyH,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOu9C,IAAIr9C,IAAmBs7D,yBAA0BD,GACxDh0D,EAASpG,EAAuBC,IAAwB+4D,OACxD5yD,EAASS,IAAeC,QAAQC,IAAqBG,aAC/B,OAAb,OAALI,QAAK,IAALA,OAAK,EAALA,EAAOpL,QACFo+D,EAAsBhzD,EAAM1S,MACR,OAAb,OAAL0S,QAAK,IAALA,OAAK,EAALA,EAAOpL,UAAuB,OAALoL,QAAK,IAALA,GAAW,QAAN6yD,EAAL7yD,EAAO1S,YAAI,IAAAulE,OAAN,EAALA,EAAa1uE,QAAQ,mBAAoB,EACpE8uE,EAA4B,OAALjzD,QAAK,IAALA,OAAK,EAALA,EAAO1S,KAAMyc,IAE3CjL,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KAC5F,CACLxN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB86D,6BAG1D,GACC,EAEQF,EAAwB,SAACG,GAA6C,MAAM,CACvF3gE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB0D,qBACpDpa,QAASyxE,EACV,EAEYF,EAAyB,SAAC/5D,EAAuB6Q,GAAW,MAAM,CAC7EvX,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBa,kCACpDvX,QAAS,CACPwX,eACA6Q,QAEH,EAEYqpD,EAAa,SAACrpD,GAAU,MAAM,CACzCvX,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBe,SACpDzX,QAASqoB,EACV,EAEYspD,EAAwB,SACnC/uE,EACAskC,EACAR,EACAS,EACA/pB,EACA0xC,EACA8iB,GAA0B,OAE1Bv0D,YAAU,CACRC,IAAKwxC,EAAgB,GAAArrD,OAEfmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OACpCb,EAAU,gCAAAa,OAA+BqrD,GAAgB,GAAArrD,OACzEmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,aACzF6a,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAOV,GANAiK,IAAO8wB,QAAQ5wB,IAAmB47D,sBAAsB,GAADluE,OAAK2+B,EAAQyvC,aAAY,KAAApuE,OAAIb,IACpFiT,IAAOk5C,UAAUt7C,IAAkBq+D,gCAAiC,CAAEjvE,MAAOD,IACxEgvE,GACHx0D,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAE9E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACjDtS,EAEF,OADAu7B,EAASv7B,GACF,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBi7D,uBAG1D,EACAtzD,UAAW,SAACC,GAMV,OALKszD,GACHx0D,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KAErGzI,IAAOC,SAASC,IAAmBg8D,2BAA4B3vC,EAAQ4vC,4BACvE50D,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQx/C,EAAsB,SACjCm5D,EACA/qC,EACAR,EACAtpB,EACA80D,GAAmB,IACnBC,EAAkB97D,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,IAAAA,UAAA,GAClB8wB,EAAwC9wB,UAAA9R,OAAA,EAAA8R,UAAA,QAAA7C,EAAA,OAExC6J,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,uBAAA/Z,OAAsBwuE,EAAkBrvE,WAAU,KAAAa,OACnG,OAAVyuE,QAAU,IAAVA,IAAc,GAAE,wBAAAzuE,OACK0uE,GACvB10D,OAAQC,IAAWiB,KACnB/S,KAAMqmE,EACNr0D,QAAS,WAEP,OADAR,EAASpG,EAAuBC,IAAwBC,OACjD2G,IAAeC,QAAQC,IAAqBC,QACrD,EACAC,UAAW,SAACrS,GAMV,GALAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASpG,EAAuBC,IAAwB+4D,OACxDn6D,IAAO8wB,QAAQ5wB,IAAmB+C,oBAAqBlN,EAAKhJ,YAC5D4V,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GAClCA,EAEF,OADAu7B,GAAYA,EAASv7B,GACd,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8D,qBACpDxa,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAKV,OAJAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASpG,EAAuBC,IAAwB+4D,OACxDn6D,IAAOC,SAASC,IAAmB4iD,yBAA0Bv2B,EAAQniC,0BAC9D,CACL6Q,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EA0CQ8Z,EAAwB,SACnCxmE,EACAs7B,EACAR,EACAtpB,EACA+pB,EACAkrC,GAAsB,OAEtBh1D,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBmI,EAAKhJ,WAAU,aAC/F6a,OAAQC,IAAWiB,KACnB/S,OACAgS,QAAS,WACPR,EAASS,IAAeC,QAAQC,IAAqBC,QACjDq0D,GACFj1D,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyB3vC,SAEjE,EACAC,UAAW,SAACrS,GAUV,GATAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDd,EAASkkD,eACTlkD,EAASk1D,eACLD,GACFj1D,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBzvC,aAE/DrI,IAAO8wB,QAAQ5wB,IAAmBq8D,sBAAuBxmE,EAAKhJ,YAC9D4V,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GAClCA,EAEF,OADAu7B,GAAYA,EAASv7B,GACd,CACLkF,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAOV,OANAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACjDm0D,GACFj1D,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAE/DtkC,IAAOC,SAASC,IAAmBw8D,2BAA4BnwC,EAAQniC,0BAChE,CACL6Q,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ98C,EAA0B,WAAH,MAAU,CAC5C1K,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8E,yBACrD,EA+DYiB,EAAyC,SAAC+1D,GAAwD,MAAM,CACnH1hE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB+F,wCACpDzc,QAASwyE,EACV,EAEY91D,EAAgC,SAAC+1D,GAAa,MAAM,CAC/D3hE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBgG,+BACpD1c,QAASyyE,EACV,EAgBYC,EAAiB,SAC5BhyE,EACAiyE,EACA/mE,EACAs7B,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmB/C,EAAckC,WAAU,UACxG6a,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmB68D,cAAehnE,GAC7C+mE,IAAa1Q,IAAe4Q,WAe9B,OAAO/5D,EACLg6D,YAAQpyE,GAAe,SAACqyE,GACtB,OAAQJ,GACN,KAAK1Q,IAAe+Q,MAClBD,EAAmBE,UAAYrnE,EAC/B,MACF,KAAKq2D,IAAeiR,QAClBH,EAAmBI,YAAcvnE,EAGrC,OAAOmnE,CACT,IACA7rC,EACAR,EACAtpB,GA5BF,GAAI1c,EAAciI,kBAAoBjI,EAAciI,iBAAiBpE,OAAS,EAAG,CAC/E,IAAM0tE,EAAoBa,YAAQpyE,GAAe,SAACqyE,GAEhD,OADAA,EAAmBpqE,iBAAkB,GAAGyqE,uBAAyBxnE,EAC1DmnE,CACT,IACA,OAAO32D,GACL61D,EACAA,EAAkBtpE,iBAAkB,GACpCu+B,EACAR,EACAtpB,EAEJ,CAmBJ,EACAiB,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmBs7D,yBAA0BjvC,EAAQixC,0BACrEj2D,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GACC,EAEQ1d,EAAyB,SACpCoC,EACAgJ,EACAs7B,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,SAC1F6a,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmBu9D,gCAAiC1nE,EAAKlG,OACpEkG,EAGF,OAFAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBlW,wBACpDR,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBw9D,yBAA0BnxC,EAAQoxC,gCAC9D,CACL1iE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQmb,EAAyB,SACpC7wE,EACA6mC,EACA79B,EACAs7B,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,uBAAA/Z,OAAsBb,EAAU,UAAAa,OAASgmC,GACtGhsB,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmB29D,mCAAoC9nE,EAAKlG,OACvEkG,EAIF,OAHA4M,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GACtCwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmB49D,4BAA6BvxC,EAAQwxC,gCACjE,CACL9iE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQub,EAAyB,SACpCjxE,EACA6mC,EACAvC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,uBAAA/Z,OAAsBb,EAAU,UAAAa,OAASgmC,GACtGhsB,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmB+9D,mCAAoCloE,EAAKlG,OACvEkG,EAIF,OAHA4M,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,GACtCwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBg+D,4BAA6B3xC,EAAQ4xC,qBACjE,CACLljE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAGQz3D,EAAwC,SACnD+B,EACAgJ,EACAs7B,EACAR,EACAtpB,EACA62D,EACAC,GAAwC,OAExC72D,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,sBAC1F6a,OAAQC,IAAWiB,KACnB/S,OACAgS,QAAS,WACPR,EAASS,IAAeC,QAAQC,IAAqBC,SACvD,EACAC,UAAW,SAACrS,GACNA,EAAKlG,MACPmQ,IAAO8wB,QAAQ5wB,IAAmBo+D,+CAAgDvoE,EAAKlG,OAEvFmQ,IAAO8wB,QACL5wB,IAAmBo+D,+CAClBvoE,EAA6BwoE,+BAI9BxoE,IACFwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAErDd,EAAS,CACPtM,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB7V,uCACpDb,QAAS4L,IAGPqoE,GACF72D,EAAS+5B,eAGP+8B,GACF92D,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBzvC,aAGnE,EACAG,UAAW,SAACC,GAUV,OATAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBs+D,wCAAyCjyC,EAAQoxC,gCAChFS,GACF72D,EAAS+5B,eAEP+8B,GACF92D,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAExD,CACLrpC,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQ6I,GAAwC,SACnDv+D,EACA6mC,EACA79B,EACAs7B,EACAR,EACAtpB,EACA6jD,EACA3uC,EACA2hD,GAA4B,OAE5B52D,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,uBAAAa,OAAsBgmC,GAChHhsB,OAAQC,IAAWiB,KACnB/S,OACAgS,QAAS,WACPR,EAASS,IAAeC,QAAQC,IAAqBC,UACjDijD,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyB3vC,SAEjE,EACAC,UAAW,SAACrS,GACNA,EAAKlG,MACPmQ,IAAO8wB,QAAQ5wB,IAAmBu+D,kDAAmD1oE,EAAKlG,OAE1FmQ,IAAO8wB,QACL5wB,IAAmBo+D,+CAClBvoE,EAA6BwoE,+BAK/BnT,IAAgBsT,IAAcC,8CAC7BvT,IAAgBsT,IAAcE,0CAChCniD,GAEAlV,EACEs3D,YACE9xE,EACA6mC,EACAhX,YAAcH,EAAM,kDACpBG,YAAcH,EAAM,4CACpBlV,EACA6jD,EACA3uC,IAKF1mB,IACFwR,EAAS5E,IAAUsF,QAAQ5H,IAAY2G,QAAQjR,IAC/CwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAErDd,EAAS,CACPtM,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,IAGPqoE,GACF72D,EAAS+5B,eAGf,EACA94B,UAAW,SAACC,GAUV,OATAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGlB,EAASS,IAAeC,QAAQC,IAAqBG,aACjD+iD,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAE3D85B,GACF72D,EAAS+5B,eAEXthC,IAAOC,SAASC,IAAmB4+D,2CAA4CvyC,EAAQwyC,kCAChF,CACL9jE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAEQuc,GAAwC,SACnDjyE,EACA6mC,EACAvC,EACAR,EACAtpB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,uBAAAa,OAAsBgmC,GAChHhsB,OAAQC,IAAWisB,OACnB/rB,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACrS,GAEV,GADAiK,IAAO8wB,QAAQ5wB,IAAmB++D,kDAAmDlpE,EAAKlG,OACtFkG,EAGF,OAFAwR,EAAS6B,aAAiB,EAAMioB,EAA2BhoB,IAAiB+jB,UAC5E7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAAS4L,EAGf,EACAyS,UAAW,SAACC,GAGV,OAFAlB,EAAS6B,aAAiB,EAAMynB,EAA2BxnB,IAAiB1J,MAAO2J,YAAgBb,KACnGzI,IAAOC,SAASC,IAAmBg/D,2CAA4C3yC,EAAQ4yC,kCAChF,CACLlkE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4hD,sBAExD,GACC,EAIQn8C,GAA0B,SACrC84D,EACArpE,EACA+rD,EACAj5C,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBwxE,EAASryE,WAAU,qBACnG6a,OAAQC,IAAWiB,KACnB/S,OACAqS,UAAW,SAACi3D,GAEV,OADA93D,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UAC1D,CACLnyB,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyByF,yBACpDnc,QAASk1E,EAEb,EACA72D,UAAW,SAACC,GACVlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmBo/D,6BAA8B72D,EAAM2iC,WACzE,GACC,EAEQ7kC,GAA0B,SACrC64D,EACArpE,EACA+rD,EACAj5C,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBwxE,EAASryE,WAAU,sBAAAa,OACjGmI,EAAK69B,UAEPhsB,OAAQC,IAAWiB,KACnB/S,OACAgS,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACi3D,GAGV,OAFA93D,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UACjE7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB0F,yBACpDpc,QAASk1E,EAEb,EACA72D,UAAW,SAACC,GACVlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmBq/D,6BAA8B92D,EAAM2iC,YACvE7jC,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GACC,EAEQ7B,GAA0B,SACrC44D,EACArpE,EACA+rD,EACAj5C,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBwxE,EAASryE,WAAU,sBAAAa,OACjGmI,EAAK69B,UAEPhsB,OAAQC,IAAWisB,OACnB/9B,OACAqS,UAAW,SAACo3D,GAEV,OADAj4D,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UAC1D,CACLnyB,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB2F,yBACpDrc,QAASq1E,EAEb,EACAh3D,UAAW,SAACC,GACVlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmBu/D,6BAA8Bh3D,EAAM2iC,WACzE,GACC,EAEQ3kC,GAAkB,SAC7B24D,EACArpE,EACA+rD,EACAj5C,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBwxE,EAASryE,WAAU,eACnG6a,OAAQC,IAAWiB,KACnB/S,OACAqS,UAAW,SAACnU,GAGV,OAFAsT,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UACjE7lB,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB4F,iBACpDtc,QAAS8J,EAEb,EACAuU,UAAW,SAACC,GACVlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmBw/D,qBAAsBj3D,EAAM2iC,WACjE,GACC,EAyBQzkC,GAAkB,SAC7B5Z,EACAgJ,EACA+rD,EACAj5C,EACAtB,GAAqB,OAErBC,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmBb,EAAU,gBAAAa,OAAemI,EAAK69B,UAC9GhsB,OAAQC,IAAWiB,KACnB/S,OACAqS,UAAW,SAACpO,GAEV,OADAuN,EAAS6B,aAAiB,EAAM04C,EAAgBz4C,IAAiB+jB,UAC1D,CACLnyB,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8F,iBACpDxc,QAAS6P,EAEb,EACAwO,UAAW,SAACC,GACVlB,EAAS6B,aAAiB,EAAMP,EAAgBQ,IAAiB1J,MAAO2J,YAAgBb,KACxFzI,IAAOC,SAASC,IAAmByG,gBAAiB8B,EAAM2iC,WAC5D,GACC,EAEQ/lC,GAAuB,SAACmnD,EAAyBoN,GAA6B,OACzFpyD,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmB4+D,EAAe,sBAC/F5kD,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACpO,GAGV,OADA4/D,GAAMA,IACCj3D,IAAUsF,QAAQpH,IAAyBwE,sBAAsBrL,EAC1E,EACAwO,UAAW,SAACC,GACVmxD,GAAMA,EAAQ,OAALnxD,QAAK,IAALA,OAAK,EAALA,EAAO1S,MAEhBiK,IAAOC,SAASC,IAAmByG,gBAAsB,OAAL8B,QAAK,IAALA,OAAK,EAALA,EAAO1S,KAC7D,GACC,EAwDQ4pE,GAAwB,SAACC,GAAsB,MAAM,CAChE3kE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBgF,6BACpD1b,QAASy1E,EACV,EAEYC,GAAyB,SAAC11E,EAAqCmB,GAA0B,MAAM,CAC1G2P,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBiF,8BACpDxa,WACAnB,UACD,EAEY21E,GAAiB,SAACv9D,EAAgBjX,EAA4Bic,GACzE,IAAM1b,EAAmBP,IAAaC,IAAiBC,MACjDic,EAAG,GAAA7Z,OAAMmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmB/B,EAAU,MAAQ,KAAI,cAAA+B,OAAa2U,GAE1H,OAAOiF,YAAU,CACfC,MACAG,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACnb,GAEV,OADAsa,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBiF,8BACpDxa,WACAnB,QAAS,CACP0D,WAAW,EACXT,OAAQ,GACRE,WAAW,EACXkV,cAAevV,GAGrB,EACAub,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmBqjD,yBAA0B96C,EAAM2iC,YACnE7jC,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GAEJ,EAEa03D,GAA2B,SAACx9D,EAAgB+uB,GAAoD,OAC3G9pB,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,gCAAA/Z,OAA+B2U,GAC5FqF,OAAQC,IAAWC,IACnBM,UAAW,SAACnb,GACVqkC,EAASrkC,EACX,GACC,EAEQqW,GAAiC,WAAH,OACzCkE,YAAU,CACRC,IAAI,GAAD7Z,OAAKmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,qDAC7DC,OAAQC,IAAWC,IACnBM,UAAW,SAACiF,GAAc,MAAM,CAC9BpS,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyByC,gCACpDnZ,QAASkjB,EACV,EACD7E,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmBoD,+BAAgCmF,EAAM2iC,WAC3E,GACC,EAwBQ40B,GAAe,SAACtyE,EAAcpC,EAA4Bic,GACrE,IAAM1b,EAAmBP,IAAaC,IAAiBC,MACjDic,EAAG,GAAA7Z,OAAMmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OAAmB/B,EAAU,MAAQ,KAAI,iBAAA+B,OAAgBF,GAC7H,OAAO8Z,YAAU,CACfC,MACAG,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OACrDC,UAAW,SAACnb,GAEV,OADAsa,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBmF,2BACpD1a,WACAnB,QAAS,CACPuD,OACAT,WAGN,EACAub,UAAW,SAACC,GACVzI,IAAOC,SAASC,IAAmBqjD,yBAA0B96C,EAAM2iC,YACnE7jC,EAASS,IAAeC,QAAQC,IAAqBG,YACvD,GAEJ,EAEa43D,GAAqB,SAACC,EAAe34D,GAAqB,OACrEC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,WAAA/Z,OAAUsyE,EAAK,OACpCt4D,OAAQC,IAAWC,IACnBC,QAASC,IAAeC,QAAQC,IAAqBC,OAErDC,UAAW,SAACrS,GAEV,OADAwR,EAASS,IAAeC,QAAQC,IAAqBG,aAC9C,CACLpN,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBqF,kCACpD/b,QAAS4L,EAAK2E,MAElB,EACA8N,UAAW,SAACC,GACVlB,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmByG,gBAAiB8B,EAAM2iC,WAC5D,GACC,EAEQ+0B,GAAuB,SAClCpqE,EACAwR,EACA6yD,GAAyC,IACzCgG,EAAqC5/D,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,IAAAA,UAAA,GAAQ,OAE7CgH,YAAU,CACRC,IAAI,GAAD7Z,OACDmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,6FAAA/Z,OACqCwyE,GAC5FrqE,OACA6R,OAAQC,IAAWiB,KACnBf,QAAS,WACPR,EAASpG,EAAuBC,IAAwBC,MAC1D,EACA+G,UAAW,SAACiF,GAGV,OAFA9F,EAASpG,EAAuBC,IAAwB+4D,OACxDC,GAAaA,EAAU/sD,EAAOtgB,YAC1BqzE,EACK,CACLnlE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoC,qBACpD9Y,QAASkjB,GAGN,CACLpS,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyB8D,qBACpDxa,QAASkjB,EAEb,EACA7E,UAAW,SAACC,GAGV,OAFAlB,EAASpG,EAAuBC,IAAwB+4D,OACxDn6D,IAAOC,SAASC,IAAmByG,gBAAiB8B,EAAM2iC,YACnD,CACLnwC,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBsE,0BACpDhb,QAAS,CAAE6C,MAAO+I,EAAK/I,MAAOqQ,OAAQoL,EAAMpL,OAAQsE,aAAc8G,EAAM1S,KAAMsqE,KAAMtqE,EAAKsqE,MAE7F,GACC,EAEQC,GAA8B,WAAH,MAAU,CAChDrlE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBsE,0BACpDhb,QAAS,CAAC,EACX,EAEYo2E,GAAuB,WAAH,MAAU,CACzCtlE,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBsF,oCACrD,EAEYq6D,GAAmB,SAACxmE,GAAmB,MAAM,CACxDiB,KAAK,GAADrN,OAAKjE,IAAUmZ,KAAI,KAAAlV,OAAIiT,IAAyBoF,+BACpD9b,QAAS6P,EACV,C,mCC3hDD,kCAMO,IAAKgqD,EAAe,SAAfA,GAAe,OAAfA,EAAe,uCAAfA,EAAe,0CAAfA,EAAe,uBAAfA,EAAe,oBAAfA,CAAe,K,mCCN3B,6IAiBYphB,EAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,mCAAjBA,CAAiB,MAIhBC,EAAe,SAACt7B,GAAqB,OAChDC,YAAU,CACRC,IAAI,GAAD7Z,OAAKkQ,IAAO6J,OAAM,iEACrBC,OAAQC,IAAWC,IACnBM,UAAW,SAACrS,GAEV,OADAihE,YAAiBp0B,EAAkBC,aAAc9sC,EAAK0qE,gBAC/C,CACLxlE,KAAK,GAADrN,OAAKjE,IAAUigC,OAAM,KAAAh8B,OAAIg1C,EAAkBC,cAC/C14C,QAAS44C,KAAKC,MAAMjtC,EAAK0qE,gBAE7B,EACAj4D,UAAW,SAACC,GACVlB,EAAS+qD,YAAe,OAAL7pD,QAAK,IAALA,OAAK,EAALA,EAAOpL,OAAqBulC,EAAkBC,eACjE7iC,IAAOC,SAASC,IAAmBwgE,wBAAyBn0C,EAAQm0C,wBACtE,GACC,C,kOCjCOx8B,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,sBAAlBA,EAAkB,0BAAlBA,EAAkB,sBAAlBA,CAAkB,MAMlBy8B,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,sBAAnBA,EAAmB,cAAnBA,CAAmB,MAMlB7gB,EAAiB,WAAH,IAAA1zD,EAAA,OAAAA,EAAA,GAAAlC,YAAAkC,EACxBzC,IAAUi3E,SAAWj3E,IAAUs6C,SAAO/5C,YAAAkC,EAAC,OAAD,GAAAwB,OAC9BjE,IAAUs6C,QAAO,KAAAr2C,OAAIs2C,EAAmB/7B,QAAKje,YAAAkC,EAAA,UAC7C,CACPiR,OAAQsjE,EAAoBE,aAC7Bz0E,CAAA,EAGU+zD,EAAiB,SAAC13C,GAAY,IAAApF,EAAA,OAAAA,EAAA,GAAAnZ,YAAAmZ,EACxC1Z,IAAUi3E,SAAWj3E,IAAUs6C,SAAO/5C,YAAAmZ,EAAC,OAAD,GAAAzV,OAC9BjE,IAAUs6C,QAAO,KAAAr2C,OAAIs2C,EAAmBvkC,QAAKzV,YAAAmZ,EAAA,UAC7C,CACPy9D,OAAQH,EAAoBhhE,MAC5B8I,UACDpF,CAAA,EAGU08C,EAAmB,WAAH,IAAAx8C,EAAA,OAAAA,EAAA,GAAArZ,YAAAqZ,EAC1B5Z,IAAUi3E,SAAWj3E,IAAUs6C,SAAO/5C,YAAAqZ,EAAC,OAAD,GAAA3V,OAC9BjE,IAAUs6C,QAAO,KAAAr2C,OAAIs2C,EAAmB9W,UAAOljC,YAAAqZ,EAAA,UAC/C,CACPlG,OAAQsjE,EAAoBI,WAC5Bt4D,MAAO,KACRlF,CAAA,C,kCCtCH,omBAMA,IAAMy9D,EAAe,SAACC,GACpB,IAAMx5D,EAAM,IAAI80C,IAAI,8BAAD3uD,OAA+BqzE,IAElD,OADAx5D,EAAIy5D,aAAah+D,IAAI,WAAY,mBAC1BuE,EAAI9G,UACb,EAEaoxB,EAAQ,CACnB9a,WAAY+pD,EAAa,uDACzBG,aAAcH,EAAa,8CAC3BI,SAAUJ,EAAa,kEACvBK,gBAAiBL,EAAa,gEAC9BM,iBAAkBN,EAAa,yEAC/BO,UAAWP,EAAa,+FACxBQ,eAAgBR,EAAa,4DAC7BS,KAAMT,EAAa,uDACnB7oD,IAAK6oD,EAAa,uDAClBU,eAAgBV,EAAa,8CAC7BW,UAAWX,EAAa,0DACxBroD,SAAUqoD,EAAa,8CACvBY,mBAAoBZ,EAAa,yDACjCa,uBAAwBb,EAAa,8EACrCc,0BAA2Bd,EAAa,sFACxCe,iBAAkBf,EAAa,qFAC/BgB,eAAgBhB,EAAa,8FAC7BiB,yBAA0BjB,EACxB,yGAEFkB,eAAgBlB,EAAa,mGAC7BmB,iBAAkBnB,EAAa,oEAC/BoB,aAAcpB,EAAa,8BAC3BqB,cAAerB,EAAa,mDAC5BsB,oBAAqBtB,EAAa,wDAClCuB,gCAAiCvB,EAAa,gEAC9CwB,qBAAsB,wDACtBxwC,wBAAyBgvC,EAAa,sFACtCyB,mBAAoB,uCACpBC,yBAA0B1B,EAAa,yEACvC2B,UAAW,iCACXC,iBAAkB,gCAClBC,yBAA0B7B,EAAa,+BACvC8B,mBAAoB,iCACpBC,cAAe,iCACfC,IAAKhC,EAAa,mEAClBiC,oBAAqBjC,EACnB,qGAEFkC,QAASlC,EACP,+GAEFmC,uBAAwBnC,EACtB,4HAEFoC,uBAAwB,4CACxBC,uBAAwB,4CACxBC,yBAA0B,+CAC1BC,uCAAwC,uDACxCC,sCAAuC,uDACvCC,qCAAsC,qDACtCC,sBAAuB,uGACvBC,eAAgB3C,EAAa,0DAC7B4C,iBAAkB,kDAClBC,aAAc7C,EAAa,0EAC3B8C,mBAAoB9C,EAAa,iGACjC+C,eAAgB/C,EACd,gJAEFgD,QAAShD,EACP,iJAEFiD,WAAYjD,EACV,2HAEFkD,aAAclD,EACZ,gIAEFmD,UAAWnD,EACT,4HAEFoD,mBAAoBpD,EAClB,kHAEFqD,eAAgBrD,EACd,gHAEFsD,cAAe,uCACfC,sBAAuB,oCACvBC,iBAAkBxD,EAAa,2CAC/ByD,0BAA2BzD,EAAa,iDACxC0D,sBAAuB1D,EAAa,kEACpC2D,YAAa,6BACbC,QAAS,oCACTC,sBAAuB,4FACvBC,iBAAkB,2GAClBC,uBACE,uHACFC,YAAa,qHACbC,sBACE,oHACFC,kBAAmBlE,EACjB,2GAEFmE,oBAAqBnE,EAAa,+FAClCoE,sBAAuBpE,EAAa,4CACpCqE,0BAA2BrE,EAAa,0DACxCsE,8BAA+BtE,EAAa,4EAC5ChpD,YAAagpD,EAAa,2DAC1BuE,YAAavE,EAAa,yEAC1BwE,QAAS,iDACTC,WAAY,wCACZzvD,KAAMgrD,EAAa,yCACnB0E,IAAK1E,EAAa,sGAClB2E,WAAY3E,EACV,mHAEF4E,gBAAiB5E,EAAa,gGAC9B6E,sBAAuB,0CACvBC,0BAA2B,2CAC3BC,iBAAkB,mCAClBC,yBAA0B,kCAC1BC,gCAAiC,6DACjCC,mBAAoB,wCACpBC,YAAa,8BACb/yB,YAAa4tB,EACX,mHAEFoF,4BAA6BpF,EAC3B,mIAEFqF,yBAA0BrF,EAAa,kEACvCsF,oBAAqBtF,EAAa,oEAClCuF,cAAe,wCAKJC,EAAa,CACxBpJ,UAAU,GAADxvE,OAAKmR,GAAsB,+CACpC0nE,SAAS,GAAD74E,OAAKmR,GAAsB,+CACnCu+D,YAAY,GAAD1vE,OAAKmR,GAAsB,+CACtC2nE,WAAW,GAAD94E,OAAKmR,GAAsB,2BACrC4nE,UAAU,GAAD/4E,OAAKmR,GAAsB,yBACpC6nE,aAAa,GAADh5E,OAAKmR,GAAsB,4BACvC8nE,MAAM,GAADj5E,OAAKmR,GAAsB,qBAChC+nE,aAAa,GAADl5E,OAAKmR,GAAsB,4BACvCgoE,QAAQ,GAADn5E,OAAKmR,GAAsB,uBAClCioE,QAAQ,GAADp5E,OAAKmR,GAAsB,uBAClCmqC,WAAW,GAADt7C,OAAKmR,GAAsB,0BACrCkoE,QAAQ,GAADr5E,OAAKmR,GAAsB,uBAClCmoE,SAAS,GAADt5E,OAAKmR,GAAsB,8BACnC0J,MAAM,GAAD7a,OAAKmR,GAAsB,qBAChCooE,WAAW,GAADv5E,OAAKmR,GAAsB,2BACrCqoE,oBAAoB,GAADx5E,OAAKmR,GAAsB,sCAGnCsoE,EAAgB,CAC3BC,SAAS,GAAD15E,OAAKmR,GAAsB,+BACnCwoE,aAAa,GAAD35E,OAAKmR,GAAsB,oCACvCyoE,eAAe,GAAD55E,OAAKmR,GAAsB,sCACzC0oE,iBAAiB,GAAD75E,OAAKmR,GAAsB,mCAGhC2oE,EAAa,CACxBC,KAAK,GAAD/5E,OAAKmR,GAAsB,mCAC/B6oE,SAAS,GAADh6E,OAAKmR,GAAsB,wCAGxB8oE,EAAgB,CAC3BF,KAAK,GAAD/5E,OAAKmR,GAAsB,uCAC/B+oE,SAAS,GAADl6E,OAAKmR,GAAsB,4CACnC6oE,SAAS,GAADh6E,OAAKmR,GAAsB,uCACnCgpE,aAAa,GAADn6E,OAAKmR,GAAsB,uCACvCipE,UAAU,GAADp6E,OAAKmR,GAAsB,oCACpCkpE,UAAU,GAADr6E,OAAKmR,GAAsB,wCACpCmpE,QAAQ,GAADt6E,OAAKmR,GAAsB,sCAClCopE,cAAc,GAADv6E,OAAKmR,GAAsB,wCACxCqpE,OAAO,GAADx6E,OAAKmR,GAAsB,qCACjCspE,YAAY,GAADz6E,OAAKmR,GAAsB,sCACtCupE,WAAW,GAAD16E,OAAKmR,GAAsB,qCACrCwpE,YAAY,GAAD36E,OAAKmR,GAAsB,sCACtCypE,WAAW,GAAD56E,OAAKmR,GAAsB,qCACrC0pE,UAAU,GAAD76E,OAAKmR,GAAsB,oCACpC2pE,SAAS,GAAD96E,OAAKmR,GAAsB,oCAGxB4pE,EAAY,CACvBC,aAAc,+CACdC,eAAgB,wCAChBC,qBAAsB9H,EAAa,yEACnC+H,2BAA4B,4DAC5BC,qBAAsB,6FACtBC,qBAAsB,4FACtBC,iBAAkB,kFAClBC,iBAAkBnI,EAAa,iDAC/BoI,kBAAmBpI,EAAa,4BAChCqI,oBAAqB,oEACrBC,uBAAwBtI,EAAa,mCACrCuI,uBAAuB,GAAD37E,OAAKmR,sCAAsC,mCACjEyqE,cAAe,sBACfC,YAAa,+EACbC,qBAAsB,qFACtBC,kBAAmB,mDAGRC,EAAY,CACvBC,OAAO,GAADj8E,OAAKmR,GAAsB,uCACjC+qE,WAAW,GAADl8E,OAAKmR,GAAsB,4CACrCgrE,MAAM,GAADn8E,OAAKmR,GAAsB,qCAChCirE,UAAU,GAADp8E,OAAKmR,GAAsB,gDACpCnP,IAAI,GAADhC,OAAKmR,GAAsB,mCAC9B27C,KAAK,GAAD9sD,OAAKmR,GAAsB,oCAC/B9H,MAAM,GAADrJ,OAAKmR,GAAsB,qCAChCkrE,SAAS,GAADr8E,OAAKmR,GAAsB,wCACnCmrE,WAAW,GAADt8E,OAAKmR,GAAsB,0CACrCorE,MAAM,GAADv8E,OAAKmR,GAAsB,qCAChCqrE,IAAI,GAADx8E,OAAKmR,GAAsB,mCAC9BsrE,KAAK,GAADz8E,OAAKmR,GAAsB,oCAC/BurE,UAAU,GAAD18E,OAAKmR,GAAsB,yCACpCwrE,OAAO,GAAD38E,OAAKmR,GAAsB,2CACjCyrE,KAAK,GAAD58E,OAAKmR,GAAsB,sDAC/B0rE,OAAO,GAAD78E,OAAKmR,GAAsB,yCACjC2rE,MAAM,GAAD98E,OAAKmR,GAAsB,qCAChC4rE,MAAM,GAAD/8E,OAAKmR,GAAsB,sCAChC6rE,WAAW,GAADh9E,OAAKmR,GAAsB,uCACrC8rE,qBAAqB,GAADj9E,OAAKmR,GAAsB,iDAC/C+rE,cAAc,GAADl9E,OAAKmR,GAAsB,yCACxCgsE,cAAc,GAADn9E,OAAKmR,GAAsB,yCACxCisE,UAAU,GAADp9E,OAAKmR,GAAsB,uCAGzBksE,EAAY,CACvBC,UAAW,4FACXC,WAAY,0DACZC,UAAW,4DACXC,aAAc,gCACdC,gBAAiB,8CACjB9B,cAAe,sBACf+B,aAAc,4DAGHC,EAAY,qFAEZC,EAA2B,SAACz9E,GAAU,8CAAAJ,OAA6CI,EAAE,6BAErF09E,EAAkB,uCAElBC,EAAmB,SAAC3+E,EAAew4D,GAAgB,uFAAA53D,OACmBZ,EAAK,gBAAAY,OAAe43D,EAAQ,EAElGomB,EAAe,SAAC5+E,EAAew4D,GAAgB,oEAAA53D,OACIZ,EAAK,gBAAAY,OAAe43D,EAAQ,EAE/EqmB,EAAmB,CAC9BC,MAAM,GAADl+E,OAAKmR,GAAsB,gCAChCgtE,KAAK,GAADn+E,OAAKmR,GAAsB,gCAGpBitE,EAAsB,CACjCC,cAAc,GAADr+E,OAAKmR,GAAsB,+BACxCmtE,aAAa,GAADt+E,OAAKmR,GAAsB,uCAG5BotE,EAAiC,CAC5CC,aAAa,GAADx+E,OAAKmR,GAAsB,+BAG5BstE,EAAsB,CACjCtxB,MAAM,GAADntD,OAAKmR,GAAsB,+BAChCu6D,KAAK,GAAD1rE,OAAKmR,GAAsB,8BAC/BoxD,KAAK,GAADviE,OAAKmR,GAAsB,8BAC/ButE,OAAO,GAAD1+E,OAAKmR,GAAsB,iCAGtBwtE,EAAiC,sE,mCCtR9C,oEA+GO,IAAKC,EAAS,SAATA,GAAS,OAATA,EAAS,0BAATA,EAAS,gBAATA,EAAS,oCAATA,EAAS,wCAATA,CAAS,MAYTC,EAAQ,SAARA,GAAQ,OAARA,IAAQ,6BAARA,IAAQ,mCAARA,IAAQ,+CAARA,CAAQ,K,mCC3HpB,iTAgBYpuC,EAAuB,SAAvBA,GAAuB,OAAvBA,EAAuB,wDAAvBA,EAAuB,uDAAvBA,EAAuB,kDAAvBA,EAAuB,iDAAvBA,EAAuB,wDAAvBA,EAAuB,uDAAvBA,EAAuB,2EAAvBA,EAAuB,0EAAvBA,EAAuB,0CAAvBA,EAAuB,yCAAvBA,EAAuB,oCAAvBA,EAAuB,0CAAvBA,EAAuB,sCAAvBA,EAAuB,6CAAvBA,EAAuB,sCAAvBA,EAAuB,gDAAvBA,CAAuB,MA0CtBquC,EAAuB,SAACviF,GAAmC,MAAe,CACrF8Q,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBE,2BAC3Dp0C,UACD,EAOY+0C,EAAkB,SAAC/0C,GAAwB,MAAe,CACrE8Q,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBa,iBAC3D/0C,UACD,EAEYg1C,EAAuB,WAAH,MAAmB,CAClDlkC,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBc,sBAC3Dh1C,QAAS,CAAC,EACX,EAEYwiF,EAAwB,SAACxiF,GAAe,MAAe,CAClE8Q,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBW,oBAC3D70C,UACD,EAEYyiF,EAAyB,SAACziF,GAA0B,MAAe,CAC9E8Q,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBe,kBAC3Dj1C,UACD,EAEY80C,EAAuB,WAAH,MAAmB,CAClDhkC,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBY,sBAC3D90C,QAAS,GACV,EAEY0iF,EAAyB,WAAH,MAAmB,CACpD5xE,KAAK,GAADrN,OAAKjE,IAAUq0C,aAAY,KAAApwC,OAAIywC,EAAwBU,YAC3D50C,QAAS,GACV,C,mCChGD,iFASY01C,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,sCAAhBA,CAAgB,MAIfC,EAAoB,SAAC/pC,GAA4B,MAAM,CAClEkF,KAAK,GAADrN,OAAKjE,IAAU01C,YAAW,KAAAzxC,OAAIiyC,EAAiBC,mBACnD31C,QAAS4L,EACV,C,mCChBD,0FA0Ba+2E,EAA4BC,YAAyC,CAChFC,SAAU,SAACC,GAAkB,OAAKA,EAAmBC,GAAG,IAEpDC,EAAmBL,EAA0BM,eAEtCC,EAA8B,CACzCC,YAAa,SAACxjF,EAAyCojF,GAAW,OAAKC,EAAiBI,WAAWzjF,EAAOojF,EAAI,GAE1GpsE,EAAegsE,EAA0BU,gBAAgB,CAAC,GAEnD/1B,EAA0B70C,YAAY,CACjDC,KAAMlZ,IAAU8jF,oBAChB3sE,eACAiC,SAAU,CACR2qE,kBAAiB,SAAC5jF,EAAOC,GACvB,IAAMmjF,EAAMnjF,EAAOI,QAAQ+iF,IAGrBS,EAAUN,EAA4BC,YAAYxjF,EAAOojF,GAChD,MAAXS,GAAqC,UAAlBA,EAAQ7jF,OAI/BgjF,EAA0Bc,OAAO9jF,EAAO,CACtCA,MAAO,UACPojF,OAEJ,EACAW,UAAS,SAAC/jF,EAAOC,GACf,IAAMmjF,EAAMnjF,EAAOI,QAAQ+iF,IACrBS,EAAUN,EAA4BC,YAAYxjF,EAAOojF,GAC/D,GAAuB,aAAZ,OAAPS,QAAO,IAAPA,OAAO,EAAPA,EAAS7jF,OAAb,CAGA,IACM2kB,EAAqB,CACzBy+D,MACAY,UAHgBvxB,IAAIC,gBAAgBzyD,EAAOI,QAAQ4L,MAInDjM,MAAO,UAETgjF,EAA0Bc,OAAO9jF,EAAO2kB,EAPxC,CAQF,EACAs/D,UAAS,SAACjkF,EAAOC,GACf,IAAA0D,EAAuB1D,EAAOI,QAAtB+iF,EAAGz/E,EAAHy/E,IAAKzkE,EAAKhb,EAALgb,MACPklE,EAAUN,EAA4BC,YAAYxjF,EAAOC,EAAOI,QAAQ+iF,KAC9E,GAAuB,aAAZ,OAAPS,QAAO,IAAPA,OAAO,EAAPA,EAAS7jF,OAAb,CAGA,IAAM2kB,EAAsB,CAC1B3kB,MAAO,QACPojF,MACAzkE,SAEFqkE,EAA0Bc,OAAO9jF,EAAO2kB,EANxC,CAOF,I,mCChFJ,kCAMO,IAAKiwD,EAAa,SAAbA,GAAa,OAAbA,EAAa,YAAbA,EAAa,0DAAbA,EAAa,0EAAbA,EAAa,4FAAbA,EAAa,kFAAbA,CAAa,K,mCCNzB,mNAwBYnzB,EAA0C,SAA1CA,GAA0C,OAA1CA,EAA0C,kHAA1CA,EAA0C,sHAA1CA,EAA0C,sHAA1CA,EAA0C,wEAA1CA,CAA0C,MAiBzCkxB,EAAuC,WAAH,MAAmB,CAClExhE,KAAK,GAADrN,OAAKjE,IAAU2hD,gCAA+B,KAAA19C,OAAI29C,EAA2CI,oBAClG,EAMYkzB,EAAqC,SAChD7xE,EACAi+C,EACA6W,EACAkK,EACAzkD,EACA6jD,EACA3uC,GAAgB,OAEhBjV,YAAU,CACRC,IAAI,GAAD7Z,OACDmR,ylCAAY2I,0BAA4B5J,IAAO6J,OAAM,oBAAA/Z,OACpCZ,EAAK,yBAAAY,OAAwBq9C,EAAoB,WACpErjC,OAAQC,IAAWC,IACnBC,QAAS,WACPR,EAASS,IAAeC,QAAQC,IAAqBC,UACrDZ,EApBiE,CACrEtM,KAAK,GAADrN,OAAKjE,IAAU2hD,gCAA+B,KAAA19C,OAAI29C,EAA2CC,2CAoBzF4f,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyB3vC,SAEjE,EACAC,UAAW,SAACrS,GA0BV,OAxBEq1D,IAAgBsT,IAAcsP,6BAC9B5iB,IAAgBsT,IAAcE,yCAG9Br3D,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBzvC,aAG5D+iD,IAAgBsT,IAAcuP,qCAC7B7iB,IAAgBsT,IAAcC,+CAChCliD,GAEAlV,EACEwkD,YACE/+D,EACA4vB,YAAcH,EAAM,2CACpBG,YAAcH,EAAM,qCACpBlV,GACA,IAINA,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAO8wB,QAAQ5wB,IAAmBguE,+CAAgDpsB,GAE3E,CACL7mD,KAAK,GAADrN,OAAKjE,IAAU2hD,gCAA+B,KAAA19C,OAAI29C,EAA2CE,2CACjGthD,QAAS4L,EAEb,EACAyS,UAAW,SAACC,GAQV,OAPAlB,EAAS6B,aAAiB,EAAM4iD,EAAe3iD,IAAiB1J,MAAO2J,YAAgBb,KACnF2iD,GACF7jD,EAASmwC,IAAmBzvC,QAAQ6vC,IAAyBxT,YAE/D/8B,EAASS,IAAeC,QAAQC,IAAqBG,aACrDrI,IAAOC,SAASC,IAAmBiuE,wCAAyCniB,GAErE,CACL/wD,KAAK,GAADrN,OAAKjE,IAAU2hD,gCAA+B,KAAA19C,OAAI29C,EAA2CG,2CACjGvhD,QAASse,EAEb,GACC,C,mCClHL,iFASYw9B,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,qBAAhBA,CAAgB,MAIfmoC,EAAW,SAACrd,GAAa,MAAe,CACnD91D,KAAK,GAADrN,OAAKjE,IAAUq8C,MAAK,KAAAp4C,OAAIq4C,EAAiBC,UAC7C/7C,QAAS,CACPkkF,OAAQtd,GAEX,C,mCClBD,kCAAO,IAAK/a,EAAc,SAAdA,GAAc,OAAdA,EAAc,kBAAdA,EAAc,sBAAdA,EAAc,kBAAdA,EAAc,kBAAdA,CAAc,K,iJCgBpBs4B,EAAmB,UAGKtuE,EAAM,oBAAAA,IAAAokD,YAAA,KAAApkD,EAAA,CA6IjC,OA7IiCglD,YAAAhlD,EAAA,OAAA3U,IAAA,OAAAqP,MAQlC,WACE6pD,KAAKgqB,OAAS,IAAIC,IAClB,IASM9vB,EAAuC,CAC3C+vB,mBAAoB3wE,IAAO2wE,mBAE3BC,WAAY,GACZC,0BAb2D,CAC3DC,YAAa,CACXC,UAAU,EACVC,QAAQ,EACRh4C,OAAO,EACPi4C,QAAQ,EACRC,UAAU,KAWdzqB,KAAK0qB,mBAAqB1qB,KAAK2qB,0BAC/B3qB,KAAK4qB,wBAA0B5qB,KAAK6qB,+BACpC7qB,KAAK8qB,UAAYlhB,cACjB5J,KAAKgqB,OAAOe,WAAW5wB,EAAQ,IAC/B6F,KAAKgrB,mBACP,GAAC,CAAAlkF,IAAA,cAAAqP,MAED,SAA0B80E,GAA4B,IAADC,EAC7CC,EAAkBnrB,KAAKgqB,OAAOoB,qBACpCD,EAAgBE,uBAAuBC,KAAKC,QAAUN,EAAYzzE,MAAK,KAAAnO,OAAQ4hF,EAAYzzE,OAAU,GACrG2zE,EAAgBK,YAAY,oBAAyC,QAAtBN,EAAED,EAAYxkC,gBAAQ,IAAAykC,IAAI,GAC3E,GAGA,CAAApkF,IAAA,UAAAqP,MACA,SACEs1E,GAIC,IACKC,EAA8B,CAClClmF,OAJIyW,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,GAKPnV,IANCmV,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,GAOJ0rB,cALmB1rB,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG+jD,KAAKxF,oBAO7BwF,KAAKhH,IAAIyyB,EAAWC,EACtB,GAAC,CAAA5kF,IAAA,MAAAqP,MAED,SAAkBs1E,EAAmDzU,GACnE,IAAMpxE,EAAUo6D,KAAK2rB,uBAAuB5B,EAAkB0B,EAAWzU,GACzEhX,KAAK4rB,WAAWhmF,EAClB,GAGA,CAAAkB,IAAA,WAAAqP,MACA,SACEs1E,GAIC,IAHD3kF,EAAGmV,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,GACNzW,EAAMyW,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG,GACT0rB,EAAqB1rB,UAAA9R,OAAA,QAAAiP,IAAA6C,UAAA,GAAAA,UAAA,GAAG+jD,KAAKxF,mBAKvBkxB,EAAwB,CAC5Bl6E,KAAM,CACJq5C,KAAMtxC,IAAO0rD,cACbz/D,SACAsB,MACAgkF,UAAW9qB,KAAK8qB,UAChBnjD,gBACArpB,KAAMmtE,GAERntE,KAAMyrE,GAEJ/pB,KAAK0qB,oBACP1qB,KAAKgqB,OAAO6B,eAAeH,GAGzB1rB,KAAK4qB,yBACP7xB,QAAQC,IAAI0yB,EAEhB,GAAC,CAAA5kF,IAAA,mBAAAqP,MAED,WACE,MAAM,GAAN9M,OAAU22D,KAAK8qB,UAAS,KAAAzhF,OAAQ22D,KAAK8rB,mBACvC,GAAC,CAAAhlF,IAAA,YAAAqP,MAED,SAAwBs1E,EAA8BzU,GACpD,IAAMpxE,EAAUo6D,KAAK2rB,uBAnGD,SAmGyCF,EAAWzU,GACxEhX,KAAK4rB,WAAWhmF,EAClB,GAAC,CAAAkB,IAAA,oBAAAqP,MAED,WACE,IAAMg1E,EAAkBnrB,KAAKgqB,OAAOoB,qBAEpCD,EAAgBE,uBAAuBU,QAAQC,MAAMhsB,KAAK8qB,WAG1DK,EAAgBK,YAAY,eAAgBjyE,IAAO0rD,eACnDkmB,EAAgBK,YAAY,oBAAqBjyE,IAAO0yE,WACxDd,EAAgBK,YAAY,qBAAsBjyE,IAAO2yE,YACzDf,EAAgBK,YAAY,cAAeW,IAAgB5yE,IAAO+qD,aAAaloD,WAGjF,GAAC,CAAAtV,IAAA,yBAAAqP,MAED,SAAsCi2E,EAAmBX,EAAmBzU,GAQ1E,MAPe,CACbxlE,KAAI9L,wBAAA,GACCsxE,GAAS,IACZ14D,KAAMmtE,IAERntE,KAAM8tE,EAGV,GAAC,CAAAtlF,IAAA,aAAAqP,MAED,SAA0Bu1E,GACpB1rB,KAAK0qB,oBACP1qB,KAAKgqB,OAAOqC,WAAWX,GAGrB1rB,KAAK4qB,yBACP7xB,QAAQC,IAAI0yB,EAEhB,GAAC,CAAA5kF,IAAA,0BAAAqP,MACD,WACE,OAAOoD,IAAO+qD,cAAgB6nB,IAAgBG,OAAiE,SAAxD9sB,YAAcC,IAAgB8sB,qBACvF,GAAC,CAAAzlF,IAAA,+BAAAqP,MAED,WACE,OAAOoD,IAAO+qD,cAAgB6nB,IAAgBG,OAAiE,SAAxD9sB,YAAcC,IAAgB+sB,qBACvF,KAAC/wE,CAAA,CA7IiC,GAANA,EACbuuE,YAAM,EADOvuE,EAEdivE,oBAAqB,EAFPjvE,EAGdmvE,yBAA0B,EAHZnvE,EAKdqvE,eAAS,EALKrvE,EAMdqwE,iBAAmB,C","file":"static/js/20.a0b7d20a.chunk.js","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { validate } from \"uuid\";\r\nimport { AnalyticsKeys } from \"../../constants/Enums/AnalyticsKeys\";\r\nimport { appCatalogKeys } from \"../../constants/Enums/AppCatalogKeys\";\r\nimport { userSettingsKeys } from \"../../constants/Enums/UserSettingsKeys\";\r\nimport { IBotFrameworkBot } from \"../../interfaces\";\r\nimport { IScene } from \"../../interfaces/IScene\";\r\nimport { appsKeys, botsKeys, cardsKeys, IdentityAppsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport { BotType } from \"../../constants/Enums/BotType\";\r\nimport { IAppDefinition } from \"../../interfaces/IAppDefinition\";\r\nimport { ICard } from \"../../interfaces/ICard\";\r\nimport { AppListUserModes } from \"../../constants/Enums/AppList\";\r\nimport { IAadAppV2 } from \"../../interfaces/IAadappv2\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\nexport enum StateKeys {\r\n  StateKey = \"stateKey\",\r\n  Network = \"network\",\r\n  AdaptiveCards = \"adaptiveCards\",\r\n  Apps = \"apps\",\r\n  Bots = \"bots\",\r\n  Header = \"header\",\r\n  Notification = \"notification\",\r\n  UILoading = \"loading\",\r\n  UserSettings = \"usersettings\",\r\n  PreValidation = \"prevalidation\",\r\n  Validation = \"validation\",\r\n  ValidationV2 = \"validationV2\",\r\n  AnalyticsV2 = \"analyticsV2\",\r\n  AnalyticsFilterV2 = \"analyticsFilterV2\",\r\n  AnalyticsFilterV2State = \"analyticsFilterV2State\",\r\n  AppType = \"appType\",\r\n  AppPackageEditor = \"appPackageEditor\",\r\n  AppCatalog = \"appcatalog\",\r\n  AppFlighting = \"appflighting\",\r\n  Theme = \"themes\",\r\n  Changed = \"changed\",\r\n  ErrorPage = \"errorPage\",\r\n  SceneDesigner = \"sceneDesigner\",\r\n  IdentityApps = \"identity\",\r\n  FeatureFlag = \"featureFlag\",\r\n  ECSClient = \"ECSClient\",\r\n  AppUserInfo = \"AppUserInfo\",\r\n  Toolbar = \"toolbar\",\r\n  Analytics = \"analytics\",\r\n  UserContext = \"userContext\",\r\n  AppContext = \"appContext\",\r\n  AppPublishingStatusState = \"appPublishingStatusState\",\r\n  AppOwnerContactInformation = \"appOwnerContactionInformation\",\r\n  AuthenticatedImages = \"authenticatedImages\",\r\n  ComposeExtensionAsset = \"composeExtensionAsset\",\r\n  MessagingExtensionConfiguration = \"messagingExtensionConfiguration\",\r\n  ApiKeyRegistrations = \"apiKeyRegistrations\",\r\n  OAuthConfigurations = \"oAuthConfigurations\",\r\n  EntraConfigurations = \"entraConfigurations\",\r\n  SwitchLoading = \"switchLoading\"\r\n}\r\n\r\nexport const reducerBuilder =\r\n  (initialState: any, handlers: any) =>\r\n  (state = initialState, action: any) => {\r\n    if (handlers.hasOwnProperty(action.type)) {\r\n      return handlers[action.type](state, action);\r\n    } else {\r\n      return state;\r\n    }\r\n  };\r\n\r\nexport const updateState = (rootStateKey: StateKeys) => (state: any, action: any) => {\r\n  if (action.stateKey && rootStateKey !== action.stateKey) {\r\n    return { ...state, [action.stateKey || rootStateKey]: action.payload };\r\n  } else {\r\n    return action.payload;\r\n  }\r\n};\r\n\r\n// app definition util reducers\r\n\r\nexport const updateAppDefinitionError = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appsKeys.AppDefinitionValidationError]: action.payload\r\n});\r\n\r\nexport const updateAppDefinitionSelectedEnvironment = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appsKeys.AppDefinitionSelectedEnvironment]: action.payload\r\n});\r\n\r\nexport const updateAppEnvironmentMenuIndex = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appsKeys.AppEnvironmentMenuIndex]: action.payload\r\n});\r\n\r\nexport const CreateAppDefinitionBot = () => (state: any, action: any) => {\r\n  const appDefinitionCopy = { ...state.AppDefinition };\r\n  appDefinitionCopy.bots = action.payload;\r\n  return { ...state, AppDefinition: appDefinitionCopy, updatedApp: appDefinitionCopy };\r\n};\r\n\r\nexport const CreateAppDefinitionMessagingExtension = () => (state: any, action: any) => {\r\n  const appDefinitionCopy = { ...state.AppDefinition };\r\n  appDefinitionCopy.messagingExtensions = action.payload;\r\n  return { ...state, AppDefinition: appDefinitionCopy, updatedApp: appDefinitionCopy };\r\n};\r\n\r\nexport const updateAppListUserMode = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [appsKeys.AppListUserMode]: action.payload\r\n});\r\n\r\nexport const updateAppListViewModel = () => (state: any, action: any) => {\r\n  const key: string = action.userMode === AppListUserModes.Admin ? appsKeys.AppListTenantViewModel : appsKeys.AppListOwnerViewModel;\r\n\r\n  return {\r\n    ...state,\r\n    [key]: {\r\n      ...state[key],\r\n      ...action.payload\r\n    }\r\n  };\r\n};\r\n\r\nexport const filterAppList = () => (state: any, action: any) => {\r\n  const val: string = action.payload;\r\n  const isAdmin: boolean = action.userMode === AppListUserModes.Admin;\r\n\r\n  const vmKey: string = isAdmin ? appsKeys.AppListTenantViewModel : appsKeys.AppListOwnerViewModel;\r\n\r\n  const appKey: string = isAdmin ? appsKeys.AllAppDefinitions : appsKeys.AppDefinitions;\r\n\r\n  const filterFn = (x: IAppDefinition) => {\r\n    const lower: string = val.toLowerCase();\r\n    const expr: boolean = x.appName!?.toLowerCase().indexOf(lower) > -1 || x.shortName?.toLowerCase().indexOf(lower) > -1;\r\n\r\n    return validate(val) ? expr || x.teamsAppId?.indexOf(val) > -1 || x.appId?.indexOf(val) > -1 : expr;\r\n  };\r\n\r\n  let results: IAppDefinition = state[appKey];\r\n\r\n  const isSearching = state[vmKey][\"searching\"];\r\n\r\n  // filtering search results\r\n  if (isSearching) {\r\n    const searchKey = state[vmKey][\"searchResults\"];\r\n\r\n    if (!val) {\r\n      results = searchKey;\r\n    }\r\n\r\n    if (val) {\r\n      results = searchKey.filter(filterFn);\r\n    }\r\n  }\r\n\r\n  // filtering app list\r\n  if (!isSearching) {\r\n    if (!val) {\r\n      results = state[appKey];\r\n    }\r\n\r\n    if (val) {\r\n      results = state[appKey].filter(filterFn);\r\n    }\r\n  }\r\n\r\n  return {\r\n    ...state,\r\n    [vmKey]: {\r\n      ...state[vmKey],\r\n      ...{ filter: val, filterResults: results, filtering: !!val }\r\n    }\r\n  };\r\n};\r\n\r\nexport const pageAppList = () => (state: any, action: any) => {\r\n  const isAdmin: boolean = action.userMode === AppListUserModes.Admin;\r\n\r\n  const vmKey: string = isAdmin ? appsKeys.AppListTenantViewModel : appsKeys.AppListOwnerViewModel;\r\n\r\n  const appKey: string = isAdmin ? appsKeys.AllAppDefinitions : appsKeys.AppDefinitions;\r\n\r\n  const { page, results } = action.payload;\r\n\r\n  let update: IAppDefinition[] = state[appKey];\r\n\r\n  if (page === 1) {\r\n    update = results;\r\n  }\r\n\r\n  if (page > 1) {\r\n    update = state[appKey].concat(results);\r\n  }\r\n\r\n  return {\r\n    ...state,\r\n    [vmKey]: {\r\n      ...state[vmKey],\r\n      ...{ page, searching: false, filtering: false, filter: \"\" }\r\n    },\r\n    [appKey]: update\r\n  };\r\n};\r\n\r\nexport const upgradeLegacyApp = () => (state: any, action: any) => {\r\n  const id: string = action.payload.teamsAppId;\r\n  const apps: IAppDefinition[] = cloneDeep(state[appsKeys.AppDefinitions]);\r\n  const legacyApps: IAppDefinition[] = state[appsKeys.LegacyAppDefinitions].filter((a: IAppDefinition) => a.teamsAppId !== id);\r\n  const idx: number = apps.findIndex((a: IAppDefinition) => a.teamsAppId === id);\r\n  apps.splice(idx, 1, action.payload);\r\n\r\n  return {\r\n    ...state,\r\n    [appsKeys.AppDefinitions]: apps,\r\n    [appsKeys.LegacyAppDefinitions]: legacyApps,\r\n    [appsKeys.LegacyAppDefinitionsCount]: legacyApps.length\r\n  };\r\n};\r\n\r\n// bot util reducers\r\nexport const getBots = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  Bots: [...action.payload]\r\n});\r\n\r\nexport const addNewBot = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.Bots]: [...state[botsKeys.Bots], action.payload]\r\n});\r\n\r\nexport const getBotManagementBotFromFramework = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.BotFrameworkBotManagement]: action.payload\r\n});\r\n\r\nexport const getBotEvents = () => (state: any, action: any) => ({ ...state, [botsKeys.BotEvent]: action.payload });\r\n\r\nexport const getBotManagementBotFromAad = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.BotAadBotManagement]: action.payload\r\n});\r\n\r\nexport const getAppBotFromFramework = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.BotFrameworkAppBot]: action.payload\r\n});\r\n\r\nexport const getAppBotFromAad = () => (state: any, action: any) => ({ ...state, [botsKeys.BotAadAppBot]: action.payload });\r\n\r\nexport const deleteBotManagementBotFromFramework = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.Bots]: state[botsKeys.Bots].filter((bot: IBotFrameworkBot) => bot.botId !== action.payload),\r\n  [botsKeys.BotFrameworkBotManagement]: {},\r\n  [botsKeys.botDeleted]: true,\r\n  [botsKeys.DeletedBotId]: action.payload\r\n});\r\n\r\nexport const clearBotId = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.DeletedBotId]: action.payload\r\n});\r\n\r\nexport const deleteBotManagementBotFromAad = () => (state: any, action: any) => ({ ...state, [botsKeys.BotAadBotManagement]: {} });\r\n\r\nexport const getMessagingExtensionBotFromFramework = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.BotFrameworkMessagingExtension]: action.payload\r\n});\r\n\r\nexport const getMessagingExtensionBotFromAad = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.BotAadMessagingExtension]: action.payload\r\n});\r\n\r\nexport const getAppBotFromAadFailure = () => (state: any, action: any) => ({ ...state, [botsKeys.BotAadAppBot]: action.payload });\r\n\r\nexport const updateBotFramework = () => (state: any, action: any) => {\r\n  switch (action.botType) {\r\n    case BotType.AppBot: {\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotFrameworkAppBot]: action.payload\r\n      };\r\n    }\r\n    case BotType.AppMessagingExtensionBot: {\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotFrameworkMessagingExtension]: action.payload\r\n      };\r\n    }\r\n    case BotType.BotManagement: {\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotFrameworkBotManagement]: {\r\n          ...state[botsKeys.BotFrameworkBotManagement],\r\n          ...action.payload\r\n        }\r\n      };\r\n    }\r\n  }\r\n};\r\n\r\nexport const updateBotAad = () => (state: any, action: any) => {\r\n  switch (action.botType) {\r\n    case BotType.AppBot: {\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotAadAppBot]: { ...state[botsKeys.BotAadAppBot], passwordCredentials: action.payload.passwordCredentials }\r\n      };\r\n    }\r\n    case BotType.AppMessagingExtensionBot: {\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotAadMessagingExtension]: {\r\n          ...state[botsKeys.BotAadMessagingExtension],\r\n          passwordCredentials: action.payload.passwordCredentials\r\n        }\r\n      };\r\n    }\r\n    case BotType.BotManagement: {\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotAadBotManagement]: { ...state[botsKeys.BotAadBotManagement], passwordCredentials: action.payload.passwordCredentials }\r\n      };\r\n    }\r\n  }\r\n};\r\n\r\nexport const addAppPasswordAad = () => (state: any, action: any) => {\r\n  switch (action.botType) {\r\n    case BotType.AppBot: {\r\n      const newBotAadAppBot = { ...state[botsKeys.BotAadAppBot] };\r\n      newBotAadAppBot.passwordCredentials = [...newBotAadAppBot.passwordCredentials, action.payload];\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotAppPassword]: action.payload,\r\n        [botsKeys.BotAadAppBot]: newBotAadAppBot\r\n      };\r\n    }\r\n    case BotType.AppMessagingExtensionBot: {\r\n      const newBotAadMessagingExtension = { ...state[botsKeys.BotAadMessagingExtension] };\r\n      newBotAadMessagingExtension.passwordCredentials = [...newBotAadMessagingExtension.passwordCredentials, action.payload];\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotAppPassword]: action.payload,\r\n        [botsKeys.BotAadMessagingExtension]: newBotAadMessagingExtension\r\n      };\r\n    }\r\n    case BotType.BotManagement: {\r\n      const newBotAadBotManagement = { ...state[botsKeys.BotAadBotManagement] };\r\n      newBotAadBotManagement.passwordCredentials = [...newBotAadBotManagement.passwordCredentials, action.payload];\r\n      return {\r\n        ...state,\r\n        [botsKeys.BotAppPassword]: action.payload,\r\n        [botsKeys.BotAadBotManagement]: newBotAadBotManagement\r\n      };\r\n    }\r\n  }\r\n};\r\n\r\nexport const showCopyAppPasswordDialog = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.showCopyPasswordDialog]: action.payload\r\n});\r\n\r\nexport const updateBotListViewModel = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [botsKeys.BotListViewModel]: action.payload\r\n});\r\n\r\nexport const resetAppDeletedFlag = () => (state: any, action: any) => ({ ...state, [appsKeys.AppDeleted]: false });\r\n\r\nexport const resetAppDefinitionState = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [appsKeys.AppDefinition]: {},\r\n  [appsKeys.UpdatedApp]: {},\r\n  [appsKeys.AppDefinitionItem]: {},\r\n  [appsKeys.AppDefinitionSelectedEnvironment]: { id: \"\", displayName: \"\" },\r\n  [appsKeys.AppEnvironmentMenuIndex]: 0,\r\n  [appsKeys.AppDefinitionValidationError]: \"\"\r\n});\r\n\r\nexport const resetPersonalTabAddedFlag = () => (state: any, action: any) => ({ ...state, [appsKeys.PersonalTabAdded]: false });\r\n\r\nexport const resetBotDeletedFlag = () => (state: any, action: any) => ({ ...state, [botsKeys.botDeleted]: false });\r\n\r\n// Personal App\r\nexport const createOrUpdatePersonalApp = () => (state: any, action: any) => {\r\n  const updatedAppDef = { ...state.AppDefinition };\r\n  updatedAppDef.staticTabs = action.payload;\r\n  return { ...state, [appsKeys.AppDefinition]: updatedAppDef, updatedApp: {}, [appsKeys.PersonalTabAdded]: true };\r\n};\r\n\r\nexport const deletePersonalTab = () => (state: any, action: any) => {\r\n  const updatedAppDef = { ...state.AppDefinition };\r\n  updatedAppDef.staticTabs = action.payload.staticTabs;\r\n  return { ...state, [appsKeys.AppDefinition]: updatedAppDef, updatedApp: {} };\r\n};\r\n\r\n// Group Tab\r\nexport const createGroupTab = () => (state: any, action: any) => {\r\n  const updatedAppDefinition = { ...state.AppDefinition };\r\n  updatedAppDefinition.configurableTabs = action.payload;\r\n  return { ...state, [appsKeys.AppDefinition]: updatedAppDefinition, updatedApp: updatedAppDefinition };\r\n};\r\n\r\nexport const updateGroupTab = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [appsKeys.AppDefinition]: action.payload,\r\n  updatedApp: action.payload\r\n});\r\n\r\n// app catalog util reducers\r\nexport const getAppCatalogName = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  catalogName: action.payload.appCatalogName\r\n});\r\n\r\nexport const uploadApp = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appCatalogKeys.SubmittedApp]: action.payload,\r\n  [appCatalogKeys.CachedApp]: action.payload.submittedApp\r\n});\r\n\r\nexport const updateApp = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appCatalogKeys.SubmittedApp]: action.payload,\r\n  [appCatalogKeys.CachedApp]: action.payload.submittedApp\r\n});\r\n\r\nexport const cancelRequest = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appCatalogKeys.SubmittedApp]: action.payload\r\n});\r\n\r\nexport const checkIfAppAlreadyPublished = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appCatalogKeys.SubmittedApp]: action.payload\r\n});\r\n\r\nexport const getAppByTeamsAppId = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [appCatalogKeys.SubmittedApp]: action.payload\r\n});\r\n\r\n// Connectors\r\nexport const createConnector = () => (state: any, action: any) => {\r\n  const updatedAppDefinition = { ...state.AppDefinition };\r\n  updatedAppDefinition.connectors = action.payload;\r\n  return { ...state, [appsKeys.AppDefinition]: updatedAppDefinition, updatedApp: updatedAppDefinition };\r\n};\r\n\r\nexport const updateConnector = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [appsKeys.AppDefinition]: action.payload,\r\n  updatedApp: action.payload\r\n});\r\n\r\n// cards\r\n\r\nexport const getOwnerCards = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ownerCardsModel: {\r\n    ...state.ownerCardsModel,\r\n    ownerCards: [...state.ownerCardsModel.ownerCards, ...action.payload],\r\n    ownerCardListPageNumber: state.ownerCardsModel.ownerCardListPageNumber + 1\r\n  }\r\n});\r\n\r\nexport const setOwnerCardListComplete = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ownerCardsModel: { ...state.ownerCardsModel, ownerCardListComplete: action.payload }\r\n});\r\n\r\nexport const getTenantCards = () => (state: any, action: any) => ({\r\n  ...state,\r\n  tenantCardsModel: {\r\n    ...state.tenantCardsModel,\r\n    tenantCards: [...state.tenantCardsModel.tenantCards, ...action.payload],\r\n    tenantCardListPageNumber: state.tenantCardsModel.tenantCardListPageNumber + 1\r\n  }\r\n});\r\n\r\nexport const setTenantCardListComplete = () => (state: any, action: any) => ({\r\n  ...state,\r\n  tenantCardsModel: { ...state.tenantCardsModel, tenantCardListComplete: action.payload }\r\n});\r\n\r\nexport const getCard = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  Card: action.payload\r\n});\r\nexport const clearCard = (rootStateKey: StateKeys) => (state: any) => ({ ...state, ...state[rootStateKey], Card: null });\r\n\r\nexport const createCard = () => (state: any, action: any) => ({\r\n  ...state,\r\n  [cardsKeys.TenantCardsModel]: {\r\n    ...state[cardsKeys.TenantCardsModel],\r\n    [cardsKeys.TenantCards]: [...state[cardsKeys.TenantCardsModel][cardsKeys.TenantCards], action.payload]\r\n  },\r\n  [cardsKeys.OwnerCardsModel]: {\r\n    ...state[cardsKeys.OwnerCardsModel],\r\n    [cardsKeys.OwnerCards]: [...state[cardsKeys.OwnerCardsModel][cardsKeys.OwnerCards], action.payload]\r\n  }\r\n});\r\n\r\nexport const updateCard = () => (state: any, action: any) => {\r\n  const tenantCardList = state[cardsKeys.TenantCardsModel][cardsKeys.TenantCards].map((c: ICard) => {\r\n    if (c.id === action.payload.data.id) {\r\n      return action.payload.data;\r\n    }\r\n    return c;\r\n  });\r\n  const ownerCardList = state[cardsKeys.OwnerCardsModel][cardsKeys.OwnerCards].map((c: ICard) => {\r\n    if (c.id === action.payload.data.id) {\r\n      return action.payload.data;\r\n    }\r\n    return c;\r\n  });\r\n  return {\r\n    ...state,\r\n    [cardsKeys.TenantCardsModel]: {\r\n      ...state[cardsKeys.TenantCardsModel],\r\n      [cardsKeys.TenantCards]: tenantCardList\r\n    },\r\n    [cardsKeys.OwnerCardsModel]: {\r\n      ...state[cardsKeys.OwnerCardsModel],\r\n      [cardsKeys.OwnerCards]: ownerCardList\r\n    },\r\n    Card: action.payload.data\r\n  };\r\n};\r\n\r\nexport const deleteCard = () => (state: any, action: any) => {\r\n  const tenantCardList = state[cardsKeys.TenantCardsModel][cardsKeys.TenantCards].filter((c: ICard) => c.id !== action.payload);\r\n  const ownerCardList = state[cardsKeys.OwnerCardsModel][cardsKeys.OwnerCards].filter((c: ICard) => c.id !== action.payload);\r\n  return {\r\n    ...state,\r\n    [cardsKeys.TenantCardsModel]: {\r\n      ...state[cardsKeys.TenantCardsModel],\r\n      [cardsKeys.TenantCards]: tenantCardList\r\n    },\r\n    [cardsKeys.OwnerCardsModel]: {\r\n      ...state[cardsKeys.OwnerCardsModel],\r\n      [cardsKeys.OwnerCards]: ownerCardList\r\n    }\r\n  };\r\n};\r\n\r\n// user settings util reducers\r\nexport const getLanguage = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [userSettingsKeys.Language]: action.payload\r\n});\r\n\r\nexport const isUserDevX = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [userSettingsKeys.IsUserDevX]: action.payload\r\n});\r\n\r\nexport const isPrivilegedTeamsAdmin = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [userSettingsKeys.IsPrivilegedTeamsAdmin]: action.payload\r\n});\r\n\r\nexport const isSideLoadingInteractionEnabled = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [userSettingsKeys.IsSideloadingEnabled]: action.payload\r\n});\r\n\r\nexport const getTenantSettings = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  [userSettingsKeys.TenantSettings]: action.payload\r\n});\r\n\r\n// Scenes\r\nexport const getScenes = (rootStateKey: StateKeys) => (state: any, action: any) => {\r\n  const list = action.payload;\r\n  const scenes = list.filter((scene: IScene) => !scene.isSample);\r\n  const samples = list.filter((scene: IScene) => scene.isSample);\r\n  return { ...state, ...state[rootStateKey], scenes, samples };\r\n};\r\n\r\nexport const getScene = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  scene: action.payload\r\n});\r\n\r\nexport const updateDrawing = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  drawing: { ...state[\"drawing\"], drawings: action.payload }\r\n});\r\n\r\nexport const deleteDrawing = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  drawing: { ...state[\"drawing\"], drawings: [] }\r\n});\r\n\r\nexport const createScene = (rootStateKey: StateKeys) => (state: any, action: any) => {\r\n  const key = action.payload?.isSample ? \"samples\" : \"scenes\";\r\n  return {\r\n    ...state,\r\n    ...state[rootStateKey],\r\n    [key]: [...state?.[key], action.payload],\r\n    scene: action.payload\r\n  };\r\n};\r\n\r\nexport const importScene = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  scene: action.payload\r\n});\r\n\r\nexport const sceneDeleteDialogStatus = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  isSceneDeleteDialogOpen: action.payload\r\n});\r\n\r\nexport const sceneTemplatesDialogStatus = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  isSceneTemplatesDialogOpen: action.payload\r\n});\r\n\r\nexport const cleanScene = () => (state: any, action: any) => ({ ...state, scene: null });\r\n\r\nexport const addImageToImagesToUploadList = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  imagesToUpload: [...state.imagesToUpload, action.payload]\r\n});\r\n\r\nexport const cleanImagesToUploadList = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  imagesToUpload: []\r\n});\r\nexport const CanvasInitStatus = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  isCanvasInitialized: action.payload\r\n});\r\nexport const sceneAppDialogStatus = () => (state: any, action: any) => ({ ...state, isSceneOnlyAppDialogOpen: action.payload });\r\nexport const sceneShareDialogStatus = () => (state: any, action: any) => ({ ...state, isSceneShareDialogOpen: action.payload });\r\n\r\nexport const blinkImage = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  blinkImage: action.payload\r\n});\r\n\r\nexport const sceneLoader = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  sceneLoader: action.payload\r\n});\r\n\r\nexport const updateDrawingState = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  drawing: action.payload\r\n});\r\n\r\nexport const forceUpdateSceneDesigner = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  forceUpdate: !state.forceUpdate\r\n});\r\n\r\nexport const updateScene = (rootStateKey: StateKeys) => (state: any, action: any) => {\r\n  const key = action.payload?.isSample ? \"samples\" : \"scenes\";\r\n  const newScenes = state[key].map((s: IScene) => {\r\n    if (s.id === action.payload.id) {\r\n      return action.payload;\r\n    }\r\n    return s;\r\n  });\r\n  return { ...state, ...state[rootStateKey], [key]: newScenes, scene: action.payload };\r\n};\r\n\r\nexport const deleteScene = (rootStateKey: StateKeys) => (state: any, action: any) => {\r\n  const key = action.payload?.isSample ? \"samples\" : \"scenes\";\r\n  const updatedList = state[key].filter((s: IScene) => s.id !== action.payload.id);\r\n  return { ...state, ...state[rootStateKey], [key]: updatedList, scene: null };\r\n};\r\n\r\nexport const uploadScene = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  uploadStatus: action.payload\r\n});\r\n\r\nexport const setSampleSceneMode = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  sampleMode: action.payload\r\n});\r\n\r\n// Identity Platform\r\nexport const getIdentityApps = () => (state: any, action: any) => {\r\n  const apps = action.payload.apps;\r\n  return { ...state, ...state[StateKeys.IdentityApps], apps: [...apps] };\r\n};\r\n\r\nexport const getIdentityAppInfo = () => (state: any, action: any) => {\r\n  const app = action.payload && action.payload.length > 0 ? action.payload[0] : [{} as IAadAppV2];\r\n  return { ...state, ...state[StateKeys.IdentityApps], app: { ...app } };\r\n};\r\n\r\nexport const createIdentityApp = () => (state: any, action: any) => {\r\n  const iApp = action.payload ? action.payload : null;\r\n  return { ...state, ...state[StateKeys.IdentityApps], apps: [...state.apps, iApp], app: iApp };\r\n};\r\n\r\nexport const updatePassword = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[StateKeys.IdentityApps],\r\n  oneTimePass: action.payload\r\n});\r\n\r\nexport const createNewPassword = () => (state: any, action: any) => {\r\n  const { payload } = action;\r\n  const newPassword = { endDate: null, hint: payload.hint, startDate: null, value: null, keyId: payload.id };\r\n  const newAadApp = { ...state.app };\r\n  const newPasswords = [...newAadApp.passwordCredentials, newPassword];\r\n  newAadApp.passwordCredentials = newPasswords;\r\n  return { ...state, ...state[StateKeys.IdentityApps], app: newAadApp, oneTimePass: action.payload };\r\n};\r\n\r\nexport const deleteAadAppPassword = () => (state: any, action: any) => {\r\n  const { payload } = action;\r\n  return { ...state, app: { ...state.app, passwordCredentials: payload.passwordCredentials } };\r\n};\r\n\r\nexport const showErrorMessage = (stateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[stateKey],\r\n  failedAction: action.type\r\n});\r\n\r\nexport const clearIdentityApp = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[StateKeys.IdentityApps],\r\n  app: action.payload,\r\n  failedAction: null\r\n});\r\n\r\nexport const addTeamsApp = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[StateKeys.IdentityApps],\r\n  [IdentityAppsKeys.TeamsApp]: action.payload\r\n});\r\n\r\nexport const updateTeamsApp = () => (state: any, action: any) => ({\r\n  ...state,\r\n  AppDefinition: action.payload,\r\n  [IdentityAppsKeys.TeamsApp]: action.payload\r\n});\r\n\r\nexport const getAadAppCandidates = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[StateKeys.IdentityApps],\r\n  aadAppCandidates: action.payload\r\n});\r\n\r\nexport const clearAadAppCandidates = () => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[StateKeys.IdentityApps],\r\n  aadAppCandidates: []\r\n});\r\n\r\n// Feature flags\r\n\r\nexport const setIsSceneDesignerEnabled = () => (state: any, action: any) => ({ ...state, isSceneDesignerEnabled: action.payload });\r\n\r\nexport const setECSClientLoaded = () => (state: any, action: any) => ({ ...state, isECSClientLoaded: action.payload });\r\n\r\n// User info\r\nexport const updateAppUserInfo = () => (state: any, action: any) => ({\r\n  ...state,\r\n  aadId: action.payload.aadId,\r\n  displayName: action.payload.displayName,\r\n  isAppAdmin: action.payload.isAppAdmin,\r\n  isMicrosoftEmployee: action.payload.isMicrosoftEmployee,\r\n  isTenantAdmin: action.payload.isTenantAdmin,\r\n  username: action.payload.username\r\n});\r\n\r\nexport const getAppDefinitionOwnerCandidates = () => (state: any, action: any) => ({\r\n  ...state,\r\n  AppDefinitionOwnerCandidates: action.payload\r\n});\r\n\r\nexport const clearAppDefinitionOwnerCandidates = () => (state: any, action: any) => ({ ...state, AppDefinitionOwnerCandidates: [] });\r\n// userContext\r\n\r\nexport const updateUserContext = () => (state: any, action: any) => ({ ...state, ...action.payload });\r\n\r\n// Analytics\r\nexport const loadAnalytics = (key: AnalyticsKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  [action.appId]: {\r\n    ...state[action.appId],\r\n    [key]: {\r\n      isLoadingCompleted: false\r\n    }\r\n  }\r\n});\r\n\r\nexport const getAnalytics = (key: AnalyticsKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  [action.appId]: {\r\n    ...state[action.appId],\r\n    [key]: {\r\n      data: action.payload,\r\n      isLoadingCompleted: true\r\n    }\r\n  }\r\n});\r\n\r\nexport const setFailureAnalytics = (key: AnalyticsKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  [action.appId]: {\r\n    ...state[action.appId],\r\n    [key]: {\r\n      isLoadingCompleted: true,\r\n      hasFailed: true\r\n    }\r\n  }\r\n});\r\n\r\n// Publishing status\r\nexport const updatePublishingStatus = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  appPublishingStaticsRepoStatus: action.payload.appPublishingStaticsRepoStatus,\r\n  appPublishingOneCdnStatus: action.payload.appPublishingOneCdnStatus,\r\n  appPublishingCdnStatus: action.payload.appPublishingCdnStatus,\r\n  appPublishingOmexStatus: action.payload.appPublishingOmexStatus,\r\n  appPublishingStoreStatus: action.payload.appPublishingStoreStatus\r\n});\r\n\r\nexport const setPublishingStatusFailure = (rootStateKey: StateKeys) => (state: any, action: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  errors: {\r\n    status: action.payload.status,\r\n    traceId: action.payload.headers[\"x-correlation-id\"],\r\n    timestamp: action.payload.headers.date\r\n  }\r\n});\r\n\r\nexport const clearPublishingStatus = (rootStateKey: StateKeys) => (state: any) => ({\r\n  ...state,\r\n  ...state[rootStateKey],\r\n  appPublishingStaticsRepoStatus: [],\r\n  appPublishingOneCdnStatus: [],\r\n  appPublishingCdnStatus: [],\r\n  appPublishingOmexStatus: [],\r\n  appPublishingStoreStatus: [],\r\n  errors: { status: undefined, traceId: \"\", timestamp: \"\" }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum TelemetryObjectId {\r\n  PageSaveButton = \"page-save-button\",\r\n  PageRevertButton = \"page-revert-button\",\r\n  ToolbarSaveButton = \"toolbar-save-button\",\r\n  ToolbarRevertButton = \"toolbar-revert-button\",\r\n\r\n  // Main navigation\r\n  NavigationMainHome = \"navigation-main-home\",\r\n  NavigationMainApps = \"navigation-main-apps\",\r\n  NavigationMainTools = \"navigation-main-tools\",\r\n  NavigationMainChangelogs = \"navigation-main-changelogs\",\r\n\r\n  // App navigation\r\n  NavigationAppOverview = \"navigation-app-overview\",\r\n  NavigationAppOwners = \"navigation-app-owners\",\r\n  NavigationAppAnalytics = \"navigation-app-analytics\",\r\n  NavigationAppEnvironments = \"navigation-app-environments\",\r\n  NavigationAppPlanAndPrice = \"navigation-app-plan-and-price\",\r\n  NavigationAppDetails = \"navigation-app-details\",\r\n  NavigationAppBranding = \"navigation-app-branding\",\r\n  NavigationAppFeatures = \"navigation-app-features\",\r\n  NavigationAppPackageEditor = \"navigation-app-package-editor\",\r\n  NavigationAppPermissions = \"navigation-app-permissions\",\r\n  NavigationAppLanguages = \"navigation-app-languages\",\r\n  NavigationAppSingleSignOn = \"navigation-app-single-sign-on\",\r\n  NavigationAppDomains = \"navigation-app-domains\",\r\n  NavigationAppAdvancedAppContent = \"navigation-app-advanced-app-content\",\r\n  NavigationAppAdvancedFirstParty = \"navigation-app-advanced-first-party\",\r\n  NavigationAppAdvancedConfigurableProperties = \"navigation-app-advanced-configurable-properties\",\r\n  NavigationAppAdvancedDistributeManifest = \"navigation-app-advanced-distribute-manifest\",\r\n  NavigationAppAdvancedDistributeFlights = \"navigation-app-advanced-distribute-flights\",\r\n  NavigationAppAdvancedDistributeNewFlights = \"navigation-app-advanced-distribute-new-flights\",\r\n  NavigationAppAdvancedDistributeFlightsPR = \"navigation-app-advanced-distribute-flights-PR\",\r\n  NavigationAppAdvancedDistributeOrganizaton = \"navigation-app-advanced-distribute-organization\",\r\n  NavigationAppAdvancedDistributeStore = \"navigation-app-advanced-distribute-store\",\r\n  NavigationAppAdvancedWithdraw = \"navigation-app-advanced-withdraw\",\r\n  NavigationAppContactInfo = \"navigation-app-contact-info\",\r\n  NavigationAppValidationV2 = \"navigation-app-validation-v2\",\r\n  NavigationAppAnalyticsV2 = \"navigation-app-analytics-v2\",\r\n  NavigationToolIdentityOverview = \"navigation-tool-identity-overview\",\r\n  NavigationToolIdentitySecrets = \"navigation-tool-identity-secrets\",\r\n  NavigationDevelopWithTeamsToolkit = \"navigation-app-develop-with-teams-toolkit\",\r\n\r\n  // Home\r\n  HomeGetStartedButton = \"home-get-started-button\",\r\n  HomeM365PlatformDocsButton = \"home-m365-platform-docs-button\",\r\n  HomeTeamsPlatformDocsButton = \"home-teams-platform-docs-button\",\r\n  HomeSampleAppButton = \"home-sample-app-button\",\r\n  HomeVSCodeButton = \"home-vs-code-button\",\r\n  HomeUIM365kitButton = \"home-ui-m365-kit-button\",\r\n  HomeUIToolkitButton = \"home-ui-toolkit-button\",\r\n  HomeInclusiveDesignButton = \"home-inclusive-design-button\",\r\n  HomeUIChartsButton = \"home-ui-charts-button\",\r\n  HomeAppCertificationButton = \"home-app-cert-button\",\r\n  HomeACATButton = \"home-acat-button\",\r\n  HomeSampleAppsRepositoryButton = \"home-sample-apps-repository-button\",\r\n  HomeDeveloperBlogButton = \"home-developer-blog-button\",\r\n  HomeAppComplianceButton = \"home-app-compliance-button\",\r\n  HomePageCopilotDeclarativeAgents = \"home-page-copilot-declarative-agents\",\r\n  HomePageCopilotCustomEngineAgents = \"home-page-copilot-custom-engine-agents\",\r\n  HomePageCopilotVSCode = \"home-page-copilot-vs-code\",\r\n  HomePageCopilotMCS = \"home-page-copilot-mcs\",\r\n\r\n  // Overview\r\n  DeleteAppButton = \"app-overview-delete-button\",\r\n  LeaveAppButton = \"app-overview-leave-button\",\r\n\r\n  // Owners\r\n  OwnersAddOwnerButton = \"owners-add-owner-button\",\r\n  OwnersAddOwnerToolBarButton = \"owners-add-owner-toolbar-button\",\r\n\r\n  // Branding\r\n  BrandingColorIconButton = \"branding-color-icon-button\",\r\n  BrandingOutlineIconButton = \"branding-outline-icon-button\",\r\n  BrandingAccentColorButton = \"branding-accent-color-button\",\r\n\r\n  // Validation Tool\r\n  ValidationToolUploadPackageButton = \"tool-validation-upload-package-button\",\r\n\r\n  // Group App\r\n  SharepointImageButton = \"group-app-spx-image-button\",\r\n\r\n  // Tools\r\n  ToolsBotManagement = \"tools-bot-management-button\",\r\n  ToolsSceneDesigner = \"tools-scene-designer-button\",\r\n  ToolsCardDesigner = \"tools-card-designer-button\",\r\n  ToolsIdentityManagement = \"tools-identity-management-button\",\r\n  ToolsStorePackageValidation = \"tools-store-package-validation-button\",\r\n  ToolsTeamsFigma = \"tools-teams-figma-button\",\r\n  ToolsAbleFigma = \"tools-able-figma-button\",\r\n  ToolsWC3Standards = \"tools-wc3-standards-button\",\r\n  ToolsInclusiveDesign = \"tools-inclusive-design-button\",\r\n  ToolsACATButton = \"tools-acat-button\",\r\n  ToolsAPIKeyRegistration = \"tools-api-key-registration-button\",\r\n  ToolsOAuthConfiguration = \"tools-oauth-configuration-button\",\r\n  ToolsEntraSSOConfiguration = \"tools-entra-sso-configuration-button\",\r\n\r\n  // App toolbar\r\n  AppPreviewInTeams = \"app-toolbar-preview-in-teams-button\",\r\n  AppDistribute = \"app-toolbar-distribute-button\",\r\n\r\n  // App list\r\n  AppListItem = \"app-list-item\",\r\n\r\n  // App Distribute dialog\r\n  AppDistributeDownloadAppPackage = \"app-distribute-download-app-package-button\",\r\n  AppDistributeFlight = \"app-distribute-flight-button\",\r\n  AppDistributeInstall = \"app-distribute-install-button\",\r\n  AppDistributeSubmit = \"app-distribute-submit-button\",\r\n  AppDistributeWithdraw = \"app-distribute-withdraw-button\",\r\n\r\n  // App features\r\n  AppFeaturesPersonalApp = \"app-features-personal-app-button\",\r\n  AppFeaturesGroupApp = \"app-features-group-app-button\",\r\n  AppFeaturesBot = \"app-features-bot-button\",\r\n  AppFeaturesMessagingExtension = \"app-features-messaging-extension-button\",\r\n  AppFeaturesConnector = \"app-features-connector-button\",\r\n  AppFeaturesScene = \"app-features-scene-button\",\r\n  AppFeaturesMeeting = \"app-features-meeting-button\",\r\n  AppFeaturesActivity = \"app-features-activity-button\",\r\n\r\n  // Submit to store\r\n  AppDistributePublishStoreDownloadAppPackage = \"app-distribute-publish-store-download-app-package-button\",\r\n  AppDistributePublishStoreOpenPartnerCenter = \"app-distribute-publish-store-open-partner-center-button\",\r\n\r\n  // Cards\r\n  ListItemCard = \"list-item-card-button\",\r\n\r\n  // 404\r\n  UserLanded404 = \"user-landed-404\",\r\n\r\n  // Common items\r\n  PageSaveAndRevertAdvanced = \"page-save-and-revert-advanced\",\r\n  PageSaveAndRevertBotSetup = \"page-save-and-revert-bot-setup\",\r\n  PageSaveAndRevertMessagingExtensionSetup = \"page-save-and-revert-messaging-extension-setup\",\r\n  PageSaveAndRevertSceneSetup = \"page-save-and-revert-scene-setup\",\r\n  PageSaveAndRevertSSOSetup = \"page-save-and-revert-sso-setup\",\r\n  PageSaveAndRevertPersonalAppSetup = \"page-save-and-revert-personal-app-setup\",\r\n  PageSaveAndRevertPermissionsSetup = \"page-save-and-revert-permission-setup\",\r\n  PageSaveAndRevertMeetingSetup = \"page-save-and-revert-meeting-setup\",\r\n  PageSaveAndRevertFirstPartySetup = \"page-save-and-revert-first-party-setup\",\r\n  PageSaveAndRevertBasicInfoSetup = \"page-save-and-revert-basic-info-setup\",\r\n  PageSaveAndRevertConnectorSetup = \"page-save-and-revert-connector-setup\",\r\n  PageSaveAndRevertGroupAppSetup = \"page-save-and-revert-group-app-setup\",\r\n  PageSaveAndRevertActivitySetup = \"page-save-and-revert-activity-setup\",\r\n  PageSaveAndRevertAdminSettingsSetup = \"page-save-and-revert-admin-settings-setup\",\r\n  ToolbarSaveAndRevertAppConfig = \"toolbar-save-and-revert-app-config-setup\",\r\n  PageSaveAndRevertContactInfo = \"page-save-and-revert-contact-info-setup\",\r\n\r\n  // Analytics\r\n  AnalyticsPageLoad = \"analytics-page-load\",\r\n  AnalyticsActiveUsersTabButton = \"analytics-active-users-tab-button\",\r\n  AnalyticsFilterApplyButton = \"analytics-filter-apply-button\",\r\n  AnalyticsDatePickerButton = \"analytics-date-picker-button\",\r\n  AnalyticsMetricDialogButton = \"analytics-metric-dialog-button\",\r\n\r\n  // Develop\r\n  OpenInVSCode = \"open-in-vscode\",\r\n  OpenInVS = \"open-in-vs\",\r\n\r\n  // App Validation\r\n  AppValidationDownloadPackage = \"app-validation-download-package-button\",\r\n  AppValidationDownloadReport = \"app-validation-download-report-button\",\r\n  AppValidationPublishButton = \"app-validation-publish-button\",\r\n  AppValidationExternalGuidelineLink = \"app-validation-external-guideline-link\",\r\n  AppValidationExternalPolicyNumberLink = \"app-validation-external-policy-number-link\",\r\n\r\n  // App Validation Pages\r\n  AppValidationLeftNav = \"app-validation-left-nav\",\r\n  AppValidationListPage = \"app-validation-list-page\",\r\n  AppValidationDetailsPage = \"app-validation-details-page\",\r\n\r\n  // App Validation Hero Card\r\n  AppValidationHeroNavigateToValidation = \"app-validation-hero-navigate-to-validation\",\r\n  AppValidationHeroNewValidation = \"app-validation-hero-new-validation\",\r\n  AppValidationHeroStatus = \"app-validation-hero-status\",\r\n  AppValidationV2Created = \"app-validation-v2-created\",\r\n\r\n  LOBPublishNewRequest = \"lob-publish-new-request\",\r\n  LandedAppsListPage = \"landed-apps-list-page\", // Bi when user lands on /apps page\r\n  CreateAppDefinition = \"create-appdefinition\", // Bi when user creates a new app\r\n  DuplicateAppDefinition = \"duplicate-appdefinition\", // Bi when user duplicates existing app\r\n  ImportAppDefinition = \"import-appdefinition\", // Bi when user creates a new app by importing\r\n  LandedAppsDetailsPage = \"landed-apps-details-page\", // Bi when user lands on /apps/{appId} page\r\n  PartnerCenterAppPkgValidation = \"partner-center-app-pkg-validation\", // Bi when user validates app package using PC Api\r\n  AppConfigToolbarSaveAndRevert = \"app-config-toolbar-save-and-revert\", // Bi when user saves or reverts on App details [this is a global button]\r\n\r\n  // Api Key Registration\r\n  NewApiKeyRegistrationSuccess = \"new-api-key-registration-success\",\r\n  NewApiKeyRegistrationFailure = \"new-api-key-registration-failure\",\r\n  NewApiKeyRegistrationUpdate = \"new-api-key-registration-update\",\r\n  NewApiKeyRegistrationDelete = \"new-api-key-registration-delete\",\r\n\r\n  NewApiKeySecretCreateSuccess = \"new-api-key-secret-create-success\",\r\n  NewApiKeySecretCreateFailure = \"new-api-key-secret-create-failure\",\r\n  NewApiKeySecretDelete = \"new-api-key-secret-delete\",\r\n\r\n  NewApiKeyRegistrationPageVisit = \"new-api-key-registration-page-visit\",\r\n  ApiKeyRegistrationDetailPageVisit = \"api-key-registration-detail-page-visit\",\r\n  ApiKeyRegistrationListPageVisit = \"api-key-registration-list-page-visit\",\r\n\r\n  // OAuth Configuration\r\n  NewOAuthConfigurationSuccess = \"new-oauth-configuration-success\",\r\n  NewOAuthConfigurationFailure = \"new-oauth-configuration-failure\",\r\n  OAuthConfigurationUpdateSuccess = \"oauth-configuration-update-success\",\r\n  OAuthConfigurationUpdateFailure = \"oauth-configuration-update-failure\",\r\n  OAuthConfigurationDelete = \"oauth-configuration-delete\",\r\n\r\n  NewOAuthConfigurationPageVisit = \"new-oauth-configuration-page-visit\",\r\n  OAuthConfigurationDetailPageVisit = \"oauth-configuration-detail-page-visit\",\r\n  OAuthConfigurationListPageVisit = \"oauth-configuration-list-page-visit\",\r\n  OAuthConfigurationListCopyId = \"oauth-configuration-list-copy-id\",\r\n  OAuthConfigurationDetailsCopyId = \"oauth-configuration-details-copy-id\",\r\n  OAuthConfigurationTooltipView = \"oauth-configuration-tooltip-view\",\r\n  OAuthNewConfigurationAbandon = \"oauth-new-configuration-abandon\",\r\n\r\n  // Entra Configuration\r\n  NewEntraConfigurationSuccess = \"new-entra-configuration-success\",\r\n  NewEntraConfigurationFailure = \"new-entra-configuration-failure\",\r\n  EntraConfigurationUpdateSuccess = \"entra-configuration-update-success\",\r\n  EntraConfigurationUpdateFailure = \"entra-configuration-update-failure\",\r\n  EntraConfigurationDelete = \"entra-configuration-delete\",\r\n\r\n  NewEntraConfigurationPageVisit = \"new-entra-configuration-page-visit\",\r\n  EntraConfigurationDetailPageVisit = \"entra-configuration-detail-page-visit\",\r\n  EntraConfigurationListPageVisit = \"entra-configuration-list-page-visit\",\r\n  EntraConfigurationListCopyId = \"entra-configuration-list-copy-id\",\r\n  EntraConfigurationDetailsCopyId = \"entra-configuration-details-copy-id\",\r\n  EntraConfigurationTooltipView = \"entra-configuration-tooltip-view\",\r\n  EntraNewConfigurationAbandon = \"entra-new-configuration-abandon\",\r\n  EntraConfigurationListAppIdUriCopy = \"entra-configuration-list-app-id-uri-copy\",\r\n  EntraConfigurationDetailsAppIdUriCopy = \"entra-configuration-details-app-id-uri-copy\",\r\n\r\n  // Links\r\n  ExternalLinkOpen = \"external-link-open\",\r\n\r\n  AnalyticsV2APISuccess = \"analytics-v2-api-success\",\r\n  AnalyticsV2APIFailure = \"analytics-v2-api-failure\",\r\n  AnalyticsV2WidgetLoaded = \"analytics-v2-widget-loaded\",\r\n  AnalyticsV2WidgetInteraction = \"analytics-v2-widget-interaction\",\r\n  AnalyticsMultiWidgetTabSwitch = \"analytics-multi-widget-tab-switch\",\r\n  AnalyticsMetricsDefinitionButtonOpen = \"analytics-metrics-definition-button-open\",\r\n  AnalyticsEntryButtonDashboard = \"analytics-entry-button-dashboard\",\r\n\r\n  // App Package Editor\r\n  AppPackageEditorSaveSuccess = \"app-package-editor-save-success\",\r\n  AppPackageEditorSaveFail = \"app-package-editor-save-fail\",\r\n\r\n  // Retrive App Package V2\r\n  retriveAppPackageSuccess = \"retrive-app-package-success\",\r\n  retriveAppPackageFail = \"retrive-app-package-fail\",\r\n  editPackageEditorFile = \"edit-package-editor-file\",\r\n\r\n  // Environments and global variables\r\n  AppEnvironmentCount = \"app-environment-count\",\r\n  IsAppEnvironmentPresent = \"is-app-environment-present\",\r\n  IsAppGlobalVariablePresent = \"is-app-global-variable-present\"\r\n  \r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { Configuration, LogLevel } from \"@azure/msal-browser\";\r\nimport { Config } from \"../../../constants/Config\";\r\nimport { TelemetryEventName } from \"../../../constants/Enums/TelemetryEventName\";\r\nimport Logger from \"../../telemetry/Logger\";\r\n\r\nexport const apiScopes = [`${Config.baseUrl}/AppDefinitions.ReadWrite`, `${Config.baseUrl}/Cards.ReadWrite`];\r\nexport const authSvcApiScopes = [`${Config.authServiceScope}/Region.ReadWrite`];\r\nexport const supportCentralScopes = [`${Config.supportCentralAuthSource}/.default`];\r\n// eslint-disable-next-line no-restricted-globals\r\nexport const apiTokenRequest = { scopes: [...apiScopes], redirectStartPage: window.location.href };\r\n// eslint-disable-next-line no-restricted-globals\r\nexport const authSvcApiTokenRequest = { scopes: [...authSvcApiScopes], redirectStartPage: window.location.href };\r\n\r\n// eslint-disable-next-line no-restricted-globals\r\nconst redirectUri = `${window.location.origin}/home`;\r\nexport const msalConfig: Configuration = {\r\n  auth: {\r\n    clientId: process.env.REACT_APP_CLIENT_ID!,\r\n    redirectUri,\r\n    authority: process.env.REACT_APP_LOGIN_AUTHORITY,\r\n    postLogoutRedirectUri: redirectUri\r\n  },\r\n  cache: {\r\n    cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n    storeAuthStateInCookie: false // Set this to \"true\" if you are having issues on IE11 or Edge\r\n  },\r\n  system: {\r\n    tokenRenewalOffsetSeconds: 100,\r\n    iframeHashTimeout: 10000,\r\n    loggerOptions: {\r\n      logLevel: LogLevel.Error,\r\n      loggerCallback: (level, message, containsPii) => {\r\n        if (containsPii) {\r\n          return;\r\n        }\r\n        switch (level) {\r\n          case LogLevel.Error:\r\n            Logger.LogError(TelemetryEventName.MsalLibrary, `Error: ${message}`);\r\n            return;\r\n          default:\r\n            return;\r\n        }\r\n      },\r\n      piiLoggingEnabled: false\r\n    }\r\n  }\r\n};\r\n","export enum appCatalogKeys {\r\n  CachedApp = \"CachedApp\",\r\n  SubmittedApp = \"SubmittedApp\",\r\n  CatalogName = \"catalogName\",\r\n  AppPublishingStatus =\"AppPublishingStatus\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum userSettingsKeys {\r\n  Language = \"Language\",\r\n  IsSideloadingEnabled = \"IsSideloadingEnabled\",\r\n  IsUserDevX = \"IsUserDevX\",\r\n  IsPrivilegedTeamsAdmin = \"IsPrivilegedTeamsAdmin\",\r\n  TenantSettings = \"TenantSettings\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum UpdateTypes {\r\n  Update = \"Update_App\",\r\n  Revert = \"Revert_App\",\r\n  Reset = \"Reset_App\",\r\n  ResetPersonalTabAddedFlag = \"Reset_PersonalTabAdded\",\r\n  ResetBotDeleted = \"Reset_BotDeleted\"\r\n}\r\n","export const randomString = (n = 4) =>\r\n  Math.random()\r\n    .toString(16)\r\n    .slice(2, n + 2);\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport update from \"lodash/update\";\r\nimport set from \"lodash/set\";\r\n\r\nimport { appsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport { UpdateTypes } from \"../../constants/Enums/UpdateTypes\";\r\nimport { GetAppDefinitionsStates } from \"../../constants/Enums/GetAppDefinitionsStates\";\r\nimport { AppListUserModes } from \"../../constants/Enums/AppList\";\r\nimport { IAppDefinition, IAppListViewModel, IBot, SortDirections } from \"../../interfaces\";\r\nimport { UploadIconType } from \"../../constants/Enums/UploadIconType\";\r\nimport { IAppEnvironment } from \"../../interfaces/IAppEnvironment\";\r\nimport { LayoutType } from \"../../components/layoutToggle\";\r\nimport {\r\n  StateKeys,\r\n  CreateAppDefinitionBot,\r\n  CreateAppDefinitionMessagingExtension,\r\n  createGroupTab,\r\n  updateGroupTab,\r\n  resetAppDeletedFlag,\r\n  createConnector,\r\n  updateConnector,\r\n  createOrUpdatePersonalApp,\r\n  deletePersonalTab,\r\n  updateAppDefinitionSelectedEnvironment,\r\n  updateAppEnvironmentMenuIndex,\r\n  updateAppDefinitionError,\r\n  resetPersonalTabAddedFlag,\r\n  resetAppDefinitionState,\r\n  updateAppListUserMode,\r\n  updateAppListViewModel,\r\n  filterAppList,\r\n  pageAppList,\r\n  getAppDefinitionOwnerCandidates,\r\n  clearAppDefinitionOwnerCandidates,\r\n  upgradeLegacyApp\r\n} from \"./ReducerUtils\";\r\nimport { IUser } from \"../../interfaces/IAppOwner\";\r\nimport { randomString } from \"../../utils/randomString\";\r\n\r\nexport enum AppDefinitionActionTypes {\r\n  // App Definitions\r\n  GetMyAppDefinitions = \"AppDefinition_GetMyAppDefinitions\",\r\n  GetLatestPublicManifestVersion = \"AppDefinition_GetLatestPublicManifestVersion\",\r\n  UpgradeToLatestPublicManifestVersion = \"AppDefinition_UpgradeToLatestPublicManifestVersion\",\r\n  GetMyAppDefinitionsCount = \"AppDefinition_GetMyAppDefinitionsCount\",\r\n  GetMyLegacyAppDefinitions = \"AppDefinition_GetMyLegacyAppDefinitions\",\r\n  GetMyLegacyAppDefinitionsCount = \"AppDefinition_GetMyLegacyAppDefinitionsCount\",\r\n  GetAllAppDefinitions = \"AppDefinition_GetAllAppDefinitions\",\r\n  GetAllAppDefinitionsCount = \"AppDefinition_GetAllAppDefinitionsCount\",\r\n  GetAppDefinitionsState = \"AppDefinition_GetAppDefinitionsState\",\r\n  GetAppDefinition = \"AppDefinition_GetAppDefinition\",\r\n  SaveAppDefinition = \"AppDefinition_SaveAppDefinition\",\r\n  UpdateLocalMyAppDefinitions = \"AppDefinition_UpdateLocalMyAppDefinitions\",\r\n  UpdateAppDefinition = \"AppDefinition_UpdateAppDefinition\",\r\n  ResetAppDefinitionState = \"AppDefinition_ResetAppDefinitionState\",\r\n  DeleteAppDefinition = \"AppDefinition_DeleteAppDefinition\",\r\n  LeaveAppDefinition = \"AppDefinition_LeaveAppDefinition\",\r\n  DownloadAppDefinition = \"AppDefinition_DownloadAppDefinition\",\r\n  AppDefinitionExists = \"AppDefinition_AppDefinitionsExist\",\r\n  ImportAppDefinition = \"AppDefinition_ImportAppDefinition\",\r\n  AppDefinitionImportUnprocessable = \"AppDefinition_ImportUnprocessable\",\r\n  AppFile = \"AppDefinition_AppFile\",\r\n  ImportFromCatalogFailure = \"AppDefinition_ImportFromCatalogFailure\",\r\n  ImportAppDefinitionFailure = \"AppDefinition_ImportAppDefinitionFailure\",\r\n  CreateAppDefinition = \"AppDefinition_CreateAppDefinitions\",\r\n  CreateAppDefinitionBot = \"AppDefinition_CreateAppDefinitionBot\",\r\n  CreateAppDefinitionMessagingExtension = \"AppDefinition_CreateAppDefinitionMessagingExtension\",\r\n  AppDefinitionFailure = \"AppDefinition_Failure\",\r\n  AppDefinitionImportValidationError = \"AppDefinition_ImportValidationError\",\r\n  AppHasChanges = \"App_Changed\",\r\n  AppDefinitionUserModeUpdate = \"AppDefinition_UserModeUpdate\",\r\n  AppDefinitionViewModelUpdate = \"AppDefinition_ViewModelUpdate\",\r\n  AppDefinitionFilterAppsList = \"AppDefinition_FilterAppsList\",\r\n  AppDefinitionPageAppsList = \"AppDefinition_PageAppsList\",\r\n  AppDefinitionUpgradeLegacyApp = \"AppDefinition_UpgradeLegacyApp\",\r\n\r\n  // Owner\r\n  GetAppDefinitionsOwnerCandidates = \"AppDefinition_GetOwnerCandidates\",\r\n  ClearAppDefinitionsOwnerCandidates = \"AppDefinition_ClearOwnerCandidates\",\r\n\r\n  // Personal Tab\r\n  GetPersonalTabs = \"AppDefinition_GetPersonalTabs\",\r\n  CreateOrUpdatePersonalTab = \"AppDefinition_CreateOrUpdatePersonalTab\",\r\n  DeletePersonalTab = \"AppDefinition_DeletePersonalTab\",\r\n\r\n  // Group Tab\r\n  GetGroupTab = \"AppDefinition_GetGroupTab\",\r\n  CreateGroupOrMeetingTab = \"AppDefinition_CreateGroupTab\",\r\n  UpdateGroupOrMeetingTab = \"AppDefinition_UpdateGroupTab\",\r\n  DeleteGroupOrMeetingTab = \"AppDefinition_DeleteGroupTab\",\r\n\r\n  // Connectors\r\n  GetConnector = \"AppDefinition_GetConnector\",\r\n  CreateConnector = \"AppDefinition_CreateConnector\",\r\n  UpdateConnector = \"AppDefinition_UpdateConnector\",\r\n  DeleteConnector = \"AppDefinition_DeleteConnector\",\r\n\r\n  // ManifestEditor\r\n  GetAppDefinitionItem = \"AppDefinition_AppDefinitionItem\",\r\n  AppDefinitionItemHasIssues = \"AppDefinition_AppDefinitionItemHasIssues\",\r\n  GetAppDefinitionSchema = \"AppDefinition_AppDefinitionSchema\",\r\n\r\n  // App Environment\r\n  UpdateAppDefinitionSelectedEnvironment = \"AppDefinition_UpdateAppEnvironment\",\r\n  UpdateAppEnvironmentMenuIndex = \"AppDefinition_UpdateAppEnvironmentMenuIndex\"\r\n}\r\n\r\nexport interface IAppDefinitionItemIssues {\r\n  errors: Record<string, string[]>;\r\n  title?: string;\r\n  status?: number;\r\n  traceId?: string;\r\n}\r\n\r\nexport type IAppDefinitionItemErrors = {\r\n  message: string;\r\n  path: string;\r\n}[];\r\n\r\nexport interface IImportAppFromCatalogErrors {\r\n  appId?: string;\r\n  ring?: string;\r\n  status?: number;\r\n  errorMessage?: string;\r\n}\r\n\r\ninterface IAppsState {\r\n  [appsKeys.AppDefinitions]: IAppDefinition[];\r\n  [appsKeys.LatestPublicManifestVersion]: string;\r\n  [appsKeys.AppDefinitionsCount]: number;\r\n  [appsKeys.AllAppDefinitions]: IAppDefinition[];\r\n  [appsKeys.AllAppDefinitionsCount]: number;\r\n  [appsKeys.LegacyAppDefinitions]: IAppDefinition[];\r\n  [appsKeys.LegacyAppDefinitionsCount]: number;\r\n  [appsKeys.AppDefinition]: Partial<IAppDefinition>;\r\n  [appsKeys.GetAppDefinitionsState]: GetAppDefinitionsStates;\r\n  [appsKeys.AppDefinitionToDuplicate]: Partial<IAppDefinition>;\r\n  [appsKeys.UpdatedApp]: Partial<IAppDefinition>;\r\n  [appsKeys.AppDeleted]: boolean;\r\n  [appsKeys.PersonalTabAdded]: boolean;\r\n  [appsKeys.AppDefinitionItem]: Partial<IAppDefinition>;\r\n  [appsKeys.AppDefinitionItemIssues]: IAppDefinitionItemIssues[\"errors\"];\r\n  [appsKeys.AppDefinitionSchema]: string;\r\n  [appsKeys.AppDefinitionSelectedEnvironment]: IAppEnvironment;\r\n  [appsKeys.AppEnvironmentMenuIndex]: number;\r\n  [appsKeys.AppDefinitionValidationError]: string;\r\n  [appsKeys.AppListUserMode]: AppListUserModes;\r\n  [appsKeys.AppListOwnerViewModel]: IAppListViewModel;\r\n  [appsKeys.AppListTenantViewModel]: IAppListViewModel;\r\n  [appsKeys.AppDefinitionOwnerCandidates]: IUser[];\r\n  [appsKeys.UpdatedColorIcon]?: UploadIconType.Color;\r\n  [appsKeys.UpdatedOutlineIcon]?: UploadIconType.Outline;\r\n  [appsKeys.AppDefinitionImportUnprocessable]: ImportUnprocessableData;\r\n  [appsKeys.AppFile]: File;\r\n  [appsKeys.SessionKey]: string;\r\n  [appsKeys.ImportFromCatalogError]: IImportAppFromCatalogErrors;\r\n}\r\n\r\nconst initialState: IAppsState = {\r\n  [appsKeys.AppDefinitions]: [],\r\n  [appsKeys.LatestPublicManifestVersion]: \"\",\r\n  [appsKeys.AppDefinitionsCount]: 0,\r\n  [appsKeys.AllAppDefinitions]: [],\r\n  [appsKeys.AllAppDefinitionsCount]: 0,\r\n  [appsKeys.LegacyAppDefinitions]: [],\r\n  [appsKeys.LegacyAppDefinitionsCount]: 0,\r\n  [appsKeys.AppDefinition]: {},\r\n  [appsKeys.GetAppDefinitionsState]: GetAppDefinitionsStates.BUSY,\r\n  [appsKeys.AppDefinitionToDuplicate]: {},\r\n  [appsKeys.UpdatedApp]: {},\r\n  [appsKeys.AppDeleted]: false,\r\n  [appsKeys.PersonalTabAdded]: false,\r\n  [appsKeys.AppDefinitionItem]: {},\r\n  [appsKeys.AppDefinitionItemIssues]: {},\r\n  [appsKeys.AppDefinitionSchema]: \"\",\r\n  [appsKeys.AppDefinitionSelectedEnvironment]: { id: \"\", displayName: \"\", properties: [] },\r\n  [appsKeys.AppEnvironmentMenuIndex]: 0,\r\n  [appsKeys.AppDefinitionValidationError]: \"\",\r\n  [appsKeys.AppDefinitionImportUnprocessable]: { errorMessage: \"\" },\r\n  [appsKeys.AppFile]: new File([\"\"],\"\"),\r\n  [appsKeys.AppListUserMode]: AppListUserModes.Owner,\r\n  [appsKeys.AppListOwnerViewModel]: {\r\n    layout: LayoutType.List,\r\n    sort: {\r\n      column: \"appName\",\r\n      direction: SortDirections.ASC\r\n    },\r\n    page: 1,\r\n    search: \"\",\r\n    searching: false,\r\n    searchResults: []\r\n  },\r\n  [appsKeys.AppListTenantViewModel]: {\r\n    layout: LayoutType.List,\r\n    sort: {\r\n      column: \"appName\",\r\n      direction: SortDirections.ASC\r\n    },\r\n    page: 1,\r\n    search: \"\",\r\n    searching: false,\r\n    searchResults: []\r\n  },\r\n  [appsKeys.AppDefinitionOwnerCandidates]: [],\r\n  [appsKeys.SessionKey]: randomString(4),\r\n  [appsKeys.ImportFromCatalogError]: {}\r\n};\r\n\r\ntype AppDefinitionPayload = PayloadAction<Partial<IAppDefinition>>;\r\ntype AppDefinitionsPayload = PayloadAction<Partial<IAppDefinition>[]>;\r\ntype ImportUnprocessableData = {\r\n  errorMessage: string;\r\n  file?: File;\r\n};\r\n\r\nexport const appsSlice = createSlice({\r\n  name: StateKeys.Apps,\r\n  initialState,\r\n  reducers: {\r\n    // General AppDefinition CRUD.\r\n\r\n    [AppDefinitionActionTypes.UpdateAppDefinition]: (state, { payload }: AppDefinitionPayload) => {\r\n      set(state, [appsKeys.AppDefinition], payload);\r\n      set(state, [appsKeys.UpdatedApp], payload);\r\n      set(state, [appsKeys.SessionKey], randomString(4));\r\n      update(state, [appsKeys.AppDefinitions], (appDefinitions: IAppDefinition[]) =>\r\n        appDefinitions.map((app) => {\r\n          if (app.teamsAppId === payload.teamsAppId) {\r\n            return payload;\r\n          }\r\n          return app;\r\n        })\r\n      );\r\n    },\r\n    [AppDefinitionActionTypes.GetMyAppDefinitions]: (state, { payload }: AppDefinitionsPayload) => {\r\n      set(state, [appsKeys.AppDefinitions], [...payload]);\r\n    },\r\n    [AppDefinitionActionTypes.GetLatestPublicManifestVersion]: (state, { payload }: PayloadAction<string>) => {\r\n      set(state, [appsKeys.LatestPublicManifestVersion], payload);\r\n    },\r\n    [AppDefinitionActionTypes.UpgradeToLatestPublicManifestVersion]: (state) => {\r\n      set(state, [appsKeys.AppDefinition], { ...state.AppDefinition, manifestVersion: state.LatestPublicManifestVersion });\r\n    },\r\n    [AppDefinitionActionTypes.GetMyAppDefinitionsCount]: (state, { payload }: PayloadAction<number>) => {\r\n      set(state, [appsKeys.AppDefinitionsCount], payload);\r\n    },\r\n    [AppDefinitionActionTypes.GetAllAppDefinitions]: (state, { payload }: AppDefinitionsPayload) => {\r\n      set(state, [appsKeys.AllAppDefinitions], [...payload]);\r\n    },\r\n    [AppDefinitionActionTypes.GetAllAppDefinitionsCount]: (state, { payload }: PayloadAction<number>) => {\r\n      set(state, [appsKeys.AllAppDefinitionsCount], payload);\r\n    },\r\n    [AppDefinitionActionTypes.GetMyLegacyAppDefinitions]: (state, { payload }: AppDefinitionsPayload) => {\r\n      set(state, [appsKeys.LegacyAppDefinitions], [...payload]);\r\n    },\r\n    [AppDefinitionActionTypes.GetMyLegacyAppDefinitionsCount]: (state, { payload }: PayloadAction<number>) => {\r\n      set(state, [appsKeys.LegacyAppDefinitionsCount], payload);\r\n    },\r\n    [AppDefinitionActionTypes.GetAppDefinition]: (state, { payload }: AppDefinitionPayload) => {\r\n      set(state, [appsKeys.AppDefinition], payload);\r\n      set(state, [appsKeys.AppDeleted], false);\r\n    },\r\n    [AppDefinitionActionTypes.GetAppDefinitionsState]: (state, { payload }: PayloadAction<GetAppDefinitionsStates>) => {\r\n      set(state, [appsKeys.GetAppDefinitionsState], payload);\r\n    },\r\n    [AppDefinitionActionTypes.AppDefinitionExists]: (state, { payload }: AppDefinitionPayload) => {\r\n      set(state, [appsKeys.AppDefinitionToDuplicate], payload);\r\n    },\r\n    [AppDefinitionActionTypes.AppDefinitionImportUnprocessable]: (state, { payload }: PayloadAction<ImportUnprocessableData>) => {\r\n      set(state, [appsKeys.AppDefinitionImportUnprocessable], payload);\r\n    },\r\n    [AppDefinitionActionTypes.AppFile]: (state, { payload }: PayloadAction<File>) => {\r\n      set(state, [appsKeys.AppFile], payload);\r\n    },\r\n    [AppDefinitionActionTypes.CreateAppDefinition]: (state, { payload }: AppDefinitionPayload) => {\r\n      update(state, [appsKeys.AppDefinitions], (appDefinitions) => [...appDefinitions, payload]);\r\n      set(state, [appsKeys.AppDefinition], payload);\r\n      set(state, [appsKeys.AppDefinitionToDuplicate], {});\r\n      set(state, [appsKeys.UpdatedApp], {});\r\n      set(state, [appsKeys.SessionKey], randomString(4));\r\n    },\r\n    [AppDefinitionActionTypes.DeleteAppDefinition]: (state, { payload }: PayloadAction<IAppDefinition[\"teamsAppId\"]>) => {\r\n      const filterExpr = (appDefinition: IAppDefinition) => appDefinition.teamsAppId !== payload;\r\n      update(state, [appsKeys.AppDefinitions], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      update(state, [appsKeys.LegacyAppDefinitions], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      update(state, [appsKeys.AppListOwnerViewModel, \"searchResults\"], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      update(state, [appsKeys.AppListTenantViewModel, \"searchResults\"], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      set(state, [appsKeys.AppDefinition], {});\r\n      set(state, [appsKeys.AppDeleted], true);\r\n      set(state, [appsKeys.UpdatedApp], {});\r\n      set(state, [appsKeys.SessionKey], randomString(4));\r\n    },\r\n    [AppDefinitionActionTypes.LeaveAppDefinition]: (state, { payload }: PayloadAction<IAppDefinition[\"teamsAppId\"]>) => {\r\n      const filterExpr = (appDefinition: IAppDefinition) => appDefinition.teamsAppId !== payload;\r\n      update(state, [appsKeys.AppDefinitions], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      update(state, [appsKeys.LegacyAppDefinitions], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      update(state, [appsKeys.AppListOwnerViewModel, \"searchResults\"], (appDefinitions) => appDefinitions.filter(filterExpr));\r\n      set(state, [appsKeys.AppDefinition], {});\r\n      set(state, [appsKeys.AppDeleted], true);\r\n      set(state, [appsKeys.UpdatedApp], {});\r\n      set(state, [appsKeys.SessionKey], randomString(4));\r\n    },\r\n    [AppDefinitionActionTypes.ImportFromCatalogFailure]: (state, { payload }: PayloadAction<IImportAppFromCatalogErrors>) => {\r\n      set(state, [appsKeys.ImportFromCatalogError], payload);\r\n    },\r\n\r\n    // Manifest Editor\r\n    [AppDefinitionActionTypes.GetAppDefinitionItem]: (state, { payload }: AppDefinitionPayload) => {\r\n      set(state, [appsKeys.AppDefinitionItem], payload);\r\n      set(state, [appsKeys.AppDefinitionItemIssues], []);\r\n    },\r\n    [AppDefinitionActionTypes.AppDefinitionItemHasIssues]: (\r\n      state,\r\n      { payload }: PayloadAction<IAppDefinitionItemIssues[\"errors\"]>\r\n    ) => {\r\n      set(state, [appsKeys.AppDefinitionItemIssues], payload);\r\n    },\r\n    [AppDefinitionActionTypes.GetAppDefinitionSchema]: (state, { payload }: PayloadAction<string>) => {\r\n      set(state, [appsKeys.AppDefinitionSchema], payload);\r\n    },\r\n\r\n    // Unrefactored reducers calling AppDefinition-specific logic from a shared module.\r\n\r\n    [AppDefinitionActionTypes.ResetAppDefinitionState]: resetAppDefinitionState(),\r\n    [AppDefinitionActionTypes.AppDefinitionImportValidationError]: updateAppDefinitionError(StateKeys.Apps),\r\n    [AppDefinitionActionTypes.AppDefinitionUserModeUpdate]: updateAppListUserMode(),\r\n    [AppDefinitionActionTypes.AppDefinitionViewModelUpdate]: updateAppListViewModel(),\r\n    [AppDefinitionActionTypes.AppDefinitionFilterAppsList]: filterAppList(),\r\n    [AppDefinitionActionTypes.AppDefinitionPageAppsList]: pageAppList(),\r\n    [AppDefinitionActionTypes.AppDefinitionUpgradeLegacyApp]: upgradeLegacyApp(),\r\n\r\n    // Bot\r\n    [AppDefinitionActionTypes.CreateAppDefinitionBot]: CreateAppDefinitionBot(),\r\n\r\n    // Messaging extension\r\n    [AppDefinitionActionTypes.CreateAppDefinitionMessagingExtension]: CreateAppDefinitionMessagingExtension(),\r\n\r\n    // Owner\r\n    [AppDefinitionActionTypes.GetAppDefinitionsOwnerCandidates]: getAppDefinitionOwnerCandidates(),\r\n    [AppDefinitionActionTypes.ClearAppDefinitionsOwnerCandidates]: clearAppDefinitionOwnerCandidates(),\r\n\r\n    // Personal App\r\n    [AppDefinitionActionTypes.CreateOrUpdatePersonalTab]: createOrUpdatePersonalApp(),\r\n    [AppDefinitionActionTypes.DeletePersonalTab]: deletePersonalTab(),\r\n\r\n    // Group Tab\r\n    [AppDefinitionActionTypes.CreateGroupOrMeetingTab]: createGroupTab(),\r\n    [AppDefinitionActionTypes.UpdateGroupOrMeetingTab]: updateGroupTab(),\r\n    [AppDefinitionActionTypes.DeleteGroupOrMeetingTab]: updateGroupTab(),\r\n\r\n    // Connectors\r\n    [AppDefinitionActionTypes.CreateConnector]: createConnector(),\r\n    [AppDefinitionActionTypes.DeleteConnector]: updateConnector(),\r\n    [AppDefinitionActionTypes.UpdateConnector]: updateConnector(),\r\n\r\n    // App Selected Environment\r\n    [AppDefinitionActionTypes.UpdateAppDefinitionSelectedEnvironment]: updateAppDefinitionSelectedEnvironment(StateKeys.Apps),\r\n    [AppDefinitionActionTypes.UpdateAppEnvironmentMenuIndex]: updateAppEnvironmentMenuIndex(StateKeys.Apps),\r\n\r\n    [UpdateTypes.Reset]: resetAppDeletedFlag(),\r\n    [UpdateTypes.ResetPersonalTabAddedFlag]: resetPersonalTabAddedFlag(),\r\n    [UpdateTypes.Update]: (state, action: PayloadAction<Partial<IAppDefinition> | Partial<IBot>>) => {\r\n      Object.assign(state[appsKeys.UpdatedApp], action.payload);\r\n    },\r\n    [UpdateTypes.Revert]: (state, _action: PayloadAction<void>) => {\r\n      set(state, appsKeys.UpdatedApp, {});\r\n      set(state, appsKeys.SessionKey, randomString(4));\r\n    }\r\n  }\r\n});\r\n\r\nexport default appsSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { IAppOwnerContactInformation } from \"../../interfaces/IAppOwnerContactInformation\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { showNotification } from \"./NotificationActions\";\r\n\r\nexport enum AppOwnerContactInformationActionTypes {\r\n  GetAppOwnerContactInformationSuccess = \"Get_AppOwnerContactInformation_Success\",\r\n  GetAppOwnerContactInformationFailure = \"Get_AppOwnerContactInformation_Failed\",\r\n  UpdateAppOwnerContactInformationSuccess = \"Update_AppOwnerContactInformation_Success\",\r\n  UpdateAppOwnerContactInformationFailure = \"Update_AppOwnerContactInformation_Failed\",\r\n  ClearAppOwnerContactInformationPRLink = \"Clear_AppOwnerContactInformation_PRLink\"\r\n}\r\n\r\nexport const GetAppOwnerContactInfo = (teamsAppId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/staging/apps/${teamsAppId}/contactInfo/`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppOwnerContactInformation) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.AppOwnerContactInformation}/${AppOwnerContactInformationActionTypes.GetAppOwnerContactInformationSuccess}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppOwnerContactInformation}/${AppOwnerContactInformationActionTypes.GetAppOwnerContactInformationFailure}`,\r\n        payload: { appId: teamsAppId }\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateAppOwnerContactInfo = (\r\n  teamsAppId: string,\r\n  contactInfoDraft: Partial<IAppOwnerContactInformation>,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/staging/apps/${teamsAppId}/contactInfo/`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    data: contactInfoDraft,\r\n    onSuccess: (data: { repository: { remoteUrl: string }; pullRequestId: string }) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.AppOwnerContactInformation}/${AppOwnerContactInformationActionTypes.UpdateAppOwnerContactInformationSuccess}`,\r\n          payload: `${data.repository?.remoteUrl}/pullrequest/${data.pullRequestId}`\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppOwnerContactInformation}/${AppOwnerContactInformationActionTypes.UpdateAppOwnerContactInformationFailure}`,\r\n        payload: \"\"\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ClearAppOwnerContactInformationPRLink = (): IAction => ({\r\n  type: `${StateKeys.AppOwnerContactInformation}/${AppOwnerContactInformationActionTypes.ClearAppOwnerContactInformationPRLink}`,\r\n  payload: \"\"\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\n\r\nexport enum ECSClientActionTypes {\r\n  SetECSClientLoaded = \"Set_ECSClientLoaded\"\r\n}\r\n\r\nexport const setECSClientLoaded = (): IAction => ({\r\n  type: `${StateKeys.ECSClient}/${ECSClientActionTypes.SetECSClientLoaded}`,\r\n  payload: {\r\n    isECSClientLoaded: true\r\n  }\r\n});\r\n","export enum FeatureFlagTypes {\r\n  SetIsSceneDesignerEnabled = \"SetIsSceneDesignerEnabled\",\r\n  SetIsBotManagementEnabled = \"SetIsBotManagementEnabled\",\r\n  SetIsCardEditorEnabled = \"SetIsCardEditorEnabled\",\r\n  SetIsIdentityManagementEnabled = \"SetIsIdentityManagementEnabled\",\r\n  SetIsPackageValidationEnabled = \"SetIsPackageValidationEnabled\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport JSZip from \"jszip\";\r\nimport { ComposeExtensionAssetType } from \"../constants/Enums/ComposeExtensionAssetType\";\r\nimport { AppDefinition } from \"../objects\";\r\nimport { validateAndListApis } from \"./parseApiSpec\";\r\nimport { extname } from \"path\";\r\nimport { APIInfo } from \"@microsoft/m365-spec-parser\";\r\nimport { parseContent } from \"./parseContent\";\r\n\r\nexport interface IUploadAsset {\r\n  // This is the type for uploading a single asset\r\n  assetType: ComposeExtensionAssetType;\r\n  name: string;\r\n  data: string;\r\n}\r\nexport interface IAsset {\r\n  name: string;\r\n  data: string;\r\n}\r\n\r\nexport interface IGetAssetsResult {\r\n  assets: IAsset[];\r\n  availableApis: APIInfo[];\r\n}\r\n\r\nexport async function zipAllAssets(uploadAssets: IAsset[]): Promise<Buffer> {\r\n  const zip = new JSZip();\r\n  uploadAssets.forEach((asset) => {\r\n    zip.file(asset.name, asset.data);\r\n  });\r\n\r\n  const content = await zip.generateAsync({ type: \"nodebuffer\" });\r\n\r\n  return content;\r\n}\r\n\r\nexport async function unzipAllAssets(data: string): Promise<IAsset[]> {\r\n  if (data === \"\") {\r\n    return Promise.resolve([]);\r\n  }\r\n  const zip = await JSZip.loadAsync(data, { base64: true });\r\n  const res: IAsset[] = [];\r\n  const assets = await Promise.all(\r\n    Object.keys(zip.files).map((fileId) => {\r\n      const zipFile = zip.file(fileId);\r\n      if (zipFile) {\r\n        return zipFile.async(\"string\").then((fileContent) => ({ name: fileId, data: fileContent }));\r\n      } else {\r\n        return Promise.resolve(undefined);\r\n      }\r\n    })\r\n  );\r\n\r\n  for (const asset of assets) {\r\n    if (asset) {\r\n      res.push(asset);\r\n    }\r\n  }\r\n\r\n  return res;\r\n}\r\n\r\nexport async function parseApiSpecFromAppDefinition(app: AppDefinition, assets: IAsset[]): Promise<APIInfo[]> {\r\n  if (app.messagingExtensions && app.messagingExtensions[0] && app.messagingExtensions[0].apiSpecificationFilePath) {\r\n    const apiSpec = assets.find((asset) => asset.name === app.messagingExtensions![0].apiSpecificationFilePath);\r\n\r\n    if (apiSpec) {\r\n      const ext = extname(apiSpec!.name);\r\n      const apiInfo = await validateAndListApis(parseContent(ext, apiSpec.data));\r\n      return apiInfo.apiList;\r\n    }\r\n  }\r\n  return [];\r\n}\r\n","import { StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nexport enum UILoadingActionTypes {\r\n  Start = \"Loading_Start\",\r\n  Complete = \"Loading_Complete\"\r\n}\r\n\r\nexport enum UILoadingActionStatus {\r\n  Loading = \"loading\",\r\n  Complete = \"complete\"\r\n}\r\n\r\ninterface IUILoadingState {\r\n  status?: UILoadingActionStatus;\r\n}\r\n\r\nconst initialState: IUILoadingState = {};\r\n\r\nexport const uiLoadingSlice = createSlice({\r\n  name: StateKeys.UILoading,\r\n  initialState,\r\n  reducers: {\r\n    [UILoadingActionTypes.Start]: () => ({ status: UILoadingActionStatus.Loading }),\r\n    [UILoadingActionTypes.Complete]: () => ({ status: UILoadingActionStatus.Complete })\r\n  }\r\n});\r\n\r\nexport default uiLoadingSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nconst containerName = process.env.REACT_APP_CONTAINER_NAME || \"\";\r\n\r\nexport const ReservedPaths = {\r\n  Cards: { Details: \"/create\" },\r\n  Identity: { List: \"/create|/create/brand-new|/create/link-existing\" }\r\n};\r\n\r\nexport const Routes = {\r\n  Index: `index.html`,\r\n\r\n  // WebApp\r\n  Root: `/${containerName}`,\r\n  Home: `/${containerName}home`,\r\n  Auth: `/${containerName}auth`,\r\n  Apps: `/${containerName}apps`,\r\n  AppConfig: `/${containerName}apps/:appId`,\r\n  Bots: `/${containerName}bots`,\r\n  Validation: `/${containerName}validation`,\r\n  BotConfig: `/${containerName}bots/:botId`,\r\n  Cards: `/${containerName}cards`,\r\n  CardDetails: `/${containerName}cards/:cardId`,\r\n  CardDetailsPaths: `/${containerName}cards/:cardId(|${ReservedPaths.Cards.Details})`,\r\n  Identity: `/${containerName}identity`,\r\n  IdentityAppsListPaths: `/${containerName}identity(|${ReservedPaths.Identity.List})`,\r\n  IdentityAppDetails: `/${containerName}identity/:appId`,\r\n  Help: `/${containerName}help`,\r\n  Error: `/${containerName}error`,\r\n  AuthRedirect: `/${containerName}#id_token:token`,\r\n  Tools: `/${containerName}tools`,\r\n  Changelog: `/${containerName}changelog`,\r\n  ApiKeyRegistration: `/${containerName}api-key-registration`,\r\n  ApiKeyRegistrationNew: `/${containerName}api-key-registration/new`,\r\n  ApiKeyRegistrationDetail: `/${containerName}api-key-registration/:keyId`,\r\n  OAuthConfiguration: `/${containerName}oauth-configuration`,\r\n  OAuthConfigurationNew: `/${containerName}oauth-configuration/new`,\r\n  OAuthConfigurationDetail: `/${containerName}oauth-configuration/:keyId`,\r\n  EntraConfiguration: `/${containerName}entra-configuration`,\r\n  EntraConfigurationNew: `/${containerName}entra-configuration/new`,\r\n  EntraConfigurationDetail: `/${containerName}entra-configuration/:keyId`,\r\n\r\n  // Scenes\r\n  Scenes: `/${containerName}scenes`,\r\n  NewScene: `/${containerName}scenes/new`,\r\n  SceneDetails: `/${containerName}scenes/:sceneId`,\r\n\r\n  // App configuration\r\n  Overview: `/${containerName}apps/:appId/overview`,\r\n  AppDetails: `/${containerName}apps/:appId/details`,\r\n  AppBranding: `/${containerName}apps/:appId/branding`,\r\n  AppOverview: `/${containerName}apps/:appId/overview`,\r\n  AppOwners: `/${containerName}apps/:appId/owners`,\r\n  AppAnalytics: `/${containerName}apps/:appId/analytics`,\r\n  AppAnalyticsV2: `/${containerName}apps/:appId/app-analytics`,\r\n  AppAnalyticsRegionDetails: `/${containerName}apps/:appId/analytics/region`,\r\n  AppFlights: `/${containerName}apps/:appId/flights`,\r\n  AppCapabilities: `/${containerName}apps/:appId/app-features`,\r\n  AppPackageEditor: `/${containerName}apps/:appId/app-package-editor`,\r\n  Permissions: `/${containerName}apps/:appId/permissions`,\r\n  AppLanguages: `/${containerName}apps/:appId/languages`,\r\n  AppEnvironments: `/${containerName}apps/:appId/environments`,\r\n  AppSubscriptionOffer: `/${containerName}apps/:appId/PlansAndPrice`,\r\n\r\n  // App capabilities\r\n  Capabilities: `/${containerName}apps/:appId/app-features`,\r\n  PersonalApp: `/${containerName}apps/:appId/app-features/personal-app`,\r\n  GroupApp: `/${containerName}apps/:appId/app-features/channel-and-group-app`,\r\n  MeetingTab: `/${containerName}apps/:appId/app-features/meeting-app`,\r\n  Bot: `/${containerName}apps/:appId/app-features/bot`,\r\n  Connectors: `/${containerName}apps/:appId/app-features/connector`,\r\n  SceneCapability: `/${containerName}apps/:appId/app-features/scenes`,\r\n  MessagingExtensions: `/${containerName}apps/:appId/app-features/messaging-extension`,\r\n  AppMessagingExtensionsDetail: `/${containerName}apps/:appId/app-features/messaging-extension/:botId`,\r\n  AppMessagingExtensionsDetailEdit: `/${containerName}apps/:appId/app-features/messaging-extension/:botId/edit`,\r\n  AppMessagingExtensionsCommand: `/${containerName}apps/:appId/app-features/messaging-extension/command`,\r\n  AppMessagingExtensionsCommandEdit: `/${containerName}apps/:appId/app-features/messaging-extension/:botId/command/:commandId`,\r\n  Activity: `/${containerName}apps/:appId/app-features/activity`,\r\n  CopilotPlugin: `/${containerName}apps/:appId/app-features/copilot-plugin`,\r\n\r\n  // Distributions\r\n  Distributions: `/${containerName}apps/:appId/distributions`,\r\n  AppInstall: `/${containerName}apps/:appId/distributions/app-install`,\r\n  AppCatalog: `/${containerName}apps/:appId/distributions/app-catalog`,\r\n  AppCatalogSubmit: `/${containerName}apps/:appId/distributions/app-catalog/submit`,\r\n  AppCatalogStatus: `/${containerName}apps/:appId/distributions/app-catalog/status`,\r\n  AppSubmit: `/${containerName}apps/:appId/distributions/app-submit`,\r\n  AppWithdraw: `/${containerName}apps/:appId/flights/withdraw`,\r\n  NewFlight: `/${containerName}apps/:appId/flights/new-flights`,\r\n  FlightPR: `/${containerName}apps/:appId/flights/history`,\r\n  AppContactInfo: `/${containerName}apps/:appId/flights/app-contact-info`,\r\n\r\n  // App data\r\n  Domains: `/${containerName}apps/:appId/domains`,\r\n  AppPackage: `/${containerName}apps/:appId/app-package`,\r\n  Advanced: `/${containerName}apps/:appId/advanced/app-content`,\r\n  Internal: `/${containerName}apps/:appId/advanced/first-party`,\r\n  AdminSettings: `/${containerName}apps/:appId/advanced/admin-settings`,\r\n  Devices: `/${containerName}apps/:appId/devices`,\r\n  SingleSignOn: `/${containerName}apps/:appId/singleSignOn`,\r\n  AppValidations: `/${containerName}apps/:appId/app-validation`,\r\n  ValidationDetail: `/${containerName}apps/:appId/app-validation/:validationId`,\r\n\r\n  // Bot configuration\r\n  BotConfigure: `/${containerName}bots/:botId/configure`,\r\n  BotChannels: `/${containerName}bots/:botId/channels`,\r\n  BotEvents: `/${containerName}bots/:botId/events`,\r\n  BotClientSecrets: `/${containerName}bots/:botId/client-secrets`,\r\n\r\n  // Card\r\n  newCard: `/${containerName}cards/new`,\r\n\r\n  // Identity Platform\r\n  CreateIdentityApp: `/${containerName}identity/create`,\r\n\r\n  CreateBrandNew: `/${containerName}identity/create/brand-new`,\r\n  LinkExisting: `/${containerName}identity/create/link-existing`,\r\n  IdentityAppOverview: `/${containerName}identity/:appId/overview`,\r\n  Secret: `/${containerName}identity/:appId/secrets`,\r\n  ApiPermissions: `/${containerName}identity/:appId/api-permissions`,\r\n  ExposeApi: `/${containerName}identity/:appId/expose-api`,\r\n  LinkedApps: `/${containerName}identity/:appId/linked-apps`,\r\n\r\n  // Develop\r\n  DevelopWithTeamsToolkit: `/${containerName}apps/:appId/develop-with-teams-toolkit`\r\n};\r\n\r\nexport const SubRoutes = {\r\n  // Identity Platform\r\n  Identity: {\r\n    BrandNew: \"/brand-new\",\r\n    LinkExisting: \"/link-existing\",\r\n    Overview: \"/overview\",\r\n    LinkedApps: \"/linked-apps\",\r\n    Secret: `/secrets`,\r\n    ApiPermissions: `/api-permissions`,\r\n    ExposeApi: `/expose-api`\r\n  },\r\n  AppDefinition: {\r\n    personalApp: getCapabilitySubRoute(Routes.PersonalApp),\r\n    groupApp: getCapabilitySubRoute(Routes.GroupApp),\r\n    connectors: getCapabilitySubRoute(Routes.Connectors),\r\n    meetingApp: getCapabilitySubRoute(Routes.MeetingTab),\r\n    scenes: getCapabilitySubRoute(Routes.SceneCapability),\r\n    messagingExtension: getCapabilitySubRoute(Routes.MessagingExtensions),\r\n    bot: getCapabilitySubRoute(Routes.Bot),\r\n    activity: getCapabilitySubRoute(Routes.Activity)\r\n  }\r\n};\r\n\r\nfunction getCapabilitySubRoute(route: string) {\r\n  return `/${containerName !== \"\" ? route.split(\"/\")[5] : route.split(\"/\")[4]}`;\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum TelemetryEventName {\r\n  // generic events\r\n  Click = \"click\",\r\n  Save = \"save\",\r\n  Revert = \"revert\",\r\n\r\n  GetAppDefinitions = \"api-action-get-app-definitions\",\r\n  GetLatestPublicManifestVersion = \"api-action-get-latest-public-manifest-version\",\r\n  UpgradeToLatestPublicManifestVersion = \"api-action-upgrade-to-latest-public-manifest-version\",\r\n  GetAppDefinitionsError = \"api-action-get-app-definitions-error\",\r\n  GetAppDefinition = \"api-action-get-app-definition\",\r\n  GetAppDefinitionError = \"api-action-get-app-definition-error\",\r\n  SearchAppDefinitionError = \"SearchAppDefinition-error\",\r\n  AddAppDefinition = \"api-action-add-app-definition\",\r\n  AddAppDefinitionError = \"api-action-add-app-definition-error\",\r\n  DeleteAppDefinition = \"api-action-delete-app-definition\",\r\n  DeleteAppDefinitionError = \"api-action-delete-app-definition-error\",\r\n  LeaveAppDefinition = \"api-action-leave-app-definition\",\r\n  LeaveAppDefinitionError = \"api-action-leave-app-definition-error\",\r\n  UpdateAppDefinition = \"api-action-update-app-definition\",\r\n  UpdateAppDefinitionError = \"api-action-update-app-definition-error\",\r\n  OverrideAppDefinition = \"api-action-override-app-definition\",\r\n  OverrideAppDefinitionError = \"api-action-override-app-definition-error\",\r\n  DownloadAppDefinition = \"api-action-download-app-definition\",\r\n  DownloadAppDefinitionError = \"api-action-download-app-definition-error\",\r\n  DuplicateAppDefinition = \"api-action-duplicate-app-definition\",\r\n  DuplicateAppDefinitionError = \"api-action-duplicate-app-definition-error\",\r\n  UploadAppDefinition = \"api-action-upload-app-definition\",\r\n  UploadIsAdminCheck = \"api-action-upload-is-admin-check\",\r\n  UploadAppIcon = \"api-action-upload-app-icon\",\r\n  GetHeaderShellInfoError = \"api-action-get-header-shell-info-error\",\r\n  GetHeaderShellInfoRenderedSuccessfully = \"api-action-get-header-shell-info-render-success\",\r\n  GetHeaderShellInfoLoadedSuccessfully = \"api-action-get-header-shell-info-loaded-success\",\r\n  GetHeaderShellInfoLoadFailure = \"api-action-get-header-shell-info-load-error\",\r\n  OneShellLoadFailure = \"oneshell-load-error\",\r\n  UploadAppDefinitionError = \"api-action-upload-app-definition-error\",\r\n  SignIn = \"auth-sign-in\",\r\n  SignOut = \"auth-sign-out\",\r\n  MsalAuthClient = \"msal-auth-client\",\r\n  MsalLibrary = \"msal-library\",\r\n  ApsAuthClient = \"aps-auth-client\",\r\n  TeamsAuthClient = \"teams-auth-client\",\r\n  ApiMiddleware = \"api-middleware\",\r\n  GetUserSettingsLanguageError = \"api-action-get-user-settings-language-error\",\r\n  GetUserSettingsTenantSettingsError = \"api-actions-get-tenant-settings-error\",\r\n  IsSideLoadingInteractionEnabledForTenantError = \"api-actions-is-sideloading-enabled-error\",\r\n  GetUserDetailsError = \"api-action-get-user-details-error\",\r\n  GetIsTenantAdminError = \"api-action-get-is-tenant-admin-error\",\r\n  UpdateLanguage = \"api-action-update-language\",\r\n  UpdateDefaultLanguage = \"api-action-update-default-language\",\r\n  AddNewLanguage = \"api-action-add-new-language\",\r\n  DeleteAppLanguage = \"api-action-delete-app-language\",\r\n  DownloadAppManifestError = \"api-action-download-app-manifest-error\",\r\n  ImportAppDefinition = \"api-action-import-app-definition\",\r\n  ImportAppDefinitionFailure = \"api-action-import-app-definitionFailure\",\r\n  UploadNewLanguageError = \"api-action-upload-new-language-error\",\r\n  TakeAppOwnership = \"api-action-takeownership-app-definition\",\r\n\r\n  // Flight\r\n  CreateAppFlight = \"api-action-create-flight\",\r\n  CreateAppFlightError = \"api-action-create-flight-error\",\r\n  WithdrawAppFlight = \"api-action-withdraw-app-flight\",\r\n  WithdrawAppFlightError = \"api-action-withdraw-app-flight-error\",\r\n\r\n  // Personal Tabs\r\n  GetPersonalTabs = \"api-action-get-personal-tabs\",\r\n  GetPersonalTabsError = \"api-action-get-personal-tabs-error\",\r\n  CreatePersonalTab = \"api-action-create-personal-tab\",\r\n  CreatePersonalTabError = \"api-action-create-personal-tab-error\",\r\n  UpdatePersonalTab = \"api-action-update-personal-tab\",\r\n  UpdatePersonalTabError = \"api-action-update-personal-tab-error\",\r\n  DeletePersonalTab = \"api-action-delete-personal-tab\",\r\n  DeletePersonalTabError = \"api-action-delete-personal-tab-error\",\r\n\r\n  CreateGroupTab = \"api-action-create-group-tab\",\r\n  CreateGroupOrMeetingTabError = \"api-action-create-group-tab-error\",\r\n  UpdateGroupTab = \"api-action-update-GroupTab\",\r\n  UpdateGroupOrMeetingTabError = \"api-action-update-group-tab-error\",\r\n  DeleteGroupTab = \"api-action-delete-GroupTab\",\r\n  DeleteGroupOrMeetingTabError = \"api-action-delete-group-tab-error\",\r\n\r\n  // Bots\r\n  GetBots = \"api-action-get-bots\",\r\n  GetBotsError = \"api-action-get-bots-error\",\r\n  GetBot = \"api-action-get-bot\",\r\n  GetBotError = \"api-action-get-bot-error\",\r\n  GetBotEvent = \"api-action-get-bot-event\",\r\n  GetBotEventError = \"api-action-get-bot-event-error\",\r\n  UpdateBotEvent = \"api-action-update-bot-event\",\r\n  UpdateBotEventError = \"api-action-update-bot-event-error\",\r\n  DeleteBotEvent = \"api-action-delete-bot-event\",\r\n  DeleteBotEventError = \"api-action-delete-bot-event-error\",\r\n  AddNewBotAad = \"api-action-add-bot-aad\",\r\n  AddNewBotAadError = \"api-action-add-bot-aad-error\",\r\n  AddNewBot = \"api-action-add-bot\",\r\n  AddNewBotError = \"api-action-add-bot-error\",\r\n  UpdateBotMessageEndpointAddressSuccessfully = \"api-action-update-bot-message-endpoint-address-success\",\r\n  UpdateBotMessageEndpointAddressError = \"api-action-update-bot-message-endpoint-address-error\",\r\n  UpdateBotChannelsSuccessfully = \"api-action-update-bot-channels-success\",\r\n  UpdateBotChannelsError = \"api-action-update-bot-channels-error\",\r\n  UpdateBotIconSuccessfully = \"api-action-update-bot-icon-success\",\r\n  UpdateBotIconError = \"api-action-update-bot-icon-error\",\r\n  DeleteAppPasswordSuccessfully = \"api-action-delete-app-password-success\",\r\n  DeleteAppPasswordError = \"api-action-delete-app-password-error\",\r\n  CreateAppPasswordSuccessfully = \"api-action-create-app-password-success\",\r\n  CreateAppPasswordError = \"api-action-create-app-password-error\",\r\n  DeleteBotFromFrameworkSuccessfully = \"api-action-delete-bot-framework-success\",\r\n  DeleteBotFromFrameworkError = \"api-action-delete-bot-framework-error\",\r\n  DeleteBotFromAadSuccessfully = \"api-action-delete-aad-bot-success\",\r\n  DeleteBotFromAadError = \"api-action-delete-aad-bot-error\",\r\n\r\n  // app config bot\r\n  AddAppDefinitionBotSuccessfully = \"api-action-add-app-definition-bot-success\",\r\n  AddAppDefinitionBotError = \"api-action-add-app-definition-bot-error\",\r\n  UpdateAppDefinitionBotSuccessfully = \"api-action-update-app-definition-bot-success\",\r\n  UpdateAppDefinitionBotError = \"api-action-update-app-definition-bot-error\",\r\n  DeleteAppDefinitionBotSuccessfully = \"api-action-delete-app-definition-bot-success\",\r\n  DeleteAppDefinitionBotError = \"api-action-delete-app-definition-bot-error\",\r\n\r\n  // app config messaging extension\r\n  AddAppDefinitionMessagingExtensionSuccessfully = \"api-action-add-app-definition-messaging-extension-success\",\r\n  AddAppDefinitionMessagingExtensionError = \"api-action-add-app-definition-messaging-extension-error\",\r\n  AddAppDefinitionMessagingExtensionCommandSuccessfully = \"api-action-add-app-definition-messaging-extension-command-success\",\r\n  AddAppDefinitionMessagingExtensionCommandError = \"api-action-add-app-definitionMessagingExtensionCommand-error\",\r\n  UpdateAppDefinitionMessagingExtensionSuccessfully = \"api-action-update-app-definition-messaging-extension-success\",\r\n  UpdateAppDefinitionMessagingExtensionError = \"api-action-update-app-definition-messaging-extension-error\",\r\n  DeleteAppDefinitionMessagingExtensionSuccessfully = \"api-action-delete-app-definition-messaging-extension-success\",\r\n  DeleteAppDefinitionMessagingExtensionError = \"api-action-delete-app-definition-messaging-extension-error\",\r\n\r\n  // Connectors\r\n  GetConnector = \"api-action-get-connector\",\r\n  GetConnectorError = \"api-action-get-connector-error\",\r\n  CreateConnector = \"api-action-create-connector\",\r\n  CreateConnectorError = \"api-action-create-connector-error\",\r\n  UpdateConnector = \"api-action-update-connector\",\r\n  UpdateConnectorError = \"api-action-update-connector-error\",\r\n  DeleteConnector = \"api-action-delete-connector\",\r\n  DeleteConnectorError = \"api-action-delete-connector-error\",\r\n\r\n  // Subscription Offer\r\n  CreateSubscriptionOfferSuccessfully = \"api-action-create-subscription-offer-success\",\r\n  CreateSubscriptionOfferError = \"api-action-create-subscription-offer-error\",\r\n  UpdateSubscriptionOfferSuccessfully = \"api-action-update-subscription-offer-success\",\r\n  UpdateSubscriptionOfferError = \"api-action-update-subscription-offer-error\",\r\n  DeleteSubscriptionOfferSuccessfully = \"api-action-delete-subscription-offer-success\",\r\n  DeleteSubscriptionOfferError = \"api-action-delete-subscription-offer-error\",\r\n  MonetizationServiceGetToken = \"api-action-monetization-service-get-token\",\r\n  SaveOfferIdToManifest = \"api-action-save-offer\",\r\n  DeleteOfferIdFromManifest = \"api-action-delete-OfferIdFromManifest\",\r\n  ViewOfferSuccessfully = \"api-action-view-offer-success\",\r\n  ViewOfferNotFoundInAppSource = \"api-action-view-offer-not-found-app-source\",\r\n  ViewOfferNotFoundPlans = \"api-action-view-offer-not-found-plans\",\r\n  ViewOfferRequestFailed = \"api-action-view-offer-request-error\",\r\n\r\n  // Cards\r\n  SendCardSuccessfully = \"api-action-send-card-success\",\r\n  SendCardError = \"api-action-send-card-error\",\r\n  GetOwnerCardsSuccessfully = \"api-action-get-owner-cards-success\",\r\n  GetOwnerCardsError = \"api-action-get-owner-cards-error\",\r\n  GetTenantCardsSuccessfully = \"api-action-get-tenant-cards-success\",\r\n  GetTenantCardsError = \"api-action-get-tenant-cards-error\",\r\n  GetCardSuccessfully = \"api-action-get-card-success\",\r\n  GetCardError = \"api-action-get-card-error\",\r\n  CreateCardSuccessfully = \"api-action-create-card-success\",\r\n  CreateCardError = \"api-action-create-card-error\",\r\n  UpdateCardSuccessfully = \"api-action-update-card-success\",\r\n  UpdateCardError = \"api-action-update-card-error\",\r\n  DeleteCardSuccessfully = \"api-action-delete-card-success\",\r\n  DeleteCardError = \"api-action-delete-card-error\",\r\n\r\n  // Scenes\r\n  GetScenesSuccessfully = \"api-action-get-scenes-success\",\r\n  GetScenesError = \"api-action-get-scenes-error\",\r\n  GetSceneSuccessfully = \"api-action-get-scene-success\",\r\n  GetSceneError = \"api-action-get-scene-error\",\r\n  CreateSceneSuccessfully = \"api-action-create-scene-success\",\r\n  CreateSceneError = \"api-action-create-scene-error\",\r\n  UpdateSceneSuccessfully = \"api-action-update-scene-success\",\r\n  UpdateSceneError = \"api-action-update-scene-error\",\r\n  DeleteSceneSuccessfully = \"api-action-delete-scene-success\",\r\n  DeleteSceneError = \"api-action-delete-scene-error\",\r\n  UploadedSceneBackgroundImageSuccessfully = \"api-action-upload-scene-background-image-success\",\r\n  UploadedSceneBackgroundImageError = \"api-action-upload-scene-background-image-error\",\r\n\r\n  // Drawings\r\n  GetDrawingsSuccessfully = \"api-action-get-drawings-success\",\r\n  GetDrawingsError = \"api-action-get-drawings-error\",\r\n  GetDrawingSuccessfully = \"api-action-get-drawing-success\",\r\n  GetDrawingError = \"api-action-get-drawing-error\",\r\n  CreateDrawingSuccessfully = \"api-action-create-drawing-success\",\r\n  CreateDrawingError = \"api-action-create-drawing-error\",\r\n  UpdateDrawingSuccessfully = \"api-action-update-drawing-success\",\r\n  UpdateDrawingError = \"api-action-update-drawing-error\",\r\n  DeleteDrawingSuccessfully = \"api-action-delete-drawing-success\",\r\n  DeleteDrawingError = \"api-action-delete-drawing-error\",\r\n\r\n  // Identity Platform\r\n  GetIdentityApps = \"api-action-get-identity-apps-success\",\r\n  GetIdentityAppsError = \"api-action-get-identity-apps-error\",\r\n  GetIdentityAppInfo = \"api-action-get-identity-app-info-success\",\r\n  GetIdentityAppInfoError = \"api-action-get-identity-app-info-error\",\r\n  CreateIdentityApp = \"api-action-create-identity-app-success\",\r\n  CreateIdentityAppError = \"api-action-create-identity-app-error\",\r\n\r\n  // AuthSvc\r\n  GetRegionEndpointsSuccessfully = \"api-action-get-region-success\",\r\n  GetRegionEndpointsError = \"api-action-get-region-error\",\r\n\r\n  // ErrorBoundary\r\n  ErrorBoundaryDidCatch = \"error-boundary-did-catch\",\r\n  HandlerDidCatch = \"handler-did-catch\",\r\n\r\n  // SupportCentral\r\n  SupportCentralBootstrapFailure = \"error-loading-support-central-bootstrap\",\r\n  SupportCentralErrorConfigError = \"error-support-central-config\",\r\n  SupportCentralLoadSuccess = \"support-central-loaded-success\",\r\n  SupportCentralScriptFailure = \"error-downloading-support-central-bootstrap\",\r\n\r\n  // Publish to org\r\n  AppDistributePublishToOrg = \"app-distribution-publish-to-org\",\r\n\r\n  // Develop in Teams Toolkit\r\n  OpenInTeamsToolkit = \"open-in-teams-toolkit\",\r\n  OpenInTeamsToolkitUnsupportedFeaturesError = \"open-in-teams-toolkit-unsupported-features-error\",\r\n\r\n  // ComposeExtension\r\n  UploadComposeExtensionAssetSuccessfully = \"upload-compose-extension-asset-success\",\r\n  UploadComposeExtensionAssetError = \"upload-compose-extension-asset-error\",\r\n  UploadComposeExtensionAssetZipSuccessfully = \"upload-compose-extension-asset-zip-success\",\r\n  UploadComposeExtensionAssetZipError = \"upload-compose-extension-asset-zip-error\",\r\n  GetComposeExtensionAssetZipSuccessfully = \"get-compose-extension-asset-zip-success\",\r\n  GetComposeExtensionAssetZipError = \"get-compose-extension-asset-zip-error\",\r\n  InvalidApiSpec = \"invalid-api-spec\",\r\n\r\n  // App publishing status\r\n  GetAppPublishingStatusSuccessfully = \"api-action-get-app-publishing-status-success\",\r\n  GetAppPublishingStatusError = \"api-action-get-app-publishing-status-error\",\r\n\r\n  // Loading Time\r\n  ComponentLoadTime = \"component-load-time\",\r\n  // MessagingExtension\r\n  GetMessagingExtensionConfigurationSuccessfully = \"get-messaging-extension-configuration-success\",\r\n  GetMessagingExtensionConfigurationError = \"get-messaging-extension-configuration-error\",\r\n\r\n  // App Validation V2\r\n  NewAppValidationV2CreatedSuccess = \"api-action-new-app-validation-v2-created-success\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { default as OpenapiVersion3SchemaValidator } from \"./validate_schema_version3\";\r\n\r\nexport default OpenapiVersion3SchemaValidator;\r\n","import { OpenAPIV3 } from \"openapi-types\";\r\n\r\nimport { IntlShape } from \"react-intl\";\r\nimport { formatMessage } from \"./StringUtils\";\r\nimport OpenapiVersion3SchemaValidator from \"../spec-parser/validate\";\r\nimport { ValidationStatus, ErrorType, ErrorResult, SpecParser, ValidateResult, APIInfo } from \"@microsoft/m365-spec-parser\";\r\n\r\nexport interface IParseApiSpecResult {\r\n  validationResult: ValidateResult;\r\n  apiList: APIInfo[];\r\n}\r\n\r\nexport async function validateAndListApis(content: OpenAPIV3.Document<{}>): Promise<IParseApiSpecResult> {\r\n  const specParser = new SpecParser(content, {\r\n    allowMultipleParameters: true,\r\n    allowBearerTokenAuth: true,\r\n    allowAPIKeyAuth: true,\r\n    allowOauth2: true\r\n  });\r\n  try {\r\n    const validationResult = await specParser.validate();\r\n    if (validationResult.status === ValidationStatus.Valid) {\r\n      const isValidSchema = OpenapiVersion3SchemaValidator(content);\r\n      if (isValidSchema) {\r\n        const apiList = await specParser.listSupportedAPIInfo();\r\n        return {\r\n          validationResult,\r\n          apiList\r\n        };\r\n      } else {\r\n        return {\r\n          validationResult: {\r\n            status: ValidationStatus.Error,\r\n            errors: [\r\n              {\r\n                type: ErrorType.SpecNotValid,\r\n                content: \"Invalid OpenAPI Spec\"\r\n              }\r\n            ],\r\n            warnings: []\r\n          },\r\n          apiList: []\r\n        };\r\n      }\r\n    } else {\r\n      return {\r\n        validationResult,\r\n        apiList: []\r\n      };\r\n    }\r\n  } catch (e) {\r\n    return {\r\n      validationResult: {\r\n        status: ValidationStatus.Error,\r\n        errors: [\r\n          {\r\n            type: ErrorType.SpecNotValid,\r\n            content: (e as Error).message\r\n          }\r\n        ],\r\n        warnings: []\r\n      },\r\n      apiList: []\r\n    };\r\n  }\r\n}\r\n\r\nexport function getDisplayErrorMessage(intl: IntlShape, errors: ErrorResult[]): string {\r\n  return errors.map((error) => getMessageFromErroType(intl, error)).join(\"\\n\");\r\n}\r\n\r\nexport function formatValidationErrorResult(intl: IntlShape, errors: ErrorResult[]): ErrorResult[] {\r\n  return errors.map((error) => ({\r\n    type: error.type,\r\n    content: getMessageFromErroType(intl, error),\r\n    data: error.data\r\n  }));\r\n}\r\n\r\nfunction getMessageFromErroType(intl: IntlShape, error: ErrorResult): string {\r\n  try {\r\n    switch (error.type) {\r\n      case ErrorType.SpecNotValid: {\r\n        return formatMessage(intl, \"invalidOpenApiSpec\");\r\n      }\r\n      case ErrorType.RemoteRefNotSupported:\r\n        return formatMessage(intl, \"invalidSpecRemoteRefNotSupportedErrorMessage\", { data: error.data.join(\", \") });\r\n      case ErrorType.NoServerInformation:\r\n        return formatMessage(intl, \"invalidSpecNoServerInformation\");\r\n      case ErrorType.UrlProtocolNotSupported:\r\n        return formatMessage(intl, \"invalidSpecUrlProtocolNotSupported\", { data: error.data });\r\n      case ErrorType.RelativeServerUrlNotSupported:\r\n        return formatMessage(intl, \"invalidSpecRelativeServerUrlNotSupported\");\r\n      case ErrorType.NoSupportedApi:\r\n        return formatMessage(intl, \"invalidSpecNoSupportedApi\");\r\n      case ErrorType.ResolveServerUrlFailed:\r\n        return error.content;\r\n      case ErrorType.SwaggerNotSupported:\r\n        return formatMessage(intl, \"invalidSpecSwaggerNotSupported\");\r\n\r\n      default:\r\n        return error.content;\r\n    }\r\n  } catch (e) {\r\n    return error.content;\r\n  }\r\n}\r\n","import { NotificationType, ErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\n\r\nexport enum NotificationActionTypes {\r\n  Show = \"Show_Notification\"\r\n}\r\n\r\nexport const showNotification = (\r\n  show: boolean,\r\n  message?: string,\r\n  type?: NotificationType,\r\n  errorContext?: ErrorContext,\r\n  externalLink?: string\r\n): IAction => ({\r\n  type: `${StateKeys.Notification}/${NotificationActionTypes.Show}`,\r\n  payload: {\r\n    show,\r\n    message,\r\n    type,\r\n    errorContext,\r\n    externalLink\r\n  }\r\n});\r\n","/* This is the file generated using ajv-cli@2.1. Use versino 2.1 since the latest version does not support json schema draft-04.*/\r\n/* Install ajv-cli using npm install ajv-cli@2.1 -g */\r\n/* Run this command to generate code:  ajv compile -s ./schemas/version3.json -o ./validate/validate_schema_version3.js */\r\n/* eslint-disable */\r\n\"use strict\";\r\nvar formats = require(\"ajv/lib/compile/formats\")();\r\nvar equal = require(\"ajv/lib/compile/equal\");\r\nvar validate = (function () {\r\n  var pattern0 = new RegExp(\"^x-\");\r\n  var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n  var pattern2 = new RegExp(\"^\\\\/\");\r\n  var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n  var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n  var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n  var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n  var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n  var refVal = [];\r\n  var refVal1 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            if (data.title === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"title\"\r\n                  },\r\n                  message: \"should have required property 'title'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.title !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".title\",\r\n                    schemaPath: \"#/properties/title/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.description === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.description !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".description\",\r\n                      schemaPath: \"#/properties/description/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.termsOfService;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (errors === errs_1) {\r\n                    if (typeof data1 === \"string\") {\r\n                      if (!formats[\"uri-reference\"].test(data1)) {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"format\",\r\n                            dataPath: (dataPath || \"\") + \".termsOfService\",\r\n                            schemaPath: \"#/properties/termsOfService/format\",\r\n                            params: {\r\n                              format: \"uri-reference\"\r\n                            },\r\n                            message: 'should match format \"uri-reference\"'\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".termsOfService\",\r\n                          schemaPath: \"#/properties/termsOfService/type\",\r\n                          params: {\r\n                            type: \"string\"\r\n                          },\r\n                          message: \"should be string\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.contact;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    var errs_2 = errors;\r\n                    if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                      var errs__2 = errors;\r\n                      var valid3 = true;\r\n                      for (var key2 in data1) {\r\n                        var isAdditional2 = !(false || key2 == \"name\" || key2 == \"url\" || key2 == \"email\" || pattern0.test(key2));\r\n                        if (isAdditional2) {\r\n                          valid3 = false;\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"additionalProperties\",\r\n                              dataPath: (dataPath || \"\") + \".contact\",\r\n                              schemaPath: \"#/definitions/Contact/additionalProperties\",\r\n                              params: {\r\n                                additionalProperty: \"\" + key2 + \"\"\r\n                              },\r\n                              message: \"should NOT have additional properties\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                          break;\r\n                        }\r\n                      }\r\n                      if (valid3) {\r\n                        if (data1.name === undefined) {\r\n                          valid3 = true;\r\n                        } else {\r\n                          var errs_3 = errors;\r\n                          if (typeof data1.name !== \"string\") {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".contact.name\",\r\n                                schemaPath: \"#/definitions/Contact/properties/name/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                        }\r\n                        if (valid3) {\r\n                          var data2 = data1.url;\r\n                          if (data2 === undefined) {\r\n                            valid3 = true;\r\n                          } else {\r\n                            var errs_3 = errors;\r\n                            if (errors === errs_3) {\r\n                              if (typeof data2 === \"string\") {\r\n                                if (!formats[\"uri-reference\"].test(data2)) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"format\",\r\n                                      dataPath: (dataPath || \"\") + \".contact.url\",\r\n                                      schemaPath: \"#/definitions/Contact/properties/url/format\",\r\n                                      params: {\r\n                                        format: \"uri-reference\"\r\n                                      },\r\n                                      message: 'should match format \"uri-reference\"'\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              } else {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".contact.url\",\r\n                                    schemaPath: \"#/definitions/Contact/properties/url/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            }\r\n                            var valid3 = errors === errs_3;\r\n                          }\r\n                          if (valid3) {\r\n                            var data2 = data1.email;\r\n                            if (data2 === undefined) {\r\n                              valid3 = true;\r\n                            } else {\r\n                              var errs_3 = errors;\r\n                              if (errors === errs_3) {\r\n                                if (typeof data2 === \"string\") {\r\n                                  if (!formats.email.test(data2)) {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"format\",\r\n                                        dataPath: (dataPath || \"\") + \".contact.email\",\r\n                                        schemaPath: \"#/definitions/Contact/properties/email/format\",\r\n                                        params: {\r\n                                          format: \"email\"\r\n                                        },\r\n                                        message: 'should match format \"email\"'\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                } else {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".contact.email\",\r\n                                      schemaPath: \"#/definitions/Contact/properties/email/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              }\r\n                              var valid3 = errors === errs_3;\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".contact\",\r\n                          schemaPath: \"#/definitions/Contact/type\",\r\n                          params: {\r\n                            type: \"object\"\r\n                          },\r\n                          message: \"should be object\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid2 = errors === errs_2;\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    var data1 = data.license;\r\n                    if (data1 === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      var errs_2 = errors;\r\n                      if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                        if (true) {\r\n                          var errs__2 = errors;\r\n                          var valid3 = true;\r\n                          for (var key2 in data1) {\r\n                            var isAdditional2 = !(false || key2 == \"name\" || key2 == \"url\" || pattern0.test(key2));\r\n                            if (isAdditional2) {\r\n                              valid3 = false;\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"additionalProperties\",\r\n                                  dataPath: (dataPath || \"\") + \".license\",\r\n                                  schemaPath: \"#/definitions/License/additionalProperties\",\r\n                                  params: {\r\n                                    additionalProperty: \"\" + key2 + \"\"\r\n                                  },\r\n                                  message: \"should NOT have additional properties\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                              break;\r\n                            }\r\n                          }\r\n                          if (valid3) {\r\n                            if (data1.name === undefined) {\r\n                              valid3 = false;\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"required\",\r\n                                  dataPath: (dataPath || \"\") + \".license\",\r\n                                  schemaPath: \"#/definitions/License/required\",\r\n                                  params: {\r\n                                    missingProperty: \"name\"\r\n                                  },\r\n                                  message: \"should have required property 'name'\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            } else {\r\n                              var errs_3 = errors;\r\n                              if (typeof data1.name !== \"string\") {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".license.name\",\r\n                                    schemaPath: \"#/definitions/License/properties/name/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                              var valid3 = errors === errs_3;\r\n                            }\r\n                            if (valid3) {\r\n                              var data2 = data1.url;\r\n                              if (data2 === undefined) {\r\n                                valid3 = true;\r\n                              } else {\r\n                                var errs_3 = errors;\r\n                                if (errors === errs_3) {\r\n                                  if (typeof data2 === \"string\") {\r\n                                    if (!formats[\"uri-reference\"].test(data2)) {\r\n                                      validate.errors = [\r\n                                        {\r\n                                          keyword: \"format\",\r\n                                          dataPath: (dataPath || \"\") + \".license.url\",\r\n                                          schemaPath: \"#/definitions/License/properties/url/format\",\r\n                                          params: {\r\n                                            format: \"uri-reference\"\r\n                                          },\r\n                                          message: 'should match format \"uri-reference\"'\r\n                                        }\r\n                                      ];\r\n                                      return false;\r\n                                    }\r\n                                  } else {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".license.url\",\r\n                                        schemaPath: \"#/definitions/License/properties/url/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                }\r\n                                var valid3 = errors === errs_3;\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      } else {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".license\",\r\n                            schemaPath: \"#/definitions/License/type\",\r\n                            params: {\r\n                              type: \"object\"\r\n                            },\r\n                            message: \"should be object\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid2 = errors === errs_2;\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      if (data.version === undefined) {\r\n                        valid1 = false;\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"required\",\r\n                            dataPath: (dataPath || \"\") + \"\",\r\n                            schemaPath: \"#/required\",\r\n                            params: {\r\n                              missingProperty: \"version\"\r\n                            },\r\n                            message: \"should have required property 'version'\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (typeof data.version !== \"string\") {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".version\",\r\n                              schemaPath: \"#/properties/version/type\",\r\n                              params: {\r\n                                type: \"string\"\r\n                              },\r\n                              message: \"should be string\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal1.schema = {\r\n    type: \"object\",\r\n    required: [\"title\", \"version\"],\r\n    properties: {\r\n      title: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      termsOfService: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      contact: {\r\n        $ref: \"#/definitions/Contact\"\r\n      },\r\n      license: {\r\n        $ref: \"#/definitions/License\"\r\n      },\r\n      version: {\r\n        type: \"string\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal1.errors = null;\r\n  refVal[1] = refVal1;\r\n  var refVal2 = {\r\n    type: \"object\",\r\n    properties: {\r\n      name: {\r\n        type: \"string\"\r\n      },\r\n      url: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      email: {\r\n        type: \"string\",\r\n        format: \"email\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[2] = refVal2;\r\n  var refVal3 = {\r\n    type: \"object\",\r\n    required: [\"name\"],\r\n    properties: {\r\n      name: {\r\n        type: \"string\"\r\n      },\r\n      url: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[3] = refVal3;\r\n  var refVal4 = {\r\n    type: \"object\",\r\n    required: [\"url\"],\r\n    properties: {\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      url: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[4] = refVal4;\r\n  var refVal5 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || key0 == \"url\" || key0 == \"description\" || key0 == \"variables\" || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            if (data.url === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"url\"\r\n                  },\r\n                  message: \"should have required property 'url'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.url !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".url\",\r\n                    schemaPath: \"#/properties/url/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.description === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.description !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".description\",\r\n                      schemaPath: \"#/properties/description/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.variables;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    var errs__1 = errors;\r\n                    var valid2 = true;\r\n                    for (var key1 in data1) {\r\n                      var data2 = data1[key1];\r\n                      var errs_2 = errors;\r\n                      var errs_3 = errors;\r\n                      if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                        if (true) {\r\n                          var errs__3 = errors;\r\n                          var valid4 = true;\r\n                          for (var key3 in data2) {\r\n                            var isAdditional3 = !(\r\n                              false ||\r\n                              key3 == \"enum\" ||\r\n                              key3 == \"default\" ||\r\n                              key3 == \"description\" ||\r\n                              pattern0.test(key3)\r\n                            );\r\n                            if (isAdditional3) {\r\n                              valid4 = false;\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"additionalProperties\",\r\n                                  dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"']\",\r\n                                  schemaPath: \"#/definitions/ServerVariable/additionalProperties\",\r\n                                  params: {\r\n                                    additionalProperty: \"\" + key3 + \"\"\r\n                                  },\r\n                                  message: \"should NOT have additional properties\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                              break;\r\n                            }\r\n                          }\r\n                          if (valid4) {\r\n                            var data3 = data2.enum;\r\n                            if (data3 === undefined) {\r\n                              valid4 = true;\r\n                            } else {\r\n                              var errs_4 = errors;\r\n                              if (Array.isArray(data3)) {\r\n                                var errs__4 = errors;\r\n                                var valid4;\r\n                                for (var i4 = 0; i4 < data3.length; i4++) {\r\n                                  var errs_5 = errors;\r\n                                  if (typeof data3[i4] !== \"string\") {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"'].enum[\" + i4 + \"]\",\r\n                                        schemaPath: \"#/definitions/ServerVariable/properties/enum/items/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                  var valid5 = errors === errs_5;\r\n                                  if (!valid5) break;\r\n                                }\r\n                              } else {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"'].enum\",\r\n                                    schemaPath: \"#/definitions/ServerVariable/properties/enum/type\",\r\n                                    params: {\r\n                                      type: \"array\"\r\n                                    },\r\n                                    message: \"should be array\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                              var valid4 = errors === errs_4;\r\n                            }\r\n                            if (valid4) {\r\n                              if (data2.default === undefined) {\r\n                                valid4 = false;\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"required\",\r\n                                    dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"']\",\r\n                                    schemaPath: \"#/definitions/ServerVariable/required\",\r\n                                    params: {\r\n                                      missingProperty: \"default\"\r\n                                    },\r\n                                    message: \"should have required property 'default'\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              } else {\r\n                                var errs_4 = errors;\r\n                                if (typeof data2.default !== \"string\") {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"'].default\",\r\n                                      schemaPath: \"#/definitions/ServerVariable/properties/default/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                var valid4 = errors === errs_4;\r\n                              }\r\n                              if (valid4) {\r\n                                if (data2.description === undefined) {\r\n                                  valid4 = true;\r\n                                } else {\r\n                                  var errs_4 = errors;\r\n                                  if (typeof data2.description !== \"string\") {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"'].description\",\r\n                                        schemaPath: \"#/definitions/ServerVariable/properties/description/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                  var valid4 = errors === errs_4;\r\n                                }\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      } else {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".variables['\" + key1 + \"']\",\r\n                            schemaPath: \"#/definitions/ServerVariable/type\",\r\n                            params: {\r\n                              type: \"object\"\r\n                            },\r\n                            message: \"should be object\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid3 = errors === errs_3;\r\n                      var valid2 = errors === errs_2;\r\n                      if (!valid2) break;\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".variables\",\r\n                        schemaPath: \"#/properties/variables/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal5.schema = {\r\n    type: \"object\",\r\n    required: [\"url\"],\r\n    properties: {\r\n      url: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      variables: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          $ref: \"#/definitions/ServerVariable\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal5.errors = null;\r\n  refVal[5] = refVal5;\r\n  var refVal6 = {\r\n    type: \"object\",\r\n    required: [\"default\"],\r\n    properties: {\r\n      enum: {\r\n        type: \"array\",\r\n        items: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      default: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[6] = refVal6;\r\n  var refVal7 = {\r\n    type: \"object\",\r\n    additionalProperties: {\r\n      type: \"array\",\r\n      items: {\r\n        type: \"string\"\r\n      }\r\n    }\r\n  };\r\n  refVal[7] = refVal7;\r\n  var refVal8 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || key0 == \"name\" || key0 == \"description\" || key0 == \"externalDocs\" || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            if (data.name === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"name\"\r\n                  },\r\n                  message: \"should have required property 'name'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.name !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".name\",\r\n                    schemaPath: \"#/properties/name/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.description === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.description !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".description\",\r\n                      schemaPath: \"#/properties/description/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.externalDocs;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  var errs_2 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    if (true) {\r\n                      var errs__2 = errors;\r\n                      var valid3 = true;\r\n                      for (var key2 in data1) {\r\n                        var isAdditional2 = !(false || key2 == \"description\" || key2 == \"url\" || pattern0.test(key2));\r\n                        if (isAdditional2) {\r\n                          valid3 = false;\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"additionalProperties\",\r\n                              dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                              schemaPath: \"#/definitions/ExternalDocumentation/additionalProperties\",\r\n                              params: {\r\n                                additionalProperty: \"\" + key2 + \"\"\r\n                              },\r\n                              message: \"should NOT have additional properties\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                          break;\r\n                        }\r\n                      }\r\n                      if (valid3) {\r\n                        if (data1.description === undefined) {\r\n                          valid3 = true;\r\n                        } else {\r\n                          var errs_3 = errors;\r\n                          if (typeof data1.description !== \"string\") {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".externalDocs.description\",\r\n                                schemaPath: \"#/definitions/ExternalDocumentation/properties/description/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                        }\r\n                        if (valid3) {\r\n                          var data2 = data1.url;\r\n                          if (data2 === undefined) {\r\n                            valid3 = false;\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                                schemaPath: \"#/definitions/ExternalDocumentation/required\",\r\n                                params: {\r\n                                  missingProperty: \"url\"\r\n                                },\r\n                                message: \"should have required property 'url'\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          } else {\r\n                            var errs_3 = errors;\r\n                            if (errors === errs_3) {\r\n                              if (typeof data2 === \"string\") {\r\n                                if (!formats[\"uri-reference\"].test(data2)) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"format\",\r\n                                      dataPath: (dataPath || \"\") + \".externalDocs.url\",\r\n                                      schemaPath: \"#/definitions/ExternalDocumentation/properties/url/format\",\r\n                                      params: {\r\n                                        format: \"uri-reference\"\r\n                                      },\r\n                                      message: 'should match format \"uri-reference\"'\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              } else {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".externalDocs.url\",\r\n                                    schemaPath: \"#/definitions/ExternalDocumentation/properties/url/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            }\r\n                            var valid3 = errors === errs_3;\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                        schemaPath: \"#/definitions/ExternalDocumentation/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid2 = errors === errs_2;\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal8.schema = {\r\n    type: \"object\",\r\n    required: [\"name\"],\r\n    properties: {\r\n      name: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      externalDocs: {\r\n        $ref: \"#/definitions/ExternalDocumentation\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal8.errors = null;\r\n  refVal[8] = refVal8;\r\n  var refVal9 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || pattern2.test(key0) || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          for (var key0 in data) {\r\n            if (pattern2.test(key0)) {\r\n              var errs_1 = errors;\r\n              if (!refVal10(data[key0], (dataPath || \"\") + \"['\" + key0 + \"']\", data, key0, rootData)) {\r\n                if (vErrors === null) vErrors = refVal10.errors;\r\n                else vErrors = vErrors.concat(refVal10.errors);\r\n                errors = vErrors.length;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n              if (!valid1) break;\r\n            } else valid1 = true;\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal9.schema = {\r\n    type: \"object\",\r\n    patternProperties: {\r\n      \"^\\\\/\": {\r\n        $ref: \"#/definitions/PathItem\"\r\n      },\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal9.errors = null;\r\n  refVal[9] = refVal9;\r\n  var refVal10 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(\r\n            false ||\r\n            key0 == \"$ref\" ||\r\n            key0 == \"summary\" ||\r\n            key0 == \"description\" ||\r\n            key0 == \"servers\" ||\r\n            key0 == \"parameters\" ||\r\n            pattern3.test(key0) ||\r\n            pattern0.test(key0)\r\n          );\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          if (data.$ref === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (typeof data.$ref !== \"string\") {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".$ref\",\r\n                  schemaPath: \"#/properties/%24ref/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            if (data.summary === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.summary !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".summary\",\r\n                    schemaPath: \"#/properties/summary/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.description === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.description !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".description\",\r\n                      schemaPath: \"#/properties/description/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.servers;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (Array.isArray(data1)) {\r\n                    var errs__1 = errors;\r\n                    var valid1;\r\n                    for (var i1 = 0; i1 < data1.length; i1++) {\r\n                      var errs_2 = errors;\r\n                      if (!refVal[5](data1[i1], (dataPath || \"\") + \".servers[\" + i1 + \"]\", data1, i1, rootData)) {\r\n                        if (vErrors === null) vErrors = refVal[5].errors;\r\n                        else vErrors = vErrors.concat(refVal[5].errors);\r\n                        errors = vErrors.length;\r\n                      }\r\n                      var valid2 = errors === errs_2;\r\n                      if (!valid2) break;\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".servers\",\r\n                        schemaPath: \"#/properties/servers/type\",\r\n                        params: {\r\n                          type: \"array\"\r\n                        },\r\n                        message: \"should be array\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.parameters;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (Array.isArray(data1)) {\r\n                      var valid1 = true;\r\n                      if (data1.length > 1) {\r\n                        var i = data1.length,\r\n                          j;\r\n                        outer: for (; i--; ) {\r\n                          for (j = i; j--; ) {\r\n                            if (equal(data1[i], data1[j])) {\r\n                              valid1 = false;\r\n                              break outer;\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                      if (!valid1) {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"uniqueItems\",\r\n                            dataPath: (dataPath || \"\") + \".parameters\",\r\n                            schemaPath: \"#/properties/parameters/uniqueItems\",\r\n                            params: {\r\n                              i: i,\r\n                              j: j\r\n                            },\r\n                            message: \"should NOT have duplicate items (items ## \" + j + \" and \" + i + \" are identical)\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      } else {\r\n                        var errs__1 = errors;\r\n                        var valid1;\r\n                        for (var i1 = 0; i1 < data1.length; i1++) {\r\n                          var data2 = data1[i1];\r\n                          var errs_2 = errors;\r\n                          var errs__2 = errors;\r\n                          var prevValid2 = false;\r\n                          var valid2 = false;\r\n                          var errs_3 = errors;\r\n                          if (!refVal11(data2, (dataPath || \"\") + \".parameters[\" + i1 + \"]\", data1, i1, rootData)) {\r\n                            if (vErrors === null) vErrors = refVal11.errors;\r\n                            else vErrors = vErrors.concat(refVal11.errors);\r\n                            errors = vErrors.length;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                          if (valid3) valid2 = prevValid2 = true;\r\n                          var errs_3 = errors;\r\n                          var errs_4 = errors;\r\n                          if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                            var missing4;\r\n                            if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                              var err = {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]\",\r\n                                schemaPath: \"#/definitions/Reference/required\",\r\n                                params: {\r\n                                  missingProperty: \"\" + missing4 + \"\"\r\n                                },\r\n                                message: \"should have required property '\" + missing4 + \"'\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            } else {\r\n                              var errs__4 = errors;\r\n                              var valid5 = true;\r\n                              for (var key4 in data2) {\r\n                                if (pattern4.test(key4)) {\r\n                                  var data3 = data2[key4];\r\n                                  var errs_5 = errors;\r\n                                  if (errors === errs_5) {\r\n                                    if (typeof data3 === \"string\") {\r\n                                      if (!formats[\"uri-reference\"].test(data3)) {\r\n                                        var err = {\r\n                                          keyword: \"format\",\r\n                                          dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                          schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                          params: {\r\n                                            format: \"uri-reference\"\r\n                                          },\r\n                                          message: 'should match format \"uri-reference\"'\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      }\r\n                                    } else {\r\n                                      var err = {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  }\r\n                                  var valid5 = errors === errs_5;\r\n                                  if (!valid5) break;\r\n                                } else valid5 = true;\r\n                              }\r\n                            }\r\n                          } else {\r\n                            var err = {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]\",\r\n                              schemaPath: \"#/definitions/Reference/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          }\r\n                          var valid4 = errors === errs_4;\r\n                          var valid3 = errors === errs_3;\r\n                          if (valid3 && prevValid2) valid2 = false;\r\n                          else {\r\n                            if (valid3) valid2 = prevValid2 = true;\r\n                          }\r\n                          if (!valid2) {\r\n                            var err = {\r\n                              keyword: \"oneOf\",\r\n                              dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]\",\r\n                              schemaPath: \"#/properties/parameters/items/oneOf\",\r\n                              params: {},\r\n                              message: \"should match exactly one schema in oneOf\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                            validate.errors = vErrors;\r\n                            return false;\r\n                          } else {\r\n                            errors = errs__2;\r\n                            if (vErrors !== null) {\r\n                              if (errs__2) vErrors.length = errs__2;\r\n                              else vErrors = null;\r\n                            }\r\n                          }\r\n                          var valid2 = errors === errs_2;\r\n                          if (!valid2) break;\r\n                        }\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".parameters\",\r\n                          schemaPath: \"#/properties/parameters/type\",\r\n                          params: {\r\n                            type: \"array\"\r\n                          },\r\n                          message: \"should be array\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    for (var key0 in data) {\r\n                      if (pattern3.test(key0)) {\r\n                        var errs_1 = errors;\r\n                        if (!refVal23(data[key0], (dataPath || \"\") + \"['\" + key0 + \"']\", data, key0, rootData)) {\r\n                          if (vErrors === null) vErrors = refVal23.errors;\r\n                          else vErrors = vErrors.concat(refVal23.errors);\r\n                          errors = vErrors.length;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                        if (!valid1) break;\r\n                      } else valid1 = true;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal10.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      $ref: {\r\n        type: \"string\"\r\n      },\r\n      summary: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      servers: {\r\n        type: \"array\",\r\n        items: {\r\n          $ref: \"#/definitions/Server\"\r\n        }\r\n      },\r\n      parameters: {\r\n        type: \"array\",\r\n        items: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Parameter\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        uniqueItems: true\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^(get|put|post|delete|options|head|patch|trace)$\": {\r\n        $ref: \"#/definitions/Operation\"\r\n      },\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal10.errors = null;\r\n  refVal[10] = refVal10;\r\n  var refVal11 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            if (data.name === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"name\"\r\n                  },\r\n                  message: \"should have required property 'name'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.name !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".name\",\r\n                    schemaPath: \"#/properties/name/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.in === undefined) {\r\n                valid1 = false;\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"required\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/required\",\r\n                    params: {\r\n                      missingProperty: \"in\"\r\n                    },\r\n                    message: \"should have required property 'in'\"\r\n                  }\r\n                ];\r\n                return false;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.in !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".in\",\r\n                      schemaPath: \"#/properties/in/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.description === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.description !== \"string\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".description\",\r\n                        schemaPath: \"#/properties/description/type\",\r\n                        params: {\r\n                          type: \"string\"\r\n                        },\r\n                        message: \"should be string\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  if (data.required === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (typeof data.required !== \"boolean\") {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".required\",\r\n                          schemaPath: \"#/properties/required/type\",\r\n                          params: {\r\n                            type: \"boolean\"\r\n                          },\r\n                          message: \"should be boolean\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    if (data.deprecated === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (typeof data.deprecated !== \"boolean\") {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".deprecated\",\r\n                            schemaPath: \"#/properties/deprecated/type\",\r\n                            params: {\r\n                              type: \"boolean\"\r\n                            },\r\n                            message: \"should be boolean\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      if (data.allowEmptyValue === undefined) {\r\n                        valid1 = true;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (typeof data.allowEmptyValue !== \"boolean\") {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".allowEmptyValue\",\r\n                              schemaPath: \"#/properties/allowEmptyValue/type\",\r\n                              params: {\r\n                                type: \"boolean\"\r\n                              },\r\n                              message: \"should be boolean\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                      if (valid1) {\r\n                        if (data.style === undefined) {\r\n                          valid1 = true;\r\n                        } else {\r\n                          var errs_1 = errors;\r\n                          if (typeof data.style !== \"string\") {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".style\",\r\n                                schemaPath: \"#/properties/style/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                          var valid1 = errors === errs_1;\r\n                        }\r\n                        if (valid1) {\r\n                          if (data.explode === undefined) {\r\n                            valid1 = true;\r\n                          } else {\r\n                            var errs_1 = errors;\r\n                            if (typeof data.explode !== \"boolean\") {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".explode\",\r\n                                  schemaPath: \"#/properties/explode/type\",\r\n                                  params: {\r\n                                    type: \"boolean\"\r\n                                  },\r\n                                  message: \"should be boolean\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid1 = errors === errs_1;\r\n                          }\r\n                          if (valid1) {\r\n                            if (data.allowReserved === undefined) {\r\n                              valid1 = true;\r\n                            } else {\r\n                              var errs_1 = errors;\r\n                              if (typeof data.allowReserved !== \"boolean\") {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".allowReserved\",\r\n                                    schemaPath: \"#/properties/allowReserved/type\",\r\n                                    params: {\r\n                                      type: \"boolean\"\r\n                                    },\r\n                                    message: \"should be boolean\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                              var valid1 = errors === errs_1;\r\n                            }\r\n                            if (valid1) {\r\n                              var data1 = data.schema;\r\n                              if (data1 === undefined) {\r\n                                valid1 = true;\r\n                              } else {\r\n                                var errs_1 = errors;\r\n                                var errs__1 = errors;\r\n                                var prevValid1 = false;\r\n                                var valid1 = false;\r\n                                var errs_2 = errors;\r\n                                if (!refVal12(data1, (dataPath || \"\") + \".schema\", data, \"schema\", rootData)) {\r\n                                  if (vErrors === null) vErrors = refVal12.errors;\r\n                                  else vErrors = vErrors.concat(refVal12.errors);\r\n                                  errors = vErrors.length;\r\n                                }\r\n                                var valid2 = errors === errs_2;\r\n                                if (valid2) valid1 = prevValid1 = true;\r\n                                var errs_2 = errors;\r\n                                var errs_3 = errors;\r\n                                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                  var missing3;\r\n                                  if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                                    var err = {\r\n                                      keyword: \"required\",\r\n                                      dataPath: (dataPath || \"\") + \".schema\",\r\n                                      schemaPath: \"#/definitions/Reference/required\",\r\n                                      params: {\r\n                                        missingProperty: \"\" + missing3 + \"\"\r\n                                      },\r\n                                      message: \"should have required property '\" + missing3 + \"'\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  } else {\r\n                                    var errs__3 = errors;\r\n                                    var valid4 = true;\r\n                                    for (var key3 in data1) {\r\n                                      if (pattern4.test(key3)) {\r\n                                        var data2 = data1[key3];\r\n                                        var errs_4 = errors;\r\n                                        if (errors === errs_4) {\r\n                                          if (typeof data2 === \"string\") {\r\n                                            if (!formats[\"uri-reference\"].test(data2)) {\r\n                                              var err = {\r\n                                                keyword: \"format\",\r\n                                                dataPath: (dataPath || \"\") + \".schema['\" + key3 + \"']\",\r\n                                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                params: {\r\n                                                  format: \"uri-reference\"\r\n                                                },\r\n                                                message: 'should match format \"uri-reference\"'\r\n                                              };\r\n                                              if (vErrors === null) vErrors = [err];\r\n                                              else vErrors.push(err);\r\n                                              errors++;\r\n                                            }\r\n                                          } else {\r\n                                            var err = {\r\n                                              keyword: \"type\",\r\n                                              dataPath: (dataPath || \"\") + \".schema['\" + key3 + \"']\",\r\n                                              schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                              params: {\r\n                                                type: \"string\"\r\n                                              },\r\n                                              message: \"should be string\"\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                        }\r\n                                        var valid4 = errors === errs_4;\r\n                                        if (!valid4) break;\r\n                                      } else valid4 = true;\r\n                                    }\r\n                                  }\r\n                                } else {\r\n                                  var err = {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".schema\",\r\n                                    schemaPath: \"#/definitions/Reference/type\",\r\n                                    params: {\r\n                                      type: \"object\"\r\n                                    },\r\n                                    message: \"should be object\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                                var valid3 = errors === errs_3;\r\n                                var valid2 = errors === errs_2;\r\n                                if (valid2 && prevValid1) valid1 = false;\r\n                                else {\r\n                                  if (valid2) valid1 = prevValid1 = true;\r\n                                }\r\n                                if (!valid1) {\r\n                                  var err = {\r\n                                    keyword: \"oneOf\",\r\n                                    dataPath: (dataPath || \"\") + \".schema\",\r\n                                    schemaPath: \"#/properties/schema/oneOf\",\r\n                                    params: {},\r\n                                    message: \"should match exactly one schema in oneOf\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                  validate.errors = vErrors;\r\n                                  return false;\r\n                                } else {\r\n                                  errors = errs__1;\r\n                                  if (vErrors !== null) {\r\n                                    if (errs__1) vErrors.length = errs__1;\r\n                                    else vErrors = null;\r\n                                  }\r\n                                }\r\n                                var valid1 = errors === errs_1;\r\n                              }\r\n                              if (valid1) {\r\n                                var data1 = data.content;\r\n                                if (data1 === undefined) {\r\n                                  valid1 = true;\r\n                                } else {\r\n                                  var errs_1 = errors;\r\n                                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                    if (Object.keys(data1).length > 1) {\r\n                                      validate.errors = [\r\n                                        {\r\n                                          keyword: \"maxProperties\",\r\n                                          dataPath: (dataPath || \"\") + \".content\",\r\n                                          schemaPath: \"#/properties/content/maxProperties\",\r\n                                          params: {\r\n                                            limit: 1\r\n                                          },\r\n                                          message: \"should NOT have more than 1 properties\"\r\n                                        }\r\n                                      ];\r\n                                      return false;\r\n                                    } else {\r\n                                      if (Object.keys(data1).length < 1) {\r\n                                        validate.errors = [\r\n                                          {\r\n                                            keyword: \"minProperties\",\r\n                                            dataPath: (dataPath || \"\") + \".content\",\r\n                                            schemaPath: \"#/properties/content/minProperties\",\r\n                                            params: {\r\n                                              limit: 1\r\n                                            },\r\n                                            message: \"should NOT have less than 1 properties\"\r\n                                          }\r\n                                        ];\r\n                                        return false;\r\n                                      } else {\r\n                                        var errs__1 = errors;\r\n                                        var valid2 = true;\r\n                                        for (var key1 in data1) {\r\n                                          var errs_2 = errors;\r\n                                          if (\r\n                                            !refVal16(\r\n                                              data1[key1],\r\n                                              (dataPath || \"\") + \".content['\" + key1 + \"']\",\r\n                                              data1,\r\n                                              key1,\r\n                                              rootData\r\n                                            )\r\n                                          ) {\r\n                                            if (vErrors === null) vErrors = refVal16.errors;\r\n                                            else vErrors = vErrors.concat(refVal16.errors);\r\n                                            errors = vErrors.length;\r\n                                          }\r\n                                          var valid2 = errors === errs_2;\r\n                                          if (!valid2) break;\r\n                                        }\r\n                                      }\r\n                                    }\r\n                                  } else {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".content\",\r\n                                        schemaPath: \"#/properties/content/type\",\r\n                                        params: {\r\n                                          type: \"object\"\r\n                                        },\r\n                                        message: \"should be object\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                  var valid1 = errors === errs_1;\r\n                                }\r\n                                if (valid1) {\r\n                                  if (valid1) {\r\n                                    var data1 = data.examples;\r\n                                    if (data1 === undefined) {\r\n                                      valid1 = true;\r\n                                    } else {\r\n                                      var errs_1 = errors;\r\n                                      if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                        var errs__1 = errors;\r\n                                        var valid2 = true;\r\n                                        for (var key1 in data1) {\r\n                                          var data2 = data1[key1];\r\n                                          var errs_2 = errors;\r\n                                          var errs__2 = errors;\r\n                                          var prevValid2 = false;\r\n                                          var valid2 = false;\r\n                                          var errs_3 = errors;\r\n                                          var errs_4 = errors;\r\n                                          if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                            var errs__4 = errors;\r\n                                            var valid5 = true;\r\n                                            for (var key4 in data2) {\r\n                                              var isAdditional4 = !(\r\n                                                false ||\r\n                                                key4 == \"summary\" ||\r\n                                                key4 == \"description\" ||\r\n                                                key4 == \"value\" ||\r\n                                                key4 == \"externalValue\" ||\r\n                                                pattern0.test(key4)\r\n                                              );\r\n                                              if (isAdditional4) {\r\n                                                valid5 = false;\r\n                                                var err = {\r\n                                                  keyword: \"additionalProperties\",\r\n                                                  dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                                  schemaPath: \"#/definitions/Example/additionalProperties\",\r\n                                                  params: {\r\n                                                    additionalProperty: \"\" + key4 + \"\"\r\n                                                  },\r\n                                                  message: \"should NOT have additional properties\"\r\n                                                };\r\n                                                if (vErrors === null) vErrors = [err];\r\n                                                else vErrors.push(err);\r\n                                                errors++;\r\n                                                break;\r\n                                              }\r\n                                            }\r\n                                            if (valid5) {\r\n                                              if (data2.summary === undefined) {\r\n                                                valid5 = true;\r\n                                              } else {\r\n                                                var errs_5 = errors;\r\n                                                if (typeof data2.summary !== \"string\") {\r\n                                                  var err = {\r\n                                                    keyword: \"type\",\r\n                                                    dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].summary\",\r\n                                                    schemaPath: \"#/definitions/Example/properties/summary/type\",\r\n                                                    params: {\r\n                                                      type: \"string\"\r\n                                                    },\r\n                                                    message: \"should be string\"\r\n                                                  };\r\n                                                  if (vErrors === null) vErrors = [err];\r\n                                                  else vErrors.push(err);\r\n                                                  errors++;\r\n                                                }\r\n                                                var valid5 = errors === errs_5;\r\n                                              }\r\n                                              if (valid5) {\r\n                                                if (data2.description === undefined) {\r\n                                                  valid5 = true;\r\n                                                } else {\r\n                                                  var errs_5 = errors;\r\n                                                  if (typeof data2.description !== \"string\") {\r\n                                                    var err = {\r\n                                                      keyword: \"type\",\r\n                                                      dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].description\",\r\n                                                      schemaPath: \"#/definitions/Example/properties/description/type\",\r\n                                                      params: {\r\n                                                        type: \"string\"\r\n                                                      },\r\n                                                      message: \"should be string\"\r\n                                                    };\r\n                                                    if (vErrors === null) vErrors = [err];\r\n                                                    else vErrors.push(err);\r\n                                                    errors++;\r\n                                                  }\r\n                                                  var valid5 = errors === errs_5;\r\n                                                }\r\n                                                if (valid5) {\r\n                                                  if (valid5) {\r\n                                                    var data3 = data2.externalValue;\r\n                                                    if (data3 === undefined) {\r\n                                                      valid5 = true;\r\n                                                    } else {\r\n                                                      var errs_5 = errors;\r\n                                                      if (errors === errs_5) {\r\n                                                        if (typeof data3 === \"string\") {\r\n                                                          if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                            var err = {\r\n                                                              keyword: \"format\",\r\n                                                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                                              schemaPath: \"#/definitions/Example/properties/externalValue/format\",\r\n                                                              params: {\r\n                                                                format: \"uri-reference\"\r\n                                                              },\r\n                                                              message: 'should match format \"uri-reference\"'\r\n                                                            };\r\n                                                            if (vErrors === null) vErrors = [err];\r\n                                                            else vErrors.push(err);\r\n                                                            errors++;\r\n                                                          }\r\n                                                        } else {\r\n                                                          var err = {\r\n                                                            keyword: \"type\",\r\n                                                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                                            schemaPath: \"#/definitions/Example/properties/externalValue/type\",\r\n                                                            params: {\r\n                                                              type: \"string\"\r\n                                                            },\r\n                                                            message: \"should be string\"\r\n                                                          };\r\n                                                          if (vErrors === null) vErrors = [err];\r\n                                                          else vErrors.push(err);\r\n                                                          errors++;\r\n                                                        }\r\n                                                      }\r\n                                                      var valid5 = errors === errs_5;\r\n                                                    }\r\n                                                  }\r\n                                                }\r\n                                              }\r\n                                            }\r\n                                          } else {\r\n                                            var err = {\r\n                                              keyword: \"type\",\r\n                                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                              schemaPath: \"#/definitions/Example/type\",\r\n                                              params: {\r\n                                                type: \"object\"\r\n                                              },\r\n                                              message: \"should be object\"\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                          var valid4 = errors === errs_4;\r\n                                          var valid3 = errors === errs_3;\r\n                                          if (valid3) valid2 = prevValid2 = true;\r\n                                          var errs_3 = errors;\r\n                                          var errs_4 = errors;\r\n                                          if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                            var missing4;\r\n                                            if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                              var err = {\r\n                                                keyword: \"required\",\r\n                                                dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                                schemaPath: \"#/definitions/Reference/required\",\r\n                                                params: {\r\n                                                  missingProperty: \"\" + missing4 + \"\"\r\n                                                },\r\n                                                message: \"should have required property '\" + missing4 + \"'\"\r\n                                              };\r\n                                              if (vErrors === null) vErrors = [err];\r\n                                              else vErrors.push(err);\r\n                                              errors++;\r\n                                            } else {\r\n                                              var errs__4 = errors;\r\n                                              var valid5 = true;\r\n                                              for (var key4 in data2) {\r\n                                                if (pattern4.test(key4)) {\r\n                                                  var data3 = data2[key4];\r\n                                                  var errs_5 = errors;\r\n                                                  if (errors === errs_5) {\r\n                                                    if (typeof data3 === \"string\") {\r\n                                                      if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                        var err = {\r\n                                                          keyword: \"format\",\r\n                                                          dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                          schemaPath:\r\n                                                            \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                          params: {\r\n                                                            format: \"uri-reference\"\r\n                                                          },\r\n                                                          message: 'should match format \"uri-reference\"'\r\n                                                        };\r\n                                                        if (vErrors === null) vErrors = [err];\r\n                                                        else vErrors.push(err);\r\n                                                        errors++;\r\n                                                      }\r\n                                                    } else {\r\n                                                      var err = {\r\n                                                        keyword: \"type\",\r\n                                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                        params: {\r\n                                                          type: \"string\"\r\n                                                        },\r\n                                                        message: \"should be string\"\r\n                                                      };\r\n                                                      if (vErrors === null) vErrors = [err];\r\n                                                      else vErrors.push(err);\r\n                                                      errors++;\r\n                                                    }\r\n                                                  }\r\n                                                  var valid5 = errors === errs_5;\r\n                                                  if (!valid5) break;\r\n                                                } else valid5 = true;\r\n                                              }\r\n                                            }\r\n                                          } else {\r\n                                            var err = {\r\n                                              keyword: \"type\",\r\n                                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                              schemaPath: \"#/definitions/Reference/type\",\r\n                                              params: {\r\n                                                type: \"object\"\r\n                                              },\r\n                                              message: \"should be object\"\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                          var valid4 = errors === errs_4;\r\n                                          var valid3 = errors === errs_3;\r\n                                          if (valid3 && prevValid2) valid2 = false;\r\n                                          else {\r\n                                            if (valid3) valid2 = prevValid2 = true;\r\n                                          }\r\n                                          if (!valid2) {\r\n                                            var err = {\r\n                                              keyword: \"oneOf\",\r\n                                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                              schemaPath: \"#/properties/examples/additionalProperties/oneOf\",\r\n                                              params: {},\r\n                                              message: \"should match exactly one schema in oneOf\"\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                            validate.errors = vErrors;\r\n                                            return false;\r\n                                          } else {\r\n                                            errors = errs__2;\r\n                                            if (vErrors !== null) {\r\n                                              if (errs__2) vErrors.length = errs__2;\r\n                                              else vErrors = null;\r\n                                            }\r\n                                          }\r\n                                          var valid2 = errors === errs_2;\r\n                                          if (!valid2) break;\r\n                                        }\r\n                                      } else {\r\n                                        validate.errors = [\r\n                                          {\r\n                                            keyword: \"type\",\r\n                                            dataPath: (dataPath || \"\") + \".examples\",\r\n                                            schemaPath: \"#/properties/examples/type\",\r\n                                            params: {\r\n                                              type: \"object\"\r\n                                            },\r\n                                            message: \"should be object\"\r\n                                          }\r\n                                        ];\r\n                                        return false;\r\n                                      }\r\n                                      var valid1 = errors === errs_1;\r\n                                    }\r\n                                  }\r\n                                }\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      if (errors === 0) {\r\n        var errs_1 = errors;\r\n        var errs_2 = errors;\r\n        var errs__2 = errors;\r\n        var errs_3 = errors;\r\n        if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n          var missing3;\r\n          if ((data.example === undefined && (missing3 = \".example\")) || (data.examples === undefined && (missing3 = \".examples\"))) {\r\n            var err = {};\r\n            if (vErrors === null) vErrors = [err];\r\n            else vErrors.push(err);\r\n            errors++;\r\n          }\r\n        }\r\n        var valid3 = errors === errs_3;\r\n        if (valid3) {\r\n          validate.errors = [\r\n            {\r\n              keyword: \"not\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/definitions/ExampleXORExamples/not\",\r\n              params: {},\r\n              message: \"should NOT be valid\"\r\n            }\r\n          ];\r\n          return false;\r\n        } else {\r\n          errors = errs__2;\r\n          if (vErrors !== null) {\r\n            if (errs__2) vErrors.length = errs__2;\r\n            else vErrors = null;\r\n          }\r\n        }\r\n        var valid2 = errors === errs_2;\r\n        var valid1 = errors === errs_1;\r\n        if (valid1) {\r\n          var errs_1 = errors;\r\n          var errs_2 = errors;\r\n          var errs__2 = errors;\r\n          var errs_3 = errors;\r\n          if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n            var missing3;\r\n            if ((data.schema === undefined && (missing3 = \".schema\")) || (data.content === undefined && (missing3 = \".content\"))) {\r\n              var err = {};\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            }\r\n          }\r\n          var valid3 = errors === errs_3;\r\n          if (valid3) {\r\n            validate.errors = [\r\n              {\r\n                keyword: \"not\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/SchemaXORContent/not\",\r\n                params: {},\r\n                message: \"should NOT be valid\"\r\n              }\r\n            ];\r\n            return false;\r\n          } else {\r\n            errors = errs__2;\r\n            if (vErrors !== null) {\r\n              if (errs__2) vErrors.length = errs__2;\r\n              else vErrors = null;\r\n            }\r\n            var errs__2 = errors;\r\n            var prevValid2 = false;\r\n            var valid2 = false;\r\n            var errs_3 = errors;\r\n            if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n              var missing3;\r\n              if (data.schema === undefined && (missing3 = \".schema\")) {\r\n                var err = {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/SchemaXORContent/oneOf/0/required\",\r\n                  params: {\r\n                    missingProperty: \"\" + missing3 + \"\"\r\n                  },\r\n                  message: \"should have required property '\" + missing3 + \"'\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            if (valid3) valid2 = prevValid2 = true;\r\n            var errs_3 = errors;\r\n            if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n              var missing3;\r\n              if (data.content === undefined && (missing3 = \".content\")) {\r\n                var err = {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/required\",\r\n                  params: {\r\n                    missingProperty: \"\" + missing3 + \"\"\r\n                  },\r\n                  message: \"should have required property '\" + missing3 + \"'\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n            }\r\n            if (errors === errs_3) {\r\n              var errs_4 = errors;\r\n              var errs__4 = errors;\r\n              var errs_5 = errors;\r\n              if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                var missing5;\r\n                if (data.style === undefined && (missing5 = \".style\")) {\r\n                  var err = {};\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                }\r\n              }\r\n              var valid5 = errors === errs_5;\r\n              if (valid5) {\r\n                var err = {\r\n                  keyword: \"not\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/0/not\",\r\n                  params: {},\r\n                  message: \"should NOT be valid\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              } else {\r\n                errors = errs__4;\r\n                if (vErrors !== null) {\r\n                  if (errs__4) vErrors.length = errs__4;\r\n                  else vErrors = null;\r\n                }\r\n              }\r\n              var valid4 = errors === errs_4;\r\n              if (valid4) {\r\n                var errs_4 = errors;\r\n                var errs__4 = errors;\r\n                var errs_5 = errors;\r\n                if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                  var missing5;\r\n                  if (data.explode === undefined && (missing5 = \".explode\")) {\r\n                    var err = {};\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                }\r\n                var valid5 = errors === errs_5;\r\n                if (valid5) {\r\n                  var err = {\r\n                    keyword: \"not\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/1/not\",\r\n                    params: {},\r\n                    message: \"should NOT be valid\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                } else {\r\n                  errors = errs__4;\r\n                  if (vErrors !== null) {\r\n                    if (errs__4) vErrors.length = errs__4;\r\n                    else vErrors = null;\r\n                  }\r\n                }\r\n                var valid4 = errors === errs_4;\r\n                if (valid4) {\r\n                  var errs_4 = errors;\r\n                  var errs__4 = errors;\r\n                  var errs_5 = errors;\r\n                  if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                    var missing5;\r\n                    if (data.allowReserved === undefined && (missing5 = \".allowReserved\")) {\r\n                      var err = {};\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                  }\r\n                  var valid5 = errors === errs_5;\r\n                  if (valid5) {\r\n                    var err = {\r\n                      keyword: \"not\",\r\n                      dataPath: (dataPath || \"\") + \"\",\r\n                      schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/2/not\",\r\n                      params: {},\r\n                      message: \"should NOT be valid\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  } else {\r\n                    errors = errs__4;\r\n                    if (vErrors !== null) {\r\n                      if (errs__4) vErrors.length = errs__4;\r\n                      else vErrors = null;\r\n                    }\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                  if (valid4) {\r\n                    var errs_4 = errors;\r\n                    var errs__4 = errors;\r\n                    var errs_5 = errors;\r\n                    if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                      var missing5;\r\n                      if (data.example === undefined && (missing5 = \".example\")) {\r\n                        var err = {};\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                    }\r\n                    var valid5 = errors === errs_5;\r\n                    if (valid5) {\r\n                      var err = {\r\n                        keyword: \"not\",\r\n                        dataPath: (dataPath || \"\") + \"\",\r\n                        schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/3/not\",\r\n                        params: {},\r\n                        message: \"should NOT be valid\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    } else {\r\n                      errors = errs__4;\r\n                      if (vErrors !== null) {\r\n                        if (errs__4) vErrors.length = errs__4;\r\n                        else vErrors = null;\r\n                      }\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    if (valid4) {\r\n                      var errs_4 = errors;\r\n                      var errs__4 = errors;\r\n                      var errs_5 = errors;\r\n                      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                        var missing5;\r\n                        if (data.examples === undefined && (missing5 = \".examples\")) {\r\n                          var err = {};\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                      }\r\n                      var valid5 = errors === errs_5;\r\n                      if (valid5) {\r\n                        var err = {\r\n                          keyword: \"not\",\r\n                          dataPath: (dataPath || \"\") + \"\",\r\n                          schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/4/not\",\r\n                          params: {},\r\n                          message: \"should NOT be valid\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      } else {\r\n                        errors = errs__4;\r\n                        if (vErrors !== null) {\r\n                          if (errs__4) vErrors.length = errs__4;\r\n                          else vErrors = null;\r\n                        }\r\n                      }\r\n                      var valid4 = errors === errs_4;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            if (valid3 && prevValid2) valid2 = false;\r\n            else {\r\n              if (valid3) valid2 = prevValid2 = true;\r\n            }\r\n            if (!valid2) {\r\n              var err = {\r\n                keyword: \"oneOf\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/SchemaXORContent/oneOf\",\r\n                params: {},\r\n                message: \"should match exactly one schema in oneOf\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n              validate.errors = vErrors;\r\n              return false;\r\n            } else {\r\n              errors = errs__2;\r\n              if (vErrors !== null) {\r\n                if (errs__2) vErrors.length = errs__2;\r\n                else vErrors = null;\r\n              }\r\n            }\r\n          }\r\n          var valid2 = errors === errs_2;\r\n          var valid1 = errors === errs_1;\r\n          if (valid1) {\r\n            var errs_1 = errors;\r\n            var errs_2 = errors;\r\n            var errs__2 = errors;\r\n            var prevValid2 = false;\r\n            var valid2 = false;\r\n            var errs_3 = errors;\r\n            if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n              if (true) {\r\n                var errs__3 = errors;\r\n                var valid4 = true;\r\n                if (data.in === undefined) {\r\n                  valid4 = true;\r\n                } else {\r\n                  var errs_4 = errors;\r\n                  var schema4 = refVal22.oneOf[0].properties.in.enum;\r\n                  var valid4;\r\n                  valid4 = false;\r\n                  for (var i4 = 0; i4 < schema4.length; i4++)\r\n                    if (equal(data.in, schema4[i4])) {\r\n                      valid4 = true;\r\n                      break;\r\n                    }\r\n                  if (!valid4) {\r\n                    var err = {\r\n                      keyword: \"enum\",\r\n                      dataPath: (dataPath || \"\") + \".in\",\r\n                      schemaPath: \"#/definitions/ParameterLocation/oneOf/0/properties/in/enum\",\r\n                      params: {\r\n                        allowedValues: schema4\r\n                      },\r\n                      message: \"should be equal to one of the allowed values\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                }\r\n                if (valid4) {\r\n                  if (data.style === undefined) {\r\n                    valid4 = true;\r\n                  } else {\r\n                    var errs_4 = errors;\r\n                    var schema4 = refVal22.oneOf[0].properties.style.enum;\r\n                    var valid4;\r\n                    valid4 = false;\r\n                    for (var i4 = 0; i4 < schema4.length; i4++)\r\n                      if (equal(data.style, schema4[i4])) {\r\n                        valid4 = true;\r\n                        break;\r\n                      }\r\n                    if (!valid4) {\r\n                      var err = {\r\n                        keyword: \"enum\",\r\n                        dataPath: (dataPath || \"\") + \".style\",\r\n                        schemaPath: \"#/definitions/ParameterLocation/oneOf/0/properties/style/enum\",\r\n                        params: {\r\n                          allowedValues: schema4\r\n                        },\r\n                        message: \"should be equal to one of the allowed values\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                  }\r\n                  if (valid4) {\r\n                    if (data.required === undefined) {\r\n                      valid4 = false;\r\n                      var err = {\r\n                        keyword: \"required\",\r\n                        dataPath: (dataPath || \"\") + \"\",\r\n                        schemaPath: \"#/definitions/ParameterLocation/oneOf/0/required\",\r\n                        params: {\r\n                          missingProperty: \"required\"\r\n                        },\r\n                        message: \"should have required property 'required'\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    } else {\r\n                      var errs_4 = errors;\r\n                      var schema4 = refVal22.oneOf[0].properties.required.enum;\r\n                      var valid4;\r\n                      valid4 = false;\r\n                      for (var i4 = 0; i4 < schema4.length; i4++)\r\n                        if (equal(data.required, schema4[i4])) {\r\n                          valid4 = true;\r\n                          break;\r\n                        }\r\n                      if (!valid4) {\r\n                        var err = {\r\n                          keyword: \"enum\",\r\n                          dataPath: (dataPath || \"\") + \".required\",\r\n                          schemaPath: \"#/definitions/ParameterLocation/oneOf/0/properties/required/enum\",\r\n                          params: {\r\n                            allowedValues: schema4\r\n                          },\r\n                          message: \"should be equal to one of the allowed values\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                      var valid4 = errors === errs_4;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            if (valid3) valid2 = prevValid2 = true;\r\n            var errs_3 = errors;\r\n            if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n              var errs__3 = errors;\r\n              var valid4 = true;\r\n              if (data.in === undefined) {\r\n                valid4 = true;\r\n              } else {\r\n                var errs_4 = errors;\r\n                var schema4 = refVal22.oneOf[1].properties.in.enum;\r\n                var valid4;\r\n                valid4 = false;\r\n                for (var i4 = 0; i4 < schema4.length; i4++)\r\n                  if (equal(data.in, schema4[i4])) {\r\n                    valid4 = true;\r\n                    break;\r\n                  }\r\n                if (!valid4) {\r\n                  var err = {\r\n                    keyword: \"enum\",\r\n                    dataPath: (dataPath || \"\") + \".in\",\r\n                    schemaPath: \"#/definitions/ParameterLocation/oneOf/1/properties/in/enum\",\r\n                    params: {\r\n                      allowedValues: schema4\r\n                    },\r\n                    message: \"should be equal to one of the allowed values\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                }\r\n                var valid4 = errors === errs_4;\r\n              }\r\n              if (valid4) {\r\n                if (data.style === undefined) {\r\n                  valid4 = true;\r\n                } else {\r\n                  var errs_4 = errors;\r\n                  var schema4 = refVal22.oneOf[1].properties.style.enum;\r\n                  var valid4;\r\n                  valid4 = false;\r\n                  for (var i4 = 0; i4 < schema4.length; i4++)\r\n                    if (equal(data.style, schema4[i4])) {\r\n                      valid4 = true;\r\n                      break;\r\n                    }\r\n                  if (!valid4) {\r\n                    var err = {\r\n                      keyword: \"enum\",\r\n                      dataPath: (dataPath || \"\") + \".style\",\r\n                      schemaPath: \"#/definitions/ParameterLocation/oneOf/1/properties/style/enum\",\r\n                      params: {\r\n                        allowedValues: schema4\r\n                      },\r\n                      message: \"should be equal to one of the allowed values\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                }\r\n              }\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            if (valid3 && prevValid2) valid2 = false;\r\n            else {\r\n              if (valid3) valid2 = prevValid2 = true;\r\n              var errs_3 = errors;\r\n              if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                var errs__3 = errors;\r\n                var valid4 = true;\r\n                if (data.in === undefined) {\r\n                  valid4 = true;\r\n                } else {\r\n                  var errs_4 = errors;\r\n                  var schema4 = refVal22.oneOf[2].properties.in.enum;\r\n                  var valid4;\r\n                  valid4 = false;\r\n                  for (var i4 = 0; i4 < schema4.length; i4++)\r\n                    if (equal(data.in, schema4[i4])) {\r\n                      valid4 = true;\r\n                      break;\r\n                    }\r\n                  if (!valid4) {\r\n                    var err = {\r\n                      keyword: \"enum\",\r\n                      dataPath: (dataPath || \"\") + \".in\",\r\n                      schemaPath: \"#/definitions/ParameterLocation/oneOf/2/properties/in/enum\",\r\n                      params: {\r\n                        allowedValues: schema4\r\n                      },\r\n                      message: \"should be equal to one of the allowed values\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                }\r\n                if (valid4) {\r\n                  if (data.style === undefined) {\r\n                    valid4 = true;\r\n                  } else {\r\n                    var errs_4 = errors;\r\n                    var schema4 = refVal22.oneOf[2].properties.style.enum;\r\n                    var valid4;\r\n                    valid4 = false;\r\n                    for (var i4 = 0; i4 < schema4.length; i4++)\r\n                      if (equal(data.style, schema4[i4])) {\r\n                        valid4 = true;\r\n                        break;\r\n                      }\r\n                    if (!valid4) {\r\n                      var err = {\r\n                        keyword: \"enum\",\r\n                        dataPath: (dataPath || \"\") + \".style\",\r\n                        schemaPath: \"#/definitions/ParameterLocation/oneOf/2/properties/style/enum\",\r\n                        params: {\r\n                          allowedValues: schema4\r\n                        },\r\n                        message: \"should be equal to one of the allowed values\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                  }\r\n                }\r\n              }\r\n              var valid3 = errors === errs_3;\r\n              if (valid3 && prevValid2) valid2 = false;\r\n              else {\r\n                if (valid3) valid2 = prevValid2 = true;\r\n                var errs_3 = errors;\r\n                if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                  var errs__3 = errors;\r\n                  var valid4 = true;\r\n                  if (data.in === undefined) {\r\n                    valid4 = true;\r\n                  } else {\r\n                    var errs_4 = errors;\r\n                    var schema4 = refVal22.oneOf[3].properties.in.enum;\r\n                    var valid4;\r\n                    valid4 = false;\r\n                    for (var i4 = 0; i4 < schema4.length; i4++)\r\n                      if (equal(data.in, schema4[i4])) {\r\n                        valid4 = true;\r\n                        break;\r\n                      }\r\n                    if (!valid4) {\r\n                      var err = {\r\n                        keyword: \"enum\",\r\n                        dataPath: (dataPath || \"\") + \".in\",\r\n                        schemaPath: \"#/definitions/ParameterLocation/oneOf/3/properties/in/enum\",\r\n                        params: {\r\n                          allowedValues: schema4\r\n                        },\r\n                        message: \"should be equal to one of the allowed values\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                  }\r\n                  if (valid4) {\r\n                    if (data.style === undefined) {\r\n                      valid4 = true;\r\n                    } else {\r\n                      var errs_4 = errors;\r\n                      var schema4 = refVal22.oneOf[3].properties.style.enum;\r\n                      var valid4;\r\n                      valid4 = false;\r\n                      for (var i4 = 0; i4 < schema4.length; i4++)\r\n                        if (equal(data.style, schema4[i4])) {\r\n                          valid4 = true;\r\n                          break;\r\n                        }\r\n                      if (!valid4) {\r\n                        var err = {\r\n                          keyword: \"enum\",\r\n                          dataPath: (dataPath || \"\") + \".style\",\r\n                          schemaPath: \"#/definitions/ParameterLocation/oneOf/3/properties/style/enum\",\r\n                          params: {\r\n                            allowedValues: schema4\r\n                          },\r\n                          message: \"should be equal to one of the allowed values\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                      var valid4 = errors === errs_4;\r\n                    }\r\n                  }\r\n                }\r\n                var valid3 = errors === errs_3;\r\n                if (valid3 && prevValid2) valid2 = false;\r\n                else {\r\n                  if (valid3) valid2 = prevValid2 = true;\r\n                }\r\n              }\r\n            }\r\n            if (!valid2) {\r\n              var err = {\r\n                keyword: \"oneOf\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/ParameterLocation/oneOf\",\r\n                params: {},\r\n                message: \"should match exactly one schema in oneOf\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n              validate.errors = vErrors;\r\n              return false;\r\n            } else {\r\n              errors = errs__2;\r\n              if (vErrors !== null) {\r\n                if (errs__2) vErrors.length = errs__2;\r\n                else vErrors = null;\r\n              }\r\n            }\r\n            var valid2 = errors === errs_2;\r\n            var valid1 = errors === errs_1;\r\n          }\r\n        }\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal11.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      name: {\r\n        type: \"string\"\r\n      },\r\n      in: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      required: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      deprecated: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      allowEmptyValue: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      style: {\r\n        type: \"string\"\r\n      },\r\n      explode: {\r\n        type: \"boolean\"\r\n      },\r\n      allowReserved: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      schema: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Schema\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      content: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          $ref: \"#/definitions/MediaType\"\r\n        },\r\n        minProperties: 1,\r\n        maxProperties: 1\r\n      },\r\n      example: {},\r\n      examples: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Example\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false,\r\n    required: [\"name\", \"in\"],\r\n    allOf: [\r\n      {\r\n        $ref: \"#/definitions/ExampleXORExamples\"\r\n      },\r\n      {\r\n        $ref: \"#/definitions/SchemaXORContent\"\r\n      },\r\n      {\r\n        $ref: \"#/definitions/ParameterLocation\"\r\n      }\r\n    ]\r\n  };\r\n  refVal11.errors = null;\r\n  refVal[11] = refVal11;\r\n  var refVal12 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          if (data.title === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (typeof data.title !== \"string\") {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".title\",\r\n                  schemaPath: \"#/properties/title/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.multipleOf;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data1 === \"number\") {\r\n                if (data1 <= 0 || data1 !== data1) {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"exclusiveMinimum\",\r\n                      dataPath: (dataPath || \"\") + \".multipleOf\",\r\n                      schemaPath: \"#/properties/multipleOf/exclusiveMinimum\",\r\n                      params: {\r\n                        comparison: \">\",\r\n                        limit: 0,\r\n                        exclusive: true\r\n                      },\r\n                      message: \"should be > 0\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n              } else {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".multipleOf\",\r\n                    schemaPath: \"#/properties/multipleOf/type\",\r\n                    params: {\r\n                      type: \"number\"\r\n                    },\r\n                    message: \"should be number\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.maximum === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.maximum !== \"number\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".maximum\",\r\n                      schemaPath: \"#/properties/maximum/type\",\r\n                      params: {\r\n                        type: \"number\"\r\n                      },\r\n                      message: \"should be number\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.exclusiveMaximum === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.exclusiveMaximum !== \"boolean\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".exclusiveMaximum\",\r\n                        schemaPath: \"#/properties/exclusiveMaximum/type\",\r\n                        params: {\r\n                          type: \"boolean\"\r\n                        },\r\n                        message: \"should be boolean\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  if (data.minimum === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (typeof data.minimum !== \"number\") {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".minimum\",\r\n                          schemaPath: \"#/properties/minimum/type\",\r\n                          params: {\r\n                            type: \"number\"\r\n                          },\r\n                          message: \"should be number\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    if (data.exclusiveMinimum === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (typeof data.exclusiveMinimum !== \"boolean\") {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".exclusiveMinimum\",\r\n                            schemaPath: \"#/properties/exclusiveMinimum/type\",\r\n                            params: {\r\n                              type: \"boolean\"\r\n                            },\r\n                            message: \"should be boolean\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      var data1 = data.maxLength;\r\n                      if (data1 === undefined) {\r\n                        valid1 = true;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (typeof data1 !== \"number\" || data1 % 1 || data1 !== data1) {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".maxLength\",\r\n                              schemaPath: \"#/properties/maxLength/type\",\r\n                              params: {\r\n                                type: \"integer\"\r\n                              },\r\n                              message: \"should be integer\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        if (typeof data1 === \"number\") {\r\n                          if (data1 < 0 || data1 !== data1) {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"minimum\",\r\n                                dataPath: (dataPath || \"\") + \".maxLength\",\r\n                                schemaPath: \"#/properties/maxLength/minimum\",\r\n                                params: {\r\n                                  comparison: \">=\",\r\n                                  limit: 0,\r\n                                  exclusive: false\r\n                                },\r\n                                message: \"should be >= 0\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                      if (valid1) {\r\n                        var data1 = data.minLength;\r\n                        if (data1 === undefined) {\r\n                          valid1 = true;\r\n                        } else {\r\n                          var errs_1 = errors;\r\n                          if (typeof data1 !== \"number\" || data1 % 1 || data1 !== data1) {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".minLength\",\r\n                                schemaPath: \"#/properties/minLength/type\",\r\n                                params: {\r\n                                  type: \"integer\"\r\n                                },\r\n                                message: \"should be integer\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                          if (typeof data1 === \"number\") {\r\n                            if (data1 < 0 || data1 !== data1) {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"minimum\",\r\n                                  dataPath: (dataPath || \"\") + \".minLength\",\r\n                                  schemaPath: \"#/properties/minLength/minimum\",\r\n                                  params: {\r\n                                    comparison: \">=\",\r\n                                    limit: 0,\r\n                                    exclusive: false\r\n                                  },\r\n                                  message: \"should be >= 0\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                          }\r\n                          var valid1 = errors === errs_1;\r\n                        }\r\n                        if (valid1) {\r\n                          var data1 = data.pattern;\r\n                          if (data1 === undefined) {\r\n                            valid1 = true;\r\n                          } else {\r\n                            var errs_1 = errors;\r\n                            if (errors === errs_1) {\r\n                              if (typeof data1 === \"string\") {\r\n                                if (!formats.regex(data1)) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"format\",\r\n                                      dataPath: (dataPath || \"\") + \".pattern\",\r\n                                      schemaPath: \"#/properties/pattern/format\",\r\n                                      params: {\r\n                                        format: \"regex\"\r\n                                      },\r\n                                      message: 'should match format \"regex\"'\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              } else {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".pattern\",\r\n                                    schemaPath: \"#/properties/pattern/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            }\r\n                            var valid1 = errors === errs_1;\r\n                          }\r\n                          if (valid1) {\r\n                            var data1 = data.maxItems;\r\n                            if (data1 === undefined) {\r\n                              valid1 = true;\r\n                            } else {\r\n                              var errs_1 = errors;\r\n                              if (typeof data1 !== \"number\" || data1 % 1 || data1 !== data1) {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".maxItems\",\r\n                                    schemaPath: \"#/properties/maxItems/type\",\r\n                                    params: {\r\n                                      type: \"integer\"\r\n                                    },\r\n                                    message: \"should be integer\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                              if (typeof data1 === \"number\") {\r\n                                if (data1 < 0 || data1 !== data1) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"minimum\",\r\n                                      dataPath: (dataPath || \"\") + \".maxItems\",\r\n                                      schemaPath: \"#/properties/maxItems/minimum\",\r\n                                      params: {\r\n                                        comparison: \">=\",\r\n                                        limit: 0,\r\n                                        exclusive: false\r\n                                      },\r\n                                      message: \"should be >= 0\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              }\r\n                              var valid1 = errors === errs_1;\r\n                            }\r\n                            if (valid1) {\r\n                              var data1 = data.minItems;\r\n                              if (data1 === undefined) {\r\n                                valid1 = true;\r\n                              } else {\r\n                                var errs_1 = errors;\r\n                                if (typeof data1 !== \"number\" || data1 % 1 || data1 !== data1) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".minItems\",\r\n                                      schemaPath: \"#/properties/minItems/type\",\r\n                                      params: {\r\n                                        type: \"integer\"\r\n                                      },\r\n                                      message: \"should be integer\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                if (typeof data1 === \"number\") {\r\n                                  if (data1 < 0 || data1 !== data1) {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"minimum\",\r\n                                        dataPath: (dataPath || \"\") + \".minItems\",\r\n                                        schemaPath: \"#/properties/minItems/minimum\",\r\n                                        params: {\r\n                                          comparison: \">=\",\r\n                                          limit: 0,\r\n                                          exclusive: false\r\n                                        },\r\n                                        message: \"should be >= 0\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                }\r\n                                var valid1 = errors === errs_1;\r\n                              }\r\n                              if (valid1) {\r\n                                if (data.uniqueItems === undefined) {\r\n                                  valid1 = true;\r\n                                } else {\r\n                                  var errs_1 = errors;\r\n                                  if (typeof data.uniqueItems !== \"boolean\") {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".uniqueItems\",\r\n                                        schemaPath: \"#/properties/uniqueItems/type\",\r\n                                        params: {\r\n                                          type: \"boolean\"\r\n                                        },\r\n                                        message: \"should be boolean\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                  var valid1 = errors === errs_1;\r\n                                }\r\n                                if (valid1) {\r\n                                  var data1 = data.maxProperties;\r\n                                  if (data1 === undefined) {\r\n                                    valid1 = true;\r\n                                  } else {\r\n                                    var errs_1 = errors;\r\n                                    if (typeof data1 !== \"number\" || data1 % 1 || data1 !== data1) {\r\n                                      validate.errors = [\r\n                                        {\r\n                                          keyword: \"type\",\r\n                                          dataPath: (dataPath || \"\") + \".maxProperties\",\r\n                                          schemaPath: \"#/properties/maxProperties/type\",\r\n                                          params: {\r\n                                            type: \"integer\"\r\n                                          },\r\n                                          message: \"should be integer\"\r\n                                        }\r\n                                      ];\r\n                                      return false;\r\n                                    }\r\n                                    if (typeof data1 === \"number\") {\r\n                                      if (data1 < 0 || data1 !== data1) {\r\n                                        validate.errors = [\r\n                                          {\r\n                                            keyword: \"minimum\",\r\n                                            dataPath: (dataPath || \"\") + \".maxProperties\",\r\n                                            schemaPath: \"#/properties/maxProperties/minimum\",\r\n                                            params: {\r\n                                              comparison: \">=\",\r\n                                              limit: 0,\r\n                                              exclusive: false\r\n                                            },\r\n                                            message: \"should be >= 0\"\r\n                                          }\r\n                                        ];\r\n                                        return false;\r\n                                      }\r\n                                    }\r\n                                    var valid1 = errors === errs_1;\r\n                                  }\r\n                                  if (valid1) {\r\n                                    var data1 = data.minProperties;\r\n                                    if (data1 === undefined) {\r\n                                      valid1 = true;\r\n                                    } else {\r\n                                      var errs_1 = errors;\r\n                                      if (typeof data1 !== \"number\" || data1 % 1 || data1 !== data1) {\r\n                                        validate.errors = [\r\n                                          {\r\n                                            keyword: \"type\",\r\n                                            dataPath: (dataPath || \"\") + \".minProperties\",\r\n                                            schemaPath: \"#/properties/minProperties/type\",\r\n                                            params: {\r\n                                              type: \"integer\"\r\n                                            },\r\n                                            message: \"should be integer\"\r\n                                          }\r\n                                        ];\r\n                                        return false;\r\n                                      }\r\n                                      if (typeof data1 === \"number\") {\r\n                                        if (data1 < 0 || data1 !== data1) {\r\n                                          validate.errors = [\r\n                                            {\r\n                                              keyword: \"minimum\",\r\n                                              dataPath: (dataPath || \"\") + \".minProperties\",\r\n                                              schemaPath: \"#/properties/minProperties/minimum\",\r\n                                              params: {\r\n                                                comparison: \">=\",\r\n                                                limit: 0,\r\n                                                exclusive: false\r\n                                              },\r\n                                              message: \"should be >= 0\"\r\n                                            }\r\n                                          ];\r\n                                          return false;\r\n                                        }\r\n                                      }\r\n                                      var valid1 = errors === errs_1;\r\n                                    }\r\n                                    if (valid1) {\r\n                                      var data1 = data.required;\r\n                                      if (data1 === undefined) {\r\n                                        valid1 = true;\r\n                                      } else {\r\n                                        var errs_1 = errors;\r\n                                        if (Array.isArray(data1)) {\r\n                                          if (data1.length < 1) {\r\n                                            validate.errors = [\r\n                                              {\r\n                                                keyword: \"minItems\",\r\n                                                dataPath: (dataPath || \"\") + \".required\",\r\n                                                schemaPath: \"#/properties/required/minItems\",\r\n                                                params: {\r\n                                                  limit: 1\r\n                                                },\r\n                                                message: \"should NOT have less than 1 items\"\r\n                                              }\r\n                                            ];\r\n                                            return false;\r\n                                          } else {\r\n                                            var valid1 = true;\r\n                                            if (data1.length > 1) {\r\n                                              var i = data1.length,\r\n                                                j;\r\n                                              outer: for (; i--; ) {\r\n                                                for (j = i; j--; ) {\r\n                                                  if (equal(data1[i], data1[j])) {\r\n                                                    valid1 = false;\r\n                                                    break outer;\r\n                                                  }\r\n                                                }\r\n                                              }\r\n                                            }\r\n                                            if (!valid1) {\r\n                                              validate.errors = [\r\n                                                {\r\n                                                  keyword: \"uniqueItems\",\r\n                                                  dataPath: (dataPath || \"\") + \".required\",\r\n                                                  schemaPath: \"#/properties/required/uniqueItems\",\r\n                                                  params: {\r\n                                                    i: i,\r\n                                                    j: j\r\n                                                  },\r\n                                                  message:\r\n                                                    \"should NOT have duplicate items (items ## \" + j + \" and \" + i + \" are identical)\"\r\n                                                }\r\n                                              ];\r\n                                              return false;\r\n                                            } else {\r\n                                              var errs__1 = errors;\r\n                                              var valid1;\r\n                                              for (var i1 = 0; i1 < data1.length; i1++) {\r\n                                                var errs_2 = errors;\r\n                                                if (typeof data1[i1] !== \"string\") {\r\n                                                  validate.errors = [\r\n                                                    {\r\n                                                      keyword: \"type\",\r\n                                                      dataPath: (dataPath || \"\") + \".required[\" + i1 + \"]\",\r\n                                                      schemaPath: \"#/properties/required/items/type\",\r\n                                                      params: {\r\n                                                        type: \"string\"\r\n                                                      },\r\n                                                      message: \"should be string\"\r\n                                                    }\r\n                                                  ];\r\n                                                  return false;\r\n                                                }\r\n                                                var valid2 = errors === errs_2;\r\n                                                if (!valid2) break;\r\n                                              }\r\n                                            }\r\n                                          }\r\n                                        } else {\r\n                                          validate.errors = [\r\n                                            {\r\n                                              keyword: \"type\",\r\n                                              dataPath: (dataPath || \"\") + \".required\",\r\n                                              schemaPath: \"#/properties/required/type\",\r\n                                              params: {\r\n                                                type: \"array\"\r\n                                              },\r\n                                              message: \"should be array\"\r\n                                            }\r\n                                          ];\r\n                                          return false;\r\n                                        }\r\n                                        var valid1 = errors === errs_1;\r\n                                      }\r\n                                      if (valid1) {\r\n                                        var data1 = data.enum;\r\n                                        if (data1 === undefined) {\r\n                                          valid1 = true;\r\n                                        } else {\r\n                                          var errs_1 = errors;\r\n                                          if (Array.isArray(data1)) {\r\n                                            if (data1.length < 1) {\r\n                                              validate.errors = [\r\n                                                {\r\n                                                  keyword: \"minItems\",\r\n                                                  dataPath: (dataPath || \"\") + \".enum\",\r\n                                                  schemaPath: \"#/properties/enum/minItems\",\r\n                                                  params: {\r\n                                                    limit: 1\r\n                                                  },\r\n                                                  message: \"should NOT have less than 1 items\"\r\n                                                }\r\n                                              ];\r\n                                              return false;\r\n                                            } else {\r\n                                              if (true) {\r\n                                                var errs__1 = errors;\r\n                                                var valid1;\r\n                                              }\r\n                                            }\r\n                                          } else {\r\n                                            validate.errors = [\r\n                                              {\r\n                                                keyword: \"type\",\r\n                                                dataPath: (dataPath || \"\") + \".enum\",\r\n                                                schemaPath: \"#/properties/enum/type\",\r\n                                                params: {\r\n                                                  type: \"array\"\r\n                                                },\r\n                                                message: \"should be array\"\r\n                                              }\r\n                                            ];\r\n                                            return false;\r\n                                          }\r\n                                          var valid1 = errors === errs_1;\r\n                                        }\r\n                                        if (valid1) {\r\n                                          var data1 = data.type;\r\n                                          if (data1 === undefined) {\r\n                                            valid1 = true;\r\n                                          } else {\r\n                                            var errs_1 = errors;\r\n                                            if (typeof data1 !== \"string\") {\r\n                                              validate.errors = [\r\n                                                {\r\n                                                  keyword: \"type\",\r\n                                                  dataPath: (dataPath || \"\") + \".type\",\r\n                                                  schemaPath: \"#/properties/type/type\",\r\n                                                  params: {\r\n                                                    type: \"string\"\r\n                                                  },\r\n                                                  message: \"should be string\"\r\n                                                }\r\n                                              ];\r\n                                              return false;\r\n                                            }\r\n                                            var schema1 = validate.schema.properties.type.enum;\r\n                                            var valid1;\r\n                                            valid1 = false;\r\n                                            for (var i1 = 0; i1 < schema1.length; i1++)\r\n                                              if (equal(data1, schema1[i1])) {\r\n                                                valid1 = true;\r\n                                                break;\r\n                                              }\r\n                                            if (!valid1) {\r\n                                              validate.errors = [\r\n                                                {\r\n                                                  keyword: \"enum\",\r\n                                                  dataPath: (dataPath || \"\") + \".type\",\r\n                                                  schemaPath: \"#/properties/type/enum\",\r\n                                                  params: {\r\n                                                    allowedValues: schema1\r\n                                                  },\r\n                                                  message: \"should be equal to one of the allowed values\"\r\n                                                }\r\n                                              ];\r\n                                              return false;\r\n                                            }\r\n                                            var valid1 = errors === errs_1;\r\n                                          }\r\n                                          if (valid1) {\r\n                                            var data1 = data.not;\r\n                                            if (data1 === undefined) {\r\n                                              valid1 = true;\r\n                                            } else {\r\n                                              var errs_1 = errors;\r\n                                              var errs__1 = errors;\r\n                                              var prevValid1 = false;\r\n                                              var valid1 = false;\r\n                                              var errs_2 = errors;\r\n                                              if (!refVal[12](data1, (dataPath || \"\") + \".not\", data, \"not\", rootData)) {\r\n                                                if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                errors = vErrors.length;\r\n                                              }\r\n                                              var valid2 = errors === errs_2;\r\n                                              if (valid2) valid1 = prevValid1 = true;\r\n                                              var errs_2 = errors;\r\n                                              var errs_3 = errors;\r\n                                              if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                                var missing3;\r\n                                                if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                                                  var err = {\r\n                                                    keyword: \"required\",\r\n                                                    dataPath: (dataPath || \"\") + \".not\",\r\n                                                    schemaPath: \"#/definitions/Reference/required\",\r\n                                                    params: {\r\n                                                      missingProperty: \"\" + missing3 + \"\"\r\n                                                    },\r\n                                                    message: \"should have required property '\" + missing3 + \"'\"\r\n                                                  };\r\n                                                  if (vErrors === null) vErrors = [err];\r\n                                                  else vErrors.push(err);\r\n                                                  errors++;\r\n                                                } else {\r\n                                                  var errs__3 = errors;\r\n                                                  var valid4 = true;\r\n                                                  for (var key3 in data1) {\r\n                                                    if (pattern4.test(key3)) {\r\n                                                      var data2 = data1[key3];\r\n                                                      var errs_4 = errors;\r\n                                                      if (errors === errs_4) {\r\n                                                        if (typeof data2 === \"string\") {\r\n                                                          if (!formats[\"uri-reference\"].test(data2)) {\r\n                                                            var err = {\r\n                                                              keyword: \"format\",\r\n                                                              dataPath: (dataPath || \"\") + \".not['\" + key3 + \"']\",\r\n                                                              schemaPath:\r\n                                                                \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                              params: {\r\n                                                                format: \"uri-reference\"\r\n                                                              },\r\n                                                              message: 'should match format \"uri-reference\"'\r\n                                                            };\r\n                                                            if (vErrors === null) vErrors = [err];\r\n                                                            else vErrors.push(err);\r\n                                                            errors++;\r\n                                                          }\r\n                                                        } else {\r\n                                                          var err = {\r\n                                                            keyword: \"type\",\r\n                                                            dataPath: (dataPath || \"\") + \".not['\" + key3 + \"']\",\r\n                                                            schemaPath:\r\n                                                              \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                            params: {\r\n                                                              type: \"string\"\r\n                                                            },\r\n                                                            message: \"should be string\"\r\n                                                          };\r\n                                                          if (vErrors === null) vErrors = [err];\r\n                                                          else vErrors.push(err);\r\n                                                          errors++;\r\n                                                        }\r\n                                                      }\r\n                                                      var valid4 = errors === errs_4;\r\n                                                      if (!valid4) break;\r\n                                                    } else valid4 = true;\r\n                                                  }\r\n                                                }\r\n                                              } else {\r\n                                                var err = {\r\n                                                  keyword: \"type\",\r\n                                                  dataPath: (dataPath || \"\") + \".not\",\r\n                                                  schemaPath: \"#/definitions/Reference/type\",\r\n                                                  params: {\r\n                                                    type: \"object\"\r\n                                                  },\r\n                                                  message: \"should be object\"\r\n                                                };\r\n                                                if (vErrors === null) vErrors = [err];\r\n                                                else vErrors.push(err);\r\n                                                errors++;\r\n                                              }\r\n                                              var valid3 = errors === errs_3;\r\n                                              var valid2 = errors === errs_2;\r\n                                              if (valid2 && prevValid1) valid1 = false;\r\n                                              else {\r\n                                                if (valid2) valid1 = prevValid1 = true;\r\n                                              }\r\n                                              if (!valid1) {\r\n                                                var err = {\r\n                                                  keyword: \"oneOf\",\r\n                                                  dataPath: (dataPath || \"\") + \".not\",\r\n                                                  schemaPath: \"#/properties/not/oneOf\",\r\n                                                  params: {},\r\n                                                  message: \"should match exactly one schema in oneOf\"\r\n                                                };\r\n                                                if (vErrors === null) vErrors = [err];\r\n                                                else vErrors.push(err);\r\n                                                errors++;\r\n                                                validate.errors = vErrors;\r\n                                                return false;\r\n                                              } else {\r\n                                                errors = errs__1;\r\n                                                if (vErrors !== null) {\r\n                                                  if (errs__1) vErrors.length = errs__1;\r\n                                                  else vErrors = null;\r\n                                                }\r\n                                              }\r\n                                              var valid1 = errors === errs_1;\r\n                                            }\r\n                                            if (valid1) {\r\n                                              var data1 = data.allOf;\r\n                                              if (data1 === undefined) {\r\n                                                valid1 = true;\r\n                                              } else {\r\n                                                var errs_1 = errors;\r\n                                                if (Array.isArray(data1)) {\r\n                                                  var errs__1 = errors;\r\n                                                  var valid1;\r\n                                                  for (var i1 = 0; i1 < data1.length; i1++) {\r\n                                                    var data2 = data1[i1];\r\n                                                    var errs_2 = errors;\r\n                                                    var errs__2 = errors;\r\n                                                    var prevValid2 = false;\r\n                                                    var valid2 = false;\r\n                                                    var errs_3 = errors;\r\n                                                    if (\r\n                                                      !refVal[12](data2, (dataPath || \"\") + \".allOf[\" + i1 + \"]\", data1, i1, rootData)\r\n                                                    ) {\r\n                                                      if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                      else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                      errors = vErrors.length;\r\n                                                    }\r\n                                                    var valid3 = errors === errs_3;\r\n                                                    if (valid3) valid2 = prevValid2 = true;\r\n                                                    var errs_3 = errors;\r\n                                                    var errs_4 = errors;\r\n                                                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                                      var missing4;\r\n                                                      if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                                        var err = {\r\n                                                          keyword: \"required\",\r\n                                                          dataPath: (dataPath || \"\") + \".allOf[\" + i1 + \"]\",\r\n                                                          schemaPath: \"#/definitions/Reference/required\",\r\n                                                          params: {\r\n                                                            missingProperty: \"\" + missing4 + \"\"\r\n                                                          },\r\n                                                          message: \"should have required property '\" + missing4 + \"'\"\r\n                                                        };\r\n                                                        if (vErrors === null) vErrors = [err];\r\n                                                        else vErrors.push(err);\r\n                                                        errors++;\r\n                                                      } else {\r\n                                                        var errs__4 = errors;\r\n                                                        var valid5 = true;\r\n                                                        for (var key4 in data2) {\r\n                                                          if (pattern4.test(key4)) {\r\n                                                            var data3 = data2[key4];\r\n                                                            var errs_5 = errors;\r\n                                                            if (errors === errs_5) {\r\n                                                              if (typeof data3 === \"string\") {\r\n                                                                if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                                  var err = {\r\n                                                                    keyword: \"format\",\r\n                                                                    dataPath: (dataPath || \"\") + \".allOf[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                                                    schemaPath:\r\n                                                                      \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                                    params: {\r\n                                                                      format: \"uri-reference\"\r\n                                                                    },\r\n                                                                    message: 'should match format \"uri-reference\"'\r\n                                                                  };\r\n                                                                  if (vErrors === null) vErrors = [err];\r\n                                                                  else vErrors.push(err);\r\n                                                                  errors++;\r\n                                                                }\r\n                                                              } else {\r\n                                                                var err = {\r\n                                                                  keyword: \"type\",\r\n                                                                  dataPath: (dataPath || \"\") + \".allOf[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                                                  schemaPath:\r\n                                                                    \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                                  params: {\r\n                                                                    type: \"string\"\r\n                                                                  },\r\n                                                                  message: \"should be string\"\r\n                                                                };\r\n                                                                if (vErrors === null) vErrors = [err];\r\n                                                                else vErrors.push(err);\r\n                                                                errors++;\r\n                                                              }\r\n                                                            }\r\n                                                            var valid5 = errors === errs_5;\r\n                                                            if (!valid5) break;\r\n                                                          } else valid5 = true;\r\n                                                        }\r\n                                                      }\r\n                                                    } else {\r\n                                                      var err = {\r\n                                                        keyword: \"type\",\r\n                                                        dataPath: (dataPath || \"\") + \".allOf[\" + i1 + \"]\",\r\n                                                        schemaPath: \"#/definitions/Reference/type\",\r\n                                                        params: {\r\n                                                          type: \"object\"\r\n                                                        },\r\n                                                        message: \"should be object\"\r\n                                                      };\r\n                                                      if (vErrors === null) vErrors = [err];\r\n                                                      else vErrors.push(err);\r\n                                                      errors++;\r\n                                                    }\r\n                                                    var valid4 = errors === errs_4;\r\n                                                    var valid3 = errors === errs_3;\r\n                                                    if (valid3 && prevValid2) valid2 = false;\r\n                                                    else {\r\n                                                      if (valid3) valid2 = prevValid2 = true;\r\n                                                    }\r\n                                                    if (!valid2) {\r\n                                                      var err = {\r\n                                                        keyword: \"oneOf\",\r\n                                                        dataPath: (dataPath || \"\") + \".allOf[\" + i1 + \"]\",\r\n                                                        schemaPath: \"#/properties/allOf/items/oneOf\",\r\n                                                        params: {},\r\n                                                        message: \"should match exactly one schema in oneOf\"\r\n                                                      };\r\n                                                      if (vErrors === null) vErrors = [err];\r\n                                                      else vErrors.push(err);\r\n                                                      errors++;\r\n                                                      validate.errors = vErrors;\r\n                                                      return false;\r\n                                                    } else {\r\n                                                      errors = errs__2;\r\n                                                      if (vErrors !== null) {\r\n                                                        if (errs__2) vErrors.length = errs__2;\r\n                                                        else vErrors = null;\r\n                                                      }\r\n                                                    }\r\n                                                    var valid2 = errors === errs_2;\r\n                                                    if (!valid2) break;\r\n                                                  }\r\n                                                } else {\r\n                                                  validate.errors = [\r\n                                                    {\r\n                                                      keyword: \"type\",\r\n                                                      dataPath: (dataPath || \"\") + \".allOf\",\r\n                                                      schemaPath: \"#/properties/allOf/type\",\r\n                                                      params: {\r\n                                                        type: \"array\"\r\n                                                      },\r\n                                                      message: \"should be array\"\r\n                                                    }\r\n                                                  ];\r\n                                                  return false;\r\n                                                }\r\n                                                var valid1 = errors === errs_1;\r\n                                              }\r\n                                              if (valid1) {\r\n                                                var data1 = data.oneOf;\r\n                                                if (data1 === undefined) {\r\n                                                  valid1 = true;\r\n                                                } else {\r\n                                                  var errs_1 = errors;\r\n                                                  if (Array.isArray(data1)) {\r\n                                                    var errs__1 = errors;\r\n                                                    var valid1;\r\n                                                    for (var i1 = 0; i1 < data1.length; i1++) {\r\n                                                      var data2 = data1[i1];\r\n                                                      var errs_2 = errors;\r\n                                                      var errs__2 = errors;\r\n                                                      var prevValid2 = false;\r\n                                                      var valid2 = false;\r\n                                                      var errs_3 = errors;\r\n                                                      if (\r\n                                                        !refVal[12](\r\n                                                          data2,\r\n                                                          (dataPath || \"\") + \".oneOf[\" + i1 + \"]\",\r\n                                                          data1,\r\n                                                          i1,\r\n                                                          rootData\r\n                                                        )\r\n                                                      ) {\r\n                                                        if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                        else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                        errors = vErrors.length;\r\n                                                      }\r\n                                                      var valid3 = errors === errs_3;\r\n                                                      if (valid3) valid2 = prevValid2 = true;\r\n                                                      var errs_3 = errors;\r\n                                                      var errs_4 = errors;\r\n                                                      if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                                        var missing4;\r\n                                                        if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                                          var err = {\r\n                                                            keyword: \"required\",\r\n                                                            dataPath: (dataPath || \"\") + \".oneOf[\" + i1 + \"]\",\r\n                                                            schemaPath: \"#/definitions/Reference/required\",\r\n                                                            params: {\r\n                                                              missingProperty: \"\" + missing4 + \"\"\r\n                                                            },\r\n                                                            message: \"should have required property '\" + missing4 + \"'\"\r\n                                                          };\r\n                                                          if (vErrors === null) vErrors = [err];\r\n                                                          else vErrors.push(err);\r\n                                                          errors++;\r\n                                                        } else {\r\n                                                          var errs__4 = errors;\r\n                                                          var valid5 = true;\r\n                                                          for (var key4 in data2) {\r\n                                                            if (pattern4.test(key4)) {\r\n                                                              var data3 = data2[key4];\r\n                                                              var errs_5 = errors;\r\n                                                              if (errors === errs_5) {\r\n                                                                if (typeof data3 === \"string\") {\r\n                                                                  if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                                    var err = {\r\n                                                                      keyword: \"format\",\r\n                                                                      dataPath:\r\n                                                                        (dataPath || \"\") + \".oneOf[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                                                      schemaPath:\r\n                                                                        \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                                      params: {\r\n                                                                        format: \"uri-reference\"\r\n                                                                      },\r\n                                                                      message: 'should match format \"uri-reference\"'\r\n                                                                    };\r\n                                                                    if (vErrors === null) vErrors = [err];\r\n                                                                    else vErrors.push(err);\r\n                                                                    errors++;\r\n                                                                  }\r\n                                                                } else {\r\n                                                                  var err = {\r\n                                                                    keyword: \"type\",\r\n                                                                    dataPath: (dataPath || \"\") + \".oneOf[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                                                    schemaPath:\r\n                                                                      \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                                    params: {\r\n                                                                      type: \"string\"\r\n                                                                    },\r\n                                                                    message: \"should be string\"\r\n                                                                  };\r\n                                                                  if (vErrors === null) vErrors = [err];\r\n                                                                  else vErrors.push(err);\r\n                                                                  errors++;\r\n                                                                }\r\n                                                              }\r\n                                                              var valid5 = errors === errs_5;\r\n                                                              if (!valid5) break;\r\n                                                            } else valid5 = true;\r\n                                                          }\r\n                                                        }\r\n                                                      } else {\r\n                                                        var err = {\r\n                                                          keyword: \"type\",\r\n                                                          dataPath: (dataPath || \"\") + \".oneOf[\" + i1 + \"]\",\r\n                                                          schemaPath: \"#/definitions/Reference/type\",\r\n                                                          params: {\r\n                                                            type: \"object\"\r\n                                                          },\r\n                                                          message: \"should be object\"\r\n                                                        };\r\n                                                        if (vErrors === null) vErrors = [err];\r\n                                                        else vErrors.push(err);\r\n                                                        errors++;\r\n                                                      }\r\n                                                      var valid4 = errors === errs_4;\r\n                                                      var valid3 = errors === errs_3;\r\n                                                      if (valid3 && prevValid2) valid2 = false;\r\n                                                      else {\r\n                                                        if (valid3) valid2 = prevValid2 = true;\r\n                                                      }\r\n                                                      if (!valid2) {\r\n                                                        var err = {\r\n                                                          keyword: \"oneOf\",\r\n                                                          dataPath: (dataPath || \"\") + \".oneOf[\" + i1 + \"]\",\r\n                                                          schemaPath: \"#/properties/oneOf/items/oneOf\",\r\n                                                          params: {},\r\n                                                          message: \"should match exactly one schema in oneOf\"\r\n                                                        };\r\n                                                        if (vErrors === null) vErrors = [err];\r\n                                                        else vErrors.push(err);\r\n                                                        errors++;\r\n                                                        validate.errors = vErrors;\r\n                                                        return false;\r\n                                                      } else {\r\n                                                        errors = errs__2;\r\n                                                        if (vErrors !== null) {\r\n                                                          if (errs__2) vErrors.length = errs__2;\r\n                                                          else vErrors = null;\r\n                                                        }\r\n                                                      }\r\n                                                      var valid2 = errors === errs_2;\r\n                                                      if (!valid2) break;\r\n                                                    }\r\n                                                  } else {\r\n                                                    validate.errors = [\r\n                                                      {\r\n                                                        keyword: \"type\",\r\n                                                        dataPath: (dataPath || \"\") + \".oneOf\",\r\n                                                        schemaPath: \"#/properties/oneOf/type\",\r\n                                                        params: {\r\n                                                          type: \"array\"\r\n                                                        },\r\n                                                        message: \"should be array\"\r\n                                                      }\r\n                                                    ];\r\n                                                    return false;\r\n                                                  }\r\n                                                  var valid1 = errors === errs_1;\r\n                                                }\r\n                                                if (valid1) {\r\n                                                  var data1 = data.anyOf;\r\n                                                  if (data1 === undefined) {\r\n                                                    valid1 = true;\r\n                                                  } else {\r\n                                                    var errs_1 = errors;\r\n                                                    if (Array.isArray(data1)) {\r\n                                                      var errs__1 = errors;\r\n                                                      var valid1;\r\n                                                      for (var i1 = 0; i1 < data1.length; i1++) {\r\n                                                        var data2 = data1[i1];\r\n                                                        var errs_2 = errors;\r\n                                                        var errs__2 = errors;\r\n                                                        var prevValid2 = false;\r\n                                                        var valid2 = false;\r\n                                                        var errs_3 = errors;\r\n                                                        if (\r\n                                                          !refVal[12](\r\n                                                            data2,\r\n                                                            (dataPath || \"\") + \".anyOf[\" + i1 + \"]\",\r\n                                                            data1,\r\n                                                            i1,\r\n                                                            rootData\r\n                                                          )\r\n                                                        ) {\r\n                                                          if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                          else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                          errors = vErrors.length;\r\n                                                        }\r\n                                                        var valid3 = errors === errs_3;\r\n                                                        if (valid3) valid2 = prevValid2 = true;\r\n                                                        var errs_3 = errors;\r\n                                                        var errs_4 = errors;\r\n                                                        if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                                          var missing4;\r\n                                                          if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                                            var err = {\r\n                                                              keyword: \"required\",\r\n                                                              dataPath: (dataPath || \"\") + \".anyOf[\" + i1 + \"]\",\r\n                                                              schemaPath: \"#/definitions/Reference/required\",\r\n                                                              params: {\r\n                                                                missingProperty: \"\" + missing4 + \"\"\r\n                                                              },\r\n                                                              message: \"should have required property '\" + missing4 + \"'\"\r\n                                                            };\r\n                                                            if (vErrors === null) vErrors = [err];\r\n                                                            else vErrors.push(err);\r\n                                                            errors++;\r\n                                                          } else {\r\n                                                            var errs__4 = errors;\r\n                                                            var valid5 = true;\r\n                                                            for (var key4 in data2) {\r\n                                                              if (pattern4.test(key4)) {\r\n                                                                var data3 = data2[key4];\r\n                                                                var errs_5 = errors;\r\n                                                                if (errors === errs_5) {\r\n                                                                  if (typeof data3 === \"string\") {\r\n                                                                    if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                                      var err = {\r\n                                                                        keyword: \"format\",\r\n                                                                        dataPath:\r\n                                                                          (dataPath || \"\") + \".anyOf[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                                                        schemaPath:\r\n                                                                          \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                                        params: {\r\n                                                                          format: \"uri-reference\"\r\n                                                                        },\r\n                                                                        message: 'should match format \"uri-reference\"'\r\n                                                                      };\r\n                                                                      if (vErrors === null) vErrors = [err];\r\n                                                                      else vErrors.push(err);\r\n                                                                      errors++;\r\n                                                                    }\r\n                                                                  } else {\r\n                                                                    var err = {\r\n                                                                      keyword: \"type\",\r\n                                                                      dataPath:\r\n                                                                        (dataPath || \"\") + \".anyOf[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                                                      schemaPath:\r\n                                                                        \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                                      params: {\r\n                                                                        type: \"string\"\r\n                                                                      },\r\n                                                                      message: \"should be string\"\r\n                                                                    };\r\n                                                                    if (vErrors === null) vErrors = [err];\r\n                                                                    else vErrors.push(err);\r\n                                                                    errors++;\r\n                                                                  }\r\n                                                                }\r\n                                                                var valid5 = errors === errs_5;\r\n                                                                if (!valid5) break;\r\n                                                              } else valid5 = true;\r\n                                                            }\r\n                                                          }\r\n                                                        } else {\r\n                                                          var err = {\r\n                                                            keyword: \"type\",\r\n                                                            dataPath: (dataPath || \"\") + \".anyOf[\" + i1 + \"]\",\r\n                                                            schemaPath: \"#/definitions/Reference/type\",\r\n                                                            params: {\r\n                                                              type: \"object\"\r\n                                                            },\r\n                                                            message: \"should be object\"\r\n                                                          };\r\n                                                          if (vErrors === null) vErrors = [err];\r\n                                                          else vErrors.push(err);\r\n                                                          errors++;\r\n                                                        }\r\n                                                        var valid4 = errors === errs_4;\r\n                                                        var valid3 = errors === errs_3;\r\n                                                        if (valid3 && prevValid2) valid2 = false;\r\n                                                        else {\r\n                                                          if (valid3) valid2 = prevValid2 = true;\r\n                                                        }\r\n                                                        if (!valid2) {\r\n                                                          var err = {\r\n                                                            keyword: \"oneOf\",\r\n                                                            dataPath: (dataPath || \"\") + \".anyOf[\" + i1 + \"]\",\r\n                                                            schemaPath: \"#/properties/anyOf/items/oneOf\",\r\n                                                            params: {},\r\n                                                            message: \"should match exactly one schema in oneOf\"\r\n                                                          };\r\n                                                          if (vErrors === null) vErrors = [err];\r\n                                                          else vErrors.push(err);\r\n                                                          errors++;\r\n                                                          validate.errors = vErrors;\r\n                                                          return false;\r\n                                                        } else {\r\n                                                          errors = errs__2;\r\n                                                          if (vErrors !== null) {\r\n                                                            if (errs__2) vErrors.length = errs__2;\r\n                                                            else vErrors = null;\r\n                                                          }\r\n                                                        }\r\n                                                        var valid2 = errors === errs_2;\r\n                                                        if (!valid2) break;\r\n                                                      }\r\n                                                    } else {\r\n                                                      validate.errors = [\r\n                                                        {\r\n                                                          keyword: \"type\",\r\n                                                          dataPath: (dataPath || \"\") + \".anyOf\",\r\n                                                          schemaPath: \"#/properties/anyOf/type\",\r\n                                                          params: {\r\n                                                            type: \"array\"\r\n                                                          },\r\n                                                          message: \"should be array\"\r\n                                                        }\r\n                                                      ];\r\n                                                      return false;\r\n                                                    }\r\n                                                    var valid1 = errors === errs_1;\r\n                                                  }\r\n                                                  if (valid1) {\r\n                                                    var data1 = data.items;\r\n                                                    if (data1 === undefined) {\r\n                                                      valid1 = true;\r\n                                                    } else {\r\n                                                      var errs_1 = errors;\r\n                                                      var errs__1 = errors;\r\n                                                      var prevValid1 = false;\r\n                                                      var valid1 = false;\r\n                                                      var errs_2 = errors;\r\n                                                      if (!refVal[12](data1, (dataPath || \"\") + \".items\", data, \"items\", rootData)) {\r\n                                                        if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                        else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                        errors = vErrors.length;\r\n                                                      }\r\n                                                      var valid2 = errors === errs_2;\r\n                                                      if (valid2) valid1 = prevValid1 = true;\r\n                                                      var errs_2 = errors;\r\n                                                      var errs_3 = errors;\r\n                                                      if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                                        var missing3;\r\n                                                        if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                                                          var err = {\r\n                                                            keyword: \"required\",\r\n                                                            dataPath: (dataPath || \"\") + \".items\",\r\n                                                            schemaPath: \"#/definitions/Reference/required\",\r\n                                                            params: {\r\n                                                              missingProperty: \"\" + missing3 + \"\"\r\n                                                            },\r\n                                                            message: \"should have required property '\" + missing3 + \"'\"\r\n                                                          };\r\n                                                          if (vErrors === null) vErrors = [err];\r\n                                                          else vErrors.push(err);\r\n                                                          errors++;\r\n                                                        } else {\r\n                                                          var errs__3 = errors;\r\n                                                          var valid4 = true;\r\n                                                          for (var key3 in data1) {\r\n                                                            if (pattern4.test(key3)) {\r\n                                                              var data2 = data1[key3];\r\n                                                              var errs_4 = errors;\r\n                                                              if (errors === errs_4) {\r\n                                                                if (typeof data2 === \"string\") {\r\n                                                                  if (!formats[\"uri-reference\"].test(data2)) {\r\n                                                                    var err = {\r\n                                                                      keyword: \"format\",\r\n                                                                      dataPath: (dataPath || \"\") + \".items['\" + key3 + \"']\",\r\n                                                                      schemaPath:\r\n                                                                        \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                                      params: {\r\n                                                                        format: \"uri-reference\"\r\n                                                                      },\r\n                                                                      message: 'should match format \"uri-reference\"'\r\n                                                                    };\r\n                                                                    if (vErrors === null) vErrors = [err];\r\n                                                                    else vErrors.push(err);\r\n                                                                    errors++;\r\n                                                                  }\r\n                                                                } else {\r\n                                                                  var err = {\r\n                                                                    keyword: \"type\",\r\n                                                                    dataPath: (dataPath || \"\") + \".items['\" + key3 + \"']\",\r\n                                                                    schemaPath:\r\n                                                                      \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                                    params: {\r\n                                                                      type: \"string\"\r\n                                                                    },\r\n                                                                    message: \"should be string\"\r\n                                                                  };\r\n                                                                  if (vErrors === null) vErrors = [err];\r\n                                                                  else vErrors.push(err);\r\n                                                                  errors++;\r\n                                                                }\r\n                                                              }\r\n                                                              var valid4 = errors === errs_4;\r\n                                                              if (!valid4) break;\r\n                                                            } else valid4 = true;\r\n                                                          }\r\n                                                        }\r\n                                                      } else {\r\n                                                        var err = {\r\n                                                          keyword: \"type\",\r\n                                                          dataPath: (dataPath || \"\") + \".items\",\r\n                                                          schemaPath: \"#/definitions/Reference/type\",\r\n                                                          params: {\r\n                                                            type: \"object\"\r\n                                                          },\r\n                                                          message: \"should be object\"\r\n                                                        };\r\n                                                        if (vErrors === null) vErrors = [err];\r\n                                                        else vErrors.push(err);\r\n                                                        errors++;\r\n                                                      }\r\n                                                      var valid3 = errors === errs_3;\r\n                                                      var valid2 = errors === errs_2;\r\n                                                      if (valid2 && prevValid1) valid1 = false;\r\n                                                      else {\r\n                                                        if (valid2) valid1 = prevValid1 = true;\r\n                                                      }\r\n                                                      if (!valid1) {\r\n                                                        var err = {\r\n                                                          keyword: \"oneOf\",\r\n                                                          dataPath: (dataPath || \"\") + \".items\",\r\n                                                          schemaPath: \"#/properties/items/oneOf\",\r\n                                                          params: {},\r\n                                                          message: \"should match exactly one schema in oneOf\"\r\n                                                        };\r\n                                                        if (vErrors === null) vErrors = [err];\r\n                                                        else vErrors.push(err);\r\n                                                        errors++;\r\n                                                        validate.errors = vErrors;\r\n                                                        return false;\r\n                                                      } else {\r\n                                                        errors = errs__1;\r\n                                                        if (vErrors !== null) {\r\n                                                          if (errs__1) vErrors.length = errs__1;\r\n                                                          else vErrors = null;\r\n                                                        }\r\n                                                      }\r\n                                                      var valid1 = errors === errs_1;\r\n                                                    }\r\n                                                    if (valid1) {\r\n                                                      var data1 = data.properties;\r\n                                                      if (data1 === undefined) {\r\n                                                        valid1 = true;\r\n                                                      } else {\r\n                                                        var errs_1 = errors;\r\n                                                        if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                                          var errs__1 = errors;\r\n                                                          var valid2 = true;\r\n                                                          for (var key1 in data1) {\r\n                                                            var data2 = data1[key1];\r\n                                                            var errs_2 = errors;\r\n                                                            var errs__2 = errors;\r\n                                                            var prevValid2 = false;\r\n                                                            var valid2 = false;\r\n                                                            var errs_3 = errors;\r\n                                                            if (\r\n                                                              !refVal[12](\r\n                                                                data2,\r\n                                                                (dataPath || \"\") + \".properties['\" + key1 + \"']\",\r\n                                                                data1,\r\n                                                                key1,\r\n                                                                rootData\r\n                                                              )\r\n                                                            ) {\r\n                                                              if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                              else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                              errors = vErrors.length;\r\n                                                            }\r\n                                                            var valid3 = errors === errs_3;\r\n                                                            if (valid3) valid2 = prevValid2 = true;\r\n                                                            var errs_3 = errors;\r\n                                                            var errs_4 = errors;\r\n                                                            if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                                              var missing4;\r\n                                                              if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                                                var err = {\r\n                                                                  keyword: \"required\",\r\n                                                                  dataPath: (dataPath || \"\") + \".properties['\" + key1 + \"']\",\r\n                                                                  schemaPath: \"#/definitions/Reference/required\",\r\n                                                                  params: {\r\n                                                                    missingProperty: \"\" + missing4 + \"\"\r\n                                                                  },\r\n                                                                  message: \"should have required property '\" + missing4 + \"'\"\r\n                                                                };\r\n                                                                if (vErrors === null) vErrors = [err];\r\n                                                                else vErrors.push(err);\r\n                                                                errors++;\r\n                                                              } else {\r\n                                                                var errs__4 = errors;\r\n                                                                var valid5 = true;\r\n                                                                for (var key4 in data2) {\r\n                                                                  if (pattern4.test(key4)) {\r\n                                                                    var data3 = data2[key4];\r\n                                                                    var errs_5 = errors;\r\n                                                                    if (errors === errs_5) {\r\n                                                                      if (typeof data3 === \"string\") {\r\n                                                                        if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                                          var err = {\r\n                                                                            keyword: \"format\",\r\n                                                                            dataPath:\r\n                                                                              (dataPath || \"\") +\r\n                                                                              \".properties['\" +\r\n                                                                              key1 +\r\n                                                                              \"']['\" +\r\n                                                                              key4 +\r\n                                                                              \"']\",\r\n                                                                            schemaPath:\r\n                                                                              \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                                            params: {\r\n                                                                              format: \"uri-reference\"\r\n                                                                            },\r\n                                                                            message: 'should match format \"uri-reference\"'\r\n                                                                          };\r\n                                                                          if (vErrors === null) vErrors = [err];\r\n                                                                          else vErrors.push(err);\r\n                                                                          errors++;\r\n                                                                        }\r\n                                                                      } else {\r\n                                                                        var err = {\r\n                                                                          keyword: \"type\",\r\n                                                                          dataPath:\r\n                                                                            (dataPath || \"\") +\r\n                                                                            \".properties['\" +\r\n                                                                            key1 +\r\n                                                                            \"']['\" +\r\n                                                                            key4 +\r\n                                                                            \"']\",\r\n                                                                          schemaPath:\r\n                                                                            \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                                          params: {\r\n                                                                            type: \"string\"\r\n                                                                          },\r\n                                                                          message: \"should be string\"\r\n                                                                        };\r\n                                                                        if (vErrors === null) vErrors = [err];\r\n                                                                        else vErrors.push(err);\r\n                                                                        errors++;\r\n                                                                      }\r\n                                                                    }\r\n                                                                    var valid5 = errors === errs_5;\r\n                                                                    if (!valid5) break;\r\n                                                                  } else valid5 = true;\r\n                                                                }\r\n                                                              }\r\n                                                            } else {\r\n                                                              var err = {\r\n                                                                keyword: \"type\",\r\n                                                                dataPath: (dataPath || \"\") + \".properties['\" + key1 + \"']\",\r\n                                                                schemaPath: \"#/definitions/Reference/type\",\r\n                                                                params: {\r\n                                                                  type: \"object\"\r\n                                                                },\r\n                                                                message: \"should be object\"\r\n                                                              };\r\n                                                              if (vErrors === null) vErrors = [err];\r\n                                                              else vErrors.push(err);\r\n                                                              errors++;\r\n                                                            }\r\n                                                            var valid4 = errors === errs_4;\r\n                                                            var valid3 = errors === errs_3;\r\n                                                            if (valid3 && prevValid2) valid2 = false;\r\n                                                            else {\r\n                                                              if (valid3) valid2 = prevValid2 = true;\r\n                                                            }\r\n                                                            if (!valid2) {\r\n                                                              var err = {\r\n                                                                keyword: \"oneOf\",\r\n                                                                dataPath: (dataPath || \"\") + \".properties['\" + key1 + \"']\",\r\n                                                                schemaPath: \"#/properties/properties/additionalProperties/oneOf\",\r\n                                                                params: {},\r\n                                                                message: \"should match exactly one schema in oneOf\"\r\n                                                              };\r\n                                                              if (vErrors === null) vErrors = [err];\r\n                                                              else vErrors.push(err);\r\n                                                              errors++;\r\n                                                              validate.errors = vErrors;\r\n                                                              return false;\r\n                                                            } else {\r\n                                                              errors = errs__2;\r\n                                                              if (vErrors !== null) {\r\n                                                                if (errs__2) vErrors.length = errs__2;\r\n                                                                else vErrors = null;\r\n                                                              }\r\n                                                            }\r\n                                                            var valid2 = errors === errs_2;\r\n                                                            if (!valid2) break;\r\n                                                          }\r\n                                                        } else {\r\n                                                          validate.errors = [\r\n                                                            {\r\n                                                              keyword: \"type\",\r\n                                                              dataPath: (dataPath || \"\") + \".properties\",\r\n                                                              schemaPath: \"#/properties/properties/type\",\r\n                                                              params: {\r\n                                                                type: \"object\"\r\n                                                              },\r\n                                                              message: \"should be object\"\r\n                                                            }\r\n                                                          ];\r\n                                                          return false;\r\n                                                        }\r\n                                                        var valid1 = errors === errs_1;\r\n                                                      }\r\n                                                      if (valid1) {\r\n                                                        var data1 = data.additionalProperties;\r\n                                                        if (data1 === undefined) {\r\n                                                          valid1 = true;\r\n                                                        } else {\r\n                                                          var errs_1 = errors;\r\n                                                          var errs__1 = errors;\r\n                                                          var prevValid1 = false;\r\n                                                          var valid1 = false;\r\n                                                          var errs_2 = errors;\r\n                                                          if (\r\n                                                            !refVal[12](\r\n                                                              data1,\r\n                                                              (dataPath || \"\") + \".additionalProperties\",\r\n                                                              data,\r\n                                                              \"additionalProperties\",\r\n                                                              rootData\r\n                                                            )\r\n                                                          ) {\r\n                                                            if (vErrors === null) vErrors = refVal[12].errors;\r\n                                                            else vErrors = vErrors.concat(refVal[12].errors);\r\n                                                            errors = vErrors.length;\r\n                                                          }\r\n                                                          var valid2 = errors === errs_2;\r\n                                                          if (valid2) valid1 = prevValid1 = true;\r\n                                                          var errs_2 = errors;\r\n                                                          var errs_3 = errors;\r\n                                                          if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                                            var missing3;\r\n                                                            if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                                                              var err = {\r\n                                                                keyword: \"required\",\r\n                                                                dataPath: (dataPath || \"\") + \".additionalProperties\",\r\n                                                                schemaPath: \"#/definitions/Reference/required\",\r\n                                                                params: {\r\n                                                                  missingProperty: \"\" + missing3 + \"\"\r\n                                                                },\r\n                                                                message: \"should have required property '\" + missing3 + \"'\"\r\n                                                              };\r\n                                                              if (vErrors === null) vErrors = [err];\r\n                                                              else vErrors.push(err);\r\n                                                              errors++;\r\n                                                            } else {\r\n                                                              var errs__3 = errors;\r\n                                                              var valid4 = true;\r\n                                                              for (var key3 in data1) {\r\n                                                                if (pattern4.test(key3)) {\r\n                                                                  var data2 = data1[key3];\r\n                                                                  var errs_4 = errors;\r\n                                                                  if (errors === errs_4) {\r\n                                                                    if (typeof data2 === \"string\") {\r\n                                                                      if (!formats[\"uri-reference\"].test(data2)) {\r\n                                                                        var err = {\r\n                                                                          keyword: \"format\",\r\n                                                                          dataPath:\r\n                                                                            (dataPath || \"\") +\r\n                                                                            \".additionalProperties['\" +\r\n                                                                            key3 +\r\n                                                                            \"']\",\r\n                                                                          schemaPath:\r\n                                                                            \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                                          params: {\r\n                                                                            format: \"uri-reference\"\r\n                                                                          },\r\n                                                                          message: 'should match format \"uri-reference\"'\r\n                                                                        };\r\n                                                                        if (vErrors === null) vErrors = [err];\r\n                                                                        else vErrors.push(err);\r\n                                                                        errors++;\r\n                                                                      }\r\n                                                                    } else {\r\n                                                                      var err = {\r\n                                                                        keyword: \"type\",\r\n                                                                        dataPath:\r\n                                                                          (dataPath || \"\") + \".additionalProperties['\" + key3 + \"']\",\r\n                                                                        schemaPath:\r\n                                                                          \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                                        params: {\r\n                                                                          type: \"string\"\r\n                                                                        },\r\n                                                                        message: \"should be string\"\r\n                                                                      };\r\n                                                                      if (vErrors === null) vErrors = [err];\r\n                                                                      else vErrors.push(err);\r\n                                                                      errors++;\r\n                                                                    }\r\n                                                                  }\r\n                                                                  var valid4 = errors === errs_4;\r\n                                                                  if (!valid4) break;\r\n                                                                } else valid4 = true;\r\n                                                              }\r\n                                                            }\r\n                                                          } else {\r\n                                                            var err = {\r\n                                                              keyword: \"type\",\r\n                                                              dataPath: (dataPath || \"\") + \".additionalProperties\",\r\n                                                              schemaPath: \"#/definitions/Reference/type\",\r\n                                                              params: {\r\n                                                                type: \"object\"\r\n                                                              },\r\n                                                              message: \"should be object\"\r\n                                                            };\r\n                                                            if (vErrors === null) vErrors = [err];\r\n                                                            else vErrors.push(err);\r\n                                                            errors++;\r\n                                                          }\r\n                                                          var valid3 = errors === errs_3;\r\n                                                          var valid2 = errors === errs_2;\r\n                                                          if (valid2 && prevValid1) valid1 = false;\r\n                                                          else {\r\n                                                            if (valid2) valid1 = prevValid1 = true;\r\n                                                            var errs_2 = errors;\r\n                                                            if (typeof data1 !== \"boolean\") {\r\n                                                              var err = {\r\n                                                                keyword: \"type\",\r\n                                                                dataPath: (dataPath || \"\") + \".additionalProperties\",\r\n                                                                schemaPath: \"#/properties/additionalProperties/oneOf/2/type\",\r\n                                                                params: {\r\n                                                                  type: \"boolean\"\r\n                                                                },\r\n                                                                message: \"should be boolean\"\r\n                                                              };\r\n                                                              if (vErrors === null) vErrors = [err];\r\n                                                              else vErrors.push(err);\r\n                                                              errors++;\r\n                                                            }\r\n                                                            var valid2 = errors === errs_2;\r\n                                                            if (valid2 && prevValid1) valid1 = false;\r\n                                                            else {\r\n                                                              if (valid2) valid1 = prevValid1 = true;\r\n                                                            }\r\n                                                          }\r\n                                                          if (!valid1) {\r\n                                                            var err = {\r\n                                                              keyword: \"oneOf\",\r\n                                                              dataPath: (dataPath || \"\") + \".additionalProperties\",\r\n                                                              schemaPath: \"#/properties/additionalProperties/oneOf\",\r\n                                                              params: {},\r\n                                                              message: \"should match exactly one schema in oneOf\"\r\n                                                            };\r\n                                                            if (vErrors === null) vErrors = [err];\r\n                                                            else vErrors.push(err);\r\n                                                            errors++;\r\n                                                            validate.errors = vErrors;\r\n                                                            return false;\r\n                                                          } else {\r\n                                                            errors = errs__1;\r\n                                                            if (vErrors !== null) {\r\n                                                              if (errs__1) vErrors.length = errs__1;\r\n                                                              else vErrors = null;\r\n                                                            }\r\n                                                          }\r\n                                                          var valid1 = errors === errs_1;\r\n                                                        }\r\n                                                        if (valid1) {\r\n                                                          if (data.description === undefined) {\r\n                                                            valid1 = true;\r\n                                                          } else {\r\n                                                            var errs_1 = errors;\r\n                                                            if (typeof data.description !== \"string\") {\r\n                                                              validate.errors = [\r\n                                                                {\r\n                                                                  keyword: \"type\",\r\n                                                                  dataPath: (dataPath || \"\") + \".description\",\r\n                                                                  schemaPath: \"#/properties/description/type\",\r\n                                                                  params: {\r\n                                                                    type: \"string\"\r\n                                                                  },\r\n                                                                  message: \"should be string\"\r\n                                                                }\r\n                                                              ];\r\n                                                              return false;\r\n                                                            }\r\n                                                            var valid1 = errors === errs_1;\r\n                                                          }\r\n                                                          if (valid1) {\r\n                                                            if (data.format === undefined) {\r\n                                                              valid1 = true;\r\n                                                            } else {\r\n                                                              var errs_1 = errors;\r\n                                                              if (typeof data.format !== \"string\") {\r\n                                                                validate.errors = [\r\n                                                                  {\r\n                                                                    keyword: \"type\",\r\n                                                                    dataPath: (dataPath || \"\") + \".format\",\r\n                                                                    schemaPath: \"#/properties/format/type\",\r\n                                                                    params: {\r\n                                                                      type: \"string\"\r\n                                                                    },\r\n                                                                    message: \"should be string\"\r\n                                                                  }\r\n                                                                ];\r\n                                                                return false;\r\n                                                              }\r\n                                                              var valid1 = errors === errs_1;\r\n                                                            }\r\n                                                            if (valid1) {\r\n                                                              if (valid1) {\r\n                                                                if (data.nullable === undefined) {\r\n                                                                  valid1 = true;\r\n                                                                } else {\r\n                                                                  var errs_1 = errors;\r\n                                                                  if (typeof data.nullable !== \"boolean\") {\r\n                                                                    validate.errors = [\r\n                                                                      {\r\n                                                                        keyword: \"type\",\r\n                                                                        dataPath: (dataPath || \"\") + \".nullable\",\r\n                                                                        schemaPath: \"#/properties/nullable/type\",\r\n                                                                        params: {\r\n                                                                          type: \"boolean\"\r\n                                                                        },\r\n                                                                        message: \"should be boolean\"\r\n                                                                      }\r\n                                                                    ];\r\n                                                                    return false;\r\n                                                                  }\r\n                                                                  var valid1 = errors === errs_1;\r\n                                                                }\r\n                                                                if (valid1) {\r\n                                                                  var data1 = data.discriminator;\r\n                                                                  if (data1 === undefined) {\r\n                                                                    valid1 = true;\r\n                                                                  } else {\r\n                                                                    var errs_1 = errors;\r\n                                                                    var errs_2 = errors;\r\n                                                                    if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                                                      if (true) {\r\n                                                                        var errs__2 = errors;\r\n                                                                        var valid3 = true;\r\n                                                                        if (data1.propertyName === undefined) {\r\n                                                                          valid3 = false;\r\n                                                                          validate.errors = [\r\n                                                                            {\r\n                                                                              keyword: \"required\",\r\n                                                                              dataPath: (dataPath || \"\") + \".discriminator\",\r\n                                                                              schemaPath: \"#/definitions/Discriminator/required\",\r\n                                                                              params: {\r\n                                                                                missingProperty: \"propertyName\"\r\n                                                                              },\r\n                                                                              message: \"should have required property 'propertyName'\"\r\n                                                                            }\r\n                                                                          ];\r\n                                                                          return false;\r\n                                                                        } else {\r\n                                                                          var errs_3 = errors;\r\n                                                                          if (typeof data1.propertyName !== \"string\") {\r\n                                                                            validate.errors = [\r\n                                                                              {\r\n                                                                                keyword: \"type\",\r\n                                                                                dataPath:\r\n                                                                                  (dataPath || \"\") + \".discriminator.propertyName\",\r\n                                                                                schemaPath:\r\n                                                                                  \"#/definitions/Discriminator/properties/propertyName/type\",\r\n                                                                                params: {\r\n                                                                                  type: \"string\"\r\n                                                                                },\r\n                                                                                message: \"should be string\"\r\n                                                                              }\r\n                                                                            ];\r\n                                                                            return false;\r\n                                                                          }\r\n                                                                          var valid3 = errors === errs_3;\r\n                                                                        }\r\n                                                                        if (valid3) {\r\n                                                                          var data2 = data1.mapping;\r\n                                                                          if (data2 === undefined) {\r\n                                                                            valid3 = true;\r\n                                                                          } else {\r\n                                                                            var errs_3 = errors;\r\n                                                                            if (\r\n                                                                              data2 &&\r\n                                                                              typeof data2 === \"object\" &&\r\n                                                                              !Array.isArray(data2)\r\n                                                                            ) {\r\n                                                                              var errs__3 = errors;\r\n                                                                              var valid4 = true;\r\n                                                                              for (var key3 in data2) {\r\n                                                                                var errs_4 = errors;\r\n                                                                                if (typeof data2[key3] !== \"string\") {\r\n                                                                                  validate.errors = [\r\n                                                                                    {\r\n                                                                                      keyword: \"type\",\r\n                                                                                      dataPath:\r\n                                                                                        (dataPath || \"\") +\r\n                                                                                        \".discriminator.mapping['\" +\r\n                                                                                        key3 +\r\n                                                                                        \"']\",\r\n                                                                                      schemaPath:\r\n                                                                                        \"#/definitions/Discriminator/properties/mapping/additionalProperties/type\",\r\n                                                                                      params: {\r\n                                                                                        type: \"string\"\r\n                                                                                      },\r\n                                                                                      message: \"should be string\"\r\n                                                                                    }\r\n                                                                                  ];\r\n                                                                                  return false;\r\n                                                                                }\r\n                                                                                var valid4 = errors === errs_4;\r\n                                                                                if (!valid4) break;\r\n                                                                              }\r\n                                                                            } else {\r\n                                                                              validate.errors = [\r\n                                                                                {\r\n                                                                                  keyword: \"type\",\r\n                                                                                  dataPath:\r\n                                                                                    (dataPath || \"\") + \".discriminator.mapping\",\r\n                                                                                  schemaPath:\r\n                                                                                    \"#/definitions/Discriminator/properties/mapping/type\",\r\n                                                                                  params: {\r\n                                                                                    type: \"object\"\r\n                                                                                  },\r\n                                                                                  message: \"should be object\"\r\n                                                                                }\r\n                                                                              ];\r\n                                                                              return false;\r\n                                                                            }\r\n                                                                            var valid3 = errors === errs_3;\r\n                                                                          }\r\n                                                                        }\r\n                                                                      }\r\n                                                                    } else {\r\n                                                                      validate.errors = [\r\n                                                                        {\r\n                                                                          keyword: \"type\",\r\n                                                                          dataPath: (dataPath || \"\") + \".discriminator\",\r\n                                                                          schemaPath: \"#/definitions/Discriminator/type\",\r\n                                                                          params: {\r\n                                                                            type: \"object\"\r\n                                                                          },\r\n                                                                          message: \"should be object\"\r\n                                                                        }\r\n                                                                      ];\r\n                                                                      return false;\r\n                                                                    }\r\n                                                                    var valid2 = errors === errs_2;\r\n                                                                    var valid1 = errors === errs_1;\r\n                                                                  }\r\n                                                                  if (valid1) {\r\n                                                                    if (data.readOnly === undefined) {\r\n                                                                      valid1 = true;\r\n                                                                    } else {\r\n                                                                      var errs_1 = errors;\r\n                                                                      if (typeof data.readOnly !== \"boolean\") {\r\n                                                                        validate.errors = [\r\n                                                                          {\r\n                                                                            keyword: \"type\",\r\n                                                                            dataPath: (dataPath || \"\") + \".readOnly\",\r\n                                                                            schemaPath: \"#/properties/readOnly/type\",\r\n                                                                            params: {\r\n                                                                              type: \"boolean\"\r\n                                                                            },\r\n                                                                            message: \"should be boolean\"\r\n                                                                          }\r\n                                                                        ];\r\n                                                                        return false;\r\n                                                                      }\r\n                                                                      var valid1 = errors === errs_1;\r\n                                                                    }\r\n                                                                    if (valid1) {\r\n                                                                      if (data.writeOnly === undefined) {\r\n                                                                        valid1 = true;\r\n                                                                      } else {\r\n                                                                        var errs_1 = errors;\r\n                                                                        if (typeof data.writeOnly !== \"boolean\") {\r\n                                                                          validate.errors = [\r\n                                                                            {\r\n                                                                              keyword: \"type\",\r\n                                                                              dataPath: (dataPath || \"\") + \".writeOnly\",\r\n                                                                              schemaPath: \"#/properties/writeOnly/type\",\r\n                                                                              params: {\r\n                                                                                type: \"boolean\"\r\n                                                                              },\r\n                                                                              message: \"should be boolean\"\r\n                                                                            }\r\n                                                                          ];\r\n                                                                          return false;\r\n                                                                        }\r\n                                                                        var valid1 = errors === errs_1;\r\n                                                                      }\r\n                                                                      if (valid1) {\r\n                                                                        if (valid1) {\r\n                                                                          var data1 = data.externalDocs;\r\n                                                                          if (data1 === undefined) {\r\n                                                                            valid1 = true;\r\n                                                                          } else {\r\n                                                                            var errs_1 = errors;\r\n                                                                            var errs_2 = errors;\r\n                                                                            if (\r\n                                                                              data1 &&\r\n                                                                              typeof data1 === \"object\" &&\r\n                                                                              !Array.isArray(data1)\r\n                                                                            ) {\r\n                                                                              if (true) {\r\n                                                                                var errs__2 = errors;\r\n                                                                                var valid3 = true;\r\n                                                                                for (var key2 in data1) {\r\n                                                                                  var isAdditional2 = !(\r\n                                                                                    false ||\r\n                                                                                    key2 == \"description\" ||\r\n                                                                                    key2 == \"url\" ||\r\n                                                                                    pattern0.test(key2)\r\n                                                                                  );\r\n                                                                                  if (isAdditional2) {\r\n                                                                                    valid3 = false;\r\n                                                                                    validate.errors = [\r\n                                                                                      {\r\n                                                                                        keyword: \"additionalProperties\",\r\n                                                                                        dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                                                                                        schemaPath:\r\n                                                                                          \"#/definitions/ExternalDocumentation/additionalProperties\",\r\n                                                                                        params: {\r\n                                                                                          additionalProperty: \"\" + key2 + \"\"\r\n                                                                                        },\r\n                                                                                        message:\r\n                                                                                          \"should NOT have additional properties\"\r\n                                                                                      }\r\n                                                                                    ];\r\n                                                                                    return false;\r\n                                                                                    break;\r\n                                                                                  }\r\n                                                                                }\r\n                                                                                if (valid3) {\r\n                                                                                  if (data1.description === undefined) {\r\n                                                                                    valid3 = true;\r\n                                                                                  } else {\r\n                                                                                    var errs_3 = errors;\r\n                                                                                    if (typeof data1.description !== \"string\") {\r\n                                                                                      validate.errors = [\r\n                                                                                        {\r\n                                                                                          keyword: \"type\",\r\n                                                                                          dataPath:\r\n                                                                                            (dataPath || \"\") +\r\n                                                                                            \".externalDocs.description\",\r\n                                                                                          schemaPath:\r\n                                                                                            \"#/definitions/ExternalDocumentation/properties/description/type\",\r\n                                                                                          params: {\r\n                                                                                            type: \"string\"\r\n                                                                                          },\r\n                                                                                          message: \"should be string\"\r\n                                                                                        }\r\n                                                                                      ];\r\n                                                                                      return false;\r\n                                                                                    }\r\n                                                                                    var valid3 = errors === errs_3;\r\n                                                                                  }\r\n                                                                                  if (valid3) {\r\n                                                                                    var data2 = data1.url;\r\n                                                                                    if (data2 === undefined) {\r\n                                                                                      valid3 = false;\r\n                                                                                      validate.errors = [\r\n                                                                                        {\r\n                                                                                          keyword: \"required\",\r\n                                                                                          dataPath:\r\n                                                                                            (dataPath || \"\") + \".externalDocs\",\r\n                                                                                          schemaPath:\r\n                                                                                            \"#/definitions/ExternalDocumentation/required\",\r\n                                                                                          params: {\r\n                                                                                            missingProperty: \"url\"\r\n                                                                                          },\r\n                                                                                          message:\r\n                                                                                            \"should have required property 'url'\"\r\n                                                                                        }\r\n                                                                                      ];\r\n                                                                                      return false;\r\n                                                                                    } else {\r\n                                                                                      var errs_3 = errors;\r\n                                                                                      if (errors === errs_3) {\r\n                                                                                        if (typeof data2 === \"string\") {\r\n                                                                                          if (!formats[\"uri-reference\"].test(data2)) {\r\n                                                                                            validate.errors = [\r\n                                                                                              {\r\n                                                                                                keyword: \"format\",\r\n                                                                                                dataPath:\r\n                                                                                                  (dataPath || \"\") +\r\n                                                                                                  \".externalDocs.url\",\r\n                                                                                                schemaPath:\r\n                                                                                                  \"#/definitions/ExternalDocumentation/properties/url/format\",\r\n                                                                                                params: {\r\n                                                                                                  format: \"uri-reference\"\r\n                                                                                                },\r\n                                                                                                message:\r\n                                                                                                  'should match format \"uri-reference\"'\r\n                                                                                              }\r\n                                                                                            ];\r\n                                                                                            return false;\r\n                                                                                          }\r\n                                                                                        } else {\r\n                                                                                          validate.errors = [\r\n                                                                                            {\r\n                                                                                              keyword: \"type\",\r\n                                                                                              dataPath:\r\n                                                                                                (dataPath || \"\") +\r\n                                                                                                \".externalDocs.url\",\r\n                                                                                              schemaPath:\r\n                                                                                                \"#/definitions/ExternalDocumentation/properties/url/type\",\r\n                                                                                              params: {\r\n                                                                                                type: \"string\"\r\n                                                                                              },\r\n                                                                                              message: \"should be string\"\r\n                                                                                            }\r\n                                                                                          ];\r\n                                                                                          return false;\r\n                                                                                        }\r\n                                                                                      }\r\n                                                                                      var valid3 = errors === errs_3;\r\n                                                                                    }\r\n                                                                                  }\r\n                                                                                }\r\n                                                                              }\r\n                                                                            } else {\r\n                                                                              validate.errors = [\r\n                                                                                {\r\n                                                                                  keyword: \"type\",\r\n                                                                                  dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                                                                                  schemaPath:\r\n                                                                                    \"#/definitions/ExternalDocumentation/type\",\r\n                                                                                  params: {\r\n                                                                                    type: \"object\"\r\n                                                                                  },\r\n                                                                                  message: \"should be object\"\r\n                                                                                }\r\n                                                                              ];\r\n                                                                              return false;\r\n                                                                            }\r\n                                                                            var valid2 = errors === errs_2;\r\n                                                                            var valid1 = errors === errs_1;\r\n                                                                          }\r\n                                                                          if (valid1) {\r\n                                                                            if (data.deprecated === undefined) {\r\n                                                                              valid1 = true;\r\n                                                                            } else {\r\n                                                                              var errs_1 = errors;\r\n                                                                              if (typeof data.deprecated !== \"boolean\") {\r\n                                                                                validate.errors = [\r\n                                                                                  {\r\n                                                                                    keyword: \"type\",\r\n                                                                                    dataPath: (dataPath || \"\") + \".deprecated\",\r\n                                                                                    schemaPath: \"#/properties/deprecated/type\",\r\n                                                                                    params: {\r\n                                                                                      type: \"boolean\"\r\n                                                                                    },\r\n                                                                                    message: \"should be boolean\"\r\n                                                                                  }\r\n                                                                                ];\r\n                                                                                return false;\r\n                                                                              }\r\n                                                                              var valid1 = errors === errs_1;\r\n                                                                            }\r\n                                                                            if (valid1) {\r\n                                                                              var data1 = data.xml;\r\n                                                                              if (data1 === undefined) {\r\n                                                                                valid1 = true;\r\n                                                                              } else {\r\n                                                                                var errs_1 = errors;\r\n                                                                                var errs_2 = errors;\r\n                                                                                if (\r\n                                                                                  data1 &&\r\n                                                                                  typeof data1 === \"object\" &&\r\n                                                                                  !Array.isArray(data1)\r\n                                                                                ) {\r\n                                                                                  var errs__2 = errors;\r\n                                                                                  var valid3 = true;\r\n                                                                                  for (var key2 in data1) {\r\n                                                                                    var isAdditional2 = !(\r\n                                                                                      false ||\r\n                                                                                      key2 == \"name\" ||\r\n                                                                                      key2 == \"namespace\" ||\r\n                                                                                      key2 == \"prefix\" ||\r\n                                                                                      key2 == \"attribute\" ||\r\n                                                                                      key2 == \"wrapped\" ||\r\n                                                                                      pattern0.test(key2)\r\n                                                                                    );\r\n                                                                                    if (isAdditional2) {\r\n                                                                                      valid3 = false;\r\n                                                                                      validate.errors = [\r\n                                                                                        {\r\n                                                                                          keyword: \"additionalProperties\",\r\n                                                                                          dataPath: (dataPath || \"\") + \".xml\",\r\n                                                                                          schemaPath:\r\n                                                                                            \"#/definitions/XML/additionalProperties\",\r\n                                                                                          params: {\r\n                                                                                            additionalProperty: \"\" + key2 + \"\"\r\n                                                                                          },\r\n                                                                                          message:\r\n                                                                                            \"should NOT have additional properties\"\r\n                                                                                        }\r\n                                                                                      ];\r\n                                                                                      return false;\r\n                                                                                      break;\r\n                                                                                    }\r\n                                                                                  }\r\n                                                                                  if (valid3) {\r\n                                                                                    if (data1.name === undefined) {\r\n                                                                                      valid3 = true;\r\n                                                                                    } else {\r\n                                                                                      var errs_3 = errors;\r\n                                                                                      if (typeof data1.name !== \"string\") {\r\n                                                                                        validate.errors = [\r\n                                                                                          {\r\n                                                                                            keyword: \"type\",\r\n                                                                                            dataPath: (dataPath || \"\") + \".xml.name\",\r\n                                                                                            schemaPath:\r\n                                                                                              \"#/definitions/XML/properties/name/type\",\r\n                                                                                            params: {\r\n                                                                                              type: \"string\"\r\n                                                                                            },\r\n                                                                                            message: \"should be string\"\r\n                                                                                          }\r\n                                                                                        ];\r\n                                                                                        return false;\r\n                                                                                      }\r\n                                                                                      var valid3 = errors === errs_3;\r\n                                                                                    }\r\n                                                                                    if (valid3) {\r\n                                                                                      var data2 = data1.namespace;\r\n                                                                                      if (data2 === undefined) {\r\n                                                                                        valid3 = true;\r\n                                                                                      } else {\r\n                                                                                        var errs_3 = errors;\r\n                                                                                        if (errors === errs_3) {\r\n                                                                                          if (typeof data2 === \"string\") {\r\n                                                                                            if (!formats.uri.test(data2)) {\r\n                                                                                              validate.errors = [\r\n                                                                                                {\r\n                                                                                                  keyword: \"format\",\r\n                                                                                                  dataPath:\r\n                                                                                                    (dataPath || \"\") +\r\n                                                                                                    \".xml.namespace\",\r\n                                                                                                  schemaPath:\r\n                                                                                                    \"#/definitions/XML/properties/namespace/format\",\r\n                                                                                                  params: {\r\n                                                                                                    format: \"uri\"\r\n                                                                                                  },\r\n                                                                                                  message: 'should match format \"uri\"'\r\n                                                                                                }\r\n                                                                                              ];\r\n                                                                                              return false;\r\n                                                                                            }\r\n                                                                                          } else {\r\n                                                                                            validate.errors = [\r\n                                                                                              {\r\n                                                                                                keyword: \"type\",\r\n                                                                                                dataPath:\r\n                                                                                                  (dataPath || \"\") + \".xml.namespace\",\r\n                                                                                                schemaPath:\r\n                                                                                                  \"#/definitions/XML/properties/namespace/type\",\r\n                                                                                                params: {\r\n                                                                                                  type: \"string\"\r\n                                                                                                },\r\n                                                                                                message: \"should be string\"\r\n                                                                                              }\r\n                                                                                            ];\r\n                                                                                            return false;\r\n                                                                                          }\r\n                                                                                        }\r\n                                                                                        var valid3 = errors === errs_3;\r\n                                                                                      }\r\n                                                                                      if (valid3) {\r\n                                                                                        if (data1.prefix === undefined) {\r\n                                                                                          valid3 = true;\r\n                                                                                        } else {\r\n                                                                                          var errs_3 = errors;\r\n                                                                                          if (typeof data1.prefix !== \"string\") {\r\n                                                                                            validate.errors = [\r\n                                                                                              {\r\n                                                                                                keyword: \"type\",\r\n                                                                                                dataPath:\r\n                                                                                                  (dataPath || \"\") + \".xml.prefix\",\r\n                                                                                                schemaPath:\r\n                                                                                                  \"#/definitions/XML/properties/prefix/type\",\r\n                                                                                                params: {\r\n                                                                                                  type: \"string\"\r\n                                                                                                },\r\n                                                                                                message: \"should be string\"\r\n                                                                                              }\r\n                                                                                            ];\r\n                                                                                            return false;\r\n                                                                                          }\r\n                                                                                          var valid3 = errors === errs_3;\r\n                                                                                        }\r\n                                                                                        if (valid3) {\r\n                                                                                          if (data1.attribute === undefined) {\r\n                                                                                            valid3 = true;\r\n                                                                                          } else {\r\n                                                                                            var errs_3 = errors;\r\n                                                                                            if (\r\n                                                                                              typeof data1.attribute !== \"boolean\"\r\n                                                                                            ) {\r\n                                                                                              validate.errors = [\r\n                                                                                                {\r\n                                                                                                  keyword: \"type\",\r\n                                                                                                  dataPath:\r\n                                                                                                    (dataPath || \"\") +\r\n                                                                                                    \".xml.attribute\",\r\n                                                                                                  schemaPath:\r\n                                                                                                    \"#/definitions/XML/properties/attribute/type\",\r\n                                                                                                  params: {\r\n                                                                                                    type: \"boolean\"\r\n                                                                                                  },\r\n                                                                                                  message: \"should be boolean\"\r\n                                                                                                }\r\n                                                                                              ];\r\n                                                                                              return false;\r\n                                                                                            }\r\n                                                                                            var valid3 = errors === errs_3;\r\n                                                                                          }\r\n                                                                                          if (valid3) {\r\n                                                                                            if (data1.wrapped === undefined) {\r\n                                                                                              valid3 = true;\r\n                                                                                            } else {\r\n                                                                                              var errs_3 = errors;\r\n                                                                                              if (\r\n                                                                                                typeof data1.wrapped !== \"boolean\"\r\n                                                                                              ) {\r\n                                                                                                validate.errors = [\r\n                                                                                                  {\r\n                                                                                                    keyword: \"type\",\r\n                                                                                                    dataPath:\r\n                                                                                                      (dataPath || \"\") +\r\n                                                                                                      \".xml.wrapped\",\r\n                                                                                                    schemaPath:\r\n                                                                                                      \"#/definitions/XML/properties/wrapped/type\",\r\n                                                                                                    params: {\r\n                                                                                                      type: \"boolean\"\r\n                                                                                                    },\r\n                                                                                                    message: \"should be boolean\"\r\n                                                                                                  }\r\n                                                                                                ];\r\n                                                                                                return false;\r\n                                                                                              }\r\n                                                                                              var valid3 = errors === errs_3;\r\n                                                                                            }\r\n                                                                                          }\r\n                                                                                        }\r\n                                                                                      }\r\n                                                                                    }\r\n                                                                                  }\r\n                                                                                } else {\r\n                                                                                  validate.errors = [\r\n                                                                                    {\r\n                                                                                      keyword: \"type\",\r\n                                                                                      dataPath: (dataPath || \"\") + \".xml\",\r\n                                                                                      schemaPath: \"#/definitions/XML/type\",\r\n                                                                                      params: {\r\n                                                                                        type: \"object\"\r\n                                                                                      },\r\n                                                                                      message: \"should be object\"\r\n                                                                                    }\r\n                                                                                  ];\r\n                                                                                  return false;\r\n                                                                                }\r\n                                                                                var valid2 = errors === errs_2;\r\n                                                                                var valid1 = errors === errs_1;\r\n                                                                              }\r\n                                                                            }\r\n                                                                          }\r\n                                                                        }\r\n                                                                      }\r\n                                                                    }\r\n                                                                  }\r\n                                                                }\r\n                                                              }\r\n                                                            }\r\n                                                          }\r\n                                                        }\r\n                                                      }\r\n                                                    }\r\n                                                  }\r\n                                                }\r\n                                              }\r\n                                            }\r\n                                          }\r\n                                        }\r\n                                      }\r\n                                    }\r\n                                  }\r\n                                }\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal12.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      title: {\r\n        type: \"string\"\r\n      },\r\n      multipleOf: {\r\n        type: \"number\",\r\n        minimum: 0,\r\n        exclusiveMinimum: true\r\n      },\r\n      maximum: {\r\n        type: \"number\"\r\n      },\r\n      exclusiveMaximum: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      minimum: {\r\n        type: \"number\"\r\n      },\r\n      exclusiveMinimum: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      maxLength: {\r\n        type: \"integer\",\r\n        minimum: 0\r\n      },\r\n      minLength: {\r\n        type: \"integer\",\r\n        minimum: 0,\r\n        default: 0\r\n      },\r\n      pattern: {\r\n        type: \"string\",\r\n        format: \"regex\"\r\n      },\r\n      maxItems: {\r\n        type: \"integer\",\r\n        minimum: 0\r\n      },\r\n      minItems: {\r\n        type: \"integer\",\r\n        minimum: 0,\r\n        default: 0\r\n      },\r\n      uniqueItems: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      maxProperties: {\r\n        type: \"integer\",\r\n        minimum: 0\r\n      },\r\n      minProperties: {\r\n        type: \"integer\",\r\n        minimum: 0,\r\n        default: 0\r\n      },\r\n      required: {\r\n        type: \"array\",\r\n        items: {\r\n          type: \"string\"\r\n        },\r\n        minItems: 1,\r\n        uniqueItems: true\r\n      },\r\n      enum: {\r\n        type: \"array\",\r\n        items: {},\r\n        minItems: 1,\r\n        uniqueItems: false\r\n      },\r\n      type: {\r\n        type: \"string\",\r\n        enum: [\"array\", \"boolean\", \"integer\", \"number\", \"object\", \"string\"]\r\n      },\r\n      not: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Schema\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      allOf: {\r\n        type: \"array\",\r\n        items: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      oneOf: {\r\n        type: \"array\",\r\n        items: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      anyOf: {\r\n        type: \"array\",\r\n        items: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      items: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Schema\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      properties: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      additionalProperties: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Schema\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          },\r\n          {\r\n            type: \"boolean\"\r\n          }\r\n        ],\r\n        default: true\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      format: {\r\n        type: \"string\"\r\n      },\r\n      default: {},\r\n      nullable: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      discriminator: {\r\n        $ref: \"#/definitions/Discriminator\"\r\n      },\r\n      readOnly: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      writeOnly: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      example: {},\r\n      externalDocs: {\r\n        $ref: \"#/definitions/ExternalDocumentation\"\r\n      },\r\n      deprecated: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      xml: {\r\n        $ref: \"#/definitions/XML\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal12.errors = null;\r\n  refVal[12] = refVal12;\r\n  var refVal13 = {\r\n    type: \"object\",\r\n    required: [\"$ref\"],\r\n    patternProperties: {\r\n      \"^\\\\$ref$\": {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      }\r\n    }\r\n  };\r\n  refVal[13] = refVal13;\r\n  var refVal14 = {\r\n    type: \"object\",\r\n    required: [\"propertyName\"],\r\n    properties: {\r\n      propertyName: {\r\n        type: \"string\"\r\n      },\r\n      mapping: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          type: \"string\"\r\n        }\r\n      }\r\n    }\r\n  };\r\n  refVal[14] = refVal14;\r\n  var refVal15 = {\r\n    type: \"object\",\r\n    properties: {\r\n      name: {\r\n        type: \"string\"\r\n      },\r\n      namespace: {\r\n        type: \"string\",\r\n        format: \"uri\"\r\n      },\r\n      prefix: {\r\n        type: \"string\"\r\n      },\r\n      attribute: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      wrapped: {\r\n        type: \"boolean\",\r\n        default: false\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[15] = refVal15;\r\n  var refVal16 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(\r\n            false ||\r\n            key0 == \"schema\" ||\r\n            key0 == \"example\" ||\r\n            key0 == \"examples\" ||\r\n            key0 == \"encoding\" ||\r\n            pattern0.test(key0)\r\n          );\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          var data1 = data.schema;\r\n          if (data1 === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            var errs__1 = errors;\r\n            var prevValid1 = false;\r\n            var valid1 = false;\r\n            var errs_2 = errors;\r\n            if (!refVal[12](data1, (dataPath || \"\") + \".schema\", data, \"schema\", rootData)) {\r\n              if (vErrors === null) vErrors = refVal[12].errors;\r\n              else vErrors = vErrors.concat(refVal[12].errors);\r\n              errors = vErrors.length;\r\n            }\r\n            var valid2 = errors === errs_2;\r\n            if (valid2) valid1 = prevValid1 = true;\r\n            var errs_2 = errors;\r\n            var errs_3 = errors;\r\n            if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n              var missing3;\r\n              if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                var err = {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \".schema\",\r\n                  schemaPath: \"#/definitions/Reference/required\",\r\n                  params: {\r\n                    missingProperty: \"\" + missing3 + \"\"\r\n                  },\r\n                  message: \"should have required property '\" + missing3 + \"'\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              } else {\r\n                var errs__3 = errors;\r\n                var valid4 = true;\r\n                for (var key3 in data1) {\r\n                  if (pattern4.test(key3)) {\r\n                    var data2 = data1[key3];\r\n                    var errs_4 = errors;\r\n                    if (errors === errs_4) {\r\n                      if (typeof data2 === \"string\") {\r\n                        if (!formats[\"uri-reference\"].test(data2)) {\r\n                          var err = {\r\n                            keyword: \"format\",\r\n                            dataPath: (dataPath || \"\") + \".schema['\" + key3 + \"']\",\r\n                            schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                            params: {\r\n                              format: \"uri-reference\"\r\n                            },\r\n                            message: 'should match format \"uri-reference\"'\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                      } else {\r\n                        var err = {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".schema['\" + key3 + \"']\",\r\n                          schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                          params: {\r\n                            type: \"string\"\r\n                          },\r\n                          message: \"should be string\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    if (!valid4) break;\r\n                  } else valid4 = true;\r\n                }\r\n              }\r\n            } else {\r\n              var err = {\r\n                keyword: \"type\",\r\n                dataPath: (dataPath || \"\") + \".schema\",\r\n                schemaPath: \"#/definitions/Reference/type\",\r\n                params: {\r\n                  type: \"object\"\r\n                },\r\n                message: \"should be object\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            var valid2 = errors === errs_2;\r\n            if (valid2 && prevValid1) valid1 = false;\r\n            else {\r\n              if (valid2) valid1 = prevValid1 = true;\r\n            }\r\n            if (!valid1) {\r\n              var err = {\r\n                keyword: \"oneOf\",\r\n                dataPath: (dataPath || \"\") + \".schema\",\r\n                schemaPath: \"#/properties/schema/oneOf\",\r\n                params: {},\r\n                message: \"should match exactly one schema in oneOf\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n              validate.errors = vErrors;\r\n              return false;\r\n            } else {\r\n              errors = errs__1;\r\n              if (vErrors !== null) {\r\n                if (errs__1) vErrors.length = errs__1;\r\n                else vErrors = null;\r\n              }\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            if (valid1) {\r\n              var data1 = data.examples;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  var errs__1 = errors;\r\n                  var valid2 = true;\r\n                  for (var key1 in data1) {\r\n                    var data2 = data1[key1];\r\n                    var errs_2 = errors;\r\n                    var errs__2 = errors;\r\n                    var prevValid2 = false;\r\n                    var valid2 = false;\r\n                    var errs_3 = errors;\r\n                    var errs_4 = errors;\r\n                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                      var errs__4 = errors;\r\n                      var valid5 = true;\r\n                      for (var key4 in data2) {\r\n                        var isAdditional4 = !(\r\n                          false ||\r\n                          key4 == \"summary\" ||\r\n                          key4 == \"description\" ||\r\n                          key4 == \"value\" ||\r\n                          key4 == \"externalValue\" ||\r\n                          pattern0.test(key4)\r\n                        );\r\n                        if (isAdditional4) {\r\n                          valid5 = false;\r\n                          var err = {\r\n                            keyword: \"additionalProperties\",\r\n                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                            schemaPath: \"#/definitions/Example/additionalProperties\",\r\n                            params: {\r\n                              additionalProperty: \"\" + key4 + \"\"\r\n                            },\r\n                            message: \"should NOT have additional properties\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                          break;\r\n                        }\r\n                      }\r\n                      if (valid5) {\r\n                        if (data2.summary === undefined) {\r\n                          valid5 = true;\r\n                        } else {\r\n                          var errs_5 = errors;\r\n                          if (typeof data2.summary !== \"string\") {\r\n                            var err = {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].summary\",\r\n                              schemaPath: \"#/definitions/Example/properties/summary/type\",\r\n                              params: {\r\n                                type: \"string\"\r\n                              },\r\n                              message: \"should be string\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          }\r\n                          var valid5 = errors === errs_5;\r\n                        }\r\n                        if (valid5) {\r\n                          if (data2.description === undefined) {\r\n                            valid5 = true;\r\n                          } else {\r\n                            var errs_5 = errors;\r\n                            if (typeof data2.description !== \"string\") {\r\n                              var err = {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].description\",\r\n                                schemaPath: \"#/definitions/Example/properties/description/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            }\r\n                            var valid5 = errors === errs_5;\r\n                          }\r\n                          if (valid5) {\r\n                            if (valid5) {\r\n                              var data3 = data2.externalValue;\r\n                              if (data3 === undefined) {\r\n                                valid5 = true;\r\n                              } else {\r\n                                var errs_5 = errors;\r\n                                if (errors === errs_5) {\r\n                                  if (typeof data3 === \"string\") {\r\n                                    if (!formats[\"uri-reference\"].test(data3)) {\r\n                                      var err = {\r\n                                        keyword: \"format\",\r\n                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                        schemaPath: \"#/definitions/Example/properties/externalValue/format\",\r\n                                        params: {\r\n                                          format: \"uri-reference\"\r\n                                        },\r\n                                        message: 'should match format \"uri-reference\"'\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  } else {\r\n                                    var err = {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                      schemaPath: \"#/definitions/Example/properties/externalValue/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  }\r\n                                }\r\n                                var valid5 = errors === errs_5;\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    } else {\r\n                      var err = {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                        schemaPath: \"#/definitions/Example/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    var valid3 = errors === errs_3;\r\n                    if (valid3) valid2 = prevValid2 = true;\r\n                    var errs_3 = errors;\r\n                    var errs_4 = errors;\r\n                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                      var missing4;\r\n                      if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                        var err = {\r\n                          keyword: \"required\",\r\n                          dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                          schemaPath: \"#/definitions/Reference/required\",\r\n                          params: {\r\n                            missingProperty: \"\" + missing4 + \"\"\r\n                          },\r\n                          message: \"should have required property '\" + missing4 + \"'\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      } else {\r\n                        var errs__4 = errors;\r\n                        var valid5 = true;\r\n                        for (var key4 in data2) {\r\n                          if (pattern4.test(key4)) {\r\n                            var data3 = data2[key4];\r\n                            var errs_5 = errors;\r\n                            if (errors === errs_5) {\r\n                              if (typeof data3 === \"string\") {\r\n                                if (!formats[\"uri-reference\"].test(data3)) {\r\n                                  var err = {\r\n                                    keyword: \"format\",\r\n                                    dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                    schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                    params: {\r\n                                      format: \"uri-reference\"\r\n                                    },\r\n                                    message: 'should match format \"uri-reference\"'\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                              } else {\r\n                                var err = {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                            }\r\n                            var valid5 = errors === errs_5;\r\n                            if (!valid5) break;\r\n                          } else valid5 = true;\r\n                        }\r\n                      }\r\n                    } else {\r\n                      var err = {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                        schemaPath: \"#/definitions/Reference/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    var valid3 = errors === errs_3;\r\n                    if (valid3 && prevValid2) valid2 = false;\r\n                    else {\r\n                      if (valid3) valid2 = prevValid2 = true;\r\n                    }\r\n                    if (!valid2) {\r\n                      var err = {\r\n                        keyword: \"oneOf\",\r\n                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                        schemaPath: \"#/properties/examples/additionalProperties/oneOf\",\r\n                        params: {},\r\n                        message: \"should match exactly one schema in oneOf\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                      validate.errors = vErrors;\r\n                      return false;\r\n                    } else {\r\n                      errors = errs__2;\r\n                      if (vErrors !== null) {\r\n                        if (errs__2) vErrors.length = errs__2;\r\n                        else vErrors = null;\r\n                      }\r\n                    }\r\n                    var valid2 = errors === errs_2;\r\n                    if (!valid2) break;\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".examples\",\r\n                      schemaPath: \"#/properties/examples/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.encoding;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    var errs__1 = errors;\r\n                    var valid2 = true;\r\n                    for (var key1 in data1) {\r\n                      var errs_2 = errors;\r\n                      if (!refVal18(data1[key1], (dataPath || \"\") + \".encoding['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                        if (vErrors === null) vErrors = refVal18.errors;\r\n                        else vErrors = vErrors.concat(refVal18.errors);\r\n                        errors = vErrors.length;\r\n                      }\r\n                      var valid2 = errors === errs_2;\r\n                      if (!valid2) break;\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".encoding\",\r\n                        schemaPath: \"#/properties/encoding/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      if (errors === 0) {\r\n        var errs_1 = errors;\r\n        var errs_2 = errors;\r\n        var errs__2 = errors;\r\n        var errs_3 = errors;\r\n        if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n          var missing3;\r\n          if ((data.example === undefined && (missing3 = \".example\")) || (data.examples === undefined && (missing3 = \".examples\"))) {\r\n            var err = {};\r\n            if (vErrors === null) vErrors = [err];\r\n            else vErrors.push(err);\r\n            errors++;\r\n          }\r\n        }\r\n        var valid3 = errors === errs_3;\r\n        if (valid3) {\r\n          validate.errors = [\r\n            {\r\n              keyword: \"not\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/definitions/ExampleXORExamples/not\",\r\n              params: {},\r\n              message: \"should NOT be valid\"\r\n            }\r\n          ];\r\n          return false;\r\n        } else {\r\n          errors = errs__2;\r\n          if (vErrors !== null) {\r\n            if (errs__2) vErrors.length = errs__2;\r\n            else vErrors = null;\r\n          }\r\n        }\r\n        var valid2 = errors === errs_2;\r\n        var valid1 = errors === errs_1;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal16.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      schema: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Schema\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      example: {},\r\n      examples: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Example\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      encoding: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          $ref: \"#/definitions/Encoding\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false,\r\n    allOf: [\r\n      {\r\n        $ref: \"#/definitions/ExampleXORExamples\"\r\n      }\r\n    ]\r\n  };\r\n  refVal16.errors = null;\r\n  refVal[16] = refVal16;\r\n  var refVal17 = {\r\n    type: \"object\",\r\n    properties: {\r\n      summary: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      value: {},\r\n      externalValue: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[17] = refVal17;\r\n  var refVal18 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(\r\n            false ||\r\n            key0 == \"contentType\" ||\r\n            key0 == \"headers\" ||\r\n            key0 == \"style\" ||\r\n            key0 == \"explode\" ||\r\n            key0 == \"allowReserved\" ||\r\n            pattern0.test(key0)\r\n          );\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          if (data.contentType === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (typeof data.contentType !== \"string\") {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".contentType\",\r\n                  schemaPath: \"#/properties/contentType/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.headers;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                var errs__1 = errors;\r\n                var valid2 = true;\r\n                for (var key1 in data1) {\r\n                  var data2 = data1[key1];\r\n                  var errs_2 = errors;\r\n                  var errs__2 = errors;\r\n                  var prevValid2 = false;\r\n                  var valid2 = false;\r\n                  var errs_3 = errors;\r\n                  if (!refVal19(data2, (dataPath || \"\") + \".headers['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                    if (vErrors === null) vErrors = refVal19.errors;\r\n                    else vErrors = vErrors.concat(refVal19.errors);\r\n                    errors = vErrors.length;\r\n                  }\r\n                  var valid3 = errors === errs_3;\r\n                  if (valid3) valid2 = prevValid2 = true;\r\n                  var errs_3 = errors;\r\n                  var errs_4 = errors;\r\n                  if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                    var missing4;\r\n                    if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                      var err = {\r\n                        keyword: \"required\",\r\n                        dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                        schemaPath: \"#/definitions/Reference/required\",\r\n                        params: {\r\n                          missingProperty: \"\" + missing4 + \"\"\r\n                        },\r\n                        message: \"should have required property '\" + missing4 + \"'\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    } else {\r\n                      var errs__4 = errors;\r\n                      var valid5 = true;\r\n                      for (var key4 in data2) {\r\n                        if (pattern4.test(key4)) {\r\n                          var data3 = data2[key4];\r\n                          var errs_5 = errors;\r\n                          if (errors === errs_5) {\r\n                            if (typeof data3 === \"string\") {\r\n                              if (!formats[\"uri-reference\"].test(data3)) {\r\n                                var err = {\r\n                                  keyword: \"format\",\r\n                                  dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                  params: {\r\n                                    format: \"uri-reference\"\r\n                                  },\r\n                                  message: 'should match format \"uri-reference\"'\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                            } else {\r\n                              var err = {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            }\r\n                          }\r\n                          var valid5 = errors === errs_5;\r\n                          if (!valid5) break;\r\n                        } else valid5 = true;\r\n                      }\r\n                    }\r\n                  } else {\r\n                    var err = {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                      schemaPath: \"#/definitions/Reference/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                  var valid3 = errors === errs_3;\r\n                  if (valid3 && prevValid2) valid2 = false;\r\n                  else {\r\n                    if (valid3) valid2 = prevValid2 = true;\r\n                  }\r\n                  if (!valid2) {\r\n                    var err = {\r\n                      keyword: \"oneOf\",\r\n                      dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                      schemaPath: \"#/properties/headers/additionalProperties/oneOf\",\r\n                      params: {},\r\n                      message: \"should match exactly one schema in oneOf\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                    validate.errors = vErrors;\r\n                    return false;\r\n                  } else {\r\n                    errors = errs__2;\r\n                    if (vErrors !== null) {\r\n                      if (errs__2) vErrors.length = errs__2;\r\n                      else vErrors = null;\r\n                    }\r\n                  }\r\n                  var valid2 = errors === errs_2;\r\n                  if (!valid2) break;\r\n                }\r\n              } else {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".headers\",\r\n                    schemaPath: \"#/properties/headers/type\",\r\n                    params: {\r\n                      type: \"object\"\r\n                    },\r\n                    message: \"should be object\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.style;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data1 !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".style\",\r\n                      schemaPath: \"#/properties/style/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var schema1 = validate.schema.properties.style.enum;\r\n                var valid1;\r\n                valid1 = false;\r\n                for (var i1 = 0; i1 < schema1.length; i1++)\r\n                  if (equal(data1, schema1[i1])) {\r\n                    valid1 = true;\r\n                    break;\r\n                  }\r\n                if (!valid1) {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"enum\",\r\n                      dataPath: (dataPath || \"\") + \".style\",\r\n                      schemaPath: \"#/properties/style/enum\",\r\n                      params: {\r\n                        allowedValues: schema1\r\n                      },\r\n                      message: \"should be equal to one of the allowed values\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.explode === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.explode !== \"boolean\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".explode\",\r\n                        schemaPath: \"#/properties/explode/type\",\r\n                        params: {\r\n                          type: \"boolean\"\r\n                        },\r\n                        message: \"should be boolean\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  if (data.allowReserved === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (typeof data.allowReserved !== \"boolean\") {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".allowReserved\",\r\n                          schemaPath: \"#/properties/allowReserved/type\",\r\n                          params: {\r\n                            type: \"boolean\"\r\n                          },\r\n                          message: \"should be boolean\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal18.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      contentType: {\r\n        type: \"string\"\r\n      },\r\n      headers: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Header\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      style: {\r\n        type: \"string\",\r\n        enum: [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"]\r\n      },\r\n      explode: {\r\n        type: \"boolean\"\r\n      },\r\n      allowReserved: {\r\n        type: \"boolean\",\r\n        default: false\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal18.errors = null;\r\n  refVal[18] = refVal18;\r\n  var refVal19 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          if (data.description === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (typeof data.description !== \"string\") {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".description\",\r\n                  schemaPath: \"#/properties/description/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            if (data.required === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.required !== \"boolean\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".required\",\r\n                    schemaPath: \"#/properties/required/type\",\r\n                    params: {\r\n                      type: \"boolean\"\r\n                    },\r\n                    message: \"should be boolean\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.deprecated === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.deprecated !== \"boolean\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".deprecated\",\r\n                      schemaPath: \"#/properties/deprecated/type\",\r\n                      params: {\r\n                        type: \"boolean\"\r\n                      },\r\n                      message: \"should be boolean\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.allowEmptyValue === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.allowEmptyValue !== \"boolean\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".allowEmptyValue\",\r\n                        schemaPath: \"#/properties/allowEmptyValue/type\",\r\n                        params: {\r\n                          type: \"boolean\"\r\n                        },\r\n                        message: \"should be boolean\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.style;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (typeof data1 !== \"string\") {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".style\",\r\n                          schemaPath: \"#/properties/style/type\",\r\n                          params: {\r\n                            type: \"string\"\r\n                          },\r\n                          message: \"should be string\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var schema1 = validate.schema.properties.style.enum;\r\n                    var valid1;\r\n                    valid1 = false;\r\n                    for (var i1 = 0; i1 < schema1.length; i1++)\r\n                      if (equal(data1, schema1[i1])) {\r\n                        valid1 = true;\r\n                        break;\r\n                      }\r\n                    if (!valid1) {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"enum\",\r\n                          dataPath: (dataPath || \"\") + \".style\",\r\n                          schemaPath: \"#/properties/style/enum\",\r\n                          params: {\r\n                            allowedValues: schema1\r\n                          },\r\n                          message: \"should be equal to one of the allowed values\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    if (data.explode === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (typeof data.explode !== \"boolean\") {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".explode\",\r\n                            schemaPath: \"#/properties/explode/type\",\r\n                            params: {\r\n                              type: \"boolean\"\r\n                            },\r\n                            message: \"should be boolean\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      if (data.allowReserved === undefined) {\r\n                        valid1 = true;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (typeof data.allowReserved !== \"boolean\") {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".allowReserved\",\r\n                              schemaPath: \"#/properties/allowReserved/type\",\r\n                              params: {\r\n                                type: \"boolean\"\r\n                              },\r\n                              message: \"should be boolean\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                      if (valid1) {\r\n                        var data1 = data.schema;\r\n                        if (data1 === undefined) {\r\n                          valid1 = true;\r\n                        } else {\r\n                          var errs_1 = errors;\r\n                          var errs__1 = errors;\r\n                          var prevValid1 = false;\r\n                          var valid1 = false;\r\n                          var errs_2 = errors;\r\n                          if (!refVal[12](data1, (dataPath || \"\") + \".schema\", data, \"schema\", rootData)) {\r\n                            if (vErrors === null) vErrors = refVal[12].errors;\r\n                            else vErrors = vErrors.concat(refVal[12].errors);\r\n                            errors = vErrors.length;\r\n                          }\r\n                          var valid2 = errors === errs_2;\r\n                          if (valid2) valid1 = prevValid1 = true;\r\n                          var errs_2 = errors;\r\n                          var errs_3 = errors;\r\n                          if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                            var missing3;\r\n                            if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                              var err = {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".schema\",\r\n                                schemaPath: \"#/definitions/Reference/required\",\r\n                                params: {\r\n                                  missingProperty: \"\" + missing3 + \"\"\r\n                                },\r\n                                message: \"should have required property '\" + missing3 + \"'\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            } else {\r\n                              var errs__3 = errors;\r\n                              var valid4 = true;\r\n                              for (var key3 in data1) {\r\n                                if (pattern4.test(key3)) {\r\n                                  var data2 = data1[key3];\r\n                                  var errs_4 = errors;\r\n                                  if (errors === errs_4) {\r\n                                    if (typeof data2 === \"string\") {\r\n                                      if (!formats[\"uri-reference\"].test(data2)) {\r\n                                        var err = {\r\n                                          keyword: \"format\",\r\n                                          dataPath: (dataPath || \"\") + \".schema['\" + key3 + \"']\",\r\n                                          schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                          params: {\r\n                                            format: \"uri-reference\"\r\n                                          },\r\n                                          message: 'should match format \"uri-reference\"'\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      }\r\n                                    } else {\r\n                                      var err = {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".schema['\" + key3 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  }\r\n                                  var valid4 = errors === errs_4;\r\n                                  if (!valid4) break;\r\n                                } else valid4 = true;\r\n                              }\r\n                            }\r\n                          } else {\r\n                            var err = {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".schema\",\r\n                              schemaPath: \"#/definitions/Reference/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                          var valid2 = errors === errs_2;\r\n                          if (valid2 && prevValid1) valid1 = false;\r\n                          else {\r\n                            if (valid2) valid1 = prevValid1 = true;\r\n                          }\r\n                          if (!valid1) {\r\n                            var err = {\r\n                              keyword: \"oneOf\",\r\n                              dataPath: (dataPath || \"\") + \".schema\",\r\n                              schemaPath: \"#/properties/schema/oneOf\",\r\n                              params: {},\r\n                              message: \"should match exactly one schema in oneOf\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                            validate.errors = vErrors;\r\n                            return false;\r\n                          } else {\r\n                            errors = errs__1;\r\n                            if (vErrors !== null) {\r\n                              if (errs__1) vErrors.length = errs__1;\r\n                              else vErrors = null;\r\n                            }\r\n                          }\r\n                          var valid1 = errors === errs_1;\r\n                        }\r\n                        if (valid1) {\r\n                          var data1 = data.content;\r\n                          if (data1 === undefined) {\r\n                            valid1 = true;\r\n                          } else {\r\n                            var errs_1 = errors;\r\n                            if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                              if (Object.keys(data1).length > 1) {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"maxProperties\",\r\n                                    dataPath: (dataPath || \"\") + \".content\",\r\n                                    schemaPath: \"#/properties/content/maxProperties\",\r\n                                    params: {\r\n                                      limit: 1\r\n                                    },\r\n                                    message: \"should NOT have more than 1 properties\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              } else {\r\n                                if (Object.keys(data1).length < 1) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"minProperties\",\r\n                                      dataPath: (dataPath || \"\") + \".content\",\r\n                                      schemaPath: \"#/properties/content/minProperties\",\r\n                                      params: {\r\n                                        limit: 1\r\n                                      },\r\n                                      message: \"should NOT have less than 1 properties\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                } else {\r\n                                  var errs__1 = errors;\r\n                                  var valid2 = true;\r\n                                  for (var key1 in data1) {\r\n                                    var errs_2 = errors;\r\n                                    if (\r\n                                      !refVal[16](data1[key1], (dataPath || \"\") + \".content['\" + key1 + \"']\", data1, key1, rootData)\r\n                                    ) {\r\n                                      if (vErrors === null) vErrors = refVal[16].errors;\r\n                                      else vErrors = vErrors.concat(refVal[16].errors);\r\n                                      errors = vErrors.length;\r\n                                    }\r\n                                    var valid2 = errors === errs_2;\r\n                                    if (!valid2) break;\r\n                                  }\r\n                                }\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".content\",\r\n                                  schemaPath: \"#/properties/content/type\",\r\n                                  params: {\r\n                                    type: \"object\"\r\n                                  },\r\n                                  message: \"should be object\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid1 = errors === errs_1;\r\n                          }\r\n                          if (valid1) {\r\n                            if (valid1) {\r\n                              var data1 = data.examples;\r\n                              if (data1 === undefined) {\r\n                                valid1 = true;\r\n                              } else {\r\n                                var errs_1 = errors;\r\n                                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                  var errs__1 = errors;\r\n                                  var valid2 = true;\r\n                                  for (var key1 in data1) {\r\n                                    var data2 = data1[key1];\r\n                                    var errs_2 = errors;\r\n                                    var errs__2 = errors;\r\n                                    var prevValid2 = false;\r\n                                    var valid2 = false;\r\n                                    var errs_3 = errors;\r\n                                    var errs_4 = errors;\r\n                                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                      var errs__4 = errors;\r\n                                      var valid5 = true;\r\n                                      for (var key4 in data2) {\r\n                                        var isAdditional4 = !(\r\n                                          false ||\r\n                                          key4 == \"summary\" ||\r\n                                          key4 == \"description\" ||\r\n                                          key4 == \"value\" ||\r\n                                          key4 == \"externalValue\" ||\r\n                                          pattern0.test(key4)\r\n                                        );\r\n                                        if (isAdditional4) {\r\n                                          valid5 = false;\r\n                                          var err = {\r\n                                            keyword: \"additionalProperties\",\r\n                                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                            schemaPath: \"#/definitions/Example/additionalProperties\",\r\n                                            params: {\r\n                                              additionalProperty: \"\" + key4 + \"\"\r\n                                            },\r\n                                            message: \"should NOT have additional properties\"\r\n                                          };\r\n                                          if (vErrors === null) vErrors = [err];\r\n                                          else vErrors.push(err);\r\n                                          errors++;\r\n                                          break;\r\n                                        }\r\n                                      }\r\n                                      if (valid5) {\r\n                                        if (data2.summary === undefined) {\r\n                                          valid5 = true;\r\n                                        } else {\r\n                                          var errs_5 = errors;\r\n                                          if (typeof data2.summary !== \"string\") {\r\n                                            var err = {\r\n                                              keyword: \"type\",\r\n                                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].summary\",\r\n                                              schemaPath: \"#/definitions/Example/properties/summary/type\",\r\n                                              params: {\r\n                                                type: \"string\"\r\n                                              },\r\n                                              message: \"should be string\"\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                          var valid5 = errors === errs_5;\r\n                                        }\r\n                                        if (valid5) {\r\n                                          if (data2.description === undefined) {\r\n                                            valid5 = true;\r\n                                          } else {\r\n                                            var errs_5 = errors;\r\n                                            if (typeof data2.description !== \"string\") {\r\n                                              var err = {\r\n                                                keyword: \"type\",\r\n                                                dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].description\",\r\n                                                schemaPath: \"#/definitions/Example/properties/description/type\",\r\n                                                params: {\r\n                                                  type: \"string\"\r\n                                                },\r\n                                                message: \"should be string\"\r\n                                              };\r\n                                              if (vErrors === null) vErrors = [err];\r\n                                              else vErrors.push(err);\r\n                                              errors++;\r\n                                            }\r\n                                            var valid5 = errors === errs_5;\r\n                                          }\r\n                                          if (valid5) {\r\n                                            if (valid5) {\r\n                                              var data3 = data2.externalValue;\r\n                                              if (data3 === undefined) {\r\n                                                valid5 = true;\r\n                                              } else {\r\n                                                var errs_5 = errors;\r\n                                                if (errors === errs_5) {\r\n                                                  if (typeof data3 === \"string\") {\r\n                                                    if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                      var err = {\r\n                                                        keyword: \"format\",\r\n                                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                                        schemaPath: \"#/definitions/Example/properties/externalValue/format\",\r\n                                                        params: {\r\n                                                          format: \"uri-reference\"\r\n                                                        },\r\n                                                        message: 'should match format \"uri-reference\"'\r\n                                                      };\r\n                                                      if (vErrors === null) vErrors = [err];\r\n                                                      else vErrors.push(err);\r\n                                                      errors++;\r\n                                                    }\r\n                                                  } else {\r\n                                                    var err = {\r\n                                                      keyword: \"type\",\r\n                                                      dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                                      schemaPath: \"#/definitions/Example/properties/externalValue/type\",\r\n                                                      params: {\r\n                                                        type: \"string\"\r\n                                                      },\r\n                                                      message: \"should be string\"\r\n                                                    };\r\n                                                    if (vErrors === null) vErrors = [err];\r\n                                                    else vErrors.push(err);\r\n                                                    errors++;\r\n                                                  }\r\n                                                }\r\n                                                var valid5 = errors === errs_5;\r\n                                              }\r\n                                            }\r\n                                          }\r\n                                        }\r\n                                      }\r\n                                    } else {\r\n                                      var err = {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                        schemaPath: \"#/definitions/Example/type\",\r\n                                        params: {\r\n                                          type: \"object\"\r\n                                        },\r\n                                        message: \"should be object\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                    var valid4 = errors === errs_4;\r\n                                    var valid3 = errors === errs_3;\r\n                                    if (valid3) valid2 = prevValid2 = true;\r\n                                    var errs_3 = errors;\r\n                                    var errs_4 = errors;\r\n                                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                      var missing4;\r\n                                      if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                        var err = {\r\n                                          keyword: \"required\",\r\n                                          dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                          schemaPath: \"#/definitions/Reference/required\",\r\n                                          params: {\r\n                                            missingProperty: \"\" + missing4 + \"\"\r\n                                          },\r\n                                          message: \"should have required property '\" + missing4 + \"'\"\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      } else {\r\n                                        var errs__4 = errors;\r\n                                        var valid5 = true;\r\n                                        for (var key4 in data2) {\r\n                                          if (pattern4.test(key4)) {\r\n                                            var data3 = data2[key4];\r\n                                            var errs_5 = errors;\r\n                                            if (errors === errs_5) {\r\n                                              if (typeof data3 === \"string\") {\r\n                                                if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                  var err = {\r\n                                                    keyword: \"format\",\r\n                                                    dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                    schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                    params: {\r\n                                                      format: \"uri-reference\"\r\n                                                    },\r\n                                                    message: 'should match format \"uri-reference\"'\r\n                                                  };\r\n                                                  if (vErrors === null) vErrors = [err];\r\n                                                  else vErrors.push(err);\r\n                                                  errors++;\r\n                                                }\r\n                                              } else {\r\n                                                var err = {\r\n                                                  keyword: \"type\",\r\n                                                  dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                  params: {\r\n                                                    type: \"string\"\r\n                                                  },\r\n                                                  message: \"should be string\"\r\n                                                };\r\n                                                if (vErrors === null) vErrors = [err];\r\n                                                else vErrors.push(err);\r\n                                                errors++;\r\n                                              }\r\n                                            }\r\n                                            var valid5 = errors === errs_5;\r\n                                            if (!valid5) break;\r\n                                          } else valid5 = true;\r\n                                        }\r\n                                      }\r\n                                    } else {\r\n                                      var err = {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/type\",\r\n                                        params: {\r\n                                          type: \"object\"\r\n                                        },\r\n                                        message: \"should be object\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                    var valid4 = errors === errs_4;\r\n                                    var valid3 = errors === errs_3;\r\n                                    if (valid3 && prevValid2) valid2 = false;\r\n                                    else {\r\n                                      if (valid3) valid2 = prevValid2 = true;\r\n                                    }\r\n                                    if (!valid2) {\r\n                                      var err = {\r\n                                        keyword: \"oneOf\",\r\n                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                        schemaPath: \"#/properties/examples/additionalProperties/oneOf\",\r\n                                        params: {},\r\n                                        message: \"should match exactly one schema in oneOf\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                      validate.errors = vErrors;\r\n                                      return false;\r\n                                    } else {\r\n                                      errors = errs__2;\r\n                                      if (vErrors !== null) {\r\n                                        if (errs__2) vErrors.length = errs__2;\r\n                                        else vErrors = null;\r\n                                      }\r\n                                    }\r\n                                    var valid2 = errors === errs_2;\r\n                                    if (!valid2) break;\r\n                                  }\r\n                                } else {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".examples\",\r\n                                      schemaPath: \"#/properties/examples/type\",\r\n                                      params: {\r\n                                        type: \"object\"\r\n                                      },\r\n                                      message: \"should be object\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                var valid1 = errors === errs_1;\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      if (errors === 0) {\r\n        var errs_1 = errors;\r\n        var errs_2 = errors;\r\n        var errs__2 = errors;\r\n        var errs_3 = errors;\r\n        if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n          var missing3;\r\n          if ((data.example === undefined && (missing3 = \".example\")) || (data.examples === undefined && (missing3 = \".examples\"))) {\r\n            var err = {};\r\n            if (vErrors === null) vErrors = [err];\r\n            else vErrors.push(err);\r\n            errors++;\r\n          }\r\n        }\r\n        var valid3 = errors === errs_3;\r\n        if (valid3) {\r\n          validate.errors = [\r\n            {\r\n              keyword: \"not\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/definitions/ExampleXORExamples/not\",\r\n              params: {},\r\n              message: \"should NOT be valid\"\r\n            }\r\n          ];\r\n          return false;\r\n        } else {\r\n          errors = errs__2;\r\n          if (vErrors !== null) {\r\n            if (errs__2) vErrors.length = errs__2;\r\n            else vErrors = null;\r\n          }\r\n        }\r\n        var valid2 = errors === errs_2;\r\n        var valid1 = errors === errs_1;\r\n        if (valid1) {\r\n          var errs_1 = errors;\r\n          var errs_2 = errors;\r\n          var errs__2 = errors;\r\n          var errs_3 = errors;\r\n          if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n            var missing3;\r\n            if ((data.schema === undefined && (missing3 = \".schema\")) || (data.content === undefined && (missing3 = \".content\"))) {\r\n              var err = {};\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            }\r\n          }\r\n          var valid3 = errors === errs_3;\r\n          if (valid3) {\r\n            validate.errors = [\r\n              {\r\n                keyword: \"not\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/SchemaXORContent/not\",\r\n                params: {},\r\n                message: \"should NOT be valid\"\r\n              }\r\n            ];\r\n            return false;\r\n          } else {\r\n            errors = errs__2;\r\n            if (vErrors !== null) {\r\n              if (errs__2) vErrors.length = errs__2;\r\n              else vErrors = null;\r\n            }\r\n            var errs__2 = errors;\r\n            var prevValid2 = false;\r\n            var valid2 = false;\r\n            var errs_3 = errors;\r\n            if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n              var missing3;\r\n              if (data.schema === undefined && (missing3 = \".schema\")) {\r\n                var err = {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/SchemaXORContent/oneOf/0/required\",\r\n                  params: {\r\n                    missingProperty: \"\" + missing3 + \"\"\r\n                  },\r\n                  message: \"should have required property '\" + missing3 + \"'\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            if (valid3) valid2 = prevValid2 = true;\r\n            var errs_3 = errors;\r\n            if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n              var missing3;\r\n              if (data.content === undefined && (missing3 = \".content\")) {\r\n                var err = {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/required\",\r\n                  params: {\r\n                    missingProperty: \"\" + missing3 + \"\"\r\n                  },\r\n                  message: \"should have required property '\" + missing3 + \"'\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n            }\r\n            if (errors === errs_3) {\r\n              var errs_4 = errors;\r\n              var errs__4 = errors;\r\n              var errs_5 = errors;\r\n              if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                var missing5;\r\n                if (data.style === undefined && (missing5 = \".style\")) {\r\n                  var err = {};\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                }\r\n              }\r\n              var valid5 = errors === errs_5;\r\n              if (valid5) {\r\n                var err = {\r\n                  keyword: \"not\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/0/not\",\r\n                  params: {},\r\n                  message: \"should NOT be valid\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              } else {\r\n                errors = errs__4;\r\n                if (vErrors !== null) {\r\n                  if (errs__4) vErrors.length = errs__4;\r\n                  else vErrors = null;\r\n                }\r\n              }\r\n              var valid4 = errors === errs_4;\r\n              if (valid4) {\r\n                var errs_4 = errors;\r\n                var errs__4 = errors;\r\n                var errs_5 = errors;\r\n                if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                  var missing5;\r\n                  if (data.explode === undefined && (missing5 = \".explode\")) {\r\n                    var err = {};\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                }\r\n                var valid5 = errors === errs_5;\r\n                if (valid5) {\r\n                  var err = {\r\n                    keyword: \"not\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/1/not\",\r\n                    params: {},\r\n                    message: \"should NOT be valid\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                } else {\r\n                  errors = errs__4;\r\n                  if (vErrors !== null) {\r\n                    if (errs__4) vErrors.length = errs__4;\r\n                    else vErrors = null;\r\n                  }\r\n                }\r\n                var valid4 = errors === errs_4;\r\n                if (valid4) {\r\n                  var errs_4 = errors;\r\n                  var errs__4 = errors;\r\n                  var errs_5 = errors;\r\n                  if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                    var missing5;\r\n                    if (data.allowReserved === undefined && (missing5 = \".allowReserved\")) {\r\n                      var err = {};\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                  }\r\n                  var valid5 = errors === errs_5;\r\n                  if (valid5) {\r\n                    var err = {\r\n                      keyword: \"not\",\r\n                      dataPath: (dataPath || \"\") + \"\",\r\n                      schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/2/not\",\r\n                      params: {},\r\n                      message: \"should NOT be valid\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  } else {\r\n                    errors = errs__4;\r\n                    if (vErrors !== null) {\r\n                      if (errs__4) vErrors.length = errs__4;\r\n                      else vErrors = null;\r\n                    }\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                  if (valid4) {\r\n                    var errs_4 = errors;\r\n                    var errs__4 = errors;\r\n                    var errs_5 = errors;\r\n                    if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                      var missing5;\r\n                      if (data.example === undefined && (missing5 = \".example\")) {\r\n                        var err = {};\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                    }\r\n                    var valid5 = errors === errs_5;\r\n                    if (valid5) {\r\n                      var err = {\r\n                        keyword: \"not\",\r\n                        dataPath: (dataPath || \"\") + \"\",\r\n                        schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/3/not\",\r\n                        params: {},\r\n                        message: \"should NOT be valid\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    } else {\r\n                      errors = errs__4;\r\n                      if (vErrors !== null) {\r\n                        if (errs__4) vErrors.length = errs__4;\r\n                        else vErrors = null;\r\n                      }\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    if (valid4) {\r\n                      var errs_4 = errors;\r\n                      var errs__4 = errors;\r\n                      var errs_5 = errors;\r\n                      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n                        var missing5;\r\n                        if (data.examples === undefined && (missing5 = \".examples\")) {\r\n                          var err = {};\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                      }\r\n                      var valid5 = errors === errs_5;\r\n                      if (valid5) {\r\n                        var err = {\r\n                          keyword: \"not\",\r\n                          dataPath: (dataPath || \"\") + \"\",\r\n                          schemaPath: \"#/definitions/SchemaXORContent/oneOf/1/allOf/4/not\",\r\n                          params: {},\r\n                          message: \"should NOT be valid\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      } else {\r\n                        errors = errs__4;\r\n                        if (vErrors !== null) {\r\n                          if (errs__4) vErrors.length = errs__4;\r\n                          else vErrors = null;\r\n                        }\r\n                      }\r\n                      var valid4 = errors === errs_4;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n            var valid3 = errors === errs_3;\r\n            if (valid3 && prevValid2) valid2 = false;\r\n            else {\r\n              if (valid3) valid2 = prevValid2 = true;\r\n            }\r\n            if (!valid2) {\r\n              var err = {\r\n                keyword: \"oneOf\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/SchemaXORContent/oneOf\",\r\n                params: {},\r\n                message: \"should match exactly one schema in oneOf\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n              validate.errors = vErrors;\r\n              return false;\r\n            } else {\r\n              errors = errs__2;\r\n              if (vErrors !== null) {\r\n                if (errs__2) vErrors.length = errs__2;\r\n                else vErrors = null;\r\n              }\r\n            }\r\n          }\r\n          var valid2 = errors === errs_2;\r\n          var valid1 = errors === errs_1;\r\n        }\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal19.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      required: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      deprecated: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      allowEmptyValue: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      style: {\r\n        type: \"string\",\r\n        enum: [\"simple\"],\r\n        default: \"simple\"\r\n      },\r\n      explode: {\r\n        type: \"boolean\"\r\n      },\r\n      allowReserved: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      schema: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Schema\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      content: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          $ref: \"#/definitions/MediaType\"\r\n        },\r\n        minProperties: 1,\r\n        maxProperties: 1\r\n      },\r\n      example: {},\r\n      examples: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Example\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false,\r\n    allOf: [\r\n      {\r\n        $ref: \"#/definitions/ExampleXORExamples\"\r\n      },\r\n      {\r\n        $ref: \"#/definitions/SchemaXORContent\"\r\n      }\r\n    ]\r\n  };\r\n  refVal19.errors = null;\r\n  refVal[19] = refVal19;\r\n  var refVal20 = {\r\n    description: \"Example and examples are mutually exclusive\",\r\n    not: {\r\n      required: [\"example\", \"examples\"]\r\n    }\r\n  };\r\n  refVal[20] = refVal20;\r\n  var refVal21 = {\r\n    description: \"Schema and content are mutually exclusive, at least one is required\",\r\n    not: {\r\n      required: [\"schema\", \"content\"]\r\n    },\r\n    oneOf: [\r\n      {\r\n        required: [\"schema\"]\r\n      },\r\n      {\r\n        required: [\"content\"],\r\n        description: \"Some properties are not allowed if content is present\",\r\n        allOf: [\r\n          {\r\n            not: {\r\n              required: [\"style\"]\r\n            }\r\n          },\r\n          {\r\n            not: {\r\n              required: [\"explode\"]\r\n            }\r\n          },\r\n          {\r\n            not: {\r\n              required: [\"allowReserved\"]\r\n            }\r\n          },\r\n          {\r\n            not: {\r\n              required: [\"example\"]\r\n            }\r\n          },\r\n          {\r\n            not: {\r\n              required: [\"examples\"]\r\n            }\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  };\r\n  refVal[21] = refVal21;\r\n  var refVal22 = {\r\n    description: \"Parameter location\",\r\n    oneOf: [\r\n      {\r\n        description: \"Parameter in path\",\r\n        required: [\"required\"],\r\n        properties: {\r\n          in: {\r\n            enum: [\"path\"]\r\n          },\r\n          style: {\r\n            enum: [\"matrix\", \"label\", \"simple\"],\r\n            default: \"simple\"\r\n          },\r\n          required: {\r\n            enum: [true]\r\n          }\r\n        }\r\n      },\r\n      {\r\n        description: \"Parameter in query\",\r\n        properties: {\r\n          in: {\r\n            enum: [\"query\"]\r\n          },\r\n          style: {\r\n            enum: [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"],\r\n            default: \"form\"\r\n          }\r\n        }\r\n      },\r\n      {\r\n        description: \"Parameter in header\",\r\n        properties: {\r\n          in: {\r\n            enum: [\"header\"]\r\n          },\r\n          style: {\r\n            enum: [\"simple\"],\r\n            default: \"simple\"\r\n          }\r\n        }\r\n      },\r\n      {\r\n        description: \"Parameter in cookie\",\r\n        properties: {\r\n          in: {\r\n            enum: [\"cookie\"]\r\n          },\r\n          style: {\r\n            enum: [\"form\"],\r\n            default: \"form\"\r\n          }\r\n        }\r\n      }\r\n    ]\r\n  };\r\n  refVal[22] = refVal22;\r\n  var refVal23 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.tags;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (Array.isArray(data1)) {\r\n                var errs__1 = errors;\r\n                var valid1;\r\n                for (var i1 = 0; i1 < data1.length; i1++) {\r\n                  var errs_2 = errors;\r\n                  if (typeof data1[i1] !== \"string\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".tags[\" + i1 + \"]\",\r\n                        schemaPath: \"#/properties/tags/items/type\",\r\n                        params: {\r\n                          type: \"string\"\r\n                        },\r\n                        message: \"should be string\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid2 = errors === errs_2;\r\n                  if (!valid2) break;\r\n                }\r\n              } else {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".tags\",\r\n                    schemaPath: \"#/properties/tags/type\",\r\n                    params: {\r\n                      type: \"array\"\r\n                    },\r\n                    message: \"should be array\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.summary === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (typeof data.summary !== \"string\") {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".summary\",\r\n                      schemaPath: \"#/properties/summary/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.description === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.description !== \"string\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".description\",\r\n                        schemaPath: \"#/properties/description/type\",\r\n                        params: {\r\n                          type: \"string\"\r\n                        },\r\n                        message: \"should be string\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.externalDocs;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    var errs_2 = errors;\r\n                    if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                      if (true) {\r\n                        var errs__2 = errors;\r\n                        var valid3 = true;\r\n                        for (var key2 in data1) {\r\n                          var isAdditional2 = !(false || key2 == \"description\" || key2 == \"url\" || pattern0.test(key2));\r\n                          if (isAdditional2) {\r\n                            valid3 = false;\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"additionalProperties\",\r\n                                dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                                schemaPath: \"#/definitions/ExternalDocumentation/additionalProperties\",\r\n                                params: {\r\n                                  additionalProperty: \"\" + key2 + \"\"\r\n                                },\r\n                                message: \"should NOT have additional properties\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                            break;\r\n                          }\r\n                        }\r\n                        if (valid3) {\r\n                          if (data1.description === undefined) {\r\n                            valid3 = true;\r\n                          } else {\r\n                            var errs_3 = errors;\r\n                            if (typeof data1.description !== \"string\") {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".externalDocs.description\",\r\n                                  schemaPath: \"#/definitions/ExternalDocumentation/properties/description/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid3 = errors === errs_3;\r\n                          }\r\n                          if (valid3) {\r\n                            var data2 = data1.url;\r\n                            if (data2 === undefined) {\r\n                              valid3 = false;\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"required\",\r\n                                  dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                                  schemaPath: \"#/definitions/ExternalDocumentation/required\",\r\n                                  params: {\r\n                                    missingProperty: \"url\"\r\n                                  },\r\n                                  message: \"should have required property 'url'\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            } else {\r\n                              var errs_3 = errors;\r\n                              if (errors === errs_3) {\r\n                                if (typeof data2 === \"string\") {\r\n                                  if (!formats[\"uri-reference\"].test(data2)) {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"format\",\r\n                                        dataPath: (dataPath || \"\") + \".externalDocs.url\",\r\n                                        schemaPath: \"#/definitions/ExternalDocumentation/properties/url/format\",\r\n                                        params: {\r\n                                          format: \"uri-reference\"\r\n                                        },\r\n                                        message: 'should match format \"uri-reference\"'\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                } else {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".externalDocs.url\",\r\n                                      schemaPath: \"#/definitions/ExternalDocumentation/properties/url/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              }\r\n                              var valid3 = errors === errs_3;\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                          schemaPath: \"#/definitions/ExternalDocumentation/type\",\r\n                          params: {\r\n                            type: \"object\"\r\n                          },\r\n                          message: \"should be object\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid2 = errors === errs_2;\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    if (data.operationId === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (typeof data.operationId !== \"string\") {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".operationId\",\r\n                            schemaPath: \"#/properties/operationId/type\",\r\n                            params: {\r\n                              type: \"string\"\r\n                            },\r\n                            message: \"should be string\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      var data1 = data.parameters;\r\n                      if (data1 === undefined) {\r\n                        valid1 = true;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (Array.isArray(data1)) {\r\n                          var valid1 = true;\r\n                          if (data1.length > 1) {\r\n                            var i = data1.length,\r\n                              j;\r\n                            outer: for (; i--; ) {\r\n                              for (j = i; j--; ) {\r\n                                if (equal(data1[i], data1[j])) {\r\n                                  valid1 = false;\r\n                                  break outer;\r\n                                }\r\n                              }\r\n                            }\r\n                          }\r\n                          if (!valid1) {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"uniqueItems\",\r\n                                dataPath: (dataPath || \"\") + \".parameters\",\r\n                                schemaPath: \"#/properties/parameters/uniqueItems\",\r\n                                params: {\r\n                                  i: i,\r\n                                  j: j\r\n                                },\r\n                                message: \"should NOT have duplicate items (items ## \" + j + \" and \" + i + \" are identical)\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          } else {\r\n                            var errs__1 = errors;\r\n                            var valid1;\r\n                            for (var i1 = 0; i1 < data1.length; i1++) {\r\n                              var data2 = data1[i1];\r\n                              var errs_2 = errors;\r\n                              var errs__2 = errors;\r\n                              var prevValid2 = false;\r\n                              var valid2 = false;\r\n                              var errs_3 = errors;\r\n                              if (!refVal[11](data2, (dataPath || \"\") + \".parameters[\" + i1 + \"]\", data1, i1, rootData)) {\r\n                                if (vErrors === null) vErrors = refVal[11].errors;\r\n                                else vErrors = vErrors.concat(refVal[11].errors);\r\n                                errors = vErrors.length;\r\n                              }\r\n                              var valid3 = errors === errs_3;\r\n                              if (valid3) valid2 = prevValid2 = true;\r\n                              var errs_3 = errors;\r\n                              var errs_4 = errors;\r\n                              if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                var missing4;\r\n                                if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                  var err = {\r\n                                    keyword: \"required\",\r\n                                    dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]\",\r\n                                    schemaPath: \"#/definitions/Reference/required\",\r\n                                    params: {\r\n                                      missingProperty: \"\" + missing4 + \"\"\r\n                                    },\r\n                                    message: \"should have required property '\" + missing4 + \"'\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                } else {\r\n                                  var errs__4 = errors;\r\n                                  var valid5 = true;\r\n                                  for (var key4 in data2) {\r\n                                    if (pattern4.test(key4)) {\r\n                                      var data3 = data2[key4];\r\n                                      var errs_5 = errors;\r\n                                      if (errors === errs_5) {\r\n                                        if (typeof data3 === \"string\") {\r\n                                          if (!formats[\"uri-reference\"].test(data3)) {\r\n                                            var err = {\r\n                                              keyword: \"format\",\r\n                                              dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                              schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                              params: {\r\n                                                format: \"uri-reference\"\r\n                                              },\r\n                                              message: 'should match format \"uri-reference\"'\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                        } else {\r\n                                          var err = {\r\n                                            keyword: \"type\",\r\n                                            dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]['\" + key4 + \"']\",\r\n                                            schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                            params: {\r\n                                              type: \"string\"\r\n                                            },\r\n                                            message: \"should be string\"\r\n                                          };\r\n                                          if (vErrors === null) vErrors = [err];\r\n                                          else vErrors.push(err);\r\n                                          errors++;\r\n                                        }\r\n                                      }\r\n                                      var valid5 = errors === errs_5;\r\n                                      if (!valid5) break;\r\n                                    } else valid5 = true;\r\n                                  }\r\n                                }\r\n                              } else {\r\n                                var err = {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]\",\r\n                                  schemaPath: \"#/definitions/Reference/type\",\r\n                                  params: {\r\n                                    type: \"object\"\r\n                                  },\r\n                                  message: \"should be object\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                              var valid4 = errors === errs_4;\r\n                              var valid3 = errors === errs_3;\r\n                              if (valid3 && prevValid2) valid2 = false;\r\n                              else {\r\n                                if (valid3) valid2 = prevValid2 = true;\r\n                              }\r\n                              if (!valid2) {\r\n                                var err = {\r\n                                  keyword: \"oneOf\",\r\n                                  dataPath: (dataPath || \"\") + \".parameters[\" + i1 + \"]\",\r\n                                  schemaPath: \"#/properties/parameters/items/oneOf\",\r\n                                  params: {},\r\n                                  message: \"should match exactly one schema in oneOf\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                                validate.errors = vErrors;\r\n                                return false;\r\n                              } else {\r\n                                errors = errs__2;\r\n                                if (vErrors !== null) {\r\n                                  if (errs__2) vErrors.length = errs__2;\r\n                                  else vErrors = null;\r\n                                }\r\n                              }\r\n                              var valid2 = errors === errs_2;\r\n                              if (!valid2) break;\r\n                            }\r\n                          }\r\n                        } else {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".parameters\",\r\n                              schemaPath: \"#/properties/parameters/type\",\r\n                              params: {\r\n                                type: \"array\"\r\n                              },\r\n                              message: \"should be array\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                      if (valid1) {\r\n                        var data1 = data.requestBody;\r\n                        if (data1 === undefined) {\r\n                          valid1 = true;\r\n                        } else {\r\n                          var errs_1 = errors;\r\n                          var errs__1 = errors;\r\n                          var prevValid1 = false;\r\n                          var valid1 = false;\r\n                          var errs_2 = errors;\r\n                          if (!refVal24(data1, (dataPath || \"\") + \".requestBody\", data, \"requestBody\", rootData)) {\r\n                            if (vErrors === null) vErrors = refVal24.errors;\r\n                            else vErrors = vErrors.concat(refVal24.errors);\r\n                            errors = vErrors.length;\r\n                          }\r\n                          var valid2 = errors === errs_2;\r\n                          if (valid2) valid1 = prevValid1 = true;\r\n                          var errs_2 = errors;\r\n                          var errs_3 = errors;\r\n                          if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                            var missing3;\r\n                            if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                              var err = {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".requestBody\",\r\n                                schemaPath: \"#/definitions/Reference/required\",\r\n                                params: {\r\n                                  missingProperty: \"\" + missing3 + \"\"\r\n                                },\r\n                                message: \"should have required property '\" + missing3 + \"'\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            } else {\r\n                              var errs__3 = errors;\r\n                              var valid4 = true;\r\n                              for (var key3 in data1) {\r\n                                if (pattern4.test(key3)) {\r\n                                  var data2 = data1[key3];\r\n                                  var errs_4 = errors;\r\n                                  if (errors === errs_4) {\r\n                                    if (typeof data2 === \"string\") {\r\n                                      if (!formats[\"uri-reference\"].test(data2)) {\r\n                                        var err = {\r\n                                          keyword: \"format\",\r\n                                          dataPath: (dataPath || \"\") + \".requestBody['\" + key3 + \"']\",\r\n                                          schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                          params: {\r\n                                            format: \"uri-reference\"\r\n                                          },\r\n                                          message: 'should match format \"uri-reference\"'\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      }\r\n                                    } else {\r\n                                      var err = {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".requestBody['\" + key3 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  }\r\n                                  var valid4 = errors === errs_4;\r\n                                  if (!valid4) break;\r\n                                } else valid4 = true;\r\n                              }\r\n                            }\r\n                          } else {\r\n                            var err = {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".requestBody\",\r\n                              schemaPath: \"#/definitions/Reference/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                          var valid2 = errors === errs_2;\r\n                          if (valid2 && prevValid1) valid1 = false;\r\n                          else {\r\n                            if (valid2) valid1 = prevValid1 = true;\r\n                          }\r\n                          if (!valid1) {\r\n                            var err = {\r\n                              keyword: \"oneOf\",\r\n                              dataPath: (dataPath || \"\") + \".requestBody\",\r\n                              schemaPath: \"#/properties/requestBody/oneOf\",\r\n                              params: {},\r\n                              message: \"should match exactly one schema in oneOf\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                            validate.errors = vErrors;\r\n                            return false;\r\n                          } else {\r\n                            errors = errs__1;\r\n                            if (vErrors !== null) {\r\n                              if (errs__1) vErrors.length = errs__1;\r\n                              else vErrors = null;\r\n                            }\r\n                          }\r\n                          var valid1 = errors === errs_1;\r\n                        }\r\n                        if (valid1) {\r\n                          if (data.responses === undefined) {\r\n                            valid1 = false;\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \"\",\r\n                                schemaPath: \"#/required\",\r\n                                params: {\r\n                                  missingProperty: \"responses\"\r\n                                },\r\n                                message: \"should have required property 'responses'\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          } else {\r\n                            var errs_1 = errors;\r\n                            if (!refVal25(data.responses, (dataPath || \"\") + \".responses\", data, \"responses\", rootData)) {\r\n                              if (vErrors === null) vErrors = refVal25.errors;\r\n                              else vErrors = vErrors.concat(refVal25.errors);\r\n                              errors = vErrors.length;\r\n                            }\r\n                            var valid1 = errors === errs_1;\r\n                          }\r\n                          if (valid1) {\r\n                            var data1 = data.callbacks;\r\n                            if (data1 === undefined) {\r\n                              valid1 = true;\r\n                            } else {\r\n                              var errs_1 = errors;\r\n                              if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                                var errs__1 = errors;\r\n                                var valid2 = true;\r\n                                for (var key1 in data1) {\r\n                                  var data2 = data1[key1];\r\n                                  var errs_2 = errors;\r\n                                  var errs__2 = errors;\r\n                                  var prevValid2 = false;\r\n                                  var valid2 = false;\r\n                                  var errs_3 = errors;\r\n                                  if (!refVal28(data2, (dataPath || \"\") + \".callbacks['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                                    if (vErrors === null) vErrors = refVal28.errors;\r\n                                    else vErrors = vErrors.concat(refVal28.errors);\r\n                                    errors = vErrors.length;\r\n                                  }\r\n                                  var valid3 = errors === errs_3;\r\n                                  if (valid3) valid2 = prevValid2 = true;\r\n                                  var errs_3 = errors;\r\n                                  var errs_4 = errors;\r\n                                  if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                    var missing4;\r\n                                    if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                      var err = {\r\n                                        keyword: \"required\",\r\n                                        dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/required\",\r\n                                        params: {\r\n                                          missingProperty: \"\" + missing4 + \"\"\r\n                                        },\r\n                                        message: \"should have required property '\" + missing4 + \"'\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    } else {\r\n                                      var errs__4 = errors;\r\n                                      var valid5 = true;\r\n                                      for (var key4 in data2) {\r\n                                        if (pattern4.test(key4)) {\r\n                                          var data3 = data2[key4];\r\n                                          var errs_5 = errors;\r\n                                          if (errors === errs_5) {\r\n                                            if (typeof data3 === \"string\") {\r\n                                              if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                var err = {\r\n                                                  keyword: \"format\",\r\n                                                  dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                  params: {\r\n                                                    format: \"uri-reference\"\r\n                                                  },\r\n                                                  message: 'should match format \"uri-reference\"'\r\n                                                };\r\n                                                if (vErrors === null) vErrors = [err];\r\n                                                else vErrors.push(err);\r\n                                                errors++;\r\n                                              }\r\n                                            } else {\r\n                                              var err = {\r\n                                                keyword: \"type\",\r\n                                                dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                params: {\r\n                                                  type: \"string\"\r\n                                                },\r\n                                                message: \"should be string\"\r\n                                              };\r\n                                              if (vErrors === null) vErrors = [err];\r\n                                              else vErrors.push(err);\r\n                                              errors++;\r\n                                            }\r\n                                          }\r\n                                          var valid5 = errors === errs_5;\r\n                                          if (!valid5) break;\r\n                                        } else valid5 = true;\r\n                                      }\r\n                                    }\r\n                                  } else {\r\n                                    var err = {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']\",\r\n                                      schemaPath: \"#/definitions/Reference/type\",\r\n                                      params: {\r\n                                        type: \"object\"\r\n                                      },\r\n                                      message: \"should be object\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  }\r\n                                  var valid4 = errors === errs_4;\r\n                                  var valid3 = errors === errs_3;\r\n                                  if (valid3 && prevValid2) valid2 = false;\r\n                                  else {\r\n                                    if (valid3) valid2 = prevValid2 = true;\r\n                                  }\r\n                                  if (!valid2) {\r\n                                    var err = {\r\n                                      keyword: \"oneOf\",\r\n                                      dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']\",\r\n                                      schemaPath: \"#/properties/callbacks/additionalProperties/oneOf\",\r\n                                      params: {},\r\n                                      message: \"should match exactly one schema in oneOf\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                    validate.errors = vErrors;\r\n                                    return false;\r\n                                  } else {\r\n                                    errors = errs__2;\r\n                                    if (vErrors !== null) {\r\n                                      if (errs__2) vErrors.length = errs__2;\r\n                                      else vErrors = null;\r\n                                    }\r\n                                  }\r\n                                  var valid2 = errors === errs_2;\r\n                                  if (!valid2) break;\r\n                                }\r\n                              } else {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".callbacks\",\r\n                                    schemaPath: \"#/properties/callbacks/type\",\r\n                                    params: {\r\n                                      type: \"object\"\r\n                                    },\r\n                                    message: \"should be object\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                              var valid1 = errors === errs_1;\r\n                            }\r\n                            if (valid1) {\r\n                              if (data.deprecated === undefined) {\r\n                                valid1 = true;\r\n                              } else {\r\n                                var errs_1 = errors;\r\n                                if (typeof data.deprecated !== \"boolean\") {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".deprecated\",\r\n                                      schemaPath: \"#/properties/deprecated/type\",\r\n                                      params: {\r\n                                        type: \"boolean\"\r\n                                      },\r\n                                      message: \"should be boolean\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                var valid1 = errors === errs_1;\r\n                              }\r\n                              if (valid1) {\r\n                                var data1 = data.security;\r\n                                if (data1 === undefined) {\r\n                                  valid1 = true;\r\n                                } else {\r\n                                  var errs_1 = errors;\r\n                                  if (Array.isArray(data1)) {\r\n                                    var errs__1 = errors;\r\n                                    var valid1;\r\n                                    for (var i1 = 0; i1 < data1.length; i1++) {\r\n                                      var data2 = data1[i1];\r\n                                      var errs_2 = errors;\r\n                                      var errs_3 = errors;\r\n                                      if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                        var errs__3 = errors;\r\n                                        var valid4 = true;\r\n                                        for (var key3 in data2) {\r\n                                          var data3 = data2[key3];\r\n                                          var errs_4 = errors;\r\n                                          if (Array.isArray(data3)) {\r\n                                            var errs__4 = errors;\r\n                                            var valid4;\r\n                                            for (var i4 = 0; i4 < data3.length; i4++) {\r\n                                              var errs_5 = errors;\r\n                                              if (typeof data3[i4] !== \"string\") {\r\n                                                validate.errors = [\r\n                                                  {\r\n                                                    keyword: \"type\",\r\n                                                    dataPath: (dataPath || \"\") + \".security[\" + i1 + \"]['\" + key3 + \"'][\" + i4 + \"]\",\r\n                                                    schemaPath: \"#/definitions/SecurityRequirement/additionalProperties/items/type\",\r\n                                                    params: {\r\n                                                      type: \"string\"\r\n                                                    },\r\n                                                    message: \"should be string\"\r\n                                                  }\r\n                                                ];\r\n                                                return false;\r\n                                              }\r\n                                              var valid5 = errors === errs_5;\r\n                                              if (!valid5) break;\r\n                                            }\r\n                                          } else {\r\n                                            validate.errors = [\r\n                                              {\r\n                                                keyword: \"type\",\r\n                                                dataPath: (dataPath || \"\") + \".security[\" + i1 + \"]['\" + key3 + \"']\",\r\n                                                schemaPath: \"#/definitions/SecurityRequirement/additionalProperties/type\",\r\n                                                params: {\r\n                                                  type: \"array\"\r\n                                                },\r\n                                                message: \"should be array\"\r\n                                              }\r\n                                            ];\r\n                                            return false;\r\n                                          }\r\n                                          var valid4 = errors === errs_4;\r\n                                          if (!valid4) break;\r\n                                        }\r\n                                      } else {\r\n                                        validate.errors = [\r\n                                          {\r\n                                            keyword: \"type\",\r\n                                            dataPath: (dataPath || \"\") + \".security[\" + i1 + \"]\",\r\n                                            schemaPath: \"#/definitions/SecurityRequirement/type\",\r\n                                            params: {\r\n                                              type: \"object\"\r\n                                            },\r\n                                            message: \"should be object\"\r\n                                          }\r\n                                        ];\r\n                                        return false;\r\n                                      }\r\n                                      var valid3 = errors === errs_3;\r\n                                      var valid2 = errors === errs_2;\r\n                                      if (!valid2) break;\r\n                                    }\r\n                                  } else {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".security\",\r\n                                        schemaPath: \"#/properties/security/type\",\r\n                                        params: {\r\n                                          type: \"array\"\r\n                                        },\r\n                                        message: \"should be array\"\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                  var valid1 = errors === errs_1;\r\n                                }\r\n                                if (valid1) {\r\n                                  var data1 = data.servers;\r\n                                  if (data1 === undefined) {\r\n                                    valid1 = true;\r\n                                  } else {\r\n                                    var errs_1 = errors;\r\n                                    if (Array.isArray(data1)) {\r\n                                      var errs__1 = errors;\r\n                                      var valid1;\r\n                                      for (var i1 = 0; i1 < data1.length; i1++) {\r\n                                        var errs_2 = errors;\r\n                                        if (!refVal[5](data1[i1], (dataPath || \"\") + \".servers[\" + i1 + \"]\", data1, i1, rootData)) {\r\n                                          if (vErrors === null) vErrors = refVal[5].errors;\r\n                                          else vErrors = vErrors.concat(refVal[5].errors);\r\n                                          errors = vErrors.length;\r\n                                        }\r\n                                        var valid2 = errors === errs_2;\r\n                                        if (!valid2) break;\r\n                                      }\r\n                                    } else {\r\n                                      validate.errors = [\r\n                                        {\r\n                                          keyword: \"type\",\r\n                                          dataPath: (dataPath || \"\") + \".servers\",\r\n                                          schemaPath: \"#/properties/servers/type\",\r\n                                          params: {\r\n                                            type: \"array\"\r\n                                          },\r\n                                          message: \"should be array\"\r\n                                        }\r\n                                      ];\r\n                                      return false;\r\n                                    }\r\n                                    var valid1 = errors === errs_1;\r\n                                  }\r\n                                }\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal23.schema = {\r\n    type: \"object\",\r\n    required: [\"responses\"],\r\n    properties: {\r\n      tags: {\r\n        type: \"array\",\r\n        items: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      summary: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      externalDocs: {\r\n        $ref: \"#/definitions/ExternalDocumentation\"\r\n      },\r\n      operationId: {\r\n        type: \"string\"\r\n      },\r\n      parameters: {\r\n        type: \"array\",\r\n        items: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Parameter\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        uniqueItems: true\r\n      },\r\n      requestBody: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/RequestBody\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      responses: {\r\n        $ref: \"#/definitions/Responses\"\r\n      },\r\n      callbacks: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Callback\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      deprecated: {\r\n        type: \"boolean\",\r\n        default: false\r\n      },\r\n      security: {\r\n        type: \"array\",\r\n        items: {\r\n          $ref: \"#/definitions/SecurityRequirement\"\r\n        }\r\n      },\r\n      servers: {\r\n        type: \"array\",\r\n        items: {\r\n          $ref: \"#/definitions/Server\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal23.errors = null;\r\n  refVal[23] = refVal23;\r\n  var refVal24 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || key0 == \"description\" || key0 == \"content\" || key0 == \"required\" || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            if (data.description === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.description !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".description\",\r\n                    schemaPath: \"#/properties/description/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.content;\r\n              if (data1 === undefined) {\r\n                valid1 = false;\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"required\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/required\",\r\n                    params: {\r\n                      missingProperty: \"content\"\r\n                    },\r\n                    message: \"should have required property 'content'\"\r\n                  }\r\n                ];\r\n                return false;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  var errs__1 = errors;\r\n                  var valid2 = true;\r\n                  for (var key1 in data1) {\r\n                    var errs_2 = errors;\r\n                    if (!refVal[16](data1[key1], (dataPath || \"\") + \".content['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                      if (vErrors === null) vErrors = refVal[16].errors;\r\n                      else vErrors = vErrors.concat(refVal[16].errors);\r\n                      errors = vErrors.length;\r\n                    }\r\n                    var valid2 = errors === errs_2;\r\n                    if (!valid2) break;\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".content\",\r\n                      schemaPath: \"#/properties/content/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.required === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.required !== \"boolean\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".required\",\r\n                        schemaPath: \"#/properties/required/type\",\r\n                        params: {\r\n                          type: \"boolean\"\r\n                        },\r\n                        message: \"should be boolean\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal24.schema = {\r\n    type: \"object\",\r\n    required: [\"content\"],\r\n    properties: {\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      content: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          $ref: \"#/definitions/MediaType\"\r\n        }\r\n      },\r\n      required: {\r\n        type: \"boolean\",\r\n        default: false\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal24.errors = null;\r\n  refVal[24] = refVal24;\r\n  var refVal25 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (Object.keys(data).length < 1) {\r\n          validate.errors = [\r\n            {\r\n              keyword: \"minProperties\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/minProperties\",\r\n              params: {\r\n                limit: 1\r\n              },\r\n              message: \"should NOT have less than 1 properties\"\r\n            }\r\n          ];\r\n          return false;\r\n        } else {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || key0 == \"default\" || pattern5.test(key0) || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.default;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              var errs__1 = errors;\r\n              var prevValid1 = false;\r\n              var valid1 = false;\r\n              var errs_2 = errors;\r\n              if (!refVal26(data1, (dataPath || \"\") + \".default\", data, \"default\", rootData)) {\r\n                if (vErrors === null) vErrors = refVal26.errors;\r\n                else vErrors = vErrors.concat(refVal26.errors);\r\n                errors = vErrors.length;\r\n              }\r\n              var valid2 = errors === errs_2;\r\n              if (valid2) valid1 = prevValid1 = true;\r\n              var errs_2 = errors;\r\n              var errs_3 = errors;\r\n              if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                var missing3;\r\n                if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                  var err = {\r\n                    keyword: \"required\",\r\n                    dataPath: (dataPath || \"\") + \".default\",\r\n                    schemaPath: \"#/definitions/Reference/required\",\r\n                    params: {\r\n                      missingProperty: \"\" + missing3 + \"\"\r\n                    },\r\n                    message: \"should have required property '\" + missing3 + \"'\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                } else {\r\n                  var errs__3 = errors;\r\n                  var valid4 = true;\r\n                  for (var key3 in data1) {\r\n                    if (pattern4.test(key3)) {\r\n                      var data2 = data1[key3];\r\n                      var errs_4 = errors;\r\n                      if (errors === errs_4) {\r\n                        if (typeof data2 === \"string\") {\r\n                          if (!formats[\"uri-reference\"].test(data2)) {\r\n                            var err = {\r\n                              keyword: \"format\",\r\n                              dataPath: (dataPath || \"\") + \".default['\" + key3 + \"']\",\r\n                              schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                              params: {\r\n                                format: \"uri-reference\"\r\n                              },\r\n                              message: 'should match format \"uri-reference\"'\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          }\r\n                        } else {\r\n                          var err = {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".default['\" + key3 + \"']\",\r\n                            schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                            params: {\r\n                              type: \"string\"\r\n                            },\r\n                            message: \"should be string\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                      }\r\n                      var valid4 = errors === errs_4;\r\n                      if (!valid4) break;\r\n                    } else valid4 = true;\r\n                  }\r\n                }\r\n              } else {\r\n                var err = {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".default\",\r\n                  schemaPath: \"#/definitions/Reference/type\",\r\n                  params: {\r\n                    type: \"object\"\r\n                  },\r\n                  message: \"should be object\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n              var valid3 = errors === errs_3;\r\n              var valid2 = errors === errs_2;\r\n              if (valid2 && prevValid1) valid1 = false;\r\n              else {\r\n                if (valid2) valid1 = prevValid1 = true;\r\n              }\r\n              if (!valid1) {\r\n                var err = {\r\n                  keyword: \"oneOf\",\r\n                  dataPath: (dataPath || \"\") + \".default\",\r\n                  schemaPath: \"#/properties/default/oneOf\",\r\n                  params: {},\r\n                  message: \"should match exactly one schema in oneOf\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n                validate.errors = vErrors;\r\n                return false;\r\n              } else {\r\n                errors = errs__1;\r\n                if (vErrors !== null) {\r\n                  if (errs__1) vErrors.length = errs__1;\r\n                  else vErrors = null;\r\n                }\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              for (var key0 in data) {\r\n                if (pattern5.test(key0)) {\r\n                  var data1 = data[key0];\r\n                  var errs_1 = errors;\r\n                  var errs__1 = errors;\r\n                  var prevValid1 = false;\r\n                  var valid1 = false;\r\n                  var errs_2 = errors;\r\n                  if (!refVal[26](data1, (dataPath || \"\") + \"['\" + key0 + \"']\", data, key0, rootData)) {\r\n                    if (vErrors === null) vErrors = refVal[26].errors;\r\n                    else vErrors = vErrors.concat(refVal[26].errors);\r\n                    errors = vErrors.length;\r\n                  }\r\n                  var valid2 = errors === errs_2;\r\n                  if (valid2) valid1 = prevValid1 = true;\r\n                  var errs_2 = errors;\r\n                  var errs_3 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    var missing3;\r\n                    if (data1.$ref === undefined && (missing3 = \".$ref\")) {\r\n                      var err = {\r\n                        keyword: \"required\",\r\n                        dataPath: (dataPath || \"\") + \"['\" + key0 + \"']\",\r\n                        schemaPath: \"#/definitions/Reference/required\",\r\n                        params: {\r\n                          missingProperty: \"\" + missing3 + \"\"\r\n                        },\r\n                        message: \"should have required property '\" + missing3 + \"'\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    } else {\r\n                      var errs__3 = errors;\r\n                      var valid4 = true;\r\n                      for (var key3 in data1) {\r\n                        if (pattern4.test(key3)) {\r\n                          var data2 = data1[key3];\r\n                          var errs_4 = errors;\r\n                          if (errors === errs_4) {\r\n                            if (typeof data2 === \"string\") {\r\n                              if (!formats[\"uri-reference\"].test(data2)) {\r\n                                var err = {\r\n                                  keyword: \"format\",\r\n                                  dataPath: (dataPath || \"\") + \"['\" + key0 + \"']['\" + key3 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                  params: {\r\n                                    format: \"uri-reference\"\r\n                                  },\r\n                                  message: 'should match format \"uri-reference\"'\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                            } else {\r\n                              var err = {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \"['\" + key0 + \"']['\" + key3 + \"']\",\r\n                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            }\r\n                          }\r\n                          var valid4 = errors === errs_4;\r\n                          if (!valid4) break;\r\n                        } else valid4 = true;\r\n                      }\r\n                    }\r\n                  } else {\r\n                    var err = {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \"['\" + key0 + \"']\",\r\n                      schemaPath: \"#/definitions/Reference/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid3 = errors === errs_3;\r\n                  var valid2 = errors === errs_2;\r\n                  if (valid2 && prevValid1) valid1 = false;\r\n                  else {\r\n                    if (valid2) valid1 = prevValid1 = true;\r\n                  }\r\n                  if (!valid1) {\r\n                    var err = {\r\n                      keyword: \"oneOf\",\r\n                      dataPath: (dataPath || \"\") + \"['\" + key0 + \"']\",\r\n                      schemaPath: \"#/patternProperties/%5E%5B1-5%5D(%3F%3A%5Cd%7B2%7D%7CXX)%24/oneOf\",\r\n                      params: {},\r\n                      message: \"should match exactly one schema in oneOf\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                    validate.errors = vErrors;\r\n                    return false;\r\n                  } else {\r\n                    errors = errs__1;\r\n                    if (vErrors !== null) {\r\n                      if (errs__1) vErrors.length = errs__1;\r\n                      else vErrors = null;\r\n                    }\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                  if (!valid1) break;\r\n                } else valid1 = true;\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal25.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      default: {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Response\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^[1-5](?:\\\\d{2}|XX)$\": {\r\n        oneOf: [\r\n          {\r\n            $ref: \"#/definitions/Response\"\r\n          },\r\n          {\r\n            $ref: \"#/definitions/Reference\"\r\n          }\r\n        ]\r\n      },\r\n      \"^x-\": {}\r\n    },\r\n    minProperties: 1,\r\n    additionalProperties: false\r\n  };\r\n  refVal25.errors = null;\r\n  refVal[25] = refVal25;\r\n  var refVal26 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(\r\n              false ||\r\n              key0 == \"description\" ||\r\n              key0 == \"headers\" ||\r\n              key0 == \"content\" ||\r\n              key0 == \"links\" ||\r\n              pattern0.test(key0)\r\n            );\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            if (data.description === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"description\"\r\n                  },\r\n                  message: \"should have required property 'description'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data.description !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".description\",\r\n                    schemaPath: \"#/properties/description/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.headers;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  var errs__1 = errors;\r\n                  var valid2 = true;\r\n                  for (var key1 in data1) {\r\n                    var data2 = data1[key1];\r\n                    var errs_2 = errors;\r\n                    var errs__2 = errors;\r\n                    var prevValid2 = false;\r\n                    var valid2 = false;\r\n                    var errs_3 = errors;\r\n                    if (!refVal[19](data2, (dataPath || \"\") + \".headers['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                      if (vErrors === null) vErrors = refVal[19].errors;\r\n                      else vErrors = vErrors.concat(refVal[19].errors);\r\n                      errors = vErrors.length;\r\n                    }\r\n                    var valid3 = errors === errs_3;\r\n                    if (valid3) valid2 = prevValid2 = true;\r\n                    var errs_3 = errors;\r\n                    var errs_4 = errors;\r\n                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                      var missing4;\r\n                      if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                        var err = {\r\n                          keyword: \"required\",\r\n                          dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                          schemaPath: \"#/definitions/Reference/required\",\r\n                          params: {\r\n                            missingProperty: \"\" + missing4 + \"\"\r\n                          },\r\n                          message: \"should have required property '\" + missing4 + \"'\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      } else {\r\n                        var errs__4 = errors;\r\n                        var valid5 = true;\r\n                        for (var key4 in data2) {\r\n                          if (pattern4.test(key4)) {\r\n                            var data3 = data2[key4];\r\n                            var errs_5 = errors;\r\n                            if (errors === errs_5) {\r\n                              if (typeof data3 === \"string\") {\r\n                                if (!formats[\"uri-reference\"].test(data3)) {\r\n                                  var err = {\r\n                                    keyword: \"format\",\r\n                                    dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                    schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                    params: {\r\n                                      format: \"uri-reference\"\r\n                                    },\r\n                                    message: 'should match format \"uri-reference\"'\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                              } else {\r\n                                var err = {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                            }\r\n                            var valid5 = errors === errs_5;\r\n                            if (!valid5) break;\r\n                          } else valid5 = true;\r\n                        }\r\n                      }\r\n                    } else {\r\n                      var err = {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                        schemaPath: \"#/definitions/Reference/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    var valid3 = errors === errs_3;\r\n                    if (valid3 && prevValid2) valid2 = false;\r\n                    else {\r\n                      if (valid3) valid2 = prevValid2 = true;\r\n                    }\r\n                    if (!valid2) {\r\n                      var err = {\r\n                        keyword: \"oneOf\",\r\n                        dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                        schemaPath: \"#/properties/headers/additionalProperties/oneOf\",\r\n                        params: {},\r\n                        message: \"should match exactly one schema in oneOf\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                      validate.errors = vErrors;\r\n                      return false;\r\n                    } else {\r\n                      errors = errs__2;\r\n                      if (vErrors !== null) {\r\n                        if (errs__2) vErrors.length = errs__2;\r\n                        else vErrors = null;\r\n                      }\r\n                    }\r\n                    var valid2 = errors === errs_2;\r\n                    if (!valid2) break;\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".headers\",\r\n                      schemaPath: \"#/properties/headers/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.content;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    var errs__1 = errors;\r\n                    var valid2 = true;\r\n                    for (var key1 in data1) {\r\n                      var errs_2 = errors;\r\n                      if (!refVal[16](data1[key1], (dataPath || \"\") + \".content['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                        if (vErrors === null) vErrors = refVal[16].errors;\r\n                        else vErrors = vErrors.concat(refVal[16].errors);\r\n                        errors = vErrors.length;\r\n                      }\r\n                      var valid2 = errors === errs_2;\r\n                      if (!valid2) break;\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".content\",\r\n                        schemaPath: \"#/properties/content/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.links;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                      var errs__1 = errors;\r\n                      var valid2 = true;\r\n                      for (var key1 in data1) {\r\n                        var data2 = data1[key1];\r\n                        var errs_2 = errors;\r\n                        var errs__2 = errors;\r\n                        var prevValid2 = false;\r\n                        var valid2 = false;\r\n                        var errs_3 = errors;\r\n                        if (!refVal27(data2, (dataPath || \"\") + \".links['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                          if (vErrors === null) vErrors = refVal27.errors;\r\n                          else vErrors = vErrors.concat(refVal27.errors);\r\n                          errors = vErrors.length;\r\n                        }\r\n                        var valid3 = errors === errs_3;\r\n                        if (valid3) valid2 = prevValid2 = true;\r\n                        var errs_3 = errors;\r\n                        var errs_4 = errors;\r\n                        if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                          var missing4;\r\n                          if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                            var err = {\r\n                              keyword: \"required\",\r\n                              dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']\",\r\n                              schemaPath: \"#/definitions/Reference/required\",\r\n                              params: {\r\n                                missingProperty: \"\" + missing4 + \"\"\r\n                              },\r\n                              message: \"should have required property '\" + missing4 + \"'\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          } else {\r\n                            var errs__4 = errors;\r\n                            var valid5 = true;\r\n                            for (var key4 in data2) {\r\n                              if (pattern4.test(key4)) {\r\n                                var data3 = data2[key4];\r\n                                var errs_5 = errors;\r\n                                if (errors === errs_5) {\r\n                                  if (typeof data3 === \"string\") {\r\n                                    if (!formats[\"uri-reference\"].test(data3)) {\r\n                                      var err = {\r\n                                        keyword: \"format\",\r\n                                        dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                        params: {\r\n                                          format: \"uri-reference\"\r\n                                        },\r\n                                        message: 'should match format \"uri-reference\"'\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  } else {\r\n                                    var err = {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                      schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  }\r\n                                }\r\n                                var valid5 = errors === errs_5;\r\n                                if (!valid5) break;\r\n                              } else valid5 = true;\r\n                            }\r\n                          }\r\n                        } else {\r\n                          var err = {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']\",\r\n                            schemaPath: \"#/definitions/Reference/type\",\r\n                            params: {\r\n                              type: \"object\"\r\n                            },\r\n                            message: \"should be object\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                        var valid4 = errors === errs_4;\r\n                        var valid3 = errors === errs_3;\r\n                        if (valid3 && prevValid2) valid2 = false;\r\n                        else {\r\n                          if (valid3) valid2 = prevValid2 = true;\r\n                        }\r\n                        if (!valid2) {\r\n                          var err = {\r\n                            keyword: \"oneOf\",\r\n                            dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']\",\r\n                            schemaPath: \"#/properties/links/additionalProperties/oneOf\",\r\n                            params: {},\r\n                            message: \"should match exactly one schema in oneOf\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                          validate.errors = vErrors;\r\n                          return false;\r\n                        } else {\r\n                          errors = errs__2;\r\n                          if (vErrors !== null) {\r\n                            if (errs__2) vErrors.length = errs__2;\r\n                            else vErrors = null;\r\n                          }\r\n                        }\r\n                        var valid2 = errors === errs_2;\r\n                        if (!valid2) break;\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".links\",\r\n                          schemaPath: \"#/properties/links/type\",\r\n                          params: {\r\n                            type: \"object\"\r\n                          },\r\n                          message: \"should be object\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal26.schema = {\r\n    type: \"object\",\r\n    required: [\"description\"],\r\n    properties: {\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      headers: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Header\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      content: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          $ref: \"#/definitions/MediaType\"\r\n        }\r\n      },\r\n      links: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Link\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal26.errors = null;\r\n  refVal[26] = refVal26;\r\n  var refVal27 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          if (data.operationId === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (typeof data.operationId !== \"string\") {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".operationId\",\r\n                  schemaPath: \"#/properties/operationId/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.operationRef;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (errors === errs_1) {\r\n                if (typeof data1 === \"string\") {\r\n                  if (!formats[\"uri-reference\"].test(data1)) {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"format\",\r\n                        dataPath: (dataPath || \"\") + \".operationRef\",\r\n                        schemaPath: \"#/properties/operationRef/format\",\r\n                        params: {\r\n                          format: \"uri-reference\"\r\n                        },\r\n                        message: 'should match format \"uri-reference\"'\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".operationRef\",\r\n                      schemaPath: \"#/properties/operationRef/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.parameters;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  var errs__1 = errors;\r\n                  var valid2 = true;\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".parameters\",\r\n                      schemaPath: \"#/properties/parameters/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (valid1) {\r\n                  if (data.description === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (typeof data.description !== \"string\") {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".description\",\r\n                          schemaPath: \"#/properties/description/type\",\r\n                          params: {\r\n                            type: \"string\"\r\n                          },\r\n                          message: \"should be string\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    if (data.server === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (!refVal[5](data.server, (dataPath || \"\") + \".server\", data, \"server\", rootData)) {\r\n                        if (vErrors === null) vErrors = refVal[5].errors;\r\n                        else vErrors = vErrors.concat(refVal[5].errors);\r\n                        errors = vErrors.length;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      if (errors === 0) {\r\n        var errs__0 = errors;\r\n        var errs_1 = errors;\r\n        if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n          var missing1;\r\n          if (\r\n            (data.operationId === undefined && (missing1 = \".operationId\")) ||\r\n            (data.operationRef === undefined && (missing1 = \".operationRef\"))\r\n          ) {\r\n            var err = {};\r\n            if (vErrors === null) vErrors = [err];\r\n            else vErrors.push(err);\r\n            errors++;\r\n          }\r\n        }\r\n        var valid1 = errors === errs_1;\r\n        if (valid1) {\r\n          validate.errors = [\r\n            {\r\n              keyword: \"not\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/not\",\r\n              params: {},\r\n              message: \"should NOT be valid\"\r\n            }\r\n          ];\r\n          return false;\r\n        } else {\r\n          errors = errs__0;\r\n          if (vErrors !== null) {\r\n            if (errs__0) vErrors.length = errs__0;\r\n            else vErrors = null;\r\n          }\r\n        }\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal27.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      operationId: {\r\n        type: \"string\"\r\n      },\r\n      operationRef: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      parameters: {\r\n        type: \"object\",\r\n        additionalProperties: {}\r\n      },\r\n      requestBody: {},\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      server: {\r\n        $ref: \"#/definitions/Server\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false,\r\n    not: {\r\n      description: \"Operation Id and Operation Ref are mutually exclusive\",\r\n      required: [\"operationId\", \"operationRef\"]\r\n    }\r\n  };\r\n  refVal27.errors = null;\r\n  refVal[27] = refVal27;\r\n  var refVal28 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            var errs_1 = errors;\r\n            if (!refVal[10](data[key0], (dataPath || \"\") + \"['\" + key0 + \"']\", data, key0, rootData)) {\r\n              if (vErrors === null) vErrors = refVal[10].errors;\r\n              else vErrors = vErrors.concat(refVal[10].errors);\r\n              errors = vErrors.length;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n            if (!valid1) break;\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal28.schema = {\r\n    type: \"object\",\r\n    additionalProperties: {\r\n      $ref: \"#/definitions/PathItem\"\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    }\r\n  };\r\n  refVal28.errors = null;\r\n  refVal[28] = refVal28;\r\n  var refVal29 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          var data1 = data.schemas;\r\n          if (data1 === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n              var errs__1 = errors;\r\n              var valid2 = true;\r\n              for (var key1 in data1) {\r\n                if (pattern6.test(key1)) {\r\n                  var data2 = data1[key1];\r\n                  var errs_2 = errors;\r\n                  var errs__2 = errors;\r\n                  var prevValid2 = false;\r\n                  var valid2 = false;\r\n                  var errs_3 = errors;\r\n                  if (!refVal[12](data2, (dataPath || \"\") + \".schemas['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                    if (vErrors === null) vErrors = refVal[12].errors;\r\n                    else vErrors = vErrors.concat(refVal[12].errors);\r\n                    errors = vErrors.length;\r\n                  }\r\n                  var valid3 = errors === errs_3;\r\n                  if (valid3) valid2 = prevValid2 = true;\r\n                  var errs_3 = errors;\r\n                  var errs_4 = errors;\r\n                  if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                    var missing4;\r\n                    if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                      var err = {\r\n                        keyword: \"required\",\r\n                        dataPath: (dataPath || \"\") + \".schemas['\" + key1 + \"']\",\r\n                        schemaPath: \"#/definitions/Reference/required\",\r\n                        params: {\r\n                          missingProperty: \"\" + missing4 + \"\"\r\n                        },\r\n                        message: \"should have required property '\" + missing4 + \"'\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    } else {\r\n                      var errs__4 = errors;\r\n                      var valid5 = true;\r\n                      for (var key4 in data2) {\r\n                        if (pattern4.test(key4)) {\r\n                          var data3 = data2[key4];\r\n                          var errs_5 = errors;\r\n                          if (errors === errs_5) {\r\n                            if (typeof data3 === \"string\") {\r\n                              if (!formats[\"uri-reference\"].test(data3)) {\r\n                                var err = {\r\n                                  keyword: \"format\",\r\n                                  dataPath: (dataPath || \"\") + \".schemas['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                  params: {\r\n                                    format: \"uri-reference\"\r\n                                  },\r\n                                  message: 'should match format \"uri-reference\"'\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                            } else {\r\n                              var err = {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".schemas['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            }\r\n                          }\r\n                          var valid5 = errors === errs_5;\r\n                          if (!valid5) break;\r\n                        } else valid5 = true;\r\n                      }\r\n                    }\r\n                  } else {\r\n                    var err = {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".schemas['\" + key1 + \"']\",\r\n                      schemaPath: \"#/definitions/Reference/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid4 = errors === errs_4;\r\n                  var valid3 = errors === errs_3;\r\n                  if (valid3 && prevValid2) valid2 = false;\r\n                  else {\r\n                    if (valid3) valid2 = prevValid2 = true;\r\n                  }\r\n                  if (!valid2) {\r\n                    var err = {\r\n                      keyword: \"oneOf\",\r\n                      dataPath: (dataPath || \"\") + \".schemas['\" + key1 + \"']\",\r\n                      schemaPath: \"#/properties/schemas/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                      params: {},\r\n                      message: \"should match exactly one schema in oneOf\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                    validate.errors = vErrors;\r\n                    return false;\r\n                  } else {\r\n                    errors = errs__2;\r\n                    if (vErrors !== null) {\r\n                      if (errs__2) vErrors.length = errs__2;\r\n                      else vErrors = null;\r\n                    }\r\n                  }\r\n                  var valid2 = errors === errs_2;\r\n                  if (!valid2) break;\r\n                } else valid2 = true;\r\n              }\r\n            } else {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".schemas\",\r\n                  schemaPath: \"#/properties/schemas/type\",\r\n                  params: {\r\n                    type: \"object\"\r\n                  },\r\n                  message: \"should be object\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.responses;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                var errs__1 = errors;\r\n                var valid2 = true;\r\n                for (var key1 in data1) {\r\n                  if (pattern6.test(key1)) {\r\n                    var data2 = data1[key1];\r\n                    var errs_2 = errors;\r\n                    var errs__2 = errors;\r\n                    var prevValid2 = false;\r\n                    var valid2 = false;\r\n                    var errs_3 = errors;\r\n                    var errs_4 = errors;\r\n                    if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                      var missing4;\r\n                      if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                        var err = {\r\n                          keyword: \"required\",\r\n                          dataPath: (dataPath || \"\") + \".responses['\" + key1 + \"']\",\r\n                          schemaPath: \"#/definitions/Reference/required\",\r\n                          params: {\r\n                            missingProperty: \"\" + missing4 + \"\"\r\n                          },\r\n                          message: \"should have required property '\" + missing4 + \"'\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      } else {\r\n                        var errs__4 = errors;\r\n                        var valid5 = true;\r\n                        for (var key4 in data2) {\r\n                          if (pattern4.test(key4)) {\r\n                            var data3 = data2[key4];\r\n                            var errs_5 = errors;\r\n                            if (errors === errs_5) {\r\n                              if (typeof data3 === \"string\") {\r\n                                if (!formats[\"uri-reference\"].test(data3)) {\r\n                                  var err = {\r\n                                    keyword: \"format\",\r\n                                    dataPath: (dataPath || \"\") + \".responses['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                    schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                    params: {\r\n                                      format: \"uri-reference\"\r\n                                    },\r\n                                    message: 'should match format \"uri-reference\"'\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                              } else {\r\n                                var err = {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".responses['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                            }\r\n                            var valid5 = errors === errs_5;\r\n                            if (!valid5) break;\r\n                          } else valid5 = true;\r\n                        }\r\n                      }\r\n                    } else {\r\n                      var err = {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".responses['\" + key1 + \"']\",\r\n                        schemaPath: \"#/definitions/Reference/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid4 = errors === errs_4;\r\n                    var valid3 = errors === errs_3;\r\n                    if (valid3) valid2 = prevValid2 = true;\r\n                    var errs_3 = errors;\r\n                    if (!refVal[26](data2, (dataPath || \"\") + \".responses['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                      if (vErrors === null) vErrors = refVal[26].errors;\r\n                      else vErrors = vErrors.concat(refVal[26].errors);\r\n                      errors = vErrors.length;\r\n                    }\r\n                    var valid3 = errors === errs_3;\r\n                    if (valid3 && prevValid2) valid2 = false;\r\n                    else {\r\n                      if (valid3) valid2 = prevValid2 = true;\r\n                    }\r\n                    if (!valid2) {\r\n                      var err = {\r\n                        keyword: \"oneOf\",\r\n                        dataPath: (dataPath || \"\") + \".responses['\" + key1 + \"']\",\r\n                        schemaPath: \"#/properties/responses/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                        params: {},\r\n                        message: \"should match exactly one schema in oneOf\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                      validate.errors = vErrors;\r\n                      return false;\r\n                    } else {\r\n                      errors = errs__2;\r\n                      if (vErrors !== null) {\r\n                        if (errs__2) vErrors.length = errs__2;\r\n                        else vErrors = null;\r\n                      }\r\n                    }\r\n                    var valid2 = errors === errs_2;\r\n                    if (!valid2) break;\r\n                  } else valid2 = true;\r\n                }\r\n              } else {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".responses\",\r\n                    schemaPath: \"#/properties/responses/type\",\r\n                    params: {\r\n                      type: \"object\"\r\n                    },\r\n                    message: \"should be object\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.parameters;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  var errs__1 = errors;\r\n                  var valid2 = true;\r\n                  for (var key1 in data1) {\r\n                    if (pattern6.test(key1)) {\r\n                      var data2 = data1[key1];\r\n                      var errs_2 = errors;\r\n                      var errs__2 = errors;\r\n                      var prevValid2 = false;\r\n                      var valid2 = false;\r\n                      var errs_3 = errors;\r\n                      var errs_4 = errors;\r\n                      if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                        var missing4;\r\n                        if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                          var err = {\r\n                            keyword: \"required\",\r\n                            dataPath: (dataPath || \"\") + \".parameters['\" + key1 + \"']\",\r\n                            schemaPath: \"#/definitions/Reference/required\",\r\n                            params: {\r\n                              missingProperty: \"\" + missing4 + \"\"\r\n                            },\r\n                            message: \"should have required property '\" + missing4 + \"'\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        } else {\r\n                          var errs__4 = errors;\r\n                          var valid5 = true;\r\n                          for (var key4 in data2) {\r\n                            if (pattern4.test(key4)) {\r\n                              var data3 = data2[key4];\r\n                              var errs_5 = errors;\r\n                              if (errors === errs_5) {\r\n                                if (typeof data3 === \"string\") {\r\n                                  if (!formats[\"uri-reference\"].test(data3)) {\r\n                                    var err = {\r\n                                      keyword: \"format\",\r\n                                      dataPath: (dataPath || \"\") + \".parameters['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                      schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                      params: {\r\n                                        format: \"uri-reference\"\r\n                                      },\r\n                                      message: 'should match format \"uri-reference\"'\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  }\r\n                                } else {\r\n                                  var err = {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".parameters['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                    schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                              }\r\n                              var valid5 = errors === errs_5;\r\n                              if (!valid5) break;\r\n                            } else valid5 = true;\r\n                          }\r\n                        }\r\n                      } else {\r\n                        var err = {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".parameters['\" + key1 + \"']\",\r\n                          schemaPath: \"#/definitions/Reference/type\",\r\n                          params: {\r\n                            type: \"object\"\r\n                          },\r\n                          message: \"should be object\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                      var valid4 = errors === errs_4;\r\n                      var valid3 = errors === errs_3;\r\n                      if (valid3) valid2 = prevValid2 = true;\r\n                      var errs_3 = errors;\r\n                      if (!refVal[11](data2, (dataPath || \"\") + \".parameters['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                        if (vErrors === null) vErrors = refVal[11].errors;\r\n                        else vErrors = vErrors.concat(refVal[11].errors);\r\n                        errors = vErrors.length;\r\n                      }\r\n                      var valid3 = errors === errs_3;\r\n                      if (valid3 && prevValid2) valid2 = false;\r\n                      else {\r\n                        if (valid3) valid2 = prevValid2 = true;\r\n                      }\r\n                      if (!valid2) {\r\n                        var err = {\r\n                          keyword: \"oneOf\",\r\n                          dataPath: (dataPath || \"\") + \".parameters['\" + key1 + \"']\",\r\n                          schemaPath: \"#/properties/parameters/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                          params: {},\r\n                          message: \"should match exactly one schema in oneOf\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                        validate.errors = vErrors;\r\n                        return false;\r\n                      } else {\r\n                        errors = errs__2;\r\n                        if (vErrors !== null) {\r\n                          if (errs__2) vErrors.length = errs__2;\r\n                          else vErrors = null;\r\n                        }\r\n                      }\r\n                      var valid2 = errors === errs_2;\r\n                      if (!valid2) break;\r\n                    } else valid2 = true;\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".parameters\",\r\n                      schemaPath: \"#/properties/parameters/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.examples;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    var errs__1 = errors;\r\n                    var valid2 = true;\r\n                    for (var key1 in data1) {\r\n                      if (pattern6.test(key1)) {\r\n                        var data2 = data1[key1];\r\n                        var errs_2 = errors;\r\n                        var errs__2 = errors;\r\n                        var prevValid2 = false;\r\n                        var valid2 = false;\r\n                        var errs_3 = errors;\r\n                        var errs_4 = errors;\r\n                        if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                          var missing4;\r\n                          if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                            var err = {\r\n                              keyword: \"required\",\r\n                              dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                              schemaPath: \"#/definitions/Reference/required\",\r\n                              params: {\r\n                                missingProperty: \"\" + missing4 + \"\"\r\n                              },\r\n                              message: \"should have required property '\" + missing4 + \"'\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          } else {\r\n                            var errs__4 = errors;\r\n                            var valid5 = true;\r\n                            for (var key4 in data2) {\r\n                              if (pattern4.test(key4)) {\r\n                                var data3 = data2[key4];\r\n                                var errs_5 = errors;\r\n                                if (errors === errs_5) {\r\n                                  if (typeof data3 === \"string\") {\r\n                                    if (!formats[\"uri-reference\"].test(data3)) {\r\n                                      var err = {\r\n                                        keyword: \"format\",\r\n                                        dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                        params: {\r\n                                          format: \"uri-reference\"\r\n                                        },\r\n                                        message: 'should match format \"uri-reference\"'\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  } else {\r\n                                    var err = {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                      schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  }\r\n                                }\r\n                                var valid5 = errors === errs_5;\r\n                                if (!valid5) break;\r\n                              } else valid5 = true;\r\n                            }\r\n                          }\r\n                        } else {\r\n                          var err = {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                            schemaPath: \"#/definitions/Reference/type\",\r\n                            params: {\r\n                              type: \"object\"\r\n                            },\r\n                            message: \"should be object\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                        var valid4 = errors === errs_4;\r\n                        var valid3 = errors === errs_3;\r\n                        if (valid3) valid2 = prevValid2 = true;\r\n                        var errs_3 = errors;\r\n                        var errs_4 = errors;\r\n                        if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                          var errs__4 = errors;\r\n                          var valid5 = true;\r\n                          for (var key4 in data2) {\r\n                            var isAdditional4 = !(\r\n                              false ||\r\n                              key4 == \"summary\" ||\r\n                              key4 == \"description\" ||\r\n                              key4 == \"value\" ||\r\n                              key4 == \"externalValue\" ||\r\n                              pattern0.test(key4)\r\n                            );\r\n                            if (isAdditional4) {\r\n                              valid5 = false;\r\n                              var err = {\r\n                                keyword: \"additionalProperties\",\r\n                                dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                                schemaPath: \"#/definitions/Example/additionalProperties\",\r\n                                params: {\r\n                                  additionalProperty: \"\" + key4 + \"\"\r\n                                },\r\n                                message: \"should NOT have additional properties\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                              break;\r\n                            }\r\n                          }\r\n                          if (valid5) {\r\n                            if (data2.summary === undefined) {\r\n                              valid5 = true;\r\n                            } else {\r\n                              var errs_5 = errors;\r\n                              if (typeof data2.summary !== \"string\") {\r\n                                var err = {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].summary\",\r\n                                  schemaPath: \"#/definitions/Example/properties/summary/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                              var valid5 = errors === errs_5;\r\n                            }\r\n                            if (valid5) {\r\n                              if (data2.description === undefined) {\r\n                                valid5 = true;\r\n                              } else {\r\n                                var errs_5 = errors;\r\n                                if (typeof data2.description !== \"string\") {\r\n                                  var err = {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].description\",\r\n                                    schemaPath: \"#/definitions/Example/properties/description/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                                var valid5 = errors === errs_5;\r\n                              }\r\n                              if (valid5) {\r\n                                if (valid5) {\r\n                                  var data3 = data2.externalValue;\r\n                                  if (data3 === undefined) {\r\n                                    valid5 = true;\r\n                                  } else {\r\n                                    var errs_5 = errors;\r\n                                    if (errors === errs_5) {\r\n                                      if (typeof data3 === \"string\") {\r\n                                        if (!formats[\"uri-reference\"].test(data3)) {\r\n                                          var err = {\r\n                                            keyword: \"format\",\r\n                                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                            schemaPath: \"#/definitions/Example/properties/externalValue/format\",\r\n                                            params: {\r\n                                              format: \"uri-reference\"\r\n                                            },\r\n                                            message: 'should match format \"uri-reference\"'\r\n                                          };\r\n                                          if (vErrors === null) vErrors = [err];\r\n                                          else vErrors.push(err);\r\n                                          errors++;\r\n                                        }\r\n                                      } else {\r\n                                        var err = {\r\n                                          keyword: \"type\",\r\n                                          dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"'].externalValue\",\r\n                                          schemaPath: \"#/definitions/Example/properties/externalValue/type\",\r\n                                          params: {\r\n                                            type: \"string\"\r\n                                          },\r\n                                          message: \"should be string\"\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      }\r\n                                    }\r\n                                    var valid5 = errors === errs_5;\r\n                                  }\r\n                                }\r\n                              }\r\n                            }\r\n                          }\r\n                        } else {\r\n                          var err = {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                            schemaPath: \"#/definitions/Example/type\",\r\n                            params: {\r\n                              type: \"object\"\r\n                            },\r\n                            message: \"should be object\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                        var valid4 = errors === errs_4;\r\n                        var valid3 = errors === errs_3;\r\n                        if (valid3 && prevValid2) valid2 = false;\r\n                        else {\r\n                          if (valid3) valid2 = prevValid2 = true;\r\n                        }\r\n                        if (!valid2) {\r\n                          var err = {\r\n                            keyword: \"oneOf\",\r\n                            dataPath: (dataPath || \"\") + \".examples['\" + key1 + \"']\",\r\n                            schemaPath: \"#/properties/examples/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                            params: {},\r\n                            message: \"should match exactly one schema in oneOf\"\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                          validate.errors = vErrors;\r\n                          return false;\r\n                        } else {\r\n                          errors = errs__2;\r\n                          if (vErrors !== null) {\r\n                            if (errs__2) vErrors.length = errs__2;\r\n                            else vErrors = null;\r\n                          }\r\n                        }\r\n                        var valid2 = errors === errs_2;\r\n                        if (!valid2) break;\r\n                      } else valid2 = true;\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".examples\",\r\n                        schemaPath: \"#/properties/examples/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.requestBodies;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                      var errs__1 = errors;\r\n                      var valid2 = true;\r\n                      for (var key1 in data1) {\r\n                        if (pattern6.test(key1)) {\r\n                          var data2 = data1[key1];\r\n                          var errs_2 = errors;\r\n                          var errs__2 = errors;\r\n                          var prevValid2 = false;\r\n                          var valid2 = false;\r\n                          var errs_3 = errors;\r\n                          var errs_4 = errors;\r\n                          if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                            var missing4;\r\n                            if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                              var err = {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".requestBodies['\" + key1 + \"']\",\r\n                                schemaPath: \"#/definitions/Reference/required\",\r\n                                params: {\r\n                                  missingProperty: \"\" + missing4 + \"\"\r\n                                },\r\n                                message: \"should have required property '\" + missing4 + \"'\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            } else {\r\n                              var errs__4 = errors;\r\n                              var valid5 = true;\r\n                              for (var key4 in data2) {\r\n                                if (pattern4.test(key4)) {\r\n                                  var data3 = data2[key4];\r\n                                  var errs_5 = errors;\r\n                                  if (errors === errs_5) {\r\n                                    if (typeof data3 === \"string\") {\r\n                                      if (!formats[\"uri-reference\"].test(data3)) {\r\n                                        var err = {\r\n                                          keyword: \"format\",\r\n                                          dataPath: (dataPath || \"\") + \".requestBodies['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                          schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                          params: {\r\n                                            format: \"uri-reference\"\r\n                                          },\r\n                                          message: 'should match format \"uri-reference\"'\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      }\r\n                                    } else {\r\n                                      var err = {\r\n                                        keyword: \"type\",\r\n                                        dataPath: (dataPath || \"\") + \".requestBodies['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                        params: {\r\n                                          type: \"string\"\r\n                                        },\r\n                                        message: \"should be string\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    }\r\n                                  }\r\n                                  var valid5 = errors === errs_5;\r\n                                  if (!valid5) break;\r\n                                } else valid5 = true;\r\n                              }\r\n                            }\r\n                          } else {\r\n                            var err = {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".requestBodies['\" + key1 + \"']\",\r\n                              schemaPath: \"#/definitions/Reference/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                          }\r\n                          var valid4 = errors === errs_4;\r\n                          var valid3 = errors === errs_3;\r\n                          if (valid3) valid2 = prevValid2 = true;\r\n                          var errs_3 = errors;\r\n                          if (!refVal[24](data2, (dataPath || \"\") + \".requestBodies['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                            if (vErrors === null) vErrors = refVal[24].errors;\r\n                            else vErrors = vErrors.concat(refVal[24].errors);\r\n                            errors = vErrors.length;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                          if (valid3 && prevValid2) valid2 = false;\r\n                          else {\r\n                            if (valid3) valid2 = prevValid2 = true;\r\n                          }\r\n                          if (!valid2) {\r\n                            var err = {\r\n                              keyword: \"oneOf\",\r\n                              dataPath: (dataPath || \"\") + \".requestBodies['\" + key1 + \"']\",\r\n                              schemaPath: \"#/properties/requestBodies/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                              params: {},\r\n                              message: \"should match exactly one schema in oneOf\"\r\n                            };\r\n                            if (vErrors === null) vErrors = [err];\r\n                            else vErrors.push(err);\r\n                            errors++;\r\n                            validate.errors = vErrors;\r\n                            return false;\r\n                          } else {\r\n                            errors = errs__2;\r\n                            if (vErrors !== null) {\r\n                              if (errs__2) vErrors.length = errs__2;\r\n                              else vErrors = null;\r\n                            }\r\n                          }\r\n                          var valid2 = errors === errs_2;\r\n                          if (!valid2) break;\r\n                        } else valid2 = true;\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".requestBodies\",\r\n                          schemaPath: \"#/properties/requestBodies/type\",\r\n                          params: {\r\n                            type: \"object\"\r\n                          },\r\n                          message: \"should be object\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    var data1 = data.headers;\r\n                    if (data1 === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                        var errs__1 = errors;\r\n                        var valid2 = true;\r\n                        for (var key1 in data1) {\r\n                          if (pattern6.test(key1)) {\r\n                            var data2 = data1[key1];\r\n                            var errs_2 = errors;\r\n                            var errs__2 = errors;\r\n                            var prevValid2 = false;\r\n                            var valid2 = false;\r\n                            var errs_3 = errors;\r\n                            var errs_4 = errors;\r\n                            if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                              var missing4;\r\n                              if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                var err = {\r\n                                  keyword: \"required\",\r\n                                  dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/required\",\r\n                                  params: {\r\n                                    missingProperty: \"\" + missing4 + \"\"\r\n                                  },\r\n                                  message: \"should have required property '\" + missing4 + \"'\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              } else {\r\n                                var errs__4 = errors;\r\n                                var valid5 = true;\r\n                                for (var key4 in data2) {\r\n                                  if (pattern4.test(key4)) {\r\n                                    var data3 = data2[key4];\r\n                                    var errs_5 = errors;\r\n                                    if (errors === errs_5) {\r\n                                      if (typeof data3 === \"string\") {\r\n                                        if (!formats[\"uri-reference\"].test(data3)) {\r\n                                          var err = {\r\n                                            keyword: \"format\",\r\n                                            dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                            schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                            params: {\r\n                                              format: \"uri-reference\"\r\n                                            },\r\n                                            message: 'should match format \"uri-reference\"'\r\n                                          };\r\n                                          if (vErrors === null) vErrors = [err];\r\n                                          else vErrors.push(err);\r\n                                          errors++;\r\n                                        }\r\n                                      } else {\r\n                                        var err = {\r\n                                          keyword: \"type\",\r\n                                          dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                          schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                          params: {\r\n                                            type: \"string\"\r\n                                          },\r\n                                          message: \"should be string\"\r\n                                        };\r\n                                        if (vErrors === null) vErrors = [err];\r\n                                        else vErrors.push(err);\r\n                                        errors++;\r\n                                      }\r\n                                    }\r\n                                    var valid5 = errors === errs_5;\r\n                                    if (!valid5) break;\r\n                                  } else valid5 = true;\r\n                                }\r\n                              }\r\n                            } else {\r\n                              var err = {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                                schemaPath: \"#/definitions/Reference/type\",\r\n                                params: {\r\n                                  type: \"object\"\r\n                                },\r\n                                message: \"should be object\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                            }\r\n                            var valid4 = errors === errs_4;\r\n                            var valid3 = errors === errs_3;\r\n                            if (valid3) valid2 = prevValid2 = true;\r\n                            var errs_3 = errors;\r\n                            if (!refVal[19](data2, (dataPath || \"\") + \".headers['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                              if (vErrors === null) vErrors = refVal[19].errors;\r\n                              else vErrors = vErrors.concat(refVal[19].errors);\r\n                              errors = vErrors.length;\r\n                            }\r\n                            var valid3 = errors === errs_3;\r\n                            if (valid3 && prevValid2) valid2 = false;\r\n                            else {\r\n                              if (valid3) valid2 = prevValid2 = true;\r\n                            }\r\n                            if (!valid2) {\r\n                              var err = {\r\n                                keyword: \"oneOf\",\r\n                                dataPath: (dataPath || \"\") + \".headers['\" + key1 + \"']\",\r\n                                schemaPath: \"#/properties/headers/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                                params: {},\r\n                                message: \"should match exactly one schema in oneOf\"\r\n                              };\r\n                              if (vErrors === null) vErrors = [err];\r\n                              else vErrors.push(err);\r\n                              errors++;\r\n                              validate.errors = vErrors;\r\n                              return false;\r\n                            } else {\r\n                              errors = errs__2;\r\n                              if (vErrors !== null) {\r\n                                if (errs__2) vErrors.length = errs__2;\r\n                                else vErrors = null;\r\n                              }\r\n                            }\r\n                            var valid2 = errors === errs_2;\r\n                            if (!valid2) break;\r\n                          } else valid2 = true;\r\n                        }\r\n                      } else {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".headers\",\r\n                            schemaPath: \"#/properties/headers/type\",\r\n                            params: {\r\n                              type: \"object\"\r\n                            },\r\n                            message: \"should be object\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      var data1 = data.securitySchemes;\r\n                      if (data1 === undefined) {\r\n                        valid1 = true;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                          var errs__1 = errors;\r\n                          var valid2 = true;\r\n                          for (var key1 in data1) {\r\n                            if (pattern6.test(key1)) {\r\n                              var data2 = data1[key1];\r\n                              var errs_2 = errors;\r\n                              var errs__2 = errors;\r\n                              var prevValid2 = false;\r\n                              var valid2 = false;\r\n                              var errs_3 = errors;\r\n                              var errs_4 = errors;\r\n                              if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                var missing4;\r\n                                if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                  var err = {\r\n                                    keyword: \"required\",\r\n                                    dataPath: (dataPath || \"\") + \".securitySchemes['\" + key1 + \"']\",\r\n                                    schemaPath: \"#/definitions/Reference/required\",\r\n                                    params: {\r\n                                      missingProperty: \"\" + missing4 + \"\"\r\n                                    },\r\n                                    message: \"should have required property '\" + missing4 + \"'\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                } else {\r\n                                  var errs__4 = errors;\r\n                                  var valid5 = true;\r\n                                  for (var key4 in data2) {\r\n                                    if (pattern4.test(key4)) {\r\n                                      var data3 = data2[key4];\r\n                                      var errs_5 = errors;\r\n                                      if (errors === errs_5) {\r\n                                        if (typeof data3 === \"string\") {\r\n                                          if (!formats[\"uri-reference\"].test(data3)) {\r\n                                            var err = {\r\n                                              keyword: \"format\",\r\n                                              dataPath: (dataPath || \"\") + \".securitySchemes['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                              schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                              params: {\r\n                                                format: \"uri-reference\"\r\n                                              },\r\n                                              message: 'should match format \"uri-reference\"'\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                        } else {\r\n                                          var err = {\r\n                                            keyword: \"type\",\r\n                                            dataPath: (dataPath || \"\") + \".securitySchemes['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                            schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                            params: {\r\n                                              type: \"string\"\r\n                                            },\r\n                                            message: \"should be string\"\r\n                                          };\r\n                                          if (vErrors === null) vErrors = [err];\r\n                                          else vErrors.push(err);\r\n                                          errors++;\r\n                                        }\r\n                                      }\r\n                                      var valid5 = errors === errs_5;\r\n                                      if (!valid5) break;\r\n                                    } else valid5 = true;\r\n                                  }\r\n                                }\r\n                              } else {\r\n                                var err = {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".securitySchemes['\" + key1 + \"']\",\r\n                                  schemaPath: \"#/definitions/Reference/type\",\r\n                                  params: {\r\n                                    type: \"object\"\r\n                                  },\r\n                                  message: \"should be object\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                              }\r\n                              var valid4 = errors === errs_4;\r\n                              var valid3 = errors === errs_3;\r\n                              if (valid3) valid2 = prevValid2 = true;\r\n                              var errs_3 = errors;\r\n                              if (!refVal30(data2, (dataPath || \"\") + \".securitySchemes['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                                if (vErrors === null) vErrors = refVal30.errors;\r\n                                else vErrors = vErrors.concat(refVal30.errors);\r\n                                errors = vErrors.length;\r\n                              }\r\n                              var valid3 = errors === errs_3;\r\n                              if (valid3 && prevValid2) valid2 = false;\r\n                              else {\r\n                                if (valid3) valid2 = prevValid2 = true;\r\n                              }\r\n                              if (!valid2) {\r\n                                var err = {\r\n                                  keyword: \"oneOf\",\r\n                                  dataPath: (dataPath || \"\") + \".securitySchemes['\" + key1 + \"']\",\r\n                                  schemaPath:\r\n                                    \"#/properties/securitySchemes/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                                  params: {},\r\n                                  message: \"should match exactly one schema in oneOf\"\r\n                                };\r\n                                if (vErrors === null) vErrors = [err];\r\n                                else vErrors.push(err);\r\n                                errors++;\r\n                                validate.errors = vErrors;\r\n                                return false;\r\n                              } else {\r\n                                errors = errs__2;\r\n                                if (vErrors !== null) {\r\n                                  if (errs__2) vErrors.length = errs__2;\r\n                                  else vErrors = null;\r\n                                }\r\n                              }\r\n                              var valid2 = errors === errs_2;\r\n                              if (!valid2) break;\r\n                            } else valid2 = true;\r\n                          }\r\n                        } else {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".securitySchemes\",\r\n                              schemaPath: \"#/properties/securitySchemes/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                      if (valid1) {\r\n                        var data1 = data.links;\r\n                        if (data1 === undefined) {\r\n                          valid1 = true;\r\n                        } else {\r\n                          var errs_1 = errors;\r\n                          if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                            var errs__1 = errors;\r\n                            var valid2 = true;\r\n                            for (var key1 in data1) {\r\n                              if (pattern6.test(key1)) {\r\n                                var data2 = data1[key1];\r\n                                var errs_2 = errors;\r\n                                var errs__2 = errors;\r\n                                var prevValid2 = false;\r\n                                var valid2 = false;\r\n                                var errs_3 = errors;\r\n                                var errs_4 = errors;\r\n                                if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                  var missing4;\r\n                                  if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                    var err = {\r\n                                      keyword: \"required\",\r\n                                      dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']\",\r\n                                      schemaPath: \"#/definitions/Reference/required\",\r\n                                      params: {\r\n                                        missingProperty: \"\" + missing4 + \"\"\r\n                                      },\r\n                                      message: \"should have required property '\" + missing4 + \"'\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  } else {\r\n                                    var errs__4 = errors;\r\n                                    var valid5 = true;\r\n                                    for (var key4 in data2) {\r\n                                      if (pattern4.test(key4)) {\r\n                                        var data3 = data2[key4];\r\n                                        var errs_5 = errors;\r\n                                        if (errors === errs_5) {\r\n                                          if (typeof data3 === \"string\") {\r\n                                            if (!formats[\"uri-reference\"].test(data3)) {\r\n                                              var err = {\r\n                                                keyword: \"format\",\r\n                                                dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                params: {\r\n                                                  format: \"uri-reference\"\r\n                                                },\r\n                                                message: 'should match format \"uri-reference\"'\r\n                                              };\r\n                                              if (vErrors === null) vErrors = [err];\r\n                                              else vErrors.push(err);\r\n                                              errors++;\r\n                                            }\r\n                                          } else {\r\n                                            var err = {\r\n                                              keyword: \"type\",\r\n                                              dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                              schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                              params: {\r\n                                                type: \"string\"\r\n                                              },\r\n                                              message: \"should be string\"\r\n                                            };\r\n                                            if (vErrors === null) vErrors = [err];\r\n                                            else vErrors.push(err);\r\n                                            errors++;\r\n                                          }\r\n                                        }\r\n                                        var valid5 = errors === errs_5;\r\n                                        if (!valid5) break;\r\n                                      } else valid5 = true;\r\n                                    }\r\n                                  }\r\n                                } else {\r\n                                  var err = {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']\",\r\n                                    schemaPath: \"#/definitions/Reference/type\",\r\n                                    params: {\r\n                                      type: \"object\"\r\n                                    },\r\n                                    message: \"should be object\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                }\r\n                                var valid4 = errors === errs_4;\r\n                                var valid3 = errors === errs_3;\r\n                                if (valid3) valid2 = prevValid2 = true;\r\n                                var errs_3 = errors;\r\n                                if (!refVal[27](data2, (dataPath || \"\") + \".links['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                                  if (vErrors === null) vErrors = refVal[27].errors;\r\n                                  else vErrors = vErrors.concat(refVal[27].errors);\r\n                                  errors = vErrors.length;\r\n                                }\r\n                                var valid3 = errors === errs_3;\r\n                                if (valid3 && prevValid2) valid2 = false;\r\n                                else {\r\n                                  if (valid3) valid2 = prevValid2 = true;\r\n                                }\r\n                                if (!valid2) {\r\n                                  var err = {\r\n                                    keyword: \"oneOf\",\r\n                                    dataPath: (dataPath || \"\") + \".links['\" + key1 + \"']\",\r\n                                    schemaPath: \"#/properties/links/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                                    params: {},\r\n                                    message: \"should match exactly one schema in oneOf\"\r\n                                  };\r\n                                  if (vErrors === null) vErrors = [err];\r\n                                  else vErrors.push(err);\r\n                                  errors++;\r\n                                  validate.errors = vErrors;\r\n                                  return false;\r\n                                } else {\r\n                                  errors = errs__2;\r\n                                  if (vErrors !== null) {\r\n                                    if (errs__2) vErrors.length = errs__2;\r\n                                    else vErrors = null;\r\n                                  }\r\n                                }\r\n                                var valid2 = errors === errs_2;\r\n                                if (!valid2) break;\r\n                              } else valid2 = true;\r\n                            }\r\n                          } else {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".links\",\r\n                                schemaPath: \"#/properties/links/type\",\r\n                                params: {\r\n                                  type: \"object\"\r\n                                },\r\n                                message: \"should be object\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                          var valid1 = errors === errs_1;\r\n                        }\r\n                        if (valid1) {\r\n                          var data1 = data.callbacks;\r\n                          if (data1 === undefined) {\r\n                            valid1 = true;\r\n                          } else {\r\n                            var errs_1 = errors;\r\n                            if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                              var errs__1 = errors;\r\n                              var valid2 = true;\r\n                              for (var key1 in data1) {\r\n                                if (pattern6.test(key1)) {\r\n                                  var data2 = data1[key1];\r\n                                  var errs_2 = errors;\r\n                                  var errs__2 = errors;\r\n                                  var prevValid2 = false;\r\n                                  var valid2 = false;\r\n                                  var errs_3 = errors;\r\n                                  var errs_4 = errors;\r\n                                  if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                    var missing4;\r\n                                    if (data2.$ref === undefined && (missing4 = \".$ref\")) {\r\n                                      var err = {\r\n                                        keyword: \"required\",\r\n                                        dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']\",\r\n                                        schemaPath: \"#/definitions/Reference/required\",\r\n                                        params: {\r\n                                          missingProperty: \"\" + missing4 + \"\"\r\n                                        },\r\n                                        message: \"should have required property '\" + missing4 + \"'\"\r\n                                      };\r\n                                      if (vErrors === null) vErrors = [err];\r\n                                      else vErrors.push(err);\r\n                                      errors++;\r\n                                    } else {\r\n                                      var errs__4 = errors;\r\n                                      var valid5 = true;\r\n                                      for (var key4 in data2) {\r\n                                        if (pattern4.test(key4)) {\r\n                                          var data3 = data2[key4];\r\n                                          var errs_5 = errors;\r\n                                          if (errors === errs_5) {\r\n                                            if (typeof data3 === \"string\") {\r\n                                              if (!formats[\"uri-reference\"].test(data3)) {\r\n                                                var err = {\r\n                                                  keyword: \"format\",\r\n                                                  dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                  schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/format\",\r\n                                                  params: {\r\n                                                    format: \"uri-reference\"\r\n                                                  },\r\n                                                  message: 'should match format \"uri-reference\"'\r\n                                                };\r\n                                                if (vErrors === null) vErrors = [err];\r\n                                                else vErrors.push(err);\r\n                                                errors++;\r\n                                              }\r\n                                            } else {\r\n                                              var err = {\r\n                                                keyword: \"type\",\r\n                                                dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']['\" + key4 + \"']\",\r\n                                                schemaPath: \"#/definitions/Reference/patternProperties/%5E%5C%24ref%24/type\",\r\n                                                params: {\r\n                                                  type: \"string\"\r\n                                                },\r\n                                                message: \"should be string\"\r\n                                              };\r\n                                              if (vErrors === null) vErrors = [err];\r\n                                              else vErrors.push(err);\r\n                                              errors++;\r\n                                            }\r\n                                          }\r\n                                          var valid5 = errors === errs_5;\r\n                                          if (!valid5) break;\r\n                                        } else valid5 = true;\r\n                                      }\r\n                                    }\r\n                                  } else {\r\n                                    var err = {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']\",\r\n                                      schemaPath: \"#/definitions/Reference/type\",\r\n                                      params: {\r\n                                        type: \"object\"\r\n                                      },\r\n                                      message: \"should be object\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                  }\r\n                                  var valid4 = errors === errs_4;\r\n                                  var valid3 = errors === errs_3;\r\n                                  if (valid3) valid2 = prevValid2 = true;\r\n                                  var errs_3 = errors;\r\n                                  if (!refVal[28](data2, (dataPath || \"\") + \".callbacks['\" + key1 + \"']\", data1, key1, rootData)) {\r\n                                    if (vErrors === null) vErrors = refVal[28].errors;\r\n                                    else vErrors = vErrors.concat(refVal[28].errors);\r\n                                    errors = vErrors.length;\r\n                                  }\r\n                                  var valid3 = errors === errs_3;\r\n                                  if (valid3 && prevValid2) valid2 = false;\r\n                                  else {\r\n                                    if (valid3) valid2 = prevValid2 = true;\r\n                                  }\r\n                                  if (!valid2) {\r\n                                    var err = {\r\n                                      keyword: \"oneOf\",\r\n                                      dataPath: (dataPath || \"\") + \".callbacks['\" + key1 + \"']\",\r\n                                      schemaPath: \"#/properties/callbacks/patternProperties/%5E%5Ba-zA-Z0-9%5C.%5C-_%5D%2B%24/oneOf\",\r\n                                      params: {},\r\n                                      message: \"should match exactly one schema in oneOf\"\r\n                                    };\r\n                                    if (vErrors === null) vErrors = [err];\r\n                                    else vErrors.push(err);\r\n                                    errors++;\r\n                                    validate.errors = vErrors;\r\n                                    return false;\r\n                                  } else {\r\n                                    errors = errs__2;\r\n                                    if (vErrors !== null) {\r\n                                      if (errs__2) vErrors.length = errs__2;\r\n                                      else vErrors = null;\r\n                                    }\r\n                                  }\r\n                                  var valid2 = errors === errs_2;\r\n                                  if (!valid2) break;\r\n                                } else valid2 = true;\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".callbacks\",\r\n                                  schemaPath: \"#/properties/callbacks/type\",\r\n                                  params: {\r\n                                    type: \"object\"\r\n                                  },\r\n                                  message: \"should be object\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid1 = errors === errs_1;\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal29.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      schemas: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Schema\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      responses: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Response\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      parameters: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Parameter\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      examples: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Example\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      requestBodies: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/RequestBody\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      headers: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Header\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      securitySchemes: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/SecurityScheme\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      links: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Link\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      callbacks: {\r\n        type: \"object\",\r\n        patternProperties: {\r\n          \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Callback\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal29.errors = null;\r\n  refVal[29] = refVal29;\r\n  var refVal30 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      var errs__0 = errors;\r\n      var prevValid0 = false;\r\n      var valid0 = false;\r\n      var errs_1 = errors;\r\n      var errs_2 = errors;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__2 = errors;\r\n          var valid3 = true;\r\n          for (var key2 in data) {\r\n            var isAdditional2 = !(\r\n              false ||\r\n              key2 == \"type\" ||\r\n              key2 == \"name\" ||\r\n              key2 == \"in\" ||\r\n              key2 == \"description\" ||\r\n              pattern0.test(key2)\r\n            );\r\n            if (isAdditional2) {\r\n              valid3 = false;\r\n              var err = {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/APIKeySecurityScheme/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key2 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n              break;\r\n            }\r\n          }\r\n          if (valid3) {\r\n            var data1 = data.type;\r\n            if (data1 === undefined) {\r\n              valid3 = false;\r\n              var err = {\r\n                keyword: \"required\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/APIKeySecurityScheme/required\",\r\n                params: {\r\n                  missingProperty: \"type\"\r\n                },\r\n                message: \"should have required property 'type'\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            } else {\r\n              var errs_3 = errors;\r\n              if (typeof data1 !== \"string\") {\r\n                var err = {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".type\",\r\n                  schemaPath: \"#/definitions/APIKeySecurityScheme/properties/type/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n              var schema3 = refVal31.properties.type.enum;\r\n              var valid3;\r\n              valid3 = false;\r\n              for (var i3 = 0; i3 < schema3.length; i3++)\r\n                if (equal(data1, schema3[i3])) {\r\n                  valid3 = true;\r\n                  break;\r\n                }\r\n              if (!valid3) {\r\n                var err = {\r\n                  keyword: \"enum\",\r\n                  dataPath: (dataPath || \"\") + \".type\",\r\n                  schemaPath: \"#/definitions/APIKeySecurityScheme/properties/type/enum\",\r\n                  params: {\r\n                    allowedValues: schema3\r\n                  },\r\n                  message: \"should be equal to one of the allowed values\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n              var valid3 = errors === errs_3;\r\n            }\r\n            if (valid3) {\r\n              if (data.name === undefined) {\r\n                valid3 = false;\r\n                var err = {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/definitions/APIKeySecurityScheme/required\",\r\n                  params: {\r\n                    missingProperty: \"name\"\r\n                  },\r\n                  message: \"should have required property 'name'\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              } else {\r\n                var errs_3 = errors;\r\n                if (typeof data.name !== \"string\") {\r\n                  var err = {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".name\",\r\n                    schemaPath: \"#/definitions/APIKeySecurityScheme/properties/name/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                }\r\n                var valid3 = errors === errs_3;\r\n              }\r\n              if (valid3) {\r\n                var data1 = data.in;\r\n                if (data1 === undefined) {\r\n                  valid3 = false;\r\n                  var err = {\r\n                    keyword: \"required\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/definitions/APIKeySecurityScheme/required\",\r\n                    params: {\r\n                      missingProperty: \"in\"\r\n                    },\r\n                    message: \"should have required property 'in'\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                } else {\r\n                  var errs_3 = errors;\r\n                  if (typeof data1 !== \"string\") {\r\n                    var err = {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".in\",\r\n                      schemaPath: \"#/definitions/APIKeySecurityScheme/properties/in/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var schema3 = refVal31.properties.in.enum;\r\n                  var valid3;\r\n                  valid3 = false;\r\n                  for (var i3 = 0; i3 < schema3.length; i3++)\r\n                    if (equal(data1, schema3[i3])) {\r\n                      valid3 = true;\r\n                      break;\r\n                    }\r\n                  if (!valid3) {\r\n                    var err = {\r\n                      keyword: \"enum\",\r\n                      dataPath: (dataPath || \"\") + \".in\",\r\n                      schemaPath: \"#/definitions/APIKeySecurityScheme/properties/in/enum\",\r\n                      params: {\r\n                        allowedValues: schema3\r\n                      },\r\n                      message: \"should be equal to one of the allowed values\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid3 = errors === errs_3;\r\n                }\r\n                if (valid3) {\r\n                  if (data.description === undefined) {\r\n                    valid3 = true;\r\n                  } else {\r\n                    var errs_3 = errors;\r\n                    if (typeof data.description !== \"string\") {\r\n                      var err = {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".description\",\r\n                        schemaPath: \"#/definitions/APIKeySecurityScheme/properties/description/type\",\r\n                        params: {\r\n                          type: \"string\"\r\n                        },\r\n                        message: \"should be string\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid3 = errors === errs_3;\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        var err = {\r\n          keyword: \"type\",\r\n          dataPath: (dataPath || \"\") + \"\",\r\n          schemaPath: \"#/definitions/APIKeySecurityScheme/type\",\r\n          params: {\r\n            type: \"object\"\r\n          },\r\n          message: \"should be object\"\r\n        };\r\n        if (vErrors === null) vErrors = [err];\r\n        else vErrors.push(err);\r\n        errors++;\r\n      }\r\n      var valid2 = errors === errs_2;\r\n      var valid1 = errors === errs_1;\r\n      if (valid1) valid0 = prevValid0 = true;\r\n      var errs_1 = errors;\r\n      var errs_2 = errors;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__2 = errors;\r\n          var valid3 = true;\r\n          for (var key2 in data) {\r\n            var isAdditional2 = !(\r\n              false ||\r\n              key2 == \"scheme\" ||\r\n              key2 == \"bearerFormat\" ||\r\n              key2 == \"description\" ||\r\n              key2 == \"type\" ||\r\n              pattern0.test(key2)\r\n            );\r\n            if (isAdditional2) {\r\n              valid3 = false;\r\n              var err = {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/HTTPSecurityScheme/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key2 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n              break;\r\n            }\r\n          }\r\n          if (valid3) {\r\n            if (data.scheme === undefined) {\r\n              valid3 = false;\r\n              var err = {\r\n                keyword: \"required\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/definitions/HTTPSecurityScheme/required\",\r\n                params: {\r\n                  missingProperty: \"scheme\"\r\n                },\r\n                message: \"should have required property 'scheme'\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            } else {\r\n              var errs_3 = errors;\r\n              if (typeof data.scheme !== \"string\") {\r\n                var err = {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".scheme\",\r\n                  schemaPath: \"#/definitions/HTTPSecurityScheme/properties/scheme/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n              var valid3 = errors === errs_3;\r\n            }\r\n            if (valid3) {\r\n              if (data.bearerFormat === undefined) {\r\n                valid3 = true;\r\n              } else {\r\n                var errs_3 = errors;\r\n                if (typeof data.bearerFormat !== \"string\") {\r\n                  var err = {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".bearerFormat\",\r\n                    schemaPath: \"#/definitions/HTTPSecurityScheme/properties/bearerFormat/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                }\r\n                var valid3 = errors === errs_3;\r\n              }\r\n              if (valid3) {\r\n                if (data.description === undefined) {\r\n                  valid3 = true;\r\n                } else {\r\n                  var errs_3 = errors;\r\n                  if (typeof data.description !== \"string\") {\r\n                    var err = {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".description\",\r\n                      schemaPath: \"#/definitions/HTTPSecurityScheme/properties/description/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid3 = errors === errs_3;\r\n                }\r\n                if (valid3) {\r\n                  var data1 = data.type;\r\n                  if (data1 === undefined) {\r\n                    valid3 = false;\r\n                    var err = {\r\n                      keyword: \"required\",\r\n                      dataPath: (dataPath || \"\") + \"\",\r\n                      schemaPath: \"#/definitions/HTTPSecurityScheme/required\",\r\n                      params: {\r\n                        missingProperty: \"type\"\r\n                      },\r\n                      message: \"should have required property 'type'\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  } else {\r\n                    var errs_3 = errors;\r\n                    if (typeof data1 !== \"string\") {\r\n                      var err = {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".type\",\r\n                        schemaPath: \"#/definitions/HTTPSecurityScheme/properties/type/type\",\r\n                        params: {\r\n                          type: \"string\"\r\n                        },\r\n                        message: \"should be string\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var schema3 = refVal32.properties.type.enum;\r\n                    var valid3;\r\n                    valid3 = false;\r\n                    for (var i3 = 0; i3 < schema3.length; i3++)\r\n                      if (equal(data1, schema3[i3])) {\r\n                        valid3 = true;\r\n                        break;\r\n                      }\r\n                    if (!valid3) {\r\n                      var err = {\r\n                        keyword: \"enum\",\r\n                        dataPath: (dataPath || \"\") + \".type\",\r\n                        schemaPath: \"#/definitions/HTTPSecurityScheme/properties/type/enum\",\r\n                        params: {\r\n                          allowedValues: schema3\r\n                        },\r\n                        message: \"should be equal to one of the allowed values\"\r\n                      };\r\n                      if (vErrors === null) vErrors = [err];\r\n                      else vErrors.push(err);\r\n                      errors++;\r\n                    }\r\n                    var valid3 = errors === errs_3;\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        var err = {\r\n          keyword: \"type\",\r\n          dataPath: (dataPath || \"\") + \"\",\r\n          schemaPath: \"#/definitions/HTTPSecurityScheme/type\",\r\n          params: {\r\n            type: \"object\"\r\n          },\r\n          message: \"should be object\"\r\n        };\r\n        if (vErrors === null) vErrors = [err];\r\n        else vErrors.push(err);\r\n        errors++;\r\n      }\r\n      if (errors === errs_2) {\r\n        var errs__2 = errors;\r\n        var prevValid2 = false;\r\n        var valid2 = false;\r\n        var errs_3 = errors;\r\n        if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n          var errs__3 = errors;\r\n          var valid4 = true;\r\n          var data1 = data.scheme;\r\n          if (data1 === undefined) {\r\n            valid4 = true;\r\n          } else {\r\n            var errs_4 = errors;\r\n            if (typeof data1 === \"string\") {\r\n              if (!pattern7.test(data1)) {\r\n                var err = {\r\n                  keyword: \"pattern\",\r\n                  dataPath: (dataPath || \"\") + \".scheme\",\r\n                  schemaPath: \"#/definitions/HTTPSecurityScheme/oneOf/0/properties/scheme/pattern\",\r\n                  params: {\r\n                    pattern: \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\r\n                  },\r\n                  message: 'should match pattern \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"'\r\n                };\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n            } else {\r\n              var err = {\r\n                keyword: \"type\",\r\n                dataPath: (dataPath || \"\") + \".scheme\",\r\n                schemaPath: \"#/definitions/HTTPSecurityScheme/oneOf/0/properties/scheme/type\",\r\n                params: {\r\n                  type: \"string\"\r\n                },\r\n                message: \"should be string\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            }\r\n            var valid4 = errors === errs_4;\r\n          }\r\n        }\r\n        var valid3 = errors === errs_3;\r\n        if (valid3) valid2 = prevValid2 = true;\r\n        var errs_3 = errors;\r\n        if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n          var errs__3 = errors;\r\n          var valid4 = true;\r\n          var data1 = data.scheme;\r\n          if (data1 === undefined) {\r\n            valid4 = true;\r\n          } else {\r\n            var errs_4 = errors;\r\n            var errs__4 = errors;\r\n            var errs_5 = errors;\r\n            if (typeof data1 === \"string\") {\r\n              if (!pattern7.test(data1)) {\r\n                var err = {};\r\n                if (vErrors === null) vErrors = [err];\r\n                else vErrors.push(err);\r\n                errors++;\r\n              }\r\n            } else {\r\n              var err = {};\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            }\r\n            var valid5 = errors === errs_5;\r\n            if (valid5) {\r\n              var err = {\r\n                keyword: \"not\",\r\n                dataPath: (dataPath || \"\") + \".scheme\",\r\n                schemaPath: \"#/definitions/HTTPSecurityScheme/oneOf/1/properties/scheme/not\",\r\n                params: {},\r\n                message: \"should NOT be valid\"\r\n              };\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            } else {\r\n              errors = errs__4;\r\n              if (vErrors !== null) {\r\n                if (errs__4) vErrors.length = errs__4;\r\n                else vErrors = null;\r\n              }\r\n            }\r\n            var valid4 = errors === errs_4;\r\n          }\r\n        }\r\n        if (errors === errs_3) {\r\n          var errs__3 = errors;\r\n          var errs_4 = errors;\r\n          if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n            var missing4;\r\n            if (data.bearerFormat === undefined && (missing4 = \".bearerFormat\")) {\r\n              var err = {};\r\n              if (vErrors === null) vErrors = [err];\r\n              else vErrors.push(err);\r\n              errors++;\r\n            }\r\n          }\r\n          var valid4 = errors === errs_4;\r\n          if (valid4) {\r\n            var err = {\r\n              keyword: \"not\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/definitions/HTTPSecurityScheme/oneOf/1/not\",\r\n              params: {},\r\n              message: \"should NOT be valid\"\r\n            };\r\n            if (vErrors === null) vErrors = [err];\r\n            else vErrors.push(err);\r\n            errors++;\r\n          } else {\r\n            errors = errs__3;\r\n            if (vErrors !== null) {\r\n              if (errs__3) vErrors.length = errs__3;\r\n              else vErrors = null;\r\n            }\r\n          }\r\n        }\r\n        var valid3 = errors === errs_3;\r\n        if (valid3 && prevValid2) valid2 = false;\r\n        else {\r\n          if (valid3) valid2 = prevValid2 = true;\r\n        }\r\n        if (!valid2) {\r\n          var err = {\r\n            keyword: \"oneOf\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/definitions/HTTPSecurityScheme/oneOf\",\r\n            params: {},\r\n            message: \"should match exactly one schema in oneOf\"\r\n          };\r\n          if (vErrors === null) vErrors = [err];\r\n          else vErrors.push(err);\r\n          errors++;\r\n        } else {\r\n          errors = errs__2;\r\n          if (vErrors !== null) {\r\n            if (errs__2) vErrors.length = errs__2;\r\n            else vErrors = null;\r\n          }\r\n        }\r\n      }\r\n      var valid2 = errors === errs_2;\r\n      var valid1 = errors === errs_1;\r\n      if (valid1 && prevValid0) valid0 = false;\r\n      else {\r\n        if (valid1) valid0 = prevValid0 = true;\r\n        var errs_1 = errors;\r\n        if (!refVal33(data, dataPath || \"\", parentData, parentDataProperty, rootData)) {\r\n          if (vErrors === null) vErrors = refVal33.errors;\r\n          else vErrors = vErrors.concat(refVal33.errors);\r\n          errors = vErrors.length;\r\n        }\r\n        var valid1 = errors === errs_1;\r\n        if (valid1 && prevValid0) valid0 = false;\r\n        else {\r\n          if (valid1) valid0 = prevValid0 = true;\r\n          var errs_1 = errors;\r\n          var errs_2 = errors;\r\n          if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n            if (true) {\r\n              var errs__2 = errors;\r\n              var valid3 = true;\r\n              for (var key2 in data) {\r\n                var isAdditional2 = !(\r\n                  false ||\r\n                  key2 == \"type\" ||\r\n                  key2 == \"openIdConnectUrl\" ||\r\n                  key2 == \"description\" ||\r\n                  pattern0.test(key2)\r\n                );\r\n                if (isAdditional2) {\r\n                  valid3 = false;\r\n                  var err = {\r\n                    keyword: \"additionalProperties\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/additionalProperties\",\r\n                    params: {\r\n                      additionalProperty: \"\" + key2 + \"\"\r\n                    },\r\n                    message: \"should NOT have additional properties\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                  break;\r\n                }\r\n              }\r\n              if (valid3) {\r\n                var data1 = data.type;\r\n                if (data1 === undefined) {\r\n                  valid3 = false;\r\n                  var err = {\r\n                    keyword: \"required\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/required\",\r\n                    params: {\r\n                      missingProperty: \"type\"\r\n                    },\r\n                    message: \"should have required property 'type'\"\r\n                  };\r\n                  if (vErrors === null) vErrors = [err];\r\n                  else vErrors.push(err);\r\n                  errors++;\r\n                } else {\r\n                  var errs_3 = errors;\r\n                  if (typeof data1 !== \"string\") {\r\n                    var err = {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".type\",\r\n                      schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/properties/type/type\",\r\n                      params: {\r\n                        type: \"string\"\r\n                      },\r\n                      message: \"should be string\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var schema3 = refVal39.properties.type.enum;\r\n                  var valid3;\r\n                  valid3 = false;\r\n                  for (var i3 = 0; i3 < schema3.length; i3++)\r\n                    if (equal(data1, schema3[i3])) {\r\n                      valid3 = true;\r\n                      break;\r\n                    }\r\n                  if (!valid3) {\r\n                    var err = {\r\n                      keyword: \"enum\",\r\n                      dataPath: (dataPath || \"\") + \".type\",\r\n                      schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/properties/type/enum\",\r\n                      params: {\r\n                        allowedValues: schema3\r\n                      },\r\n                      message: \"should be equal to one of the allowed values\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  }\r\n                  var valid3 = errors === errs_3;\r\n                }\r\n                if (valid3) {\r\n                  var data1 = data.openIdConnectUrl;\r\n                  if (data1 === undefined) {\r\n                    valid3 = false;\r\n                    var err = {\r\n                      keyword: \"required\",\r\n                      dataPath: (dataPath || \"\") + \"\",\r\n                      schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/required\",\r\n                      params: {\r\n                        missingProperty: \"openIdConnectUrl\"\r\n                      },\r\n                      message: \"should have required property 'openIdConnectUrl'\"\r\n                    };\r\n                    if (vErrors === null) vErrors = [err];\r\n                    else vErrors.push(err);\r\n                    errors++;\r\n                  } else {\r\n                    var errs_3 = errors;\r\n                    if (errors === errs_3) {\r\n                      if (typeof data1 === \"string\") {\r\n                        if (!formats[\"uri-reference\"].test(data1)) {\r\n                          var err = {\r\n                            keyword: \"format\",\r\n                            dataPath: (dataPath || \"\") + \".openIdConnectUrl\",\r\n                            schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/properties/openIdConnectUrl/format\",\r\n                            params: {\r\n                              format: \"uri-reference\"\r\n                            },\r\n                            message: 'should match format \"uri-reference\"'\r\n                          };\r\n                          if (vErrors === null) vErrors = [err];\r\n                          else vErrors.push(err);\r\n                          errors++;\r\n                        }\r\n                      } else {\r\n                        var err = {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".openIdConnectUrl\",\r\n                          schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/properties/openIdConnectUrl/type\",\r\n                          params: {\r\n                            type: \"string\"\r\n                          },\r\n                          message: \"should be string\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                    }\r\n                    var valid3 = errors === errs_3;\r\n                  }\r\n                  if (valid3) {\r\n                    if (data.description === undefined) {\r\n                      valid3 = true;\r\n                    } else {\r\n                      var errs_3 = errors;\r\n                      if (typeof data.description !== \"string\") {\r\n                        var err = {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".description\",\r\n                          schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/properties/description/type\",\r\n                          params: {\r\n                            type: \"string\"\r\n                          },\r\n                          message: \"should be string\"\r\n                        };\r\n                        if (vErrors === null) vErrors = [err];\r\n                        else vErrors.push(err);\r\n                        errors++;\r\n                      }\r\n                      var valid3 = errors === errs_3;\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          } else {\r\n            var err = {\r\n              keyword: \"type\",\r\n              dataPath: (dataPath || \"\") + \"\",\r\n              schemaPath: \"#/definitions/OpenIdConnectSecurityScheme/type\",\r\n              params: {\r\n                type: \"object\"\r\n              },\r\n              message: \"should be object\"\r\n            };\r\n            if (vErrors === null) vErrors = [err];\r\n            else vErrors.push(err);\r\n            errors++;\r\n          }\r\n          var valid2 = errors === errs_2;\r\n          var valid1 = errors === errs_1;\r\n          if (valid1 && prevValid0) valid0 = false;\r\n          else {\r\n            if (valid1) valid0 = prevValid0 = true;\r\n          }\r\n        }\r\n      }\r\n      if (!valid0) {\r\n        var err = {\r\n          keyword: \"oneOf\",\r\n          dataPath: (dataPath || \"\") + \"\",\r\n          schemaPath: \"#/oneOf\",\r\n          params: {},\r\n          message: \"should match exactly one schema in oneOf\"\r\n        };\r\n        if (vErrors === null) vErrors = [err];\r\n        else vErrors.push(err);\r\n        errors++;\r\n        validate.errors = vErrors;\r\n        return false;\r\n      } else {\r\n        errors = errs__0;\r\n        if (vErrors !== null) {\r\n          if (errs__0) vErrors.length = errs__0;\r\n          else vErrors = null;\r\n        }\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal30.schema = {\r\n    oneOf: [\r\n      {\r\n        $ref: \"#/definitions/APIKeySecurityScheme\"\r\n      },\r\n      {\r\n        $ref: \"#/definitions/HTTPSecurityScheme\"\r\n      },\r\n      {\r\n        $ref: \"#/definitions/OAuth2SecurityScheme\"\r\n      },\r\n      {\r\n        $ref: \"#/definitions/OpenIdConnectSecurityScheme\"\r\n      }\r\n    ]\r\n  };\r\n  refVal30.errors = null;\r\n  refVal[30] = refVal30;\r\n  var refVal31 = {\r\n    type: \"object\",\r\n    required: [\"type\", \"name\", \"in\"],\r\n    properties: {\r\n      type: {\r\n        type: \"string\",\r\n        enum: [\"apiKey\"]\r\n      },\r\n      name: {\r\n        type: \"string\"\r\n      },\r\n      in: {\r\n        type: \"string\",\r\n        enum: [\"header\", \"query\", \"cookie\"]\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[31] = refVal31;\r\n  var refVal32 = {\r\n    type: \"object\",\r\n    required: [\"scheme\", \"type\"],\r\n    properties: {\r\n      scheme: {\r\n        type: \"string\"\r\n      },\r\n      bearerFormat: {\r\n        type: \"string\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      },\r\n      type: {\r\n        type: \"string\",\r\n        enum: [\"http\"]\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false,\r\n    oneOf: [\r\n      {\r\n        description: \"Bearer\",\r\n        properties: {\r\n          scheme: {\r\n            type: \"string\",\r\n            pattern: \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\r\n          }\r\n        }\r\n      },\r\n      {\r\n        description: \"Non Bearer\",\r\n        not: {\r\n          required: [\"bearerFormat\"]\r\n        },\r\n        properties: {\r\n          scheme: {\r\n            not: {\r\n              type: \"string\",\r\n              pattern: \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\r\n            }\r\n          }\r\n        }\r\n      }\r\n    ]\r\n  };\r\n  refVal[32] = refVal32;\r\n  var refVal33 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (rootData === undefined) rootData = data;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        if (true) {\r\n          var errs__0 = errors;\r\n          var valid1 = true;\r\n          for (var key0 in data) {\r\n            var isAdditional0 = !(false || key0 == \"type\" || key0 == \"flows\" || key0 == \"description\" || pattern0.test(key0));\r\n            if (isAdditional0) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"additionalProperties\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/additionalProperties\",\r\n                  params: {\r\n                    additionalProperty: \"\" + key0 + \"\"\r\n                  },\r\n                  message: \"should NOT have additional properties\"\r\n                }\r\n              ];\r\n              return false;\r\n              break;\r\n            }\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.type;\r\n            if (data1 === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"type\"\r\n                  },\r\n                  message: \"should have required property 'type'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (typeof data1 !== \"string\") {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".type\",\r\n                    schemaPath: \"#/properties/type/type\",\r\n                    params: {\r\n                      type: \"string\"\r\n                    },\r\n                    message: \"should be string\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var schema1 = validate.schema.properties.type.enum;\r\n              var valid1;\r\n              valid1 = false;\r\n              for (var i1 = 0; i1 < schema1.length; i1++)\r\n                if (equal(data1, schema1[i1])) {\r\n                  valid1 = true;\r\n                  break;\r\n                }\r\n              if (!valid1) {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"enum\",\r\n                    dataPath: (dataPath || \"\") + \".type\",\r\n                    schemaPath: \"#/properties/type/enum\",\r\n                    params: {\r\n                      allowedValues: schema1\r\n                    },\r\n                    message: \"should be equal to one of the allowed values\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              if (data.flows === undefined) {\r\n                valid1 = false;\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"required\",\r\n                    dataPath: (dataPath || \"\") + \"\",\r\n                    schemaPath: \"#/required\",\r\n                    params: {\r\n                      missingProperty: \"flows\"\r\n                    },\r\n                    message: \"should have required property 'flows'\"\r\n                  }\r\n                ];\r\n                return false;\r\n              } else {\r\n                var errs_1 = errors;\r\n                if (!refVal34(data.flows, (dataPath || \"\") + \".flows\", data, \"flows\", rootData)) {\r\n                  if (vErrors === null) vErrors = refVal34.errors;\r\n                  else vErrors = vErrors.concat(refVal34.errors);\r\n                  errors = vErrors.length;\r\n                }\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                if (data.description === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (typeof data.description !== \"string\") {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".description\",\r\n                        schemaPath: \"#/properties/description/type\",\r\n                        params: {\r\n                          type: \"string\"\r\n                        },\r\n                        message: \"should be string\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal33.schema = {\r\n    type: \"object\",\r\n    required: [\"type\", \"flows\"],\r\n    properties: {\r\n      type: {\r\n        type: \"string\",\r\n        enum: [\"oauth2\"]\r\n      },\r\n      flows: {\r\n        $ref: \"#/definitions/OAuthFlows\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal33.errors = null;\r\n  refVal[33] = refVal33;\r\n  var refVal34 = (function () {\r\n    var pattern0 = new RegExp(\"^x-\");\r\n    var pattern1 = new RegExp(\"^3\\\\.0\\\\.\\\\d(-.+)?$\");\r\n    var pattern2 = new RegExp(\"^\\\\/\");\r\n    var pattern3 = new RegExp(\"^(get|put|post|delete|options|head|patch|trace)$\");\r\n    var pattern4 = new RegExp(\"^\\\\$ref$\");\r\n    var pattern5 = new RegExp(\"^[1-5](?:\\\\d{2}|XX)$\");\r\n    var pattern6 = new RegExp(\"^[a-zA-Z0-9\\\\.\\\\-_]+$\");\r\n    var pattern7 = new RegExp(\"^[Bb][Ee][Aa][Rr][Ee][Rr]$\");\r\n    return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n      \"use strict\";\r\n      var vErrors = null;\r\n      var errors = 0;\r\n      if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(\r\n            false ||\r\n            key0 == \"implicit\" ||\r\n            key0 == \"password\" ||\r\n            key0 == \"clientCredentials\" ||\r\n            key0 == \"authorizationCode\" ||\r\n            pattern0.test(key0)\r\n          );\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          var data1 = data.implicit;\r\n          if (data1 === undefined) {\r\n            valid1 = true;\r\n          } else {\r\n            var errs_1 = errors;\r\n            var errs_2 = errors;\r\n            if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n              if (true) {\r\n                var errs__2 = errors;\r\n                var valid3 = true;\r\n                for (var key2 in data1) {\r\n                  var isAdditional2 = !(\r\n                    false ||\r\n                    key2 == \"authorizationUrl\" ||\r\n                    key2 == \"refreshUrl\" ||\r\n                    key2 == \"scopes\" ||\r\n                    pattern0.test(key2)\r\n                  );\r\n                  if (isAdditional2) {\r\n                    valid3 = false;\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"additionalProperties\",\r\n                        dataPath: (dataPath || \"\") + \".implicit\",\r\n                        schemaPath: \"#/definitions/ImplicitOAuthFlow/additionalProperties\",\r\n                        params: {\r\n                          additionalProperty: \"\" + key2 + \"\"\r\n                        },\r\n                        message: \"should NOT have additional properties\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                    break;\r\n                  }\r\n                }\r\n                if (valid3) {\r\n                  var data2 = data1.authorizationUrl;\r\n                  if (data2 === undefined) {\r\n                    valid3 = false;\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"required\",\r\n                        dataPath: (dataPath || \"\") + \".implicit\",\r\n                        schemaPath: \"#/definitions/ImplicitOAuthFlow/required\",\r\n                        params: {\r\n                          missingProperty: \"authorizationUrl\"\r\n                        },\r\n                        message: \"should have required property 'authorizationUrl'\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  } else {\r\n                    var errs_3 = errors;\r\n                    if (errors === errs_3) {\r\n                      if (typeof data2 === \"string\") {\r\n                        if (!formats[\"uri-reference\"].test(data2)) {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"format\",\r\n                              dataPath: (dataPath || \"\") + \".implicit.authorizationUrl\",\r\n                              schemaPath: \"#/definitions/ImplicitOAuthFlow/properties/authorizationUrl/format\",\r\n                              params: {\r\n                                format: \"uri-reference\"\r\n                              },\r\n                              message: 'should match format \"uri-reference\"'\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                      } else {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".implicit.authorizationUrl\",\r\n                            schemaPath: \"#/definitions/ImplicitOAuthFlow/properties/authorizationUrl/type\",\r\n                            params: {\r\n                              type: \"string\"\r\n                            },\r\n                            message: \"should be string\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                    }\r\n                    var valid3 = errors === errs_3;\r\n                  }\r\n                  if (valid3) {\r\n                    var data2 = data1.refreshUrl;\r\n                    if (data2 === undefined) {\r\n                      valid3 = true;\r\n                    } else {\r\n                      var errs_3 = errors;\r\n                      if (errors === errs_3) {\r\n                        if (typeof data2 === \"string\") {\r\n                          if (!formats[\"uri-reference\"].test(data2)) {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"format\",\r\n                                dataPath: (dataPath || \"\") + \".implicit.refreshUrl\",\r\n                                schemaPath: \"#/definitions/ImplicitOAuthFlow/properties/refreshUrl/format\",\r\n                                params: {\r\n                                  format: \"uri-reference\"\r\n                                },\r\n                                message: 'should match format \"uri-reference\"'\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                        } else {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".implicit.refreshUrl\",\r\n                              schemaPath: \"#/definitions/ImplicitOAuthFlow/properties/refreshUrl/type\",\r\n                              params: {\r\n                                type: \"string\"\r\n                              },\r\n                              message: \"should be string\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                      }\r\n                      var valid3 = errors === errs_3;\r\n                    }\r\n                    if (valid3) {\r\n                      var data2 = data1.scopes;\r\n                      if (data2 === undefined) {\r\n                        valid3 = false;\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"required\",\r\n                            dataPath: (dataPath || \"\") + \".implicit\",\r\n                            schemaPath: \"#/definitions/ImplicitOAuthFlow/required\",\r\n                            params: {\r\n                              missingProperty: \"scopes\"\r\n                            },\r\n                            message: \"should have required property 'scopes'\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      } else {\r\n                        var errs_3 = errors;\r\n                        if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                          var errs__3 = errors;\r\n                          var valid4 = true;\r\n                          for (var key3 in data2) {\r\n                            var errs_4 = errors;\r\n                            if (typeof data2[key3] !== \"string\") {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".implicit.scopes['\" + key3 + \"']\",\r\n                                  schemaPath: \"#/definitions/ImplicitOAuthFlow/properties/scopes/additionalProperties/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid4 = errors === errs_4;\r\n                            if (!valid4) break;\r\n                          }\r\n                        } else {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".implicit.scopes\",\r\n                              schemaPath: \"#/definitions/ImplicitOAuthFlow/properties/scopes/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid3 = errors === errs_3;\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            } else {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".implicit\",\r\n                  schemaPath: \"#/definitions/ImplicitOAuthFlow/type\",\r\n                  params: {\r\n                    type: \"object\"\r\n                  },\r\n                  message: \"should be object\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid2 = errors === errs_2;\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            var data1 = data.password;\r\n            if (data1 === undefined) {\r\n              valid1 = true;\r\n            } else {\r\n              var errs_1 = errors;\r\n              var errs_2 = errors;\r\n              if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                if (true) {\r\n                  var errs__2 = errors;\r\n                  var valid3 = true;\r\n                  for (var key2 in data1) {\r\n                    var isAdditional2 = !(\r\n                      false ||\r\n                      key2 == \"tokenUrl\" ||\r\n                      key2 == \"refreshUrl\" ||\r\n                      key2 == \"scopes\" ||\r\n                      pattern0.test(key2)\r\n                    );\r\n                    if (isAdditional2) {\r\n                      valid3 = false;\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"additionalProperties\",\r\n                          dataPath: (dataPath || \"\") + \".password\",\r\n                          schemaPath: \"#/definitions/PasswordOAuthFlow/additionalProperties\",\r\n                          params: {\r\n                            additionalProperty: \"\" + key2 + \"\"\r\n                          },\r\n                          message: \"should NOT have additional properties\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                      break;\r\n                    }\r\n                  }\r\n                  if (valid3) {\r\n                    var data2 = data1.tokenUrl;\r\n                    if (data2 === undefined) {\r\n                      valid3 = false;\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"required\",\r\n                          dataPath: (dataPath || \"\") + \".password\",\r\n                          schemaPath: \"#/definitions/PasswordOAuthFlow/required\",\r\n                          params: {\r\n                            missingProperty: \"tokenUrl\"\r\n                          },\r\n                          message: \"should have required property 'tokenUrl'\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    } else {\r\n                      var errs_3 = errors;\r\n                      if (errors === errs_3) {\r\n                        if (typeof data2 === \"string\") {\r\n                          if (!formats[\"uri-reference\"].test(data2)) {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"format\",\r\n                                dataPath: (dataPath || \"\") + \".password.tokenUrl\",\r\n                                schemaPath: \"#/definitions/PasswordOAuthFlow/properties/tokenUrl/format\",\r\n                                params: {\r\n                                  format: \"uri-reference\"\r\n                                },\r\n                                message: 'should match format \"uri-reference\"'\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                        } else {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".password.tokenUrl\",\r\n                              schemaPath: \"#/definitions/PasswordOAuthFlow/properties/tokenUrl/type\",\r\n                              params: {\r\n                                type: \"string\"\r\n                              },\r\n                              message: \"should be string\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                      }\r\n                      var valid3 = errors === errs_3;\r\n                    }\r\n                    if (valid3) {\r\n                      var data2 = data1.refreshUrl;\r\n                      if (data2 === undefined) {\r\n                        valid3 = true;\r\n                      } else {\r\n                        var errs_3 = errors;\r\n                        if (errors === errs_3) {\r\n                          if (typeof data2 === \"string\") {\r\n                            if (!formats[\"uri-reference\"].test(data2)) {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"format\",\r\n                                  dataPath: (dataPath || \"\") + \".password.refreshUrl\",\r\n                                  schemaPath: \"#/definitions/PasswordOAuthFlow/properties/refreshUrl/format\",\r\n                                  params: {\r\n                                    format: \"uri-reference\"\r\n                                  },\r\n                                  message: 'should match format \"uri-reference\"'\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                          } else {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".password.refreshUrl\",\r\n                                schemaPath: \"#/definitions/PasswordOAuthFlow/properties/refreshUrl/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                        }\r\n                        var valid3 = errors === errs_3;\r\n                      }\r\n                      if (valid3) {\r\n                        var data2 = data1.scopes;\r\n                        if (data2 === undefined) {\r\n                          valid3 = false;\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"required\",\r\n                              dataPath: (dataPath || \"\") + \".password\",\r\n                              schemaPath: \"#/definitions/PasswordOAuthFlow/required\",\r\n                              params: {\r\n                                missingProperty: \"scopes\"\r\n                              },\r\n                              message: \"should have required property 'scopes'\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        } else {\r\n                          var errs_3 = errors;\r\n                          if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                            var errs__3 = errors;\r\n                            var valid4 = true;\r\n                            for (var key3 in data2) {\r\n                              var errs_4 = errors;\r\n                              if (typeof data2[key3] !== \"string\") {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".password.scopes['\" + key3 + \"']\",\r\n                                    schemaPath: \"#/definitions/PasswordOAuthFlow/properties/scopes/additionalProperties/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                              var valid4 = errors === errs_4;\r\n                              if (!valid4) break;\r\n                            }\r\n                          } else {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".password.scopes\",\r\n                                schemaPath: \"#/definitions/PasswordOAuthFlow/properties/scopes/type\",\r\n                                params: {\r\n                                  type: \"object\"\r\n                                },\r\n                                message: \"should be object\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              } else {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"type\",\r\n                    dataPath: (dataPath || \"\") + \".password\",\r\n                    schemaPath: \"#/definitions/PasswordOAuthFlow/type\",\r\n                    params: {\r\n                      type: \"object\"\r\n                    },\r\n                    message: \"should be object\"\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n              var valid2 = errors === errs_2;\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.clientCredentials;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                var errs_2 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  if (true) {\r\n                    var errs__2 = errors;\r\n                    var valid3 = true;\r\n                    for (var key2 in data1) {\r\n                      var isAdditional2 = !(\r\n                        false ||\r\n                        key2 == \"tokenUrl\" ||\r\n                        key2 == \"refreshUrl\" ||\r\n                        key2 == \"scopes\" ||\r\n                        pattern0.test(key2)\r\n                      );\r\n                      if (isAdditional2) {\r\n                        valid3 = false;\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"additionalProperties\",\r\n                            dataPath: (dataPath || \"\") + \".clientCredentials\",\r\n                            schemaPath: \"#/definitions/ClientCredentialsFlow/additionalProperties\",\r\n                            params: {\r\n                              additionalProperty: \"\" + key2 + \"\"\r\n                            },\r\n                            message: \"should NOT have additional properties\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                        break;\r\n                      }\r\n                    }\r\n                    if (valid3) {\r\n                      var data2 = data1.tokenUrl;\r\n                      if (data2 === undefined) {\r\n                        valid3 = false;\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"required\",\r\n                            dataPath: (dataPath || \"\") + \".clientCredentials\",\r\n                            schemaPath: \"#/definitions/ClientCredentialsFlow/required\",\r\n                            params: {\r\n                              missingProperty: \"tokenUrl\"\r\n                            },\r\n                            message: \"should have required property 'tokenUrl'\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      } else {\r\n                        var errs_3 = errors;\r\n                        if (errors === errs_3) {\r\n                          if (typeof data2 === \"string\") {\r\n                            if (!formats[\"uri-reference\"].test(data2)) {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"format\",\r\n                                  dataPath: (dataPath || \"\") + \".clientCredentials.tokenUrl\",\r\n                                  schemaPath: \"#/definitions/ClientCredentialsFlow/properties/tokenUrl/format\",\r\n                                  params: {\r\n                                    format: \"uri-reference\"\r\n                                  },\r\n                                  message: 'should match format \"uri-reference\"'\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                          } else {\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"type\",\r\n                                dataPath: (dataPath || \"\") + \".clientCredentials.tokenUrl\",\r\n                                schemaPath: \"#/definitions/ClientCredentialsFlow/properties/tokenUrl/type\",\r\n                                params: {\r\n                                  type: \"string\"\r\n                                },\r\n                                message: \"should be string\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          }\r\n                        }\r\n                        var valid3 = errors === errs_3;\r\n                      }\r\n                      if (valid3) {\r\n                        var data2 = data1.refreshUrl;\r\n                        if (data2 === undefined) {\r\n                          valid3 = true;\r\n                        } else {\r\n                          var errs_3 = errors;\r\n                          if (errors === errs_3) {\r\n                            if (typeof data2 === \"string\") {\r\n                              if (!formats[\"uri-reference\"].test(data2)) {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"format\",\r\n                                    dataPath: (dataPath || \"\") + \".clientCredentials.refreshUrl\",\r\n                                    schemaPath: \"#/definitions/ClientCredentialsFlow/properties/refreshUrl/format\",\r\n                                    params: {\r\n                                      format: \"uri-reference\"\r\n                                    },\r\n                                    message: 'should match format \"uri-reference\"'\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".clientCredentials.refreshUrl\",\r\n                                  schemaPath: \"#/definitions/ClientCredentialsFlow/properties/refreshUrl/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                        }\r\n                        if (valid3) {\r\n                          var data2 = data1.scopes;\r\n                          if (data2 === undefined) {\r\n                            valid3 = false;\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".clientCredentials\",\r\n                                schemaPath: \"#/definitions/ClientCredentialsFlow/required\",\r\n                                params: {\r\n                                  missingProperty: \"scopes\"\r\n                                },\r\n                                message: \"should have required property 'scopes'\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          } else {\r\n                            var errs_3 = errors;\r\n                            if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                              var errs__3 = errors;\r\n                              var valid4 = true;\r\n                              for (var key3 in data2) {\r\n                                var errs_4 = errors;\r\n                                if (typeof data2[key3] !== \"string\") {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".clientCredentials.scopes['\" + key3 + \"']\",\r\n                                      schemaPath: \"#/definitions/ClientCredentialsFlow/properties/scopes/additionalProperties/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                var valid4 = errors === errs_4;\r\n                                if (!valid4) break;\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".clientCredentials.scopes\",\r\n                                  schemaPath: \"#/definitions/ClientCredentialsFlow/properties/scopes/type\",\r\n                                  params: {\r\n                                    type: \"object\"\r\n                                  },\r\n                                  message: \"should be object\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid3 = errors === errs_3;\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".clientCredentials\",\r\n                      schemaPath: \"#/definitions/ClientCredentialsFlow/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid2 = errors === errs_2;\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.authorizationCode;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  var errs_2 = errors;\r\n                  if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                    if (true) {\r\n                      var errs__2 = errors;\r\n                      var valid3 = true;\r\n                      for (var key2 in data1) {\r\n                        var isAdditional2 = !(\r\n                          false ||\r\n                          key2 == \"authorizationUrl\" ||\r\n                          key2 == \"tokenUrl\" ||\r\n                          key2 == \"refreshUrl\" ||\r\n                          key2 == \"scopes\" ||\r\n                          pattern0.test(key2)\r\n                        );\r\n                        if (isAdditional2) {\r\n                          valid3 = false;\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"additionalProperties\",\r\n                              dataPath: (dataPath || \"\") + \".authorizationCode\",\r\n                              schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/additionalProperties\",\r\n                              params: {\r\n                                additionalProperty: \"\" + key2 + \"\"\r\n                              },\r\n                              message: \"should NOT have additional properties\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                          break;\r\n                        }\r\n                      }\r\n                      if (valid3) {\r\n                        var data2 = data1.authorizationUrl;\r\n                        if (data2 === undefined) {\r\n                          valid3 = false;\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"required\",\r\n                              dataPath: (dataPath || \"\") + \".authorizationCode\",\r\n                              schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/required\",\r\n                              params: {\r\n                                missingProperty: \"authorizationUrl\"\r\n                              },\r\n                              message: \"should have required property 'authorizationUrl'\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        } else {\r\n                          var errs_3 = errors;\r\n                          if (errors === errs_3) {\r\n                            if (typeof data2 === \"string\") {\r\n                              if (!formats[\"uri-reference\"].test(data2)) {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"format\",\r\n                                    dataPath: (dataPath || \"\") + \".authorizationCode.authorizationUrl\",\r\n                                    schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/authorizationUrl/format\",\r\n                                    params: {\r\n                                      format: \"uri-reference\"\r\n                                    },\r\n                                    message: 'should match format \"uri-reference\"'\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".authorizationCode.authorizationUrl\",\r\n                                  schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/authorizationUrl/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                        }\r\n                        if (valid3) {\r\n                          var data2 = data1.tokenUrl;\r\n                          if (data2 === undefined) {\r\n                            valid3 = false;\r\n                            validate.errors = [\r\n                              {\r\n                                keyword: \"required\",\r\n                                dataPath: (dataPath || \"\") + \".authorizationCode\",\r\n                                schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/required\",\r\n                                params: {\r\n                                  missingProperty: \"tokenUrl\"\r\n                                },\r\n                                message: \"should have required property 'tokenUrl'\"\r\n                              }\r\n                            ];\r\n                            return false;\r\n                          } else {\r\n                            var errs_3 = errors;\r\n                            if (errors === errs_3) {\r\n                              if (typeof data2 === \"string\") {\r\n                                if (!formats[\"uri-reference\"].test(data2)) {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"format\",\r\n                                      dataPath: (dataPath || \"\") + \".authorizationCode.tokenUrl\",\r\n                                      schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/tokenUrl/format\",\r\n                                      params: {\r\n                                        format: \"uri-reference\"\r\n                                      },\r\n                                      message: 'should match format \"uri-reference\"'\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              } else {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"type\",\r\n                                    dataPath: (dataPath || \"\") + \".authorizationCode.tokenUrl\",\r\n                                    schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/tokenUrl/type\",\r\n                                    params: {\r\n                                      type: \"string\"\r\n                                    },\r\n                                    message: \"should be string\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            }\r\n                            var valid3 = errors === errs_3;\r\n                          }\r\n                          if (valid3) {\r\n                            var data2 = data1.refreshUrl;\r\n                            if (data2 === undefined) {\r\n                              valid3 = true;\r\n                            } else {\r\n                              var errs_3 = errors;\r\n                              if (errors === errs_3) {\r\n                                if (typeof data2 === \"string\") {\r\n                                  if (!formats[\"uri-reference\"].test(data2)) {\r\n                                    validate.errors = [\r\n                                      {\r\n                                        keyword: \"format\",\r\n                                        dataPath: (dataPath || \"\") + \".authorizationCode.refreshUrl\",\r\n                                        schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/refreshUrl/format\",\r\n                                        params: {\r\n                                          format: \"uri-reference\"\r\n                                        },\r\n                                        message: 'should match format \"uri-reference\"'\r\n                                      }\r\n                                    ];\r\n                                    return false;\r\n                                  }\r\n                                } else {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".authorizationCode.refreshUrl\",\r\n                                      schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/refreshUrl/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                              }\r\n                              var valid3 = errors === errs_3;\r\n                            }\r\n                            if (valid3) {\r\n                              var data2 = data1.scopes;\r\n                              if (data2 === undefined) {\r\n                                valid3 = false;\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"required\",\r\n                                    dataPath: (dataPath || \"\") + \".authorizationCode\",\r\n                                    schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/required\",\r\n                                    params: {\r\n                                      missingProperty: \"scopes\"\r\n                                    },\r\n                                    message: \"should have required property 'scopes'\"\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              } else {\r\n                                var errs_3 = errors;\r\n                                if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                                  var errs__3 = errors;\r\n                                  var valid4 = true;\r\n                                  for (var key3 in data2) {\r\n                                    var errs_4 = errors;\r\n                                    if (typeof data2[key3] !== \"string\") {\r\n                                      validate.errors = [\r\n                                        {\r\n                                          keyword: \"type\",\r\n                                          dataPath: (dataPath || \"\") + \".authorizationCode.scopes['\" + key3 + \"']\",\r\n                                          schemaPath:\r\n                                            \"#/definitions/AuthorizationCodeOAuthFlow/properties/scopes/additionalProperties/type\",\r\n                                          params: {\r\n                                            type: \"string\"\r\n                                          },\r\n                                          message: \"should be string\"\r\n                                        }\r\n                                      ];\r\n                                      return false;\r\n                                    }\r\n                                    var valid4 = errors === errs_4;\r\n                                    if (!valid4) break;\r\n                                  }\r\n                                } else {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".authorizationCode.scopes\",\r\n                                      schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/properties/scopes/type\",\r\n                                      params: {\r\n                                        type: \"object\"\r\n                                      },\r\n                                      message: \"should be object\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                var valid3 = errors === errs_3;\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                      }\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".authorizationCode\",\r\n                        schemaPath: \"#/definitions/AuthorizationCodeOAuthFlow/type\",\r\n                        params: {\r\n                          type: \"object\"\r\n                        },\r\n                        message: \"should be object\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid2 = errors === errs_2;\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        validate.errors = [\r\n          {\r\n            keyword: \"type\",\r\n            dataPath: (dataPath || \"\") + \"\",\r\n            schemaPath: \"#/type\",\r\n            params: {\r\n              type: \"object\"\r\n            },\r\n            message: \"should be object\"\r\n          }\r\n        ];\r\n        return false;\r\n      }\r\n      validate.errors = vErrors;\r\n      return errors === 0;\r\n    };\r\n  })();\r\n  refVal34.schema = {\r\n    type: \"object\",\r\n    properties: {\r\n      implicit: {\r\n        $ref: \"#/definitions/ImplicitOAuthFlow\"\r\n      },\r\n      password: {\r\n        $ref: \"#/definitions/PasswordOAuthFlow\"\r\n      },\r\n      clientCredentials: {\r\n        $ref: \"#/definitions/ClientCredentialsFlow\"\r\n      },\r\n      authorizationCode: {\r\n        $ref: \"#/definitions/AuthorizationCodeOAuthFlow\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal34.errors = null;\r\n  refVal[34] = refVal34;\r\n  var refVal35 = {\r\n    type: \"object\",\r\n    required: [\"authorizationUrl\", \"scopes\"],\r\n    properties: {\r\n      authorizationUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      refreshUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      scopes: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          type: \"string\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[35] = refVal35;\r\n  var refVal36 = {\r\n    type: \"object\",\r\n    required: [\"tokenUrl\", \"scopes\"],\r\n    properties: {\r\n      tokenUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      refreshUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      scopes: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          type: \"string\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[36] = refVal36;\r\n  var refVal37 = {\r\n    type: \"object\",\r\n    required: [\"tokenUrl\", \"scopes\"],\r\n    properties: {\r\n      tokenUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      refreshUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      scopes: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          type: \"string\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[37] = refVal37;\r\n  var refVal38 = {\r\n    type: \"object\",\r\n    required: [\"authorizationUrl\", \"tokenUrl\", \"scopes\"],\r\n    properties: {\r\n      authorizationUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      tokenUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      refreshUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      scopes: {\r\n        type: \"object\",\r\n        additionalProperties: {\r\n          type: \"string\"\r\n        }\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[38] = refVal38;\r\n  var refVal39 = {\r\n    type: \"object\",\r\n    required: [\"type\", \"openIdConnectUrl\"],\r\n    properties: {\r\n      type: {\r\n        type: \"string\",\r\n        enum: [\"openIdConnect\"]\r\n      },\r\n      openIdConnectUrl: {\r\n        type: \"string\",\r\n        format: \"uri-reference\"\r\n      },\r\n      description: {\r\n        type: \"string\"\r\n      }\r\n    },\r\n    patternProperties: {\r\n      \"^x-\": {}\r\n    },\r\n    additionalProperties: false\r\n  };\r\n  refVal[39] = refVal39;\r\n  return function validate(data, dataPath, parentData, parentDataProperty, rootData) {\r\n    \"use strict\"; /*# sourceURL=https://spec.openapis.org/oas/3.0/schema/2021-09-28 */\r\n    var vErrors = null;\r\n    var errors = 0;\r\n    if (rootData === undefined) rootData = data;\r\n    if (data && typeof data === \"object\" && !Array.isArray(data)) {\r\n      if (true) {\r\n        var errs__0 = errors;\r\n        var valid1 = true;\r\n        for (var key0 in data) {\r\n          var isAdditional0 = !(false || validate.schema.properties[key0] || pattern0.test(key0));\r\n          if (isAdditional0) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"additionalProperties\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/additionalProperties\",\r\n                params: {\r\n                  additionalProperty: \"\" + key0 + \"\"\r\n                },\r\n                message: \"should NOT have additional properties\"\r\n              }\r\n            ];\r\n            return false;\r\n            break;\r\n          }\r\n        }\r\n        if (valid1) {\r\n          var data1 = data.openapi;\r\n          if (data1 === undefined) {\r\n            valid1 = false;\r\n            validate.errors = [\r\n              {\r\n                keyword: \"required\",\r\n                dataPath: (dataPath || \"\") + \"\",\r\n                schemaPath: \"#/required\",\r\n                params: {\r\n                  missingProperty: \"openapi\"\r\n                },\r\n                message: \"should have required property 'openapi'\"\r\n              }\r\n            ];\r\n            return false;\r\n          } else {\r\n            var errs_1 = errors;\r\n            if (typeof data1 === \"string\") {\r\n              if (!pattern1.test(data1)) {\r\n                validate.errors = [\r\n                  {\r\n                    keyword: \"pattern\",\r\n                    dataPath: (dataPath || \"\") + \".openapi\",\r\n                    schemaPath: \"#/properties/openapi/pattern\",\r\n                    params: {\r\n                      pattern: \"^3\\\\.0\\\\.\\\\d(-.+)?$\"\r\n                    },\r\n                    message: 'should match pattern \"^3\\\\.0\\\\.\\\\d(-.+)?$\"'\r\n                  }\r\n                ];\r\n                return false;\r\n              }\r\n            } else {\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"type\",\r\n                  dataPath: (dataPath || \"\") + \".openapi\",\r\n                  schemaPath: \"#/properties/openapi/type\",\r\n                  params: {\r\n                    type: \"string\"\r\n                  },\r\n                  message: \"should be string\"\r\n                }\r\n              ];\r\n              return false;\r\n            }\r\n            var valid1 = errors === errs_1;\r\n          }\r\n          if (valid1) {\r\n            if (data.info === undefined) {\r\n              valid1 = false;\r\n              validate.errors = [\r\n                {\r\n                  keyword: \"required\",\r\n                  dataPath: (dataPath || \"\") + \"\",\r\n                  schemaPath: \"#/required\",\r\n                  params: {\r\n                    missingProperty: \"info\"\r\n                  },\r\n                  message: \"should have required property 'info'\"\r\n                }\r\n              ];\r\n              return false;\r\n            } else {\r\n              var errs_1 = errors;\r\n              if (!refVal1(data.info, (dataPath || \"\") + \".info\", data, \"info\", rootData)) {\r\n                if (vErrors === null) vErrors = refVal1.errors;\r\n                else vErrors = vErrors.concat(refVal1.errors);\r\n                errors = vErrors.length;\r\n              }\r\n              var valid1 = errors === errs_1;\r\n            }\r\n            if (valid1) {\r\n              var data1 = data.externalDocs;\r\n              if (data1 === undefined) {\r\n                valid1 = true;\r\n              } else {\r\n                var errs_1 = errors;\r\n                var errs_2 = errors;\r\n                if (data1 && typeof data1 === \"object\" && !Array.isArray(data1)) {\r\n                  if (true) {\r\n                    var errs__2 = errors;\r\n                    var valid3 = true;\r\n                    for (var key2 in data1) {\r\n                      var isAdditional2 = !(false || key2 == \"description\" || key2 == \"url\" || pattern0.test(key2));\r\n                      if (isAdditional2) {\r\n                        valid3 = false;\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"additionalProperties\",\r\n                            dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                            schemaPath: \"#/definitions/ExternalDocumentation/additionalProperties\",\r\n                            params: {\r\n                              additionalProperty: \"\" + key2 + \"\"\r\n                            },\r\n                            message: \"should NOT have additional properties\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                        break;\r\n                      }\r\n                    }\r\n                    if (valid3) {\r\n                      if (data1.description === undefined) {\r\n                        valid3 = true;\r\n                      } else {\r\n                        var errs_3 = errors;\r\n                        if (typeof data1.description !== \"string\") {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".externalDocs.description\",\r\n                              schemaPath: \"#/definitions/ExternalDocumentation/properties/description/type\",\r\n                              params: {\r\n                                type: \"string\"\r\n                              },\r\n                              message: \"should be string\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid3 = errors === errs_3;\r\n                      }\r\n                      if (valid3) {\r\n                        var data2 = data1.url;\r\n                        if (data2 === undefined) {\r\n                          valid3 = false;\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"required\",\r\n                              dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                              schemaPath: \"#/definitions/ExternalDocumentation/required\",\r\n                              params: {\r\n                                missingProperty: \"url\"\r\n                              },\r\n                              message: \"should have required property 'url'\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        } else {\r\n                          var errs_3 = errors;\r\n                          if (errors === errs_3) {\r\n                            if (typeof data2 === \"string\") {\r\n                              if (!formats[\"uri-reference\"].test(data2)) {\r\n                                validate.errors = [\r\n                                  {\r\n                                    keyword: \"format\",\r\n                                    dataPath: (dataPath || \"\") + \".externalDocs.url\",\r\n                                    schemaPath: \"#/definitions/ExternalDocumentation/properties/url/format\",\r\n                                    params: {\r\n                                      format: \"uri-reference\"\r\n                                    },\r\n                                    message: 'should match format \"uri-reference\"'\r\n                                  }\r\n                                ];\r\n                                return false;\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".externalDocs.url\",\r\n                                  schemaPath: \"#/definitions/ExternalDocumentation/properties/url/type\",\r\n                                  params: {\r\n                                    type: \"string\"\r\n                                  },\r\n                                  message: \"should be string\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                          }\r\n                          var valid3 = errors === errs_3;\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                } else {\r\n                  validate.errors = [\r\n                    {\r\n                      keyword: \"type\",\r\n                      dataPath: (dataPath || \"\") + \".externalDocs\",\r\n                      schemaPath: \"#/definitions/ExternalDocumentation/type\",\r\n                      params: {\r\n                        type: \"object\"\r\n                      },\r\n                      message: \"should be object\"\r\n                    }\r\n                  ];\r\n                  return false;\r\n                }\r\n                var valid2 = errors === errs_2;\r\n                var valid1 = errors === errs_1;\r\n              }\r\n              if (valid1) {\r\n                var data1 = data.servers;\r\n                if (data1 === undefined) {\r\n                  valid1 = true;\r\n                } else {\r\n                  var errs_1 = errors;\r\n                  if (Array.isArray(data1)) {\r\n                    var errs__1 = errors;\r\n                    var valid1;\r\n                    for (var i1 = 0; i1 < data1.length; i1++) {\r\n                      var errs_2 = errors;\r\n                      if (!refVal5(data1[i1], (dataPath || \"\") + \".servers[\" + i1 + \"]\", data1, i1, rootData)) {\r\n                        if (vErrors === null) vErrors = refVal5.errors;\r\n                        else vErrors = vErrors.concat(refVal5.errors);\r\n                        errors = vErrors.length;\r\n                      }\r\n                      var valid2 = errors === errs_2;\r\n                      if (!valid2) break;\r\n                    }\r\n                  } else {\r\n                    validate.errors = [\r\n                      {\r\n                        keyword: \"type\",\r\n                        dataPath: (dataPath || \"\") + \".servers\",\r\n                        schemaPath: \"#/properties/servers/type\",\r\n                        params: {\r\n                          type: \"array\"\r\n                        },\r\n                        message: \"should be array\"\r\n                      }\r\n                    ];\r\n                    return false;\r\n                  }\r\n                  var valid1 = errors === errs_1;\r\n                }\r\n                if (valid1) {\r\n                  var data1 = data.security;\r\n                  if (data1 === undefined) {\r\n                    valid1 = true;\r\n                  } else {\r\n                    var errs_1 = errors;\r\n                    if (Array.isArray(data1)) {\r\n                      var errs__1 = errors;\r\n                      var valid1;\r\n                      for (var i1 = 0; i1 < data1.length; i1++) {\r\n                        var data2 = data1[i1];\r\n                        var errs_2 = errors;\r\n                        var errs_3 = errors;\r\n                        if (data2 && typeof data2 === \"object\" && !Array.isArray(data2)) {\r\n                          var errs__3 = errors;\r\n                          var valid4 = true;\r\n                          for (var key3 in data2) {\r\n                            var data3 = data2[key3];\r\n                            var errs_4 = errors;\r\n                            if (Array.isArray(data3)) {\r\n                              var errs__4 = errors;\r\n                              var valid4;\r\n                              for (var i4 = 0; i4 < data3.length; i4++) {\r\n                                var errs_5 = errors;\r\n                                if (typeof data3[i4] !== \"string\") {\r\n                                  validate.errors = [\r\n                                    {\r\n                                      keyword: \"type\",\r\n                                      dataPath: (dataPath || \"\") + \".security[\" + i1 + \"]['\" + key3 + \"'][\" + i4 + \"]\",\r\n                                      schemaPath: \"#/definitions/SecurityRequirement/additionalProperties/items/type\",\r\n                                      params: {\r\n                                        type: \"string\"\r\n                                      },\r\n                                      message: \"should be string\"\r\n                                    }\r\n                                  ];\r\n                                  return false;\r\n                                }\r\n                                var valid5 = errors === errs_5;\r\n                                if (!valid5) break;\r\n                              }\r\n                            } else {\r\n                              validate.errors = [\r\n                                {\r\n                                  keyword: \"type\",\r\n                                  dataPath: (dataPath || \"\") + \".security[\" + i1 + \"]['\" + key3 + \"']\",\r\n                                  schemaPath: \"#/definitions/SecurityRequirement/additionalProperties/type\",\r\n                                  params: {\r\n                                    type: \"array\"\r\n                                  },\r\n                                  message: \"should be array\"\r\n                                }\r\n                              ];\r\n                              return false;\r\n                            }\r\n                            var valid4 = errors === errs_4;\r\n                            if (!valid4) break;\r\n                          }\r\n                        } else {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"type\",\r\n                              dataPath: (dataPath || \"\") + \".security[\" + i1 + \"]\",\r\n                              schemaPath: \"#/definitions/SecurityRequirement/type\",\r\n                              params: {\r\n                                type: \"object\"\r\n                              },\r\n                              message: \"should be object\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        }\r\n                        var valid3 = errors === errs_3;\r\n                        var valid2 = errors === errs_2;\r\n                        if (!valid2) break;\r\n                      }\r\n                    } else {\r\n                      validate.errors = [\r\n                        {\r\n                          keyword: \"type\",\r\n                          dataPath: (dataPath || \"\") + \".security\",\r\n                          schemaPath: \"#/properties/security/type\",\r\n                          params: {\r\n                            type: \"array\"\r\n                          },\r\n                          message: \"should be array\"\r\n                        }\r\n                      ];\r\n                      return false;\r\n                    }\r\n                    var valid1 = errors === errs_1;\r\n                  }\r\n                  if (valid1) {\r\n                    var data1 = data.tags;\r\n                    if (data1 === undefined) {\r\n                      valid1 = true;\r\n                    } else {\r\n                      var errs_1 = errors;\r\n                      if (Array.isArray(data1)) {\r\n                        var valid1 = true;\r\n                        if (data1.length > 1) {\r\n                          var i = data1.length,\r\n                            j;\r\n                          outer: for (; i--; ) {\r\n                            for (j = i; j--; ) {\r\n                              if (equal(data1[i], data1[j])) {\r\n                                valid1 = false;\r\n                                break outer;\r\n                              }\r\n                            }\r\n                          }\r\n                        }\r\n                        if (!valid1) {\r\n                          validate.errors = [\r\n                            {\r\n                              keyword: \"uniqueItems\",\r\n                              dataPath: (dataPath || \"\") + \".tags\",\r\n                              schemaPath: \"#/properties/tags/uniqueItems\",\r\n                              params: {\r\n                                i: i,\r\n                                j: j\r\n                              },\r\n                              message: \"should NOT have duplicate items (items ## \" + j + \" and \" + i + \" are identical)\"\r\n                            }\r\n                          ];\r\n                          return false;\r\n                        } else {\r\n                          var errs__1 = errors;\r\n                          var valid1;\r\n                          for (var i1 = 0; i1 < data1.length; i1++) {\r\n                            var errs_2 = errors;\r\n                            if (!refVal8(data1[i1], (dataPath || \"\") + \".tags[\" + i1 + \"]\", data1, i1, rootData)) {\r\n                              if (vErrors === null) vErrors = refVal8.errors;\r\n                              else vErrors = vErrors.concat(refVal8.errors);\r\n                              errors = vErrors.length;\r\n                            }\r\n                            var valid2 = errors === errs_2;\r\n                            if (!valid2) break;\r\n                          }\r\n                        }\r\n                      } else {\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"type\",\r\n                            dataPath: (dataPath || \"\") + \".tags\",\r\n                            schemaPath: \"#/properties/tags/type\",\r\n                            params: {\r\n                              type: \"array\"\r\n                            },\r\n                            message: \"should be array\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      }\r\n                      var valid1 = errors === errs_1;\r\n                    }\r\n                    if (valid1) {\r\n                      if (data.paths === undefined) {\r\n                        valid1 = false;\r\n                        validate.errors = [\r\n                          {\r\n                            keyword: \"required\",\r\n                            dataPath: (dataPath || \"\") + \"\",\r\n                            schemaPath: \"#/required\",\r\n                            params: {\r\n                              missingProperty: \"paths\"\r\n                            },\r\n                            message: \"should have required property 'paths'\"\r\n                          }\r\n                        ];\r\n                        return false;\r\n                      } else {\r\n                        var errs_1 = errors;\r\n                        if (!refVal9(data.paths, (dataPath || \"\") + \".paths\", data, \"paths\", rootData)) {\r\n                          if (vErrors === null) vErrors = refVal9.errors;\r\n                          else vErrors = vErrors.concat(refVal9.errors);\r\n                          errors = vErrors.length;\r\n                        }\r\n                        var valid1 = errors === errs_1;\r\n                      }\r\n                      if (valid1) {\r\n                        if (data.components === undefined) {\r\n                          valid1 = true;\r\n                        } else {\r\n                          var errs_1 = errors;\r\n                          if (!refVal29(data.components, (dataPath || \"\") + \".components\", data, \"components\", rootData)) {\r\n                            if (vErrors === null) vErrors = refVal29.errors;\r\n                            else vErrors = vErrors.concat(refVal29.errors);\r\n                            errors = vErrors.length;\r\n                          }\r\n                          var valid1 = errors === errs_1;\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    } else {\r\n      validate.errors = [\r\n        {\r\n          keyword: \"type\",\r\n          dataPath: (dataPath || \"\") + \"\",\r\n          schemaPath: \"#/type\",\r\n          params: {\r\n            type: \"object\"\r\n          },\r\n          message: \"should be object\"\r\n        }\r\n      ];\r\n      return false;\r\n    }\r\n    validate.errors = vErrors;\r\n    return errors === 0;\r\n  };\r\n})();\r\nvalidate.schema = {\r\n  id: \"https://spec.openapis.org/oas/3.0/schema/2021-09-28\",\r\n  $schema: \"http://json-schema.org/draft-04/schema#\",\r\n  description: \"The description of OpenAPI v3.0.x documents, as defined by https://spec.openapis.org/oas/v3.0.3\",\r\n  type: \"object\",\r\n  required: [\"openapi\", \"info\", \"paths\"],\r\n  properties: {\r\n    openapi: {\r\n      type: \"string\",\r\n      pattern: \"^3\\\\.0\\\\.\\\\d(-.+)?$\"\r\n    },\r\n    info: {\r\n      $ref: \"#/definitions/Info\"\r\n    },\r\n    externalDocs: {\r\n      $ref: \"#/definitions/ExternalDocumentation\"\r\n    },\r\n    servers: {\r\n      type: \"array\",\r\n      items: {\r\n        $ref: \"#/definitions/Server\"\r\n      }\r\n    },\r\n    security: {\r\n      type: \"array\",\r\n      items: {\r\n        $ref: \"#/definitions/SecurityRequirement\"\r\n      }\r\n    },\r\n    tags: {\r\n      type: \"array\",\r\n      items: {\r\n        $ref: \"#/definitions/Tag\"\r\n      },\r\n      uniqueItems: true\r\n    },\r\n    paths: {\r\n      $ref: \"#/definitions/Paths\"\r\n    },\r\n    components: {\r\n      $ref: \"#/definitions/Components\"\r\n    }\r\n  },\r\n  patternProperties: {\r\n    \"^x-\": {}\r\n  },\r\n  additionalProperties: false,\r\n  definitions: {\r\n    Reference: {\r\n      type: \"object\",\r\n      required: [\"$ref\"],\r\n      patternProperties: {\r\n        \"^\\\\$ref$\": {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        }\r\n      }\r\n    },\r\n    Info: {\r\n      type: \"object\",\r\n      required: [\"title\", \"version\"],\r\n      properties: {\r\n        title: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        termsOfService: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        contact: {\r\n          $ref: \"#/definitions/Contact\"\r\n        },\r\n        license: {\r\n          $ref: \"#/definitions/License\"\r\n        },\r\n        version: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Contact: {\r\n      type: \"object\",\r\n      properties: {\r\n        name: {\r\n          type: \"string\"\r\n        },\r\n        url: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        email: {\r\n          type: \"string\",\r\n          format: \"email\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    License: {\r\n      type: \"object\",\r\n      required: [\"name\"],\r\n      properties: {\r\n        name: {\r\n          type: \"string\"\r\n        },\r\n        url: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Server: {\r\n      type: \"object\",\r\n      required: [\"url\"],\r\n      properties: {\r\n        url: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        variables: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            $ref: \"#/definitions/ServerVariable\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    ServerVariable: {\r\n      type: \"object\",\r\n      required: [\"default\"],\r\n      properties: {\r\n        enum: {\r\n          type: \"array\",\r\n          items: {\r\n            type: \"string\"\r\n          }\r\n        },\r\n        default: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Components: {\r\n      type: \"object\",\r\n      properties: {\r\n        schemas: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Schema\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        responses: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Response\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        parameters: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Parameter\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        examples: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Example\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        requestBodies: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/RequestBody\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        headers: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Header\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        securitySchemes: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/SecurityScheme\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        links: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Link\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        callbacks: {\r\n          type: \"object\",\r\n          patternProperties: {\r\n            \"^[a-zA-Z0-9\\\\.\\\\-_]+$\": {\r\n              oneOf: [\r\n                {\r\n                  $ref: \"#/definitions/Reference\"\r\n                },\r\n                {\r\n                  $ref: \"#/definitions/Callback\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Schema: {\r\n      type: \"object\",\r\n      properties: {\r\n        title: {\r\n          type: \"string\"\r\n        },\r\n        multipleOf: {\r\n          type: \"number\",\r\n          minimum: 0,\r\n          exclusiveMinimum: true\r\n        },\r\n        maximum: {\r\n          type: \"number\"\r\n        },\r\n        exclusiveMaximum: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        minimum: {\r\n          type: \"number\"\r\n        },\r\n        exclusiveMinimum: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        maxLength: {\r\n          type: \"integer\",\r\n          minimum: 0\r\n        },\r\n        minLength: {\r\n          type: \"integer\",\r\n          minimum: 0,\r\n          default: 0\r\n        },\r\n        pattern: {\r\n          type: \"string\",\r\n          format: \"regex\"\r\n        },\r\n        maxItems: {\r\n          type: \"integer\",\r\n          minimum: 0\r\n        },\r\n        minItems: {\r\n          type: \"integer\",\r\n          minimum: 0,\r\n          default: 0\r\n        },\r\n        uniqueItems: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        maxProperties: {\r\n          type: \"integer\",\r\n          minimum: 0\r\n        },\r\n        minProperties: {\r\n          type: \"integer\",\r\n          minimum: 0,\r\n          default: 0\r\n        },\r\n        required: {\r\n          type: \"array\",\r\n          items: {\r\n            type: \"string\"\r\n          },\r\n          minItems: 1,\r\n          uniqueItems: true\r\n        },\r\n        enum: {\r\n          type: \"array\",\r\n          items: {},\r\n          minItems: 1,\r\n          uniqueItems: false\r\n        },\r\n        type: {\r\n          type: \"string\",\r\n          enum: [\"array\", \"boolean\", \"integer\", \"number\", \"object\", \"string\"]\r\n        },\r\n        not: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        allOf: {\r\n          type: \"array\",\r\n          items: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Schema\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        oneOf: {\r\n          type: \"array\",\r\n          items: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Schema\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        anyOf: {\r\n          type: \"array\",\r\n          items: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Schema\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        items: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        properties: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Schema\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        additionalProperties: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            },\r\n            {\r\n              type: \"boolean\"\r\n            }\r\n          ],\r\n          default: true\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        format: {\r\n          type: \"string\"\r\n        },\r\n        default: {},\r\n        nullable: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        discriminator: {\r\n          $ref: \"#/definitions/Discriminator\"\r\n        },\r\n        readOnly: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        writeOnly: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        example: {},\r\n        externalDocs: {\r\n          $ref: \"#/definitions/ExternalDocumentation\"\r\n        },\r\n        deprecated: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        xml: {\r\n          $ref: \"#/definitions/XML\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Discriminator: {\r\n      type: \"object\",\r\n      required: [\"propertyName\"],\r\n      properties: {\r\n        propertyName: {\r\n          type: \"string\"\r\n        },\r\n        mapping: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            type: \"string\"\r\n          }\r\n        }\r\n      }\r\n    },\r\n    XML: {\r\n      type: \"object\",\r\n      properties: {\r\n        name: {\r\n          type: \"string\"\r\n        },\r\n        namespace: {\r\n          type: \"string\",\r\n          format: \"uri\"\r\n        },\r\n        prefix: {\r\n          type: \"string\"\r\n        },\r\n        attribute: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        wrapped: {\r\n          type: \"boolean\",\r\n          default: false\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Response: {\r\n      type: \"object\",\r\n      required: [\"description\"],\r\n      properties: {\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        headers: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Header\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        content: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            $ref: \"#/definitions/MediaType\"\r\n          }\r\n        },\r\n        links: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Link\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    MediaType: {\r\n      type: \"object\",\r\n      properties: {\r\n        schema: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        example: {},\r\n        examples: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Example\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        encoding: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            $ref: \"#/definitions/Encoding\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false,\r\n      allOf: [\r\n        {\r\n          $ref: \"#/definitions/ExampleXORExamples\"\r\n        }\r\n      ]\r\n    },\r\n    Example: {\r\n      type: \"object\",\r\n      properties: {\r\n        summary: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        value: {},\r\n        externalValue: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Header: {\r\n      type: \"object\",\r\n      properties: {\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        required: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        deprecated: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        allowEmptyValue: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        style: {\r\n          type: \"string\",\r\n          enum: [\"simple\"],\r\n          default: \"simple\"\r\n        },\r\n        explode: {\r\n          type: \"boolean\"\r\n        },\r\n        allowReserved: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        schema: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        content: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            $ref: \"#/definitions/MediaType\"\r\n          },\r\n          minProperties: 1,\r\n          maxProperties: 1\r\n        },\r\n        example: {},\r\n        examples: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Example\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false,\r\n      allOf: [\r\n        {\r\n          $ref: \"#/definitions/ExampleXORExamples\"\r\n        },\r\n        {\r\n          $ref: \"#/definitions/SchemaXORContent\"\r\n        }\r\n      ]\r\n    },\r\n    Paths: {\r\n      type: \"object\",\r\n      patternProperties: {\r\n        \"^\\\\/\": {\r\n          $ref: \"#/definitions/PathItem\"\r\n        },\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    PathItem: {\r\n      type: \"object\",\r\n      properties: {\r\n        $ref: {\r\n          type: \"string\"\r\n        },\r\n        summary: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        servers: {\r\n          type: \"array\",\r\n          items: {\r\n            $ref: \"#/definitions/Server\"\r\n          }\r\n        },\r\n        parameters: {\r\n          type: \"array\",\r\n          items: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Parameter\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          },\r\n          uniqueItems: true\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^(get|put|post|delete|options|head|patch|trace)$\": {\r\n          $ref: \"#/definitions/Operation\"\r\n        },\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Operation: {\r\n      type: \"object\",\r\n      required: [\"responses\"],\r\n      properties: {\r\n        tags: {\r\n          type: \"array\",\r\n          items: {\r\n            type: \"string\"\r\n          }\r\n        },\r\n        summary: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        externalDocs: {\r\n          $ref: \"#/definitions/ExternalDocumentation\"\r\n        },\r\n        operationId: {\r\n          type: \"string\"\r\n        },\r\n        parameters: {\r\n          type: \"array\",\r\n          items: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Parameter\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          },\r\n          uniqueItems: true\r\n        },\r\n        requestBody: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/RequestBody\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        responses: {\r\n          $ref: \"#/definitions/Responses\"\r\n        },\r\n        callbacks: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Callback\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        deprecated: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        security: {\r\n          type: \"array\",\r\n          items: {\r\n            $ref: \"#/definitions/SecurityRequirement\"\r\n          }\r\n        },\r\n        servers: {\r\n          type: \"array\",\r\n          items: {\r\n            $ref: \"#/definitions/Server\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Responses: {\r\n      type: \"object\",\r\n      properties: {\r\n        default: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Response\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^[1-5](?:\\\\d{2}|XX)$\": {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Response\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        \"^x-\": {}\r\n      },\r\n      minProperties: 1,\r\n      additionalProperties: false\r\n    },\r\n    SecurityRequirement: {\r\n      type: \"object\",\r\n      additionalProperties: {\r\n        type: \"array\",\r\n        items: {\r\n          type: \"string\"\r\n        }\r\n      }\r\n    },\r\n    Tag: {\r\n      type: \"object\",\r\n      required: [\"name\"],\r\n      properties: {\r\n        name: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        externalDocs: {\r\n          $ref: \"#/definitions/ExternalDocumentation\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    ExternalDocumentation: {\r\n      type: \"object\",\r\n      required: [\"url\"],\r\n      properties: {\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        url: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    ExampleXORExamples: {\r\n      description: \"Example and examples are mutually exclusive\",\r\n      not: {\r\n        required: [\"example\", \"examples\"]\r\n      }\r\n    },\r\n    SchemaXORContent: {\r\n      description: \"Schema and content are mutually exclusive, at least one is required\",\r\n      not: {\r\n        required: [\"schema\", \"content\"]\r\n      },\r\n      oneOf: [\r\n        {\r\n          required: [\"schema\"]\r\n        },\r\n        {\r\n          required: [\"content\"],\r\n          description: \"Some properties are not allowed if content is present\",\r\n          allOf: [\r\n            {\r\n              not: {\r\n                required: [\"style\"]\r\n              }\r\n            },\r\n            {\r\n              not: {\r\n                required: [\"explode\"]\r\n              }\r\n            },\r\n            {\r\n              not: {\r\n                required: [\"allowReserved\"]\r\n              }\r\n            },\r\n            {\r\n              not: {\r\n                required: [\"example\"]\r\n              }\r\n            },\r\n            {\r\n              not: {\r\n                required: [\"examples\"]\r\n              }\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    },\r\n    Parameter: {\r\n      type: \"object\",\r\n      properties: {\r\n        name: {\r\n          type: \"string\"\r\n        },\r\n        in: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        required: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        deprecated: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        allowEmptyValue: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        style: {\r\n          type: \"string\"\r\n        },\r\n        explode: {\r\n          type: \"boolean\"\r\n        },\r\n        allowReserved: {\r\n          type: \"boolean\",\r\n          default: false\r\n        },\r\n        schema: {\r\n          oneOf: [\r\n            {\r\n              $ref: \"#/definitions/Schema\"\r\n            },\r\n            {\r\n              $ref: \"#/definitions/Reference\"\r\n            }\r\n          ]\r\n        },\r\n        content: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            $ref: \"#/definitions/MediaType\"\r\n          },\r\n          minProperties: 1,\r\n          maxProperties: 1\r\n        },\r\n        example: {},\r\n        examples: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Example\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false,\r\n      required: [\"name\", \"in\"],\r\n      allOf: [\r\n        {\r\n          $ref: \"#/definitions/ExampleXORExamples\"\r\n        },\r\n        {\r\n          $ref: \"#/definitions/SchemaXORContent\"\r\n        },\r\n        {\r\n          $ref: \"#/definitions/ParameterLocation\"\r\n        }\r\n      ]\r\n    },\r\n    ParameterLocation: {\r\n      description: \"Parameter location\",\r\n      oneOf: [\r\n        {\r\n          description: \"Parameter in path\",\r\n          required: [\"required\"],\r\n          properties: {\r\n            in: {\r\n              enum: [\"path\"]\r\n            },\r\n            style: {\r\n              enum: [\"matrix\", \"label\", \"simple\"],\r\n              default: \"simple\"\r\n            },\r\n            required: {\r\n              enum: [true]\r\n            }\r\n          }\r\n        },\r\n        {\r\n          description: \"Parameter in query\",\r\n          properties: {\r\n            in: {\r\n              enum: [\"query\"]\r\n            },\r\n            style: {\r\n              enum: [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"],\r\n              default: \"form\"\r\n            }\r\n          }\r\n        },\r\n        {\r\n          description: \"Parameter in header\",\r\n          properties: {\r\n            in: {\r\n              enum: [\"header\"]\r\n            },\r\n            style: {\r\n              enum: [\"simple\"],\r\n              default: \"simple\"\r\n            }\r\n          }\r\n        },\r\n        {\r\n          description: \"Parameter in cookie\",\r\n          properties: {\r\n            in: {\r\n              enum: [\"cookie\"]\r\n            },\r\n            style: {\r\n              enum: [\"form\"],\r\n              default: \"form\"\r\n            }\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    RequestBody: {\r\n      type: \"object\",\r\n      required: [\"content\"],\r\n      properties: {\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        content: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            $ref: \"#/definitions/MediaType\"\r\n          }\r\n        },\r\n        required: {\r\n          type: \"boolean\",\r\n          default: false\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    SecurityScheme: {\r\n      oneOf: [\r\n        {\r\n          $ref: \"#/definitions/APIKeySecurityScheme\"\r\n        },\r\n        {\r\n          $ref: \"#/definitions/HTTPSecurityScheme\"\r\n        },\r\n        {\r\n          $ref: \"#/definitions/OAuth2SecurityScheme\"\r\n        },\r\n        {\r\n          $ref: \"#/definitions/OpenIdConnectSecurityScheme\"\r\n        }\r\n      ]\r\n    },\r\n    APIKeySecurityScheme: {\r\n      type: \"object\",\r\n      required: [\"type\", \"name\", \"in\"],\r\n      properties: {\r\n        type: {\r\n          type: \"string\",\r\n          enum: [\"apiKey\"]\r\n        },\r\n        name: {\r\n          type: \"string\"\r\n        },\r\n        in: {\r\n          type: \"string\",\r\n          enum: [\"header\", \"query\", \"cookie\"]\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    HTTPSecurityScheme: {\r\n      type: \"object\",\r\n      required: [\"scheme\", \"type\"],\r\n      properties: {\r\n        scheme: {\r\n          type: \"string\"\r\n        },\r\n        bearerFormat: {\r\n          type: \"string\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        type: {\r\n          type: \"string\",\r\n          enum: [\"http\"]\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false,\r\n      oneOf: [\r\n        {\r\n          description: \"Bearer\",\r\n          properties: {\r\n            scheme: {\r\n              type: \"string\",\r\n              pattern: \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\r\n            }\r\n          }\r\n        },\r\n        {\r\n          description: \"Non Bearer\",\r\n          not: {\r\n            required: [\"bearerFormat\"]\r\n          },\r\n          properties: {\r\n            scheme: {\r\n              not: {\r\n                type: \"string\",\r\n                pattern: \"^[Bb][Ee][Aa][Rr][Ee][Rr]$\"\r\n              }\r\n            }\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    OAuth2SecurityScheme: {\r\n      type: \"object\",\r\n      required: [\"type\", \"flows\"],\r\n      properties: {\r\n        type: {\r\n          type: \"string\",\r\n          enum: [\"oauth2\"]\r\n        },\r\n        flows: {\r\n          $ref: \"#/definitions/OAuthFlows\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    OpenIdConnectSecurityScheme: {\r\n      type: \"object\",\r\n      required: [\"type\", \"openIdConnectUrl\"],\r\n      properties: {\r\n        type: {\r\n          type: \"string\",\r\n          enum: [\"openIdConnect\"]\r\n        },\r\n        openIdConnectUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        description: {\r\n          type: \"string\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    OAuthFlows: {\r\n      type: \"object\",\r\n      properties: {\r\n        implicit: {\r\n          $ref: \"#/definitions/ImplicitOAuthFlow\"\r\n        },\r\n        password: {\r\n          $ref: \"#/definitions/PasswordOAuthFlow\"\r\n        },\r\n        clientCredentials: {\r\n          $ref: \"#/definitions/ClientCredentialsFlow\"\r\n        },\r\n        authorizationCode: {\r\n          $ref: \"#/definitions/AuthorizationCodeOAuthFlow\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    ImplicitOAuthFlow: {\r\n      type: \"object\",\r\n      required: [\"authorizationUrl\", \"scopes\"],\r\n      properties: {\r\n        authorizationUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        refreshUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        scopes: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            type: \"string\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    PasswordOAuthFlow: {\r\n      type: \"object\",\r\n      required: [\"tokenUrl\", \"scopes\"],\r\n      properties: {\r\n        tokenUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        refreshUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        scopes: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            type: \"string\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    ClientCredentialsFlow: {\r\n      type: \"object\",\r\n      required: [\"tokenUrl\", \"scopes\"],\r\n      properties: {\r\n        tokenUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        refreshUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        scopes: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            type: \"string\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    AuthorizationCodeOAuthFlow: {\r\n      type: \"object\",\r\n      required: [\"authorizationUrl\", \"tokenUrl\", \"scopes\"],\r\n      properties: {\r\n        authorizationUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        tokenUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        refreshUrl: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        scopes: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            type: \"string\"\r\n          }\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    },\r\n    Link: {\r\n      type: \"object\",\r\n      properties: {\r\n        operationId: {\r\n          type: \"string\"\r\n        },\r\n        operationRef: {\r\n          type: \"string\",\r\n          format: \"uri-reference\"\r\n        },\r\n        parameters: {\r\n          type: \"object\",\r\n          additionalProperties: {}\r\n        },\r\n        requestBody: {},\r\n        description: {\r\n          type: \"string\"\r\n        },\r\n        server: {\r\n          $ref: \"#/definitions/Server\"\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false,\r\n      not: {\r\n        description: \"Operation Id and Operation Ref are mutually exclusive\",\r\n        required: [\"operationId\", \"operationRef\"]\r\n      }\r\n    },\r\n    Callback: {\r\n      type: \"object\",\r\n      additionalProperties: {\r\n        $ref: \"#/definitions/PathItem\"\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      }\r\n    },\r\n    Encoding: {\r\n      type: \"object\",\r\n      properties: {\r\n        contentType: {\r\n          type: \"string\"\r\n        },\r\n        headers: {\r\n          type: \"object\",\r\n          additionalProperties: {\r\n            oneOf: [\r\n              {\r\n                $ref: \"#/definitions/Header\"\r\n              },\r\n              {\r\n                $ref: \"#/definitions/Reference\"\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        style: {\r\n          type: \"string\",\r\n          enum: [\"form\", \"spaceDelimited\", \"pipeDelimited\", \"deepObject\"]\r\n        },\r\n        explode: {\r\n          type: \"boolean\"\r\n        },\r\n        allowReserved: {\r\n          type: \"boolean\",\r\n          default: false\r\n        }\r\n      },\r\n      patternProperties: {\r\n        \"^x-\": {}\r\n      },\r\n      additionalProperties: false\r\n    }\r\n  }\r\n};\r\nvalidate.errors = null;\r\nmodule.exports = validate;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { makeStyles } from \"@fluentui/react-components\";\r\n\r\nexport const useStyles = makeStyles({\r\n  correlationText: {\r\n    paddingLeft: \"1rem\"\r\n  },\r\n  messageBar: {\r\n    zIndex: 4,\r\n    position: \"fixed\"\r\n  }\r\n});\r\n","import React from \"react\";\r\nimport { Text } from \"@fluentui/react-components\";\r\nimport { NotificationType, ErrorContext } from \"./Notifications\";\r\nimport Strings from \"../../core/locale/strings.json\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport interface IErrorInformation {\r\n  errorContext?: ErrorContext;\r\n  className?: string;\r\n  notificationType?: NotificationType;\r\n}\r\n\r\nexport const ErrorInformations: React.FC<IErrorInformation> = ({ errorContext, className, notificationType }) => {\r\n  const intl = useIntl();\r\n  if (notificationType === NotificationType.Error && errorContext?.correlationId) {\r\n    return (\r\n      <Text aria-live=\"polite\" className={className}>\r\n        {intl.formatMessage(\r\n          {\r\n            id: \"errorCorrelationMessage\",\r\n            defaultMessage: Strings.errorCorrelationMessage\r\n          },\r\n          {\r\n            correlationId: errorContext?.correlationId,\r\n            timestamp: errorContext?.timestamp,\r\n            statusCode: errorContext?.statusCode\r\n          }\r\n        )}\r\n      </Text>\r\n    );\r\n  } else {\r\n    return null;\r\n  }\r\n};\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { MessageBar, MessageBarBody, MessageBarActions, Button, MessageBarIntent, Link } from \"@fluentui/react-components\";\r\nimport { DismissRegular } from \"@fluentui/react-icons\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { showNotification } from \"../../core/actions/NotificationActions\";\r\nimport { useStyles } from \"./style\";\r\nimport { ErrorInformations } from \"./ErrorInformations\";\r\nimport { useHistory } from \"react-router\";\r\nexport { GetErrorContext } from \"./NotificationsUtil\";\r\nimport { formatMessage } from \"../../utils/StringUtils\";\r\nimport { useIntl } from \"react-intl\";\r\n\r\nexport enum NotificationType {\r\n  /** Success Notification */\r\n  Success = 1,\r\n  /** Warning Notification */\r\n  Warning = 2,\r\n  /** Error Notification */\r\n  Error = 3,\r\n  /** Info Notification */\r\n  Informational = 4\r\n}\r\n\r\nexport interface INotification {\r\n  message?: string;\r\n  type?: NotificationType;\r\n  show?: boolean;\r\n  dismissAfter?: number;\r\n  autoDismiss?: boolean;\r\n  errorContext?: ErrorContext;\r\n  externalLink?: string;\r\n}\r\n\r\nexport type ErrorContext = {\r\n  correlationId?: string;\r\n  timestamp?: string;\r\n  statusCode?: number;\r\n  errorCode?: string;  // Error code from the server mapped to Strings.json\r\n  errorMessage?: string; // Error message from the server\r\n};\r\n\r\nconst Notifications: React.FC = () => {\r\n  // Utils and Global state\r\n  const dispatch = useDispatch();\r\n  const intl = useIntl();\r\n  const notificationGlobalState: INotification = useSelector((state: any) => state.notification);\r\n  const history = useHistory();\r\n  const classes = useStyles();\r\n\r\n  // Component Utils\r\n  const IntentMap = new Map<NotificationType, MessageBarIntent>([\r\n    [NotificationType.Success, \"success\"],\r\n    [NotificationType.Error, \"error\"],\r\n    [NotificationType.Warning, \"warning\"],\r\n    [NotificationType.Informational, \"info\"]\r\n  ]);\r\n\r\n  // Event Handlers\r\n  const handleDismiss = () => {\r\n    dispatch(showNotification(false));\r\n  };\r\n\r\n  history.listen(() => {\r\n    handleDismiss();\r\n  });\r\n\r\n  const RenderNotification = (type?: NotificationType) => {\r\n    const navBarWidth = document.getElementById(\"ContentAreaContainer\")?.offsetWidth;\r\n    const headerHeight = document.getElementById(\"O365ShellHeaderId\")?.offsetHeight ?? 0;\r\n    const toolbarHeight = document.getElementById(\"toolbar\")?.offsetHeight ?? 0;\r\n    const topPosition = headerHeight + toolbarHeight;\r\n    return (\r\n      <>\r\n        {type ? (\r\n          <MessageBar\r\n            style={{\r\n              left: navBarWidth ?? 0,\r\n              top: topPosition,\r\n              width: navBarWidth ? `calc(100% - ${navBarWidth}px)` : \"100%\"\r\n            }}\r\n            intent={IntentMap.get(type)}\r\n            className={classes.messageBar}\r\n            role=\"alert\"\r\n            data-testid=\"notification\"\r\n            id=\"notification-message-bar\"\r\n          >\r\n            <MessageBarBody>\r\n              {notificationGlobalState.errorContext?.errorCode\r\n                ? intl.formatMessage({\r\n                  id: notificationGlobalState.errorContext.errorCode,\r\n                  defaultMessage: notificationGlobalState.errorContext?.errorMessage ?? notificationGlobalState.message\r\n                })\r\n                : notificationGlobalState.message\r\n              }\r\n              {notificationGlobalState.externalLink && (\r\n                <Link className={classes.correlationText} target=\"_blank\" href={notificationGlobalState.externalLink}>\r\n                  {formatMessage(intl, \"learnMoreSansEllipsis\")}\r\n                </Link>\r\n              )}\r\n              <ErrorInformations\r\n                errorContext={notificationGlobalState.errorContext}\r\n                className={classes.correlationText}\r\n                notificationType={notificationGlobalState.type}\r\n              />\r\n            </MessageBarBody>\r\n            <MessageBarActions\r\n              containerAction={\r\n                <Button\r\n                  aria-label={formatMessage(intl, \"close\")}\r\n                  aria-describedby=\"notification-message-bar\"\r\n                  aria-live=\"off\"\r\n                  onClick={handleDismiss}\r\n                  appearance=\"transparent\"\r\n                  icon={<DismissRegular />}\r\n                  autoFocus\r\n                />\r\n              }\r\n            ></MessageBarActions>\r\n          </MessageBar>\r\n        ) : (\r\n          <></>\r\n        )}\r\n      </>\r\n    );\r\n  };\r\n\r\n  return <>{RenderNotification(notificationGlobalState.type)}</>;\r\n};\r\n\r\nexport default Notifications;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum AppCategory {\r\n  Analytics = \"Analytics\",\r\n  Communication = \"Communication\",\r\n  ContentManagement = \"ContentManagement\",\r\n  CustomerAndContactManagement = \"CustomerAndContactManagement\",\r\n  CustomerSupport = \"CustomerSupport\",\r\n  DataVisualizationAndBI = \"DataVisualizationAndBI\",\r\n  DeveloperTools = \"DeveloperTools\",\r\n  Education = \"Education\",\r\n  FilesAndDocuments = \"FilesAndDocuments\",\r\n  FinancialManagement = \"FinancialManagement\",\r\n  HumanResourcesAndRecruiting = \"HumanResourcesAndRecruiting\",\r\n  ImageAndVideoGalleries = \"ImageAndVideoGalleries\",\r\n  ITAdmin = \"ITAdmin\",\r\n  Jobs = \"Jobs\",\r\n  LabApp = \"LabApp\",\r\n  Lifestyle = \"Lifestyle\",\r\n  LookAndFeel = \"LookAndFeel\",\r\n  MapsAndFeeds = \"MapsAndFeeds\",\r\n  MeetingsAndScheduling = \"MeetingsAndScheduling\",\r\n  Microsoft = \"Microsoft\",\r\n  NewsAndWeather = \"NewsAndWeather\",\r\n  Other = \"Other\",\r\n  PrintingAndFaxing = \"PrintingAndFaxing\",\r\n  Productivity = \"Productivity\",\r\n  ProjectManagement = \"ProjectManagement\",\r\n  Reference = \"Reference\",\r\n  SalesAndMarketing = \"SalesAndMarketing\",\r\n  SearchAndDiscoverability = \"SearchAndDiscoverability\",\r\n  SecurityAndCompliance = \"SecurityAndCompliance\",\r\n  Social = \"Social\",\r\n  TrainingAndTutorial = \"TrainingAndTutorial\",\r\n  TravelAndNavigation = \"TravelAndNavigation\",\r\n  Utilities = \"Utilities\",\r\n  WorkflowAndBusinessManagement = \"WorkflowAndBusinessManagement\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { IAppDefinition } from \"./IAppDefinition\";\r\nimport { LayoutType } from \"../components/layoutToggle\";\r\n\r\nexport enum SortDirections {\r\n  ASC = \"asc\",\r\n  DESC = \"desc\"\r\n}\r\n\r\nexport interface ISort {\r\n  column: string;\r\n  direction: SortDirections;\r\n}\r\n\r\nexport interface IAppListViewModel {\r\n  layout: LayoutType;\r\n  sort: ISort;\r\n  page: number;\r\n  search: string;\r\n  searching: boolean;\r\n  searchResults: IAppDefinition[];\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum BotChannelType {\r\n  msteams = \"msteams\",\r\n  m365extensions = \"m365extensions\"\r\n}\r\n\r\nexport enum BotMeetingEventType {\r\n  participantJoined = \"ParticipantJoined\",\r\n  participantLeft = \"ParticipantLeft\"\r\n}\r\n\r\nexport interface IBotFrameworkBot {\r\n  botId: string;\r\n  messagingEndpoint: string;\r\n  callingEndpoint: string;\r\n  name: string;\r\n  canAccessBotFramework?: boolean;\r\n  iconUrl: string;\r\n  description: string;\r\n  configuredChannels: BotChannelType[];\r\n}\r\n\r\nexport interface IBotEvent {\r\n  botId: string;\r\n  eventTypes: BotMeetingEventType[];\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport interface ILocalizationInfo {\r\n  defaultLanguageTag: string;\r\n  languages: ILanguage[];\r\n}\r\n\r\nexport interface ILanguage {\r\n  languageTag: string;\r\n  file: string | any;\r\n}\r\n\r\nexport type CustomFormField = {\r\n  description: string;\r\n  input: string;\r\n  limit: number;\r\n  errorMessage: string;\r\n};\r\n\r\nexport interface ILanguageSchemaForm {\r\n  [key: string]: CustomFormField;\r\n}\r\n\r\nexport enum JsonKeyMapper {\r\n  shortName = \"name.short\",\r\n  fullName = \"name.full\",\r\n  shortDescription = \"description.short\",\r\n  longDescription = \"description.full\"\r\n}\r\n\r\nexport enum LocalizationFormLimits {\r\n  shortName = 30,\r\n  fullName = 100,\r\n  shortDescription = 80,\r\n  longDescription = 4000,\r\n  staticTabNames = 128,\r\n  botCommandListsTitle = 32,\r\n  botCommandListsDescription = 128,\r\n  composeExtensionsTitle = 32,\r\n  composeExtensionsDescription = 128,\r\n  composeExtensionsParamTitle = 32,\r\n  composeExtensionsParamDescription = 128,\r\n  composeExtensionsParamChoicesValues = 512,\r\n  composeExtensionsParamChoicesTitle = 128,\r\n  composeExtensionsTaskInfoTitle = 128,\r\n  activitiesDescription = 128,\r\n  activitiesTemplateText = 128\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { IScene } from \".\";\r\nimport { ParticipantRoleTypes } from \"../constants/Enums/participantRoleTypes\";\r\nimport { IImage } from \"./IImage\";\r\nimport { IDrawingDefinition, LayerType } from \"./IScene\";\r\nimport { fabric } from \"fabric\";\r\n\r\n\r\nexport default interface ISceneDesigner {\r\n  scene: IScene | null;\r\n  scenes: IScene[];\r\n  samples: IScene[];\r\n  uploadStatus: UploadImageType;\r\n  imagesToUpload: IImage[];\r\n  isCanvasInitialized: boolean;\r\n  isSceneOnlyAppDialogOpen: boolean;\r\n  isSceneShareDialogOpen: boolean;\r\n  blinkImage: string | null;\r\n  sceneLoader:LoaderType;\r\n  isSceneDeleteDialogOpen: boolean;\r\n  isSceneTemplatesDialogOpen: boolean;\r\n  sampleMode: boolean;\r\n  drawing?: IDrawing;\r\n  forceUpdate?:boolean;\r\n};\r\n\r\nexport interface IDrawing {\r\n  drawings: IDrawingDefinition[];\r\n  isActivated: boolean;\r\n  isEditing: boolean;\r\n}\r\n\r\nexport enum LoaderType {\r\n  Loaded = 0,\r\n  Saving = 1,\r\n  Validating = 2,\r\n  Loading = 3,\r\n  ImageProcessing = 4\r\n}\r\n\r\nexport enum UploadImageType {\r\n  none = 0,\r\n  inProgress = 1,\r\n  uploadSuccess = 2,\r\n  uploadError = 3\r\n}\r\n\r\nexport interface ExtendedCanvasObject extends fabric.Object,fabric.Group,fabric.Rect {\r\n  id: string;\r\n  layerType: LayerType;\r\n  zOrder: number;\r\n  seatingOrder: number;\r\n  role: ParticipantRoleTypes|undefined;\r\n  locked:boolean;\r\n  name:string;\r\n  isAlpha:boolean;\r\n  drawingId:string;\r\n  initWidth:number;\r\n  initHeight:number;\r\n  lastWidth:number;\r\n  src:string;\r\n  lastLocked:boolean;\r\n  rectObj:fabric.Object;\r\n  textObj:fabric.Object;\r\n  iconPadding:number;\r\n  _renderControls:Function;\r\n  isRect:boolean;\r\n  lastScale:number;\r\n  text:string;\r\n  hideStroke:boolean;\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\n export interface IStaticTab {\r\n  objectId: string;\r\n  entityId: string;\r\n  name: string;\r\n  contentUrl: string;\r\n  websiteUrl: string;\r\n  scopes: string[];\r\n  context: string[];\r\n}\r\n\r\nexport enum StaticTabActionType {\r\n  /// <summary>\r\n  /// Default value\r\n  /// </summary>\r\n  Default = 0,\r\n  /// <summary>\r\n  /// Move up action on static tab\r\n  /// </summary>\r\n  MoveUp = 1,\r\n  /// <summary>\r\n  /// Move down action on static tab\r\n  /// </summary>\r\n  MoveDown = 2\r\n}\r\n\r\nexport enum staticTabContext {\r\n  PersonalTab = \"personalTab\",\r\n  ChannelTab = \"channelTab\",\r\n  PrivateChatTab = \"privateChatTab\",\r\n  MeetingChatTab = \"meetingChatTab\",\r\n  MeetingDetailsTab = \"meetingDetailsTab\",\r\n  MeetingSidePanel = \"meetingSidePanel\",\r\n  MeetingStage = \"meetingStage\",\r\n  TeamLevelApp = \"teamLevelApp\" \r\n}\r\n\r\nexport enum staticTabScope {\r\n  Personal = \"personal\",\r\n  Team = \"team\",\r\n  GroupChat = \"groupChat\"\r\n}\r\n\r\n                ","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum LicenseCategory {\r\n  Unsupported = \"Unsupported\",\r\n  EducationFaculty = \"EducationFaculty\",\r\n  EducationStudent = \"EducationStudent\",\r\n  Kiosk = \"Kiosk\",\r\n  Government = \"Government\",\r\n  Developer = \"Developer\",\r\n  Guest = \"Guest\",\r\n  Other = \"Other\",\r\n  Free = \"Free\",\r\n  TeamsPhonePremium = \"TeamsPhonePremium\",\r\n  Copilot = \"Copilot\",\r\n  BusinessEnterprise = \"BusinessEnterprise\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum ManifestVersion {\r\n  devPreview = \"devPreview\",\r\n  m365DevPreview = \"m365DevPreview\",\r\n  v1_16 = \"1.16\",\r\n  v1_17 = \"1.17\",\r\n  v1_19 = \"1.19\",\r\n  v1_20 = \"1.20\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum RestrictedTenantTypes {\r\n  Freemium = \"Freemium\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum SupportedTenantRegions {\r\n  GCC = \"GCC\",\r\n  GCCH = \"GCCH\",\r\n  DOD = \"DOD\",\r\n  Gallatin = \"Gallatin\",\r\n  AG08 = \"AG08\",\r\n  AG09 = \"AG09\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum AppIndustry {\r\n  Agriculture = \"Agriculture\",\r\n  Distribution = \"Distribution\",\r\n  Education = \"Education\",\r\n  Finance = \"Finance\",\r\n  Government = \"Government\",\r\n  HealthCareAndLifeSciences = \"HealthCareAndLifeSciences\",\r\n  Manufacturing = \"Manufacturing\",\r\n  Other = \"Other\",\r\n  ProfessionalServices = \"ProfessionalServices\",\r\n  Retail = \"Retail\",\r\n  Sustainability = \"Sustainability\",\r\n}\r\n","import { ServiceToken } from \"../../constants/Config\";\r\nimport { AppCatalogActionTypes } from \"./AppCatalogActions\";\r\nimport { AppDefinitionActionTypes } from \"../reducers/AppDefinitionReducers\";\r\nimport { AppFlightingActionTypes } from \"./AppFlightingActions\";\r\nimport { ErrorPageActionTypes } from \"./ErrorPageActions\";\r\nimport { HeaderActionTypes } from \"./HeaderActions\";\r\nimport { IdentityAppsActionTypes } from \"./IdentityAppsActions\";\r\nimport { NetworkActionTypes } from \"./NetworkActions\";\r\nimport { NotificationActionTypes } from \"./NotificationActions\";\r\nimport { SceneActionTypes } from \"./SceneActions\";\r\nimport { ThemeActionTypes } from \"./ThemeActions\";\r\nimport { UILoadingActionTypes } from \"./UILoadingActions\";\r\nimport { UserSettingsActionTypes } from \"./UserSettingsActions\";\r\nimport { PreValidationActionTypes, ValidationActionTypes } from \"./ValidationActions\";\r\nimport { AxiosRequestConfig } from \"axios\";\r\n\r\nexport const API = \"REST_API\";\r\n\r\nexport enum ApiMethods {\r\n  Get = \"GET\",\r\n  Put = \"PUT\",\r\n  Post = \"POST\",\r\n  Patch = \"PATCH\",\r\n  Delete = \"DELETE\"\r\n}\r\n\r\nexport type ApiActionParams = {\r\n  url: string;\r\n  method: ApiMethods;\r\n  headers?: any;\r\n  data?: any;\r\n  onStart?: any;\r\n  onSuccess: any;\r\n  onFailure?: Function;\r\n  correlationId?: string;\r\n  serviceToken?: ServiceToken;\r\n  swrKey?: string;\r\n  transformAxiosRequest?: (cfg: AxiosRequestConfig) => AxiosRequestConfig;\r\n};\r\n\r\nexport const apiAction = (actionParams: ApiActionParams) => {\r\n  return {\r\n    type: API,\r\n    payload: actionParams\r\n  };\r\n};\r\n\r\nexport type IApsAction =\r\n  | AppDefinitionActionTypes\r\n  | ErrorPageActionTypes\r\n  | HeaderActionTypes\r\n  | NetworkActionTypes\r\n  | NotificationActionTypes\r\n  | ThemeActionTypes\r\n  | UILoadingActionTypes\r\n  | UserSettingsActionTypes\r\n  | ValidationActionTypes\r\n  | PreValidationActionTypes\r\n  | AppCatalogActionTypes\r\n  | SceneActionTypes\r\n  | IdentityAppsActionTypes\r\n  | AppFlightingActionTypes;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\nimport {\r\n  BotMeetingEventType,\r\n  IAadApplication,\r\n  IBot,\r\n  IBotAad,\r\n  IBotEvent,\r\n  IBotFrameworkBot,\r\n  IBotListViewModel\r\n} from \"../../interfaces\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { BotType } from \"../../constants/Enums/BotType\";\r\nimport { UpdateTypes } from \"../../constants/Enums/UpdateTypes\";\r\nimport { botsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { IAadAppPassword } from \"../../interfaces/IAppPassword\";\r\nimport { Links } from \"../../constants/Links\";\r\n\r\nexport enum BotActionTypes {\r\n  GetAllBots = \"Bot_GetAllBots\",\r\n  GetBotManagementBotFromAad = \"Bot_ GetBotManagementBotFromAad\",\r\n  GetBotManagementBotFromFramework = \"Bot_GetBotManagementBotFromFramework\",\r\n  GetAppBotFromAad = \"Bot_GetAppBotFromAad\",\r\n  GetAppBotFromFramework = \"Bot_GetAppBotFromFramework\",\r\n  GetAppMessagingExtensionBotFromAad = \"Bot_GetAppMessagingExtensionBotFromAad\",\r\n  GetAppMessagingExtensionBotFromFramework = \"Bot_GetAppMessagingExtensionBotFromFramework\",\r\n  CreateBot = \"Bot_CreateBot\",\r\n  SaveBot = \"Bot_SaveBot\",\r\n  UpdateBotAad = \"Bot_UpdateBotAad\",\r\n  UpdateBotFramework = \"Bot_UpdateBotFramework\",\r\n  CreateAppPasswordAad = \"Bot_CreateAppPasswordAad\",\r\n  DeleteAppPasswordAad = \"Bot_DeleteAppPasswordAad\",\r\n  DeleteBotFromAad = \"Bot_DeleteBotFromAad\",\r\n  DeleteBotFromFramework = \"Bot_DeleteBotFromFramework\",\r\n  ResetDeletedBotId = \"Bot_ResetDeletedBotId\",\r\n  ShowCopyPasswordDialog = \"Bot_ShowCopyPasswordDialog\",\r\n  BotFailure = \"Bot_Failure\",\r\n  GetBotFromAadFailure = \"Bot_GetBorFromAadFailure\",\r\n  UpdateBotListViewModel = \"Bot_UpdateBotListViewModel\",\r\n  GetBotEvents = \"Bot_GetBotEvents\",\r\n  UpdateBotEvents = \"Bot_UpdateBotEvents\"\r\n}\r\n\r\nexport const GetAllBots = (notificationFailureString: string | undefined, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBotFrameworkBot[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetBots, Strings.getBotsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.GetAllBots}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      notificationFailureString &&\r\n        dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getBotsError);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateBotWithAad = (\r\n  data: { displayName: string },\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (bot: IBot) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/v2`,\r\n    method: ApiMethods.Post,\r\n    data: {\r\n      ...data,\r\n      signInAudience: \"AzureADMultipleOrgs\",\r\n    },\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAadApplication) => {\r\n      Logger.LogInfo(TelemetryEventName.AddNewBotAad, data.id);\r\n      const newData = {\r\n        botId: data.appId!,\r\n        callingEndpoint: \"\",\r\n        messagingEndpoint: \"\",\r\n        name: data.displayName!,\r\n      };\r\n      return CreateBotWithFramework(newData, notificationSuccessString, notificationFailureString, dispatch, callback);\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.AddNewBotAadError, Strings.addNewBotAadError);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          notificationFailureString,\r\n          NotificationType.Error,\r\n          GetErrorContext(error),\r\n          Links.BotFrameworkKnownIssues\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateBotWithFramework = (\r\n  data: {\r\n    botId: string;\r\n    callingEndpoint: string;\r\n    messagingEndpoint: string;\r\n    name: string;\r\n  },\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (bot: IBot) => void\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onSuccess: (data: IBot) => {\r\n      callback && callback(data);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      Logger.LogInfo(TelemetryEventName.AddNewBot, data.botId);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.CreateBot}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.AddNewBotError, Strings.addNewBotError);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetBotFromFramework = (botId: string, type: BotType, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBot) => {\r\n      Logger.LogInfo(TelemetryEventName.GetBot, data.botId);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        switch (type) {\r\n          case BotType.BotManagement:\r\n            return {\r\n              type: `${StateKeys.Bots}/${BotActionTypes.GetBotManagementBotFromFramework}`,\r\n              payload: data\r\n            };\r\n          case BotType.AppBot:\r\n            return {\r\n              type: `${StateKeys.Bots}/${BotActionTypes.GetAppBotFromFramework}`,\r\n              payload: data\r\n            };\r\n          case BotType.AppMessagingExtensionBot:\r\n            return {\r\n              type: `${StateKeys.Bots}/${BotActionTypes.GetAppMessagingExtensionBotFromFramework}`,\r\n              payload: data\r\n            };\r\n        }\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.GetBotError, Strings.getBotError);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ResetBotFromFramework = () => ({\r\n  type: `${StateKeys.Bots}/${BotActionTypes.GetBotManagementBotFromFramework}`,\r\n  payload: {}\r\n});\r\n\r\nexport const GetBotFromAad = (botId: string, type: BotType, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/v2/${botId}?isAppId=true`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (data: IBotAad[]) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data?.length > 0) {\r\n        Logger.LogInfo(TelemetryEventName.GetBot, data[0].id);\r\n        switch (type) {\r\n          case BotType.BotManagement:\r\n            return {\r\n              type: `${StateKeys.Bots}/${BotActionTypes.GetBotManagementBotFromAad}`,\r\n              payload: data[0]\r\n            };\r\n          case BotType.AppBot:\r\n            return {\r\n              type: `${StateKeys.Bots}/${BotActionTypes.GetAppBotFromAad}`,\r\n              payload: data[0]\r\n            };\r\n          case BotType.AppMessagingExtensionBot:\r\n            return {\r\n              type: `${StateKeys.Bots}/${BotActionTypes.GetAppMessagingExtensionBotFromAad}`,\r\n              payload: data[0]\r\n            };\r\n        }\r\n      }\r\n    },\r\n    onFailure: (error: { data: IBot }) => {\r\n      if (error) {\r\n        Logger.LogError(TelemetryEventName.GetBotError, Strings.getBotError);\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.GetBotFromAadFailure}`,\r\n          payload: error.data\r\n        };\r\n      }\r\n    }\r\n  });\r\n\r\nexport const UpdateBotMessageEndpointAddress = (\r\n  botId: string,\r\n  data: IBotFrameworkBot,\r\n  botType: BotType,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBotFrameworkBot) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      Logger.LogInfo(TelemetryEventName.UpdateBotMessageEndpointAddressSuccessfully, data.botId);\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.UpdateBotFramework}`,\r\n          botType,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateBotMessageEndpointAddressError, Strings.endpointFailedToUpdate);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateBotChannels = (\r\n  botId: string,\r\n  data: IBotFrameworkBot,\r\n  botType: BotType,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBotFrameworkBot) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      Logger.LogInfo(TelemetryEventName.UpdateBotChannelsSuccessfully, data.botId);\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.UpdateBotFramework}`,\r\n          botType,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateBotChannelsError, Strings.channelsFailedToUpdate);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteAppPasswordAad = (\r\n  objectId: string,\r\n  passwordId: string,\r\n  botType: BotType,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/aadapp/${objectId}/passwords/${passwordId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAadApplication) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteAppPasswordSuccessfully, objectId);\r\n      if (data) {\r\n        data.passwords?.forEach((password) => {\r\n          password.keyId = password.id;\r\n        });\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.UpdateBotAad}`,\r\n          botType,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.DeleteAppPasswordError, Strings.appPasswordDeleteError);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateAppPasswordAad = (\r\n  objectId: string,\r\n  botType: BotType,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/aadapp/${objectId}/passwords`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAadAppPassword) => {\r\n      Logger.LogInfo(TelemetryEventName.CreateAppPasswordSuccessfully, data.id);\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        dispatch(ShowCopyPasswordDialog(true));\r\n        data.keyId = data.id;\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.CreateAppPasswordAad}`,\r\n          botType,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.CreateAppPasswordError, Strings.appPasswordGenerateError);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ShowCopyPasswordDialog = (show: boolean): IAction => ({\r\n  type: `${StateKeys.Bots}/${BotActionTypes.ShowCopyPasswordDialog}`,\r\n  payload: show\r\n});\r\n\r\nexport const DeleteBotManagementBotFromFramework = (\r\n  botId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBot) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteBotFromFrameworkSuccessfully, botId);\r\n      if (data !== undefined) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.DeleteBotFromFramework}`,\r\n          payload: botId\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.DeleteBotFromFrameworkError, botId);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteBotManagementBotFromAad = (\r\n  teamsAppId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/aadapp/v2/${teamsAppId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAadApplication) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteBotFromAadSuccessfully, teamsAppId);\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.DeleteBotFromAad}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.DeleteBotFromAadError, teamsAppId);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const resetBotDeletedFlag = (): IAction => ({\r\n  type: `${StateKeys.Bots}/${UpdateTypes.ResetBotDeleted}`,\r\n  payload: {\r\n    [botsKeys.botDeleted]: false\r\n  }\r\n});\r\n\r\nexport const updateBotIcon = (botId: string, icon: string, dispatch: AppDispatch): IAction =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}/icon`,\r\n    method: ApiMethods.Post,\r\n    headers: { [\"Content-Type\"]: \"application/json\" },\r\n    data: icon,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (iconUrl: string) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, Strings.botIconUpdateActionSuccess, NotificationType.Success));\r\n      Logger.LogInfo(TelemetryEventName.UpdateBotIconSuccessfully, iconUrl);\r\n      if (iconUrl) {\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.UpdateBotFramework}`,\r\n          botType: BotType.BotManagement,\r\n          payload: { botId, iconUrl }\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, Strings.botIconUpdateActionFailure, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateBotIconError, Strings.endpointFailedToUpdate);\r\n      return {\r\n        type: `${StateKeys.Bots}/${BotActionTypes.BotFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ClearBotId = (): IAction => ({\r\n  type: `${StateKeys.Bots}/${BotActionTypes.ResetDeletedBotId}`,\r\n  payload: null\r\n});\r\n\r\nexport const UpdateBotListViewModel = (payload: Partial<IBotListViewModel>) => ({\r\n  type: `${StateKeys.Bots}/${BotActionTypes.UpdateBotListViewModel}`,\r\n  payload\r\n});\r\n\r\nexport const GetBotEvent = (botId: string, dispatch: AppDispatch, notificationSuccessString?: string) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}/meetings/subscription`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBotEvent) => {\r\n      Logger.LogInfo(TelemetryEventName.GetBotEvent, data.botId);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (notificationSuccessString) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      }\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.GetBotEvents}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.GetBotEventError, botId);\r\n      if (error.status === 404) {\r\n        if (notificationSuccessString) {\r\n          dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        }\r\n        return {\r\n          type: `${StateKeys.Bots}/${BotActionTypes.GetBotEvents}`,\r\n          payload: { botId, eventTypes: [] }\r\n        };\r\n      }\r\n    }\r\n  });\r\n\r\nexport const UpdateBotEvent = (\r\n  botId: string,\r\n  data: BotMeetingEventType[],\r\n  dispatch: AppDispatch,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}/meetings/subscription`,\r\n    method: ApiMethods.Put,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (response: IBotEvent) => {\r\n      Logger.LogInfo(TelemetryEventName.UpdateBotEvent, botId);\r\n      dispatch(GetBotEvent(botId, dispatch, notificationSuccessString));\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogInfo(TelemetryEventName.UpdateBotEventError, botId);\r\n    }\r\n  });\r\n\r\nexport const DeleteBotEvent = (\r\n  botId: string,\r\n  dispatch: AppDispatch,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/botframework/${botId}/meetings/subscription`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (response: IBotEvent) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteBotEvent, botId);\r\n      dispatch(GetBotEvent(botId, dispatch, notificationSuccessString));\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogInfo(TelemetryEventName.DeleteBotEventError, botId);\r\n    }\r\n  });\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport const MAX_PERSONAL_TABS = 16;\r\nexport const MAX_DOMAINS = 16;\r\nexport const MIN_URL_LENGTH = 8;\r\nexport const MicrosoftTenantId = \"72f988bf-86f1-41af-91ab-2d7cd011db47\";\r\nexport const MAX_CARD_NAME_LENGTH = 30;\r\nexport const DEFAULT_STATIC_TAB_NAME = \"scene-only-app-tab\";\r\nexport const DEFAULT_STATIC_TAB_URL_NAME = \"https://aka.ms/SceneInAction\";\r\nexport const DEFAULT_DEVELOPER_NAME = \"Microsoft\";\r\nexport const DEFAULT_WEBSITE_URL = \"https://www.microsoft.com\";\r\nexport const DEFAULT_PRIVACY_URL = \"https://privacy.microsoft.com/en-us/privacystatement\";\r\nexport const DEFAULT_TERMS_OF_USE_URL = \"https://www.microsoft.com/en-us/legal/intellectualproperty/copyright\";\r\nexport const SCENE_IMAGE_BASE_URI = `${process.env.REACT_APP_API_TOKEN_SOURCE  }/images/scene`;\r\nexport const COMPANY_ADMINISTRATOR = \"Company Administrator\";\r\nexport const OCV_PPE_APP_ID = 50045;\r\nexport const maxSpriteSize = 5000000;\r\nexport const maxTotalSceneAssests = 10000000;\r\nexport const maxParticipantsOrSprites = 50;\r\nexport const regexUUID = \"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\";\r\nexport const regexOnlyNumbers = /^\\d+$/;\r\nexport const preferredThemeKey = \"preferred_theme\";\r\nexport const preferredLanguageKey = \"preferred_language\";\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { KeyboardEvent, MouseEvent } from \"react\";\r\n\r\nexport function selfClickOnEnterOrSpace<E extends HTMLElement>(e: KeyboardEvent<E>) {\r\n  if (e.key === \"Enter\" || e.key === \" \") {\r\n    e.stopPropagation();\r\n    e?.currentTarget?.click();\r\n  }\r\n}\r\n\r\nexport const onActivate = (handler: (e: MouseEvent | KeyboardEvent) => void) => ({\r\n  onClick: (e: MouseEvent<HTMLElement>) => handler && handler(e),\r\n  onKeyDown: (e: KeyboardEvent<HTMLElement>) => {\r\n    e.stopPropagation();\r\n    if (e.key === \"Enter\" || e.key === \" \") {\r\n      handler && handler(e);\r\n    }\r\n  },\r\n  tabIndex: 0\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { Dispatch } from \"react\";\r\nimport { IDrawingDefinition, IScene, IImage, UploadImageType } from \"../../interfaces\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { History } from \"history\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport type { AxiosResponse } from \"axios\";\r\n\r\nexport enum SceneActionTypes {\r\n  GetAllScenes = \"Scene_GetAllScenes\",\r\n  GetScene = \"Scene_GetScene\",\r\n  CreateScene = \"Scene_CreateScene\",\r\n  UpdateScene = \"Scene_UpdateScene\",\r\n  DeleteScene = \"Scene_DeleteScene\",\r\n  SceneFailure = \"Scene_SceneFailure\",\r\n  UploadSceneImage = \"Scene_UploadImage\",\r\n  AddImageToSceneImageList = \"Scene_AddImageToSceneImageList\",\r\n  CleanImageList = \"Scene_CleanImageList\",\r\n  CanvasInitStatus = \"Scene_CanvasInitStatus\",\r\n  ImportScene = \"Scene_importScene\",\r\n  CleanScene = \"Scene_cleanScene\",\r\n  SceneAppDialog = \"Scene_AppDialog\",\r\n  SceneShareDialog = \"Scene_ShareDialog\",\r\n  BlinkImage = \"Blink_Image\",\r\n  SceneLoader = \"Scene_Loader\",\r\n  SceneDeleteDialog = \"Scene_Delete_Dialog\",\r\n  SceneTemplatesDialog = \"Scene_Templates_Dialog\",\r\n  Drawing = \"drawing\",\r\n  SampleSceneMode = \"Scene_SampleMode\",\r\n  forceUpdate = \"force_Update\",\r\n  updateSceneList = \"update_SceneList\",\r\n  DrawingFailure = \"Scene_DrawingFailure\",\r\n  GetDrawing = \"Drawing_GetDrawing\",\r\n  SaveDrawing = \"Drawing_SaveDrawing\",\r\n  UpdateDrawing = \"Drawing_UpdateDrawing\",\r\n  DeleteDrawing = \"Drawing_DeleteDrawing\",\r\n}\r\n\r\nexport const GetAllScenes = (notificationFailureString: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IScene[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetScenesSuccessfully, Strings.getScenesSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.GetAllScenes}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetScenesError, Strings.getScenesError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SceneFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetScene = (sceneId: string, notificationFailureString: string, dispatch: AppDispatch, isSample?: boolean) => {\r\n  const q = isSample ? `?isSample=true` : \"\";\r\n  return apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/${sceneId}${q}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IScene) => {\r\n      Logger.LogInfo(TelemetryEventName.GetSceneSuccessfully, Strings.getScenesSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.GetScene}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetSceneError, Strings.getScenesError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SceneFailure}`\r\n      };\r\n    }\r\n  });\r\n};\r\n\r\nexport const PopulateScene = (data: IScene) => ({\r\n  type: `${StateKeys.SceneDesigner}/${SceneActionTypes.GetScene}`,\r\n  payload: data\r\n});\r\n\r\nexport const CreateScene = (\r\n  data: IScene,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  history: History,\r\n  callback: (success: boolean) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IScene) => {\r\n      callback(true);\r\n      Logger.LogInfo(TelemetryEventName.CreateSceneSuccessfully, data.id);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      history.push(data.id);\r\n\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.CreateScene}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      callback(false);\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getScenesError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SceneFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateScene = (\r\n  data: IScene,\r\n  sceneId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (success: boolean) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/${sceneId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IScene) => {\r\n      callback && callback(true);\r\n      Logger.LogInfo(TelemetryEventName.UpdateSceneSuccessfully, data.id);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.UpdateScene}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      callback && callback(false);\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateSceneError, data.id);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SceneFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UploadSceneBackgroundImage = (\r\n  data: IImage,\r\n  sceneId: string,\r\n  dispatch: AppDispatch,\r\n  callback: (success: boolean) => void,\r\n  isSample: boolean\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/${sceneId}/images?isSample=${isSample}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: () => ({\r\n      type: `${StateKeys.SceneDesigner}/${SceneActionTypes.UploadSceneImage}`,\r\n      payload: UploadImageType.inProgress\r\n    }),\r\n    onSuccess: (_data: IScene) => {\r\n      Logger.LogInfo(TelemetryEventName.UploadedSceneBackgroundImageSuccessfully, sceneId);\r\n      callback(true);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.UploadSceneImage}`,\r\n        payload: UploadImageType.uploadSuccess\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.UploadedSceneBackgroundImageError, sceneId);\r\n      callback(false);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.UploadSceneImage}`,\r\n        payload: UploadImageType.uploadError\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteScene = (\r\n  sceneId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  history: History,\r\n  dispatch: AppDispatch,\r\n  isSample?: boolean\r\n) => {\r\n  const q = isSample ? `?isSample=true` : \"\";\r\n  return apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/${sceneId}${q}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: boolean) => {\r\n      if (data) {\r\n        history.push(\"/scenes\");\r\n        Logger.LogInfo(TelemetryEventName.DeleteSceneSuccessfully, sceneId);\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.SceneDesigner}/${SceneActionTypes.DeleteScene}`,\r\n          payload: { id: sceneId, isSample: !!isSample }\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteSceneError, sceneId);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SceneFailure}`\r\n      };\r\n    }\r\n  });\r\n};\r\n\r\nexport const CopySampleSceneImages = (sourceId: string, destinationId: string, _dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/${sourceId}/images/copy/${destinationId}?isSample=true`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: uiLoadingSlice.actions[UILoadingActionTypes.Complete],\r\n    onFailure: uiLoadingSlice.actions[UILoadingActionTypes.Complete]\r\n  });\r\n\r\nexport const SetSampleSceneMode = (sampleMode = false) => ({\r\n  type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SampleSceneMode}`,\r\n  payload: sampleMode\r\n});\r\n\r\nexport const GetDrawing = (drawingId: string, notificationFailureString: string, dispatch: Dispatch<any>) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/drawings/${drawingId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IDrawingDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.GetDrawingSuccessfully, Strings.getDrawingsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.GetDrawing}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetDrawingError, Strings.getDrawingsError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.DrawingFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const SaveDrawing = (drawing: IDrawingDefinition, notificationFailureString: string, dispatch: Dispatch<any>) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/drawings`,\r\n    method: ApiMethods.Post,\r\n    data: drawing,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IDrawingDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.GetDrawingSuccessfully, Strings.getDrawingsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.SaveDrawing}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetDrawingError, Strings.getDrawingsError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.DrawingFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateDrawing = (drawing: IDrawingDefinition, notificationFailureString: string, dispatch: Dispatch<any>) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/drawings/${drawing.id}`,\r\n    method: ApiMethods.Post,\r\n    data: drawing,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IDrawingDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.GetDrawingSuccessfully, Strings.getDrawingsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.UpdateDrawing}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetDrawingError, Strings.getDrawingsError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.DrawingFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteDrawing = (drawingId: string, notificationFailureString: string, dispatch: Dispatch<any>) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/scenes/drawings/${drawingId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IDrawingDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.GetDrawingSuccessfully, Strings.getDrawingsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.DeleteDrawing}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetDrawingError, Strings.getDrawingsError);\r\n      return {\r\n        type: `${StateKeys.SceneDesigner}/${SceneActionTypes.DrawingFailure}`\r\n      };\r\n    }\r\n  });\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { ToolbarKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport set from \"lodash/set\";\r\n\r\nexport enum ToolbarActionTypes {\r\n  SaveAndRevert = \"Toolbar_SaveAndRevert\"\r\n}\r\n\r\nexport interface IToolbarState {\r\n  [ToolbarKeys.Actions]?: Partial<{\r\n    onAddScene: () => void;\r\n    onSceneEditor: () => void;\r\n    onSave: () => void;\r\n    onRevert: () => void;\r\n    isDisabled: boolean;\r\n    isRevertDisabled: boolean;\r\n    dialogHeader: string;\r\n    dialogContent: string;\r\n  }>;\r\n}\r\n\r\nconst initialState: IToolbarState = {};\r\n\r\nexport const toolbarSlice = createSlice({\r\n  name: StateKeys.Toolbar,\r\n  initialState,\r\n  reducers: {\r\n    [ToolbarActionTypes.SaveAndRevert]: (state, action: PayloadAction<IToolbarState[\"actions\"]>) => {\r\n      set(state, ToolbarKeys.Actions, action.payload);\r\n    }\r\n  }\r\n});\r\n\r\nexport default toolbarSlice.reducer;\r\n","// These enums is in parity with the fields provided By IKS\r\n\r\nexport enum EntityType {\r\n    User = \"Users\",\r\n    Tenant = \"Tenants\",\r\n}\r\n\r\n// ISO 3 Country code standard - https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes\r\nexport enum Area {\r\n    AllUp = \"all\",\r\n    UnitedStates = \"USA\",\r\n    WesternEurope = \"WEU\",\r\n    LatinAmerica = \"LAM\",\r\n    Japan = \"JPN\",\r\n    India = \"IND\",\r\n    Canada = \"CAN\",\r\n    AustraliaAndNewZealand = \"ANZ\",\r\n    UnitedKingdom = \"GBR\",\r\n    France = \"FRA\",\r\n    AsiaPacific = \"APC\",\r\n    Germany = \"DEU\",\r\n    Switzerland = \"CHE\",\r\n    Korea = \"KOR\",\r\n    Netherlands = \"NLD\",\r\n    CentralEuropeAndMiddleEastAndAfrica = \"CEM\",\r\n}\r\n\r\nexport enum Host {\r\n    AllUp = \"all\",\r\n    Teams = \"teams\",\r\n    Outlook = \"outlook\",\r\n    Harmony = \"harmony\",\r\n    Copilot = \"copilot\",\r\n}\r\n\r\nexport enum Capability {\r\n    AllUp = \"all\",\r\n    PersonalApp = \"personalTabPersonalBot\",\r\n    Tab = \"nonPersonalTab\",\r\n    MessageExtension = \"messageExtension\",\r\n    Connectors = \"connectors\",\r\n    Bot = \"nonPersonalBot\",\r\n    PersonalTab = \"personalTab\",\r\n}\r\n\r\nexport enum OS {\r\n    AllUp = \"all\",\r\n    iOS = \"iOS\",\r\n    Android = \"android\",\r\n    Mac = \"mac\",\r\n    Windows = \"windows\",\r\n    Unknown = \"unknown\",\r\n    ChromeOS = \"chromeOS\",\r\n    Other = \"other\",\r\n}\r\n\r\nexport enum Platform {\r\n    AllUp = \"all\",\r\n    Mobile = \"mobile\",\r\n    Web = \"web\",\r\n    Desktop = \"desktop\",\r\n    Universal = \"universal\",\r\n    Unknown = \"unknown\",\r\n}\r\n\r\nexport enum Period {\r\n    Monthly = \"RL28\",\r\n    Daily = \"RL1\",\r\n    Weekly = \"RL7\",\r\n}\r\n\r\nexport enum Metric {\r\n    Active = \"TotalActive\",\r\n    New = \"TotalNew\",\r\n    Returning = \"TotalReturning\",\r\n    Lapsed = \"TotalLapsed\",\r\n    Resurrected = \"TotalResurrected\",\r\n    Median = \"MedianDaysUsed\",\r\n    Percentage5Days = \"PercentageOf5PlusDaysUsed\",\r\n    Ratio = \"DauMauRatio\",\r\n}\r\n\r\nexport enum Group {\r\n    OS = \"OS\",\r\n    Platform = \"Platform\",\r\n    Region = \"Region\",\r\n    Host = \"Host\",\r\n    Capability = \"Capability\",\r\n}\r\n\r\nexport enum GroupName {\r\n    UsageData = \"usageData\",\r\n    OS = \"usageData_OS\",\r\n    Platform = \"usageData_Platform\",\r\n    Area = \"usageData_Region\",\r\n    Host = \"usageData_Host\",\r\n    HostCapability = \"usageData_Capability_Host\",\r\n}\r\n","import { IUserContext } from \"../../interfaces/IUserContext\";\r\nimport { UserContextActionTypes } from \"../actions/UserContextAction\";\r\nimport { StateKeys, updateUserContext } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { getActionPayload } from \"../store/persistStore\";\r\nimport { RegionSettings } from \"../../objects/regionSettings\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\n\r\nconst cachedUserRegion = getActionPayload(UserContextActionTypes.UserContextRegion);\r\nlet userInitalRegionSetting: string | undefined;\r\n\r\nif (cachedUserRegion) {\r\n  try {\r\n    const cacheUserRegionSettings: RegionSettings = JSON.parse(cachedUserRegion);\r\n    if ((cacheUserRegionSettings.SettingsExpiry ?? 0) >= Date.now()) {\r\n      userInitalRegionSetting = cacheUserRegionSettings.TeamsDevPortalRegionSetting;\r\n    }\r\n  } catch (error) {\r\n    Logger.LogInfo(TelemetryEventName.GetRegionEndpointsError, \"Unable to parse cached user region.\");\r\n  }\r\n}\r\n\r\nconst initialState: IUserContext = {\r\n  loginSuccess: false,\r\n  userRegion: userInitalRegionSetting\r\n};\r\n\r\nexport const userContextSlice = createSlice({\r\n  name: StateKeys.UserContext,\r\n  initialState,\r\n  reducers: {\r\n    [UserContextActionTypes.UpdateUserContext]: updateUserContext()\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { cardsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport {\r\n  getOwnerCards,\r\n  getTenantCards,\r\n  getCard,\r\n  StateKeys,\r\n  deleteCard,\r\n  createCard,\r\n  updateCard,\r\n  clearCard,\r\n  setOwnerCardListComplete,\r\n  setTenantCardListComplete\r\n} from \"./ReducerUtils\";\r\nimport { CardActionTypes } from \"../actions/AdaptiveCardActions\";\r\nimport { ICard } from \"../../interfaces\";\r\n\r\ninterface IAdaptiveCardState {\r\n  [cardsKeys.TenantCardsModel]: {\r\n    [cardsKeys.TenantCards]: ICard[];\r\n    [cardsKeys.TenantCardListComplete]: boolean;\r\n    [cardsKeys.TenantCardListPageNumber]: number;\r\n  };\r\n  [cardsKeys.OwnerCardsModel]: {\r\n    [cardsKeys.OwnerCards]: ICard[];\r\n    [cardsKeys.OwnerCardListComplete]: false;\r\n    [cardsKeys.OwnerCardListPageNumber]: 1;\r\n  };\r\n  [cardsKeys.Card]: ICard | null;\r\n}\r\n\r\nconst initialState: IAdaptiveCardState = {\r\n  [cardsKeys.TenantCardsModel]: {\r\n    [cardsKeys.TenantCards]: [],\r\n    [cardsKeys.TenantCardListComplete]: false,\r\n    [cardsKeys.TenantCardListPageNumber]: 1\r\n  },\r\n  [cardsKeys.OwnerCardsModel]: {\r\n    [cardsKeys.OwnerCards]: [],\r\n    [cardsKeys.OwnerCardListComplete]: false,\r\n    [cardsKeys.OwnerCardListPageNumber]: 1\r\n  },\r\n  [cardsKeys.Card]: null\r\n};\r\n\r\nexport const adaptiveCardSlice = createSlice({\r\n  name: StateKeys.AdaptiveCards,\r\n  initialState,\r\n  reducers: {\r\n    [CardActionTypes.GetAllOwnerCards]: getOwnerCards(),\r\n    [CardActionTypes.SetOwnerCardListComplete]: setOwnerCardListComplete(),\r\n    [CardActionTypes.GetAllTenantCards]: getTenantCards(),\r\n    [CardActionTypes.SetTenantCardListComplete]: setTenantCardListComplete(),\r\n    [CardActionTypes.GetCard]: getCard(StateKeys.AdaptiveCards),\r\n    [CardActionTypes.CreatCard]: createCard(),\r\n    [CardActionTypes.UpdateCard]: updateCard(),\r\n    [CardActionTypes.DeleteCard]: deleteCard(),\r\n    [CardActionTypes.ClearCard]: clearCard(StateKeys.AdaptiveCards)\r\n  }\r\n});\r\n\r\nexport default adaptiveCardSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { AnalyticsKeys } from \"../../constants/Enums/AnalyticsKeys\";\r\nimport { AnalyticsActionTypes } from \"../actions/AnalyticsActions\";\r\nimport { getAnalytics, loadAnalytics, setFailureAnalytics, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { IMetric, IMetricData } from \"../../interfaces/IMetricData\";\r\n\r\nexport interface IAnalyticsActiveUsersPayload {\r\n  isLoadingCompleted: boolean;\r\n  hasFailed?: boolean;\r\n  data?: IMetric[];\r\n}\r\n\r\nexport interface IAnalyticsMetricPayload {\r\n  isLoadingCompleted: boolean;\r\n  hasFailed?: boolean;\r\n  data?: IMetricData;\r\n}\r\n\r\nexport interface IAnalyticsState {\r\n  [appId: string]: {\r\n    [AnalyticsKeys.ActiveUsers]?: IAnalyticsActiveUsersPayload;\r\n    [AnalyticsKeys.Metrics]?: IAnalyticsMetricPayload;\r\n  };\r\n}\r\n\r\nconst initialState: IAnalyticsState = {};\r\n\r\nexport const analyticsSlice = createSlice({\r\n  name: StateKeys.Analytics,\r\n  initialState,\r\n  reducers: {\r\n    [AnalyticsActionTypes.LoadActiveUserData]: loadAnalytics(AnalyticsKeys.ActiveUsers),\r\n    [AnalyticsActionTypes.GetActiveUserData]: getAnalytics(AnalyticsKeys.ActiveUsers),\r\n    [AnalyticsActionTypes.GetActiveUserDataFailure]: setFailureAnalytics(AnalyticsKeys.ActiveUsers),\r\n    [AnalyticsActionTypes.LoadMetricData]: loadAnalytics(AnalyticsKeys.Metrics),\r\n    [AnalyticsActionTypes.GetMetricData]: getAnalytics(AnalyticsKeys.Metrics),\r\n    [AnalyticsActionTypes.GetMetricDataFailure]: setFailureAnalytics(AnalyticsKeys.Metrics)\r\n  }\r\n});\r\n\r\nexport default analyticsSlice.reducer;\r\n","import { appCatalogKeys } from \"../../constants/Enums/AppCatalogKeys\";\r\nimport { AppCatalogActionTypes } from \"../actions/AppCatalogActions\";\r\nimport {\r\n  StateKeys,\r\n  getAppCatalogName,\r\n  checkIfAppAlreadyPublished,\r\n  uploadApp,\r\n  updateApp,\r\n  cancelRequest,\r\n  getAppByTeamsAppId\r\n} from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { IAppCatalogStatusCard } from \"../../interfaces\";\r\nimport { AppCatalogSubmitState } from \"../actions/AppCatalogSubmitState\";\r\n\r\n// todo: fix Object types\r\n\r\ninterface IAppCatalogApp {\r\n  id: string;\r\n  externalId: string;\r\n  appDefinitions?: IAppCatalogStatusCard[];\r\n  pendingApprovalExists: null | boolean;\r\n  resData: unknown[];\r\n  IsUploaded: boolean;\r\n  IsUpdated: boolean;\r\n  IsCancelled: boolean;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  data: Object;\r\n}\r\n\r\ninterface IAppCatalogState {\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [appCatalogKeys.CachedApp]: Partial<IAppCatalogApp>;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [appCatalogKeys.SubmittedApp]: Partial<IAppCatalogApp>;\r\n  [appCatalogKeys.CatalogName]: string;\r\n  [appCatalogKeys.AppPublishingStatus]: AppCatalogSubmitState;\r\n}\r\n\r\nconst initialState: IAppCatalogState = {\r\n  [appCatalogKeys.CachedApp]: {},\r\n  [appCatalogKeys.SubmittedApp]: {\r\n    pendingApprovalExists: null,\r\n    resData: [],\r\n    IsUploaded: false,\r\n    IsUpdated: false,\r\n    IsCancelled: false,\r\n    data: {}\r\n  },\r\n  [appCatalogKeys.CatalogName]: \"\",\r\n  [appCatalogKeys.AppPublishingStatus]: AppCatalogSubmitState.Unpublished\r\n};\r\n\r\nexport const appCatalogSlice = createSlice({\r\n  name: StateKeys.AppCatalog,\r\n  initialState,\r\n  reducers: {\r\n    [AppCatalogActionTypes.GetAppCatalogNameSuccess]: getAppCatalogName(StateKeys.AppCatalog),\r\n    [AppCatalogActionTypes.CheckIfAppAlreadyPublishedSuccess]: checkIfAppAlreadyPublished(StateKeys.AppCatalog),\r\n    [AppCatalogActionTypes.UploadAppSuccess]: uploadApp(StateKeys.AppCatalog),\r\n    [AppCatalogActionTypes.UpdateAppSuccess]: updateApp(StateKeys.AppCatalog),\r\n    [AppCatalogActionTypes.GetAppByTeamsAppIdSuccess]: getAppByTeamsAppId(StateKeys.AppCatalog),\r\n    [AppCatalogActionTypes.CancelRequestSuccess]: cancelRequest(StateKeys.AppCatalog)\r\n  }\r\n});\r\n\r\nexport default appCatalogSlice.reducer;\r\n","import { AppFlightingActionTypes } from \"../actions/AppFlightingActions\";\r\nimport { StateKeys, updateState } from \"./ReducerUtils\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { IAppDefinition } from \"../../interfaces\";\r\nimport { IAppFlightRollout } from \"../../interfaces/IAppFlightRollout\";\r\nimport { castDraft } from \"immer\";\r\nimport { appFlightingKeys } from \"../../constants/Enums/AppsKeys\";\r\n\r\nexport interface promoteAppError {\r\n  errorCode?: number;\r\n  errorMessage?: string;\r\n}\r\n\r\nexport interface IWithdrawAppError {\r\n  errorCode?: number;\r\n  errorMessage?: string;\r\n}\r\n\r\ninterface IFlightingValidationError {\r\n  message: string;\r\n  path: string;\r\n}\r\n\r\ninterface IAppFlightingState {\r\n  appDefinitions?: IAppDefinition[];\r\n  errors: AppFlightingFailurePayload;\r\n  isDeleted?: boolean;\r\n  rollouts: IAppFlightRollout[];\r\n  withdrawAppLink: string;\r\n  promoteAppError: promoteAppError;\r\n  withdrawAppError: IWithdrawAppError;\r\n}\r\n\r\nconst initialState: IAppFlightingState = {\r\n  rollouts: [],\r\n  errors: {\r\n    data: \"\"\r\n  },\r\n  withdrawAppLink: \"\",\r\n  promoteAppError: {},\r\n  withdrawAppError: {}\r\n};\r\n\r\nexport type AppFlightingFailurePayload = {\r\n  data?: string | IFlightingValidationError[];\r\n  timestamp?: string;\r\n  correlationId?: string;\r\n};\r\n\r\nexport const appFlightingSlice = createSlice({\r\n  name: StateKeys.AppFlighting,\r\n  initialState,\r\n  reducers: {\r\n    [AppFlightingActionTypes.CreateAppFlightingSuccess]: updateState(StateKeys.AppFlighting),\r\n    [AppFlightingActionTypes.CreateAppFlightingFailure]: (state, { payload }: PayloadAction<AppFlightingFailurePayload>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.GetAppFlightingSuccess]: updateState(StateKeys.AppFlighting),\r\n    [AppFlightingActionTypes.GetAppFlightingFailure]: updateState(StateKeys.AppFlighting),\r\n    [AppFlightingActionTypes.DeleteAppFlightingRollbacksSuccess]: updateState(StateKeys.AppFlighting),\r\n    [AppFlightingActionTypes.DeleteAppFlightingRollbacksFailure]: (state, { payload }: PayloadAction<AppFlightingFailurePayload>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.ResetError]: (state, { payload }: PayloadAction<AppFlightingFailurePayload>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.WithdrawAppSuccess]: (state, { payload }: PayloadAction<string>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(state[appFlightingKeys.errors]);\r\n      state[appFlightingKeys.withdrawAppLink] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.ClearWithdrawAppLink]: (state, { payload }: PayloadAction<string>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(state[appFlightingKeys.errors]);\r\n      state[appFlightingKeys.withdrawAppLink] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.PromoteAppError]: (state, { payload }: PayloadAction<promoteAppError>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(state[appFlightingKeys.errors]);\r\n      state[appFlightingKeys.withdrawAppLink] = castDraft(state[appFlightingKeys.withdrawAppLink]);\r\n      state[appFlightingKeys.promoteAppError] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.ClearPromoteAppError]: (state, { payload }: PayloadAction<promoteAppError>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(state[appFlightingKeys.errors]);\r\n      state[appFlightingKeys.withdrawAppLink] = castDraft(state[appFlightingKeys.withdrawAppLink]);\r\n      state[appFlightingKeys.promoteAppError] = castDraft(payload);\r\n    },\r\n    [AppFlightingActionTypes.WithdrawAppError]: (state, { payload }: PayloadAction<IWithdrawAppError>) => {\r\n      state[appFlightingKeys.appDefinitions] = castDraft(state[appFlightingKeys.appDefinitions]);\r\n      state[appFlightingKeys.isDeleted] = castDraft(state[appFlightingKeys.isDeleted]);\r\n      state[appFlightingKeys.rollouts] = castDraft(state[appFlightingKeys.rollouts]);\r\n      state[appFlightingKeys.errors] = castDraft(state[appFlightingKeys.errors]);\r\n      state[appFlightingKeys.withdrawAppLink] = castDraft(state[appFlightingKeys.withdrawAppLink]);\r\n      state[appFlightingKeys.promoteAppError] = castDraft(state[appFlightingKeys.promoteAppError]);\r\n      state[appFlightingKeys.withdrawAppError] = castDraft(payload);\r\n    }\r\n  }\r\n});\r\n\r\nexport default appFlightingSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { AppUserInfo } from \"../../constants/Enums/AppsKeys\";\r\nimport { StateKeys, updateAppUserInfo } from \"./ReducerUtils\";\r\nimport { AppUserInfoTypes } from \"../actions/AppUserInfoActions\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// todo: fix Object types\r\n\r\nexport interface IAppUserState {\r\n  [AppUserInfo.AadId]: string;\r\n  [AppUserInfo.DisplayName]: string;\r\n  [AppUserInfo.IsAppAdmin]: { [appId: string]: boolean };\r\n  [AppUserInfo.IsMicrosoftEmployee]: boolean;\r\n  [AppUserInfo.IsTenantAdmin]: boolean;\r\n  [AppUserInfo.Username]: string;\r\n  [AppUserInfo.IsUserDevX]: boolean;\r\n}\r\n\r\nconst initialState: IAppUserState = {\r\n  [AppUserInfo.AadId]: \"\",\r\n  [AppUserInfo.DisplayName]: \"\",\r\n  [AppUserInfo.IsAppAdmin]: {},\r\n  [AppUserInfo.IsMicrosoftEmployee]: false,\r\n  [AppUserInfo.IsTenantAdmin]: false,\r\n  [AppUserInfo.Username]: \"\",\r\n  [AppUserInfo.IsUserDevX]: false\r\n};\r\n\r\nexport const appUserSlice = createSlice({\r\n  name: StateKeys.AppUserInfo,\r\n  initialState,\r\n  reducers: {\r\n    [AppUserInfoTypes.UpdateAppUserInfo]: updateAppUserInfo()\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { BotActionTypes } from \"../actions/BotActions\";\r\nimport { botsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport {\r\n  StateKeys,\r\n  getBots,\r\n  addNewBot,\r\n  getBotManagementBotFromFramework,\r\n  getBotManagementBotFromAad,\r\n  getAppBotFromFramework,\r\n  getAppBotFromAad,\r\n  getMessagingExtensionBotFromFramework,\r\n  getMessagingExtensionBotFromAad,\r\n  getAppBotFromAadFailure,\r\n  updateBotFramework,\r\n  updateBotAad,\r\n  addAppPasswordAad,\r\n  showCopyAppPasswordDialog,\r\n  deleteBotManagementBotFromAad,\r\n  deleteBotManagementBotFromFramework,\r\n  resetBotDeletedFlag,\r\n  clearBotId,\r\n  updateBotListViewModel,\r\n  getBotEvents\r\n} from \"./ReducerUtils\";\r\nimport { UpdateTypes } from \"../../constants/Enums/UpdateTypes\";\r\nimport { IBotEvent, IBotFrameworkBot, IBotListViewModel, SortDirections } from \"../../interfaces\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { LayoutType } from \"../../components/layoutToggle\";\r\n\r\n// todo: fix Object types\r\n\r\ninterface IBotsState {\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [botsKeys.BotAadBotManagement]: Object;\r\n  [botsKeys.BotFrameworkBotManagement]: IBotFrameworkBot | null;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [botsKeys.BotAadAppBot]: Object;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [botsKeys.BotFrameworkAppBot]: Object;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [botsKeys.BotAppPasswordAppBot]: Object;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [botsKeys.BotAadMessagingExtension]: Object;\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [botsKeys.BotFrameworkMessagingExtension]: Object;\r\n  [botsKeys.BotAppPassword]: {\r\n    value?: string;\r\n  };\r\n  [botsKeys.Bots]: null | IBotFrameworkBot[];\r\n  [botsKeys.showCopyPasswordDialog]: boolean;\r\n  [botsKeys.botDeleted]: boolean;\r\n  [botsKeys.DeletedBotId]: null | string;\r\n  [botsKeys.BotListViewModel]: IBotListViewModel;\r\n  [botsKeys.BotEvent]: IBotEvent\r\n}\r\n\r\nconst initialState: IBotsState = {\r\n  [botsKeys.BotAadBotManagement]: {},\r\n  [botsKeys.BotFrameworkBotManagement]: null,\r\n  [botsKeys.BotAadAppBot]: {},\r\n  [botsKeys.BotFrameworkAppBot]: {},\r\n  [botsKeys.BotAppPasswordAppBot]: {},\r\n  [botsKeys.BotAadMessagingExtension]: {},\r\n  [botsKeys.BotFrameworkMessagingExtension]: {},\r\n  [botsKeys.BotAppPassword]: {},\r\n  [botsKeys.Bots]: null,\r\n  [botsKeys.BotEvent]: { botId: \"\", eventTypes: [] },\r\n  [botsKeys.showCopyPasswordDialog]: false,\r\n  [botsKeys.botDeleted]: false,\r\n  [botsKeys.DeletedBotId]: null,\r\n  [botsKeys.BotListViewModel]: {\r\n    layout: LayoutType.List,\r\n    sort: {\r\n      column: \"botName\",\r\n      direction: SortDirections.DESC\r\n    },\r\n    search: \"\",\r\n    searching: false,\r\n    searchResults: []\r\n  }\r\n};\r\n\r\nexport const botsSlice = createSlice({\r\n  name: StateKeys.Bots,\r\n  initialState,\r\n  reducers: {\r\n    [BotActionTypes.GetAllBots]: getBots(StateKeys.Bots),\r\n    [BotActionTypes.CreateBot]: addNewBot(),\r\n    [BotActionTypes.GetBotManagementBotFromFramework]: getBotManagementBotFromFramework(),\r\n    [BotActionTypes.GetBotManagementBotFromAad]: getBotManagementBotFromAad(),\r\n    [BotActionTypes.GetAppBotFromFramework]: getAppBotFromFramework(),\r\n    [BotActionTypes.GetAppBotFromAad]: getAppBotFromAad(),\r\n    [BotActionTypes.GetAppMessagingExtensionBotFromFramework]: getMessagingExtensionBotFromFramework(),\r\n    [BotActionTypes.GetAppMessagingExtensionBotFromAad]: getMessagingExtensionBotFromAad(),\r\n    [BotActionTypes.UpdateBotFramework]: updateBotFramework(),\r\n    [BotActionTypes.UpdateBotAad]: updateBotAad(),\r\n    [BotActionTypes.CreateAppPasswordAad]: addAppPasswordAad(),\r\n    [BotActionTypes.ShowCopyPasswordDialog]: showCopyAppPasswordDialog(),\r\n    [BotActionTypes.GetBotFromAadFailure]: getAppBotFromAadFailure(),\r\n    [BotActionTypes.DeleteBotFromAad]: deleteBotManagementBotFromAad(),\r\n    [BotActionTypes.DeleteBotFromFramework]: deleteBotManagementBotFromFramework(),\r\n    [BotActionTypes.ResetDeletedBotId]: clearBotId(),\r\n    [BotActionTypes.UpdateBotListViewModel]: updateBotListViewModel(),\r\n    [UpdateTypes.ResetBotDeleted]: resetBotDeletedFlag(),\r\n    [BotActionTypes.GetBotEvents]: getBotEvents()\r\n  }\r\n});\r\n\r\nexport default botsSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum ComposeExtensionAssetKeys {\r\n  asset = \"asset\",\r\n  availableApis = \"availableApis\",\r\n  hasGetError = \"hasGetError\",\r\n  isLoading = \"isLoading\",\r\n  isUploadingAndUpdatingApp = \"isUploadingAndUpdatingApp\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport update from \"lodash/update\";\r\nimport { ComposeExtensionAssetActionTypes } from \"../actions/ComposeExtensionAssetActions\";\r\nimport { ComposeExtensionAssetKeys } from \"../../constants/Enums/ComposeExtensionAssetKeys\";\r\nimport { IGetAssetsResult, IAsset, IUploadAsset } from \"../../utils/messageExtensionAsset\";\r\nimport { APIInfo } from \"@microsoft/m365-spec-parser\";\r\n\r\nexport interface IComposeExtensionAssetState {\r\n  [ComposeExtensionAssetKeys.asset]: IAsset[];\r\n  [ComposeExtensionAssetKeys.hasGetError]: boolean;\r\n  [ComposeExtensionAssetKeys.isLoading]: boolean;\r\n  [ComposeExtensionAssetKeys.availableApis]: APIInfo[];\r\n  [ComposeExtensionAssetKeys.isUploadingAndUpdatingApp]: boolean;\r\n}\r\n\r\nconst initialState: IComposeExtensionAssetState = {\r\n  [ComposeExtensionAssetKeys.asset]: [],\r\n  [ComposeExtensionAssetKeys.hasGetError]: false,\r\n  [ComposeExtensionAssetKeys.isLoading]: false,\r\n  [ComposeExtensionAssetKeys.availableApis]: [],\r\n  [ComposeExtensionAssetKeys.isUploadingAndUpdatingApp]: false\r\n};\r\n\r\nexport const composeExtensionAssetSlice = createSlice({\r\n  name: StateKeys.ComposeExtensionAsset,\r\n  initialState,\r\n  reducers: {\r\n    [ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipStart]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.asset, () => []);\r\n      update(state, ComposeExtensionAssetKeys.availableApis, () => []);\r\n      update(state, ComposeExtensionAssetKeys.isLoading, () => true);\r\n      update(state, ComposeExtensionAssetKeys.hasGetError, () => false);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipSuccess]: (state, { payload }: PayloadAction<IGetAssetsResult>) => {\r\n      update(state, ComposeExtensionAssetKeys.asset, () => payload.assets);\r\n      update(state, ComposeExtensionAssetKeys.availableApis, () => payload.availableApis);\r\n      update(state, ComposeExtensionAssetKeys.isLoading, () => false);\r\n      update(state, ComposeExtensionAssetKeys.hasGetError, () => false);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipFailure]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.asset, () => []);\r\n      update(state, ComposeExtensionAssetKeys.availableApis, () => []);\r\n      update(state, ComposeExtensionAssetKeys.isLoading, () => false);\r\n      update(state, ComposeExtensionAssetKeys.hasGetError, () => true);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetZipSuccess]: (state, { payload }: PayloadAction<IAsset[]>) => {\r\n      update(state, ComposeExtensionAssetKeys.asset, () => payload);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetSuccess]: (state, { payload }: PayloadAction<IUploadAsset>) => {\r\n      update(state, ComposeExtensionAssetKeys.asset, () => [{ name: payload.name, data: payload.data }]);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UploadCompoeseExtensionAssetZipFailure]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.isUploadingAndUpdatingApp, () => false);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UploadCompoeseExtensionAssetFailure]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.isUploadingAndUpdatingApp, () => false);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetStart]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.isUploadingAndUpdatingApp, () => true);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetZipStart]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.isUploadingAndUpdatingApp, () => true);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.UpdateAvailableApis]: (state, { payload }: PayloadAction<APIInfo[]>) => {\r\n      update(state, ComposeExtensionAssetKeys.availableApis, () => payload);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.ClearAssets]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.availableApis, () => []);\r\n      update(state, ComposeExtensionAssetKeys.asset, () => []);\r\n      update(state, ComposeExtensionAssetKeys.hasGetError, () => false);\r\n      update(state, ComposeExtensionAssetKeys.isLoading, () => false);\r\n    },\r\n    [ComposeExtensionAssetActionTypes.CompleteUploadAndUpdate]: (state) => {\r\n      update(state, ComposeExtensionAssetKeys.isUploadingAndUpdatingApp, () => false);\r\n    }\r\n  }\r\n});\r\n\r\nexport default composeExtensionAssetSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { AppUserInfo } from \"../../constants/Enums/AppsKeys\";\r\nimport { StateKeys, updateAppUserInfo, updateState } from \"./ReducerUtils\";\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppOwnerContactInformationActionTypes } from \"../actions/ContactInformationActions\";\r\nimport { IAppOwnerContactInformation } from \"../../interfaces/IAppOwnerContactInformation\";\r\n\r\ninterface IAppOwnerContactInfoState {\r\n  appOwnerContactInformation?: IAppOwnerContactInformation;\r\n  updatePRLink?: string;\r\n}\r\nconst initialState: IAppOwnerContactInfoState = {\r\n  appOwnerContactInformation: {\r\n    appId: \"\",\r\n    appName: \"\",\r\n    icmTeam: \"\",\r\n    attestationDate: \"\",\r\n    teamName: \"\",\r\n    emails: []\r\n  },\r\n  updatePRLink: \"\"\r\n};\r\n\r\nexport const appOwnerContactInformationSlice = createSlice({\r\n  name: StateKeys.AppOwnerContactInformation,\r\n  initialState,\r\n  reducers: {\r\n    [AppOwnerContactInformationActionTypes.GetAppOwnerContactInformationSuccess]: (\r\n      state: any,\r\n      { payload }: PayloadAction<string>\r\n    ) => ({ ...state, appOwnerContactInformation: payload }),\r\n    [AppOwnerContactInformationActionTypes.GetAppOwnerContactInformationFailure]: (\r\n      state: any,\r\n      { payload }: PayloadAction<string>\r\n    ) => ({ ...state, appOwnerContactInformation: payload }),\r\n    [AppOwnerContactInformationActionTypes.UpdateAppOwnerContactInformationSuccess]: (\r\n      state: any,\r\n      { payload }: PayloadAction<string>\r\n    ) => ({ ...state, updatePRLink: payload }),\r\n    [AppOwnerContactInformationActionTypes.ClearAppOwnerContactInformationPRLink]: (\r\n      state: any,\r\n      { payload }: PayloadAction<string>\r\n    ) => ({ ...state, updatePRLink: \"\" })\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { ECSClientActionTypes } from \"../actions/ECSClientActions\";\r\nimport { setECSClientLoaded, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\ninterface IECSClientState {\r\n  isECSClientLoaded: boolean;\r\n}\r\n\r\nconst initialState: IECSClientState = { isECSClientLoaded: false };\r\n\r\nexport const ecsClientSlice = createSlice({\r\n  name: StateKeys.ECSClient,\r\n  initialState,\r\n  reducers: {\r\n    [ECSClientActionTypes.SetECSClientLoaded]: setECSClientLoaded()\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { ErrorPageActionTypes } from \"../actions/ErrorPageActions\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// todo: define the interface for this slice\r\n\r\nexport const errorPageSlice = createSlice({\r\n  name: StateKeys.ErrorPage,\r\n  initialState: {},\r\n  reducers: {\r\n    [ErrorPageActionTypes.ShowError]: updateState(StateKeys.ErrorPage)\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { setIsSceneDesignerEnabled, StateKeys } from \"./ReducerUtils\";\r\nimport { FeatureFlagTypes } from \"../actions/FeatureFlagActions\";\r\nimport { IFeatureFlag } from \"../../interfaces\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState: IFeatureFlag = {\r\n  isSceneDesignerEnabled: true,\r\n  isBotManagementEnabled: true,\r\n  isCardEditorEnabled: true,\r\n  isIdentityManagementEnabled: true,\r\n  isPackageValidationEnabled: true\r\n};\r\n\r\nexport const featureFlagSlice = createSlice({\r\n  name: StateKeys.FeatureFlag,\r\n  initialState,\r\n  reducers: {\r\n    [FeatureFlagTypes.SetIsSceneDesignerEnabled]: setIsSceneDesignerEnabled()\r\n  }\r\n});\r\n\r\nexport default featureFlagSlice.reducer;\r\n","import { HeaderActionTypes } from \"../actions/HeaderActions\";\r\nimport { getActionPayload } from \"../store/persistStore\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst shellInfo = getActionPayload(HeaderActionTypes.GetShellInfo);\r\n\r\n// todo: define interface\r\n\r\nexport const headerSlice = createSlice({\r\n  name: StateKeys.Header,\r\n  initialState: (shellInfo && JSON.parse(shellInfo)) || {},\r\n  reducers: {\r\n    [HeaderActionTypes.GetShellInfo]: updateState(StateKeys.Header)\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { IdentityAppsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport { IdentityAppsActionTypes } from \"../actions/IdentityAppsActions\";\r\nimport {\r\n  addTeamsApp,\r\n  clearIdentityApp,\r\n  createIdentityApp,\r\n  getIdentityAppInfo,\r\n  getIdentityApps,\r\n  showErrorMessage,\r\n  StateKeys,\r\n  updatePassword,\r\n  updateTeamsApp,\r\n  createNewPassword,\r\n  deleteAadAppPassword,\r\n  getAadAppCandidates,\r\n  clearAadAppCandidates\r\n} from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { IAadApplication, IAppDefinition } from \"../../interfaces\";\r\nimport { IAadAppV2 } from \"../../interfaces/IAadappv2\";\r\nimport { IdentityApp } from \"../../interfaces/IdentityAppsHeader\";\r\n\r\ninterface IIdentityPlatformState {\r\n  [IdentityAppsKeys.Apps]: IdentityApp[] | null;\r\n  [IdentityAppsKeys.AadAppCandidates]: IAadApplication[];\r\n  [IdentityAppsKeys.App]?: IAadAppV2;\r\n  [IdentityAppsKeys.TeamsApp]?: IAppDefinition;\r\n  [IdentityAppsKeys.OneTimePassword]?: { value: string };\r\n}\r\n\r\nconst initialState: IIdentityPlatformState = {\r\n  [IdentityAppsKeys.Apps]: null,\r\n  [IdentityAppsKeys.AadAppCandidates]: []\r\n};\r\n\r\nexport const identityPlatformSlice = createSlice({\r\n  name: StateKeys.IdentityApps,\r\n  initialState,\r\n  reducers: {\r\n    // Apps List Reducers\r\n    [IdentityAppsActionTypes.GetAllAadApps]: getIdentityApps(),\r\n    [IdentityAppsActionTypes.ClearApp]: clearIdentityApp(),\r\n    [IdentityAppsActionTypes.GetAadAppCandidate]: getAadAppCandidates(),\r\n    [IdentityAppsActionTypes.ClearAadAppCandidate]: clearAadAppCandidates(),\r\n\r\n    // Teams App Reducers\r\n    [IdentityAppsActionTypes.CreateTeamsApp]: addTeamsApp(),\r\n    [IdentityAppsActionTypes.UpdateTeamsApp]: updateTeamsApp(),\r\n\r\n    // Create Identity App Reducers\r\n    [IdentityAppsActionTypes.CreateIdentityApp]: createIdentityApp(),\r\n    [IdentityAppsActionTypes.CreateIdentityAppAndUpdateAppDefinition]: createIdentityApp(),\r\n\r\n    // Identity App Configuration Reducers\r\n    [IdentityAppsActionTypes.GetAadAppInfo]: getIdentityAppInfo(),\r\n    [IdentityAppsActionTypes.CreateAadAppPassword]: createNewPassword(),\r\n    [IdentityAppsActionTypes.DeleteAadAppPassword]: deleteAadAppPassword(),\r\n    [IdentityAppsActionTypes.ClearOneTimePassword]: updatePassword(),\r\n    [IdentityAppsActionTypes.GetAadAppInfoFailed]: showErrorMessage(StateKeys.IdentityApps)\r\n  }\r\n});\r\n\r\nexport default identityPlatformSlice.reducer;\r\n","import { NetworkActionStatus, NetworkActionTypes } from \"../actions/NetworkActions\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// todo: define interface\r\n\r\ninterface INetworkState {\r\n  status?: NetworkActionStatus;\r\n}\r\n\r\nconst initialState: INetworkState = {};\r\n\r\nexport const networkSlice = createSlice({\r\n  name: StateKeys.Network,\r\n  initialState,\r\n  reducers: {\r\n    [NetworkActionTypes.Start]: updateState(StateKeys.Network),\r\n    [NetworkActionTypes.Success]: updateState(StateKeys.Network),\r\n    [NetworkActionTypes.Error]: updateState(StateKeys.Network)\r\n  }\r\n});\r\n\r\nexport default networkSlice.reducer;\r\n","import { PreValidationActionTypes } from \"../actions/ValidationActions\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// todo: define interface\r\n\r\ninterface IPreValidationState {\r\n  errors: { title: string; content: string }[];\r\n}\r\n\r\nconst initialState: IPreValidationState = {\r\n  errors: []\r\n};\r\n\r\nexport const preValidationSlice = createSlice({\r\n  name: StateKeys.PreValidation,\r\n  initialState,\r\n  reducers: {\r\n    // only schema validation\r\n    [PreValidationActionTypes.Success]: updateState(StateKeys.PreValidation),\r\n    [PreValidationActionTypes.Failure]: updateState(StateKeys.PreValidation)\r\n  }\r\n});\r\n\r\nexport default preValidationSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { clearPublishingStatus, StateKeys, updatePublishingStatus, setPublishingStatusFailure } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { PublishingStatusActionTypes } from \"../actions/PublishingStatusActions\";\r\nimport { publishingStatusKeys } from \"../../constants/Enums/AppsKeys\";\r\n\r\nexport interface IPublishingStatusState {\r\n  [publishingStatusKeys.appPublishingStoreStatus]: [];\r\n  [publishingStatusKeys.appPublishingOneCdnStatus]: [];\r\n  [publishingStatusKeys.appPublishingCdnStatus]: [];\r\n  [publishingStatusKeys.appPublishingOmexStatus]: [];\r\n  [publishingStatusKeys.appPublishingStaticsRepoStatus]: []\r\n  [publishingStatusKeys.errors]: { status?: number; traceId?: string; timestamp?: string }\r\n}\r\n\r\nconst initialState: IPublishingStatusState = {\r\n  [publishingStatusKeys.appPublishingStoreStatus]: [],\r\n  [publishingStatusKeys.appPublishingOneCdnStatus]: [],\r\n  [publishingStatusKeys.appPublishingCdnStatus]: [],\r\n  [publishingStatusKeys.appPublishingOmexStatus]: [],\r\n  [publishingStatusKeys.appPublishingStaticsRepoStatus]: [],\r\n  [publishingStatusKeys.errors]: { status: undefined, traceId: \"\", timestamp: \"\" }\r\n};\r\n\r\nexport const publishingStatusSlice = createSlice({\r\n  name: StateKeys.AppPublishingStatusState,\r\n  initialState,\r\n  reducers: {\r\n    [PublishingStatusActionTypes.GetAppPublishingStatusSuccess]: updatePublishingStatus(StateKeys.AppPublishingStatusState),\r\n    [PublishingStatusActionTypes.GetAppPublishingStatusFail]: setPublishingStatusFailure(StateKeys.AppPublishingStatusState),\r\n    [PublishingStatusActionTypes.ClearPublishingStatus]: clearPublishingStatus(StateKeys.AppPublishingStatusState)\r\n  }\r\n});\r\n\r\nexport default publishingStatusSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n  getScenes,\r\n  getScene,\r\n  StateKeys,\r\n  deleteScene,\r\n  createScene,\r\n  updateScene,\r\n  uploadScene,\r\n  cleanImagesToUploadList,\r\n  addImageToImagesToUploadList,\r\n  CanvasInitStatus,\r\n  importScene,\r\n  cleanScene,\r\n  sceneAppDialogStatus,\r\n  sceneShareDialogStatus,\r\n  blinkImage,\r\n  sceneLoader,\r\n  sceneDeleteDialogStatus,\r\n  sceneTemplatesDialogStatus,\r\n  updateDrawingState,\r\n  forceUpdateSceneDesigner,\r\n  updateDrawing,\r\n  deleteDrawing,\r\n  setSampleSceneMode,\r\n} from \"./ReducerUtils\";\r\nimport { SceneActionTypes } from \"../actions/SceneActions\";\r\nimport { UploadImageType, LoaderType } from \"../../interfaces\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport ISceneDesigner from \"../../interfaces/ISceneDesigner\";\r\n\r\nconst initialState: ISceneDesigner = {\r\n  scene: null,\r\n  scenes: [],\r\n  samples: [],\r\n  uploadStatus: UploadImageType.none,\r\n  imagesToUpload: [],\r\n  isCanvasInitialized: false,\r\n  isSceneOnlyAppDialogOpen: false,\r\n  isSceneShareDialogOpen: false,\r\n  blinkImage: null,\r\n  sceneLoader: LoaderType.Loaded,\r\n  isSceneDeleteDialogOpen: false,\r\n  isSceneTemplatesDialogOpen: false,\r\n  sampleMode: false,\r\n  drawing: {\r\n    drawings: [],\r\n    isActivated: false,\r\n    isEditing: false\r\n  },\r\n  forceUpdate: false,\r\n};\r\n\r\nexport const sceneSlice = createSlice({\r\n  name: StateKeys.SceneDesigner,\r\n  initialState,\r\n  reducers: {\r\n    [SceneActionTypes.GetAllScenes]: getScenes(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.GetScene]: getScene(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.CreateScene]: createScene(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.UpdateScene]: updateScene(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.DeleteScene]: deleteScene(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.UploadSceneImage]: uploadScene(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.CleanImageList]: cleanImagesToUploadList(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.AddImageToSceneImageList]: addImageToImagesToUploadList(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.CanvasInitStatus]: CanvasInitStatus(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.ImportScene]: importScene(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.CleanScene]: cleanScene(),\r\n    [SceneActionTypes.SceneAppDialog]: sceneAppDialogStatus(),\r\n    [SceneActionTypes.SceneShareDialog]: sceneShareDialogStatus(),\r\n    [SceneActionTypes.BlinkImage]: blinkImage(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.SceneLoader]: sceneLoader(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.SceneDeleteDialog]: sceneDeleteDialogStatus(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.SceneTemplatesDialog]: sceneTemplatesDialogStatus(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.forceUpdate]: forceUpdateSceneDesigner(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.Drawing]: updateDrawingState(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.GetDrawing]: updateDrawing(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.UpdateDrawing]: updateDrawing(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.SaveDrawing]: updateDrawing(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.DeleteDrawing]: deleteDrawing(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.SampleSceneMode]: setSampleSceneMode(StateKeys.SceneDesigner),\r\n    [SceneActionTypes.updateSceneList]: (state: any, { payload }: any) => ({ ...state, scenes: payload }),\r\n  }\r\n});\r\n\r\nexport default sceneSlice.reducer;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { ThemeActionTypes } from \"../actions/ThemeActions\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { Themes } from \"../themes\";\r\n\r\n// todo: define interface\r\n\r\ninterface IThemeState {\r\n  themes?: Themes;\r\n}\r\n\r\nconst initialState: IThemeState = {};\r\n\r\nexport const themeSlice = createSlice({\r\n  name: StateKeys.Theme,\r\n  initialState,\r\n  reducers: {\r\n    [ThemeActionTypes.SetTheme]: updateState(StateKeys.Theme)\r\n  }\r\n});\r\n","import { userSettingsKeys } from \"../../constants/Enums/UserSettingsKeys\";\r\nimport { UserSettingsActionTypes } from \"../actions/UserSettingsActions\";\r\nimport { StateKeys, getLanguage, isSideLoadingInteractionEnabled, isUserDevX, isPrivilegedTeamsAdmin, getTenantSettings } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// todo: fix Object types\r\n\r\ninterface IUserSettingsState {\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  [userSettingsKeys.Language]: {\r\n    preferredLanguage?: string;\r\n  };\r\n  [userSettingsKeys.IsSideloadingEnabled]: boolean;\r\n  [userSettingsKeys.IsUserDevX]: boolean;\r\n  [userSettingsKeys.IsPrivilegedTeamsAdmin]: boolean;\r\n  [userSettingsKeys.TenantSettings]: {\r\n    developerToolsForShowingAppUsageMetrics: string[];\r\n    isSideLoadingInteractionEnabled: boolean;\r\n  };\r\n}\r\n\r\nconst initialState: IUserSettingsState = {\r\n  [userSettingsKeys.Language]: {},\r\n  [userSettingsKeys.IsSideloadingEnabled]: false,\r\n  [userSettingsKeys.IsUserDevX]: false,\r\n  [userSettingsKeys.IsPrivilegedTeamsAdmin]: false,\r\n  [userSettingsKeys.TenantSettings]: {\r\n      developerToolsForShowingAppUsageMetrics: [],\r\n      isSideLoadingInteractionEnabled: false,\r\n    }\r\n};\r\n\r\nexport const userSettingsSlice = createSlice({\r\n  name: StateKeys.UserSettings,\r\n  initialState,\r\n  reducers: {\r\n    [UserSettingsActionTypes.GetLanguage]: getLanguage(StateKeys.UserSettings),\r\n    [UserSettingsActionTypes.IsSideLoadingInteractionEnabledForTenant]: isSideLoadingInteractionEnabled(StateKeys.UserSettings),\r\n    [UserSettingsActionTypes.IsUserDevX]: isUserDevX(StateKeys.UserSettings),\r\n    [UserSettingsActionTypes.IsPrivilegedTeamsAdmin]: isPrivilegedTeamsAdmin(StateKeys.UserSettings),\r\n    [UserSettingsActionTypes.GetTenantSettings]: getTenantSettings(StateKeys.UserSettings)\r\n  }\r\n});\r\n\r\nexport default userSettingsSlice.reducer;\r\n","import { ValidationActionTypes } from \"../actions/ValidationActions\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport { validationResultsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport { IAppValidationIssue, IAppValidationNote, IAppValidationDetails } from \"../../interfaces/ValidationResults\";\r\n\r\n// todo: define interface\r\nexport interface IAppValidationState {\r\n  [validationResultsKeys.errors]: IAppValidationIssue[];\r\n  [validationResultsKeys.notes]: IAppValidationNote[];\r\n  [validationResultsKeys.warnings]: IAppValidationIssue[];\r\n  [validationResultsKeys.status]: string;\r\n  [validationResultsKeys.addInDetails]: IAppValidationDetails;\r\n  utcTimestamp: string | null;\r\n}\r\n\r\nconst initialState: IAppValidationState = {\r\n  [validationResultsKeys.errors]: [],\r\n  [validationResultsKeys.notes]: [],\r\n  [validationResultsKeys.warnings]: [],\r\n  [validationResultsKeys.status]: \"\",\r\n  [validationResultsKeys.addInDetails]: { displayName: \"\", developerName: \"\", version: \"\", manifestVersion: \"\" },\r\n  utcTimestamp: null\r\n};\r\n\r\nexport const validationSlice = createSlice({\r\n  name: StateKeys.Validation,\r\n  initialState,\r\n  reducers: {\r\n    // full validation via OMEX service\r\n    [ValidationActionTypes.Success]: updateState(StateKeys.Validation),\r\n    [ValidationActionTypes.Failure]: updateState(StateKeys.Validation)\r\n  }\r\n});\r\n","import { AppValidationActionTypes } from \"../actions/ValidationV2Actions\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { validationV2Keys } from \"../../constants/Enums/AppsKeys\";\r\nimport { IAppValidationList, IAppValidationItem, IAppValidationResponse } from \"../../interfaces/ValidationResults\";\r\nimport update from \"lodash/update\";\r\n\r\nexport interface IAppValidationState {\r\n  [validationV2Keys.validationCount]: number | null;\r\n  [validationV2Keys.validationList]: IAppValidationList;\r\n  [validationV2Keys.validationDetail]: IAppValidationItem | null;\r\n  [validationV2Keys.newValidation]: IAppValidationResponse;\r\n}\r\n\r\nconst initialState: IAppValidationState = {\r\n  [validationV2Keys.validationCount]: null,\r\n  [validationV2Keys.validationList]: { appValidations: null, continuationToken: null },\r\n  [validationV2Keys.validationDetail]: null,\r\n  [validationV2Keys.newValidation]: { appValidationId: null, status: null }\r\n};\r\n\r\nexport const validationV2Slice = createSlice({\r\n  name: StateKeys.ValidationV2,\r\n  initialState,\r\n  reducers: {\r\n    [AppValidationActionTypes.ValidationCount]: (state, { payload }: PayloadAction<{ totalCount: number }>) => {\r\n      update(state, [validationV2Keys.validationCount], () => payload.totalCount ? payload.totalCount : 0);\r\n    },\r\n    [AppValidationActionTypes.ValidationList]: (state, { payload }: PayloadAction<IAppValidationList>) => {\r\n      update(state, [validationV2Keys.validationList], () => ({\r\n        appValidations: payload.appValidations ? (state.validationsList.appValidations ? state.validationsList.appValidations.concat(payload.appValidations) : payload.appValidations) : [],\r\n        continuationToken: payload.continuationToken\r\n      }));\r\n    },\r\n    [AppValidationActionTypes.ValidationDetail]: (state, { payload }: PayloadAction<IAppValidationItem>) => {\r\n      update(state, [validationV2Keys.validationDetail], () => payload);\r\n    },\r\n    [AppValidationActionTypes.NewValidation]: (state, { payload }: PayloadAction<IAppValidationResponse>) => {\r\n      update(state, [validationV2Keys.newValidation], () => payload);\r\n    },\r\n    [AppValidationActionTypes.ValidationStateReset]: (state) => initialState,\r\n    [AppValidationActionTypes.ValidationDetailReset]: (state, { payload }: PayloadAction<IAppValidationResponse>) => {\r\n      update(state, [validationV2Keys.validationDetail], () => null);\r\n    },\r\n  }\r\n});\r\n","export enum ApiKeyRegistrationKeys {\r\n  ApiKeyRegistrationList = \"ApiKeyRegistrationList\",\r\n  ApiKeyRegistration = \"ApiKeyRegistration\",\r\n  ApiKeyRegistrationLoaded = \"ApiKeyRegistrationLoaded\",\r\n  ApiKeyRegistrationSaved = \"ApiKeyRegistrationSaved\",\r\n  ApiSecretSaved = \"ApiSecretSaved\"\r\n}\r\n","import { StateKeys } from \"./ReducerUtils\";\r\nimport { ApiKeyRegistrationsActionTypes } from \"../actions/ApiKeyRegistrationActions\";\r\nimport { ApiKeyRegistrationKeys } from \"../../constants/Enums/ApiKeyRegistrationKeys\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport {\r\n  IApiKeyClientRegistration,\r\n  ApiKeyTargetAppType,\r\n  IApiKeyClientSecret,\r\n  ApiSecretRegistrationAudienceType\r\n} from \"../../interfaces/IApiKeyRegistration\";\r\nimport update from \"lodash/update\";\r\n\r\nexport interface ApiKeyRegistrationsState {\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistrationLoaded]: boolean;\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistrationList]: IApiKeyClientRegistration[];\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistration]: IApiKeyClientRegistration;\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistrationSaved]: string | null;\r\n  [ApiKeyRegistrationKeys.ApiSecretSaved]: IApiKeyClientSecret | null;\r\n}\r\n\r\nconst emptyState: IApiKeyClientRegistration = {\r\n  id: \"\",\r\n  description: \"\",\r\n  targetUrlsShouldStartWith: [],\r\n  applicableToApps: ApiKeyTargetAppType.SpecificApp,\r\n  specificAppId: \"\",\r\n  clientSecrets: [],\r\n  targetAudience: ApiSecretRegistrationAudienceType.HomeTenant\r\n};\r\n\r\nconst initialState: ApiKeyRegistrationsState = {\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistrationLoaded]: false,\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistrationList]: [],\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistration]: emptyState,\r\n  [ApiKeyRegistrationKeys.ApiKeyRegistrationSaved]: null,\r\n  [ApiKeyRegistrationKeys.ApiSecretSaved]: null\r\n};\r\n\r\ninterface ApiKeyRegistrationListAPIResponse {\r\n  value: IApiKeyClientRegistration[];\r\n}\r\n\r\nexport const apiKeyRegistrationsSlice = createSlice({\r\n  name: StateKeys.ApiKeyRegistrations,\r\n  initialState,\r\n  reducers: {\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationList_Success]: (\r\n      state,\r\n      { payload }: PayloadAction<ApiKeyRegistrationListAPIResponse>\r\n    ) => {\r\n      payload?.value\r\n        ? update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationList], () => payload.value)\r\n        : update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationList], () => []);\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationItemRead_Success]: (\r\n      state,\r\n      { payload }: PayloadAction<IApiKeyClientRegistration>\r\n    ) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationLoaded], () => true);\r\n      update(\r\n        state,\r\n        [ApiKeyRegistrationKeys.ApiKeyRegistration],\r\n        () =>\r\n          ({\r\n            id: payload.id,\r\n            description: payload.description,\r\n            targetUrlsShouldStartWith: payload.targetUrlsShouldStartWith,\r\n            applicableToApps: payload.applicableToApps,\r\n            specificAppId: payload.specificAppId,\r\n            clientSecrets: payload.clientSecrets as IApiKeyClientSecret[],\r\n            targetAudience: payload.targetAudience\r\n          } as IApiKeyClientRegistration)\r\n      );\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationReset]: (state) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationLoaded], () => false);\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistration], () => emptyState);\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationSavedIDReset]: (state) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationSaved], () => null);\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationDelete_Success]: (state, { payload }) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationList], () =>\r\n        state[ApiKeyRegistrationKeys.ApiKeyRegistrationList].filter((item) => item.id !== payload.id)\r\n      );\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationCreate_Success]: (state, payload) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationSaved], () => payload.payload.id);\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APIKeyRegistrationUpdate_Success]: (state, { payload }) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiKeyRegistrationSaved], () => payload);\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.APISecretCreate_Success]: (state, { payload }) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiSecretSaved], () => payload as IApiKeyClientSecret);\r\n    },\r\n\r\n    [ApiKeyRegistrationsActionTypes.ResetSavedApiSecret]: (state) => {\r\n      update(state, [ApiKeyRegistrationKeys.ApiSecretSaved], () => null);\r\n    }\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum MessagingExtensionConfigurationKeys {\r\n  configuration = \"configuration\",\r\n  error = \"error\",\r\n  isLoading = \"isLoading\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport update from \"lodash/update\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { IMessagingExtensionConfiguration } from \"../../interfaces/IMessagingExtensionConfiguration\";\r\nimport { MessagingExtensionConfigurationKeys } from \"../../constants/Enums/MessagingExtensionConfigurationKeys\";\r\nimport { MessagingExtensionConfigurationActionTypes } from \"../actions/MessagingExtensionConfigurationActions\";\r\n\r\nexport interface IMessagingExtensionConfigurationState {\r\n  [MessagingExtensionConfigurationKeys.configuration]: IMessagingExtensionConfiguration | undefined;\r\n  [MessagingExtensionConfigurationKeys.error]: Omit<AxiosResponse, \"config\">;\r\n  [MessagingExtensionConfigurationKeys.isLoading]: boolean;\r\n}\r\n\r\nconst initialState: IMessagingExtensionConfigurationState = {\r\n  [MessagingExtensionConfigurationKeys.configuration]: {\r\n    id: \"\",\r\n    applicationId: \"\",\r\n    tenantId: \"\",\r\n    messagingExtensionId: \"\",\r\n    messagingExtension: {\r\n      objectId: \"\",\r\n      name: \"\",\r\n      canUpdateConfiguration: false,\r\n      commands: []\r\n    }\r\n  },\r\n  [MessagingExtensionConfigurationKeys.error]: { data: {}, status: 0, statusText: \"\", headers: {} },\r\n  [MessagingExtensionConfigurationKeys.isLoading]: false\r\n};\r\n\r\nexport const messagingExtensionConfigurationSlice = createSlice({\r\n  name: StateKeys.MessagingExtensionConfiguration,\r\n  initialState,\r\n  reducers: {\r\n    [MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationStart]: (state) => {\r\n      update(state, MessagingExtensionConfigurationKeys.isLoading, () => true);\r\n    },\r\n    [MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationSuccess]: (\r\n      state,\r\n      { payload }: PayloadAction<IMessagingExtensionConfiguration>\r\n    ) => {\r\n      update(state, MessagingExtensionConfigurationKeys.configuration, () => payload);\r\n      update(state, MessagingExtensionConfigurationKeys.error, () => {});\r\n      update(state, MessagingExtensionConfigurationKeys.isLoading, () => false);\r\n    },\r\n    [MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationFailure]: (\r\n      state,\r\n      { payload }: PayloadAction<AxiosResponse>\r\n    ) => {\r\n      update(state, MessagingExtensionConfigurationKeys.configuration, () => {});\r\n      update(state, MessagingExtensionConfigurationKeys.error, () => payload);\r\n      update(state, MessagingExtensionConfigurationKeys.isLoading, () => false);\r\n    },\r\n    [MessagingExtensionConfigurationActionTypes.ClearConfiguration]: (state) => {\r\n      update(state, MessagingExtensionConfigurationKeys.configuration, () => undefined);\r\n      update(state, MessagingExtensionConfigurationKeys.isLoading, () => false);\r\n    }\r\n  }\r\n});\r\n\r\nexport default messagingExtensionConfigurationSlice.reducer;\r\n","export enum OAuthConfigurationKeys {\r\n  OAuthConfigurationList = \"OAuthConfigurationList\",\r\n  OAuthConfiguration = \"OAuthConfiguration\",\r\n  OAuthConfigurationLoaded = \"OAuthConfigurationLoaded\",\r\n  OAuthConfigurationSaved = \"OAuthConfigurationSaved\",\r\n  OAuthConfigurationError = \"OAuthConfigurationError\",\r\n}\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport update from \"lodash/update\";\r\nimport { OAuthConfigurationKeys } from \"../../constants/Enums/OAuthConfigurationKeys\";\r\nimport {\r\n  IOAuthConfigurationCustom,\r\n  OAuthConfigurationAudienceType,\r\n  OAuthConfigurationTargetAppType,\r\n  OAuthIdentityProviderType,\r\n  OAuthTokenExchangeMethodType\r\n} from \"../../interfaces/IOAuthConfiguration\";\r\nimport { OAuthConfigurationsActionTypes } from \"../actions/OAuthConfigurationActions\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\n\r\nexport interface OAuthConfigurationsState {\r\n  [OAuthConfigurationKeys.OAuthConfigurationLoaded]: boolean;\r\n  [OAuthConfigurationKeys.OAuthConfigurationList]: IOAuthConfigurationCustom[];\r\n  [OAuthConfigurationKeys.OAuthConfiguration]: IOAuthConfigurationCustom;\r\n  [OAuthConfigurationKeys.OAuthConfigurationSaved]: string | null;\r\n  [OAuthConfigurationKeys.OAuthConfigurationError]: Error | null;\r\n}\r\n\r\nconst emptyState: IOAuthConfigurationCustom = {\r\n  oAuthConfigId: \"\",\r\n  description: \"\",\r\n  targetUrlsShouldStartWith: [],\r\n  applicableToApps: OAuthConfigurationTargetAppType.SpecificApp,\r\n  m365AppId: \"\",\r\n  clientSecret: \"\",\r\n  targetAudience: OAuthConfigurationAudienceType.HomeTenant,\r\n  clientId: \"\",\r\n  authorizationEndpoint: \"\",\r\n  tokenExchangeEndpoint: \"\",\r\n  tokenRefreshEndpoint: \"\",\r\n  scopes: [],\r\n  isPKCEEnabled: false,\r\n  identityProvider: OAuthIdentityProviderType.Custom,\r\n  tokenExchangeMethodType: OAuthTokenExchangeMethodType.PostRequestBody\r\n};\r\n\r\nconst initialState: OAuthConfigurationsState = {\r\n  [OAuthConfigurationKeys.OAuthConfigurationLoaded]: false,\r\n  [OAuthConfigurationKeys.OAuthConfigurationList]: [],\r\n  [OAuthConfigurationKeys.OAuthConfiguration]: emptyState,\r\n  [OAuthConfigurationKeys.OAuthConfigurationSaved]: null,\r\n  [OAuthConfigurationKeys.OAuthConfigurationError]: null\r\n};\r\n\r\nexport const oAuthConfigurationsSlice = createSlice({\r\n  name: StateKeys.OAuthConfigurations,\r\n  initialState,\r\n  reducers: {\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationList_Success]: (\r\n      state,\r\n      { payload }: PayloadAction<IOAuthConfigurationCustom[]>\r\n    ) => {\r\n      payload.length > 0\r\n        ? update(state, [OAuthConfigurationKeys.OAuthConfigurationList], () => payload)\r\n        : update(state, [OAuthConfigurationKeys.OAuthConfigurationList], () => []);\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationItemRead_Success]: (\r\n      state,\r\n      { payload }: PayloadAction<IOAuthConfigurationCustom>\r\n    ) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationLoaded], () => true);\r\n      state[OAuthConfigurationKeys.OAuthConfiguration] = payload;\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationReset]: (state) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationLoaded], () => false);\r\n      update(state, [OAuthConfigurationKeys.OAuthConfiguration], () => emptyState);\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationSavedIDReset]: (state) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationSaved], () => null);\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationDelete_Success]: (state, { payload }) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationList], () =>\r\n        state[OAuthConfigurationKeys.OAuthConfigurationList].filter((item) => item.oAuthConfigId !== payload.id)\r\n      );\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationCreate_Success]: (state, payload) => {\r\n      update(\r\n        state,\r\n        [OAuthConfigurationKeys.OAuthConfigurationSaved],\r\n        () => payload.payload.configurationRegistrationId.oAuthConfigId\r\n      );\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationCreate_Failed]: (state, payload) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationError], () => new Error(payload.payload));\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationUpdate_Failed]: (state, payload) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationError], () => new Error(payload.payload));\r\n    },\r\n\r\n    [OAuthConfigurationsActionTypes.OAuthConfigurationUpdate_Success]: (state, { payload }) => {\r\n      update(state, [OAuthConfigurationKeys.OAuthConfigurationSaved], () => payload.id);\r\n    }\r\n  }\r\n});\r\n","export enum EntraConfigurationKeys {\r\n    EntraConfigurationList = \"EntraConfigurationList\",\r\n    EntraConfiguration = \"EntraConfiguration\",\r\n    EntraConfigurationLoaded = \"EntraConfigurationLoaded\",\r\n    EntraConfigurationSaved = \"EntraConfigurationSaved\",\r\n    EntraConfigurationError = \"EntraConfigurationError\",\r\n  }\r\n  ","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport update from \"lodash/update\";\r\nimport { EntraConfigurationKeys } from \"../../constants/Enums/EntraConfigurationKeys\";\r\nimport {\r\n  IOAuthConfigurationEntra,\r\n  OAuthConfigurationAudienceType,\r\n  OAuthConfigurationTargetAppType,\r\n  OAuthIdentityProviderType\r\n} from \"../../interfaces/IOAuthConfiguration\";\r\nimport { EntraConfigurationsActionTypes } from \"../actions/EntraConfigurationActions\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\n\r\nexport interface EntraConfigurationsState {\r\n  [EntraConfigurationKeys.EntraConfigurationLoaded]: boolean;\r\n  [EntraConfigurationKeys.EntraConfigurationList]: IOAuthConfigurationEntra[];\r\n  [EntraConfigurationKeys.EntraConfiguration]: IOAuthConfigurationEntra;\r\n  [EntraConfigurationKeys.EntraConfigurationSaved]: string | null;\r\n  [EntraConfigurationKeys.EntraConfigurationError]: Error | null;\r\n}\r\n\r\nconst emptyState: IOAuthConfigurationEntra = {\r\n  oAuthConfigId: \"\",\r\n  description: \"\",\r\n  targetUrlsShouldStartWith: [],\r\n  applicableToApps: OAuthConfigurationTargetAppType.SpecificApp,\r\n  m365AppId: \"\",\r\n  targetAudience: OAuthConfigurationAudienceType.HomeTenant,\r\n  clientId: \"\",\r\n  identityProvider: OAuthIdentityProviderType.MicrosoftEntra,\r\n  resourceIdentifierUri: \"\"\r\n};\r\n\r\nconst initialState: EntraConfigurationsState = {\r\n  [EntraConfigurationKeys.EntraConfigurationLoaded]: false,\r\n  [EntraConfigurationKeys.EntraConfigurationList]: [],\r\n  [EntraConfigurationKeys.EntraConfiguration]: emptyState,\r\n  [EntraConfigurationKeys.EntraConfigurationSaved]: null,\r\n  [EntraConfigurationKeys.EntraConfigurationError]: null\r\n};\r\n\r\nexport const entraConfigurationsSlice = createSlice({\r\n  name: StateKeys.EntraConfigurations,\r\n  initialState,\r\n  reducers: {\r\n    [EntraConfigurationsActionTypes.EntraConfigurationList_Success]: (\r\n      state,\r\n      { payload }: PayloadAction<IOAuthConfigurationEntra[]>\r\n    ) => {\r\n      payload.length > 0\r\n        ? update(state, [EntraConfigurationKeys.EntraConfigurationList], () => payload)\r\n        : update(state, [EntraConfigurationKeys.EntraConfigurationList], () => []);\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationItemRead_Success]: (\r\n      state,\r\n      { payload }: PayloadAction<IOAuthConfigurationEntra>\r\n    ) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationLoaded], () => true);\r\n      state[EntraConfigurationKeys.EntraConfiguration] = payload;\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationReset]: (state) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationLoaded], () => false);\r\n      update(state, [EntraConfigurationKeys.EntraConfiguration], () => emptyState);\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationSavedIDReset]: (state) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationSaved], () => null);\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationDelete_Success]: (state, { payload }) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationList], () =>\r\n        state[EntraConfigurationKeys.EntraConfigurationList].filter((item) => item.oAuthConfigId !== payload.id)\r\n      );\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationCreate_Success]: (state, payload) => {\r\n      update(\r\n        state,\r\n        [EntraConfigurationKeys.EntraConfigurationSaved],\r\n        () => payload.payload.configurationRegistrationId.oAuthConfigId\r\n      );\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationCreate_Failed]: (state, payload) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationError], () => new Error(payload.payload));\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationUpdate_Failed]: (state, payload) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationError], () => new Error(payload.payload));\r\n    },\r\n\r\n    [EntraConfigurationsActionTypes.EntraConfigurationUpdate_Success]: (state, { payload }) => {\r\n      update(state, [EntraConfigurationKeys.EntraConfigurationSaved], () => payload.id);\r\n    }\r\n  }\r\n});\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { Area, EntityType, OS, Platform, Host, Capability } from \"../../constants/Enums/AnalyticsIKSKeys\";\r\nimport { IAnalyticsV2Filters } from \"../../interfaces/IAnalyticsV2Filters\";\r\nimport { AnalyticsV2FilterActionTypes } from \"../actions/AnalyticsV2Actions\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\n\r\nexport const initialState: IAnalyticsV2Filters = {\r\n    entityType: EntityType.User,\r\n    area: Area.AllUp,\r\n    host: Host.AllUp,\r\n    capability: Capability.AllUp,\r\n    os: OS.AllUp,\r\n    platform: Platform.AllUp,\r\n};\r\n\r\nexport const analyticsFilterV2Slice = createSlice({\r\n    name: StateKeys.AnalyticsFilterV2,\r\n    initialState,\r\n    reducers: {\r\n        [AnalyticsV2FilterActionTypes.UpdatedAnalyticsV2Filter]: (state, { payload }: PayloadAction<IAnalyticsV2Filters>) => state = payload,\r\n        [AnalyticsV2FilterActionTypes.Reset]: (state) => state = initialState,\r\n    }\r\n});\r\n\r\nexport const analyticsFilterV2StateSlice = createSlice({\r\n    name: StateKeys.AnalyticsFilterV2State,\r\n    initialState: {\r\n        isVisible: false\r\n    },\r\n    reducers: {\r\n        [AnalyticsV2FilterActionTypes.SetFilterVisibility]: (state, { payload }: PayloadAction<boolean>) => {\r\n            state.isVisible = payload\r\n            return state\r\n        },\r\n    }\r\n});","import { Metric } from \"../constants/Enums/AnalyticsIKSKeys\";\r\nimport { IAnalyticsV2APIResponseMetric } from \"../interfaces/IAnalyticsV2API\";\r\nimport {\r\n    IIntensityDataPoint,\r\n    IPeriodWiseBarChartValues,\r\n    IPeriodWiseCountryData,\r\n    IPeriodWiseMultiLineDateUsageDataPoints,\r\n    IPeriodWiseSingleLineDateUsageDataPoints,\r\n    IPeriodWiseTrendDataPoints\r\n} from \"../interfaces/IAnalyticsV2Charts\";\r\nimport { IPeriodWiseCapabilityMultiLineDateUsageDataPoints } from \"../interfaces/IAnalyticsV2Charts\";\r\n\r\n// Usage by Metrics\r\nexport const convertToActiveUserTrendData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || [];\r\n        metric.period && acc[metric.period]!.push(\r\n            {\r\n                value: metric.latestUsage?.usage || 0,\r\n                stringValue: metric.latestUsage?.moMString || '',\r\n                percent: metric.latestUsage?.moMPercent || 0,\r\n                key: metric.period\r\n            }\r\n        )\r\n        return acc;\r\n    }, {} as IPeriodWiseTrendDataPoints)\r\n\r\n\r\nexport const convertToUsageSingleLineData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = metric.data || [];\r\n        return acc;\r\n    }, {} as IPeriodWiseSingleLineDateUsageDataPoints)\r\n\r\nexport const convertToUsageMultiLineData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || {};\r\n        acc[metric.period]![metric.metricTranslationKey || metric.metric] = metric.data || [];\r\n        return acc;\r\n    }, {} as IPeriodWiseMultiLineDateUsageDataPoints)\r\n\r\n// Usage by region\r\n\r\nexport const convertToAreaCountryData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || [];\r\n        metric.region && acc[metric.period]!.push({\r\n            name: metric.region,\r\n            z: metric.latestUsage?.usage || 0\r\n        })\r\n        return acc;\r\n    }, {} as IPeriodWiseCountryData)\r\n\r\n// Usage by host \r\n\r\nexport const convertToHostMultiLineData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || {};\r\n        metric.hostTranslationKey && (acc[metric.period]![metric.hostTranslationKey] = metric.data || []);\r\n        return acc;\r\n    }, {} as IPeriodWiseMultiLineDateUsageDataPoints)\r\n\r\nexport const convertToHostBarChartData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || {};\r\n        metric.hostTranslationKey && (acc[metric.period]![metric.hostTranslationKey] = metric.latestUsage?.usage || 0);\r\n        return acc;\r\n    }, {} as IPeriodWiseBarChartValues)\r\n\r\nexport const convertToHostTrendData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || [];\r\n        metric.hostTranslationKey && acc[metric.period]!.push(\r\n            {\r\n                value: metric.latestUsage?.usage || 0,\r\n                stringValue: metric.latestUsage?.moMString || '',\r\n                percent: metric.latestUsage?.moMPercent || 0,\r\n                key: metric.hostTranslationKey\r\n            }\r\n        )\r\n        return acc;\r\n    }, {} as IPeriodWiseTrendDataPoints)\r\n\r\n// Usage by OS\r\n\r\nexport const convertToOSBarChartData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || {};\r\n        metric.osTranslationKey && (acc[metric.period]![metric.osTranslationKey] = metric.latestUsage?.usage || 0);\r\n        return acc;\r\n    }, {} as IPeriodWiseBarChartValues)\r\n\r\nexport const convertToOSTrendData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || [];\r\n        metric.osTranslationKey && acc[metric.period]!.push(\r\n            {\r\n                value: metric.latestUsage?.usage || 0,\r\n                stringValue: metric.latestUsage?.moMString || '',\r\n                percent: metric.latestUsage?.moMPercent || 0,\r\n                key: metric.osTranslationKey\r\n            }\r\n        )\r\n        return acc;\r\n    }, {} as IPeriodWiseTrendDataPoints)\r\n\r\n// Usage by Platform\r\n\r\nexport const convertToPlatformBarChartData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || {};\r\n        metric.platformTranslationKey && (acc[metric.period]![metric.platformTranslationKey] = metric.latestUsage?.usage || 0);\r\n        return acc;\r\n    }, {} as IPeriodWiseBarChartValues)\r\n\r\n// Usage by Capability\r\n\r\nexport const convertToCapabilityMultiLineData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, { period, capability, hostTranslationKey, data }) => {\r\n        if (capability && hostTranslationKey) {\r\n            acc[capability] = acc[capability] || {}\r\n            acc[capability]![period] = acc[capability]![period] || {}\r\n            acc[capability]![period]![hostTranslationKey] = data || []\r\n        }\r\n        return acc;\r\n    }, {} as IPeriodWiseCapabilityMultiLineDateUsageDataPoints);\r\n\r\nexport const convertToCapabilityTrendData = (metrics: IAnalyticsV2APIResponseMetric[]) =>\r\n    metrics.reduce((acc, metric) => {\r\n        acc[metric.period] = acc[metric.period] || [];\r\n        metric.capabilityTranslationKey && acc[metric.period]!.push(\r\n            {\r\n                value: metric.latestUsage?.usage || 0,\r\n                stringValue: metric.latestUsage?.moMString || '',\r\n                percent: metric.latestUsage?.moMPercent || 0,\r\n                key: metric.capabilityTranslationKey\r\n            }\r\n        )\r\n        return acc;\r\n    }, {} as IPeriodWiseTrendDataPoints)\r\n\r\n// Usage Intensity\r\n\r\nexport const extractUsageByIntensity = (metrics: IAnalyticsV2APIResponseMetric[]) => {\r\n    const median = metrics.find(metric=> metric.metric === Metric.Median)\r\n    const percentage = metrics.find(metric=> metric.metric === Metric.Percentage5Days)\r\n    const ratio = metrics.find(metric=> metric.metric === Metric.Ratio)\r\n    return {\r\n        median: median?.data?.[0]?.usage || 0,\r\n        percentage: percentage?.data?.[0]?.usage || 0,\r\n        mau: ratio?.data?.[0]?.usage || 0\r\n    }\r\n};\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { AnalyticsV2ActionTypes } from \"../actions/AnalyticsV2Actions\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AnalyticsV2Keys } from \"../../constants/Enums/AnalyticsKeys\";\r\nimport {\r\n    AnalyticsV2WidgetLoadingState,\r\n    IWidgetUsageByCapability,\r\n    IWidgetUsageByHost,\r\n    IWidgetUsageByOS,\r\n    IWidgetUsageByPlatform,\r\n    IWidgetUsageByRegion,\r\n    IWidgetUsageByRetentionIntensity,\r\n    IWidgetUsageByTimePeriod,\r\n    IWidgetLastUpdatedDateTime,\r\n    IWidgetUsageSummary\r\n} from \"../../interfaces/IAnalyticsV2\";\r\nimport { initialState as initialFilter } from \"./AnalyticsV2FilterReducers\";\r\nimport update from \"lodash/update\";\r\nimport { IAnalyticsV2APIResponse } from \"../../interfaces/IAnalyticsV2API\";\r\nimport { GroupName } from \"../../constants/Enums/AnalyticsIKSKeys\";\r\nimport { convertToActiveUserTrendData, convertToAreaCountryData, convertToCapabilityMultiLineData, convertToCapabilityTrendData, convertToHostBarChartData, convertToHostMultiLineData, convertToHostTrendData, convertToOSBarChartData, convertToOSTrendData, convertToPlatformBarChartData, convertToUsageMultiLineData, convertToUsageSingleLineData, extractUsageByIntensity } from \"../../utils/AnalyticsV2ReducersUtils\";\r\nimport { WritableDraft } from \"immer/dist/internal\";\r\n\r\nexport interface IAnalyticsV2State {\r\n    [AnalyticsV2Keys.UsageSummary]: IWidgetUsageSummary;\r\n    [AnalyticsV2Keys.LastUpdated]: IWidgetLastUpdatedDateTime;\r\n    [AnalyticsV2Keys.UsageByTimePeriod]: IWidgetUsageByTimePeriod;\r\n    [AnalyticsV2Keys.UsageByRetentionIntensity]: IWidgetUsageByRetentionIntensity;\r\n    [AnalyticsV2Keys.UsageByRegion]: IWidgetUsageByRegion;\r\n    [AnalyticsV2Keys.UsageByHost]: IWidgetUsageByHost\r\n    [AnalyticsV2Keys.UsageByOS]: IWidgetUsageByOS;\r\n    [AnalyticsV2Keys.UsageByPlatform]: IWidgetUsageByPlatform;\r\n    [AnalyticsV2Keys.UsageByCapability]: IWidgetUsageByCapability;\r\n}\r\n\r\nconst widgetEmpty = {\r\n    status: AnalyticsV2WidgetLoadingState.NotLoaded,\r\n    filter: initialFilter,\r\n}\r\n\r\nconst initialState: IAnalyticsV2State = {\r\n    [AnalyticsV2Keys.UsageSummary]: widgetEmpty,\r\n    [AnalyticsV2Keys.LastUpdated]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByTimePeriod]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByRetentionIntensity]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByRegion]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByHost]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByOS]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByPlatform]: widgetEmpty,\r\n    [AnalyticsV2Keys.UsageByCapability]: widgetEmpty,\r\n};\r\n\r\nexport const analyticsV2Slice = createSlice({\r\n    name: StateKeys.AnalyticsV2,\r\n    initialState,\r\n    reducers: {\r\n        [AnalyticsV2ActionTypes.Reset]: () => initialState,\r\n        [AnalyticsV2ActionTypes.Refreshing]: (state, { payload }) => {\r\n            update(state, [payload.key as keyof IAnalyticsV2State], () => (\r\n                {\r\n                    status: AnalyticsV2WidgetLoadingState.Refreshing,\r\n                    filter: payload.filter,\r\n                }\r\n            ));\r\n        },\r\n        [AnalyticsV2ActionTypes.LoadingData]: (state, { payload }) => {\r\n            update(state, [payload.key as keyof IAnalyticsV2State], () => (\r\n                {\r\n                    ...state[payload.key as keyof IAnalyticsV2State],\r\n                    status: AnalyticsV2WidgetLoadingState.Loading,\r\n                }\r\n            ));\r\n        },\r\n        [AnalyticsV2ActionTypes.LoadingFailed]: (state, { payload }) => {\r\n            update(state, [payload.key as keyof IAnalyticsV2State], () => (\r\n                {\r\n                    ...state[payload.key as keyof IAnalyticsV2State],\r\n                    status: AnalyticsV2WidgetLoadingState.Error,\r\n                }\r\n            ));\r\n        },\r\n        [AnalyticsV2ActionTypes.APISuccess]: (state, { payload }: PayloadAction<{\r\n            apiResponse: IAnalyticsV2APIResponse,\r\n            key: keyof IAnalyticsV2State\r\n        }>) => {\r\n            setLastUpdated(state, payload.apiResponse.latestUsageDate);\r\n            reduceApiSuccess(state, payload.apiResponse, payload.key)\r\n        },\r\n    }\r\n});\r\n\r\nconst setLastUpdated = (state: WritableDraft<IAnalyticsV2State>, lastUpdated: string) => {\r\n    if(state[AnalyticsV2Keys.LastUpdated].widgetData !== lastUpdated){\r\n        update(state, [AnalyticsV2Keys.LastUpdated], () => ({\r\n            ...state[AnalyticsV2Keys.LastUpdated],\r\n            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n            widgetData: lastUpdated\r\n        }));\r\n    }\r\n}\r\n\r\nconst reduceApiSuccess = (\r\n    state: any,\r\n    apiResponse: IAnalyticsV2APIResponse,\r\n    key: keyof IAnalyticsV2State\r\n) => {\r\n    apiResponse.successes.forEach((res) => {\r\n        switch (res.groupName) {\r\n            case GroupName.UsageData:\r\n                if (key === AnalyticsV2Keys.UsageByTimePeriod){\r\n                    state[AnalyticsV2Keys.UsageSummary].status !== AnalyticsV2WidgetLoadingState.Loaded\r\n                    && update(state, [AnalyticsV2Keys.UsageSummary], () => ({\r\n                        ...state[AnalyticsV2Keys.UsageSummary],\r\n                        status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                        widgetData: convertToActiveUserTrendData(res.metrics)\r\n                    }));\r\n                    update(state, [AnalyticsV2Keys.UsageByTimePeriod], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByTimePeriod],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: convertToUsageSingleLineData(res.metrics)\r\n                        }\r\n                    ));\r\n                }\r\n                if (key === AnalyticsV2Keys.UsageByRetentionIntensity)\r\n                    update(state, [AnalyticsV2Keys.UsageByRetentionIntensity], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByRetentionIntensity],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: {\r\n                                retention: convertToUsageMultiLineData(res.metrics),\r\n                                intensity: extractUsageByIntensity(res.metrics)\r\n                            }\r\n                        }\r\n                    ));\r\n                break;\r\n            case GroupName.Area:\r\n                if (key === AnalyticsV2Keys.UsageByRegion)\r\n                    update(state, [AnalyticsV2Keys.UsageByRegion], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByRegion],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: convertToAreaCountryData(res.metrics)\r\n                        }\r\n                    ));\r\n                break;\r\n            case GroupName.OS:\r\n                if (key === AnalyticsV2Keys.UsageByOS)\r\n                    update(state, [AnalyticsV2Keys.UsageByOS], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByOS],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: {\r\n                                trend: convertToOSTrendData(res.metrics),\r\n                                bar: convertToOSBarChartData(res.metrics)\r\n                            }\r\n                        }\r\n                    ));\r\n                break;\r\n            case GroupName.Host:\r\n                if (key === AnalyticsV2Keys.UsageByHost) {\r\n                    update(state, [AnalyticsV2Keys.UsageByHost], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByHost],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: {\r\n                                trend: convertToHostTrendData(res.metrics),\r\n                                bar: convertToHostBarChartData(res.metrics),\r\n                                multiLine: convertToHostMultiLineData(res.metrics),\r\n                            }\r\n                        }\r\n                    ));\r\n                }\r\n                break;\r\n            case GroupName.HostCapability:\r\n                if (key === AnalyticsV2Keys.UsageByCapability) {\r\n                    update(state, [AnalyticsV2Keys.UsageByCapability], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByCapability],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: {\r\n                                usage: convertToCapabilityMultiLineData(res.metrics),\r\n                                trend: convertToCapabilityTrendData(res.metrics)\r\n                            }\r\n                        }\r\n                    ));\r\n                }\r\n                break;\r\n            case GroupName.Platform:\r\n                if (key === AnalyticsV2Keys.UsageByPlatform)\r\n                    update(state, [AnalyticsV2Keys.UsageByPlatform], () => (\r\n                        {\r\n                            ...state[AnalyticsV2Keys.UsageByPlatform],\r\n                            status: AnalyticsV2WidgetLoadingState.Loaded,\r\n                            widgetData: convertToPlatformBarChartData(res.metrics)\r\n                        }\r\n                    ));\r\n                break;\r\n        }\r\n    });\r\n}","import { PayloadAction, createSlice } from \"@reduxjs/toolkit\";\r\nimport { AppPublishType } from \"../../constants/Enums/AppPublishType\";\r\nimport { IPublishingStatusCdn } from \"../../interfaces/IPublishingStatus\";\r\nimport { AppTypeActionsTypes } from \"../actions/AppPublishTypeActions\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\n\r\ninterface IAppTypeState {\r\n  appType?: AppPublishType;\r\n}\r\n\r\nconst initialState: IAppTypeState = {}\r\n\r\nexport const appTypeSlice = createSlice({\r\n  name: StateKeys.AppType,\r\n  initialState,\r\n  reducers: {\r\n    [AppTypeActionsTypes.GetAppPublishTypeSuccess]: (state, { payload }: PayloadAction<IPublishingStatusCdn[]>) => {\r\n      const isAppInCDN = payload.some(status => status.wasAppFound === true);\r\n      return {\r\n        ...state,\r\n        appType: isAppInCDN ? AppPublishType.CDN_App : AppPublishType.TDP_App,\r\n      }\r\n    },\r\n    [AppTypeActionsTypes.GetAppPublishTypeFail]: (state) => {\r\n      // default to TDP app for existing workflows in case API Fails\r\n      return {\r\n        ...state,\r\n        appType: AppPublishType.TDP_App,\r\n      }\r\n    },\r\n    [AppTypeActionsTypes.Reset]: () => initialState\r\n  }\r\n});\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { IAppPackageEditor, AppPackageEditorStatus, IAppPackageEditorFile } from \"src/interfaces/IAppPackageEditor\";\r\nimport { AppPackageEditorActionTypes } from \"../actions/AppPackageEditorActions\";\r\n\r\nconst initialState: IAppPackageEditor = {\r\n    status: AppPackageEditorStatus.NotLoaded,\r\n    initFiles: [],\r\n    localFiles: []\r\n}\r\n\r\nexport const appPackageEditorSlice = createSlice({\r\n    name: StateKeys.AppPackageEditor,\r\n    initialState,\r\n    reducers: {        \r\n        [AppPackageEditorActionTypes.Reset]: (state) => {\r\n            state = initialState;\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.StatusChange]: (state, { payload }: PayloadAction<AppPackageEditorStatus>) => {\r\n            state.status = payload;\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.InitialFile_Add]: (state, { payload }: PayloadAction<IAppPackageEditorFile>) => {\r\n            state.initFiles.push(payload);\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.LocalFile_Add]: (state, { payload }: PayloadAction<IAppPackageEditorFile>) => {\r\n            state.localFiles.push(payload);\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.LocalFile_Remove]: (state, { payload }: PayloadAction<string>) => {\r\n            state.localFiles = state.localFiles.filter(file => file.id !== payload);\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.LocalFile_Update]: (state, { payload }: PayloadAction<IAppPackageEditorFile>) => {\r\n            state.localFiles = state.localFiles.map(file =>\r\n                file.id === payload.id ? payload : file\r\n            );\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.DiscardChanges]: (state) => {\r\n            state.localFiles = state.initFiles\r\n            return state;\r\n        },\r\n        [AppPackageEditorActionTypes.PackageUpdateStart]: (state) => {\r\n            state.status = AppPackageEditorStatus.Saving;\r\n            return state;        \r\n        },\r\n        [AppPackageEditorActionTypes.PackageUpdateSuccess]: (state) => {\r\n            state.status = AppPackageEditorStatus.SavedSuccess;\r\n            return state;        \r\n        },\r\n        [AppPackageEditorActionTypes.PackageUpdateFailure]: (state) => {\r\n            state.status = AppPackageEditorStatus.SavedFailed;\r\n            return state;        \r\n        }\r\n    }\r\n});","import { adaptiveCardSlice } from \"./AdaptiveCardReducers\";\r\nimport { analyticsSlice } from \"./AnalyticsReducers\";\r\nimport { appCatalogSlice } from \"./AppCatalogReducers\";\r\nimport { appContextSlice } from \"./AppContextReducers\";\r\nimport { appsSlice } from \"./AppDefinitionReducers\";\r\nimport { appFlightingSlice } from \"./AppFlightingReducers\";\r\nimport { appUserSlice } from \"./AppUserReducers\";\r\nimport { authenticatedImageSlice } from \"./AuthenticatedImageReducer\";\r\nimport { botsSlice } from \"./BotReducers\";\r\nimport { composeExtensionAssetSlice } from \"./ComposeExtensionAssetReducer\";\r\nimport { appOwnerContactInformationSlice } from \"./ContactInformationReducers\";\r\nimport { ecsClientSlice } from \"./ECSClientReducers\";\r\nimport { errorPageSlice } from \"./ErrorPageReducers\";\r\nimport { featureFlagSlice } from \"./FeatureFlagReducers\";\r\nimport { headerSlice } from \"./HeaderReducers\";\r\nimport { identityPlatformSlice } from \"./IdentityPlatformReducers\";\r\nimport { networkSlice } from \"./NetworkReducers\";\r\nimport { notificationSlice } from \"./NotificationReducers\";\r\nimport { preValidationSlice } from \"./PreValidationReducers\";\r\nimport { publishingStatusSlice } from \"./PublishingStatusReducers\";\r\nimport { sceneSlice } from \"./SceneReducers\";\r\nimport { themeSlice } from \"./ThemeReducer\";\r\nimport { toolbarSlice } from \"./ToolbarReducers\";\r\nimport { uiLoadingSlice } from \"./UILoadingReducers\";\r\nimport { userContextSlice } from \"./UserContext\";\r\nimport { userSettingsSlice } from \"./UserSettingsReducers\";\r\nimport { validationSlice } from \"./ValidationReducers\";\r\nimport { validationV2Slice } from \"./ValidationV2Reducers\";\r\nimport { apiKeyRegistrationsSlice } from \"./ApiKeyRegistrationReducers\";\r\nimport { messagingExtensionConfigurationSlice } from \"./MessagingExtensionConfigurationReducers\";\r\nimport { switchLoadingSlice } from \"./SwitchLoadingReducer\";\r\nimport { oAuthConfigurationsSlice } from \"./OAuthConfigurationReducers\";\r\nimport { entraConfigurationsSlice} from \"./EntraConfigurationReducers\";\r\nimport { analyticsV2Slice } from \"./AnalyticsV2Reducers\"\r\nimport { analyticsFilterV2Slice, analyticsFilterV2StateSlice } from \"./AnalyticsV2FilterReducers\";\r\nimport { appTypeSlice } from \"./AppPublishTypeReducers\";\r\nimport { appPackageEditorSlice } from \"./AppPackageEditorReducers\"\r\n\r\nexport const reducer = {\r\n  [adaptiveCardSlice.name]: adaptiveCardSlice.reducer,\r\n  [analyticsSlice.name]: analyticsSlice.reducer,\r\n  [appCatalogSlice.name]: appCatalogSlice.reducer,\r\n  [appContextSlice.name]: appContextSlice.reducer,\r\n  [appsSlice.name]: appsSlice.reducer,\r\n  [appFlightingSlice.name]: appFlightingSlice.reducer,\r\n  [appUserSlice.name]: appUserSlice.reducer,\r\n  [botsSlice.name]: botsSlice.reducer,\r\n  [ecsClientSlice.name]: ecsClientSlice.reducer,\r\n  [errorPageSlice.name]: errorPageSlice.reducer,\r\n  [featureFlagSlice.name]: featureFlagSlice.reducer,\r\n  [headerSlice.name]: headerSlice.reducer,\r\n  [identityPlatformSlice.name]: identityPlatformSlice.reducer,\r\n  [networkSlice.name]: networkSlice.reducer,\r\n  [notificationSlice.name]: notificationSlice.reducer,\r\n  [preValidationSlice.name]: preValidationSlice.reducer,\r\n  [sceneSlice.name]: sceneSlice.reducer,\r\n  [themeSlice.name]: themeSlice.reducer,\r\n  [toolbarSlice.name]: toolbarSlice.reducer,\r\n  [uiLoadingSlice.name]: uiLoadingSlice.reducer,\r\n  [userContextSlice.name]: userContextSlice.reducer,\r\n  [userSettingsSlice.name]: userSettingsSlice.reducer,\r\n  [validationSlice.name]: validationSlice.reducer,\r\n  [publishingStatusSlice.name]: publishingStatusSlice.reducer,\r\n  [validationV2Slice.name]: validationV2Slice.reducer,\r\n  [appOwnerContactInformationSlice.name]: appOwnerContactInformationSlice.reducer,\r\n  [composeExtensionAssetSlice.name]: composeExtensionAssetSlice.reducer,\r\n  [authenticatedImageSlice.name]: authenticatedImageSlice.reducer,\r\n  [apiKeyRegistrationsSlice.name]: apiKeyRegistrationsSlice.reducer,\r\n  [oAuthConfigurationsSlice.name]: oAuthConfigurationsSlice.reducer,\r\n  [entraConfigurationsSlice.name]: entraConfigurationsSlice.reducer,\r\n  [messagingExtensionConfigurationSlice.name]: messagingExtensionConfigurationSlice.reducer,\r\n  [switchLoadingSlice.name]: switchLoadingSlice.reducer,\r\n  [analyticsV2Slice.name]: analyticsV2Slice.reducer,\r\n  [analyticsFilterV2Slice.name]: analyticsFilterV2Slice.reducer,\r\n  [analyticsFilterV2StateSlice.name]: analyticsFilterV2StateSlice.reducer,\r\n  [appTypeSlice.name]: appTypeSlice.reducer,\r\n  [appPackageEditorSlice.name]: appPackageEditorSlice.reducer,\r\n};\r\n","import { Action, Dispatch, MiddlewareAPI } from \"redux\";\r\nimport { IGetAssetsResult, parseApiSpecFromAppDefinition, unzipAllAssets } from \"../utils/messageExtensionAsset\";\r\nimport { ComposeExtensionAssetActionTypes } from \"./actions/ComposeExtensionAssetActions\";\r\nimport { StateKeys } from \"./reducers/ReducerUtils\";\r\nimport { PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { AppDefinition } from \"../objects\";\r\nimport { SwitchLoadingActionTypes, switchLoadingSlice } from \"./reducers/SwitchLoadingReducer\";\r\n\r\nexport const dataProcessorMiddleware =\r\n  ({ dispatch, getState }: MiddlewareAPI) =>\r\n  (next: Dispatch) =>\r\n  (action: Action) => {\r\n    if (action) {\r\n      if (\r\n        action.type === `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipSuccess}`\r\n      ) {\r\n        unzipAllAssets((action as PayloadAction<string>).payload).then((assets) => {\r\n          const state = getState();\r\n          // use app in memory so that it works for switch scenaior\r\n          const app = state.apps.updatedApp as AppDefinition;\r\n          (action as PayloadAction<IGetAssetsResult>).payload = {\r\n            assets,\r\n            availableApis: []\r\n          };\r\n          parseApiSpecFromAppDefinition(app as AppDefinition, assets).then((apis) => {\r\n            (action as PayloadAction<IGetAssetsResult>).payload.availableApis = apis;\r\n            next(action);\r\n            dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Complete]());\r\n          });\r\n        });\r\n      } else {\r\n        return next(action);\r\n      }\r\n    } else {\r\n      return next(action);\r\n    }\r\n  };\r\n\r\nexport default dataProcessorMiddleware;\r\n","import { configureStore } from \"@reduxjs/toolkit\";\r\nimport apiMiddleware from \"../apiMiddleware\";\r\nimport thunkMiddleware from \"redux-thunk\";\r\nimport { reducer } from \"../reducers\";\r\nimport dataProcessorMiddleware from \"../dataProcessorMiddleware\";\r\n\r\nconst store = configureStore({\r\n  reducer,\r\n  middleware: [thunkMiddleware, apiMiddleware, dataProcessorMiddleware]\r\n});\r\n\r\nexport default store;\r\n\r\nexport type RootState = ReturnType<typeof store.getState>;\r\nexport type AppDispatch = typeof store.dispatch;\r\n","import React, { Suspense, lazy } from \"react\";\r\nimport store from \"./core/store\";\r\nimport { Provider as ReduxProvider } from \"react-redux\";\r\nimport { SWRConfig } from \"swr\";\r\nimport { enableMapSet } from \"immer\";\r\nimport { initializeIcons } from \"@fluentui/react\";\r\n\r\nconst App = lazy(() => import(\"./App\"));\r\n\r\n// This Component Initialise redux store and SWR to initial state and renders the app\r\nconst AppStateInit: React.FC = () => {\r\n  initializeIcons();\r\n  enableMapSet();\r\n  // Add loading shimmer to FallBack\r\n  return (\r\n    <Suspense fallback={<></>}>\r\n      {\r\n        <ReduxProvider store={store}>\r\n          <SWRConfig value={{ provider: () => new Map() }}>\r\n            <App />\r\n          </SWRConfig>\r\n        </ReduxProvider>\r\n      }\r\n    </Suspense>\r\n  );\r\n};\r\n\r\nexport default AppStateInit;\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { ApplicationManifest } from \"../../utils/manifest/serialization/manifest\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAppValidationState } from \"../reducers/ValidationReducers\";\r\nimport { UploadAppDefinitionFromZip } from \"./AppDefinitionActions\";\r\nimport { IAppDefinition } from \"../../interfaces\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\n\r\nexport enum ValidationActionTypes {\r\n  Success = \"Validation_Success\",\r\n  Failure = \"Validation_Failed\"\r\n}\r\n\r\nexport enum PreValidationActionTypes {\r\n  Success = \"Pre_Validation_Success\",\r\n  Failure = \"Pre_Validation_Failed\"\r\n}\r\n\r\nexport const PreValidate = (data: ApplicationManifest, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/appdefinitions/prevalidation`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.PreValidation}/${PreValidationActionTypes.Success}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, Strings.preValidationErrorMessage, NotificationType.Warning));\r\n    }\r\n  });\r\n\r\nexport const ValidateAppDefinition = (teamsAppId: string, dispatch: AppDispatch, appEnvironmentId?: string) => {\r\n  const q = appEnvironmentId ? `?appEnvironmentId=${appEnvironmentId}` : \"\";\r\n\r\n  return apiAction({\r\n    url: `${Config.apiUrl}/appdefinitions/${teamsAppId}/partnerCenterAppDefinitionValidation${q}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      Logger.LogUserBi(TelemetryObjectId.PartnerCenterAppPkgValidation, {appId: teamsAppId})\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.Validation}/${ValidationActionTypes.Success}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n};\r\n\r\nexport const ValidatePackage = (zip: File, dispatch: AppDispatch, isImport?: boolean, callback?: (data: IAppDefinition) => void) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/appdefinitions/partnerCenterAppPackageValidation`,\r\n    method: ApiMethods.Post,\r\n    headers: {\r\n      \"Content-Type\": \"application/zip\"\r\n    },\r\n    data: zip,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppValidationState) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        if (data.errors.length === 0 && isImport) {\r\n          dispatch(UploadAppDefinitionFromZip(zip, Strings.appUploadedSuccessfully, Strings.appFailedToUpload, dispatch, callback));\r\n        }\r\n        return {\r\n          type: `${StateKeys.Validation}/${ValidationActionTypes.Success}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n\r\nexport const ResetPackageValidation = () => ({\r\n  type: `${StateKeys.Validation}/${ValidationActionTypes.Success}`,\r\n  payload: {}\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { CardRequest, ICard, ICardContent } from \"../../interfaces\";\r\nimport { AppDispatch, RootState } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport type { AxiosResponse } from \"axios\";\r\n\r\nexport enum CardActionTypes {\r\n  GetAllOwnerCards = \"Card_GetAllOwnerCards\",\r\n  SetOwnerCardListComplete = \"Card_SetOwnerCardListComplete\",\r\n  GetAllTenantCards = \"Card_GetAllTenantCards\",\r\n  SetTenantCardListComplete = \"Card_SetTenantCardListComplete\",\r\n  GetCard = \"Card_GetCard\",\r\n  CreatCard = \"Card_CreateCard\",\r\n  UpdateCard = \"Card_UpdateCard\",\r\n  DeleteCard = \"Card_DeleteCard\",\r\n  CardFailure = \"Card_CardFailure\",\r\n  ClearCard = \"Card_ClearCard\"\r\n}\r\n\r\nconst pageQuantity = 15;\r\n\r\ntype StateGetter = () => RootState;\r\n\r\nexport const GetAllOwnerCards = (notificationFailureString: string) => (dispatch: AppDispatch, getState: StateGetter) => {\r\n  const {\r\n    adaptiveCards: { ownerCardsModel }\r\n  } = getState();\r\n  if (ownerCardsModel.ownerCardListComplete) {\r\n    return;\r\n  }\r\n  dispatch(\r\n    apiAction({\r\n      url: `${Config.apiUrl}/cards/v2?pageNumber=${ownerCardsModel.ownerCardListPageNumber}`,\r\n      method: ApiMethods.Get,\r\n      onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n      onSuccess: (data: ICard[]) => {\r\n        // Current page quantity is 15 items each call, backend controls the quantity\r\n        Logger.LogInfo(TelemetryEventName.GetOwnerCardsSuccessfully, Strings.getBotsSuccess);\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        if (data.length < pageQuantity) {\r\n          dispatch(SetOwnerCardListComplete(true));\r\n        }\r\n        return {\r\n          type: `${StateKeys.AdaptiveCards}/${CardActionTypes.GetAllOwnerCards}`,\r\n          payload: data\r\n        };\r\n      },\r\n      onFailure: (error: AxiosResponse) => {\r\n        dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n        Logger.LogError(TelemetryEventName.GetOwnerCardsError, Strings.getBotsError);\r\n        return {\r\n          type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n        };\r\n      }\r\n    })\r\n  );\r\n};\r\n\r\nconst SetOwnerCardListComplete = (payload: boolean) => ({\r\n  type: `${StateKeys.AdaptiveCards}/${CardActionTypes.SetOwnerCardListComplete}`,\r\n  payload\r\n});\r\n\r\nexport const GetAllTenantCards = (notificationFailureString: string) => (dispatch: AppDispatch, getState: StateGetter) => {\r\n  const {\r\n    adaptiveCards: { tenantCardsModel }\r\n  } = getState();\r\n  if (tenantCardsModel.tenantCardListComplete) {\r\n    return;\r\n  }\r\n  dispatch(\r\n    apiAction({\r\n      url: `${Config.apiUrl}/cards/all/?pageNumber=${tenantCardsModel.tenantCardListPageNumber}`,\r\n      method: ApiMethods.Get,\r\n      onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n      onSuccess: (data: ICard[]) => {\r\n        // Current page quantity is 15 items each call, backend controls the quantity\r\n        Logger.LogInfo(TelemetryEventName.GetTenantCardsSuccessfully, Strings.getBotsSuccess);\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        if (data.length < pageQuantity) {\r\n          dispatch(SetTenantCardListComplete(true));\r\n        }\r\n        return {\r\n          type: `${StateKeys.AdaptiveCards}/${CardActionTypes.GetAllTenantCards}`,\r\n          payload: data\r\n        };\r\n      },\r\n      onFailure: (error: AxiosResponse) => {\r\n        dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n        Logger.LogError(TelemetryEventName.GetTenantCardsError, Strings.getBotsError);\r\n        return {\r\n          type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n        };\r\n      }\r\n    })\r\n  );\r\n};\r\n\r\nconst SetTenantCardListComplete = (payload: boolean) => ({\r\n  type: `${StateKeys.AdaptiveCards}/${CardActionTypes.SetTenantCardListComplete}`,\r\n  payload\r\n});\r\n\r\nexport const GetCard = (cardId: string, isAdmin: boolean, notificationFailureString: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/cards/${isAdmin ? \"all/\" : \"\"}${cardId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: ICard) => {\r\n      Logger.LogInfo(TelemetryEventName.GetCardSuccessfully, Strings.getBotsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AdaptiveCards}/${CardActionTypes.GetCard}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetCardError, Strings.getBotsError);\r\n      return {\r\n        type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ClearCard = () => ({\r\n  type: `${StateKeys.AdaptiveCards}/${CardActionTypes.ClearCard}`\r\n});\r\n\r\nexport const CreateCard = (\r\n  data: Partial<ICard>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (id: string) => void\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/cards/`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: ICard) => {\r\n      Logger.LogInfo(TelemetryEventName.CreateCardSuccessfully, data.id);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      callback && callback(data.id);\r\n      return {\r\n        type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CreatCard}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getBotsError);\r\n      return {\r\n        type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateCard =\r\n  (data: Partial<ICard>, notificationSuccessString: string, notificationFailureString: string) =>\r\n    (dispatch: AppDispatch, getState: StateGetter) => {\r\n      const {\r\n        AppUserInfo: { isTenantAdmin }\r\n      } = getState();\r\n      dispatch(\r\n        apiAction({\r\n          url: `${Config.apiUrl}/cards${isTenantAdmin ? \"/all\" : \"\"}/${data?.id}`,\r\n          method: ApiMethods.Post,\r\n          data,\r\n          onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n          onSuccess: (data: ICard) => {\r\n            Logger.LogInfo(TelemetryEventName.UpdateCardSuccessfully, data?.id);\r\n            dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n            dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n\r\n            return {\r\n              type: `${StateKeys.AdaptiveCards}/${CardActionTypes.UpdateCard}`,\r\n              payload: {\r\n                data\r\n              }\r\n            };\r\n          },\r\n          onFailure: (error: AxiosResponse) => {\r\n            dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n            Logger.LogError(TelemetryEventName.UpdateCardError, data?.id);\r\n            return {\r\n              type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n            };\r\n          }\r\n        })\r\n      );\r\n    };\r\n\r\nexport const DeleteCard =\r\n  (cardId: string, notificationSuccessString: string, notificationFailureString: string) =>\r\n    (dispatch: AppDispatch, getState: StateGetter) => {\r\n      const { isTenantAdmin } = getState().AppUserInfo;\r\n      dispatch(\r\n        apiAction({\r\n          url: `${Config.apiUrl}/cards${isTenantAdmin ? \"/all\" : \"\"}/${cardId}`,\r\n          method: ApiMethods.Delete,\r\n          onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n          onSuccess: (data: boolean) => {\r\n            if (data) {\r\n              Logger.LogInfo(TelemetryEventName.DeleteCardSuccessfully, cardId);\r\n              dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n              dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n              return {\r\n                type: `${StateKeys.AdaptiveCards}/${CardActionTypes.DeleteCard}`,\r\n                payload: cardId\r\n              };\r\n            }\r\n          },\r\n          onFailure: (error: AxiosResponse) => {\r\n            dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n            Logger.LogError(TelemetryEventName.DeleteCardError, cardId);\r\n            return {\r\n              type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n            };\r\n          }\r\n        })\r\n      );\r\n    };\r\n\r\nexport const SendCard = (\r\n  card: ICard,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) => {\r\n  let requestBody: CardRequest = { jsonContent: card.cardContent };\r\n  const cardType = card.cardType === \"adaptiveCard\" ? \"adaptive\" : card.cardType;\r\n  if (card.cardType === \"hero\" || card.cardType === \"thumbnail\") {\r\n    const cardContent: ICardContent = JSON.parse(card.cardContent).content;\r\n    requestBody = {\r\n      ...cardContent,\r\n      images: cardContent.images.map((image: { url: string }) => image.url),\r\n      buttons: cardContent.buttons.map((button: { value: string }) => button.value)\r\n    };\r\n  }\r\n\r\n  return apiAction({\r\n    url: `${Config.apiUrl}/card/${cardType}`,\r\n    method: ApiMethods.Post,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      Logger.LogInfo(TelemetryEventName.SendCardSuccessfully, Strings.sendCardSuccess);\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.SendCardError, Strings.sendCarderror);\r\n      return {\r\n        type: `${StateKeys.AdaptiveCards}/${CardActionTypes.CardFailure}`\r\n      };\r\n    }\r\n  });\r\n};\r\n","// Status of the local files in the AppPackageEditor\r\nexport enum AppPackageEditorStatus {\r\n  NotLoaded = \"NotLoaded\", // When server files are not loaded locally\r\n  NoChanges = \"NoChanges\", // When server and local files are in sync\r\n  ModifiedNotSaved = \"ModifiedNotSaved\", // When local files are modified but not saved\r\n  LocalErrors = \"LocalErrors\", // When there are errors when locally validated\r\n  ValidationErrors = \"ValidationErrors\", // When there are validation errors from server\r\n  Saving = \"Saving\", // When local changes are being saved to server\r\n  SavedSuccess = \"SavedSuccess\", // When local changes are saved to server successfully\r\n  SavedFailed = \"SavedFailed\" // When local changes are not saved to server\r\n}\r\n\r\nexport enum AppPackageEditorFileTypes {\r\n  Manifest = \"Manifest\",\r\n  Icon = \"AppIcon\",\r\n  OutLine = \"AppOutLine\",\r\n  OpenAPISpec = \"OpenAPISpec\", // To be removed later\r\n  ResponseRenderingTemplate = \"ResponseRenderingTemplate\", // to be removed later\r\n  Language = \"Language\",\r\n  Json = \"Json\",\r\n  Yaml = \"Yaml\",\r\n  Png = \"Png\",\r\n  Folder = \"Folder\",\r\n  Unsupported = \"Unsupported\"\r\n}\r\n\r\nexport interface IAppPackageEditorFile {\r\n  id: string;\r\n  fileType: AppPackageEditorFileTypes;\r\n  name: string;\r\n  content: any;\r\n  isModified: boolean;\r\n  lastModified?: string;\r\n  lastModifiedBy?: string;\r\n  /**\r\n   * directory name is the 'relative name' for file/folder comapred to current directory navigation\r\n   * if Current Directory is root then\r\n   * Example: a/b/c/d.json -> directory name : 'a/b/c/'\r\n   * if Current Directory is Root/a/b\r\n   * Example: a/b/c/d.json -> directory name : 'c/'\r\n   */\r\n  directoryName?: string;\r\n}\r\n\r\nexport interface IAppPackageEditor {\r\n  status: AppPackageEditorStatus;\r\n  // init files will not be modified and will be used to\r\n  // compare with local files, undo changes etc.\r\n  initFiles: IAppPackageEditorFile[];\r\n  // local files will be modified by the user\r\n  // and will be used to save to the server\r\n  localFiles: IAppPackageEditorFile[];\r\n}\r\n\r\nexport const supportedFileTypes = [\".json\", \".yaml\", \".yml\", \".png\"];\r\n\r\nexport const supportedImages = {\r\n  [AppPackageEditorFileTypes.Icon]: {\r\n    width: 192,\r\n    height: 192,\r\n    supportedFormats: [\".png\"]\r\n  },\r\n  [AppPackageEditorFileTypes.OutLine]: {\r\n    width: 32,\r\n    height: 32,\r\n    supportedFormats: [\".png\"]\r\n  }\r\n};\r\n","export enum appsKeys {\r\n  AppDefinitions = \"AppDefinitions\",\r\n  LatestPublicManifestVersion = \"LatestPublicManifestVersion\",\r\n  AppDefinitionsCount = \"AppDefinitionsCount\",\r\n  AllAppDefinitions = \"AllAppDefinitions\",\r\n  AllAppDefinitionsCount = \"AllAppDefinitionsCount\",\r\n  LegacyAppDefinitions = \"LegacyAppDefinitions\",\r\n  LegacyAppDefinitionsCount = \"LegacyAppDefinitionsCount\",\r\n  GetAppDefinitionsState = \"GetAppDefinitionsState\",\r\n  AppDefinition = \"AppDefinition\",\r\n  AppDefinitionToDuplicate = \"AppDefinitionToDuplicate\",\r\n  AppDefinitionMessagingExtensionCommand = \"AppDefinitionMessagingExtensionCommand\",\r\n  AppDefinitionMessagingExtensionCommandParameter = \"AppDefinitionMessagingExtensionCommandParameter\",\r\n  UpdatedApp = \"updatedApp\",\r\n  AppDeleted = \"AppDeleted\",\r\n  AppDefinitionItem = \"AppDefinitionItem\",\r\n  AppDefinitionItemIssues = \"AppDefinitionItemIssues\",\r\n  AppDefinitionSchema = \"AppDefinitionSchema\",\r\n  AppDefinitionSelectedEnvironment = \"AppDefinitionSelectedEnvironment\",\r\n  AppEnvironmentMenuIndex = \"AppEnvironmentMenuIndex\",\r\n  AppDefinitionValidationError = \"AppDefinitionValidationError\",\r\n  PersonalTabAdded = \"PersonalTabAdded\",\r\n  AppListOwnerViewModel = \"AppListOwnerViewModel\",\r\n  AppListTenantViewModel = \"AppListTenantViewModel\",\r\n  AppListUserMode = \"AppListUserMode\",\r\n  AppDefinitionOwnerCandidates = \"AppDefinitionOwnerCandidates\",\r\n  UpdatedColorIcon = \"updatedColorIcon\",\r\n  UpdatedOutlineIcon = \"updatedOutlineIcon\",\r\n  AppDefinitionImportUnprocessable = \"AppDefinitionImportUnprocessable\",\r\n  AppFile = \"AppFile\",\r\n  SessionKey = \"SessionKey\",\r\n  ImportFromCatalogError = \"ImportFromCatalogError\",\r\n  AppContactInformation = \"AppContactInformation\"\r\n}\r\n\r\nexport enum botsKeys {\r\n  Bots = \"Bots\",\r\n  BotAadBotManagement = \"BotAadBotManagement\",\r\n  BotFrameworkBotManagement = \"BotFrameworkBotManagement\",\r\n  BotAppPasswordBotManagement = \"BotAppPasswordBotManagement\",\r\n  BotAadAppBot = \"BotAadAppBot\",\r\n  BotFrameworkAppBot = \"BotFrameworkAppBot\",\r\n  BotAppPasswordAppBot = \"BotAppBotPassword\",\r\n  BotAadMessagingExtension = \"BotAadMessagingExtension\",\r\n  BotFrameworkMessagingExtension = \"BotFrameworkMessagingExtension\",\r\n  BotAppPassword = \"BotAppPassword\",\r\n  showCopyPasswordDialog = \"showCopyPasswordDialog\",\r\n  botDeleted = \"botDeleted\",\r\n  DeletedBotId = \"DeletedBotId\",\r\n  BotListViewModel = \"BotListViewModel\",\r\n  BotEvent = \"BotEvent\"\r\n}\r\n\r\nexport enum cardsKeys {\r\n  TenantCardsModel = \"tenantCardsModel\",\r\n  TenantCards = \"tenantCards\",\r\n  TenantCardListComplete = \"tenantCardListComplete\",\r\n  TenantCardListPageNumber = \"tenantCardListPageNumber\",\r\n  OwnerCardsModel = \"ownerCardsModel\",\r\n  OwnerCards = \"ownerCards\",\r\n  OwnerCardListComplete = \"ownerCardListComplete\",\r\n  OwnerCardListPageNumber = \"ownerCardListPageNumber\",\r\n  Card = \"Card\"\r\n}\r\nexport enum ScenesKeys {\r\n  Scenes = \"scenes\",\r\n  Scene = \"scene\"\r\n}\r\n\r\nexport enum IdentityAppsKeys {\r\n  Apps = \"apps\",\r\n  App = \"app\",\r\n  TeamsApp = \"teamsApp\",\r\n  AadAppCandidates = \"aadAppCandidates\",\r\n  OneTimePassword = \"oneTimePass\"\r\n}\r\n\r\nexport enum AppUserInfo {\r\n  IsTenantAdmin = \"isTenantAdmin\",\r\n  IsAppAdmin = \"isAppAdmin\",\r\n  IsMicrosoftEmployee = \"isMicrosoftEmployee\",\r\n  AadId = \"aadId\",\r\n  DisplayName = \"displayName\",\r\n  Username = \"username\",\r\n  IsUserDevX = \"isUserDevX\"\r\n}\r\n\r\nexport enum ToolbarKeys {\r\n  Actions = \"actions\"\r\n}\r\n\r\nexport enum validationResultsKeys {\r\n  errors = \"errors\",\r\n  warnings = \"warnings\",\r\n  notes = \"notes\",\r\n  status = \"status\",\r\n  utcTimestamp = \"utcTimestamp\",\r\n  addInDetails = \"addInDetails\"\r\n}\r\n\r\nexport enum appFlightingKeys {\r\n  appDefinitions = \"appDefinitions\",\r\n  errors = \"errors\",\r\n  isDeleted = \"isDeleted\",\r\n  rollouts = \"rollouts\",\r\n  withdrawAppLink = \"withdrawAppLink\",\r\n  promoteAppError = \"promoteAppError\",\r\n  withdrawAppError = \"withdrawAppError\"\r\n}\r\n\r\nexport enum publishingStatusKeys {\r\n  appPublishingOneCdnStatus = \"appPublishingOneCdnStatus\",\r\n  appPublishingCdnStatus = \"appPublishingCdnStatus\",\r\n  appPublishingStaticsRepoStatus = \"appPublishingStaticsRepoStatus\",\r\n  appPublishingOmexStatus = \"appPublishingOmexStatus\",\r\n  appPublishingStoreStatus = \"appPublishingStoreStatus\",\r\n  errors = \"errors\"\r\n}\r\n\r\nexport enum validationV2Keys {\r\n  validationCount = \"validationsCount\",\r\n  validationList = \"validationsList\",\r\n  validationDetail = \"validationDetail\",\r\n  newValidation = \"newValidation\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport JSZip from \"jszip\";\r\n\r\nexport default async function downloadFile(filename: string, content: string) {\r\n  const blob = await stringToBlob(content);\r\n  linkBlob(blob, filename);\r\n}\r\n\r\nexport async function stringToBlob(content: string) {\r\n  const zip = new JSZip();\r\n  await zip.loadAsync(content, { base64: true });\r\n  return zip.generateAsync({ type: \"blob\" });\r\n}\r\n\r\nexport function linkBlob(blob: Blob, filename: string) {\r\n  const element = document.createElement(\"a\");\r\n  element.setAttribute(\"href\", URL.createObjectURL(blob));\r\n  element.setAttribute(\"download\", filename.replaceAll(\".\", \"_\"));\r\n  element.style.display = \"none\";\r\n  document.body.appendChild(element);\r\n  element.click();\r\n  document.body.removeChild(element);\r\n}\r\n\r\nexport const downloadJson = (fileName: string, jsonContent: string) => {\r\n  const dataStr = `data:text/json;charset=utf-8,${jsonContent}`;\r\n  const downloadAnchorNode = document.createElement(\"a\");\r\n  downloadAnchorNode.setAttribute(\"href\", dataStr);\r\n  downloadAnchorNode.setAttribute(\"download\", `${fileName}.json`);\r\n  document.body.appendChild(downloadAnchorNode); // required for firefox\r\n  downloadAnchorNode.click();\r\n  downloadAnchorNode.remove();\r\n};\r\n\r\n\r\n//Exports a particular validation to a file of given type zip or csv\r\nexport const appValidationExportUtils = (\r\n  data: string,\r\n  name: string,\r\n  ext: string\r\n) => {\r\n  try {\r\n    const blob = new Blob([data]);\r\n    const url = window.URL.createObjectURL(blob);\r\n    const link = document.createElement(\"a\");\r\n    link.href = url;\r\n    link.setAttribute(\"download\", name.concat(\".\", ext));\r\n    link.style.display = \"none\";\r\n    document.body.appendChild(link);\r\n    link.click();\r\n  } catch (error) {\r\n    console.log(error);\r\n  }\r\n};\r\n\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { DialogProps } from \"@fluentui/react-northstar\";\r\nimport { castDraft } from \"immer\";\r\nimport noop from \"lodash/noop\";\r\n\r\ntype AppContextDialogProps = Omit<\r\n  DialogProps,\r\n  \"open\" | \"trigger\" | \"trapFocus\" | \"closeOnOutsideClick\" | \"confirmButton\" | \"cancelButton\"\r\n> & { confirmButton?: string; cancelButton?: string; isDialogConfirmDisabled?: boolean };\r\n\r\ninterface IAppContextState {\r\n  isSidebarOpen: boolean;\r\n  isDialogOpen: boolean;\r\n  isDialogConfirmDisabled: boolean;\r\n  dialogProps?: AppContextDialogProps;\r\n  dialogConfirmCallback?: () => void;\r\n}\r\n\r\nconst initialState: IAppContextState = {\r\n  isSidebarOpen: false,\r\n  isDialogOpen: false,\r\n  isDialogConfirmDisabled: false,\r\n  dialogConfirmCallback: noop\r\n};\r\n\r\nexport enum AppContextActionTypes {\r\n  Sidebar = \"AppContext_Sidebar\",\r\n  OpenDialog = \"openDialog\",\r\n  CloseDialog = \"closeDialog\",\r\n  SetDialogConfirmDisabled = \"setDialogConfirmDisabled\",\r\n  SetDialogConfirmCallback = \"setDialogConfirmCallback\"\r\n}\r\n\r\nexport const appContextSlice = createSlice({\r\n  name: StateKeys.AppContext,\r\n  initialState,\r\n  reducers: {\r\n    [AppContextActionTypes.Sidebar]: (state, { payload }: PayloadAction<IAppContextState[\"isSidebarOpen\"]>) => {\r\n      state.isSidebarOpen = payload;\r\n    },\r\n    [AppContextActionTypes.OpenDialog]: (state, { payload }: PayloadAction<AppContextDialogProps>) => {\r\n      state.isDialogOpen = true;\r\n      state.dialogProps = castDraft(payload);\r\n      state.isDialogConfirmDisabled = \"isDialogConfirmDisabled\" in payload ? !!payload.isDialogConfirmDisabled : false;\r\n    },\r\n    [AppContextActionTypes.CloseDialog]: (state, _: PayloadAction<void>) => {\r\n      state.isDialogOpen = false;\r\n      state.dialogConfirmCallback = noop;\r\n    },\r\n    [AppContextActionTypes.SetDialogConfirmDisabled]: (state, { payload }: PayloadAction<boolean>) => {\r\n      state.isDialogConfirmDisabled = !!payload;\r\n    },\r\n    [AppContextActionTypes.SetDialogConfirmCallback]: (state, { payload }: PayloadAction<() => void>) => {\r\n      state.dialogConfirmCallback = payload;\r\n    }\r\n  }\r\n});\r\n\r\nexport default appContextSlice.reducer;\r\n","import { IIntensityDataPoint, IPeriodWiseBarChartValues, IPeriodWiseCapabilityMultiLineDateUsageDataPoints, IPeriodWiseCountryData, IPeriodWiseMultiLineDateUsageDataPoints, IPeriodWiseSingleLineDateUsageDataPoints, IPeriodWiseTrendDataPoints } from \"./IAnalyticsV2Charts\";\r\nimport { IAnalyticsV2Filters } from \"./IAnalyticsV2Filters\";\r\n\r\nexport enum AnalyticsPageTabs {\r\n    AppUsage = \"AppUsage\",\r\n    HostAndDevices = \"HostAndDevices\",\r\n    Capability = \"Capability\",\r\n    Segment = \"Segment\",\r\n    Vertical = \"Vertical\",\r\n}\r\n\r\nexport enum AnalyticsV2WidgetLoadingState {\r\n    NotLoaded = \"NotLoaded\",\r\n    Refreshing = \"Refreshing\",\r\n    Loading = \"Loading\",\r\n    Error = \"Error\",\r\n    Loaded = \"Loaded\",\r\n}\r\n\r\nexport enum AnalyticsV2Interval {\r\n    Daily = \"Daily\",\r\n    Monthly = \"Monthly\",\r\n    Weekly = \"Weekly\",\r\n}\r\n\r\nexport enum AnalyticsV2WidgetSize {\r\n    Small = \"Small\",\r\n    Medium = \"Medium\",\r\n    Large = \"Large\",\r\n}\r\n\r\nexport interface IWidgetBase {\r\n    status: AnalyticsV2WidgetLoadingState;\r\n    filter: IAnalyticsV2Filters;\r\n}\r\n\r\n// Data by App Usage\r\n\r\nexport interface IWidgetUsageByTimePeriod extends IWidgetBase {\r\n    widgetData?: IPeriodWiseSingleLineDateUsageDataPoints;\r\n}\r\n\r\nexport interface IWidgetUsageSummary extends IWidgetBase {\r\n    widgetData?: IPeriodWiseTrendDataPoints;\r\n}\r\n\r\nexport interface IWidgetUsageByRetentionIntensity extends IWidgetBase {\r\n    widgetData?: {\r\n        retention?: IPeriodWiseMultiLineDateUsageDataPoints;\r\n        intensity?: IIntensityDataPoint;\r\n    }\r\n}\r\n\r\nexport interface IWidgetLastUpdatedDateTime extends IWidgetBase {\r\n    widgetData?: string;\r\n}\r\n\r\nexport interface IWidgetUsageByRegion extends IWidgetBase {\r\n    widgetData?: IPeriodWiseCountryData;\r\n}\r\n\r\n// Data by endpoints\r\n\r\nexport interface IWidgetUsageByHost extends IWidgetBase {\r\n    widgetData?: {\r\n        trend?: IPeriodWiseTrendDataPoints;\r\n        bar?: IPeriodWiseBarChartValues\r\n        multiLine?: IPeriodWiseMultiLineDateUsageDataPoints\r\n    };\r\n}\r\n\r\nexport interface IWidgetUsageByOS extends IWidgetBase {\r\n    widgetData?: {\r\n        trend?: IPeriodWiseTrendDataPoints;\r\n        bar?: IPeriodWiseBarChartValues;\r\n    };\r\n}\r\n\r\nexport interface IWidgetUsageByPlatform extends IWidgetBase {\r\n    widgetData?: IPeriodWiseBarChartValues;\r\n}\r\n\r\n// Data by capability\r\n\r\nexport interface IWidgetUsageByCapability extends IWidgetBase {\r\n    widgetData?: {\r\n        trend?: IPeriodWiseTrendDataPoints;\r\n        usage?: IPeriodWiseCapabilityMultiLineDateUsageDataPoints;\r\n    };\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum AnalyticsKeys {\r\n  ActiveUsers = \"ActiveUsers\",\r\n  Metrics = \"Metrics\",\r\n}\r\n\r\nexport enum AnalyticsV2Keys {\r\n  LastUpdated = \"LastUpdated\",\r\n  // Data by App Usage\r\n  UsageSummary = \"UsageSummary\",\r\n  UsageByTimePeriod = \"UsageByTimePeriod\",\r\n  UsageByRetentionIntensity = \"UsageByRetentionIntensity\",\r\n  UsageByRegion = \"UsageByRegion\",\r\n  UsageMomGrowth = \"UsageMomGrowth\",\r\n  // Data by endpoints\r\n  UsageByHost = \"UsageByHost\",\r\n  UsageByOS = \"UsageByOS\",\r\n  UsageByPlatform = \"UsageByPlatform\",\r\n  // Data by capability\r\n  UsageByCapability = \"UsageByCapability\",\r\n}\r\n","import axios, { AxiosRequestConfig } from \"axios\";\r\nimport ApsAuthClient from \"../authentication/ApsAuthClient\";\r\nimport { API } from \"../actions\";\r\nimport { onNetworkError, onNetworkStart, onNetworkSuccess } from \"../actions/NetworkActions\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport { ServiceToken } from \"../../constants/Config\";\r\nimport type { AxiosResponse, AxiosError } from \"axios\";\r\n\r\nexport interface IApiRequestConfig extends Omit<AxiosRequestConfig, \"method\"> {\r\n  method: Exclude<AxiosRequestConfig[\"method\"], undefined>;\r\n  correlationId?: string;\r\n  serviceToken?: ServiceToken;\r\n  transformAxiosRequest?: (cfg: AxiosRequestConfig) => AxiosRequestConfig;\r\n}\r\n\r\nexport const apiRequest = async (config: IApiRequestConfig): Promise<AxiosResponse> => {\r\n  const { url, method, data, headers } = config;\r\n  const correlationId = config.correlationId || Logger.GetCorrelationId();\r\n  const serviceToken = config.serviceToken || ServiceToken.AppStudio;\r\n  const dataOrParams = [\"GET\", \"DELETE\"].includes(method) ? \"params\" : \"data\";\r\n  const transformAxiosRequest = config.transformAxiosRequest ?? ((x: AxiosRequestConfig) => x);\r\n\r\n  return ApsAuthClient.getServiceToken(serviceToken).then((accessToken) => {\r\n    if (accessToken !== \"Login initiated\" && accessToken !== \"Acquiring token\") {\r\n      // axios default configs\r\n      axios.defaults.baseURL = process.env.REACT_APP_BASE_URL || \"\";\r\n      axios.defaults.headers.common[\"Content-Type\"] = \"application/json\";\r\n      axios.defaults.headers.common[\"Authorization\"] = `Bearer ${accessToken}`;\r\n      axios.defaults.headers.common[\"X-Correlation-ID\"] = correlationId;\r\n      axios.defaults.headers.common[\"Client-Source\"] = \"DeveloperPortal\";\r\n      const request = transformAxiosRequest({\r\n        url,\r\n        method,\r\n        headers,\r\n        [dataOrParams]: data\r\n      });\r\n      return axios.request(request);\r\n    } else {\r\n      Logger.LogInfo(TelemetryEventName.ApiMiddleware, \"REST\", \"TokenAcquiredFailed\", correlationId);\r\n      throw new Error(\"TokenAcquiredFailed\");\r\n    }\r\n  });\r\n};\r\n\r\nexport const apiMiddleware =\r\n  ({ dispatch }: any) =>\r\n    (next: any) =>\r\n      (action: any) => {\r\n        if (action) {\r\n          next(action);\r\n          if (action.type === API) {\r\n            const { onStart, onSuccess, onFailure, swrKey } = action.payload;\r\n            const correlationId = action.payload.correlationId || Logger.GetCorrelationId();\r\n\r\n            if (onStart) dispatch(onStart());\r\n            dispatch(onNetworkStart());\r\n\r\n            return apiRequest(action.payload)\r\n              .then(({ data }) => {\r\n                Logger.LogInfo(TelemetryEventName.ApiMiddleware, \"REST\", \"Success\", correlationId);\r\n                dispatch(onNetworkSuccess());\r\n                dispatch(onSuccess(data));\r\n              })\r\n              .catch((error: AxiosError) => {\r\n                Logger.LogInfo(TelemetryEventName.ApiMiddleware, \"REST\", `Error: ${error?.response?.status}, Url:${error?.request?.responseURL}`, correlationId);\r\n                dispatch(onNetworkError(error));\r\n                if (onFailure) dispatch(onFailure(error.response));\r\n              });\r\n          }\r\n        }\r\n      };\r\n\r\nexport default apiMiddleware;\r\n","import { AnalyticsV2API } from \"../constants/APIEndpoints\"\r\nimport { Area, Capability, Host, OS, Platform } from \"../constants/Enums/AnalyticsIKSKeys\"\r\nimport { IAnalyticsUsageDataHook } from \"../core/hooks/useAnalyticsData\"\r\nimport { IAnalyticsV2PayloadFilters, IAnalyticsV2APIPayload } from \"../interfaces/IAnalyticsV2API\"\r\nimport { IAnalyticsV2Filters } from \"../interfaces/IAnalyticsV2Filters\"\r\n\r\nexport const analyticsV2Url = (\r\n    appId: string,\r\n    filter: IAnalyticsV2Filters\r\n) => {\r\n    let url = AnalyticsV2API.analyticsEndpoint\r\n    url = url.replace(\":appId\", appId)\r\n    url = `${url}?entityType=${filter.entityType}`\r\n    return url\r\n}\r\n\r\nexport const analyticsV2Payload = (\r\n    params: IAnalyticsUsageDataHook,\r\n    filter: IAnalyticsV2Filters\r\n): IAnalyticsV2APIPayload => {\r\n    const filters: Partial<IAnalyticsV2PayloadFilters> = {\r\n        os: params.dependencyFilters.os ? filter.os : OS.AllUp,\r\n        region: params.dependencyFilters.area ? filter.area : Area.AllUp,\r\n        platform: params.dependencyFilters.platform ? filter.platform : Platform.AllUp,\r\n        host: params.dependencyFilters.host ? filter.host : Host.AllUp,\r\n        capability: params.dependencyFilters.capability ? filter.capability : Capability.AllUp,\r\n    }\r\n    const payload:IAnalyticsV2APIPayload = {\r\n        payloads: [\r\n            {\r\n                filters: filters,\r\n                groups: params.groups,\r\n                metrics: params.metric\r\n            }\r\n        ]\r\n    }\r\n    return payload\r\n}","import { TelemetryObjectId } from \"src/constants/Enums/TelemetryObjectId\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { IAnalyticsV2APIResponse } from \"../../interfaces/IAnalyticsV2API\";\r\nimport { IAnalyticsV2Filters } from \"../../interfaces/IAnalyticsV2Filters\";\r\nimport { analyticsV2Payload, analyticsV2Url } from \"../../utils/analyticsV2UrlBuilder\";\r\nimport { IAnalyticsUsageDataHook } from \"../hooks/useAnalyticsData\";\r\nimport { IAnalyticsV2State } from \"../reducers/AnalyticsV2Reducers\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { UILoadingActionTypes, uiLoadingSlice } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport Logger from \"../telemetry/Logger\";\r\n\r\nexport enum AnalyticsV2ActionTypes {\r\n  Reset = \"Reset\",\r\n  Refreshing = \"Refreshing\",\r\n  LoadingData = \"LoadingData\",\r\n  LoadingFailed = \"LoadingFailed\",\r\n  APISuccess = \"APISuccess\",\r\n  APIFailure = \"APIFailure\",\r\n}\r\n\r\nexport enum AnalyticsV2FilterActionTypes {\r\n  UpdatedAnalyticsV2Filter = \"UpdatedAnalyticsV2Filter\",\r\n  SetFilterVisibility = \"SetFilterVisibility\",\r\n  Reset = \"Reset\"\r\n}\r\n\r\n// Action to reset analytics data state\r\nexport const ResetAppAnalyticsV2 = () => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsV2}/${AnalyticsV2ActionTypes.Reset}`\r\n  };\r\n}\r\n\r\nexport const ResetAnalyticsV2Filter = () => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsFilterV2}/${AnalyticsV2FilterActionTypes.Reset}`\r\n  };\r\n}\r\n\r\n// Action when filter state is updated, called when any of the filters updated from UI\r\nexport const UpdateAnalyticsV2Filter = (filter: IAnalyticsV2Filters) => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsFilterV2}/${AnalyticsV2FilterActionTypes.UpdatedAnalyticsV2Filter}`,\r\n    payload: filter\r\n  };\r\n};\r\n\r\n// Action to toggle filter visibility\r\nexport const SetFilterVisibility = (visibility: boolean) => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsFilterV2State}/${AnalyticsV2FilterActionTypes.SetFilterVisibility}`,\r\n    payload: visibility\r\n  };\r\n};\r\n\r\n// Action when data is not loaded for a widget. This can be called when filters are updated and data needs to be reloaded.\r\nexport const RefreshWidget = (\r\n  key: keyof IAnalyticsV2State,\r\n  filter: IAnalyticsV2Filters\r\n) => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsV2}/${AnalyticsV2ActionTypes.Refreshing}`,\r\n    payload: {\r\n      key: key as keyof IAnalyticsV2State,\r\n      filter: filter\r\n    }\r\n  };\r\n};\r\n\r\n// Action when data is being loaded for a widget.\r\nconst LoadingData = (key: keyof IAnalyticsV2State) => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsV2}/${AnalyticsV2ActionTypes.LoadingData}`,\r\n    payload: {\r\n      key: key as keyof IAnalyticsV2State,\r\n    }\r\n  };\r\n};\r\n\r\n// Action when data loading failed for a widget.\r\nconst LoadingFailed = (key: keyof IAnalyticsV2State) => {\r\n  return {\r\n    type: `${StateKeys.AnalyticsV2}/${AnalyticsV2ActionTypes.LoadingFailed}`,\r\n    payload: { key: key as keyof IAnalyticsV2State }\r\n  };\r\n}\r\n\r\n// API Action to fetch data for a given widget group\r\nexport const GetAnalyticsV2Data = (\r\n  dispatch: AppDispatch,\r\n  appId: string,\r\n  filter: IAnalyticsV2Filters,\r\n  params: IAnalyticsUsageDataHook\r\n) => {\r\n  return apiAction({\r\n    url: analyticsV2Url(appId, filter),\r\n    method: ApiMethods.Post,\r\n    data: analyticsV2Payload(params, filter),\r\n    onStart: () => {\r\n      dispatch(LoadingData(params.key));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n    },\r\n    onSuccess: (data: IAnalyticsV2APIResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogUserBi(TelemetryObjectId.AnalyticsV2APISuccess, {\r\n        appId: appId,\r\n        message: params.key\r\n      })\r\n      return {\r\n        type: `${StateKeys.AnalyticsV2}/${AnalyticsV2ActionTypes.APISuccess}`,\r\n        payload:  {\r\n          apiResponse: data,\r\n          key: params.key\r\n        }\r\n      };\r\n    },\r\n    onFailure: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogUserBi(TelemetryObjectId.AnalyticsV2APIFailure, {\r\n        appId: appId,\r\n        message: params.key\r\n      })\r\n      dispatch(LoadingFailed(params.key));\r\n      return {\r\n        type: `${StateKeys.AnalyticsV2}/${AnalyticsV2ActionTypes.APIFailure}`,\r\n      };\r\n    }\r\n  });\r\n}","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum BotType {\r\n  BotManagement = \"botManagement\",\r\n  AppBot = \"appBot\",\r\n  AppMessagingExtensionBot = \"appMessagingExtensionBot\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport { Routes } from \"../../constants/Routes\";\r\nimport { IAadApplication, IAppDefinition, ICreateAppDefinition } from \"../../interfaces\";\r\nimport { IdentityAppsHeader } from \"../../interfaces/IdentityAppsHeader\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { UpdateAppIDWhenFirstCreate } from \"./AppDefinitionActions\";\r\nimport { AppDefinitionActionTypes, appsSlice } from \"../reducers/AppDefinitionReducers\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { History } from \"history\";\r\nimport delay from \"lodash/delay\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { UpdateTypes } from \"../../constants/Enums/UpdateTypes\";\r\n\r\nexport enum IdentityAppsActionTypes {\r\n  GetAllAadApps = \"Identity_GetAllAadApps\",\r\n  GetAllAadAppsFailed = \"Identity_GetAllAadApps_Failed\",\r\n  GetAadAppCandidate = \"Identity_GetAadAppCandidate\",\r\n  ClearAadAppCandidate = \"Identity_ClearAadAppCandidate\",\r\n\r\n  GetAadAppInfo = \"Identity_GetAadAppInfo\",\r\n  GetAadAppInfoFailed = \"Identity_GetAadAppInfo_Failed\",\r\n\r\n  CreateIdentityApp = \"Identity_CreateAadApp\",\r\n  CreateIdentityAppFailed = \"Identity_CreateAadApp_Failed\",\r\n\r\n  CreateIdentityAppAndUpdateAppDefinition = \"Identity_CreateIdentityAppAndUpdateAppDefinition\",\r\n  CreateIdentityAppAndUpdateAppDefinitionFailed = \"Identity_CreateIdentityAppAndUpdateAppDefinition_Failed\",\r\n\r\n  CreateTeamsApp = \"Identity_CreateAppDefinition\",\r\n  CreateTeamsAppFailed = \"Identity_CreateAppDefinition_Failed\",\r\n\r\n  UpdateTeamsApp = \"Identity_UpdateTeamsApp\",\r\n  UpdateTeamsAppFailed = \"Identity_UpdateTeamsApp_Failed\",\r\n\r\n  ClearApp = \"Identity_ClearApp\",\r\n  ClearOneTimePassword = \"Identity_ClearOneTimePassword\",\r\n\r\n  CreateAadAppPassword = \"Identity_CreatePassword\",\r\n  CreateAadAppPasswordFailed = \"Identity_CreatePassword_Failed\",\r\n\r\n  DeleteAadAppPassword = \"Identity_DeleteAadAppPassword\",\r\n  DeleteAadAppPasswordFailed = \"Identity_DeleteAadAppPassword_Failed\"\r\n}\r\n\r\nexport const GetAllAadApps = (notificationFailureString: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/identityapps`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IdentityAppsHeader[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetIdentityApps, Strings.getAppDefinitionsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAllAadApps}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetIdentityApps, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAllAadApps}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAadAppInfo = (appId: string, retry: number, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/v2/${appId}?isAppId=${true}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAadApplication[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetIdentityAppInfo, Strings.getAppDefinitionsSuccess);\r\n      // when aad app is not found, we get an empty array instead of 404 error, need to modify service\r\n      if (data.length > 0) {\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAadAppInfo}`,\r\n          payload: data\r\n        };\r\n      } else {\r\n        if (retry === 1) {\r\n          dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n          return {\r\n            type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAadAppInfoFailed}`\r\n          };\r\n        }\r\n        dispatch(GetAadAppInfo(appId, retry - 1, dispatch));\r\n      }\r\n      Logger.LogInfo(TelemetryEventName.GetIdentityAppInfo, Strings.getAppDefinitionsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAadAppInfo}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.GetIdentityAppInfoError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAadAppInfoFailed}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateIdentityApp = (\r\n  aadApp: IAadApplication,\r\n  resourceUrl: string,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  history: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/v2`,\r\n    method: ApiMethods.Post,\r\n    data: aadApp,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (result: IAadApplication) => {\r\n      Logger.LogInfo(TelemetryEventName.CreateIdentityApp, Strings.getAppDefinitionsSuccess);\r\n      const defaultVersion = \"1.0.0\";\r\n      const newTeamsAppData = {\r\n        webApplicationInfoResource: resourceUrl,\r\n        webApplicationInfoId: result.appId,\r\n        shortName: result.displayName,\r\n        version: defaultVersion\r\n      };\r\n      dispatch(CreateTeamsApp(newTeamsAppData, successMessage, failureMessage, dispatch, history));\r\n      Logger.LogInfo(TelemetryEventName.CreateIdentityApp, Strings.getAppDefinitionsSuccess);\r\n      // appDef.webApplicationInfoId = data.id;\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.CreateIdentityApp}`,\r\n        payload: result\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetIdentityAppInfoError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.CreateIdentityAppFailed}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateIdentityAppFromTeamsApp = (\r\n  aadApp: IAadApplication,\r\n  resourceUrl: string,\r\n  teamsAppId: string,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  history: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/v2`,\r\n    method: ApiMethods.Post,\r\n    data: aadApp,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (result: IAadApplication) => {\r\n      Logger.LogInfo(TelemetryEventName.CreateIdentityApp, Strings.getAppDefinitionsSuccess);\r\n      dispatch(GetAppDefinitionToUpdate(teamsAppId, resourceUrl, result, successMessage, failureMessage, dispatch, history));\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetIdentityAppInfoError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.CreateIdentityAppFailed}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAppDefinitionToUpdate = (\r\n  teamsAppId: string,\r\n  resourceUrl: string,\r\n  dataToUpdateAppDefinition: Partial<IAppDefinition>,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  history: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (app: IAppDefinition) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinition, app.teamsAppId);\r\n      if (app) {\r\n        const newApp = { ...app };\r\n        newApp.webApplicationInfoId = dataToUpdateAppDefinition.appId;\r\n        newApp.webApplicationInfoResource = resourceUrl;\r\n        dispatch(UpdateTeamsApp(newApp, successMessage, failureMessage, dispatch, history));\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionError, Strings.getAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateTeamsApp = (\r\n  data: Partial<ICreateAppDefinition>,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  history?: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.AddAppDefinition, data.teamsAppId);\r\n      data.appId = data.teamsAppId;\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (history) {\r\n        history.push(Routes.Identity);\r\n      }\r\n      dispatch(\r\n        UpdateAppIDWhenFirstCreate(data, successMessage, failureMessage, dispatch, history, IdentityAppsActionTypes.CreateTeamsApp)\r\n      );\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.AddAppDefinitionError, Strings.addAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateTeamsApp = (\r\n  data: IAppDefinition,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  history: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${data.teamsAppId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.UpdateAppDefinition, data.teamsAppId);\r\n      dispatch(appsSlice.actions[UpdateTypes.Update](data));\r\n      history.push(Routes.Identity);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.UpdateTeamsApp}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, Strings.updateAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.UpdateTeamsAppFailed}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ClearIdentityApp = () => ({\r\n  type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.ClearApp}`,\r\n  payload: null\r\n});\r\n\r\nexport const CreateAppPasswordAad = (\r\n  objectId: string,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  retry: number,\r\n  delayMs: number,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/${objectId}/passwords`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: { id: string }) => {\r\n      Logger.LogInfo(TelemetryEventName.CreateAppPasswordSuccessfully, data.id);\r\n      if (data) {\r\n        dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.CreateAadAppPassword}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      const retryErrorCode = [500, 429];\r\n      if (retry === 1 && retryErrorCode.includes(error.status)) {\r\n        dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        Logger.LogError(TelemetryEventName.CreateAppPasswordError, Strings.appPasswordGenerateError);\r\n        return {\r\n          type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.CreateAadAppPasswordFailed}`\r\n        };\r\n      }\r\n\r\n      delay(() => dispatch(CreateAppPasswordAad(objectId, successMessage, failureMessage, retry - 1, delayMs, dispatch)), delayMs);\r\n\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.CreateAppPasswordError, Strings.appPasswordGenerateError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.CreateAadAppPasswordFailed}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteAppPasswordAad = (\r\n  objectId: string,\r\n  passwordId: string,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/aadapp/${objectId}/passwords/${passwordId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: { id: string }) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteAppPasswordSuccessfully, objectId);\r\n      if (data) {\r\n        dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.DeleteAadAppPassword}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.DeleteAppPasswordError, Strings.appPasswordDeleteError);\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.DeleteAadAppPasswordFailed}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ClearOneTimePass = () => ({\r\n  type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.ClearOneTimePassword}`,\r\n  payload: undefined\r\n});\r\n\r\nexport const SearchAadAppCandidate = (search: string, dispatch: AppDispatch) => {\r\n  const url = `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/my/search?q=${search}`;\r\n  return apiAction({\r\n    url,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (results: IAppDefinition[]) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.GetAadAppCandidate}`,\r\n        payload: results\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.SearchAppDefinitionError, error.statusText);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n};\r\n\r\nexport const ClearAadAppCandidates = () => ({\r\n  type: `${StateKeys.IdentityApps}/${IdentityAppsActionTypes.ClearAadAppCandidate}`\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\nimport React from \"react\";\r\nimport { IntlShape, FormattedMessage as IntlFormattedMessage } from \"react-intl\";\r\nimport Strings from \"../core/locale/strings.json\";\r\n\r\nexport type IntlKey = keyof typeof Strings;\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function formatMessage(intl: IntlShape, key: IntlKey, values?: Record<string, any>) {\r\n  return intl.formatMessage({ id: key, defaultMessage: (Strings as Record<string, string>)[key] }, values);\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function FormattedMessage({ intlKey, values }: { intlKey: IntlKey; values?: Record<string, any> }) {\r\n  return <IntlFormattedMessage id={intlKey} defaultMessage={Strings[intlKey]} values={values} />;\r\n}\r\n\r\nexport function toInlineSequence(formattedMessage: string) {\r\n  return formattedMessage.split(\"::\").map((part) => {\r\n    try {\r\n      return JSON.parse(part);\r\n    } catch (_) {\r\n      return { text: part };\r\n    }\r\n  });\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum TokenIssuer {\r\n  Msal,\r\n  Teams,\r\n  E2E\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\n// Azure AD built-in roles Reference: https://domoreexp.visualstudio.com/Teamspace/_wiki/wikis/Teamspace.wiki/14547/Native-Federation-Tokens\r\n// Teams wiki Native Federation Tokens Reference: https://docs.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#all-roles\r\n\r\nexport enum UserRoleTemplate {\r\n  GlobalAdministrator = \"62e90394-69f5-4237-9190-012177145e10\",\r\n  TeamsAdministrator = \"69091246-20e8-4a56-aa4d-066075b2a7a8\",\r\n  TenantMember = \"b79fbf4d-3ef9-4689-8143-76b194e85509\",\r\n  TenantGuest = \"13bd1c72-6f4a-4dcf-985f-18d3b80f208a\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { IAuthClient } from \"../../../interfaces/IApsAuthService\";\r\nimport { apiScopes, apiTokenRequest, authSvcApiScopes, authSvcApiTokenRequest, msalConfig, supportCentralScopes } from \"./msalconfig\";\r\n\r\nimport Logger from \"../../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../../constants/Enums/TelemetryEventName\";\r\nimport {\r\n  AuthError,\r\n  InteractionRequiredAuthError,\r\n  PublicClientApplication,\r\n  RedirectRequest,\r\n  BrowserAuthError,\r\n  AccountInfo,\r\n  SilentRequest,\r\n  EventType\r\n} from \"@azure/msal-browser\";\r\nimport { GetUserEndpoints, UpdateUserContext } from \"../../actions/UserContextAction\";\r\nimport { MicrosoftTenantId } from \"../../../constants/Components\";\r\nimport { UserRoleTemplate } from \"../../../constants/Enums/UserRoleTemplate\";\r\nimport { Config } from \"../../../constants/Config\";\r\nimport { QueryStringKeys } from \"../../../constants/Enums/QueryStringKeys\";\r\nimport { getQueryValue } from \"../../../utils/BrowserUtils\";\r\nimport { HeaderActionTypes } from \"../../actions/HeaderActions\";\r\n\r\nconst getLoginHintFromQueryString = () => getQueryValue(QueryStringKeys.LoginHint);\r\n\r\nexport class MsalAuthClient implements IAuthClient {\r\n  private msalClient: PublicClientApplication;\r\n  private apsTokenRequest: RedirectRequest;\r\n\r\n  constructor() {\r\n    this.msalClient = new PublicClientApplication(msalConfig);\r\n    this.apsTokenRequest = apiTokenRequest;\r\n\r\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n    this.msalClient.addEventCallback((event: any) => {\r\n      if (event.eventType === EventType.LOGIN_SUCCESS) {\r\n        const account = event.payload!.account;\r\n        this.msalClient.setActiveAccount(account);\r\n        Logger.LogInfo(TelemetryEventName.MsalAuthClient, `${MsalAuthClient.name} ctor`);\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Calls msal loginRedirect method.\r\n   */\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  public async login(dispatch?: any): Promise<void> {\r\n    const currentLoginHint = getLoginHintFromQueryString();\r\n    await this.msalClient.handleRedirectPromise();\r\n    let account = this.getAccount();\r\n    this.getAccount() ||\r\n      (await this.msalClient.loginRedirect({\r\n        ...this.apsTokenRequest,\r\n        loginHint: currentLoginHint === null ? undefined : currentLoginHint\r\n      }));\r\n\r\n    account = account || this.getAccount();\r\n    if (account && dispatch) {\r\n      dispatch(\r\n        UpdateUserContext({\r\n          loginSuccess: true,\r\n          tenantId: account.tenantId,\r\n          name: account.name,\r\n          userName: account.username,\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          aadId: (account.idTokenClaims as any)?.oid,\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          preferredUserName: (account.idTokenClaims as any)?.preferred_username,\r\n          internalUser: account.tenantId === MicrosoftTenantId,\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          isTenantAdmin: !!(account.idTokenClaims as any)?.wids?.some(\r\n            (wid: string) => wid === UserRoleTemplate.TeamsAdministrator || wid === UserRoleTemplate.GlobalAdministrator\r\n          )\r\n        })\r\n      );\r\n      dispatch(GetUserEndpoints(dispatch));\r\n      this.getToken();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Logs out of current account.\r\n   */\r\n  public async logout(): Promise<void> {\r\n    this.getAccount() && (await this.msalClient.logoutRedirect());\r\n  }\r\n\r\n  /**\r\n   * Checks if user is signed in.\r\n   */\r\n  public isUserLoggedIn(): boolean {\r\n    return !!this.getAccount();\r\n  }\r\n\r\n  /**\r\n   * Gets the token to access data from APS service silently, or falls back to interactive redirect.\r\n   */\r\n  public async getToken(): Promise<string> {\r\n    const accessToken = await this.getMsalToken(this.apsTokenRequest);\r\n    return accessToken;\r\n  }\r\n\r\n  /**\r\n   * Gets the token to access data from APS service silently, or falls back to interactive redirect.\r\n   */\r\n  public async getAuthSvcToken(): Promise<string> {\r\n    try {\r\n      const silentRequest: SilentRequest = {\r\n        account: this.getAccount(),\r\n        scopes: authSvcApiScopes,\r\n        // eslint-disable-next-line no-restricted-globals\r\n        redirectUri: window.location.href,\r\n        forceRefresh: false\r\n      };\r\n      const response = await this.msalClient.acquireTokenSilent(silentRequest);\r\n      return response.accessToken;\r\n    } catch (error) {\r\n      Logger.LogError(TelemetryEventName.MsalAuthClient, `GetAuthSvcTokenUnknown error: ${error}`);\r\n      return \"Unknown error\";\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets the token for SupportCentral services silently, or falls back to interactive redirect.\r\n   */\r\n  public async getSupportCentralToken(): Promise<string> {\r\n    try {\r\n      const silentRequest: SilentRequest = {\r\n        account: this.getAccount(),\r\n        scopes: supportCentralScopes,\r\n        // eslint-disable-next-line no-restricted-globals\r\n        redirectUri: window.location.href,\r\n        forceRefresh: false\r\n      };\r\n      const response = await this.msalClient.acquireTokenSilent(silentRequest);\r\n      return response.accessToken;\r\n    } catch (error) {\r\n      Logger.LogError(TelemetryEventName.MsalAuthClient, `GetSupportCentralTokenUnknown error: ${error}`);\r\n      return \"Unknown error\";\r\n    }\r\n  }\r\n\r\n  /**\r\n   * get account info of a signed-in user.\r\n   */\r\n  public getAccount(): AccountInfo | undefined {\r\n    let account = this.msalClient.getActiveAccount();\r\n    const loginHint = getLoginHintFromQueryString();\r\n    if (account) {\r\n      if (!loginHint || account.username === loginHint) {\r\n        return account;\r\n      }\r\n    }\r\n\r\n    const accounts = this.msalClient.getAllAccounts();\r\n\r\n    if (accounts.length > 0) {\r\n      if (loginHint) {\r\n        // clear HeaderShellInfo key in local storage if we are going to switch account\r\n        // eslint-disable-next-line no-restricted-globals\r\n        window.localStorage?.removeItem(HeaderActionTypes.GetShellInfo);\r\n      }\r\n      const possibleAccount = !loginHint ? accounts[0] : accounts.find((account) => account.username === loginHint);\r\n      account = possibleAccount ?? null;\r\n      if (possibleAccount) {\r\n        this.msalClient.setActiveAccount(account);\r\n      }\r\n    }\r\n\r\n    return account === null ? undefined : account;\r\n  }\r\n\r\n  /**\r\n   * Gets a token silently, or falls back to interactive redirect.\r\n   */\r\n  private async getMsalToken(tokenRequest: RedirectRequest): Promise<string> {\r\n    try {\r\n      const silentRequest: SilentRequest = {\r\n        account: this.getAccount(),\r\n        scopes: apiScopes,\r\n        // eslint-disable-next-line no-restricted-globals\r\n        redirectUri: window.location.href,\r\n        forceRefresh: false\r\n      };\r\n      const response = await this.msalClient.acquireTokenSilent(silentRequest);\r\n      return response.accessToken;\r\n    } catch (error) {\r\n      if (error instanceof InteractionRequiredAuthError) {\r\n        Logger.LogError(TelemetryEventName.MsalAuthClient, `Error while acquireTokenSilent, triggering acquireTokenRedirect `);\r\n        await this.msalClient.handleRedirectPromise();\r\n        await this.msalClient.acquireTokenRedirect(tokenRequest);\r\n        return \"Acquiring token\";\r\n      } else if (error instanceof BrowserAuthError || error instanceof AuthError) {\r\n        Logger.LogError(TelemetryEventName.MsalAuthClient, `Error while acquireTokenSilent, triggering login again ${error}`);\r\n        await this.msalClient.loginRedirect(this.apsTokenRequest);\r\n        return \"Login initiated\";\r\n      } else {\r\n        Logger.LogError(TelemetryEventName.MsalAuthClient, `Unknown error: ${error}`);\r\n        await this.msalClient.loginRedirect(this.apsTokenRequest);\r\n        return \"Unknown error\";\r\n      }\r\n    }\r\n  }\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { AccountInfo } from \"@azure/msal-browser\";\r\nimport * as teamsSDK from \"@microsoft/teams-js\";\r\nimport { MicrosoftTenantId } from \"../../../constants/Components\";\r\nimport { TelemetryEventName } from \"../../../constants/Enums/TelemetryEventName\";\r\nimport { GetUserEndpoints, UpdateUserContext } from \"../../actions/UserContextAction\";\r\nimport Logger from \"../../telemetry/Logger\";\r\n\r\nexport class TeamsAuthClient {\r\n  /**\r\n   * Gets the token to access data from APS service silently, or falls back to interactive redirect.\r\n   */\r\n  constructor() {}\r\n\r\n  public async getToken() {\r\n    return new Promise((resolve, reject) => {\r\n      teamsSDK.authentication.getAuthToken({\r\n        resources: [process.env.REACT_APP_API_TOKEN_SOURCE!],\r\n        successCallback: (token: string): void => {\r\n          Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `GetTokenSuccess`);\r\n          resolve(token);\r\n        },\r\n        failureCallback: (reason: string): void => {\r\n          Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `GetTokenFailure:${reason}`);\r\n          reject(reason);\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  public async getAuthSvcToken() {\r\n    return new Promise((resolve, reject) => {\r\n      teamsSDK.authentication.getAuthToken({\r\n        resources: [process.env.REACT_APP_AUTH_SVC_APP_API_TOKEN_SOURCE!],\r\n        successCallback: (token: string): void => {\r\n          Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `getAuthSvcTokenSuccess`);\r\n          resolve(token);\r\n        },\r\n        failureCallback: (reason: string): void => {\r\n          Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `getAuthSvcTokenFailure:${reason}`);\r\n          reject(reason);\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  public async getSupportCentralToken() {\r\n    return new Promise((resolve, reject) => {\r\n      teamsSDK.authentication.getAuthToken({\r\n        resources: [process.env.REACT_APP_M365_ADMIN_PORTAL_AUTH_SOURCE!],\r\n        successCallback: (token: string): void => {\r\n          Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `getSupportCentralTokenSuccess`);\r\n          resolve(token);\r\n        },\r\n        failureCallback: (reason: string): void => {\r\n          Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `getSupportCentralTokenFailure:${reason}`);\r\n          reject(reason);\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  public async login(dispatch?: any): Promise<void> {\r\n    teamsSDK.getContext((context: teamsSDK.Context) => {\r\n      Logger.LogInfo(TelemetryEventName.TeamsAuthClient, `${context.userObjectId} LoggedIn: true`);\r\n      dispatch(\r\n        UpdateUserContext({\r\n          loginSuccess: true,\r\n          tenantId: context.tid,\r\n          name: context.userPrincipalName,\r\n          userName: context.userPrincipalName,\r\n          aadId: context.userObjectId,\r\n          preferredUserName: context.userPrincipalName,\r\n          internalUser: context.tid === MicrosoftTenantId\r\n        })\r\n      );\r\n      dispatch(GetUserEndpoints(dispatch));\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Logs out of current account.\r\n   */\r\n  public logout(): void {}\r\n\r\n  /**\r\n   * Checks if user is signed in or falls back to interactive request.\r\n   */\r\n  public isUserLoggedIn() {\r\n    return true;\r\n  }\r\n\r\n  public getAccount(): AccountInfo {\r\n    const accountInfo: AccountInfo = {\r\n      homeAccountId: \"\",\r\n      localAccountId: \"\",\r\n      username: \"\",\r\n      tenantId: \"\",\r\n      name: \"\",\r\n      idTokenClaims: {},\r\n      environment: \"\"\r\n    };\r\n\r\n    return accountInfo;\r\n  }\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { AccountInfo } from \"@azure/msal-browser\";\r\nimport { IAuthClient } from \"../../../interfaces/IApsAuthService\";\r\nimport { UpdateUserContext } from \"../../actions/UserContextAction\";\r\n\r\nconst mockId: string = \"00000000-0000-0000-0000-000000000000\";\r\n\r\nexport class MockAuthClient implements IAuthClient {\r\n  constructor() {}\r\n\r\n  public async getToken(): Promise<string> {\r\n    return mockId;\r\n  }\r\n\r\n  public async getAuthSvcToken(): Promise<string> {\r\n    return mockId;\r\n  }\r\n\r\n  public async getSupportCentralToken():Promise<string> {\r\n    return mockId;\r\n  }\r\n\r\n  public async login(dispatch: any): Promise<void> {\r\n    dispatch(UpdateUserContext(this.getContext()));\r\n  }\r\n\r\n  /**\r\n   * Logs out of current account.\r\n   */\r\n  public logout(): void {}\r\n\r\n  /**\r\n   * Checks if user is signed in or falls back to interactive request.\r\n   */\r\n  public isUserLoggedIn() {\r\n    return true;\r\n  }\r\n\r\n  public getAccount(): AccountInfo {\r\n    const accountInfo: AccountInfo = {\r\n      homeAccountId: \"\",\r\n      localAccountId: \"\",\r\n      username: \"user1\",\r\n      tenantId: mockId,\r\n      name: \"Mock User\",\r\n      environment: \"\",\r\n      idTokenClaims: {\r\n        oid: mockId\r\n      }\r\n    };\r\n\r\n    return accountInfo;\r\n  }\r\n\r\n  private getContext(): any {\r\n    const account: AccountInfo = this.getAccount();\r\n    return {\r\n      loginSuccess: true,\r\n      tenantId: account.tenantId,\r\n      name: account.name,\r\n      userName: account.username,\r\n      aadId: (account.idTokenClaims as any)?.oid,\r\n      preferredUserName: account.username,\r\n      internalUser: true\r\n    };\r\n  }\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { TokenIssuer } from \"../../constants/Enums/TokenIssuer\";\r\nimport { MsalAuthClient } from \"./web/MsalAuthClient\";\r\nimport { Config, ServiceToken } from \"../../constants/Config\";\r\nimport { HostType } from \"../../utils/GetAppStudioHost\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TeamsAuthClient } from \"./teams/TeamsAuthClient\";\r\nimport { AccountInfo } from \"@azure/msal-browser\";\r\nimport { MockAuthClient } from \"./test/MockAuthClient\";\r\n\r\nclass ApsAuthProvider {\r\n  private client: MsalAuthClient | TeamsAuthClient | MockAuthClient;\r\n  constructor(tokenServiceType: TokenIssuer) {\r\n    switch (tokenServiceType) {\r\n      case TokenIssuer.Teams:\r\n        this.client = new TeamsAuthClient();\r\n        break;\r\n      case TokenIssuer.E2E:\r\n        this.client = new MockAuthClient();\r\n        break;\r\n      case TokenIssuer.Msal:\r\n      default:\r\n        this.client = new MsalAuthClient();\r\n        break;\r\n    }\r\n\r\n    Logger.LogInfo(TelemetryEventName.ApsAuthClient, `${ApsAuthProvider.name} Ctor`);\r\n  }\r\n\r\n  /**\r\n   * This method is only used to trigger login through actions.\r\n   */\r\n  public login(dispatch: any): void {\r\n    Logger.LogInfo(TelemetryEventName.SignIn);\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n      case HostType.WEB:\r\n      default:\r\n        this.client.login(dispatch);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Logs out of current account.\r\n   */\r\n  public logout(): void {\r\n    Logger.LogInfo(TelemetryEventName.SignOut);\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n        return;\r\n      case HostType.WEB:\r\n      default:\r\n        this.client.logout();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Checks if user is signed in or falls back to interactive request.\r\n   */\r\n  public isUserLoggedIn() {\r\n    let isLoggedIn = false;\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n        return;\r\n      case HostType.WEB:\r\n      default:\r\n        isLoggedIn = this.client.isUserLoggedIn();\r\n    }\r\n    Logger.LogInfo(TelemetryEventName.ApsAuthClient, `LoggedIn: ${isLoggedIn}`);\r\n    return isLoggedIn;\r\n  }\r\n\r\n  /**\r\n   * Gets the token to access data from APS service silently, or falls back to interactive redirect.\r\n   */\r\n  public getAuthSvcToken() {\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n      case HostType.WEB:\r\n      default:\r\n        return this.client.getAuthSvcToken();\r\n    }\r\n  }\r\n\r\n/**\r\n * Gets the token for SupportCentral services silently, or falls back to interactive redirect.\r\n */\r\n  public getSupportCentralToken() {\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n      case HostType.WEB:\r\n      default:\r\n        return this.client.getSupportCentralToken();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets the token to access data from APS service silently, or falls back to interactive redirect.\r\n   */\r\n  public getServiceToken(service: ServiceToken) {\r\n    switch (service) {\r\n      case ServiceToken.AuthSvc:\r\n        return this.getAuthSvcToken();\r\n      case ServiceToken.SupportCentral:\r\n        return this.getSupportCentralToken();\r\n      case ServiceToken.AppStudio:\r\n      default:\r\n        return this.client.getToken();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets the token to access data from APS service silently, or falls back to interactive redirect.\r\n   */\r\n  public getToken() {\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n      case HostType.WEB:\r\n      default:\r\n        return this.client.getToken();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Gets get account info of a signed-in user.\r\n   */\r\n  public getAccount(): AccountInfo | undefined {\r\n    switch (Config.appStudioHost) {\r\n      case HostType.TEAMS:\r\n        return;\r\n      case HostType.WEB:\r\n      default:\r\n        return this.client.getAccount();\r\n    }\r\n  }\r\n}\r\n\r\nconst tokenIssuer: TokenIssuer =\r\n  Config.appStudioHost === HostType.TEAMS\r\n    ? TokenIssuer.Teams\r\n    : Config.appStudioHost === HostType.E2E\r\n    ? TokenIssuer.E2E\r\n    : TokenIssuer.Msal;\r\n\r\nconst ApsAuthClient = new ApsAuthProvider(tokenIssuer);\r\n\r\nexport default ApsAuthClient;\r\n","import { ErrorContext } from \"./Notifications\";\r\nimport { AxiosResponse } from \"axios\";\r\n\r\nconst CorrelationIdHeaderKey = \"x-correlation-id\";\r\nconst TimestampHeaderKey = \"date\";\r\n\r\nexport const GetErrorContext = (response: AxiosResponse): ErrorContext => {\r\n  const result: ErrorContext = {};\r\n  if (response?.headers?.hasOwnProperty(CorrelationIdHeaderKey)) {\r\n    result.correlationId = response.headers[CorrelationIdHeaderKey];\r\n\r\n    // Ensure there is a timestamp if correlation id is present\r\n    if (response?.headers?.hasOwnProperty(TimestampHeaderKey)) {\r\n      result.timestamp = response.headers[TimestampHeaderKey];\r\n    } else {\r\n      result.timestamp = new Date().toUTCString();\r\n    }\r\n  }\r\n\r\n  if (response?.status) {\r\n    result.statusCode = response.status;\r\n  }\r\n\r\n  if((response?.data?.errorCode)) {\r\n    result.errorCode = response.data.errorCode\r\n  }\r\n\r\n  if((response?.data?.errorMessage)) {\r\n    result.errorMessage = response.data.errorMessage\r\n  }\r\n  \r\n  return result;\r\n};\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum GetAppDefinitionsStates {\r\n  FREE,\r\n  BUSY\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { IMessagingExtension } from \"../../interfaces\";\r\nimport { CreateAppDefinitionMessagingExtension, UpdateAppDefinitionMessagingExtension } from \"./AppDefinitionActions\";\r\nimport { IAsset, IUploadAsset } from \"../../utils/messageExtensionAsset\";\r\nimport { switchLoadingSlice, SwitchLoadingActionTypes } from \"../reducers/SwitchLoadingReducer\";\r\nimport { IntlShape } from \"react-intl\";\r\nimport { SwitchAPIType } from \"../../constants/Enums/SwitchAPIType\";\r\nimport { APIInfo } from \"@microsoft/m365-spec-parser\";\r\n\r\nexport enum ComposeExtensionAssetActionTypes {\r\n  UploadComposeExtensionAssetSuccess = \"ComposeExtensionAsset_UploadComposeExtensionAssetSuccess\",\r\n  UploadCompoeseExtensionAssetFailure = \"ComposeExtensionAsset_UploadComposeExtensionAssetFailure\",\r\n  UploadComposeExtensionAssetZipSuccess = \"ComposeExtensionAsset_UploadComposeExtensionAssetZipSuccess\",\r\n  UploadCompoeseExtensionAssetZipFailure = \"ComposeExtensionAsset_UploadComposeExtensionAssetZipFailure\",\r\n  UploadComposeExtensionAssetStart = \"ComposeExtensionAsset_UploadComposeExtensionAssetStart\",\r\n  UploadComposeExtensionAssetZipStart = \"ComposeExtensionAsset_UploadComposeExtensionAssetZipStart\",\r\n  GetComposeExtensionAssetZipSuccess = \"ComposeExtensionAsset_GetComposeExtensionAssetZipSuccess\",\r\n  GetComposeExtensionAssetZipFailure = \"ComposeExtensionAsset_GetComposeExtensionAssetZipFailure\",\r\n  GetComposeExtensionAssetZipStart = \"ComposeExtensionAsset_GetComposeExtensionAssetZipStart\",\r\n  UpdateAvailableApis = \"ComposeExtensionAsset_UpdateAvailableApis\",\r\n  ClearAssets = \"ComposeExtensionAsset_ClearAssets\",\r\n  CompleteUploadAndUpdate = \"ComposeExtensionAsset_CompleteUploadAndUpdate\"\r\n}\r\n\r\nfunction createOrUpdateMessagingExtensionOnSingleFileLoaded(\r\n  appId: string,\r\n  appMessagingExtensionToUpdate: Partial<IMessagingExtension>,\r\n  dispatch: AppDispatch,\r\n  successMessage: string,\r\n  errorMessage: string,\r\n  followUpAPI?: SwitchAPIType,\r\n  intl?: IntlShape\r\n) {\r\n  if (appMessagingExtensionToUpdate.objectId) {\r\n    dispatch(\r\n      UpdateAppDefinitionMessagingExtension(\r\n        appId,\r\n        appMessagingExtensionToUpdate.objectId,\r\n        appMessagingExtensionToUpdate,\r\n        successMessage,\r\n        errorMessage,\r\n        dispatch,\r\n        followUpAPI,\r\n        intl,\r\n        true\r\n      )\r\n    );\r\n  } else {\r\n    dispatch(\r\n      CreateAppDefinitionMessagingExtension(\r\n        appId,\r\n        appMessagingExtensionToUpdate,\r\n        successMessage,\r\n        errorMessage,\r\n        dispatch,\r\n        true,\r\n        !!followUpAPI\r\n      )\r\n    );\r\n  }\r\n}\r\n\r\nexport const UploadComposeExtensionAsset = (\r\n  appId: string,\r\n  uploadAsset: IUploadAsset,\r\n  appMessagingExtensionToUpdate: Partial<IMessagingExtension>,\r\n  uploadSuccessMessage: string,\r\n  uploadErrorMessage: string,\r\n  updateAppSuccessMessage: string,\r\n  updateAppErrorMessage: string,\r\n  dispatch: AppDispatch,\r\n  apis?: APIInfo[],\r\n  followUpAPI?: SwitchAPIType,\r\n  intl?: IntlShape\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${appId}/messagingextensionasset`,\r\n    method: ApiMethods.Post,\r\n    data: uploadAsset,\r\n    onStart: () => {\r\n      dispatch(UploadComposeExtensionAssetStart());\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Start]());\r\n      }\r\n    },\r\n    onSuccess: (data: string) => {\r\n      Logger.LogInfo(TelemetryEventName.UploadComposeExtensionAssetSuccessfully, uploadSuccessMessage);\r\n      dispatch(UploadComposeExtensionAssetSuccess(uploadAsset));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (apis) {\r\n        dispatch(UpdateAvailableApis(apis));\r\n      }\r\n      createOrUpdateMessagingExtensionOnSingleFileLoaded(\r\n        appId,\r\n        appMessagingExtensionToUpdate,\r\n        dispatch,\r\n        updateAppSuccessMessage,\r\n        updateAppErrorMessage,\r\n        followUpAPI,\r\n        intl\r\n      );\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, uploadErrorMessage, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(CompleteUploadAndUpdate());\r\n      Logger.LogError(TelemetryEventName.UploadComposeExtensionAssetError, uploadErrorMessage);\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      return {\r\n        type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadCompoeseExtensionAssetFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UploadComposeExtensionAssetStart = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetStart}`\r\n});\r\n\r\nexport const UploadComposeExtensionAssetSuccess = (data: IUploadAsset): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetSuccess}`,\r\n  payload: data\r\n});\r\n\r\nexport const UploadComposeExtensionAssetError = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadCompoeseExtensionAssetFailure}`\r\n});\r\n\r\nexport const UploadComposeExtensionAssetZipStart = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetZipStart}`\r\n});\r\n\r\nexport const UploadComposeExtensionAssetZipSuccess = (data: IAsset[]): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadComposeExtensionAssetZipSuccess}`,\r\n  payload: data\r\n});\r\n\r\nexport const UploadComposeExtensionAssetZipError = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadCompoeseExtensionAssetZipFailure}`\r\n});\r\n\r\nexport const GetComposeExtensionAssetStart = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipStart}`\r\n});\r\n\r\nexport const GetComposeExtensionAssetZipSuccess = (data: string): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipSuccess}`,\r\n  payload: data\r\n});\r\n\r\nexport const GetComposeExtensionAssetZipError = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipFailure}`\r\n});\r\n\r\nexport const ClearExtensionAssets = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.ClearAssets}`\r\n});\r\n\r\nexport const CompleteUploadAndUpdate = (): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.CompleteUploadAndUpdate}`\r\n});\r\n\r\nexport const UpdateAvailableApis = (data: APIInfo[]): IAction => ({\r\n  type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UpdateAvailableApis}`,\r\n  payload: data\r\n});\r\n\r\nexport const UploadComposeExtensionAssetZip = (\r\n  appId: string,\r\n  zipFile: Buffer,\r\n  assets: IAsset[],\r\n  apis: APIInfo[],\r\n  messageExtensionToUpdate: Partial<IMessagingExtension>,\r\n  uploadSuccessMessage: string,\r\n  uploadErrorMessage: string,\r\n  updateAppSucessMessage: string,\r\n  updateAppErrorMessage: string,\r\n  dispatch: AppDispatch,\r\n  followUpAPI?: SwitchAPIType,\r\n  intl?: IntlShape\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${appId}/messagingextensionassets`,\r\n    method: ApiMethods.Post,\r\n    headers: {\r\n      \"Content-Type\": \"application/zip\"\r\n    },\r\n    data: zipFile,\r\n    onStart: () => {\r\n      dispatch(UploadComposeExtensionAssetZipStart());\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Start]());\r\n      }\r\n    },\r\n    onSuccess: (data: string) => {\r\n      Logger.LogInfo(TelemetryEventName.UploadComposeExtensionAssetZipSuccessfully, uploadSuccessMessage);\r\n      dispatch(UploadComposeExtensionAssetZipSuccess(assets));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(UpdateAvailableApis(apis));\r\n      dispatch(\r\n        UpdateAppDefinitionMessagingExtension(\r\n          appId,\r\n          messageExtensionToUpdate.objectId!,\r\n          messageExtensionToUpdate,\r\n          updateAppSucessMessage,\r\n          updateAppErrorMessage,\r\n          dispatch,\r\n          followUpAPI,\r\n          intl,\r\n          true\r\n        )\r\n      );\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, uploadErrorMessage, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(CompleteUploadAndUpdate());\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      Logger.LogError(TelemetryEventName.UploadComposeExtensionAssetZipError, uploadErrorMessage);\r\n      return {\r\n        type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.UploadCompoeseExtensionAssetZipFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetComposeExtensionZipAsset = (\r\n  appId: string,\r\n  successMessage: string,\r\n  errrorMessage: string,\r\n  dispatch: AppDispatch,\r\n  isFromGetMEConfig?: boolean\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${appId}/messagingextensionassets`,\r\n    method: ApiMethods.Get,\r\n    onStart: () => {\r\n      dispatch(GetComposeExtensionAssetStart());\r\n      if (isFromGetMEConfig) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Start]());\r\n      }\r\n    },\r\n    onSuccess: (data: string) => {\r\n      Logger.LogInfo(TelemetryEventName.GetComposeExtensionAssetZipSuccessfully, successMessage);\r\n\r\n      return {\r\n        type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipSuccess}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, errrorMessage, NotificationType.Error, GetErrorContext(error)));\r\n      if (isFromGetMEConfig) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      Logger.LogError(TelemetryEventName.GetComposeExtensionAssetZipError, errrorMessage);\r\n      return {\r\n        type: `${StateKeys.ComposeExtensionAsset}/${ComposeExtensionAssetActionTypes.GetComposeExtensionAssetZipFailure}`\r\n      };\r\n    }\r\n  });\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum UploadIconType {\r\n  Color = \"color\",\r\n  Outline = \"outline\",\r\n  Sharepoint = \"sharePointPreviewImage\"\r\n}\r\n","import { StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nexport enum SwitchLoadingActionTypes {\r\n  Start = \"Loading_Start\",\r\n  Complete = \"Loading_Complete\",\r\n  Failure = \"Loading_Failure\"\r\n}\r\n\r\nexport enum SwitchLoadingActionStatus {\r\n  Loading = \"loading\",\r\n  Complete = \"complete\",\r\n  Failure = \"failure\"\r\n}\r\ninterface ISwitchLoadingState {\r\n  status?: SwitchLoadingActionStatus;\r\n}\r\n\r\nconst initialState: ISwitchLoadingState = {};\r\n\r\nexport const switchLoadingSlice = createSlice({\r\n  name: StateKeys.SwitchLoading,\r\n  initialState,\r\n  reducers: {\r\n    [SwitchLoadingActionTypes.Start]: () => ({ status: SwitchLoadingActionStatus.Loading }),\r\n    [SwitchLoadingActionTypes.Complete]: () => ({ status: SwitchLoadingActionStatus.Complete }),\r\n    [SwitchLoadingActionTypes.Failure]: () => ({ status: SwitchLoadingActionStatus.Failure })\r\n  }\r\n});\r\n\r\nexport default switchLoadingSlice.reducer;\r\n","import { apiAction, ApiMethods } from \".\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { IAppValidationRequest } from \"../../interfaces/ValidationResults\";\r\nimport { appValidationAPI } from \"../../constants/APIEndpoints\";\r\nimport downloadFile, { appValidationExportUtils } from \"../../utils/DownloadFile\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\n\r\nexport enum AppValidationActionTypes {\r\n  ValidationCount = \"App_Validation_Count\",\r\n  ValidationList = \"App_Validation_List\",\r\n  ValidationDetail = \"App_Validation_Detail\",\r\n  NewValidation = \"App_Validation_New\",\r\n  ValidationFailure = \"App_Validation_Failure\",\r\n  ValidationDetailReset = \"App_Validation_Detail_Reset\",\r\n  ValidationStateReset = \"App_Validation_State_Reset\",\r\n  ValidationReportExport = \"App_Validation_Report_Export\",\r\n  validationZipExport = \"App_Validation_Zip_Export\"\r\n}\r\n\r\nexport const GetAppValidationCount = (dispatch: AppDispatch, appDefinitionId: string) =>\r\n  apiAction({\r\n    url: `${appValidationAPI.getAppValidationCount.replace(\":appDefinitionId\", appDefinitionId)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationCount}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppValidationActionTypes.ValidationCount, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAppValidationList = (dispatch: AppDispatch, appDefinitionId: string, pageSize?: number, continuationToken?: string) =>\r\n  apiAction({\r\n    url: `${appValidationAPI.getAppValidation.replace(\":appDefinitionId\", appDefinitionId)}?pageSize=${pageSize || 10}`,\r\n    method: ApiMethods.Get,\r\n    headers: continuationToken && {\r\n      \"X-Continuation-Token\": continuationToken\r\n    },\r\n    onStart: !continuationToken && uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationList}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppValidationActionTypes.ValidationList, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAppValidationDetail = (dispatch: AppDispatch, validationId: string) =>\r\n  apiAction({\r\n    url: `${appValidationAPI.getAppValidationDetail.replace(\":validationId\", validationId)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationDetail}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppValidationActionTypes.ValidationDetail, NotificationType.Error, GetErrorContext(error)));\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateNewAppValidation = (dispatch: AppDispatch, requestBody: IAppValidationRequest) => {\r\n  return apiAction({\r\n    url: `${appValidationAPI.newAppValidation}`,\r\n    method: ApiMethods.Post,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.log(TelemetryEventName.NewAppValidationV2CreatedSuccess,{message: requestBody.appDefinitionId})\r\n      Logger.LogUserBi(TelemetryObjectId.AppValidationV2Created,{appId:requestBody.appDefinitionId})\r\n      return { \r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.NewValidation}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, AppValidationActionTypes.ValidationDetail, NotificationType.Error, GetErrorContext(error)));\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationFailure}`\r\n      };\r\n    }\r\n  });\r\n};\r\n\r\nexport const ResetAppValidationState = (dispatch: AppDispatch) => ({\r\n  type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationStateReset}`\r\n});\r\n\r\nexport const ExportValidationReport = (dispatch: AppDispatch, validationId: string, appId: string) => {\r\n  return apiAction({\r\n    url: `${appValidationAPI.exportReport.replace(\":validationId\", validationId)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      Logger.log(TelemetryObjectId.AppValidationDownloadReport, { message: appId })\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      appValidationExportUtils(data, validationId, \"csv\");\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationReportExport}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, AppValidationActionTypes.ValidationReportExport, NotificationType.Error, GetErrorContext(error)));\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationFailure}`\r\n      };\r\n    }\r\n  });\r\n};\r\n\r\nexport const ExportValidationZip = (dispatch: AppDispatch, validationId: string, appId: string) => {\r\n  return apiAction({\r\n    url: `${appValidationAPI.exportZip.replace(\":validationId\", validationId)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      Logger.log(TelemetryObjectId.AppValidationDownloadPackage, { message: appId })\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      downloadFile(validationId, data);\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.validationZipExport}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, AppValidationActionTypes.ValidationReportExport, NotificationType.Error, GetErrorContext(error)));\r\n      return {\r\n        type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationFailure}`\r\n      };\r\n    }\r\n  });\r\n};\r\n\r\nexport const ResetValidationDetails = () => ({\r\n  type: `${StateKeys.ValidationV2}/${AppValidationActionTypes.ValidationDetailReset}`\r\n});","import { apiAction, ApiMethods } from \".\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { IApiKeyClientRegistration, IApiKeyClientSecret } from \"../../interfaces/IApiKeyRegistration\";\r\nimport { ApiKeyRegistrationsAPI } from \"../../constants/APIEndpoints\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\n\r\nexport enum ApiKeyRegistrationsActionTypes {\r\n  APIKeyRegistrationCreate_Success = \"APIKeyRegistrationCreate_Success\",\r\n  APIKeyRegistrationCreate_Failed = \"APIKeyRegistrationCreate_Failed\",\r\n  APIKeyRegistrationUpdate_Success = \"APIKeyRegistrationUpdate_Success\",\r\n  APIKeyRegistrationUpdate_Failed = \"APIKeyRegistrationUpdate_Failed\",\r\n  APIKeyRegistrationDelete_Success = \"APIKeyRegistrationDelete_Success\",\r\n  APIKeyRegistrationDelete_Failed = \"APIKeyRegistrationDelete_Failed\",\r\n  APIKeyRegistrationItemRead_Success = \"APIKeyRegistrationItemRead_Success\",\r\n  APIKeyRegistrationItemRead_Failed = \"APIKeyRegistrationItemRead_Failed\",\r\n  APIKeyRegistrationList_Success = \"APIKeyRegistrationList_Success\",\r\n  APIKeyRegistrationList_Failed = \"APIKeyRegistrationList_Failed\",\r\n  APIKeyRegistrationReset = \"APIKeyRegistrationReset\",\r\n  APIKeyRegistrationSavedIDReset = \"APIKeyRegistrationSavedIDReset\",\r\n  ResetSavedApiSecret = \"ResetSavedApiSecret\",\r\n  APISecretCreate_Failed = \"APISecretCreate_Failed\",\r\n  APISecretDelete_Failed = \"APISecretDelete_Failed\",\r\n  APISecretPatch_Failed = \"APISecretPatch_Failed\",\r\n  APISecretCreate_Success = \"APISecretCreate_Success\"\r\n}\r\n\r\n// List all elements upto 1000 perPage - current limit 1000 per tenant\r\nexport const GetApiKeyRegistrationList = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.getApiKeyRegistrationsList}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationList_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    correlationId: uuidv4(),\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          ApiKeyRegistrationsActionTypes.APIKeyRegistrationList_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationList_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Delete Item by Id\r\nexport const DeleteApiKeyRegistrationItem = (dispatch: AppDispatch, id: string, message:string) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.deleteAPIKeyRegistrationItem.replace(\":apiSecretRegistrationId\", id)}`,\r\n    method: ApiMethods.Delete,\r\n    correlationId: uuidv4(),\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, message, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.NewApiKeyRegistrationDelete, {})\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationDelete_Success}`,\r\n        payload: { id }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          ApiKeyRegistrationsActionTypes.APIKeyRegistrationDelete_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n    }\r\n  });\r\n\r\n// Clear State\r\nexport const ResetApiKeyRegistration = (dispatch: AppDispatch) => {\r\n  dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n  return {\r\n    type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationReset}`,\r\n    payload: []\r\n  };\r\n};\r\n\r\n// Clear Saved Item State\r\nexport const ResetSavedApiKeyID = () => ({\r\n  type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationSavedIDReset}`,\r\n  payload: []\r\n});\r\n\r\n// Clear Secret Saved State\r\nexport const ResetSavedApiSecret = () => ({\r\n  type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.ResetSavedApiSecret}`,\r\n  payload: []\r\n});\r\n\r\n// Individual Item on Details Page\r\nexport const GetApiKeyRegistrationItem = (dispatch: AppDispatch, id: string) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.getAPIKeyRegistrationItem.replace(\":apiSecretRegistrationId\", id)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationItemRead_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          ApiKeyRegistrationsActionTypes.APIKeyRegistrationList_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationItemRead_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Create new Api Registration Object\r\nexport const CreateNewApiKeyRegistration = (dispatch: AppDispatch, requestBody: IApiKeyClientRegistration) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.createApiKeyRegistrationItem}`,\r\n    method: ApiMethods.Post,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogUserBi(TelemetryObjectId.NewApiKeyRegistrationSuccess, {})\r\n      // Notifiation is hanled inside the Component for better customisation\r\n      return {\r\n        payload: data,\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationCreate_Success}`\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          ApiKeyRegistrationsActionTypes.APIKeyRegistrationCreate_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      Logger.LogUserBi(TelemetryObjectId.NewApiKeyRegistrationFailure, {})\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationCreate_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Patch new Parameters to Api Registration Object\r\nexport const UpdateApiKeyRegistration = (dispatch: AppDispatch, id: string, requestBody: Partial<IApiKeyClientRegistration>) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.updateApiKeyRegistrationItem.replace(\":apiSecretRegistrationId\", id)}`,\r\n    method: ApiMethods.Patch,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, ApiKeyRegistrationsActionTypes.APIKeyRegistrationUpdate_Success, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.NewApiKeyRegistrationUpdate, {})\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationUpdate_Success}`,\r\n        payload: { id }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          ApiKeyRegistrationsActionTypes.APIKeyRegistrationUpdate_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APIKeyRegistrationUpdate_Failed}`\r\n      };\r\n    }\r\n  });\r\n// Delete Secret by Id\r\nexport const DeleteClientSecretItem = (dispatch: AppDispatch, keyId: string, secretId: string, message: string) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.ApiSecretWithId.replace(\":apiSecretRegistrationId\", keyId).replace(\":clientSecretId\", secretId)}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, message, NotificationType.Success));\r\n      Logger.log(TelemetryObjectId.NewApiKeySecretDelete, {})\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(true, ApiKeyRegistrationsActionTypes.APISecretDelete_Failed, NotificationType.Error, GetErrorContext(error))\r\n      );\r\n    }\r\n  });\r\n\r\n// Create Secret by Id\r\nexport const CreateClientSecretItem = (\r\n  dispatch: AppDispatch,\r\n  keyId: string,\r\n  requestBody: Partial<IApiKeyClientSecret>,\r\n  message: string\r\n) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.ApiSecret.replace(\":apiSecretRegistrationId\", keyId)}`,\r\n    data: requestBody,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, message, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.NewApiKeySecretCreateSuccess, {})\r\n      return {\r\n        type: `${StateKeys.ApiKeyRegistrations}/${ApiKeyRegistrationsActionTypes.APISecretCreate_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(true, ApiKeyRegistrationsActionTypes.APISecretCreate_Failed, NotificationType.Error, GetErrorContext(error))\r\n      );\r\n      Logger.LogUserBi(TelemetryObjectId.NewApiKeySecretCreateFailure, {})\r\n    }\r\n  });\r\n\r\n// Patch Secret by Id\r\nexport const PatchClientSecretItem = (\r\n  dispatch: AppDispatch,\r\n  keyId: string,\r\n  secretId: string,\r\n  requestBody: Partial<IApiKeyClientSecret>,\r\n  message: string\r\n) =>\r\n  apiAction({\r\n    url: `${ApiKeyRegistrationsAPI.ApiSecretWithId.replace(\":apiSecretRegistrationId\", keyId).replace(\":clientSecretId\", secretId)}`,\r\n    data: requestBody,\r\n    method: ApiMethods.Patch,\r\n    correlationId: uuidv4(),\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, message, NotificationType.Success));\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(true, ApiKeyRegistrationsActionTypes.APISecretPatch_Failed, NotificationType.Error, GetErrorContext(error))\r\n      );\r\n    }\r\n  });\r\n","export interface IOAuthConfigurationBase {\r\n  oAuthConfigId: string; // max 128 characters\r\n  description: string; // max 126 chars\r\n  applicableToApps: OAuthConfigurationTargetAppType;\r\n  m365AppId?: string;\r\n  createdDateTime?: string;\r\n  targetAudience: OAuthConfigurationAudienceType;\r\n  clientId: string;\r\n  identityProvider: OAuthIdentityProviderType;\r\n  targetUrlsShouldStartWith: string[];\r\n  resourceIdentifierUri?: string;\r\n}\r\n\r\nexport interface IOAuthConfigurationCustom extends IOAuthConfigurationBase {\r\n  isPKCEEnabled?: boolean;\r\n  clientSecret: string;\r\n  scopes: string[];\r\n  authorizationEndpoint: string;\r\n  tokenExchangeEndpoint: string;\r\n  tokenRefreshEndpoint?: string;\r\n  tokenExchangeMethodType?: OAuthTokenExchangeMethodType;\r\n}\r\nexport type IOAuthConfigurationEntra = IOAuthConfigurationBase;\r\n\r\nexport type IOAuthConfigurationCustomCreatePayload = Omit<IOAuthConfigurationCustom, \"oAuthConfigId\" | \"createdDateTime\">;\r\nexport type IOAuthConfigurationEntraCreatePayload = Omit<\r\n  IOAuthConfigurationEntra,\r\n  \"oAuthConfigId\" | \"resourceIdentifierUri\" | \"createdDateTime\"\r\n>;\r\n\r\nexport enum OAuthConfigurationTargetAppType {\r\n  SpecificApp = \"SpecificApp\",\r\n  AnyApp = \"AnyApp\"\r\n}\r\n\r\nexport enum OAuthConfigurationAudienceType {\r\n  HomeTenant = \"HomeTenant\",\r\n  AnyTenant = \"AnyTenant\"\r\n}\r\n\r\nexport enum OAuthIdentityProviderType {\r\n  Custom = \"Custom\",\r\n  MicrosoftEntra = \"MicrosoftEntra\"\r\n}\r\n\r\nexport enum OAuthTokenExchangeMethodType {\r\n  BasicAuthorizationHeader = \"BasicAuthorizationHeader\",\r\n  PostRequestBody = \"PostRequestBody\"\r\n}\r\n\r\nexport const oAuthConfigurationAnyAppExample: IOAuthConfigurationCustomCreatePayload = {\r\n  description: \"OAuth-name-any-app example\",\r\n  targetUrlsShouldStartWith: [\"https://www.example.com/v1\"],\r\n  applicableToApps: OAuthConfigurationTargetAppType.AnyApp,\r\n  clientSecret: \"**********************\",\r\n  targetAudience: OAuthConfigurationAudienceType.HomeTenant,\r\n  clientId: \"client_id\",\r\n  authorizationEndpoint: \"https://login.example.com/authorize\",\r\n  tokenExchangeEndpoint: \"https://login.example.com/token\",\r\n  tokenRefreshEndpoint: \"https://login.example.com/refresh\",\r\n  scopes: [\"user.read\", \"user.write\"],\r\n  identityProvider: OAuthIdentityProviderType.Custom\r\n};\r\n\r\nexport const oAuthConfigurationExistingAppExample: IOAuthConfigurationCustomCreatePayload = {\r\n  description: \"OAuth-name-existing-app example\",\r\n  targetUrlsShouldStartWith: [\"https://www.example.com/v1\"],\r\n  applicableToApps: OAuthConfigurationTargetAppType.SpecificApp,\r\n  m365AppId: \"00000000-0000-0000-0000-000000000000\",\r\n  clientSecret: \"**********************\",\r\n  targetAudience: OAuthConfigurationAudienceType.HomeTenant,\r\n  clientId: \"client_id\",\r\n  authorizationEndpoint: \"https://login.example.com/authorize\",\r\n  tokenExchangeEndpoint: \"https://login.example.com/token\",\r\n  tokenRefreshEndpoint: \"https://login.example.com/refresh\",\r\n  scopes: [\"user.read\", \"user.write\"],\r\n  identityProvider: OAuthIdentityProviderType.Custom\r\n};\r\n","import yaml from \"yaml\";\r\n\r\nexport function parseContent(extname: string, fileContent: string) {\r\n  if (!fileContent || fileContent===\"\"){\r\n    return {}\r\n  }\r\n  switch (extname) {\r\n    case \".json\":\r\n      // we will not parse json file\r\n      // we will just return the content\r\n      // since we can store invalid json on the server\r\n      // parsing here can throw an error\r\n      return fileContent\r\n    case \".yaml\":\r\n    case \".yml\":\r\n      try {\r\n        return yaml.parse(fileContent);\r\n      } catch (e) {\r\n        return fileContent;\r\n      }\r\n    default:\r\n      return fileContent;\r\n  }\r\n}\r\n","import React from \"react\";\r\nimport { createSvgIcon, SvgIconFuncArg, SvgIconProps } from \"@fluentui/react-northstar\";\r\n\r\nconst ListViewSVG = ({ classes, props }: SvgIconFuncArg<SvgIconProps>) => (\r\n  <svg viewBox=\"1.5 1.5 11.5 11.5\" className={classes.svg} {...props}>\r\n    <path\r\n      d=\"M2 3.5a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 0 1h-8a.5.5 0 0 1-.5-.5zm0 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zM2.5 7a.5.5 0 0 0 0 1h11a.5.5 0 0 0 0-1h-11z\"\r\n      fill=\"currentColor\"\r\n    />\r\n  </svg>\r\n);\r\n\r\nexport const ListViewIcon = createSvgIcon({ svg: ListViewSVG, displayName: \"ListView\" });\r\n","import { ListViewIcon } from \"../icons\";\r\nimport Strings from \"../../core/locale/strings.json\";\r\nimport { ButtonGroup, GridIcon, useFluentContext } from \"@fluentui/react-northstar\";\r\nimport React from \"react\";\r\nimport { useIntl } from \"react-intl\";\r\nimport { selfClickOnEnterOrSpace } from \"../common/AccessibilityUtils\";\r\n\r\nexport enum LayoutType {\r\n  List = \"List\",\r\n  Grid = \"Grid\"\r\n}\r\n\r\nexport interface ILayoutToggleProps {\r\n  currentLayout: LayoutType;\r\n  onClickList: () => void;\r\n  onClickGrid: () => void;\r\n}\r\n\r\nexport const LayoutToggle = ({ currentLayout, onClickGrid, onClickList }: ILayoutToggleProps) => {\r\n  const intl = useIntl();\r\n  const { theme } = useFluentContext();\r\n\r\n  return (\r\n    <ButtonGroup\r\n      buttons={[\r\n        {\r\n          key: \"selectGridButton\",\r\n          iconOnly: true,\r\n          icon: (<ListViewIcon outline={currentLayout !== LayoutType.List} />),\r\n          onClick: onClickList,\r\n          onKeyDown: selfClickOnEnterOrSpace,\r\n          \"aria-label\": intl.formatMessage({ id: \"tableToggleAriaLabel\", defaultMessage: Strings.tableToggleAriaLabel }),\r\n          \"aria-pressed\": currentLayout === LayoutType.List,\r\n          styles: {\r\n            borderTopLeftRadius: \"6px\",\r\n            borderBottomLeftRadius: \"6px\",\r\n            borderTopRightRadius: 0,\r\n            borderBottomRightRadius: 0,\r\n            borderRightWidth: 0,\r\n            boxShadow: \"none\",\r\n            color:\r\n              currentLayout === LayoutType.List\r\n                ? theme.siteVariables.colorScheme.brand.foreground\r\n                : theme.siteVariables.colorScheme.default.foreground1\r\n          }\r\n        },\r\n        {\r\n          key: \"selectListButton\",\r\n          iconOnly: true,\r\n          icon: <GridIcon {...(currentLayout !== LayoutType.Grid && { outline: true })} />,\r\n          onClick: onClickGrid,\r\n          onKeyDown: selfClickOnEnterOrSpace,\r\n          \"aria-label\": intl.formatMessage({ id: \"gridToggleAriaLabel\", defaultMessage: Strings.gridToggleAriaLabel }),\r\n          \"aria-pressed\": currentLayout === LayoutType.Grid,\r\n          styles: {\r\n            borderTopRightRadius: \"6px !important\",\r\n            borderBottomRightRadius: \"6px !important\",\r\n            borderTopLeftRadius: 0,\r\n            borderBottomLeftRadius: 0,\r\n            boxShadow: \"none\",\r\n            color:\r\n              currentLayout === LayoutType.Grid\r\n                ? theme.siteVariables.colorScheme.brand.foreground\r\n                : theme.siteVariables.colorScheme.default.foreground1\r\n          }\r\n        }\r\n      ]}\r\n    />\r\n  );\r\n};\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { IApsAction } from \".\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\n\r\nexport enum ErrorPageActionTypes {\r\n  ShowError = \"Show_Error\"\r\n}\r\n\r\nexport enum ErrorCode {\r\n  BadRequest = 400,\r\n  UnAuthorized = 401,\r\n  Forbidden = 403,\r\n  NotFound = 404,\r\n  UriTooLong = 414,\r\n  TooManyRequests = 429,\r\n  ServerError = 500,\r\n  NotImplemented = 501,\r\n  BadGateWay = 502,\r\n  ServiceUnAvailable = 503,\r\n  GatewayTimeout = 504,\r\n  Default = 0\r\n}\r\n\r\nexport const showError = (errorCode: ErrorCode, type: IApsAction): IAction => ({\r\n    type: `${StateKeys.ErrorPage}/${ErrorPageActionTypes.ShowError}`,\r\n    payload: {\r\n      type,\r\n      errorCode\r\n    }\r\n  });\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\nexport enum AppCatalogSubmitState {\r\n  Unpublished = \"unpublished\",\r\n  Submitted = \"submitted\",\r\n  Published = \"published\",\r\n  Rejected = \"rejected\"\r\n}\r\n","import { NotificationActionTypes } from \"../actions/NotificationActions\";\r\nimport { updateState, StateKeys } from \"./ReducerUtils\";\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// todo: define interface\r\n\r\nexport const notificationSlice = createSlice({\r\n  name: StateKeys.Notification,\r\n  initialState: {},\r\n  reducers: {\r\n    [NotificationActionTypes.Show]: updateState(StateKeys.Notification)\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\n import { apiAction, ApiMethods } from \".\";\r\n import { Config } from \"../../constants/Config\";\r\n import Logger from \"../telemetry/Logger\";\r\n import { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\n import Strings from \"../locale/strings.json\";\r\n import { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\n import { StateKeys } from \"../reducers/ReducerUtils\";\r\n import type { AxiosResponse } from \"axios\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { IPublishingStatus } from \"../../interfaces/IPublishingStatus\";\r\n \r\n export enum PublishingStatusActionTypes {\r\n    GetAppPublishingStatusSuccess = \"GetPubishingStatusSuccess\",\r\n    GetAppPublishingStatusFail = \"GetPubishingStatusFail\",\r\n    ClearPublishingStatus = \"ClearPublishingStatus\"\r\n }\r\n \r\n \r\n export const GetAppPublishingStatus = (externalId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appStatusTracking/apps/${externalId}/status`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IPublishingStatus) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppPublishingStatusSuccessfully, Strings.getAppPublishingStatusSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppPublishingStatusState}/${PublishingStatusActionTypes.GetAppPublishingStatusSuccess}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.GetAppPublishingStatusError, Strings.getAppPublishingStatusError);\r\n      return {\r\n        type: `${StateKeys.AppPublishingStatusState}/${PublishingStatusActionTypes.GetAppPublishingStatusFail}`,\r\n        payload: error\r\n      };\r\n    }\r\n  });\r\n\r\n  export const ClearAppPublishingStatus = () =>{\r\n    return {\r\n      type: `${StateKeys.AppPublishingStatusState}/${PublishingStatusActionTypes.ClearPublishingStatus}`,\r\n    };\r\n  };\r\n ","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\n import { apiAction, ApiMethods } from \".\";\r\n import { Config } from \"../../constants/Config\";\r\n import Logger from \"../telemetry/Logger\";\r\n import { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\n import Strings from \"../locale/strings.json\";\r\n import { showNotification } from \"./NotificationActions\";\r\n import { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\n import { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\n import { AppDispatch } from \"../store\";\r\n import { ILanguage } from \"../../interfaces\";\r\n import get from \"lodash/get\";\r\n import { StateKeys } from \"../reducers/ReducerUtils\";\r\n import type { AxiosResponse } from \"axios\";\r\n import { ITenantSettings } from \"src/interfaces/ITenantSettings\";\r\n \r\n export enum UserSettingsActionTypes {\r\n   GetLanguage = \"UserSettings_GetLanguage\",\r\n   IsSideLoadingInteractionEnabledForTenant = \"UserSettings_IsSideLoadingInteractionEnabledForTenant\",\r\n   IsUserDevX = \"UserSettings_IsUserDevX\",\r\n   IsPrivilegedTeamsAdmin = \"UserSettings_IsPrivilegedTeamsAdmin\",\r\n   GetTenantSettings = \"UserSettings_GetTenantSettings\"\r\n }\r\n \r\n export const GetLanguage = (dispatch: AppDispatch) =>\r\n   apiAction({\r\n     url: `${Config.apiUrl}/usersettings/locale`,\r\n     method: ApiMethods.Get,\r\n     onSuccess: (data: ILanguage) => ({\r\n       type: `${StateKeys.UserSettings}/${UserSettingsActionTypes.GetLanguage}`,\r\n       payload: data\r\n     }),\r\n     onFailure: (error: AxiosResponse) => {\r\n       dispatch(showNotification(true, Strings.userSettingsLanguageError, NotificationType.Error, GetErrorContext(error)));\r\n       Logger.LogError(TelemetryEventName.GetUserSettingsLanguageError, error.statusText);\r\n     }\r\n   });\r\n \r\n export const IsSideLoadingInteractionEnabledForTenant = (dispatch: AppDispatch) =>\r\n   apiAction({\r\n     url: `${Config.apiUrl}/usersettings/mttenantsettingv2`,\r\n     method: ApiMethods.Get,\r\n     onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n     onSuccess: (data: string) => {\r\n       dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n       if (data) {\r\n         return {\r\n           type: `${StateKeys.UserSettings}/${UserSettingsActionTypes.IsSideLoadingInteractionEnabledForTenant}`,\r\n           payload: get(JSON.parse(data), [\"tenantSettingsV2\", \"value\", \"apps\", \"isSideLoadingInteractionEnabled\"], null)\r\n         };\r\n       }\r\n     },\r\n     onFailure: (error: string) => {\r\n       dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n       Logger.LogError(TelemetryEventName.IsSideLoadingInteractionEnabledForTenantError, error);\r\n     }\r\n   });\r\n \r\n export const UpdateIsSideLoadingInteractionEnabledForTenant = (\r\n   isEnabled: boolean,\r\n   successMessage: string,\r\n   errorMessage: string,\r\n   dispatch: AppDispatch\r\n ) =>\r\n   apiAction({\r\n     url: `${Config.apiUrl}/usersettings/allowInteractionWithCustomApp`,\r\n     method: ApiMethods.Put,\r\n     data: { isSideloadedAppsInteractionEnabled: isEnabled },\r\n     onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n     onSuccess: (data: string) => {\r\n       dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n       dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n       if (data) {\r\n         return {\r\n           type: `${StateKeys.UserSettings}/${UserSettingsActionTypes.IsSideLoadingInteractionEnabledForTenant}`,\r\n           payload: get(JSON.parse(data), [\"tenantSettingsV2\", \"value\", \"apps\", \"isSideLoadingInteractionEnabled\"], null)\r\n         };\r\n       }\r\n     },\r\n     onFailure: (error: AxiosResponse) => {\r\n       dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n       dispatch(showNotification(true, errorMessage, NotificationType.Error, GetErrorContext(error)));\r\n       Logger.LogError(TelemetryEventName.IsSideLoadingInteractionEnabledForTenantError, error.statusText);\r\n     }\r\n   });\r\n \r\n export const IsUserDevX = (dispatch: AppDispatch) =>\r\n   apiAction({\r\n     url: `${Config.apiUrl}/usersettings/isdevx`,\r\n     method: ApiMethods.Get,\r\n     onSuccess: (data: boolean) => ({\r\n       type: `${StateKeys.UserSettings}/${UserSettingsActionTypes.IsUserDevX}`,\r\n       payload: data\r\n     }),\r\n     onFailure: (error: AxiosResponse) => {\r\n       Logger.LogError(TelemetryEventName.GetUserSettingsLanguageError, error.statusText);\r\n     }\r\n   });\r\n \r\n export const IsPrivilegedTeamsAdmin = () =>\r\n   apiAction({\r\n     url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/usersettings/isPrivilegedTeamsAdmin`,\r\n     method: ApiMethods.Get,\r\n     onSuccess: (data: boolean) => ({\r\n       type: `${StateKeys.UserSettings}/${UserSettingsActionTypes.IsPrivilegedTeamsAdmin}`,\r\n       payload: data\r\n     }),\r\n     onFailure: (error: AxiosResponse) => {\r\n       Logger.LogError(TelemetryEventName.GetUserSettingsLanguageError, error.statusText);\r\n     }\r\n   });\r\n\r\n export const GetTenantSettings = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/usersettings/v2/tenantSettings`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: ITenantSettings) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.UserSettings}/${UserSettingsActionTypes.GetTenantSettings}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: string) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.GetUserSettingsTenantSettingsError, error);\r\n    }\r\n  });\r\n ","import { Config } from \"./Config\";\r\n\r\nconst host = `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}`;\r\n\r\nexport const appValidationAPI = {\r\n  getAppValidationCount: `${host}/v1.0/appvalidations/appdefinitions/:appDefinitionId/count`,\r\n  getAppValidation: `${host}/v1.0/appvalidations/appdefinitions/:appDefinitionId`,\r\n  getAppValidationDetail: `${host}/v1.0/appvalidations/:validationId`,\r\n  newAppValidation: `${host}/v1.0/appvalidations/appdefinition/validate`,\r\n  exportReport: `${host}/v1.0/appvalidations/:validationId/export`,\r\n  exportZip: `${host}/v1.0/appvalidations/:validationId/apppackage`\r\n};\r\n\r\nexport const ApiKeyRegistrationsAPI = {\r\n  getApiKeyRegistrationsList: `${host}/v1.0/apiSecretRegistrations`,\r\n  getAPIKeyRegistrationItem: `${host}/v1.0/apiSecretRegistrations/:apiSecretRegistrationId`,\r\n  deleteAPIKeyRegistrationItem: `${host}/v1.0/apiSecretRegistrations/:apiSecretRegistrationId`,\r\n  createApiKeyRegistrationItem: `${host}/v1.0/apiSecretRegistrations`,\r\n  updateApiKeyRegistrationItem: `${host}/v1.0/apiSecretRegistrations/:apiSecretRegistrationId`,\r\n  ApiSecretWithId: `${host}/v1.0/apiSecretRegistrations/:apiSecretRegistrationId/clientSecrets/:clientSecretId`,\r\n  ApiSecret: `${host}/v1.0/apiSecretRegistrations/:apiSecretRegistrationId/clientSecrets/`\r\n};\r\n\r\nexport const OAuthConfigurationsAPI = {\r\n  getOAuthConfigurationsList: `${host}/v1.0/oAuthConfigurations`,\r\n  getOAuthConfigurationItem: `${host}/v1.0/oAuthConfigurations/:oAuthConfigurationId`,\r\n  deleteOAuthConfigurationItem: `${host}/v1.0/oAuthConfigurations/:oAuthConfigurationId`,\r\n  createOAuthConfigurationItem: `${host}/v1.0/oAuthConfigurations`,\r\n  updateOAuthConfigurationItem: `${host}/v1.0/oAuthConfigurations/:oAuthConfigurationId`\r\n};\r\n\r\nexport const AnalyticsV2API = {\r\n  analyticsEndpoint: `${host}/analytics/v2/apps/:appId/usage`\r\n}","import type { AxiosResponse } from \"axios\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { OAuthConfigurationsAPI } from \"../../constants/APIEndpoints\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\nimport {\r\n  OAuthIdentityProviderType,\r\n  IOAuthConfigurationBase,\r\n  IOAuthConfigurationCustom,\r\n  IOAuthConfigurationCustomCreatePayload\r\n} from \"../../interfaces/IOAuthConfiguration\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { UILoadingActionTypes, uiLoadingSlice } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { showNotification } from \"./NotificationActions\";\r\n\r\nconst createOAuthConfigurationTelemetryPayload = (oAuthState: Partial<IOAuthConfigurationCustom>) => ({\r\n  message: JSON.stringify({\r\n    targetOrg_Value: oAuthState.targetAudience,\r\n    appType_Value: oAuthState.applicableToApps,\r\n    scope_Value: oAuthState.scopes?.join(\", \")\r\n  })\r\n});\r\n\r\nexport enum OAuthConfigurationsActionTypes {\r\n  OAuthConfigurationCreate_Success = \"OAuthConfigurationCreate_Success\",\r\n  OAuthConfigurationCreate_Failed = \"OAuthConfigurationCreate_Failed\",\r\n  OAuthConfigurationUpdate_Success = \"OAuthConfigurationUpdate_Success\",\r\n  OAuthConfigurationUpdate_Failed = \"OAuthConfigurationUpdate_Failed\",\r\n  OAuthConfigurationDelete_Success = \"OAuthConfigurationDelete_Success\",\r\n  OAuthConfigurationDelete_Failed = \"OAuthConfigurationDelete_Failed\",\r\n  OAuthConfigurationItemRead_Success = \"OAuthConfigurationItemRead_Success\",\r\n  OAuthConfigurationItemRead_Failed = \"OAuthConfigurationItemRead_Failed\",\r\n  OAuthConfigurationList_Success = \"OAuthConfigurationList_Success\",\r\n  OAuthConfigurationList_Failed = \"OAuthConfigurationList_Failed\",\r\n  OAuthConfigurationReset = \"OAuthConfigurationReset\",\r\n  OAuthConfigurationSavedIDReset = \"OAuthConfigurationSavedIDReset\"\r\n}\r\n\r\n// List all elements upto 1000 perPage - current limit 1000 per tenant\r\nexport const GetOAuthConfigurationList = (dispatch: AppDispatch, identityProvider?: OAuthIdentityProviderType) =>\r\n  apiAction({\r\n    url: identityProvider\r\n      ? `${OAuthConfigurationsAPI.getOAuthConfigurationsList}?identityProvider=${identityProvider}`\r\n      : `${OAuthConfigurationsAPI.getOAuthConfigurationsList}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationList_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    correlationId: uuidv4(),\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          OAuthConfigurationsActionTypes.OAuthConfigurationList_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationList_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Delete Item by Id\r\nexport const DeleteOAuthConfigurationItem = (dispatch: AppDispatch, id: string, message: string) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.deleteOAuthConfigurationItem.replace(\":oAuthConfigurationId\", id)}`,\r\n    method: ApiMethods.Delete,\r\n    correlationId: uuidv4(),\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, message, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.OAuthConfigurationDelete, {});\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationDelete_Success}`,\r\n        payload: { id }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          OAuthConfigurationsActionTypes.OAuthConfigurationDelete_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n    }\r\n  });\r\n\r\n// Clear State\r\nexport const ResetOAuthConfiguration = (dispatch: AppDispatch) => {\r\n  dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n  return {\r\n    type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationReset}`,\r\n    payload: []\r\n  };\r\n};\r\n\r\n// Clear Saved Item State\r\nexport const ResetSavedOAuthID = () => ({\r\n  type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationSavedIDReset}`,\r\n  payload: []\r\n});\r\n\r\n// Individual Item on Details Page\r\nexport const GetOAuthConfigurationItem = (dispatch: AppDispatch, id: string) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.getOAuthConfigurationItem.replace(\":oAuthConfigurationId\", id)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationItemRead_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          OAuthConfigurationsActionTypes.OAuthConfigurationList_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationItemRead_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Create new Api Configuration Object\r\nexport const CreateNewOAuthConfiguration = (dispatch: AppDispatch, requestBody: IOAuthConfigurationCustomCreatePayload) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.createOAuthConfigurationItem}`,\r\n    method: ApiMethods.Post,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogUserBi(TelemetryObjectId.NewOAuthConfigurationSuccess, createOAuthConfigurationTelemetryPayload(requestBody));\r\n      // Notifiation is hanled inside the Component for better customisation\r\n      return {\r\n        payload: data,\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationCreate_Success}`\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          OAuthConfigurationsActionTypes.OAuthConfigurationCreate_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      Logger.LogUserBi(TelemetryObjectId.NewOAuthConfigurationFailure, createOAuthConfigurationTelemetryPayload(requestBody));\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationCreate_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Patch new Parameters to Api Configuration Object\r\nexport const UpdateOAuthConfiguration = (dispatch: AppDispatch, id: string, requestBody: Partial<IOAuthConfigurationCustom>) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.updateOAuthConfigurationItem.replace(\":oAuthConfigurationId\", id)}`,\r\n    method: ApiMethods.Patch,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, OAuthConfigurationsActionTypes.OAuthConfigurationUpdate_Success, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.OAuthConfigurationUpdateSuccess, createOAuthConfigurationTelemetryPayload(requestBody));\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationUpdate_Success}`,\r\n        payload: { id }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          OAuthConfigurationsActionTypes.OAuthConfigurationUpdate_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      Logger.LogUserBi(TelemetryObjectId.OAuthConfigurationUpdateFailure, createOAuthConfigurationTelemetryPayload(requestBody));\r\n      return {\r\n        type: `${StateKeys.OAuthConfigurations}/${OAuthConfigurationsActionTypes.OAuthConfigurationUpdate_Failed}`\r\n      };\r\n    }\r\n  });\r\n","import type { AxiosResponse } from \"axios\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { OAuthConfigurationsAPI } from \"../../constants/APIEndpoints\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\nimport {\r\n  OAuthIdentityProviderType,\r\n  IOAuthConfigurationBase,\r\n  IOAuthConfigurationEntra,\r\n  IOAuthConfigurationEntraCreatePayload\r\n} from \"../../interfaces/IOAuthConfiguration\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { UILoadingActionTypes, uiLoadingSlice } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { showNotification } from \"./NotificationActions\";\r\n\r\nconst createEntraConfigurationTelemetryPayload = (EntraState: IOAuthConfigurationEntra | Partial<IOAuthConfigurationBase>) => ({\r\n  message: JSON.stringify({\r\n    targetOrg_Value: EntraState.targetAudience,\r\n    appType_Value: EntraState.applicableToApps\r\n  })\r\n});\r\n\r\nexport enum EntraConfigurationsActionTypes {\r\n  EntraConfigurationCreate_Success = \"EntraConfigurationCreate_Success\",\r\n  EntraConfigurationCreate_Failed = \"EntraConfigurationCreate_Failed\",\r\n  EntraConfigurationUpdate_Success = \"EntraConfigurationUpdate_Success\",\r\n  EntraConfigurationUpdate_Failed = \"EntraConfigurationUpdate_Failed\",\r\n  EntraConfigurationDelete_Success = \"EntraConfigurationDelete_Success\",\r\n  EntraConfigurationDelete_Failed = \"EntraConfigurationDelete_Failed\",\r\n  EntraConfigurationItemRead_Success = \"EntraConfigurationItemRead_Success\",\r\n  EntraConfigurationItemRead_Failed = \"EntraConfigurationItemRead_Failed\",\r\n  EntraConfigurationList_Success = \"EntraConfigurationList_Success\",\r\n  EntraConfigurationList_Failed = \"EntraConfigurationList_Failed\",\r\n  EntraConfigurationReset = \"EntraConfigurationReset\",\r\n  EntraConfigurationSavedIDReset = \"EntraConfigurationSavedIDReset\"\r\n}\r\n\r\n// List all elements upto 1000 perPage - current limit 1000 per tenant\r\nexport const GetEntraConfigurationList = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.getOAuthConfigurationsList}?identityProvider=${OAuthIdentityProviderType.MicrosoftEntra}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationList_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    correlationId: uuidv4(),\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          EntraConfigurationsActionTypes.EntraConfigurationList_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationList_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Delete Item by Id\r\nexport const deleteEntraConfigurationItem = (dispatch: AppDispatch, id: string, message: string) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.deleteOAuthConfigurationItem.replace(\":oAuthConfigurationId\", id)}`,\r\n    method: ApiMethods.Delete,\r\n    correlationId: uuidv4(),\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, message, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.EntraConfigurationDelete, {});\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationDelete_Success}`,\r\n        payload: { id }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          EntraConfigurationsActionTypes.EntraConfigurationDelete_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n    }\r\n  });\r\n\r\n// Clear State\r\nexport const ResetEntraConfiguration = (dispatch: AppDispatch) => {\r\n  dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n  return {\r\n    type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationReset}`,\r\n    payload: []\r\n  };\r\n};\r\n\r\n// Clear Saved Item State\r\nexport const ResetSavedEntraID = () => ({\r\n  type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationSavedIDReset}`,\r\n  payload: []\r\n});\r\n\r\n// Individual Item on Details Page\r\nexport const GetEntraConfigurationItem = (dispatch: AppDispatch, id: string) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.getOAuthConfigurationItem.replace(\":oAuthConfigurationId\", id)}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationItemRead_Success}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          EntraConfigurationsActionTypes.EntraConfigurationList_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationItemRead_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Create new Api Configuration Object\r\nexport const CreateNewEntraConfiguration = (dispatch: AppDispatch, requestBody: IOAuthConfigurationEntraCreatePayload) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.createOAuthConfigurationItem}`,\r\n    method: ApiMethods.Post,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: (data: any) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogUserBi(TelemetryObjectId.NewEntraConfigurationSuccess, createEntraConfigurationTelemetryPayload(requestBody));\r\n      // Notifiation is hanled inside the Component for better customisation\r\n      return {\r\n        payload: data,\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationCreate_Success}`\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          EntraConfigurationsActionTypes.EntraConfigurationCreate_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      Logger.LogUserBi(TelemetryObjectId.NewEntraConfigurationFailure, createEntraConfigurationTelemetryPayload(requestBody));\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationCreate_Failed}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Patch new Parameters to Api Configuration Object\r\nexport const UpdateEntraConfiguration = (dispatch: AppDispatch, id: string, requestBody: Partial<IOAuthConfigurationEntra>) =>\r\n  apiAction({\r\n    url: `${OAuthConfigurationsAPI.updateOAuthConfigurationItem.replace(\":oAuthConfigurationId\", id)}`,\r\n    method: ApiMethods.Patch,\r\n    data: requestBody,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    correlationId: uuidv4(),\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, EntraConfigurationsActionTypes.EntraConfigurationUpdate_Success, NotificationType.Success));\r\n      Logger.LogUserBi(TelemetryObjectId.EntraConfigurationUpdateSuccess, createEntraConfigurationTelemetryPayload(requestBody));\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationUpdate_Success}`,\r\n        payload: { id }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(\r\n        showNotification(\r\n          true,\r\n          EntraConfigurationsActionTypes.EntraConfigurationUpdate_Failed,\r\n          NotificationType.Error,\r\n          GetErrorContext(error)\r\n        )\r\n      );\r\n      Logger.LogUserBi(TelemetryObjectId.EntraConfigurationUpdateFailure, createEntraConfigurationTelemetryPayload(requestBody));\r\n      return {\r\n        type: `${StateKeys.EntraConfigurations}/${EntraConfigurationsActionTypes.EntraConfigurationUpdate_Failed}`\r\n      };\r\n    }\r\n  });\r\n","import { AppPackageEditorStatus, IAppPackageEditorFile } from \"src/interfaces/IAppPackageEditor\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { UILoadingActionTypes, uiLoadingSlice } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\n\r\nexport enum AppPackageEditorActionTypes {\r\n    Reset = \"Reset\",\r\n    StatusChange = \"StatusChange\",\r\n    InitialFile_Add = \"InitialFile_Add\",\r\n    LocalFile_Add = \"LocalFile_Add\",\r\n    LocalFile_Remove = \"LocalFile_Remove\",\r\n    LocalFile_Update = \"LocalFile_Update\",\r\n    DiscardChanges = \"DiscardChanges\",\r\n    PackageUpdateStart = \"PackageUpdateStart\",\r\n    PackageUpdateSuccess = \"PackageUpdateSuccess\",\r\n    PackageUpdateFailure = \"PackageUpdateFailure\",\r\n}\r\n\r\nconst packageUpdateAPIEnpoints = {\r\n    overwrite: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/v2/import?overwriteIfAppAlreadyExists=${true}`,\r\n}\r\n\r\nexport const AppPackageEditorReset = () => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.Reset}`\r\n    };\r\n}\r\n\r\nexport const AppPackageEditorStatusChange = (status: AppPackageEditorStatus) => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.StatusChange}`,\r\n        payload: status\r\n    };\r\n}\r\n\r\nexport const AppPackageEditorAddInitialFile = (file: IAppPackageEditorFile) => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.InitialFile_Add}`,\r\n        payload: file\r\n    };\r\n};\r\n\r\nexport const AppPackageEditorAddLocalFile = (file: IAppPackageEditorFile) => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.LocalFile_Add}`,\r\n        payload: file\r\n    };\r\n};\r\n\r\nexport const AppPackageEditorRemoveLocalFile = (fileId: string) => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.LocalFile_Remove}`,\r\n        payload: fileId\r\n    };\r\n};\r\n\r\nexport const AppPackageEditorUpdateLocalFile = (file: IAppPackageEditorFile) => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.LocalFile_Update}`,\r\n        payload: file\r\n    };\r\n};\r\n\r\nexport const AppPackageEditorDiscardChanges = () => {\r\n    return {\r\n        type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.DiscardChanges}`\r\n    };\r\n};\r\n\r\nexport const UpdatePackageUsingImport = (dispatch: AppDispatch, file: File, successString: string, failureString: string, appId: string) => {    \r\n    return apiAction({\r\n        url: packageUpdateAPIEnpoints.overwrite,\r\n        method: ApiMethods.Post,\r\n        headers: {\r\n            \"Content-Type\": \"application/zip\"\r\n        },\r\n        data: file,\r\n        onStart: () => {\r\n            dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n            return {\r\n                type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.PackageUpdateStart}`,\r\n            }\r\n        },\r\n        onSuccess: (response: any) => {\r\n            dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n            dispatch(showNotification(true, successString, NotificationType.Success));\r\n            Logger.LogUserBi(TelemetryObjectId.AppPackageEditorSaveSuccess,{\r\n                appId\r\n            })\r\n            return {\r\n                type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.PackageUpdateSuccess}`,\r\n                payload: response\r\n            }\r\n        },\r\n        onFailure: (error: any) => {\r\n            dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n            dispatch(showNotification(true, failureString, NotificationType.Error));            \r\n            Logger.LogUserBi(TelemetryObjectId.AppPackageEditorSaveFail,{\r\n                appId,\r\n                message: error.toString()\r\n            })\r\n            return {\r\n                type: `${StateKeys.AppPackageEditor}/${AppPackageEditorActionTypes.PackageUpdateFailure}`,\r\n                payload: error\r\n            }\r\n        }\r\n    });    \r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum AppListUserModes {\r\n  Owner = \"owner\",\r\n  Admin = \"admin\"\r\n}\r\n","export const setActionPayload = (actionName: string, actionPayload: any) => {\r\n  actionName && window.localStorage?.setItem(actionName, actionPayload || \"\");\r\n};\r\nexport const getActionPayload = (actionName: string) => {\r\n  return (actionName && window.localStorage?.getItem(actionName)) || undefined;\r\n};\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { IMetricData } from \"../../interfaces/IMetricData\";\r\nimport type { AxiosResponse } from \"axios\";\r\n\r\nexport enum AnalyticsActionTypes {\r\n  GetActiveUserData = \"Analytics_ActiveUserData\",\r\n  GetActiveUserDataFailure = \"Analytics_ActiveUserData_Failure\",\r\n  LoadActiveUserData = \"Analytics_LoadActiveUserData\",\r\n  GetMetricData = \"Analytics_MetricData\",\r\n  GetMetricDataFailure = \"Analytics_MetricDataFailure\",\r\n  LoadMetricData = \"Analytics_LoadMetricData\"\r\n}\r\n\r\nexport const GetMonthlyActiveUsers = (appDefinitionId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/analytics/activeUsers?appDefinitionId=${appDefinitionId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: () => ({\r\n      type: `${StateKeys.Analytics}/${AnalyticsActionTypes.LoadActiveUserData}`,\r\n      appId: appDefinitionId\r\n    }),\r\n    onSuccess: (data: {\r\n      datasets?: {\r\n        [key: string]: number[];\r\n      };\r\n    }) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Analytics}/${AnalyticsActionTypes.GetActiveUserData}`,\r\n        appId: appDefinitionId,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Analytics}/${AnalyticsActionTypes.GetActiveUserDataFailure}`,\r\n        appId: appDefinitionId\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetMetrics = (\r\n  appDefinitionId: string,\r\n  aggregationType: string,\r\n  platform: string,\r\n  operatingSystem: string,\r\n  area: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${\r\n      process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl\r\n    }/analytics/metrics?appDefinitionId=${appDefinitionId}&entityType=${aggregationType}\r\n      &platform=${platform}&clientOsName=${operatingSystem}&area=${area}`,\r\n    method: ApiMethods.Get,\r\n    onStart: () => ({\r\n      type: `${StateKeys.Analytics}/${AnalyticsActionTypes.LoadMetricData}`,\r\n      appId: appDefinitionId\r\n    }),\r\n    onSuccess: (data: IMetricData) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Analytics}/${AnalyticsActionTypes.GetMetricData}`,\r\n        appId: appDefinitionId,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Analytics}/${AnalyticsActionTypes.GetMetricDataFailure}`,\r\n        appId: appDefinitionId\r\n      };\r\n    }\r\n  });\r\n","export interface IApiKeyClientRegistration {\r\n  id: string; // max 128 characters\r\n  description: string; // max 128 chars\r\n  targetUrlsShouldStartWith: string[]; // initially this will be max length 1\r\n  applicableToApps: ApiKeyTargetAppType;\r\n  specificAppId: string;\r\n  createdDateTime?: Date;\r\n  clientSecrets: IApiKeyClientSecret[];\r\n  targetAudience?: ApiSecretRegistrationAudienceType;\r\n}\r\n\r\nexport interface IApiKeyClientSecret {\r\n  id: string;\r\n  value: string; // max 128 characters, min 10\r\n  isValueRedacted?: boolean;\r\n  description?: string;\r\n  createdDateTime?: string;\r\n  priority?: number; // 0 for highest\r\n}\r\n\r\nexport enum ApiKeyTargetAppType {\r\n  SpecificApp = \"SpecificApp\",\r\n  AnyApps = \"AnyApp\"\r\n}\r\n\r\nexport enum ApiSecretRegistrationAudienceType {\r\n  HomeTenant = \"HomeTenant\",\r\n  AnyTenant = \"AnyTenant\"\r\n}\r\n\r\n// Currently we support 2 Keys but this is subject to change\r\nexport const maxSupportedKeys = 2;\r\n\r\nexport enum ApiMessagingExtensionAuthType {\r\n  NoAuth = \"none\",\r\n  ApiKey = \"apiSecretServiceAuth\",\r\n  Entra = \"microsoftEntra\",\r\n  OAuth = \"oAuth2.0\"\r\n}\r\n\r\nexport interface IApiMessagingExtensionAuthorization {\r\n  authType: ApiMessagingExtensionAuthType;\r\n  apiSecretServiceAuthConfiguration?: {\r\n    apiSecretRegistrationId: string;\r\n  };\r\n  oAuthConfiguration?: {\r\n    oAuthConfigurationId: string;\r\n  };\r\n}\r\n","import type { AxiosResponse } from \"axios\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { UILoadingActionTypes, uiLoadingSlice } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\n\r\nexport enum AppTypeActionsTypes {\r\n  GetAppPublishTypeSuccess = \"GetAppPublishTypeSuccess\",\r\n  GetAppPublishTypeFail = \"GetAppPublishTypeFail\",\r\n  Reset = \"Reset\"\r\n}\r\n\r\nexport const GetAppPublishType = (externalId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appStatusTracking/apps/${externalId}/cdnStatus`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppType}/${AppTypeActionsTypes.GetAppPublishTypeSuccess}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppTypeActionsTypes.GetAppPublishTypeFail, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppType}/${AppTypeActionsTypes.GetAppPublishTypeFail}`,\r\n        payload: error\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ResetAppPublishType = () =>\r\n({\r\n  type: `${StateKeys.AppType}/${AppTypeActionsTypes.Reset}`,\r\n});","export class RegionSettings {\r\n  public TeamsDevPortalRegionSetting: string | undefined;\r\n  public SettingsExpiry: number | undefined;\r\n\r\n  constructor(teamsDevPortalRegionSetting: string) {\r\n    this.TeamsDevPortalRegionSetting = teamsDevPortalRegionSetting;\r\n\r\n    // Adding two day in ticks.\r\n    this.SettingsExpiry = Date.now() + 86400000 * 2;\r\n  }\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { createAction } from \"@reduxjs/toolkit\";\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { IUserContext } from \"../../interfaces/IUserContext\";\r\nimport { Config, ServiceToken } from \"../../constants/Config\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport { Dispatch } from \"react\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IUserRegion } from \"../../interfaces/IUserRegion\";\r\nimport { setActionPayload } from \"../store/persistStore\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { RegionSettings } from \"../../objects/regionSettings\";\r\n\r\nexport enum UserContextActionTypes {\r\n  UpdateUserContext = \"UpdateUserContext\",\r\n  UserContextRegion = \"UserContext_Region\"\r\n}\r\n\r\nexport const UpdateUserContext = createAction<IUserContext>(\r\n  [StateKeys.UserContext, UserContextActionTypes.UpdateUserContext].join(\"/\")\r\n);\r\n\r\nexport const GetUserEndpoints = (dispatch: Dispatch<any>) =>\r\n  apiAction({\r\n    url: `${Config.authServiceBaseUri}/v1.0/users/region`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IUserRegion) => {\r\n      Logger.LogInfo(TelemetryEventName.GetRegionEndpointsSuccessfully, Strings.getRegionSuccess, data?.regionGtms?.teamsDevPortal);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      data?.regionGtms?.teamsDevPortal && setActionPayload(UserContextActionTypes.UserContextRegion, JSON.stringify(new RegionSettings(data?.regionGtms?.teamsDevPortal)));\r\n      return UpdateUserContext({\r\n        userRegion: data?.regionGtms?.teamsDevPortal\r\n      });\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.GetRegionEndpointsError, Strings.getRegionError);\r\n    },\r\n    serviceToken: ServiceToken.AuthSvc\r\n  });\r\n\r\nexport const GetUserRegionFromTDPService = (dispatch: Dispatch<any>) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/usersettings/region`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      let regions = JSON.parse(data) as IUserRegion;\r\n      Logger.LogInfo(TelemetryEventName.GetRegionEndpointsSuccessfully, Strings.getRegionSuccess, regions?.regionGtms?.teamsDevPortal);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      regions?.regionGtms?.teamsDevPortal && setActionPayload(UserContextActionTypes.UserContextRegion, JSON.stringify(new RegionSettings(regions?.regionGtms?.teamsDevPortal)));\r\n      return UpdateUserContext({\r\n        userRegion: regions?.regionGtms?.teamsDevPortal\r\n      });\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.GetRegionEndpointsError, Strings.getRegionError);\r\n    }\r\n  });\r\n","import JSZip from \"jszip\";\r\n\r\nexport default async function getFileBlobData(content: string) {\r\n  const zip = new JSZip();\r\n  await zip.loadAsync(content, { base64: true });\r\n  const blob = await zip.generateAsync({ type: \"blob\" });\r\n\r\n  return blob;\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport getFileBlobData from \"../../utils/getFileBlobData\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { NotificationType, GetErrorContext } from \"../../components/notifications/Notifications\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { IAppCatalogStatusCard, IAppDefinition } from \"../../interfaces\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\nimport { AppCatalogSubmitState } from \"./AppCatalogSubmitState\";\r\n\r\nexport enum AppCatalogActionTypes {\r\n  GetAppCatalogNameSuccess = \"AppCatalog_GetOrgName_Success\",\r\n  GetAppCatalogNameFailure = \"AppCatalog_GetOrgName_Failed\",\r\n  CheckIfAppAlreadyPublishedStart = \"AppCatalog_CheckIfAppAlreadyPublished_Start\",\r\n  CheckIfAppAlreadyPublishedSuccess = \"AppCatalog_CheckIfAppAlreadyPublished_Success\",\r\n  CheckIfAppAlreadyPublishedFailure = \"AppCatalog_CheckIfAppAlreadyPublished_Failed\",\r\n  UploadAppSuccess = \"AppCatalog_UploadApp_Success\",\r\n  UpdateAppSuccess = \"AppCatalog_UpdateApp_Success\",\r\n  UpdateAppFailure = \"AppCatalog_UpdateApp_Failed\",\r\n  GetAppByTeamsAppIdSuccess = \"AppCatalog_GetAppByTeamsAppId_Success\",\r\n  CancelRequestSuccess = \"AppCatalog_CancelRequest_Success\",\r\n  InstallAppInTeamsSuccess = \"AppCatalog_InstallAppInTeams_Success\",\r\n  InstallAppInTeamsFailure = \"AppCatalog_InstallAppInTeams_Failed\"\r\n}\r\nexport const GetAppCatalogName = () =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing/organization`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (data: { value: { displayName: string }[] }) => {\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.GetAppCatalogNameSuccess}`,\r\n          payload: { appCatalogName: data.value[0].displayName }\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {}\r\n  });\r\n\r\nexport const CheckIfAppAlreadyPublished = (teamsAppId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing/${teamsAppId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    // eslint-disable-next-line @typescript-eslint/ban-types\r\n    onSuccess: (data: { value: { appDefinitions: Partial<IAppCatalogStatusCard>[] }[] }) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.CheckIfAppAlreadyPublishedSuccess}`,\r\n          payload: data.value.length > 0 ? data.value[0].appDefinitions[0]?.publishingState : AppCatalogSubmitState.Unpublished\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n\r\nexport const GetAppDefinitionForUploadApp = (\r\n  app: IAppDefinition,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  conflictErrorMessage?: string\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/appdefinitions/${app.teamsAppId}/manifest`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      if (data) {\r\n        getFileBlobData(data).then((blob) => {\r\n          dispatch(UploadApp(blob, app, failureMessage, dispatch, conflictErrorMessage));\r\n        });\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n    }\r\n  });\r\n\r\nexport const UploadApp = (\r\n  blob: Blob,\r\n  app: IAppDefinition,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  conflictErrorMessage?: string\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing`,\r\n    method: ApiMethods.Post,\r\n    headers: {\r\n      \"Content-Type\": \"application/zip; charset=utf-8\"\r\n    },\r\n    data: blob,\r\n    onSuccess: (data: { error?: { code: string } }) => {\r\n      Logger.LogUserBi(TelemetryObjectId.LOBPublishNewRequest, { appId: app.appId });\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data.error?.code === \"Conflict\") {\r\n        return showNotification(true, conflictErrorMessage, NotificationType.Error);\r\n      } else if (data?.error) {\r\n        return showNotification(true, failureMessage, NotificationType.Error);\r\n      } else {\r\n        return {\r\n          type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.UpdateAppSuccess}`,\r\n          payload: {\r\n            submittedApp: app,\r\n            IsUploaded: !data.error,\r\n            IsUpdated: false\r\n          }\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n    }\r\n  });\r\n\r\nexport const GetAppDefinitionForUpdateApp = (\r\n  teamsAppId: string,\r\n  app: IAppDefinition,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/appdefinitions/${app.teamsAppId}/manifest`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      if (data) {\r\n        getFileBlobData(data).then((blob) => {\r\n          dispatch(UpdateApp(teamsAppId, app, blob, failureMessage, dispatch));\r\n        });\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n    }\r\n  });\r\n\r\nexport const UpdateApp = (teamsAppId: string, app: IAppDefinition, blob: Blob, failureMessage: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing/${teamsAppId}/appdefinitions`,\r\n    method: ApiMethods.Post,\r\n    headers: {\r\n      \"Content-Type\": \"application/zip; charset=utf-8\"\r\n    },\r\n    data: blob,\r\n    // eslint-disable-next-line @typescript-eslint/ban-types\r\n    onSuccess: (data?: Object) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.UpdateAppSuccess}`,\r\n          payload: {\r\n            pendingApprovalExists: true,\r\n            submittedApp: app,\r\n            resData: data,\r\n            IsUpdated: true\r\n          }\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n    }\r\n  });\r\n\r\nexport const GetAppByTeamsAppId = (appId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing/${appId}`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (data: { value?: { id: string; externalId: string; appDefinitions: IAppDefinition[] }[] }) => {\r\n      if (data) {\r\n        let payload = {\r\n          id: undefined as string | undefined,\r\n          externalId: appId,\r\n          appDefinitions: undefined as IAppDefinition[] | undefined,\r\n          IsCancelled: false\r\n        };\r\n\r\n        if (data.value && data.value.length > 0) {\r\n          payload = {\r\n            id: data.value[0].id,\r\n            externalId: data.value[0].externalId,\r\n            appDefinitions: data.value[0].appDefinitions.reverse(),\r\n            IsCancelled: false\r\n          };\r\n        }\r\n\r\n        return {\r\n          type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.GetAppByTeamsAppIdSuccess}`,\r\n          payload\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n\r\nexport const CancelRequest = (teamsAppId: string, appDefinitionId: string, failureMessage: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing/${teamsAppId}/appdefinitions/${appDefinitionId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.CancelRequestSuccess}`,\r\n        payload: { IsCancelled: true }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n    }\r\n  });\r\n\r\nexport const ValidateTeamsAppDefinitionBeforeInstall = (\r\n  teamsAppId: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch,\r\n  cb?: (teamsAppId: string) => void\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/appdefinitions/${teamsAppId}/appdefinition`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      if (data) {\r\n        cb && cb(teamsAppId);\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n    }\r\n  });\r\n\r\nexport const InstallAppInTeams = (\r\n  teamsAppId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  closeDialogCallback?: () => void\r\n) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/publishing/${teamsAppId}/install`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      closeDialogCallback && closeDialogCallback();\r\n      return {\r\n        type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.InstallAppInTeamsSuccess}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      closeDialogCallback && closeDialogCallback();\r\n      return {\r\n        type: `${StateKeys.AppCatalog}/${AppCatalogActionTypes.InstallAppInTeamsFailure}`\r\n      };\r\n    }\r\n  });\r\n","/* eslint max-lines: 0 */\r\n/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods, IApsAction } from \".\";\r\nimport { produce } from \"immer\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { AppListUserModes } from \"../../constants/Enums/AppList\";\r\nimport { appsKeys } from \"../../constants/Enums/AppsKeys\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport { UpdateTypes } from \"../../constants/Enums/UpdateTypes\";\r\nimport { UploadIconType } from \"../../constants/Enums/UploadIconType\";\r\nimport { SwitchAPIType } from \"../../constants/Enums/SwitchAPIType\";\r\nimport {\r\n  IAppDefinition,\r\n  IAppListViewModel,\r\n  IBot,\r\n  IConfigurableTab,\r\n  IConnector,\r\n  ILanguage,\r\n  ILocalizationInfo,\r\n  IMessagingExtension,\r\n  IUploadIcon\r\n} from \"../../interfaces\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { GetAppDefinitionsStates } from \"../../constants/Enums/GetAppDefinitionsStates\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { History } from \"history\";\r\nimport { UILoadingActionTypes, uiLoadingSlice } from \"../reducers/UILoadingReducers\";\r\nimport {\r\n  AppDefinitionActionTypes,\r\n  appsSlice,\r\n  IAppDefinitionItemErrors,\r\n  IAppDefinitionItemIssues\r\n} from \"../reducers/AppDefinitionReducers\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { HttpsResponseCode } from \"../../interfaces/HttpsResponseCode\";\r\nimport { IImportFromCatalogRequest } from \"../../interfaces/IImportFromCatalogRequest\";\r\nimport { ClearMessagingExtensionConfiguration, GetMessagingExtensionConfiguration } from \"./MessagingExtensionConfigurationActions\";\r\nimport { formatMessage } from \"../../utils/StringUtils\";\r\nimport { IntlShape } from \"react-intl\";\r\nimport { switchLoadingSlice, SwitchLoadingActionTypes } from \"../reducers/SwitchLoadingReducer\";\r\nimport { ClearExtensionAssets, CompleteUploadAndUpdate } from \"./ComposeExtensionAssetActions\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\n\r\nexport const GetMyAppDefinitions = (dispatch: AppDispatch, pageNumber = 1) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/my/?pageNumber=${pageNumber}`,\r\n    method: ApiMethods.Get,\r\n    onStart: () => {\r\n      if (pageNumber === 1) {\r\n        dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.BUSY));\r\n        return uiLoadingSlice.actions[UILoadingActionTypes.Start]();\r\n      }\r\n    },\r\n    onSuccess: (data: IAppDefinition[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinitions, Strings.getAppDefinitionsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetMyAppDefinitions}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppDefinitionActionTypes.GetMyAppDefinitions, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetMyAppDefinitionsCount = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/my/count`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: number) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinitions, Strings.getAppDefinitionsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetMyAppDefinitionsCount}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppDefinitionActionTypes.GetAllAppDefinitions, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAllAppDefinitions = (dispatch: AppDispatch, pageNumber?: number) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/all/?pageNumber=${pageNumber || 1}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinitions, Strings.getAppDefinitionsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetAllAppDefinitions}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppDefinitionActionTypes.GetAllAppDefinitions, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAllAppDefinitionsCount = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/all/count`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: number) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinitions, Strings.getAppDefinitionsSuccess);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetAllAppDefinitionsCount}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppDefinitionActionTypes.GetAllAppDefinitions, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetMyLegacyAppDefinitions = (dispatch: AppDispatch, pageNumber?: number) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/my/legacy?pageNumber=${pageNumber ?? 1}`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (data: IAppDefinition[]) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinitions, Strings.getAppDefinitionsSuccess);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetMyLegacyAppDefinitions}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(\r\n        showNotification(true, AppDefinitionActionTypes.GetMyLegacyAppDefinitions, NotificationType.Error, GetErrorContext(error))\r\n      );\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetMyLegacyAppDefinitionsCount = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/my/legacy/count`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (data: number) => {\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinitions, Strings.getAppDefinitionsSuccess);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetMyLegacyAppDefinitionsCount}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, AppDefinitionActionTypes.GetAllAppDefinitions, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionsError, Strings.getAppDefinitionsError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const GetAppDefinitionsState = (payload: GetAppDefinitionsStates) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetAppDefinitionsState}`,\r\n  payload\r\n});\r\n\r\nexport const GetAppDefinition = (\r\n  teamsAppId: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  successCb?: (appDefinition: IAppDefinition) => void,\r\n  failureCb?: () => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.GetAppDefinition, data.teamsAppId);\r\n      appsSlice.actions[UpdateTypes.Update](data);\r\n      successCb && successCb(data);\r\n\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      failureCb && failureCb();\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.GetAppDefinitionError, Strings.getAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    },\r\n    swrKey: `appdefinitions/${teamsAppId}`\r\n  });\r\n\r\nexport const LeaveAppDefinition = (\r\n  teamsAppId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  history?: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/owner/resign`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: boolean) => {\r\n      Logger.LogInfo(TelemetryEventName.LeaveAppDefinition, teamsAppId);\r\n      localStorage.removeItem(`${teamsAppId}_selectedEnv`);\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        if (history) {\r\n          history.push(\"/apps\");\r\n        }\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.LeaveAppDefinition}`,\r\n          payload: teamsAppId\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteAppDefinitionError, Strings.deleteAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteAppDefinition = (\r\n  teamsAppId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  history?: History\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: boolean) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteAppDefinition, teamsAppId);\r\n      localStorage.removeItem(`${teamsAppId}_selectedEnv`);\r\n      if (data) {\r\n        if (history) {\r\n          history.push(\"/apps\");\r\n        }\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.DeleteAppDefinition}`,\r\n          payload: teamsAppId\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteAppDefinitionError, Strings.deleteAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteAppLanguage = (\r\n  teamsAppId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  languageTag: string\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/languages/${languageTag}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteAppLanguage, teamsAppId);\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return dispatch(GetAppDefinition(teamsAppId, notificationFailureString, dispatch));\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteAppDefinitionError, Strings.deleteAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateAppIDWhenFirstCreate = (\r\n  data: IAppDefinition,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  history?: History,\r\n  type?: IApsAction\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${data.teamsAppId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.UpdateAppDefinition, data.teamsAppId);\r\n      if (data) {\r\n        history && history.push(`apps/${data.teamsAppId}`);\r\n\r\n        return {\r\n          type: type || `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, Strings.updateAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateAppDefinition = (\r\n  data: Partial<IAppDefinition>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  history?: History,\r\n  createCallback?: (appDefinition: IAppDefinition) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.AddAppDefinition, data.teamsAppId);\r\n      Logger.LogUserBi(TelemetryObjectId.CreateAppDefinition, { appId: data.teamsAppId });\r\n      // update appId with teamsAppId\r\n      data.appId = data.teamsAppId;\r\n      createCallback && createCallback(data);\r\n      return UpdateAppIDWhenFirstCreate(data, notificationSuccessString, notificationFailureString, dispatch, history);\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.AddAppDefinitionError, Strings.addAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DuplicateAppDefinition = (\r\n  duplicateAppId: string,\r\n  duplicateNotificationSuccessString: string,\r\n  duplicateNotificationFailString: string,\r\n  dispatch: AppDispatch,\r\n  updateName = \"\",\r\n  app?: IAppDefinition,\r\n  callback?: (app: IAppDefinition) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/duplicate${\r\n      app ? \"\" : `/${duplicateAppId}/${updateName}`\r\n    }`,\r\n    method: ApiMethods.Post,\r\n    data: app,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.AddAppDefinition, data.teamsAppId);\r\n      Logger.LogUserBi(TelemetryObjectId.DuplicateAppDefinition, { appId: data.teamsAppId });\r\n      dispatch(showNotification(true, duplicateNotificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      appsSlice.actions[UpdateTypes.Update](data);\r\n      dispatch({\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinition}`,\r\n        payload: data\r\n      });\r\n      callback && callback(data);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, duplicateNotificationFailString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.AddAppDefinitionError, Strings.addAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const updateAppOwnersDefinition = (\r\n  data: IAppDefinition,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (appDefinition: IAppDefinition) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/v2/${data.teamsAppId}/owner`,\r\n    method: ApiMethods.Post,\r\n    data: data.userList,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.UpdateAppDefinition, data.appId);\r\n      appsSlice.actions[UpdateTypes.Update](data);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, error.statusText);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const takeAppOwnership = (\r\n  manifestId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  history: History,\r\n  callback: (error: AxiosResponse, manifestId: string) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${manifestId}/takeownership`,\r\n    method: ApiMethods.Post,\r\n    onStart: () => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.BUSY));\r\n    },\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      Logger.LogInfo(TelemetryEventName.TakeAppOwnership, manifestId);\r\n      if (data) {\r\n        history && history.push(`apps/${data.teamsAppId}`);\r\n      }\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinition}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      Logger.LogError(TelemetryEventName.TakeAppOwnership, error.statusText);\r\n      callback && callback(error, manifestId);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UploadAppDefinitionFromZip = (\r\n  file: File,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (app: IAppDefinition) => void,\r\n  overwriteIfAppAlreadyExists = false\r\n) =>\r\n  apiAction({\r\n    url: `${\r\n      process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl\r\n    }/appdefinitions/v2/import?overwriteIfAppAlreadyExists=${overwriteIfAppAlreadyExists}`,\r\n    method: ApiMethods.Post,\r\n    headers: {\r\n      \"Content-Type\": \"application/zip\"\r\n    },\r\n    data: file,\r\n    onStart: () => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.BUSY));\r\n      return uiLoadingSlice.actions[UILoadingActionTypes.Start]();\r\n    },\r\n    onSuccess: (data: IAppDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.ImportAppDefinition, data.teamsAppId);\r\n      Logger.LogUserBi(TelemetryObjectId.ImportAppDefinition, { appId: data.teamsAppId });\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      callback && callback(data);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinition}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      const eventData = { message: error?.data?.message };\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.log(TelemetryEventName.UploadAppDefinitionError, eventData);\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (error?.status === 409) {\r\n        return SetAppDefinitionExist(error.data);\r\n      } else if (error?.status === 422 && error?.data?.indexOf(\"publishStatus:\") > 0) {\r\n        return SetImportUnprocessable(error?.data, file);\r\n      } else {\r\n        dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.ImportAppDefinitionFailure}`\r\n        };\r\n      }\r\n    }\r\n  });\r\n\r\nexport const SetAppDefinitionExist = (duplicateAppDefinition: IAppDefinition | null) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionExists}`,\r\n  payload: duplicateAppDefinition\r\n});\r\n\r\nexport const SetImportUnprocessable = (errorMessage?: string, file?: File) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionImportUnprocessable}`,\r\n  payload: {\r\n    errorMessage,\r\n    file\r\n  }\r\n});\r\n\r\nexport const SetAppFile = (file: File) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppFile}`,\r\n  payload: file\r\n});\r\n\r\nexport const DownloadAppDefinition = (\r\n  teamsAppId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  callback: (data: string) => void,\r\n  dispatch: AppDispatch,\r\n  appEnvironmentId?: string,\r\n  hideNotification?: boolean\r\n) =>\r\n  apiAction({\r\n    url: appEnvironmentId\r\n      ? `${\r\n          process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl\r\n        }/appdefinitions/${teamsAppId}/manifest/?appEnvironmentId=${appEnvironmentId}`\r\n      : `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/manifest`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      Logger.LogInfo(TelemetryEventName.DownloadAppDefinition, `${Strings.downloadText} ${teamsAppId}`);\r\n      Logger.LogUserBi(TelemetryObjectId.AppDistributeDownloadAppPackage, { appId: teamsAppId });\r\n      if (!hideNotification) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      }\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        callback(data);\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.DownloadAppDefinition}`\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      if (!hideNotification) {\r\n        dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      }\r\n      Logger.LogError(TelemetryEventName.DownloadAppDefinitionError, Strings.downloadAppDefinitionError);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateAppDefinition = (\r\n  nextAppDefinition: Partial<IAppDefinition>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  localeData?: string,\r\n  shouldProcessImage = false,\r\n  callback?: (app: IAppDefinition) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/v2/${nextAppDefinition.teamsAppId}/${\r\n      localeData ?? \"\"\r\n    }?shouldProcessImage=${shouldProcessImage}`,\r\n    method: ApiMethods.Post,\r\n    data: nextAppDefinition,\r\n    onStart: () => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.BUSY));\r\n      return uiLoadingSlice.actions[UILoadingActionTypes.Start]();\r\n    },\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      Logger.LogInfo(TelemetryEventName.UpdateAppDefinition, data.teamsAppId);\r\n      appsSlice.actions[UpdateTypes.Update](data);\r\n      if (data) {\r\n        callback && callback(data);\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, Strings.updateAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateInternalAppDefinition = (\r\n  data: IAppDefinition,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (failed: boolean) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/internal/${data.teamsAppId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IAppDefinition) => {\r\n      if (callback) {\r\n        callback(false);\r\n      }\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.UpdateAppDefinition, data.appId);\r\n      appsSlice.actions[UpdateTypes.Update](data);\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      if (callback) {\r\n        callback(true);\r\n      }\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, error.statusText);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const OverrideAppDefinition = (\r\n  data: IAppDefinition,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  callback?: (appDefinition: IAppDefinition) => void,\r\n  isFromSwitch?: boolean\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${data.teamsAppId}/override`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]);\r\n      if (isFromSwitch) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Start]());\r\n      }\r\n    },\r\n    onSuccess: (data: IAppDefinition) => {\r\n      dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      dispatch(ClearExtensionAssets());\r\n      dispatch(ClearMessagingExtensionConfiguration());\r\n      if (isFromSwitch) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Complete]());\r\n      }\r\n      Logger.LogInfo(TelemetryEventName.OverrideAppDefinition, data.teamsAppId);\r\n      appsSlice.actions[UpdateTypes.Update](data);\r\n      if (data) {\r\n        callback && callback(data);\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (isFromSwitch) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      Logger.LogError(TelemetryEventName.OverrideAppDefinitionError, Strings.updateAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ResetAppDefinitionState = () => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.ResetAppDefinitionState}`\r\n});\r\n\r\nexport const AddLanguages = (\r\n  data: ILanguage,\r\n  originalApp: IAppDefinition,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${originalApp.teamsAppId}/languages`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onSuccess: (data: ILanguage[]) => {\r\n      Logger.LogInfo(TelemetryEventName.UpdateLanguage, originalApp.teamsAppId);\r\n      const updatedlocalizationInfo: ILocalizationInfo = {\r\n        defaultLanguageTag: originalApp.localizationInfo?.defaultLanguageTag ?? \"en-us\",\r\n        languages: data\r\n      };\r\n      return UpdateAppDefinition(\r\n        { ...originalApp, localizationInfo: updatedlocalizationInfo },\r\n        notificationSuccessString,\r\n        notificationFailureString,\r\n        dispatch\r\n      );\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, Strings.updateAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateLanguage = (\r\n  data: ILanguage,\r\n  updateLanguageTag: string,\r\n  originalApp: IAppDefinition,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    data,\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${\r\n      originalApp.teamsAppId\r\n    }/languages/${updateLanguageTag}`,\r\n    method: ApiMethods.Post,\r\n    onSuccess: (app: IAppDefinition) => {\r\n      Logger.LogInfo(TelemetryEventName.UpdateLanguage, originalApp.appName || originalApp.shortName);\r\n\r\n      return UpdateAppDefinition(app, notificationSuccessString, notificationFailureString, dispatch);\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionError, Strings.updateAppDefinitionError);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateAppDefinitionSelectedEnvironment = (selectedEnvironment: { id: string; displayName: string }) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinitionSelectedEnvironment}`,\r\n  payload: selectedEnvironment\r\n});\r\n\r\nexport const UpdateAppEnvironmentMenuIndex = (index: number) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppEnvironmentMenuIndex}`,\r\n  payload: index\r\n});\r\n\r\nexport const resetAppDeletedFlag = (): IAction => ({\r\n  type: `${StateKeys.Apps}/${UpdateTypes.Reset}`,\r\n  payload: {\r\n    [appsKeys.AppDeleted]: false\r\n  }\r\n});\r\n\r\nexport const ResetPersonalTabAddedFlag = (): IAction => ({\r\n  type: `${StateKeys.Apps}/${UpdateTypes.ResetPersonalTabAddedFlag}`,\r\n  payload: {\r\n    [appsKeys.PersonalTabAdded]: false\r\n  }\r\n});\r\n\r\nexport const UploadAppIcons = (\r\n  AppDefinition: Partial<IAppDefinition>,\r\n  iconType: UploadIconType,\r\n  data: IUploadIcon,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${AppDefinition.teamsAppId}/image`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: string) => {\r\n      Logger.LogInfo(TelemetryEventName.UploadAppIcon, data);\r\n      if (iconType === UploadIconType.Sharepoint) {\r\n        if (AppDefinition.configurableTabs && AppDefinition.configurableTabs.length > 0) {\r\n          const nextAppDefinition = produce(AppDefinition, (draftAppDefinition) => {\r\n            draftAppDefinition.configurableTabs![0].sharePointPreviewImage = data;\r\n            return draftAppDefinition;\r\n          });\r\n          return UpdateGroupOrMeetingTab(\r\n            nextAppDefinition,\r\n            nextAppDefinition.configurableTabs![0],\r\n            notificationSuccessString,\r\n            notificationFailureString,\r\n            dispatch\r\n          );\r\n        }\r\n      } else {\r\n        return UpdateAppDefinition(\r\n          produce(AppDefinition, (draftAppDefinition) => {\r\n            switch (iconType) {\r\n              case UploadIconType.Color:\r\n                draftAppDefinition.colorIcon = data;\r\n                break;\r\n              case UploadIconType.Outline:\r\n                draftAppDefinition.outlineIcon = data;\r\n                break;\r\n            }\r\n            return draftAppDefinition;\r\n          }),\r\n          notificationSuccessString,\r\n          notificationFailureString,\r\n          dispatch\r\n        );\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.UploadAppDefinitionError, Strings.uploadAppDefinitionError);\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n\r\nexport const CreateAppDefinitionBot = (\r\n  teamsAppId: string,\r\n  data: Partial<IBot>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/bots`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBot) => {\r\n      Logger.LogInfo(TelemetryEventName.AddAppDefinitionBotSuccessfully, data.botId);\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinitionBot}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.AddAppDefinitionBotError, Strings.appDefinitionBotFailedToCreate);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateAppDefinitionBot = (\r\n  teamsAppId: string,\r\n  objectId: string,\r\n  data: Partial<IBot>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/v2/${teamsAppId}/bots/${objectId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBot) => {\r\n      Logger.LogInfo(TelemetryEventName.UpdateAppDefinitionBotSuccessfully, data.botId);\r\n      if (data) {\r\n        appsSlice.actions[UpdateTypes.Update](data);\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionBotError, Strings.appDefinitionBotFailedToUpdate);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteAppDefinitionBot = (\r\n  teamsAppId: string,\r\n  objectId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/v2/${teamsAppId}/bots/${objectId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBot) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteAppDefinitionBotSuccessfully, data.botId);\r\n      if (data) {\r\n        appsSlice.actions[UpdateTypes.Update](data);\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteAppDefinitionBotError, Strings.appBotFailedToReset);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\n// app definition messaging extension\r\nexport const CreateAppDefinitionMessagingExtension = (\r\n  teamsAppId: string,\r\n  data: Partial<IBot | IMessagingExtension>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  isFromUploadAssets?: boolean,\r\n  isFromSwitchMessagingExtension?: boolean\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/composeextensions`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n    },\r\n    onSuccess: (data: IBot | IMessagingExtension) => {\r\n      if (data.botId) {\r\n        Logger.LogInfo(TelemetryEventName.AddAppDefinitionMessagingExtensionSuccessfully, data.botId);\r\n      } else {\r\n        Logger.LogInfo(\r\n          TelemetryEventName.AddAppDefinitionMessagingExtensionSuccessfully,\r\n          (data as IMessagingExtension).messagingExtensionServiceType\r\n        );\r\n      }\r\n\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n\r\n        dispatch({\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinitionMessagingExtension}`,\r\n          payload: data\r\n        });\r\n\r\n        if (isFromUploadAssets) {\r\n          dispatch(CompleteUploadAndUpdate());\r\n        }\r\n\r\n        if (isFromSwitchMessagingExtension) {\r\n          dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Complete]());\r\n        }\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.AddAppDefinitionMessagingExtensionError, Strings.appDefinitionBotFailedToCreate);\r\n      if (isFromUploadAssets) {\r\n        dispatch(CompleteUploadAndUpdate());\r\n      }\r\n      if (isFromSwitchMessagingExtension) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const UpdateAppDefinitionMessagingExtension = (\r\n  teamsAppId: string,\r\n  objectId: string,\r\n  data: Partial<IBot | IMessagingExtension>,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch,\r\n  followUpAPI?: SwitchAPIType,\r\n  intl?: IntlShape,\r\n  isFromUploadAssets?: boolean\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/composeextensions/${objectId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Start]());\r\n      }\r\n    },\r\n    onSuccess: (data: IBot | IMessagingExtension) => {\r\n      if (data.botId) {\r\n        Logger.LogInfo(TelemetryEventName.UpdateAppDefinitionMessagingExtensionSuccessfully, data.botId);\r\n      } else {\r\n        Logger.LogInfo(\r\n          TelemetryEventName.AddAppDefinitionMessagingExtensionSuccessfully,\r\n          (data as IMessagingExtension).messagingExtensionServiceType\r\n        );\r\n      }\r\n\r\n      if (\r\n        (followUpAPI === SwitchAPIType.UpdateMessagingExtensionAndGetConfigAndAsset ||\r\n          followUpAPI === SwitchAPIType.UploadComposeExtensionAssetAndGetConfig) &&\r\n        intl\r\n      ) {\r\n        dispatch(\r\n          GetMessagingExtensionConfiguration(\r\n            teamsAppId,\r\n            objectId,\r\n            formatMessage(intl, \"getMessagingExtensionConfigurationSuccessfully\"),\r\n            formatMessage(intl, \"getMessagingExtensionConfigurationFailed\"),\r\n            dispatch,\r\n            followUpAPI,\r\n            intl\r\n          )\r\n        );\r\n      }\r\n\r\n      if (data) {\r\n        dispatch(appsSlice.actions[UpdateTypes.Update](data));\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n\r\n        dispatch({\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: data\r\n        });\r\n\r\n        if (isFromUploadAssets) {\r\n          dispatch(CompleteUploadAndUpdate());\r\n        }\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      if (isFromUploadAssets) {\r\n        dispatch(CompleteUploadAndUpdate());\r\n      }\r\n      Logger.LogError(TelemetryEventName.UpdateAppDefinitionMessagingExtensionError, Strings.messagingExtensionFailedToUpdate);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const DeleteAppDefinitionMessagingExtension = (\r\n  teamsAppId: string,\r\n  objectId: string,\r\n  notificationSuccessString: string,\r\n  notificationFailureString: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/composeextensions/${objectId}`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: IBot) => {\r\n      Logger.LogInfo(TelemetryEventName.DeleteAppDefinitionMessagingExtensionSuccessfully, data.botId);\r\n      if (data) {\r\n        dispatch(showNotification(true, notificationSuccessString, NotificationType.Success));\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: data\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, notificationFailureString, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteAppDefinitionMessagingExtensionError, Strings.messagingExtensionFailedToDelete);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\n// Configurable Tabs\r\n\r\nexport const CreateGroupOrMeetingTab = (\r\n  teamsApp: IAppDefinition,\r\n  data: IConfigurableTab,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsApp.teamsAppId}/configurabletabs`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onSuccess: (groupTab: IConfigurableTab[]) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateGroupOrMeetingTab}`,\r\n        payload: groupTab\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.CreateGroupOrMeetingTabError, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const UpdateGroupOrMeetingTab = (\r\n  teamsApp: Partial<IAppDefinition>,\r\n  data: IConfigurableTab,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsApp.teamsAppId}/configurabletabs/${\r\n      data.objectId\r\n    }`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (groupTab: IConfigurableTab[]) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateGroupOrMeetingTab}`,\r\n        payload: groupTab\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateGroupOrMeetingTabError, error.statusText);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n\r\nexport const DeleteGroupOrMeetingTab = (\r\n  teamsApp: IAppDefinition,\r\n  data: IConfigurableTab,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsApp.teamsAppId}/configurabletabs/${\r\n      data.objectId\r\n    }`,\r\n    method: ApiMethods.Delete,\r\n    data,\r\n    onSuccess: (deleted: boolean) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.DeleteGroupOrMeetingTab}`,\r\n        payload: deleted\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteGroupOrMeetingTabError, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const CreateConnector = (\r\n  teamsApp: IAppDefinition,\r\n  data: IConnector,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsApp.teamsAppId}/connectors`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onSuccess: (connectors: IConnector[]) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateConnector}`,\r\n        payload: connectors\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.CreateConnectorError, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const DeleteConnector = (\r\n  teamsAppId: string,\r\n  connectorId: string,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/connectors/${connectorId}`,\r\n    method: ApiMethods.Delete,\r\n    onSuccess: (app: IAppDefinition) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.DeleteConnector}`,\r\n        payload: app\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.DeleteConnector, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const UpdateConnector = (\r\n  teamsAppId: string,\r\n  data: IConnector,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/connectors/${data.objectId}`,\r\n    method: ApiMethods.Post,\r\n    data,\r\n    onSuccess: (app: IAppDefinition) => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateConnector}`,\r\n        payload: app\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      Logger.LogError(TelemetryEventName.UpdateConnector, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const GetAppDefinitionItem = (appDefinitionId: string, cb?: (error?: string) => void) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${appDefinitionId}/appDefinitionItem`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (app: IAppDefinition) => {\r\n      // dispatch(showNotification(true, successMessage, MessageBarType.success));\r\n      cb && cb();\r\n      return appsSlice.actions[AppDefinitionActionTypes.GetAppDefinitionItem](app);\r\n    },\r\n    onFailure: (error?: { data: string }) => {\r\n      cb && cb(error?.data);\r\n      // dispatch(showNotification(true, failureMessage, MessageBarType.error));\r\n      Logger.LogError(TelemetryEventName.UpdateConnector, error?.data);\r\n    }\r\n  });\r\n\r\nexport const UpdateAppDefinitionItem = (\r\n  teamsAppId: string,\r\n  appDefinition: Partial<IAppDefinition>,\r\n  successMessage: string,\r\n  dispatch: AppDispatch,\r\n  cb?: (error?: true) => void\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/appDefinitionItem`,\r\n    method: ApiMethods.Put,\r\n    data: appDefinition,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (result: number) => {\r\n      if (result === HttpsResponseCode.NoContent) {\r\n        dispatch(GetAppDefinition(teamsAppId, \"\", dispatch));\r\n        dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n        cb && cb();\r\n        dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n        return appsSlice.actions[AppDefinitionActionTypes.GetAppDefinitionItem](appDefinition);\r\n      }\r\n    },\r\n    onFailure: (error?: { data: string | IAppDefinitionItemIssues | IAppDefinitionItemErrors }) => {\r\n      cb && cb(true);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (Array.isArray(error?.data)) {\r\n        const issues = (error!.data as IAppDefinitionItemErrors).reduce((accumulator: Record<string, string[]>, error) => {\r\n          accumulator[error.path] = [error.message];\r\n          return accumulator;\r\n        }, {});\r\n        return appsSlice.actions[AppDefinitionActionTypes.AppDefinitionItemHasIssues](issues);\r\n      } else if (error?.data?.hasOwnProperty(\"errors\")) {\r\n        const issues = (error.data as IAppDefinitionItemIssues).errors;\r\n        return appsSlice.actions[AppDefinitionActionTypes.AppDefinitionItemHasIssues](issues);\r\n      } else {\r\n        Logger.LogError(TelemetryEventName.UpdateConnector, error!.data as string);\r\n      }\r\n    }\r\n  });\r\n\r\nexport const GetAppDefinitionSchema = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/appDefinitionItemSchema`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (schema: string) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return appsSlice.actions[AppDefinitionActionTypes.GetAppDefinitionSchema](schema);\r\n    },\r\n    onFailure: (error?: { data: string }) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateConnector, error?.data);\r\n    }\r\n  });\r\n\r\nexport const UpdateAppListUserMode = (mode: AppListUserModes) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionUserModeUpdate}`,\r\n  payload: mode\r\n});\r\n\r\nexport const UpdateAppListViewModel = (payload: Partial<IAppListViewModel>, userMode: AppListUserModes) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionViewModelUpdate}`,\r\n  userMode,\r\n  payload\r\n});\r\n\r\nexport const SearchAppsList = (search: string, userMode: AppListUserModes, dispatch: AppDispatch) => {\r\n  const isAdmin: boolean = userMode === AppListUserModes.Admin;\r\n  const url = `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${isAdmin ? \"all\" : \"my\"}/search?q=${search}`;\r\n\r\n  return apiAction({\r\n    url,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (results: IAppDefinition[]) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionViewModelUpdate}`,\r\n        userMode,\r\n        payload: {\r\n          searching: true,\r\n          filter: \"\",\r\n          filtering: false,\r\n          searchResults: results\r\n        }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.SearchAppDefinitionError, error.statusText);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n};\r\n\r\nexport const SearchMyAppsWithCallback = (search: string, callback: (appDefinitions: IAppDefinition[]) => void) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/my/search?q=${search}`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (results: IAppDefinition[]) => {\r\n      callback(results);\r\n    }\r\n  });\r\n\r\nexport const GetLatestPublicManifestVersion = () =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/latestPublicManifestSchemaVersion`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (result: string) => ({\r\n      type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetLatestPublicManifestVersion}`,\r\n      payload: result\r\n    }),\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.GetLatestPublicManifestVersion, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const UpgradeToLatestPublicManifestVersion = (\r\n  teamsAppId: string,\r\n  successMessage: string,\r\n  failureMessage: string,\r\n  dispatch: AppDispatch\r\n) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${teamsAppId}/upgradeToLatestManifestSchemaVersion`,\r\n    method: ApiMethods.Post,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: () => {\r\n      dispatch(showNotification(true, successMessage, NotificationType.Success));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return { type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpgradeToLatestPublicManifestVersion}` };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, failureMessage, NotificationType.Error, GetErrorContext(error)));\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpgradeToLatestPublicManifestVersion, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const PageAppsList = (page: number, userMode: AppListUserModes, dispatch: AppDispatch) => {\r\n  const isAdmin: boolean = userMode === AppListUserModes.Admin;\r\n  const url = `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/appdefinitions/${isAdmin ? \"all\" : \"my\"}/?pageNumber=${page}`;\r\n  return apiAction({\r\n    url,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (results: IAppDefinition[]) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionPageAppsList}`,\r\n        userMode,\r\n        payload: {\r\n          page,\r\n          results\r\n        }\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      Logger.LogError(TelemetryEventName.SearchAppDefinitionError, error.statusText);\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n    }\r\n  });\r\n};\r\n\r\nexport const GetOwnerCandidates = (query: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/users/${query}/10`,\r\n    method: ApiMethods.Get,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    // eslint-disable-next-line @typescript-eslint/ban-types\r\n    onSuccess: (data: { value: Object[] }) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.GetAppDefinitionsOwnerCandidates}`,\r\n        payload: data.value\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.UpdateConnector, error.statusText);\r\n    }\r\n  });\r\n\r\nexport const ImportAppFromCatalog = (\r\n  data: IImportFromCatalogRequest,\r\n  dispatch: AppDispatch,\r\n  successCb?: (appStoageId: string) => void,\r\n  overwriteIfAppExistsInDeveloperPortal = false\r\n) =>\r\n  apiAction({\r\n    url: `${\r\n      process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl\r\n    }/appdefinitions/importAppDefinitionItemFromCatalog?overwriteIfAppExistsInDeveloperPortal=${overwriteIfAppExistsInDeveloperPortal}`,\r\n    data,\r\n    method: ApiMethods.Post,\r\n    onStart: () => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.BUSY));\r\n    },\r\n    onSuccess: (result: IAppDefinition) => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      successCb && successCb(result.teamsAppId!);\r\n      if (overwriteIfAppExistsInDeveloperPortal) {\r\n        return {\r\n          type: `${StateKeys.Apps}/${AppDefinitionActionTypes.UpdateAppDefinition}`,\r\n          payload: result\r\n        };\r\n      }\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.CreateAppDefinition}`,\r\n        payload: result\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(GetAppDefinitionsState(GetAppDefinitionsStates.FREE));\r\n      Logger.LogError(TelemetryEventName.UpdateConnector, error.statusText);\r\n      return {\r\n        type: `${StateKeys.Apps}/${AppDefinitionActionTypes.ImportFromCatalogFailure}`,\r\n        payload: { appId: data.appId, status: error.status, errorMessage: error.data, ring: data.ring }\r\n      };\r\n    }\r\n  });\r\n\r\nexport const ClearImportFromCatalogError = () => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.ImportFromCatalogFailure}`,\r\n  payload: {}\r\n});\r\n\r\nexport const ClearOwnerCandidates = () => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.ClearAppDefinitionsOwnerCandidates}`\r\n});\r\n\r\nexport const UpgradeLegacyApp = (app: IAppDefinition) => ({\r\n  type: `${StateKeys.Apps}/${AppDefinitionActionTypes.AppDefinitionUpgradeLegacyApp}`,\r\n  payload: app\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum QueryStringKeys {\r\n  EnableOneDsTelemetry = \"enableTelemetry\",\r\n  EnableConsoleLogging = \"enableLocalLogging\",\r\n  LoginHint = \"login_hint\",\r\n  Referrer = \"referrer\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Strings from \"../locale/strings.json\";\r\nimport { ErrorCode, showError } from \"./ErrorPageActions\";\r\nimport { setActionPayload } from \"../store/persistStore\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport type { AxiosResponse } from \"axios\";\r\n\r\nexport enum HeaderActionTypes {\r\n  GetShellInfo = \"Header_GetShellInfo\"\r\n}\r\n\r\nexport const GetShellInfo = (dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${Config.apiUrl}/topnavbar/culturename/en-us/currentmainlinkid/TeamsAppStudio`,\r\n    method: ApiMethods.Get,\r\n    onSuccess: (data: { NavBarDataJson: string }) => {\r\n      setActionPayload(HeaderActionTypes.GetShellInfo, data.NavBarDataJson);\r\n      return {\r\n        type: `${StateKeys.Header}/${HeaderActionTypes.GetShellInfo}`,\r\n        payload: JSON.parse(data.NavBarDataJson)\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showError(error?.status as ErrorCode, HeaderActionTypes.GetShellInfo));\r\n      Logger.LogError(TelemetryEventName.GetHeaderShellInfoError, Strings.GetHeaderShellInfoError);\r\n    }\r\n  });\r\n","import { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\n\r\nexport enum NetworkActionTypes {\r\n  Start = \"Network_Start\",\r\n  Success = \"Network_Success\",\r\n  Error = \"Network_Error\"\r\n}\r\n\r\nexport enum NetworkActionStatus {\r\n  Processing = \"processing\",\r\n  Successful = \"complete\",\r\n  Error = \"error\"\r\n}\r\n\r\nexport const onNetworkStart = (): IAction => ({\r\n  [StateKeys.StateKey]: StateKeys.Network,\r\n  type: `${StateKeys.Network}/${NetworkActionTypes.Start}`,\r\n  payload: {\r\n    status: NetworkActionStatus.Processing\r\n  }\r\n});\r\n\r\nexport const onNetworkError = (error: Error): IAction => ({\r\n  [StateKeys.StateKey]: StateKeys.Network,\r\n  type: `${StateKeys.Network}/${NetworkActionTypes.Error}`,\r\n  payload: {\r\n    Status: NetworkActionStatus.Error,\r\n    error\r\n  }\r\n});\r\n\r\nexport const onNetworkSuccess = (): IAction => ({\r\n  [StateKeys.StateKey]: StateKeys.Network,\r\n  type: `${StateKeys.Network}/${NetworkActionTypes.Success}`,\r\n  payload: {\r\n    status: NetworkActionStatus.Successful,\r\n    error: \"\"\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nconst makeDocsLink = (resource: string): string => {\r\n  const url = new URL(`https://docs.microsoft.com/${resource}`);\r\n  url.searchParams.set(\"referrer\", \"developerportal\");\r\n  return url.toString();\r\n};\r\n\r\nexport const Links = {\r\n  AppDetails: makeDocsLink(\"microsoftteams/platform/concepts/apps/apps-overview\"),\r\n  PersonalTabs: makeDocsLink(\"microsoftteams/platform/tabs/what-are-tabs\"),\r\n  M365Apps: makeDocsLink(\"microsoft-365-copilot/extensibility/overview-declarative-agent\"),\r\n  GroupChannelApp: makeDocsLink(\"microsoftteams/platform/tabs/how-to/create-channel-group-tab\"),\r\n  MeetingExtension: makeDocsLink(\"microsoftteams/platform/apps-in-teams-meetings/teams-apps-in-meetings\"),\r\n  BasicInfo: makeDocsLink(\"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/detail-page-checklist\"),\r\n  ManifestSchema: makeDocsLink(\"microsoftteams/platform/resources/schema/manifest-schema\"),\r\n  Tabs: makeDocsLink(\"microsoftteams/platform/concepts/tabs/tabs-overview\"),\r\n  Bot: makeDocsLink(\"microsoftteams/platform/concepts/bots/bots-overview\"),\r\n  BotDescription: makeDocsLink(\"microsoftteams/platform/bots/what-are-bots\"),\r\n  Connector: makeDocsLink(\"microsoftteams/platform/concepts/connectors/connectors\"),\r\n  Activity: makeDocsLink(\"graph/teams-send-activityfeednotifications\"),\r\n  MessagingExtension: makeDocsLink(\"microsoftteams/platform/concepts/messaging-extensions\"),\r\n  MessagingExtensionDesc: makeDocsLink(\"microsoftteams/platform/messaging-extensions/what-are-messaging-extensions\"),\r\n  MessagingExtensionCmdDesc: makeDocsLink(\"microsoftteams/platform/resources/schema/manifest-schema#composeextensionscommands\"),\r\n  DevicePermission: makeDocsLink(\"microsoftteams/platform/concepts/device-capabilities/device-capabilities-overview\"),\r\n  TeamPermission: makeDocsLink(\"microsoftteams/platform/graph-api/rsc/resource-specific-consent#rsc-permissions-for-a-team\"),\r\n  ChatAndMeetingPermission: makeDocsLink(\r\n    \"microsoftteams/platform/graph-api/rsc/resource-specific-consent#rsc-permissions-for-a-chat-or-meeting\"\r\n  ),\r\n  UserPermission: makeDocsLink(\"microsoftteams/platform/graph-api/rsc/resource-specific-consent#rsc-permissions-for-user-access\"),\r\n  AppCustomization: makeDocsLink(\"microsoftteams/platform/concepts/design/enable-app-customization\"),\r\n  PublishToOrg: makeDocsLink(\"microsoftteams/manage-apps\"),\r\n  TestAndSubmit: makeDocsLink(\"microsoftteams/platform/publishing/apps-publish\"),\r\n  AdditionalLanguages: makeDocsLink(\"microsoftteams/platform/publishing/apps-localization\"),\r\n  LocalizationJSONSchamaReference: makeDocsLink(\"microsoftteams/platform/resources/schema/localization-schema\"),\r\n  BotFrameworkSettings: \"https://dev.botframework.com/bots/settings?id={botId}\",\r\n  BotFrameworkKnownIssues: makeDocsLink(\"microsoftteams/platform/bots/bot-features?tabs=dotnet#limitations-and-known-issues\"),\r\n  ConnectorDashboard: \"https://aka.ms/appstudionewconnector\",\r\n  ValidDomainDocumentation: makeDocsLink(\"microsoftteams/platform/resources/schema/manifest-schema#validdomains\"),\r\n  AadAppReg: \"https://aka.ms/appstudioaadapp\",\r\n  PartnerLearnMore: \"https://aka.ms/partner-center\",\r\n  PartnerLearnMoreOverview: makeDocsLink(\"partner-center/mpn-overview\"),\r\n  WebApplicationInfo: \"https://aka.ms/appstudioaadapp\", // TODO: need correct link\r\n  SharePointTab: \"https://aka.ms/appstudioaddapp\",\r\n  SSO: makeDocsLink(\"microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso\"),\r\n  LoadingIndicatorDoc: makeDocsLink(\r\n    \"microsoftteams/platform/tabs/how-to/create-tab-pages/content-page#show-a-native-loading-indicator\"\r\n  ),\r\n  smeAuth: makeDocsLink(\r\n    \"microsoftteams/platform/messaging-extensions/build-api-based-message-extension?tabs=token-v2#authentication\"\r\n  ),\r\n  apiKeyRegistrationDocs: makeDocsLink(\r\n    \"microsoftteams/platform/messaging-extensions/build-api-based-message-extension?tabs=api-service-auth#register-an-api-key\"\r\n  ),\r\n  oAuthConfigurationDocs: \"https://aka.ms/api-me-oauth-configuration\",\r\n  entraConfigurationDocs: \"https://aka.ms/api-me-oauth-configuration\",\r\n  oAuthConfigurationIdDocs: \"https://aka.ms/api-me-oauth-configuration-id\",\r\n  oAuthConfigurationRestrictByTenantDocs: \"https://aka.ms/oauth-configuration-restricted-by-org\",\r\n  oAuthConfigurationRestrictByAppIdDocs: \"https://aka.ms/oauth-configuration-restricted-by-app\",\r\n  oAuthAuthorizationServerSettingsDocs: \"https://aka.ms/oauth-authorization-server-settings\",\r\n  AzurePortalAppDetails: \"https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/Overview/appId/#id\",\r\n  CapabilityDocs: makeDocsLink(\"microsoftteams/platform/concepts/capabilities-overview\"),\r\n  EnableCustomApps: \"https://aka.ms/VSTeamsExtensionEnableCustomApps\",\r\n  BrandDetails: makeDocsLink(\"microsoftteams/platform/concepts/build-and-test/apps-package#app-icons\"),\r\n  AppSubmitGuidlines: makeDocsLink(\"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/frequently-failed-cases\"),\r\n  AppAttestation: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#microsoft-365-app-compliance-program\"\r\n  ),\r\n  AppAuth: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#authenticating-with-external-services\"\r\n  ),\r\n  AppTesting: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist#compile-testing-instructions\"\r\n  ),\r\n  AppBasicInfo: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist#create-your-store-listing-details\"\r\n  ),\r\n  AppDomain: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#external-domains\"\r\n  ),\r\n  BotDefaultMessages: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#bots-1\"\r\n  ),\r\n  TabPinningInfo: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines#tabs\"\r\n  ),\r\n  PartnerCenter: \"https://aka.ms/PartnerCenterHomePage\",\r\n  CommercialMarketplace: \"https://aka.ms/partnerCenterOffer\",\r\n  HowToCreateOffer: makeDocsLink(\"azure/marketplace/create-new-saas-offer\"),\r\n  HowToCreateSaaSOfferPlans: makeDocsLink(\"azure/marketplace/create-new-saas-offer-plans\"),\r\n  HowToTestPreviewOffer: makeDocsLink(\"azure/marketplace/test-publish-saas-offer?tabs=workspaces-view\"),\r\n  PublisherID: \"https://aka.ms/PublisherID\",\r\n  OfferID: \"https://aka.ms/partnerCenterOffer\",\r\n  AzureAppRegistrations: \"https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps\",\r\n  AzureAppOverview: \"https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/Overview/appId/{appId}\",\r\n  AzureSupportedAccounts:\r\n    \"https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/Authentication/appId/applicationId\",\r\n  AzureAppUri: \"https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/ProtectAnAPI/appId/applicationId\",\r\n  AzureServicePrincipal:\r\n    \"https://portal.azure.com/#blade/Microsoft_AAD_IAM/ManagedAppMenuBlade/Overview/objectId/objId/appId/applicationId\",\r\n  AppSubmissionTips: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines\"\r\n  ),\r\n  DevicePermissionDoc: makeDocsLink(\"microsoftteams/platform/concepts/device-capabilities/native-device-permissions?tabs=desktop\"),\r\n  GroupAndChannelAppDoc: makeDocsLink(\"microsoftteams/platform/tabs/design/tabs\"),\r\n  AddMSTeamsTabInSharePoint: makeDocsLink(\"microsoftteams/platform/tabs/how-to/tabs-in-sharepoint\"),\r\n  BuildMSTeamsTabWithSharePoint: makeDocsLink(\"sharepoint/dev/spfx/web-parts/get-started/using-web-part-as-ms-teams-tab\"),\r\n  PersonalApp: makeDocsLink(\"microsoftteams/platform/tabs/how-to/create-personal-tab\"),\r\n  MeetingsApp: makeDocsLink(\"microsoftteams/platform/apps-in-teams-meetings/teams-apps-in-meetings\"),\r\n  Privacy: \"https://go.microsoft.com/fwlink/?LinkId=521839\",\r\n  TermsOfUse: \"https://aka.ms/st1pbotttermsofservice\",\r\n  Help: makeDocsLink(\"microsoftteams/platform/mstdd-landing\"),\r\n  Gcc: makeDocsLink(\"office365/servicedescriptions/office-365-platform-service-description/office-365-us-government/gcc\"),\r\n  GccHighDod: makeDocsLink(\r\n    \"office365/servicedescriptions/office-365-platform-service-description/office-365-us-government/gcc-high-and-dod\"\r\n  ),\r\n  AppValidationV2: makeDocsLink(\"microsoftteams/platform/concepts/build-and-test/manage-your-apps-in-developer-portal#publish\"),\r\n  InstallVSTeamsToolkit: \"https://aka.ms/install-teams-toolkit-vs\",\r\n  InstallVSCodeTeamsToolkit: \"https://aka.ms/install-teams-toolkit-vsc\",\r\n  AppIngestionWiki: \"https://aka.ms/teamsAppIngestion\",\r\n  TeamsToolkitFundamentals: \"https://aka.ms/teamsfx-overview\",\r\n  ItalianAccessibilityDeclaration: \"https://www.microsoft.com/it-it/accessibility/declarations\",\r\n  BuildCopilotPlugin: \"https://aka.ms/teamsfx-copilot-plugin\",\r\n  OpenApiSpec: \"https://aka.ms/openapi-spec\",\r\n  AnalyticsV2: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/build-and-test/analyze-your-apps-usage-in-developer-portal?tabs=thirdpartyapps\"\r\n  ),\r\n  AnalyticsV2AdminPermissions: makeDocsLink(\r\n    \"microsoftteams/platform/concepts/build-and-test/analyze-your-apps-usage-in-developer-portal?tabs=custom-apps-built-for-your-org\"\r\n  ),\r\n  CopilotDeclarativeAgents: makeDocsLink(\"microsoft-365-copilot/extensibility/overview-declarative-agent\"),\r\n  CopilotCustomEngine: makeDocsLink(\"microsoft-365-copilot/extensibility/overview-custom-engine-agent\"),\r\n  CopilotStudio: \"https://copilotstudio.microsoft.com/\"\r\n};\r\n\r\nexport const ImageSize = 1024 * 80;\r\n\r\nexport const IconAssets = {\r\n  colorIcon: `${process.env.PUBLIC_URL}/images/default-app-icons/color_192x192.png`,\r\n  EditIcon: `${process.env.PUBLIC_URL}/images/default-app-icons/color_192x192.png`,\r\n  outlineIcon: `${process.env.PUBLIC_URL}/images/default-app-icons/outline_32x32.png`,\r\n  sampleIcon: `${process.env.PUBLIC_URL}/app-studio-favicon.ico`,\r\n  addFlight: `${process.env.PUBLIC_URL}/images/addFlight.png`,\r\n  removeFlight: `${process.env.PUBLIC_URL}/images/removeFlight.png`,\r\n  globe: `${process.env.PUBLIC_URL}/images/globe.png`,\r\n  internalRing: `${process.env.PUBLIC_URL}/images/internalRing.png`,\r\n  success: `${process.env.PUBLIC_URL}/images/success.png`,\r\n  warning: `${process.env.PUBLIC_URL}/images/warning.png`,\r\n  emptyState: `${process.env.PUBLIC_URL}/images/emptyState.png`,\r\n  contoso: `${process.env.PUBLIC_URL}/images/contoso.png`,\r\n  listView: `${process.env.PUBLIC_URL}/images/icons/listView.svg`,\r\n  error: `${process.env.PUBLIC_URL}/images/error.svg`,\r\n  publishOrg: `${process.env.PUBLIC_URL}/images/publish-org.png`,\r\n  distributeFlightApp: `${process.env.PUBLIC_URL}/images/distribute-flight-app.png`\r\n};\r\n\r\nexport const defaultAssets = {\r\n  notFound: `${process.env.PUBLIC_URL}/images/not-found-image.png`,\r\n  fileWithLock: `${process.env.PUBLIC_URL}/images/file-with-lock-image.png`,\r\n  personWithLock: `${process.env.PUBLIC_URL}/images/person-with-lock-image.png`,\r\n  personWithShield: `${process.env.PUBLIC_URL}/images/person-with-shield.png`\r\n};\r\n\r\nexport const HomeAssets = {\r\n  hero: `${process.env.PUBLIC_URL}/images/home-page/home-hero.jpg`,\r\n  featured: `${process.env.PUBLIC_URL}/images/home-page/featured-stub.jpg`\r\n};\r\n\r\nexport const NewHomeAssets = {\r\n  hero: `${process.env.PUBLIC_URL}/images/home-page/new-home-page.jpg`,\r\n  heroDark: `${process.env.PUBLIC_URL}/images/home-page/new-home-page-dark.jpg`,\r\n  featured: `${process.env.PUBLIC_URL}/images/home-page/featured-stub.jpg`,\r\n  adaptiveCard: `${process.env.PUBLIC_URL}/images/home-page/adaptive-card.png`,\r\n  importApp: `${process.env.PUBLIC_URL}/images/home-page/import-app.png`,\r\n  createApp: `${process.env.PUBLIC_URL}/images/home-page/create-new-app.png`,\r\n  copilot: `${process.env.PUBLIC_URL}/images/home-page/copilot-icon.png`,\r\n  copilotStudio: `${process.env.PUBLIC_URL}/images/home-page/copilot-studio.png`,\r\n  vsCode: `${process.env.PUBLIC_URL}/images/home-page/vscode-icon.png`,\r\n  createLight: `${process.env.PUBLIC_URL}/images/home-page/create-light.png`,\r\n  createDark: `${process.env.PUBLIC_URL}/images/home-page/create-dark.png`,\r\n  importLight: `${process.env.PUBLIC_URL}/images/home-page/import-light.png`,\r\n  importDark: `${process.env.PUBLIC_URL}/images/home-page/import-dark.png`,\r\n  cardLight: `${process.env.PUBLIC_URL}/images/home-page/card-light.png`,\r\n  cardDark: `${process.env.PUBLIC_URL}/images/home-page/card-dark.png`\r\n};\r\n\r\nexport const HomeLinks = {\r\n  FluentUISite: \"https://fluentsite.z22.web.core.windows.net/\",\r\n  FluentUIGithub: \"https://github.com/microsoft/fluentui\",\r\n  TeamsUITemplatesDocs: makeDocsLink(\"microsoftteams/platform/concepts/design/design-teams-app-ui-templates\"),\r\n  TeamsUITemplatesPlayground: \"https://dev.teams.microsoft.com/storybook/main/index.html\",\r\n  TeamsSampleAppGithub: \"https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-ui-templates/ts\",\r\n  TeamsVSCodeExtension: \"https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension\",\r\n  TeamsVSExtension: \"https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.vsteamstemplate\",\r\n  TeamsAppTemplate: makeDocsLink(\"microsoftteams/platform/samples/app-templates\"),\r\n  TeamsPlatformDocs: makeDocsLink(\"microsoftteams/platform/\"),\r\n  TeamsUIChartsGithub: \"https://github.com/OfficeDev/microsoft-data-visualization-library\",\r\n  TeamsCertificationDocs: makeDocsLink(\"microsoft-365-app-certification\"),\r\n  TeamsSampleAppDownload: `${process.env.REACT_APP_API_TOKEN_SOURCE}/microsoft-teams-app-sample.zip`,\r\n  TeamsACATDocs: \"https://aka.ms/acat\",\r\n  M365DevDocs: \"https://learn.microsoft.com/en-us/microsoftteams/platform/m365-apps/overview\",\r\n  SampleAppsRepository: \"https://github.com/OfficeDev/microsoft-teams-samples?tab=readme-ov-file#ai-samples\",\r\n  M365DeveloperBlog: \"https://devblogs.microsoft.com/microsoft365dev/\"\r\n};\r\n\r\nexport const ToolIcons = {\r\n  vscode: `${process.env.PUBLIC_URL}/images/tool-icons/vs-code-icon.png`,\r\n  teamsUIKit: `${process.env.PUBLIC_URL}/images/tool-icons/teams-ui-kit-icon.png`,\r\n  teams: `${process.env.PUBLIC_URL}/images/tool-icons/teams-icon.png`,\r\n  sampleApp: `${process.env.PUBLIC_URL}/images/tool-icons/teams-sample-app-icon.png`,\r\n  bot: `${process.env.PUBLIC_URL}/images/tool-icons/bot-icon.png`,\r\n  card: `${process.env.PUBLIC_URL}/images/tool-icons/card-icon.png`,\r\n  scene: `${process.env.PUBLIC_URL}/images/tool-icons/scene-icon.png`,\r\n  identity: `${process.env.PUBLIC_URL}/images/tool-icons/identity-icon.png`,\r\n  validation: `${process.env.PUBLIC_URL}/images/tool-icons/validation-icon.png`,\r\n  figma: `${process.env.PUBLIC_URL}/images/tool-icons/figma-icon.png`,\r\n  w3c: `${process.env.PUBLIC_URL}/images/tool-icons/w3c-icon.png`,\r\n  able: `${process.env.PUBLIC_URL}/images/tool-icons/able-icon.png`,\r\n  inclusive: `${process.env.PUBLIC_URL}/images/tool-icons/inclusive-icon.png`,\r\n  shield: `${process.env.PUBLIC_URL}/images/tool-icons/shield-checkmark.svg`,\r\n  acat: `${process.env.PUBLIC_URL}/images/tool-icons/app-compliance-automation4k.png`,\r\n  apikey: `${process.env.PUBLIC_URL}/images/tool-icons/phone-key-icon.png`,\r\n  oauth: `${process.env.PUBLIC_URL}/images/tool-icons/oauth-icon.png`,\r\n  entra: `${process.env.PUBLIC_URL}/images/tool-icons/shield-lock.png`,\r\n  m365DevDoc: `${process.env.PUBLIC_URL}/images/tool-icons/m365-dev-doc.png`,\r\n  sampleAppsRepository: `${process.env.PUBLIC_URL}/images/tool-icons/sample-apps-repository.png`,\r\n  developerBlog: `${process.env.PUBLIC_URL}/images/tool-icons/developer-blog.png`,\r\n  appCompliance: `${process.env.PUBLIC_URL}/images/tool-icons/app-compliance.png`,\r\n  m365UIKit: `${process.env.PUBLIC_URL}/images/tool-icons/m365-ui-kit.png`\r\n};\r\n\r\nexport const ToolLinks = {\r\n  VSCodeExt: \"https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension\",\r\n  TeamsFigma: \"https://www.figma.com/community/file/916836509871353159\",\r\n  AbleFigma: \"https://www.figma.com/community/plugin/734693888346260052\",\r\n  W3CStandards: \"https://www.w3.org/standards/\",\r\n  InclusiveDesign: \"https://www.microsoft.com/design/inclusive/\",\r\n  TeamsACATDocs: \"https://aka.ms/acat\",\r\n  M365KitFigma: \"https://www.figma.com/community/file/1314695480773948455\"\r\n};\r\n\r\nexport const TeamsIcon = \"https://statics.teams.cdn.office.net/hashedassets/favicon/prod/favicon-9e2b8f1.ico\";\r\n\r\nexport const installAppDefinitionLink = (id: string) => `https://teams.microsoft.com/_#/l/app/${id}?installAppPackage=true}`;\r\n\r\nexport const guidPlaceHolder = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\";\r\n\r\nexport const openInVSCodeLink = (appId: string, userName: string) =>\r\n  `vscode://TeamsDevApp.ms-teams-vscode-extension?referrer=developerportal&appId=${appId}&login_hint=${userName}`;\r\n\r\nexport const openInVSLink = (appId: string, userName: string) =>\r\n  `vsweb+teamstoolkit://create?referrer=developerportal&appId=${appId}&login_hint=${userName}`;\r\n\r\nexport const validationAssets = {\r\n  empty: `${process.env.PUBLIC_URL}/images/validation-empty.png`,\r\n  wait: `${process.env.PUBLIC_URL}/images/validation-wait.png`\r\n};\r\n\r\nexport const copilotPluginAssets = {\r\n  uploadApiSpec: `${process.env.PUBLIC_URL}/images/upload-api-spec.png`,\r\n  changeMEType: `${process.env.PUBLIC_URL}/images/switch-me-type-warning.png`\r\n};\r\n\r\nexport const ApiBasedMessageExtensionAssets = {\r\n  ApiSpecSaved: `${process.env.PUBLIC_URL}/images/api-spec-saved.png`\r\n};\r\n\r\nexport const packageEditorAssets = {\r\n  image: `${process.env.PUBLIC_URL}/images/pkgeditor-image.svg`,\r\n  code: `${process.env.PUBLIC_URL}/images/pkgeditor-code.svg`,\r\n  yaml: `${process.env.PUBLIC_URL}/images/pkgeditor-yaml.svg`,\r\n  folder: `${process.env.PUBLIC_URL}/images/pkgeditor-folder.svg`\r\n};\r\n\r\nexport const oneShellHeaderBootstrapperLink = \"https://shell.cdn.office.net/api/shellbootstrapper/consumer/oneshell\";\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { Object } from \"fabric/fabric-impl\";\r\nimport { IAppOwner } from \"./IAppOwner\";\r\n\r\nexport interface IExtent {\r\n  left: number;\r\n  top: number;\r\n  width: number;\r\n  height: number;\r\n}\r\n\r\nexport interface ISprite {\r\n  id: string;\r\n  filename: string;\r\n  cx: number;\r\n  cy: number;\r\n  size: number;\r\n  width: number;\r\n  height: number;\r\n  zOrder: number;\r\n  isAlpha: boolean;\r\n  drawingId: string;\r\n  src?: string;\r\n}\r\n\r\nexport interface IParticipant {\r\n  id: string;\r\n  cx: number;\r\n  cy: number;\r\n  width: number;\r\n  height: number;\r\n  zOrder: number;\r\n  seatingOrder: number;\r\n  reservedForMeetingRole: number;\r\n}\r\nexport interface IParticipantDetail {\r\n  name: number;\r\n}\r\n\r\nexport interface ICanvasItem {\r\n  name: string;\r\n  id: string;\r\n  src: string;\r\n  isParticipant: boolean;\r\n}\r\n\r\nexport interface IBackgroundImages {\r\n  drawingId?: string;\r\n  name: string;\r\n  id: string;\r\n  src: string;\r\n}\r\n\r\nexport interface IDrawingDefinition {\r\n  id: string;\r\n  createdAt? : string;\r\n  updatedAt? : string;\r\n  ownerAadId? : string;\r\n  tenantId? : string;\r\n  centeredScaling? : boolean;\r\n  clipPath? : object;\r\n  controlsAboveOverlay? : object;\r\n  height? : number;\r\n  width? : number;\r\n  preserveObjectStacking? : boolean;\r\n  stateful? : boolean;\r\n  version? : string;\r\n  objects? : object[];\r\n  sceneId? : string;\r\n}\r\n\r\nexport interface IScene {\r\n  id: string;\r\n  ownerAadId?: string;\r\n  userList?: IAppOwner[];\r\n  name: string;\r\n  preview?: string;\r\n  createdAt?: string;\r\n  updatedAt?: string;\r\n  appId?: string;\r\n  mirrorParticipants?: boolean;\r\n  autoZoom?: boolean;\r\n  zoomPadding?: number;\r\n  maxAudience?: number;\r\n  seatsReservedForOrganizersOrPresenters?: number;\r\n  sceneMetadata?: SceneMetadata;\r\n  isPublic?: boolean;\r\n  isSample?: boolean;\r\n}\r\n\r\nexport interface SceneMetadata {\r\n  id?: string;\r\n  autoZoom?: boolean;\r\n  mirrorParticipants?: boolean;\r\n  extent?: IExtent;\r\n  sprites?: Array<ISprite>;\r\n  participants?: Array<IParticipant>;\r\n}\r\n\r\nexport interface IObjectWithId extends Object {\r\n  id: string;\r\n}\r\nexport interface ISelectedItems {\r\n  [id: string]: { scaleX: number; scaleY: number };\r\n}\r\n\r\nexport enum LayerType {\r\n  Participant = \"participant\",\r\n  Sprite = \"sprite\",\r\n  ParticipantGroup = \"ParticipantGroup\",\r\n  ParticipantOverlay=\"participantOverlay\"\r\n}\r\n\r\nexport interface ICoords {\r\n  left?: number;\r\n  top?: number;\r\n}\r\n\r\nexport enum CardType {\r\n  UserCreated,\r\n  SampleTemplate,\r\n  DialogSampleTemplate\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { IAppFlightRollout } from \"../../interfaces/IAppFlightRollout\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport type { AxiosResponse } from \"axios\";\r\nimport { AppFlightingFailurePayload, IWithdrawAppError, promoteAppError } from \"../reducers/AppFlightingReducers\";\r\n\r\nexport enum AppFlightingActionTypes {\r\n  CreateAppFlightingSuccess = \"Create_AppFlighting_Success\",\r\n  CreateAppFlightingFailure = \"Create_AppFlighting_Failed\",\r\n  GetAppFlightingSuccess = \"Get_AppFlighting_Success\",\r\n  GetAppFlightingFailure = \"Get_AppFlighting_Failed\",\r\n  DeleteAppFlightingSuccess = \"Delete_AppFlighting_Success\",\r\n  DeleteAppFlightingFailure = \"Delete_AppFlighting_Failed\",\r\n  DeleteAppFlightingRollbacksSuccess = \"Delete_AppFlighting_Rollbacks_Success\",\r\n  DeleteAppFlightingRollbacksFailure = \"Delete_AppFlighting_Rollbacks_Failed\",\r\n  WithdrawAppSuccess = \"Withdraw_App_Success\",\r\n  WithdrawAppFailure = \"Withdraw_App_Failed\",\r\n  PromoteAppError = \"Promote_App_Error\",\r\n  ClearPromoteAppError = \"Clear_App_Mismatch\",\r\n  ResetError = \"Reset_AppFlighting_Error\",\r\n  ClearWithdrawAppLink = \"Clear_WithdrawAppLink\",\r\n  WithdrawAppError = \"Withdraw_App_Error\",\r\n  ClearWithdrawAppError = \"Clear_Withdraw_Mismatch\"\r\n}\r\n\r\n// TODO (dewang) : Can't seem to find an usage for this function. Good candidate for clean up.\r\nexport const DeleteAppFlighting = (appId: string, dispatch: AppDispatch) =>\r\n  apiAction({\r\n    url: `${process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl}/staging/apps/${appId}/flightDetails`,\r\n    method: ApiMethods.Delete,\r\n    onStart: uiLoadingSlice.actions[UILoadingActionTypes.Start],\r\n    onSuccess: (data: { rollouts: IAppFlightRollout[] }) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      if (data) {\r\n        return {\r\n          type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.DeleteAppFlightingSuccess}`,\r\n          payload: { rollouts: data.rollouts }\r\n        };\r\n      }\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      return {\r\n        type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.DeleteAppFlightingFailure}`\r\n      };\r\n    }\r\n  });\r\n\r\nexport const CreateAppFlightError = (payload: AppFlightingFailurePayload): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.CreateAppFlightingFailure}`,\r\n  payload\r\n});\r\n\r\nexport const ClearAppFlightError = (): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.ClearPromoteAppError}`,\r\n  payload: \"\"\r\n});\r\n\r\nexport const PromoteAppError = (payload: promoteAppError): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.PromoteAppError}`,\r\n  payload\r\n});\r\n\r\nexport const ClearPromoteAppError = (): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.ClearPromoteAppError}`,\r\n  payload: {}\r\n});\r\n\r\nexport const UpdateWithdrawAppLink = (payload: string): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.WithdrawAppSuccess}`,\r\n  payload\r\n});\r\n\r\nexport const UpdateWithdrawAppError = (payload: IWithdrawAppError): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.WithdrawAppError}`,\r\n  payload\r\n});\r\n\r\nexport const ClearWithdrawAppLink = (): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.ClearWithdrawAppLink}`,\r\n  payload: \"\"\r\n});\r\n\r\nexport const ResetAppFlightingError = (): IAction => ({\r\n  type: `${StateKeys.AppFlighting}/${AppFlightingActionTypes.ResetError}`,\r\n  payload: \"\"\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAppUserState } from \"../reducers/AppUserReducers\";\r\n\r\nexport enum AppUserInfoTypes {\r\n  UpdateAppUserInfo = \"UpdateAppUserInfo\"\r\n}\r\n\r\nexport const UpdateAppUserInfo = (data: Partial<IAppUserState>) => ({\r\n  type: `${StateKeys.AppUserInfo}/${AppUserInfoTypes.UpdateAppUserInfo}`,\r\n  payload: data\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { createSlice, createEntityAdapter, PayloadAction, EntityState } from \"@reduxjs/toolkit\";\r\n\r\nimport { StateKeys } from \"./ReducerUtils\";\r\ninterface IAuthenticatedImageBase {\r\n  src: string;\r\n  state: string;\r\n}\r\ninterface ILoadingImage extends IAuthenticatedImageBase {\r\n  state: \"loading\";\r\n}\r\ninterface ILoadedImage extends IAuthenticatedImageBase {\r\n  state: \"loaded\";\r\n  objectUri: string;\r\n}\r\ninterface IErroredImage extends IAuthenticatedImageBase {\r\n  state: \"error\";\r\n  error: Error;\r\n}\r\ntype IAuthenticatedImage = ILoadingImage | ILoadedImage | IErroredImage;\r\n\r\nexport const authenticatedImageAdapter = createEntityAdapter<IAuthenticatedImage>({\r\n  selectId: (authenticatedImage) => authenticatedImage.src\r\n});\r\nconst adapterSelectors = authenticatedImageAdapter.getSelectors();\r\n\r\nexport const authenticatedImageSelectors = {\r\n  selectBySrc: (state: EntityState<IAuthenticatedImage>, src: string) => adapterSelectors.selectById(state, src)\r\n};\r\nconst initialState = authenticatedImageAdapter.getInitialState({});\r\n\r\nexport const authenticatedImageSlice = createSlice({\r\n  name: StateKeys.AuthenticatedImages,\r\n  initialState,\r\n  reducers: {\r\n    startLoadingImage(state, action: PayloadAction<{ src: string }>) {\r\n      const src = action.payload.src;\r\n      // Ensure we've not already started loading or have loaded the image\r\n      // allow for reloading if the image is currently in error state.\r\n      const current = authenticatedImageSelectors.selectBySrc(state, src);\r\n      if (current != null && current.state !== \"error\") {\r\n        // TODO(nibeauli): log this as a state change violation.\r\n        return;\r\n      }\r\n      authenticatedImageAdapter.setOne(state, {\r\n        state: \"loading\",\r\n        src\r\n      });\r\n    },\r\n    loadImage(state, action: PayloadAction<{ src: string; data: Blob }>) {\r\n      const src = action.payload.src;\r\n      const current = authenticatedImageSelectors.selectBySrc(state, src);\r\n      if (current?.state !== \"loading\") {\r\n        return;\r\n      }\r\n      const objectUri = URL.createObjectURL(action.payload.data);\r\n      const next: ILoadedImage = {\r\n        src,\r\n        objectUri,\r\n        state: \"loaded\"\r\n      };\r\n      authenticatedImageAdapter.setOne(state, next);\r\n    },\r\n    failImage(state, action: PayloadAction<{ src: string; error: Error }>) {\r\n      const { src, error } = action.payload;\r\n      const current = authenticatedImageSelectors.selectBySrc(state, action.payload.src);\r\n      if (current?.state !== \"loading\") {\r\n        return;\r\n      }\r\n      const next: IErroredImage = {\r\n        state: \"error\",\r\n        src,\r\n        error\r\n      };\r\n      authenticatedImageAdapter.setOne(state, next);\r\n    }\r\n  }\r\n});\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nexport enum SwitchAPIType {\r\n  None = \"None\",\r\n  GetMessagingExtensionConfig = \"GetMessagingExtensionConfig\",\r\n  GetMessagingExtensionConfigAndAsset = \"GetMessagingExtensionConfigAndAsset\",\r\n  UpdateMessagingExtensionAndGetConfigAndAsset = \"UpdateMessagingExtensionAndGetConfigAndAsset\",\r\n  UploadComposeExtensionAssetAndGetConfig = \"UploadComposeExtensionAssetAndGetConfig\"\r\n}\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\n\r\nimport { apiAction, ApiMethods } from \".\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { AppDispatch } from \"../store\";\r\nimport { uiLoadingSlice, UILoadingActionTypes } from \"../reducers/UILoadingReducers\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport Logger from \"../telemetry/Logger\";\r\nimport { showNotification } from \"./NotificationActions\";\r\nimport { GetErrorContext, NotificationType } from \"../../components/notifications/Notifications\";\r\nimport { IMessagingExtensionConfiguration } from \"../../interfaces/IMessagingExtensionConfiguration\";\r\nimport { switchLoadingSlice, SwitchLoadingActionTypes } from \"../reducers/SwitchLoadingReducer\";\r\nimport { GetComposeExtensionZipAsset } from \"./ComposeExtensionAssetActions\";\r\nimport { SwitchAPIType } from \"../../constants/Enums/SwitchAPIType\";\r\nimport { IntlShape } from \"react-intl\";\r\nimport { formatMessage } from \"../../utils/StringUtils\";\r\n\r\nexport enum MessagingExtensionConfigurationActionTypes {\r\n  GetMessagingExtensionConfigurationStart = \"MessagingExtensionConfiguration_GetMessagingExtensionConfigurationStart\",\r\n  GetMessagingExtensionConfigurationSuccess = \"MessagingExtensionConfiguration_GetMessagingExtensionConfigurationSuccess\",\r\n  GetMessagingExtensionConfigurationFailure = \"MessagingExtensionConfiguration_GetMessagingExtensionConfigurationFailure\",\r\n  ClearConfiguration = \"MessagingExtensionConfiguration_ClearConfiguration\"\r\n}\r\n\r\nexport const GetMessagingExtensionConfigurationSuccess = (data: IMessagingExtensionConfiguration): IAction => ({\r\n  type: `${StateKeys.MessagingExtensionConfiguration}/${MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationSuccess}`,\r\n  payload: data\r\n});\r\n\r\nexport const GetMessagingExtensionConfigurationError = (error: AxiosResponse): IAction => ({\r\n  type: `${StateKeys.MessagingExtensionConfiguration}/${MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationFailure}`,\r\n  payload: error\r\n});\r\n\r\nexport const ClearMessagingExtensionConfiguration = (): IAction => ({\r\n  type: `${StateKeys.MessagingExtensionConfiguration}/${MessagingExtensionConfigurationActionTypes.ClearConfiguration}`\r\n});\r\n\r\nexport const GetMessagingExtensionConfigurationStart = (): IAction => ({\r\n  type: `${StateKeys.MessagingExtensionConfiguration}/${MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationStart}`\r\n});\r\n\r\nexport const GetMessagingExtensionConfiguration = (\r\n  appId: string,\r\n  messagingExtensionId: string,\r\n  successMessage: string,\r\n  errrorMessage: string,\r\n  dispatch: AppDispatch,\r\n  followUpAPI: SwitchAPIType,\r\n  intl?: IntlShape\r\n) =>\r\n  apiAction({\r\n    url: `${\r\n      process.env.REACT_APP_LOCAL_API_HOST || Config.apiUrl\r\n    }/appdefinitions/${appId}/messagingextensions/${messagingExtensionId}/config`,\r\n    method: ApiMethods.Get,\r\n    onStart: () => {\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Start]());\r\n      dispatch(GetMessagingExtensionConfigurationStart());\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Start]());\r\n      }\r\n    },\r\n    onSuccess: (data: IMessagingExtensionConfiguration) => {\r\n      if (\r\n        followUpAPI === SwitchAPIType.GetMessagingExtensionConfig ||\r\n        followUpAPI === SwitchAPIType.UploadComposeExtensionAssetAndGetConfig\r\n      ) {\r\n        // GetMessageExtensionConfiguration is the last API call in the switch API flow\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Complete]());\r\n      }\r\n      if (\r\n        (followUpAPI === SwitchAPIType.GetMessagingExtensionConfigAndAsset ||\r\n          followUpAPI === SwitchAPIType.UpdateMessagingExtensionAndGetConfigAndAsset) &&\r\n        intl\r\n      ) {\r\n        dispatch(\r\n          GetComposeExtensionZipAsset(\r\n            appId,\r\n            formatMessage(intl, \"getMessagingExtensionAssetsSuccessfully\"),\r\n            formatMessage(intl, \"getMessagingExtensionAssetsFailed\"),\r\n            dispatch,\r\n            true\r\n          )\r\n        );\r\n      }\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogInfo(TelemetryEventName.GetMessagingExtensionConfigurationSuccessfully, successMessage);\r\n\r\n      return {\r\n        type: `${StateKeys.MessagingExtensionConfiguration}/${MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationSuccess}`,\r\n        payload: data\r\n      };\r\n    },\r\n    onFailure: (error: AxiosResponse) => {\r\n      dispatch(showNotification(true, errrorMessage, NotificationType.Error, GetErrorContext(error)));\r\n      if (followUpAPI) {\r\n        dispatch(switchLoadingSlice.actions[SwitchLoadingActionTypes.Failure]());\r\n      }\r\n      dispatch(uiLoadingSlice.actions[UILoadingActionTypes.Complete]());\r\n      Logger.LogError(TelemetryEventName.GetMessagingExtensionConfigurationError, errrorMessage);\r\n\r\n      return {\r\n        type: `${StateKeys.MessagingExtensionConfiguration}/${MessagingExtensionConfigurationActionTypes.GetMessagingExtensionConfigurationFailure}`,\r\n        payload: error\r\n      };\r\n    }\r\n  });\r\n","/**\r\n * ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------------------------------------------\r\n */\r\nimport { IAction } from \"../../interfaces/IAction\";\r\nimport { Themes } from \"../themes\";\r\nimport { StateKeys } from \"../reducers/ReducerUtils\";\r\n\r\nexport enum ThemeActionTypes {\r\n  SetTheme = \"Set_Theme\"\r\n}\r\n\r\nexport const setTheme = (theme: Themes): IAction => ({\r\n  type: `${StateKeys.Theme}/${ThemeActionTypes.SetTheme}`,\r\n  payload: {\r\n    themes: theme\r\n  }\r\n});\r\n","export enum AppPublishType {\r\n    LOB_App = \"LOB_App\", // App published to a tenant\r\n    Store_App = \"Store_App\", // App Published to teams store Ring 4\r\n    CDN_App = \"CDN_App\", // App published to CDN can be any of the rings 0 to 4\r\n    TDP_App = \"TDP_App\", // Any app inside TDP\r\n}\r\n\r\nexport enum AppPublishKeys {\r\n    AppType = \"appType\",\r\n}","import { TelemetryEventName } from \"../../constants/Enums/TelemetryEventName\";\r\nimport { Config } from \"../../constants/Config\";\r\nimport { EnvironmentType } from \"../../constants/Enums/EnvironmentType\";\r\nimport { QueryStringKeys } from \"../../constants/Enums/QueryStringKeys\";\r\nimport { TelemetryObjectId } from \"../../constants/Enums/TelemetryObjectId\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { getQueryValue } from \"../../utils/BrowserUtils\";\r\nimport * as oneDS from \"@microsoft/1ds-analytics-web-js\";\r\nimport { IUserContext } from \"../../interfaces/IUserContext\";\r\nimport { IUserBiLog } from \"../../interfaces/IUserBiLog\";\r\n\r\nexport type EventData = {\r\n  [key: string]: string | boolean;\r\n};\r\n\r\nconst ScenarioTableName = \"Scenario\";\r\nconst LoggingTableName = \"Logging\";\r\nconst UserBiTableName = \"UserBi\";\r\n\r\nexport default abstract class Logger {\r\n  private static logger: oneDS.ApplicationInsights;\r\n  public static isTelemetryEnabled = false;\r\n  public static isConsoleLoggingEnabled = false;\r\n\r\n  public static sessionId: string;\r\n  public static correlationCount = 0;\r\n\r\n  public static init() {\r\n    this.logger = new oneDS.ApplicationInsights();\r\n    const webAnalyticsConfig: oneDS.IWebAnalyticsConfiguration = {\r\n      autoCapture: {\r\n        pageView: true,\r\n        onLoad: true,\r\n        click: true,\r\n        scroll: false,\r\n        onUnload: false\r\n      }\r\n    };\r\n    const config: oneDS.IExtendedConfiguration = {\r\n      instrumentationKey: Config.instrumentationKey,\r\n      // Extra extensions\r\n      extensions: [],\r\n      webAnalyticsConfiguration: webAnalyticsConfig\r\n    };\r\n\r\n    // Initialize SDK\r\n    this.isTelemetryEnabled = this.isOneDsTelemetryEnabled();\r\n    this.isConsoleLoggingEnabled = this.isLocalConsoleLoggingEnabled();\r\n    this.sessionId = uuidv4();\r\n    this.logger.initialize(config, []);\r\n    this.setLoggingContext();\r\n  }\r\n\r\n  public static setUserInfo(userContext: IUserContext) {\r\n    const propertyManager = this.logger.getPropertyManager();\r\n    propertyManager.getPropertiesContext().user.localId = userContext.aadId ? `a:${userContext.aadId}` : \"\";\r\n    propertyManager.setProperty(\"UserInfo.TenantId\", userContext.tenantId ?? \"\");\r\n  }\r\n\r\n  // TODO add logging for scenario and user bi.\r\n  /** @deprecated use Logger.log() instead*/\r\n  public static LogInfo(\r\n    eventName: TelemetryEventName | TelemetryObjectId,\r\n    key = \"\",\r\n    action = \"\",\r\n    correlationId: string = this.GetCorrelationId()\r\n  ) {\r\n    const telemetryPayload: EventData = {\r\n      action,\r\n      key,\r\n      correlationId\r\n    };\r\n    this.log(eventName, telemetryPayload);\r\n  }\r\n\r\n  public static log(eventName: TelemetryEventName | TelemetryObjectId, eventData: EventData): void {\r\n    const payload = this.createTelemetryPayload(LoggingTableName, eventName, eventData);\r\n    this.logToOneDS(payload);\r\n  }\r\n\r\n  // TODO: remove this method once refactoring is done.\r\n  /** @deprecated use Logger.log() instead*/\r\n  public static LogError(\r\n    eventName: TelemetryEventName,\r\n    key = \"\",\r\n    action = \"\",\r\n    correlationId: string = this.GetCorrelationId()\r\n  ) {\r\n    // Removing typing here since trackException requires\r\n    // IExceptionTelemetry but this format does not conform to the format\r\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n    const telemetryPayload: any = {\r\n      data: {\r\n        host: Config.appStudioHost,\r\n        action,\r\n        key,\r\n        sessionId: this.sessionId,\r\n        correlationId,\r\n        name: eventName\r\n      },\r\n      name: LoggingTableName\r\n    };\r\n    if (this.isTelemetryEnabled) {\r\n      this.logger.trackException(telemetryPayload);\r\n    }\r\n\r\n    if (this.isConsoleLoggingEnabled) {\r\n      console.log(telemetryPayload);\r\n    }\r\n  }\r\n\r\n  public static GetCorrelationId(): string {\r\n    return `${this.sessionId  }_${  this.correlationCount++}`;\r\n  }\r\n\r\n  public static LogUserBi(eventName: TelemetryObjectId, eventData: IUserBiLog): void {\r\n    const payload = this.createTelemetryPayload(UserBiTableName, eventName, eventData as EventData);\r\n    this.logToOneDS(payload);\r\n  }\r\n\r\n  private static setLoggingContext(): void {\r\n    const propertyManager = this.logger.getPropertyManager();\r\n    // Part A\r\n    propertyManager.getPropertiesContext().session.setId(this.sessionId);\r\n\r\n    // Part B\r\n    propertyManager.setProperty(\"AppInfo.Host\", Config.appStudioHost);\r\n    propertyManager.setProperty(\"AppInfo.BuildDate\", Config.buildDate);\r\n    propertyManager.setProperty(\"AppInfo.CommitHash\", Config.commitHast);\r\n    propertyManager.setProperty(\"Environment\", EnvironmentType[Config.environment].toString());\r\n    // TODO: figure out versioning and format\r\n    // propertyManager.setProperty(\"AppInfo.Version\", Config.appVersion);\r\n  }\r\n\r\n  private static createTelemetryPayload(tableName: string, eventName: string, eventData: EventData): oneDS.IExtendedTelemetryItem {\r\n    const result = {\r\n      data: {\r\n        ...eventData,\r\n        name: eventName // custom event name\r\n      },\r\n      name: tableName // Tablename, this have to stay the same.\r\n    };\r\n    return result;\r\n  }\r\n\r\n  private static logToOneDS(telemetryPayload: oneDS.IExtendedTelemetryItem): void {\r\n    if (this.isTelemetryEnabled) {\r\n      this.logger.trackEvent(telemetryPayload);\r\n    }\r\n\r\n    if (this.isConsoleLoggingEnabled) {\r\n      console.log(telemetryPayload);\r\n    }\r\n  }\r\n  private static isOneDsTelemetryEnabled(): boolean {\r\n    return Config.environment !== EnvironmentType.Local || getQueryValue(QueryStringKeys.EnableOneDsTelemetry) === \"true\";\r\n  }\r\n\r\n  private static isLocalConsoleLoggingEnabled(): boolean {\r\n    return Config.environment === EnvironmentType.Local || getQueryValue(QueryStringKeys.EnableConsoleLogging) === \"true\";\r\n  }\r\n}\r\n"],"sourceRoot":""}