@provoly/dashboard 1.4.14 → 1.4.16

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 (203) hide show
  1. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +7 -7
  2. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +3 -3
  3. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +7 -7
  4. package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +10 -10
  5. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +6 -6
  6. package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +3 -3
  7. package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +3 -3
  8. package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +10 -10
  9. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +10 -15
  10. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +8 -8
  11. package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +5 -5
  12. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +5 -5
  13. package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +6 -6
  14. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +5 -5
  15. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  16. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +5 -5
  17. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +6 -6
  18. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
  19. package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +5 -5
  20. package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +6 -6
  21. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +7 -7
  22. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
  23. package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +5 -5
  24. package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +5 -5
  25. package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +5 -5
  26. package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +5 -5
  27. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +3 -3
  28. package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +3 -3
  29. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +5 -5
  30. package/esm2022/admin/components/admin-links/admin-links.component.mjs +5 -5
  31. package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +5 -5
  32. package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +5 -5
  33. package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +5 -5
  34. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +4 -5
  35. package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +5 -6
  36. package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +5 -5
  37. package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +5 -5
  38. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +4 -5
  39. package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +5 -5
  40. package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +5 -5
  41. package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +5 -5
  42. package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +5 -5
  43. package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +5 -5
  44. package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +5 -5
  45. package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +4 -5
  46. package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +5 -5
  47. package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +6 -6
  48. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +6 -6
  49. package/esm2022/admin/components/admin-user/admin-user.component.mjs +5 -5
  50. package/esm2022/admin/components/association/association.component.mjs +4 -5
  51. package/esm2022/components/card/card.component.mjs +5 -6
  52. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +6 -6
  53. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +7 -7
  54. package/esm2022/components/stepper/stepper.component.mjs +3 -4
  55. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +5 -5
  56. package/esm2022/dataset/components/dataset-version-form/dataset-version-form.component.mjs +6 -7
  57. package/esm2022/filters/date/date-filter.component.mjs +5 -6
  58. package/esm2022/filters/list/list-filter.component.mjs +6 -7
  59. package/esm2022/filters/number/number-filter.component.mjs +5 -6
  60. package/esm2022/filters/text/text-filter.component.mjs +5 -6
  61. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  62. package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +7 -7
  63. package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +6 -6
  64. package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +6 -6
  65. package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +6 -7
  66. package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +4 -4
  67. package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +3 -4
  68. package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +6 -6
  69. package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +7 -8
  70. package/esm2022/lib/core/components/icon/icon.component.mjs +3 -3
  71. package/esm2022/lib/core/components/modal/modal.component.mjs +5 -6
  72. package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +5 -5
  73. package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
  74. package/esm2022/lib/core/components/range/range.component.mjs +5 -6
  75. package/esm2022/lib/core/components/select/select.component.mjs +3 -3
  76. package/esm2022/lib/core/components/select-image/select-image.component.mjs +5 -5
  77. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +6 -6
  78. package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +3 -3
  79. package/esm2022/lib/core/components/status-modal/status-modal.component.mjs +5 -5
  80. package/esm2022/lib/core/components/tabs/tab-group.component.mjs +3 -3
  81. package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -4
  82. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +9 -9
  83. package/esm2022/lib/core/store/search/search.effects.mjs +4 -2
  84. package/esm2022/lib/core/store/search/search.service.mjs +3 -7
  85. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +3 -3
  86. package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +2 -2
  87. package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +8 -8
  88. package/esm2022/lib/dashboard/components/dashboard.component.mjs +12 -12
  89. package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +5 -5
  90. package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +5 -6
  91. package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +3 -3
  92. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +6 -6
  93. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +10 -10
  94. package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +2 -2
  95. package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +2 -2
  96. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +7 -7
  97. package/esm2022/lib/dashboard/resultset-utils.mjs +7 -8
  98. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -4
  99. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +13 -24
  100. package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +3 -3
  101. package/esm2022/notification/components/notification/content/notification-content.component.mjs +3 -3
  102. package/esm2022/notification/components/notification/notification.component.mjs +5 -5
  103. package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +7 -7
  104. package/esm2022/pipeline/components/pipeline-editor/graph-serializer.utils.mjs +2 -2
  105. package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +5 -5
  106. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +9 -9
  107. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +6 -6
  108. package/esm2022/presentation/components/presentation.component.mjs +6 -6
  109. package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +5 -5
  110. package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
  111. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +9 -9
  112. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
  113. package/esm2022/search/components/choose-widget/choose-widget.component.mjs +5 -5
  114. package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +9 -9
  115. package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
  116. package/esm2022/search/search-home/search-home.component.mjs +3 -3
  117. package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +3 -3
  118. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
  119. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +8 -8
  120. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +6 -6
  121. package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +3 -3
  122. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +7 -7
  123. package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +6 -6
  124. package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +7 -7
  125. package/esm2022/search/search-tools/search-tools.component.mjs +13 -13
  126. package/esm2022/toolbox/components/named-query/named-query.component.mjs +5 -5
  127. package/esm2022/toolbox/components/save-view/save-view.component.mjs +10 -10
  128. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +8 -8
  129. package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +5 -6
  130. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +3 -3
  131. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +4 -4
  132. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
  133. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -12
  134. package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +13 -7
  135. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +7 -7
  136. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +7 -7
  137. package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +2 -2
  138. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +10 -10
  139. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +2 -2
  140. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
  141. package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +4 -5
  142. package/esm2022/widgets/widget-template/component/widget-template.component.mjs +7 -7
  143. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +10 -10
  144. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +9 -9
  145. package/fesm2022/provoly-dashboard-admin.mjs +171 -175
  146. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  147. package/fesm2022/provoly-dashboard-components-card.mjs +4 -5
  148. package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
  149. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
  150. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  151. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +6 -6
  152. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  153. package/fesm2022/provoly-dashboard-components-stepper.mjs +2 -3
  154. package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
  155. package/fesm2022/provoly-dashboard-dataset.mjs +14 -14
  156. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  157. package/fesm2022/provoly-dashboard-filters-date.mjs +4 -5
  158. package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
  159. package/fesm2022/provoly-dashboard-filters-list.mjs +4 -5
  160. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  161. package/fesm2022/provoly-dashboard-filters-number.mjs +4 -5
  162. package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
  163. package/fesm2022/provoly-dashboard-filters-text.mjs +4 -5
  164. package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
  165. package/fesm2022/provoly-dashboard-notification.mjs +4 -4
  166. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  167. package/fesm2022/provoly-dashboard-pipeline.mjs +21 -21
  168. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  169. package/fesm2022/provoly-dashboard-presentation.mjs +14 -14
  170. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  171. package/fesm2022/provoly-dashboard-restitution.mjs +6 -6
  172. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  173. package/fesm2022/provoly-dashboard-search.mjs +35 -35
  174. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  175. package/fesm2022/provoly-dashboard-toolbox.mjs +25 -25
  176. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  177. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +2 -2
  178. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  179. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +3 -3
  180. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  181. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -1
  182. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
  183. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +10 -10
  184. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  185. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +11 -5
  186. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
  187. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -5
  188. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  189. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +8 -8
  190. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  191. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +9 -9
  192. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  193. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +6 -6
  194. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  195. package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +7 -7
  196. package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
  197. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +11 -11
  198. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  199. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +7 -7
  200. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  201. package/fesm2022/provoly-dashboard.mjs +204 -219
  202. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  203. package/package.json +1 -1
@@ -9,16 +9,16 @@ import { SearchMultiClassActions } from '../search-multi-class/store/search-mult
9
9
  import { SearchMultiClassSelectors } from '../search-multi-class/store/search-multi-class.selectors';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ngrx/store";
12
- import * as i2 from "@angular/common";
13
- import * as i3 from "@provoly/dashboard";
14
- import * as i4 from "@angular/forms";
15
- import * as i5 from "../search-home/search-home.component";
16
- import * as i6 from "../search-mono-class/components/search-mono-class/search-mono-class.component";
17
- import * as i7 from "../search-multi-class/components/search-multi-class/search-multi-class.component";
18
- import * as i8 from "../search-fulltext/search-fulltext/search-fulltext.component";
19
- import * as i9 from "../components/save-query-button/save-query-button.component";
20
- import * as i10 from "../components/edit-named-query/edit-named-query.component";
21
- import * as i11 from "../components/choose-widget/choose-widget.component";
12
+ import * as i2 from "@provoly/dashboard";
13
+ import * as i3 from "@angular/forms";
14
+ import * as i4 from "../search-home/search-home.component";
15
+ import * as i5 from "../search-mono-class/components/search-mono-class/search-mono-class.component";
16
+ import * as i6 from "../search-multi-class/components/search-multi-class/search-multi-class.component";
17
+ import * as i7 from "../search-fulltext/search-fulltext/search-fulltext.component";
18
+ import * as i8 from "../components/save-query-button/save-query-button.component";
19
+ import * as i9 from "../components/edit-named-query/edit-named-query.component";
20
+ import * as i10 from "../components/choose-widget/choose-widget.component";
21
+ import * as i11 from "@angular/common";
22
22
  export class PrySearchToolsComponent {
23
23
  get isNewMono() {
24
24
  return this.isSearchCriteria && this.isSearchMono;
@@ -136,11 +136,11 @@ export class PrySearchToolsComponent {
136
136
  this.store.dispatch(DataSourceActions.namedQuery.updateCurrentEdit({ currentEdit: { visibility: $event } }));
137
137
  }
138
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySearchToolsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PrySearchToolsComponent, selector: "pry-search-tools", host: { properties: { "class.o-pry-search-tools-wrapper": "this.class", "class.is-close": "this.searchToolsClose" } }, ngImport: i0, template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back a-tooltip\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [attr.data-tooltip]=\"'@pry.search.button.backSearch' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n <button\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n <ng-container *ngIf=\"editInProgress$ | async\">\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n </ng-container>\n <ng-container *ngIf=\"(editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async); else noEdit\">\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n </ng-container>\n <ng-template #noEdit>\n <ng-container *ngIf=\"isSearchCriteria && !(loading$ | async); else noSearch\">\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n <ng-container *ngIf=\"isSearchMono; else isMultiSearch\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-template #isMultiSearch>\n <pry-search-multi-class></pry-search-multi-class>\n </ng-template>\n </div>\n\n <div class=\"o-pry-search-tools__content__button-search\">\n <ng-container *ngIf=\"isSearchCriteria\">\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n </ng-container>\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\" *ngIf=\"!isSearchCriteria\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noSearch>\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n </ng-template>\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "component", type: i3.PryShareComponent, selector: "pry-share", inputs: ["labelProperty", "valueProperty"] }, { kind: "component", type: i5.PrySearchHomeComponent, selector: "pry-search-home", inputs: ["searchFulltextTpl", "isMoreList"], outputs: ["changeListView", "changeSearchCriteria"] }, { kind: "component", type: i6.PrySearchMonoClassComponent, selector: "pry-search-mono-class" }, { kind: "component", type: i7.PrySearchMultiClassComponent, selector: "pry-search-multi-class" }, { kind: "component", type: i8.PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: ["mode", "launchButton", "currentEdit"], outputs: ["searchChange"] }, { kind: "component", type: i9.PrySaveQueryButtonComponent, selector: "pry-save-query-button", inputs: ["editInProgress", "currentEdit", "currentEditType", "fulltextValid", "multiValid", "monoValid", "isNotFulltext", "isMonoSearch", "fulltextSearch", "saveDisabled"] }, { kind: "component", type: i10.EditNamedQueryComponent, selector: "pry-edit-named-query", inputs: ["fromWidget"], outputs: ["searchFulltextChange", "cancelled", "searched"] }, { kind: "component", type: i11.ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PrySearchToolsComponent, selector: "pry-search-tools", host: { properties: { "class.o-pry-search-tools-wrapper": "this.class", "class.is-close": "this.searchToolsClose" } }, ngImport: i0, template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n >\n @if (((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back a-tooltip\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'@pry.search.button.backSearch' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n }\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n @if (((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria) {\n <button\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n }\n @if (editInProgress$ | async) {\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n }\n @if ((editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async)) {\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n } @else {\n @if (isSearchCriteria && !(loading$ | async)) {\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n @if (isSearchMono) {\n <pry-search-mono-class></pry-search-mono-class>\n } @else {\n <pry-search-multi-class></pry-search-multi-class>\n }\n </div>\n <div class=\"o-pry-search-tools__content__button-search\">\n @if (isSearchCriteria) {\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n }\n @if (!isSearchCriteria) {\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n }\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n } @else {\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n }\n }\n\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "component", type: i2.PryShareComponent, selector: "pry-share", inputs: ["labelProperty", "valueProperty"] }, { kind: "component", type: i4.PrySearchHomeComponent, selector: "pry-search-home", inputs: ["searchFulltextTpl", "isMoreList"], outputs: ["changeListView", "changeSearchCriteria"] }, { kind: "component", type: i5.PrySearchMonoClassComponent, selector: "pry-search-mono-class" }, { kind: "component", type: i6.PrySearchMultiClassComponent, selector: "pry-search-multi-class" }, { kind: "component", type: i7.PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: ["mode", "launchButton", "currentEdit"], outputs: ["searchChange"] }, { kind: "component", type: i8.PrySaveQueryButtonComponent, selector: "pry-save-query-button", inputs: ["editInProgress", "currentEdit", "currentEditType", "fulltextValid", "multiValid", "monoValid", "isNotFulltext", "isMonoSearch", "fulltextSearch", "saveDisabled"] }, { kind: "component", type: i9.EditNamedQueryComponent, selector: "pry-edit-named-query", inputs: ["fromWidget"], outputs: ["searchFulltextChange", "cancelled", "searched"] }, { kind: "component", type: i10.ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
140
140
  }
141
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySearchToolsComponent, decorators: [{
142
142
  type: Component,
143
- args: [{ selector: 'pry-search-tools', template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back a-tooltip\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [attr.data-tooltip]=\"'@pry.search.button.backSearch' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n <button\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n <ng-container *ngIf=\"editInProgress$ | async\">\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n </ng-container>\n <ng-container *ngIf=\"(editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async); else noEdit\">\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n </ng-container>\n <ng-template #noEdit>\n <ng-container *ngIf=\"isSearchCriteria && !(loading$ | async); else noSearch\">\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n <ng-container *ngIf=\"isSearchMono; else isMultiSearch\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-template #isMultiSearch>\n <pry-search-multi-class></pry-search-multi-class>\n </ng-template>\n </div>\n\n <div class=\"o-pry-search-tools__content__button-search\">\n <ng-container *ngIf=\"isSearchCriteria\">\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n </ng-container>\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\" *ngIf=\"!isSearchCriteria\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noSearch>\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n </ng-template>\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n" }]
143
+ args: [{ selector: 'pry-search-tools', template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n >\n @if (((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back a-tooltip\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n [attr.data-tooltip]=\"'@pry.search.button.backSearch' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n }\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n @if (((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria) {\n <button\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n }\n @if (editInProgress$ | async) {\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n }\n @if ((editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async)) {\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n } @else {\n @if (isSearchCriteria && !(loading$ | async)) {\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n @if (isSearchMono) {\n <pry-search-mono-class></pry-search-mono-class>\n } @else {\n <pry-search-multi-class></pry-search-multi-class>\n }\n </div>\n <div class=\"o-pry-search-tools__content__button-search\">\n @if (isSearchCriteria) {\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n }\n @if (!isSearchCriteria) {\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n }\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n } @else {\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n }\n }\n\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n" }]
144
144
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { class: [{
145
145
  type: HostBinding,
146
146
  args: ['class.o-pry-search-tools-wrapper']
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
148
148
  type: HostBinding,
149
149
  args: ['class.is-close']
150
150
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRvb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFDTCxZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsc0JBQXNCLEVBQ3RCLFlBQVksRUFHWixlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1yRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3BELENB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Q0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQzs4R0F0SlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK0tDN0JwQyxnOUlBMEdBOzsyRkQ3RWEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQjswRUFJcUIsS0FBSztzQkFBckQsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQ2hCLGdCQUFnQjtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3NBY3Rpb25zLFxuICBDbGFzc1N0YXRlLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZVN0YXRlLFxuICBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU3RhdGUsXG4gIE5hbWVkUXVlcnksXG4gIE5hbWVkUXVlcnlUeXBlc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTZWFyY2hGdWxsdGV4dENoYW5nZSB9IGZyb20gJy4uL3NlYXJjaC1mdWxsdGV4dC9zZWFyY2gtZnVsbHRleHQvc2VhcmNoLWZ1bGx0ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vc2VhcmNoLW1vbm8tY2xhc3Mvc3RvcmUvc2VhcmNoLW1vbm8tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbW9uby1jbGFzcy9zdG9yZS9zZWFyY2gtbW9uby1jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc0FjdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIH0gZnJvbSAnLi4vc2VhcmNoLW11bHRpLWNsYXNzL3N0b3JlL3NlYXJjaC1tdWx0aS1jbGFzcy5yZWR1Y2VyJztcbmltcG9ydCB7IFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1zZWFyY2gtdG9vbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlTZWFyY2hUb29sc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Muby1wcnktc2VhcmNoLXRvb2xzLXdyYXBwZXInKSBjbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtY2xvc2UnKSBzZWFyY2hUb29sc0Nsb3NlID0gZmFsc2U7XG5cbiAgc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VhcmNoTW9ub0NsYXNzVmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNSZW5hbWUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGlzU2VhcmNoQ3JpdGVyaWEgPSBmYWxzZTtcbiAgaXNTZWFyY2hNb25vID0gZmFsc2U7XG4gIGlzU2VhcmNoRnVsbFRleHQgPSBmYWxzZTtcbiAgaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gZmFsc2U7XG4gIGlzTW9yZUxpc3QgPSBmYWxzZTtcbiAgd2lkZ2V0VHlwZTogc3RyaW5nID0gJ3RhYmxlJztcblxuICBnZXQgaXNOZXdNb25vKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VhcmNoQ3JpdGVyaWEgJiYgdGhpcy5pc1NlYXJjaE1vbm87XG4gIH1cblxuICBnZXQgaXNFZGl0TW9ubyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudEVkaXRUeXBlJCwgdGhpcy5pc1JlbmFtZSRdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZSwgaXNSZW5hbWVdKSA9PiB0eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUyAmJiAhaXNSZW5hbWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldEljb24gPSB7XG4gICAgY2FyYWN0ZXJpc3RpcXVlOiAnZGVmYXVsdCcsXG4gICAgbGlldTogJ2RlZmF1bHQnLFxuICAgIG1ldGVvOiAnZGVmYXVsdCcsXG4gICAgdXNhZ2VyOiAncHJvZmlsJyxcbiAgICB2YWxldXJfZm9uY2llcmU6ICdkZWZhdWx0JyxcbiAgICB2ZWhpY3VsZTogJ2NhcidcbiAgfSBhcyB7IFtjbGF6ejogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgaXRlbXM6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiA9IG9mKFtcbiAgICB7IGlkOiAxLCBuYW1lOiAnMScgfSxcbiAgICB7IGlkOiAyLCBuYW1lOiAnMicgfSxcbiAgICB7IGlkOiAzLCBuYW1lOiAnMycgfSxcbiAgICB7IGlkOiA0LCBuYW1lOiAnNCcgfVxuICBdKTtcbiAgZWRpdEluUHJvZ3Jlc3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjdXJyZW50RWRpdCQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeSB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRFZGl0VHlwZSQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeVR5cGVzIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgRlVMTF9URVhUID0gTmFtZWRRdWVyeVR5cGVzLkZVTExfVEVYVDtcbiAgcmVhZG9ubHkgTU9OT19DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTO1xuICByZWFkb25seSBNVUxUSV9DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUztcbiAgc2VhcmNoRnVsbHRleHRUZW1wPzogU2VhcmNoRnVsbHRleHRDaGFuZ2U7XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8RGF0YVNvdXJjZVN0YXRlIHwgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIHwgRmllbGRTdGF0ZSB8IENsYXNzU3RhdGU+KSB7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuaXNMb2FkaW5nKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuc2VhcmNoTW9ub0NsYXNzVmFsaWQkID0gdGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoTW9ub0NsYXNzU2VsZWN0b3JzLnNlYXJjaE1vbm9DbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuZWRpdEluUHJvZ3Jlc3MkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0SW5Qcm9ncmVzcyk7XG4gICAgdGhpcy5jdXJyZW50RWRpdFR5cGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdFR5cGUpO1xuICAgIHRoaXMuY3VycmVudEVkaXQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdCk7XG4gICAgdGhpcy5pc1JlbmFtZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmlzUmVuYW1lKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmVkaXRJblByb2dyZXNzJCwgdGhpcy5pc1JlbmFtZSRdKS5zdWJzY3JpYmUoKFtlZGl0SW5Qcm9ncmVzcywgaXNSZW5hbWVdKSA9PiB7XG4gICAgICAgIGlmIChlZGl0SW5Qcm9ncmVzcyAmJiB0aGlzLnNlYXJjaFRvb2xzQ2xvc2UgJiYgIWlzUmVuYW1lKSB7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvblNlYXJjaENyaXRlcmlhKCkge1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkub3BlbkVkaXQoe1xuICAgICAgICBjdXJyZW50RWRpdDoge1xuICAgICAgICAgIHNvdXJjZVR5cGU6ICduYW1lZFF1ZXJ5JyxcbiAgICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgICByZXF1ZXN0OiB7IHR5cGU6IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUywgZnVsbFNlYXJjaDogbnVsbCwgZmllbGRzOiBbXSwgbXVsdGlUeXBlOiAnQU5EJyB9LFxuICAgICAgICAgIG5hbWU6ICcnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VhcmNoVG9vbHMoKSB7XG4gICAgdGhpcy5pc1NlYXJjaENyaXRlcmlhID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5zdG9wRWRpdCgpKTtcbiAgICB0aGlzLnJlc2l6ZVNjcmVlbigpO1xuICB9XG5cbiAgb25Nb25vU2VhcmNoKCkge1xuICAgIHRoaXMuaXNTZWFyY2hNb25vID0gIXRoaXMuaXNTZWFyY2hNb25vO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBvbkNoYW5nZUxpc3RWaWV3KGlzTW9yZUxpc3Q6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTW9yZUxpc3QgPSAhaXNNb3JlTGlzdDtcbiAgfVxuXG4gIG9uU2VhcmNoRnVsbHRleHRDaGFuZ2UocGF5bG9hZDogU2VhcmNoRnVsbHRleHRDaGFuZ2UpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gcGF5bG9hZC52YWx1ZSAhPT0gJyc7XG4gICAgICB0aGlzLnNlYXJjaEZ1bGx0ZXh0VGVtcCA9IHBheWxvYWQ7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgb25TZWFyY2goKSB7XG4gICAgaWYgKHRoaXMuaXNTZWFyY2hNb25vKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE1vbm9DbGFzc0FjdGlvbnMuc2VhcmNoKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE11bHRpQ2xhc3NBY3Rpb25zLnNlYXJjaCgpKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0SW5QcmVzZW50YXRpb24oe1xuICAgICAgICBpZDogREVGQVVMVF9OQU1FRF9RVUVSWV9JRCxcbiAgICAgICAgd2lkZ2V0VHlwZTogdGhpcy53aWRnZXRUeXBlXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkNoYW5nZVBhbmVsKCkge1xuICAgIHRoaXMuc2VhcmNoVG9vbHNDbG9zZSA9ICF0aGlzLnNlYXJjaFRvb2xzQ2xvc2U7XG4gICAgdGhpcy5yZXNpemVTY3JlZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplU2NyZWVuKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93Py5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpLCA0MDApO1xuICB9XG5cbiAgc2VsZWN0V2lkZ2V0KCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy53aWRnZXRUeXBlID0gJGV2ZW50O1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gIH1cblxuICB1cGRhdGVWaXNpYmlsaXR5KCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnVwZGF0ZUN1cnJlbnRFZGl0KHsgY3VycmVudEVkaXQ6IHsgdmlzaWJpbGl0eTogJGV2ZW50IH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzXCJcbiAgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIlxuICBbY2xhc3MuaXMtbW9ub109XCJpc05ld01vbm8gfHwgKGlzRWRpdE1vbm8kIHwgYXN5bmMpXCJcbj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtYmFjayBhLXRvb2x0aXBcIlxuICAgIChjbGljayk9XCJvblNlYXJjaFRvb2xzKClcIlxuICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICAqbmdJZj1cIigoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpICYmICEoaXNSZW5hbWUkIHwgYXN5bmMpKSB8fCBpc1NlYXJjaENyaXRlcmlhXCJcbiAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5iYWNrU2VhcmNoJyB8IGkxOG5cIlxuICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXG4gID5cbiAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFycm93X2JhY2tcIiBbd2lkdGhdPVwiMjRcIiBbaGVpZ2h0XT1cIjI0XCIgW2FuaW1hdGlvbl09XCJmYWxzZVwiPjwvcHJ5LWljb24+XG4gICAgPHNwYW4+e3sgJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5iYWNrU2VhcmNoJyB8IGkxOG4gfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19jb250ZW50XCIgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIigoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpICYmICEoaXNSZW5hbWUkIHwgYXN5bmMpKSB8fCBpc1NlYXJjaENyaXRlcmlhXCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtbGluay1saWtlIHUtc2VsZi1lbmRcIlxuICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgaWQ9XCJidG5fcmVzZXRcIlxuICAgID5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwicmVzZXRcIiBbd2lkdGhdPVwiMThcIiBbaGVpZ2h0XT1cIjE4XCI+PC9wcnktaWNvbj5cbiAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24ucmVzZXQnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0SW5Qcm9ncmVzcyQgfCBhc3luY1wiPlxuICAgICAgPHByeS1zaGFyZSBbbmdNb2RlbF09XCIoY3VycmVudEVkaXQkIHwgYXN5bmMpPy52aXNpYmlsaXR5XCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVmlzaWJpbGl0eSgkZXZlbnQpXCI+PC9wcnktc2hhcmU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihlZGl0SW5Qcm9ncmVzcyQgfCBhc3luYykgJiYgIShpc1JlbmFtZSQgfCBhc3luYykgJiYgIShsb2FkaW5nJCB8IGFzeW5jKTsgZWxzZSBub0VkaXRcIj5cbiAgICAgIDxwcnktZWRpdC1uYW1lZC1xdWVyeVxuICAgICAgICAoc2VhcmNoRnVsbHRleHRDaGFuZ2UpPVwib25TZWFyY2hGdWxsdGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNhbmNlbGxlZCk9XCJvblNlYXJjaFRvb2xzKClcIlxuICAgICAgPjwvcHJ5LWVkaXQtbmFtZWQtcXVlcnk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNub0VkaXQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWFyY2hDcml0ZXJpYSAmJiAhKGxvYWRpbmckIHwgYXN5bmMpOyBlbHNlIG5vU2VhcmNoXCI+XG4gICAgICAgIDxwcnktdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX3RvZ2dsZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaXNTZWFyY2hNb25vXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vbm9TZWFyY2goKVwiXG4gICAgICAgICAgW2Fsd2F5c0FjdGl2ZV09XCJ0cnVlXCJcbiAgICAgICAgICBtb2RlPVwiYWN0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IChpc1NlYXJjaE1vbm8gPyAnQHByeS5zZWFyY2guYnV0dG9uLm1vbm8nIDogJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5tdWx0aScpIHwgaTE4biB9fVxuICAgICAgICA8L3ByeS10b2dnbGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2Z1bGxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWFyY2hNb25vOyBlbHNlIGlzTXVsdGlTZWFyY2hcIj5cbiAgICAgICAgICAgIDxwcnktc2VhcmNoLW1vbm8tY2xhc3M+PC9wcnktc2VhcmNoLW1vbm8tY2xhc3M+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpc011bHRpU2VhcmNoPlxuICAgICAgICAgICAgPHByeS1zZWFyY2gtbXVsdGktY2xhc3M+PC9wcnktc2VhcmNoLW11bHRpLWNsYXNzPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2J1dHRvbi1zZWFyY2hcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWFyY2hDcml0ZXJpYVwiPlxuICAgICAgICAgICAgPHByeS1jaG9vc2Utd2lkZ2V0IChzZWxlY3RlZCk9XCJzZWxlY3RXaWRnZXQoJGV2ZW50KVwiPjwvcHJ5LWNob29zZS13aWRnZXQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uU2VhcmNoVG9vbHMoKVwiICpuZ0lmPVwiIWlzU2VhcmNoQ3JpdGVyaWFcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24uY2FuY2VsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICghKHNlYXJjaE11bHRpQ2xhc3NWYWxpZCQgfCBhc3luYykgJiYgIWlzU2VhcmNoTW9ubykgfHwgKCEoc2VhcmNoTW9ub0NsYXNzVmFsaWQkIHwgYXN5bmMpICYmIGlzU2VhcmNoTW9ubylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInNlYXJjaC1saW5lXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24uc2VhcmNoJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub1NlYXJjaD5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2Z1bGxcIj5cbiAgICAgICAgPHByeS1zZWFyY2gtaG9tZVxuICAgICAgICAgIGNsYXNzPVwiby1wcnktc2VhcmNoLWhvbWVcIlxuICAgICAgICAgIFtpc01vcmVMaXN0XT1cImlzTW9yZUxpc3RcIlxuICAgICAgICAgIFtzZWFyY2hGdWxsdGV4dFRwbF09XCJzZWFyY2hGdWxsdGV4dFRwbFwiXG4gICAgICAgICAgKGNoYW5nZUxpc3RWaWV3KT1cIm9uQ2hhbmdlTGlzdFZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgKGNoYW5nZVNlYXJjaENyaXRlcmlhKT1cIm9uU2VhcmNoQ3JpdGVyaWEoKVwiXG4gICAgICAgID48L3ByeS1zZWFyY2gtaG9tZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWFyY2hGdWxsdGV4dFRwbD5cbiAgICAgICAgICA8cHJ5LXNlYXJjaC1mdWxsdGV4dCBtb2RlPVwidmVydGljYWxcIiAoc2VhcmNoQ2hhbmdlKT1cIm9uU2VhcmNoRnVsbHRleHRDaGFuZ2UoJGV2ZW50KVwiPjwvcHJ5LXNlYXJjaC1mdWxsdGV4dD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19mb290ZXJcIiBbY2xhc3MuaXMtY2xvc2VdPVwic2VhcmNoVG9vbHNDbG9zZVwiPlxuICAgIDxwcnktc2F2ZS1xdWVyeS1idXR0b25cbiAgICAgIFtlZGl0SW5Qcm9ncmVzc109XCJlZGl0SW5Qcm9ncmVzcyQgfCBhc3luY1wiXG4gICAgICBbY3VycmVudEVkaXRdPVwiY3VycmVudEVkaXQkIHwgYXN5bmNcIlxuICAgICAgW2N1cnJlbnRFZGl0VHlwZV09XCJjdXJyZW50RWRpdFR5cGUkIHwgYXN5bmNcIlxuICAgICAgW2Z1bGx0ZXh0VmFsaWRdPVwiaXNTZWFyY2hGdWxsdGV4dFZhbGlkXCJcbiAgICAgIFttdWx0aVZhbGlkXT1cInNlYXJjaE11bHRpQ2xhc3NWYWxpZCQgfCBhc3luY1wiXG4gICAgICBbbW9ub1ZhbGlkXT1cInNlYXJjaE1vbm9DbGFzc1ZhbGlkJCB8IGFzeW5jXCJcbiAgICAgIFtpc05vdEZ1bGx0ZXh0XT1cImlzU2VhcmNoQ3JpdGVyaWFcIlxuICAgICAgW2lzTW9ub1NlYXJjaF09XCJpc1NlYXJjaE1vbm9cIlxuICAgICAgW2Z1bGx0ZXh0U2VhcmNoXT1cInNlYXJjaEZ1bGx0ZXh0VGVtcFwiXG4gICAgPjwvcHJ5LXNhdmUtcXVlcnktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRvb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFDTCxZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsc0JBQXNCLEVBQ3RCLFlBQVksRUFHWixlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1yRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFVBQVUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUM1RSxDQUFDO0lBQ0osQ0FBQztJQTJCRCxZQUFvQixLQUErRTtRQUEvRSxVQUFLLEdBQUwsS0FBSyxDQUEwRTtRQWxEbEQsVUFBSyxHQUFHLElBQUksQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPeEQscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBWTdCLFlBQU8sR0FBRztZQUNSLGVBQWUsRUFBRSxTQUFTO1lBQzFCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsZUFBZSxFQUFFLFNBQVM7WUFDMUIsUUFBUSxFQUFFLEtBQUs7U0FDZSxDQUFDO1FBRWpDLFVBQUssR0FBNkIsRUFBRSxDQUFDO1lBQ25DLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1NBQ3JCLENBQUMsQ0FBQztRQUlNLGNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUczQyxRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1YsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQzdGLElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEMsV0FBVyxFQUFFO2dCQUNYLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO2dCQUM5RixJQUFJLEVBQUUsRUFBRTthQUNUO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUE2QjtRQUNsRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7UUFDcEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDO1lBQzFDLEVBQUUsRUFBRSxzQkFBc0I7WUFDMUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQzs4R0F0SlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK0tDN0JwQyw4dklBMEdBOzsyRkQ3RWEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQjswRUFJcUIsS0FBSztzQkFBckQsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQ2hCLGdCQUFnQjtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3NBY3Rpb25zLFxuICBDbGFzc1N0YXRlLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZVN0YXRlLFxuICBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU3RhdGUsXG4gIE5hbWVkUXVlcnksXG4gIE5hbWVkUXVlcnlUeXBlc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTZWFyY2hGdWxsdGV4dENoYW5nZSB9IGZyb20gJy4uL3NlYXJjaC1mdWxsdGV4dC9zZWFyY2gtZnVsbHRleHQvc2VhcmNoLWZ1bGx0ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vc2VhcmNoLW1vbm8tY2xhc3Mvc3RvcmUvc2VhcmNoLW1vbm8tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbW9uby1jbGFzcy9zdG9yZS9zZWFyY2gtbW9uby1jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc0FjdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIH0gZnJvbSAnLi4vc2VhcmNoLW11bHRpLWNsYXNzL3N0b3JlL3NlYXJjaC1tdWx0aS1jbGFzcy5yZWR1Y2VyJztcbmltcG9ydCB7IFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1zZWFyY2gtdG9vbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlTZWFyY2hUb29sc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Muby1wcnktc2VhcmNoLXRvb2xzLXdyYXBwZXInKSBjbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtY2xvc2UnKSBzZWFyY2hUb29sc0Nsb3NlID0gZmFsc2U7XG5cbiAgc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VhcmNoTW9ub0NsYXNzVmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNSZW5hbWUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGlzU2VhcmNoQ3JpdGVyaWEgPSBmYWxzZTtcbiAgaXNTZWFyY2hNb25vID0gZmFsc2U7XG4gIGlzU2VhcmNoRnVsbFRleHQgPSBmYWxzZTtcbiAgaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gZmFsc2U7XG4gIGlzTW9yZUxpc3QgPSBmYWxzZTtcbiAgd2lkZ2V0VHlwZTogc3RyaW5nID0gJ3RhYmxlJztcblxuICBnZXQgaXNOZXdNb25vKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VhcmNoQ3JpdGVyaWEgJiYgdGhpcy5pc1NlYXJjaE1vbm87XG4gIH1cblxuICBnZXQgaXNFZGl0TW9ubyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudEVkaXRUeXBlJCwgdGhpcy5pc1JlbmFtZSRdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZSwgaXNSZW5hbWVdKSA9PiB0eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUyAmJiAhaXNSZW5hbWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldEljb24gPSB7XG4gICAgY2FyYWN0ZXJpc3RpcXVlOiAnZGVmYXVsdCcsXG4gICAgbGlldTogJ2RlZmF1bHQnLFxuICAgIG1ldGVvOiAnZGVmYXVsdCcsXG4gICAgdXNhZ2VyOiAncHJvZmlsJyxcbiAgICB2YWxldXJfZm9uY2llcmU6ICdkZWZhdWx0JyxcbiAgICB2ZWhpY3VsZTogJ2NhcidcbiAgfSBhcyB7IFtjbGF6ejogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgaXRlbXM6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiA9IG9mKFtcbiAgICB7IGlkOiAxLCBuYW1lOiAnMScgfSxcbiAgICB7IGlkOiAyLCBuYW1lOiAnMicgfSxcbiAgICB7IGlkOiAzLCBuYW1lOiAnMycgfSxcbiAgICB7IGlkOiA0LCBuYW1lOiAnNCcgfVxuICBdKTtcbiAgZWRpdEluUHJvZ3Jlc3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjdXJyZW50RWRpdCQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeSB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRFZGl0VHlwZSQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeVR5cGVzIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgRlVMTF9URVhUID0gTmFtZWRRdWVyeVR5cGVzLkZVTExfVEVYVDtcbiAgcmVhZG9ubHkgTU9OT19DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTO1xuICByZWFkb25seSBNVUxUSV9DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUztcbiAgc2VhcmNoRnVsbHRleHRUZW1wPzogU2VhcmNoRnVsbHRleHRDaGFuZ2U7XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8RGF0YVNvdXJjZVN0YXRlIHwgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIHwgRmllbGRTdGF0ZSB8IENsYXNzU3RhdGU+KSB7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuaXNMb2FkaW5nKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuc2VhcmNoTW9ub0NsYXNzVmFsaWQkID0gdGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoTW9ub0NsYXNzU2VsZWN0b3JzLnNlYXJjaE1vbm9DbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuZWRpdEluUHJvZ3Jlc3MkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0SW5Qcm9ncmVzcyk7XG4gICAgdGhpcy5jdXJyZW50RWRpdFR5cGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdFR5cGUpO1xuICAgIHRoaXMuY3VycmVudEVkaXQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdCk7XG4gICAgdGhpcy5pc1JlbmFtZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmlzUmVuYW1lKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmVkaXRJblByb2dyZXNzJCwgdGhpcy5pc1JlbmFtZSRdKS5zdWJzY3JpYmUoKFtlZGl0SW5Qcm9ncmVzcywgaXNSZW5hbWVdKSA9PiB7XG4gICAgICAgIGlmIChlZGl0SW5Qcm9ncmVzcyAmJiB0aGlzLnNlYXJjaFRvb2xzQ2xvc2UgJiYgIWlzUmVuYW1lKSB7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvblNlYXJjaENyaXRlcmlhKCkge1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkub3BlbkVkaXQoe1xuICAgICAgICBjdXJyZW50RWRpdDoge1xuICAgICAgICAgIHNvdXJjZVR5cGU6ICduYW1lZFF1ZXJ5JyxcbiAgICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgICByZXF1ZXN0OiB7IHR5cGU6IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUywgZnVsbFNlYXJjaDogbnVsbCwgZmllbGRzOiBbXSwgbXVsdGlUeXBlOiAnQU5EJyB9LFxuICAgICAgICAgIG5hbWU6ICcnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VhcmNoVG9vbHMoKSB7XG4gICAgdGhpcy5pc1NlYXJjaENyaXRlcmlhID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5zdG9wRWRpdCgpKTtcbiAgICB0aGlzLnJlc2l6ZVNjcmVlbigpO1xuICB9XG5cbiAgb25Nb25vU2VhcmNoKCkge1xuICAgIHRoaXMuaXNTZWFyY2hNb25vID0gIXRoaXMuaXNTZWFyY2hNb25vO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBvbkNoYW5nZUxpc3RWaWV3KGlzTW9yZUxpc3Q6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTW9yZUxpc3QgPSAhaXNNb3JlTGlzdDtcbiAgfVxuXG4gIG9uU2VhcmNoRnVsbHRleHRDaGFuZ2UocGF5bG9hZDogU2VhcmNoRnVsbHRleHRDaGFuZ2UpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gcGF5bG9hZC52YWx1ZSAhPT0gJyc7XG4gICAgICB0aGlzLnNlYXJjaEZ1bGx0ZXh0VGVtcCA9IHBheWxvYWQ7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgb25TZWFyY2goKSB7XG4gICAgaWYgKHRoaXMuaXNTZWFyY2hNb25vKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE1vbm9DbGFzc0FjdGlvbnMuc2VhcmNoKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE11bHRpQ2xhc3NBY3Rpb25zLnNlYXJjaCgpKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0SW5QcmVzZW50YXRpb24oe1xuICAgICAgICBpZDogREVGQVVMVF9OQU1FRF9RVUVSWV9JRCxcbiAgICAgICAgd2lkZ2V0VHlwZTogdGhpcy53aWRnZXRUeXBlXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkNoYW5nZVBhbmVsKCkge1xuICAgIHRoaXMuc2VhcmNoVG9vbHNDbG9zZSA9ICF0aGlzLnNlYXJjaFRvb2xzQ2xvc2U7XG4gICAgdGhpcy5yZXNpemVTY3JlZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplU2NyZWVuKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93Py5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpLCA0MDApO1xuICB9XG5cbiAgc2VsZWN0V2lkZ2V0KCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy53aWRnZXRUeXBlID0gJGV2ZW50O1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gIH1cblxuICB1cGRhdGVWaXNpYmlsaXR5KCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnVwZGF0ZUN1cnJlbnRFZGl0KHsgY3VycmVudEVkaXQ6IHsgdmlzaWJpbGl0eTogJGV2ZW50IH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzXCJcbiAgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIlxuICBbY2xhc3MuaXMtbW9ub109XCJpc05ld01vbm8gfHwgKGlzRWRpdE1vbm8kIHwgYXN5bmMpXCJcbiAgPlxuICBAaWYgKCgoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpICYmICEoaXNSZW5hbWUkIHwgYXN5bmMpKSB8fCBpc1NlYXJjaENyaXRlcmlhKSB7XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLXRleHQgLWJhY2sgYS10b29sdGlwXCJcbiAgICAgIChjbGljayk9XCJvblNlYXJjaFRvb2xzKClcIlxuICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnNlYXJjaC5idXR0b24uYmFja1NlYXJjaCcgfCBpMThuXCJcbiAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICA+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFycm93X2JhY2tcIiBbd2lkdGhdPVwiMjRcIiBbaGVpZ2h0XT1cIjI0XCIgW2FuaW1hdGlvbl09XCJmYWxzZVwiPjwvcHJ5LWljb24+XG4gICAgICA8c3Bhbj57eyAnQHByeS5zZWFyY2guYnV0dG9uLmJhY2tTZWFyY2gnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19jb250ZW50XCIgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIj5cbiAgICBAaWYgKCgoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpICYmICEoaXNSZW5hbWUkIHwgYXN5bmMpKSB8fCBpc1NlYXJjaENyaXRlcmlhKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtbGluay1saWtlIHUtc2VsZi1lbmRcIlxuICAgICAgICAoY2xpY2spPVwicmVzZXQoKVwiXG4gICAgICAgIGlkPVwiYnRuX3Jlc2V0XCJcbiAgICAgICAgPlxuICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInJlc2V0XCIgW3dpZHRoXT1cIjE4XCIgW2hlaWdodF09XCIxOFwiPjwvcHJ5LWljb24+XG4gICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24ucmVzZXQnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIEBpZiAoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpIHtcbiAgICAgIDxwcnktc2hhcmUgW25nTW9kZWxdPVwiKGN1cnJlbnRFZGl0JCB8IGFzeW5jKT8udmlzaWJpbGl0eVwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVZpc2liaWxpdHkoJGV2ZW50KVwiPjwvcHJ5LXNoYXJlPlxuICAgIH1cbiAgICBAaWYgKChlZGl0SW5Qcm9ncmVzcyQgfCBhc3luYykgJiYgIShpc1JlbmFtZSQgfCBhc3luYykgJiYgIShsb2FkaW5nJCB8IGFzeW5jKSkge1xuICAgICAgPHByeS1lZGl0LW5hbWVkLXF1ZXJ5XG4gICAgICAgIChzZWFyY2hGdWxsdGV4dENoYW5nZSk9XCJvblNlYXJjaEZ1bGx0ZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAoY2FuY2VsbGVkKT1cIm9uU2VhcmNoVG9vbHMoKVwiXG4gICAgICA+PC9wcnktZWRpdC1uYW1lZC1xdWVyeT5cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAoaXNTZWFyY2hDcml0ZXJpYSAmJiAhKGxvYWRpbmckIHwgYXN5bmMpKSB7XG4gICAgICAgIDxwcnktdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX3RvZ2dsZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaXNTZWFyY2hNb25vXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vbm9TZWFyY2goKVwiXG4gICAgICAgICAgW2Fsd2F5c0FjdGl2ZV09XCJ0cnVlXCJcbiAgICAgICAgICBtb2RlPVwiYWN0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAge3sgKGlzU2VhcmNoTW9ubyA/ICdAcHJ5LnNlYXJjaC5idXR0b24ubW9ubycgOiAnQHByeS5zZWFyY2guYnV0dG9uLm11bHRpJykgfCBpMThuIH19XG4gICAgICAgIDwvcHJ5LXRvZ2dsZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJ5LXNlYXJjaC10b29sc19fY29udGVudF9fZnVsbFwiPlxuICAgICAgICAgIEBpZiAoaXNTZWFyY2hNb25vKSB7XG4gICAgICAgICAgICA8cHJ5LXNlYXJjaC1tb25vLWNsYXNzPjwvcHJ5LXNlYXJjaC1tb25vLWNsYXNzPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHByeS1zZWFyY2gtbXVsdGktY2xhc3M+PC9wcnktc2VhcmNoLW11bHRpLWNsYXNzPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2J1dHRvbi1zZWFyY2hcIj5cbiAgICAgICAgICBAaWYgKGlzU2VhcmNoQ3JpdGVyaWEpIHtcbiAgICAgICAgICAgIDxwcnktY2hvb3NlLXdpZGdldCAoc2VsZWN0ZWQpPVwic2VsZWN0V2lkZ2V0KCRldmVudClcIj48L3ByeS1jaG9vc2Utd2lkZ2V0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKCFpc1NlYXJjaENyaXRlcmlhKSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwib25TZWFyY2hUb29scygpXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24uY2FuY2VsJyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICghKHNlYXJjaE11bHRpQ2xhc3NWYWxpZCQgfCBhc3luYykgJiYgIWlzU2VhcmNoTW9ubykgfHwgKCEoc2VhcmNoTW9ub0NsYXNzVmFsaWQkIHwgYXN5bmMpICYmIGlzU2VhcmNoTW9ubylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2VhcmNoLWxpbmVcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAge3sgJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5zZWFyY2gnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19jb250ZW50X19mdWxsXCI+XG4gICAgICAgICAgPHByeS1zZWFyY2gtaG9tZVxuICAgICAgICAgICAgY2xhc3M9XCJvLXByeS1zZWFyY2gtaG9tZVwiXG4gICAgICAgICAgICBbaXNNb3JlTGlzdF09XCJpc01vcmVMaXN0XCJcbiAgICAgICAgICAgIFtzZWFyY2hGdWxsdGV4dFRwbF09XCJzZWFyY2hGdWxsdGV4dFRwbFwiXG4gICAgICAgICAgICAoY2hhbmdlTGlzdFZpZXcpPVwib25DaGFuZ2VMaXN0VmlldygkZXZlbnQpXCJcbiAgICAgICAgICAgIChjaGFuZ2VTZWFyY2hDcml0ZXJpYSk9XCJvblNlYXJjaENyaXRlcmlhKClcIlxuICAgICAgICAgID48L3ByeS1zZWFyY2gtaG9tZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NlYXJjaEZ1bGx0ZXh0VHBsPlxuICAgICAgICAgICAgPHByeS1zZWFyY2gtZnVsbHRleHQgbW9kZT1cInZlcnRpY2FsXCIgKHNlYXJjaENoYW5nZSk9XCJvblNlYXJjaEZ1bGx0ZXh0Q2hhbmdlKCRldmVudClcIj48L3ByeS1zZWFyY2gtZnVsbHRleHQ+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgfVxuXG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19mb290ZXJcIiBbY2xhc3MuaXMtY2xvc2VdPVwic2VhcmNoVG9vbHNDbG9zZVwiPlxuICAgIDxwcnktc2F2ZS1xdWVyeS1idXR0b25cbiAgICAgIFtlZGl0SW5Qcm9ncmVzc109XCJlZGl0SW5Qcm9ncmVzcyQgfCBhc3luY1wiXG4gICAgICBbY3VycmVudEVkaXRdPVwiY3VycmVudEVkaXQkIHwgYXN5bmNcIlxuICAgICAgW2N1cnJlbnRFZGl0VHlwZV09XCJjdXJyZW50RWRpdFR5cGUkIHwgYXN5bmNcIlxuICAgICAgW2Z1bGx0ZXh0VmFsaWRdPVwiaXNTZWFyY2hGdWxsdGV4dFZhbGlkXCJcbiAgICAgIFttdWx0aVZhbGlkXT1cInNlYXJjaE11bHRpQ2xhc3NWYWxpZCQgfCBhc3luY1wiXG4gICAgICBbbW9ub1ZhbGlkXT1cInNlYXJjaE1vbm9DbGFzc1ZhbGlkJCB8IGFzeW5jXCJcbiAgICAgIFtpc05vdEZ1bGx0ZXh0XT1cImlzU2VhcmNoQ3JpdGVyaWFcIlxuICAgICAgW2lzTW9ub1NlYXJjaF09XCJpc1NlYXJjaE1vbm9cIlxuICAgICAgW2Z1bGx0ZXh0U2VhcmNoXT1cInNlYXJjaEZ1bGx0ZXh0VGVtcFwiXG4gICAgPjwvcHJ5LXNhdmUtcXVlcnktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,8 +2,8 @@ import { Component, Input } from '@angular/core';
2
2
  import { DashboardSelectors, DataSourceActions, MIME_TYPE_RESULTSET } from '@provoly/dashboard';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@ngrx/store";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@provoly/dashboard";
5
+ import * as i2 from "@provoly/dashboard";
6
+ import * as i3 from "@angular/common";
7
7
  export class NamedQueryComponent {
8
8
  constructor(store) {
9
9
  this.store = store;
@@ -24,12 +24,12 @@ export class NamedQueryComponent {
24
24
  this.toggle();
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NamedQueryComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: NamedQueryComponent, selector: "pry-named-query", inputs: { label: "label" }, ngImport: i0, template: "<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n <div class=\"combobox\" *ngIf=\"displayCombo\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: NamedQueryComponent, selector: "pry-named-query", inputs: { label: "label" }, ngImport: i0, template: "<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n @if (displayCombo) {\n <div class=\"combobox\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NamedQueryComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'pry-named-query', template: "<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n <div class=\"combobox\" *ngIf=\"displayCombo\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n </div>\n</div>\n" }]
31
+ args: [{ selector: 'pry-named-query', template: "<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n @if (displayCombo) {\n <div class=\"combobox\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n }\n </div>\n</div>\n" }]
32
32
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { label: [{
33
33
  type: Input
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtcXVlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9jb21wb25lbnRzL25hbWVkLXF1ZXJ5L25hbWVkLXF1ZXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9uYW1lZC1xdWVyeS9uYW1lZC1xdWVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFPaEcsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSjVCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFJbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWlCLEVBQUUsRUFBVTtRQUNyQyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ2xHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWlCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDOzhHQXRCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixtRkNUaEMsa3FCQWtCQTs7MkZEVGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQjswRUFJbEIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMsIERhdGFTb3VyY2VBY3Rpb25zLCBNSU1FX1RZUEVfUkVTVUxUU0VUIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LW5hbWVkLXF1ZXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hbWVkLXF1ZXJ5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYW1lZFF1ZXJ5Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBkaXNwbGF5Q29tYm8gPSBmYWxzZTtcbiAgbmFtZWRRdWVyaWVzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55Pikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLm5hbWVkUXVlcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuYXZhaWxhYmxlTmFtZWRRdWVyaWVzKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmRpc3BsYXlDb21ibyA9ICF0aGlzLmRpc3BsYXlDb21ibztcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQ6IERyYWdFdmVudCwgcnM6IHN0cmluZykge1xuICAgIGlmICghISRldmVudCAmJiAhISRldmVudC5kYXRhVHJhbnNmZXIgJiYgISRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoTUlNRV9UWVBFX1JFU1VMVFNFVCkpIHtcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShNSU1FX1RZUEVfUkVTVUxUU0VULCBycyk7XG4gICAgfVxuICB9XG5cbiAgZHJhZ0xlYXZlKCRldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tbmFtZWQtcXVlcnlcIj5cbiAgPGRpdiBjbGFzcz1cImNvbWJvYm94LWNvbnRhaW5lclwiIChkcmFnbGVhdmUpPVwiZHJhZ0xlYXZlKCRldmVudClcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1hY3Rpb25cIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZGF0YV91c2FnZVwiPjwvcHJ5LWljb24+XG4gICAgICBAaWYgKGxhYmVsKSB7XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gucmVzdWx0U2V0JyB8IGkxOG4gfX1cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb21ib2JveFwiICpuZ0lmPVwiZGlzcGxheUNvbWJvXCIgKG1vdXNlbGVhdmUpPVwidG9nZ2xlKClcIj5cbiAgICAgIEBmb3IgKHJzIG9mIG5hbWVkUXVlcmllcyQgfCBhc3luYzsgdHJhY2sgcnMpIHtcbiAgICAgICAgPGRpdiBkcmFnZ2FibGU9XCJ0cnVlXCIgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50LCBycylcIj5cbiAgICAgICAgICB7eyBycyB8IHRyYW5zbGF0ZUlkOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtcXVlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9jb21wb25lbnRzL25hbWVkLXF1ZXJ5L25hbWVkLXF1ZXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9uYW1lZC1xdWVyeS9uYW1lZC1xdWVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFPaEcsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSjVCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFJbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWlCLEVBQUUsRUFBVTtRQUNyQyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ2xHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWlCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDOzhHQXRCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixtRkNUaEMsMHJCQW9CQTs7MkZEWGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQjswRUFJbEIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMsIERhdGFTb3VyY2VBY3Rpb25zLCBNSU1FX1RZUEVfUkVTVUxUU0VUIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LW5hbWVkLXF1ZXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hbWVkLXF1ZXJ5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYW1lZFF1ZXJ5Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBkaXNwbGF5Q29tYm8gPSBmYWxzZTtcbiAgbmFtZWRRdWVyaWVzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55Pikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLm5hbWVkUXVlcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuYXZhaWxhYmxlTmFtZWRRdWVyaWVzKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmRpc3BsYXlDb21ibyA9ICF0aGlzLmRpc3BsYXlDb21ibztcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQ6IERyYWdFdmVudCwgcnM6IHN0cmluZykge1xuICAgIGlmICghISRldmVudCAmJiAhISRldmVudC5kYXRhVHJhbnNmZXIgJiYgISRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoTUlNRV9UWVBFX1JFU1VMVFNFVCkpIHtcbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShNSU1FX1RZUEVfUkVTVUxUU0VULCBycyk7XG4gICAgfVxuICB9XG5cbiAgZHJhZ0xlYXZlKCRldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tbmFtZWQtcXVlcnlcIj5cbiAgPGRpdiBjbGFzcz1cImNvbWJvYm94LWNvbnRhaW5lclwiIChkcmFnbGVhdmUpPVwiZHJhZ0xlYXZlKCRldmVudClcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1hY3Rpb25cIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZGF0YV91c2FnZVwiPjwvcHJ5LWljb24+XG4gICAgICBAaWYgKGxhYmVsKSB7XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gucmVzdWx0U2V0JyB8IGkxOG4gfX1cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cblxuICAgIEBpZiAoZGlzcGxheUNvbWJvKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY29tYm9ib3hcIiAobW91c2VsZWF2ZSk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICBAZm9yIChycyBvZiBuYW1lZFF1ZXJpZXMkIHwgYXN5bmM7IHRyYWNrIHJzKSB7XG4gICAgICAgICAgPGRpdiBkcmFnZ2FibGU9XCJ0cnVlXCIgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50LCBycylcIj5cbiAgICAgICAgICAgIHt7IHJzIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2RhdGFzb3VyY2UnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmMgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -7,11 +7,11 @@ import { ToolboxActionComponent } from '../../shared/toolbox-action/toolbox-acti
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngrx/store";
9
9
  import * as i2 from "@angular/cdk/overlay";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/forms";
12
- import * as i5 from "@provoly/dashboard";
13
- import * as i6 from "@provoly/dashboard/components/stepper";
14
- import * as i7 from "../../shared/presentation-form/presentation-form.component";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "@provoly/dashboard";
12
+ import * as i5 from "@provoly/dashboard/components/stepper";
13
+ import * as i6 from "../../shared/presentation-form/presentation-form.component";
14
+ import * as i7 from "@angular/common";
15
15
  export class SaveViewComponent extends ToolboxActionComponent {
16
16
  constructor(store, access, overlay, viewContainerRef) {
17
17
  super(store, access);
@@ -28,7 +28,7 @@ export class SaveViewComponent extends ToolboxActionComponent {
28
28
  this.isFormValid = false;
29
29
  this.subscriptions.add(this.store.select(DashboardSelectors.presentation).subscribe((presentation) => {
30
30
  this.currentManifest = presentation.current
31
- ? JSON.parse(JSON.stringify(presentation.current))
31
+ ? structuredClone(presentation.current)
32
32
  : { name: '', image: '', description: '' };
33
33
  this.initialNbPages = presentation.initial?.windows.length ?? 0;
34
34
  this.hasInitial = !!presentation.initial;
@@ -166,12 +166,12 @@ export class SaveViewComponent extends ToolboxActionComponent {
166
166
  }
167
167
  }
168
168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SaveViewComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: SaveViewComponent, selector: "pry-save-view", inputs: { mode: "mode" }, viewQueries: [{ propertyName: "saveAs", first: true, predicate: ["saveAs"], descendants: true }, { propertyName: "directiveSave", first: true, predicate: ["directiveSave"], descendants: true }, { propertyName: "firstFocusdirective", first: true, predicate: ["firstFocusdirective"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "templateSaveAs", first: true, predicate: ["templateSaveAs"], descendants: true, read: TemplateRef }, { propertyName: "templateDirectSaveType", first: true, predicate: ["templateDirectSaveType"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n <ng-container *ngIf=\"mode === 'directSave'\">\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}</ng-container>\n </button>\n }\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n <ng-container *ngIf=\"displayLabels\">{{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}</ng-container>\n </button>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted", "activeIndexChange"] }, { kind: "component", type: i6.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i6.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i5.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "component", type: i7.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: SaveViewComponent, selector: "pry-save-view", inputs: { mode: "mode" }, viewQueries: [{ propertyName: "saveAs", first: true, predicate: ["saveAs"], descendants: true }, { propertyName: "directiveSave", first: true, predicate: ["directiveSave"], descendants: true }, { propertyName: "firstFocusdirective", first: true, predicate: ["firstFocusdirective"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "templateSaveAs", first: true, predicate: ["templateSaveAs"], descendants: true, read: TemplateRef }, { propertyName: "templateDirectSaveType", first: true, predicate: ["templateDirectSaveType"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n @if (mode === 'directSave') {\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n @if (displayLabels) {\n {{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n }\n </div>\n }\n @if (mode === 'saveAs') {\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n @if (displayLabels) {\n {{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n </div>\n }\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted", "activeIndexChange"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i4.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "component", type: i6.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
170
170
  }
171
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SaveViewComponent, decorators: [{
172
172
  type: Component,
173
- args: [{ selector: 'pry-save-view', template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n <ng-container *ngIf=\"mode === 'directSave'\">\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}</ng-container>\n </button>\n }\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n <ng-container *ngIf=\"displayLabels\">{{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}</ng-container>\n </button>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
174
- }], ctorParameters: () => [{ type: i1.Store }, { type: i5.PryBaseAccess, decorators: [{
173
+ args: [{ selector: 'pry-save-view', template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n @if (mode === 'directSave') {\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n @if (displayLabels) {\n {{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n }\n </div>\n }\n @if (mode === 'saveAs') {\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n @if (displayLabels) {\n {{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n </div>\n }\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
174
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i4.PryBaseAccess, decorators: [{
175
175
  type: Optional
176
176
  }, {
177
177
  type: Inject,
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
203
203
  type: ViewChild,
204
204
  args: ['templateDirectSaveType', { read: TemplateRef }]
205
205
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9zYXZlLXZpZXcvc2F2ZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9zYXZlLXZpZXcvc2F2ZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixnQkFBZ0IsRUFFaEIsUUFBUSxFQUNULE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7O0FBTzlGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxzQkFBc0I7SUF1QjNELFlBQ0UsS0FBWSxFQUMwQixNQUFxQixFQUNuRCxPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFCbkMsU0FBSSxHQUE0QixRQUFRLENBQUM7UUFPbEQsaUJBQVksR0FBWSxLQUFL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M0MxRCxxektBaUpBOzsyRkRsSGEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLGVBQWU7OzBCQTRCdEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OEZBeEI3QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ2UsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNTLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDUSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNaLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDSSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0MsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUdpQyxjQUFjO3NCQUFqRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFFVSxzQkFBc0I7c0JBQWpGLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDb25maWdBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFBSWV9BQ0NFU1NfVE9LRU4sXG4gIFByeUJhc2VBY2Nlc3MsXG4gIFZpZXdNb2RlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlc2VudGF0aW9uRm9ybVZhbHVlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3ByZXNlbnRhdGlvbi1mb3JtL3ByZXNlbnRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1zYXZlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2F2ZS12aWV3LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlVmlld0NvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlOiAnc2F2ZUFzJyB8ICdkaXJlY3RTYXZlJyA9ICdzYXZlQXMnO1xuICBAVmlld0NoaWxkKCdzYXZlQXMnKSBzYXZlQXMhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnZGlyZWN0aXZlU2F2ZScpIGRpcmVjdGl2ZVNhdmUhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnZmlyc3RGb2N1c2RpcmVjdGl2ZScpIGZpcnN0Rm9jdXNkaXJlY3RpdmUhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3MnKSBjcm9zcyE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjb25maXJtJykgY29uZmlybSE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjYW5jZWwnKSBjYW5jZWwhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgc2F2ZUFzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG92ZXJsYXlSZWZTYXZlQXM/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVNhdmVBcycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTYXZlQXMhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBvdmVybGF5UmVmRGlyZWN0U2F2ZVR5cGU/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZURpcmVjdFNhdmVUeXBlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZURpcmVjdFNhdmVUeXBlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgYWNjZXNzUmlnaHRzQnlHcm91cDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XG4gIHNhdmVUeXBlT3BlbmVkID0gZmFsc2U7XG4gIGlzQ3VycmVudFByZXNlbnRhdGlvbk1vZGlmaWVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgbmJQYWdlczogbnVtYmVyID0gMDtcbiAgaW5pdGlhbE5iUGFnZXM6IG51bWJlciA9IDA7XG4gIGhhc0luaXRpYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgVmlld01vZGUgPSBWaWV3TW9kZTtcbiAgZm9ybVZhbHVlPzogUGFydGlhbDxQcmVzZW50YXRpb25Gb3JtVmFsdWU+O1xuICBpc0Zvcm1WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBSWV9BQ0NFU1NfVE9LRU4pIGFjY2VzczogUHJ5QmFzZUFjY2VzcyxcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIHN1cGVyKHN0b3JlLCBhY2Nlc3MpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5wcmVzZW50YXRpb24pLnN1YnNjcmliZSgocHJlc2VudGF0aW9uKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1hbmlmZXN0ID0gcHJlc2VudGF0aW9uLmN1cnJlbnRcbiAgICAgICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocHJlc2VudGF0aW9uLmN1cnJlbnQpKVxuICAgICAgICAgIDogKHsgbmFtZTogJycsIGltYWdlOiAnJywgZGVzY3JpcHRpb246ICcnIH0gYXMgTWFuaWZlc3REZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuaW5pdGlhbE5iUGFnZXMgPSBwcmVzZW50YXRpb24uaW5pdGlhbD8ud2luZG93cy5sZW5ndGggPz8gMDtcbiAgICAgICAgdGhpcy5oYXNJbml0aWFsID0gISFwcmVzZW50YXRpb24uaW5pdGlhbDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmlzQ3VycmVudFByZXNlbnRhdGlvbk1vZGlmaWVkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5pc0N1cnJlbnRQcmVzZW50YXRpb25Nb2RpZmllZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZ2xvYmFsTWFuaWZlc3QpXG4gICAgICAgIC5zdWJzY3JpYmUoKG1hbmlmZXN0KSA9PiAodGhpcy5uYlBhZ2VzID0gbWFuaWZlc3Qud2luZG93cy5sZW5ndGgpKVxuICAgICk7XG4gIH1cblxuICB0b2dnbGVTYXZlQXMoKSB7XG4gICAgdGhpcy5zYXZlQXNPcGVuZWQgPSAhdGhpcy5zYXZlQXNPcGVuZWQ7XG4gICAgaWYgKHRoaXMuc2F2ZUFzT3BlbmVkKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVxdWVzdEFsbFJvdXRlcygpKTtcbiAgICAgIHRoaXMub3BlblNhdmVBcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTYXZlQXM/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlNhdmVBcyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMuc2F2ZUFzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXF1ZXN0QWxsUm91dGVzKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXF1ZXN0TWFuaWZlc3RzVG9FbWl0KCkpO1xuICAgIC8vIEdpdmUgdGltZSBmb3Igcm91dGVzIHRvIGJlIHVwZGF0ZWRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCBwcmVzZW50YXRpb24gPSB7XG4gICAgICAgIC4uLnRoaXMuY3VycmVudE1hbmlmZXN0LFxuICAgICAgICBuYW1lOiB0aGlzLmN1cnJlbnRNYW5pZmVzdCEubmFtZSxcbiAgICAgICAgaWQ6IHY0KCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmN1cnJlbnRNYW5pZmVzdCEuZGVzY3JpcHRpb24sXG4gICAgICAgIGltYWdlOiB0aGlzLmN1cnJlbnRNYW5pZmVzdCEuaW1hZ2UsXG4gICAgICAgIGFjY2Vzc1JpZ2h0c0J5R3JvdXA6IHRoaXMuYWNjZXNzUmlnaHRzQnlHcm91cCxcbiAgICAgICAgb3duZXI6IHRoaXMuY3VycmVudE1hbmlmZXN0Py5vd25lcixcbiAgICAgICAgbWV0YWRhdGE6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT0gJ2RpcmVjdFNhdmUnKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNYW5pZmVzdCkge1xuICAgICAgICAgIHByZXNlbnRhdGlvbi5pZCA9IHRoaXMuY3VycmVudE1hbmlmZXN0LmlkO1xuICAgICAgICAgIHByZXNlbnRhdGlvbi5hY2Nlc3NSaWdodHNCeUdyb3VwID0gdGhpcy5jdXJyZW50TWFuaWZlc3QuYWNjZXNzUmlnaHRzQnlHcm91cDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJlc2VudGF0aW9uID0ge1xuICAgICAgICAgIC4uLnByZXNlbnRhdGlvbixcbiAgICAgICAgICAuLi50aGlzLmZvcm1WYWx1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNhdmVNYW5pZmVzdChwcmVzZW50YXRpb24pKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uKHtcbiAgICAgICAgICBwcmVzZW50YXRpb246IHByZXNlbnRhdGlvbiBhcyBNYW5pZmVzdERlc2NyaXB0aW9uXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5tb2RlID0gJ2RpcmVjdFNhdmUnO1xuICAgIH0sIDEwMDApOyAvLyBXYWl0IGZvciByb3V0ZXMgYW5kIGFsbCB3aWRnZXQgbWFuaWZlc3RzIHRvIGJlIHVwZGF0ZWRcbiAgICB0aGlzLm92ZXJsYXlSZWZTYXZlQXM/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLmNsb3NlTW9kYWxzKCk7XG4gIH1cblxuICBjbG9zZU1vZGFscygpIHtcbiAgICBpZiAodGhpcy5zYXZlVHlwZU9wZW5lZCkge1xuICAgICAgdGhpcy50b2dnbGVEaXJlY3RTYXZlVHlwZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zYXZlQXNPcGVuZWQpIHtcbiAgICAgIHRoaXMudG9nZ2xlU2F2ZUFzKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIGNoYW5nZUFjY2Vzc1JpZ2h0cygkZXZlbnQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSkge1xuICAgIHRoaXMuY3VycmVudE1hbmlmZXN0IS5hY2Nlc3NSaWdodHNCeUdyb3VwID0gJGV2ZW50O1xuICB9XG5cbiAgb3BlblNhdmVBcygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWZTYXZlQXMgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMubW9kZSA9ICdzYXZlQXMnO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2F2ZUFzLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMudG9nZ2xlU2F2ZUFzKCkpO1xuICAgIHRoaXMub3ZlcmxheVJlZlNhdmVBcy5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVTYXZlQXMsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICB9XG5cbiAgdG9nZ2xlRGlyZWN0U2F2ZVR5cGUoKSB7XG4gICAgdGhpcy5zYXZlVHlwZU9wZW5lZCA9ICF0aGlzLnNhdmVUeXBlT3BlbmVkO1xuICAgIGlmICh0aGlzLnNhdmVUeXBlT3BlbmVkKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVxdWVzdEFsbFJvdXRlcygpKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRpcmVjdFNhdmVUeXBlID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEaXJlY3RTYXZlVHlwZS5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnRvZ2dsZURpcmVjdFNhdmVUeXBlKCkpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmRGlyZWN0U2F2ZVR5cGUuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlRGlyZWN0U2F2ZVR5cGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlyc3RGb2N1c2RpcmVjdGl2ZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEaXJlY3RTYXZlVHlwZT8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmRGlyZWN0U2F2ZVR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLmRpcmVjdGl2ZVNhdmU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbXVzdE9wZW5Nb2RhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNJbml0aWFsICYmIHRoaXMubmJQYWdlcyAhPT0gdGhpcy5pbml0aWFsTmJQYWdlcztcbiAgfVxuXG4gIGRpcmVjdFNhdmUoKSB7XG4gICAgaWYgKHRoaXMubXVzdE9wZW5Nb2RhbCkge1xuICAgICAgdGhpcy50b2dnbGVEaXJlY3RTYXZlVHlwZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNhdmUoKTtcbiAgICB9XG4gIH1cblxuICByZXN0b3JlKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXN0b3JlSW5pdGlhbE1hbmlmZXN0KCkpO1xuICAgIHRoaXMuY2xvc2VNb2RhbHMoKTtcbiAgfVxuXG4gIGZvY3VzQ3Jvc3NFbGVtZW50KCkge1xuICAgIHRoaXMuY3Jvc3MubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXNWYWxpZGF0aW9uKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50TWFuaWZlc3Q/Lm5hbWUpIHtcbiAgICAgIHRoaXMuY2FuY2VsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5jb25maXJtLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHJlbmFtZSgpIHtcbiAgICB0aGlzLnRvZ2dsZVNhdmVBcygpO1xuICB9XG5cbiAgZGlzYWJsZU5leHRTdGVwKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50TWFuaWZlc3Q/Lm5hbWUpIHtcbiAgICAgIHRoaXMuZm9jdXNDcm9zc0VsZW1lbnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ3Rvb2xib3gnLCBhY3Rpb246ICdzYXZlJyB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnZGlyZWN0U2F2ZSdcIj5cbiAgICA8ZGl2IFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2F2ZVR5cGVPcGVuZWRcIiBhcmlhLWNvbnRyb2xzPVwiZGlyZWN0aXZlU2F2ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJpbmZvVG9vbHRpcF9kaXJlY3RTYXZlXCI+XG4gICAgICBAaWYgKGNhbk1vZGlmeSQgfCBhc3luYykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgI2RpcmVjdGl2ZVNhdmVcbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiZGlyZWN0U2F2ZSgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIShpc0N1cnJlbnRQcmVzZW50YXRpb25Nb2RpZmllZCQgfCBhc3luYylcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj57e1xuICAgICAgICAgICAgJ0BwcnkudG9vbGJveC5zYXZlJyB8IGkxOG46IHsgbmJQYWdlczogJygnICsgbmJQYWdlcyArICcpJyB9XG4gICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3NhdmVBcydcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNhdmUtbWFuaWZlc3QtY29udGFpbmVyXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2F2ZUFzT3BlbmVkXCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJzYXZlTW9kYWxcIlxuICAgICAgYXJpYS1kZXNjcmliZWRieT1cImluZm9Ub29sdGlwX3NhdmVBc1wiXG4gICAgPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI3NhdmVBcyBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwidG9nZ2xlU2F2ZUFzKClcIiBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+e3tcbiAgICAgICAgICAnQHByeS50b29sYm94LnJlbmFtZScgfCBpMThuOiB7IG5iUGFnZXM6ICcoJyArIG5iUGFnZXMgKyAnKScgfVxuICAgICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlU2F2ZUFzPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJvLW1vZGFsXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICBpZD1cInNhdmVNb2RhbFwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19zYXZlTW9kYWxcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbG9zZU1vZGFscygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIiBpZD1cImRpYWxvZ190aXRsZVwiPnt7ICdAcHJ5LnRvb2xib3gucmVuYW1lJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiICNjcm9zcyAoa2V5ZG93bi5zaGlmdC50YWIpPVwiZm9jdXNWYWxpZGF0aW9uKClcIiAoY2xpY2spPVwidG9nZ2xlU2F2ZUFzKClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cHJ5LXN0ZXBwZXIgI3N0ZXBwZXI+XG4gICAgICA8cHJ5LXN0ZXA+XG4gICAgICAgIDxoNCBjbGFzcz1cIm0tc3RlcHBlci1pdGVtX190aXRsZVwiICpzdGVwVGl0bGU+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmFkZC5pbmZvJyB8IGkxOG4gfX08L2g0PlxuICAgICAgICA8cHJ5LXByZXNlbnRhdGlvbi1mb3JtXG4gICAgICAgICAgW3NlbGVjdGVkUHJlc2VudGF0aW9uXT1cImN1cnJlbnRNYW5pZmVzdFwiXG4gICAgICAgICAgKGZvcm1WYWx1ZSk9XCJmb3JtVmFsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgIChpc0Zvcm1WYWxpZCk9XCJpc0Zvcm1WYWxpZCA9ICRldmVudFwiXG4gICAgICAgID48L3ByeS1wcmVzZW50YXRpb24tZm9ybT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgI2NhbmNlbFxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNhdmVBcygpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJkaXNhYmxlTmV4dFN0ZXAoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzdGVwcGVyLm5leHQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkXCJcbiAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJmb2N1c0Nyb3NzRWxlbWVudCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24ubmV4dCcgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wcnktc3RlcD5cbiAgICAgIDxwcnktc3RlcD5cbiAgICAgICAgPGg0IGNsYXNzPVwibS1zdGVwcGVyLWl0ZW1fX3RpdGxlXCIgKnN0ZXBUaXRsZT57eyAnQHByeS5yZXN0aXR1dGlvbi5zaGFyZScgfCBpMThuIH19PC9oND5cbiAgICAgICAgPHByeS1hY2Nlc3MtcmlnaHRzLXNoYXJlXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2Nlc3NSaWdodHNCeUdyb3VwXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VBY2Nlc3NSaWdodHMoJGV2ZW50KVwiXG4gICAgICAgICAgW21hbmlmZXN0RGVzY3JpcHRpb25dPVwiY3VycmVudE1hbmlmZXN0XCJcbiAgICAgICAgPjwvcHJ5LWFjY2Vzcy1yaWdodHMtc2hhcmU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJzdGVwcGVyLnByZXYoKVwiPlxuICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLmJhY2snIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgICAjY29uZmlybVxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0BwcnkucmVzdGl0dXRpb24uc2hhcmUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvcHJ5LXN0ZXA+XG4gICAgPC9wcnktc3RlcHBlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlRGlyZWN0U2F2ZVR5cGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm8tbW9kYWxcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgIGlkPVwiZGlyZWN0aXZlU2F2ZVwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nX3RpdGxlXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VNb2RhbHMoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCIgaWQ9XCJkaWFsb2dfdGl0bGVfXCI+e3sgJ0BwcnkudG9vbGJveC5zYXZlJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiICNmaXJzdEZvY3VzZGlyZWN0aXZlIChjbGljayk9XCJ0b2dnbGVEaXJlY3RTYXZlVHlwZSgpXCI+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMzVcIiBbd2lkdGhdPVwiMzVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxoMz57eyAnQHByeS5zbmFjay5wYWdlc0NoYW5nZWQnIHwgaTE4biB9fTwvaDM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwic2F2ZSgpXCI+XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3guc2F2ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJyZW5hbWUoKVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94LnJlbmFtZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJyZXN0b3JlKClcIiAoa2V5ZG93bi50YWIpPVwiY2xvc2VNb2RhbHMoKVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94LnJlc3RvcmUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9zYXZlLXZpZXcvc2F2ZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9zYXZlLXZpZXcvc2F2ZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixnQkFBZ0IsRUFFaEIsUUFBUSxFQUNULE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7O0FBTzlGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxzQkFBc0I7SUF1QjNELFlBQ0UsS0FBWSxFQUMwQixNQUFxQixFQUNuRCxPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFCbkMsU0FBSSxHQUE0QixRQUFRLENBQUM7UUFPbEQsaUJBQVksR0FBWSxLQUFL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U0FBUzsrQkFDRSxlQUFlOzswQkE0QnRCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzhGQXhCN0IsSUFBSTtzQkFBWixLQUFLO2dCQUNlLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUyxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ1EsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFDWixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ksT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNDLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFHaUMsY0FBYztzQkFBakUsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRVUsc0JBQXNCO3NCQUFqRixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ29uZmlnQWN0aW9ucyxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBQUllfQUNDRVNTX1RPS0VOLFxuICBQcnlCYXNlQWNjZXNzLFxuICBWaWV3TW9kZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9wcmVzZW50YXRpb24tZm9ybS9wcmVzZW50YXRpb24tZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc2F2ZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NhdmUtdmlldy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2F2ZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbW9kZTogJ3NhdmVBcycgfCAnZGlyZWN0U2F2ZScgPSAnc2F2ZUFzJztcbiAgQFZpZXdDaGlsZCgnc2F2ZUFzJykgc2F2ZUFzITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2RpcmVjdGl2ZVNhdmUnKSBkaXJlY3RpdmVTYXZlITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2ZpcnN0Rm9jdXNkaXJlY3RpdmUnKSBmaXJzdEZvY3VzZGlyZWN0aXZlITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nyb3NzJykgY3Jvc3MhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY29uZmlybScpIGNvbmZpcm0hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2FuY2VsJykgY2FuY2VsITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIHNhdmVBc09wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICBvdmVybGF5UmVmU2F2ZUFzPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVTYXZlQXMnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRlbXBsYXRlU2F2ZUFzITogVGVtcGxhdGVSZWY8YW55PjtcbiAgb3ZlcmxheVJlZkRpcmVjdFNhdmVUeXBlPzogT3ZlcmxheVJlZjtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVEaXJlY3RTYXZlVHlwZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVEaXJlY3RTYXZlVHlwZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGFjY2Vzc1JpZ2h0c0J5R3JvdXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuICBzYXZlVHlwZU9wZW5lZCA9IGZhbHNlO1xuICBpc0N1cnJlbnRQcmVzZW50YXRpb25Nb2RpZmllZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIG5iUGFnZXM6IG51bWJlciA9IDA7XG4gIGluaXRpYWxOYlBhZ2VzOiBudW1iZXIgPSAwO1xuICBoYXNJbml0aWFsOiBib29sZWFuID0gZmFsc2U7XG4gIFZpZXdNb2RlID0gVmlld01vZGU7XG4gIGZvcm1WYWx1ZT86IFBhcnRpYWw8UHJlc2VudGF0aW9uRm9ybVZhbHVlPjtcbiAgaXNGb3JtVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmUsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChQUllfQUNDRVNTX1RPS0VOKSBhY2Nlc3M6IFByeUJhc2VBY2Nlc3MsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICBzdXBlcihzdG9yZSwgYWNjZXNzKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucHJlc2VudGF0aW9uKS5zdWJzY3JpYmUoKHByZXNlbnRhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRNYW5pZmVzdCA9IHByZXNlbnRhdGlvbi5jdXJyZW50XG4gICAgICAgICAgPyBzdHJ1Y3R1cmVkQ2xvbmUocHJlc2VudGF0aW9uLmN1cnJlbnQpXG4gICAgICAgICAgOiAoeyBuYW1lOiAnJywgaW1hZ2U6ICcnLCBkZXNjcmlwdGlvbjogJycgfSBhcyBNYW5pZmVzdERlc2NyaXB0aW9uKTtcbiAgICAgICAgdGhpcy5pbml0aWFsTmJQYWdlcyA9IHByZXNlbnRhdGlvbi5pbml0aWFsPy53aW5kb3dzLmxlbmd0aCA/PyAwO1xuICAgICAgICB0aGlzLmhhc0luaXRpYWwgPSAhIXByZXNlbnRhdGlvbi5pbml0aWFsO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuaXNDdXJyZW50UHJlc2VudGF0aW9uTW9kaWZpZWQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmlzQ3VycmVudFByZXNlbnRhdGlvbk1vZGlmaWVkKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5nbG9iYWxNYW5pZmVzdClcbiAgICAgICAgLnN1YnNjcmliZSgobWFuaWZlc3QpID0+ICh0aGlzLm5iUGFnZXMgPSBtYW5pZmVzdC53aW5kb3dzLmxlbmd0aCkpXG4gICAgKTtcbiAgfVxuXG4gIHRvZ2dsZVNhdmVBcygpIHtcbiAgICB0aGlzLnNhdmVBc09wZW5lZCA9ICF0aGlzLnNhdmVBc09wZW5lZDtcbiAgICBpZiAodGhpcy5zYXZlQXNPcGVuZWQpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXF1ZXN0QWxsUm91dGVzKCkpO1xuICAgICAgdGhpcy5vcGVuU2F2ZUFzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlNhdmVBcz8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2F2ZUFzID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgICAgdGhpcy5zYXZlQXMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlcXVlc3RBbGxSb3V0ZXMoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlcXVlc3RNYW5pZmVzdHNUb0VtaXQoKSk7XG4gICAgLy8gR2l2ZSB0aW1lIGZvciByb3V0ZXMgdG8gYmUgdXBkYXRlZFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IHByZXNlbnRhdGlvbiA9IHtcbiAgICAgICAgLi4udGhpcy5jdXJyZW50TWFuaWZlc3QsXG4gICAgICAgIG5hbWU6IHRoaXMuY3VycmVudE1hbmlmZXN0IS5uYW1lLFxuICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY3VycmVudE1hbmlmZXN0IS5kZXNjcmlwdGlvbixcbiAgICAgICAgaW1hZ2U6IHRoaXMuY3VycmVudE1hbmlmZXN0IS5pbWFnZSxcbiAgICAgICAgYWNjZXNzUmlnaHRzQnlHcm91cDogdGhpcy5hY2Nlc3NSaWdodHNCeUdyb3VwLFxuICAgICAgICBvd25lcjogdGhpcy5jdXJyZW50TWFuaWZlc3Q/Lm93bmVyLFxuICAgICAgICBtZXRhZGF0YTogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMubW9kZSA9PSAnZGlyZWN0U2F2ZScpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1hbmlmZXN0KSB7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLmlkID0gdGhpcy5jdXJyZW50TWFuaWZlc3QuaWQ7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLmFjY2Vzc1JpZ2h0c0J5R3JvdXAgPSB0aGlzLmN1cnJlbnRNYW5pZmVzdC5hY2Nlc3NSaWdodHNCeUdyb3VwO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmVzZW50YXRpb24gPSB7XG4gICAgICAgICAgLi4ucHJlc2VudGF0aW9uLFxuICAgICAgICAgIC4uLnRoaXMuZm9ybVZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2F2ZU1hbmlmZXN0KHByZXNlbnRhdGlvbikpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbjogcHJlc2VudGF0aW9uIGFzIE1hbmlmZXN0RGVzY3JpcHRpb25cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLm1vZGUgPSAnZGlyZWN0U2F2ZSc7XG4gICAgfSwgMTAwMCk7IC8vIFdhaXQgZm9yIHJvdXRlcyBhbmQgYWxsIHdpZGdldCBtYW5pZmVzdHMgdG8gYmUgdXBkYXRlZFxuICAgIHRoaXMub3ZlcmxheVJlZlNhdmVBcz8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2xvc2VNb2RhbHMoKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWxzKCkge1xuICAgIGlmICh0aGlzLnNhdmVUeXBlT3BlbmVkKSB7XG4gICAgICB0aGlzLnRvZ2dsZURpcmVjdFNhdmVUeXBlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNhdmVBc09wZW5lZCkge1xuICAgICAgdGhpcy50b2dnbGVTYXZlQXMoKTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgY2hhbmdlQWNjZXNzUmlnaHRzKCRldmVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9KSB7XG4gICAgdGhpcy5jdXJyZW50TWFuaWZlc3QhLmFjY2Vzc1JpZ2h0c0J5R3JvdXAgPSAkZXZlbnQ7XG4gIH1cblxuICBvcGVuU2F2ZUFzKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZlNhdmVBcyA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5tb2RlID0gJ3NhdmVBcyc7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZTYXZlQXMuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy50b2dnbGVTYXZlQXMoKSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2F2ZUFzLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVNhdmVBcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gIH1cblxuICB0b2dnbGVEaXJlY3RTYXZlVHlwZSgpIHtcbiAgICB0aGlzLnNhdmVUeXBlT3BlbmVkID0gIXRoaXMuc2F2ZVR5cGVPcGVuZWQ7XG4gICAgaWYgKHRoaXMuc2F2ZVR5cGVPcGVuZWQpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXF1ZXN0QWxsUm91dGVzKCkpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmRGlyZWN0U2F2ZVR5cGUgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRpcmVjdFNhdmVUeXBlLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMudG9nZ2xlRGlyZWN0U2F2ZVR5cGUoKSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEaXJlY3RTYXZlVHlwZS5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVEaXJlY3RTYXZlVHlwZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5maXJzdEZvY3VzZGlyZWN0aXZlPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZkRpcmVjdFNhdmVUeXBlPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEaXJlY3RTYXZlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMuZGlyZWN0aXZlU2F2ZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtdXN0T3Blbk1vZGFsKCkge1xuICAgIHJldHVybiB0aGlzLmhhc0luaXRpYWwgJiYgdGhpcy5uYlBhZ2VzICE9PSB0aGlzLmluaXRpYWxOYlBhZ2VzO1xuICB9XG5cbiAgZGlyZWN0U2F2ZSgpIHtcbiAgICBpZiAodGhpcy5tdXN0T3Blbk1vZGFsKSB7XG4gICAgICB0aGlzLnRvZ2dsZURpcmVjdFNhdmVUeXBlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2F2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlc3RvcmUoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlc3RvcmVJbml0aWFsTWFuaWZlc3QoKSk7XG4gICAgdGhpcy5jbG9zZU1vZGFscygpO1xuICB9XG5cbiAgZm9jdXNDcm9zc0VsZW1lbnQoKSB7XG4gICAgdGhpcy5jcm9zcy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c1ZhbGlkYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRNYW5pZmVzdD8ubmFtZSkge1xuICAgICAgdGhpcy5jYW5jZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcmVuYW1lKCkge1xuICAgIHRoaXMudG9nZ2xlU2F2ZUFzKCk7XG4gIH1cblxuICBkaXNhYmxlTmV4dFN0ZXAoKSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRNYW5pZmVzdD8ubmFtZSkge1xuICAgICAgdGhpcy5mb2N1c0Nyb3NzRWxlbWVudCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAndG9vbGJveCcsIGFjdGlvbjogJ3NhdmUnIH1cIj5cbiAgQGlmIChtb2RlID09PSAnZGlyZWN0U2F2ZScpIHtcbiAgICA8ZGl2IFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2F2ZVR5cGVPcGVuZWRcIiBhcmlhLWNvbnRyb2xzPVwiZGlyZWN0aXZlU2F2ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJpbmZvVG9vbHRpcF9kaXJlY3RTYXZlXCI+XG4gICAgICBAaWYgKGNhbk1vZGlmeSQgfCBhc3luYykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgI2RpcmVjdGl2ZVNhdmVcbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiZGlyZWN0U2F2ZSgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIShpc0N1cnJlbnRQcmVzZW50YXRpb25Nb2RpZmllZCQgfCBhc3luYylcIlxuICAgICAgICAgID5cbiAgICAgICAgICBAaWYgKGRpc3BsYXlMYWJlbHMpIHtcbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAnQHByeS50b29sYm94LnNhdmUnIHwgaTE4bjogeyBuYlBhZ2VzOiAnKCcgKyBuYlBhZ2VzICsgJyknIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKG1vZGUgPT09ICdzYXZlQXMnKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzYXZlLW1hbmlmZXN0LWNvbnRhaW5lclwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNhdmVBc09wZW5lZFwiXG4gICAgICBhcmlhLWNvbnRyb2xzPVwic2F2ZU1vZGFsXCJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJpbmZvVG9vbHRpcF9zYXZlQXNcIlxuICAgICAgPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI3NhdmVBcyBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwidG9nZ2xlU2F2ZUFzKClcIiBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCI+XG4gICAgICAgIEBpZiAoZGlzcGxheUxhYmVscykge1xuICAgICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkudG9vbGJveC5yZW5hbWUnIHwgaTE4bjogeyBuYlBhZ2VzOiAnKCcgKyBuYlBhZ2VzICsgJyknIH1cbiAgICAgICAgICB9fVxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlU2F2ZUFzPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJvLW1vZGFsXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICBpZD1cInNhdmVNb2RhbFwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19zYXZlTW9kYWxcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbG9zZU1vZGFscygpXCJcbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiIGlkPVwiZGlhbG9nX3RpdGxlXCI+e3sgJ0BwcnkudG9vbGJveC5yZW5hbWUnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgI2Nyb3NzIChrZXlkb3duLnNoaWZ0LnRhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiIChjbGljayk9XCJ0b2dnbGVTYXZlQXMoKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxwcnktc3RlcHBlciAjc3RlcHBlcj5cbiAgICAgIDxwcnktc3RlcD5cbiAgICAgICAgPGg0IGNsYXNzPVwibS1zdGVwcGVyLWl0ZW1fX3RpdGxlXCIgKnN0ZXBUaXRsZT57eyAnQHByeS5wcmVzZW50YXRpb24uYWRkLmluZm8nIHwgaTE4biB9fTwvaDQ+XG4gICAgICAgIDxwcnktcHJlc2VudGF0aW9uLWZvcm1cbiAgICAgICAgICBbc2VsZWN0ZWRQcmVzZW50YXRpb25dPVwiY3VycmVudE1hbmlmZXN0XCJcbiAgICAgICAgICAoZm9ybVZhbHVlKT1cImZvcm1WYWx1ZSA9ICRldmVudFwiXG4gICAgICAgICAgKGlzRm9ybVZhbGlkKT1cImlzRm9ybVZhbGlkID0gJGV2ZW50XCJcbiAgICAgICAgPjwvcHJ5LXByZXNlbnRhdGlvbi1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAjY2FuY2VsXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2F2ZUFzKClcIlxuICAgICAgICAgICAgKGtleWRvd24udGFiKT1cImRpc2FibGVOZXh0U3RlcCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic3RlcHBlci5uZXh0KClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiXG4gICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24ubmV4dCcgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wcnktc3RlcD5cbiAgICAgIDxwcnktc3RlcD5cbiAgICAgICAgPGg0IGNsYXNzPVwibS1zdGVwcGVyLWl0ZW1fX3RpdGxlXCIgKnN0ZXBUaXRsZT57eyAnQHByeS5yZXN0aXR1dGlvbi5zaGFyZScgfCBpMThuIH19PC9oND5cbiAgICAgICAgPHByeS1hY2Nlc3MtcmlnaHRzLXNoYXJlXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2Nlc3NSaWdodHNCeUdyb3VwXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VBY2Nlc3NSaWdodHMoJGV2ZW50KVwiXG4gICAgICAgICAgW21hbmlmZXN0RGVzY3JpcHRpb25dPVwiY3VycmVudE1hbmlmZXN0XCJcbiAgICAgICAgPjwvcHJ5LWFjY2Vzcy1yaWdodHMtc2hhcmU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJzdGVwcGVyLnByZXYoKVwiPlxuICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLmJhY2snIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgICAjY29uZmlybVxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5yZXN0aXR1dGlvbi5zaGFyZScgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wcnktc3RlcD5cbiAgICA8L3ByeS1zdGVwcGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVEaXJlY3RTYXZlVHlwZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiby1tb2RhbFwiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgaWQ9XCJkaXJlY3RpdmVTYXZlXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2dfdGl0bGVcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbG9zZU1vZGFscygpXCJcbiAgICA+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiIGlkPVwiZGlhbG9nX3RpdGxlX1wiPnt7ICdAcHJ5LnRvb2xib3guc2F2ZScgfCBpMThuIH19PC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAjZmlyc3RGb2N1c2RpcmVjdGl2ZSAoY2xpY2spPVwidG9nZ2xlRGlyZWN0U2F2ZVR5cGUoKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aDM+e3sgJ0Bwcnkuc25hY2sucGFnZXNDaGFuZ2VkJyB8IGkxOG4gfX08L2gzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cInNhdmUoKVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94LnNhdmUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwicmVuYW1lKClcIj5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5yZW5hbWUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwicmVzdG9yZSgpXCIgKGtleWRvd24udGFiKT1cImNsb3NlTW9kYWxzKClcIj5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5yZXN0b3JlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=