@provoly/dashboard 0.15.2 → 0.15.4

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 (144) hide show
  1. package/components/card/card.module.d.ts +1 -1
  2. package/dataset/style/_o-pry-dataset-detail.scss +4 -0
  3. package/esm2022/components/card/card.component.mjs +3 -3
  4. package/esm2022/components/card/card.module.mjs +5 -5
  5. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  6. package/esm2022/dataset/style/css.component.mjs +2 -2
  7. package/esm2022/lib/core/auth/geoAuth.service.mjs +26 -0
  8. package/esm2022/lib/core/components/overlay/overlay.module.mjs +4 -5
  9. package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -5
  10. package/esm2022/lib/core/core.module.mjs +8 -2
  11. package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -5
  12. package/esm2022/lib/core/public-api.mjs +2 -2
  13. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +21 -10
  14. package/esm2022/lib/core/store/search/search.effects.mjs +3 -3
  15. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +10 -4
  16. package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +7 -4
  17. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +24 -12
  18. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +4 -5
  19. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -7
  20. package/esm2022/notification/components/notification/notification.component.mjs +3 -3
  21. package/esm2022/notification/i18n/en.translations.mjs +2 -1
  22. package/esm2022/notification/i18n/fr.translations.mjs +2 -1
  23. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +5 -3
  24. package/esm2022/presentation/components/presentation.component.mjs +5 -4
  25. package/esm2022/presentation/style/css.component.mjs +2 -2
  26. package/esm2022/restitution/components/restitution/restitution.component.mjs +5 -2
  27. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  28. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
  29. package/esm2022/restitution/style/css.component.mjs +2 -2
  30. package/esm2022/search/i18n/en.translations.mjs +9 -3
  31. package/esm2022/search/i18n/fr.translations.mjs +9 -3
  32. package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
  33. package/esm2022/search/search-home/search-home.component.mjs +3 -3
  34. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +6 -3
  35. package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +3 -3
  36. package/esm2022/search/search-tools/search-tools.component.mjs +3 -3
  37. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  38. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  39. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  40. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
  41. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  42. package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
  43. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  44. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  45. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  46. package/esm2022/toolbox/style/css.component.mjs +2 -2
  47. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +22 -7
  48. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +19 -9
  49. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
  50. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +2 -1
  51. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
  52. package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +1 -1
  53. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
  54. package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
  55. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +1 -1
  56. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +5 -1
  57. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +34 -32
  58. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +8 -12
  59. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  60. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  61. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
  62. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +1 -1
  63. package/fesm2022/provoly-dashboard-components-card.mjs +6 -6
  64. package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-dataset.mjs +4 -4
  66. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-notification.mjs +4 -2
  68. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard-presentation.mjs +10 -7
  70. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  71. package/fesm2022/provoly-dashboard-restitution.mjs +10 -7
  72. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  73. package/fesm2022/provoly-dashboard-search.mjs +29 -14
  74. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  75. package/fesm2022/provoly-dashboard-toolbox.mjs +20 -20
  76. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  77. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +21 -6
  78. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  79. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +20 -8
  80. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  81. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  82. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  83. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
  84. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
  85. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +4 -4
  86. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  87. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
  88. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  89. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -40
  90. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  91. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  92. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  93. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
  94. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  95. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
  96. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  97. package/fesm2022/provoly-dashboard.mjs +114 -175
  98. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  99. package/lib/core/auth/geoAuth.service.d.ts +12 -0
  100. package/lib/core/components/overlay/overlay.module.d.ts +8 -9
  101. package/lib/core/core.module.d.ts +1 -0
  102. package/lib/core/public-api.d.ts +1 -1
  103. package/lib/core/store/aggregation/backend-aggregation.service.d.ts +2 -0
  104. package/lib/core/store/search/search.effects.d.ts +3 -0
  105. package/lib/core/toolbox/toolbox-menu.service.d.ts +2 -0
  106. package/lib/dashboard/components/widgets/data-widget.component.d.ts +3 -2
  107. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +8 -5
  108. package/notification/i18n/en.translations.d.ts +1 -0
  109. package/notification/i18n/fr.translations.d.ts +1 -0
  110. package/package.json +41 -42
  111. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
  112. package/presentation/style/_o-pry-presentation.scss +17 -13
  113. package/restitution/components/restitution/restitution.component.d.ts +7 -0
  114. package/schematics/migration.json +5 -0
  115. package/schematics/ng-add/index.js +0 -1
  116. package/schematics/ng-add/index.js.map +1 -1
  117. package/schematics/ng-update/version-0-15/index.d.ts +2 -0
  118. package/schematics/ng-update/version-0-15/index.js +19 -0
  119. package/schematics/ng-update/version-0-15/index.js.map +1 -0
  120. package/schematics/ng-update/version-0-15/index.spec.d.ts +1 -0
  121. package/schematics/ng-update/version-0-15/index.spec.js +51 -0
  122. package/schematics/ng-update/version-0-15/index.spec.js.map +1 -0
  123. package/search/i18n/en.translations.d.ts +6 -0
  124. package/search/i18n/fr.translations.d.ts +6 -0
  125. package/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.d.ts +1 -0
  126. package/styles/components/_a-tooltip.scss +76 -0
  127. package/styles/components/_o-dashboard.scss +1 -1
  128. package/styles/components/_o-pry-card.scss +14 -0
  129. package/styles/components/_o-widget.scss +1 -0
  130. package/styles/layout/_o-workspace.scss +0 -1
  131. package/styles/main.scss +2 -0
  132. package/styles-theme/components-theme/_a-tooltip.theme.scss +12 -0
  133. package/styles-theme/main-theme.scss +1 -0
  134. package/toolbox/style/_o-toolbox.scss +6 -0
  135. package/tooltips/attribute/attribute-tooltip.component.d.ts +2 -1
  136. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +2 -0
  137. package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
  138. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +1 -0
  139. package/widgets/widget-graph/style/_o-widget-graph.scss +15 -1
  140. package/widgets/widget-map/component/widget-map-layer.service.d.ts +3 -1
  141. package/widgets/widget-map/component/widget-map.component.d.ts +4 -7
  142. package/widgets/widget-map/style/_o-widget-map.scss +14 -0
  143. package/esm2022/lib/core/components/overlay/tooltip.directive.mjs +0 -121
  144. package/lib/core/components/overlay/tooltip.directive.d.ts +0 -28
@@ -95,7 +95,12 @@ export class ToolboxMenuService {
95
95
  return types.map((type) => {
96
96
  const matchingMenu = menuStructure.find((menu) => menu.label.replace('@pry.toolbox.sub.', '').indexOf(type) >= 0);
97
97
  if (!!matchingMenu) {
98
- return { type, label: matchingMenu.label, icon: matchingMenu.icon };
98
+ return {
99
+ type,
100
+ label: matchingMenu.label,
101
+ icon: matchingMenu.icon,
102
+ manifest: Object.values(manifests).find((manifest) => manifest.type === type)
103
+ };
99
104
  }
100
105
  const matchingSubMenu = menuStructure
101
106
  .map((menu) => menu.sub.find((sub) => sub.label.replace('@pry.toolbox.', '').indexOf(type) >= 0))
@@ -104,10 +109,11 @@ export class ToolboxMenuService {
104
109
  return {
105
110
  type,
106
111
  label: matchingSubMenu.label,
107
- icon: matchingSubMenu.icon.replace('assets/svgs/', '').replace(/.svg$/, '')
112
+ icon: matchingSubMenu.icon.replace('assets/svgs/', '').replace(/.svg$/, ''),
113
+ manifest: Object.values(manifests).find((manifest) => manifest.type === type)
108
114
  };
109
115
  }
110
- return { type, label: type, icon: DEFAULT_ICON_URL };
116
+ return { type, label: type, icon: DEFAULT_ICON_URL, manifest: {} };
111
117
  });
112
118
  }));
113
119
  }
@@ -151,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
151
157
  providedIn: 'root'
152
158
  }]
153
159
  }], ctorParameters: function () { return [{ type: i1.WidgetFactoryService }, { type: i2.ToolboxManifestService }, { type: i3.Store }]; } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBc0I5RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBNEI7SUFDM0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUU7WUFDSCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDN0UsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUN0RTtLQUNGO0lBQ0Q7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LGdDQUFnQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVk7UUFDNUIsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDOzhHQXhIVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2lkZ2V0RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IFByeVZpc2liaWxpdHkgfSBmcm9tICcuLi9jb21wb25lbnRzL3NoYXJlL3NoYXJlLm1vZGVsJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJy4uL21vZGVsL3dpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2NvbmZpZy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX0lDT05fVVJMIH0gZnJvbSAnLi4vc3RvcmUvY29uZmlnL2ljb24tZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRvb2xib3hNYW5pZmVzdFNlcnZpY2UgfSBmcm9tICcuL3Rvb2xib3gtbWFuaWZlc3Quc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIFdpZGdldERlc2NyaXB0aW9uQmFzZSA9IHtcbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgV2lkZ2V0RGVzY3JpcHRpb25NZW51ID0gV2lkZ2V0RGVzY3JpcHRpb25CYXNlICYge1xuICBvcGVuZWQ6IGJvb2xlYW47XG4gIHN1YjogQ2F0YWxvZ0VudHJ5W107XG59O1xuXG5leHBvcnQgdHlwZSBDYXRhbG9nRW50cnkgPSBXaWRnZXREZXNjcmlwdGlvbkJhc2UgJiB7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc0N1c3RvbT86IGJvb2xlYW47XG4gIHZpc2liaWxpdHk/OiBQcnlWaXNpYmlsaXR5O1xuICBjb3Zlcj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE1lbnVTdHJ1Y3R1cmU6IFdpZGdldERlc2NyaXB0aW9uTWVudVtdID0gW1xuICB7XG4gICAgaWNvbjogJ3NoYXJlX2xvY2F0aW9uJyxcbiAgICBsYWJlbDogJ0BwcnkudG9vbGJveC5zdWIubWFwJyxcbiAgICBvcGVuZWQ6IGZhbHNlLFxuICAgIHN1YjogW1xuICAgICAgeyBpY29uOiAnbWFwJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guc2ltcGxlbWFwJywgdHlwZTogJ3NpbXBsZW1hcCcgfSxcbiAgICAgIHsgaWNvbjogJ2J1YmJsZS1jaGFydC1saW5lJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guaGVhdG1hcCcsIHR5cGU6ICdoZWF0bWFwJyB9LFxuICAgICAgeyBpY29uOiAnYnVsbGVzJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYnViYmxlbWFwJywgdHlwZTogJ2J1YmJsZW1hcCcgfSxcbiAgICAgIHsgaWNvbjogJ3BsYWNlJywgbGFiZWw6ICdAcHJ5LnRvb2xib3gubWFya2VybWFwJywgdHlwZTogJ21hcmtlcm1hcCcgfVxuICAgIF1cbiAgfSxcbiAge1xuICAgIGljb246ICdzaG93X2NoYXJ0JyxcbiAgICBsYWJlbDogJ0BwcnkudG9vbGJveC5zdWIuY2hhcnQnLFxuICAgIG9wZW5lZDogZmFsc2UsXG4gICAgc3ViOiBbXG4gICAgICB7IGljb246ICdiYXJfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5iYXJjaGFydCcsIHR5cGU6ICdiYXJjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2Jhcl9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94Lmhpc3RvZ3JhbScsIHR5cGU6ICdoaXN0b2dyYW0nIH0sXG4gICAgICB7IGljb246ICdzaG93X2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3gubGluZWNoYXJ0JywgdHlwZTogJ2xpbmVjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2F1dG9fZ3JhcGgnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5wb2ludGNoYXJ0JywgdHlwZTogJ3BvaW50Y2hhcnQnIH0sXG4gICAgICB7IGljb246ICdhcmVhX2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYXJlYWNoYXJ0JywgdHlwZTogJ2FyZWFjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2RvbnV0X2xhcmdlJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYXJjY2hhcnQnLCB0eXBlOiAnYXJjY2hhcnQnIH1cbiAgICBdXG4gIH0sXG4gIHtcbiAgICBpY29uOiAndG9jJyxcbiAgICBsYWJlbDogJ0BwcnkudG9vbGJveC5zdWIub3RoZXInLFxuICAgIG9wZW5lZDogZmFsc2UsXG4gICAgc3ViOiBbXG4gICAgICB7IGljb246ICd0YWJsZV9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LnRhYmxlJywgdHlwZTogJ3RhYmxlJyB9LFxuICAgICAgeyBpY29uOiAndG9jJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guZGV0YWlsJywgdHlwZTogJ2RldGFpbCcgfSxcbiAgICAgIHsgaWNvbjogJ2dyYXBoJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guZ3JhcGgnLCB0eXBlOiAnZ3JhcGgnIH0sXG4gICAgICB7IGljb246ICdzZXR0aW5nc19hcHBsaWNhdGlvbnMnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5pZnJhbWUnLCB0eXBlOiAnaWZyYW1lJyB9LFxuICAgICAgeyBpY29uOiAndGlsZScsIGxhYmVsOiAnQHByeS50b29sYm94LnRpbGUnLCB0eXBlOiAndGlsZScgfSxcbiAgICAgIHsgaWNvbjogJ2Jhcl9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LnZlZ2EnLCB0eXBlOiAndmVnYScgfVxuICAgIF1cbiAgfVxuXTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJveE1lbnVTZXJ2aWNlIHtcbiAgX21lbnVTdHJ1Y3R1cmUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXaWRnZXREZXNjcmlwdGlvbk1lbnVbXT4oZGVmYXVsdE1lbnVTdHJ1Y3R1cmUpO1xuICBtZW51U3RydWN0dXJlJDogT2JzZXJ2YWJsZTxXaWRnZXREZXNjcmlwdGlvbk1lbnVbXT47XG4gIG1lbnVMaXN0JDogT2JzZXJ2YWJsZTxDYXRhbG9nRW50cnlbXT47XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgdHlwZTogc3RyaW5nIH1bXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3aWRnZXRGYWN0b3J5U2VydmljZTogV2lkZ2V0RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlXG4gICkge1xuICAgIHRoaXMubWVudVN0cnVjdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLFxuICAgICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5yZWZlcmVuY2UkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmNhdGFsb2cpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW21lbnVTdHJ1Y3R1cmUsIHJlZmVyZW5jZSwgY2F0YWxvZ10pID0+XG4gICAgICAgIC8vIEdlbmVyaWMgd2lkZ2V0c1xuICAgICAgICBtZW51U3RydWN0dXJlXG4gICAgICAgICAgLmZpbHRlcigobWVudSkgPT4gbWVudS5zdWIuZmluZCgoc3ViKSA9PiByZWZlcmVuY2VbdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmdldChzdWIudHlwZSkudHlwZV0pKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobWVudSkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAuLi5tZW51LFxuICAgICAgICAgICAgICAgIHN1YjogbWVudS5zdWJcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHN1YikgPT4gcmVmZXJlbmNlW3RoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5nZXQoc3ViLnR5cGUpLnR5cGVdKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoZW50cnkpID0+ICh7IC4uLmVudHJ5LCBpY29uOiAnYXNzZXRzL3N2Z3MvJyArIGVudHJ5Lmljb24gKyAnLnN2ZycgfSkpIGFzIENhdGFsb2dFbnRyeVtdXG4gICAgICAgICAgICAgIH0gYXMgV2lkZ2V0RGVzY3JpcHRpb25NZW51KVxuICAgICAgICAgIClcbiAgICAgICAgICAvLyBVc2VyIGRlZmluZWQgd2lkZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgICAgICAgLmNvbmNhdCh7XG4gICAgICAgICAgICBpY29uOiAnbGlicmFyeV9hZGQnLFxuICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guY2F0YWxvZy50aXRsZScsXG4gICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3ViOiBbXG4gICAgICAgICAgICAgIC4uLmNhdGFsb2cubWFwKCh3aWRnZXQpID0+ICh7XG4gICAgICAgICAgICAgICAgaWNvbjogd2lkZ2V0LmltYWdlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB3aWRnZXQubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aWRnZXQuaWQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpZGdldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBpc0N1c3RvbTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB3aWRnZXQudmlzaWJpbGl0eSxcbiAgICAgICAgICAgICAgICBjb3Zlcjogd2lkZ2V0LmNvdmVyXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMubWVudUxpc3QkID0gdGhpcy5tZW51U3RydWN0dXJlJC5waXBlKFxuICAgICAgbWFwKChtZW51RGVzY3JpcHRpb24pID0+XG4gICAgICAgIG1lbnVEZXNjcmlwdGlvblxuICAgICAgICAgIC5tYXAoKG1lbnUpID0+XG4gICAgICAgICAgICBtZW51LnN1Yi5tYXAoKHN1Yk1lbnUpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnN1Yk1lbnUsXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiBtZW51LmxhYmVsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy50eXBlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2UuaW5pdGlhbE1hbmlmZXN0cyQsIHRoaXMubWVudVN0cnVjdHVyZSRdKS5waXBlKFxuICAgICAgbWFwKChbbWFuaWZlc3RzLCBtZW51U3RydWN0dXJlXSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlcyA9IFsuLi5uZXcgU2V0KE9iamVjdC52YWx1ZXMobWFuaWZlc3RzKS5tYXAoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC50eXBlKSldO1xuICAgICAgICByZXR1cm4gdHlwZXMubWFwKCh0eXBlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hpbmdNZW51ID0gbWVudVN0cnVjdHVyZS5maW5kKFxuICAgICAgICAgICAgKG1lbnUpID0+IG1lbnUubGFiZWwucmVwbGFjZSgnQHByeS50b29sYm94LnN1Yi4nLCAnJykuaW5kZXhPZih0eXBlKSA+PSAwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoISFtYXRjaGluZ01lbnUpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGUsIGxhYmVsOiBtYXRjaGluZ01lbnUubGFiZWwsIGljb246IG1hdGNoaW5nTWVudS5pY29uIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG1hdGNoaW5nU3ViTWVudSA9IG1lbnVTdHJ1Y3R1cmVcbiAgICAgICAgICAgIC5tYXAoKG1lbnUpID0+IG1lbnUuc3ViLmZpbmQoKHN1YikgPT4gc3ViLmxhYmVsLnJlcGxhY2UoJ0BwcnkudG9vbGJveC4nLCAnJykuaW5kZXhPZih0eXBlKSA+PSAwKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKG1hdGNoaW5nKSA9PiAhIW1hdGNoaW5nKVswXTtcbiAgICAgICAgICBpZiAoISFtYXRjaGluZ1N1Yk1lbnUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIGxhYmVsOiBtYXRjaGluZ1N1Yk1lbnUubGFiZWwsXG4gICAgICAgICAgICAgIGljb246IG1hdGNoaW5nU3ViTWVudS5pY29uLnJlcGxhY2UoJ2Fzc2V0cy9zdmdzLycsICcnKS5yZXBsYWNlKC8uc3ZnJC8sICcnKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgdHlwZSwgbGFiZWw6IHR5cGUsIGljb246IERFRkFVTFRfSUNPTl9VUkwgfTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhZGRNZW51KGljb246IHN0cmluZywgbGFiZWw6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5fbWVudVN0cnVjdHVyZSQuZ2V0VmFsdWUoKS5maW5kKChtZW51KSA9PiBtZW51LmxhYmVsID09PSBsYWJlbCkpIHtcbiAgICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLm5leHQodGhpcy5fbWVudVN0cnVjdHVyZSQuZ2V0VmFsdWUoKS5jb25jYXQoeyBpY29uLCBsYWJlbCwgb3BlbmVkOiBmYWxzZSwgc3ViOiBbXSB9KSk7XG4gICAgfVxuICB9XG5cbiAgYWRkV2lkZ2V0KG1lbnVMYWJlbDogc3RyaW5nLCBpY29uOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLl9tZW51U3RydWN0dXJlJC5nZXRWYWx1ZSgpLmZpbmQoKG1lbnUpID0+IG1lbnUubGFiZWwgPT09IG1lbnVMYWJlbCk7XG4gICAgaWYgKCFtZW51KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNZW51IHdpdGggbGFiZWwgJHttZW51TGFiZWx9IGhhcyBub3QgYmVlbiBmb3VuZGApO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZW51LnN1Yi5wdXNoKHsgaWNvbiwgbGFiZWwsIHR5cGUgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0TWVudVN0cnVjdHVyZShzdHJ1Y3R1cmU6IFdpZGdldERlc2NyaXB0aW9uTWVudVtdKSB7XG4gICAgdGhpcy5fbWVudVN0cnVjdHVyZSQubmV4dChzdHJ1Y3R1cmUpO1xuICB9XG5cbiAgYWRkVG9DYXRhbG9nKHdpZGdldDogV2lkZ2V0LCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZEZvckNhdGFsb2cod2lkZ2V0Lm5hbWUpKSB7XG4gICAgICBjb25zdCBtYW5pZmVzdCA9IEpTT04ucGFyc2Uod2lkZ2V0LmNvbnRlbnQpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHsgbWFuaWZlc3QsIGluZGV4IH0pKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5zYXZlV2lkZ2V0KHsgd2lkZ2V0IH0pKTtcbiAgICAgIHRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5zZXQod2lkZ2V0LmlkLCBtYW5pZmVzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRyeWluZyB0byBhZGQgZXhpc3RpbmcgdHlwZSBcIiR7bmFtZX1cImApO1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWRGb3JDYXRhbG9nKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAhIW5hbWUgJiYgbmFtZS5sZW5ndGggPiAzICYmICF0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2UuZ2V0KG5hbWUpO1xuICB9XG59XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBdUI5RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBNEI7SUFDM0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUU7WUFDSCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDN0UsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUN0RTtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixLQUFLLEVBQUUsd0JBQXdCO1FBQy9CLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFO1lBQ0gsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3ZFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN6RSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDMUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzVFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUMxRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7U0FDMUU7S0FDRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxLQUFLLEVBQUUsd0JBQXdCO1FBQy9CLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFO1lBQ0gsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ25FLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUM3RCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDN0QsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDL0UsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzFELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtTQUNoRTtLQUNGO0NBQ0YsQ0FBQztBQUtGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFDVSxvQkFBMEMsRUFDMUMsc0JBQThDLEVBQzlDLEtBQVk7UUFGWix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVJ0QixvQkFBZSxHQUFHLElBQUksZUFBZSxDQUEwQixvQkFBb0IsQ0FBQyxDQUFDO1FBVW5GLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUFlO1lBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7U0FDM0MsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxQyxrQkFBa0I7UUFDbEIsYUFBYTthQUNWLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25HLEdBQUcsQ0FDRixDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsQ0FBQztZQUNDLEdBQUcsSUFBSTtZQUNQLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDVixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQW1CO1NBQ3RFLENBQUEsQ0FDOUI7WUFDRCxxQ0FBcUM7YUFDcEMsTUFBTSxDQUFDO1lBQ04sSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLDRCQUE0QjtZQUNuQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRTtnQkFDSCxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFCLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSztvQkFDbEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNsQixJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO29CQUMvQixRQUFRLEVBQUUsSUFBSTtvQkFDZCxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7b0JBQzdCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztpQkFDcEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRixDQUFDLENBQ0wsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDdEIsZUFBZTthQUNaLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekIsR0FBRyxPQUFPO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3JCLENBQUMsQ0FBQyxDQUNKO2FBQ0EsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN0QyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3BHLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDakMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUNyQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDekUsQ0FBQztnQkFDRixJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUU7b0JBQ2xCLE9BQU87d0JBQ0wsSUFBSTt3QkFDSixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7d0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTt3QkFDdkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBbUI7cUJBQ2hHLENBQUM7aUJBQ0g7Z0JBQ0QsTUFBTSxlQUFlLEdBQUcsYUFBYTtxQkFDbEMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDaEcsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRTtvQkFDckIsT0FBTzt3QkFDTCxJQUFJO3dCQUNKLEtBQUssRUFBRSxlQUFlLENBQUMsS0FBSzt3QkFDNUIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQzt3QkFDM0UsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBbUI7cUJBQ2hHLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsRUFBb0IsRUFBRSxDQUFDO1lBQ3ZGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3pFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUc7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBRSxJQUFZO1FBQ3BFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixTQUFTLHFCQUFxQixDQUFDLENBQUM7U0FDbEU7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWtDO1FBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLEtBQWE7UUFDeEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN0RDthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFZO1FBQzVCLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQzs4R0E5SFUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdpZGdldEZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtaW5zdGFuY2lhdG9yL3dpZGdldC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBQcnlWaXNpYmlsaXR5IH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZS9zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tICcuLi9tb2RlbC93aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMgfSBmcm9tICcuLi9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9JQ09OX1VSTCB9IGZyb20gJy4uL3N0b3JlL2NvbmZpZy9pY29uLWRlZmluaXRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb29sYm94TWFuaWZlc3RTZXJ2aWNlIH0gZnJvbSAnLi90b29sYm94LW1hbmlmZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBXaWRnZXREZXNjcmlwdGlvbkJhc2UgPSB7XG4gIGljb246IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFdpZGdldERlc2NyaXB0aW9uTWVudSA9IFdpZGdldERlc2NyaXB0aW9uQmFzZSAmIHtcbiAgb3BlbmVkOiBib29sZWFuO1xuICBzdWI6IENhdGFsb2dFbnRyeVtdO1xufTtcblxuZXhwb3J0IHR5cGUgQ2F0YWxvZ0VudHJ5ID0gV2lkZ2V0RGVzY3JpcHRpb25CYXNlICYge1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaXNDdXN0b20/OiBib29sZWFuO1xuICB2aXNpYmlsaXR5PzogUHJ5VmlzaWJpbGl0eTtcbiAgY292ZXI/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNZW51U3RydWN0dXJlOiBXaWRnZXREZXNjcmlwdGlvbk1lbnVbXSA9IFtcbiAge1xuICAgIGljb246ICdzaGFyZV9sb2NhdGlvbicsXG4gICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guc3ViLm1hcCcsXG4gICAgb3BlbmVkOiBmYWxzZSxcbiAgICBzdWI6IFtcbiAgICAgIHsgaWNvbjogJ21hcCcsIGxhYmVsOiAnQHByeS50b29sYm94LnNpbXBsZW1hcCcsIHR5cGU6ICdzaW1wbGVtYXAnIH0sXG4gICAgICB7IGljb246ICdidWJibGUtY2hhcnQtbGluZScsIGxhYmVsOiAnQHByeS50b29sYm94LmhlYXRtYXAnLCB0eXBlOiAnaGVhdG1hcCcgfSxcbiAgICAgIHsgaWNvbjogJ2J1bGxlcycsIGxhYmVsOiAnQHByeS50b29sYm94LmJ1YmJsZW1hcCcsIHR5cGU6ICdidWJibGVtYXAnIH0sXG4gICAgICB7IGljb246ICdwbGFjZScsIGxhYmVsOiAnQHByeS50b29sYm94Lm1hcmtlcm1hcCcsIHR5cGU6ICdtYXJrZXJtYXAnIH1cbiAgICBdXG4gIH0sXG4gIHtcbiAgICBpY29uOiAnc2hvd19jaGFydCcsXG4gICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guc3ViLmNoYXJ0JyxcbiAgICBvcGVuZWQ6IGZhbHNlLFxuICAgIHN1YjogW1xuICAgICAgeyBpY29uOiAnYmFyX2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYmFyY2hhcnQnLCB0eXBlOiAnYmFyY2hhcnQnIH0sXG4gICAgICB7IGljb246ICdiYXJfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5oaXN0b2dyYW0nLCB0eXBlOiAnaGlzdG9ncmFtJyB9LFxuICAgICAgeyBpY29uOiAnc2hvd19jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LmxpbmVjaGFydCcsIHR5cGU6ICdsaW5lY2hhcnQnIH0sXG4gICAgICB7IGljb246ICdhdXRvX2dyYXBoJywgbGFiZWw6ICdAcHJ5LnRvb2xib3gucG9pbnRjaGFydCcsIHR5cGU6ICdwb2ludGNoYXJ0JyB9LFxuICAgICAgeyBpY29uOiAnYXJlYV9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LmFyZWFjaGFydCcsIHR5cGU6ICdhcmVhY2hhcnQnIH0sXG4gICAgICB7IGljb246ICdkb251dF9sYXJnZScsIGxhYmVsOiAnQHByeS50b29sYm94LmFyY2NoYXJ0JywgdHlwZTogJ2FyY2NoYXJ0JyB9XG4gICAgXVxuICB9LFxuICB7XG4gICAgaWNvbjogJ3RvYycsXG4gICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guc3ViLm90aGVyJyxcbiAgICBvcGVuZWQ6IGZhbHNlLFxuICAgIHN1YjogW1xuICAgICAgeyBpY29uOiAndGFibGVfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC50YWJsZScsIHR5cGU6ICd0YWJsZScgfSxcbiAgICAgIHsgaWNvbjogJ3RvYycsIGxhYmVsOiAnQHByeS50b29sYm94LmRldGFpbCcsIHR5cGU6ICdkZXRhaWwnIH0sXG4gICAgICB7IGljb246ICdncmFwaCcsIGxhYmVsOiAnQHByeS50b29sYm94LmdyYXBoJywgdHlwZTogJ2dyYXBoJyB9LFxuICAgICAgeyBpY29uOiAnc2V0dGluZ3NfYXBwbGljYXRpb25zJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guaWZyYW1lJywgdHlwZTogJ2lmcmFtZScgfSxcbiAgICAgIHsgaWNvbjogJ3RpbGUnLCBsYWJlbDogJ0BwcnkudG9vbGJveC50aWxlJywgdHlwZTogJ3RpbGUnIH0sXG4gICAgICB7IGljb246ICdiYXJfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC52ZWdhJywgdHlwZTogJ3ZlZ2EnIH1cbiAgICBdXG4gIH1cbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xib3hNZW51U2VydmljZSB7XG4gIF9tZW51U3RydWN0dXJlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0RGVzY3JpcHRpb25NZW51W10+KGRlZmF1bHRNZW51U3RydWN0dXJlKTtcbiAgbWVudVN0cnVjdHVyZSQ6IE9ic2VydmFibGU8V2lkZ2V0RGVzY3JpcHRpb25NZW51W10+O1xuICBtZW51TGlzdCQ6IE9ic2VydmFibGU8Q2F0YWxvZ0VudHJ5W10+O1xuICB0eXBlcyQ6IE9ic2VydmFibGU8eyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3aWRnZXRGYWN0b3J5U2VydmljZTogV2lkZ2V0RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlXG4gICkge1xuICAgIHRoaXMubWVudVN0cnVjdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLFxuICAgICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5yZWZlcmVuY2UkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmNhdGFsb2cpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW21lbnVTdHJ1Y3R1cmUsIHJlZmVyZW5jZSwgY2F0YWxvZ10pID0+XG4gICAgICAgIC8vIEdlbmVyaWMgd2lkZ2V0c1xuICAgICAgICBtZW51U3RydWN0dXJlXG4gICAgICAgICAgLmZpbHRlcigobWVudSkgPT4gbWVudS5zdWIuZmluZCgoc3ViKSA9PiByZWZlcmVuY2VbdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmdldChzdWIudHlwZSkudHlwZV0pKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobWVudSkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAuLi5tZW51LFxuICAgICAgICAgICAgICAgIHN1YjogbWVudS5zdWJcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHN1YikgPT4gcmVmZXJlbmNlW3RoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5nZXQoc3ViLnR5cGUpLnR5cGVdKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoZW50cnkpID0+ICh7IC4uLmVudHJ5LCBpY29uOiAnYXNzZXRzL3N2Z3MvJyArIGVudHJ5Lmljb24gKyAnLnN2ZycgfSkpIGFzIENhdGFsb2dFbnRyeVtdXG4gICAgICAgICAgICAgIH0gYXMgV2lkZ2V0RGVzY3JpcHRpb25NZW51KVxuICAgICAgICAgIClcbiAgICAgICAgICAvLyBVc2VyIGRlZmluZWQgd2lkZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgICAgICAgLmNvbmNhdCh7XG4gICAgICAgICAgICBpY29uOiAnbGlicmFyeV9hZGQnLFxuICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guY2F0YWxvZy50aXRsZScsXG4gICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3ViOiBbXG4gICAgICAgICAgICAgIC4uLmNhdGFsb2cubWFwKCh3aWRnZXQpID0+ICh7XG4gICAgICAgICAgICAgICAgaWNvbjogd2lkZ2V0LmltYWdlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB3aWRnZXQubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aWRnZXQuaWQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpZGdldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBpc0N1c3RvbTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB3aWRnZXQudmlzaWJpbGl0eSxcbiAgICAgICAgICAgICAgICBjb3Zlcjogd2lkZ2V0LmNvdmVyXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMubWVudUxpc3QkID0gdGhpcy5tZW51U3RydWN0dXJlJC5waXBlKFxuICAgICAgbWFwKChtZW51RGVzY3JpcHRpb24pID0+XG4gICAgICAgIG1lbnVEZXNjcmlwdGlvblxuICAgICAgICAgIC5tYXAoKG1lbnUpID0+XG4gICAgICAgICAgICBtZW51LnN1Yi5tYXAoKHN1Yk1lbnUpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnN1Yk1lbnUsXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiBtZW51LmxhYmVsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy50eXBlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2UuaW5pdGlhbE1hbmlmZXN0cyQsIHRoaXMubWVudVN0cnVjdHVyZSRdKS5waXBlKFxuICAgICAgbWFwKChbbWFuaWZlc3RzLCBtZW51U3RydWN0dXJlXSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlcyA9IFsuLi5uZXcgU2V0KE9iamVjdC52YWx1ZXMobWFuaWZlc3RzKS5tYXAoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC50eXBlKSldO1xuICAgICAgICByZXR1cm4gdHlwZXMubWFwKCh0eXBlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hpbmdNZW51ID0gbWVudVN0cnVjdHVyZS5maW5kKFxuICAgICAgICAgICAgKG1lbnUpID0+IG1lbnUubGFiZWwucmVwbGFjZSgnQHByeS50b29sYm94LnN1Yi4nLCAnJykuaW5kZXhPZih0eXBlKSA+PSAwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoISFtYXRjaGluZ01lbnUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIGxhYmVsOiBtYXRjaGluZ01lbnUubGFiZWwsXG4gICAgICAgICAgICAgIGljb246IG1hdGNoaW5nTWVudS5pY29uLFxuICAgICAgICAgICAgICBtYW5pZmVzdDogT2JqZWN0LnZhbHVlcyhtYW5pZmVzdHMpLmZpbmQoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC50eXBlID09PSB0eXBlKSBhcyBXaWRnZXRNYW5pZmVzdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbWF0Y2hpbmdTdWJNZW51ID0gbWVudVN0cnVjdHVyZVxuICAgICAgICAgICAgLm1hcCgobWVudSkgPT4gbWVudS5zdWIuZmluZCgoc3ViKSA9PiBzdWIubGFiZWwucmVwbGFjZSgnQHByeS50b29sYm94LicsICcnKS5pbmRleE9mKHR5cGUpID49IDApKVxuICAgICAgICAgICAgLmZpbHRlcigobWF0Y2hpbmcpID0+ICEhbWF0Y2hpbmcpWzBdO1xuICAgICAgICAgIGlmICghIW1hdGNoaW5nU3ViTWVudSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgbGFiZWw6IG1hdGNoaW5nU3ViTWVudS5sYWJlbCxcbiAgICAgICAgICAgICAgaWNvbjogbWF0Y2hpbmdTdWJNZW51Lmljb24ucmVwbGFjZSgnYXNzZXRzL3N2Z3MvJywgJycpLnJlcGxhY2UoLy5zdmckLywgJycpLFxuICAgICAgICAgICAgICBtYW5pZmVzdDogT2JqZWN0LnZhbHVlcyhtYW5pZmVzdHMpLmZpbmQoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC50eXBlID09PSB0eXBlKSBhcyBXaWRnZXRNYW5pZmVzdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgdHlwZSwgbGFiZWw6IHR5cGUsIGljb246IERFRkFVTFRfSUNPTl9VUkwsIG1hbmlmZXN0OiB7fSBhcyBXaWRnZXRNYW5pZmVzdCB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFkZE1lbnUoaWNvbjogc3RyaW5nLCBsYWJlbDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLl9tZW51U3RydWN0dXJlJC5nZXRWYWx1ZSgpLmZpbmQoKG1lbnUpID0+IG1lbnUubGFiZWwgPT09IGxhYmVsKSkge1xuICAgICAgdGhpcy5fbWVudVN0cnVjdHVyZSQubmV4dCh0aGlzLl9tZW51U3RydWN0dXJlJC5nZXRWYWx1ZSgpLmNvbmNhdCh7IGljb24sIGxhYmVsLCBvcGVuZWQ6IGZhbHNlLCBzdWI6IFtdIH0pKTtcbiAgICB9XG4gIH1cblxuICBhZGRXaWRnZXQobWVudUxhYmVsOiBzdHJpbmcsIGljb246IHN0cmluZywgbGFiZWw6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbWVudSA9IHRoaXMuX21lbnVTdHJ1Y3R1cmUkLmdldFZhbHVlKCkuZmluZCgobWVudSkgPT4gbWVudS5sYWJlbCA9PT0gbWVudUxhYmVsKTtcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1lbnUgd2l0aCBsYWJlbCAke21lbnVMYWJlbH0gaGFzIG5vdCBiZWVuIGZvdW5kYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lbnUuc3ViLnB1c2goeyBpY29uLCBsYWJlbCwgdHlwZSB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRNZW51U3RydWN0dXJlKHN0cnVjdHVyZTogV2lkZ2V0RGVzY3JpcHRpb25NZW51W10pIHtcbiAgICB0aGlzLl9tZW51U3RydWN0dXJlJC5uZXh0KHN0cnVjdHVyZSk7XG4gIH1cblxuICBhZGRUb0NhdGFsb2cod2lkZ2V0OiBXaWRnZXQsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkRm9yQ2F0YWxvZyh3aWRnZXQubmFtZSkpIHtcbiAgICAgIGNvbnN0IG1hbmlmZXN0ID0gSlNPTi5wYXJzZSh3aWRnZXQuY29udGVudCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0TWFuaWZlc3QoeyBtYW5pZmVzdCwgaW5kZXggfSkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLnNhdmVXaWRnZXQoeyB3aWRnZXQgfSkpO1xuICAgICAgdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLnNldCh3aWRnZXQuaWQsIG1hbmlmZXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgVHJ5aW5nIHRvIGFkZCBleGlzdGluZyB0eXBlIFwiJHtuYW1lfVwiYCk7XG4gICAgfVxuICB9XG5cbiAgaXNWYWxpZEZvckNhdGFsb2cobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICEhbmFtZSAmJiBuYW1lLmxlbmd0aCA+IDMgJiYgIXRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5nZXQobmFtZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import equal from 'fast-deep-equal/es6';
3
- import { BehaviorSubject, combineLatest, distinctUntilChanged, filter, map } from 'rxjs';
3
+ import { BehaviorSubject, combineLatest, distinctUntilChanged, filter, map, Subject } from 'rxjs';
4
4
  import { UNKNOWN_DATASOURCE } from '../../../core/components/translate-id/translate-id.pipe';
5
5
  import { DataSourceSelectors } from '../../../core/store/data-source/data-source.selectors';
6
6
  import { ResultsetUtils } from '../../resultset-utils';
@@ -15,6 +15,7 @@ export class DataWidgetComponent extends BaseWidgetComponent {
15
15
  constructor(store, el) {
16
16
  super(store, el);
17
17
  this.staticResultSet$ = new BehaviorSubject(null);
18
+ this.openData$ = new Subject();
18
19
  this.datasourceIds$ = this.manifest$.pipe(map((manifest) => (Array.isArray(manifest.datasource) ? manifest.datasource : [manifest.datasource]).filter((id) => !!id)));
19
20
  this.usedDatasources$ = combineLatest([
20
21
  this.datasourceIds$,
@@ -47,12 +48,14 @@ export class DataWidgetComponent extends BaseWidgetComponent {
47
48
  }), distinctUntilChanged((p, v) => equal(p, v)));
48
49
  }
49
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DataWidgetComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DataWidgetComponent, selector: "pry-data-widget", inputs: { staticResultSet: "staticResultSet" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DataWidgetComponent, selector: "pry-data-widget", inputs: { openData$: "openData$", staticResultSet: "staticResultSet" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
51
52
  }
52
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DataWidgetComponent, decorators: [{
53
54
  type: Component,
54
55
  args: [{ selector: 'pry-data-widget', template: '' }]
55
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ElementRef }]; }, propDecorators: { staticResultSet: [{
56
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ElementRef }]; }, propDecorators: { openData$: [{
57
+ type: Input
58
+ }], staticResultSet: [{
56
59
  type: Input
57
60
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvZGF0YS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFJN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFJOUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUFtQjtJQU8xRCxJQUFhLGVBQWUsQ0FBQyxTQUFvQjtRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZLEtBQWlCLEVBQUUsRUFBYztRQUMzQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBVm5CLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQVc3RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN2QyxH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LENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQzs4R0FsRVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsOEhBRG9CLEVBQUU7OzJGQUN6QyxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtxSEFRekMsZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVOS05PV05fREFUQVNPVVJDRSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy90cmFuc2xhdGUtaWQvdHJhbnNsYXRlLWlkLnBpcGUnO1xuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgUmVzdWx0c2V0VXRpbHMgfSBmcm9tICcuLi8uLi9yZXN1bHRzZXQtdXRpbHMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBCYXNlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmFtZWRRdWVyeVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9uYW1lZC1xdWVyeS10eXBlcy5tb2RlbCc7XG5cbkBDb21wb25lbnQoeyBzZWxlY3RvcjogJ3ByeS1kYXRhLXdpZGdldCcsIHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIERhdGFXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29tcG9uZW50IHtcbiAgcmVzdWx0U2V0JDogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+O1xuICBzdGF0aWNSZXN1bHRTZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZXN1bHRTZXQgfCBudWxsPihudWxsKTtcbiAgZGF0YXNvdXJjZUlkcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBhbGxJdGVtcyQ6IE9ic2VydmFibGU8SXRlbVtdPjtcbiAgdXNlZERhdGFzb3VyY2VzJDogT2JzZXJ2YWJsZTxEYXRhU291cmNlW10+O1xuXG4gIEBJbnB1dCgpIHNldCBzdGF0aWNSZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQpIHtcbiAgICB0aGlzLnN0YXRpY1Jlc3VsdFNldCQubmV4dChyZXN1bHRTZXQpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlPGFueT4sIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcbiAgICB0aGlzLmRhdGFzb3VyY2VJZHMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKG1hbmlmZXN0KSA9PlxuICAgICAgICAgIChBcnJheS5pc0FycmF5KG1hbmlmZXN0LmRhdGFzb3VyY2UpID8gbWFuaWZlc3QuZGF0YXNvdXJjZSA6IFttYW5pZmVzdC5kYXRhc291cmNlXSkuZmlsdGVyKFxuICAgICAgICAgICAgKGlkKSA9PiAhIWlkXG4gICAgICAgICAgKSBhcyBzdHJpbmdbXVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy51c2VkRGF0YXNvdXJjZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGFzb3VyY2VJZHMkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2lkcywgZGF0YXNvdXJjZXNdKSA9PlxuICAgICAgICAgIGlkc1xuICAgICAgICAgICAgLm1hcCgoaWQpID0+IGRhdGFzb3VyY2VzLmZpbmQoKGRzKSA9PiBkcy5pZCA9PT0gaWQpID8/IGlkKVxuICAgICAgICAgICAgLm1hcCgobnEpID0+ICh0eXBlb2YgbnEgIT09ICdzdHJpbmcnID8gbnEgOiBVTktOT1dOX0RBVEFTT1VSQ0UobnEpKSkgYXMgRGF0YVNvdXJjZVtdXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnJlc3VsdFNldCQgPSB0aGlzLmluaXRSZXN1bHRTZXQkKCk7XG5cbiAgICB0aGlzLmFsbEl0ZW1zJCA9IHRoaXMucmVzdWx0U2V0JC5waXBlKFxuICAgICAgZmlsdGVyKChyZXN1bHRTZXQpID0+ICEhcmVzdWx0U2V0KSxcbiAgICAgIG1hcChcbiAgICAgICAgKHJlc3VsdFNldCkgPT5cbiAgICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRTZXQ/Lml0ZW1zKVxuICAgICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdKVxuICAgICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSkgYXMgSXRlbVtdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGluaXRSZXN1bHRTZXQkKCkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yZXN1bHRTZXRzKSxcbiAgICAgIHRoaXMuZGF0YXNvdXJjZUlkcyQsXG4gICAgICB0aGlzLnN0YXRpY1Jlc3VsdFNldCRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcmVzdWx0U2V0cywgcmVzdWx0U2V0TmFtZXNBcnJheSwgc3RhdGljUmVzdWx0U2V0XSkgPT4ge1xuICAgICAgICBpZiAoISFzdGF0aWNSZXN1bHRTZXQpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGljUmVzdWx0U2V0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdFNldEFycmF5ID0gcmVzdWx0U2V0TmFtZXNBcnJheVxuICAgICAgICAgIC5tYXAoKHJzTmFtZSkgPT4gcmVzdWx0U2V0c1tyc05hbWUgPz8gJyddKVxuICAgICAgICAgIC5maWx0ZXIoKHJzTmFtZSkgPT4gISFyc05hbWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0U2V0QXJyYXkucmVkdWNlKChyczEsIHJzMikgPT4gUmVzdWx0c2V0VXRpbHMubWVyZ2VSZXN1bHRTZXRzKHJzMSwgcnMyKSwge1xuICAgICAgICAgIGl0ZW1zOiB7fSxcbiAgICAgICAgICByZWxhdGlvbnM6IFtdLFxuICAgICAgICAgIG1lcmdlZDogcmVzdWx0U2V0QXJyYXkubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocCwgdikgPT4gZXF1YWwocCwgdikpXG4gICAgKTtcbiAgfVxufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvZGF0YS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBSTdGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRzlELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFRMUQsSUFBYSxlQUFlLENBQUMsU0FBb0I7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxLQUFpQixFQUFFLEVBQWM7UUFDM0MsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQVhuQixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsSUFBSSxDQUFDLENBQUM7UUFLdEQsY0FBUyxHQUFxQyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBT3pFLElBQUks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LEVBQUUsRUFBRTtnQkFDYixNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU07YUFDOUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzVDLENBQUM7SUFDSixDQUFDOzhHQW5FVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixzSkFEb0IsRUFBRTs7MkZBQ3pDLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO3FIQVE3QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNPLGVBQWU7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVTktOT1dOX0RBVEFTT1VSQ0UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbXBvbmVudHMvdHJhbnNsYXRlLWlkL3RyYW5zbGF0ZS1pZC5waXBlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IFJlc3VsdHNldFV0aWxzIH0gZnJvbSAnLi4vLi4vcmVzdWx0c2V0LXV0aWxzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAncHJ5LWRhdGEtd2lkZ2V0JywgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgY2xhc3MgRGF0YVdpZGdldENvbXBvbmVudCBleHRlbmRzIEJhc2VXaWRnZXRDb21wb25lbnQge1xuICByZXN1bHRTZXQkOiBPYnNlcnZhYmxlPFJlc3VsdFNldD47XG4gIHN0YXRpY1Jlc3VsdFNldCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlc3VsdFNldCB8IG51bGw+KG51bGwpO1xuICBkYXRhc291cmNlSWRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGFsbEl0ZW1zJDogT2JzZXJ2YWJsZTxJdGVtW10+O1xuICB1c2VkRGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG5cbiAgQElucHV0KCkgb3BlbkRhdGEkOiBPYnNlcnZhYmxlPHZvaWQ+IHwgU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHNldCBzdGF0aWNSZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQpIHtcbiAgICB0aGlzLnN0YXRpY1Jlc3VsdFNldCQubmV4dChyZXN1bHRTZXQpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlPGFueT4sIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcbiAgICB0aGlzLmRhdGFzb3VyY2VJZHMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKG1hbmlmZXN0KSA9PlxuICAgICAgICAgIChBcnJheS5pc0FycmF5KG1hbmlmZXN0LmRhdGFzb3VyY2UpID8gbWFuaWZlc3QuZGF0YXNvdXJjZSA6IFttYW5pZmVzdC5kYXRhc291cmNlXSkuZmlsdGVyKFxuICAgICAgICAgICAgKGlkKSA9PiAhIWlkXG4gICAgICAgICAgKSBhcyBzdHJpbmdbXVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy51c2VkRGF0YXNvdXJjZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGFzb3VyY2VJZHMkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2lkcywgZGF0YXNvdXJjZXNdKSA9PlxuICAgICAgICAgIGlkc1xuICAgICAgICAgICAgLm1hcCgoaWQpID0+IGRhdGFzb3VyY2VzLmZpbmQoKGRzKSA9PiBkcy5pZCA9PT0gaWQpID8/IGlkKVxuICAgICAgICAgICAgLm1hcCgobnEpID0+ICh0eXBlb2YgbnEgIT09ICdzdHJpbmcnID8gbnEgOiBVTktOT1dOX0RBVEFTT1VSQ0UobnEpKSkgYXMgRGF0YVNvdXJjZVtdXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnJlc3VsdFNldCQgPSB0aGlzLmluaXRSZXN1bHRTZXQkKCk7XG5cbiAgICB0aGlzLmFsbEl0ZW1zJCA9IHRoaXMucmVzdWx0U2V0JC5waXBlKFxuICAgICAgZmlsdGVyKChyZXN1bHRTZXQpID0+ICEhcmVzdWx0U2V0KSxcbiAgICAgIG1hcChcbiAgICAgICAgKHJlc3VsdFNldCkgPT5cbiAgICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRTZXQ/Lml0ZW1zKVxuICAgICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdKVxuICAgICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSkgYXMgSXRlbVtdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGluaXRSZXN1bHRTZXQkKCkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yZXN1bHRTZXRzKSxcbiAgICAgIHRoaXMuZGF0YXNvdXJjZUlkcyQsXG4gICAgICB0aGlzLnN0YXRpY1Jlc3VsdFNldCRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcmVzdWx0U2V0cywgcmVzdWx0U2V0TmFtZXNBcnJheSwgc3RhdGljUmVzdWx0U2V0XSkgPT4ge1xuICAgICAgICBpZiAoISFzdGF0aWNSZXN1bHRTZXQpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGljUmVzdWx0U2V0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdFNldEFycmF5ID0gcmVzdWx0U2V0TmFtZXNBcnJheVxuICAgICAgICAgIC5tYXAoKHJzTmFtZSkgPT4gcmVzdWx0U2V0c1tyc05hbWUgPz8gJyddKVxuICAgICAgICAgIC5maWx0ZXIoKHJzTmFtZSkgPT4gISFyc05hbWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0U2V0QXJyYXkucmVkdWNlKChyczEsIHJzMikgPT4gUmVzdWx0c2V0VXRpbHMubWVyZ2VSZXN1bHRTZXRzKHJzMSwgcnMyKSwge1xuICAgICAgICAgIGl0ZW1zOiB7fSxcbiAgICAgICAgICByZWxhdGlvbnM6IFtdLFxuICAgICAgICAgIG1lcmdlZDogcmVzdWx0U2V0QXJyYXkubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocCwgdikgPT4gZXF1YWwocCwgdikpXG4gICAgKTtcbiAgfVxufVxuIl19