@envive-ai/react-hooks 0.3.6 → 0.3.7

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.
Files changed (142) hide show
  1. package/dist/application/commerce-api.cjs +1 -1
  2. package/dist/application/commerce-api.js +1 -1
  3. package/dist/application/models/api/userEvent.d.cts +4 -2
  4. package/dist/application/models/api/userEvent.d.ts +4 -2
  5. package/dist/application/models/graphql/queries/getColorsAndFrontendQuery.cjs +18 -0
  6. package/dist/application/models/graphql/queries/getColorsAndFrontendQuery.js +18 -0
  7. package/dist/application/models/guards/api/isApiFormResponse.cjs +1 -1
  8. package/dist/application/models/guards/api/isApiFormResponse.js +1 -1
  9. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +1 -1
  10. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +1 -1
  11. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +1 -1
  12. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +1 -1
  13. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +1 -1
  14. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +1 -1
  15. package/dist/application/models/guards/api/isApiQueryTypedEventAttributes.cjs +2 -2
  16. package/dist/application/models/guards/api/isApiQueryTypedEventAttributes.js +2 -2
  17. package/dist/application/models/guards/api/isApiResponse.cjs +1 -1
  18. package/dist/application/models/guards/api/isApiResponse.js +1 -1
  19. package/dist/application/utils/analyticsUtils.cjs +1 -1
  20. package/dist/application/utils/analyticsUtils.js +1 -1
  21. package/dist/application/utils/elementObserver.d.cts +2 -2
  22. package/dist/application/utils/elementObserver.d.ts +2 -2
  23. package/dist/atoms/app/variant.d.cts +6 -6
  24. package/dist/atoms/app/variant.d.ts +6 -6
  25. package/dist/atoms/chat/chatState.d.ts +17 -17
  26. package/dist/atoms/chat/form.d.cts +2 -2
  27. package/dist/atoms/chat/form.d.ts +2 -2
  28. package/dist/atoms/chat/index.cjs +1 -3
  29. package/dist/atoms/chat/index.d.cts +4 -5
  30. package/dist/atoms/chat/index.d.ts +4 -5
  31. package/dist/atoms/chat/index.js +2 -3
  32. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  33. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  34. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  35. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  36. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  37. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  38. package/dist/atoms/chat/suggestions.d.cts +2 -2
  39. package/dist/atoms/chat/suggestions.d.ts +2 -2
  40. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  41. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  42. package/dist/atoms/org/customerService.d.cts +6 -6
  43. package/dist/atoms/org/customerService.d.ts +6 -6
  44. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  45. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  46. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  47. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  48. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  49. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  50. package/dist/atoms/search/chatSearch.d.cts +17 -17
  51. package/dist/atoms/search/chatSearch.d.ts +17 -17
  52. package/dist/atoms/search/searchAPI.d.cts +13 -13
  53. package/dist/atoms/search/searchAPI.d.ts +13 -13
  54. package/dist/atoms/search/types.d.cts +1 -1
  55. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  56. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  57. package/dist/contexts/featureFlagContext/featureFlagContext.cjs +1 -1
  58. package/dist/contexts/featureFlagContext/featureFlagContext.js +1 -1
  59. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +1 -1
  60. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +1 -1
  61. package/dist/contexts/graphqlContext/graphqlContext.cjs +41 -27
  62. package/dist/contexts/graphqlContext/graphqlContext.js +42 -27
  63. package/dist/contexts/graphqlContext/mockV3Config.cjs +47 -45
  64. package/dist/contexts/graphqlContext/mockV3Config.js +5 -3
  65. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -2
  66. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -2
  67. package/dist/contexts/salesAgentContext/chatAPI.cjs +26 -5
  68. package/dist/contexts/salesAgentContext/chatAPI.d.cts +7 -3
  69. package/dist/contexts/salesAgentContext/chatAPI.d.ts +7 -3
  70. package/dist/contexts/salesAgentContext/chatAPI.js +26 -5
  71. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -7
  72. package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -7
  73. package/dist/contexts/salesAgentContext/salesAgentService.cjs +43 -18
  74. package/dist/contexts/salesAgentContext/salesAgentService.js +43 -18
  75. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  76. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  77. package/dist/contexts/types.d.cts +1 -1
  78. package/dist/contexts/types.d.ts +1 -1
  79. package/dist/contexts/typesV3.cjs +1 -1
  80. package/dist/contexts/typesV3.d.cts +4 -4
  81. package/dist/contexts/typesV3.d.ts +4 -4
  82. package/dist/contexts/typesV3.js +1 -1
  83. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +1 -2
  84. package/dist/contexts/userIdentityContext/userIdentityContext.js +1 -2
  85. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  86. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  87. package/dist/hooks/GraphQLConfig/useGraphQLConfig.cjs +1 -2
  88. package/dist/hooks/GraphQLConfig/useGraphQLConfig.js +1 -2
  89. package/dist/hooks/Search/useSearchInput.cjs +1 -1
  90. package/dist/hooks/Search/useSearchInput.js +1 -1
  91. package/dist/hooks/utils.d.cts +1 -1
  92. package/dist/hooks/utils.d.ts +1 -1
  93. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +1 -1
  94. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +1 -1
  95. package/dist/packages/components-v3/dist/Container/Container.cjs +1 -1
  96. package/dist/packages/components-v3/dist/Container/Container.js +1 -1
  97. package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.cjs +2 -0
  98. package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.js +4 -0
  99. package/dist/packages/components-v3/dist/FloatingButton/components/Button.cjs +9 -0
  100. package/dist/packages/components-v3/dist/FloatingButton/components/Button.js +10 -0
  101. package/dist/packages/components-v3/dist/FloatingButton/components/Container.cjs +9 -0
  102. package/dist/packages/components-v3/dist/FloatingButton/components/Container.js +10 -0
  103. package/dist/packages/components-v3/dist/FloatingButton/components/Icon.cjs +3 -0
  104. package/dist/packages/components-v3/dist/FloatingButton/components/Icon.js +5 -0
  105. package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.cjs +9 -0
  106. package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.js +10 -0
  107. package/dist/packages/components-v3/dist/FloatingButton/components/index.cjs +4 -0
  108. package/dist/packages/components-v3/dist/FloatingButton/components/index.js +6 -0
  109. package/dist/packages/components-v3/dist/FloatingButton/index.cjs +2 -0
  110. package/dist/packages/components-v3/dist/FloatingButton/index.js +4 -0
  111. package/dist/packages/components-v3/dist/FloatingButton/types/types.cjs +17 -0
  112. package/dist/packages/components-v3/dist/FloatingButton/types/types.js +16 -0
  113. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +1 -1
  114. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +1 -1
  115. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.cjs +1 -1
  116. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.js +1 -1
  117. package/dist/packages/components-v3/dist/utils/CustomIcon.cjs +2 -0
  118. package/dist/packages/components-v3/dist/utils/CustomIcon.js +4 -0
  119. package/dist/services/amplitudeService/amplitudeService.cjs +5 -2
  120. package/dist/services/amplitudeService/amplitudeService.js +5 -2
  121. package/package.json +1 -5
  122. package/src/application/models/api/userEvent.ts +3 -1
  123. package/src/application/models/graphql/queries/getColorsAndFrontendQuery.ts +13 -0
  124. package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +6 -1
  125. package/src/atoms/chat/index.ts +0 -1
  126. package/src/contexts/graphqlContext/graphqlContext.tsx +32 -41
  127. package/src/contexts/graphqlContext/mockV3Config.ts +3 -2
  128. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +0 -1
  129. package/src/contexts/salesAgentContext/chatAPI.ts +21 -4
  130. package/src/contexts/salesAgentContext/salesAgentContext.tsx +3 -7
  131. package/src/contexts/salesAgentContext/salesAgentService.ts +36 -11
  132. package/src/contexts/typesV3.ts +3 -4
  133. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +3 -2
  134. package/src/contexts/userIdentityContext/userIdentityContext.tsx +0 -1
  135. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +0 -1
  136. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +0 -15
  137. package/src/services/amplitudeService/amplitudeService.ts +2 -1
  138. package/dist/atoms/chat/replies.cjs +0 -46
  139. package/dist/atoms/chat/replies.d.cts +0 -14
  140. package/dist/atoms/chat/replies.d.ts +0 -14
  141. package/dist/atoms/chat/replies.js +0 -45
  142. package/src/atoms/chat/replies.ts +0 -56
@@ -1,31 +1,22 @@
1
1
  import { PageVariantTestType } from "../types.js";
2
2
  import { ConfigVersionEnum } from "../typesV3.js";
3
- import logger_default from "../../application/logging/logger.js";
4
- import { configVersion } from "../../types/config-versions.js";
5
3
  import { getMerchantOrgIdQuery } from "../../application/models/graphql/queries/getMerchantOrgIdQuery.js";
4
+ import logger_default from "../../application/logging/logger.js";
6
5
  import { transformSnakeToCamel } from "../../application/models/utils/snakeToCamelTransformer.js";
7
6
  import { validateAndTransformMountingConfig, validateAndTransformPageVariants } from "../../application/models/validators/validateGraphQLFrontendConfig.js";
8
7
  import { validateGraphQLOrgId } from "../../application/models/validators/validateGraphQLOrgId.js";
9
8
  import "../../application/models/index.js";
10
9
  import { baseUrlAtom, orgLevelApiKeyAtom } from "../../atoms/envive/enviveConfig.js";
10
+ import { getColorsAndFrontendQuery } from "../../application/models/graphql/queries/getColorsAndFrontendQuery.js";
11
+ import { FloatingButtonLocation } from "../../packages/components-v3/dist/FloatingButton/types/types.js";
12
+ import "../../packages/components-v3/dist/FloatingButton/index.js";
11
13
  import { mockV3ColorsConfig, mockV3FrontendConfig } from "./mockV3Config.js";
12
- import React, { createContext, useCallback, useContext, useMemo } from "react";
14
+ import { createContext, useCallback, useContext, useMemo } from "react";
13
15
  import { useAtomValue } from "jotai";
14
16
  import { jsx } from "react/jsx-runtime";
15
17
 
16
18
  //#region src/contexts/graphqlContext/graphqlContext.tsx
17
19
  const GraphQLContext = createContext(null);
18
- const colorsAndFrontendConfigQuery = () => `
19
- query ($version: String = "${configVersion()}") {
20
- me {
21
- getProductsConfigByVersion(version: $version) {
22
- frontend { values }
23
- colors { values }
24
- v_three_config { values }
25
- }
26
- }
27
- }
28
- `;
29
20
  const DEFAULT_PAGE_VARIANTS = [{
30
21
  variantId: "plp",
31
22
  variantType: "plp",
@@ -40,10 +31,10 @@ const DEFAULT_PAGE_VARIANTS = [{
40
31
  variantTests: [{ testType: PageVariantTestType.UrlResolver }]
41
32
  }];
42
33
  const mapPositionToCamelCase = (position) => {
43
- if (position === "bottom-left") return "bottomLeft";
44
- if (position === "middle-left") return "middleLeft";
45
- if (position === "middle-right") return "middleRight";
46
- if (position === "bottom-right") return "bottomRight";
34
+ if (position === "bottom-left") return FloatingButtonLocation.BOTTOM_LEFT;
35
+ if (position === "middle-left") return FloatingButtonLocation.MIDDLE_LEFT;
36
+ if (position === "middle-right") return FloatingButtonLocation.MIDDLE_RIGHT;
37
+ if (position === "bottom-right") return FloatingButtonLocation.BOTTOM_RIGHT;
47
38
  throw new Error(`Invalid position: ${position}`);
48
39
  };
49
40
  /**
@@ -133,7 +124,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
133
124
  }, [executeQuery]);
134
125
  const getV3Config = useCallback(async () => {
135
126
  try {
136
- const query = await colorsAndFrontendConfigQuery();
127
+ const query = await getColorsAndFrontendQuery();
137
128
  if (!query) throw new Error("Colors and frontend config query is not defined");
138
129
  const v3RootConfig = (await executeQuery(query)).me.getProductsConfigByVersion?.v_three_config?.values;
139
130
  const v3FrontendConfig = v3FrontendConfigCleanup(transformSnakeToCamel(v3RootConfig));
@@ -148,10 +139,31 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
148
139
  }]));
149
140
  const v3pageVariants = Array.isArray(v3RootConfig?.page_variants) ? v3RootConfig?.page_variants.map(validateAndTransformPageVariants) : DEFAULT_PAGE_VARIANTS;
150
141
  const v3ColorsConfig = transformSnakeToCamel(v3RootConfig?.colors?.values);
151
- if (!v3RootConfig && mockV3ConfigToDeprecatedConfig) return {
152
- colorsConfig: !window.location.href.includes("globals=merchant") ? mockV3ColorsConfig : v3ColorsConfig,
153
- frontendConfig: mockV3FrontendConfig
154
- };
142
+ if (!v3RootConfig && mockV3ConfigToDeprecatedConfig) {
143
+ const isSemanticColors = !window.location.href.includes("globals=merchant");
144
+ logger_default.logInfo("GraphQLContext | Returning mock v3 config", {
145
+ colorsConfig: mockV3ColorsConfig,
146
+ frontendConfig: mockV3FrontendConfig
147
+ });
148
+ return {
149
+ colorsConfig: isSemanticColors ? mockV3ColorsConfig : v3ColorsConfig,
150
+ frontendConfig: mockV3FrontendConfig,
151
+ orgPageConfig: {
152
+ pageVariants: [],
153
+ widgetConfigs: {},
154
+ mountingConfigs: {}
155
+ }
156
+ };
157
+ }
158
+ logger_default.logInfo("GraphQLContext | Returning v3 config", {
159
+ colorsConfig: v3ColorsConfig,
160
+ frontendConfig: v3FrontendConfig,
161
+ orgPageConfig: {
162
+ pageVariants: v3pageVariants,
163
+ widgetConfigs: v3WidgetConfigs,
164
+ mountingConfigs: v3MountingConfigs
165
+ }
166
+ });
155
167
  return {
156
168
  colorsConfig: v3ColorsConfig,
157
169
  frontendConfig: {
@@ -174,7 +186,7 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
174
186
  }, [executeQuery, mockV3ConfigToDeprecatedConfig]);
175
187
  const getColorsAndFrontendConfig = useCallback(async () => {
176
188
  try {
177
- const query = await colorsAndFrontendConfigQuery();
189
+ const query = await getColorsAndFrontendQuery();
178
190
  if (!query) throw new Error("Colors and frontend config query is not defined");
179
191
  const response = await executeQuery(query);
180
192
  if (response.me.getProductsConfigByVersion?.version !== ConfigVersionEnum.V3 && !mockV3ConfigToDeprecatedConfig) {
@@ -200,8 +212,11 @@ const GraphQLProvider = ({ children, requestV3Config = false, mockV3ConfigToDepr
200
212
  }
201
213
  }, [executeQuery]);
202
214
  const getConfig = useCallback(async () => {
203
- console.log("GraphQLProvider: getConfig: requestV3Config", requestV3Config);
204
- if (requestV3Config) return getV3Config();
215
+ if (requestV3Config) {
216
+ logger_default.logInfo("GraphQLContext | Getting v3 config", requestV3Config);
217
+ return getV3Config();
218
+ }
219
+ logger_default.logInfo("GraphQLContext | Getting colors and frontend config", requestV3Config);
205
220
  return getColorsAndFrontendConfig();
206
221
  }, [
207
222
  getColorsAndFrontendConfig,
@@ -236,4 +251,4 @@ const useGraphQLClient = () => {
236
251
 
237
252
  //#endregion
238
253
  export { GraphQLProvider, useGraphQLClient };
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6WyJERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBiYXNlVXJsQXRvbSwgb3JnTGV2ZWxBcGlLZXlBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2Vudml2ZS9lbnZpdmVDb25maWcnO1xuaW1wb3J0IHsgZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5JztcbmltcG9ydCB7IHZhbGlkYXRlR3JhcGhRTE9yZ0lkIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlR3JhcGhRTE9yZ0lkJztcbmltcG9ydCB7XG4gIEdldE1lcmNoYW50Q29sb3JzUXVlcnlEYXRhLFxuICBHZXRNZXJjaGFudEZyb250ZW5kQ29uZmlnUXVlcnlEYXRhLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IGNvbmZpZ1ZlcnNpb24gfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBtb2NrVjNDb2xvcnNDb25maWcsIG1vY2tWM0Zyb250ZW5kQ29uZmlnIH0gZnJvbSAnLi9tb2NrVjNDb25maWcnO1xuaW1wb3J0IHsgQ29uZmlnVmVyc2lvbkVudW0sIFBvc2l0aW9uLCBXaWRnZXRDb25maWdWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuaW1wb3J0IHtcbiAgT3JnUGFnZUNvbmZpZyxcbiAgUGFnZVZhcmlhbnRDb25maWcsXG4gIFBhZ2VWYXJpYW50VGVzdFR5cGUsXG4gIFdpZGdldE1vdW50aW5nQ29uZmlnLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBCYXNlTWVDb25maWdRdWVyeVJlc3BvbnNlIHtcbiAgbWU6IHtcbiAgICBvcmc/OiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gICAgZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/OiB7XG4gICAgICBmcm9udGVuZD86IHtcbiAgICAgICAgdmFsdWVzOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8R2V0TWVyY2hhbnRGcm9udGVuZENvbmZpZ1F1ZXJ5RGF0YT47XG4gICAgICB9O1xuICAgICAgY29sb3JzPzogeyB2YWx1ZXM6IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxHZXRNZXJjaGFudENvbG9yc1F1ZXJ5RGF0YT4gfTtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWc+O1xuZXhwb3J0IHR5cGUgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz47XG5leHBvcnQgdHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG5cbmV4cG9ydCB0eXBlIEdyYXBoUWxDb25maWdWYWx1ZXMgPSB7XG4gIGNvbG9yc0NvbmZpZz86IENvbG9yc0NvbmZpZ1Jlc3BvbnNlIHwgQ29sb3JzQ29uZmlnVjNSZXNwb25zZTtcbiAgZnJvbnRlbmRDb25maWc/OiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWcgfCBGcm9udGVuZENvbmZpZ1YzPjtcbiAgb3JnUGFnZUNvbmZpZz86IE9yZ1BhZ2VDb25maWc7XG59O1xuXG5pbnRlcmZhY2UgR3JhcGhRTENvbnRleHRWYWx1ZSB7XG4gIGV4ZWN1dGVRdWVyeTogPFQ+KHF1ZXJ5OiBzdHJpbmcsIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBQcm9taXNlPFQ+O1xuICBnZXRPcmdJZDogKCkgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0VjNDb25maWc6ICgpID0+IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz47XG4gIGdldENvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgaXNSZWFkeTogYm9vbGVhbjtcbn1cblxuY29uc3QgR3JhcGhRTENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEdyYXBoUUxDb250ZXh0VmFsdWUgfCBudWxsPihudWxsKTtcblxuY29uc3QgY29sb3JzQW5kRnJvbnRlbmRDb25maWdRdWVyeSA9ICgpID0+IGBcbiAgcXVlcnkgKCR2ZXJzaW9uOiBTdHJpbmcgPSBcIiR7Y29uZmlnVmVyc2lvbigpfVwiKSB7XG4gICAgbWUge1xuICAgICAgZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24odmVyc2lvbjogJHZlcnNpb24pIHtcbiAgICAgICAgZnJvbnRlbmQgeyB2YWx1ZXMgfVxuICAgICAgICBjb2xvcnMgeyB2YWx1ZXMgfVxuICAgICAgICB2X3RocmVlX2NvbmZpZyB7IHZhbHVlcyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBQb3NpdGlvbiA9PiB7XG4gIGlmIChwb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0Jykge1xuICAgIHJldHVybiAnYm90dG9tTGVmdCc7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuICdtaWRkbGVMZWZ0JztcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdtaWRkbGUtcmlnaHQnKSB7XG4gICAgcmV0dXJuICdtaWRkbGVSaWdodCc7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLXJpZ2h0Jykge1xuICAgIHJldHVybiAnYm90dG9tUmlnaHQnO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBjb2xvcnNBbmRGcm9udGVuZENvbmZpZ1F1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuXG4gICAgICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgICAgIHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWcpIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ubW91bnRpbmdfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyhjb25maWcsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdjN3aWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gICAgICBjb25zdCB2M1dpZGdldENvbmZpZ3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIHYzd2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgICAgICB7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH0gYXMgV2lkZ2V0Q29uZmlnVjMsXG4gICAgICAgIF0pLFxuICAgICAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG4gICAgICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgICAgICA/IHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cy5tYXAodmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHMpXG4gICAgICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gICAgICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHYzIHJvb3QgY29uZmlnIGlzIG5vdCBmb3VuZCBhbmQgd2UgYXJlIGNvbmZpZ3VyZWQgdG8gcmV0dXJuIHRoZSBkZXByZWNhdGVkIGNvbmZpZywgd2Ugd2lsbCByZXR1cm4gdGhlIG1vY2tlZCBjb25maWdcbiAgICAgIGlmICghdjNSb290Q29uZmlnICYmIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZykge1xuICAgICAgICBjb25zdCBpc1NlbWFudGljQ29sb3JzID0gIXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdnbG9iYWxzPW1lcmNoYW50Jyk7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IG1vY2tWM0NvbG9yc0NvbmZpZztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IGlzU2VtYW50aWNDb2xvcnNcbiAgICAgICAgICAgID8gKGNvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKVxuICAgICAgICAgICAgOiAodjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IGZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgICAgIC4uLih2M0Zyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSksXG4gICAgICAgICAgLy8gTmVlZCB0byByZXBsYWNlIHRoZSBhdXRvbWF0aWMgd2lkZ2V0IGNvbmZpZ3Mgd2l0aCB0aGUgb2JqZWN0IGJhc2VkIG9uZXNcbiAgICAgICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgICAvLyBUT0RPOiBBZGQgd2lkZ2V0cyBhbmQgb3RoZXIgY29uZmlnIGhlcmVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoJ0Vycm9yIGZldGNoaW5nIGdyYXBocWwgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH0sIFtleGVjdXRlUXVlcnksIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ10pO1xuXG4gIGNvbnN0IGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk6IFByb21pc2U8R3JhcGhRbENvbmZpZ1ZhbHVlcz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeSA9IGF3YWl0IGNvbG9yc0FuZEZyb250ZW5kQ29uZmlnUXVlcnkoKTtcbiAgICAgIGlmICghcXVlcnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZyBxdWVyeSBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkocXVlcnkpO1xuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8udmVyc2lvbiAhPT0gQ29uZmlnVmVyc2lvbkVudW0uVjMgJiZcbiAgICAgICAgIW1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uZnJvbnRlbmQ/LnZhbHVlcztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChjb2xvcnNDb25maWcpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEZyb250ZW5kQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKGZyb250ZW5kQ29uZmlnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvcnNDb25maWc6IHRyYW5zZm9ybWVkQ29sb3JDb25maWcgYXMgQ29sb3JzQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgICAgZnJvbnRlbmRDb25maWc6IHRyYW5zZm9ybWVkRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdSZXNwb25zZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IFJFTU9WRSBNT0NLRUQgQ09ORklHIE9OQ0UgV0UgSEFWRSBUSEUgTkVXIENPTkZJRyBJTVBMRU1FTlRFRCBPTiBCQUNLRU5EXG4gICAgICBjb25zdCBtZXJjaGFudENvbG9yc0NvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy5jb2xvcnM/LnZhbHVlcztcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkTWVyY2hhbnRDb2xvckNvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChtZXJjaGFudENvbG9yc0NvbmZpZyk7XG5cbiAgICAgIGNvbnN0IGlzU2VtYW50aWNDb2xvcnMgPSAhd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2dsb2JhbHM9bWVyY2hhbnQnKTtcblxuICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgY29uc3QgZnJvbnRlbmRDb25maWcgPSBtb2NrVjNGcm9udGVuZENvbmZpZztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiBpc1NlbWFudGljQ29sb3JzXG4gICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgOiAodHJhbnNmb3JtZWRNZXJjaGFudENvbG9yQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIExvZ2dlci5sb2dFcnJvcignRXJyb3IgZmV0Y2hpbmcgZ3JhcGhxbCBjb2xvcnMgYW5kIGZyb250ZW5kIGNvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgfSwgW2V4ZWN1dGVRdWVyeV0pO1xuXG4gIGNvbnN0IGdldENvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICBjb25zb2xlLmxvZygnR3JhcGhRTFByb3ZpZGVyOiBnZXRDb25maWc6IHJlcXVlc3RWM0NvbmZpZycsIHJlcXVlc3RWM0NvbmZpZyk7XG4gICAgaWYgKHJlcXVlc3RWM0NvbmZpZykge1xuICAgICAgcmV0dXJuIGdldFYzQ29uZmlnKCk7XG4gICAgfVxuICAgIHJldHVybiBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuICB9LCBbZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCByZXF1ZXN0VjNDb25maWddKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGV4ZWN1dGVRdWVyeSxcbiAgICAgIGdldE9yZ0lkLFxuICAgICAgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsXG4gICAgICBnZXRWM0NvbmZpZyxcbiAgICAgIGdldENvbmZpZyxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2V4ZWN1dGVRdWVyeSwgZ2V0T3JnSWQsIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgZ2V0Q29uZmlnLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPEdyYXBoUUxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvR3JhcGhRTENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyYXBoUUxDbGllbnQgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdyYXBoUUxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHcmFwaFFMQ2xpZW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHcmFwaFFMUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUErREEs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
254
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbENvbnRleHQuanMiLCJuYW1lcyI6WyJERUZBVUxUX1BBR0VfVkFSSUFOVFM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9ncmFwaHFsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGJhc2VVcmxBdG9tLCBvcmdMZXZlbEFwaUtleUF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRNZXJjaGFudE9yZ0lkUXVlcnknO1xuaW1wb3J0IHsgdmFsaWRhdGVHcmFwaFFMT3JnSWQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMT3JnSWQnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0Q29sb3JzQW5kRnJvbnRlbmRRdWVyeSc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICcuL21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmltcG9ydCB7XG4gIE9yZ1BhZ2VDb25maWcsXG4gIFBhZ2VWYXJpYW50Q29uZmlnLFxuICBQYWdlVmFyaWFudFRlc3RUeXBlLFxuICBXaWRnZXRNb3VudGluZ0NvbmZpZyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmc+O1xuZXhwb3J0IHR5cGUgRnJvbnRlbmRDb25maWdSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZz47XG5leHBvcnQgdHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcbmV4cG9ydCB0eXBlIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZ1YzPjtcblxuZXhwb3J0IHR5cGUgR3JhcGhRbENvbmZpZ1ZhbHVlcyA9IHtcbiAgY29sb3JzQ29uZmlnPzogQ29sb3JzQ29uZmlnUmVzcG9uc2UgfCBDb2xvcnNDb25maWdWM1Jlc3BvbnNlO1xuICBmcm9udGVuZENvbmZpZz86IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxGcm9udGVuZENvbmZpZyB8IEZyb250ZW5kQ29uZmlnVjM+O1xuICBvcmdQYWdlQ29uZmlnPzogT3JnUGFnZUNvbmZpZztcbn07XG5cbmludGVyZmFjZSBHcmFwaFFMQ29udGV4dFZhbHVlIHtcbiAgZXhlY3V0ZVF1ZXJ5OiA8VD4ocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFByb21pc2U8VD47XG4gIGdldE9yZ0lkOiAoKSA9PiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBnZXRWM0NvbmZpZzogKCkgPT4gUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPjtcbiAgZ2V0Q29uZmlnOiAoKSA9PiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+O1xuICBpc1JlYWR5OiBib29sZWFuO1xufVxuXG5jb25zdCBHcmFwaFFMQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8R3JhcGhRTENvbnRleHRWYWx1ZSB8IG51bGw+KG51bGwpO1xuXG50eXBlIEdyYXBoUUxQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICB7XG4gICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgdmFyaWFudElkOiAncGRwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BkcCcsXG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnLFxuICAgIHdpZGdldE1vdW50aW5nOiBbXSxcbiAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgIHtcbiAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG5jb25zdCBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlID0gKHBvc2l0aW9uOiBzdHJpbmcpOiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uID0+IHtcbiAgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLWxlZnQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uTUlERExFX0xFRlQ7XG4gIH1cbiAgaWYgKHBvc2l0aW9uID09PSAnbWlkZGxlLXJpZ2h0Jykge1xuICAgIHJldHVybiBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uLk1JRERMRV9SSUdIVDtcbiAgfVxuICBpZiAocG9zaXRpb24gPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgcmV0dXJuIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24uQk9UVE9NX1JJR0hUO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRvIHNvbWUgYWRkaXRpb25hbCBjbGVhbnVwIG9mIHRoZSB2MyBmcm9udGVuZCBjb25maWcgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcyBpbiB0aGUgY29ycmVjdCBmb3JtYXQuXG4gKi9cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSB7XG4gICAgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgfVxuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHtcbiAgICByZXR1cm4gdjNSb290Q29uZmlnO1xuICB9XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIC8vIFRoZSBmb250cyBzaXplcyBhcmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiB0aGUgYmFja2VuZCBjb25maWdcbiAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gbWFwIHRoZSB2YWx1ZXMgdG8gdGhlIGNvcnJlY3QgY2FtZWwgY2FzZSBrZXlzXG4gICAgICAgICAgICBiMTogZm9udFNpemU/LmIxIHx8IGZvbnRTaXplPy5iXzEsXG4gICAgICAgICAgICBiMjogZm9udFNpemU/LmIyIHx8IGZvbnRTaXplPy5iXzIsXG4gICAgICAgICAgICBiMzogZm9udFNpemU/LmIzIHx8IGZvbnRTaXplPy5iXzMsXG4gICAgICAgICAgICBiNDogZm9udFNpemU/LmI0IHx8IGZvbnRTaXplPy5iXzQsXG4gICAgICAgICAgICBiNTogZm9udFNpemU/LmI1IHx8IGZvbnRTaXplPy5iXzUsXG4gICAgICAgICAgICBoMTogZm9udFNpemU/LmgxIHx8IGZvbnRTaXplPy5oXzEsXG4gICAgICAgICAgICBoMjogZm9udFNpemU/LmgyIHx8IGZvbnRTaXplPy5oXzIsXG4gICAgICAgICAgICBoMzogZm9udFNpemU/LmgzIHx8IGZvbnRTaXplPy5oXzMsXG4gICAgICAgICAgICBsMTogZm9udFNpemU/LmwxIHx8IGZvbnRTaXplPy5sXzEsXG4gICAgICAgICAgICBsMjogZm9udFNpemU/LmwyIHx8IGZvbnRTaXplPy5sXzIsXG4gICAgICAgICAgICB0MTogZm9udFNpemU/LnQxIHx8IGZvbnRTaXplPy50XzEsXG4gICAgICAgICAgICB0MjogZm9udFNpemU/LnQyIHx8IGZvbnRTaXplPy50XzIsXG4gICAgICAgICAgICB0MzogZm9udFNpemU/LnQzIHx8IGZvbnRTaXplPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgR3JhcGhRTFByb3ZpZGVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbn06IEdyYXBoUUxQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IGFwaUtleSA9IHVzZUF0b21WYWx1ZShvcmdMZXZlbEFwaUtleUF0b20pO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcbiAgY29uc3QgaXNSZWFkeSA9IHVzZU1lbW8oKCkgPT4gQm9vbGVhbihhcGlLZXkgJiYgYmFzZVVybCksIFthcGlLZXksIGJhc2VVcmxdKTtcblxuICBjb25zdCBleGVjdXRlUXVlcnkgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocXVlcnk6IHN0cmluZywgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyYXBoUUwgY2xpZW50IG5vdCByZWFkeSAtIG1pc3NpbmcgYXBpS2V5IG9yIGJhc2VVcmwnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXMgfSksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIH0sXG4gICAgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0T3JnSWQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBleGVjdXRlUXVlcnkoZ2V0TWVyY2hhbnRPcmdJZFF1ZXJ5KTtcbiAgICByZXR1cm4gdmFsaWRhdGVHcmFwaFFMT3JnSWQocmVzcG9uc2UubWUub3JnPy5pZCk7XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRWM0NvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgICAgLy8gV2UgbWF5IHVwZGF0ZSB0aGlzIHJvb3QgY29uZmlnIGxvY2F0aW9uIGluIHRoZSBmdXR1cmVcbiAgICAgIGNvbnN0IHYzUm9vdENvbmZpZyA9IHJlc3BvbnNlLm1lLmdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuXG4gICAgICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgICAgIHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWcpIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ubW91bnRpbmdfY29uZmlncykgPz9cbiAgICAgICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG5cbiAgICAgIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gdmFsaWRhdGVBbmRUcmFuc2Zvcm1Nb3VudGluZ0NvbmZpZyhjb25maWcsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdjN3aWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gICAgICBjb25zdCB2M1dpZGdldENvbmZpZ3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIHYzd2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgICAgICB7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH0gYXMgV2lkZ2V0Q29uZmlnVjMsXG4gICAgICAgIF0pLFxuICAgICAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG4gICAgICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgICAgICA/IHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cy5tYXAodmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHMpXG4gICAgICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gICAgICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcbiAgICAgIC8vIElmIHRoZSB2MyByb290IGNvbmZpZyBpcyBub3QgZm91bmQgYW5kIHdlIGFyZSBjb25maWd1cmVkIHRvIHJldHVybiB0aGUgZGVwcmVjYXRlZCBjb25maWcsIHdlIHdpbGwgcmV0dXJuIHRoZSBtb2NrZWQgY29uZmlnXG4gICAgICBpZiAoIXYzUm9vdENvbmZpZyAmJiBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcpIHtcbiAgICAgICAgY29uc3QgaXNTZW1hbnRpY0NvbG9ycyA9ICF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZ2xvYmFscz1tZXJjaGFudCcpO1xuICAgICAgICBMb2dnZXIubG9nSW5mbygnR3JhcGhRTENvbnRleHQgfCBSZXR1cm5pbmcgbW9jayB2MyBjb25maWcnLCB7XG4gICAgICAgICAgY29sb3JzQ29uZmlnOiBtb2NrVjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgICBmcm9udGVuZENvbmZpZzogbW9ja1YzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29sb3JzQ29uZmlnID0gbW9ja1YzQ29sb3JzQ29uZmlnO1xuICAgICAgICBjb25zdCBmcm9udGVuZENvbmZpZyA9IG1vY2tWM0Zyb250ZW5kQ29uZmlnO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbG9yc0NvbmZpZzogaXNTZW1hbnRpY0NvbG9yc1xuICAgICAgICAgICAgPyAoY29sb3JzQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UpXG4gICAgICAgICAgICA6ICh2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgICAgICBmcm9udGVuZENvbmZpZzogZnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICAgIHBhZ2VWYXJpYW50czogW10sXG4gICAgICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgTG9nZ2VyLmxvZ0luZm8oJ0dyYXBoUUxDb250ZXh0IHwgUmV0dXJuaW5nIHYzIGNvbmZpZycsIHtcbiAgICAgICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgICBmcm9udGVuZENvbmZpZzogdjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgICAgZnJvbnRlbmRDb25maWc6IHtcbiAgICAgICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgICAgIC8vIE5lZWQgdG8gcmVwbGFjZSB0aGUgYXV0b21hdGljIHdpZGdldCBjb25maWdzIHdpdGggdGhlIG9iamVjdCBiYXNlZCBvbmVzXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgICB9LFxuICAgICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgICAgcGFnZVZhcmlhbnRzOiB2M3BhZ2VWYXJpYW50cyxcbiAgICAgICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICAgICAgbW91bnRpbmdDb25maWdzOiB2M01vdW50aW5nQ29uZmlncyxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gVE9ETzogQWRkIHdpZGdldHMgYW5kIG90aGVyIGNvbmZpZyBoZXJlXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdFcnJvciBmZXRjaGluZyBncmFwaHFsIGNvbG9ycyBhbmQgZnJvbnRlbmQgY29uZmlnJywgZXJyKTtcbiAgICAgIHJldHVybiB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkIH07XG4gICAgfVxuICB9LCBbZXhlY3V0ZVF1ZXJ5LCBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWddKTtcblxuICBjb25zdCBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpOiBQcm9taXNlPEdyYXBoUWxDb25maWdWYWx1ZXM+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBnZXRDb2xvcnNBbmRGcm9udGVuZFF1ZXJ5KCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcgcXVlcnkgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTtcbiAgICAgIGlmIChcbiAgICAgICAgcmVzcG9uc2UubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/LnZlcnNpb24gIT09IENvbmZpZ1ZlcnNpb25FbnVtLlYzICYmXG4gICAgICAgICFtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWdcbiAgICAgICkge1xuICAgICAgICBjb25zdCBjb2xvcnNDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uY29sb3JzPy52YWx1ZXM7XG4gICAgICAgIGNvbnN0IGZyb250ZW5kQ29uZmlnID0gcmVzcG9uc2UubWUuZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24/LmZyb250ZW5kPy52YWx1ZXM7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkQ29sb3JDb25maWcgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwoY29sb3JzQ29uZmlnKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRGcm9udGVuZENvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbChmcm9udGVuZENvbmZpZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29sb3JzQ29uZmlnOiB0cmFuc2Zvcm1lZENvbG9yQ29uZmlnIGFzIENvbG9yc0NvbmZpZ1Jlc3BvbnNlLFxuICAgICAgICAgIGZyb250ZW5kQ29uZmlnOiB0cmFuc2Zvcm1lZEZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnUmVzcG9uc2UsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBUT0RPOiBSRU1PVkUgTU9DS0VEIENPTkZJRyBPTkNFIFdFIEhBVkUgVEhFIE5FVyBDT05GSUcgSU1QTEVNRU5URUQgT04gQkFDS0VORFxuICAgICAgY29uc3QgbWVyY2hhbnRDb2xvcnNDb25maWcgPSByZXNwb25zZS5tZS5nZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbj8uY29sb3JzPy52YWx1ZXM7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZE1lcmNoYW50Q29sb3JDb25maWcgPSB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwobWVyY2hhbnRDb2xvcnNDb25maWcpO1xuXG4gICAgICBjb25zdCBpc1NlbWFudGljQ29sb3JzID0gIXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdnbG9iYWxzPW1lcmNoYW50Jyk7XG5cbiAgICAgIGNvbnN0IGNvbG9yc0NvbmZpZyA9IG1vY2tWM0NvbG9yc0NvbmZpZztcbiAgICAgIGNvbnN0IGZyb250ZW5kQ29uZmlnID0gbW9ja1YzRnJvbnRlbmRDb25maWc7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yc0NvbmZpZzogaXNTZW1hbnRpY0NvbG9yc1xuICAgICAgICAgID8gKGNvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKVxuICAgICAgICAgIDogKHRyYW5zZm9ybWVkTWVyY2hhbnRDb2xvckNvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgICAgZnJvbnRlbmRDb25maWc6IGZyb250ZW5kQ29uZmlnIGFzIEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoJ0Vycm9yIGZldGNoaW5nIGdyYXBocWwgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH0sIFtleGVjdXRlUXVlcnldKTtcblxuICBjb25zdCBnZXRDb25maWcgPSB1c2VDYWxsYmFjayhhc3luYyAoKTogUHJvbWlzZTxHcmFwaFFsQ29uZmlnVmFsdWVzPiA9PiB7XG4gICAgaWYgKHJlcXVlc3RWM0NvbmZpZykge1xuICAgICAgTG9nZ2VyLmxvZ0luZm8oJ0dyYXBoUUxDb250ZXh0IHwgR2V0dGluZyB2MyBjb25maWcnLCByZXF1ZXN0VjNDb25maWcpO1xuICAgICAgcmV0dXJuIGdldFYzQ29uZmlnKCk7XG4gICAgfVxuICAgIExvZ2dlci5sb2dJbmZvKCdHcmFwaFFMQ29udGV4dCB8IEdldHRpbmcgY29sb3JzIGFuZCBmcm9udGVuZCBjb25maWcnLCByZXF1ZXN0VjNDb25maWcpO1xuICAgIHJldHVybiBnZXRDb2xvcnNBbmRGcm9udGVuZENvbmZpZygpO1xuICB9LCBbZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsIGdldFYzQ29uZmlnLCByZXF1ZXN0VjNDb25maWddKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGV4ZWN1dGVRdWVyeSxcbiAgICAgIGdldE9yZ0lkLFxuICAgICAgZ2V0Q29sb3JzQW5kRnJvbnRlbmRDb25maWcsXG4gICAgICBnZXRWM0NvbmZpZyxcbiAgICAgIGdldENvbmZpZyxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2V4ZWN1dGVRdWVyeSwgZ2V0T3JnSWQsIGdldENvbG9yc0FuZEZyb250ZW5kQ29uZmlnLCBnZXRWM0NvbmZpZywgZ2V0Q29uZmlnLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPEdyYXBoUUxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvR3JhcGhRTENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUdyYXBoUUxDbGllbnQgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdyYXBoUUxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VHcmFwaFFMQ2xpZW50IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBHcmFwaFFMUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSxNQUFNLGlCQUFpQixjQUEwQyxLQUFLO0FBUXRFLE1BQU1BLHdCQUE2QyxDQUNqRDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2IsZ0JBQWdCO0NBQ2hCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FDWixFQUNFLFVBQVUsb0JBQW9CLGFBQy9CLENBQ0Y7Q0FDRixFQUNEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixvQkFBb0I7Q0FDcEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUNaLEVBQ0UsVUFBVSxvQkFBb0IsYUFDL0IsQ0FDRjtDQUNGLENBQ0Y7QUFFRCxNQUFNLDBCQUEwQixhQUE2QztBQUMzRSxLQUFJLGFBQWEsY0FDZixRQUFPLHVCQUF1QjtBQUVoQyxLQUFJLGFBQWEsY0FDZixRQUFPLHVCQUF1QjtBQUVoQyxLQUFJLGFBQWEsZUFDZixRQUFPLHVCQUF1QjtBQUVoQyxLQUFJLGFBQWEsZUFDZixRQUFPLHVCQUF1QjtBQUVoQyxPQUFNLElBQUksTUFBTSxxQkFBcUIsV0FBVzs7Ozs7QUFNbEQsTUFBTSwyQkFDSixpQkFDNkI7Q0FDN0IsTUFBTSxFQUFFLGNBQWM7QUFDdEIsS0FBSSxDQUFDLFVBQ0gsUUFBTztDQUVULE1BQU0sRUFBRSxnQkFBZ0IsZ0JBQWdCO0FBQ3hDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUN0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
@@ -1,18 +1,20 @@
1
1
  const require_colorsConfigV3 = require('../../application/models/colorsConfigV3.cjs');
2
2
  const require_contexts_typesV3 = require('../typesV3.cjs');
3
- const require_types = require('../../packages/components-v3/dist/ImageGallery/types/types.cjs');
3
+ const require_types = require('../../packages/components-v3/dist/FloatingButton/types/types.cjs');
4
+ require('../../packages/components-v3/dist/FloatingButton/index.cjs');
5
+ const require_types$1 = require('../../packages/components-v3/dist/ImageGallery/types/types.cjs');
4
6
  const require_theme = require('../../packages/components-v3/dist/tokens/theme/theme.cjs');
5
7
  require('../../packages/components-v3/dist/ImageGallery/index.cjs');
6
- const require_index$1 = require('../../packages/components-v3/dist/PromptButton/types/index.cjs');
8
+ const require_index$2 = require('../../packages/components-v3/dist/PromptButton/types/index.cjs');
7
9
  require('../../packages/components-v3/dist/PromptButton/index.cjs');
8
- const require_types$1 = require('../../packages/components-v3/dist/PromptCarousel/types/types.cjs');
10
+ const require_types$2 = require('../../packages/components-v3/dist/PromptCarousel/types/types.cjs');
9
11
  require('../../packages/components-v3/dist/PromptCarousel/index.cjs');
10
- const require_types$2 = require('../../packages/components-v3/dist/WidgetWrapper/types/types.cjs');
12
+ const require_types$3 = require('../../packages/components-v3/dist/WidgetWrapper/types/types.cjs');
11
13
  require('../../packages/components-v3/dist/WidgetWrapper/index.cjs');
12
14
  require('../../packages/components-v3/dist/Tokens/index.cjs');
13
- const require_index$6 = require('../../packages/components-v3/dist/ChatHeader/types/index.cjs');
15
+ const require_index$7 = require('../../packages/components-v3/dist/ChatHeader/types/index.cjs');
14
16
  require('../../packages/components-v3/dist/ChatHeader/index.cjs');
15
- const require_types$3 = require('../../packages/components-v3/dist/WelcomeMessage/types/types.cjs');
17
+ const require_types$4 = require('../../packages/components-v3/dist/WelcomeMessage/types/types.cjs');
16
18
  require('../../packages/components-v3/dist/WelcomeMessage/index.cjs');
17
19
  const require_customerService = require('../../types/customerService.cjs');
18
20
 
@@ -114,7 +116,7 @@ const mockV3FrontendConfig = {
114
116
  }
115
117
  },
116
118
  floatingButton: {
117
- position: "bottomRight",
119
+ position: require_types.FloatingButtonLocation.BOTTOM_RIGHT,
118
120
  backgroundColor: require_colorsConfigV3.ColorNames.BackgroundPrimary,
119
121
  mode: "dark",
120
122
  showOption: "always",
@@ -122,9 +124,9 @@ const mockV3FrontendConfig = {
122
124
  iconSVGSrc: ""
123
125
  },
124
126
  floatingChat: {
125
- headerBackgroundColor: void 0,
126
- headerMode: require_index$6.ChatHeaderVariant.DARK,
127
- welcomeMessageIconColor: require_types$3.SparkleIconColor.ACCENT_PRIMARY,
127
+ headerBackgroundColor: require_colorsConfigV3.ColorNames.BackgroundPrimary,
128
+ headerMode: require_index$7.ChatHeaderVariant.DARK,
129
+ welcomeMessageIconColor: require_types$4.SparkleIconColor.ACCENT_PRIMARY,
128
130
  showVerifiedBuyer: true,
129
131
  userQueryInputEnabled: true,
130
132
  showEnviveLogo: true,
@@ -147,97 +149,97 @@ const mockV3FrontendConfig = {
147
149
  widgetConfigId: "prompt-carousel-test-light-widget",
148
150
  contentId: "prompt-carousel-test-light-widget",
149
151
  type: require_contexts_typesV3.WidgetTypeV3.PromptCarouselV3,
150
- promptButtonType: require_index$1.PromptButtonVariant.LIGHT,
152
+ promptButtonType: require_index$2.PromptButtonVariant.LIGHT,
151
153
  boldFirstButton: false,
152
- promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
153
- animationSpeed: require_types$1.AnimationSpeed.FAST
154
+ promptCarouselRows: require_types$2.PromptCarouselRows.ALWAYS_ONE,
155
+ animationSpeed: require_types$2.AnimationSpeed.FAST
154
156
  },
155
157
  "prompt-carousel-test-dark-widget": {
156
158
  widgetConfigId: "prompt-carousel-test-dark-widget",
157
159
  contentId: "prompt-carousel-test-dark-widget",
158
160
  type: require_contexts_typesV3.WidgetTypeV3.PromptCarouselV3,
159
- promptButtonType: require_index$1.PromptButtonVariant.DARK,
161
+ promptButtonType: require_index$2.PromptButtonVariant.DARK,
160
162
  boldFirstButton: false,
161
- promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
162
- animationSpeed: require_types$1.AnimationSpeed.FAST
163
+ promptCarouselRows: require_types$2.PromptCarouselRows.ALWAYS_ONE,
164
+ animationSpeed: require_types$2.AnimationSpeed.FAST
163
165
  },
164
166
  "titled-prompt-carousel-test-light-widget": {
165
167
  widgetConfigId: "titled-prompt-carousel-test-light-widget",
166
168
  contentId: "titled-prompt-carousel-test-light-widget",
167
169
  type: require_contexts_typesV3.WidgetTypeV3.TitledPromptCarouselV3,
168
- promptButtonType: require_index$1.PromptButtonVariant.LIGHT,
170
+ promptButtonType: require_index$2.PromptButtonVariant.LIGHT,
169
171
  boldFirstButton: false,
170
- promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
171
- animationSpeed: require_types$1.AnimationSpeed.FAST
172
+ promptCarouselRows: require_types$2.PromptCarouselRows.ALWAYS_ONE,
173
+ animationSpeed: require_types$2.AnimationSpeed.FAST
172
174
  },
173
175
  "titled-prompt-carousel-test-dark-widget": {
174
176
  widgetConfigId: "titled-prompt-carousel-test-dark-widget",
175
177
  contentId: "titled-prompt-carousel-test-dark-widget",
176
178
  type: require_contexts_typesV3.WidgetTypeV3.TitledPromptCarouselV3,
177
- promptButtonType: require_index$1.PromptButtonVariant.DARK,
179
+ promptButtonType: require_index$2.PromptButtonVariant.DARK,
178
180
  boldFirstButton: false,
179
- promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
180
- animationSpeed: require_types$1.AnimationSpeed.FAST
181
+ promptCarouselRows: require_types$2.PromptCarouselRows.ALWAYS_ONE,
182
+ animationSpeed: require_types$2.AnimationSpeed.FAST
181
183
  },
182
184
  "social-proof-test-widget-four-grid": {
183
185
  widgetConfigId: "social-proof-test-widget-four-grid",
184
186
  contentId: "social-proof-test-widget-four-grid",
185
187
  type: require_contexts_typesV3.WidgetTypeV3.SocialProofV3,
186
- imageGalleryLayout: require_types.ImageGalleryLayout.FOUR_GRID,
188
+ imageGalleryLayout: require_types$1.ImageGalleryLayout.FOUR_GRID,
187
189
  kind: require_contexts_typesV3.SocialProofWidgetKind.STATIC,
188
- variant: require_types$2.WidgetWrapperVariant.INLINE_WITH_BORDER,
189
- promptCarouselRows: require_types$1.PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
190
- primaryButtonVariant: require_index$1.PromptButtonVariant.DARK,
191
- secondaryButtonVariant: require_index$1.PromptButtonVariant.LIGHT,
190
+ variant: require_types$3.WidgetWrapperVariant.INLINE_WITH_BORDER,
191
+ promptCarouselRows: require_types$2.PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
192
+ primaryButtonVariant: require_index$2.PromptButtonVariant.DARK,
193
+ secondaryButtonVariant: require_index$2.PromptButtonVariant.LIGHT,
192
194
  images: mockImages
193
195
  },
194
196
  "social-proof-test-widget-single": {
195
197
  widgetConfigId: "social-proof-test-widget-single",
196
198
  contentId: "social-proof-test-widget-single",
197
199
  type: require_contexts_typesV3.WidgetTypeV3.SocialProofV3,
198
- imageGalleryLayout: require_types.ImageGalleryLayout.SINGLE,
200
+ imageGalleryLayout: require_types$1.ImageGalleryLayout.SINGLE,
199
201
  kind: require_contexts_typesV3.SocialProofWidgetKind.STATIC,
200
- variant: require_types$2.WidgetWrapperVariant.CARD_NO_BORDER,
201
- promptCarouselRows: require_types$1.PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
202
- primaryButtonVariant: require_index$1.PromptButtonVariant.DARK,
203
- secondaryButtonVariant: require_index$1.PromptButtonVariant.LIGHT,
202
+ variant: require_types$3.WidgetWrapperVariant.CARD_NO_BORDER,
203
+ promptCarouselRows: require_types$2.PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
204
+ primaryButtonVariant: require_index$2.PromptButtonVariant.DARK,
205
+ secondaryButtonVariant: require_index$2.PromptButtonVariant.LIGHT,
204
206
  images: mockImages
205
207
  },
206
208
  "social-proof-test-widget-four-horizontal": {
207
209
  widgetConfigId: "social-proof-test-widget-four-horizontal",
208
210
  contentId: "social-proof-test-widget-four-horizontal",
209
211
  type: require_contexts_typesV3.WidgetTypeV3.SocialProofV3,
210
- imageGalleryLayout: require_types.ImageGalleryLayout.FOUR_HORIZONTAL,
212
+ imageGalleryLayout: require_types$1.ImageGalleryLayout.FOUR_HORIZONTAL,
211
213
  kind: require_contexts_typesV3.SocialProofWidgetKind.STATIC,
212
- variant: require_types$2.WidgetWrapperVariant.CARD_WITH_BORDER,
213
- promptCarouselRows: require_types$1.PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
214
- primaryButtonVariant: require_index$1.PromptButtonVariant.DARK,
215
- secondaryButtonVariant: require_index$1.PromptButtonVariant.LIGHT,
214
+ variant: require_types$3.WidgetWrapperVariant.CARD_WITH_BORDER,
215
+ promptCarouselRows: require_types$2.PromptCarouselRows.TWO_ON_MOBILE_ONE_ON_DESKTOP,
216
+ primaryButtonVariant: require_index$2.PromptButtonVariant.DARK,
217
+ secondaryButtonVariant: require_index$2.PromptButtonVariant.LIGHT,
216
218
  images: mockImages
217
219
  },
218
220
  "typing-animation-test-light-widget": {
219
221
  widgetConfigId: "typing-animation-test-light-widget",
220
222
  contentId: "typing-animation-test-light-widget",
221
223
  type: require_contexts_typesV3.WidgetTypeV3.TypingAnimationV3,
222
- widgetVariant: require_types$2.WidgetWrapperVariant.CARD_WITH_BORDER,
223
- promptButtonType: require_index$1.PromptButtonVariant.LIGHT,
224
- promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
224
+ widgetVariant: require_types$3.WidgetWrapperVariant.CARD_WITH_BORDER,
225
+ promptButtonType: require_index$2.PromptButtonVariant.LIGHT,
226
+ promptCarouselRows: require_types$2.PromptCarouselRows.ALWAYS_ONE,
225
227
  showTextField: true
226
228
  },
227
229
  "typing-animation-test-dark-widget": {
228
230
  widgetConfigId: "typing-animation-test-dark-widget",
229
231
  contentId: "typing-animation-test-dark-widget",
230
232
  type: require_contexts_typesV3.WidgetTypeV3.TypingAnimationV3,
231
- widgetVariant: require_types$2.WidgetWrapperVariant.CARD_WITH_BORDER,
232
- promptButtonType: require_index$1.PromptButtonVariant.DARK,
233
- promptCarouselRows: require_types$1.PromptCarouselRows.ALWAYS_ONE,
233
+ widgetVariant: require_types$3.WidgetWrapperVariant.CARD_WITH_BORDER,
234
+ promptButtonType: require_index$2.PromptButtonVariant.DARK,
235
+ promptCarouselRows: require_types$2.PromptCarouselRows.ALWAYS_ONE,
234
236
  showTextField: true
235
237
  },
236
238
  "prompt-button-carousel-with-image-test-widget": {
237
239
  widgetConfigId: "prompt-button-carousel-with-image-test-widget",
238
240
  contentId: "prompt-button-carousel-with-image-test-widget",
239
241
  type: require_contexts_typesV3.WidgetTypeV3.PromptButtonCarouselWithImageV3,
240
- promptButtonType: require_index$1.PromptButtonVariant.LIGHT,
242
+ promptButtonType: require_index$2.PromptButtonVariant.LIGHT,
241
243
  image: mockImages[0],
242
244
  hideTextField: false
243
245
  }
@@ -247,4 +249,4 @@ const mockV3FrontendConfig = {
247
249
  //#endregion
248
250
  exports.mockV3ColorsConfig = mockV3ColorsConfig;
249
251
  exports.mockV3FrontendConfig = mockV3FrontendConfig;
250
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmNqcyIsIm5hbWVzIjpbIm1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiIsIm1vY2tWM0Zyb250ZW5kQ29uZmlnOiBGcm9udGVuZENvbmZpZ1YzIiwiQ29uZmlnVmVyc2lvbkVudW0iLCJUaGVtZSIsImNvbG9yVmFyIiwiQ29sb3JOYW1lcyIsIkNoYXRIZWFkZXJWYXJpYW50IiwiU3BhcmtsZUljb25Db2xvciIsIkN1c3RvbWVyU2VydmljZVR5cGUiLCJXaWRnZXRUeXBlVjMiLCJQcm9tcHRCdXR0b25WYXJpYW50IiwiUHJvbXB0Q2Fyb3VzZWxSb3dzIiwiQW5pbWF0aW9uU3BlZWQiLCJJbWFnZUdhbGxlcnlMYXlvdXQiLCJTb2NpYWxQcm9vZldpZGdldEtpbmQiLCJXaWRnZXRXcmFwcGVyVmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9tb2NrVjNDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnJvbnRlbmRDb25maWdWMyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZnJvbnRlbmRDb25maWdWMyc7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmdWMywgQ29sb3JOYW1lcywgY29sb3JWYXIgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgSW1hZ2VHYWxsZXJ5TGF5b3V0IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0ltYWdlR2FsbGVyeSc7XG5pbXBvcnQgeyBQcm9tcHRCdXR0b25WYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdEJ1dHRvbic7XG5pbXBvcnQgeyBBbmltYXRpb25TcGVlZCwgUHJvbXB0Q2Fyb3VzZWxSb3dzIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Byb21wdENhcm91c2VsJztcbmltcG9ydCB7IFdpZGdldFdyYXBwZXJWYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1dpZGdldFdyYXBwZXInO1xuaW1wb3J0IHsgVGhlbWUgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvVG9rZW5zJztcbmltcG9ydCB7IENoYXRIZWFkZXJWYXJpYW50IH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0NoYXRIZWFkZXInO1xuaW1wb3J0IHsgU3BhcmtsZUljb25Db2xvciB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XZWxjb21lTWVzc2FnZSc7XG5cbmltcG9ydCB7IEN1c3RvbWVyU2VydmljZVR5cGUgfSBmcm9tICdzcmMvdHlwZXMvY3VzdG9tZXJTZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ1ZlcnNpb25FbnVtLCBTb2NpYWxQcm9vZldpZGdldEtpbmQsIFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuXG5jb25zdCBtb2NrSW1hZ2VzID0gW1xuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDEnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDInLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDMnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDQnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiA9IHtcbiAgdGV4dFByaW1hcnk6ICcjMDIxNDE0JyxcbiAgdGV4dFNlY29uZGFyeTogJyM2NjY2NjYnLFxuICB0ZXh0QWNjZW50OiAnIzQ3OEQ4NycsXG4gIHRleHRMaW5rOiAnIzA0MkUyQycsXG4gIHRleHRMaWdodDogJyNGRkZGRkYnLFxuICBiYWNrZ3JvdW5kUHJpbWFyeTogJyMxRjVGNTEnLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiAnI0Y5RjZFQScsXG4gIGJhY2tncm91bmRUZXJ0aWFyeTogJyNFRUVDREQnLFxuICBiYWNrZ3JvdW5kRGFyazogJyMwMjE0MTQnLFxuICBiYWNrZ3JvdW5kTGlnaHQ6ICcjRkZGRkZGJyxcbiAgYm9yZGVyTGlnaHQ6ICcjRTZFN0U3JyxcbiAgYm9yZGVyTWVkaXVtOiAnI0IzQjhCOCcsXG4gIGJvcmRlckRhcms6ICcjMDIxNDE0JyxcbiAgYWNjZW50UHJpbWFyeTogJyMxRjVGNTEnLFxuICBhY2NlbnRTZWNvbmRhcnk6ICcjQUU4NjU5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNGcm9udGVuZENvbmZpZzogRnJvbnRlbmRDb25maWdWMyA9IHtcbiAgdWlDb25maWdzOiB7XG4gICAgdmVyc2lvbjogQ29uZmlnVmVyc2lvbkVudW0uVjMsXG4gICAgc2hvcnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICBsb29rQW5kRmVlbDoge1xuICAgICAgdGhlbWU6IFRoZW1lLlNUQU5EQVJELFxuICAgICAgYWdlbnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0RLLnN2ZycsXG4gICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fTHQuc3ZnJyxcbiAgICAgIHdpZGdldExvZ29TcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19ESy5zdmcnLFxuICAgICAgaGlkZVdpZGdldExvZ286IGZhbHNlLFxuICAgICAgZWxlbWVudFJhZGl1czogOCxcbiAgICAgIGltYWdlQXNwZWN0UmF0aW86ICcxLzEnLFxuICAgICAgYnV0dG9uQ29sb3JzOiB7XG4gICAgICAgIGxpZ2h0QnV0dG9uQmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnkpLFxuICAgICAgICBsaWdodEJ1dHRvbkljb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgICAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICAgIGRhcmtCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICB9LFxuICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICB0aXRsZUZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgaGVhZGVyRm9udEZhbWlseTogJ1BvcHBpbnMnLFxuICAgICAgICBib2R5Rm9udEZhbWlseTogJ0ludGVyIFZhcmlhYmxlJyxcbiAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICB0MTogJzMycHgnLFxuICAgICAgICAgIHQyOiAnMjhweCcsXG4gICAgICAgICAgdDM6ICcyNHB4JyxcbiAgICAgICAgICBoMTogJzIwcHgnLFxuICAgICAgICAgIGgyOiAnMTZweCcsXG4gICAgICAgICAgaDM6ICcxNHB4JyxcbiAgICAgICAgICBiMTogJzIwcHgnLFxuICAgICAgICAgIGIyOiAnMTZweCcsXG4gICAgICAgICAgYjM6ICcxNHB4JyxcbiAgICAgICAgICBiNDogJzEycHgnLFxuICAgICAgICAgIGI1OiAnMTBweCcsXG4gICAgICAgICAgbDE6ICcxNHB4JyxcbiAgICAgICAgICBsMjogJzEycHgnLFxuICAgICAgICB9LFxuICAgICAgICBmb250V2VpZ2h0OiB7XG4gICAgICAgICAgcmc6ICc0MDAnLFxuICAgICAgICAgIG1kOiAnNTAwJyxcbiAgICAgICAgICBzYjogJzYwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAnMCc6ICcwZW0nLFxuICAgICAgICAgICd3aWRlLTEnOiAnMXB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICcxMjQnOiAxLjI0LFxuICAgICAgICAgICcxMjAnOiAxLjIsXG4gICAgICAgICAgJzExOCc6IDEuMTgsXG4gICAgICAgICAgJzExNic6IDEuMTYsXG4gICAgICAgICAgJzExNCc6IDEuMTQsXG4gICAgICAgICAgJzE0OCc6IDEuNDgsXG4gICAgICAgICAgJzE0MCc6IDEuNCxcbiAgICAgICAgICAnMTI4JzogMS4yOCxcbiAgICAgICAgICAnMTMwJzogMS4zLFxuICAgICAgICAgICcxMzMnOiAxLjMzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICBwb3NpdGlvbjogJ2JvdHRvbVJpZ2h0JyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSxcbiAgICAgIG1vZGU6ICdkYXJrJyxcbiAgICAgIHNob3dPcHRpb246ICdhbHdheXMnLFxuICAgICAgc3R5bGU6ICdhdHRhY2hlZCcsXG4gICAgICBpY29uU1ZHU3JjOiAnJyxcbiAgICB9LFxuICAgIGZsb2F0aW5nQ2hhdDoge1xuICAgICAgaGVhZGVyQmFja2dyb3VuZENvbG9yOiB1bmRlZmluZWQsXG4gICAgICBoZWFkZXJNb2RlOiBDaGF0SGVhZGVyVmFyaWFudC5EQVJLLFxuICAgICAgd2VsY29tZU1lc3NhZ2VJY29uQ29sb3I6IFNwYXJrbGVJY29uQ29sb3IuQUNDRU5UX1BSSU1BUlksXG4gICAgICBzaG93VmVyaWZpZWRCdXllcjogdHJ1ZSxcbiAgICAgIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogdHJ1ZSxcbiAgICAgIHNob3dFbnZpdmVMb2dvOiB0cnVlLFxuICAgICAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlOiBmYWxzZSxcbiAgICAgIG5ldmVyU2hvd1NpbmdsZVByb2R1Y3RDYXJkczogZmFsc2UsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRpdGxlOiAnV2VsY29tZSB0byBFbnZpdmUgQUknLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUZXh0OlxuICAgICAgICAnWW91ciBwZXJzb25hbCBzaG9wcGVyIHRyYWluZWQgb24gdGhlIGNvbGxlY3RpdmUga25vd2xlZGdlIG9mIHRob3VzYW5kcyBvZiByZWFsIGV4cGVydHMhJyxcbiAgICAgIGNoYXRGb290ZXJUZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gICAgY3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb246IHtcbiAgICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlLnVuc3VwcG9ydGVkLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBzdXBwcmVzc01lcmNoYW50QnV0dG9uOiBmYWxzZSxcbiAgICB9LFxuICB9LFxuICBwYWdlVmFyaWFudHM6IFtdLFxuICBtb3VudGluZ0NvbmZpZ3M6IHt9LFxuICB3aWRnZXRDb25maWdzOiB7XG4gICAgJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuRk9VUl9HUklELFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LklOTElORV9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LlNJTkdMRSxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX05PX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LkZPVVJfSE9SSVpPTlRBTCxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3R5cGluZy1hbmltYXRpb24tdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjMsXG4gICAgICB3aWRnZXRWYXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBzaG93VGV4dEZpZWxkOiB0cnVlLFxuICAgIH0sXG4gICAgJ3R5cGluZy1hbmltYXRpb24tdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjMsXG4gICAgICB3aWRnZXRWYXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5DQVJEX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIHNob3dUZXh0RmllbGQ6IHRydWUsXG4gICAgfSxcbiAgICAncHJvbXB0LWJ1dHRvbi1jYXJvdXNlbC13aXRoLWltYWdlLXRlc3Qtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtYnV0dG9uLWNhcm91c2VsLXdpdGgtaW1hZ2UtdGVzdC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWJ1dHRvbi1jYXJvdXNlbC13aXRoLWltYWdlLXRlc3Qtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzLFxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlOiBtb2NrSW1hZ2VzWzBdLFxuICAgICAgaGlkZVRleHRGaWVsZDogZmFsc2UsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxNQUFNLGFBQWE7Q0FDakI7RUFDRSxLQUFLO0VBQ0wsS0FBSztFQUNOO0NBQ0Q7RUFDRSxL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
252
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmNqcyIsIm5hbWVzIjpbIm1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiIsIm1vY2tWM0Zyb250ZW5kQ29uZmlnOiBGcm9udGVuZENvbmZpZ1YzIiwiQ29uZmlnVmVyc2lvbkVudW0iLCJUaGVtZSIsImNvbG9yVmFyIiwiQ29sb3JOYW1lcyIsIkZsb2F0aW5nQnV0dG9uTG9jYXRpb24iLCJDaGF0SGVhZGVyVmFyaWFudCIsIlNwYXJrbGVJY29uQ29sb3IiLCJDdXN0b21lclNlcnZpY2VUeXBlIiwiV2lkZ2V0VHlwZVYzIiwiUHJvbXB0QnV0dG9uVmFyaWFudCIsIlByb21wdENhcm91c2VsUm93cyIsIkFuaW1hdGlvblNwZWVkIiwiSW1hZ2VHYWxsZXJ5TGF5b3V0IiwiU29jaWFsUHJvb2ZXaWRnZXRLaW5kIiwiV2lkZ2V0V3JhcHBlclZhcmlhbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUxheW91dCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9JbWFnZUdhbGxlcnknO1xuaW1wb3J0IHsgUHJvbXB0QnV0dG9uVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRCdXR0b24nO1xuaW1wb3J0IHsgQW5pbWF0aW9uU3BlZWQsIFByb21wdENhcm91c2VsUm93cyB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRDYXJvdXNlbCc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Rva2Vucyc7XG5pbXBvcnQgeyBDaGF0SGVhZGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9DaGF0SGVhZGVyJztcbmltcG9ydCB7IFNwYXJrbGVJY29uQ29sb3IgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2VsY29tZU1lc3NhZ2UnO1xuXG5pbXBvcnQgeyBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IENvbmZpZ1ZlcnNpb25FbnVtLCBTb2NpYWxQcm9vZldpZGdldEtpbmQsIFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuXG5jb25zdCBtb2NrSW1hZ2VzID0gW1xuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDEnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDInLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDMnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDQnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiA9IHtcbiAgdGV4dFByaW1hcnk6ICcjMDIxNDE0JyxcbiAgdGV4dFNlY29uZGFyeTogJyM2NjY2NjYnLFxuICB0ZXh0QWNjZW50OiAnIzQ3OEQ4NycsXG4gIHRleHRMaW5rOiAnIzA0MkUyQycsXG4gIHRleHRMaWdodDogJyNGRkZGRkYnLFxuICBiYWNrZ3JvdW5kUHJpbWFyeTogJyMxRjVGNTEnLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiAnI0Y5RjZFQScsXG4gIGJhY2tncm91bmRUZXJ0aWFyeTogJyNFRUVDREQnLFxuICBiYWNrZ3JvdW5kRGFyazogJyMwMjE0MTQnLFxuICBiYWNrZ3JvdW5kTGlnaHQ6ICcjRkZGRkZGJyxcbiAgYm9yZGVyTGlnaHQ6ICcjRTZFN0U3JyxcbiAgYm9yZGVyTWVkaXVtOiAnI0IzQjhCOCcsXG4gIGJvcmRlckRhcms6ICcjMDIxNDE0JyxcbiAgYWNjZW50UHJpbWFyeTogJyMxRjVGNTEnLFxuICBhY2NlbnRTZWNvbmRhcnk6ICcjQUU4NjU5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNGcm9udGVuZENvbmZpZzogRnJvbnRlbmRDb25maWdWMyA9IHtcbiAgdWlDb25maWdzOiB7XG4gICAgdmVyc2lvbjogQ29uZmlnVmVyc2lvbkVudW0uVjMsXG4gICAgc2hvcnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICBsb29rQW5kRmVlbDoge1xuICAgICAgdGhlbWU6IFRoZW1lLlNUQU5EQVJELFxuICAgICAgYWdlbnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0RLLnN2ZycsXG4gICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fTHQuc3ZnJyxcbiAgICAgIHdpZGdldExvZ29TcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19ESy5zdmcnLFxuICAgICAgaGlkZVdpZGdldExvZ286IGZhbHNlLFxuICAgICAgZWxlbWVudFJhZGl1czogOCxcbiAgICAgIGltYWdlQXNwZWN0UmF0aW86ICcxLzEnLFxuICAgICAgYnV0dG9uQ29sb3JzOiB7XG4gICAgICAgIGxpZ2h0QnV0dG9uQmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnkpLFxuICAgICAgICBsaWdodEJ1dHRvbkljb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgICAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICAgIGRhcmtCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICB9LFxuICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICB0aXRsZUZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgaGVhZGVyRm9udEZhbWlseTogJ1BvcHBpbnMnLFxuICAgICAgICBib2R5Rm9udEZhbWlseTogJ0ludGVyIFZhcmlhYmxlJyxcbiAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICB0MTogJzMycHgnLFxuICAgICAgICAgIHQyOiAnMjhweCcsXG4gICAgICAgICAgdDM6ICcyNHB4JyxcbiAgICAgICAgICBoMTogJzIwcHgnLFxuICAgICAgICAgIGgyOiAnMTZweCcsXG4gICAgICAgICAgaDM6ICcxNHB4JyxcbiAgICAgICAgICBiMTogJzIwcHgnLFxuICAgICAgICAgIGIyOiAnMTZweCcsXG4gICAgICAgICAgYjM6ICcxNHB4JyxcbiAgICAgICAgICBiNDogJzEycHgnLFxuICAgICAgICAgIGI1OiAnMTBweCcsXG4gICAgICAgICAgbDE6ICcxNHB4JyxcbiAgICAgICAgICBsMjogJzEycHgnLFxuICAgICAgICB9LFxuICAgICAgICBmb250V2VpZ2h0OiB7XG4gICAgICAgICAgcmc6ICc0MDAnLFxuICAgICAgICAgIG1kOiAnNTAwJyxcbiAgICAgICAgICBzYjogJzYwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAnMCc6ICcwZW0nLFxuICAgICAgICAgICd3aWRlLTEnOiAnMXB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICcxMjQnOiAxLjI0LFxuICAgICAgICAgICcxMjAnOiAxLjIsXG4gICAgICAgICAgJzExOCc6IDEuMTgsXG4gICAgICAgICAgJzExNic6IDEuMTYsXG4gICAgICAgICAgJzExNCc6IDEuMTQsXG4gICAgICAgICAgJzE0OCc6IDEuNDgsXG4gICAgICAgICAgJzE0MCc6IDEuNCxcbiAgICAgICAgICAnMTI4JzogMS4yOCxcbiAgICAgICAgICAnMTMwJzogMS4zLFxuICAgICAgICAgICcxMzMnOiAxLjMzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICBwb3NpdGlvbjogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbi5CT1RUT01fUklHSFQsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IENvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnksXG4gICAgICBtb2RlOiAnZGFyaycsXG4gICAgICBzaG93T3B0aW9uOiAnYWx3YXlzJyxcbiAgICAgIHN0eWxlOiAnYXR0YWNoZWQnLFxuICAgICAgaWNvblNWR1NyYzogJycsXG4gICAgfSxcbiAgICBmbG9hdGluZ0NoYXQ6IHtcbiAgICAgIGhlYWRlckJhY2tncm91bmRDb2xvcjogQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSxcbiAgICAgIGhlYWRlck1vZGU6IENoYXRIZWFkZXJWYXJpYW50LkRBUkssXG4gICAgICB3ZWxjb21lTWVzc2FnZUljb25Db2xvcjogU3BhcmtsZUljb25Db2xvci5BQ0NFTlRfUFJJTUFSWSxcbiAgICAgIHNob3dWZXJpZmllZEJ1eWVyOiB0cnVlLFxuICAgICAgdXNlclF1ZXJ5SW5wdXRFbmFibGVkOiB0cnVlLFxuICAgICAgc2hvd0Vudml2ZUxvZ286IHRydWUsXG4gICAgICBpZ25vcmVGaXJzdE1vZGVsUmVzcG9uc2U6IGZhbHNlLFxuICAgICAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzOiBmYWxzZSxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjoge1xuICAgICAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGUudW5zdXBwb3J0ZWQsXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzTWVyY2hhbnRCdXR0b246IGZhbHNlLFxuICAgIH0sXG4gIH0sXG4gIHBhZ2VWYXJpYW50czogW10sXG4gIG1vdW50aW5nQ29uZmlnczoge30sXG4gIHdpZGdldENvbmZpZ3M6IHtcbiAgICAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCcsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5GT1VSX0dSSUQsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuSU5MSU5FX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZScsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuU0lOR0xFLFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfTk9fQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuRk9VUl9IT1JJWk9OVEFMLFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UeXBpbmdBbmltYXRpb25WMyxcbiAgICAgIHdpZGdldFZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIHNob3dUZXh0RmllbGQ6IHRydWUsXG4gICAgfSxcbiAgICAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UeXBpbmdBbmltYXRpb25WMyxcbiAgICAgIHdpZGdldFZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgc2hvd1RleHRGaWVsZDogdHJ1ZSxcbiAgICB9LFxuICAgICdwcm9tcHQtYnV0dG9uLWNhcm91c2VsLXdpdGgtaW1hZ2UtdGVzdC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1idXR0b24tY2Fyb3VzZWwtd2l0aC1pbWFnZS10ZXN0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtYnV0dG9uLWNhcm91c2VsLXdpdGgtaW1hZ2UtdGVzdC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjMsXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2U6IG1v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
@@ -1,5 +1,7 @@
1
1
  import { ColorNames, colorVar } from "../../application/models/colorsConfigV3.js";
2
2
  import { ConfigVersionEnum, SocialProofWidgetKind, WidgetTypeV3 } from "../typesV3.js";
3
+ import { FloatingButtonLocation } from "../../packages/components-v3/dist/FloatingButton/types/types.js";
4
+ import "../../packages/components-v3/dist/FloatingButton/index.js";
3
5
  import { ImageGalleryLayout } from "../../packages/components-v3/dist/ImageGallery/types/types.js";
4
6
  import { Theme } from "../../packages/components-v3/dist/tokens/theme/theme.js";
5
7
  import "../../packages/components-v3/dist/ImageGallery/index.js";
@@ -114,7 +116,7 @@ const mockV3FrontendConfig = {
114
116
  }
115
117
  },
116
118
  floatingButton: {
117
- position: "bottomRight",
119
+ position: FloatingButtonLocation.BOTTOM_RIGHT,
118
120
  backgroundColor: ColorNames.BackgroundPrimary,
119
121
  mode: "dark",
120
122
  showOption: "always",
@@ -122,7 +124,7 @@ const mockV3FrontendConfig = {
122
124
  iconSVGSrc: ""
123
125
  },
124
126
  floatingChat: {
125
- headerBackgroundColor: void 0,
127
+ headerBackgroundColor: ColorNames.BackgroundPrimary,
126
128
  headerMode: ChatHeaderVariant.DARK,
127
129
  welcomeMessageIconColor: SparkleIconColor.ACCENT_PRIMARY,
128
130
  showVerifiedBuyer: true,
@@ -246,4 +248,4 @@ const mockV3FrontendConfig = {
246
248
 
247
249
  //#endregion
248
250
  export { mockV3ColorsConfig, mockV3FrontendConfig };
249
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmpzIiwibmFtZXMiOlsibW9ja1YzQ29sb3JzQ29uZmlnOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+IiwibW9ja1YzRnJvbnRlbmRDb25maWc6IEZyb250ZW5kQ29uZmlnVjMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUxheW91dCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9JbWFnZUdhbGxlcnknO1xuaW1wb3J0IHsgUHJvbXB0QnV0dG9uVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRCdXR0b24nO1xuaW1wb3J0IHsgQW5pbWF0aW9uU3BlZWQsIFByb21wdENhcm91c2VsUm93cyB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRDYXJvdXNlbCc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Rva2Vucyc7XG5pbXBvcnQgeyBDaGF0SGVhZGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9DaGF0SGVhZGVyJztcbmltcG9ydCB7IFNwYXJrbGVJY29uQ29sb3IgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2VsY29tZU1lc3NhZ2UnO1xuXG5pbXBvcnQgeyBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdWZXJzaW9uRW51bSwgU29jaWFsUHJvb2ZXaWRnZXRLaW5kLCBXaWRnZXRUeXBlVjMgfSBmcm9tICcuLi90eXBlc1YzJztcblxuY29uc3QgbW9ja0ltYWdlcyA9IFtcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSAxJyxcbiAgfSxcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSAyJyxcbiAgfSxcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSAzJyxcbiAgfSxcbiAge1xuICAgIHNyYzogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvNjAwJyxcbiAgICBhbHQ6ICdJbWFnZSA0JyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNDb2xvcnNDb25maWc6IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxDb2xvck1hcHBpbmdWMz4gPSB7XG4gIHRleHRQcmltYXJ5OiAnIzAyMTQxNCcsXG4gIHRleHRTZWNvbmRhcnk6ICcjNjY2NjY2JyxcbiAgdGV4dEFjY2VudDogJyM0NzhEODcnLFxuICB0ZXh0TGluazogJyMwNDJFMkMnLFxuICB0ZXh0TGlnaHQ6ICcjRkZGRkZGJyxcbiAgYmFja2dyb3VuZFByaW1hcnk6ICcjMUY1RjUxJyxcbiAgYmFja2dyb3VuZFNlY29uZGFyeTogJyNGOUY2RUEnLFxuICBiYWNrZ3JvdW5kVGVydGlhcnk6ICcjRUVFQ0REJyxcbiAgYmFja2dyb3VuZERhcms6ICcjMDIxNDE0JyxcbiAgYmFja2dyb3VuZExpZ2h0OiAnI0ZGRkZGRicsXG4gIGJvcmRlckxpZ2h0OiAnI0U2RTdFNycsXG4gIGJvcmRlck1lZGl1bTogJyNCM0I4QjgnLFxuICBib3JkZXJEYXJrOiAnIzAyMTQxNCcsXG4gIGFjY2VudFByaW1hcnk6ICcjMUY1RjUxJyxcbiAgYWNjZW50U2Vjb25kYXJ5OiAnI0FFODY1OScsXG59O1xuXG5leHBvcnQgY29uc3QgbW9ja1YzRnJvbnRlbmRDb25maWc6IEZyb250ZW5kQ29uZmlnVjMgPSB7XG4gIHVpQ29uZmlnczoge1xuICAgIHZlcnNpb246IENvbmZpZ1ZlcnNpb25FbnVtLlYzLFxuICAgIHNob3J0TmFtZTogJ0Vudml2ZSBBSScsXG4gICAgbG9va0FuZEZlZWw6IHtcbiAgICAgIHRoZW1lOiBUaGVtZS5TVEFOREFSRCxcbiAgICAgIGFnZW50TmFtZTogJ0Vudml2ZSBBSScsXG4gICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19ESy5zdmcnLFxuICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0x0LnN2ZycsXG4gICAgICB3aWRnZXRMb2dvU3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fREsuc3ZnJyxcbiAgICAgIGhpZGVXaWRnZXRMb2dvOiBmYWxzZSxcbiAgICAgIGVsZW1lbnRSYWRpdXM6IDgsXG4gICAgICBpbWFnZUFzcGVjdFJhdGlvOiAnMS8xJyxcbiAgICAgIGJ1dHRvbkNvbG9yczoge1xuICAgICAgICBsaWdodEJ1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5KSxcbiAgICAgICAgbGlnaHRCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICAgIGRhcmtCdXR0b25CYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZERhcmspLFxuICAgICAgICBkYXJrQnV0dG9uSWNvbkNvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkFjY2VudFByaW1hcnkpLFxuICAgICAgfSxcbiAgICAgIHR5cG9ncmFwaHk6IHtcbiAgICAgICAgdGl0bGVGb250RmFtaWx5OiAnUG9wcGlucycsXG4gICAgICAgIGhlYWRlckZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgYm9keUZvbnRGYW1pbHk6ICdJbnRlciBWYXJpYWJsZScsXG4gICAgICAgIGZvbnRTaXplOiB7XG4gICAgICAgICAgdDE6ICczMnB4JyxcbiAgICAgICAgICB0MjogJzI4cHgnLFxuICAgICAgICAgIHQzOiAnMjRweCcsXG4gICAgICAgICAgaDE6ICcyMHB4JyxcbiAgICAgICAgICBoMjogJzE2cHgnLFxuICAgICAgICAgIGgzOiAnMTRweCcsXG4gICAgICAgICAgYjE6ICcyMHB4JyxcbiAgICAgICAgICBiMjogJzE2cHgnLFxuICAgICAgICAgIGIzOiAnMTRweCcsXG4gICAgICAgICAgYjQ6ICcxMnB4JyxcbiAgICAgICAgICBiNTogJzEwcHgnLFxuICAgICAgICAgIGwxOiAnMTRweCcsXG4gICAgICAgICAgbDI6ICcxMnB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgZm9udFdlaWdodDoge1xuICAgICAgICAgIHJnOiAnNDAwJyxcbiAgICAgICAgICBtZDogJzUwMCcsXG4gICAgICAgICAgc2I6ICc2MDAnLFxuICAgICAgICB9LFxuICAgICAgICBsZXR0ZXJTcGFjaW5nOiB7XG4gICAgICAgICAgJzAnOiAnMGVtJyxcbiAgICAgICAgICAnd2lkZS0xJzogJzFweCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAnMTI0JzogMS4yNCxcbiAgICAgICAgICAnMTIwJzogMS4yLFxuICAgICAgICAgICcxMTgnOiAxLjE4LFxuICAgICAgICAgICcxMTYnOiAxLjE2LFxuICAgICAgICAgICcxMTQnOiAxLjE0LFxuICAgICAgICAgICcxNDgnOiAxLjQ4LFxuICAgICAgICAgICcxNDAnOiAxLjQsXG4gICAgICAgICAgJzEyOCc6IDEuMjgsXG4gICAgICAgICAgJzEzMCc6IDEuMyxcbiAgICAgICAgICAnMTMzJzogMS4zMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBmbG9hdGluZ0J1dHRvbjoge1xuICAgICAgcG9zaXRpb246ICdib3R0b21SaWdodCcsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IENvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnksXG4gICAgICBtb2RlOiAnZGFyaycsXG4gICAgICBzaG93T3B0aW9uOiAnYWx3YXlzJyxcbiAgICAgIHN0eWxlOiAnYXR0YWNoZWQnLFxuICAgICAgaWNvblNWR1NyYzogJycsXG4gICAgfSxcbiAgICBmbG9hdGluZ0NoYXQ6IHtcbiAgICAgIGhlYWRlckJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICAgICAgaGVhZGVyTW9kZTogQ2hhdEhlYWRlclZhcmlhbnQuREFSSyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlSWNvbkNvbG9yOiBTcGFya2xlSWNvbkNvbG9yLkFDQ0VOVF9QUklNQVJZLFxuICAgICAgc2hvd1ZlcmlmaWVkQnV5ZXI6IHRydWUsXG4gICAgICB1c2VyUXVlcnlJbnB1dEVuYWJsZWQ6IHRydWUsXG4gICAgICBzaG93RW52aXZlTG9nbzogdHJ1ZSxcbiAgICAgIGlnbm9yZUZpcnN0TW9kZWxSZXNwb25zZTogZmFsc2UsXG4gICAgICBuZXZlclNob3dTaW5nbGVQcm9kdWN0Q2FyZHM6IGZhbHNlLFxuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICAgIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uOiB7XG4gICAgICBwcm92aWRlcjogQ3VzdG9tZXJTZXJ2aWNlVHlwZS51bnN1cHBvcnRlZCxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NNZXJjaGFudEJ1dHRvbjogZmFsc2UsXG4gICAgfSxcbiAgfSxcbiAgcGFnZVZhcmlhbnRzOiBbXSxcbiAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgd2lkZ2V0Q29uZmlnczoge1xuICAgICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3Byb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBib2xkRmlyc3RCdXR0b246IGZhbHNlLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBBbmltYXRpb25TcGVlZC5GQVNULFxuICAgIH0sXG4gICAgJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWMyxcblxuICAgICAgcHJvbXB0QnV0dG9uVHlwZTogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJyxcbiAgICAgIGNvbnRlbnRJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWdyaWQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjMsXG5cbiAgICAgIGltYWdlR2FsbGVyeUxheW91dDogSW1hZ2VHYWxsZXJ5TGF5b3V0LkZPVVJfR1JJRCxcbiAgICAgIGtpbmQ6IFNvY2lhbFByb29mV2lkZ2V0S2luZC5TVEFUSUMsXG4gICAgICB2YXJpYW50OiBXaWRnZXRXcmFwcGVyVmFyaWFudC5JTkxJTkVfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZSc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZScsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtc2luZ2xlJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5TSU5HTEUsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9OT19CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCcsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ob3Jpem9udGFsJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5GT1VSX0hPUklaT05UQUwsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLlRXT19PTl9NT0JJTEVfT05FX09OX0RFU0tUT1AsXG4gICAgICBwcmltYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5EQVJLLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVmFyaWFudDogUHJvbXB0QnV0dG9uVmFyaWFudC5MSUdIVCxcbiAgICAgIGltYWdlczogbW9ja0ltYWdlcyxcbiAgICB9LFxuICAgICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzLFxuICAgICAgd2lkZ2V0VmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgc2hvd1RleHRGaWVsZDogdHJ1ZSxcbiAgICB9LFxuICAgICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3R5cGluZy1hbmltYXRpb24tdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzLFxuICAgICAgd2lkZ2V0VmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuQ0FSRF9XSVRIX0JPUkRFUixcbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBzaG93VGV4dEZpZWxkOiB0cnVlLFxuICAgIH0sXG4gICAgJ3Byb21wdC1idXR0b24tY2Fyb3VzZWwtd2l0aC1pbWFnZS10ZXN0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWJ1dHRvbi1jYXJvdXNlbC13aXRoLWltYWdlLXRlc3Qtd2lkZ2V0JyxcbiAgICAgIGNvbnRlbnRJZDogJ3Byb21wdC1idXR0b24tY2Fyb3VzZWwtd2l0aC1pbWFnZS10ZXN0LXdpZGdldCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuUHJvbXB0QnV0dG9uQ2Fyb3VzZWxXaXRoSW1hZ2VWMyxcbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZTogbW9ja0ltYWdlc1swXSxcbiAgICAgIGhpZGVUZXh0RmllbGQ6IGZhbHNlLFxuICAgIH0sXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsTUFBTSxhQUFhO0NBQ2pCO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNGO0FBRUQsTUFBYUEscUJBQStEO0NBQzFFLGFBQWE7Q0FDYixlQUFlO0NBQ2YsWUFBWTtDQUNaLFVBQVU7Q0FDVixXQUFXO0NBQ1gsbUJBQW1CO0NBQ25CLHFCQUFxQjtDQUNyQixvQkFBb0I7Q0FDcEIsZ0JBQWdCO0NBQ2hCLGlCQUFpQjtDQUNqQixhQUFhO0NBQ2IsY0FBYztDQUNkLFlBQVk7Q0FDWixlQUFl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
251
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja1YzQ29uZmlnLmpzIiwibmFtZXMiOlsibW9ja1YzQ29sb3JzQ29uZmlnOiBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+IiwibW9ja1YzRnJvbnRlbmRDb25maWc6IEZyb250ZW5kQ29uZmlnVjMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeUxheW91dCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9JbWFnZUdhbGxlcnknO1xuaW1wb3J0IHsgUHJvbXB0QnV0dG9uVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRCdXR0b24nO1xuaW1wb3J0IHsgQW5pbWF0aW9uU3BlZWQsIFByb21wdENhcm91c2VsUm93cyB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9Qcm9tcHRDYXJvdXNlbCc7XG5pbXBvcnQgeyBXaWRnZXRXcmFwcGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9XaWRnZXRXcmFwcGVyJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL1Rva2Vucyc7XG5pbXBvcnQgeyBDaGF0SGVhZGVyVmFyaWFudCB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9DaGF0SGVhZGVyJztcbmltcG9ydCB7IFNwYXJrbGVJY29uQ29sb3IgfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvV2VsY29tZU1lc3NhZ2UnO1xuXG5pbXBvcnQgeyBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgeyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uIH0gZnJvbSAnQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uJztcbmltcG9ydCB7IENvbmZpZ1ZlcnNpb25FbnVtLCBTb2NpYWxQcm9vZldpZGdldEtpbmQsIFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuXG5jb25zdCBtb2NrSW1hZ2VzID0gW1xuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDEnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDInLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDMnLFxuICB9LFxuICB7XG4gICAgc3JjOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC82MDAnLFxuICAgIGFsdDogJ0ltYWdlIDQnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG1vY2tWM0NvbG9yc0NvbmZpZzogQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPiA9IHtcbiAgdGV4dFByaW1hcnk6ICcjMDIxNDE0JyxcbiAgdGV4dFNlY29uZGFyeTogJyM2NjY2NjYnLFxuICB0ZXh0QWNjZW50OiAnIzQ3OEQ4NycsXG4gIHRleHRMaW5rOiAnIzA0MkUyQycsXG4gIHRleHRMaWdodDogJyNGRkZGRkYnLFxuICBiYWNrZ3JvdW5kUHJpbWFyeTogJyMxRjVGNTEnLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiAnI0Y5RjZFQScsXG4gIGJhY2tncm91bmRUZXJ0aWFyeTogJyNFRUVDREQnLFxuICBiYWNrZ3JvdW5kRGFyazogJyMwMjE0MTQnLFxuICBiYWNrZ3JvdW5kTGlnaHQ6ICcjRkZGRkZGJyxcbiAgYm9yZGVyTGlnaHQ6ICcjRTZFN0U3JyxcbiAgYm9yZGVyTWVkaXVtOiAnI0IzQjhCOCcsXG4gIGJvcmRlckRhcms6ICcjMDIxNDE0JyxcbiAgYWNjZW50UHJpbWFyeTogJyMxRjVGNTEnLFxuICBhY2NlbnRTZWNvbmRhcnk6ICcjQUU4NjU5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBtb2NrVjNGcm9udGVuZENvbmZpZzogRnJvbnRlbmRDb25maWdWMyA9IHtcbiAgdWlDb25maWdzOiB7XG4gICAgdmVyc2lvbjogQ29uZmlnVmVyc2lvbkVudW0uVjMsXG4gICAgc2hvcnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICBsb29rQW5kRmVlbDoge1xuICAgICAgdGhlbWU6IFRoZW1lLlNUQU5EQVJELFxuICAgICAgYWdlbnROYW1lOiAnRW52aXZlIEFJJyxcbiAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogJ2h0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlci9hc3NldHMvZW52aXZlLWFpL0Vudml2ZV9Mb2dvX0RLLnN2ZycsXG4gICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiAnaHR0cHM6Ly9jZG4uc3BpZmZ5LmFpL290aGVyL2Fzc2V0cy9lbnZpdmUtYWkvRW52aXZlX0xvZ29fTHQuc3ZnJyxcbiAgICAgIHdpZGdldExvZ29TcmM6ICdodHRwczovL2Nkbi5zcGlmZnkuYWkvb3RoZXIvYXNzZXRzL2Vudml2ZS1haS9FbnZpdmVfTG9nb19ESy5zdmcnLFxuICAgICAgaGlkZVdpZGdldExvZ286IGZhbHNlLFxuICAgICAgZWxlbWVudFJhZGl1czogOCxcbiAgICAgIGltYWdlQXNwZWN0UmF0aW86ICcxLzEnLFxuICAgICAgYnV0dG9uQ29sb3JzOiB7XG4gICAgICAgIGxpZ2h0QnV0dG9uQmFja2dyb3VuZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJhY2tncm91bmRTZWNvbmRhcnkpLFxuICAgICAgICBsaWdodEJ1dHRvbkljb25Db2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgICAgZGFya0J1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICAgIGRhcmtCdXR0b25JY29uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICB9LFxuICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICB0aXRsZUZvbnRGYW1pbHk6ICdQb3BwaW5zJyxcbiAgICAgICAgaGVhZGVyRm9udEZhbWlseTogJ1BvcHBpbnMnLFxuICAgICAgICBib2R5Rm9udEZhbWlseTogJ0ludGVyIFZhcmlhYmxlJyxcbiAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICB0MTogJzMycHgnLFxuICAgICAgICAgIHQyOiAnMjhweCcsXG4gICAgICAgICAgdDM6ICcyNHB4JyxcbiAgICAgICAgICBoMTogJzIwcHgnLFxuICAgICAgICAgIGgyOiAnMTZweCcsXG4gICAgICAgICAgaDM6ICcxNHB4JyxcbiAgICAgICAgICBiMTogJzIwcHgnLFxuICAgICAgICAgIGIyOiAnMTZweCcsXG4gICAgICAgICAgYjM6ICcxNHB4JyxcbiAgICAgICAgICBiNDogJzEycHgnLFxuICAgICAgICAgIGI1OiAnMTBweCcsXG4gICAgICAgICAgbDE6ICcxNHB4JyxcbiAgICAgICAgICBsMjogJzEycHgnLFxuICAgICAgICB9LFxuICAgICAgICBmb250V2VpZ2h0OiB7XG4gICAgICAgICAgcmc6ICc0MDAnLFxuICAgICAgICAgIG1kOiAnNTAwJyxcbiAgICAgICAgICBzYjogJzYwMCcsXG4gICAgICAgIH0sXG4gICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAnMCc6ICcwZW0nLFxuICAgICAgICAgICd3aWRlLTEnOiAnMXB4JyxcbiAgICAgICAgfSxcbiAgICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICAgICcxMjQnOiAxLjI0LFxuICAgICAgICAgICcxMjAnOiAxLjIsXG4gICAgICAgICAgJzExOCc6IDEuMTgsXG4gICAgICAgICAgJzExNic6IDEuMTYsXG4gICAgICAgICAgJzExNCc6IDEuMTQsXG4gICAgICAgICAgJzE0OCc6IDEuNDgsXG4gICAgICAgICAgJzE0MCc6IDEuNCxcbiAgICAgICAgICAnMTI4JzogMS4yOCxcbiAgICAgICAgICAnMTMwJzogMS4zLFxuICAgICAgICAgICcxMzMnOiAxLjMzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICBwb3NpdGlvbjogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbi5CT1RUT01fUklHSFQsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IENvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnksXG4gICAgICBtb2RlOiAnZGFyaycsXG4gICAgICBzaG93T3B0aW9uOiAnYWx3YXlzJyxcbiAgICAgIHN0eWxlOiAnYXR0YWNoZWQnLFxuICAgICAgaWNvblNWR1NyYzogJycsXG4gICAgfSxcbiAgICBmbG9hdGluZ0NoYXQ6IHtcbiAgICAgIGhlYWRlckJhY2tncm91bmRDb2xvcjogQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSxcbiAgICAgIGhlYWRlck1vZGU6IENoYXRIZWFkZXJWYXJpYW50LkRBUkssXG4gICAgICB3ZWxjb21lTWVzc2FnZUljb25Db2xvcjogU3BhcmtsZUljb25Db2xvci5BQ0NFTlRfUFJJTUFSWSxcbiAgICAgIHNob3dWZXJpZmllZEJ1eWVyOiB0cnVlLFxuICAgICAgdXNlclF1ZXJ5SW5wdXRFbmFibGVkOiB0cnVlLFxuICAgICAgc2hvd0Vudml2ZUxvZ286IHRydWUsXG4gICAgICBpZ25vcmVGaXJzdE1vZGVsUmVzcG9uc2U6IGZhbHNlLFxuICAgICAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzOiBmYWxzZSxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjoge1xuICAgICAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGUudW5zdXBwb3J0ZWQsXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzTWVyY2hhbnRCdXR0b246IGZhbHNlLFxuICAgIH0sXG4gIH0sXG4gIHBhZ2VWYXJpYW50czogW10sXG4gIG1vdW50aW5nQ29uZmlnczoge30sXG4gIHdpZGdldENvbmZpZ3M6IHtcbiAgICAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1saWdodC13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Qcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICdwcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAncHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndGl0bGVkLXByb21wdC1jYXJvdXNlbC10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzLFxuXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiBmYWxzZSxcbiAgICAgIHByb21wdENhcm91c2VsUm93czogUHJvbXB0Q2Fyb3VzZWxSb3dzLkFMV0FZU19PTkUsXG4gICAgICBhbmltYXRpb25TcGVlZDogQW5pbWF0aW9uU3BlZWQuRkFTVCxcbiAgICB9LFxuICAgICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3RpdGxlZC1wcm9tcHQtY2Fyb3VzZWwtdGVzdC1kYXJrLXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0aXRsZWQtcHJvbXB0LWNhcm91c2VsLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlRpdGxlZFByb21wdENhcm91c2VsVjMsXG5cbiAgICAgIHByb21wdEJ1dHRvblR5cGU6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogZmFsc2UsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IEFuaW1hdGlvblNwZWVkLkZBU1QsXG4gICAgfSxcbiAgICAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItZ3JpZCcsXG4gICAgICBjb250ZW50SWQ6ICdzb2NpYWwtcHJvb2YtdGVzdC13aWRnZXQtZm91ci1ncmlkJyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5Tb2NpYWxQcm9vZlYzLFxuXG4gICAgICBpbWFnZUdhbGxlcnlMYXlvdXQ6IEltYWdlR2FsbGVyeUxheW91dC5GT1VSX0dSSUQsXG4gICAgICBraW5kOiBTb2NpYWxQcm9vZldpZGdldEtpbmQuU1RBVElDLFxuICAgICAgdmFyaWFudDogV2lkZ2V0V3JhcHBlclZhcmlhbnQuSU5MSU5FX1dJVEhfQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1zaW5nbGUnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LXNpbmdsZScsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuU0lOR0xFLFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfTk9fQk9SREVSLFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuVFdPX09OX01PQklMRV9PTkVfT05fREVTS1RPUCxcbiAgICAgIHByaW1hcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBzZWNvbmRhcnlCdXR0b25WYXJpYW50OiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2VzOiBtb2NrSW1hZ2VzLFxuICAgIH0sXG4gICAgJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3NvY2lhbC1wcm9vZi10ZXN0LXdpZGdldC1mb3VyLWhvcml6b250YWwnLFxuICAgICAgY29udGVudElkOiAnc29jaWFsLXByb29mLXRlc3Qtd2lkZ2V0LWZvdXItaG9yaXpvbnRhbCcsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWMyxcblxuICAgICAgaW1hZ2VHYWxsZXJ5TGF5b3V0OiBJbWFnZUdhbGxlcnlMYXlvdXQuRk9VUl9IT1JJWk9OVEFMLFxuICAgICAga2luZDogU29jaWFsUHJvb2ZXaWRnZXRLaW5kLlNUQVRJQyxcbiAgICAgIHZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5UV09fT05fTU9CSUxFX09ORV9PTl9ERVNLVE9QLFxuICAgICAgcHJpbWFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuREFSSyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblZhcmlhbnQ6IFByb21wdEJ1dHRvblZhcmlhbnQuTElHSFQsXG4gICAgICBpbWFnZXM6IG1vY2tJbWFnZXMsXG4gICAgfSxcbiAgICAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWxpZ2h0LXdpZGdldCc6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWxpZ2h0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtbGlnaHQtd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UeXBpbmdBbmltYXRpb25WMyxcbiAgICAgIHdpZGdldFZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgcHJvbXB0Q2Fyb3VzZWxSb3dzOiBQcm9tcHRDYXJvdXNlbFJvd3MuQUxXQVlTX09ORSxcbiAgICAgIHNob3dUZXh0RmllbGQ6IHRydWUsXG4gICAgfSxcbiAgICAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWRhcmstd2lkZ2V0Jzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6ICd0eXBpbmctYW5pbWF0aW9uLXRlc3QtZGFyay13aWRnZXQnLFxuICAgICAgY29udGVudElkOiAndHlwaW5nLWFuaW1hdGlvbi10ZXN0LWRhcmstd2lkZ2V0JyxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGVWMy5UeXBpbmdBbmltYXRpb25WMyxcbiAgICAgIHdpZGdldFZhcmlhbnQ6IFdpZGdldFdyYXBwZXJWYXJpYW50LkNBUkRfV0lUSF9CT1JERVIsXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkRBUkssXG4gICAgICBwcm9tcHRDYXJvdXNlbFJvd3M6IFByb21wdENhcm91c2VsUm93cy5BTFdBWVNfT05FLFxuICAgICAgc2hvd1RleHRGaWVsZDogdHJ1ZSxcbiAgICB9LFxuICAgICdwcm9tcHQtYnV0dG9uLWNhcm91c2VsLXdpdGgtaW1hZ2UtdGVzdC13aWRnZXQnOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogJ3Byb21wdC1idXR0b24tY2Fyb3VzZWwtd2l0aC1pbWFnZS10ZXN0LXdpZGdldCcsXG4gICAgICBjb250ZW50SWQ6ICdwcm9tcHQtYnV0dG9uLWNhcm91c2VsLXdpdGgtaW1hZ2UtdGVzdC13aWRnZXQnLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjMsXG4gICAgICBwcm9tcHRCdXR0b25UeXBlOiBQcm9tcHRCdXR0b25WYXJpYW50LkxJR0hULFxuICAgICAgaW1hZ2U6IG1vY2tJbWFnZXNbMF0sXG4gICAgICBoaWRlVGV4dEZpZWxkOiBmYWxzZSxcbiAgICB9LFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsTUFBTSxhQUFhO0NBQ2pCO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNEO0VBQ0UsS0FBSztFQUNMLEtBQUs7RUFDTjtDQUNGO0FBRUQsTUFBYUEscUJBQStEO0NBQzFFLGFBQWE7Q0FDYixlQUFlO0NBQ2Ys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