@kontur.candy/tools 2.129.0 → 2.131.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +6 -6
- package/distr/Common/AsyncUtils.js +1 -30
- package/distr/Common/CandyApiClient/CandyApiClient.js +56 -39
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +1 -33
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +0 -4
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +0 -4
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +1 -29
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +0 -4
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -35
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -35
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +1 -37
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +1 -29
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +1 -34
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +1 -28
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +0 -4
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +1 -33
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +1 -29
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +1 -6
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +0 -4
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestResponse.js +0 -4
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +22 -38
- package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -5
- package/distr/Common/CandyApiClient/IsBuffer.js +1 -29
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +0 -4
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +0 -4
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +1 -6
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +0 -4
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +0 -4
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +11 -0
- package/distr/Common/CandyApiClient/Types/DraftFullId.js +0 -4
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +0 -4
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +1 -6
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +1 -6
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/Guid.js +0 -4
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +1 -6
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +0 -4
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +0 -4
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +1 -6
- package/distr/Common/CommonConstants/SectionNames.js +1 -28
- package/distr/Common/Comparers.js +8 -30
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +1 -29
- package/distr/Common/EndPoints.js +1 -34
- package/distr/Common/Errors.js +3 -71
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -30
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +0 -4
- package/distr/Common/Funcs.js +1 -29
- package/distr/Common/GFV.js +0 -4
- package/distr/Common/Hooks/UseLocalStorage.js +42 -0
- package/distr/Common/HttpClient/AuthenticationMode.js +1 -32
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +12 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +1 -29
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js +0 -4
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +1 -30
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +3 -31
- package/distr/Common/HttpClient/HttpClient.js +12 -56
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +0 -4
- package/distr/Common/HttpClient/IHttpClient.js +0 -4
- package/distr/Common/IndentString.js +18 -0
- package/distr/Common/IntRangeUtils.js +1 -31
- package/distr/Common/IterableUtils.js +23 -38
- package/distr/Common/KCLangRuntimeUtils.js +3 -38
- package/distr/Common/ModelPath/BuildIterationSequence.js +3 -31
- package/distr/Common/ModelPath/EachCurrentCollision.js +1 -6
- package/distr/Common/ModelPath/IEquatable.js +0 -4
- package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +30 -0
- package/distr/Common/ModelPath/Map/Map2.js +103 -0
- package/distr/Common/ModelPath/Map/ModelPathMap.js +30 -0
- package/distr/Common/ModelPath/ModelPath.js +206 -206
- package/distr/Common/ModelPath/ModelPathBuilder.js +11 -40
- package/distr/Common/ModelPath/ModelPathHelper.js +13 -0
- package/distr/Common/ModelPath/PathMatcher.js +8 -37
- package/distr/Common/ModelPath/PathSplitHelper.js +26 -0
- package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +40 -0
- package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +40 -0
- package/distr/Common/ModelPath/Set/ModelPathSet.js +40 -0
- package/distr/Common/ModelPath/Set/Set2.js +60 -0
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +1 -34
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +0 -4
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +1 -29
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +1 -34
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +1 -38
- package/distr/Common/NidusClient/INidusClient.js +1 -30
- package/distr/Common/NidusClient/NidusClientContext.js +1 -38
- package/distr/Common/NidusClient/NidusClientImpl.js +1 -34
- package/distr/Common/PathConstants.js +3 -31
- package/distr/Common/TypingUtils.js +6 -50
- package/distr/Common/UUID.js +1 -30
- package/distr/Common/UseAsyncEffect.js +1 -31
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +3 -36
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +1 -29
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +1 -30
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +3 -36
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +3 -36
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +1 -29
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +3 -34
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +1 -28
- package/distr/Tools/src/BuildTasks/FSTask.js +3 -30
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -32
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +1 -37
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +1 -34
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +3 -31
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +1 -29
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -31
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +3 -36
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +3 -37
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +2 -37
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +2 -34
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +1 -5
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -5
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +3 -33
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +1 -28
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +3 -30
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +1 -34
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +1 -45
- package/distr/Tools/src/BuildTasks/ReadFormSource.js +4 -39
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +3 -33
- package/distr/Tools/src/BuildTasks/Version.js +1 -32
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js +3 -31
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +1 -30
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +7 -34
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +3 -33
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +1 -34
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +1 -29
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +6 -37
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +6 -47
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +26 -43
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +6 -40
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +6 -38
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +6 -37
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +6 -39
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +6 -37
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +6 -39
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +3 -36
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +3 -36
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +12 -37
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +3 -31
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +5 -35
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +4 -36
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +3 -31
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +0 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +0 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +2 -42
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +3 -36
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -29
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +0 -4
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +1 -30
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +1 -29
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +1 -29
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +1 -30
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +0 -4
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +1 -28
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +3 -31
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +1 -28
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +3 -31
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +6 -40
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}.calc.js +1 -30
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/setKppValue.js +1 -29
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +1 -34
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +6 -37
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/kppValue.js +1 -29
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +1 -28
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +1 -30
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +1 -28
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +3 -32
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +1 -32
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +1 -29
- package/distr/Tools/src/CandyCLI.js +3 -31
- package/distr/Tools/src/CheckNodeJsVersion.js +3 -33
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +4 -35
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +1 -34
- package/distr/Tools/src/Commons/ErrorUntyped.js +0 -4
- package/distr/Tools/src/Commons/EventObject.js +2 -44
- package/distr/Tools/src/Commons/ExecUtils.js +1 -29
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +1 -29
- package/distr/Tools/src/Commons/FormGlobsUtils.js +3 -36
- package/distr/Tools/src/Commons/FsUtils.js +3 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +1 -32
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +2 -33
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +0 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +2 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +1 -36
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +0 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +1 -34
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +3 -57
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +1 -28
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +3 -36
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +1 -34
- package/distr/Tools/src/Commons/Locks/Lock.js +3 -36
- package/distr/Tools/src/Commons/Locks/LockHandle.js +1 -34
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +3 -36
- package/distr/Tools/src/Commons/Logging/ELKLogger.js +3 -33
- package/distr/Tools/src/Commons/Logging/ILogger.js +1 -36
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +1 -41
- package/distr/Tools/src/Commons/Logging/Logger.js +3 -36
- package/distr/Tools/src/Commons/Logging/StaticLogger.js +1 -38
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +1 -30
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +6 -53
- package/distr/Tools/src/Commons/PathPattern.js +1 -34
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +1 -34
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js +0 -4
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +3 -89
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +3 -36
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +1 -34
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +3 -36
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +3 -36
- package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -28
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +1 -34
- package/distr/Tools/src/Commons/TimingUtils.js +1 -29
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +55 -48
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +8 -36
- package/distr/Tools/src/GenerateReadMe.js +1 -31
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/Options/CandyToolOptions.js +1 -28
- package/distr/Tools/src/ReadFarmConfig.js +3 -31
- package/distr/Tools/src/SelfUpdate.js +4 -36
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1000 -2036
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +366 -361
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +1 -5
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +1 -5
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +1 -5
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +1 -5
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +1 -5
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +1 -5
- package/package.json +9 -8
- package/distr/Common/ModelPath/AbsoluteModelPathSet.js +0 -95
- package/distr/Common/ModelPath/ModelPathMap.js +0 -160
- package/distr/Common/ModelPath/ModelPathSet.js +0 -99
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
<a name="2.131.0"></a>
|
|
2
|
+
# [2.131.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.130.0...release/tools/v2.131.0) (2022-08-12)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **Tools:** Build-cache публикуется в drive, и выкачивается при сборке формы ([5f22f12](https://git.skbkontur.ru/ke/candy-utils/commit/5f22f12)), see [#6895](https://yt.skbkontur.ru/issue/FS-6895)
|
|
8
|
+
|
|
9
|
+
<a name="2.130.2"></a>
|
|
10
|
+
## [2.130.2](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.130.1...release/tools/v2.130.2) (2022-03-29)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **Tools:** Сборка client.js идет в первую очередь, при обновлении candy.tools ([f230310](https://git.skbkontur.ru/ke/candy-utils/commit/f230310))
|
|
16
|
+
|
|
17
|
+
<a name="2.130.1"></a>
|
|
18
|
+
## [2.130.1](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.130.0...release/tools/v2.130.1) (2022-03-29)
|
|
19
|
+
|
|
20
|
+
<a name="2.130.0"></a>
|
|
21
|
+
# [2.130.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.129.0...release/tools/v2.130.0) (2022-01-06)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* Применение изменений ресурсов форм без перезагрузки страницы ([3dec7b8](https://git.skbkontur.ru/ke/candy-utils/commit/3dec7b8))
|
|
27
|
+
|
|
1
28
|
<a name="2.129.0"></a>
|
|
2
29
|
# [2.129.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.128.0...release/tools/v2.129.0) (2021-12-10)
|
|
3
30
|
|
package/README.md
CHANGED
|
@@ -48,18 +48,18 @@ candy [имя-команды] [...опции]
|
|
|
48
48
|
|
|
49
49
|
Задаёт режим использования кэша сборки. Возможные значения:
|
|
50
50
|
disabled - не использовать кэш
|
|
51
|
-
readonly - использовать кэш для сборки, но не
|
|
51
|
+
readonly - использовать кэш для сборки, но не обновляет его (значение по умолчанию)
|
|
52
52
|
update - использовать кэш для сборки и презаписывать, если не совпадает
|
|
53
53
|
force-update - всегда выполнять сборку и обновить значения в кэше
|
|
54
54
|
Отключается при использовании watch-режима
|
|
55
55
|
|
|
56
56
|
* `--use-last-stable-version`
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Устанавливает версию движка в файла `form.json` в последнюю стабильную версию. Аналогичен запуску candy-build с параметром -ge master
|
|
59
59
|
|
|
60
60
|
* `--use-prerelease-version`
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
Устанавливает версию движка в файла form.json в последнюю пререлизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid.
|
|
63
63
|
|
|
64
64
|
* `--no-reformat`
|
|
65
65
|
|
|
@@ -67,7 +67,7 @@ candy [имя-команды] [...опции]
|
|
|
67
67
|
|
|
68
68
|
* `--gfvs (-g)`
|
|
69
69
|
|
|
70
|
-
Одна или несколько GFV или GFV-масок для
|
|
70
|
+
Одна или несколько GFV или GFV-масок для пересборки. Может содержать значки `?` и `*`.
|
|
71
71
|
|
|
72
72
|
* `--use-version-from-cache`
|
|
73
73
|
|
|
@@ -93,7 +93,7 @@ candy build 1?????
|
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
```
|
|
96
|
-
# Собрать форму 104816 и
|
|
96
|
+
# Собрать форму 104816 и следить за изменениями
|
|
97
97
|
candy build 104816 -w
|
|
98
98
|
```
|
|
99
99
|
|
|
@@ -104,7 +104,7 @@ candy build 104816 --use-prerelease-version bso
|
|
|
104
104
|
|
|
105
105
|
### Версионирование
|
|
106
106
|
|
|
107
|
-
При сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в
|
|
107
|
+
При сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в соответствии с [semver](https://semver.org/lang/ru/).
|
|
108
108
|
В этом случае будет выбрана последняя подходящая версия.
|
|
109
109
|
|
|
110
110
|
Файл form.json должен выглядеть следующим образом:
|
|
@@ -6,15 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.delay = delay;
|
|
7
7
|
exports.nextTick = nextTick;
|
|
8
8
|
|
|
9
|
-
(function () {
|
|
10
|
-
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
|
|
11
|
-
enterModule && enterModule(module);
|
|
12
|
-
})();
|
|
13
|
-
|
|
14
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
9
|
function delay(timeout) {
|
|
19
10
|
return new Promise(resolve => {
|
|
20
11
|
setTimeout(resolve, timeout);
|
|
@@ -26,24 +17,4 @@ function nextTick() {
|
|
|
26
17
|
setTimeout(resolve, 0);
|
|
27
18
|
});
|
|
28
19
|
}
|
|
29
|
-
|
|
30
|
-
;
|
|
31
|
-
|
|
32
|
-
(function () {
|
|
33
|
-
var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
|
|
34
|
-
|
|
35
|
-
if (!reactHotLoader) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
reactHotLoader.register(delay, "delay", "C:\\buildAgent\\work\\8df8f1edd755969c\\Common\\AsyncUtils.ts");
|
|
40
|
-
reactHotLoader.register(nextTick, "nextTick", "C:\\buildAgent\\work\\8df8f1edd755969c\\Common\\AsyncUtils.ts");
|
|
41
|
-
})();
|
|
42
|
-
|
|
43
|
-
;
|
|
44
|
-
|
|
45
|
-
(function () {
|
|
46
|
-
var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
|
|
47
|
-
leaveModule && leaveModule(module);
|
|
48
|
-
})();
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL0NvbW1vbi9Bc3luY1V0aWxzLnRzIl0sIm5hbWVzIjpbImRlbGF5IiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsIm5leHRUaWNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVNBLEtBQVQsQ0FBZUMsT0FBZixFQUErQztBQUNsRCxTQUFPLElBQUlDLE9BQUosQ0FBWUMsT0FBTyxJQUFJO0FBQzFCQyxJQUFBQSxVQUFVLENBQUNELE9BQUQsRUFBVUYsT0FBVixDQUFWO0FBQ0gsR0FGTSxDQUFQO0FBR0g7O0FBRU0sU0FBU0ksUUFBVCxHQUFtQztBQUN0QyxTQUFPLElBQUlILE9BQUosQ0FBWUMsT0FBTyxJQUFJO0FBQzFCQyxJQUFBQSxVQUFVLENBQUNELE9BQUQsRUFBVSxDQUFWLENBQVY7QUFDSCxHQUZNLENBQVA7QUFHSDs7Ozs7Ozs7Ozs7MEJBVmVILEs7MEJBTUFLLFEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVsYXkodGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXQpO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV4dFRpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDApO1xuICAgIH0pO1xufVxuIl19
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL0NvbW1vbi9Bc3luY1V0aWxzLnRzIl0sIm5hbWVzIjpbImRlbGF5IiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsIm5leHRUaWNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFPLFNBQVNBLEtBQVQsQ0FBZUMsT0FBZixFQUErQztBQUNsRCxTQUFPLElBQUlDLE9BQUosQ0FBWUMsT0FBTyxJQUFJO0FBQzFCQyxJQUFBQSxVQUFVLENBQUNELE9BQUQsRUFBVUYsT0FBVixDQUFWO0FBQ0gsR0FGTSxDQUFQO0FBR0g7O0FBRU0sU0FBU0ksUUFBVCxHQUFtQztBQUN0QyxTQUFPLElBQUlILE9BQUosQ0FBWUMsT0FBTyxJQUFJO0FBQzFCQyxJQUFBQSxVQUFVLENBQUNELE9BQUQsRUFBVSxDQUFWLENBQVY7QUFDSCxHQUZNLENBQVA7QUFHSCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBkZWxheSh0aW1lb3V0OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZW91dCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0VGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgMCk7XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -19,14 +19,7 @@ var _IsBuffer = require("./IsBuffer");
|
|
|
19
19
|
|
|
20
20
|
var _DigestApiClient = require("./DigestApiClient/DigestApiClient");
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
|
|
24
|
-
enterModule && enterModule(module);
|
|
25
|
-
})();
|
|
26
|
-
|
|
27
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
28
|
-
return a;
|
|
29
|
-
};
|
|
22
|
+
var _FufSizeTooLargeError = require("./Types/DraftActions/FufSizeTooLargeError");
|
|
30
23
|
|
|
31
24
|
const strangeOptions = {
|
|
32
25
|
src: "changeSet",
|
|
@@ -129,12 +122,6 @@ class CandyApiClient {
|
|
|
129
122
|
return await this.httpClient.get("v1/features/flags").json();
|
|
130
123
|
}
|
|
131
124
|
|
|
132
|
-
// @ts-ignore
|
|
133
|
-
__reactstandin__regenerateByEval(key, code) {
|
|
134
|
-
// @ts-ignore
|
|
135
|
-
this[key] = eval(code);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
125
|
}
|
|
139
126
|
|
|
140
127
|
exports.CandyApiClient = CandyApiClient;
|
|
@@ -258,6 +245,14 @@ class CandyApiDraftClient {
|
|
|
258
245
|
}).withJsonBody(rules).json();
|
|
259
246
|
}
|
|
260
247
|
|
|
248
|
+
getPartialInnerAsJsonTree(rules, maxInstanceCount) {
|
|
249
|
+
return this.httpClient.post(this.getDraftUrl("get-partial-inner")).withQueryParams(maxInstanceCount != undefined && {
|
|
250
|
+
maxInstanceCount: maxInstanceCount.toString()
|
|
251
|
+
}).withQueryParams({
|
|
252
|
+
format: "JsonTree"
|
|
253
|
+
}).withJsonBody(rules).json();
|
|
254
|
+
}
|
|
255
|
+
|
|
261
256
|
async getExplanatoryNote() {
|
|
262
257
|
return await this.httpClient.get(this.getDraftPresentationUrl(_DraftPresentationType.DraftPresentationType.explanatoryNote)).json();
|
|
263
258
|
}
|
|
@@ -334,12 +329,22 @@ class CandyApiDraftClient {
|
|
|
334
329
|
const response = await this.httpClient.get(`v1/files/prepare-and-get-properties`).withQueryParams({
|
|
335
330
|
gfv: gfv,
|
|
336
331
|
driveUri: driveUri
|
|
337
|
-
}).acceptCode(400);
|
|
332
|
+
}).acceptCode(400).acceptCode(413);
|
|
338
333
|
|
|
339
334
|
if (response.status === 400) {
|
|
340
335
|
return undefined;
|
|
341
336
|
}
|
|
342
337
|
|
|
338
|
+
if (response.status === 413) {
|
|
339
|
+
const errorData = await response.json();
|
|
340
|
+
|
|
341
|
+
if (errorData.errorCode === "FufSizeTooLarge") {
|
|
342
|
+
throw new _FufSizeTooLargeError.FufSizeTooLargeError(errorData.message);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
throw new _HttpClient.HttpError(errorData.message, response.status);
|
|
346
|
+
}
|
|
347
|
+
|
|
343
348
|
return await response.json();
|
|
344
349
|
}
|
|
345
350
|
|
|
@@ -362,6 +367,18 @@ class CandyApiDraftClient {
|
|
|
362
367
|
return await response.json();
|
|
363
368
|
}
|
|
364
369
|
|
|
370
|
+
async multipleCombineFufByDriveUri(driveUris, combineMethod) {
|
|
371
|
+
const response = await this.httpClient.post(this.getDraftUrl("transfer/combine-with-fufs")).withQueryParams({
|
|
372
|
+
combineMethod: combineMethod
|
|
373
|
+
}).withJsonBody(driveUris);
|
|
374
|
+
|
|
375
|
+
if (response.status === 400) {
|
|
376
|
+
return undefined;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
return await response.json();
|
|
380
|
+
}
|
|
381
|
+
|
|
365
382
|
async normalizeByRules(rules) {
|
|
366
383
|
await this.httpClient.post(this.getDraftUrl("normalize")).withJsonBody(rules);
|
|
367
384
|
}
|
|
@@ -378,33 +395,33 @@ class CandyApiDraftClient {
|
|
|
378
395
|
return this.getDraftUrl(`presentations/${presentationType.toString()}`);
|
|
379
396
|
}
|
|
380
397
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
398
|
+
async setAllCheckboxesFor113103(enabled) {
|
|
399
|
+
const uri = this.getDraftUrl("inner/check-all");
|
|
400
|
+
await this.httpClient.patch(uri).withQueryParams({
|
|
401
|
+
setEnabled: enabled
|
|
402
|
+
});
|
|
385
403
|
}
|
|
386
404
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
;
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
return;
|
|
405
|
+
async searchInstancesByText(text, pathsPrefix, pathsToSearch, maxInstanceCount) {
|
|
406
|
+
const maxInstanceCountParams = maxInstanceCount != undefined ? {
|
|
407
|
+
maxInstanceCount: maxInstanceCount
|
|
408
|
+
} : {};
|
|
409
|
+
const params = {
|
|
410
|
+
searchString: text,
|
|
411
|
+
pathsPrefix: pathsPrefix,
|
|
412
|
+
...maxInstanceCountParams
|
|
413
|
+
};
|
|
414
|
+
return this.httpClient.post(this.getDraftUrl("inner/search-by-string")).withQueryParams(params).withJsonBody(pathsToSearch).json();
|
|
397
415
|
}
|
|
398
416
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
}
|
|
417
|
+
async customNormalize(normalizerId, pathPrefixes) {
|
|
418
|
+
const params = {
|
|
419
|
+
normalizerId: normalizerId
|
|
420
|
+
};
|
|
421
|
+
await this.httpClient.post(this.getDraftUrl("inner/custom-normalize")).withQueryParams(params).withJsonBody(pathPrefixes);
|
|
422
|
+
}
|
|
403
423
|
|
|
404
|
-
|
|
424
|
+
}
|
|
405
425
|
|
|
406
|
-
|
|
407
|
-
var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
|
|
408
|
-
leaveModule && leaveModule(module);
|
|
409
|
-
})();
|
|
410
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DYW5keUFwaUNsaWVudC50cyJdLCJuYW1lcyI6WyJzdHJhbmdlT3B0aW9ucyIsInNyYyIsImRhdGFWZXJzaW9uIiwiQ2FuZHlBcGlDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImh0dHBDbGllbnQiLCJIdHRwQ2xpZW50IiwiZm9yRHJhZnQiLCJkcmFmdEZ1bGxJZCIsIkNhbmR5QXBpRHJhZnRDbGllbnQiLCJjcmVhdGVEaWdlc3RBcGlDbGllbnQiLCJEaWdlc3RBcGlDbGllbnQiLCJnZXRJbmZvQnlJbm5zIiwiaW5ucyIsInBhdGhzIiwibWFwIiwiaW5uIiwicmVzcG9uc2UiLCJwb3N0IiwiZ2V0RHJhZnRVcmwiLCJ3aXRoSnNvbkJvZHkiLCJqc29uIiwicmVzdWx0IiwiaW5uU2VydmVyVmFsdWUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImVycm9yIiwiZXJyb3JDb2RlIiwiRm9jdXNTZXJ2ZXJFcnJvckNvZGUiLCJOb0lubkVycm9yIiwiZ2V0QWxsR2Z2cyIsImFib3J0U2lnbmFsIiwiYm9keSIsImdldCIsIk9iamVjdCIsImtleXMiLCJmb3JtcyIsImNyZWF0ZURyYWZ0RnJvbURyaXZlIiwibnMiLCJmdWZEcml2ZVVyaSIsIndpdGhRdWVyeVBhcmFtcyIsIndpdGhBYm9ydFNpZ25hbCIsImNyZWF0ZUVtcHR5RHJhZnQiLCJnZnYiLCJjcmVhdGVEcmFmdCIsImZ1ZkNvbnRlbnQiLCJ3aXRoQ29udGVudFR5cGUiLCJ3aXRoQm9keUZyb21CdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiRXJyb3IiLCJjaGVja0FsaXZlIiwiZHJhZnRSZWxhdGVkVXJsIiwiZHJhZnRJZCIsImdldEZlYXR1cmVGbGFncyIsImdldEhyZWZUb0lubmVyRWRpdG9yIiwidXJsIiwiZ2V0SHJlZkRvd25sb2FkRnVmIiwiZ2V0SHJlZlRvQ29udmVydGF0aW9uTG9nIiwiZ2V0SHJlZlRvRG93bmxvYWRJbm5lckZ1ZiIsImdldEhyZWZEb3dubG9hZERyYWZ0UHJlc2VudGF0aW9uIiwiRHJhZnRQcmVzZW50YXRpb25UeXBlIiwiaW5uZXJGdWYiLCJnZXRIcmVmVG9Eb3dubG9hZENsaWVudEluZm8iLCJjbGllbnRJbmZvIiwiZ2V0SHJlZlRvRG93bmxvYWRGb3Jtc0NsaWVudEluZm8iLCJmb3Jtc0NsaWVudEluZm8iLCJnZXRIcmVmRG93bmxvYWRJbm5lciIsImlubmVyIiwiZ2V0RXJyb3JMb2ciLCJnZXREcmFmdFByZXNlbnRhdGlvblVybCIsImVycm9yTG9nIiwiZ2V0VGFza0J5SWQiLCJ0YXNrSWQiLCJ0YXNrcyIsImdldEFsbFRhc2tzIiwidmFsdWVzIiwieCIsImVucXVldWVUYXNrIiwidGFza0luZm8iLCJhZGRlZCIsImNoYW5nZWQiLCJpZCIsInJlbW92ZWQiLCJjYW5jZWxUYXNrIiwiZ2V0RXhwZXJ0RXJyb3JMb2ciLCJlcnJvcmxvZ0V4cGVydCIsImdldEhyZWZUb0Vycm9yTG9nUGRmIiwiZXJyb3JMb2dOYW1lIiwicHJvcHNOYW1lIiwicHJvcHNEcml2ZU5hbWUiLCJjbGVhckRyYWZ0IiwiY29udmVydERyYWZ0RnJvbVByZXZHZnYiLCJwcmV2R2Z2RHJhZnRJZCIsInNlbmRDaGFuZ2VTZXQiLCJkYXRhIiwic2VuZENoYW5nZVNldFN5bmMiLCJwb3N0U3luYyIsImdldFJlcXVpc2l0ZXMiLCJyZXF1aXNpdGVMaXN0IiwiZ2V0SW5uZXIiLCJnZXRQYXJ0aWFsSW5uZXIiLCJydWxlcyIsIm1heEluc3RhbmNlQ291bnQiLCJ0b1N0cmluZyIsImdldEV4cGxhbmF0b3J5Tm90ZSIsImV4cGxhbmF0b3J5Tm90ZSIsImdldEF0dGFjaG1lbnRCeUlkIiwiYXR0YWNobWVudElkIiwiZ2V0QWxsQXR0YWNobWVudHMiLCJyZW1vdmVBdHRhY2htZW50cyIsImF0dGFjaG1lbnRJZHMiLCJjcmVhdGVPclVwZGF0ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudHMiLCJhdHRhY2htZW50IiwiY29udGVudFVyaSIsIm1ldGEiLCJzZXRQcmVzZW50YXRpb24iLCJwcmVzZW50YXRpb25UeXBlIiwiY29udGVudCIsInJlcXVlc3QiLCJwdXQiLCJ3aXRoUmF3Qm9keSIsInBhdGNoUHJlc2VudGF0aW9uIiwicHJlc2VudGF0aW9uQ29udGVudCIsInBhdGNoIiwiZ2V0RmlsZVByb3BlcnRpZXMiLCJkcml2ZVVyaSIsImFjY2VwdENvZGUiLCJzdGF0dXMiLCJwcmVwYXJlQW5kR2V0RmlsZVByb3BlcnRpZXMiLCJzZXRGdWZCeURyaXZlVXJpIiwiY29tYmluZUZ1ZkJ5RHJpdmVVcmkiLCJjb21iaW5lTWV0aG9kIiwibm9ybWFsaXplQnlSdWxlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUVBOztBQVdBOztBQUVBOztBQVFBOztBQUdBOzs7Ozs7Ozs7OztBQUdBLE1BQU1BLGNBQWMsR0FBRztBQUFFQyxFQUFBQSxHQUFHLEVBQUUsV0FBUDtBQUFvQkMsRUFBQUEsV0FBVyxFQUFFO0FBQWpDLENBQXZCOztBQUVPLE1BQU1DLGNBQU4sQ0FBZ0Q7QUFHNUNDLEVBQUFBLFdBQVcsQ0FDZEMsU0FEYyxFQUVkQyxPQUZjLEVBR2RDLFlBSGMsRUFJZEMsY0FKYyxFQUtoQjtBQUFBLFNBUGVDLFVBT2Y7QUFDRSxTQUFLQSxVQUFMLEdBQWtCLElBQUlDLHNCQUFKLENBQWVMLFNBQWYsRUFBMEJDLE9BQTFCLEVBQW1DLHNEQUE2QkUsY0FBN0IsQ0FBbkMsRUFBaUY7QUFDL0ZELE1BQUFBLFlBQVksRUFBRUE7QUFEaUYsS0FBakYsQ0FBbEI7QUFHSDs7QUFFTUksRUFBQUEsUUFBUSxDQUFDQyxXQUFELEVBQWlEO0FBQzVELFdBQU8sSUFBSUMsbUJBQUosQ0FBd0IsS0FBS0osVUFBN0IsRUFBeUNHLFdBQXpDLENBQVA7QUFDSDs7QUFFTUUsRUFBQUEscUJBQXFCLENBQUNGLFdBQUQsRUFBNkM7QUFDckUsV0FBTyxJQUFJRyxnQ0FBSixDQUFvQixLQUFLTixVQUF6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cEIsQ0FBUDtBQUNIOztBQUVPbkcsRUFBQUEsV0FBVyxDQUFDaUMsZUFBRCxFQUFrQztBQUNqRCxXQUFRLFNBQVEsS0FBSzVDLFdBQUwsQ0FBaUI4QixFQUFHLFdBQVUsS0FBSzlCLFdBQUwsQ0FBaUI2QyxPQUFRLElBQUdELGVBQWdCLEVBQTFGO0FBQ0g7O0FBRU9rQixFQUFBQSx1QkFBdUIsQ0FBQ2dELGdCQUFELEVBQWtEO0FBQzdFLFdBQU8sS0FBS25HLFdBQUwsQ0FBa0IsaUJBQWdCbUcsZ0JBQWdCLENBQUNkLFFBQWpCLEVBQTRCLEVBQTlELENBQVA7QUFDSDs7QUE3UTREO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7Ozs7Ozs7Ozs7OzswQkF4SDNENUcsYzswQkFFT0csYzswQkFzSEFVLG1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBGZXRjaCB9IGZyb20gXCIuLi9IdHRwQ2xpZW50L0ZldGNoSW1wbGVtZW50YXRpb24vRmV0Y2hcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9IdHRwQ2xpZW50XCI7XG5pbXBvcnQgeyBIdHRwU3RhdHVzQ29kZSwgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5cbmltcG9ydCB7IElDYW5keUFwaUNsaWVudCwgSUNhbmR5QXBpRHJhZnRDbGllbnQgfSBmcm9tIFwiLi9JQ2FuZHlBcGlDbGllbnRcIjtcbmltcG9ydCB7IFNlcnZlckVycm9yTG9nIH0gZnJvbSBcIi4vVHlwZXMvRXJyb3JMb2cvU2VydmVyRXJyb3JMb2dcIjtcbmltcG9ydCB7IFNlcnZlcklubmVyUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9HZXRJbm5lci9TZXJ2ZXJJbm5lclJlc3BvbnNlXCI7XG5pbXBvcnQgeyBGaWxlUHJvcGVydGllcyB9IGZyb20gXCIuL1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllc1wiO1xuaW1wb3J0IHsgQ3JlYXRlRHJhZnRSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0NyZWF0ZURyYWZ0L0NyZWF0ZURyYWZ0UmVzcG9uc2VcIjtcbmltcG9ydCB7IENyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvRXhwbGFuYXRvcnlOb3RlL0NyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlXCI7XG5pbXBvcnQgeyBEcmFmdEZ1bGxJZCB9IGZyb20gXCIuL1R5cGVzL0RyYWZ0RnVsbElkXCI7XG5pbXBvcnQgeyBTZXJ2ZXJDaGFuZ2VTZXQgfSBmcm9tIFwiLi9UeXBlcy9DaGFuZ2VTZXQvU2VydmVyQ2hhbmdlU2V0XCI7XG5pbXBvcnQgeyBTZXJ2ZXJUYXNrLCBWZXJpZnlBbmRGaXhGbnNSZXF1aXJlbWVudHNUYXNrSW5mbyB9IGZyb20gXCIuL1R5cGVzL1Rhc2tzL1Rhc2tzXCI7XG5pbXBvcnQgeyBGb2N1c1NlcnZlckVycm9yQ29kZSwgR2V0QnlJbm5SZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0ZvY3VzL0ZvY3VzVHlwZXNcIjtcbmltcG9ydCB7IEF0dGFjaEluZm8gfSBmcm9tIFwiLi9UeXBlcy9BdHRhY2htZW50cy9BdHRhY21lbnRzXCI7XG5pbXBvcnQgeyBEcmFmdFByZXNlbnRhdGlvblR5cGUgfSBmcm9tIFwiLi9UeXBlcy9QcmVzZW50YXRpb25zL0RyYWZ0UHJlc2VudGF0aW9uVHlwZVwiO1xuaW1wb3J0IHsgUHJlc2VudGF0aW9uQ29udGVudCB9IGZyb20gXCIuL1R5cGVzL1ByZXNlbnRhdGlvbnMvUHJlc2VudGF0aW9uQ29udGVudFwiO1xuaW1wb3J0IHsgQ29udmVydERyYWZ0UmVxdWVzdCB9IGZyb20gXCIuL1R5cGVzL0RyYWZ0QWN0aW9ucy9Db252ZXJ0RHJhZnRSZXF1ZXN0XCI7XG5pbXBvcnQgeyBHZXRBdHRhY2htZW50c1Jlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvQXR0YWNobWVudHMvR2V0QXR0YWNobWVudHNSZXNwb25zZVwiO1xuaW1wb3J0IHsgRm9jdXNTZXJ2ZXJSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0ZvY3VzL0ZvY3VzU2VydmVyUmVzcG9uc2VcIjtcbmltcG9ydCB7IEdldFRhc2tzU2VydmVyUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9UYXNrcy9HZXRUYXNrc1NlcnZlclJlc3BvbnNlXCI7XG5pbXBvcnQgeyBEaWFnUmVzb3VyY2VzUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9EaWFnUmVzb3VyY2VzUmVzcG9uc2VcIjtcbmltcG9ydCB7IFNlcnZlclJlcXVpc2l0ZXNSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0dldElubmVyL1NlcnZlclJlcXVpc2l0ZXNSZXNwb25zZVwiO1xuaW1wb3J0IHsgaXNCdWZmZXIgfSBmcm9tIFwiLi9Jc0J1ZmZlclwiO1xuaW1wb3J0IHsgQ29tYmluZUZ1ZlJlc3VsdCwgRnVmQ29tYmluZU1ldGhvZCB9IGZyb20gXCIuL1R5cGVzL0RyYWZ0QWN0aW9ucy9Db21iaW5lRnVmUmVzdWx0XCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ3NSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0ZlYXR1cmVGbGFncy9GZWF0dXJlRmxhZ3NSZXNwb25zZVwiO1xuaW1wb3J0IHsgRGlnZXN0QXBpQ2xpZW50IH0gZnJvbSBcIi4vRGlnZXN0QXBpQ2xpZW50L0RpZ2VzdEFwaUNsaWVudFwiO1xuaW1wb3J0IHsgSURpZ2VzdEFwaUNsaWVudCB9IGZyb20gXCIuL0RpZ2VzdEFwaUNsaWVudC9JRGlnZXN0QXBpQ2xpZW50XCI7XG5cbmNvbnN0IHN0cmFuZ2VPcHRpb25zID0geyBzcmM6IFwiY2hhbmdlU2V0XCIsIGRhdGFWZXJzaW9uOiBcIjBcIiB9O1xuXG5leHBvcnQgY2xhc3MgQ2FuZHlBcGlDbGllbnQgaW1wbGVtZW50cyBJQ2FuZHlBcGlDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSUh0dHBDbGllbnQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2Vab25lOiB1bmRlZmluZWQgfCBzdHJpbmcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uOiB1bmRlZmluZWQgfCBBdXRoZW50aWNhdGlvbk1vZGVcbiAgICApIHtcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQoZmV0Y2hJbXBsLCBiYXNlVXJsLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyKGF1dGhlbnRpY2F0aW9uKSwge1xuICAgICAgICAgICAgcmVzb3VyY2Vab25lOiByZXNvdXJjZVpvbmUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JEcmFmdChkcmFmdEZ1bGxJZDogRHJhZnRGdWxsSWQpOiBJQ2FuZHlBcGlEcmFmdENsaWVudCB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FuZHlBcGlEcmFmdENsaWVudCh0aGlzLmh0dHBDbGllbnQsIGRyYWZ0RnVsbElkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRGlnZXN0QXBpQ2xpZW50KGRyYWZ0RnVsbElkOiBEcmFmdEZ1bGxJZCk6IElEaWdlc3RBcGlDbGllbnQge1xuICAgICAgICByZXR1cm4gbmV3IERpZ2VzdEFwaUNsaWVudCh0aGlzLmh0dHBDbGllbnQsIGRyYWZ0RnVsbElkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0SW5mb0J5SW5ucyhkcmFmdEZ1bGxJZDogRHJhZnRGdWxsSWQsIGlubnM6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTxHZXRCeUlublJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHBhdGhzID0gaW5ucy5tYXAoaW5uID0+IGBAZm9jdXMvJHtpbm59YCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKGRyYWZ0RnVsbElkLCBcImdldC1pbm5lclwiKSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkocGF0aHMpXG4gICAgICAgICAgICAuanNvbjxGb2N1c1NlcnZlclJlc3BvbnNlPigpO1xuICAgICAgICBjb25zdCByZXN1bHQ6IEdldEJ5SW5uUmVzcG9uc2UgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBpbm4gb2YgaW5ucykge1xuICAgICAgICAgICAgY29uc3QgaW5uU2VydmVyVmFsdWUgPSByZXNwb25zZVtgQGZvY3VzLyR7aW5ufWBdPy52YWx1ZTtcbiAgICAgICAgICAgIGlmIChpbm5TZXJ2ZXJWYWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbaW5uXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IFwiU2VydmVyIGRvZXMgbm90IHJldHVybiBpbm4gaW5mb1wiLFxuICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGU6IEZvY3VzU2VydmVyRXJyb3JDb2RlLk5vSW5uRXJyb3IsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2lubl0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpbm5TZXJ2ZXJWYWx1ZS52YWx1ZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZTogaW5uU2VydmVyVmFsdWUuZXJyb3JDb2RlID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGlublNlcnZlclZhbHVlLmVycm9yID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEdmdnMoYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudC5nZXQoYHYxL2RpYWcvcmVzb3VyY2VzYCkuanNvbjxEaWFnUmVzb3VyY2VzUmVzcG9uc2U+KCk7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhib2R5LmZvcm1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlRHJhZnRGcm9tRHJpdmUoXG4gICAgICAgIG5zOiBzdHJpbmcsXG4gICAgICAgIGZ1ZkRyaXZlVXJpOiBzdHJpbmcsXG4gICAgICAgIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWxcbiAgICApOiBQcm9taXNlPENyZWF0ZURyYWZ0UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QoYHYxL25zLyR7bnN9L2NyZWF0ZS1kcmFmdC1mcm9tLWRyaXZlYClcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoe1xuICAgICAgICAgICAgICAgIG5zOiBucyxcbiAgICAgICAgICAgICAgICBmdWZEcml2ZVVyaTogZnVmRHJpdmVVcmksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLndpdGhBYm9ydFNpZ25hbChhYm9ydFNpZ25hbClcbiAgICAgICAgICAgIC5qc29uPENyZWF0ZURyYWZ0UmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZUVtcHR5RHJhZnQobnM6IHN0cmluZywgZ2Z2OiBzdHJpbmcsIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPENyZWF0ZURyYWZ0UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QoYHYxL25zLyR7bnN9L2NyZWF0ZS1kcmFmdGApXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZ2Z2OiBnZnYgfSlcbiAgICAgICAgICAgIC53aXRoQWJvcnRTaWduYWwoYWJvcnRTaWduYWwpXG4gICAgICAgICAgICAuanNvbjxDcmVhdGVEcmFmdFJlc3BvbnNlPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEcmFmdChuczogc3RyaW5nLCBnZnY6IHN0cmluZyk6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT47XG4gICAgcHVibGljIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogdW5kZWZpbmVkLCBmdWZDb250ZW50OiBCdWZmZXIpOiBQcm9taXNlPENyZWF0ZURyYWZ0UmVzcG9uc2U+O1xuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVEcmFmdChuczogc3RyaW5nLCBnZnY6IHVuZGVmaW5lZCB8IHN0cmluZywgZnVmQ29udGVudD86IEJ1ZmZlcik6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT4ge1xuICAgICAgICBpZiAoZ2Z2ID09IHVuZGVmaW5lZCAmJiBmdWZDb250ZW50ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgICAgIC5wb3N0KGB2MS9ucy8ke25zfS9jcmVhdGUtZHJhZnRgKVxuICAgICAgICAgICAgICAgIC53aXRoQ29udGVudFR5cGUoXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIilcbiAgICAgICAgICAgICAgICAud2l0aEJvZHlGcm9tQnVmZmVyKGZ1ZkNvbnRlbnQpXG4gICAgICAgICAgICAgICAgLmpzb248Q3JlYXRlRHJhZnRSZXNwb25zZT4oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2Z2ICE9IHVuZGVmaW5lZCAmJiBmdWZDb250ZW50ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgICAgIC5wb3N0KGB2MS9ucy8ke25zfS9jcmVhdGUtZHJhZnRgKVxuICAgICAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoeyBnZnY6IGdmdiB9KVxuICAgICAgICAgICAgICAgIC53aXRoQ29udGVudFR5cGUoXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIilcbiAgICAgICAgICAgICAgICAud2l0aEJvZHlGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKFtdKSlcbiAgICAgICAgICAgICAgICAuanNvbjxDcmVhdGVEcmFmdFJlc3BvbnNlPigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChnZnYgPT0gdW5kZWZpbmVkICYmIGZ1ZkNvbnRlbnQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY3JlYXRlIGRyYWZ0OiBubyBnZnYgYW5kIG5vIGZ1ZiBzcGVjaWZpZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QoYHYxL25zLyR7bnN9L2NyZWF0ZS1kcmFmdGApXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZ2Z2OiBnZnYgfSlcbiAgICAgICAgICAgIC53aXRoQ29udGVudFR5cGUoXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIilcbiAgICAgICAgICAgIC53aXRoQm9keUZyb21CdWZmZXIoZnVmQ29udGVudClcbiAgICAgICAgICAgIC5qc29uPENyZWF0ZURyYWZ0UmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNoZWNrQWxpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudC5nZXQoYF9zdGF0dXMvcGluZ2ApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RHJhZnRVcmwoZHJhZnRGdWxsSWQ6IERyYWZ0RnVsbElkLCBkcmFmdFJlbGF0ZWRVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgdjEvbnMvJHtkcmFmdEZ1bGxJZC5uc30vZHJhZnRzLyR7ZHJhZnRGdWxsSWQuZHJhZnRJZH0vJHtkcmFmdFJlbGF0ZWRVcmx9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RmVhdHVyZUZsYWdzKCk6IFByb21pc2U8RmVhdHVyZUZsYWdzUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudC5nZXQoXCJ2MS9mZWF0dXJlcy9mbGFnc1wiKS5qc29uPEZlYXR1cmVGbGFnc1Jlc3BvbnNlPigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbmR5QXBpRHJhZnRDbGllbnQgaW1wbGVtZW50cyBJQ2FuZHlBcGlEcmFmdENsaWVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBJSHR0cENsaWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRyYWZ0RnVsbElkOiBEcmFmdEZ1bGxJZDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihodHRwQ2xpZW50OiBJSHR0cENsaWVudCwgZHJhZnRGdWxsSWQ6IERyYWZ0RnVsbElkKSB7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudCA9IGh0dHBDbGllbnQ7XG4gICAgICAgIHRoaXMuZHJhZnRGdWxsSWQgPSBkcmFmdEZ1bGxJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvSW5uZXJFZGl0b3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC51cmwoYGlubmVyLWVkaXRvci9ucy8ke3RoaXMuZHJhZnRGdWxsSWQubnN9L2RyYWZ0cy8ke3RoaXMuZHJhZnRGdWxsSWQuZHJhZnRJZH1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZkRvd25sb2FkRnVmKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQudXJsKHRoaXMuZ2V0RHJhZnRVcmwoXCJnZXQtZnVmXCIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvQ29udmVydGF0aW9uTG9nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQudXJsKHRoaXMuZ2V0RHJhZnRVcmwoXCJjb252ZXJzaW9uXCIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvRG93bmxvYWRJbm5lckZ1ZigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIcmVmRG93bmxvYWREcmFmdFByZXNlbnRhdGlvbihEcmFmdFByZXNlbnRhdGlvblR5cGUuaW5uZXJGdWYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Eb3dubG9hZENsaWVudEluZm8oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SHJlZkRvd25sb2FkRHJhZnRQcmVzZW50YXRpb24oRHJhZnRQcmVzZW50YXRpb25UeXBlLmNsaWVudEluZm8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Eb3dubG9hZEZvcm1zQ2xpZW50SW5mbygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIcmVmRG93bmxvYWREcmFmdFByZXNlbnRhdGlvbihEcmFmdFByZXNlbnRhdGlvblR5cGUuZm9ybXNDbGllbnRJbmZvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZkRvd25sb2FkSW5uZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SHJlZkRvd25sb2FkRHJhZnRQcmVzZW50YXRpb24oRHJhZnRQcmVzZW50YXRpb25UeXBlLmlubmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RXJyb3JMb2coKTogUHJvbWlzZTxTZXJ2ZXJFcnJvckxvZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5lcnJvckxvZykpLmpzb248U2VydmVyRXJyb3JMb2c+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFRhc2tCeUlkKHRhc2tJZDogc3RyaW5nKTogUHJvbWlzZTxTZXJ2ZXJUYXNrIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IHRhc2tzID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LWlubmVyXCIpKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShbYEB0YXNrLypgXSlcbiAgICAgICAgICAgIC5qc29uPEdldFRhc2tzU2VydmVyUmVzcG9uc2U+KCk7XG4gICAgICAgIHJldHVybiB0YXNrc1tgQHRhc2svJHt0YXNrSWR9YF0/LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxUYXNrcygpOiBQcm9taXNlPFNlcnZlclRhc2tbXT4ge1xuICAgICAgICBjb25zdCB0YXNrcyA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcImdldC1pbm5lclwiKSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkoW2BAdGFzay8qYF0pXG4gICAgICAgICAgICAuanNvbjxHZXRUYXNrc1NlcnZlclJlc3BvbnNlPigpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0YXNrcykubWFwKHggPT4geC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGVucXVldWVUYXNrKHRhc2tJZDogc3RyaW5nLCB0YXNrSW5mbzogVmVyaWZ5QW5kRml4Rm5zUmVxdWlyZW1lbnRzVGFza0luZm8pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5pbm5lcikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHN0cmFuZ2VPcHRpb25zKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keSh7XG4gICAgICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgICAgIGNoYW5nZWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgW2BAdGFzay8ke3Rhc2tJZH1gXToge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGFza0luZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdGFza0lkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVtb3ZlZDogW10sXG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2FuY2VsVGFzayh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwoRHJhZnRQcmVzZW50YXRpb25UeXBlLmlubmVyKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoc3RyYW5nZU9wdGlvbnMpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHtcbiAgICAgICAgICAgICAgICBhZGRlZDogW10sXG4gICAgICAgICAgICAgICAgY2hhbmdlZDoge30sXG4gICAgICAgICAgICAgICAgcmVtb3ZlZDogW2BAdGFzay8ke3Rhc2tJZH1gXSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFeHBlcnRFcnJvckxvZygpOiBQcm9taXNlPFNlcnZlckVycm9yTG9nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQodGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChEcmFmdFByZXNlbnRhdGlvblR5cGUuZXJyb3Jsb2dFeHBlcnQpKVxuICAgICAgICAgICAgLmpzb248U2VydmVyRXJyb3JMb2c+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0Vycm9yTG9nUGRmKGVycm9yTG9nTmFtZTogc3RyaW5nLCBwcm9wc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQudXJsKHRoaXMuZ2V0RHJhZnRVcmwoXCJwcmVzZW50YXRpb25zL2Vycm9yTG9nL3ByaW50XCIpLCB7XG4gICAgICAgICAgICBlcnJvckxvZ05hbWU6IGVycm9yTG9nTmFtZSxcbiAgICAgICAgICAgIHByb3BzRHJpdmVOYW1lOiBwcm9wc05hbWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjbGVhckRyYWZ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiY2xlYXJcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjb252ZXJ0RHJhZnRGcm9tUHJldkdmdih7IHByZXZHZnZEcmFmdElkLCBnZnYgfTogQ29udmVydERyYWZ0UmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiY29udmVydFwiKSkud2l0aFF1ZXJ5UGFyYW1zKHtcbiAgICAgICAgICAgIGlkOiBwcmV2R2Z2RHJhZnRJZCxcbiAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VuZENoYW5nZVNldChkYXRhOiBTZXJ2ZXJDaGFuZ2VTZXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5pbm5lcikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHN0cmFuZ2VPcHRpb25zKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VuZENoYW5nZVNldFN5bmMoZGF0YTogU2VydmVyQ2hhbmdlU2V0KTogSHR0cFN0YXR1c0NvZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3RTeW5jKFxuICAgICAgICAgICAgdGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChEcmFmdFByZXNlbnRhdGlvblR5cGUuaW5uZXIpLFxuICAgICAgICAgICAgc3RyYW5nZU9wdGlvbnMsXG4gICAgICAgICAgICBkYXRhXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFJlcXVpc2l0ZXMocmVxdWlzaXRlTGlzdDogcmVhZG9ubHkgc3RyaW5nW10pOiBQcm9taXNlPFNlcnZlclJlcXVpc2l0ZXNSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LWlubmVyXCIpKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShyZXF1aXNpdGVMaXN0KVxuICAgICAgICAgICAgLmpzb248U2VydmVyUmVxdWlzaXRlc1Jlc3BvbnNlPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRJbm5lcihwYXRoczogdW5kZWZpbmVkIHwgcmVhZG9ubHkgc3RyaW5nW10pOiBQcm9taXNlPFNlcnZlcklubmVyUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcImdldC1pbm5lclwiKSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkocGF0aHMpXG4gICAgICAgICAgICAuanNvbjxTZXJ2ZXJJbm5lclJlc3BvbnNlPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJ0aWFsSW5uZXIocnVsZXM6IFtcIipcIl0gfCBzdHJpbmdbXSwgbWF4SW5zdGFuY2VDb3VudD86IG51bWJlcik6IFByb21pc2U8U2VydmVySW5uZXJSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LXBhcnRpYWwtaW5uZXJcIikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKG1heEluc3RhbmNlQ291bnQgIT0gdW5kZWZpbmVkICYmIHsgbWF4SW5zdGFuY2VDb3VudDogbWF4SW5zdGFuY2VDb3VudC50b1N0cmluZygpIH0pXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHJ1bGVzKVxuICAgICAgICAgICAgLmpzb248U2VydmVySW5uZXJSZXNwb25zZT4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RXhwbGFuYXRvcnlOb3RlKCk6IFByb21pc2U8Q3JlYXRlRXhwbGFuYXRvcnlOb3RlUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5leHBsYW5hdG9yeU5vdGUpKVxuICAgICAgICAgICAgLmpzb248Q3JlYXRlRXhwbGFuYXRvcnlOb3RlUmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEF0dGFjaG1lbnRCeUlkKGF0dGFjaG1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxBdHRhY2hJbmZvPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcImdldC1pbm5lclwiKSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkoW2BAYXR0YWNobWVudC8ke2F0dGFjaG1lbnRJZH1gXSlcbiAgICAgICAgICAgIC5qc29uPEdldEF0dGFjaG1lbnRzUmVzcG9uc2U+KCk7XG4gICAgICAgIHJldHVybiByZXN1bHRbYEBhdHRhY2htZW50LyR7YXR0YWNobWVudElkfWBdPy52YWx1ZSA/PyByZWplY3QoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQXR0YWNobWVudHMoKTogUHJvbWlzZTxBdHRhY2hJbmZvW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LWlubmVyXCIpKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShbYEBhdHRhY2htZW50LypgXSlcbiAgICAgICAgICAgIC5qc29uPEdldEF0dGFjaG1lbnRzUmVzcG9uc2U+KCk7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHJlc3VsdCkubWFwKHggPT4geC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlbW92ZUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRJZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChEcmFmdFByZXNlbnRhdGlvblR5cGUuaW5uZXIpKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyhzdHJhbmdlT3B0aW9ucylcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkoe1xuICAgICAgICAgICAgICAgIGFkZGVkOiBbXSxcbiAgICAgICAgICAgICAgICBjaGFuZ2VkOiB7fSxcbiAgICAgICAgICAgICAgICByZW1vdmVkOiBhdHRhY2htZW50SWRzLm1hcChpZCA9PiBgQGF0dGFjaG1lbnQvJHtpZH1gKSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVPclVwZGF0ZUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRzOiByZWFkb25seSBBdHRhY2hJbmZvW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlZCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHMpIHtcbiAgICAgICAgICAgIGNoYW5nZWRbYEBhdHRhY2htZW50LyR7YXR0YWNobWVudC5pZH1gXSA9IHtcbiAgICAgICAgICAgICAgICBjb250ZW50VXJpOiBhdHRhY2htZW50LmNvbnRlbnRVcmksXG4gICAgICAgICAgICAgICAgaWQ6IGF0dGFjaG1lbnQuaWQsXG4gICAgICAgICAgICAgICAgbWV0YTogYXR0YWNobWVudC5tZXRhLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwoRHJhZnRQcmVzZW50YXRpb25UeXBlLmlubmVyKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoc3RyYW5nZU9wdGlvbnMpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHtcbiAgICAgICAgICAgICAgICBhZGRlZDogW10sXG4gICAgICAgICAgICAgICAgY2hhbmdlZDogY2hhbmdlZCxcbiAgICAgICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uVHlwZTogRHJhZnRQcmVzZW50YXRpb25UeXBlLCBjb250ZW50OiBzdHJpbmcgfCB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCByZXF1ZXN0ID0gdGhpcy5odHRwQ2xpZW50LnB1dCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKHByZXNlbnRhdGlvblR5cGUpKTtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC53aXRoUmF3Qm9keShjb250ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0J1ZmZlcihjb250ZW50KSkge1xuICAgICAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3Qud2l0aFJhd0JvZHkoY29udGVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC53aXRoSnNvbkJvZHkoY29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgcmVxdWVzdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcGF0Y2hQcmVzZW50YXRpb24oXG4gICAgICAgIHByZXNlbnRhdGlvblR5cGU6IERyYWZ0UHJlc2VudGF0aW9uVHlwZSxcbiAgICAgICAgcHJlc2VudGF0aW9uQ29udGVudDogUHJlc2VudGF0aW9uQ29udGVudFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnQucGF0Y2godGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChwcmVzZW50YXRpb25UeXBlKSkud2l0aEpzb25Cb2R5KHByZXNlbnRhdGlvbkNvbnRlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGaWxlUHJvcGVydGllcyhkcml2ZVVyaTogc3RyaW5nKTogUHJvbWlzZTxGaWxlUHJvcGVydGllcyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldChgdjEvZmlsZXMvZ2V0LXByb3BlcnRpZXNgKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyh7IGRyaXZlVXJpOiBkcml2ZVVyaSB9KVxuICAgICAgICAgICAgLmFjY2VwdENvZGUoNDAwKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uPEZpbGVQcm9wZXJ0aWVzPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmVwYXJlQW5kR2V0RmlsZVByb3BlcnRpZXMoZHJpdmVVcmk6IHN0cmluZywgZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVQcm9wZXJ0aWVzIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAuZ2V0KGB2MS9maWxlcy9wcmVwYXJlLWFuZC1nZXQtcHJvcGVydGllc2ApXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZ2Z2OiBnZnYsIGRyaXZlVXJpOiBkcml2ZVVyaSB9KVxuICAgICAgICAgICAgLmFjY2VwdENvZGUoNDAwKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uPEZpbGVQcm9wZXJ0aWVzPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRGdWZCeURyaXZlVXJpKGRyaXZlVXJpOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50LnB1dCh0aGlzLmdldERyYWZ0VXJsKFwic2V0LWZ1ZlwiKSkud2l0aFF1ZXJ5UGFyYW1zKHsgZHJpdmVVcmk6IGRyaXZlVXJpIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjb21iaW5lRnVmQnlEcml2ZVVyaShcbiAgICAgICAgZHJpdmVVcmk6IHN0cmluZyxcbiAgICAgICAgY29tYmluZU1ldGhvZDogRnVmQ29tYmluZU1ldGhvZFxuICAgICk6IFByb21pc2U8Q29tYmluZUZ1ZlJlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcInRyYW5zZmVyL2NvbWJpbmUtd2l0aC1mdWZcIikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZnVmRHJpdmVVcmk6IGRyaXZlVXJpLCBjb21iaW5lTWV0aG9kOiBjb21iaW5lTWV0aG9kIH0pO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlc3BvbnNlLmpzb248Q29tYmluZUZ1ZlJlc3VsdD4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbm9ybWFsaXplQnlSdWxlcyhydWxlczogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJub3JtYWxpemVcIikpLndpdGhKc29uQm9keShydWxlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIcmVmRG93bmxvYWREcmFmdFByZXNlbnRhdGlvbihwcmVzZW50YXRpb25UeXBlOiBEcmFmdFByZXNlbnRhdGlvblR5cGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnVybCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKHByZXNlbnRhdGlvblR5cGUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERyYWZ0VXJsKGRyYWZ0UmVsYXRlZFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGB2MS9ucy8ke3RoaXMuZHJhZnRGdWxsSWQubnN9L2RyYWZ0cy8ke3RoaXMuZHJhZnRGdWxsSWQuZHJhZnRJZH0vJHtkcmFmdFJlbGF0ZWRVcmx9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERyYWZ0UHJlc2VudGF0aW9uVXJsKHByZXNlbnRhdGlvblR5cGU6IERyYWZ0UHJlc2VudGF0aW9uVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERyYWZ0VXJsKGBwcmVzZW50YXRpb25zLyR7cHJlc2VudGF0aW9uVHlwZS50b1N0cmluZygpfWApO1xuICAgIH1cbn1cbiJdfQ==
|
|
426
|
+
exports.CandyApiDraftClient = CandyApiDraftClient;
|
|
427
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DYW5keUFwaUNsaWVudC50cyJdLCJuYW1lcyI6WyJzdHJhbmdlT3B0aW9ucyIsInNyYyIsImRhdGFWZXJzaW9uIiwiQ2FuZHlBcGlDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImh0dHBDbGllbnQiLCJIdHRwQ2xpZW50IiwiZm9yRHJhZnQiLCJkcmFmdEZ1bGxJZCIsIkNhbmR5QXBpRHJhZnRDbGllbnQiLCJjcmVhdGVEaWdlc3RBcGlDbGllbnQiLCJEaWdlc3RBcGlDbGllbnQiLCJnZXRJbmZvQnlJbm5zIiwiaW5ucyIsInBhdGhzIiwibWFwIiwiaW5uIiwicmVzcG9uc2UiLCJwb3N0IiwiZ2V0RHJhZnRVcmwiLCJ3aXRoSnNvbkJvZHkiLCJqc29uIiwicmVzdWx0IiwiaW5uU2VydmVyVmFsdWUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImVycm9yIiwiZXJyb3JDb2RlIiwiRm9jdXNTZXJ2ZXJFcnJvckNvZGUiLCJOb0lubkVycm9yIiwiZ2V0QWxsR2Z2cyIsImFib3J0U2lnbmFsIiwiYm9keSIsImdldCIsIk9iamVjdCIsImtleXMiLCJmb3JtcyIsImNyZWF0ZURyYWZ0RnJvbURyaXZlIiwibnMiLCJmdWZEcml2ZVVyaSIsIndpdGhRdWVyeVBhcmFtcyIsIndpdGhBYm9ydFNpZ25hbCIsImNyZWF0ZUVtcHR5RHJhZnQiLCJnZnYiLCJjcmVhdGVEcmFmdCIsImZ1ZkNvbnRlbnQiLCJ3aXRoQ29udGVudFR5cGUiLCJ3aXRoQm9keUZyb21CdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiRXJyb3IiLCJjaGVja0FsaXZlIiwiZHJhZnRSZWxhdGVkVXJsIiwiZHJhZnRJZCIsImdldEZlYXR1cmVGbGFncyIsImdldEhyZWZUb0lubmVyRWRpdG9yIiwidXJsIiwiZ2V0SHJlZkRvd25sb2FkRnVmIiwiZ2V0SHJlZlRvQ29udmVydGF0aW9uTG9nIiwiZ2V0SHJlZlRvRG93bmxvYWRJbm5lckZ1ZiIsImdldEhyZWZEb3dubG9hZERyYWZ0UHJlc2VudGF0aW9uIiwiRHJhZnRQcmVzZW50YXRpb25UeXBlIiwiaW5uZXJGdWYiLCJnZXRIcmVmVG9Eb3dubG9hZENsaWVudEluZm8iLCJjbGllbnRJbmZvIiwiZ2V0SHJlZlRvRG93bmxvYWRGb3Jtc0NsaWVudEluZm8iLCJmb3Jtc0NsaWVudEluZm8iLCJnZXRIcmVmRG93bmxvYWRJbm5lciIsImlubmVyIiwiZ2V0RXJyb3JMb2ciLCJnZXREcmFmdFByZXNlbnRhdGlvblVybCIsImVycm9yTG9nIiwiZ2V0VGFza0J5SWQiLCJ0YXNrSWQiLCJ0YXNrcyIsImdldEFsbFRhc2tzIiwidmFsdWVzIiwieCIsImVucXVldWVUYXNrIiwidGFza0luZm8iLCJhZGRlZCIsImNoYW5nZWQiLCJpZCIsInJlbW92ZWQiLCJjYW5jZWxUYXNrIiwiZ2V0RXhwZXJ0RXJyb3JMb2ciLCJlcnJvcmxvZ0V4cGVydCIsImdldEhyZWZUb0Vycm9yTG9nUGRmIiwiZXJyb3JMb2dOYW1lIiwicHJvcHNOYW1lIiwicHJvcHNEcml2ZU5hbWUiLCJjbGVhckRyYWZ0IiwiY29udmVydERyYWZ0RnJvbVByZXZHZnYiLCJwcmV2R2Z2RHJhZnRJZCIsInNlbmRDaGFuZ2VTZXQiLCJkYXRhIiwic2VuZENoYW5nZVNldFN5bmMiLCJwb3N0U3luYyIsImdldFJlcXVpc2l0ZXMiLCJyZXF1aXNpdGVMaXN0IiwiZ2V0SW5uZXIiLCJnZXRQYXJ0aWFsSW5uZXIiLCJydWxlcyIsIm1heEluc3RhbmNlQ291bnQiLCJ0b1N0cmluZyIsImdldFBhcnRpYWxJbm5lckFzSnNvblRyZWUiLCJmb3JtYXQiLCJnZXRFeHBsYW5hdG9yeU5vdGUiLCJleHBsYW5hdG9yeU5vdGUiLCJnZXRBdHRhY2htZW50QnlJZCIsImF0dGFjaG1lbnRJZCIsImdldEFsbEF0dGFjaG1lbnRzIiwicmVtb3ZlQXR0YWNobWVudHMiLCJhdHRhY2htZW50SWRzIiwiY3JlYXRlT3JVcGRhdGVBdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiYXR0YWNobWVudCIsImNvbnRlbnRVcmkiLCJtZXRhIiwic2V0UHJlc2VudGF0aW9uIiwicHJlc2VudGF0aW9uVHlwZSIsImNvbnRlbnQiLCJyZXF1ZXN0IiwicHV0Iiwid2l0aFJhd0JvZHkiLCJwYXRjaFByZXNlbnRhdGlvbiIsInByZXNlbnRhdGlvbkNvbnRlbnQiLCJwYXRjaCIsImdldEZpbGVQcm9wZXJ0aWVzIiwiZHJpdmVVcmkiLCJhY2NlcHRDb2RlIiwic3RhdHVzIiwicHJlcGFyZUFuZEdldEZpbGVQcm9wZXJ0aWVzIiwiZXJyb3JEYXRhIiwiRnVmU2l6ZVRvb0xhcmdlRXJyb3IiLCJtZXNzYWdlIiwiSHR0cEVycm9yIiwic2V0RnVmQnlEcml2ZVVyaSIsImNvbWJpbmVGdWZCeURyaXZlVXJpIiwiY29tYmluZU1ldGhvZCIsIm11bHRpcGxlQ29tYmluZUZ1ZkJ5RHJpdmVVcmkiLCJkcml2ZVVyaXMiLCJub3JtYWxpemVCeVJ1bGVzIiwic2V0QWxsQ2hlY2tib3hlc0ZvcjExMzEwMyIsImVuYWJsZWQiLCJ1cmkiLCJzZXRFbmFibGVkIiwic2VhcmNoSW5zdGFuY2VzQnlUZXh0IiwidGV4dCIsInBhdGhzUHJlZml4IiwicGF0aHNUb1NlYXJjaCIsIm1heEluc3RhbmNlQ291bnRQYXJhbXMiLCJwYXJhbXMiLCJzZWFyY2hTdHJpbmciLCJjdXN0b21Ob3JtYWxpemUiLCJub3JtYWxpemVySWQiLCJwYXRoUHJlZml4ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFXQTs7QUFFQTs7QUFRQTs7QUFHQTs7QUFFQTs7QUFFQSxNQUFNQSxjQUFjLEdBQUc7QUFBRUMsRUFBQUEsR0FBRyxFQUFFLFdBQVA7QUFBb0JDLEVBQUFBLFdBQVcsRUFBRTtBQUFqQyxDQUF2Qjs7QUFFTyxNQUFNQyxjQUFOLENBQWdEO0FBRzVDQyxFQUFBQSxXQUFXLENBQ2RDLFNBRGMsRUFFZEMsT0FGYyxFQUdkQyxZ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LFdBRjhCLEVBRzlCQyxhQUg4QixFQUk5Qi9DLGdCQUo4QixFQUtiO0FBQ2pCLFVBQU1nRCxzQkFBc0IsR0FBR2hELGdCQUFnQixJQUFJOUUsU0FBcEIsR0FBZ0M7QUFBRThFLE1BQUFBLGdCQUFnQixFQUFFQTtBQUFwQixLQUFoQyxHQUF5RSxFQUF4RztBQUNBLFVBQU1pRCxNQUFNLEdBQUc7QUFBRUMsTUFBQUEsWUFBWSxFQUFFTCxJQUFoQjtBQUFzQkMsTUFBQUEsV0FBVyxFQUFFQSxXQUFuQztBQUFnRCxTQUFHRTtBQUFuRCxLQUFmO0FBQ0EsV0FBTyxLQUFLbEosVUFBTCxDQUNGYSxJQURFLENBQ0csS0FBS0MsV0FBTCxDQUFpQix3QkFBakIsQ0FESCxFQUVGcUIsZUFGRSxDQUVjZ0gsTUFGZCxFQUdGcEksWUFIRSxDQUdXa0ksYUFIWCxFQUlGakksSUFKRSxFQUFQO0FBS0g7O0FBRTJCLFFBQWZxSSxlQUFlLENBQUNDLFlBQUQsRUFBdUJDLFlBQXZCLEVBQThEO0FBQ3RGLFVBQU1KLE1BQU0sR0FBRztBQUFFRyxNQUFBQSxZQUFZLEVBQUVBO0FBQWhCLEtBQWY7QUFDQSxVQUFNLEtBQUt0SixVQUFMLENBQ0RhLElBREMsQ0FDSSxLQUFLQyxXQUFMLENBQWlCLHdCQUFqQixDQURKLEVBRURxQixlQUZDLENBRWVnSCxNQUZmLEVBR0RwSSxZQUhDLENBR1l3SSxZQUhaLENBQU47QUFJSDs7QUF4VTREIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBGZXRjaCB9IGZyb20gXCIuLi9IdHRwQ2xpZW50L0ZldGNoSW1wbGVtZW50YXRpb24vRmV0Y2hcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvciB9IGZyb20gXCIuLi9IdHRwQ2xpZW50L0h0dHBDbGllbnRcIjtcbmltcG9ydCB7IEh0dHBTdGF0dXNDb2RlLCBJSHR0cENsaWVudCB9IGZyb20gXCIuLi9IdHRwQ2xpZW50L0lIdHRwQ2xpZW50XCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGUsIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9BdXRoZW50aWNhdGlvbk1vZGVcIjtcblxuaW1wb3J0IHsgSUNhbmR5QXBpQ2xpZW50LCBJQ2FuZHlBcGlEcmFmdENsaWVudCB9IGZyb20gXCIuL0lDYW5keUFwaUNsaWVudFwiO1xuaW1wb3J0IHsgU2VydmVyRXJyb3JMb2cgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9TZXJ2ZXJFcnJvckxvZ1wiO1xuaW1wb3J0IHsgU2VydmVySW5uZXJSZXNwb25zZSwgU2VydmVySnNvblJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvR2V0SW5uZXIvU2VydmVySW5uZXJSZXNwb25zZVwiO1xuaW1wb3J0IHsgRmlsZVByb3BlcnRpZXMgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEFjdGlvbnMvRmlsZVByb3BlcnRpZXNcIjtcbmltcG9ydCB7IENyZWF0ZURyYWZ0UmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9DcmVhdGVEcmFmdC9DcmVhdGVEcmFmdFJlc3BvbnNlXCI7XG5pbXBvcnQgeyBDcmVhdGVFeHBsYW5hdG9yeU5vdGVSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0V4cGxhbmF0b3J5Tm90ZS9DcmVhdGVFeHBsYW5hdG9yeU5vdGVSZXNwb25zZVwiO1xuaW1wb3J0IHsgRHJhZnRGdWxsSWQgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEZ1bGxJZFwiO1xuaW1wb3J0IHsgU2VydmVyQ2hhbmdlU2V0IH0gZnJvbSBcIi4vVHlwZXMvQ2hhbmdlU2V0L1NlcnZlckNoYW5nZVNldFwiO1xuaW1wb3J0IHsgU2VydmVyVGFzaywgVmVyaWZ5QW5kRml4Rm5zUmVxdWlyZW1lbnRzVGFza0luZm8gfSBmcm9tIFwiLi9UeXBlcy9UYXNrcy9UYXNrc1wiO1xuaW1wb3J0IHsgRm9jdXNTZXJ2ZXJFcnJvckNvZGUsIEdldEJ5SW5uUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9Gb2N1cy9Gb2N1c1R5cGVzXCI7XG5pbXBvcnQgeyBBdHRhY2hJbmZvIH0gZnJvbSBcIi4vVHlwZXMvQXR0YWNobWVudHMvQXR0YWNtZW50c1wiO1xuaW1wb3J0IHsgRHJhZnRQcmVzZW50YXRpb25UeXBlIH0gZnJvbSBcIi4vVHlwZXMvUHJlc2VudGF0aW9ucy9EcmFmdFByZXNlbnRhdGlvblR5cGVcIjtcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRlbnQgfSBmcm9tIFwiLi9UeXBlcy9QcmVzZW50YXRpb25zL1ByZXNlbnRhdGlvbkNvbnRlbnRcIjtcbmltcG9ydCB7IENvbnZlcnREcmFmdFJlcXVlc3QgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEFjdGlvbnMvQ29udmVydERyYWZ0UmVxdWVzdFwiO1xuaW1wb3J0IHsgR2V0QXR0YWNobWVudHNSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0F0dGFjaG1lbnRzL0dldEF0dGFjaG1lbnRzUmVzcG9uc2VcIjtcbmltcG9ydCB7IEZvY3VzU2VydmVyUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9Gb2N1cy9Gb2N1c1NlcnZlclJlc3BvbnNlXCI7XG5pbXBvcnQgeyBHZXRUYXNrc1NlcnZlclJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvVGFza3MvR2V0VGFza3NTZXJ2ZXJSZXNwb25zZVwiO1xuaW1wb3J0IHsgRGlhZ1Jlc291cmNlc1Jlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvRGlhZ1Jlc291cmNlc1Jlc3BvbnNlXCI7XG5pbXBvcnQgeyBTZXJ2ZXJSZXF1aXNpdGVzUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9HZXRJbm5lci9TZXJ2ZXJSZXF1aXNpdGVzUmVzcG9uc2VcIjtcbmltcG9ydCB7IGlzQnVmZmVyIH0gZnJvbSBcIi4vSXNCdWZmZXJcIjtcbmltcG9ydCB7IENvbWJpbmVGdWZSZXN1bHQsIEZ1ZkNvbWJpbmVNZXRob2QgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEFjdGlvbnMvQ29tYmluZUZ1ZlJlc3VsdFwiO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdzUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9GZWF0dXJlRmxhZ3MvRmVhdHVyZUZsYWdzUmVzcG9uc2VcIjtcbmltcG9ydCB7IERpZ2VzdEFwaUNsaWVudCB9IGZyb20gXCIuL0RpZ2VzdEFwaUNsaWVudC9EaWdlc3RBcGlDbGllbnRcIjtcbmltcG9ydCB7IElEaWdlc3RBcGlDbGllbnQgfSBmcm9tIFwiLi9EaWdlc3RBcGlDbGllbnQvSURpZ2VzdEFwaUNsaWVudFwiO1xuaW1wb3J0IHsgRnVmU2l6ZVRvb0xhcmdlRXJyb3IgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEFjdGlvbnMvRnVmU2l6ZVRvb0xhcmdlRXJyb3JcIjtcblxuY29uc3Qgc3RyYW5nZU9wdGlvbnMgPSB7IHNyYzogXCJjaGFuZ2VTZXRcIiwgZGF0YVZlcnNpb246IFwiMFwiIH07XG5cbmV4cG9ydCBjbGFzcyBDYW5keUFwaUNsaWVudCBpbXBsZW1lbnRzIElDYW5keUFwaUNsaWVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBJSHR0cENsaWVudDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmV0Y2hJbXBsOiBGZXRjaCxcbiAgICAgICAgYmFzZVVybDogc3RyaW5nLFxuICAgICAgICByZXNvdXJjZVpvbmU6IHVuZGVmaW5lZCB8IHN0cmluZyxcbiAgICAgICAgYXV0aGVudGljYXRpb246IHVuZGVmaW5lZCB8IEF1dGhlbnRpY2F0aW9uTW9kZVxuICAgICkge1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChmZXRjaEltcGwsIGJhc2VVcmwsIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoYXV0aGVudGljYXRpb24pLCB7XG4gICAgICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvckRyYWZ0KGRyYWZ0RnVsbElkOiBEcmFmdEZ1bGxJZCk6IElDYW5keUFwaURyYWZ0Q2xpZW50IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYW5keUFwaURyYWZ0Q2xpZW50KHRoaXMuaHR0cENsaWVudCwgZHJhZnRGdWxsSWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEaWdlc3RBcGlDbGllbnQoZHJhZnRGdWxsSWQ6IERyYWZ0RnVsbElkKTogSURpZ2VzdEFwaUNsaWVudCB7XG4gICAgICAgIHJldHVybiBuZXcgRGlnZXN0QXBpQ2xpZW50KHRoaXMuaHR0cENsaWVudCwgZHJhZnRGdWxsSWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRJbmZvQnlJbm5zKGRyYWZ0RnVsbElkOiBEcmFmdEZ1bGxJZCwgaW5uczogcmVhZG9ubHkgc3RyaW5nW10pOiBQcm9taXNlPEdldEJ5SW5uUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcGF0aHMgPSBpbm5zLm1hcChpbm4gPT4gYEBmb2N1cy8ke2lubn1gKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoZHJhZnRGdWxsSWQsIFwiZ2V0LWlubmVyXCIpKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShwYXRocylcbiAgICAgICAgICAgIC5qc29uPEZvY3VzU2VydmVyUmVzcG9uc2U+KCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogR2V0QnlJbm5SZXNwb25zZSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGlubiBvZiBpbm5zKSB7XG4gICAgICAgICAgICBjb25zdCBpbm5TZXJ2ZXJWYWx1ZSA9IHJlc3BvbnNlW2BAZm9jdXMvJHtpbm59YF0/LnZhbHVlO1xuICAgICAgICAgICAgaWYgKGlublNlcnZlclZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtpbm5dID0ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogXCJTZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGlubiBpbmZvXCIsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZTogRm9jdXNTZXJ2ZXJFcnJvckNvZGUuTm9Jbm5FcnJvcixcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbaW5uXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGlublNlcnZlclZhbHVlLnZhbHVlID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlOiBpbm5TZXJ2ZXJWYWx1ZS5lcnJvckNvZGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogaW5uU2VydmVyVmFsdWUuZXJyb3IgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsR2Z2cyhhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCBib2R5ID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldChgdjEvZGlhZy9yZXNvdXJjZXNgKS5qc29uPERpYWdSZXNvdXJjZXNSZXNwb25zZT4oKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGJvZHkuZm9ybXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVEcmFmdEZyb21Ecml2ZShcbiAgICAgICAgbnM6IHN0cmluZyxcbiAgICAgICAgZnVmRHJpdmVVcmk6IHN0cmluZyxcbiAgICAgICAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbFxuICAgICk6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdChgdjEvbnMvJHtuc30vY3JlYXRlLWRyYWZ0LWZyb20tZHJpdmVgKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyh7XG4gICAgICAgICAgICAgICAgbnM6IG5zLFxuICAgICAgICAgICAgICAgIGZ1ZkRyaXZlVXJpOiBmdWZEcml2ZVVyaSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aEFib3J0U2lnbmFsKGFib3J0U2lnbmFsKVxuICAgICAgICAgICAgLmpzb248Q3JlYXRlRHJhZnRSZXNwb25zZT4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlRW1wdHlEcmFmdChuczogc3RyaW5nLCBnZnY6IHN0cmluZywgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdChgdjEvbnMvJHtuc30vY3JlYXRlLWRyYWZ0YClcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoeyBnZnY6IGdmdiB9KVxuICAgICAgICAgICAgLndpdGhBYm9ydFNpZ25hbChhYm9ydFNpZ25hbClcbiAgICAgICAgICAgIC5qc29uPENyZWF0ZURyYWZ0UmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlRHJhZnQobnM6IHN0cmluZywgZ2Z2OiB1bmRlZmluZWQsIGZ1ZkNvbnRlbnQ6IEJ1ZmZlcik6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT47XG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogdW5kZWZpbmVkIHwgc3RyaW5nLCBmdWZDb250ZW50PzogQnVmZmVyKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPiB7XG4gICAgICAgIGlmIChnZnYgPT0gdW5kZWZpbmVkICYmIGZ1ZkNvbnRlbnQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAgICAgLnBvc3QoYHYxL25zLyR7bnN9L2NyZWF0ZS1kcmFmdGApXG4gICAgICAgICAgICAgICAgLndpdGhDb250ZW50VHlwZShcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKVxuICAgICAgICAgICAgICAgIC53aXRoQm9keUZyb21CdWZmZXIoZnVmQ29udGVudClcbiAgICAgICAgICAgICAgICAuanNvbjxDcmVhdGVEcmFmdFJlc3BvbnNlPigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChnZnYgIT0gdW5kZWZpbmVkICYmIGZ1ZkNvbnRlbnQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAgICAgLnBvc3QoYHYxL25zLyR7bnN9L2NyZWF0ZS1kcmFmdGApXG4gICAgICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyh7IGdmdjogZ2Z2IH0pXG4gICAgICAgICAgICAgICAgLndpdGhDb250ZW50VHlwZShcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKVxuICAgICAgICAgICAgICAgIC53aXRoQm9keUZyb21CdWZmZXIoQnVmZmVyLmZyb20oW10pKVxuICAgICAgICAgICAgICAgIC5qc29uPENyZWF0ZURyYWZ0UmVzcG9uc2U+KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdmdiA9PSB1bmRlZmluZWQgJiYgZnVmQ29udGVudCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjcmVhdGUgZHJhZnQ6IG5vIGdmdiBhbmQgbm8gZnVmIHNwZWNpZmllZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdChgdjEvbnMvJHtuc30vY3JlYXRlLWRyYWZ0YClcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoeyBnZnY6IGdmdiB9KVxuICAgICAgICAgICAgLndpdGhDb250ZW50VHlwZShcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKVxuICAgICAgICAgICAgLndpdGhCb2R5RnJvbUJ1ZmZlcihmdWZDb250ZW50KVxuICAgICAgICAgICAgLmpzb248Q3JlYXRlRHJhZnRSZXNwb25zZT4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2hlY2tBbGl2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldChgX3N0YXR1cy9waW5nYCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREcmFmdFVybChkcmFmdEZ1bGxJZDogRHJhZnRGdWxsSWQsIGRyYWZ0UmVsYXRlZFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGB2MS9ucy8ke2RyYWZ0RnVsbElkLm5zfS9kcmFmdHMvJHtkcmFmdEZ1bGxJZC5kcmFmdElkfS8ke2RyYWZ0UmVsYXRlZFVybH1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGZWF0dXJlRmxhZ3MoKTogUHJvbWlzZTxGZWF0dXJlRmxhZ3NSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldChcInYxL2ZlYXR1cmVzL2ZsYWdzXCIpLmpzb248RmVhdHVyZUZsYWdzUmVzcG9uc2U+KCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FuZHlBcGlEcmFmdENsaWVudCBpbXBsZW1lbnRzIElDYW5keUFwaURyYWZ0Q2xpZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IElIdHRwQ2xpZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJhZnRGdWxsSWQ6IERyYWZ0RnVsbElkO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGh0dHBDbGllbnQ6IElIdHRwQ2xpZW50LCBkcmFmdEZ1bGxJZDogRHJhZnRGdWxsSWQpIHtcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50ID0gaHR0cENsaWVudDtcbiAgICAgICAgdGhpcy5kcmFmdEZ1bGxJZCA9IGRyYWZ0RnVsbElkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Jbm5lckVkaXRvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnVybChgaW5uZXItZWRpdG9yL25zLyR7dGhpcy5kcmFmdEZ1bGxJZC5uc30vZHJhZnRzLyR7dGhpcy5kcmFmdEZ1bGxJZC5kcmFmdElkfWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmRG93bmxvYWRGdWYoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC51cmwodGhpcy5nZXREcmFmdFVybChcImdldC1mdWZcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Db252ZXJ0YXRpb25Mb2coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC51cmwodGhpcy5nZXREcmFmdFVybChcImNvbnZlcnNpb25cIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Eb3dubG9hZElubmVyRnVmKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEhyZWZEb3dubG9hZERyYWZ0UHJlc2VudGF0aW9uKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5pbm5lckZ1Zik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0Rvd25sb2FkQ2xpZW50SW5mbygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIcmVmRG93bmxvYWREcmFmdFByZXNlbnRhdGlvbihEcmFmdFByZXNlbnRhdGlvblR5cGUuY2xpZW50SW5mbyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0Rvd25sb2FkRm9ybXNDbGllbnRJbmZvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEhyZWZEb3dubG9hZERyYWZ0UHJlc2VudGF0aW9uKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5mb3Jtc0NsaWVudEluZm8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmRG93bmxvYWRJbm5lcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIcmVmRG93bmxvYWREcmFmdFByZXNlbnRhdGlvbihEcmFmdFByZXNlbnRhdGlvblR5cGUuaW5uZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRFcnJvckxvZygpOiBQcm9taXNlPFNlcnZlckVycm9yTG9nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwoRHJhZnRQcmVzZW50YXRpb25UeXBlLmVycm9yTG9nKSkuanNvbjxTZXJ2ZXJFcnJvckxvZz4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VGFza0J5SWQodGFza0lkOiBzdHJpbmcpOiBQcm9taXNlPFNlcnZlclRhc2sgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgdGFza3MgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJnZXQtaW5uZXJcIikpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KFtgQHRhc2svKmBdKVxuICAgICAgICAgICAgLmpzb248R2V0VGFza3NTZXJ2ZXJSZXNwb25zZT4oKTtcbiAgICAgICAgcmV0dXJuIHRhc2tzW2BAdGFzay8ke3Rhc2tJZH1gXT8udmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFRhc2tzKCk6IFByb21pc2U8U2VydmVyVGFza1tdPiB7XG4gICAgICAgIGNvbnN0IHRhc2tzID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LWlubmVyXCIpKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShbYEB0YXNrLypgXSlcbiAgICAgICAgICAgIC5qc29uPEdldFRhc2tzU2VydmVyUmVzcG9uc2U+KCk7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRhc2tzKS5tYXAoeCA9PiB4LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZW5xdWV1ZVRhc2sodGFza0lkOiBzdHJpbmcsIHRhc2tJbmZvOiBWZXJpZnlBbmRGaXhGbnNSZXF1aXJlbWVudHNUYXNrSW5mbyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwoRHJhZnRQcmVzZW50YXRpb25UeXBlLmlubmVyKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoc3RyYW5nZU9wdGlvbnMpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHtcbiAgICAgICAgICAgICAgICBhZGRlZDogW10sXG4gICAgICAgICAgICAgICAgY2hhbmdlZDoge1xuICAgICAgICAgICAgICAgICAgICBbYEB0YXNrLyR7dGFza0lkfWBdOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50YXNrSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0YXNrSWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjYW5jZWxUYXNrKHRhc2tJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChEcmFmdFByZXNlbnRhdGlvblR5cGUuaW5uZXIpKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyhzdHJhbmdlT3B0aW9ucylcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkoe1xuICAgICAgICAgICAgICAgIGFkZGVkOiBbXSxcbiAgICAgICAgICAgICAgICBjaGFuZ2VkOiB7fSxcbiAgICAgICAgICAgICAgICByZW1vdmVkOiBbYEB0YXNrLyR7dGFza0lkfWBdLFxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEV4cGVydEVycm9yTG9nKCk6IFByb21pc2U8U2VydmVyRXJyb3JMb2c+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5lcnJvcmxvZ0V4cGVydCkpXG4gICAgICAgICAgICAuanNvbjxTZXJ2ZXJFcnJvckxvZz4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvRXJyb3JMb2dQZGYoZXJyb3JMb2dOYW1lOiBzdHJpbmcsIHByb3BzTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC51cmwodGhpcy5nZXREcmFmdFVybChcInByZXNlbnRhdGlvbnMvZXJyb3JMb2cvcHJpbnRcIiksIHtcbiAgICAgICAgICAgIGVycm9yTG9nTmFtZTogZXJyb3JMb2dOYW1lLFxuICAgICAgICAgICAgcHJvcHNEcml2ZU5hbWU6IHByb3BzTmFtZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNsZWFyRHJhZnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJjbGVhclwiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNvbnZlcnREcmFmdEZyb21QcmV2R2Z2KHsgcHJldkdmdkRyYWZ0SWQsIGdmdiB9OiBDb252ZXJ0RHJhZnRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJjb252ZXJ0XCIpKS53aXRoUXVlcnlQYXJhbXMoe1xuICAgICAgICAgICAgaWQ6IHByZXZHZnZEcmFmdElkLFxuICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZW5kQ2hhbmdlU2V0KGRhdGE6IFNlcnZlckNoYW5nZVNldCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwoRHJhZnRQcmVzZW50YXRpb25UeXBlLmlubmVyKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoc3RyYW5nZU9wdGlvbnMpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KGRhdGEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kQ2hhbmdlU2V0U3luYyhkYXRhOiBTZXJ2ZXJDaGFuZ2VTZXQpOiBIdHRwU3RhdHVzQ29kZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdFN5bmMoXG4gICAgICAgICAgICB0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5pbm5lciksXG4gICAgICAgICAgICBzdHJhbmdlT3B0aW9ucyxcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0UmVxdWlzaXRlcyhyZXF1aXNpdGVMaXN0OiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8U2VydmVyUmVxdWlzaXRlc1Jlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJnZXQtaW5uZXJcIikpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHJlcXVpc2l0ZUxpc3QpXG4gICAgICAgICAgICAuanNvbjxTZXJ2ZXJSZXF1aXNpdGVzUmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldElubmVyKHBhdGhzOiB1bmRlZmluZWQgfCByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8U2VydmVySW5uZXJSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LWlubmVyXCIpKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShwYXRocylcbiAgICAgICAgICAgIC5qc29uPFNlcnZlcklubmVyUmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcnRpYWxJbm5lcihydWxlczogW1wiKlwiXSB8IHN0cmluZ1tdLCBtYXhJbnN0YW5jZUNvdW50PzogbnVtYmVyKTogUHJvbWlzZTxTZXJ2ZXJJbm5lclJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJnZXQtcGFydGlhbC1pbm5lclwiKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMobWF4SW5zdGFuY2VDb3VudCAhPSB1bmRlZmluZWQgJiYgeyBtYXhJbnN0YW5jZUNvdW50OiBtYXhJbnN0YW5jZUNvdW50LnRvU3RyaW5nKCkgfSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkocnVsZXMpXG4gICAgICAgICAgICAuanNvbjxTZXJ2ZXJJbm5lclJlc3BvbnNlPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJ0aWFsSW5uZXJBc0pzb25UcmVlKHJ1bGVzOiBbXCIqXCJdIHwgc3RyaW5nW10sIG1heEluc3RhbmNlQ291bnQ/OiBudW1iZXIpOiBQcm9taXNlPFNlcnZlckpzb25SZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiZ2V0LXBhcnRpYWwtaW5uZXJcIikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKG1heEluc3RhbmNlQ291bnQgIT0gdW5kZWZpbmVkICYmIHsgbWF4SW5zdGFuY2VDb3VudDogbWF4SW5zdGFuY2VDb3VudC50b1N0cmluZygpIH0pXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZm9ybWF0OiBcIkpzb25UcmVlXCIgfSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkocnVsZXMpXG4gICAgICAgICAgICAuanNvbjxTZXJ2ZXJKc29uUmVzcG9uc2U+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEV4cGxhbmF0b3J5Tm90ZSgpOiBQcm9taXNlPENyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQodGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChEcmFmdFByZXNlbnRhdGlvblR5cGUuZXhwbGFuYXRvcnlOb3RlKSlcbiAgICAgICAgICAgIC5qc29uPENyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBdHRhY2htZW50QnlJZChhdHRhY2htZW50SWQ6IHN0cmluZyk6IFByb21pc2U8QXR0YWNoSW5mbz4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRVcmwoXCJnZXQtaW5uZXJcIikpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KFtgQGF0dGFjaG1lbnQvJHthdHRhY2htZW50SWR9YF0pXG4gICAgICAgICAgICAuanNvbjxHZXRBdHRhY2htZW50c1Jlc3BvbnNlPigpO1xuICAgICAgICByZXR1cm4gcmVzdWx0W2BAYXR0YWNobWVudC8ke2F0dGFjaG1lbnRJZH1gXT8udmFsdWUgPz8gcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEF0dGFjaG1lbnRzKCk6IFByb21pc2U8QXR0YWNoSW5mb1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcImdldC1pbm5lclwiKSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkoW2BAYXR0YWNobWVudC8qYF0pXG4gICAgICAgICAgICAuanNvbjxHZXRBdHRhY2htZW50c1Jlc3BvbnNlPigpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZXN1bHQpLm1hcCh4ID0+IHgudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZW1vdmVBdHRhY2htZW50cyhhdHRhY2htZW50SWRzOiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwoRHJhZnRQcmVzZW50YXRpb25UeXBlLmlubmVyKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoc3RyYW5nZU9wdGlvbnMpXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHtcbiAgICAgICAgICAgICAgICBhZGRlZDogW10sXG4gICAgICAgICAgICAgICAgY2hhbmdlZDoge30sXG4gICAgICAgICAgICAgICAgcmVtb3ZlZDogYXR0YWNobWVudElkcy5tYXAoaWQgPT4gYEBhdHRhY2htZW50LyR7aWR9YCksXG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlT3JVcGRhdGVBdHRhY2htZW50cyhhdHRhY2htZW50czogcmVhZG9ubHkgQXR0YWNoSW5mb1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWQgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBhdHRhY2htZW50IG9mIGF0dGFjaG1lbnRzKSB7XG4gICAgICAgICAgICBjaGFuZ2VkW2BAYXR0YWNobWVudC8ke2F0dGFjaG1lbnQuaWR9YF0gPSB7XG4gICAgICAgICAgICAgICAgY29udGVudFVyaTogYXR0YWNobWVudC5jb250ZW50VXJpLFxuICAgICAgICAgICAgICAgIGlkOiBhdHRhY2htZW50LmlkLFxuICAgICAgICAgICAgICAgIG1ldGE6IGF0dGFjaG1lbnQubWV0YSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0UHJlc2VudGF0aW9uVXJsKERyYWZ0UHJlc2VudGF0aW9uVHlwZS5pbm5lcikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHN0cmFuZ2VPcHRpb25zKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keSh7XG4gICAgICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgICAgIGNoYW5nZWQ6IGNoYW5nZWQsXG4gICAgICAgICAgICAgICAgcmVtb3ZlZDogW10sXG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0UHJlc2VudGF0aW9uKHByZXNlbnRhdGlvblR5cGU6IERyYWZ0UHJlc2VudGF0aW9uVHlwZSwgY29udGVudDogc3RyaW5nIHwgdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgcmVxdWVzdCA9IHRoaXMuaHR0cENsaWVudC5wdXQodGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChwcmVzZW50YXRpb25UeXBlKSk7XG4gICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3Qud2l0aFJhd0JvZHkoY29udGVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNCdWZmZXIoY29udGVudCkpIHtcbiAgICAgICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LndpdGhSYXdCb2R5KGNvbnRlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3Qud2l0aEpzb25Cb2R5KGNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHBhdGNoUHJlc2VudGF0aW9uKFxuICAgICAgICBwcmVzZW50YXRpb25UeXBlOiBEcmFmdFByZXNlbnRhdGlvblR5cGUsXG4gICAgICAgIHByZXNlbnRhdGlvbkNvbnRlbnQ6IFByZXNlbnRhdGlvbkNvbnRlbnRcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50LnBhdGNoKHRoaXMuZ2V0RHJhZnRQcmVzZW50YXRpb25VcmwocHJlc2VudGF0aW9uVHlwZSkpLndpdGhKc29uQm9keShwcmVzZW50YXRpb25Db250ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RmlsZVByb3BlcnRpZXMoZHJpdmVVcmk6IHN0cmluZyk6IFByb21pc2U8RmlsZVByb3BlcnRpZXMgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQoYHYxL2ZpbGVzL2dldC1wcm9wZXJ0aWVzYClcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMoeyBkcml2ZVVyaTogZHJpdmVVcmkgfSlcbiAgICAgICAgICAgIC5hY2NlcHRDb2RlKDQwMCk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbjxGaWxlUHJvcGVydGllcz4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJlcGFyZUFuZEdldEZpbGVQcm9wZXJ0aWVzKGRyaXZlVXJpOiBzdHJpbmcsIGdmdjogc3RyaW5nKTogUHJvbWlzZTxGaWxlUHJvcGVydGllcyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLmdldChgdjEvZmlsZXMvcHJlcGFyZS1hbmQtZ2V0LXByb3BlcnRpZXNgKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyh7IGdmdjogZ2Z2LCBkcml2ZVVyaTogZHJpdmVVcmkgfSlcbiAgICAgICAgICAgIC5hY2NlcHRDb2RlKDQwMClcbiAgICAgICAgICAgIC5hY2NlcHRDb2RlKDQxMyk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MTMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb248eyBlcnJvckNvZGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0+KCk7XG4gICAgICAgICAgICBpZiAoZXJyb3JEYXRhLmVycm9yQ29kZSA9PT0gXCJGdWZTaXplVG9vTGFyZ2VcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBGdWZTaXplVG9vTGFyZ2VFcnJvcihlcnJvckRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKGVycm9yRGF0YS5tZXNzYWdlLCByZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uPEZpbGVQcm9wZXJ0aWVzPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRGdWZCeURyaXZlVXJpKGRyaXZlVXJpOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5odHRwQ2xpZW50LnB1dCh0aGlzLmdldERyYWZ0VXJsKFwic2V0LWZ1ZlwiKSkud2l0aFF1ZXJ5UGFyYW1zKHsgZHJpdmVVcmk6IGRyaXZlVXJpIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjb21iaW5lRnVmQnlEcml2ZVVyaShcbiAgICAgICAgZHJpdmVVcmk6IHN0cmluZyxcbiAgICAgICAgY29tYmluZU1ldGhvZDogRnVmQ29tYmluZU1ldGhvZFxuICAgICk6IFByb21pc2U8Q29tYmluZUZ1ZlJlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcInRyYW5zZmVyL2NvbWJpbmUtd2l0aC1mdWZcIikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHsgZnVmRHJpdmVVcmk6IGRyaXZlVXJpLCBjb21iaW5lTWV0aG9kOiBjb21iaW5lTWV0aG9kIH0pO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlc3BvbnNlLmpzb248Q29tYmluZUZ1ZlJlc3VsdD4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbXVsdGlwbGVDb21iaW5lRnVmQnlEcml2ZVVyaShcbiAgICAgICAgZHJpdmVVcmlzOiBzdHJpbmdbXSxcbiAgICAgICAgY29tYmluZU1ldGhvZDogRnVmQ29tYmluZU1ldGhvZFxuICAgICk6IFByb21pc2U8Q29tYmluZUZ1ZlJlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcInRyYW5zZmVyL2NvbWJpbmUtd2l0aC1mdWZzXCIpKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyh7IGNvbWJpbmVNZXRob2Q6IGNvbWJpbmVNZXRob2QgfSlcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkoZHJpdmVVcmlzKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uPENvbWJpbmVGdWZSZXN1bHQ+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG5vcm1hbGl6ZUJ5UnVsZXMocnVsZXM6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwibm9ybWFsaXplXCIpKS53aXRoSnNvbkJvZHkocnVsZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SHJlZkRvd25sb2FkRHJhZnRQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uVHlwZTogRHJhZnRQcmVzZW50YXRpb25UeXBlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC51cmwodGhpcy5nZXREcmFmdFByZXNlbnRhdGlvblVybChwcmVzZW50YXRpb25UeXBlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREcmFmdFVybChkcmFmdFJlbGF0ZWRVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgdjEvbnMvJHt0aGlzLmRyYWZ0RnVsbElkLm5zfS9kcmFmdHMvJHt0aGlzLmRyYWZ0RnVsbElkLmRyYWZ0SWR9LyR7ZHJhZnRSZWxhdGVkVXJsfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREcmFmdFByZXNlbnRhdGlvblVybChwcmVzZW50YXRpb25UeXBlOiBEcmFmdFByZXNlbnRhdGlvblR5cGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREcmFmdFVybChgcHJlc2VudGF0aW9ucy8ke3ByZXNlbnRhdGlvblR5cGUudG9TdHJpbmcoKX1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0QWxsQ2hlY2tib3hlc0ZvcjExMzEwMyhlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHVyaSA9IHRoaXMuZ2V0RHJhZnRVcmwoXCJpbm5lci9jaGVjay1hbGxcIik7XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudC5wYXRjaCh1cmkpLndpdGhRdWVyeVBhcmFtcyh7IHNldEVuYWJsZWQ6IGVuYWJsZWQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlYXJjaEluc3RhbmNlc0J5VGV4dChcbiAgICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgICBwYXRoc1ByZWZpeDogc3RyaW5nLFxuICAgICAgICBwYXRoc1RvU2VhcmNoOiBzdHJpbmdbXSxcbiAgICAgICAgbWF4SW5zdGFuY2VDb3VudD86IG51bWJlclxuICAgICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgbWF4SW5zdGFuY2VDb3VudFBhcmFtcyA9IG1heEluc3RhbmNlQ291bnQgIT0gdW5kZWZpbmVkID8geyBtYXhJbnN0YW5jZUNvdW50OiBtYXhJbnN0YW5jZUNvdW50IH0gOiB7fTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0geyBzZWFyY2hTdHJpbmc6IHRleHQsIHBhdGhzUHJlZml4OiBwYXRoc1ByZWZpeCwgLi4ubWF4SW5zdGFuY2VDb3VudFBhcmFtcyB9O1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldERyYWZ0VXJsKFwiaW5uZXIvc2VhcmNoLWJ5LXN0cmluZ1wiKSlcbiAgICAgICAgICAgIC53aXRoUXVlcnlQYXJhbXMocGFyYW1zKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShwYXRoc1RvU2VhcmNoKVxuICAgICAgICAgICAgLmpzb248c3RyaW5nW10+KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGN1c3RvbU5vcm1hbGl6ZShub3JtYWxpemVySWQ6IHN0cmluZywgcGF0aFByZWZpeGVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IG5vcm1hbGl6ZXJJZDogbm9ybWFsaXplcklkIH07XG4gICAgICAgIGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXREcmFmdFVybChcImlubmVyL2N1c3RvbS1ub3JtYWxpemVcIikpXG4gICAgICAgICAgICAud2l0aFF1ZXJ5UGFyYW1zKHBhcmFtcylcbiAgICAgICAgICAgIC53aXRoSnNvbkJvZHkocGF0aFByZWZpeGVzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -14,15 +14,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
14
14
|
|
|
15
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
16
|
|
|
17
|
-
(function () {
|
|
18
|
-
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
|
|
19
|
-
enterModule && enterModule(module);
|
|
20
|
-
})();
|
|
21
|
-
|
|
22
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
23
|
-
return a;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
17
|
const CandyApiClientContext = /*#__PURE__*/React.createContext(undefined);
|
|
27
18
|
const CandyApiClientProvider = CandyApiClientContext.Provider;
|
|
28
19
|
exports.CandyApiClientProvider = CandyApiClientProvider;
|
|
@@ -32,27 +23,4 @@ function useCandyApiClient() {
|
|
|
32
23
|
|
|
33
24
|
return (_React$useContext = React.useContext(CandyApiClientContext)) !== null && _React$useContext !== void 0 ? _React$useContext : (0, _TypingUtils.reject)("ICandyApiClient must be provided with CandyApiClientProvider");
|
|
34
25
|
}
|
|
35
|
-
|
|
36
|
-
__signature__(useCandyApiClient, "useContext{}");
|
|
37
|
-
|
|
38
|
-
;
|
|
39
|
-
|
|
40
|
-
(function () {
|
|
41
|
-
var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
|
|
42
|
-
|
|
43
|
-
if (!reactHotLoader) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
reactHotLoader.register(CandyApiClientContext, "CandyApiClientContext", "C:\\buildAgent\\work\\8df8f1edd755969c\\Common\\CandyApiClient\\CandyApiClientContext.ts");
|
|
48
|
-
reactHotLoader.register(CandyApiClientProvider, "CandyApiClientProvider", "C:\\buildAgent\\work\\8df8f1edd755969c\\Common\\CandyApiClient\\CandyApiClientContext.ts");
|
|
49
|
-
reactHotLoader.register(useCandyApiClient, "useCandyApiClient", "C:\\buildAgent\\work\\8df8f1edd755969c\\Common\\CandyApiClient\\CandyApiClientContext.ts");
|
|
50
|
-
})();
|
|
51
|
-
|
|
52
|
-
;
|
|
53
|
-
|
|
54
|
-
(function () {
|
|
55
|
-
var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
|
|
56
|
-
leaveModule && leaveModule(module);
|
|
57
|
-
})();
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DYW5keUFwaUNsaWVudENvbnRleHQudHMiXSwibmFtZXMiOlsiQ2FuZHlBcGlDbGllbnRDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwidW5kZWZpbmVkIiwiQ2FuZHlBcGlDbGllbnRQcm92aWRlciIsIlByb3ZpZGVyIiwidXNlQ2FuZHlBcGlDbGllbnQiLCJ1c2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7QUFJQSxNQUFNQSxxQkFBcUIsZ0JBQUdDLEtBQUssQ0FBQ0MsYUFBTixDQUFpREMsU0FBakQsQ0FBOUI7QUFFTyxNQUFNQyxzQkFBc0IsR0FBR0oscUJBQXFCLENBQUNLLFFBQXJEOzs7QUFFQSxTQUFTQyxpQkFBVCxHQUE4QztBQUFBOztBQUNqRCw4QkFDSUwsS0FBSyxDQUFDTSxVQUFOLENBQWlCUCxxQkFBakIsQ0FESixpRUFFSSx5QkFBTyw4REFBUCxDQUZKO0FBSUg7O2NBTGVNLGlCOzs7Ozs7Ozs7OzswQkFKVk4scUI7MEJBRU9JLHNCOzBCQUVHRSxpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHsgSUNhbmR5QXBpQ2xpZW50IH0gZnJvbSBcIi4vSUNhbmR5QXBpQ2xpZW50XCI7XG5cbmNvbnN0IENhbmR5QXBpQ2xpZW50Q29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8SUNhbmR5QXBpQ2xpZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgQ2FuZHlBcGlDbGllbnRQcm92aWRlciA9IENhbmR5QXBpQ2xpZW50Q29udGV4dC5Qcm92aWRlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNhbmR5QXBpQ2xpZW50KCk6IElDYW5keUFwaUNsaWVudCB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgUmVhY3QudXNlQ29udGV4dChDYW5keUFwaUNsaWVudENvbnRleHQpID8/XG4gICAgICAgIHJlamVjdChcIklDYW5keUFwaUNsaWVudCBtdXN0IGJlIHByb3ZpZGVkIHdpdGggQ2FuZHlBcGlDbGllbnRQcm92aWRlclwiKVxuICAgICk7XG59XG4iXX0=
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DYW5keUFwaUNsaWVudENvbnRleHQudHMiXSwibmFtZXMiOlsiQ2FuZHlBcGlDbGllbnRDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwidW5kZWZpbmVkIiwiQ2FuZHlBcGlDbGllbnRQcm92aWRlciIsIlByb3ZpZGVyIiwidXNlQ2FuZHlBcGlDbGllbnQiLCJ1c2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUVBOzs7Ozs7QUFJQSxNQUFNQSxxQkFBcUIsZ0JBQUdDLEtBQUssQ0FBQ0MsYUFBTixDQUFpREMsU0FBakQsQ0FBOUI7QUFFTyxNQUFNQyxzQkFBc0IsR0FBR0oscUJBQXFCLENBQUNLLFFBQXJEOzs7QUFFQSxTQUFTQyxpQkFBVCxHQUE4QztBQUFBOztBQUNqRCw4QkFDSUwsS0FBSyxDQUFDTSxVQUFOLENBQWlCUCxxQkFBakIsQ0FESixpRUFFSSx5QkFBTyw4REFBUCxDQUZKO0FBSUgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uL1R5cGluZ1V0aWxzXCI7XG5cbmltcG9ydCB7IElDYW5keUFwaUNsaWVudCB9IGZyb20gXCIuL0lDYW5keUFwaUNsaWVudFwiO1xuXG5jb25zdCBDYW5keUFwaUNsaWVudENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PElDYW5keUFwaUNsaWVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IENhbmR5QXBpQ2xpZW50UHJvdmlkZXIgPSBDYW5keUFwaUNsaWVudENvbnRleHQuUHJvdmlkZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYW5keUFwaUNsaWVudCgpOiBJQ2FuZHlBcGlDbGllbnQge1xuICAgIHJldHVybiAoXG4gICAgICAgIFJlYWN0LnVzZUNvbnRleHQoQ2FuZHlBcGlDbGllbnRDb250ZXh0KSA/P1xuICAgICAgICByZWplY3QoXCJJQ2FuZHlBcGlDbGllbnQgbXVzdCBiZSBwcm92aWRlZCB3aXRoIENhbmR5QXBpQ2xpZW50UHJvdmlkZXJcIilcbiAgICApO1xufVxuIl19
|
|
@@ -3,8 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
8
|
-
return a;
|
|
9
|
-
};
|
|
10
6
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|
|
@@ -3,8 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
8
|
-
return a;
|
|
9
|
-
};
|
|
10
6
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|
|
@@ -5,37 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getClientDraftInfoUrl = getClientDraftInfoUrl;
|
|
7
7
|
|
|
8
|
-
(function () {
|
|
9
|
-
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
|
|
10
|
-
enterModule && enterModule(module);
|
|
11
|
-
})();
|
|
12
|
-
|
|
13
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
14
|
-
return a;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
8
|
function getClientDraftInfoUrl(draftId) {
|
|
18
9
|
// NOTE Эта функция объявлена отдельно, ибо она входит в состав client.js и
|
|
19
10
|
// не должно происходить утежеления client.js-а
|
|
20
11
|
return `v1/ns/${draftId.ns}/drafts/${draftId.draftId}/client-draft-info`;
|
|
21
12
|
}
|
|
22
|
-
|
|
23
|
-
;
|
|
24
|
-
|
|
25
|
-
(function () {
|
|
26
|
-
var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
|
|
27
|
-
|
|
28
|
-
if (!reactHotLoader) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
reactHotLoader.register(getClientDraftInfoUrl, "getClientDraftInfoUrl", "C:\\buildAgent\\work\\8df8f1edd755969c\\Common\\CandyApiClient\\ClientDraftInfo\\GetClientDraftInfoUrl.ts");
|
|
33
|
-
})();
|
|
34
|
-
|
|
35
|
-
;
|
|
36
|
-
|
|
37
|
-
(function () {
|
|
38
|
-
var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
|
|
39
|
-
leaveModule && leaveModule(module);
|
|
40
|
-
})();
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DbGllbnREcmFmdEluZm8vR2V0Q2xpZW50RHJhZnRJbmZvVXJsLnRzIl0sIm5hbWVzIjpbImdldENsaWVudERyYWZ0SW5mb1VybCIsImRyYWZ0SWQiLCJucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLFNBQVNBLHFCQUFULENBQStCQyxPQUEvQixFQUFxRDtBQUN4RDtBQUNBO0FBQ0EsU0FBUSxTQUFRQSxPQUFPLENBQUNDLEVBQUcsV0FBVUQsT0FBTyxDQUFDQSxPQUFRLG9CQUFyRDtBQUNIOzs7Ozs7Ozs7OzswQkFKZUQscUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFmdEZ1bGxJZCB9IGZyb20gXCIuLi9UeXBlcy9EcmFmdEZ1bGxJZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50RHJhZnRJbmZvVXJsKGRyYWZ0SWQ6IERyYWZ0RnVsbElkKSB7XG4gICAgLy8gTk9URSDQrdGC0LAg0YTRg9C90LrRhtC40Y8g0L7QsdGK0Y/QstC70LXQvdCwINC+0YLQtNC10LvRjNC90L4sINC40LHQviDQvtC90LAg0LLRhdC+0LTQuNGCINCyINGB0L7RgdGC0LDQsiBjbGllbnQuanMg0LhcbiAgICAvLyDQvdC1INC00L7Qu9C20L3QviDQv9GA0L7QuNGB0YXQvtC00LjRgtGMINGD0YLQtdC20LXQu9C10L3QuNGPIGNsaWVudC5qcy3QsFxuICAgIHJldHVybiBgdjEvbnMvJHtkcmFmdElkLm5zfS9kcmFmdHMvJHtkcmFmdElkLmRyYWZ0SWR9L2NsaWVudC1kcmFmdC1pbmZvYDtcbn1cbiJdfQ==
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DbGllbnREcmFmdEluZm8vR2V0Q2xpZW50RHJhZnRJbmZvVXJsLnRzIl0sIm5hbWVzIjpbImdldENsaWVudERyYWZ0SW5mb1VybCIsImRyYWZ0SWQiLCJucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVPLFNBQVNBLHFCQUFULENBQStCQyxPQUEvQixFQUFxRDtBQUN4RDtBQUNBO0FBQ0EsU0FBUSxTQUFRQSxPQUFPLENBQUNDLEVBQUcsV0FBVUQsT0FBTyxDQUFDQSxPQUFRLG9CQUFyRDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZnRGdWxsSWQgfSBmcm9tIFwiLi4vVHlwZXMvRHJhZnRGdWxsSWRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudERyYWZ0SW5mb1VybChkcmFmdElkOiBEcmFmdEZ1bGxJZCkge1xuICAgIC8vIE5PVEUg0K3RgtCwINGE0YPQvdC60YbQuNGPINC+0LHRitGP0LLQu9C10L3QsCDQvtGC0LTQtdC70YzQvdC+LCDQuNCx0L4g0L7QvdCwINCy0YXQvtC00LjRgiDQsiDRgdC+0YHRgtCw0LIgY2xpZW50LmpzINC4XG4gICAgLy8g0L3QtSDQtNC+0LvQttC90L4g0L/RgNC+0LjRgdGF0L7QtNC40YLRjCDRg9GC0LXQttC10LvQtdC90LjRjyBjbGllbnQuanMt0LBcbiAgICByZXR1cm4gYHYxL25zLyR7ZHJhZnRJZC5uc30vZHJhZnRzLyR7ZHJhZnRJZC5kcmFmdElkfS9jbGllbnQtZHJhZnQtaW5mb2A7XG59XG4iXX0=
|
|
@@ -3,8 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
8
|
-
return a;
|
|
9
|
-
};
|
|
10
6
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|