@envive-ai/react-hooks 0.3.63 → 0.3.65

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 (112) hide show
  1. package/dist/application/models/featureGates.cjs +2 -2
  2. package/dist/application/models/featureGates.d.cts +2 -2
  3. package/dist/application/models/featureGates.d.ts +2 -2
  4. package/dist/application/models/featureGates.js +2 -2
  5. package/dist/application/utils/elementObserver.d.cts +2 -2
  6. package/dist/atoms/app/index.d.cts +7 -7
  7. package/dist/atoms/app/index.d.ts +1 -1
  8. package/dist/atoms/app/variant.d.ts +6 -6
  9. package/dist/atoms/chat/chatState.d.cts +19 -19
  10. package/dist/atoms/chat/chatState.d.ts +19 -19
  11. package/dist/atoms/chat/form.d.cts +2 -2
  12. package/dist/atoms/chat/form.d.ts +3 -3
  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.ts +7 -7
  17. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  18. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  19. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  20. package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
  21. package/dist/atoms/chat/replies.d.cts +3 -3
  22. package/dist/atoms/chat/suggestions.d.ts +3 -3
  23. package/dist/atoms/envive/enviveConfig.d.cts +14 -14
  24. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  25. package/dist/atoms/org/customerService.d.cts +6 -6
  26. package/dist/atoms/org/customerService.d.ts +6 -6
  27. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  28. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  29. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  30. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  31. package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
  32. package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
  33. package/dist/atoms/search/types.d.cts +1 -1
  34. package/dist/atoms/search/utils.d.cts +1 -1
  35. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  36. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  37. package/dist/contexts/pageContext/pageContext.cjs +12 -24
  38. package/dist/contexts/pageContext/pageContext.js +12 -24
  39. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  40. package/dist/contexts/types.d.cts +1 -1
  41. package/dist/contexts/types.d.ts +1 -1
  42. package/dist/contexts/typesV3.cjs +8 -1
  43. package/dist/contexts/typesV3.d.cts +23 -6
  44. package/dist/contexts/typesV3.d.ts +23 -6
  45. package/dist/contexts/typesV3.js +8 -2
  46. package/dist/hooks/Intersection/useIntersection.cjs +9 -2
  47. package/dist/hooks/Intersection/useIntersection.d.cts +2 -2
  48. package/dist/hooks/Intersection/useIntersection.d.ts +2 -2
  49. package/dist/hooks/Intersection/useIntersection.js +9 -2
  50. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
  51. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +12 -3
  52. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +2 -1
  53. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +2 -1
  54. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +13 -4
  55. package/dist/hooks/WidgetLoadDiagnostics/index.cjs +4 -0
  56. package/dist/hooks/WidgetLoadDiagnostics/index.d.cts +2 -0
  57. package/dist/hooks/WidgetLoadDiagnostics/index.d.ts +2 -0
  58. package/dist/hooks/WidgetLoadDiagnostics/index.js +3 -0
  59. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.cjs +122 -0
  60. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.cts +48 -0
  61. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.ts +48 -0
  62. package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.js +120 -0
  63. package/dist/hooks/utils.d.cts +1 -1
  64. package/dist/hooks/utils.d.ts +1 -1
  65. package/dist/services/amplitudeService/eventNames.cjs +2 -1
  66. package/dist/services/amplitudeService/eventNames.d.cts +2 -1
  67. package/dist/services/amplitudeService/eventNames.d.ts +2 -1
  68. package/dist/services/amplitudeService/eventNames.js +2 -1
  69. package/dist/services/enviveConfigService/enviveConfigService.cjs +21 -35
  70. package/dist/services/enviveConfigService/enviveConfigService.d.cts +1 -2
  71. package/dist/services/enviveConfigService/enviveConfigService.d.ts +1 -2
  72. package/dist/services/enviveConfigService/enviveConfigService.js +21 -35
  73. package/dist/services/enviveConfigService/fetchBootstrapConfig.cjs +15 -16
  74. package/dist/services/enviveConfigService/fetchBootstrapConfig.js +15 -16
  75. package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +1 -69
  76. package/dist/services/enviveConfigService/fetchGraphQLConfig.js +2 -69
  77. package/dist/services/featureFlagService/index.cjs +7 -5
  78. package/dist/services/featureFlagService/index.d.cts +2 -1
  79. package/dist/services/featureFlagService/index.d.ts +2 -1
  80. package/dist/services/featureFlagService/index.js +7 -5
  81. package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +3 -2
  82. package/dist/services/ga4ProjectionService/ga4EventSchema.js +3 -2
  83. package/dist/services/hardcopyService/hardcopyService.cjs +12 -3
  84. package/dist/services/hardcopyService/hardcopyService.d.cts +3 -1
  85. package/dist/services/hardcopyService/hardcopyService.d.ts +3 -1
  86. package/dist/services/hardcopyService/hardcopyService.js +12 -3
  87. package/package.json +5 -1
  88. package/src/application/models/featureGates.ts +11 -8
  89. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +4 -59
  90. package/src/contexts/pageContext/pageContext.tsx +20 -41
  91. package/src/contexts/typesV3.ts +22 -4
  92. package/src/hooks/Intersection/useIntersection.ts +11 -0
  93. package/src/hooks/TrackComponentVisibleEvent/__tests__/useTrackComponentVisibleEvent.test.tsx +64 -0
  94. package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +23 -4
  95. package/src/hooks/WidgetLoadDiagnostics/__tests__/useWidgetLoadDiagnostics.test.ts +161 -0
  96. package/src/hooks/WidgetLoadDiagnostics/index.ts +5 -0
  97. package/src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.ts +178 -0
  98. package/src/services/amplitudeService/eventNames.ts +4 -0
  99. package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +72 -158
  100. package/src/services/enviveConfigService/__tests__/fetchBootstrapConfig.test.ts +111 -13
  101. package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +161 -490
  102. package/src/services/enviveConfigService/enviveConfigService.ts +51 -87
  103. package/src/services/enviveConfigService/fetchBootstrapConfig.ts +74 -66
  104. package/src/services/enviveConfigService/fetchGraphQLConfig.ts +0 -120
  105. package/src/services/featureFlagService/__tests__/getFeatureFlagOverrides.test.ts +54 -0
  106. package/src/services/featureFlagService/index.ts +19 -6
  107. package/src/services/ga4ProjectionService/ga4EventSchema.ts +5 -0
  108. package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +16 -5
  109. package/src/services/hardcopyService/hardcopyService.ts +10 -2
  110. package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +0 -42
  111. package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +0 -41
  112. package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +0 -55
@@ -48,9 +48,10 @@ let EnviveMetricsEventName = /* @__PURE__ */ function(EnviveMetricsEventName$1)
48
48
  EnviveMetricsEventName$1["WidgetTextRequest"] = "Widget Text Request";
49
49
  EnviveMetricsEventName$1["WidgetTextResponse"] = "Widget Text Response";
50
50
  EnviveMetricsEventName$1["WidgetTextClicked"] = "Widget Text Clicked";
51
+ EnviveMetricsEventName$1["Diagnostics"] = "Diagnostics";
51
52
  return EnviveMetricsEventName$1;
52
53
  }({});
53
54
 
54
55
  //#endregion
55
56
  export { EnviveMetricsEventName, SpiffyMetricsEventName };
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnROYW1lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9ldmVudE5hbWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXZlbnQgbmFtZSBlbnVtcyBmb3IgQW1wbGl0dWRlIHRyYWNraW5nLlxuICpcbiAqIE5PVEU6IFRoaXMgZmlsZSBleGlzdHMgc2VwYXJhdGVseSB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmN5IGlzc3Vlcy5cbiAqIFRoZSBhbXBsaXR1ZGVTZXJ2aWNlIGltcG9ydHMgZnJvbSBnYTRQcm9qZWN0aW9uU2VydmljZSwgd2hpY2ggbmVlZHMgdGhlc2UgZW51bXMuXG4gKiBCeSBrZWVwaW5nIHRoZSBlbnVtcyBpbiBhIHNlcGFyYXRlIGZpbGUsIGdhNFByb2plY3Rpb25TZXJ2aWNlIGNhbiBpbXBvcnQgdGhlbVxuICogd2l0aG91dCBjcmVhdGluZyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBhbXBsaXR1ZGVTZXJ2aWNlLlxuICovXG5cbmV4cG9ydCBlbnVtIFNwaWZmeU1ldHJpY3NFdmVudE5hbWUge1xuICBCdW5kbGVMb2FkZWQgPSAnQnVuZGxlIExvYWRlZCcsXG4gIENoYXRMaXZlQWdlbnRCdG5DbGljayA9ICdDaGF0IExpdmUgQWdlbnQgQnRuIENsaWNrJyxcbiAgQ2hhdEZsb2F0aW5nQnV0dG9uVmlzaWJsZSA9ICdDaGF0IEZsb2F0aW5nIEJ1dHRvbiBWaXNpYmxlJyxcbiAgQ2hhdENvbXBvbmVudFZpc2libGUgPSAnQ2hhdCBDb21wb25lbnQgVmlzaWJsZScsXG4gIENoYXRDb21wb25lbnRFeHBhbmRlZCA9ICdDaGF0IENvbXBvbmVudCBFeHBhbmRlZCcsXG4gIENoYXRDb21wb25lbnRDb2xsYXBzZWQgPSAnQ2hhdCBDb21wb25lbnQgQ29sbGFwc2VkJyxcbiAgQ2hhdFVzZXJNZXNzYWdlSW5wdXQgPSAnQ2hhdCBVc2VyIE1lc3NhZ2UgSW5wdXQnLFxuICBDaGF0U3VnZ2VzdGlvbkNsaWNrZWQgPSAnQ2hhdCBTdWdnZXN0aW9uIENsaWNrZWQnLFxuICBDaGF0QXNzaXN0YW50UmVzcG9uc2UgPSAnQ2hhdCBBc3Npc3RhbnQgUmVzcG9uc2UnLFxuICBQcm9kdWN0Q2FyZENsaWNrZWQgPSAnUHJvZHVjdCBDYXJkIENsaWNrZWQnLFxuICBQcm9kdWN0UmV2aWV3Q2FyZENsaWNrZWQgPSAnUHJvZHVjdCBSZXZpZXcgQ2FyZCBDbGlja2VkJyxcbiAgQWRkVG9DYXJ0Q2xpY2tlZCA9ICdBZGQgVG8gQ2FydCBDbGlja2VkJyxcbiAgUHJvbXB0Q2FyZENsaWNrZWQgPSAnUHJvbXB0IENhcmQgQ2xpY2tlZCcsXG4gIFN1cHBvcnRlZEV2ZW50ID0gJ1N1cHBvcnRlZCBFdmVudCcsXG4gIFNlYXJjaEJhY2tUb1Jlc3BvbnNlQ2xpY2tlZCA9ICdTZWFyY2ggQmFjayB0byBSZXNwb25zZSBDbGlja2VkJyxcbiAgUGVyZm9ybWFuY2VNZXRyaWNzID0gJ1BlcmZvcm1hbmNlIE1ldHJpY3MnLFxuICBTZWFyY2hCYXJDbGlja2VkID0gJ1NlYXJjaCBCYXIgQ2xpY2tlZCcsXG4gIE9yZGVyTG9va3VwU3RhcnRlZCA9ICdPcmRlciBMb29rdXAgU3RhcnRlZCcsXG4gIE9yZGVyTG9va3VwRm9ybVN1Ym1pdHRlZCA9ICdPcmRlciBMb29rdXAgRm9ybSBTdWJtaXR0ZWQnLFxuICBTZWFyY2hDb21wb25lbnRWaXNpYmxlID0gJ1NlYXJjaCBDb21wb25lbnQgVmlzaWJsZScsXG4gIFNlYXJjaFplcm9TdGF0ZVN1Z2dlc3Rpb25DbGlja2VkID0gJ1NlYXJjaCBaZXJvIFN0YXRlIFN1Z2dlc3Rpb24gQ2xpY2tlZCcsXG4gIFNlYXJjaElucHV0U3RhcnRlZCA9ICdTZWFyY2ggSW5wdXQgU3RhcnRlZCcsXG4gIFNlYXJjaFF1ZXJ5U3VibWl0dGVkID0gJ1NlYXJjaCBRdWVyeSBTdWJtaXR0ZWQnLFxuICBTZWFyY2hSZXN1bHRzVmlld2VkID0gJ1NlYXJjaCBSZXN1bHRzIFZpZXdlZCcsXG4gIFNlYXJjaFRpbWVUb0ZpcnN0Q2xpY2sgPSAnU2VhcmNoIFRpbWUgdG8gRmlyc3QgQ2xpY2snLFxuICBTZWFyY2haZXJvUmVzdWx0c1JhdGUgPSAnU2VhcmNoIFplcm8gUmVzdWx0cyBSYXRlJyxcbiAgU2VhcmNoRmlsdGVyQ2xpY2tlZCA9ICdTZWFyY2ggRmlsdGVyIENsaWNrZWQnLFxuICBTZWFyY2hTb3J0Q2xpY2tlZCA9ICdTZWFyY2ggU29ydCBDbGlja2VkJyxcbn1cblxuZXhwb3J0IGVudW0gRW52aXZlTWV0cmljc0V2ZW50TmFtZSB7XG4gIFdpZGdldFJlbmRlcmVkID0gJ1dpZGdldCBSZW5kZXJlZCcsXG4gIFdpZGdldEludGVyYWN0aW9uID0gJ1dpZGdldCBJbnRlcmFjdGlvbicsXG4gIENoYXRSZXF1ZXN0ID0gJ0NoYXQgUmVxdWVzdCcsXG4gIENoYXRSZXNwb25zZSA9ICdDaGF0IFJlc3BvbnNlJyxcbiAgRW52aXZlSW5pdGlhbGl6ZWQgPSAnRW52aXZlIEluaXRpYWxpemVkJyxcbiAgUGFnZVZpZXdlZCA9ICdQYWdlIFZpZXdlZCcsXG4gIFdpZGdldFRleHRSZXF1ZXN0ID0gJ1dpZGdldCBUZXh0IFJlcXVlc3QnLFxuICBXaWRnZXRUZXh0UmVzcG9uc2UgPSAnV2lkZ2V0IFRleHQgUmVzcG9uc2UnLFxuICBXaWRnZXRUZXh0Q2xpY2tlZCA9ICdXaWRnZXQgVGV4dCBDbGlja2VkJyxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBU0EsSUFBWSw0RUFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHRixJQUFZLDRFQUFMO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIn0=
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnROYW1lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9ldmVudE5hbWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXZlbnQgbmFtZSBlbnVtcyBmb3IgQW1wbGl0dWRlIHRyYWNraW5nLlxuICpcbiAqIE5PVEU6IFRoaXMgZmlsZSBleGlzdHMgc2VwYXJhdGVseSB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmN5IGlzc3Vlcy5cbiAqIFRoZSBhbXBsaXR1ZGVTZXJ2aWNlIGltcG9ydHMgZnJvbSBnYTRQcm9qZWN0aW9uU2VydmljZSwgd2hpY2ggbmVlZHMgdGhlc2UgZW51bXMuXG4gKiBCeSBrZWVwaW5nIHRoZSBlbnVtcyBpbiBhIHNlcGFyYXRlIGZpbGUsIGdhNFByb2plY3Rpb25TZXJ2aWNlIGNhbiBpbXBvcnQgdGhlbVxuICogd2l0aG91dCBjcmVhdGluZyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBhbXBsaXR1ZGVTZXJ2aWNlLlxuICovXG5cbmV4cG9ydCBlbnVtIFNwaWZmeU1ldHJpY3NFdmVudE5hbWUge1xuICBCdW5kbGVMb2FkZWQgPSAnQnVuZGxlIExvYWRlZCcsXG4gIENoYXRMaXZlQWdlbnRCdG5DbGljayA9ICdDaGF0IExpdmUgQWdlbnQgQnRuIENsaWNrJyxcbiAgQ2hhdEZsb2F0aW5nQnV0dG9uVmlzaWJsZSA9ICdDaGF0IEZsb2F0aW5nIEJ1dHRvbiBWaXNpYmxlJyxcbiAgQ2hhdENvbXBvbmVudFZpc2libGUgPSAnQ2hhdCBDb21wb25lbnQgVmlzaWJsZScsXG4gIENoYXRDb21wb25lbnRFeHBhbmRlZCA9ICdDaGF0IENvbXBvbmVudCBFeHBhbmRlZCcsXG4gIENoYXRDb21wb25lbnRDb2xsYXBzZWQgPSAnQ2hhdCBDb21wb25lbnQgQ29sbGFwc2VkJyxcbiAgQ2hhdFVzZXJNZXNzYWdlSW5wdXQgPSAnQ2hhdCBVc2VyIE1lc3NhZ2UgSW5wdXQnLFxuICBDaGF0U3VnZ2VzdGlvbkNsaWNrZWQgPSAnQ2hhdCBTdWdnZXN0aW9uIENsaWNrZWQnLFxuICBDaGF0QXNzaXN0YW50UmVzcG9uc2UgPSAnQ2hhdCBBc3Npc3RhbnQgUmVzcG9uc2UnLFxuICBQcm9kdWN0Q2FyZENsaWNrZWQgPSAnUHJvZHVjdCBDYXJkIENsaWNrZWQnLFxuICBQcm9kdWN0UmV2aWV3Q2FyZENsaWNrZWQgPSAnUHJvZHVjdCBSZXZpZXcgQ2FyZCBDbGlja2VkJyxcbiAgQWRkVG9DYXJ0Q2xpY2tlZCA9ICdBZGQgVG8gQ2FydCBDbGlja2VkJyxcbiAgUHJvbXB0Q2FyZENsaWNrZWQgPSAnUHJvbXB0IENhcmQgQ2xpY2tlZCcsXG4gIFN1cHBvcnRlZEV2ZW50ID0gJ1N1cHBvcnRlZCBFdmVudCcsXG4gIFNlYXJjaEJhY2tUb1Jlc3BvbnNlQ2xpY2tlZCA9ICdTZWFyY2ggQmFjayB0byBSZXNwb25zZSBDbGlja2VkJyxcbiAgUGVyZm9ybWFuY2VNZXRyaWNzID0gJ1BlcmZvcm1hbmNlIE1ldHJpY3MnLFxuICBTZWFyY2hCYXJDbGlja2VkID0gJ1NlYXJjaCBCYXIgQ2xpY2tlZCcsXG4gIE9yZGVyTG9va3VwU3RhcnRlZCA9ICdPcmRlciBMb29rdXAgU3RhcnRlZCcsXG4gIE9yZGVyTG9va3VwRm9ybVN1Ym1pdHRlZCA9ICdPcmRlciBMb29rdXAgRm9ybSBTdWJtaXR0ZWQnLFxuICBTZWFyY2hDb21wb25lbnRWaXNpYmxlID0gJ1NlYXJjaCBDb21wb25lbnQgVmlzaWJsZScsXG4gIFNlYXJjaFplcm9TdGF0ZVN1Z2dlc3Rpb25DbGlja2VkID0gJ1NlYXJjaCBaZXJvIFN0YXRlIFN1Z2dlc3Rpb24gQ2xpY2tlZCcsXG4gIFNlYXJjaElucHV0U3RhcnRlZCA9ICdTZWFyY2ggSW5wdXQgU3RhcnRlZCcsXG4gIFNlYXJjaFF1ZXJ5U3VibWl0dGVkID0gJ1NlYXJjaCBRdWVyeSBTdWJtaXR0ZWQnLFxuICBTZWFyY2hSZXN1bHRzVmlld2VkID0gJ1NlYXJjaCBSZXN1bHRzIFZpZXdlZCcsXG4gIFNlYXJjaFRpbWVUb0ZpcnN0Q2xpY2sgPSAnU2VhcmNoIFRpbWUgdG8gRmlyc3QgQ2xpY2snLFxuICBTZWFyY2haZXJvUmVzdWx0c1JhdGUgPSAnU2VhcmNoIFplcm8gUmVzdWx0cyBSYXRlJyxcbiAgU2VhcmNoRmlsdGVyQ2xpY2tlZCA9ICdTZWFyY2ggRmlsdGVyIENsaWNrZWQnLFxuICBTZWFyY2hTb3J0Q2xpY2tlZCA9ICdTZWFyY2ggU29ydCBDbGlja2VkJyxcbn1cblxuZXhwb3J0IGVudW0gRW52aXZlTWV0cmljc0V2ZW50TmFtZSB7XG4gIFdpZGdldFJlbmRlcmVkID0gJ1dpZGdldCBSZW5kZXJlZCcsXG4gIFdpZGdldEludGVyYWN0aW9uID0gJ1dpZGdldCBJbnRlcmFjdGlvbicsXG4gIENoYXRSZXF1ZXN0ID0gJ0NoYXQgUmVxdWVzdCcsXG4gIENoYXRSZXNwb25zZSA9ICdDaGF0IFJlc3BvbnNlJyxcbiAgRW52aXZlSW5pdGlhbGl6ZWQgPSAnRW52aXZlIEluaXRpYWxpemVkJyxcbiAgUGFnZVZpZXdlZCA9ICdQYWdlIFZpZXdlZCcsXG4gIFdpZGdldFRleHRSZXF1ZXN0ID0gJ1dpZGdldCBUZXh0IFJlcXVlc3QnLFxuICBXaWRnZXRUZXh0UmVzcG9uc2UgPSAnV2lkZ2V0IFRleHQgUmVzcG9uc2UnLFxuICBXaWRnZXRUZXh0Q2xpY2tlZCA9ICdXaWRnZXQgVGV4dCBDbGlja2VkJyxcbiAgLy8gT3BlcmF0aW9uYWwgZGlhZ25vc3RpY3MgZm9yIHdpZGdldCBsb2FkaW5nIChzZWUgdXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzKS4gQSBzaW5nbGUgZXZlbnRcbiAgLy8gd2l0aCBhIGB0eXBlYCBkaXNjcmltaW5hdG9yICh3aWRnZXRfbW91bnRlZCB8IHdpZGdldF9sb2FkX291dGNvbWUgfCB3aWRnZXRfbG9hZF9zdGFsbGVkKVxuICAvLyBzbyBlbmcgY2FuIG1lYXN1cmUgdGhlIGxheWVyZWQgbG9hZCBuZXQgYW5kLCBjcnVjaWFsbHksIHRoZSBuZWdhdGl2ZSBzcGFjZSBiZXR3ZWVuIGxheWVycy5cbiAgRGlhZ25vc3RpY3MgPSAnRGlhZ25vc3RpY3MnLFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFZLDRFQUFMO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdGLElBQVksNEVBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQSJ9
@@ -1,14 +1,11 @@
1
- const require_logger = require('../../application/logging/logger.cjs');
2
1
  const require_featureGates = require('../../application/models/featureGates.cjs');
3
2
  const require_atomStore = require('../../atoms/atomStore/atomStore.cjs');
4
3
  const require_atoms_app_index = require('../../atoms/app/index.cjs');
5
4
  const require_services_featureFlagService_index = require('../featureFlagService/index.cjs');
6
5
  const require_config_versions = require('../../types/config-versions.cjs');
7
- const require_fetchGraphQLConfig = require('./fetchGraphQLConfig.cjs');
8
6
  const require_fetchBootstrapConfig = require('./fetchBootstrapConfig.cjs');
9
7
 
10
8
  //#region src/services/enviveConfigService/enviveConfigService.ts
11
- const logger = new require_logger.default("enviveConfigService");
12
9
  const CONFIG_CACHE_TTL_MS = 300 * 1e3;
13
10
  var EnviveConfigService = class {
14
11
  constructor({ baseUrl, apiKey, userId, namespace, source, env, contextSource }) {
@@ -60,41 +57,30 @@ var EnviveConfigService = class {
60
57
  return this.response;
61
58
  }
62
59
  const gateNames = Object.values(require_featureGates.FeatureGates).map((featureGate) => featureGate.toString());
63
- const widgetConfig = await require_fetchGraphQLConfig.fetchUnifiedGraphQLConfig(this.baseUrl, this.apiKey, this.userId, gateNames, this.source);
64
- this.response = await this.maybeUpgradeToBootstrap(widgetConfig, gateNames);
65
- this.writeCachedConfig(this.response);
66
- return this.response;
67
- }
68
- async maybeUpgradeToBootstrap(widgetConfig, gateNames) {
69
- if (this.env === void 0 || this.contextSource === void 0) return widgetConfig;
70
- const featureFlagService = new require_services_featureFlagService_index.FeatureFlagService(widgetConfig.gates);
71
- if (!featureFlagService.isFeatureGateEnabled(require_featureGates.FeatureGates.UseUnifiedConfig)) return widgetConfig;
60
+ const wantsUrlResolving = this.env !== void 0 && this.contextSource !== void 0;
72
61
  const cleansedUrl = window.location.href.toLowerCase().trim();
73
- try {
74
- const { config, urlResolving } = await require_fetchBootstrapConfig.fetchBootstrapConfig({
75
- baseUrl: this.baseUrl,
76
- apiKey: this.apiKey,
77
- userId: this.userId,
78
- source: this.source,
79
- namespace: this.namespace,
80
- gateNames,
62
+ const { config, urlResolving } = await require_fetchBootstrapConfig.fetchBootstrapConfig({
63
+ baseUrl: this.baseUrl,
64
+ apiKey: this.apiKey,
65
+ userId: this.userId,
66
+ source: this.source,
67
+ namespace: this.namespace,
68
+ gateNames,
69
+ chatId: require_atomStore.getAtomStore().get(require_atoms_app_index.chatIdAtom),
70
+ ...wantsUrlResolving ? {
81
71
  url: cleansedUrl,
82
- orgId: widgetConfig.org.org.id,
83
- orgShortName: widgetConfig.org.org.short_name,
84
72
  contextSource: this.contextSource,
85
73
  env: this.env,
86
- featureGates: featureFlagService.getFeatureFlags(),
87
- chatId: require_atomStore.getAtomStore().get(require_atoms_app_index.chatIdAtom)
88
- });
89
- this.bootstrapUrlResolving = urlResolving ? {
90
- url: cleansedUrl,
91
- response: urlResolving
92
- } : null;
93
- return config;
94
- } catch (err) {
95
- logger.logError("getEnviveConfig | bootstrap upgrade failed, using getWidgetConfig", err);
96
- return widgetConfig;
97
- }
74
+ featureGates: require_services_featureFlagService_index.FeatureFlagService.getFeatureFlagOverrides()
75
+ } : {}
76
+ });
77
+ this.bootstrapUrlResolving = urlResolving ? {
78
+ url: cleansedUrl,
79
+ response: urlResolving
80
+ } : null;
81
+ this.response = config;
82
+ this.writeCachedConfig(this.response);
83
+ return this.response;
98
84
  }
99
85
  };
100
86
  /**
@@ -116,4 +102,4 @@ var MockEnviveConfigService = class {
116
102
  //#endregion
117
103
  exports.EnviveConfigService = EnviveConfigService;
118
104
  exports.MockEnviveConfigService = MockEnviveConfigService;
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJjb25maWdWZXJzaW9uT3ZlcnJpZGUiLCJlbnRyeTogQ2FjaGVkQ29uZmlnRW50cnkiLCJGZWF0dXJlR2F0ZXMiLCJmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIiwiRmVhdHVyZUZsYWdTZXJ2aWNlIiwiZmV0Y2hCb290c3RyYXBDb25maWciLCJnZXRBdG9tU3RvcmUiLCJjaGF0SWRBdG9tIiwibW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2Vudml2ZUNvbmZpZ1NlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgeyBGZWF0dXJlR2F0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZmVhdHVyZUZsYWdTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB0eXBlIHsgVXJsUmVzb2x2ZXJSZXNwb25zZSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQgeyBnZXRBdG9tU3RvcmUgfSBmcm9tICdzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZSc7XG5pbXBvcnQgeyBjaGF0SWRBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIH0gZnJvbSAnLi9mZXRjaEdyYXBoUUxDb25maWcnO1xuaW1wb3J0IHsgZmV0Y2hCb290c3RyYXBDb25maWcgfSBmcm9tICcuL2ZldGNoQm9vdHN0cmFwQ29uZmlnJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZW52aXZlQ29uZmlnU2VydmljZScpO1xuXG4vLyBTaG9ydC1saXZlZCBzbyBjb25maWcgY2hhbmdlcyAoZ2F0ZXMsIGV4cGVyaW1lbnRzKSBzdGlsbCBwcm9wYWdhdGUgd2l0aGluXG4vLyBhIHNlc3Npb24sIHdoaWxlIHNwYXJpbmcgZXZlcnkgcGFnZSBuYXZpZ2F0aW9uIGZyb20gcmUtZmV0Y2hpbmcgb3JnXG4vLyBjb25maWcgKyBHcmFwaFFMIGNvbmZpZywgYm90aCBvZiB3aGljaCBzaXQgb24gdGhlIGNyaXRpY2FsIHBhdGggYmVmb3JlXG4vLyBmaXJzdCBwYWludC5cbmNvbnN0IENPTkZJR19DQUNIRV9UVExfTVMgPSA1ICogNjAgKiAxMDAwO1xuXG50eXBlIENhY2hlZENvbmZpZ0VudHJ5ID0ge1xuICB2YWx1ZTogRW52aXZlU2VydmljZUNvbmZpZztcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG59O1xuXG50eXBlIEVudml2ZUNvbmZpZ1NlcnZpY2VQcm9wcyA9IHtcbiAgYmFzZVVybDogc3RyaW5nO1xuICBhcGlLZXk6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgLy8gVGhlIHVybF9yZXNvbHZpbmcgY29udGV4dCBiaXRzIHRoZSBob29rcyBsYXllciBjYW4ndCBkZXJpdmUgaXRzZWxmLCBzdXBwbGllZFxuICAvLyBieSB0aGUgaW5qZWN0aW9uIGJ1bmRsZSBzbyBnZXRFbnZpdmVDb25maWcgY2FuIGNhbGwgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIG9uXG4gIC8vIHRoZSB1c2VfdW5pZmllZF9jb25maWcgZ2F0ZS1PTiBwYXRoLiBPcHRpb25hbDogd2hlbiBhYnNlbnQgKG1vY2tzLCBub24tYnVuZGxlXG4gIC8vIGNhbGxlcnMpIHRoZSBib290c3RyYXAgYnJhbmNoIGlzIHNraXBwZWQgYW5kIGdldFdpZGdldENvbmZpZyBzdGFuZHMuXG4gIGVudj86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gIG9yZzoge1xuICAgIG9yZzoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIHNob3J0X25hbWU6IHN0cmluZztcbiAgICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICAgICAgZG9tYWluOiBzdHJpbmc7XG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBnYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbiAgLy8gVGhlIHVzZXIncyBTdGF0c2lnIGV4cGVyaW1lbnQtbGF5ZXIgYXNzaWdubWVudHMsIGZyb20gdGhlIHdpZGdldCBjb25maWcnc1xuICAvLyByZXNvbHZlZCBleHBlcmltZW50cyDigJQgZ2V0V2lkZ2V0Q29uZmlnLCBvciBib290c3RyYXAncyBgd2lkZ2V0X2NvbmZpZ2BcbiAgLy8gKGJvdGggdW5nYXRlZCBieSB1c2VfdW5pZmllZF9jb25maWc7IGVtcHR5IG9ubHkgdW5kZXIgYSB2ZXJzaW9uIHBpbikuXG4gIC8vIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgdGhlc2UgdG8gZW5yaWNoIGV2ZW50cyB3aXRoIGBleHBlcmltZW50Lntuc30uKmAgcHJvcHMuXG4gIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAvLyBvcmdDb25maWcucmVzb2x1dGlvbiBpcyBwb3B1bGF0ZWQgb25seSBvbiB0aGUgdW5pZmllZCBwYXRoIChzb3VyY2VkIGZyb21cbiAgLy8gZ2V0V2lkZ2V0Q29uZmlnLnJlc29sdXRpb24sIG5vdCAvdjEvb3JnL2NvbmZpZy5yZXNvbHV0aW9uKSBzbyB0aGUgdmVyc2lvblxuICAvLyB0aHJlYWRlZCBpbnRvIGluZmVyZW5jZSByZXF1ZXN0cyBtYXRjaGVzIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlXG4gIC8vIHJlbmRlcmVkIHdpZGdldHMuXG4gIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG4gIC8vIE5COiBgdGFrZUJvb3RzdHJhcFVybFJlc29sdmluZ2AgaXMgaW50ZW50aW9uYWxseSBOT1Qgb24gdGhpcyBpbnRlcmZhY2UuIEl0J3NcbiAgLy8gYSBib290c3RyYXAtb25seSBkZXRhaWwgY29uc3VtZWQgc29sZWx5IGJ5IHRoZSBpbmplY3Rpb24gYnVuZGxlIHZpYSB0aGVcbiAgLy8gY29uY3JldGUgRW52aXZlQ29uZmlnU2VydmljZTsga2VlcGluZyBpdCBvZmYgdGhlIHB1YmxpYyBESSBjb250cmFjdCBhdm9pZHMgYVxuICAvLyBicmVha2luZyBjaGFuZ2UgZm9yIGV4dGVybmFsIGNvbnN1bWVycyB0aGF0IHN1cHBseSB0aGVpciBvd24gY29uZmlnIHNlcnZpY2VcbiAgLy8gKEVudml2ZVByb3ZpZGVyIG9ubHkgZXZlciBjYWxscyBnZXRFbnZpdmVDb25maWcgLyBiYXNlVXJsIC8gYXBpS2V5KS5cbn1cblxuLy8gVGhlIGJvb3RzdHJhcCB1cmxfcmVzb2x2aW5nIHBheWxvYWQgcGx1cyB0aGUgVVJMIGl0IHdhcyByZXNvbHZlZCBmb3IsIHNvIHRoZVxuLy8gd2FybS11cCBjYW4gdmVyaWZ5IHRoZSBVUkwgc3RpbGwgbWF0Y2hlcyBiZWZvcmUgc2VlZGluZyAoc2VlIEYxOiBhIFNQQSBuYXZcbi8vIGR1cmluZyB0aGUgYm9vdHN0cmFwIHJvdW5kIHRyaXAgbXVzdCBub3QgY2FjaGUgVVJMIEEncyByZXN1bHQgdW5kZXIgVVJMIEIpLlxudHlwZSBCb290c3RyYXBVcmxSZXNvbHZpbmcgPSB7IHVybDogc3RyaW5nOyByZXNwb25zZTogVXJsUmVzb2x2ZXJSZXNwb25zZSB9O1xuXG5leHBvcnQgY2xhc3MgRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VySWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IG5hbWVzcGFjZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbnY/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U291cmNlPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVzcG9uc2U6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGJvb3RzdHJhcFVybFJlc29sdmluZzogQm9vdHN0cmFwVXJsUmVzb2x2aW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGJhc2VVcmwsXG4gICAgYXBpS2V5LFxuICAgIHVzZXJJZCxcbiAgICBuYW1lc3BhY2UsXG4gICAgc291cmNlLFxuICAgIGVudixcbiAgICBjb250ZXh0U291cmNlLFxuICB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gYXBpS2V5O1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgIHRoaXMuZW52ID0gZW52O1xuICAgIHRoaXMuY29udGV4dFNvdXJjZSA9IGNvbnRleHRTb3VyY2U7XG4gIH1cblxuICAvLyBIYW5kcyBvZmYgKG9uY2UpIHRoZSB1cmxfcmVzb2x2aW5nIHBheWxvYWQgdGhhdCAvdjEvc2Vzc2lvbi9ib290c3RyYXBcbiAgLy8gcmV0dXJuZWQgYWxvbmdzaWRlIHRoZSBjb25maWcg4oCUIHBhaXJlZCB3aXRoIHRoZSBVUkwgaXQgd2FzIHJlc29sdmVkIGZvciDigJQgc29cbiAgLy8gdGhlIHdhcm0tdXAgc2VlZHMgdXJsUmVzb2x2ZXJBdG9tIHdpdGggaXQgaW5zdGVhZCBvZiBmaXJpbmcgYSBzZXBhcmF0ZVxuICAvLyAvdjEvdXJsX3Jlc29sdmluZy4gbnVsbCBvbiB0aGUgZ2V0V2lkZ2V0Q29uZmlnIC8gY2FjaGVkIHBhdGguXG4gIHRha2VCb290c3RyYXBVcmxSZXNvbHZpbmcoKTogQm9vdHN0cmFwVXJsUmVzb2x2aW5nIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmJvb3RzdHJhcFVybFJlc29sdmluZztcbiAgICB0aGlzLmJvb3RzdHJhcFVybFJlc29sdmluZyA9IG51bGw7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWNoZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZW52aXZlLWNvbmZpZy1jYWNoZToke3RoaXMuYmFzZVVybH06JHt0aGlzLmFwaUtleX06JHt0aGlzLnVzZXJJZH06JHt0aGlzLm5hbWVzcGFjZX06JHt0aGlzLnNvdXJjZX1gO1xuICB9XG5cbiAgLy8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgLyBgc3BpZmZ5X2NvbmZpZ192ZXJzaW9uYCBwaW4gYSBzcGVjaWZpYyBjb25maWdcbiAgLy8gdmVyc2lvbiBmb3IgZGVidWdnaW5nL3JvbGxiYWNrLiBBbnkgdXNlIG9mIHRoYXQgb3ZlcnJpZGUgbXVzdCBhbHdheXNcbiAgLy8gYnlwYXNzIHRoZSBjYWNoZSBiZWxvdyDigJQgYm90aCByZWFkaW5nIGEgc3RhbGUgZW50cnkgYW5kIHdyaXRpbmcgb25lXG4gIC8vIHVuZGVyIHRoZSBzaGFyZWQga2V5IHdvdWxkIGRlZmVhdCB0aGUgb3ZlcnJpZGUncyBwdXJwb3NlLlxuICBwcml2YXRlIHJlYWRDYWNoZWRDb25maWcoKTogRW52aXZlU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmIChjb25maWdWZXJzaW9uT3ZlcnJpZGUoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXcgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0Q2FjaGVLZXkoKSk7XG4gICAgICBpZiAoIXJhdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVudHJ5ID0gSlNPTi5wYXJzZShyYXcpIGFzIENhY2hlZENvbmZpZ0VudHJ5O1xuICAgICAgaWYgKERhdGUubm93KCkgPj0gZW50cnkuZXhwaXJlc0F0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUNhY2hlZENvbmZpZyh2YWx1ZTogRW52aXZlU2VydmljZUNvbmZpZyk6IHZvaWQge1xuICAgIGlmIChjb25maWdWZXJzaW9uT3ZlcnJpZGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZW50cnk6IENhY2hlZENvbmZpZ0VudHJ5ID0geyB2YWx1ZSwgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQ09ORklHX0NBQ0hFX1RUTF9NUyB9O1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldENhY2hlS2V5KCksIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTdG9yYWdlIGRpc2FibGVkLCBmdWxsLCBvciB1bmF2YWlsYWJsZSAocHJpdmF0ZSBicm93c2luZywgZXRjLikgLVxuICAgICAgLy8gZmFpbCBvcGVuIGFuZCBsZXQgdGhlIG5leHQgY2FsbCByZS1mZXRjaCBpbnN0ZWFkIG9mIGNhY2hpbmcuXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4ge1xuICAgIGlmICh0aGlzLnJlc3BvbnNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnJlYWRDYWNoZWRDb25maWcoKTtcbiAgICBpZiAoY2FjaGVkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJlc3BvbnNlID0gY2FjaGVkO1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLy8gZ2V0V2lkZ2V0Q29uZmlnIGlzIHRoZSBzaW5nbGUgc291cmNlIG9mIHNlc3Npb24gY29uZmlnOiBpdCByZXR1cm5zIG9yZ1xuICAgIC8vIGlkZW50aXR5ICsgZmVhdHVyZSBnYXRlcyArIGV4cGVyaW1lbnQgYXNzaWdubWVudHMgKHdoaWNoIHVzZWQgdG8gYmUgYVxuICAgIC8vIHNlcGFyYXRlIEdFVCAvdjEvb3JnL2NvbmZpZyBjYWxsKSBhbG9uZ3NpZGUgcHJvZHVjdHNDb25maWcgKyB0aGVcbiAgICAvLyByZXNvbHV0aW9uIG1ldGFkYXRhIHRocmVhZGVkIGludG8gZG93bnN0cmVhbSBpbmZlcmVuY2UuIGBnYXRlTmFtZXNgIGlzIHRoZVxuICAgIC8vIGxpc3Qgb2YgZ2F0ZXMgdGhlIGFwcCBjaGVja3MsIHNvIHRoZSByZXNvbHZlciBldmFsdWF0ZXMgYW5kIHJldHVybnMgdGhlbS5cbiAgICBjb25zdCBnYXRlTmFtZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKGZlYXR1cmVHYXRlID0+IGZlYXR1cmVHYXRlLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gYXdhaXQgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyhcbiAgICAgIHRoaXMuYmFzZVVybCxcbiAgICAgIHRoaXMuYXBpS2V5LFxuICAgICAgdGhpcy51c2VySWQsXG4gICAgICBnYXRlTmFtZXMsXG4gICAgICB0aGlzLnNvdXJjZSxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNwb25zZSA9IGF3YWl0IHRoaXMubWF5YmVVcGdyYWRlVG9Cb290c3RyYXAod2lkZ2V0Q29uZmlnLCBnYXRlTmFtZXMpO1xuICAgIHRoaXMud3JpdGVDYWNoZWRDb25maWcodGhpcy5yZXNwb25zZSk7XG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gIH1cblxuICAvLyBUaGUgdW5pZmllZC1jb25maWcgcmFtcCAoYHVzZV91bmlmaWVkX2NvbmZpZ2AgU3RhdHNpZyBnYXRlKS4gV2hlbiB0aGUgZ2F0ZVxuICAvLyBpcyBPTiBmb3IgdGhpcyB1c2VyLCBzd2FwIHRoZSBnZXRXaWRnZXRDb25maWcgcmVzdWx0IGZvciBNYXR0J3NcbiAgLy8gL3YxL3Nlc3Npb24vYm9vdHN0cmFwIOKAlCB0aGUgc2FtZSBjb25maWcgUExVUyB0aGUgaW5pdGlhbCB1cmxfcmVzb2x2aW5nIGluXG4gIC8vIE9ORSByb3VuZCB0cmlwICh0aGUgY29uc29saWRhdGlvbiB0aGlzIG1pZ3JhdGlvbiBpcyBhYm91dCkuIFRoZSBnYXRlIGlzIHJlYWRcbiAgLy8gb2ZmIHRoZSBnZXRXaWRnZXRDb25maWcgcmVzcG9uc2UganVzdCBmZXRjaGVkLCBiZWNhdXNlIHRoZSBGRSBoYXMgbm8gU3RhdHNpZ1xuICAvLyBTREs6IHB5bW9ubyBldmFsdWF0ZXMgdGhlIGdhdGUgc2VydmVyLXNpZGUgYW5kIHJldHVybnMgaXQuIGBGZWF0dXJlRmxhZ1NlcnZpY2VgXG4gIC8vIGFsc28gaG9ub3JzIGEgYD91c2VfdW5pZmllZF9jb25maWc9dHJ1ZWAgb3ZlcnJpZGUsIHNvIHRoZSBib290c3RyYXAgcGF0aCBpc1xuICAvLyB0ZXN0YWJsZSBiZWZvcmUgdGhlIGdhdGUgcmFtcHMuXG4gIC8vXG4gIC8vIE9ubHkgcnVucyBvbiB0aGUgY2FjaGUtbWlzcyBwYXRoIChib290c3RyYXAncyBjb25maWcgaXMgdGhlbiBjYWNoZWQgbGlrZSBhbnlcbiAgLy8gb3RoZXIpLCBzbyBhIGNhY2hlZCBsb2FkIG5ldmVyIHJlLWZldGNoZXMuIE5lZWRzIGVudiArIGNvbnRleHRTb3VyY2UgZm9yIHRoZVxuICAvLyB1cmxfcmVzb2x2aW5nIGNvbnRleHQg4oCUIGFic2VudCBmb3IgbW9ja3MgLyBub24tYnVuZGxlIGNhbGxlcnMsIHdoZXJlIHRoZVxuICAvLyBicmFuY2ggaXMgc2tpcHBlZC4gQSBib290c3RyYXAgZmFpbHVyZSBmYWxscyBiYWNrIHRvIHRoZSBnZXRXaWRnZXRDb25maWdcbiAgLy8gY29uZmlnIGFscmVhZHkgaW4gaGFuZDogYSBib290c3RyYXAgcHJvYmxlbSBkZWdyYWRlcyB0byB0aGUgcHJvdmVuIHBhdGhcbiAgLy8gaW5zdGVhZCBvZiBhYm9ydGluZyBpbmplY3Rpb24uIEF0IDEwMCUgdGhlIGdldFdpZGdldENvbmZpZyBjYWxsIGFib3ZlIGlzXG4gIC8vIGRyb3BwZWQgYW5kIGJvb3RzdHJhcCBiZWNvbWVzIHRoZSBzb2xlIGNvbmZpZyBjYWxsIChzdGVwIDgpLlxuICBwcml2YXRlIGFzeW5jIG1heWJlVXBncmFkZVRvQm9vdHN0cmFwKFxuICAgIHdpZGdldENvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyxcbiAgICBnYXRlTmFtZXM6IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICBpZiAodGhpcy5lbnYgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmNvbnRleHRTb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHdpZGdldENvbmZpZztcbiAgICB9XG4gICAgLy8gQnVpbHQgb25jZTogcmVhZHMgdGhlIGdhdGUgKG92ZXJyaWRlLWF3YXJlKSBBTkQgc3VwcGxpZXMgdGhlIG92ZXJyaWRlLWF3YXJlXG4gICAgLy8gZ2F0ZSBtYXAgYm9vdHN0cmFwJ3MgdXJsX3Jlc29sdmluZyBuZWVkcyAobWF0Y2hlcyB0aGUgbGVnYWN5IHJlc29sdmVVcmwgcGF0aCkuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gbmV3IEZlYXR1cmVGbGFnU2VydmljZSh3aWRnZXRDb25maWcuZ2F0ZXMpO1xuICAgIGlmICghZmVhdHVyZUZsYWdTZXJ2aWNlLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Vc2VVbmlmaWVkQ29uZmlnKSkge1xuICAgICAgcmV0dXJuIHdpZGdldENvbmZpZztcbiAgICB9XG5cbiAgICAvLyBDYXB0dXJlZCBvbmNlIGFuZCByZXVzZWQgZm9yIGJvdGggdGhlIGJvb3RzdHJhcCByZXF1ZXN0IGFuZCB0aGUgc3Rhc2gsIHNvXG4gICAgLy8gdGhlIFVSTCBjYXJyaWVkIHRvIHRoZSB3YXJtLXVwIGlzIHByb3ZhYmx5IHRoZSBvbmUgYm9vdHN0cmFwIHJlc29sdmVkLiBUaGVcbiAgICAvLyB3YXJtLXVwIG9ubHkgc2VlZHMgaXQgaWYgdGhpcyBzdGlsbCBtYXRjaGVzIHRoZSBjdXJyZW50IFVSTCAoYSBTUEEgbmF2XG4gICAgLy8gZHVyaW5nIHRoZSByb3VuZCB0cmlwIHdvdWxkIG90aGVyd2lzZSBjYWNoZSB0aGlzIHJlc3VsdCB1bmRlciBhIGxhdGVyIFVSTCkuXG4gICAgLy8gU2FtZSBjbGVhbnNpbmcgYXMgd2FybVVybFJlc29sdmVyIHNvIHRoZSB1cmxSZXNvbHZlckF0b20ga2V5IGxpbmVzIHVwLlxuICAgIGNvbnN0IGNsZWFuc2VkVXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgY29uZmlnLCB1cmxSZXNvbHZpbmcgfSA9IGF3YWl0IGZldGNoQm9vdHN0cmFwQ29uZmlnKHtcbiAgICAgICAgYmFzZVVybDogdGhpcy5iYXNlVXJsLFxuICAgICAgICBhcGlLZXk6IHRoaXMuYXBpS2V5LFxuICAgICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxuICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgICAvLyBTY29wZSBvcmdfY29uZmlnLmNvbmZpZ3MgdG8gdGhpcyBuYW1lc3BhY2Ugc28gYm9vdHN0cmFwIGRvZXNuJ3QgcmV0dXJuXG4gICAgICAgIC8vIGludGVybmFsLW9ubHkgb3JnIGNvbmZpZ3MgdG8gdGhlIGJyb3dzZXIgKG1hdGNoZXMgdGhlIGxlZ2FjeSAvdjEvb3JnL2NvbmZpZykuXG4gICAgICAgIG5hbWVzcGFjZTogdGhpcy5uYW1lc3BhY2UsXG4gICAgICAgIGdhdGVOYW1lcyxcbiAgICAgICAgdXJsOiBjbGVhbnNlZFVybCxcbiAgICAgICAgb3JnSWQ6IHdpZGdldENvbmZpZy5vcmcub3JnLmlkLFxuICAgICAgICBvcmdTaG9ydE5hbWU6IHdpZGdldENvbmZpZy5vcmcub3JnLnNob3J0X25hbWUsXG4gICAgICAgIGNvbnRleHRTb3VyY2U6IHRoaXMuY29udGV4dFNvdXJjZSxcbiAgICAgICAgZW52OiB0aGlzLmVudixcbiAgICAgICAgZmVhdHVyZUdhdGVzOiBmZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdzKCksXG4gICAgICAgIC8vIFRoZSBwZXJzaXN0ZW50IGNoYXQgc2Vzc2lvbiBpZCAoc2FtZSBzb3VyY2UgcmVzb2x2ZVVybCByZWFkcykgc29cbiAgICAgICAgLy8gYm9vdHN0cmFwJ3MgdXJsX3Jlc29sdmluZyBjYXJyaWVzIGl0IGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgICBjaGF0SWQ6IGdldEF0b21TdG9yZSgpLmdldChjaGF0SWRBdG9tKSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5ib290c3RyYXBVcmxSZXNvbHZpbmcgPSB1cmxSZXNvbHZpbmdcbiAgICAgICAgPyB7IHVybDogY2xlYW5zZWRVcmwsIHJlc3BvbnNlOiB1cmxSZXNvbHZpbmcgfVxuICAgICAgICA6IG51bGw7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdnZXRFbnZpdmVDb25maWcgfCBib290c3RyYXAgdXBncmFkZSBmYWlsZWQsIHVzaW5nIGdldFdpZGdldENvbmZpZycsIGVycik7XG4gICAgICByZXR1cm4gd2lkZ2V0Q29uZmlnO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgc3RhdGljIG1vY2sgZGF0YSBmcm9tIGl0cyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuIFBhc3NlcyBlbXB0eSBiYXNlVXJsL2FwaUtleVxuICogc28gYW55IGNvZGUgY2hlY2tpbmcgaXNSZWFkeSBkb2VzIG5vdCBmaXJlIHJlYWwgbmV0d29yayByZXF1ZXN0cy4gVGhlIG9yZ0NvbmZpZyBmaWVsZFxuICogY292ZXJzIGNvbG9ycywgZnJvbnRlbmRDb25maWcsIGFuZCBwYWdlL3dpZGdldC9tb3VudGluZyBjb25maWdzIHdpdGhvdXQgYW55IG5ldHdvcmsgY2FsbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2NrRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZykge31cblxuICBhc3luYyBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMubW9ja0NvbmZpZztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBWUEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLHNCQUFzQjtBQU1oRCxNQUFNLHNCQUFzQixNQUFTO0FBOERyQyxJQUFhLHNCQUFiLE1BQWlFO0NBbUIvRCxZQUFZLEVBQ1YsU0FDQSxRQUNBLFFBQ0EsV0FDQSxRQUNBLEtBQ0EsaUJBQzJCO2tCQVprQjsrQkFFZTtBQVc1RCxPQUFLLFVBQVU7QUFDZixPQUFLLFNBQVM7QUFDZCxPQUFLLFNBQVM7QUFDZCxPQUFLLFlBQVk7QUFDakIsT0FBSyxTQUFTO0FBQ2QsT0FBSyxNQUFNO0FBQ1gsT0FBSyxnQkFBZ0I7O0NBT3ZCLDRCQUEwRDtFQUN4RCxNQUFNLFFBQVEsS0FBSztBQUNuQixPQUFLLHdCQUF3QjtBQUM3QixTQUFPOztDQUdULEFBQVEsY0FBc0I7QUFDNUIsU0FBTyx1QkFBdUIsS0FBSyxRQUFRLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxVQUFVLEdBQUcsS0FBSzs7Q0FPckcsQUFBUSxtQkFBK0M7QUFDckQsTUFBSUMsK0NBQXVCLENBQ3pCLFFBQU87QUFFVCxNQUFJO0dBQ0YsTUFBTSxNQUFNLGVBQWUsUUFBUSxLQUFLLGFBQWEsQ0FBQztBQUN0RCxPQUFJLENBQUMsSUFDSCxRQUFPO0dBRVQsTUFBTSxRQUFRLEtBQUssTUFBTSxJQUFJO0FBQzdCLE9BQUksS0FBSyxLQUFLLElBQUksTUFBTSxVQUN0QixRQUFPO0FBRVQsVUFBTyxNQUFNO1VBQ1A7QUFDTixVQUFPOzs7Q0FJWCxBQUFRLGtCQUFrQixPQUFrQztBQUMxRCxNQUFJQSwrQ0FBdUIsQ0FDekI7QUFFRixNQUFJO0dBQ0YsTUFBTUMsUUFBMkI7SUFBRTtJQUFPLFdBQVcsS0FBSyxLQUFLLEdBQUc7SUFBcUI7QUFDdkYsa0JBQWUsUUFBUSxLQUFLLGFBQWEsRUFBRSxLQUFLLFVBQVUsTUFBTSxDQUFDO1VBQzNEOztDQU1WLE1BQU0sa0JBQWdEO0FBQ3BELE1BQUksS0FBSyxhQUFhLEtBQ3BCLFFBQU8sS0FBSztFQUdkLE1BQU0sU0FBUyxLQUFLLGtCQUFrQjtBQUN0QyxNQUFJLFdBQVcsTUFBTTtBQUNuQixRQUFLLFdBQVc7QUFDaEIsVUFBTyxLQUFLOztFQVFkLE1BQU0sWUFBWSxPQUFPLE9BQU9DLGtDQUFhLENBQUMsS0FBSSxnQkFBZSxZQUFZLFVBQVUsQ0FBQztFQUV4RixNQUFNLGVBQWUsTUFBTUMscURBQ3pCLEtBQUssU0FDTCxLQUFLLFFBQ0wsS0FBSyxRQUNMLFdBQ0EsS0FBSyxPQUNOO0FBRUQsT0FBSyxXQUFXLE1BQU0sS0FBSyx3QkFBd0IsY0FBYyxVQUFVO0FBQzNFLE9BQUssa0JBQWtCLEtBQUssU0FBUztBQUNyQyxTQUFPLEtBQUs7O0NBbUJkLE1BQWMsd0JBQ1osY0FDQSxXQUM4QjtBQUM5QixNQUFJLEtBQUssUUFBUSxVQUFhLEtBQUssa0JBQWtCLE9BQ25ELFFBQU87RUFJVCxNQUFNLHFCQUFxQixJQUFJQyw2REFBbUIsYUFBYSxNQUFNO0FBQ3JFLE1BQUksQ0FBQyxtQkFBbUIscUJBQXFCRixrQ0FBYSxpQkFBaUIsQ0FDekUsUUFBTztFQVFULE1BQU0sY0FBYyxPQUFPLFNBQVMsS0FBSyxhQUFhLENBQUMsTUFBTTtBQUM3RCxNQUFJO0dBQ0YsTUFBTSxFQUFFLFFBQVEsaUJBQWlCLE1BQU1HLGtEQUFxQjtJQUMxRCxTQUFTLEtBQUs7SUFDZCxRQUFRLEtBQUs7SUFDYixRQUFRLEtBQUs7SUFDYixRQUFRLEtBQUs7SUFHYixXQUFXLEtBQUs7SUFDaEI7SUFDQSxLQUFLO0lBQ0wsT0FBTyxhQUFhLElBQUksSUFBSTtJQUM1QixjQUFjLGFBQWEsSUFBSSxJQUFJO0lBQ25DLGVBQWUsS0FBSztJQUNwQixLQUFLLEtBQUs7SUFDVixjQUFjLG1CQUFtQixpQkFBaUI7SUFHbEQsUUFBUUMsZ0NBQWMsQ0FBQyxJQUFJQyxtQ0FBVztJQUN2QyxDQUFDO0FBQ0YsUUFBSyx3QkFBd0IsZUFDekI7SUFBRSxLQUFLO0lBQWEsVUFBVTtJQUFjLEdBQzVDO0FBQ0osVUFBTztXQUNBLEtBQUs7QUFDWixVQUFPLFNBQVMscUVBQXFFLElBQUk7QUFDekYsVUFBTzs7Ozs7Ozs7O0FBVWIsSUFBYSwwQkFBYixNQUFxRTtDQUtuRSxZQUFZLEFBQWlCQyxZQUFpQztFQUFqQztpQkFKSztnQkFFRDs7Q0FJakMsTUFBTSxrQkFBZ0Q7QUFDcEQsU0FBTyxLQUFLIn0=
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5janMiLCJuYW1lcyI6WyJjb25maWdWZXJzaW9uT3ZlcnJpZGUiLCJlbnRyeTogQ2FjaGVkQ29uZmlnRW50cnkiLCJGZWF0dXJlR2F0ZXMiLCJmZXRjaEJvb3RzdHJhcENvbmZpZyIsImdldEF0b21TdG9yZSIsImNoYXRJZEF0b20iLCJGZWF0dXJlRmxhZ1NlcnZpY2UiLCJtb2NrQ29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Vudml2ZUNvbmZpZ1NlcnZpY2UvZW52aXZlQ29uZmlnU2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudCwgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9mZWF0dXJlRmxhZ1NlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7IGdldEF0b21TdG9yZSB9IGZyb20gJ3NyYy9hdG9tcy9hdG9tU3RvcmUvYXRvbVN0b3JlJztcbmltcG9ydCB7IGNoYXRJZEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IGZldGNoQm9vdHN0cmFwQ29uZmlnIH0gZnJvbSAnLi9mZXRjaEJvb3RzdHJhcENvbmZpZyc7XG5cbi8vIFNob3J0LWxpdmVkIHNvIGNvbmZpZyBjaGFuZ2VzIChnYXRlcywgZXhwZXJpbWVudHMpIHN0aWxsIHByb3BhZ2F0ZSB3aXRoaW5cbi8vIGEgc2Vzc2lvbiwgd2hpbGUgc3BhcmluZyBldmVyeSBwYWdlIG5hdmlnYXRpb24gZnJvbSByZS1mZXRjaGluZyBvcmdcbi8vIGNvbmZpZyArIEdyYXBoUUwgY29uZmlnLCBib3RoIG9mIHdoaWNoIHNpdCBvbiB0aGUgY3JpdGljYWwgcGF0aCBiZWZvcmVcbi8vIGZpcnN0IHBhaW50LlxuY29uc3QgQ09ORklHX0NBQ0hFX1RUTF9NUyA9IDUgKiA2MCAqIDEwMDA7XG5cbnR5cGUgQ2FjaGVkQ29uZmlnRW50cnkgPSB7XG4gIHZhbHVlOiBFbnZpdmVTZXJ2aWNlQ29uZmlnO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbn07XG5cbnR5cGUgRW52aXZlQ29uZmlnU2VydmljZVByb3BzID0ge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICAvLyBUaGUgdXJsX3Jlc29sdmluZyBjb250ZXh0IGJpdHMgdGhlIGhvb2tzIGxheWVyIGNhbid0IGRlcml2ZSBpdHNlbGYsIHN1cHBsaWVkXG4gIC8vIGJ5IHRoZSBpbmplY3Rpb24gYnVuZGxlIHNvIGdldEVudml2ZUNvbmZpZyBjYW4gcmVxdWVzdCBib290c3RyYXAnc1xuICAvLyB1cmxfcmVzb2x2aW5nIGJyYW5jaC4gT3B0aW9uYWw6IHdoZW4gYWJzZW50IChtb2Nrcywgb3IgYSBkaXNhYmxlZCBzZXNzaW9uKVxuICAvLyBib290c3RyYXAgaXMgc3RpbGwgY2FsbGVkIGZvciBjb25maWcsIGp1c3Qgd2l0aG91dCB0aGUgdXJsX3Jlc29sdmluZyBicmFuY2guXG4gIGVudj86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gIG9yZzoge1xuICAgIG9yZzoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIHNob3J0X25hbWU6IHN0cmluZztcbiAgICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICAgICAgZG9tYWluOiBzdHJpbmc7XG4gICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBnYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbiAgLy8gVGhlIHVzZXIncyBTdGF0c2lnIGV4cGVyaW1lbnQtbGF5ZXIgYXNzaWdubWVudHMsIGZyb20gdGhlIHdpZGdldCBjb25maWcnc1xuICAvLyByZXNvbHZlZCBleHBlcmltZW50cyDigJQgZ2V0V2lkZ2V0Q29uZmlnLCBvciBib290c3RyYXAncyBgd2lkZ2V0X2NvbmZpZ2BcbiAgLy8gKGJvdGggdW5nYXRlZCBieSB1c2VfdW5pZmllZF9jb25maWc7IGVtcHR5IG9ubHkgdW5kZXIgYSB2ZXJzaW9uIHBpbikuXG4gIC8vIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgdGhlc2UgdG8gZW5yaWNoIGV2ZW50cyB3aXRoIGBleHBlcmltZW50Lntuc30uKmAgcHJvcHMuXG4gIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAvLyBvcmdDb25maWcucmVzb2x1dGlvbiBpcyBwb3B1bGF0ZWQgb25seSBvbiB0aGUgdW5pZmllZCBwYXRoIChzb3VyY2VkIGZyb21cbiAgLy8gZ2V0V2lkZ2V0Q29uZmlnLnJlc29sdXRpb24sIG5vdCAvdjEvb3JnL2NvbmZpZy5yZXNvbHV0aW9uKSBzbyB0aGUgdmVyc2lvblxuICAvLyB0aHJlYWRlZCBpbnRvIGluZmVyZW5jZSByZXF1ZXN0cyBtYXRjaGVzIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlXG4gIC8vIHJlbmRlcmVkIHdpZGdldHMuXG4gIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG4gIC8vIE5COiBgdGFrZUJvb3RzdHJhcFVybFJlc29sdmluZ2AgaXMgaW50ZW50aW9uYWxseSBOT1Qgb24gdGhpcyBpbnRlcmZhY2UuIEl0J3NcbiAgLy8gYSBib290c3RyYXAtb25seSBkZXRhaWwgY29uc3VtZWQgc29sZWx5IGJ5IHRoZSBpbmplY3Rpb24gYnVuZGxlIHZpYSB0aGVcbiAgLy8gY29uY3JldGUgRW52aXZlQ29uZmlnU2VydmljZTsga2VlcGluZyBpdCBvZmYgdGhlIHB1YmxpYyBESSBjb250cmFjdCBhdm9pZHMgYVxuICAvLyBicmVha2luZyBjaGFuZ2UgZm9yIGV4dGVybmFsIGNvbnN1bWVycyB0aGF0IHN1cHBseSB0aGVpciBvd24gY29uZmlnIHNlcnZpY2VcbiAgLy8gKEVudml2ZVByb3ZpZGVyIG9ubHkgZXZlciBjYWxscyBnZXRFbnZpdmVDb25maWcgLyBiYXNlVXJsIC8gYXBpS2V5KS5cbn1cblxuLy8gVGhlIGJvb3RzdHJhcCB1cmxfcmVzb2x2aW5nIHBheWxvYWQgcGx1cyB0aGUgVVJMIGl0IHdhcyByZXNvbHZlZCBmb3IsIHNvIHRoZVxuLy8gd2FybS11cCBjYW4gdmVyaWZ5IHRoZSBVUkwgc3RpbGwgbWF0Y2hlcyBiZWZvcmUgc2VlZGluZyAoc2VlIEYxOiBhIFNQQSBuYXZcbi8vIGR1cmluZyB0aGUgYm9vdHN0cmFwIHJvdW5kIHRyaXAgbXVzdCBub3QgY2FjaGUgVVJMIEEncyByZXN1bHQgdW5kZXIgVVJMIEIpLlxudHlwZSBCb290c3RyYXBVcmxSZXNvbHZpbmcgPSB7IHVybDogc3RyaW5nOyByZXNwb25zZTogVXJsUmVzb2x2ZXJSZXNwb25zZSB9O1xuXG5leHBvcnQgY2xhc3MgRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VySWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IG5hbWVzcGFjZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbnY/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U291cmNlPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVzcG9uc2U6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGJvb3RzdHJhcFVybFJlc29sdmluZzogQm9vdHN0cmFwVXJsUmVzb2x2aW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGJhc2VVcmwsXG4gICAgYXBpS2V5LFxuICAgIHVzZXJJZCxcbiAgICBuYW1lc3BhY2UsXG4gICAgc291cmNlLFxuICAgIGVudixcbiAgICBjb250ZXh0U291cmNlLFxuICB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gYXBpS2V5O1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgIHRoaXMuZW52ID0gZW52O1xuICAgIHRoaXMuY29udGV4dFNvdXJjZSA9IGNvbnRleHRTb3VyY2U7XG4gIH1cblxuICAvLyBIYW5kcyBvZmYgKG9uY2UpIHRoZSB1cmxfcmVzb2x2aW5nIHBheWxvYWQgdGhhdCAvdjEvc2Vzc2lvbi9ib290c3RyYXBcbiAgLy8gcmV0dXJuZWQgYWxvbmdzaWRlIHRoZSBjb25maWcg4oCUIHBhaXJlZCB3aXRoIHRoZSBVUkwgaXQgd2FzIHJlc29sdmVkIGZvciDigJQgc29cbiAgLy8gdGhlIHdhcm0tdXAgc2VlZHMgdXJsUmVzb2x2ZXJBdG9tIHdpdGggaXQgaW5zdGVhZCBvZiBmaXJpbmcgYSBzZXBhcmF0ZVxuICAvLyAvdjEvdXJsX3Jlc29sdmluZy4gbnVsbCBvbiB0aGUgY2FjaGVkIHBhdGggb3IgYSBjb25maWctb25seSBib290c3RyYXAgKGFcbiAgLy8gZGlzYWJsZWQgc2Vzc2lvbiwgd2hpY2ggcmVxdWVzdHMgbm8gdXJsX3Jlc29sdmluZyBicmFuY2gpLlxuICB0YWtlQm9vdHN0cmFwVXJsUmVzb2x2aW5nKCk6IEJvb3RzdHJhcFVybFJlc29sdmluZyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5ib290c3RyYXBVcmxSZXNvbHZpbmc7XG4gICAgdGhpcy5ib290c3RyYXBVcmxSZXNvbHZpbmcgPSBudWxsO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGVudml2ZS1jb25maWctY2FjaGU6JHt0aGlzLmJhc2VVcmx9OiR7dGhpcy5hcGlLZXl9OiR7dGhpcy51c2VySWR9OiR7dGhpcy5uYW1lc3BhY2V9OiR7dGhpcy5zb3VyY2V9YDtcbiAgfVxuXG4gIC8vIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIC8gYHNwaWZmeV9jb25maWdfdmVyc2lvbmAgcGluIGEgc3BlY2lmaWMgY29uZmlnXG4gIC8vIHZlcnNpb24gZm9yIGRlYnVnZ2luZy9yb2xsYmFjay4gQW55IHVzZSBvZiB0aGF0IG92ZXJyaWRlIG11c3QgYWx3YXlzXG4gIC8vIGJ5cGFzcyB0aGUgY2FjaGUgYmVsb3cg4oCUIGJvdGggcmVhZGluZyBhIHN0YWxlIGVudHJ5IGFuZCB3cml0aW5nIG9uZVxuICAvLyB1bmRlciB0aGUgc2hhcmVkIGtleSB3b3VsZCBkZWZlYXQgdGhlIG92ZXJyaWRlJ3MgcHVycG9zZS5cbiAgcHJpdmF0ZSByZWFkQ2FjaGVkQ29uZmlnKCk6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsIHtcbiAgICBpZiAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmF3ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldENhY2hlS2V5KCkpO1xuICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBlbnRyeSA9IEpTT04ucGFyc2UocmF3KSBhcyBDYWNoZWRDb25maWdFbnRyeTtcbiAgICAgIGlmIChEYXRlLm5vdygpID49IGVudHJ5LmV4cGlyZXNBdCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbnRyeS52YWx1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVDYWNoZWRDb25maWcodmFsdWU6IEVudml2ZVNlcnZpY2VDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudHJ5OiBDYWNoZWRDb25maWdFbnRyeSA9IHsgdmFsdWUsIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIENPTkZJR19DQUNIRV9UVExfTVMgfTtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRDYWNoZUtleSgpLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU3RvcmFnZSBkaXNhYmxlZCwgZnVsbCwgb3IgdW5hdmFpbGFibGUgKHByaXZhdGUgYnJvd3NpbmcsIGV0Yy4pIC1cbiAgICAgIC8vIGZhaWwgb3BlbiBhbmQgbGV0IHRoZSBuZXh0IGNhbGwgcmUtZmV0Y2ggaW5zdGVhZCBvZiBjYWNoaW5nLlxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICBpZiAodGhpcy5yZXNwb25zZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5yZWFkQ2FjaGVkQ29uZmlnKCk7XG4gICAgaWYgKGNhY2hlZCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5yZXNwb25zZSA9IGNhY2hlZDtcbiAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8vIC92MS9zZXNzaW9uL2Jvb3RzdHJhcCBpcyB0aGUgc2luZ2xlIHNlc3Npb24tY29uZmlnIGNhbGw6IG9yZyBpZGVudGl0eSArXG4gICAgLy8gZmVhdHVyZSBnYXRlcyArIGV4cGVyaW1lbnQgYXNzaWdubWVudHMgKyBwcm9kdWN0c0NvbmZpZy9yZXNvbHV0aW9uLCBQTFVTXG4gICAgLy8gdGhlIGluaXRpYWwgdXJsX3Jlc29sdmluZyDigJQgdGhlIGNvbnNvbGlkYXRpb24gb2YgR0VUIC92MS9vcmcvY29uZmlnLFxuICAgIC8vIEdyYXBoUUwgbWUuZ2V0V2lkZ2V0Q29uZmlnLCBhbmQgUE9TVCAvdjEvdXJsX3Jlc29sdmluZyBpbnRvIG9uZSByb3VuZCB0cmlwLlxuICAgIC8vIGBnYXRlTmFtZXNgIGlzIHRoZSBmdWxsIGxpc3Qgb2YgZ2F0ZXMgdGhlIGFwcCBjaGVja3MsIHNvIHRoZSBzZXJ2ZXJcbiAgICAvLyBldmFsdWF0ZXMgYW5kIHJldHVybnMgdGhlbS4gQSBmYWlsdXJlIHRocm93cyAoc2VlIGZldGNoQm9vdHN0cmFwQ29uZmlnKSBhbmRcbiAgICAvLyBwcm9wYWdhdGVzIHRvIGluamVjdC50cywgd2hpY2ggYWJvcnRzIGluamVjdGlvbiDigJQgdGhlcmUgaXMgbm8gZ2V0V2lkZ2V0Q29uZmlnXG4gICAgLy8gbGVmdCB0byBmYWxsIGJhY2sgdG8sIHRoZSBzYW1lIGJsYXN0IHJhZGl1cyB0aGUgc2luZ2xlIC92MS9vcmcvY29uZmlnIGhhZC5cbiAgICBjb25zdCBnYXRlTmFtZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKGZlYXR1cmVHYXRlID0+IGZlYXR1cmVHYXRlLnRvU3RyaW5nKCkpO1xuXG4gICAgLy8gZW52ICsgY29udGV4dFNvdXJjZSBhcmUgc3VwcGxpZWQgb25seSBieSB0aGUgaW5qZWN0aW9uIGJ1bmRsZSAodGhlIGhvb2tzXG4gICAgLy8gbGF5ZXIgY2FuJ3QgZGVyaXZlIHRoZW0pLiBQcmVzZW50IOKGkiByZXF1ZXN0IGJvb3RzdHJhcCdzIHVybF9yZXNvbHZpbmcgYnJhbmNoXG4gICAgLy8gYW5kIHN0YXNoIGl0IGZvciB0aGUgd2FybS11cCB0byBzZWVkLiBBYnNlbnQgKG1vY2tzLCBvciBhIGRpc2FibGVkIHNlc3Npb25cbiAgICAvLyB0aGF0IHN0aWxsIG5lZWRzIG9yZyBjb25maWcgKyBnYXRlcyBmb3IgdGhlIFwiRW52aXZlIEluaXRpYWxpemVkXCIgZXZlbnQpIOKGklxuICAgIC8vIGJvb3RzdHJhcCByZXR1cm5zIGNvbmZpZyBvbmx5LCBubyBwYWdlLXZhcmlhbnQgcm91bmQgdHJpcC5cbiAgICBjb25zdCB3YW50c1VybFJlc29sdmluZyA9IHRoaXMuZW52ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb250ZXh0U291cmNlICE9PSB1bmRlZmluZWQ7XG4gICAgLy8gQ2FwdHVyZWQgb25jZSBhbmQgcmV1c2VkIGZvciB0aGUgc3Rhc2ggc28gdGhlIFVSTCBjYXJyaWVkIHRvIHRoZSB3YXJtLXVwIGlzXG4gICAgLy8gcHJvdmFibHkgdGhlIG9uZSBib290c3RyYXAgcmVzb2x2ZWQuIFRoZSB3YXJtLXVwIG9ubHkgc2VlZHMgaXQgaWYgdGhpcyBzdGlsbFxuICAgIC8vIG1hdGNoZXMgdGhlIGN1cnJlbnQgVVJMIChhIFNQQSBuYXYgZHVyaW5nIHRoZSByb3VuZCB0cmlwIHdvdWxkIG90aGVyd2lzZVxuICAgIC8vIGNhY2hlIHRoaXMgcmVzdWx0IHVuZGVyIGEgbGF0ZXIgVVJMKS4gU2FtZSBjbGVhbnNpbmcgYXMgd2FybVVybFJlc29sdmVyIHNvXG4gICAgLy8gdGhlIHVybFJlc29sdmVyQXRvbSBrZXkgbGluZXMgdXAuXG4gICAgY29uc3QgY2xlYW5zZWRVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcblxuICAgIGNvbnN0IHsgY29uZmlnLCB1cmxSZXNvbHZpbmcgfSA9IGF3YWl0IGZldGNoQm9vdHN0cmFwQ29uZmlnKHtcbiAgICAgIGJhc2VVcmw6IHRoaXMuYmFzZVVybCxcbiAgICAgIGFwaUtleTogdGhpcy5hcGlLZXksXG4gICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxuICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgIC8vIFNjb3BlIG9yZ19jb25maWcuY29uZmlncyB0byB0aGlzIG5hbWVzcGFjZSBzbyBib290c3RyYXAgZG9lc24ndCByZXR1cm5cbiAgICAgIC8vIGludGVybmFsLW9ubHkgb3JnIGNvbmZpZ3MgdG8gdGhlIGJyb3dzZXIgKG1hdGNoZXMgdGhlIGxlZ2FjeSAvdjEvb3JnL2NvbmZpZykuXG4gICAgICBuYW1lc3BhY2U6IHRoaXMubmFtZXNwYWNlLFxuICAgICAgZ2F0ZU5hbWVzLFxuICAgICAgLy8gVGhlIHBlcnNpc3RlbnQgY2hhdCBzZXNzaW9uIGlkIChzYW1lIHNvdXJjZSByZXNvbHZlVXJsIHJlYWRzKSBzb1xuICAgICAgLy8gYm9vdHN0cmFwJ3MgdXJsX3Jlc29sdmluZyBjYXJyaWVzIGl0IGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgY2hhdElkOiBnZXRBdG9tU3RvcmUoKS5nZXQoY2hhdElkQXRvbSksXG4gICAgICAuLi4od2FudHNVcmxSZXNvbHZpbmdcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB1cmw6IGNsZWFuc2VkVXJsLFxuICAgICAgICAgICAgY29udGV4dFNvdXJjZTogdGhpcy5jb250ZXh0U291cmNlLFxuICAgICAgICAgICAgZW52OiB0aGlzLmVudixcbiAgICAgICAgICAgIC8vIENsaWVudC1zaWRlIGdhdGUgb3ZlcnJpZGVzIG9ubHkgKHF1ZXJ5L3dpbmRvdy9sb2NhbFN0b3JhZ2UpOyB0aGVcbiAgICAgICAgICAgIC8vIHNlcnZlciByZXNvbHZlcyB0aGUgcmVhbCBnYXRlIHZhbHVlcyBhbmQgbWVyZ2VzIHRoZXNlIG92ZXIgdGhlbS5cbiAgICAgICAgICAgIGZlYXR1cmVHYXRlczogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGVzKCksXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuYm9vdHN0cmFwVXJsUmVzb2x2aW5nID0gdXJsUmVzb2x2aW5nID8geyB1cmw6IGNsZWFuc2VkVXJsLCByZXNwb25zZTogdXJsUmVzb2x2aW5nIH0gOiBudWxsO1xuICAgIHRoaXMucmVzcG9uc2UgPSBjb25maWc7XG4gICAgdGhpcy53cml0ZUNhY2hlZENvbmZpZyh0aGlzLnJlc3BvbnNlKTtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgc3RhdGljIG1vY2sgZGF0YSBmcm9tIGl0cyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuIFBhc3NlcyBlbXB0eSBiYXNlVXJsL2FwaUtleVxuICogc28gYW55IGNvZGUgY2hlY2tpbmcgaXNSZWFkeSBkb2VzIG5vdCBmaXJlIHJlYWwgbmV0d29yayByZXF1ZXN0cy4gVGhlIG9yZ0NvbmZpZyBmaWVsZFxuICogY292ZXJzIGNvbG9ycywgZnJvbnRlbmRDb25maWcsIGFuZCBwYWdlL3dpZGdldC9tb3VudGluZyBjb25maWdzIHdpdGhvdXQgYW55IG5ldHdvcmsgY2FsbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2NrRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZykge31cblxuICBhc3luYyBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMubW9ja0NvbmZpZztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWNBLE1BQU0sc0JBQXNCLE1BQVM7QUE4RHJDLElBQWEsc0JBQWIsTUFBaUU7Q0FtQi9ELFlBQVksRUFDVixTQUNBLFFBQ0EsUUFDQSxXQUNBLFFBQ0EsS0FDQSxpQkFDMkI7a0JBWmtCOytCQUVlO0FBVzVELE9BQUssVUFBVTtBQUNmLE9BQUssU0FBUztBQUNkLE9BQUssU0FBUztBQUNkLE9BQUssWUFBWTtBQUNqQixPQUFLLFNBQVM7QUFDZCxPQUFLLE1BQU07QUFDWCxPQUFLLGdCQUFnQjs7Q0FRdkIsNEJBQTBEO0VBQ3hELE1BQU0sUUFBUSxLQUFLO0FBQ25CLE9BQUssd0JBQXdCO0FBQzdCLFNBQU87O0NBR1QsQUFBUSxjQUFzQjtBQUM1QixTQUFPLHVCQUF1QixLQUFLLFFBQVEsR0FBRyxLQUFLLE9BQU8sR0FBRyxLQUFLLE9BQU8sR0FBRyxLQUFLLFVBQVUsR0FBRyxLQUFLOztDQU9yRyxBQUFRLG1CQUErQztBQUNyRCxNQUFJQSwrQ0FBdUIsQ0FDekIsUUFBTztBQUVULE1BQUk7R0FDRixNQUFNLE1BQU0sZUFBZSxRQUFRLEtBQUssYUFBYSxDQUFDO0FBQ3RELE9BQUksQ0FBQyxJQUNILFFBQU87R0FFVCxNQUFNLFFBQVEsS0FBSyxNQUFNLElBQUk7QUFDN0IsT0FBSSxLQUFLLEtBQUssSUFBSSxNQUFNLFVBQ3RCLFFBQU87QUFFVCxVQUFPLE1BQU07VUFDUDtBQUNOLFVBQU87OztDQUlYLEFBQVEsa0JBQWtCLE9BQWtDO0FBQzFELE1BQUlBLCtDQUF1QixDQUN6QjtBQUVGLE1BQUk7R0FDRixNQUFNQyxRQUEyQjtJQUFFO0lBQU8sV0FBVyxLQUFLLEtBQUssR0FBRztJQUFxQjtBQUN2RixrQkFBZSxRQUFRLEtBQUssYUFBYSxFQUFFLEtBQUssVUFBVSxNQUFNLENBQUM7VUFDM0Q7O0NBTVYsTUFBTSxrQkFBZ0Q7QUFDcEQsTUFBSSxLQUFLLGFBQWEsS0FDcEIsUUFBTyxLQUFLO0VBR2QsTUFBTSxTQUFTLEtBQUssa0JBQWtCO0FBQ3RDLE1BQUksV0FBVyxNQUFNO0FBQ25CLFFBQUssV0FBVztBQUNoQixVQUFPLEtBQUs7O0VBV2QsTUFBTSxZQUFZLE9BQU8sT0FBT0Msa0NBQWEsQ0FBQyxLQUFJLGdCQUFlLFlBQVksVUFBVSxDQUFDO0VBT3hGLE1BQU0sb0JBQW9CLEtBQUssUUFBUSxVQUFhLEtBQUssa0JBQWtCO0VBTTNFLE1BQU0sY0FBYyxPQUFPLFNBQVMsS0FBSyxhQUFhLENBQUMsTUFBTTtFQUU3RCxNQUFNLEVBQUUsUUFBUSxpQkFBaUIsTUFBTUMsa0RBQXFCO0dBQzFELFNBQVMsS0FBSztHQUNkLFFBQVEsS0FBSztHQUNiLFFBQVEsS0FBSztHQUNiLFFBQVEsS0FBSztHQUdiLFdBQVcsS0FBSztHQUNoQjtHQUdBLFFBQVFDLGdDQUFjLENBQUMsSUFBSUMsbUNBQVc7R0FDdEMsR0FBSSxvQkFDQTtJQUNFLEtBQUs7SUFDTCxlQUFlLEtBQUs7SUFDcEIsS0FBSyxLQUFLO0lBR1YsY0FBY0MsNkRBQW1CLHlCQUF5QjtJQUMzRCxHQUNELEVBQUU7R0FDUCxDQUFDO0FBRUYsT0FBSyx3QkFBd0IsZUFBZTtHQUFFLEtBQUs7R0FBYSxVQUFVO0dBQWMsR0FBRztBQUMzRixPQUFLLFdBQVc7QUFDaEIsT0FBSyxrQkFBa0IsS0FBSyxTQUFTO0FBQ3JDLFNBQU8sS0FBSzs7Ozs7Ozs7QUFTaEIsSUFBYSwwQkFBYixNQUFxRTtDQUtuRSxZQUFZLEFBQWlCQyxZQUFpQztFQUFqQztpQkFKSztnQkFFRDs7Q0FJakMsTUFBTSxrQkFBZ0Q7QUFDcEQsU0FBTyxLQUFLIn0=
@@ -61,7 +61,6 @@ declare class EnviveConfigService implements IEnviveConfigService {
61
61
  private readCachedConfig;
62
62
  private writeCachedConfig;
63
63
  getEnviveConfig(): Promise<EnviveServiceConfig>;
64
- private maybeUpgradeToBootstrap;
65
64
  }
66
65
  /**
67
66
  * Returns static mock data from its constructor arguments. Passes empty baseUrl/apiKey
@@ -77,4 +76,4 @@ declare class MockEnviveConfigService implements IEnviveConfigService {
77
76
  }
78
77
  //#endregion
79
78
  export { EnviveConfigService, EnviveServiceConfig, IEnviveConfigService, MockEnviveConfigService };
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbnR5cGUgRW52aXZlQ29uZmlnU2VydmljZVByb3BzID0ge1xuICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICBhcGlLZXk6IHN0cmluZztcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBlbnY/OiBzdHJpbmc7XG4gICAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBFbnZpdmVTZXJ2aWNlQ29uZmlnID0ge1xuICAgIG9yZzoge1xuICAgICAgICBvcmc6IHtcbiAgICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkaXNwbGF5X25hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gICAgICAgICAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBnYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzPzogT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRbXTtcbiAgICBvcmdDb25maWc/OiBHcmFwaFFsQ29uZmlnVmFsdWVzO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcbiAgICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cbnR5cGUgQm9vdHN0cmFwVXJsUmVzb2x2aW5nID0ge1xuICAgIHVybDogc3RyaW5nO1xuICAgIHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlO1xufTtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEVudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlcklkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc291cmNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52PztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRTb3VyY2U/O1xuICAgIHByaXZhdGUgcmVzcG9uc2U7XG4gICAgcHJpdmF0ZSBib290c3RyYXBVcmxSZXNvbHZpbmc7XG4gICAgY29uc3RydWN0b3IoeyBiYXNlVXJsLCBhcGlLZXksIHVzZXJJZCwgbmFtZXNwYWNlLCBzb3VyY2UsIGVudiwgY29udGV4dFNvdXJjZSwgfTogRW52aXZlQ29uZmlnU2VydmljZVByb3BzKTtcbiAgICB0YWtlQm9vdHN0cmFwVXJsUmVzb2x2aW5nKCk6IEJvb3RzdHJhcFVybFJlc29sdmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSBnZXRDYWNoZUtleTtcbiAgICBwcml2YXRlIHJlYWRDYWNoZWRDb25maWc7XG4gICAgcHJpdmF0ZSB3cml0ZUNhY2hlZENvbmZpZztcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbiAgICBwcml2YXRlIG1heWJlVXBncmFkZVRvQm9vdHN0cmFwO1xufVxuLyoqXG4gKiBSZXR1cm5zIHN0YXRpYyBtb2NrIGRhdGEgZnJvbSBpdHMgY29uc3RydWN0b3IgYXJndW1lbnRzLiBQYXNzZXMgZW1wdHkgYmFzZVVybC9hcGlLZXlcbiAqIHNvIGFueSBjb2RlIGNoZWNraW5nIGlzUmVhZHkgZG9lcyBub3QgZmlyZSByZWFsIG5ldHdvcmsgcmVxdWVzdHMuIFRoZSBvcmdDb25maWcgZmllbGRcbiAqIGNvdmVycyBjb2xvcnMsIGZyb250ZW5kQ29uZmlnLCBhbmQgcGFnZS93aWRnZXQvbW91bnRpbmcgY29uZmlncyB3aXRob3V0IGFueSBuZXR3b3JrIGNhbGxzLlxuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBNb2NrRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vY2tDb25maWc7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKG1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcpO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xufVxuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUdBLElBQUksMkJBQTJCLENBQUMsSUFBQTtBQUNoQyxJQUFXLHNCQUFRO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQixJQUFXLHVCQUFPO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbEIsSUFBSSx3QkFBYyxDQUFBLFdBQUEsb0JBQUE7QUFDbEIsSUFBVyxzQkFBVTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDckIsSUFBVywwQkFBTztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbnR5cGUgRW52aXZlQ29uZmlnU2VydmljZVByb3BzID0ge1xuICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICBhcGlLZXk6IHN0cmluZztcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBlbnY/OiBzdHJpbmc7XG4gICAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBFbnZpdmVTZXJ2aWNlQ29uZmlnID0ge1xuICAgIG9yZzoge1xuICAgICAgICBvcmc6IHtcbiAgICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkaXNwbGF5X25hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gICAgICAgICAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBnYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzPzogT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRbXTtcbiAgICBvcmdDb25maWc/OiBHcmFwaFFsQ29uZmlnVmFsdWVzO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcbiAgICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cbnR5cGUgQm9vdHN0cmFwVXJsUmVzb2x2aW5nID0ge1xuICAgIHVybDogc3RyaW5nO1xuICAgIHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlO1xufTtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEVudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlcklkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc291cmNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52PztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRTb3VyY2U/O1xuICAgIHByaXZhdGUgcmVzcG9uc2U7XG4gICAgcHJpdmF0ZSBib290c3RyYXBVcmxSZXNvbHZpbmc7XG4gICAgY29uc3RydWN0b3IoeyBiYXNlVXJsLCBhcGlLZXksIHVzZXJJZCwgbmFtZXNwYWNlLCBzb3VyY2UsIGVudiwgY29udGV4dFNvdXJjZSwgfTogRW52aXZlQ29uZmlnU2VydmljZVByb3BzKTtcbiAgICB0YWtlQm9vdHN0cmFwVXJsUmVzb2x2aW5nKCk6IEJvb3RzdHJhcFVybFJlc29sdmluZyB8IG51bGw7XG4gICAgcHJpdmF0ZSBnZXRDYWNoZUtleTtcbiAgICBwcml2YXRlIHJlYWRDYWNoZWRDb25maWc7XG4gICAgcHJpdmF0ZSB3cml0ZUNhY2hlZENvbmZpZztcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cbi8qKlxuICogUmV0dXJucyBzdGF0aWMgbW9jayBkYXRhIGZyb20gaXRzIGNvbnN0cnVjdG9yIGFyZ3VtZW50cy4gUGFzc2VzIGVtcHR5IGJhc2VVcmwvYXBpS2V5XG4gKiBzbyBhbnkgY29kZSBjaGVja2luZyBpc1JlYWR5IGRvZXMgbm90IGZpcmUgcmVhbCBuZXR3b3JrIHJlcXVlc3RzLiBUaGUgb3JnQ29uZmlnIGZpZWxkXG4gKiBjb3ZlcnMgY29sb3JzLCBmcm9udGVuZENvbmZpZywgYW5kIHBhZ2Uvd2lkZ2V0L21vdW50aW5nIGNvbmZpZ3Mgd2l0aG91dCBhbnkgbmV0d29yayBjYWxscy5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgTW9ja0Vudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2NrQ29uZmlnO1xuICAgIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcbiAgICByZWFkb25seSBhcGlLZXk6IHN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcihtb2NrQ29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnKTtcbiAgICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbn1cbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSxJQUFJLDJCQUEyQixDQUFDLElBQUE7QUFDaEMsSUFBVyxzQkFBUTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkIsSUFBVyx1QkFBTztDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2xCLElBQUksd0JBQWMsQ0FBQSxXQUFBLG9CQUFBO0FBQ2xCLElBQVcsc0JBQVU7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3JCLElBQVcsMEJBQU87Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
@@ -61,7 +61,6 @@ declare class EnviveConfigService implements IEnviveConfigService {
61
61
  private readCachedConfig;
62
62
  private writeCachedConfig;
63
63
  getEnviveConfig(): Promise<EnviveServiceConfig>;
64
- private maybeUpgradeToBootstrap;
65
64
  }
66
65
  /**
67
66
  * Returns static mock data from its constructor arguments. Passes empty baseUrl/apiKey
@@ -77,4 +76,4 @@ declare class MockEnviveConfigService implements IEnviveConfigService {
77
76
  }
78
77
  //#endregion
79
78
  export { EnviveConfigService, EnviveServiceConfig, IEnviveConfigService, MockEnviveConfigService };
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2Vudml2ZUNvbmZpZ1NlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudCwgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIGFwaUtleTogc3RyaW5nO1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIGVudj86IHN0cmluZztcbiAgICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gICAgb3JnOiB7XG4gICAgICAgIG9yZzoge1xuICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgIHNob3J0X25hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZG9tYWluOiBzdHJpbmc7XG4gICAgICAgICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAgIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xufVxudHlwZSBCb290c3RyYXBVcmxSZXNvbHZpbmcgPSB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2U7XG59O1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VySWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnY/O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dFNvdXJjZT87XG4gICAgcHJpdmF0ZSByZXNwb25zZTtcbiAgICBwcml2YXRlIGJvb3RzdHJhcFVybFJlc29sdmluZztcbiAgICBjb25zdHJ1Y3Rvcih7IGJhc2VVcmwsIGFwaUtleSwgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSwgZW52LCBjb250ZXh0U291cmNlLCB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpO1xuICAgIHRha2VCb290c3RyYXBVcmxSZXNvbHZpbmcoKTogQm9vdHN0cmFwVXJsUmVzb2x2aW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIGdldENhY2hlS2V5O1xuICAgIHByaXZhdGUgcmVhZENhY2hlZENvbmZpZztcbiAgICBwcml2YXRlIHdyaXRlQ2FjaGVkQ29uZmlnO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xuICAgIHByaXZhdGUgbWF5YmVVcGdyYWRlVG9Cb290c3RyYXA7XG59XG4vKipcbiAqIFJldHVybnMgc3RhdGljIG1vY2sgZGF0YSBmcm9tIGl0cyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuIFBhc3NlcyBlbXB0eSBiYXNlVXJsL2FwaUtleVxuICogc28gYW55IGNvZGUgY2hlY2tpbmcgaXNSZWFkeSBkb2VzIG5vdCBmaXJlIHJlYWwgbmV0d29yayByZXF1ZXN0cy4gVGhlIG9yZ0NvbmZpZyBmaWVsZFxuICogY292ZXJzIGNvbG9ycywgZnJvbnRlbmRDb25maWcsIGFuZCBwYWdlL3dpZGdldC9tb3VudGluZyBjb25maWdzIHdpdGhvdXQgYW55IG5ldHdvcmsgY2FsbHMuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIE1vY2tFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbmZpZztcbiAgICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IobW9ja0NvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyk7XG4gICAgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz47XG59XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsSUFBSSwyQkFBMkIsQ0FBQyxJQUFBO0FBQ2hDLElBQVcsc0JBQVE7Q0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ25CLElBQVcsdUJBQU87Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNsQixJQUFJLHdCQUFjLENBQUEsV0FBQSxvQkFBQTtBQUNsQixJQUFXLHNCQUFVO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNyQixJQUFXLDBCQUFPO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlL2Vudml2ZUNvbmZpZ1NlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudCwgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIGFwaUtleTogc3RyaW5nO1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIGVudj86IHN0cmluZztcbiAgICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gICAgb3JnOiB7XG4gICAgICAgIG9yZzoge1xuICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgIHNob3J0X25hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZG9tYWluOiBzdHJpbmc7XG4gICAgICAgICAgICBzdGF0dXM6IHN0cmluZztcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAgIG9yZ0NvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG59O1xuZXhwb3J0IGludGVyZmFjZSBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xufVxudHlwZSBCb290c3RyYXBVcmxSZXNvbHZpbmcgPSB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2U7XG59O1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VySWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnY/O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dFNvdXJjZT87XG4gICAgcHJpdmF0ZSByZXNwb25zZTtcbiAgICBwcml2YXRlIGJvb3RzdHJhcFVybFJlc29sdmluZztcbiAgICBjb25zdHJ1Y3Rvcih7IGJhc2VVcmwsIGFwaUtleSwgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSwgZW52LCBjb250ZXh0U291cmNlLCB9OiBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMpO1xuICAgIHRha2VCb290c3RyYXBVcmxSZXNvbHZpbmcoKTogQm9vdHN0cmFwVXJsUmVzb2x2aW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIGdldENhY2hlS2V5O1xuICAgIHByaXZhdGUgcmVhZENhY2hlZENvbmZpZztcbiAgICBwcml2YXRlIHdyaXRlQ2FjaGVkQ29uZmlnO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xufVxuLyoqXG4gKiBSZXR1cm5zIHN0YXRpYyBtb2NrIGRhdGEgZnJvbSBpdHMgY29uc3RydWN0b3IgYXJndW1lbnRzLiBQYXNzZXMgZW1wdHkgYmFzZVVybC9hcGlLZXlcbiAqIHNvIGFueSBjb2RlIGNoZWNraW5nIGlzUmVhZHkgZG9lcyBub3QgZmlyZSByZWFsIG5ldHdvcmsgcmVxdWVzdHMuIFRoZSBvcmdDb25maWcgZmllbGRcbiAqIGNvdmVycyBjb2xvcnMsIGZyb250ZW5kQ29uZmlnLCBhbmQgcGFnZS93aWRnZXQvbW91bnRpbmcgY29uZmlncyB3aXRob3V0IGFueSBuZXR3b3JrIGNhbGxzLlxuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBNb2NrRW52aXZlQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElFbnZpdmVDb25maWdTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vY2tDb25maWc7XG4gICAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKG1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcpO1xuICAgIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xufVxuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUdBLElBQUksMkJBQTJCLENBQUMsSUFBQTtBQUNoQyxJQUFXLHNCQUFRO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQixJQUFXLHVCQUFPO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbEIsSUFBSSx3QkFBYyxDQUFBLFdBQUEsb0JBQUE7QUFDbEIsSUFBVyxzQkFBVTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDckIsSUFBVywwQkFBTztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
@@ -1,14 +1,11 @@
1
- import logger_default from "../../application/logging/logger.js";
2
1
  import { FeatureGates } from "../../application/models/featureGates.js";
3
2
  import { getAtomStore } from "../../atoms/atomStore/atomStore.js";
4
3
  import { chatIdAtom } from "../../atoms/app/index.js";
5
4
  import { FeatureFlagService } from "../featureFlagService/index.js";
6
5
  import { configVersionOverride } from "../../types/config-versions.js";
7
- import { fetchUnifiedGraphQLConfig } from "./fetchGraphQLConfig.js";
8
6
  import { fetchBootstrapConfig } from "./fetchBootstrapConfig.js";
9
7
 
10
8
  //#region src/services/enviveConfigService/enviveConfigService.ts
11
- const logger = new logger_default("enviveConfigService");
12
9
  const CONFIG_CACHE_TTL_MS = 300 * 1e3;
13
10
  var EnviveConfigService = class {
14
11
  constructor({ baseUrl, apiKey, userId, namespace, source, env, contextSource }) {
@@ -60,41 +57,30 @@ var EnviveConfigService = class {
60
57
  return this.response;
61
58
  }
62
59
  const gateNames = Object.values(FeatureGates).map((featureGate) => featureGate.toString());
63
- const widgetConfig = await fetchUnifiedGraphQLConfig(this.baseUrl, this.apiKey, this.userId, gateNames, this.source);
64
- this.response = await this.maybeUpgradeToBootstrap(widgetConfig, gateNames);
65
- this.writeCachedConfig(this.response);
66
- return this.response;
67
- }
68
- async maybeUpgradeToBootstrap(widgetConfig, gateNames) {
69
- if (this.env === void 0 || this.contextSource === void 0) return widgetConfig;
70
- const featureFlagService = new FeatureFlagService(widgetConfig.gates);
71
- if (!featureFlagService.isFeatureGateEnabled(FeatureGates.UseUnifiedConfig)) return widgetConfig;
60
+ const wantsUrlResolving = this.env !== void 0 && this.contextSource !== void 0;
72
61
  const cleansedUrl = window.location.href.toLowerCase().trim();
73
- try {
74
- const { config, urlResolving } = await fetchBootstrapConfig({
75
- baseUrl: this.baseUrl,
76
- apiKey: this.apiKey,
77
- userId: this.userId,
78
- source: this.source,
79
- namespace: this.namespace,
80
- gateNames,
62
+ const { config, urlResolving } = await fetchBootstrapConfig({
63
+ baseUrl: this.baseUrl,
64
+ apiKey: this.apiKey,
65
+ userId: this.userId,
66
+ source: this.source,
67
+ namespace: this.namespace,
68
+ gateNames,
69
+ chatId: getAtomStore().get(chatIdAtom),
70
+ ...wantsUrlResolving ? {
81
71
  url: cleansedUrl,
82
- orgId: widgetConfig.org.org.id,
83
- orgShortName: widgetConfig.org.org.short_name,
84
72
  contextSource: this.contextSource,
85
73
  env: this.env,
86
- featureGates: featureFlagService.getFeatureFlags(),
87
- chatId: getAtomStore().get(chatIdAtom)
88
- });
89
- this.bootstrapUrlResolving = urlResolving ? {
90
- url: cleansedUrl,
91
- response: urlResolving
92
- } : null;
93
- return config;
94
- } catch (err) {
95
- logger.logError("getEnviveConfig | bootstrap upgrade failed, using getWidgetConfig", err);
96
- return widgetConfig;
97
- }
74
+ featureGates: FeatureFlagService.getFeatureFlagOverrides()
75
+ } : {}
76
+ });
77
+ this.bootstrapUrlResolving = urlResolving ? {
78
+ url: cleansedUrl,
79
+ response: urlResolving
80
+ } : null;
81
+ this.response = config;
82
+ this.writeCachedConfig(this.response);
83
+ return this.response;
98
84
  }
99
85
  };
100
86
  /**
@@ -115,4 +101,4 @@ var MockEnviveConfigService = class {
115
101
 
116
102
  //#endregion
117
103
  export { EnviveConfigService, MockEnviveConfigService };
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsImVudHJ5OiBDYWNoZWRDb25maWdFbnRyeSIsIm1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LCBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0JztcbmltcG9ydCB7IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSB9IGZyb20gJ3NyYy90eXBlcy9jb25maWctdmVyc2lvbnMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZSc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgZ2V0QXRvbVN0b3JlIH0gZnJvbSAnc3JjL2F0b21zL2F0b21TdG9yZS9hdG9tU3RvcmUnO1xuaW1wb3J0IHsgY2hhdElkQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyB9IGZyb20gJy4vZmV0Y2hHcmFwaFFMQ29uZmlnJztcbmltcG9ydCB7IGZldGNoQm9vdHN0cmFwQ29uZmlnIH0gZnJvbSAnLi9mZXRjaEJvb3RzdHJhcENvbmZpZyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbmZpZ1NlcnZpY2UnKTtcblxuLy8gU2hvcnQtbGl2ZWQgc28gY29uZmlnIGNoYW5nZXMgKGdhdGVzLCBleHBlcmltZW50cykgc3RpbGwgcHJvcGFnYXRlIHdpdGhpblxuLy8gYSBzZXNzaW9uLCB3aGlsZSBzcGFyaW5nIGV2ZXJ5IHBhZ2UgbmF2aWdhdGlvbiBmcm9tIHJlLWZldGNoaW5nIG9yZ1xuLy8gY29uZmlnICsgR3JhcGhRTCBjb25maWcsIGJvdGggb2Ygd2hpY2ggc2l0IG9uIHRoZSBjcml0aWNhbCBwYXRoIGJlZm9yZVxuLy8gZmlyc3QgcGFpbnQuXG5jb25zdCBDT05GSUdfQ0FDSEVfVFRMX01TID0gNSAqIDYwICogMTAwMDtcblxudHlwZSBDYWNoZWRDb25maWdFbnRyeSA9IHtcbiAgdmFsdWU6IEVudml2ZVNlcnZpY2VDb25maWc7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xufTtcblxudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIC8vIFRoZSB1cmxfcmVzb2x2aW5nIGNvbnRleHQgYml0cyB0aGUgaG9va3MgbGF5ZXIgY2FuJ3QgZGVyaXZlIGl0c2VsZiwgc3VwcGxpZWRcbiAgLy8gYnkgdGhlIGluamVjdGlvbiBidW5kbGUgc28gZ2V0RW52aXZlQ29uZmlnIGNhbiBjYWxsIC92MS9zZXNzaW9uL2Jvb3RzdHJhcCBvblxuICAvLyB0aGUgdXNlX3VuaWZpZWRfY29uZmlnIGdhdGUtT04gcGF0aC4gT3B0aW9uYWw6IHdoZW4gYWJzZW50IChtb2Nrcywgbm9uLWJ1bmRsZVxuICAvLyBjYWxsZXJzKSB0aGUgYm9vdHN0cmFwIGJyYW5jaCBpcyBza2lwcGVkIGFuZCBnZXRXaWRnZXRDb25maWcgc3RhbmRzLlxuICBlbnY/OiBzdHJpbmc7XG4gIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBFbnZpdmVTZXJ2aWNlQ29uZmlnID0ge1xuICBvcmc6IHtcbiAgICBvcmc6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gICAgICBkaXNwbGF5X25hbWU6IHN0cmluZztcbiAgICAgIGRvbWFpbjogc3RyaW5nO1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICBjcmVhdGVkX2F0OiBzdHJpbmc7XG4gICAgICB1cGRhdGVkX2F0OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgZ2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG4gIC8vIFRoZSB1c2VyJ3MgU3RhdHNpZyBleHBlcmltZW50LWxheWVyIGFzc2lnbm1lbnRzLCBmcm9tIHRoZSB3aWRnZXQgY29uZmlnJ3NcbiAgLy8gcmVzb2x2ZWQgZXhwZXJpbWVudHMg4oCUIGdldFdpZGdldENvbmZpZywgb3IgYm9vdHN0cmFwJ3MgYHdpZGdldF9jb25maWdgXG4gIC8vIChib3RoIHVuZ2F0ZWQgYnkgdXNlX3VuaWZpZWRfY29uZmlnOyBlbXB0eSBvbmx5IHVuZGVyIGEgdmVyc2lvbiBwaW4pLlxuICAvLyBhbXBsaXR1ZGVTZXJ2aWNlIHJlYWRzIHRoZXNlIHRvIGVucmljaCBldmVudHMgd2l0aCBgZXhwZXJpbWVudC57bnN9LipgIHByb3BzLlxuICBleHBlcmltZW50X2Fzc2lnbm1lbnRzPzogT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRbXTtcbiAgLy8gb3JnQ29uZmlnLnJlc29sdXRpb24gaXMgcG9wdWxhdGVkIG9ubHkgb24gdGhlIHVuaWZpZWQgcGF0aCAoc291cmNlZCBmcm9tXG4gIC8vIGdldFdpZGdldENvbmZpZy5yZXNvbHV0aW9uLCBub3QgL3YxL29yZy9jb25maWcucmVzb2x1dGlvbikgc28gdGhlIHZlcnNpb25cbiAgLy8gdGhyZWFkZWQgaW50byBpbmZlcmVuY2UgcmVxdWVzdHMgbWF0Y2hlcyB0aGUgdmVyc2lvbiB0aGF0IHByb2R1Y2VkIHRoZVxuICAvLyByZW5kZXJlZCB3aWRnZXRzLlxuICBvcmdDb25maWc/OiBHcmFwaFFsQ29uZmlnVmFsdWVzO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmc7XG4gIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+O1xuICAvLyBOQjogYHRha2VCb290c3RyYXBVcmxSZXNvbHZpbmdgIGlzIGludGVudGlvbmFsbHkgTk9UIG9uIHRoaXMgaW50ZXJmYWNlLiBJdCdzXG4gIC8vIGEgYm9vdHN0cmFwLW9ubHkgZGV0YWlsIGNvbnN1bWVkIHNvbGVseSBieSB0aGUgaW5qZWN0aW9uIGJ1bmRsZSB2aWEgdGhlXG4gIC8vIGNvbmNyZXRlIEVudml2ZUNvbmZpZ1NlcnZpY2U7IGtlZXBpbmcgaXQgb2ZmIHRoZSBwdWJsaWMgREkgY29udHJhY3QgYXZvaWRzIGFcbiAgLy8gYnJlYWtpbmcgY2hhbmdlIGZvciBleHRlcm5hbCBjb25zdW1lcnMgdGhhdCBzdXBwbHkgdGhlaXIgb3duIGNvbmZpZyBzZXJ2aWNlXG4gIC8vIChFbnZpdmVQcm92aWRlciBvbmx5IGV2ZXIgY2FsbHMgZ2V0RW52aXZlQ29uZmlnIC8gYmFzZVVybCAvIGFwaUtleSkuXG59XG5cbi8vIFRoZSBib290c3RyYXAgdXJsX3Jlc29sdmluZyBwYXlsb2FkIHBsdXMgdGhlIFVSTCBpdCB3YXMgcmVzb2x2ZWQgZm9yLCBzbyB0aGVcbi8vIHdhcm0tdXAgY2FuIHZlcmlmeSB0aGUgVVJMIHN0aWxsIG1hdGNoZXMgYmVmb3JlIHNlZWRpbmcgKHNlZSBGMTogYSBTUEEgbmF2XG4vLyBkdXJpbmcgdGhlIGJvb3RzdHJhcCByb3VuZCB0cmlwIG11c3Qgbm90IGNhY2hlIFVSTCBBJ3MgcmVzdWx0IHVuZGVyIFVSTCBCKS5cbnR5cGUgQm9vdHN0cmFwVXJsUmVzb2x2aW5nID0geyB1cmw6IHN0cmluZzsgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2UgfTtcblxuZXhwb3J0IGNsYXNzIEVudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZW52Pzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dFNvdXJjZT86IHN0cmluZztcblxuICBwcml2YXRlIHJlc3BvbnNlOiBFbnZpdmVTZXJ2aWNlQ29uZmlnIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBib290c3RyYXBVcmxSZXNvbHZpbmc6IEJvb3RzdHJhcFVybFJlc29sdmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBiYXNlVXJsLFxuICAgIGFwaUtleSxcbiAgICB1c2VySWQsXG4gICAgbmFtZXNwYWNlLFxuICAgIHNvdXJjZSxcbiAgICBlbnYsXG4gICAgY29udGV4dFNvdXJjZSxcbiAgfTogRW52aXZlQ29uZmlnU2VydmljZVByb3BzKSB7XG4gICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDtcbiAgICB0aGlzLmFwaUtleSA9IGFwaUtleTtcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgICB0aGlzLmVudiA9IGVudjtcbiAgICB0aGlzLmNvbnRleHRTb3VyY2UgPSBjb250ZXh0U291cmNlO1xuICB9XG5cbiAgLy8gSGFuZHMgb2ZmIChvbmNlKSB0aGUgdXJsX3Jlc29sdmluZyBwYXlsb2FkIHRoYXQgL3YxL3Nlc3Npb24vYm9vdHN0cmFwXG4gIC8vIHJldHVybmVkIGFsb25nc2lkZSB0aGUgY29uZmlnIOKAlCBwYWlyZWQgd2l0aCB0aGUgVVJMIGl0IHdhcyByZXNvbHZlZCBmb3Ig4oCUIHNvXG4gIC8vIHRoZSB3YXJtLXVwIHNlZWRzIHVybFJlc29sdmVyQXRvbSB3aXRoIGl0IGluc3RlYWQgb2YgZmlyaW5nIGEgc2VwYXJhdGVcbiAgLy8gL3YxL3VybF9yZXNvbHZpbmcuIG51bGwgb24gdGhlIGdldFdpZGdldENvbmZpZyAvIGNhY2hlZCBwYXRoLlxuICB0YWtlQm9vdHN0cmFwVXJsUmVzb2x2aW5nKCk6IEJvb3RzdHJhcFVybFJlc29sdmluZyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5ib290c3RyYXBVcmxSZXNvbHZpbmc7XG4gICAgdGhpcy5ib290c3RyYXBVcmxSZXNvbHZpbmcgPSBudWxsO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGVudml2ZS1jb25maWctY2FjaGU6JHt0aGlzLmJhc2VVcmx9OiR7dGhpcy5hcGlLZXl9OiR7dGhpcy51c2VySWR9OiR7dGhpcy5uYW1lc3BhY2V9OiR7dGhpcy5zb3VyY2V9YDtcbiAgfVxuXG4gIC8vIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIC8gYHNwaWZmeV9jb25maWdfdmVyc2lvbmAgcGluIGEgc3BlY2lmaWMgY29uZmlnXG4gIC8vIHZlcnNpb24gZm9yIGRlYnVnZ2luZy9yb2xsYmFjay4gQW55IHVzZSBvZiB0aGF0IG92ZXJyaWRlIG11c3QgYWx3YXlzXG4gIC8vIGJ5cGFzcyB0aGUgY2FjaGUgYmVsb3cg4oCUIGJvdGggcmVhZGluZyBhIHN0YWxlIGVudHJ5IGFuZCB3cml0aW5nIG9uZVxuICAvLyB1bmRlciB0aGUgc2hhcmVkIGtleSB3b3VsZCBkZWZlYXQgdGhlIG92ZXJyaWRlJ3MgcHVycG9zZS5cbiAgcHJpdmF0ZSByZWFkQ2FjaGVkQ29uZmlnKCk6IEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsIHtcbiAgICBpZiAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmF3ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldENhY2hlS2V5KCkpO1xuICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBlbnRyeSA9IEpTT04ucGFyc2UocmF3KSBhcyBDYWNoZWRDb25maWdFbnRyeTtcbiAgICAgIGlmIChEYXRlLm5vdygpID49IGVudHJ5LmV4cGlyZXNBdCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbnRyeS52YWx1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVDYWNoZWRDb25maWcodmFsdWU6IEVudml2ZVNlcnZpY2VDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVudHJ5OiBDYWNoZWRDb25maWdFbnRyeSA9IHsgdmFsdWUsIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIENPTkZJR19DQUNIRV9UVExfTVMgfTtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRDYWNoZUtleSgpLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU3RvcmFnZSBkaXNhYmxlZCwgZnVsbCwgb3IgdW5hdmFpbGFibGUgKHByaXZhdGUgYnJvd3NpbmcsIGV0Yy4pIC1cbiAgICAgIC8vIGZhaWwgb3BlbiBhbmQgbGV0IHRoZSBuZXh0IGNhbGwgcmUtZmV0Y2ggaW5zdGVhZCBvZiBjYWNoaW5nLlxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICBpZiAodGhpcy5yZXNwb25zZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5yZWFkQ2FjaGVkQ29uZmlnKCk7XG4gICAgaWYgKGNhY2hlZCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5yZXNwb25zZSA9IGNhY2hlZDtcbiAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cblxuICAgIC8vIGdldFdpZGdldENvbmZpZyBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiBzZXNzaW9uIGNvbmZpZzogaXQgcmV0dXJucyBvcmdcbiAgICAvLyBpZGVudGl0eSArIGZlYXR1cmUgZ2F0ZXMgKyBleHBlcmltZW50IGFzc2lnbm1lbnRzICh3aGljaCB1c2VkIHRvIGJlIGFcbiAgICAvLyBzZXBhcmF0ZSBHRVQgL3YxL29yZy9jb25maWcgY2FsbCkgYWxvbmdzaWRlIHByb2R1Y3RzQ29uZmlnICsgdGhlXG4gICAgLy8gcmVzb2x1dGlvbiBtZXRhZGF0YSB0aHJlYWRlZCBpbnRvIGRvd25zdHJlYW0gaW5mZXJlbmNlLiBgZ2F0ZU5hbWVzYCBpcyB0aGVcbiAgICAvLyBsaXN0IG9mIGdhdGVzIHRoZSBhcHAgY2hlY2tzLCBzbyB0aGUgcmVzb2x2ZXIgZXZhbHVhdGVzIGFuZCByZXR1cm5zIHRoZW0uXG4gICAgY29uc3QgZ2F0ZU5hbWVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcChmZWF0dXJlR2F0ZSA9PiBmZWF0dXJlR2F0ZS50b1N0cmluZygpKTtcblxuICAgIGNvbnN0IHdpZGdldENvbmZpZyA9IGF3YWl0IGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcoXG4gICAgICB0aGlzLmJhc2VVcmwsXG4gICAgICB0aGlzLmFwaUtleSxcbiAgICAgIHRoaXMudXNlcklkLFxuICAgICAgZ2F0ZU5hbWVzLFxuICAgICAgdGhpcy5zb3VyY2UsXG4gICAgKTtcblxuICAgIHRoaXMucmVzcG9uc2UgPSBhd2FpdCB0aGlzLm1heWJlVXBncmFkZVRvQm9vdHN0cmFwKHdpZGdldENvbmZpZywgZ2F0ZU5hbWVzKTtcbiAgICB0aGlzLndyaXRlQ2FjaGVkQ29uZmlnKHRoaXMucmVzcG9uc2UpO1xuICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICB9XG5cbiAgLy8gVGhlIHVuaWZpZWQtY29uZmlnIHJhbXAgKGB1c2VfdW5pZmllZF9jb25maWdgIFN0YXRzaWcgZ2F0ZSkuIFdoZW4gdGhlIGdhdGVcbiAgLy8gaXMgT04gZm9yIHRoaXMgdXNlciwgc3dhcCB0aGUgZ2V0V2lkZ2V0Q29uZmlnIHJlc3VsdCBmb3IgTWF0dCdzXG4gIC8vIC92MS9zZXNzaW9uL2Jvb3RzdHJhcCDigJQgdGhlIHNhbWUgY29uZmlnIFBMVVMgdGhlIGluaXRpYWwgdXJsX3Jlc29sdmluZyBpblxuICAvLyBPTkUgcm91bmQgdHJpcCAodGhlIGNvbnNvbGlkYXRpb24gdGhpcyBtaWdyYXRpb24gaXMgYWJvdXQpLiBUaGUgZ2F0ZSBpcyByZWFkXG4gIC8vIG9mZiB0aGUgZ2V0V2lkZ2V0Q29uZmlnIHJlc3BvbnNlIGp1c3QgZmV0Y2hlZCwgYmVjYXVzZSB0aGUgRkUgaGFzIG5vIFN0YXRzaWdcbiAgLy8gU0RLOiBweW1vbm8gZXZhbHVhdGVzIHRoZSBnYXRlIHNlcnZlci1zaWRlIGFuZCByZXR1cm5zIGl0LiBgRmVhdHVyZUZsYWdTZXJ2aWNlYFxuICAvLyBhbHNvIGhvbm9ycyBhIGA/dXNlX3VuaWZpZWRfY29uZmlnPXRydWVgIG92ZXJyaWRlLCBzbyB0aGUgYm9vdHN0cmFwIHBhdGggaXNcbiAgLy8gdGVzdGFibGUgYmVmb3JlIHRoZSBnYXRlIHJhbXBzLlxuICAvL1xuICAvLyBPbmx5IHJ1bnMgb24gdGhlIGNhY2hlLW1pc3MgcGF0aCAoYm9vdHN0cmFwJ3MgY29uZmlnIGlzIHRoZW4gY2FjaGVkIGxpa2UgYW55XG4gIC8vIG90aGVyKSwgc28gYSBjYWNoZWQgbG9hZCBuZXZlciByZS1mZXRjaGVzLiBOZWVkcyBlbnYgKyBjb250ZXh0U291cmNlIGZvciB0aGVcbiAgLy8gdXJsX3Jlc29sdmluZyBjb250ZXh0IOKAlCBhYnNlbnQgZm9yIG1vY2tzIC8gbm9uLWJ1bmRsZSBjYWxsZXJzLCB3aGVyZSB0aGVcbiAgLy8gYnJhbmNoIGlzIHNraXBwZWQuIEEgYm9vdHN0cmFwIGZhaWx1cmUgZmFsbHMgYmFjayB0byB0aGUgZ2V0V2lkZ2V0Q29uZmlnXG4gIC8vIGNvbmZpZyBhbHJlYWR5IGluIGhhbmQ6IGEgYm9vdHN0cmFwIHByb2JsZW0gZGVncmFkZXMgdG8gdGhlIHByb3ZlbiBwYXRoXG4gIC8vIGluc3RlYWQgb2YgYWJvcnRpbmcgaW5qZWN0aW9uLiBBdCAxMDAlIHRoZSBnZXRXaWRnZXRDb25maWcgY2FsbCBhYm92ZSBpc1xuICAvLyBkcm9wcGVkIGFuZCBib290c3RyYXAgYmVjb21lcyB0aGUgc29sZSBjb25maWcgY2FsbCAoc3RlcCA4KS5cbiAgcHJpdmF0ZSBhc3luYyBtYXliZVVwZ3JhZGVUb0Jvb3RzdHJhcChcbiAgICB3aWRnZXRDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcsXG4gICAgZ2F0ZU5hbWVzOiBzdHJpbmdbXSxcbiAgKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiB7XG4gICAgaWYgKHRoaXMuZW52ID09PSB1bmRlZmluZWQgfHwgdGhpcy5jb250ZXh0U291cmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB3aWRnZXRDb25maWc7XG4gICAgfVxuICAgIC8vIEJ1aWx0IG9uY2U6IHJlYWRzIHRoZSBnYXRlIChvdmVycmlkZS1hd2FyZSkgQU5EIHN1cHBsaWVzIHRoZSBvdmVycmlkZS1hd2FyZVxuICAgIC8vIGdhdGUgbWFwIGJvb3RzdHJhcCdzIHVybF9yZXNvbHZpbmcgbmVlZHMgKG1hdGNoZXMgdGhlIGxlZ2FjeSByZXNvbHZlVXJsIHBhdGgpLlxuICAgIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2Uod2lkZ2V0Q29uZmlnLmdhdGVzKTtcbiAgICBpZiAoIWZlYXR1cmVGbGFnU2VydmljZS5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuVXNlVW5pZmllZENvbmZpZykpIHtcbiAgICAgIHJldHVybiB3aWRnZXRDb25maWc7XG4gICAgfVxuXG4gICAgLy8gQ2FwdHVyZWQgb25jZSBhbmQgcmV1c2VkIGZvciBib3RoIHRoZSBib290c3RyYXAgcmVxdWVzdCBhbmQgdGhlIHN0YXNoLCBzb1xuICAgIC8vIHRoZSBVUkwgY2FycmllZCB0byB0aGUgd2FybS11cCBpcyBwcm92YWJseSB0aGUgb25lIGJvb3RzdHJhcCByZXNvbHZlZC4gVGhlXG4gICAgLy8gd2FybS11cCBvbmx5IHNlZWRzIGl0IGlmIHRoaXMgc3RpbGwgbWF0Y2hlcyB0aGUgY3VycmVudCBVUkwgKGEgU1BBIG5hdlxuICAgIC8vIGR1cmluZyB0aGUgcm91bmQgdHJpcCB3b3VsZCBvdGhlcndpc2UgY2FjaGUgdGhpcyByZXN1bHQgdW5kZXIgYSBsYXRlciBVUkwpLlxuICAgIC8vIFNhbWUgY2xlYW5zaW5nIGFzIHdhcm1VcmxSZXNvbHZlciBzbyB0aGUgdXJsUmVzb2x2ZXJBdG9tIGtleSBsaW5lcyB1cC5cbiAgICBjb25zdCBjbGVhbnNlZFVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGNvbmZpZywgdXJsUmVzb2x2aW5nIH0gPSBhd2FpdCBmZXRjaEJvb3RzdHJhcENvbmZpZyh7XG4gICAgICAgIGJhc2VVcmw6IHRoaXMuYmFzZVVybCxcbiAgICAgICAgYXBpS2V5OiB0aGlzLmFwaUtleSxcbiAgICAgICAgdXNlcklkOiB0aGlzLnVzZXJJZCxcbiAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgICAgLy8gU2NvcGUgb3JnX2NvbmZpZy5jb25maWdzIHRvIHRoaXMgbmFtZXNwYWNlIHNvIGJvb3RzdHJhcCBkb2Vzbid0IHJldHVyblxuICAgICAgICAvLyBpbnRlcm5hbC1vbmx5IG9yZyBjb25maWdzIHRvIHRoZSBicm93c2VyIChtYXRjaGVzIHRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcpLlxuICAgICAgICBuYW1lc3BhY2U6IHRoaXMubmFtZXNwYWNlLFxuICAgICAgICBnYXRlTmFtZXMsXG4gICAgICAgIHVybDogY2xlYW5zZWRVcmwsXG4gICAgICAgIG9yZ0lkOiB3aWRnZXRDb25maWcub3JnLm9yZy5pZCxcbiAgICAgICAgb3JnU2hvcnROYW1lOiB3aWRnZXRDb25maWcub3JnLm9yZy5zaG9ydF9uYW1lLFxuICAgICAgICBjb250ZXh0U291cmNlOiB0aGlzLmNvbnRleHRTb3VyY2UsXG4gICAgICAgIGVudjogdGhpcy5lbnYsXG4gICAgICAgIGZlYXR1cmVHYXRlczogZmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFncygpLFxuICAgICAgICAvLyBUaGUgcGVyc2lzdGVudCBjaGF0IHNlc3Npb24gaWQgKHNhbWUgc291cmNlIHJlc29sdmVVcmwgcmVhZHMpIHNvXG4gICAgICAgIC8vIGJvb3RzdHJhcCdzIHVybF9yZXNvbHZpbmcgY2FycmllcyBpdCBpbnN0ZWFkIG9mIGFuIGVtcHR5IHN0cmluZy5cbiAgICAgICAgY2hhdElkOiBnZXRBdG9tU3RvcmUoKS5nZXQoY2hhdElkQXRvbSksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYm9vdHN0cmFwVXJsUmVzb2x2aW5nID0gdXJsUmVzb2x2aW5nXG4gICAgICAgID8geyB1cmw6IGNsZWFuc2VkVXJsLCByZXNwb25zZTogdXJsUmVzb2x2aW5nIH1cbiAgICAgICAgOiBudWxsO1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZ2V0RW52aXZlQ29uZmlnIHwgYm9vdHN0cmFwIHVwZ3JhZGUgZmFpbGVkLCB1c2luZyBnZXRXaWRnZXRDb25maWcnLCBlcnIpO1xuICAgICAgcmV0dXJuIHdpZGdldENvbmZpZztcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHN0YXRpYyBtb2NrIGRhdGEgZnJvbSBpdHMgY29uc3RydWN0b3IgYXJndW1lbnRzLiBQYXNzZXMgZW1wdHkgYmFzZVVybC9hcGlLZXlcbiAqIHNvIGFueSBjb2RlIGNoZWNraW5nIGlzUmVhZHkgZG9lcyBub3QgZmlyZSByZWFsIG5ldHdvcmsgcmVxdWVzdHMuIFRoZSBvcmdDb25maWcgZmllbGRcbiAqIGNvdmVycyBjb2xvcnMsIGZyb250ZW5kQ29uZmlnLCBhbmQgcGFnZS93aWRnZXQvbW91bnRpbmcgY29uZmlncyB3aXRob3V0IGFueSBuZXR3b3JrIGNhbGxzLlxuICovXG5leHBvcnQgY2xhc3MgTW9ja0Vudml2ZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBJRW52aXZlQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgcmVhZG9ubHkgYXBpS2V5OiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcpIHt9XG5cbiAgYXN5bmMgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLm1vY2tDb25maWc7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVlBLE1BQU0sU0FBUyxJQUFJQSxlQUFPLHNCQUFzQjtBQU1oRCxNQUFNLHNCQUFzQixNQUFTO0FBOERyQyxJQUFhLHNCQUFiLE1BQWlFO0NBbUIvRCxZQUFZLEVBQ1YsU0FDQSxRQUNBLFFBQ0EsV0FDQSxRQUNBLEtBQ0EsaUJBQzJCO2tCQVprQjsrQkFFZTtBQVc1RCxPQUFLLFVBQVU7QUFDZixPQUFLLFNBQVM7QUFDZCxPQUFLLFNBQVM7QUFDZCxPQUFLLFlBQVk7QUFDakIsT0FBSyxTQUFTO0FBQ2QsT0FBSyxNQUFNO0FBQ1gsT0FBSyxnQkFBZ0I7O0NBT3ZCLDRCQUEwRDtFQUN4RCxNQUFNLFFBQVEsS0FBSztBQUNuQixPQUFLLHdCQUF3QjtBQUM3QixTQUFPOztDQUdULEFBQVEsY0FBc0I7QUFDNUIsU0FBTyx1QkFBdUIsS0FBSyxRQUFRLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxPQUFPLEdBQUcsS0FBSyxVQUFVLEdBQUcsS0FBSzs7Q0FPckcsQUFBUSxtQkFBK0M7QUFDckQsTUFBSSx1QkFBdUIsQ0FDekIsUUFBTztBQUVULE1BQUk7R0FDRixNQUFNLE1BQU0sZUFBZSxRQUFRLEtBQUssYUFBYSxDQUFDO0FBQ3RELE9BQUksQ0FBQyxJQUNILFFBQU87R0FFVCxNQUFNLFFBQVEsS0FBSyxNQUFNLElBQUk7QUFDN0IsT0FBSSxLQUFLLEtBQUssSUFBSSxNQUFNLFVBQ3RCLFFBQU87QUFFVCxVQUFPLE1BQU07VUFDUDtBQUNOLFVBQU87OztDQUlYLEFBQVEsa0JBQWtCLE9BQWtDO0FBQzFELE1BQUksdUJBQXVCLENBQ3pCO0FBRUYsTUFBSTtHQUNGLE1BQU1DLFFBQTJCO0lBQUU7SUFBTyxXQUFXLEtBQUssS0FBSyxHQUFHO0lBQXFCO0FBQ3ZGLGtCQUFlLFFBQVEsS0FBSyxhQUFhLEVBQUUsS0FBSyxVQUFVLE1BQU0sQ0FBQztVQUMzRDs7Q0FNVixNQUFNLGtCQUFnRDtBQUNwRCxNQUFJLEtBQUssYUFBYSxLQUNwQixRQUFPLEtBQUs7RUFHZCxNQUFNLFNBQVMsS0FBSyxrQkFBa0I7QUFDdEMsTUFBSSxXQUFXLE1BQU07QUFDbkIsUUFBSyxXQUFXO0FBQ2hCLFVBQU8sS0FBSzs7RUFRZCxNQUFNLFlBQVksT0FBTyxPQUFPLGFBQWEsQ0FBQyxLQUFJLGdCQUFlLFlBQVksVUFBVSxDQUFDO0VBRXhGLE1BQU0sZUFBZSxNQUFNLDBCQUN6QixLQUFLLFNBQ0wsS0FBSyxRQUNMLEtBQUssUUFDTCxXQUNBLEtBQUssT0FDTjtBQUVELE9BQUssV0FBVyxNQUFNLEtBQUssd0JBQXdCLGNBQWMsVUFBVTtBQUMzRSxPQUFLLGtCQUFrQixLQUFLLFNBQVM7QUFDckMsU0FBTyxLQUFLOztDQW1CZCxNQUFjLHdCQUNaLGNBQ0EsV0FDOEI7QUFDOUIsTUFBSSxLQUFLLFFBQVEsVUFBYSxLQUFLLGtCQUFrQixPQUNuRCxRQUFPO0VBSVQsTUFBTSxxQkFBcUIsSUFBSSxtQkFBbUIsYUFBYSxNQUFNO0FBQ3JFLE1BQUksQ0FBQyxtQkFBbUIscUJBQXFCLGFBQWEsaUJBQWlCLENBQ3pFLFFBQU87RUFRVCxNQUFNLGNBQWMsT0FBTyxTQUFTLEtBQUssYUFBYSxDQUFDLE1BQU07QUFDN0QsTUFBSTtHQUNGLE1BQU0sRUFBRSxRQUFRLGlCQUFpQixNQUFNLHFCQUFxQjtJQUMxRCxTQUFTLEtBQUs7SUFDZCxRQUFRLEtBQUs7SUFDYixRQUFRLEtBQUs7SUFDYixRQUFRLEtBQUs7SUFHYixXQUFXLEtBQUs7SUFDaEI7SUFDQSxLQUFLO0lBQ0wsT0FBTyxhQUFhLElBQUksSUFBSTtJQUM1QixjQUFjLGFBQWEsSUFBSSxJQUFJO0lBQ25DLGVBQWUsS0FBSztJQUNwQixLQUFLLEtBQUs7SUFDVixjQUFjLG1CQUFtQixpQkFBaUI7SUFHbEQsUUFBUSxjQUFjLENBQUMsSUFBSSxXQUFXO0lBQ3ZDLENBQUM7QUFDRixRQUFLLHdCQUF3QixlQUN6QjtJQUFFLEtBQUs7SUFBYSxVQUFVO0lBQWMsR0FDNUM7QUFDSixVQUFPO1dBQ0EsS0FBSztBQUNaLFVBQU8sU0FBUyxxRUFBcUUsSUFBSTtBQUN6RixVQUFPOzs7Ozs7Ozs7QUFVYixJQUFhLDBCQUFiLE1BQXFFO0NBS25FLFlBQVksQUFBaUJDLFlBQWlDO0VBQWpDO2lCQUpLO2dCQUVEOztDQUlqQyxNQUFNLGtCQUFnRDtBQUNwRCxTQUFPLEtBQUsifQ==
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnU2VydmljZS5qcyIsIm5hbWVzIjpbImVudHJ5OiBDYWNoZWRDb25maWdFbnRyeSIsIm1vY2tDb25maWc6IEVudml2ZVNlcnZpY2VDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9lbnZpdmVDb25maWdTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LCBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnc3JjL2NvbnRleHRzL2dyYXBocWxDb250ZXh0JztcbmltcG9ydCB7IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSB9IGZyb20gJ3NyYy90eXBlcy9jb25maWctdmVyc2lvbnMnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2ZlYXR1cmVGbGFnU2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgZ2V0QXRvbVN0b3JlIH0gZnJvbSAnc3JjL2F0b21zL2F0b21TdG9yZS9hdG9tU3RvcmUnO1xuaW1wb3J0IHsgY2hhdElkQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgZmV0Y2hCb290c3RyYXBDb25maWcgfSBmcm9tICcuL2ZldGNoQm9vdHN0cmFwQ29uZmlnJztcblxuLy8gU2hvcnQtbGl2ZWQgc28gY29uZmlnIGNoYW5nZXMgKGdhdGVzLCBleHBlcmltZW50cykgc3RpbGwgcHJvcGFnYXRlIHdpdGhpblxuLy8gYSBzZXNzaW9uLCB3aGlsZSBzcGFyaW5nIGV2ZXJ5IHBhZ2UgbmF2aWdhdGlvbiBmcm9tIHJlLWZldGNoaW5nIG9yZ1xuLy8gY29uZmlnICsgR3JhcGhRTCBjb25maWcsIGJvdGggb2Ygd2hpY2ggc2l0IG9uIHRoZSBjcml0aWNhbCBwYXRoIGJlZm9yZVxuLy8gZmlyc3QgcGFpbnQuXG5jb25zdCBDT05GSUdfQ0FDSEVfVFRMX01TID0gNSAqIDYwICogMTAwMDtcblxudHlwZSBDYWNoZWRDb25maWdFbnRyeSA9IHtcbiAgdmFsdWU6IEVudml2ZVNlcnZpY2VDb25maWc7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xufTtcblxudHlwZSBFbnZpdmVDb25maWdTZXJ2aWNlUHJvcHMgPSB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIC8vIFRoZSB1cmxfcmVzb2x2aW5nIGNvbnRleHQgYml0cyB0aGUgaG9va3MgbGF5ZXIgY2FuJ3QgZGVyaXZlIGl0c2VsZiwgc3VwcGxpZWRcbiAgLy8gYnkgdGhlIGluamVjdGlvbiBidW5kbGUgc28gZ2V0RW52aXZlQ29uZmlnIGNhbiByZXF1ZXN0IGJvb3RzdHJhcCdzXG4gIC8vIHVybF9yZXNvbHZpbmcgYnJhbmNoLiBPcHRpb25hbDogd2hlbiBhYnNlbnQgKG1vY2tzLCBvciBhIGRpc2FibGVkIHNlc3Npb24pXG4gIC8vIGJvb3RzdHJhcCBpcyBzdGlsbCBjYWxsZWQgZm9yIGNvbmZpZywganVzdCB3aXRob3V0IHRoZSB1cmxfcmVzb2x2aW5nIGJyYW5jaC5cbiAgZW52Pzogc3RyaW5nO1xuICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgb3JnOiB7XG4gICAgb3JnOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgc2hvcnRfbmFtZTogc3RyaW5nO1xuICAgICAgZGlzcGxheV9uYW1lOiBzdHJpbmc7XG4gICAgICBkb21haW46IHN0cmluZztcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgY3JlYXRlZF9hdDogc3RyaW5nO1xuICAgICAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAvLyBUaGUgdXNlcidzIFN0YXRzaWcgZXhwZXJpbWVudC1sYXllciBhc3NpZ25tZW50cywgZnJvbSB0aGUgd2lkZ2V0IGNvbmZpZydzXG4gIC8vIHJlc29sdmVkIGV4cGVyaW1lbnRzIOKAlCBnZXRXaWRnZXRDb25maWcsIG9yIGJvb3RzdHJhcCdzIGB3aWRnZXRfY29uZmlnYFxuICAvLyAoYm90aCB1bmdhdGVkIGJ5IHVzZV91bmlmaWVkX2NvbmZpZzsgZW1wdHkgb25seSB1bmRlciBhIHZlcnNpb24gcGluKS5cbiAgLy8gYW1wbGl0dWRlU2VydmljZSByZWFkcyB0aGVzZSB0byBlbnJpY2ggZXZlbnRzIHdpdGggYGV4cGVyaW1lbnQue25zfS4qYCBwcm9wcy5cbiAgZXhwZXJpbWVudF9hc3NpZ25tZW50cz86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W107XG4gIC8vIG9yZ0NvbmZpZy5yZXNvbHV0aW9uIGlzIHBvcHVsYXRlZCBvbmx5IG9uIHRoZSB1bmlmaWVkIHBhdGggKHNvdXJjZWQgZnJvbVxuICAvLyBnZXRXaWRnZXRDb25maWcucmVzb2x1dGlvbiwgbm90IC92MS9vcmcvY29uZmlnLnJlc29sdXRpb24pIHNvIHRoZSB2ZXJzaW9uXG4gIC8vIHRocmVhZGVkIGludG8gaW5mZXJlbmNlIHJlcXVlc3RzIG1hdGNoZXMgdGhlIHZlcnNpb24gdGhhdCBwcm9kdWNlZCB0aGVcbiAgLy8gcmVuZGVyZWQgd2lkZ2V0cy5cbiAgb3JnQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nO1xuICBnZXRFbnZpdmVDb25maWcoKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPjtcbiAgLy8gTkI6IGB0YWtlQm9vdHN0cmFwVXJsUmVzb2x2aW5nYCBpcyBpbnRlbnRpb25hbGx5IE5PVCBvbiB0aGlzIGludGVyZmFjZS4gSXQnc1xuICAvLyBhIGJvb3RzdHJhcC1vbmx5IGRldGFpbCBjb25zdW1lZCBzb2xlbHkgYnkgdGhlIGluamVjdGlvbiBidW5kbGUgdmlhIHRoZVxuICAvLyBjb25jcmV0ZSBFbnZpdmVDb25maWdTZXJ2aWNlOyBrZWVwaW5nIGl0IG9mZiB0aGUgcHVibGljIERJIGNvbnRyYWN0IGF2b2lkcyBhXG4gIC8vIGJyZWFraW5nIGNoYW5nZSBmb3IgZXh0ZXJuYWwgY29uc3VtZXJzIHRoYXQgc3VwcGx5IHRoZWlyIG93biBjb25maWcgc2VydmljZVxuICAvLyAoRW52aXZlUHJvdmlkZXIgb25seSBldmVyIGNhbGxzIGdldEVudml2ZUNvbmZpZyAvIGJhc2VVcmwgLyBhcGlLZXkpLlxufVxuXG4vLyBUaGUgYm9vdHN0cmFwIHVybF9yZXNvbHZpbmcgcGF5bG9hZCBwbHVzIHRoZSBVUkwgaXQgd2FzIHJlc29sdmVkIGZvciwgc28gdGhlXG4vLyB3YXJtLXVwIGNhbiB2ZXJpZnkgdGhlIFVSTCBzdGlsbCBtYXRjaGVzIGJlZm9yZSBzZWVkaW5nIChzZWUgRjE6IGEgU1BBIG5hdlxuLy8gZHVyaW5nIHRoZSBib290c3RyYXAgcm91bmQgdHJpcCBtdXN0IG5vdCBjYWNoZSBVUkwgQSdzIHJlc3VsdCB1bmRlciBVUkwgQikuXG50eXBlIEJvb3RzdHJhcFVybFJlc29sdmluZyA9IHsgdXJsOiBzdHJpbmc7IHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlIH07XG5cbmV4cG9ydCBjbGFzcyBFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGlLZXk6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGVudj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZXNwb25zZTogRW52aXZlU2VydmljZUNvbmZpZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgYm9vdHN0cmFwVXJsUmVzb2x2aW5nOiBCb290c3RyYXBVcmxSZXNvbHZpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgYmFzZVVybCxcbiAgICBhcGlLZXksXG4gICAgdXNlcklkLFxuICAgIG5hbWVzcGFjZSxcbiAgICBzb3VyY2UsXG4gICAgZW52LFxuICAgIGNvbnRleHRTb3VyY2UsXG4gIH06IEVudml2ZUNvbmZpZ1NlcnZpY2VQcm9wcykge1xuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5hcGlLZXkgPSBhcGlLZXk7XG4gICAgdGhpcy51c2VySWQgPSB1c2VySWQ7XG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgdGhpcy5lbnYgPSBlbnY7XG4gICAgdGhpcy5jb250ZXh0U291cmNlID0gY29udGV4dFNvdXJjZTtcbiAgfVxuXG4gIC8vIEhhbmRzIG9mZiAob25jZSkgdGhlIHVybF9yZXNvbHZpbmcgcGF5bG9hZCB0aGF0IC92MS9zZXNzaW9uL2Jvb3RzdHJhcFxuICAvLyByZXR1cm5lZCBhbG9uZ3NpZGUgdGhlIGNvbmZpZyDigJQgcGFpcmVkIHdpdGggdGhlIFVSTCBpdCB3YXMgcmVzb2x2ZWQgZm9yIOKAlCBzb1xuICAvLyB0aGUgd2FybS11cCBzZWVkcyB1cmxSZXNvbHZlckF0b20gd2l0aCBpdCBpbnN0ZWFkIG9mIGZpcmluZyBhIHNlcGFyYXRlXG4gIC8vIC92MS91cmxfcmVzb2x2aW5nLiBudWxsIG9uIHRoZSBjYWNoZWQgcGF0aCBvciBhIGNvbmZpZy1vbmx5IGJvb3RzdHJhcCAoYVxuICAvLyBkaXNhYmxlZCBzZXNzaW9uLCB3aGljaCByZXF1ZXN0cyBubyB1cmxfcmVzb2x2aW5nIGJyYW5jaCkuXG4gIHRha2VCb290c3RyYXBVcmxSZXNvbHZpbmcoKTogQm9vdHN0cmFwVXJsUmVzb2x2aW5nIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmJvb3RzdHJhcFVybFJlc29sdmluZztcbiAgICB0aGlzLmJvb3RzdHJhcFVybFJlc29sdmluZyA9IG51bGw7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWNoZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZW52aXZlLWNvbmZpZy1jYWNoZToke3RoaXMuYmFzZVVybH06JHt0aGlzLmFwaUtleX06JHt0aGlzLnVzZXJJZH06JHt0aGlzLm5hbWVzcGFjZX06JHt0aGlzLnNvdXJjZX1gO1xuICB9XG5cbiAgLy8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgLyBgc3BpZmZ5X2NvbmZpZ192ZXJzaW9uYCBwaW4gYSBzcGVjaWZpYyBjb25maWdcbiAgLy8gdmVyc2lvbiBmb3IgZGVidWdnaW5nL3JvbGxiYWNrLiBBbnkgdXNlIG9mIHRoYXQgb3ZlcnJpZGUgbXVzdCBhbHdheXNcbiAgLy8gYnlwYXNzIHRoZSBjYWNoZSBiZWxvdyDigJQgYm90aCByZWFkaW5nIGEgc3RhbGUgZW50cnkgYW5kIHdyaXRpbmcgb25lXG4gIC8vIHVuZGVyIHRoZSBzaGFyZWQga2V5IHdvdWxkIGRlZmVhdCB0aGUgb3ZlcnJpZGUncyBwdXJwb3NlLlxuICBwcml2YXRlIHJlYWRDYWNoZWRDb25maWcoKTogRW52aXZlU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmIChjb25maWdWZXJzaW9uT3ZlcnJpZGUoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXcgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0Q2FjaGVLZXkoKSk7XG4gICAgICBpZiAoIXJhdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVudHJ5ID0gSlNPTi5wYXJzZShyYXcpIGFzIENhY2hlZENvbmZpZ0VudHJ5O1xuICAgICAgaWYgKERhdGUubm93KCkgPj0gZW50cnkuZXhwaXJlc0F0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUNhY2hlZENvbmZpZyh2YWx1ZTogRW52aXZlU2VydmljZUNvbmZpZyk6IHZvaWQge1xuICAgIGlmIChjb25maWdWZXJzaW9uT3ZlcnJpZGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZW50cnk6IENhY2hlZENvbmZpZ0VudHJ5ID0geyB2YWx1ZSwgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQ09ORklHX0NBQ0hFX1RUTF9NUyB9O1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldENhY2hlS2V5KCksIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTdG9yYWdlIGRpc2FibGVkLCBmdWxsLCBvciB1bmF2YWlsYWJsZSAocHJpdmF0ZSBicm93c2luZywgZXRjLikgLVxuICAgICAgLy8gZmFpbCBvcGVuIGFuZCBsZXQgdGhlIG5leHQgY2FsbCByZS1mZXRjaCBpbnN0ZWFkIG9mIGNhY2hpbmcuXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0RW52aXZlQ29uZmlnKCk6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4ge1xuICAgIGlmICh0aGlzLnJlc3BvbnNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnJlYWRDYWNoZWRDb25maWcoKTtcbiAgICBpZiAoY2FjaGVkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJlc3BvbnNlID0gY2FjaGVkO1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuXG4gICAgLy8gL3YxL3Nlc3Npb24vYm9vdHN0cmFwIGlzIHRoZSBzaW5nbGUgc2Vzc2lvbi1jb25maWcgY2FsbDogb3JnIGlkZW50aXR5ICtcbiAgICAvLyBmZWF0dXJlIGdhdGVzICsgZXhwZXJpbWVudCBhc3NpZ25tZW50cyArIHByb2R1Y3RzQ29uZmlnL3Jlc29sdXRpb24sIFBMVVNcbiAgICAvLyB0aGUgaW5pdGlhbCB1cmxfcmVzb2x2aW5nIOKAlCB0aGUgY29uc29saWRhdGlvbiBvZiBHRVQgL3YxL29yZy9jb25maWcsXG4gICAgLy8gR3JhcGhRTCBtZS5nZXRXaWRnZXRDb25maWcsIGFuZCBQT1NUIC92MS91cmxfcmVzb2x2aW5nIGludG8gb25lIHJvdW5kIHRyaXAuXG4gICAgLy8gYGdhdGVOYW1lc2AgaXMgdGhlIGZ1bGwgbGlzdCBvZiBnYXRlcyB0aGUgYXBwIGNoZWNrcywgc28gdGhlIHNlcnZlclxuICAgIC8vIGV2YWx1YXRlcyBhbmQgcmV0dXJucyB0aGVtLiBBIGZhaWx1cmUgdGhyb3dzIChzZWUgZmV0Y2hCb290c3RyYXBDb25maWcpIGFuZFxuICAgIC8vIHByb3BhZ2F0ZXMgdG8gaW5qZWN0LnRzLCB3aGljaCBhYm9ydHMgaW5qZWN0aW9uIOKAlCB0aGVyZSBpcyBubyBnZXRXaWRnZXRDb25maWdcbiAgICAvLyBsZWZ0IHRvIGZhbGwgYmFjayB0bywgdGhlIHNhbWUgYmxhc3QgcmFkaXVzIHRoZSBzaW5nbGUgL3YxL29yZy9jb25maWcgaGFkLlxuICAgIGNvbnN0IGdhdGVOYW1lcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoZmVhdHVyZUdhdGUgPT4gZmVhdHVyZUdhdGUudG9TdHJpbmcoKSk7XG5cbiAgICAvLyBlbnYgKyBjb250ZXh0U291cmNlIGFyZSBzdXBwbGllZCBvbmx5IGJ5IHRoZSBpbmplY3Rpb24gYnVuZGxlICh0aGUgaG9va3NcbiAgICAvLyBsYXllciBjYW4ndCBkZXJpdmUgdGhlbSkuIFByZXNlbnQg4oaSIHJlcXVlc3QgYm9vdHN0cmFwJ3MgdXJsX3Jlc29sdmluZyBicmFuY2hcbiAgICAvLyBhbmQgc3Rhc2ggaXQgZm9yIHRoZSB3YXJtLXVwIHRvIHNlZWQuIEFic2VudCAobW9ja3MsIG9yIGEgZGlzYWJsZWQgc2Vzc2lvblxuICAgIC8vIHRoYXQgc3RpbGwgbmVlZHMgb3JnIGNvbmZpZyArIGdhdGVzIGZvciB0aGUgXCJFbnZpdmUgSW5pdGlhbGl6ZWRcIiBldmVudCkg4oaSXG4gICAgLy8gYm9vdHN0cmFwIHJldHVybnMgY29uZmlnIG9ubHksIG5vIHBhZ2UtdmFyaWFudCByb3VuZCB0cmlwLlxuICAgIGNvbnN0IHdhbnRzVXJsUmVzb2x2aW5nID0gdGhpcy5lbnYgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbnRleHRTb3VyY2UgIT09IHVuZGVmaW5lZDtcbiAgICAvLyBDYXB0dXJlZCBvbmNlIGFuZCByZXVzZWQgZm9yIHRoZSBzdGFzaCBzbyB0aGUgVVJMIGNhcnJpZWQgdG8gdGhlIHdhcm0tdXAgaXNcbiAgICAvLyBwcm92YWJseSB0aGUgb25lIGJvb3RzdHJhcCByZXNvbHZlZC4gVGhlIHdhcm0tdXAgb25seSBzZWVkcyBpdCBpZiB0aGlzIHN0aWxsXG4gICAgLy8gbWF0Y2hlcyB0aGUgY3VycmVudCBVUkwgKGEgU1BBIG5hdiBkdXJpbmcgdGhlIHJvdW5kIHRyaXAgd291bGQgb3RoZXJ3aXNlXG4gICAgLy8gY2FjaGUgdGhpcyByZXN1bHQgdW5kZXIgYSBsYXRlciBVUkwpLiBTYW1lIGNsZWFuc2luZyBhcyB3YXJtVXJsUmVzb2x2ZXIgc29cbiAgICAvLyB0aGUgdXJsUmVzb2x2ZXJBdG9tIGtleSBsaW5lcyB1cC5cbiAgICBjb25zdCBjbGVhbnNlZFVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuXG4gICAgY29uc3QgeyBjb25maWcsIHVybFJlc29sdmluZyB9ID0gYXdhaXQgZmV0Y2hCb290c3RyYXBDb25maWcoe1xuICAgICAgYmFzZVVybDogdGhpcy5iYXNlVXJsLFxuICAgICAgYXBpS2V5OiB0aGlzLmFwaUtleSxcbiAgICAgIHVzZXJJZDogdGhpcy51c2VySWQsXG4gICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgLy8gU2NvcGUgb3JnX2NvbmZpZy5jb25maWdzIHRvIHRoaXMgbmFtZXNwYWNlIHNvIGJvb3RzdHJhcCBkb2Vzbid0IHJldHVyblxuICAgICAgLy8gaW50ZXJuYWwtb25seSBvcmcgY29uZmlncyB0byB0aGUgYnJvd3NlciAobWF0Y2hlcyB0aGUgbGVnYWN5IC92MS9vcmcvY29uZmlnKS5cbiAgICAgIG5hbWVzcGFjZTogdGhpcy5uYW1lc3BhY2UsXG4gICAgICBnYXRlTmFtZXMsXG4gICAgICAvLyBUaGUgcGVyc2lzdGVudCBjaGF0IHNlc3Npb24gaWQgKHNhbWUgc291cmNlIHJlc29sdmVVcmwgcmVhZHMpIHNvXG4gICAgICAvLyBib290c3RyYXAncyB1cmxfcmVzb2x2aW5nIGNhcnJpZXMgaXQgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcuXG4gICAgICBjaGF0SWQ6IGdldEF0b21TdG9yZSgpLmdldChjaGF0SWRBdG9tKSxcbiAgICAgIC4uLih3YW50c1VybFJlc29sdmluZ1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIHVybDogY2xlYW5zZWRVcmwsXG4gICAgICAgICAgICBjb250ZXh0U291cmNlOiB0aGlzLmNvbnRleHRTb3VyY2UsXG4gICAgICAgICAgICBlbnY6IHRoaXMuZW52LFxuICAgICAgICAgICAgLy8gQ2xpZW50LXNpZGUgZ2F0ZSBvdmVycmlkZXMgb25seSAocXVlcnkvd2luZG93L2xvY2FsU3RvcmFnZSk7IHRoZVxuICAgICAgICAgICAgLy8gc2VydmVyIHJlc29sdmVzIHRoZSByZWFsIGdhdGUgdmFsdWVzIGFuZCBtZXJnZXMgdGhlc2Ugb3ZlciB0aGVtLlxuICAgICAgICAgICAgZmVhdHVyZUdhdGVzOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZXMoKSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge30pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5ib290c3RyYXBVcmxSZXNvbHZpbmcgPSB1cmxSZXNvbHZpbmcgPyB7IHVybDogY2xlYW5zZWRVcmwsIHJlc3BvbnNlOiB1cmxSZXNvbHZpbmcgfSA6IG51bGw7XG4gICAgdGhpcy5yZXNwb25zZSA9IGNvbmZpZztcbiAgICB0aGlzLndyaXRlQ2FjaGVkQ29uZmlnKHRoaXMucmVzcG9uc2UpO1xuICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBzdGF0aWMgbW9jayBkYXRhIGZyb20gaXRzIGNvbnN0cnVjdG9yIGFyZ3VtZW50cy4gUGFzc2VzIGVtcHR5IGJhc2VVcmwvYXBpS2V5XG4gKiBzbyBhbnkgY29kZSBjaGVja2luZyBpc1JlYWR5IGRvZXMgbm90IGZpcmUgcmVhbCBuZXR3b3JrIHJlcXVlc3RzLiBUaGUgb3JnQ29uZmlnIGZpZWxkXG4gKiBjb3ZlcnMgY29sb3JzLCBmcm9udGVuZENvbmZpZywgYW5kIHBhZ2Uvd2lkZ2V0L21vdW50aW5nIGNvbmZpZ3Mgd2l0aG91dCBhbnkgbmV0d29yayBjYWxscy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vY2tFbnZpdmVDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgSUVudml2ZUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtb2NrQ29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnKSB7fVxuXG4gIGFzeW5jIGdldEVudml2ZUNvbmZpZygpOiBQcm9taXNlPEVudml2ZVNlcnZpY2VDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5tb2NrQ29uZmlnO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBY0EsTUFBTSxzQkFBc0IsTUFBUztBQThEckMsSUFBYSxzQkFBYixNQUFpRTtDQW1CL0QsWUFBWSxFQUNWLFNBQ0EsUUFDQSxRQUNBLFdBQ0EsUUFDQSxLQUNBLGlCQUMyQjtrQkFaa0I7K0JBRWU7QUFXNUQsT0FBSyxVQUFVO0FBQ2YsT0FBSyxTQUFTO0FBQ2QsT0FBSyxTQUFTO0FBQ2QsT0FBSyxZQUFZO0FBQ2pCLE9BQUssU0FBUztBQUNkLE9BQUssTUFBTTtBQUNYLE9BQUssZ0JBQWdCOztDQVF2Qiw0QkFBMEQ7RUFDeEQsTUFBTSxRQUFRLEtBQUs7QUFDbkIsT0FBSyx3QkFBd0I7QUFDN0IsU0FBTzs7Q0FHVCxBQUFRLGNBQXNCO0FBQzVCLFNBQU8sdUJBQXVCLEtBQUssUUFBUSxHQUFHLEtBQUssT0FBTyxHQUFHLEtBQUssT0FBTyxHQUFHLEtBQUssVUFBVSxHQUFHLEtBQUs7O0NBT3JHLEFBQVEsbUJBQStDO0FBQ3JELE1BQUksdUJBQXVCLENBQ3pCLFFBQU87QUFFVCxNQUFJO0dBQ0YsTUFBTSxNQUFNLGVBQWUsUUFBUSxLQUFLLGFBQWEsQ0FBQztBQUN0RCxPQUFJLENBQUMsSUFDSCxRQUFPO0dBRVQsTUFBTSxRQUFRLEtBQUssTUFBTSxJQUFJO0FBQzdCLE9BQUksS0FBSyxLQUFLLElBQUksTUFBTSxVQUN0QixRQUFPO0FBRVQsVUFBTyxNQUFNO1VBQ1A7QUFDTixVQUFPOzs7Q0FJWCxBQUFRLGtCQUFrQixPQUFrQztBQUMxRCxNQUFJLHVCQUF1QixDQUN6QjtBQUVGLE1BQUk7R0FDRixNQUFNQSxRQUEyQjtJQUFFO0lBQU8sV0FBVyxLQUFLLEtBQUssR0FBRztJQUFxQjtBQUN2RixrQkFBZSxRQUFRLEtBQUssYUFBYSxFQUFFLEtBQUssVUFBVSxNQUFNLENBQUM7VUFDM0Q7O0NBTVYsTUFBTSxrQkFBZ0Q7QUFDcEQsTUFBSSxLQUFLLGFBQWEsS0FDcEIsUUFBTyxLQUFLO0VBR2QsTUFBTSxTQUFTLEtBQUssa0JBQWtCO0FBQ3RDLE1BQUksV0FBVyxNQUFNO0FBQ25CLFFBQUssV0FBVztBQUNoQixVQUFPLEtBQUs7O0VBV2QsTUFBTSxZQUFZLE9BQU8sT0FBTyxhQUFhLENBQUMsS0FBSSxnQkFBZSxZQUFZLFVBQVUsQ0FBQztFQU94RixNQUFNLG9CQUFvQixLQUFLLFFBQVEsVUFBYSxLQUFLLGtCQUFrQjtFQU0zRSxNQUFNLGNBQWMsT0FBTyxTQUFTLEtBQUssYUFBYSxDQUFDLE1BQU07RUFFN0QsTUFBTSxFQUFFLFFBQVEsaUJBQWlCLE1BQU0scUJBQXFCO0dBQzFELFNBQVMsS0FBSztHQUNkLFFBQVEsS0FBSztHQUNiLFFBQVEsS0FBSztHQUNiLFFBQVEsS0FBSztHQUdiLFdBQVcsS0FBSztHQUNoQjtHQUdBLFFBQVEsY0FBYyxDQUFDLElBQUksV0FBVztHQUN0QyxHQUFJLG9CQUNBO0lBQ0UsS0FBSztJQUNMLGVBQWUsS0FBSztJQUNwQixLQUFLLEtBQUs7SUFHVixjQUFjLG1CQUFtQix5QkFBeUI7SUFDM0QsR0FDRCxFQUFFO0dBQ1AsQ0FBQztBQUVGLE9BQUssd0JBQXdCLGVBQWU7R0FBRSxLQUFLO0dBQWEsVUFBVTtHQUFjLEdBQUc7QUFDM0YsT0FBSyxXQUFXO0FBQ2hCLE9BQUssa0JBQWtCLEtBQUssU0FBUztBQUNyQyxTQUFPLEtBQUs7Ozs7Ozs7O0FBU2hCLElBQWEsMEJBQWIsTUFBcUU7Q0FLbkUsWUFBWSxBQUFpQkMsWUFBaUM7RUFBakM7aUJBSks7Z0JBRUQ7O0NBSWpDLE1BQU0sa0JBQWdEO0FBQ3BELFNBQU8sS0FBSyJ9
@@ -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 = require_config_versions.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
  exports.fetchBootstrapConfig = fetchBootstrapConfig;
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hCb290c3RyYXBDb25maWcuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiY29uZmlnVmVyc2lvbk92ZXJyaWRlIiwicmVzdWx0OiBSYXdCb290c3RyYXBSZXNwb25zZSIsIm9yZ0NvbmZpZ1ZhbHVlczogR3JhcGhRbENvbmZpZ1ZhbHVlcyIsInRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEJvb3RzdHJhcENvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHtcbiAgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSxcbiAgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsXG4gIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7IHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfSBmcm9tICcuL2ZldGNoR3JhcGhRTENvbmZpZyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hCb290c3RyYXBDb25maWcpLlxuaW1wb3J0IHR5cGUgeyBFbnZpdmVTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9lbnZpdmVDb25maWdTZXJ2aWNlJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmV0Y2hCb290c3RyYXBDb25maWcnKTtcblxuLy8gVGhlIHVybC1yZXNvbHZpbmcgY29udGV4dCBiaXRzIHRoZSBob29rcyBsYXllciBjYW4ndCBkZXJpdmUgb24gaXRzIG93biDigJQgdGhlXG4vLyBpbmplY3Rpb24gYnVuZGxlIHN1cHBsaWVzIGVudiAoYSBidWlsZC10aW1lIHZhcikgYW5kIGNvbnRleHRTb3VyY2UuIG9yZ1xuLy8gaWRlbnRpdHkgaXMgdGhyZWFkZWQgZnJvbSB0aGUgZ2V0V2lkZ2V0Q29uZmlnIHJlc3BvbnNlIGZldGNoZWQgbW9tZW50cyBlYXJsaWVyXG4vLyAoc2VlIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGJvb3RzdHJhcCBvbmx5IHJ1bnMgb24gdGhlIGdhdGUtT04gcGF0aCwgd2hpY2ggcmVhZHNcbi8vIHRoZSBnYXRlIG9mZiBnZXRXaWRnZXRDb25maWcgZmlyc3QsIHNvIG9yZyBpZC9zaG9ydF9uYW1lIGFyZSBhbHJlYWR5IGluIGhhbmQpLlxuZXhwb3J0IGludGVyZmFjZSBGZXRjaEJvb3RzdHJhcENvbmZpZ1BhcmFtcyB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICAvLyBDb25maWcgYHNvdXJjZWAgKFN0YXRzaWcgdXNlciBwcm9wZXJ0eSksICdhcHAnIGluIHRoZSBpbmplY3Rpb24gYnVuZGxlLlxuICBzb3VyY2U6IHN0cmluZztcbiAgLy8gU2NvcGVzIG9yZ19jb25maWcuY29uZmlncyB0byB0aGlzIG5hbWVzcGFjZS4gUkVRVUlSRUQ6IHdpdGhvdXQgaXQgcHltb25vXG4gIC8vIHJldHVybnMgRVZFUlkgbmFtZXNwYWNlIG9uIHRoZSBvcmcg4oCUIGluY2x1ZGluZyBpbnRlcm5hbC1vbmx5IGNvbmZpZ3MgKHRoZSBBSVxuICAvLyBzeXN0ZW0gcHJvbXB0LCBicmFuZC12b2ljZSBpbnN0cnVjdGlvbnMsIGV0Yy4pIOKAlCBpbiB0aGUgcmVzcG9uc2UgdGhlIHB1YmxpY1xuICAvLyBidW5kbGUgcmVjZWl2ZXMuIFRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcgY2FsbCBzY29wZWQgaXQgdGhlIHNhbWUgd2F5LlxuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgZ2F0ZU5hbWVzOiBzdHJpbmdbXTtcbiAgLy8gdXJsX3Jlc29sdmluZyBpbnB1dHM6XG4gIHVybDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU6IHN0cmluZztcbiAgLy8gQ29udGV4dCBgc291cmNlYCBmb3IgdXJsX3Jlc29sdmluZyAoJ2FwcCcgfCAncGxheWdyb3VuZCcpOyBtYXkgZGlmZmVyIGZyb21cbiAgLy8gdGhlIGNvbmZpZyBgc291cmNlYCBhYm92ZSAocGxheWdyb3VuZCA9IEVudml2ZSBIdWIpLlxuICBjb250ZXh0U291cmNlOiBzdHJpbmc7XG4gIGVudjogc3RyaW5nO1xuICBjaGF0SWQ/OiBzdHJpbmc7XG4gIC8vIFRoZSBvdmVycmlkZS1hd2FyZSBmZWF0dXJlIGdhdGVzIChGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdzKCkpLCBzb1xuICAvLyBjbGllbnQtc2lkZSBnYXRlIG92ZXJyaWRlcyAocXVlcnkvd2luZG93L2xvY2FsU3RvcmFnZSkgcmVhY2ggcGFnZS12YXJpYW50XG4gIC8vIHJlc29sdXRpb24g4oCUIHNhbWUgYXMgdGhlIGxlZ2FjeSAvdjEvdXJsX3Jlc29sdmluZyByZXF1ZXN0LiBCb290c3RyYXAgbWVyZ2VzXG4gIC8vIHRoZXNlIE9WRVIgaXRzIG93biBzZXJ2ZXItcmVzb2x2ZWQgZ2F0ZXMuIEhhcm1sZXNzbHkgaWdub3JlZCBieSBweW1vbm8gdW50aWxcbiAgLy8gU2Vzc2lvbkJvb3RzdHJhcFVybFJlc29sdmluZ1JlcXVlc3QgZ2FpbnMgdGhlIGBmZWF0dXJlX2dhdGVzYCBmaWVsZCAodGhlXG4gIC8vIHNjaGVtYSBhbGxvd3MgdW5rbm93biBmaWVsZHM7IHRoZSBtb2RlbCBpcyBgZXh0cmE9J2lnbm9yZSdgKSwgc28gdGhlIEZFIGNhblxuICAvLyBzaGlwIGFoZWFkIG9mIHRoZSBiYWNrZW5kLlxuICBmZWF0dXJlR2F0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBjb25maWc6IEVudml2ZVNlcnZpY2VDb25maWc7XG4gIC8vIFRoZSBpbml0aWFsIHBhZ2UtdmFyaWFudCByZXN1bHQsIHJlYWR5IHRvIHNlZWQgdXJsUmVzb2x2ZXJBdG9tIHNvIHRoZVxuICAvLyB3YXJtLXVwIHNraXBzIGl0cyBvd24gL3YxL3VybF9yZXNvbHZpbmcgY2FsbC4gbnVsbCB3aGVuIGJvb3RzdHJhcCdzXG4gIC8vIChiZXN0LWVmZm9ydCkgdXJsLXJlc29sdmluZyBicmFuY2ggcmV0dXJuZWQgbm90aGluZy5cbiAgdXJsUmVzb2x2aW5nOiBVcmxSZXNvbHZlclJlc3BvbnNlIHwgbnVsbDtcbn1cblxuLy8gLS0tIHJhdyB3aXJlIHNoYXBlcyAoUE9TVCAvdjEvc2Vzc2lvbi9ib290c3RyYXAgaXMgUkVTVCBzbmFrZV9jYXNlKSAtLS0tLS0tLS1cblxuaW50ZXJmYWNlIFJhd0ZlYXR1cmVHYXRlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBib29sZWFuO1xuICBncm91cF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgcnVsZV9pZD86IHN0cmluZyB8IG51bGw7XG59XG5cbmludGVyZmFjZSBSYXdFeHBlcmltZW50QXNzaWdubWVudCB7XG4gIGxheWVyX25hbWU/OiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50WyduYW1lc3BhY2UnXTtcbiAgYWxsb2NhdGVkX2V4cGVyaW1lbnRfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIGdyb3VwX25hbWU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgUmF3UmVzb2x1dGlvbiB7XG4gIGJhc2VfdmVyc2lvbj86IHN0cmluZztcbiAgYmFzZV92ZXJzaW9uX3NvdXJjZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJhd0Jvb3RzdHJhcFJlc3BvbnNlIHtcbiAgb3JnX2NvbmZpZz86IHtcbiAgICBvcmc/OiB7IG9yZz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfTtcbiAgICBnYXRlcz86IFJhd0ZlYXR1cmVHYXRlW107XG4gIH07XG4gIHdpZGdldF9jb25maWc/OiB7XG4gICAgcHJvZHVjdHNfY29uZmlnPzogUGFyYW1ldGVyczx0eXBlb2YgdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZz5bMF07XG4gICAgLy8gUmVhZCBmcm9tIHdpZGdldF9jb25maWcgKG5vdCBvcmdfY29uZmlnKSB0byBtYXRjaCBnZXRXaWRnZXRDb25maWcg4oCUIHNlZSB0aGVcbiAgICAvLyBtYXBwaW5nIGJlbG93LlxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBSYXdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAgIHJlc29sdXRpb24/OiBSYXdSZXNvbHV0aW9uO1xuICB9O1xuICB1cmxfcmVzb2x2aW5nPzogVXJsUmVzb2x2ZXJSZXNwb25zZSB8IG51bGw7XG59XG5cbi8vIGdhdGVzIGFycml2ZSBzbmFrZSAoYGdyb3VwX25hbWVgKTsgZ2V0V2lkZ2V0Q29uZmlnJ3MgYXJyaXZlIGNhbWVsLiBPbmx5IHRoZVxuLy8gbmFtZS92YWx1ZSBhcmUgdXNlZCBmb3IgZ2F0ZSBjaGVja3Mg4oCUIGdyb3VwTmFtZSBpcyBjYXJyaWVkIGZvciBhbXBsaXR1ZGUuXG5jb25zdCB0b0Jvb3RzdHJhcEdhdGVzID0gKHJhdzogUmF3RmVhdHVyZUdhdGVbXSB8IHVuZGVmaW5lZCk6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGcgPT4gKHtcbiAgICBuYW1lOiBnLm5hbWUsXG4gICAgdmFsdWU6IGcudmFsdWUsXG4gICAgZ3JvdXBOYW1lOiBnLmdyb3VwX25hbWUgPz8gdW5kZWZpbmVkLFxuICB9KSk7XG5cbi8vIGV4cGVyaW1lbnRfYXNzaWdubWVudHMgYWxyZWFkeSBtYXRjaCB0aGUgc25ha2UgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRcbi8vIHdpcmUgc2hhcGUgKHVubGlrZSBnZXRXaWRnZXRDb25maWcncyBjYW1lbCwgd2hpY2ggbmVlZHMgdG9FeHBlcmltZW50QXNzaWdubWVudHMpLlxuY29uc3QgdG9Cb290c3RyYXBBc3NpZ25tZW50cyA9IChcbiAgcmF3OiBSYXdFeHBlcmltZW50QXNzaWdubWVudFtdIHwgdW5kZWZpbmVkLFxuKTogT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRbXSA9PlxuICAocmF3ID8/IFtdKS5tYXAoYSA9PiAoe1xuICAgIGxheWVyX25hbWU6IGEubGF5ZXJfbmFtZSxcbiAgICBuYW1lc3BhY2U6IGEubmFtZXNwYWNlLFxuICAgIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU6IGEuYWxsb2NhdGVkX2V4cGVyaW1lbnRfbmFtZSxcbiAgICBncm91cF9uYW1lOiBhLmdyb3VwX25hbWUsXG4gIH0pKTtcblxuLy8gcmVzb2x1dGlvbiBpcyBzbmFrZSBoZXJlIChSRVNUKTsgZ2V0V2lkZ2V0Q29uZmlnJ3MgaXMgY2FtZWwgKEFyaWFkbmUpLlxuY29uc3QgdG9SZXNvbHV0aW9uID0gKFxuICByYXc6IFJhd1Jlc29sdXRpb24gfCB1bmRlZmluZWQsXG4pOiBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhIHwgdW5kZWZpbmVkID0+XG4gIHJhdyA/IHsgYmFzZVZlcnNpb246IHJhdy5iYXNlX3ZlcnNpb24sIGJhc2VWZXJzaW9uU291cmNlOiByYXcuYmFzZV92ZXJzaW9uX3NvdXJjZSB9IDogdW5kZWZpbmVkO1xuXG4vLyBPbmUgcm91bmQgdHJpcCBmb3IgdGhlIGNvbmZpZyB0aGUgd2lkZ2V0IGNsaWVudCBuZWVkcyBhdCBpbml0OiBvcmcgaWRlbnRpdHkgK1xuLy8gZ2F0ZXMgKyBleHBlcmltZW50IGFzc2lnbm1lbnRzICsgcHJvZHVjdHNDb25maWcvcmVzb2x1dGlvbiwgUExVUyB0aGUgaW5pdGlhbFxuLy8gdXJsLXJlc29sdmluZyByZXN1bHQg4oCUIHRoZSBjb25zb2xpZGF0aW9uIG9mIGBHRVQgL3YxL29yZy9jb25maWdgLCBHcmFwaFFMXG4vLyBgbWUuZ2V0V2lkZ2V0Q29uZmlnYCwgYW5kIGBQT1NUIC92MS91cmxfcmVzb2x2aW5nYCBiZWhpbmQgTWF0dCdzIGVuZHBvaW50LlxuLy9cbi8vIFJhdyBmZXRjaCAodGhlIG5wbSBjbGllbnQgYEBzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudGAgaGFzIG5vIGJvb3RzdHJhcFxuLy8gbWV0aG9kLCBzYW1lIGFzIGdldFdpZGdldENvbmZpZykuIFRocm93cyBvbiBuZXR3b3JrL0hUVFAgZmFpbHVyZS90aW1lb3V0IOKAlCB0aGVcbi8vIGNhbGxlciAoZW52aXZlQ29uZmlnU2VydmljZSkgZmFsbHMgYmFjayB0byB0aGUgZ2V0V2lkZ2V0Q29uZmlnIGNvbmZpZyBpdCBhbHJlYWR5XG4vLyBob2xkcywgc28gYSBib290c3RyYXAgcHJvYmxlbSBkZWdyYWRlcyB0byB0aGUgcHJvdmVuIHBhdGggcmF0aGVyIHRoYW4gYWJvcnRpbmdcbi8vIGluamVjdGlvbi5cbi8vXG4vLyBCb290c3RyYXAgaXMgYW4gT1BUSU9OQUwgdXBncmFkZSB0aGF0IEJMT0NLUyB0aGUgcHJlLWZpcnN0LXBhaW50IGNyaXRpY2FsIHBhdGhcbi8vIChhIHNlY29uZCBjYWxsIGFmdGVyIGdldFdpZGdldENvbmZpZyBhbHJlYWR5IHN1Y2NlZWRlZCksIGFuZCB3ZSBhbHJlYWR5IGhvbGQgYVxuLy8gdXNhYmxlIGdldFdpZGdldENvbmZpZyBjb25maWcgdG8gZmFsbCBiYWNrIHRvIOKAlCBzbyBpdCBpcyB0aWdodGx5IGJvdW5kZWQuIEtlcHRcbi8vIGxvdyBzbyBhIHNsb3cvaHVuZyBlbmRwb2ludCBhZGRzIGF0IG1vc3QgdGhpcyBtdWNoIHRvIGZpcnN0IHBhaW50OyBvbiB0aW1lb3V0XG4vLyB0aGUgZmV0Y2ggYWJvcnRzIGFuZCB3ZSBmYWxsIGJhY2sgdG8gZ2V0V2lkZ2V0Q29uZmlnLiBDQUxJQlJBVEUgYWdhaW5zdCB0aGVcbi8vIGVuZHBvaW50J3MgcmVhbCBwOTkgYmVmb3JlIHJhbXBpbmcgdGhlIGdhdGUgKGEgdmFsdWUgYmVsb3cgcDk5IHdpbGwgbWFrZSBub3JtYWxcbi8vIGJvb3RzdHJhcHMgZmFsc2UtYWJvcnQgaW50byB0aGUgZmFsbGJhY2ssIGRlZmVhdGluZyB0aGUgY29uc29saWRhdGlvbikuXG5jb25zdCBCT09UU1RSQVBfVElNRU9VVF9NUyA9IDE1MDA7XG5cbmV4cG9ydCBjb25zdCBmZXRjaEJvb3RzdHJhcENvbmZpZyA9IGFzeW5jICh7XG4gIGJhc2VVcmwsXG4gIGFwaUtleSxcbiAgdXNlcklkLFxuICBzb3VyY2UsXG4gIG5hbWVzcGFjZSxcbiAgZ2F0ZU5hbWVzLFxuICB1cmwsXG4gIG9yZ0lkLFxuICBvcmdTaG9ydE5hbWUsXG4gIGNvbnRleHRTb3VyY2UsXG4gIGVudixcbiAgY2hhdElkLFxuICBmZWF0dXJlR2F0ZXMsXG59OiBGZXRjaEJvb3RzdHJhcENvbmZpZ1BhcmFtcyk6IFByb21pc2U8Qm9vdHN0cmFwUmVzdWx0PiA9PiB7XG4gIGNvbnN0IHZlcnNpb24gPSBjb25maWdWZXJzaW9uT3ZlcnJpZGUoKTtcblxuICAvLyBBcm1lZCBiZWZvcmUgZmV0Y2ggYW5kIGtlcHQgbGl2ZSBhY3Jvc3MgcmVzcG9uc2UuanNvbigpIChhIHN0YWxsZWQgYm9keSByZWFkXG4gIC8vIG11c3QgYWxzbyBiZSBpbnRlcnJ1cHRpYmxlKSwgY2xlYXJlZCBpbiBmaW5hbGx5LiBPbiB0aW1lb3V0IHRoZSBmZXRjaCByZWplY3RzXG4gIC8vIHdpdGggYW4gQWJvcnRFcnJvciDihpIgbWF5YmVVcGdyYWRlVG9Cb290c3RyYXAncyBjYXRjaCBmYWxscyBiYWNrIHRvIGdldFdpZGdldENvbmZpZy5cbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIEJPT1RTVFJBUF9USU1FT1VUX01TKTtcbiAgbGV0IHJlc3VsdDogUmF3Qm9vdHN0cmFwUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9zZXNzaW9uL2Jvb3RzdHJhcGAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgLy8gU2NvcGUgb3JnX2NvbmZpZy5jb25maWdzIHRvIHRoZSB3aWRnZXQgbmFtZXNwYWNlIOKAlCBXSVRIT1VUIHRoaXMsIHB5bW9ub1xuICAgICAgICAvLyByZXR1cm5zIGV2ZXJ5IG5hbWVzcGFjZSdzIGNvbmZpZ3MgKGludGVybmFsIG9uZXMgaW5jbHVkZWQpIHRvIHRoZSBicm93c2VyLlxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGluY2x1ZGVfZmVhdHVyZV9nYXRlczogZ2F0ZU5hbWVzLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICB1cmxfcmVzb2x2aW5nOiB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIHVzZXJfaWQ6IHVzZXJJZCxcbiAgICAgICAgICAgIG9yZ19pZDogb3JnSWQsXG4gICAgICAgICAgICBvcmdfc2hvcnRfbmFtZTogb3JnU2hvcnROYW1lLFxuICAgICAgICAgICAgY2hhdF9pZDogY2hhdElkID8/ICcnLFxuICAgICAgICAgICAgc291cmNlOiBjb250ZXh0U291cmNlLFxuICAgICAgICAgICAgZW52LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gT3ZlcnJpZGUtYXdhcmUgZ2F0ZXMgc28gY2xpZW50IGdhdGUgb3ZlcnJpZGVzIHJlYWNoIHBhZ2UtdmFyaWFudFxuICAgICAgICAgIC8vIHJlc29sdXRpb24gKGJvb3RzdHJhcCBtZXJnZXMgdGhlc2Ugb3ZlciBpdHMgc2VydmVyLXJlc29sdmVkIGdhdGVzKS5cbiAgICAgICAgICAvLyBJZ25vcmVkIGJ5IHB5bW9ubyB1bnRpbCB0aGUgZW5kcG9pbnQgZ2FpbnMgdGhlIGZpZWxkIOKAlCBzYWZlIHRvIHNoaXAgZWFybHkuXG4gICAgICAgICAgZmVhdHVyZV9nYXRlczogZmVhdHVyZUdhdGVzLFxuICAgICAgICAgIC8vIFRoZSBjb25maWctdmVyc2lvbiBvdmVycmlkZSBjb21lcyBPTkxZIGZyb20gdGhlIFVSTCBxdWVyeSBwYXJhbVxuICAgICAgICAgIC8vIChjb25maWdWZXJzaW9uT3ZlcnJpZGUpIOKAlCB0aGUgc2FtZSBzb3VyY2UgZ2V0V2lkZ2V0Q29uZmlnIHVzZXMuIEl0IG11c3RcbiAgICAgICAgICAvLyBOT1QgY29tZSBmcm9tIGdldFdpZGdldENvbmZpZydzIHJlc29sdmVkIHZlcnNpb246IG9uIHRoZSBnYXRlLU9OIHBhdGhcbiAgICAgICAgICAvLyB0aGF0IHJlc3BvbnNlIGlzIGRpc2NhcmRlZCwgYW5kIGJvb3RzdHJhcCByZXNvbHZlcyB0aGUgY29uZmlnIHZlcnNpb25cbiAgICAgICAgICAvLyBzZXJ2ZXItc2lkZSAoc2NvcGluZyB1cmxfcmVzb2x2aW5nIHRvIHRoYXQgcmVzb2x2ZWQgdmVyc2lvbiwgaWYgZGVzaXJlZCxcbiAgICAgICAgICAvLyBiZWxvbmdzIG9uIHRoZSBzZXJ2ZXIg4oCUIG5vdCBhIGdldFdpZGdldENvbmZpZyBkZXBlbmRlbmN5IGhlcmUpLlxuICAgICAgICAgIG92ZXJyaWRlX2NvbmZpZ192ZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCb290c3RyYXAgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuICAgIHJlc3VsdCA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFJhd0Jvb3RzdHJhcFJlc3BvbnNlO1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9XG5cbiAgLy8gQSAyeHggd2l0aCBhIG1pc3NpbmcvcGFydGlhbCBwYXlsb2FkIG11c3QgTk9UIHNpbGVudGx5IHJlcGxhY2UgdGhlIGtub3duLWdvb2RcbiAgLy8gZ2V0V2lkZ2V0Q29uZmlnIGNvbmZpZyB3aXRoIGVtcHR5IGdhdGVzIC8gbW9jayBwcm9kdWN0cyDigJQgdGhhdCB3b3VsZCBkaXNhYmxlIHRoZVxuICAvLyBjbGllbnQgc2Vzc2lvbiBvciBkcm9wIGV4cGVyaW1lbnRzLiBUaHJvdyBpbnN0ZWFkLCBzbyBtYXliZVVwZ3JhZGVUb0Jvb3RzdHJhcCdzXG4gIC8vIGNhdGNoIGZhbGxzIGJhY2sgdG8gdGhlIGdldFdpZGdldENvbmZpZyByZXN1bHQgaXQgYWxyZWFkeSBob2xkcy4gYGdhdGVzYCBpc1xuICAvLyByZXF1aXJlZCBhcyBhIE5PTi1FTVBUWSBhcnJheTogd2UgYWx3YXlzIHJlcXVlc3QgdGhlIGZ1bGwgZ2F0ZU5hbWVzIGxpc3QgYW5kXG4gIC8vIG9ubHkgcmVhY2ggYm9vdHN0cmFwIGJlY2F1c2UgZ2V0V2lkZ2V0Q29uZmlnIHJldHVybmVkIHJlYWwgZ2F0ZXMsIHNvIGFuXG4gIC8vIGVtcHR5L2Fic2VudCBnYXRlcyByZXNwb25zZSBpcyBkZWdyYWRlZCDihpIgZmFsbCBiYWNrLiAoQSBwcm9kdWN0cyBjb25maWcgdGhhdCBpc1xuICAvLyBwcmVzZW50LWJ1dC1tYWxmb3JtZWQgc3RpbGwgZGVncmFkZXMgdG8gbW9jayBiZWxvdyDigJQgb25seSB0aGUgdG9wLWxldmVsXG4gIC8vIHNlY3Rpb25zIGFyZSByZXF1aXJlZCBoZXJlLilcbiAgaWYgKCFyZXN1bHQub3JnX2NvbmZpZz8ub3JnPy5vcmcgfHwgIXJlc3VsdC5vcmdfY29uZmlnPy5nYXRlcz8ubGVuZ3RoIHx8ICFyZXN1bHQud2lkZ2V0X2NvbmZpZykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdCb290c3RyYXAgY29uZmlnIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgc2VjdGlvbnMgKG9yZ19jb25maWcub3JnLm9yZyAvIG9yZ19jb25maWcuZ2F0ZXMgLyB3aWRnZXRfY29uZmlnKScsXG4gICAgKTtcbiAgfVxuICBjb25zdCBvcmdDb25maWcgPSByZXN1bHQub3JnX2NvbmZpZztcbiAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gcmVzdWx0LndpZGdldF9jb25maWc7XG4gIC8vIFRoZSBndWFyZCBhYm92ZSBndWFyYW50ZWVzIG9yZy5vcmcgYXQgcnVudGltZTsgdGhlIGA/PyB7fWAgb25seSBzYXRpc2ZpZXMgdGhlXG4gIC8vIHR5cGUtbmFycm93aW5nIChUUyBkb2Vzbid0IGNhcnJ5IHRoZSBvcHRpb25hbC1jaGFpbiBuYXJyb3dpbmcgdGhyb3VnaCB0aGUgYWxpYXMpLlxuICBjb25zdCBvcmdPcmcgPSBvcmdDb25maWcub3JnPy5vcmcgPz8ge307XG4gIGNvbnN0IHJlc29sdXRpb24gPSB0b1Jlc29sdXRpb24od2lkZ2V0Q29uZmlnLnJlc29sdXRpb24pO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyBkZWdyYWRlcyB0byBtb2NrIGRlZmF1bHRzIFdJVEhPVVQgbG9zaW5nIHRoZVxuICAvLyBvcmcgLyBnYXRlcyAvIGV4cGVyaW1lbnRzIHRoYXQgY2FtZSBiYWNrIGZpbmUg4oCUIG1pcnJvcnMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZy5cbiAgbGV0IG9yZ0NvbmZpZ1ZhbHVlczogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWdWYWx1ZXMgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnLnByb2R1Y3RzX2NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaEJvb3RzdHJhcENvbmZpZyB8IEVycm9yIHRyYW5zZm9ybWluZyBwcm9kdWN0cyBjb25maWcnLCBlcnIpO1xuICAgIG9yZ0NvbmZpZ1ZhbHVlcyA9IHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQsIHJlc29sdXRpb24gfTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgICAvLyBvcmdfY29uZmlnIGlzIGJ5dGUtaWRlbnRpY2FsIHRvIHRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcgKHNuYWtlKSwgdGhlXG4gICAgLy8gZXhhY3Qgc2hhcGUgRW52aXZlU2VydmljZUNvbmZpZy5vcmcgd2FzIGJ1aWx0IHRvIGhvbGQuIENvbnN0cnVjdGVkXG4gICAgLy8gZGVmZW5zaXZlbHkgKGxpa2UgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykgcmF0aGVyIHRoYW4gcGFzc2VkIHRocm91Z2guXG4gICAgb3JnOiB7XG4gICAgICBvcmc6IHtcbiAgICAgICAgaWQ6IG9yZ09yZy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnT3JnLnNob3J0X25hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnT3JnLmRpc3BsYXlfbmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmdPcmcuZG9tYWluID8/ICcnLFxuICAgICAgICBzdGF0dXM6IG9yZ09yZy5zdGF0dXMgPz8gJycsXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG9yZ09yZy5jcmVhdGVkX2F0ID8/ICcnLFxuICAgICAgICB1cGRhdGVkX2F0OiBvcmdPcmcudXBkYXRlZF9hdCA/PyAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnYXRlczogdG9Cb290c3RyYXBHYXRlcyhvcmdDb25maWcuZ2F0ZXMpLFxuICAgIC8vIEZyb20gd2lkZ2V0X2NvbmZpZywgTk9UIG9yZ19jb25maWc6IGdldFdpZGdldENvbmZpZyBzb3VyY2VzIGFzc2lnbm1lbnRzIGZyb21cbiAgICAvLyBpdHMgd2lkZ2V0IGNvbmZpZyAodW5nYXRlZCksIHdoZXJlYXMgYm9vdHN0cmFwJ3MgYG9yZ19jb25maWcuZXhwZXJpbWVudF9hc3NpZ25tZW50c2BcbiAgICAvLyBpcyBwb3B1bGF0ZWQgT05MWSB3aGVuIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYCBnYXRlIGV2YWx1YXRlcyB0cnVlIFNFUlZFUi1TSURFXG4gICAgLy8gKHB5bW9ubyBgdW5pZmllZF9jb25maWdfYWN0aXZlYCkuIFJlYWRpbmcgb3JnX2NvbmZpZyB3b3VsZCBkcm9wIGFzc2lnbm1lbnRzIOKAlFxuICAgIC8vIGFuZCB0aGUgYW1wbGl0dWRlIGBleHBlcmltZW50Lntuc30uKmAgZW5yaWNobWVudCDigJQgb24gdGhlIGNsaWVudC1vdmVycmlkZSB0ZXN0XG4gICAgLy8gcGF0aCAoZ2F0ZSBPTiB2aWEgYD91c2VfdW5pZmllZF9jb25maWc9dHJ1ZWAgYnV0IDAlIHNlcnZlci1zaWRlKS4gd2lkZ2V0X2NvbmZpZ1xuICAgIC8vIG1hdGNoZXMgZ2V0V2lkZ2V0Q29uZmlnIGluIGV2ZXJ5IGNhc2UgKGVxdWFsIHdoZW4gdGhlIGdhdGUgaXMgb247IHZlcnNpb24gcGluXG4gICAgLy8gZW1wdGllcyBib3RoKS5cbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzOiB0b0Jvb3RzdHJhcEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZy5leHBlcmltZW50X2Fzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWc6IG9yZ0NvbmZpZ1ZhbHVlcyxcbiAgfTtcblxuICByZXR1cm4geyBjb25maWcsIHVybFJlc29sdmluZzogcmVzdWx0LnVybF9yZXNvbHZpbmcgPz8gbnVsbCB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFjQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8sdUJBQXVCO0FBb0ZqRCxNQUFNLG9CQUFvQixTQUN2QixPQUFPLEVBQUUsRUFBRSxLQUFJLE9BQU07Q0FDcEIsTUFBTSxFQUFFO0NBQ1IsT0FBTyxFQUFFO0NBQ1QsV0FBVyxFQUFFLGNBQWM7Q0FDNUIsRUFBRTtBQUlMLE1BQU0sMEJBQ0osU0FFQyxPQUFPLEVBQUUsRUFBRSxLQUFJLE9BQU07Q0FDcEIsWUFBWSxFQUFFO0NBQ2QsV0FBVyxFQUFFO0NBQ2IsMkJBQTJCLEVBQUU7Q0FDN0IsWUFBWSxFQUFFO0NBQ2YsRUFBRTtBQUdMLE1BQU0sZ0JBQ0osUUFFQSxNQUFNO0NBQUUsYUFBYSxJQUFJO0NBQWMsbUJBQW1CLElBQUk7Q0FBcUIsR0FBRztBQW9CeEYsTUFBTSx1QkFBdUI7QUFFN0IsTUFBYSx1QkFBdUIsT0FBTyxFQUN6QyxTQUNBLFFBQ0EsUUFDQSxRQUNBLFdBQ0EsV0FDQSxLQUNBLE9BQ0EsY0FDQSxlQUNBLEtBQ0EsUUFDQSxtQkFDMEQ7Q0FDMUQsTUFBTSxVQUFVQywrQ0FBdUI7Q0FLdkMsTUFBTSxhQUFhLElBQUksaUJBQWlCO0NBQ3hDLE1BQU0sWUFBWSxpQkFBaUIsV0FBVyxPQUFPLEVBQUUscUJBQXFCO0NBQzVFLElBQUlDO0FBQ0osS0FBSTtFQUNGLE1BQU0sV0FBVyxNQUFNLE1BQU0sR0FBRyxRQUFRLHdCQUF3QjtHQUM5RCxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVBQVU7SUFDMUI7R0FDRCxNQUFNLEtBQUssVUFBVTtJQUNuQixTQUFTO0lBQ1Q7SUFHQTtJQUNBLHVCQUF1QjtJQUN2QjtJQUNBLGVBQWU7S0FDYjtLQUNBLFNBQVM7TUFDUCxTQUFTO01BQ1QsUUFBUTtNQUNSLGdCQUFnQjtNQUNoQixTQUFTLFVBQVU7TUFDbkIsUUFBUTtNQUNSO01BQ0Q7S0FJRCxlQUFlO0tBT2YseUJBQXlCO0tBQzFCO0lBQ0YsQ0FBQztHQUNGLFFBQVEsV0FBVztHQUNwQixDQUFDO0FBRUYsTUFBSSxDQUFDLFNBQVMsR0FDWixPQUFNLElBQUksTUFBTSxvQ0FBb0MsU0FBUyxhQUFhO0FBRTVFLFdBQVUsTUFBTSxTQUFTLE1BQU07V0FDdkI7QUFDUixlQUFhLFVBQVU7O0FBWXpCLEtBQUksQ0FBQyxPQUFPLFlBQVksS0FBSyxPQUFPLENBQUMsT0FBTyxZQUFZLE9BQU8sVUFBVSxDQUFDLE9BQU8sY0FDL0UsT0FBTSxJQUFJLE1BQ1IsOEdBQ0Q7Q0FFSCxNQUFNLFlBQVksT0FBTztDQUN6QixNQUFNLGVBQWUsT0FBTztDQUc1QixNQUFNLFNBQVMsVUFBVSxLQUFLLE9BQU8sRUFBRTtDQUN2QyxNQUFNLGFBQWEsYUFBYSxhQUFhLFdBQVc7Q0FJeEQsSUFBSUM7QUFDSixLQUFJO0FBQ0Ysb0JBQWtCO0dBQUUsR0FBR0MscURBQTBCLGFBQWEsZ0JBQWdCO0dBQUU7R0FBWTtVQUNyRixLQUFLO0FBQ1osU0FBTyxTQUFTLDZEQUE2RCxJQUFJO0FBQ2pGLG9CQUFrQjtHQUFFLGNBQWM7R0FBVyxnQkFBZ0I7R0FBVztHQUFZOztBQStCdEYsUUFBTztFQUFFLFFBNUIyQjtHQUlsQyxLQUFLLEVBQ0gsS0FBSztJQUNILElBQUksT0FBTyxNQUFNO0lBQ2pCLFlBQVksT0FBTyxjQUFjO0lBQ2pDLGNBQWMsT0FBTyxnQkFBZ0I7SUFDckMsUUFBUSxPQUFPLFVBQVU7SUFDekIsUUFBUSxPQUFPLFVBQVU7SUFDekIsWUFBWSxPQUFPLGNBQWM7SUFDakMsWUFBWSxPQUFPLGNBQWM7SUFDbEMsRUFDRjtHQUNELE9BQU8saUJBQWlCLFVBQVUsTUFBTTtHQVN4Qyx3QkFBd0IsdUJBQXVCLGFBQWEsdUJBQXVCO0dBQ25GLFdBQVc7R0FDWjtFQUVnQixjQUFjLE9BQU8saUJBQWlCO0VBQU0ifQ==
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hCb290c3RyYXBDb25maWcuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiY29uZmlnVmVyc2lvbk92ZXJyaWRlIiwicmVzdWx0OiBSYXdCb290c3RyYXBSZXNwb25zZSIsIm9yZ0NvbmZpZ1ZhbHVlczogR3JhcGhRbENvbmZpZ1ZhbHVlcyIsInRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEJvb3RzdHJhcENvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHtcbiAgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSxcbiAgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsXG4gIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7IHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfSBmcm9tICcuL2ZldGNoR3JhcGhRTENvbmZpZyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hCb290c3RyYXBDb25maWcpLlxuaW1wb3J0IHR5cGUgeyBFbnZpdmVTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9lbnZpdmVDb25maWdTZXJ2aWNlJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmV0Y2hCb290c3RyYXBDb25maWcnKTtcblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaEJvb3RzdHJhcENvbmZpZ1BhcmFtcyB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICAvLyBDb25maWcgYHNvdXJjZWAgKFN0YXRzaWcgdXNlciBwcm9wZXJ0eSksICdhcHAnIGluIHRoZSBpbmplY3Rpb24gYnVuZGxlLlxuICBzb3VyY2U6IHN0cmluZztcbiAgLy8gU2NvcGVzIG9yZ19jb25maWcuY29uZmlncyB0byB0aGlzIG5hbWVzcGFjZS4gUkVRVUlSRUQ6IHdpdGhvdXQgaXQgcHltb25vXG4gIC8vIHJldHVybnMgRVZFUlkgbmFtZXNwYWNlIG9uIHRoZSBvcmcg4oCUIGluY2x1ZGluZyBpbnRlcm5hbC1vbmx5IGNvbmZpZ3MgKHRoZSBBSVxuICAvLyBzeXN0ZW0gcHJvbXB0LCBicmFuZC12b2ljZSBpbnN0cnVjdGlvbnMsIGV0Yy4pIOKAlCBpbiB0aGUgcmVzcG9uc2UgdGhlIHB1YmxpY1xuICAvLyBidW5kbGUgcmVjZWl2ZXMuIFRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcgY2FsbCBzY29wZWQgaXQgdGhlIHNhbWUgd2F5LlxuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgZ2F0ZU5hbWVzOiBzdHJpbmdbXTtcbiAgY2hhdElkPzogc3RyaW5nO1xuICAvLyB1cmxfcmVzb2x2aW5nIGlucHV0cywgYWxsIHN1cHBsaWVkIHRvZ2V0aGVyIGJ5IHRoZSBpbmplY3Rpb24gYnVuZGxlIHdoZW5cbiAgLy8gRW52aXZlIGlzIGVuYWJsZWQuIFdoZW4gYHVybGAgaXMgcHJlc2VudCwgYm9vdHN0cmFwIHJ1bnMgaXRzIHBhZ2UtdmFyaWFudFxuICAvLyBicmFuY2ggYW5kIHJldHVybnMgdGhlIGluaXRpYWwgdXJsX3Jlc29sdmluZzsgd2hlbiBhYnNlbnQgKGVudml2ZV9vbj1mYWxzZSDigJRcbiAgLy8gdGhlcmUgaXMgbm8gcGFnZSB0byByZXNvbHZlKSB0aGUgYnJhbmNoIGlzIG9taXR0ZWQgYW5kIGJvb3RzdHJhcCByZXR1cm5zXG4gIC8vIGNvbmZpZyBvbmx5LiBvcmcgaWRlbnRpdHkgaXMgTk8gTE9OR0VSIHNlbnQ6IC92MS9zZXNzaW9uL2Jvb3RzdHJhcCBmaWxsc1xuICAvLyBvcmdfaWQvb3JnX3Nob3J0X25hbWUgZnJvbSB0aGUgYXV0aGVudGljYXRlZCBvcmcgKHRoZSBBUEkga2V5KSwgc28gdGhlXG4gIC8vIGJvb3RzdHJhcC1vbmx5IGNsaWVudCDigJQgd2hpY2ggbm8gbG9uZ2VyIGNhbGxzIGdldFdpZGdldENvbmZpZyDigJQgbmVlZHMgbm8gd2F5XG4gIC8vIHRvIGxlYXJuIGl0cyBvd24gb3JnIGJlZm9yZSB0aGUgcmVxdWVzdC5cbiAgdXJsPzogc3RyaW5nO1xuICAvLyBDb250ZXh0IGBzb3VyY2VgIGZvciB1cmxfcmVzb2x2aW5nICgnYXBwJyB8ICdwbGF5Z3JvdW5kJyk7IG1heSBkaWZmZXIgZnJvbVxuICAvLyB0aGUgY29uZmlnIGBzb3VyY2VgIGFib3ZlIChwbGF5Z3JvdW5kID0gRW52aXZlIEh1YikuXG4gIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gIGVudj86IHN0cmluZztcbiAgLy8gT3ZlcnJpZGUtT05MWSBmZWF0dXJlIGdhdGVzIChGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZXMoKSk6XG4gIC8vIGp1c3QgdGhlIGNsaWVudC1zaWRlIG92ZXJyaWRlcyAocXVlcnkvd2luZG93L2xvY2FsU3RvcmFnZSksIHdoaWNoIGJvb3RzdHJhcFxuICAvLyBtZXJnZXMgT1ZFUiBpdHMgb3duIHNlcnZlci1yZXNvbHZlZCBnYXRlcyBmb3IgcGFnZS12YXJpYW50IHNlbGVjdGlvbiDigJQgdGhlXG4gIC8vIGxlZ2FjeSAvdjEvdXJsX3Jlc29sdmluZyBiZWhhdmlvdXIuIE5PVCBhIGZ1bGwgcmVzb2x2ZWQgbWFwOiBvbiB0aGVcbiAgLy8gYm9vdHN0cmFwLW9ubHkgcGF0aCB0aGUgY2xpZW50IGhhcyBubyBzZXJ2ZXIgZ2F0ZSB2YWx1ZXMgdG8gcmVzb2x2ZSBmcm9tLCBzb1xuICAvLyBhIGZ1bGwgbWFwIHdvdWxkIGNsb2JiZXIgdGhlIHNlcnZlcidzIGdhdGVzLiBFbXB0eSAodGhlIGNvbW1vbiBjYXNlLCBub1xuICAvLyBvdmVycmlkZXMpIGxlYXZlcyB0aGUgc2VydmVyIGdhdGVzIHVudG91Y2hlZC5cbiAgZmVhdHVyZUdhdGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUmVzdWx0IHtcbiAgY29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnO1xuICAvLyBUaGUgaW5pdGlhbCBwYWdlLXZhcmlhbnQgcmVzdWx0LCByZWFkeSB0byBzZWVkIHVybFJlc29sdmVyQXRvbSBzbyB0aGVcbiAgLy8gd2FybS11cCBza2lwcyBpdHMgb3duIC92MS91cmxfcmVzb2x2aW5nIGNhbGwuIG51bGwgd2hlbiBib290c3RyYXAnc1xuICAvLyAoYmVzdC1lZmZvcnQpIHVybC1yZXNvbHZpbmcgYnJhbmNoIHJldHVybmVkIG5vdGhpbmcuXG4gIHVybFJlc29sdmluZzogVXJsUmVzb2x2ZXJSZXNwb25zZSB8IG51bGw7XG59XG5cbi8vIC0tLSByYXcgd2lyZSBzaGFwZXMgKFBPU1QgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIGlzIFJFU1Qgc25ha2VfY2FzZSkgLS0tLS0tLS0tXG5cbmludGVyZmFjZSBSYXdGZWF0dXJlR2F0ZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZhbHVlPzogYm9vbGVhbjtcbiAgZ3JvdXBfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIHJ1bGVfaWQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgUmF3RXhwZXJpbWVudEFzc2lnbm1lbnQge1xuICBsYXllcl9uYW1lPzogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFsnbmFtZXNwYWNlJ107XG4gIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICBncm91cF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFJhd1Jlc29sdXRpb24ge1xuICBiYXNlX3ZlcnNpb24/OiBzdHJpbmc7XG4gIGJhc2VfdmVyc2lvbl9zb3VyY2U/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSYXdCb290c3RyYXBSZXNwb25zZSB7XG4gIG9yZ19jb25maWc/OiB7XG4gICAgb3JnPzogeyBvcmc/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IH07XG4gICAgZ2F0ZXM/OiBSYXdGZWF0dXJlR2F0ZVtdO1xuICB9O1xuICB3aWRnZXRfY29uZmlnPzoge1xuICAgIHByb2R1Y3RzX2NvbmZpZz86IFBhcmFtZXRlcnM8dHlwZW9mIHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWc+WzBdO1xuICAgIC8vIFJlYWQgZnJvbSB3aWRnZXRfY29uZmlnIChub3Qgb3JnX2NvbmZpZykgdG8gbWF0Y2ggZ2V0V2lkZ2V0Q29uZmlnIOKAlCBzZWUgdGhlXG4gICAgLy8gbWFwcGluZyBiZWxvdy5cbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzPzogUmF3RXhwZXJpbWVudEFzc2lnbm1lbnRbXTtcbiAgICByZXNvbHV0aW9uPzogUmF3UmVzb2x1dGlvbjtcbiAgfTtcbiAgdXJsX3Jlc29sdmluZz86IFVybFJlc29sdmVyUmVzcG9uc2UgfCBudWxsO1xufVxuXG4vLyBnYXRlcyBhcnJpdmUgc25ha2UgKGBncm91cF9uYW1lYCk7IGdldFdpZGdldENvbmZpZydzIGFycml2ZSBjYW1lbC4gT25seSB0aGVcbi8vIG5hbWUvdmFsdWUgYXJlIHVzZWQgZm9yIGdhdGUgY2hlY2tzIOKAlCBncm91cE5hbWUgaXMgY2FycmllZCBmb3IgYW1wbGl0dWRlLlxuY29uc3QgdG9Cb290c3RyYXBHYXRlcyA9IChyYXc6IFJhd0ZlYXR1cmVHYXRlW10gfCB1bmRlZmluZWQpOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdID0+XG4gIChyYXcgPz8gW10pLm1hcChnID0+ICh7XG4gICAgbmFtZTogZy5uYW1lLFxuICAgIHZhbHVlOiBnLnZhbHVlLFxuICAgIGdyb3VwTmFtZTogZy5ncm91cF9uYW1lID8/IHVuZGVmaW5lZCxcbiAgfSkpO1xuXG4vLyBleHBlcmltZW50X2Fzc2lnbm1lbnRzIGFscmVhZHkgbWF0Y2ggdGhlIHNuYWtlIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50XG4vLyB3aXJlIHNoYXBlICh1bmxpa2UgZ2V0V2lkZ2V0Q29uZmlnJ3MgY2FtZWwsIHdoaWNoIG5lZWRzIHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKS5cbmNvbnN0IHRvQm9vdHN0cmFwQXNzaWdubWVudHMgPSAoXG4gIHJhdzogUmF3RXhwZXJpbWVudEFzc2lnbm1lbnRbXSB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyX25hbWUsXG4gICAgbmFtZXNwYWNlOiBhLm5hbWVzcGFjZSxcbiAgICBhbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lOiBhLmFsbG9jYXRlZF9leHBlcmltZW50X25hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cF9uYW1lLFxuICB9KSk7XG5cbi8vIHJlc29sdXRpb24gaXMgc25ha2UgaGVyZSAoUkVTVCk7IGdldFdpZGdldENvbmZpZydzIGlzIGNhbWVsIChBcmlhZG5lKS5cbmNvbnN0IHRvUmVzb2x1dGlvbiA9IChcbiAgcmF3OiBSYXdSZXNvbHV0aW9uIHwgdW5kZWZpbmVkLFxuKTogRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZCA9PlxuICByYXcgPyB7IGJhc2VWZXJzaW9uOiByYXcuYmFzZV92ZXJzaW9uLCBiYXNlVmVyc2lvblNvdXJjZTogcmF3LmJhc2VfdmVyc2lvbl9zb3VyY2UgfSA6IHVuZGVmaW5lZDtcblxuLy8gT25lIHJvdW5kIHRyaXAgZm9yIHRoZSBjb25maWcgdGhlIHdpZGdldCBjbGllbnQgbmVlZHMgYXQgaW5pdDogb3JnIGlkZW50aXR5ICtcbi8vIGdhdGVzICsgZXhwZXJpbWVudCBhc3NpZ25tZW50cyArIHByb2R1Y3RzQ29uZmlnL3Jlc29sdXRpb24sIFBMVVMgdGhlIGluaXRpYWxcbi8vIHVybC1yZXNvbHZpbmcgcmVzdWx0IOKAlCB0aGUgY29uc29saWRhdGlvbiBvZiBgR0VUIC92MS9vcmcvY29uZmlnYCwgR3JhcGhRTFxuLy8gYG1lLmdldFdpZGdldENvbmZpZ2AsIGFuZCBgUE9TVCAvdjEvdXJsX3Jlc29sdmluZ2AgYmVoaW5kIE1hdHQncyBlbmRwb2ludC5cbi8vXG4vLyBSYXcgZmV0Y2ggKHRoZSBucG0gY2xpZW50IGBAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRgIGhhcyBubyBib290c3RyYXBcbi8vIG1ldGhvZCkuIFRocm93cyBvbiBuZXR3b3JrL0hUVFAgZmFpbHVyZS90aW1lb3V0LCB3aGljaCBwcm9wYWdhdGVzIHRocm91Z2hcbi8vIGdldEVudml2ZUNvbmZpZyB0byBpbmplY3QudHMgYW5kIGFib3J0cyBpbmplY3Rpb24g4oCUIGJvb3RzdHJhcCBpcyBub3cgdGhlIFNPTEVcbi8vIGNvbmZpZyBjYWxsLCBzbyB0aGVyZSBpcyBubyBnZXRXaWRnZXRDb25maWcgbGVmdCB0byBmYWxsIGJhY2sgdG8gKHRoZSBzYW1lXG4vLyBibGFzdCByYWRpdXMgdGhlIHNpbmdsZSBHRVQgL3YxL29yZy9jb25maWcgY2FsbCBhbHdheXMgaGFkKS5cbi8vXG4vLyBCb290c3RyYXAgQkxPQ0tTIHRoZSBwcmUtZmlyc3QtcGFpbnQgY3JpdGljYWwgcGF0aCwgc28gaXQgaXMgYm91bmRlZCBieSBhXG4vLyB0aW1lb3V0OiBhIGh1bmcgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIChzZXJ2ZXIgYmxhY2staG9sZSwgaGFsZi1vcGVuIHNvY2tldCxcbi8vIHNsb3ctbG9yaXMgYm9keSkgd291bGQgb3RoZXJ3aXNlIGJsb2NrIGluamVjdGlvbiB1bnRpbCB0aGUgYnJvd3NlcidzXG4vLyBtdWx0aS1taW51dGUgZGVmYXVsdC4gQ0FMSUJSQVRFIGFnYWluc3QgdGhlIGVuZHBvaW50J3MgcmVhbCBwOTkg4oCUIHdpdGggbm9cbi8vIGZhbGxiYWNrLCBhIHZhbHVlIGJlbG93IHA5OSB0dXJucyBub3JtYWwtYnV0LXNsb3cgYm9vdHN0cmFwcyBpbnRvIEZBSUxFRFxuLy8gaW5qZWN0aW9ucywgc28gZXJyIG9uIHRoZSBnZW5lcm91cyBzaWRlIHJhdGhlciB0aGFuIHRoZSBhZ2dyZXNzaXZlIG9uZS5cbmNvbnN0IEJPT1RTVFJBUF9USU1FT1VUX01TID0gMTUwMDtcblxuZXhwb3J0IGNvbnN0IGZldGNoQm9vdHN0cmFwQ29uZmlnID0gYXN5bmMgKHtcbiAgYmFzZVVybCxcbiAgYXBpS2V5LFxuICB1c2VySWQsXG4gIHNvdXJjZSxcbiAgbmFtZXNwYWNlLFxuICBnYXRlTmFtZXMsXG4gIGNoYXRJZCxcbiAgdXJsLFxuICBjb250ZXh0U291cmNlLFxuICBlbnYsXG4gIGZlYXR1cmVHYXRlcyxcbn06IEZldGNoQm9vdHN0cmFwQ29uZmlnUGFyYW1zKTogUHJvbWlzZTxCb290c3RyYXBSZXN1bHQ+ID0+IHtcbiAgY29uc3QgdmVyc2lvbiA9IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSgpO1xuICAvLyBUaGUgdXJsX3Jlc29sdmluZyBicmFuY2ggaXMgcmVxdWVzdGVkIG9ubHkgd2hlbiB0aGUgYnVuZGxlIHN1cHBsaWVkIGEgVVJMXG4gIC8vIChFbnZpdmUgZW5hYmxlZCkuIEFic2VudCDihpIgYm9vdHN0cmFwIHJldHVybnMgY29uZmlnIG9ubHkgKGVudml2ZV9vbj1mYWxzZSkuXG4gIGNvbnN0IHVybFJlc29sdmluZ0JvZHkgPVxuICAgIHVybCAhPT0gdW5kZWZpbmVkXG4gICAgICA/IHtcbiAgICAgICAgICB1cmxfcmVzb2x2aW5nOiB7XG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgIHVzZXJfaWQ6IHVzZXJJZCxcbiAgICAgICAgICAgICAgLy8gb3JnX2lkIC8gb3JnX3Nob3J0X25hbWUgaW50ZW50aW9uYWxseSBvbWl0dGVkIOKAlCB0aGUgc2VydmVyIGZpbGxzXG4gICAgICAgICAgICAgIC8vIHRoZW0gZnJvbSB0aGUgYXV0aGVudGljYXRlZCBvcmcgKHNlZSBTZXNzaW9uQm9vdHN0cmFwU2VydmljZSkuXG4gICAgICAgICAgICAgIGNoYXRfaWQ6IGNoYXRJZCA/PyAnJyxcbiAgICAgICAgICAgICAgc291cmNlOiBjb250ZXh0U291cmNlLFxuICAgICAgICAgICAgICBlbnYsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gT3ZlcnJpZGUtb25seSBnYXRlcyAoZW1wdHkgdW5sZXNzIHRoZSBjbGllbnQgc2V0IGFuIG92ZXJyaWRlKTsgdGhlXG4gICAgICAgICAgICAvLyBzZXJ2ZXIgbWVyZ2VzIHRoZXNlIE9WRVIgaXRzIG93biByZXNvbHZlZCBnYXRlcyAocHltb25vXG4gICAgICAgICAgICAvLyBTZXNzaW9uQm9vdHN0cmFwVXJsUmVzb2x2aW5nUmVxdWVzdC5mZWF0dXJlX2dhdGVzKSwgc28gY2xpZW50LXNpZGVcbiAgICAgICAgICAgIC8vIG92ZXJyaWRlcyBzdGlsbCByZWFjaCBwYWdlLXZhcmlhbnQgc2VsZWN0aW9uLlxuICAgICAgICAgICAgZmVhdHVyZV9nYXRlczogZmVhdHVyZUdhdGVzLFxuICAgICAgICAgICAgLy8gVGhlIGNvbmZpZy12ZXJzaW9uIG92ZXJyaWRlIGNvbWVzIE9OTFkgZnJvbSB0aGUgVVJMIHF1ZXJ5IHBhcmFtXG4gICAgICAgICAgICAvLyAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKSDigJQgdGhlIHNhbWUgc291cmNlIHRoZSBjb25maWcgdmVyc2lvbiB1c2VzLlxuICAgICAgICAgICAgb3ZlcnJpZGVfY29uZmlnX3ZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgOiB7fTtcblxuICAvLyBBcm1lZCBiZWZvcmUgZmV0Y2ggYW5kIGtlcHQgbGl2ZSBhY3Jvc3MgcmVzcG9uc2UuanNvbigpIChhIHN0YWxsZWQgYm9keSByZWFkXG4gIC8vIG11c3QgYWxzbyBiZSBpbnRlcnJ1cHRpYmxlKSwgY2xlYXJlZCBpbiBmaW5hbGx5LiBPbiB0aW1lb3V0IHRoZSBmZXRjaCByZWplY3RzXG4gIC8vIHdpdGggYW4gQWJvcnRFcnJvciDihpIgcHJvcGFnYXRlcyB0aHJvdWdoIGdldEVudml2ZUNvbmZpZyBhbmQgYWJvcnRzIGluamVjdGlvbi5cbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIEJPT1RTVFJBUF9USU1FT1VUX01TKTtcbiAgbGV0IHJlc3VsdDogUmF3Qm9vdHN0cmFwUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9zZXNzaW9uL2Jvb3RzdHJhcGAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgLy8gU2NvcGUgb3JnX2NvbmZpZy5jb25maWdzIHRvIHRoZSB3aWRnZXQgbmFtZXNwYWNlIOKAlCBXSVRIT1VUIHRoaXMsIHB5bW9ub1xuICAgICAgICAvLyByZXR1cm5zIGV2ZXJ5IG5hbWVzcGFjZSdzIGNvbmZpZ3MgKGludGVybmFsIG9uZXMgaW5jbHVkZWQpIHRvIHRoZSBicm93c2VyLlxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGluY2x1ZGVfZmVhdHVyZV9nYXRlczogZ2F0ZU5hbWVzLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAuLi51cmxSZXNvbHZpbmdCb2R5LFxuICAgICAgfSksXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCb290c3RyYXAgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuICAgIHJlc3VsdCA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFJhd0Jvb3RzdHJhcFJlc3BvbnNlO1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9XG5cbiAgLy8gQSAyeHggd2l0aCBhIG1pc3NpbmcvcGFydGlhbCBwYXlsb2FkIG11c3QgTk9UIHNpbGVudGx5IGJlY29tZSBhIGJyb2tlbiBjb25maWdcbiAgLy8g4oCUIGEgbWlzc2luZyBvcmcgaWRlbnRpdHkgb3Igd2lkZ2V0X2NvbmZpZyB3b3VsZCBkcm9wIHByb2R1Y3RzL2V4cGVyaW1lbnRzLlxuICAvLyBUaHJvdyBpbnN0ZWFkOiB3aXRoIGJvb3RzdHJhcCB0aGUgc29sZSBjb25maWcgY2FsbCwgdGhlIHRocm93IHByb3BhZ2F0ZXMgdG9cbiAgLy8gaW5qZWN0LnRzIGFuZCBhYm9ydHMgaW5qZWN0aW9uIHJhdGhlciB0aGFuIHJlbmRlcmluZyBhIGJyb2tlbiBzZXNzaW9uLiBgZ2F0ZXNgXG4gIC8vIGlzIHJlcXVpcmVkIHRvIGJlIGFuIEFSUkFZIChwcmVzZW50KSBidXQgTUFZIGJlIGVtcHR5OiBhbiBlbXB0eSBnYXRlcyByZXNwb25zZVxuICAvLyBpcyBhIHZhbGlkIFwiZXZlcnl0aGluZyBvZmZcIiBzaWduYWwg4oCUIEZlYXR1cmVGbGFnU2VydmljZSB0aGVuIHJlc29sdmVzIGV2ZXJ5XG4gIC8vIGdhdGUgdG8gZmFsc2UsIHNvIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgaXMgZmFsc2UgYW5kIHRoZSBzZXNzaW9uIGRpc2FibGVzXG4gIC8vIGdyYWNlZnVsbHkgKHdpdGggdGhlIFwiRW52aXZlIEluaXRpYWxpemVkXCIgZXZlbnQgc3RpbGwgZmlyaW5nKS4gUmVqZWN0aW5nIGVtcHR5XG4gIC8vIGdhdGVzIHdvdWxkIGluc3RlYWQgYWJvcnQgaW5qZWN0aW9uIGFuZCBsb3NlIHRoYXQgZXZlbnQuIChBIHByb2R1Y3RzIGNvbmZpZ1xuICAvLyB0aGF0IGlzIHByZXNlbnQtYnV0LW1hbGZvcm1lZCBzdGlsbCBkZWdyYWRlcyB0byBtb2NrIGJlbG93IOKAlCBvbmx5IHRoZVxuICAvLyB0b3AtbGV2ZWwgc2VjdGlvbnMgYXJlIHJlcXVpcmVkIGhlcmUuKVxuICBpZiAoXG4gICAgIXJlc3VsdC5vcmdfY29uZmlnPy5vcmc/Lm9yZyB8fFxuICAgICFBcnJheS5pc0FycmF5KHJlc3VsdC5vcmdfY29uZmlnPy5nYXRlcykgfHxcbiAgICAhcmVzdWx0LndpZGdldF9jb25maWdcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Jvb3RzdHJhcCBjb25maWcgcmVzcG9uc2UgbWlzc2luZyByZXF1aXJlZCBzZWN0aW9ucyAob3JnX2NvbmZpZy5vcmcub3JnIC8gb3JnX2NvbmZpZy5nYXRlcyAvIHdpZGdldF9jb25maWcpJyxcbiAgICApO1xuICB9XG4gIGNvbnN0IG9yZ0NvbmZpZyA9IHJlc3VsdC5vcmdfY29uZmlnO1xuICBjb25zdCB3aWRnZXRDb25maWcgPSByZXN1bHQud2lkZ2V0X2NvbmZpZztcbiAgLy8gVGhlIGd1YXJkIGFib3ZlIGd1YXJhbnRlZXMgb3JnLm9yZyBhdCBydW50aW1lOyB0aGUgYD8/IHt9YCBvbmx5IHNhdGlzZmllcyB0aGVcbiAgLy8gdHlwZS1uYXJyb3dpbmcgKFRTIGRvZXNuJ3QgY2FycnkgdGhlIG9wdGlvbmFsLWNoYWluIG5hcnJvd2luZyB0aHJvdWdoIHRoZSBhbGlhcykuXG4gIGNvbnN0IG9yZ09yZyA9IG9yZ0NvbmZpZy5vcmc/Lm9yZyA/PyB7fTtcbiAgY29uc3QgcmVzb2x1dGlvbiA9IHRvUmVzb2x1dGlvbih3aWRnZXRDb25maWcucmVzb2x1dGlvbik7XG5cbiAgLy8gQSBtYWxmb3JtZWQgcHJvZHVjdHMgY29uZmlnIGRlZ3JhZGVzIHRvIG1vY2sgZGVmYXVsdHMgV0lUSE9VVCBsb3NpbmcgdGhlXG4gIC8vIG9yZyAvIGdhdGVzIC8gZXhwZXJpbWVudHMgdGhhdCBjYW1lIGJhY2sgZmluZSDigJQgbWlycm9ycyBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnLlxuICBsZXQgb3JnQ29uZmlnVmFsdWVzOiBHcmFwaFFsQ29uZmlnVmFsdWVzO1xuICB0cnkge1xuICAgIG9yZ0NvbmZpZ1ZhbHVlcyA9IHsgLi4udHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyh3aWRnZXRDb25maWcucHJvZHVjdHNfY29uZmlnKSwgcmVzb2x1dGlvbiB9O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2ZldGNoQm9vdHN0cmFwQ29uZmlnIHwgRXJyb3IgdHJhbnNmb3JtaW5nIHByb2R1Y3RzIGNvbmZpZycsIGVycik7XG4gICAgb3JnQ29uZmlnVmFsdWVzID0geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCwgcmVzb2x1dGlvbiB9O1xuICB9XG5cbiAgY29uc3QgY29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnID0ge1xuICAgIC8vIG9yZ19jb25maWcgaXMgYnl0ZS1pZGVudGljYWwgdG8gdGhlIGxlZ2FjeSAvdjEvb3JnL2NvbmZpZyAoc25ha2UpLCB0aGVcbiAgICAvLyBleGFjdCBzaGFwZSBFbnZpdmVTZXJ2aWNlQ29uZmlnLm9yZyB3YXMgYnVpbHQgdG8gaG9sZC4gQ29uc3RydWN0ZWRcbiAgICAvLyBkZWZlbnNpdmVseSAobGlrZSBmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnKSByYXRoZXIgdGhhbiBwYXNzZWQgdGhyb3VnaC5cbiAgICBvcmc6IHtcbiAgICAgIG9yZzoge1xuICAgICAgICBpZDogb3JnT3JnLmlkID8/ICcnLFxuICAgICAgICBzaG9ydF9uYW1lOiBvcmdPcmcuc2hvcnRfbmFtZSA/PyAnJyxcbiAgICAgICAgZGlzcGxheV9uYW1lOiBvcmdPcmcuZGlzcGxheV9uYW1lID8/ICcnLFxuICAgICAgICBkb21haW46IG9yZ09yZy5kb21haW4gPz8gJycsXG4gICAgICAgIHN0YXR1czogb3JnT3JnLnN0YXR1cyA/PyAnJyxcbiAgICAgICAgY3JlYXRlZF9hdDogb3JnT3JnLmNyZWF0ZWRfYXQgPz8gJycsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IG9yZ09yZy51cGRhdGVkX2F0ID8/ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdhdGVzOiB0b0Jvb3RzdHJhcEdhdGVzKG9yZ0NvbmZpZy5nYXRlcyksXG4gICAgLy8gRnJvbSB3aWRnZXRfY29uZmlnLCBOT1Qgb3JnX2NvbmZpZzogZ2V0V2lkZ2V0Q29uZmlnIHNvdXJjZXMgYXNzaWdubWVudHMgZnJvbVxuICAgIC8vIGl0cyB3aWRnZXQgY29uZmlnICh1bmdhdGVkKSwgd2hlcmVhcyBib290c3RyYXAncyBgb3JnX2NvbmZpZy5leHBlcmltZW50X2Fzc2lnbm1lbnRzYFxuICAgIC8vIGlzIHBvcHVsYXRlZCBPTkxZIHdoZW4gdGhlIGB1c2VfdW5pZmllZF9jb25maWdgIGdhdGUgZXZhbHVhdGVzIHRydWUgU0VSVkVSLVNJREVcbiAgICAvLyAocHltb25vIGB1bmlmaWVkX2NvbmZpZ19hY3RpdmVgKS4gUmVhZGluZyBvcmdfY29uZmlnIHdvdWxkIGRyb3AgYXNzaWdubWVudHMg4oCUXG4gICAgLy8gYW5kIHRoZSBhbXBsaXR1ZGUgYGV4cGVyaW1lbnQue25zfS4qYCBlbnJpY2htZW50IOKAlCBvbiB0aGUgY2xpZW50LW92ZXJyaWRlIHRlc3RcbiAgICAvLyBwYXRoIChnYXRlIE9OIHZpYSBgP3VzZV91bmlmaWVkX2NvbmZpZz10cnVlYCBidXQgMCUgc2VydmVyLXNpZGUpLiB3aWRnZXRfY29uZmlnXG4gICAgLy8gbWF0Y2hlcyBnZXRXaWRnZXRDb25maWcgaW4gZXZlcnkgY2FzZSAoZXF1YWwgd2hlbiB0aGUgZ2F0ZSBpcyBvbjsgdmVyc2lvbiBwaW5cbiAgICAvLyBlbXB0aWVzIGJvdGgpLlxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM6IHRvQm9vdHN0cmFwQXNzaWdubWVudHMod2lkZ2V0Q29uZmlnLmV4cGVyaW1lbnRfYXNzaWdubWVudHMpLFxuICAgIG9yZ0NvbmZpZzogb3JnQ29uZmlnVmFsdWVzLFxuICB9O1xuXG4gIHJldHVybiB7IGNvbmZpZywgdXJsUmVzb2x2aW5nOiByZXN1bHQudXJsX3Jlc29sdmluZyA/PyBudWxsIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQWNBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyx1QkFBdUI7QUFvRmpELE1BQU0sb0JBQW9CLFNBQ3ZCLE9BQU8sRUFBRSxFQUFFLEtBQUksT0FBTTtDQUNwQixNQUFNLEVBQUU7Q0FDUixPQUFPLEVBQUU7Q0FDVCxXQUFXLEVBQUUsY0FBYztDQUM1QixFQUFFO0FBSUwsTUFBTSwwQkFDSixTQUVDLE9BQU8sRUFBRSxFQUFFLEtBQUksT0FBTTtDQUNwQixZQUFZLEVBQUU7Q0FDZCxXQUFXLEVBQUU7Q0FDYiwyQkFBMkIsRUFBRTtDQUM3QixZQUFZLEVBQUU7Q0FDZixFQUFFO0FBR0wsTUFBTSxnQkFDSixRQUVBLE1BQU07Q0FBRSxhQUFhLElBQUk7Q0FBYyxtQkFBbUIsSUFBSTtDQUFxQixHQUFHO0FBbUJ4RixNQUFNLHVCQUF1QjtBQUU3QixNQUFhLHVCQUF1QixPQUFPLEVBQ3pDLFNBQ0EsUUFDQSxRQUNBLFFBQ0EsV0FDQSxXQUNBLFFBQ0EsS0FDQSxlQUNBLEtBQ0EsbUJBQzBEO0NBQzFELE1BQU0sVUFBVUMsK0NBQXVCO0NBR3ZDLE1BQU0sbUJBQ0osUUFBUSxTQUNKLEVBQ0UsZUFBZTtFQUNiO0VBQ0EsU0FBUztHQUNQLFNBQVM7R0FHVCxTQUFTLFVBQVU7R0FDbkIsUUFBUTtHQUNSO0dBQ0Q7RUFLRCxlQUFlO0VBR2YseUJBQXlCO0VBQzFCLEVBQ0YsR0FDRCxFQUFFO0NBS1IsTUFBTSxhQUFhLElBQUksaUJBQWlCO0NBQ3hDLE1BQU0sWUFBWSxpQkFBaUIsV0FBVyxPQUFPLEVBQUUscUJBQXFCO0NBQzVFLElBQUlDO0FBQ0osS0FBSTtFQUNGLE1BQU0sV0FBVyxNQUFNLE1BQU0sR0FBRyxRQUFRLHdCQUF3QjtHQUM5RCxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVBQVU7SUFDMUI7R0FDRCxNQUFNLEtBQUssVUFBVTtJQUNuQixTQUFTO0lBQ1Q7SUFHQTtJQUNBLHVCQUF1QjtJQUN2QjtJQUNBLEdBQUc7SUFDSixDQUFDO0dBQ0YsUUFBUSxXQUFXO0dBQ3BCLENBQUM7QUFFRixNQUFJLENBQUMsU0FBUyxHQUNaLE9BQU0sSUFBSSxNQUFNLG9DQUFvQyxTQUFTLGFBQWE7QUFFNUUsV0FBVSxNQUFNLFNBQVMsTUFBTTtXQUN2QjtBQUNSLGVBQWEsVUFBVTs7QUFjekIsS0FDRSxDQUFDLE9BQU8sWUFBWSxLQUFLLE9BQ3pCLENBQUMsTUFBTSxRQUFRLE9BQU8sWUFBWSxNQUFNLElBQ3hDLENBQUMsT0FBTyxjQUVSLE9BQU0sSUFBSSxNQUNSLDhHQUNEO0NBRUgsTUFBTSxZQUFZLE9BQU87Q0FDekIsTUFBTSxlQUFlLE9BQU87Q0FHNUIsTUFBTSxTQUFTLFVBQVUsS0FBSyxPQUFPLEVBQUU7Q0FDdkMsTUFBTSxhQUFhLGFBQWEsYUFBYSxXQUFXO0NBSXhELElBQUlDO0FBQ0osS0FBSTtBQUNGLG9CQUFrQjtHQUFFLEdBQUdDLHFEQUEwQixhQUFhLGdCQUFnQjtHQUFFO0dBQVk7VUFDckYsS0FBSztBQUNaLFNBQU8sU0FBUyw2REFBNkQsSUFBSTtBQUNqRixvQkFBa0I7R0FBRSxjQUFjO0dBQVcsZ0JBQWdCO0dBQVc7R0FBWTs7QUErQnRGLFFBQU87RUFBRSxRQTVCMkI7R0FJbEMsS0FBSyxFQUNILEtBQUs7SUFDSCxJQUFJLE9BQU8sTUFBTTtJQUNqQixZQUFZLE9BQU8sY0FBYztJQUNqQyxjQUFjLE9BQU8sZ0JBQWdCO0lBQ3JDLFFBQVEsT0FBTyxVQUFVO0lBQ3pCLFFBQVEsT0FBTyxVQUFVO0lBQ3pCLFlBQVksT0FBTyxjQUFjO0lBQ2pDLFlBQVksT0FBTyxjQUFjO0lBQ2xDLEVBQ0Y7R0FDRCxPQUFPLGlCQUFpQixVQUFVLE1BQU07R0FTeEMsd0JBQXdCLHVCQUF1QixhQUFhLHVCQUF1QjtHQUNuRixXQUFXO0dBQ1o7RUFFZ0IsY0FBYyxPQUFPLGlCQUFpQjtFQUFNIn0=