@envive-ai/react-hooks 0.3.64 → 0.3.66

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 (85) hide show
  1. package/dist/application/models/featureGates.cjs +1 -2
  2. package/dist/application/models/featureGates.d.cts +1 -2
  3. package/dist/application/models/featureGates.d.ts +1 -2
  4. package/dist/application/models/featureGates.js +1 -2
  5. package/dist/atoms/app/index.d.cts +7 -7
  6. package/dist/atoms/app/index.d.ts +7 -7
  7. package/dist/atoms/app/variant.d.cts +6 -6
  8. package/dist/atoms/chat/chatState.d.cts +1 -1
  9. package/dist/atoms/chat/chatState.d.ts +19 -19
  10. package/dist/atoms/chat/form.d.cts +2 -2
  11. package/dist/atoms/chat/form.d.ts +2 -2
  12. package/dist/atoms/chat/index.d.cts +2 -2
  13. package/dist/atoms/chat/index.d.ts +3 -3
  14. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  15. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  16. package/dist/atoms/chat/messageQueue.d.cts +7 -7
  17. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  18. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  19. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  20. package/dist/atoms/chat/renderedWidgetRefs.d.cts +3 -3
  21. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  22. package/dist/atoms/chat/replies.d.cts +3 -3
  23. package/dist/atoms/chat/replies.d.ts +3 -3
  24. package/dist/atoms/chat/suggestions.d.cts +3 -3
  25. package/dist/atoms/chat/suggestions.d.ts +2 -2
  26. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  27. package/dist/atoms/envive/enviveConfig.d.ts +14 -14
  28. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  29. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  30. package/dist/atoms/org/customerService.d.cts +6 -6
  31. package/dist/atoms/org/customerService.d.ts +6 -6
  32. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  33. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  34. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  35. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  36. package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
  37. package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
  38. package/dist/atoms/search/chatSearch.d.cts +17 -17
  39. package/dist/atoms/search/chatSearch.d.ts +17 -17
  40. package/dist/atoms/search/searchAPI.d.cts +13 -13
  41. package/dist/atoms/search/searchAPI.d.ts +13 -13
  42. package/dist/atoms/search/utils.d.ts +1 -1
  43. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  44. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  45. package/dist/contexts/pageContext/pageContext.cjs +12 -24
  46. package/dist/contexts/pageContext/pageContext.js +12 -24
  47. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  48. package/dist/contexts/types.d.cts +1 -1
  49. package/dist/contexts/types.d.ts +1 -1
  50. package/dist/contexts/typesV3.cjs +8 -1
  51. package/dist/contexts/typesV3.d.cts +23 -6
  52. package/dist/contexts/typesV3.d.ts +23 -6
  53. package/dist/contexts/typesV3.js +8 -2
  54. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  55. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
  56. package/dist/hooks/utils.d.cts +1 -1
  57. package/dist/hooks/utils.d.ts +1 -1
  58. package/dist/services/enviveConfigService/enviveConfigService.cjs +21 -35
  59. package/dist/services/enviveConfigService/enviveConfigService.d.cts +1 -2
  60. package/dist/services/enviveConfigService/enviveConfigService.d.ts +1 -2
  61. package/dist/services/enviveConfigService/enviveConfigService.js +21 -35
  62. package/dist/services/enviveConfigService/fetchBootstrapConfig.cjs +15 -16
  63. package/dist/services/enviveConfigService/fetchBootstrapConfig.js +15 -16
  64. package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +1 -69
  65. package/dist/services/enviveConfigService/fetchGraphQLConfig.js +2 -69
  66. package/dist/services/featureFlagService/index.cjs +7 -5
  67. package/dist/services/featureFlagService/index.d.cts +2 -1
  68. package/dist/services/featureFlagService/index.d.ts +2 -1
  69. package/dist/services/featureFlagService/index.js +7 -5
  70. package/package.json +1 -1
  71. package/src/application/models/featureGates.ts +5 -8
  72. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +4 -59
  73. package/src/contexts/pageContext/pageContext.tsx +20 -41
  74. package/src/contexts/typesV3.ts +22 -4
  75. package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +72 -158
  76. package/src/services/enviveConfigService/__tests__/fetchBootstrapConfig.test.ts +111 -13
  77. package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +161 -490
  78. package/src/services/enviveConfigService/enviveConfigService.ts +51 -87
  79. package/src/services/enviveConfigService/fetchBootstrapConfig.ts +74 -66
  80. package/src/services/enviveConfigService/fetchGraphQLConfig.ts +0 -120
  81. package/src/services/featureFlagService/__tests__/getFeatureFlagOverrides.test.ts +54 -0
  82. package/src/services/featureFlagService/index.ts +19 -6
  83. package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +0 -42
  84. package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +0 -41
  85. package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +0 -55
@@ -20,8 +20,19 @@ const toResolution = (raw) => raw ? {
20
20
  baseVersionSource: raw.base_version_source
21
21
  } : void 0;
22
22
  const BOOTSTRAP_TIMEOUT_MS = 1500;
23
- const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace, gateNames, url, orgId, orgShortName, contextSource, env, chatId, featureGates }) => {
23
+ const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace, gateNames, chatId, url, contextSource, env, featureGates }) => {
24
24
  const version = configVersionOverride();
25
+ const urlResolvingBody = url !== void 0 ? { url_resolving: {
26
+ url,
27
+ context: {
28
+ user_id: userId,
29
+ chat_id: chatId ?? "",
30
+ source: contextSource,
31
+ env
32
+ },
33
+ feature_gates: featureGates,
34
+ override_config_version: version
35
+ } } : {};
25
36
  const controller = new AbortController();
26
37
  const timeoutId = setTimeout(() => controller.abort(), BOOTSTRAP_TIMEOUT_MS);
27
38
  let result;
@@ -38,19 +49,7 @@ const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace
38
49
  namespace,
39
50
  include_feature_gates: gateNames,
40
51
  version,
41
- url_resolving: {
42
- url,
43
- context: {
44
- user_id: userId,
45
- org_id: orgId,
46
- org_short_name: orgShortName,
47
- chat_id: chatId ?? "",
48
- source: contextSource,
49
- env
50
- },
51
- feature_gates: featureGates,
52
- override_config_version: version
53
- }
52
+ ...urlResolvingBody
54
53
  }),
55
54
  signal: controller.signal
56
55
  });
@@ -59,7 +58,7 @@ const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace
59
58
  } finally {
60
59
  clearTimeout(timeoutId);
61
60
  }
62
- if (!result.org_config?.org?.org || !result.org_config?.gates?.length || !result.widget_config) throw new Error("Bootstrap config response missing required sections (org_config.org.org / org_config.gates / widget_config)");
61
+ if (!result.org_config?.org?.org || !Array.isArray(result.org_config?.gates) || !result.widget_config) throw new Error("Bootstrap config response missing required sections (org_config.org.org / org_config.gates / widget_config)");
63
62
  const orgConfig = result.org_config;
64
63
  const widgetConfig = result.widget_config;
65
64
  const orgOrg = orgConfig.org?.org ?? {};
@@ -99,4 +98,4 @@ const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace
99
98
 
100
99
  //#endregion
101
100
  export { fetchBootstrapConfig };
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hCb290c3RyYXBDb25maWcuanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJyZXN1bHQ6IFJhd0Jvb3RzdHJhcFJlc3BvbnNlIiwib3JnQ29uZmlnVmFsdWVzOiBHcmFwaFFsQ29uZmlnVmFsdWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Vudml2ZUNvbmZpZ1NlcnZpY2UvZmV0Y2hCb290c3RyYXBDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIH0gZnJvbSAnLi9mZXRjaEdyYXBoUUxDb25maWcnO1xuLy8gVHlwZS1vbmx5IGltcG9ydCDigJQgZXJhc2VkIGF0IGNvbXBpbGUgdGltZSwgc28gdGhpcyBkb2VzIG5vdCBjcmVhdGUgYSBydW50aW1lXG4vLyBpbXBvcnQgY3ljbGUgd2l0aCBlbnZpdmVDb25maWdTZXJ2aWNlICh3aGljaCBpbXBvcnRzIGZldGNoQm9vdHN0cmFwQ29uZmlnKS5cbmltcG9ydCB0eXBlIHsgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJy4vZW52aXZlQ29uZmlnU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZldGNoQm9vdHN0cmFwQ29uZmlnJyk7XG5cbi8vIFRoZSB1cmwtcmVzb2x2aW5nIGNvbnRleHQgYml0cyB0aGUgaG9va3MgbGF5ZXIgY2FuJ3QgZGVyaXZlIG9uIGl0cyBvd24g4oCUIHRoZVxuLy8gaW5qZWN0aW9uIGJ1bmRsZSBzdXBwbGllcyBlbnYgKGEgYnVpbGQtdGltZSB2YXIpIGFuZCBjb250ZXh0U291cmNlLiBvcmdcbi8vIGlkZW50aXR5IGlzIHRocmVhZGVkIGZyb20gdGhlIGdldFdpZGdldENvbmZpZyByZXNwb25zZSBmZXRjaGVkIG1vbWVudHMgZWFybGllclxuLy8gKHNlZSBlbnZpdmVDb25maWdTZXJ2aWNlOiBib290c3RyYXAgb25seSBydW5zIG9uIHRoZSBnYXRlLU9OIHBhdGgsIHdoaWNoIHJlYWRzXG4vLyB0aGUgZ2F0ZSBvZmYgZ2V0V2lkZ2V0Q29uZmlnIGZpcnN0LCBzbyBvcmcgaWQvc2hvcnRfbmFtZSBhcmUgYWxyZWFkeSBpbiBoYW5kKS5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hCb290c3RyYXBDb25maWdQYXJhbXMge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgLy8gQ29uZmlnIGBzb3VyY2VgIChTdGF0c2lnIHVzZXIgcHJvcGVydHkpLCAnYXBwJyBpbiB0aGUgaW5qZWN0aW9uIGJ1bmRsZS5cbiAgc291cmNlOiBzdHJpbmc7XG4gIC8vIFNjb3BlcyBvcmdfY29uZmlnLmNvbmZpZ3MgdG8gdGhpcyBuYW1lc3BhY2UuIFJFUVVJUkVEOiB3aXRob3V0IGl0IHB5bW9ub1xuICAvLyByZXR1cm5zIEVWRVJZIG5hbWVzcGFjZSBvbiB0aGUgb3JnIOKAlCBpbmNsdWRpbmcgaW50ZXJuYWwtb25seSBjb25maWdzICh0aGUgQUlcbiAgLy8gc3lzdGVtIHByb21wdCwgYnJhbmQtdm9pY2UgaW5zdHJ1Y3Rpb25zLCBldGMuKSDigJQgaW4gdGhlIHJlc3BvbnNlIHRoZSBwdWJsaWNcbiAgLy8gYnVuZGxlIHJlY2VpdmVzLiBUaGUgbGVnYWN5IC92MS9vcmcvY29uZmlnIGNhbGwgc2NvcGVkIGl0IHRoZSBzYW1lIHdheS5cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGdhdGVOYW1lczogc3RyaW5nW107XG4gIC8vIHVybF9yZXNvbHZpbmcgaW5wdXRzOlxuICB1cmw6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgb3JnU2hvcnROYW1lOiBzdHJpbmc7XG4gIC8vIENvbnRleHQgYHNvdXJjZWAgZm9yIHVybF9yZXNvbHZpbmcgKCdhcHAnIHwgJ3BsYXlncm91bmQnKTsgbWF5IGRpZmZlciBmcm9tXG4gIC8vIHRoZSBjb25maWcgYHNvdXJjZWAgYWJvdmUgKHBsYXlncm91bmQgPSBFbnZpdmUgSHViKS5cbiAgY29udGV4dFNvdXJjZTogc3RyaW5nO1xuICBlbnY6IHN0cmluZztcbiAgY2hhdElkPzogc3RyaW5nO1xuICAvLyBUaGUgb3ZlcnJpZGUtYXdhcmUgZmVhdHVyZSBnYXRlcyAoRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFncygpKSwgc29cbiAgLy8gY2xpZW50LXNpZGUgZ2F0ZSBvdmVycmlkZXMgKHF1ZXJ5L3dpbmRvdy9sb2NhbFN0b3JhZ2UpIHJlYWNoIHBhZ2UtdmFyaWFudFxuICAvLyByZXNvbHV0aW9uIOKAlCBzYW1lIGFzIHRoZSBsZWdhY3kgL3YxL3VybF9yZXNvbHZpbmcgcmVxdWVzdC4gQm9vdHN0cmFwIG1lcmdlc1xuICAvLyB0aGVzZSBPVkVSIGl0cyBvd24gc2VydmVyLXJlc29sdmVkIGdhdGVzLiBIYXJtbGVzc2x5IGlnbm9yZWQgYnkgcHltb25vIHVudGlsXG4gIC8vIFNlc3Npb25Cb290c3RyYXBVcmxSZXNvbHZpbmdSZXF1ZXN0IGdhaW5zIHRoZSBgZmVhdHVyZV9nYXRlc2AgZmllbGQgKHRoZVxuICAvLyBzY2hlbWEgYWxsb3dzIHVua25vd24gZmllbGRzOyB0aGUgbW9kZWwgaXMgYGV4dHJhPSdpZ25vcmUnYCksIHNvIHRoZSBGRSBjYW5cbiAgLy8gc2hpcCBhaGVhZCBvZiB0aGUgYmFja2VuZC5cbiAgZmVhdHVyZUdhdGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUmVzdWx0IHtcbiAgY29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnO1xuICAvLyBUaGUgaW5pdGlhbCBwYWdlLXZhcmlhbnQgcmVzdWx0LCByZWFkeSB0byBzZWVkIHVybFJlc29sdmVyQXRvbSBzbyB0aGVcbiAgLy8gd2FybS11cCBza2lwcyBpdHMgb3duIC92MS91cmxfcmVzb2x2aW5nIGNhbGwuIG51bGwgd2hlbiBib290c3RyYXAnc1xuICAvLyAoYmVzdC1lZmZvcnQpIHVybC1yZXNvbHZpbmcgYnJhbmNoIHJldHVybmVkIG5vdGhpbmcuXG4gIHVybFJlc29sdmluZzogVXJsUmVzb2x2ZXJSZXNwb25zZSB8IG51bGw7XG59XG5cbi8vIC0tLSByYXcgd2lyZSBzaGFwZXMgKFBPU1QgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIGlzIFJFU1Qgc25ha2VfY2FzZSkgLS0tLS0tLS0tXG5cbmludGVyZmFjZSBSYXdGZWF0dXJlR2F0ZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZhbHVlPzogYm9vbGVhbjtcbiAgZ3JvdXBfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIHJ1bGVfaWQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgUmF3RXhwZXJpbWVudEFzc2lnbm1lbnQge1xuICBsYXllcl9uYW1lPzogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFsnbmFtZXNwYWNlJ107XG4gIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICBncm91cF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFJhd1Jlc29sdXRpb24ge1xuICBiYXNlX3ZlcnNpb24/OiBzdHJpbmc7XG4gIGJhc2VfdmVyc2lvbl9zb3VyY2U/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSYXdCb290c3RyYXBSZXNwb25zZSB7XG4gIG9yZ19jb25maWc/OiB7XG4gICAgb3JnPzogeyBvcmc/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IH07XG4gICAgZ2F0ZXM/OiBSYXdGZWF0dXJlR2F0ZVtdO1xuICB9O1xuICB3aWRnZXRfY29uZmlnPzoge1xuICAgIHByb2R1Y3RzX2NvbmZpZz86IFBhcmFtZXRlcnM8dHlwZW9mIHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWc+WzBdO1xuICAgIC8vIFJlYWQgZnJvbSB3aWRnZXRfY29uZmlnIChub3Qgb3JnX2NvbmZpZykgdG8gbWF0Y2ggZ2V0V2lkZ2V0Q29uZmlnIOKAlCBzZWUgdGhlXG4gICAgLy8gbWFwcGluZyBiZWxvdy5cbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzPzogUmF3RXhwZXJpbWVudEFzc2lnbm1lbnRbXTtcbiAgICByZXNvbHV0aW9uPzogUmF3UmVzb2x1dGlvbjtcbiAgfTtcbiAgdXJsX3Jlc29sdmluZz86IFVybFJlc29sdmVyUmVzcG9uc2UgfCBudWxsO1xufVxuXG4vLyBnYXRlcyBhcnJpdmUgc25ha2UgKGBncm91cF9uYW1lYCk7IGdldFdpZGdldENvbmZpZydzIGFycml2ZSBjYW1lbC4gT25seSB0aGVcbi8vIG5hbWUvdmFsdWUgYXJlIHVzZWQgZm9yIGdhdGUgY2hlY2tzIOKAlCBncm91cE5hbWUgaXMgY2FycmllZCBmb3IgYW1wbGl0dWRlLlxuY29uc3QgdG9Cb290c3RyYXBHYXRlcyA9IChyYXc6IFJhd0ZlYXR1cmVHYXRlW10gfCB1bmRlZmluZWQpOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdID0+XG4gIChyYXcgPz8gW10pLm1hcChnID0+ICh7XG4gICAgbmFtZTogZy5uYW1lLFxuICAgIHZhbHVlOiBnLnZhbHVlLFxuICAgIGdyb3VwTmFtZTogZy5ncm91cF9uYW1lID8/IHVuZGVmaW5lZCxcbiAgfSkpO1xuXG4vLyBleHBlcmltZW50X2Fzc2lnbm1lbnRzIGFscmVhZHkgbWF0Y2ggdGhlIHNuYWtlIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50XG4vLyB3aXJlIHNoYXBlICh1bmxpa2UgZ2V0V2lkZ2V0Q29uZmlnJ3MgY2FtZWwsIHdoaWNoIG5lZWRzIHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKS5cbmNvbnN0IHRvQm9vdHN0cmFwQXNzaWdubWVudHMgPSAoXG4gIHJhdzogUmF3RXhwZXJpbWVudEFzc2lnbm1lbnRbXSB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyX25hbWUsXG4gICAgbmFtZXNwYWNlOiBhLm5hbWVzcGFjZSxcbiAgICBhbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lOiBhLmFsbG9jYXRlZF9leHBlcmltZW50X25hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cF9uYW1lLFxuICB9KSk7XG5cbi8vIHJlc29sdXRpb24gaXMgc25ha2UgaGVyZSAoUkVTVCk7IGdldFdpZGdldENvbmZpZydzIGlzIGNhbWVsIChBcmlhZG5lKS5cbmNvbnN0IHRvUmVzb2x1dGlvbiA9IChcbiAgcmF3OiBSYXdSZXNvbHV0aW9uIHwgdW5kZWZpbmVkLFxuKTogRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZCA9PlxuICByYXcgPyB7IGJhc2VWZXJzaW9uOiByYXcuYmFzZV92ZXJzaW9uLCBiYXNlVmVyc2lvblNvdXJjZTogcmF3LmJhc2VfdmVyc2lvbl9zb3VyY2UgfSA6IHVuZGVmaW5lZDtcblxuLy8gT25lIHJvdW5kIHRyaXAgZm9yIHRoZSBjb25maWcgdGhlIHdpZGdldCBjbGllbnQgbmVlZHMgYXQgaW5pdDogb3JnIGlkZW50aXR5ICtcbi8vIGdhdGVzICsgZXhwZXJpbWVudCBhc3NpZ25tZW50cyArIHByb2R1Y3RzQ29uZmlnL3Jlc29sdXRpb24sIFBMVVMgdGhlIGluaXRpYWxcbi8vIHVybC1yZXNvbHZpbmcgcmVzdWx0IOKAlCB0aGUgY29uc29saWRhdGlvbiBvZiBgR0VUIC92MS9vcmcvY29uZmlnYCwgR3JhcGhRTFxuLy8gYG1lLmdldFdpZGdldENvbmZpZ2AsIGFuZCBgUE9TVCAvdjEvdXJsX3Jlc29sdmluZ2AgYmVoaW5kIE1hdHQncyBlbmRwb2ludC5cbi8vXG4vLyBSYXcgZmV0Y2ggKHRoZSBucG0gY2xpZW50IGBAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRgIGhhcyBubyBib290c3RyYXBcbi8vIG1ldGhvZCwgc2FtZSBhcyBnZXRXaWRnZXRDb25maWcpLiBUaHJvd3Mgb24gbmV0d29yay9IVFRQIGZhaWx1cmUvdGltZW91dCDigJQgdGhlXG4vLyBjYWxsZXIgKGVudml2ZUNvbmZpZ1NlcnZpY2UpIGZhbGxzIGJhY2sgdG8gdGhlIGdldFdpZGdldENvbmZpZyBjb25maWcgaXQgYWxyZWFkeVxuLy8gaG9sZHMsIHNvIGEgYm9vdHN0cmFwIHByb2JsZW0gZGVncmFkZXMgdG8gdGhlIHByb3ZlbiBwYXRoIHJhdGhlciB0aGFuIGFib3J0aW5nXG4vLyBpbmplY3Rpb24uXG4vL1xuLy8gQm9vdHN0cmFwIGlzIGFuIE9QVElPTkFMIHVwZ3JhZGUgdGhhdCBCTE9DS1MgdGhlIHByZS1maXJzdC1wYWludCBjcml0aWNhbCBwYXRoXG4vLyAoYSBzZWNvbmQgY2FsbCBhZnRlciBnZXRXaWRnZXRDb25maWcgYWxyZWFkeSBzdWNjZWVkZWQpLCBhbmQgd2UgYWxyZWFkeSBob2xkIGFcbi8vIHVzYWJsZSBnZXRXaWRnZXRDb25maWcgY29uZmlnIHRvIGZhbGwgYmFjayB0byDigJQgc28gaXQgaXMgdGlnaHRseSBib3VuZGVkLiBLZXB0XG4vLyBsb3cgc28gYSBzbG93L2h1bmcgZW5kcG9pbnQgYWRkcyBhdCBtb3N0IHRoaXMgbXVjaCB0byBmaXJzdCBwYWludDsgb24gdGltZW91dFxuLy8gdGhlIGZldGNoIGFib3J0cyBhbmQgd2UgZmFsbCBiYWNrIHRvIGdldFdpZGdldENvbmZpZy4gQ0FMSUJSQVRFIGFnYWluc3QgdGhlXG4vLyBlbmRwb2ludCdzIHJlYWwgcDk5IGJlZm9yZSByYW1waW5nIHRoZSBnYXRlIChhIHZhbHVlIGJlbG93IHA5OSB3aWxsIG1ha2Ugbm9ybWFsXG4vLyBib290c3RyYXBzIGZhbHNlLWFib3J0IGludG8gdGhlIGZhbGxiYWNrLCBkZWZlYXRpbmcgdGhlIGNvbnNvbGlkYXRpb24pLlxuY29uc3QgQk9PVFNUUkFQX1RJTUVPVVRfTVMgPSAxNTAwO1xuXG5leHBvcnQgY29uc3QgZmV0Y2hCb290c3RyYXBDb25maWcgPSBhc3luYyAoe1xuICBiYXNlVXJsLFxuICBhcGlLZXksXG4gIHVzZXJJZCxcbiAgc291cmNlLFxuICBuYW1lc3BhY2UsXG4gIGdhdGVOYW1lcyxcbiAgdXJsLFxuICBvcmdJZCxcbiAgb3JnU2hvcnROYW1lLFxuICBjb250ZXh0U291cmNlLFxuICBlbnYsXG4gIGNoYXRJZCxcbiAgZmVhdHVyZUdhdGVzLFxufTogRmV0Y2hCb290c3RyYXBDb25maWdQYXJhbXMpOiBQcm9taXNlPEJvb3RzdHJhcFJlc3VsdD4gPT4ge1xuICBjb25zdCB2ZXJzaW9uID0gY29uZmlnVmVyc2lvbk92ZXJyaWRlKCk7XG5cbiAgLy8gQXJtZWQgYmVmb3JlIGZldGNoIGFuZCBrZXB0IGxpdmUgYWNyb3NzIHJlc3BvbnNlLmpzb24oKSAoYSBzdGFsbGVkIGJvZHkgcmVhZFxuICAvLyBtdXN0IGFsc28gYmUgaW50ZXJydXB0aWJsZSksIGNsZWFyZWQgaW4gZmluYWxseS4gT24gdGltZW91dCB0aGUgZmV0Y2ggcmVqZWN0c1xuICAvLyB3aXRoIGFuIEFib3J0RXJyb3Ig4oaSIG1heWJlVXBncmFkZVRvQm9vdHN0cmFwJ3MgY2F0Y2ggZmFsbHMgYmFjayB0byBnZXRXaWRnZXRDb25maWcuXG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCBCT09UU1RSQVBfVElNRU9VVF9NUyk7XG4gIGxldCByZXN1bHQ6IFJhd0Jvb3RzdHJhcFJlc3BvbnNlO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vdjEvc2Vzc2lvbi9ib290c3RyYXBgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIC8vIFNjb3BlIG9yZ19jb25maWcuY29uZmlncyB0byB0aGUgd2lkZ2V0IG5hbWVzcGFjZSDigJQgV0lUSE9VVCB0aGlzLCBweW1vbm9cbiAgICAgICAgLy8gcmV0dXJucyBldmVyeSBuYW1lc3BhY2UncyBjb25maWdzIChpbnRlcm5hbCBvbmVzIGluY2x1ZGVkKSB0byB0aGUgYnJvd3Nlci5cbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBpbmNsdWRlX2ZlYXR1cmVfZ2F0ZXM6IGdhdGVOYW1lcyxcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgdXJsX3Jlc29sdmluZzoge1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICAgICAgICBvcmdfaWQ6IG9yZ0lkLFxuICAgICAgICAgICAgb3JnX3Nob3J0X25hbWU6IG9yZ1Nob3J0TmFtZSxcbiAgICAgICAgICAgIGNoYXRfaWQ6IGNoYXRJZCA/PyAnJyxcbiAgICAgICAgICAgIHNvdXJjZTogY29udGV4dFNvdXJjZSxcbiAgICAgICAgICAgIGVudixcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIE92ZXJyaWRlLWF3YXJlIGdhdGVzIHNvIGNsaWVudCBnYXRlIG92ZXJyaWRlcyByZWFjaCBwYWdlLXZhcmlhbnRcbiAgICAgICAgICAvLyByZXNvbHV0aW9uIChib290c3RyYXAgbWVyZ2VzIHRoZXNlIG92ZXIgaXRzIHNlcnZlci1yZXNvbHZlZCBnYXRlcykuXG4gICAgICAgICAgLy8gSWdub3JlZCBieSBweW1vbm8gdW50aWwgdGhlIGVuZHBvaW50IGdhaW5zIHRoZSBmaWVsZCDigJQgc2FmZSB0byBzaGlwIGVhcmx5LlxuICAgICAgICAgIGZlYXR1cmVfZ2F0ZXM6IGZlYXR1cmVHYXRlcyxcbiAgICAgICAgICAvLyBUaGUgY29uZmlnLXZlcnNpb24gb3ZlcnJpZGUgY29tZXMgT05MWSBmcm9tIHRoZSBVUkwgcXVlcnkgcGFyYW1cbiAgICAgICAgICAvLyAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKSDigJQgdGhlIHNhbWUgc291cmNlIGdldFdpZGdldENvbmZpZyB1c2VzLiBJdCBtdXN0XG4gICAgICAgICAgLy8gTk9UIGNvbWUgZnJvbSBnZXRXaWRnZXRDb25maWcncyByZXNvbHZlZCB2ZXJzaW9uOiBvbiB0aGUgZ2F0ZS1PTiBwYXRoXG4gICAgICAgICAgLy8gdGhhdCByZXNwb25zZSBpcyBkaXNjYXJkZWQsIGFuZCBib290c3RyYXAgcmVzb2x2ZXMgdGhlIGNvbmZpZyB2ZXJzaW9uXG4gICAgICAgICAgLy8gc2VydmVyLXNpZGUgKHNjb3BpbmcgdXJsX3Jlc29sdmluZyB0byB0aGF0IHJlc29sdmVkIHZlcnNpb24sIGlmIGRlc2lyZWQsXG4gICAgICAgICAgLy8gYmVsb25ncyBvbiB0aGUgc2VydmVyIOKAlCBub3QgYSBnZXRXaWRnZXRDb25maWcgZGVwZW5kZW5jeSBoZXJlKS5cbiAgICAgICAgICBvdmVycmlkZV9jb25maWdfdmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQm9vdHN0cmFwIGNvbmZpZyByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cbiAgICByZXN1bHQgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBSYXdCb290c3RyYXBSZXNwb25zZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxuXG4gIC8vIEEgMnh4IHdpdGggYSBtaXNzaW5nL3BhcnRpYWwgcGF5bG9hZCBtdXN0IE5PVCBzaWxlbnRseSByZXBsYWNlIHRoZSBrbm93bi1nb29kXG4gIC8vIGdldFdpZGdldENvbmZpZyBjb25maWcgd2l0aCBlbXB0eSBnYXRlcyAvIG1vY2sgcHJvZHVjdHMg4oCUIHRoYXQgd291bGQgZGlzYWJsZSB0aGVcbiAgLy8gY2xpZW50IHNlc3Npb24gb3IgZHJvcCBleHBlcmltZW50cy4gVGhyb3cgaW5zdGVhZCwgc28gbWF5YmVVcGdyYWRlVG9Cb290c3RyYXAnc1xuICAvLyBjYXRjaCBmYWxscyBiYWNrIHRvIHRoZSBnZXRXaWRnZXRDb25maWcgcmVzdWx0IGl0IGFscmVhZHkgaG9sZHMuIGBnYXRlc2AgaXNcbiAgLy8gcmVxdWlyZWQgYXMgYSBOT04tRU1QVFkgYXJyYXk6IHdlIGFsd2F5cyByZXF1ZXN0IHRoZSBmdWxsIGdhdGVOYW1lcyBsaXN0IGFuZFxuICAvLyBvbmx5IHJlYWNoIGJvb3RzdHJhcCBiZWNhdXNlIGdldFdpZGdldENvbmZpZyByZXR1cm5lZCByZWFsIGdhdGVzLCBzbyBhblxuICAvLyBlbXB0eS9hYnNlbnQgZ2F0ZXMgcmVzcG9uc2UgaXMgZGVncmFkZWQg4oaSIGZhbGwgYmFjay4gKEEgcHJvZHVjdHMgY29uZmlnIHRoYXQgaXNcbiAgLy8gcHJlc2VudC1idXQtbWFsZm9ybWVkIHN0aWxsIGRlZ3JhZGVzIHRvIG1vY2sgYmVsb3cg4oCUIG9ubHkgdGhlIHRvcC1sZXZlbFxuICAvLyBzZWN0aW9ucyBhcmUgcmVxdWlyZWQgaGVyZS4pXG4gIGlmICghcmVzdWx0Lm9yZ19jb25maWc/Lm9yZz8ub3JnIHx8ICFyZXN1bHQub3JnX2NvbmZpZz8uZ2F0ZXM/Lmxlbmd0aCB8fCAhcmVzdWx0LndpZGdldF9jb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQm9vdHN0cmFwIGNvbmZpZyByZXNwb25zZSBtaXNzaW5nIHJlcXVpcmVkIHNlY3Rpb25zIChvcmdfY29uZmlnLm9yZy5vcmcgLyBvcmdfY29uZmlnLmdhdGVzIC8gd2lkZ2V0X2NvbmZpZyknLFxuICAgICk7XG4gIH1cbiAgY29uc3Qgb3JnQ29uZmlnID0gcmVzdWx0Lm9yZ19jb25maWc7XG4gIGNvbnN0IHdpZGdldENvbmZpZyA9IHJlc3VsdC53aWRnZXRfY29uZmlnO1xuICAvLyBUaGUgZ3VhcmQgYWJvdmUgZ3VhcmFudGVlcyBvcmcub3JnIGF0IHJ1bnRpbWU7IHRoZSBgPz8ge31gIG9ubHkgc2F0aXNmaWVzIHRoZVxuICAvLyB0eXBlLW5hcnJvd2luZyAoVFMgZG9lc24ndCBjYXJyeSB0aGUgb3B0aW9uYWwtY2hhaW4gbmFycm93aW5nIHRocm91Z2ggdGhlIGFsaWFzKS5cbiAgY29uc3Qgb3JnT3JnID0gb3JnQ29uZmlnLm9yZz8ub3JnID8/IHt9O1xuICBjb25zdCByZXNvbHV0aW9uID0gdG9SZXNvbHV0aW9uKHdpZGdldENvbmZpZy5yZXNvbHV0aW9uKTtcblxuICAvLyBBIG1hbGZvcm1lZCBwcm9kdWN0cyBjb25maWcgZGVncmFkZXMgdG8gbW9jayBkZWZhdWx0cyBXSVRIT1VUIGxvc2luZyB0aGVcbiAgLy8gb3JnIC8gZ2F0ZXMgLyBleHBlcmltZW50cyB0aGF0IGNhbWUgYmFjayBmaW5lIOKAlCBtaXJyb3JzIGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcuXG4gIGxldCBvcmdDb25maWdWYWx1ZXM6IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gIHRyeSB7XG4gICAgb3JnQ29uZmlnVmFsdWVzID0geyAuLi50cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHdpZGdldENvbmZpZy5wcm9kdWN0c19jb25maWcpLCByZXNvbHV0aW9uIH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5sb2dFcnJvcignZmV0Y2hCb290c3RyYXBDb25maWcgfCBFcnJvciB0cmFuc2Zvcm1pbmcgcHJvZHVjdHMgY29uZmlnJywgZXJyKTtcbiAgICBvcmdDb25maWdWYWx1ZXMgPSB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkLCByZXNvbHV0aW9uIH07XG4gIH1cblxuICBjb25zdCBjb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gICAgLy8gb3JnX2NvbmZpZyBpcyBieXRlLWlkZW50aWNhbCB0byB0aGUgbGVnYWN5IC92MS9vcmcvY29uZmlnIChzbmFrZSksIHRoZVxuICAgIC8vIGV4YWN0IHNoYXBlIEVudml2ZVNlcnZpY2VDb25maWcub3JnIHdhcyBidWlsdCB0byBob2xkLiBDb25zdHJ1Y3RlZFxuICAgIC8vIGRlZmVuc2l2ZWx5IChsaWtlIGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcpIHJhdGhlciB0aGFuIHBhc3NlZCB0aHJvdWdoLlxuICAgIG9yZzoge1xuICAgICAgb3JnOiB7XG4gICAgICAgIGlkOiBvcmdPcmcuaWQgPz8gJycsXG4gICAgICAgIHNob3J0X25hbWU6IG9yZ09yZy5zaG9ydF9uYW1lID8/ICcnLFxuICAgICAgICBkaXNwbGF5X25hbWU6IG9yZ09yZy5kaXNwbGF5X25hbWUgPz8gJycsXG4gICAgICAgIGRvbWFpbjogb3JnT3JnLmRvbWFpbiA/PyAnJyxcbiAgICAgICAgc3RhdHVzOiBvcmdPcmcuc3RhdHVzID8/ICcnLFxuICAgICAgICBjcmVhdGVkX2F0OiBvcmdPcmcuY3JlYXRlZF9hdCA/PyAnJyxcbiAgICAgICAgdXBkYXRlZF9hdDogb3JnT3JnLnVwZGF0ZWRfYXQgPz8gJycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZ2F0ZXM6IHRvQm9vdHN0cmFwR2F0ZXMob3JnQ29uZmlnLmdhdGVzKSxcbiAgICAvLyBGcm9tIHdpZGdldF9jb25maWcsIE5PVCBvcmdfY29uZmlnOiBnZXRXaWRnZXRDb25maWcgc291cmNlcyBhc3NpZ25tZW50cyBmcm9tXG4gICAgLy8gaXRzIHdpZGdldCBjb25maWcgKHVuZ2F0ZWQpLCB3aGVyZWFzIGJvb3RzdHJhcCdzIGBvcmdfY29uZmlnLmV4cGVyaW1lbnRfYXNzaWdubWVudHNgXG4gICAgLy8gaXMgcG9wdWxhdGVkIE9OTFkgd2hlbiB0aGUgYHVzZV91bmlmaWVkX2NvbmZpZ2AgZ2F0ZSBldmFsdWF0ZXMgdHJ1ZSBTRVJWRVItU0lERVxuICAgIC8vIChweW1vbm8gYHVuaWZpZWRfY29uZmlnX2FjdGl2ZWApLiBSZWFkaW5nIG9yZ19jb25maWcgd291bGQgZHJvcCBhc3NpZ25tZW50cyDigJRcbiAgICAvLyBhbmQgdGhlIGFtcGxpdHVkZSBgZXhwZXJpbWVudC57bnN9LipgIGVucmljaG1lbnQg4oCUIG9uIHRoZSBjbGllbnQtb3ZlcnJpZGUgdGVzdFxuICAgIC8vIHBhdGggKGdhdGUgT04gdmlhIGA/dXNlX3VuaWZpZWRfY29uZmlnPXRydWVgIGJ1dCAwJSBzZXJ2ZXItc2lkZSkuIHdpZGdldF9jb25maWdcbiAgICAvLyBtYXRjaGVzIGdldFdpZGdldENvbmZpZyBpbiBldmVyeSBjYXNlIChlcXVhbCB3aGVuIHRoZSBnYXRlIGlzIG9uOyB2ZXJzaW9uIHBpblxuICAgIC8vIGVtcHRpZXMgYm90aCkuXG4gICAgZXhwZXJpbWVudF9hc3NpZ25tZW50czogdG9Cb290c3RyYXBBc3NpZ25tZW50cyh3aWRnZXRDb25maWcuZXhwZXJpbWVudF9hc3NpZ25tZW50cyksXG4gICAgb3JnQ29uZmlnOiBvcmdDb25maWdWYWx1ZXMsXG4gIH07XG5cbiAgcmV0dXJuIHsgY29uZmln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
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hCb290c3RyYXBDb25maWcuanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJyZXN1bHQ6IFJhd0Jvb3RzdHJhcFJlc3BvbnNlIiwib3JnQ29uZmlnVmFsdWVzOiBHcmFwaFFsQ29uZmlnVmFsdWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Vudml2ZUNvbmZpZ1NlcnZpY2UvZmV0Y2hCb290c3RyYXBDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIH0gZnJvbSAnLi9mZXRjaEdyYXBoUUxDb25maWcnO1xuLy8gVHlwZS1vbmx5IGltcG9ydCDigJQgZXJhc2VkIGF0IGNvbXBpbGUgdGltZSwgc28gdGhpcyBkb2VzIG5vdCBjcmVhdGUgYSBydW50aW1lXG4vLyBpbXBvcnQgY3ljbGUgd2l0aCBlbnZpdmVDb25maWdTZXJ2aWNlICh3aGljaCBpbXBvcnRzIGZldGNoQm9vdHN0cmFwQ29uZmlnKS5cbmltcG9ydCB0eXBlIHsgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJy4vZW52aXZlQ29uZmlnU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZldGNoQm9vdHN0cmFwQ29uZmlnJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hCb290c3RyYXBDb25maWdQYXJhbXMge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgLy8gQ29uZmlnIGBzb3VyY2VgIChTdGF0c2lnIHVzZXIgcHJvcGVydHkpLCAnYXBwJyBpbiB0aGUgaW5qZWN0aW9uIGJ1bmRsZS5cbiAgc291cmNlOiBzdHJpbmc7XG4gIC8vIFNjb3BlcyBvcmdfY29uZmlnLmNvbmZpZ3MgdG8gdGhpcyBuYW1lc3BhY2UuIFJFUVVJUkVEOiB3aXRob3V0IGl0IHB5bW9ub1xuICAvLyByZXR1cm5zIEVWRVJZIG5hbWVzcGFjZSBvbiB0aGUgb3JnIOKAlCBpbmNsdWRpbmcgaW50ZXJuYWwtb25seSBjb25maWdzICh0aGUgQUlcbiAgLy8gc3lzdGVtIHByb21wdCwgYnJhbmQtdm9pY2UgaW5zdHJ1Y3Rpb25zLCBldGMuKSDigJQgaW4gdGhlIHJlc3BvbnNlIHRoZSBwdWJsaWNcbiAgLy8gYnVuZGxlIHJlY2VpdmVzLiBUaGUgbGVnYWN5IC92MS9vcmcvY29uZmlnIGNhbGwgc2NvcGVkIGl0IHRoZSBzYW1lIHdheS5cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGdhdGVOYW1lczogc3RyaW5nW107XG4gIGNoYXRJZD86IHN0cmluZztcbiAgLy8gdXJsX3Jlc29sdmluZyBpbnB1dHMsIGFsbCBzdXBwbGllZCB0b2dldGhlciBieSB0aGUgaW5qZWN0aW9uIGJ1bmRsZSB3aGVuXG4gIC8vIEVudml2ZSBpcyBlbmFibGVkLiBXaGVuIGB1cmxgIGlzIHByZXNlbnQsIGJvb3RzdHJhcCBydW5zIGl0cyBwYWdlLXZhcmlhbnRcbiAgLy8gYnJhbmNoIGFuZCByZXR1cm5zIHRoZSBpbml0aWFsIHVybF9yZXNvbHZpbmc7IHdoZW4gYWJzZW50IChlbnZpdmVfb249ZmFsc2Ug4oCUXG4gIC8vIHRoZXJlIGlzIG5vIHBhZ2UgdG8gcmVzb2x2ZSkgdGhlIGJyYW5jaCBpcyBvbWl0dGVkIGFuZCBib290c3RyYXAgcmV0dXJuc1xuICAvLyBjb25maWcgb25seS4gb3JnIGlkZW50aXR5IGlzIE5PIExPTkdFUiBzZW50OiAvdjEvc2Vzc2lvbi9ib290c3RyYXAgZmlsbHNcbiAgLy8gb3JnX2lkL29yZ19zaG9ydF9uYW1lIGZyb20gdGhlIGF1dGhlbnRpY2F0ZWQgb3JnICh0aGUgQVBJIGtleSksIHNvIHRoZVxuICAvLyBib290c3RyYXAtb25seSBjbGllbnQg4oCUIHdoaWNoIG5vIGxvbmdlciBjYWxscyBnZXRXaWRnZXRDb25maWcg4oCUIG5lZWRzIG5vIHdheVxuICAvLyB0byBsZWFybiBpdHMgb3duIG9yZyBiZWZvcmUgdGhlIHJlcXVlc3QuXG4gIHVybD86IHN0cmluZztcbiAgLy8gQ29udGV4dCBgc291cmNlYCBmb3IgdXJsX3Jlc29sdmluZyAoJ2FwcCcgfCAncGxheWdyb3VuZCcpOyBtYXkgZGlmZmVyIGZyb21cbiAgLy8gdGhlIGNvbmZpZyBgc291cmNlYCBhYm92ZSAocGxheWdyb3VuZCA9IEVudml2ZSBIdWIpLlxuICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xuICBlbnY/OiBzdHJpbmc7XG4gIC8vIE92ZXJyaWRlLU9OTFkgZmVhdHVyZSBnYXRlcyAoRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGVzKCkpOlxuICAvLyBqdXN0IHRoZSBjbGllbnQtc2lkZSBvdmVycmlkZXMgKHF1ZXJ5L3dpbmRvdy9sb2NhbFN0b3JhZ2UpLCB3aGljaCBib290c3RyYXBcbiAgLy8gbWVyZ2VzIE9WRVIgaXRzIG93biBzZXJ2ZXItcmVzb2x2ZWQgZ2F0ZXMgZm9yIHBhZ2UtdmFyaWFudCBzZWxlY3Rpb24g4oCUIHRoZVxuICAvLyBsZWdhY3kgL3YxL3VybF9yZXNvbHZpbmcgYmVoYXZpb3VyLiBOT1QgYSBmdWxsIHJlc29sdmVkIG1hcDogb24gdGhlXG4gIC8vIGJvb3RzdHJhcC1vbmx5IHBhdGggdGhlIGNsaWVudCBoYXMgbm8gc2VydmVyIGdhdGUgdmFsdWVzIHRvIHJlc29sdmUgZnJvbSwgc29cbiAgLy8gYSBmdWxsIG1hcCB3b3VsZCBjbG9iYmVyIHRoZSBzZXJ2ZXIncyBnYXRlcy4gRW1wdHkgKHRoZSBjb21tb24gY2FzZSwgbm9cbiAgLy8gb3ZlcnJpZGVzKSBsZWF2ZXMgdGhlIHNlcnZlciBnYXRlcyB1bnRvdWNoZWQuXG4gIGZlYXR1cmVHYXRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFJlc3VsdCB7XG4gIGNvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZztcbiAgLy8gVGhlIGluaXRpYWwgcGFnZS12YXJpYW50IHJlc3VsdCwgcmVhZHkgdG8gc2VlZCB1cmxSZXNvbHZlckF0b20gc28gdGhlXG4gIC8vIHdhcm0tdXAgc2tpcHMgaXRzIG93biAvdjEvdXJsX3Jlc29sdmluZyBjYWxsLiBudWxsIHdoZW4gYm9vdHN0cmFwJ3NcbiAgLy8gKGJlc3QtZWZmb3J0KSB1cmwtcmVzb2x2aW5nIGJyYW5jaCByZXR1cm5lZCBub3RoaW5nLlxuICB1cmxSZXNvbHZpbmc6IFVybFJlc29sdmVyUmVzcG9uc2UgfCBudWxsO1xufVxuXG4vLyAtLS0gcmF3IHdpcmUgc2hhcGVzIChQT1NUIC92MS9zZXNzaW9uL2Jvb3RzdHJhcCBpcyBSRVNUIHNuYWtlX2Nhc2UpIC0tLS0tLS0tLVxuXG5pbnRlcmZhY2UgUmF3RmVhdHVyZUdhdGUge1xuICBuYW1lPzogc3RyaW5nO1xuICB2YWx1ZT86IGJvb2xlYW47XG4gIGdyb3VwX25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICBydWxlX2lkPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFJhd0V4cGVyaW1lbnRBc3NpZ25tZW50IHtcbiAgbGF5ZXJfbmFtZT86IHN0cmluZztcbiAgbmFtZXNwYWNlPzogT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRbJ25hbWVzcGFjZSddO1xuICBhbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgZ3JvdXBfbmFtZT86IHN0cmluZyB8IG51bGw7XG59XG5cbmludGVyZmFjZSBSYXdSZXNvbHV0aW9uIHtcbiAgYmFzZV92ZXJzaW9uPzogc3RyaW5nO1xuICBiYXNlX3ZlcnNpb25fc291cmNlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUmF3Qm9vdHN0cmFwUmVzcG9uc2Uge1xuICBvcmdfY29uZmlnPzoge1xuICAgIG9yZz86IHsgb3JnPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB9O1xuICAgIGdhdGVzPzogUmF3RmVhdHVyZUdhdGVbXTtcbiAgfTtcbiAgd2lkZ2V0X2NvbmZpZz86IHtcbiAgICBwcm9kdWN0c19jb25maWc/OiBQYXJhbWV0ZXJzPHR5cGVvZiB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnPlswXTtcbiAgICAvLyBSZWFkIGZyb20gd2lkZ2V0X2NvbmZpZyAobm90IG9yZ19jb25maWcpIHRvIG1hdGNoIGdldFdpZGdldENvbmZpZyDigJQgc2VlIHRoZVxuICAgIC8vIG1hcHBpbmcgYmVsb3cuXG4gICAgZXhwZXJpbWVudF9hc3NpZ25tZW50cz86IFJhd0V4cGVyaW1lbnRBc3NpZ25tZW50W107XG4gICAgcmVzb2x1dGlvbj86IFJhd1Jlc29sdXRpb247XG4gIH07XG4gIHVybF9yZXNvbHZpbmc/OiBVcmxSZXNvbHZlclJlc3BvbnNlIHwgbnVsbDtcbn1cblxuLy8gZ2F0ZXMgYXJyaXZlIHNuYWtlIChgZ3JvdXBfbmFtZWApOyBnZXRXaWRnZXRDb25maWcncyBhcnJpdmUgY2FtZWwuIE9ubHkgdGhlXG4vLyBuYW1lL3ZhbHVlIGFyZSB1c2VkIGZvciBnYXRlIGNoZWNrcyDigJQgZ3JvdXBOYW1lIGlzIGNhcnJpZWQgZm9yIGFtcGxpdHVkZS5cbmNvbnN0IHRvQm9vdHN0cmFwR2F0ZXMgPSAocmF3OiBSYXdGZWF0dXJlR2F0ZVtdIHwgdW5kZWZpbmVkKTogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXSA9PlxuICAocmF3ID8/IFtdKS5tYXAoZyA9PiAoe1xuICAgIG5hbWU6IGcubmFtZSxcbiAgICB2YWx1ZTogZy52YWx1ZSxcbiAgICBncm91cE5hbWU6IGcuZ3JvdXBfbmFtZSA/PyB1bmRlZmluZWQsXG4gIH0pKTtcblxuLy8gZXhwZXJpbWVudF9hc3NpZ25tZW50cyBhbHJlYWR5IG1hdGNoIHRoZSBzbmFrZSBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFxuLy8gd2lyZSBzaGFwZSAodW5saWtlIGdldFdpZGdldENvbmZpZydzIGNhbWVsLCB3aGljaCBuZWVkcyB0b0V4cGVyaW1lbnRBc3NpZ25tZW50cykuXG5jb25zdCB0b0Jvb3RzdHJhcEFzc2lnbm1lbnRzID0gKFxuICByYXc6IFJhd0V4cGVyaW1lbnRBc3NpZ25tZW50W10gfCB1bmRlZmluZWQsXG4pOiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdID0+XG4gIChyYXcgPz8gW10pLm1hcChhID0+ICh7XG4gICAgbGF5ZXJfbmFtZTogYS5sYXllcl9uYW1lLFxuICAgIG5hbWVzcGFjZTogYS5uYW1lc3BhY2UsXG4gICAgYWxsb2NhdGVkX2V4cGVyaW1lbnRfbmFtZTogYS5hbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lLFxuICAgIGdyb3VwX25hbWU6IGEuZ3JvdXBfbmFtZSxcbiAgfSkpO1xuXG4vLyByZXNvbHV0aW9uIGlzIHNuYWtlIGhlcmUgKFJFU1QpOyBnZXRXaWRnZXRDb25maWcncyBpcyBjYW1lbCAoQXJpYWRuZSkuXG5jb25zdCB0b1Jlc29sdXRpb24gPSAoXG4gIHJhdzogUmF3UmVzb2x1dGlvbiB8IHVuZGVmaW5lZCxcbik6IEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfCB1bmRlZmluZWQgPT5cbiAgcmF3ID8geyBiYXNlVmVyc2lvbjogcmF3LmJhc2VfdmVyc2lvbiwgYmFzZVZlcnNpb25Tb3VyY2U6IHJhdy5iYXNlX3ZlcnNpb25fc291cmNlIH0gOiB1bmRlZmluZWQ7XG5cbi8vIE9uZSByb3VuZCB0cmlwIGZvciB0aGUgY29uZmlnIHRoZSB3aWRnZXQgY2xpZW50IG5lZWRzIGF0IGluaXQ6IG9yZyBpZGVudGl0eSArXG4vLyBnYXRlcyArIGV4cGVyaW1lbnQgYXNzaWdubWVudHMgKyBwcm9kdWN0c0NvbmZpZy9yZXNvbHV0aW9uLCBQTFVTIHRoZSBpbml0aWFsXG4vLyB1cmwtcmVzb2x2aW5nIHJlc3VsdCDigJQgdGhlIGNvbnNvbGlkYXRpb24gb2YgYEdFVCAvdjEvb3JnL2NvbmZpZ2AsIEdyYXBoUUxcbi8vIGBtZS5nZXRXaWRnZXRDb25maWdgLCBhbmQgYFBPU1QgL3YxL3VybF9yZXNvbHZpbmdgIGJlaGluZCBNYXR0J3MgZW5kcG9pbnQuXG4vL1xuLy8gUmF3IGZldGNoICh0aGUgbnBtIGNsaWVudCBgQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50YCBoYXMgbm8gYm9vdHN0cmFwXG4vLyBtZXRob2QpLiBUaHJvd3Mgb24gbmV0d29yay9IVFRQIGZhaWx1cmUvdGltZW91dCwgd2hpY2ggcHJvcGFnYXRlcyB0aHJvdWdoXG4vLyBnZXRFbnZpdmVDb25maWcgdG8gaW5qZWN0LnRzIGFuZCBhYm9ydHMgaW5qZWN0aW9uIOKAlCBib290c3RyYXAgaXMgbm93IHRoZSBTT0xFXG4vLyBjb25maWcgY2FsbCwgc28gdGhlcmUgaXMgbm8gZ2V0V2lkZ2V0Q29uZmlnIGxlZnQgdG8gZmFsbCBiYWNrIHRvICh0aGUgc2FtZVxuLy8gYmxhc3QgcmFkaXVzIHRoZSBzaW5nbGUgR0VUIC92MS9vcmcvY29uZmlnIGNhbGwgYWx3YXlzIGhhZCkuXG4vL1xuLy8gQm9vdHN0cmFwIEJMT0NLUyB0aGUgcHJlLWZpcnN0LXBhaW50IGNyaXRpY2FsIHBhdGgsIHNvIGl0IGlzIGJvdW5kZWQgYnkgYVxuLy8gdGltZW91dDogYSBodW5nIC92MS9zZXNzaW9uL2Jvb3RzdHJhcCAoc2VydmVyIGJsYWNrLWhvbGUsIGhhbGYtb3BlbiBzb2NrZXQsXG4vLyBzbG93LWxvcmlzIGJvZHkpIHdvdWxkIG90aGVyd2lzZSBibG9jayBpbmplY3Rpb24gdW50aWwgdGhlIGJyb3dzZXInc1xuLy8gbXVsdGktbWludXRlIGRlZmF1bHQuIENBTElCUkFURSBhZ2FpbnN0IHRoZSBlbmRwb2ludCdzIHJlYWwgcDk5IOKAlCB3aXRoIG5vXG4vLyBmYWxsYmFjaywgYSB2YWx1ZSBiZWxvdyBwOTkgdHVybnMgbm9ybWFsLWJ1dC1zbG93IGJvb3RzdHJhcHMgaW50byBGQUlMRURcbi8vIGluamVjdGlvbnMsIHNvIGVyciBvbiB0aGUgZ2VuZXJvdXMgc2lkZSByYXRoZXIgdGhhbiB0aGUgYWdncmVzc2l2ZSBvbmUuXG5jb25zdCBCT09UU1RSQVBfVElNRU9VVF9NUyA9IDE1MDA7XG5cbmV4cG9ydCBjb25zdCBmZXRjaEJvb3RzdHJhcENvbmZpZyA9IGFzeW5jICh7XG4gIGJhc2VVcmwsXG4gIGFwaUtleSxcbiAgdXNlcklkLFxuICBzb3VyY2UsXG4gIG5hbWVzcGFjZSxcbiAgZ2F0ZU5hbWVzLFxuICBjaGF0SWQsXG4gIHVybCxcbiAgY29udGV4dFNvdXJjZSxcbiAgZW52LFxuICBmZWF0dXJlR2F0ZXMsXG59OiBGZXRjaEJvb3RzdHJhcENvbmZpZ1BhcmFtcyk6IFByb21pc2U8Qm9vdHN0cmFwUmVzdWx0PiA9PiB7XG4gIGNvbnN0IHZlcnNpb24gPSBjb25maWdWZXJzaW9uT3ZlcnJpZGUoKTtcbiAgLy8gVGhlIHVybF9yZXNvbHZpbmcgYnJhbmNoIGlzIHJlcXVlc3RlZCBvbmx5IHdoZW4gdGhlIGJ1bmRsZSBzdXBwbGllZCBhIFVSTFxuICAvLyAoRW52aXZlIGVuYWJsZWQpLiBBYnNlbnQg4oaSIGJvb3RzdHJhcCByZXR1cm5zIGNvbmZpZyBvbmx5IChlbnZpdmVfb249ZmFsc2UpLlxuICBjb25zdCB1cmxSZXNvbHZpbmdCb2R5ID1cbiAgICB1cmwgIT09IHVuZGVmaW5lZFxuICAgICAgPyB7XG4gICAgICAgICAgdXJsX3Jlc29sdmluZzoge1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICAgICAgICAgIC8vIG9yZ19pZCAvIG9yZ19zaG9ydF9uYW1lIGludGVudGlvbmFsbHkgb21pdHRlZCDigJQgdGhlIHNlcnZlciBmaWxsc1xuICAgICAgICAgICAgICAvLyB0aGVtIGZyb20gdGhlIGF1dGhlbnRpY2F0ZWQgb3JnIChzZWUgU2Vzc2lvbkJvb3RzdHJhcFNlcnZpY2UpLlxuICAgICAgICAgICAgICBjaGF0X2lkOiBjaGF0SWQgPz8gJycsXG4gICAgICAgICAgICAgIHNvdXJjZTogY29udGV4dFNvdXJjZSxcbiAgICAgICAgICAgICAgZW52LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIE92ZXJyaWRlLW9ubHkgZ2F0ZXMgKGVtcHR5IHVubGVzcyB0aGUgY2xpZW50IHNldCBhbiBvdmVycmlkZSk7IHRoZVxuICAgICAgICAgICAgLy8gc2VydmVyIG1lcmdlcyB0aGVzZSBPVkVSIGl0cyBvd24gcmVzb2x2ZWQgZ2F0ZXMgKHB5bW9ub1xuICAgICAgICAgICAgLy8gU2Vzc2lvbkJvb3RzdHJhcFVybFJlc29sdmluZ1JlcXVlc3QuZmVhdHVyZV9nYXRlcyksIHNvIGNsaWVudC1zaWRlXG4gICAgICAgICAgICAvLyBvdmVycmlkZXMgc3RpbGwgcmVhY2ggcGFnZS12YXJpYW50IHNlbGVjdGlvbi5cbiAgICAgICAgICAgIGZlYXR1cmVfZ2F0ZXM6IGZlYXR1cmVHYXRlcyxcbiAgICAgICAgICAgIC8vIFRoZSBjb25maWctdmVyc2lvbiBvdmVycmlkZSBjb21lcyBPTkxZIGZyb20gdGhlIFVSTCBxdWVyeSBwYXJhbVxuICAgICAgICAgICAgLy8gKGNvbmZpZ1ZlcnNpb25PdmVycmlkZSkg4oCUIHRoZSBzYW1lIHNvdXJjZSB0aGUgY29uZmlnIHZlcnNpb24gdXNlcy5cbiAgICAgICAgICAgIG92ZXJyaWRlX2NvbmZpZ192ZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIDoge307XG5cbiAgLy8gQXJtZWQgYmVmb3JlIGZldGNoIGFuZCBrZXB0IGxpdmUgYWNyb3NzIHJlc3BvbnNlLmpzb24oKSAoYSBzdGFsbGVkIGJvZHkgcmVhZFxuICAvLyBtdXN0IGFsc28gYmUgaW50ZXJydXB0aWJsZSksIGNsZWFyZWQgaW4gZmluYWxseS4gT24gdGltZW91dCB0aGUgZmV0Y2ggcmVqZWN0c1xuICAvLyB3aXRoIGFuIEFib3J0RXJyb3Ig4oaSIHByb3BhZ2F0ZXMgdGhyb3VnaCBnZXRFbnZpdmVDb25maWcgYW5kIGFib3J0cyBpbmplY3Rpb24uXG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCBCT09UU1RSQVBfVElNRU9VVF9NUyk7XG4gIGxldCByZXN1bHQ6IFJhd0Jvb3RzdHJhcFJlc3BvbnNlO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vdjEvc2Vzc2lvbi9ib290c3RyYXBgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIC8vIFNjb3BlIG9yZ19jb25maWcuY29uZmlncyB0byB0aGUgd2lkZ2V0IG5hbWVzcGFjZSDigJQgV0lUSE9VVCB0aGlzLCBweW1vbm9cbiAgICAgICAgLy8gcmV0dXJucyBldmVyeSBuYW1lc3BhY2UncyBjb25maWdzIChpbnRlcm5hbCBvbmVzIGluY2x1ZGVkKSB0byB0aGUgYnJvd3Nlci5cbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBpbmNsdWRlX2ZlYXR1cmVfZ2F0ZXM6IGdhdGVOYW1lcyxcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgLi4udXJsUmVzb2x2aW5nQm9keSxcbiAgICAgIH0pLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQm9vdHN0cmFwIGNvbmZpZyByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cbiAgICByZXN1bHQgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBSYXdCb290c3RyYXBSZXNwb25zZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxuXG4gIC8vIEEgMnh4IHdpdGggYSBtaXNzaW5nL3BhcnRpYWwgcGF5bG9hZCBtdXN0IE5PVCBzaWxlbnRseSBiZWNvbWUgYSBicm9rZW4gY29uZmlnXG4gIC8vIOKAlCBhIG1pc3Npbmcgb3JnIGlkZW50aXR5IG9yIHdpZGdldF9jb25maWcgd291bGQgZHJvcCBwcm9kdWN0cy9leHBlcmltZW50cy5cbiAgLy8gVGhyb3cgaW5zdGVhZDogd2l0aCBib290c3RyYXAgdGhlIHNvbGUgY29uZmlnIGNhbGwsIHRoZSB0aHJvdyBwcm9wYWdhdGVzIHRvXG4gIC8vIGluamVjdC50cyBhbmQgYWJvcnRzIGluamVjdGlvbiByYXRoZXIgdGhhbiByZW5kZXJpbmcgYSBicm9rZW4gc2Vzc2lvbi4gYGdhdGVzYFxuICAvLyBpcyByZXF1aXJlZCB0byBiZSBhbiBBUlJBWSAocHJlc2VudCkgYnV0IE1BWSBiZSBlbXB0eTogYW4gZW1wdHkgZ2F0ZXMgcmVzcG9uc2VcbiAgLy8gaXMgYSB2YWxpZCBcImV2ZXJ5dGhpbmcgb2ZmXCIgc2lnbmFsIOKAlCBGZWF0dXJlRmxhZ1NlcnZpY2UgdGhlbiByZXNvbHZlcyBldmVyeVxuICAvLyBnYXRlIHRvIGZhbHNlLCBzbyBpc0NsaWVudFNlc3Npb25FbmFibGVkIGlzIGZhbHNlIGFuZCB0aGUgc2Vzc2lvbiBkaXNhYmxlc1xuICAvLyBncmFjZWZ1bGx5ICh3aXRoIHRoZSBcIkVudml2ZSBJbml0aWFsaXplZFwiIGV2ZW50IHN0aWxsIGZpcmluZykuIFJlamVjdGluZyBlbXB0eVxuICAvLyBnYXRlcyB3b3VsZCBpbnN0ZWFkIGFib3J0IGluamVjdGlvbiBhbmQgbG9zZSB0aGF0IGV2ZW50LiAoQSBwcm9kdWN0cyBjb25maWdcbiAgLy8gdGhhdCBpcyBwcmVzZW50LWJ1dC1tYWxmb3JtZWQgc3RpbGwgZGVncmFkZXMgdG8gbW9jayBiZWxvdyDigJQgb25seSB0aGVcbiAgLy8gdG9wLWxldmVsIHNlY3Rpb25zIGFyZSByZXF1aXJlZCBoZXJlLilcbiAgaWYgKFxuICAgICFyZXN1bHQub3JnX2NvbmZpZz8ub3JnPy5vcmcgfHxcbiAgICAhQXJyYXkuaXNBcnJheShyZXN1bHQub3JnX2NvbmZpZz8uZ2F0ZXMpIHx8XG4gICAgIXJlc3VsdC53aWRnZXRfY29uZmlnXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdCb290c3RyYXAgY29uZmlnIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgc2VjdGlvbnMgKG9yZ19jb25maWcub3JnLm9yZyAvIG9yZ19jb25maWcuZ2F0ZXMgLyB3aWRnZXRfY29uZmlnKScsXG4gICAgKTtcbiAgfVxuICBjb25zdCBvcmdDb25maWcgPSByZXN1bHQub3JnX2NvbmZpZztcbiAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gcmVzdWx0LndpZGdldF9jb25maWc7XG4gIC8vIFRoZSBndWFyZCBhYm92ZSBndWFyYW50ZWVzIG9yZy5vcmcgYXQgcnVudGltZTsgdGhlIGA/PyB7fWAgb25seSBzYXRpc2ZpZXMgdGhlXG4gIC8vIHR5cGUtbmFycm93aW5nIChUUyBkb2Vzbid0IGNhcnJ5IHRoZSBvcHRpb25hbC1jaGFpbiBuYXJyb3dpbmcgdGhyb3VnaCB0aGUgYWxpYXMpLlxuICBjb25zdCBvcmdPcmcgPSBvcmdDb25maWcub3JnPy5vcmcgPz8ge307XG4gIGNvbnN0IHJlc29sdXRpb24gPSB0b1Jlc29sdXRpb24od2lkZ2V0Q29uZmlnLnJlc29sdXRpb24pO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyBkZWdyYWRlcyB0byBtb2NrIGRlZmF1bHRzIFdJVEhPVVQgbG9zaW5nIHRoZVxuICAvLyBvcmcgLyBnYXRlcyAvIGV4cGVyaW1lbnRzIHRoYXQgY2FtZSBiYWNrIGZpbmUg4oCUIG1pcnJvcnMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZy5cbiAgbGV0IG9yZ0NvbmZpZ1ZhbHVlczogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWdWYWx1ZXMgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnLnByb2R1Y3RzX2NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaEJvb3RzdHJhcENvbmZpZyB8IEVycm9yIHRyYW5zZm9ybWluZyBwcm9kdWN0cyBjb25maWcnLCBlcnIpO1xuICAgIG9yZ0NvbmZpZ1ZhbHVlcyA9IHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQsIHJlc29sdXRpb24gfTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgICAvLyBvcmdfY29uZmlnIGlzIGJ5dGUtaWRlbnRpY2FsIHRvIHRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcgKHNuYWtlKSwgdGhlXG4gICAgLy8gZXhhY3Qgc2hhcGUgRW52aXZlU2VydmljZUNvbmZpZy5vcmcgd2FzIGJ1aWx0IHRvIGhvbGQuIENvbnN0cnVjdGVkXG4gICAgLy8gZGVmZW5zaXZlbHkgKGxpa2UgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykgcmF0aGVyIHRoYW4gcGFzc2VkIHRocm91Z2guXG4gICAgb3JnOiB7XG4gICAgICBvcmc6IHtcbiAgICAgICAgaWQ6IG9yZ09yZy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnT3JnLnNob3J0X25hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnT3JnLmRpc3BsYXlfbmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmdPcmcuZG9tYWluID8/ICcnLFxuICAgICAgICBzdGF0dXM6IG9yZ09yZy5zdGF0dXMgPz8gJycsXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG9yZ09yZy5jcmVhdGVkX2F0ID8/ICcnLFxuICAgICAgICB1cGRhdGVkX2F0OiBvcmdPcmcudXBkYXRlZF9hdCA/PyAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnYXRlczogdG9Cb290c3RyYXBHYXRlcyhvcmdDb25maWcuZ2F0ZXMpLFxuICAgIC8vIEZyb20gd2lkZ2V0X2NvbmZpZywgTk9UIG9yZ19jb25maWc6IGdldFdpZGdldENvbmZpZyBzb3VyY2VzIGFzc2lnbm1lbnRzIGZyb21cbiAgICAvLyBpdHMgd2lkZ2V0IGNvbmZpZyAodW5nYXRlZCksIHdoZXJlYXMgYm9vdHN0cmFwJ3MgYG9yZ19jb25maWcuZXhwZXJpbWVudF9hc3NpZ25tZW50c2BcbiAgICAvLyBpcyBwb3B1bGF0ZWQgT05MWSB3aGVuIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYCBnYXRlIGV2YWx1YXRlcyB0cnVlIFNFUlZFUi1TSURFXG4gICAgLy8gKHB5bW9ubyBgdW5pZmllZF9jb25maWdfYWN0aXZlYCkuIFJlYWRpbmcgb3JnX2NvbmZpZyB3b3VsZCBkcm9wIGFzc2lnbm1lbnRzIOKAlFxuICAgIC8vIGFuZCB0aGUgYW1wbGl0dWRlIGBleHBlcmltZW50Lntuc30uKmAgZW5yaWNobWVudCDigJQgb24gdGhlIGNsaWVudC1vdmVycmlkZSB0ZXN0XG4gICAgLy8gcGF0aCAoZ2F0ZSBPTiB2aWEgYD91c2VfdW5pZmllZF9jb25maWc9dHJ1ZWAgYnV0IDAlIHNlcnZlci1zaWRlKS4gd2lkZ2V0X2NvbmZpZ1xuICAgIC8vIG1hdGNoZXMgZ2V0V2lkZ2V0Q29uZmlnIGluIGV2ZXJ5IGNhc2UgKGVxdWFsIHdoZW4gdGhlIGdhdGUgaXMgb247IHZlcnNpb24gcGluXG4gICAgLy8gZW1wdGllcyBib3RoKS5cbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzOiB0b0Jvb3RzdHJhcEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZy5leHBlcmltZW50X2Fzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWc6IG9yZ0NvbmZpZ1ZhbHVlcyxcbiAgfTtcblxuICByZXR1cm4geyBjb25maWcsIHVybFJlc29sdmluZzogcmVzdWx0LnVybF9yZXNvbHZpbmcgPz8gbnVsbCB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFjQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyx1QkFBdUI7QUFvRmpELE1BQU0sb0JBQW9CLFNBQ3ZCLE9BQU8sRUFBRSxFQUFFLEtBQUksT0FBTTtDQUNwQixNQUFNLEVBQUU7Q0FDUixPQUFPLEVBQUU7Q0FDVCxXQUFXLEVBQUUsY0FBYztDQUM1QixFQUFFO0FBSUwsTUFBTSwwQkFDSixTQUVDLE9BQU8sRUFBRSxFQUFFLEtBQUksT0FBTTtDQUNwQixZQUFZLEVBQUU7Q0FDZCxXQUFXLEVBQUU7Q0FDYiwyQkFBMkIsRUFBRTtDQUM3QixZQUFZLEVBQUU7Q0FDZixFQUFFO0FBR0wsTUFBTSxnQkFDSixRQUVBLE1BQU07Q0FBRSxhQUFhLElBQUk7Q0FBYyxtQkFBbUIsSUFBSTtDQUFxQixHQUFHO0FBbUJ4RixNQUFNLHVCQUF1QjtBQUU3QixNQUFhLHVCQUF1QixPQUFPLEVBQ3pDLFNBQ0EsUUFDQSxRQUNBLFFBQ0EsV0FDQSxXQUNBLFFBQ0EsS0FDQSxlQUNBLEtBQ0EsbUJBQzBEO0NBQzFELE1BQU0sVUFBVSx1QkFBdUI7Q0FHdkMsTUFBTSxtQkFDSixRQUFRLFNBQ0osRUFDRSxlQUFlO0VBQ2I7RUFDQSxTQUFTO0dBQ1AsU0FBUztHQUdULFNBQVMsVUFBVTtHQUNuQixRQUFRO0dBQ1I7R0FDRDtFQUtELGVBQWU7RUFHZix5QkFBeUI7RUFDMUIsRUFDRixHQUNELEVBQUU7Q0FLUixNQUFNLGFBQWEsSUFBSSxpQkFBaUI7Q0FDeEMsTUFBTSxZQUFZLGlCQUFpQixXQUFXLE9BQU8sRUFBRSxxQkFBcUI7Q0FDNUUsSUFBSUM7QUFDSixLQUFJO0VBQ0YsTUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHLFFBQVEsd0JBQXdCO0dBQzlELFFBQVE7R0FDUixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLGVBQWUsVUFBVTtJQUMxQjtHQUNELE1BQU0sS0FBSyxVQUFVO0lBQ25CLFNBQVM7SUFDVDtJQUdBO0lBQ0EsdUJBQXVCO0lBQ3ZCO0lBQ0EsR0FBRztJQUNKLENBQUM7R0FDRixRQUFRLFdBQVc7R0FDcEIsQ0FBQztBQUVGLE1BQUksQ0FBQyxTQUFTLEdBQ1osT0FBTSxJQUFJLE1BQU0sb0NBQW9DLFNBQVMsYUFBYTtBQUU1RSxXQUFVLE1BQU0sU0FBUyxNQUFNO1dBQ3ZCO0FBQ1IsZUFBYSxVQUFVOztBQWN6QixLQUNFLENBQUMsT0FBTyxZQUFZLEtBQUssT0FDekIsQ0FBQyxNQUFNLFFBQVEsT0FBTyxZQUFZLE1BQU0sSUFDeEMsQ0FBQyxPQUFPLGNBRVIsT0FBTSxJQUFJLE1BQ1IsOEdBQ0Q7Q0FFSCxNQUFNLFlBQVksT0FBTztDQUN6QixNQUFNLGVBQWUsT0FBTztDQUc1QixNQUFNLFNBQVMsVUFBVSxLQUFLLE9BQU8sRUFBRTtDQUN2QyxNQUFNLGFBQWEsYUFBYSxhQUFhLFdBQVc7Q0FJeEQsSUFBSUM7QUFDSixLQUFJO0FBQ0Ysb0JBQWtCO0dBQUUsR0FBRywwQkFBMEIsYUFBYSxnQkFBZ0I7R0FBRTtHQUFZO1VBQ3JGLEtBQUs7QUFDWixTQUFPLFNBQVMsNkRBQTZELElBQUk7QUFDakYsb0JBQWtCO0dBQUUsY0FBYztHQUFXLGdCQUFnQjtHQUFXO0dBQVk7O0FBK0J0RixRQUFPO0VBQUUsUUE1QjJCO0dBSWxDLEtBQUssRUFDSCxLQUFLO0lBQ0gsSUFBSSxPQUFPLE1BQU07SUFDakIsWUFBWSxPQUFPLGNBQWM7SUFDakMsY0FBYyxPQUFPLGdCQUFnQjtJQUNyQyxRQUFRLE9BQU8sVUFBVTtJQUN6QixRQUFRLE9BQU8sVUFBVTtJQUN6QixZQUFZLE9BQU8sY0FBYztJQUNqQyxZQUFZLE9BQU8sY0FBYztJQUNsQyxFQUNGO0dBQ0QsT0FBTyxpQkFBaUIsVUFBVSxNQUFNO0dBU3hDLHdCQUF3Qix1QkFBdUIsYUFBYSx1QkFBdUI7R0FDbkYsV0FBVztHQUNaO0VBRWdCLGNBQWMsT0FBTyxpQkFBaUI7RUFBTSJ9
@@ -3,8 +3,6 @@ const require_snakeToCamelTransformer = require('../../application/models/utils/
3
3
  const require_contexts_types = require('../../contexts/types.cjs');
4
4
  const require_validateGraphQLFrontendConfig = require('../../application/models/validators/validateGraphQLFrontendConfig.cjs');
5
5
  require('../../application/models/index.cjs');
6
- const require_config_versions = require('../../types/config-versions.cjs');
7
- const require_getWidgetConfigQuery = require('../../application/models/graphql/queries/getWidgetConfigQuery.cjs');
8
6
  const require_mockV3Config = require('../../contexts/graphqlContext/mockV3Config.cjs');
9
7
 
10
8
  //#region src/services/enviveConfigService/fetchGraphQLConfig.ts
@@ -166,73 +164,7 @@ const transformV3ProductsConfig = (productsConfig) => {
166
164
  }
167
165
  };
168
166
  };
169
- const toExperimentAssignments = (raw) => (raw ?? []).map((a) => ({
170
- layer_name: a.layerName,
171
- namespace: a.namespace,
172
- allocated_experiment_name: a.allocatedExperimentName,
173
- group_name: a.groupName
174
- }));
175
- const fetchUnifiedGraphQLConfig = async (baseUrl, apiKey, userId, gateNames, source) => {
176
- const query = require_getWidgetConfigQuery.getWidgetConfigQuery();
177
- const version = require_config_versions.configVersionOverride();
178
- const response = await fetch(`${baseUrl}/v1/graphql`, {
179
- method: "POST",
180
- headers: {
181
- "Content-Type": "application/json",
182
- Authorization: `Bearer ${apiKey}`
183
- },
184
- body: JSON.stringify({
185
- query,
186
- variables: {
187
- userId,
188
- version,
189
- gateNames,
190
- source
191
- }
192
- })
193
- });
194
- if (!response.ok) throw new Error(`Unified config request failed: ${response.statusText}`);
195
- const result = await response.json();
196
- if (result.errors) throw new Error(`Unified config GraphQL errors: ${JSON.stringify(result.errors)}`);
197
- const me = result.data?.me;
198
- const widgetConfig = me?.getWidgetConfig;
199
- const org = me?.org;
200
- const resolution = widgetConfig?.resolution;
201
- let orgConfig;
202
- try {
203
- orgConfig = {
204
- ...transformV3ProductsConfig(widgetConfig?.productsConfig),
205
- resolution
206
- };
207
- } catch (err) {
208
- logger.logError("fetchUnifiedGraphQLConfig | Error transforming products config", err);
209
- orgConfig = {
210
- colorsConfig: void 0,
211
- frontendConfig: void 0,
212
- resolution
213
- };
214
- }
215
- return {
216
- org: { org: {
217
- id: org?.id ?? "",
218
- short_name: org?.shortName ?? "",
219
- display_name: org?.displayName ?? "",
220
- domain: org?.domain ?? "",
221
- status: "",
222
- created_at: org?.createdAt ?? "",
223
- updated_at: org?.updatedAt ?? ""
224
- } },
225
- gates: (widgetConfig?.gates ?? []).map((g) => ({
226
- name: g.name,
227
- value: g.value,
228
- groupName: g.groupName
229
- })),
230
- experiment_assignments: toExperimentAssignments(widgetConfig?.experimentAssignments),
231
- orgConfig
232
- };
233
- };
234
167
 
235
168
  //#endregion
236
- exports.fetchUnifiedGraphQLConfig = fetchUnifiedGraphQLConfig;
237
169
  exports.transformV3ProductsConfig = transformV3ProductsConfig;
238
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIkRFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSIsIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJtb2NrVjNDb2xvcnNDb25maWciLCJtb2NrVjNGcm9udGVuZENvbmZpZyIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIiwiZ2V0V2lkZ2V0Q29uZmlnUXVlcnkiLCJjb25maWdWZXJzaW9uT3ZlcnJpZGUiLCJvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykuXG5pbXBvcnQgdHlwZSB7IEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL2Vudml2ZUNvbmZpZ1NlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uLFxuLy8gZ2V0V2lkZ2V0Q29uZmlnLCBvciB0aGUgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIHdpZGdldF9jb25maWcpIGludG8gdGhlXG4vLyBjYW1lbENhc2UgR3JhcGhRbENvbmZpZ1ZhbHVlcyBzaGFwZSB0aGUgcmVzdCBvZiB0aGUgdG9vbGtpdCBjb25zdW1lcy5cbi8vIFJldHVybnMgbW9jayBjb25maWcgd2hlbiBjb2xvcnMgYXJlIGFic2VudC4gRXhwb3J0ZWQgc28gZmV0Y2hCb290c3RyYXBDb25maWdcbi8vIHJldXNlcyB0aGUgZXhhY3Qgc2FtZSB0cmFuc2Zvcm0gKGJvb3RzdHJhcCdzIHByb2R1Y3RzX2NvbmZpZyBjYXJyaWVzIHRoZSBzYW1lXG4vLyBgLntzZWN0aW9ufS52YWx1ZXNgIHNoYXBlIGFzIGdldFdpZGdldENvbmZpZydzIHByb2R1Y3RzQ29uZmlnKS5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUaGUgY2FtZWxDYXNlIGBleHBlcmltZW50QXNzaWdubWVudHNgIEdyYXBoUUwgc2hhcGUg4oaSIHRoZSBzbmFrZV9jYXNlIHdpcmVcbi8vIHNoYXBlIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgKGl0IHByZXZpb3VzbHkgYXJyaXZlZCBmcm9tIFJFU1QgL3YxL29yZy9jb25maWcpLlxuY29uc3QgdG9FeHBlcmltZW50QXNzaWdubWVudHMgPSAoXG4gIHJhdzpcbiAgICB8IFJlYWRvbmx5QXJyYXk8e1xuICAgICAgICBsYXllck5hbWU/OiBzdHJpbmc7XG4gICAgICAgIG5hbWVzcGFjZT86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50WyduYW1lc3BhY2UnXTtcbiAgICAgICAgYWxsb2NhdGVkRXhwZXJpbWVudE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICBncm91cE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfT5cbiAgICB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyTmFtZSxcbiAgICBuYW1lc3BhY2U6IGEubmFtZXNwYWNlLFxuICAgIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU6IGEuYWxsb2NhdGVkRXhwZXJpbWVudE5hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cE5hbWUsXG4gIH0pKTtcblxuLy8gVGhlIHVuaWZpZWQgYGdldFdpZGdldENvbmZpZ2AgY29uZmlnIHBhdGgg4oCUIG5vdyB0aGUgc2luZ2xlIHNvdXJjZSBvZiBzZXNzaW9uXG4vLyBjb25maWcuIFJldHVybnMgZXZlcnl0aGluZyB0aGUgY2xpZW50IG5lZWRzIGluIG9uZSBjYWxsOiBvcmcgaWRlbnRpdHksXG4vLyBmZWF0dXJlIGdhdGVzLCBhbmQgZXhwZXJpbWVudCBhc3NpZ25tZW50cyAod2hpY2ggdXNlZCB0byBjb21lIGZyb20gUkVTVFxuLy8gYC92MS9vcmcvY29uZmlnYCksIHBsdXMgdGhlIHByb2R1Y3RzQ29uZmlnIGFuZCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm9cbi8vIHVzZWQgdG8gcGljayB0aGUgdmVyc2lvbiAoY2FsbGVycyB0aHJlYWQgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG9cbi8vIGRvd25zdHJlYW0gaW5mZXJlbmNlIHNvIGl0J3Mgc2NvcGVkIHRvIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlIHJlbmRlcmVkXG4vLyB3aWRnZXRzKS4gYGdhdGVOYW1lc2Agc2VsZWN0cyB3aGljaCBnYXRlcyB0byBldmFsdWF0ZTsgYHNvdXJjZWAgZmVlZHMgU3RhdHNpZ1xuLy8gdXNlciBwcm9wZXJ0aWVzLiBBIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgVVJMXG4vLyBwYXJhbSwgd2hlbiBwcmVzZW50LCBpcyB0aHJlYWRlZCB0aHJvdWdoIGFzIHRoZSBgdmVyc2lvbmAgdmFyaWFibGUgdG8gcGluIGFcbi8vIHNwZWNpZmljIHZlcnNpb24gKGJ5cGFzc2VzIHRoZSBtZXJjaGFudCBleHBlcmltZW50IOKAlCBRQSAvIHJvbGxiYWNrKS5cbi8vXG4vLyBUaHJvd3Mgb24gbmV0d29yay9HcmFwaFFMIGZhaWx1cmU6IHdpdGggb3JnICsgZ2F0ZXMgc291cmNlZCBoZXJlLCB0aGVyZSBpcyBub1xuLy8gcGFydGlhbC1yZW5kZXIgZmFsbGJhY2sgKGluamVjdC50cyBhYm9ydHMgaW5qZWN0aW9uIG9uIHRoZSB0aHJvdyksIG1hdGNoaW5nXG4vLyBob3cgdGhlIG9sZCAvdjEvb3JnL2NvbmZpZyBjYWxsIGJlaGF2ZWQuXG5leHBvcnQgY29uc3QgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyA9IGFzeW5jIChcbiAgYmFzZVVybDogc3RyaW5nLFxuICBhcGlLZXk6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGdhdGVOYW1lczogc3RyaW5nW10sXG4gIHNvdXJjZTogc3RyaW5nLFxuKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gZ2V0V2lkZ2V0Q29uZmlnUXVlcnkoKTtcbiAgY29uc3QgdmVyc2lvbiA9IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSgpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnksIHZhcmlhYmxlczogeyB1c2VySWQsIHZlcnNpb24sIGdhdGVOYW1lcywgc291cmNlIH0gfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaWZpZWQgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmlmaWVkIGNvbmZpZyBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgfVxuXG4gIGNvbnN0IG1lID0gcmVzdWx0LmRhdGE/Lm1lO1xuICBjb25zdCB3aWRnZXRDb25maWcgPSBtZT8uZ2V0V2lkZ2V0Q29uZmlnO1xuICBjb25zdCBvcmcgPSBtZT8ub3JnO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyAoZS5nLiBhbiBpbnZhbGlkIGZsb2F0aW5nLWJ1dHRvbiBwb3NpdGlvbilcbiAgLy8gZGVncmFkZXMgdG8gbm8gY29uZmlnIOKAlCB3aWRnZXRzIGZhbGwgYmFjayB0byB0aGVpciBtb2NrIGRlZmF1bHRzIOKAlCBXSVRIT1VUXG4gIC8vIGxvc2luZyB0aGUgb3JnIC8gZ2F0ZXMgLyBleHBlcmltZW50cyB0aGF0IGNhbWUgYmFjayBmaW5lLiBUaGUgZmV0Y2ggaXRzZWxmXG4gIC8vIHN0aWxsIHRocm93cyBhYm92ZTsgb25seSB0aGUgcHJvZHVjdHMtY29uZmlnIHRyYW5zZm9ybSBpcyBndWFyZGVkIGhlcmUuXG4gIGNvbnN0IHJlc29sdXRpb24gPSB3aWRnZXRDb25maWc/LnJlc29sdXRpb24gYXMgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgbGV0IG9yZ0NvbmZpZzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWcgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnPy5wcm9kdWN0c0NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIHwgRXJyb3IgdHJhbnNmb3JtaW5nIHByb2R1Y3RzIGNvbmZpZycsIGVycik7XG4gICAgb3JnQ29uZmlnID0geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCwgcmVzb2x1dGlvbiB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBHcmFwaFFMIE9yZ2FuaXphdGlvbiBpcyBjYW1lbENhc2U7IHRoZSByZXN0IG9mIHRoZSBhcHAgcmVhZHMgdGhlXG4gICAgLy8gc25ha2VfY2FzZSBzaGFwZSAvdjEvb3JnL2NvbmZpZyB1c2VkIHRvIHJldHVybi4gYHN0YXR1c2AgaXNuJ3QgZXhwb3NlZCBieVxuICAgIC8vIHRoZSBHcmFwaFFMIHR5cGUgKGFuZCBpc24ndCBjb25zdW1lZCBkb3duc3RyZWFtKSDigJQgZGVmYXVsdCBpdC5cbiAgICBvcmc6IHtcbiAgICAgIG9yZzoge1xuICAgICAgICBpZDogb3JnPy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnPy5zaG9ydE5hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnPy5kaXNwbGF5TmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmc/LmRvbWFpbiA/PyAnJyxcbiAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgY3JlYXRlZF9hdDogb3JnPy5jcmVhdGVkQXQgPz8gJycsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IG9yZz8udXBkYXRlZEF0ID8/ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdhdGVzOiAoXG4gICAgICAod2lkZ2V0Q29uZmlnPy5nYXRlcyA/PyBbXSkgYXMgQXJyYXk8e1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICB2YWx1ZT86IGJvb2xlYW47XG4gICAgICAgIGdyb3VwTmFtZT86IHN0cmluZztcbiAgICAgIH0+XG4gICAgKS5tYXAoXG4gICAgICAoZyk6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlID0+ICh7XG4gICAgICAgIG5hbWU6IGcubmFtZSxcbiAgICAgICAgdmFsdWU6IGcudmFsdWUsXG4gICAgICAgIGdyb3VwTmFtZTogZy5ncm91cE5hbWUsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM6IHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZz8uZXhwZXJpbWVudEFzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWcsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBNEJBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxxQkFBcUI7QUFLL0MsTUFBYUMsd0JBQTZDLENBQ3hEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVUMsMkNBQW9CLGFBQWEsQ0FBQztDQUM5RCxFQUNEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixvQkFBb0I7Q0FDcEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVUEsMkNBQW9CLGFBQWEsQ0FBQztDQUM5RCxDQUNGO0FBSUQsTUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDRDtBQUVELE1BQU0sMEJBQTBCLGFBQTZDO0FBQzNFLEtBQUssMEJBQWdELFNBQVMsU0FBUyxDQUNyRSxRQUFPO0FBRVQsT0FBTSxJQUFJLE1BQU0scUJBQXFCLFdBQVc7O0FBR2xELE1BQU0sMkJBQ0osaUJBQzZCO0NBQzdCLE1BQU0sRUFBRSxjQUFjO0FBQ3RCLEtBQUksQ0FBQyxVQUFX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
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIkRFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSIsIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJtb2NrVjNDb2xvcnNDb25maWciLCJtb2NrVjNGcm9udGVuZENvbmZpZyIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Vudml2ZUNvbmZpZ1NlcnZpY2UvZmV0Y2hHcmFwaFFMQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCxcbiAgdHJhbnNmb3JtU25ha2VUb0NhbWVsLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnLFxuICB2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGcm9udGVuZENvbmZpZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mcm9udGVuZENvbmZpZ1YzJztcbmltcG9ydCB7IENvbG9yTWFwcGluZ1YzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWdWMyc7XG4vLyBUeXBlLW9ubHk6IGEgdmFsdWUgaW1wb3J0IHdvdWxkIHB1bGwgdGhlIEZsb2F0aW5nQnV0dG9uIGNvbXBvbmVudCAoYW5kXG4vLyBSZWFjdCkgdGhyb3VnaCB0aGUgcGFja2FnZSdzIGNvbXBvbmVudCBpbmRleCBpbnRvIHRoZSBpbmplY3Rpb24gYnVuZGxlJ3Ncbi8vIHByZS1jb25maWcgY2h1bmsuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gfSBmcm9tICdAZW52aXZlLWFpL3JlYWN0LXRvb2xraXQtdjMvRmxvYXRpbmdCdXR0b24nO1xuaW1wb3J0IHsgbW9ja1YzQ29sb3JzQ29uZmlnLCBtb2NrVjNGcm9udGVuZENvbmZpZyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dC9tb2NrVjNDb25maWcnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXNWMyc7XG5pbXBvcnQgeyBQYWdlVmFyaWFudENvbmZpZywgUGFnZVZhcmlhbnRUZXN0VHlwZSwgV2lkZ2V0TW91bnRpbmdDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0JztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmV0Y2hHcmFwaFFMQ29uZmlnJyk7XG5cbnR5cGUgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEZyb250ZW5kQ29uZmlnVjM+O1xudHlwZSBDb2xvcnNDb25maWdWM1Jlc3BvbnNlID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPENvbG9yTWFwcGluZ1YzPjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSA9IFtcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BscCcsXG4gICAgdmFyaWFudFR5cGU6ICdwbHAnLFxuICAgIHBscElkRXh0cmFjdG9yOiAndXJsLXJlc29sdmVyLXBscC1pZCcsXG4gICAgd2lkZ2V0TW91bnRpbmc6IFtdLFxuICAgIHZhcmlhbnRUZXN0czogW3sgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfV0sXG4gIH0sXG4gIHtcbiAgICB2YXJpYW50SWQ6ICdwZHAnLFxuICAgIHZhcmlhbnRUeXBlOiAncGRwJyxcbiAgICBwcm9kdWN0SWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZCcsXG4gICAgd2lkZ2V0TW91bnRpbmc6IFtdLFxuICAgIHZhcmlhbnRUZXN0czogW3sgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfV0sXG4gIH0sXG5dO1xuXG4vLyBTdHJpbmctbGl0ZXJhbCB2YWx1ZXMgb2YgdGhlIEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gZW51bTsga2VlcCBpbiBzeW5jXG4vLyB3aXRoIEBlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbi90eXBlcy90eXBlcy50cy5cbmNvbnN0IEZMT0FUSU5HX0JVVFRPTl9QT1NJVElPTlMgPSBbXG4gICdib3R0b20tbGVmdCcsXG4gICdtaWRkbGUtbGVmdCcsXG4gICdtaWRkbGUtcmlnaHQnLFxuICAnYm90dG9tLXJpZ2h0Jyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IG1hcFBvc2l0aW9uVG9DYW1lbENhc2UgPSAocG9zaXRpb246IHN0cmluZyk6IEZsb2F0aW5nQnV0dG9uTG9jYXRpb24gPT4ge1xuICBpZiAoKEZMT0FUSU5HX0JVVFRPTl9QT1NJVElPTlMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHBvc2l0aW9uKSkge1xuICAgIHJldHVybiBwb3NpdGlvbiBhcyBGbG9hdGluZ0J1dHRvbkxvY2F0aW9uO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3NpdGlvbjogJHtwb3NpdGlvbn1gKTtcbn07XG5cbmNvbnN0IHYzRnJvbnRlbmRDb25maWdDbGVhbnVwID0gKFxuICB2M1Jvb3RDb25maWc6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSxcbik6IEZyb250ZW5kQ29uZmlnVjNSZXNwb25zZSA9PiB7XG4gIGNvbnN0IHsgdWlDb25maWdzIH0gPSB2M1Jvb3RDb25maWc7XG4gIGlmICghdWlDb25maWdzKSByZXR1cm4gdjNSb290Q29uZmlnO1xuICBjb25zdCB7IGZsb2F0aW5nQnV0dG9uLCBsb29rQW5kRmVlbCB9ID0gdWlDb25maWdzIGFzIGFueTtcbiAgaWYgKCFmbG9hdGluZ0J1dHRvbiB8fCAhbG9va0FuZEZlZWwpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZm9udFNpemUsIGxpbmVIZWlnaHQsIGxldHRlclNwYWNpbmcgfSA9IGxvb2tBbmRGZWVsLnR5cG9ncmFwaHkgYXMgYW55O1xuICByZXR1cm4ge1xuICAgIC4uLnYzUm9vdENvbmZpZyxcbiAgICB1aUNvbmZpZ3M6IHtcbiAgICAgIC4uLnVpQ29uZmlncyxcbiAgICAgIGZsb2F0aW5nQnV0dG9uOiB7XG4gICAgICAgIC4uLmZsb2F0aW5nQnV0dG9uLFxuICAgICAgICBwb3NpdGlvbjogbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZShcbiAgICAgICAgICB2M1Jvb3RDb25maWcudWlDb25maWdzPy5mbG9hdGluZ0J1dHRvbj8ucG9zaXRpb24gYXMgc3RyaW5nLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIGxvb2tBbmRGZWVsOiB7XG4gICAgICAgIC4uLmxvb2tBbmRGZWVsLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0RhcmtTcmM6IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvRGFya1NyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgY2hhdEhlYWRlckxvZ29MaWdodFNyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29MaWdodFNyYyB8fCBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb1NyYyxcbiAgICAgICAgdHlwb2dyYXBoeToge1xuICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHksXG4gICAgICAgICAgZm9udFNpemU6IHtcbiAgICAgICAgICAgIGIxOiBmb250U2l6ZT8uYjEgfHwgZm9udFNpemU/LmJfMSxcbiAgICAgICAgICAgIGIyOiBmb250U2l6ZT8uYjIgfHwgZm9udFNpemU/LmJfMixcbiAgICAgICAgICAgIGIzOiBmb250U2l6ZT8uYjMgfHwgZm9udFNpemU/LmJfMyxcbiAgICAgICAgICAgIGI0OiBmb250U2l6ZT8uYjQgfHwgZm9udFNpemU/LmJfNCxcbiAgICAgICAgICAgIGI1OiBmb250U2l6ZT8uYjUgfHwgZm9udFNpemU/LmJfNSxcbiAgICAgICAgICAgIGgxOiBmb250U2l6ZT8uaDEgfHwgZm9udFNpemU/LmhfMSxcbiAgICAgICAgICAgIGgyOiBmb250U2l6ZT8uaDIgfHwgZm9udFNpemU/LmhfMixcbiAgICAgICAgICAgIGgzOiBmb250U2l6ZT8uaDMgfHwgZm9udFNpemU/LmhfMyxcbiAgICAgICAgICAgIGwxOiBmb250U2l6ZT8ubDEgfHwgZm9udFNpemU/LmxfMSxcbiAgICAgICAgICAgIGwyOiBmb250U2l6ZT8ubDIgfHwgZm9udFNpemU/LmxfMixcbiAgICAgICAgICAgIHQxOiBmb250U2l6ZT8udDEgfHwgZm9udFNpemU/LnRfMSxcbiAgICAgICAgICAgIHQyOiBmb250U2l6ZT8udDIgfHwgZm9udFNpemU/LnRfMixcbiAgICAgICAgICAgIHQzOiBmb250U2l6ZT8udDMgfHwgZm9udFNpemU/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxldHRlclNwYWNpbmc6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgIGIxOiBsZXR0ZXJTcGFjaW5nPy5iMSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzEsXG4gICAgICAgICAgICBiMjogbGV0dGVyU3BhY2luZz8uYjIgfHwgbGV0dGVyU3BhY2luZz8uYl8yLFxuICAgICAgICAgICAgYjM6IGxldHRlclNwYWNpbmc/LmIzIHx8IGxldHRlclNwYWNpbmc/LmJfMyxcbiAgICAgICAgICAgIGI0OiBsZXR0ZXJTcGFjaW5nPy5iNCB8fCBsZXR0ZXJTcGFjaW5nPy5iXzQsXG4gICAgICAgICAgICBiNTogbGV0dGVyU3BhY2luZz8uYjUgfHwgbGV0dGVyU3BhY2luZz8uYl81LFxuICAgICAgICAgICAgaDE6IGxldHRlclNwYWNpbmc/LmgxIHx8IGxldHRlclNwYWNpbmc/LmhfMSxcbiAgICAgICAgICAgIGgyOiBsZXR0ZXJTcGFjaW5nPy5oMiB8fCBsZXR0ZXJTcGFjaW5nPy5oXzIsXG4gICAgICAgICAgICBoMzogbGV0dGVyU3BhY2luZz8uaDMgfHwgbGV0dGVyU3BhY2luZz8uaF8zLFxuICAgICAgICAgICAgbDE6IGxldHRlclNwYWNpbmc/LmwxIHx8IGxldHRlclNwYWNpbmc/LmxfMSxcbiAgICAgICAgICAgIGwyOiBsZXR0ZXJTcGFjaW5nPy5sMiB8fCBsZXR0ZXJTcGFjaW5nPy5sXzIsXG4gICAgICAgICAgICB0MTogbGV0dGVyU3BhY2luZz8udDEgfHwgbGV0dGVyU3BhY2luZz8udF8xLFxuICAgICAgICAgICAgdDI6IGxldHRlclNwYWNpbmc/LnQyIHx8IGxldHRlclNwYWNpbmc/LnRfMixcbiAgICAgICAgICAgIHQzOiBsZXR0ZXJTcGFjaW5nPy50MyB8fCBsZXR0ZXJTcGFjaW5nPy50XzMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgICAgICAuLi5sb29rQW5kRmVlbC50eXBvZ3JhcGh5LmxpbmVIZWlnaHQsXG4gICAgICAgICAgICAnMTE0JzogbGluZUhlaWdodD8ubGhfMTE0IHx8IGxpbmVIZWlnaHQ/LlsxMTRdLFxuICAgICAgICAgICAgJzExNic6IGxpbmVIZWlnaHQ/LmxoXzExNiB8fCBsaW5lSGVpZ2h0Py5bMTE2XSxcbiAgICAgICAgICAgICcxMTgnOiBsaW5lSGVpZ2h0Py5saF8xMTggfHwgbGluZUhlaWdodD8uWzExOF0sXG4gICAgICAgICAgICAnMTIwJzogbGluZUhlaWdodD8ubGhfMTIwIHx8IGxpbmVIZWlnaHQ/LlsxMjBdLFxuICAgICAgICAgICAgJzEyNCc6IGxpbmVIZWlnaHQ/LmxoXzEyNCB8fCBsaW5lSGVpZ2h0Py5bMTI0XSxcbiAgICAgICAgICAgICcxMjgnOiBsaW5lSGVpZ2h0Py5saF8xMjggfHwgbGluZUhlaWdodD8uWzEyOF0sXG4gICAgICAgICAgICAnMTMwJzogbGluZUhlaWdodD8ubGhfMTMwIHx8IGxpbmVIZWlnaHQ/LlsxMzBdLFxuICAgICAgICAgICAgJzEzMyc6IGxpbmVIZWlnaHQ/LmxoXzEzMyB8fCBsaW5lSGVpZ2h0Py5bMTMzXSxcbiAgICAgICAgICAgICcxNDAnOiBsaW5lSGVpZ2h0Py5saF8xNDAgfHwgbGluZUhlaWdodD8uWzE0MF0sXG4gICAgICAgICAgICAnMTQ4JzogbGluZUhlaWdodD8ubGhfMTQ4IHx8IGxpbmVIZWlnaHQ/LlsxNDhdLFxuICAgICAgICAgICAgYjE6IGxpbmVIZWlnaHQ/LmIxIHx8IGxpbmVIZWlnaHQ/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsaW5lSGVpZ2h0Py5iMiB8fCBsaW5lSGVpZ2h0Py5iXzIsXG4gICAgICAgICAgICBiMzogbGluZUhlaWdodD8uYjMgfHwgbGluZUhlaWdodD8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxpbmVIZWlnaHQ/LmI0IHx8IGxpbmVIZWlnaHQ/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsaW5lSGVpZ2h0Py5iNSB8fCBsaW5lSGVpZ2h0Py5iXzUsXG4gICAgICAgICAgICBoMTogbGluZUhlaWdodD8uaDEgfHwgbGluZUhlaWdodD8uaF8xLFxuICAgICAgICAgICAgaDI6IGxpbmVIZWlnaHQ/LmgyIHx8IGxpbmVIZWlnaHQ/LmhfMixcbiAgICAgICAgICAgIGgzOiBsaW5lSGVpZ2h0Py5oMyB8fCBsaW5lSGVpZ2h0Py5oXzMsXG4gICAgICAgICAgICBsMTogbGluZUhlaWdodD8ubDEgfHwgbGluZUhlaWdodD8ubF8xLFxuICAgICAgICAgICAgbDI6IGxpbmVIZWlnaHQ/LmwyIHx8IGxpbmVIZWlnaHQ/LmxfMixcbiAgICAgICAgICAgIHQxOiBsaW5lSGVpZ2h0Py50MSB8fCBsaW5lSGVpZ2h0Py50XzEsXG4gICAgICAgICAgICB0MjogbGluZUhlaWdodD8udDIgfHwgbGluZUhlaWdodD8udF8yLFxuICAgICAgICAgICAgdDM6IGxpbmVIZWlnaHQ/LnQzIHx8IGxpbmVIZWlnaHQ/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufTtcblxuLy8gVHVybnMgYSByYXcgcHJvZHVjdHNDb25maWcgcGF5bG9hZCAoZnJvbSBnZXRQcm9kdWN0c0NvbmZpZ0J5VmVyc2lvbixcbi8vIGdldFdpZGdldENvbmZpZywgb3IgdGhlIC92MS9zZXNzaW9uL2Jvb3RzdHJhcCB3aWRnZXRfY29uZmlnKSBpbnRvIHRoZVxuLy8gY2FtZWxDYXNlIEdyYXBoUWxDb25maWdWYWx1ZXMgc2hhcGUgdGhlIHJlc3Qgb2YgdGhlIHRvb2xraXQgY29uc3VtZXMuXG4vLyBSZXR1cm5zIG1vY2sgY29uZmlnIHdoZW4gY29sb3JzIGFyZSBhYnNlbnQuIEV4cG9ydGVkIHNvIGZldGNoQm9vdHN0cmFwQ29uZmlnXG4vLyByZXVzZXMgdGhlIGV4YWN0IHNhbWUgdHJhbnNmb3JtIChib290c3RyYXAncyBwcm9kdWN0c19jb25maWcgY2FycmllcyB0aGUgc2FtZVxuLy8gYC57c2VjdGlvbn0udmFsdWVzYCBzaGFwZSBhcyBnZXRXaWRnZXRDb25maWcncyBwcm9kdWN0c0NvbmZpZykuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyA9IChcbiAgcHJvZHVjdHNDb25maWc6XG4gICAgfCB7XG4gICAgICAgIGZyb250ZW5kPzogeyB2YWx1ZXM/OiB7IG1lcmNoYW50X292ZXJyaWRlX2Nzcz86IHN0cmluZyB9IH07XG4gICAgICAgIHZfdGhyZWVfY29uZmlnPzogeyB2YWx1ZXM/OiBhbnkgfTtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZCxcbik6IEdyYXBoUWxDb25maWdWYWx1ZXMgPT4ge1xuICBjb25zdCB2M1Jvb3RDb25maWcgPSBwcm9kdWN0c0NvbmZpZz8udl90aHJlZV9jb25maWc/LnZhbHVlcztcbiAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSBwcm9kdWN0c0NvbmZpZz8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICBpZiAoIXYzUm9vdENvbmZpZz8uY29sb3JzKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCd0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIHwgTm8gY29sb3JzIGZvdW5kLCByZXR1cm5pbmcgbW9jayBjb25maWcnKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3JzQ29uZmlnOiBtb2NrVjNDb2xvcnNDb25maWcsXG4gICAgICBmcm9udGVuZENvbmZpZzogbW9ja1YzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICBwYWdlVmFyaWFudHM6IERFRkFVTFRfUEFHRV9WQVJJQU5UUyxcbiAgICAgICAgd2lkZ2V0Q29uZmlnczoge30sXG4gICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZykgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICApO1xuXG4gIGNvbnN0IG1lcmNoYW50T3ZlcnJpZGVDc3MgPVxuICAgIHYzRnJvbnRlbmRDb25maWcudWlDb25maWdzPy5tZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kVmFsdWVzPy5tZXJjaGFudF9vdmVycmlkZV9jc3M7XG5cbiAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIHsga2V5OiBzdHJpbmc7IGNvbmZpZzogV2lkZ2V0TW91bnRpbmdDb25maWcgfVtdO1xuICBjb25zdCB2M01vdW50aW5nQ29uZmlncyA9IHYzTW91bnRpbmdDb25maWdzQXJyYXkucmVkdWNlKFxuICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIG1vdW50aW5nIGNvbmZpZywgc2tpcHBpbmcnLCBlcnJvciwgeyBrZXkgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICApO1xuXG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LndpZGdldF9jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICB2M1dpZGdldENvbmZpZ3NBcnJheT8ubWFwKCh7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH06IFdpZGdldENvbmZpZ1YzKSA9PiBbXG4gICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICBdKSxcbiAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG5cbiAgY29uc3QgdjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBBcnJheS5pc0FycmF5KHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cylcbiAgICA/IHYzUm9vdENvbmZpZy5wYWdlX3ZhcmlhbnRzLnJlZHVjZSgoYWNjOiBQYWdlVmFyaWFudENvbmZpZ1tdLCB2YXJpYW50OiB1bmtub3duKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYWNjLnB1c2godmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHModmFyaWFudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIHBhZ2UgdmFyaWFudCwgc2tpcHBpbmcnLCBlcnJvciwgeyB2YXJpYW50IH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSlcbiAgICA6IERFRkFVTFRfUEFHRV9WQVJJQU5UUztcblxuICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICByZXR1cm4ge1xuICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgLi4uKHYzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgIG1lcmNoYW50T3ZlcnJpZGVDc3MsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgfSxcbiAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgbW91bnRpbmdDb25maWdzOiB2M01vdW50aW5nQ29uZmlncyxcbiAgICB9LFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFrQkEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLHFCQUFxQjtBQUsvQyxN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
@@ -3,8 +3,6 @@ import { transformSnakeToCamel } from "../../application/models/utils/snakeToCam
3
3
  import { PageVariantTestType } from "../../contexts/types.js";
4
4
  import { validateAndTransformMountingConfig, validateAndTransformPageVariants } from "../../application/models/validators/validateGraphQLFrontendConfig.js";
5
5
  import "../../application/models/index.js";
6
- import { configVersionOverride } from "../../types/config-versions.js";
7
- import { getWidgetConfigQuery } from "../../application/models/graphql/queries/getWidgetConfigQuery.js";
8
6
  import { mockV3ColorsConfig, mockV3FrontendConfig } from "../../contexts/graphqlContext/mockV3Config.js";
9
7
 
10
8
  //#region src/services/enviveConfigService/fetchGraphQLConfig.ts
@@ -166,72 +164,7 @@ const transformV3ProductsConfig = (productsConfig) => {
166
164
  }
167
165
  };
168
166
  };
169
- const toExperimentAssignments = (raw) => (raw ?? []).map((a) => ({
170
- layer_name: a.layerName,
171
- namespace: a.namespace,
172
- allocated_experiment_name: a.allocatedExperimentName,
173
- group_name: a.groupName
174
- }));
175
- const fetchUnifiedGraphQLConfig = async (baseUrl, apiKey, userId, gateNames, source) => {
176
- const query = getWidgetConfigQuery();
177
- const version = configVersionOverride();
178
- const response = await fetch(`${baseUrl}/v1/graphql`, {
179
- method: "POST",
180
- headers: {
181
- "Content-Type": "application/json",
182
- Authorization: `Bearer ${apiKey}`
183
- },
184
- body: JSON.stringify({
185
- query,
186
- variables: {
187
- userId,
188
- version,
189
- gateNames,
190
- source
191
- }
192
- })
193
- });
194
- if (!response.ok) throw new Error(`Unified config request failed: ${response.statusText}`);
195
- const result = await response.json();
196
- if (result.errors) throw new Error(`Unified config GraphQL errors: ${JSON.stringify(result.errors)}`);
197
- const me = result.data?.me;
198
- const widgetConfig = me?.getWidgetConfig;
199
- const org = me?.org;
200
- const resolution = widgetConfig?.resolution;
201
- let orgConfig;
202
- try {
203
- orgConfig = {
204
- ...transformV3ProductsConfig(widgetConfig?.productsConfig),
205
- resolution
206
- };
207
- } catch (err) {
208
- logger.logError("fetchUnifiedGraphQLConfig | Error transforming products config", err);
209
- orgConfig = {
210
- colorsConfig: void 0,
211
- frontendConfig: void 0,
212
- resolution
213
- };
214
- }
215
- return {
216
- org: { org: {
217
- id: org?.id ?? "",
218
- short_name: org?.shortName ?? "",
219
- display_name: org?.displayName ?? "",
220
- domain: org?.domain ?? "",
221
- status: "",
222
- created_at: org?.createdAt ?? "",
223
- updated_at: org?.updatedAt ?? ""
224
- } },
225
- gates: (widgetConfig?.gates ?? []).map((g) => ({
226
- name: g.name,
227
- value: g.value,
228
- groupName: g.groupName
229
- })),
230
- experiment_assignments: toExperimentAssignments(widgetConfig?.experimentAssignments),
231
- orgConfig
232
- };
233
- };
234
167
 
235
168
  //#endregion
236
- export { fetchUnifiedGraphQLConfig, transformV3ProductsConfig };
237
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykuXG5pbXBvcnQgdHlwZSB7IEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL2Vudml2ZUNvbmZpZ1NlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uLFxuLy8gZ2V0V2lkZ2V0Q29uZmlnLCBvciB0aGUgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIHdpZGdldF9jb25maWcpIGludG8gdGhlXG4vLyBjYW1lbENhc2UgR3JhcGhRbENvbmZpZ1ZhbHVlcyBzaGFwZSB0aGUgcmVzdCBvZiB0aGUgdG9vbGtpdCBjb25zdW1lcy5cbi8vIFJldHVybnMgbW9jayBjb25maWcgd2hlbiBjb2xvcnMgYXJlIGFic2VudC4gRXhwb3J0ZWQgc28gZmV0Y2hCb290c3RyYXBDb25maWdcbi8vIHJldXNlcyB0aGUgZXhhY3Qgc2FtZSB0cmFuc2Zvcm0gKGJvb3RzdHJhcCdzIHByb2R1Y3RzX2NvbmZpZyBjYXJyaWVzIHRoZSBzYW1lXG4vLyBgLntzZWN0aW9ufS52YWx1ZXNgIHNoYXBlIGFzIGdldFdpZGdldENvbmZpZydzIHByb2R1Y3RzQ29uZmlnKS5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUaGUgY2FtZWxDYXNlIGBleHBlcmltZW50QXNzaWdubWVudHNgIEdyYXBoUUwgc2hhcGUg4oaSIHRoZSBzbmFrZV9jYXNlIHdpcmVcbi8vIHNoYXBlIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgKGl0IHByZXZpb3VzbHkgYXJyaXZlZCBmcm9tIFJFU1QgL3YxL29yZy9jb25maWcpLlxuY29uc3QgdG9FeHBlcmltZW50QXNzaWdubWVudHMgPSAoXG4gIHJhdzpcbiAgICB8IFJlYWRvbmx5QXJyYXk8e1xuICAgICAgICBsYXllck5hbWU/OiBzdHJpbmc7XG4gICAgICAgIG5hbWVzcGFjZT86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50WyduYW1lc3BhY2UnXTtcbiAgICAgICAgYWxsb2NhdGVkRXhwZXJpbWVudE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICBncm91cE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfT5cbiAgICB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyTmFtZSxcbiAgICBuYW1lc3BhY2U6IGEubmFtZXNwYWNlLFxuICAgIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU6IGEuYWxsb2NhdGVkRXhwZXJpbWVudE5hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cE5hbWUsXG4gIH0pKTtcblxuLy8gVGhlIHVuaWZpZWQgYGdldFdpZGdldENvbmZpZ2AgY29uZmlnIHBhdGgg4oCUIG5vdyB0aGUgc2luZ2xlIHNvdXJjZSBvZiBzZXNzaW9uXG4vLyBjb25maWcuIFJldHVybnMgZXZlcnl0aGluZyB0aGUgY2xpZW50IG5lZWRzIGluIG9uZSBjYWxsOiBvcmcgaWRlbnRpdHksXG4vLyBmZWF0dXJlIGdhdGVzLCBhbmQgZXhwZXJpbWVudCBhc3NpZ25tZW50cyAod2hpY2ggdXNlZCB0byBjb21lIGZyb20gUkVTVFxuLy8gYC92MS9vcmcvY29uZmlnYCksIHBsdXMgdGhlIHByb2R1Y3RzQ29uZmlnIGFuZCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm9cbi8vIHVzZWQgdG8gcGljayB0aGUgdmVyc2lvbiAoY2FsbGVycyB0aHJlYWQgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG9cbi8vIGRvd25zdHJlYW0gaW5mZXJlbmNlIHNvIGl0J3Mgc2NvcGVkIHRvIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlIHJlbmRlcmVkXG4vLyB3aWRnZXRzKS4gYGdhdGVOYW1lc2Agc2VsZWN0cyB3aGljaCBnYXRlcyB0byBldmFsdWF0ZTsgYHNvdXJjZWAgZmVlZHMgU3RhdHNpZ1xuLy8gdXNlciBwcm9wZXJ0aWVzLiBBIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgVVJMXG4vLyBwYXJhbSwgd2hlbiBwcmVzZW50LCBpcyB0aHJlYWRlZCB0aHJvdWdoIGFzIHRoZSBgdmVyc2lvbmAgdmFyaWFibGUgdG8gcGluIGFcbi8vIHNwZWNpZmljIHZlcnNpb24gKGJ5cGFzc2VzIHRoZSBtZXJjaGFudCBleHBlcmltZW50IOKAlCBRQSAvIHJvbGxiYWNrKS5cbi8vXG4vLyBUaHJvd3Mgb24gbmV0d29yay9HcmFwaFFMIGZhaWx1cmU6IHdpdGggb3JnICsgZ2F0ZXMgc291cmNlZCBoZXJlLCB0aGVyZSBpcyBub1xuLy8gcGFydGlhbC1yZW5kZXIgZmFsbGJhY2sgKGluamVjdC50cyBhYm9ydHMgaW5qZWN0aW9uIG9uIHRoZSB0aHJvdyksIG1hdGNoaW5nXG4vLyBob3cgdGhlIG9sZCAvdjEvb3JnL2NvbmZpZyBjYWxsIGJlaGF2ZWQuXG5leHBvcnQgY29uc3QgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyA9IGFzeW5jIChcbiAgYmFzZVVybDogc3RyaW5nLFxuICBhcGlLZXk6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGdhdGVOYW1lczogc3RyaW5nW10sXG4gIHNvdXJjZTogc3RyaW5nLFxuKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gZ2V0V2lkZ2V0Q29uZmlnUXVlcnkoKTtcbiAgY29uc3QgdmVyc2lvbiA9IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSgpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnksIHZhcmlhYmxlczogeyB1c2VySWQsIHZlcnNpb24sIGdhdGVOYW1lcywgc291cmNlIH0gfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaWZpZWQgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmlmaWVkIGNvbmZpZyBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgfVxuXG4gIGNvbnN0IG1lID0gcmVzdWx0LmRhdGE/Lm1lO1xuICBjb25zdCB3aWRnZXRDb25maWcgPSBtZT8uZ2V0V2lkZ2V0Q29uZmlnO1xuICBjb25zdCBvcmcgPSBtZT8ub3JnO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyAoZS5nLiBhbiBpbnZhbGlkIGZsb2F0aW5nLWJ1dHRvbiBwb3NpdGlvbilcbiAgLy8gZGVncmFkZXMgdG8gbm8gY29uZmlnIOKAlCB3aWRnZXRzIGZhbGwgYmFjayB0byB0aGVpciBtb2NrIGRlZmF1bHRzIOKAlCBXSVRIT1VUXG4gIC8vIGxvc2luZyB0aGUgb3JnIC8gZ2F0ZXMgLyBleHBlcmltZW50cyB0aGF0IGNhbWUgYmFjayBmaW5lLiBUaGUgZmV0Y2ggaXRzZWxmXG4gIC8vIHN0aWxsIHRocm93cyBhYm92ZTsgb25seSB0aGUgcHJvZHVjdHMtY29uZmlnIHRyYW5zZm9ybSBpcyBndWFyZGVkIGhlcmUuXG4gIGNvbnN0IHJlc29sdXRpb24gPSB3aWRnZXRDb25maWc/LnJlc29sdXRpb24gYXMgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgbGV0IG9yZ0NvbmZpZzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWcgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnPy5wcm9kdWN0c0NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIHwgRXJyb3IgdHJhbnNmb3JtaW5nIHByb2R1Y3RzIGNvbmZpZycsIGVycik7XG4gICAgb3JnQ29uZmlnID0geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCwgcmVzb2x1dGlvbiB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBHcmFwaFFMIE9yZ2FuaXphdGlvbiBpcyBjYW1lbENhc2U7IHRoZSByZXN0IG9mIHRoZSBhcHAgcmVhZHMgdGhlXG4gICAgLy8gc25ha2VfY2FzZSBzaGFwZSAvdjEvb3JnL2NvbmZpZyB1c2VkIHRvIHJldHVybi4gYHN0YXR1c2AgaXNuJ3QgZXhwb3NlZCBieVxuICAgIC8vIHRoZSBHcmFwaFFMIHR5cGUgKGFuZCBpc24ndCBjb25zdW1lZCBkb3duc3RyZWFtKSDigJQgZGVmYXVsdCBpdC5cbiAgICBvcmc6IHtcbiAgICAgIG9yZzoge1xuICAgICAgICBpZDogb3JnPy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnPy5zaG9ydE5hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnPy5kaXNwbGF5TmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmc/LmRvbWFpbiA/PyAnJyxcbiAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgY3JlYXRlZF9hdDogb3JnPy5jcmVhdGVkQXQgPz8gJycsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IG9yZz8udXBkYXRlZEF0ID8/ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdhdGVzOiAoXG4gICAgICAod2lkZ2V0Q29uZmlnPy5nYXRlcyA/PyBbXSkgYXMgQXJyYXk8e1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICB2YWx1ZT86IGJvb2xlYW47XG4gICAgICAgIGdyb3VwTmFtZT86IHN0cmluZztcbiAgICAgIH0+XG4gICAgKS5tYXAoXG4gICAgICAoZyk6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlID0+ICh7XG4gICAgICAgIG5hbWU6IGcubmFtZSxcbiAgICAgICAgdmFsdWU6IGcudmFsdWUsXG4gICAgICAgIGdyb3VwTmFtZTogZy5ncm91cE5hbWUsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM6IHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZz8uZXhwZXJpbWVudEFzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWcsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBNEJBLE1BQU0sU0FBUyxJQUFJQSxlQUFPLHFCQUFxQjtBQUsvQyxNQUFhQyx3QkFBNkMsQ0FDeEQ7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixnQkFBZ0IsRUFBRTtDQUNsQixjQUFjLENBQUMsRUFBRSxVQUFVLG9CQUFvQixhQUFhLENBQUM7Q0FDOUQsRUFDRDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FBQyxFQUFFLFVBQVUsb0JBQW9CLGFBQWEsQ0FBQztDQUM5RCxDQUNGO0FBSUQsTUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDRDtBQUVELE1BQU0sMEJBQTBCLGFBQTZDO0FBQzNFLEtBQUssMEJBQWdELFNBQVMsU0FBUyxDQUNyRSxRQUFPO0FBRVQsT0FBTSxJQUFJLE1BQU0scUJBQXFCLFdBQVc7O0FBR2xELE1BQU0sMkJBQ0osaUJBQzZCO0NBQzdCLE1BQU0sRUFBRSxjQUFjO0FBQ3RCLEtBQUksQ0FBQyxVQUFXLFFBQU87Q0FDdkIsTUFBTSxFQUFFLGdCQUFnQixnQkFBZ0I7QUFDeEMsS0FBSSxDQUFDLGtCQUFrQixDQUFDLFlBQWEsUUFBTztDQUM1QyxNQUFNLEVBQUUsVUFBVSxZQUFZLGtCQUFrQixZQUFZO0FBQzVELFFBQU87RUFDTCxHQUFHO0VBQ0gsV0FBVztHQUNULEdBQUc7R0FDSCxnQkFBZ0I7SUFDZCxHQUFHO0lBQ0gsVUFBVSx1QkFDUixhQUFhLFdBQVcsZ0JBQWdCLFNBQ3pD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
169
+ export { transformV3ProductsConfig };
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBtb2NrVjNDb2xvcnNDb25maWcsIG1vY2tWM0Zyb250ZW5kQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0L21vY2tWM0NvbmZpZyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IFBhZ2VWYXJpYW50Q29uZmlnLCBQYWdlVmFyaWFudFRlc3RUeXBlLCBXaWRnZXRNb3VudGluZ0NvbmZpZyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uLFxuLy8gZ2V0V2lkZ2V0Q29uZmlnLCBvciB0aGUgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIHdpZGdldF9jb25maWcpIGludG8gdGhlXG4vLyBjYW1lbENhc2UgR3JhcGhRbENvbmZpZ1ZhbHVlcyBzaGFwZSB0aGUgcmVzdCBvZiB0aGUgdG9vbGtpdCBjb25zdW1lcy5cbi8vIFJldHVybnMgbW9jayBjb25maWcgd2hlbiBjb2xvcnMgYXJlIGFic2VudC4gRXhwb3J0ZWQgc28gZmV0Y2hCb290c3RyYXBDb25maWdcbi8vIHJldXNlcyB0aGUgZXhhY3Qgc2FtZSB0cmFuc2Zvcm0gKGJvb3RzdHJhcCdzIHByb2R1Y3RzX2NvbmZpZyBjYXJyaWVzIHRoZSBzYW1lXG4vLyBgLntzZWN0aW9ufS52YWx1ZXNgIHNoYXBlIGFzIGdldFdpZGdldENvbmZpZydzIHByb2R1Y3RzQ29uZmlnKS5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWtCQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxxQkFBcUI7QUFLL0MsTUFBYUMsd0JBQTZDLENBQ3hEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVSxvQkFBb0IsYUFBYSxDQUFDO0NBQzlELEVBQ0Q7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLG9CQUFvQjtDQUNwQixnQkFB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
@@ -86,16 +86,18 @@ var FeatureFlagService = class FeatureFlagService {
86
86
  return storedOverride;
87
87
  }
88
88
  }
89
- static persistFeatureGateOverrides() {
90
- if (typeof window === "undefined" || typeof window.localStorage === "undefined") return;
91
- const overrides = Object.values(require_featureGates.FeatureGates).map((featureGate) => [featureGate, FeatureFlagService.getFeatureFlagOverride(featureGate)]).filter(([, value]) => value !== void 0).reduce((acc, [key, value]) => ({
89
+ static getFeatureFlagOverrides() {
90
+ return Object.values(require_featureGates.FeatureGates).map((featureGate) => [featureGate, FeatureFlagService.getFeatureFlagOverride(featureGate)]).filter(([, value]) => value !== void 0).reduce((acc, [key, value]) => ({
92
91
  ...acc,
93
92
  [key]: value
94
93
  }), {});
95
- window.localStorage.setItem(FEATURE_FLAGS_STORAGE_KEY, JSON.stringify(overrides));
94
+ }
95
+ static persistFeatureGateOverrides() {
96
+ if (typeof window === "undefined" || typeof window.localStorage === "undefined") return;
97
+ window.localStorage.setItem(FEATURE_FLAGS_STORAGE_KEY, JSON.stringify(FeatureFlagService.getFeatureFlagOverrides()));
96
98
  }
97
99
  };
98
100
 
99
101
  //#endregion
100
102
  exports.FeatureFlagService = FeatureFlagService;
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiRmVhdHVyZUdhdGVzIiwiZmVhdHVyZUdhdGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuXG5jb25zdCBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZID0gJ3NwaWZmeS1mZWF0dXJlLWZsYWdzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmVhdHVyZUZsYWdTZXJ2aWNlJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEZsYWdWYWx1ZSB7XG4gIHJlc29sdmVkOiBib29sZWFuO1xuICBpbml0aWFsOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBxdWVyeV9wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBzdG9yZWRfb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8vIEtlcHQgZnJlZSBvZiBSZWFjdCBpbXBvcnRzOiB0aGUgaW5qZWN0aW9uIGJ1bmRsZSBjb25zdHJ1Y3RzIHRoaXMgc2VydmljZVxuLy8gYmVmb3JlIGRlY2lkaW5nIHdoZXRoZXIgdG8gbG9hZCB0aGUgUmVhY3QgYXBwLCBhbmQgcHVsbGluZyBSZWFjdCBpbnRvXG4vLyB0aGF0IHByZS1jb25maWcgY29kZSBwYXRoIHdvdWxkIHB1dCBpdCBvbiB0aGUgZWFnZXIgY3JpdGljYWwgY2h1bmsuXG5leHBvcnQgY2xhc3MgRmVhdHVyZUZsYWdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG5cbiAgY29uc3RydWN0b3IoZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdKSB7XG4gICAgdGhpcy5mZWF0dXJlR2F0ZXMgPSBmZWF0dXJlR2F0ZXM7XG4gIH1cblxuICBzdGF0aWMgZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24/LmhyZWYgPz8gJyc7XG4gICAgaWYgKHVybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybE9iai5zZWFyY2gpO1xuICAgICAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNPYmpbZmVhdHVyZUdhdGVdO1xuXG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gd2luZG93IGFzIFdpbmRvdyAmIHtcbiAgICAgIF9lbnZpdmU/OiB7IGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB9O1xuICAgICAgX3NwaWZmeT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgfTtcbiAgICBjb25zdCBmZWF0dXJlT3ZlcnJpZGVzID1cbiAgICAgIHdpbmRvd092ZXJyaWRlPy5fZW52aXZlPy5mZWF0dXJlT3ZlcnJpZGVzID8/IHdpbmRvd092ZXJyaWRlPy5fc3BpZmZ5Py5mZWF0dXJlT3ZlcnJpZGVzO1xuICAgIGNvbnN0IHZhbHVlID0gZmVhdHVyZU92ZXJyaWRlcz8uW1N0cmluZyhmZWF0dXJlR2F0ZSldO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3MgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoIWZlYXR1cmVGbGFncykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzT2JqID0gSlNPTi5wYXJzZShmZWF0dXJlRmxhZ3MpIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnc09ialtmZWF0dXJlR2F0ZV07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2dnZXIubG9nRXJyb3IoJ2dldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzOiBlcnJvciBwYXJzaW5nIGZlYXR1cmUgZmxhZ3MnLCBlcnIpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcXVlcnlPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChxdWVyeU92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgVVJMIHBhcmFtLiBOZXcgdmFsdWU6ICR7cXVlcnlPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBxdWVyeU92ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAod2luZG93T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSB3aW5kb3cgcGFyYW0uIE5ldyB2YWx1ZTogJHt3aW5kb3dPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB3aW5kb3dPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWRPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHN0b3JlZE92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgc3RvcmVkIHZhbHVlLiBOZXcgdmFsdWU6ICR7c3RvcmVkT3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RvcmVkT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzRmVhdHVyZUdhdGVFbmFibGVkID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG5cbiAgICBjb25zdCBmZWF0dXJlRmxhZ092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChmZWF0dXJlRmxhZ092ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmZWF0dXJlRmxhZ092ZXJyaWRlO1xuICAgIH1cblxuICAgIGlmIChnYXRlVmFsdWUgPT0gbnVsbCB8fCBnYXRlVmFsdWUudmFsdWUgPT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gdmFsdWUgaXMgdW5kZWZpbmVkIC0gcmV0dXJuaW5nIGZhbHNlYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBnYXRlVmFsdWUudmFsdWU7XG4gIH07XG5cbiAgLy8gRW5zdXJlIHRoYXQgc3RhbmRhcmQgb3ZlcnJpZGVzIHdvcmsgYXMgZXhwZWN0ZWRcbiAgaXNDbGllbnRTZXNzaW9uRW5hYmxlZCA9ICgpOiBib29sZWFuID0+XG4gICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuSXNDbGllbnRTZXNzaW9uRW5hYmxlZCk7XG5cbiAgZ2V0RmVhdHVyZUZsYWdzID0gKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBdKSxcbiAgICApO1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWUgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IEZ1bGxGbGFnVmFsdWUgPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb2x2ZWQ6IHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgaW5pdGlhbDogZ2F0ZVZhbHVlPy52YWx1ZSxcbiAgICAgIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHdpbmRvd19wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHN0b3JlZF9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICB9O1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWVzID0gKCk6IFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+ID0+IHtcbiAgICBjb25zdCBmZWF0dXJlR2F0ZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgIHRoaXMuZ2V0RnVsbEZsYWdWYWx1ZShmZWF0dXJlR2F0ZSksXG4gICAgXSk7XG5cbiAgICByZXR1cm4gZmVhdHVyZUdhdGVzLmxlbmd0aCA+IDBcbiAgICAgID8gZmVhdHVyZUdhdGVzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPj4oKGFjYywgZW50cnkpID0+IHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gZW50cnkgYXMgW0ZlYXR1cmVHYXRlcywgRnVsbEZsYWdWYWx1ZV07XG4gICAgICAgICAgaWYgKG5hbWUgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYGZlYXR1cmVfZ2F0ZS4ke25hbWV9YF06IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KVxuICAgICAgOiB7fTtcbiAgfTtcblxuICBzdGF0aWMgcGVyc2lzdEZlYXR1cmVHYXRlT3ZlcnJpZGVzKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpXG4gICAgICAubWFwKFxuICAgICAgICBmZWF0dXJlR2F0ZSA9PlxuICAgICAgICAgIFtmZWF0dXJlR2F0ZSwgRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpXSBhcyBjb25zdCxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUhIH0pLCB7fSk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KG92ZXJyaWRlcykpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxNQUFNLDRCQUE0QjtBQUVsQyxNQUFNLFNBQVMsSUFBSUEsdUJBQU8scUJBQXFCO0FBYS9DLElBQWEscUJBQWIsTUFBYSxtQkFBbUI7Q0FHOUIsWUFBWSxjQUFzQzsrQkFrRjFCLGdCQUF1QztHQUM3RCxNQUFNLFlBQVksS0FBSyxhQUFhLE1BQUssU0FBUSxLQUFLLFNBQVMsWUFBWTtHQUUzRSxNQUFNLHNCQUFzQixtQkFBbUIsdUJBQXVCLFlBQVk7QUFDbEYsT0FBSSx3QkFBd0IsT0FDMUIsUUFBTztBQUdULE9BQUksYUFBYSxRQUFRLFVBQVUsU0FBUyxNQUFNO0FBQ2hELFdBQU8sU0FDTCxvQ0FBb0MsWUFBWSx1Q0FDakQ7QUFDRCxXQUFPOztBQUVULFVBQU8sVUFBVTs7c0NBS2pCLEtBQUsscUJBQXFCQyxrQ0FBYSx1QkFBdUI7K0JBRWY7QUFDL0MsVUFBTyxPQUFPLFlBQ1osT0FBTyxPQUFPQSxrQ0FBYSxDQUFDLEtBQUssZ0JBQThCLENBQzdELGFBQ0EsS0FBSyxxQkFBcUIsWUFBWSxDQUN2QyxDQUFDLENBQ0g7OzJCQUdpQixnQkFBNkM7R0FDL0QsTUFBTSxZQUFZLEtBQUssYUFBYSxN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
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiRmVhdHVyZUdhdGVzIiwiZmVhdHVyZUdhdGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuXG5jb25zdCBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZID0gJ3NwaWZmeS1mZWF0dXJlLWZsYWdzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmVhdHVyZUZsYWdTZXJ2aWNlJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEZsYWdWYWx1ZSB7XG4gIHJlc29sdmVkOiBib29sZWFuO1xuICBpbml0aWFsOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBxdWVyeV9wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBzdG9yZWRfb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8vIEtlcHQgZnJlZSBvZiBSZWFjdCBpbXBvcnRzOiB0aGUgaW5qZWN0aW9uIGJ1bmRsZSBjb25zdHJ1Y3RzIHRoaXMgc2VydmljZVxuLy8gYmVmb3JlIGRlY2lkaW5nIHdoZXRoZXIgdG8gbG9hZCB0aGUgUmVhY3QgYXBwLCBhbmQgcHVsbGluZyBSZWFjdCBpbnRvXG4vLyB0aGF0IHByZS1jb25maWcgY29kZSBwYXRoIHdvdWxkIHB1dCBpdCBvbiB0aGUgZWFnZXIgY3JpdGljYWwgY2h1bmsuXG5leHBvcnQgY2xhc3MgRmVhdHVyZUZsYWdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG5cbiAgY29uc3RydWN0b3IoZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdKSB7XG4gICAgdGhpcy5mZWF0dXJlR2F0ZXMgPSBmZWF0dXJlR2F0ZXM7XG4gIH1cblxuICBzdGF0aWMgZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24/LmhyZWYgPz8gJyc7XG4gICAgaWYgKHVybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybE9iai5zZWFyY2gpO1xuICAgICAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNPYmpbZmVhdHVyZUdhdGVdO1xuXG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gd2luZG93IGFzIFdpbmRvdyAmIHtcbiAgICAgIF9lbnZpdmU/OiB7IGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB9O1xuICAgICAgX3NwaWZmeT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgfTtcbiAgICBjb25zdCBmZWF0dXJlT3ZlcnJpZGVzID1cbiAgICAgIHdpbmRvd092ZXJyaWRlPy5fZW52aXZlPy5mZWF0dXJlT3ZlcnJpZGVzID8/IHdpbmRvd092ZXJyaWRlPy5fc3BpZmZ5Py5mZWF0dXJlT3ZlcnJpZGVzO1xuICAgIGNvbnN0IHZhbHVlID0gZmVhdHVyZU92ZXJyaWRlcz8uW1N0cmluZyhmZWF0dXJlR2F0ZSldO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3MgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoIWZlYXR1cmVGbGFncykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzT2JqID0gSlNPTi5wYXJzZShmZWF0dXJlRmxhZ3MpIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnc09ialtmZWF0dXJlR2F0ZV07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2dnZXIubG9nRXJyb3IoJ2dldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzOiBlcnJvciBwYXJzaW5nIGZlYXR1cmUgZmxhZ3MnLCBlcnIpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcXVlcnlPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChxdWVyeU92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgVVJMIHBhcmFtLiBOZXcgdmFsdWU6ICR7cXVlcnlPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBxdWVyeU92ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAod2luZG93T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSB3aW5kb3cgcGFyYW0uIE5ldyB2YWx1ZTogJHt3aW5kb3dPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB3aW5kb3dPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWRPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHN0b3JlZE92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgc3RvcmVkIHZhbHVlLiBOZXcgdmFsdWU6ICR7c3RvcmVkT3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RvcmVkT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzRmVhdHVyZUdhdGVFbmFibGVkID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG5cbiAgICBjb25zdCBmZWF0dXJlRmxhZ092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChmZWF0dXJlRmxhZ092ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmZWF0dXJlRmxhZ092ZXJyaWRlO1xuICAgIH1cblxuICAgIGlmIChnYXRlVmFsdWUgPT0gbnVsbCB8fCBnYXRlVmFsdWUudmFsdWUgPT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gdmFsdWUgaXMgdW5kZWZpbmVkIC0gcmV0dXJuaW5nIGZhbHNlYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBnYXRlVmFsdWUudmFsdWU7XG4gIH07XG5cbiAgLy8gRW5zdXJlIHRoYXQgc3RhbmRhcmQgb3ZlcnJpZGVzIHdvcmsgYXMgZXhwZWN0ZWRcbiAgaXNDbGllbnRTZXNzaW9uRW5hYmxlZCA9ICgpOiBib29sZWFuID0+XG4gICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuSXNDbGllbnRTZXNzaW9uRW5hYmxlZCk7XG5cbiAgZ2V0RmVhdHVyZUZsYWdzID0gKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBdKSxcbiAgICApO1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWUgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IEZ1bGxGbGFnVmFsdWUgPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb2x2ZWQ6IHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgaW5pdGlhbDogZ2F0ZVZhbHVlPy52YWx1ZSxcbiAgICAgIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHdpbmRvd19wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHN0b3JlZF9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICB9O1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWVzID0gKCk6IFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+ID0+IHtcbiAgICBjb25zdCBmZWF0dXJlR2F0ZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgIHRoaXMuZ2V0RnVsbEZsYWdWYWx1ZShmZWF0dXJlR2F0ZSksXG4gICAgXSk7XG5cbiAgICByZXR1cm4gZmVhdHVyZUdhdGVzLmxlbmd0aCA+IDBcbiAgICAgID8gZmVhdHVyZUdhdGVzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPj4oKGFjYywgZW50cnkpID0+IHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gZW50cnkgYXMgW0ZlYXR1cmVHYXRlcywgRnVsbEZsYWdWYWx1ZV07XG4gICAgICAgICAgaWYgKG5hbWUgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYGZlYXR1cmVfZ2F0ZS4ke25hbWV9YF06IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KVxuICAgICAgOiB7fTtcbiAgfTtcblxuICAvLyBPbmx5IHRoZSBnYXRlcyB0aGUgY2xpZW50IGFjdHVhbGx5IG92ZXJyaWRlcyAocXVlcnkgcGFyYW0gLyB3aW5kb3cgLyBzdG9yZWQpLFxuICAvLyB3aXRoIHRoZSB1bi1vdmVycmlkZGVuIG9uZXMgbGVmdCBvdXQgZW50aXJlbHkg4oCUIE5PVCByZXNvbHZlZCB0byBmYWxzZS4gVGhpc1xuICAvLyBpcyB3aGF0IC92MS9zZXNzaW9uL2Jvb3RzdHJhcCdzIHVybF9yZXNvbHZpbmcgd2FudHM6IHRoZSBzZXJ2ZXIgcmVzb2x2ZXMgdGhlXG4gIC8vIHJlYWwgZ2F0ZSB2YWx1ZXMgaXRzZWxmIGFuZCBtZXJnZXMgdGhpcyBtYXAgT1ZFUiB0aGVtLCBzbyBhIGZ1bGwgbWFwIG9mXG4gIC8vIHJlc29sdmVkIHZhbHVlcyB3b3VsZCBjbG9iYmVyIHRoZSBzZXJ2ZXIncyBnYXRlcyB3aXRoIHRoZSBjbGllbnQncyAod2hpY2gsXG4gIC8vIG9uIHRoZSBib290c3RyYXAtb25seSBwYXRoLCBoYXMgbm8gc2VydmVyIHZhbHVlcyB0byByZXNvbHZlIGZyb20pLiBBbiBlbXB0eVxuICAvLyBtYXAgKHRoZSBjb21tb24gY2FzZSDigJQgbm8gb3ZlcnJpZGVzKSBsZWF2ZXMgdGhlIHNlcnZlcidzIGdhdGVzIHVudG91Y2hlZC5cbiAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGVzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpXG4gICAgICAubWFwKFxuICAgICAgICBmZWF0dXJlR2F0ZSA9PlxuICAgICAgICAgIFtmZWF0dXJlR2F0ZSwgRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpXSBhcyBjb25zdCxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUhIH0pLCB7fSk7XG4gIH1cblxuICBzdGF0aWMgcGVyc2lzdEZlYXR1cmVHYXRlT3ZlcnJpZGVzKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlcygpKSxcbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxNQUFNLDRCQUE0QjtBQUVsQyxNQUFNLFNBQVMsSUFBSUEsdUJBQU8scUJBQXFCO0FBYS9DLElBQWEscUJBQWIsTUFBYSxtQkFBbUI7Q0FHOUIsWUFBWSxjQUFzQzsrQkFrRjFCLGdCQUF1QztHQUM3RCxNQUFNLFlBQVksS0FBSyxhQUFhLE1BQUssU0FBUSxLQUFLLFNBQVMsWUFBWTtHQUUzRSxNQUFNLHNCQUFzQixtQkFBbUIsdUJBQXVCLFlBQVk7QUFDbEYsT0FBSSx3QkFBd0IsT0FDMUIsUUFBTztBQUdULE9BQUksYUFBYSxRQUFRLFVBQVUsU0FBUyxNQUFNO0FBQ2hELFdBQU8sU0FDTCxvQ0FBb0MsWUFBWSx1Q0FDakQ7QUFDRCxXQUFPOztBQUVULFVBQU8sVUFBVTs7c0NBS2pCLEtBQUsscUJBQXFCQyxrQ0FBYSx1QkFBdUI7K0JBRWY7QUFDL0MsVUFBTyxPQUFPLFlBQ1osT0FBTyxPQUFPQSxrQ0FBYSxDQUFDLEtBQUssZ0JBQThCLENBQzdELGFBQ0EsS0FBSyxxQkFBcUIsWUFBWSxDQUN2QyxDQUFDLENBQ0g7OzJCQUdpQixnQkFBNkM7R0FDL0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7QUFDM0UsVUFBTztJQUNMLFVBQVUsS0FBSyxxQkFBcUIsWUFBWTtJQUNoRCxTQUFTLFdBQVc7SUFDcEIsc0JBQXNCLG1CQUFtQixrQ0FBa0MsWUFBWTtJQUN2Rix1QkFBdUIsbUJBQW1CLDhCQUE4QixZQUFZO0lBQ3BGLGlCQUFpQixtQkFBbUIsOEJBQThCLFlBQVk7SUFDL0U7O2lDQUdzRDtHQUN2RCxNQUFNQyxpQkFBZSxPQUFP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
@@ -21,8 +21,9 @@ declare class FeatureFlagService {
21
21
  getFeatureFlags: () => Record<string, boolean>;
22
22
  getFullFlagValue: (featureGate: FeatureGates) => FullFlagValue;
23
23
  getFullFlagValues: () => Record<string, FullFlagValue>;
24
+ static getFeatureFlagOverrides(): Record<string, boolean>;
24
25
  static persistFeatureGateOverrides(): void;
25
26
  }
26
27
  //#endregion
27
28
  export { FeatureFlagService, FullFlagValue };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZS9pbmRleC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxGbGFnVmFsdWUge1xuICAgIHJlc29sdmVkOiBib29sZWFuO1xuICAgIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XG4gICAgcHJpdmF0ZSBmZWF0dXJlR2F0ZXM7XG4gICAgY29uc3RydWN0b3IoZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdKTtcbiAgICBzdGF0aWMgZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBnZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgaXNGZWF0dXJlR2F0ZUVuYWJsZWQ6IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBib29sZWFuO1xuICAgIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQ6ICgpID0+IGJvb2xlYW47XG4gICAgZ2V0RmVhdHVyZUZsYWdzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICBnZXRGdWxsRmxhZ1ZhbHVlOiAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gRnVsbEZsYWdWYWx1ZTtcbiAgICBnZXRGdWxsRmxhZ1ZhbHVlczogKCkgPT4gUmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT47XG4gICAgc3RhdGljIHBlcnNpc3RGZWF0dXJlR2F0ZU92ZXJyaWRlcygpOiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxnQkFBZ0IsQ0FBQyxJQUFHO0FBQy9CLElBQVcscUJBQVU7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZS9pbmRleC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxGbGFnVmFsdWUge1xuICAgIHJlc29sdmVkOiBib29sZWFuO1xuICAgIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XG4gICAgcHJpdmF0ZSBmZWF0dXJlR2F0ZXM7XG4gICAgY29uc3RydWN0b3IoZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdKTtcbiAgICBzdGF0aWMgZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBnZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgaXNGZWF0dXJlR2F0ZUVuYWJsZWQ6IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBib29sZWFuO1xuICAgIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQ6ICgpID0+IGJvb2xlYW47XG4gICAgZ2V0RmVhdHVyZUZsYWdzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICBnZXRGdWxsRmxhZ1ZhbHVlOiAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gRnVsbEZsYWdWYWx1ZTtcbiAgICBnZXRGdWxsRmxhZ1ZhbHVlczogKCkgPT4gUmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT47XG4gICAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGVzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHN0YXRpYyBwZXJzaXN0RmVhdHVyZUdhdGVPdmVycmlkZXMoKTogdm9pZDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQVcsZ0JBQWdCLENBQUMsSUFBRztBQUMvQixJQUFXLHFCQUFVO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9