@c8y/ngx-components 1021.7.0 → 1021.13.3

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 (139) hide show
  1. package/alarms/alarms-date-filter.component.d.ts +34 -0
  2. package/alarms/alarms-date-filter.component.d.ts.map +1 -0
  3. package/alarms/alarms-filter.component.d.ts +2 -1
  4. package/alarms/alarms-filter.component.d.ts.map +1 -1
  5. package/alarms/alarms-view.service.d.ts +4 -2
  6. package/alarms/alarms-view.service.d.ts.map +1 -1
  7. package/alarms/alarms.component.d.ts +3 -1
  8. package/alarms/alarms.component.d.ts.map +1 -1
  9. package/alarms/alarms.model.d.ts +17 -1
  10. package/alarms/alarms.model.d.ts.map +1 -1
  11. package/alarms/alarms.module.d.ts +15 -13
  12. package/alarms/alarms.module.d.ts.map +1 -1
  13. package/branding/shared/data/store-branding.service.d.ts +5 -0
  14. package/branding/shared/data/store-branding.service.d.ts.map +1 -1
  15. package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
  16. package/cockpit-config/cockpit-config.model.d.ts +1 -0
  17. package/cockpit-config/cockpit-config.model.d.ts.map +1 -1
  18. package/context-dashboard/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
  19. package/core/common/options.service.d.ts +1 -1
  20. package/core/common/options.service.d.ts.map +1 -1
  21. package/core/dashboard/dashboard.module.d.ts +19 -19
  22. package/core/dashboard/widget-change-event.model.d.ts +1 -1
  23. package/core/dashboard/widget-change-event.model.d.ts.map +1 -1
  24. package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts +2 -1
  25. package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts.map +1 -1
  26. package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
  27. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +2 -1
  28. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
  29. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +1 -14
  30. package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
  31. package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  32. package/core/forms/validation-pattern.d.ts +4 -0
  33. package/core/forms/validation-pattern.d.ts.map +1 -1
  34. package/core/plugins/plugins.service.d.ts +1 -1
  35. package/core/plugins/plugins.service.d.ts.map +1 -1
  36. package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +4 -4
  37. package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +3 -3
  38. package/esm2022/alarms/alarms-date-filter.component.mjs +139 -0
  39. package/esm2022/alarms/alarms-filter.component.mjs +11 -5
  40. package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
  41. package/esm2022/alarms/alarms-view.service.mjs +15 -2
  42. package/esm2022/alarms/alarms.component.mjs +12 -6
  43. package/esm2022/alarms/alarms.model.mjs +17 -1
  44. package/esm2022/alarms/alarms.module.mjs +11 -4
  45. package/esm2022/assets-navigator/asset-selector/asset-selector-node.component.mjs +3 -3
  46. package/esm2022/branding/shared/data/store-branding.service.mjs +24 -1
  47. package/esm2022/branding/shared/lazy/branding/branding.component.mjs +3 -1
  48. package/esm2022/cockpit-config/cockpit-config.model.mjs +3 -2
  49. package/esm2022/cockpit-config/feature-config.component.mjs +3 -3
  50. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.module.mjs +5 -3
  51. package/esm2022/core/action-bar/action-bar.component.mjs +3 -3
  52. package/esm2022/core/common/options.service.mjs +3 -3
  53. package/esm2022/core/dashboard/dashboard.module.mjs +5 -4
  54. package/esm2022/core/dashboard/widget-change-event.model.mjs +1 -1
  55. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-helper.service.mjs +3 -2
  56. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +1 -1
  57. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +6 -5
  58. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +3 -47
  59. package/esm2022/core/date-time-picker/date-time-picker.component.mjs +7 -1
  60. package/esm2022/core/docs/defaults.items.mjs +2 -2
  61. package/esm2022/core/forms/validation-pattern.mjs +5 -1
  62. package/esm2022/core/list-display-switch/list-display-switch.component.mjs +3 -3
  63. package/esm2022/core/plugins/plugins.service.mjs +3 -3
  64. package/esm2022/core/router/context-route.guard.mjs +2 -2
  65. package/esm2022/core/search/search-input.component.mjs +3 -3
  66. package/esm2022/interval-picker/c8y-ngx-components-interval-picker.mjs +5 -0
  67. package/esm2022/interval-picker/index.mjs +3 -0
  68. package/esm2022/interval-picker/interval-picker.component.mjs +68 -0
  69. package/esm2022/interval-picker/interval-picker.model.mjs +47 -0
  70. package/esm2022/operations/bulk-operation-scheduler/operation-scheduler.component.mjs +7 -5
  71. package/esm2022/search/search-action.component.mjs +3 -3
  72. package/esm2022/tenants/custom-properties/custom-properties.component.mjs +90 -0
  73. package/esm2022/tenants/custom-properties/custom-properties.service.mjs +76 -0
  74. package/esm2022/tenants/custom-properties/custom-property-field/custom-property-field.component.mjs +29 -0
  75. package/esm2022/tenants/index.mjs +2 -1
  76. package/esm2022/tenants/tenant-limits/tenant-limits-definitions.mjs +92 -0
  77. package/esm2022/tenants/tenant-limits/tenant-limits.component.mjs +124 -0
  78. package/esm2022/tenants/tenants.module.mjs +42 -4
  79. package/esm2022/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.mjs +2 -2
  80. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +5 -5
  81. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  82. package/fesm2022/c8y-ngx-components-alarms.mjs +184 -16
  83. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  84. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +2 -2
  85. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  86. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +23 -0
  87. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  88. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -0
  89. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  90. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +4 -3
  91. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  92. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +4 -2
  93. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  94. package/fesm2022/c8y-ngx-components-interval-picker.mjs +120 -0
  95. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -0
  96. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +6 -4
  97. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
  98. package/fesm2022/c8y-ngx-components-search.mjs +2 -2
  99. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  100. package/fesm2022/c8y-ngx-components-tenants.mjs +416 -11
  101. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  102. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +1 -1
  103. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  104. package/fesm2022/c8y-ngx-components.mjs +292 -372
  105. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  106. package/interval-picker/c8y-ngx-components-interval-picker.d.ts.map +1 -0
  107. package/interval-picker/index.d.ts +3 -0
  108. package/interval-picker/index.d.ts.map +1 -0
  109. package/{core/dashboard/wiget-time-context/interval-picker → interval-picker}/interval-picker.component.d.ts +10 -2
  110. package/interval-picker/interval-picker.component.d.ts.map +1 -0
  111. package/interval-picker/interval-picker.model.d.ts +15 -0
  112. package/interval-picker/interval-picker.model.d.ts.map +1 -0
  113. package/locales/de.po +4 -1
  114. package/locales/en.po +3 -0
  115. package/locales/en_US.po +3 -0
  116. package/locales/es.po +3 -0
  117. package/locales/fr.po +3 -0
  118. package/locales/ja_JP.po +3 -0
  119. package/locales/locales.pot +47 -3
  120. package/locales/nl.po +3 -0
  121. package/locales/pl.po +3 -0
  122. package/locales/pt_BR.po +3 -0
  123. package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
  124. package/package.json +1 -1
  125. package/tenants/custom-properties/custom-properties.component.d.ts +26 -0
  126. package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -0
  127. package/tenants/custom-properties/custom-properties.service.d.ts +26 -0
  128. package/tenants/custom-properties/custom-properties.service.d.ts.map +1 -0
  129. package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts +10 -0
  130. package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts.map +1 -0
  131. package/tenants/index.d.ts +1 -0
  132. package/tenants/index.d.ts.map +1 -1
  133. package/tenants/tenant-limits/tenant-limits-definitions.d.ts +117 -0
  134. package/tenants/tenant-limits/tenant-limits-definitions.d.ts.map +1 -0
  135. package/tenants/tenant-limits/tenant-limits.component.d.ts +39 -0
  136. package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -0
  137. package/tenants/tenants.module.d.ts.map +1 -1
  138. package/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.d.ts.map +0 -1
  139. package/esm2022/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.mjs +0 -55
@@ -18,7 +18,8 @@ import * as i6 from "ngx-bootstrap/tooltip";
18
18
  import * as i7 from "./alarms-filter.component";
19
19
  import * as i8 from "./alarms-interval-refresh.component";
20
20
  import * as i9 from "./alarms-list.component";
21
- import * as i10 from "./alarms-type-filter.component";
21
+ import * as i10 from "./alarms-date-filter.component";
22
+ import * as i11 from "./alarms-type-filter.component";
22
23
  export class AlarmsComponent {
23
24
  constructor(activatedRoute, alarmsViewService, alarmWithChildrenRealtimeService, alertService, contextRouteService, modalService, translateService, router) {
24
25
  this.activatedRoute = activatedRoute;
@@ -70,13 +71,18 @@ export class AlarmsComponent {
70
71
  this.alarmsViewService.reloadAlarmsList$.next();
71
72
  this.isRealtimeActive.next(false);
72
73
  }
73
- applyFormFilters({ severityOptions, showCleared }) {
74
+ applyFormFilters({ severityOptions, showCleared, selectedDates }) {
74
75
  this.severityOptions = severityOptions;
75
76
  this.showCleared = showCleared;
77
+ this.selectedDates = selectedDates;
76
78
  this.selectedSeverities = this.alarmsViewService.updateSelectedSeverities(this.severityOptions);
77
79
  this.alarmsViewService.reloadAlarmsList$.next();
78
80
  this.isRealtimeActive.next(false);
79
81
  }
82
+ async applyDateFilter(selectedDates) {
83
+ this.alarms$.next(await this.alarmsViewService.retrieveAlarmsByDate(selectedDates));
84
+ this.isRealtimeActive.next(false);
85
+ }
80
86
  async clearAll() {
81
87
  try {
82
88
  const translatedBody = this.translateService.instant(gettext('Do you really want to clear all alarms of selected severities?'));
@@ -139,7 +145,7 @@ export class AlarmsComponent {
139
145
  if (this.typeFilters.length > 0) {
140
146
  additionalFilter.type = this.typeFilters.map(({ filters }) => filters.type).join(',');
141
147
  }
142
- return await this.alarmsViewService.retrieveAlarms(this.selectedSeverities, this.showCleared, additionalFilter);
148
+ return await this.alarmsViewService.retrieveFilteredAlarms(this.selectedSeverities, this.showCleared, this.selectedDates, additionalFilter);
143
149
  }
144
150
  catch (error) {
145
151
  if (error?.res?.status === 403) {
@@ -172,13 +178,13 @@ export class AlarmsComponent {
172
178
  this.contextSourceId = this.contextRouteService.getContextData(this.activatedRoute)?.contextData?.id;
173
179
  }
174
180
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.AlarmsViewService }, { token: i3.AlarmWithChildrenRealtimeService }, { token: i3.AlertService }, { token: i3.ContextRouteService }, { token: i3.ModalService }, { token: i4.TranslateService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
175
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsComponent, selector: "c8y-alarms", providers: [AlarmWithChildrenRealtimeService], viewQueries: [{ propertyName: "alarmIntervalRefreshComponent", first: true, predicate: AlarmsIntervalRefreshComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"(activatedRoute.data | async)?.title\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-alarms-filter\n [contextSourceId]=\"contextSourceId\"\n (onFilterApplied)=\"applyFormFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-alarms-type-filter\n [alarms]=\"alarms$ | async\"\n (onFilterChanged)=\"applyTypeFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-type-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"0\"\n>\n <button\n class=\"btn btn-link\"\n [title]=\"'Clear all alarms' | translate\"\n type=\"button\"\n (click)=\"clearAll()\"\n data-cy=\"c8y-alarms-view--clear-all-button\"\n >\n <i c8yIcon=\"c8y-alert-idle\"></i>\n {{ 'Clear all`alarms`' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<!--Realtime button-->\n<ng-template #realtimeRefresh>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"\n (isRealtimeActive | async)\n ? (NEW_REALTIME_ALARM_MESSAGE | translate)\n : (REFRESH_LABEL | translate)\n \"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isLoading$ | async\"\n (click)=\"refresh()\"\n >\n <span\n class=\"tag tag--info m-r-8\"\n *ngIf=\"isRealtimeActive | async\"\n >\n {{ 'New alarms' | translate }}\n </span>\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading$ | async }\"\n ></i>\n </button>\n <button\n class=\"c8y-realtime btn btn-default btn-sm\"\n [attr.aria-label]=\"realtimeIconTitle\"\n [tooltip]=\"realtimeIconTitle\"\n placement=\"bottom\"\n type=\"button\"\n [container]=\"'body'\"\n (click)=\"toggleRealtimeState()\"\n >\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{\n active: isRealtimeToggleOn,\n inactive: !isRealtimeToggleOn\n }\"\n ></span>\n </button>\n </div>\n</ng-template>\n\n<c8y-help\n src=\"/docs/device-management-application/monitoring-and-controlling-devices/#working-with-alarms\"\n></c8y-help>\n\n<div class=\"card content-fullpage split-view--5-7 grid__row--1\">\n <c8y-alarms-list\n class=\"d-contents\"\n [isInitialLoading]=\"isLoading$ | async\"\n [alarms]=\"alarms$ | async\"\n [typeFilters]=\"typeFilters\"\n (onScrollingStateChange)=\"changeInterval(!$event)\"\n (onSelectedAlarm)=\"changeInterval(false)\"\n [splitView]=\"true\"\n [hasPermissions]=\"!isDisabled\"\n >\n <ng-container *ngIf=\"isIntervalRefresh; else realtimeRefresh\">\n <c8y-alarms-interval-refresh\n [alarmsListLoading$]=\"isLoading$\"\n [isIntervalToggleEnabled]=\"shouldShowIntervalToggle$ | async\"\n (onCountdownEnded)=\"refresh()\"\n [isDisabled]=\"isDisabled\"\n ></c8y-alarms-interval-refresh>\n </ng-container>\n </c8y-alarms-list>\n\n <router-outlet class=\"d-contents\"></router-outlet>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i7.AlarmsFilterComponent, selector: "c8y-alarms-filter", inputs: ["contextSourceId"], outputs: ["onFilterApplied"] }, { kind: "component", type: i8.AlarmsIntervalRefreshComponent, selector: "c8y-alarms-interval-refresh", inputs: ["isDisabled", "alarmsListLoading$", "isIntervalToggleEnabled"], outputs: ["onCountdownEnded"] }, { kind: "component", type: i9.AlarmsListComponent, selector: "c8y-alarms-list", inputs: ["alarms", "hasPermissions", "typeFilters", "loadMoreMode", "navigationOptions", "isInitialLoading", "splitView"], outputs: ["onSelectedAlarm", "onScrollingStateChange"] }, { kind: "component", type: i10.AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: ["alarms"], outputs: ["onFilterChanged"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
181
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsComponent, selector: "c8y-alarms", providers: [AlarmWithChildrenRealtimeService], viewQueries: [{ propertyName: "alarmIntervalRefreshComponent", first: true, predicate: AlarmsIntervalRefreshComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"(activatedRoute.data | async)?.title\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form min-width-fit\"\n>\n <c8y-alarms-filter\n [contextSourceId]=\"contextSourceId\"\n (onFilterApplied)=\"applyFormFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item \n [placement]=\"'left'\"\n itemClass=\"navbar-form min-width-fit\"\n>\n <c8y-alarms-date-filter (dateFilterChange)=\"applyFormFilters($event)\"></c8y-alarms-date-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-alarms-type-filter\n [alarms]=\"alarms$ | async\"\n (onFilterChanged)=\"applyTypeFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-type-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"0\"\n>\n <button\n class=\"btn btn-link\"\n [title]=\"'Clear all alarms' | translate\"\n type=\"button\"\n (click)=\"clearAll()\"\n data-cy=\"c8y-alarms-view--clear-all-button\"\n >\n <i c8yIcon=\"c8y-alert-idle\"></i>\n {{ 'Clear all`alarms`' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<!--Realtime button-->\n<ng-template #realtimeRefresh>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"\n (isRealtimeActive | async)\n ? (NEW_REALTIME_ALARM_MESSAGE | translate)\n : (REFRESH_LABEL | translate)\n \"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isLoading$ | async\"\n (click)=\"refresh()\"\n >\n <span\n class=\"tag tag--info m-r-8\"\n *ngIf=\"isRealtimeActive | async\"\n >\n {{ 'New alarms' | translate }}\n </span>\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading$ | async }\"\n ></i>\n </button>\n <button\n class=\"c8y-realtime btn btn-default btn-sm\"\n [attr.aria-label]=\"realtimeIconTitle\"\n [tooltip]=\"realtimeIconTitle\"\n placement=\"bottom\"\n type=\"button\"\n [container]=\"'body'\"\n (click)=\"toggleRealtimeState()\"\n >\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{\n active: isRealtimeToggleOn,\n inactive: !isRealtimeToggleOn\n }\"\n ></span>\n </button>\n </div>\n</ng-template>\n\n<c8y-help\n src=\"/docs/device-management-application/monitoring-and-controlling-devices/#working-with-alarms\"\n></c8y-help>\n\n<div class=\"card content-fullpage split-view--5-7 grid__row--1\">\n <c8y-alarms-list\n class=\"d-contents\"\n [isInitialLoading]=\"isLoading$ | async\"\n [alarms]=\"alarms$ | async\"\n [typeFilters]=\"typeFilters\"\n (onScrollingStateChange)=\"changeInterval(!$event)\"\n (onSelectedAlarm)=\"changeInterval(false)\"\n [splitView]=\"true\"\n [hasPermissions]=\"!isDisabled\"\n >\n <ng-container *ngIf=\"isIntervalRefresh; else realtimeRefresh\">\n <c8y-alarms-interval-refresh\n [alarmsListLoading$]=\"isLoading$\"\n [isIntervalToggleEnabled]=\"shouldShowIntervalToggle$ | async\"\n (onCountdownEnded)=\"refresh()\"\n [isDisabled]=\"isDisabled\"\n ></c8y-alarms-interval-refresh>\n </ng-container>\n </c8y-alarms-list>\n\n <router-outlet class=\"d-contents\"></router-outlet>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i7.AlarmsFilterComponent, selector: "c8y-alarms-filter", inputs: ["contextSourceId"], outputs: ["onFilterApplied"] }, { kind: "component", type: i8.AlarmsIntervalRefreshComponent, selector: "c8y-alarms-interval-refresh", inputs: ["isDisabled", "alarmsListLoading$", "isIntervalToggleEnabled"], outputs: ["onCountdownEnded"] }, { kind: "component", type: i9.AlarmsListComponent, selector: "c8y-alarms-list", inputs: ["alarms", "hasPermissions", "typeFilters", "loadMoreMode", "navigationOptions", "isInitialLoading", "splitView"], outputs: ["onSelectedAlarm", "onScrollingStateChange"] }, { kind: "component", type: i10.AlarmsDateFilterComponent, selector: "c8y-alarms-date-filter", outputs: ["dateFilterChange"] }, { kind: "component", type: i11.AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: ["alarms"], outputs: ["onFilterChanged"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
176
182
  }
177
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsComponent, decorators: [{
178
184
  type: Component,
179
- args: [{ selector: 'c8y-alarms', providers: [AlarmWithChildrenRealtimeService], template: "<ng-container *ngIf=\"(activatedRoute.data | async)?.title\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-alarms-filter\n [contextSourceId]=\"contextSourceId\"\n (onFilterApplied)=\"applyFormFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-alarms-type-filter\n [alarms]=\"alarms$ | async\"\n (onFilterChanged)=\"applyTypeFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-type-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"0\"\n>\n <button\n class=\"btn btn-link\"\n [title]=\"'Clear all alarms' | translate\"\n type=\"button\"\n (click)=\"clearAll()\"\n data-cy=\"c8y-alarms-view--clear-all-button\"\n >\n <i c8yIcon=\"c8y-alert-idle\"></i>\n {{ 'Clear all`alarms`' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<!--Realtime button-->\n<ng-template #realtimeRefresh>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"\n (isRealtimeActive | async)\n ? (NEW_REALTIME_ALARM_MESSAGE | translate)\n : (REFRESH_LABEL | translate)\n \"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isLoading$ | async\"\n (click)=\"refresh()\"\n >\n <span\n class=\"tag tag--info m-r-8\"\n *ngIf=\"isRealtimeActive | async\"\n >\n {{ 'New alarms' | translate }}\n </span>\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading$ | async }\"\n ></i>\n </button>\n <button\n class=\"c8y-realtime btn btn-default btn-sm\"\n [attr.aria-label]=\"realtimeIconTitle\"\n [tooltip]=\"realtimeIconTitle\"\n placement=\"bottom\"\n type=\"button\"\n [container]=\"'body'\"\n (click)=\"toggleRealtimeState()\"\n >\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{\n active: isRealtimeToggleOn,\n inactive: !isRealtimeToggleOn\n }\"\n ></span>\n </button>\n </div>\n</ng-template>\n\n<c8y-help\n src=\"/docs/device-management-application/monitoring-and-controlling-devices/#working-with-alarms\"\n></c8y-help>\n\n<div class=\"card content-fullpage split-view--5-7 grid__row--1\">\n <c8y-alarms-list\n class=\"d-contents\"\n [isInitialLoading]=\"isLoading$ | async\"\n [alarms]=\"alarms$ | async\"\n [typeFilters]=\"typeFilters\"\n (onScrollingStateChange)=\"changeInterval(!$event)\"\n (onSelectedAlarm)=\"changeInterval(false)\"\n [splitView]=\"true\"\n [hasPermissions]=\"!isDisabled\"\n >\n <ng-container *ngIf=\"isIntervalRefresh; else realtimeRefresh\">\n <c8y-alarms-interval-refresh\n [alarmsListLoading$]=\"isLoading$\"\n [isIntervalToggleEnabled]=\"shouldShowIntervalToggle$ | async\"\n (onCountdownEnded)=\"refresh()\"\n [isDisabled]=\"isDisabled\"\n ></c8y-alarms-interval-refresh>\n </ng-container>\n </c8y-alarms-list>\n\n <router-outlet class=\"d-contents\"></router-outlet>\n</div>\n" }]
185
+ args: [{ selector: 'c8y-alarms', providers: [AlarmWithChildrenRealtimeService], template: "<ng-container *ngIf=\"(activatedRoute.data | async)?.title\">\n <c8y-title>{{ TITLE | translate }}</c8y-title>\n</ng-container>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form min-width-fit\"\n>\n <c8y-alarms-filter\n [contextSourceId]=\"contextSourceId\"\n (onFilterApplied)=\"applyFormFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item \n [placement]=\"'left'\"\n itemClass=\"navbar-form min-width-fit\"\n>\n <c8y-alarms-date-filter (dateFilterChange)=\"applyFormFilters($event)\"></c8y-alarms-date-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-alarms-type-filter\n [alarms]=\"alarms$ | async\"\n (onFilterChanged)=\"applyTypeFilters($event)\"\n class=\"d-block fit-w\"\n ></c8y-alarms-type-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n [priority]=\"0\"\n>\n <button\n class=\"btn btn-link\"\n [title]=\"'Clear all alarms' | translate\"\n type=\"button\"\n (click)=\"clearAll()\"\n data-cy=\"c8y-alarms-view--clear-all-button\"\n >\n <i c8yIcon=\"c8y-alert-idle\"></i>\n {{ 'Clear all`alarms`' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<!--Realtime button-->\n<ng-template #realtimeRefresh>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"\n (isRealtimeActive | async)\n ? (NEW_REALTIME_ALARM_MESSAGE | translate)\n : (REFRESH_LABEL | translate)\n \"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"isLoading$ | async\"\n (click)=\"refresh()\"\n >\n <span\n class=\"tag tag--info m-r-8\"\n *ngIf=\"isRealtimeActive | async\"\n >\n {{ 'New alarms' | translate }}\n </span>\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading$ | async }\"\n ></i>\n </button>\n <button\n class=\"c8y-realtime btn btn-default btn-sm\"\n [attr.aria-label]=\"realtimeIconTitle\"\n [tooltip]=\"realtimeIconTitle\"\n placement=\"bottom\"\n type=\"button\"\n [container]=\"'body'\"\n (click)=\"toggleRealtimeState()\"\n >\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{\n active: isRealtimeToggleOn,\n inactive: !isRealtimeToggleOn\n }\"\n ></span>\n </button>\n </div>\n</ng-template>\n\n<c8y-help\n src=\"/docs/device-management-application/monitoring-and-controlling-devices/#working-with-alarms\"\n></c8y-help>\n\n<div class=\"card content-fullpage split-view--5-7 grid__row--1\">\n <c8y-alarms-list\n class=\"d-contents\"\n [isInitialLoading]=\"isLoading$ | async\"\n [alarms]=\"alarms$ | async\"\n [typeFilters]=\"typeFilters\"\n (onScrollingStateChange)=\"changeInterval(!$event)\"\n (onSelectedAlarm)=\"changeInterval(false)\"\n [splitView]=\"true\"\n [hasPermissions]=\"!isDisabled\"\n >\n <ng-container *ngIf=\"isIntervalRefresh; else realtimeRefresh\">\n <c8y-alarms-interval-refresh\n [alarmsListLoading$]=\"isLoading$\"\n [isIntervalToggleEnabled]=\"shouldShowIntervalToggle$ | async\"\n (onCountdownEnded)=\"refresh()\"\n [isDisabled]=\"isDisabled\"\n ></c8y-alarms-interval-refresh>\n </ng-container>\n </c8y-alarms-list>\n\n <router-outlet class=\"d-contents\"></router-outlet>\n</div>\n" }]
180
186
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.AlarmsViewService }, { type: i3.AlarmWithChildrenRealtimeService }, { type: i3.AlertService }, { type: i3.ContextRouteService }, { type: i3.ModalService }, { type: i4.TranslateService }, { type: i1.Router }], propDecorators: { alarmIntervalRefreshComponent: [{
181
187
  type: ViewChild,
182
188
  args: [AlarmsIntervalRefreshComponent]
183
189
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBSUwsZUFBZSxFQUdoQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIseUJBQXlCLEVBQzFCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU94QixNQUFNLE9BQU8sZUFBZTtJQXlCMUIsWUFDUyxjQUE4QixFQUM3QixpQkFBb0MsRUFDcEMsZ0NBQWtFLEVBQ2xFLFlBQTBCLEVBQzFCLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsTUFBYztRQVBmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixzQkFBaUIsR0FBakIsaUJB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b3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFsYXJtUXVlcnlGaWx0ZXIsXG4gIElBbGFybSxcbiAgSVJlc3VsdExpc3QsXG4gIFNFVkVSSVRZX0xBQkVMUyxcbiAgU2V2ZXJpdHlGaWx0ZXIsXG4gIFNldmVyaXR5VHlwZVxufSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZSxcbiAgQWxlcnRTZXJ2aWNlLFxuICBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICBNb2RhbFNlcnZpY2UsXG4gIGdldHRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcbmltcG9ydCB7IEFsYXJtc0ludGVydmFsUmVmcmVzaENvbXBvbmVudCB9IGZyb20gJy4vYWxhcm1zLWludGVydmFsLXJlZnJlc2guY29tcG9uZW50JztcbmltcG9ydCB7IEFsYXJtc1ZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9hbGFybXMtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFsYXJtTGlzdEZvcm1GaWx0ZXJzLFxuICBERUZBVUxUX1NFVkVSSVRZX1ZBTFVFUyxcbiAgVEhST1RUTEVfUkVBTFRJTUVfUkVGUkVTSFxufSBmcm9tICcuL2FsYXJtcy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm1zLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbQWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgTkVXX1JFQUxUSU1FX0FMQVJNX01FU1NBR0UgPSB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLlJFQUxUSU1FX1VQREFURV9BTEFSTVNfTUVTU0FHRTtcbiAgcmVhZG9ubHkgVElUTEUgPSBnZXR0ZXh0KCdBbGFybXMnKTtcbiAgcmVhZG9ubHkgUkVGUkVTSF9MQUJFTCA9IGdldHRleHQoJ1JlZnJlc2gnKTtcblxuICBAVmlld0NoaWxkKEFsYXJtc0ludGVydmFsUmVmcmVzaENvbXBvbmVudClcbiAgYWxhcm1JbnRlcnZhbFJlZnJlc2hDb21wb25lbnQ6IEFsYXJtc0ludGVydmFsUmVmcmVzaENvbXBvbmVudDtcbiAgYWxhcm1zJDogQmVoYXZpb3JTdWJqZWN0PElSZXN1bHRMaXN0PElBbGFybT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJUmVzdWx0TGlzdDxJQWxhcm0+PihudWxsKTtcbiAgY29udGV4dFNvdXJjZUlkOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsO1xuICAvKiogcmVzcG9uc2libGUgZm9yIHNob3dpbmcgZWl0aGVyIHJlYWx0aW1lIGJ1dHRvbiBvciBpbnRlcnZhbHMsIGJhc2VkIG9uICdyZWZyZXNoVHlwZScga2V5IGluIE9wdGlvbnNTZXJ2aWNlICovXG4gIGlzSW50ZXJ2YWxSZWZyZXNoOiBib29sZWFuO1xuICBpc0xvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaXNSZWFsdGltZUFjdGl2ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFsdGltZUljb25UaXRsZTogc3RyaW5nO1xuICBzaG91bGRTaG93SW50ZXJ2YWxUb2dnbGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgaXNSZWFsdGltZVRvZ2dsZU9uID0gdHJ1ZTtcbiAgdHlwZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdID0gW107XG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFNldmVyaXRpZXMgPSBPYmplY3Qua2V5cyhTRVZFUklUWV9MQUJFTFMpIGFzIFNldmVyaXR5VHlwZVtdO1xuICBwcml2YXRlIHNldmVyaXR5T3B0aW9uczogU2V2ZXJpdHlGaWx0ZXIgPSBERUZBVUxUX1NFVkVSSVRZX1ZBTFVFUztcbiAgcHJpdmF0ZSBzaG93Q2xlYXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IFdBSVRfVElNRV9BVk9JRF9NVUxUSVBMRV9SRVFVRVNUX0JZX1BBUkFNX0NIQU5HRSA9IDEwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgYWxhcm1zVmlld1NlcnZpY2U6IEFsYXJtc1ZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2U6IEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0Um91dGVTZXJ2aWNlOiBDb250ZXh0Um91dGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaCA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuaXNJbnRlcnZhbFJlZnJlc2goKTtcbiAgICB0aGlzLmluaXRpYWxpemVDb250ZXh0U291cmNlSWQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGlzSW5EZXRhaWxWaWV3ID0gISF0aGlzLmFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuWzBdPy5zbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgaWYgKGlzSW5EZXRhaWxWaWV3KSB7XG4gICAgICB0aGlzLmNoYW5nZUludGVydmFsKGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2gpIHtcbiAgICAgIHRoaXMuaGFuZGxlTGVnYWN5UmVhbHRpbWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJlbG9hZEFsYXJtc0xpc3QkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuV0FJVF9USU1FX0FWT0lEX01VTFRJUExFX1JFUVVFU1RfQllfUEFSQU1fQ0hBTkdFKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVBbGFybXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgYXBwbHlUeXBlRmlsdGVycyh0eXBlRmlsdGVyczogQWxhcm1EZXRhaWxzW10pOiB2b2lkIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzID0gdHlwZUZpbHRlcnM7XG4gICAgdGhpcy5hbGFybXNWaWV3U2VydmljZS5yZWxvYWRBbGFybXNMaXN0JC5uZXh0KCk7XG4gICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgYXBwbHlGb3JtRmlsdGVycyh7IHNldmVyaXR5T3B0aW9ucywgc2hvd0NsZWFyZWQgfTogQWxhcm1MaXN0Rm9ybUZpbHRlcnMpOiB2b2lkIHtcbiAgICB0aGlzLnNldmVyaXR5T3B0aW9ucyA9IHNldmVyaXR5T3B0aW9ucztcbiAgICB0aGlzLnNob3dDbGVhcmVkID0gc2hvd0NsZWFyZWQ7XG4gICAgdGhpcy5zZWxlY3RlZFNldmVyaXRpZXMgPSB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnVwZGF0ZVNlbGVjdGVkU2V2ZXJpdGllcyh0aGlzLnNldmVyaXR5T3B0aW9ucyk7XG4gICAgdGhpcy5hbGFybXNWaWV3U2VydmljZS5yZWxvYWRBbGFybXNMaXN0JC5uZXh0KCk7XG4gICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRCb2R5ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoJ0RvIHlvdSByZWFsbHkgd2FudCB0byBjbGVhciBhbGwgYWxhcm1zIG9mIHNlbGVjdGVkIHNldmVyaXRpZXM/JylcbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdDb25maXJtIGNsZWFyaW5nIGFsYXJtcz8nKSxcbiAgICAgICAgdHJhbnNsYXRlZEJvZHksXG4gICAgICAgICdkYW5nZXInLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ0NvbmZpcm0nKSxcbiAgICAgICAgICBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBtb2RhbCBjYW5jZWxlZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuY2xlYXJBbGFybXMoKTtcbiAgfVxuXG4gIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBbGFybXMoKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBjaGFuZ2VJbnRlcnZhbCh2YWx1ZSA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnNob3VsZFNob3dJbnRlcnZhbFRvZ2dsZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICB0b2dnbGVSZWFsdGltZVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uID0gIXRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMZWdhY3lSZWFsdGltZSgpIHtcbiAgICB0aGlzLnJlYWx0aW1lSWNvblRpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnUmVhbHRpbWUgYWN0aXZlJykpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9SZWFsdGltZVVwZGF0ZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xlYXJBbGFybXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuY2xlYXJBbGxBY3RpdmVBbGFybXMoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZXZlcml0aWVzLFxuICAgICAgICB0aGlzLmNvbnRleHRTb3VyY2VJZFxuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3VsdC5yZXNvbHZlZEltbWVkaWF0ZWx5KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnQWxhcm1zIGNsZWFyZWQuJykpKTtcbiAgICAgICAgdGhpcy5iYWNrVG9Sb290Um91dGUoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ0FsYXJtcyBhcmUgYmVpbmcgY2xlYXJlZCBpbiBiYWNrZ3JvdW5kLicpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJhY2tUb1Jvb3RSb3V0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0RGF0YSA9IHRoaXMuY29udGV4dFJvdXRlU2VydmljZS5nZXRDb250ZXh0RGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLmdldFJvdXRlck5hdmlnYXRpb25BcnJheShjb250ZXh0RGF0YSksIHtcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZSdcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxhcm1zKCk6IFByb21pc2U8SVJlc3VsdExpc3Q8SUFsYXJtPj4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgICAgY29uc3QgYWRkaXRpb25hbEZpbHRlcjogUGFydGlhbDxBbGFybVF1ZXJ5RmlsdGVyPiA9IHt9O1xuXG4gICAgICBpZiAodGhpcy5jb250ZXh0U291cmNlSWQpIHtcbiAgICAgICAgKGFkZGl0aW9uYWxGaWx0ZXIuc291cmNlID0gdGhpcy5jb250ZXh0U291cmNlSWQpLFxuICAgICAgICAgIChhZGRpdGlvbmFsRmlsdGVyLndpdGhTb3VyY2VBc3NldHMgPSB0cnVlKSxcbiAgICAgICAgICAoYWRkaXRpb25hbEZpbHRlci53aXRoU291cmNlRGV2aWNlcyA9IHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50eXBlRmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGFkZGl0aW9uYWxGaWx0ZXIudHlwZSA9IHRoaXMudHlwZUZpbHRlcnMubWFwKCh7IGZpbHRlcnMgfSkgPT4gZmlsdGVycy50eXBlKS5qb2luKCcsJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJldHJpZXZlQWxhcm1zKFxuICAgICAgICB0aGlzLnNlbGVjdGVkU2V2ZXJpdGllcyxcbiAgICAgICAgdGhpcy5zaG93Q2xlYXJlZCxcbiAgICAgICAgYWRkaXRpb25hbEZpbHRlclxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yPy5yZXM/LnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVBbGFybXMoKSB7XG4gICAgdGhpcy5hbGFybXMkLm5leHQoYXdhaXQgdGhpcy5nZXRBbGFybXMoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvUmVhbHRpbWVVcGRhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2VcbiAgICAgIC5vbkFsbCQodGhpcy5jb250ZXh0U291cmNlSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoVEhST1RUTEVfUkVBTFRJTUVfUkVGUkVTSCwgdW5kZWZpbmVkLCB7IHRyYWlsaW5nOiB0cnVlIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29udGV4dFNvdXJjZUlkKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dFNvdXJjZUlkID0gdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLmdldENvbnRleHREYXRhKFxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZVxuICAgICk/LmNvbnRleHREYXRhPy5pZDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIihhY3RpdmF0ZWRSb3V0ZS5kYXRhIHwgYXN5bmMpPy50aXRsZVwiPlxuICA8Yzh5LXRpdGxlPnt7IFRJVExFIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG48L25nLWNvbnRhaW5lcj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbGVmdCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiXG4+XG4gIDxjOHktYWxhcm1zLWZpbHRlclxuICAgIFtjb250ZXh0U291cmNlSWRdPVwiY29udGV4dFNvdXJjZUlkXCJcbiAgICAob25GaWx0ZXJBcHBsaWVkKT1cImFwcGx5Rm9ybUZpbHRlcnMoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13XCJcbiAgPjwvYzh5LWFsYXJtcy1maWx0ZXI+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbiAgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm1cIlxuPlxuICA8Yzh5LWFsYXJtcy10eXBlLWZpbHRlclxuICAgIFthbGFybXNdPVwiYWxhcm1zJCB8IGFzeW5jXCJcbiAgICAob25GaWx0ZXJDaGFuZ2VkKT1cImFwcGx5VHlwZUZpbHRlcnMoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13XCJcbiAgPjwvYzh5LWFsYXJtcy10eXBlLWZpbHRlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgW3ByaW9yaXR5XT1cIjBcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIFt0aXRsZV09XCInQ2xlYXIgYWxsIGFsYXJtcycgfCB0cmFuc2xhdGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJjbGVhckFsbCgpXCJcbiAgICBkYXRhLWN5PVwiYzh5LWFsYXJtcy12aWV3LS1jbGVhci1hbGwtYnV0dG9uXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJjOHktYWxlcnQtaWRsZVwiPjwvaT5cbiAgICB7eyAnQ2xlYXIgYWxsYGFsYXJtc2AnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48IS0tUmVhbHRpbWUgYnV0dG9uLS0+XG48bmctdGVtcGxhdGUgI3JlYWx0aW1lUmVmcmVzaD5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbdG9vbHRpcF09XCJcbiAgICAgICAgKGlzUmVhbHRpbWVBY3RpdmUgfCBhc3luYylcbiAgICAgICAgICA/IChORVdfUkVBTFRJTUVfQUxBUk1fTUVTU0FHRSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6IChSRUZSRVNIX0xBQkVMIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRhZyB0YWctLWluZm8gbS1yLThcIlxuICAgICAgICAqbmdJZj1cImlzUmVhbHRpbWVBY3RpdmUgfCBhc3luY1wiXG4gICAgICA+XG4gICAgICAgIHt7ICdOZXcgYWxhcm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGlcbiAgICAgICAgYzh5SWNvbj1cInJlZnJlc2hcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpY29uLXNwaW4nOiBpc0xvYWRpbmckIHwgYXN5bmMgfVwiXG4gICAgICA+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYzh5LXJlYWx0aW1lIGJ0biBidG4tZGVmYXVsdCBidG4tc21cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZWFsdGltZUljb25UaXRsZVwiXG4gICAgICBbdG9vbHRpcF09XCJyZWFsdGltZUljb25UaXRsZVwiXG4gICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbY29udGFpbmVyXT1cIidib2R5J1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlUmVhbHRpbWVTdGF0ZSgpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImM4eS1wdWxzZSBtLTBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgYWN0aXZlOiBpc1JlYWx0aW1lVG9nZ2xlT24sXG4gICAgICAgICAgaW5hY3RpdmU6ICFpc1JlYWx0aW1lVG9nZ2xlT25cbiAgICAgICAgfVwiXG4gICAgICA+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxjOHktaGVscFxuICBzcmM9XCIvZG9jcy9kZXZpY2UtbWFuYWdlbWVudC1hcHBsaWNhdGlvbi9tb25pdG9yaW5nLWFuZC1jb250cm9sbGluZy1kZXZpY2VzLyN3b3JraW5nLXdpdGgtYWxhcm1zXCJcbj48L2M4eS1oZWxwPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBjb250ZW50LWZ1bGxwYWdlIHNwbGl0LXZpZXctLTUtNyBncmlkX19yb3ctLTFcIj5cbiAgPGM4eS1hbGFybXMtbGlzdFxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgW2lzSW5pdGlhbExvYWRpbmddPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICBbYWxhcm1zXT1cImFsYXJtcyQgfCBhc3luY1wiXG4gICAgW3R5cGVGaWx0ZXJzXT1cInR5cGVGaWx0ZXJzXCJcbiAgICAob25TY3JvbGxpbmdTdGF0ZUNoYW5nZSk9XCJjaGFuZ2VJbnRlcnZhbCghJGV2ZW50KVwiXG4gICAgKG9uU2VsZWN0ZWRBbGFybSk9XCJjaGFuZ2VJbnRlcnZhbChmYWxzZSlcIlxuICAgIFtzcGxpdFZpZXddPVwidHJ1ZVwiXG4gICAgW2hhc1Blcm1pc3Npb25zXT1cIiFpc0Rpc2FibGVkXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ludGVydmFsUmVmcmVzaDsgZWxzZSByZWFsdGltZVJlZnJlc2hcIj5cbiAgICAgIDxjOHktYWxhcm1zLWludGVydmFsLXJlZnJlc2hcbiAgICAgICAgW2FsYXJtc0xpc3RMb2FkaW5nJF09XCJpc0xvYWRpbmckXCJcbiAgICAgICAgW2lzSW50ZXJ2YWxUb2dnbGVFbmFibGVkXT1cInNob3VsZFNob3dJbnRlcnZhbFRvZ2dsZSQgfCBhc3luY1wiXG4gICAgICAgIChvbkNvdW50ZG93bkVuZGVkKT1cInJlZnJlc2goKVwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgPjwvYzh5LWFsYXJtcy1pbnRlcnZhbC1yZWZyZXNoPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2M4eS1hbGFybXMtbGlzdD5cblxuICA8cm91dGVyLW91dGxldCBjbGFzcz1cImQtY29udGVudHNcIj48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBSUwsZUFBZSxFQUdoQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLFlBQVksRUFDWixtQkFBbUIsRUFFbkIsWUFBWSxFQUNaLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIseUJBQXlCLEVBQzFCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPeEIsTUFBTSxPQUFPLGVBQWU7SUEwQjFCLFlBQ1MsY0FBOEIsRUFDN0IsaUJBQW9DLEVBQ3BDLGdDQUFrRSxFQUNsRSxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLE1BQWM7UUFQZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0Isc0JBQWlCLEdBQWpCLGlC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Q3BCLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWxOVSxlQUFlO2tHQUFmLGVBQWUscUNBRmYsQ0FBQyxnQ0FBZ0MsQ0FBQyx5RkFPbEMsOEJBQThCLGdEQ3hDM0MscWtIQThIQTs7MkZEM0ZhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWSxhQUVYLENBQUMsZ0NBQWdDLENBQUM7OFNBUTdDLDZCQUE2QjtzQkFENUIsU0FBUzt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQWxhcm1RdWVyeUZpbHRlcixcbiAgSUFsYXJtLFxuICBJUmVzdWx0TGlzdCxcbiAgU0VWRVJJVFlfTEFCRUxTLFxuICBTZXZlcml0eUZpbHRlcixcbiAgU2V2ZXJpdHlUeXBlXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLFxuICBBbGVydFNlcnZpY2UsXG4gIENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gIERhdGVUaW1lQ29udGV4dCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxhcm1EZXRhaWxzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hbGFybS1ldmVudC1zZWxlY3Rvcic7XG5pbXBvcnQgeyBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybXNWaWV3U2VydmljZSB9IGZyb20gJy4vYWxhcm1zLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge1xuICBBbGFybUxpc3RGb3JtRmlsdGVycyxcbiAgREVGQVVMVF9TRVZFUklUWV9WQUxVRVMsXG4gIFRIUk9UVExFX1JFQUxUSU1FX1JFRlJFU0hcbn0gZnJvbSAnLi9hbGFybXMubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWxhcm1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtcy5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW0FsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IE5FV19SRUFMVElNRV9BTEFSTV9NRVNTQUdFID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5SRUFMVElNRV9VUERBVEVfQUxBUk1TX01FU1NBR0U7XG4gIHJlYWRvbmx5IFRJVExFID0gZ2V0dGV4dCgnQWxhcm1zJyk7XG4gIHJlYWRvbmx5IFJFRlJFU0hfTEFCRUwgPSBnZXR0ZXh0KCdSZWZyZXNoJyk7XG5cbiAgQFZpZXdDaGlsZChBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQpXG4gIGFsYXJtSW50ZXJ2YWxSZWZyZXNoQ29tcG9uZW50OiBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQ7XG4gIGFsYXJtcyQ6IEJlaGF2aW9yU3ViamVjdDxJUmVzdWx0TGlzdDxJQWxhcm0+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVJlc3VsdExpc3Q8SUFsYXJtPj4obnVsbCk7XG4gIGNvbnRleHRTb3VyY2VJZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbiAgLyoqIHJlc3BvbnNpYmxlIGZvciBzaG93aW5nIGVpdGhlciByZWFsdGltZSBidXR0b24gb3IgaW50ZXJ2YWxzLCBiYXNlZCBvbiAncmVmcmVzaFR5cGUnIGtleSBpbiBPcHRpb25zU2VydmljZSAqL1xuICBpc0ludGVydmFsUmVmcmVzaDogYm9vbGVhbjtcbiAgaXNMb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzUmVhbHRpbWVBY3RpdmUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhbHRpbWVJY29uVGl0bGU6IHN0cmluZztcbiAgc2hvdWxkU2hvd0ludGVydmFsVG9nZ2xlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIGlzUmVhbHRpbWVUb2dnbGVPbiA9IHRydWU7XG4gIHR5cGVGaWx0ZXJzOiBBbGFybURldGFpbHNbXSA9IFtdO1xuICBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgc2VsZWN0ZWRTZXZlcml0aWVzID0gT2JqZWN0LmtleXMoU0VWRVJJVFlfTEFCRUxTKSBhcyBTZXZlcml0eVR5cGVbXTtcbiAgcHJpdmF0ZSBzZXZlcml0eU9wdGlvbnM6IFNldmVyaXR5RmlsdGVyID0gREVGQVVMVF9TRVZFUklUWV9WQUxVRVM7XG4gIHByaXZhdGUgc2hvd0NsZWFyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBXQUlUX1RJTUVfQVZPSURfTVVMVElQTEVfUkVRVUVTVF9CWV9QQVJBTV9DSEFOR0UgPSAxMDA7XG4gIHByaXZhdGUgc2VsZWN0ZWREYXRlczogRGF0ZVRpbWVDb250ZXh0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBhbGFybXNWaWV3U2VydmljZTogQWxhcm1zVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZTogQWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRSb3V0ZVNlcnZpY2U6IENvbnRleHRSb3V0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5pc0ludGVydmFsUmVmcmVzaCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbnRleHRTb3VyY2VJZCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgaXNJbkRldGFpbFZpZXcgPSAhIXRoaXMuYWN0aXZhdGVkUm91dGUuY2hpbGRyZW5bMF0/LnNuYXBzaG90LnBhcmFtcy5pZDtcbiAgICBpZiAoaXNJbkRldGFpbFZpZXcpIHtcbiAgICAgIHRoaXMuY2hhbmdlSW50ZXJ2YWwoZmFsc2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0ludGVydmFsUmVmcmVzaCkge1xuICAgICAgdGhpcy5oYW5kbGVMZWdhY3lSZWFsdGltZSgpO1xuICAgIH1cblxuICAgIHRoaXMuYWxhcm1zVmlld1NlcnZpY2UucmVsb2FkQWxhcm1zTGlzdCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5XQUlUX1RJTUVfQVZPSURfTVVMVElQTEVfUkVRVUVTVF9CWV9QQVJBTV9DSEFOR0UpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUFsYXJtcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBhcHBseVR5cGVGaWx0ZXJzKHR5cGVGaWx0ZXJzOiBBbGFybURldGFpbHNbXSk6IHZvaWQge1xuICAgIHRoaXMudHlwZUZpbHRlcnMgPSB0eXBlRmlsdGVycztcbiAgICB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJlbG9hZEFsYXJtc0xpc3QkLm5leHQoKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBhcHBseUZvcm1GaWx0ZXJzKHsgc2V2ZXJpdHlPcHRpb25zLCBzaG93Q2xlYXJlZCwgc2VsZWN0ZWREYXRlcyB9OiBBbGFybUxpc3RGb3JtRmlsdGVycyk6IHZvaWQge1xuICAgIHRoaXMuc2V2ZXJpdHlPcHRpb25zID0gc2V2ZXJpdHlPcHRpb25zO1xuICAgIHRoaXMuc2hvd0NsZWFyZWQgPSBzaG93Q2xlYXJlZDtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSBzZWxlY3RlZERhdGVzO1xuICAgIHRoaXMuc2VsZWN0ZWRTZXZlcml0aWVzID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS51cGRhdGVTZWxlY3RlZFNldmVyaXRpZXModGhpcy5zZXZlcml0eU9wdGlvbnMpO1xuICAgIHRoaXMuYWxhcm1zVmlld1NlcnZpY2UucmVsb2FkQWxhcm1zTGlzdCQubmV4dCgpO1xuICAgIHRoaXMuaXNSZWFsdGltZUFjdGl2ZS5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5RGF0ZUZpbHRlcihzZWxlY3RlZERhdGVzOiBbRGF0ZSwgRGF0ZV0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmFsYXJtcyQubmV4dChhd2FpdCB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLnJldHJpZXZlQWxhcm1zQnlEYXRlKHNlbGVjdGVkRGF0ZXMpKTtcbiAgICB0aGlzLmlzUmVhbHRpbWVBY3RpdmUubmV4dChmYWxzZSk7XG4gIH1cblxuICBhc3luYyBjbGVhckFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdHJhbnNsYXRlZEJvZHkgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgZ2V0dGV4dCgnRG8geW91IHJlYWxseSB3YW50IHRvIGNsZWFyIGFsbCBhbGFybXMgb2Ygc2VsZWN0ZWQgc2V2ZXJpdGllcz8nKVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgIGdldHRleHQoJ0NvbmZpcm0gY2xlYXJpbmcgYWxhcm1zPycpLFxuICAgICAgICB0cmFuc2xhdGVkQm9keSxcbiAgICAgICAgJ2RhbmdlcicsXG4gICAgICAgIHtcbiAgICAgICAgICBvazogZ2V0dGV4dCgnQ29uZmlybScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG1vZGFsIGNhbmNlbGVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jbGVhckFsYXJtcygpO1xuICB9XG5cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFsYXJtcygpO1xuICAgIHRoaXMuaXNSZWFsdGltZUFjdGl2ZS5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGNoYW5nZUludGVydmFsKHZhbHVlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuc2hvdWxkU2hvd0ludGVydmFsVG9nZ2xlJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHRvZ2dsZVJlYWx0aW1lU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWx0aW1lVG9nZ2xlT24gPSAhdGhpcy5pc1JlYWx0aW1lVG9nZ2xlT247XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxlZ2FjeVJlYWx0aW1lKCkge1xuICAgIHRoaXMucmVhbHRpbWVJY29uVGl0bGUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdSZWFsdGltZSBhY3RpdmUnKSk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb1JlYWx0aW1lVXBkYXRlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhckFsYXJtcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hbGFybXNWaWV3U2VydmljZS5jbGVhckFsbEFjdGl2ZUFsYXJtcyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNldmVyaXRpZXMsXG4gICAgICAgIHRoaXMuY29udGV4dFNvdXJjZUlkXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc29sdmVkSW1tZWRpYXRlbHkpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdBbGFybXMgY2xlYXJlZC4nKSkpO1xuICAgICAgICB0aGlzLmJhY2tUb1Jvb3RSb3V0ZSgpO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnQWxhcm1zIGFyZSBiZWluZyBjbGVhcmVkIGluIGJhY2tncm91bmQuJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmFja1RvUm9vdFJvdXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLmdldENvbnRleHREYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuZ2V0Um91dGVyTmF2aWdhdGlvbkFycmF5KGNvbnRleHREYXRhKSwge1xuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGFybXMoKTogUHJvbWlzZTxJUmVzdWx0TGlzdDxJQWxhcm0+PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgICBjb25zdCBhZGRpdGlvbmFsRmlsdGVyOiBQYXJ0aWFsPEFsYXJtUXVlcnlGaWx0ZXI+ID0ge307XG5cbiAgICAgIGlmICh0aGlzLmNvbnRleHRTb3VyY2VJZCkge1xuICAgICAgICAoYWRkaXRpb25hbEZpbHRlci5zb3VyY2UgPSB0aGlzLmNvbnRleHRTb3VyY2VJZCksXG4gICAgICAgICAgKGFkZGl0aW9uYWxGaWx0ZXIud2l0aFNvdXJjZUFzc2V0cyA9IHRydWUpLFxuICAgICAgICAgIChhZGRpdGlvbmFsRmlsdGVyLndpdGhTb3VyY2VEZXZpY2VzID0gdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnR5cGVGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWRkaXRpb25hbEZpbHRlci50eXBlID0gdGhpcy50eXBlRmlsdGVycy5tYXAoKHsgZmlsdGVycyB9KSA9PiBmaWx0ZXJzLnR5cGUpLmpvaW4oJywnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UucmV0cmlldmVGaWx0ZXJlZEFsYXJtcyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNldmVyaXRpZXMsXG4gICAgICAgIHRoaXMuc2hvd0NsZWFyZWQsXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyxcbiAgICAgICAgYWRkaXRpb25hbEZpbHRlclxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yPy5yZXM/LnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVBbGFybXMoKSB7XG4gICAgdGhpcy5hbGFybXMkLm5leHQoYXdhaXQgdGhpcy5nZXRBbGFybXMoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvUmVhbHRpbWVVcGRhdGVzKCk6IHZvaWQge1xuICAgIHRoaXMuYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2VcbiAgICAgIC5vbkFsbCQodGhpcy5jb250ZXh0U291cmNlSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoVEhST1RUTEVfUkVBTFRJTUVfUkVGUkVTSCwgdW5kZWZpbmVkLCB7IHRyYWlsaW5nOiB0cnVlIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc1JlYWx0aW1lQWN0aXZlLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29udGV4dFNvdXJjZUlkKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dFNvdXJjZUlkID0gdGhpcy5jb250ZXh0Um91dGVTZXJ2aWNlLmdldENvbnRleHREYXRhKFxuICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZVxuICAgICk/LmNvbnRleHREYXRhPy5pZDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIihhY3RpdmF0ZWRSb3V0ZS5kYXRhIHwgYXN5bmMpPy50aXRsZVwiPlxuICA8Yzh5LXRpdGxlPnt7IFRJVExFIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG48L25nLWNvbnRhaW5lcj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbGVmdCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybSBtaW4td2lkdGgtZml0XCJcbj5cbiAgPGM4eS1hbGFybXMtZmlsdGVyXG4gICAgW2NvbnRleHRTb3VyY2VJZF09XCJjb250ZXh0U291cmNlSWRcIlxuICAgIChvbkZpbHRlckFwcGxpZWQpPVwiYXBwbHlGb3JtRmlsdGVycygkZXZlbnQpXCJcbiAgICBjbGFzcz1cImQtYmxvY2sgZml0LXdcIlxuICA+PC9jOHktYWxhcm1zLWZpbHRlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbiAgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm0gbWluLXdpZHRoLWZpdFwiXG4+XG4gIDxjOHktYWxhcm1zLWRhdGUtZmlsdGVyIChkYXRlRmlsdGVyQ2hhbmdlKT1cImFwcGx5Rm9ybUZpbHRlcnMoJGV2ZW50KVwiPjwvYzh5LWFsYXJtcy1kYXRlLWZpbHRlcj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCInbGVmdCdcIlxuICBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiXG4+XG4gIDxjOHktYWxhcm1zLXR5cGUtZmlsdGVyXG4gICAgW2FsYXJtc109XCJhbGFybXMkIHwgYXN5bmNcIlxuICAgIChvbkZpbHRlckNoYW5nZWQpPVwiYXBwbHlUeXBlRmlsdGVycygkZXZlbnQpXCJcbiAgICBjbGFzcz1cImQtYmxvY2sgZml0LXdcIlxuICA+PC9jOHktYWxhcm1zLXR5cGUtZmlsdGVyPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbcGxhY2VtZW50XT1cIidyaWdodCdcIlxuICBbcHJpb3JpdHldPVwiMFwiXG4+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgW3RpdGxlXT1cIidDbGVhciBhbGwgYWxhcm1zJyB8IHRyYW5zbGF0ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLXZpZXctLWNsZWFyLWFsbC1idXR0b25cIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cImM4eS1hbGVydC1pZGxlXCI+PC9pPlxuICAgIHt7ICdDbGVhciBhbGxgYWxhcm1zYCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjwhLS1SZWFsdGltZSBidXR0b24tLT5cbjxuZy10ZW1wbGF0ZSAjcmVhbHRpbWVSZWZyZXNoPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0b29sdGlwXT1cIlxuICAgICAgICAoaXNSZWFsdGltZUFjdGl2ZSB8IGFzeW5jKVxuICAgICAgICAgID8gKE5FV19SRUFMVElNRV9BTEFSTV9NRVNTQUdFIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKFJFRlJFU0hfTEFCRUwgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwidGFnIHRhZy0taW5mbyBtLXItOFwiXG4gICAgICAgICpuZ0lmPVwiaXNSZWFsdGltZUFjdGl2ZSB8IGFzeW5jXCJcbiAgICAgID5cbiAgICAgICAge3sgJ05ldyBhbGFybXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwicmVmcmVzaFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGlzTG9hZGluZyQgfCBhc3luYyB9XCJcbiAgICAgID48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJjOHktcmVhbHRpbWUgYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlYWx0aW1lSWNvblRpdGxlXCJcbiAgICAgIFt0b29sdGlwXT1cInJlYWx0aW1lSWNvblRpdGxlXCJcbiAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVSZWFsdGltZVN0YXRlKClcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiYzh5LXB1bHNlIG0tMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICBhY3RpdmU6IGlzUmVhbHRpbWVUb2dnbGVPbixcbiAgICAgICAgICBpbmFjdGl2ZTogIWlzUmVhbHRpbWVUb2dnbGVPblxuICAgICAgICB9XCJcbiAgICAgID48L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPGM4eS1oZWxwXG4gIHNyYz1cIi9kb2NzL2RldmljZS1tYW5hZ2VtZW50LWFwcGxpY2F0aW9uL21vbml0b3JpbmctYW5kLWNvbnRyb2xsaW5nLWRldmljZXMvI3dvcmtpbmctd2l0aC1hbGFybXNcIlxuPjwvYzh5LWhlbHA+XG5cbjxkaXYgY2xhc3M9XCJjYXJkIGNvbnRlbnQtZnVsbHBhZ2Ugc3BsaXQtdmlldy0tNS03IGdyaWRfX3Jvdy0tMVwiPlxuICA8Yzh5LWFsYXJtcy1saXN0XG4gICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgICBbaXNJbml0aWFsTG9hZGluZ109XCJpc0xvYWRpbmckIHwgYXN5bmNcIlxuICAgIFthbGFybXNdPVwiYWxhcm1zJCB8IGFzeW5jXCJcbiAgICBbdHlwZUZpbHRlcnNdPVwidHlwZUZpbHRlcnNcIlxuICAgIChvblNjcm9sbGluZ1N0YXRlQ2hhbmdlKT1cImNoYW5nZUludGVydmFsKCEkZXZlbnQpXCJcbiAgICAob25TZWxlY3RlZEFsYXJtKT1cImNoYW5nZUludGVydmFsKGZhbHNlKVwiXG4gICAgW3NwbGl0Vmlld109XCJ0cnVlXCJcbiAgICBbaGFzUGVybWlzc2lvbnNdPVwiIWlzRGlzYWJsZWRcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSW50ZXJ2YWxSZWZyZXNoOyBlbHNlIHJlYWx0aW1lUmVmcmVzaFwiPlxuICAgICAgPGM4eS1hbGFybXMtaW50ZXJ2YWwtcmVmcmVzaFxuICAgICAgICBbYWxhcm1zTGlzdExvYWRpbmckXT1cImlzTG9hZGluZyRcIlxuICAgICAgICBbaXNJbnRlcnZhbFRvZ2dsZUVuYWJsZWRdPVwic2hvdWxkU2hvd0ludGVydmFsVG9nZ2xlJCB8IGFzeW5jXCJcbiAgICAgICAgKG9uQ291bnRkb3duRW5kZWQpPVwicmVmcmVzaCgpXCJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICA+PC9jOHktYWxhcm1zLWludGVydmFsLXJlZnJlc2g+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYzh5LWFsYXJtcy1saXN0PlxuXG4gIDxyb3V0ZXItb3V0bGV0IGNsYXNzPVwiZC1jb250ZW50c1wiPjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuIl19
@@ -1,5 +1,7 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { AlarmStatus, Severity } from '@c8y/client';
3
+ import { gettext } from '@c8y/ngx-components';
4
+ import { INTERVALS, INTERVAL_TITLES } from '@c8y/ngx-components/interval-picker';
3
5
  export const ALARMS_MODULE_CONFIG = new InjectionToken('AlarmsModuleConfig');
4
6
  export const ALARM_STATUS_ICON = {
5
7
  ALERT_IDLE: 'c8y-alert-idle',
@@ -30,6 +32,20 @@ export const ALARM_SEVERITY_ICON_MAP = {
30
32
  [Severity.MINOR]: ALARM_SEVERITY_ICON.HIGH_PRIORITY,
31
33
  [Severity.WARNING]: ALARM_SEVERITY_ICON.CIRCLE
32
34
  };
35
+ /**
36
+ * Extended interval titles with an additional title for the case when no date is selected.
37
+ */
38
+ export const INTERVAL_TITLES_EXTENDED = {
39
+ ...INTERVAL_TITLES,
40
+ none: gettext('No date filter')
41
+ };
42
+ export const INTERVALS_EXTENDED = [
43
+ {
44
+ id: 'none',
45
+ title: gettext('No date filter')
46
+ },
47
+ ...INTERVALS
48
+ ];
33
49
  export const DEFAULT_ALARM_COUNTS = { CRITICAL: 0, MAJOR: 0, MINOR: 0, WARNING: 0 };
34
50
  export const DEFAULT_SEVERITY_VALUES = {
35
51
  [Severity.CRITICAL]: true,
@@ -63,4 +79,4 @@ export const ALARM_DEFAULT_PROPERTIES = [
63
79
  'lastUpdated'
64
80
  ];
65
81
  export const THROTTLE_REALTIME_REFRESH = 1_000;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFDTCxXQUFXLEVBS1gsUUFBUSxFQUdULE1BQU0sYUFBYSxDQUFDO0FBMkJyQixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBSTdFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDO0FBSVg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTZDO0lBQ3BFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixDQUFDLFVBQVU7SUFDbkQsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtJQUN4RCxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO0NBQ3BDLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixhQUFhLEVBQUUsZUFBZTtJQUM5QixPQUFPLEVBQUUsU0FBUztJQUNsQixrQkFBa0IsRUFBRSxvQkFBb0I7Q0FDaEMsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFHaEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNEM7SUFDOUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsa0JBQWtCO0lBQzNELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixDQUFDLE9BQU87SUFDN0MsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsYUFBYTtJQUNuRCxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO0NBQ3RDLENBQUM7QUFTWCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBZSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBbUI7SUFDckQsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSTtJQUN6QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO0lBQ3RCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUk7SUFDdEIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSTtDQUN6QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXdCO0lBQ3hELENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUk7SUFDMUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtJQUNoQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJO0NBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBTXBDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsVUFBVTtJQUNWLFFBQVE7SUFDUixNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixJQUFJO0lBQ0osUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sU0FBUztJQUNULE1BQU07SUFDTixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLGFBQWE7Q0FDaUMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWxhcm1TdGF0dXMsXG4gIEFsYXJtU3RhdHVzU2V0dGluZ3MsXG4gIEFsYXJtU3RhdHVzVHlwZSxcbiAgSUFsYXJtLFxuICBJTWFuYWdlZE9iamVjdCxcbiAgU2V2ZXJpdHksXG4gIFNldmVyaXR5RmlsdGVyLFxuICBTZXZlcml0eVR5cGVcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgTmF2aWdhdG9yTm9kZSwgTmF2aWdhdG9yTm9kZURhdGEsIFJvdXRlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN1cHBvcnRlZEljb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBBbGFybXNNb2R1bGVDb25maWcge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGEgY29tYmluYXRpb24gb2YgQW5ndWxhciBhbmQgQW5ndWxhckpTLlxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIGh5YnJpZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSByb290IG5vZGUgb2YgdGhlIG5hdmlnYXRvciwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIGBOYXZpZ2F0b3JOb2RlYCBvciBgTmF2aWdhdG9yTm9kZURhdGFgLlxuICAgKiBUaGlzIHNlcnZlcyBhcyB0aGUgZW50cnkgcG9pbnQgZm9yIG5hdmlnYXRpb24gc3RydWN0dXJlIGZvciBBbGFybXMgdmlld3MuXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgcm9vdE5hdmlnYXRvck5vZGU/OiBOYXZpZ2F0b3JOb2RlIHwgTmF2aWdhdG9yTm9kZURhdGE7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGBSb3V0ZWAgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIG5hdmlnYXRpb24gcm91dGVzIGF2YWlsYWJsZS5cbiAgICogRWFjaCByb3V0ZSBkZWZpbmVzIGEgbmF2aWdhdGlvbiBwYXRoIGFuZCBpdHMgYXNzb2NpYXRlZCBjb21wb25lbnRzIHJlbGF0ZWQgdG8gQWxhcm1zLlxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIHJvdXRlPzogUm91dGVbXTtcbn1cblxuZXhwb3J0IGNvbnN0IEFMQVJNU19NT0RVTEVfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuKCdBbGFybXNNb2R1bGVDb25maWcnKTtcblxuZXhwb3J0IHR5cGUgQWxhcm1Db3VudCA9IHsgW2tleSBpbiBTZXZlcml0eVR5cGVdOiBudW1iZXIgfTtcblxuZXhwb3J0IGNvbnN0IEFMQVJNX1NUQVRVU19JQ09OID0ge1xuICBBTEVSVF9JRExFOiAnYzh5LWFsZXJ0LWlkbGUnLFxuICBCRUxMX1NMQVNIOiAnYmVsbC1zbGFzaCcsXG4gIEJFTEw6ICdiZWxsJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWxhcm1TdGF0dXNJY29uID0gKHR5cGVvZiBBTEFSTV9TVEFUVVNfSUNPTilba2V5b2YgdHlwZW9mIEFMQVJNX1NUQVRVU19JQ09OXTtcblxuLyoqXG4gKiBBIGxvb2t1cCB0YWJsZSB0byBtYXAgYWxhcm0gc3RhdHVzZXMgdG8gY29ycmVzcG9uZGluZyBpY29ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFsYXJtSWNvbk1hcDogUmVjb3JkPEFsYXJtU3RhdHVzVHlwZSwgQWxhcm1TdGF0dXNJY29uPiA9IHtcbiAgW0FsYXJtU3RhdHVzLkNMRUFSRURdOiBBTEFSTV9TVEFUVVNfSUNPTi5BTEVSVF9JRExFLFxuICBbQWxhcm1TdGF0dXMuQUNLTk9XTEVER0VEXTogQUxBUk1fU1RBVFVTX0lDT04uQkVMTF9TTEFTSCxcbiAgW0FsYXJtU3RhdHVzLkFDVElWRV06IEFMQVJNX1NUQVRVU19JQ09OLkJFTExcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBBTEFSTV9TRVZFUklUWV9JQ09OID0ge1xuICBDSVJDTEU6ICdjaXJjbGUnLFxuICBISUdIX1BSSU9SSVRZOiAnaGlnaC1wcmlvcml0eScsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbiAgRVhDTEFNQVRJT05fQ0lSQ0xFOiAnZXhjbGFtYXRpb24tY2lyY2xlJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEhFTFBfSUNPTiA9ICdoZWxwJztcblxuZXhwb3J0IHR5cGUgQWxhcm1TZXZlcml0eUljb24gPSAodHlwZW9mIEFMQVJNX1NFVkVSSVRZX0lDT04pW2tleW9mIHR5cGVvZiBBTEFSTV9TRVZFUklUWV9JQ09OXTtcbi8qKlxuICogQSBsb29rdXAgdGFibGUgdG8gbWFwIGFsYXJtIHNldmVyaXR5IHR5cGVzIHRvIGNvcnJlc3BvbmRpbmcgaWNvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBBTEFSTV9TRVZFUklUWV9JQ09OX01BUDogUmVjb3JkPFNldmVyaXR5VHlwZSwgQWxhcm1TZXZlcml0eUljb24+ID0ge1xuICBbU2V2ZXJpdHkuQ1JJVElDQUxdOiBBTEFSTV9TRVZFUklUWV9JQ09OLkVYQ0xBTUFUSU9OX0NJUkNMRSxcbiAgW1NldmVyaXR5Lk1BSk9SXTogQUxBUk1fU0VWRVJJVFlfSUNPTi5XQVJOSU5HLFxuICBbU2V2ZXJpdHkuTUlOT1JdOiBBTEFSTV9TRVZFUklUWV9JQ09OLkhJR0hfUFJJT1JJVFksXG4gIFtTZXZlcml0eS5XQVJOSU5HXTogQUxBUk1fU0VWRVJJVFlfSUNPTi5DSVJDTEVcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFsYXJtTGlzdEZvcm1GaWx0ZXJzID0ge1xuICBzaG93Q2xlYXJlZDogYm9vbGVhbjtcbiAgc2V2ZXJpdHlPcHRpb25zOiBTZXZlcml0eUZpbHRlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkQWxhcm0gPSBJQWxhcm0gfCBudWxsO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BTEFSTV9DT1VOVFM6IEFsYXJtQ291bnQgPSB7IENSSVRJQ0FMOiAwLCBNQUpPUjogMCwgTUlOT1I6IDAsIFdBUk5JTkc6IDAgfTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VWRVJJVFlfVkFMVUVTOiBTZXZlcml0eUZpbHRlciA9IHtcbiAgW1NldmVyaXR5LkNSSVRJQ0FMXTogdHJ1ZSxcbiAgW1NldmVyaXR5Lk1BSk9SXTogdHJ1ZSxcbiAgW1NldmVyaXR5Lk1JTk9SXTogdHJ1ZSxcbiAgW1NldmVyaXR5LldBUk5JTkddOiB0cnVlXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFUVVNfVkFMVUVTOiBBbGFybVN0YXR1c1NldHRpbmdzID0ge1xuICBbQWxhcm1TdGF0dXMuQUNUSVZFXTogdHJ1ZSxcbiAgW0FsYXJtU3RhdHVzLkFDS05PV0xFREdFRF06IHRydWUsXG4gIFtBbGFybVN0YXR1cy5DTEVBUkVEXTogdHJ1ZVxufTtcblxuZXhwb3J0IGNvbnN0IEFMQVJNU19QQVRIID0gJ2FsYXJtcyc7XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZyYWdtZW50ID0ge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuLyoqXG4gKiBEZWZhdWx0IHByb3BlcnRpZXMgb2YgYSBhbGFybS4gVXNlZCB0byBleHRyYWN0IHRoZSBjdXN0b20gcHJvcGVydGllcyBmcm9tIGEgQWxhcm0gb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgQUxBUk1fREVGQVVMVF9QUk9QRVJUSUVTID0gW1xuICAnc2V2ZXJpdHknLFxuICAnc291cmNlJyxcbiAgJ3R5cGUnLFxuICAndGltZScsXG4gICd0ZXh0JyxcbiAgJ2lkJyxcbiAgJ3N0YXR1cycsXG4gICdjb3VudCcsXG4gICduYW1lJyxcbiAgJ2hpc3RvcnknLFxuICAnc2VsZicsXG4gICdjcmVhdGlvblRpbWUnLFxuICAnZmlyc3RPY2N1cnJlbmNlVGltZScsXG4gICdsYXN0VXBkYXRlZCdcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlYWRvbmx5QXJyYXk8a2V5b2YgSUFsYXJtPjtcblxuZXhwb3J0IGNvbnN0IFRIUk9UVExFX1JFQUxUSU1FX1JFRlJFU0ggPSAxXzAwMDtcblxuZXhwb3J0IGludGVyZmFjZSBBbGFybURldGFpbHNCdXR0b24ge1xuICBhZGRpdGlvbmFsQnV0dG9uQ2xhc3Nlcz86IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbjogU3VwcG9ydGVkSWNvbnM7XG4gIGFkZGl0aW9uYWxJY29uQ2xhc3Nlcz86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFjdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICogQHBhcmFtIGFsYXJtIFRoZSBhbGFybSB0byBhcHBseSB0aGlzIGFjdGlvbiB0b1xuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gb3IgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIG9yIHRvIHRoZSB1cGRhdGVkIGFsYXJtLiBJZiB0aGUgcmVzdWx0IGlzIHRydWUsIGEgcmVsb2FkIHdpbGwgYmUgdHJpZ2dlcmVkLiBJZiB0aGUgcmVzdWx0IGlzIGFuIGFsYXJtLCB0aGUgYWxhcm0gd2lsbCBiZSB1cGRhdGVkIHdpdGggdGhlIG5ldyB2YWx1ZXMuXG4gICAqL1xuICBhY3Rpb246IChhbGFybTogSUFsYXJtKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuIHwgSUFsYXJtPjtcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxhcm1MaXN0SW5kaWNhdG9yQmFzZSB7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsYXJtTGlzdEluZGljYXRvckljb24gZXh0ZW5kcyBBbGFybUxpc3RJbmRpY2F0b3JCYXNlIHtcbiAgaWNvbjogU3VwcG9ydGVkSWNvbnM7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBbGFybUxpc3RJbmRpY2F0b3IgPSBBbGFybUxpc3RJbmRpY2F0b3JJY29uO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBDdW11bG9jaXR5U2VydmljZVJlZ2lzdHJ5IHtcbiAgICBpbnRlcmZhY2UgU3BlY2lmaWNFeHRlbnNpb25LZXlzIHtcbiAgICAgIGFsYXJtRGV0YWlsc0J1dHRvbjogQWxhcm1EZXRhaWxzQnV0dG9uUHJvdmlkZXI7XG4gICAgICBhbGFybUxpc3RJbmRpY2F0b3I6IEFsYXJtTGlzdEluZGljYXRvclByb3ZpZGVyO1xuICAgIH1cblxuICAgIGludGVyZmFjZSBBbGFybURldGFpbHNCdXR0b25Qcm92aWRlciB7XG4gICAgICAvKipcbiAgICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBzaG93biBmb3IgYSBnaXZlbiBhbGFybS5cbiAgICAgICAqIEBwYXJhbSBhbGFybSBUaGUgYWxhcm0gZm9yIHdoaWNoIHRvIGRldGVybWluZSBidXR0b24gdmlzaWJpbGl0eS5cbiAgICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIG1hbmFnZWQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgYWxhcm0uXG4gICAgICAgKiBAcmV0dXJucyBUaGUgYnV0dG9uIGRldGFpbHMgb3IgZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGdldEFsYXJtRGV0YWlsc0J1dHRvbiQoXG4gICAgICAgIGFsYXJtOiBJQWxhcm0sXG4gICAgICAgIHNvdXJjZTogSU1hbmFnZWRPYmplY3RcbiAgICAgICk6IE9ic2VydmFibGU8QWxhcm1EZXRhaWxzQnV0dG9uIHwgZmFsc2U+O1xuICAgIH1cblxuICAgIGludGVyZmFjZSBBbGFybUxpc3RJbmRpY2F0b3JQcm92aWRlciB7XG4gICAgICAvKipcbiAgICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgaW5kaWNhdG9yIHNob3VsZCBiZSBzaG93biBmb3IgYSBnaXZlbiBhbGFybS5cbiAgICAgICAqIEBwYXJhbSBhbGFybSBUaGUgYWxhcm0gZm9yIHdoaWNoIHRvIGRldGVybWluZSBpbmRpY2F0b3IgdmlzaWJpbGl0eS5cbiAgICAgICAqIEByZXR1cm5zIFRoZSBpbmRpY2F0b3IgZGV0YWlscyBvciBmYWxzZS5cbiAgICAgICAqL1xuICAgICAgZ2V0QWxhcm1MaXN0SW5kaWNhdG9yJChhbGFybTogSUFsYXJtKTogT2JzZXJ2YWJsZTxBbGFybUxpc3RJbmRpY2F0b3IgfCBmYWxzZT47XG4gICAgfVxuICB9XG59XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFDTCxXQUFXLEVBS1gsUUFBUSxFQUdULE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFFTCxPQUFPLEVBSVIsTUFBTSxxQkFBcUIsQ0FBQztBQUc3QixPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBWSxNQUFNLHFDQUFxQyxDQUFDO0FBd0IzRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBSTdFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDO0FBSVg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTZDO0lBQ3BFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixDQUFDLFVBQVU7SUFDbkQsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtJQUN4RCxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO0NBQ3BDLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixhQUFhLEVBQUUsZUFBZTtJQUM5QixPQUFPLEVBQUUsU0FBUztJQUNsQixrQkFBa0IsRUFBRSxvQkFBb0I7Q0FDaEMsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFHaEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNEM7SUFDOUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsa0JBQWtCO0lBQzNELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixDQUFDLE9BQU87SUFDN0MsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsYUFBYTtJQUNuRCxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO0NBQ3RDLENBQUM7QUFnQlg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBOEM7SUFDakYsR0FBRyxlQUFlO0lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUEwQjtJQUN2RDtRQUNFLEVBQUUsRUFBRSxNQUFNO1FBQ1YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztLQUNqQztJQUNELEdBQUcsU0FBUztDQUNiLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBZSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBbUI7SUFDckQsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSTtJQUN6QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO0lBQ3RCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUk7SUFDdEIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSTtDQUN6QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXdCO0lBQ3hELENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUk7SUFDMUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtJQUNoQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJO0NBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBTXBDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsVUFBVTtJQUNWLFFBQVE7SUFDUixNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixJQUFJO0lBQ0osUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sU0FBUztJQUNULE1BQU07SUFDTixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLGFBQWE7Q0FDaUMsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWxhcm1TdGF0dXMsXG4gIEFsYXJtU3RhdHVzU2V0dGluZ3MsXG4gIEFsYXJtU3RhdHVzVHlwZSxcbiAgSUFsYXJtLFxuICBJTWFuYWdlZE9iamVjdCxcbiAgU2V2ZXJpdHksXG4gIFNldmVyaXR5RmlsdGVyLFxuICBTZXZlcml0eVR5cGVcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgRGF0ZVRpbWVDb250ZXh0LFxuICBnZXR0ZXh0LFxuICBOYXZpZ2F0b3JOb2RlLFxuICBOYXZpZ2F0b3JOb2RlRGF0YSxcbiAgUm91dGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN1cHBvcnRlZEljb25zIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pY29uLXNlbGVjdG9yL2ljb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOVEVSVkFMUywgSU5URVJWQUxfVElUTEVTLCBJbnRlcnZhbCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaW50ZXJ2YWwtcGlja2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBBbGFybXNNb2R1bGVDb25maWcge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGEgY29tYmluYXRpb24gb2YgQW5ndWxhciBhbmQgQW5ndWxhckpTLlxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIGh5YnJpZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSByb290IG5vZGUgb2YgdGhlIG5hdmlnYXRvciwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIGBOYXZpZ2F0b3JOb2RlYCBvciBgTmF2aWdhdG9yTm9kZURhdGFgLlxuICAgKiBUaGlzIHNlcnZlcyBhcyB0aGUgZW50cnkgcG9pbnQgZm9yIG5hdmlnYXRpb24gc3RydWN0dXJlIGZvciBBbGFybXMgdmlld3MuXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgcm9vdE5hdmlnYXRvck5vZGU/OiBOYXZpZ2F0b3JOb2RlIHwgTmF2aWdhdG9yTm9kZURhdGE7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGBSb3V0ZWAgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIG5hdmlnYXRpb24gcm91dGVzIGF2YWlsYWJsZS5cbiAgICogRWFjaCByb3V0ZSBkZWZpbmVzIGEgbmF2aWdhdGlvbiBwYXRoIGFuZCBpdHMgYXNzb2NpYXRlZCBjb21wb25lbnRzIHJlbGF0ZWQgdG8gQWxhcm1zLlxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIHJvdXRlPzogUm91dGVbXTtcbn1cblxuZXhwb3J0IGNvbnN0IEFMQVJNU19NT0RVTEVfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuKCdBbGFybXNNb2R1bGVDb25maWcnKTtcblxuZXhwb3J0IHR5cGUgQWxhcm1Db3VudCA9IHsgW2tleSBpbiBTZXZlcml0eVR5cGVdOiBudW1iZXIgfTtcblxuZXhwb3J0IGNvbnN0IEFMQVJNX1NUQVRVU19JQ09OID0ge1xuICBBTEVSVF9JRExFOiAnYzh5LWFsZXJ0LWlkbGUnLFxuICBCRUxMX1NMQVNIOiAnYmVsbC1zbGFzaCcsXG4gIEJFTEw6ICdiZWxsJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWxhcm1TdGF0dXNJY29uID0gKHR5cGVvZiBBTEFSTV9TVEFUVVNfSUNPTilba2V5b2YgdHlwZW9mIEFMQVJNX1NUQVRVU19JQ09OXTtcblxuLyoqXG4gKiBBIGxvb2t1cCB0YWJsZSB0byBtYXAgYWxhcm0gc3RhdHVzZXMgdG8gY29ycmVzcG9uZGluZyBpY29ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFsYXJtSWNvbk1hcDogUmVjb3JkPEFsYXJtU3RhdHVzVHlwZSwgQWxhcm1TdGF0dXNJY29uPiA9IHtcbiAgW0FsYXJtU3RhdHVzLkNMRUFSRURdOiBBTEFSTV9TVEFUVVNfSUNPTi5BTEVSVF9JRExFLFxuICBbQWxhcm1TdGF0dXMuQUNLTk9XTEVER0VEXTogQUxBUk1fU1RBVFVTX0lDT04uQkVMTF9TTEFTSCxcbiAgW0FsYXJtU3RhdHVzLkFDVElWRV06IEFMQVJNX1NUQVRVU19JQ09OLkJFTExcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBBTEFSTV9TRVZFUklUWV9JQ09OID0ge1xuICBDSVJDTEU6ICdjaXJjbGUnLFxuICBISUdIX1BSSU9SSVRZOiAnaGlnaC1wcmlvcml0eScsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbiAgRVhDTEFNQVRJT05fQ0lSQ0xFOiAnZXhjbGFtYXRpb24tY2lyY2xlJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEhFTFBfSUNPTiA9ICdoZWxwJztcblxuZXhwb3J0IHR5cGUgQWxhcm1TZXZlcml0eUljb24gPSAodHlwZW9mIEFMQVJNX1NFVkVSSVRZX0lDT04pW2tleW9mIHR5cGVvZiBBTEFSTV9TRVZFUklUWV9JQ09OXTtcbi8qKlxuICogQSBsb29rdXAgdGFibGUgdG8gbWFwIGFsYXJtIHNldmVyaXR5IHR5cGVzIHRvIGNvcnJlc3BvbmRpbmcgaWNvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBBTEFSTV9TRVZFUklUWV9JQ09OX01BUDogUmVjb3JkPFNldmVyaXR5VHlwZSwgQWxhcm1TZXZlcml0eUljb24+ID0ge1xuICBbU2V2ZXJpdHkuQ1JJVElDQUxdOiBBTEFSTV9TRVZFUklUWV9JQ09OLkVYQ0xBTUFUSU9OX0NJUkNMRSxcbiAgW1NldmVyaXR5Lk1BSk9SXTogQUxBUk1fU0VWRVJJVFlfSUNPTi5XQVJOSU5HLFxuICBbU2V2ZXJpdHkuTUlOT1JdOiBBTEFSTV9TRVZFUklUWV9JQ09OLkhJR0hfUFJJT1JJVFksXG4gIFtTZXZlcml0eS5XQVJOSU5HXTogQUxBUk1fU0VWRVJJVFlfSUNPTi5DSVJDTEVcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFsYXJtTGlzdEZvcm1GaWx0ZXJzID0ge1xuICBzaG93Q2xlYXJlZDogYm9vbGVhbjtcbiAgc2V2ZXJpdHlPcHRpb25zOiBTZXZlcml0eUZpbHRlcjtcbiAgc2VsZWN0ZWREYXRlcz86IERhdGVUaW1lQ29udGV4dDtcbn07XG5cbmV4cG9ydCB0eXBlIEFsYXJtRmlsdGVySW50ZXJ2YWwgPVxuICB8IEludGVydmFsXG4gIHwge1xuICAgICAgaWQ6ICdub25lJztcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICB0aW1lc3BhbkluTXM/OiBudW1iZXI7XG4gICAgfTtcblxuLyoqXG4gKiBFeHRlbmRlZCBpbnRlcnZhbCB0aXRsZXMgd2l0aCBhbiBhZGRpdGlvbmFsIHRpdGxlIGZvciB0aGUgY2FzZSB3aGVuIG5vIGRhdGUgaXMgc2VsZWN0ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBJTlRFUlZBTF9USVRMRVNfRVhURU5ERUQ6IFJlY29yZDxBbGFybUZpbHRlckludGVydmFsWydpZCddLCBzdHJpbmc+ID0ge1xuICAuLi5JTlRFUlZBTF9USVRMRVMsXG4gIG5vbmU6IGdldHRleHQoJ05vIGRhdGUgZmlsdGVyJylcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRFUlZBTFNfRVhURU5ERUQ6IEFsYXJtRmlsdGVySW50ZXJ2YWxbXSA9IFtcbiAge1xuICAgIGlkOiAnbm9uZScsXG4gICAgdGl0bGU6IGdldHRleHQoJ05vIGRhdGUgZmlsdGVyJylcbiAgfSxcbiAgLi4uSU5URVJWQUxTXG5dO1xuXG5leHBvcnQgdHlwZSBXaWRnZXRUaW1lQ29udGV4dFN0YXRlRXh0ZW5kZWQgPSB7XG4gIGRhdGU6IERhdGVUaW1lQ29udGV4dDtcbiAgaW50ZXJ2YWw6IEFsYXJtRmlsdGVySW50ZXJ2YWxbJ2lkJ107XG59O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RlZEFsYXJtID0gSUFsYXJtIHwgbnVsbDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUxBUk1fQ09VTlRTOiBBbGFybUNvdW50ID0geyBDUklUSUNBTDogMCwgTUFKT1I6IDAsIE1JTk9SOiAwLCBXQVJOSU5HOiAwIH07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVkVSSVRZX1ZBTFVFUzogU2V2ZXJpdHlGaWx0ZXIgPSB7XG4gIFtTZXZlcml0eS5DUklUSUNBTF06IHRydWUsXG4gIFtTZXZlcml0eS5NQUpPUl06IHRydWUsXG4gIFtTZXZlcml0eS5NSU5PUl06IHRydWUsXG4gIFtTZXZlcml0eS5XQVJOSU5HXTogdHJ1ZVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RBVFVTX1ZBTFVFUzogQWxhcm1TdGF0dXNTZXR0aW5ncyA9IHtcbiAgW0FsYXJtU3RhdHVzLkFDVElWRV06IHRydWUsXG4gIFtBbGFybVN0YXR1cy5BQ0tOT1dMRURHRURdOiB0cnVlLFxuICBbQWxhcm1TdGF0dXMuQ0xFQVJFRF06IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBBTEFSTVNfUEFUSCA9ICdhbGFybXMnO1xuXG5leHBvcnQgdHlwZSBDdXN0b21GcmFnbWVudCA9IHtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbi8qKlxuICogRGVmYXVsdCBwcm9wZXJ0aWVzIG9mIGEgYWxhcm0uIFVzZWQgdG8gZXh0cmFjdCB0aGUgY3VzdG9tIHByb3BlcnRpZXMgZnJvbSBhIEFsYXJtIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IEFMQVJNX0RFRkFVTFRfUFJPUEVSVElFUyA9IFtcbiAgJ3NldmVyaXR5JyxcbiAgJ3NvdXJjZScsXG4gICd0eXBlJyxcbiAgJ3RpbWUnLFxuICAndGV4dCcsXG4gICdpZCcsXG4gICdzdGF0dXMnLFxuICAnY291bnQnLFxuICAnbmFtZScsXG4gICdoaXN0b3J5JyxcbiAgJ3NlbGYnLFxuICAnY3JlYXRpb25UaW1lJyxcbiAgJ2ZpcnN0T2NjdXJyZW5jZVRpbWUnLFxuICAnbGFzdFVwZGF0ZWQnXG5dIGFzIGNvbnN0IHNhdGlzZmllcyBSZWFkb25seUFycmF5PGtleW9mIElBbGFybT47XG5cbmV4cG9ydCBjb25zdCBUSFJPVFRMRV9SRUFMVElNRV9SRUZSRVNIID0gMV8wMDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxhcm1EZXRhaWxzQnV0dG9uIHtcbiAgYWRkaXRpb25hbEJ1dHRvbkNsYXNzZXM/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb246IFN1cHBvcnRlZEljb25zO1xuICBhZGRpdGlvbmFsSWNvbkNsYXNzZXM/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBY3Rpb24gdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSBhbGFybSBUaGUgYWxhcm0gdG8gYXBwbHkgdGhpcyBhY3Rpb24gdG9cbiAgICogQHJldHVybnMgQSBib29sZWFuIG9yIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgYm9vbGVhbiBvciB0byB0aGUgdXBkYXRlZCBhbGFybS4gSWYgdGhlIHJlc3VsdCBpcyB0cnVlLCBhIHJlbG9hZCB3aWxsIGJlIHRyaWdnZXJlZC4gSWYgdGhlIHJlc3VsdCBpcyBhbiBhbGFybSwgdGhlIGFsYXJtIHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZSBuZXcgdmFsdWVzLlxuICAgKi9cbiAgYWN0aW9uOiAoYWxhcm06IElBbGFybSkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbiB8IElBbGFybT47XG4gIHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsYXJtTGlzdEluZGljYXRvckJhc2Uge1xuICBwcmlvcml0eT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGFybUxpc3RJbmRpY2F0b3JJY29uIGV4dGVuZHMgQWxhcm1MaXN0SW5kaWNhdG9yQmFzZSB7XG4gIGljb246IFN1cHBvcnRlZEljb25zO1xuICB0aXRsZTogc3RyaW5nO1xuICBjbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQWxhcm1MaXN0SW5kaWNhdG9yID0gQWxhcm1MaXN0SW5kaWNhdG9ySWNvbjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBuYW1lc3BhY2UgQ3VtdWxvY2l0eVNlcnZpY2VSZWdpc3RyeSB7XG4gICAgaW50ZXJmYWNlIFNwZWNpZmljRXh0ZW5zaW9uS2V5cyB7XG4gICAgICBhbGFybURldGFpbHNCdXR0b246IEFsYXJtRGV0YWlsc0J1dHRvblByb3ZpZGVyO1xuICAgICAgYWxhcm1MaXN0SW5kaWNhdG9yOiBBbGFybUxpc3RJbmRpY2F0b3JQcm92aWRlcjtcbiAgICB9XG5cbiAgICBpbnRlcmZhY2UgQWxhcm1EZXRhaWxzQnV0dG9uUHJvdmlkZXIge1xuICAgICAgLyoqXG4gICAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgc2hvd24gZm9yIGEgZ2l2ZW4gYWxhcm0uXG4gICAgICAgKiBAcGFyYW0gYWxhcm0gVGhlIGFsYXJtIGZvciB3aGljaCB0byBkZXRlcm1pbmUgYnV0dG9uIHZpc2liaWxpdHkuXG4gICAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBtYW5hZ2VkIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGFsYXJtLlxuICAgICAgICogQHJldHVybnMgVGhlIGJ1dHRvbiBkZXRhaWxzIG9yIGZhbHNlLlxuICAgICAgICovXG4gICAgICBnZXRBbGFybURldGFpbHNCdXR0b24kKFxuICAgICAgICBhbGFybTogSUFsYXJtLFxuICAgICAgICBzb3VyY2U6IElNYW5hZ2VkT2JqZWN0XG4gICAgICApOiBPYnNlcnZhYmxlPEFsYXJtRGV0YWlsc0J1dHRvbiB8IGZhbHNlPjtcbiAgICB9XG5cbiAgICBpbnRlcmZhY2UgQWxhcm1MaXN0SW5kaWNhdG9yUHJvdmlkZXIge1xuICAgICAgLyoqXG4gICAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGluZGljYXRvciBzaG91bGQgYmUgc2hvd24gZm9yIGEgZ2l2ZW4gYWxhcm0uXG4gICAgICAgKiBAcGFyYW0gYWxhcm0gVGhlIGFsYXJtIGZvciB3aGljaCB0byBkZXRlcm1pbmUgaW5kaWNhdG9yIHZpc2liaWxpdHkuXG4gICAgICAgKiBAcmV0dXJucyBUaGUgaW5kaWNhdG9yIGRldGFpbHMgb3IgZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIGdldEFsYXJtTGlzdEluZGljYXRvciQoYWxhcm06IElBbGFybSk6IE9ic2VydmFibGU8QWxhcm1MaXN0SW5kaWNhdG9yIHwgZmFsc2U+O1xuICAgIH1cbiAgfVxufVxuIl19
@@ -27,6 +27,8 @@ import { AlarmsTypeFilterComponent } from './alarms-type-filter.component';
27
27
  import { TranslateModule } from '@ngx-translate/core';
28
28
  import { AlarmListIndicatorPipe } from './alarm-list-custom-indicator/alarm-list-indicator.pipe';
29
29
  import { AlarmDetailsButtonPipe } from './alarm-details-custom-button/alarm-details-button.pipe';
30
+ import { AlarmsDateFilterComponent } from './alarms-date-filter.component';
31
+ import { IntervalPickerComponent } from '@c8y/ngx-components/interval-picker';
30
32
  import * as i0 from "@angular/core";
31
33
  import * as i1 from "ngx-bootstrap/tooltip";
32
34
  const defaultAlarmsConfig = {
@@ -62,6 +64,7 @@ export class AlarmsModule {
62
64
  AlarmSeverityToLabelPipe,
63
65
  AlarmStatusToLabelPipe,
64
66
  AlarmEmptyComponent,
67
+ AlarmsDateFilterComponent,
65
68
  AlarmsTypeFilterComponent], imports: [A11yModule,
66
69
  BsDropdownModule,
67
70
  CommonModule,
@@ -74,7 +77,8 @@ export class AlarmsModule {
74
77
  AlarmListIndicatorPipe,
75
78
  AlarmDetailsButtonPipe,
76
79
  AlarmSeverityToIconPipe,
77
- DynamicComponentModule], exports: [AlarmsComponent, AlarmsListComponent, AlarmsFilterComponent] }); }
80
+ DynamicComponentModule,
81
+ IntervalPickerComponent], exports: [AlarmsComponent, AlarmsListComponent, AlarmsFilterComponent] }); }
78
82
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsModule, providers: [
79
83
  DatePipe,
80
84
  TitleCasePipe,
@@ -94,7 +98,8 @@ export class AlarmsModule {
94
98
  RouterModule,
95
99
  AlarmEventSelectorModule,
96
100
  RouterModule,
97
- DynamicComponentModule] }); }
101
+ DynamicComponentModule,
102
+ IntervalPickerComponent] }); }
98
103
  }
99
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsModule, decorators: [{
100
105
  type: NgModule,
@@ -113,6 +118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
113
118
  AlarmSeverityToLabelPipe,
114
119
  AlarmStatusToLabelPipe,
115
120
  AlarmEmptyComponent,
121
+ AlarmsDateFilterComponent,
116
122
  AlarmsTypeFilterComponent
117
123
  ],
118
124
  exports: [AlarmsComponent, AlarmsListComponent, AlarmsFilterComponent],
@@ -140,8 +146,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
140
146
  AlarmListIndicatorPipe,
141
147
  AlarmDetailsButtonPipe,
142
148
  AlarmSeverityToIconPipe,
143
- DynamicComponentModule
149
+ DynamicComponentModule,
150
+ IntervalPickerComponent
144
151
  ]
145
152
  }]
146
153
  }] });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixTQUFTLEVBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7O0FBRWpHLE1BQU0sbUJBQW1CLEdBQXVCO0lBQzlDLE1BQU0sRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQStDRixNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLFNBQTZCLEVBQUU7UUFDM0MsTUFBTSxZQUFZLEdBQXVCLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQy9FLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsRSxhQUFhLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO2dCQUM3QyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFFN0I7b0JBQ0UsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0FoQlUsWUFBWTsrR0FBWixZQUFZLGlCQTNDckIscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsMEJBQTBCO1lBQzFCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsOEJBQThCO1lBQzlCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLHlCQUF5QixhQWF6QixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixVQUFVO1lBQ1YsWUFBWTtZQUNaLGFBQWEsb0JBRWIsZUFBZTtZQUNmLFlBQVk7WUFDWix3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLHNCQUFzQjtZQUN0QixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQixhQXpCZCxlQUFlLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCOytHQTRCMUQsWUFBWSxhQTNCWjtZQUNULFFBQVE7WUFDUixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCO2dCQUNFLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFFBQVEsRUFBRSxtQkFBbUI7YUFDOUI7U0FDRixZQUVDLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFVBQVU7WUFDVixZQUFZO1lBQ1osYUFBYTtZQUNiLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDdkIsZUFBZTtZQUNmLFlBQVk7WUFDWix3QkFBd0I7WUFDeEIsWUFBWTtZQUlaLHNCQUFzQjs7MkZBR2IsWUFBWTtrQkE3Q3hCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUM7b0JBQ3RFLFNBQVMsRUFBRTt3QkFDVCxRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQjs0QkFDRSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixRQUFRLEVBQUUsbUJBQW1CO3lCQUM5QjtxQkFDRjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFDdkIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERhdGVQaXBlLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb21tb25Nb2R1bGUsXG4gIENvcmVNb2R1bGUsXG4gIER5bmFtaWNDb21wb25lbnRNb2R1bGUsXG4gIEhlYWRlck1vZHVsZSxcbiAgUmVsYXRpdmVUaW1lUGlwZSxcbiAgaG9va05hdmlnYXRvcixcbiAgaG9va1JvdXRlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvcG9wb3Zlcic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IEFsYXJtRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vYWxhcm0tZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxhcm1JbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9hbGFybS1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybVNldmVyaXRpZXNUb1RpdGxlUGlwZSB9IGZyb20gJy4vYWxhcm0tc2V2ZXJpdGllcy10by10aXRsZS5waXBlJztcbmltcG9ydCB7IEFsYXJtU2V2ZXJpdHlUb0ljb25QaXBlIH0gZnJvbSAnLi9hbGFybS1zZXZlcml0eS10by1pY29uLnBpcGUnO1xuaW1wb3J0IHsgQWxhcm1TdGF0dXNUb0ljb25QaXBlIH0gZnJvbSAnLi9hbGFybS1zdGF0dXMtdG8taWNvbi5waXBlJztcbmltcG9ydCB7IEFsYXJtc0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYWxhcm1zLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxhcm1zSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vYWxhcm1zLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFsYXJtc0ludGVydmFsUmVmcmVzaENvbXBvbmVudCB9IGZyb20gJy4vYWxhcm1zLWludGVydmFsLXJlZnJlc2guY29tcG9uZW50JztcbmltcG9ydCB7IEFsYXJtc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybXNDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQUxBUk1TX01PRFVMRV9DT05GSUcsIEFsYXJtc01vZHVsZUNvbmZpZyB9IGZyb20gJy4vYWxhcm1zLm1vZGVsJztcbmltcG9ydCB7IEF1ZGl0Q2hhbmdlc01lc3NhZ2VQaXBlIH0gZnJvbSAnLi9hdWRpdC1jaGFuZ2VzLW1lc3NhZ2UucGlwZSc7XG5pbXBvcnQgeyBzbWFydFJ1bGVzVXBncmFkZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4vbmcxLXNtYXJ0LXJ1bGVzLXVwZ3JhZGUuc2VydmljZSc7XG5pbXBvcnQgeyBBbGFybVNldmVyaXR5VG9MYWJlbFBpcGUgfSBmcm9tICcuL2FsYXJtLXNldmVyaXR5LXRvLWxhYmVsLnBpcGUnO1xuaW1wb3J0IHsgQWxhcm1TdGF0dXNUb0xhYmVsUGlwZSB9IGZyb20gJy4vYWxhcm0tc3RhdHVzLXRvLWxhYmVsLnBpcGUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFsYXJtRW1wdHlDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtLWVtcHR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybUV2ZW50U2VsZWN0b3JNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcbmltcG9ydCB7IEFsYXJtc1R5cGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy10eXBlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBbGFybUxpc3RJbmRpY2F0b3JQaXBlIH0gZnJvbSAnLi9hbGFybS1saXN0LWN1c3RvbS1pbmRpY2F0b3IvYWxhcm0tbGlzdC1pbmRpY2F0b3IucGlwZSc7XG5pbXBvcnQgeyBBbGFybURldGFpbHNCdXR0b25QaXBlIH0gZnJvbSAnLi9hbGFybS1kZXRhaWxzLWN1c3RvbS1idXR0b24vYWxhcm0tZGV0YWlscy1idXR0b24ucGlwZSc7XG5cbmNvbnN0IGRlZmF1bHRBbGFybXNDb25maWc6IEFsYXJtc01vZHVsZUNvbmZpZyA9IHtcbiAgaHlicmlkOiB0cnVlXG59O1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBbGFybURldGFpbHNDb21wb25lbnQsXG4gICAgQWxhcm1JbmZvQ29tcG9uZW50LFxuICAgIEFsYXJtc0NvbXBvbmVudCxcbiAgICBBbGFybVNldmVyaXRpZXNUb1RpdGxlUGlwZSxcbiAgICBBbGFybXNGaWx0ZXJDb21wb25lbnQsXG4gICAgQWxhcm1zSWNvbkNvbXBvbmVudCxcbiAgICBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQsXG4gICAgQWxhcm1zTGlzdENvbXBvbmVudCxcbiAgICBBbGFybVN0YXR1c1RvSWNvblBpcGUsXG4gICAgQXVkaXRDaGFuZ2VzTWVzc2FnZVBpcGUsXG4gICAgQWxhcm1TZXZlcml0eVRvTGFiZWxQaXBlLFxuICAgIEFsYXJtU3RhdHVzVG9MYWJlbFBpcGUsXG4gICAgQWxhcm1FbXB0eUNvbXBvbmVudCxcbiAgICBBbGFybXNUeXBlRmlsdGVyQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtBbGFybXNDb21wb25lbnQsIEFsYXJtc0xpc3RDb21wb25lbnQsIEFsYXJtc0ZpbHRlckNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIERhdGVQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgUmVsYXRpdmVUaW1lUGlwZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBTEFSTVNfTU9EVUxFX0NPTkZJRyxcbiAgICAgIHVzZVZhbHVlOiBkZWZhdWx0QWxhcm1zQ29uZmlnXG4gICAgfVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQTExeU1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIEhlYWRlck1vZHVsZSxcbiAgICBQb3BvdmVyTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUuZm9yUm9vdCgpLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQWxhcm1FdmVudFNlbGVjdG9yTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBBbGFybUxpc3RJbmRpY2F0b3JQaXBlLFxuICAgIEFsYXJtRGV0YWlsc0J1dHRvblBpcGUsXG4gICAgQWxhcm1TZXZlcml0eVRvSWNvblBpcGUsXG4gICAgRHluYW1pY0NvbXBvbmVudE1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtc01vZHVsZSB7XG4gIHN0YXRpYyBjb25maWcoY29uZmlnOiBBbGFybXNNb2R1bGVDb25maWcgPSB7fSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWxhcm1zTW9kdWxlPiB7XG4gICAgY29uc3QgYWxhcm1zQ29uZmlnOiBBbGFybXNNb2R1bGVDb25maWcgPSB7IC4uLmRlZmF1bHRBbGFybXNDb25maWcsIC4uLmNvbmZpZyB9O1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQWxhcm1zTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC4uLihhbGFybXNDb25maWcuaHlicmlkID8gW3NtYXJ0UnVsZXNVcGdyYWRlU2VydmljZVByb3ZpZGVyXSA6IFtdKSxcbiAgICAgICAgaG9va05hdmlnYXRvcihhbGFybXNDb25maWcucm9vdE5hdmlnYXRvck5vZGUpLFxuICAgICAgICBob29rUm91dGUoYWxhcm1zQ29uZmlnLnJvdXRlKSxcblxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQUxBUk1TX01PRFVMRV9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGFsYXJtc0NvbmZpZ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixTQUFTLEVBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5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QUNaLHdCQUF3QjtZQUN4QixZQUFZO1lBSVosc0JBQXNCO1lBQ3RCLHVCQUF1Qjs7MkZBR2QsWUFBWTtrQkEvQ3hCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6Qix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDdEUsU0FBUyxFQUFFO3dCQUNULFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFFBQVEsRUFBRSxtQkFBbUI7eUJBQzlCO3FCQUNGO29CQUNELE9BQU8sRUFBRTt3QkFDUCxVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixhQUFhLENBQUMsT0FBTyxFQUFFO3dCQUN2QixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29tbW9uTW9kdWxlLFxuICBDb3JlTW9kdWxlLFxuICBEeW5hbWljQ29tcG9uZW50TW9kdWxlLFxuICBIZWFkZXJNb2R1bGUsXG4gIFJlbGF0aXZlVGltZVBpcGUsXG4gIGhvb2tOYXZpZ2F0b3IsXG4gIGhvb2tSb3V0ZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBBbGFybURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEFsYXJtSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vYWxhcm0taW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxhcm1TZXZlcml0aWVzVG9UaXRsZVBpcGUgfSBmcm9tICcuL2FsYXJtLXNldmVyaXRpZXMtdG8tdGl0bGUucGlwZSc7XG5pbXBvcnQgeyBBbGFybVNldmVyaXR5VG9JY29uUGlwZSB9IGZyb20gJy4vYWxhcm0tc2V2ZXJpdHktdG8taWNvbi5waXBlJztcbmltcG9ydCB7IEFsYXJtU3RhdHVzVG9JY29uUGlwZSB9IGZyb20gJy4vYWxhcm0tc3RhdHVzLXRvLWljb24ucGlwZSc7XG5pbXBvcnQgeyBBbGFybXNGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFsYXJtc0ljb25Db21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybXNJbnRlcnZhbFJlZnJlc2hDb21wb25lbnQgfSBmcm9tICcuL2FsYXJtcy1pbnRlcnZhbC1yZWZyZXNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGFybXNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9hbGFybXMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxhcm1zQ29tcG9uZW50IH0gZnJvbSAnLi9hbGFybXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFMQVJNU19NT0RVTEVfQ09ORklHLCBBbGFybXNNb2R1bGVDb25maWcgfSBmcm9tICcuL2FsYXJtcy5tb2RlbCc7XG5pbXBvcnQgeyBBdWRpdENoYW5nZXNNZXNzYWdlUGlwZSB9IGZyb20gJy4vYXVkaXQtY2hhbmdlcy1tZXNzYWdlLnBpcGUnO1xuaW1wb3J0IHsgc21hcnRSdWxlc1VwZ3JhZGVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuL25nMS1zbWFydC1ydWxlcy11cGdyYWRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxhcm1TZXZlcml0eVRvTGFiZWxQaXBlIH0gZnJvbSAnLi9hbGFybS1zZXZlcml0eS10by1sYWJlbC5waXBlJztcbmltcG9ydCB7IEFsYXJtU3RhdHVzVG9MYWJlbFBpcGUgfSBmcm9tICcuL2FsYXJtLXN0YXR1cy10by1sYWJlbC5waXBlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBbGFybUVtcHR5Q29tcG9uZW50IH0gZnJvbSAnLi9hbGFybS1lbXB0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxhcm1FdmVudFNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hbGFybS1ldmVudC1zZWxlY3Rvcic7XG5pbXBvcnQgeyBBbGFybXNUeXBlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbGFybXMtdHlwZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQWxhcm1MaXN0SW5kaWNhdG9yUGlwZSB9IGZyb20gJy4vYWxhcm0tbGlzdC1jdXN0b20taW5kaWNhdG9yL2FsYXJtLWxpc3QtaW5kaWNhdG9yLnBpcGUnO1xuaW1wb3J0IHsgQWxhcm1EZXRhaWxzQnV0dG9uUGlwZSB9IGZyb20gJy4vYWxhcm0tZGV0YWlscy1jdXN0b20tYnV0dG9uL2FsYXJtLWRldGFpbHMtYnV0dG9uLnBpcGUnO1xuaW1wb3J0IHsgQWxhcm1zRGF0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYWxhcm1zLWRhdGUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRlcnZhbFBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaW50ZXJ2YWwtcGlja2VyJztcblxuY29uc3QgZGVmYXVsdEFsYXJtc0NvbmZpZzogQWxhcm1zTW9kdWxlQ29uZmlnID0ge1xuICBoeWJyaWQ6IHRydWVcbn07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFsYXJtRGV0YWlsc0NvbXBvbmVudCxcbiAgICBBbGFybUluZm9Db21wb25lbnQsXG4gICAgQWxhcm1zQ29tcG9uZW50LFxuICAgIEFsYXJtU2V2ZXJpdGllc1RvVGl0bGVQaXBlLFxuICAgIEFsYXJtc0ZpbHRlckNvbXBvbmVudCxcbiAgICBBbGFybXNJY29uQ29tcG9uZW50LFxuICAgIEFsYXJtc0ludGVydmFsUmVmcmVzaENvbXBvbmVudCxcbiAgICBBbGFybXNMaXN0Q29tcG9uZW50LFxuICAgIEFsYXJtU3RhdHVzVG9JY29uUGlwZSxcbiAgICBBdWRpdENoYW5nZXNNZXNzYWdlUGlwZSxcbiAgICBBbGFybVNldmVyaXR5VG9MYWJlbFBpcGUsXG4gICAgQWxhcm1TdGF0dXNUb0xhYmVsUGlwZSxcbiAgICBBbGFybUVtcHR5Q29tcG9uZW50LFxuICAgIEFsYXJtc0RhdGVGaWx0ZXJDb21wb25lbnQsXG4gICAgQWxhcm1zVHlwZUZpbHRlckNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbQWxhcm1zQ29tcG9uZW50LCBBbGFybXNMaXN0Q29tcG9uZW50LCBBbGFybXNGaWx0ZXJDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICBEYXRlUGlwZSxcbiAgICBUaXRsZUNhc2VQaXBlLFxuICAgIFJlbGF0aXZlVGltZVBpcGUsXG4gICAge1xuICAgICAgcHJvdmlkZTogQUxBUk1TX01PRFVMRV9DT05GSUcsXG4gICAgICB1c2VWYWx1ZTogZGVmYXVsdEFsYXJtc0NvbmZpZ1xuICAgIH1cbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEExMXlNb2R1bGUsXG4gICAgQnNEcm9wZG93bk1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBIZWFkZXJNb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLmZvclJvb3QoKSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIEFsYXJtRXZlbnRTZWxlY3Rvck1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQWxhcm1MaXN0SW5kaWNhdG9yUGlwZSxcbiAgICBBbGFybURldGFpbHNCdXR0b25QaXBlLFxuICAgIEFsYXJtU2V2ZXJpdHlUb0ljb25QaXBlLFxuICAgIER5bmFtaWNDb21wb25lbnRNb2R1bGUsXG4gICAgSW50ZXJ2YWxQaWNrZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNNb2R1bGUge1xuICBzdGF0aWMgY29uZmlnKGNvbmZpZzogQWxhcm1zTW9kdWxlQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFsYXJtc01vZHVsZT4ge1xuICAgIGNvbnN0IGFsYXJtc0NvbmZpZzogQWxhcm1zTW9kdWxlQ29uZmlnID0geyAuLi5kZWZhdWx0QWxhcm1zQ29uZmlnLCAuLi5jb25maWcgfTtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFsYXJtc01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi4oYWxhcm1zQ29uZmlnLmh5YnJpZCA/IFtzbWFydFJ1bGVzVXBncmFkZVNlcnZpY2VQcm92aWRlcl0gOiBbXSksXG4gICAgICAgIGhvb2tOYXZpZ2F0b3IoYWxhcm1zQ29uZmlnLnJvb3ROYXZpZ2F0b3JOb2RlKSxcbiAgICAgICAgaG9va1JvdXRlKGFsYXJtc0NvbmZpZy5yb3V0ZSksXG5cbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFMQVJNU19NT0RVTEVfQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiBhbGFybXNDb25maWdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==