@eo-sdk/client 11.0.0-beta.1 → 11.0.0-rc.10

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 (198) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts +2 -23
  3. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +28 -5
  5. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +33 -21
  7. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  8. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +9 -0
  9. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
  10. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +3 -2
  11. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts.map +1 -1
  12. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +2 -0
  13. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts.map +1 -1
  14. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts +1 -0
  15. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts.map +1 -1
  16. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts +7 -0
  17. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts.map +1 -1
  18. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts +9 -4
  19. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
  20. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts +2 -2
  21. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  22. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +3 -2
  23. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -1
  24. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +3 -2
  25. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -1
  26. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +3 -2
  27. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -1
  28. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts +25 -0
  29. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts.map +1 -0
  30. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +15 -6
  31. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -1
  32. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.d.ts +7 -0
  33. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.d.ts.map +1 -0
  34. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts +18 -0
  35. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts.map +1 -0
  36. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts +10 -0
  37. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts.map +1 -0
  38. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +1 -2
  39. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
  40. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts +24 -0
  41. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts.map +1 -0
  42. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts +34 -0
  43. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts.map +1 -0
  44. package/app/eo-client/eo-client.module.d.ts +29 -23
  45. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  46. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  47. package/app/eo-client/login/login.component.d.ts +3 -1
  48. package/app/eo-client/login/login.component.d.ts.map +1 -1
  49. package/app/eo-client/process-state/process-state.component.d.ts +3 -5
  50. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  51. package/app/eo-client/settings/settings.component.d.ts +4 -11
  52. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  53. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  54. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts +5 -1
  55. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts.map +1 -1
  56. package/app/eo-framework/actions/actions/signature-action/signature-action.component.d.ts.map +1 -1
  57. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +7 -3
  58. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  59. package/app/eo-framework/app-shell/app-shell.module.d.ts +17 -16
  60. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  61. package/app/eo-framework/app-shell/index.d.ts +1 -0
  62. package/app/eo-framework/app-shell/index.d.ts.map +1 -1
  63. package/app/eo-framework/app-shell/license-warning/license-warning.component.d.ts +10 -0
  64. package/app/eo-framework/app-shell/license-warning/license-warning.component.d.ts.map +1 -0
  65. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +4 -4
  66. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  67. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  68. package/app/eo-framework/form-elements/string/string.component.d.ts +1 -0
  69. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  70. package/app/eo-framework/frame/frame.component.d.ts +2 -1
  71. package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
  72. package/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.d.ts.map +1 -1
  73. package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
  74. package/app/eo-framework/grid/filters/codesystem-filter.component.d.ts.map +1 -1
  75. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +0 -8
  76. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  77. package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts.map +1 -1
  78. package/app/eo-framework/grid/grid.component.d.ts +1 -1
  79. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  80. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  81. package/app/eo-framework/media/media.component.d.ts +15 -1
  82. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  83. package/app/eo-framework/object-details/object-details.component.d.ts +9 -3
  84. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  85. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +2 -0
  86. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  87. package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
  88. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  89. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  90. package/app/eo-framework/result-list/result-list.component.d.ts +3 -2
  91. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  92. package/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.d.ts.map +1 -1
  93. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +2 -1
  94. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  95. package/app/eo-framework/util/services/utilities.service.d.ts +195 -0
  96. package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
  97. package/app/eo-framework-core/api/grid.service.d.ts +1 -5
  98. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  99. package/app/eo-framework-core/api/plugins.service.d.ts +6 -0
  100. package/app/eo-framework-core/api/plugins.service.d.ts.map +1 -1
  101. package/app/eo-framework-core/error-handler/error-handler.service.d.ts.map +1 -1
  102. package/assets/_default/config/main.json +1 -1
  103. package/assets/_default/i18n/de.json +48 -11
  104. package/assets/_default/i18n/en.json +50 -13
  105. package/assets/_default/svg/ic_noImage.svg +1 -0
  106. package/assets/_default/svg/ic_photo_library.svg +1 -0
  107. package/assets/_default/svg/ic_task.svg +1 -0
  108. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  109. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +21 -69
  110. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +183 -78
  111. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +142 -36
  112. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  113. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +21 -13
  114. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +7 -3
  115. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  116. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  117. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +68 -53
  118. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +7 -8
  119. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +16 -10
  120. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -4
  121. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +15 -9
  122. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  123. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +16 -10
  124. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +85 -0
  125. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +101 -32
  126. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.mjs +2 -0
  127. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +54 -0
  128. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +24 -0
  129. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +4 -7
  130. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +74 -0
  131. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +103 -0
  132. package/esm2022/app/eo-client/eo-client.module.mjs +25 -6
  133. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +4 -4
  134. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +25 -11
  135. package/esm2022/app/eo-client/login/login.component.mjs +14 -11
  136. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +5 -5
  137. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  138. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +6 -6
  139. package/esm2022/app/eo-client/process-state/process-state.component.mjs +12 -17
  140. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +6 -6
  141. package/esm2022/app/eo-client/result-state/result-state.component.mjs +1 -1
  142. package/esm2022/app/eo-client/settings/settings.component.mjs +34 -40
  143. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +4 -5
  144. package/esm2022/app/eo-client/version-state/version-state.component.mjs +5 -5
  145. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +6 -6
  146. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  147. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +23 -3
  148. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  149. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -2
  150. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +5 -4
  151. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +44 -24
  152. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  153. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +13 -7
  154. package/esm2022/app/eo-framework/app-shell/index.mjs +2 -1
  155. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +26 -0
  156. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  157. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +35 -28
  158. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +7 -4
  159. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
  160. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
  161. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +2 -2
  162. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +8 -5
  163. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -2
  164. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +7 -2
  165. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  166. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +1 -14
  167. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +6 -33
  168. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -19
  169. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +2 -2
  170. package/esm2022/app/eo-framework/grid/grid.component.mjs +11 -12
  171. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +5 -3
  172. package/esm2022/app/eo-framework/media/media.component.mjs +68 -19
  173. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +53 -15
  174. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  175. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +19 -28
  176. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  178. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +11 -7
  179. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  180. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +6 -1
  181. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +15 -4
  182. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +2 -2
  183. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +1 -1
  185. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +34 -5
  186. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +18 -5
  187. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +6 -3
  188. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +2 -2
  189. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +4 -1
  190. package/esm2022/app/eo-framework-core/api/grid.service.mjs +34 -45
  191. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +44 -2
  192. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +6 -6
  193. package/fesm2022/eo-sdk-client.mjs +1589 -805
  194. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  195. package/misc/scripts/exclude-core-ng-package.js +11 -0
  196. package/misc/scripts/prebuild-about-state.js +2 -3
  197. package/package.json +6 -6
  198. package/proxy.config.json +15 -0
@@ -7,12 +7,11 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/router";
8
8
  import * as i2 from "@eo-sdk/core";
9
9
  import * as i3 from "../../../../eo-framework-core";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "../../../../eo-framework/ui/eo-icon/eo-icon.component";
12
- import * as i6 from "../../../../eo-framework/ui/loading-spinner/loading-spinner.component";
13
- import * as i7 from "../../../../eo-framework/ui/error-message/error-message.component";
14
- import * as i8 from "@carbon/charts-angular";
15
- import * as i9 from "@ngx-translate/core";
10
+ import * as i4 from "../../../../eo-framework/ui/eo-icon/eo-icon.component";
11
+ import * as i5 from "../../../../eo-framework/ui/loading-spinner/loading-spinner.component";
12
+ import * as i6 from "../../../../eo-framework/ui/error-message/error-message.component";
13
+ import * as i7 from "@carbon/charts-angular";
14
+ import * as i8 from "@ngx-translate/core";
16
15
  let ChartsWidgetComponent = class ChartsWidgetComponent {
17
16
  set widgetConfig(c) {
18
17
  this._widgetConfig = c;
@@ -21,7 +20,11 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
21
20
  this._query = this.searchService.buildQuery(this.storedQuery);
22
21
  this._widgetConfig.formValue.storedQuery = this.storedQuery.name;
23
22
  if (this._widgetConfig?.formValue?.aggregation) {
24
- this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType, this._widgetConfig?.formValue?.histogramType);
23
+ if (this._widgetConfig?.formValue?.interval) {
24
+ this.rangeValues = this.generateRange(this._widgetConfig?.formValue?.interval, this._widgetConfig?.formValue?.startingpoint, this._widgetConfig?.formValue?.size);
25
+ }
26
+ this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType, this._widgetConfig?.formValue?.histogramType, this.rangeValues, this._widgetConfig?.formValue?.sortRevert, this._widgetConfig?.formValue?.attributMetric, this._widgetConfig?.formValue?.metric, this._widgetConfig?.formValue?.minDocCount);
27
+ this.setLegendDiagramm();
25
28
  }
26
29
  }, (error) => {
27
30
  if (error.status === 404) {
@@ -42,13 +45,11 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
42
45
  this.translate = translate;
43
46
  this.systemService = systemService;
44
47
  this.sharedOptions = {
48
+ title: '',
45
49
  color: {
46
50
  text: '#925699',
47
51
  label: '#925699'
48
52
  },
49
- legend: {
50
- enabled: false,
51
- },
52
53
  resizable: true,
53
54
  donut: {
54
55
  'alignment': 'center'
@@ -58,40 +59,60 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
58
59
  },
59
60
  height: '400px',
60
61
  curve: 'curveMonotoneX',
62
+ legend: {
63
+ 'alignment': 'center'
64
+ },
65
+ axes: {
66
+ left: {
67
+ mapsTo: 'value',
68
+ title: ''
69
+ },
70
+ bottom: {
71
+ mapsTo: 'group',
72
+ scaleType: 'labels',
73
+ title: ''
74
+ },
75
+ },
76
+ };
77
+ this.lineStraightChartOption = {
78
+ ...this.sharedOptions,
79
+ curve: undefined,
80
+ legend: {
81
+ enabled: false,
82
+ },
61
83
  axes: {
62
84
  bottom: {
63
85
  mapsTo: 'date',
64
86
  scaleType: 'time',
87
+ title: ''
65
88
  },
66
89
  left: {
67
90
  mapsTo: 'value',
68
91
  scaleType: 'linear',
92
+ title: ''
69
93
  },
70
- },
94
+ }
71
95
  };
72
- this.chartOptions2 = {
96
+ this.lineCurveChartOption = {
73
97
  ...this.sharedOptions,
74
- curve: undefined,
75
98
  legend: {
76
99
  enabled: false,
77
100
  },
78
- };
79
- this.chartOptions = {
80
- ...this.sharedOptions,
81
101
  axes: {
102
+ bottom: {
103
+ mapsTo: 'date',
104
+ scaleType: 'time',
105
+ title: ''
106
+ },
82
107
  left: {
83
108
  mapsTo: 'value',
109
+ scaleType: 'linear',
110
+ title: ''
84
111
  },
85
- bottom: {
86
- mapsTo: 'group',
87
- scaleType: 'labels',
88
- },
89
- },
90
- legend: {
91
- 'alignment': 'center'
92
112
  },
93
113
  };
94
114
  this.chartData = [];
115
+ this.rangeValues = [];
95
116
  this.editMode = false;
96
117
  }
97
118
  getStoredQuery(id) {
@@ -99,12 +120,23 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
99
120
  this.storedQuery = storedQuery;
100
121
  }));
101
122
  }
102
- generateChartData(field, type, histogramType) {
123
+ generateRange(interval, start, size) {
124
+ const rangeValues = [];
125
+ for (let j = 0; j < size; j++) {
126
+ const rangeItem = {
127
+ o1: parseFloat(start + j * interval),
128
+ o2: parseFloat(start + (j + 1) * interval),
129
+ };
130
+ rangeValues.push(rangeItem);
131
+ }
132
+ return rangeValues;
133
+ }
134
+ generateChartData(field, type, histogramType, rangeValues, sort, attributMetric, metric, minDocCount) {
103
135
  this.refreshingRequest = true;
104
136
  const queryName = this._query.name;
105
137
  delete this._query.name;
106
138
  this._query = this.searchService.buildQuery(this._query);
107
- if (type === 'DATETIME' && histogramType && histogramType !== 'standard') {
139
+ if (type === 'DATETIME' && histogramType) {
108
140
  const histogramConfig = {
109
141
  'yearly': { calendar_interval: 'year', format: 'yyyy' },
110
142
  'weekly': { calendar_interval: 'week', format: 'yyyy-ww' },
@@ -148,11 +180,74 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
148
180
  this.refreshingRequest = false;
149
181
  }
150
182
  }
183
+ else if (attributMetric && metric) {
184
+ const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
185
+ const attributMetricKey = attributMetric.replace('sysobject.', '').replace('sysdocument.', '');
186
+ let aggsQquery;
187
+ aggsQquery = {
188
+ [fieldKey]: {
189
+ size: this._widgetConfig?.formValue?.size || 10,
190
+ order: sort ? 'asc' : 'desc',
191
+ sort: attributMetricKey + '.value',
192
+ min_doc_count: minDocCount,
193
+ sub: {
194
+ [attributMetricKey]: {
195
+ metrics: this._widgetConfig?.formValue?.metric
196
+ }
197
+ }
198
+ }
199
+ };
200
+ this.searchService.executeQuery({
201
+ aggs: aggsQquery,
202
+ ...this._query.getQueryJson()
203
+ }, true).subscribe((res) => {
204
+ this.refreshingRequest = false;
205
+ this._query.name = queryName;
206
+ if (res.aggregations[Object.keys(res.aggregations)[0]].buckets.length > 0) {
207
+ this.chartData = res.aggregations[Object.keys(res.aggregations)[0]].buckets.map((e) => {
208
+ return {
209
+ group: e.key.replace('_', '-'),
210
+ value: e[metric + '#' + attributMetricKey].value,
211
+ };
212
+ });
213
+ }
214
+ else {
215
+ this.chartData = [];
216
+ this.refreshingRequest = false;
217
+ }
218
+ }, (error) => {
219
+ this.chartData = [];
220
+ this.refreshingRequest = false;
221
+ });
222
+ }
151
223
  else {
224
+ const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
225
+ let aggsQquery;
226
+ if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {
227
+ aggsQquery = {
228
+ [fieldKey]: {
229
+ size: this._widgetConfig?.formValue?.size || 10,
230
+ rg: rangeValues,
231
+ order: sort ? 'asc' : 'desc',
232
+ sort: '_count',
233
+ min_doc_count: minDocCount
234
+ }
235
+ };
236
+ }
237
+ else {
238
+ aggsQquery = {
239
+ [fieldKey]: {
240
+ order: sort ? 'asc' : 'desc',
241
+ histogram: { calendar_interval: 'month', format: 'yyyy-MM' },
242
+ sort: '_count',
243
+ min_doc_count: minDocCount,
244
+ size: this._widgetConfig?.formValue?.size || 10,
245
+ }
246
+ };
247
+ }
152
248
  this.searchService.executeQuery({
153
- aggs: {
154
- [field.replace('sysobject.', '').replace('sysdocument.', '')]: { size: this._widgetConfig?.formValue?.size ? this._widgetConfig?.formValue?.size : 10 }
155
- }, ...this._query.getQueryJson()
249
+ aggs: aggsQquery,
250
+ ...this._query.getQueryJson()
156
251
  }, true)
157
252
  .subscribe((res) => {
158
253
  this.refreshingRequest = false;
@@ -167,7 +262,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
167
262
  }
168
263
  else {
169
264
  return {
170
- group: e.key,
265
+ group: typeof e.key === 'string' ? e.key.replace('_', '-') : e.key,
171
266
  value: e.doc_count,
172
267
  };
173
268
  }
@@ -180,7 +275,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
180
275
  if (this._widgetConfig?.formValue?.aggregation === 'sysobject.modified') {
181
276
  this.chartData = res.aggregations.modified.buckets.map((e) => {
182
277
  return {
183
- group: this.translate.instant('eo.search.agg.time.' + e.key),
278
+ group: e.key_as_string,
184
279
  value: e.doc_count,
185
280
  };
186
281
  });
@@ -188,7 +283,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
188
283
  if (this._widgetConfig?.formValue?.aggregation === 'sysobject.created') {
189
284
  this.chartData = res.aggregations.created.buckets.map((e) => {
190
285
  return {
191
- group: this.translate.instant('eo.search.agg.time.' + e.key),
286
+ group: e.key_as_string,
192
287
  value: e.doc_count,
193
288
  };
194
289
  });
@@ -212,7 +307,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
212
307
  if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.filesize') {
213
308
  this.chartData = res.aggregations.filesize.buckets.map((e) => {
214
309
  return {
215
- group: this.translate.instant('eo.search.agg.filesize.' + e.key),
310
+ group: e.key.replace('_', '-'),
216
311
  value: e.doc_count,
217
312
  };
218
313
  });
@@ -227,12 +322,23 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
227
322
  this.appSearchService.setQuery(this.storedQuery);
228
323
  this.router.navigate([{ outlets: { modal: 'search' } }]);
229
324
  }
325
+ setLegendDiagramm() {
326
+ this.sharedOptions.title = this.widgetConfig?.formValue.title;
327
+ this.sharedOptions.axes.bottom.title = this.widgetConfig?.formValue.xAxe;
328
+ this.sharedOptions.axes.left.title = this.widgetConfig?.formValue.yAxe;
329
+ this.lineCurveChartOption.title = this.widgetConfig?.formValue.title;
330
+ this.lineCurveChartOption.axes.bottom.title = this.widgetConfig?.formValue.xAxe;
331
+ this.lineCurveChartOption.axes.left.title = this.widgetConfig?.formValue.yAxe;
332
+ this.lineStraightChartOption.title = this.widgetConfig?.formValue.title;
333
+ this.lineStraightChartOption.axes.bottom.title = this.widgetConfig?.formValue.xAxe;
334
+ this.lineStraightChartOption.axes.left.title = this._widgetConfig?.formValue.yAxe;
335
+ }
230
336
  refresh() {
231
337
  this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {
232
338
  this._query = this.searchService.buildQuery(this.storedQuery);
233
339
  this._widgetConfig.formValue.storedQuery = this.storedQuery.name;
234
340
  if (this._widgetConfig?.formValue?.aggregation) {
235
- this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType, this._widgetConfig?.formValue?.histogramType);
341
+ this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType, this._widgetConfig?.formValue?.histogramType, this.rangeValues, this._widgetConfig?.formValue?.sortRevert, this._widgetConfig?.formValue?.attributMetric, this._widgetConfig?.formValue?.metric, this._widgetConfig?.formValue?.minDocCount);
236
342
  }
237
343
  }, (error) => {
238
344
  this.chartData = [];
@@ -248,7 +354,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
248
354
  window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');
249
355
  }
250
356
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChartsWidgetComponent, deps: [{ token: i1.Router }, { token: i2.SearchService }, { token: i3.AppSearchService }, { token: i2.StoredQueriesService }, { token: i2.TranslateService }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: { editMode: "editMode", widgetConfig: "widgetConfig" }, ngImport: i0, template: "<header>\n <div class=\"header-title\">\n <div class=\"title\" *ngIf=\"widgetConfig?.formValue?.storedQuery\">\n {{widgetConfig?.formValue?.storedQuery}}</div>\n <div class=\"icons-title\" *ngIf=\"this.widgetConfig?.storedQuery\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\" (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n </div>\n</header>\n\n<main class=\"loader-overlay__mask\" *ngIf=\"refreshingRequest\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n</main>\n\n<main class=\"chart\" *ngIf=\"chartData.length > 0 && !refreshingRequest; else tplEmpty\">\n <div class=\"item\" [ngSwitch]=\"widgetConfig!.formValue.chartType\">\n <ibm-simple-bar-chart *ngSwitchCase=\"'bar'\" [data]=\"chartData\" [options]=\"chartOptions\"></ibm-simple-bar-chart>\n <ibm-pie-chart *ngSwitchCase=\"'pie'\" [data]=\"chartData\" [options]=\"chartOptions\"></ibm-pie-chart>\n <ibm-donut-chart *ngSwitchCase=\"'donut'\" [data]=\"chartData\" [options]=\"chartOptions\"></ibm-donut-chart>\n <ibm-line-chart *ngSwitchCase=\"'lineStraight'\" [data]=\"chartData\" [options]=\"chartOptions2\"></ibm-line-chart>\n <ibm-line-chart *ngSwitchCase=\"'lineCurve'\" [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-line-chart>\n </div>\n</main>\n<ng-template #tplEmpty>\n <div class=\"empty\" *ngIf=\"!refreshingRequest\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n</ng-template>\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:auto}:host main.chart .item{padding:calc(var(--app-pane-padding) / 2)}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i6.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i7.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i8.SimpleBarChartComponent, selector: "ibm-simple-bar-chart" }, { kind: "component", type: i8.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i8.LineChartComponent, selector: "ibm-line-chart" }, { kind: "component", type: i8.PieChartComponent, selector: "ibm-pie-chart" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
357
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ChartsWidgetComponent, selector: "eo-charts-widget", inputs: { editMode: "editMode", widgetConfig: "widgetConfig" }, ngImport: i0, template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}\n"], dependencies: [{ kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i5.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i6.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i7.SimpleBarChartComponent, selector: "ibm-simple-bar-chart" }, { kind: "component", type: i7.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i7.LineChartComponent, selector: "ibm-line-chart" }, { kind: "component", type: i7.PieChartComponent, selector: "ibm-pie-chart" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
252
358
  };
253
359
  ChartsWidgetComponent = __decorate([
254
360
  UntilDestroy()
@@ -256,10 +362,10 @@ ChartsWidgetComponent = __decorate([
256
362
  export { ChartsWidgetComponent };
257
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChartsWidgetComponent, decorators: [{
258
364
  type: Component,
259
- args: [{ selector: 'eo-charts-widget', template: "<header>\n <div class=\"header-title\">\n <div class=\"title\" *ngIf=\"widgetConfig?.formValue?.storedQuery\">\n {{widgetConfig?.formValue?.storedQuery}}</div>\n <div class=\"icons-title\" *ngIf=\"this.widgetConfig?.storedQuery\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\" (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n </div>\n</header>\n\n<main class=\"loader-overlay__mask\" *ngIf=\"refreshingRequest\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n</main>\n\n<main class=\"chart\" *ngIf=\"chartData.length > 0 && !refreshingRequest; else tplEmpty\">\n <div class=\"item\" [ngSwitch]=\"widgetConfig!.formValue.chartType\">\n <ibm-simple-bar-chart *ngSwitchCase=\"'bar'\" [data]=\"chartData\" [options]=\"chartOptions\"></ibm-simple-bar-chart>\n <ibm-pie-chart *ngSwitchCase=\"'pie'\" [data]=\"chartData\" [options]=\"chartOptions\"></ibm-pie-chart>\n <ibm-donut-chart *ngSwitchCase=\"'donut'\" [data]=\"chartData\" [options]=\"chartOptions\"></ibm-donut-chart>\n <ibm-line-chart *ngSwitchCase=\"'lineStraight'\" [data]=\"chartData\" [options]=\"chartOptions2\"></ibm-line-chart>\n <ibm-line-chart *ngSwitchCase=\"'lineCurve'\" [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-line-chart>\n </div>\n</main>\n<ng-template #tplEmpty>\n <div class=\"empty\" *ngIf=\"!refreshingRequest\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n</ng-template>\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:auto}:host main.chart .item{padding:calc(var(--app-pane-padding) / 2)}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}\n"] }]
365
+ args: [{ selector: 'eo-charts-widget', template: "<header>\n <div class=\"header-title\">\n @if (widgetConfig?.formValue?.storedQuery) {\n <div class=\"title\">{{ widgetConfig?.formValue?.storedQuery }}</div>\n <div class=\"icons-title\">\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"\n (click)=\"setQueryToAppSearch()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.savedSearchIcon'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\"\n (click)=\"onEmitQueryClick($event)\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.openinresultlist'| translate)\"></eo-icon>\n <eo-icon class=\"button primary\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refresh()\"\n [iconTitle]=\"('eo.widget.hitlist.tooltip.refresh'| translate)\"></eo-icon>\n </div>\n }\n </div>\n</header>\n\n@if (refreshingRequest) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n} @else if (chartData.length > 0 && !refreshingRequest) {\n <main class=\"chart\">\n <div class=\"item\">\n @switch (widgetConfig!.formValue.chartType) {\n @case ('bar') {\n <ibm-simple-bar-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-simple-bar-chart>\n }\n @case ('pie') {\n <ibm-pie-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-pie-chart>\n }\n @case ('donut') {\n <ibm-donut-chart [data]=\"chartData\" [options]=\"sharedOptions\"></ibm-donut-chart>\n }\n @case ('lineStraight') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineStraightChartOption\"></ibm-line-chart>\n }\n @case ('lineCurve') {\n <ibm-line-chart [data]=\"chartData\" [options]=\"lineCurveChartOption\"></ibm-line-chart>\n }\n }\n </div>\n </main>\n} @else {\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_saved_search.svg', text: 'eo.workspace.widget.configuration.notOk'}\"></eo-error-message>\n </div>\n}\n", styles: [":host{height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:\"header\" \"main\";background-color:var(--panel-background);color:var(--text-color-body)}:host header{height:40px;display:inline-grid;color:#fff}:host header .header-title{background-color:var(--color-primary-2);display:flex;justify-content:space-between;align-items:center}:host header .title{text-align:center;flex-grow:1;justify-content:center}:host header .icons-title{justify-content:flex-end;display:flex;gap:3px;position:relative;align-items:center;right:13px}:host header .icons-title eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host header .icons-title eo-icon.button.primary:hover{cursor:pointer;color:var(--color-white)}:host main{grid-area:main}:host main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}:host main.chart{overflow-y:hidden}:host main.chart .item{height:92%;padding:calc(var(--app-pane-padding) / 2)}:host .empty{display:contents}::ng-deep .cds--cc--chart-wrapper text{fill:#000}::ng-deep .cds--chart-holder{height:100%!important}::ng-deep .cds--cc--chart-wrapper p{color:#000}::ng-deep .cds--cc--axes g.axis g.tick text{fill:#000}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-title)}::ng-deep .cds--cc--axes g.axis .axis-title{font-size:var(--font-subhead)}\n"] }]
260
366
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.SearchService }, { type: i3.AppSearchService }, { type: i2.StoredQueriesService }, { type: i2.TranslateService }, { type: i2.SystemService }], propDecorators: { editMode: [{
261
367
  type: Input
262
368
  }], widgetConfig: [{
263
369
  type: Input
264
370
  }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWlHLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUluSSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVF6QixJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQWdFaEMsSUFBYSxZQUFZLENBQUMsQ0FBc0I7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsU0FB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QUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDOzhHQTdQVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix3SENmbEMsZ3FFQW1DQTs7QURwQmEscUJBQXFCO0lBTmpDLFlBQVksRUFBRTtHQU1GLHFCQUFxQixDQThQakM7OzJGQTlQWSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCO29PQWtFbkIsUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VhcmNoUXVlcnksIFNlYXJjaFNlcnZpY2UsIFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLCBTdG9yZWRRdWVyeSwgU3lzdGVtU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb21wb25lbnR9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtJY2hhcnRzfSBmcm9tICcuL2ljaGFydHMnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RU1QVFksIHRhcH0gZnJvbSAncnhqcyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tY2hhcnRzLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnRzLXdpZGdldC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0c1dpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIElXaWRnZXRDb21wb25lbnQge1xuICBoaXN0b2dyYW06IGFueTtcbiAgc2hhcmVkT3B0aW9ucyA9IHtcbiAgICBjb2xvcjoge1xuICAgICAgdGV4dDogJyM5MjU2OTknLFxuICAgICAgbGFiZWw6ICcjOTI1Njk5J1xuICAgIH0sXG4gICAgbGVnZW5kOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICBkb251dDoge1xuICAgICAgJ2FsaWdubWVudCc6ICdjZW50ZXInXG4gICAgfSxcblxuICAgIHRvb2xiYXI6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgaGVpZ2h0OiAnNDAwcHgnLFxuICAgIGN1cnZlOiAnY3VydmVNb25vdG9uZVgnLFxuICAgIGF4ZXM6IHtcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBtYXBzVG86ICdkYXRlJyxcbiAgICAgICAgc2NhbGVUeXBlOiAndGltZScsXG4gICAgICB9LFxuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xpbmVhcicsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY2hhcnRPcHRpb25zMiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgY3VydmU6IHVuZGVmaW5lZCxcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gIH07XG5cbiAgY2hhcnRPcHRpb25zID0ge1xuICAgIC4uLnRoaXMuc2hhcmVkT3B0aW9ucyxcbiAgICBheGVzOiB7XG4gICAgICBsZWZ0OiB7XG4gICAgICAgIG1hcHNUbzogJ3ZhbHVlJyxcbiAgICAgIH0sXG4gICAgICBib3R0b206IHtcbiAgICAgICAgbWFwc1RvOiAnZ3JvdXAnLFxuICAgICAgICBzY2FsZVR5cGU6ICdsYWJlbHMnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGxlZ2VuZDoge1xuICAgICAgJ2FsaWdubWVudCc6ICdjZW50ZXInXG4gICAgfSxcbiAgfTtcblxuICBjaGFydERhdGE6IHtncm91cDogc3RyaW5nOyB2YWx1ZTogYW55OyBkYXRlOiBzdHJpbmd9W10gPSBbXTtcbiAgcHJpdmF0ZSBfcXVlcnk6IFNlYXJjaFF1ZXJ5O1xuICByZWZyZXNoaW5nUmVxdWVzdDogYm9vbGVhbjtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBwcml2YXRlIF93aWRnZXRDb25maWc6IEljaGFydHMgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKGM6IEljaGFydHMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWcgPSBjO1xuICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LnN0b3JlZFF1ZXJ5ICYmIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbikge1xuICAgICAgdGhpcy5nZXRTdG9yZWRRdWVyeSh0aGlzLl93aWRnZXRDb25maWcuc3RvcmVkUXVlcnkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5zdG9yZWRRdWVyeSk7XG4gICAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuc3RvcmVkUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWU7XG4gICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24pIHtcbiAgICAgICAgICB0aGlzLmdlbmVyYXRlQ2hhcnREYXRhKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlKTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXRTdG9yZWRRdWVyeShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcnkoaWQpLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgIHRhcChzdG9yZWRRdWVyeSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBzdG9yZWRRdWVyeTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDaGFydERhdGEoZmllbGQsIHR5cGUsIGhpc3RvZ3JhbVR5cGUpIHtcbiAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeU5hbWUgPSB0aGlzLl9xdWVyeS5uYW1lO1xuICAgIGRlbGV0ZSB0aGlzLl9xdWVyeS5uYW1lO1xuICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5fcXVlcnkpO1xuICAgIGlmICh0eXBlID09PSAnREFURVRJTUUnICYmIGhpc3RvZ3JhbVR5cGUgJiYgaGlzdG9ncmFtVHlwZSAhPT0gJ3N0YW5kYXJkJykge1xuICAgICAgY29uc3QgaGlzdG9ncmFtQ29uZmlnID0ge1xuICAgICAgICAneWVhcmx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAneWVhcicsIGZvcm1hdDogJ3l5eXknfSxcbiAgICAgICAgJ3dlZWtseSc6IHtjYWxlbmRhcl9pbnRlcnZhbDogJ3dlZWsnLCBmb3JtYXQ6ICd5eXl5LXd3J30sXG4gICAgICAgICdtb250aGx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAgICdkYWlseSc6IHtjYWxlbmRhcl9pbnRlcnZhbDogJ2RheScsIGZvcm1hdDogJ3l5eXktTU0tZGQnfVxuICAgICAgfTtcbiAgICAgIGlmIChoaXN0b2dyYW1Db25maWcuaGFzT3duUHJvcGVydHkoaGlzdG9ncmFtVHlwZSkpIHtcbiAgICAgICAgdGhpcy5oaXN0b2dyYW0gPSBoaXN0b2dyYW1Db25maWdbaGlzdG9ncmFtVHlwZV07XG4gICAgICAgIHRoaXMuaGlzdG9ncmFtLnNpemUgPSB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIDogMTA7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICAgIGFnZ3M6IHtcbiAgICAgICAgICAgIFtmaWVsZC5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpXToge1xuICAgICAgICAgICAgICBoaXN0b2dyYW06IHRoaXMuaGlzdG9ncmFtXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5LCB0cnVlKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICBjb25zdCBhZ2dyZWdhdGlvbktleSA9IE9iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdO1xuICAgICAgICAgIHRoaXMuX3F1ZXJ5Lm5hbWUgPSBxdWVyeU5hbWU7XG4gICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zW2FnZ3JlZ2F0aW9uS2V5XS5idWNrZXRzLm1hcCgoZSkgPT4gKHtcbiAgICAgICAgICAgICAgZ3JvdXA6ICdkYXRhc2V0MScsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoZS5rZXkpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1thZ2dyZWdhdGlvbktleV0uYnVja2V0cy5tYXAoKGUpID0+ICh7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleV9hc19zdHJpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KFxuICAgICAgICB7XG4gICAgICAgICAgYWdnczoge1xuICAgICAgICAgICAgW2ZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpXTpcbiAgICAgICAgICAgICAge3NpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgOiAxMH1cbiAgICAgICAgICB9LCAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgICB9LCB0cnVlKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgICBpZiAocmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnQk9PTEVBTicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5ID09PSAwID8gJ1xcdTI2MTAnIDogJ1xcdTI2MTEnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGdyb3VwOiBlLmtleSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5tb2RpZmllZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5tb2RpZmllZC5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zZWFyY2guYWdnLnRpbWUuJyArIGUua2V5KSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5jcmVhdGVkJykge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLmNyZWF0ZWQuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLmFnZy50aW1lLicgKyBlLmtleSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNkb2N1bWVudC5taW1ldHlwZWdyb3VwJykge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLm1pbWV0eXBlZ3JvdXAuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogZS5rZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNvYmplY3QudHlwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy50eXBlLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlKGUua2V5KS5sYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c2RvY3VtZW50LmZpbGVzaXplJykge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLmZpbGVzaXplLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC5hZ2cuZmlsZXNpemUuJyArIGUua2V5KSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFF1ZXJ5VG9BcHBTZWFyY2goKSB7XG4gICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiAnc2VhcmNoJ319XSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuc3RvcmVkUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWU7XG4gICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uKSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFydERhdGEodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uLCB0aGlzLl93aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUpO1xuICAgICAgfVxuICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRW1pdFF1ZXJ5Q2xpY2soZXZlbnQpIHtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkuZmllbGRzO1xuICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVyaVBhcmFtUXVlcnkucXVlcnlQYXJhbXMpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJy9kYXNoYm9hcmQnKVswXSArICcvcmVzdWx0PycgKyBxdWVyeVBhcmFtcztcbiAgICB3aW5kb3cub3Blbih1cmwsIGV2ZW50Py5jdHJsS2V5IHx8IHRoaXMuZWRpdE1vZGUgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG59XG4iLCI8aGVhZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKm5nSWY9XCJ3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc3RvcmVkUXVlcnlcIj5cbiAgICAgICAgICAgIHt7d2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnN0b3JlZFF1ZXJ5fX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25zLXRpdGxlXCIgKm5nSWY9XCJ0aGlzLndpZGdldENvbmZpZz8uc3RvcmVkUXVlcnlcIj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zYXZlZF9zZWFyY2guc3ZnJ1wiIChjbGljayk9XCJzZXRRdWVyeVRvQXBwU2VhcmNoKClcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAuc2F2ZWRTZWFyY2hJY29uJ3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcGVuX3RhYi5zdmcnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FbWl0UXVlcnlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5vcGVuaW5yZXN1bHRsaXN0J3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIiAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5yZWZyZXNoJ3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2hlYWRlcj5cblxuPG1haW4gY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwicmVmcmVzaGluZ1JlcXVlc3RcIj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyIFtzaXplXT1cIidsYXJnZSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbjwvbWFpbj5cblxuPG1haW4gY2xhc3M9XCJjaGFydFwiICpuZ0lmPVwiY2hhcnREYXRhLmxlbmd0aCA+IDAgJiYgIXJlZnJlc2hpbmdSZXF1ZXN0OyBlbHNlIHRwbEVtcHR5XCI+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1cIiBbbmdTd2l0Y2hdPVwid2lkZ2V0Q29uZmlnIS5mb3JtVmFsdWUuY2hhcnRUeXBlXCI+XG4gICAgICAgIDxpYm0tc2ltcGxlLWJhci1jaGFydCAqbmdTd2l0Y2hDYXNlPVwiJ2JhcidcIiBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJjaGFydE9wdGlvbnNcIj48L2libS1zaW1wbGUtYmFyLWNoYXJ0PlxuICAgICAgICA8aWJtLXBpZS1jaGFydCAqbmdTd2l0Y2hDYXNlPVwiJ3BpZSdcIiBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJjaGFydE9wdGlvbnNcIj48L2libS1waWUtY2hhcnQ+XG4gICAgICAgIDxpYm0tZG9udXQtY2hhcnQgKm5nU3dpdGNoQ2FzZT1cIidkb251dCdcIiBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJjaGFydE9wdGlvbnNcIj48L2libS1kb251dC1jaGFydD5cbiAgICAgICAgPGlibS1saW5lLWNoYXJ0ICpuZ1N3aXRjaENhc2U9XCInbGluZVN0cmFpZ2h0J1wiIFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cImNoYXJ0T3B0aW9uczJcIj48L2libS1saW5lLWNoYXJ0PlxuICAgICAgICA8aWJtLWxpbmUtY2hhcnQgKm5nU3dpdGNoQ2FzZT1cIidsaW5lQ3VydmUnXCIgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwic2hhcmVkT3B0aW9uc1wiPjwvaWJtLWxpbmUtY2hhcnQ+XG4gICAgPC9kaXY+XG48L21haW4+XG48bmctdGVtcGxhdGUgI3RwbEVtcHR5PlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiICpuZ0lmPVwiIXJlZnJlc2hpbmdSZXF1ZXN0XCI+XG4gICAgICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3NhdmVkX3NlYXJjaC5zdmcnLCB0ZXh0OiAnZW8ud29ya3NwYWNlLndpZGdldC5jb25maWd1cmF0aW9uLm5vdE9rJ31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
371
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWlHLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUluSSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUXpCLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBbUZoQyxJQUFhLFlBQVksQ0FBQyxDQUFzQjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFT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QUU7R0FNRixxQkFBcUIsQ0F1WGpDOzsyRkF2WFkscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjtvT0FxRm5CLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTZXJ2aWNlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0Q29tcG9uZW50fSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7SWNoYXJ0c30gZnJvbSAnLi9pY2hhcnRzJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0VNUFRZLCB0YXB9IGZyb20gJ3J4anMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWNoYXJ0cy13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnRzLXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGFydHNXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBJV2lkZ2V0Q29tcG9uZW50IHtcbiAgaGlzdG9ncmFtOiBhbnk7XG4gIFxuICBzaGFyZWRPcHRpb25zID0ge1xuICAgIHRpdGxlOiAnJyxcbiAgICBjb2xvcjoge1xuICAgICAgdGV4dDogJyM5MjU2OTknLFxuICAgICAgbGFiZWw6ICcjOTI1Njk5J1xuICAgIH0sXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIGRvbnV0OiB7XG4gICAgICAnYWxpZ25tZW50JzogJ2NlbnRlcidcbiAgICB9LFxuXG4gICAgdG9vbGJhcjoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBoZWlnaHQ6ICc0MDBweCcsXG4gICAgY3VydmU6ICdjdXJ2ZU1vbm90b25lWCcsXG4gICAgbGVnZW5kOiB7XG4gICAgICAnYWxpZ25tZW50JzogJ2NlbnRlcidcbiAgICB9LFxuICAgIGF4ZXM6IHtcbiAgICAgIGxlZnQ6IHtcbiAgICAgICAgbWFwc1RvOiAndmFsdWUnLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgICBib3R0b206IHtcbiAgICAgICAgbWFwc1RvOiAnZ3JvdXAnLFxuICAgICAgICBzY2FsZVR5cGU6ICdsYWJlbHMnLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBsaW5lU3RyYWlnaHRDaGFydE9wdGlvbiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgY3VydmU6IHVuZGVmaW5lZCxcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgYXhlczoge1xuICAgICAgYm90dG9tOiB7XG4gICAgICAgIG1hcHNUbzogJ2RhdGUnLFxuICAgICAgICBzY2FsZVR5cGU6ICd0aW1lJyxcbiAgICAgICAgdGl0bGU6ICcnXG4gICAgICB9LFxuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xpbmVhcicsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICB9XG4gIH07XG5cbiAgbGluZUN1cnZlQ2hhcnRPcHRpb24gPSB7XG4gICAgLi4udGhpcy5zaGFyZWRPcHRpb25zLFxuICAgIGxlZ2VuZDoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBheGVzOiB7XG4gICAgICBib3R0b206IHtcbiAgICAgICAgbWFwc1RvOiAnZGF0ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ3RpbWUnLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgICBsZWZ0OiB7XG4gICAgICAgIG1hcHNUbzogJ3ZhbHVlJyxcbiAgICAgICAgc2NhbGVUeXBlOiAnbGluZWFyJyxcbiAgICAgICAgdGl0bGU6ICcnXG4gICAgICB9LFxuICAgIH0sICBcbiAgfTtcblxuICBjaGFydERhdGE6IHtncm91cDogc3RyaW5nOyB2YWx1ZTogYW55OyBkYXRlOiBzdHJpbmd9W10gPSBbXTtcbiAgcHJpdmF0ZSBfcXVlcnk6IFNlYXJjaFF1ZXJ5O1xuICByZWZyZXNoaW5nUmVxdWVzdDogYm9vbGVhbjtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBwcml2YXRlIF93aWRnZXRDb25maWc6IEljaGFydHMgfCB1bmRlZmluZWQ7XG4gIHJhbmdlVmFsdWVzID0gW107XG5cbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKGM6IEljaGFydHMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWcgPSBjO1xuICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LnN0b3JlZFF1ZXJ5ICYmIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbikge1xuICAgICAgdGhpcy5nZXRTdG9yZWRRdWVyeSh0aGlzLl93aWRnZXRDb25maWcuc3RvcmVkUXVlcnkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5zdG9yZWRRdWVyeSk7XG4gICAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuc3RvcmVkUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWU7XG4gICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24pIHtcbiAgICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlVmFsdWVzID0gdGhpcy5nZW5lcmF0ZVJhbmdlKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5pbnRlcnZhbCwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnN0YXJ0aW5ncG9pbnQsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZUNoYXJ0RGF0YSh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24sIHRoaXMuX3dpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlLFxuICAgICAgICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUsXG4gICAgICAgICAgICB0aGlzLnJhbmdlVmFsdWVzLCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc29ydFJldmVydCxcbiAgICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hdHRyaWJ1dE1ldHJpYyxcbiAgICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5tZXRyaWMsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5taW5Eb2NDb3VudFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRMZWdlbmREaWFncmFtbSgpO1xuICAgICAgICB9XG4gICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHdpZGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZVxuICApIHsgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyeShpZCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgdGFwKHN0b3JlZFF1ZXJ5ID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHN0b3JlZFF1ZXJ5O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVJhbmdlKGludGVydmFsLCBzdGFydCwgc2l6ZSkge1xuICAgIGNvbnN0IHJhbmdlVmFsdWVzID0gW107XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBzaXplOyBqKyspIHtcbiAgICAgIGNvbnN0IHJhbmdlSXRlbSA9IHtcbiAgICAgICAgbzE6IHBhcnNlRmxvYXQoc3RhcnQgKyBqICogaW50ZXJ2YWwpLFxuICAgICAgICBvMjogcGFyc2VGbG9hdChzdGFydCArIChqICsgMSkgKiBpbnRlcnZhbCksXG4gICAgICB9O1xuICAgICAgcmFuZ2VWYWx1ZXMucHVzaChyYW5nZUl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gcmFuZ2VWYWx1ZXM7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2hhcnREYXRhKGZpZWxkLCB0eXBlLCBoaXN0b2dyYW1UeXBlLCByYW5nZVZhbHVlcywgc29ydCwgYXR0cmlidXRNZXRyaWMsIG1ldHJpYywgbWluRG9jQ291bnQpIHtcbiAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gdHJ1ZTtcbiAgICBjb25zdCBxdWVyeU5hbWUgPSB0aGlzLl9xdWVyeS5uYW1lO1xuICAgIGRlbGV0ZSB0aGlzLl9xdWVyeS5uYW1lO1xuICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5fcXVlcnkpO1xuXG4gICAgaWYgKHR5cGUgPT09ICdEQVRFVElNRScgJiYgaGlzdG9ncmFtVHlwZSkge1xuICAgICAgY29uc3QgaGlzdG9ncmFtQ29uZmlnID0ge1xuICAgICAgICAneWVhcmx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAneWVhcicsIGZvcm1hdDogJ3l5eXknfSxcbiAgICAgICAgJ3dlZWtseSc6IHtjYWxlbmRhcl9pbnRlcnZhbDogJ3dlZWsnLCBmb3JtYXQ6ICd5eXl5LXd3J30sXG4gICAgICAgICdtb250aGx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAgICdkYWlseSc6IHtjYWxlbmRhcl9pbnRlcnZhbDogJ2RheScsIGZvcm1hdDogJ3l5eXktTU0tZGQnfVxuICAgICAgfTtcbiAgICAgIGlmIChoaXN0b2dyYW1Db25maWcuaGFzT3duUHJvcGVydHkoaGlzdG9ncmFtVHlwZSkpIHtcbiAgICAgICAgdGhpcy5oaXN0b2dyYW0gPSBoaXN0b2dyYW1Db25maWdbaGlzdG9ncmFtVHlwZV07XG4gICAgICAgIHRoaXMuaGlzdG9ncmFtLnNpemUgPSB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIDogMTA7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICAgIGFnZ3M6IHtcbiAgICAgICAgICAgIFtmaWVsZC5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpXToge1xuICAgICAgICAgICAgICBoaXN0b2dyYW06IHRoaXMuaGlzdG9ncmFtXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5LCB0cnVlKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICBjb25zdCBhZ2dyZWdhdGlvbktleSA9IE9iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdO1xuICAgICAgICAgIHRoaXMuX3F1ZXJ5Lm5hbWUgPSBxdWVyeU5hbWU7XG4gICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zW2FnZ3JlZ2F0aW9uS2V5XS5idWNrZXRzLm1hcCgoZSkgPT4gKHtcbiAgICAgICAgICAgICAgZ3JvdXA6ICdkYXRhc2V0MScsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoZS5rZXkpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1thZ2dyZWdhdGlvbktleV0uYnVja2V0cy5tYXAoKGUpID0+ICh7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleV9hc19zdHJpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYXR0cmlidXRNZXRyaWMgJiYgbWV0cmljKSB7XG4gICAgICBjb25zdCBmaWVsZEtleSA9IGZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpO1xuICAgICAgY29uc3QgYXR0cmlidXRNZXRyaWNLZXkgPSBhdHRyaWJ1dE1ldHJpYy5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpLnJlcGxhY2UoJ3N5c2RvY3VtZW50LicsICcnKTtcbiAgICAgIGxldCBhZ2dzUXF1ZXJ5O1xuICAgICAgYWdnc1FxdWVyeSA9IHtcbiAgICAgICAgW2ZpZWxkS2V5XToge1xuICAgICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIHx8IDEwLFxuICAgICAgICAgIG9yZGVyOiBzb3J0ID8gJ2FzYycgOiAnZGVzYycsXG4gICAgICAgICAgc29ydDogYXR0cmlidXRNZXRyaWNLZXkgKyAnLnZhbHVlJyxcbiAgICAgICAgICBtaW5fZG9jX2NvdW50OiBtaW5Eb2NDb3VudCxcbiAgICAgICAgICBzdWI6IHtcbiAgICAgICAgICAgIFthdHRyaWJ1dE1ldHJpY0tleV06IHtcbiAgICAgICAgICAgICAgbWV0cmljczogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lm1ldHJpY1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkoXG4gICAgICAgIHtcbiAgICAgICAgICBhZ2dzOiBhZ2dzUXF1ZXJ5XG4gICAgICAgICAgLCAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgICB9LCB0cnVlKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9xdWVyeS5uYW1lID0gcXVlcnlOYW1lO1xuICAgICAgICAgIGlmIChyZXMuYWdncmVnYXRpb25zW09iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdXS5idWNrZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogZS5rZXkucmVwbGFjZSgnXycsICctJyksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGVbbWV0cmljICsgJyMnICsgYXR0cmlidXRNZXRyaWNLZXldLnZhbHVlLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmllbGRLZXkgPSBmaWVsZC5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpLnJlcGxhY2UoJ3N5c2RvY3VtZW50LicsICcnKTtcbiAgICAgIGxldCBhZ2dzUXF1ZXJ5O1xuXG4gICAgICBpZiAoT2JqZWN0LmtleXMocmFuZ2VWYWx1ZXMpLmxlbmd0aCAhPT0gMCAmJiB0eXBlID09PSAnTlVNQkVSJykge1xuICAgICAgICBhZ2dzUXF1ZXJ5ID0ge1xuICAgICAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIHx8IDEwLFxuICAgICAgICAgICAgcmc6IHJhbmdlVmFsdWVzLFxuICAgICAgICAgICAgb3JkZXI6IHNvcnQgPyAnYXNjJyA6ICdkZXNjJyxcbiAgICAgICAgICAgIHNvcnQ6ICdfY291bnQnLFxuICAgICAgICAgICAgbWluX2RvY19jb3VudDogbWluRG9jQ291bnRcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZ2dzUXF1ZXJ5ID0ge1xuICAgICAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgICAgIG9yZGVyOiBzb3J0ID8gJ2FzYycgOiAnZGVzYycsXG4gICAgICAgICAgICBoaXN0b2dyYW06IHtjYWxlbmRhcl9pbnRlcnZhbDogJ21vbnRoJywgZm9ybWF0OiAneXl5eS1NTSd9LFxuICAgICAgICAgICAgc29ydDogJ19jb3VudCcsXG4gICAgICAgICAgICBtaW5fZG9jX2NvdW50OiBtaW5Eb2NDb3VudCxcbiAgICAgICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIHx8IDEwLFxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkoXG4gICAgICAgIHtcbiAgICAgICAgICBhZ2dzOiBhZ2dzUXF1ZXJ5XG4gICAgICAgICAgLCAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgICB9LCB0cnVlKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgICBpZiAocmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnQk9PTEVBTicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5ID09PSAwID8gJ1xcdTI2MTAnIDogJ1xcdTI2MTEnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGdyb3VwOiB0eXBlb2YgZS5rZXkgPT09ICdzdHJpbmcnID8gZS5rZXkucmVwbGFjZSgnXycsICctJykgOiBlLmtleSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5tb2RpZmllZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5tb2RpZmllZC5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiBlLmtleV9hc19zdHJpbmcsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNvYmplY3QuY3JlYXRlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5jcmVhdGVkLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5X2FzX3N0cmluZyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c2RvY3VtZW50Lm1pbWV0eXBlZ3JvdXAnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnMubWltZXR5cGVncm91cC5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiBlLmtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC50eXBlJykge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLnR5cGUuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUoZS5rZXkpLmxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uID09PSAnc3lzZG9jdW1lbnQuZmlsZXNpemUnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnMuZmlsZXNpemUuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogZS5rZXkucmVwbGFjZSgnXycsICctJyksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRRdWVyeVRvQXBwU2VhcmNoKCkge1xuICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMZWdlbmREaWFncmFtbSgpIHtcbiAgICB0aGlzLnNoYXJlZE9wdGlvbnMudGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnRpdGxlO1xuICAgIHRoaXMuc2hhcmVkT3B0aW9ucy5heGVzLmJvdHRvbS50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUueEF4ZTtcbiAgICB0aGlzLnNoYXJlZE9wdGlvbnMuYXhlcy5sZWZ0LnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS55QXhlO1xuXG4gICAgdGhpcy5saW5lQ3VydmVDaGFydE9wdGlvbi50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUudGl0bGU7XG4gICAgdGhpcy5saW5lQ3VydmVDaGFydE9wdGlvbi5heGVzLmJvdHRvbS50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUueEF4ZTtcbiAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uLmF4ZXMubGVmdC50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUueUF4ZTtcblxuICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24udGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnRpdGxlO1xuICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24uYXhlcy5ib3R0b20udGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnhBeGU7XG4gICAgdGhpcy5saW5lU3RyYWlnaHRDaGFydE9wdGlvbi5heGVzLmxlZnQudGl0bGUgPSB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZS55QXhlO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5KHRoaXMuX3dpZGdldENvbmZpZy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5zdG9yZWRRdWVyeSk7XG4gICAgICB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5uYW1lO1xuICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbikge1xuICAgICAgICB0aGlzLmdlbmVyYXRlQ2hhcnREYXRhKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUsXG4gICAgICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUsIHRoaXMucmFuZ2VWYWx1ZXMsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zb3J0UmV2ZXJ0LFxuICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hdHRyaWJ1dE1ldHJpYywgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lm1ldHJpYyxcbiAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWluRG9jQ291bnQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgb25FbWl0UXVlcnlDbGljayhldmVudCkge1xuICAgIGRlbGV0ZSB0aGlzLl9xdWVyeS5maWVsZHM7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkodGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKCkpKTtcbiAgICBjb25zdCB1cmlQYXJhbVF1ZXJ5OiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7J3F1ZXJ5JzogdXJpUGFyYW19fTtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJpUGFyYW1RdWVyeS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKTtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnL2Rhc2hib2FyZCcpWzBdICsgJy9yZXN1bHQ/JyArIHF1ZXJ5UGFyYW1zO1xuICAgIHdpbmRvdy5vcGVuKHVybCwgZXZlbnQ/LmN0cmxLZXkgfHwgdGhpcy5lZGl0TW9kZSA/ICdfYmxhbmsnIDogJ19zZWxmJyk7XG4gIH1cbn1cbiIsIjxoZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cbiAgICBAaWYgKHdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdG9yZWRRdWVyeSkge1xuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3sgd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnN0b3JlZFF1ZXJ5IH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvbnMtdGl0bGVcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NhdmVkX3NlYXJjaC5zdmcnXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFF1ZXJ5VG9BcHBTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby53aWRnZXQuaGl0bGlzdC50b29sdGlwLnNhdmVkU2VhcmNoSWNvbid8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcGVuX3RhYi5zdmcnXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRW1pdFF1ZXJ5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby53aWRnZXQuaGl0bGlzdC50b29sdGlwLm9wZW5pbnJlc3VsdGxpc3QnfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby53aWRnZXQuaGl0bGlzdC50b29sdGlwLnJlZnJlc2gnfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvaGVhZGVyPlxuXG5AaWYgKHJlZnJlc2hpbmdSZXF1ZXN0KSB7XG4gIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyIFtzaXplXT1cIidsYXJnZSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9tYWluPlxufSBAZWxzZSBpZiAoY2hhcnREYXRhLmxlbmd0aCA+IDAgJiYgIXJlZnJlc2hpbmdSZXF1ZXN0KSB7XG4gIDxtYWluIGNsYXNzPVwiY2hhcnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiPlxuICAgICAgQHN3aXRjaCAod2lkZ2V0Q29uZmlnIS5mb3JtVmFsdWUuY2hhcnRUeXBlKSB7XG4gICAgICAgIEBjYXNlICgnYmFyJykge1xuICAgICAgICAgIDxpYm0tc2ltcGxlLWJhci1jaGFydCBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJzaGFyZWRPcHRpb25zXCI+PC9pYm0tc2ltcGxlLWJhci1jaGFydD5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ3BpZScpIHtcbiAgICAgICAgICA8aWJtLXBpZS1jaGFydCBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJzaGFyZWRPcHRpb25zXCI+PC9pYm0tcGllLWNoYXJ0PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnZG9udXQnKSB7XG4gICAgICAgICAgPGlibS1kb251dC1jaGFydCBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJzaGFyZWRPcHRpb25zXCI+PC9pYm0tZG9udXQtY2hhcnQ+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdsaW5lU3RyYWlnaHQnKSB7XG4gICAgICAgICAgPGlibS1saW5lLWNoYXJ0IFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cImxpbmVTdHJhaWdodENoYXJ0T3B0aW9uXCI+PC9pYm0tbGluZS1jaGFydD5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2xpbmVDdXJ2ZScpIHtcbiAgICAgICAgICA8aWJtLWxpbmUtY2hhcnQgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwibGluZUN1cnZlQ2hhcnRPcHRpb25cIj48L2libS1saW5lLWNoYXJ0PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbWFpbj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zYXZlZF9zZWFyY2guc3ZnJywgdGV4dDogJ2VvLndvcmtzcGFjZS53aWRnZXQuY29uZmlndXJhdGlvbi5ub3RPayd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvaWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJY2hhcnRzIHtcbiAgICBzdG9yZWRRdWVyeTogc3RyaW5nO1xuICAgIGZvcm1WYWx1ZToge1xuICAgICAgICBjaGFydFR5cGU6ICBzdHJpbmc7XG4gICAgICAgIC8vIG51bWJlciBvZiBpdGVtcyB0byBiZSBmZXRjaGVkXG4gICAgICAgIHNpemU6IG51bWJlcjtcbiAgICAgICAgYWdncmVnYXRpb246IHN0cmluZztcbiAgICAgICAgc3RvcmVkUXVlcnk6IHN0cmluZztcbiAgICAgICAgaGlzdG9ncmFtVHlwZTogc3RyaW5nXG4gICAgfTtcbiAgICBhZ2dyZWdhdGlvblR5cGU6IHN0cmluZztcbn1cblxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvaWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJY2hhcnRzIHtcbiAgICBzdG9yZWRRdWVyeTogc3RyaW5nO1xuICAgIGZvcm1WYWx1ZToge1xuICAgICAgICBjaGFydFR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIGZldGNoZWRcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgICAgICBhZ2dyZWdhdGlvbjogc3RyaW5nO1xuICAgICAgICBzdG9yZWRRdWVyeTogc3RyaW5nO1xuICAgICAgICBoaXN0b2dyYW1UeXBlOiBzdHJpbmc7XG4gICAgICAgIGF0dHJpYnV0TWV0cmljOiBzdHJpbmc7XG4gICAgICAgIG1ldHJpYzogc3RyaW5nO1xuICAgICAgICAvLyByZXZlcnQgc29ydCBkaXJlY3Rpb24gZnJvbSBBU0MgdG8gREVTQ1xuICAgICAgICBzb3J0UmV2ZXJ0PzogYm9vbGVhbjtcbiAgICAgICAgaW50ZXJ2YWw6IG51bWJlcjtcbiAgICAgICAgbWluRG9jQ291bnQ6IG51bWJlcjtcbiAgICAgICAgc3RhcnRpbmdwb2ludDogbnVtYmVyO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICB4QXhlOiBzdHJpbmc7XG4gICAgICAgIHlBeGU6IHN0cmluZztcbiAgICB9O1xuICAgIGFnZ3JlZ2F0aW9uVHlwZTogc3RyaW5nO1xufVxuXG4iXX0=