tango-app-ui-manage-tickets 3.7.0-beta.64 → 3.7.0-beta.67
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.
- package/esm2022/lib/components/ticket-filter-panel/ticket-filter-panel.component.mjs +2 -2
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +11 -11
- package/fesm2022/tango-app-ui-manage-tickets.mjs +11 -11
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -372,7 +372,7 @@ export class TicketFilterPanelComponent {
|
|
|
372
372
|
lte: '<=',
|
|
373
373
|
between: '', // already handled above
|
|
374
374
|
};
|
|
375
|
-
return `${opMap[condition]}
|
|
375
|
+
return `${opMap[condition]}${from}`; // e.g. ">= 90"
|
|
376
376
|
}
|
|
377
377
|
onApply() {
|
|
378
378
|
const raw = this.filterForm.value;
|
|
@@ -432,4 +432,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
432
432
|
type: HostListener,
|
|
433
433
|
args: ['document:click', ['$event']]
|
|
434
434
|
}] } });
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWZpbHRlci1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL2NvbXBvbmVudHMvdGlja2V0LWZpbHRlci1wYW5lbC90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXQtZmlsdGVyLXBhbmVsL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBVXBFLE1BQU0sT0FBTywwQkFBMEI7SUErRWpCO0lBQXdCO0lBQXlCO0lBOUUxRCxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNqQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQyxDQUFHLGdCQUFnQjtJQUMzRCxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUN2QyxRQUFRLEdBQWtCLElBQUksQ0FBQyxDQUFDLHlCQUF5QjtJQUN6RCxNQUFNLENBQU07SUFFckIsZUFBZSxDQUFDLEtBQWlCO1FBRS9CLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUVwQywrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FB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eEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjLENBQUMsSUFBd0M7UUFDckQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBaGVZLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHlTQ1h2Qyx5M1pBa1lBOzs0RkR2WGEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjtxSUFLeEIsS0FBSztzQkFBZCxNQUFNO2dCQUNFLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDQyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFTixlQUFlO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGlja2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQ29uZGl0aW9uID0gJ2d0JyB8ICdsdCcgfCAnZ3RlJyB8ICdsdGUnIHwgJ2JldHdlZW4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGlja2V0LWZpbHRlci1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0RmlsdGVyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICBAT3V0cHV0KCkgYXBwbHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcGFuZWxDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7ICAgLy8g4pyFIG5vdCBgY2xvc2VgXHJcbiAgQElucHV0KCkgcGVybWlzc2lvblR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5ASW5wdXQoKSB1c2VyVHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7IC8vIGUuZy4gJ3RhbmdvJyBvciBvdGhlcnNcclxuQElucHV0KCkgY2xpZW50IDphbnk7XHJcbiBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbm9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cclxuICAvLyAx77iP4oOjIEFsd2F5cyBjbG9zZSBkcm9wZG93bnMgZmlyc3RcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUuc3RhdHVzID0gZmFsc2U7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLnJldmlld2VyID0gZmFsc2U7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLmFwcHJvdmVyID0gZmFsc2U7XHJcblxyXG4gIC8vIDLvuI/ig6MgSWYgZmlsdGVyIGlzIG5vdCBvcGVuIOKGkiBub3RoaW5nIHRvIGNsb3NlXHJcbiAgaWYgKCF0aGlzLmlzT3BlbikgcmV0dXJuO1xyXG5cclxuICAvLyAz77iP4oOjIENoZWNrIGlmIGNsaWNrZWQgaW5zaWRlIGZpbHRlciBjYXJkXHJcbiAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XHJcblxyXG4gIC8vIDTvuI/ig6MgSWYgY2xpY2tlZCBPVVRTSURFIOKGkiBjbG9zZSBlbnRpcmUgZmlsdGVyIHBhbmVsXHJcbiAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XHJcbiAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCh7XHJcbiAgICBzdGF0dXM6IFtdLFxyXG4gICAgcmV2aWV3ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICByZXZpZXdlckZyb206IG51bGwsXHJcbiAgICByZXZpZXdlclRvOiBudWxsLFxyXG5cclxuICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgYXBwcm92ZXJGcm9tOiBudWxsLFxyXG4gICAgYXBwcm92ZXJUbzogbnVsbCxcclxuXHJcbiAgICB0YW5nb0NvbmRpdGlvbjogbnVsbCxcclxuICAgIHRhbmdvRnJvbTogbnVsbCxcclxuICAgIHRhbmdvVG86IG51bGwsXHJcblxyXG4gICAgcmV2aWV3ZWRCeTogW10sXHJcbiAgICBhcHByb3ZlZEJ5OiBbXVxyXG4gIH0pO1xyXG50aGlzLm9uUmVzZXQoKTtcclxuICB9XHJcbn1cclxuICBpc09wZW4gPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJvbHMgdmlzaWJpbGl0eVxyXG5cclxuICAvLyBjYWxsZWQgZnJvbSBwYXJlbnQgdmlhICNmaWx0ZXJQYW5lbC5vcGVuKClcclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gY2FsbGVkIGZyb20gY2xvc2UgYnV0dG9uIGluc2lkZSB0aGUgcGFuZWxcclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLnBhbmVsQ2xvc2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dQYW5lbCA9IGZhbHNlOyAgICAgICAgICAgLy8geW91IGNhbiBhbHNvIGNvbnRyb2wgdGhpcyBmcm9tIHBhcmVudFxyXG5cclxuc3RhdHVzT3B0aW9uczogYW55W10gPSBbXHJcbiAgJ09wZW4nLFxyXG4gICdJbi1Qcm9ncmVzcycsXHJcbiAgJ0Nsb3NlZCcsXHJcbiAgJ09wZW4gLSBBY2N1cmFjeSBJc3N1ZScsXHJcbiAgJ0Nsb3NlZCAtIEFjY3VyYWN5IElzc3VlJyxcclxuICAnRXhwaXJlZCcsXHJcbl07XHJcblxyXG5cclxuICBjb25kaXRpb25PcHRpb25zID0gW1xyXG4gICAgeyB2YWx1ZTogJ2d0JywgbGFiZWw6ICc+IEdyZWF0ZXIgdGhhbicgfSxcclxuICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAnPCBMZXNzZXIgdGhhbicgfSxcclxuICAgIHsgdmFsdWU6ICdndGUnLCBsYWJlbDogJz49IEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycgfSxcclxuICAgIHsgdmFsdWU6ICdsdGUnLCBsYWJlbDogJzw9IExlc3NlciB0aGFuIG9yIGVxdWFsIHRvJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2JldHdlZW4nLCBsYWJlbDogJ0JldHdlZW4nIH0sXHJcbiAgXTtcclxuXHJcbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWYscHJpdmF0ZSBzZXJ2aWNlOlRpY2tldFNlcnZpY2UpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzdGF0dXM6IFtbXV0sXHJcblxyXG4gICAgICByZXZpZXdlckNvbmRpdGlvbjogW251bGwgYXMgQ29uZGl0aW9uIHwgbnVsbF0sXHJcbiAgICAgIHJldmlld2VyRnJvbTogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcbiAgICAgIHJldmlld2VyVG86IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG5cclxuICAgICAgYXBwcm92ZXJDb25kaXRpb246IFtudWxsIGFzIENvbmRpdGlvbiB8IG51bGxdLFxyXG4gICAgICBhcHByb3ZlckZyb206IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG4gICAgICBhcHByb3ZlclRvOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuXHJcbiAgICAgIHRhbmdvQ29uZGl0aW9uOiBbbnVsbCBhcyBDb25kaXRpb24gfCBudWxsXSxcclxuICAgICAgdGFuZ29Gcm9tOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgdGFuZ29UbzogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcblxyXG4gICAgICByZXZpZXdlZEJ5OiBbW11dLFxyXG4gIGFwcHJvdmVkQnk6IFtbXV0sICBcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vblJlc2V0KCk7XHJcbiAgfVxyXG5saW1pdFZhbHVlKGV2ZW50OiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICBsZXQgdmFsdWUgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAwO1xyXG4gIGlmICh2YWx1ZSA+IDEwMCkgdmFsdWUgPSAxMDA7XHJcblxyXG4gIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xyXG4gIHRoaXMuZmlsdGVyRm9ybS5nZXQoY29udHJvbE5hbWUpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG59XHJcblxyXG5nZXQgaXNUYW5nbygpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy51c2VyVHlwZSA9PT0gJ3RhbmdvJztcclxufVxyXG5cclxuLy8gU0hPVyAvIEhJREUgUlVMRVNcclxuXHJcbi8vIFJldmlld2VyIGFjY3VyYWN5IGFuZCBcIlJldmlld2VkIGJ5XCIgdmlzaWJsZSBmb3IgdGFuZ28gKyByZXZpZXdlclxyXG5nZXQgc2hvd1Jldmlld2VyQWNjdXJhY3koKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuaXNUYW5nbyB8fCB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAncmV2aWV3JztcclxufVxyXG5cclxuZ2V0IHNob3dSZXZpZXdlZEJ5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAgdGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ3Jldmlldyc7XHJcbn1cclxuXHJcbi8vIEFwcHJvdmVyIGFjY3VyYWN5IGFuZCBcIkFwcHJvdmVkIGJ5XCIgdmlzaWJsZSBmb3IgdGFuZ28gKyBhcHByb3ZlclxyXG5nZXQgc2hvd0FwcHJvdmVyQWNjdXJhY3koKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuaXNUYW5nbyB8fCB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAnYXBwcm92ZSc7XHJcbn1cclxuXHJcbmdldCBzaG93QXBwcm92ZWRCeSgpOiBib29sZWFuIHtcclxuICByZXR1cm4gIHRoaXMucGVybWlzc2lvblR5cGUgPT09ICdhcHByb3ZlJztcclxufVxyXG5cclxuLy8gVGFuZ28gYWNjdXJhY3kgb25seSBmb3IgdGFuZ28gdXNlcnNcclxuZ2V0IHNob3dUYW5nb0FjY3VyYWN5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLmlzVGFuZ287XHJcbn1cclxuc3RhdHVzRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbmlzU3RhdHVzU2VsZWN0ZWQoc3RhdHVzOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIHJldHVybiBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpO1xyXG59XHJcblxyXG5vblN0YXR1c0NoYW5nZShldmVudDogRXZlbnQsIHN0YXR1czogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIGxldCBuZXh0OiBzdHJpbmdbXTtcclxuXHJcbiAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpID8gc2VsZWN0ZWQgOiBbLi4uc2VsZWN0ZWQsIHN0YXR1c107XHJcbiAgfSBlbHNlIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5maWx0ZXIocyA9PiBzICE9PSBzdGF0dXMpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IG5leHQgfSk7XHJcbn1cclxuXHJcbnRvZ2dsZVN0YXR1c0Ryb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIGF2b2lkIGRvY3VtZW50IGNsaWNrIGNsb3NpbmcgaXRcclxuICB9XHJcbiAgdGhpcy5zdGF0dXNEcm9wZG93bk9wZW4gPSAhdGhpcy5zdGF0dXNEcm9wZG93bk9wZW47XHJcbn1cclxuXHJcbi8vIEFyZSBhbGwgc3RhdHVzZXMgY3VycmVudGx5IHNlbGVjdGVkP1xyXG5hcmVBbGxTdGF0dXNlc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHNlbGVjdGVkOiBzdHJpbmdbXSA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgfHwgW107XHJcbiAgcmV0dXJuIHNlbGVjdGVkLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnN0YXR1c09wdGlvbnMubGVuZ3RoO1xyXG59XHJcblxyXG4vLyBIYW5kbGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggY2hhbmdlXHJcbm9uU3RhdHVzU2VsZWN0QWxsQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICAvLyBTZWxlY3QgZXZlcnkgc3RhdHVzXHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IHN0YXR1czogWy4uLnRoaXMuc3RhdHVzT3B0aW9uc10gfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIGFsbFxyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IFtdIH0pO1xyXG4gIH1cclxufVxyXG5nZXQgc2VsZWN0ZWRTdGF0dXNlcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgfHwgW107XHJcbn1cclxuXHJcbiAgaXNCZXR3ZWVuKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2xOYW1lKT8udmFsdWUgPT09ICdiZXR3ZWVuJztcclxuICB9XHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICBpZiAoY2hhbmdlc1snY2xpZW50J10gfHwgY2hhbmdlc1sncGVybWlzc2lvblR5cGUnXSB8fCBjaGFuZ2VzWyd1c2VyVHlwZSddKSB7XHJcbiAgICB0aGlzLmxvYWRSZXZpZXdlckxpc3QoKTtcclxuICB9XHJcbn1cclxuLy8gZnVsbCB1c2VyIGxpc3QgeW91IGFscmVhZHkgaGF2ZVxyXG51c2VyTGlzdDogYW55W10gPSBbXTtcclxuXHJcblxyXG5yZXZpZXdlclNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xyXG5cclxuLy8g4pyFIHNpbXBsZSBjb21wdXRlZCBsaXN0IGZvciAqbmdGb3JcclxuZ2V0IGZpbHRlcmVkUmV2aWV3ZXJMaXN0KCk6IHsgZW1haWw6IHN0cmluZzsgbmFtZT86IHN0cmluZyB9W10ge1xyXG4gIGNvbnN0IHRlcm0gPSAodGhpcy5yZXZpZXdlclNlYXJjaFRlcm0gfHwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICBpZiAoIXRlcm0pIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMudXNlckxpc3QuZmlsdGVyKHUgPT4ge1xyXG4gICAgY29uc3QgZW1haWwgPSAodS5lbWFpbCB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG5hbWUgPSAodS5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgcmV0dXJuIGVtYWlsLmluY2x1ZGVzKHRlcm0pIHx8IG5hbWUuaW5jbHVkZXModGVybSk7XHJcbiAgfSk7XHJcbn1cclxuYXBwcm92ZXJTZWFyY2hUZXJtOmFueTtcclxuZ2V0IGZpbHRlcmVkQXBwcm92ZXJMaXN0KCk6IGFueVtdIHtcclxuICBjb25zdCB0ZXJtID0gKHRoaXMuYXBwcm92ZXJTZWFyY2hUZXJtIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICBpZiAoIXRlcm0pIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMudXNlckxpc3QuZmlsdGVyKCh1OiBhbnkpID0+IHtcclxuICAgIGNvbnN0IGVtYWlsID0gKHUuZW1haWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBuYW1lID0gKHUubmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiBlbWFpbC5pbmNsdWRlcyh0ZXJtKSB8fCBuYW1lLmluY2x1ZGVzKHRlcm0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcclxuICB0aGlzLmFwcHJvdmVyU2VhcmNoVGVybSA9IHZhbHVlO1xyXG59XHJcbnByaXZhdGUgbG9hZFJldmlld2VyTGlzdCgpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuY2xpZW50KSB7XHJcbiAgICB0aGlzLnVzZXJMaXN0ID0gW107XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBsZXQgdHlwZTogc3RyaW5nO1xyXG5cclxuICBpZiAodGhpcy51c2VyVHlwZSA9PT0gJ3RhbmdvJykge1xyXG4gICAgdHlwZSA9ICd0YW5nbyc7ICAgIC8vIG9yICdhbGwnXHJcbiAgfSBlbHNlIGlmICh0aGlzLnBlcm1pc3Npb25UeXBlID09PSAncmV2aWV3Jykge1xyXG4gICAgdHlwZSA9ICdyZXZpZXcnO1xyXG4gIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ2FwcHJvdmUnKSB7XHJcbiAgICB0eXBlID0gJ2FwcHJvdmUnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnVzZXJMaXN0ID0gW107XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICB0aGlzLnNlcnZpY2UuZ2V0UmV2aWV3ZXJBcGkodGhpcy5jbGllbnQsIHR5cGUsJycpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLy8gb3BlbiBmbGFnc1xyXG5yZXZpZXdlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5hcHByb3ZlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5cclxuLy8gY29udmVuaWVuY2UgZ2V0dGVyc1xyXG5nZXQgc2VsZWN0ZWRSZXZpZXdlZEJ5KCk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnJldmlld2VkQnkgfHwgW107XHJcbn1cclxuXHJcbmdldCBzZWxlY3RlZEFwcHJvdmVkQnkoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUuYXBwcm92ZWRCeSB8fCBbXTtcclxufVxyXG5cclxuLy8gLS0tIFJldmlld2VkIEJ5IGhlbHBlcnMgLS0tXHJcblxyXG50b2dnbGVSZXZpZXdlckRyb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgdGhpcy5yZXZpZXdlckRyb3Bkb3duT3BlbiA9ICF0aGlzLnJldmlld2VyRHJvcGRvd25PcGVuO1xyXG59XHJcblxyXG5pc1Jldmlld2VyU2VsZWN0ZWQoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLnNlbGVjdGVkUmV2aWV3ZWRCeS5pbmNsdWRlcyhlbWFpbCk7XHJcbn1cclxuXHJcbm9uUmV2aWV3ZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBlbWFpbDogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZCA9IFsuLi50aGlzLnNlbGVjdGVkUmV2aWV3ZWRCeV07XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICBpZiAoIXNlbGVjdGVkLmluY2x1ZGVzKGVtYWlsKSkgc2VsZWN0ZWQucHVzaChlbWFpbCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IGkgPSBzZWxlY3RlZC5pbmRleE9mKGVtYWlsKTtcclxuICAgIGlmIChpID49IDApIHNlbGVjdGVkLnNwbGljZShpLCAxKTtcclxuICB9XHJcblxyXG4gIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgcmV2aWV3ZWRCeTogc2VsZWN0ZWQgfSk7XHJcbn1cclxuXHJcbmFyZUFsbFJldmlld2Vyc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICB0aGlzLnVzZXJMaXN0Lmxlbmd0aCA+IDAgJiZcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCA9PT0gdGhpcy51c2VyTGlzdC5sZW5ndGhcclxuICApO1xyXG59XHJcblxyXG5vblJldmlld2VyU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIHJldmlld2VkQnk6IHRoaXMudXNlckxpc3QubWFwKCh1OmFueSkgPT4gdS5lbWFpbCksXHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyByZXZpZXdlZEJ5OiBbXSB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8vIC0tLSBBcHByb3ZlZCBCeSBoZWxwZXJzIC0tLVxyXG5cclxudG9nZ2xlQXBwcm92ZXJEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIHRoaXMuYXBwcm92ZXJEcm9wZG93bk9wZW4gPSAhdGhpcy5hcHByb3ZlckRyb3Bkb3duT3BlbjtcclxufVxyXG5cclxuaXNBcHByb3ZlclNlbGVjdGVkKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5zZWxlY3RlZEFwcHJvdmVkQnkuaW5jbHVkZXMoZW1haWwpO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyQ2hhbmdlKGV2ZW50OiBFdmVudCwgZW1haWw6IHN0cmluZykge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgY29uc3Qgc2VsZWN0ZWQgPSBbLi4udGhpcy5zZWxlY3RlZEFwcHJvdmVkQnldO1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgaWYgKCFzZWxlY3RlZC5pbmNsdWRlcyhlbWFpbCkpIHNlbGVjdGVkLnB1c2goZW1haWwpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBpID0gc2VsZWN0ZWQuaW5kZXhPZihlbWFpbCk7XHJcbiAgICBpZiAoaSA+PSAwKSBzZWxlY3RlZC5zcGxpY2UoaSwgMSk7XHJcbiAgfVxyXG5cclxuICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IGFwcHJvdmVkQnk6IHNlbGVjdGVkIH0pO1xyXG59XHJcblxyXG5hcmVBbGxBcHByb3ZlcnNTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgdGhpcy51c2VyTGlzdC5sZW5ndGggPiAwICYmXHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggPT09IHRoaXMudXNlckxpc3QubGVuZ3RoXHJcbiAgKTtcclxufVxyXG5cclxub25BcHByb3ZlclNlbGVjdEFsbChldmVudDogRXZlbnQpIHtcclxuICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICBhcHByb3ZlZEJ5OiB0aGlzLnVzZXJMaXN0Lm1hcCgodTphbnkpID0+IHUuZW1haWwpLFxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgYXBwcm92ZWRCeTogW10gfSk7XHJcbiAgfVxyXG59XHJcblxyXG5vblJlc2V0KCk6IHZvaWQge1xyXG4gIHRoaXMuZmlsdGVyRm9ybS5yZXNldCh7XHJcbiAgICBzdGF0dXM6IFtdLFxyXG4gICAgcmV2aWV3ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICByZXZpZXdlckZyb206IG51bGwsXHJcbiAgICByZXZpZXdlclRvOiBudWxsLFxyXG5cclxuICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgYXBwcm92ZXJGcm9tOiBudWxsLFxyXG4gICAgYXBwcm92ZXJUbzogbnVsbCxcclxuXHJcbiAgICB0YW5nb0NvbmRpdGlvbjogbnVsbCxcclxuICAgIHRhbmdvRnJvbTogbnVsbCxcclxuICAgIHRhbmdvVG86IG51bGwsXHJcblxyXG4gICAgcmV2aWV3ZWRCeTogW10sXHJcbiAgICBhcHByb3ZlZEJ5OiBbXVxyXG4gIH0pO1xyXG5cclxuICAvLyAy77iP4oOjIFJlc2V0IHNlYXJjaCB0ZXJtc1xyXG4gIHRoaXMucmV2aWV3ZXJTZWFyY2hUZXJtID0gJyc7XHJcbiAgdGhpcy5hcHByb3ZlclNlYXJjaFRlcm0gPSAnJztcclxuXHJcbiAgLy8gM++4j+KDoyBCdWlsZCBlbXB0eSBwYXlsb2FkIHRvIHNlbmQgYmFja1xyXG4gIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1czogW10sXHJcbiAgICBmaWx0ZXJCeVJldmlld2VyOiBudWxsLFxyXG4gICAgZmlsdGVyQnlBcHByb3ZlcjogbnVsbCxcclxuICAgIGZpbHRlckJ5VGFuZ286IG51bGwsXHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk6IFtdLFxyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeTogW11cclxuICB9O1xyXG5cclxuICAvLyA077iP4oOjIEVtaXQgdGhlIG5vdy1lbXB0eSBmaWx0ZXIgcmVzdWx0XHJcbiAgdGhpcy5hcHBseS5lbWl0KHBheWxvYWQpO1xyXG5cclxuICAvLyA177iP4oOjIENsb3NlIHRoZSBmaWx0ZXIgcGFuZWxcclxuICB0aGlzLmNsb3NlKCk7XHJcbn1cclxuXHJcbnByaXZhdGUgbWFwQWNjdXJhY3koXHJcbiAgY29uZGl0aW9uOiBDb25kaXRpb24gfCBudWxsLFxyXG4gIGZyb206IG51bWJlciB8IG51bGwsXHJcbiAgdG86IG51bWJlciB8IG51bGxcclxuKTogc3RyaW5nIHwgbnVsbCB7XHJcblxyXG4gIC8vIG5vdGhpbmcgc2VsZWN0ZWRcclxuICBpZiAoIWNvbmRpdGlvbiB8fCBmcm9tID09IG51bGwpIHJldHVybiBudWxsO1xyXG5cclxuICAvLyBcImJldHdlZW5cIiDihpIgXCI5MCB0byAxMDBcIlxyXG4gIGlmIChjb25kaXRpb24gPT09ICdiZXR3ZWVuJykge1xyXG4gICAgaWYgKHRvID09IG51bGwpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIGAke2Zyb219IHRvICR7dG99YDtcclxuICB9XHJcblxyXG4gIC8vIG90aGVyIGNvbmRpdGlvbnMgKGd0LCBsdCwgZ3RlLCBsdGUpXHJcbiAgY29uc3Qgb3BNYXA6IFJlY29yZDxDb25kaXRpb24sIHN0cmluZz4gPSB7XHJcbiAgICBndDogJz4nLFxyXG4gICAgbHQ6ICc8JyxcclxuICAgIGd0ZTogJz49JyxcclxuICAgIGx0ZTogJzw9JyxcclxuICAgIGJldHdlZW46ICcnLCAvLyBhbHJlYWR5IGhhbmRsZWQgYWJvdmVcclxuICB9O1xyXG5cclxuICByZXR1cm4gYCR7b3BNYXBbY29uZGl0aW9uXX0gJHtmcm9tfWA7ICAvLyBlLmcuIFwiPj0gOTBcIlxyXG59XHJcblxyXG4gIG9uQXBwbHkoKTogdm9pZCB7XHJcblxyXG4gICBjb25zdCByYXcgPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XHJcblxyXG4gIGNvbnN0IHJldmlld2VyU3RyID0gdGhpcy5tYXBBY2N1cmFjeShyYXcucmV2aWV3ZXJDb25kaXRpb24sIHJhdy5yZXZpZXdlckZyb20sIHJhdy5yZXZpZXdlclRvKTtcclxuICBjb25zdCBhcHByb3ZlclN0ciA9IHRoaXMubWFwQWNjdXJhY3kocmF3LmFwcHJvdmVyQ29uZGl0aW9uLCByYXcuYXBwcm92ZXJGcm9tLCByYXcuYXBwcm92ZXJUbyk7XHJcbiAgY29uc3QgdGFuZ29TdHIgICAgPSB0aGlzLm1hcEFjY3VyYWN5KHJhdy50YW5nb0NvbmRpdGlvbiwgcmF3LnRhbmdvRnJvbSwgcmF3LnRhbmdvVG8pO1xyXG5cclxuICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM6IHJhdy5zdGF0dXMgfHwgW10sXHJcblxyXG4gICAgZmlsdGVyQnlSZXZpZXdlcjogcmV2aWV3ZXJTdHIsXHJcbiAgICBmaWx0ZXJCeUFwcHJvdmVyOiBhcHByb3ZlclN0cixcclxuICAgIGZpbHRlckJ5VGFuZ286IHRhbmdvU3RyLFxyXG5cclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeTogcmF3LnJldmlld2VkQnkgfHwgW10sICAgICAgICBcclxuICAgIGZpbGV0ZXJCeUFwcHJvdmVkQnk6IHJhdy5hcHByb3ZlZEJ5IHx8IFtdLCAgICAgICAgXHJcbiAgfTtcclxuICB0aGlzLmFwcGx5LmVtaXQocGF5bG9hZCk7XHJcbiAgdGhpcy5jbG9zZSgpO1xyXG4gICAgdGhpcy5zaG93UGFuZWwgPSBmYWxzZTtcclxuICB9XHJcblxyXG5kcm9wZG93blN0YXRlID0ge1xyXG4gIHN0YXR1czogZmFsc2UsXHJcbiAgcmV2aWV3ZXI6IGZhbHNlLFxyXG4gIGFwcHJvdmVyOiBmYWxzZVxyXG59O1xyXG4vLyBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXHJcbmNsb3NlQWxsKCkge1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5zdGF0dXMgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUucmV2aWV3ZXIgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUuYXBwcm92ZXIgPSBmYWxzZTtcclxufVxyXG5cclxudG9nZ2xlRHJvcGRvd24odHlwZTogJ3N0YXR1cycgfCAncmV2aWV3ZXInIHwgJ2FwcHJvdmVyJywgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgLy8gQ2xvc2UgYWxsIGJlZm9yZSBvcGVuaW5nIGEgbmV3IG9uZVxyXG4gIHRoaXMuY2xvc2VBbGwoKTtcclxuXHJcbiAgLy8gVG9nZ2xlIG9ubHkgdGhlIHNlbGVjdGVkIG9uZVxyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZVt0eXBlXSA9ICF0aGlzLmRyb3Bkb3duU3RhdGVbdHlwZV07XHJcbn1cclxuXHJcbmlzRHJvcGRvd25PcGVuKHR5cGU6ICdzdGF0dXMnIHwgJ3Jldmlld2VyJyB8ICdhcHByb3ZlcicpIHtcclxuICByZXR1cm4gdGhpcy5kcm9wZG93blN0YXRlW3R5cGVdO1xyXG59XHJcbn1cclxuIiwiPCEtLSB0aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sIC0tPlxyXG48ZGl2IGNsYXNzPVwiZmlsdGVyLXdyYXBwZXJcIiAqbmdJZj1cImlzT3BlblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci1oZWFkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRpdGxlXCI+RmlsdGVyIE9wdGlvbnM8L2Rpdj5cclxuICAgICAgPCEtLSA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCI+4pyVPC9idXR0b24+IC0tPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XHJcbiAgICAgIDwhLS0gU3RhdHVzIC0tPlxyXG48ZGl2IGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3RhdHVzPC9sYWJlbD5cclxuXHJcbiAgPCEtLSBIZWFkZXIgLyB0cmlnZ2VyIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic3RhdHVzLXNlbGVjdCBib3JkZXIgcm91bmRlZCBweC0zIHB5LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJ3N0YXR1cycsICRldmVudClcIlxyXG4gID5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkU3RhdHVzZXMubGVuZ3RoXCI+U2VsZWN0PC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRTdGF0dXNlcy5sZW5ndGggPT09IDFcIj5cclxuICAgICAge3sgc2VsZWN0ZWRTdGF0dXNlc1swXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRTdGF0dXNlcy5sZW5ndGggPiAxXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxzcGFuPnt7IHNlbGVjdGVkU3RhdHVzZXNbMF0gfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbXMtMlwiPlxyXG4gICAgICAgICt7eyBzZWxlY3RlZFN0YXR1c2VzLmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBEUk9QRE9XTiBQQU5FTCAoT1ZFUkxBWSkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzdGF0dXMtZHJvcGRvd24gcG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgbXQtMSBib3JkZXIgcm91bmRlZCBwLTEgYmctd2hpdGVcIlxyXG4gICAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gICAqbmdJZj1cImlzRHJvcGRvd25PcGVuKCdzdGF0dXMnKVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+XHJcbiAgICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBcIlxyXG4gICAgICAgIGlkPVwic3RhdHVzLXNlbGVjdC1hbGxcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cImFyZUFsbFN0YXR1c2VzU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblN0YXR1c1NlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiIGZvcj1cInN0YXR1cy1zZWxlY3QtYWxsXCI+XHJcbiAgICAgICAgU2VsZWN0IEFsbFxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS0gT3B0aW9ucyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0xXCJcclxuICAgICAgKm5nRm9yPVwibGV0IHMgb2Ygc3RhdHVzT3B0aW9uc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IFwiXHJcbiAgICAgICAgW2lkXT1cIidzdGF0dXMtJyArIHNcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cImlzU3RhdHVzU2VsZWN0ZWQocylcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25TdGF0dXNDaGFuZ2UoJGV2ZW50LCBzKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIidzdGF0dXMtJyArIHNcIj5cclxuICAgICAgICB7eyBzIH19XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgIDwhLS0gUmV2aWV3ZXIgYWNjdXJhY3kgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJzaG93UmV2aWV3ZXJBY2N1cmFjeVwiIChjbGljayk9XCJjbG9zZUFsbCgpXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlJldmlld2VyIGFjY3VyYWN5ICglKSBieSBjb25kaXRpb248L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LTEwMFwiIGZvcm1Db250cm9sTmFtZT1cInJldmlld2VyQ29uZGl0aW9uXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGNvbmRpdGlvbk9wdGlvbnNcIiBbbmdWYWx1ZV09XCJjLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3sgYy5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDwhLS0gb25lIG9yIHR3byBpbnB1dHMgLS0+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCZXR3ZWVuKCdyZXZpZXdlckNvbmRpdGlvbicpOyBlbHNlIHNpbmdsZVJldmlld2VyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld2VyRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAncmV2aWV3ZXJGcm9tJylcIiAvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXZpZXdlclRvXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRvXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAncmV2aWV3ZXJUbycpXCIgLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVSZXZpZXdlcj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmV2aWV3ZXJGcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjEgdG8gMTAwJVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3Jldmlld2VyRnJvbScpXCIgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBBcHByb3ZlciBhY2N1cmFjeSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInNob3dBcHByb3ZlckFjY3VyYWN5XCIgKGNsaWNrKT1cImNsb3NlQWxsKClcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QXBwcm92ZXIgYWNjdXJhY3kgKCUpIGJ5IGNvbmRpdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctMTAwXCIgZm9ybUNvbnRyb2xOYW1lPVwiYXBwcm92ZXJDb25kaXRpb25cIj5cclxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY29uZGl0aW9uT3B0aW9uc1wiIFtuZ1ZhbHVlXT1cImMudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBjLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQmV0d2VlbignYXBwcm92ZXJDb25kaXRpb24nKTsgZWxzZSBzaW5nbGVBcHByb3ZlclwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHByb3ZlckZyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRnJvbVwiIFxyXG4gICAgICAgICAgICAgIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ2FwcHJvdmVyRnJvbScpXCIvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHByb3ZlclRvXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRvXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAnYXBwcm92ZXJUbycpXCIgLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVBcHByb3Zlcj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBwcm92ZXJGcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjEgdG8gMTAwJVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ2FwcHJvdmVyRnJvbScpXCIgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBUYW5nbyBhY2N1cmFjeSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInNob3dUYW5nb0FjY3VyYWN5XCIgKGNsaWNrKT1cImNsb3NlQWxsKClcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGFuZ28gYWNjdXJhY3kgKCUpIGJ5IGNvbmRpdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctMTAwXCIgZm9ybUNvbnRyb2xOYW1lPVwidGFuZ29Db25kaXRpb25cIj5cclxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY29uZGl0aW9uT3B0aW9uc1wiIFtuZ1ZhbHVlXT1cImMudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBjLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQmV0d2VlbigndGFuZ29Db25kaXRpb24nKTsgZWxzZSBzaW5nbGVUYW5nb1wiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YW5nb0Zyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRnJvbVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3RhbmdvRnJvbScpXCIgLz5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGFuZ29Ub1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUb1wiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3RhbmdvVG8nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlVGFuZ28+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhbmdvRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxIHRvIDEwMCVcIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICd0YW5nb0Zyb20nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuPGRpdlxyXG4gIGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgKm5nSWY9XCJzaG93UmV2aWV3ZWRCeVwiXHJcbiAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbj5cclxuICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UmV2aWV3ZWQgYnk8L2xhYmVsPlxyXG5cclxuICA8IS0tIFRyaWdnZXIgLyBkaXNwbGF5IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCdyZXZpZXdlcicsICRldmVudClcIlxyXG4gID5cclxuICAgIDwhLS0gMCBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkUmV2aWV3ZWRCeS5sZW5ndGhcIj5cclxuICAgICAgU2VsZWN0XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSAxIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJldmlld2VkQnkubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkUmV2aWV3ZWRCeVswXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDwhLS0gPjEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkUmV2aWV3ZWRCeS5sZW5ndGggPiAxXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRSZXZpZXdlZEJ5WzBdIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIG1zLTJcIj5cclxuICAgICAgICAre3sgc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuPGRpdlxyXG4gICpuZ0lmPVwiaXNEcm9wZG93bk9wZW4oJ3Jldmlld2VyJylcIlxyXG4gIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgYm9yZGVyIHJvdW5kZWQgYmctd2hpdGUgcC0xIG10LTFcIlxyXG4gIHN0eWxlPVwiei1pbmRleDogMTAwMDsgbWF4LWhlaWdodDogMjIwcHg7IG92ZXJmbG93LXk6IGF1dG87XCJcclxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG5cclxuICA8IS0tIPCflI0gU2VhcmNoIGJveCAtLT5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJtYi0yIHB4LTBcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGJ5IGVtYWlsXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJyZXZpZXdlclNlYXJjaFRlcm1cIlxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+IC0tPlxyXG5cclxuICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBtYi0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICBpZD1cInJldmlld2VyLWFsbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImFyZUFsbFJldmlld2Vyc1NlbGVjdGVkKClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uUmV2aWV3ZXJTZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgPGxhYmVsIGZvcj1cInJldmlld2VyLWFsbFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiPlxyXG4gICAgICBTZWxlY3QgQWxsXHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE9wdGlvbnMg4oCTIG5vdyB1c2UgZ2V0dGVyIGZpbHRlcmVkUmV2aWV3ZXJMaXN0IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1jaGVjayBtYi0xIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAqbmdGb3I9XCJsZXQgdSBvZiBmaWx0ZXJlZFJldmlld2VyTGlzdFwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIFtpZF09XCIncmV2LScgKyB1LmVtYWlsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiaXNSZXZpZXdlclNlbGVjdGVkKHUuZW1haWwpXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblJldmlld2VyQ2hhbmdlKCRldmVudCwgdS5lbWFpbClcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIidyZXYtJyArIHUuZW1haWxcIj5cclxuICAgICAge3sgdS5lbWFpbCB9fVxyXG4gICAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuICAgICAgPCEtLSBBcHByb3ZlZCBCeSAtLT5cclxuPGRpdlxyXG4gIGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgKm5nSWY9XCJzaG93QXBwcm92ZWRCeVwiXHJcbiAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbj5cclxuICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QXBwcm92ZWQgYnk8L2xhYmVsPlxyXG5cclxuICA8IS0tIFRyaWdnZXIgLyBkaXNwbGF5IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCdhcHByb3ZlcicsICRldmVudClcIlxyXG4gID5cclxuICAgIDwhLS0gMCBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGhcIj5cclxuICAgICAgU2VsZWN0XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSAxIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEFwcHJvdmVkQnkubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkQXBwcm92ZWRCeVswXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDwhLS0gPjEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggPiAxXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRBcHByb3ZlZEJ5WzBdIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIG1zLTJcIj5cclxuICAgICAgICAre3sgc2VsZWN0ZWRBcHByb3ZlZEJ5Lmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICA8L2Rpdj5cclxuPCEtLSBEcm9wZG93biBwYW5lbCAtLT5cclxuPGRpdlxyXG4gKm5nSWY9XCJpc0Ryb3Bkb3duT3BlbignYXBwcm92ZXInKVwiXHJcbiAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBib3JkZXIgcm91bmRlZCBiZy13aGl0ZSBwLTEgbXQtMVwiXHJcbiAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4+XHJcblxyXG4gIDwhLS0g8J+UjSBTZWFyY2ggYm94IC0tPlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cIm1iLTIgcHgtMFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZW1haWxcIlxyXG4gICAgICBbbmdNb2RlbF09XCJhcHByb3ZlclNlYXJjaFRlcm1cIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvblJldmlld2VyU2VhcmNoKCRldmVudClcIlxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+IC0tPlxyXG5cclxuICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBtYi0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICBpZD1cInJldmlld2VyLWFsbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImFyZUFsbFJldmlld2Vyc1NlbGVjdGVkKClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uUmV2aWV3ZXJTZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgPGxhYmVsIGZvcj1cInJldmlld2VyLWFsbFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiPlxyXG4gICAgICBTZWxlY3QgQWxsXHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE9wdGlvbnMgKHVzZSBmaWx0ZXJlZFJldmlld2VyTGlzdCBpbnN0ZWFkIG9mIHVzZXJMaXN0KSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tY2hlY2sgbWItMSBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKm5nRm9yPVwibGV0IHUgb2YgZmlsdGVyZWRBcHByb3Zlckxpc3RcIlxyXG4gID5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBbaWRdPVwiJ3Jldi0nICsgdS5lbWFpbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImlzUmV2aWV3ZXJTZWxlY3RlZCh1LmVtYWlsKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25SZXZpZXdlckNoYW5nZSgkZXZlbnQsIHUuZW1haWwpXCJcclxuICAgIC8+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCIgW2Zvcl09XCIncmV2LScgKyB1LmVtYWlsXCI+XHJcbiAgICAgIHt7IHUuZW1haWwgfX1cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICA8IS0tIERyb3Bkb3duIHBhbmVsIC0tPlxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuICAgICAgPCEtLSBGb290ZXIgYnV0dG9ucyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTEwMCBtdC00XCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy01MCBtZS0xXCIgKGNsaWNrKT1cIm9uUmVzZXQoKVwiPlxyXG4gICAgICAgICAgUmVzZXRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTUwIG1zLTFcIiAoY2xpY2spPVwib25BcHBseSgpXCI+XHJcbiAgICAgICAgICBBcHBseVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
435
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWZpbHRlci1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL2NvbXBvbmVudHMvdGlja2V0LWZpbHRlci1wYW5lbC90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXQtZmlsdGVyLXBhbmVsL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBVXBFLE1BQU0sT0FBTywwQkFBMEI7SUErRWpCO0lBQXdCO0lBQXlCO0lBOUUxRCxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNqQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQyxDQUFHLGdCQUFnQjtJQUMzRCxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUN2QyxRQUFRLEdBQWtCLElBQUksQ0FBQyxDQUFDLHlCQUF5QjtJQUN6RCxNQUFNLENBQU07SUFFckIsZUFBZSxDQUFDLEtBQWlCO1FBRS9CLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUVwQywrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FB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eEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjLENBQUMsSUFBd0M7UUFDckQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBaGVZLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHlTQ1h2Qyx5M1pBa1lBOzs0RkR2WGEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjtxSUFLeEIsS0FBSztzQkFBZCxNQUFNO2dCQUNFLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDQyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFTixlQUFlO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGlja2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQ29uZGl0aW9uID0gJ2d0JyB8ICdsdCcgfCAnZ3RlJyB8ICdsdGUnIHwgJ2JldHdlZW4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGlja2V0LWZpbHRlci1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0RmlsdGVyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICBAT3V0cHV0KCkgYXBwbHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcGFuZWxDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7ICAgLy8g4pyFIG5vdCBgY2xvc2VgXHJcbiAgQElucHV0KCkgcGVybWlzc2lvblR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5ASW5wdXQoKSB1c2VyVHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7IC8vIGUuZy4gJ3RhbmdvJyBvciBvdGhlcnNcclxuQElucHV0KCkgY2xpZW50IDphbnk7XHJcbiBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbm9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cclxuICAvLyAx77iP4oOjIEFsd2F5cyBjbG9zZSBkcm9wZG93bnMgZmlyc3RcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUuc3RhdHVzID0gZmFsc2U7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLnJldmlld2VyID0gZmFsc2U7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLmFwcHJvdmVyID0gZmFsc2U7XHJcblxyXG4gIC8vIDLvuI/ig6MgSWYgZmlsdGVyIGlzIG5vdCBvcGVuIOKGkiBub3RoaW5nIHRvIGNsb3NlXHJcbiAgaWYgKCF0aGlzLmlzT3BlbikgcmV0dXJuO1xyXG5cclxuICAvLyAz77iP4oOjIENoZWNrIGlmIGNsaWNrZWQgaW5zaWRlIGZpbHRlciBjYXJkXHJcbiAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XHJcblxyXG4gIC8vIDTvuI/ig6MgSWYgY2xpY2tlZCBPVVRTSURFIOKGkiBjbG9zZSBlbnRpcmUgZmlsdGVyIHBhbmVsXHJcbiAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XHJcbiAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCh7XHJcbiAgICBzdGF0dXM6IFtdLFxyXG4gICAgcmV2aWV3ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICByZXZpZXdlckZyb206IG51bGwsXHJcbiAgICByZXZpZXdlclRvOiBudWxsLFxyXG5cclxuICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgYXBwcm92ZXJGcm9tOiBudWxsLFxyXG4gICAgYXBwcm92ZXJUbzogbnVsbCxcclxuXHJcbiAgICB0YW5nb0NvbmRpdGlvbjogbnVsbCxcclxuICAgIHRhbmdvRnJvbTogbnVsbCxcclxuICAgIHRhbmdvVG86IG51bGwsXHJcblxyXG4gICAgcmV2aWV3ZWRCeTogW10sXHJcbiAgICBhcHByb3ZlZEJ5OiBbXVxyXG4gIH0pO1xyXG50aGlzLm9uUmVzZXQoKTtcclxuICB9XHJcbn1cclxuICBpc09wZW4gPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJvbHMgdmlzaWJpbGl0eVxyXG5cclxuICAvLyBjYWxsZWQgZnJvbSBwYXJlbnQgdmlhICNmaWx0ZXJQYW5lbC5vcGVuKClcclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gY2FsbGVkIGZyb20gY2xvc2UgYnV0dG9uIGluc2lkZSB0aGUgcGFuZWxcclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLnBhbmVsQ2xvc2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dQYW5lbCA9IGZhbHNlOyAgICAgICAgICAgLy8geW91IGNhbiBhbHNvIGNvbnRyb2wgdGhpcyBmcm9tIHBhcmVudFxyXG5cclxuc3RhdHVzT3B0aW9uczogYW55W10gPSBbXHJcbiAgJ09wZW4nLFxyXG4gICdJbi1Qcm9ncmVzcycsXHJcbiAgJ0Nsb3NlZCcsXHJcbiAgJ09wZW4gLSBBY2N1cmFjeSBJc3N1ZScsXHJcbiAgJ0Nsb3NlZCAtIEFjY3VyYWN5IElzc3VlJyxcclxuICAnRXhwaXJlZCcsXHJcbl07XHJcblxyXG5cclxuICBjb25kaXRpb25PcHRpb25zID0gW1xyXG4gICAgeyB2YWx1ZTogJ2d0JywgbGFiZWw6ICc+IEdyZWF0ZXIgdGhhbicgfSxcclxuICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAnPCBMZXNzZXIgdGhhbicgfSxcclxuICAgIHsgdmFsdWU6ICdndGUnLCBsYWJlbDogJz49IEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycgfSxcclxuICAgIHsgdmFsdWU6ICdsdGUnLCBsYWJlbDogJzw9IExlc3NlciB0aGFuIG9yIGVxdWFsIHRvJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2JldHdlZW4nLCBsYWJlbDogJ0JldHdlZW4nIH0sXHJcbiAgXTtcclxuXHJcbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWYscHJpdmF0ZSBzZXJ2aWNlOlRpY2tldFNlcnZpY2UpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzdGF0dXM6IFtbXV0sXHJcblxyXG4gICAgICByZXZpZXdlckNvbmRpdGlvbjogW251bGwgYXMgQ29uZGl0aW9uIHwgbnVsbF0sXHJcbiAgICAgIHJldmlld2VyRnJvbTogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcbiAgICAgIHJldmlld2VyVG86IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG5cclxuICAgICAgYXBwcm92ZXJDb25kaXRpb246IFtudWxsIGFzIENvbmRpdGlvbiB8IG51bGxdLFxyXG4gICAgICBhcHByb3ZlckZyb206IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG4gICAgICBhcHByb3ZlclRvOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuXHJcbiAgICAgIHRhbmdvQ29uZGl0aW9uOiBbbnVsbCBhcyBDb25kaXRpb24gfCBudWxsXSxcclxuICAgICAgdGFuZ29Gcm9tOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgdGFuZ29UbzogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcblxyXG4gICAgICByZXZpZXdlZEJ5OiBbW11dLFxyXG4gIGFwcHJvdmVkQnk6IFtbXV0sICBcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vblJlc2V0KCk7XHJcbiAgfVxyXG5saW1pdFZhbHVlKGV2ZW50OiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICBsZXQgdmFsdWUgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAwO1xyXG4gIGlmICh2YWx1ZSA+IDEwMCkgdmFsdWUgPSAxMDA7XHJcblxyXG4gIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xyXG4gIHRoaXMuZmlsdGVyRm9ybS5nZXQoY29udHJvbE5hbWUpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG59XHJcblxyXG5nZXQgaXNUYW5nbygpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy51c2VyVHlwZSA9PT0gJ3RhbmdvJztcclxufVxyXG5cclxuLy8gU0hPVyAvIEhJREUgUlVMRVNcclxuXHJcbi8vIFJldmlld2VyIGFjY3VyYWN5IGFuZCBcIlJldmlld2VkIGJ5XCIgdmlzaWJsZSBmb3IgdGFuZ28gKyByZXZpZXdlclxyXG5nZXQgc2hvd1Jldmlld2VyQWNjdXJhY3koKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuaXNUYW5nbyB8fCB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAncmV2aWV3JztcclxufVxyXG5cclxuZ2V0IHNob3dSZXZpZXdlZEJ5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAgdGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ3Jldmlldyc7XHJcbn1cclxuXHJcbi8vIEFwcHJvdmVyIGFjY3VyYWN5IGFuZCBcIkFwcHJvdmVkIGJ5XCIgdmlzaWJsZSBmb3IgdGFuZ28gKyBhcHByb3ZlclxyXG5nZXQgc2hvd0FwcHJvdmVyQWNjdXJhY3koKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuaXNUYW5nbyB8fCB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAnYXBwcm92ZSc7XHJcbn1cclxuXHJcbmdldCBzaG93QXBwcm92ZWRCeSgpOiBib29sZWFuIHtcclxuICByZXR1cm4gIHRoaXMucGVybWlzc2lvblR5cGUgPT09ICdhcHByb3ZlJztcclxufVxyXG5cclxuLy8gVGFuZ28gYWNjdXJhY3kgb25seSBmb3IgdGFuZ28gdXNlcnNcclxuZ2V0IHNob3dUYW5nb0FjY3VyYWN5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLmlzVGFuZ287XHJcbn1cclxuc3RhdHVzRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbmlzU3RhdHVzU2VsZWN0ZWQoc3RhdHVzOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIHJldHVybiBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpO1xyXG59XHJcblxyXG5vblN0YXR1c0NoYW5nZShldmVudDogRXZlbnQsIHN0YXR1czogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIGxldCBuZXh0OiBzdHJpbmdbXTtcclxuXHJcbiAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpID8gc2VsZWN0ZWQgOiBbLi4uc2VsZWN0ZWQsIHN0YXR1c107XHJcbiAgfSBlbHNlIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5maWx0ZXIocyA9PiBzICE9PSBzdGF0dXMpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IG5leHQgfSk7XHJcbn1cclxuXHJcbnRvZ2dsZVN0YXR1c0Ryb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIGF2b2lkIGRvY3VtZW50IGNsaWNrIGNsb3NpbmcgaXRcclxuICB9XHJcbiAgdGhpcy5zdGF0dXNEcm9wZG93bk9wZW4gPSAhdGhpcy5zdGF0dXNEcm9wZG93bk9wZW47XHJcbn1cclxuXHJcbi8vIEFyZSBhbGwgc3RhdHVzZXMgY3VycmVudGx5IHNlbGVjdGVkP1xyXG5hcmVBbGxTdGF0dXNlc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHNlbGVjdGVkOiBzdHJpbmdbXSA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgfHwgW107XHJcbiAgcmV0dXJuIHNlbGVjdGVkLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnN0YXR1c09wdGlvbnMubGVuZ3RoO1xyXG59XHJcblxyXG4vLyBIYW5kbGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggY2hhbmdlXHJcbm9uU3RhdHVzU2VsZWN0QWxsQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICAvLyBTZWxlY3QgZXZlcnkgc3RhdHVzXHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IHN0YXR1czogWy4uLnRoaXMuc3RhdHVzT3B0aW9uc10gfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIGFsbFxyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IFtdIH0pO1xyXG4gIH1cclxufVxyXG5nZXQgc2VsZWN0ZWRTdGF0dXNlcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgfHwgW107XHJcbn1cclxuXHJcbiAgaXNCZXR3ZWVuKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2xOYW1lKT8udmFsdWUgPT09ICdiZXR3ZWVuJztcclxuICB9XHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICBpZiAoY2hhbmdlc1snY2xpZW50J10gfHwgY2hhbmdlc1sncGVybWlzc2lvblR5cGUnXSB8fCBjaGFuZ2VzWyd1c2VyVHlwZSddKSB7XHJcbiAgICB0aGlzLmxvYWRSZXZpZXdlckxpc3QoKTtcclxuICB9XHJcbn1cclxuLy8gZnVsbCB1c2VyIGxpc3QgeW91IGFscmVhZHkgaGF2ZVxyXG51c2VyTGlzdDogYW55W10gPSBbXTtcclxuXHJcblxyXG5yZXZpZXdlclNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xyXG5cclxuLy8g4pyFIHNpbXBsZSBjb21wdXRlZCBsaXN0IGZvciAqbmdGb3JcclxuZ2V0IGZpbHRlcmVkUmV2aWV3ZXJMaXN0KCk6IHsgZW1haWw6IHN0cmluZzsgbmFtZT86IHN0cmluZyB9W10ge1xyXG4gIGNvbnN0IHRlcm0gPSAodGhpcy5yZXZpZXdlclNlYXJjaFRlcm0gfHwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICBpZiAoIXRlcm0pIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMudXNlckxpc3QuZmlsdGVyKHUgPT4ge1xyXG4gICAgY29uc3QgZW1haWwgPSAodS5lbWFpbCB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG5hbWUgPSAodS5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgcmV0dXJuIGVtYWlsLmluY2x1ZGVzKHRlcm0pIHx8IG5hbWUuaW5jbHVkZXModGVybSk7XHJcbiAgfSk7XHJcbn1cclxuYXBwcm92ZXJTZWFyY2hUZXJtOmFueTtcclxuZ2V0IGZpbHRlcmVkQXBwcm92ZXJMaXN0KCk6IGFueVtdIHtcclxuICBjb25zdCB0ZXJtID0gKHRoaXMuYXBwcm92ZXJTZWFyY2hUZXJtIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICBpZiAoIXRlcm0pIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMudXNlckxpc3QuZmlsdGVyKCh1OiBhbnkpID0+IHtcclxuICAgIGNvbnN0IGVtYWlsID0gKHUuZW1haWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBuYW1lID0gKHUubmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIHJldHVybiBlbWFpbC5pbmNsdWRlcyh0ZXJtKSB8fCBuYW1lLmluY2x1ZGVzKHRlcm0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcclxuICB0aGlzLmFwcHJvdmVyU2VhcmNoVGVybSA9IHZhbHVlO1xyXG59XHJcbnByaXZhdGUgbG9hZFJldmlld2VyTGlzdCgpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuY2xpZW50KSB7XHJcbiAgICB0aGlzLnVzZXJMaXN0ID0gW107XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBsZXQgdHlwZTogc3RyaW5nO1xyXG5cclxuICBpZiAodGhpcy51c2VyVHlwZSA9PT0gJ3RhbmdvJykge1xyXG4gICAgdHlwZSA9ICd0YW5nbyc7ICAgIC8vIG9yICdhbGwnXHJcbiAgfSBlbHNlIGlmICh0aGlzLnBlcm1pc3Npb25UeXBlID09PSAncmV2aWV3Jykge1xyXG4gICAgdHlwZSA9ICdyZXZpZXcnO1xyXG4gIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ2FwcHJvdmUnKSB7XHJcbiAgICB0eXBlID0gJ2FwcHJvdmUnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnVzZXJMaXN0ID0gW107XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICB0aGlzLnNlcnZpY2UuZ2V0UmV2aWV3ZXJBcGkodGhpcy5jbGllbnQsIHR5cGUsJycpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLy8gb3BlbiBmbGFnc1xyXG5yZXZpZXdlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5hcHByb3ZlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5cclxuLy8gY29udmVuaWVuY2UgZ2V0dGVyc1xyXG5nZXQgc2VsZWN0ZWRSZXZpZXdlZEJ5KCk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnJldmlld2VkQnkgfHwgW107XHJcbn1cclxuXHJcbmdldCBzZWxlY3RlZEFwcHJvdmVkQnkoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUuYXBwcm92ZWRCeSB8fCBbXTtcclxufVxyXG5cclxuLy8gLS0tIFJldmlld2VkIEJ5IGhlbHBlcnMgLS0tXHJcblxyXG50b2dnbGVSZXZpZXdlckRyb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgdGhpcy5yZXZpZXdlckRyb3Bkb3duT3BlbiA9ICF0aGlzLnJldmlld2VyRHJvcGRvd25PcGVuO1xyXG59XHJcblxyXG5pc1Jldmlld2VyU2VsZWN0ZWQoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLnNlbGVjdGVkUmV2aWV3ZWRCeS5pbmNsdWRlcyhlbWFpbCk7XHJcbn1cclxuXHJcbm9uUmV2aWV3ZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBlbWFpbDogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZCA9IFsuLi50aGlzLnNlbGVjdGVkUmV2aWV3ZWRCeV07XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICBpZiAoIXNlbGVjdGVkLmluY2x1ZGVzKGVtYWlsKSkgc2VsZWN0ZWQucHVzaChlbWFpbCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IGkgPSBzZWxlY3RlZC5pbmRleE9mKGVtYWlsKTtcclxuICAgIGlmIChpID49IDApIHNlbGVjdGVkLnNwbGljZShpLCAxKTtcclxuICB9XHJcblxyXG4gIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgcmV2aWV3ZWRCeTogc2VsZWN0ZWQgfSk7XHJcbn1cclxuXHJcbmFyZUFsbFJldmlld2Vyc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICB0aGlzLnVzZXJMaXN0Lmxlbmd0aCA+IDAgJiZcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCA9PT0gdGhpcy51c2VyTGlzdC5sZW5ndGhcclxuICApO1xyXG59XHJcblxyXG5vblJldmlld2VyU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIHJldmlld2VkQnk6IHRoaXMudXNlckxpc3QubWFwKCh1OmFueSkgPT4gdS5lbWFpbCksXHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyByZXZpZXdlZEJ5OiBbXSB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8vIC0tLSBBcHByb3ZlZCBCeSBoZWxwZXJzIC0tLVxyXG5cclxudG9nZ2xlQXBwcm92ZXJEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIHRoaXMuYXBwcm92ZXJEcm9wZG93bk9wZW4gPSAhdGhpcy5hcHByb3ZlckRyb3Bkb3duT3BlbjtcclxufVxyXG5cclxuaXNBcHByb3ZlclNlbGVjdGVkKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5zZWxlY3RlZEFwcHJvdmVkQnkuaW5jbHVkZXMoZW1haWwpO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyQ2hhbmdlKGV2ZW50OiBFdmVudCwgZW1haWw6IHN0cmluZykge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgY29uc3Qgc2VsZWN0ZWQgPSBbLi4udGhpcy5zZWxlY3RlZEFwcHJvdmVkQnldO1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgaWYgKCFzZWxlY3RlZC5pbmNsdWRlcyhlbWFpbCkpIHNlbGVjdGVkLnB1c2goZW1haWwpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBpID0gc2VsZWN0ZWQuaW5kZXhPZihlbWFpbCk7XHJcbiAgICBpZiAoaSA+PSAwKSBzZWxlY3RlZC5zcGxpY2UoaSwgMSk7XHJcbiAgfVxyXG5cclxuICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IGFwcHJvdmVkQnk6IHNlbGVjdGVkIH0pO1xyXG59XHJcblxyXG5hcmVBbGxBcHByb3ZlcnNTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgdGhpcy51c2VyTGlzdC5sZW5ndGggPiAwICYmXHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggPT09IHRoaXMudXNlckxpc3QubGVuZ3RoXHJcbiAgKTtcclxufVxyXG5cclxub25BcHByb3ZlclNlbGVjdEFsbChldmVudDogRXZlbnQpIHtcclxuICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICBhcHByb3ZlZEJ5OiB0aGlzLnVzZXJMaXN0Lm1hcCgodTphbnkpID0+IHUuZW1haWwpLFxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgYXBwcm92ZWRCeTogW10gfSk7XHJcbiAgfVxyXG59XHJcblxyXG5vblJlc2V0KCk6IHZvaWQge1xyXG4gIHRoaXMuZmlsdGVyRm9ybS5yZXNldCh7XHJcbiAgICBzdGF0dXM6IFtdLFxyXG4gICAgcmV2aWV3ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICByZXZpZXdlckZyb206IG51bGwsXHJcbiAgICByZXZpZXdlclRvOiBudWxsLFxyXG5cclxuICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgYXBwcm92ZXJGcm9tOiBudWxsLFxyXG4gICAgYXBwcm92ZXJUbzogbnVsbCxcclxuXHJcbiAgICB0YW5nb0NvbmRpdGlvbjogbnVsbCxcclxuICAgIHRhbmdvRnJvbTogbnVsbCxcclxuICAgIHRhbmdvVG86IG51bGwsXHJcblxyXG4gICAgcmV2aWV3ZWRCeTogW10sXHJcbiAgICBhcHByb3ZlZEJ5OiBbXVxyXG4gIH0pO1xyXG5cclxuICAvLyAy77iP4oOjIFJlc2V0IHNlYXJjaCB0ZXJtc1xyXG4gIHRoaXMucmV2aWV3ZXJTZWFyY2hUZXJtID0gJyc7XHJcbiAgdGhpcy5hcHByb3ZlclNlYXJjaFRlcm0gPSAnJztcclxuXHJcbiAgLy8gM++4j+KDoyBCdWlsZCBlbXB0eSBwYXlsb2FkIHRvIHNlbmQgYmFja1xyXG4gIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1czogW10sXHJcbiAgICBmaWx0ZXJCeVJldmlld2VyOiBudWxsLFxyXG4gICAgZmlsdGVyQnlBcHByb3ZlcjogbnVsbCxcclxuICAgIGZpbHRlckJ5VGFuZ286IG51bGwsXHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk6IFtdLFxyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeTogW11cclxuICB9O1xyXG5cclxuICAvLyA077iP4oOjIEVtaXQgdGhlIG5vdy1lbXB0eSBmaWx0ZXIgcmVzdWx0XHJcbiAgdGhpcy5hcHBseS5lbWl0KHBheWxvYWQpO1xyXG5cclxuICAvLyA177iP4oOjIENsb3NlIHRoZSBmaWx0ZXIgcGFuZWxcclxuICB0aGlzLmNsb3NlKCk7XHJcbn1cclxuXHJcbnByaXZhdGUgbWFwQWNjdXJhY3koXHJcbiAgY29uZGl0aW9uOiBDb25kaXRpb24gfCBudWxsLFxyXG4gIGZyb206IG51bWJlciB8IG51bGwsXHJcbiAgdG86IG51bWJlciB8IG51bGxcclxuKTogc3RyaW5nIHwgbnVsbCB7XHJcblxyXG4gIC8vIG5vdGhpbmcgc2VsZWN0ZWRcclxuICBpZiAoIWNvbmRpdGlvbiB8fCBmcm9tID09IG51bGwpIHJldHVybiBudWxsO1xyXG5cclxuICAvLyBcImJldHdlZW5cIiDihpIgXCI5MCB0byAxMDBcIlxyXG4gIGlmIChjb25kaXRpb24gPT09ICdiZXR3ZWVuJykge1xyXG4gICAgaWYgKHRvID09IG51bGwpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIGAke2Zyb219IHRvICR7dG99YDtcclxuICB9XHJcblxyXG4gIC8vIG90aGVyIGNvbmRpdGlvbnMgKGd0LCBsdCwgZ3RlLCBsdGUpXHJcbiAgY29uc3Qgb3BNYXA6IFJlY29yZDxDb25kaXRpb24sIHN0cmluZz4gPSB7XHJcbiAgICBndDogJz4nLFxyXG4gICAgbHQ6ICc8JyxcclxuICAgIGd0ZTogJz49JyxcclxuICAgIGx0ZTogJzw9JyxcclxuICAgIGJldHdlZW46ICcnLCAvLyBhbHJlYWR5IGhhbmRsZWQgYWJvdmVcclxuICB9O1xyXG5cclxuICByZXR1cm4gYCR7b3BNYXBbY29uZGl0aW9uXX0ke2Zyb219YDsgIC8vIGUuZy4gXCI+PSA5MFwiXHJcbn1cclxuXHJcbiAgb25BcHBseSgpOiB2b2lkIHtcclxuXHJcbiAgIGNvbnN0IHJhdyA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZTtcclxuXHJcbiAgY29uc3QgcmV2aWV3ZXJTdHIgPSB0aGlzLm1hcEFjY3VyYWN5KHJhdy5yZXZpZXdlckNvbmRpdGlvbiwgcmF3LnJldmlld2VyRnJvbSwgcmF3LnJldmlld2VyVG8pO1xyXG4gIGNvbnN0IGFwcHJvdmVyU3RyID0gdGhpcy5tYXBBY2N1cmFjeShyYXcuYXBwcm92ZXJDb25kaXRpb24sIHJhdy5hcHByb3ZlckZyb20sIHJhdy5hcHByb3ZlclRvKTtcclxuICBjb25zdCB0YW5nb1N0ciAgICA9IHRoaXMubWFwQWNjdXJhY3kocmF3LnRhbmdvQ29uZGl0aW9uLCByYXcudGFuZ29Gcm9tLCByYXcudGFuZ29Ubyk7XHJcblxyXG4gIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1czogcmF3LnN0YXR1cyB8fCBbXSxcclxuXHJcbiAgICBmaWx0ZXJCeVJldmlld2VyOiByZXZpZXdlclN0cixcclxuICAgIGZpbHRlckJ5QXBwcm92ZXI6IGFwcHJvdmVyU3RyLFxyXG4gICAgZmlsdGVyQnlUYW5nbzogdGFuZ29TdHIsXHJcblxyXG4gICAgZmlsdGVyQnlSZXZpZXdlZEJ5OiByYXcucmV2aWV3ZWRCeSB8fCBbXSwgICAgICAgIFxyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeTogcmF3LmFwcHJvdmVkQnkgfHwgW10sICAgICAgICBcclxuICB9O1xyXG4gIHRoaXMuYXBwbHkuZW1pdChwYXlsb2FkKTtcclxuICB0aGlzLmNsb3NlKCk7XHJcbiAgICB0aGlzLnNob3dQYW5lbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbmRyb3Bkb3duU3RhdGUgPSB7XHJcbiAgc3RhdHVzOiBmYWxzZSxcclxuICByZXZpZXdlcjogZmFsc2UsXHJcbiAgYXBwcm92ZXI6IGZhbHNlXHJcbn07XHJcbi8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcclxuY2xvc2VBbGwoKSB7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLnN0YXR1cyA9IGZhbHNlO1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5yZXZpZXdlciA9IGZhbHNlO1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5hcHByb3ZlciA9IGZhbHNlO1xyXG59XHJcblxyXG50b2dnbGVEcm9wZG93bih0eXBlOiAnc3RhdHVzJyB8ICdyZXZpZXdlcicgfCAnYXBwcm92ZXInLCBldmVudDogTW91c2VFdmVudCkge1xyXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAvLyBDbG9zZSBhbGwgYmVmb3JlIG9wZW5pbmcgYSBuZXcgb25lXHJcbiAgdGhpcy5jbG9zZUFsbCgpO1xyXG5cclxuICAvLyBUb2dnbGUgb25seSB0aGUgc2VsZWN0ZWQgb25lXHJcbiAgdGhpcy5kcm9wZG93blN0YXRlW3R5cGVdID0gIXRoaXMuZHJvcGRvd25TdGF0ZVt0eXBlXTtcclxufVxyXG5cclxuaXNEcm9wZG93bk9wZW4odHlwZTogJ3N0YXR1cycgfCAncmV2aWV3ZXInIHwgJ2FwcHJvdmVyJykge1xyXG4gIHJldHVybiB0aGlzLmRyb3Bkb3duU3RhdGVbdHlwZV07XHJcbn1cclxufVxyXG4iLCI8IS0tIHRpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwgLS0+XHJcbjxkaXYgY2xhc3M9XCJmaWx0ZXItd3JhcHBlclwiICpuZ0lmPVwiaXNPcGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj5cclxuICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5GaWx0ZXIgT3B0aW9uczwvZGl2PlxyXG4gICAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIj7inJU8L2J1dHRvbj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIj5cclxuICAgICAgPCEtLSBTdGF0dXMgLS0+XHJcbjxkaXYgY2xhc3M9XCJtYi0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdGF0dXM8L2xhYmVsPlxyXG5cclxuICA8IS0tIEhlYWRlciAvIHRyaWdnZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzdGF0dXMtc2VsZWN0IGJvcmRlciByb3VuZGVkIHB4LTMgcHktMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bignc3RhdHVzJywgJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhc2VsZWN0ZWRTdGF0dXNlcy5sZW5ndGhcIj5TZWxlY3Q8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFN0YXR1c2VzLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICB7eyBzZWxlY3RlZFN0YXR1c2VzWzBdIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFN0YXR1c2VzLmxlbmd0aCA+IDFcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRTdGF0dXNlc1swXSB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBtcy0yXCI+XHJcbiAgICAgICAgK3t7IHNlbGVjdGVkU3RhdHVzZXMubGVuZ3RoIC0gMSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIERST1BET1dOIFBBTkVMIChPVkVSTEFZKSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInN0YXR1cy1kcm9wZG93biBwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBtdC0xIGJvcmRlciByb3VuZGVkIHAtMSBiZy13aGl0ZVwiXHJcbiAgICBzdHlsZT1cInotaW5kZXg6IDEwMDA7IG1heC1oZWlnaHQ6IDIyMHB4OyBvdmVyZmxvdy15OiBhdXRvO1wiXHJcbiAgICpuZ0lmPVwiaXNEcm9wZG93bk9wZW4oJ3N0YXR1cycpXCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID5cclxuICAgIDwhLS0gU2VsZWN0IEFsbCAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IFwiXHJcbiAgICAgICAgaWQ9XCJzdGF0dXMtc2VsZWN0LWFsbFwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiYXJlQWxsU3RhdHVzZXNTZWxlY3RlZCgpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uU3RhdHVzU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCIgZm9yPVwic3RhdHVzLXNlbGVjdC1hbGxcIj5cclxuICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPCEtLSBPcHRpb25zIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTFcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgcyBvZiBzdGF0dXNPcHRpb25zXCJcclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgXCJcclxuICAgICAgICBbaWRdPVwiJ3N0YXR1cy0nICsgc1wiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNTdGF0dXNTZWxlY3RlZChzKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblN0YXR1c0NoYW5nZSgkZXZlbnQsIHMpXCJcclxuICAgICAgLz5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiIFtmb3JdPVwiJ3N0YXR1cy0nICsgc1wiPlxyXG4gICAgICAgIHt7IHMgfX1cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgPCEtLSBSZXZpZXdlciBhY2N1cmFjeSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInNob3dSZXZpZXdlckFjY3VyYWN5XCIgKGNsaWNrKT1cImNsb3NlQWxsKClcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UmV2aWV3ZXIgYWNjdXJhY3kgKCUpIGJ5IGNvbmRpdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctMTAwXCIgZm9ybUNvbnRyb2xOYW1lPVwicmV2aWV3ZXJDb25kaXRpb25cIj5cclxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY29uZGl0aW9uT3B0aW9uc1wiIFtuZ1ZhbHVlXT1cImMudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBjLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgPCEtLSBvbmUgb3IgdHdvIGlucHV0cyAtLT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0JldHdlZW4oJ3Jldmlld2VyQ29uZGl0aW9uJyk7IGVsc2Ugc2luZ2xlUmV2aWV3ZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmV2aWV3ZXJGcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZyb21cIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICdyZXZpZXdlckZyb20nKVwiIC8+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld2VyVG9cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVG9cIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICdyZXZpZXdlclRvJylcIiAvPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZVJldmlld2VyPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXZpZXdlckZyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMSB0byAxMDAlXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAncmV2aWV3ZXJGcm9tJylcIiAvPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEFwcHJvdmVyIGFjY3VyYWN5IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItM1wiICpuZ0lmPVwic2hvd0FwcHJvdmVyQWNjdXJhY3lcIiAoY2xpY2spPVwiY2xvc2VBbGwoKVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5BcHByb3ZlciBhY2N1cmFjeSAoJSkgYnkgY29uZGl0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy0xMDBcIiBmb3JtQ29udHJvbE5hbWU9XCJhcHByb3ZlckNvbmRpdGlvblwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjb25kaXRpb25PcHRpb25zXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIHt7IGMubGFiZWwgfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCZXR3ZWVuKCdhcHByb3ZlckNvbmRpdGlvbicpOyBlbHNlIHNpbmdsZUFwcHJvdmVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFwcHJvdmVyRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgXHJcbiAgICAgICAgICAgICAgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAnYXBwcm92ZXJGcm9tJylcIi8+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFwcHJvdmVyVG9cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVG9cIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICdhcHByb3ZlclRvJylcIiAvPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZUFwcHJvdmVyPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHByb3ZlckZyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMSB0byAxMDAlXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAnYXBwcm92ZXJGcm9tJylcIiAvPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFRhbmdvIGFjY3VyYWN5IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItM1wiICpuZ0lmPVwic2hvd1RhbmdvQWNjdXJhY3lcIiAoY2xpY2spPVwiY2xvc2VBbGwoKVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5UYW5nbyBhY2N1cmFjeSAoJSkgYnkgY29uZGl0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy0xMDBcIiBmb3JtQ29udHJvbE5hbWU9XCJ0YW5nb0NvbmRpdGlvblwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjb25kaXRpb25PcHRpb25zXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIHt7IGMubGFiZWwgfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCZXR3ZWVuKCd0YW5nb0NvbmRpdGlvbicpOyBlbHNlIHNpbmdsZVRhbmdvXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhbmdvRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAndGFuZ29Gcm9tJylcIiAvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YW5nb1RvXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRvXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAndGFuZ29UbycpXCIgLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVUYW5nbz5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGFuZ29Gcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjEgdG8gMTAwJVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3RhbmdvRnJvbScpXCIgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJtYi0zIHBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAqbmdJZj1cInNob3dSZXZpZXdlZEJ5XCJcclxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG4gIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5SZXZpZXdlZCBieTwvbGFiZWw+XHJcblxyXG4gIDwhLS0gVHJpZ2dlciAvIGRpc3BsYXkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBweC0zIHB5LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJ3Jldmlld2VyJywgJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPCEtLSAwIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aFwiPlxyXG4gICAgICBTZWxlY3RcclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8IS0tIDEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUmV2aWV3ZWRCeS5sZW5ndGggPT09IDFcIj5cclxuICAgICAge3sgc2VsZWN0ZWRSZXZpZXdlZEJ5WzBdIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSA+MSBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCA+IDFcIlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyBzZWxlY3RlZFJldmlld2VkQnlbMF0gfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbXMtMlwiPlxyXG4gICAgICAgICt7eyBzZWxlY3RlZFJldmlld2VkQnkubGVuZ3RoIC0gMSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG48ZGl2XHJcbiAgKm5nSWY9XCJpc0Ryb3Bkb3duT3BlbigncmV2aWV3ZXInKVwiXHJcbiAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBib3JkZXIgcm91bmRlZCBiZy13aGl0ZSBwLTEgbXQtMVwiXHJcbiAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4+XHJcblxyXG4gIDwhLS0g8J+UjSBTZWFyY2ggYm94IC0tPlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cIm1iLTIgcHgtMFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZW1haWxcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInJldmlld2VyU2VhcmNoVGVybVwiXHJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgLz5cclxuICA8L2Rpdj4gLS0+XHJcblxyXG4gIDwhLS0gU2VsZWN0IEFsbCAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIG1iLTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIGlkPVwicmV2aWV3ZXItYWxsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiYXJlQWxsUmV2aWV3ZXJzU2VsZWN0ZWQoKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25SZXZpZXdlclNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8bGFiZWwgZm9yPVwicmV2aWV3ZXItYWxsXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCI+XHJcbiAgICAgIFNlbGVjdCBBbGxcclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gT3B0aW9ucyDigJMgbm93IHVzZSBnZXR0ZXIgZmlsdGVyZWRSZXZpZXdlckxpc3QgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTEgcHgtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICpuZ0Zvcj1cImxldCB1IG9mIGZpbHRlcmVkUmV2aWV3ZXJMaXN0XCJcclxuICA+XHJcbiAgICA8aW5wdXRcclxuICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgW2lkXT1cIidyZXYtJyArIHUuZW1haWxcIlxyXG4gICAgICBbY2hlY2tlZF09XCJpc1Jldmlld2VyU2VsZWN0ZWQodS5lbWFpbClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uUmV2aWV3ZXJDaGFuZ2UoJGV2ZW50LCB1LmVtYWlsKVwiXHJcbiAgICAvPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiIFtmb3JdPVwiJ3Jldi0nICsgdS5lbWFpbFwiPlxyXG4gICAgICB7eyB1LmVtYWlsIH19XHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG4gICAgICA8IS0tIEFwcHJvdmVkIEJ5IC0tPlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJtYi0zIHBvc2l0aW9uLXJlbGF0aXZlXCJcclxuICAqbmdJZj1cInNob3dBcHByb3ZlZEJ5XCJcclxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG4gIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5BcHByb3ZlZCBieTwvbGFiZWw+XHJcblxyXG4gIDwhLS0gVHJpZ2dlciAvIGRpc3BsYXkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBweC0zIHB5LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJ2FwcHJvdmVyJywgJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPCEtLSAwIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhc2VsZWN0ZWRBcHByb3ZlZEJ5Lmxlbmd0aFwiPlxyXG4gICAgICBTZWxlY3RcclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8IS0tIDEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggPT09IDFcIj5cclxuICAgICAge3sgc2VsZWN0ZWRBcHByb3ZlZEJ5WzBdIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSA+MSBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRBcHByb3ZlZEJ5Lmxlbmd0aCA+IDFcIlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyBzZWxlY3RlZEFwcHJvdmVkQnlbMF0gfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbXMtMlwiPlxyXG4gICAgICAgICt7eyBzZWxlY3RlZEFwcHJvdmVkQnkubGVuZ3RoIC0gMSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gIDwvZGl2PlxyXG48IS0tIERyb3Bkb3duIHBhbmVsIC0tPlxyXG48ZGl2XHJcbiAqbmdJZj1cImlzRHJvcGRvd25PcGVuKCdhcHByb3ZlcicpXCJcclxuICBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHctMTAwIGJvcmRlciByb3VuZGVkIGJnLXdoaXRlIHAtMSBtdC0xXCJcclxuICBzdHlsZT1cInotaW5kZXg6IDEwMDA7IG1heC1oZWlnaHQ6IDIyMHB4OyBvdmVyZmxvdy15OiBhdXRvO1wiXHJcbiAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbj5cclxuXHJcbiAgPCEtLSDwn5SNIFNlYXJjaCBib3ggLS0+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwibWItMiBweC0wXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBlbWFpbFwiXHJcbiAgICAgIFtuZ01vZGVsXT1cImFwcHJvdmVyU2VhcmNoVGVybVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmV2aWV3ZXJTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgLz5cclxuICA8L2Rpdj4gLS0+XHJcblxyXG4gIDwhLS0gU2VsZWN0IEFsbCAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIG1iLTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIGlkPVwicmV2aWV3ZXItYWxsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiYXJlQWxsUmV2aWV3ZXJzU2VsZWN0ZWQoKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25SZXZpZXdlclNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8bGFiZWwgZm9yPVwicmV2aWV3ZXItYWxsXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCI+XHJcbiAgICAgIFNlbGVjdCBBbGxcclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gT3B0aW9ucyAodXNlIGZpbHRlcmVkUmV2aWV3ZXJMaXN0IGluc3RlYWQgb2YgdXNlckxpc3QpIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1jaGVjayBtYi0xIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAqbmdGb3I9XCJsZXQgdSBvZiBmaWx0ZXJlZEFwcHJvdmVyTGlzdFwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIFtpZF09XCIncmV2LScgKyB1LmVtYWlsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiaXNSZXZpZXdlclNlbGVjdGVkKHUuZW1haWwpXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblJldmlld2VyQ2hhbmdlKCRldmVudCwgdS5lbWFpbClcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIidyZXYtJyArIHUuZW1haWxcIj5cclxuICAgICAge3sgdS5lbWFpbCB9fVxyXG4gICAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4gIDwhLS0gRHJvcGRvd24gcGFuZWwgLS0+XHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG4gICAgICA8IS0tIEZvb3RlciBidXR0b25zIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwIG10LTRcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTUwIG1lLTFcIiAoY2xpY2spPVwib25SZXNldCgpXCI+XHJcbiAgICAgICAgICBSZXNldFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMVwiIChjbGljayk9XCJvbkFwcGx5KClcIj5cclxuICAgICAgICAgIEFwcGx5XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|