verben-ticketing-ui 0.8.9 → 0.8.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -192,6 +192,7 @@ export class AddTicketComponent {
192
192
  CreatedAt: this.selectedTicket
193
193
  ? this.selectedTicket.CreatedAt
194
194
  : new Date(),
195
+ // CreatedBy: this.activeUser || undefined,
195
196
  UpdatedAt: new Date(),
196
197
  DataState: this.selectedTicket ? ObjectState.Changed : ObjectState.New,
197
198
  Tag: this.activeUser || undefined,
@@ -337,4 +338,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
337
338
  }], defaultCompany: [{
338
339
  type: Input
339
340
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRpY2tldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGlja2V0L2FkZC10aWNrZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXRpY2tldC9hZGQtdGlja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFFWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVNsRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7OztBQVMzRixNQUFNLE9BQU8sa0JBQWtCO0lBMkJuQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBOUJWLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2Qsc0NBQXNDO0lBQ3RDLElBQUk7SUFDSixnQkFBZ0IsQ0FBWTtJQUNuQixhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxVQUFVLEdBQWtCLElBQUksQ0FBQztJQUNqQyxTQUFTLEdBQWtCLElBQUksQ0FBQztJQUNoQyxZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUNyQyxVQUFVLEdBQVksS0FBSyxDQUFDO0lBQzVCLFNBQVMs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QU87c0JBQWhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQVNFLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGVuYW50IH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBPYmplY3RTdGF0ZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGlja2V0IH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBUaWNrZXRTdGF0dXMgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7XG4gIFV0aWxTZXJ2aWNlIGFzIEFwcFV0aWxTZXJ2aWNlLFxuICBFbnZpcm9ubWVudFNlcnZpY2UsXG59IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuXG5pbXBvcnQgeyBUZW5hbnRQcmlvcml0eSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGlja2V0TWVzc2FnZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9NRVNTQUdFX0ZPUl9JTklUSUFMX1VQTE9BRCB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRmlsZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtdGlja2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10aWNrZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYWRkLXRpY2tldC5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQWRkVGlja2V0Q29tcG9uZW50IHtcbiAgLy8gdGVzdDogc3RyaW5nID0gJyc7XG4gIC8vIGxvZ1Rlc3QoKSB7XG4gIC8vICAgY29uc29sZS5sb2coeyBUZXN0OiB0aGlzLnRlc3QgfSk7XG4gIC8vIH1cbiAgY3JlYXRlVGlja2V0Rm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBvdmVycmlkZVRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWN0aXZlVXNlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGFjdGl2ZUFwcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGFjdGl2ZVRlbmFudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVGlja2V0OiBUaWNrZXQgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uT3BlbjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblNhdmU6IEV2ZW50RW1pdHRlcjxUaWNrZXQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaW9yaXR5T3B0aW9uczogVGVuYW50UHJpb3JpdHlbXSA9IFtdO1xuICBzdGF0dXNPcHRpb25zOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKFRpY2tldFN0YXR1cyk7XG4gIHBlbmRpbmdSZWY6IFRpY2tldFN0YXR1cyA9IFRpY2tldFN0YXR1cy5QZW5kaW5nO1xuICBmaWxlRGF0YTogRmlsZVtdID0gW107XG4gIGZpbGVVcmxzOiBzdHJpbmdbXSA9IFtdO1xuICAvL2F0dGFjaGVkTWVzc2FnZTogVGlja2V0TWVzc2FnZSB8IG51bGwgPSBudWxsO1xuICBtYXhGaWxlU2l6ZSA9IDE1ICogMTAyNCAqIDEwMjQ7XG4gIEBJbnB1dCgpIGRlZmF1bHRDb21wYW55OiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBBcHBVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHNlcnZlcjogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcbiAgICBwcml2YXRlIGVudlN2YzogRW52aXJvbm1lbnRTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaW5pdFNlcnZpY2UodGhpcy5vdmVycmlkZVRva2VuKTtcbiAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIFRpdGxlOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkLFxuICAgICAgICB9LFxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgKSxcbiAgICAgIERlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkLFxuICAgICAgICB9LFxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgKSxcbiAgICAgIC8vIEN1cnJlbnRIYW5kbGVyOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oe1xuICAgICAgLy8gICB2YWx1ZTogbnVsbCxcbiAgICAgIC8vICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAvLyB9KSxcbiAgICAgIC8vIExhc3RIYW5kbGVyOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oe1xuICAgICAgLy8gICB2YWx1ZTogbnVsbCxcbiAgICAgIC8vICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAvLyB9KSxcbiAgICAgIFByaW9yaXR5OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkLFxuICAgICAgICB9LFxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgKSxcbiAgICAgIFN0YXR1czogbmV3IEZvcm1Db250cm9sPFRpY2tldFN0YXR1cz4oXG4gICAgICAgIHsgdmFsdWU6IFRpY2tldFN0YXR1cy5QZW5kaW5nLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIC8vIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snQ3VycmVudEhhbmRsZXInXS5kaXNhYmxlKCk7XG4gICAgLy8gdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmNvbnRyb2xzWydMYXN0SGFuZGxlciddLmRpc2FibGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXNbJ292ZXJyaWRlVG9rZW4nXSkge1xuICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmluaXRTZXJ2aWNlKHRoaXMub3ZlcnJpZGVUb2tlbik7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVGlja2V0J10gJiYgdGhpcy5zZWxlY3RlZFRpY2tldCkge1xuICAgICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBUaXRsZTogdGhpcy5zZWxlY3RlZFRpY2tldC5UaXRsZSxcbiAgICAgICAgRGVzY3JpcHRpb246IHRoaXMuc2VsZWN0ZWRUaWNrZXQuRGVzY3JpcHRpb24sXG4gICAgICAgIC8vIEN1cnJlbnRIYW5kbGVyOiB0aGlzLnNlbGVjdGVkVGlja2V0LkN1cnJlbnRIYW5kbGVyLFxuICAgICAgICAvLyBMYXN0SGFuZGxlcjogdGhpcy5zZWxlY3RlZFRpY2tldC5MYXN0SGFuZGxlcixcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuUHJpb3JpdHksXG4gICAgICAgIFN0YXR1czogdGhpcy5zZWxlY3RlZFRpY2tldC5TdGF0dXMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsZVVybHMgPSBbLi4udGhpcy5zZWxlY3RlZFRpY2tldC5GaWxlVXJsc107XG4gICAgICB0aGlzLmZpbGVEYXRhID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgVGl0bGU6IG51bGwsXG4gICAgICAgIERlc2NyaXB0aW9uOiBudWxsLFxuICAgICAgICAvLyBDdXJyZW50SGFuZGxlcjogbnVsbCxcbiAgICAgICAgLy8gTGFzdEhhbmRsZXI6IG51bGwsXG4gICAgICAgIFByaW9yaXR5OiBudWxsLFxuICAgICAgICBTdGF0dXM6IFRpY2tldFN0YXR1cy5QZW5kaW5nLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmZpbGVVcmxzID0gW107XG4gICAgICB0aGlzLmZpbGVEYXRhID0gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmdldCgnVGl0bGUnKT8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uZ2V0KCdEZXNjcmlwdGlvbicpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5nZXQoJ1ByaW9yaXR5Jyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uZ2V0KCdUaXRsZScpPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmdldCgnRGVzY3JpcHRpb24nKT8uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5nZXQoJ1ByaW9yaXR5Jyk/LmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2FjdGl2ZVRlbmFudCddICYmIHRoaXMuYWN0aXZlVGVuYW50KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldEFsbFByaW9yaXRpZXNGb3JUZW5hbnQoXG4gICAgICAgIHRoaXMuYWN0aXZlVGVuYW50LFxuICAgICAgKTtcbiAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgIHRoaXMucHJpb3JpdHlPcHRpb25zID0gb3B0aW9ucy5SZXN1bHQ7XG4gICAgICB9XG4gICAgICAvLyAgY29uc29sZS5sb2coeyBDaGFuZ2VkOiB0aGlzLnByaW9yaXR5T3B0aW9ucyB9KTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ2FjdGl2ZVRlbmFudCddICYmICF0aGlzLmFjdGl2ZVRlbmFudCkge1xuICAgICAgdGhpcy5wcmlvcml0eU9wdGlvbnMgPSBbXTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKHsgVGVuYW50OiB0aGlzLmFjdGl2ZVRlbmFudCwgUmVzZXQ6IHRoaXMucHJpb3JpdHlPcHRpb25zIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRm9ybSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jcmVhdGVUaWNrZXRGb3JtLnZhbGlkID09IHRydWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbk1vZGFsT3BlbihldmVudDogYW55KSB7XG4gICAgdGhpcy5vbk9wZW4uZW1pdCgpO1xuICB9XG5cbiAgb25Nb2RhbENsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdChldmVudCk7XG4gIH1cblxuICAvLyBmaWx0ZXJNZXNzYWdlKG1lc3NhZ2U6IFRpY2tldE1lc3NhZ2UpOiBUaWNrZXRNZXNzYWdlIHtcbiAgLy8gICByZXR1cm4ge1xuICAvLyAgICAgLi4ubWVzc2FnZSxcbiAgLy8gICAgIEF0dGFjaG1lbnRVcmxzOiBtZXNzYWdlLkF0dGFjaG1lbnRVcmxzLmZpbHRlcihcbiAgLy8gICAgICAgKHgpID0+IHguc3BsaXQoJy8nKS5sZW5ndGggPiAxXG4gIC8vICAgICApLFxuICAvLyAgIH07XG4gIC8vIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVBcHApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRlbmFudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZFRpY2tldCAmJiB0aGlzLmF0dGFjaGVkTWVzc2FnZSkge1xuICAgIC8vICAgaWYgKGlkeCA+IC0xKSB7XG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRUaWNrZXQuTWVzc2FnZXNbaWR4XSA9IHRoaXMuZmlsdGVyTWVzc2FnZShcbiAgICAvLyAgICAgICB0aGlzLmF0dGFjaGVkTWVzc2FnZVxuICAgIC8vICAgICApO1xuICAgIC8vICAgfSBlbHNlIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuYXR0YWNoZWRNZXNzYWdlLkF0dGFjaG1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgICAgICB0aGlzLnNlbGVjdGVkVGlja2V0Lk1lc3NhZ2VzLnVuc2hpZnQoXG4gICAgLy8gICAgICAgICB0aGlzLmZpbHRlck1lc3NhZ2UodGhpcy5hdHRhY2hlZE1lc3NhZ2UpXG4gICAgLy8gICAgICAgKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIGNvbnN0IGl0ZW06IFRpY2tldCA9IHtcbiAgICAgIFRpdGxlOiB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uY29udHJvbHNbJ1RpdGxlJ10udmFsdWUsXG4gICAgICBEZXNjcmlwdGlvbjogdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmNvbnRyb2xzWydEZXNjcmlwdGlvbiddLnZhbHVlLFxuICAgICAgQ3VycmVudEhhbmRsZXI6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkN1cnJlbnRIYW5kbGVyXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgTGFzdEhhbmRsZXI6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0Lkxhc3RIYW5kbGVyXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgUHJpb3JpdHk6IHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snUHJpb3JpdHknXS52YWx1ZSxcbiAgICAgIEFwcDogdGhpcy5hY3RpdmVBcHAsXG4gICAgICBpZDogJycsXG4gICAgICBTdGF0dXM6IHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snU3RhdHVzJ10udmFsdWUsXG4gICAgICBDb21wYW55OiB0aGlzLmRlZmF1bHRDb21wYW55LFxuICAgICAgTWVzc2FnZXM6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyB0aGlzLnNlbGVjdGVkVGlja2V0Lk1lc3NhZ2VzIDogW10sXG4gICAgICBGaWxlRGF0YTogdGhpcy5maWxlRGF0YSxcbiAgICAgIEZpbGVVcmxzOiB0aGlzLnNlbGVjdGVkVGlja2V0ID8gdGhpcy5zZWxlY3RlZFRpY2tldC5GaWxlVXJscyA6IFtdLFxuICAgICAgSWQ6ICcnLFxuICAgICAgRXhlY3V0aW9uVGltZTogdGhpcy5zZWxlY3RlZFRpY2tldFxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRUaWNrZXQuRXhlY3V0aW9uVGltZVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIENvZGU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkNvZGUgOiAnJyxcbiAgICAgIFRlbmFudElkOiB0aGlzLnNlbGVjdGVkVGlja2V0XG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFRpY2tldC5UZW5hbnRJZFxuICAgICAgICA6IHRoaXMuYWN0aXZlVGVuYW50LFxuICAgICAgU2VydmljZU5hbWU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyB0aGlzLnNlbGVjdGVkVGlja2V0LlNlcnZpY2VOYW1lIDogJycsXG4gICAgICBDcmVhdGVkQXQ6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkNyZWF0ZWRBdFxuICAgICAgICA6IG5ldyBEYXRlKCksXG4gICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBEYXRhU3RhdGU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyBPYmplY3RTdGF0ZS5DaGFuZ2VkIDogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgVGFnOiB0aGlzLmFjdGl2ZVVzZXIgfHwgdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICBpZiAoaXRlbS5EZXNjcmlwdGlvbi50cmltKCkubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd0luZm8oJ0Rlc2NyaXB0aW9uIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5wb3N0KFxuICAgICAgYFRpY2tldC9TYXZlVGlja2V0YCxcbiAgICAgIFtpdGVtXSxcbiAgICAgIHRoaXMub3ZlcnJpZGVUb2tlbiB8fCB1bmRlZmluZWQsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5UaWNrZXRpbmdBUEksXG4gICAgKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShmYWxzZSk7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93U3VjY2VzcygnVGlja2V0IHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzIGFzIFRpY2tldFtdO1xuICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciByZXN1bHRJdGVtID0gcmVzdWx0WzBdO1xuICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KHJlc3VsdEl0ZW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gIH1cblxuICBnZW5lcmF0ZVNpeERpZ2l0TnVtYmVyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoMTAwMDAwICsgTWF0aC5yYW5kb20oKSAqIDkwMDAwMCk7XG4gIH1cblxuICBnZXRUaWNrZXRNZXNzYWdlKCk6IFRpY2tldE1lc3NhZ2Uge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVGlja2V0KSB7XG4gICAgICBjb25zdCBpbml0aWFsTWVzc2FnZSA9IHRoaXMuc2VsZWN0ZWRUaWNrZXQuTWVzc2FnZXMuZmluZChcbiAgICAgICAgKHgpID0+IHguU3ViamVjdCA9PSBERUZBVUxUX01FU1NBR0VfRk9SX0lOSVRJQUxfVVBMT0FELFxuICAgICAgKTtcbiAgICAgIGlmIChpbml0aWFsTWVzc2FnZSkge1xuICAgICAgICByZXR1cm4geyAuLi5pbml0aWFsTWVzc2FnZSwgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5DaGFuZ2VkIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBUaWNrZXRNZXNzYWdlID0ge1xuICAgICAgICAgIFRpY2tldENvZGU6ICcnLFxuICAgICAgICAgIFN1YmplY3Q6IERFRkFVTFRfTUVTU0FHRV9GT1JfSU5JVElBTF9VUExPQUQsXG4gICAgICAgICAgQ29udGVudDogJycsXG4gICAgICAgICAgQXR0YWNobWVudHM6IFtdLFxuICAgICAgICAgIEF0dGFjaG1lbnRVcmxzOiBbXSxcbiAgICAgICAgICBDb21wYW55OiB0aGlzLmRlZmF1bHRDb21wYW55LFxuICAgICAgICAgIElkOiAnJyxcbiAgICAgICAgICBDb2RlOiAnJyxcbiAgICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgIFNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbmV3TWVzc2FnZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3TWVzc2FnZTogVGlja2V0TWVzc2FnZSA9IHtcbiAgICAgICAgVGlja2V0Q29kZTogJycsXG4gICAgICAgIFN1YmplY3Q6IERFRkFVTFRfTUVTU0FHRV9GT1JfSU5JVElBTF9VUExPQUQsXG4gICAgICAgIENvbnRlbnQ6ICcnLFxuICAgICAgICBBdHRhY2htZW50czogW10sXG4gICAgICAgIEF0dGFjaG1lbnRVcmxzOiBbXSxcbiAgICAgICAgQ29tcGFueTogdGhpcy5kZWZhdWx0Q29tcGFueSxcbiAgICAgICAgSWQ6ICcnLFxuICAgICAgICBpZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIFNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBuZXdNZXNzYWdlO1xuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJGaWxlVXBsb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgZmlsZUlucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgZmlsZUlucHV0LmFjY2VwdCA9ICcucG5nLCAuanBnLCAuanBlZywgLnBkZic7XG4gICAgZmlsZUlucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IC8vIEhpZGRlbiBmaWxlIGlucHV0XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaWxlSW5wdXQpOyAvLyBUZW1wb3JhcmlseSBhZGQgdG8gRE9NXG5cbiAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmlsZSA9IGZpbGVJbnB1dC5maWxlcz8uWzBdO1xuICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRmlsZShmaWxlKTtcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsgLy8gQ2xlYW4gdXAgYWZ0ZXIgdXNlXG4gICAgfSk7XG5cbiAgICBmaWxlSW5wdXQuY2xpY2soKTsgLy8gUHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VyIGNsaWNrXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWxlKHNlbGVjdGVkRmlsZTogZ2xvYmFsVGhpcy5GaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQ2hlY2sgZmlsZSBzaXplXG4gICAgaWYgKHNlbGVjdGVkRmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgY29uc3QgbGltaXRJbk1CID0gdGhpcy5tYXhGaWxlU2l6ZSAvIDEwMjQgLyAxMDI0O1xuICAgICAgdGhpcy51dGlsU2VydmljZS5zaG93SW5mbyhgRmlsZSBzaXplIGxpbWl0IG9mICR7bGltaXRJbk1CfW1iIGV4Y2VlZGVkYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gbGV0IGZpbGVUb1Byb2Nlc3M6IGdsb2JhbFRoaXMuRmlsZSB8IG51bGwgPSBzZWxlY3RlZEZpbGU7XG4gICAgLy8gY29uc3Qgc2FmZU51bWJlcjogbnVtYmVyID0gMSAqIDEwMjQgKiAxMDI0O1xuICAgIC8vIGlmIChmaWxlVG9Qcm9jZXNzLnNpemUgPiBzYWZlTnVtYmVyKSB7XG4gICAgLy8gICBmaWxlVG9Qcm9jZXNzID0gYXdhaXQgdGhpcy51dGlsU2VydmljZS5jb21wcmVzc0ltYWdlKHNlbGVjdGVkRmlsZSk7XG4gICAgLy8gICBpZiAoIWZpbGVUb1Byb2Nlc3MpIHtcbiAgICAvLyAgICAgdGhpcy51dGlsU2VydmljZS5zaG93RXJyb3IoJ0Vycm9yIGNvbXByZXNzaW5nIGltYWdlJyk7XG4gICAgLy8gICAgIHJldHVybjtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG5cbiAgICAvLyBSZWFkIGZpbGUgYW5kIGNvbnZlcnQgdG8gYmFzZTY0XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChzZWxlY3RlZEZpbGUpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBiYXNlNjRkYXRhID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICBjb25zdCBmaWxlID0gdGhpcy5zaGFyZWRTZXJ2aWNlLmNyZWF0ZUN1c3RvbUZpbGUoXG4gICAgICAgIGJhc2U2NGRhdGEsXG4gICAgICAgIDAsXG4gICAgICAgIHNlbGVjdGVkRmlsZSxcbiAgICAgICk7XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICB0aGlzLmZpbGVEYXRhLnB1c2goZmlsZSk7XG4gICAgICAgIHRoaXMuZmlsZVVybHMucHVzaChgJHtmaWxlLk5hbWV9YCk7XG4gICAgICAgIC8vIHRoaXMucHJvZmlsZUltYWdlID0gYmFzZTY0ZGF0YTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gIC8vICAgaWYgKCF0aGlzLnNlbGVjdGVkVGlja2V0KSB7XG4gIC8vICAgICByZXR1cm4gZmFsc2U7XG4gIC8vICAgfVxuICAvLyAgIHJldHVybiAhKHRoaXMuc2VsZWN0ZWRUaWNrZXQuU3RhdHVzID09IHRoaXMucGVuZGluZ1JlZik7XG4gIC8vIH1cbn1cbiIsIjx2ZXJiZW4tZGlhbG9ndWVcbiAgW3Nob3dDbG9zZUljb25dPVwiZmFsc2VcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJmYWxzZVwiXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxuICBbc2l6ZV09XCInbWVkaXVtJ1wiXG4gIFttb2RlXT1cIidkaWFsb2d1ZSdcIlxuICBbY3VzdG9tQ2xhc3NdPVwiJ3RpY2tldC1kaWFsb2cnXCJcbiAgW2Rpc2FibGVGb290ZXJdPVwidHJ1ZVwiXG4gIChvcGVuTW9kYWwpPVwib25Nb2RhbE9wZW4oJGV2ZW50KVwiXG4gIFtpc1Zpc2libGVdPVwiaXNWaXNpYmxlXCJcbiAgW2JvZHlUZW1wbGF0ZV09XCJib2R5VGVtcGxhdGVcIlxuICAoY2xvc2VNb2RhbCk9XCJvbk1vZGFsQ2xvc2UoJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctYm9keSBwLVsyNXB4XSBmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlciBmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctdGl0bGUgZm9udC1ib2xkIHRleHQteGxcIj5cbiAgICAgICAgICB7eyB0aGlzLnNlbGVjdGVkVGlja2V0ID8gXCJFZGl0IFRpY2tldFwiIDogXCJDcmVhdGUgVGlja2V0XCIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctc3VidGl0bGVcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpY2tldFxuICAgICAgICAgICAgICA/IFwiRmlsbCB0aGUgZm9ybSBiZWxvdyB0byBlZGl0IHNlbGVjdGVkIHRpY2tldFwiXG4gICAgICAgICAgICAgIDogXCJGaWxsIHRoZSBmb3JtIGJlbG93IHRvIGNyZWF0ZSBhIHRpY2tldFwiXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPHZlcmJlbmEtdGV4dGFyZWEgbmFtZT1cIlRlc3RcIiBbKG5nTW9kZWwpXT1cInRlc3RcIiAvPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nVGVzdCgpXCI+TG9nPC9idXR0b24+IC0tPlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImNyZWF0ZVRpY2tldEZvcm1cIlxuICAgICAgICBjbGFzcz1cImFkZC1hcHAtZm9ybSBtYWluLWZvcm0tY29udGFpbmVyIGZsZXggZmxleC1jb2wgZ2FwLTJcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPlRpdGxlPC9kaXY+XG4gICAgICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgICAgIG5hbWU9XCJUaXRsZVwiXG4gICAgICAgICAgICBwbGFjZUhvbGRlcj1cIlRpdGxlXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlRpdGxlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taW5wdXQtY29udGFpbmVyIGZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW1cIj5EZXNjcmlwdGlvbjwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJEZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPGRpdlxuICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3RlZFRpY2tldFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPkN1cnJlbnQgSGFuZGxlcjwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgICBuYW1lPVwiQ3VycmVudEhhbmRsZXJcIlxuICAgICAgICAgICAgcGxhY2VIb2xkZXI9XCJDdXJyZW50IEhhbmRsZXJcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImNyZWF0ZVRpY2tldEZvcm0uZ2V0KCdDdXJyZW50SGFuZGxlcicpPy52YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3RlZFRpY2tldFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPkxhc3QgSGFuZGxlcjwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgICBuYW1lPVwiTGFzdEhhbmRsZXJcIlxuICAgICAgICAgICAgcGxhY2VIb2xkZXI9XCJMYXN0IEhhbmRsZXJcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImNyZWF0ZVRpY2tldEZvcm0uZ2V0KCdMYXN0SGFuZGxlcicpPy52YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+UHJpb3JpdHk8L2Rpdj5cbiAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIG5hbWU9XCJQcmlvcml0eVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBQcmlvcml0eVwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJwcmlvcml0eU9wdGlvbnNcIlxuICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgICAgIG9wdGlvblZhbHVlPVwiQ29kZVwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJQcmlvcml0eVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+U3RhdHVzPC9kaXY+XG4gICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBuYW1lPVwiU3RhdHVzXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFN0YXR1c1wiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJzdGF0dXNPcHRpb25zXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlN0YXR1c1wiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LXNlY3Rpb24gcC0yIGZsZXggZmxleC1jb2wgZ2FwLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudHMtY29udGFpbmVyIGdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgdGhpcy5maWxlVXJsc1wiPlxuICAgICAgICAgICAgICA8YXBwLWZpbGUtcmVuZGVyIFtmaWxlVXJsXT1cImZpbGVcIj48L2FwcC1maWxlLXJlbmRlcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidXBsb2FkLXNlY3Rpb24gZmxleCBmbGV4LWNvbCBmbGV4LTEgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgICAgICAgICBbdXNlSWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCIndXBsb2FkJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJiZW4tc2Vjb25kYXJ5LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiJ1VwbG9hZCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0cmlnZ2VyRmlsZVVwbG9hZCgpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZV09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtY2FwdGlvbiB0ZXh0LXNtIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIEluY2x1ZGUgQXR0YWNobWVudHNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1idXR0b24tY29udGFpbmVyIGZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cbiAgICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBjbGFzcz1cInZlcmJlbi1zZWNvbmRhcnktYnV0dG9uXCJcbiAgICAgICAgICBbdGV4dF09XCInQ2xvc2UnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Nb2RhbENsb3NlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuYS1idXR0b24+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlXT1cIiF0aGlzLmNoZWNrRm9ybSgpXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIGNsYXNzPVwidmVyYmVuLXByaW1hcnktYnV0dG9uXCJcbiAgICAgICAgICBbdGV4dF09XCInU2F2ZSdcIlxuICAgICAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvdmVyYmVuLWRpYWxvZ3VlPlxuIl19
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRpY2tldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGlja2V0L2FkZC10aWNrZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXRpY2tldC9hZGQtdGlja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFFWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVNsRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7OztBQVMzRixNQUFNLE9BQU8sa0JBQWtCO0lBMkJuQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBOUJWLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2Qsc0NBQXNDO0lBQ3RDLElBQUk7SUFDSixnQkFBZ0IsQ0FBWTtJQUNuQixhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxVQUFVLEdBQWtCLElBQUksQ0FBQztJQUNqQyxTQUFTLEdBQWtCLElBQUksQ0FBQztJQUNoQyxZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUNyQyxVQUFVLEdBQVksS0FBSyxDQUFDO0lBQzVCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDMUIsTUFBTSxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pELE9BQU8sR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRCxNQUFNLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFNUQsZUFBZSxHQUFxQixFQUFFLENBQUM7SUFDdkMsYUFBYSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEQsVUFBVSxHQUFpQixZQUFZLENBQUMsT0FBTyxDQUFDO0lBQ2hELFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUN4QiwrQ0FBK0M7SUFDL0MsV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLGNBQWMsR0FBVyxFQUFFLENBQUM7SUFFckMsWUFDVSxFQUFlLEVBQ2YsV0FBMkIsRUFDM0IsTUFBNkIsRUFDN0IsYUFBNEIsRUFDNUIsTUFBMEI7UUFKMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUVsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3BDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FDcEI7Z0JBQ0UsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzFCLEVBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FDcEI7WUFDRCxXQUFXLEVBQUUsSUFBSSxXQUFXLENBQzFCO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVTthQUMxQixFQUNELFVBQVUsQ0FBQyxRQUFRLENBQ3BCO1lBQ0QsbURBQW1EO1lBQ25ELGlCQUFpQjtZQUNqQixvQkFBb0I7WUFDcEIsTUFBTTtZQUNOLGdEQUFnRDtZQUNoRCxpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLE1BQU07WUFDTixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQ3ZCO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVTthQUMxQixFQUNELFVBQVUsQ0FBQyxRQUFRLENBQ3BCO1lBQ0QsTUFBTSxFQUFFLElBQUksV0FBVyxDQUNyQixFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFDL0MsVUFBVSxDQUFDLFFBQVEsQ0FDcEI7U0FDRixDQUFDLENBQUM7UUFFSCw4REFBOEQ7UUFDOUQsMkRBQTJEO0lBQzdELENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVuQixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3RDLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLO2dCQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXO2dCQUM1QyxzREFBc0Q7Z0JBQ3RELGdEQUFnRDtnQkFDaEQsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUTtnQkFDdEMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTthQUNuQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDL0IsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLHdCQUF3QjtnQkFDeEIscUJBQXFCO2dCQUNyQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxNQUFNLEVBQUUsWUFBWSxDQUFDLE9BQU87YUFDN0IsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQ2hFLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7WUFDRixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUN4QyxDQUFDO1lBQ0QsbURBQW1EO1FBQ3JELENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUMxQiwyRUFBMkU7UUFDN0UsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixxREFBcUQ7SUFDckQsdUNBQXVDO0lBQ3ZDLFNBQVM7SUFDVCxPQUFPO0lBQ1AsSUFBSTtJQUVKLEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFDRCxxREFBcUQ7UUFDckQsb0JBQW9CO1FBQ3BCLDhEQUE4RDtRQUM5RCw2QkFBNkI7UUFDN0IsU0FBUztRQUNULGFBQWE7UUFDYix5REFBeUQ7UUFDekQsOENBQThDO1FBQzlDLG1EQUFtRDtRQUNuRCxXQUFXO1FBQ1gsUUFBUTtRQUNSLE1BQU07UUFDTixJQUFJO1FBRUosTUFBTSxJQUFJLEdBQVc7WUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUNwRCxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLO1lBQ2hFLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYztnQkFDcEMsQ0FBQyxDQUFDLFNBQVM7WUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVc7Z0JBQ2pDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSztZQUMxRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDbkIsRUFBRSxFQUFFLEVBQUU7WUFDTixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLO1lBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxFQUFFLEVBQUUsRUFBRTtZQUNOLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYTtnQkFDbkMsQ0FBQyxDQUFDLFNBQVM7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekQsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO2dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUztnQkFDL0IsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ2QsMkNBQTJDO1lBQzNDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUc7WUFDdEUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksU0FBUztTQUNsQyxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDaEMsbUJBQW1CLEVBQ25CLENBQUMsSUFBSSxDQUFDLEVBQ04sSUFBSSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FDckMsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksR0FBRyxZQUFZLGFBQWEsRUFBRSxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUMxRCxNQUFNLE1BQU0sR0FBRyxHQUFlLENBQUM7WUFDL0IsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3RELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLGtDQUFrQyxDQUN2RCxDQUFDO1lBQ0YsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxFQUFFLEdBQUcsY0FBYyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sVUFBVSxHQUFrQjtvQkFDaEMsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsT0FBTyxFQUFFLGtDQUFrQztvQkFDM0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsV0FBVyxFQUFFLEVBQUU7b0JBQ2YsY0FBYyxFQUFFLEVBQUU7b0JBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDNUIsRUFBRSxFQUFFLEVBQUU7b0JBQ04sSUFBSSxFQUFFLEVBQUU7b0JBQ1IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osRUFBRSxFQUFFLEVBQUU7b0JBQ04sV0FBVyxFQUFFLEVBQUU7b0JBQ2YsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO29CQUNyQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7b0JBQ3JCLFNBQVMsRUFBRSxXQUFXLENBQUMsR0FBRztpQkFDM0IsQ0FBQztnQkFDRixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFVBQVUsR0FBa0I7Z0JBQ2hDLFVBQVUsRUFBRSxFQUFFO2dCQUNkLE9BQU8sRUFBRSxrQ0FBa0M7Z0JBQzNDLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFdBQVcsRUFBRSxFQUFFO2dCQUNmLGNBQWMsRUFBRSxFQUFFO2dCQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQzVCLEVBQUUsRUFBRSxFQUFFO2dCQUNOLEVBQUUsRUFBRSxFQUFFO2dCQUNOLElBQUksRUFBRSxFQUFFO2dCQUNSLFFBQVEsRUFBRSxFQUFFO2dCQUNaLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDckIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFO2dCQUNyQixTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUc7YUFDM0IsQ0FBQztZQUNGLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxTQUFTLEdBQXFCLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsU0FBUyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDeEIsU0FBUyxDQUFDLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQztRQUM3QyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxvQkFBb0I7UUFDdEQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7UUFFL0QsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDeEMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxpQ0FBaUM7SUFDdEQsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBNkI7UUFDckQsa0JBQWtCO1FBQ2xCLElBQUksWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLHNCQUFzQixTQUFTLGFBQWEsQ0FBQyxDQUFDO1lBQ3hFLE9BQU87UUFDVCxDQUFDO1FBRUQsNERBQTREO1FBQzVELDhDQUE4QztRQUM5Qyx5Q0FBeUM7UUFDekMsd0VBQXdFO1FBQ3hFLDBCQUEwQjtRQUMxQiw2REFBNkQ7UUFDN0QsY0FBYztRQUNkLE1BQU07UUFDTixJQUFJO1FBRUosa0NBQWtDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBZ0IsQ0FBQztZQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUM5QyxVQUFVLEVBQ1YsQ0FBQyxFQUNELFlBQVksQ0FDYixDQUFDO1lBQ0YsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbkMsa0NBQWtDO1lBQ3BDLENBQUM7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO3dHQWpWVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixrWUNyQy9CLDgzSkEySUE7OzRGRHRHYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzJNQVVqQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFTRSxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb24gfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFRlbmFudCB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgRXJyb3JSZXNwb25zZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgT2JqZWN0U3RhdGUgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFRpY2tldCB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGlja2V0U3RhdHVzIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQge1xuICBVdGlsU2VydmljZSBhcyBBcHBVdGlsU2VydmljZSxcbiAgRW52aXJvbm1lbnRTZXJ2aWNlLFxufSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHsgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL3NlcnZpY2VzJztcblxuaW1wb3J0IHsgVGVuYW50UHJpb3JpdHkgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFRpY2tldE1lc3NhZ2UgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IERFRkFVTFRfTUVTU0FHRV9GT1JfSU5JVElBTF9VUExPQUQgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IEZpbGUgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLXRpY2tldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtdGlja2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FkZC10aWNrZXQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEFkZFRpY2tldENvbXBvbmVudCB7XG4gIC8vIHRlc3Q6IHN0cmluZyA9ICcnO1xuICAvLyBsb2dUZXN0KCkge1xuICAvLyAgIGNvbnNvbGUubG9nKHsgVGVzdDogdGhpcy50ZXN0IH0pO1xuICAvLyB9XG4gIGNyZWF0ZVRpY2tldEZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgb3ZlcnJpZGVUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGFjdGl2ZVVzZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBhY3RpdmVBcHA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBhY3RpdmVUZW5hbnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzZWxlY3RlZFRpY2tldDogVGlja2V0IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvbk9wZW46IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8VGlja2V0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcmlvcml0eU9wdGlvbnM6IFRlbmFudFByaW9yaXR5W10gPSBbXTtcbiAgc3RhdHVzT3B0aW9uczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhUaWNrZXRTdGF0dXMpO1xuICBwZW5kaW5nUmVmOiBUaWNrZXRTdGF0dXMgPSBUaWNrZXRTdGF0dXMuUGVuZGluZztcbiAgZmlsZURhdGE6IEZpbGVbXSA9IFtdO1xuICBmaWxlVXJsczogc3RyaW5nW10gPSBbXTtcbiAgLy9hdHRhY2hlZE1lc3NhZ2U6IFRpY2tldE1lc3NhZ2UgfCBudWxsID0gbnVsbDtcbiAgbWF4RmlsZVNpemUgPSAxNSAqIDEwMjQgKiAxMDI0O1xuICBASW5wdXQoKSBkZWZhdWx0Q29tcGFueTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogQXBwVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmluaXRTZXJ2aWNlKHRoaXMub3ZlcnJpZGVUb2tlbik7XG4gICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBUaXRsZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCxcbiAgICAgICAgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgICBEZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCxcbiAgICAgICAgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgICAvLyBDdXJyZW50SGFuZGxlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KHtcbiAgICAgIC8vICAgdmFsdWU6IG51bGwsXG4gICAgICAvLyAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgLy8gfSksXG4gICAgICAvLyBMYXN0SGFuZGxlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KHtcbiAgICAgIC8vICAgdmFsdWU6IG51bGwsXG4gICAgICAvLyAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgLy8gfSksXG4gICAgICBQcmlvcml0eTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCxcbiAgICAgICAgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgICBTdGF0dXM6IG5ldyBGb3JtQ29udHJvbDxUaWNrZXRTdGF0dXM+KFxuICAgICAgICB7IHZhbHVlOiBUaWNrZXRTdGF0dXMuUGVuZGluZywgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uY29udHJvbHNbJ0N1cnJlbnRIYW5kbGVyJ10uZGlzYWJsZSgpO1xuICAgIC8vIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snTGFzdEhhbmRsZXInXS5kaXNhYmxlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjaGFuZ2VzWydvdmVycmlkZVRva2VuJ10pIHtcbiAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5pbml0U2VydmljZSh0aGlzLm92ZXJyaWRlVG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RlZFRpY2tldCddICYmIHRoaXMuc2VsZWN0ZWRUaWNrZXQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgVGl0bGU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuVGl0bGUsXG4gICAgICAgIERlc2NyaXB0aW9uOiB0aGlzLnNlbGVjdGVkVGlja2V0LkRlc2NyaXB0aW9uLFxuICAgICAgICAvLyBDdXJyZW50SGFuZGxlcjogdGhpcy5zZWxlY3RlZFRpY2tldC5DdXJyZW50SGFuZGxlcixcbiAgICAgICAgLy8gTGFzdEhhbmRsZXI6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuTGFzdEhhbmRsZXIsXG4gICAgICAgIFByaW9yaXR5OiB0aGlzLnNlbGVjdGVkVGlja2V0LlByaW9yaXR5LFxuICAgICAgICBTdGF0dXM6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuU3RhdHVzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmZpbGVVcmxzID0gWy4uLnRoaXMuc2VsZWN0ZWRUaWNrZXQuRmlsZVVybHNdO1xuICAgICAgdGhpcy5maWxlRGF0YSA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIFRpdGxlOiBudWxsLFxuICAgICAgICBEZXNjcmlwdGlvbjogbnVsbCxcbiAgICAgICAgLy8gQ3VycmVudEhhbmRsZXI6IG51bGwsXG4gICAgICAgIC8vIExhc3RIYW5kbGVyOiBudWxsLFxuICAgICAgICBQcmlvcml0eTogbnVsbCxcbiAgICAgICAgU3RhdHVzOiBUaWNrZXRTdGF0dXMuUGVuZGluZyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWxlVXJscyA9IFtdO1xuICAgICAgdGhpcy5maWxlRGF0YSA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5nZXQoJ1RpdGxlJyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmdldCgnRGVzY3JpcHRpb24nKT8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uZ2V0KCdQcmlvcml0eScpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmdldCgnVGl0bGUnKT8uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5nZXQoJ0Rlc2NyaXB0aW9uJyk/LmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uZ2V0KCdQcmlvcml0eScpPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydhY3RpdmVUZW5hbnQnXSAmJiB0aGlzLmFjdGl2ZVRlbmFudCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRBbGxQcmlvcml0aWVzRm9yVGVuYW50KFxuICAgICAgICB0aGlzLmFjdGl2ZVRlbmFudCxcbiAgICAgICk7XG4gICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICB0aGlzLnByaW9yaXR5T3B0aW9ucyA9IG9wdGlvbnMuUmVzdWx0O1xuICAgICAgfVxuICAgICAgLy8gIGNvbnNvbGUubG9nKHsgQ2hhbmdlZDogdGhpcy5wcmlvcml0eU9wdGlvbnMgfSk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzWydhY3RpdmVUZW5hbnQnXSAmJiAhdGhpcy5hY3RpdmVUZW5hbnQpIHtcbiAgICAgIHRoaXMucHJpb3JpdHlPcHRpb25zID0gW107XG4gICAgICAvLyBjb25zb2xlLmxvZyh7IFRlbmFudDogdGhpcy5hY3RpdmVUZW5hbnQsIFJlc2V0OiB0aGlzLnByaW9yaXR5T3B0aW9ucyB9KTtcbiAgICB9XG4gIH1cblxuICBjaGVja0Zvcm0oKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY3JlYXRlVGlja2V0Rm9ybS52YWxpZCA9PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25Nb2RhbE9wZW4oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25PcGVuLmVtaXQoKTtcbiAgfVxuXG4gIG9uTW9kYWxDbG9zZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLy8gZmlsdGVyTWVzc2FnZShtZXNzYWdlOiBUaWNrZXRNZXNzYWdlKTogVGlja2V0TWVzc2FnZSB7XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIC4uLm1lc3NhZ2UsXG4gIC8vICAgICBBdHRhY2htZW50VXJsczogbWVzc2FnZS5BdHRhY2htZW50VXJscy5maWx0ZXIoXG4gIC8vICAgICAgICh4KSA9PiB4LnNwbGl0KCcvJykubGVuZ3RoID4gMVxuICAvLyAgICAgKSxcbiAgLy8gICB9O1xuICAvLyB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlQXBwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5hY3RpdmVUZW5hbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gaWYgKHRoaXMuc2VsZWN0ZWRUaWNrZXQgJiYgdGhpcy5hdHRhY2hlZE1lc3NhZ2UpIHtcbiAgICAvLyAgIGlmIChpZHggPiAtMSkge1xuICAgIC8vICAgICB0aGlzLnNlbGVjdGVkVGlja2V0Lk1lc3NhZ2VzW2lkeF0gPSB0aGlzLmZpbHRlck1lc3NhZ2UoXG4gICAgLy8gICAgICAgdGhpcy5hdHRhY2hlZE1lc3NhZ2VcbiAgICAvLyAgICAgKTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIGlmICh0aGlzLmF0dGFjaGVkTWVzc2FnZS5BdHRhY2htZW50cy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICAgICAgdGhpcy5zZWxlY3RlZFRpY2tldC5NZXNzYWdlcy51bnNoaWZ0KFxuICAgIC8vICAgICAgICAgdGhpcy5maWx0ZXJNZXNzYWdlKHRoaXMuYXR0YWNoZWRNZXNzYWdlKVxuICAgIC8vICAgICAgICk7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyB9XG5cbiAgICBjb25zdCBpdGVtOiBUaWNrZXQgPSB7XG4gICAgICBUaXRsZTogdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmNvbnRyb2xzWydUaXRsZSddLnZhbHVlLFxuICAgICAgRGVzY3JpcHRpb246IHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snRGVzY3JpcHRpb24nXS52YWx1ZSxcbiAgICAgIEN1cnJlbnRIYW5kbGVyOiB0aGlzLnNlbGVjdGVkVGlja2V0XG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFRpY2tldC5DdXJyZW50SGFuZGxlclxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIExhc3RIYW5kbGVyOiB0aGlzLnNlbGVjdGVkVGlja2V0XG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFRpY2tldC5MYXN0SGFuZGxlclxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIFByaW9yaXR5OiB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uY29udHJvbHNbJ1ByaW9yaXR5J10udmFsdWUsXG4gICAgICBBcHA6IHRoaXMuYWN0aXZlQXBwLFxuICAgICAgaWQ6ICcnLFxuICAgICAgU3RhdHVzOiB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uY29udHJvbHNbJ1N0YXR1cyddLnZhbHVlLFxuICAgICAgQ29tcGFueTogdGhpcy5kZWZhdWx0Q29tcGFueSxcbiAgICAgIE1lc3NhZ2VzOiB0aGlzLnNlbGVjdGVkVGlja2V0ID8gdGhpcy5zZWxlY3RlZFRpY2tldC5NZXNzYWdlcyA6IFtdLFxuICAgICAgRmlsZURhdGE6IHRoaXMuZmlsZURhdGEsXG4gICAgICBGaWxlVXJsczogdGhpcy5zZWxlY3RlZFRpY2tldCA/IHRoaXMuc2VsZWN0ZWRUaWNrZXQuRmlsZVVybHMgOiBbXSxcbiAgICAgIElkOiAnJyxcbiAgICAgIEV4ZWN1dGlvblRpbWU6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkV4ZWN1dGlvblRpbWVcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBDb2RlOiB0aGlzLnNlbGVjdGVkVGlja2V0ID8gdGhpcy5zZWxlY3RlZFRpY2tldC5Db2RlIDogJycsXG4gICAgICBUZW5hbnRJZDogdGhpcy5zZWxlY3RlZFRpY2tldFxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRUaWNrZXQuVGVuYW50SWRcbiAgICAgICAgOiB0aGlzLmFjdGl2ZVRlbmFudCxcbiAgICAgIFNlcnZpY2VOYW1lOiB0aGlzLnNlbGVjdGVkVGlja2V0ID8gdGhpcy5zZWxlY3RlZFRpY2tldC5TZXJ2aWNlTmFtZSA6ICcnLFxuICAgICAgQ3JlYXRlZEF0OiB0aGlzLnNlbGVjdGVkVGlja2V0XG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFRpY2tldC5DcmVhdGVkQXRcbiAgICAgICAgOiBuZXcgRGF0ZSgpLFxuICAgICAgLy8gQ3JlYXRlZEJ5OiB0aGlzLmFjdGl2ZVVzZXIgfHwgdW5kZWZpbmVkLFxuICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgRGF0YVN0YXRlOiB0aGlzLnNlbGVjdGVkVGlja2V0ID8gT2JqZWN0U3RhdGUuQ2hhbmdlZCA6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgIFRhZzogdGhpcy5hY3RpdmVVc2VyIHx8IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgaWYgKGl0ZW0uRGVzY3JpcHRpb24udHJpbSgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dJbmZvKCdEZXNjcmlwdGlvbiBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBUaWNrZXQvU2F2ZVRpY2tldGAsXG4gICAgICBbaXRlbV0sXG4gICAgICB0aGlzLm92ZXJyaWRlVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuVGlja2V0aW5nQVBJLFxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1RpY2tldCBzYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlcyBhcyBUaWNrZXRbXTtcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgcmVzdWx0SXRlbSA9IHJlc3VsdFswXTtcbiAgICAgICAgdGhpcy5vblNhdmUuZW1pdChyZXN1bHRJdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgZ2VuZXJhdGVTaXhEaWdpdE51bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKDEwMDAwMCArIE1hdGgucmFuZG9tKCkgKiA5MDAwMDApO1xuICB9XG5cbiAgZ2V0VGlja2V0TWVzc2FnZSgpOiBUaWNrZXRNZXNzYWdlIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRpY2tldCkge1xuICAgICAgY29uc3QgaW5pdGlhbE1lc3NhZ2UgPSB0aGlzLnNlbGVjdGVkVGlja2V0Lk1lc3NhZ2VzLmZpbmQoXG4gICAgICAgICh4KSA9PiB4LlN1YmplY3QgPT0gREVGQVVMVF9NRVNTQUdFX0ZPUl9JTklUSUFMX1VQTE9BRCxcbiAgICAgICk7XG4gICAgICBpZiAoaW5pdGlhbE1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uaW5pdGlhbE1lc3NhZ2UsIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuQ2hhbmdlZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZTogVGlja2V0TWVzc2FnZSA9IHtcbiAgICAgICAgICBUaWNrZXRDb2RlOiAnJyxcbiAgICAgICAgICBTdWJqZWN0OiBERUZBVUxUX01FU1NBR0VfRk9SX0lOSVRJQUxfVVBMT0FELFxuICAgICAgICAgIENvbnRlbnQ6ICcnLFxuICAgICAgICAgIEF0dGFjaG1lbnRzOiBbXSxcbiAgICAgICAgICBBdHRhY2htZW50VXJsczogW10sXG4gICAgICAgICAgQ29tcGFueTogdGhpcy5kZWZhdWx0Q29tcGFueSxcbiAgICAgICAgICBJZDogJycsXG4gICAgICAgICAgQ29kZTogJycsXG4gICAgICAgICAgVGVuYW50SWQ6ICcnLFxuICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJycsXG4gICAgICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG5ld01lc3NhZ2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IFRpY2tldE1lc3NhZ2UgPSB7XG4gICAgICAgIFRpY2tldENvZGU6ICcnLFxuICAgICAgICBTdWJqZWN0OiBERUZBVUxUX01FU1NBR0VfRk9SX0lOSVRJQUxfVVBMT0FELFxuICAgICAgICBDb250ZW50OiAnJyxcbiAgICAgICAgQXR0YWNobWVudHM6IFtdLFxuICAgICAgICBBdHRhY2htZW50VXJsczogW10sXG4gICAgICAgIENvbXBhbnk6IHRoaXMuZGVmYXVsdENvbXBhbnksXG4gICAgICAgIElkOiAnJyxcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBDb2RlOiAnJyxcbiAgICAgICAgVGVuYW50SWQ6ICcnLFxuICAgICAgICBTZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgIH07XG4gICAgICByZXR1cm4gbmV3TWVzc2FnZTtcbiAgICB9XG4gIH1cblxuICB0cmlnZ2VyRmlsZVVwbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGZpbGVJbnB1dC50eXBlID0gJ2ZpbGUnO1xuICAgIGZpbGVJbnB1dC5hY2NlcHQgPSAnLnBuZywgLmpwZywgLmpwZWcsIC5wZGYnO1xuICAgIGZpbGVJbnB1dC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyAvLyBIaWRkZW4gZmlsZSBpbnB1dFxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmlsZUlucHV0KTsgLy8gVGVtcG9yYXJpbHkgYWRkIHRvIERPTVxuXG4gICAgZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlSW5wdXQuZmlsZXM/LlswXTtcbiAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0ZpbGUoZmlsZSk7XG4gICAgICB9XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7IC8vIENsZWFuIHVwIGFmdGVyIHVzZVxuICAgIH0pO1xuXG4gICAgZmlsZUlucHV0LmNsaWNrKCk7IC8vIFByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlciBjbGlja1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzRmlsZShzZWxlY3RlZEZpbGU6IGdsb2JhbFRoaXMuRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIENoZWNrIGZpbGUgc2l6ZVxuICAgIGlmIChzZWxlY3RlZEZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgIGNvbnN0IGxpbWl0SW5NQiA9IHRoaXMubWF4RmlsZVNpemUgLyAxMDI0IC8gMTAyNDtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd0luZm8oYEZpbGUgc2l6ZSBsaW1pdCBvZiAke2xpbWl0SW5NQn1tYiBleGNlZWRlZGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGxldCBmaWxlVG9Qcm9jZXNzOiBnbG9iYWxUaGlzLkZpbGUgfCBudWxsID0gc2VsZWN0ZWRGaWxlO1xuICAgIC8vIGNvbnN0IHNhZmVOdW1iZXI6IG51bWJlciA9IDEgKiAxMDI0ICogMTAyNDtcbiAgICAvLyBpZiAoZmlsZVRvUHJvY2Vzcy5zaXplID4gc2FmZU51bWJlcikge1xuICAgIC8vICAgZmlsZVRvUHJvY2VzcyA9IGF3YWl0IHRoaXMudXRpbFNlcnZpY2UuY29tcHJlc3NJbWFnZShzZWxlY3RlZEZpbGUpO1xuICAgIC8vICAgaWYgKCFmaWxlVG9Qcm9jZXNzKSB7XG4gICAgLy8gICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd0Vycm9yKCdFcnJvciBjb21wcmVzc2luZyBpbWFnZScpO1xuICAgIC8vICAgICByZXR1cm47XG4gICAgLy8gICB9XG4gICAgLy8gfVxuXG4gICAgLy8gUmVhZCBmaWxlIGFuZCBjb252ZXJ0IHRvIGJhc2U2NFxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoc2VsZWN0ZWRGaWxlKTtcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZTY0ZGF0YSA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgY29uc3QgZmlsZSA9IHRoaXMuc2hhcmVkU2VydmljZS5jcmVhdGVDdXN0b21GaWxlKFxuICAgICAgICBiYXNlNjRkYXRhLFxuICAgICAgICAwLFxuICAgICAgICBzZWxlY3RlZEZpbGUsXG4gICAgICApO1xuICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgdGhpcy5maWxlRGF0YS5wdXNoKGZpbGUpO1xuICAgICAgICB0aGlzLmZpbGVVcmxzLnB1c2goYCR7ZmlsZS5OYW1lfWApO1xuICAgICAgICAvLyB0aGlzLnByb2ZpbGVJbWFnZSA9IGJhc2U2NGRhdGE7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAvLyAgIGlmICghdGhpcy5zZWxlY3RlZFRpY2tldCkge1xuICAvLyAgICAgcmV0dXJuIGZhbHNlO1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gISh0aGlzLnNlbGVjdGVkVGlja2V0LlN0YXR1cyA9PSB0aGlzLnBlbmRpbmdSZWYpO1xuICAvLyB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlXG4gIFtzaG93Q2xvc2VJY29uXT1cImZhbHNlXCJcbiAgW2Rpc21pc3NPdXRzaWRlQ2xpY2tdPVwiZmFsc2VcIlxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcbiAgW3NpemVdPVwiJ21lZGl1bSdcIlxuICBbbW9kZV09XCInZGlhbG9ndWUnXCJcbiAgW2N1c3RvbUNsYXNzXT1cIid0aWNrZXQtZGlhbG9nJ1wiXG4gIFtkaXNhYmxlRm9vdGVyXT1cInRydWVcIlxuICAob3Blbk1vZGFsKT1cIm9uTW9kYWxPcGVuKCRldmVudClcIlxuICBbaXNWaXNpYmxlXT1cImlzVmlzaWJsZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCJcbiAgKGNsb3NlTW9kYWwpPVwib25Nb2RhbENsb3NlKCRldmVudClcIlxuPlxuICA8bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWJvZHkgcC1bMjVweF0gZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXRpdGxlIGZvbnQtYm9sZCB0ZXh0LXhsXCI+XG4gICAgICAgICAge3sgdGhpcy5zZWxlY3RlZFRpY2tldCA/IFwiRWRpdCBUaWNrZXRcIiA6IFwiQ3JlYXRlIFRpY2tldFwiIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXN1YnRpdGxlXCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgICAgICAgPyBcIkZpbGwgdGhlIGZvcm0gYmVsb3cgdG8gZWRpdCBzZWxlY3RlZCB0aWNrZXRcIlxuICAgICAgICAgICAgICA6IFwiRmlsbCB0aGUgZm9ybSBiZWxvdyB0byBjcmVhdGUgYSB0aWNrZXRcIlxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDx2ZXJiZW5hLXRleHRhcmVhIG5hbWU9XCJUZXN0XCIgWyhuZ01vZGVsKV09XCJ0ZXN0XCIgLz5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImxvZ1Rlc3QoKVwiPkxvZzwvYnV0dG9uPiAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJjcmVhdGVUaWNrZXRGb3JtXCJcbiAgICAgICAgY2xhc3M9XCJhZGQtYXBwLWZvcm0gbWFpbi1mb3JtLWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0yXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taW5wdXQtY29udGFpbmVyIGZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW1cIj5UaXRsZTwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgICBuYW1lPVwiVGl0bGVcIlxuICAgICAgICAgICAgcGxhY2VIb2xkZXI9XCJUaXRsZVwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJUaXRsZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+RGVzY3JpcHRpb248L2Rpdj5cbiAgICAgICAgICA8dmVyYmVuYS1pbnB1dCBuYW1lPVwiRGVzY3JpcHRpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJEZXNjcmlwdGlvblwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0ZWRUaWNrZXRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW1cIj5DdXJyZW50IEhhbmRsZXI8L2Rpdj5cbiAgICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAgICAgbmFtZT1cIkN1cnJlbnRIYW5kbGVyXCJcbiAgICAgICAgICAgIHBsYWNlSG9sZGVyPVwiQ3VycmVudCBIYW5kbGVyXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjcmVhdGVUaWNrZXRGb3JtLmdldCgnQ3VycmVudEhhbmRsZXInKT8udmFsdWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0ZWRUaWNrZXRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW1cIj5MYXN0IEhhbmRsZXI8L2Rpdj5cbiAgICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAgICAgbmFtZT1cIkxhc3RIYW5kbGVyXCJcbiAgICAgICAgICAgIHBsYWNlSG9sZGVyPVwiTGFzdCBIYW5kbGVyXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjcmVhdGVUaWNrZXRGb3JtLmdldCgnTGFzdEhhbmRsZXInKT8udmFsdWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPlByaW9yaXR5PC9kaXY+XG4gICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBuYW1lPVwiUHJpb3JpdHlcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUHJpb3JpdHlcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwicHJpb3JpdHlPcHRpb25zXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiUHJpb3JpdHlcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPlN0YXR1czwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgbmFtZT1cIlN0YXR1c1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBTdGF0dXNcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwic3RhdHVzT3B0aW9uc1wiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJTdGF0dXNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1zZWN0aW9uIHAtMiBmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWNvbnRhaW5lciBncmlkIGdyaWQtY29scy0zIGdhcC0yXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIHRoaXMuZmlsZVVybHNcIj5cbiAgICAgICAgICAgICAgPGFwcC1maWxlLXJlbmRlciBbZmlsZVVybF09XCJmaWxlXCI+PC9hcHAtZmlsZS1yZW5kZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVwbG9hZC1zZWN0aW9uIGZsZXggZmxleC1jb2wgZmxleC0xIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3VzZUljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJ3VwbG9hZCdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmVyYmVuLXNlY29uZGFyeS1idXR0b25cIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cIidVcGxvYWQnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJpZ2dlckZpbGVVcGxvYWQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWNhcHRpb24gdGV4dC1zbSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICBJbmNsdWRlIEF0dGFjaG1lbnRzXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctYnV0dG9uLWNvbnRhaW5lciBmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgY2xhc3M9XCJ2ZXJiZW4tc2Vjb25kYXJ5LWJ1dHRvblwiXG4gICAgICAgICAgW3RleHRdPVwiJ0Nsb3NlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTW9kYWxDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgICBbZGlzYWJsZV09XCIhdGhpcy5jaGVja0Zvcm0oKVwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBjbGFzcz1cInZlcmJlbi1wcmltYXJ5LWJ1dHRvblwiXG4gICAgICAgICAgW3RleHRdPVwiJ1NhdmUnXCJcbiAgICAgICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cbiJdfQ==