@envive-ai/react-hooks 0.3.17 → 0.3.19
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/dist/application/commerce-api.cjs +14 -13
- package/dist/application/commerce-api.js +14 -13
- package/dist/application/logging/logger.cjs +16 -10
- package/dist/application/logging/logger.js +16 -10
- package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
- package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
- package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
- package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
- package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
- package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
- package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
- package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
- package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
- package/dist/application/models/guards/api/isApiResponse.js +7 -6
- package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
- package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
- package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
- package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
- package/dist/application/utils/analyticsUtils.cjs +4 -3
- package/dist/application/utils/analyticsUtils.js +4 -3
- package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
- package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
- package/dist/application/utils/widgetTextRequestToApiRequest.cjs +2 -2
- package/dist/application/utils/widgetTextRequestToApiRequest.js +2 -2
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/variant.cjs +3 -2
- package/dist/atoms/app/variant.js +3 -2
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +18 -18
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.d.cts +2 -2
- package/dist/atoms/chat/index.d.ts +2 -2
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +6 -6
- package/dist/atoms/chat/messageQueue.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.cjs +3 -2
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.js +3 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.d.cts +2 -2
- package/dist/atoms/chat/replies.d.ts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.cjs +5 -4
- package/dist/atoms/envive/enviveConfig.d.cts +13 -13
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- package/dist/atoms/envive/enviveConfig.js +5 -4
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -3
- package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -2
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
- package/dist/contexts/enviveConfigContext/index.cjs +2 -1
- package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
- package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
- package/dist/contexts/enviveConfigContext/index.js +2 -1
- package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
- package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
- package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
- package/dist/contexts/enviveContext/enviveContext.cjs +34 -39
- package/dist/contexts/enviveContext/enviveContext.js +35 -40
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
- package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
- package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
- package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
- package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
- package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
- package/dist/contexts/pageContext/pageContext.cjs +3 -2
- package/dist/contexts/pageContext/pageContext.js +3 -2
- package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
- package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
- package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
- package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
- package/dist/contexts/searchContext/searchContext.cjs +8 -6
- package/dist/contexts/searchContext/searchContext.js +7 -5
- package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
- package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.d.cts +1 -1
- package/dist/contexts/typesV3.d.ts +1 -1
- package/dist/contexts/uiConfigContext/index.cjs +0 -1
- package/dist/contexts/uiConfigContext/index.d.cts +2 -2
- package/dist/contexts/uiConfigContext/index.d.ts +2 -2
- package/dist/contexts/uiConfigContext/index.js +2 -2
- package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
- package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
- package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
- package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
- package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
- package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
- package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
- package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
- package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
- package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
- package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
- package/dist/hooks/WidgetInteraction/utils.js +2 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/amplitudeService.cjs +8 -7
- package/dist/services/amplitudeService/amplitudeService.js +8 -7
- package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
- package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
- package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
- package/dist/services/userIdentityService/userIdentityService.js +8 -7
- package/package.json +2 -2
- package/src/application/commerce-api.ts +14 -12
- package/src/application/logging/logger.ts +33 -8
- package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
- package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
- package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
- package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
- package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
- package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
- package/src/application/models/guards/api/isApiResponse.ts +7 -5
- package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
- package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
- package/src/application/utils/analyticsUtils.ts +4 -4
- package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
- package/src/application/utils/widgetTextRequestToApiRequest.ts +1 -2
- package/src/atoms/app/variant.ts +3 -1
- package/src/atoms/chat/performanceMetrics.ts +3 -1
- package/src/atoms/envive/enviveConfig.ts +5 -3
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -1
- package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
- package/src/contexts/enviveConfigContext/index.ts +1 -0
- package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
- package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
- package/src/contexts/enviveContext/enviveContext.tsx +40 -45
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
- package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
- package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
- package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
- package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
- package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
- package/src/contexts/pageContext/pageContext.tsx +3 -1
- package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
- package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
- package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
- package/src/contexts/searchContext/searchContext.tsx +6 -4
- package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
- package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
- package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
- package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
- package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
- package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
- package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
- package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
- package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
- package/src/hooks/WidgetInteraction/utils.ts +3 -1
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -3
- package/src/services/amplitudeService/amplitudeService.ts +8 -6
- package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
- package/src/services/userIdentityService/userIdentityService.ts +8 -8
|
@@ -2,10 +2,10 @@ import logger_default from "../../application/logging/logger.js";
|
|
|
2
2
|
import { LocalStorageProvider } from "../localStorageContext/localStorageContext.js";
|
|
3
3
|
import "../localStorageContext/index.js";
|
|
4
4
|
import { EnviveConfigProvider } from "../enviveConfigContext/enviveConfigContext.js";
|
|
5
|
+
import "../enviveConfigContext/index.js";
|
|
5
6
|
import { FeatureFlagService, FeatureFlagServiceProvider } from "../featureFlagServiceContext/featureFlagServiceContext.js";
|
|
6
7
|
import { AmplitudeProvider } from "../amplitudeContext/amplitudeContext.js";
|
|
7
8
|
import "../amplitudeContext/index.js";
|
|
8
|
-
import "../enviveConfigContext/index.js";
|
|
9
9
|
import { EnviveConfigService } from "../../services/enviveConfigService/enviveConfigService.js";
|
|
10
10
|
import { UserIdentityService } from "../../services/userIdentityService/userIdentityService.js";
|
|
11
11
|
import "../../services/userIdentityService/index.js";
|
|
@@ -30,14 +30,12 @@ import { WidgetConfigProvider } from "../widgetConfigContext/widgetConfigContext
|
|
|
30
30
|
import "../widgetConfigContext/index.js";
|
|
31
31
|
import { PageProvider } from "../pageContext/pageContext.js";
|
|
32
32
|
import "../pageContext/index.js";
|
|
33
|
-
import { UiConfigProvider } from "../uiConfigContext/uiConfigContext.js";
|
|
34
|
-
import "../uiConfigContext/index.js";
|
|
35
33
|
import { WindowChatToggleBinder } from "./WindowChatToggleBinder.js";
|
|
36
|
-
import {
|
|
34
|
+
import { useEffect, useMemo, useState } from "react";
|
|
37
35
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
38
36
|
|
|
39
37
|
//#region src/contexts/enviveContext/enviveContext.tsx
|
|
40
|
-
const
|
|
38
|
+
const logger = new logger_default("enviveContext");
|
|
41
39
|
const SearchAgentWrapper = ({ children, enabledAgents }) => {
|
|
42
40
|
if (!enabledAgents.includes(EnviveAgent.SearchAgent)) return children;
|
|
43
41
|
return /* @__PURE__ */ jsx(SearchProvider, { children });
|
|
@@ -93,45 +91,42 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
|
|
|
93
91
|
orgShortName: enviveServiceConfig?.org?.org?.short_name || "",
|
|
94
92
|
orgId: enviveServiceConfig?.org?.org?.id || ""
|
|
95
93
|
}), [config, enviveServiceConfig]);
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
logger.logDebug("enviveContext: enviveServiceConfig", enviveServiceConfig, config);
|
|
95
|
+
logger.logDebug("enviveContext: enviveConfig", enviveConfig);
|
|
98
96
|
const featureFlagService = useMemo(() => inputFeatureFlagService ?? new FeatureFlagService(enviveConfig.featureGates), [enviveConfig.featureGates, inputFeatureFlagService]);
|
|
99
97
|
if (enviveServiceConfig === null || enviveConfig === null) return null;
|
|
100
|
-
return /* @__PURE__ */ jsx(
|
|
101
|
-
|
|
102
|
-
children: /* @__PURE__ */ jsx(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
children: /* @__PURE__ */ jsx(
|
|
108
|
-
|
|
109
|
-
children: /* @__PURE__ */ jsx(
|
|
110
|
-
|
|
111
|
-
children: /* @__PURE__ */ jsx(
|
|
112
|
-
|
|
113
|
-
children: /* @__PURE__ */ jsx(
|
|
114
|
-
|
|
115
|
-
children: /* @__PURE__ */ jsx(
|
|
116
|
-
|
|
117
|
-
children: /* @__PURE__ */ jsx(
|
|
118
|
-
|
|
119
|
-
children: /* @__PURE__ */ jsx(
|
|
98
|
+
return /* @__PURE__ */ jsx(EnviveConfigProvider, {
|
|
99
|
+
...enviveConfig,
|
|
100
|
+
children: /* @__PURE__ */ jsx(GraphQLProvider, {
|
|
101
|
+
mockV3ConfigToDeprecatedConfig,
|
|
102
|
+
requestV3Config,
|
|
103
|
+
children: /* @__PURE__ */ jsx(NewOrgConfigProvider, {
|
|
104
|
+
overrideConfig,
|
|
105
|
+
children: /* @__PURE__ */ jsx(LocalStorageProvider, { children: /* @__PURE__ */ jsx(FeatureFlagServiceProvider, {
|
|
106
|
+
featureFlagService,
|
|
107
|
+
children: /* @__PURE__ */ jsx(UserIdentityProvider, {
|
|
108
|
+
userIdService,
|
|
109
|
+
children: /* @__PURE__ */ jsx(AmplitudeProvider, {
|
|
110
|
+
externalAmplitudeService: inputAmplitudeService,
|
|
111
|
+
children: /* @__PURE__ */ jsx(PageProvider, {
|
|
112
|
+
previewMode,
|
|
113
|
+
children: /* @__PURE__ */ jsx(WidgetConfigProvider, { children: /* @__PURE__ */ jsx(HardcopyProvider, {
|
|
114
|
+
hardcopyOverride,
|
|
115
|
+
children: /* @__PURE__ */ jsx(EnviveCssProvider, { children: /* @__PURE__ */ jsxs(SearchAgentWrapper, {
|
|
116
|
+
enabledAgents,
|
|
117
|
+
children: [/* @__PURE__ */ jsx(WindowChatToggleBinder, {}), /* @__PURE__ */ jsx(SalesAgentWrapper, {
|
|
120
118
|
enabledAgents,
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}) })
|
|
129
|
-
}) }) })
|
|
130
|
-
})
|
|
119
|
+
showDebugBar: config.enviveOn || false,
|
|
120
|
+
previewMode,
|
|
121
|
+
mockSalesAgentData,
|
|
122
|
+
children
|
|
123
|
+
})]
|
|
124
|
+
}) })
|
|
125
|
+
}) })
|
|
131
126
|
})
|
|
132
127
|
})
|
|
133
|
-
})
|
|
134
|
-
})
|
|
128
|
+
})
|
|
129
|
+
}) })
|
|
135
130
|
})
|
|
136
131
|
})
|
|
137
132
|
});
|
|
@@ -139,4 +134,4 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
|
|
|
139
134
|
|
|
140
135
|
//#endregion
|
|
141
136
|
export { EnviveProvider };
|
|
142
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgVWlDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3VpQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIH0gZnJvbSAnLi9XaW5kb3dDaGF0VG9nZ2xlQmluZGVyJztcblxuY29uc3QgRW52aXZlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8bnVsbD4obnVsbCk7XG5cbmludGVyZmFjZSBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGVuYWJsZWRBZ2VudHM6IEVudml2ZUFnZW50W107XG59XG5cbmludGVyZmFjZSBFbnZpdmVQcm92aWRlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBhbXBsaXR1ZGVBcGlLZXk/OiBzdHJpbmc7XG4gIGRhdGFSZXNpZGVuY3k/OiBzdHJpbmc7XG4gIGVudj86IHN0cmluZztcbiAgYmFzZVVybD86IHN0cmluZztcbiAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gIG9yZ0xldmVsQXBpS2V5Pzogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU/OiBzdHJpbmc7XG4gIGlkZW50aWZ5aW5nUHJlZml4OiBzdHJpbmc7XG4gIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICB2YXJpYW50SW5mb092ZXJyaWRlPzogYW55O1xuICBzaG93PzogYm9vbGVhbjtcbiAgZW52aXZlT24/OiBib29sZWFuO1xuICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGZlYXR1cmVHYXRlcz86IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107IC8vIE5ldyBwcm9wIGZvciBmZWF0dXJlIGdhdGVzXG4gIGZlYXR1cmVGbGFnU2VydmljZT86IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgZW52aXZlQ29uZmlnU2VydmljZT86IEVudml2ZUNvbmZpZ1NlcnZpY2U7XG4gIGFtcGxpdHVkZVNlcnZpY2U/OiBBbXBsaXR1ZGVTZXJ2aWNlO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICB1c2VySWRlbnRpdHlTZXJ2aWNlPzogVXNlcklkZW50aXR5U2VydmljZTtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBvdmVycmlkZUNvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gIG1vY2tTYWxlc0FnZW50RGF0YT86IGFueTtcbiAgaGFyZGNvcHlPdmVycmlkZT86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+O1xufVxuXG5jb25zdCBTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiA9ICh7IGNoaWxkcmVuLCBlbmFibGVkQWdlbnRzIH0pID0+IHtcbiAgaWYgKCFlbmFibGVkQWdlbnRzLmluY2x1ZGVzKEVudml2ZUFnZW50LlNlYXJjaEFnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gPFNlYXJjaFByb3ZpZGVyPntjaGlsZHJlbn08L1NlYXJjaFByb3ZpZGVyPjtcbn07XG5cbmludGVyZmFjZSBTYWxlc0FnZW50V3JhcHBlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIHNob3dEZWJ1Z0JhcjogYm9vbGVhbjtcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xufVxuXG5jb25zdCBTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgZW5hYmxlZEFnZW50cyxcbiAgcHJldmlld01vZGUsXG4gIHNob3dEZWJ1Z0JhcixcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxufSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2FsZXNBZ2VudCkpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8U3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXIgc2hvd0RlYnVnQmFyPXtzaG93RGVidWdCYXJ9PlxuICAgICAgPFNhbGVzQWdlbnRQcm92aWRlclxuICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgIG1vY2tEYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU2FsZXNBZ2VudFByb3ZpZGVyPlxuICAgIDwvU3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gIG92ZXJyaWRlQ29uZmlnLFxuICBlbmFibGVkQWdlbnRzLFxuICBlbnZpdmVDb25maWdTZXJ2aWNlOiBpbnB1dEVudml2ZUNvbmZpZ1NlcnZpY2UsXG4gIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRGZWF0dXJlRmxhZ1NlcnZpY2UsXG4gIGFtcGxpdHVkZVNlcnZpY2U6IGlucHV0QW1wbGl0dWRlU2VydmljZSxcbiAgdXNlcklkZW50aXR5U2VydmljZTogaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbiAgcmVxdWVzdFYzQ29uZmlnID0gZmFsc2UsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbiAgaGFyZGNvcHlPdmVycmlkZSxcbiAgLi4uY29uZmlnXG59KSA9PiB7XG4gIGNvbnN0IFt1c2VySWQsIHNldFVzZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcblxuICBjb25zdCB1c2VySWRTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlID8/XG4gICAgICBuZXcgVXNlcklkZW50aXR5U2VydmljZSh7IGFwaUtleTogY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXkgfHwgJycgfSksXG4gICAgW2NvbmZpZz8uYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2VdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmV0Y2hVc2VySWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGF3YWl0IHVzZXJJZFNlcnZpY2UuZ2V0VXNlcklkT3JEZWZhdWx0KCk7XG4gICAgICBzZXRVc2VySWQoaWQpO1xuICAgIH07XG5cbiAgICBmZXRjaFVzZXJJZCgpO1xuICB9LCBbY29uZmlnLmFtcGxpdHVkZUFwaUtleSwgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlLCB1c2VySWRTZXJ2aWNlXSk7XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gJ3NwaWZmeS1yZWFjdC1jb21wb25lbnRzJzsgLy8gVE9ETzogU2hvdWxkIHRoaXMgYmUgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgbmFtZXNwYWNlP1xuICBjb25zdCBzb3VyY2UgPSAnYXBwJzsgLy8gVE9ETzogTWFrZSB0aGlzIGRlcGVuZGVudCB1cG9uIHRoZSBcInNwaWZmeV9vblwiIHF1ZXJ5IHBhcmFtXG4gIGNvbnN0IFtlbnZpdmVTZXJ2aWNlQ29uZmlnLCBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnXSA9IHVzZVN0YXRlPEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsPihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFJlYWxseSBub3QgaGFwcHkgd2l0aCB0aGlzIGFwcHJvYWNoLCBidXQgSSdtIHNlZWluZyA0MjkgZXJyb3JzIGluIHRoZSB0ZXN0c1xuICAgIC8vIGJlY2F1c2Ugb2YgdGhlIHJhdGUgbGltaXRpbmcgb24gdGhlIEFQSS5cbiAgICBjb25zdCBlbnZpdmVDb25maWdTZXJ2aWNlID1cbiAgICAgIGlucHV0RW52aXZlQ29uZmlnU2VydmljZSA/P1xuICAgICAgbmV3IEVudml2ZUNvbmZpZ1NlcnZpY2Uoe1xuICAgICAgICBiYXNlVXJsOiBjb25maWc/LmJhc2VVcmwgfHwgJycsXG4gICAgICAgIGFwaUtleTogY29uZmlnPy5vcmdMZXZlbEFwaUtleSB8fCAnJyxcbiAgICAgICAgdXNlcklkLFxuICAgICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSB8fCAnJyxcbiAgICAgICAgc291cmNlOiBzb3VyY2UgfHwgJycsXG4gICAgICB9KTtcbiAgICBlbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpLnRoZW4obmV3Q29uZmlnID0+IHtcbiAgICAgIHNldEVudml2ZVNlcnZpY2VDb25maWcobmV3Q29uZmlnKTtcbiAgICAgIHJldHVybiBuZXdDb25maWc7XG4gICAgfSk7XG4gIH0sIFtjb25maWcsIHVzZXJJZCwgbmFtZXNwYWNlLCBzb3VyY2UsIGlucHV0RW52aXZlQ29uZmlnU2VydmljZV0pO1xuXG4gIGNvbnN0IGVudml2ZUNvbmZpZyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZlYXR1cmVHYXRlczogZW52aXZlU2VydmljZUNvbmZpZz8uZ2F0ZXMgfHwgW10sXG4gICAgICBvcmdTaG9ydE5hbWU6IGVudml2ZVNlcnZpY2VDb25maWc/Lm9yZz8ub3JnPy5zaG9ydF9uYW1lIHx8ICcnLFxuICAgICAgb3JnSWQ6IGVudml2ZVNlcnZpY2VDb25maWc/Lm9yZz8ub3JnPy5pZCB8fCAnJyxcbiAgICB9KSxcbiAgICBbY29uZmlnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnXSxcbiAgKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb250ZXh0OiBlbnZpdmVTZXJ2aWNlQ29uZmlnJywgZW52aXZlU2VydmljZUNvbmZpZywgY29uZmlnKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb250ZXh0OiBlbnZpdmVDb25maWcnLCBlbnZpdmVDb25maWcpO1xuXG4gIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gaW5wdXRGZWF0dXJlRmxhZ1NlcnZpY2UgPz8gbmV3IEZlYXR1cmVGbGFnU2VydmljZShlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzKSxcbiAgICBbZW52aXZlQ29uZmlnLmZlYXR1cmVHYXRlcywgaW5wdXRGZWF0dXJlRmxhZ1NlcnZpY2VdLFxuICApO1xuXG4gIGlmIChlbnZpdmVTZXJ2aWNlQ29uZmlnID09PSBudWxsIHx8IGVudml2ZUNvbmZpZyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8RW52aXZlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bnVsbH0+XG4gICAgICA8RW52aXZlQ29uZmlnUHJvdmlkZXIgey4uLmVudml2ZUNvbmZpZ30+XG4gICAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc9e21vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ31cbiAgICAgICAgICByZXF1ZXN0VjNDb25maWc9e3JlcXVlc3RWM0NvbmZpZ31cbiAgICAgICAgPlxuICAgICAgICAgIDxOZXdPcmdDb25maWdQcm92aWRlciBvdmVycmlkZUNvbmZpZz17b3ZlcnJpZGVDb25maWd9PlxuICAgICAgICAgICAgPExvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICAgIDxVc2VySWRlbnRpdHlQcm92aWRlciB1c2VySWRTZXJ2aWNlPXt1c2VySWRTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxBbXBsaXR1ZGVQcm92aWRlciBleHRlcm5hbEFtcGxpdHVkZVNlcnZpY2U9e2lucHV0QW1wbGl0dWRlU2VydmljZX0+XG4gICAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXIgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VWlDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxXaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEhhcmRjb3B5UHJvdmlkZXIgaGFyZGNvcHlPdmVycmlkZT17aGFyZGNvcHlPdmVycmlkZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEVudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEFnZW50V3JhcHBlciBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdpbmRvd0NoYXRUb2dnbGVCaW5kZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNhbGVzQWdlbnRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZEFnZW50cz17ZW5hYmxlZEFnZW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93RGVidWdCYXI9e2NvbmZpZy5lbnZpdmVPbiB8fCBmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja1NhbGVzQWdlbnREYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2FsZXNBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlYXJjaEFnZW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Vudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hhcmRjb3B5UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1dpZGdldENvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVWlDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9QYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8L0FtcGxpdHVkZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0xvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgICAgIDwvR3JhcGhRTFByb3ZpZGVyPlxuICAgICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgICA8L0Vudml2ZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQkEsTUFBTSxnQkFBZ0IsY0FBb0IsS0FBSztBQXFDL0MsTUFBTUEsc0JBQW1ELEVBQUUsVUFBVSxvQkFBb0I7QUFDdkYsS0FBSSxDQUFDLGNBQWMsU0FBUyxZQUFZLFlBQVksQ0FDbEQsUUFBTztBQUVULFFBQU8sb0JBQUMsa0JBQWdCLFdBQTBCOztBQVNwRCxNQUFNQyxxQkFBdUQsRUFDM0QsVUFDQSxlQUNBLGFBQ0EsY0FDQSx5QkFDSTtBQUNKLEtBQUksQ0FBQyxjQUFjLFNBQVMsWUFBWSxXQUFXLENBQ2pELFFBQU87QUFFVCxRQUNFLG9C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
|
|
137
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuaW50ZXJmYWNlIEVudml2ZVByb3ZpZGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gIHNob3c/OiBib29sZWFuO1xuICBlbnZpdmVPbj86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTsgLy8gTmV3IHByb3AgZm9yIGZlYXR1cmUgZ2F0ZXNcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlPzogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgYW1wbGl0dWRlU2VydmljZT86IEFtcGxpdHVkZVNlcnZpY2U7XG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZz86IGJvb2xlYW47XG4gIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gIHVzZXJJZGVudGl0eVNlcnZpY2U/OiBVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgb3ZlcnJpZGVDb25maWcsXG4gIGVuYWJsZWRBZ2VudHMsXG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSxcbiAgYW1wbGl0dWRlU2VydmljZTogaW5wdXRBbXBsaXR1ZGVTZXJ2aWNlLFxuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsXG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZyA9IGZhbHNlLFxuICByZXF1ZXN0VjNDb25maWcgPSBmYWxzZSxcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxuICBoYXJkY29weU92ZXJyaWRlLFxuICAuLi5jb25maWdcbn0pID0+IHtcbiAgY29uc3QgW3VzZXJJZCwgc2V0VXNlcklkXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuXG4gIGNvbnN0IHVzZXJJZFNlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UgPz9cbiAgICAgIG5ldyBVc2VySWRlbnRpdHlTZXJ2aWNlKHsgYXBpS2V5OiBjb25maWc/LmFtcGxpdHVkZUFwaUtleSB8fCAnJyB9KSxcbiAgICBbY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXksIGlucHV0VXNlcklkZW50aXR5U2VydmljZV0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmZXRjaFVzZXJJZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gYXdhaXQgdXNlcklkU2VydmljZS5nZXRVc2VySWRPckRlZmF1bHQoKTtcbiAgICAgIHNldFVzZXJJZChpZCk7XG4gICAgfTtcblxuICAgIGZldGNoVXNlcklkKCk7XG4gIH0sIFtjb25maWcuYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsIHVzZXJJZFNlcnZpY2VdKTtcblxuICBjb25zdCBuYW1lc3BhY2UgPSAnc3BpZmZ5LXJlYWN0LWNvbXBvbmVudHMnOyAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudCBuYW1lc3BhY2U/XG4gIGNvbnN0IHNvdXJjZSA9ICdhcHAnOyAvLyBUT0RPOiBNYWtlIHRoaXMgZGVwZW5kZW50IHVwb24gdGhlIFwic3BpZmZ5X29uXCIgcXVlcnkgcGFyYW1cbiAgY29uc3QgW2Vudml2ZVNlcnZpY2VDb25maWcsIHNldEVudml2ZVNlcnZpY2VDb25maWddID0gdXNlU3RhdGU8RW52aXZlU2VydmljZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gUmVhbGx5IG5vdCBoYXBweSB3aXRoIHRoaXMgYXBwcm9hY2gsIGJ1dCBJJ20gc2VlaW5nIDQyOSBlcnJvcnMgaW4gdGhlIHRlc3RzXG4gICAgLy8gYmVjYXVzZSBvZiB0aGUgcmF0ZSBsaW1pdGluZyBvbiB0aGUgQVBJLlxuICAgIGNvbnN0IGVudml2ZUNvbmZpZ1NlcnZpY2UgPVxuICAgICAgaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlID8/XG4gICAgICBuZXcgRW52aXZlQ29uZmlnU2VydmljZSh7XG4gICAgICAgIGJhc2VVcmw6IGNvbmZpZz8uYmFzZVVybCB8fCAnJyxcbiAgICAgICAgYXBpS2V5OiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5IHx8ICcnLFxuICAgICAgICB1c2VySWQsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlIHx8ICcnLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSB8fCAnJyxcbiAgICAgIH0pO1xuICAgIGVudml2ZUNvbmZpZ1NlcnZpY2UuZ2V0RW52aXZlQ29uZmlnKCkudGhlbihuZXdDb25maWcgPT4ge1xuICAgICAgc2V0RW52aXZlU2VydmljZUNvbmZpZyhuZXdDb25maWcpO1xuICAgICAgcmV0dXJuIG5ld0NvbmZpZztcbiAgICB9KTtcbiAgfSwgW2NvbmZpZywgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSwgaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlXSk7XG5cbiAgY29uc3QgZW52aXZlQ29uZmlnID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmVhdHVyZUdhdGVzOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlcyB8fCBbXSxcbiAgICAgIG9yZ1Nob3J0TmFtZTogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LnNob3J0X25hbWUgfHwgJycsXG4gICAgICBvcmdJZDogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LmlkIHx8ICcnLFxuICAgIH0pLFxuICAgIFtjb25maWcsIGVudml2ZVNlcnZpY2VDb25maWddLFxuICApO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZVNlcnZpY2VDb25maWcnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnLCBjb25maWcpO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZUNvbmZpZycsIGVudml2ZUNvbmZpZyk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSA/PyBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKGVudml2ZUNvbmZpZy5mZWF0dXJlR2F0ZXMpLFxuICAgIFtlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzLCBpbnB1dEZlYXR1cmVGbGFnU2VydmljZV0sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwgfHwgZW52aXZlQ29uZmlnID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxFbnZpdmVDb25maWdQcm92aWRlciB7Li4uZW52aXZlQ29uZmlnfT5cbiAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPXttb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWd9XG4gICAgICAgIHJlcXVlc3RWM0NvbmZpZz17cmVxdWVzdFYzQ29uZmlnfVxuICAgICAgPlxuICAgICAgICA8TmV3T3JnQ29uZmlnUHJvdmlkZXIgb3ZlcnJpZGVDb25maWc9e292ZXJyaWRlQ29uZmlnfT5cbiAgICAgICAgICA8TG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17dXNlcklkU2VydmljZX0+XG4gICAgICAgICAgICAgICAgPEFtcGxpdHVkZVByb3ZpZGVyIGV4dGVybmFsQW1wbGl0dWRlU2VydmljZT17aW5wdXRBbXBsaXR1ZGVTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXIgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfT5cbiAgICAgICAgICAgICAgICAgICAgPFdpZGdldENvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5T3ZlcnJpZGU9e2hhcmRjb3B5T3ZlcnJpZGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEVudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoQWdlbnRXcmFwcGVyIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNhbGVzQWdlbnRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlYnVnQmFyPXtjb25maWcuZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrU2FsZXNBZ2VudERhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TYWxlc0FnZW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Vudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvSGFyZGNvcHlQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDwvUGFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQW1wbGl0dWRlUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgICAgICAgIDwvTG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgICA8L0dyYXBoUUxQcm92aWRlcj5cbiAgICA8L0Vudml2ZUNvbmZpZ1Byb3ZpZGVyPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxnQkFBZ0I7QUFxQzFDLE1BQU1DLHNCQUFtRCxFQUFFLFVBQVUsb0JBQW9CO0FBQ3ZGLEtBQUksQ0FBQyxjQUFjLFNBQVMsWUFBWSxZQUFZLENBQ2xELFFBQU87QUFFVCxRQUFPLG9CQUFDLGtCQUFnQixXQUEwQjs7QUFTcEQsTUFBTUMscUJBQXVELEVBQzNELFVBQ0EsZUFDQSxhQUNBLGNBQ0EseUJBQ0k7QUFDSixLQUFJLENBQUMsY0FBYyxTQUFTLFlBQVksV0FBVyxDQUNqRCxRQUFPO0FBRVQsUUFDRSxvQkFBQztFQUE0QztZQUMzQyxvQkFBQztHQUNjO0dBQ2IsVUFBVTtHQUVUO0lBQ2tCO0dBQ1M7O0FBSXBDLE1BQWFDLGtCQUFpRCxFQUM1RCxVQUNBLGNBQWMsT0FDZCxnQkFDQSxlQUNBLHFCQUFxQiwwQkFDckIsb0JBQW9CLHlCQUNwQixrQkFBa0IsdUJBQ2xCLHFCQUFxQiwwQkFDckIsaUNBQWlDLE9BQ2pDLGtCQUFrQixPQUNsQixvQkFDQSxrQkFDQSxHQUFHLGFBQ0M7Q0FDSixNQUFNLENBQUMsUUFBUSxhQUFhLFNBQWlCLEdBQUc7Q0FFaEQsTUFBTSxnQkFBZ0IsY0FFbEIsNEJBQ0EsSUFBSSxvQkFBb0IsRUFBRSxRQUFRLFFBQVEsbUJBQW1CLElBQUksQ0FBQyxFQUNwRSxDQUFDLFFBQVEsaUJBQWlCLHlCQUF5QixDQUNwRDtBQUVELGlCQUFnQjtFQUNkLE1BQU0sY0FBYyxZQUFZO0FBRTlCLGFBRFcsTUFBTSxjQUFjLG9CQUFvQixDQUN0Qzs7QUFHZixlQUFhO0lBQ1o7RUFBQyxPQUFPO0VBQWlCO0VBQTBCO0VBQWMsQ0FBQztDQUVyRSxNQUFNLFlBQVk7Q0FDbEIsTUFBTSxTQUFTO0NBQ2YsTUFBTSxDQUFDLHFCQUFxQiwwQkFBMEIsU0FBcUMsS0FBSztBQUVoRyxpQkFBZ0I7QUFZZCxHQVJFLDRCQUNBLElBQUksb0JBQW9CO0dBQ3RCLFNBQVMsUUFBUSxXQUFXO0dBQzVCLFFBQVEsUUFBUSxrQkFBa0I7R0FDbEM7R0FDVztHQUNIO0dBQ1QsQ0FBQyxFQUNnQixpQkFBaUIsQ0FBQyxNQUFLLGNBQWE7QUFDdEQsMEJBQXVCLFVBQVU7QUFDakMsVUFBTztJQUNQO0lBQ0Q7RUFBQztFQUFRO0VBQVE7RUFBVztFQUFRO0VBQXlCLENBQUM7Q0FFakUsTUFBTSxlQUFlLGVBQ1o7RUFDTCxHQUFHO0VBQ0gsY0FBYyxxQkFBcUIsU0FBUyxFQUFFO0VBQzlDLGNBQWMscUJBQXFCLEtBQUssS0FBSyxjQUFjO0VBQzNELE9BQU8scUJBQXFCLEtBQUssS0FBSyxNQUFNO0VBQzdDLEdBQ0QsQ0FBQyxRQUFRLG9CQUFvQixDQUM5QjtBQUNELFFBQU8sU0FBUyxzQ0FBc0MscUJBQXFCLE9BQU87QUFDbEYsUUFBTyxTQUFTLCtCQUErQixhQUFhO0NBRTVELE1BQU0scUJBQXFCLGNBQ25CLDJCQUEyQixJQUFJLG1CQUFtQixhQUFhLGFBQWEsRUFDbEYsQ0FBQyxhQUFhLGNBQWMsd0JBQXdCLENBQ3JEO0FBRUQsS0FBSSx3QkFBd0IsUUFBUSxpQkFBaUIsS0FDbkQsUUFBTztBQUdULFFBQ0Usb0JBQUM7RUFBcUIsR0FBSTtZQUN4QixvQkFBQztHQUNpQztHQUNmO2FBRWpCLG9CQUFDO0lBQXFDO2NBQ3BDLG9CQUFDLGtDQUNDLG9CQUFDO0tBQStDO2VBQzlDLG9CQUFDO01BQW9DO2dCQUNuQyxvQkFBQztPQUFrQiwwQkFBMEI7aUJBQzNDLG9CQUFDO1FBQTBCO2tCQUN6QixvQkFBQyxrQ0FDQyxvQkFBQztTQUFtQzttQkFDbEMsb0JBQUMsK0JBQ0MscUJBQUM7VUFBa0M7cUJBQ2pDLG9CQUFDLDJCQUF5QixFQUMxQixvQkFBQztXQUNnQjtXQUNmLGNBQWMsT0FBTyxZQUFZO1dBQ3BCO1dBQ087V0FFbkI7WUFDaUI7V0FDRCxHQUNIO1VBQ0gsR0FDRTtTQUNWO1FBQ0c7T0FDQztNQUNJLEdBQ1I7S0FDRjtJQUNQO0dBQ0cifQ==
|
|
@@ -7,6 +7,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
7
7
|
|
|
8
8
|
//#region src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx
|
|
9
9
|
const FEATURE_FLAGS_STORAGE_KEY = "spiffy-feature-flags";
|
|
10
|
+
const logger = new require_logger.default("featureFlagServiceContext");
|
|
10
11
|
var FeatureFlagService = class FeatureFlagService {
|
|
11
12
|
constructor(featureGates) {
|
|
12
13
|
this.isFeatureGateEnabled = (featureGate) => {
|
|
@@ -14,7 +15,7 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
14
15
|
const featureFlagOverride = FeatureFlagService.getFeatureFlagOverride(featureGate);
|
|
15
16
|
if (featureFlagOverride !== void 0) return featureFlagOverride;
|
|
16
17
|
if (gateValue == null || gateValue.value == null) {
|
|
17
|
-
|
|
18
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} value is undefined - returning false`);
|
|
18
19
|
return false;
|
|
19
20
|
}
|
|
20
21
|
return gateValue.value;
|
|
@@ -68,24 +69,24 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
68
69
|
if (!featureFlags) return;
|
|
69
70
|
return JSON.parse(featureFlags)[featureGate];
|
|
70
71
|
} catch (err) {
|
|
71
|
-
|
|
72
|
+
logger.logError("getStoredFeatureGateOverrides: error parsing feature flags", err);
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
static getFeatureFlagOverride(featureGate) {
|
|
76
77
|
const queryOverride = FeatureFlagService.getQueryParamFeatureGateOverrides(featureGate);
|
|
77
78
|
if (queryOverride != null) {
|
|
78
|
-
|
|
79
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by URL param. New value: ${queryOverride}`);
|
|
79
80
|
return queryOverride;
|
|
80
81
|
}
|
|
81
82
|
const windowOverride = FeatureFlagService.getWindowFeatureGateOverrides(featureGate);
|
|
82
83
|
if (windowOverride != null) {
|
|
83
|
-
|
|
84
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by window param. New value: ${windowOverride}`);
|
|
84
85
|
return windowOverride;
|
|
85
86
|
}
|
|
86
87
|
const storedOverride = FeatureFlagService.getStoredFeatureGateOverrides(featureGate);
|
|
87
88
|
if (storedOverride != null) {
|
|
88
|
-
|
|
89
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by stored value. New value: ${storedOverride}`);
|
|
89
90
|
return storedOverride;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -116,4 +117,4 @@ const useFeatureFlagService = () => {
|
|
|
116
117
|
exports.FeatureFlagService = FeatureFlagService;
|
|
117
118
|
exports.FeatureFlagServiceProvider = FeatureFlagServiceProvider;
|
|
118
119
|
exports.useFeatureFlagService = useFeatureFlagService;
|
|
119
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5janMiLCJuYW1lcyI6WyJGZWF0dXJlR2F0ZXMiLCJmZWF0dXJlR2F0ZXMiLCJGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcjogUmVhY3QuRkM8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcz4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcblxuY29uc3QgRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSA9ICdzcGlmZnktZmVhdHVyZS1mbGFncyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEZsYWdWYWx1ZSB7XG4gIHJlc29sdmVkOiBib29sZWFuO1xuICBpbml0aWFsOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBxdWVyeV9wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBzdG9yZWRfb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8vIFRoaXMgaXMgdGhlIGNsYXNzIHRoYXQgd2FzIHByZXZpb3VzbHkgaW1wbGljaXRseSB1c2VkIG9yIGRlZmluZWQgZWxzZXdoZXJlXG5leHBvcnQgY2xhc3MgRmVhdHVyZUZsYWdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG5cbiAgY29uc3RydWN0b3IoZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdKSB7XG4gICAgdGhpcy5mZWF0dXJlR2F0ZXMgPSBmZWF0dXJlR2F0ZXM7XG4gIH1cblxuICBzdGF0aWMgZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24/LmhyZWYgPz8gJyc7XG4gICAgaWYgKHVybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybE9iai5zZWFyY2gpO1xuICAgICAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNPYmpbZmVhdHVyZUdhdGVdO1xuXG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gd2luZG93IGFzIFdpbmRvdyAmIHtcbiAgICAgIF9lbnZpdmU/OiB7IGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB9O1xuICAgICAgX3NwaWZmeT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgfTtcbiAgICBjb25zdCBmZWF0dXJlT3ZlcnJpZGVzID1cbiAgICAgIHdpbmRvd092ZXJyaWRlPy5fZW52aXZlPy5mZWF0dXJlT3ZlcnJpZGVzID8/IHdpbmRvd092ZXJyaWRlPy5fc3BpZmZ5Py5mZWF0dXJlT3ZlcnJpZGVzO1xuICAgIGNvbnN0IHZhbHVlID0gZmVhdHVyZU92ZXJyaWRlcz8uW1N0cmluZyhmZWF0dXJlR2F0ZSldO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3MgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoIWZlYXR1cmVGbGFncykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzT2JqID0gSlNPTi5wYXJzZShmZWF0dXJlRmxhZ3MpIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnc09ialtmZWF0dXJlR2F0ZV07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoXG4gICAgICAgICdbc3BpZmZ5LWFpXSBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlczogZXJyb3IgcGFyc2luZyBmZWF0dXJlIGZsYWdzJyxcbiAgICAgICAgZXJyLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHF1ZXJ5T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAocXVlcnlPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBbc3BpZmZ5LWFpXSBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IFVSTCBwYXJhbS4gTmV3IHZhbHVlOiAke3F1ZXJ5T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gcXVlcnlPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCB3aW5kb3dPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHdpbmRvd092ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgd2luZG93IHBhcmFtLiBOZXcgdmFsdWU6ICR7d2luZG93T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gd2luZG93T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChzdG9yZWRPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBbc3BpZmZ5LWFpXSBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHN0b3JlZCB2YWx1ZS4gTmV3IHZhbHVlOiAke3N0b3JlZE92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0b3JlZE92ZXJyaWRlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpc0ZlYXR1cmVHYXRlRW5hYmxlZCA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoZmVhdHVyZUZsYWdPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdPdmVycmlkZTtcbiAgICB9XG5cbiAgICBpZiAoZ2F0ZVZhbHVlID09IG51bGwgfHwgZ2F0ZVZhbHVlLnZhbHVlID09IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IHZhbHVlIGlzIHVuZGVmaW5lZCAtIHJldHVybmluZyBmYWxzZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZ2F0ZVZhbHVlLnZhbHVlO1xuICB9O1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0YW5kYXJkIG92ZXJyaWRlcyB3b3JrIGFzIGV4cGVjdGVkXG4gIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoRmVhdHVyZUdhdGVzLklzQ2xpZW50U2Vzc2lvbkVuYWJsZWQpO1xuXG4gIGdldEZlYXR1cmVGbGFncyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgXSksXG4gICAgKTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBGdWxsRmxhZ1ZhbHVlID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc29sdmVkOiB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIGluaXRpYWw6IGdhdGVWYWx1ZT8udmFsdWUsXG4gICAgICBxdWVyeV9wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICBzdG9yZWRfb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgfTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlcyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPiA9PiB7XG4gICAgY29uc3QgZmVhdHVyZUdhdGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICB0aGlzLmdldEZ1bGxGbGFnVmFsdWUoZmVhdHVyZUdhdGUpLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVHYXRlcy5sZW5ndGggPiAwXG4gICAgICA/IGZlYXR1cmVHYXRlcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4+KChhY2MsIGVudHJ5KSA9PiB7XG4gICAgICAgICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGVudHJ5IGFzIFtGZWF0dXJlR2F0ZXMsIEZ1bGxGbGFnVmFsdWVdO1xuICAgICAgICAgIGlmIChuYW1lICYmIHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmFjYywgW2BmZWF0dXJlX2dhdGUuJHtuYW1lfWBdOiB2YWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgIDoge307XG4gIH07XG5cbiAgc3RhdGljIHBlcnNpc3RGZWF0dXJlR2F0ZU92ZXJyaWRlcygpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKVxuICAgICAgLm1hcChcbiAgICAgICAgZmVhdHVyZUdhdGUgPT5cbiAgICAgICAgICBbZmVhdHVyZUdhdGUsIEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKV0gYXMgY29uc3QsXG4gICAgICApXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAucmVkdWNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PigoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlISB9KSwge30pO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShvdmVycmlkZXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVGbGFnQ29udGV4dFR5cGUge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZSB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8RmVhdHVyZUZsYWdDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuaW50ZXJmYWNlIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyUHJvcHMge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiA9ICh7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRTZXJ2aWNlLFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dFNlcnZpY2UsXG4gICAgfSksXG4gICAgW2lucHV0U2VydmljZV0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0KTtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlRmVhdHVyZUZsYWdTZXJ2aWNlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxNQUFNLDRCQUE0QjtBQVdsQyxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBcUYxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCwyQkFBTyxTQUNMLGdEQUFnRCxZQUFZLHVDQUM3RDtBQUNELFdBQU87O0FBRVQsVUFBTyxVQUFVOztzQ0FLakIsS0FBSyxxQkFBcUJBLGtDQUFh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
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJGZWF0dXJlR2F0ZXMiLCJmZWF0dXJlR2F0ZXMiLCJGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcjogUmVhY3QuRkM8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcz4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcblxuY29uc3QgRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSA9ICdzcGlmZnktZmVhdHVyZS1mbGFncyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnKTtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsRmxhZ1ZhbHVlIHtcbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLy8gVGhpcyBpcyB0aGUgY2xhc3MgdGhhdCB3YXMgcHJldmlvdXNseSBpbXBsaWNpdGx5IHVzZWQgb3IgZGVmaW5lZCBlbHNld2hlcmVcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcblxuICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pIHtcbiAgICB0aGlzLmZlYXR1cmVHYXRlcyA9IGZlYXR1cmVHYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbiAgICBpZiAodXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsT2JqLnNlYXJjaCk7XG4gICAgICBjb25zdCBwYXJhbXNPYmogPSBPYmplY3QuZnJvbUVudHJpZXMocGFyYW1zLmVudHJpZXMoKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc09ialtmZWF0dXJlR2F0ZV07XG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSB3aW5kb3cgYXMgV2luZG93ICYge1xuICAgICAgX2Vudml2ZT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgICBfc3BpZmZ5PzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICB9O1xuICAgIGNvbnN0IGZlYXR1cmVPdmVycmlkZXMgPVxuICAgICAgd2luZG93T3ZlcnJpZGU/Ll9lbnZpdmU/LmZlYXR1cmVPdmVycmlkZXMgPz8gd2luZG93T3ZlcnJpZGU/Ll9zcGlmZnk/LmZlYXR1cmVPdmVycmlkZXM7XG4gICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlT3ZlcnJpZGVzPy5bU3RyaW5nKGZlYXR1cmVHYXRlKV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZKTtcbiAgICAgIGlmICghZmVhdHVyZUZsYWdzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3NPYmogPSBKU09OLnBhcnNlKGZlYXR1cmVGbGFncykgYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdzT2JqW2ZlYXR1cmVHYXRlXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXM6IGVycm9yIHBhcnNpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBxdWVyeU92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHF1ZXJ5T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBVUkwgcGFyYW0uIE5ldyB2YWx1ZTogJHtxdWVyeU92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHF1ZXJ5T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmICh3aW5kb3dPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHdpbmRvdyBwYXJhbS4gTmV3IHZhbHVlOiAke3dpbmRvd092ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHdpbmRvd092ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZE92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoc3RvcmVkT3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBzdG9yZWQgdmFsdWUuIE5ldyB2YWx1ZTogJHtzdG9yZWRPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdG9yZWRPdmVycmlkZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcblxuICAgIGNvbnN0IGZlYXR1cmVGbGFnT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKGZlYXR1cmVGbGFnT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgaWYgKGdhdGVWYWx1ZSA9PSBudWxsIHx8IGdhdGVWYWx1ZS52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSB2YWx1ZSBpcyB1bmRlZmluZWQgLSByZXR1cm5pbmcgZmFsc2VgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGdhdGVWYWx1ZS52YWx1ZTtcbiAgfTtcblxuICAvLyBFbnN1cmUgdGhhdCBzdGFuZGFyZCBvdmVycmlkZXMgd29yayBhcyBleHBlY3RlZFxuICBpc0NsaWVudFNlc3Npb25FbmFibGVkID0gKCk6IGJvb2xlYW4gPT5cbiAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Jc0NsaWVudFNlc3Npb25FbmFibGVkKTtcblxuICBnZXRGZWF0dXJlRmxhZ3MgPSAoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIF0pLFxuICAgICk7XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZSA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogRnVsbEZsYWdWYWx1ZSA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuICAgIHJldHVybiB7XG4gICAgICByZXNvbHZlZDogdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBpbml0aWFsOiBnYXRlVmFsdWU/LnZhbHVlLFxuICAgICAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgc3RvcmVkX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgIH07XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZXMgPSAoKTogUmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4gPT4ge1xuICAgIGNvbnN0IGZlYXR1cmVHYXRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgdGhpcy5nZXRGdWxsRmxhZ1ZhbHVlKGZlYXR1cmVHYXRlKSxcbiAgICBdKTtcblxuICAgIHJldHVybiBmZWF0dXJlR2F0ZXMubGVuZ3RoID4gMFxuICAgICAgPyBmZWF0dXJlR2F0ZXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+PigoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBlbnRyeSBhcyBbRmVhdHVyZUdhdGVzLCBGdWxsRmxhZ1ZhbHVlXTtcbiAgICAgICAgICBpZiAobmFtZSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtgZmVhdHVyZV9nYXRlLiR7bmFtZX1gXTogdmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICA6IHt9O1xuICB9O1xuXG4gIHN0YXRpYyBwZXJzaXN0RmVhdHVyZUdhdGVPdmVycmlkZXMoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvdmVycmlkZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcylcbiAgICAgIC5tYXAoXG4gICAgICAgIGZlYXR1cmVHYXRlID0+XG4gICAgICAgICAgW2ZlYXR1cmVHYXRlLCBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSldIGFzIGNvbnN0LFxuICAgICAgKVxuICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXldOiB2YWx1ZSEgfSksIHt9KTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkob3ZlcnJpZGVzKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlRmxhZ0NvbnRleHRUeXBlIHtcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBGZWF0dXJlRmxhZ1NlcnZpY2UgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IEZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PEZlYXR1cmVGbGFnQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzIHtcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBGZWF0dXJlRmxhZ1NlcnZpY2U7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcjogUmVhY3QuRkM8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IGlucHV0U2VydmljZSxcbiAgY2hpbGRyZW4sXG59KSA9PiB7XG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRTZXJ2aWNlLFxuICAgIH0pLFxuICAgIFtpbnB1dFNlcnZpY2VdLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUZlYXR1cmVGbGFnU2VydmljZSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCk7XG4gIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUZlYXR1cmVGbGFnU2VydmljZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBS0EsTUFBTSw0QkFBNEI7QUFFbEMsTUFBTSxTQUFTLElBQUlBLHVCQUFPLDRCQUE0QjtBQVd0RCxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBa0YxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCxXQUFPLFNBQ0wsb0NBQW9DLFlBQVksdUNBQ2pEO0FBQ0QsV0FBTzs7QUFFVCxVQUFPLFVBQVU7O3NDQUtqQixLQUFL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
|
|
@@ -5,6 +5,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
5
5
|
|
|
6
6
|
//#region src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx
|
|
7
7
|
const FEATURE_FLAGS_STORAGE_KEY = "spiffy-feature-flags";
|
|
8
|
+
const logger = new logger_default("featureFlagServiceContext");
|
|
8
9
|
var FeatureFlagService = class FeatureFlagService {
|
|
9
10
|
constructor(featureGates) {
|
|
10
11
|
this.isFeatureGateEnabled = (featureGate) => {
|
|
@@ -12,7 +13,7 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
12
13
|
const featureFlagOverride = FeatureFlagService.getFeatureFlagOverride(featureGate);
|
|
13
14
|
if (featureFlagOverride !== void 0) return featureFlagOverride;
|
|
14
15
|
if (gateValue == null || gateValue.value == null) {
|
|
15
|
-
|
|
16
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} value is undefined - returning false`);
|
|
16
17
|
return false;
|
|
17
18
|
}
|
|
18
19
|
return gateValue.value;
|
|
@@ -66,24 +67,24 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
66
67
|
if (!featureFlags) return;
|
|
67
68
|
return JSON.parse(featureFlags)[featureGate];
|
|
68
69
|
} catch (err) {
|
|
69
|
-
|
|
70
|
+
logger.logError("getStoredFeatureGateOverrides: error parsing feature flags", err);
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
static getFeatureFlagOverride(featureGate) {
|
|
74
75
|
const queryOverride = FeatureFlagService.getQueryParamFeatureGateOverrides(featureGate);
|
|
75
76
|
if (queryOverride != null) {
|
|
76
|
-
|
|
77
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by URL param. New value: ${queryOverride}`);
|
|
77
78
|
return queryOverride;
|
|
78
79
|
}
|
|
79
80
|
const windowOverride = FeatureFlagService.getWindowFeatureGateOverrides(featureGate);
|
|
80
81
|
if (windowOverride != null) {
|
|
81
|
-
|
|
82
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by window param. New value: ${windowOverride}`);
|
|
82
83
|
return windowOverride;
|
|
83
84
|
}
|
|
84
85
|
const storedOverride = FeatureFlagService.getStoredFeatureGateOverrides(featureGate);
|
|
85
86
|
if (storedOverride != null) {
|
|
86
|
-
|
|
87
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by stored value. New value: ${storedOverride}`);
|
|
87
88
|
return storedOverride;
|
|
88
89
|
}
|
|
89
90
|
}
|
|
@@ -112,4 +113,4 @@ const useFeatureFlagService = () => {
|
|
|
112
113
|
|
|
113
114
|
//#endregion
|
|
114
115
|
export { FeatureFlagService, FeatureFlagServiceProvider, useFeatureFlagService };
|
|
115
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5qcyIsIm5hbWVzIjpbImZlYXR1cmVHYXRlcyIsIkZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuXG5jb25zdCBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZID0gJ3NwaWZmeS1mZWF0dXJlLWZsYWdzJztcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsRmxhZ1ZhbHVlIHtcbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLy8gVGhpcyBpcyB0aGUgY2xhc3MgdGhhdCB3YXMgcHJldmlvdXNseSBpbXBsaWNpdGx5IHVzZWQgb3IgZGVmaW5lZCBlbHNld2hlcmVcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcblxuICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pIHtcbiAgICB0aGlzLmZlYXR1cmVHYXRlcyA9IGZlYXR1cmVHYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbiAgICBpZiAodXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsT2JqLnNlYXJjaCk7XG4gICAgICBjb25zdCBwYXJhbXNPYmogPSBPYmplY3QuZnJvbUVudHJpZXMocGFyYW1zLmVudHJpZXMoKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc09ialtmZWF0dXJlR2F0ZV07XG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSB3aW5kb3cgYXMgV2luZG93ICYge1xuICAgICAgX2Vudml2ZT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgICBfc3BpZmZ5PzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICB9O1xuICAgIGNvbnN0IGZlYXR1cmVPdmVycmlkZXMgPVxuICAgICAgd2luZG93T3ZlcnJpZGU/Ll9lbnZpdmU/LmZlYXR1cmVPdmVycmlkZXMgPz8gd2luZG93T3ZlcnJpZGU/Ll9zcGlmZnk/LmZlYXR1cmVPdmVycmlkZXM7XG4gICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlT3ZlcnJpZGVzPy5bU3RyaW5nKGZlYXR1cmVHYXRlKV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZKTtcbiAgICAgIGlmICghZmVhdHVyZUZsYWdzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3NPYmogPSBKU09OLnBhcnNlKGZlYXR1cmVGbGFncykgYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdzT2JqW2ZlYXR1cmVHYXRlXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICAgJ1tzcGlmZnktYWldIGdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzOiBlcnJvciBwYXJzaW5nIGZlYXR1cmUgZmxhZ3MnLFxuICAgICAgICBlcnIsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcXVlcnlPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChxdWVyeU92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgVVJMIHBhcmFtLiBOZXcgdmFsdWU6ICR7cXVlcnlPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBxdWVyeU92ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAod2luZG93T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgW3NwaWZmeS1haV0gaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSB3aW5kb3cgcGFyYW0uIE5ldyB2YWx1ZTogJHt3aW5kb3dPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB3aW5kb3dPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWRPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHN0b3JlZE92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgc3RvcmVkIHZhbHVlLiBOZXcgdmFsdWU6ICR7c3RvcmVkT3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RvcmVkT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzRmVhdHVyZUdhdGVFbmFibGVkID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG5cbiAgICBjb25zdCBmZWF0dXJlRmxhZ092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChmZWF0dXJlRmxhZ092ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmZWF0dXJlRmxhZ092ZXJyaWRlO1xuICAgIH1cblxuICAgIGlmIChnYXRlVmFsdWUgPT0gbnVsbCB8fCBnYXRlVmFsdWUudmFsdWUgPT0gbnVsbCkge1xuICAgICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgW3NwaWZmeS1haV0gaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gdmFsdWUgaXMgdW5kZWZpbmVkIC0gcmV0dXJuaW5nIGZhbHNlYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBnYXRlVmFsdWUudmFsdWU7XG4gIH07XG5cbiAgLy8gRW5zdXJlIHRoYXQgc3RhbmRhcmQgb3ZlcnJpZGVzIHdvcmsgYXMgZXhwZWN0ZWRcbiAgaXNDbGllbnRTZXNzaW9uRW5hYmxlZCA9ICgpOiBib29sZWFuID0+XG4gICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuSXNDbGllbnRTZXNzaW9uRW5hYmxlZCk7XG5cbiAgZ2V0RmVhdHVyZUZsYWdzID0gKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBdKSxcbiAgICApO1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWUgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IEZ1bGxGbGFnVmFsdWUgPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb2x2ZWQ6IHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgaW5pdGlhbDogZ2F0ZVZhbHVlPy52YWx1ZSxcbiAgICAgIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHdpbmRvd19wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHN0b3JlZF9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICB9O1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWVzID0gKCk6IFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+ID0+IHtcbiAgICBjb25zdCBmZWF0dXJlR2F0ZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgIHRoaXMuZ2V0RnVsbEZsYWdWYWx1ZShmZWF0dXJlR2F0ZSksXG4gICAgXSk7XG5cbiAgICByZXR1cm4gZmVhdHVyZUdhdGVzLmxlbmd0aCA+IDBcbiAgICAgID8gZmVhdHVyZUdhdGVzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPj4oKGFjYywgZW50cnkpID0+IHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gZW50cnkgYXMgW0ZlYXR1cmVHYXRlcywgRnVsbEZsYWdWYWx1ZV07XG4gICAgICAgICAgaWYgKG5hbWUgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYGZlYXR1cmVfZ2F0ZS4ke25hbWV9YF06IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KVxuICAgICAgOiB7fTtcbiAgfTtcblxuICBzdGF0aWMgcGVyc2lzdEZlYXR1cmVHYXRlT3ZlcnJpZGVzKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpXG4gICAgICAubWFwKFxuICAgICAgICBmZWF0dXJlR2F0ZSA9PlxuICAgICAgICAgIFtmZWF0dXJlR2F0ZSwgRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpXSBhcyBjb25zdCxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUhIH0pLCB7fSk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KG92ZXJyaWRlcykpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdDb250ZXh0VHlwZSB7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogRmVhdHVyZUZsYWdTZXJ2aWNlIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxGZWF0dXJlRmxhZ0NvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5pbnRlcmZhY2UgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcyB7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXI6IFJlYWN0LkZDPEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dFNlcnZpY2UsXG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBmZWF0dXJlRmxhZ1NlcnZpY2U6IGlucHV0U2VydmljZSxcbiAgICB9KSxcbiAgICBbaW5wdXRTZXJ2aWNlXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQpO1xuICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxNQUFNLDRCQUE0QjtBQVdsQyxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBcUYxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCxtQkFBTyxTQUNMLGdEQUFnRCxZQUFZLHVDQUM3RDtBQUNELFdBQU87O0FBRVQsVUFBTyxVQUFVOztzQ0FLakIsS0FBSyxxQkFBcUIsYUFBYSx1QkFBdUI7K0JBRWY7QUFDL0Ms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
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsImZlYXR1cmVHYXRlcyIsIkZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuXG5jb25zdCBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZID0gJ3NwaWZmeS1mZWF0dXJlLWZsYWdzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxGbGFnVmFsdWUge1xuICByZXNvbHZlZDogYm9vbGVhbjtcbiAgaW5pdGlhbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHdpbmRvd19wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgc3RvcmVkX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBUaGlzIGlzIHRoZSBjbGFzcyB0aGF0IHdhcyBwcmV2aW91c2x5IGltcGxpY2l0bHkgdXNlZCBvciBkZWZpbmVkIGVsc2V3aGVyZVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XG4gIHByaXZhdGUgZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuXG4gIGNvbnN0cnVjdG9yKGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXSkge1xuICAgIHRoaXMuZmVhdHVyZUdhdGVzID0gZmVhdHVyZUdhdGVzO1xuICB9XG5cbiAgc3RhdGljIGdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uPy5ocmVmID8/ICcnO1xuICAgIGlmICh1cmwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgY29uc3QgdXJsT2JqID0gbmV3IFVSTCh1cmwpO1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxPYmouc2VhcmNoKTtcbiAgICAgIGNvbnN0IHBhcmFtc09iaiA9IE9iamVjdC5mcm9tRW50cmllcyhwYXJhbXMuZW50cmllcygpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zT2JqW2ZlYXR1cmVHYXRlXTtcblxuICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCB3aW5kb3dPdmVycmlkZSA9IHdpbmRvdyBhcyBXaW5kb3cgJiB7XG4gICAgICBfZW52aXZlPzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICAgIF9zcGlmZnk/OiB7IGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB9O1xuICAgIH07XG4gICAgY29uc3QgZmVhdHVyZU92ZXJyaWRlcyA9XG4gICAgICB3aW5kb3dPdmVycmlkZT8uX2Vudml2ZT8uZmVhdHVyZU92ZXJyaWRlcyA/PyB3aW5kb3dPdmVycmlkZT8uX3NwaWZmeT8uZmVhdHVyZU92ZXJyaWRlcztcbiAgICBjb25zdCB2YWx1ZSA9IGZlYXR1cmVPdmVycmlkZXM/LltTdHJpbmcoZmVhdHVyZUdhdGUpXTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVkpO1xuICAgICAgaWYgKCFmZWF0dXJlRmxhZ3MpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFnc09iaiA9IEpTT04ucGFyc2UoZmVhdHVyZUZsYWdzKSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICAgIHJldHVybiBmZWF0dXJlRmxhZ3NPYmpbZmVhdHVyZUdhdGVdO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlczogZXJyb3IgcGFyc2luZyBmZWF0dXJlIGZsYWdzJywgZXJyKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHF1ZXJ5T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAocXVlcnlPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IFVSTCBwYXJhbS4gTmV3IHZhbHVlOiAke3F1ZXJ5T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gcXVlcnlPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCB3aW5kb3dPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHdpbmRvd092ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgd2luZG93IHBhcmFtLiBOZXcgdmFsdWU6ICR7d2luZG93T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gd2luZG93T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChzdG9yZWRPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHN0b3JlZCB2YWx1ZS4gTmV3IHZhbHVlOiAke3N0b3JlZE92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0b3JlZE92ZXJyaWRlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpc0ZlYXR1cmVHYXRlRW5hYmxlZCA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoZmVhdHVyZUZsYWdPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdPdmVycmlkZTtcbiAgICB9XG5cbiAgICBpZiAoZ2F0ZVZhbHVlID09IG51bGwgfHwgZ2F0ZVZhbHVlLnZhbHVlID09IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IHZhbHVlIGlzIHVuZGVmaW5lZCAtIHJldHVybmluZyBmYWxzZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZ2F0ZVZhbHVlLnZhbHVlO1xuICB9O1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0YW5kYXJkIG92ZXJyaWRlcyB3b3JrIGFzIGV4cGVjdGVkXG4gIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoRmVhdHVyZUdhdGVzLklzQ2xpZW50U2Vzc2lvbkVuYWJsZWQpO1xuXG4gIGdldEZlYXR1cmVGbGFncyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgXSksXG4gICAgKTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBGdWxsRmxhZ1ZhbHVlID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc29sdmVkOiB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIGluaXRpYWw6IGdhdGVWYWx1ZT8udmFsdWUsXG4gICAgICBxdWVyeV9wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICBzdG9yZWRfb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgfTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlcyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPiA9PiB7XG4gICAgY29uc3QgZmVhdHVyZUdhdGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICB0aGlzLmdldEZ1bGxGbGFnVmFsdWUoZmVhdHVyZUdhdGUpLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVHYXRlcy5sZW5ndGggPiAwXG4gICAgICA/IGZlYXR1cmVHYXRlcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4+KChhY2MsIGVudHJ5KSA9PiB7XG4gICAgICAgICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGVudHJ5IGFzIFtGZWF0dXJlR2F0ZXMsIEZ1bGxGbGFnVmFsdWVdO1xuICAgICAgICAgIGlmIChuYW1lICYmIHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmFjYywgW2BmZWF0dXJlX2dhdGUuJHtuYW1lfWBdOiB2YWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgIDoge307XG4gIH07XG5cbiAgc3RhdGljIHBlcnNpc3RGZWF0dXJlR2F0ZU92ZXJyaWRlcygpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKVxuICAgICAgLm1hcChcbiAgICAgICAgZmVhdHVyZUdhdGUgPT5cbiAgICAgICAgICBbZmVhdHVyZUdhdGUsIEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKV0gYXMgY29uc3QsXG4gICAgICApXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAucmVkdWNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PigoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlISB9KSwge30pO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShvdmVycmlkZXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVGbGFnQ29udGV4dFR5cGUge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZSB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8RmVhdHVyZUZsYWdDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuaW50ZXJmYWNlIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyUHJvcHMge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiA9ICh7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRTZXJ2aWNlLFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dFNlcnZpY2UsXG4gICAgfSksXG4gICAgW2lucHV0U2VydmljZV0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0KTtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlRmVhdHVyZUZsYWdTZXJ2aWNlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsTUFBTSw0QkFBNEI7QUFFbEMsTUFBTSxTQUFTLElBQUlBLGVBQU8sNEJBQTRCO0FBV3RELElBQWEscUJBQWIsTUFBYSxtQkFBbUI7Q0FHOUIsWUFBWSxjQUFzQzsrQkFrRjFCLGdCQUF1QztHQUM3RCxNQUFNLFlBQVksS0FBSyxhQUFhLE1BQUssU0FBUSxLQUFLLFNBQVMsWUFBWTtHQUUzRSxNQUFNLHNCQUFzQixtQkFBbUIsdUJBQXVCLFlBQVk7QUFDbEYsT0FBSSx3QkFBd0IsT0FDMUIsUUFBTztBQUdULE9BQUksYUFBYSxRQUFRLFVBQVUsU0FBUyxNQUFNO0FBQ2hELFdBQU8sU0FDTCxvQ0FBb0MsWUFBWSx1Q0FDakQ7QUFDRCxXQUFPOztBQUVULFVBQU8sVUFBVTs7c0NBS2pCLEtBQUsscUJBQXFCLGFBQWEsdUJBQXVC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
|
|
@@ -17,6 +17,7 @@ let __envive_ai_react_toolkit_v3_FloatingButton = require("@envive-ai/react-tool
|
|
|
17
17
|
|
|
18
18
|
//#region src/contexts/graphqlContext/graphqlContext.tsx
|
|
19
19
|
const GraphQLContext = (0, react.createContext)(null);
|
|
20
|
+
const logger = new require_logger.default("graphqlContext");
|
|
20
21
|
const DEFAULT_PAGE_VARIANTS = [{
|
|
21
22
|
variantId: "plp",
|
|
22
23
|
variantType: "plp",
|
|
@@ -146,7 +147,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
|
|
|
146
147
|
const isSemanticColors = !window.location.href.includes("globals=merchant");
|
|
147
148
|
const isStorybook = window.top?.location.href.includes("?path=");
|
|
148
149
|
if (!v3RootConfig && mockV3ConfigToDeprecatedConfig || isStorybook && isSemanticColors) {
|
|
149
|
-
|
|
150
|
+
logger.logDebug("GraphQLContext | Returning mock v3 config", {
|
|
150
151
|
colorsConfig: require_mockV3Config.mockV3ColorsConfig,
|
|
151
152
|
frontendConfig: require_mockV3Config.mockV3FrontendConfig
|
|
152
153
|
});
|
|
@@ -160,7 +161,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
|
|
|
160
161
|
}
|
|
161
162
|
};
|
|
162
163
|
}
|
|
163
|
-
|
|
164
|
+
logger.logDebug("GraphQLContext | Returning v3 config", {
|
|
164
165
|
colorsConfig: v3ColorsConfig,
|
|
165
166
|
frontendConfig: v3FrontendConfig,
|
|
166
167
|
orgPageConfig: {
|
|
@@ -183,7 +184,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
|
|
|
183
184
|
}
|
|
184
185
|
};
|
|
185
186
|
} catch (err) {
|
|
186
|
-
|
|
187
|
+
logger.logError("Error fetching graphql colors and frontend config", err);
|
|
187
188
|
return {
|
|
188
189
|
colorsConfig: void 0,
|
|
189
190
|
frontendConfig: void 0
|
|
@@ -210,7 +211,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
|
|
|
210
211
|
frontendConfig: require_mockV3Config.mockV3FrontendConfig
|
|
211
212
|
};
|
|
212
213
|
} catch (err) {
|
|
213
|
-
|
|
214
|
+
logger.logError("Error fetching graphql colors and frontend config", err);
|
|
214
215
|
return {
|
|
215
216
|
colorsConfig: void 0,
|
|
216
217
|
frontendConfig: void 0
|
|
@@ -219,10 +220,10 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
|
|
|
219
220
|
}, [executeQuery]);
|
|
220
221
|
const getConfig = (0, react.useCallback)(async () => {
|
|
221
222
|
if (requestV3Config) {
|
|
222
|
-
|
|
223
|
+
logger.logDebug("GraphQLContext | Getting v3 config", requestV3Config);
|
|
223
224
|
return getV3Config();
|
|
224
225
|
}
|
|
225
|
-
|
|
226
|
+
logger.logDebug("GraphQLContext | Getting colors and frontend config", requestV3Config);
|
|
226
227
|
return getColorsAndFrontendConfig();
|
|
227
228
|
}, [
|
|
228
229
|
getColorsAndFrontendConfig,
|
|
@@ -258,4 +259,4 @@ const useGraphQLClient = () => {
|
|
|
258
259
|
//#endregion
|
|
259
260
|
exports.GraphQLProvider = GraphQLProvider;
|
|
260
261
|
exports.useGraphQLClient = useGraphQLClient;
|
|
261
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuY2pzIiwibmFtZXMiOlsiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwiUGFnZVZhcmlhbnRUZXN0VHlwZSIsIkZsb2F0aW5nQnV0dG9uTG9jYXRpb24iLCJvcmdMZXZlbEFwaUtleUF0b20iLCJiYXNlVXJsQXRvbSIsInZhbGlkYXRlR3JhcGhRTE9yZ0lkIiwiZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5IiwiZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIiwibW9ja1YzQ29sb3JzQ29uZmlnIiwibW9ja1YzRnJvbnRlbmRDb25maWciLCJDb25maWdWZXJzaW9uRW51bSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGJhc2VVcmxBdG9tLCBvcmdMZXZlbEFwaUtleUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnknO1xuaW1wb3J0IHsgdmFsaWRhdGVHcmFwaFFMT3JnSWQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMT3JnSWQnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICcuL21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmltcG9ydCB7XG4gIE9yZ1BhZ2VDb25maWcsXG4gIFBhZ2VWYXJpYW50Q29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRNb3VudGluZ0NvbmZpZyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmc+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZz47XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcblxuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgY29sb3JzQ29uZmlnPzogQ29sb3JzQ29uZmlnUmVzcG9uc2UgfCBDb2xvcnNDb25maWdWM1Jlc3BvbnNlO1xuICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGdldE9yZ0lkOiAoKSA9PiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBnZXRWM0NvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uID0+IHtcbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uTUlERExFX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLXJpZ2h0Jykge1xuICAgIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9SSUdIVDtcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX1JJR0hUO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICAgICAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICAgICAgY29uc3QgdjNGcm9udGVuZENvbmZpZyA9IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwKFxuICAgICAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICApO1xuXG4gICAgICAvLyBHZXQgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzIGZyb20gZnJvbnRlbmQudmFsdWVzIGlmIHYzUm9vdENvbmZpZyBpcyBub3QgYXZhaWxhYmxlXG4gICAgICBjb25zdCBmcm9udGVuZE1lcmNoYW50T3ZlcnJpZGVDc3MgPSBmcm9udGVuZFZhbHVlcz8ubWVyY2hhbnRfb3ZlcnJpZGVfY3NzO1xuICAgICAgY29uc3QgdjNNZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3M7XG4gICAgICBjb25zdCBtZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNNZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kTWVyY2hhbnRPdmVycmlkZUNzcztcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgICAgICBbXSkgYXMgdW5rbm93biBhcyB7IGtleTogc3RyaW5nOyBjb25maWc6IFdpZGdldE1vdW50aW5nQ29uZmlnIH1bXTtcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3MgPSB2M01vdW50aW5nQ29uZmlnc0FycmF5LnJlZHVjZShcbiAgICAgICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2M3dpZGdldENvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy53aWRnZXRfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgICAgIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgdjN3aWRnZXRDb25maWdzQXJyYXk/Lm1hcCgoeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9OiBXaWRnZXRDb25maWdWMykgPT4gW1xuICAgICAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICAgICAgXSksXG4gICAgICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcbiAgICAgIGNvbnN0IHYzcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gQXJyYXkuaXNBcnJheSh2M1Jvb3RDb25maWc/LnBhZ2VfdmFyaWFudHMpXG4gICAgICAgID8gdjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzLm1hcCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cylcbiAgICAgICAgOiBERUZBVUxUX1BBR0VfVkFSSUFOVFM7XG5cbiAgICAgIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuICAgICAgY29uc3QgaXNTdG9yeWJvb2sgPSB3aW5kb3cudG9wPy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCc/cGF0aD0nKTtcblxuICAgICAgLy8gSWYgdGhlIHYzIHJvb3QgY29uZmlnIGlzIG5vdCBmb3VuZCBhbmQgd2UgYXJlIGNvbmZpZ3VyZWQgdG8gcmV0dXJuIHRoZSBkZXByZWNhdGVkIGNvbmZpZywgd2Ugd2lsbCByZXR1cm4gdGhlIG1vY2tlZCBjb25maWdcbiAgICAgIGlmICgoIXYzUm9vdENvbmZpZyAmJiBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcpIHx8IChpc1N0b3J5Ym9vayAmJiBpc1NlbWFudGljQ29sb3JzKSkge1xuICAgICAgICBMb2dnZXIubG9nSW5mbygnR3JhcGhRTENvbnRleHQgfCBSZXR1cm5pbmcgbW9jayB2MyBjb25maWcnLCB7XG4gICAgICAgICAgY29sb3JzQ29uZmlnOiBtb2NrVjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgICBmcm9udGVuZENvbmZpZzogbW9ja1YzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgICBjb25zdCBmcm9udGVuZENvbmZpZyA9IG1vY2tWM0Zyb250ZW5kQ29uZmlnO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogaXNTZW1hbnRpY0NvbG9yc1xuICAgICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgICA6ICh2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICAgIHBhZ2VWYXJpYW50czogW10sXG4gICAgICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgTG9nZ2VyLmxvZ0luZm8oJ0dyYXBoUUxDb250ZXh0IHwgUmV0dXJuaW5nIHYzIGNvbmZpZycsIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogdjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgZnJvbnRlbmRDb25maWc6IHtcbiAgICAgICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICAgIG1lcmNoYW50T3ZlcnJpZGVDc3MsXG4gICAgICAgICAgLy8gTmVlZCB0byByZXBsYWNlIHRoZSBhdXRvbWF0aWMgd2lkZ2V0IGNvbmZpZ3Mgd2l0aCB0aGUgb2JqZWN0IGJhc2VkIG9uZXNcbiAgICAgICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgICAvLyBUT0RPOiBBZGQgd2lkZ2V0cyBhbmQgb3RoZXIgY29uZmlnIGhlcmVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoJ0Vycm9yIGZldGNoaW5nIGdyYXBocWwgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH0sIFtleGVjdXRlUXVlcnksIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ10pO1xuXG4gIGNvbnN0IGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGdldENvbG9yc0FuZEZyb250ZW5kUXVlcnkoKTtcbiAgICAgIGlmICghcXVlcnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZyBxdWVyeSBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkocXVlcnkpO1xuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8udmVyc2lvbiAhPT0gQ29uZmlnVmVyc2lvbkVudW0uVjMgJiZcbiAgICAgICAgIW1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb2xvcnNDb25maWcpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEZyb250ZW5kQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGZyb250ZW5kQ29uZmlnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IHRyYW5zZm9ybWVkQ29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IFJFTU9WRSBNT0NLRUQgQ09ORklHIE9OQ0UgV0UgSEFWRSBUSEUgTkVXIENPTkZJRyBJTVBMRU1FTlRFRCBPTiBCQUNLRU5EXG4gICAgICBjb25zdCBtZXJjaGFudENvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkTWVyY2hhbnRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChtZXJjaGFudENvbG9yc0NvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGlzU2VtYW50aWNDb2xvcnMgPSAhd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2dsb2JhbHM9bWVyY2hhbnQnKTtcblxuICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiBpc1NlbWFudGljQ29sb3JzXG4gICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgOiAodHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIExvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeV0pO1xuXG4gIGNvbnN0IGdldENvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICBpZiAocmVxdWVzdFYzQ29uZmlnKSB7XG4gICAgICBMb2dnZXIubG9nSW5mbygnR3JhcGhRTENvbnRleHQgfCBHZXR0aW5nIHYzIGNvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgICByZXR1cm4gZ2V0VjNDb25maWcoKTtcbiAgICB9XG4gICAgTG9nZ2VyLmxvZ0luZm8oJ0dyYXBoUUxDb250ZXh0IHwgR2V0dGluZyBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgcmV0dXJuIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnKCk7XG4gIH0sIFtnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZywgZ2V0VjNDb25maWcsIHJlcXVlc3RWM0NvbmZpZ10pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZXhlY3V0ZVF1ZXJ5LFxuICAgICAgZ2V0T3JnSWQsXG4gICAgICBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZyxcbiAgICAgIGdldFYzQ29uZmlnLFxuICAgICAgZ2V0Q29uZmlnLFxuICAgICAgaXNSZWFkeSxcbiAgICB9KSxcbiAgICBbZXhlY3V0ZVF1ZXJ5LCBnZXRPcmdJZCwgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCBnZXRDb25maWcsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiA8R3JhcGhRTENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9HcmFwaFFMQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlR3JhcGhRTENsaWVudCA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR3JhcGhRTENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUdyYXBoUUxDbGllbnQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEdyYXBoUUxQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0NBLE1BQU0sMENBQTJELEtBQUs7QUFRdEUsTUFBTUEsd0JBQTZDLENBQ2pEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUNaLEVBQ0UsVUFBVUMsMkNBQW9CLGFBQy9CLENBQ0Y7Q0FDRixFQUNEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixvQkFBb0I7Q0FDcEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUNaLEVBQ0UsVUFBVUEsMkNBQW9CLGFBQy9CLENBQ0Y7Q0FDRixDQUNGO0FBRUQsTUFBTSwwQkFBMEIsYUFBNkM7QUFDM0UsS0FBSSxhQUFhLGNBQ2YsUUFBT0MsbUVBQXVCO0FBRWhDLEtBQUksYUFBYSxjQUNmLFFBQU9BLG1FQUF1QjtBQUVoQyxLQUFJLGFBQWEsZUFDZixRQUFPQSxtRUFBdUI7QUFFaEMsS0FBSSxhQUFhLGVBQ2YsUUFBT0EsbUVBQXVCO0FBRWhDLE9BQU0sSUFBSSxNQUFNLHFCQUFxQixXQUFXOzs7OztBQU1sRCxNQUFNLDJCQUNKLGlCQUM2QjtDQUM3QixNQUFNLEVBQUUsY0FBYztBQUN0QixLQUFJLENBQUMsVUFDSCxRQUFPO0NBRVQsTUFBTSxFQUFFLGdCQUFnQixnQkFBZ0I7QUFDeEMsS0FBSSxDQUFDLGtCQUFrQixDQUFDLFlBQ3RC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
|
|
262
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwiUGFnZVZhcmlhbnRUZXN0VHlwZSIsIkZsb2F0aW5nQnV0dG9uTG9jYXRpb24iLCJvcmdMZXZlbEFwaUtleUF0b20iLCJiYXNlVXJsQXRvbSIsInZhbGlkYXRlR3JhcGhRTE9yZ0lkIiwiZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5IiwiZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIiwibW9ja1YzQ29sb3JzQ29uZmlnIiwibW9ja1YzRnJvbnRlbmRDb25maWciLCJDb25maWdWZXJzaW9uRW51bSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGJhc2VVcmxBdG9tLCBvcmdMZXZlbEFwaUtleUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnknO1xuaW1wb3J0IHsgdmFsaWRhdGVHcmFwaFFMT3JnSWQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMT3JnSWQnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICcuL21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmltcG9ydCB7XG4gIE9yZ1BhZ2VDb25maWcsXG4gIFBhZ2VWYXJpYW50Q29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRNb3VudGluZ0NvbmZpZyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmc+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZz47XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcblxuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgY29sb3JzQ29uZmlnPzogQ29sb3JzQ29uZmlnUmVzcG9uc2UgfCBDb2xvcnNDb25maWdWM1Jlc3BvbnNlO1xuICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGdldE9yZ0lkOiAoKSA9PiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBnZXRWM0NvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdncmFwaHFsQ29udGV4dCcpO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uID0+IHtcbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uTUlERExFX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLXJpZ2h0Jykge1xuICAgIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9SSUdIVDtcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX1JJR0hUO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICAgICAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICAgICAgY29uc3QgdjNGcm9udGVuZENvbmZpZyA9IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwKFxuICAgICAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICApO1xuXG4gICAgICAvLyBHZXQgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzIGZyb20gZnJvbnRlbmQudmFsdWVzIGlmIHYzUm9vdENvbmZpZyBpcyBub3QgYXZhaWxhYmxlXG4gICAgICBjb25zdCBmcm9udGVuZE1lcmNoYW50T3ZlcnJpZGVDc3MgPSBmcm9udGVuZFZhbHVlcz8ubWVyY2hhbnRfb3ZlcnJpZGVfY3NzO1xuICAgICAgY29uc3QgdjNNZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3M7XG4gICAgICBjb25zdCBtZXJjaGFudE92ZXJyaWRlQ3NzID0gdjNNZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kTWVyY2hhbnRPdmVycmlkZUNzcztcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgICAgICBbXSkgYXMgdW5rbm93biBhcyB7IGtleTogc3RyaW5nOyBjb25maWc6IFdpZGdldE1vdW50aW5nQ29uZmlnIH1bXTtcblxuICAgICAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3MgPSB2M01vdW50aW5nQ29uZmlnc0FycmF5LnJlZHVjZShcbiAgICAgICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2M3dpZGdldENvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy53aWRnZXRfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgICAgIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgdjN3aWRnZXRDb25maWdzQXJyYXk/Lm1hcCgoeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9OiBXaWRnZXRDb25maWdWMykgPT4gW1xuICAgICAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICAgICAgXSksXG4gICAgICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcbiAgICAgIGNvbnN0IHYzcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gQXJyYXkuaXNBcnJheSh2M1Jvb3RDb25maWc/LnBhZ2VfdmFyaWFudHMpXG4gICAgICAgID8gdjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzLm1hcCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cylcbiAgICAgICAgOiBERUZBVUxUX1BBR0VfVkFSSUFOVFM7XG5cbiAgICAgIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuICAgICAgY29uc3QgaXNTdG9yeWJvb2sgPSB3aW5kb3cudG9wPy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCc/cGF0aD0nKTtcblxuICAgICAgLy8gSWYgdGhlIHYzIHJvb3QgY29uZmlnIGlzIG5vdCBmb3VuZCBhbmQgd2UgYXJlIGNvbmZpZ3VyZWQgdG8gcmV0dXJuIHRoZSBkZXByZWNhdGVkIGNvbmZpZywgd2Ugd2lsbCByZXR1cm4gdGhlIG1vY2tlZCBjb25maWdcbiAgICAgIGlmICgoIXYzUm9vdENvbmZpZyAmJiBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcpIHx8IChpc1N0b3J5Ym9vayAmJiBpc1NlbWFudGljQ29sb3JzKSkge1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ0dyYXBoUUxDb250ZXh0IHwgUmV0dXJuaW5nIG1vY2sgdjMgY29uZmlnJywge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogbW9ja1YzQ29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IG1vY2tWM0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IG1vY2tWM0NvbG9yc0NvbmZpZztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICAgID8gKGNvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKVxuICAgICAgICAgICAgOiAodjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IGZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgICAgICBwYWdlVmFyaWFudHM6IFtdLFxuICAgICAgICAgICAgd2lkZ2V0Q29uZmlnczoge30sXG4gICAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnR3JhcGhRTENvbnRleHQgfCBSZXR1cm5pbmcgdjMgY29uZmlnJywge1xuICAgICAgICBjb2xvcnNDb25maWc6IHYzQ29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgIGZyb250ZW5kQ29uZmlnOiB2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgICAgIG1vdW50aW5nQ29uZmlnczogdjNNb3VudGluZ0NvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgICAgIC4uLih2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgICAgICAvLyBOZWVkIHRvIHJlcGxhY2UgdGhlIGF1dG9tYXRpYyB3aWRnZXQgY29uZmlncyB3aXRoIHRoZSBvYmplY3QgYmFzZWQgb25lc1xuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgfSxcbiAgICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgICAgIG1vdW50aW5nQ29uZmlnczogdjNNb3VudGluZ0NvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRPRE86IEFkZCB3aWRnZXRzIGFuZCBvdGhlciBjb25maWcgaGVyZVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeSwgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnXSk7XG5cbiAgY29uc3QgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcgPSB1c2VDYWxsYmFjayhhc3luYyAoKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gYXdhaXQgZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSgpO1xuICAgICAgaWYgKCFxdWVyeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnIHF1ZXJ5IGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGV4ZWN1dGVRdWVyeShxdWVyeSk7XG4gICAgICBpZiAoXG4gICAgICAgIHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52ZXJzaW9uICE9PSBDb25maWdWZXJzaW9uRW51bS5WMyAmJlxuICAgICAgICAhbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gcmVzcG9uc2UubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/LmNvbG9ycz8udmFsdWVzO1xuICAgICAgICBjb25zdCBmcm9udGVuZENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5mcm9udGVuZD8udmFsdWVzO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZENvbG9yQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGNvbG9yc0NvbmZpZyk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwoZnJvbnRlbmRDb25maWcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogdHJhbnNmb3JtZWRDb2xvckNvbmZpZyBhcyBDb2xvcnNDb25maWdSZXNwb25zZSxcbiAgICAgICAgICBmcm9udGVuZENvbmZpZzogdHJhbnNmb3JtZWRGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1Jlc3BvbnNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgLy8gVE9ETzogUkVNT1ZFIE1PQ0tFRCBDT05GSUcgT05DRSBXRSBIQVZFIFRIRSBORVcgQ09ORklHIElNUExFTUVOVEVEIE9OIEJBQ0tFTkRcbiAgICAgIGNvbnN0IG1lcmNoYW50Q29sb3JzQ29uZmlnID0gcmVzcG9uc2UubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/LmNvbG9ycz8udmFsdWVzO1xuICAgICAgY29uc3QgdHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKG1lcmNoYW50Q29sb3JzQ29uZmlnKTtcblxuICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuXG4gICAgICBjb25zdCBjb2xvcnNDb25maWcgPSBtb2NrVjNDb2xvcnNDb25maWc7XG4gICAgICBjb25zdCBmcm9udGVuZENvbmZpZyA9IG1vY2tWM0Zyb250ZW5kQ29uZmlnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICA/IChjb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSlcbiAgICAgICAgICA6ICh0cmFuc2Zvcm1lZE1lcmNoYW50Q29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgIGZyb250ZW5kQ29uZmlnOiBmcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdFcnJvciBmZXRjaGluZyBncmFwaHFsIGNvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnJywgZXJyKTtcbiAgICAgIHJldHVybiB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkIH07XG4gICAgfVxuICB9LCBbZXhlY3V0ZVF1ZXJ5XSk7XG5cbiAgY29uc3QgZ2V0Q29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIGlmIChyZXF1ZXN0VjNDb25maWcpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnR3JhcGhRTENvbnRleHQgfCBHZXR0aW5nIHYzIGNvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgICByZXR1cm4gZ2V0VjNDb25maWcoKTtcbiAgICB9XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdHcmFwaFFMQ29udGV4dCB8IEdldHRpbmcgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCByZXF1ZXN0VjNDb25maWcpO1xuICAgIHJldHVybiBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuICB9LCBbZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCByZXF1ZXN0VjNDb25maWddKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGV4ZWN1dGVRdWVyeSxcbiAgICAgIGdldE9yZ0lkLFxuICAgICAgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsXG4gICAgICBnZXRWM0NvbmZpZyxcbiAgICAgIGdldENvbmZpZyxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2V4ZWN1dGVRdWVyeSwgZ2V0T3JnSWQsIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgZ2V0Q29uZmlnLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPEdyYXBoUUxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvR3JhcGhRTENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyYXBoUUxDbGllbnQgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdyYXBoUUxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHcmFwaFFMQ2xpZW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHcmFwaFFMUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSxNQUFNLDBDQUEyRCxLQUFLO0FBRXRFLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxpQkFBaUI7QUFRM0MsTUFBTUMsd0JBQTZDLENBQ2pEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUNaLEVBQ0UsVUFBVUMsMkNBQW9CLGFBQy9CLENBQ0Y7Q0FDRixFQUNEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixvQkFBb0I7Q0FDcEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUNaLEVBQ0UsVUFBVUEsMkNBQW9CLGFBQy9CLENBQ0Y7Q0FDRixDQUNGO0FBRUQsTUFBTSwwQkFBMEIsYUFBNkM7QUFDM0UsS0FBSSxhQUFhLGNBQ2YsUUFBT0MsbUVBQXVCO0FBRWhDLEtBQUksYUFBYSxjQUNmLFFBQU9BLG1FQUF1QjtBQUVoQyxLQUFJLGFBQWEsZUFDZixRQUFPQSxtRUFBdUI7QUFFaEMsS0FBSSxhQUFhLGVBQ2YsUUFBT0EsbUVBQXVCO0FBRWhDLE9BQU0sSUFBSSxNQUFNLHFCQUFxQixXQUFXOzs7OztBQU1sRCxNQUFNLDJCQUNKLGlCQUM2QjtDQUM3QixNQUFNLEVB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
|