@eo-sdk/client 11.0.0-rc.1 → 11.0.0-rc.11

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 (187) 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 +31 -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 +7 -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 +8 -4
  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 -1
  30. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +6 -4
  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/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts +18 -0
  33. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.d.ts.map +1 -0
  34. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts +10 -0
  35. package/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.d.ts.map +1 -0
  36. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +1 -2
  37. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
  38. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts +24 -0
  39. package/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.d.ts.map +1 -0
  40. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts +34 -0
  41. package/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.d.ts.map +1 -0
  42. package/app/eo-client/eo-client.module.d.ts +29 -24
  43. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  44. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  45. package/app/eo-client/login/login.component.d.ts +3 -1
  46. package/app/eo-client/login/login.component.d.ts.map +1 -1
  47. package/app/eo-client/process-state/process-state.component.d.ts +3 -5
  48. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  49. package/app/eo-client/settings/settings.component.d.ts +2 -0
  50. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  51. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts +3 -2
  52. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  53. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts +5 -1
  54. package/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.d.ts.map +1 -1
  55. package/app/eo-framework/actions/actions/signature-action/signature-action.component.d.ts.map +1 -1
  56. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  57. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +3 -4
  58. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  59. package/app/eo-framework/form-elements/string/string.component.d.ts +1 -0
  60. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  61. package/app/eo-framework/frame/frame.component.d.ts +2 -1
  62. package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
  63. package/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.d.ts.map +1 -1
  64. package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
  65. package/app/eo-framework/grid/filters/codesystem-filter.component.d.ts.map +1 -1
  66. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +0 -8
  67. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  68. package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts.map +1 -1
  69. package/app/eo-framework/grid/grid.component.d.ts +1 -1
  70. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  71. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  72. package/app/eo-framework/media/media.component.d.ts +15 -1
  73. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  74. package/app/eo-framework/object-details/object-details.component.d.ts +9 -3
  75. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  76. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +2 -0
  77. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  78. package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
  79. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  80. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  81. package/app/eo-framework/result-list/result-list.component.d.ts +3 -2
  82. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  83. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +3 -2
  84. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
  85. package/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.d.ts.map +1 -1
  86. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +2 -1
  87. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  88. package/app/eo-framework/util/services/utilities.service.d.ts +195 -0
  89. package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
  90. package/app/eo-framework-core/api/grid.service.d.ts +1 -5
  91. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  92. package/app/eo-framework-core/api/plugins.service.d.ts +6 -0
  93. package/app/eo-framework-core/api/plugins.service.d.ts.map +1 -1
  94. package/assets/_default/config/main.json +1 -1
  95. package/assets/_default/i18n/de.json +37 -5
  96. package/assets/_default/i18n/en.json +41 -9
  97. package/assets/_default/svg/ic_noImage.svg +1 -0
  98. package/assets/_default/svg/ic_photo_library.svg +1 -0
  99. package/assets/_default/svg/ic_task.svg +1 -0
  100. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  101. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +27 -75
  102. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +183 -86
  103. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +109 -34
  104. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  105. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +21 -13
  106. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +7 -3
  107. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  108. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  109. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +73 -59
  110. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +7 -8
  111. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +16 -10
  112. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -4
  113. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +15 -9
  114. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  115. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +16 -10
  116. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +26 -10
  117. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +35 -35
  118. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +54 -0
  119. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +24 -0
  120. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +4 -7
  121. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +74 -0
  122. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +103 -0
  123. package/esm2022/app/eo-client/eo-client.module.mjs +22 -6
  124. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +4 -4
  125. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +25 -11
  126. package/esm2022/app/eo-client/login/login.component.mjs +14 -11
  127. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +5 -5
  128. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  129. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +6 -6
  130. package/esm2022/app/eo-client/process-state/process-state.component.mjs +12 -17
  131. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +6 -6
  132. package/esm2022/app/eo-client/result-state/result-state.component.mjs +1 -1
  133. package/esm2022/app/eo-client/settings/settings.component.mjs +9 -3
  134. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +19 -9
  135. package/esm2022/app/eo-client/version-state/version-state.component.mjs +5 -5
  136. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +6 -6
  137. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  138. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +23 -3
  139. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  140. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -2
  141. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +4 -4
  142. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +12 -4
  143. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  144. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  145. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  146. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +25 -22
  147. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +6 -6
  148. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
  149. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
  150. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +2 -2
  151. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +8 -5
  152. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -2
  153. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +7 -2
  154. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  155. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +1 -14
  156. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +6 -33
  157. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -19
  158. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +2 -2
  159. package/esm2022/app/eo-framework/grid/grid.component.mjs +11 -12
  160. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +4 -2
  161. package/esm2022/app/eo-framework/media/media.component.mjs +68 -19
  162. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +53 -15
  163. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  164. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +18 -27
  165. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +2 -2
  166. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  167. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +11 -7
  168. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  169. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +6 -1
  170. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +2 -1
  171. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +2 -2
  172. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  173. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +1 -1
  174. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +20 -6
  175. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +9 -5
  176. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +13 -9
  177. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +6 -3
  178. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +4 -1
  179. package/esm2022/app/eo-framework-core/api/grid.service.mjs +20 -27
  180. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +44 -2
  181. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +2 -2
  182. package/fesm2022/eo-sdk-client.mjs +1353 -779
  183. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  184. package/misc/scripts/exclude-core-ng-package.js +11 -0
  185. package/misc/scripts/prebuild-about-state.js +2 -3
  186. package/package.json +6 -6
  187. 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;
@@ -24,7 +23,8 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
24
23
  if (this._widgetConfig?.formValue?.interval) {
25
24
  this.rangeValues = this.generateRange(this._widgetConfig?.formValue?.interval, this._widgetConfig?.formValue?.startingpoint, this._widgetConfig?.formValue?.size);
26
25
  }
27
- this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType, this._widgetConfig?.formValue?.histogramType, this.rangeValues);
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();
28
28
  }
29
29
  }, (error) => {
30
30
  if (error.status === 404) {
@@ -45,13 +45,11 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
45
45
  this.translate = translate;
46
46
  this.systemService = systemService;
47
47
  this.sharedOptions = {
48
+ title: '',
48
49
  color: {
49
50
  text: '#925699',
50
51
  label: '#925699'
51
52
  },
52
- legend: {
53
- enabled: false,
54
- },
55
53
  resizable: true,
56
54
  donut: {
57
55
  'alignment': 'center'
@@ -61,38 +59,57 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
61
59
  },
62
60
  height: '400px',
63
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
+ },
64
83
  axes: {
65
84
  bottom: {
66
85
  mapsTo: 'date',
67
86
  scaleType: 'time',
87
+ title: ''
68
88
  },
69
89
  left: {
70
90
  mapsTo: 'value',
71
91
  scaleType: 'linear',
92
+ title: ''
72
93
  },
73
- },
94
+ }
74
95
  };
75
- this.chartOptions2 = {
96
+ this.lineCurveChartOption = {
76
97
  ...this.sharedOptions,
77
- curve: undefined,
78
98
  legend: {
79
99
  enabled: false,
80
100
  },
81
- };
82
- this.chartOptions = {
83
- ...this.sharedOptions,
84
101
  axes: {
102
+ bottom: {
103
+ mapsTo: 'date',
104
+ scaleType: 'time',
105
+ title: ''
106
+ },
85
107
  left: {
86
108
  mapsTo: 'value',
87
- },
88
- bottom: {
89
- mapsTo: 'group',
90
- scaleType: 'labels',
109
+ scaleType: 'linear',
110
+ title: ''
91
111
  },
92
112
  },
93
- legend: {
94
- 'alignment': 'center'
95
- },
96
113
  };
97
114
  this.chartData = [];
98
115
  this.rangeValues = [];
@@ -114,7 +131,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
114
131
  }
115
132
  return rangeValues;
116
133
  }
117
- generateChartData(field, type, histogramType, rangeValues) {
134
+ generateChartData(field, type, histogramType, rangeValues, sort, attributMetric, metric, minDocCount) {
118
135
  this.refreshingRequest = true;
119
136
  const queryName = this._query.name;
120
137
  delete this._query.name;
@@ -163,20 +180,67 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
163
180
  this.refreshingRequest = false;
164
181
  }
165
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
+ }
166
223
  else {
167
224
  const fieldKey = field.replace('sysobject.', '').replace('sysdocument.', '');
168
225
  let aggsQquery;
169
- if (Object.keys(rangeValues).length !== 0) {
226
+ if (Object.keys(rangeValues).length !== 0 && type === 'NUMBER') {
170
227
  aggsQquery = {
171
228
  [fieldKey]: {
172
229
  size: this._widgetConfig?.formValue?.size || 10,
173
- rg: rangeValues
230
+ rg: rangeValues,
231
+ order: sort ? 'asc' : 'desc',
232
+ sort: '_count',
233
+ min_doc_count: minDocCount
174
234
  }
175
235
  };
176
236
  }
177
237
  else {
178
238
  aggsQquery = {
179
239
  [fieldKey]: {
240
+ order: sort ? 'asc' : 'desc',
241
+ histogram: { calendar_interval: 'month', format: 'yyyy-MM' },
242
+ sort: '_count',
243
+ min_doc_count: minDocCount,
180
244
  size: this._widgetConfig?.formValue?.size || 10,
181
245
  }
182
246
  };
@@ -198,7 +262,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
198
262
  }
199
263
  else {
200
264
  return {
201
- group: e.key,
265
+ group: typeof e.key === 'string' ? e.key.replace('_', '-') : e.key,
202
266
  value: e.doc_count,
203
267
  };
204
268
  }
@@ -211,7 +275,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
211
275
  if (this._widgetConfig?.formValue?.aggregation === 'sysobject.modified') {
212
276
  this.chartData = res.aggregations.modified.buckets.map((e) => {
213
277
  return {
214
- group: this.translate.instant('eo.search.agg.time.' + e.key),
278
+ group: e.key_as_string,
215
279
  value: e.doc_count,
216
280
  };
217
281
  });
@@ -219,7 +283,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
219
283
  if (this._widgetConfig?.formValue?.aggregation === 'sysobject.created') {
220
284
  this.chartData = res.aggregations.created.buckets.map((e) => {
221
285
  return {
222
- group: this.translate.instant('eo.search.agg.time.' + e.key),
286
+ group: e.key_as_string,
223
287
  value: e.doc_count,
224
288
  };
225
289
  });
@@ -243,7 +307,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
243
307
  if (this._widgetConfig?.formValue?.aggregation === 'sysdocument.filesize') {
244
308
  this.chartData = res.aggregations.filesize.buckets.map((e) => {
245
309
  return {
246
- group: this.translate.instant('eo.search.agg.filesize.' + e.key),
310
+ group: e.key.replace('_', '-'),
247
311
  value: e.doc_count,
248
312
  };
249
313
  });
@@ -258,12 +322,23 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
258
322
  this.appSearchService.setQuery(this.storedQuery);
259
323
  this.router.navigate([{ outlets: { modal: 'search' } }]);
260
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
+ }
261
336
  refresh() {
262
337
  this.getStoredQuery(this._widgetConfig.storedQuery).subscribe(() => {
263
338
  this._query = this.searchService.buildQuery(this.storedQuery);
264
339
  this._widgetConfig.formValue.storedQuery = this.storedQuery.name;
265
340
  if (this._widgetConfig?.formValue?.aggregation) {
266
- this.generateChartData(this._widgetConfig?.formValue?.aggregation, this._widgetConfig?.aggregationType, this._widgetConfig?.formValue?.histogramType, this.rangeValues);
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);
267
342
  }
268
343
  }, (error) => {
269
344
  this.chartData = [];
@@ -279,7 +354,7 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
279
354
  window.open(url, event?.ctrlKey || this.editMode ? '_blank' : '_self');
280
355
  }
281
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 }); }
282
- 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" }] }); }
283
358
  };
284
359
  ChartsWidgetComponent = __decorate([
285
360
  UntilDestroy()
@@ -287,10 +362,10 @@ ChartsWidgetComponent = __decorate([
287
362
  export { ChartsWidgetComponent };
288
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChartsWidgetComponent, decorators: [{
289
364
  type: Component,
290
- 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"] }]
291
366
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.SearchService }, { type: i3.AppSearchService }, { type: i2.StoredQueriesService }, { type: i2.TranslateService }, { type: i2.SystemService }], propDecorators: { editMode: [{
292
367
  type: Input
293
368
  }], widgetConfig: [{
294
369
  type: Input
295
370
  }] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWlHLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUluSSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVF6QixJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQWlFaEMsSUFBYSxZQUFZLENBQUMsQ0FBc0I7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsU0FB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QUM7UUFDbkYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBN1JVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdIQ2ZsQyxncUVBbUNBOztBRHBCYSxxQkFBcUI7SUFOakMsWUFBWSxFQUFFO0dBTUYscUJBQXFCLENBOFJqQzs7MkZBOVJZLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7b09BbUVuQixRQUFRO3NCQUFoQixLQUFLO2dCQUVPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU2VydmljZSwgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge0ljaGFydHN9IGZyb20gJy4vaWNoYXJ0cyc7XG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFTVBUWSwgdGFwfSBmcm9tICdyeGpzJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1jaGFydHMtd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0cy13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRzV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCB7XG4gIGhpc3RvZ3JhbTogYW55O1xuICBzaGFyZWRPcHRpb25zID0ge1xuICAgIGNvbG9yOiB7XG4gICAgICB0ZXh0OiAnIzkyNTY5OScsXG4gICAgICBsYWJlbDogJyM5MjU2OTknXG4gICAgfSxcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIGRvbnV0OiB7XG4gICAgICAnYWxpZ25tZW50JzogJ2NlbnRlcidcbiAgICB9LFxuXG4gICAgdG9vbGJhcjoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBoZWlnaHQ6ICc0MDBweCcsXG4gICAgY3VydmU6ICdjdXJ2ZU1vbm90b25lWCcsXG4gICAgYXhlczoge1xuICAgICAgYm90dG9tOiB7XG4gICAgICAgIG1hcHNUbzogJ2RhdGUnLFxuICAgICAgICBzY2FsZVR5cGU6ICd0aW1lJyxcbiAgICAgIH0sXG4gICAgICBsZWZ0OiB7XG4gICAgICAgIG1hcHNUbzogJ3ZhbHVlJyxcbiAgICAgICAgc2NhbGVUeXBlOiAnbGluZWFyJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjaGFydE9wdGlvbnMyID0ge1xuICAgIC4uLnRoaXMuc2hhcmVkT3B0aW9ucyxcbiAgICBjdXJ2ZTogdW5kZWZpbmVkLFxuICAgIGxlZ2VuZDoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgfTtcblxuICBjaGFydE9wdGlvbnMgPSB7XG4gICAgLi4udGhpcy5zaGFyZWRPcHRpb25zLFxuICAgIGF4ZXM6IHtcbiAgICAgIGxlZnQ6IHtcbiAgICAgICAgbWFwc1RvOiAndmFsdWUnLFxuICAgICAgfSxcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBtYXBzVG86ICdncm91cCcsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xhYmVscycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgbGVnZW5kOiB7XG4gICAgICAnYWxpZ25tZW50JzogJ2NlbnRlcidcbiAgICB9LFxuICB9O1xuXG4gIGNoYXJ0RGF0YToge2dyb3VwOiBzdHJpbmc7IHZhbHVlOiBhbnk7IGRhdGU6IHN0cmluZ31bXSA9IFtdO1xuICBwcml2YXRlIF9xdWVyeTogU2VhcmNoUXVlcnk7XG4gIHJlZnJlc2hpbmdSZXF1ZXN0OiBib29sZWFuO1xuICBzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnk7XG4gIHByaXZhdGUgX3dpZGdldENvbmZpZzogSWNoYXJ0cyB8IHVuZGVmaW5lZDtcbiAgcmFuZ2VWYWx1ZXMgPSBbXTtcblxuICBASW5wdXQoKSBlZGl0TW9kZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCB3aWRnZXRDb25maWcoYzogSWNoYXJ0cyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IGM7XG4gICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uc3RvcmVkUXVlcnkgJiYgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uKSB7XG4gICAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5KHRoaXMuX3dpZGdldENvbmZpZy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5zdG9yZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcnkubmFtZTtcbiAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbikge1xuICAgICAgICAgIGlmKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5pbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlcyA9IHRoaXMuZ2VuZXJhdGVSYW5nZSh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaW50ZXJ2YWwsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdGFydGluZ3BvaW50LCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFydERhdGEodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uLCB0aGlzLl93aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUsIHRoaXMucmFuZ2VWYWx1ZXMpO1xuICAgICAgICB9XG4gICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHdpZGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZVxuICApIHsgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyeShpZCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgdGFwKHN0b3JlZFF1ZXJ5ID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHN0b3JlZFF1ZXJ5O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVJhbmdlKGludGVydmFsLCBzdGFydCwgc2l6ZSkge1xuICAgIGNvbnN0IHJhbmdlVmFsdWVzID0gW107XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBzaXplOyBqKyspIHtcbiAgICAgIGNvbnN0IHJhbmdlSXRlbSA9IHtcbiAgICAgICAgbzE6IHBhcnNlRmxvYXQoc3RhcnQgKyBqICogaW50ZXJ2YWwpLFxuICAgICAgICBvMjogcGFyc2VGbG9hdChzdGFydCArIChqICsgMSkgKmludGVydmFsKSxcbiAgICAgIH07XG4gICAgICByYW5nZVZhbHVlcy5wdXNoKHJhbmdlSXRlbSk7XG4gICAgfVxuICAgIHJldHVybiByYW5nZVZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDaGFydERhdGEoZmllbGQsIHR5cGUsIGhpc3RvZ3JhbVR5cGUsIHJhbmdlVmFsdWVzKSB7XG4gICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlOYW1lID0gdGhpcy5fcXVlcnkubmFtZTtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkubmFtZTtcbiAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5KTtcbiAgICBcbiAgICBpZiAodHlwZSA9PT0gJ0RBVEVUSU1FJyAmJiBoaXN0b2dyYW1UeXBlKSB7XG4gICAgICBjb25zdCBoaXN0b2dyYW1Db25maWcgPSB7XG4gICAgICAgICd5ZWFybHknOiB7Y2FsZW5kYXJfaW50ZXJ2YWw6ICd5ZWFyJywgZm9ybWF0OiAneXl5eSd9LFxuICAgICAgICAnd2Vla2x5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnd2VlaycsIGZvcm1hdDogJ3l5eXktd3cnfSxcbiAgICAgICAgJ21vbnRobHknOiB7Y2FsZW5kYXJfaW50ZXJ2YWw6ICdtb250aCcsIGZvcm1hdDogJ3l5eXktTU0nfSxcbiAgICAgICAgJ2RhaWx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnZGF5JywgZm9ybWF0OiAneXl5eS1NTS1kZCd9XG4gICAgICB9O1xuICAgICAgaWYgKGhpc3RvZ3JhbUNvbmZpZy5oYXNPd25Qcm9wZXJ0eShoaXN0b2dyYW1UeXBlKSkge1xuICAgICAgICB0aGlzLmhpc3RvZ3JhbSA9IGhpc3RvZ3JhbUNvbmZpZ1toaXN0b2dyYW1UeXBlXTtcbiAgICAgICAgdGhpcy5oaXN0b2dyYW0uc2l6ZSA9IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgOiAxMDtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICAgICAgYWdnczoge1xuICAgICAgICAgICAgW2ZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJyldOiB7XG4gICAgICAgICAgICAgIGhpc3RvZ3JhbTogdGhpcy5oaXN0b2dyYW1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkocXVlcnksIHRydWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9uS2V5ID0gT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF07XG4gICAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgICBpZiAodGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZUN1cnZlJyB8fCB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgPT09ICdsaW5lU3RyYWlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbYWdncmVnYXRpb25LZXldLmJ1Y2tldHMubWFwKChlKSA9PiAoe1xuICAgICAgICAgICAgICBncm91cDogJ2RhdGFzZXQxJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShlLmtleSkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zW2FnZ3JlZ2F0aW9uS2V5XS5idWNrZXRzLm1hcCgoZSkgPT4gKHtcbiAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5X2FzX3N0cmluZyxcbiAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpZWxkS2V5ID0gZmllbGQucmVwbGFjZSgnc3lzb2JqZWN0LicsICcnKS5yZXBsYWNlKCdzeXNkb2N1bWVudC4nLCAnJyk7XG4gICAgICBsZXQgYWdnc1FxdWVyeTtcbiAgICAgIFxuICAgICAgaWYgKE9iamVjdC5rZXlzKHJhbmdlVmFsdWVzKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgYWdnc1FxdWVyeSA9IHtcbiAgICAgICAgICBbZmllbGRLZXldOiB7XG4gICAgICAgICAgICBzaXplOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSB8fCAxMCxcbiAgICAgICAgICAgIHJnOiByYW5nZVZhbHVlc1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFnZ3NRcXVlcnkgPSB7XG4gICAgICAgICAgW2ZpZWxkS2V5XToge1xuICAgICAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmV4ZWN1dGVRdWVyeShcbiAgICAgICAge1xuICAgICAgICAgICAgYWdnczogYWdnc1FxdWVyeVxuICAgICAgICAgICwgLi4udGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKClcbiAgICAgICAgfSwgdHJ1ZSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX3F1ZXJ5Lm5hbWUgPSBxdWVyeU5hbWU7XG4gICAgICAgICAgaWYgKHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zW09iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdXS5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ0JPT0xFQU4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGdyb3VwOiBlLmtleSA9PT0gMCA/ICdcXHUyNjEwJyA6ICdcXHUyNjExJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBncm91cDogZS5rZXksXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNvYmplY3QubW9kaWZpZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnMubW9kaWZpZWQuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLmFnZy50aW1lLicgKyBlLmtleSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNvYmplY3QuY3JlYXRlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5jcmVhdGVkLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC5hZ2cudGltZS4nICsgZS5rZXkpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uID09PSAnc3lzZG9jdW1lbnQubWltZXR5cGVncm91cCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5taW1ldHlwZWdyb3VwLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0LnR5cGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnMudHlwZS5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShlLmtleSkubGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNkb2N1bWVudC5maWxlc2l6ZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5maWxlc2l6ZS5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zZWFyY2guYWdnLmZpbGVzaXplLicgKyBlLmtleSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRRdWVyeVRvQXBwU2VhcmNoKCkge1xuICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5KHRoaXMuX3dpZGdldENvbmZpZy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5zdG9yZWRRdWVyeSk7XG4gICAgICB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5uYW1lO1xuICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbikge1xuICAgICAgICB0aGlzLmdlbmVyYXRlQ2hhcnREYXRhKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlLCB0aGlzLnJhbmdlVmFsdWVzKTtcbiAgICAgIH1cbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBvbkVtaXRRdWVyeUNsaWNrKGV2ZW50KSB7XG4gICAgZGVsZXRlIHRoaXMuX3F1ZXJ5LmZpZWxkcztcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChVdGlscy5mb3JtRGF0YVN0cmluZ2lmeSh0aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKSkpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmlQYXJhbVF1ZXJ5LnF1ZXJ5UGFyYW1zKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvZGFzaGJvYXJkJylbMF0gKyAnL3Jlc3VsdD8nICsgcXVlcnlQYXJhbXM7XG4gICAgd2luZG93Lm9wZW4odXJsLCBldmVudD8uY3RybEtleSB8fCB0aGlzLmVkaXRNb2RlID8gJ19ibGFuaycgOiAnX3NlbGYnKTtcbiAgfVxufVxuIiwiPGhlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiICpuZ0lmPVwid2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnN0b3JlZFF1ZXJ5XCI+XG4gICAgICAgICAgICB7e3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdG9yZWRRdWVyeX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29ucy10aXRsZVwiICpuZ0lmPVwidGhpcy53aWRnZXRDb25maWc/LnN0b3JlZFF1ZXJ5XCI+XG4gICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2F2ZWRfc2VhcmNoLnN2ZydcIiAoY2xpY2spPVwic2V0UXVlcnlUb0FwcFNlYXJjaCgpXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby53aWRnZXQuaGl0bGlzdC50b29sdGlwLnNhdmVkU2VhcmNoSWNvbid8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3Blbl90YWIuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRW1pdFF1ZXJ5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAub3BlbmlucmVzdWx0bGlzdCd8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAucmVmcmVzaCd8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9oZWFkZXI+XG5cbjxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIiAqbmdJZj1cInJlZnJlc2hpbmdSZXF1ZXN0XCI+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG48L21haW4+XG5cbjxtYWluIGNsYXNzPVwiY2hhcnRcIiAqbmdJZj1cImNoYXJ0RGF0YS5sZW5ndGggPiAwICYmICFyZWZyZXNoaW5nUmVxdWVzdDsgZWxzZSB0cGxFbXB0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgW25nU3dpdGNoXT1cIndpZGdldENvbmZpZyEuZm9ybVZhbHVlLmNoYXJ0VHlwZVwiPlxuICAgICAgICA8aWJtLXNpbXBsZS1iYXItY2hhcnQgKm5nU3dpdGNoQ2FzZT1cIidiYXInXCIgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwiY2hhcnRPcHRpb25zXCI+PC9pYm0tc2ltcGxlLWJhci1jaGFydD5cbiAgICAgICAgPGlibS1waWUtY2hhcnQgKm5nU3dpdGNoQ2FzZT1cIidwaWUnXCIgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwiY2hhcnRPcHRpb25zXCI+PC9pYm0tcGllLWNoYXJ0PlxuICAgICAgICA8aWJtLWRvbnV0LWNoYXJ0ICpuZ1N3aXRjaENhc2U9XCInZG9udXQnXCIgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwiY2hhcnRPcHRpb25zXCI+PC9pYm0tZG9udXQtY2hhcnQ+XG4gICAgICAgIDxpYm0tbGluZS1jaGFydCAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmVTdHJhaWdodCdcIiBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJjaGFydE9wdGlvbnMyXCI+PC9pYm0tbGluZS1jaGFydD5cbiAgICAgICAgPGlibS1saW5lLWNoYXJ0ICpuZ1N3aXRjaENhc2U9XCInbGluZUN1cnZlJ1wiIFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cInNoYXJlZE9wdGlvbnNcIj48L2libS1saW5lLWNoYXJ0PlxuICAgIDwvZGl2PlxuPC9tYWluPlxuPG5nLXRlbXBsYXRlICN0cGxFbXB0eT5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIiAqbmdJZj1cIiFyZWZyZXNoaW5nUmVxdWVzdFwiPlxuICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zYXZlZF9zZWFyY2guc3ZnJywgdGV4dDogJ2VvLndvcmtzcGFjZS53aWRnZXQuY29uZmlndXJhdGlvbi5ub3RPayd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
371
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWlHLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUluSSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUXpCLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBbUZoQyxJQUFhLFlBQVksQ0FBQyxDQUFzQjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNqRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO29CQUMvQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDcEssQ0FBQztvQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUNwRyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUMzRCxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQzdDLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQ2xGLENBQUM7b0JBQ0YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3pCLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNVLE1BQWMsRUFDZCxhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsb0JBQTBDLEVBQzFDLFNBQTJCLEVBQzNCLGFBQTRCO1FBTDVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFySHRDLGtCQUFhLEdBQUc7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNELFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxRQUFRO2FBQ3RCO1lBRUQsT0FBTyxFQUFFO2dCQUNQLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7WUFDRCxNQUFNLEVBQUUsT0FBTztZQUNmLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsTUFBTSxFQUFFO2dCQUNOLFdBQVcsRUFBRSxRQUFRO2FBQ3RCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsT0FBTztvQkFDZixLQUFLLEVBQUUsRUFBRTtpQkFDVjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLE9BQU87b0JBQ2YsU0FBUyxFQUFFLFFBQVE7b0JBQ25CLEtBQUssRUFBRSxFQUFFO2lCQUNWO2FBQ0Y7U0FDRixDQUFDO1FBRUYsNEJBQXVCLEdBQUc7WUFDeEIsR0FBRyxJQUFJLENBQUMsYUFBYTtZQUNyQixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLEtBQUs7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLE1BQU07b0JBQ2QsU0FBUyxFQUFFLE1BQU07b0JBQ2pCLEtBQUssRUFBRSxFQUFFO2lCQUNWO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsT0FBTztvQkFDZixTQUFTLEVBQUUsUUFBUTtvQkFDbkIsS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7YUFDRjtTQUNGLENBQUM7UUFFRix5QkFBb0IsR0FBRztZQUNyQixHQUFHLElBQUksQ0FBQyxhQUFhO1lBQ3JCLE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsS0FBSzthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsTUFBTTtvQkFDZCxTQUFTLEVBQUUsTUFBTTtvQkFDakIsS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxPQUFPO29CQUNmLFNBQVMsRUFBRSxRQUFRO29CQUNuQixLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGO1NBQ0YsQ0FBQztRQUVGLGNBQVMsR0FBZ0QsRUFBRSxDQUFDO1FBSzVELGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRVIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQXdDdEIsQ0FBQztJQUVMLGNBQWMsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3RELGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDcEIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSTtRQUN6QyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sU0FBUyxHQUFHO2dCQUNoQixFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO2dCQUNwQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7YUFDM0MsQ0FBQztZQUNGLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsV0FBVztRQUMxRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekQsSUFBSSxJQUFJLEtBQUssVUFBVSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sZUFBZSxHQUFHO2dCQUN0QixRQUFRLEVBQUUsRUFBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQztnQkFDckQsUUFBUSxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUM7Z0JBQ3hELFNBQVMsRUFBRSxFQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDO2dCQUMxRCxPQUFPLEVBQUUsRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQzthQUMxRCxDQUFDO1lBQ0YsSUFBSSxlQUFlLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyRyxNQUFNLEtBQUssR0FBRztvQkFDWixJQUFJLEVBQUU7d0JBQ0osQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFOzRCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7eUJBQzFCO3FCQUNGO29CQUNELEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7aUJBQzlCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUM3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO29CQUMvQixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO29CQUM3QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxLQUFLLGNBQWMsRUFBRSxDQUFDO3dCQUMxSCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDcEUsS0FBSyxFQUFFLFVBQVU7NEJBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUzs0QkFDbEIsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7eUJBQ3BDLENBQUMsQ0FBQyxDQUFDO29CQUNOLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDcEUsS0FBSyxFQUFFLENBQUMsQ0FBQyxhQUFhOzRCQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVM7eUJBQ25CLENBQUMsQ0FBQyxDQUFDO29CQUNOLENBQUM7Z0JBQ0gsQ0FBQyxFQUNDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLGNBQWMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRixJQUFJLFVBQVUsQ0FBQztZQUNmLFVBQVUsR0FBRztnQkFDWCxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNWLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtvQkFDL0MsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNO29CQUM1QixJQUFJLEVBQUUsaUJBQWlCLEdBQUcsUUFBUTtvQkFDbEMsYUFBYSxFQUFFLFdBQVc7b0JBQzFCLEdBQUcsRUFBRTt3QkFDSCxDQUFDLGlCQUFpQixDQUFDLEVBQUU7NEJBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNO3lCQUMvQztxQkFDRjtpQkFDRjthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDN0I7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2QsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTthQUNoQyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7Z0JBQzdCLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzFFLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDcEYsT0FBTzs0QkFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQzs0QkFDOUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFDLENBQUMsS0FBSzt5QkFDakQsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDLEVBQ0MsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDUixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3RSxJQUFJLFVBQVUsQ0FBQztZQUVmLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0QsVUFBVSxHQUFHO29CQUNYLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO3dCQUMvQyxFQUFFLEVBQUUsV0FBVzt3QkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU07d0JBQzVCLElBQUksRUFBRSxRQUFRO3dCQUNkLGFBQWEsRUFBRSxXQUFXO3FCQUMzQjtpQkFDRixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsR0FBRztvQkFDWCxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTt3QkFDNUIsU0FBUyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUM7d0JBQzFELElBQUksRUFBRSxRQUFRO3dCQUNkLGFBQWEsRUFBRSxXQUFXO3dCQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7cUJBQ2hEO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQzdCO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNkLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7YUFDaEMsRUFBRSxJQUFJLENBQUM7aUJBQ1AsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztnQkFDN0IsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNwRixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQzs0QkFDdkIsT0FBTztnQ0FDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtnQ0FDeEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTOzZCQUNuQixDQUFDO3dCQUNKLENBQUM7NkJBQU0sQ0FBQzs0QkFDTixPQUFPO2dDQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO2dDQUNsRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVM7NkJBQ25CLENBQUM7d0JBQ0osQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLENBQUM7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztvQkFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzNELE9BQU87NEJBQ0wsS0FBSyxFQUFFLENBQUMsQ0FBQyxhQUFhOzRCQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVM7eUJBQ25CLENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO29CQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDMUQsT0FBTzs0QkFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUzt5QkFDbkIsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxLQUFLLDJCQUEyQixFQUFFLENBQUM7b0JBQy9FLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNoRSxPQUFPOzRCQUNMLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRzs0QkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVM7eUJBQ25CLENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDdkQsT0FBTzs0QkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUs7NEJBQ3BELEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUzt5QkFDbkIsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxLQUFLLHNCQUFzQixFQUFFLENBQUM7b0JBQzFFLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUMzRCxPQUFPOzRCQUNMLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDOzRCQUM5QixLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVM7eUJBQ25CLENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUMsRUFDQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztRQUN6RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztRQUV2RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNyRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFOUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNuRixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2pFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQ3BHLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFDekcsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFDcEYsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUMzQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sYUFBYSxHQUFxQixFQUFDLFdBQVcsRUFBRSxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsRUFBQyxDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUNuRixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQzs4R0F0WFUscUJBQXFCO2tHQUFyQixxQkFBcUIsd0hDZmxDLHNwRUFrREE7O0FEbkNhLHFCQUFxQjtJQU5qQyxZQUFZLEVBQUU7R0FNRixxQkFBcUIsQ0F1WGpDOzsyRkF2WFkscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjtvT0FxRm5CLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTZXJ2aWNlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0Q29tcG9uZW50fSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7SWNoYXJ0c30gZnJvbSAnLi9pY2hhcnRzJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0VNUFRZLCB0YXB9IGZyb20gJ3J4anMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWNoYXJ0cy13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnRzLXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGFydHNXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBJV2lkZ2V0Q29tcG9uZW50IHtcbiAgaGlzdG9ncmFtOiBhbnk7XG4gIFxuICBzaGFyZWRPcHRpb25zID0ge1xuICAgIHRpdGxlOiAnJyxcbiAgICBjb2xvcjoge1xuICAgICAgdGV4dDogJyM5MjU2OTknLFxuICAgICAgbGFiZWw6ICcjOTI1Njk5J1xuICAgIH0sXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIGRvbnV0OiB7XG4gICAgICAnYWxpZ25tZW50JzogJ2NlbnRlcidcbiAgICB9LFxuXG4gICAgdG9vbGJhcjoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBoZWlnaHQ6ICc0MDBweCcsXG4gICAgY3VydmU6ICdjdXJ2ZU1vbm90b25lWCcsXG4gICAgbGVnZW5kOiB7XG4gICAgICAnYWxpZ25tZW50JzogJ2NlbnRlcidcbiAgICB9LFxuICAgIGF4ZXM6IHtcbiAgICAgIGxlZnQ6IHtcbiAgICAgICAgbWFwc1RvOiAndmFsdWUnLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgICBib3R0b206IHtcbiAgICAgICAgbWFwc1RvOiAnZ3JvdXAnLFxuICAgICAgICBzY2FsZVR5cGU6ICdsYWJlbHMnLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBsaW5lU3RyYWlnaHRDaGFydE9wdGlvbiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgY3VydmU6IHVuZGVmaW5lZCxcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgYXhlczoge1xuICAgICAgYm90dG9tOiB7XG4gICAgICAgIG1hcHNUbzogJ2RhdGUnLFxuICAgICAgICBzY2FsZVR5cGU6ICd0aW1lJyxcbiAgICAgICAgdGl0bGU6ICcnXG4gICAgICB9LFxuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xpbmVhcicsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICB9XG4gIH07XG5cbiAgbGluZUN1cnZlQ2hhcnRPcHRpb24gPSB7XG4gICAgLi4udGhpcy5zaGFyZWRPcHRpb25zLFxuICAgIGxlZ2VuZDoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBheGVzOiB7XG4gICAgICBib3R0b206IHtcbiAgICAgICAgbWFwc1RvOiAnZGF0ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ3RpbWUnLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgICBsZWZ0OiB7XG4gICAgICAgIG1hcHNUbzogJ3ZhbHVlJyxcbiAgICAgICAgc2NhbGVUeXBlOiAnbGluZWFyJyxcbiAgICAgICAgdGl0bGU6ICcnXG4gICAgICB9LFxuICAgIH0sICBcbiAgfTtcblxuICBjaGFydERhdGE6IHtncm91cDogc3RyaW5nOyB2YWx1ZTogYW55OyBkYXRlOiBzdHJpbmd9W10gPSBbXTtcbiAgcHJpdmF0ZSBfcXVlcnk6IFNlYXJjaFF1ZXJ5O1xuICByZWZyZXNoaW5nUmVxdWVzdDogYm9vbGVhbjtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBwcml2YXRlIF93aWRnZXRDb25maWc6IEljaGFydHMgfCB1bmRlZmluZWQ7XG4gIHJhbmdlVmFsdWVzID0gW107XG5cbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKGM6IEljaGFydHMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWcgPSBjO1xuICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvaWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJY2hhcnRzIHtcbiAgICBzdG9yZWRRdWVyeTogc3RyaW5nO1xuICAgIGZvcm1WYWx1ZToge1xuICAgICAgICBjaGFydFR5cGU6ICBzdHJpbmc7XG4gICAgICAgIC8vIG51bWJlciBvZiBpdGVtcyB0byBiZSBmZXRjaGVkXG4gICAgICAgIHNpemU6IG51bWJlcjtcbiAgICAgICAgYWdncmVnYXRpb246IHN0cmluZztcbiAgICAgICAgc3RvcmVkUXVlcnk6IHN0cmluZztcbiAgICAgICAgaGlzdG9ncmFtVHlwZTogc3RyaW5nO1xuICAgICAgICBpbnRlcnZhbDogbnVtYmVyO1xuICAgICAgICBzdGFydGluZ3BvaW50OiBudW1iZXI7XG4gICAgfTtcbiAgICBhZ2dyZWdhdGlvblR5cGU6IHN0cmluZztcbn1cblxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvaWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJY2hhcnRzIHtcbiAgICBzdG9yZWRRdWVyeTogc3RyaW5nO1xuICAgIGZvcm1WYWx1ZToge1xuICAgICAgICBjaGFydFR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIGZldGNoZWRcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgICAgICBhZ2dyZWdhdGlvbjogc3RyaW5nO1xuICAgICAgICBzdG9yZWRRdWVyeTogc3RyaW5nO1xuICAgICAgICBoaXN0b2dyYW1UeXBlOiBzdHJpbmc7XG4gICAgICAgIGF0dHJpYnV0TWV0cmljOiBzdHJpbmc7XG4gICAgICAgIG1ldHJpYzogc3RyaW5nO1xuICAgICAgICAvLyByZXZlcnQgc29ydCBkaXJlY3Rpb24gZnJvbSBBU0MgdG8gREVTQ1xuICAgICAgICBzb3J0UmV2ZXJ0PzogYm9vbGVhbjtcbiAgICAgICAgaW50ZXJ2YWw6IG51bWJlcjtcbiAgICAgICAgbWluRG9jQ291bnQ6IG51bWJlcjtcbiAgICAgICAgc3RhcnRpbmdwb2ludDogbnVtYmVyO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICB4QXhlOiBzdHJpbmc7XG4gICAgICAgIHlBeGU6IHN0cmluZztcbiAgICB9O1xuICAgIGFnZ3JlZ2F0aW9uVHlwZTogc3RyaW5nO1xufVxuXG4iXX0=