ets-fe-ng-sdk 17.0.63 → 17.0.64

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.
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, booleanAttribute, } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChild, booleanAttribute } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { ReplaySubject } from 'rxjs';
4
4
  import { InputProviders, InputSharedModules } from './input-shared.module';
@@ -116,10 +116,7 @@ export class InputBasicComponent extends InputBase {
116
116
  }
117
117
  if (this.min == 0 && this.max == 100)
118
118
  this.oType = 'percentage';
119
- if ((this.type == 'viewer' ||
120
- this.showValidation ||
121
- this.showValidationIcon ||
122
- this.label?.includes('code')) &&
119
+ if ((this.type == 'viewer' || this.showValidation || this.showValidationIcon || this.label?.includes('code')) &&
123
120
  (this.noFormat == null || this.noFormat == undefined))
124
121
  this.noFormat = true;
125
122
  // if (this.type == 'select' || this.type == 'autocomplete')
@@ -166,9 +163,7 @@ export class InputBasicComponent extends InputBase {
166
163
  }
167
164
  }
168
165
  if (this.maxLength && this.control?.value?.toString().length > this.maxLength)
169
- this.control.setValue(this.type == 'number'
170
- ? +this.control?.value?.toString().slice(0, this.maxLength)
171
- : this.control?.value?.toString().slice(0, this.maxLength));
166
+ this.control.setValue(this.type == 'number' ? +this.control?.value?.toString().slice(0, this.maxLength) : this.control?.value?.toString().slice(0, this.maxLength));
172
167
  this.__value = this.control.value;
173
168
  this.mchange.emit(this.control.value);
174
169
  // debugger
@@ -358,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
358
353
  type: ViewChild,
359
354
  args: ['matSelectTag']
360
355
  }] } });
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYmFzaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVduRCxNQUFNLE9BQU8sbUJBT1gsU0FBUSxTQUF3QztJQThCaEQsSUFBYSxRQUFRLENBQUMsQ0FBVTtRQUM5QixJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQWEsUUFBUSxDQUFDLENBQVU7UUFDOUIsSUFBSSxDQUFDO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUF1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QUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkNJbnB1dCwgSW5wdXRUeXBlLCBJVmFsaWRhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRQcm92aWRlcnMsIElucHV0U2hhcmVkTW9kdWxlcyB9IGZyb20gJy4vaW5wdXQtc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSAnLi9pbnB1dC1iYXNlLmNvbXBvbmVudCc7IFxuaW1wb3J0IHsgSU9wdGlvbiwgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LWJhc2ljLGFwcC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogSW5wdXRQcm92aWRlcnMsXG4gIGltcG9ydHM6IFtEYXRlSW5wdXRDb21wb25lbnQsIElucHV0U2hhcmVkTW9kdWxlc10sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0QmFzaWNDb21wb25lbnQ8XG4gICAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICAgIH0gPSBhbnksXG4gICAgVENvbnRyb2wgPSBhbnksXG4gICAgVE9wdGlvbiA9IGFueVxuICA+XG4gIGV4dGVuZHMgSW5wdXRCYXNlPFRGb3JtR3JvdXAsIFRDb250cm9sLCBUT3B0aW9uPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZztcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgYXV0b1BpY2tWYWx1ZUZpZWxkOiBib29sZWFuO1xuICBASW5wdXQoKSBjbGVhck9uRGlzYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGNsczogc3RyaW5nO1xuICBASW5wdXQoJ2lucHV0JykgaW5wOiBGQ0lucHV0O1xuICBASW5wdXQoKSBjb2xvcmVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlOyAvL29wdGlvbmFsIGNoZWNrZWQgb3B0aW9uIGZvciBjaGVja2JveGVzXG4gIEBJbnB1dCgpIGNvbnRleHREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGRlYnVnOiBib29sZWFuO1xuICBASW5wdXQoKSBkZWNpbWFsUG9pbnRzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVuZExhYmVsVG9vbHRpcDogc3RyaW5nO1xuICBASW5wdXQoKSBmaWxlczogRmlsZVtdO1xuICBASW5wdXQoKSBub0Zvcm1hdDogYm9vbGVhbjtcbiAgQElucHV0KCkgaGlkZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaGludDogc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBpZDogc3RyaW5nID0gJ2lkJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICBASW5wdXQoKSBpbnBDbDogc3RyaW5nID0gJ2NvbnRyb2wtYmctZ3JheSc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsTGluazogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbEZpZWxkOiBrZXlvZiBUT3B0aW9uO1xuICBASW5wdXQoKSBsYWJlbFR5cGU6IE9wdGlvbkxhYmVsVHlwZTsgLy91c2UgdGhpcyB0byBwaWNrIGEgcHJlc2V0IHZhbHVlIGxhYmVsIGdyb3VwIGZvciB0aGUgb3B0aW9uc1xuICBASW5wdXQoKSBsYmxDbDogc3RyaW5nID0gJzInO1xuICBASW5wdXQoKSBsaWdodDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heDogbnVtYmVyIHwgc3RyaW5nO1xuICBASW5wdXQoKSBzZXQgbWF4VG9kYXkodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLm1heCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgbWluVG9kYXkodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLm1pbiA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxuICBASW5wdXQoKSBtaW46IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgbWluTGVuZ3RoOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5pOiBib29sZWFuO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgb3B0aW9uRm9ybWF0dGVyOiAoaXRlbTogVE9wdGlvbikgPT4gc3RyaW5nO1xuICBASW5wdXQoKSBvcHRpb25zRnVuYzogKC4uLnZhbDogYW55KSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dFbXB0eU9wdGlvbj86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0xhYmVsOiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1ZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dWYWxpZGF0aW9uTXNnOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93VmFsaWRhdGlvbkljb246IGJvb2xlYW47XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzbWFsbDogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHN0YWNrZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzdWZmaXg6IHN0cmluZztcbiAgQElucHV0KCkgdGhlbWU6IElucHV0VGhlbWUgPSAxO1xuICBASW5wdXQoKSB0cmFuc2xhdGVPcHRpb25zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IGtleW9mIFRPcHRpb247IC8vdXNlIHRoaXMgdG8gY2hvb3NlIGEgZmllbGQgaW4gdGhlIG9wdGlvbiBmb3IgbW9kZWxpbmdcbiAgQElucHV0KCkgdm1zOiBJVmFsaWRhdGlvbk1lc3NhZ2VbXTtcbiAgQElucHV0KCkgeHNtYWxsOiBib29sZWFuO1xuICBAT3V0cHV0KCkgbWNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG1TZWxlY3RPcHRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRPcHRpb24+KCk7XG4gIEBPdXRwdXQoKSBtU2VsZWN0ZWRPcHRpb25MYWJlbCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbUNvbnRleHRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBvcHRpb25zOiBJT3B0aW9uW107XG4gIG9wdGlvbnMkID0gbmV3IFJlcGxheVN1YmplY3Q8SU9wdGlvbltdPigpO1xuICByYXdPcHRpb25zOiBhbnlbXTtcbiAgc2hvd1Bhc3N3b3JkOiBib29sZWFuO1xuICB0eXBlOiBJbnB1dFR5cGUgPSAndGV4dCc7XG4gIHZpZXdJbml0ZWQ6IGJvb2xlYW47XG4gIGZvcmNlUGF0Y2hlZDogYm9vbGVhbjtcbiAgc2VsZWN0aW9uT2JqZWN0OiBUT3B0aW9uO1xuICBvVHlwZTogSW5wdXRUeXBlO1xuICAvLyBsYWJlbFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgnc2V0Q3VycmVudERhdGUnKSBzZXQgX3NldEN1cnJlbnREYXRlKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUobmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pO1xuICB9XG4gIEBJbnB1dCgnZHVwbGljYXRlQ2hlY2snKSBkdXBsaWNhdGVDaGVjazogYm9vbGVhbjtcbiAgQElucHV0KCdkaXNhYmxlZCcpIHNldCBfZGlzYWJsZWQodjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRlYnVnKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLmRpc2FibGVkID0gdjtcbiAgICBpZiAodGhpcy5jb250cm9sPy5wYXJlbnQ/LmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKHYpIHtcbiAgICAgIGlmICh0aGlzLmNsZWFyT25EaXNhYmxlKSB0aGlzLmNvbnRyb2w/LnJlc2V0KCk7XG4gICAgICB0aGlzLmNvbnRyb2w/LmRpc2FibGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgfVxuICB9SW5wdXRUeXBlXG4gIEBJbnB1dCgpIGN1c3RvbVNlbGVjdENoYW5nZUFjdGlvbjogKFxuICAgIHZhbDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG9wdGlvbnM6IGFueVtdLFxuICAgIHJhd09wdGlvbnM6IGFueVtdXG4gICkgPT4gYW55O1xuICBASW5wdXQoJ29wdGlvbnMnKSBzZXQgX29wdGlvbnModjogVE9wdGlvbltdKSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICAvLyBjb25zb2xlLmxvZygnb3B0aW9ucycsIHYpO1xuICAgIGlmICh0aGlzLmRlYnVnKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLnJhd09wdGlvbnMgPSB2O1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuaVMub3B0aW9uc0Zvcm1hdHRlcihcbiAgICAgIHYsXG4gICAgICB0aGlzLnZhbHVlRmllbGQgYXMgc3RyaW5nLFxuICAgICAgdGhpcy5vcHRpb25Gb3JtYXR0ZXIsXG4gICAgICB0aGlzLmxhYmVsVHlwZSxcbiAgICAgIHRoaXMubGFiZWxGaWVsZCBhcyBzdHJpbmcsXG4gICAgICB0aGlzLmF1dG9QaWNrVmFsdWVGaWVsZFxuICAgICk7XG4gICAgLy8gZGVidWdnZXJcbiAgICB0aGlzLm9wdGlvbnMkLm5leHQodGhpcy5vcHRpb25zKTtcbiAgfVxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogSW5wdXRUeXBlKSB7XG4gICAgdGhpcy5vVHlwZSA9IHY7XG4gICAgaWYgKHYgPT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICB0aGlzLnR5cGUgPSAnbnVtYmVyJztcbiAgICAgIHRoaXMubWF4ID0gMTAwO1xuICAgICAgdGhpcy5taW4gPSAwO1xuICAgIH0gZWxzZSB0aGlzLnR5cGUgPSB2O1xuICAgIC8vIGlmICh0aGlzLmZvcmNlUGF0Y2hlZCkge1xuICAgIC8vICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XG4gICAgLy8gICB0aGlzLmZvcmNlUGF0Y2hlZCA9IGZhbHNlO1xuICAgIC8vIH1cbiAgICAvLyBpZiAodiA9PSAnY2hlY2tib3gnICYmICh0aGlzLnZhbHVlID09IG51bGwgfHwgdGhpcy52YWx1ZSA9PSB1bmRlZmluZWQpKSB7XG4gICAgLy8gICB0aGlzLmNvbnRyb2w/LnBhdGNoVmFsdWUoZmFsc2UpO1xuICAgIC8vICAgdGhpcy5mb3JjZVBhdGNoZWQgPSB0SW5wdXRUeXBlXG4gICAgLy8gfVxuICB9XG4gIF9fdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCdtdmFsdWUnKSBzZXQgX3ZhbHVlKHY6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHRoaXMuX192YWx1ZSA9IHY7XG4gIH1cbiAgQFZpZXdDaGlsZCgnbWF0U2VsZWN0VGFnJykgbWF0U2VsZWN0OiBNYXRTZWxlY3Q7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpUzogSW5wdXRTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dMYWJlbCA9PSBudWxsKSB0aGlzLnNob3dMYWJlbCA9ICEhdGhpcy5sYWJlbDtcbiAgICBpZiAodGhpcy5hdXRvUGlja1ZhbHVlRmllbGQpIHtcbiAgICAgIGlmICghdGhpcy5sYWJlbFR5cGUpIHRoaXMubGFiZWxUeXBlID0gJ2NkdCc7XG4gICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkgdGhpcy52YWx1ZUZpZWxkID0gJ2NvZGUnIGFzIGFueTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWluID09IDAgJiYgdGhpcy5tYXggPT0gMTAwKSB0aGlzLm9UeXBlID0gJ3BlcmNlbnRhZ2UnO1xuICAgIGlmIChcbiAgICAgICh0aGlzLnR5cGUgPT0gJ3ZpZXdlcicgfHxcbiAgICAgICAgdGhpcy5zaG93VmFsaWRhdGlvbiB8fFxuICAgICAgICB0aGlzLnNob3dWYWxpZGF0aW9uSWNvbiB8fFxuICAgICAgICB0aGlzLmxhYmVsPy5pbmNsdWRlcygnY29kZScpKSAmJlxuICAgICAgKHRoaXMubm9Gb3JtYXQgPT0gbnVsbCB8fCB0aGlzLm5vRm9ybWF0ID09IHVuZGVmaW5lZClcbiAgICApXG4gICAgICB0aGlzLm5vRm9ybWF0ID0gdHJ1ZTtcblxuICAgIC8vIGlmICh0aGlzLnR5cGUgPT0gJ3NlbGVjdCcgfHwgdGhpcy50eXBlID09ICdhdXRvY29tcGxldGUnKVxuICAgIC8vICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAvLyAgICAgdGhpcy5sYWJlbFZhbHVlID0gdGhpcy5vcHRpb25zLmZpbmQoKHgpID0+IHgudmFsdWUgPT0gcik/LmxhYmVsO1xuICAgIC8vICAgfSk7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5pZClcbiAgICAvLyBpZiAodGhpcy5kaXNhYmxlZCkgdGhpcy5fZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnZpZXdJbml0ZWQgPSB0cnVlO1xuICB9XG4gIGRpc2FibGVDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuY29udHJvbCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnRyb2w/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG4gIGdldCBpc1JlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkIHx8IHRoaXMuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG4gIGNoYW5nZShlOiB7IHRhcmdldDogeyBjaGVja2VkPzogYm9vbGVhbjsgdmFsdWU6IGFueSB9IH0gfCBFdmVudCkge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGxldCB2YWw7XG4gICAgaWYgKHRoaXMudHlwZSA9PSAnY2hlY2tib3gnKSB7XG4gICAgICB2YWwgPSBlLnRhcmdldD8uWydjaGVja2VkJ107XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZS50YXJnZXQ/LlsnY2hlY2tlZCddKTtcbiAgICB9IGVsc2UgdmFsID0gZS50YXJnZXQ/LlsndmFsdWUnXTtcbiAgICBpZiAodGhpcy50eXBlID09ICdudW1iZXInKSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJyAmJiAhdGhpcy5tYXgpIHtcbiAgICAgICAgdGhpcy5tYXggPSAxMDA7XG4gICAgICAgIHRoaXMubWluID0gMDtcbiAgICAgIH1cbiAgICAgIGlmICh2YWwgIT0gbnVsbCAmJiB2YWwgIT0gJycpIHtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGlmICh0aGlzLm1heCAmJiArdmFsID4gK3RoaXMubWF4KSB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5tYXgpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMubWluICE9IHVuZGVmaW5lZCAmJiArdmFsIDwgK3RoaXMubWluKVxuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLm1pbik7XG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWxQb2ludHMgIT0gdW5kZWZpbmVkICYmIHRoaXMuZGVjaW1hbFBvaW50cyAhPSBudWxsKVxuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgrKCt2YWwpLnRvRml4ZWQodGhpcy5kZWNpbWFsUG9pbnRzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLmNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKVxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFxuICAgICAgICB0aGlzLnR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgICA/ICt0aGlzLmNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpLnNsaWNlKDAsIHRoaXMubWF4TGVuZ3RoKVxuICAgICAgICAgIDogdGhpcy5jb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKS5zbGljZSgwLCB0aGlzLm1heExlbmd0aClcbiAgICAgICk7XG4gICAgdGhpcy5fX3ZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlO1xuICAgIHRoaXMubWNoYW5nZS5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSk7XG5cbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmICh0aGlzLnJhd09wdGlvbnMpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uT2JqZWN0ID0gdGhpcy5yYXdPcHRpb25zLmZpbmQoKHgpID0+IHhbdGhpcy52YWx1ZUZpZWxkXSA9PSB0aGlzLl9fdmFsdWUpO1xuICAgICAgdGhpcy5tU2VsZWN0T3B0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3Rpb25PYmplY3QpO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc2VsZWN0Jykge1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgdGhpcy5jb250cm9sLmZvcm1hdHRlZFZhbHVlID0gKDxNYXRPcHRpb24+dGhpcy5tYXRTZWxlY3Q/LnNlbGVjdGVkKT8udmlld1ZhbHVlO1xuICAgICAgICB0aGlzLm1TZWxlY3RlZE9wdGlvbkxhYmVsLmVtaXQoKDxNYXRPcHRpb24+dGhpcy5tYXRTZWxlY3Q/LnNlbGVjdGVkKT8udmlld1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY3VzdG9tU2VsZWN0Q2hhbmdlQWN0aW9uKVxuICAgICAgdGhpcy5tQ29udGV4dENoYW5nZS5lbWl0KFxuICAgICAgICB0aGlzLmN1c3RvbVNlbGVjdENoYW5nZUFjdGlvbih0aGlzLmNvbnRyb2wudmFsdWUsIHRoaXMub3B0aW9ucywgdGhpcy5yYXdPcHRpb25zKVxuICAgICAgKTtcbiAgICB0aGlzLmNvbnRyb2wubGFiZWxWYWx1ZSA9IHRoaXMubGFiZWw7XG4gIH1cbiAgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LnZhbGlkICYmIHRoaXMuY29udHJvbD8uZGlydHk7XG4gIH1cbiAgZ2V0IGludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uaW52YWxpZCAmJiB0aGlzLmNvbnRyb2w/LmRpcnR5O1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy52YWx1ZTtcbiAgfVxuICBnZXQgaGFzVmFsdWUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8udHJpbSgpO1xuICB9XG4gIGdldCBpbnZhbGlkQ2hlY2tib3goKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCAmJiB0aGlzLnR5cGUgPT0gJ2NoZWNrYm94JztcbiAgfVxuICB1cGxvYWQoZSkge1xuICAgIHRoaXMuZmlsZXMgPSBlLnRhcmdldC5maWxlcztcbiAgICB0aGlzLm1jaGFuZ2UuZW1pdChlKTtcbiAgfVxufVxudHlwZSBJbnB1dFRoZW1lID0gMSB8IDI7XG5leHBvcnQgdHlwZSBPcHRpb25MYWJlbFR5cGUgPVxuICB8ICdhY2QnXG4gIHwgJ2JuaydcbiAgfCAnY2NkJ1xuICB8ICdjZCdcbiAgfCAnY2R0J1xuICB8ICdjZidcbiAgfCAnY2cnXG4gIHwgJ2NsJ1xuICB8ICdjbWQnXG4gIHwgJ2NuJ1xuICB8ICdjdCdcbiAgfCAnY3UnXG4gIHwgJ2dkJ1xuICB8ICdoYSdcbiAgfCAnaWQnXG4gIHwgJ2lmJ1xuICB8ICdpZmwnXG4gIHwgJ2lsJ1xuICB8ICdpdCdcbiAgfCAnbWQnXG4gIHwgJ25hJ1xuICB8ICdwZCdcbiAgfCAncGVwJ1xuICB8ICdwYW0nXG4gIHwgJ25mJ1xuICB8ICd0ZCdcbiAgfCAndGl0bGUnXG4gIHwgJ3VkJ1xuICB8ICd1ZidcbiAgfCAndmwnXG4gIHwgJ3Z2JztcblxuZXhwb3J0IHsgSU9wdGlvbiB9IGZyb20gJy4vaW5wdXQuc2VydmljZSc7XG4iLCI8ZGl2IGNsYXNzPVwiICBjdXN0b20taW5wdXQgYWxpZ24taXRlbXMtY2VudGVyIHt7dHlwZX19IGd4LTFcIiBbZm9ybUdyb3VwXT1cImZvcm18dG9BbnlcIiBbbmdDbGFzc109XCJ7J2QtZmxleCc6IXN0YWNrZWR9XCI+XG4gIEBpZiAoc2hvd0xhYmVsKSB7XG4gIDxhcHAtaW5wdXQtbGFiZWwgW2NvbG9yZWRdPVwiY29sb3JlZFwiIFtmb3JtXT1cImZvcm1cIiBbaGludF09XCJoaW50XCIgW2lkXT1cImlkXCIgW2ludmFsaWRDaGVja2JveF09XCJpbnZhbGlkQ2hlY2tib3hcIlxuICAgIFtpc1JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIiBbbGFiZWxdPVwibGFiZWxcIiBbbGJsQ2xdPVwibGJsQ2xcIiBbbGlnaHRdPVwibGlnaHRcIiBbbWluaV09XCJtaW5pXCJcbiAgICBbbmdDbGFzc109XCJ7J3ctMTAwJzogc3RhY2tlZH1cIiBbaW5saW5lSGludF09XCJpbmxpbmVIaW50XCIgW3Nob3dSZXF1aXJlZFRhZ109XCJzaG93UmVxdWlyZWRUYWdcIiBbc2hvd0xhYmVsXT1cInNob3dMYWJlbFwiXG4gICAgW3NtYWxsXT1cInNtYWxsXCIgW3N0YWNrZWRdPVwic3RhY2tlZFwiIFt0aGVtZV09XCJ0aGVtZVwiIFt4c21hbGxdPVwieHNtYWxsXCI+XG4gIDwvYXBwLWlucHV0LWxhYmVsPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHt7aW5wdXRDb250Q2xhc3N9fSBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBpbnB1dC1jb250ZW50IHctMTAwXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnbXMtMic6IXN0YWNrZWQsc2hvd1ZhbGlkYXRpb25JY29uOnNob3dWYWxpZGF0aW9uIHx8IHNob3dWYWxpZGF0aW9uSWNvbixkb250Rm9ybWF0QXNJbnB1dH1cIj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNkYXRlPlxuICAgICAgICA8ZGF0ZS1pbnB1dCBbZGVidWddPVwiZGVidWdcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbaWRdPVwiaWRcIiBjbGFzcz1cInctMTAwXCIgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJjaGFuZ2UoJGV2ZW50KVwiIFt2YWx1ZV09XCJjb250cm9sPy52YWx1ZVwiIFtpbnBDbF09XCJpbnBDbFwiIFtjbHNdPVwiY2xzXCIgW21heF09XCJtYXhcIiBbbWluXT1cIm1pblwiXG4gICAgICAgICAgW3ZhbGlkXT1cInZhbGlkXCIgW2ludmFsaWRdPVwiaW52YWxpZFwiIFtzaG93VmFsaWRhdGlvbl09XCJzaG93VmFsaWRhdGlvblwiIFtjb250cm9sXT1cImNvbnRyb2xcIiAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIEBzd2l0Y2ggKHR5cGUpIHtcblxuICAgICAgPCEtLSBEQVRFIC0tPlxuICAgICAgQGNhc2UgKCdkYXRlJykge1xuXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gREFURVRJTUUtTE9DQUwgLS0+XG4gICAgICBAY2FzZSAoJ2RhdGV0aW1lLWxvY2FsJykge1xuXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gQ0hFQ0tCT1ggLS0+XG4gICAgICBAY2FzZSAoJ2NoZWNrYm94Jykge1xuXG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJ7eyBpZCB9fVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZXx0b0FueVwiIFthdHRyLmRhdGEtbm9mb3JtYXRdPVwibm9Gb3JtYXRcIlxuICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnXCIgY2xhc3M9XCJ7eyBpbnBDbCB9fSBkLWlubGluZS1ibG9jayBmb3JtLWNvbnRyb2wgd2lkdGgtdW5zZXRcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIiBbYXR0ci5pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIiAvPlxuXG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2NoZWNrZWRib3gnKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInt7IGlucENsIH19IGQtaW5saW5lLWJsb2NrIGZvcm0tY29udHJvbCB3aWR0aC11bnNldFwiIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnXCIgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIiAvPlxuXG4gICAgICB9XG4gICAgICA8IS0tIEZJTEUgLS0+XG4gICAgICBAY2FzZSAoJ2ZpbGUnKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPVwie3sgaWQgfX1cIiBbY2xhc3NdPVwiaW5wQ2wgfCBpbnB1dENsYXNzOiB2YWxpZDppbnZhbGlkOnNob3dWYWxpZGF0aW9uXCJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGxvYWQoJGV2ZW50KVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGVcIiAvPlxuXG4gICAgICB9XG4gICAgICA8IS0tIEZJTEUgQlVUVE9OLS0+XG4gICAgICBAY2FzZSAoJ2ZpbGVCdXR0b24nKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPVwie3sgaWQgfX1cIiBbY2xhc3NdPVwiaW5wQ2wgfCBpbnB1dENsYXNzOiB2YWxpZDppbnZhbGlkOnNob3dWYWxpZGF0aW9uXCJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGxvYWQoJGV2ZW50KVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGVcIiBoaWRkZW4gI2ZpbGUgLz5cbiAgICAgIDxhcHAtYnRuIGNsYXNzPVwidy0xMDBcIiAobWNsaWNrKT1cImZpbGUuY2xpY2soKVwiIGljb249XCJ1cGxvYWRcIiBbdHlwZV09XCJmaWxlcyA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknXCJcbiAgICAgICAgdGV4dD1cInt7cGxhY2Vob2xkZXJ8fGxhYmVsfHwnVXBsb2FkJ319XCI+XG4gICAgICA8L2FwcC1idG4+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gU0VMRUNUIC0tPlxuICAgICAgQGNhc2UgKCdzZWxlY3QnKSB7XG5cbiAgICAgIDwhLS0gW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAtLT5cbiAgICAgIDxtYXQtc2VsZWN0ICNtYXRTZWxlY3RUYWcgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7e25hbWV8dG9Bbnl9fVwiIGlkPVwie3sgaWQgfX1cIlxuICAgICAgICBjbGFzcz1cInt7Y2xzfX0ge3tpbnBDbCB8IGlucHV0Q2xhc3M6IHZhbGlkOmludmFsaWQ6c2hvd1ZhbGlkYXRpb259fVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlKHt0YXJnZXQ6JGV2ZW50fSlcIj5cbiAgICAgICAgQGlmIChzaG93RW1wdHlPcHRpb24pIHtcbiAgICAgICAgPG1hdC1vcHRpb24gc2VsZWN0ZWQgW3ZhbHVlXT1cIm51bGxcIiBjbGFzcz1cImVtcHR5LW9wdGlvblwiPlxuICAgICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChpdGVtIG9mIG9wdGlvbnM7IHRyYWNrIGlTLnRyYWNrQnlWYWx1ZSgkaW5kZXgsIGl0ZW0pKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiIFttYXRUb29sdGlwXT1cIml0ZW0ubGFiZWxcIiBbbWF0VG9vbHRpcERpc2FibGVkXT1cImVsZS5zY3JvbGxXaWR0aDw9ZWxlLm9mZnNldFdpZHRoXCIgI2VsZT5cbiAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCBhcHBUcmFuc2xhdGU6IHRyYW5zbGF0ZU9wdGlvbnMgfCBhc3luYyB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgfVxuICAgICAgPCEtLSBBVVRPQ09NUExFVEUgLS0+XG4gICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidhdXRvY29tcGxldGUnXCI+XG4gICAgICAgICAgPGFwcC1hdXRvY29tcGxldGUgW2Zvcm1dPVwiZm9ybVwiIFtsYWJlbF09XCJsYWJlbFwiIFtsYWJlbEZpZWxkXT1cImxhYmVsRmllbGRcIlxuICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJhdXRvUGlja1ZhbHVlRmllbGRcIiBbbGFiZWxUeXBlXT1cImxhYmVsVHlwZVwiXG4gICAgICAgICAgICBbb3B0aW9uc0Z1bmNdPVwib3B0aW9uc0Z1bmNcIiBbbmFtZV09XCJuYW1lfHRvQW55XCIgW29wdGlvbkZvcm1hdHRlcl09XCJvcHRpb25Gb3JtYXR0ZXJcIlxuICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbaGludF09XCJoaW50XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgPCEtLSBURVhUQVJFQSAtLT5cbiAgICAgIEBjYXNlICgndGV4dGFyZWEnKSB7XG5cbiAgICAgIDx0ZXh0YXJlYSBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWV8dG9BbnlcIiBpZD1cInt7IGlkIH19XCIgW2NsYXNzXT1cImlucENsIHwgaW5wdXRDbGFzczogdmFsaWQ6aW52YWxpZDpzaG93VmFsaWRhdGlvblwiXG4gICAgICAgIFthdHRyLmRhdGEtbm9mb3JtYXRdPVwibm9Gb3JtYXRcIiBbcm93c109XCJ0ZXh0YXJlYVJvd3NcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCI+PC90ZXh0YXJlYT5cblxuICAgICAgfVxuICAgICAgPCEtLSBSYWRpbyAtLT5cbiAgICAgIEBjYXNlICgncmFkaW8nKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWV8dG9BbnlcIiBpZD1cInt7IGlkIH19XCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmRhdGEtbm9mb3JtYXRdPVwibm9Gb3JtYXRcIiBbdmFsdWVdPVwiX192YWx1ZVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gVmlld2VyIC0tPlxuICAgICAgQGNhc2UgKCd2aWV3ZXInKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwie3sgaWQgfX1cIiBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCIgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiXG4gICAgICAgIFtjbGFzc109XCJpbnBDbCB8IGlucHV0Q2xhc3M6IHZhbGlkOmludmFsaWQ6c2hvd1ZhbGlkYXRpb25cIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gUEFTU1dPUkQgLS0+XG4gICAgICBAY2FzZSAoJ3Bhc3N3b3JkJykge1xuXG4gICAgICA8aW5wdXQgdHlwZT1cInt7IHNob3dQYXNzd29yZCA/ICd0ZXh0JyA6ICdwYXNzd29yZCcgfX1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWV8dG9BbnlcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCIgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiIGlkPVwie3sgaWQgfX1cIlxuICAgICAgICBbY2xhc3NdPVwiaW5wQ2wgfCBpbnB1dENsYXNzOiB2YWxpZDppbnZhbGlkOnNob3dWYWxpZGF0aW9uXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW21heF09XCJtYXhcIiBbbWluXT1cIm1pblwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIiB2YWx1ZT1cInt7IF9fdmFsdWUgfX1cIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkLWljb25zIHBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiPlxuICAgICAgICBAaWYgKHNob3dQYXNzd29yZCkge1xuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV5ZS1zbGFzaFwiPjwvaT5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCFzaG93UGFzc3dvcmQpIHtcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leWVcIj48L2k+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB9XG4gICAgICA8IS0tIERFRkFVTFQgLS0+XG4gICAgICBAZGVmYXVsdCB7XG5cblxuICAgICAgPGRpdiBbY2xhc3NdPVwiaW5wQ2wgfCBpbnB1dENsYXNzOiB2YWxpZDppbnZhbGlkOnNob3dWYWxpZGF0aW9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydoYXMtcHJlZml4JzogISFwcmVmaXgsZGlzYWJsZWQ6cmVhZG9ubHl8fGNvbnRyb2w/LmRpc2FibGVkfVwiPlxuICAgICAgICBAaWYgKHByZWZpeCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicHJlZml4LXZhbFwiICNwcmVmaXhWYWw+XG4gICAgICAgICAge3twcmVmaXh9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8aW5wdXQgdHlwZT1cInt7IHR5cGUgfX1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWV8dG9BbnlcIiBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyfX1cIiBpZD1cInt7IGlkIH19XCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlbGUuaW5uZXJUZXh0XCIgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGg8PWVsZS5vZmZzZXRXaWR0aFwiICNlbGVcbiAgICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnXCIgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiIFthdHRyLmRhdGEtb3R5cGVdPVwib1R5cGVcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFttYXhdPVwibWF4XCIgW21pbl09XCJtaW5cIiBbcmVhZG9ubHldPVwicmVhZG9ubHkgXCIgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiIHZhbHVlPVwie3sgX192YWx1ZSB9fVwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKGNvbnRyb2w/LmRpcnR5ICYmIChzaG93VmFsaWRhdGlvbiB8fCBzaG93VmFsaWRhdGlvbkljb24pKSB7XG5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyB2YWxpZDogY29udHJvbD8udmFsaWQgfVwiIGNsYXNzPVwidmFsaWRpdHktaWNvblwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgcGVuZGluZzogY29udHJvbD8ucGVuZGluZyB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBmYS1zcGluXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgaW52YWxpZDogY29udHJvbD8uaW52YWxpZCB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+XG4gICAgICA8L2Rpdj5cblxuICAgICAgfVxuICAgICAgPCEtLSA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJpbnB1dFwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwie3tpbnAudHlwZX19XCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImlucC5mb3JtQ29udHJvbFwiPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCB2YWxpZGF0aW9uIG9mIGlucC52bXNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsaWRhdGlvbnx2YWxpZGF0b3I6aW5wLmZvcm1Db250cm9sOmlucC5mb3JtQ29udHJvbD8udmFsdWVcIj5cbiAgICAgICAgICAgIHt7dmFsaWRhdGlvbi5tZXNzYWdlfHZhbGlkYXRpb25Nc2c6aW5wLnByZWZpeDppbnAuc3VmZml4fX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPiAtLT5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGVuZExhYmVsKSB7XG4gICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHRleHQtcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cImlTLmxvZyhmb3JtKVwiIFttYXRUb29sdGlwXT1cImVuZExhYmVsVG9vbHRpcHxhcHBUcmFuc2xhdGV8YXN5bmNcIj5cbiAgICAgIHt7ZW5kTGFiZWx8YXBwVHJhbnNsYXRlfGFzeW5jfX1cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5AaWYgKHNob3dWYWxpZGF0aW9uTXNnKSB7XG48YXBwLXZhbGlkYXRpb24tbWVzc2FnZSBbbGFiZWxdPVwibGFiZWxcIiBbY29udHJvbF09XCJjb250cm9sXCIgLz5cbn0iXX0=
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYmFzaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQW1CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV25ELE1BQU0sT0FBTyxtQkFPWCxTQUFRLFNBQXdDO0lBOEJoRCxJQUFhLFFBQVEsQ0FBQyxDQUFVO1FBQzlCLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsSUFBYSxRQUFRLENBQUMsQ0FBVTtRQUM5QixJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQXVD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QUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQ0lucHV0LCBJbnB1dFR5cGUsIElWYWxpZGF0aW9uTWVzc2FnZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFByb3ZpZGVycywgSW5wdXRTaGFyZWRNb2R1bGVzIH0gZnJvbSAnLi9pbnB1dC1zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2UgfSBmcm9tICcuL2lucHV0LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IElPcHRpb24sIElucHV0U2VydmljZSB9IGZyb20gJy4vaW5wdXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC1iYXNpYyxhcHAtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IElucHV0UHJvdmlkZXJzLFxuICBpbXBvcnRzOiBbRGF0ZUlucHV0Q29tcG9uZW50LCBJbnB1dFNoYXJlZE1vZHVsZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEJhc2ljQ29tcG9uZW50PFxuICAgIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgICB9ID0gYW55LFxuICAgIFRDb250cm9sID0gYW55LFxuICAgIFRPcHRpb24gPSBhbnksXG4gID5cbiAgZXh0ZW5kcyBJbnB1dEJhc2U8VEZvcm1Hcm91cCwgVENvbnRyb2wsIFRPcHRpb24+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhdXRvUGlja1ZhbHVlRmllbGQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsZWFyT25EaXNhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY2xzOiBzdHJpbmc7XG4gIEBJbnB1dCgnaW5wdXQnKSBpbnA6IEZDSW5wdXQ7XG4gIEBJbnB1dCgpIGNvbG9yZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7IC8vb3B0aW9uYWwgY2hlY2tlZCBvcHRpb24gZm9yIGNoZWNrYm94ZXNcbiAgQElucHV0KCkgY29udGV4dERhdGE6IGFueTtcbiAgQElucHV0KCkgZGVidWc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlY2ltYWxQb2ludHM6IG51bWJlcjtcbiAgQElucHV0KCkgZW5kTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZW5kTGFiZWxUb29sdGlwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbGVzOiBGaWxlW107XG4gIEBJbnB1dCgpIG5vRm9ybWF0OiBib29sZWFuO1xuICBASW5wdXQoKSBoaWRlOiBib29sZWFuO1xuICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIEBJbnB1dCgpIGlucENsOiBzdHJpbmcgPSAnY29udHJvbC1iZy1ncmF5JztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxMaW5rOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsRmllbGQ6IGtleW9mIFRPcHRpb247XG4gIEBJbnB1dCgpIGxhYmVsVHlwZTogT3B0aW9uTGFiZWxUeXBlOyAvL3VzZSB0aGlzIHRvIHBpY2sgYSBwcmVzZXQgdmFsdWUgbGFiZWwgZ3JvdXAgZm9yIHRoZSBvcHRpb25zXG4gIEBJbnB1dCgpIGxibENsOiBzdHJpbmcgPSAnMic7XG4gIEBJbnB1dCgpIGxpZ2h0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgbWF4OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBtYXhUb2RheSh2OiBib29sZWFuKSB7XG4gICAgaWYgKHYpIHRoaXMubWF4ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBtaW5Ub2RheSh2OiBib29sZWFuKSB7XG4gICAgaWYgKHYpIHRoaXMubWluID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICB9XG4gIEBJbnB1dCgpIG1pbjogbnVtYmVyIHwgc3RyaW5nO1xuICBASW5wdXQoKSBtaW5MZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbmk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xuICBASW5wdXQoKSBvcHRpb25Gb3JtYXR0ZXI6IChpdGVtOiBUT3B0aW9uKSA9PiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wdGlvbnNGdW5jOiAoLi4udmFsOiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+O1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBwcmVmaXg6IHN0cmluZztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlYWRvbmx5OiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0VtcHR5T3B0aW9uPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93TGFiZWw6IGJvb2xlYW47XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93VmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1ZhbGlkYXRpb25Nc2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dWYWxpZGF0aW9uSWNvbjogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNtYWxsOiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc3RhY2tlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nO1xuICBASW5wdXQoKSB0aGVtZTogSW5wdXRUaGVtZSA9IDE7XG4gIEBJbnB1dCgpIHRyYW5zbGF0ZU9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZDoga2V5b2YgVE9wdGlvbjsgLy91c2UgdGhpcyB0byBjaG9vc2UgYSBmaWVsZCBpbiB0aGUgb3B0aW9uIGZvciBtb2RlbGluZ1xuICBASW5wdXQoKSB2bXM6IElWYWxpZGF0aW9uTWVzc2FnZVtdO1xuICBASW5wdXQoKSB4c21hbGw6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBtY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbVNlbGVjdE9wdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VE9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIG1TZWxlY3RlZE9wdGlvbkxhYmVsID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBtQ29udGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIG9wdGlvbnM6IElPcHRpb25bXTtcbiAgb3B0aW9ucyQgPSBuZXcgUmVwbGF5U3ViamVjdDxJT3B0aW9uW10+KCk7XG4gIHJhd09wdGlvbnM6IGFueVtdO1xuICBzaG93UGFzc3dvcmQ6IGJvb2xlYW47XG4gIHR5cGU6IElucHV0VHlwZSA9ICd0ZXh0JztcbiAgdmlld0luaXRlZDogYm9vbGVhbjtcbiAgZm9yY2VQYXRjaGVkOiBib29sZWFuO1xuICBzZWxlY3Rpb25PYmplY3Q6IFRPcHRpb247XG4gIG9UeXBlOiBJbnB1dFR5cGU7XG4gIC8vIGxhYmVsVmFsdWU6IHN0cmluZztcbiAgQElucHV0KCdzZXRDdXJyZW50RGF0ZScpIHNldCBfc2V0Q3VycmVudERhdGUodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSk7XG4gIH1cbiAgQElucHV0KCdkdXBsaWNhdGVDaGVjaycpIGR1cGxpY2F0ZUNoZWNrOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc2FibGVkJykgc2V0IF9kaXNhYmxlZCh2OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGRlYnVnZ2VyO1xuICAgIHRoaXMuZGlzYWJsZWQgPSB2O1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnBhcmVudD8uZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAodikge1xuICAgICAgaWYgKHRoaXMuY2xlYXJPbkRpc2FibGUpIHRoaXMuY29udHJvbD8ucmVzZXQoKTtcbiAgICAgIHRoaXMuY29udHJvbD8uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sPy5lbmFibGUoKTtcbiAgICB9XG4gIH1cbiAgSW5wdXRUeXBlO1xuICBASW5wdXQoKSBjdXN0b21TZWxlY3RDaGFuZ2VBY3Rpb246ICh2YWw6IHN0cmluZyB8IG51bWJlciwgb3B0aW9uczogYW55W10sIHJhd09wdGlvbnM6IGFueVtdKSA9PiBhbnk7XG4gIEBJbnB1dCgnb3B0aW9ucycpIHNldCBfb3B0aW9ucyh2OiBUT3B0aW9uW10gfCBudWxsKSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICAvLyBjb25zb2xlLmxvZygnb3B0aW9ucycsIHYpO1xuICAgIGlmICh0aGlzLmRlYnVnKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLnJhd09wdGlvbnMgPSB2O1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuaVMub3B0aW9uc0Zvcm1hdHRlcihcbiAgICAgIHYsXG4gICAgICB0aGlzLnZhbHVlRmllbGQgYXMgc3RyaW5nLFxuICAgICAgdGhpcy5vcHRpb25Gb3JtYXR0ZXIsXG4gICAgICB0aGlzLmxhYmVsVHlwZSxcbiAgICAgIHRoaXMubGFiZWxGaWVsZCBhcyBzdHJpbmcsXG4gICAgICB0aGlzLmF1dG9QaWNrVmFsdWVGaWVsZCxcbiAgICApO1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgdGhpcy5vcHRpb25zJC5uZXh0KHRoaXMub3B0aW9ucyk7XG4gIH1cbiAgQElucHV0KCd0eXBlJykgc2V0IF90eXBlKHY6IElucHV0VHlwZSkge1xuICAgIHRoaXMub1R5cGUgPSB2O1xuICAgIGlmICh2ID09ICdwZXJjZW50YWdlJykge1xuICAgICAgdGhpcy50eXBlID0gJ251bWJlcic7XG4gICAgICB0aGlzLm1heCA9IDEwMDtcbiAgICAgIHRoaXMubWluID0gMDtcbiAgICB9IGVsc2UgdGhpcy50eXBlID0gdjtcbiAgICAvLyBpZiAodGhpcy5mb3JjZVBhdGNoZWQpIHtcbiAgICAvLyAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xuICAgIC8vICAgdGhpcy5mb3JjZVBhdGNoZWQgPSBmYWxzZTtcbiAgICAvLyB9XG4gICAgLy8gaWYgKHYgPT0gJ2NoZWNrYm94JyAmJiAodGhpcy52YWx1ZSA9PSBudWxsIHx8IHRoaXMudmFsdWUgPT0gdW5kZWZpbmVkKSkge1xuICAgIC8vICAgdGhpcy5jb250cm9sPy5wYXRjaFZhbHVlKGZhbHNlKTtcbiAgICAvLyAgIHRoaXMuZm9yY2VQYXRjaGVkID0gdElucHV0VHlwZVxuICAgIC8vIH1cbiAgfVxuICBfX3ZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgnbXZhbHVlJykgc2V0IF92YWx1ZSh2OiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9fdmFsdWUgPSB2O1xuICB9XG4gIEBWaWV3Q2hpbGQoJ21hdFNlbGVjdFRhZycpIG1hdFNlbGVjdDogTWF0U2VsZWN0O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaVM6IElucHV0U2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93TGFiZWwgPT0gbnVsbCkgdGhpcy5zaG93TGFiZWwgPSAhIXRoaXMubGFiZWw7XG4gICAgaWYgKHRoaXMuYXV0b1BpY2tWYWx1ZUZpZWxkKSB7XG4gICAgICBpZiAoIXRoaXMubGFiZWxUeXBlKSB0aGlzLmxhYmVsVHlwZSA9ICdjZHQnO1xuICAgICAgaWYgKCF0aGlzLnZhbHVlRmllbGQpIHRoaXMudmFsdWVGaWVsZCA9ICdjb2RlJyBhcyBhbnk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1pbiA9PSAwICYmIHRoaXMubWF4ID09IDEwMCkgdGhpcy5vVHlwZSA9ICdwZXJjZW50YWdlJztcbiAgICBpZiAoXG4gICAgICAodGhpcy50eXBlID09ICd2aWV3ZXInIHx8IHRoaXMuc2hvd1ZhbGlkYXRpb24gfHwgdGhpcy5zaG93VmFsaWRhdGlvbkljb24gfHwgdGhpcy5sYWJlbD8uaW5jbHVkZXMoJ2NvZGUnKSkgJiZcbiAgICAgICh0aGlzLm5vRm9ybWF0ID09IG51bGwgfHwgdGhpcy5ub0Zvcm1hdCA9PSB1bmRlZmluZWQpXG4gICAgKVxuICAgICAgdGhpcy5ub0Zvcm1hdCA9IHRydWU7XG5cbiAgICAvLyBpZiAodGhpcy50eXBlID09ICdzZWxlY3QnIHx8IHRoaXMudHlwZSA9PSAnYXV0b2NvbXBsZXRlJylcbiAgICAvLyAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgLy8gICAgIHRoaXMubGFiZWxWYWx1ZSA9IHRoaXMub3B0aW9ucy5maW5kKCh4KSA9PiB4LnZhbHVlID09IHIpPy5sYWJlbDtcbiAgICAvLyAgIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuaWQpXG4gICAgLy8gaWYgKHRoaXMuZGlzYWJsZWQpIHRoaXMuX2Rpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy52aWV3SW5pdGVkID0gdHJ1ZTtcbiAgfVxuICBkaXNhYmxlQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmNvbnRyb2wpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuICBnZXQgaXNSZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZCB8fCB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuICBjaGFuZ2UoZTogeyB0YXJnZXQ6IHsgY2hlY2tlZD86IGJvb2xlYW47IHZhbHVlOiBhbnkgfSB9IHwgRXZlbnQpIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBsZXQgdmFsO1xuICAgIGlmICh0aGlzLnR5cGUgPT0gJ2NoZWNrYm94Jykge1xuICAgICAgdmFsID0gZS50YXJnZXQ/LlsnY2hlY2tlZCddO1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGUudGFyZ2V0Py5bJ2NoZWNrZWQnXSk7XG4gICAgfSBlbHNlIHZhbCA9IGUudGFyZ2V0Py5bJ3ZhbHVlJ107XG4gICAgaWYgKHRoaXMudHlwZSA9PSAnbnVtYmVyJykge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScgJiYgIXRoaXMubWF4KSB7XG4gICAgICAgIHRoaXMubWF4ID0gMTAwO1xuICAgICAgICB0aGlzLm1pbiA9IDA7XG4gICAgICB9XG4gICAgICBpZiAodmFsICE9IG51bGwgJiYgdmFsICE9ICcnKSB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBpZiAodGhpcy5tYXggJiYgK3ZhbCA+ICt0aGlzLm1heCkgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMubWF4KTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLm1pbiAhPSB1bmRlZmluZWQgJiYgK3ZhbCA8ICt0aGlzLm1pbikgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMubWluKTtcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbFBvaW50cyAhPSB1bmRlZmluZWQgJiYgdGhpcy5kZWNpbWFsUG9pbnRzICE9IG51bGwpIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgrKCt2YWwpLnRvRml4ZWQodGhpcy5kZWNpbWFsUG9pbnRzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLmNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKVxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFxuICAgICAgICB0aGlzLnR5cGUgPT0gJ251bWJlcicgPyArdGhpcy5jb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKS5zbGljZSgwLCB0aGlzLm1heExlbmd0aCkgOiB0aGlzLmNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpLnNsaWNlKDAsIHRoaXMubWF4TGVuZ3RoKSxcbiAgICAgICk7XG4gICAgdGhpcy5fX3ZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlO1xuICAgIHRoaXMubWNoYW5nZS5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSk7XG5cbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmICh0aGlzLnJhd09wdGlvbnMpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uT2JqZWN0ID0gdGhpcy5yYXdPcHRpb25zLmZpbmQoKHgpID0+IHhbdGhpcy52YWx1ZUZpZWxkXSA9PSB0aGlzLl9fdmFsdWUpO1xuICAgICAgdGhpcy5tU2VsZWN0T3B0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3Rpb25PYmplY3QpO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnc2VsZWN0Jykge1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgdGhpcy5jb250cm9sLmZvcm1hdHRlZFZhbHVlID0gKDxNYXRPcHRpb24+dGhpcy5tYXRTZWxlY3Q/LnNlbGVjdGVkKT8udmlld1ZhbHVlO1xuICAgICAgICB0aGlzLm1TZWxlY3RlZE9wdGlvbkxhYmVsLmVtaXQoKDxNYXRPcHRpb24+dGhpcy5tYXRTZWxlY3Q/LnNlbGVjdGVkKT8udmlld1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY3VzdG9tU2VsZWN0Q2hhbmdlQWN0aW9uKSB0aGlzLm1Db250ZXh0Q2hhbmdlLmVtaXQodGhpcy5jdXN0b21TZWxlY3RDaGFuZ2VBY3Rpb24odGhpcy5jb250cm9sLnZhbHVlLCB0aGlzLm9wdGlvbnMsIHRoaXMucmF3T3B0aW9ucykpO1xuICAgIHRoaXMuY29udHJvbC5sYWJlbFZhbHVlID0gdGhpcy5sYWJlbDtcbiAgfVxuICBnZXQgdmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8udmFsaWQgJiYgdGhpcy5jb250cm9sPy5kaXJ0eTtcbiAgfVxuICBnZXQgaW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5pbnZhbGlkICYmIHRoaXMuY29udHJvbD8uZGlydHk7XG4gIH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LnZhbHVlO1xuICB9XG4gIGdldCBoYXNWYWx1ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLmNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy50cmltKCk7XG4gIH1cbiAgZ2V0IGludmFsaWRDaGVja2JveCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkICYmIHRoaXMudHlwZSA9PSAnY2hlY2tib3gnO1xuICB9XG4gIHVwbG9hZChlKSB7XG4gICAgdGhpcy5maWxlcyA9IGUudGFyZ2V0LmZpbGVzO1xuICAgIHRoaXMubWNoYW5nZS5lbWl0KGUpO1xuICB9XG59XG50eXBlIElucHV0VGhlbWUgPSAxIHwgMjtcbmV4cG9ydCB0eXBlIE9wdGlvbkxhYmVsVHlwZSA9XG4gIHwgJ2FjZCdcbiAgfCAnYm5rJ1xuICB8ICdjY2QnXG4gIHwgJ2NkJ1xuICB8ICdjZHQnXG4gIHwgJ2NmJ1xuICB8ICdjZydcbiAgfCAnY2wnXG4gIHwgJ2NtZCdcbiAgfCAnY24nXG4gIHwgJ2N0J1xuICB8ICdjdSdcbiAgfCAnZ2QnXG4gIHwgJ2hhJ1xuICB8ICdpZCdcbiAgfCAnaWYnXG4gIHwgJ2lmbCdcbiAgfCAnaWwnXG4gIHwgJ2l0J1xuICB8ICdtZCdcbiAgfCAnbmEnXG4gIHwgJ3BkJ1xuICB8ICdwZXAnXG4gIHwgJ3BhbSdcbiAgfCAnbmYnXG4gIHwgJ3RkJ1xuICB8ICd0aXRsZSdcbiAgfCAndWQnXG4gIHwgJ3VmJ1xuICB8ICd2bCdcbiAgfCAndnYnO1xuXG5leHBvcnQgeyBJT3B0aW9uIH0gZnJvbSAnLi9pbnB1dC5zZXJ2aWNlJztcbiIsIjxkaXYgY2xhc3M9XCIgIGN1c3RvbS1pbnB1dCBhbGlnbi1pdGVtcy1jZW50ZXIge3t0eXBlfX0gZ3gtMVwiIFtmb3JtR3JvdXBdPVwiZm9ybXx0b0FueVwiIFtuZ0NsYXNzXT1cInsnZC1mbGV4Jzohc3RhY2tlZH1cIj5cbiAgQGlmIChzaG93TGFiZWwpIHtcbiAgPGFwcC1pbnB1dC1sYWJlbCBbY29sb3JlZF09XCJjb2xvcmVkXCIgW2Zvcm1dPVwiZm9ybVwiIFtoaW50XT1cImhpbnRcIiBbaWRdPVwiaWRcIiBbaW52YWxpZENoZWNrYm94XT1cImludmFsaWRDaGVja2JveFwiXG4gICAgW2lzUmVxdWlyZWRdPVwiaXNSZXF1aXJlZFwiIFtsYWJlbF09XCJsYWJlbFwiIFtsYmxDbF09XCJsYmxDbFwiIFtsaWdodF09XCJsaWdodFwiIFttaW5pXT1cIm1pbmlcIlxuICAgIFtuZ0NsYXNzXT1cInsndy0xMDAnOiBzdGFja2VkfVwiIFtpbmxpbmVIaW50XT1cImlubGluZUhpbnRcIiBbc2hvd1JlcXVpcmVkVGFnXT1cInNob3dSZXF1aXJlZFRhZ1wiIFtzaG93TGFiZWxdPVwic2hvd0xhYmVsXCJcbiAgICBbc21hbGxdPVwic21hbGxcIiBbc3RhY2tlZF09XCJzdGFja2VkXCIgW3RoZW1lXT1cInRoZW1lXCIgW3hzbWFsbF09XCJ4c21hbGxcIj5cbiAgPC9hcHAtaW5wdXQtbGFiZWw+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIge3tpbnB1dENvbnRDbGFzc319IFwiPlxuICAgIDxkaXYgY2xhc3M9XCIgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGlucHV0LWNvbnRlbnQgdy0xMDBcIlxuICAgICAgW25nQ2xhc3NdPVwieydtcy0yJzohc3RhY2tlZCxzaG93VmFsaWRhdGlvbkljb246c2hvd1ZhbGlkYXRpb24gfHwgc2hvd1ZhbGlkYXRpb25JY29uLGRvbnRGb3JtYXRBc0lucHV0fVwiPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2RhdGU+XG4gICAgICAgIDxkYXRlLWlucHV0IFtkZWJ1Z109XCJkZWJ1Z1wiIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtpZF09XCJpZFwiIGNsYXNzPVwidy0xMDBcIiBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cImNoYW5nZSgkZXZlbnQpXCIgW3ZhbHVlXT1cImNvbnRyb2w/LnZhbHVlXCIgW2lucENsXT1cImlucENsXCIgW2Nsc109XCJjbHNcIiBbbWF4XT1cIm1heFwiIFttaW5dPVwibWluXCJcbiAgICAgICAgICBbdmFsaWRdPVwidmFsaWRcIiBbaW52YWxpZF09XCJpbnZhbGlkXCIgW3Nob3dWYWxpZGF0aW9uXT1cInNob3dWYWxpZGF0aW9uXCIgW2NvbnRyb2xdPVwiY29udHJvbFwiIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgQHN3aXRjaCAodHlwZSkge1xuXG4gICAgICA8IS0tIERBVEUgLS0+XG4gICAgICBAY2FzZSAoJ2RhdGUnKSB7XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlXCIgLz5cblxuICAgICAgfVxuICAgICAgPCEtLSBEQVRFVElNRS1MT0NBTCAtLT5cbiAgICAgIEBjYXNlICgnZGF0ZXRpbWUtbG9jYWwnKSB7XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlXCIgLz5cblxuICAgICAgfVxuICAgICAgPCEtLSBDSEVDS0JPWCAtLT5cbiAgICAgIEBjYXNlICgnY2hlY2tib3gnKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInt7IGlkIH19XCIgW2Zvcm1Db250cm9sTmFtZV09XCJuYW1lfHRvQW55XCIgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiXG4gICAgICAgIFthdHRyLmRhdGEtZGVidWddPVwiZGVidWdcIiBjbGFzcz1cInt7IGlucENsIH19IGQtaW5saW5lLWJsb2NrIGZvcm0tY29udHJvbCB3aWR0aC11bnNldFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiIFthdHRyLmluZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgnY2hlY2tlZGJveCcpIHtcblxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwie3sgaW5wQ2wgfX0gZC1pbmxpbmUtYmxvY2sgZm9ybS1jb250cm9sIHdpZHRoLXVuc2V0XCIgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtZGVidWddPVwiZGVidWdcIiBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cIm5vRm9ybWF0XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gRklMRSAtLT5cbiAgICAgIEBjYXNlICgnZmlsZScpIHtcblxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgaWQ9XCJ7eyBpZCB9fVwiIFtjbGFzc109XCJpbnBDbCB8IGlucHV0Q2xhc3M6IHZhbGlkOmludmFsaWQ6c2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAoY2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCIgW2FjY2VwdF09XCJhY2NlcHRcIiBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aXBsZVwiIC8+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gRklMRSBCVVRUT04tLT5cbiAgICAgIEBjYXNlICgnZmlsZUJ1dHRvbicpIHtcblxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgaWQ9XCJ7eyBpZCB9fVwiIFtjbGFzc109XCJpbnBDbCB8IGlucHV0Q2xhc3M6IHZhbGlkOmludmFsaWQ6c2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAoY2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCIgW2FjY2VwdF09XCJhY2NlcHRcIiBbYXR0ci5tdWx0aXBsZV09XCJtdWx0aXBsZVwiIGhpZGRlbiAjZmlsZSAvPlxuICAgICAgPGFwcC1idG4gY2xhc3M9XCJ3LTEwMFwiIChtY2xpY2spPVwiZmlsZS5jbGljaygpXCIgaWNvbj1cInVwbG9hZFwiIFt0eXBlXT1cImZpbGVzID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICAgICAgICB0ZXh0PVwie3twbGFjZWhvbGRlcnx8bGFiZWx8fCdVcGxvYWQnfX1cIj5cbiAgICAgIDwvYXBwLWJ0bj5cblxuICAgICAgfVxuICAgICAgPCEtLSBTRUxFQ1QgLS0+XG4gICAgICBAY2FzZSAoJ3NlbGVjdCcpIHtcblxuICAgICAgPCEtLSBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIC0tPlxuICAgICAgPG1hdC1zZWxlY3QgI21hdFNlbGVjdFRhZyBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiIGZvcm1Db250cm9sTmFtZT1cInt7bmFtZXx0b0FueX19XCIgaWQ9XCJ7eyBpZCB9fVwiXG4gICAgICAgIGNsYXNzPVwie3tjbHN9fSB7e2lucENsIHwgaW5wdXRDbGFzczogdmFsaWQ6aW52YWxpZDpzaG93VmFsaWRhdGlvbn19XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2Uoe3RhcmdldDokZXZlbnR9KVwiPlxuICAgICAgICBAaWYgKHNob3dFbXB0eU9wdGlvbikge1xuICAgICAgICA8bWF0LW9wdGlvbiBzZWxlY3RlZCBbdmFsdWVdPVwibnVsbFwiIGNsYXNzPVwiZW1wdHktb3B0aW9uXCI+XG4gICAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygb3B0aW9uczsgdHJhY2sgaVMudHJhY2tCeVZhbHVlKCRpbmRleCwgaXRlbSkpIHtcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCIgW21hdFRvb2x0aXBdPVwiaXRlbS5sYWJlbFwiIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZWxlLnNjcm9sbFdpZHRoPD1lbGUub2Zmc2V0V2lkdGhcIiAjZWxlPlxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZTogdHJhbnNsYXRlT3B0aW9ucyB8IGFzeW5jIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICB9XG4gICAgICA8IS0tIEFVVE9DT01QTEVURSAtLT5cbiAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2F1dG9jb21wbGV0ZSdcIj5cbiAgICAgICAgICA8YXBwLWF1dG9jb21wbGV0ZSBbZm9ybV09XCJmb3JtXCIgW2xhYmVsXT1cImxhYmVsXCIgW2xhYmVsRmllbGRdPVwibGFiZWxGaWVsZFwiXG4gICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cImF1dG9QaWNrVmFsdWVGaWVsZFwiIFtsYWJlbFR5cGVdPVwibGFiZWxUeXBlXCJcbiAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJvcHRpb25zRnVuY1wiIFtuYW1lXT1cIm5hbWV8dG9BbnlcIiBbb3B0aW9uRm9ybWF0dGVyXT1cIm9wdGlvbkZvcm1hdHRlclwiXG4gICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtoaW50XT1cImhpbnRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICA8IS0tIFRFWFRBUkVBIC0tPlxuICAgICAgQGNhc2UgKCd0ZXh0YXJlYScpIHtcblxuICAgICAgPHRleHRhcmVhIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZXx0b0FueVwiIGlkPVwie3sgaWQgfX1cIiBbY2xhc3NdPVwiaW5wQ2wgfCBpbnB1dENsYXNzOiB2YWxpZDppbnZhbGlkOnNob3dWYWxpZGF0aW9uXCJcbiAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiIFtyb3dzXT1cInRleHRhcmVhUm93c1wiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIj48L3RleHRhcmVhPlxuXG4gICAgICB9XG4gICAgICA8IS0tIFJhZGlvIC0tPlxuICAgICAgQGNhc2UgKCdyYWRpbycpIHtcblxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZXx0b0FueVwiIGlkPVwie3sgaWQgfX1cIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJub0Zvcm1hdFwiIFt2YWx1ZV09XCJfX3ZhbHVlXCIgLz5cblxuICAgICAgfVxuICAgICAgPCEtLSBWaWV3ZXIgLS0+XG4gICAgICBAY2FzZSAoJ3ZpZXdlcicpIHtcblxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJ7eyBpZCB9fVwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cIm5vRm9ybWF0XCJcbiAgICAgICAgW2NsYXNzXT1cImlucENsIHwgaW5wdXRDbGFzczogdmFsaWQ6aW52YWxpZDpzaG93VmFsaWRhdGlvblwiIFtyZWFkb25seV09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCIgLz5cblxuICAgICAgfVxuICAgICAgPCEtLSBQQVNTV09SRCAtLT5cbiAgICAgIEBjYXNlICgncGFzc3dvcmQnKSB7XG5cbiAgICAgIDxpbnB1dCB0eXBlPVwie3sgc2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJyB9fVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZXx0b0FueVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cIm5vRm9ybWF0XCIgaWQ9XCJ7eyBpZCB9fVwiXG4gICAgICAgIFtjbGFzc109XCJpbnBDbCB8IGlucHV0Q2xhc3M6IHZhbGlkOmludmFsaWQ6c2hvd1ZhbGlkYXRpb25cIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbbWF4XT1cIm1heFwiIFttaW5dPVwibWluXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiIHZhbHVlPVwie3sgX192YWx1ZSB9fVwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmQtaWNvbnMgcG9pbnRlclwiIChjbGljayk9XCJzaG93UGFzc3dvcmQgPSAhc2hvd1Bhc3N3b3JkXCI+XG4gICAgICAgIEBpZiAoc2hvd1Bhc3N3b3JkKSB7XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllLXNsYXNoXCI+PC9pPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIXNob3dQYXNzd29yZCkge1xuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV5ZVwiPjwvaT5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIH1cbiAgICAgIDwhLS0gREVGQVVMVCAtLT5cbiAgICAgIEBkZWZhdWx0IHtcblxuXG4gICAgICA8ZGl2IFtjbGFzc109XCJpbnBDbCB8IGlucHV0Q2xhc3M6IHZhbGlkOmludmFsaWQ6c2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2hhcy1wcmVmaXgnOiAhIXByZWZpeCxkaXNhYmxlZDpyZWFkb25seXx8Y29udHJvbD8uZGlzYWJsZWR9XCI+XG4gICAgICAgIEBpZiAocHJlZml4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmVmaXgtdmFsXCIgI3ByZWZpeFZhbD5cbiAgICAgICAgICB7e3ByZWZpeH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxpbnB1dCB0eXBlPVwie3sgdHlwZSB9fVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZXx0b0FueVwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXJ9fVwiIGlkPVwie3sgaWQgfX1cIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cImVsZS5pbm5lclRleHRcIiBbbWF0VG9vbHRpcERpc2FibGVkXT1cImVsZS5zY3JvbGxXaWR0aDw9ZWxlLm9mZnNldFdpZHRoXCIgI2VsZVxuICAgICAgICAgIFthdHRyLmRhdGEtZGVidWddPVwiZGVidWdcIiBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cIm5vRm9ybWF0XCIgW2F0dHIuZGF0YS1vdHlwZV09XCJvVHlwZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW21heF09XCJtYXhcIiBbbWluXT1cIm1pblwiIFtyZWFkb25seV09XCJyZWFkb25seSBcIiAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCIgdmFsdWU9XCJ7eyBfX3ZhbHVlIH19XCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAoY29udHJvbD8uZGlydHkgJiYgKHNob3dWYWxpZGF0aW9uIHx8IHNob3dWYWxpZGF0aW9uSWNvbikpIHtcblxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHZhbGlkOiBjb250cm9sPy52YWxpZCB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyBwZW5kaW5nOiBjb250cm9sPy5wZW5kaW5nIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyBpbnZhbGlkOiBjb250cm9sPy5pbnZhbGlkIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiPjwvaT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB9XG4gICAgICA8IS0tIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImlucHV0XCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ7e2lucC50eXBlfX1cIiBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiaW5wLmZvcm1Db250cm9sXCI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgaW5wLnZtc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWxpZGF0aW9ufHZhbGlkYXRvcjppbnAuZm9ybUNvbnRyb2w6aW5wLmZvcm1Db250cm9sPy52YWx1ZVwiPlxuICAgICAgICAgICAge3t2YWxpZGF0aW9uLm1lc3NhZ2V8dmFsaWRhdGlvbk1zZzppbnAucHJlZml4OmlucC5zdWZmaXh9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+IC0tPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoZW5kTGFiZWwpIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gdGV4dC1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwiaVMubG9nKGZvcm0pXCIgW21hdFRvb2x0aXBdPVwiZW5kTGFiZWxUb29sdGlwfGFwcFRyYW5zbGF0ZXxhc3luY1wiPlxuICAgICAge3tlbmRMYWJlbHxhcHBUcmFuc2xhdGV8YXN5bmN9fVxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoc2hvd1ZhbGlkYXRpb25Nc2cpIHtcbjxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlIFtsYWJlbF09XCJsYWJlbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIiAvPlxufSJdfQ==
@@ -6200,10 +6200,7 @@ class InputBasicComponent extends InputBase {
6200
6200
  }
6201
6201
  if (this.min == 0 && this.max == 100)
6202
6202
  this.oType = 'percentage';
6203
- if ((this.type == 'viewer' ||
6204
- this.showValidation ||
6205
- this.showValidationIcon ||
6206
- this.label?.includes('code')) &&
6203
+ if ((this.type == 'viewer' || this.showValidation || this.showValidationIcon || this.label?.includes('code')) &&
6207
6204
  (this.noFormat == null || this.noFormat == undefined))
6208
6205
  this.noFormat = true;
6209
6206
  // if (this.type == 'select' || this.type == 'autocomplete')
@@ -6250,9 +6247,7 @@ class InputBasicComponent extends InputBase {
6250
6247
  }
6251
6248
  }
6252
6249
  if (this.maxLength && this.control?.value?.toString().length > this.maxLength)
6253
- this.control.setValue(this.type == 'number'
6254
- ? +this.control?.value?.toString().slice(0, this.maxLength)
6255
- : this.control?.value?.toString().slice(0, this.maxLength));
6250
+ this.control.setValue(this.type == 'number' ? +this.control?.value?.toString().slice(0, this.maxLength) : this.control?.value?.toString().slice(0, this.maxLength));
6256
6251
  this.__value = this.control.value;
6257
6252
  this.mchange.emit(this.control.value);
6258
6253
  // debugger