@provoly/hypervisor 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,42 +14,51 @@ import * as i8 from "../../general/for-datetime-local-pipe/for-datetime-local.pi
14
14
  export class EventDetailComponent extends SubscriptionnerDirective {
15
15
  set events(events) {
16
16
  this._events = events.filter(ev => !!ev);
17
- this.modifications = new Array(this._events.length);
17
+ this.eventModifications = new Array(this._events.length);
18
18
  this.opened = events.length === 1 ? [true] : [];
19
19
  }
20
20
  ;
21
+ set procedure(procedure) {
22
+ this._procedure = procedure;
23
+ this.procedureModifications = {};
24
+ }
21
25
  set cancelModifications(evt) {
22
- this.modifications = new Array(this._events.length);
23
- this.modified.next(this._events.map((ev, idx) => [this.modifications[idx], ev]));
26
+ this.eventModifications = new Array(this._events.length);
27
+ this.procedureModifications = {};
28
+ this._outputModifications();
24
29
  }
25
30
  constructor(equipmentService) {
26
31
  super();
27
32
  this.equipmentService = equipmentService;
28
- this.procedure = undefined;
29
- this._events = [];
30
33
  this.opened = [];
31
- this.modified = new EventEmitter();
32
34
  this.categories = HypEventCategory;
33
35
  this.criticalities = HypEventCriticality;
34
- this.modifications = [];
36
+ this._events = [];
37
+ this.eventModifications = [];
38
+ this.modifiedEvents = new EventEmitter();
39
+ this.procedureModifications = {};
40
+ this.modifiedProcedure = new EventEmitter();
35
41
  }
36
42
  get events() {
37
- return this._events.map((evt, idx) => ({ ...evt, ...(this.modifications[idx] ?? {}) }));
43
+ return this._events.map((evt, idx) => ({ ...evt, ...(this.eventModifications[idx] ?? {}) }));
44
+ }
45
+ get procedure() {
46
+ return this._procedure ? ({ ...this._procedure, ...(this.procedureModifications ?? {}), events: this.events }) : undefined;
38
47
  }
39
48
  toggle(i) {
40
49
  this.opened[i] = !this.opened[i];
41
50
  }
42
- modify(index, prop, $event) {
51
+ modifyEvent(index, prop, $event) {
43
52
  // @ts-ignore
44
53
  const newValue = $event instanceof Event ? $event.target?.value : $event;
45
54
  // @ts-ignore
46
55
  if (this._events[index][prop] !== newValue) {
47
- if (!this.modifications[index]) {
48
- this.modifications[index] = {};
56
+ if (!this.eventModifications[index]) {
57
+ this.eventModifications[index] = {};
49
58
  }
50
59
  // @ts-ignore
51
- this.modifications[index][prop] = newValue;
52
- this.modified.next(this._events.map((ev, idx) => [this.modifications[idx], ev]));
60
+ this.eventModifications[index][prop] = newValue;
61
+ this._outputModifications();
53
62
  }
54
63
  }
55
64
  access(event) {
@@ -99,28 +108,34 @@ export class EventDetailComponent extends SubscriptionnerDirective {
99
108
  changeEquipment(index, $event) {
100
109
  this.equipmentService.findByName($event.target.value).subscribe((equipment) => {
101
110
  if (equipment && this._events[index].name !== equipment.name) {
102
- if (!this.modifications[index]) {
103
- this.modifications[index] = {};
111
+ if (!this.eventModifications[index]) {
112
+ this.eventModifications[index] = {};
104
113
  }
105
114
  // @ts-ignore
106
- this.modifications[index].equipment = equipment;
107
- this.modified.next(this._events.map((ev, idx) => [this.modifications[idx], ev]));
115
+ this.eventModifications[index].equipment = equipment;
116
+ this._outputModifications();
108
117
  }
109
118
  });
110
119
  }
120
+ _outputModifications() {
121
+ this.modifiedEvents.next(this._events.map((ev, idx) => [this.eventModifications[idx], ev]));
122
+ this.modifiedProcedure.next(this.procedure ? [this.procedureModifications, this.procedure] : undefined);
123
+ }
111
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventDetailComponent, deps: [{ token: i1.EquipmentService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventDetailComponent, selector: "hvy-event-detail", inputs: { procedure: "procedure", events: "events", cancelModifications: "cancelModifications" }, outputs: { modified: "modified" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ '@hvy.event.log.name' | i18n }}</h1>\n <button class=\"a-btn a-btn--secondary -fix-right\">{{ '@hvy.event.log.event.close' | i18n }}</button>\n </div>\n <div class=\"o-hvy-events-detail__header__split\">\n <button class=\"a-btn a-btn--secondary\">{{ '@hvy.event.log.procedure.delete' | i18n }}</button>\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events;track event.id;let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon [iconSvg]=\"!opened[idx] ? 'chevron_bottom' : 'chevron_top'\" (click)=\"toggle(idx)\"></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <hvy-status-display [event]=\"event\" [modifiable]=\"true\"></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n <div>{{ '@hvy.event.log.event.description' | i18n }}: {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }}: {{ event.address }}</div>\n @if (opened[idx]) {\n @if (access(event);as accessValue) {\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <table>\n <tbody>\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span></td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.name\"\n (change)=\"modify(idx, 'name', $event)\" [readonly]=\"accessValue.name\"></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.category\" [items]=\"categories\"\n (ngModelChange)=\"modify(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\" [disabled]=\"accessValue.category\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.criticality\" [items]=\"criticalities\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modify(idx, 'criticality', $event)\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span></td>\n <td><textarea [ngModel]=\"event.description\" class=\"a-form-field\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modify(idx, 'description', $event)\"></textarea></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }}</td>\n <td><textarea [ngModel]=\"event.address\" class=\"a-form-field\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modify(idx, 'address', $event)\"></textarea></td>\n </tr>\n @if (['ALERT', 'REPORT'].includes(event.type)) {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.externalSourceRef ?? ''\"\n [readonly]=\"accessValue.source\" (change)=\"modify(idx, 'source', $event)\"></td>\n </tr>\n }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }}</td>\n <td>\n <input type=\"text\" class=\"a-form-field\"\n [value]=\"event.equipment?.name ?? ''\"\n [readonly]=\"accessValue.eqName\"\n (change)=\"changeEquipment(idx, $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.equipment?.entity ?? ''\"\n readonly></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.startDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.startDate | forDateTimeLocal\"\n [readonly]=\"accessValue.startDate\" (change)=\"modify(idx, 'startDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.endDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.endDate | forDateTimeLocal\"\n [readonly]=\"accessValue.endDate\" (change)=\"modify(idx, 'endDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\" readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.closeDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"o-hvy-events-detail__events__event__content__comments\">\n <h3>{{ '@hvy.event.log.event.comments.name' | i18n }}</h3>\n <textarea [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"></textarea>\n <div class=\"o-hvy-events-detail__events__event__content__comments__button\">\n <button class=\"a-btn a-btn--primary\">{{ '@hvy.action.send' | i18n }}</button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>{{ '@hvy.event.log.procedure.name' | i18n }}</h2>\n </div>\n <div>\n <p>{{ procedure.name }}</p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"procedure.progress\"></hvy-progress-display>\n </div>\n <div class=\"o-hvy-events-detail__procedure__actions\">\n @for (action of procedure.actions;track action.id) {\n <div class=\"o-hvy-events-detail__procedure__actions__action\">\n <pry-icon iconSvg=\"six_dot\"></pry-icon>\n <pry-checkbox [ngModel]=\"action.status === 'DONE'\"></pry-checkbox>\n <div>{{ action.name }}</div>\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </div>\n } @empty {\n <div>\n {{ '@hvy.event.log.procedure.noAction' | i18n }}\n </div>\n }\n </div>\n <div>\n <button class=\"a-btn a-btn--primary\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.event.log.procedure.addAction' | i18n }}\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i6.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["event", "modifiable"], outputs: ["modified"] }, { kind: "component", type: i7.ProgressDisplayComponent, selector: "hvy-progress-display", inputs: ["progress"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i8.ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EventDetailComponent, selector: "hvy-event-detail", inputs: { events: "events", procedure: "procedure", cancelModifications: "cancelModifications" }, outputs: { modifiedEvents: "modifiedEvents", modifiedProcedure: "modifiedProcedure" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ '@hvy.event.log.name' | i18n }}</h1>\n <button class=\"a-btn a-btn--secondary -fix-right\">{{ '@hvy.event.log.event.close' | i18n }}</button>\n </div>\n <div class=\"o-hvy-events-detail__header__split\">\n <button class=\"a-btn a-btn--secondary\">{{ '@hvy.event.log.procedure.delete' | i18n }}</button>\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events;track event.id;let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon [iconSvg]=\"!opened[idx] ? 'chevron_bottom' : 'chevron_top'\" (click)=\"toggle(idx)\"></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <hvy-status-display [event]=\"event\" [modifiable]=\"true\"></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n <div>{{ '@hvy.event.log.event.description' | i18n }}: {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }}: {{ event.address }}</div>\n @if (opened[idx]) {\n @if (access(event);as accessValue) {\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <table>\n <tbody>\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span></td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.name\"\n (change)=\"modifyEvent(idx, 'name', $event)\" [readonly]=\"accessValue.name\"></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.category\" [items]=\"categories\"\n (ngModelChange)=\"modifyEvent(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\" [disabled]=\"accessValue.category\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.criticality\" [items]=\"criticalities\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modifyEvent(idx, 'criticality', $event)\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span></td>\n <td><textarea [ngModel]=\"event.description\" class=\"a-form-field\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modifyEvent(idx, 'description', $event)\"></textarea></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }}</td>\n <td><textarea [ngModel]=\"event.address\" class=\"a-form-field\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modifyEvent(idx, 'address', $event)\"></textarea></td>\n </tr>\n @if (['ALERT', 'REPORT'].includes(event.type)) {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.externalSourceRef ?? ''\"\n [readonly]=\"accessValue.source\" (change)=\"modifyEvent(idx, 'source', $event)\"></td>\n </tr>\n }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }}</td>\n <td>\n <input type=\"text\" class=\"a-form-field\"\n [value]=\"event.equipment?.name ?? ''\"\n [readonly]=\"accessValue.eqName\"\n (change)=\"changeEquipment(idx, $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.equipment?.entity ?? ''\"\n readonly></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.startDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.startDate | forDateTimeLocal\"\n [readonly]=\"accessValue.startDate\" (change)=\"modifyEvent(idx, 'startDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.endDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.endDate | forDateTimeLocal\"\n [readonly]=\"accessValue.endDate\" (change)=\"modifyEvent(idx, 'endDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\" readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.closeDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"o-hvy-events-detail__events__event__content__comments\">\n <h3>{{ '@hvy.event.log.event.comments.name' | i18n }}</h3>\n <textarea [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"></textarea>\n <div class=\"o-hvy-events-detail__events__event__content__comments__button\">\n <button class=\"a-btn a-btn--primary\">{{ '@hvy.action.send' | i18n }}</button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>{{ '@hvy.event.log.procedure.name' | i18n }}</h2>\n </div>\n <div>\n <p>{{ procedure.name }}</p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"procedure.progress\"></hvy-progress-display>\n </div>\n <div class=\"o-hvy-events-detail__procedure__actions\">\n @for (action of procedure.actions;track action.id) {\n <div class=\"o-hvy-events-detail__procedure__actions__action\">\n <pry-icon iconSvg=\"six_dot\"></pry-icon>\n <pry-checkbox [ngModel]=\"action.status === 'DONE'\"></pry-checkbox>\n <div>{{ action.name }}</div>\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </div>\n } @empty {\n <div>\n {{ '@hvy.event.log.procedure.noAction' | i18n }}\n </div>\n }\n </div>\n <div>\n <button class=\"a-btn a-btn--primary\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.event.log.procedure.addAction' | i18n }}\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: i6.StatusDisplayComponent, selector: "hvy-status-display", inputs: ["event", "modifiable"], outputs: ["modified"] }, { kind: "component", type: i7.ProgressDisplayComponent, selector: "hvy-progress-display", inputs: ["progress"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i8.ForDatetimeLocalPipe, name: "forDateTimeLocal" }] }); }
113
126
  }
114
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventDetailComponent, decorators: [{
115
128
  type: Component,
116
- args: [{ selector: 'hvy-event-detail', template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ '@hvy.event.log.name' | i18n }}</h1>\n <button class=\"a-btn a-btn--secondary -fix-right\">{{ '@hvy.event.log.event.close' | i18n }}</button>\n </div>\n <div class=\"o-hvy-events-detail__header__split\">\n <button class=\"a-btn a-btn--secondary\">{{ '@hvy.event.log.procedure.delete' | i18n }}</button>\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events;track event.id;let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon [iconSvg]=\"!opened[idx] ? 'chevron_bottom' : 'chevron_top'\" (click)=\"toggle(idx)\"></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <hvy-status-display [event]=\"event\" [modifiable]=\"true\"></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n <div>{{ '@hvy.event.log.event.description' | i18n }}: {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }}: {{ event.address }}</div>\n @if (opened[idx]) {\n @if (access(event);as accessValue) {\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <table>\n <tbody>\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span></td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.name\"\n (change)=\"modify(idx, 'name', $event)\" [readonly]=\"accessValue.name\"></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.category\" [items]=\"categories\"\n (ngModelChange)=\"modify(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\" [disabled]=\"accessValue.category\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.criticality\" [items]=\"criticalities\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modify(idx, 'criticality', $event)\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span></td>\n <td><textarea [ngModel]=\"event.description\" class=\"a-form-field\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modify(idx, 'description', $event)\"></textarea></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }}</td>\n <td><textarea [ngModel]=\"event.address\" class=\"a-form-field\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modify(idx, 'address', $event)\"></textarea></td>\n </tr>\n @if (['ALERT', 'REPORT'].includes(event.type)) {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.externalSourceRef ?? ''\"\n [readonly]=\"accessValue.source\" (change)=\"modify(idx, 'source', $event)\"></td>\n </tr>\n }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }}</td>\n <td>\n <input type=\"text\" class=\"a-form-field\"\n [value]=\"event.equipment?.name ?? ''\"\n [readonly]=\"accessValue.eqName\"\n (change)=\"changeEquipment(idx, $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.equipment?.entity ?? ''\"\n readonly></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.startDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.startDate | forDateTimeLocal\"\n [readonly]=\"accessValue.startDate\" (change)=\"modify(idx, 'startDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.endDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.endDate | forDateTimeLocal\"\n [readonly]=\"accessValue.endDate\" (change)=\"modify(idx, 'endDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\" readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.closeDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"o-hvy-events-detail__events__event__content__comments\">\n <h3>{{ '@hvy.event.log.event.comments.name' | i18n }}</h3>\n <textarea [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"></textarea>\n <div class=\"o-hvy-events-detail__events__event__content__comments__button\">\n <button class=\"a-btn a-btn--primary\">{{ '@hvy.action.send' | i18n }}</button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>{{ '@hvy.event.log.procedure.name' | i18n }}</h2>\n </div>\n <div>\n <p>{{ procedure.name }}</p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"procedure.progress\"></hvy-progress-display>\n </div>\n <div class=\"o-hvy-events-detail__procedure__actions\">\n @for (action of procedure.actions;track action.id) {\n <div class=\"o-hvy-events-detail__procedure__actions__action\">\n <pry-icon iconSvg=\"six_dot\"></pry-icon>\n <pry-checkbox [ngModel]=\"action.status === 'DONE'\"></pry-checkbox>\n <div>{{ action.name }}</div>\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </div>\n } @empty {\n <div>\n {{ '@hvy.event.log.procedure.noAction' | i18n }}\n </div>\n }\n </div>\n <div>\n <button class=\"a-btn a-btn--primary\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.event.log.procedure.addAction' | i18n }}\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n" }]
117
- }], ctorParameters: () => [{ type: i1.EquipmentService }], propDecorators: { procedure: [{
118
- type: Input
119
- }], modified: [{
129
+ args: [{ selector: 'hvy-event-detail', template: "<div class=\"o-hvy-events-detail\">\n <div class=\"o-hvy-events-detail__header\">\n <div class=\"o-hvy-events-detail__header__split\">\n <h1>{{ '@hvy.event.log.name' | i18n }}</h1>\n <button class=\"a-btn a-btn--secondary -fix-right\">{{ '@hvy.event.log.event.close' | i18n }}</button>\n </div>\n <div class=\"o-hvy-events-detail__header__split\">\n <button class=\"a-btn a-btn--secondary\">{{ '@hvy.event.log.procedure.delete' | i18n }}</button>\n </div>\n </div>\n <div class=\"o-hvy-events-detail__container\">\n <div class=\"o-hvy-events-detail__container__scrollable\">\n <div class=\"o-hvy-events-detail__events\">\n @for (event of events;track event.id;let idx = $index) {\n <div class=\"o-hvy-events-detail__events__event\">\n <div class=\"o-hvy-events-detail__events__event__header\">\n <pry-icon [iconSvg]=\"!opened[idx] ? 'chevron_bottom' : 'chevron_top'\" (click)=\"toggle(idx)\"></pry-icon>\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n <h2>{{ event.name }}</h2>\n <hvy-status-display [event]=\"event\" [modifiable]=\"true\"></hvy-status-display>\n </div>\n <div class=\"o-hvy-events-detail__events__event__content\">\n <div>{{ '@hvy.event.log.event.description' | i18n }}: {{ event.description }}</div>\n <div>{{ '@hvy.event.log.event.address' | i18n }}: {{ event.address }}</div>\n @if (opened[idx]) {\n @if (access(event);as accessValue) {\n <h3>{{ '@hvy.event.log.event.detail' | i18n }}</h3>\n <table>\n <tbody>\n <tr>\n <td>{{ '@hvy.event.log.event.name' | i18n }}<span class=\"required\">*</span></td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.name\"\n (change)=\"modifyEvent(idx, 'name', $event)\" [readonly]=\"accessValue.name\"></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.category' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.category\" [items]=\"categories\"\n (ngModelChange)=\"modifyEvent(idx, 'category', $event)\"\n i18nPrefix=\"@hvy.event.category.\" [disabled]=\"accessValue.category\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.criticality.name' | i18n }}<span class=\"required\">*</span></td>\n <td>\n <pry-select [ngModel]=\"event.criticality\" [items]=\"criticalities\"\n i18nPrefix=\"@hvy.event.criticality.\"\n [disabled]=\"accessValue.criticality\"\n (ngModelChange)=\"modifyEvent(idx, 'criticality', $event)\"></pry-select>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.description' | i18n }}<span class=\"required\">*</span></td>\n <td><textarea [ngModel]=\"event.description\" class=\"a-form-field\"\n [readonly]=\"accessValue.description\"\n (ngModelChange)=\"modifyEvent(idx, 'description', $event)\"></textarea></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.log.event.address' | i18n }}</td>\n <td><textarea [ngModel]=\"event.address\" class=\"a-form-field\"\n [readonly]=\"accessValue.address\"\n (ngModelChange)=\"modifyEvent(idx, 'address', $event)\"></textarea></td>\n </tr>\n @if (['ALERT', 'REPORT'].includes(event.type)) {\n <tr>\n <td>{{ '@hvy.event.source' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.externalSourceRef ?? ''\"\n [readonly]=\"accessValue.source\" (change)=\"modifyEvent(idx, 'source', $event)\"></td>\n </tr>\n }\n <tr>\n <td>{{ '@hvy.event.equipment' | i18n }}</td>\n <td>\n <input type=\"text\" class=\"a-form-field\"\n [value]=\"event.equipment?.name ?? ''\"\n [readonly]=\"accessValue.eqName\"\n (change)=\"changeEquipment(idx, $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.equipmentEntity' | i18n }}</td>\n <td><input type=\"text\" class=\"a-form-field\" [value]=\"event.equipment?.entity ?? ''\"\n readonly></td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.startDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.startDate | forDateTimeLocal\"\n [readonly]=\"accessValue.startDate\" (change)=\"modifyEvent(idx, 'startDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.endDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.endDate | forDateTimeLocal\"\n [readonly]=\"accessValue.endDate\" (change)=\"modifyEvent(idx, 'endDate', $event)\">\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.creationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.creationDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.lastModificationDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\"\n [value]=\"event.lastModificationDate | forDateTimeLocal\" readonly>\n </td>\n </tr>\n <tr>\n <td>{{ '@hvy.event.closeDate' | i18n }}</td>\n <td>\n <input type=\"datetime-local\" class=\"a-form-field\" [value]=\"event.closeDate | forDateTimeLocal\"\n readonly>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"o-hvy-events-detail__events__event__content__comments\">\n <h3>{{ '@hvy.event.log.event.comments.name' | i18n }}</h3>\n <textarea [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"></textarea>\n <div class=\"o-hvy-events-detail__events__event__content__comments__button\">\n <button class=\"a-btn a-btn--primary\">{{ '@hvy.action.send' | i18n }}</button>\n </div>\n </div>\n }\n }\n </div>\n </div>\n }\n </div>\n <div class=\"o-hvy-events-detail__procedure\">\n @if (procedure) {\n <div class=\"o-hvy-events-detail__procedure__header\">\n <h2>{{ '@hvy.event.log.procedure.name' | i18n }}</h2>\n </div>\n <div>\n <p>{{ procedure.name }}</p>\n </div>\n <div class=\"o-hvy-events-detail__procedure__progress\">\n <p>{{ '@hvy.event.log.procedure.progress' | i18n }}</p>\n <hvy-progress-display [progress]=\"procedure.progress\"></hvy-progress-display>\n </div>\n <div class=\"o-hvy-events-detail__procedure__actions\">\n @for (action of procedure.actions;track action.id) {\n <div class=\"o-hvy-events-detail__procedure__actions__action\">\n <pry-icon iconSvg=\"six_dot\"></pry-icon>\n <pry-checkbox [ngModel]=\"action.status === 'DONE'\"></pry-checkbox>\n <div>{{ action.name }}</div>\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </div>\n } @empty {\n <div>\n {{ '@hvy.event.log.procedure.noAction' | i18n }}\n </div>\n }\n </div>\n <div>\n <button class=\"a-btn a-btn--primary\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.event.log.procedure.addAction' | i18n }}\n </button>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n" }]
130
+ }], ctorParameters: () => [{ type: i1.EquipmentService }], propDecorators: { modifiedEvents: [{
131
+ type: Output
132
+ }], modifiedProcedure: [{
120
133
  type: Output
121
134
  }], events: [{
122
135
  type: Input
136
+ }], procedure: [{
137
+ type: Input
123
138
  }], cancelModifications: [{
124
139
  type: Input
125
140
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L2RldGFpbC9ldmVudC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZGV0YWlsL2V2ZW50LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx3QkFBd0I7SUFTaEUsSUFBYSxNQUFNLENBQUMsTUFBeUI7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFhLG1CQUFtQixDQUFDLEdBQVE7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LFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXpHVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixvTkNiakMsaW5TQTRLQTs7MkZEL0phLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0I7cUZBSW5CLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFLTSxNQUFNO3NCQUFsQixLQUFLO2dCQU1PLG1CQUFtQjtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIeXBQcm9jZWR1cmUgfSBmcm9tICcuLi8uLi9tb2RlbC9oeXAtcHJvY2VkdXJlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBFdmVudENhdGVnb3J5IH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWNhdGVnb3J5LnR5cGUnO1xuaW1wb3J0IHsgSHlwRXZlbnRDcml0aWNhbGl0eSB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1jcml0aWNhbGl0eS50eXBlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBFcXVpcG1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9oeXAtZXF1aXBtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBFcXVpcG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmUvZXF1aXBtZW50L2VxdWlwbWVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWV2ZW50LWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudERldGFpbENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHByb2NlZHVyZT86IEh5cFByb2NlZHVyZSA9IHVuZGVmaW5lZDtcbiAgX2V2ZW50czogSHlwRXZlbnREZXRhaWxzW10gPSBbXTtcbiAgb3BlbmVkOiBib29sZWFuW10gPSBbXTtcbiAgQE91dHB1dCgpIG1vZGlmaWVkID0gbmV3IEV2ZW50RW1pdHRlcjxbUGFydGlhbDxIeXBFdmVudERldGFpbHM+LCBIeXBFdmVudERldGFpbHNdW10+KCk7XG4gIGNhdGVnb3JpZXMgPSBIeXBFdmVudENhdGVnb3J5O1xuICBjcml0aWNhbGl0aWVzID0gSHlwRXZlbnRDcml0aWNhbGl0eTtcbiAgbW9kaWZpY2F0aW9uczogUGFydGlhbDxIeXBFdmVudERldGFpbHM+W10gPSBbXTtcblxuICBASW5wdXQoKSBzZXQgZXZlbnRzKGV2ZW50czogSHlwRXZlbnREZXRhaWxzW10pIHtcbiAgICB0aGlzLl9ldmVudHMgPSBldmVudHMuZmlsdGVyKGV2ID0+ICEhZXYpO1xuICAgIHRoaXMubW9kaWZpY2F0aW9ucyA9IG5ldyBBcnJheSh0aGlzLl9ldmVudHMubGVuZ3RoKTtcbiAgICB0aGlzLm9wZW5lZCA9IGV2ZW50cy5sZW5ndGggPT09IDEgPyBbdHJ1ZV0gOiBbXTtcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgY2FuY2VsTW9kaWZpY2F0aW9ucyhldnQ6IGFueSkge1xuICAgIHRoaXMubW9kaWZpY2F0aW9ucyA9IG5ldyBBcnJheSh0aGlzLl9ldmVudHMubGVuZ3RoKTtcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5fZXZlbnRzLm1hcCgoZXYsIGlkeCkgPT4gW3RoaXMubW9kaWZpY2F0aW9uc1tpZHhdLCBldl0pKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXF1aXBtZW50U2VydmljZTogRXF1aXBtZW50U2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgZXZlbnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9ldmVudHMubWFwKChldnQsIGlkeCkgPT4gKHsgLi4uZXZ0LCAuLi4odGhpcy5tb2RpZmljYXRpb25zW2lkeF0gPz8ge30pIH0pKTtcbiAgfVxuXG4gIHRvZ2dsZShpOiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5lZFtpXSA9ICF0aGlzLm9wZW5lZFtpXTtcbiAgfVxuXG4gIG1vZGlmeShpbmRleDogbnVtYmVyLCBwcm9wOiBzdHJpbmcsICRldmVudDogRXZlbnQgfCBzdHJpbmcpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgbmV3VmFsdWUgPSAkZXZlbnQgaW5zdGFuY2VvZiBFdmVudCA/ICRldmVudC50YXJnZXQ/LnZhbHVlIDogJGV2ZW50O1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodGhpcy5fZXZlbnRzW2luZGV4XVtwcm9wXSAhPT0gbmV3VmFsdWUpIHtcblxuICAgICAgaWYgKCF0aGlzLm1vZGlmaWNhdGlvbnNbaW5kZXhdKSB7XG4gICAgICAgIHRoaXMubW9kaWZpY2F0aW9uc1tpbmRleF0gPSB7fTtcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMubW9kaWZpY2F0aW9uc1tpbmRleF1bcHJvcF0gPSBuZXdWYWx1ZTtcblxuICAgICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuX2V2ZW50cy5tYXAoKGV2LCBpZHgpID0+IFt0aGlzLm1vZGlmaWNhdGlvbnNbaWR4XSwgZXZdKSk7XG4gICAgfVxuICB9XG5cbiAgYWNjZXNzKGV2ZW50OiBIeXBFdmVudERldGFpbHMpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FMRVJUJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogdHJ1ZSxcbiAgICAgICAgICBjYXRlZ29yeTogdHJ1ZSxcbiAgICAgICAgICBjcml0aWNhbGl0eTogdHJ1ZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgICAgICAgICBhZGRyZXNzOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZTogdHJ1ZSxcbiAgICAgICAgICBlcU5hbWU6IHRydWUsXG4gICAgICAgICAgZXFFbnRpdHk6IHRydWUsXG4gICAgICAgICAgc3RhcnREYXRlOiB0cnVlLFxuICAgICAgICAgIGVuZERhdGU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdSRVBPUlQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGZhbHNlLFxuICAgICAgICAgIGNhdGVnb3J5OiB0cnVlLFxuICAgICAgICAgIGNyaXRpY2FsaXR5OiBmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgICAgICAgICBhZGRyZXNzOiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2U6IHRydWUsXG4gICAgICAgICAgZXFOYW1lOiBmYWxzZSxcbiAgICAgICAgICBlcUVudGl0eTogdHJ1ZSxcbiAgICAgICAgICBzdGFydERhdGU6IHRydWUsXG4gICAgICAgICAgZW5kRGF0ZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ09QRVJBVE9SJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBmYWxzZSxcbiAgICAgICAgICBjYXRlZ29yeTogZmFsc2UsXG4gICAgICAgICAgY3JpdGljYWxpdHk6IGZhbHNlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBmYWxzZSxcbiAgICAgICAgICBhZGRyZXNzOiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIGVxTmFtZTogZmFsc2UsXG4gICAgICAgICAgZXFFbnRpdHk6IGZhbHNlLFxuICAgICAgICAgIHN0YXJ0RGF0ZTogZmFsc2UsXG4gICAgICAgICAgZW5kRGF0ZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlRXF1aXBtZW50KGluZGV4OiBudW1iZXIsICRldmVudDogYW55KSB7XG4gICAgdGhpcy5lcXVpcG1lbnRTZXJ2aWNlLmZpbmRCeU5hbWUoJGV2ZW50LnRhcmdldC52YWx1ZSkuc3Vic2NyaWJlKChlcXVpcG1lbnQ6IEh5cEVxdWlwbWVudCkgPT4ge1xuICAgICAgaWYgKGVxdWlwbWVudCAmJiB0aGlzLl9ldmVudHNbaW5kZXhdLm5hbWUgIT09IGVxdWlwbWVudC5uYW1lKSB7XG5cbiAgICAgICAgaWYgKCF0aGlzLm1vZGlmaWNhdGlvbnNbaW5kZXhdKSB7XG4gICAgICAgICAgdGhpcy5tb2RpZmljYXRpb25zW2luZGV4XSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5tb2RpZmljYXRpb25zW2luZGV4XS5lcXVpcG1lbnQgPSBlcXVpcG1lbnQ7XG4gICAgICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLl9ldmVudHMubWFwKChldiwgaWR4KSA9PiBbdGhpcy5tb2RpZmljYXRpb25zW2lkeF0sIGV2XSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbFwiPlxuICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX2hlYWRlcl9fc3BsaXRcIj5cbiAgICAgIDxoMT57eyAnQGh2eS5ldmVudC5sb2cubmFtZScgfCBpMThuIH19PC9oMT5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1maXgtcmlnaHRcIj57eyAnQGh2eS5ldmVudC5sb2cuZXZlbnQuY2xvc2UnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19oZWFkZXJfX3NwbGl0XCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUuZGVsZXRlJyB8IGkxOG4gfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fY29udGFpbmVyX19zY3JvbGxhYmxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fZXZlbnRzXCI+XG4gICAgICAgIEBmb3IgKGV2ZW50IG9mIGV2ZW50czt0cmFjayBldmVudC5pZDtsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX2V2ZW50c19fZXZlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19ldmVudHNfX2V2ZW50X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIFtpY29uU3ZnXT1cIiFvcGVuZWRbaWR4XSA/ICdjaGV2cm9uX2JvdHRvbScgOiAnY2hldnJvbl90b3AnXCIgKGNsaWNrKT1cInRvZ2dsZShpZHgpXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPGh2eS1pY29uLWRpc3BsYXkgW2V2ZW50XT1cImV2ZW50XCI+PC9odnktaWNvbi1kaXNwbGF5PlxuICAgICAgICAgICAgICA8aDI+e3sgZXZlbnQubmFtZSB9fTwvaDI+XG4gICAgICAgICAgICAgIDxodnktc3RhdHVzLWRpc3BsYXkgW2V2ZW50XT1cImV2ZW50XCIgW21vZGlmaWFibGVdPVwidHJ1ZVwiPjwvaHZ5LXN0YXR1cy1kaXNwbGF5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fZXZlbnRzX19ldmVudF9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5kZXNjcmlwdGlvbicgfCBpMThuIH19OiB7eyBldmVudC5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5hZGRyZXNzJyB8IGkxOG4gfX06IHt7IGV2ZW50LmFkZHJlc3MgfX08L2Rpdj5cbiAgICAgICAgICAgICAgQGlmIChvcGVuZWRbaWR4XSkge1xuICAgICAgICAgICAgICAgIEBpZiAoYWNjZXNzKGV2ZW50KTthcyBhY2Nlc3NWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgPGgzPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5kZXRhaWwnIHwgaTE4biB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sb2cuZXZlbnQubmFtZScgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBbdmFsdWVdPVwiZXZlbnQubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm1vZGlmeShpZHgsICduYW1lJywgJGV2ZW50KVwiIFtyZWFkb25seV09XCJhY2Nlc3NWYWx1ZS5uYW1lXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sb2cuZXZlbnQuY2F0ZWdvcnknIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3QgW25nTW9kZWxdPVwiZXZlbnQuY2F0ZWdvcnlcIiBbaXRlbXNdPVwiY2F0ZWdvcmllc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJtb2RpZnkoaWR4LCAnY2F0ZWdvcnknLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LmV2ZW50LmNhdGVnb3J5LlwiIFtkaXNhYmxlZF09XCJhY2Nlc3NWYWx1ZS5jYXRlZ29yeVwiPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmNyaXRpY2FsaXR5Lm5hbWUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3QgW25nTW9kZWxdPVwiZXZlbnQuY3JpdGljYWxpdHlcIiBbaXRlbXNdPVwiY3JpdGljYWxpdGllc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5ldmVudC5jcml0aWNhbGl0eS5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjY2Vzc1ZhbHVlLmNyaXRpY2FsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGlmeShpZHgsICdjcml0aWNhbGl0eScsICRldmVudClcIj48L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sb2cuZXZlbnQuZGVzY3JpcHRpb24nIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPjx0ZXh0YXJlYSBbbmdNb2RlbF09XCJldmVudC5kZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJhY2Nlc3NWYWx1ZS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJtb2RpZnkoaWR4LCAnZGVzY3JpcHRpb24nLCAkZXZlbnQpXCI+PC90ZXh0YXJlYT48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5hZGRyZXNzJyB8IGkxOG4gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD48dGV4dGFyZWEgW25nTW9kZWxdPVwiZXZlbnQuYWRkcmVzc1wiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJhY2Nlc3NWYWx1ZS5hZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGlmeShpZHgsICdhZGRyZXNzJywgJGV2ZW50KVwiPjwvdGV4dGFyZWE+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKFsnQUxFUlQnLCAnUkVQT1JUJ10uaW5jbHVkZXMoZXZlbnQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LnNvdXJjZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW3ZhbHVlXT1cImV2ZW50LmV4dGVybmFsU291cmNlUmVmID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYWNjZXNzVmFsdWUuc291cmNlXCIgKGNoYW5nZSk9XCJtb2RpZnkoaWR4LCAnc291cmNlJywgJGV2ZW50KVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5lcXVpcG1lbnQnIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJldmVudC5lcXVpcG1lbnQ/Lm5hbWUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJhY2Nlc3NWYWx1ZS5lcU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlRXF1aXBtZW50KGlkeCwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQuZXF1aXBtZW50RW50aXR5JyB8IGkxOG4gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIFt2YWx1ZV09XCJldmVudC5lcXVpcG1lbnQ/LmVudGl0eSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkb25seT48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LnN0YXJ0RGF0ZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBbdmFsdWVdPVwiZXZlbnQuc3RhcnREYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImFjY2Vzc1ZhbHVlLnN0YXJ0RGF0ZVwiIChjaGFuZ2UpPVwibW9kaWZ5KGlkeCwgJ3N0YXJ0RGF0ZScsICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmVuZERhdGUnIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW3ZhbHVlXT1cImV2ZW50LmVuZERhdGUgfCBmb3JEYXRlVGltZUxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYWNjZXNzVmFsdWUuZW5kRGF0ZVwiIChjaGFuZ2UpPVwibW9kaWZ5KGlkeCwgJ2VuZERhdGUnLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5jcmVhdGlvbkRhdGUnIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZXZlbnQuY3JlYXRpb25EYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSB8IGZvckRhdGVUaW1lTG9jYWxcIiByZWFkb25seT5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmNsb3NlRGF0ZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBbdmFsdWVdPVwiZXZlbnQuY2xvc2VEYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fZXZlbnRzX19ldmVudF9fY29udGVudF9fY29tbWVudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5jb21tZW50cy5uYW1lJyB8IGkxOG4gfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgW3BsYWNlaG9sZGVyXT1cIignQGh2eS5ldmVudC5sb2cuZXZlbnQuY29tbWVudHMucGxhY2Vob2xkZXInIHwgaTE4bikgKyAnLi4uJ1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19ldmVudHNfX2V2ZW50X19jb250ZW50X19jb21tZW50c19fYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+e3sgJ0BodnkuYWN0aW9uLnNlbmQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZVwiPlxuICAgICAgICBAaWYgKHByb2NlZHVyZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2hlYWRlclwiPlxuICAgICAgICAgICAgPGgyPnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUubmFtZScgfCBpMThuIH19PC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHA+e3sgcHJvY2VkdXJlLm5hbWUgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxwPnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUucHJvZ3Jlc3MnIHwgaTE4biB9fTwvcD5cbiAgICAgICAgICAgIDxodnktcHJvZ3Jlc3MtZGlzcGxheSBbcHJvZ3Jlc3NdPVwicHJvY2VkdXJlLnByb2dyZXNzXCI+PC9odnktcHJvZ3Jlc3MtZGlzcGxheT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zXCI+XG4gICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgcHJvY2VkdXJlLmFjdGlvbnM7dHJhY2sgYWN0aW9uLmlkKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2l4X2RvdFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORSdcIj48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGFjdGlvbi5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJtb3JlX2hvcml6XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3sgJ0BodnkuZXZlbnQubG9nLnByb2NlZHVyZS5ub0FjdGlvbicgfCBpMThuIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICB7eyAnQGh2eS5ldmVudC5sb2cucHJvY2VkdXJlLmFkZEFjdGlvbicgfCBpMThuIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2V2ZW50L2RldGFpbC9ldmVudC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZXZlbnQvZGV0YWlsL2V2ZW50LWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx3QkFBd0I7SUFXaEUsSUFBYSxNQUFNLENBQUMsTUFBeUI7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBQUEsQ0FBQztJQUVGLElBQWEsU0FBUyxDQUFDLFNBQXVC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QUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxhQUFhO2dCQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFNBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRyxDQUFDOzhHQTFIVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix3UUNiakMseXBTQTRLQTs7MkZEL0phLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0I7cUZBU2xCLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVNLE1BQU07c0JBQWxCLEtBQUs7Z0JBTU8sU0FBUztzQkFBckIsS0FBSztnQkFLTyxtQkFBbUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHlwUHJvY2VkdXJlIH0gZnJvbSAnLi4vLi4vbW9kZWwvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwRXZlbnRDYXRlZ29yeSB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1jYXRlZ29yeS50eXBlJztcbmltcG9ydCB7IEh5cEV2ZW50Q3JpdGljYWxpdHkgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtY3JpdGljYWxpdHkudHlwZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgSHlwRXF1aXBtZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvaHlwLWVxdWlwbWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRXF1aXBtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3N0b3JlL2VxdWlwbWVudC9lcXVpcG1lbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1ldmVudC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnREZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBvcGVuZWQ6IGJvb2xlYW5bXSA9IFtdO1xuICBjYXRlZ29yaWVzID0gSHlwRXZlbnRDYXRlZ29yeTtcbiAgY3JpdGljYWxpdGllcyA9IEh5cEV2ZW50Q3JpdGljYWxpdHk7XG4gIF9ldmVudHM6IEh5cEV2ZW50RGV0YWlsc1tdID0gW107XG4gIGV2ZW50TW9kaWZpY2F0aW9uczogUGFydGlhbDxIeXBFdmVudERldGFpbHM+W10gPSBbXTtcbiAgQE91dHB1dCgpIG1vZGlmaWVkRXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjxbUGFydGlhbDxIeXBFdmVudERldGFpbHM+LCBIeXBFdmVudERldGFpbHNdW10+KCk7XG4gIF9wcm9jZWR1cmU/OiBIeXBQcm9jZWR1cmU7XG4gIHByb2NlZHVyZU1vZGlmaWNhdGlvbnM6IFBhcnRpYWw8SHlwUHJvY2VkdXJlPiA9IHt9O1xuICBAT3V0cHV0KCkgbW9kaWZpZWRQcm9jZWR1cmUgPSBuZXcgRXZlbnRFbWl0dGVyPFtQYXJ0aWFsPEh5cFByb2NlZHVyZT4sIEh5cFByb2NlZHVyZV0gfCB1bmRlZmluZWQ+KCk7XG5cbiAgQElucHV0KCkgc2V0IGV2ZW50cyhldmVudHM6IEh5cEV2ZW50RGV0YWlsc1tdKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gZXZlbnRzLmZpbHRlcihldiA9PiAhIWV2KTtcbiAgICB0aGlzLmV2ZW50TW9kaWZpY2F0aW9ucyA9IG5ldyBBcnJheSh0aGlzLl9ldmVudHMubGVuZ3RoKTtcbiAgICB0aGlzLm9wZW5lZCA9IGV2ZW50cy5sZW5ndGggPT09IDEgPyBbdHJ1ZV0gOiBbXTtcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgcHJvY2VkdXJlKHByb2NlZHVyZTogSHlwUHJvY2VkdXJlKSB7XG4gICAgdGhpcy5fcHJvY2VkdXJlID0gcHJvY2VkdXJlO1xuICAgIHRoaXMucHJvY2VkdXJlTW9kaWZpY2F0aW9ucyA9IHt9O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGNhbmNlbE1vZGlmaWNhdGlvbnMoZXZ0OiBhbnkpIHtcbiAgICB0aGlzLmV2ZW50TW9kaWZpY2F0aW9ucyA9IG5ldyBBcnJheSh0aGlzLl9ldmVudHMubGVuZ3RoKTtcbiAgICB0aGlzLnByb2NlZHVyZU1vZGlmaWNhdGlvbnMgPSB7fTtcbiAgICB0aGlzLl9vdXRwdXRNb2RpZmljYXRpb25zKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVxdWlwbWVudFNlcnZpY2U6IEVxdWlwbWVudFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IGV2ZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRzLm1hcCgoZXZ0LCBpZHgpID0+ICh7IC4uLmV2dCwgLi4uKHRoaXMuZXZlbnRNb2RpZmljYXRpb25zW2lkeF0gPz8ge30pIH0pKTtcbiAgfVxuXG4gIGdldCBwcm9jZWR1cmUoKTogSHlwUHJvY2VkdXJlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcHJvY2VkdXJlID8gKHsgLi4udGhpcy5fcHJvY2VkdXJlLCAuLi4odGhpcy5wcm9jZWR1cmVNb2RpZmljYXRpb25zID8/IHt9KSwgZXZlbnRzOiB0aGlzLmV2ZW50cyB9KSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRvZ2dsZShpOiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5lZFtpXSA9ICF0aGlzLm9wZW5lZFtpXTtcbiAgfVxuXG4gIG1vZGlmeUV2ZW50KGluZGV4OiBudW1iZXIsIHByb3A6IHN0cmluZywgJGV2ZW50OiBFdmVudCB8IHN0cmluZykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBuZXdWYWx1ZSA9ICRldmVudCBpbnN0YW5jZW9mIEV2ZW50ID8gJGV2ZW50LnRhcmdldD8udmFsdWUgOiAkZXZlbnQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh0aGlzLl9ldmVudHNbaW5kZXhdW3Byb3BdICE9PSBuZXdWYWx1ZSkge1xuXG4gICAgICBpZiAoIXRoaXMuZXZlbnRNb2RpZmljYXRpb25zW2luZGV4XSkge1xuICAgICAgICB0aGlzLmV2ZW50TW9kaWZpY2F0aW9uc1tpbmRleF0gPSB7fTtcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMuZXZlbnRNb2RpZmljYXRpb25zW2luZGV4XVtwcm9wXSA9IG5ld1ZhbHVlO1xuXG4gICAgICB0aGlzLl9vdXRwdXRNb2RpZmljYXRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgYWNjZXNzKGV2ZW50OiBIeXBFdmVudERldGFpbHMpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FMRVJUJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogdHJ1ZSxcbiAgICAgICAgICBjYXRlZ29yeTogdHJ1ZSxcbiAgICAgICAgICBjcml0aWNhbGl0eTogdHJ1ZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgICAgICAgICBhZGRyZXNzOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZTogdHJ1ZSxcbiAgICAgICAgICBlcU5hbWU6IHRydWUsXG4gICAgICAgICAgZXFFbnRpdHk6IHRydWUsXG4gICAgICAgICAgc3RhcnREYXRlOiB0cnVlLFxuICAgICAgICAgIGVuZERhdGU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdSRVBPUlQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGZhbHNlLFxuICAgICAgICAgIGNhdGVnb3J5OiB0cnVlLFxuICAgICAgICAgIGNyaXRpY2FsaXR5OiBmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgICAgICAgICBhZGRyZXNzOiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2U6IHRydWUsXG4gICAgICAgICAgZXFOYW1lOiBmYWxzZSxcbiAgICAgICAgICBlcUVudGl0eTogdHJ1ZSxcbiAgICAgICAgICBzdGFydERhdGU6IHRydWUsXG4gICAgICAgICAgZW5kRGF0ZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ09QRVJBVE9SJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBmYWxzZSxcbiAgICAgICAgICBjYXRlZ29yeTogZmFsc2UsXG4gICAgICAgICAgY3JpdGljYWxpdHk6IGZhbHNlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBmYWxzZSxcbiAgICAgICAgICBhZGRyZXNzOiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIGVxTmFtZTogZmFsc2UsXG4gICAgICAgICAgZXFFbnRpdHk6IGZhbHNlLFxuICAgICAgICAgIHN0YXJ0RGF0ZTogZmFsc2UsXG4gICAgICAgICAgZW5kRGF0ZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlRXF1aXBtZW50KGluZGV4OiBudW1iZXIsICRldmVudDogYW55KSB7XG4gICAgdGhpcy5lcXVpcG1lbnRTZXJ2aWNlLmZpbmRCeU5hbWUoJGV2ZW50LnRhcmdldC52YWx1ZSkuc3Vic2NyaWJlKChlcXVpcG1lbnQ6IEh5cEVxdWlwbWVudCkgPT4ge1xuICAgICAgaWYgKGVxdWlwbWVudCAmJiB0aGlzLl9ldmVudHNbaW5kZXhdLm5hbWUgIT09IGVxdWlwbWVudC5uYW1lKSB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50TW9kaWZpY2F0aW9uc1tpbmRleF0pIHtcbiAgICAgICAgICB0aGlzLmV2ZW50TW9kaWZpY2F0aW9uc1tpbmRleF0gPSB7fTtcbiAgICAgICAgfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuZXZlbnRNb2RpZmljYXRpb25zW2luZGV4XS5lcXVpcG1lbnQgPSBlcXVpcG1lbnQ7XG4gICAgICAgIHRoaXMuX291dHB1dE1vZGlmaWNhdGlvbnMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIF9vdXRwdXRNb2RpZmljYXRpb25zKCkge1xuICAgIHRoaXMubW9kaWZpZWRFdmVudHMubmV4dCh0aGlzLl9ldmVudHMubWFwKChldiwgaWR4KSA9PiBbdGhpcy5ldmVudE1vZGlmaWNhdGlvbnNbaWR4XSwgZXZdKSk7XG4gICAgdGhpcy5tb2RpZmllZFByb2NlZHVyZS5uZXh0KHRoaXMucHJvY2VkdXJlID8gW3RoaXMucHJvY2VkdXJlTW9kaWZpY2F0aW9ucywgdGhpcy5wcm9jZWR1cmUhXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsXCI+XG4gIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9faGVhZGVyX19zcGxpdFwiPlxuICAgICAgPGgxPnt7ICdAaHZ5LmV2ZW50LmxvZy5uYW1lJyB8IGkxOG4gfX08L2gxPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLWZpeC1yaWdodFwiPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5jbG9zZScgfCBpMThuIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX2hlYWRlcl9fc3BsaXRcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+e3sgJ0BodnkuZXZlbnQubG9nLnByb2NlZHVyZS5kZWxldGUnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX2NvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19jb250YWluZXJfX3Njcm9sbGFibGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19ldmVudHNcIj5cbiAgICAgICAgQGZvciAoZXZlbnQgb2YgZXZlbnRzO3RyYWNrIGV2ZW50LmlkO2xldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fZXZlbnRzX19ldmVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX2V2ZW50c19fZXZlbnRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICA8cHJ5LWljb24gW2ljb25TdmddPVwiIW9wZW5lZFtpZHhdID8gJ2NoZXZyb25fYm90dG9tJyA6ICdjaGV2cm9uX3RvcCdcIiAoY2xpY2spPVwidG9nZ2xlKGlkeClcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8aHZ5LWljb24tZGlzcGxheSBbZXZlbnRdPVwiZXZlbnRcIj48L2h2eS1pY29uLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDxoMj57eyBldmVudC5uYW1lIH19PC9oMj5cbiAgICAgICAgICAgICAgPGh2eS1zdGF0dXMtZGlzcGxheSBbZXZlbnRdPVwiZXZlbnRcIiBbbW9kaWZpYWJsZV09XCJ0cnVlXCI+PC9odnktc3RhdHVzLWRpc3BsYXk+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19ldmVudHNfX2V2ZW50X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgJ0BodnkuZXZlbnQubG9nLmV2ZW50LmRlc2NyaXB0aW9uJyB8IGkxOG4gfX06IHt7IGV2ZW50LmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXY+e3sgJ0BodnkuZXZlbnQubG9nLmV2ZW50LmFkZHJlc3MnIHwgaTE4biB9fToge3sgZXZlbnQuYWRkcmVzcyB9fTwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKG9wZW5lZFtpZHhdKSB7XG4gICAgICAgICAgICAgICAgQGlmIChhY2Nlc3MoZXZlbnQpO2FzIGFjY2Vzc1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICA8aDM+e3sgJ0BodnkuZXZlbnQubG9nLmV2ZW50LmRldGFpbCcgfCBpMThuIH19PC9oMz5cbiAgICAgICAgICAgICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5uYW1lJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIFt2YWx1ZV09XCJldmVudC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibW9kaWZ5RXZlbnQoaWR4LCAnbmFtZScsICRldmVudClcIiBbcmVhZG9ubHldPVwiYWNjZXNzVmFsdWUubmFtZVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQubG9nLmV2ZW50LmNhdGVnb3J5JyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktc2VsZWN0IFtuZ01vZGVsXT1cImV2ZW50LmNhdGVnb3J5XCIgW2l0ZW1zXT1cImNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibW9kaWZ5RXZlbnQoaWR4LCAnY2F0ZWdvcnknLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG5QcmVmaXg9XCJAaHZ5LmV2ZW50LmNhdGVnb3J5LlwiIFtkaXNhYmxlZF09XCJhY2Nlc3NWYWx1ZS5jYXRlZ29yeVwiPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmNyaXRpY2FsaXR5Lm5hbWUnIHwgaTE4biB9fTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3QgW25nTW9kZWxdPVwiZXZlbnQuY3JpdGljYWxpdHlcIiBbaXRlbXNdPVwiY3JpdGljYWxpdGllc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5ldmVudC5jcml0aWNhbGl0eS5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjY2Vzc1ZhbHVlLmNyaXRpY2FsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGlmeUV2ZW50KGlkeCwgJ2NyaXRpY2FsaXR5JywgJGV2ZW50KVwiPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5kZXNjcmlwdGlvbicgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHRleHRhcmVhIFtuZ01vZGVsXT1cImV2ZW50LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImFjY2Vzc1ZhbHVlLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGlmeUV2ZW50KGlkeCwgJ2Rlc2NyaXB0aW9uJywgJGV2ZW50KVwiPjwvdGV4dGFyZWE+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sb2cuZXZlbnQuYWRkcmVzcycgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHRleHRhcmVhIFtuZ01vZGVsXT1cImV2ZW50LmFkZHJlc3NcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYWNjZXNzVmFsdWUuYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJtb2RpZnlFdmVudChpZHgsICdhZGRyZXNzJywgJGV2ZW50KVwiPjwvdGV4dGFyZWE+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKFsnQUxFUlQnLCAnUkVQT1JUJ10uaW5jbHVkZXMoZXZlbnQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LnNvdXJjZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW3ZhbHVlXT1cImV2ZW50LmV4dGVybmFsU291cmNlUmVmID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYWNjZXNzVmFsdWUuc291cmNlXCIgKGNoYW5nZSk9XCJtb2RpZnlFdmVudChpZHgsICdzb3VyY2UnLCAkZXZlbnQpXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmVxdWlwbWVudCcgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImV2ZW50LmVxdWlwbWVudD8ubmFtZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImFjY2Vzc1ZhbHVlLmVxTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VFcXVpcG1lbnQoaWR4LCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5lcXVpcG1lbnRFbnRpdHknIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgW3ZhbHVlXT1cImV2ZW50LmVxdWlwbWVudD8uZW50aXR5ID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5PjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BodnkuZXZlbnQuc3RhcnREYXRlJyB8IGkxOG4gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIFt2YWx1ZV09XCJldmVudC5zdGFydERhdGUgfCBmb3JEYXRlVGltZUxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYWNjZXNzVmFsdWUuc3RhcnREYXRlXCIgKGNoYW5nZSk9XCJtb2RpZnlFdmVudChpZHgsICdzdGFydERhdGUnLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5lbmREYXRlJyB8IGkxOG4gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIFt2YWx1ZV09XCJldmVudC5lbmREYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImFjY2Vzc1ZhbHVlLmVuZERhdGVcIiAoY2hhbmdlKT1cIm1vZGlmeUV2ZW50KGlkeCwgJ2VuZERhdGUnLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5jcmVhdGlvbkRhdGUnIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZXZlbnQuY3JlYXRpb25EYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyAnQGh2eS5ldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJldmVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSB8IGZvckRhdGVUaW1lTG9jYWxcIiByZWFkb25seT5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAaHZ5LmV2ZW50LmNsb3NlRGF0ZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBbdmFsdWVdPVwiZXZlbnQuY2xvc2VEYXRlIHwgZm9yRGF0ZVRpbWVMb2NhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fZXZlbnRzX19ldmVudF9fY29udGVudF9fY29tbWVudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt7ICdAaHZ5LmV2ZW50LmxvZy5ldmVudC5jb21tZW50cy5uYW1lJyB8IGkxOG4gfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgW3BsYWNlaG9sZGVyXT1cIignQGh2eS5ldmVudC5sb2cuZXZlbnQuY29tbWVudHMucGxhY2Vob2xkZXInIHwgaTE4bikgKyAnLi4uJ1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19ldmVudHNfX2V2ZW50X19jb250ZW50X19jb21tZW50c19fYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+e3sgJ0BodnkuYWN0aW9uLnNlbmQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZVwiPlxuICAgICAgICBAaWYgKHByb2NlZHVyZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2hlYWRlclwiPlxuICAgICAgICAgICAgPGgyPnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUubmFtZScgfCBpMThuIH19PC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHA+e3sgcHJvY2VkdXJlLm5hbWUgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxwPnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUucHJvZ3Jlc3MnIHwgaTE4biB9fTwvcD5cbiAgICAgICAgICAgIDxodnktcHJvZ3Jlc3MtZGlzcGxheSBbcHJvZ3Jlc3NdPVwicHJvY2VkdXJlLnByb2dyZXNzXCI+PC9odnktcHJvZ3Jlc3MtZGlzcGxheT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zXCI+XG4gICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgcHJvY2VkdXJlLmFjdGlvbnM7dHJhY2sgYWN0aW9uLmlkKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2l4X2RvdFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORSdcIj48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGFjdGlvbi5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJtb3JlX2hvcml6XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3sgJ0BodnkuZXZlbnQubG9nLnByb2NlZHVyZS5ub0FjdGlvbicgfCBpMThuIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICB7eyAnQGh2eS5ldmVudC5sb2cucHJvY2VkdXJlLmFkZEFjdGlvbicgfCBpMThuIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -48,7 +48,7 @@ export const enTranslations = {
48
48
  category: {
49
49
  ALERT: 'Dysfunction alert',
50
50
  REPORT: 'GRC report',
51
- OPERATOR: 'Operator event',
51
+ OPERATOR_EVENT: 'Operator event',
52
52
  ALERT_LIMIT: 'Limit alert',
53
53
  MANIFESTATION: 'Manifestation',
54
54
  },
@@ -78,4 +78,4 @@ export const enTranslations = {
78
78
  },
79
79
  },
80
80
  };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9pMThuL2VuLnRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLGFBQWE7WUFDMUIsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2dCQUNkLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixRQUFRLEVBQUUsVUFBVTthQUNyQjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxHQUFHLEVBQUUsTUFBTTtnQkFDWCxXQUFXLEVBQUUsYUFBYTtnQkFDMUIsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNELE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsU0FBUyxFQUFFLHFCQUFxQjtZQUNoQyxlQUFlLEVBQUUsa0JBQWtCO1lBQ25DLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLFlBQVksRUFBRSxlQUFlO1lBQzdCLG9CQUFvQixFQUFFLG1CQUFtQjtZQUN6QyxTQUFTLEVBQUUsWUFBWTtZQUN2QixHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRTtvQkFDTCxXQUFXLEVBQUUsYUFBYTtvQkFDMUIsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixJQUFJLEVBQUUsTUFBTTtvQkFDWixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7cUJBQ2xDO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUUsa0JBQWtCO29CQUMxQixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFNBQVMsRUFBRSxZQUFZO2lCQUN4QjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixXQUFXLEVBQUUsYUFBYTtnQkFDMUIsYUFBYSxFQUFFLGVBQWU7YUFDL0I7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLFNBQVMsRUFBRSxpQ0FBaUM7WUFDNUMsWUFBWSxFQUFFO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixJQUFJLEVBQUUsTUFBTTthQUNiO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLEdBQUcsRUFBRSxLQUFLO2dCQUNWLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixJQUFJLEVBQUUsTUFBTTtnQkFDWixHQUFHLEVBQUUsS0FBSzthQUNYO1NBQ0Y7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUUsc0JBQXNCO1NBQ2pDO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNiO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuVHJhbnNsYXRpb25zID0ge1xuICAnQGh2eSc6IHtcbiAgICBldmVudDoge1xuICAgICAgY3JpdGljYWxpdHk6ICdDcml0aWNhbGl0eScsXG4gICAgICBuYW1lOiAnRXZlbnQnLFxuICAgICAgdHlwZToge1xuICAgICAgICBuYW1lOiAnRXZlbnQgdHlwZScsXG4gICAgICAgIEFMRVJUOiAnQWxlcnQnLFxuICAgICAgICBSRVBPUlQ6ICdSZXBvcnQnLFxuICAgICAgICBPUEVSQVRPUjogJ09wZXJhdG9yJyxcbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgbmFtZTogJ1N0YXR1cycsXG4gICAgICAgIE5FVzogJ09wZW4nLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0luIHByb2dyZXNzJyxcbiAgICAgICAgRE9ORTogJ0RvbmUnLFxuICAgICAgfSxcbiAgICAgIGFkZHJlc3M6ICdBZGRyZXNzJyxcbiAgICAgIHNvdXJjZTogJ0V4dGVybmFsIHJlZmVyZW5jZScsXG4gICAgICBlcXVpcG1lbnQ6ICdFcXVpcG1lbnQgcmVmZXJlbmNlJyxcbiAgICAgIGVxdWlwbWVudEVudGl0eTogJ0VxdWlwbWVudCBlbnRpdHknLFxuICAgICAgc3RhcnREYXRlOiAnU3RhcnQgZGF0ZScsXG4gICAgICBlbmREYXRlOiAnRW5kIGRhdGUnLFxuICAgICAgY3JlYXRpb25EYXRlOiAnQ3JlYXRpb24gZGF0ZScsXG4gICAgICBsYXN0TW9kaWZpY2F0aW9uRGF0ZTogJ01vZGlmaWNhdGlvbiBkYXRlJyxcbiAgICAgIGNsb3NlRGF0ZTogJ0Nsb3NlIGRhdGUnLFxuICAgICAgbG9nOiB7XG4gICAgICAgIG5hbWU6ICdFdmVudHMgbG9nJyxcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICBhZGRyZXNzOiAnQWRkcmVzcycsXG4gICAgICAgICAgZGV0YWlsOiAnSW5mb3JtYXRpb24nLFxuICAgICAgICAgIG5hbWU6ICdOYW1lJyxcbiAgICAgICAgICBjYXRlZ29yeTogJ0NhdGVnb3J5JyxcbiAgICAgICAgICBjb21tZW50czoge1xuICAgICAgICAgICAgbmFtZTogJ0V2ZW50IGNvbW1lbnRzJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnV3JpdGUgeW91ciBjb21tZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcm9jZWR1cmU6IHtcbiAgICAgICAgICBkZWxldGU6ICdEZWxldGUgcHJvY2VkdXJlJyxcbiAgICAgICAgICBwcm9ncmVzczogJ1Byb2dyZXNzJyxcbiAgICAgICAgICBub0FjdGlvbjogJ05vIGFjdGlvbnMnLFxuICAgICAgICAgIG5hbWU6ICdDb21tb24gcHJvY2VkdXJlJyxcbiAgICAgICAgICBhZGRBY3Rpb246ICdBZGQgYWN0aW9uJ1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgIEFMRVJUOiAnRHlzZnVuY3Rpb24gYWxlcnQnLFxuICAgICAgICBSRVBPUlQ6ICdHUkMgcmVwb3J0JyxcbiAgICAgICAgT1BFUkFUT1I6ICdPcGVyYXRvciBldmVudCcsXG4gICAgICAgIEFMRVJUX0xJTUlUOiAnTGltaXQgYWxlcnQnLFxuICAgICAgICBNQU5JRkVTVEFUSU9OOiAnTWFuaWZlc3RhdGlvbicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZXZlbnRTdW1tYXJ5OiB7XG4gICAgICBub0NvbnRlbnQ6ICdObyBldmVudCB3aXRoIGdpdmVuIGNyaXRpY2FsaXR5JyxcbiAgICAgIHN0YXR1c0xhYmVsczoge1xuICAgICAgICBORVc6ICdPcGVuJyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdJbiBwcm9ncmVzcycsXG4gICAgICAgIERPTkU6ICdEb25lJyxcbiAgICAgIH0sXG4gICAgICBjcml0aWNhbGl0eUxhYmVsczoge1xuICAgICAgICBMT1c6ICdMb3cnLFxuICAgICAgICBNRURJVU06ICdNZWRpdW0nLFxuICAgICAgICBISUdIOiAnSGlnaCcsXG4gICAgICAgIEFMTDogJ0FsbCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcHJvY2VkdXJlOiB7XG4gICAgICBuYW1lOiAnUHJvY2VkdXJlJyxcbiAgICAgIHByb2dyZXNzOiAnUHJvY2VkdXJlIHByb2dyZXNzICUnLFxuICAgIH0sXG4gICAgYWN0aW9uOiB7XG4gICAgICBjb25zdWx0OiAnQ29uc3VsdCcsXG4gICAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICAgIHNlbmQ6ICdTZW5kJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9pMThuL2VuLnRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLGFBQWE7WUFDMUIsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2dCQUNkLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixRQUFRLEVBQUUsVUFBVTthQUNyQjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsUUFBUTtnQkFDZCxHQUFHLEVBQUUsTUFBTTtnQkFDWCxXQUFXLEVBQUUsYUFBYTtnQkFDMUIsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNELE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxvQkFBb0I7WUFDNUIsU0FBUyxFQUFFLHFCQUFxQjtZQUNoQyxlQUFlLEVBQUUsa0JBQWtCO1lBQ25DLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLFlBQVksRUFBRSxlQUFlO1lBQzdCLG9CQUFvQixFQUFFLG1CQUFtQjtZQUN6QyxTQUFTLEVBQUUsWUFBWTtZQUN2QixHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRTtvQkFDTCxXQUFXLEVBQUUsYUFBYTtvQkFDMUIsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLE1BQU0sRUFBRSxhQUFhO29CQUNyQixJQUFJLEVBQUUsTUFBTTtvQkFDWixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7cUJBQ2xDO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUUsa0JBQWtCO29CQUMxQixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLFNBQVMsRUFBRSxZQUFZO2lCQUN4QjthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixjQUFjLEVBQUUsZ0JBQWdCO2dCQUNoQyxXQUFXLEVBQUUsYUFBYTtnQkFDMUIsYUFBYSxFQUFFLGVBQWU7YUFDL0I7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLFNBQVMsRUFBRSxpQ0FBaUM7WUFDNUMsWUFBWSxFQUFFO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixJQUFJLEVBQUUsTUFBTTthQUNiO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLEdBQUcsRUFBRSxLQUFLO2dCQUNWLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixJQUFJLEVBQUUsTUFBTTtnQkFDWixHQUFHLEVBQUUsS0FBSzthQUNYO1NBQ0Y7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUUsc0JBQXNCO1NBQ2pDO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNiO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuVHJhbnNsYXRpb25zID0ge1xuICAnQGh2eSc6IHtcbiAgICBldmVudDoge1xuICAgICAgY3JpdGljYWxpdHk6ICdDcml0aWNhbGl0eScsXG4gICAgICBuYW1lOiAnRXZlbnQnLFxuICAgICAgdHlwZToge1xuICAgICAgICBuYW1lOiAnRXZlbnQgdHlwZScsXG4gICAgICAgIEFMRVJUOiAnQWxlcnQnLFxuICAgICAgICBSRVBPUlQ6ICdSZXBvcnQnLFxuICAgICAgICBPUEVSQVRPUjogJ09wZXJhdG9yJyxcbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgbmFtZTogJ1N0YXR1cycsXG4gICAgICAgIE5FVzogJ09wZW4nLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0luIHByb2dyZXNzJyxcbiAgICAgICAgRE9ORTogJ0RvbmUnLFxuICAgICAgfSxcbiAgICAgIGFkZHJlc3M6ICdBZGRyZXNzJyxcbiAgICAgIHNvdXJjZTogJ0V4dGVybmFsIHJlZmVyZW5jZScsXG4gICAgICBlcXVpcG1lbnQ6ICdFcXVpcG1lbnQgcmVmZXJlbmNlJyxcbiAgICAgIGVxdWlwbWVudEVudGl0eTogJ0VxdWlwbWVudCBlbnRpdHknLFxuICAgICAgc3RhcnREYXRlOiAnU3RhcnQgZGF0ZScsXG4gICAgICBlbmREYXRlOiAnRW5kIGRhdGUnLFxuICAgICAgY3JlYXRpb25EYXRlOiAnQ3JlYXRpb24gZGF0ZScsXG4gICAgICBsYXN0TW9kaWZpY2F0aW9uRGF0ZTogJ01vZGlmaWNhdGlvbiBkYXRlJyxcbiAgICAgIGNsb3NlRGF0ZTogJ0Nsb3NlIGRhdGUnLFxuICAgICAgbG9nOiB7XG4gICAgICAgIG5hbWU6ICdFdmVudHMgbG9nJyxcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICBhZGRyZXNzOiAnQWRkcmVzcycsXG4gICAgICAgICAgZGV0YWlsOiAnSW5mb3JtYXRpb24nLFxuICAgICAgICAgIG5hbWU6ICdOYW1lJyxcbiAgICAgICAgICBjYXRlZ29yeTogJ0NhdGVnb3J5JyxcbiAgICAgICAgICBjb21tZW50czoge1xuICAgICAgICAgICAgbmFtZTogJ0V2ZW50IGNvbW1lbnRzJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnV3JpdGUgeW91ciBjb21tZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcm9jZWR1cmU6IHtcbiAgICAgICAgICBkZWxldGU6ICdEZWxldGUgcHJvY2VkdXJlJyxcbiAgICAgICAgICBwcm9ncmVzczogJ1Byb2dyZXNzJyxcbiAgICAgICAgICBub0FjdGlvbjogJ05vIGFjdGlvbnMnLFxuICAgICAgICAgIG5hbWU6ICdDb21tb24gcHJvY2VkdXJlJyxcbiAgICAgICAgICBhZGRBY3Rpb246ICdBZGQgYWN0aW9uJ1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgIEFMRVJUOiAnRHlzZnVuY3Rpb24gYWxlcnQnLFxuICAgICAgICBSRVBPUlQ6ICdHUkMgcmVwb3J0JyxcbiAgICAgICAgT1BFUkFUT1JfRVZFTlQ6ICdPcGVyYXRvciBldmVudCcsXG4gICAgICAgIEFMRVJUX0xJTUlUOiAnTGltaXQgYWxlcnQnLFxuICAgICAgICBNQU5JRkVTVEFUSU9OOiAnTWFuaWZlc3RhdGlvbicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZXZlbnRTdW1tYXJ5OiB7XG4gICAgICBub0NvbnRlbnQ6ICdObyBldmVudCB3aXRoIGdpdmVuIGNyaXRpY2FsaXR5JyxcbiAgICAgIHN0YXR1c0xhYmVsczoge1xuICAgICAgICBORVc6ICdPcGVuJyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdJbiBwcm9ncmVzcycsXG4gICAgICAgIERPTkU6ICdEb25lJyxcbiAgICAgIH0sXG4gICAgICBjcml0aWNhbGl0eUxhYmVsczoge1xuICAgICAgICBMT1c6ICdMb3cnLFxuICAgICAgICBNRURJVU06ICdNZWRpdW0nLFxuICAgICAgICBISUdIOiAnSGlnaCcsXG4gICAgICAgIEFMTDogJ0FsbCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcHJvY2VkdXJlOiB7XG4gICAgICBuYW1lOiAnUHJvY2VkdXJlJyxcbiAgICAgIHByb2dyZXNzOiAnUHJvY2VkdXJlIHByb2dyZXNzICUnLFxuICAgIH0sXG4gICAgYWN0aW9uOiB7XG4gICAgICBjb25zdWx0OiAnQ29uc3VsdCcsXG4gICAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICAgIHNlbmQ6ICdTZW5kJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -49,7 +49,7 @@ export const frTranslations = {
49
49
  name: "Catégorie d'évènement",
50
50
  ALERT_MALFUNCTION: 'Alerte Dysfonctionnement',
51
51
  REPORT: 'Signalement GRC',
52
- OPERATOR: 'Evènement Opérateur',
52
+ OPERATOR_EVENT: 'Evènement Opérateur',
53
53
  ALERT_LIMIT: 'Alerte Seuil',
54
54
  MANIFESTATION: 'Manifestation',
55
55
  },
@@ -85,4 +85,4 @@ export const frTranslations = {
85
85
  },
86
86
  },
87
87
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9pMThuL2ZyLnRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixRQUFRLEVBQUUsV0FBVzthQUN0QjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixHQUFHLEVBQUUsU0FBUztnQkFDZCxXQUFXLEVBQUUsVUFBVTtnQkFDdkIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRCxPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsbUJBQW1CO1lBQzNCLFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsZUFBZSxFQUFFLHlCQUF5QjtZQUMxQyxTQUFTLEVBQUUsZUFBZTtZQUMxQixPQUFPLEVBQUUsYUFBYTtZQUN0QixZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLG9CQUFvQixFQUFFLDhCQUE4QjtZQUNwRCxTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixLQUFLLEVBQUU7b0JBQ0wsV0FBVyxFQUFFLGFBQWE7b0JBQzFCLE9BQU8sRUFBRSxTQUFTO29CQUNsQixNQUFNLEVBQUUsY0FBYztvQkFDdEIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLEtBQUssRUFBRSw4QkFBOEI7b0JBQ3JDLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsOEJBQThCO3dCQUNwQyxXQUFXLEVBQUUsMkJBQTJCO3FCQUN6QztpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLHdCQUF3QjtvQkFDaEMsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixTQUFTLEVBQUUsb0JBQW9CO2lCQUNoQzthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLGlCQUFpQixFQUFFLDBCQUEwQjtnQkFDN0MsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLGFBQWEsRUFBRSxlQUFlO2FBQy9CO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxXQUFXO2dCQUNqQixHQUFHLEVBQUUsS0FBSztnQkFDVixNQUFNLEVBQUUsT0FBTztnQkFDZixJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixTQUFTLEVBQUUsMENBQTBDO1lBQ3JELFlBQVksRUFBRTtnQkFDWixHQUFHLEVBQUUsVUFBVTtnQkFDZixXQUFXLEVBQUUsVUFBVTtnQkFDdkIsSUFBSSxFQUFFLFVBQVU7YUFDakI7WUFDRCxpQkFBaUIsRUFBRTtnQkFDakIsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLE1BQU07YUFDWjtTQUNGO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFLHdCQUF3QjtTQUNuQztRQUNELE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZyVHJhbnNsYXRpb25zID0ge1xuICAnQGh2eSc6IHtcbiAgICBldmVudDoge1xuICAgICAgbmFtZTogJ8OJdsOobmVtZW50JyxcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgbmFtZTogJ1R5cGUgZFxcJ8OpdsOobmVtZW50JyxcbiAgICAgICAgQUxFUlQ6ICdBbGVydGUnLFxuICAgICAgICBSRVBPUlQ6ICdTaWduYWxlbWVudCcsXG4gICAgICAgIE9QRVJBVE9SOiAnT3DDqXJhdGV1cicsXG4gICAgICB9LFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIG5hbWU6ICdTdGF0dXQgw6l2w6huZW1lbnQnLFxuICAgICAgICBORVc6ICdOb3V2ZWF1JyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdFbiBjb3VycycsXG4gICAgICAgIERPTkU6ICdDbMO0dHVyw6knLFxuICAgICAgfSxcbiAgICAgIGFkZHJlc3M6ICdBZHJlc3NlJyxcbiAgICAgIHNvdXJjZTogJ1LDqWbDqXJlbmNlIGV4dGVybmUnLFxuICAgICAgZXF1aXBtZW50OiAnUsOpZsOpcmVuY2UgbWF0w6lyaWVsJyxcbiAgICAgIGVxdWlwbWVudEVudGl0eTogJ0VudGl0w6kgZGUgbFxcJ8OpcXVpcGVtZW50JyxcbiAgICAgIHN0YXJ0RGF0ZTogJ0RhdGUgZGUgZMOpYnV0JyxcbiAgICAgIGVuZERhdGU6ICdEYXRlIGRlIGZpbicsXG4gICAgICBjcmVhdGlvbkRhdGU6ICdEYXRlIGRlIGNyw6lhdGlvbicsXG4gICAgICBsYXN0TW9kaWZpY2F0aW9uRGF0ZTogJ0RhdGUgZGVybmnDqHJlcyBtb2RpZmljYXRpb25zJyxcbiAgICAgIGNsb3NlRGF0ZTogJ0RhdGUgZGUgY2xvdMO7cmUnLFxuICAgICAgbG9nOiB7XG4gICAgICAgIG5hbWU6ICdKb3VybmFsIGRlcyDDqXbDqG5lbWVudHMnLFxuICAgICAgICBldmVudDoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgICAgIGFkZHJlc3M6ICdBZHJlc3NlJyxcbiAgICAgICAgICBkZXRhaWw6ICdJbmZvcm1hdGlvbnMnLFxuICAgICAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgICAgIGNhdGVnb3J5OiAnQ2F0w6lnb3JpZScsXG4gICAgICAgICAgY2xvc2U6ICdDbMO0dHVyZXIgdG91cyBjZXMgw6l2w6huZW1lbnRzJyxcbiAgICAgICAgICBjb21tZW50czoge1xuICAgICAgICAgICAgbmFtZTogJ0NvbW1lbnRhaXJlcyBkZSBsXFwnw6l2w6huZW1lbnQnLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICfDiWNyaXZleiB2b3RyZSBjb21tZW50YWlyZSdcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByb2NlZHVyZToge1xuICAgICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lciBsYSBwcm9jw6lkdXJlJyxcbiAgICAgICAgICBwcm9ncmVzczogJ1Byb2dyZXNzaW9uJyxcbiAgICAgICAgICBub0FjdGlvbjogJ1BhcyBkXFwnYWN0aW9uJyxcbiAgICAgICAgICBuYW1lOiAnUHJvY8OpZHVyZSBjb21tdW5lJyxcbiAgICAgICAgICBhZGRBY3Rpb246ICdBam91dGVyIHVuZSBhY3Rpb24nXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgbmFtZTogXCJDYXTDqWdvcmllIGQnw6l2w6huZW1lbnRcIixcbiAgICAgICAgQUxFUlRfTUFMRlVOQ1RJT046ICdBbGVydGUgRHlzZm9uY3Rpb25uZW1lbnQnLFxuICAgICAgICBSRVBPUlQ6ICdTaWduYWxlbWVudCBHUkMnLFxuICAgICAgICBPUEVSQVRPUjogJ0V2w6huZW1lbnQgT3DDqXJhdGV1cicsXG4gICAgICAgIEFMRVJUX0xJTUlUOiAnQWxlcnRlIFNldWlsJyxcbiAgICAgICAgTUFOSUZFU1RBVElPTjogJ01hbmlmZXN0YXRpb24nLFxuICAgICAgfSxcbiAgICAgIGNyaXRpY2FsaXR5OiB7XG4gICAgICAgIG5hbWU6ICdDcml0aWNpdMOpJyxcbiAgICAgICAgTE9XOiAnQmFzJyxcbiAgICAgICAgTUVESVVNOiAnTW95ZW4nLFxuICAgICAgICBISUdIOiAnSGF1dCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZXZlbnRTdW1tYXJ5OiB7XG4gICAgICBub0NvbnRlbnQ6ICdBdWN1biDDqXbDqG5lbWVudCBhdmVjIGxhIGNyaXRpY2l0w6kgZG9ubsOpZScsXG4gICAgICBzdGF0dXNMYWJlbHM6IHtcbiAgICAgICAgTkVXOiAnTm91dmVhdXgnLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0VuIGNvdXJzJyxcbiAgICAgICAgRE9ORTogJ0Nsw7R0dXLDqXMnLFxuICAgICAgfSxcbiAgICAgIGNyaXRpY2FsaXR5TGFiZWxzOiB7XG4gICAgICAgIExPVzogJ0JhcycsXG4gICAgICAgIE1FRElVTTogJ01veWVuJyxcbiAgICAgICAgSElHSDogJ0hhdXQnLFxuICAgICAgICBBTEw6ICdUb3VzJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBwcm9jZWR1cmU6IHtcbiAgICAgIG5hbWU6ICdQcm9jw6lkdXJlJyxcbiAgICAgIHByb2dyZXNzOiAnJSBhdmFuY2VtZW50IHByb2PDqWR1cmUnXG4gICAgfSxcbiAgICBhY3Rpb246IHtcbiAgICAgIGNvbnN1bHQ6ICdDb25zdWx0ZXInLFxuICAgICAgY2xvc2U6ICdDbG90w7tyZXInLFxuICAgICAgc2VuZDogJ0Vudm95ZXInXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9pMThuL2ZyLnRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsTUFBTSxFQUFFO1FBQ04sS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixRQUFRLEVBQUUsV0FBVzthQUN0QjtZQUNELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixHQUFHLEVBQUUsU0FBUztnQkFDZCxXQUFXLEVBQUUsVUFBVTtnQkFDdkIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRCxPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsbUJBQW1CO1lBQzNCLFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsZUFBZSxFQUFFLHlCQUF5QjtZQUMxQyxTQUFTLEVBQUUsZUFBZTtZQUMxQixPQUFPLEVBQUUsYUFBYTtZQUN0QixZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLG9CQUFvQixFQUFFLDhCQUE4QjtZQUNwRCxTQUFTLEVBQUUsaUJBQWlCO1lBQzVCLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixLQUFLLEVBQUU7b0JBQ0wsV0FBVyxFQUFFLGFBQWE7b0JBQzFCLE9BQU8sRUFBRSxTQUFTO29CQUNsQixNQUFNLEVBQUUsY0FBYztvQkFDdEIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLEtBQUssRUFBRSw4QkFBOEI7b0JBQ3JDLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsOEJBQThCO3dCQUNwQyxXQUFXLEVBQUUsMkJBQTJCO3FCQUN6QztpQkFDRjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLHdCQUF3QjtvQkFDaEMsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixTQUFTLEVBQUUsb0JBQW9CO2lCQUNoQzthQUNGO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLGlCQUFpQixFQUFFLDBCQUEwQjtnQkFDN0MsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsY0FBYyxFQUFFLHFCQUFxQjtnQkFDckMsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLGFBQWEsRUFBRSxlQUFlO2FBQy9CO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxXQUFXO2dCQUNqQixHQUFHLEVBQUUsS0FBSztnQkFDVixNQUFNLEVBQUUsT0FBTztnQkFDZixJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixTQUFTLEVBQUUsMENBQTBDO1lBQ3JELFlBQVksRUFBRTtnQkFDWixHQUFHLEVBQUUsVUFBVTtnQkFDZixXQUFXLEVBQUUsVUFBVTtnQkFDdkIsSUFBSSxFQUFFLFVBQVU7YUFDakI7WUFDRCxpQkFBaUIsRUFBRTtnQkFDakIsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLE1BQU07YUFDWjtTQUNGO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFLHdCQUF3QjtTQUNuQztRQUNELE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZyVHJhbnNsYXRpb25zID0ge1xuICAnQGh2eSc6IHtcbiAgICBldmVudDoge1xuICAgICAgbmFtZTogJ8OJdsOobmVtZW50JyxcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgbmFtZTogJ1R5cGUgZFxcJ8OpdsOobmVtZW50JyxcbiAgICAgICAgQUxFUlQ6ICdBbGVydGUnLFxuICAgICAgICBSRVBPUlQ6ICdTaWduYWxlbWVudCcsXG4gICAgICAgIE9QRVJBVE9SOiAnT3DDqXJhdGV1cicsXG4gICAgICB9LFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIG5hbWU6ICdTdGF0dXQgw6l2w6huZW1lbnQnLFxuICAgICAgICBORVc6ICdOb3V2ZWF1JyxcbiAgICAgICAgSU5fUFJPR1JFU1M6ICdFbiBjb3VycycsXG4gICAgICAgIERPTkU6ICdDbMO0dHVyw6knLFxuICAgICAgfSxcbiAgICAgIGFkZHJlc3M6ICdBZHJlc3NlJyxcbiAgICAgIHNvdXJjZTogJ1LDqWbDqXJlbmNlIGV4dGVybmUnLFxuICAgICAgZXF1aXBtZW50OiAnUsOpZsOpcmVuY2UgbWF0w6lyaWVsJyxcbiAgICAgIGVxdWlwbWVudEVudGl0eTogJ0VudGl0w6kgZGUgbFxcJ8OpcXVpcGVtZW50JyxcbiAgICAgIHN0YXJ0RGF0ZTogJ0RhdGUgZGUgZMOpYnV0JyxcbiAgICAgIGVuZERhdGU6ICdEYXRlIGRlIGZpbicsXG4gICAgICBjcmVhdGlvbkRhdGU6ICdEYXRlIGRlIGNyw6lhdGlvbicsXG4gICAgICBsYXN0TW9kaWZpY2F0aW9uRGF0ZTogJ0RhdGUgZGVybmnDqHJlcyBtb2RpZmljYXRpb25zJyxcbiAgICAgIGNsb3NlRGF0ZTogJ0RhdGUgZGUgY2xvdMO7cmUnLFxuICAgICAgbG9nOiB7XG4gICAgICAgIG5hbWU6ICdKb3VybmFsIGRlcyDDqXbDqG5lbWVudHMnLFxuICAgICAgICBldmVudDoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgICAgIGFkZHJlc3M6ICdBZHJlc3NlJyxcbiAgICAgICAgICBkZXRhaWw6ICdJbmZvcm1hdGlvbnMnLFxuICAgICAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgICAgIGNhdGVnb3J5OiAnQ2F0w6lnb3JpZScsXG4gICAgICAgICAgY2xvc2U6ICdDbMO0dHVyZXIgdG91cyBjZXMgw6l2w6huZW1lbnRzJyxcbiAgICAgICAgICBjb21tZW50czoge1xuICAgICAgICAgICAgbmFtZTogJ0NvbW1lbnRhaXJlcyBkZSBsXFwnw6l2w6huZW1lbnQnLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICfDiWNyaXZleiB2b3RyZSBjb21tZW50YWlyZSdcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByb2NlZHVyZToge1xuICAgICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lciBsYSBwcm9jw6lkdXJlJyxcbiAgICAgICAgICBwcm9ncmVzczogJ1Byb2dyZXNzaW9uJyxcbiAgICAgICAgICBub0FjdGlvbjogJ1BhcyBkXFwnYWN0aW9uJyxcbiAgICAgICAgICBuYW1lOiAnUHJvY8OpZHVyZSBjb21tdW5lJyxcbiAgICAgICAgICBhZGRBY3Rpb246ICdBam91dGVyIHVuZSBhY3Rpb24nXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgbmFtZTogXCJDYXTDqWdvcmllIGQnw6l2w6huZW1lbnRcIixcbiAgICAgICAgQUxFUlRfTUFMRlVOQ1RJT046ICdBbGVydGUgRHlzZm9uY3Rpb25uZW1lbnQnLFxuICAgICAgICBSRVBPUlQ6ICdTaWduYWxlbWVudCBHUkMnLFxuICAgICAgICBPUEVSQVRPUl9FVkVOVDogJ0V2w6huZW1lbnQgT3DDqXJhdGV1cicsXG4gICAgICAgIEFMRVJUX0xJTUlUOiAnQWxlcnRlIFNldWlsJyxcbiAgICAgICAgTUFOSUZFU1RBVElPTjogJ01hbmlmZXN0YXRpb24nLFxuICAgICAgfSxcbiAgICAgIGNyaXRpY2FsaXR5OiB7XG4gICAgICAgIG5hbWU6ICdDcml0aWNpdMOpJyxcbiAgICAgICAgTE9XOiAnQmFzJyxcbiAgICAgICAgTUVESVVNOiAnTW95ZW4nLFxuICAgICAgICBISUdIOiAnSGF1dCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZXZlbnRTdW1tYXJ5OiB7XG4gICAgICBub0NvbnRlbnQ6ICdBdWN1biDDqXbDqG5lbWVudCBhdmVjIGxhIGNyaXRpY2l0w6kgZG9ubsOpZScsXG4gICAgICBzdGF0dXNMYWJlbHM6IHtcbiAgICAgICAgTkVXOiAnTm91dmVhdXgnLFxuICAgICAgICBJTl9QUk9HUkVTUzogJ0VuIGNvdXJzJyxcbiAgICAgICAgRE9ORTogJ0Nsw7R0dXLDqXMnLFxuICAgICAgfSxcbiAgICAgIGNyaXRpY2FsaXR5TGFiZWxzOiB7XG4gICAgICAgIExPVzogJ0JhcycsXG4gICAgICAgIE1FRElVTTogJ01veWVuJyxcbiAgICAgICAgSElHSDogJ0hhdXQnLFxuICAgICAgICBBTEw6ICdUb3VzJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBwcm9jZWR1cmU6IHtcbiAgICAgIG5hbWU6ICdQcm9jw6lkdXJlJyxcbiAgICAgIHByb2dyZXNzOiAnJSBhdmFuY2VtZW50IHByb2PDqWR1cmUnXG4gICAgfSxcbiAgICBhY3Rpb246IHtcbiAgICAgIGNvbnN1bHQ6ICdDb25zdWx0ZXInLFxuICAgICAgY2xvc2U6ICdDbG90w7tyZXInLFxuICAgICAgc2VuZDogJ0Vudm95ZXInXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
@@ -1,2 +1,2 @@
1
- export const HypEventCategory = ['ALERT_MALFUNCTION', 'REPORT', 'OPERATOR', 'ALERT_LIMIT', 'MANIFESTATION'];
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLWV2ZW50LWNhdGVnb3J5LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtY2F0ZWdvcnkudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEh5cEV2ZW50Q2F0ZWdvcnkgPSBbJ0FMRVJUX01BTEZVTkNUSU9OJywgJ1JFUE9SVCcsICdPUEVSQVRPUicsICdBTEVSVF9MSU1JVCcsICdNQU5JRkVTVEFUSU9OJ107XG4iXX0=
1
+ export const HypEventCategory = ['ALERT_MALFUNCTION', 'REPORT', 'OPERATOR_EVENT', 'ALERT_LIMIT', 'MANIFESTATION'];
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLWV2ZW50LWNhdGVnb3J5LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtY2F0ZWdvcnkudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSHlwRXZlbnRDYXRlZ29yeSA9IFsnQUxFUlRfTUFMRlVOQ1RJT04nLCAnUkVQT1JUJywgJ09QRVJBVE9SX0VWRU5UJywgJ0FMRVJUX0xJTUlUJywgJ01BTklGRVNUQVRJT04nXTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHlwRXZlbnQgfSBmcm9tICcuL2h5cC1ldmVudC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh5cEV2ZW50RGV0YWlscyBleHRlbmRzIEh5cEV2ZW50IHtcbiAgYWRkcmVzczogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICBzdGF0dXM6IHN0cmluZztcbiAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6IHN0cmluZyxcbiAgY3JlYXRpb25EYXRlOiBzdHJpbmcsXG4gIGVxdWlwbWVudD86IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgZW50aXR5OiBzdHJpbmdcbiAgfSxcbiAgZXh0ZXJuYWxTb3VyY2VSZWY/OiBzdHJpbmcsXG4gIGNhdGVnb3J5OiBzdHJpbmcsXG4gIHN0YXJ0RGF0ZTogc3RyaW5nO1xuICBlbmREYXRlOiBzdHJpbmc7XG4gIGNsb3NlRGF0ZTogc3RyaW5nO1xuICBwcm9jZWR1cmVJZDogc3RyaW5nO1xuICBsaW5rZWRFdmVudHM6IG51bWJlcjtcbiAgcHJvY2VkdXJlUHJvZ3Jlc3M6IG51bWJlcjtcbn1cblxuXG5cblxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHlwRXZlbnQgfSBmcm9tICcuL2h5cC1ldmVudC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh5cEV2ZW50RGV0YWlscyBleHRlbmRzIEh5cEV2ZW50IHtcbiAgYWRkcmVzczogc3RyaW5nLFxuICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICBzdGF0dXM6IHN0cmluZztcbiAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6IHN0cmluZyxcbiAgY3JlYXRpb25EYXRlOiBzdHJpbmcsXG4gIGVxdWlwbWVudD86IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgZW50aXR5OiBzdHJpbmdcbiAgfSxcbiAgZXh0ZXJuYWxTb3VyY2VSZWY/OiBzdHJpbmcsXG4gIGNhdGVnb3J5OiBzdHJpbmcsXG4gIHN0YXJ0RGF0ZTogc3RyaW5nO1xuICBlbmREYXRlOiBzdHJpbmc7XG4gIGNsb3NlRGF0ZTogc3RyaW5nO1xuICBwcm9jZWR1cmVJZD86IHN0cmluZztcbiAgbGlua2VkRXZlbnRzOiBudW1iZXI7XG4gIHByb2NlZHVyZVByb2dyZXNzPzogbnVtYmVyO1xufVxuXG5cblxuXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIeXBFdmVudCB9IGZyb20gJy4vaHlwLWV2ZW50LmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlwRXZlbnRTdW1tYXJ5IGV4dGVuZHMgSHlwRXZlbnQge1xuICBpbnRlcnZlbnRpb25SZXF1ZXN0Q291bnQ6IG51bWJlcjtcbiAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6IHN0cmluZztcbiAgbWFuaWZlc3RhdGlvbj86IHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZyB9O1xuICBpbnRlcnZlbnRpb25SZXF1ZXN0VGl0bGU/OiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG4gIHByb2NlZHVyZUlkOiBzdHJpbmc7XG59XG5cbnR5cGUgSHlwU3RhdHVzID0gJ05FVycgfCAnSU5fUFJPR1JFU1MnIHwgJ0RPTkUnO1xuXG5leHBvcnQgdHlwZSBIeXBFdmVudFN1bW1hcmllcyA9IHtcbiAgW2tleSBpbiBIeXBTdGF0dXNdOiB7XG4gICAgZXZlbnRzOiBIeXBFdmVudFN1bW1hcnlbXTtcbiAgICBjb3VudDogbnVtYmVyXG4gIH1cbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvbW9kZWwvZXZlbnQvaHlwLWV2ZW50LXN1bW1hcnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIeXBFdmVudCB9IGZyb20gJy4vaHlwLWV2ZW50LmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlwRXZlbnRTdW1tYXJ5IGV4dGVuZHMgSHlwRXZlbnQge1xuICBpbnRlcnZlbnRpb25SZXF1ZXN0Q291bnQ6IG51bWJlcjtcbiAgbGFzdE1vZGlmaWNhdGlvbkRhdGU6IHN0cmluZztcbiAgbWFuaWZlc3RhdGlvbj86IHsgc3RhcnREYXRlOiBzdHJpbmc7IGVuZERhdGU6IHN0cmluZyB9O1xuICBpbnRlcnZlbnRpb25SZXF1ZXN0VGl0bGU/OiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG4gIHByb2NlZHVyZUlkPzogc3RyaW5nO1xufVxuXG50eXBlIEh5cFN0YXR1cyA9ICdORVcnIHwgJ0lOX1BST0dSRVNTJyB8ICdET05FJztcblxuZXhwb3J0IHR5cGUgSHlwRXZlbnRTdW1tYXJpZXMgPSB7XG4gIFtrZXkgaW4gSHlwU3RhdHVzXToge1xuICAgIGV2ZW50czogSHlwRXZlbnRTdW1tYXJ5W107XG4gICAgY291bnQ6IG51bWJlclxuICB9XG59XG4iXX0=
@@ -10,5 +10,8 @@ export const EventActions = {
10
10
  getSuccess: createAction('[Event Api] (bus) Get Events/Procedure Success', props()),
11
11
  getFailure: createAction('[Event Api] Get Events/Procedure Failure', props()),
12
12
  save: createAction('[Event] Save Event', props()),
13
+ saveProcedure: createAction('[Event] Save Procedure and linked Events', props()),
14
+ saveSuccess: createAction('[Event] Save success', props()),
15
+ saveFailure: createAction('[Event] Save failure', props()),
13
16
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3RFLFdBQVcsRUFBRSxZQUFZLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxFQUdwRSxDQUFDO0lBQ0wsV0FBVyxFQUFFLFlBQVksQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDeEYsTUFBTSxFQUFFLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLEVBQTRDLENBQUM7SUFDbEcsTUFBTSxFQUFFLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQTBDLENBQUM7SUFDM0YsR0FBRyxFQUFFLFlBQVksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFDekUsZUFBZSxFQUFFLFlBQVksQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFDbkcsVUFBVSxFQUFFLFlBQVksQ0FBQyxnREFBZ0QsRUFBRSxLQUFLLEVBRzVFLENBQUM7SUFDTCxVQUFVLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBcUIsQ0FBQztJQUNoRyxJQUFJLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBOEIsQ0FBQztDQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZSB9IGZyb20gJy4uLy4uL21vZGVsL2h5cC1wcm9jZWR1cmUuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEV2ZW50QWN0aW9ucyA9IHtcbiAgbG9hZDogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgRXZlbnRzJywgcHJvcHM8eyBuZXh0PzogYm9vbGVhbiB9PigpKSxcbiAgbG9hZFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbignW0V2ZW50IEFwaV0gKGJ1cykgTG9hZCBFdmVudHMgU3VjY2VzcycsIHByb3BzPHtcbiAgICBldmVudHM6IEh5cEV2ZW50RGV0YWlsc1tdLFxuICAgIHN0YXJ0aW5nRnJvbT86IG51bWJlclxuICB9PigpKSxcbiAgbG9hZEZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0V2ZW50IEFwaV0gTG9hZCBFdmVudHMgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IHN0cmluZyB9PigpKSxcbiAgZmlsdGVyOiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIFNldCBmaWx0ZXJzJywgcHJvcHM8eyBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gfT4oKSksXG4gIHNlbGVjdDogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBTZWxlY3QnLCBwcm9wczx7IGN1bXVsYXRpdmU6IGJvb2xlYW4sIGlkczogc3RyaW5nW10gfT4oKSksXG4gIGdldDogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgc3BlY2lmaWMgRXZlbnQnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGdldEZvclByb2NlZHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgc3BlY2lmaWMgRXZlbnQgZm9yIHByb2NlZHVyZScsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKSxcbiAgZ2V0U3VjY2VzczogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSAoYnVzKSBHZXQgRXZlbnRzL1Byb2NlZHVyZSBTdWNjZXNzJywgcHJvcHM8e1xuICAgIGV2ZW50PzogSHlwRXZlbnREZXRhaWxzLFxuICAgIHByb2NlZHVyZT86IEh5cFByb2NlZHVyZVxuICB9PigpKSxcbiAgZ2V0RmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBHZXQgRXZlbnRzL1Byb2NlZHVyZSBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxuICBzYXZlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gU2F2ZSBFdmVudCcsIHByb3BzPHsgZXZlbnQ6IEh5cEV2ZW50RGV0YWlscyB9PigpKSxcbn07XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMscUJBQXFCLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3RFLFdBQVcsRUFBRSxZQUFZLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxFQUdwRSxDQUFDO0lBQ0wsV0FBVyxFQUFFLFlBQVksQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDeEYsTUFBTSxFQUFFLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLEVBQTRDLENBQUM7SUFDbEcsTUFBTSxFQUFFLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQTBDLENBQUM7SUFDM0YsR0FBRyxFQUFFLFlBQVksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFDekUsZUFBZSxFQUFFLFlBQVksQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFDbkcsVUFBVSxFQUFFLFlBQVksQ0FBQyxnREFBZ0QsRUFBRSxLQUFLLEVBRzVFLENBQUM7SUFDTCxVQUFVLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBcUIsQ0FBQztJQUNoRyxJQUFJLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBOEIsQ0FBQztJQUM3RSxhQUFhLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBK0IsQ0FBQztJQUM3RyxXQUFXLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBeUQsQ0FBQztJQUNqSCxXQUFXLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBcUIsQ0FBQztDQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZSB9IGZyb20gJy4uLy4uL21vZGVsL2h5cC1wcm9jZWR1cmUuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEV2ZW50QWN0aW9ucyA9IHtcbiAgbG9hZDogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgRXZlbnRzJywgcHJvcHM8eyBuZXh0PzogYm9vbGVhbiB9PigpKSxcbiAgbG9hZFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbignW0V2ZW50IEFwaV0gKGJ1cykgTG9hZCBFdmVudHMgU3VjY2VzcycsIHByb3BzPHtcbiAgICBldmVudHM6IEh5cEV2ZW50RGV0YWlsc1tdLFxuICAgIHN0YXJ0aW5nRnJvbT86IG51bWJlclxuICB9PigpKSxcbiAgbG9hZEZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0V2ZW50IEFwaV0gTG9hZCBFdmVudHMgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IHN0cmluZyB9PigpKSxcbiAgZmlsdGVyOiBjcmVhdGVBY3Rpb24oJ1tFdmVudCBBcGldIFNldCBmaWx0ZXJzJywgcHJvcHM8eyBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gfT4oKSksXG4gIHNlbGVjdDogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBTZWxlY3QnLCBwcm9wczx7IGN1bXVsYXRpdmU6IGJvb2xlYW4sIGlkczogc3RyaW5nW10gfT4oKSksXG4gIGdldDogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgc3BlY2lmaWMgRXZlbnQnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGdldEZvclByb2NlZHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIExvYWQgc3BlY2lmaWMgRXZlbnQgZm9yIHByb2NlZHVyZScsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKSxcbiAgZ2V0U3VjY2VzczogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSAoYnVzKSBHZXQgRXZlbnRzL1Byb2NlZHVyZSBTdWNjZXNzJywgcHJvcHM8e1xuICAgIGV2ZW50PzogSHlwRXZlbnREZXRhaWxzLFxuICAgIHByb2NlZHVyZT86IEh5cFByb2NlZHVyZVxuICB9PigpKSxcbiAgZ2V0RmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnQgQXBpXSBHZXQgRXZlbnRzL1Byb2NlZHVyZSBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxuICBzYXZlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gU2F2ZSBFdmVudCcsIHByb3BzPHsgZXZlbnQ6IEh5cEV2ZW50RGV0YWlscyB9PigpKSxcbiAgc2F2ZVByb2NlZHVyZTogY3JlYXRlQWN0aW9uKCdbRXZlbnRdIFNhdmUgUHJvY2VkdXJlIGFuZCBsaW5rZWQgRXZlbnRzJywgcHJvcHM8eyBwcm9jZWR1cmU6IEh5cFByb2NlZHVyZSB9PigpKSxcbiAgc2F2ZVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbignW0V2ZW50XSBTYXZlIHN1Y2Nlc3MnLCBwcm9wczx7IGV2ZW50PzogSHlwRXZlbnREZXRhaWxzLCBwcm9jZWR1cmU/OiBIeXBQcm9jZWR1cmUgfT4oKSksXG4gIHNhdmVGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tFdmVudF0gU2F2ZSBmYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogc3RyaW5nIH0+KCkpLFxufTtcbiJdfQ==
@@ -16,6 +16,8 @@ export class EventEffects {
16
16
  this.loadEvents$ = createEffect(() => this.actions$.pipe(ofType(EventActions.load), debounceTime(200), withLatestFrom(this.store.select(EventSelectors.events), this.store.select(EventSelectors.noMoreEvents)), filter(([action, events, noMore]) => !noMore), mergeMap(([action, stateEvents]) => this.eventService.list(action.next ? stateEvents.length : 0).pipe(map((events) => EventActions.loadSuccess({ events, startingFrom: action.next ? stateEvents.length : 0 })), catchError((error) => [EventActions.loadFailure({ error: error })])))));
17
17
  this.getEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.get), debounceTime(200), mergeMap((action) => this.eventService.get(action.id).pipe(map((event) => EventActions.getSuccess({ event })), catchError((error) => [EventActions.getFailure({ error: error })])))));
18
18
  this.getForProcedureEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.getForProcedure), debounceTime(200), mergeMap((action) => this.eventService.getProcedure(action.id).pipe(map((procedure) => EventActions.getSuccess({ procedure })), catchError((error) => [EventActions.getFailure({ error: error })])))));
19
+ this.saveEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.save), debounceTime(200), mergeMap((action) => this.eventService.save(action.event).pipe(map((event) => EventActions.saveSuccess({ event })), catchError((error) => [EventActions.saveFailure({ error: error })])))));
20
+ this.saveProcedure$ = createEffect(() => this.actions$.pipe(ofType(EventActions.saveProcedure), debounceTime(200), mergeMap((action) => this.eventService.saveProcedure(action.procedure).pipe(map((procedure) => EventActions.saveSuccess({ procedure })), catchError((error) => [EventActions.saveFailure({ error: error })])))));
19
21
  }
20
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventEffects, deps: [{ token: i1.Actions }, { token: i2.EventService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
23
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventEffects }); }
@@ -23,4 +25,4 @@ export class EventEffects {
23
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventEffects, decorators: [{
24
26
  type: Injectable
25
27
  }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.EventService }, { type: i3.Store }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFJbkQsTUFBTSxPQUFPLFlBQVk7SUEwQ3ZCLFlBQ1UsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsS0FBWTtRQUZaLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQTVDdEIsZ0JBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUN6QixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQ3hHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDN0MsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9ELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN6RyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDcEUsQ0FDRixDQUNGLENBQ0YsQ0FBQztRQUVGLGNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUN4QixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFDbEQsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ25FLENBQ0YsQ0FDRixDQUNGLENBQUM7UUFFRiwwQkFBcUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUNwQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFDMUQsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ25FLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFPRixDQUFDOzhHQS9DVSxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi9ldmVudC5hY3Rpb25zJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFdmVudFNlbGVjdG9ycyB9IGZyb20gJy4vZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRFZmZlY3RzIHtcbiAgbG9hZEV2ZW50cyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRXZlbnRBY3Rpb25zLmxvYWQpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ldmVudHMpLCB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ub01vcmVFdmVudHMpKSxcbiAgICAgIGZpbHRlcigoW2FjdGlvbiwgZXZlbnRzLCBub01vcmVdKSA9PiAhbm9Nb3JlKSxcbiAgICAgIG1lcmdlTWFwKChbYWN0aW9uLCBzdGF0ZUV2ZW50c10pID0+XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmxpc3QoYWN0aW9uLm5leHQgPyBzdGF0ZUV2ZW50cy5sZW5ndGggOiAwKS5waXBlKFxuICAgICAgICAgIG1hcCgoZXZlbnRzKSA9PiBFdmVudEFjdGlvbnMubG9hZFN1Y2Nlc3MoeyBldmVudHMsIHN0YXJ0aW5nRnJvbTogYWN0aW9uLm5leHQgPyBzdGF0ZUV2ZW50cy5sZW5ndGggOiAwIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0V2ZW50QWN0aW9ucy5sb2FkRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xuXG4gIGdldEV2ZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShFdmVudEFjdGlvbnMuZ2V0KSxcbiAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UuZ2V0KGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBFdmVudEFjdGlvbnMuZ2V0U3VjY2Vzcyh7IGV2ZW50IH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0V2ZW50QWN0aW9ucy5nZXRGYWlsdXJlKHsgZXJyb3I6IGVycm9yIH0pXSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgZ2V0Rm9yUHJvY2VkdXJlRXZlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEV2ZW50QWN0aW9ucy5nZXRGb3JQcm9jZWR1cmUpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5nZXRQcm9jZWR1cmUoYWN0aW9uLmlkKS5waXBlKFxuICAgICAgICAgIG1hcCgocHJvY2VkdXJlKSA9PiBFdmVudEFjdGlvbnMuZ2V0U3VjY2Vzcyh7IHByb2NlZHVyZSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtFdmVudEFjdGlvbnMuZ2V0RmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZVxuICApIHtcbiAgfVxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFJbkQsTUFBTSxPQUFPLFlBQVk7SUFvRXZCLFlBQ1UsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsS0FBWTtRQUZaLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXRFdEIsZ0JBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUN6QixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQ3hHLE1BQU0sQ0FBQyxD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QUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNwRSxDQUNGLENBQ0YsQ0FDRixDQUFDO1FBRUYsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUNsQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQ3BELEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFDM0QsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3BFLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFPRixDQUFDOzhHQXpFVSxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi9ldmVudC5hY3Rpb25zJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFdmVudFNlbGVjdG9ycyB9IGZyb20gJy4vZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRFZmZlY3RzIHtcbiAgbG9hZEV2ZW50cyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRXZlbnRBY3Rpb25zLmxvYWQpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ldmVudHMpLCB0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5ub01vcmVFdmVudHMpKSxcbiAgICAgIGZpbHRlcigoW2FjdGlvbiwgZXZlbnRzLCBub01vcmVdKSA9PiAhbm9Nb3JlKSxcbiAgICAgIG1lcmdlTWFwKChbYWN0aW9uLCBzdGF0ZUV2ZW50c10pID0+XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmxpc3QoYWN0aW9uLm5leHQgPyBzdGF0ZUV2ZW50cy5sZW5ndGggOiAwKS5waXBlKFxuICAgICAgICAgIG1hcCgoZXZlbnRzKSA9PiBFdmVudEFjdGlvbnMubG9hZFN1Y2Nlc3MoeyBldmVudHMsIHN0YXJ0aW5nRnJvbTogYWN0aW9uLm5leHQgPyBzdGF0ZUV2ZW50cy5sZW5ndGggOiAwIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0V2ZW50QWN0aW9ucy5sb2FkRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xuXG4gIGdldEV2ZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShFdmVudEFjdGlvbnMuZ2V0KSxcbiAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UuZ2V0KGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBFdmVudEFjdGlvbnMuZ2V0U3VjY2Vzcyh7IGV2ZW50IH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0V2ZW50QWN0aW9ucy5nZXRGYWlsdXJlKHsgZXJyb3I6IGVycm9yIH0pXSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgZ2V0Rm9yUHJvY2VkdXJlRXZlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEV2ZW50QWN0aW9ucy5nZXRGb3JQcm9jZWR1cmUpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5nZXRQcm9jZWR1cmUoYWN0aW9uLmlkKS5waXBlKFxuICAgICAgICAgIG1hcCgocHJvY2VkdXJlKSA9PiBFdmVudEFjdGlvbnMuZ2V0U3VjY2Vzcyh7IHByb2NlZHVyZSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtFdmVudEFjdGlvbnMuZ2V0RmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xuXG4gIHNhdmVFdmVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRXZlbnRBY3Rpb25zLnNhdmUpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zYXZlKGFjdGlvbi5ldmVudCkucGlwZShcbiAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBFdmVudEFjdGlvbnMuc2F2ZVN1Y2Nlc3MoeyBldmVudCB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtFdmVudEFjdGlvbnMuc2F2ZUZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgKTtcblxuICBzYXZlUHJvY2VkdXJlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShFdmVudEFjdGlvbnMuc2F2ZVByb2NlZHVyZSksXG4gICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNhdmVQcm9jZWR1cmUoYWN0aW9uLnByb2NlZHVyZSkucGlwZShcbiAgICAgICAgICBtYXAoKHByb2NlZHVyZSkgPT4gRXZlbnRBY3Rpb25zLnNhdmVTdWNjZXNzKHsgcHJvY2VkdXJlIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0V2ZW50QWN0aW9ucy5zYXZlRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZVxuICApIHtcbiAgfVxufVxuIl19
@@ -40,6 +40,20 @@ export class EventService {
40
40
  return this.httpClient.get(encodeURI(`${url}/procedures/id/${id}`));
41
41
  }));
42
42
  }
43
+ save(event) {
44
+ return this.store
45
+ .select(HypSelectors.url)
46
+ .pipe(mergeMap((url) => {
47
+ return this.httpClient.post(encodeURI(`${url}/events/${event.type.toLowerCase()}`), event);
48
+ }));
49
+ }
50
+ saveProcedure(procedure) {
51
+ return this.store
52
+ .select(HypSelectors.url)
53
+ .pipe(mergeMap((url) => {
54
+ return this.httpClient.post(encodeURI(`${url}/procedures`), procedure);
55
+ }));
56
+ }
43
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventService, deps: [{ token: i1.HttpClient }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
44
58
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EventService, providedIn: 'root' }); }
45
59
  }
@@ -49,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
49
63
  providedIn: 'root',
50
64
  }]
51
65
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQU9uRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCO1FBRGpCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUUzQixDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQzthQUN4QixJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUN6RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDdEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF5QixTQUFTLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQWtCLFNBQVMsQ0FBQyxHQUFHLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7YUFDeEIsSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBZSxTQUFTLENBQUMsR0FBRyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OEdBNUNVLFlBQVk7a0hBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG1lcmdlTWFwLCBPYnNlcnZhYmxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBIeXBTZWxlY3RvcnMgfSBmcm9tICcuLi9oeXBlcnZpc29yL2h5cGVydmlzb3Iuc2VsZWN0b3JzJztcbmltcG9ydCB7IEV2ZW50U2VsZWN0b3JzIH0gZnJvbSAnLi9ldmVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgSHlwRXZlbnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZXZlbnQvaHlwLWV2ZW50LWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHlwUHJvY2VkdXJlIH0gZnJvbSAnLi4vLi4vbW9kZWwvaHlwLXByb2NlZHVyZS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICkge1xuICB9XG5cbiAgbGlzdChzdGFydFdpdGggPSAwKTogT2JzZXJ2YWJsZTxBcnJheTxIeXBFdmVudERldGFpbHM+PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybClcbiAgICAgIC5waXBlKFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChFdmVudFNlbGVjdG9ycy5maWx0ZXJzKSksXG4gICAgICAgIG1lcmdlTWFwKChbdXJsLCBmaWx0ZXJzXSkgPT4ge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICAgIE9iamVjdC5rZXlzKGZpbHRlcnMpLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGZpbHRlcnNbZmlsdGVyXS5mb3JFYWNoKChmaWx0ZXJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGZpbHRlciwgZmlsdGVyVmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemUgPSAyMDtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgKHN0YXJ0V2l0aCAvIHBhZ2VTaXplKSArIDEpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFycmF5PEh5cEV2ZW50RGV0YWlscz4+KGVuY29kZVVSSShgJHt1cmx9L2V2ZW50c2ApLCB7IHBhcmFtcyB9KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxIeXBFdmVudERldGFpbHM+KGVuY29kZVVSSShgJHt1cmx9L2V2ZW50cy9pZC8ke2lkfWApKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxIeXBQcm9jZWR1cmU+KGVuY29kZVVSSShgJHt1cmx9L3Byb2NlZHVyZXMvaWQvJHtpZH1gKSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL3N0b3JlL2V2ZW50L2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBYyxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQU9uRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCO1FBRGpCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUUzQixDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQzthQUN4QixJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUN6RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDdEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF5QixTQUFTLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQWtCLFNBQVMsQ0FBQyxHQUFHLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7YUFDeEIsSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBZSxTQUFTLENBQUMsR0FBRyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBc0I7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWtCLFNBQVMsQ0FBQyxHQUFHLEdBQUcsV0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUF1QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7YUFDeEIsSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBZSxTQUFTLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOzhHQWhFVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgSHlwU2VsZWN0b3JzIH0gZnJvbSAnLi4vaHlwZXJ2aXNvci9oeXBlcnZpc29yLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBFdmVudFNlbGVjdG9ycyB9IGZyb20gJy4vZXZlbnQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cFByb2NlZHVyZSB9IGZyb20gJy4uLy4uL21vZGVsL2h5cC1wcm9jZWR1cmUuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICApIHtcbiAgfVxuXG4gIGxpc3Qoc3RhcnRXaXRoID0gMCk6IE9ic2VydmFibGU8QXJyYXk8SHlwRXZlbnREZXRhaWxzPj4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRXZlbnRTZWxlY3RvcnMuZmlsdGVycykpLFxuICAgICAgICBtZXJnZU1hcCgoW3VybCwgZmlsdGVyc10pID0+IHtcbiAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXJzKS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJzW2ZpbHRlcl0uZm9yRWFjaCgoZmlsdGVyVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChmaWx0ZXIsIGZpbHRlclZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IHBhZ2VTaXplID0gMjA7XG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIChzdGFydFdpdGggLyBwYWdlU2l6ZSkgKyAxKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcnJheTxIeXBFdmVudERldGFpbHM+PihlbmNvZGVVUkkoYCR7dXJsfS9ldmVudHNgKSwgeyBwYXJhbXMgfSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SHlwRXZlbnREZXRhaWxzPihlbmNvZGVVUkkoYCR7dXJsfS9ldmVudHMvaWQvJHtpZH1gKSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoSHlwU2VsZWN0b3JzLnVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SHlwUHJvY2VkdXJlPihlbmNvZGVVUkkoYCR7dXJsfS9wcm9jZWR1cmVzL2lkLyR7aWR9YCkpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBzYXZlKGV2ZW50OiBIeXBFdmVudERldGFpbHMpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChIeXBTZWxlY3RvcnMudXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh1cmwpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8SHlwRXZlbnREZXRhaWxzPihlbmNvZGVVUkkoYCR7dXJsfS9ldmVudHMvJHtldmVudC50eXBlLnRvTG93ZXJDYXNlKCl9YCksIGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgc2F2ZVByb2NlZHVyZShwcm9jZWR1cmU6IEh5cFByb2NlZHVyZSkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KEh5cFNlbGVjdG9ycy51cmwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxIeXBQcm9jZWR1cmU+KGVuY29kZVVSSShgJHt1cmx9L3Byb2NlZHVyZXNgKSwgcHJvY2VkdXJlKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG59XG4iXX0=