@envive-ai/react-hooks 0.3.45 → 0.3.47
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 +73 -3
- package/dist/application/commerce-api.d.cts +16 -1
- package/dist/application/commerce-api.d.ts +16 -1
- package/dist/application/commerce-api.js +73 -3
- package/dist/application/models/api/userEvent.d.cts +9 -2
- package/dist/application/models/api/userEvent.d.ts +9 -2
- package/dist/application/models/api/widgetText.d.cts +2 -1
- package/dist/application/models/api/widgetText.d.ts +2 -1
- package/dist/application/models/featureGates.cjs +2 -1
- package/dist/application/models/featureGates.d.cts +2 -1
- package/dist/application/models/featureGates.d.ts +2 -1
- package/dist/application/models/featureGates.js +2 -1
- package/dist/application/models/graphql/queries/getProductOptionsQuery.cjs +33 -0
- package/dist/application/models/graphql/queries/getProductOptionsQuery.d.cts +28 -0
- package/dist/application/models/graphql/queries/getProductOptionsQuery.d.ts +28 -0
- package/dist/application/models/graphql/queries/getProductOptionsQuery.js +32 -0
- package/dist/application/models/index.cjs +1 -1
- package/dist/application/models/index.js +1 -1
- package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +1 -1
- package/dist/application/models/validators/validateGraphQLFrontendConfig.js +1 -1
- package/dist/application/models/validators/validateResponse.cjs +2 -1
- package/dist/application/models/validators/validateResponse.js +2 -1
- package/dist/application/models/validators/validateUserEvent.cjs +3 -3
- package/dist/application/models/validators/validateUserEvent.js +3 -3
- package/dist/application/utils/elementObserver.d.cts +2 -2
- package/dist/application/utils/elementObserver.d.ts +2 -2
- package/dist/application/utils/index.cjs +2 -0
- package/dist/application/utils/index.d.cts +2 -1
- package/dist/application/utils/index.d.ts +2 -1
- package/dist/application/utils/index.js +2 -1
- package/dist/application/utils/messageFromAddToCartEvent.cjs +32 -0
- package/dist/application/utils/messageFromAddToCartEvent.d.cts +19 -0
- package/dist/application/utils/messageFromAddToCartEvent.d.ts +19 -0
- package/dist/application/utils/messageFromAddToCartEvent.js +31 -0
- package/dist/application/utils/widgetTextFromApiWidgetTextResponse.cjs +3 -2
- package/dist/application/utils/widgetTextFromApiWidgetTextResponse.js +3 -2
- package/dist/atoms/app/index.cjs +1 -1
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/index.js +1 -1
- package/dist/atoms/app/variant.cjs +2 -2
- package/dist/atoms/app/variant.d.cts +7 -7
- package/dist/atoms/app/variant.d.ts +7 -7
- package/dist/atoms/app/variant.js +2 -2
- package/dist/atoms/chat/chatState.d.cts +19 -19
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +1 -1
- package/dist/atoms/chat/index.d.cts +2 -2
- package/dist/atoms/chat/index.d.ts +2 -2
- package/dist/atoms/chat/index.js +1 -1
- 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.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- 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 +3 -3
- package/dist/atoms/chat/replies.d.ts +2 -2
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.cjs +7 -4
- package/dist/atoms/envive/enviveConfig.d.cts +16 -14
- package/dist/atoms/envive/enviveConfig.d.ts +16 -14
- package/dist/atoms/envive/enviveConfig.js +6 -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.cjs +1 -1
- package/dist/atoms/org/graphqlConfig.d.cts +6 -6
- package/dist/atoms/org/graphqlConfig.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.js +1 -1
- package/dist/atoms/org/index.cjs +1 -1
- package/dist/atoms/org/index.js +1 -1
- 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 +4 -4
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
- package/dist/atoms/search/chatSearch.cjs +1 -1
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/chatSearch.js +1 -1
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +6 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +3 -1
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +3 -1
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +6 -4
- package/dist/contexts/enviveContext/enviveContext.cjs +7 -3
- package/dist/contexts/enviveContext/enviveContext.d.cts +5 -1
- package/dist/contexts/enviveContext/enviveContext.d.ts +5 -1
- package/dist/contexts/enviveContext/enviveContext.js +7 -3
- package/dist/contexts/enviveContext/types.d.cts +1 -1
- package/dist/contexts/enviveContext/types.d.ts +1 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +2 -97
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +3 -25
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +3 -25
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +3 -97
- package/dist/contexts/featureFlagServiceContext/index.cjs +2 -1
- package/dist/contexts/featureFlagServiceContext/index.d.cts +2 -1
- package/dist/contexts/featureFlagServiceContext/index.d.ts +2 -1
- package/dist/contexts/featureFlagServiceContext/index.js +2 -1
- package/dist/contexts/graphqlContext/mockV3Config.cjs +1 -1
- package/dist/contexts/graphqlContext/mockV3Config.js +1 -1
- package/dist/contexts/localStorageContext/index.cjs +2 -1
- package/dist/contexts/localStorageContext/index.d.cts +2 -1
- package/dist/contexts/localStorageContext/index.d.ts +2 -1
- package/dist/contexts/localStorageContext/index.js +2 -1
- package/dist/contexts/localStorageContext/localStorageContext.cjs +5 -11
- package/dist/contexts/localStorageContext/localStorageContext.d.cts +3 -7
- package/dist/contexts/localStorageContext/localStorageContext.d.ts +3 -7
- package/dist/contexts/localStorageContext/localStorageContext.js +3 -8
- package/dist/contexts/localStorageContext/localStorageKeys.cjs +12 -0
- package/dist/contexts/localStorageContext/localStorageKeys.d.cts +9 -0
- package/dist/contexts/localStorageContext/localStorageKeys.d.ts +9 -0
- package/dist/contexts/localStorageContext/localStorageKeys.js +11 -0
- package/dist/contexts/pageContext/pageContext.cjs +2 -2
- package/dist/contexts/pageContext/pageContext.js +2 -2
- package/dist/contexts/salesAgentContext/chatAPI.cjs +15 -4
- package/dist/contexts/salesAgentContext/chatAPI.d.cts +4 -1
- package/dist/contexts/salesAgentContext/chatAPI.d.ts +4 -1
- package/dist/contexts/salesAgentContext/chatAPI.js +16 -5
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +15 -4
- package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +2 -1
- package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +2 -1
- package/dist/contexts/salesAgentContext/salesAgentContext.js +16 -5
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +12 -4
- package/dist/contexts/salesAgentContext/salesAgentService.js +12 -4
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
- package/dist/contexts/types.cjs +1 -1
- package/dist/contexts/types.d.cts +3 -1
- package/dist/contexts/types.d.ts +3 -1
- package/dist/contexts/types.js +1 -1
- package/dist/contexts/typesV3.cjs +1 -1
- package/dist/contexts/typesV3.d.cts +11 -2
- package/dist/contexts/typesV3.d.ts +12 -3
- package/dist/contexts/typesV3.js +1 -1
- package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +1 -1
- package/dist/contexts/widgetConfigContext/widgetConfigContext.js +1 -1
- package/dist/hooks/AddToCart/addToCartErrorMessage.cjs +7 -0
- package/dist/hooks/AddToCart/addToCartErrorMessage.d.cts +5 -0
- package/dist/hooks/AddToCart/addToCartErrorMessage.d.ts +5 -0
- package/dist/hooks/AddToCart/addToCartErrorMessage.js +6 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.cjs +20 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.d.cts +17 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.d.ts +17 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.js +19 -0
- package/dist/hooks/AddToCart/index.cjs +9 -0
- package/dist/hooks/AddToCart/index.d.cts +5 -0
- package/dist/hooks/AddToCart/index.d.ts +5 -0
- package/dist/hooks/AddToCart/index.js +6 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.cjs +27 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.d.cts +13 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.d.ts +13 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.js +27 -0
- package/dist/hooks/AddToCart/useAddToCart.cjs +24 -0
- package/dist/hooks/AddToCart/useAddToCart.d.cts +14 -0
- package/dist/hooks/AddToCart/useAddToCart.d.ts +14 -0
- package/dist/hooks/AddToCart/useAddToCart.js +23 -0
- package/dist/hooks/ChatToggle/useChatToggle.cjs +1 -1
- package/dist/hooks/ChatToggle/useChatToggle.js +1 -1
- package/dist/hooks/LocalStorageOperations/useLocalStorageOperations.cjs +6 -5
- package/dist/hooks/LocalStorageOperations/useLocalStorageOperations.js +3 -2
- package/dist/hooks/PageViewedEvent/usePageViewedEvent.cjs +6 -3
- package/dist/hooks/PageViewedEvent/usePageViewedEvent.js +6 -3
- package/dist/hooks/ProductDetails/index.cjs +9 -0
- package/dist/hooks/ProductDetails/index.d.cts +4 -0
- package/dist/hooks/ProductDetails/index.d.ts +4 -0
- package/dist/hooks/ProductDetails/index.js +4 -0
- package/dist/hooks/ProductDetails/useProductDetails.cjs +53 -0
- package/dist/hooks/ProductDetails/useProductDetails.d.cts +20 -0
- package/dist/hooks/ProductDetails/useProductDetails.d.ts +20 -0
- package/dist/hooks/ProductDetails/useProductDetails.js +52 -0
- package/dist/hooks/ProductDetails/variantSelection.cjs +42 -0
- package/dist/hooks/ProductDetails/variantSelection.d.cts +35 -0
- package/dist/hooks/ProductDetails/variantSelection.d.ts +35 -0
- package/dist/hooks/ProductDetails/variantSelection.js +38 -0
- package/dist/hooks/Search/useSearch.cjs +3 -3
- package/dist/hooks/Search/useSearch.d.cts +1 -1
- package/dist/hooks/Search/useSearch.d.ts +1 -1
- package/dist/hooks/Search/useSearch.js +3 -3
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +11 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +1 -10
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +1 -10
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +11 -2
- package/dist/hooks/WidgetInteraction/types.cjs +13 -3
- package/dist/hooks/WidgetInteraction/types.d.cts +29 -4
- package/dist/hooks/WidgetInteraction/types.d.ts +29 -4
- package/dist/hooks/WidgetInteraction/types.js +13 -3
- package/dist/hooks/WidgetInteraction/utils.cjs +2 -2
- package/dist/hooks/WidgetInteraction/utils.js +2 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/amplitudeService.cjs +18 -11
- package/dist/services/amplitudeService/amplitudeService.d.cts +5 -2
- package/dist/services/amplitudeService/amplitudeService.d.ts +5 -2
- package/dist/services/amplitudeService/amplitudeService.js +16 -8
- package/dist/services/enviveConfigService/enviveConfigService.cjs +36 -4
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +4 -1
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +4 -1
- package/dist/services/enviveConfigService/enviveConfigService.js +35 -3
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +9 -8
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +9 -7
- package/dist/services/featureFlagService/index.cjs +101 -0
- package/dist/services/featureFlagService/index.d.cts +28 -0
- package/dist/services/featureFlagService/index.d.ts +28 -0
- package/dist/services/featureFlagService/index.js +101 -0
- package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +8 -2
- package/dist/services/ga4ProjectionService/ga4EventSchema.js +8 -2
- package/dist/services/hardcopyService/hardcopyService.cjs +4 -3
- package/dist/services/hardcopyService/hardcopyService.d.cts +1 -1
- package/dist/services/hardcopyService/hardcopyService.d.ts +1 -1
- package/dist/services/hardcopyService/hardcopyService.js +4 -3
- package/dist/services/urlResolverWarmupService/index.cjs +54 -0
- package/dist/services/urlResolverWarmupService/index.d.cts +40 -0
- package/dist/services/urlResolverWarmupService/index.d.ts +40 -0
- package/dist/services/urlResolverWarmupService/index.js +54 -0
- package/dist/types/enviveConfig.d.cts +6 -2
- package/dist/types/enviveConfig.d.ts +6 -2
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/package.json +18 -2
- package/src/application/__tests__/commerceApiAddToCartRehydration.test.ts +126 -0
- package/src/application/commerce-api.ts +142 -23
- package/src/application/models/api/userEvent.ts +8 -1
- package/src/application/models/api/widgetText.ts +3 -0
- package/src/application/models/featureGates.ts +5 -0
- package/src/application/models/graphql/queries/getProductOptionsQuery.ts +59 -0
- package/src/application/models/validators/__tests__/validateUserEvent.test.ts +41 -0
- package/src/application/models/validators/validateResponse.ts +1 -0
- package/src/application/models/validators/validateUserEvent.ts +7 -2
- package/src/application/utils/__tests__/messageFromAddToCartEvent.test.ts +109 -0
- package/src/application/utils/index.ts +1 -0
- package/src/application/utils/messageFromAddToCartEvent.ts +32 -0
- package/src/application/utils/widgetTextFromApiWidgetTextResponse.ts +1 -0
- package/src/atoms/app/index.ts +1 -1
- package/src/atoms/app/variant.ts +1 -1
- package/src/atoms/envive/enviveConfig.ts +6 -1
- package/src/atoms/org/graphqlConfig.ts +1 -1
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +5 -0
- package/src/contexts/enviveContext/enviveContext.tsx +10 -0
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +6 -173
- package/src/contexts/localStorageContext/localStorageContext.tsx +2 -5
- package/src/contexts/localStorageContext/localStorageKeys.ts +8 -0
- package/src/contexts/pageContext/pageContext.tsx +1 -1
- package/src/contexts/salesAgentContext/__tests__/chatAPI.test.tsx +63 -0
- package/src/contexts/salesAgentContext/chatAPI.ts +20 -1
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +17 -0
- package/src/contexts/salesAgentContext/salesAgentService.ts +12 -3
- package/src/contexts/types.ts +2 -0
- package/src/contexts/typesV3.ts +14 -0
- package/src/hooks/AddToCart/__tests__/parseAddToCartFunction.test.ts +31 -0
- package/src/hooks/AddToCart/__tests__/useAddToCart.test.tsx +204 -0
- package/src/hooks/AddToCart/addToCartErrorMessage.ts +2 -0
- package/src/hooks/AddToCart/createAddToCartUserEvent.ts +25 -0
- package/src/hooks/AddToCart/index.ts +4 -0
- package/src/hooks/AddToCart/parseAddToCartFunction.ts +31 -0
- package/src/hooks/AddToCart/useAddToCart.ts +35 -0
- package/src/hooks/PageViewedEvent/__tests__/usePageViewedEvent.test.ts +4 -4
- package/src/hooks/PageViewedEvent/usePageViewedEvent.ts +5 -1
- package/src/hooks/ProductDetails/__tests__/useProductDetails.test.tsx +129 -0
- package/src/hooks/ProductDetails/__tests__/variantSelection.test.ts +145 -0
- package/src/hooks/ProductDetails/index.ts +2 -0
- package/src/hooks/ProductDetails/useProductDetails.ts +62 -0
- package/src/hooks/ProductDetails/variantSelection.ts +61 -0
- package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +15 -0
- package/src/hooks/WidgetInteraction/types.ts +43 -2
- package/src/hooks/WidgetInteraction/utils.ts +1 -1
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +8 -8
- package/src/services/amplitudeService/amplitudeService.ts +43 -23
- package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +208 -0
- package/src/services/enviveConfigService/enviveConfigService.ts +62 -2
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +17 -6
- package/src/services/featureFlagService/index.ts +176 -0
- package/src/services/ga4ProjectionService/__tests__/ga4ProjectionService.test.ts +36 -0
- package/src/services/ga4ProjectionService/ga4EventSchema.ts +7 -0
- package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +47 -1
- package/src/services/hardcopyService/hardcopyService.ts +5 -0
- package/src/services/urlResolverWarmupService/__tests__/urlResolverWarmupService.test.ts +85 -0
- package/src/services/urlResolverWarmupService/index.ts +89 -0
- package/src/types/enviveConfig.ts +3 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const require_featureGates = require('../../application/models/featureGates.cjs');
|
|
2
|
-
const
|
|
3
|
-
require('
|
|
2
|
+
const require_config_versions = require('../../types/config-versions.cjs');
|
|
3
|
+
const require_services_featureFlagService_index = require('../featureFlagService/index.cjs');
|
|
4
4
|
const require_fetchGraphQLConfig = require('./fetchGraphQLConfig.cjs');
|
|
5
5
|
|
|
6
6
|
//#region src/services/enviveConfigService/enviveConfigService.ts
|
|
7
|
+
const CONFIG_CACHE_TTL_MS = 300 * 1e3;
|
|
7
8
|
var EnviveConfigService = class {
|
|
8
9
|
constructor({ baseUrl, apiKey, userId, namespace, source }) {
|
|
9
10
|
this.response = null;
|
|
@@ -13,8 +14,38 @@ var EnviveConfigService = class {
|
|
|
13
14
|
this.namespace = namespace;
|
|
14
15
|
this.source = source;
|
|
15
16
|
}
|
|
17
|
+
getCacheKey() {
|
|
18
|
+
return `envive-config-cache:${this.baseUrl}:${this.apiKey}:${this.userId}:${this.namespace}:${this.source}`;
|
|
19
|
+
}
|
|
20
|
+
readCachedConfig() {
|
|
21
|
+
if (require_config_versions.configVersionOverride()) return null;
|
|
22
|
+
try {
|
|
23
|
+
const raw = sessionStorage.getItem(this.getCacheKey());
|
|
24
|
+
if (!raw) return null;
|
|
25
|
+
const entry = JSON.parse(raw);
|
|
26
|
+
if (Date.now() >= entry.expiresAt) return null;
|
|
27
|
+
return entry.value;
|
|
28
|
+
} catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
writeCachedConfig(value) {
|
|
33
|
+
if (require_config_versions.configVersionOverride()) return;
|
|
34
|
+
try {
|
|
35
|
+
const entry = {
|
|
36
|
+
value,
|
|
37
|
+
expiresAt: Date.now() + CONFIG_CACHE_TTL_MS
|
|
38
|
+
};
|
|
39
|
+
sessionStorage.setItem(this.getCacheKey(), JSON.stringify(entry));
|
|
40
|
+
} catch {}
|
|
41
|
+
}
|
|
16
42
|
async getEnviveConfig() {
|
|
17
43
|
if (this.response !== null) return this.response;
|
|
44
|
+
const cached = this.readCachedConfig();
|
|
45
|
+
if (cached !== null) {
|
|
46
|
+
this.response = cached;
|
|
47
|
+
return this.response;
|
|
48
|
+
}
|
|
18
49
|
const queryParams = new URLSearchParams({
|
|
19
50
|
namespace: this.namespace,
|
|
20
51
|
source: this.source,
|
|
@@ -32,11 +63,12 @@ var EnviveConfigService = class {
|
|
|
32
63
|
if (!r.ok) throw new Error(`Org config request failed with status ${r.status}`);
|
|
33
64
|
return r.json();
|
|
34
65
|
});
|
|
35
|
-
const orgConfig = new
|
|
66
|
+
const orgConfig = new require_services_featureFlagService_index.FeatureFlagService(orgConfigResponse.gates ?? []).isFeatureGateEnabled(require_featureGates.FeatureGates.UseUnifiedConfig) ? await require_fetchGraphQLConfig.fetchUnifiedGraphQLConfig(this.baseUrl, this.apiKey, this.userId) : await require_fetchGraphQLConfig.fetchGraphQLConfig(this.baseUrl, this.apiKey);
|
|
36
67
|
this.response = {
|
|
37
68
|
...orgConfigResponse,
|
|
38
69
|
orgConfig
|
|
39
70
|
};
|
|
71
|
+
this.writeCachedConfig(this.response);
|
|
40
72
|
return this.response;
|
|
41
73
|
}
|
|
42
74
|
};
|
|
@@ -59,4 +91,4 @@ var MockEnviveConfigService = class {
|
|
|
59
91
|
//#endregion
|
|
60
92
|
exports.EnviveConfigService = EnviveConfigService;
|
|
61
93
|
exports.MockEnviveConfigService = MockEnviveConfigService;
|
|
62
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5janMiLCJuYW1lcyI6WyJGZWF0dXJlR2F0ZXMiLCJGZWF0dXJlRmxhZ1NlcnZpY2UiLCJmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIiwiZmV0Y2hHcmFwaFFMQ29uZmlnIiwibW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2Vudml2ZUNvbmZpZ1NlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0JztcbmltcG9ydCB7IGZldGNoR3JhcGhRTENvbmZpZywgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyB9IGZyb20gJy4vZmV0Y2hHcmFwaFFMQ29uZmlnJztcblxudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBFbnZpdmVTZXJ2aWNlQ29uZmlnID0ge1xuICBvcmc6IHtcbiAgICBvcmc6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gICAgICBkaXNwbGF5X25hbWU6IHN0cmluZztcbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gICAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgZ2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG4gIC8vIFBvcHVsYXRlZCBieSB0aGUgYmFja2VuZCB3aGVuIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYCBTdGF0c2lnIGdhdGVcbiAgLy8gZXZhbHVhdGVzIHRydWUuIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgdGhlc2UgdG8gZW5yaWNoIGV2ZW50cyB3aXRoXG4gIC8vIGBleHBlcmltZW50Lntuc30uKmAgcHJvcGVydGllcy5cbiAgZXhwZXJpbWVudF9hc3NpZ25tZW50cz86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W107XG4gIC8vIG9yZ0NvbmZpZy5yZXNvbHV0aW9uIGlzIHBvcHVsYXRlZCBvbmx5IG9uIHRoZSB1bmlmaWVkIHBhdGggKHNvdXJjZWQgZnJvbVxuICAvLyBnZXRXaWRnZXRDb25maWcucmVzb2x1dGlvbiwgbm90IC92MS9vcmcvY29uZmlnLnJlc29sdXRpb24pIHNvIHRoZSB2ZXJzaW9uXG4gIC8vIHRocmVhZGVkIGludG8gaW5mZXJlbmNlIHJlcXVlc3RzIG1hdGNoZXMgdGhlIHZlcnNpb24gdGhhdCBwcm9kdWNlZCB0aGVcbiAgLy8gcmVuZGVyZWQgd2lkZ2V0cy5cbiAgb3JnQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGNsYXNzIEVudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVzcG9uc2U6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcih7IGJhc2VVcmwsIGFwaUtleSwgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gYXBpS2V5O1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICB9XG5cbiAgYXN5bmMgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4ge1xuICAgIGlmICh0aGlzLnJlc3BvbnNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIG5hbWVzcGFjZTogdGhpcy5uYW1lc3BhY2UsXG4gICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgdXNlcl9pZDogdGhpcy51c2VySWQsXG4gICAgICBpbmNsdWRlX2V4cGVyaW1lbnRzOiAnZGVmYXVsdCcsXG4gICAgICBpbmNsdWRlX2ZlYXR1cmVfZ2F0ZXM6IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKVxuICAgICAgICAubWFwKGZlYXR1cmVHYXRlID0+IGZlYXR1cmVHYXRlLnRvU3RyaW5nKCkpXG4gICAgICAgIC5qb2luKCcsJyksXG4gICAgfSk7XG4gICAgLy8gU2VyaWFsaXplZCBzbyB3ZSBjYW4gYnJhbmNoIHRoZSBHcmFwaFFMIGNhbGwgb24gdGhlIGB1c2VfdW5pZmllZF9jb25maWdgXG4gICAgLy8gZ2F0ZSByZXR1cm5lZCBieSAvdjEvb3JnL2NvbmZpZy4gT25jZSB0aGUgbWlncmF0aW9uIHRvIGdldFdpZGdldENvbmZpZ1xuICAgIC8vIGNvbXBsZXRlcyAob25lIGVuZHBvaW50IHJldHVybmluZyBnYXRlcyArIGV4cGVyaW1lbnRzICsgcHJvZHVjdHNDb25maWcpLFxuICAgIC8vIHRoaXMgY29sbGFwc2VzIGJhY2sgdG8gYSBzaW5nbGUgY2FsbC5cbiAgICBjb25zdCBvcmdDb25maWdSZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYCR7dGhpcy5iYXNlVXJsfS92MS9vcmcvY29uZmlnPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hcGlLZXl9YCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKS50aGVuKGFzeW5jIHIgPT4ge1xuICAgICAgaWYgKCFyLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgT3JnIGNvbmZpZyByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke3Iuc3RhdHVzfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHIuanNvbigpIGFzIFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG4gICAgfSk7XG5cbiAgICAvLyBIb25vciBVUkwgLyBgd2luZG93Ll9zcGlmZnlgIC8gbG9jYWxTdG9yYWdlIG92ZXJyaWRlcyBmb3JcbiAgICAvLyBgdXNlX3VuaWZpZWRfY29uZmlnYCB0aGUgc2FtZSB3YXkgZXZlcnkgb3RoZXIgZmVhdHVyZSBnYXRlIGlzIHJlYWQuXG4gICAgY29uc3QgdXNlVW5pZmllZENvbmZpZyA9IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2UoXG4gICAgICBvcmdDb25maWdSZXNwb25zZS5nYXRlcyA/PyBbXSxcbiAgICApLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Vc2VVbmlmaWVkQ29uZmlnKTtcbiAgICBjb25zdCBvcmdDb25maWcgPSB1c2VVbmlmaWVkQ29uZmlnXG4gICAgICA/IGF3YWl0IGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcodGhpcy5iYXNlVXJsLCB0aGlzLmFwaUtleSwgdGhpcy51c2VySWQpXG4gICAgICA6IGF3YWl0IGZldGNoR3JhcGhRTENvbmZpZyh0aGlzLmJhc2VVcmwsIHRoaXMuYXBpS2V5KTtcblxuICAgIHRoaXMucmVzcG9uc2UgPSB7IC4uLm9yZ0NvbmZpZ1Jlc3BvbnNlLCBvcmdDb25maWcgfTtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgc3RhdGljIG1vY2sgZGF0YSBmcm9tIGl0cyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuIFBhc3NlcyBlbXB0eSBiYXNlVXJsL2FwaUtleVxuICogc28gYW55IGNvZGUgY2hlY2tpbmcgaXNSZWFkeSBkb2VzIG5vdCBmaXJlIHJlYWwgbmV0d29yayByZXF1ZXN0cy4gVGhlIG9yZ0NvbmZpZyBmaWVsZFxuICogY292ZXJzIGNvbG9ycywgZnJvbnRlbmRDb25maWcsIGFuZCBwYWdlL3dpZGdldC9tb3VudGluZyBjb25maWdzIHdpdGhvdXQgYW55IG5ldHdvcmsgY2FsbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2NrRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZykge31cblxuICBhc3luYyBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMubW9ja0NvbmZpZztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUE0Q0EsSUFBYSxzQkFBYixNQUFpRTtDQWEvRCxZQUFZLEVBQUUsU0FBUyxRQUFRLFFBQVEsV0FBVyxVQUFvQztrQkFGdkM7QUFHN0MsT0FBSyxVQUFVO0FBQ2YsT0FBSyxTQUFTO0FBQ2QsT0FBSyxTQUFTO0FBQ2QsT0FBSyxZQUFZO0FBQ2pCLE9BQUssU0FBUzs7Q0FHaEIsTUFBTSxrQkFBZ0Q7QUFDcEQsTUFBSSxLQUFLLGFBQWEsS0FDcEIsUUFBTyxLQUFLO0VBRWQsTUFBTSxjQUFjLElBQUksZ0JBQWdCO0dBQ3RDLFdBQVcsS0FBSztHQUNoQixRQUFRLEtBQUs7R0FDYixTQUFTLEtBQUs7R0FDZCxxQkFBcUI7R0FDckIsdUJBQXVCLE9BQU8sT0FBT0Esa0NBQWEsQ0FDL0MsS0FBSSxnQkFBZSxZQUFZLFVBQVUsQ0FBQyxDQUMxQyxLQUFLLElBQUk7R0FDYixDQUFDO0VBS0YsTUFBTSxvQkFBb0IsTUFBTSxNQUM5QixHQUFHLEtBQUssUUFBUSxpQkFBaUIsWUFBWSxVQUFVLElBQ3ZEO0dBQ0UsUUFBUTtHQUNSLFNBQVM7SUFDUCxnQkFBZ0I7SUFDaEIsZUFBZSxVQUFVLEtBQUs7SUFDL0I7R0FDRixDQUNGLENBQUMsS0FBSyxPQUFNLE1BQUs7QUFDaEIsT0FBSSxDQUFDLEVBQUUsR0FDTCxPQUFNLElBQUksTUFBTSx5Q0FBeUMsRUFBRSxTQUFTO0FBRXRFLFVBQU8sRUFBRSxNQUFNO0lBQ2Y7RUFPRixNQUFNLFlBSG1CLElBQUlDLHFEQUMzQixrQkFBa0IsU0FBUyxFQUFFLENBQzlCLENBQUMscUJBQXFCRCxrQ0FBYSxpQkFBaUIsR0FFakQsTUFBTUUscURBQTBCLEtBQUssU0FBUyxLQUFLLFFBQVEsS0FBSyxPQUFPLEdBQ3ZFLE1BQU1DLDhDQUFtQixLQUFLLFNBQVMsS0FBSyxPQUFPO0FBRXZELE9BQUssV0FBVztHQUFFLEdBQUc7R0FBbUI7R0FBVztBQUNuRCxTQUFPLEtBQUs7Ozs7Ozs7O0FBU2hCLElBQWEsMEJBQWIsTUFBcUU7Q0FLbkUsWUFBWSxBQUFpQkMsWUFBaUM7RUFBakM7aUJBSks7Z0JBRUQ7O0NBSWpDLE1BQU0sa0JBQWdEO0FBQ3BELFNBQU8sS0FBSyJ9
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5janMiLCJuYW1lcyI6WyJjb25maWdWZXJzaW9uT3ZlcnJpZGUiLCJlbnRyeTogQ2FjaGVkQ29uZmlnRW50cnkiLCJGZWF0dXJlR2F0ZXMiLCJGZWF0dXJlRmxhZ1NlcnZpY2UiLCJmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIiwiZmV0Y2hHcmFwaFFMQ29uZmlnIiwibW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2Vudml2ZUNvbmZpZ1NlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZmVhdHVyZUZsYWdTZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7IGZldGNoR3JhcGhRTENvbmZpZywgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyB9IGZyb20gJy4vZmV0Y2hHcmFwaFFMQ29uZmlnJztcblxuLy8gU2hvcnQtbGl2ZWQgc28gY29uZmlnIGNoYW5nZXMgKGdhdGVzLCBleHBlcmltZW50cykgc3RpbGwgcHJvcGFnYXRlIHdpdGhpblxuLy8gYSBzZXNzaW9uLCB3aGlsZSBzcGFyaW5nIGV2ZXJ5IHBhZ2UgbmF2aWdhdGlvbiBmcm9tIHJlLWZldGNoaW5nIG9yZ1xuLy8gY29uZmlnICsgR3JhcGhRTCBjb25maWcsIGJvdGggb2Ygd2hpY2ggc2l0IG9uIHRoZSBjcml0aWNhbCBwYXRoIGJlZm9yZVxuLy8gZmlyc3QgcGFpbnQuXG5jb25zdCBDT05GSUdfQ0FDSEVfVFRMX01TID0gNSAqIDYwICogMTAwMDtcblxudHlwZSBDYWNoZWRDb25maWdFbnRyeSA9IHtcbiAgdmFsdWU6IEVudml2ZVNlcnZpY2VDb25maWc7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xufTtcblxudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBFbnZpdmVTZXJ2aWNlQ29uZmlnID0ge1xuICBvcmc6IHtcbiAgICBvcmc6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gICAgICBkaXNwbGF5X25hbWU6IHN0cmluZztcbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gICAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgZ2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG4gIC8vIFBvcHVsYXRlZCBieSB0aGUgYmFja2VuZCB3aGVuIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYCBTdGF0c2lnIGdhdGVcbiAgLy8gZXZhbHVhdGVzIHRydWUuIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgdGhlc2UgdG8gZW5yaWNoIGV2ZW50cyB3aXRoXG4gIC8vIGBleHBlcmltZW50Lntuc30uKmAgcHJvcGVydGllcy5cbiAgZXhwZXJpbWVudF9hc3NpZ25tZW50cz86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W107XG4gIC8vIG9yZ0NvbmZpZy5yZXNvbHV0aW9uIGlzIHBvcHVsYXRlZCBvbmx5IG9uIHRoZSB1bmlmaWVkIHBhdGggKHNvdXJjZWQgZnJvbVxuICAvLyBnZXRXaWRnZXRDb25maWcucmVzb2x1dGlvbiwgbm90IC92MS9vcmcvY29uZmlnLnJlc29sdXRpb24pIHNvIHRoZSB2ZXJzaW9uXG4gIC8vIHRocmVhZGVkIGludG8gaW5mZXJlbmNlIHJlcXVlc3RzIG1hdGNoZXMgdGhlIHZlcnNpb24gdGhhdCBwcm9kdWNlZCB0aGVcbiAgLy8gcmVuZGVyZWQgd2lkZ2V0cy5cbiAgb3JnQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGNsYXNzIEVudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVzcG9uc2U6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcih7IGJhc2VVcmwsIGFwaUtleSwgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gYXBpS2V5O1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWNoZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZW52aXZlLWNvbmZpZy1jYWNoZToke3RoaXMuYmFzZVVybH06JHt0aGlzLmFwaUtleX06JHt0aGlzLnVzZXJJZH06JHt0aGlzLm5hbWVzcGFjZX06JHt0aGlzLnNvdXJjZX1gO1xuICB9XG5cbiAgLy8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgLyBgc3BpZmZ5X2NvbmZpZ192ZXJzaW9uYCBwaW4gYSBzcGVjaWZpYyBjb25maWdcbiAgLy8gdmVyc2lvbiBmb3IgZGVidWdnaW5nL3JvbGxiYWNrLiBBbnkgdXNlIG9mIHRoYXQgb3ZlcnJpZGUgbXVzdCBhbHdheXNcbiAgLy8gYnlwYXNzIHRoZSBjYWNoZSBiZWxvdyDigJQgYm90aCByZWFkaW5nIGEgc3RhbGUgZW50cnkgYW5kIHdyaXRpbmcgb25lXG4gIC8vIHVuZGVyIHRoZSBzaGFyZWQga2V5IHdvdWxkIGRlZmVhdCB0aGUgb3ZlcnJpZGUncyBwdXJwb3NlLlxuICBwcml2YXRlIHJlYWRDYWNoZWRDb25maWcoKTogRW52aXZlU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmIChjb25maWdWZXJzaW9uT3ZlcnJpZGUoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXcgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0Q2FjaGVLZXkoKSk7XG4gICAgICBpZiAoIXJhdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVudHJ5ID0gSlNPTi5wYXJzZShyYXcpIGFzIENhY2hlZENvbmZpZ0VudHJ5O1xuICAgICAgaWYgKERhdGUubm93KCkgPj0gZW50cnkuZXhwaXJlc0F0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUNhY2hlZENvbmZpZyh2YWx1ZTogRW52aXZlU2VydmljZUNvbmZpZyk6IHZvaWQge1xuICAgIGlmIChjb25maWdWZXJzaW9uT3ZlcnJpZGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZW50cnk6IENhY2hlZENvbmZpZ0VudHJ5ID0geyB2YWx1ZSwgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQ09ORklHX0NBQ0hFX1RUTF9NUyB9O1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldENhY2hlS2V5KCksIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTdG9yYWdlIGRpc2FibGVkLCBmdWxsLCBvciB1bmF2YWlsYWJsZSAocHJpdmF0ZSBicm93c2luZywgZXRjLikgLVxuICAgICAgLy8gZmFpbCBvcGVuIGFuZCBsZXQgdGhlIG5leHQgY2FsbCByZS1mZXRjaCBpbnN0ZWFkIG9mIGNhY2hpbmcuXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4ge1xuICAgIGlmICh0aGlzLnJlc3BvbnNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnJlYWRDYWNoZWRDb25maWcoKTtcbiAgICBpZiAoY2FjaGVkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJlc3BvbnNlID0gY2FjaGVkO1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIG5hbWVzcGFjZTogdGhpcy5uYW1lc3BhY2UsXG4gICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgdXNlcl9pZDogdGhpcy51c2VySWQsXG4gICAgICBpbmNsdWRlX2V4cGVyaW1lbnRzOiAnZGVmYXVsdCcsXG4gICAgICBpbmNsdWRlX2ZlYXR1cmVfZ2F0ZXM6IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKVxuICAgICAgICAubWFwKGZlYXR1cmVHYXRlID0+IGZlYXR1cmVHYXRlLnRvU3RyaW5nKCkpXG4gICAgICAgIC5qb2luKCcsJyksXG4gICAgfSk7XG4gICAgLy8gU2VyaWFsaXplZCBzbyB3ZSBjYW4gYnJhbmNoIHRoZSBHcmFwaFFMIGNhbGwgb24gdGhlIGB1c2VfdW5pZmllZF9jb25maWdgXG4gICAgLy8gZ2F0ZSByZXR1cm5lZCBieSAvdjEvb3JnL2NvbmZpZy4gT25jZSB0aGUgbWlncmF0aW9uIHRvIGdldFdpZGdldENvbmZpZ1xuICAgIC8vIGNvbXBsZXRlcyAob25lIGVuZHBvaW50IHJldHVybmluZyBnYXRlcyArIGV4cGVyaW1lbnRzICsgcHJvZHVjdHNDb25maWcpLFxuICAgIC8vIHRoaXMgY29sbGFwc2VzIGJhY2sgdG8gYSBzaW5nbGUgY2FsbC5cbiAgICBjb25zdCBvcmdDb25maWdSZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYCR7dGhpcy5iYXNlVXJsfS92MS9vcmcvY29uZmlnPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hcGlLZXl9YCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKS50aGVuKGFzeW5jIHIgPT4ge1xuICAgICAgaWYgKCFyLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgT3JnIGNvbmZpZyByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke3Iuc3RhdHVzfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHIuanNvbigpIGFzIFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG4gICAgfSk7XG5cbiAgICAvLyBIb25vciBVUkwgLyBgd2luZG93Ll9zcGlmZnlgIC8gbG9jYWxTdG9yYWdlIG92ZXJyaWRlcyBmb3JcbiAgICAvLyBgdXNlX3VuaWZpZWRfY29uZmlnYCB0aGUgc2FtZSB3YXkgZXZlcnkgb3RoZXIgZmVhdHVyZSBnYXRlIGlzIHJlYWQuXG4gICAgY29uc3QgdXNlVW5pZmllZENvbmZpZyA9IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2UoXG4gICAgICBvcmdDb25maWdSZXNwb25zZS5nYXRlcyA/PyBbXSxcbiAgICApLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Vc2VVbmlmaWVkQ29uZmlnKTtcbiAgICBjb25zdCBvcmdDb25maWcgPSB1c2VVbmlmaWVkQ29uZmlnXG4gICAgICA/IGF3YWl0IGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcodGhpcy5iYXNlVXJsLCB0aGlzLmFwaUtleSwgdGhpcy51c2VySWQpXG4gICAgICA6IGF3YWl0IGZldGNoR3JhcGhRTENvbmZpZyh0aGlzLmJhc2VVcmwsIHRoaXMuYXBpS2V5KTtcblxuICAgIHRoaXMucmVzcG9uc2UgPSB7IC4uLm9yZ0NvbmZpZ1Jlc3BvbnNlLCBvcmdDb25maWcgfTtcbiAgICB0aGlzLndyaXRlQ2FjaGVkQ29uZmlnKHRoaXMucmVzcG9uc2UpO1xuICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBzdGF0aWMgbW9jayBkYXRhIGZyb20gaXRzIGNvbnN0cnVjdG9yIGFyZ3VtZW50cy4gUGFzc2VzIGVtcHR5IGJhc2VVcmwvYXBpS2V5XG4gKiBzbyBhbnkgY29kZSBjaGVja2luZyBpc1JlYWR5IGRvZXMgbm90IGZpcmUgcmVhbCBuZXR3b3JrIHJlcXVlc3RzLiBUaGUgb3JnQ29uZmlnIGZpZWxkXG4gKiBjb3ZlcnMgY29sb3JzLCBmcm9udGVuZENvbmZpZywgYW5kIHBhZ2Uvd2lkZ2V0L21vdW50aW5nIGNvbmZpZ3Mgd2l0aG91dCBhbnkgbmV0d29yayBjYWxscy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vY2tFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtb2NrQ29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnKSB7fVxuXG4gIGFzeW5jIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5tb2NrQ29uZmlnO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVdBLE1BQU0sc0JBQXNCLE1BQVM7QUE2Q3JDLElBQWEsc0JBQWIsTUFBaUU7Q0FhL0QsWUFBWSxFQUFFLFNBQVMsUUFBUSxRQUFRLFdBQVcsVUFBb0M7a0JBRnZDO0FBRzdDLE9BQUssVUFBVTtBQUNmLE9BQUssU0FBUztBQUNkLE9BQUssU0FBUztBQUNkLE9BQUssWUFBWTtBQUNqQixPQUFLLFNBQVM7O0NBR2hCLEFBQVEsY0FBc0I7QUFDNUIsU0FBTyx1QkFBdUIsS0FBSyxRQUFRLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxVQUFVLEdBQUcsS0FBSzs7Q0FPckcsQUFBUSxtQkFBK0M7QUFDckQsTUFBSUEsK0NBQXVCLENBQ3pCLFFBQU87QUFFVCxNQUFJO0dBQ0YsTUFBTSxNQUFNLGVBQWUsUUFBUSxLQUFLLGFBQWEsQ0FBQztBQUN0RCxPQUFJLENBQUMsSUFDSCxRQUFPO0dBRVQsTUFBTSxRQUFRLEtBQUssTUFBTSxJQUFJO0FBQzdCLE9BQUksS0FBSyxLQUFLLElBQUksTUFBTSxVQUN0QixRQUFPO0FBRVQsVUFBTyxNQUFNO1VBQ1A7QUFDTixVQUFPOzs7Q0FJWCxBQUFRLGtCQUFrQixPQUFrQztBQUMxRCxNQUFJQSwrQ0FBdUIsQ0FDekI7QUFFRixNQUFJO0dBQ0YsTUFBTUMsUUFBMkI7SUFBRTtJQUFPLFdBQVcsS0FBSyxLQUFLLEdBQUc7SUFBcUI7QUFDdkYsa0JBQWUsUUFBUSxLQUFLLGFBQWEsRUFBRSxLQUFLLFVBQVUsTUFBTSxDQUFDO1VBQzNEOztDQU1WLE1BQU0sa0JBQWdEO0FBQ3BELE1BQUksS0FBSyxhQUFhLEtBQ3BCLFFBQU8sS0FBSztFQUdkLE1BQU0sU0FBUyxLQUFLLGtCQUFrQjtBQUN0QyxNQUFJLFdBQVcsTUFBTTtBQUNuQixRQUFLLFdBQVc7QUFDaEIsVUFBTyxLQUFLOztFQUdkLE1BQU0sY0FBYyxJQUFJLGdCQUFnQjtHQUN0QyxXQUFXLEtBQUs7R0FDaEIsUUFBUSxLQUFLO0dBQ2IsU0FBUyxLQUFLO0dBQ2QscUJBQXFCO0dBQ3JCLHVCQUF1QixPQUFPLE9BQU9DLGtDQUFhLENBQy9DLEtBQUksZ0JBQWUsWUFBWSxVQUFVLENBQUMsQ0FDMUMsS0FBSyxJQUFJO0dBQ2IsQ0FBQztFQUtGLE1BQU0sb0JBQW9CLE1BQU0sTUFDOUIsR0FBRyxLQUFLLFFBQVEsaUJBQWlCLFlBQVksVUFBVSxJQUN2RDtHQUNFLFFBQVE7R0FDUixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLGVBQWUsVUFBVSxLQUFLO0lBQy9CO0dBQ0YsQ0FDRixDQUFDLEtBQUssT0FBTSxNQUFLO0FBQ2hCLE9BQUksQ0FBQyxFQUFFLEdBQ0wsT0FBTSxJQUFJLE1BQU0seUNBQXlDLEVBQUUsU0FBUztBQUV0RSxVQUFPLEVBQUUsTUFBTTtJQUNmO0VBT0YsTUFBTSxZQUhtQixJQUFJQyw2REFDM0Isa0JBQWtCLFNBQVMsRUFBRSxDQUM5QixDQUFDLHFCQUFxQkQsa0NBQWEsaUJBQWlCLEdBRWpELE1BQU1FLHFEQUEwQixLQUFLLFNBQVMsS0FBSyxRQUFRLEtBQUssT0FBTyxHQUN2RSxNQUFNQyw4Q0FBbUIsS0FBSyxTQUFTLEtBQUssT0FBTztBQUV2RCxPQUFLLFdBQVc7R0FBRSxHQUFHO0dBQW1CO0dBQVc7QUFDbkQsT0FBSyxrQkFBa0IsS0FBSyxTQUFTO0FBQ3JDLFNBQU8sS0FBSzs7Ozs7Ozs7QUFTaEIsSUFBYSwwQkFBYixNQUFxRTtDQUtuRSxZQUFZLEFBQWlCQyxZQUFpQztFQUFqQztpQkFKSztnQkFFRDs7Q0FJakMsTUFBTSxrQkFBZ0Q7QUFDcEQsU0FBTyxLQUFLIn0=
|
|
@@ -44,6 +44,9 @@ declare class EnviveConfigService implements IEnviveConfigService {
|
|
|
44
44
|
namespace,
|
|
45
45
|
source
|
|
46
46
|
}: EnviveConfigServiceProps);
|
|
47
|
+
private getCacheKey;
|
|
48
|
+
private readCachedConfig;
|
|
49
|
+
private writeCachedConfig;
|
|
47
50
|
getEnviveConfig(): Promise<EnviveServiceConfig>;
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
@@ -60,4 +63,4 @@ declare class MockEnviveConfigService implements IEnviveConfigService {
|
|
|
60
63
|
}
|
|
61
64
|
//#endregion
|
|
62
65
|
export { EnviveConfigService, EnviveServiceConfig, IEnviveConfigService, MockEnviveConfigService };
|
|
63
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIGFwaUtleTogc3RyaW5nO1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gICAgb3JnOiB7XG4gICAgICAgIG9yZzoge1xuICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgIHNob3J0X25hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZG9tYWluOiBzdHJpbmc7XG4gICAgICAgICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAgIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VySWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U7XG4gICAgcHJpdmF0ZSByZXNwb25zZTtcbiAgICBjb25zdHJ1Y3Rvcih7IGJhc2VVcmwsIGFwaUtleSwgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpO1xuICAgIHByaXZhdGUgZ2V0Q2FjaGVLZXk7XG4gICAgcHJpdmF0ZSByZWFkQ2FjaGVkQ29uZmlnO1xuICAgIHByaXZhdGUgd3JpdGVDYWNoZWRDb25maWc7XG4gICAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG59XG4vKipcbiAqIFJldHVybnMgc3RhdGljIG1vY2sgZGF0YSBmcm9tIGl0cyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuIFBhc3NlcyBlbXB0eSBiYXNlVXJsL2FwaUtleVxuICogc28gYW55IGNvZGUgY2hlY2tpbmcgaXNSZWFkeSBkb2VzIG5vdCBmaXJlIHJlYWwgbmV0d29yayByZXF1ZXN0cy4gVGhlIG9yZ0NvbmZpZyBmaWVsZFxuICogY292ZXJzIGNvbG9ycywgZnJvbnRlbmRDb25maWcsIGFuZCBwYWdlL3dpZGdldC9tb3VudGluZyBjb25maWdzIHdpdGhvdXQgYW55IG5ldHdvcmsgY2FsbHMuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIE1vY2tFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbmZpZztcbiAgICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IobW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyk7XG4gICAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG59XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFJLDJCQUEyQixDQUFDLElBQUE7QUFDaEMsSUFBVyxzQkFBUTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkIsSUFBVyx1QkFBTztDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2xCLElBQVcsc0JBQU87Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2xCLElBQVcsMEJBQVU7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
|
|
@@ -44,6 +44,9 @@ declare class EnviveConfigService implements IEnviveConfigService {
|
|
|
44
44
|
namespace,
|
|
45
45
|
source
|
|
46
46
|
}: EnviveConfigServiceProps);
|
|
47
|
+
private getCacheKey;
|
|
48
|
+
private readCachedConfig;
|
|
49
|
+
private writeCachedConfig;
|
|
47
50
|
getEnviveConfig(): Promise<EnviveServiceConfig>;
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
@@ -60,4 +63,4 @@ declare class MockEnviveConfigService implements IEnviveConfigService {
|
|
|
60
63
|
}
|
|
61
64
|
//#endregion
|
|
62
65
|
export { EnviveConfigService, EnviveServiceConfig, IEnviveConfigService, MockEnviveConfigService };
|
|
63
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2Vudml2ZUNvbmZpZ1NlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudCwgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG50eXBlIEVudml2ZUNvbmZpZ1NlcnZpY2VQcm9wcyA9IHtcbiAgICBiYXNlVXJsOiBzdHJpbmc7XG4gICAgYXBpS2V5OiBzdHJpbmc7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgICBvcmc6IHtcbiAgICAgICAgb3JnOiB7XG4gICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgc2hvcnRfbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZGlzcGxheV9uYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkb21haW46IHN0cmluZztcbiAgICAgICAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgICAgICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgICAgICAgICAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgZ2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG4gICAgZXhwZXJpbWVudF9hc3NpZ25tZW50cz86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W107XG4gICAgb3JnQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbn07XG5leHBvcnQgaW50ZXJmYWNlIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gICAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG59XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcbiAgICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJJZDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hbWVzcGFjZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZTtcbiAgICBwcml2YXRlIHJlc3BvbnNlO1xuICAgIGNvbnN0cnVjdG9yKHsgYmFzZVVybCwgYXBpS2V5LCB1c2VySWQsIG5hbWVzcGFjZSwgc291cmNlIH06IEVudml2ZUNvbmZpZ1NlcnZpY2VQcm9wcyk7XG4gICAgcHJpdmF0ZSBnZXRDYWNoZUtleTtcbiAgICBwcml2YXRlIHJlYWRDYWNoZWRDb25maWc7XG4gICAgcHJpdmF0ZSB3cml0ZUNhY2hlZENvbmZpZztcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cbi8qKlxuICogUmV0dXJucyBzdGF0aWMgbW9jayBkYXRhIGZyb20gaXRzIGNvbnN0cnVjdG9yIGFyZ3VtZW50cy4gUGFzc2VzIGVtcHR5IGJhc2VVcmwvYXBpS2V5XG4gKiBzbyBhbnkgY29kZSBjaGVja2luZyBpc1JlYWR5IGRvZXMgbm90IGZpcmUgcmVhbCBuZXR3b3JrIHJlcXVlc3RzLiBUaGUgb3JnQ29uZmlnIGZpZWxkXG4gKiBjb3ZlcnMgY29sb3JzLCBmcm9udGVuZENvbmZpZywgYW5kIHBhZ2Uvd2lkZ2V0L21vdW50aW5nIGNvbmZpZ3Mgd2l0aG91dCBhbnkgbmV0d29yayBjYWxscy5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgTW9ja0Vudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2NrQ29uZmlnO1xuICAgIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcbiAgICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcihtb2NrQ29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnKTtcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQUksMkJBQTJCLENBQUMsSUFBQTtBQUNoQyxJQUFXLHNCQUFRO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQixJQUFXLHVCQUFPO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbEIsSUFBVyxzQkFBTztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDbEIsSUFBVywwQkFBVTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { FeatureGates } from "../../application/models/featureGates.js";
|
|
2
|
-
import {
|
|
3
|
-
import "
|
|
2
|
+
import { configVersionOverride } from "../../types/config-versions.js";
|
|
3
|
+
import { FeatureFlagService } from "../featureFlagService/index.js";
|
|
4
4
|
import { fetchGraphQLConfig, fetchUnifiedGraphQLConfig } from "./fetchGraphQLConfig.js";
|
|
5
5
|
|
|
6
6
|
//#region src/services/enviveConfigService/enviveConfigService.ts
|
|
7
|
+
const CONFIG_CACHE_TTL_MS = 300 * 1e3;
|
|
7
8
|
var EnviveConfigService = class {
|
|
8
9
|
constructor({ baseUrl, apiKey, userId, namespace, source }) {
|
|
9
10
|
this.response = null;
|
|
@@ -13,8 +14,38 @@ var EnviveConfigService = class {
|
|
|
13
14
|
this.namespace = namespace;
|
|
14
15
|
this.source = source;
|
|
15
16
|
}
|
|
17
|
+
getCacheKey() {
|
|
18
|
+
return `envive-config-cache:${this.baseUrl}:${this.apiKey}:${this.userId}:${this.namespace}:${this.source}`;
|
|
19
|
+
}
|
|
20
|
+
readCachedConfig() {
|
|
21
|
+
if (configVersionOverride()) return null;
|
|
22
|
+
try {
|
|
23
|
+
const raw = sessionStorage.getItem(this.getCacheKey());
|
|
24
|
+
if (!raw) return null;
|
|
25
|
+
const entry = JSON.parse(raw);
|
|
26
|
+
if (Date.now() >= entry.expiresAt) return null;
|
|
27
|
+
return entry.value;
|
|
28
|
+
} catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
writeCachedConfig(value) {
|
|
33
|
+
if (configVersionOverride()) return;
|
|
34
|
+
try {
|
|
35
|
+
const entry = {
|
|
36
|
+
value,
|
|
37
|
+
expiresAt: Date.now() + CONFIG_CACHE_TTL_MS
|
|
38
|
+
};
|
|
39
|
+
sessionStorage.setItem(this.getCacheKey(), JSON.stringify(entry));
|
|
40
|
+
} catch {}
|
|
41
|
+
}
|
|
16
42
|
async getEnviveConfig() {
|
|
17
43
|
if (this.response !== null) return this.response;
|
|
44
|
+
const cached = this.readCachedConfig();
|
|
45
|
+
if (cached !== null) {
|
|
46
|
+
this.response = cached;
|
|
47
|
+
return this.response;
|
|
48
|
+
}
|
|
18
49
|
const queryParams = new URLSearchParams({
|
|
19
50
|
namespace: this.namespace,
|
|
20
51
|
source: this.source,
|
|
@@ -37,6 +68,7 @@ var EnviveConfigService = class {
|
|
|
37
68
|
...orgConfigResponse,
|
|
38
69
|
orgConfig
|
|
39
70
|
};
|
|
71
|
+
this.writeCachedConfig(this.response);
|
|
40
72
|
return this.response;
|
|
41
73
|
}
|
|
42
74
|
};
|
|
@@ -58,4 +90,4 @@ var MockEnviveConfigService = class {
|
|
|
58
90
|
|
|
59
91
|
//#endregion
|
|
60
92
|
export { EnviveConfigService, MockEnviveConfigService };
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5qcyIsIm5hbWVzIjpbIm1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LCBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBmZXRjaEdyYXBoUUxDb25maWcsIGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcgfSBmcm9tICcuL2ZldGNoR3JhcGhRTENvbmZpZyc7XG5cbnR5cGUgRW52aXZlQ29uZmlnU2VydmljZVByb3BzID0ge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgb3JnOiB7XG4gICAgb3JnOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgc2hvcnRfbmFtZTogc3RyaW5nO1xuICAgICAgZGlzcGxheV9uYW1lOiBzdHJpbmc7XG4gICAgICBkb21haW46IHN0cmluZztcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgICAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAvLyBQb3B1bGF0ZWQgYnkgdGhlIGJhY2tlbmQgd2hlbiB0aGUgYHVzZV91bmlmaWVkX2NvbmZpZ2AgU3RhdHNpZyBnYXRlXG4gIC8vIGV2YWx1YXRlcyB0cnVlLiBhbXBsaXR1ZGVTZXJ2aWNlIHJlYWRzIHRoZXNlIHRvIGVucmljaCBldmVudHMgd2l0aFxuICAvLyBgZXhwZXJpbWVudC57bnN9LipgIHByb3BlcnRpZXMuXG4gIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAvLyBvcmdDb25maWcucmVzb2x1dGlvbiBpcyBwb3B1bGF0ZWQgb25seSBvbiB0aGUgdW5pZmllZCBwYXRoIChzb3VyY2VkIGZyb21cbiAgLy8gZ2V0V2lkZ2V0Q29uZmlnLnJlc29sdXRpb24sIG5vdCAvdjEvb3JnL2NvbmZpZy5yZXNvbHV0aW9uKSBzbyB0aGUgdmVyc2lvblxuICAvLyB0aHJlYWRlZCBpbnRvIGluZmVyZW5jZSByZXF1ZXN0cyBtYXRjaGVzIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlXG4gIC8vIHJlbmRlcmVkIHdpZGdldHMuXG4gIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG59XG5cbmV4cG9ydCBjbGFzcyBFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlc3BvbnNlOiBFbnZpdmVTZXJ2aWNlQ29uZmlnIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoeyBiYXNlVXJsLCBhcGlLZXksIHVzZXJJZCwgbmFtZXNwYWNlLCBzb3VyY2UgfTogRW52aXZlQ29uZmlnU2VydmljZVByb3BzKSB7XG4gICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDtcbiAgICB0aGlzLmFwaUtleSA9IGFwaUtleTtcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgfVxuXG4gIGFzeW5jIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICBpZiAodGhpcy5yZXNwb25zZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICBuYW1lc3BhY2U6IHRoaXMubmFtZXNwYWNlLFxuICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgIHVzZXJfaWQ6IHRoaXMudXNlcklkLFxuICAgICAgaW5jbHVkZV9leHBlcmltZW50czogJ2RlZmF1bHQnLFxuICAgICAgaW5jbHVkZV9mZWF0dXJlX2dhdGVzOiBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcylcbiAgICAgICAgLm1hcChmZWF0dXJlR2F0ZSA9PiBmZWF0dXJlR2F0ZS50b1N0cmluZygpKVxuICAgICAgICAuam9pbignLCcpLFxuICAgIH0pO1xuICAgIC8vIFNlcmlhbGl6ZWQgc28gd2UgY2FuIGJyYW5jaCB0aGUgR3JhcGhRTCBjYWxsIG9uIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYFxuICAgIC8vIGdhdGUgcmV0dXJuZWQgYnkgL3YxL29yZy9jb25maWcuIE9uY2UgdGhlIG1pZ3JhdGlvbiB0byBnZXRXaWRnZXRDb25maWdcbiAgICAvLyBjb21wbGV0ZXMgKG9uZSBlbmRwb2ludCByZXR1cm5pbmcgZ2F0ZXMgKyBleHBlcmltZW50cyArIHByb2R1Y3RzQ29uZmlnKSxcbiAgICAvLyB0aGlzIGNvbGxhcHNlcyBiYWNrIHRvIGEgc2luZ2xlIGNhbGwuXG4gICAgY29uc3Qgb3JnQ29uZmlnUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICAgIGAke3RoaXMuYmFzZVVybH0vdjEvb3JnL2NvbmZpZz8ke3F1ZXJ5UGFyYW1zLnRvU3RyaW5nKCl9YCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXBpS2V5fWAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICkudGhlbihhc3luYyByID0+IHtcbiAgICAgIGlmICghci5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE9yZyBjb25maWcgcmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtyLnN0YXR1c31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByLmpzb24oKSBhcyBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xuICAgIH0pO1xuXG4gICAgLy8gSG9ub3IgVVJMIC8gYHdpbmRvdy5fc3BpZmZ5YCAvIGxvY2FsU3RvcmFnZSBvdmVycmlkZXMgZm9yXG4gICAgLy8gYHVzZV91bmlmaWVkX2NvbmZpZ2AgdGhlIHNhbWUgd2F5IGV2ZXJ5IG90aGVyIGZlYXR1cmUgZ2F0ZSBpcyByZWFkLlxuICAgIGNvbnN0IHVzZVVuaWZpZWRDb25maWcgPSBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKFxuICAgICAgb3JnQ29uZmlnUmVzcG9uc2UuZ2F0ZXMgPz8gW10sXG4gICAgKS5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuVXNlVW5pZmllZENvbmZpZyk7XG4gICAgY29uc3Qgb3JnQ29uZmlnID0gdXNlVW5pZmllZENvbmZpZ1xuICAgICAgPyBhd2FpdCBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnKHRoaXMuYmFzZVVybCwgdGhpcy5hcGlLZXksIHRoaXMudXNlcklkKVxuICAgICAgOiBhd2FpdCBmZXRjaEdyYXBoUUxDb25maWcodGhpcy5iYXNlVXJsLCB0aGlzLmFwaUtleSk7XG5cbiAgICB0aGlzLnJlc3BvbnNlID0geyAuLi5vcmdDb25maWdSZXNwb25zZSwgb3JnQ29uZmlnIH07XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHN0YXRpYyBtb2NrIGRhdGEgZnJvbSBpdHMgY29uc3RydWN0b3IgYXJndW1lbnRzLiBQYXNzZXMgZW1wdHkgYmFzZVVybC9hcGlLZXlcbiAqIHNvIGFueSBjb2RlIGNoZWNraW5nIGlzUmVhZHkgZG9lcyBub3QgZmlyZSByZWFsIG5ldHdvcmsgcmVxdWVzdHMuIFRoZSBvcmdDb25maWcgZmllbGRcbiAqIGNvdmVycyBjb2xvcnMsIGZyb250ZW5kQ29uZmlnLCBhbmQgcGFnZS93aWRnZXQvbW91bnRpbmcgY29uZmlncyB3aXRob3V0IGFueSBuZXR3b3JrIGNhbGxzLlxuICovXG5leHBvcnQgY2xhc3MgTW9ja0Vudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcpIHt9XG5cbiAgYXN5bmMgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLm1vY2tDb25maWc7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBNENBLElBQWEsc0JBQWIsTUFBaUU7Q0FhL0QsWUFBWSxFQUFFLFNBQVMsUUFBUSxRQUFRLFdBQVcsVUFBb0M7a0JBRnZDO0FBRzdDLE9BQUssVUFBVTtBQUNmLE9BQUssU0FBUztBQUNkLE9BQUssU0FBUztBQUNkLE9BQUssWUFBWTtBQUNqQixPQUFLLFNBQVM7O0NBR2hCLE1BQU0sa0JBQWdEO0FBQ3BELE1BQUksS0FBSyxhQUFhLEtBQ3BCLFFBQU8sS0FBSztFQUVkLE1BQU0sY0FBYyxJQUFJLGdCQUFnQjtHQUN0QyxXQUFXLEtBQUs7R0FDaEIsUUFBUSxLQUFLO0dBQ2IsU0FBUyxLQUFLO0dBQ2QscUJBQXFCO0dBQ3JCLHVCQUF1QixPQUFPLE9BQU8sYUFBYSxDQUMvQyxLQUFJLGdCQUFlLFlBQVksVUFBVSxDQUFDLENBQzFDLEtBQUssSUFBSTtHQUNiLENBQUM7RUFLRixNQUFNLG9CQUFvQixNQUFNLE1BQzlCLEdBQUcsS0FBSyxRQUFRLGlCQUFpQixZQUFZLFVBQVUsSUFDdkQ7R0FDRSxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVBQVUsS0FBSztJQUMvQjtHQUNGLENBQ0YsQ0FBQyxLQUFLLE9BQU0sTUFBSztBQUNoQixPQUFJLENBQUMsRUFBRSxHQUNMLE9BQU0sSUFBSSxNQUFNLHlDQUF5QyxFQUFFLFNBQVM7QUFFdEUsVUFBTyxFQUFFLE1BQU07SUFDZjtFQU9GLE1BQU0sWUFIbUIsSUFBSSxtQkFDM0Isa0JBQWtCLFNBQVMsRUFBRSxDQUM5QixDQUFDLHFCQUFxQixhQUFhLGlCQUFpQixHQUVqRCxNQUFNLDBCQUEwQixLQUFLLFNBQVMsS0FBSyxRQUFRLEtBQUssT0FBTyxHQUN2RSxNQUFNLG1CQUFtQixLQUFLLFNBQVMsS0FBSyxPQUFPO0FBRXZELE9BQUssV0FBVztHQUFFLEdBQUc7R0FBbUI7R0FBVztBQUNuRCxTQUFPLEtBQUs7Ozs7Ozs7O0FBU2hCLElBQWEsMEJBQWIsTUFBcUU7Q0FLbkUsWUFBWSxBQUFpQkEsWUFBaUM7RUFBakM7aUJBSks7Z0JBRUQ7O0NBSWpDLE1BQU0sa0JBQWdEO0FBQ3BELFNBQU8sS0FBSyJ9
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5qcyIsIm5hbWVzIjpbImVudHJ5OiBDYWNoZWRDb25maWdFbnRyeSIsIm1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LCBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBmZXRjaEdyYXBoUUxDb25maWcsIGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcgfSBmcm9tICcuL2ZldGNoR3JhcGhRTENvbmZpZyc7XG5cbi8vIFNob3J0LWxpdmVkIHNvIGNvbmZpZyBjaGFuZ2VzIChnYXRlcywgZXhwZXJpbWVudHMpIHN0aWxsIHByb3BhZ2F0ZSB3aXRoaW5cbi8vIGEgc2Vzc2lvbiwgd2hpbGUgc3BhcmluZyBldmVyeSBwYWdlIG5hdmlnYXRpb24gZnJvbSByZS1mZXRjaGluZyBvcmdcbi8vIGNvbmZpZyArIEdyYXBoUUwgY29uZmlnLCBib3RoIG9mIHdoaWNoIHNpdCBvbiB0aGUgY3JpdGljYWwgcGF0aCBiZWZvcmVcbi8vIGZpcnN0IHBhaW50LlxuY29uc3QgQ09ORklHX0NBQ0hFX1RUTF9NUyA9IDUgKiA2MCAqIDEwMDA7XG5cbnR5cGUgQ2FjaGVkQ29uZmlnRW50cnkgPSB7XG4gIHZhbHVlOiBFbnZpdmVTZXJ2aWNlQ29uZmlnO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbn07XG5cbnR5cGUgRW52aXZlQ29uZmlnU2VydmljZVByb3BzID0ge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgb3JnOiB7XG4gICAgb3JnOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgc2hvcnRfbmFtZTogc3RyaW5nO1xuICAgICAgZGlzcGxheV9uYW1lOiBzdHJpbmc7XG4gICAgICBkb21haW46IHN0cmluZztcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgICAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAvLyBQb3B1bGF0ZWQgYnkgdGhlIGJhY2tlbmQgd2hlbiB0aGUgYHVzZV91bmlmaWVkX2NvbmZpZ2AgU3RhdHNpZyBnYXRlXG4gIC8vIGV2YWx1YXRlcyB0cnVlLiBhbXBsaXR1ZGVTZXJ2aWNlIHJlYWRzIHRoZXNlIHRvIGVucmljaCBldmVudHMgd2l0aFxuICAvLyBgZXhwZXJpbWVudC57bnN9LipgIHByb3BlcnRpZXMuXG4gIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAvLyBvcmdDb25maWcucmVzb2x1dGlvbiBpcyBwb3B1bGF0ZWQgb25seSBvbiB0aGUgdW5pZmllZCBwYXRoIChzb3VyY2VkIGZyb21cbiAgLy8gZ2V0V2lkZ2V0Q29uZmlnLnJlc29sdXRpb24sIG5vdCAvdjEvb3JnL2NvbmZpZy5yZXNvbHV0aW9uKSBzbyB0aGUgdmVyc2lvblxuICAvLyB0aHJlYWRlZCBpbnRvIGluZmVyZW5jZSByZXF1ZXN0cyBtYXRjaGVzIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlXG4gIC8vIHJlbmRlcmVkIHdpZGdldHMuXG4gIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG59XG5cbmV4cG9ydCBjbGFzcyBFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlc3BvbnNlOiBFbnZpdmVTZXJ2aWNlQ29uZmlnIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoeyBiYXNlVXJsLCBhcGlLZXksIHVzZXJJZCwgbmFtZXNwYWNlLCBzb3VyY2UgfTogRW52aXZlQ29uZmlnU2VydmljZVByb3BzKSB7XG4gICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDtcbiAgICB0aGlzLmFwaUtleSA9IGFwaUtleTtcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGVudml2ZS1jb25maWctY2FjaGU6JHt0aGlzLmJhc2VVcmx9OiR7dGhpcy5hcGlLZXl9OiR7dGhpcy51c2VySWR9OiR7dGhpcy5uYW1lc3BhY2V9OiR7dGhpcy5zb3VyY2V9YDtcbiAgfVxuXG4gIC8vIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIC8gYHNwaWZmeV9jb25maWdfdmVyc2lvbmAgcGluIGEgc3BlY2lmaWMgY29uZmlnXG4gIC8vIHZlcnNpb24gZm9yIGRlYnVnZ2luZy9yb2xsYmFjay4gQW55IHVzZSBvZiB0aGF0IG92ZXJyaWRlIG11c3QgYWx3YXlzXG4gIC8vIGJ5cGFzcyB0aGUgY2FjaGUgYmVsb3cg4oCUIGJvdGggcmVhZGluZyBhIHN0YWxlIGVudHJ5IGFuZCB3cml0aW5nIG9uZVxuICAvLyB1bmRlciB0aGUgc2hhcmVkIGtleSB3b3VsZCBkZWZlYXQgdGhlIG92ZXJyaWRlJ3MgcHVycG9zZS5cbiAgcHJpdmF0ZSByZWFkQ2FjaGVkQ29uZmlnKCk6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsIHtcbiAgICBpZiAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmF3ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldENhY2hlS2V5KCkpO1xuICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBlbnRyeSA9IEpTT04ucGFyc2UocmF3KSBhcyBDYWNoZWRDb25maWdFbnRyeTtcbiAgICAgIGlmIChEYXRlLm5vdygpID49IGVudHJ5LmV4cGlyZXNBdCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbnRyeS52YWx1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVDYWNoZWRDb25maWcodmFsdWU6IEVudml2ZVNlcnZpY2VDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudHJ5OiBDYWNoZWRDb25maWdFbnRyeSA9IHsgdmFsdWUsIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIENPTkZJR19DQUNIRV9UVExfTVMgfTtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRDYWNoZUtleSgpLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU3RvcmFnZSBkaXNhYmxlZCwgZnVsbCwgb3IgdW5hdmFpbGFibGUgKHByaXZhdGUgYnJvd3NpbmcsIGV0Yy4pIC1cbiAgICAgIC8vIGZhaWwgb3BlbiBhbmQgbGV0IHRoZSBuZXh0IGNhbGwgcmUtZmV0Y2ggaW5zdGVhZCBvZiBjYWNoaW5nLlxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICBpZiAodGhpcy5yZXNwb25zZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5yZWFkQ2FjaGVkQ29uZmlnKCk7XG4gICAgaWYgKGNhY2hlZCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5yZXNwb25zZSA9IGNhY2hlZDtcbiAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICBuYW1lc3BhY2U6IHRoaXMubmFtZXNwYWNlLFxuICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgIHVzZXJfaWQ6IHRoaXMudXNlcklkLFxuICAgICAgaW5jbHVkZV9leHBlcmltZW50czogJ2RlZmF1bHQnLFxuICAgICAgaW5jbHVkZV9mZWF0dXJlX2dhdGVzOiBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcylcbiAgICAgICAgLm1hcChmZWF0dXJlR2F0ZSA9PiBmZWF0dXJlR2F0ZS50b1N0cmluZygpKVxuICAgICAgICAuam9pbignLCcpLFxuICAgIH0pO1xuICAgIC8vIFNlcmlhbGl6ZWQgc28gd2UgY2FuIGJyYW5jaCB0aGUgR3JhcGhRTCBjYWxsIG9uIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYFxuICAgIC8vIGdhdGUgcmV0dXJuZWQgYnkgL3YxL29yZy9jb25maWcuIE9uY2UgdGhlIG1pZ3JhdGlvbiB0byBnZXRXaWRnZXRDb25maWdcbiAgICAvLyBjb21wbGV0ZXMgKG9uZSBlbmRwb2ludCByZXR1cm5pbmcgZ2F0ZXMgKyBleHBlcmltZW50cyArIHByb2R1Y3RzQ29uZmlnKSxcbiAgICAvLyB0aGlzIGNvbGxhcHNlcyBiYWNrIHRvIGEgc2luZ2xlIGNhbGwuXG4gICAgY29uc3Qgb3JnQ29uZmlnUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICAgIGAke3RoaXMuYmFzZVVybH0vdjEvb3JnL2NvbmZpZz8ke3F1ZXJ5UGFyYW1zLnRvU3RyaW5nKCl9YCxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXBpS2V5fWAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICkudGhlbihhc3luYyByID0+IHtcbiAgICAgIGlmICghci5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE9yZyBjb25maWcgcmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtyLnN0YXR1c31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByLmpzb24oKSBhcyBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xuICAgIH0pO1xuXG4gICAgLy8gSG9ub3IgVVJMIC8gYHdpbmRvdy5fc3BpZmZ5YCAvIGxvY2FsU3RvcmFnZSBvdmVycmlkZXMgZm9yXG4gICAgLy8gYHVzZV91bmlmaWVkX2NvbmZpZ2AgdGhlIHNhbWUgd2F5IGV2ZXJ5IG90aGVyIGZlYXR1cmUgZ2F0ZSBpcyByZWFkLlxuICAgIGNvbnN0IHVzZVVuaWZpZWRDb25maWcgPSBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKFxuICAgICAgb3JnQ29uZmlnUmVzcG9uc2UuZ2F0ZXMgPz8gW10sXG4gICAgKS5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuVXNlVW5pZmllZENvbmZpZyk7XG4gICAgY29uc3Qgb3JnQ29uZmlnID0gdXNlVW5pZmllZENvbmZpZ1xuICAgICAgPyBhd2FpdCBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnKHRoaXMuYmFzZVVybCwgdGhpcy5hcGlLZXksIHRoaXMudXNlcklkKVxuICAgICAgOiBhd2FpdCBmZXRjaEdyYXBoUUxDb25maWcodGhpcy5iYXNlVXJsLCB0aGlzLmFwaUtleSk7XG5cbiAgICB0aGlzLnJlc3BvbnNlID0geyAuLi5vcmdDb25maWdSZXNwb25zZSwgb3JnQ29uZmlnIH07XG4gICAgdGhpcy53cml0ZUNhY2hlZENvbmZpZyh0aGlzLnJlc3BvbnNlKTtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgc3RhdGljIG1vY2sgZGF0YSBmcm9tIGl0cyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuIFBhc3NlcyBlbXB0eSBiYXNlVXJsL2FwaUtleVxuICogc28gYW55IGNvZGUgY2hlY2tpbmcgaXNSZWFkeSBkb2VzIG5vdCBmaXJlIHJlYWwgbmV0d29yayByZXF1ZXN0cy4gVGhlIG9yZ0NvbmZpZyBmaWVsZFxuICogY292ZXJzIGNvbG9ycywgZnJvbnRlbmRDb25maWcsIGFuZCBwYWdlL3dpZGdldC9tb3VudGluZyBjb25maWdzIHdpdGhvdXQgYW55IG5ldHdvcmsgY2FsbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2NrRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZykge31cblxuICBhc3luYyBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMubW9ja0NvbmZpZztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFXQSxNQUFNLHNCQUFzQixNQUFTO0FBNkNyQyxJQUFhLHNCQUFiLE1BQWlFO0NBYS9ELFlBQVksRUFBRSxTQUFTLFFBQVEsUUFBUSxXQUFXLFVBQW9DO2tCQUZ2QztBQUc3QyxPQUFLLFVBQVU7QUFDZixPQUFLLFNBQVM7QUFDZCxPQUFLLFNBQVM7QUFDZCxPQUFLLFlBQVk7QUFDakIsT0FBSyxTQUFTOztDQUdoQixBQUFRLGNBQXNCO0FBQzVCLFNBQU8sdUJBQXVCLEtBQUssUUFBUSxHQUFHLEtBQUssT0FBTyxHQUFHLEtBQUssT0FBTyxHQUFHLEtBQUssVUFBVSxHQUFHLEtBQUs7O0NBT3JHLEFBQVEsbUJBQStDO0FBQ3JELE1BQUksdUJBQXVCLENBQ3pCLFFBQU87QUFFVCxNQUFJO0dBQ0YsTUFBTSxNQUFNLGVBQWUsUUFBUSxLQUFLLGFBQWEsQ0FBQztBQUN0RCxPQUFJLENBQUMsSUFDSCxRQUFPO0dBRVQsTUFBTSxRQUFRLEtBQUssTUFBTSxJQUFJO0FBQzdCLE9BQUksS0FBSyxLQUFLLElBQUksTUFBTSxVQUN0QixRQUFPO0FBRVQsVUFBTyxNQUFNO1VBQ1A7QUFDTixVQUFPOzs7Q0FJWCxBQUFRLGtCQUFrQixPQUFrQztBQUMxRCxNQUFJLHVCQUF1QixDQUN6QjtBQUVGLE1BQUk7R0FDRixNQUFNQSxRQUEyQjtJQUFFO0lBQU8sV0FBVyxLQUFLLEtBQUssR0FBRztJQUFxQjtBQUN2RixrQkFBZSxRQUFRLEtBQUssYUFBYSxFQUFFLEtBQUssVUFBVSxNQUFNLENBQUM7VUFDM0Q7O0NBTVYsTUFBTSxrQkFBZ0Q7QUFDcEQsTUFBSSxLQUFLLGFBQWEsS0FDcEIsUUFBTyxLQUFLO0VBR2QsTUFBTSxTQUFTLEtBQUssa0JBQWtCO0FBQ3RDLE1BQUksV0FBVyxNQUFNO0FBQ25CLFFBQUssV0FBVztBQUNoQixVQUFPLEtBQUs7O0VBR2QsTUFBTSxjQUFjLElBQUksZ0JBQWdCO0dBQ3RDLFdBQVcsS0FBSztHQUNoQixRQUFRLEtBQUs7R0FDYixTQUFTLEtBQUs7R0FDZCxxQkFBcUI7R0FDckIsdUJBQXVCLE9BQU8sT0FBTyxhQUFhLENBQy9DLEtBQUksZ0JBQWUsWUFBWSxVQUFVLENBQUMsQ0FDMUMsS0FBSyxJQUFJO0dBQ2IsQ0FBQztFQUtGLE1BQU0sb0JBQW9CLE1BQU0sTUFDOUIsR0FBRyxLQUFLLFFBQVEsaUJBQWlCLFlBQVksVUFBVSxJQUN2RDtHQUNFLFFBQVE7R0FDUixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLGVBQWUsVUFBVSxLQUFLO0lBQy9CO0dBQ0YsQ0FDRixDQUFDLEtBQUssT0FBTSxNQUFLO0FBQ2hCLE9BQUksQ0FBQyxFQUFFLEdBQ0wsT0FBTSxJQUFJLE1BQU0seUNBQXlDLEVBQUUsU0FBUztBQUV0RSxVQUFPLEVBQUUsTUFBTTtJQUNmO0VBT0YsTUFBTSxZQUhtQixJQUFJLG1CQUMzQixrQkFBa0IsU0FBUyxFQUFFLENBQzlCLENBQUMscUJBQXFCLGFBQWEsaUJBQWlCLEdBRWpELE1BQU0sMEJBQTBCLEtBQUssU0FBUyxLQUFLLFFBQVEsS0FBSyxPQUFPLEdBQ3ZFLE1BQU0sbUJBQW1CLEtBQUssU0FBUyxLQUFLLE9BQU87QUFFdkQsT0FBSyxXQUFXO0dBQUUsR0FBRztHQUFtQjtHQUFXO0FBQ25ELE9BQUssa0JBQWtCLEtBQUssU0FBUztBQUNyQyxTQUFPLEtBQUs7Ozs7Ozs7O0FBU2hCLElBQWEsMEJBQWIsTUFBcUU7Q0FLbkUsWUFBWSxBQUFpQkMsWUFBaUM7RUFBakM7aUJBSks7Z0JBRUQ7O0NBSWpDLE1BQU0sa0JBQWdEO0FBQ3BELFNBQU8sS0FBSyJ9
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_contexts_types = require('../../contexts/types.cjs');
|
|
3
1
|
const require_logger = require('../../application/logging/logger.cjs');
|
|
4
2
|
const require_config_versions = require('../../types/config-versions.cjs');
|
|
5
3
|
const require_snakeToCamelTransformer = require('../../application/models/utils/snakeToCamelTransformer.cjs');
|
|
4
|
+
const require_contexts_types = require('../../contexts/types.cjs');
|
|
6
5
|
const require_validateGraphQLFrontendConfig = require('../../application/models/validators/validateGraphQLFrontendConfig.cjs');
|
|
7
6
|
require('../../application/models/index.cjs');
|
|
8
7
|
const require_getColorsAndFrontendQuery = require('../../application/models/graphql/queries/getColorsAndFrontendQuery.cjs');
|
|
9
8
|
const require_getWidgetConfigQuery = require('../../application/models/graphql/queries/getWidgetConfigQuery.cjs');
|
|
10
9
|
const require_mockV3Config = require('../../contexts/graphqlContext/mockV3Config.cjs');
|
|
11
|
-
let __envive_ai_react_toolkit_v3_FloatingButton = require("@envive-ai/react-toolkit-v3/FloatingButton");
|
|
12
10
|
|
|
13
11
|
//#region src/services/enviveConfigService/fetchGraphQLConfig.ts
|
|
14
12
|
const logger = new require_logger.default("fetchGraphQLConfig");
|
|
@@ -25,11 +23,14 @@ const DEFAULT_PAGE_VARIANTS = [{
|
|
|
25
23
|
widgetMounting: [],
|
|
26
24
|
variantTests: [{ testType: require_contexts_types.PageVariantTestType.UrlResolver }]
|
|
27
25
|
}];
|
|
26
|
+
const FLOATING_BUTTON_POSITIONS = [
|
|
27
|
+
"bottom-left",
|
|
28
|
+
"middle-left",
|
|
29
|
+
"middle-right",
|
|
30
|
+
"bottom-right"
|
|
31
|
+
];
|
|
28
32
|
const mapPositionToCamelCase = (position) => {
|
|
29
|
-
if (position
|
|
30
|
-
if (position === "middle-left") return __envive_ai_react_toolkit_v3_FloatingButton.FloatingButtonLocation.MIDDLE_LEFT;
|
|
31
|
-
if (position === "middle-right") return __envive_ai_react_toolkit_v3_FloatingButton.FloatingButtonLocation.MIDDLE_RIGHT;
|
|
32
|
-
if (position === "bottom-right") return __envive_ai_react_toolkit_v3_FloatingButton.FloatingButtonLocation.BOTTOM_RIGHT;
|
|
33
|
+
if (FLOATING_BUTTON_POSITIONS.includes(position)) return position;
|
|
33
34
|
throw new Error(`Invalid position: ${position}`);
|
|
34
35
|
};
|
|
35
36
|
const v3FrontendConfigCleanup = (v3RootConfig) => {
|
|
@@ -228,4 +229,4 @@ const fetchUnifiedGraphQLConfig = async (baseUrl, apiKey, userId) => {
|
|
|
228
229
|
//#endregion
|
|
229
230
|
exports.fetchGraphQLConfig = fetchGraphQLConfig;
|
|
230
231
|
exports.fetchUnifiedGraphQLConfig = fetchUnifiedGraphQLConfig;
|
|
231
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIkRFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSIsIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIiwibW9ja1YzQ29sb3JzQ29uZmlnIiwibW9ja1YzRnJvbnRlbmRDb25maWciLCJ0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwiLCJ2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJ2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyIsImdldENvbG9yc0FuZEZyb250ZW5kUXVlcnkiLCJnZXRXaWRnZXRDb25maWdRdWVyeSIsImNvbmZpZ1ZlcnNpb25PdmVycmlkZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2ZldGNoR3JhcGhRTENvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1xuICBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAsXG4gIHRyYW5zZm9ybVNuYWtlVG9DYW1lbCxcbiAgdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyxcbiAgdmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHMsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWdWMyc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnVjMnO1xuaW1wb3J0IHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZldGNoR3JhcGhRTENvbmZpZycpO1xuXG50eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcbnR5cGUgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz47XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBbXG4gIHtcbiAgICB2YXJpYW50SWQ6ICdwbHAnLFxuICAgIHZhcmlhbnRUeXBlOiAncGxwJyxcbiAgICBwbHBJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wbHAtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFt7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH1dLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFt7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH1dLFxuICB9LFxuXTtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmIChwb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0JykgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX0xFRlQ7XG4gIGlmIChwb3NpdGlvbiA9PT0gJ21pZGRsZS1sZWZ0JykgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uTUlERExFX0xFRlQ7XG4gIGlmIChwb3NpdGlvbiA9PT0gJ21pZGRsZS1yaWdodCcpIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9SSUdIVDtcbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLXJpZ2h0JykgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX1JJR0hUO1xuICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcG9zaXRpb246ICR7cG9zaXRpb259YCk7XG59O1xuXG5jb25zdCB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cCA9IChcbiAgdjNSb290Q29uZmlnOiBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4pOiBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPT4ge1xuICBjb25zdCB7IHVpQ29uZmlncyB9ID0gdjNSb290Q29uZmlnO1xuICBpZiAoIXVpQ29uZmlncykgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmbG9hdGluZ0J1dHRvbiwgbG9va0FuZEZlZWwgfSA9IHVpQ29uZmlncyBhcyBhbnk7XG4gIGlmICghZmxvYXRpbmdCdXR0b24gfHwgIWxvb2tBbmRGZWVsKSByZXR1cm4gdjNSb290Q29uZmlnO1xuICBjb25zdCB7IGZvbnRTaXplLCBsaW5lSGVpZ2h0LCBsZXR0ZXJTcGFjaW5nIH0gPSBsb29rQW5kRmVlbC50eXBvZ3JhcGh5IGFzIGFueTtcbiAgcmV0dXJuIHtcbiAgICAuLi52M1Jvb3RDb25maWcsXG4gICAgdWlDb25maWdzOiB7XG4gICAgICAuLi51aUNvbmZpZ3MsXG4gICAgICBmbG9hdGluZ0J1dHRvbjoge1xuICAgICAgICAuLi5mbG9hdGluZ0J1dHRvbixcbiAgICAgICAgcG9zaXRpb246IG1hcFBvc2l0aW9uVG9DYW1lbENhc2UoXG4gICAgICAgICAgdjNSb290Q29uZmlnLnVpQ29uZmlncz8uZmxvYXRpbmdCdXR0b24/LnBvc2l0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBsb29rQW5kRmVlbDoge1xuICAgICAgICAuLi5sb29rQW5kRmVlbCxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29EYXJrU3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0RhcmtTcmMgfHwgbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29TcmMsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvTGlnaHRTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvTGlnaHRTcmMgfHwgbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29TcmMsXG4gICAgICAgIHR5cG9ncmFwaHk6IHtcbiAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LFxuICAgICAgICAgIGZvbnRTaXplOiB7XG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxldHRlclNwYWNpbmcsXG4gICAgICAgICAgICBiMTogbGV0dGVyU3BhY2luZz8uYjEgfHwgbGV0dGVyU3BhY2luZz8uYl8xLFxuICAgICAgICAgICAgYjI6IGxldHRlclNwYWNpbmc/LmIyIHx8IGxldHRlclNwYWNpbmc/LmJfMixcbiAgICAgICAgICAgIGIzOiBsZXR0ZXJTcGFjaW5nPy5iMyB8fCBsZXR0ZXJTcGFjaW5nPy5iXzMsXG4gICAgICAgICAgICBiNDogbGV0dGVyU3BhY2luZz8uYjQgfHwgbGV0dGVyU3BhY2luZz8uYl80LFxuICAgICAgICAgICAgYjU6IGxldHRlclNwYWNpbmc/LmI1IHx8IGxldHRlclNwYWNpbmc/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsZXR0ZXJTcGFjaW5nPy5oMSB8fCBsZXR0ZXJTcGFjaW5nPy5oXzEsXG4gICAgICAgICAgICBoMjogbGV0dGVyU3BhY2luZz8uaDIgfHwgbGV0dGVyU3BhY2luZz8uaF8yLFxuICAgICAgICAgICAgaDM6IGxldHRlclNwYWNpbmc/LmgzIHx8IGxldHRlclNwYWNpbmc/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsZXR0ZXJTcGFjaW5nPy5sMSB8fCBsZXR0ZXJTcGFjaW5nPy5sXzEsXG4gICAgICAgICAgICBsMjogbGV0dGVyU3BhY2luZz8ubDIgfHwgbGV0dGVyU3BhY2luZz8ubF8yLFxuICAgICAgICAgICAgdDE6IGxldHRlclNwYWNpbmc/LnQxIHx8IGxldHRlclNwYWNpbmc/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsZXR0ZXJTcGFjaW5nPy50MiB8fCBsZXR0ZXJTcGFjaW5nPy50XzIsXG4gICAgICAgICAgICB0MzogbGV0dGVyU3BhY2luZz8udDMgfHwgbGV0dGVyU3BhY2luZz8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5saW5lSGVpZ2h0LFxuICAgICAgICAgICAgJzExNCc6IGxpbmVIZWlnaHQ/LmxoXzExNCB8fCBsaW5lSGVpZ2h0Py5bMTE0XSxcbiAgICAgICAgICAgICcxMTYnOiBsaW5lSGVpZ2h0Py5saF8xMTYgfHwgbGluZUhlaWdodD8uWzExNl0sXG4gICAgICAgICAgICAnMTE4JzogbGluZUhlaWdodD8ubGhfMTE4IHx8IGxpbmVIZWlnaHQ/LlsxMThdLFxuICAgICAgICAgICAgJzEyMCc6IGxpbmVIZWlnaHQ/LmxoXzEyMCB8fCBsaW5lSGVpZ2h0Py5bMTIwXSxcbiAgICAgICAgICAgICcxMjQnOiBsaW5lSGVpZ2h0Py5saF8xMjQgfHwgbGluZUhlaWdodD8uWzEyNF0sXG4gICAgICAgICAgICAnMTI4JzogbGluZUhlaWdodD8ubGhfMTI4IHx8IGxpbmVIZWlnaHQ/LlsxMjhdLFxuICAgICAgICAgICAgJzEzMCc6IGxpbmVIZWlnaHQ/LmxoXzEzMCB8fCBsaW5lSGVpZ2h0Py5bMTMwXSxcbiAgICAgICAgICAgICcxMzMnOiBsaW5lSGVpZ2h0Py5saF8xMzMgfHwgbGluZUhlaWdodD8uWzEzM10sXG4gICAgICAgICAgICAnMTQwJzogbGluZUhlaWdodD8ubGhfMTQwIHx8IGxpbmVIZWlnaHQ/LlsxNDBdLFxuICAgICAgICAgICAgJzE0OCc6IGxpbmVIZWlnaHQ/LmxoXzE0OCB8fCBsaW5lSGVpZ2h0Py5bMTQ4XSxcbiAgICAgICAgICAgIGIxOiBsaW5lSGVpZ2h0Py5iMSB8fCBsaW5lSGVpZ2h0Py5iXzEsXG4gICAgICAgICAgICBiMjogbGluZUhlaWdodD8uYjIgfHwgbGluZUhlaWdodD8uYl8yLFxuICAgICAgICAgICAgYjM6IGxpbmVIZWlnaHQ/LmIzIHx8IGxpbmVIZWlnaHQ/LmJfMyxcbiAgICAgICAgICAgIGI0OiBsaW5lSGVpZ2h0Py5iNCB8fCBsaW5lSGVpZ2h0Py5iXzQsXG4gICAgICAgICAgICBiNTogbGluZUhlaWdodD8uYjUgfHwgbGluZUhlaWdodD8uYl81LFxuICAgICAgICAgICAgaDE6IGxpbmVIZWlnaHQ/LmgxIHx8IGxpbmVIZWlnaHQ/LmhfMSxcbiAgICAgICAgICAgIGgyOiBsaW5lSGVpZ2h0Py5oMiB8fCBsaW5lSGVpZ2h0Py5oXzIsXG4gICAgICAgICAgICBoMzogbGluZUhlaWdodD8uaDMgfHwgbGluZUhlaWdodD8uaF8zLFxuICAgICAgICAgICAgbDE6IGxpbmVIZWlnaHQ/LmwxIHx8IGxpbmVIZWlnaHQ/LmxfMSxcbiAgICAgICAgICAgIGwyOiBsaW5lSGVpZ2h0Py5sMiB8fCBsaW5lSGVpZ2h0Py5sXzIsXG4gICAgICAgICAgICB0MTogbGluZUhlaWdodD8udDEgfHwgbGluZUhlaWdodD8udF8xLFxuICAgICAgICAgICAgdDI6IGxpbmVIZWlnaHQ/LnQyIHx8IGxpbmVIZWlnaHQ/LnRfMixcbiAgICAgICAgICAgIHQzOiBsaW5lSGVpZ2h0Py50MyB8fCBsaW5lSGVpZ2h0Py50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn07XG5cbi8vIFR1cm5zIGEgcmF3IHByb2R1Y3RzQ29uZmlnIHBheWxvYWQgKGZyb20gZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24gb3Jcbi8vIGdldFdpZGdldENvbmZpZykgaW50byB0aGUgY2FtZWxDYXNlIEdyYXBoUWxDb25maWdWYWx1ZXMgc2hhcGUgdGhlIHJlc3Qgb2Zcbi8vIHRoZSB0b29sa2l0IGNvbnN1bWVzLiBSZXR1cm5zIG1vY2sgY29uZmlnIHdoZW4gY29sb3JzIGFyZSBhYnNlbnQuXG5jb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hHcmFwaFFMQ29uZmlnID0gYXN5bmMgKFxuICBiYXNlVXJsOiBzdHJpbmcsXG4gIGFwaUtleTogc3RyaW5nLFxuKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcXVlcnkgPSBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5IH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgZXJyb3JzOiAke0pTT04uc3RyaW5naWZ5KHJlc3VsdC5lcnJvcnMpfWApO1xuICAgIH1cblxuICAgIGxvZ2dlci5sb2dEZWJ1ZygnZmV0Y2hHcmFwaFFMQ29uZmlnIHwgUmV0dXJuaW5nIHYzIGNvbmZpZycpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHJlc3VsdC5kYXRhLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaEdyYXBoUUxDb25maWcgfCBFcnJvciBmZXRjaGluZyBHcmFwaFFMIGNvbmZpZycsIGVycik7XG4gICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgfVxufTtcblxuLy8gU3RhdHNpZy1leHBlcmltZW50LWF3YXJlIHVuaWZpZWQgY29uZmlnIHBhdGguIENhbGxlZCB3aGVuIHRoZVxuLy8gYHVzZV91bmlmaWVkX2NvbmZpZ2AgU3RhdHNpZyBnYXRlIGlzIG9uLiBSZXR1cm5zIHRoZSBzYW1lIHNoYXBlIGFzXG4vLyBmZXRjaEdyYXBoUUxDb25maWcgd2l0aCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm8gdXNlZCB0byBwaWNrIHRoZVxuLy8gdmVyc2lvbiBhdHRhY2hlZCDigJQgY2FsbGVycyB0aHJlYWQgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG8gZG93bnN0cmVhbVxuLy8gaW5mZXJlbmNlIHJlcXVlc3RzIHNvIGluZmVyZW5jZSBpcyBzY29wZWQgdG8gdGhlIHZlcnNpb24gdGhhdCBwcm9kdWNlZFxuLy8gdGhlIHdpZGdldHMgdGhlIHVzZXIgaXMgcmVuZGVyaW5nLiBBIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC9cbi8vIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIFVSTCBwYXJhbSwgd2hlbiBwcmVzZW50LCBpcyB0aHJlYWRlZCB0aHJvdWdoIGFzXG4vLyB0aGUgYHZlcnNpb25gIHZhcmlhYmxlIHRvIHBpbiBhIHNwZWNpZmljIGNvbmZpZyB2ZXJzaW9uIChtYXRjaGVzIHRoZVxuLy8gbGVnYWN5IHBhdGgncyBkZWJ1Zy9yb2xsYmFjayBhZmZvcmRhbmNlKS5cbmV4cG9ydCBjb25zdCBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnID0gYXN5bmMgKFxuICBiYXNlVXJsOiBzdHJpbmcsXG4gIGFwaUtleTogc3RyaW5nLFxuICB1c2VySWQ6IHN0cmluZyxcbik6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0V2lkZ2V0Q29uZmlnUXVlcnkoKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gY29uZmlnVmVyc2lvbk92ZXJyaWRlKCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXM6IHsgdXNlcklkLCB2ZXJzaW9uIH0gfSksXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gcmVzdWx0LmRhdGEubWUuZ2V0V2lkZ2V0Q29uZmlnO1xuICAgIHJldHVybiB7XG4gICAgICAuLi50cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHdpZGdldENvbmZpZz8ucHJvZHVjdHNDb25maWcpLFxuICAgICAgcmVzb2x1dGlvbjogd2lkZ2V0Q29uZmlnPy5yZXNvbHV0aW9uIGFzIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIHwgRXJyb3IgZmV0Y2hpbmcgdW5pZmllZCBHcmFwaFFMIGNvbmZpZycsIGVycik7XG4gICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8scUJBQXFCO0FBSy9DLE1BQWFDLHdCQUE2QyxDQUN4RDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2IsZ0JBQWdCO0NBQ2hCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FBQyxFQUFFLFVBQVVDLDJDQUFvQixhQUFhLENBQUM7Q0FDOUQsRUFDRDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FBQyxFQUFFLFVBQVVBLDJDQUFvQixhQUFhLENBQUM7Q0FDOUQsQ0FDRjtBQUVELE1BQU0sMEJBQTBCLGFBQTZDO0FBQzNFLEtBQUksYUFBYSxjQUFlLFFBQU9DLG1FQUF1QjtBQUM5RCxLQUFJLGFBQWEsY0FBZSxRQUFPQSxtRUFBdUI7QUFDOUQsS0FBSSxhQUFhLGVBQWdCLFFBQU9BLG1FQUF1QjtBQUMvRCxLQUFJLGFBQWEsZUFBZ0IsUUFBT0EsbUVBQXVCO0FBQy9ELE9BQU0sSUFBSSxNQUFNLHFCQUFxQixXQUFXOztBQUdsRCxNQUFNLDJCQUNKLGlCQUM2QjtDQUM3QixNQUFNLEVBQUUsY0FBYztBQUN0QixLQUFJLENBQUMsVUFBVyxRQUFPO0NBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0IsZ0JBQWdCO0FBQ3hDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFhLFFBQU87Q0FDNUMsTUFBTSxFQUFFLFVBQVUsWUFBWSxrQkFBa0IsWUFBWTtBQUM1RCxRQUFPO0VBQ0wsR0FBRztFQUNILFdBQVc7R0FDVCxHQUFHO0dBQ0gsZ0JBQWdCO0lBQ2QsR0FBRztJQUNILFVBQVUsdUJBQ1IsYUFBYSxXQUFXLGdCQUFnQixTQUN6QztJQUNGO0dBQ0QsYUFBYTtJQUNYLEdBQUc7SUFDSCx1QkFBdUIsWUFBWSx5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
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIkRFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSIsIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJtb2NrVjNDb2xvcnNDb25maWciLCJtb2NrVjNGcm9udGVuZENvbmZpZyIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIiwiZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSIsImdldFdpZGdldENvbmZpZ1F1ZXJ5IiwiY29uZmlnVmVyc2lvbk92ZXJyaWRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Vudml2ZUNvbmZpZ1NlcnZpY2UvZmV0Y2hHcmFwaFFMQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG4vLyBUeXBlLW9ubHk6IGEgdmFsdWUgaW1wb3J0IHdvdWxkIHB1bGwgdGhlIEZsb2F0aW5nQnV0dG9uIGNvbXBvbmVudCAoYW5kXG4vLyBSZWFjdCkgdGhyb3VnaCB0aGUgcGFja2FnZSdzIGNvbXBvbmVudCBpbmRleCBpbnRvIHRoZSBpbmplY3Rpb24gYnVuZGxlJ3Ncbi8vIHByZS1jb25maWcgY2h1bmsuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvRmxvYXRpbmdCdXR0b24nO1xuaW1wb3J0IHsgZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldENvbG9yc0FuZEZyb250ZW5kUXVlcnknO1xuaW1wb3J0IHsgZ2V0V2lkZ2V0Q29uZmlnUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRXaWRnZXRDb25maWdRdWVyeSc7XG5pbXBvcnQgeyBtb2NrVjNDb2xvcnNDb25maWcsIG1vY2tWM0Zyb250ZW5kQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0L21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IFBhZ2VWYXJpYW50Q29uZmlnLCBQYWdlVmFyaWFudFRlc3RUeXBlLCBXaWRnZXRNb3VudGluZ0NvbmZpZyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZldGNoR3JhcGhRTENvbmZpZycpO1xuXG50eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcbnR5cGUgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz47XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBbXG4gIHtcbiAgICB2YXJpYW50SWQ6ICdwbHAnLFxuICAgIHZhcmlhbnRUeXBlOiAncGxwJyxcbiAgICBwbHBJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wbHAtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFt7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH1dLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFt7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH1dLFxuICB9LFxuXTtcblxuLy8gU3RyaW5nLWxpdGVyYWwgdmFsdWVzIG9mIHRoZSBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIGVudW07IGtlZXAgaW4gc3luY1xuLy8gd2l0aCBAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvRmxvYXRpbmdCdXR0b24vdHlwZXMvdHlwZXMudHMuXG5jb25zdCBGTE9BVElOR19CVVRUT05fUE9TSVRJT05TID0gW1xuICAnYm90dG9tLWxlZnQnLFxuICAnbWlkZGxlLWxlZnQnLFxuICAnbWlkZGxlLXJpZ2h0JyxcbiAgJ2JvdHRvbS1yaWdodCcsXG5dIGFzIGNvbnN0O1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uID0+IHtcbiAgaWYgKChGTE9BVElOR19CVVRUT05fUE9TSVRJT05TIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhwb3NpdGlvbikpIHtcbiAgICByZXR1cm4gcG9zaXRpb24gYXMgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbjtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcG9zaXRpb246ICR7cG9zaXRpb259YCk7XG59O1xuXG5jb25zdCB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cCA9IChcbiAgdjNSb290Q29uZmlnOiBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4pOiBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPT4ge1xuICBjb25zdCB7IHVpQ29uZmlncyB9ID0gdjNSb290Q29uZmlnO1xuICBpZiAoIXVpQ29uZmlncykgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmbG9hdGluZ0J1dHRvbiwgbG9va0FuZEZlZWwgfSA9IHVpQ29uZmlncyBhcyBhbnk7XG4gIGlmICghZmxvYXRpbmdCdXR0b24gfHwgIWxvb2tBbmRGZWVsKSByZXR1cm4gdjNSb290Q29uZmlnO1xuICBjb25zdCB7IGZvbnRTaXplLCBsaW5lSGVpZ2h0LCBsZXR0ZXJTcGFjaW5nIH0gPSBsb29rQW5kRmVlbC50eXBvZ3JhcGh5IGFzIGFueTtcbiAgcmV0dXJuIHtcbiAgICAuLi52M1Jvb3RDb25maWcsXG4gICAgdWlDb25maWdzOiB7XG4gICAgICAuLi51aUNvbmZpZ3MsXG4gICAgICBmbG9hdGluZ0J1dHRvbjoge1xuICAgICAgICAuLi5mbG9hdGluZ0J1dHRvbixcbiAgICAgICAgcG9zaXRpb246IG1hcFBvc2l0aW9uVG9DYW1lbENhc2UoXG4gICAgICAgICAgdjNSb290Q29uZmlnLnVpQ29uZmlncz8uZmxvYXRpbmdCdXR0b24/LnBvc2l0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBsb29rQW5kRmVlbDoge1xuICAgICAgICAuLi5sb29rQW5kRmVlbCxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29EYXJrU3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0RhcmtTcmMgfHwgbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29TcmMsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvTGlnaHRTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvTGlnaHRTcmMgfHwgbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29TcmMsXG4gICAgICAgIHR5cG9ncmFwaHk6IHtcbiAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LFxuICAgICAgICAgIGZvbnRTaXplOiB7XG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxldHRlclNwYWNpbmcsXG4gICAgICAgICAgICBiMTogbGV0dGVyU3BhY2luZz8uYjEgfHwgbGV0dGVyU3BhY2luZz8uYl8xLFxuICAgICAgICAgICAgYjI6IGxldHRlclNwYWNpbmc/LmIyIHx8IGxldHRlclNwYWNpbmc/LmJfMixcbiAgICAgICAgICAgIGIzOiBsZXR0ZXJTcGFjaW5nPy5iMyB8fCBsZXR0ZXJTcGFjaW5nPy5iXzMsXG4gICAgICAgICAgICBiNDogbGV0dGVyU3BhY2luZz8uYjQgfHwgbGV0dGVyU3BhY2luZz8uYl80LFxuICAgICAgICAgICAgYjU6IGxldHRlclNwYWNpbmc/LmI1IHx8IGxldHRlclNwYWNpbmc/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsZXR0ZXJTcGFjaW5nPy5oMSB8fCBsZXR0ZXJTcGFjaW5nPy5oXzEsXG4gICAgICAgICAgICBoMjogbGV0dGVyU3BhY2luZz8uaDIgfHwgbGV0dGVyU3BhY2luZz8uaF8yLFxuICAgICAgICAgICAgaDM6IGxldHRlclNwYWNpbmc/LmgzIHx8IGxldHRlclNwYWNpbmc/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsZXR0ZXJTcGFjaW5nPy5sMSB8fCBsZXR0ZXJTcGFjaW5nPy5sXzEsXG4gICAgICAgICAgICBsMjogbGV0dGVyU3BhY2luZz8ubDIgfHwgbGV0dGVyU3BhY2luZz8ubF8yLFxuICAgICAgICAgICAgdDE6IGxldHRlclNwYWNpbmc/LnQxIHx8IGxldHRlclNwYWNpbmc/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsZXR0ZXJTcGFjaW5nPy50MiB8fCBsZXR0ZXJTcGFjaW5nPy50XzIsXG4gICAgICAgICAgICB0MzogbGV0dGVyU3BhY2luZz8udDMgfHwgbGV0dGVyU3BhY2luZz8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5saW5lSGVpZ2h0LFxuICAgICAgICAgICAgJzExNCc6IGxpbmVIZWlnaHQ/LmxoXzExNCB8fCBsaW5lSGVpZ2h0Py5bMTE0XSxcbiAgICAgICAgICAgICcxMTYnOiBsaW5lSGVpZ2h0Py5saF8xMTYgfHwgbGluZUhlaWdodD8uWzExNl0sXG4gICAgICAgICAgICAnMTE4JzogbGluZUhlaWdodD8ubGhfMTE4IHx8IGxpbmVIZWlnaHQ/LlsxMThdLFxuICAgICAgICAgICAgJzEyMCc6IGxpbmVIZWlnaHQ/LmxoXzEyMCB8fCBsaW5lSGVpZ2h0Py5bMTIwXSxcbiAgICAgICAgICAgICcxMjQnOiBsaW5lSGVpZ2h0Py5saF8xMjQgfHwgbGluZUhlaWdodD8uWzEyNF0sXG4gICAgICAgICAgICAnMTI4JzogbGluZUhlaWdodD8ubGhfMTI4IHx8IGxpbmVIZWlnaHQ/LlsxMjhdLFxuICAgICAgICAgICAgJzEzMCc6IGxpbmVIZWlnaHQ/LmxoXzEzMCB8fCBsaW5lSGVpZ2h0Py5bMTMwXSxcbiAgICAgICAgICAgICcxMzMnOiBsaW5lSGVpZ2h0Py5saF8xMzMgfHwgbGluZUhlaWdodD8uWzEzM10sXG4gICAgICAgICAgICAnMTQwJzogbGluZUhlaWdodD8ubGhfMTQwIHx8IGxpbmVIZWlnaHQ/LlsxNDBdLFxuICAgICAgICAgICAgJzE0OCc6IGxpbmVIZWlnaHQ/LmxoXzE0OCB8fCBsaW5lSGVpZ2h0Py5bMTQ4XSxcbiAgICAgICAgICAgIGIxOiBsaW5lSGVpZ2h0Py5iMSB8fCBsaW5lSGVpZ2h0Py5iXzEsXG4gICAgICAgICAgICBiMjogbGluZUhlaWdodD8uYjIgfHwgbGluZUhlaWdodD8uYl8yLFxuICAgICAgICAgICAgYjM6IGxpbmVIZWlnaHQ/LmIzIHx8IGxpbmVIZWlnaHQ/LmJfMyxcbiAgICAgICAgICAgIGI0OiBsaW5lSGVpZ2h0Py5iNCB8fCBsaW5lSGVpZ2h0Py5iXzQsXG4gICAgICAgICAgICBiNTogbGluZUhlaWdodD8uYjUgfHwgbGluZUhlaWdodD8uYl81LFxuICAgICAgICAgICAgaDE6IGxpbmVIZWlnaHQ/LmgxIHx8IGxpbmVIZWlnaHQ/LmhfMSxcbiAgICAgICAgICAgIGgyOiBsaW5lSGVpZ2h0Py5oMiB8fCBsaW5lSGVpZ2h0Py5oXzIsXG4gICAgICAgICAgICBoMzogbGluZUhlaWdodD8uaDMgfHwgbGluZUhlaWdodD8uaF8zLFxuICAgICAgICAgICAgbDE6IGxpbmVIZWlnaHQ/LmwxIHx8IGxpbmVIZWlnaHQ/LmxfMSxcbiAgICAgICAgICAgIGwyOiBsaW5lSGVpZ2h0Py5sMiB8fCBsaW5lSGVpZ2h0Py5sXzIsXG4gICAgICAgICAgICB0MTogbGluZUhlaWdodD8udDEgfHwgbGluZUhlaWdodD8udF8xLFxuICAgICAgICAgICAgdDI6IGxpbmVIZWlnaHQ/LnQyIHx8IGxpbmVIZWlnaHQ/LnRfMixcbiAgICAgICAgICAgIHQzOiBsaW5lSGVpZ2h0Py50MyB8fCBsaW5lSGVpZ2h0Py50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn07XG5cbi8vIFR1cm5zIGEgcmF3IHByb2R1Y3RzQ29uZmlnIHBheWxvYWQgKGZyb20gZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24gb3Jcbi8vIGdldFdpZGdldENvbmZpZykgaW50byB0aGUgY2FtZWxDYXNlIEdyYXBoUWxDb25maWdWYWx1ZXMgc2hhcGUgdGhlIHJlc3Qgb2Zcbi8vIHRoZSB0b29sa2l0IGNvbnN1bWVzLiBSZXR1cm5zIG1vY2sgY29uZmlnIHdoZW4gY29sb3JzIGFyZSBhYnNlbnQuXG5jb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hHcmFwaFFMQ29uZmlnID0gYXN5bmMgKFxuICBiYXNlVXJsOiBzdHJpbmcsXG4gIGFwaUtleTogc3RyaW5nLFxuKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcXVlcnkgPSBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5IH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgZXJyb3JzOiAke0pTT04uc3RyaW5naWZ5KHJlc3VsdC5lcnJvcnMpfWApO1xuICAgIH1cblxuICAgIGxvZ2dlci5sb2dEZWJ1ZygnZmV0Y2hHcmFwaFFMQ29uZmlnIHwgUmV0dXJuaW5nIHYzIGNvbmZpZycpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHJlc3VsdC5kYXRhLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaEdyYXBoUUxDb25maWcgfCBFcnJvciBmZXRjaGluZyBHcmFwaFFMIGNvbmZpZycsIGVycik7XG4gICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgfVxufTtcblxuLy8gU3RhdHNpZy1leHBlcmltZW50LWF3YXJlIHVuaWZpZWQgY29uZmlnIHBhdGguIENhbGxlZCB3aGVuIHRoZVxuLy8gYHVzZV91bmlmaWVkX2NvbmZpZ2AgU3RhdHNpZyBnYXRlIGlzIG9uLiBSZXR1cm5zIHRoZSBzYW1lIHNoYXBlIGFzXG4vLyBmZXRjaEdyYXBoUUxDb25maWcgd2l0aCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm8gdXNlZCB0byBwaWNrIHRoZVxuLy8gdmVyc2lvbiBhdHRhY2hlZCDigJQgY2FsbGVycyB0aHJlYWQgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG8gZG93bnN0cmVhbVxuLy8gaW5mZXJlbmNlIHJlcXVlc3RzIHNvIGluZmVyZW5jZSBpcyBzY29wZWQgdG8gdGhlIHZlcnNpb24gdGhhdCBwcm9kdWNlZFxuLy8gdGhlIHdpZGdldHMgdGhlIHVzZXIgaXMgcmVuZGVyaW5nLiBBIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC9cbi8vIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIFVSTCBwYXJhbSwgd2hlbiBwcmVzZW50LCBpcyB0aHJlYWRlZCB0aHJvdWdoIGFzXG4vLyB0aGUgYHZlcnNpb25gIHZhcmlhYmxlIHRvIHBpbiBhIHNwZWNpZmljIGNvbmZpZyB2ZXJzaW9uIChtYXRjaGVzIHRoZVxuLy8gbGVnYWN5IHBhdGgncyBkZWJ1Zy9yb2xsYmFjayBhZmZvcmRhbmNlKS5cbmV4cG9ydCBjb25zdCBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnID0gYXN5bmMgKFxuICBiYXNlVXJsOiBzdHJpbmcsXG4gIGFwaUtleTogc3RyaW5nLFxuICB1c2VySWQ6IHN0cmluZyxcbik6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0V2lkZ2V0Q29uZmlnUXVlcnkoKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gY29uZmlnVmVyc2lvbk92ZXJyaWRlKCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXM6IHsgdXNlcklkLCB2ZXJzaW9uIH0gfSksXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gcmVzdWx0LmRhdGEubWUuZ2V0V2lkZ2V0Q29uZmlnO1xuICAgIHJldHVybiB7XG4gICAgICAuLi50cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHdpZGdldENvbmZpZz8ucHJvZHVjdHNDb25maWcpLFxuICAgICAgcmVzb2x1dGlvbjogd2lkZ2V0Q29uZmlnPy5yZXNvbHV0aW9uIGFzIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIHwgRXJyb3IgZmV0Y2hpbmcgdW5pZmllZCBHcmFwaFFMIGNvbmZpZycsIGVycik7XG4gICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFzQkEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLHFCQUFxQjtBQUsvQyxNQUFhQyx3QkFBNkMsQ0FDeEQ7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixnQkFBZ0IsRUFBRTtDQUNsQixjQUFjLENBQUMsRUFBRSxVQUFVQywyQ0FBb0IsYUFBYSxDQUFDO0NBQzlELEVBQ0Q7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLG9CQUFvQjtDQUNwQixnQkFBZ0IsRUFBRTtDQUNsQixjQUFjLENBQUMsRUFBRSxVQUFVQSwyQ0FBb0IsYUFBYSxDQUFDO0NBQzlELENBQ0Y7QUFJRCxNQUFNLDRCQUE0QjtDQUNoQztDQUNBO0NBQ0E7Q0FDQTtDQUNEO0FBRUQsTUFBTSwwQkFBMEIsYUFBNkM7QUFDM0UsS0FBSywwQkFBZ0QsU0FBUyxTQUFTLENBQ3JFLFFBQU87QUFFVCxPQUFNLElBQUksTUFBTSxxQkFBcUIsV0FBVzs7QUFHbEQsTUFBTSwyQkFDSixpQkFDNkI7Q0FDN0IsTUFBTSxFQUFFLGNBQWM7QUFDdEIsS0FBSSxDQUFDLFVBQVcsUUFBTztDQUN2QixNQUFNLEVBQUUsZ0JBQWdCLGdCQUFnQjtBQUN4QyxLQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBYSxRQUFP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
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { PageVariantTestType } from "../../contexts/types.js";
|
|
2
1
|
import logger_default from "../../application/logging/logger.js";
|
|
3
2
|
import { configVersionOverride } from "../../types/config-versions.js";
|
|
4
3
|
import { transformSnakeToCamel } from "../../application/models/utils/snakeToCamelTransformer.js";
|
|
4
|
+
import { PageVariantTestType } from "../../contexts/types.js";
|
|
5
5
|
import { validateAndTransformMountingConfig, validateAndTransformPageVariants } from "../../application/models/validators/validateGraphQLFrontendConfig.js";
|
|
6
6
|
import "../../application/models/index.js";
|
|
7
7
|
import { getColorsAndFrontendQuery } from "../../application/models/graphql/queries/getColorsAndFrontendQuery.js";
|
|
8
8
|
import { getWidgetConfigQuery } from "../../application/models/graphql/queries/getWidgetConfigQuery.js";
|
|
9
9
|
import { mockV3ColorsConfig, mockV3FrontendConfig } from "../../contexts/graphqlContext/mockV3Config.js";
|
|
10
|
-
import { FloatingButtonLocation } from "@envive-ai/react-toolkit-v3/FloatingButton";
|
|
11
10
|
|
|
12
11
|
//#region src/services/enviveConfigService/fetchGraphQLConfig.ts
|
|
13
12
|
const logger = new logger_default("fetchGraphQLConfig");
|
|
@@ -24,11 +23,14 @@ const DEFAULT_PAGE_VARIANTS = [{
|
|
|
24
23
|
widgetMounting: [],
|
|
25
24
|
variantTests: [{ testType: PageVariantTestType.UrlResolver }]
|
|
26
25
|
}];
|
|
26
|
+
const FLOATING_BUTTON_POSITIONS = [
|
|
27
|
+
"bottom-left",
|
|
28
|
+
"middle-left",
|
|
29
|
+
"middle-right",
|
|
30
|
+
"bottom-right"
|
|
31
|
+
];
|
|
27
32
|
const mapPositionToCamelCase = (position) => {
|
|
28
|
-
if (position
|
|
29
|
-
if (position === "middle-left") return FloatingButtonLocation.MIDDLE_LEFT;
|
|
30
|
-
if (position === "middle-right") return FloatingButtonLocation.MIDDLE_RIGHT;
|
|
31
|
-
if (position === "bottom-right") return FloatingButtonLocation.BOTTOM_RIGHT;
|
|
33
|
+
if (FLOATING_BUTTON_POSITIONS.includes(position)) return position;
|
|
32
34
|
throw new Error(`Invalid position: ${position}`);
|
|
33
35
|
};
|
|
34
36
|
const v3FrontendConfigCleanup = (v3RootConfig) => {
|
|
@@ -226,4 +228,4 @@ const fetchUnifiedGraphQLConfig = async (baseUrl, apiKey, userId) => {
|
|
|
226
228
|
|
|
227
229
|
//#endregion
|
|
228
230
|
export { fetchGraphQLConfig, fetchUnifiedGraphQLConfig };
|
|
229
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbmltcG9ydCB7IEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvRmxvYXRpbmdCdXR0b24nO1xuaW1wb3J0IHsgZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldENvbG9yc0FuZEZyb250ZW5kUXVlcnknO1xuaW1wb3J0IHsgZ2V0V2lkZ2V0Q29uZmlnUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRXaWRnZXRDb25maWdRdWVyeSc7XG5pbXBvcnQgeyBtb2NrVjNDb2xvcnNDb25maWcsIG1vY2tWM0Zyb250ZW5kQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0L21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IFBhZ2VWYXJpYW50Q29uZmlnLCBQYWdlVmFyaWFudFRlc3RUeXBlLCBXaWRnZXRNb3VudGluZ0NvbmZpZyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlcyc7XG5pbXBvcnQgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0JztcbmltcG9ydCB7IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSB9IGZyb20gJ3NyYy90eXBlcy9jb25maWctdmVyc2lvbnMnO1xuaW1wb3J0IHsgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbmNvbnN0IG1hcFBvc2l0aW9uVG9DYW1lbENhc2UgPSAocG9zaXRpb246IHN0cmluZyk6IEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gPT4ge1xuICBpZiAocG9zaXRpb24gPT09ICdib3R0b20tbGVmdCcpIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLkJPVFRPTV9MRUZUO1xuICBpZiAocG9zaXRpb24gPT09ICdtaWRkbGUtbGVmdCcpIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9MRUZUO1xuICBpZiAocG9zaXRpb24gPT09ICdtaWRkbGUtcmlnaHQnKSByZXR1cm4gRmxvYXRpbmdCdXR0b25Mb2NhdGlvbi5NSURETEVfUklHSFQ7XG4gIGlmIChwb3NpdGlvbiA9PT0gJ2JvdHRvbS1yaWdodCcpIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLkJPVFRPTV9SSUdIVDtcbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uIG9yXG4vLyBnZXRXaWRnZXRDb25maWcpIGludG8gdGhlIGNhbWVsQ2FzZSBHcmFwaFFsQ29uZmlnVmFsdWVzIHNoYXBlIHRoZSByZXN0IG9mXG4vLyB0aGUgdG9vbGtpdCBjb25zdW1lcy4gUmV0dXJucyBtb2NrIGNvbmZpZyB3aGVuIGNvbG9ycyBhcmUgYWJzZW50LlxuY29uc3QgdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyA9IChcbiAgcHJvZHVjdHNDb25maWc6XG4gICAgfCB7XG4gICAgICAgIGZyb250ZW5kPzogeyB2YWx1ZXM/OiB7IG1lcmNoYW50X292ZXJyaWRlX2Nzcz86IHN0cmluZyB9IH07XG4gICAgICAgIHZfdGhyZWVfY29uZmlnPzogeyB2YWx1ZXM/OiBhbnkgfTtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZCxcbik6IEdyYXBoUWxDb25maWdWYWx1ZXMgPT4ge1xuICBjb25zdCB2M1Jvb3RDb25maWcgPSBwcm9kdWN0c0NvbmZpZz8udl90aHJlZV9jb25maWc/LnZhbHVlcztcbiAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSBwcm9kdWN0c0NvbmZpZz8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICBpZiAoIXYzUm9vdENvbmZpZz8uY29sb3JzKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCd0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIHwgTm8gY29sb3JzIGZvdW5kLCByZXR1cm5pbmcgbW9jayBjb25maWcnKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3JzQ29uZmlnOiBtb2NrVjNDb2xvcnNDb25maWcsXG4gICAgICBmcm9udGVuZENvbmZpZzogbW9ja1YzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICBwYWdlVmFyaWFudHM6IERFRkFVTFRfUEFHRV9WQVJJQU5UUyxcbiAgICAgICAgd2lkZ2V0Q29uZmlnczoge30sXG4gICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZykgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICApO1xuXG4gIGNvbnN0IG1lcmNoYW50T3ZlcnJpZGVDc3MgPVxuICAgIHYzRnJvbnRlbmRDb25maWcudWlDb25maWdzPy5tZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kVmFsdWVzPy5tZXJjaGFudF9vdmVycmlkZV9jc3M7XG5cbiAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIHsga2V5OiBzdHJpbmc7IGNvbmZpZzogV2lkZ2V0TW91bnRpbmdDb25maWcgfVtdO1xuICBjb25zdCB2M01vdW50aW5nQ29uZmlncyA9IHYzTW91bnRpbmdDb25maWdzQXJyYXkucmVkdWNlKFxuICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIG1vdW50aW5nIGNvbmZpZywgc2tpcHBpbmcnLCBlcnJvciwgeyBrZXkgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICApO1xuXG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LndpZGdldF9jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICB2M1dpZGdldENvbmZpZ3NBcnJheT8ubWFwKCh7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH06IFdpZGdldENvbmZpZ1YzKSA9PiBbXG4gICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICBdKSxcbiAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG5cbiAgY29uc3QgdjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBBcnJheS5pc0FycmF5KHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cylcbiAgICA/IHYzUm9vdENvbmZpZy5wYWdlX3ZhcmlhbnRzLnJlZHVjZSgoYWNjOiBQYWdlVmFyaWFudENvbmZpZ1tdLCB2YXJpYW50OiB1bmtub3duKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYWNjLnB1c2godmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHModmFyaWFudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIHBhZ2UgdmFyaWFudCwgc2tpcHBpbmcnLCBlcnJvciwgeyB2YXJpYW50IH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSlcbiAgICA6IERFRkFVTFRfUEFHRV9WQVJJQU5UUztcblxuICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICByZXR1cm4ge1xuICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgLi4uKHYzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgIG1lcmNoYW50T3ZlcnJpZGVDc3MsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgfSxcbiAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgbW91bnRpbmdDb25maWdzOiB2M01vdW50aW5nQ29uZmlncyxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZldGNoR3JhcGhRTENvbmZpZyA9IGFzeW5jIChcbiAgYmFzZVVybDogc3RyaW5nLFxuICBhcGlLZXk6IHN0cmluZyxcbik6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSgpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vdjEvZ3JhcGhxbGAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBxdWVyeSB9KSxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBpZiAocmVzdWx0LmVycm9ycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICB9XG5cbiAgICBsb2dnZXIubG9nRGVidWcoJ2ZldGNoR3JhcGhRTENvbmZpZyB8IFJldHVybmluZyB2MyBjb25maWcnKTtcbiAgICByZXR1cm4gdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyhyZXN1bHQuZGF0YS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5sb2dFcnJvcignZmV0Y2hHcmFwaFFMQ29uZmlnIHwgRXJyb3IgZmV0Y2hpbmcgR3JhcGhRTCBjb25maWcnLCBlcnIpO1xuICAgIHJldHVybiB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkIH07XG4gIH1cbn07XG5cbi8vIFN0YXRzaWctZXhwZXJpbWVudC1hd2FyZSB1bmlmaWVkIGNvbmZpZyBwYXRoLiBDYWxsZWQgd2hlbiB0aGVcbi8vIGB1c2VfdW5pZmllZF9jb25maWdgIFN0YXRzaWcgZ2F0ZSBpcyBvbi4gUmV0dXJucyB0aGUgc2FtZSBzaGFwZSBhc1xuLy8gZmV0Y2hHcmFwaFFMQ29uZmlnIHdpdGggdGhlIHJlc29sdXRpb24gbWV0YWRhdGEgcHltb25vIHVzZWQgdG8gcGljayB0aGVcbi8vIHZlcnNpb24gYXR0YWNoZWQg4oCUIGNhbGxlcnMgdGhyZWFkIGByZXNvbHV0aW9uLmJhc2VWZXJzaW9uYCBpbnRvIGRvd25zdHJlYW1cbi8vIGluZmVyZW5jZSByZXF1ZXN0cyBzbyBpbmZlcmVuY2UgaXMgc2NvcGVkIHRvIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWRcbi8vIHRoZSB3aWRnZXRzIHRoZSB1c2VyIGlzIHJlbmRlcmluZy4gQSBgc3BpZmZ5X2NvbmZpZ192ZXJzaW9uYCAvXG4vLyBgZW52aXZlX2NvbmZpZ192ZXJzaW9uYCBVUkwgcGFyYW0sIHdoZW4gcHJlc2VudCwgaXMgdGhyZWFkZWQgdGhyb3VnaCBhc1xuLy8gdGhlIGB2ZXJzaW9uYCB2YXJpYWJsZSB0byBwaW4gYSBzcGVjaWZpYyBjb25maWcgdmVyc2lvbiAobWF0Y2hlcyB0aGVcbi8vIGxlZ2FjeSBwYXRoJ3MgZGVidWcvcm9sbGJhY2sgYWZmb3JkYW5jZSkuXG5leHBvcnQgY29uc3QgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyA9IGFzeW5jIChcbiAgYmFzZVVybDogc3RyaW5nLFxuICBhcGlLZXk6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4pOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBxdWVyeSA9IGdldFdpZGdldENvbmZpZ1F1ZXJ5KCk7XG4gICAgY29uc3QgdmVyc2lvbiA9IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSgpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vdjEvZ3JhcGhxbGAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBxdWVyeSwgdmFyaWFibGVzOiB7IHVzZXJJZCwgdmVyc2lvbiB9IH0pLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgZXJyb3JzOiAke0pTT04uc3RyaW5naWZ5KHJlc3VsdC5lcnJvcnMpfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZGdldENvbmZpZyA9IHJlc3VsdC5kYXRhLm1lLmdldFdpZGdldENvbmZpZztcbiAgICByZXR1cm4ge1xuICAgICAgLi4udHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyh3aWRnZXRDb25maWc/LnByb2R1Y3RzQ29uZmlnKSxcbiAgICAgIHJlc29sdXRpb246IHdpZGdldENvbmZpZz8ucmVzb2x1dGlvbiBhcyBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhIHwgdW5kZWZpbmVkLFxuICAgIH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5sb2dFcnJvcignZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyB8IEVycm9yIGZldGNoaW5nIHVuaWZpZWQgR3JhcGhRTCBjb25maWcnLCBlcnIpO1xuICAgIHJldHVybiB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkIH07XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxxQkFBcUI7QUFLL0MsTUFBYUMsd0JBQTZDLENBQ3hEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVSxvQkFBb0IsYUFBYSxDQUFD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
|
|
231
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7IEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmV0Y2hHcmFwaFFMQ29uZmlnJyk7XG5cbnR5cGUgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnVjM+O1xudHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSA9IFtcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BscCcsXG4gICAgdmFyaWFudFR5cGU6ICdwbHAnLFxuICAgIHBscElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXBscC1pZCcsXG4gICAgd2lkZ2V0TW91bnRpbmc6IFtdLFxuICAgIHZhcmlhbnRUZXN0czogW3sgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfV0sXG4gIH0sXG4gIHtcbiAgICB2YXJpYW50SWQ6ICdwZHAnLFxuICAgIHZhcmlhbnRUeXBlOiAncGRwJyxcbiAgICBwcm9kdWN0SWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZCcsXG4gICAgd2lkZ2V0TW91bnRpbmc6IFtdLFxuICAgIHZhcmlhbnRUZXN0czogW3sgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfV0sXG4gIH0sXG5dO1xuXG4vLyBTdHJpbmctbGl0ZXJhbCB2YWx1ZXMgb2YgdGhlIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gZW51bTsga2VlcCBpbiBzeW5jXG4vLyB3aXRoIEBlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbi90eXBlcy90eXBlcy50cy5cbmNvbnN0IEZMT0FUSU5HX0JVVFRPTl9QT1NJVElPTlMgPSBbXG4gICdib3R0b20tbGVmdCcsXG4gICdtaWRkbGUtbGVmdCcsXG4gICdtaWRkbGUtcmlnaHQnLFxuICAnYm90dG9tLXJpZ2h0Jyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IG1hcFBvc2l0aW9uVG9DYW1lbENhc2UgPSAocG9zaXRpb246IHN0cmluZyk6IEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gPT4ge1xuICBpZiAoKEZMT0FUSU5HX0JVVFRPTl9QT1NJVElPTlMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHBvc2l0aW9uKSkge1xuICAgIHJldHVybiBwb3NpdGlvbiBhcyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSByZXR1cm4gdjNSb290Q29uZmlnO1xuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQsIGxldHRlclNwYWNpbmcgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIGIxOiBmb250U2l6ZT8uYjEgfHwgZm9udFNpemU/LmJfMSxcbiAgICAgICAgICAgIGIyOiBmb250U2l6ZT8uYjIgfHwgZm9udFNpemU/LmJfMixcbiAgICAgICAgICAgIGIzOiBmb250U2l6ZT8uYjMgfHwgZm9udFNpemU/LmJfMyxcbiAgICAgICAgICAgIGI0OiBmb250U2l6ZT8uYjQgfHwgZm9udFNpemU/LmJfNCxcbiAgICAgICAgICAgIGI1OiBmb250U2l6ZT8uYjUgfHwgZm9udFNpemU/LmJfNSxcbiAgICAgICAgICAgIGgxOiBmb250U2l6ZT8uaDEgfHwgZm9udFNpemU/LmhfMSxcbiAgICAgICAgICAgIGgyOiBmb250U2l6ZT8uaDIgfHwgZm9udFNpemU/LmhfMixcbiAgICAgICAgICAgIGgzOiBmb250U2l6ZT8uaDMgfHwgZm9udFNpemU/LmhfMyxcbiAgICAgICAgICAgIGwxOiBmb250U2l6ZT8ubDEgfHwgZm9udFNpemU/LmxfMSxcbiAgICAgICAgICAgIGwyOiBmb250U2l6ZT8ubDIgfHwgZm9udFNpemU/LmxfMixcbiAgICAgICAgICAgIHQxOiBmb250U2l6ZT8udDEgfHwgZm9udFNpemU/LnRfMSxcbiAgICAgICAgICAgIHQyOiBmb250U2l6ZT8udDIgfHwgZm9udFNpemU/LnRfMixcbiAgICAgICAgICAgIHQzOiBmb250U2l6ZT8udDMgfHwgZm9udFNpemU/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgIGIxOiBsZXR0ZXJTcGFjaW5nPy5iMSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzEsXG4gICAgICAgICAgICBiMjogbGV0dGVyU3BhY2luZz8uYjIgfHwgbGV0dGVyU3BhY2luZz8uYl8yLFxuICAgICAgICAgICAgYjM6IGxldHRlclNwYWNpbmc/LmIzIHx8IGxldHRlclNwYWNpbmc/LmJfMyxcbiAgICAgICAgICAgIGI0OiBsZXR0ZXJTcGFjaW5nPy5iNCB8fCBsZXR0ZXJTcGFjaW5nPy5iXzQsXG4gICAgICAgICAgICBiNTogbGV0dGVyU3BhY2luZz8uYjUgfHwgbGV0dGVyU3BhY2luZz8uYl81LFxuICAgICAgICAgICAgaDE6IGxldHRlclNwYWNpbmc/LmgxIHx8IGxldHRlclNwYWNpbmc/LmhfMSxcbiAgICAgICAgICAgIGgyOiBsZXR0ZXJTcGFjaW5nPy5oMiB8fCBsZXR0ZXJTcGFjaW5nPy5oXzIsXG4gICAgICAgICAgICBoMzogbGV0dGVyU3BhY2luZz8uaDMgfHwgbGV0dGVyU3BhY2luZz8uaF8zLFxuICAgICAgICAgICAgbDE6IGxldHRlclNwYWNpbmc/LmwxIHx8IGxldHRlclNwYWNpbmc/LmxfMSxcbiAgICAgICAgICAgIGwyOiBsZXR0ZXJTcGFjaW5nPy5sMiB8fCBsZXR0ZXJTcGFjaW5nPy5sXzIsXG4gICAgICAgICAgICB0MTogbGV0dGVyU3BhY2luZz8udDEgfHwgbGV0dGVyU3BhY2luZz8udF8xLFxuICAgICAgICAgICAgdDI6IGxldHRlclNwYWNpbmc/LnQyIHx8IGxldHRlclNwYWNpbmc/LnRfMixcbiAgICAgICAgICAgIHQzOiBsZXR0ZXJTcGFjaW5nPy50MyB8fCBsZXR0ZXJTcGFjaW5nPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgICAgYjE6IGxpbmVIZWlnaHQ/LmIxIHx8IGxpbmVIZWlnaHQ/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsaW5lSGVpZ2h0Py5iMiB8fCBsaW5lSGVpZ2h0Py5iXzIsXG4gICAgICAgICAgICBiMzogbGluZUhlaWdodD8uYjMgfHwgbGluZUhlaWdodD8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxpbmVIZWlnaHQ/LmI0IHx8IGxpbmVIZWlnaHQ/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsaW5lSGVpZ2h0Py5iNSB8fCBsaW5lSGVpZ2h0Py5iXzUsXG4gICAgICAgICAgICBoMTogbGluZUhlaWdodD8uaDEgfHwgbGluZUhlaWdodD8uaF8xLFxuICAgICAgICAgICAgaDI6IGxpbmVIZWlnaHQ/LmgyIHx8IGxpbmVIZWlnaHQ/LmhfMixcbiAgICAgICAgICAgIGgzOiBsaW5lSGVpZ2h0Py5oMyB8fCBsaW5lSGVpZ2h0Py5oXzMsXG4gICAgICAgICAgICBsMTogbGluZUhlaWdodD8ubDEgfHwgbGluZUhlaWdodD8ubF8xLFxuICAgICAgICAgICAgbDI6IGxpbmVIZWlnaHQ/LmwyIHx8IGxpbmVIZWlnaHQ/LmxfMixcbiAgICAgICAgICAgIHQxOiBsaW5lSGVpZ2h0Py50MSB8fCBsaW5lSGVpZ2h0Py50XzEsXG4gICAgICAgICAgICB0MjogbGluZUhlaWdodD8udDIgfHwgbGluZUhlaWdodD8udF8yLFxuICAgICAgICAgICAgdDM6IGxpbmVIZWlnaHQ/LnQzIHx8IGxpbmVIZWlnaHQ/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufTtcblxuLy8gVHVybnMgYSByYXcgcHJvZHVjdHNDb25maWcgcGF5bG9hZCAoZnJvbSBnZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbiBvclxuLy8gZ2V0V2lkZ2V0Q29uZmlnKSBpbnRvIHRoZSBjYW1lbENhc2UgR3JhcGhRbENvbmZpZ1ZhbHVlcyBzaGFwZSB0aGUgcmVzdCBvZlxuLy8gdGhlIHRvb2xraXQgY29uc3VtZXMuIFJldHVybnMgbW9jayBjb25maWcgd2hlbiBjb2xvcnMgYXJlIGFic2VudC5cbmNvbnN0IHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgPSAoXG4gIHByb2R1Y3RzQ29uZmlnOlxuICAgIHwge1xuICAgICAgICBmcm9udGVuZD86IHsgdmFsdWVzPzogeyBtZXJjaGFudF9vdmVycmlkZV9jc3M/OiBzdHJpbmcgfSB9O1xuICAgICAgICB2X3RocmVlX2NvbmZpZz86IHsgdmFsdWVzPzogYW55IH07XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQsXG4pOiBHcmFwaFFsQ29uZmlnVmFsdWVzID0+IHtcbiAgY29uc3QgdjNSb290Q29uZmlnID0gcHJvZHVjdHNDb25maWc/LnZfdGhyZWVfY29uZmlnPy52YWx1ZXM7XG4gIGNvbnN0IGZyb250ZW5kVmFsdWVzID0gcHJvZHVjdHNDb25maWc/LmZyb250ZW5kPy52YWx1ZXM7XG5cbiAgaWYgKCF2M1Jvb3RDb25maWc/LmNvbG9ycykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygndHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyB8IE5vIGNvbG9ycyBmb3VuZCwgcmV0dXJuaW5nIG1vY2sgY29uZmlnJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yc0NvbmZpZzogbW9ja1YzQ29sb3JzQ29uZmlnLFxuICAgICAgZnJvbnRlbmRDb25maWc6IG1vY2tWM0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgcGFnZVZhcmlhbnRzOiBERUZBVUxUX1BBR0VfVkFSSUFOVFMsXG4gICAgICAgIHdpZGdldENvbmZpZ3M6IHt9LFxuICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHt9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdjNGcm9udGVuZENvbmZpZyA9IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwKFxuICAgIHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWcpIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgKTtcblxuICBjb25zdCBtZXJjaGFudE92ZXJyaWRlQ3NzID1cbiAgICB2M0Zyb250ZW5kQ29uZmlnLnVpQ29uZmlncz8ubWVyY2hhbnRPdmVycmlkZUNzcyB8fCBmcm9udGVuZFZhbHVlcz8ubWVyY2hhbnRfb3ZlcnJpZGVfY3NzO1xuXG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ubW91bnRpbmdfY29uZmlncykgPz9cbiAgICBbXSkgYXMgdW5rbm93biBhcyB7IGtleTogc3RyaW5nOyBjb25maWc6IFdpZGdldE1vdW50aW5nQ29uZmlnIH1bXTtcbiAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3MgPSB2M01vdW50aW5nQ29uZmlnc0FycmF5LnJlZHVjZShcbiAgICAoYWNjLCB7IGtleSwgY29uZmlnIH0pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyhjb25maWcsIGtleSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIubG9nV2FybignSW52YWxpZCBtb3VudGluZyBjb25maWcsIHNraXBwaW5nJywgZXJyb3IsIHsga2V5IH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPixcbiAgKTtcblxuICBjb25zdCB2M1dpZGdldENvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy53aWRnZXRfY29uZmlncykgPz9cbiAgICBbXSkgYXMgdW5rbm93biBhcyBXaWRnZXRDb25maWdWM1tdO1xuICBjb25zdCB2M1dpZGdldENvbmZpZ3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgdjNXaWRnZXRDb25maWdzQXJyYXk/Lm1hcCgoeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9OiBXaWRnZXRDb25maWdWMykgPT4gW1xuICAgICAgd2lkZ2V0Q29uZmlnSWQsXG4gICAgICB7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH0gYXMgV2lkZ2V0Q29uZmlnVjMsXG4gICAgXSksXG4gICkgYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0Q29uZmlnVjM+O1xuXG4gIGNvbnN0IHYzcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gQXJyYXkuaXNBcnJheSh2M1Jvb3RDb25maWc/LnBhZ2VfdmFyaWFudHMpXG4gICAgPyB2M1Jvb3RDb25maWcucGFnZV92YXJpYW50cy5yZWR1Y2UoKGFjYzogUGFnZVZhcmlhbnRDb25maWdbXSwgdmFyaWFudDogdW5rbm93bikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGFjYy5wdXNoKHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzKHZhcmlhbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dnZXIubG9nV2FybignSW52YWxpZCBwYWdlIHZhcmlhbnQsIHNraXBwaW5nJywgZXJyb3IsIHsgdmFyaWFudCB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pXG4gICAgOiBERUZBVUxUX1BBR0VfVkFSSUFOVFM7XG5cbiAgY29uc3QgdjNDb2xvcnNDb25maWcgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5jb2xvcnM/LnZhbHVlcyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb2xvcnNDb25maWc6IHYzQ29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UsXG4gICAgZnJvbnRlbmRDb25maWc6IHtcbiAgICAgIC4uLih2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICBtZXJjaGFudE92ZXJyaWRlQ3NzLFxuICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgIH0sXG4gICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgcGFnZVZhcmlhbnRzOiB2M3BhZ2VWYXJpYW50cyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgIG1vdW50aW5nQ29uZmlnczogdjNNb3VudGluZ0NvbmZpZ3MsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaEdyYXBoUUxDb25maWcgPSBhc3luYyAoXG4gIGJhc2VVcmw6IHN0cmluZyxcbiAgYXBpS2V5OiBzdHJpbmcsXG4pOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBxdWVyeSA9IGdldENvbG9yc0FuZEZyb250ZW5kUXVlcnkoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnkgfSksXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gICAgfVxuXG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdmZXRjaEdyYXBoUUxDb25maWcgfCBSZXR1cm5pbmcgdjMgY29uZmlnJyk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcocmVzdWx0LmRhdGEubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2ZldGNoR3JhcGhRTENvbmZpZyB8IEVycm9yIGZldGNoaW5nIEdyYXBoUUwgY29uZmlnJywgZXJyKTtcbiAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICB9XG59O1xuXG4vLyBTdGF0c2lnLWV4cGVyaW1lbnQtYXdhcmUgdW5pZmllZCBjb25maWcgcGF0aC4gQ2FsbGVkIHdoZW4gdGhlXG4vLyBgdXNlX3VuaWZpZWRfY29uZmlnYCBTdGF0c2lnIGdhdGUgaXMgb24uIFJldHVybnMgdGhlIHNhbWUgc2hhcGUgYXNcbi8vIGZldGNoR3JhcGhRTENvbmZpZyB3aXRoIHRoZSByZXNvbHV0aW9uIG1ldGFkYXRhIHB5bW9ubyB1c2VkIHRvIHBpY2sgdGhlXG4vLyB2ZXJzaW9uIGF0dGFjaGVkIOKAlCBjYWxsZXJzIHRocmVhZCBgcmVzb2x1dGlvbi5iYXNlVmVyc2lvbmAgaW50byBkb3duc3RyZWFtXG4vLyBpbmZlcmVuY2UgcmVxdWVzdHMgc28gaW5mZXJlbmNlIGlzIHNjb3BlZCB0byB0aGUgdmVyc2lvbiB0aGF0IHByb2R1Y2VkXG4vLyB0aGUgd2lkZ2V0cyB0aGUgdXNlciBpcyByZW5kZXJpbmcuIEEgYHNwaWZmeV9jb25maWdfdmVyc2lvbmAgL1xuLy8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgVVJMIHBhcmFtLCB3aGVuIHByZXNlbnQsIGlzIHRocmVhZGVkIHRocm91Z2ggYXNcbi8vIHRoZSBgdmVyc2lvbmAgdmFyaWFibGUgdG8gcGluIGEgc3BlY2lmaWMgY29uZmlnIHZlcnNpb24gKG1hdGNoZXMgdGhlXG4vLyBsZWdhY3kgcGF0aCdzIGRlYnVnL3JvbGxiYWNrIGFmZm9yZGFuY2UpLlxuZXhwb3J0IGNvbnN0IGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcgPSBhc3luYyAoXG4gIGJhc2VVcmw6IHN0cmluZyxcbiAgYXBpS2V5OiBzdHJpbmcsXG4gIHVzZXJJZDogc3RyaW5nLFxuKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcXVlcnkgPSBnZXRXaWRnZXRDb25maWdRdWVyeSgpO1xuICAgIGNvbnN0IHZlcnNpb24gPSBjb25maWdWZXJzaW9uT3ZlcnJpZGUoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnksIHZhcmlhYmxlczogeyB1c2VySWQsIHZlcnNpb24gfSB9KSxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBpZiAocmVzdWx0LmVycm9ycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB3aWRnZXRDb25maWcgPSByZXN1bHQuZGF0YS5tZS5nZXRXaWRnZXRDb25maWc7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnPy5wcm9kdWN0c0NvbmZpZyksXG4gICAgICByZXNvbHV0aW9uOiB3aWRnZXRDb25maWc/LnJlc29sdXRpb24gYXMgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2ZldGNoVW5pZmllZEdyYXBoUUxDb25maWcgfCBFcnJvciBmZXRjaGluZyB1bmlmaWVkIEdyYXBoUUwgY29uZmlnJywgZXJyKTtcbiAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQXNCQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxxQkFBcUI7QUFLL0MsTUFBYUMsd0JBQTZDLENBQ3hEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVSxvQkFBb0IsYUFBYSxDQUFDO0NBQzlELEVBQ0Q7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLG9CQUFvQjtDQUNwQixnQkFBZ0IsRUFBRTtDQUNsQixjQUFjLENBQUMsRUFBRSxVQUFVLG9CQUFvQixhQUFhLENBQUM7Q0FDOUQsQ0FDRjtBQUlELE1BQU0sNEJBQTRCO0NBQ2hDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxNQUFNLDBCQUEwQixhQUE2QztBQUMzRSxLQUFLLDBCQUFnRCxTQUFTLFNBQVMsQ0FDckUsUUFBTztBQUVULE9BQU0sSUFBSSxNQUFNLHFCQUFxQixXQUFXOztBQUdsRCxNQUFNLDJCQUNKLGlCQUM2QjtDQUM3QixNQUFNLEVBQUUsY0FBYztBQUN0QixLQUFJLENBQUMsVUFBVyxRQUFPO0NBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0IsZ0JBQWdCO0FBQ3hDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFhLFFBQU87Q0FDNUMsTUFBTSxFQUFFLFVBQVUsWUFBWSxrQkFBa0IsWUFBWTtBQUM1RCxRQUFPO0VBQ0wsR0FBRztFQUNILFdBQVc7R0FDVCxHQUFHO0dBQ0gsZ0JBQWdCO0lBQ2QsR0FBRztJQUNILFVBQVUsdUJBQ1IsYUFBYSxXQUFXLGdCQUFnQixTQUN6QztJQUNGO0dBQ0QsYUFBYTtJQUNYLEdBQUc7SUFDSCx1QkFBdUIsWUFBWSx5QkFBeUIsWUFBWTtJQUN4RSx3QkFBd0IsWUFBWSwwQkFBMEIsWUFBWTtJQUMxRSxZQUFZO0tBQ1YsR0FBRyxZQUFZO0tBQ2YsVUFBVTtNQUNSLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDL0I7S0FDRCxlQUFlO01BQ2IsR0FBRyxZQUFZLFdBQVc7TUFDMUIsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN6QztLQUNELFlBQVk7TUFDVixHQUFHLFlBQVksV0FBVztNQUMxQixPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbkM7S0FDRjtJQUNGO0dBQ0Y7RUFDRjs7QUFNSCxNQUFNLDZCQUNKLG1CQU13QjtDQUN4QixNQUFNLGVBQWUsZ0JBQWdCLGdCQUFnQjtDQUNyRCxNQUFNLGlCQUFpQixnQkFBZ0IsVUFBVTtBQUVqRCxLQUFJLENBQUMsY0FBYyxRQUFRO0FBQ3pCLFNBQU8sU0FBUyxxRUFBcUU7QUFDckYsU0FBTztHQUNMLGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsZUFBZTtJQUNiLGNBQWM7SUFDZCxlQUFlLEVBQUU7SUFDakIsaUJBQWlCLEVBQUU7SUFDcEI7R0FDRjs7Q0FHSCxNQUFNLG1CQUFtQix3QkFDdkIsc0JBQXNCLGFBQWEsQ0FDcEM7Q0FFRCxNQUFNLHNCQUNKLGlCQUFpQixXQUFXLHVCQUF1QixnQkFBZ0I7Q0FJckUsTUFBTSxxQkFGMEIsc0JBQXNCLGNBQWMsaUJBQWlCLElBQ25GLEVBQUUsRUFDNkMsUUFDOUMsS0FBSyxFQUFFLEtBQUssYUFBYTtBQUN4QixNQUFJO0FBQ0YsT0FBSSxPQUFPLG1DQUFtQyxRQUFRLElBQUk7V0FDbkQsT0FBTztBQUNkLFVBQU8sUUFBUSxxQ0FBcUMsT0FBTyxFQUFFLEtBQUssQ0FBQzs7QUFFckUsU0FBTztJQUVULEVBQUUsQ0FDSDtDQUVELE1BQU0sdUJBQXdCLHNCQUFzQixjQUFjLGVBQWUsSUFDL0UsRUFBRTtDQUNKLE1BQU0sa0JBQWtCLE9BQU8sWUFDN0Isc0JBQXNCLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxXQUEyQixDQUN6RSxnQkFDQTtFQUFFO0VBQWdCLEdBQUc7RUFBTSxDQUM1QixDQUFDLENBQ0g7Q0FFRCxNQUFNQyxpQkFBc0MsTUFBTSxRQUFRLGNBQWMsY0FBYyxHQUNsRixhQUFhLGNBQWMsUUFBUSxLQUEwQixZQUFxQjtBQUNoRixNQUFJO0FBQ0YsT0FBSSxLQUFLLGlDQUFpQyxRQUFtQyxDQUFDO1dBQ3ZFLE9BQU87QUFDZCxVQUFPLFFBQVEsa0NBQWtDLE9BQU8sRUFBRSxTQUFTLENBQUM7O0FBRXRFLFNBQU87SUFDTixFQUFFLENBQUMsR0FDTjtBQUlKLFFBQU87RUFDTCxjQUhxQixzQkFBc0IsY0FBYyxRQUFRLE9BQU87RUFJeEUsZ0JBQWdCO0dBQ2QsR0FBSTtHQUNKO0dBQ0EsZUFBZTtHQUNoQjtFQUNELGVBQWU7R0FDYixjQUFjO0dBQ2QsZUFBZTtHQUNmLGlCQUFpQjtHQUNsQjtFQUNGOztBQUdILE1BQWEscUJBQXFCLE9BQ2hDLFNBQ0EsV0FDaUM7QUFDakMsS0FBSTtFQUNGLE1BQU0sUUFBUSwyQkFBMkI7RUFDekMsTUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHLFFBQVEsY0FBYztHQUNwRCxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVBQVU7SUFDMUI7R0FDRCxNQUFNLEtBQUssVUFBVSxFQUFFLE9BQU8sQ0FBQztHQUNoQyxDQUFDO0FBRUYsTUFBSSxDQUFDLFNBQVMsR0FDWixPQUFNLElBQUksTUFBTSwyQkFBMkIsU0FBUyxhQUFhO0VBR25FLE1BQU0sU0FBUyxNQUFNLFNBQVMsTUFBTTtBQUNwQyxNQUFJLE9BQU8sT0FDVCxPQUFNLElBQUksTUFBTSxtQkFBbUIsS0FBSyxVQUFVLE9BQU8sT0FBTyxHQUFHO0FBR3JFLFNBQU8sU0FBUywyQ0FBMkM7QUFDM0QsU0FBTywwQkFBMEIsT0FBTyxLQUFLLEdBQUcsMkJBQTJCO1VBQ3BFLEtBQUs7QUFDWixTQUFPLFNBQVMsc0RBQXNELElBQUk7QUFDMUUsU0FBTztHQUFFLGNBQWM7R0FBVyxnQkFBZ0I7R0FBVzs7O0FBYWpFLE1BQWEsNEJBQTRCLE9BQ3ZDLFNBQ0EsUUFDQSxXQUNpQztBQUNqQyxLQUFJO0VBQ0YsTUFBTSxRQUFRLHNCQUFzQjtFQUNwQyxNQUFNLFVBQVUsdUJBQXVCO0VBQ3ZDLE1BQU0sV0FBVyxNQUFNLE1BQU0sR0FBRyxRQUFRLGNBQWM7R0FDcEQsUUFBUTtHQUNSLFNBQVM7SUFDUCxnQkFBZ0I7SUFDaEIsZUFBZSxVQUFVO0lBQzFCO0dBQ0QsTUFBTSxLQUFLLFVBQVU7SUFBRTtJQUFPLFdBQVc7S0FBRTtLQUFRO0tBQVM7SUFBRSxDQUFDO0dBQ2hFLENBQUM7QUFFRixNQUFJLENBQUMsU0FBUyxHQUNaLE9BQU0sSUFBSSxNQUFNLDJCQUEyQixTQUFTLGFBQWE7RUFHbkUsTUFBTSxTQUFTLE1BQU0sU0FBUyxNQUFNO0FBQ3BDLE1BQUksT0FBTyxPQUNULE9BQU0sSUFBSSxNQUFNLG1CQUFtQixLQUFLLFVBQVUsT0FBTyxPQUFPLEdBQUc7RUFHckUsTUFBTSxlQUFlLE9BQU8sS0FBSyxHQUFHO0FBQ3BDLFNBQU87R0FDTCxHQUFHLDBCQUEwQixjQUFjLGVBQWU7R0FDMUQsWUFBWSxjQUFjO0dBQzNCO1VBQ00sS0FBSztBQUNaLFNBQU8sU0FBUyxxRUFBcUUsSUFBSTtBQUN6RixTQUFPO0dBQUUsY0FBYztHQUFXLGdCQUFnQjtHQUFXIn0=
|