asp-lib 1.0.11 → 1.0.12

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.
@@ -28,14 +28,14 @@ export class UsersAdminComponent {
28
28
  }
29
29
  }
30
30
  ngOnInit() {
31
- this.formControls = this.entityForm.reduce((object, field) => ({ ...object, [field.name]: new FormControl('') }), {});
31
+ this.formControls = this.entityForm.reduce((object, field) => ({ ...object, [field.name]: new FormControl(null) }), {});
32
32
  this.securityAdminService.subjects[this.entity].subscribe({
33
33
  next: (item) => {
34
34
  this.selectedItem = item;
35
35
  Object.entries(this.formControls).forEach(([name, control]) => {
36
36
  let field = this.entityForm.find(x => x.name === name);
37
37
  field?.requiresNewValue ?
38
- control.setValue('') :
38
+ control.setValue(null) :
39
39
  control.patchValue(item[name]);
40
40
  });
41
41
  }
@@ -124,6 +124,12 @@ export class UsersAdminComponent {
124
124
  saveItem() {
125
125
  this.snackbar.info("Guardando...", 3000);
126
126
  let newInfo = {};
127
+ for (let key in this.selectedItem) {
128
+ let field = this.entityForm.find(x => x.name === key);
129
+ if (!(field?.requiresNewValue)) {
130
+ newInfo[key] = this.formControls[key]?.value ?? this.selectedItem[key];
131
+ }
132
+ }
127
133
  for (let key in this.formControls) {
128
134
  let field = this.entityForm.find(x => x.name === key);
129
135
  if (field?.requiresNewValue) {
@@ -135,7 +141,7 @@ export class UsersAdminComponent {
135
141
  newInfo[key] = this.formControls[key].value;
136
142
  }
137
143
  }
138
- this.securityAdminService.saveItem(this.saveEntityEndpoint, { ...this.selectedItem, ...newInfo }).subscribe({
144
+ this.securityAdminService.saveItem(this.saveEntityEndpoint, { ...newInfo }).subscribe({
139
145
  next: (response) => {
140
146
  if (response.responseCode === 200) {
141
147
  if (this.entity === 'Role') {
@@ -274,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
274
280
  }], resetItemSelected: [{
275
281
  type: Input
276
282
  }] } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtYWRtaW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNwLWxpYi9zcmMvbGliL3VzZXJzLWFkbWluL3VzZXJzLWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi91c2Vycy1hZG1pbi91c2Vycy1hZG1pbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBT3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0FBQ3BJLE1BQU0sYUFBYSxHQUFHLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO0FBQ2xKLE1BQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0FBUWxJLE1BQU0sT0FBTyxtQkFBbUI7SUErQi9CLElBQUksWUFBWSxLQUFLLE9BQU8sVUFBVSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQ3hELElBQUksU0FBUyxLQUFLLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVB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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvbGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vcm9sZS1jYXJkL3JvbGUtY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgU2VjdXJpdHlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZWN1cml0eS1hZG1pbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuXHJcbmNvbnN0IG5hbWVPcmRlciA9IHsgcHJvcGVydHk6ICduYW1lJywgYXNjSWNvbjogJ21lbnUtYWxwaGFiZXQtYXNjJywgZGVzY0ljb246ICdtZW51LWFscGhhYmV0LWRlc2MnLCB0b29sdGlwOiAnT3JkZW5hciBwb3Igbm9tYnJlJyB9O1xyXG5jb25zdCBjdXN0b21lck9yZGVyID0geyBwcm9wZXJ0eTogJ2N1c3RvbWVyLm5hbWUnLCBhc2NJY29uOiAnbWVudS1jdXN0b21lci1hc2MnLCBkZXNjSWNvbjogJ21lbnUtY3VzdG9tZXItZGVzYycsIHRvb2x0aXA6ICdPcmRlbmFyIHBvciBjbGllbnRlJyB9O1xyXG5jb25zdCBsYXN0bmFtZSA9IHsgcHJvcGVydHk6ICdsYXN0bmFtZScsIGFzY0ljb246ICdtZW51LXVzZXItcmlnaHQnLCBkZXNjSWNvbjogJ21lbnUtdXNlci1sZWZ0JywgdG9vbHRpcDogJ09yZGVuYXIgcG9yIGFwZWxsaWRvJyB9XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItdXNlcnMtYWRtaW4nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi91c2Vycy1hZG1pbi5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4uL2Fzc2V0cy9mb250cy9zdHlsZS5jc3MnLCAnLi4vYXNzZXRzL3RoZW1lLmNzcycsICcuL3VzZXJzLWFkbWluLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJzQWRtaW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcblx0QElucHV0KCkgbGlzdFRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsaXN0SWNvbjogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgbGlzdEl0ZW1JY29uOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBlbnRpdHk6IFwiVXNlclwiIHwgXCJDdXN0b21lclwiIHwgXCJSb2xlXCIgPSBcIlVzZXJcIjtcclxuXHRASW5wdXQoKSBlbnRpdHlOYW1lOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBlbnRpdHlBY3Rpb25zOiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGVudGl0eUZvcm06IEZvcm1GaWVsZFtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5TGlzdEVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBlbnRpdHlMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGVudGl0eVVpQ29tcG9uZW50OiBUeXBlPGFueT4gfCBudWxsID0gbnVsbDtcclxuXHRASW5wdXQoKSB1aUNvbXBvbmVudElucHV0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cdEBJbnB1dCgpIHNlYXJjaEZpbHRlcj86IEZ1bmN0aW9uO1xyXG5cdEBJbnB1dCgpIGN1c3RvbWVyTGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSByb2xlTGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSB1c2VyTGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSBjdXN0b21lckxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgcm9sZUxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgdXNlckxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgc2F2ZUVudGl0eUVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSB1c2Vyc0J5Q3VzdG9tZXJFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgcmVsb2FkU3ViamVjdD86IFN1YmplY3Q8Ym9vbGVhbj47XHJcblx0QElucHV0KCkgaXRlbVNlbGVjdGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcclxuXHRASW5wdXQoKSByZXNldEl0ZW1TZWxlY3RlZD86IFN1YmplY3Q8Ym9vbGVhbj47XHJcblx0cm9sZUNhcmQgPSBSb2xlQ2FyZENvbXBvbmVudDtcclxuXHRmb3JtQ29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfSA9IHt9O1xyXG5cdHNlbGVjdGVkSXRlbTogYW55ID0geyBpZDogbnVsbCB9O1xyXG5cdHNlbGVjdGVkVXNlcjogYW55O1xyXG5cdGxvYWRpbmdVc2VyUm9sZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRsb2FkaW5nVXNlckN1c3RvbWVyUm9sZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRnZXQgbWFpblRhYlRpdGxlKCkgeyByZXR1cm4gYEVkaXRhciAke3RoaXMubGlzdFRpdGxlfWAgfVxyXG5cdGdldCBmb3JtVGl0bGUoKSB7IHJldHVybiBgJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA/IFwiRWRpdGFyXCIgOiBcIkNyZWFyXCJ9ICR7dGhpcy5lbnRpdHlOYW1lfWAgfVxyXG5cdGdldCB1c2VyQXNzaWduZWRSb2xlcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyPy5yb2xlcyA/PyBbXSB9XHJcblx0Z2V0IHVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXMoKSB7IHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcj8uY3VzdG9tZXJSb2xlcyA/PyBbXSB9XHJcblx0Z2V0IG1haW5MaXN0T3JkZXJQcm9wZXJ0aWVzKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlICdVc2VyJzpcclxuXHRcdFx0XHRyZXR1cm4gW25hbWVPcmRlciwgY3VzdG9tZXJPcmRlciwgbGFzdG5hbWVdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBbbmFtZU9yZGVyXTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5mb3JtQ29udHJvbHMgPSB0aGlzLmVudGl0eUZvcm0ucmVkdWNlKChvYmplY3QsIGZpZWxkKSA9PiAoeyAuLi5vYmplY3QsIFtmaWVsZC5uYW1lXTogbmV3IEZvcm1Db250cm9sPGFueT4oJycpIH0pLCB7fSlcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc3ViamVjdHNbdGhpcy5lbnRpdHldLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChpdGVtKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbnRyb2xzKS5mb3JFYWNoKChbbmFtZSwgY29udHJvbF0pID0+IHtcclxuXHRcdFx0XHRcdGxldCBmaWVsZCA9IHRoaXMuZW50aXR5Rm9ybS5maW5kKHggPT4geC5uYW1lID09PSBuYW1lKTtcclxuXHRcdFx0XHRcdGZpZWxkPy5yZXF1aXJlc05ld1ZhbHVlID8gXHJcblx0XHRcdFx0XHRjb250cm9sLnNldFZhbHVlKCcnKSA6XHJcblx0XHRcdFx0XHRjb250cm9sLnBhdGNoVmFsdWUoaXRlbVtuYW1lXSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RlZFVzZXJTdWJqZWN0LnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICh1c2VyKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB1c2VyO1xyXG5cdFx0XHRcdGlmICh1c2VyLmlkICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyUm9sZXMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5nZXRBc3NpZ25lZFJvbGVzKHVzZXIuaWQsIFwiVXNlclwiKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHVzZXIuY3VzdG9tZXIuaWQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmdldEFzc2lnbmVkUm9sZXModXNlci5jdXN0b21lci5pZCwgXCJDdXN0b21lclwiKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5leHQ6IChjdXN0b21lclJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChjdXN0b21lclJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0geyAuLi51c2VyLCByb2xlczogcmVzcG9uc2UubG9hZCwgY3VzdG9tZXJSb2xlczogY3VzdG9tZXJSZXNwb25zZS5sb2FkIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogXyA9PiB0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQgfVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyUm9sZXMgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmdVc2VyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5yZXNldEl0ZW1TZWxlY3RlZD8uc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMucmVzZXRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRzZWxlY3RJdGVtKG5ld0l0ZW06IGFueSkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlIFwiVXNlclwiOlxyXG5cdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0VXNlcihuZXdJdGVtKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIkN1c3RvbWVyXCI6XHJcblx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RDdXN0b21lcihuZXdJdGVtKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIlJvbGVcIjpcclxuXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNlbGVjdFJvbGUobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHNlY3VyaXR5QWRtaW5TZXJ2aWNlOiBTZWN1cml0eUFkbWluU2VydmljZSwgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tiYXJTZXJ2aWNlKSB7XHJcblxyXG5cdH1cclxuXHJcblx0c2F2ZUl0ZW0oKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oXCJHdWFyZGFuZG8uLi5cIiwgMzAwMCk7XHJcblx0XHRsZXQgbmV3SW5mbzogYW55ID0ge307XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gdGhpcy5mb3JtQ29udHJvbHMpIHtcclxuXHRcdFx0bGV0IGZpZWxkID0gdGhpcy5lbnRpdHlGb3JtLmZpbmQoeCA9PiB4Lm5hbWUgPT09IGtleSk7XHJcblx0XHRcdGlmIChmaWVsZD8ucmVxdWlyZXNOZXdWYWx1ZSkge1xyXG5cdFx0XHRcdGlmIChCb29sZWFuKHRoaXMuZm9ybUNvbnRyb2xzW2tleV0udmFsdWUpKSB7bmV3SW5mb1trZXldID0gdGhpcy5mb3JtQ29udHJvbHNba2V5XS52YWx1ZTt9XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0bmV3SW5mb1trZXldID0gdGhpcy5mb3JtQ29udHJvbHNba2V5XS52YWx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zYXZlSXRlbSh0aGlzLnNhdmVFbnRpdHlFbmRwb2ludCwgeyAuLi50aGlzLnNlbGVjdGVkSXRlbSwgLi4ubmV3SW5mbyB9KS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuZW50aXR5ID09PSAnUm9sZScpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25SZXNvdXJjZSh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgbmV3SW5mby5yZXNvdXJjZXMpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdFx0bmV4dDogKGFzc2lnblJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChhc3NpZ25SZXNwb25zZS5yZXBvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0ocmVzcG9uc2UubG9hZCk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoYCR7dGhpcy5lbnRpdHlOYW1lfSAke3RoaXMuc2VsZWN0ZWRJdGVtLmlkID09PSBudWxsID8gJ0NyZWFkbycgOiAnR3VhcmRhZG8nfWApO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0SXRlbShyZXNwb25zZS5sb2FkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKGAke3RoaXMuZW50aXR5TmFtZX0gJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA9PT0gbnVsbCA/ICdDcmVhZG8nIDogJ0d1YXJkYWRvJ31gKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVycm9yKTtcclxuXHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ0hhIG9jdXJyaWRvIHVuIGVycm9yIGFsIGd1YXJkYXInKTtcclxuXHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pOztcclxuXHR9XHJcblxyXG5cdHJlc2V0Rm9ybShldmVudD86IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RJdGVtKHsgaWQ6IG51bGwgfSk7XHJcblx0fVxyXG5cclxuXHRnZXQgY3VycmVudEN1c3RvbWVyVXNlcnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW0udXNlcnMgPz8gW107XHJcblx0fVxyXG5cclxuXHRnZXQgY3VzdG9tZXJVc2Vyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UudXNlcnNCeUN1c3RvbWVyRW5kcG9pbnQgKyAnP2N1c3RvbWVySWQ9JyArIHRoaXMuc2VsZWN0ZWRJdGVtLmlkO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1c3RvbWVyUm9sZXNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnJvbGVzQnlDdXN0b21lckVuZHBvaW50ICsgJz9jdXN0b21lcklkPScgKyB0aGlzLnNlbGVjdGVkSXRlbS5pZDtcclxuXHR9XHJcblxyXG5cclxuXHRnZXQgcm9sZVVzZXJzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW0uaWQgIT09IG51bGwgPyB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnVzZXJzQnlSb2xlRW5kcG9pbnQgKyAnP3JvbGVJZD0nICsgdGhpcy5zZWxlY3RlZEl0ZW0uaWQgOiAnJztcclxuXHR9XHJcblxyXG5cdGdldCByb2xlQ3VzdG9tZXJzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW0uaWQgIT09IG51bGwgPyB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmN1c3RvbWVyc0J5Um9sZUVuZHBvaW50ICsgJz9yb2xlSWQ9JyArIHRoaXMuc2VsZWN0ZWRJdGVtLmlkIDogJyc7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lclRvVXNlcihjdXN0b21lcjogYW55KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oeyAuLi50aGlzLnNlbGVjdGVkSXRlbSwgY3VzdG9tZXIgfSk7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25Vc2Vyc1RvQ3VzdG9tZXIodXNlcnM6IGFueVtdKSB7XHJcblx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IHsgLi4udGhpcy5zZWxlY3RlZEl0ZW0sIHVzZXJzOiB1c2VycyB9O1xyXG5cdFx0dGhpcy5zYXZlSXRlbSgpO1xyXG5cdH1cclxuXHJcblx0YXNzaWduVXNlcnNUb1JvbGUodXNlcnM6IGFueVtdKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0d1YXJkYW5kby4uLicpXHJcblx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnblJvbGVVc2Vycyh0aGlzLnNlbGVjdGVkSXRlbS5pZCwgdXNlcnMpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ1VzdWFyaW9zIGFzaWduYWRvcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgdXN1YXJpb3MuJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIHVzdWFyaW9zLicpXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFzc2lnbkN1c3RvbWVyc1RvUm9sZShjdXN0b21lcnM6IGFueVtdKSB7XHJcblx0XHR0aGlzLnNuYWNrYmFyLmluZm8oJ0d1YXJkYW5kby4uLicpXHJcblx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLmFzc2lnblJvbGVDdXN0b21lcnModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIGN1c3RvbWVycykuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcygnQ2xpZW50ZXMgYXNpZ25hZG9zJyk7XHJcblx0XHRcdFx0XHR0aGlzLnJlbG9hZFN1YmplY3Q/Lm5leHQodHJ1ZSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciBjbGllbnRlcy4nKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiAoKSA9PiB0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgY2xpZW50ZXMuJylcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcbn1cclxuIiwiPGxpYi1pdGVtcy12aWV3ZXIgW2xpc3RFbmRwb2ludF09XCJlbnRpdHlMaXN0RW5kcG9pbnRcIiAoc2VsZWN0SXRlbSk9XCJzZWxlY3RJdGVtKCRldmVudClcIiBbc2hvd09yZGVyQnV0dG9uc109XCJ0cnVlXCJcclxuXHRbc2hvd0NyZWF0ZUJ1dHRvbl09XCJ0cnVlXCIgW3VpQ29tcG9uZW50SW5wdXRzXT1cInVpQ29tcG9uZW50SW5wdXRzXCIgW2VudGl0eVVpQ29tcG9uZW50XT1cImVudGl0eVVpQ29tcG9uZW50XCJcclxuXHRbaXRlbXNdPVwiZW50aXR5TGlzdFwiIFt0aXRsZV09XCJsaXN0VGl0bGVcIiBbaWNvbl09XCJsaXN0SWNvblwiIFt0aGVtZV09XCJ0aGVtZVwiIFtpdGVtSWNvbl09XCJsaXN0SXRlbUljb25cIiBbcmVsb2FkU3ViamVjdF09XCJyZWxvYWRTdWJqZWN0XCIgKGFkZENsaWNrKT1cInJlc2V0Rm9ybSgkZXZlbnQpXCIgW3NlbGVjdGVkSXRlbV09XCJzZWxlY3RlZEl0ZW1cIiBcclxuXHRbc2VhcmNoRmlsdGVyXT1cInNlYXJjaEZpbHRlclwiXHJcblx0W29yZGVyUHJvcGVydGllc109XCJtYWluTGlzdE9yZGVyUHJvcGVydGllc1wiXHJcblx0PlxyXG48L2xpYi1pdGVtcy12aWV3ZXI+XHJcbjxkaXYgW2F0dHIuZGF0YS10aGVtZV09XCJ0aGVtZVwiIGNsYXNzPVwidGFicy1jb250YWluZXJcIj5cclxuXHQ8bWF0LXRhYi1ncm91cD5cclxuXHRcdDxtYXQtdGFiIFtsYWJlbF09XCJtYWluVGFiVGl0bGVcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0PGxpYi1mb3JtIFtmb3JtXT1cImVudGl0eUZvcm1cIiBbZm9ybUNvbnRyb2xzXT1cImZvcm1Db250cm9sc1wiIFtmb3JtQWN0aW9uc109XCJlbnRpdHlBY3Rpb25zXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFt0aXRsZV09XCJmb3JtVGl0bGVcIiAoc2F2ZUNsaWNrKT1cInNhdmVJdGVtKClcIiBpY29uPVwibWVudS1lZGl0XCIgW2VudGl0eU9iamVjdF09XCJzZWxlY3RlZEl0ZW1cIj48L2xpYi1mb3JtPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbWF0LXRhYj5cclxuXHJcblx0XHQ8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJlbnRpdHlcIj5cclxuXHJcblx0XHRcdDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidVc2VyJ1wiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInQ2xpZW50ZSdcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudC1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PCEtLSA8c3Bhbj5DbGllbnRlczwvc3Bhbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGRpdj5cclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVJdGVtKClcIj5HdWFyZGFyPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBzaW5nbGUtbGlzdC1wYWRkaW5nXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy12aWV3ZXIgW3Nob3dTZWxlY3RlZEF0VG9wXT1cInRydWVcIiBbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGVkSXRlbV09XCJzZWxlY3RlZFVzZXI/LmN1c3RvbWVyXCIgW2l0ZW1zXT1cImN1c3RvbWVyTGlzdFwiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0aXRsZV09XCInQ2xpZW50ZSdcIiAoc2VsZWN0SXRlbSk9XCJhc3NpZ25DdXN0b21lclRvVXNlcigkZXZlbnQpXCIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIj48L2xpYi1pdGVtcy12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInUm9sZXMnXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiIFtleHRlcm5hbExvYWRpbmddPVwibG9hZGluZ1VzZXJSb2xlc1wiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJyb2xlQ2FyZFwiIFtpdGVtc109XCJ1c2VyQXNzaWduZWRSb2xlc1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0aXRsZV09XCInUm9sZXMgQXNpZ25hZG9zIChVc3VhcmlvKSdcIiBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiIFtleHRlcm5hbExvYWRpbmddPVwibG9hZGluZ1VzZXJDdXN0b21lclJvbGVzXCIgW2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCIgW2l0ZW1zXT1cInVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXNcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ1JvbGVzIEFzaWduYWRvcyAoQ2xpZW50ZSknXCIgIFtzaG93UGFnaW5hdG9yXT1cImZhbHNlXCI+PC9saWItaXRlbXMtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQ3VzdG9tZXInXCI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidVc3VhcmlvcydcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgW3NlbGVjdGlvbkVuZHBvaW50XT1cImN1c3RvbWVyVXNlcnNFbmRwb2ludFwiIFtsaXN0RW5kcG9pbnRdPVwidXNlckxpc3RFbmRwb2ludFwiIFtpdGVtc109XCJ1c2VyTGlzdFwiIFtsaXN0VGl0bGVdPVwiJ1VzdWFyaW9zIERpc3BvbmlibGVzJ1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzZWxlY3Rpb25UaXRsZV09XCInVXN1YXJpb3MgU2VsZWNjaW9uYWRvcydcIiAoc2F2ZUNsaWNrKT1cImFzc2lnblVzZXJzVG9DdXN0b21lcigkZXZlbnQpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidSb2xlcydcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtdmlld2VyIFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJSb2xlc0VuZHBvaW50XCIgW2VudGl0eVVpQ29tcG9uZW50XT1cInJvbGVDYXJkXCIgW2l0ZW1zXT1cInJvbGVMaXN0XCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3RpdGxlXT1cIidSb2xlcyBBc2lnbmFkb3MnXCIgIFtzaG93UGFnaW5hdG9yXT1cImZhbHNlXCI+PC9saWItaXRlbXMtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUm9sZSdcIj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1VzdWFyaW9zJ1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy1zZWxlY3RvciBbbGlzdEVuZHBvaW50XT1cInVzZXJMaXN0RW5kcG9pbnRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwicm9sZVVzZXJzRW5kcG9pbnRcIiBbbGlzdFRpdGxlXT1cIidVc3VhcmlvcyBEaXNwb25pYmxlcydcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2VsZWN0aW9uVGl0bGVdPVwiJ1VzdWFyaW9zIFNlbGVjY2lvbmFkb3MnXCIgKHNhdmVDbGljayk9XCJhc3NpZ25Vc2Vyc1RvUm9sZSgkZXZlbnQpXCI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInQ2xpZW50ZXMnXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yIFtsaXN0RW5kcG9pbnRdPVwiY3VzdG9tZXJMaXN0RW5kcG9pbnRcIiBbc2VsZWN0aW9uRW5kcG9pbnRdPVwicm9sZUN1c3RvbWVyc0VuZHBvaW50XCIgW2xpc3RUaXRsZV09XCInQ2xpZW50ZXMgRGlzcG9uaWJsZXMnXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidDbGllbnRlcyBTZWxlY2Npb25hZG9zJ1wiIChzYXZlQ2xpY2spPVwiYXNzaWduQ3VzdG9tZXJzVG9Sb2xlKCRldmVudClcIj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8L2xpYi1pdGVtcy1zZWxlY3Rvcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvbWF0LXRhYi1ncm91cD5cclxuXHJcbjwvZGl2PiJdfQ==
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtYWRtaW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNwLWxpYi9zcmMvbGliL3VzZXJzLWFkbWluL3VzZXJzLWFkbWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi91c2Vycy1hZG1pbi91c2Vycy1hZG1pbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBT3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0FBQ3BJLE1BQU0sYUFBYSxHQUFHLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO0FBQ2xKLE1BQU0sUUFBUSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0FBUWxJLE1BQU0sT0FBTyxtQkFBbUI7SUErQi9CLElBQUksWUFBWSxLQUFLLE9BQU8sVUFBVSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQ3hELElBQUksU0FBUyxLQUFLLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVB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QUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvbGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vcm9sZS1jYXJkL3JvbGUtY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgU2VjdXJpdHlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZWN1cml0eS1hZG1pbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuXHJcbmNvbnN0IG5hbWVPcmRlciA9IHsgcHJvcGVydHk6ICduYW1lJywgYXNjSWNvbjogJ21lbnUtYWxwaGFiZXQtYXNjJywgZGVzY0ljb246ICdtZW51LWFscGhhYmV0LWRlc2MnLCB0b29sdGlwOiAnT3JkZW5hciBwb3Igbm9tYnJlJyB9O1xyXG5jb25zdCBjdXN0b21lck9yZGVyID0geyBwcm9wZXJ0eTogJ2N1c3RvbWVyLm5hbWUnLCBhc2NJY29uOiAnbWVudS1jdXN0b21lci1hc2MnLCBkZXNjSWNvbjogJ21lbnUtY3VzdG9tZXItZGVzYycsIHRvb2x0aXA6ICdPcmRlbmFyIHBvciBjbGllbnRlJyB9O1xyXG5jb25zdCBsYXN0bmFtZSA9IHsgcHJvcGVydHk6ICdsYXN0bmFtZScsIGFzY0ljb246ICdtZW51LXVzZXItcmlnaHQnLCBkZXNjSWNvbjogJ21lbnUtdXNlci1sZWZ0JywgdG9vbHRpcDogJ09yZGVuYXIgcG9yIGFwZWxsaWRvJyB9XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItdXNlcnMtYWRtaW4nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi91c2Vycy1hZG1pbi5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4uL2Fzc2V0cy9mb250cy9zdHlsZS5jc3MnLCAnLi4vYXNzZXRzL3RoZW1lLmNzcycsICcuL3VzZXJzLWFkbWluLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJzQWRtaW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcblx0QElucHV0KCkgbGlzdFRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBsaXN0SWNvbjogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgbGlzdEl0ZW1JY29uOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBlbnRpdHk6IFwiVXNlclwiIHwgXCJDdXN0b21lclwiIHwgXCJSb2xlXCIgPSBcIlVzZXJcIjtcclxuXHRASW5wdXQoKSBlbnRpdHlOYW1lOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBlbnRpdHlBY3Rpb25zOiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGVudGl0eUZvcm06IEZvcm1GaWVsZFtdID0gW107XHJcblx0QElucHV0KCkgZW50aXR5TGlzdEVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBlbnRpdHlMaXN0OiBhbnlbXSA9IFtdO1xyXG5cdEBJbnB1dCgpIGVudGl0eVVpQ29tcG9uZW50OiBUeXBlPGFueT4gfCBudWxsID0gbnVsbDtcclxuXHRASW5wdXQoKSB1aUNvbXBvbmVudElucHV0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cdEBJbnB1dCgpIHNlYXJjaEZpbHRlcj86IEZ1bmN0aW9uO1xyXG5cdEBJbnB1dCgpIGN1c3RvbWVyTGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSByb2xlTGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSB1c2VyTGlzdDogYW55W10gPSBbXTtcclxuXHRASW5wdXQoKSBjdXN0b21lckxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgcm9sZUxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgdXNlckxpc3RFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgc2F2ZUVudGl0eUVuZHBvaW50OiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSB1c2Vyc0J5Q3VzdG9tZXJFbmRwb2ludDogc3RyaW5nID0gJyc7XHJcblx0QElucHV0KCkgcmVsb2FkU3ViamVjdD86IFN1YmplY3Q8Ym9vbGVhbj47XHJcblx0QElucHV0KCkgaXRlbVNlbGVjdGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcclxuXHRASW5wdXQoKSByZXNldEl0ZW1TZWxlY3RlZD86IFN1YmplY3Q8Ym9vbGVhbj47XHJcblx0cm9sZUNhcmQgPSBSb2xlQ2FyZENvbXBvbmVudDtcclxuXHRmb3JtQ29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfSA9IHt9O1xyXG5cdHNlbGVjdGVkSXRlbTogYW55ID0geyBpZDogbnVsbCB9O1xyXG5cdHNlbGVjdGVkVXNlcjogYW55O1xyXG5cdGxvYWRpbmdVc2VyUm9sZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRsb2FkaW5nVXNlckN1c3RvbWVyUm9sZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRnZXQgbWFpblRhYlRpdGxlKCkgeyByZXR1cm4gYEVkaXRhciAke3RoaXMubGlzdFRpdGxlfWAgfVxyXG5cdGdldCBmb3JtVGl0bGUoKSB7IHJldHVybiBgJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA/IFwiRWRpdGFyXCIgOiBcIkNyZWFyXCJ9ICR7dGhpcy5lbnRpdHlOYW1lfWAgfVxyXG5cdGdldCB1c2VyQXNzaWduZWRSb2xlcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyPy5yb2xlcyA/PyBbXSB9XHJcblx0Z2V0IHVzZXJDdXN0b21lckFzc2lnbmVkUm9sZXMoKSB7IHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcj8uY3VzdG9tZXJSb2xlcyA/PyBbXSB9XHJcblx0Z2V0IG1haW5MaXN0T3JkZXJQcm9wZXJ0aWVzKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLmVudGl0eSkge1xyXG5cdFx0XHRjYXNlICdVc2VyJzpcclxuXHRcdFx0XHRyZXR1cm4gW25hbWVPcmRlciwgY3VzdG9tZXJPcmRlciwgbGFzdG5hbWVdO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBbbmFtZU9yZGVyXTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5mb3JtQ29udHJvbHMgPSB0aGlzLmVudGl0eUZvcm0ucmVkdWNlKChvYmplY3QsIGZpZWxkKSA9PiAoeyAuLi5vYmplY3QsIFtmaWVsZC5uYW1lXTogbmV3IEZvcm1Db250cm9sPGFueT4obnVsbCkgfSksIHt9KVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zdWJqZWN0c1t0aGlzLmVudGl0eV0uc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKGl0ZW0pID0+IHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcblx0XHRcdFx0T2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29udHJvbHMpLmZvckVhY2goKFtuYW1lLCBjb250cm9sXSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGZpZWxkID0gdGhpcy5lbnRpdHlGb3JtLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpO1xyXG5cdFx0XHRcdFx0ZmllbGQ/LnJlcXVpcmVzTmV3VmFsdWUgPyBcclxuXHRcdFx0XHRcdGNvbnRyb2wuc2V0VmFsdWUobnVsbCkgOlxyXG5cdFx0XHRcdFx0Y29udHJvbC5wYXRjaFZhbHVlKGl0ZW1bbmFtZV0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0ZWRVc2VyU3ViamVjdC5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAodXNlcikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRVc2VyID0gdXNlcjtcclxuXHRcdFx0XHRpZiAodXNlci5pZCAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuZ2V0QXNzaWduZWRSb2xlcyh1c2VyLmlkLCBcIlVzZXJcIikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLmN1c3RvbWVyLmlkKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJDdXN0b21lclJvbGVzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5nZXRBc3NpZ25lZFJvbGVzKHVzZXIuY3VzdG9tZXIuaWQsIFwiQ3VzdG9tZXJcIikuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRuZXh0OiAoY3VzdG9tZXJSZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY3VzdG9tZXJSZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVXNlciA9IHsgLi4udXNlciwgcm9sZXM6IHJlc3BvbnNlLmxvYWQsIGN1c3RvbWVyUm9sZXM6IGN1c3RvbWVyUmVzcG9uc2UubG9hZCB9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3I6IF8gPT4gdGhpcy5sb2FkaW5nVXNlckN1c3RvbWVyUm9sZXMgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFVzZXIgPSB7IC4uLnVzZXIsIHJvbGVzOiByZXNwb25zZS5sb2FkIH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMubG9hZGluZ1VzZXJSb2xlcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nVXNlclJvbGVzID0gZmFsc2VcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMucmVzZXRJdGVtU2VsZWN0ZWQ/LnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6ICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnJlc2V0Rm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0c2VsZWN0SXRlbShuZXdJdGVtOiBhbnkpIHtcclxuXHRcdHN3aXRjaCAodGhpcy5lbnRpdHkpIHtcclxuXHRcdFx0Y2FzZSBcIlVzZXJcIjpcclxuXHRcdFx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNlbGVjdFVzZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJDdXN0b21lclwiOlxyXG5cdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2Uuc2VsZWN0Q3VzdG9tZXIobmV3SXRlbSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJSb2xlXCI6XHJcblx0XHRcdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5zZWxlY3RSb2xlKG5ld0l0ZW0pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBzZWN1cml0eUFkbWluU2VydmljZTogU2VjdXJpdHlBZG1pblNlcnZpY2UsIHByaXZhdGUgc25hY2tiYXI6IFNuYWNrYmFyU2VydmljZSkge1xyXG5cclxuXHR9XHJcblxyXG5cdHNhdmVJdGVtKCkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKFwiR3VhcmRhbmRvLi4uXCIsIDMwMDApO1xyXG5cdFx0bGV0IG5ld0luZm86IGFueSA9IHt9O1xyXG5cdFx0Zm9yIChsZXQga2V5IGluIHRoaXMuc2VsZWN0ZWRJdGVtKSB7XHJcblx0XHRcdGxldCBmaWVsZCA9IHRoaXMuZW50aXR5Rm9ybS5maW5kKHggPT4geC5uYW1lID09PSBrZXkpO1xyXG5cdFx0XHRpZiAoISAoZmllbGQ/LnJlcXVpcmVzTmV3VmFsdWUpKSB7XHJcblx0XHRcdFx0bmV3SW5mb1trZXldID0gdGhpcy5mb3JtQ29udHJvbHNba2V5XT8udmFsdWUgPz8gdGhpcy5zZWxlY3RlZEl0ZW1ba2V5XTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAobGV0IGtleSBpbiB0aGlzLmZvcm1Db250cm9scykge1xyXG5cdFx0XHRsZXQgZmllbGQgPSB0aGlzLmVudGl0eUZvcm0uZmluZCh4ID0+IHgubmFtZSA9PT0ga2V5KTtcclxuXHRcdFx0aWYgKGZpZWxkPy5yZXF1aXJlc05ld1ZhbHVlKSB7XHJcblx0XHRcdFx0aWYgKEJvb2xlYW4odGhpcy5mb3JtQ29udHJvbHNba2V5XS52YWx1ZSkpIHtuZXdJbmZvW2tleV0gPSB0aGlzLmZvcm1Db250cm9sc1trZXldLnZhbHVlO31cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRuZXdJbmZvW2tleV0gPSB0aGlzLmZvcm1Db250cm9sc1trZXldLnZhbHVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnNhdmVJdGVtKHRoaXMuc2F2ZUVudGl0eUVuZHBvaW50LCB7IC4uLm5ld0luZm8gfSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UucmVzcG9uc2VDb2RlID09PSAyMDApIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmVudGl0eSA9PT0gJ1JvbGUnKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VjdXJpdHlBZG1pblNlcnZpY2UuYXNzaWduUmVzb3VyY2UodGhpcy5zZWxlY3RlZEl0ZW0uaWQsIG5ld0luZm8ucmVzb3VyY2VzKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0XHRcdG5leHQ6IChhc3NpZ25SZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoYXNzaWduUmVzcG9uc2UucmVwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RJdGVtKHJlc3BvbnNlLmxvYWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKGAke3RoaXMuZW50aXR5TmFtZX0gJHt0aGlzLnNlbGVjdGVkSXRlbS5pZCA9PT0gbnVsbCA/ICdDcmVhZG8nIDogJ0d1YXJkYWRvJ31gKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0ocmVzcG9uc2UubG9hZCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuc25hY2tiYXIuc3VjY2VzcyhgJHt0aGlzLmVudGl0eU5hbWV9ICR7dGhpcy5zZWxlY3RlZEl0ZW0uaWQgPT09IG51bGwgPyAnQ3JlYWRvJyA6ICdHdWFyZGFkbyd9YCk7XHJcblx0XHRcdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlcnJvcik7XHJcblx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdIYSBvY3VycmlkbyB1biBlcnJvciBhbCBndWFyZGFyJyk7XHJcblx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTs7XHJcblx0fVxyXG5cclxuXHRyZXNldEZvcm0oZXZlbnQ/OiBhbnkpIHtcclxuXHRcdHRoaXMuc2VsZWN0SXRlbSh7IGlkOiBudWxsIH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1cnJlbnRDdXN0b21lclVzZXJzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLnVzZXJzID8/IFtdO1xyXG5cdH1cclxuXHJcblx0Z2V0IGN1c3RvbWVyVXNlcnNFbmRwb2ludCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnNlY3VyaXR5QWRtaW5TZXJ2aWNlLnVzZXJzQnlDdXN0b21lckVuZHBvaW50ICsgJz9jdXN0b21lcklkPScgKyB0aGlzLnNlbGVjdGVkSXRlbS5pZDtcclxuXHR9XHJcblxyXG5cdGdldCBjdXN0b21lclJvbGVzRW5kcG9pbnQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5yb2xlc0J5Q3VzdG9tZXJFbmRwb2ludCArICc/Y3VzdG9tZXJJZD0nICsgdGhpcy5zZWxlY3RlZEl0ZW0uaWQ7XHJcblx0fVxyXG5cclxuXHJcblx0Z2V0IHJvbGVVc2Vyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLmlkICE9PSBudWxsID8gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS51c2Vyc0J5Um9sZUVuZHBvaW50ICsgJz9yb2xlSWQ9JyArIHRoaXMuc2VsZWN0ZWRJdGVtLmlkIDogJyc7XHJcblx0fVxyXG5cclxuXHRnZXQgcm9sZUN1c3RvbWVyc0VuZHBvaW50KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLmlkICE9PSBudWxsID8gdGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5jdXN0b21lcnNCeVJvbGVFbmRwb2ludCArICc/cm9sZUlkPScgKyB0aGlzLnNlbGVjdGVkSXRlbS5pZCA6ICcnO1xyXG5cdH1cclxuXHJcblx0YXNzaWduQ3VzdG9tZXJUb1VzZXIoY3VzdG9tZXI6IGFueSkge1xyXG5cdFx0dGhpcy5zZWxlY3RJdGVtKHsgLi4udGhpcy5zZWxlY3RlZEl0ZW0sIGN1c3RvbWVyIH0pO1xyXG5cdH1cclxuXHJcblx0YXNzaWduVXNlcnNUb0N1c3RvbWVyKHVzZXJzOiBhbnlbXSkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZEl0ZW0gPSB7IC4uLnRoaXMuc2VsZWN0ZWRJdGVtLCB1c2VyczogdXNlcnMgfTtcclxuXHRcdHRoaXMuc2F2ZUl0ZW0oKTtcclxuXHR9XHJcblxyXG5cdGFzc2lnblVzZXJzVG9Sb2xlKHVzZXJzOiBhbnlbXSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25Sb2xlVXNlcnModGhpcy5zZWxlY3RlZEl0ZW0uaWQsIHVzZXJzKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXNwb25zZS5yZXNwb25zZUNvZGUgPT09IDIwMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci5zdWNjZXNzKCdVc3VhcmlvcyBhc2lnbmFkb3MnKTtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkU3ViamVjdD8ubmV4dCh0cnVlKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIHVzdWFyaW9zLicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3I6ICgpID0+IHRoaXMuc25hY2tiYXIud2FybmluZygnT2N1cnJpw7MgdW4gZXJyb3IgYWwgYXNpZ25hciB1c3Vhcmlvcy4nKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhc3NpZ25DdXN0b21lcnNUb1JvbGUoY3VzdG9tZXJzOiBhbnlbXSkge1xyXG5cdFx0dGhpcy5zbmFja2Jhci5pbmZvKCdHdWFyZGFuZG8uLi4nKVxyXG5cdFx0dGhpcy5zZWN1cml0eUFkbWluU2VydmljZS5hc3NpZ25Sb2xlQ3VzdG9tZXJzKHRoaXMuc2VsZWN0ZWRJdGVtLmlkLCBjdXN0b21lcnMpLnN1YnNjcmliZSh7XHJcblx0XHRcdG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLnJlc3BvbnNlQ29kZSA9PT0gMjAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLnN1Y2Nlc3MoJ0NsaWVudGVzIGFzaWduYWRvcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5yZWxvYWRTdWJqZWN0Py5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnNuYWNrYmFyLndhcm5pbmcoJ09jdXJyacOzIHVuIGVycm9yIGFsIGFzaWduYXIgY2xpZW50ZXMuJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKCkgPT4gdGhpcy5zbmFja2Jhci53YXJuaW5nKCdPY3VycmnDsyB1biBlcnJvciBhbCBhc2lnbmFyIGNsaWVudGVzLicpXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG59XHJcbiIsIjxsaWItaXRlbXMtdmlld2VyIFtsaXN0RW5kcG9pbnRdPVwiZW50aXR5TGlzdEVuZHBvaW50XCIgKHNlbGVjdEl0ZW0pPVwic2VsZWN0SXRlbSgkZXZlbnQpXCIgW3Nob3dPcmRlckJ1dHRvbnNdPVwidHJ1ZVwiXHJcblx0W3Nob3dDcmVhdGVCdXR0b25dPVwidHJ1ZVwiIFt1aUNvbXBvbmVudElucHV0c109XCJ1aUNvbXBvbmVudElucHV0c1wiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJlbnRpdHlVaUNvbXBvbmVudFwiXHJcblx0W2l0ZW1zXT1cImVudGl0eUxpc3RcIiBbdGl0bGVdPVwibGlzdFRpdGxlXCIgW2ljb25dPVwibGlzdEljb25cIiBbdGhlbWVdPVwidGhlbWVcIiBbaXRlbUljb25dPVwibGlzdEl0ZW1JY29uXCIgW3JlbG9hZFN1YmplY3RdPVwicmVsb2FkU3ViamVjdFwiIChhZGRDbGljayk9XCJyZXNldEZvcm0oJGV2ZW50KVwiIFtzZWxlY3RlZEl0ZW1dPVwic2VsZWN0ZWRJdGVtXCIgXHJcblx0W3NlYXJjaEZpbHRlcl09XCJzZWFyY2hGaWx0ZXJcIlxyXG5cdFtvcmRlclByb3BlcnRpZXNdPVwibWFpbkxpc3RPcmRlclByb3BlcnRpZXNcIlxyXG5cdD5cclxuPC9saWItaXRlbXMtdmlld2VyPlxyXG48ZGl2IFthdHRyLmRhdGEtdGhlbWVdPVwidGhlbWVcIiBjbGFzcz1cInRhYnMtY29udGFpbmVyXCI+XHJcblx0PG1hdC10YWItZ3JvdXA+XHJcblx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwibWFpblRhYlRpdGxlXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdDxsaWItZm9ybSBbZm9ybV09XCJlbnRpdHlGb3JtXCIgW2Zvcm1Db250cm9sc109XCJmb3JtQ29udHJvbHNcIiBbZm9ybUFjdGlvbnNdPVwiZW50aXR5QWN0aW9uc1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRbdGl0bGVdPVwiZm9ybVRpdGxlXCIgKHNhdmVDbGljayk9XCJzYXZlSXRlbSgpXCIgaWNvbj1cIm1lbnUtZWRpdFwiIFtlbnRpdHlPYmplY3RdPVwic2VsZWN0ZWRJdGVtXCI+PC9saWItZm9ybT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L21hdC10YWI+XHJcblxyXG5cdFx0PG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZW50aXR5XCI+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInVXNlcidcIj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ0NsaWVudGUnXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQtaGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0gPHNwYW4+Q2xpZW50ZXM8L3NwYW4+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDxkaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlSXRlbSgpXCI+R3VhcmRhcjwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgc2luZ2xlLWxpc3QtcGFkZGluZ1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtdmlld2VyIFtzaG93U2VsZWN0ZWRBdFRvcF09XCJ0cnVlXCIgW2xpc3RFbmRwb2ludF09XCJjdXN0b21lckxpc3RFbmRwb2ludFwiIFtzZWxlY3RlZEl0ZW1dPVwic2VsZWN0ZWRVc2VyPy5jdXN0b21lclwiIFtpdGVtc109XCJjdXN0b21lckxpc3RcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ0NsaWVudGUnXCIgKHNlbGVjdEl0ZW0pPVwiYXNzaWduQ3VzdG9tZXJUb1VzZXIoJGV2ZW50KVwiIFtzaG93UGFnaW5hdG9yXT1cImZhbHNlXCI+PC9saWItaXRlbXMtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ1JvbGVzJ1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy12aWV3ZXIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIiBbZXh0ZXJuYWxMb2FkaW5nXT1cImxvYWRpbmdVc2VyUm9sZXNcIiBbZW50aXR5VWlDb21wb25lbnRdPVwicm9sZUNhcmRcIiBbaXRlbXNdPVwidXNlckFzc2lnbmVkUm9sZXNcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGl0bGVdPVwiJ1JvbGVzIEFzaWduYWRvcyAoVXN1YXJpbyknXCIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIj48L2xpYi1pdGVtcy12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy12aWV3ZXIgW3Nob3dQYWdpbmF0b3JdPVwiZmFsc2VcIiBbZXh0ZXJuYWxMb2FkaW5nXT1cImxvYWRpbmdVc2VyQ3VzdG9tZXJSb2xlc1wiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJyb2xlQ2FyZFwiIFtpdGVtc109XCJ1c2VyQ3VzdG9tZXJBc3NpZ25lZFJvbGVzXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3RpdGxlXT1cIidSb2xlcyBBc2lnbmFkb3MgKENsaWVudGUpJ1wiICBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0N1c3RvbWVyJ1wiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInVXN1YXJpb3MnXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXNlbGVjdG9yIFtzZWxlY3Rpb25FbmRwb2ludF09XCJjdXN0b21lclVzZXJzRW5kcG9pbnRcIiBbbGlzdEVuZHBvaW50XT1cInVzZXJMaXN0RW5kcG9pbnRcIiBbaXRlbXNdPVwidXNlckxpc3RcIiBbbGlzdFRpdGxlXT1cIidVc3VhcmlvcyBEaXNwb25pYmxlcydcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc2VsZWN0aW9uVGl0bGVdPVwiJ1VzdWFyaW9zIFNlbGVjY2lvbmFkb3MnXCIgKHNhdmVDbGljayk9XCJhc3NpZ25Vc2Vyc1RvQ3VzdG9tZXIoJGV2ZW50KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHRcdDxtYXQtdGFiIFtsYWJlbF09XCInUm9sZXMnXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRlbnQgcGFkZGluZy1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bGliLWl0ZW1zLXZpZXdlciBbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyUm9sZXNFbmRwb2ludFwiIFtlbnRpdHlVaUNvbXBvbmVudF09XCJyb2xlQ2FyZFwiIFtpdGVtc109XCJyb2xlTGlzdFwiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0aXRsZV09XCInUm9sZXMgQXNpZ25hZG9zJ1wiICBbc2hvd1BhZ2luYXRvcl09XCJmYWxzZVwiPjwvbGliLWl0ZW1zLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L21hdC10YWI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1JvbGUnXCI+XHJcblx0XHRcdFx0PG1hdC10YWIgW2xhYmVsXT1cIidVc3VhcmlvcydcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudCBwYWRkaW5nLWNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxsaWItaXRlbXMtc2VsZWN0b3IgW2xpc3RFbmRwb2ludF09XCJ1c2VyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVVc2Vyc0VuZHBvaW50XCIgW2xpc3RUaXRsZV09XCInVXN1YXJpb3MgRGlzcG9uaWJsZXMnXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3NlbGVjdGlvblRpdGxlXT1cIidVc3VhcmlvcyBTZWxlY2Npb25hZG9zJ1wiIChzYXZlQ2xpY2spPVwiYXNzaWduVXNlcnNUb1JvbGUoJGV2ZW50KVwiPlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbGliLWl0ZW1zLXNlbGVjdG9yPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbWF0LXRhYj5cclxuXHRcdFx0XHQ8bWF0LXRhYiBbbGFiZWxdPVwiJ0NsaWVudGVzJ1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250ZW50IHBhZGRpbmctY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGxpYi1pdGVtcy1zZWxlY3RvciBbbGlzdEVuZHBvaW50XT1cImN1c3RvbWVyTGlzdEVuZHBvaW50XCIgW3NlbGVjdGlvbkVuZHBvaW50XT1cInJvbGVDdXN0b21lcnNFbmRwb2ludFwiIFtsaXN0VGl0bGVdPVwiJ0NsaWVudGVzIERpc3BvbmlibGVzJ1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzZWxlY3Rpb25UaXRsZV09XCInQ2xpZW50ZXMgU2VsZWNjaW9uYWRvcydcIiAoc2F2ZUNsaWNrKT1cImFzc2lnbkN1c3RvbWVyc1RvUm9sZSgkZXZlbnQpXCI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PC9saWItaXRlbXMtc2VsZWN0b3I+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9tYXQtdGFiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L21hdC10YWItZ3JvdXA+XHJcblxyXG48L2Rpdj4iXX0=
@@ -2256,14 +2256,14 @@ class UsersAdminComponent {
2256
2256
  }
2257
2257
  }
2258
2258
  ngOnInit() {
2259
- this.formControls = this.entityForm.reduce((object, field) => ({ ...object, [field.name]: new FormControl('') }), {});
2259
+ this.formControls = this.entityForm.reduce((object, field) => ({ ...object, [field.name]: new FormControl(null) }), {});
2260
2260
  this.securityAdminService.subjects[this.entity].subscribe({
2261
2261
  next: (item) => {
2262
2262
  this.selectedItem = item;
2263
2263
  Object.entries(this.formControls).forEach(([name, control]) => {
2264
2264
  let field = this.entityForm.find(x => x.name === name);
2265
2265
  field?.requiresNewValue ?
2266
- control.setValue('') :
2266
+ control.setValue(null) :
2267
2267
  control.patchValue(item[name]);
2268
2268
  });
2269
2269
  }
@@ -2352,6 +2352,12 @@ class UsersAdminComponent {
2352
2352
  saveItem() {
2353
2353
  this.snackbar.info("Guardando...", 3000);
2354
2354
  let newInfo = {};
2355
+ for (let key in this.selectedItem) {
2356
+ let field = this.entityForm.find(x => x.name === key);
2357
+ if (!(field?.requiresNewValue)) {
2358
+ newInfo[key] = this.formControls[key]?.value ?? this.selectedItem[key];
2359
+ }
2360
+ }
2355
2361
  for (let key in this.formControls) {
2356
2362
  let field = this.entityForm.find(x => x.name === key);
2357
2363
  if (field?.requiresNewValue) {
@@ -2363,7 +2369,7 @@ class UsersAdminComponent {
2363
2369
  newInfo[key] = this.formControls[key].value;
2364
2370
  }
2365
2371
  }
2366
- this.securityAdminService.saveItem(this.saveEntityEndpoint, { ...this.selectedItem, ...newInfo }).subscribe({
2372
+ this.securityAdminService.saveItem(this.saveEntityEndpoint, { ...newInfo }).subscribe({
2367
2373
  next: (response) => {
2368
2374
  if (response.responseCode === 200) {
2369
2375
  if (this.entity === 'Role') {