@sachin9822/reports-lib 0.0.210 → 0.0.211

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.
@@ -610,7 +610,7 @@ export class TrialBalanceAccountsReportComponent {
610
610
  accountStatus: modal.accountStatus.join(','),
611
611
  businessUnit: modal.businessUnit,
612
612
  currency: modal.currency,
613
- companyCode: "BH",
613
+ companyCode: modal.businessUnit,
614
614
  reportPeriod: `${formatDate(modal.fromDate, 'dd/MM/yyyy', 'en-US')} - ${formatDate(modal.toDate, 'dd/MM/yyyy', 'en-US')}`,
615
615
  };
616
616
  this.getTrialBalanceAccountsReport(req);
@@ -628,4 +628,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
628
628
  type: HostListener,
629
629
  args: ['window:resize', ['$event']]
630
630
  }] } });
631
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpYWwtYmFsYW5jZS1hY2NvdW50cy1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0L3RyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7QUEyQnhDLE1BQU0sT0FBTyxtQ0FBbUM7SUF5RTlDLFlBQW9CLGFBQTRCLEVBQVUsYUFBNEI7UUFBbEUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXRFdEYsZUFBVSxHQUFXLDBCQUEwQixDQUFBO1FBSS9DLDBCQUFxQixHQUFHLHNCQUFzQixDQUFDO1FBQy9DLGlCQUFZLEdBQTJCLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztRQUV2RSx5QkFBb0IsR0FBVyxPQUFPLENBQUM7UUFDdkMsYUFB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QUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsTUFBTSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDMUgsQ0FBQztRQUVGLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBQzdCLENBQUM7O2dJQTdyQlUsbUNBQW1DO29IQUFuQyxtQ0FBbUMsdUlDcENoRCxnK0NBd0JNOzJGRFlPLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSxtQ0FBbUM7Z0lBb043QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sRGVmLCBDb2x1bW5BcGksIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkaW5nU3RhdGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBvbmVudC1sb2FkaW5nLXN0YXRlcyc7XHJcbmltcG9ydCB7IEFjY291bnREZXRhaWwsIFRyaWFsQmFsYW5jZVJlcG9ydCB9IGZyb20gJy4uLy4uL21vZGVscy90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC90cmlhbC1iYWxhbmNlLWFjY291bnRzLm1vZGVscyc7XHJcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XHJcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XHJcbmltcG9ydCAnanNwZGYtYXV0b3RhYmxlJztcclxuaW1wb3J0ICogYXMgRXhjZWxKUyBmcm9tICdleGNlbGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2V4cG9ydC5zZXJ2aWNlJztcclxuXHJcblxyXG5kZWNsYXJlIG1vZHVsZSAnanNwZGYnIHtcclxuICBpbnRlcmZhY2UganNQREYge1xyXG4gICAgYXV0b1RhYmxlOiAob3B0aW9uczogYW55KSA9PiBqc1BERjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnRSZXF1ZXN0RFRPIHtcclxuICB5ZWFyOiBudW1iZXI7XHJcbiAgZGF0ZVR5cGU6IHN0cmluZztcclxuICBmcm9tRGF0ZTogc3RyaW5nO1xyXG4gIHRvRGF0ZTogc3RyaW5nO1xyXG4gIGFjY291bnRTdGF0dXM6IHN0cmluZztcclxuICBidXNpbmVzc1VuaXQ6IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIGNvbXBhbnlDb2RlOiBzdHJpbmc7XHJcbiAgcmVwb3J0UGVyaW9kOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJpYWwtYmFsYW5jZS1hY2NvdW50cy1yZXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIFJlcG9ydE5hbWU6IHN0cmluZyA9IFwiVHJpYWwgQmFsYW5jZSAtIEFjY291bnRzXCJcclxuICBncmlkQXBpOiBHcmlkQXBpO1xyXG4gIG1ldGFEYXRhT25lOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gIG1ldGFEYXRhVHdvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gIENvbXBvbmVudExvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXM7XHJcbiAgbG9hZGluZ1N0YXRlOiBDb21wb25lbnRMb2FkaW5nU3RhdGVzID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICB0cmlhbEJhbGFuY2VSZXBvcnQ6IFRyaWFsQmFsYW5jZVJlcG9ydDtcclxuICBzZWxlY3RlZEV4cG9ydE9wdGlvbjogc3RyaW5nID0gJ2V4Y2VsJztcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcbiAgZGF0YVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoQ3JpdGVyaWE6IFtzdHJpbmcsIHN0cmluZ11bXTtcclxuXHJcbiAgYWNjb3VudFN0YXR1czogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVuY3k6IHN0cmluZyA9ICcnO1xyXG4gIGRhdGVUeXBlOiBzdHJpbmcgPSAnJztcclxuICBmcm9tRGF0ZTogc3RyaW5nID0gJyc7XHJcbiAgdG9EYXRlOiBzdHJpbmcgPSAnJztcclxuICBidXNpbmVzc0xpbmU6IHN0cmluZyA9ICcnO1xyXG5cclxuICByZXBvcnRVc2VyOiBzdHJpbmcgPSAnJztcclxuICByZXBvcnRUaW1lOiBzdHJpbmcgPSAnJztcclxuICByZXBvcnRQZXJpb2Q6IHN0cmluZyA9ICcnO1xyXG4gIGlzRm9ybVZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiBmYWxzZSxcclxuICAgIGNlbGxTdHlsZToge1xyXG4gICAgICB1c2VyU2VsZWN0OiAndGV4dCcsXHJcbiAgICAgICdsaW5lLWhlaWdodCc6ICcxLjInLFxyXG4gICAgICAnd2hpdGUtc3BhY2UnOiAnbm9ybWFsJyxcclxuICAgICAgJ3dvcmQtYnJlYWsnOiAnbm9ybWFsJyxcclxuICAgICAgJ292ZXJmbG93LXdyYXAnOiAnYnJlYWstd29yZCcsXHJcbiAgICB9LFxyXG5cclxuICAgIHdyYXBIZWFkZXJUZXh0OiB0cnVlLFxyXG4gICAgYXV0b0hlYWRlckhlaWdodDogdHJ1ZSxcclxuICAgIHdyYXBUZXh0OiB0cnVlLFxyXG4gICAgYXV0b0hlaWdodDogdHJ1ZSxcclxuXHJcbiAgICBjZWxsQ2xhc3NSdWxlczoge1xyXG4gICAgICAndG90YWwtcG9zaXRpdmUnOiBwYXJhbXMgPT4gcGFyYW1zLmRhdGE/LmlzVG90YWxSb3cgJiYgcGFyYW1zLnZhbHVlID49IDAsXHJcbiAgICAgICd0b3RhbC1uZWdhdGl2ZSc6IHBhcmFtcyA9PiBwYXJhbXMuZGF0YT8uaXNUb3RhbFJvdyAmJiBwYXJhbXMudmFsdWUgPCAwLFxyXG4gICAgICAncG9zaXRpdmUtdmFsdWUnOiBwYXJhbXMgPT4gIXBhcmFtcy5kYXRhPy5pc1RvdGFsUm93ICYmIHBhcmFtcy52YWx1ZSA+PSAwLFxyXG4gICAgICAnbmVnYXRpdmUtdmFsdWUnOiBwYXJhbXMgPT4gIXBhcmFtcy5kYXRhPy5pc1RvdGFsUm93ICYmIHBhcmFtcy52YWx1ZSA8IDAsXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcm93Q2xhc3NSdWxlcyA9IHtcclxuICAgICd0b3RhbC1yb3cnOiBwYXJhbXMgPT4gcGFyYW1zLmRhdGE/LmlzVG90YWxSb3dcclxuICB9O1xyXG5cclxuICBjb2x1bW5EZWZzOiBDb2xEZWZbXSA9XHJcbiAgICBbXHJcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0NPQSBDb2RlJywgZmllbGQ6ICdjb2FDb2RlJywgdG9vbHRpcEZpZWxkOiAnY29hQ29kZScsIG1pbldpZHRoOiA2MCwgbWF4V2lkdGg6IDEwMCB9LFxyXG4gICAgICB7IGhlYWRlck5hbWU6ICdBY2NvdW50IENvZGUnLCBmaWVsZDogJ2FjY291bnRDb2RlJywgdG9vbHRpcEZpZWxkOiAnYWNjb3VudENvZGUnLCBtaW5XaWR0aDogODAsIG1heFdpZHRoOiAxMDAgfSxcclxuICAgICAgeyBoZWFkZXJOYW1lOiAnQWNjb3VudCBEZXNjcmlwdGlvbicsIGZpZWxkOiAnYWNjb3VudERlc2NyaXB0aW9uJywgdG9vbHRpcEZpZWxkOiAnYWNjb3VudERlc2NyaXB0aW9uJywgbWluV2lkdGg6IDE4MCwgbWF4V2lkdGg6IDIzMCB9LFxyXG4gICAgICB7IGhlYWRlck5hbWU6ICdPcGVuaW5nIEJhbGFuY2UgTG9jYWwgQW1vdW50JywgZmllbGQ6ICdvcGVuaW5nQmFsYW5jZScsIHR5cGU6ICdudW1lcmljQ29sdW1uJywgdG9vbHRpcEZpZWxkOiAnb3BlbmluZ0JhbGFuY2UnIH0sXHJcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0RlYml0cyBMb2NhbCBBbW91bnQnLCBmaWVsZDogJ2RlYml0JywgdHlwZTogJ251bWVyaWNDb2x1bW4nLCB0b29sdGlwRmllbGQ6ICdkZWJpdCcgfSxcclxuICAgICAgeyBoZWFkZXJOYW1lOiAnQ3JlZGl0cyBMb2NhbCBBbW91bnQnLCBmaWVsZDogJ2NyZWRpdCcsIHR5cGU6ICdudW1lcmljQ29sdW1uJywgdG9vbHRpcEZpZWxkOiAnY3JlZGl0JyB9LFxyXG4gICAgICB7IGhlYWRlck5hbWU6ICdOZXQgTW92ZW1lbnQgTG9jYWwgQW1vdW50JywgZmllbGQ6ICduZXRNb3ZlbWVudCcsIHR5cGU6ICdudW1lcmljQ29sdW1uJywgdG9vbHRpcEZpZWxkOiAnbmV0TW92ZW1lbnQnIH0sXHJcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0Nsb3NpbmcgQmFsYW5jZSBMb2NhbCBBbW91bnQnLCBmaWVsZDogJ2Nsb3NpbmdCYWxhbmNlJywgdHlwZTogJ251bWVyaWNDb2x1bW4nLCB0b29sdGlwRmllbGQ6ICdjbG9zaW5nQmFsYW5jZScgfVxyXG4gICAgXTtcclxuXHJcbiAgcm93RGF0YTogQWNjb3VudERldGFpbFtdID0gW107XHJcbiAgZ3JpZENvbHVtbkFwaTogQ29sdW1uQXBpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydFNlcnZpY2U6IFJlcG9ydFNlcnZpY2UsIHByaXZhdGUgZXhwb3J0U2VydmljZTogRXhwb3J0U2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQgeyB9XHJcblxyXG4gIGdldFRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KHJlcTogYW55KSB7XHJcblxyXG4gICAgdGhpcy5kYXRhUmVhZHkgPSBmYWxzZTtcclxuICAgIHRoaXMudHJpYWxCYWxhbmNlUmVwb3J0ID0gbnVsbDtcclxuICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Mb2FkaW5nO1xyXG5cclxuICAgIHRoaXMucmVwb3J0U2VydmljZS5nZXRUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydChyZXEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXBvcnQ6IFRyaWFsQmFsYW5jZVJlcG9ydCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHJpYWxCYWxhbmNlUmVwb3J0ID0gcmVwb3J0O1xyXG4gICAgICAgIHRoaXMuZGF0YVJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlcG9ydFVzZXIgPSB0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydC5yZXBvcnRVc2VyO1xyXG4gICAgICAgIHRoaXMucmVwb3J0VGltZSA9IGZvcm1hdERhdGUobmV3IERhdGUoKSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0UGVyaW9kID0gcmVxLnJlcG9ydFBlcmlvZDtcclxuXHJcbiAgICAgICAgdGhpcy5hY2NvdW50U3RhdHVzID0gcmVxLmFjY291bnRTdGF0dXM7XHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeSA9IHJlcS5jdXJyZW5jeTtcclxuICAgICAgICB0aGlzLmRhdGVUeXBlID0gcmVxLmRhdGVUeXBlID09IFwiVkRcIiA/IFwiVmFsdWUgRGF0ZVwiIDogXCJQb3N0aW5nIERhdGVcIjtcclxuICAgICAgICB0aGlzLmJ1c2luZXNzTGluZSA9IHJlcS5idXNpbmVzc0xpbmU7XHJcblxyXG4gICAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuZmxhdHRlblJlcG9ydChyZXBvcnQpLm1hcChhY2MgPT4gKHtcclxuICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgIG9wZW5pbmdCYWxhbmNlOiBOdW1iZXIoYWNjLm9wZW5pbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgZGViaXQ6IE51bWJlcihhY2MuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBjcmVkaXQ6IE51bWJlcihhY2MuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgbmV0TW92ZW1lbnQ6IE51bWJlcihhY2MubmV0TW92ZW1lbnQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBjbG9zaW5nQmFsYW5jZTogTnVtYmVyKGFjYy5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXRhRGF0YU9uZSA9IHtcclxuICAgICAgICAgICdSZXBvcnQgUGVyaW9kJzogdGhpcy5yZXBvcnRQZXJpb2QsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXRhRGF0YVR3byA9IHtcclxuICAgICAgICAgICdSZXBvcnQgVXNlciAmIFRpbWUnOiBgJHt0aGlzLnJlcG9ydFVzZXJ9IEAgJHt0aGlzLnJlcG9ydFRpbWV9YCxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBzZWFyY2hDcml0ZXJpYTogW3N0cmluZywgc3RyaW5nXVtdID0gW1xyXG4gICAgICAgICAgWydBY2NvdW50IFN0YXR1czonLCB0aGlzLmFjY291bnRTdGF0dXNdLFxyXG4gICAgICAgICAgWydDdXJyZW5jeTonLCB0aGlzLmN1cnJlbmN5XSxcclxuICAgICAgICAgIFsnRGF0ZSBUeXBlOicsIHRoaXMuZGF0ZVR5cGVdLFxyXG4gICAgICAgICAgWydGcm9tIERhdGU6JywgdGhpcy5mcm9tRGF0ZV0sXHJcbiAgICAgICAgICBbJ0J1c2luZXNzIExpbmU6JywgdGhpcy5idXNpbmVzc0xpbmVdLFxyXG4gICAgICAgICAgWydUbyBEYXRlOicsIHRoaXMudG9EYXRlXSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaENyaXRlcmlhID0gc2VhcmNoQ3JpdGVyaWE7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdHJpYWwgYmFsYW5jZSByZXBvcnQ6JywgZXJyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmbGF0dGVuUmVwb3J0KHJlcG9ydDogVHJpYWxCYWxhbmNlUmVwb3J0KTogQWNjb3VudERldGFpbFtdIHtcclxuICAgIGNvbnN0IHJvd3M6IEFjY291bnREZXRhaWxbXSA9IFtdO1xyXG5cclxuICAgIHJlcG9ydC5tYWluQ09BR3JvdXBzLmZvckVhY2gobWFpbiA9PiB7XHJcbiAgICAgIG1haW4uc3ViQ09BR3JvdXBzLmZvckVhY2goc3ViID0+IHtcclxuICAgICAgICBzdWIuY29hR3JvdXBzLmZvckVhY2goY29hID0+IHtcclxuICAgICAgICAgIGNvYS5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4gcm93cy5wdXNoKGFjY291bnQpKTtcclxuXHJcbiAgICAgICAgICByb3dzLnB1c2goe1xyXG4gICAgICAgICAgICBjb2FDb2RlOiAnJyxcclxuICAgICAgICAgICAgYWNjb3VudENvZGU6ICdUb3RhbDonLFxyXG4gICAgICAgICAgICBhY2NvdW50RGVzY3JpcHRpb246IGAke2NvYS5jb2FEZXNjcmlwdGlvbn1gLFxyXG4gICAgICAgICAgICBvcGVuaW5nQmFsYW5jZTogTnVtYmVyKGNvYS50b3RhbHMub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICAgIGRlYml0OiBOdW1iZXIoY29hLnRvdGFscy5kZWJpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgICAgY3JlZGl0OiBOdW1iZXIoY29hLnRvdGFscy5jcmVkaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICAgIG5ldE1vdmVtZW50OiBOdW1iZXIoY29hLnRvdGFscy5uZXRNb3ZlbWVudCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgICAgY2xvc2luZ0JhbGFuY2U6IE51bWJlcihjb2EudG90YWxzLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgICBpc1RvdGFsUm93OiB0cnVlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgIGNvYUNvZGU6ICcnLFxyXG4gICAgICAgICAgYWNjb3VudENvZGU6ICdUb3RhbDonLFxyXG4gICAgICAgICAgYWNjb3VudERlc2NyaXB0aW9uOiBgJHtzdWIuc3ViQ09BRGVzY3JpcHRpb259YCxcclxuICAgICAgICAgIG9wZW5pbmdCYWxhbmNlOiBOdW1iZXIoc3ViLnRvdGFscy5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGRlYml0OiBOdW1iZXIoc3ViLnRvdGFscy5kZWJpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGNyZWRpdDogTnVtYmVyKHN1Yi50b3RhbHMuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgbmV0TW92ZW1lbnQ6IE51bWJlcihzdWIudG90YWxzLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgY2xvc2luZ0JhbGFuY2U6IE51bWJlcihzdWIudG90YWxzLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgaXNUb3RhbFJvdzogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJvd3MucHVzaCh7XHJcbiAgICAgICAgY29hQ29kZTogJycsXHJcbiAgICAgICAgYWNjb3VudENvZGU6ICdUb3RhbDonLFxyXG4gICAgICAgIGFjY291bnREZXNjcmlwdGlvbjogYCR7bWFpbi5tYWluQ09BRGVzY3JpcHRpb259YCxcclxuICAgICAgICBvcGVuaW5nQmFsYW5jZTogTnVtYmVyKG1haW4udG90YWxzLm9wZW5pbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICAgIGRlYml0OiBOdW1iZXIobWFpbi50b3RhbHMuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgY3JlZGl0OiBOdW1iZXIobWFpbi50b3RhbHMuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgIG5ldE1vdmVtZW50OiBOdW1iZXIobWFpbi50b3RhbHMubmV0TW92ZW1lbnQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgY2xvc2luZ0JhbGFuY2U6IE51bWJlcihtYWluLnRvdGFscy5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICBpc1RvdGFsUm93OiB0cnVlXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcm93cy5wdXNoKHtcclxuICAgICAgY29hQ29kZTogJ1RPVEFMOicsXHJcbiAgICAgIGFjY291bnRDb2RlOiAnJyxcclxuICAgICAgYWNjb3VudERlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgb3BlbmluZ0JhbGFuY2U6IE51bWJlcihyZXBvcnQuZ3JhbmRUb3RhbC5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgZGViaXQ6IE51bWJlcihyZXBvcnQuZ3JhbmRUb3RhbC5kZWJpdCkudG9GaXhlZCgzKSxcclxuICAgICAgY3JlZGl0OiBOdW1iZXIocmVwb3J0LmdyYW5kVG90YWwuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICBuZXRNb3ZlbWVudDogTnVtYmVyKHJlcG9ydC5ncmFuZFRvdGFsLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpLFxyXG4gICAgICBjbG9zaW5nQmFsYW5jZTogTnVtYmVyKHJlcG9ydC5ncmFuZFRvdGFsLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICBpc1RvdGFsUm93OiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcm93cztcclxuICB9XHJcblxyXG4gIG9uR3JpZFJlYWR5KHBhcmFtczogR3JpZFJlYWR5RXZlbnQpIHtcclxuICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICB0aGlzLmdyaWRDb2x1bW5BcGkgPSBwYXJhbXMuY29sdW1uQXBpO1xyXG5cclxuICAgIGNvbnN0IGFsbENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcclxuICAgIHBhcmFtcy5jb2x1bW5BcGkuZ2V0Q29sdW1ucygpLmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XHJcbiAgICAgIGFsbENvbHVtbklkcy5wdXNoKGNvbHVtbi5nZXRDb2xJZCgpKTtcclxuICAgIH0pO1xyXG4gICAgcGFyYW1zLmNvbHVtbkFwaS5hdXRvU2l6ZUNvbHVtbnMoYWxsQ29sdW1uSWRzKTtcclxuICAgIHRoaXMub25SZXNpemUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZEFwaSAmJiB0aGlzLmdyaWRBcGkuc2l6ZUNvbHVtbnNUb0ZpdCkge1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2godGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBub3JtYWxpemUgPSAoc3RyOiBhbnkpOiBzdHJpbmcgPT5cclxuICAgICAgc3RyXHJcbiAgICAgICAgPy50b1N0cmluZygpXHJcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAucmVwbGFjZSgvLC9nLCAnJylcclxuICAgICAgICAucmVwbGFjZSgvXFxzKy9nLCAnICcpXHJcbiAgICAgICAgLnJlcGxhY2UoL1tcXHUyMDBCLVxcdTIwMERcXHVGRUZGXS9nLCAnJylcclxuICAgICAgICAudHJpbSgpO1xyXG5cclxuICAgIGNvbnN0IHNlYXJjaCA9IG5vcm1hbGl6ZSh0ZXh0KTtcclxuXHJcbiAgICBpZiAoc2VhcmNoKSB7XHJcbiAgICAgIC8vIGZpbHRlciBmcm9tIGFscmVhZHkgZm9ybWF0dGVkIHJvd0RhdGFcclxuICAgICAgdGhpcy5yb3dEYXRhID0gdGhpcy5mbGF0dGVuUmVwb3J0KHRoaXMudHJpYWxCYWxhbmNlUmVwb3J0KVxyXG4gICAgICAgIC5tYXAoYWNjID0+ICh7XHJcbiAgICAgICAgICAuLi5hY2MsXHJcbiAgICAgICAgICBvcGVuaW5nQmFsYW5jZTogTnVtYmVyKGFjYy5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGRlYml0OiBOdW1iZXIoYWNjLmRlYml0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgY3JlZGl0OiBOdW1iZXIoYWNjLmNyZWRpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIG5ldE1vdmVtZW50OiBOdW1iZXIoYWNjLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgY2xvc2luZ0JhbGFuY2U6IE51bWJlcihhY2MuY2xvc2luZ0JhbGFuY2UpLnRvRml4ZWQoMylcclxuICAgICAgICB9KSlcclxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT5cclxuICAgICAgICAgIE9iamVjdC52YWx1ZXMoaXRlbSkuc29tZSh2YWx1ZSA9PiBub3JtYWxpemUodmFsdWUpLmluY2x1ZGVzKHNlYXJjaCkpXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuZmxhdHRlblJlcG9ydCh0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydClcclxuICAgICAgICAubWFwKGFjYyA9PiAoe1xyXG4gICAgICAgICAgLi4uYWNjLFxyXG4gICAgICAgICAgb3BlbmluZ0JhbGFuY2U6IE51bWJlcihhY2Mub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBkZWJpdDogTnVtYmVyKGFjYy5kZWJpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGNyZWRpdDogTnVtYmVyKGFjYy5jcmVkaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBuZXRNb3ZlbWVudDogTnVtYmVyKGFjYy5uZXRNb3ZlbWVudCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGNsb3NpbmdCYWxhbmNlOiBOdW1iZXIoYWNjLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpXHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXhwb3J0KG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uID0gb3B0aW9uO1xyXG4gICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2V4Y2VsJzpcclxuICAgICAgICB0aGlzLmV4cG9ydFRvRXhjZWwoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncGRmJzpcclxuICAgICAgICB0aGlzLmV4cG9ydFRvUGRmKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Nzdic6XHJcbiAgICAgICAgdGhpcy5leHBvcnRUb0NzdigpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGFsZXJ0KCdQbGVhc2Ugc2VsZWN0IGFuIGV4cG9ydCBmb3JtYXQuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb1BkZigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmlhbEJhbGFuY2VSZXBvcnQ/Lm1haW5DT0FHcm91cHM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gJ1hwcmVzcyBNb25leSAtIE1JIEFjY291bnRzJztcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gJ1RyaWFsLUJhbGFuY2UtQWNjb3VudHMtUmF3LnBkZic7XHJcblxyXG4gICAgLy8gLS0tIHBhZ2UgJiBsYXlvdXQgLS0tXHJcbiAgICBjb25zdCBkb2MgPSBuZXcganNQREYoeyBvcmllbnRhdGlvbjogJ2xhbmRzY2FwZScsIHVuaXQ6ICdtbScsIGZvcm1hdDogWzMxMiwgMjEwXSB9KTtcclxuICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xyXG4gICAgY29uc3QgbWFyZ2luTGVmdCA9IDE1O1xyXG4gICAgY29uc3QgbG9nb1dpZHRoID0gMzguNCwgbG9nb0hlaWdodCA9IDE3LjUsIGxvZ29YID0gbWFyZ2luTGVmdCwgbG9nb1kgPSA4O1xyXG4gICAgY29uc3QgdGl0bGVZID0gMTg7XHJcbiAgICBsZXQgY3VycmVudFkgPSB0aXRsZVkgKyAxNDtcclxuXHJcbiAgICBjb25zdCBsYWJlbFZhbHVlR2FwID0gMjtcclxuICAgIGNvbnN0IHBhaXJHYXAgPSAxNTtcclxuXHJcbiAgICAvLyAtLS0gbWV0YWRhdGEgLS0tXHJcbiAgICBjb25zdCBtZXRhZGF0YTogW3N0cmluZywgc3RyaW5nXVtdID0gW1xyXG4gICAgICBbJ1JlcG9ydCBQZXJpb2Q6JywgdGhpcy5yZXBvcnRQZXJpb2RdLFxyXG4gICAgICBbJ1JlcG9ydCBVc2VyICYgVGltZSA6ICcsIGAke3RoaXMucmVwb3J0VXNlcn1AJHt0aGlzLnJlcG9ydFRpbWV9YF0sXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIC0tLSBzZWFyY2ggY3JpdGVyaWEgLS0tXHJcbiAgICBjb25zdCBzZWFyY2hDcml0ZXJpYSA9IHRoaXMuc2VhcmNoQ3JpdGVyaWE7XHJcblxyXG4gICAgLy8gLS0tIGRyYXcgbG9nbyArIHRpdGxlIC0tLVxyXG4gICAgaWYgKHRoaXMuZXhwb3J0U2VydmljZT8ubG9nb0Jhc2U2NCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGRvYy5hZGRJbWFnZSh0aGlzLmV4cG9ydFNlcnZpY2UubG9nb0Jhc2U2NCwgJ1BORycsIGxvZ29YLCBsb2dvWSwgbG9nb1dpZHRoLCBsb2dvSGVpZ2h0KTtcclxuICAgICAgfSBjYXRjaCB7IH1cclxuICAgIH1cclxuICAgIGRvYy5zZXRGb250U2l6ZSgxNSk7XHJcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcclxuICAgIGRvYy50ZXh0KHRpdGxlLCBwYWdlV2lkdGggLyAyLCB0aXRsZVksIHsgYWxpZ246ICdjZW50ZXInIH0pO1xyXG5cclxuICAgIC8vIC0tLSBkcmF3IG1ldGFkYXRhIC0tLVxyXG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcclxuICAgIG1ldGFkYXRhLmZvckVhY2goKFtsYWJlbCwgdmFsdWVdLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IHkgPSBjdXJyZW50WSArIGkgKiA2O1xyXG4gICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcclxuICAgICAgZG9jLnRleHQobGFiZWwsIG1hcmdpbkxlZnQsIHkpO1xyXG4gICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ25vcm1hbCcpO1xyXG4gICAgICBjb25zdCBsYWJlbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChsYWJlbCArICcgJyk7XHJcbiAgICAgIGRvYy50ZXh0KHZhbHVlLCBtYXJnaW5MZWZ0ICsgbGFiZWxXaWR0aCArIGxhYmVsVmFsdWVHYXAsIHkpO1xyXG4gICAgfSk7XHJcbiAgICBjdXJyZW50WSArPSBtZXRhZGF0YS5sZW5ndGggKiA2ICsgNjtcclxuXHJcbiAgICAvLyAtLS0gZHJhdyBzZWFyY2ggY3JpdGVyaWEgaGVhZGluZyAtLS1cclxuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xyXG4gICAgZG9jLnRleHQoJ1NlYXJjaCBDcml0ZXJpYTotJywgbWFyZ2luTGVmdCwgY3VycmVudFkpO1xyXG4gICAgY3VycmVudFkgKz0gODtcclxuXHJcbiAgICAvLyAtLS0gZHJhdyBzZWFyY2ggY3JpdGVyaWEgcGFpcnMgLS0tXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlYXJjaENyaXRlcmlhLmxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICAgIGNvbnN0IGxlZnQgPSBzZWFyY2hDcml0ZXJpYVtpXTtcclxuICAgICAgY29uc3QgcmlnaHQgPSBzZWFyY2hDcml0ZXJpYVtpICsgMV07IC8vIG1heSBiZSB1bmRlZmluZWRcclxuXHJcbiAgICAgIC8vIC0tLSBMZWZ0IHNpZGUgLS0tXHJcbiAgICAgIGlmIChsZWZ0KSB7XHJcbiAgICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XHJcbiAgICAgICAgZG9jLnRleHQobGVmdFswXSwgbWFyZ2luTGVmdCwgY3VycmVudFkpO1xyXG4gICAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XHJcbiAgICAgICAgY29uc3QgbGVmdExhYmVsV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKGxlZnRbMF0gKyAnICcpO1xyXG4gICAgICAgIGRvYy50ZXh0KGxlZnRbMV0gPz8gJycsIG1hcmdpbkxlZnQgKyBsZWZ0TGFiZWxXaWR0aCArIGxhYmVsVmFsdWVHYXAsIGN1cnJlbnRZKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gLS0tIFJpZ2h0IHNpZGUgKGlmIGF2YWlsYWJsZSkgLS0tXHJcbiAgICAgIGlmIChyaWdodCkge1xyXG4gICAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xyXG4gICAgICAgIGRvYy50ZXh0KHJpZ2h0WzBdLCBwYWdlV2lkdGggLyAyLCBjdXJyZW50WSk7XHJcbiAgICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcclxuICAgICAgICBjb25zdCByaWdodExhYmVsV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKHJpZ2h0WzBdICsgJyAnKTtcclxuICAgICAgICBkb2MudGV4dChyaWdodFsxXSA/PyAnJywgcGFnZVdpZHRoIC8gMiArIHJpZ2h0TGFiZWxXaWR0aCArIGxhYmVsVmFsdWVHYXAsIGN1cnJlbnRZKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY3VycmVudFkgKz0gNjsgLy8gbW92ZSBkb3duIGZvciBuZXh0IGxpbmVcclxuICAgIH1cclxuXHJcbiAgICBjdXJyZW50WSArPSA0O1xyXG5cclxuICAgIC8vIC0tLSBoZWFkZXJzIC0tLVxyXG4gICAgY29uc3QgaGVhZGVycyA9IFtcclxuICAgICAgJ1NyIE5vJyxcclxuICAgICAgJ0NPQSBDb2RlJywgJ0FjY291bnQgQ29kZScsICdBY2NvdW50IERlc2NyaXB0aW9uJyxcclxuICAgICAgJ09wZW5pbmcgQmFsYW5jZSBMb2NhbCBBbXQnLCAnRGViaXRzIExvY2FsIEFtdCcsICdDcmVkaXRzIExvY2FsIEFtdCcsXHJcbiAgICAgICdOZXQgTW92ZW1lbnQgTG9jYWwgQW10JywgJ0Nsb3NpbmcgQmFsYW5jZSBMb2NhbCBBbXQnXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IGZsYXRSZXBvcnQgPSB0aGlzLmZsYXR0ZW5SZXBvcnQodGhpcy50cmlhbEJhbGFuY2VSZXBvcnQpO1xyXG5cclxuICAgIC8vIC0tLSByb3dzIC0tLVxyXG4gICAgY29uc3Qgcm93czogYW55W11bXSA9IGZsYXRSZXBvcnQubWFwKChhY2MsIGkpID0+IFtcclxuICAgICAgaSArIDEsXHJcbiAgICAgIGFjYy5jb2FDb2RlLFxyXG4gICAgICBhY2MuYWNjb3VudENvZGUsXHJcbiAgICAgIGFjYy5hY2NvdW50RGVzY3JpcHRpb24sXHJcbiAgICAgIGFjYy5vcGVuaW5nQmFsYW5jZSAhPSBudWxsID8gTnVtYmVyKGFjYy5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSA6IFwiXCIsXHJcbiAgICAgIGFjYy5kZWJpdCAhPSBudWxsID8gTnVtYmVyKGFjYy5kZWJpdCkudG9GaXhlZCgzKSA6IFwiXCIsXHJcbiAgICAgIGFjYy5jcmVkaXQgIT0gbnVsbCA/IE51bWJlcihhY2MuY3JlZGl0KS50b0ZpeGVkKDMpIDogXCJcIixcclxuICAgICAgYWNjLm5ldE1vdmVtZW50ICE9IG51bGwgPyBOdW1iZXIoYWNjLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpIDogXCJcIixcclxuICAgICAgYWNjLmNsb3NpbmdCYWxhbmNlICE9IG51bGwgPyBOdW1iZXIoYWNjLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpIDogXCJcIlxyXG4gICAgXSk7XHJcblxyXG4gICAgLy8gLS0tIGNvbHVtbiB3aWR0aHMgLS0tXHJcbiAgICBjb25zdCBjb2x1bW5TdHlsZXM6IHsgW2tleTogbnVtYmVyXTogYW55IH0gPSB7XHJcbiAgICAgIDA6IHsgY2VsbFdpZHRoOiAxNSB9LFxyXG4gICAgICAxOiB7IGNlbGxXaWR0aDogMjUgfSxcclxuICAgICAgMjogeyBjZWxsV2lkdGg6IDI1IH0sXHJcbiAgICAgIDM6IHsgY2VsbFdpZHRoOiA3MCB9LFxyXG4gICAgICA0OiB7IGNlbGxXaWR0aDogMzAgfSxcclxuICAgICAgNTogeyBjZWxsV2lkdGg6IDMwIH0sXHJcbiAgICAgIDY6IHsgY2VsbFdpZHRoOiAzMCB9LFxyXG4gICAgICA3OiB7IGNlbGxXaWR0aDogMzAgfSxcclxuICAgICAgODogeyBjZWxsV2lkdGg6IDMwIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIC0tLSBkcmF3IHRhYmxlIC0tLVxyXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XHJcbiAgICAgIGhlYWQ6IFtoZWFkZXJzXSxcclxuICAgICAgYm9keTogcm93cyxcclxuICAgICAgc3RhcnRZOiBjdXJyZW50WSxcclxuICAgICAgdGhlbWU6ICdncmlkJyxcclxuICAgICAgaGVhZFN0eWxlczoge1xyXG4gICAgICAgIGZpbGxDb2xvcjogWzIyMCwgMjIwLCAyMjBdLFxyXG4gICAgICAgIHRleHRDb2xvcjogMCxcclxuICAgICAgICBmb250U3R5bGU6ICdib2xkJyxcclxuICAgICAgICBmb250U2l6ZTogOSxcclxuICAgICAgICBoYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICAgIGNlbGxXaWR0aDogJ3dyYXAnLFxyXG4gICAgICAgIG1pbkNlbGxIZWlnaHQ6IDEwXHJcbiAgICAgIH0sXHJcbiAgICAgIGJvZHlTdHlsZXM6IHtcclxuICAgICAgICBmb250U2l6ZTogOCxcclxuICAgICAgICBmaWxsQ29sb3I6IFsyNTUsIDI1NSwgMjU1XSxcclxuICAgICAgICB0ZXh0Q29sb3I6IFswLCAwLCAwXVxyXG4gICAgICB9LFxyXG4gICAgICBzdHlsZXM6IHsgY2VsbFBhZGRpbmc6IDIsIG92ZXJmbG93OiAnbGluZWJyZWFrJywgbWluQ2VsbEhlaWdodDogNiB9LFxyXG4gICAgICBjb2x1bW5TdHlsZXMsXHJcbiAgICAgIGRpZFBhcnNlQ2VsbDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJvd0luZGV4ID0gZGF0YS5yb3cuaW5kZXg7XHJcbiAgICAgICAgY29uc3Qgcm93RGF0YSA9IGZsYXRSZXBvcnRbcm93SW5kZXhdO1xyXG4gICAgICAgIGNvbnN0IGlzVG90YWxSb3cgPSByb3dEYXRhLmlzVG90YWxSb3c7XHJcblxyXG4gICAgICAgIGlmIChpc1RvdGFsUm93KSBkYXRhLmNlbGwuc3R5bGVzLmZvbnRTdHlsZSA9ICdib2xkJztcclxuXHJcbiAgICAgICAgLy8gaGlnaGxpZ2h0IG5lZ2F0aXZlcyBpbiByZWRcclxuICAgICAgICBpZiAoZGF0YS5jb2x1bW4uaW5kZXggPiAzKSB7XHJcbiAgICAgICAgICBjb25zdCBrZXlNYXAgPSBbXCJvcGVuaW5nQmFsYW5jZVwiLCBcImRlYml0XCIsIFwiY3JlZGl0XCIsIFwibmV0TW92ZW1lbnRcIiwgXCJjbG9zaW5nQmFsYW5jZVwiXTtcclxuICAgICAgICAgIGNvbnN0IGtleSA9IGtleU1hcFtkYXRhLmNvbHVtbi5pbmRleCAtIDRdO1xyXG4gICAgICAgICAgY29uc3QgcmF3ID0gcm93RGF0YVtrZXldO1xyXG4gICAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHJhdyk7XHJcbiAgICAgICAgICBpZiAoIWlzTmFOKG51bSkgJiYgbnVtIDwgMCkge1xyXG4gICAgICAgICAgICBkYXRhLmNlbGwuc3R5bGVzLnRleHRDb2xvciA9IFsyNTUsIDAsIDBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLS0tIHBhZ2UgbnVtYmVycyAtLS1cclxuICAgIGNvbnN0IHRvdGFsUGFnZXMgPSAoZG9jIGFzIGFueSkuaW50ZXJuYWwuZ2V0TnVtYmVyT2ZQYWdlcygpO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWxQYWdlczsgaSsrKSB7XHJcbiAgICAgIGRvYy5zZXRQYWdlKGkpO1xyXG4gICAgICBkb2Muc2V0Rm9udFNpemUoOSk7XHJcbiAgICAgIGNvbnN0IGZvb3RlclkgPSBkb2MuaW50ZXJuYWwucGFnZVNpemUuaGVpZ2h0IC0gNjtcclxuICAgICAgZG9jLnRleHQoYFBhZ2UgJHtpfSBvZiAke3RvdGFsUGFnZXN9YCwgcGFnZVdpZHRoIC0gMTUsIGZvb3RlclksIHsgYWxpZ246ICdyaWdodCcgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tIHNhdmUgUERGIC0tLVxyXG4gICAgZG9jLnNhdmUoZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9FeGNlbCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmlhbEJhbGFuY2VSZXBvcnQ/Lm1haW5DT0FHcm91cHM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGZpbGVOYW1lID0gJ1RyaWFsLUJhbGFuY2UtQWNjb3VudHMtUmF3Lnhsc3gnO1xyXG4gICAgY29uc3Qgd29ya2Jvb2sgPSBuZXcgRXhjZWxKUy5Xb3JrYm9vaygpO1xyXG4gICAgY29uc3Qgc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoJ1RyaWFsIEJhbGFuY2UnKTtcclxuXHJcbiAgICBsZXQgY3VycmVudFJvdyA9IDE7XHJcblxyXG4gICAgLy8gLS0tIGFkZCBsb2dvIGlmIGF2YWlsYWJsZSAtLS1cclxuICAgIGlmICh0aGlzLmV4cG9ydFNlcnZpY2U/LmxvZ29CYXNlNjQpIHtcclxuICAgICAgY29uc3QgYmFzZTY0RGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5sb2dvQmFzZTY0LnJlcGxhY2UoL15kYXRhOmltYWdlXFwvXFx3KztiYXNlNjQsLywgJycpO1xyXG4gICAgICBjb25zdCBpbWFnZUlkID0gd29ya2Jvb2suYWRkSW1hZ2UoeyBiYXNlNjQ6IGJhc2U2NERhdGEsIGV4dGVuc2lvbjogJ3BuZycgfSk7XHJcbiAgICAgIHNoZWV0LmFkZEltYWdlKGltYWdlSWQsIHsgdGw6IHsgY29sOiAwLCByb3c6IDAgfSwgZXh0OiB7IHdpZHRoOiAxMjAsIGhlaWdodDogNjAgfSwgZWRpdEFzOiAnb25lQ2VsbCcgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tIHRpdGxlIC0tLVxyXG4gICAgY29uc3QgdGl0bGUgPSAnWHByZXNzIE1vbmV5IC0gTUkgQWNjb3VudHMnO1xyXG4gICAgc2hlZXQubWVyZ2VDZWxscygxLCAzLCAxLCA5KTtcclxuICAgIGNvbnN0IHRpdGxlQ2VsbCA9IHNoZWV0LmdldENlbGwoJ0MxJyk7XHJcbiAgICB0aXRsZUNlbGwudmFsdWUgPSB0aXRsZTtcclxuICAgIHRpdGxlQ2VsbC5mb250ID0geyBzaXplOiAxNSwgYm9sZDogdHJ1ZSB9O1xyXG4gICAgdGl0bGVDZWxsLmFsaWdubWVudCA9IHsgaG9yaXpvbnRhbDogJ2NlbnRlcicsIHZlcnRpY2FsOiAnbWlkZGxlJyB9O1xyXG4gICAgY3VycmVudFJvdyA9IDQ7XHJcblxyXG4gICAgLy8gLS0tIG1ldGFkYXRhIC0tLVxyXG4gICAgY29uc3QgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtcclxuICAgICAgWydSZXBvcnQgUGVyaW9kOicsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOiAnLCBgJHt0aGlzLnJlcG9ydFVzZXJ9QCR7dGhpcy5yZXBvcnRUaW1lfWBdLFxyXG4gICAgXTtcclxuICAgIG1ldGFkYXRhLmZvckVhY2goKFtsYWJlbCwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIHNoZWV0Lm1lcmdlQ2VsbHMoY3VycmVudFJvdywgMSwgY3VycmVudFJvdywgNik7XHJcbiAgICAgIGNvbnN0IHJvdyA9IHNoZWV0LmdldFJvdyhjdXJyZW50Um93KyspO1xyXG4gICAgICByb3cuZ2V0Q2VsbCgxKS52YWx1ZSA9IHsgcmljaFRleHQ6IFt7IHRleHQ6IGxhYmVsICsgJyAnLCBmb250OiB7IGJvbGQ6IHRydWUgfSB9LCB7IHRleHQ6IHZhbHVlIH1dIH07XHJcbiAgICAgIHJvdy5nZXRDZWxsKDEpLmFsaWdubWVudCA9IHsgdmVydGljYWw6ICdtaWRkbGUnLCB3cmFwVGV4dDogdHJ1ZSB9O1xyXG4gICAgfSk7XHJcbiAgICBjdXJyZW50Um93Kys7XHJcblxyXG4gICAgLy8gLS0tIHNlYXJjaCBjcml0ZXJpYSBoZWFkaW5nIC0tLVxyXG4gICAgc2hlZXQubWVyZ2VDZWxscyhjdXJyZW50Um93LCAxLCBjdXJyZW50Um93LCA2KTtcclxuICAgIHNoZWV0LmdldENlbGwoY3VycmVudFJvdywgMSkudmFsdWUgPSAnU2VhcmNoIENyaXRlcmlhOi0nO1xyXG4gICAgc2hlZXQuZ2V0Q2VsbChjdXJyZW50Um93LCAxKS5mb250ID0geyBib2xkOiB0cnVlIH07XHJcbiAgICBjdXJyZW50Um93ICs9IDI7XHJcblxyXG4gICAgLy8gLS0tIHNlYXJjaCBjcml0ZXJpYSAtLS1cclxuICAgIGNvbnN0IHNlYXJjaENyaXRlcmlhID0gdGhpcy5zZWFyY2hDcml0ZXJpYTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlYXJjaENyaXRlcmlhLmxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICAgIGNvbnN0IGxlZnQgPSBzZWFyY2hDcml0ZXJpYVtpXTtcclxuICAgICAgY29uc3QgcmlnaHQgPSBzZWFyY2hDcml0ZXJpYVtpICsgMV07IC8vIG1heSBiZSB1bmRlZmluZWRcclxuICAgICAgY29uc3Qgcm93ID0gc2hlZXQuZ2V0Um93KGN1cnJlbnRSb3crKyk7XHJcblxyXG4gICAgICAvLyBMZWZ0IGNlbGxcclxuICAgICAgc2hlZXQubWVyZ2VDZWxscyhyb3cubnVtYmVyLCAxLCByb3cubnVtYmVyLCAzKTtcclxuICAgICAgcm93LmdldENlbGwoMSkudmFsdWUgPSB7XHJcbiAgICAgICAgcmljaFRleHQ6IFtcclxuICAgICAgICAgIHsgdGV4dDogKGxlZnQ/LlswXSA/PyAnJykgKyAnICcsIGZvbnQ6IHsgYm9sZDogdHJ1ZSB9IH0sXHJcbiAgICAgICAgICB7IHRleHQ6IGxlZnQ/LlsxXSA/PyAnJyB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9O1xyXG4gICAgICByb3cuZ2V0Q2VsbCgxKS5hbGlnbm1lbnQgPSB7IHdyYXBUZXh0OiB0cnVlLCB2ZXJ0aWNhbDogJ21pZGRsZScgfTtcclxuXHJcbiAgICAgIC8vIFJpZ2h0IGNlbGwgKG9ubHkgaWYgcHJlc2VudClcclxuICAgICAgaWYgKHJpZ2h0KSB7XHJcbiAgICAgICAgc2hlZXQubWVyZ2VDZWxscyhyb3cubnVtYmVyLCA0LCByb3cubnVtYmVyLCA2KTtcclxuICAgICAgICByb3cuZ2V0Q2VsbCg0KS52YWx1ZSA9IHtcclxuICAgICAgICAgIHJpY2hUZXh0OiBbXHJcbiAgICAgICAgICAgIHsgdGV4dDogKHJpZ2h0Py5bMF0gPz8gJycpICsgJyAnLCBmb250OiB7IGJvbGQ6IHRydWUgfSB9LFxyXG4gICAgICAgICAgICB7IHRleHQ6IHJpZ2h0Py5bMV0gPz8gJycgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcm93LmdldENlbGwoNCkuYWxpZ25tZW50ID0geyB3cmFwVGV4dDogdHJ1ZSwgdmVydGljYWw6ICdtaWRkbGUnIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGN1cnJlbnRSb3crKztcclxuXHJcbiAgICAvLyAtLS0gaGVhZGVycyAtLS1cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBbXHJcbiAgICAgICdTciBObycsXHJcbiAgICAgICdDT0EgQ29kZScsICdBY2NvdW50IENvZGUnLCAnQWNjb3VudCBEZXNjcmlwdGlvbicsXHJcbiAgICAgICdPcGVuaW5nIEJhbGFuY2UgTG9jYWwgQW10JywgJ0RlYml0cyBMb2NhbCBBbXQnLCAnQ3JlZGl0cyBMb2NhbCBBbXQnLFxyXG4gICAgICAnTmV0IE1vdmVtZW50IExvY2FsIEFtdCcsICdDbG9zaW5nIEJhbGFuY2UgTG9jYWwgQW10J1xyXG4gICAgXTtcclxuICAgIGNvbnN0IGhlYWRlclJvdyA9IHNoZWV0LmdldFJvdyhjdXJyZW50Um93KyspO1xyXG4gICAgaGVhZGVycy5mb3JFYWNoKChoLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGwgPSBoZWFkZXJSb3cuZ2V0Q2VsbChpICsgMSk7XHJcbiAgICAgIGNlbGwudmFsdWUgPSBoO1xyXG4gICAgICBjZWxsLmZvbnQgPSB7IGJvbGQ6IHRydWUgfTtcclxuICAgICAgY2VsbC5hbGlnbm1lbnQgPSB7IGhvcml6b250YWw6ICdjZW50ZXInLCB2ZXJ0aWNhbDogJ21pZGRsZScsIHdyYXBUZXh0OiB0cnVlIH07XHJcbiAgICAgIGNlbGwuZmlsbCA9IHsgdHlwZTogJ3BhdHRlcm4nLCBwYXR0ZXJuOiAnc29saWQnLCBmZ0NvbG9yOiB7IGFyZ2I6ICdEQ0RDREMnIH0gfTtcclxuICAgICAgY2VsbC5ib3JkZXIgPSB7IHRvcDogeyBzdHlsZTogJ3RoaW4nIH0sIGxlZnQ6IHsgc3R5bGU6ICd0aGluJyB9LCBib3R0b206IHsgc3R5bGU6ICd0aGluJyB9LCByaWdodDogeyBzdHlsZTogJ3RoaW4nIH0gfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIC0tLSByb3dzIHdpdGggMyBkZWNpbWFscyBmb3IgbnVtZXJpYyBjb2x1bW5zIC0tLVxyXG4gICAgY29uc3Qgcm93cyA9IHRoaXMuZmxhdHRlblJlcG9ydCh0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydCkubWFwKChhY2MsIGlkeCkgPT4ge1xyXG4gICAgICBjb25zdCBudW1lcmljQ29sdW1ucyA9IFsnb3BlbmluZ0JhbGFuY2UnLCAnZGViaXQnLCAnY3JlZGl0JywgJ25ldE1vdmVtZW50JywgJ2Nsb3NpbmdCYWxhbmNlJ107XHJcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBudW1lcmljQ29sdW1ucy5tYXAoY29sID0+IHtcclxuICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIoYWNjW2NvbF0pO1xyXG4gICAgICAgIHJldHVybiAhaXNOYU4odmFsKSA/IHZhbC50b0ZpeGVkKDMpIDogJyc7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gW1xyXG4gICAgICAgIGlkeCArIDEsXHJcbiAgICAgICAgYWNjLmNvYUNvZGUsXHJcbiAgICAgICAgYWNjLmFjY291bnRDb2RlLFxyXG4gICAgICAgIGFjYy5hY2NvdW50RGVzY3JpcHRpb24sXHJcbiAgICAgICAgLi4ucm93RGF0YSxcclxuICAgICAgICBhY2MuaXNUb3RhbFJvdyB8fCBmYWxzZVxyXG4gICAgICBdO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBjb25zdCByb3cgPSBzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcclxuICAgICAgci5zbGljZSgwLCA5KS5mb3JFYWNoKCh2YWwsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjZWxsID0gcm93LmdldENlbGwoaSArIDEpO1xyXG4gICAgICAgIC8vIGNvbnZlcnQgYmFjayB0byBudW1iZXIgZm9yIEV4Y2VsIG1hdGggYnV0IHNob3cgMyBkZWNpbWFsc1xyXG4gICAgICAgIGlmIChpID4gMyAmJiB2YWwgIT09ICcnKSBjZWxsLnZhbHVlID0gcGFyc2VGbG9hdCh2YWwudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgZWxzZSBjZWxsLnZhbHVlID0gdmFsO1xyXG5cclxuICAgICAgICBjZWxsLmJvcmRlciA9IHsgdG9wOiB7IHN0eWxlOiAndGhpbicgfSwgbGVmdDogeyBzdHlsZTogJ3RoaW4nIH0sIGJvdHRvbTogeyBzdHlsZTogJ3RoaW4nIH0sIHJpZ2h0OiB7IHN0eWxlOiAndGhpbicgfSB9O1xyXG5cclxuICAgICAgICAvLyBib2xkIHRvdGFsIHJvd3NcclxuICAgICAgICBpZiAocls5XSkgY2VsbC5mb250ID0geyBib2xkOiB0cnVlIH07XHJcblxyXG4gICAgICAgIC8vIG5lZ2F0aXZlIG51bWJlcnMgcmVkXHJcbiAgICAgICAgaWYgKGkgPiAzICYmIHR5cGVvZiBjZWxsLnZhbHVlID09PSAnbnVtYmVyJyAmJiBjZWxsLnZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgY2VsbC5mb250ID0geyBjb2xvcjogeyBhcmdiOiAnRkYwMDAwJyB9LCBib2xkOiByWzldID8gdHJ1ZSA6IHVuZGVmaW5lZCB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gc2V0IG51bWJlciBmb3JtYXQgdG8gc2hvdyAzIGRlY2ltYWxzXHJcbiAgICAgICAgaWYgKGkgPiAzKSBjZWxsLm51bUZtdCA9ICcwLjAwMCc7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLS0tIGNvbHVtbiB3aWR0aHMgLS0tXHJcbiAgICBjb25zdCB3aWR0aHMgPSBbOCwgMTUsIDE1LCA0MCwgMjAsIDIwLCAyMCwgMjAsIDIwXTtcclxuICAgIHdpZHRocy5mb3JFYWNoKCh3LCBpKSA9PiBzaGVldC5nZXRDb2x1bW4oaSArIDEpLndpZHRoID0gdyk7XHJcblxyXG4gICAgLy8gLS0tIHNhdmUgZmlsZSAtLS1cclxuICAgIHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKS50aGVuKGJ1ZmZlciA9PiB7XHJcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnIH0pO1xyXG4gICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIGZpbGVOYW1lKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9Dc3YoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJpYWxCYWxhbmNlUmVwb3J0Py5tYWluQ09BR3JvdXBzPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBmaWxlTmFtZSA9ICdUcmlhbC1CYWxhbmNlLUFjY291bnRzLVJhdy5jc3YnO1xyXG5cclxuICAgIC8vIC0tLSBtZXRhZGF0YSAtLS1cclxuICAgIGNvbnN0IG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXHJcbiAgICAgIFsnUmVwb3J0IFRpdGxlOicsICdYcHJlc3MgTW9uZXkgLSBNSSBBY2NvdW50cyddLFxyXG4gICAgICBbJ1JlcG9ydCBQZXJpb2Q6JywgdGhpcy5yZXBvcnRQZXJpb2RdLFxyXG4gICAgICBbJ1JlcG9ydCBVc2VyICYgVGltZSA6ICcsIGAke3RoaXMucmVwb3J0VXNlcn1AJHt0aGlzLnJlcG9ydFRpbWV9YF0sXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIC0tLSBzZWFyY2ggY3JpdGVyaWEgLS0tXHJcbiAgICBjb25zdCBzZWFyY2hDcml0ZXJpYSA9IHRoaXMuc2VhcmNoQ3JpdGVyaWE7XHJcblxyXG4gICAgLy8gLS0tIHRhYmxlIGhlYWRlcnMgKGFkZCBTciBObyBhdCBzdGFydCkgLS0tXHJcbiAgICBjb25zdCBoZWFkZXJzID0gW1xyXG4gICAgICAnU3IgTm8nLFxyXG4gICAgICAnQ09BIENvZGUnLCAnQWNjb3VudCBDb2RlJywgJ0FjY291bnQgRGVzY3JpcHRpb24nLFxyXG4gICAgICAnT3BlbmluZyBCYWxhbmNlIExvY2FsIEFtdCcsICdEZWJpdHMgTG9jYWwgQW10JywgJ0NyZWRpdHMgTG9jYWwgQW10JyxcclxuICAgICAgJ05ldCBNb3ZlbWVudCBMb2NhbCBBbXQnLCAnQ2xvc2luZyBCYWxhbmNlIExvY2FsIEFtdCdcclxuICAgIF07XHJcblxyXG4gICAgLy8gLS0tIHRhYmxlIHJvd3MgKHByZXBlbmQgU3IgTm8pIC0tLVxyXG4gICAgY29uc3Qgcm93czogYW55W11bXSA9IHRoaXMuZmxhdHRlblJlcG9ydCh0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydCkubWFwKChhY2MsIGluZGV4KSA9PiBbXHJcbiAgICAgIGluZGV4ICsgMSwgLy8gU3IgTm9cclxuICAgICAgYWNjLmNvYUNvZGUsXHJcbiAgICAgIGFjYy5hY2NvdW50Q29kZSxcclxuICAgICAgYWNjLmFjY291bnREZXNjcmlwdGlvbixcclxuICAgICAgTnVtYmVyKGFjYy5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgTnVtYmVyKGFjYy5kZWJpdCkudG9GaXhlZCgzKSxcclxuICAgICAgTnVtYmVyKGFjYy5jcmVkaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgIE51bWJlcihhY2MubmV0TW92ZW1lbnQpLnRvRml4ZWQoMyksXHJcbiAgICAgIE51bWJlcihhY2MuY2xvc2luZ0JhbGFuY2UpLnRvRml4ZWQoMylcclxuICAgIF0pO1xyXG5cclxuICAgIC8vIC0tLSBoZWxwZXIgdG8gZXNjYXBlIENTViB2YWx1ZXMgLS0tXHJcbiAgICBjb25zdCBlc2NhcGVDc3YgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICcnO1xyXG4gICAgICBjb25zdCBzdHIgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICByZXR1cm4gc3RyLmluY2x1ZGVzKCcsJykgfHwgc3RyLmluY2x1ZGVzKCdcIicpIHx8IHN0ci5pbmNsdWRlcygnXFxuJylcclxuICAgICAgICA/IGBcIiR7c3RyLnJlcGxhY2UoL1wiL2csICdcIlwiJyl9XCJgXHJcbiAgICAgICAgOiBzdHI7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIC0tLSBidWlsZCBDU1YgY29udGVudCAtLS1cclxuICAgIGxldCBjc3ZDb250ZW50ID0gJyc7XHJcblxyXG4gICAgLy8gbWV0YWRhdGFcclxuICAgIG1ldGFkYXRhLmZvckVhY2goKFtsYWJlbCwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGNzdkNvbnRlbnQgKz0gYCR7ZXNjYXBlQ3N2KGxhYmVsKX0ke2VzY2FwZUNzdih2YWx1ZSl9LFxcbmA7XHJcbiAgICB9KTtcclxuICAgIGNzdkNvbnRlbnQgKz0gJ1xcbic7IC8vIGdhcFxyXG5cclxuICAgIC8vIC0tLSBzZWFyY2ggY3JpdGVyaWEgaGVhZGluZyAtLS1cclxuICAgIGNzdkNvbnRlbnQgKz0gJ1NlYXJjaCBDcml0ZXJpYTotXFxuJztcclxuXHJcbiAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhICgyIHBlciByb3csIGR5bmFtaWMpIC0tLVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWFyY2hDcml0ZXJpYS5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgICBjb25zdCBsZWZ0ID0gc2VhcmNoQ3JpdGVyaWFbaV07XHJcbiAgICAgIGNvbnN0IHJpZ2h0ID0gc2VhcmNoQ3JpdGVyaWFbaSArIDFdO1xyXG5cclxuICAgICAgLy8gTGVmdCBzaWRlXHJcbiAgICAgIGlmIChsZWZ0KSBjc3ZDb250ZW50ICs9IGAke2VzY2FwZUNzdihsZWZ0WzBdKX0gJHtlc2NhcGVDc3YobGVmdFsxXSl9LGA7XHJcblxyXG4gICAgICAvLyBSaWdodCBzaWRlXHJcbiAgICAgIGlmIChyaWdodCkgY3N2Q29udGVudCArPSBgICR7ZXNjYXBlQ3N2KHJpZ2h0WzBdKX0gJHtlc2NhcGVDc3YocmlnaHRbMV0pfSxgO1xyXG5cclxuICAgICAgY3N2Q29udGVudCArPSAnXFxuJztcclxuICAgIH1cclxuICAgIGNzdkNvbnRlbnQgKz0gJ1xcbic7IC8vIGJsYW5rIGxpbmUgYWZ0ZXIgY3JpdGVyaWFcclxuXHJcbiAgICAvLyB0YWJsZSBoZWFkZXJzXHJcbiAgICBjc3ZDb250ZW50ICs9IGhlYWRlcnMubWFwKGggPT4gZXNjYXBlQ3N2KGgpKS5qb2luKCcsJykgKyAnXFxuJztcclxuXHJcbiAgICAvLyB0YWJsZSByb3dzXHJcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgY3N2Q29udGVudCArPSByb3cubWFwKGNlbGwgPT4gZXNjYXBlQ3N2KGNlbGwpKS5qb2luKCcsJykgKyAnXFxuJztcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIC0tLSB0cmlnZ2VyIGRvd25sb2FkIC0tLVxyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjc3ZDb250ZW50XSwgeyB0eXBlOiAndGV4dC9jc3Y7Y2hhcnNldD11dGYtODsnIH0pO1xyXG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XHJcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICBsaW5rLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVwb3J0KHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgbW9kYWwgPSBwYXlsb2FkPy5tb2RhbCB8fCBwYXlsb2FkO1xyXG5cclxuICAgIHRoaXMuZnJvbURhdGUgPSBmb3JtYXREYXRlKG1vZGFsLmZyb21EYXRlLCAnZGQvTU0veXl5eScsICdlbi1VUycpO1xyXG4gICAgdGhpcy50b0RhdGUgPSBmb3JtYXREYXRlKG1vZGFsLnRvRGF0ZSwgJ2RkL01NL3l5eXknLCAnZW4tVVMnKTtcclxuXHJcbiAgICBjb25zdCByZXE6IFRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0UmVxdWVzdERUTyA9IHtcclxuICAgICAgeWVhcjogTnVtYmVyKG1vZGFsLmZpbmFuY2lhbFllYXIpLFxyXG4gICAgICBkYXRlVHlwZTogbW9kYWwuZGF0ZVR5cGUsXHJcbiAgICAgIGZyb21EYXRlOiBtb2RhbC5mcm9tRGF5LFxyXG4gICAgICB0b0RhdGU6IG1vZGFsLnRvRGF5LFxyXG4gICAgICBhY2NvdW50U3RhdHVzOiBtb2RhbC5hY2NvdW50U3RhdHVzLmpvaW4oJywnKSxcclxuICAgICAgYnVzaW5lc3NVbml0OiBtb2RhbC5idXNpbmVzc1VuaXQsXHJcbiAgICAgIGN1cnJlbmN5OiBtb2RhbC5jdXJyZW5jeSxcclxuICAgICAgY29tcGFueUNvZGU6IFwiQkhcIixcclxuICAgICAgcmVwb3J0UGVyaW9kOiBgJHtmb3JtYXREYXRlKG1vZGFsLmZyb21EYXRlLCAnZGQvTU0veXl5eScsICdlbi1VUycpfSAtICR7Zm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5JywgJ2VuLVVTJyl9YCxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5nZXRUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydChyZXEpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVZhbGlkKGlzVmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb3JtVmFsaWQgPSBpc1ZhbGlkO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxpYi1zZWFyY2gtZmlsdGVyIFtSZXBvcnROYW1lXT1cIlJlcG9ydE5hbWVcIiAoc2VhcmNoQ2xpY2tlZCk9XCJnZXRSZXBvcnQoJGV2ZW50KVwiXHJcbiAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiPjwvbGliLXNlYXJjaC1maWx0ZXI+XHJcbjxhcHAtbG9hZGVyIGNsYXNzPVwiXCIgKm5nSWY9XCJsb2FkaW5nU3RhdGUgPT0gQ29tcG9uZW50TG9hZGluZ1N0YXRlLkxvYWRpbmdcIj48L2FwcC1sb2FkZXI+XHJcblxyXG48ZGl2ICpuZ0lmPVwiZGF0YVJlYWR5ICYmIHRyaWFsQmFsYW5jZVJlcG9ydD8ubWFpbkNPQUdyb3Vwcz8ubGVuZ3RoID4gMCAmJmlzRm9ybVZhbGlkXCI+XHJcbiAgPGxpYi1tZXRhZGF0YSBbcmVwb3J0TmFtZV09XCInWHByZXNzIE1vbmV5IC0gTUkgQWNjb3VudHMnXCIgW3Nob3dtZXRhRGF0YU9uZV09XCJ0cnVlXCIgW3Nob3dtZXRhRGF0YVR3b109XCJ0cnVlXCJcclxuICAgIFttZXRhRGF0YU9uZV09XCJtZXRhRGF0YU9uZVwiIFttZXRhRGF0YVR3b109XCJtZXRhRGF0YVR3b1wiIChleHBvcnRFdmVudCk9XCJoYW5kbGVFeHBvcnQoJGV2ZW50KVwiXHJcbiAgICAoc2VhcmNoRXZlbnQpPVwib25TZWFyY2goJGV2ZW50KVwiPjwvbGliLW1ldGFkYXRhPlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiICpuZ0lmPVwicm93RGF0YSAmJiByb3dEYXRhLmxlbmd0aCA+IDBcIj5cclxuICAgIDxsaWItcGFnZS1zaXplLXNlbGVjdG9yIFt0b3RhbEVudHJpZXNdPVwicm93RGF0YT8ubGVuZ3RoXCIgW2RlZmF1bHRTaXplXT1cIicxNSdcIlxyXG4gICAgICBbZ3JpZEFwaV09XCJncmlkQXBpXCI+PC9saWItcGFnZS1zaXplLXNlbGVjdG9yPlxyXG5cclxuICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgdHJhbnNhY3Rpb24tZ3JpZFwiIHN0eWxlPVwiaGVpZ2h0OiAzODBweDtcIiBbZG9tTGF5b3V0XT1cIidub3JtYWwnXCJcclxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YVwiIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIiBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCIgW3Jvd0NsYXNzUnVsZXNdPVwicm93Q2xhc3NSdWxlc1wiXHJcbiAgICAgIFtwYWdpbmF0aW9uXT1cInRydWVcIiAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIiBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2VTaXplXCIgW3Jvd0hlaWdodF09XCIyMFwiXHJcbiAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjJcIiAocGFnaW5hdGlvbkNoYW5nZWQpPVwib25SZXNpemUoKVwiPjwvYWctZ3JpZC1hbmd1bGFyPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgbXQtM1wiICpuZ0lmPVwidHJpYWxCYWxhbmNlUmVwb3J0Py5tYWluQ09BR3JvdXBzPy5sZW5ndGg9PTBcIj5cclxuICBObyBEYXRhIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG48L2Rpdj4iXX0=
631
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpYWwtYmFsYW5jZS1hY2NvdW50cy1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0L3RyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7QUEyQnhDLE1BQU0sT0FBTyxtQ0FBbUM7SUF5RTlDLFlBQW9CLGFBQTRCLEVBQVUsYUFBNEI7UUFBbEUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXRFdEYsZUFBVSxHQUFXLDBCQUEwQixDQUFBO1FBSS9DLDBCQUFxQixHQUFHLHNCQUFzQixDQUFDO1FBQy9DLGlCQUFZLEdBQTJCLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztRQUV2RSx5QkFBb0IsR0FBVyxPQUFPLENBQUM7UUFDdkMsYUFB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QUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVcsRUFBRSxLQUFLLENBQUMsWUFBWTtZQUMvQixZQUFZLEVBQUUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1NBQzFILENBQUM7UUFFRixJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDOztnSUE3ckJVLG1DQUFtQztvSEFBbkMsbUNBQW1DLHVJQ3BDaEQsZytDQXdCTTsyRkRZTyxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0UsbUNBQW1DO2dJQW9ON0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbERlZiwgQ29sdW1uQXBpLCBHcmlkQXBpLCBHcmlkUmVhZHlFdmVudCB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGluZ1N0YXRlcyB9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQtbG9hZGluZy1zdGF0ZXMnO1xyXG5pbXBvcnQgeyBBY2NvdW50RGV0YWlsLCBUcmlhbEJhbGFuY2VSZXBvcnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJpYWwtYmFsYW5jZS1hY2NvdW50cy1yZXBvcnQvdHJpYWwtYmFsYW5jZS1hY2NvdW50cy5tb2RlbHMnO1xyXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQganNQREYgZnJvbSAnanNwZGYnO1xyXG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XHJcbmltcG9ydCAqIGFzIEV4Y2VsSlMgZnJvbSAnZXhjZWxqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgRXhwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9leHBvcnQuc2VydmljZSc7XHJcblxyXG5cclxuZGVjbGFyZSBtb2R1bGUgJ2pzcGRmJyB7XHJcbiAgaW50ZXJmYWNlIGpzUERGIHtcclxuICAgIGF1dG9UYWJsZTogKG9wdGlvbnM6IGFueSkgPT4ganNQREY7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0UmVxdWVzdERUTyB7XHJcbiAgeWVhcjogbnVtYmVyO1xyXG4gIGRhdGVUeXBlOiBzdHJpbmc7XHJcbiAgZnJvbURhdGU6IHN0cmluZztcclxuICB0b0RhdGU6IHN0cmluZztcclxuICBhY2NvdW50U3RhdHVzOiBzdHJpbmc7XHJcbiAgYnVzaW5lc3NVbml0OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBjb21wYW55Q29kZTogc3RyaW5nO1xyXG4gIHJlcG9ydFBlcmlvZDogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyaWFsLWJhbGFuY2UtYWNjb3VudHMtcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBSZXBvcnROYW1lOiBzdHJpbmcgPSBcIlRyaWFsIEJhbGFuY2UgLSBBY2NvdW50c1wiXHJcbiAgZ3JpZEFwaTogR3JpZEFwaTtcclxuICBtZXRhRGF0YU9uZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICBtZXRhRGF0YVR3bzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICBDb21wb25lbnRMb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzO1xyXG4gIGxvYWRpbmdTdGF0ZTogQ29tcG9uZW50TG9hZGluZ1N0YXRlcyA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgdHJpYWxCYWxhbmNlUmVwb3J0OiBUcmlhbEJhbGFuY2VSZXBvcnQ7XHJcbiAgc2VsZWN0ZWRFeHBvcnRPcHRpb246IHN0cmluZyA9ICdleGNlbCc7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG4gIGRhdGFSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaENyaXRlcmlhOiBbc3RyaW5nLCBzdHJpbmddW107XHJcblxyXG4gIGFjY291bnRTdGF0dXM6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbmN5OiBzdHJpbmcgPSAnJztcclxuICBkYXRlVHlwZTogc3RyaW5nID0gJyc7XHJcbiAgZnJvbURhdGU6IHN0cmluZyA9ICcnO1xyXG4gIHRvRGF0ZTogc3RyaW5nID0gJyc7XHJcbiAgYnVzaW5lc3NMaW5lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcmVwb3J0VXNlcjogc3RyaW5nID0gJyc7XHJcbiAgcmVwb3J0VGltZTogc3RyaW5nID0gJyc7XHJcbiAgcmVwb3J0UGVyaW9kOiBzdHJpbmcgPSAnJztcclxuICBpc0Zvcm1WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgZGVmYXVsdENvbERlZjogQ29sRGVmID0ge1xyXG4gICAgcmVzaXphYmxlOiB0cnVlLFxyXG4gICAgc29ydGFibGU6IHRydWUsXHJcbiAgICBmaWx0ZXI6IHRydWUsXHJcbiAgICBzdXBwcmVzc1NpemVUb0ZpdDogZmFsc2UsXHJcbiAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgdXNlclNlbGVjdDogJ3RleHQnLFxyXG4gICAgICAnbGluZS1oZWlnaHQnOiAnMS4yJyxcclxuICAgICAgJ3doaXRlLXNwYWNlJzogJ25vcm1hbCcsXHJcbiAgICAgICd3b3JkLWJyZWFrJzogJ25vcm1hbCcsXHJcbiAgICAgICdvdmVyZmxvdy13cmFwJzogJ2JyZWFrLXdvcmQnLFxyXG4gICAgfSxcclxuXHJcbiAgICB3cmFwSGVhZGVyVGV4dDogdHJ1ZSxcclxuICAgIGF1dG9IZWFkZXJIZWlnaHQ6IHRydWUsXHJcbiAgICB3cmFwVGV4dDogdHJ1ZSxcclxuICAgIGF1dG9IZWlnaHQ6IHRydWUsXHJcblxyXG4gICAgY2VsbENsYXNzUnVsZXM6IHtcclxuICAgICAgJ3RvdGFsLXBvc2l0aXZlJzogcGFyYW1zID0+IHBhcmFtcy5kYXRhPy5pc1RvdGFsUm93ICYmIHBhcmFtcy52YWx1ZSA+PSAwLFxyXG4gICAgICAndG90YWwtbmVnYXRpdmUnOiBwYXJhbXMgPT4gcGFyYW1zLmRhdGE/LmlzVG90YWxSb3cgJiYgcGFyYW1zLnZhbHVlIDwgMCxcclxuICAgICAgJ3Bvc2l0aXZlLXZhbHVlJzogcGFyYW1zID0+ICFwYXJhbXMuZGF0YT8uaXNUb3RhbFJvdyAmJiBwYXJhbXMudmFsdWUgPj0gMCxcclxuICAgICAgJ25lZ2F0aXZlLXZhbHVlJzogcGFyYW1zID0+ICFwYXJhbXMuZGF0YT8uaXNUb3RhbFJvdyAmJiBwYXJhbXMudmFsdWUgPCAwLFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJvd0NsYXNzUnVsZXMgPSB7XHJcbiAgICAndG90YWwtcm93JzogcGFyYW1zID0+IHBhcmFtcy5kYXRhPy5pc1RvdGFsUm93XHJcbiAgfTtcclxuXHJcbiAgY29sdW1uRGVmczogQ29sRGVmW10gPVxyXG4gICAgW1xyXG4gICAgICB7IGhlYWRlck5hbWU6ICdDT0EgQ29kZScsIGZpZWxkOiAnY29hQ29kZScsIHRvb2x0aXBGaWVsZDogJ2NvYUNvZGUnLCBtaW5XaWR0aDogNjAsIG1heFdpZHRoOiAxMDAgfSxcclxuICAgICAgeyBoZWFkZXJOYW1lOiAnQWNjb3VudCBDb2RlJywgZmllbGQ6ICdhY2NvdW50Q29kZScsIHRvb2x0aXBGaWVsZDogJ2FjY291bnRDb2RlJywgbWluV2lkdGg6IDgwLCBtYXhXaWR0aDogMTAwIH0sXHJcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0FjY291bnQgRGVzY3JpcHRpb24nLCBmaWVsZDogJ2FjY291bnREZXNjcmlwdGlvbicsIHRvb2x0aXBGaWVsZDogJ2FjY291bnREZXNjcmlwdGlvbicsIG1pbldpZHRoOiAxODAsIG1heFdpZHRoOiAyMzAgfSxcclxuICAgICAgeyBoZWFkZXJOYW1lOiAnT3BlbmluZyBCYWxhbmNlIExvY2FsIEFtb3VudCcsIGZpZWxkOiAnb3BlbmluZ0JhbGFuY2UnLCB0eXBlOiAnbnVtZXJpY0NvbHVtbicsIHRvb2x0aXBGaWVsZDogJ29wZW5pbmdCYWxhbmNlJyB9LFxyXG4gICAgICB7IGhlYWRlck5hbWU6ICdEZWJpdHMgTG9jYWwgQW1vdW50JywgZmllbGQ6ICdkZWJpdCcsIHR5cGU6ICdudW1lcmljQ29sdW1uJywgdG9vbHRpcEZpZWxkOiAnZGViaXQnIH0sXHJcbiAgICAgIHsgaGVhZGVyTmFtZTogJ0NyZWRpdHMgTG9jYWwgQW1vdW50JywgZmllbGQ6ICdjcmVkaXQnLCB0eXBlOiAnbnVtZXJpY0NvbHVtbicsIHRvb2x0aXBGaWVsZDogJ2NyZWRpdCcgfSxcclxuICAgICAgeyBoZWFkZXJOYW1lOiAnTmV0IE1vdmVtZW50IExvY2FsIEFtb3VudCcsIGZpZWxkOiAnbmV0TW92ZW1lbnQnLCB0eXBlOiAnbnVtZXJpY0NvbHVtbicsIHRvb2x0aXBGaWVsZDogJ25ldE1vdmVtZW50JyB9LFxyXG4gICAgICB7IGhlYWRlck5hbWU6ICdDbG9zaW5nIEJhbGFuY2UgTG9jYWwgQW1vdW50JywgZmllbGQ6ICdjbG9zaW5nQmFsYW5jZScsIHR5cGU6ICdudW1lcmljQ29sdW1uJywgdG9vbHRpcEZpZWxkOiAnY2xvc2luZ0JhbGFuY2UnIH1cclxuICAgIF07XHJcblxyXG4gIHJvd0RhdGE6IEFjY291bnREZXRhaWxbXSA9IFtdO1xyXG4gIGdyaWRDb2x1bW5BcGk6IENvbHVtbkFwaTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXBvcnRTZXJ2aWNlOiBSZXBvcnRTZXJ2aWNlLCBwcml2YXRlIGV4cG9ydFNlcnZpY2U6IEV4cG9ydFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxyXG5cclxuICBnZXRUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydChyZXE6IGFueSkge1xyXG5cclxuICAgIHRoaXMuZGF0YVJlYWR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydCA9IG51bGw7XHJcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZSA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuTG9hZGluZztcclxuXHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0VHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQocmVxKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVwb3J0OiBUcmlhbEJhbGFuY2VSZXBvcnQpID0+IHtcclxuICAgICAgICB0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydCA9IHJlcG9ydDtcclxuICAgICAgICB0aGlzLmRhdGFSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXBvcnRVc2VyID0gdGhpcy50cmlhbEJhbGFuY2VSZXBvcnQucmVwb3J0VXNlcjtcclxuICAgICAgICB0aGlzLnJlcG9ydFRpbWUgPSBmb3JtYXREYXRlKG5ldyBEYXRlKCksICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKTtcclxuICAgICAgICB0aGlzLnJlcG9ydFBlcmlvZCA9IHJlcS5yZXBvcnRQZXJpb2Q7XHJcblxyXG4gICAgICAgIHRoaXMuYWNjb3VudFN0YXR1cyA9IHJlcS5hY2NvdW50U3RhdHVzO1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSByZXEuY3VycmVuY3k7XHJcbiAgICAgICAgdGhpcy5kYXRlVHlwZSA9IHJlcS5kYXRlVHlwZSA9PSBcIlZEXCIgPyBcIlZhbHVlIERhdGVcIiA6IFwiUG9zdGluZyBEYXRlXCI7XHJcbiAgICAgICAgdGhpcy5idXNpbmVzc0xpbmUgPSByZXEuYnVzaW5lc3NMaW5lO1xyXG5cclxuICAgICAgICB0aGlzLnJvd0RhdGEgPSB0aGlzLmZsYXR0ZW5SZXBvcnQocmVwb3J0KS5tYXAoYWNjID0+ICh7XHJcbiAgICAgICAgICAuLi5hY2MsXHJcbiAgICAgICAgICBvcGVuaW5nQmFsYW5jZTogTnVtYmVyKGFjYy5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGRlYml0OiBOdW1iZXIoYWNjLmRlYml0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgY3JlZGl0OiBOdW1iZXIoYWNjLmNyZWRpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIG5ldE1vdmVtZW50OiBOdW1iZXIoYWNjLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgY2xvc2luZ0JhbGFuY2U6IE51bWJlcihhY2MuY2xvc2luZ0JhbGFuY2UpLnRvRml4ZWQoMylcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMubWV0YURhdGFPbmUgPSB7XHJcbiAgICAgICAgICAnUmVwb3J0IFBlcmlvZCc6IHRoaXMucmVwb3J0UGVyaW9kLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMubWV0YURhdGFUd28gPSB7XHJcbiAgICAgICAgICAnUmVwb3J0IFVzZXIgJiBUaW1lJzogYCR7dGhpcy5yZXBvcnRVc2VyfSBAICR7dGhpcy5yZXBvcnRUaW1lfWAsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2VhcmNoQ3JpdGVyaWE6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtcclxuICAgICAgICAgIFsnQWNjb3VudCBTdGF0dXM6JywgdGhpcy5hY2NvdW50U3RhdHVzXSxcclxuICAgICAgICAgIFsnQ3VycmVuY3k6JywgdGhpcy5jdXJyZW5jeV0sXHJcbiAgICAgICAgICBbJ0RhdGUgVHlwZTonLCB0aGlzLmRhdGVUeXBlXSxcclxuICAgICAgICAgIFsnRnJvbSBEYXRlOicsIHRoaXMuZnJvbURhdGVdLFxyXG4gICAgICAgICAgWydCdXNpbmVzcyBMaW5lOicsIHRoaXMuYnVzaW5lc3NMaW5lXSxcclxuICAgICAgICAgIFsnVG8gRGF0ZTonLCB0aGlzLnRvRGF0ZV0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hDcml0ZXJpYSA9IHNlYXJjaENyaXRlcmlhO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzLkNvbXBsZXRlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHRyaWFsIGJhbGFuY2UgcmVwb3J0OicsIGVycik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmxhdHRlblJlcG9ydChyZXBvcnQ6IFRyaWFsQmFsYW5jZVJlcG9ydCk6IEFjY291bnREZXRhaWxbXSB7XHJcbiAgICBjb25zdCByb3dzOiBBY2NvdW50RGV0YWlsW10gPSBbXTtcclxuXHJcbiAgICByZXBvcnQubWFpbkNPQUdyb3Vwcy5mb3JFYWNoKG1haW4gPT4ge1xyXG4gICAgICBtYWluLnN1YkNPQUdyb3Vwcy5mb3JFYWNoKHN1YiA9PiB7XHJcbiAgICAgICAgc3ViLmNvYUdyb3Vwcy5mb3JFYWNoKGNvYSA9PiB7XHJcbiAgICAgICAgICBjb2EuYWNjb3VudHMuZm9yRWFjaChhY2NvdW50ID0+IHJvd3MucHVzaChhY2NvdW50KSk7XHJcblxyXG4gICAgICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICAgICAgY29hQ29kZTogJycsXHJcbiAgICAgICAgICAgIGFjY291bnRDb2RlOiAnVG90YWw6JyxcclxuICAgICAgICAgICAgYWNjb3VudERlc2NyaXB0aW9uOiBgJHtjb2EuY29hRGVzY3JpcHRpb259YCxcclxuICAgICAgICAgICAgb3BlbmluZ0JhbGFuY2U6IE51bWJlcihjb2EudG90YWxzLm9wZW5pbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgICBkZWJpdDogTnVtYmVyKGNvYS50b3RhbHMuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICAgIGNyZWRpdDogTnVtYmVyKGNvYS50b3RhbHMuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgICBuZXRNb3ZlbWVudDogTnVtYmVyKGNvYS50b3RhbHMubmV0TW92ZW1lbnQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICAgIGNsb3NpbmdCYWxhbmNlOiBOdW1iZXIoY29hLnRvdGFscy5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICAgICAgaXNUb3RhbFJvdzogdHJ1ZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJvd3MucHVzaCh7XHJcbiAgICAgICAgICBjb2FDb2RlOiAnJyxcclxuICAgICAgICAgIGFjY291bnRDb2RlOiAnVG90YWw6JyxcclxuICAgICAgICAgIGFjY291bnREZXNjcmlwdGlvbjogYCR7c3ViLnN1YkNPQURlc2NyaXB0aW9ufWAsXHJcbiAgICAgICAgICBvcGVuaW5nQmFsYW5jZTogTnVtYmVyKHN1Yi50b3RhbHMub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBkZWJpdDogTnVtYmVyKHN1Yi50b3RhbHMuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBjcmVkaXQ6IE51bWJlcihzdWIudG90YWxzLmNyZWRpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIG5ldE1vdmVtZW50OiBOdW1iZXIoc3ViLnRvdGFscy5uZXRNb3ZlbWVudCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGNsb3NpbmdCYWxhbmNlOiBOdW1iZXIoc3ViLnRvdGFscy5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGlzVG90YWxSb3c6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByb3dzLnB1c2goe1xyXG4gICAgICAgIGNvYUNvZGU6ICcnLFxyXG4gICAgICAgIGFjY291bnRDb2RlOiAnVG90YWw6JyxcclxuICAgICAgICBhY2NvdW50RGVzY3JpcHRpb246IGAke21haW4ubWFpbkNPQURlc2NyaXB0aW9ufWAsXHJcbiAgICAgICAgb3BlbmluZ0JhbGFuY2U6IE51bWJlcihtYWluLnRvdGFscy5vcGVuaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgICBkZWJpdDogTnVtYmVyKG1haW4udG90YWxzLmRlYml0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgIGNyZWRpdDogTnVtYmVyKG1haW4udG90YWxzLmNyZWRpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICBuZXRNb3ZlbWVudDogTnVtYmVyKG1haW4udG90YWxzLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgIGNsb3NpbmdCYWxhbmNlOiBOdW1iZXIobWFpbi50b3RhbHMuY2xvc2luZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgaXNUb3RhbFJvdzogdHJ1ZVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJvd3MucHVzaCh7XHJcbiAgICAgIGNvYUNvZGU6ICdUT1RBTDonLFxyXG4gICAgICBhY2NvdW50Q29kZTogJycsXHJcbiAgICAgIGFjY291bnREZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIG9wZW5pbmdCYWxhbmNlOiBOdW1iZXIocmVwb3J0LmdyYW5kVG90YWwub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgIGRlYml0OiBOdW1iZXIocmVwb3J0LmdyYW5kVG90YWwuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgIGNyZWRpdDogTnVtYmVyKHJlcG9ydC5ncmFuZFRvdGFsLmNyZWRpdCkudG9GaXhlZCgzKSxcclxuICAgICAgbmV0TW92ZW1lbnQ6IE51bWJlcihyZXBvcnQuZ3JhbmRUb3RhbC5uZXRNb3ZlbWVudCkudG9GaXhlZCgzKSxcclxuICAgICAgY2xvc2luZ0JhbGFuY2U6IE51bWJlcihyZXBvcnQuZ3JhbmRUb3RhbC5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKSxcclxuICAgICAgaXNUb3RhbFJvdzogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJvd3M7XHJcbiAgfVxyXG5cclxuICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50KSB7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuXHJcbiAgICBjb25zdCBhbGxDb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBwYXJhbXMuY29sdW1uQXBpLmdldENvbHVtbnMoKS5mb3JFYWNoKChjb2x1bW46IGFueSkgPT4ge1xyXG4gICAgICBhbGxDb2x1bW5JZHMucHVzaChjb2x1bW4uZ2V0Q29sSWQoKSk7XHJcbiAgICB9KTtcclxuICAgIHBhcmFtcy5jb2x1bW5BcGkuYXV0b1NpemVDb2x1bW5zKGFsbENvbHVtbklkcyk7XHJcbiAgICB0aGlzLm9uUmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkgJiYgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQpIHtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgbm9ybWFsaXplID0gKHN0cjogYW55KTogc3RyaW5nID0+XHJcbiAgICAgIHN0clxyXG4gICAgICAgID8udG9TdHJpbmcoKVxyXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgLnJlcGxhY2UoLywvZywgJycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpXHJcbiAgICAgICAgLnRyaW0oKTtcclxuXHJcbiAgICBjb25zdCBzZWFyY2ggPSBub3JtYWxpemUodGV4dCk7XHJcblxyXG4gICAgaWYgKHNlYXJjaCkge1xyXG4gICAgICAvLyBmaWx0ZXIgZnJvbSBhbHJlYWR5IGZvcm1hdHRlZCByb3dEYXRhXHJcbiAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuZmxhdHRlblJlcG9ydCh0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydClcclxuICAgICAgICAubWFwKGFjYyA9PiAoe1xyXG4gICAgICAgICAgLi4uYWNjLFxyXG4gICAgICAgICAgb3BlbmluZ0JhbGFuY2U6IE51bWJlcihhY2Mub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBkZWJpdDogTnVtYmVyKGFjYy5kZWJpdCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGNyZWRpdDogTnVtYmVyKGFjYy5jcmVkaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBuZXRNb3ZlbWVudDogTnVtYmVyKGFjYy5uZXRNb3ZlbWVudCkudG9GaXhlZCgzKSxcclxuICAgICAgICAgIGNsb3NpbmdCYWxhbmNlOiBOdW1iZXIoYWNjLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpXHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgLmZpbHRlcihpdGVtID0+XHJcbiAgICAgICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLnNvbWUodmFsdWUgPT4gbm9ybWFsaXplKHZhbHVlKS5pbmNsdWRlcyhzZWFyY2gpKVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvd0RhdGEgPSB0aGlzLmZsYXR0ZW5SZXBvcnQodGhpcy50cmlhbEJhbGFuY2VSZXBvcnQpXHJcbiAgICAgICAgLm1hcChhY2MgPT4gKHtcclxuICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgIG9wZW5pbmdCYWxhbmNlOiBOdW1iZXIoYWNjLm9wZW5pbmdCYWxhbmNlKS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgZGViaXQ6IE51bWJlcihhY2MuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBjcmVkaXQ6IE51bWJlcihhY2MuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICAgICAgbmV0TW92ZW1lbnQ6IE51bWJlcihhY2MubmV0TW92ZW1lbnQpLnRvRml4ZWQoMyksXHJcbiAgICAgICAgICBjbG9zaW5nQmFsYW5jZTogTnVtYmVyKGFjYy5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKVxyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUV4cG9ydChvcHRpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbiA9IG9wdGlvbjtcclxuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZEV4cG9ydE9wdGlvbikge1xyXG4gICAgICBjYXNlICdleGNlbCc6XHJcbiAgICAgICAgdGhpcy5leHBvcnRUb0V4Y2VsKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3BkZic6XHJcbiAgICAgICAgdGhpcy5leHBvcnRUb1BkZigpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjc3YnOlxyXG4gICAgICAgIHRoaXMuZXhwb3J0VG9Dc3YoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBhbGVydCgnUGxlYXNlIHNlbGVjdCBhbiBleHBvcnQgZm9ybWF0LicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9QZGYoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJpYWxCYWxhbmNlUmVwb3J0Py5tYWluQ09BR3JvdXBzPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0aXRsZSA9ICdYcHJlc3MgTW9uZXkgLSBNSSBBY2NvdW50cyc7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9ICdUcmlhbC1CYWxhbmNlLUFjY291bnRzLVJhdy5wZGYnO1xyXG5cclxuICAgIC8vIC0tLSBwYWdlICYgbGF5b3V0IC0tLVxyXG4gICAgY29uc3QgZG9jID0gbmV3IGpzUERGKHsgb3JpZW50YXRpb246ICdsYW5kc2NhcGUnLCB1bml0OiAnbW0nLCBmb3JtYXQ6IFszMTIsIDIxMF0gfSk7XHJcbiAgICBjb25zdCBwYWdlV2lkdGggPSBkb2MuaW50ZXJuYWwucGFnZVNpemUuZ2V0V2lkdGgoKTtcclxuICAgIGNvbnN0IG1hcmdpbkxlZnQgPSAxNTtcclxuICAgIGNvbnN0IGxvZ29XaWR0aCA9IDM4LjQsIGxvZ29IZWlnaHQgPSAxNy41LCBsb2dvWCA9IG1hcmdpbkxlZnQsIGxvZ29ZID0gODtcclxuICAgIGNvbnN0IHRpdGxlWSA9IDE4O1xyXG4gICAgbGV0IGN1cnJlbnRZID0gdGl0bGVZICsgMTQ7XHJcblxyXG4gICAgY29uc3QgbGFiZWxWYWx1ZUdhcCA9IDI7XHJcbiAgICBjb25zdCBwYWlyR2FwID0gMTU7XHJcblxyXG4gICAgLy8gLS0tIG1ldGFkYXRhIC0tLVxyXG4gICAgY29uc3QgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtcclxuICAgICAgWydSZXBvcnQgUGVyaW9kOicsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOiAnLCBgJHt0aGlzLnJlcG9ydFVzZXJ9QCR7dGhpcy5yZXBvcnRUaW1lfWBdLFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhIC0tLVxyXG4gICAgY29uc3Qgc2VhcmNoQ3JpdGVyaWEgPSB0aGlzLnNlYXJjaENyaXRlcmlhO1xyXG5cclxuICAgIC8vIC0tLSBkcmF3IGxvZ28gKyB0aXRsZSAtLS1cclxuICAgIGlmICh0aGlzLmV4cG9ydFNlcnZpY2U/LmxvZ29CYXNlNjQpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBkb2MuYWRkSW1hZ2UodGhpcy5leHBvcnRTZXJ2aWNlLmxvZ29CYXNlNjQsICdQTkcnLCBsb2dvWCwgbG9nb1ksIGxvZ29XaWR0aCwgbG9nb0hlaWdodCk7XHJcbiAgICAgIH0gY2F0Y2ggeyB9XHJcbiAgICB9XHJcbiAgICBkb2Muc2V0Rm9udFNpemUoMTUpO1xyXG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XHJcbiAgICBkb2MudGV4dCh0aXRsZSwgcGFnZVdpZHRoIC8gMiwgdGl0bGVZLCB7IGFsaWduOiAnY2VudGVyJyB9KTtcclxuXHJcbiAgICAvLyAtLS0gZHJhdyBtZXRhZGF0YSAtLS1cclxuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XHJcbiAgICBtZXRhZGF0YS5mb3JFYWNoKChbbGFiZWwsIHZhbHVlXSwgaSkgPT4ge1xyXG4gICAgICBjb25zdCB5ID0gY3VycmVudFkgKyBpICogNjtcclxuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XHJcbiAgICAgIGRvYy50ZXh0KGxhYmVsLCBtYXJnaW5MZWZ0LCB5KTtcclxuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcclxuICAgICAgY29uc3QgbGFiZWxXaWR0aCA9IGRvYy5nZXRUZXh0V2lkdGgobGFiZWwgKyAnICcpO1xyXG4gICAgICBkb2MudGV4dCh2YWx1ZSwgbWFyZ2luTGVmdCArIGxhYmVsV2lkdGggKyBsYWJlbFZhbHVlR2FwLCB5KTtcclxuICAgIH0pO1xyXG4gICAgY3VycmVudFkgKz0gbWV0YWRhdGEubGVuZ3RoICogNiArIDY7XHJcblxyXG4gICAgLy8gLS0tIGRyYXcgc2VhcmNoIGNyaXRlcmlhIGhlYWRpbmcgLS0tXHJcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcclxuICAgIGRvYy50ZXh0KCdTZWFyY2ggQ3JpdGVyaWE6LScsIG1hcmdpbkxlZnQsIGN1cnJlbnRZKTtcclxuICAgIGN1cnJlbnRZICs9IDg7XHJcblxyXG4gICAgLy8gLS0tIGRyYXcgc2VhcmNoIGNyaXRlcmlhIHBhaXJzIC0tLVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWFyY2hDcml0ZXJpYS5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgICBjb25zdCBsZWZ0ID0gc2VhcmNoQ3JpdGVyaWFbaV07XHJcbiAgICAgIGNvbnN0IHJpZ2h0ID0gc2VhcmNoQ3JpdGVyaWFbaSArIDFdOyAvLyBtYXkgYmUgdW5kZWZpbmVkXHJcblxyXG4gICAgICAvLyAtLS0gTGVmdCBzaWRlIC0tLVxyXG4gICAgICBpZiAobGVmdCkge1xyXG4gICAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xyXG4gICAgICAgIGRvYy50ZXh0KGxlZnRbMF0sIG1hcmdpbkxlZnQsIGN1cnJlbnRZKTtcclxuICAgICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ25vcm1hbCcpO1xyXG4gICAgICAgIGNvbnN0IGxlZnRMYWJlbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChsZWZ0WzBdICsgJyAnKTtcclxuICAgICAgICBkb2MudGV4dChsZWZ0WzFdID8/ICcnLCBtYXJnaW5MZWZ0ICsgbGVmdExhYmVsV2lkdGggKyBsYWJlbFZhbHVlR2FwLCBjdXJyZW50WSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIC0tLSBSaWdodCBzaWRlIChpZiBhdmFpbGFibGUpIC0tLVxyXG4gICAgICBpZiAocmlnaHQpIHtcclxuICAgICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcclxuICAgICAgICBkb2MudGV4dChyaWdodFswXSwgcGFnZVdpZHRoIC8gMiwgY3VycmVudFkpO1xyXG4gICAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XHJcbiAgICAgICAgY29uc3QgcmlnaHRMYWJlbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChyaWdodFswXSArICcgJyk7XHJcbiAgICAgICAgZG9jLnRleHQocmlnaHRbMV0gPz8gJycsIHBhZ2VXaWR0aCAvIDIgKyByaWdodExhYmVsV2lkdGggKyBsYWJlbFZhbHVlR2FwLCBjdXJyZW50WSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGN1cnJlbnRZICs9IDY7IC8vIG1vdmUgZG93biBmb3IgbmV4dCBsaW5lXHJcbiAgICB9XHJcblxyXG4gICAgY3VycmVudFkgKz0gNDtcclxuXHJcbiAgICAvLyAtLS0gaGVhZGVycyAtLS1cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBbXHJcbiAgICAgICdTciBObycsXHJcbiAgICAgICdDT0EgQ29kZScsICdBY2NvdW50IENvZGUnLCAnQWNjb3VudCBEZXNjcmlwdGlvbicsXHJcbiAgICAgICdPcGVuaW5nIEJhbGFuY2UgTG9jYWwgQW10JywgJ0RlYml0cyBMb2NhbCBBbXQnLCAnQ3JlZGl0cyBMb2NhbCBBbXQnLFxyXG4gICAgICAnTmV0IE1vdmVtZW50IExvY2FsIEFtdCcsICdDbG9zaW5nIEJhbGFuY2UgTG9jYWwgQW10J1xyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdCBmbGF0UmVwb3J0ID0gdGhpcy5mbGF0dGVuUmVwb3J0KHRoaXMudHJpYWxCYWxhbmNlUmVwb3J0KTtcclxuXHJcbiAgICAvLyAtLS0gcm93cyAtLS1cclxuICAgIGNvbnN0IHJvd3M6IGFueVtdW10gPSBmbGF0UmVwb3J0Lm1hcCgoYWNjLCBpKSA9PiBbXHJcbiAgICAgIGkgKyAxLFxyXG4gICAgICBhY2MuY29hQ29kZSxcclxuICAgICAgYWNjLmFjY291bnRDb2RlLFxyXG4gICAgICBhY2MuYWNjb3VudERlc2NyaXB0aW9uLFxyXG4gICAgICBhY2Mub3BlbmluZ0JhbGFuY2UgIT0gbnVsbCA/IE51bWJlcihhY2Mub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMykgOiBcIlwiLFxyXG4gICAgICBhY2MuZGViaXQgIT0gbnVsbCA/IE51bWJlcihhY2MuZGViaXQpLnRvRml4ZWQoMykgOiBcIlwiLFxyXG4gICAgICBhY2MuY3JlZGl0ICE9IG51bGwgPyBOdW1iZXIoYWNjLmNyZWRpdCkudG9GaXhlZCgzKSA6IFwiXCIsXHJcbiAgICAgIGFjYy5uZXRNb3ZlbWVudCAhPSBudWxsID8gTnVtYmVyKGFjYy5uZXRNb3ZlbWVudCkudG9GaXhlZCgzKSA6IFwiXCIsXHJcbiAgICAgIGFjYy5jbG9zaW5nQmFsYW5jZSAhPSBudWxsID8gTnVtYmVyKGFjYy5jbG9zaW5nQmFsYW5jZSkudG9GaXhlZCgzKSA6IFwiXCJcclxuICAgIF0pO1xyXG5cclxuICAgIC8vIC0tLSBjb2x1bW4gd2lkdGhzIC0tLVxyXG4gICAgY29uc3QgY29sdW1uU3R5bGVzOiB7IFtrZXk6IG51bWJlcl06IGFueSB9ID0ge1xyXG4gICAgICAwOiB7IGNlbGxXaWR0aDogMTUgfSxcclxuICAgICAgMTogeyBjZWxsV2lkdGg6IDI1IH0sXHJcbiAgICAgIDI6IHsgY2VsbFdpZHRoOiAyNSB9LFxyXG4gICAgICAzOiB7IGNlbGxXaWR0aDogNzAgfSxcclxuICAgICAgNDogeyBjZWxsV2lkdGg6IDMwIH0sXHJcbiAgICAgIDU6IHsgY2VsbFdpZHRoOiAzMCB9LFxyXG4gICAgICA2OiB7IGNlbGxXaWR0aDogMzAgfSxcclxuICAgICAgNzogeyBjZWxsV2lkdGg6IDMwIH0sXHJcbiAgICAgIDg6IHsgY2VsbFdpZHRoOiAzMCB9LFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyAtLS0gZHJhdyB0YWJsZSAtLS1cclxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xyXG4gICAgICBoZWFkOiBbaGVhZGVyc10sXHJcbiAgICAgIGJvZHk6IHJvd3MsXHJcbiAgICAgIHN0YXJ0WTogY3VycmVudFksXHJcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXHJcbiAgICAgIGhlYWRTdHlsZXM6IHtcclxuICAgICAgICBmaWxsQ29sb3I6IFsyMjAsIDIyMCwgMjIwXSxcclxuICAgICAgICB0ZXh0Q29sb3I6IDAsXHJcbiAgICAgICAgZm9udFN0eWxlOiAnYm9sZCcsXHJcbiAgICAgICAgZm9udFNpemU6IDksXHJcbiAgICAgICAgaGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgICBjZWxsV2lkdGg6ICd3cmFwJyxcclxuICAgICAgICBtaW5DZWxsSGVpZ2h0OiAxMFxyXG4gICAgICB9LFxyXG4gICAgICBib2R5U3R5bGVzOiB7XHJcbiAgICAgICAgZm9udFNpemU6IDgsXHJcbiAgICAgICAgZmlsbENvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXHJcbiAgICAgICAgdGV4dENvbG9yOiBbMCwgMCwgMF1cclxuICAgICAgfSxcclxuICAgICAgc3R5bGVzOiB7IGNlbGxQYWRkaW5nOiAyLCBvdmVyZmxvdzogJ2xpbmVicmVhaycsIG1pbkNlbGxIZWlnaHQ6IDYgfSxcclxuICAgICAgY29sdW1uU3R5bGVzLFxyXG4gICAgICBkaWRQYXJzZUNlbGw6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCByb3dJbmRleCA9IGRhdGEucm93LmluZGV4O1xyXG4gICAgICAgIGNvbnN0IHJvd0RhdGEgPSBmbGF0UmVwb3J0W3Jvd0luZGV4XTtcclxuICAgICAgICBjb25zdCBpc1RvdGFsUm93ID0gcm93RGF0YS5pc1RvdGFsUm93O1xyXG5cclxuICAgICAgICBpZiAoaXNUb3RhbFJvdykgZGF0YS5jZWxsLnN0eWxlcy5mb250U3R5bGUgPSAnYm9sZCc7XHJcblxyXG4gICAgICAgIC8vIGhpZ2hsaWdodCBuZWdhdGl2ZXMgaW4gcmVkXHJcbiAgICAgICAgaWYgKGRhdGEuY29sdW1uLmluZGV4ID4gMykge1xyXG4gICAgICAgICAgY29uc3Qga2V5TWFwID0gW1wib3BlbmluZ0JhbGFuY2VcIiwgXCJkZWJpdFwiLCBcImNyZWRpdFwiLCBcIm5ldE1vdmVtZW50XCIsIFwiY2xvc2luZ0JhbGFuY2VcIl07XHJcbiAgICAgICAgICBjb25zdCBrZXkgPSBrZXlNYXBbZGF0YS5jb2x1bW4uaW5kZXggLSA0XTtcclxuICAgICAgICAgIGNvbnN0IHJhdyA9IHJvd0RhdGFba2V5XTtcclxuICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcihyYXcpO1xyXG4gICAgICAgICAgaWYgKCFpc05hTihudW0pICYmIG51bSA8IDApIHtcclxuICAgICAgICAgICAgZGF0YS5jZWxsLnN0eWxlcy50ZXh0Q29sb3IgPSBbMjU1LCAwLCAwXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIC0tLSBwYWdlIG51bWJlcnMgLS0tXHJcbiAgICBjb25zdCB0b3RhbFBhZ2VzID0gKGRvYyBhcyBhbnkpLmludGVybmFsLmdldE51bWJlck9mUGFnZXMoKTtcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvdGFsUGFnZXM7IGkrKykge1xyXG4gICAgICBkb2Muc2V0UGFnZShpKTtcclxuICAgICAgZG9jLnNldEZvbnRTaXplKDkpO1xyXG4gICAgICBjb25zdCBmb290ZXJZID0gZG9jLmludGVybmFsLnBhZ2VTaXplLmhlaWdodCAtIDY7XHJcbiAgICAgIGRvYy50ZXh0KGBQYWdlICR7aX0gb2YgJHt0b3RhbFBhZ2VzfWAsIHBhZ2VXaWR0aCAtIDE1LCBmb290ZXJZLCB7IGFsaWduOiAncmlnaHQnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC0tLSBzYXZlIFBERiAtLS1cclxuICAgIGRvYy5zYXZlKGZpbGVOYW1lKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJpYWxCYWxhbmNlUmVwb3J0Py5tYWluQ09BR3JvdXBzPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBmaWxlTmFtZSA9ICdUcmlhbC1CYWxhbmNlLUFjY291bnRzLVJhdy54bHN4JztcclxuICAgIGNvbnN0IHdvcmtib29rID0gbmV3IEV4Y2VsSlMuV29ya2Jvb2soKTtcclxuICAgIGNvbnN0IHNoZWV0ID0gd29ya2Jvb2suYWRkV29ya3NoZWV0KCdUcmlhbCBCYWxhbmNlJyk7XHJcblxyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSAxO1xyXG5cclxuICAgIC8vIC0tLSBhZGQgbG9nbyBpZiBhdmFpbGFibGUgLS0tXHJcbiAgICBpZiAodGhpcy5leHBvcnRTZXJ2aWNlPy5sb2dvQmFzZTY0KSB7XHJcbiAgICAgIGNvbnN0IGJhc2U2NERhdGEgPSB0aGlzLmV4cG9ydFNlcnZpY2UubG9nb0Jhc2U2NC5yZXBsYWNlKC9eZGF0YTppbWFnZVxcL1xcdys7YmFzZTY0LC8sICcnKTtcclxuICAgICAgY29uc3QgaW1hZ2VJZCA9IHdvcmtib29rLmFkZEltYWdlKHsgYmFzZTY0OiBiYXNlNjREYXRhLCBleHRlbnNpb246ICdwbmcnIH0pO1xyXG4gICAgICBzaGVldC5hZGRJbWFnZShpbWFnZUlkLCB7IHRsOiB7IGNvbDogMCwgcm93OiAwIH0sIGV4dDogeyB3aWR0aDogMTIwLCBoZWlnaHQ6IDYwIH0sIGVkaXRBczogJ29uZUNlbGwnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC0tLSB0aXRsZSAtLS1cclxuICAgIGNvbnN0IHRpdGxlID0gJ1hwcmVzcyBNb25leSAtIE1JIEFjY291bnRzJztcclxuICAgIHNoZWV0Lm1lcmdlQ2VsbHMoMSwgMywgMSwgOSk7XHJcbiAgICBjb25zdCB0aXRsZUNlbGwgPSBzaGVldC5nZXRDZWxsKCdDMScpO1xyXG4gICAgdGl0bGVDZWxsLnZhbHVlID0gdGl0bGU7XHJcbiAgICB0aXRsZUNlbGwuZm9udCA9IHsgc2l6ZTogMTUsIGJvbGQ6IHRydWUgfTtcclxuICAgIHRpdGxlQ2VsbC5hbGlnbm1lbnQgPSB7IGhvcml6b250YWw6ICdjZW50ZXInLCB2ZXJ0aWNhbDogJ21pZGRsZScgfTtcclxuICAgIGN1cnJlbnRSb3cgPSA0O1xyXG5cclxuICAgIC8vIC0tLSBtZXRhZGF0YSAtLS1cclxuICAgIGNvbnN0IG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXHJcbiAgICAgIFsnUmVwb3J0IFBlcmlvZDonLCB0aGlzLnJlcG9ydFBlcmlvZF0sXHJcbiAgICAgIFsnUmVwb3J0IFVzZXIgJiBUaW1lIDogJywgYCR7dGhpcy5yZXBvcnRVc2VyfUAke3RoaXMucmVwb3J0VGltZX1gXSxcclxuICAgIF07XHJcbiAgICBtZXRhZGF0YS5mb3JFYWNoKChbbGFiZWwsIHZhbHVlXSkgPT4ge1xyXG4gICAgICBzaGVldC5tZXJnZUNlbGxzKGN1cnJlbnRSb3csIDEsIGN1cnJlbnRSb3csIDYpO1xyXG4gICAgICBjb25zdCByb3cgPSBzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcclxuICAgICAgcm93LmdldENlbGwoMSkudmFsdWUgPSB7IHJpY2hUZXh0OiBbeyB0ZXh0OiBsYWJlbCArICcgJywgZm9udDogeyBib2xkOiB0cnVlIH0gfSwgeyB0ZXh0OiB2YWx1ZSB9XSB9O1xyXG4gICAgICByb3cuZ2V0Q2VsbCgxKS5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAnbWlkZGxlJywgd3JhcFRleHQ6IHRydWUgfTtcclxuICAgIH0pO1xyXG4gICAgY3VycmVudFJvdysrO1xyXG5cclxuICAgIC8vIC0tLSBzZWFyY2ggY3JpdGVyaWEgaGVhZGluZyAtLS1cclxuICAgIHNoZWV0Lm1lcmdlQ2VsbHMoY3VycmVudFJvdywgMSwgY3VycmVudFJvdywgNik7XHJcbiAgICBzaGVldC5nZXRDZWxsKGN1cnJlbnRSb3csIDEpLnZhbHVlID0gJ1NlYXJjaCBDcml0ZXJpYTotJztcclxuICAgIHNoZWV0LmdldENlbGwoY3VycmVudFJvdywgMSkuZm9udCA9IHsgYm9sZDogdHJ1ZSB9O1xyXG4gICAgY3VycmVudFJvdyArPSAyO1xyXG5cclxuICAgIC8vIC0tLSBzZWFyY2ggY3JpdGVyaWEgLS0tXHJcbiAgICBjb25zdCBzZWFyY2hDcml0ZXJpYSA9IHRoaXMuc2VhcmNoQ3JpdGVyaWE7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWFyY2hDcml0ZXJpYS5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgICBjb25zdCBsZWZ0ID0gc2VhcmNoQ3JpdGVyaWFbaV07XHJcbiAgICAgIGNvbnN0IHJpZ2h0ID0gc2VhcmNoQ3JpdGVyaWFbaSArIDFdOyAvLyBtYXkgYmUgdW5kZWZpbmVkXHJcbiAgICAgIGNvbnN0IHJvdyA9IHNoZWV0LmdldFJvdyhjdXJyZW50Um93KyspO1xyXG5cclxuICAgICAgLy8gTGVmdCBjZWxsXHJcbiAgICAgIHNoZWV0Lm1lcmdlQ2VsbHMocm93Lm51bWJlciwgMSwgcm93Lm51bWJlciwgMyk7XHJcbiAgICAgIHJvdy5nZXRDZWxsKDEpLnZhbHVlID0ge1xyXG4gICAgICAgIHJpY2hUZXh0OiBbXHJcbiAgICAgICAgICB7IHRleHQ6IChsZWZ0Py5bMF0gPz8gJycpICsgJyAnLCBmb250OiB7IGJvbGQ6IHRydWUgfSB9LFxyXG4gICAgICAgICAgeyB0ZXh0OiBsZWZ0Py5bMV0gPz8gJycgfVxyXG4gICAgICAgIF1cclxuICAgICAgfTtcclxuICAgICAgcm93LmdldENlbGwoMSkuYWxpZ25tZW50ID0geyB3cmFwVGV4dDogdHJ1ZSwgdmVydGljYWw6ICdtaWRkbGUnIH07XHJcblxyXG4gICAgICAvLyBSaWdodCBjZWxsIChvbmx5IGlmIHByZXNlbnQpXHJcbiAgICAgIGlmIChyaWdodCkge1xyXG4gICAgICAgIHNoZWV0Lm1lcmdlQ2VsbHMocm93Lm51bWJlciwgNCwgcm93Lm51bWJlciwgNik7XHJcbiAgICAgICAgcm93LmdldENlbGwoNCkudmFsdWUgPSB7XHJcbiAgICAgICAgICByaWNoVGV4dDogW1xyXG4gICAgICAgICAgICB7IHRleHQ6IChyaWdodD8uWzBdID8/ICcnKSArICcgJywgZm9udDogeyBib2xkOiB0cnVlIH0gfSxcclxuICAgICAgICAgICAgeyB0ZXh0OiByaWdodD8uWzFdID8/ICcnIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJvdy5nZXRDZWxsKDQpLmFsaWdubWVudCA9IHsgd3JhcFRleHQ6IHRydWUsIHZlcnRpY2FsOiAnbWlkZGxlJyB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjdXJyZW50Um93Kys7XHJcblxyXG4gICAgLy8gLS0tIGhlYWRlcnMgLS0tXHJcbiAgICBjb25zdCBoZWFkZXJzID0gW1xyXG4gICAgICAnU3IgTm8nLFxyXG4gICAgICAnQ09BIENvZGUnLCAnQWNjb3VudCBDb2RlJywgJ0FjY291bnQgRGVzY3JpcHRpb24nLFxyXG4gICAgICAnT3BlbmluZyBCYWxhbmNlIExvY2FsIEFtdCcsICdEZWJpdHMgTG9jYWwgQW10JywgJ0NyZWRpdHMgTG9jYWwgQW10JyxcclxuICAgICAgJ05ldCBNb3ZlbWVudCBMb2NhbCBBbXQnLCAnQ2xvc2luZyBCYWxhbmNlIExvY2FsIEFtdCdcclxuICAgIF07XHJcbiAgICBjb25zdCBoZWFkZXJSb3cgPSBzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcclxuICAgIGhlYWRlcnMuZm9yRWFjaCgoaCwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBjZWxsID0gaGVhZGVyUm93LmdldENlbGwoaSArIDEpO1xyXG4gICAgICBjZWxsLnZhbHVlID0gaDtcclxuICAgICAgY2VsbC5mb250ID0geyBib2xkOiB0cnVlIH07XHJcbiAgICAgIGNlbGwuYWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnY2VudGVyJywgdmVydGljYWw6ICdtaWRkbGUnLCB3cmFwVGV4dDogdHJ1ZSB9O1xyXG4gICAgICBjZWxsLmZpbGwgPSB7IHR5cGU6ICdwYXR0ZXJuJywgcGF0dGVybjogJ3NvbGlkJywgZmdDb2xvcjogeyBhcmdiOiAnRENEQ0RDJyB9IH07XHJcbiAgICAgIGNlbGwuYm9yZGVyID0geyB0b3A6IHsgc3R5bGU6ICd0aGluJyB9LCBsZWZ0OiB7IHN0eWxlOiAndGhpbicgfSwgYm90dG9tOiB7IHN0eWxlOiAndGhpbicgfSwgcmlnaHQ6IHsgc3R5bGU6ICd0aGluJyB9IH07XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAtLS0gcm93cyB3aXRoIDMgZGVjaW1hbHMgZm9yIG51bWVyaWMgY29sdW1ucyAtLS1cclxuICAgIGNvbnN0IHJvd3MgPSB0aGlzLmZsYXR0ZW5SZXBvcnQodGhpcy50cmlhbEJhbGFuY2VSZXBvcnQpLm1hcCgoYWNjLCBpZHgpID0+IHtcclxuICAgICAgY29uc3QgbnVtZXJpY0NvbHVtbnMgPSBbJ29wZW5pbmdCYWxhbmNlJywgJ2RlYml0JywgJ2NyZWRpdCcsICduZXRNb3ZlbWVudCcsICdjbG9zaW5nQmFsYW5jZSddO1xyXG4gICAgICBjb25zdCByb3dEYXRhID0gbnVtZXJpY0NvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKGFjY1tjb2xdKTtcclxuICAgICAgICByZXR1cm4gIWlzTmFOKHZhbCkgPyB2YWwudG9GaXhlZCgzKSA6ICcnO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICBpZHggKyAxLFxyXG4gICAgICAgIGFjYy5jb2FDb2RlLFxyXG4gICAgICAgIGFjYy5hY2NvdW50Q29kZSxcclxuICAgICAgICBhY2MuYWNjb3VudERlc2NyaXB0aW9uLFxyXG4gICAgICAgIC4uLnJvd0RhdGEsXHJcbiAgICAgICAgYWNjLmlzVG90YWxSb3cgfHwgZmFsc2VcclxuICAgICAgXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgY29uc3Qgcm93ID0gc2hlZXQuZ2V0Um93KGN1cnJlbnRSb3crKyk7XHJcbiAgICAgIHIuc2xpY2UoMCwgOSkuZm9yRWFjaCgodmFsLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VsbCA9IHJvdy5nZXRDZWxsKGkgKyAxKTtcclxuICAgICAgICAvLyBjb252ZXJ0IGJhY2sgdG8gbnVtYmVyIGZvciBFeGNlbCBtYXRoIGJ1dCBzaG93IDMgZGVjaW1hbHNcclxuICAgICAgICBpZiAoaSA+IDMgJiYgdmFsICE9PSAnJykgY2VsbC52YWx1ZSA9IHBhcnNlRmxvYXQodmFsLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGVsc2UgY2VsbC52YWx1ZSA9IHZhbDtcclxuXHJcbiAgICAgICAgY2VsbC5ib3JkZXIgPSB7IHRvcDogeyBzdHlsZTogJ3RoaW4nIH0sIGxlZnQ6IHsgc3R5bGU6ICd0aGluJyB9LCBib3R0b206IHsgc3R5bGU6ICd0aGluJyB9LCByaWdodDogeyBzdHlsZTogJ3RoaW4nIH0gfTtcclxuXHJcbiAgICAgICAgLy8gYm9sZCB0b3RhbCByb3dzXHJcbiAgICAgICAgaWYgKHJbOV0pIGNlbGwuZm9udCA9IHsgYm9sZDogdHJ1ZSB9O1xyXG5cclxuICAgICAgICAvLyBuZWdhdGl2ZSBudW1iZXJzIHJlZFxyXG4gICAgICAgIGlmIChpID4gMyAmJiB0eXBlb2YgY2VsbC52YWx1ZSA9PT0gJ251bWJlcicgJiYgY2VsbC52YWx1ZSA8IDApIHtcclxuICAgICAgICAgIGNlbGwuZm9udCA9IHsgY29sb3I6IHsgYXJnYjogJ0ZGMDAwMCcgfSwgYm9sZDogcls5XSA/IHRydWUgOiB1bmRlZmluZWQgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNldCBudW1iZXIgZm9ybWF0IHRvIHNob3cgMyBkZWNpbWFsc1xyXG4gICAgICAgIGlmIChpID4gMykgY2VsbC5udW1GbXQgPSAnMC4wMDAnO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIC0tLSBjb2x1bW4gd2lkdGhzIC0tLVxyXG4gICAgY29uc3Qgd2lkdGhzID0gWzgsIDE1LCAxNSwgNDAsIDIwLCAyMCwgMjAsIDIwLCAyMF07XHJcbiAgICB3aWR0aHMuZm9yRWFjaCgodywgaSkgPT4gc2hlZXQuZ2V0Q29sdW1uKGkgKyAxKS53aWR0aCA9IHcpO1xyXG5cclxuICAgIC8vIC0tLSBzYXZlIGZpbGUgLS0tXHJcbiAgICB3b3JrYm9vay54bHN4LndyaXRlQnVmZmVyKCkudGhlbihidWZmZXIgPT4ge1xyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyB9KTtcclxuICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBmaWxlTmFtZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvQ3N2KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRyaWFsQmFsYW5jZVJlcG9ydD8ubWFpbkNPQUdyb3Vwcz8ubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZmlsZU5hbWUgPSAnVHJpYWwtQmFsYW5jZS1BY2NvdW50cy1SYXcuY3N2JztcclxuXHJcbiAgICAvLyAtLS0gbWV0YWRhdGEgLS0tXHJcbiAgICBjb25zdCBtZXRhZGF0YTogW3N0cmluZywgc3RyaW5nXVtdID0gW1xyXG4gICAgICBbJ1JlcG9ydCBUaXRsZTonLCAnWHByZXNzIE1vbmV5IC0gTUkgQWNjb3VudHMnXSxcclxuICAgICAgWydSZXBvcnQgUGVyaW9kOicsIHRoaXMucmVwb3J0UGVyaW9kXSxcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOiAnLCBgJHt0aGlzLnJlcG9ydFVzZXJ9QCR7dGhpcy5yZXBvcnRUaW1lfWBdLFxyXG4gICAgXTtcclxuXHJcbiAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhIC0tLVxyXG4gICAgY29uc3Qgc2VhcmNoQ3JpdGVyaWEgPSB0aGlzLnNlYXJjaENyaXRlcmlhO1xyXG5cclxuICAgIC8vIC0tLSB0YWJsZSBoZWFkZXJzIChhZGQgU3IgTm8gYXQgc3RhcnQpIC0tLVxyXG4gICAgY29uc3QgaGVhZGVycyA9IFtcclxuICAgICAgJ1NyIE5vJyxcclxuICAgICAgJ0NPQSBDb2RlJywgJ0FjY291bnQgQ29kZScsICdBY2NvdW50IERlc2NyaXB0aW9uJyxcclxuICAgICAgJ09wZW5pbmcgQmFsYW5jZSBMb2NhbCBBbXQnLCAnRGViaXRzIExvY2FsIEFtdCcsICdDcmVkaXRzIExvY2FsIEFtdCcsXHJcbiAgICAgICdOZXQgTW92ZW1lbnQgTG9jYWwgQW10JywgJ0Nsb3NpbmcgQmFsYW5jZSBMb2NhbCBBbXQnXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIC0tLSB0YWJsZSByb3dzIChwcmVwZW5kIFNyIE5vKSAtLS1cclxuICAgIGNvbnN0IHJvd3M6IGFueVtdW10gPSB0aGlzLmZsYXR0ZW5SZXBvcnQodGhpcy50cmlhbEJhbGFuY2VSZXBvcnQpLm1hcCgoYWNjLCBpbmRleCkgPT4gW1xyXG4gICAgICBpbmRleCArIDEsIC8vIFNyIE5vXHJcbiAgICAgIGFjYy5jb2FDb2RlLFxyXG4gICAgICBhY2MuYWNjb3VudENvZGUsXHJcbiAgICAgIGFjYy5hY2NvdW50RGVzY3JpcHRpb24sXHJcbiAgICAgIE51bWJlcihhY2Mub3BlbmluZ0JhbGFuY2UpLnRvRml4ZWQoMyksXHJcbiAgICAgIE51bWJlcihhY2MuZGViaXQpLnRvRml4ZWQoMyksXHJcbiAgICAgIE51bWJlcihhY2MuY3JlZGl0KS50b0ZpeGVkKDMpLFxyXG4gICAgICBOdW1iZXIoYWNjLm5ldE1vdmVtZW50KS50b0ZpeGVkKDMpLFxyXG4gICAgICBOdW1iZXIoYWNjLmNsb3NpbmdCYWxhbmNlKS50b0ZpeGVkKDMpXHJcbiAgICBdKTtcclxuXHJcbiAgICAvLyAtLS0gaGVscGVyIHRvIGVzY2FwZSBDU1YgdmFsdWVzIC0tLVxyXG4gICAgY29uc3QgZXNjYXBlQ3N2ID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiAnJztcclxuICAgICAgY29uc3Qgc3RyID0gdmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgcmV0dXJuIHN0ci5pbmNsdWRlcygnLCcpIHx8IHN0ci5pbmNsdWRlcygnXCInKSB8fCBzdHIuaW5jbHVkZXMoJ1xcbicpXHJcbiAgICAgICAgPyBgXCIke3N0ci5yZXBsYWNlKC9cIi9nLCAnXCJcIicpfVwiYFxyXG4gICAgICAgIDogc3RyO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyAtLS0gYnVpbGQgQ1NWIGNvbnRlbnQgLS0tXHJcbiAgICBsZXQgY3N2Q29udGVudCA9ICcnO1xyXG5cclxuICAgIC8vIG1ldGFkYXRhXHJcbiAgICBtZXRhZGF0YS5mb3JFYWNoKChbbGFiZWwsIHZhbHVlXSkgPT4ge1xyXG4gICAgICBjc3ZDb250ZW50ICs9IGAke2VzY2FwZUNzdihsYWJlbCl9JHtlc2NhcGVDc3YodmFsdWUpfSxcXG5gO1xyXG4gICAgfSk7XHJcbiAgICBjc3ZDb250ZW50ICs9ICdcXG4nOyAvLyBnYXBcclxuXHJcbiAgICAvLyAtLS0gc2VhcmNoIGNyaXRlcmlhIGhlYWRpbmcgLS0tXHJcbiAgICBjc3ZDb250ZW50ICs9ICdTZWFyY2ggQ3JpdGVyaWE6LVxcbic7XHJcblxyXG4gICAgLy8gLS0tIHNlYXJjaCBjcml0ZXJpYSAoMiBwZXIgcm93LCBkeW5hbWljKSAtLS1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VhcmNoQ3JpdGVyaWEubGVuZ3RoOyBpICs9IDIpIHtcclxuICAgICAgY29uc3QgbGVmdCA9IHNlYXJjaENyaXRlcmlhW2ldO1xyXG4gICAgICBjb25zdCByaWdodCA9IHNlYXJjaENyaXRlcmlhW2kgKyAxXTtcclxuXHJcbiAgICAgIC8vIExlZnQgc2lkZVxyXG4gICAgICBpZiAobGVmdCkgY3N2Q29udGVudCArPSBgJHtlc2NhcGVDc3YobGVmdFswXSl9ICR7ZXNjYXBlQ3N2KGxlZnRbMV0pfSxgO1xyXG5cclxuICAgICAgLy8gUmlnaHQgc2lkZVxyXG4gICAgICBpZiAocmlnaHQpIGNzdkNvbnRlbnQgKz0gYCAke2VzY2FwZUNzdihyaWdodFswXSl9ICR7ZXNjYXBlQ3N2KHJpZ2h0WzFdKX0sYDtcclxuXHJcbiAgICAgIGNzdkNvbnRlbnQgKz0gJ1xcbic7XHJcbiAgICB9XHJcbiAgICBjc3ZDb250ZW50ICs9ICdcXG4nOyAvLyBibGFuayBsaW5lIGFmdGVyIGNyaXRlcmlhXHJcblxyXG4gICAgLy8gdGFibGUgaGVhZGVyc1xyXG4gICAgY3N2Q29udGVudCArPSBoZWFkZXJzLm1hcChoID0+IGVzY2FwZUNzdihoKSkuam9pbignLCcpICsgJ1xcbic7XHJcblxyXG4gICAgLy8gdGFibGUgcm93c1xyXG4gICAgcm93cy5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgIGNzdkNvbnRlbnQgKz0gcm93Lm1hcChjZWxsID0+IGVzY2FwZUNzdihjZWxsKSkuam9pbignLCcpICsgJ1xcbic7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAtLS0gdHJpZ2dlciBkb3dubG9hZCAtLS1cclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY3N2Q29udGVudF0sIHsgdHlwZTogJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTg7JyB9KTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xyXG4gICAgbGluay5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgbGluay5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICB9XHJcblxyXG4gIGdldFJlcG9ydChwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IG1vZGFsID0gcGF5bG9hZD8ubW9kYWwgfHwgcGF5bG9hZDtcclxuXHJcbiAgICB0aGlzLmZyb21EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXknLCAnZW4tVVMnKTtcclxuICAgIHRoaXMudG9EYXRlID0gZm9ybWF0RGF0ZShtb2RhbC50b0RhdGUsICdkZC9NTS95eXl5JywgJ2VuLVVTJyk7XHJcblxyXG4gICAgY29uc3QgcmVxOiBUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydFJlcXVlc3REVE8gPSB7XHJcbiAgICAgIHllYXI6IE51bWJlcihtb2RhbC5maW5hbmNpYWxZZWFyKSxcclxuICAgICAgZGF0ZVR5cGU6IG1vZGFsLmRhdGVUeXBlLFxyXG4gICAgICBmcm9tRGF0ZTogbW9kYWwuZnJvbURheSxcclxuICAgICAgdG9EYXRlOiBtb2RhbC50b0RheSxcclxuICAgICAgYWNjb3VudFN0YXR1czogbW9kYWwuYWNjb3VudFN0YXR1cy5qb2luKCcsJyksXHJcbiAgICAgIGJ1c2luZXNzVW5pdDogbW9kYWwuYnVzaW5lc3NVbml0LFxyXG4gICAgICBjdXJyZW5jeTogbW9kYWwuY3VycmVuY3ksXHJcbiAgICAgIGNvbXBhbnlDb2RlOiBtb2RhbC5idXNpbmVzc1VuaXQsXHJcbiAgICAgIHJlcG9ydFBlcmlvZDogYCR7Zm9ybWF0RGF0ZShtb2RhbC5mcm9tRGF0ZSwgJ2RkL01NL3l5eXknLCAnZW4tVVMnKX0gLSAke2Zvcm1hdERhdGUobW9kYWwudG9EYXRlLCAnZGQvTU0veXl5eScsICdlbi1VUycpfWAsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZ2V0VHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQocmVxKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvcm1WYWxpZChpc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9ybVZhbGlkID0gaXNWYWxpZDtcclxuICB9XHJcblxyXG59XHJcbiIsIjxsaWItc2VhcmNoLWZpbHRlciBbUmVwb3J0TmFtZV09XCJSZXBvcnROYW1lXCIgKHNlYXJjaENsaWNrZWQpPVwiZ2V0UmVwb3J0KCRldmVudClcIlxyXG4gIChmb3JtVmFsaWQpPVwiaGFuZGxlRm9ybVZhbGlkKCRldmVudClcIj48L2xpYi1zZWFyY2gtZmlsdGVyPlxyXG48YXBwLWxvYWRlciBjbGFzcz1cIlwiICpuZ0lmPVwibG9hZGluZ1N0YXRlID09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPGRpdiAqbmdJZj1cImRhdGFSZWFkeSAmJiB0cmlhbEJhbGFuY2VSZXBvcnQ/Lm1haW5DT0FHcm91cHM/Lmxlbmd0aCA+IDAgJiZpc0Zvcm1WYWxpZFwiPlxyXG4gIDxsaWItbWV0YWRhdGEgW3JlcG9ydE5hbWVdPVwiJ1hwcmVzcyBNb25leSAtIE1JIEFjY291bnRzJ1wiIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFtzaG93bWV0YURhdGFUd29dPVwidHJ1ZVwiXHJcbiAgICBbbWV0YURhdGFPbmVdPVwibWV0YURhdGFPbmVcIiBbbWV0YURhdGFUd29dPVwibWV0YURhdGFUd29cIiAoZXhwb3J0RXZlbnQpPVwiaGFuZGxlRXhwb3J0KCRldmVudClcIlxyXG4gICAgKHNlYXJjaEV2ZW50KT1cIm9uU2VhcmNoKCRldmVudClcIj48L2xpYi1tZXRhZGF0YT5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIiAqbmdJZj1cInJvd0RhdGEgJiYgcm93RGF0YS5sZW5ndGggPiAwXCI+XHJcbiAgICA8bGliLXBhZ2Utc2l6ZS1zZWxlY3RvciBbdG90YWxFbnRyaWVzXT1cInJvd0RhdGE/Lmxlbmd0aFwiIFtkZWZhdWx0U2l6ZV09XCInMTUnXCJcclxuICAgICAgW2dyaWRBcGldPVwiZ3JpZEFwaVwiPjwvbGliLXBhZ2Utc2l6ZS1zZWxlY3Rvcj5cclxuXHJcbiAgICA8YWctZ3JpZC1hbmd1bGFyIGNsYXNzPVwiYWctdGhlbWUtYWxwaW5lIHRyYW5zYWN0aW9uLWdyaWRcIiBzdHlsZT1cImhlaWdodDogMzgwcHg7XCIgW2RvbUxheW91dF09XCInbm9ybWFsJ1wiXHJcbiAgICAgIFtyb3dEYXRhXT1cInJvd0RhdGFcIiBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCIgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiIFtyb3dDbGFzc1J1bGVzXT1cInJvd0NsYXNzUnVsZXNcIlxyXG4gICAgICBbcGFnaW5hdGlvbl09XCJ0cnVlXCIgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCIgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtyb3dIZWlnaHRdPVwiMjBcIlxyXG4gICAgICBbaGVhZGVySGVpZ2h0XT1cIjIyXCIgKHBhZ2luYXRpb25DaGFuZ2VkKT1cIm9uUmVzaXplKClcIj48L2FnLWdyaWQtYW5ndWxhcj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG10LTNcIiAqbmdJZj1cInRyaWFsQmFsYW5jZVJlcG9ydD8ubWFpbkNPQUdyb3Vwcz8ubGVuZ3RoPT0wXCI+XHJcbiAgTm8gRGF0YSBmb3VuZCBtYXRjaGluZyB5b3VyIHNlYXJjaCBjcml0ZXJpYS5cclxuPC9kaXY+Il19
@@ -7230,7 +7230,7 @@ class TrialBalanceAccountsReportComponent {
7230
7230
  accountStatus: modal.accountStatus.join(','),
7231
7231
  businessUnit: modal.businessUnit,
7232
7232
  currency: modal.currency,
7233
- companyCode: "BH",
7233
+ companyCode: modal.businessUnit,
7234
7234
  reportPeriod: `${formatDate(modal.fromDate, 'dd/MM/yyyy', 'en-US')} - ${formatDate(modal.toDate, 'dd/MM/yyyy', 'en-US')}`,
7235
7235
  };
7236
7236
  this.getTrialBalanceAccountsReport(req);