@sapui5/sap.fe.core 1.131.0 → 1.133.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/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +17 -23
- package/src/sap/fe/core/AppComponent.js +74 -36
- package/src/sap/fe/core/AppComponent.ts +70 -3
- package/src/sap/fe/core/AppStateHandler.js +44 -13
- package/src/sap/fe/core/AppStateHandler.ts +38 -0
- package/src/sap/fe/core/BaseController.js +3 -3
- package/src/sap/fe/core/CommonUtils.js +30 -37
- package/src/sap/fe/core/CommonUtils.ts +15 -13
- package/src/sap/fe/core/ExtensionAPI.js +29 -34
- package/src/sap/fe/core/ExtensionAPI.ts +3 -0
- package/src/sap/fe/core/InsightsFormattersExtension.js +2 -2
- package/src/sap/fe/core/PageController.js +40 -31
- package/src/sap/fe/core/PageController.ts +14 -1
- package/src/sap/fe/core/ResourceModel.js +4 -4
- package/src/sap/fe/core/ReuseComponent.js +27 -13
- package/src/sap/fe/core/ReuseComponent.ts +18 -0
- package/src/sap/fe/core/TemplateComponent.js +102 -89
- package/src/sap/fe/core/TemplateComponent.ts +20 -1
- package/src/sap/fe/core/TemplateModel.js +6 -7
- package/src/sap/fe/core/UIProvider.js +1 -1
- package/src/sap/fe/core/UIProvider.ts +2 -9
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +63 -48
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +56 -27
- package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.js +9 -0
- package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.ts +48 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +4 -6
- package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +2 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +32 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +30 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +9 -13
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +2 -1
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +19 -25
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +3 -4
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +20 -24
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +10 -15
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +3 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.js +296 -246
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +253 -175
- package/src/sap/fe/core/controllerextensions/Feedback.js +10 -11
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +6 -6
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +27 -36
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +57 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +42 -50
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +12 -19
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +23 -17
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -7
- package/src/sap/fe/core/controllerextensions/PageReady.js +15 -21
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
- package/src/sap/fe/core/controllerextensions/Recommendations.js +23 -36
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +1 -1
- package/src/sap/fe/core/controllerextensions/Routing.js +3 -3
- package/src/sap/fe/core/controllerextensions/Share.js +19 -28
- package/src/sap/fe/core/controllerextensions/SideEffects.js +68 -32
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +58 -6
- package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -5
- package/src/sap/fe/core/controllerextensions/ViewState.js +23 -24
- package/src/sap/fe/core/controllerextensions/ViewState.ts +6 -1
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +13 -10
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +13 -8
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +15 -16
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +3 -4
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.js +288 -0
- package/src/sap/fe/core/controllerextensions/dialog/{OperationsDialog.block.tsx → OperationsDialog.tsx} +27 -29
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +41 -5
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +61 -8
- package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.js +404 -0
- package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.ts +502 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +35 -43
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +34 -14
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +37 -27
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +27 -15
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +51 -39
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +75 -34
- package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +4 -4
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +88 -427
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +82 -620
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +9 -5
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +6 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +116 -79
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +87 -13
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +4 -6
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +5 -7
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +6 -7
- package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +4 -4
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +58 -20
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -4
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.js +9 -12
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/ComponentLoader.js +20 -21
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +250 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/{DraftDataLossDialog.block.tsx → DraftDataLossDialog.tsx} +31 -19
- package/src/sap/fe/core/controls/FormElementWrapper.js +19 -21
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +114 -0
- package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +115 -0
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +454 -0
- package/src/sap/fe/core/controls/Recommendations/{ConfirmRecommendationDialog.block.tsx → ConfirmRecommendationDialog.tsx} +5 -9
- package/src/sap/fe/core/converters/ConverterContext.js +17 -18
- package/src/sap/fe/core/converters/ConverterContext.ts +10 -15
- package/src/sap/fe/core/converters/ManifestSettings.js +29 -28
- package/src/sap/fe/core/converters/ManifestSettings.ts +22 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +26 -48
- package/src/sap/fe/core/converters/MetaModelConverter.js +21 -28
- package/src/sap/fe/core/converters/MetaModelConverter.ts +2 -0
- package/src/sap/fe/core/converters/TemplateConverter.js +17 -21
- package/src/sap/fe/core/converters/TemplateConverter.ts +5 -3
- package/src/sap/fe/core/converters/annotations/DataField.js +69 -66
- package/src/sap/fe/core/converters/annotations/DataField.ts +30 -0
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +20 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +178 -43
- package/src/sap/fe/core/converters/controls/Common/Action.ts +202 -19
- package/src/sap/fe/core/converters/controls/Common/Chart.js +47 -22
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +50 -5
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +16 -23
- package/src/sap/fe/core/converters/controls/Common/Form.js +25 -38
- package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -0
- package/src/sap/fe/core/converters/controls/Common/KPI.js +32 -47
- package/src/sap/fe/core/converters/controls/Common/Table.js +464 -506
- package/src/sap/fe/core/converters/controls/Common/Table.ts +335 -219
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +17 -28
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +1 -2
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +66 -90
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +10 -1
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +49 -73
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +6 -10
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +35 -50
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +110 -60
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +137 -41
- package/src/sap/fe/core/converters/helpers/Aggregation.js +19 -30
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +5 -5
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +11 -14
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +14 -21
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +4 -6
- package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -7
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -3
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +18 -52
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -34
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +103 -74
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +111 -39
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +28 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -9
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +61 -52
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +60 -21
- package/src/sap/fe/core/definition/FEDefinition.js +104 -44
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +37 -7
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +42 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -5
- package/src/sap/fe/core/formatters/FiscalFormat.js +24 -24
- package/src/sap/fe/core/formatters/ValueFormatter.js +4 -23
- package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -18
- package/src/sap/fe/core/fpm/Component.js +12 -14
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +20 -15
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +22 -13
- package/src/sap/fe/core/helpers/BindingHelper.js +3 -3
- package/src/sap/fe/core/helpers/BindingHelper.ts +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +55 -62
- package/src/sap/fe/core/helpers/DeleteHelper.ts +48 -51
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +4 -7
- package/src/sap/fe/core/helpers/FPMHelper.js +4 -7
- package/src/sap/fe/core/helpers/HTTP503Handler.js +2 -1
- package/src/sap/fe/core/helpers/HTTP503Handler.ts +4 -3
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -5
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +6 -6
- package/src/sap/fe/core/helpers/LoaderUtils.js +8 -3
- package/src/sap/fe/core/helpers/LoaderUtils.ts +15 -4
- package/src/sap/fe/core/helpers/MessageStrip.js +3 -4
- package/src/sap/fe/core/helpers/MetaModelFunction.js +26 -40
- package/src/sap/fe/core/helpers/MetaPath.js +9 -7
- package/src/sap/fe/core/helpers/MetaPath.ts +9 -3
- package/src/sap/fe/core/helpers/ModelHelper.js +33 -57
- package/src/sap/fe/core/helpers/ModelHelper.ts +3 -3
- package/src/sap/fe/core/helpers/PasteHelper.js +11 -19
- package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -1
- package/src/sap/fe/core/helpers/RecommendationHelper.js +3 -4
- package/src/sap/fe/core/helpers/ResourceModelHelper.js +3 -5
- package/src/sap/fe/core/helpers/SizeHelper.js +3 -5
- package/src/sap/fe/core/helpers/StableIdHelper.js +13 -11
- package/src/sap/fe/core/helpers/StableIdHelper.ts +5 -1
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +28 -38
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.js +19 -40
- package/src/sap/fe/core/helpers/TitleHelper.ts +5 -25
- package/src/sap/fe/core/helpers/TypeGuards.js +25 -18
- package/src/sap/fe/core/helpers/TypeGuards.ts +7 -0
- package/src/sap/fe/core/helpers/WebSocket.js +4 -4
- package/src/sap/fe/core/library.js +8 -7
- package/src/sap/fe/core/library.ts +2 -0
- package/src/sap/fe/core/manifestMerger/AddNewPage.js +9 -11
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +14 -25
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +15 -17
- package/src/sap/fe/core/messagebundle.properties +21 -0
- package/src/sap/fe/core/messagebundle_ar.properties +5 -1
- package/src/sap/fe/core/messagebundle_bg.properties +4 -0
- package/src/sap/fe/core/messagebundle_ca.properties +4 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +4 -0
- package/src/sap/fe/core/messagebundle_cs.properties +8 -4
- package/src/sap/fe/core/messagebundle_cy.properties +4 -0
- package/src/sap/fe/core/messagebundle_da.properties +4 -0
- package/src/sap/fe/core/messagebundle_de.properties +4 -0
- package/src/sap/fe/core/messagebundle_el.properties +4 -0
- package/src/sap/fe/core/messagebundle_en.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +249 -231
- package/src/sap/fe/core/messagebundle_es.properties +5 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +4 -0
- package/src/sap/fe/core/messagebundle_et.properties +4 -0
- package/src/sap/fe/core/messagebundle_fi.properties +4 -0
- package/src/sap/fe/core/messagebundle_fr.properties +6 -2
- package/src/sap/fe/core/messagebundle_fr_CA.properties +4 -0
- package/src/sap/fe/core/messagebundle_hi.properties +4 -0
- package/src/sap/fe/core/messagebundle_hr.properties +4 -0
- package/src/sap/fe/core/messagebundle_hu.properties +4 -0
- package/src/sap/fe/core/messagebundle_id.properties +4 -0
- package/src/sap/fe/core/messagebundle_it.properties +4 -0
- package/src/sap/fe/core/messagebundle_iw.properties +4 -0
- package/src/sap/fe/core/messagebundle_ja.properties +4 -0
- package/src/sap/fe/core/messagebundle_kk.properties +4 -0
- package/src/sap/fe/core/messagebundle_ko.properties +4 -0
- package/src/sap/fe/core/messagebundle_lt.properties +4 -0
- package/src/sap/fe/core/messagebundle_lv.properties +4 -0
- package/src/sap/fe/core/messagebundle_mk.properties +4 -0
- package/src/sap/fe/core/messagebundle_ms.properties +4 -0
- package/src/sap/fe/core/messagebundle_nl.properties +4 -0
- package/src/sap/fe/core/messagebundle_no.properties +4 -0
- package/src/sap/fe/core/messagebundle_pl.properties +4 -0
- package/src/sap/fe/core/messagebundle_pt.properties +4 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +4 -0
- package/src/sap/fe/core/messagebundle_ro.properties +4 -0
- package/src/sap/fe/core/messagebundle_ru.properties +4 -0
- package/src/sap/fe/core/messagebundle_sh.properties +4 -0
- package/src/sap/fe/core/messagebundle_sk.properties +4 -0
- package/src/sap/fe/core/messagebundle_sl.properties +4 -0
- package/src/sap/fe/core/messagebundle_sr.properties +4 -0
- package/src/sap/fe/core/messagebundle_sv.properties +4 -0
- package/src/sap/fe/core/messagebundle_th.properties +4 -0
- package/src/sap/fe/core/messagebundle_tr.properties +5 -1
- package/src/sap/fe/core/messagebundle_uk.properties +4 -0
- package/src/sap/fe/core/messagebundle_vi.properties +4 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +4 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +4 -0
- package/src/sap/fe/core/operationsHelper.js +23 -27
- package/src/sap/fe/core/operationsHelper.ts +6 -7
- package/src/sap/fe/core/rootView/Fcl.controller.js +53 -40
- package/src/sap/fe/core/rootView/Fcl.controller.ts +42 -7
- package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -10
- package/src/sap/fe/core/rootView/RootViewBaseController.js +22 -21
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +10 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +4 -3
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -0
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +12 -10
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +6 -2
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +8 -13
- package/src/sap/fe/core/services/ContextSharingServiceFactory.js +5 -7
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +31 -8
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +31 -5
- package/src/sap/fe/core/services/InlineEditServiceFactory.js +190 -0
- package/src/sap/fe/core/services/InlineEditServiceFactory.ts +226 -0
- package/src/sap/fe/core/services/NavigationServiceFactory.js +10 -15
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +76 -56
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +47 -14
- package/src/sap/fe/core/services/ShellServicesFactory.js +32 -34
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +75 -60
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +58 -12
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -9
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +13 -18
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +3 -0
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +7 -9
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +12 -16
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +4 -7
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +5 -6
- package/src/sap/fe/core/support/CommonHelper.js +2 -3
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +3 -4
- package/src/sap/fe/core/templating/CommonFormatters.js +6 -8
- package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.js +53 -5
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +129 -7
- package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -11
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +33 -56
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +4 -5
- package/src/sap/fe/core/templating/EntitySetHelper.js +11 -19
- package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
- package/src/sap/fe/core/templating/FieldControlHelper.js +13 -20
- package/src/sap/fe/core/templating/FilterTemplating.js +6 -9
- package/src/sap/fe/core/templating/PropertyHelper.js +33 -63
- package/src/sap/fe/core/templating/PropertyHelper.ts +0 -1
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +13 -21
- package/src/sap/fe/core/templating/UIFormatters.js +57 -78
- package/src/sap/fe/core/templating/UIFormatters.ts +2 -1
- package/src/sap/fe/core/type/Date.js +2 -2
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
- package/src/sap/fe/core/type/EDM.js +3 -5
- package/src/sap/fe/core/type/Email.js +17 -6
- package/src/sap/fe/core/type/Email.ts +23 -4
- package/src/sap/fe/core/type/FiscalDate.js +8 -9
- package/src/sap/fe/core/type/InputMask.js +3 -4
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +0 -299
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +0 -87
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +0 -43
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +0 -251
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +0 -471
|
@@ -28,7 +28,6 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
28
28
|
let navigatedPaths = [];
|
|
29
29
|
const navigationProperties = [];
|
|
30
30
|
resolvedMetaPath.objectPath.forEach(objectPart => {
|
|
31
|
-
var _currentEntitySet;
|
|
32
31
|
if (isServiceObject(objectPart)) {
|
|
33
32
|
switch (objectPart._type) {
|
|
34
33
|
case "NavigationProperty":
|
|
@@ -49,7 +48,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
49
48
|
}
|
|
50
49
|
currentEntitySet = objectPart;
|
|
51
50
|
previousEntitySet = currentEntitySet;
|
|
52
|
-
currentEntityType =
|
|
51
|
+
currentEntityType = currentEntitySet?.entityType;
|
|
53
52
|
break;
|
|
54
53
|
default:
|
|
55
54
|
break;
|
|
@@ -80,13 +79,13 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
80
79
|
* @returns {ConverterContext} A converter context for the converters
|
|
81
80
|
*/
|
|
82
81
|
let ConverterContext = /*#__PURE__*/function () {
|
|
83
|
-
|
|
82
|
+
//private manifestWrapper: ManifestWrapper;
|
|
83
|
+
|
|
84
|
+
function ConverterContext(convertedTypes, manifestWrapper, diagnostics, targetDataModelPath) {
|
|
84
85
|
this.convertedTypes = convertedTypes;
|
|
85
|
-
this.
|
|
86
|
+
this.manifestWrapper = manifestWrapper;
|
|
86
87
|
this.diagnostics = diagnostics;
|
|
87
|
-
this.mergeFn = mergeFn;
|
|
88
88
|
this.targetDataModelPath = targetDataModelPath;
|
|
89
|
-
this.manifestWrapper = new ManifestWrapper(this.manifestSettings, mergeFn);
|
|
90
89
|
this.baseContextPath = getTargetObjectPath(this.targetDataModelPath);
|
|
91
90
|
}
|
|
92
91
|
var _proto = ConverterContext.prototype;
|
|
@@ -202,9 +201,8 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
202
201
|
* @returns The entity type of the parameter
|
|
203
202
|
*/;
|
|
204
203
|
_proto.getParameterEntityType = function getParameterEntityType() {
|
|
205
|
-
var _parameterEntityType$, _parameterEntityType$2;
|
|
206
204
|
const parameterEntityType = this.targetDataModelPath.startingEntitySet.entityType;
|
|
207
|
-
const isParameterized = !!
|
|
205
|
+
const isParameterized = !!parameterEntityType.annotations?.Common?.ResultContext;
|
|
208
206
|
return isParameterized && parameterEntityType;
|
|
209
207
|
}
|
|
210
208
|
|
|
@@ -234,7 +232,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
234
232
|
}, this.convertedTypes, isAbsolute ? undefined : this.targetDataModelPath.contextLocation, true);
|
|
235
233
|
return {
|
|
236
234
|
annotation: target.target,
|
|
237
|
-
converterContext: new ConverterContext(this.convertedTypes, this.
|
|
235
|
+
converterContext: new ConverterContext(this.convertedTypes, this.manifestWrapper, this.diagnostics, dataModelObjectPath)
|
|
238
236
|
};
|
|
239
237
|
}
|
|
240
238
|
|
|
@@ -313,7 +311,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
313
311
|
_proto.getConverterContextFor = function getConverterContextFor(contextPath) {
|
|
314
312
|
const resolvedMetaPath = this.convertedTypes.resolvePath(contextPath);
|
|
315
313
|
const targetPath = getDataModelPathForEntitySet(resolvedMetaPath, this.convertedTypes);
|
|
316
|
-
return new ConverterContext(this.convertedTypes, this.
|
|
314
|
+
return new ConverterContext(this.convertedTypes, this.manifestWrapper, this.diagnostics, targetPath);
|
|
317
315
|
}
|
|
318
316
|
|
|
319
317
|
/**
|
|
@@ -329,7 +327,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
329
327
|
let outAnnotations = [];
|
|
330
328
|
annotationSources.forEach(annotationSource => {
|
|
331
329
|
if (annotationSource) {
|
|
332
|
-
const annotations =
|
|
330
|
+
const annotations = annotationSource?.annotations[vocabularyName] || {};
|
|
333
331
|
if (annotations) {
|
|
334
332
|
outAnnotations = Object.keys(annotations).filter(annotation => annotations[annotation].term === annotationTerm).reduce((previousValue, key) => {
|
|
335
333
|
previousValue.push(annotations[key]);
|
|
@@ -366,11 +364,10 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
366
364
|
* @param diagnostics
|
|
367
365
|
* @param mergeFn
|
|
368
366
|
* @param targetDataModelPath
|
|
369
|
-
* @param
|
|
367
|
+
* @param manifestWrapper
|
|
370
368
|
* @returns The current converter context
|
|
371
369
|
*/;
|
|
372
|
-
ConverterContext.createConverterContextForMacro = function createConverterContextForMacro(entityName, oMetaModelContext, diagnostics, mergeFn, targetDataModelPath) {
|
|
373
|
-
let manifestSettings = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
370
|
+
ConverterContext.createConverterContextForMacro = function createConverterContextForMacro(entityName, oMetaModelContext, diagnostics, mergeFn, targetDataModelPath, manifestWrapper) {
|
|
374
371
|
const oMetaModel = oMetaModelContext.isA("sap.ui.model.odata.v4.ODataMetaModel") ? oMetaModelContext : oMetaModelContext.getModel();
|
|
375
372
|
const oConvertedMetadata = convertTypes(oMetaModel);
|
|
376
373
|
let targetEntitySet = oConvertedMetadata.entitySets.find(entitySet => entitySet.name === entityName);
|
|
@@ -378,18 +375,20 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
378
375
|
targetEntitySet = oConvertedMetadata.singletons.find(entitySet => entitySet.name === entityName);
|
|
379
376
|
}
|
|
380
377
|
if (!targetDataModelPath || targetEntitySet !== targetDataModelPath.startingEntitySet) {
|
|
381
|
-
var _targetEntitySet;
|
|
382
378
|
targetDataModelPath = {
|
|
383
379
|
startingEntitySet: targetEntitySet,
|
|
384
380
|
navigationProperties: [],
|
|
385
381
|
targetEntitySet: targetEntitySet,
|
|
386
382
|
// contained entity does not have an entity set but only entity type
|
|
387
|
-
targetEntityType:
|
|
383
|
+
targetEntityType: targetEntitySet?.entityType || oConvertedMetadata.entityTypes.find(entityType => entityType.name === entityName),
|
|
388
384
|
targetObject: targetEntitySet,
|
|
389
385
|
convertedTypes: oConvertedMetadata
|
|
390
386
|
};
|
|
391
387
|
}
|
|
392
|
-
|
|
388
|
+
if (!manifestWrapper) {
|
|
389
|
+
manifestWrapper = new ManifestWrapper({}, mergeFn);
|
|
390
|
+
}
|
|
391
|
+
return new ConverterContext(oConvertedMetadata, manifestWrapper, diagnostics, targetDataModelPath);
|
|
393
392
|
}
|
|
394
393
|
|
|
395
394
|
/**
|
|
@@ -404,4 +403,4 @@ sap.ui.define(["sap/fe/core/converters/ManifestWrapper", "sap/fe/core/converters
|
|
|
404
403
|
}();
|
|
405
404
|
return ConverterContext;
|
|
406
405
|
}, false);
|
|
407
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0Fubm90YXRpb25UZXJtIiwidkFubm90YXRpb25QYXRoIiwiZ2V0RGF0YU1vZGVsUGF0aEZvckVudGl0eVNldCIsInJlc29sdmVkTWV0YVBhdGgiLCJjb252ZXJ0ZWRUeXBlcyIsInJvb3RFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5U2V0IiwicHJldmlvdXNFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsIm5hdmlnYXRlZFBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJvYmplY3RQYXRoIiwiZm9yRWFjaCIsIm9iamVjdFBhcnQiLCJfY3VycmVudEVudGl0eVNldCIsImlzU2VydmljZU9iamVjdCIsIl90eXBlIiwicHVzaCIsIm5hbWUiLCJ0YXJnZXRUeXBlIiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImhhc093blByb3BlcnR5Iiwiam9pbiIsInVuZGVmaW5lZCIsImVudGl0eVR5cGUiLCJkYXRhTW9kZWxQYXRoIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlUeXBlIiwidGFyZ2V0RW50aXR5U2V0IiwiY29udGV4dExvY2F0aW9uIiwidGFyZ2V0T2JqZWN0IiwidGFyZ2V0IiwiQ29udmVydGVyQ29udGV4dCIsIm1hbmlmZXN0U2V0dGluZ3MiLCJkaWFnbm9zdGljcyIsIm1lcmdlRm4iLCJ0YXJnZXREYXRhTW9kZWxQYXRoIiwibWFuaWZlc3RXcmFwcGVyIiwiTWFuaWZlc3RXcmFwcGVyIiwiYmFzZUNvbnRleHRQYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsIl9wcm90byIsInByb3RvdHlwZSIsIl9nZXRFbnRpdHlUeXBlRnJvbUZ1bGx5UXVhbGlmaWVkTmFtZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImVudGl0eVR5cGVzIiwiZmluZCIsInN0YXJ0c1dpdGgiLCJyZXBsYWNlQW5ub3RhdGlvbiIsInJlcGxhY2UiLCJnZXRBbm5vdGF0aW9uRW50aXR5VHlwZSIsImFubm90YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsIkVycm9yIiwiZ2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbiIsImdldENvbnRyb2xDb25maWd1cmF0aW9uIiwiaGFzRW50aXR5U2V0S2V5SW5NYW5pZmVzdCIsImdldEVudGl0eVNldCIsImxlbmd0aCIsImhhc0NvbnRleHRQYXRoS2V5SW5NYW5pZmVzdCIsImdldENvbnRleHRQYXRoIiwiaXNQYXRoQWJzb2x1dGUiLCJoYXNNdWx0aXBsZUVudGl0eVNldHMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsInNBbm5vdGF0aW9uUGF0aCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXRFbnRpdHlDb250YWluZXIiLCJlbnRpdHlDb250YWluZXIiLCJnZXRFbnRpdHlUeXBlIiwiZ2V0UGFyYW1ldGVyRW50aXR5VHlwZSIsIl9wYXJhbWV0ZXJFbnRpdHlUeXBlJCIsIl9wYXJhbWV0ZXJFbnRpdHlUeXBlJDIiLCJwYXJhbWV0ZXJFbnRpdHlUeXBlIiwiaXNQYXJhbWV0ZXJpemVkIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJSZXN1bHRDb250ZXh0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJpbmNsdWRlcyIsImlzQWJzb2x1dGUiLCJwYXRoIiwiYmFzZSIsInNwbGl0IiwiZW5kc1dpdGgiLCJyZXNvbHZlQWJzb2x1dGVQYXRoIiwiZGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGgiLCJ2aXNpdGVkT2JqZWN0cyIsImNvbnZlcnRlckNvbnRleHQiLCJnZXRUZW1wbGF0ZVR5cGUiLCJnZXRDb252ZXJ0ZWRUeXBlcyIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZW50aXR5VHlwZUZRTiIsIm1hdGNoIiwicmVwbGFjZWRBbm5vdGF0aW9uUGF0aCIsInN1YnN0cmluZyIsImdldE1hbmlmZXN0V3JhcHBlciIsImdldERpYWdub3N0aWNzIiwicmVzb2x2ZVBhdGgiLCJnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yIiwiY29udGV4dFBhdGgiLCJ0YXJnZXRQYXRoIiwiZ2V0QW5ub3RhdGlvbnNCeVRlcm0iLCJ2b2NhYnVsYXJ5TmFtZSIsImFubm90YXRpb25UZXJtIiwiYW5ub3RhdGlvblNvdXJjZXMiLCJhcmd1bWVudHMiLCJvdXRBbm5vdGF0aW9ucyIsImFubm90YXRpb25Tb3VyY2UiLCJmaWx0ZXIiLCJ0ZXJtIiwicmVkdWNlIiwicHJldmlvdXNWYWx1ZSIsImtleSIsImdldFJlbGF0aXZlTW9kZWxQYXRoRnVuY3Rpb24iLCJjb252ZXJ0ZWRNZXRhTW9kZWwiLCJzUGF0aCIsInNpbmdsZXRvblBhdGgiLCJzaW5nbGV0b25QYXRoVmlzaXRvciIsImVuaGFuY2VkUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiY29udGV4dFJlbGF0aXZlUGF0aCIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJlbnRpdHlOYW1lIiwib01ldGFNb2RlbENvbnRleHQiLCJvTWV0YU1vZGVsIiwiaXNBIiwiZ2V0TW9kZWwiLCJvQ29udmVydGVkTWV0YWRhdGEiLCJjb252ZXJ0VHlwZXMiLCJlbnRpdHlTZXRzIiwiZW50aXR5U2V0Iiwic2luZ2xldG9ucyIsIl90YXJnZXRFbnRpdHlTZXQiLCJmZXRjaFRleHRGcm9tTWV0YU1vZGVsIiwiTW9kZWxIZWxwZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbnZlcnRlckNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuXHRBbm5vdGF0aW9uVGVybSxcblx0Q29udmVydGVkTWV0YWRhdGEsXG5cdEVudGl0eUNvbnRhaW5lcixcblx0RW50aXR5U2V0LFxuXHRFbnRpdHlUeXBlLFxuXHROYXZpZ2F0aW9uUHJvcGVydHksXG5cdFJlc29sdXRpb25UYXJnZXQsXG5cdFNlcnZpY2VPYmplY3QsXG5cdFNlcnZpY2VPYmplY3RBbmRBbm5vdGF0aW9uLFxuXHRTaW5nbGV0b25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFJlY29yZENvbXBsZXhUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlUeXBlQW5ub3RhdGlvbnMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0VkbV9UeXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBCYXNlTWFuaWZlc3RTZXR0aW5ncywgQ29udHJvbE1hbmlmZXN0Q29uZmlndXJhdGlvbiwgVGVtcGxhdGVUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFdyYXBwZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRUeXBlcywgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RGcm9tUGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHR5cGUgeyBJRGlhZ25vc3RpY3MsIFBhZ2VDb250ZXh0UGF0aFRhcmdldCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL1RlbXBsYXRlQ29udmVydGVyXCI7XG5pbXBvcnQgeyBzaW5nbGV0b25QYXRoVmlzaXRvciB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgaXNTZXJ2aWNlT2JqZWN0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZW5oYW5jZURhdGFNb2RlbFBhdGgsIGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgsIGdldFRhcmdldE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZEFubm90YXRpb25Db250ZXh0PFQ+ID0ge1xuXHRhbm5vdGF0aW9uOiBBbm5vdGF0aW9uVGVybTxUPiB8IHVuZGVmaW5lZDtcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dDxQYWdlQ29udGV4dFBhdGhUYXJnZXQ+O1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBvYmplY3QgaXMgYW4gYW5ub3RhdGlvbiB0ZXJtLlxuICogQHBhcmFtIHZBbm5vdGF0aW9uUGF0aFxuICogQHJldHVybnMgYHRydWVgIGlmIGl0J3MgYW4gYW5ub3RhdGlvbiB0ZXJtXG4gKi9cbmNvbnN0IGlzQW5ub3RhdGlvblRlcm0gPSBmdW5jdGlvbiA8VD4odkFubm90YXRpb25QYXRoOiBzdHJpbmcgfCBBbm5vdGF0aW9uVGVybTxUPik6IHZBbm5vdGF0aW9uUGF0aCBpcyBBbm5vdGF0aW9uVGVybTxUPiB7XG5cdHJldHVybiB0eXBlb2YgdkFubm90YXRpb25QYXRoID09PSBcIm9iamVjdFwiO1xufTtcblxuY29uc3QgZ2V0RGF0YU1vZGVsUGF0aEZvckVudGl0eVNldCA9IGZ1bmN0aW9uIDxUPihcblx0cmVzb2x2ZWRNZXRhUGF0aDogUmVzb2x1dGlvblRhcmdldDxUPixcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhXG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoPFQ+IHtcblx0bGV0IHJvb3RFbnRpdHlTZXQ6IEVudGl0eVNldCB8IHVuZGVmaW5lZDtcblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IHVuZGVmaW5lZDtcblx0bGV0IHByZXZpb3VzRW50aXR5U2V0OiBFbnRpdHlTZXQgfCB1bmRlZmluZWQ7XG5cdGxldCBjdXJyZW50RW50aXR5VHlwZTogRW50aXR5VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IG5hdmlnYXRlZFBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydGllczogTmF2aWdhdGlvblByb3BlcnR5W10gPSBbXTtcblx0cmVzb2x2ZWRNZXRhUGF0aC5vYmplY3RQYXRoLmZvckVhY2goKG9iamVjdFBhcnQ6IFNlcnZpY2VPYmplY3RBbmRBbm5vdGF0aW9uKSA9PiB7XG5cdFx0aWYgKGlzU2VydmljZU9iamVjdChvYmplY3RQYXJ0KSkge1xuXHRcdFx0c3dpdGNoIChvYmplY3RQYXJ0Ll90eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIjpcblx0XHRcdFx0XHRuYXZpZ2F0ZWRQYXRocy5wdXNoKG9iamVjdFBhcnQubmFtZSk7XG5cdFx0XHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXMucHVzaChvYmplY3RQYXJ0KTtcblx0XHRcdFx0XHRjdXJyZW50RW50aXR5VHlwZSA9IG9iamVjdFBhcnQudGFyZ2V0VHlwZTtcblx0XHRcdFx0XHRpZiAocHJldmlvdXNFbnRpdHlTZXQgJiYgcHJldmlvdXNFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5oYXNPd25Qcm9wZXJ0eShuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKSkpIHtcblx0XHRcdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBwcmV2aW91c0VudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW25hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpXSBhcyBFbnRpdHlTZXQ7XG5cdFx0XHRcdFx0XHRwcmV2aW91c0VudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdFx0XHRuYXZpZ2F0ZWRQYXRocyA9IFtdO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcIkVudGl0eVNldFwiOlxuXHRcdFx0XHRcdGlmIChyb290RW50aXR5U2V0ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdHJvb3RFbnRpdHlTZXQgPSBvYmplY3RQYXJ0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gb2JqZWN0UGFydDtcblx0XHRcdFx0XHRwcmV2aW91c0VudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSBjdXJyZW50RW50aXR5U2V0Py5lbnRpdHlUeXBlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cdGNvbnN0IGRhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8VD4gPSB7XG5cdFx0c3RhcnRpbmdFbnRpdHlTZXQ6IHJvb3RFbnRpdHlTZXQgYXMgRW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVR5cGU6IGN1cnJlbnRFbnRpdHlUeXBlIGFzIEVudGl0eVR5cGUsXG5cdFx0dGFyZ2V0RW50aXR5U2V0OiBjdXJyZW50RW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBuYXZpZ2F0aW9uUHJvcGVydGllcyxcblx0XHRjb250ZXh0TG9jYXRpb246IHVuZGVmaW5lZCxcblx0XHR0YXJnZXRPYmplY3Q6IHJlc29sdmVkTWV0YVBhdGgudGFyZ2V0LFxuXHRcdGNvbnZlcnRlZFR5cGVzOiBjb252ZXJ0ZWRUeXBlc1xuXHR9O1xuXHRkYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbiA9IGRhdGFNb2RlbFBhdGg7XG5cdHJldHVybiBkYXRhTW9kZWxQYXRoO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYSBDb252ZXJ0ZXJDb250ZXh0IG9iamVjdCB0aGF0IHdpbGwgYmUgdXNlZCB3aXRoaW4gdGhlIGNvbnZlcnRlcnMuXG4gKiBAcGFyYW0ge0NvbnZlcnRlZE1ldGFkYXRhfSBvQ29udmVydGVkVHlwZXMgVGhlIGNvbnZlcnRlZCBhbm5vdGF0aW9uIGFuZCBzZXJ2aWNlIHR5cGVzXG4gKiBAcGFyYW0ge0Jhc2VNYW5pZmVzdFNldHRpbmdzfSBvTWFuaWZlc3RTZXR0aW5ncyBUaGUgbWFuaWZlc3RTZXR0aW5ncyB0aGF0IGFwcGxpZXMgdG8gdGhpcyBwYWdlXG4gKiBAcGFyYW0ge1RlbXBsYXRlVHlwZX0gdGVtcGxhdGVUeXBlIFRoZSB0eXBlIG9mIHRlbXBsYXRlIHdlJ3JlIGxvb2tpbmcgYXQgcmlnaHQgbm93XG4gKiBAcGFyYW0ge0lEaWFnbm9zdGljc30gZGlhZ25vc3RpY3MgVGhlIGRpYWdub3N0aWNzIHNoaW1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG1lcmdlRm4gVGhlIGZ1bmN0aW9uIHRvIGJlIHVzZWQgdG8gcGVyZm9tIHNvbWUgZGVlcCBtZXJnZXMgYmV0d2VlbiBvYmplY3RcbiAqIEBwYXJhbSB7RGF0YU1vZGVsT2JqZWN0UGF0aH0gdGFyZ2V0RGF0YU1vZGVsUGF0aCBUaGUgZ2xvYmFsIHBhdGggdG8gcmVhY2ggdGhlIGVudGl0eVNldFxuICogQHJldHVybnMge0NvbnZlcnRlckNvbnRleHR9IEEgY29udmVydGVyIGNvbnRleHQgZm9yIHRoZSBjb252ZXJ0ZXJzXG4gKi9cbmNsYXNzIENvbnZlcnRlckNvbnRleHQ8VCA9IFBhZ2VDb250ZXh0UGF0aFRhcmdldD4ge1xuXHRwcml2YXRlIG1hbmlmZXN0V3JhcHBlcjogTWFuaWZlc3RXcmFwcGVyO1xuXG5cdHByaXZhdGUgYmFzZUNvbnRleHRQYXRoOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0cHJpdmF0ZSBtYW5pZmVzdFNldHRpbmdzOiBCYXNlTWFuaWZlc3RTZXR0aW5ncyxcblx0XHRwcml2YXRlIGRpYWdub3N0aWNzOiBJRGlhZ25vc3RpY3MsXG5cdFx0cHJpdmF0ZSBtZXJnZUZuOiBGdW5jdGlvbixcblx0XHRwcml2YXRlIHRhcmdldERhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8VD5cblx0KSB7XG5cdFx0dGhpcy5tYW5pZmVzdFdyYXBwZXIgPSBuZXcgTWFuaWZlc3RXcmFwcGVyKHRoaXMubWFuaWZlc3RTZXR0aW5ncywgbWVyZ2VGbik7XG5cdFx0dGhpcy5iYXNlQ29udGV4dFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aCk7XG5cdH1cblxuXHRwcml2YXRlIF9nZXRFbnRpdHlUeXBlRnJvbUZ1bGx5UXVhbGlmaWVkTmFtZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmNvbnZlcnRlZFR5cGVzLmVudGl0eVR5cGVzLmZpbmQoKGVudGl0eVR5cGUpID0+IHtcblx0XHRcdGlmIChmdWxseVF1YWxpZmllZE5hbWUuc3RhcnRzV2l0aChlbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSkpIHtcblx0XHRcdFx0Y29uc3QgcmVwbGFjZUFubm90YXRpb24gPSBmdWxseVF1YWxpZmllZE5hbWUucmVwbGFjZShlbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSwgXCJcIik7XG5cdFx0XHRcdHJldHVybiByZXBsYWNlQW5ub3RhdGlvbi5zdGFydHNXaXRoKFwiL1wiKSB8fCByZXBsYWNlQW5ub3RhdGlvbi5zdGFydHNXaXRoKFwiQFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgZW50aXR5VHlwZSBhc3NvY2lhdGVkIHdpdGggYW4gYW5ub3RhdGlvbiBvYmplY3QuXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uIFRoZSBhbm5vdGF0aW9uIG9iamVjdCBmb3Igd2hpY2ggd2Ugd2FudCB0byBmaW5kIHRoZSBlbnRpdHlUeXBlXG5cdCAqIEByZXR1cm5zIFRoZSBFbnRpdHlUeXBlIHRoZSBhbm5vdGF0aW9uIHJlZmVycyB0b1xuXHQgKi9cblx0Z2V0QW5ub3RhdGlvbkVudGl0eVR5cGU8VFQgZXh0ZW5kcyBTZXJ2aWNlT2JqZWN0QW5kQW5ub3RhdGlvbj4oXG5cdFx0YW5ub3RhdGlvbj86IFRUIGV4dGVuZHMgU2VydmljZU9iamVjdCA/IFRUIDogQW5ub3RhdGlvblRlcm08VFQ+XG5cdCk6IEVudGl0eVR5cGUge1xuXHRcdGlmIChhbm5vdGF0aW9uICYmIHR5cGVvZiBhbm5vdGF0aW9uID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IGFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRcdFx0Y29uc3QgdGFyZ2V0RW50aXR5VHlwZSA9IHRoaXMuX2dldEVudGl0eVR5cGVGcm9tRnVsbHlRdWFsaWZpZWROYW1lKGFubm90YXRpb25QYXRoKTtcblx0XHRcdGlmICghdGFyZ2V0RW50aXR5VHlwZSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIEVudGl0eSBUeXBlIGZvciAke2Fubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lfWApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRhcmdldEVudGl0eVR5cGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIG1hbmlmZXN0IHNldHRpbmdzIGRlZmluZWQgZm9yIGEgc3BlY2lmaWMgY29udHJvbCB3aXRoaW4gY29udHJvbENvbmZpZ3VyYXRpb24uXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uUGF0aCBUaGUgYW5ub3RhdGlvbiBwYXRoIG9yIG9iamVjdCB0byBldmFsdWF0ZVxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCBjb25maWd1cmF0aW9uIGZvciB0aGF0IHNwZWNpZmljIGFubm90YXRpb24gcGF0aCBpZiBpdCBleGlzdHNcblx0ICovXG5cdGdldE1hbmlmZXN0Q29udHJvbENvbmZpZ3VyYXRpb248VFQgPSBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uPihhbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgQW5ub3RhdGlvblRlcm08dW5rbm93bj4pOiBUVCB7XG5cdFx0aWYgKGlzQW5ub3RhdGlvblRlcm0oYW5ub3RhdGlvblBhdGgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb248VFQ+KFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aC5mdWxseVF1YWxpZmllZE5hbWUucmVwbGFjZSh0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBoYXNFbnRpdHlTZXRLZXlJbk1hbmlmZXN0ID1cblx0XHRcdHR5cGVvZiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRFbnRpdHlTZXQoKSA9PT0gXCJzdHJpbmdcIiAmJiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRFbnRpdHlTZXQoKSEubGVuZ3RoID4gMDtcblx0XHRjb25zdCBoYXNDb250ZXh0UGF0aEtleUluTWFuaWZlc3QgPVxuXHRcdFx0dHlwZW9mIHRoaXMubWFuaWZlc3RXcmFwcGVyLmdldENvbnRleHRQYXRoKCkgPT09IFwic3RyaW5nXCIgJiYgdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udGV4dFBhdGgoKSEubGVuZ3RoID4gMDtcblx0XHRjb25zdCBpc1BhdGhBYnNvbHV0ZSA9IGFubm90YXRpb25QYXRoLnN0YXJ0c1dpdGgoXCIvXCIpO1xuXG5cdFx0Ly8gSW4gY2FzZSBvZiBtdWx0aXBsZS1lbnRpdHlTZXQsIHdlIGNvbXBhcmUgdGhlIGVudGl0eSBzZXQgb2YgdGhlIENvbnRyb2xDb25maWd1cmF0aW9uIHdpdGggd2hhdCBpcyBzcGVjaWZpZWQgZWl0aGVyIGluIHRoZSAnZW50aXR5U2V0JyBvciAnY29udGV4dFBhdGgnIG1hbmlmZXN0IHNldHRpbmcuXG5cdFx0aWYgKCF0aGlzLm1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZUVudGl0eVNldHMoKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMubWFuaWZlc3RXcmFwcGVyLmdldENvbnRyb2xDb25maWd1cmF0aW9uKGFubm90YXRpb25QYXRoKTtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0IWlzUGF0aEFic29sdXRlICYmXG5cdFx0XHQoKGhhc0VudGl0eVNldEtleUluTWFuaWZlc3QgJiYgdGhpcy5iYXNlQ29udGV4dFBhdGggIT09IGAvJHt0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRFbnRpdHlTZXQoKX1gKSB8fFxuXHRcdFx0XHQoaGFzQ29udGV4dFBhdGhLZXlJbk1hbmlmZXN0ICYmIHRoaXMuYmFzZUNvbnRleHRQYXRoICE9PSB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250ZXh0UGF0aCgpKSlcblx0XHQpIHtcblx0XHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbjxUVD4oYCR7dGhpcy5iYXNlQ29udGV4dFBhdGh9LyR7YW5ub3RhdGlvblBhdGh9YCk7XG5cdFx0fSBlbHNlIGlmIChPYmplY3Qua2V5cyh0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbihhbm5vdGF0aW9uUGF0aCkpLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbihhbm5vdGF0aW9uUGF0aCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbihgJHt0aGlzLmJhc2VDb250ZXh0UGF0aH0vJHthbm5vdGF0aW9uUGF0aH1gKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYW4gYWJzb2x1dGUgYW5ub3RhdGlvbiBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IG1ldGEgbW9kZWwgY29udGV4dC5cblx0ICogQHBhcmFtIHNBbm5vdGF0aW9uUGF0aCBUaGUgcmVsYXRpdmUgYW5ub3RhdGlvbiBwYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBjb3JyZWN0IGFubm90YXRpb24gcGF0aCBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0XG5cdCAqL1xuXHRnZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKHNBbm5vdGF0aW9uUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXNBbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0cmV0dXJuIHNBbm5vdGF0aW9uUGF0aDtcblx0XHR9XG5cdFx0aWYgKHNBbm5vdGF0aW9uUGF0aFswXSA9PT0gXCIvXCIpIHtcblx0XHRcdHJldHVybiBzQW5ub3RhdGlvblBhdGg7XG5cdFx0fVxuXHRcdHJldHVybiBgJHt0aGlzLmJhc2VDb250ZXh0UGF0aH0vJHtzQW5ub3RhdGlvblBhdGh9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBlbnRpdHlTZXQuXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IEVudGl0eVNldCBpZiBpdCBleGlzdHMuXG5cdCAqL1xuXHRnZXRFbnRpdHlTZXQoKTogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQgfCBTaW5nbGV0b247XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGNvbnRleHQgcGF0aC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgY29udmVydGVyLlxuXHQgKi9cblx0Z2V0Q29udGV4dFBhdGgoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5iYXNlQ29udGV4dFBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGN1cnJlbnQgZGF0YSBtb2RlbCBvYmplY3QgcGF0aC5cblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgZGF0YSBtb2RlbCBvYmplY3QgcGF0aFxuXHQgKi9cblx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpOiBEYXRhTW9kZWxPYmplY3RQYXRoPFQ+IHtcblx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgRW50aXR5Q29udGFpbmVyLlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzZXJ2aWNlIEVudGl0eUNvbnRhaW5lclxuXHQgKi9cblx0Z2V0RW50aXR5Q29udGFpbmVyKCk6IEVudGl0eUNvbnRhaW5lciB7XG5cdFx0cmV0dXJuIHRoaXMuY29udmVydGVkVHlwZXMuZW50aXR5Q29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgRW50aXR5VHlwZSBiYXNlZCBvbiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUuXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IEVudGl0eVR5cGUuXG5cdCAqL1xuXHRnZXRFbnRpdHlUeXBlKCk6IEVudGl0eVR5cGUge1xuXHRcdHJldHVybiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBlbnRpdHkgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGluIGNhc2Ugb2YgYSBwYXJhbWV0ZXJpemVkIHNlcnZpY2UuXG5cdCAqIEByZXR1cm5zIFRoZSBlbnRpdHkgdHlwZSBvZiB0aGUgcGFyYW1ldGVyXG5cdCAqL1xuXHRnZXRQYXJhbWV0ZXJFbnRpdHlUeXBlKCk6IEVudGl0eVR5cGUge1xuXHRcdGNvbnN0IHBhcmFtZXRlckVudGl0eVR5cGUgPSB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQuZW50aXR5VHlwZTtcblx0XHRjb25zdCBpc1BhcmFtZXRlcml6ZWQgPSAhIXBhcmFtZXRlckVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LkNvbW1vbj8uUmVzdWx0Q29udGV4dDtcblx0XHRyZXR1cm4gKGlzUGFyYW1ldGVyaXplZCAmJiBwYXJhbWV0ZXJFbnRpdHlUeXBlKSBhcyBFbnRpdHlUeXBlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhbiBhbm5vdGF0aW9uIGZyb20gYW4gZW50aXR5IHR5cGUgYmFzZWQgb24gYW5ub3RhdGlvbiBwYXRoLlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGggVGhlIGFubm90YXRpb24gcGF0aCB0byBiZSBldmFsdWF0ZWRcblx0ICogQHJldHVybnMgVGhlIHRhcmdldCBhbm5vdGF0aW9uIHBhdGggYXMgd2VsbCBhcyBhIGNvbnZlcnRlciBjb250ZXh0IHRvIGdvIHdpdGggaXRcblx0ICovXG5cdGdldEVudGl0eVR5cGVBbm5vdGF0aW9uPFRUIGV4dGVuZHMgU2VydmljZU9iamVjdCB8IFJlY29yZENvbXBsZXhUeXBlPihhbm5vdGF0aW9uUGF0aDogc3RyaW5nKTogUmVzb2x2ZWRBbm5vdGF0aW9uQ29udGV4dDxUVD4ge1xuXHRcdGlmICghYW5ub3RhdGlvblBhdGguaW5jbHVkZXMoXCJAXCIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYE5vdCBhbiBhbm5vdGF0aW9uIHBhdGg6ICcke2Fubm90YXRpb25QYXRofSdgKTtcblx0XHR9XG5cblx0XHRjb25zdCBpc0Fic29sdXRlID0gYW5ub3RhdGlvblBhdGguc3RhcnRzV2l0aChcIi9cIik7XG5cdFx0bGV0IHBhdGg6IHN0cmluZztcblxuXHRcdGlmIChpc0Fic29sdXRlKSB7XG5cdFx0XHQvLyBwYXRoIGNhbiBiZSB1c2VkIGFzLWlzXG5cdFx0XHRwYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGJ1aWxkIGFuIGFic29sdXRlIHBhdGggYmFzZWQgb24gdGhlIGVudGl0eSB0eXBlICh0aGlzIGZ1bmN0aW9uIHdvcmtzIG9uIHRoZSB0eXBlISlcblx0XHRcdGNvbnN0IGJhc2UgPSB0aGlzLmdldENvbnRleHRQYXRoKCkuc3BsaXQoXCJAXCIsIDEpWzBdO1xuXHRcdFx0cGF0aCA9IGJhc2UuZW5kc1dpdGgoXCIvXCIpID8gYmFzZSArIGFubm90YXRpb25QYXRoIDogYCR7YmFzZX0vJHthbm5vdGF0aW9uUGF0aH1gO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRhcmdldDogUmVzb2x1dGlvblRhcmdldDxBbm5vdGF0aW9uVGVybTxUVD4+ID0gdGhpcy5yZXNvbHZlQWJzb2x1dGVQYXRoKHBhdGgpO1xuXG5cdFx0Y29uc3QgZGF0YU1vZGVsT2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGg8UGFnZUNvbnRleHRQYXRoVGFyZ2V0Pihcblx0XHRcdHsgdGFyZ2V0OiB0YXJnZXQudGFyZ2V0IGFzIFNlcnZpY2VPYmplY3QsIHZpc2l0ZWRPYmplY3RzOiB0YXJnZXQub2JqZWN0UGF0aCB9LFxuXHRcdFx0dGhpcy5jb252ZXJ0ZWRUeXBlcyxcblx0XHRcdGlzQWJzb2x1dGUgPyB1bmRlZmluZWQgOiB0aGlzLnRhcmdldERhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uLFxuXHRcdFx0dHJ1ZVxuXHRcdCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YW5ub3RhdGlvbjogdGFyZ2V0LnRhcmdldCxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IG5ldyBDb252ZXJ0ZXJDb250ZXh0KFxuXHRcdFx0XHR0aGlzLmNvbnZlcnRlZFR5cGVzLFxuXHRcdFx0XHR0aGlzLm1hbmlmZXN0U2V0dGluZ3MsXG5cdFx0XHRcdHRoaXMuZGlhZ25vc3RpY3MsXG5cdFx0XHRcdHRoaXMubWVyZ2VGbixcblx0XHRcdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aFxuXHRcdFx0KVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIHR5cGUgb2YgdGVtcGxhdGUgd2UncmUgd29ya2luZyBvbiAoZS5nLiBMaXN0UmVwb3J0IC8gT2JqZWN0UGFnZSAvIC4uLikuXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHRlbnBsYXRlIHR5cGVcblx0ICovXG5cdGdldFRlbXBsYXRlVHlwZSgpOiBUZW1wbGF0ZVR5cGUge1xuXHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRUZW1wbGF0ZVR5cGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgY29udmVydGVkIHR5cGVzLlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBjb252ZXJ0ZWQgdHlwZXNcblx0ICovXG5cdGdldENvbnZlcnRlZFR5cGVzKCk6IENvbnZlcnRlZE1ldGFkYXRhIHtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0ZWRUeXBlcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSBhIHJlbGF0aXZlIGFubm90YXRpb24gcGF0aCBiZXR3ZWVuIGFuIGFubm90YXRpb24gcGF0aCBhbmQgYW4gZW50aXR5IHR5cGUuXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uUGF0aFxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgYW5udG90YXRpb24gcGF0aC5cblx0ICovXG5cdGdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvblBhdGg6IHN0cmluZywgZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGFubm90YXRpb25QYXRoLnJlcGxhY2UoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyYW5zZm9ybSBhbiBlbnRpdHlUeXBlIGJhc2VkIHBhdGggdG8gYW4gZW50aXR5U2V0IGJhc2VkIG9uZSAodWk1IHRlbXBsYXRpbmcgZ2VuZXJhbGx5IGV4cGVjdCBhbiBlbnRpdHlTZXRCYXNlZFBhdGgpLlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGhcblx0ICogQHJldHVybnMgVGhlIEVudGl0eVNldCBiYXNlZCBhbm5vdGF0aW9uIHBhdGhcblx0ICovXG5cdGdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCFhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25QYXRoO1xuXHRcdH1cblx0XHRjb25zdCBlbnRpdHlUeXBlRlFOID0gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRcdGlmIChcblx0XHRcdHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQgfHxcblx0XHRcdCgodGhpcy5iYXNlQ29udGV4dFBhdGguc3RhcnRzV2l0aChcIi9cIikgJiYgdGhpcy5iYXNlQ29udGV4dFBhdGgubWF0Y2goL1xcLy9nKSkgfHwgW10pLmxlbmd0aCA+IDFcblx0XHQpIHtcblx0XHRcdGxldCByZXBsYWNlZEFubm90YXRpb25QYXRoID0gYW5ub3RhdGlvblBhdGgucmVwbGFjZShlbnRpdHlUeXBlRlFOLCBcIi9cIik7XG5cdFx0XHRpZiAocmVwbGFjZWRBbm5vdGF0aW9uUGF0aC5sZW5ndGggPiAyICYmIHJlcGxhY2VkQW5ub3RhdGlvblBhdGhbMF0gPT09IFwiL1wiICYmIHJlcGxhY2VkQW5ub3RhdGlvblBhdGhbMV0gPT09IFwiL1wiKSB7XG5cdFx0XHRcdHJlcGxhY2VkQW5ub3RhdGlvblBhdGggPSByZXBsYWNlZEFubm90YXRpb25QYXRoLnN1YnN0cmluZygxKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLmJhc2VDb250ZXh0UGF0aCArIChyZXBsYWNlZEFubm90YXRpb25QYXRoLnN0YXJ0c1dpdGgoXCIvXCIpID8gcmVwbGFjZWRBbm5vdGF0aW9uUGF0aCA6IGAvJHtyZXBsYWNlZEFubm90YXRpb25QYXRofWApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gYC8ke2Fubm90YXRpb25QYXRofWA7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBtYW5pZmVzdCB3cmFwcGVyIGZvciB0aGUgY3VycmVudCBjb250ZXh0LlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBtYW5pZmVzdCB3cmFwcGVyXG5cdCAqL1xuXHRnZXRNYW5pZmVzdFdyYXBwZXIoKTogTWFuaWZlc3RXcmFwcGVyIHtcblx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXI7XG5cdH1cblxuXHRnZXREaWFnbm9zdGljcygpOiBJRGlhZ25vc3RpY3Mge1xuXHRcdHJldHVybiB0aGlzLmRpYWdub3N0aWNzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSB0YXJnZXQgZnJvbSBhbiBhYnNvbHV0ZSBwYXRoLlxuXHQgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB3ZSB3YW50IHRvIGdldCB0aGUgdGFyZ2V0XG5cdCAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoXG5cdCAqL1xuXHRyZXNvbHZlQWJzb2x1dGVQYXRoPFRUPihwYXRoOiBzdHJpbmcpOiBSZXNvbHV0aW9uVGFyZ2V0PFRUPiB7XG5cdFx0cmV0dXJuIHRoaXMuY29udmVydGVkVHlwZXMucmVzb2x2ZVBhdGgocGF0aCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgYSBuZXcgY29udmVydGVyIGNvbnRleHQsIHNjb3BlZCBmb3IgYSBkaWZmZXJlbnQgY29udGV4dCBwYXRoLlxuXHQgKiBAcGFyYW0gY29udGV4dFBhdGggVGhlIHBhdGggd2Ugd2FudCB0byBvcmNoZXN0cmF0ZSB0aGUgY29udmVydGVyIGNvbnRleHQgYXJvdW5kXG5cdCAqIEByZXR1cm5zIFRoZSBjb252ZXJ0ZWQgY29udGV4dCBmb3IgdGhlIHN1YiBwYXRoXG5cdCAqL1xuXHRnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yPEs+KGNvbnRleHRQYXRoOiBzdHJpbmcpOiBDb252ZXJ0ZXJDb250ZXh0PEs+IHtcblx0XHRjb25zdCByZXNvbHZlZE1ldGFQYXRoOiBSZXNvbHV0aW9uVGFyZ2V0PEs+ID0gdGhpcy5jb252ZXJ0ZWRUeXBlcy5yZXNvbHZlUGF0aDxLPihjb250ZXh0UGF0aCk7XG5cdFx0Y29uc3QgdGFyZ2V0UGF0aCA9IGdldERhdGFNb2RlbFBhdGhGb3JFbnRpdHlTZXQocmVzb2x2ZWRNZXRhUGF0aCwgdGhpcy5jb252ZXJ0ZWRUeXBlcyk7XG5cdFx0cmV0dXJuIG5ldyBDb252ZXJ0ZXJDb250ZXh0PEs+KHRoaXMuY29udmVydGVkVHlwZXMsIHRoaXMubWFuaWZlc3RTZXR0aW5ncywgdGhpcy5kaWFnbm9zdGljcywgdGhpcy5tZXJnZUZuLCB0YXJnZXRQYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWxsIGFubm90YXRpb25zIG9mIGEgZ2l2ZW4gdGVybSBhbmQgdm9jYWJ1bGFyeSBvbiBhbiBlbnRpdHkgdHlwZVxuXHQgKiAob3Igb24gdGhlIGN1cnJlbnQgZW50aXR5IHR5cGUgaWYgZW50aXR5VHlwZSBpc24ndCBzcGVjaWZpZWQpLlxuXHQgKiBAcGFyYW0gdm9jYWJ1bGFyeU5hbWVcblx0ICogQHBhcmFtIGFubm90YXRpb25UZXJtXG5cdCAqIEBwYXJhbSBbYW5ub3RhdGlvblNvdXJjZXNdXG5cdCAqIEByZXR1cm5zIEFsbCB0aGUgYW5ub3RhdGlvbiBmb3IgYSBzcGVjaWZpYyB0ZXJtIGFuZCB2b2NhYnVsYXJ5IGZyb20gYW4gZW50aXR5IHR5cGVcblx0ICovXG5cdGdldEFubm90YXRpb25zQnlUZXJtPFRUPihcblx0XHR2b2NhYnVsYXJ5TmFtZToga2V5b2YgRW50aXR5VHlwZUFubm90YXRpb25zLFxuXHRcdGFubm90YXRpb25UZXJtOiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvblNvdXJjZXM6IChTZXJ2aWNlT2JqZWN0IHwgdW5kZWZpbmVkKVtdID0gW3RoaXMuZ2V0RW50aXR5VHlwZSgpXVxuXHQpOiBBbm5vdGF0aW9uVGVybTxUVD5bXSB7XG5cdFx0bGV0IG91dEFubm90YXRpb25zOiBBbm5vdGF0aW9uVGVybTxUVD5bXSA9IFtdO1xuXHRcdGFubm90YXRpb25Tb3VyY2VzLmZvckVhY2goKGFubm90YXRpb25Tb3VyY2UpID0+IHtcblx0XHRcdGlmIChhbm5vdGF0aW9uU291cmNlKSB7XG5cdFx0XHRcdGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBbm5vdGF0aW9uVGVybTxUVD4gJiB7IHRlcm06IHN0cmluZyB9PiA9XG5cdFx0XHRcdFx0YW5ub3RhdGlvblNvdXJjZT8uYW5ub3RhdGlvbnNbdm9jYWJ1bGFyeU5hbWVdIHx8IHt9O1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbnMpIHtcblx0XHRcdFx0XHRvdXRBbm5vdGF0aW9ucyA9IE9iamVjdC5rZXlzKGFubm90YXRpb25zKVxuXHRcdFx0XHRcdFx0LmZpbHRlcigoYW5ub3RhdGlvbikgPT4gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbl0udGVybSA9PT0gYW5ub3RhdGlvblRlcm0pXG5cdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2aW91c1ZhbHVlOiBBbm5vdGF0aW9uVGVybTxUVD5bXSwga2V5OiBzdHJpbmcpID0+IHtcblx0XHRcdFx0XHRcdFx0cHJldmlvdXNWYWx1ZS5wdXNoKGFubm90YXRpb25zW2tleV0pO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcHJldmlvdXNWYWx1ZTtcblx0XHRcdFx0XHRcdH0sIG91dEFubm90YXRpb25zKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiBvdXRBbm5vdGF0aW9ucztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHJlbGF0aXZlIG1vZGVsIHBhdGggYmFzZWQgb24gdGhlIGN1cnJlbnQgY29udGV4dCBwYXRoLlxuXHQgKiBAcmV0dXJucyBUaGUgcmVsYXRpdmUgbW9kZWwgcGF0aCBvciB1bmRlZmluZWQgaWYgdGhlIHBhdGggaXMgbm90IHJlc29sdmVhYmxlXG5cdCAqL1xuXHRnZXRSZWxhdGl2ZU1vZGVsUGF0aEZ1bmN0aW9uKCk6IEZ1bmN0aW9uIHtcblx0XHRjb25zdCB0YXJnZXREYXRhTW9kZWxQYXRoID0gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoO1xuXHRcdGNvbnN0IGNvbnZlcnRlZE1ldGFNb2RlbCA9IHRoaXMuY29udmVydGVkVHlwZXM7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uIChzUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRjb25zdCBzaW5nbGV0b25QYXRoID0gc2luZ2xldG9uUGF0aFZpc2l0b3Ioc1BhdGgsIGNvbnZlcnRlZE1ldGFNb2RlbCwgW10pO1xuXHRcdFx0Y29uc3QgZW5oYW5jZWRQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgodGFyZ2V0RGF0YU1vZGVsUGF0aCwgc1BhdGgpO1xuXHRcdFx0Y29uc3QgY29udGV4dFJlbGF0aXZlUGF0aCA9IGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgoZW5oYW5jZWRQYXRoLCB0cnVlKTtcblx0XHRcdGlmIChjb250ZXh0UmVsYXRpdmVQYXRoKSB7XG5cdFx0XHRcdHJldHVybiBjb250ZXh0UmVsYXRpdmVQYXRoO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHNpbmdsZXRvblBhdGg7XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgdGhlIGNvbnZlcnRlciBjb250ZXh0IG5lY2Vzc2FyeSBmb3IgYSBtYWNybyBiYXNlZCBvbiBhIG1ldGFtb2RlbCBjb250ZXh0LlxuXHQgKiBAcGFyYW0gZW50aXR5TmFtZVxuXHQgKiBAcGFyYW0gb01ldGFNb2RlbENvbnRleHRcblx0ICogQHBhcmFtIGRpYWdub3N0aWNzXG5cdCAqIEBwYXJhbSBtZXJnZUZuXG5cdCAqIEBwYXJhbSB0YXJnZXREYXRhTW9kZWxQYXRoXG5cdCAqIEBwYXJhbSBtYW5pZmVzdFNldHRpbmdzXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGNvbnZlcnRlciBjb250ZXh0XG5cdCAqL1xuXHRzdGF0aWMgY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvKFxuXHRcdGVudGl0eU5hbWU6IHN0cmluZyxcblx0XHRvTWV0YU1vZGVsQ29udGV4dDogQ29udGV4dCB8IE9EYXRhTWV0YU1vZGVsLFxuXHRcdGRpYWdub3N0aWNzOiBJRGlhZ25vc3RpY3MsXG5cdFx0bWVyZ2VGbjogRnVuY3Rpb24sXG5cdFx0dGFyZ2V0RGF0YU1vZGVsUGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGg8UGFnZUNvbnRleHRQYXRoVGFyZ2V0Pixcblx0XHRtYW5pZmVzdFNldHRpbmdzOiBCYXNlTWFuaWZlc3RTZXR0aW5ncyA9IHt9IGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzXG5cdCk6IENvbnZlcnRlckNvbnRleHQ8UGFnZUNvbnRleHRQYXRoVGFyZ2V0PiB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwgPSBvTWV0YU1vZGVsQ29udGV4dC5pc0EoXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFNZXRhTW9kZWxcIilcblx0XHRcdD8gKG9NZXRhTW9kZWxDb250ZXh0IGFzIE9EYXRhTWV0YU1vZGVsKVxuXHRcdFx0OiAoKG9NZXRhTW9kZWxDb250ZXh0IGFzIENvbnRleHQpLmdldE1vZGVsKCkgYXMgdW5rbm93biBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdFx0Y29uc3Qgb0NvbnZlcnRlZE1ldGFkYXRhID0gY29udmVydFR5cGVzKG9NZXRhTW9kZWwpO1xuXHRcdGxldCB0YXJnZXRFbnRpdHlTZXQ6IFNpbmdsZXRvbiB8IEVudGl0eVNldCA9IG9Db252ZXJ0ZWRNZXRhZGF0YS5lbnRpdHlTZXRzLmZpbmQoXG5cdFx0XHQoZW50aXR5U2V0KSA9PiBlbnRpdHlTZXQubmFtZSA9PT0gZW50aXR5TmFtZVxuXHRcdCkgYXMgRW50aXR5U2V0O1xuXHRcdGlmICghdGFyZ2V0RW50aXR5U2V0KSB7XG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQgPSBvQ29udmVydGVkTWV0YWRhdGEuc2luZ2xldG9ucy5maW5kKChlbnRpdHlTZXQpID0+IGVudGl0eVNldC5uYW1lID09PSBlbnRpdHlOYW1lKSBhcyBTaW5nbGV0b247XG5cdFx0fVxuXHRcdGlmICghdGFyZ2V0RGF0YU1vZGVsUGF0aCB8fCB0YXJnZXRFbnRpdHlTZXQgIT09IHRhcmdldERhdGFNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIHtcblx0XHRcdHRhcmdldERhdGFNb2RlbFBhdGggPSB7XG5cdFx0XHRcdHN0YXJ0aW5nRW50aXR5U2V0OiB0YXJnZXRFbnRpdHlTZXQsXG5cdFx0XHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBbXSxcblx0XHRcdFx0dGFyZ2V0RW50aXR5U2V0OiB0YXJnZXRFbnRpdHlTZXQsXG5cdFx0XHRcdC8vIGNvbnRhaW5lZCBlbnRpdHkgZG9lcyBub3QgaGF2ZSBhbiBlbnRpdHkgc2V0IGJ1dCBvbmx5IGVudGl0eSB0eXBlXG5cdFx0XHRcdHRhcmdldEVudGl0eVR5cGU6XG5cdFx0XHRcdFx0dGFyZ2V0RW50aXR5U2V0Py5lbnRpdHlUeXBlIHx8IG9Db252ZXJ0ZWRNZXRhZGF0YS5lbnRpdHlUeXBlcy5maW5kKChlbnRpdHlUeXBlKSA9PiBlbnRpdHlUeXBlLm5hbWUgPT09IGVudGl0eU5hbWUpLFxuXHRcdFx0XHR0YXJnZXRPYmplY3Q6IHRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQsXG5cdFx0XHRcdGNvbnZlcnRlZFR5cGVzOiBvQ29udmVydGVkTWV0YWRhdGFcblx0XHRcdH07XG5cdFx0fVxuXHRcdHJldHVybiBuZXcgQ29udmVydGVyQ29udGV4dChvQ29udmVydGVkTWV0YWRhdGEsIG1hbmlmZXN0U2V0dGluZ3MsIGRpYWdub3N0aWNzLCBtZXJnZUZuLCB0YXJnZXREYXRhTW9kZWxQYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNvbHZlcyBhIG1ldGFkYXRhIGJpbmRpbmcgdG8gaXRzIHRleHQuXG5cdCAqIEBwYXJhbSBwYXRoXG5cdCAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCB0ZXh0IGlmIHBvc3NpYmxlLCBlbHNlIHRoZSBpbnB1dCB2YWx1ZSBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIHBhdGggd2FzIHVuZGVmaW5lZFxuXHQgKi9cblx0ZmV0Y2hUZXh0RnJvbU1ldGFNb2RlbChwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBNb2RlbEhlbHBlci5mZXRjaFRleHRGcm9tTWV0YU1vZGVsKHBhdGgsIHRoaXMpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbnZlcnRlckNvbnRleHQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0VBK0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxnQkFBZ0IsR0FBRyxTQUFBQSxDQUFhQyxlQUEyQyxFQUF3QztJQUN4SCxPQUFPLE9BQU9BLGVBQWUsS0FBSyxRQUFRO0VBQzNDLENBQUM7RUFFRCxNQUFNQyw0QkFBNEIsR0FBRyxTQUFBQSxDQUNwQ0MsZ0JBQXFDLEVBQ3JDQyxjQUFpQyxFQUNSO0lBQ3pCLElBQUlDLGFBQW9DO0lBQ3hDLElBQUlDLGdCQUF1QztJQUMzQyxJQUFJQyxpQkFBd0M7SUFDNUMsSUFBSUMsaUJBQXlDO0lBQzdDLElBQUlDLGNBQXdCLEdBQUcsRUFBRTtJQUNqQyxNQUFNQyxvQkFBMEMsR0FBRyxFQUFFO0lBQ3JEUCxnQkFBZ0IsQ0FBQ1EsVUFBVSxDQUFDQyxPQUFPLENBQUVDLFVBQXNDLElBQUs7TUFBQSxJQUFBQyxpQkFBQTtNQUMvRSxJQUFJQyxlQUFlLENBQUNGLFVBQVUsQ0FBQyxFQUFFO1FBQ2hDLFFBQVFBLFVBQVUsQ0FBQ0csS0FBSztVQUN2QixLQUFLLG9CQUFvQjtZ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
|
|
406
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0Fubm90YXRpb25UZXJtIiwidkFubm90YXRpb25QYXRoIiwiZ2V0RGF0YU1vZGVsUGF0aEZvckVudGl0eVNldCIsInJlc29sdmVkTWV0YVBhdGgiLCJjb252ZXJ0ZWRUeXBlcyIsInJvb3RFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5U2V0IiwicHJldmlvdXNFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsIm5hdmlnYXRlZFBhdGhzIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJvYmplY3RQYXRoIiwiZm9yRWFjaCIsIm9iamVjdFBhcnQiLCJpc1NlcnZpY2VPYmplY3QiLCJfdHlwZSIsInB1c2giLCJuYW1lIiwidGFyZ2V0VHlwZSIsIm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmciLCJoYXNPd25Qcm9wZXJ0eSIsImpvaW4iLCJ1bmRlZmluZWQiLCJlbnRpdHlUeXBlIiwiZGF0YU1vZGVsUGF0aCIsInN0YXJ0aW5nRW50aXR5U2V0IiwidGFyZ2V0RW50aXR5VHlwZSIsInRhcmdldEVudGl0eVNldCIsImNvbnRleHRMb2NhdGlvbiIsInRhcmdldE9iamVjdCIsInRhcmdldCIsIkNvbnZlcnRlckNvbnRleHQiLCJtYW5pZmVzdFdyYXBwZXIiLCJkaWFnbm9zdGljcyIsInRhcmdldERhdGFNb2RlbFBhdGgiLCJiYXNlQ29udGV4dFBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiX2dldEVudGl0eVR5cGVGcm9tRnVsbHlRdWFsaWZpZWROYW1lIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZW50aXR5VHlwZXMiLCJmaW5kIiwic3RhcnRzV2l0aCIsInJlcGxhY2VBbm5vdGF0aW9uIiwicmVwbGFjZSIsImdldEFubm90YXRpb25FbnRpdHlUeXBlIiwiYW5ub3RhdGlvbiIsImFubm90YXRpb25QYXRoIiwiRXJyb3IiLCJnZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uIiwiZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24iLCJoYXNFbnRpdHlTZXRLZXlJbk1hbmlmZXN0IiwiZ2V0RW50aXR5U2V0IiwibGVuZ3RoIiwiaGFzQ29udGV4dFBhdGhLZXlJbk1hbmlmZXN0IiwiZ2V0Q29udGV4dFBhdGgiLCJpc1BhdGhBYnNvbHV0ZSIsImhhc011bHRpcGxlRW50aXR5U2V0cyIsIk9iamVjdCIsImtleXMiLCJnZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoIiwic0Fubm90YXRpb25QYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldEVudGl0eUNvbnRhaW5lciIsImVudGl0eUNvbnRhaW5lciIsImdldEVudGl0eVR5cGUiLCJnZXRQYXJhbWV0ZXJFbnRpdHlUeXBlIiwicGFyYW1ldGVyRW50aXR5VHlwZSIsImlzUGFyYW1ldGVyaXplZCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiUmVzdWx0Q29udGV4dCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwiaW5jbHVkZXMiLCJpc0Fic29sdXRlIiwicGF0aCIsImJhc2UiLCJzcGxpdCIsImVuZHNXaXRoIiwicmVzb2x2ZUFic29sdXRlUGF0aCIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoIiwidmlzaXRlZE9iamVjdHMiLCJjb252ZXJ0ZXJDb250ZXh0IiwiZ2V0VGVtcGxhdGVUeXBlIiwiZ2V0Q29udmVydGVkVHlwZXMiLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImVudGl0eVR5cGVGUU4iLCJtYXRjaCIsInJlcGxhY2VkQW5ub3RhdGlvblBhdGgiLCJzdWJzdHJpbmciLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJnZXREaWFnbm9zdGljcyIsInJlc29sdmVQYXRoIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImNvbnRleHRQYXRoIiwidGFyZ2V0UGF0aCIsImdldEFubm90YXRpb25zQnlUZXJtIiwidm9jYWJ1bGFyeU5hbWUiLCJhbm5vdGF0aW9uVGVybSIsImFubm90YXRpb25Tb3VyY2VzIiwiYXJndW1lbnRzIiwib3V0QW5ub3RhdGlvbnMiLCJhbm5vdGF0aW9uU291cmNlIiwiZmlsdGVyIiwidGVybSIsInJlZHVjZSIsInByZXZpb3VzVmFsdWUiLCJrZXkiLCJnZXRSZWxhdGl2ZU1vZGVsUGF0aEZ1bmN0aW9uIiwiY29udmVydGVkTWV0YU1vZGVsIiwic1BhdGgiLCJzaW5nbGV0b25QYXRoIiwic2luZ2xldG9uUGF0aFZpc2l0b3IiLCJlbmhhbmNlZFBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsImNvbnRleHRSZWxhdGl2ZVBhdGgiLCJnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoIiwiY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvIiwiZW50aXR5TmFtZSIsIm9NZXRhTW9kZWxDb250ZXh0IiwibWVyZ2VGbiIsIm9NZXRhTW9kZWwiLCJpc0EiLCJnZXRNb2RlbCIsIm9Db252ZXJ0ZWRNZXRhZGF0YSIsImNvbnZlcnRUeXBlcyIsImVudGl0eVNldHMiLCJlbnRpdHlTZXQiLCJzaW5nbGV0b25zIiwiTWFuaWZlc3RXcmFwcGVyIiwiZmV0Y2hUZXh0RnJvbU1ldGFNb2RlbCIsIk1vZGVsSGVscGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb252ZXJ0ZXJDb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0QW5ub3RhdGlvblRlcm0sXG5cdENvbnZlcnRlZE1ldGFkYXRhLFxuXHRFbnRpdHlDb250YWluZXIsXG5cdEVudGl0eVNldCxcblx0RW50aXR5VHlwZSxcblx0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRSZXNvbHV0aW9uVGFyZ2V0LFxuXHRTZXJ2aWNlT2JqZWN0LFxuXHRTZXJ2aWNlT2JqZWN0QW5kQW5ub3RhdGlvbixcblx0U2luZ2xldG9uXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBSZWNvcmRDb21wbGV4VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9FZG1cIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5VHlwZUFubm90YXRpb25zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9FZG1fVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQmFzZU1hbmlmZXN0U2V0dGluZ3MsIENvbnRyb2xNYW5pZmVzdENvbmZpZ3VyYXRpb24sIFRlbXBsYXRlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0VHlwZXMsIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB0eXBlIHsgSURpYWdub3N0aWNzLCBQYWdlQ29udGV4dFBhdGhUYXJnZXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9UZW1wbGF0ZUNvbnZlcnRlclwiO1xuaW1wb3J0IHsgc2luZ2xldG9uUGF0aFZpc2l0b3IgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGlzU2VydmljZU9iamVjdCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoLCBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRBbm5vdGF0aW9uQ29udGV4dDxUPiA9IHtcblx0YW5ub3RhdGlvbjogQW5ub3RhdGlvblRlcm08VD4gfCB1bmRlZmluZWQ7XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ8UGFnZUNvbnRleHRQYXRoVGFyZ2V0Pjtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gb2JqZWN0IGlzIGFuIGFubm90YXRpb24gdGVybS5cbiAqIEBwYXJhbSB2QW5ub3RhdGlvblBhdGhcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBpdCdzIGFuIGFubm90YXRpb24gdGVybVxuICovXG5jb25zdCBpc0Fubm90YXRpb25UZXJtID0gZnVuY3Rpb24gPFQ+KHZBbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgQW5ub3RhdGlvblRlcm08VD4pOiB2QW5ub3RhdGlvblBhdGggaXMgQW5ub3RhdGlvblRlcm08VD4ge1xuXHRyZXR1cm4gdHlwZW9mIHZBbm5vdGF0aW9uUGF0aCA9PT0gXCJvYmplY3RcIjtcbn07XG5cbmNvbnN0IGdldERhdGFNb2RlbFBhdGhGb3JFbnRpdHlTZXQgPSBmdW5jdGlvbiA8VD4oXG5cdHJlc29sdmVkTWV0YVBhdGg6IFJlc29sdXRpb25UYXJnZXQ8VD4sXG5cdGNvbnZlcnRlZFR5cGVzOiBDb252ZXJ0ZWRNZXRhZGF0YVxuKTogRGF0YU1vZGVsT2JqZWN0UGF0aDxUPiB7XG5cdGxldCByb290RW50aXR5U2V0OiBFbnRpdHlTZXQgfCB1bmRlZmluZWQ7XG5cdGxldCBjdXJyZW50RW50aXR5U2V0OiBFbnRpdHlTZXQgfCB1bmRlZmluZWQ7XG5cdGxldCBwcmV2aW91c0VudGl0eVNldDogRW50aXR5U2V0IHwgdW5kZWZpbmVkO1xuXHRsZXQgY3VycmVudEVudGl0eVR5cGU6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBuYXZpZ2F0ZWRQYXRoczogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgbmF2aWdhdGlvblByb3BlcnRpZXM6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW107XG5cdHJlc29sdmVkTWV0YVBhdGgub2JqZWN0UGF0aC5mb3JFYWNoKChvYmplY3RQYXJ0OiBTZXJ2aWNlT2JqZWN0QW5kQW5ub3RhdGlvbikgPT4ge1xuXHRcdGlmIChpc1NlcnZpY2VPYmplY3Qob2JqZWN0UGFydCkpIHtcblx0XHRcdHN3aXRjaCAob2JqZWN0UGFydC5fdHlwZSkge1xuXHRcdFx0XHRjYXNlIFwiTmF2aWdhdGlvblByb3BlcnR5XCI6XG5cdFx0XHRcdFx0bmF2aWdhdGVkUGF0aHMucHVzaChvYmplY3RQYXJ0Lm5hbWUpO1xuXHRcdFx0XHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLnB1c2gob2JqZWN0UGFydCk7XG5cdFx0XHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSBvYmplY3RQYXJ0LnRhcmdldFR5cGU7XG5cdFx0XHRcdFx0aWYgKHByZXZpb3VzRW50aXR5U2V0ICYmIHByZXZpb3VzRW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkobmF2aWdhdGVkUGF0aHMuam9pbihcIi9cIikpKSB7XG5cdFx0XHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gcHJldmlvdXNFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKV0gYXMgRW50aXR5U2V0O1xuXHRcdFx0XHRcdFx0cHJldmlvdXNFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHRcdFx0bmF2aWdhdGVkUGF0aHMgPSBbXTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y3VycmVudEVudGl0eVNldCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJFbnRpdHlTZXRcIjpcblx0XHRcdFx0XHRpZiAocm9vdEVudGl0eVNldCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRyb290RW50aXR5U2V0ID0gb2JqZWN0UGFydDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y3VycmVudEVudGl0eVNldCA9IG9iamVjdFBhcnQ7XG5cdFx0XHRcdFx0cHJldmlvdXNFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHRcdGN1cnJlbnRFbnRpdHlUeXBlID0gY3VycmVudEVudGl0eVNldD8uZW50aXR5VHlwZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRjb25zdCBkYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFQ+ID0ge1xuXHRcdHN0YXJ0aW5nRW50aXR5U2V0OiByb290RW50aXR5U2V0IGFzIEVudGl0eVNldCxcblx0XHR0YXJnZXRFbnRpdHlUeXBlOiBjdXJyZW50RW50aXR5VHlwZSBhcyBFbnRpdHlUeXBlLFxuXHRcdHRhcmdldEVudGl0eVNldDogY3VycmVudEVudGl0eVNldCxcblx0XHRuYXZpZ2F0aW9uUHJvcGVydGllczogbmF2aWdhdGlvblByb3BlcnRpZXMsXG5cdFx0Y29udGV4dExvY2F0aW9uOiB1bmRlZmluZWQsXG5cdFx0dGFyZ2V0T2JqZWN0OiByZXNvbHZlZE1ldGFQYXRoLnRhcmdldCxcblx0XHRjb252ZXJ0ZWRUeXBlczogY29udmVydGVkVHlwZXNcblx0fTtcblx0ZGF0YU1vZGVsUGF0aC5jb250ZXh0TG9jYXRpb24gPSBkYXRhTW9kZWxQYXRoO1xuXHRyZXR1cm4gZGF0YU1vZGVsUGF0aDtcbn07XG5cbi8qKlxuICogQ3JlYXRlIGEgQ29udmVydGVyQ29udGV4dCBvYmplY3QgdGhhdCB3aWxsIGJlIHVzZWQgd2l0aGluIHRoZSBjb252ZXJ0ZXJzLlxuICogQHBhcmFtIHtDb252ZXJ0ZWRNZXRhZGF0YX0gb0NvbnZlcnRlZFR5cGVzIFRoZSBjb252ZXJ0ZWQgYW5ub3RhdGlvbiBhbmQgc2VydmljZSB0eXBlc1xuICogQHBhcmFtIHtCYXNlTWFuaWZlc3RTZXR0aW5nc30gb01hbmlmZXN0U2V0dGluZ3MgVGhlIG1hbmlmZXN0U2V0dGluZ3MgdGhhdCBhcHBsaWVzIHRvIHRoaXMgcGFnZVxuICogQHBhcmFtIHtUZW1wbGF0ZVR5cGV9IHRlbXBsYXRlVHlwZSBUaGUgdHlwZSBvZiB0ZW1wbGF0ZSB3ZSdyZSBsb29raW5nIGF0IHJpZ2h0IG5vd1xuICogQHBhcmFtIHtJRGlhZ25vc3RpY3N9IGRpYWdub3N0aWNzIFRoZSBkaWFnbm9zdGljcyBzaGltXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBtZXJnZUZuIFRoZSBmdW5jdGlvbiB0byBiZSB1c2VkIHRvIHBlcmZvbSBzb21lIGRlZXAgbWVyZ2VzIGJldHdlZW4gb2JqZWN0XG4gKiBAcGFyYW0ge0RhdGFNb2RlbE9iamVjdFBhdGh9IHRhcmdldERhdGFNb2RlbFBhdGggVGhlIGdsb2JhbCBwYXRoIHRvIHJlYWNoIHRoZSBlbnRpdHlTZXRcbiAqIEByZXR1cm5zIHtDb252ZXJ0ZXJDb250ZXh0fSBBIGNvbnZlcnRlciBjb250ZXh0IGZvciB0aGUgY29udmVydGVyc1xuICovXG5jbGFzcyBDb252ZXJ0ZXJDb250ZXh0PFQgPSBQYWdlQ29udGV4dFBhdGhUYXJnZXQ+IHtcblx0Ly9wcml2YXRlIG1hbmlmZXN0V3JhcHBlcjogTWFuaWZlc3RXcmFwcGVyO1xuXG5cdHByaXZhdGUgYmFzZUNvbnRleHRQYXRoOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBtYW5pZmVzdFdyYXBwZXI6IE1hbmlmZXN0V3JhcHBlcixcblx0XHRwcml2YXRlIGRpYWdub3N0aWNzOiBJRGlhZ25vc3RpY3MsXG5cdFx0cHJpdmF0ZSB0YXJnZXREYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFQ+XG5cdCkge1xuXHRcdHRoaXMuYmFzZUNvbnRleHRQYXRoID0gZ2V0VGFyZ2V0T2JqZWN0UGF0aCh0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0RW50aXR5VHlwZUZyb21GdWxseVF1YWxpZmllZE5hbWUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0ZWRUeXBlcy5lbnRpdHlUeXBlcy5maW5kKChlbnRpdHlUeXBlKSA9PiB7XG5cdFx0XHRpZiAoZnVsbHlRdWFsaWZpZWROYW1lLnN0YXJ0c1dpdGgoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUpKSB7XG5cdFx0XHRcdGNvbnN0IHJlcGxhY2VBbm5vdGF0aW9uID0gZnVsbHlRdWFsaWZpZWROYW1lLnJlcGxhY2UoZW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIFwiXCIpO1xuXHRcdFx0XHRyZXR1cm4gcmVwbGFjZUFubm90YXRpb24uc3RhcnRzV2l0aChcIi9cIikgfHwgcmVwbGFjZUFubm90YXRpb24uc3RhcnRzV2l0aChcIkBcIik7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGVudGl0eVR5cGUgYXNzb2NpYXRlZCB3aXRoIGFuIGFubm90YXRpb24gb2JqZWN0LlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvbiBUaGUgYW5ub3RhdGlvbiBvYmplY3QgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZmluZCB0aGUgZW50aXR5VHlwZVxuXHQgKiBAcmV0dXJucyBUaGUgRW50aXR5VHlwZSB0aGUgYW5ub3RhdGlvbiByZWZlcnMgdG9cblx0ICovXG5cdGdldEFubm90YXRpb25FbnRpdHlUeXBlPFRUIGV4dGVuZHMgU2VydmljZU9iamVjdEFuZEFubm90YXRpb24+KFxuXHRcdGFubm90YXRpb24/OiBUVCBleHRlbmRzIFNlcnZpY2VPYmplY3QgPyBUVCA6IEFubm90YXRpb25UZXJtPFRUPlxuXHQpOiBFbnRpdHlUeXBlIHtcblx0XHRpZiAoYW5ub3RhdGlvbiAmJiB0eXBlb2YgYW5ub3RhdGlvbiA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBhbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdGNvbnN0IHRhcmdldEVudGl0eVR5cGUgPSB0aGlzLl9nZXRFbnRpdHlUeXBlRnJvbUZ1bGx5UXVhbGlmaWVkTmFtZShhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRpZiAoIXRhcmdldEVudGl0eVR5cGUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBFbnRpdHkgVHlwZSBmb3IgJHthbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX1gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0YXJnZXRFbnRpdHlUeXBlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBtYW5pZmVzdCBzZXR0aW5ncyBkZWZpbmVkIGZvciBhIHNwZWNpZmljIGNvbnRyb2wgd2l0aGluIGNvbnRyb2xDb25maWd1cmF0aW9uLlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGggVGhlIGFubm90YXRpb24gcGF0aCBvciBvYmplY3QgdG8gZXZhbHVhdGVcblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgY29uZmlndXJhdGlvbiBmb3IgdGhhdCBzcGVjaWZpYyBhbm5vdGF0aW9uIHBhdGggaWYgaXQgZXhpc3RzXG5cdCAqL1xuXHRnZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uPFRUID0gQ29udHJvbE1hbmlmZXN0Q29uZmlndXJhdGlvbj4oYW5ub3RhdGlvblBhdGg6IHN0cmluZyB8IEFubm90YXRpb25UZXJtPHVua25vd24+KTogVFQge1xuXHRcdGlmIChpc0Fubm90YXRpb25UZXJtKGFubm90YXRpb25QYXRoKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMubWFuaWZlc3RXcmFwcGVyLmdldENvbnRyb2xDb25maWd1cmF0aW9uPFRUPihcblx0XHRcdFx0YW5ub3RhdGlvblBhdGguZnVsbHlRdWFsaWZpZWROYW1lLnJlcGxhY2UodGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lLCBcIlwiKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0Y29uc3QgaGFzRW50aXR5U2V0S2V5SW5NYW5pZmVzdCA9XG5cdFx0XHR0eXBlb2YgdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0RW50aXR5U2V0KCkgPT09IFwic3RyaW5nXCIgJiYgdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0RW50aXR5U2V0KCkhLmxlbmd0aCA+IDA7XG5cdFx0Y29uc3QgaGFzQ29udGV4dFBhdGhLZXlJbk1hbmlmZXN0ID1cblx0XHRcdHR5cGVvZiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250ZXh0UGF0aCgpID09PSBcInN0cmluZ1wiICYmIHRoaXMubWFuaWZlc3RXcmFwcGVyLmdldENvbnRleHRQYXRoKCkhLmxlbmd0aCA+IDA7XG5cdFx0Y29uc3QgaXNQYXRoQWJzb2x1dGUgPSBhbm5vdGF0aW9uUGF0aC5zdGFydHNXaXRoKFwiL1wiKTtcblxuXHRcdC8vIEluIGNhc2Ugb2YgbXVsdGlwbGUtZW50aXR5U2V0LCB3ZSBjb21wYXJlIHRoZSBlbnRpdHkgc2V0IG9mIHRoZSBDb250cm9sQ29uZmlndXJhdGlvbiB3aXRoIHdoYXQgaXMgc3BlY2lmaWVkIGVpdGhlciBpbiB0aGUgJ2VudGl0eVNldCcgb3IgJ2NvbnRleHRQYXRoJyBtYW5pZmVzdCBzZXR0aW5nLlxuXHRcdGlmICghdGhpcy5tYW5pZmVzdFdyYXBwZXIuaGFzTXVsdGlwbGVFbnRpdHlTZXRzKCkpIHtcblx0XHRcdHJldHVybiB0aGlzLm1hbmlmZXN0V3JhcHBlci5nZXRDb250cm9sQ29uZmlndXJhdGlvbihhbm5vdGF0aW9uUGF0aCk7XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdCFpc1BhdGhBYnNvbHV0ZSAmJlxuXHRcdFx0KChoYXNFbnRpdHlTZXRLZXlJbk1hbmlmZXN0ICYmIHRoaXMuYmFzZUNvbnRleHRQYXRoICE9PSBgLyR7dGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0RW50aXR5U2V0KCl9YCkgfHxcblx0XHRcdFx0KGhhc0NvbnRleHRQYXRoS2V5SW5NYW5pZmVzdCAmJiB0aGlzLmJhc2VDb250ZXh0UGF0aCAhPT0gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udGV4dFBhdGgoKSkpXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb248VFQ+KGAke3RoaXMuYmFzZUNvbnRleHRQYXRofS8ke2Fubm90YXRpb25QYXRofWApO1xuXHRcdH0gZWxzZSBpZiAoT2JqZWN0LmtleXModGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24oYW5ub3RhdGlvblBhdGgpKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0Q29udHJvbENvbmZpZ3VyYXRpb24oYCR7dGhpcy5iYXNlQ29udGV4dFBhdGh9LyR7YW5ub3RhdGlvblBhdGh9YCk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIGFuIGFic29sdXRlIGFubm90YXRpb24gcGF0aCBiYXNlZCBvbiB0aGUgY3VycmVudCBtZXRhIG1vZGVsIGNvbnRleHQuXG5cdCAqIEBwYXJhbSBzQW5ub3RhdGlvblBhdGggVGhlIHJlbGF0aXZlIGFubm90YXRpb24gcGF0aFxuXHQgKiBAcmV0dXJucyBUaGUgY29ycmVjdCBhbm5vdGF0aW9uIHBhdGggYmFzZWQgb24gdGhlIGN1cnJlbnQgY29udGV4dFxuXHQgKi9cblx0Z2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aChzQW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCFzQW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdHJldHVybiBzQW5ub3RhdGlvblBhdGg7XG5cdFx0fVxuXHRcdGlmIChzQW5ub3RhdGlvblBhdGhbMF0gPT09IFwiL1wiKSB7XG5cdFx0XHRyZXR1cm4gc0Fubm90YXRpb25QYXRoO1xuXHRcdH1cblx0XHRyZXR1cm4gYCR7dGhpcy5iYXNlQ29udGV4dFBhdGh9LyR7c0Fubm90YXRpb25QYXRofWA7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGN1cnJlbnQgZW50aXR5U2V0LlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBFbnRpdHlTZXQgaWYgaXQgZXhpc3RzLlxuXHQgKi9cblx0Z2V0RW50aXR5U2V0KCk6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQgYXMgRW50aXR5U2V0IHwgU2luZ2xldG9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBjb250ZXh0IHBhdGguXG5cdCAqIEByZXR1cm5zIFRoZSBjb250ZXh0IHBhdGggb2YgdGhlIGNvbnZlcnRlci5cblx0ICovXG5cdGdldENvbnRleHRQYXRoKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuYmFzZUNvbnRleHRQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSBjdXJyZW50IGRhdGEgbW9kZWwgb2JqZWN0IHBhdGguXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGRhdGEgbW9kZWwgb2JqZWN0IHBhdGhcblx0ICovXG5cdGdldERhdGFNb2RlbE9iamVjdFBhdGgoKTogRGF0YU1vZGVsT2JqZWN0UGF0aDxUPiB7XG5cdFx0cmV0dXJuIHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIEVudGl0eUNvbnRhaW5lci5cblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgc2VydmljZSBFbnRpdHlDb250YWluZXJcblx0ICovXG5cdGdldEVudGl0eUNvbnRhaW5lcigpOiBFbnRpdHlDb250YWluZXIge1xuXHRcdHJldHVybiB0aGlzLmNvbnZlcnRlZFR5cGVzLmVudGl0eUNvbnRhaW5lcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIEVudGl0eVR5cGUgYmFzZWQgb24gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lLlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCBFbnRpdHlUeXBlLlxuXHQgKi9cblx0Z2V0RW50aXR5VHlwZSgpOiBFbnRpdHlUeXBlIHtcblx0XHRyZXR1cm4gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgZW50aXR5IHR5cGUgb2YgdGhlIHBhcmFtZXRlciBpbiBjYXNlIG9mIGEgcGFyYW1ldGVyaXplZCBzZXJ2aWNlLlxuXHQgKiBAcmV0dXJucyBUaGUgZW50aXR5IHR5cGUgb2YgdGhlIHBhcmFtZXRlclxuXHQgKi9cblx0Z2V0UGFyYW1ldGVyRW50aXR5VHlwZSgpOiBFbnRpdHlUeXBlIHtcblx0XHRjb25zdCBwYXJhbWV0ZXJFbnRpdHlUeXBlID0gdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0LmVudGl0eVR5cGU7XG5cdFx0Y29uc3QgaXNQYXJhbWV0ZXJpemVkID0gISFwYXJhbWV0ZXJFbnRpdHlUeXBlLmFubm90YXRpb25zPy5Db21tb24/LlJlc3VsdENvbnRleHQ7XG5cdFx0cmV0dXJuIChpc1BhcmFtZXRlcml6ZWQgJiYgcGFyYW1ldGVyRW50aXR5VHlwZSkgYXMgRW50aXR5VHlwZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYW4gYW5ub3RhdGlvbiBmcm9tIGFuIGVudGl0eSB0eXBlIGJhc2VkIG9uIGFubm90YXRpb24gcGF0aC5cblx0ICogQHBhcmFtIGFubm90YXRpb25QYXRoIFRoZSBhbm5vdGF0aW9uIHBhdGggdG8gYmUgZXZhbHVhdGVkXG5cdCAqIEByZXR1cm5zIFRoZSB0YXJnZXQgYW5ub3RhdGlvbiBwYXRoIGFzIHdlbGwgYXMgYSBjb252ZXJ0ZXIgY29udGV4dCB0byBnbyB3aXRoIGl0XG5cdCAqL1xuXHRnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbjxUVCBleHRlbmRzIFNlcnZpY2VPYmplY3QgfCBSZWNvcmRDb21wbGV4VHlwZT4oYW5ub3RhdGlvblBhdGg6IHN0cmluZyk6IFJlc29sdmVkQW5ub3RhdGlvbkNvbnRleHQ8VFQ+IHtcblx0XHRpZiAoIWFubm90YXRpb25QYXRoLmluY2x1ZGVzKFwiQFwiKSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBOb3QgYW4gYW5ub3RhdGlvbiBwYXRoOiAnJHthbm5vdGF0aW9uUGF0aH0nYCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaXNBYnNvbHV0ZSA9IGFubm90YXRpb25QYXRoLnN0YXJ0c1dpdGgoXCIvXCIpO1xuXHRcdGxldCBwYXRoOiBzdHJpbmc7XG5cblx0XHRpZiAoaXNBYnNvbHV0ZSkge1xuXHRcdFx0Ly8gcGF0aCBjYW4gYmUgdXNlZCBhcy1pc1xuXHRcdFx0cGF0aCA9IGFubm90YXRpb25QYXRoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBidWlsZCBhbiBhYnNvbHV0ZSBwYXRoIGJhc2VkIG9uIHRoZSBlbnRpdHkgdHlwZSAodGhpcyBmdW5jdGlvbiB3b3JrcyBvbiB0aGUgdHlwZSEpXG5cdFx0XHRjb25zdCBiYXNlID0gdGhpcy5nZXRDb250ZXh0UGF0aCgpLnNwbGl0KFwiQFwiLCAxKVswXTtcblx0XHRcdHBhdGggPSBiYXNlLmVuZHNXaXRoKFwiL1wiKSA/IGJhc2UgKyBhbm5vdGF0aW9uUGF0aCA6IGAke2Jhc2V9LyR7YW5ub3RhdGlvblBhdGh9YDtcblx0XHR9XG5cblx0XHRjb25zdCB0YXJnZXQ6IFJlc29sdXRpb25UYXJnZXQ8QW5ub3RhdGlvblRlcm08VFQ+PiA9IHRoaXMucmVzb2x2ZUFic29sdXRlUGF0aChwYXRoKTtcblxuXHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoPFBhZ2VDb250ZXh0UGF0aFRhcmdldD4oXG5cdFx0XHR7IHRhcmdldDogdGFyZ2V0LnRhcmdldCBhcyBTZXJ2aWNlT2JqZWN0LCB2aXNpdGVkT2JqZWN0czogdGFyZ2V0Lm9iamVjdFBhdGggfSxcblx0XHRcdHRoaXMuY29udmVydGVkVHlwZXMsXG5cdFx0XHRpc0Fic29sdXRlID8gdW5kZWZpbmVkIDogdGhpcy50YXJnZXREYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbixcblx0XHRcdHRydWVcblx0XHQpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGFubm90YXRpb246IHRhcmdldC50YXJnZXQsXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBuZXcgQ29udmVydGVyQ29udGV4dCh0aGlzLmNvbnZlcnRlZFR5cGVzLCB0aGlzLm1hbmlmZXN0V3JhcHBlciwgdGhpcy5kaWFnbm9zdGljcywgZGF0YU1vZGVsT2JqZWN0UGF0aClcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSB0eXBlIG9mIHRlbXBsYXRlIHdlJ3JlIHdvcmtpbmcgb24gKGUuZy4gTGlzdFJlcG9ydCAvIE9iamVjdFBhZ2UgLyAuLi4pLlxuXHQgKiBAcmV0dXJucyBUaGUgY3VycmVudCB0ZW5wbGF0ZSB0eXBlXG5cdCAqL1xuXHRnZXRUZW1wbGF0ZVR5cGUoKTogVGVtcGxhdGVUeXBlIHtcblx0XHRyZXR1cm4gdGhpcy5tYW5pZmVzdFdyYXBwZXIuZ2V0VGVtcGxhdGVUeXBlKCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgdGhlIGNvbnZlcnRlZCB0eXBlcy5cblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgY29udmVydGVkIHR5cGVzXG5cdCAqL1xuXHRnZXRDb252ZXJ0ZWRUeXBlcygpOiBDb252ZXJ0ZWRNZXRhZGF0YSB7XG5cdFx0cmV0dXJuIHRoaXMuY29udmVydGVkVHlwZXM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmUgYSByZWxhdGl2ZSBhbm5vdGF0aW9uIHBhdGggYmV0d2VlbiBhbiBhbm5vdGF0aW9uIHBhdGggYW5kIGFuIGVudGl0eSB0eXBlLlxuXHQgKiBAcGFyYW0gYW5ub3RhdGlvblBhdGhcblx0ICogQHBhcmFtIGVudGl0eVR5cGVcblx0ICogQHJldHVybnMgVGhlIHJlbGF0aXZlIGFubnRvdGF0aW9uIHBhdGguXG5cdCAqL1xuXHRnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKGFubm90YXRpb25QYXRoOiBzdHJpbmcsIGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBzdHJpbmcge1xuXHRcdHJldHVybiBhbm5vdGF0aW9uUGF0aC5yZXBsYWNlKGVudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lLCBcIlwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUcmFuc2Zvcm0gYW4gZW50aXR5VHlwZSBiYXNlZCBwYXRoIHRvIGFuIGVudGl0eVNldCBiYXNlZCBvbmUgKHVpNSB0ZW1wbGF0aW5nIGdlbmVyYWxseSBleHBlY3QgYW4gZW50aXR5U2V0QmFzZWRQYXRoKS5cblx0ICogQHBhcmFtIGFubm90YXRpb25QYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBFbnRpdHlTZXQgYmFzZWQgYW5ub3RhdGlvbiBwYXRoXG5cdCAqL1xuXHRnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGFubm90YXRpb25QYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICghYW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uUGF0aDtcblx0XHR9XG5cdFx0Y29uc3QgZW50aXR5VHlwZUZRTiA9IHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRpZiAoXG5cdFx0XHR0aGlzLnRhcmdldERhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0IHx8XG5cdFx0XHQoKHRoaXMuYmFzZUNvbnRleHRQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpICYmIHRoaXMuYmFzZUNvbnRleHRQYXRoLm1hdGNoKC9cXC8vZykpIHx8IFtdKS5sZW5ndGggPiAxXG5cdFx0KSB7XG5cdFx0XHRsZXQgcmVwbGFjZWRBbm5vdGF0aW9uUGF0aCA9IGFubm90YXRpb25QYXRoLnJlcGxhY2UoZW50aXR5VHlwZUZRTiwgXCIvXCIpO1xuXHRcdFx0aWYgKHJlcGxhY2VkQW5ub3RhdGlvblBhdGgubGVuZ3RoID4gMiAmJiByZXBsYWNlZEFubm90YXRpb25QYXRoWzBdID09PSBcIi9cIiAmJiByZXBsYWNlZEFubm90YXRpb25QYXRoWzFdID09PSBcIi9cIikge1xuXHRcdFx0XHRyZXBsYWNlZEFubm90YXRpb25QYXRoID0gcmVwbGFjZWRBbm5vdGF0aW9uUGF0aC5zdWJzdHJpbmcoMSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5iYXNlQ29udGV4dFBhdGggKyAocmVwbGFjZWRBbm5vdGF0aW9uUGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IHJlcGxhY2VkQW5ub3RhdGlvblBhdGggOiBgLyR7cmVwbGFjZWRBbm5vdGF0aW9uUGF0aH1gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGAvJHthbm5vdGF0aW9uUGF0aH1gO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgbWFuaWZlc3Qgd3JhcHBlciBmb3IgdGhlIGN1cnJlbnQgY29udGV4dC5cblx0ICogQHJldHVybnMgVGhlIGN1cnJlbnQgbWFuaWZlc3Qgd3JhcHBlclxuXHQgKi9cblx0Z2V0TWFuaWZlc3RXcmFwcGVyKCk6IE1hbmlmZXN0V3JhcHBlciB7XG5cdFx0cmV0dXJuIHRoaXMubWFuaWZlc3RXcmFwcGVyO1xuXHR9XG5cblx0Z2V0RGlhZ25vc3RpY3MoKTogSURpYWdub3N0aWNzIHtcblx0XHRyZXR1cm4gdGhpcy5kaWFnbm9zdGljcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgdGFyZ2V0IGZyb20gYW4gYWJzb2x1dGUgcGF0aC5cblx0ICogQHBhcmFtIHBhdGggVGhlIHBhdGggd2Ugd2FudCB0byBnZXQgdGhlIHRhcmdldFxuXHQgKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aFxuXHQgKi9cblx0cmVzb2x2ZUFic29sdXRlUGF0aDxUVD4ocGF0aDogc3RyaW5nKTogUmVzb2x1dGlvblRhcmdldDxUVD4ge1xuXHRcdHJldHVybiB0aGlzLmNvbnZlcnRlZFR5cGVzLnJlc29sdmVQYXRoKHBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIGEgbmV3IGNvbnZlcnRlciBjb250ZXh0LCBzY29wZWQgZm9yIGEgZGlmZmVyZW50IGNvbnRleHQgcGF0aC5cblx0ICogQHBhcmFtIGNvbnRleHRQYXRoIFRoZSBwYXRoIHdlIHdhbnQgdG8gb3JjaGVzdHJhdGUgdGhlIGNvbnZlcnRlciBjb250ZXh0IGFyb3VuZFxuXHQgKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGNvbnRleHQgZm9yIHRoZSBzdWIgcGF0aFxuXHQgKi9cblx0Z2V0Q29udmVydGVyQ29udGV4dEZvcjxLPihjb250ZXh0UGF0aDogc3RyaW5nKTogQ29udmVydGVyQ29udGV4dDxLPiB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRNZXRhUGF0aDogUmVzb2x1dGlvblRhcmdldDxLPiA9IHRoaXMuY29udmVydGVkVHlwZXMucmVzb2x2ZVBhdGg8Sz4oY29udGV4dFBhdGgpO1xuXHRcdGNvbnN0IHRhcmdldFBhdGggPSBnZXREYXRhTW9kZWxQYXRoRm9yRW50aXR5U2V0KHJlc29sdmVkTWV0YVBhdGgsIHRoaXMuY29udmVydGVkVHlwZXMpO1xuXHRcdHJldHVybiBuZXcgQ29udmVydGVyQ29udGV4dDxLPih0aGlzLmNvbnZlcnRlZFR5cGVzLCB0aGlzLm1hbmlmZXN0V3JhcHBlciwgdGhpcy5kaWFnbm9zdGljcywgdGFyZ2V0UGF0aCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFsbCBhbm5vdGF0aW9ucyBvZiBhIGdpdmVuIHRlcm0gYW5kIHZvY2FidWxhcnkgb24gYW4gZW50aXR5IHR5cGVcblx0ICogKG9yIG9uIHRoZSBjdXJyZW50IGVudGl0eSB0eXBlIGlmIGVudGl0eVR5cGUgaXNuJ3Qgc3BlY2lmaWVkKS5cblx0ICogQHBhcmFtIHZvY2FidWxhcnlOYW1lXG5cdCAqIEBwYXJhbSBhbm5vdGF0aW9uVGVybVxuXHQgKiBAcGFyYW0gW2Fubm90YXRpb25Tb3VyY2VzXVxuXHQgKiBAcmV0dXJucyBBbGwgdGhlIGFubm90YXRpb24gZm9yIGEgc3BlY2lmaWMgdGVybSBhbmQgdm9jYWJ1bGFyeSBmcm9tIGFuIGVudGl0eSB0eXBlXG5cdCAqL1xuXHRnZXRBbm5vdGF0aW9uc0J5VGVybTxUVD4oXG5cdFx0dm9jYWJ1bGFyeU5hbWU6IGtleW9mIEVudGl0eVR5cGVBbm5vdGF0aW9ucyxcblx0XHRhbm5vdGF0aW9uVGVybTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25Tb3VyY2VzOiAoU2VydmljZU9iamVjdCB8IHVuZGVmaW5lZClbXSA9IFt0aGlzLmdldEVudGl0eVR5cGUoKV1cblx0KTogQW5ub3RhdGlvblRlcm08VFQ+W10ge1xuXHRcdGxldCBvdXRBbm5vdGF0aW9uczogQW5ub3RhdGlvblRlcm08VFQ+W10gPSBbXTtcblx0XHRhbm5vdGF0aW9uU291cmNlcy5mb3JFYWNoKChhbm5vdGF0aW9uU291cmNlKSA9PiB7XG5cdFx0XHRpZiAoYW5ub3RhdGlvblNvdXJjZSkge1xuXHRcdFx0XHRjb25zdCBhbm5vdGF0aW9uczogUmVjb3JkPHN0cmluZywgQW5ub3RhdGlvblRlcm08VFQ+ICYgeyB0ZXJtOiBzdHJpbmcgfT4gPVxuXHRcdFx0XHRcdGFubm90YXRpb25Tb3VyY2U/LmFubm90YXRpb25zW3ZvY2FidWxhcnlOYW1lXSB8fCB7fTtcblx0XHRcdFx0aWYgKGFubm90YXRpb25zKSB7XG5cdFx0XHRcdFx0b3V0QW5ub3RhdGlvbnMgPSBPYmplY3Qua2V5cyhhbm5vdGF0aW9ucylcblx0XHRcdFx0XHRcdC5maWx0ZXIoKGFubm90YXRpb24pID0+IGFubm90YXRpb25zW2Fubm90YXRpb25dLnRlcm0gPT09IGFubm90YXRpb25UZXJtKVxuXHRcdFx0XHRcdFx0LnJlZHVjZSgocHJldmlvdXNWYWx1ZTogQW5ub3RhdGlvblRlcm08VFQ+W10sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWUucHVzaChhbm5vdGF0aW9uc1trZXldKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHByZXZpb3VzVmFsdWU7XG5cdFx0XHRcdFx0XHR9LCBvdXRBbm5vdGF0aW9ucyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gb3V0QW5ub3RhdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSByZWxhdGl2ZSBtb2RlbCBwYXRoIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbnRleHQgcGF0aC5cblx0ICogQHJldHVybnMgVGhlIHJlbGF0aXZlIG1vZGVsIHBhdGggb3IgdW5kZWZpbmVkIGlmIHRoZSBwYXRoIGlzIG5vdCByZXNvbHZlYWJsZVxuXHQgKi9cblx0Z2V0UmVsYXRpdmVNb2RlbFBhdGhGdW5jdGlvbigpOiBGdW5jdGlvbiB7XG5cdFx0Y29uc3QgdGFyZ2V0RGF0YU1vZGVsUGF0aCA9IHRoaXMudGFyZ2V0RGF0YU1vZGVsUGF0aDtcblx0XHRjb25zdCBjb252ZXJ0ZWRNZXRhTW9kZWwgPSB0aGlzLmNvbnZlcnRlZFR5cGVzO1xuXHRcdHJldHVybiBmdW5jdGlvbiAoc1BhdGg6IHN0cmluZykge1xuXHRcdFx0Y29uc3Qgc2luZ2xldG9uUGF0aCA9IHNpbmdsZXRvblBhdGhWaXNpdG9yKHNQYXRoLCBjb252ZXJ0ZWRNZXRhTW9kZWwsIFtdKTtcblx0XHRcdGNvbnN0IGVuaGFuY2VkUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKHRhcmdldERhdGFNb2RlbFBhdGgsIHNQYXRoKTtcblx0XHRcdGNvbnN0IGNvbnRleHRSZWxhdGl2ZVBhdGggPSBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKGVuaGFuY2VkUGF0aCwgdHJ1ZSk7XG5cdFx0XHRpZiAoY29udGV4dFJlbGF0aXZlUGF0aCkge1xuXHRcdFx0XHRyZXR1cm4gY29udGV4dFJlbGF0aXZlUGF0aDtcblx0XHRcdH1cblx0XHRcdHJldHVybiBzaW5nbGV0b25QYXRoO1xuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIHRoZSBjb252ZXJ0ZXIgY29udGV4dCBuZWNlc3NhcnkgZm9yIGEgbWFjcm8gYmFzZWQgb24gYSBtZXRhbW9kZWwgY29udGV4dC5cblx0ICogQHBhcmFtIGVudGl0eU5hbWVcblx0ICogQHBhcmFtIG9NZXRhTW9kZWxDb250ZXh0XG5cdCAqIEBwYXJhbSBkaWFnbm9zdGljc1xuXHQgKiBAcGFyYW0gbWVyZ2VGblxuXHQgKiBAcGFyYW0gdGFyZ2V0RGF0YU1vZGVsUGF0aFxuXHQgKiBAcGFyYW0gbWFuaWZlc3RXcmFwcGVyXG5cdCAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGNvbnZlcnRlciBjb250ZXh0XG5cdCAqL1xuXHRzdGF0aWMgY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvKFxuXHRcdGVudGl0eU5hbWU6IHN0cmluZyxcblx0XHRvTWV0YU1vZGVsQ29udGV4dDogQ29udGV4dCB8IE9EYXRhTWV0YU1vZGVsLFxuXHRcdGRpYWdub3N0aWNzOiBJRGlhZ25vc3RpY3MsXG5cdFx0bWVyZ2VGbjogRnVuY3Rpb24sXG5cdFx0dGFyZ2V0RGF0YU1vZGVsUGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGg8UGFnZUNvbnRleHRQYXRoVGFyZ2V0Pixcblx0XHRtYW5pZmVzdFdyYXBwZXI/OiBNYW5pZmVzdFdyYXBwZXJcblx0KTogQ29udmVydGVyQ29udGV4dDxQYWdlQ29udGV4dFBhdGhUYXJnZXQ+IHtcblx0XHRjb25zdCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCA9IG9NZXRhTW9kZWxDb250ZXh0LmlzQShcInNhcC51aS5tb2RlbC5vZGF0YS52NC5PRGF0YU1ldGFNb2RlbFwiKVxuXHRcdFx0PyAob01ldGFNb2RlbENvbnRleHQgYXMgT0RhdGFNZXRhTW9kZWwpXG5cdFx0XHQ6ICgob01ldGFNb2RlbENvbnRleHQgYXMgQ29udGV4dCkuZ2V0TW9kZWwoKSBhcyB1bmtub3duIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHRjb25zdCBvQ29udmVydGVkTWV0YWRhdGEgPSBjb252ZXJ0VHlwZXMob01ldGFNb2RlbCk7XG5cdFx0bGV0IHRhcmdldEVudGl0eVNldDogU2luZ2xldG9uIHwgRW50aXR5U2V0ID0gb0NvbnZlcnRlZE1ldGFkYXRhLmVudGl0eVNldHMuZmluZChcblx0XHRcdChlbnRpdHlTZXQpID0+IGVudGl0eVNldC5uYW1lID09PSBlbnRpdHlOYW1lXG5cdFx0KSBhcyBFbnRpdHlTZXQ7XG5cdFx0aWYgKCF0YXJnZXRFbnRpdHlTZXQpIHtcblx0XHRcdHRhcmdldEVudGl0eVNldCA9IG9Db252ZXJ0ZWRNZXRhZGF0YS5zaW5nbGV0b25zLmZpbmQoKGVudGl0eVNldCkgPT4gZW50aXR5U2V0Lm5hbWUgPT09IGVudGl0eU5hbWUpIGFzIFNpbmdsZXRvbjtcblx0XHR9XG5cdFx0aWYgKCF0YXJnZXREYXRhTW9kZWxQYXRoIHx8IHRhcmdldEVudGl0eVNldCAhPT0gdGFyZ2V0RGF0YU1vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdFx0dGFyZ2V0RGF0YU1vZGVsUGF0aCA9IHtcblx0XHRcdFx0c3RhcnRpbmdFbnRpdHlTZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHR0YXJnZXRFbnRpdHlTZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0Ly8gY29udGFpbmVkIGVudGl0eSBkb2VzIG5vdCBoYXZlIGFuIGVudGl0eSBzZXQgYnV0IG9ubHkgZW50aXR5IHR5cGVcblx0XHRcdFx0dGFyZ2V0RW50aXR5VHlwZTpcblx0XHRcdFx0XHR0YXJnZXRFbnRpdHlTZXQ/LmVudGl0eVR5cGUgfHwgb0NvbnZlcnRlZE1ldGFkYXRhLmVudGl0eVR5cGVzLmZpbmQoKGVudGl0eVR5cGUpID0+IGVudGl0eVR5cGUubmFtZSA9PT0gZW50aXR5TmFtZSksXG5cdFx0XHRcdHRhcmdldE9iamVjdDogdGFyZ2V0RW50aXR5U2V0IGFzIEVudGl0eVNldCxcblx0XHRcdFx0Y29udmVydGVkVHlwZXM6IG9Db252ZXJ0ZWRNZXRhZGF0YVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aWYgKCFtYW5pZmVzdFdyYXBwZXIpIHtcblx0XHRcdG1hbmlmZXN0V3JhcHBlciA9IG5ldyBNYW5pZmVzdFdyYXBwZXIoe30gYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3MsIG1lcmdlRm4pO1xuXHRcdH1cblx0XHRyZXR1cm4gbmV3IENvbnZlcnRlckNvbnRleHQob0NvbnZlcnRlZE1ldGFkYXRhLCBtYW5pZmVzdFdyYXBwZXIsIGRpYWdub3N0aWNzLCB0YXJnZXREYXRhTW9kZWxQYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNvbHZlcyBhIG1ldGFkYXRhIGJpbmRpbmcgdG8gaXRzIHRleHQuXG5cdCAqIEBwYXJhbSBwYXRoXG5cdCAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCB0ZXh0IGlmIHBvc3NpYmxlLCBlbHNlIHRoZSBpbnB1dCB2YWx1ZSBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIHBhdGggd2FzIHVuZGVmaW5lZFxuXHQgKi9cblx0ZmV0Y2hUZXh0RnJvbU1ldGFNb2RlbChwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBNb2RlbEhlbHBlci5mZXRjaFRleHRGcm9tTWV0YU1vZGVsKHBhdGgsIHRoaXMpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbnZlcnRlckNvbnRleHQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0VBK0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxnQkFBZ0IsR0FBRyxTQUFBQSxDQUFhQyxlQUEyQyxFQUF3QztJQUN4SCxPQUFPLE9BQU9BLGVBQWUsS0FBSyxRQUFRO0VBQzNDLENBQUM7RUFFRCxNQUFNQyw0QkFBNEIsR0FBRyxTQUFBQSxDQUNwQ0MsZ0JBQXFDLEVBQ3JDQyxjQUFpQyxFQUNSO0lBQ3pCLElBQUlDLGFBQW9DO0lBQ3hDLElBQUlDLGdCQUF1QztJQUMzQyxJQUFJQyxpQkFBd0M7SUFDNUMsSUFBSUMsaUJBQXlDO0lBQzdDLElBQUlDLGNBQXdCLEdBQUcsRUFBRTtJQUNqQyxNQUFNQyxvQkFBMEMsR0FBRyxFQUFFO0lBQ3JEUCxnQkFBZ0IsQ0FBQ1EsVUFBVSxDQUFDQyxPQUFPLENBQUVDLFVBQXNDLElBQUs7TUFDL0UsSUFBSUMsZUFBZSxDQUFDRCxVQUFVLENBQUMsRUFBRTtRQUNoQyxRQUFRQSxVQUFVLENBQUNFLEtBQUs7VUFDdkIsS0FBSyxvQkFBb0I7WUFDeEJOLGNBQWMsQ0FBQ08sSUFBSSxDQUFDSCxVQUFVLENBQUNJLElBQUksQ0FBQztZQUNwQ1Asb0JBQW9CLENBQUNNLElBQUksQ0FBQ0gsVUFBVSxDQUFDO1lBQ3JDTCxpQkFBaUIsR0FBR0ssVUFBVSxDQUFDSyxVQUFVO1lBQ3pDLElBQUlYLGlCQUFpQixJQUFJQSxpQkFBaUIsQ0FBQ1kseUJBQXlCLENBQUNDLGNBQWMsQ0FBQ1gsY0FBYyxDQUFDWSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtjQUM5R2YsZ0JBQWdCLEdBQUdDLGlCQUFpQixDQUFDWSx5QkFBeUIsQ0FBQ1YsY0FBYyxDQUFDWSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQWM7Y0FDckdkLGlCQUFpQixHQUFHRCxnQkFBZ0I7Y0FDcENHLGNBQWMsR0FBRyxFQUFFO1lBQ3BCLENBQUMsTUFBTTtjQUNOSCxnQkFBZ0IsR0FBR2dCLFNBQVM7WUFDN0I7WUFDQTtVQUNELEtBQUssV0FBVztZQUNmLElBQUlqQixhQUFhLEtBQUtpQixTQUFTLEVBQUU7Y0FDaENqQixhQUFhLEdBQUdRLFVBQVU7WUFDM0I7WUFDQVAsZ0JBQWdCLEdBQUdPLFVBQVU7WUFDN0JOLGlCQUFpQixHQUFHRCxnQkFBZ0I7WUFDcENFLGlCQUFpQixHQUFHRixnQkFBZ0IsRUFBRWlCLFVBQVU7WUFDaEQ7VUFDRDtZQUNDO1FBQ0Y7TUFDRDtJQUNELENBQUMsQ0FBQztJQUNGLE1BQU1DLGFBQXFDLEdBQUc7TUFDN0NDLGlCQUFpQixFQUFFcEIsYUFBMEI7TUFDN0NxQixnQkFBZ0IsRUFBRWxCLGlCQUErQjtNQUNqRG1CLGVBQWUsRUFBRXJCLGdCQUFnQjtNQUNqQ0ksb0JBQW9CLEVBQUVBLG9CQUFvQjtNQUMxQ2tCLGVBQWUsRUFBRU4sU0FBUztNQUMxQk8sWUFBWSxFQUFFMUIsZ0JBQWdCLENBQUMyQixNQUFNO01BQ3JDMUIsY0FBYyxFQUFFQTtJQUNqQixDQUFDO0lBQ0RvQixhQUFhLENBQUNJLGVBQWUsR0FBR0osYUFBYTtJQUM3QyxPQUFPQSxhQUFhO0VBQ3JCLENBQUM7O0VBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFUQSxJQVVNTyxnQkFBZ0I7SUFDckI7O0lBSUEsU0FBQUEsaUJBQ1MzQixjQUFpQyxFQUN4QjRCLGVBQWdDLEVBQ3pDQyxXQUF5QixFQUN6QkMsbUJBQTJDLEVBQ2xEO01BQUEsS0FKTzlCLGNBQWlDLEdBQWpDQSxjQUFpQztNQUFBLEtBQ3hCNEIsZUFBZ0MsR0FBaENBLGVBQWdDO01BQUEsS0FDekNDLFdBQXlCLEdBQXpCQSxXQUF5QjtNQUFBLEtBQ3pCQyxtQkFBMkMsR0FBM0NBLG1CQUEyQztNQUVuRCxJQUFJLENBQUNDLGVBQWUsR0FBR0MsbUJBQW1CLENBQUMsSUFBSSxDQUFDRixtQkFBbUIsQ0FBQztJQUNyRTtJQUFDLElBQUFHLE1BQUEsR0FBQU4sZ0JBQUEsQ0FBQU8sU0FBQTtJQUFBRCxNQUFBLENBRU9FLG9DQUFvQyxHQUE1QyxTQUFRQSxvQ0FBb0NBLENBQUNDLGtCQUEwQixFQUEwQjtNQUNoRyxPQUFPLElBQUksQ0FBQ3BDLGNBQWMsQ0FBQ3FDLFdBQVcsQ0FBQ0MsSUFBSSxDQUFFbkIsVUFBVSxJQUFLO1FBQzNELElBQUlpQixrQkFBa0IsQ0FBQ0csVUFBVSxDQUFDcEIsVUFBVSxDQUFDaUIsa0JBQWtCLENBQUMsRUFBRTtVQUNqRSxNQUFNSSxpQkFBaUIsR0FBR0osa0JBQWtCLENBQUNLLE9BQU8sQ0FBQ3RCLFVBQVUsQ0FBQ2lCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztVQUN2RixPQUFPSSxpQkFBaUIsQ0FBQ0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJQyxpQkFBaUIsQ0FBQ0QsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUM5RTtRQUNBLE9BQU8sS0FBSztNQUNiLENBQUMsQ0FBQztJQUNIOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBTixNQUFBLENBS0FTLHVCQUF1QixHQUF2QixTQUFBQSx1QkFBdUJBLENBQ3RCQyxVQUErRCxFQUNsRDtNQUNiLElBQUlBLFVBQVUsSUFBSSxPQUFPQSxVQUFVLEtBQUssUUFBUSxFQUFFO1FBQ2pELE1BQU1DLGNBQWMsR0FBR0QsVUFBVSxDQUFDUCxrQkFBa0I7UUFDcEQsTUFBTWQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDYSxvQ0FBb0MsQ0FBQ1MsY0FBYyxDQUFDO1FBQ2xGLElBQUksQ0FBQ3RCLGdCQUFnQixFQUFFO1VBQ3RCLE1BQU0sSUFBSXVCLEtBQUssQ0FBQywrQkFBK0JGLFVBQVUsQ0FBQ1Asa0JBQWtCLEVBQUUsQ0FBQztRQUNoRjtRQUNBLE9BQU9kLGdCQUFnQjtNQUN4QixDQUFDLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQ1EsbUJBQW1CLENBQUNSLGdCQUFnQjtNQUNqRDtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBVyxNQUFBLENBS0FhLCtCQUErQixHQUEvQixTQUFBQSwrQkFBK0JBLENBQW9DRixjQUFnRCxFQUFNO01BQ3hILElBQUloRCxnQkFBZ0IsQ0FBQ2dELGNBQWMsQ0FBQyxFQUFFO1FBQ3JDLE9BQU8sSUFBSSxDQUFDaEIsZUFBZSxDQUFDbUIsdUJBQXVCLENBQ2xESCxjQUFjLENBQUNSLGtCQUFrQixDQUFDSyxPQUFPLENBQUMsSUFBSSxDQUFDWCxtQkFBbUIsQ0FBQ1IsZ0JBQWdCLENBQUNjLGtCQUFrQixFQUFFLEVBQUUsQ0FDM0csQ0FBQztNQUNGO01BQ0EsTUFBTVkseUJBQXlCLEdBQzlCLE9BQU8sSUFBSSxDQUFDcEIsZUFBZSxDQUFDcUIsWUFBWSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDckIsZUFBZSxDQUFDcUIsWUFBWSxDQUFDLENBQUMsQ0FBRUMsTUFBTSxHQUFHLENBQUM7TUFDM0csTUFBTUMsMkJBQTJCLEdBQ2hDLE9BQU8sSUFBSSxDQUFDdkIsZUFBZSxDQUFDd0IsY0FBYyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDeEIsZUFBZSxDQUFDd0IsY0FBYyxDQUFDLENBQUMsQ0FBRUYsTUFBTSxHQUFHLENBQUM7TUFDL0csTUFBTUcsY0FBYyxHQUFHVCxjQUFjLENBQUNMLFVBQVUsQ0FBQyxHQUFHLENBQUM7O01BRXJEO01BQ0EsSUFBSSxDQUFDLElBQUksQ0FBQ1gsZUFBZSxDQUFDMEIscUJBQXFCLENBQUMsQ0FBQyxFQUFFO1FBQ2xELE9BQU8sSUFBSSxDQUFDMUIsZUFBZSxDQUFDbUIsdUJBQXVCLENBQUNILGNBQWMsQ0FBQztNQUNwRSxDQUFDLE1BQU0sSUFDTixDQUFDUyxjQUFjLEtBQ2JMLHlCQUF5QixJQUFJLElBQUksQ0FBQ2pCLGVBQWUsS0FBSyxJQUFJLElBQUksQ0FBQ0gsZUFBZSxDQUFDcUIsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUMvRkUsMkJBQTJCLElBQUksSUFBSSxDQUFDcEIsZUFBZSxLQUFLLElBQUksQ0FBQ0gsZUFBZSxDQUFDd0IsY0FBYyxDQUFDLENBQUUsQ0FBQyxFQUNoRztRQUNELE9BQU8sSUFBSSxDQUFDeEIsZUFBZSxDQUFDbUIsdUJBQXVCLENBQUssR0FBRyxJQUFJLENBQUNoQixlQUFlLElBQUlhLGNBQWMsRUFBRSxDQUFDO01BQ3JHLENBQUMsTUFBTSxJQUFJVyxNQUFNLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUM1QixlQUFlLENBQUNtQix1QkFBdUIsQ0FBQ0gsY0FBYyxDQUFDLENBQUMsQ0FBQ00sTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNoRyxPQUFPLElBQUksQ0FBQ3RCLGVBQWUsQ0FBQ21CLHVCQUF1QixDQUFDSCxjQUFjLENBQUM7TUFDcEU7TUFDQSxPQUFPLElBQUksQ0FBQ2hCLGVBQWUsQ0FBQ21CLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDaEIsZUFBZSxJQUFJYSxjQUFjLEVBQUUsQ0FBQztJQUNqRzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQVgsTUFBQSxDQUtBd0IseUJBQXlCLEdBQXpCLFNBQUFBLHlCQUF5QkEsQ0FBQ0MsZUFBdUIsRUFBVTtNQUMxRCxJQUFJLENBQUNBLGVBQWUsRUFBRTtRQUNyQixPQUFPQSxlQUFlO01BQ3ZCO01BQ0EsSUFBSUEsZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUMvQixPQUFPQSxlQUFlO01BQ3ZCO01BQ0EsT0FBTyxHQUFHLElBQUksQ0FBQzNCLGVBQWUsSUFBSTJCLGVBQWUsRUFBRTtJQUNwRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUF6QixNQUFBLENBSUFnQixZQUFZLEdBQVosU0FBQUEsWUFBWUEsQ0FBQSxFQUFzQztNQUNqRCxPQUFPLElBQUksQ0FBQ25CLG1CQUFtQixDQUFDUCxlQUFlO0lBQ2hEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQVUsTUFBQSxDQUlBbUIsY0FBYyxHQUFkLFNBQUFBLGNBQWNBLENBQUEsRUFBVztNQUN4QixPQUFPLElBQUksQ0FBQ3JCLGVBQWU7SUFDNUI7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBRSxNQUFBLENBSUEwQixzQkFBc0IsR0FBdEIsU0FBQUEsc0JBQXNCQSxDQUFBLEVBQTJCO01BQ2hELE9BQU8sSUFBSSxDQUFDN0IsbUJBQW1CO0lBQ2hDOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQUcsTUFBQSxDQUlBMkIsa0JBQWtCLEdBQWxCLFNBQUFBLGtCQUFrQkEsQ0FBQSxFQUFvQjtNQUNyQyxPQUFPLElBQUksQ0FBQzVELGNBQWMsQ0FBQzZELGVBQWU7SUFDM0M7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBNUIsTUFBQSxDQUlBNkIsYUFBYSxHQUFiLFNBQUFBLGFBQWFBLENBQUEsRUFBZTtNQUMzQixPQUFPLElBQUksQ0FBQ2hDLG1CQUFtQixDQUFDUixnQkFBZ0I7SUFDakQ7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBVyxNQUFBLENBSUE4QixzQkFBc0IsR0FBdEIsU0FBQUEsc0JBQXNCQSxDQUFBLEVBQWU7TUFDcEMsTUFBTUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDbEMsbUJBQW1CLENBQUNULGlCQUFpQixDQUFDRixVQUFVO01BQ2pGLE1BQU04QyxlQUFlLEdBQUcsQ0FBQyxDQUFDRCxtQkFBbUIsQ0FBQ0UsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLGFBQWE7TUFDaEYsT0FBUUgsZUFBZSxJQUFJRCxtQkFBbUI7SUFDL0M7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEvQixNQUFBLENBS0FvQyx1QkFBdUIsR0FBdkIsU0FBQUEsdUJBQXVCQSxDQUErQ3pCLGNBQXNCLEVBQWlDO01BQzVILElBQUksQ0FBQ0EsY0FBYyxDQUFDMEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xDLE1BQU0sSUFBSXpCLEtBQUssQ0FBQyw0QkFBNEJELGNBQWMsR0FBRyxDQUFDO01BQy9EO01BRUEsTUFBTTJCLFVBQVUsR0FBRzNCLGNBQWMsQ0FBQ0wsVUFBVSxDQUFDLEdBQUcsQ0FBQztNQUNqRCxJQUFJaUMsSUFBWTtNQUVoQixJQUFJRCxVQUFVLEVBQUU7UUFDZjtRQUNBQyxJQUFJLEdBQUc1QixjQUFjO01BQ3RCLENBQUMsTUFBTTtRQUNOO1FBQ0EsTUFBTTZCLElBQUksR0FBRyxJQUFJLENBQUNyQixjQUFjLENBQUMsQ0FBQyxDQUFDc0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkRGLElBQUksR0FBR0MsSUFBSSxDQUFDRSxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUdGLElBQUksR0FBRzdCLGNBQWMsR0FBRyxHQUFHNkIsSUFBSSxJQUFJN0IsY0FBYyxFQUFFO01BQ2hGO01BRUEsTUFBTWxCLE1BQTRDLEdBQUcsSUFBSSxDQUFDa0QsbUJBQW1CLENBQUNKLElBQUksQ0FBQztNQUVuRixNQUFNSyxtQkFBbUIsR0FBR0Msa0NBQWtDLENBQzdEO1FBQUVwRCxNQUFNLEVBQUVBLE1BQU0sQ0FBQ0EsTUFBdUI7UUFBRXFELGNBQWMsRUFBRXJELE1BQU0sQ0FBQ25CO01BQVcsQ0FBQyxFQUM3RSxJQUFJLENBQUNQLGNBQWMsRUFDbkJ1RSxVQUFVLEdBQUdyRCxTQUFTLEdBQUcsSUFBSSxDQUFDWSxtQkFBbUIsQ0FBQ04sZUFBZSxFQUNqRSxJQUNELENBQUM7TUFFRCxPQUFPO1FBQ05tQixVQUFVLEVBQUVqQixNQUFNLENBQUNBLE1BQU07UUFDekJzRCxnQkFBZ0IsRUFBRSxJQUFJckQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDM0IsY0FBYyxFQUFFLElBQUksQ0FBQzRCLGVBQWUsRUFBRSxJQUFJLENBQUNDLFdBQVcsRUFBRWdELG1CQUFtQjtNQUN4SCxDQUFDO0lBQ0Y7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBNUMsTUFBQSxDQUlBZ0QsZUFBZSxHQUFmLFNBQUFBLGVBQWVBLENBQUEsRUFBaUI7TUFDL0IsT0FBTyxJQUFJLENBQUNyRCxlQUFlLENBQUNxRCxlQUFlLENBQUMsQ0FBQztJQUM5Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUFoRCxNQUFBLENBSUFpRCxpQkFBaUIsR0FBakIsU0FBQUEsaUJBQWlCQSxDQUFBLEVBQXNCO01BQ3RDLE9BQU8sSUFBSSxDQUFDbEYsY0FBYztJQUMzQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBaUMsTUFBQSxDQU1Ba0QseUJBQXlCLEdBQXpCLFNBQUFBLHlCQUF5QkEsQ0FBQ3ZDLGNBQXNCLEVBQUV6QixVQUFzQixFQUFVO01BQ2pGLE9BQU95QixjQUFjLENBQUNILE9BQU8sQ0FBQ3RCLFVBQVUsQ0FBQ2lCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUNqRTs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQUgsTUFBQSxDQUtBbUQsK0JBQStCLEdBQS9CLFNBQUFBLCtCQUErQkEsQ0FBQ3hDLGNBQXNCLEVBQVU7TUFDL0QsSUFBSSxDQUFDQSxjQUFjLEVBQUU7UUFDcEIsT0FBT0EsY0FBYztNQUN0QjtNQUNBLE1BQU15QyxhQUFhLEdBQUcsSUFBSSxDQUFDdkQsbUJBQW1CLENBQUNSLGdCQUFnQixDQUFDYyxrQkFBa0I7TUFDbEYsSUFDQyxJQUFJLENBQUNOLG1CQUFtQixDQUFDUCxlQUFlLElBQ3hDLENBQUUsSUFBSSxDQUFDUSxlQUFlLENBQUNRLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUNSLGVBQWUsQ0FBQ3VELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSyxFQUFFLEVBQUVwQyxNQUFNLEdBQUcsQ0FBQyxFQUM3RjtRQUNELElBQUlxQyxzQkFBc0IsR0FBRzNDLGNBQWMsQ0FBQ0gsT0FBTyxDQUFDNEMsYUFBYSxFQUFFLEdBQUcsQ0FBQztRQUN2RSxJQUFJRSxzQkFBc0IsQ0FBQ3JDLE1BQU0sR0FBRyxDQUFDLElBQUlxQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUlBLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtVQUNoSEEsc0JBQXNCLEdBQUdBLHNCQUFzQixDQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdEO1FBQ0EsT0FBTyxJQUFJLENBQUN6RCxlQUFlLElBQUl3RCxzQkFBc0IsQ0FBQ2hELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBR2dELHNCQUFzQixHQUFHLElBQUlBLHNCQUFzQixFQUFFLENBQUM7TUFDL0gsQ0FBQyxNQUFNO1FBQ04sT0FBTyxJQUFJM0MsY0FBYyxFQUFFO01BQzVCO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBWCxNQUFBLENBSUF3RCxrQkFBa0IsR0FBbEIsU0FBQUEsa0JBQWtCQSxDQUFBLEVBQW9CO01BQ3JDLE9BQU8sSUFBSSxDQUFDN0QsZUFBZTtJQUM1QixDQUFDO0lBQUFLLE1BQUEsQ0FFRHlELGNBQWMsR0FBZCxTQUFBQSxjQUFjQSxDQUFBLEVBQWlCO01BQzlCLE9BQU8sSUFBSSxDQUFDN0QsV0FBVztJQUN4Qjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQUksTUFBQSxDQUtBMkMsbUJBQW1CLEdBQW5CLFNBQUFBLG1CQUFtQkEsQ0FBS0osSUFBWSxFQUF3QjtNQUMzRCxPQUFPLElBQUksQ0FBQ3hFLGNBQWMsQ0FBQzJGLFdBQVcsQ0FBQ25CLElBQUksQ0FBQztJQUM3Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXZDLE1BQUEsQ0FLQTJELHNCQUFzQixHQUF0QixTQUFBQSxzQkFBc0JBLENBQUlDLFdBQW1CLEVBQXVCO01BQ25FLE1BQU05RixnQkFBcUMsR0FBRyxJQUFJLENBQUNDLGNBQWMsQ0FBQzJGLFdBQVcsQ0FBSUUsV0FBVyxDQUFDO01BQzdGLE1BQU1DLFVBQVUsR0FBR2hHLDRCQUE0QixDQUFDQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUNDLGNBQWMsQ0FBQztNQUN0RixPQUFPLElBQUkyQixnQkFBZ0IsQ0FBSSxJQUFJLENBQUMzQixjQUFjLEVBQUUsSUFBSSxDQUFDNEIsZUFBZSxFQUFFLElBQUksQ0FBQ0MsV0FBVyxFQUFFaUUsVUFBVSxDQUFDO0lBQ3hHOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FQQztJQUFBN0QsTUFBQSxDQVFBOEQsb0JBQW9CLEdBQXBCLFNBQUFBLG9CQUFvQkEsQ0FDbkJDLGNBQTJDLEVBQzNDQyxjQUFzQixFQUVDO01BQUEsSUFEdkJDLGlCQUFnRCxHQUFBQyxTQUFBLENBQUFqRCxNQUFBLFFBQUFpRCxTQUFBLFFBQUFqRixTQUFBLEdBQUFpRixTQUFBLE1BQUcsQ0FBQyxJQUFJLENBQUNyQyxhQUFhLENBQUMsQ0FBQyxDQUFDO01BRXpFLElBQUlzQyxjQUFvQyxHQUFHLEVBQUU7TUFDN0NGLGlCQUFpQixDQUFDMUYsT0FBTyxDQUFFNkYsZ0JBQWdCLElBQUs7UUFDL0MsSUFBSUEsZ0JBQWdCLEVBQUU7VUFDckIsTUFBTW5DLFdBQWtFLEdBQ3ZFbUMsZ0JBQWdCLEVBQUVuQyxXQUFXLENBQUM4QixjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7VUFDcEQsSUFBSTlCLFdBQVcsRUFBRTtZQUNoQmtDLGNBQWMsR0FBRzdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVSxXQUFXLENBQUMsQ0FDdkNvQyxNQUFNLENBQUUzRCxVQUFVLElBQUt1QixXQUFXLENBQUN2QixVQUFVLENBQUMsQ0FBQzRELElBQUksS0FBS04sY0FBYyxDQUFDLENBQ3ZFTyxNQUFNLENBQUMsQ0FBQ0MsYUFBbUMsRUFBRUMsR0FBVyxLQUFLO2NBQzdERCxhQUFhLENBQUM3RixJQUFJLENBQUNzRCxXQUFXLENBQUN3QyxHQUFHLENBQUMsQ0FBQztjQUNwQyxPQUFPRCxhQUFhO1lBQ3JCLENBQUMsRUFBRUwsY0FBYyxDQUFDO1VBQ3BCO1FBQ0Q7TUFDRCxDQUFDLENBQUM7TUFDRixPQUFPQSxjQUFjO0lBQ3RCOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQW5FLE1BQUEsQ0FJQTBFLDRCQUE0QixHQUE1QixTQUFBQSw0QkFBNEJBLENBQUEsRUFBYTtNQUN4QyxNQUFNN0UsbUJBQW1CLEdBQUcsSUFBSSxDQUFDQSxtQkFBbUI7TUFDcEQsTUFBTThFLGtCQUFrQixHQUFHLElBQUksQ0FBQzVHLGNBQWM7TUFDOUMsT0FBTyxVQUFVNkcsS0FBYSxFQUFFO1FBQy9CLE1BQU1DLGFBQWEsR0FBR0Msb0JBQW9CLENBQUNGLEtBQUssRUFBRUQsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1FBQ3pFLE1BQU1JLFlBQVksR0FBR0Msb0JBQW9CLENBQUNuRixtQkFBbUIsRUFBRStFLEtBQUssQ0FBQztRQUNyRSxNQUFNSyxtQkFBbUIsR0FBR0Msa0NBQWtDLENBQUNILFlBQVksRUFBRSxJQUFJLENBQUM7UUFDbEYsSUFBSUUsbUJBQW1CLEVBQUU7VUFDeEIsT0FBT0EsbUJBQW1CO1FBQzNCO1FBQ0EsT0FBT0osYUFBYTtNQUNyQixDQUFDO0lBQ0Y7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FUQztJQUFBbkYsZ0JBQUEsQ0FVT3lGLDhCQUE4QixHQUFyQyxTQUFPQSw4QkFBOEJBLENBQ3BDQyxVQUFrQixFQUNsQkMsaUJBQTJDLEVBQzNDekYsV0FBeUIsRUFDekIwRixPQUFpQixFQUNqQnpGLG1CQUFnRSxFQUNoRUYsZUFBaUMsRUFDUztNQUMxQyxNQUFNNEYsVUFBMEIsR0FBR0YsaUJBQWlCLENBQUNHLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQyxHQUM1RkgsaUJBQWlCLEdBQ2hCQSxpQkFBaUIsQ0FBYUksUUFBUSxDQUFDLENBQStCO01BQzNFLE1BQU1DLGtCQUFrQixHQUFHQyxZQUFZLENBQUNKLFVBQVUsQ0FBQztNQUNuRCxJQUFJakcsZUFBc0MsR0FBR29HLGtCQUFrQixDQUFDRSxVQUFVLENBQUN2RixJQUFJLENBQzdFd0YsU0FBUyxJQUFLQSxTQUFTLENBQUNqSCxJQUFJLEtBQUt3RyxVQUNuQyxDQUFjO01BQ2QsSUFBSSxDQUFDOUYsZUFBZSxFQUFFO1FBQ3JCQSxlQUFlLEdBQUdvRyxrQkFBa0IsQ0FBQ0ksVUFBVSxDQUFDekYsSUFBSSxDQUFFd0YsU0FBUyxJQUFLQSxTQUFTLENBQUNqSCxJQUFJLEtBQUt3RyxVQUFVLENBQWM7TUFDaEg7TUFDQSxJQUFJLENBQUN2RixtQkFBbUIsSUFBSVAsZUFBZSxLQUFLTyxtQkFBbUIsQ0FBQ1QsaUJBQWlCLEVBQUU7UUFDdEZTLG1CQUFtQixHQUFHO1VBQ3JCVCxpQkFBaUIsRUFBRUUsZUFBZTtVQUNsQ2pCLG9CQUFvQixFQUFFLEVBQUU7VUFDeEJpQixlQUFlLEVBQUVBLGVBQWU7VUFDaEM7VUFDQUQsZ0JBQWdCLEVBQ2ZDLGVBQWUsRUFBRUosVUFBVSxJQUFJd0csa0JBQWtCLENBQUN0RixXQUFXLENBQUNDLElBQUksQ0FBRW5CLFVBQVUsSUFBS0EsVUFBVSxDQUFDTixJQUFJLEtBQUt3RyxVQUFVLENBQUM7VUFDbkg1RixZQUFZLEVBQUVGLGVBQTRCO1VBQzFDdkIsY0FBYyxFQUFFMkg7UUFDakIsQ0FBQztNQUNGO01BQ0EsSUFBSSxDQUFDL0YsZUFBZSxFQUFFO1FBQ3JCQSxlQUFlLEdBQUcsSUFBSW9HLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBMEJULE9BQU8sQ0FBQztNQUMzRTtNQUNBLE9BQU8sSUFBSTVGLGdCQUFnQixDQUFDZ0csa0JBQWtCLEVBQUUvRixlQUFlLEVBQUVDLFdBQVcsRUFBRUMsbUJBQW1CLENBQUM7SUFDbkc7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUFHLE1BQUEsQ0FLQWdHLHNCQUFzQixHQUF0QixTQUFBQSxzQkFBc0JBLENBQUN6RCxJQUF3QixFQUFVO01BQ3hELE9BQU8wRCxXQUFXLENBQUNELHNCQUFzQixDQUFDekQsSUFBSSxFQUFFLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBQUEsT0FBQTdDLGdCQUFBO0VBQUE7RUFBQSxPQUdhQSxnQkFBZ0I7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -100,18 +100,16 @@ const getDataModelPathForEntitySet = function <T>(
|
|
|
100
100
|
* @returns {ConverterContext} A converter context for the converters
|
|
101
101
|
*/
|
|
102
102
|
class ConverterContext<T = PageContextPathTarget> {
|
|
103
|
-
private manifestWrapper: ManifestWrapper;
|
|
103
|
+
//private manifestWrapper: ManifestWrapper;
|
|
104
104
|
|
|
105
105
|
private baseContextPath: string;
|
|
106
106
|
|
|
107
107
|
constructor(
|
|
108
108
|
private convertedTypes: ConvertedMetadata,
|
|
109
|
-
private
|
|
109
|
+
private readonly manifestWrapper: ManifestWrapper,
|
|
110
110
|
private diagnostics: IDiagnostics,
|
|
111
|
-
private mergeFn: Function,
|
|
112
111
|
private targetDataModelPath: DataModelObjectPath<T>
|
|
113
112
|
) {
|
|
114
|
-
this.manifestWrapper = new ManifestWrapper(this.manifestSettings, mergeFn);
|
|
115
113
|
this.baseContextPath = getTargetObjectPath(this.targetDataModelPath);
|
|
116
114
|
}
|
|
117
115
|
|
|
@@ -275,13 +273,7 @@ class ConverterContext<T = PageContextPathTarget> {
|
|
|
275
273
|
|
|
276
274
|
return {
|
|
277
275
|
annotation: target.target,
|
|
278
|
-
converterContext: new ConverterContext(
|
|
279
|
-
this.convertedTypes,
|
|
280
|
-
this.manifestSettings,
|
|
281
|
-
this.diagnostics,
|
|
282
|
-
this.mergeFn,
|
|
283
|
-
dataModelObjectPath
|
|
284
|
-
)
|
|
276
|
+
converterContext: new ConverterContext(this.convertedTypes, this.manifestWrapper, this.diagnostics, dataModelObjectPath)
|
|
285
277
|
};
|
|
286
278
|
}
|
|
287
279
|
|
|
@@ -364,7 +356,7 @@ class ConverterContext<T = PageContextPathTarget> {
|
|
|
364
356
|
getConverterContextFor<K>(contextPath: string): ConverterContext<K> {
|
|
365
357
|
const resolvedMetaPath: ResolutionTarget<K> = this.convertedTypes.resolvePath<K>(contextPath);
|
|
366
358
|
const targetPath = getDataModelPathForEntitySet(resolvedMetaPath, this.convertedTypes);
|
|
367
|
-
return new ConverterContext<K>(this.convertedTypes, this.
|
|
359
|
+
return new ConverterContext<K>(this.convertedTypes, this.manifestWrapper, this.diagnostics, targetPath);
|
|
368
360
|
}
|
|
369
361
|
|
|
370
362
|
/**
|
|
@@ -423,7 +415,7 @@ class ConverterContext<T = PageContextPathTarget> {
|
|
|
423
415
|
* @param diagnostics
|
|
424
416
|
* @param mergeFn
|
|
425
417
|
* @param targetDataModelPath
|
|
426
|
-
* @param
|
|
418
|
+
* @param manifestWrapper
|
|
427
419
|
* @returns The current converter context
|
|
428
420
|
*/
|
|
429
421
|
static createConverterContextForMacro(
|
|
@@ -432,7 +424,7 @@ class ConverterContext<T = PageContextPathTarget> {
|
|
|
432
424
|
diagnostics: IDiagnostics,
|
|
433
425
|
mergeFn: Function,
|
|
434
426
|
targetDataModelPath?: DataModelObjectPath<PageContextPathTarget>,
|
|
435
|
-
|
|
427
|
+
manifestWrapper?: ManifestWrapper
|
|
436
428
|
): ConverterContext<PageContextPathTarget> {
|
|
437
429
|
const oMetaModel: ODataMetaModel = oMetaModelContext.isA("sap.ui.model.odata.v4.ODataMetaModel")
|
|
438
430
|
? (oMetaModelContext as ODataMetaModel)
|
|
@@ -456,7 +448,10 @@ class ConverterContext<T = PageContextPathTarget> {
|
|
|
456
448
|
convertedTypes: oConvertedMetadata
|
|
457
449
|
};
|
|
458
450
|
}
|
|
459
|
-
|
|
451
|
+
if (!manifestWrapper) {
|
|
452
|
+
manifestWrapper = new ManifestWrapper({} as BaseManifestSettings, mergeFn);
|
|
453
|
+
}
|
|
454
|
+
return new ConverterContext(oConvertedMetadata, manifestWrapper, diagnostics, targetDataModelPath);
|
|
460
455
|
}
|
|
461
456
|
|
|
462
457
|
/**
|
|
@@ -7,16 +7,15 @@ sap.ui.define([], function () {
|
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
9
9
|
// ENUMS
|
|
10
|
-
let TemplateType
|
|
11
|
-
(function (TemplateType) {
|
|
10
|
+
let TemplateType = /*#__PURE__*/function (TemplateType) {
|
|
12
11
|
TemplateType["ListReport"] = "ListReport";
|
|
13
12
|
TemplateType["ObjectPage"] = "ObjectPage";
|
|
14
13
|
TemplateType["AnalyticalListPage"] = "AnalyticalListPage";
|
|
15
14
|
TemplateType["FreeStylePage"] = "None";
|
|
16
|
-
|
|
15
|
+
return TemplateType;
|
|
16
|
+
}({});
|
|
17
17
|
_exports.TemplateType = TemplateType;
|
|
18
|
-
let ActionType
|
|
19
|
-
(function (ActionType) {
|
|
18
|
+
let ActionType = /*#__PURE__*/function (ActionType) {
|
|
20
19
|
ActionType["DataFieldForAction"] = "ForAction";
|
|
21
20
|
ActionType["DataFieldForIntentBasedNavigation"] = "ForNavigation";
|
|
22
21
|
ActionType["Default"] = "Default";
|
|
@@ -32,27 +31,28 @@ sap.ui.define([], function () {
|
|
|
32
31
|
ActionType["Copy"] = "Copy";
|
|
33
32
|
ActionType["Cut"] = "Cut";
|
|
34
33
|
ActionType["Standard"] = "Standard";
|
|
35
|
-
|
|
34
|
+
ActionType["CreateNext"] = "CreateNext";
|
|
35
|
+
return ActionType;
|
|
36
|
+
}({});
|
|
36
37
|
_exports.ActionType = ActionType;
|
|
37
|
-
let SelectionMode
|
|
38
|
-
(function (SelectionMode) {
|
|
38
|
+
let SelectionMode = /*#__PURE__*/function (SelectionMode) {
|
|
39
39
|
SelectionMode["Auto"] = "Auto";
|
|
40
40
|
SelectionMode["None"] = "None";
|
|
41
41
|
SelectionMode["Multi"] = "Multi";
|
|
42
42
|
SelectionMode["Single"] = "Single";
|
|
43
43
|
SelectionMode["ForceMulti"] = "ForceMulti";
|
|
44
44
|
SelectionMode["ForceSingle"] = "ForceSingle";
|
|
45
|
-
|
|
45
|
+
return SelectionMode;
|
|
46
|
+
}({});
|
|
46
47
|
_exports.SelectionMode = SelectionMode;
|
|
47
|
-
let VariantManagementType
|
|
48
|
-
(function (VariantManagementType) {
|
|
48
|
+
let VariantManagementType = /*#__PURE__*/function (VariantManagementType) {
|
|
49
49
|
VariantManagementType["Page"] = "Page";
|
|
50
50
|
VariantManagementType["Control"] = "Control";
|
|
51
51
|
VariantManagementType["None"] = "None";
|
|
52
|
-
|
|
52
|
+
return VariantManagementType;
|
|
53
|
+
}({});
|
|
53
54
|
_exports.VariantManagementType = VariantManagementType;
|
|
54
|
-
let CreationMode
|
|
55
|
-
(function (CreationMode) {
|
|
55
|
+
let CreationMode = /*#__PURE__*/function (CreationMode) {
|
|
56
56
|
CreationMode["NewPage"] = "NewPage";
|
|
57
57
|
CreationMode["Sync"] = "Sync";
|
|
58
58
|
CreationMode["Async"] = "Async";
|
|
@@ -62,34 +62,35 @@ sap.ui.define([], function () {
|
|
|
62
62
|
CreationMode["InlineCreationRows"] = "InlineCreationRows";
|
|
63
63
|
CreationMode["External"] = "External";
|
|
64
64
|
CreationMode["CreationDialog"] = "CreationDialog";
|
|
65
|
-
|
|
65
|
+
return CreationMode;
|
|
66
|
+
}({});
|
|
66
67
|
_exports.CreationMode = CreationMode;
|
|
67
|
-
let VisualizationType
|
|
68
|
-
(function (VisualizationType) {
|
|
68
|
+
let VisualizationType = /*#__PURE__*/function (VisualizationType) {
|
|
69
69
|
VisualizationType["Table"] = "Table";
|
|
70
70
|
VisualizationType["Chart"] = "Chart";
|
|
71
|
-
|
|
71
|
+
return VisualizationType;
|
|
72
|
+
}({});
|
|
72
73
|
_exports.VisualizationType = VisualizationType;
|
|
73
|
-
let OperationGroupingMode
|
|
74
|
-
(function (OperationGroupingMode) {
|
|
74
|
+
let OperationGroupingMode = /*#__PURE__*/function (OperationGroupingMode) {
|
|
75
75
|
OperationGroupingMode["ChangeSet"] = "ChangeSet";
|
|
76
76
|
OperationGroupingMode["Isolated"] = "Isolated";
|
|
77
|
-
|
|
77
|
+
return OperationGroupingMode;
|
|
78
|
+
}({}); // Table
|
|
78
79
|
_exports.OperationGroupingMode = OperationGroupingMode;
|
|
79
|
-
let Importance
|
|
80
|
-
(function (Importance) {
|
|
80
|
+
let Importance = /*#__PURE__*/function (Importance) {
|
|
81
81
|
Importance["High"] = "High";
|
|
82
82
|
Importance["Medium"] = "Medium";
|
|
83
83
|
Importance["Low"] = "Low";
|
|
84
84
|
Importance["None"] = "None";
|
|
85
|
-
|
|
85
|
+
return Importance;
|
|
86
|
+
}({});
|
|
86
87
|
_exports.Importance = Importance;
|
|
87
|
-
let HorizontalAlign
|
|
88
|
-
(function (HorizontalAlign) {
|
|
88
|
+
let HorizontalAlign = /*#__PURE__*/function (HorizontalAlign) {
|
|
89
89
|
HorizontalAlign["End"] = "End";
|
|
90
90
|
HorizontalAlign["Begin"] = "Begin";
|
|
91
91
|
HorizontalAlign["Center"] = "Center";
|
|
92
|
-
|
|
92
|
+
return HorizontalAlign;
|
|
93
|
+
}({}); // TYPES
|
|
93
94
|
/**
|
|
94
95
|
* Configuration of a KPI in the manifest
|
|
95
96
|
*/
|
|
@@ -125,4 +126,4 @@ sap.ui.define([], function () {
|
|
|
125
126
|
_exports.HorizontalAlign = HorizontalAlign;
|
|
126
127
|
return _exports;
|
|
127
128
|
}, false);
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZVR5cGUiLCJfZXhwb3J0cyIsIkFjdGlvblR5cGUiLCJTZWxlY3Rpb25Nb2RlIiwiVmFyaWFudE1hbmFnZW1lbnRUeXBlIiwiQ3JlYXRpb25Nb2RlIiwiVmlzdWFsaXphdGlvblR5cGUiLCJPcGVyYXRpb25Hcm91cGluZ01vZGUiLCJJbXBvcnRhbmNlIiwiSG9yaXpvbnRhbEFsaWduIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNYW5pZmVzdFNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgRm9ybUVsZW1lbnRUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgRmxleFNldHRpbmdzLCBIZWFkZXJGYWNldFR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9PYmplY3RQYWdlL0hlYWRlckZhY2V0XCI7XG5pbXBvcnQgdHlwZSB7IEZpZWxkRWRpdFN0eWxlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRGb3JtYXRPcHRpb25zXCI7XG5pbXBvcnQgdHlwZSB7IE1hbmlmZXN0Q29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9NYW5pZmVzdFwiO1xuaW1wb3J0IHR5cGUgeyBDb2x1bW5FeHBvcnRTZXR0aW5ncywgVGFibGVSb3dDb3VudE1vZGUsIFRhYmxlVHlwZSB9IGZyb20gXCIuL2NvbnRyb2xzL0NvbW1vbi9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBDb25maWd1cmFibGVSZWNvcmQsIFBvc2l0aW9uLCBQb3NpdGlvbmFibGUgfSBmcm9tIFwiLi9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuXG4vLyBFTlVNU1xuXG5leHBvcnQgZW51bSBUZW1wbGF0ZVR5cGUge1xuXHRMaXN0UmVwb3J0ID0gXCJMaXN0UmVwb3J0XCIsXG5cdE9iamVjdFBhZ2UgPSBcIk9iamVjdFBhZ2VcIixcblx0QW5hbHl0aWNhbExpc3RQYWdlID0gXCJBbmFseXRpY2FsTGlzdFBhZ2VcIixcblx0RnJlZVN0eWxlUGFnZSA9IFwiTm9uZVwiXG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuXHREYXRhRmllbGRGb3JBY3Rpb24gPSBcIkZvckFjdGlvblwiLFxuXHREYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gPSBcIkZvck5hdmlnYXRpb25cIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRQcmltYXJ5ID0gXCJQcmltYXJ5XCIsXG5cdFNlY29uZGFyeSA9IFwiU2Vjb25kYXJ5XCIsXG5cdFN3aXRjaFRvQWN0aXZlT2JqZWN0ID0gXCJTd2l0Y2hUb0FjdGl2ZU9iamVjdFwiLFxuXHRTd2l0Y2hUb0RyYWZ0T2JqZWN0ID0gXCJTd2l0Y2hUb0RyYWZ0T2JqZWN0XCIsXG5cdERyYWZ0QWN0aW9ucyA9IFwiRHJhZnRBY3Rpb25zXCIsXG5cdENvbGxhYm9yYXRpb25BdmF0YXJzID0gXCJDb2xsYWJvcmF0aW9uQXZhdGFyc1wiLFxuXHREZWZhdWx0QXBwbHkgPSBcIkRlZmF1bHRBcHBseVwiLFxuXHRNZW51ID0gXCJNZW51XCIsXG5cdFNob3dGb3JtRGV0YWlscyA9IFwiU2hvd0Zvcm1EZXRhaWxzXCIsXG5cdENvcHkgPSBcIkNvcHlcIixcblx0Q3V0ID0gXCJDdXRcIixcblx0LyoqIFRoaXMgdHlwZSBkZW5vdGVzIHN0YW5kYXJkIGFjdGlvbnMgbGlrZSBcIkNyZWF0ZVwiIGFuZCBcIkRlbGV0ZVwiICovXG5cdFN0YW5kYXJkID0gXCJTdGFuZGFyZFwiXG59XG5cbmV4cG9ydCBlbnVtIFNlbGVjdGlvbk1vZGUge1xuXHRBdXRvID0gXCJBdXRvXCIsXG5cdE5vbmUgPSBcIk5vbmVcIixcblx0TXVsdGkgPSBcIk11bHRpXCIsXG5cdFNpbmdsZSA9IFwiU2luZ2xlXCIsXG5cdEZvcmNlTXVsdGkgPSBcIkZvcmNlTXVsdGlcIixcblx0Rm9yY2VTaW5nbGUgPSBcIkZvcmNlU2luZ2xlXCJcbn1cblxuZXhwb3J0IGVudW0gVmFyaWFudE1hbmFnZW1lbnRUeXBlIHtcblx0UGFnZSA9IFwiUGFnZVwiLFxuXHRDb250cm9sID0gXCJDb250cm9sXCIsXG5cdE5vbmUgPSBcIk5vbmVcIlxufVxuXG5leHBvcnQgZW51bSBDcmVhdGlvbk1vZGUge1xuXHROZXdQYWdlID0gXCJOZXdQYWdlXCIsXG5cdFN5bmMgPSBcIlN5bmNcIixcblx0QXN5bmMgPSBcIkFzeW5jXCIsXG5cdERlZmVycmVkID0gXCJEZWZlcnJlZFwiLFxuXHRJbmxpbmUgPSBcIklubGluZVwiLFxuXHRDcmVhdGlvblJvdyA9IFwiQ3JlYXRpb25Sb3dcIixcblx0SW5saW5lQ3JlYXRpb25Sb3dzID0gXCJJbmxpbmVDcmVhdGlvblJvd3NcIixcblx0RXh0ZXJuYWwgPSBcIkV4dGVybmFsXCIsXG5cdENyZWF0aW9uRGlhbG9nID0gXCJDcmVhdGlvbkRpYWxvZ1wiXG59XG5cbmV4cG9ydCBlbnVtIFZpc3VhbGl6YXRpb25UeXBlIHtcblx0VGFibGUgPSBcIlRhYmxlXCIsXG5cdENoYXJ0ID0gXCJDaGFydFwiXG59XG5cbmV4cG9ydCBlbnVtIE9wZXJhdGlvbkdyb3VwaW5nTW9kZSB7XG5cdENoYW5nZVNldCA9IFwiQ2hhbmdlU2V0XCIsXG5cdElzb2xhdGVkID0gXCJJc29sYXRlZFwiXG59XG5cbi8vIFRhYmxlXG5leHBvcnQgdHlwZSBBdmFpbGFiaWxpdHlUeXBlID0gXCJEZWZhdWx0XCIgfCBcIkFkYXB0YXRpb25cIiB8IFwiSGlkZGVuXCI7XG5leHBvcnQgZW51bSBJbXBvcnRhbmNlIHtcblx0SGlnaCA9IFwiSGlnaFwiLFxuXHRNZWRpdW0gPSBcIk1lZGl1bVwiLFxuXHRMb3cgPSBcIkxvd1wiLFxuXHROb25lID0gXCJOb25lXCJcbn1cblxuZXhwb3J0IGVudW0gSG9yaXpvbnRhbEFsaWduIHtcblx0RW5kID0gXCJFbmRcIixcblx0QmVnaW4gPSBcIkJlZ2luXCIsXG5cdENlbnRlciA9IFwiQ2VudGVyXCJcbn1cblxuLy8gVFlQRVNcblxuZXhwb3J0IHR5cGUgQ29udGVudERlbnNpdGllc1R5cGUgPSB7XG5cdGNvbXBhY3Q/OiBib29sZWFuO1xuXHRjb3p5PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0U2lkZUNvbnRlbnQgPSB7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGVxdWFsU3BsaXQ/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9mIGEgS1BJIGluIHRoZSBtYW5pZmVzdFxuICovXG5leHBvcnQgdHlwZSBBbmFseXRpY2FsS1BJQ29uZmlndXJhdGlvbiA9IHtcblx0bW9kZWw/OiBzdHJpbmc7XG5cdGVudGl0eVNldD86IHN0cmluZztcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cdHF1YWxpZmllcjogc3RyaW5nO1xuXHRkZXRhaWxOYXZpZ2F0aW9uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tS1BJQ29uZmlndXJhdGlvbiA9IHtcblx0dGVtcGxhdGU6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBLUElDb25maWd1cmF0aW9uID0gQ3VzdG9tS1BJQ29uZmlndXJhdGlvbiB8IEFuYWx5dGljYWxLUElDb25maWd1cmF0aW9uO1xuZXhwb3J0IHR5cGUgTWljcm9DaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0cmVxdWVzdEdyb3VwSWQ/OiBzdHJpbmc7XG5cdG5hdmlnYXRpb246IHtcblx0XHR0YXJnZXRPdXRib3VuZDoge1xuXHRcdFx0b3V0Ym91bmQ6IHN0cmluZztcblx0XHR9O1xuXHRcdHRhcmdldFNlY3Rpb25zOiBzdHJpbmdbXTtcblx0fTtcbn07XG5leHBvcnQgdHlwZSBDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0W2Fubm90YXRpb25QYXRoOiBzdHJpbmddOiBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uO1xufSAmIHtcblx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW1cIj86IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiPzogQ2hhcnRNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0c1wiPzogRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiPzogSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiPzogRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5NaWNyb0NoYXJ0XCI/OiBNaWNyb0NoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBCYXNlTWFuaWZlc3RTZXR0aW5nc1xuICovXG5leHBvcnQgdHlwZSBCYXNlTWFuaWZlc3RTZXR0aW5ncyA9IHtcblx0Y29udGVudD86IHtcblx0XHRoZWFkZXI/OiB7XG5cdFx0XHRmYWNldHM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RIZWFkZXJGYWNldD47XG5cdFx0XHRhY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPjtcblx0XHR9O1xuXHRcdGZvb3Rlcj86IHtcblx0XHRcdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xuXHRcdH07XG5cdH07XG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzogQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdGNvbnZlcnRlclR5cGU6IFRlbXBsYXRlVHlwZTtcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uPzoge1xuXHRcdFtuYXZpZ2F0aW9uUGF0aDogc3RyaW5nXTogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbjtcblx0fTtcblx0dmlld0xldmVsPzogbnVtYmVyO1xuXHRmY2xFbmFibGVkPzogYm9vbGVhbjtcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cdHZhcmlhbnRNYW5hZ2VtZW50PzogVmFyaWFudE1hbmFnZW1lbnRUeXBlO1xuXHRkZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aD86IHN0cmluZztcblx0Y29udGVudERlbnNpdGllcz86IENvbnRlbnREZW5zaXRpZXNUeXBlO1xuXHRzaGVsbENvbnRlbnREZW5zaXR5Pzogc3RyaW5nO1xuXHRpc0Rlc2t0b3A/OiBib29sZWFuO1xuXHRpc1Bob25lPzogYm9vbGVhbjtcblx0ZW5hYmxlTGF6eUxvYWRpbmc/OiBib29sZWFuO1xuXHRzYXBGZU1hbmlmZXN0Q29uZmlndXJhdGlvbj86IE1hbmlmZXN0Q29udGVudFtcInNhcC5mZVwiXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uID0ge1xuXHRvdXRib3VuZD86IHN0cmluZztcblx0b3V0Ym91bmREZXRhaWw/OiB7XG5cdFx0c2VtYW50aWNPYmplY3Q6IHN0cmluZztcblx0XHRhY3Rpb246IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzPzogdW5rbm93bjtcblx0fTtcblx0cm91dGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbiA9IHtcblx0Y3JlYXRlPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb247XG5cdGRldGFpbD86IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uO1xuXHRkaXNwbGF5Pzoge1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdHRhcmdldD86IHN0cmluZzsgLy8gZm9yIGNvbXBhdGliaWxpdHlcblx0XHRyb3V0ZT86IHN0cmluZztcblx0fTtcbn07XG5cbnR5cGUgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdGZhY2V0czogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+O1xufTtcblxudHlwZSBGYWNldHNDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0c2VjdGlvbnM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xufTtcblxudHlwZSBNYW5pZmVzdEZvcm1FbGVtZW50ID0gUG9zaXRpb25hYmxlICYge1xuXHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRwcm9wZXJ0eT86IHN0cmluZztcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0ZmllbGRzOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RGb3JtRWxlbWVudD47XG5cdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xufTtcblxuZXhwb3J0IHR5cGUgQ29udHJvbE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9XG5cdHwgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb25cblx0fCBDaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvblxuXHR8IEZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uXG5cdHwgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb25cblx0fCBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uXG5cdHwgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXG4vKiogT2JqZWN0IFBhZ2UgKi9cbmV4cG9ydCB0eXBlIFRyYW5zcG9ydFNlbGVjdGlvbkRlZmluaXRpb24gPSB7XG5cdHRyYW5zcG9ydFJlcXVlc3RQcm9wZXJ0eTogc3RyaW5nO1xuXHRzZWxlY3RUcmFuc3BvcnRBY3Rpb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzID0gQmFzZU1hbmlmZXN0U2V0dGluZ3MgJiB7XG5cdGNvbnRlbnQ/OiB7XG5cdFx0aGVhZGVyPzoge1xuXHRcdFx0dmlzaWJsZT86IGJvb2xlYW47XG5cdFx0XHRhbmNob3JCYXJWaXNpYmxlPzogYm9vbGVhbjtcblx0XHRcdGZhY2V0cz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcblx0XHR9O1xuXHRcdGJvZHk/OiB7XG5cdFx0XHRzZWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xuXHRcdH07XG5cdFx0dHJhbnNwb3J0U2VsZWN0aW9uPzogVHJhbnNwb3J0U2VsZWN0aW9uRGVmaW5pdGlvbjtcblx0fTtcblx0ZWRpdGFibGVIZWFkZXJDb250ZW50PzogYm9vbGVhbjtcblx0c2VjdGlvbkxheW91dD86IFwiVGFic1wiIHwgXCJQYWdlXCI7XG5cdHVzZVRleHRGb3JOb0RhdGFNZXNzYWdlcz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE1hbmlmZXN0SGVhZGVyRmFjZXRcbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RIZWFkZXJGYWNldCA9IHtcblx0dHlwZT86IEhlYWRlckZhY2V0VHlwZTtcblx0bmFtZT86IHN0cmluZztcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0dGl0bGU/OiBzdHJpbmc7XG5cdHN1YlRpdGxlPzogc3RyaW5nO1xuXHRzdGFzaGVkPzogYm9vbGVhbjtcblx0ZmxleFNldHRpbmdzPzogRmxleFNldHRpbmdzO1xuXHRyZXF1ZXN0R3JvdXBJZD86IHN0cmluZztcblx0dGVtcGxhdGVFZGl0Pzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBNYW5pZmVzdFNlY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RTZWN0aW9uID0ge1xuXHR0aXRsZT86IHN0cmluZztcblx0aWQ/OiBzdHJpbmc7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdHN1YlNlY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RTdWJTZWN0aW9uPjtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPjtcblx0dXNlU2luZ2xlVGV4dEFyZWFGaWVsZEFzTm90ZXM/OiBib29sZWFuO1xuXHRvblNlY3Rpb25Mb2FkZWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFN1YlNlY3Rpb24gPSB7XG5cdGlkPzogc3RyaW5nO1xuXHRuYW1lPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0dGl0bGU/OiBzdHJpbmc7XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPjtcblx0c2lkZUNvbnRlbnQ/OiBNYW5pZmVzdFNpZGVDb250ZW50O1xuXHRlbmFibGVMYXp5TG9hZGluZz86IGJvb2xlYW47XG5cdGVtYmVkZGVkQ29tcG9uZW50PzogTWFuaWZlc3RSZXVzZUNvbXBvbmVudFNldHRpbmdzO1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RSZXVzZUNvbXBvbmVudFNldHRpbmdzID0ge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHNldHRpbmdzPzogdW5rbm93bjtcbn07XG5cbi8qKiBMaXN0IFJlcG9ydCAqL1xuZXhwb3J0IHR5cGUgTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MgPSBCYXNlTWFuaWZlc3RTZXR0aW5ncyAmIHtcblx0c3RpY2t5TXVsdGlUYWJIZWFkZXI/OiBib29sZWFuO1xuXHRpbml0aWFsTG9hZD86IGJvb2xlYW47XG5cdHZpZXdzPzogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb247XG5cdGtleVBlcmZvcm1hbmNlSW5kaWNhdG9ycz86IHtcblx0XHRba3BpTmFtZTogc3RyaW5nXTogS1BJQ29uZmlndXJhdGlvbjtcblx0fTtcblx0aGlkZUZpbHRlckJhcj86IGJvb2xlYW47XG5cdHVzZUhpZGRlbkZpbHRlckJhcj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblxuZXhwb3J0IHR5cGUgVmlld0NvbmZpZ3VyYXRpb24gPSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgdHlwZSBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uID0ge1xuXHRrZXk/OiBzdHJpbmc7XG5cdGxhYmVsOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSB7XG5cdGtlZXBQcmV2aW91c1BlcnNvbmFsaXphdGlvbj86IGJvb2xlYW47XG5cdGtleT86IHN0cmluZztcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENvbWJpbmVkVmlld0RlZmF1bHRQYXRoID0gXCJib3RoXCIgfCBcInByaW1hcnlcIiB8IFwic2Vjb25kYXJ5XCI7XG5cbmV4cG9ydCB0eXBlIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uID0ge1xuXHRwcmltYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXTtcblx0c2Vjb25kYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXTtcblx0ZGVmYXVsdFBhdGg/OiBDb21iaW5lZFZpZXdEZWZhdWx0UGF0aDtcblx0a2V5Pzogc3RyaW5nO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24gPSB7XG5cdHBhdGhzOiBWaWV3Q29uZmlndXJhdGlvbltdO1xuXHRzaG93Q291bnRzPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGaWx0ZXIgQ29uZmlndXJhdGlvbiAqL1xuXG4vKiogQHR5cGVkZWYgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uICovXG5leHBvcnQgdHlwZSBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdGZpbHRlckZpZWxkcz86IFJlY29yZDxzdHJpbmcsIEZpbHRlckZpZWxkTWFuaWZlc3RDb25maWd1cmF0aW9uPjtcblx0bmF2aWdhdGlvblByb3BlcnRpZXM/OiBzdHJpbmdbXTtcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2U/OiBib29sZWFuO1xuXHRzaG93Q2xlYXJCdXR0b24/OiBib29sZWFuO1xuXHRpbml0aWFsTGF5b3V0Pzogc3RyaW5nO1xuXHRsYXlvdXQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJGaWVsZE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IFBvc2l0aW9uYWJsZSAmIHtcblx0dHlwZT86IHN0cmluZztcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xuXHRzZXR0aW5ncz86IEZpbHRlclNldHRpbmdzO1xuXHR2aXN1YWxGaWx0ZXI/OiB2aXN1YWxGaWx0ZXJDb25maWd1cmF0aW9uO1xuXHRyZXF1aXJlZD86IGJvb2xlYW47XG5cdHNsb3ROYW1lPzogc3RyaW5nO1xuXHRwcm9wZXJ0eT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIHZpc3VhbEZpbHRlckNvbmZpZ3VyYXRpb24gPSB7XG5cdHZhbHVlTGlzdD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9wZXJhdG9yQ29uZmlndXJhdGlvbiA9IHtcblx0cGF0aDogc3RyaW5nO1xuXHRlcXVhbHM/OiBzdHJpbmc7XG5cdGNvbnRhaW5zPzogc3RyaW5nO1xuXHRleGNsdWRlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdE9wZXJhdG9yID0ge1xuXHRvcGVyYXRvcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRmlsdGVyU2V0dGluZ3MgPSB7XG5cdG9wZXJhdG9yQ29uZmlndXJhdGlvbj86IE9wZXJhdG9yQ29uZmlndXJhdGlvbltdO1xuXHRkZWZhdWx0VmFsdWVzPzogRGVmYXVsdE9wZXJhdG9yW107XG5cdGlzQ3VzdG9tRmlsdGVyPzogYm9vbGVhbjtcbn07XG5cbi8qKiBDaGFydCBDb25maWd1cmF0aW9uICovXG5cbmV4cG9ydCB0eXBlIENoYXJ0UGVyc29uYWxpemF0aW9uTWFuaWZlc3RTZXR0aW5ncyA9XG5cdHwgYm9vbGVhblxuXHR8IHN0cmluZ1xuXHR8IHtcblx0XHRcdHNvcnQ6IGJvb2xlYW47XG5cdFx0XHR0eXBlOiBib29sZWFuO1xuXHRcdFx0aXRlbTogYm9vbGVhbjtcblx0XHRcdGZpbHRlcjogYm9vbGVhbjtcblx0ICB9O1xuXG5leHBvcnQgdHlwZSBDaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0Y2hhcnRTZXR0aW5ncz86IHtcblx0XHRwZXJzb25hbGl6YXRpb246IENoYXJ0UGVyc29uYWxpemF0aW9uTWFuaWZlc3RTZXR0aW5ncztcblx0fTtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPjtcblx0ZW5hYmxlQWRkQ2FyZFRvSW5zaWdodHM/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uID0ge1xuXHRuYXZpZ2F0ZVRvSW5zdGFuY2U/OiBib29sZWFuO1xuXHRlbmFibGVBdXRvU2Nyb2xsPzogYm9vbGVhbjtcbn07XG5cbi8qKiBUYWJsZSBDb25maWd1cmF0aW9uICovXG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RBY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgTWFuaWZlc3RBY3Rpb24gPSB7XG5cdGRlZmF1bHRBY3Rpb24/OiBzdHJpbmc7XG5cdG1lbnU/OiBzdHJpbmdbXTtcblx0dmlzaWJsZT86IHN0cmluZyB8IGJvb2xlYW47XG5cdGVuYWJsZWQ/OiBzdHJpbmcgfCBib29sZWFuO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHRwcmVzcz86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0X19ub1dyYXA/OiBib29sZWFuO1xuXHRlbmFibGVPblNlbGVjdD86IHN0cmluZztcblx0ZGVmYXVsdFZhbHVlc0Z1bmN0aW9uPzogc3RyaW5nO1xuXHRyZXF1aXJlc1NlbGVjdGlvbj86IGJvb2xlYW47XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRpbmxpbmU/OiBib29sZWFuO1xuXHRkZXRlcm1pbmluZz86IGJvb2xlYW47XG5cdGZhY2V0TmFtZT86IHN0cmluZztcblx0Y29tbWFuZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIEJhc2VDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gPSBQb3NpdGlvbmFibGUgJiB7XG5cdHdpZHRoPzogc3RyaW5nO1xuXHRpbXBvcnRhbmNlPzogSW1wb3J0YW5jZTtcblx0aG9yaXpvbnRhbEFsaWduPzogSG9yaXpvbnRhbEFsaWduO1xuXHRhdmFpbGFiaWxpdHk/OiBBdmFpbGFiaWxpdHlUeXBlO1xuXHR0b29sdGlwPzogc3RyaW5nO1xuXHRyZXF1aXJlZD86IGJvb2xlYW47XG5cdHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyPzogYm9vbGVhbjtcblx0ZXhwb3J0U2V0dGluZ3M/OiBDb2x1bW5FeHBvcnRTZXR0aW5ncztcbn07XG5cbi8vIENhbiBiZSBlaXRoZXIgQ3VzdG9tIENvbHVtbiBmcm9tIE1hbmlmZXN0IG9yIFNsb3QgQ29sdW1uIGZyb20gQnVpbGRpbmcgQmxvY2tcbmV4cG9ydCB0eXBlIEN1c3RvbURlZmluZWRUYWJsZUNvbHVtbiA9IEJhc2VDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gJiB7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGhlYWRlcjogc3RyaW5nO1xuXHR0ZW1wbGF0ZTogc3RyaW5nO1xuXHRwcm9wZXJ0aWVzPzogc3RyaW5nW107XG59O1xuXG4vLyBGb3Igb3ZlcndyaXRpbmcgQW5ub3RhdGlvbiBDb2x1bW4gcHJvcGVydGllc1xuZXhwb3J0IHR5cGUgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUgPSBCYXNlQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uICYge1xuXHRhZnRlckV4ZWN1dGlvbj86IEFjdGlvbkFmdGVyRXhlY3V0aW9uQ29uZmlndXJhdGlvbjtcblx0c2V0dGluZ3M/OiBUYWJsZUNvbHVtblNldHRpbmdzO1xuXHRmb3JtYXRPcHRpb25zPzogRm9ybWF0T3B0aW9uc1R5cGU7XG5cdHNob3dEYXRhRmllbGRzTGFiZWw/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5TZXR0aW5ncyA9IHtcblx0bWljcm9DaGFydFNpemU/OiBzdHJpbmc7XG5cdHNob3dNaWNyb0NoYXJ0TGFiZWw/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGZvcm1hdCBvcHRpb25zIGZvciBtdWx0aWxpbmUgdGV4dCBmaWVsZHMgb24gYSBmb3JtIG9yIGluIGEgdGFibGVcbiAqL1xuZXhwb3J0IHR5cGUgRm9ybWF0T3B0aW9uc1R5cGUgPSB7XG5cdGhhc0RyYWZ0SW5kaWNhdG9yPzogYm9vbGVhbjtcblx0aGFzU2l0dWF0aW9uc0luZGljYXRvcj86IGJvb2xlYW47XG5cdHRleHRMaW5lc0VkaXQ/OiBudW1iZXI7XG5cdHRleHRNYXhDaGFyYWN0ZXJzRGlzcGxheT86IG51bWJlcjtcblx0dGV4dEV4cGFuZEJlaGF2aW9yRGlzcGxheT86IFwiSW5QbGFjZVwiIHwgXCJQb3BvdmVyXCI7XG5cdHRleHRNYXhMaW5lcz86IG51bWJlcjtcblx0ZmllbGRHcm91cE5hbWU/OiBzdHJpbmc7XG5cdHRleHRNYXhMZW5ndGg/OiBudW1iZXI7XG5cdHNob3dFcnJvck9iamVjdFN0YXR1cz86IHN0cmluZztcblx0ZmllbGRHcm91cERyYWZ0SW5kaWNhdG9yUHJvcGVydHlQYXRoPzogc3RyaW5nO1xuXHRmaWVsZEVkaXRTdHlsZT86IEZpZWxkRWRpdFN0eWxlO1xuXHRyYWRpb0J1dHRvbnNIb3Jpem9udGFsTGF5b3V0PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHR0YWJsZVNldHRpbmdzPzogVGFibGVNYW5pZmVzdFNldHRpbmdzQ29uZmlndXJhdGlvbjtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPjtcblx0Y29sdW1ucz86IFJlY29yZDxzdHJpbmcsIEN1c3RvbURlZmluZWRUYWJsZUNvbHVtbiB8IEN1c3RvbURlZmluZWRUYWJsZUNvbHVtbkZvck92ZXJyaWRlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRhYmxlUGVyc29uYWxpemF0aW9uQ29uZmlndXJhdGlvbiA9XG5cdHwgYm9vbGVhblxuXHR8IHtcblx0XHRcdHNvcnQ6IGJvb2xlYW47XG5cdFx0XHRjb2x1bW46IGJvb2xlYW47XG5cdFx0XHRmaWx0ZXI6IGJvb2xlYW47XG5cdFx0XHRncm91cDogYm9vbGVhbjtcblx0XHRcdGFnZ3JlZ2F0ZTogYm9vbGVhbjtcblx0ICB9O1xuZXhwb3J0IHR5cGUgTWFzc0VkaXRDb25maWd1cmF0aW9uID1cblx0fCBib29sZWFuXG5cdHwgUGFydGlhbDx7XG5cdFx0XHRjdXN0b21GcmFnbWVudDogc3RyaW5nO1xuXHRcdFx0dmlzaWJsZUZpZWxkczogc3RyaW5nO1xuXHRcdFx0aWdub3JlZEZpZWxkczogc3RyaW5nO1xuXHRcdFx0b3BlcmF0aW9uR3JvdXBpbmdNb2RlOiBPcGVyYXRpb25Hcm91cGluZ01vZGU7XG5cdCAgfT47XG5cbmV4cG9ydCB0eXBlIFRhYmxlTWFuaWZlc3RTZXR0aW5nc0NvbmZpZ3VyYXRpb24gPSB7XG5cdGNyZWF0aW9uTW9kZT86IHtcblx0XHRkaXNhYmxlQWRkUm93QnV0dG9uRm9yRW1wdHlEYXRhPzogYm9vbGVhbjtcblx0XHRjdXN0b21WYWxpZGF0aW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdFx0Y3JlYXRlQXRFbmQ/OiBib29sZWFuO1xuXHRcdGNyZWF0ZUluUGxhY2U/OiBib29sZWFuO1xuXHRcdG5hbWU/OiBDcmVhdGlvbk1vZGU7XG5cdFx0Y3JlYXRpb25GaWVsZHM/OiBzdHJpbmc7XG5cdFx0aW5saW5lQ3JlYXRpb25Sb3dDb3VudD86IG51bWJlcjtcblx0XHRpbmxpbmVDcmVhdGlvblJvd3NIaWRkZW5JbkVkaXRNb2RlPzogYm9vbGVhbjtcblx0XHRub2RlVHlwZT86IHtcblx0XHRcdHByb3BlcnR5TmFtZT86IHN0cmluZztcblx0XHRcdHZhbHVlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHsgbGFiZWw6IHN0cmluZzsgY3JlYXRpb25GaWVsZHM/OiBzdHJpbmcgfT47XG5cdFx0fTtcblx0XHRpc0NyZWF0ZUVuYWJsZWQ/OiBzdHJpbmc7XG5cdH07XG5cdGlzTm9kZU1vdmFibGU/OiBzdHJpbmc7XG5cdGlzTW92ZVRvUG9zaXRpb25BbGxvd2VkPzogc3RyaW5nO1xuXHRlbmFibGVQYXN0aW5nT2ZDb21wdXRlZFByb3BlcnRpZXM/OiBib29sZWFuO1xuXHRlbmFibGVFeHBvcnQ/OiBib29sZWFuO1xuXHRmcm96ZW5Db2x1bW5Db3VudD86IG51bWJlcjtcblx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI/OiBib29sZWFuO1xuXHRxdWlja1ZhcmlhbnRTZWxlY3Rpb24/OiB7XG5cdFx0cGF0aHM6IFtcblx0XHRcdHtcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0XHRcdH1cblx0XHRdO1xuXHRcdGhpZGVUYWJsZVRpdGxlPzogYm9vbGVhbjtcblx0XHRzaG93Q291bnRzPzogYm9vbGVhbjtcblx0fTtcblx0cGVyc29uYWxpemF0aW9uPzogVGFibGVQZXJzb25hbGl6YXRpb25Db25maWd1cmF0aW9uO1xuXHQvKipcblx0ICogRGVmaW5lcyBob3cgbWFueSBpdGVtcyBpbiBhIHRhYmxlIGNhbiBiZSBzZWxlY3RlZC4gWW91IGhhdmUgdGhlIGZvbGxvd2luZyBvcHRpb25zOlxuXHQgKiA9PiBieSBkZWZpbmluZyAnTm9uZScgeW91IGNhbiBmdWxseSBkaXNhYmxlIHRoZSBsaXN0IHNlbGVjdGlvblxuXHQgKiA9PiBieSBkZWZpbmluZyAnU2luZ2xlJyB5b3UgYWxsb3cgb25seSBvbmUgaXRlbSB0byBiZSBzZWxlY3RlZFxuXHQgKiA9PiBieSBkZWZpbmluZyAnTXVsdGknIHlvdSBhbGxvdyBzZXZlcmFsIGl0ZW1zIHRvIGJlIHNlbGVjdGVkXG5cdCAqID0+IGJ5IHVzaW5nICdBdXRvJyB5b3UgbGVhdmUgdGhlIGRlZmF1bHQgZGVmaW5pdGlvbiAnTm9uZScsIGV4Y2VwdCBpZiB0aGVyZSBpcyBhbiBhY3Rpb24gdGhhdCByZXF1aXJlcyBhIHNlbGVjdGlvbiAoc3VjaCBhcyBkZWxldGluZywgb3IgSUJOKVxuXHQgKi9cblx0c2VsZWN0aW9uTW9kZT86IFNlbGVjdGlvbk1vZGU7XG5cdHR5cGU/OiBUYWJsZVR5cGU7XG5cdHJvd0NvdW50TW9kZT86IFRhYmxlUm93Q291bnRNb2RlO1xuXHRyb3dDb3VudD86IG51bWJlcjtcblx0Y29uZGVuc2VkVGFibGVMYXlvdXQ/OiBib29sZWFuO1xuXHRzZWxlY3RBbGw/OiBib29sZWFuO1xuXHRzZWxlY3Rpb25MaW1pdD86IG51bWJlcjtcblx0ZW5hYmxlUGFzdGU/OiBib29sZWFuO1xuXHRkaXNhYmxlQ29weVRvQ2xpcGJvYXJkPzogYm9vbGVhbjtcblx0ZW5hYmxlRnVsbFNjcmVlbj86IGJvb2xlYW47XG5cdGVuYWJsZU1hc3NFZGl0PzogTWFzc0VkaXRDb25maWd1cmF0aW9uO1xuXHRlbmFibGVBZGRDYXJkVG9JbnNpZ2h0cz86IGJvb2xlYW47XG5cdGhpZXJhcmNoeVF1YWxpZmllcj86IHN0cmluZztcblx0c2VsZWN0aW9uQ2hhbmdlPzogc3RyaW5nO1xuXHRoZWFkZXI/OiBzdHJpbmc7XG5cdGhlYWRlclZpc2libGU/OiBib29sZWFuO1xuXHRkaXNhYmxlUmVxdWVzdENhY2hlPzogYm9vbGVhbjtcblx0YmVmb3JlUmViaW5kVGFibGU/OiBzdHJpbmc7XG5cdGV4cG9ydFJlcXVlc3RTaXplPzogbnVtYmVyO1xuXHRzY3JvbGxUaHJlc2hvbGQ/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBTaWRlRWZmZWN0c0V2ZW50c0ludGVyYWN0aW9uVHlwZSA9IFwiTm90aWZpY2F0aW9uXCIgfCBcIkNvbmZpcm1hdGlvblwiIHwgXCJOb25lXCI7XG5leHBvcnQgdHlwZSBTaWRlRWZmZWN0c0V2ZW50c0ludGVyYWN0aW9uTWFuaWZlc3RTZXR0aW5nID1cblx0fCBTaWRlRWZmZWN0c0V2ZW50c0ludGVyYWN0aW9uVHlwZVxuXHR8IHtcblx0XHRcdGRlZmF1bHQ/OiBTaWRlRWZmZWN0c0V2ZW50c0ludGVyYWN0aW9uVHlwZTtcblx0XHRcdGV2ZW50cz86IFJlY29yZDxzdHJpbmcsIFNpZGVFZmZlY3RzRXZlbnRzSW50ZXJhY3Rpb25UeXBlPjtc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
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZVR5cGUiLCJfZXhwb3J0cyIsIkFjdGlvblR5cGUiLCJTZWxlY3Rpb25Nb2RlIiwiVmFyaWFudE1hbmFnZW1lbnRUeXBlIiwiQ3JlYXRpb25Nb2RlIiwiVmlzdWFsaXphdGlvblR5cGUiLCJPcGVyYXRpb25Hcm91cGluZ01vZGUiLCJJbXBvcnRhbmNlIiwiSG9yaXpvbnRhbEFsaWduIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNYW5pZmVzdFNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgRm9ybUVsZW1lbnRUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgQW5hbHl0aWNhbENvbmZpZ3VyYXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgRmxleFNldHRpbmdzLCBIZWFkZXJGYWNldFR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9PYmplY3RQYWdlL0hlYWRlckZhY2V0XCI7XG5pbXBvcnQgdHlwZSB7IEZpZWxkRWRpdFN0eWxlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRGb3JtYXRPcHRpb25zXCI7XG5pbXBvcnQgdHlwZSB7IE1hbmlmZXN0Q29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9NYW5pZmVzdFwiO1xuaW1wb3J0IHR5cGUgeyBDb2x1bW5FeHBvcnRTZXR0aW5ncywgVGFibGVSb3dDb3VudE1vZGUsIFRhYmxlVHlwZSB9IGZyb20gXCIuL2NvbnRyb2xzL0NvbW1vbi9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBDb25maWd1cmFibGVSZWNvcmQsIFBvc2l0aW9uLCBQb3NpdGlvbmFibGUgfSBmcm9tIFwiLi9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuXG4vLyBFTlVNU1xuXG5leHBvcnQgZW51bSBUZW1wbGF0ZVR5cGUge1xuXHRMaXN0UmVwb3J0ID0gXCJMaXN0UmVwb3J0XCIsXG5cdE9iamVjdFBhZ2UgPSBcIk9iamVjdFBhZ2VcIixcblx0QW5hbHl0aWNhbExpc3RQYWdlID0gXCJBbmFseXRpY2FsTGlzdFBhZ2VcIixcblx0RnJlZVN0eWxlUGFnZSA9IFwiTm9uZVwiXG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuXHREYXRhRmllbGRGb3JBY3Rpb24gPSBcIkZvckFjdGlvblwiLFxuXHREYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gPSBcIkZvck5hdmlnYXRpb25cIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRQcmltYXJ5ID0gXCJQcmltYXJ5XCIsXG5cdFNlY29uZGFyeSA9IFwiU2Vjb25kYXJ5XCIsXG5cdFN3aXRjaFRvQWN0aXZlT2JqZWN0ID0gXCJTd2l0Y2hUb0FjdGl2ZU9iamVjdFwiLFxuXHRTd2l0Y2hUb0RyYWZ0T2JqZWN0ID0gXCJTd2l0Y2hUb0RyYWZ0T2JqZWN0XCIsXG5cdERyYWZ0QWN0aW9ucyA9IFwiRHJhZnRBY3Rpb25zXCIsXG5cdENvbGxhYm9yYXRpb25BdmF0YXJzID0gXCJDb2xsYWJvcmF0aW9uQXZhdGFyc1wiLFxuXHREZWZhdWx0QXBwbHkgPSBcIkRlZmF1bHRBcHBseVwiLFxuXHRNZW51ID0gXCJNZW51XCIsXG5cdFNob3dGb3JtRGV0YWlscyA9IFwiU2hvd0Zvcm1EZXRhaWxzXCIsXG5cdENvcHkgPSBcIkNvcHlcIixcblx0Q3V0ID0gXCJDdXRcIixcblx0LyoqIFRoaXMgdHlwZSBkZW5vdGVzIHN0YW5kYXJkIGFjdGlvbnMgbGlrZSBcIkNyZWF0ZVwiIGFuZCBcIkRlbGV0ZVwiICovXG5cdFN0YW5kYXJkID0gXCJTdGFuZGFyZFwiLFxuXHRDcmVhdGVOZXh0ID0gXCJDcmVhdGVOZXh0XCJcbn1cblxuZXhwb3J0IGVudW0gU2VsZWN0aW9uTW9kZSB7XG5cdEF1dG8gPSBcIkF1dG9cIixcblx0Tm9uZSA9IFwiTm9uZVwiLFxuXHRNdWx0aSA9IFwiTXVsdGlcIixcblx0U2luZ2xlID0gXCJTaW5nbGVcIixcblx0Rm9yY2VNdWx0aSA9IFwiRm9yY2VNdWx0aVwiLFxuXHRGb3JjZVNpbmdsZSA9IFwiRm9yY2VTaW5nbGVcIlxufVxuXG5leHBvcnQgZW51bSBWYXJpYW50TWFuYWdlbWVudFR5cGUge1xuXHRQYWdlID0gXCJQYWdlXCIsXG5cdENvbnRyb2wgPSBcIkNvbnRyb2xcIixcblx0Tm9uZSA9IFwiTm9uZVwiXG59XG5cbmV4cG9ydCBlbnVtIENyZWF0aW9uTW9kZSB7XG5cdE5ld1BhZ2UgPSBcIk5ld1BhZ2VcIixcblx0U3luYyA9IFwiU3luY1wiLFxuXHRBc3luYyA9IFwiQXN5bmNcIixcblx0RGVmZXJyZWQgPSBcIkRlZmVycmVkXCIsXG5cdElubGluZSA9IFwiSW5saW5lXCIsXG5cdENyZWF0aW9uUm93ID0gXCJDcmVhdGlvblJvd1wiLFxuXHRJbmxpbmVDcmVhdGlvblJvd3MgPSBcIklubGluZUNyZWF0aW9uUm93c1wiLFxuXHRFeHRlcm5hbCA9IFwiRXh0ZXJuYWxcIixcblx0Q3JlYXRpb25EaWFsb2cgPSBcIkNyZWF0aW9uRGlhbG9nXCJcbn1cblxuZXhwb3J0IGVudW0gVmlzdWFsaXphdGlvblR5cGUge1xuXHRUYWJsZSA9IFwiVGFibGVcIixcblx0Q2hhcnQgPSBcIkNoYXJ0XCJcbn1cblxuZXhwb3J0IGVudW0gT3BlcmF0aW9uR3JvdXBpbmdNb2RlIHtcblx0Q2hhbmdlU2V0ID0gXCJDaGFuZ2VTZXRcIixcblx0SXNvbGF0ZWQgPSBcIklzb2xhdGVkXCJcbn1cblxuLy8gVGFibGVcbmV4cG9ydCB0eXBlIEF2YWlsYWJpbGl0eVR5cGUgPSBcIkRlZmF1bHRcIiB8IFwiQWRhcHRhdGlvblwiIHwgXCJIaWRkZW5cIjtcbmV4cG9ydCBlbnVtIEltcG9ydGFuY2Uge1xuXHRIaWdoID0gXCJIaWdoXCIsXG5cdE1lZGl1bSA9IFwiTWVkaXVtXCIsXG5cdExvdyA9IFwiTG93XCIsXG5cdE5vbmUgPSBcIk5vbmVcIlxufVxuXG5leHBvcnQgZW51bSBIb3Jpem9udGFsQWxpZ24ge1xuXHRFbmQgPSBcIkVuZFwiLFxuXHRCZWdpbiA9IFwiQmVnaW5cIixcblx0Q2VudGVyID0gXCJDZW50ZXJcIlxufVxuXG4vLyBUWVBFU1xuXG5leHBvcnQgdHlwZSBDb250ZW50RGVuc2l0aWVzVHlwZSA9IHtcblx0Y29tcGFjdD86IGJvb2xlYW47XG5cdGNvenk/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RTaWRlQ29udGVudCA9IHtcblx0dGVtcGxhdGU6IHN0cmluZztcblx0ZXF1YWxTcGxpdD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgYSBLUEkgaW4gdGhlIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCB0eXBlIEFuYWx5dGljYWxLUElDb25maWd1cmF0aW9uID0ge1xuXHRtb2RlbD86IHN0cmluZztcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblx0cXVhbGlmaWVyOiBzdHJpbmc7XG5cdGRldGFpbE5hdmlnYXRpb24/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBIaWRkZW5EcmFmdCA9IHtcblx0ZW5hYmxlZDogYm9vbGVhbjtcblx0c3RheU9uQ3VycmVudFBhZ2VBZnRlclNhdmU/OiBib29sZWFuO1xuXHRzdGF5T25DdXJyZW50UGFnZUFmdGVyQ2FuY2VsPzogYm9vbGVhbjtcblx0aGlkZUNyZWF0ZU5leHQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tS1BJQ29uZmlndXJhdGlvbiA9IHtcblx0dGVtcGxhdGU6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBLUElDb25maWd1cmF0aW9uID0gQ3VzdG9tS1BJQ29uZmlndXJhdGlvbiB8IEFuYWx5dGljYWxLUElDb25maWd1cmF0aW9uO1xuZXhwb3J0IHR5cGUgTWljcm9DaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0cmVxdWVzdEdyb3VwSWQ/OiBzdHJpbmc7XG5cdG5hdmlnYXRpb246IHtcblx0XHR0YXJnZXRPdXRib3VuZDoge1xuXHRcdFx0b3V0Ym91bmQ6IHN0cmluZztcblx0XHR9O1xuXHRcdHRhcmdldFNlY3Rpb25zOiBzdHJpbmdbXTtcblx0fTtcbn07XG5leHBvcnQgdHlwZSBDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0W2Fubm90YXRpb25QYXRoOiBzdHJpbmddOiBDb250cm9sTWFuaWZlc3RDb25maWd1cmF0aW9uO1xufSAmIHtcblx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW1cIj86IFRhYmxlTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiPzogQ2hhcnRNYW5pZmVzdENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0c1wiPzogRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiPzogSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiPzogRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5NaWNyb0NoYXJ0XCI/OiBNaWNyb0NoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBCYXNlTWFuaWZlc3RTZXR0aW5nc1xuICovXG5leHBvcnQgdHlwZSBCYXNlTWFuaWZlc3RTZXR0aW5ncyA9IHtcblx0Y29udGVudD86IHtcblx0XHRoZWFkZXI/OiB7XG5cdFx0XHRmYWNldHM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RIZWFkZXJGYWNldD47XG5cdFx0XHRhY3Rpb25zPzogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0QWN0aW9uPjtcblx0XHR9O1xuXHRcdGZvb3Rlcj86IHtcblx0XHRcdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xuXHRcdH07XG5cdH07XG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzogQ29udHJvbENvbmZpZ3VyYXRpb247XG5cdGNvbnZlcnRlclR5cGU6IFRlbXBsYXRlVHlwZTtcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uPzoge1xuXHRcdFtuYXZpZ2F0aW9uUGF0aDogc3RyaW5nXTogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbjtcblx0fTtcblx0dmlld0xldmVsPzogbnVtYmVyO1xuXHRmY2xFbmFibGVkPzogYm9vbGVhbjtcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cdHZhcmlhbnRNYW5hZ2VtZW50PzogVmFyaWFudE1hbmFnZW1lbnRUeXBlO1xuXHRkZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aD86IHN0cmluZztcblx0Y29udGVudERlbnNpdGllcz86IENvbnRlbnREZW5zaXRpZXNUeXBlO1xuXHRzaGVsbENvbnRlbnREZW5zaXR5Pzogc3RyaW5nO1xuXHRpc0Rlc2t0b3A/OiBib29sZWFuO1xuXHRpc1Bob25lPzogYm9vbGVhbjtcblx0ZW5hYmxlTGF6eUxvYWRpbmc/OiBib29sZWFuO1xuXHRzYXBGZU1hbmlmZXN0Q29uZmlndXJhdGlvbj86IE1hbmlmZXN0Q29udGVudFtcInNhcC5mZVwiXTtcblx0aW5saW5lRWRpdD86IElubGluZUVkaXRDb25maWd1cmF0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSW5saW5lRWRpdENvbmZpZ3VyYXRpb24gPSB7XG5cdGVuYWJsZWRGaWVsZHM/OiBzdHJpbmdbXTtcblx0ZGlzYWJsZWRGaWVsZHM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uID0ge1xuXHRvdXRib3VuZD86IHN0cmluZztcblx0b3V0Ym91bmREZXRhaWw/OiB7XG5cdFx0c2VtYW50aWNPYmplY3Q6IHN0cmluZztcblx0XHRhY3Rpb246IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzPzogdW5rbm93bjtcblx0fTtcblx0cm91dGU/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbiA9IHtcblx0Y3JlYXRlPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb247XG5cdGRldGFpbD86IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uO1xuXHRkaXNwbGF5Pzoge1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdHRhcmdldD86IHN0cmluZzsgLy8gZm9yIGNvbXBhdGliaWxpdHlcblx0XHRyb3V0ZT86IHN0cmluZztcblx0fTtcbn07XG5cbnR5cGUgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdGZhY2V0czogQ29uZmlndXJhYmxlUmVjb3JkPE1hbmlmZXN0SGVhZGVyRmFjZXQ+O1xufTtcblxudHlwZSBGYWNldHNDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0c2VjdGlvbnM6IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xufTtcblxudHlwZSBNYW5pZmVzdEZvcm1FbGVtZW50ID0gUG9zaXRpb25hYmxlICYge1xuXHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRwcm9wZXJ0eT86IHN0cmluZztcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0ZmllbGRzOiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RGb3JtRWxlbWVudD47XG5cdGFjdGlvbnM/OiBDb25maWd1cmFibGVSZWNvcmQ8TWFuaWZlc3RBY3Rpb24+O1xufTtcblxuZXhwb3J0IHR5cGUgQ29udHJvbE1hbmlmZXN0Q29uZmlndXJhdGlvbiA9XG5cdHwgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb25cblx0fCBDaGFydE1hbmlmZXN0Q29uZmlndXJhdGlvblxuXHR8IEZhY2V0c0NvbnRyb2xDb25maWd1cmF0aW9uXG5cdHwgSGVhZGVyRmFjZXRzQ29udHJvbENvbmZpZ3VyYXRpb25cblx0fCBGb3JtTWFuaWZlc3RDb25maWd1cmF0aW9uXG5cdHwgRmlsdGVyTWFuaWZlc3RDb25maWd1cmF0aW9uO1xuXG4vKiogT2JqZWN0IFBhZ2UgKi9cbmV4cG9ydCB0eXBlIFRyYW5zcG9ydFNlbGVjdGlvbkRlZmluaXRpb24gPSB7XG5cdHRyYW5zcG9ydFJlcXVlc3RQcm9wZXJ0eTogc3RyaW5nO1xuXHRzZWxlY3RUcmFuc3BvcnRBY3Rpb246IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzID0gQmFzZU1hbmlmZXN0U2V0dGluZ3MgJiB7XG5cdGNvbnRlbnQ/OiB7XG5cdFx0aGVhZGVyPzoge1xuXHRcdFx0dmlzaWJsZT86IGJvb2xlYW47XG5cdFx0XHRhbmNob3JCYXJWaXNpYmxlPzogYm9vbGVhbjtcblx0XHRcdGZhY2V0cz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdEhlYWRlckZhY2V0Pjtcblx0XHR9O1xuXHRcdGJvZHk/OiB7XG5cdFx0XHRzZWN0aW9ucz86IENvbmZpZ3VyYWJsZVJlY29yZDxNYW5pZmVzdFNlY3Rpb24+O1xuXHRcdH07XG5cdFx0dHJhbnNwb3J0U2VsZWN0aW9uPzogVHJhbnNwb3J0U2VsZWN0aW9uRGVmaW5pdGlvbjtcblx0fTtcblx0ZWRpdGFibGVIZWFkZXJDb250ZW50PzogYm9vbGVhbjtcblx0c2VjdGlvbkxheW91dD86IFwiVGFic1wiIHwgXCJQYWdlXCI7XG5cdHVzZVRleHRGb3JOb0RhdGFNZXNzYWdlcz86IGJvb2xlYW47XG5cdG9wZW5JbkVkaXRNb2RlPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgTWFuaWZlc3RIZWFkZXJGYWNldFxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdEhlYWRlckZhY2V0ID0ge1xuXHR0eXBlPzogSGVhZGVyRmFjZXRUeXBlO1xuXHRuYW1lPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dmlzaWJsZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHR0aXRsZT86IHN0cmluZztcblx0c3ViVGl0bGU/OiBzdHJpbmc7XG5cdHN0YXNoZWQ/OiBib29sZWFuO1xuXHRmbGV4U2V0dGluZ3M/OiBGbGV4U2V0dGluZ3M7XG5cdHJlcXVlc3RHcm91cElkPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZUVkaXQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIE1hbmlmZXN0U2VjdGlvblxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdFNlY3Rpb24gPSB7XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRpZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0dmlzaWJsZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHRwb3NpdGlvbj86IFBvc2l0aW9uO1xuXHR0ZW1wbGF0ZT86IHN0cmluZztcblx0c3ViU2VjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdFN1YlNlY3Rpb24+O1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHR1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlcz86IGJvb2xlYW47XG5cdG9uU2VjdGlvbkxvYWRlZD86IHN0cmluZztcblx0YXBwbHlTdGF0ZT86IHN0cmluZztcblx0cmV0cmlldmVTdGF0ZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0U3ViU2VjdGlvbiA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHRlbXBsYXRlPzogc3RyaW5nO1xuXHR0aXRsZT86IHN0cmluZztcblx0cG9zaXRpb24/OiBQb3NpdGlvbjtcblx0dmlzaWJsZT86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRzaWRlQ29udGVudD86IE1hbmlmZXN0U2lkZUNvbnRlbnQ7XG5cdGVuYWJsZUxhenlMb2FkaW5nPzogYm9vbGVhbjtcblx0ZW1iZWRkZWRDb21wb25lbnQ/OiBNYW5pZmVzdFJldXNlQ29tcG9uZW50U2V0dGluZ3M7XG5cdGFwcGx5U3RhdGU/OiBzdHJpbmc7XG5cdHJldHJpZXZlU3RhdGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdFJldXNlQ29tcG9uZW50U2V0dGluZ3MgPSB7XG5cdG5hbWU6IHN0cmluZztcblx0c2V0dGluZ3M/OiB1bmtub3duO1xufTtcblxuLyoqIExpc3QgUmVwb3J0ICovXG5leHBvcnQgdHlwZSBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncyA9IEJhc2VNYW5pZmVzdFNldHRpbmdzICYge1xuXHRzdGlja3lNdWx0aVRhYkhlYWRlcj86IGJvb2xlYW47XG5cdGluaXRpYWxMb2FkPzogYm9vbGVhbjtcblx0dmlld3M/OiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbjtcblx0a2V5UGVyZm9ybWFuY2VJbmRpY2F0b3JzPzoge1xuXHRcdFtrcGlOYW1lOiBzdHJpbmddOiBLUElDb25maWd1cmF0aW9uO1xuXHR9O1xuXHRoaWRlRmlsdGVyQmFyPzogYm9vbGVhbjtcblx0dXNlSGlkZGVuRmlsdGVyQmFyPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFZpZXdQYXRoQ29uZmlndXJhdGlvbiA9IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgdHlwZSBWaWV3Q29uZmlndXJhdGlvbiA9IFZpZXdQYXRoQ29uZmlndXJhdGlvbiB8IEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb247XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZpZXdUZW1wbGF0ZUNvbmZpZ3VyYXRpb24gPSB7XG5cdGtleT86IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0dGVtcGxhdGU6IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbiA9IHtcblx0a2VlcFByZXZpb3VzUGVyc29uYWxpemF0aW9uPzogYm9vbGVhbjtcblx0a2V5Pzogc3RyaW5nO1xuXHRlbnRpdHlTZXQ/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRWaWV3RGVmYXVsdFBhdGggPSBcImJvdGhcIiB8IFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIjtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24gPSB7XG5cdHByaW1hcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdO1xuXHRzZWNvbmRhcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdO1xuXHRkZWZhdWx0UGF0aD86IENvbWJpbmVkVmlld0RlZmF1bHRQYXRoO1xuXHRrZXk/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgdHlwZSBNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbiA9IHtcblx0cGF0aHM6IFZpZXdDb25maWd1cmF0aW9uW107XG5cdHNob3dDb3VudHM/OiBib29sZWFuO1xufTtcblxuLyoqIEZpbHRlciBDb25maWd1cmF0aW9uICovXG5cbi8qKiBAdHlwZWRlZiBGaWx0ZXJNYW5pZmVzdENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCB0eXBlIEZpbHRlck1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IHtcblx0ZmlsdGVyRmllbGRzPzogUmVjb3JkPHN0cmluZywgRmlsdGVyRmllbGRNYW5pZmVzdENvbmZpZ3VyYXRpb24+O1xuXHRuYXZpZ2F0aW9uUHJvcGVydGllcz86IHN0cmluZ1tdO1xuXHR1c2VTZW1hbnRpY0RhdGVSYW5nZT86IGJvb2xlYW47XG5cdHNob3dDbGVhckJ1dHRvbj86IGJvb2xlYW47XG5cdGluaXRpYWxMYXlvdXQ/OiBzdHJpbmc7XG5cdGxheW91dD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckZpZWxkTWFuaWZlc3RDb25maWd1cmF0aW9uID0gUG9zaXRpb25hYmxlICYge1xuXHR0eXBlPzogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0dGVtcGxhdGU/OiBzdHJpbmc7XG5cdGF2YWlsYWJpbGl0eT86IEF2YWlsYWJpbGl0eVR5cGU7XG5cdHNldHRpbmdzPzogRmlsdGVyU2V0dGluZ3M7XG5cdHZpc3VhbEZpbHRlcj86IHZpc3VhbEZpbHRlckNvbmZpZ3VyYXRpb247XG5cdHJlcXVpcmVkPzogYm9vbGVhbjtcblx0c2xvdE5hbWU/OiBzdHJpbmc7XG5cdHByb3BlcnR5Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgdmlzdWFsRmlsdGVyQ29uZmlndXJhdGlvbiA9IHtcblx0dmFsdWVMaXN0Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgT3BlcmF0b3JDb25maWd1cmF0aW9uID0ge1xuXHRwYXRoOiBzdHJpbmc7XG5cdGVxdWFscz86IHN0cmluZztcblx0Y29udGFpbnM/OiBzdHJpbmc7XG5cdGV4Y2x1ZGU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0T3BlcmF0b3IgPSB7XG5cdG9wZXJhdG9yOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJTZXR0aW5ncyA9IHtcblx0b3BlcmF0b3JDb25maWd1cmF0aW9uPzogT3BlcmF0b3JDb25maWd1cmF0aW9uW107XG5cdGRlZmF1bHRWYWx1ZXM/OiBEZWZhdWx0T3BlcmF0b3JbXTtcblx0aXNDdXN0b21GaWx0ZXI/OiBib29sZWFuO1xufTtcblxuLyoqIENoYXJ0IENvbmZpZ3VyYXRpb24gKi9cblxuZXhwb3J0IHR5cGUgQ2hhcnRQZXJzb25hbGl6YXRpb25NYW5pZmVzdFNldHRpbmdzID1cblx0fCBib29sZWFuXG5cdHwgc3RyaW5nXG5cdHwge1xuXHRcdFx0c29ydDogYm9vbGVhbjtcblx0XHRcdHR5cGU6IGJvb2xlYW47XG5cdFx0XHRpdGVtOiBib29sZWFuO1xuXHRcdFx0ZmlsdGVyOiBib29sZWFuO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0ge1xuXHRjaGFydFNldHRpbmdzPzoge1xuXHRcdHBlcnNvbmFsaXphdGlvbjogQ2hhcnRQZXJzb25hbGl6YXRpb25NYW5pZmVzdFNldHRpbmdzO1xuXHR9O1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRlbmFibGVBZGRDYXJkVG9JbnNpZ2h0cz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25BZnRlckV4ZWN1dGlvbkNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hdmlnYXRlVG9JbnN0YW5jZT86IGJvb2xlYW47XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBib29sZWFuO1xufTtcblxuLyoqIFRhYmxlIENvbmZpZ3VyYXRpb24gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBNYW5pZmVzdEFjdGlvblxuICovXG5leHBvcnQgdHlwZSBNYW5pZmVzdEFjdGlvbiA9IHtcblx0ZGVmYXVsdEFjdGlvbj86IHN0cmluZztcblx0bWVudT86IHN0cmluZ1tdO1xuXHR2aXNpYmxlPzogc3RyaW5nIHwgYm9vbGVhbjtcblx0ZW5hYmxlZD86IHN0cmluZyB8IGJvb2xlYW47XG5cdHBvc2l0aW9uPzogUG9zaXRpb247XG5cdHByZXNzPzogc3RyaW5nO1xuXHR0ZXh0Pzogc3RyaW5nO1xuXHRfX25vV3JhcD86IGJvb2xlYW47XG5cdGVuYWJsZU9uU2VsZWN0Pzogc3RyaW5nO1xuXHRkZWZhdWx0VmFsdWVzRnVuY3Rpb24/OiBzdHJpbmc7XG5cdHJlcXVpcmVzU2VsZWN0aW9uPzogYm9vbGVhbjtcblx0YWZ0ZXJFeGVjdXRpb24/OiBBY3Rpb25BZnRlckV4ZWN1dGlvbkNvbmZpZ3VyYXRpb247XG5cdGlubGluZT86IGJvb2xlYW47XG5cdGRldGVybWluaW5nPzogYm9vbGVhbjtcblx0ZmFjZXROYW1lPzogc3RyaW5nO1xuXHRjb21tYW5kPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgQmFzZUN1c3RvbURlZmluZWRUYWJsZUNvbHVtbiA9IFBvc2l0aW9uYWJsZSAmIHtcblx0d2lkdGg/OiBzdHJpbmc7XG5cdGltcG9ydGFuY2U/OiBJbXBvcnRhbmNlO1xuXHRob3Jpem9udGFsQWxpZ24/OiBIb3Jpem9udGFsQWxpZ247XG5cdGF2YWlsYWJpbGl0eT86IEF2YWlsYWJpbGl0eVR5cGU7XG5cdHRvb2x0aXA/OiBzdHJpbmc7XG5cdHJlcXVpcmVkPzogYm9vbGVhbjtcblx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI/OiBib29sZWFuO1xuXHRleHBvcnRTZXR0aW5ncz86IENvbHVtbkV4cG9ydFNldHRpbmdzO1xufTtcblxuLy8gQ2FuIGJlIGVpdGhlciBDdXN0b20gQ29sdW1uIGZyb20gTWFuaWZlc3Qgb3IgU2xvdCBDb2x1bW4gZnJvbSBCdWlsZGluZyBCbG9ja1xuZXhwb3J0IHR5cGUgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uID0gQmFzZUN1c3RvbURlZmluZWRUYWJsZUNvbHVtbiAmIHtcblx0dHlwZT86IHN0cmluZztcblx0aGVhZGVyOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdHByb3BlcnRpZXM/OiBzdHJpbmdbXTtcbn07XG5cbi8vIEZvciBvdmVyd3JpdGluZyBBbm5vdGF0aW9uIENvbHVtbiBwcm9wZXJ0aWVzXG5leHBvcnQgdHlwZSBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW5Gb3JPdmVycmlkZSA9IEJhc2VDdXN0b21EZWZpbmVkVGFibGVDb2x1bW4gJiB7XG5cdGFmdGVyRXhlY3V0aW9uPzogQWN0aW9uQWZ0ZXJFeGVjdXRpb25Db25maWd1cmF0aW9uO1xuXHRzZXR0aW5ncz86IFRhYmxlQ29sdW1uU2V0dGluZ3M7XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcblx0c2hvd0RhdGFGaWVsZHNMYWJlbD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblNldHRpbmdzID0ge1xuXHRtaWNyb0NoYXJ0U2l6ZT86IHN0cmluZztcblx0c2hvd01pY3JvQ2hhcnRMYWJlbD86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgZm9ybWF0IG9wdGlvbnMgZm9yIG11bHRpbGluZSB0ZXh0IGZpZWxkcyBvbiBhIGZvcm0gb3IgaW4gYSB0YWJsZVxuICovXG5leHBvcnQgdHlwZSBGb3JtYXRPcHRpb25zVHlwZSA9IHtcblx0aGFzRHJhZnRJbmRpY2F0b3I/OiBib29sZWFuO1xuXHRoYXNTaXR1YXRpb25zSW5kaWNhdG9yPzogYm9vbGVhbjtcblx0dGV4dExpbmVzRWRpdD86IG51bWJlcjtcblx0dGV4dE1heENoYXJhY3RlcnNEaXNwbGF5PzogbnVtYmVyO1xuXHR0ZXh0RXhwYW5kQmVoYXZpb3JEaXNwbGF5PzogXCJJblBsYWNlXCIgfCBcIlBvcG92ZXJcIjtcblx0dGV4dE1heExpbmVzPzogbnVtYmVyO1xuXHRmaWVsZEdyb3VwTmFtZT86IHN0cmluZztcblx0dGV4dE1heExlbmd0aD86IG51bWJlcjtcblx0c2hvd0Vycm9yT2JqZWN0U3RhdHVzPzogc3RyaW5nO1xuXHRmaWVsZEdyb3VwRHJhZnRJbmRpY2F0b3JQcm9wZXJ0eVBhdGg/OiBzdHJpbmc7XG5cdGZpZWxkRWRpdFN0eWxlPzogRmllbGRFZGl0U3R5bGU7XG5cdHJhZGlvQnV0dG9uc0hvcml6b250YWxMYXlvdXQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVNYW5pZmVzdENvbmZpZ3VyYXRpb24gPSB7XG5cdHRhYmxlU2V0dGluZ3M/OiBUYWJsZU1hbmlmZXN0U2V0dGluZ3NDb25maWd1cmF0aW9uO1xuXHRhY3Rpb25zPzogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+O1xuXHRjb2x1bW5zPzogUmVjb3JkPHN0cmluZywgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uIHwgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGU+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVQZXJzb25hbGl6YXRpb25Db25maWd1cmF0aW9uID1cblx0fCBib29sZWFuXG5cdHwge1xuXHRcdFx0c29ydDogYm9vbGVhbjtcblx0XHRcdGNvbHVtbjogYm9vbGVhbjtcblx0XHRcdGZpbHRlcjogYm9vbGVhbjtcblx0XHRcdGdyb3VwOiBib29sZWFuO1xuXHRcdFx0YWdncmVnYXRlOiBib29sZWFuO1xuXHQgIH07XG5leHBvcnQgdHlwZSBNYXNzRWRpdENvbmZpZ3VyYXRpb24gPVxuXHR8IGJvb2xlYW5cblx0fCBQYXJ0aWFsPHtcblx0XHRcdGN1c3RvbUZyYWdtZW50OiBzdHJpbmc7XG5cdFx0XHR2aXNpYmxlRmllbGRzOiBzdHJpbmc7XG5cdFx0XHRpZ25vcmVkRmllbGRzOiBzdHJpbmc7XG5cdFx0XHRvcGVyYXRpb25Hcm91cGluZ01vZGU6IE9wZXJhdGlvbkdyb3VwaW5nTW9kZTtcblx0ICB9PjtcblxuZXhwb3J0IHR5cGUgVGFibGVNYW5pZmVzdFNldHRpbmdzQ29uZmlndXJhdGlvbiA9IHtcblx0Y3JlYXRpb25Nb2RlPzoge1xuXHRcdGRpc2FibGVBZGRSb3dCdXR0b25Gb3JFbXB0eURhdGE/OiBib29sZWFuO1xuXHRcdGN1c3RvbVZhbGlkYXRpb25GdW5jdGlvbj86IHN0cmluZztcblx0XHRjcmVhdGVBdEVuZD86IGJvb2xlYW47XG5cdFx0Y3JlYXRlSW5QbGFjZT86IGJvb2xlYW47XG5cdFx0bmFtZT86IENyZWF0aW9uTW9kZTtcblx0XHRjcmVhdGlvbkZpZWxkcz86IHN0cmluZztcblx0XHRpbmxpbmVDcmVhdGlvblJvd0NvdW50PzogbnVtYmVyO1xuXHRcdGlubGluZUNyZWF0aW9uUm93c0hpZGRlbkluRWRpdE1vZGU/OiBib29sZWFuO1xuXHRcdG5vZGVUeXBlPzoge1xuXHRcdFx0cHJvcGVydHlOYW1lPzogc3RyaW5nO1xuXHRcdFx0dmFsdWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgeyBsYWJlbDogc3RyaW5nOyBjcmVhdGlvbkZpZWxkcz86IHN0cmluZyB9Pjtcblx0XHR9O1xuXHRcdGlzQ3JlYXRlRW5hYmxlZD86IHN0cmluZztcblx0fTtcblx0aXNOb2RlTW92YWJsZT86IHN0cmluZztcblx0aXNNb3ZlVG9Qb3NpdGlvbkFsbG93ZWQ/OiBzdHJpbmc7XG5cdGVuYWJsZVBhc3RpbmdPZkNvbXB1dGVkUHJvcGVydGllcz86IGJvb2xlYW47XG5cdGVuYWJsZUV4cG9ydD86IGJvb2xlYW47XG5cdGZyb3plbkNvbHVtbkNvdW50PzogbnVtYmVyO1xuXHR3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcj86IGJvb2xlYW47XG5cdHF1aWNrVmFyaWFudFNlbGVjdGlvbj86IHtcblx0XHRwYXRoczogW1xuXHRcdFx0e1xuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRcdFx0fVxuXHRcdF07XG5cdFx0aGlkZVRhYmxlVGl0bGU/OiBib29sZWFuO1xuXHRcdHNob3dDb3VudHM/OiBib29sZWFuO1xuXHR9O1xuXHRwZXJzb25hbGl6YXRpb24/OiBUYWJsZVBlcnNvbmFsaXphdGlvbkNvbmZpZ3VyYXRpb247XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGhvdyBtYW55IGl0ZW1zIGluIGEgdGFibGUgY2FuIGJlIHNlbGVjdGVkLiBZb3UgaGF2ZSB0aGUgZm9sbG93aW5nIG9wdGlvbnM6XG5cdCAqID0+IGJ5IGRlZmluaW5nICdOb25lJyB5b3UgY2FuIGZ1bGx5IGRpc2FibGUgdGhlIGxpc3Qgc2VsZWN0aW9uXG5cdCAqID0+IGJ5IGRlZmluaW5nICdTaW5nbGUnIHlvdSBhbGxvdyBvbmx5IG9uZSBpdGVtIHRvIGJlIHNlbGVjdGVkXG5cdCAqID0+IGJ5IGRlZmluaW5nICdNdWx0aScgeW91IGFsbG93IHNldmVyYWwgaXRlbXMgdG8gYmUgc2VsZWN0ZWRcblx0ICogPT4gYnkgdXNpbmcgJ0F1dG8nIHlvdSBsZWF2ZSB0aGUgZGVmYXVsdCBkZWZpbml0aW9uICdOb25lJywgZXhjZXB0IGlmIHRoZXJlIGlzIGFuIGFjdGlvbiB0aGF0IHJlcXVpcmVzIGEgc2VsZWN0aW9uIChzdWNoIGFzIGRlbGV0aW5nLCBvciBJQk4pXG5cdCAqL1xuXHRzZWxlY3Rpb25Nb2RlPzogU2VsZWN0aW9uTW9kZTtcblx0dHlwZT86IFRhYmxlVHlwZTtcblx0YW5hbHl0aWNhbENvbmZpZ3VyYXRpb24/OiBBbmFseXRpY2FsQ29uZmlndXJhdGlvbjtcblx0cm93Q291bnRNb2RlPzogVGFibGVSb3dDb3VudE1vZGU7XG5cdHJvd0NvdW50PzogbnVtYmVyO1xuXHRjb25kZW5zZWRUYWJsZUxheW91dD86IGJvb2xlYW47XG5cdHNlbGVjdEFsbD86IGJvb2xlYW47XG5cdHNlbGVjdGlvbkxpbWl0PzogbnVtYmVyO1xuXHRlbmFibGVQYXN0ZT86IGJvb2xlYW47XG5cdGRpc2FibGVDb3B5VG9DbGlwYm9hcmQ/OiBib29sZWFuO1xuXHRlbmFibGVGdWxsU2NyZWVuPzogYm9vbGVhbjtcblx0ZW5hYmxlTWFzc0VkaXQ/OiBNYXNzRWRpdENvbmZpZ3VyYXRpb247XG5cdGVuYWJsZUFkZENhcmRUb0luc2lnaHRzPzogYm9vbGVhbjtcblx0aGllcmFyY2h5UXVhbGlmaWVyPzogc3RyaW5nO1xuXHRzZWxlY3Rpb25DaGFuZ2U/OiBzdHJpbmc7XG5cdGhlYWRlcj86IHN0cmluZztcblx0aGVhZGVyVmlzaWJsZT86IGJvb2xlYW47XG5cdGRpc2FibGVSZXF1ZXN0Q2FjaGU/OiBib29sZWFuO1xuXHRiZWZvcmVSZWJpbmRUYWJsZT86IHN0cmluZztcblx0ZXhwb3J0UmVxdWVzdFNpemU/OiBudW1iZXI7XG5cdHNjcm9sbFRocmVzaG9sZD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RzRXZlbnRzSW50ZXJhY3Rpb25UeXBlID0gXCJOb3RpZmljYXRpb25cIiB8IFwiQ29uZmlybWF0aW9uXCIgfCBcIk5vbmVcIjtcbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RzRXZlbnRzSW50ZXJhY3Rpb25NYW5pZmVzdFNldHRpbmcgPVxuXHR8IFNpZGVFZmZlY3RzRXZlbnRzSW50ZXJhY3Rpb25UeXBlXG5cdHwge1xuXHRcdFx0ZGVmYXVsdD86IFNpZGVFZmZlY3RzRXZlbnRzSW50ZXJhY3Rpb25UeXBlO1xuXHRcdFx0ZXZlbnRzPzogUmVjb3JkPHN0cmluZywgU2lkZUVmZmVjdHNFdmVudHNJbnRlcmFjdGlvblR5cGU+O1xuXHQgIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBU0E7RUFBQSxJQUVZQSxZQUFZLDBCQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBQSxPQUFaQSxZQUFZO0VBQUE7RUFBQUMsUUFBQSxDQUFBRCxZQUFBLEdBQUFBLFlBQUE7RUFBQSxJQU9aRSxVQUFVLDBCQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBQSxPQUFWQSxVQUFVO0VBQUE7RUFBQUQsUUFBQSxDQUFBQyxVQUFBLEdBQUFBLFVBQUE7RUFBQSxJQW9CVkMsYUFBYSwwQkFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtJQUFBLE9BQWJBLGFBQWE7RUFBQTtFQUFBRixRQUFBLENBQUFFLGFBQUEsR0FBQUEsYUFBQTtFQUFBLElBU2JDLHFCQUFxQiwwQkFBckJBLHFCQUFxQjtJQUFyQkEscUJBQXFCO0lBQXJCQSxxQkFBcUI7SUFBckJBLHFCQUFxQjtJQUFBLE9BQXJCQSxxQkFBcUI7RUFBQTtFQUFBSCxRQUFBLENBQUFHLHFCQUFBLEdBQUFBLHFCQUFBO0VBQUEsSUFNckJDLFlBQVksMEJBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBWkEsWUFBWTtJQUFaQSxZQUFZO0lBQVpBLFlBQVk7SUFBQSxPQUFaQSxZQUFZO0VBQUE7RUFBQUosUUFBQSxDQUFBSSxZQUFBLEdBQUFBLFlBQUE7RUFBQSxJQVlaQyxpQkFBaUIsMEJBQWpCQSxpQkFBaUI7SUFBakJBLGlCQUFpQjtJQUFqQkEsaUJBQWlCO0lBQUEsT0FBakJBLGlCQUFpQjtFQUFBO0VBQUFMLFFBQUEsQ0FBQUssaUJBQUEsR0FBQUEsaUJBQUE7RUFBQSxJQUtqQkMscUJBQXFCLDBCQUFyQkEscUJBQXFCO0lBQXJCQSxxQkFBcUI7SUFBckJBLHFCQUFxQjtJQUFBLE9BQXJCQSxxQkFBcUI7RUFBQSxPQUtqQztFQUFBTixRQUFBLENBQUFNLHFCQUFBLEdBQUFBLHFCQUFBO0VBQUEsSUFFWUMsVUFBVSwwQkFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQUEsT0FBVkEsVUFBVTtFQUFBO0VBQUFQLFFBQUEsQ0FBQU8sVUFBQSxHQUFBQSxVQUFBO0VBQUEsSUFPVkMsZUFBZSwwQkFBZkEsZUFBZTtJQUFmQSxlQUFlO0lBQWZBLGVBQWU7SUFBZkEsZUFBZTtJQUFBLE9BQWZBLGVBQWU7RUFBQSxPQU0zQjtFQVlBO0FBQ0E7QUFDQTtFQXdDQTtBQUNBO0FBQ0E7RUE4Q0E7QUFDQTtBQUNBO0VBd0NBO0VBd0JBO0FBQ0E7QUFDQTtFQWVBO0FBQ0E7QUFDQTtFQW9DQTtFQTJDQTtBQUNBO0FBQ0E7RUFNQTtFQUVBO0VBMkNBO0VBeUJBO0VBRUE7QUFDQTtBQUNBO0VBK0JBO0VBUUE7RUFhQTtBQUNBO0FBQ0E7RUFGQVIsUUFBQSxDQUFBUSxlQUFBLEdBQUFBLGVBQUE7RUFBQSxPQUFBUixRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|