@cqa-lib/cqa-ui 1.1.339 → 1.1.340
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/esm2020/lib/test-case-details/test-data-modal/test-data-modal.component.mjs +3 -6
- package/fesm2015/cqa-lib-cqa-ui.mjs +2 -6
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +2 -5
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/test-case-details/test-data-modal/test-data-modal.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -277,12 +277,9 @@ export class TestDataModalComponent {
|
|
|
277
277
|
event.preventDefault();
|
|
278
278
|
this.environmentCreate.emit();
|
|
279
279
|
}
|
|
280
|
-
/** Runtime tab:
|
|
280
|
+
/** Runtime tab: replace the runtime input with the selected suggestion. */
|
|
281
281
|
onRuntimeChipInsert(snippet) {
|
|
282
|
-
|
|
283
|
-
? this.editForm.get('runtimeValue')?.value + ' ' + snippet
|
|
284
|
-
: snippet;
|
|
285
|
-
this.onEditFormFieldChange('runtimeValue', next);
|
|
282
|
+
this.onEditFormFieldChange('runtimeValue', snippet);
|
|
286
283
|
}
|
|
287
284
|
onApply() {
|
|
288
285
|
this.syncStateFromForm();
|
|
@@ -380,4 +377,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
380
377
|
}], helpUrl: [{
|
|
381
378
|
type: Input
|
|
382
379
|
}] } });
|
|
383
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kYXRhLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvdGVzdC1kYXRhLW1vZGFsL3Rlc3QtZGF0YS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtZGF0YS1tb2RhbC90ZXN0LWRhdGEtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDZCQUE2QixHQUc5QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RSxPQUFPLEVBQ0wsc0JBQXNCLEdBRXZCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBRzNDLE1BQU0sWUFBWSxHQUFHO0lBQ25CLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQzVDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQzFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO0lBQzlDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0NBQ3ZDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFxRDtJQUM5RSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFB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QUFzQiw4RUFpRHZCLG1CQUFtQixhQUNQLG9CQUFvQjt1R0FsRC9CLHNCQUFzQiw0ZEMvRG5DLG04akJBMFNBOzJGRDNPYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UscUJBQXFCLFFBRXpCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtRDVDLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQkFBb0I7NENBakRoQyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUtFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQWlCRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVEVTVF9EQVRBX01PREFMX0RBVEEsXG4gIFRFU1RfREFUQV9NT0RBTF9FRElUX0lOX0RFUFRILFxuICBUZXN0RGF0YU1vZGFsRGF0YSxcbiAgVGVzdERhdGFNb2RhbFRhYixcbn0gZnJvbSAnLi90ZXN0LWRhdGEtbW9kYWwtZGF0YSc7XG5pbXBvcnQgeyBURVNUX0RBVEFfTU9EQUxfUkVGLCBUZXN0RGF0YU1vZGFsUmVmIH0gZnJvbSAnLi90ZXN0LWRhdGEtbW9kYWwtcmVmJztcbmltcG9ydCB7IFRlc3REYXRhTW9kYWxSZXN1bHQgfSBmcm9tICcuL3Rlc3QtZGF0YS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE1PQ0tfRU5WSVJPTk1FTlRfSVRFTVMsXG4gIEVudmlyb25tZW50SXRlbSxcbn0gZnJvbSAnLi90ZXN0LWRhdGEtbW9kYWwtZW52aXJvbm1lbnQubW9kZWwnO1xuaW1wb3J0IHtcbiAgTU9DS19QQVJBTUVURVJTLFxuICBQYXJhbWV0ZXJJdGVtLFxuICBQYXJhbWV0ZXJTY29wZUZpbHRlcixcbn0gZnJvbSAnLi90ZXN0LWRhdGEtbW9kYWwtcGFyYW1ldGVyLm1vZGVsJztcbmltcG9ydCB7IENxYUxpc3RJdGVtQ29uZmlnIH0gZnJvbSAnLi4vLi4vaXRlbS1saXN0L2l0ZW0tbGlzdC5tb2RlbCc7XG5cbmNvbnN0IFRBQl9TRUdNRU5UUyA9IFtcbiAgeyBsYWJlbDogJ1BsYWluIFRleHQnLCB2YWx1ZTogJ3BsYWluLXRleHQnIH0sXG4gIHsgbGFiZWw6ICdQYXJhbWV0ZXInLCB2YWx1ZTogJ3BhcmFtZXRlcicgfSxcbiAgeyBsYWJlbDogJ0Vudmlyb25tZW50JywgdmFsdWU6ICdlbnZpcm9ubWVudCcgfSxcbiAgeyBsYWJlbDogJ1J1bnRpbWUnLCB2YWx1ZTogJ3J1bnRpbWUnIH0sXG5dO1xuXG5jb25zdCBQQVJBTUVURVJfRklMVEVSX1RBQlM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IFBhcmFtZXRlclNjb3BlRmlsdGVyIH1bXSA9IFtcbiAgeyBsYWJlbDogJ0FsbCcsIHZhbHVlOiAnYWxsJyB9LFxuICB7IGxhYmVsOiAnR2xvYmFsJywgdmFsdWU6ICdnbG9iYWwnIH0sXG4gIHsgbGFiZWw6ICdMb2NhbCcsIHZhbHVlOiAnbG9jYWwnIH0sXG5dO1xuXG4vKiogTW9jayBydW50aW1lIHZhcmlhYmxlIHN1Z2dlc3Rpb25zIChyZXBsYWNlIHdpdGggQVBJIHdoZW4gaW50ZWdyYXRpbmcpLiAqL1xuY29uc3QgUlVOVElNRV9TVUdHRVNURURfVkFMVUVTID0gW1xuICAncnVudGltZS5NYXhXYWl0VGltZScsXG4gICdydW50aW1lLnNlc3Npb25faWQnLFxuICAncnVudGltZS5hdXRoX3Rva2VuJyxcbiAgJ3J1bnRpbWUuc3RlcF9pbmRleCcsXG4gICdydW50aW1lLnRpbWVzdGFtcCcsXG4gICdydW50aW1lLnRlc3RfbmFtZScsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtdGVzdC1kYXRhLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlc3QtZGF0YS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRlc3REYXRhTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBPdXRwdXQoKSBhcHBseSA9IG5ldyBFdmVudEVtaXR0ZXI8e3ZhbHVlOiBzdHJpbmcsIGFjdGl2ZVRhYjogVGVzdERhdGFNb2RhbFRhYn0+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBlZGl0SW5EZXB0aCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHBhcmFtZXRlckNyZWF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHBhcmFtZXRlckVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGVudmlyb25tZW50Q3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZW52aXJvbm1lbnRFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgdGFiU2VnbWVudHMgPSBUQUJfU0VHTUVOVFM7XG4gIHJlYWRvbmx5IHBhcmFtZXRlckZpbHRlclRhYnMgPSBQQVJBTUVURVJfRklMVEVSX1RBQlM7XG4gIC8qKiBQYXJhbWV0ZXIgbGlzdCBmcm9tIGlucHV0LCBmYWxscyBiYWNrIHRvIG1vY2sgZGF0YSBpZiBub3QgcHJvdmlkZWQuICovXG4gIEBJbnB1dCgpIHBhcmFtZXRlcnM6IFBhcmFtZXRlckl0ZW1bXSA9IE1PQ0tfUEFSQU1FVEVSUztcbiAgLyoqIEVudmlyb25tZW50IGxpc3QgZnJvbSBpbnB1dCwgZmFsbHMgYmFjayB0byBtb2NrIGRhdGEgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASW5wdXQoKSBlbnZpcm9ubWVudEl0ZW1zOiBFbnZpcm9ubWVudEl0ZW1bXSA9IE1PQ0tfRU5WSVJPTk1FTlRfSVRFTVM7XG4gIC8qKiBSdW50aW1lIHRhYjogc3VnZ2VzdGVkIHZhcmlhYmxlIGNoaXBzLiAqL1xuICByZWFkb25seSBydW50aW1lU3VnZ2VzdGVkVmFsdWVzOiByZWFkb25seSBzdHJpbmdbXSA9IFJVTlRJTUVfU1VHR0VTVEVEX1ZBTFVFUztcblxuICAvKiogRm9ybSBmb3IgYWxsIG1vZGFsIGNvbnRyb2xzIChzYW1lIHBhdHRlcm4gYXMgTG9vcCBTdGVwIGVkaXRGb3JtKS4gKi9cbiAgZWRpdEZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgLyoqIENhY2hlZCBzZWxlY3QgY29uZmlncyAoc3RhYmxlIHJlZnMsIHNhbWUgbmFtaW5nIGFzIExvb3AgU3RlcDogeHh4U2VsZWN0Q29uZmlnKS4gKi9cbiAgYWN0aXZlVGFiU2VsZWN0Q29uZmlnITogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnO1xuICBwYXJhbWV0ZXJTY29wZUZpbHRlclNlbGVjdENvbmZpZyE6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZztcblxuICAvKiogTG9jYWwgY29weSBvZiBmb3JtIHZhbHVlIGZvciBDYW5jZWwgcmV2ZXJ0IChzYW1lIHBhdHRlcm4gYXMgTG9vcCBTdGVwIGVkaXRTbmFwc2hvdCkuICovXG4gIHByaXZhdGUgZWRpdFNuYXBzaG90OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAvKiogUHJlc2VydmUgdXNlci1lbnRlcmVkIHBsYWluIHRleHQgaW5kZXBlbmRlbnRseSBmcm9tIHBhcmFtZXRlci9lbnZpcm9ubWVudC9ydW50aW1lIHNlbGVjdGlvbnMuICovXG4gIHByaXZhdGUgcGxhaW5UZXh0VmFsdWUgPSAnJztcblxuICAvKiogU3RhdGUgZGVyaXZlZCBmcm9tIGNvbmZpZy9lZGl0Rm9ybSBmb3IgdGVtcGxhdGUgYW5kIGdldHRlcnMgKG1pcnJvcnMgTG9vcCBTdGVwIGlucHV0cykuICovXG4gIEBJbnB1dCgpIGFjdGl2ZVRhYjogVGVzdERhdGFNb2RhbFRhYiA9ICdwbGFpbi10ZXh0JztcbiAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgQElucHV0KCkgaGVscFVybCA9ICcnO1xuICBoZWxwVG9vbHRpcFRleHQgPSAnTm90IHN1cmUgd2hhdCB0byBkbz8gQ2xpY2sgdG8gZ28gdG8gb3VyIGRldGFpbGVkIHN0ZXAgY3JlYXRpb24gZG9jdW1lbnRhdGlvbic7XG4gIHNob3dIZWxwVG9vbHRpcCA9IGZhbHNlO1xuXG4gIHBhcmFtZXRlclNjb3BlRmlsdGVyOiBQYXJhbWV0ZXJTY29wZUZpbHRlciA9ICdhbGwnO1xuICBwYXJhbWV0ZXJTZWFyY2hRdWVyeSA9ICcnO1xuICBzZWxlY3RlZFBhcmFtZXRlcklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBlbnZpcm9ubWVudFNlYXJjaFF1ZXJ5ID0gJyc7XG4gIHNlbGVjdGVkRW52aXJvbm1lbnRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcnVudGltZVZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoVEVTVF9EQVRBX01PREFMX1JFRikgcHJpdmF0ZSByZWY6IFRlc3REYXRhTW9kYWxSZWY8VGVzdERhdGFNb2RhbFJlc3VsdD4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChURVNUX0RBVEFfTU9EQUxfREFUQSkgZGF0YT86IFRlc3REYXRhTW9kYWxEYXRhXG4gICkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLnZhbHVlID0gZGF0YS52YWx1ZSA/PyAnJztcbiAgICAgIHRoaXMuaGVscFVybCA9IGRhdGEuaGVscFVybCA/PyAnJztcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gKGRhdGEuYWN0aXZlVGFiID8/ICdwbGFpbi10ZXh0JykgYXMgVGVzdERhdGFNb2RhbFRhYjtcbiAgICAgIHRoaXMucGFyYW1ldGVyU2NvcGVGaWx0ZXIgPSBkYXRhLnBhcmFtZXRlclNjb3BlRmlsdGVyID8/ICdhbGwnO1xuICAgICAgdGhpcy5wYXJhbWV0ZXJTZWFyY2hRdWVyeSA9IGRhdGEucGFyYW1ldGVyU2VhcmNoUXVlcnkgPz8gJyc7XG4gICAgICB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQgPSBkYXRhLnNlbGVjdGVkUGFyYW1ldGVySWQgPz8gbnVsbDtcbiAgICAgIHRoaXMuZW52aXJvbm1lbnRTZWFyY2hRdWVyeSA9IGRhdGEuZW52aXJvbm1lbnRTZWFyY2hRdWVyeSA/PyAnJztcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkID0gZGF0YS5zZWxlY3RlZEVudmlyb25tZW50SWQgPz8gbnVsbDtcbiAgICAgIHRoaXMucnVudGltZVZhbHVlID0gZGF0YS5ydW50aW1lVmFsdWUgPz8gJyc7XG4gICAgICAvLyBTZXQgcGFyYW1ldGVycyBhbmQgZW52aXJvbm1lbnRJdGVtcyBmcm9tIGRhdGEgaWYgcHJvdmlkZWRcbiAgICAgIGlmIChkYXRhLnBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBkYXRhLnBhcmFtZXRlcnM7XG4gICAgICB9XG4gICAgICBpZiAoZGF0YS5lbnZpcm9ubWVudEl0ZW1zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudEl0ZW1zID0gZGF0YS5lbnZpcm9ubWVudEl0ZW1zO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnBsYWluVGV4dFZhbHVlID0gdGhpcy5hY3RpdmVUYWIgPT09ICdwbGFpbi10ZXh0JyA/ICh0aGlzLnZhbHVlID8/ICcnKSA6ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZEVkaXRGb3JtKCk7XG4gICAgdGhpcy5idWlsZFNlbGVjdENvbmZpZ3MoKTtcbiAgICB0aGlzLmVkaXRTbmFwc2hvdCA9IHsgLi4udGhpcy5lZGl0Rm9ybS52YWx1ZSB9O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lZGl0Rm9ybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydhY3RpdmVUYWInXSkge1xuICAgICAgdGhpcy5lZGl0Rm9ybS5nZXQoJ2FjdGl2ZVRhYicpPy5zZXRWYWx1ZSh0aGlzLmFjdGl2ZVRhYiA/PyAncGxhaW4tdGV4dCcsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcbiAgICAgIHRoaXMuZWRpdEZvcm0uZ2V0KCd2YWx1ZScpPy5zZXRWYWx1ZSh0aGlzLnZhbHVlID8/ICcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnBsYWluVGV4dFZhbHVlID0gdGhpcy5hY3RpdmVUYWIgPT09ICdwbGFpbi10ZXh0JyA/ICh0aGlzLnZhbHVlID8/ICcnKSA6ICcnO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snaGVscFVybCddKSB7XG4gICAgICB0aGlzLmhlbHBVcmwgPSB0aGlzLmhlbHBVcmwgPz8gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5zeW5jU3RhdGVGcm9tRm9ybSgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEJ1aWxkIGZvcm0gd2l0aCBhbGwgY29udHJvbCB2YWx1ZXMgKHNhbWUgcGF0dGVybiBhcyBMb29wIFN0ZXAgYnVpbGRFZGl0Rm9ybSkuICovXG4gIHByaXZhdGUgYnVpbGRFZGl0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB2YWx1ZTogW3RoaXMudmFsdWUgPz8gJyddLFxuICAgICAgYWN0aXZlVGFiOiBbdGhpcy5hY3RpdmVUYWIgPz8gJ3BsYWluLXRleHQnXSxcbiAgICAgIHBhcmFtZXRlclNjb3BlRmlsdGVyOiBbdGhpcy5wYXJhbWV0ZXJTY29wZUZpbHRlciA/PyAnYWxsJ10sXG4gICAgICBwYXJhbWV0ZXJTZWFyY2hRdWVyeTogW3RoaXMucGFyYW1ldGVyU2VhcmNoUXVlcnkgPz8gJyddLFxuICAgICAgc2VsZWN0ZWRQYXJhbWV0ZXJJZDogW3RoaXMuc2VsZWN0ZWRQYXJhbWV0ZXJJZCA/PyBudWxsXSxcbiAgICAgIGVudmlyb25tZW50U2VhcmNoUXVlcnk6IFt0aGlzLmVudmlyb25tZW50U2VhcmNoUXVlcnkgPz8gJyddLFxuICAgICAgc2VsZWN0ZWRFbnZpcm9ubWVudElkOiBbdGhpcy5zZWxlY3RlZEVudmlyb25tZW50SWQgPz8gbnVsbF0sXG4gICAgICBydW50aW1lVmFsdWU6IFt0aGlzLnJ1bnRpbWVWYWx1ZSA/PyAnJ10sXG4gICAgfSk7XG4gIH1cblxuICAvKiogQnVpbGQgc2VsZWN0IGNvbmZpZ3Mgb25jZSAoc2FtZSBwYXR0ZXJuIGFzIExvb3AgU3RlcCBidWlsZFNlbGVjdENvbmZpZ3MpLiAqL1xuICBwcml2YXRlIGJ1aWxkU2VsZWN0Q29uZmlncygpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFRBQl9TRUdNRU5UUy5tYXAoKHMpID0+ICh7XG4gICAgICBpZDogcy52YWx1ZSxcbiAgICAgIHZhbHVlOiBzLnZhbHVlLFxuICAgICAgbmFtZTogcy5sYWJlbCxcbiAgICAgIGxhYmVsOiBzLmxhYmVsLFxuICAgIH0pKTtcbiAgICBjb25zdCBmaWx0ZXJPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFBBUkFNRVRFUl9GSUxURVJfVEFCUy5tYXAoKHMpID0+ICh7XG4gICAgICBpZDogcy52YWx1ZSxcbiAgICAgIHZhbHVlOiBzLnZhbHVlLFxuICAgICAgbmFtZTogcy5sYWJlbCxcbiAgICAgIGxhYmVsOiBzLmxhYmVsLFxuICAgIH0pKTtcbiAgICB0aGlzLmFjdGl2ZVRhYlNlbGVjdENvbmZpZyA9IHtcbiAgICAgIGtleTogJ2FjdGl2ZVRhYicsXG4gICAgICBwbGFjZWhvbGRlcjogJ1RhYicsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHRhYk9wdGlvbnMsXG4gICAgfTtcbiAgICB0aGlzLnBhcmFtZXRlclNjb3BlRmlsdGVyU2VsZWN0Q29uZmlnID0ge1xuICAgICAga2V5OiAncGFyYW1ldGVyU2NvcGVGaWx0ZXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTY29wZScsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IGZpbHRlck9wdGlvbnMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBVcGRhdGUgZm9ybSBjb250cm9sIGFuZCBzeW5jIGNvbXBvbmVudCBzdGF0ZSAoc2FtZSBwYXR0ZXJuIGFzIExvb3AgU3RlcCBvbkVkaXRGb3JtRmllbGRDaGFuZ2UpLiAqL1xuICBvbkVkaXRGb3JtRmllbGRDaGFuZ2UoY29udHJvbE5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRGb3JtLmdldChjb250cm9sTmFtZSk/LnNldFZhbHVlKHZhbHVlKTtcbiAgICBpZiAoY29udHJvbE5hbWUgPT09ICd2YWx1ZScgJiYgdGhpcy5hY3RpdmVUYWIgPT09ICdwbGFpbi10ZXh0Jykge1xuICAgICAgdGhpcy5wbGFpblRleHRWYWx1ZSA9IFN0cmluZyh2YWx1ZSA/PyAnJyk7XG4gICAgfVxuICAgIHRoaXMuc3luY1N0YXRlRnJvbUZvcm0oKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBTeW5jIGNvbXBvbmVudCBzdGF0ZSBmcm9tIGVkaXRGb3JtIHNvIGdldHRlcnMgKGUuZy4gZmlsdGVyZWRQYXJhbWV0ZXJzKSBzdGF5IGNvcnJlY3QuICovXG4gIHByaXZhdGUgc3luY1N0YXRlRnJvbUZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHRoaXMuZWRpdEZvcm0udmFsdWU7XG4gICAgdGhpcy52YWx1ZSA9IHYudmFsdWUgPz8gJyc7XG4gICAgdGhpcy5hY3RpdmVUYWIgPSAodi5hY3RpdmVUYWIgPz8gJ3BsYWluLXRleHQnKSBhcyBUZXN0RGF0YU1vZGFsVGFiO1xuICAgIHRoaXMucGFyYW1ldGVyU2NvcGVGaWx0ZXIgPSAodi5wYXJhbWV0ZXJTY29wZUZpbHRlciA/PyAnYWxsJykgYXMgUGFyYW1ldGVyU2NvcGVGaWx0ZXI7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZWFyY2hRdWVyeSA9IHYucGFyYW1ldGVyU2VhcmNoUXVlcnkgPz8gJyc7XG4gICAgdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkID0gdi5zZWxlY3RlZFBhcmFtZXRlcklkID8/IG51bGw7XG4gICAgdGhpcy5lbnZpcm9ubWVudFNlYXJjaFF1ZXJ5ID0gdi5lbnZpcm9ubWVudFNlYXJjaFF1ZXJ5ID8/ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkID0gdi5zZWxlY3RlZEVudmlyb25tZW50SWQgPz8gbnVsbDtcbiAgICB0aGlzLnJ1bnRpbWVWYWx1ZSA9IHYucnVudGltZVZhbHVlID8/ICcnO1xuICB9XG5cbiAgLyoqIEZpbHRlcmVkIHBhcmFtZXRlcnMgYnkgc2NvcGUgYW5kIHNlYXJjaCAoUGFyYW1ldGVyIHRhYikuICovXG4gIGdldCBmaWx0ZXJlZFBhcmFtZXRlcnMoKTogUGFyYW1ldGVySXRlbVtdIHtcbiAgICBsZXQgbGlzdCA9IHRoaXMucGFyYW1ldGVycztcbiAgICBpZiAodGhpcy5wYXJhbWV0ZXJTY29wZUZpbHRlciA9PT0gJ2dsb2JhbCcpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmZpbHRlcigocCkgPT4gcC5zY29wZSA9PT0gJ0dsb2JhbCcpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wYXJhbWV0ZXJTY29wZUZpbHRlciA9PT0gJ2xvY2FsJykge1xuICAgICAgbGlzdCA9IGxpc3QuZmlsdGVyKChwKSA9PiBwLnNjb3BlID09PSAnTG9jYWwnKTtcbiAgICB9XG4gICAgY29uc3QgcSA9IHRoaXMucGFyYW1ldGVyU2VhcmNoUXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHEpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmZpbHRlcigocCkgPT4gcC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIC8qKiBGaWx0ZXJlZCBlbnZpcm9ubWVudCBpdGVtcyBieSBzZWFyY2ggKEVudmlyb25tZW50IHRhYikuICovXG4gIGdldCBmaWx0ZXJlZEVudmlyb25tZW50cygpOiBFbnZpcm9ubWVudEl0ZW1bXSB7XG4gICAgY29uc3QgcSA9IHRoaXMuZW52aXJvbm1lbnRTZWFyY2hRdWVyeS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXEpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50SXRlbXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50SXRlbXMuZmlsdGVyKFxuICAgICAgKGUpID0+XG4gICAgICAgIGUubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpIHx8IGUudmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKVxuICAgICk7XG4gIH1cblxuICAvKiogUGFyYW1ldGVyIHRhYjogbGlzdCBjb25maWcgZm9yIGNxYS1pdGVtLWxpc3QgKHNlYXJjaC1mcmllbmRseTogYmluZCBmaWx0ZXJlZCBsaXN0KS4gKi9cbiAgZ2V0IHBhcmFtZXRlckxpc3RDb25maWcoKTogQ3FhTGlzdEl0ZW1Db25maWdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRQYXJhbWV0ZXJzLm1hcCgocCkgPT4gKHtcbiAgICAgIGlkOiBwLmlkLFxuICAgICAgdGl0bGU6IHAubmFtZSxcbiAgICAgIHN1YnRpdGxlOiBwLnZhbHVlLFxuICAgICAgYmFkZ2U6IHAuc2NvcGUsXG4gICAgICBzaG93RWRpdDogdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkID09PSBwLmlkLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKiBFbnZpcm9ubWVudCB0YWI6IGxpc3QgY29uZmlnIGZvciBjcWEtaXRlbS1saXN0LiAqL1xuICBnZXQgZW52aXJvbm1lbnRMaXN0Q29uZmlnKCk6IENxYUxpc3RJdGVtQ29uZmlnW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkRW52aXJvbm1lbnRzLm1hcCgoZSkgPT4gKHtcbiAgICAgIGlkOiBlLmlkLFxuICAgICAgdGl0bGU6IGUubmFtZSxcbiAgICAgIHN1YnRpdGxlOiBgVmFsdWU6ICR7ZS52YWx1ZX1gLFxuICAgICAgYmFkZ2U6IGUuZW52aXJvbm1lbnQsXG4gICAgICBzaG93RWRpdDogdGhpcy5zZWxlY3RlZEVudmlyb25tZW50SWQgPT09IGUuaWQgJiYgKGUuZWRpdGFibGUgPz8gdHJ1ZSksXG4gICAgfSkpO1xuICB9XG5cbiAgb25UYWJDaGFuZ2UodGFiVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BsYWluLXRleHQnKSB7XG4gICAgICB0aGlzLnBsYWluVGV4dFZhbHVlID0gdGhpcy5lZGl0Rm9ybS5nZXQoJ3ZhbHVlJyk/LnZhbHVlID8/ICcnO1xuICAgIH1cbiAgICB0aGlzLm9uRWRpdEZvcm1GaWVsZENoYW5nZSgnYWN0aXZlVGFiJywgdGFiVmFsdWUpO1xuICAgIGlmICh0YWJWYWx1ZSA9PT0gJ3BsYWluLXRleHQnKSB7XG4gICAgICB0aGlzLm9uRWRpdEZvcm1GaWVsZENoYW5nZSgndmFsdWUnLCB0aGlzLnBsYWluVGV4dFZhbHVlID8/ICcnKTtcbiAgICB9XG4gIH1cblxuICBvblBhcmFtZXRlclNjb3BlRmlsdGVyQ2hhbmdlKGZpbHRlcjogUGFyYW1ldGVyU2NvcGVGaWx0ZXIpOiB2b2lkIHtcbiAgICB0aGlzLm9uRWRpdEZvcm1GaWVsZENoYW5nZSgncGFyYW1ldGVyU2NvcGVGaWx0ZXInLCBmaWx0ZXIpO1xuICB9XG5cbiAgb25QYXJhbWV0ZXJTZWFyY2hJbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3BhcmFtZXRlclNlYXJjaFF1ZXJ5JywgdmFsdWUpO1xuICB9XG5cbiAgb25QYXJhbWV0ZXJTZWxlY3QocGFyYW1JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnMuZmluZCgocCkgPT4gcC5pZCA9PT0gcGFyYW1JZCk7XG4gICAgaWYgKHBhcmFtKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQgPSB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQgPT09IHBhcmFtLmlkID8gbnVsbCA6IHBhcmFtLmlkO1xuICAgICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3NlbGVjdGVkUGFyYW1ldGVySWQnLCB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQpO1xuICAgICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3ZhbHVlJywgcGFyYW0ubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEhhbmRsZSByb3cgY2xpY2sgKHNlbGVjdCBwYXJhbWV0ZXIpLiBFZGl0IGJ1dHRvbiB1c2VzIG9uUGFyYW1ldGVyRWRpdENsaWNrIHRvIGF2b2lkIHRyaWdnZXJpbmcgdGhpcy4gKi9cbiAgb25QYXJhbWV0ZXJSb3dDbGljayhldmVudDogRXZlbnQsIGl0ZW06IHsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQuY2xvc2VzdCgnYnV0dG9uLCBtYXQtaWNvbiwgW2FyaWEtbGFiZWw9XCJFZGl0XCJdJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vblBhcmFtZXRlclNlbGVjdChpdGVtLmlkKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGUgRWRpdCBidXR0b24gY2xpY2sgLSBzdG9wIHByb3BhZ2F0aW9uIGFuZCBlbWl0IHNvIHBhcmVudCBjYW4gbmF2aWdhdGUuICovXG4gIG9uUGFyYW1ldGVyRWRpdENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBwYXJhbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub25QYXJhbWV0ZXJFZGl0KHBhcmFtSWQpO1xuICB9XG5cbiAgb25QYXJhbWV0ZXJFZGl0KHBhcmFtSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1ldGVyRWRpdC5lbWl0KHBhcmFtSWQpO1xuICB9XG5cbiAgb25DcmVhdGVOZXdWYXJpYWJsZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucGFyYW1ldGVyQ3JlYXRlLmVtaXQoKTtcbiAgfVxuXG4gIG9uRW52aXJvbm1lbnRTZWFyY2hJbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ2Vudmlyb25tZW50U2VhcmNoUXVlcnknLCB2YWx1ZSk7XG4gIH1cblxuICBvbkVudmlyb25tZW50U2VsZWN0KGl0ZW1JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZW52aXJvbm1lbnRJdGVtcy5maW5kKChlKSA9PiBlLmlkID09PSBpdGVtSWQpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRW52aXJvbm1lbnRJZCA9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkID09PSBpdGVtLmlkID8gbnVsbCA6IGl0ZW0uaWQ7XG4gICAgICB0aGlzLm9uRWRpdEZvcm1GaWVsZENoYW5nZSgnc2VsZWN0ZWRFbnZpcm9ubWVudElkJywgdGhpcy5zZWxlY3RlZEVudmlyb25tZW50SWQpO1xuICAgICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3ZhbHVlJywgaXRlbS5uYW1lKTtcbiAgICB9XG4gIH1cblxuICBvbkVudmlyb25tZW50RWRpdChpdGVtSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZW52aXJvbm1lbnRFZGl0LmVtaXQoaXRlbUlkKTtcbiAgfVxuXG4gIG9uQ3JlYXRlTmV3RW52aXJvbm1lbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmVudmlyb25tZW50Q3JlYXRlLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBSdW50aW1lIHRhYjogaW5zZXJ0IHN1Z2dlc3RlZCB2YWx1ZSBpbnRvIHRoZSBydW50aW1lIGlucHV0IGZpZWxkLiAqL1xuICBvblJ1bnRpbWVDaGlwSW5zZXJ0KHNuaXBwZXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLmVkaXRGb3JtLmdldCgncnVudGltZVZhbHVlJyk/LnZhbHVlXG4gICAgICA/IHRoaXMuZWRpdEZvcm0uZ2V0KCdydW50aW1lVmFsdWUnKT8udmFsdWUgKyAnICcgKyBzbmlwcGV0XG4gICAgICA6IHNuaXBwZXQ7XG4gICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3J1bnRpbWVWYWx1ZScsIG5leHQpO1xuICB9XG5cbiAgb25BcHBseSgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNTdGF0ZUZyb21Gb3JtKCk7XG4gICAgbGV0IHZhbHVlVG9BcHBseSA9IHRoaXMuYWN0aXZlVGFiID09PSAncnVudGltZScgPyB0aGlzLnJ1bnRpbWVWYWx1ZSA6IHRoaXMudmFsdWU7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdwYXJhbWV0ZXInKSB7XG4gICAgICB2YWx1ZVRvQXBwbHkgPSB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQgPyB0aGlzLnBhcmFtZXRlcnMuZmluZCgocCkgPT4gcC5pZCA9PT0gdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkKT8ubmFtZSA/PyAnJyA6ICcnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdlbnZpcm9ubWVudCcpIHtcbiAgICAgIHZhbHVlVG9BcHBseSA9IHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkID8gdGhpcy5lbnZpcm9ubWVudEl0ZW1zLmZpbmQoKGUpID0+IGUuaWQgPT09IHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkKT8ubmFtZSA/PyAnJyA6ICcnO1xuICAgIH1cblxuICAgIC8vIFdyYXAgdmFsdWVUb0FwcGx5IGJhc2VkIG9uIGFjdGl2ZSB0YWJcbiAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdwYXJhbWV0ZXInICYmIHZhbHVlVG9BcHBseSkge1xuICAgICAgdmFsdWVUb0FwcGx5ID0gYEB8JHt2YWx1ZVRvQXBwbHl9fGA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ3J1bnRpbWUnICYmIHZhbHVlVG9BcHBseSkge1xuICAgICAgdmFsdWVUb0FwcGx5ID0gYCR8JHt2YWx1ZVRvQXBwbHl9fGA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ2Vudmlyb25tZW50JyAmJiB2YWx1ZVRvQXBwbHkpIHtcbiAgICAgIHZhbHVlVG9BcHBseSA9IGAqfCR7dmFsdWVUb0FwcGx5fXxgO1xuICAgIH1cbiAgICAvLyBwbGFpbi10ZXh0IHRhYjogbm8gd3JhcHBpbmcsIHVzZSB2YWx1ZSBhcyBpc1xuXG4gICAgLy8gQnVpbGQgcmVzdWx0IHdpdGggb25seSB0aGUgYWN0aXZlIHRhYidzIGRhdGEsIGNsZWFyIG90aGVyIHRhYnMnIGRhdGFcbiAgICBjb25zdCByZXN1bHQ6IFRlc3REYXRhTW9kYWxEYXRhID0ge1xuICAgICAgdmFsdWU6IHZhbHVlVG9BcHBseSxcbiAgICAgIGFjdGl2ZVRhYjogdGhpcy5hY3RpdmVUYWIsXG4gICAgICAvLyBPbmx5IGluY2x1ZGUgcGFyYW1ldGVyIGRhdGEgaWYgcGFyYW1ldGVyIHRhYiBpcyBhY3RpdmVcbiAgICAgIHBhcmFtZXRlclNjb3BlRmlsdGVyOiB0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BhcmFtZXRlcicgPyB0aGlzLnBhcmFtZXRlclNjb3BlRmlsdGVyIDogdW5kZWZpbmVkLFxuICAgICAgcGFyYW1ldGVyU2VhcmNoUXVlcnk6IHRoaXMuYWN0aXZlVGFiID09PSAncGFyYW1ldGVyJyA/IHRoaXMucGFyYW1ldGVyU2VhcmNoUXVlcnkgOiB1bmRlZmluZWQsXG4gICAgICBzZWxlY3RlZFBhcmFtZXRlcklkOiB0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BhcmFtZXRlcicgPyB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQgOiB1bmRlZmluZWQsXG4gICAgICAvLyBPbmx5IGluY2x1ZGUgZW52aXJvbm1lbnQgZGF0YSBpZiBlbnZpcm9ubWVudCB0YWIgaXMgYWN0aXZlXG4gICAgICBlbnZpcm9ubWVudFNlYXJjaFF1ZXJ5OiB0aGlzLmFjdGl2ZVRhYiA9PT0gJ2Vudmlyb25tZW50JyA/IHRoaXMuZW52aXJvbm1lbnRTZWFyY2hRdWVyeSA6IHVuZGVmaW5lZCxcbiAgICAgIHNlbGVjdGVkRW52aXJvbm1lbnRJZDogdGhpcy5hY3RpdmVUYWIgPT09ICdlbnZpcm9ubWVudCcgPyB0aGlzLnNlbGVjdGVkRW52aXJvbm1lbnRJZCA6IHVuZGVmaW5lZCxcbiAgICAgIC8vIE9ubHkgaW5jbHVkZSBydW50aW1lIGRhdGEgaWYgcnVudGltZSB0YWIgaXMgYWN0aXZlXG4gICAgICBydW50aW1lVmFsdWU6IHRoaXMuYWN0aXZlVGFiID09PSAncnVudGltZScgPyB0aGlzLnJ1bnRpbWVWYWx1ZSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgdGhpcy5hcHBseS5lbWl0KHt2YWx1ZTogdmFsdWVUb0FwcGx5LCBhY3RpdmVUYWI6IHRoaXMuYWN0aXZlVGFiIGFzIFRlc3REYXRhTW9kYWxUYWJ9KTtcbiAgICB0aGlzLnJlZi5jbG9zZShyZXN1bHQpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0Rm9ybS5wYXRjaFZhbHVlKHRoaXMuZWRpdFNuYXBzaG90KTtcbiAgICB0aGlzLnN5bmNTdGF0ZUZyb21Gb3JtKCk7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICAgIHRoaXMucmVmLmNsb3NlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMub25DYW5jZWwoKTtcbiAgfVxuXG4gIG9uRWRpdEluRGVwdGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmVkaXRJbkRlcHRoLmVtaXQoKTtcbiAgICB0aGlzLnJlZi5jbG9zZShURVNUX0RBVEFfTU9EQUxfRURJVF9JTl9ERVBUSCBhcyBhbnkpO1xuICB9XG5cbiAgb25IZWxwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlbHBVcmwpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB3aW5kb3cub3Blbih0aGlzLmhlbHBVcmwsICdfYmxhbmsnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtWzEycHhdIGNxYS1zaGFkb3ctbGcgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS13LVs1MDBweF0gY3FhLW1heC1oLVs3N3ZoXSBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC1bMTJweF0gY3FhLXAtMiBjcWEtYm94LWJvcmRlciBjcWEtbWluLWgtMFwiPlxuICA8IS0tIEhlYWRlcjogdGl0bGUgbGVmdDsgTmVlZCBoZWxwPyArIGNsb3NlIGljb24gcmlnaHQgKG5vIG92ZXJmbG93IGhlcmUgc28gdG9vbHRpcCBpcyBub3QgY2xpcHBlZCkgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1zaHJpbmstMCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1weC00XCI+XG4gICAgPGgyIGNsYXNzPVwiY3FhLXRleHQtWzE2cHhdIGNxYS1sZWFkaW5nLVsyNHB4XSBjcWEtZm9udC1ib2xkIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbS0wIGNxYS1mb250LVs2MDBdXCI+XG4gICAgICBUZXN0IERhdGFcbiAgICA8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWluLWgtWzI4cHhdXCI+XG4gICAgICA8IS0tIE5lZWQgaGVscD8gd2l0aCBjdXN0b20gdG9vbHRpcDogc2hvdyBiZWxvdyB0cmlnZ2VyIHNvIGl0IGlzIG5vdCBjbGlwcGVkIGJ5IG1vZGFsIG92ZXJmbG93LXktYXV0byAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcmVsYXRpdmUgY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJzaG93SGVscFRvb2x0aXAgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwic2hvd0hlbHBUb29sdGlwID0gZmFsc2VcIj5cbiAgICAgICAgPGEgKm5nSWY9XCJoZWxwVXJsXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwib25IZWxwKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXRleHQtWyMzRjQzRUVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMjFweF0gY3FhLW5vLXVuZGVybGluZSBob3ZlcjpjcWEtdW5kZXJsaW5lIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjdGVzdC1kYXRhLWhlbHAtY2xpcClcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjUwMDMzIDE0LjY2NjNDMTIuNDEyMyAxNC42NjYzIDE1LjU4MzcgMTEuNjgxNiAxNS41ODM3IDcuOTk5NjdDMTUuNTgzNyA0LjMxNzc4IDEyLjQxMjMgMS4zMzMwMSA4LjUwMDMzIDEuMzMzMDFDNC41ODgzMSAxLjMzMzAxIDEuNDE2OTkgNC4zMTc3OCAxLjQxNjk5IDcuOTk5NjdDMS40MTY5OSAxMS42ODE2IDQuNTg4MzEgMTQuNjY2MyA4LjUwMDMzIDE0LjY2NjNaXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuNDM4NDggNi4wMDAzOEM2LjYwNTAxIDUuNTU0ODMgNi45MzM3MSA1LjE3OTEyIDcuMzY2MzYgNC45Mzk4QzcuNzk5MDEgNC43MDA0OSA4LjMwNzY5IDQuNjEzMDEgOC44MDIzMSA0LjY5Mjg1QzkuMjk2OTMgNC43NzI3IDkuNzQ1NTYgNS4wMTQ3MyAxMC4wNjg3IDUuMzc2MDdDMTAuMzkxOSA1LjczNzQgMTAuNTY4OCA2LjE5NDczIDEwLjU2ODEgNi42NjcwNUMxMC41NjgxIDguMDAwMzggOC40NDMwNiA4LjY2NzA1IDguNDQzMDYgOC42NjcwNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjUgMTEuMzMzSDguNTA5NjZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwidGVzdC1kYXRhLWhlbHAtY2xpcFwiPlxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICBOZWVkIGhlbHAgP1xuICAgICAgICA8L2E+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWhlbHBVcmxcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLWZvbnQtWzUwMF0gY3FhLXRleHQtWzEwcHhdIGNxYS1jdXJzb3ItZGVmYXVsdFwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTAgY3FhLXRleHQtWyMzRjQzRUVdXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI3Rlc3QtZGF0YS1oZWxwLWNsaXAtbm9saW5rKVwiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNTAwMzMgMTQuNjY2M0MxMi40MTIzIDE0LjY2NjMgMTUuNTgzNyAxMS42ODE2IDE1LjU4MzcgNy45OTk2N0MxNS41ODM3IDQuMzE3NzggMTIuNDEyMyAxLjMzMzAxIDguNTAwMzMgMS4zMzMwMUM0LjU4ODMxIDEuMzMzMDEgMS40MTY5OSA0LjMxNzc4IDEuNDE2OTkgNy45OTk2N0MxLjQxNjk5IDExLjY4MTYgNC41ODgzMSAxNC42NjYzIDguNTAwMzMgMTQuNjY2M1pcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi40Mzg0OCA2LjAwMDM4QzYuNjA1MDEgNS41NTQ4MyA2LjkzMzcxIDUuMTc5MTIgNy4zNjYzNiA0LjkzOThDNy43OTkwMSA0LjcwMDQ5IDguMzA3NjkgNC42MTMwMSA4LjgwMjMxIDQuNjkyODVDOS4yOTY5MyA0Ljc3MjcgOS43NDU1NiA1LjAxNDczIDEwLjA2ODcgNS4zNzYwN0MxMC4zOTE5IDUuNzM3NCAxMC41Njg4IDYuMTk0NzMgMTAuNTY4MSA2LjY2NzA1QzEwLjU2ODEgOC4wMDAzOCA4LjQ0MzA2IDguNjY3MDUgOC40NDMwNiA4LjY2NzA1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNSAxMS4zMzNIOC41MDk2NlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJ0ZXN0LWRhdGEtaGVscC1jbGlwLW5vbGlua1wiPlxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICBOZWVkIGhlbHAgP1xuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwhLS0gVG9vbHRpcCBhYm92ZSB0cmlnZ2VyIChzYW1lIGFzIGVsZW1lbnQtcG9wdXApOyBoZWFkZXIgaGFzIG5vIG92ZXJmbG93IHNvIHRvb2x0aXAgaXMgbm90IGNsaXBwZWQgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93SGVscFRvb2x0aXBcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS1wb2ludGVyLWV2ZW50cy1ub25lIGNxYS16LVsxMDBdIGNxYS1ib3R0b20tWzEwMCVdIGNxYS1tYi0xIGNxYS1sZWZ0LTBcIlxuICAgICAgICAgIHJvbGU9XCJ0b29sdGlwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LXdoaXRlIGNxYS10ZXh0LWxlZnQgY3FhLXctWzMwNnB4XSBjcWEtbWF4LXctWzMwNnB4XSBjcWEtbWluLWgtWzIwcHhdIGNxYS1yb3VuZGVkLVs2cHhdIGNxYS1weS0xIGNxYS1weC0yIGNxYS1iZy1bIzBBMEEwQV0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS10ZXh0LVs4cHhdIGNxYS1icmVhay13b3Jkc1wiPlxuICAgICAgICAgICAge3sgaGVscFRvb2x0aXBUZXh0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Y3FhLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdmFyaWFudD1cInRleHRcIiBidG5TaXplPVwibWRcIlxuICAgICAgICBbdGV4dF09XCInJ1wiXG4gICAgICAgIGljb249XCJjbG9zZVwiXG4gICAgICAgIChjbGlja2VkKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLW1pbi1oLVsyOHB4XSBjcWEtbWluLXctWzI4cHhdIGNxYS1wLTAgY3FhLXRleHQtWyM2QjcyODBdIGhvdmVyOmNxYS1iZy1bI0YzRjRGNl0nXCJcbiAgICAgICAgdGl0bGU9XCJDbG9zZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxuICAgICAgPC9jcWEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIExpbmUgYmVsb3cgaGVhZGVyIChmdWxsIHdpZHRoIG9mIG1vZGFsLCBubyBzaWRlIG1hcmdpbikgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtLW14LTIgY3FhLXctW2NhbGMoMTAwJSsxcmVtKV0gY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtcHggY3FhLXctZnVsbCBjcWEtYmctWyNFNUU3RUJdXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIFRhYnM6IFBsYWluIFRleHQsIFBhcmFtZXRlciwgRW52aXJvbm1lbnQsIFJ1bnRpbWUgKGZ1bGwtd2lkdGgsIGNxYS1idXR0b24pIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtbWluLXctMCBjcWEtdGVzdC1kYXRhLW1vZGFsLXRhYnMgY3FhLWZsZXggY3FhLWZsZXgtcm93IGNxYS1wLVszLjVweF0gY3FhLWgtWzMxLjVweF0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLWJnLVsjRjNGNEY2XSBjcWEtZ2FwLTBcIiByb2xlPVwidGFibGlzdFwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHNlZ21lbnQgb2YgdGFiU2VnbWVudHNcIiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTAgY3FhLWZsZXhcIj5cbiAgICAgIDxjcWEtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5yb2xlXT1cIid0YWInXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCIoZWRpdEZvcm0uZ2V0KCdhY3RpdmVUYWInKT8udmFsdWUgPz8gYWN0aXZlVGFiKSA9PT0gc2VnbWVudC52YWx1ZVwiXG4gICAgICAgIFt0ZXh0XT1cInNlZ21lbnQubGFiZWxcIlxuICAgICAgICBbdmFyaWFudF09XCIoZWRpdEZvcm0uZ2V0KCdhY3RpdmVUYWInKT8udmFsdWUgPz8gYWN0aXZlVGFiKSA9PT0gc2VnbWVudC52YWx1ZSA/ICdmaWxsZWQnIDogJ3RleHQnXCJcbiAgICAgICAgYnRuU2l6ZT1cIm1kXCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrZWQpPVwib25UYWJDaGFuZ2Uoc2VnbWVudC52YWx1ZSlcIlxuICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiKGVkaXRGb3JtLmdldCgnYWN0aXZlVGFiJyk/LnZhbHVlID8/IGFjdGl2ZVRhYikgPT09IHNlZ21lbnQudmFsdWUgPyAnY3FhLWgtWzI1cHhdIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS10ZXh0LVsxMnB4XSBjcWEtYmctWyMzRjQzRUVdIGNxYS10ZXh0LXdoaXRlIGNxYS1mb250LW1lZGl1bScgOiAnY3FhLWgtWzI1cHhdIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS10ZXh0LVsxMnB4XSBjcWEtdGV4dC1bIzZCNzI4MF0gaG92ZXI6Y3FhLXRleHQtWyMxMTE4MjddJ1wiPlxuICAgICAgPC9jcWEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIENvbnRlbnQgcGVyIHRhYjogb25seSB0aGlzIHNlY3Rpb24gc2Nyb2xscyAob3ZlcmZsb3cgaGVyZSwgbm90IG9uIHJvb3QpLCBzbyBoZWFkZXIgdG9vbHRpcCBpcyBuZXZlciBjbGlwcGVkIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMS41IGNxYS1taW4taC0wIGNxYS1vdmVyZmxvdy15LWF1dG9cIlxuICAgIFtjbGFzcy5jcWEtZmxleC0xXT1cImFjdGl2ZVRhYiA9PT0gJ3BhcmFtZXRlcicgfHwgYWN0aXZlVGFiID09PSAnZW52aXJvbm1lbnQnIHx8IGFjdGl2ZVRhYiA9PT0gJ3J1bnRpbWUnXCI+XG4gICAgPCEtLSBQbGFpbiBUZXh0IHRhYiAoZm9ybS1ib3VuZCBsaWtlIExvb3AgU3RlcCBlZGl0Rm9ybSArIG9uRWRpdEZvcm1GaWVsZENoYW5nZSkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ3BsYWluLXRleHQnXCI+XG4gICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICBsYWJlbD1cIlZhbHVlXCJcbiAgICAgICAgW3ZhbHVlXT1cImVkaXRGb3JtLmdldCgndmFsdWUnKT8udmFsdWUgPz8gJydcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCd2YWx1ZScsICRldmVudClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cImh0dHBzOi8vZXhhbXBsZS5jb20vZGFzaGJvYXJkXCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgc2l6ZT1cIm1kXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1tLTBcIj5cbiAgICAgICAgRW50ZXIgYSBzdGF0aWMgdGV4dCB2YWx1ZSB0aGF0IHdvbid0IGNoYW5nZSBkdXJpbmcgZXhlY3V0aW9uLlxuICAgICAgPC9wPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBQYXJhbWV0ZXIgdGFiOiBWYXJpYWJsZSBMaWJyYXJ5IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVUYWIgPT09ICdwYXJhbWV0ZXInXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtbWluLWgtMCBjcWEtZmxleC0xIGNxYS1taW4taC1bMThyZW1dXCI+XG4gICAgICAgIDwhLS0gVmFyaWFibGUgTGlicmFyeSBoZWFkZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbS0wXCI+XG4gICAgICAgICAgICBQYXJhbWV0ZXJzXG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJvbkNyZWF0ZU5ld1ZhcmlhYmxlKCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLW5vLXVuZGVybGluZSBob3ZlcjpjcWEtb3BhY2l0eS05MCBjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgIENyZWF0ZSBOZXcgK1xuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gU2VhcmNoOiBib3VuZCB0byBlZGl0Rm9ybSAoc2FtZSBwYXR0ZXJuIGFzIExvb3AgU3RlcCBjb250cm9sIGJpbmRpbmcpIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICA8Y3FhLXNlYXJjaC1iYXJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIGxpYnJhcnknXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJlZGl0Rm9ybS5nZXQoJ3BhcmFtZXRlclNlYXJjaFF1ZXJ5Jyk/LnZhbHVlID8/ICcnXCJcbiAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInU2VhcmNoIGxpYnJhcnknXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblBhcmFtZXRlclNlYXJjaElucHV0KCRldmVudClcIj5cbiAgICAgICAgICA8L2NxYS1zZWFyY2gtYmFyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBQYXJhbWV0ZXIgbGlzdCAoc2Nyb2xsYWJsZSwgc2VhcmNoLWludGVncmF0ZWQgdmlhIGZpbHRlcmVkIGxpc3QgYmluZGluZykgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWluLWgtWzIwMHB4XSBjcWEtZmxleC0xIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLW1pbi1oLTAgY3FhLW92ZXJmbG93LXktYXV0b1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhcmFtZXRlckxpc3RDb25maWdcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUGFyYW1ldGVyUm93Q2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvblBhcmFtZXRlclJvd0NsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib25QYXJhbWV0ZXJSb3dDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIFtjbGFzcy5jcWEtYmctWyNEOEQ5RkNdXT1cInNlbGVjdGVkUGFyYW1ldGVySWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgW2NsYXNzLmNxYS1ib3JkZXJdPVwic2VsZWN0ZWRQYXJhbWV0ZXJJZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MuY3FhLWJvcmRlci1zb2xpZF09XCJzZWxlY3RlZFBhcmFtZXRlcklkID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5jcWEtYm9yZGVyLVsjM0Y0M0VFXV09XCJzZWxlY3RlZFBhcmFtZXRlcklkID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtdGV4dC1sZWZ0IGNxYS1yb3VuZGVkLWxnIGNxYS1wLTEgY3FhLXRyYW5zaXRpb24tY29sb3JzIGNxYS1iZy13aGl0ZSBob3ZlcjpjcWEtYmctWyNGOUZBRkJdIGZvY3VzOmNxYS1vdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpjcWEtcmluZy0yIGZvY3VzLXZpc2libGU6Y3FhLXJpbmctWyNEOEQ5RkNdIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtdGV4dC1bIzExMTgyN10gY3FhLW0tMCBjcWEtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJpdGVtLnN1YnRpdGxlXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtbS0wIGNxYS1tdC0wLjUgY3FhLXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnN1YnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtZW5kIGNxYS1nYXAtMSBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1weC0yIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS10ZXh0LVsxMHB4XSBjcWEtZm9udC1ub3JtYWwgY3FhLXdoaXRlc3BhY2Utbm93cmFwIGNxYS1iZy1bI2VmZjZmZl0gY3FhLXRleHQtWyMxNDQ3RTZdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjYzhlMGZmXVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5iYWRnZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uc2hvd0VkaXRcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcC0xIGNxYS1taW4tdy0wIGNxYS10ZXh0LVsjMTQ0N0U2XSBob3ZlcjpjcWEtYmctWyNFNUU3RUJdIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtYm9yZGVyLW5vbmUgY3FhLXJvdW5kZWQtWzZweF0gY3FhLWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhcmFtZXRlckVkaXRDbGljaygkZXZlbnQsIGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdFwiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdFwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIWNxYS13LTQgIWNxYS1oLTQgIWNxYS10ZXh0LVsxNnB4XVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhcmFtZXRlckVkaXRDbGljaygkZXZlbnQsIGl0ZW0uaWQpXCI+ZWRpdDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgKm5nSWY9XCJwYXJhbWV0ZXJMaXN0Q29uZmlnLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLW0tMCBjcWEtcHktNCBjcWEtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIE5vIHBhcmFtZXRlcnMgbWF0Y2ggeW91ciBzZWFyY2guXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBFbnZpcm9ubWVudCB0YWI6IFZhcmlhYmxlIGxpYnJhcnkgYnkgZW52aXJvbm1lbnQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ2Vudmlyb25tZW50J1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLW1pbi1oLTAgY3FhLWZsZXgtMSBjcWEtbWluLWgtWzE4cmVtXVwiPlxuICAgICAgICA8IS0tIFNlY3Rpb24gaGVhZGVyIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzExMTgyN10gY3FhLW0tMFwiPlxuICAgICAgICAgICAgRW52aXJvbm1lbnRcbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cIm9uQ3JlYXRlTmV3RW52aXJvbm1lbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS10ZXh0LVsjM0Y0M0VFXSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtbm8tdW5kZXJsaW5lIGhvdmVyOmNxYS1vcGFjaXR5LTkwIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgQ3JlYXRlIE5ldyArXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBTZWFyY2g6IGJvdW5kIHRvIGVkaXRGb3JtIChzYW1lIHBhdHRlcm4gYXMgTG9vcCBTdGVwIGNvbnRyb2wgYmluZGluZykgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxjcWEtc2VhcmNoLWJhclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggRW52aXJvbm1lbnQnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJlZGl0Rm9ybS5nZXQoJ2Vudmlyb25tZW50U2VhcmNoUXVlcnknKT8udmFsdWUgPz8gJydcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidTZWFyY2ggRW52aXJvbm1lbnQnXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkVudmlyb25tZW50U2VhcmNoSW5wdXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY3FhLXNlYXJjaC1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEVudmlyb25tZW50IGxpc3QgKHNjcm9sbGFibGUsIHNlYXJjaC1pbnRlZ3JhdGVkIHZpYSBmaWx0ZXJlZCBsaXN0IGJpbmRpbmcpIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1pbi1oLVsyMjBweF0gY3FhLWZsZXgtMSBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1taW4taC0wIGNxYS1vdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnZpcm9ubWVudExpc3RDb25maWdcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25FbnZpcm9ubWVudFNlbGVjdChpdGVtLmlkKVwiXG4gICAgICAgICAgICBbY2xhc3MuY3FhLWJnLVsjRDhEOUZDXV09XCJzZWxlY3RlZEVudmlyb25tZW50SWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgW2NsYXNzLmNxYS1ib3JkZXJdPVwic2VsZWN0ZWRFbnZpcm9ubWVudElkID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5jcWEtYm9yZGVyLXNvbGlkXT1cInNlbGVjdGVkRW52aXJvbm1lbnRJZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MuY3FhLWJvcmRlci1bIzNGNDNFRV1dPVwic2VsZWN0ZWRFbnZpcm9ubWVudElkID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtdGV4dC1sZWZ0IGNxYS1yb3VuZGVkLWxnIGNxYS1wLTEgY3FhLXRyYW5zaXRpb24tY29sb3JzIGNxYS1iZy13aGl0ZSBob3ZlcjpjcWEtYmctWyNGOUZBRkJdIGZvY3VzOmNxYS1vdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpjcWEtcmluZy0yIGZvY3VzLXZpc2libGU6Y3FhLXJpbmctWyNEOEQ5RkNdXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wXCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbS0wIGNxYS10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIml0ZW0uc3VidGl0bGVcIiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLXRleHQtWyM2QjcyODBdIGNxYS1tLTAgY3FhLW10LTAuNSBjcWEtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3VidGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1lbmQgY3FhLWdhcC0xIGNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLXB4LTIgY3FhLXJvdW5kZWQtWzhweF0gY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LW5vcm1hbCBjcWEtd2hpdGVzcGFjZS1ub3dyYXAgY3FhLWJnLVsjZWZmNmZmXSBjcWEtdGV4dC1bIzE0NDdFNl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNjOGUwZmZdXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxwICpuZ0lmPVwiZW52aXJvbm1lbnRMaXN0Q29uZmlnLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLW0tMCBjcWEtcHktNCBjcWEtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcyBtYXRjaCB5b3VyIHNlYXJjaC5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFJ1bnRpbWUgdGFiOiBkeW5hbWljIHZhbHVlIGluamVjdG9yIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVUYWIgPT09ICdydW50aW1lJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTMgY3FhLW1pbi1oLTAgY3FhLWgtZnVsbCBjcWEtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMxMTE4MjddIGNxYS1tLTAgY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICBSdW50aW1lXG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgICAgICBbdmFsdWVdPVwiZWRpdEZvcm0uZ2V0KCdydW50aW1lVmFsdWUnKT8udmFsdWUgPz8gJydcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRWRpdEZvcm1GaWVsZENoYW5nZSgncnVudGltZVZhbHVlJywgJGV2ZW50KVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cImlucHV0IHRleHRcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIHNpemU9XCJtZFwiPlxuICAgICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLXRleHQtWyM2QjcyODBdIGNxYS1tdC0xLjUgY3FhLW1iLTBcIj5cbiAgICAgICAgICAgIFZhbHVlcyByZXNvbHZlZCBkdXJpbmcgdGVzdCBleGVjdXRpb24gYmFzZWQgb24gc2Vzc2lvbiBhbmQgc3RlcCBzdGF0ZS5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFJlY29tbWVuZGVkOiBzdWdnZXN0aW9uIGNoaXBzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41XCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctNCAhY3FhLWgtNCAhY3FhLXRleHQtWzE2cHhdIGNxYS10ZXh0LVsjOUNBM0FGXVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnNjaGVkdWxlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2QjcyODBdXCI+UmVjb21tZW5kZWQ8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXN0LWRhdGEtcnVudGltZS1jaGlwcy1zY3JvbGwgY3FhLWZsZXggY3FhLWdhcC0yIGNxYS1vdmVyZmxvdy14LWF1dG8gY3FhLW1pbi13LTAgY3FhLXBiLTFcIj5cbiAgICAgICAgICAgIDxjcWEtYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzbmlwcGV0IG9mIHJ1bnRpbWVTdWdnZXN0ZWRWYWx1ZXNcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgYnRuU2l6ZT1cIm1kXCJcbiAgICAgICAgICAgICAgW3RleHRdPVwic25pcHBldFwiXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uUnVudGltZUNoaXBJbnNlcnQoc25pcHBldClcIlxuICAgICAgICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS1mbGV4LXNocmluay0wIGNxYS1weC0yIGNxYS1weS0xIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtYmctWyNGRkZGRkZdIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS13aGl0ZXNwYWNlLW5vd3JhcCdcIj5cbiAgICAgICAgICAgIDwvY3FhLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBMaW5lIGJlbG93IGNvbnRlbnQgKGZ1bGwgd2lkdGggb2YgbW9kYWwsIG5vIHNpZGUgbWFyZ2luKSAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS0tbXgtMiBjcWEtdy1bY2FsYygxMDAlKzFyZW0pXSBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtaC1weCBjcWEtdy1mdWxsIGNxYS1iZy1bI0U1RTdFQl1cIiByb2xlPVwicHJlc2VudGF0aW9uXCI+PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyOiBDYW5jZWwsIEFwcGx5IChmdWxsIHdpZHRoIGluIG9uZSByb3cpIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtZ2FwLTIgY3FhLXctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgICAgPGNxYS1idXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgYnRuU2l6ZT1cImxnXCIgW3RleHRdPVwiJ0NhbmNlbCdcIiBbZnVsbFdpZHRoXT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS10ZXh0LVsxMnB4XSBjcWEtcHktWzlweF0gY3FhLWJvcmRlci1bIzQxNDE0Nl0nXCI+PC9jcWEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwiZmlsbGVkXCIgYnRuU2l6ZT1cImxnXCIgW3RleHRdPVwiJ0FwcGx5J1wiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIChjbGlja2VkKT1cIm9uQXBwbHkoKVwiXG4gICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTJweF0gY3FhLXB5LVs5cHhdIGNxYS1ib3JkZXItWyMzRjQzRUVdJ1wiPjwvY3FhLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cIm9uRWRpdEluRGVwdGgoJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LVsjM0Y0M0VFXSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41IGNxYS1uby11bmRlcmxpbmUgaG92ZXI6Y3FhLW5vLXVuZGVybGluZSBjcWEtc2VsZi1jZW50ZXJcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy00ICFjcWEtaC00ICFjcWEtdGV4dC1bMTZweF1cIj5vcGVuX2luX25ldzwvbWF0LWljb24+XG4gICAgICBFZGl0IGluIGRlcHRoIChvcGVuIGRldGFpbGVkIHJpZ2h0IHBhbmVsKVxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
380
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kYXRhLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvdGVzdC1kYXRhLW1vZGFsL3Rlc3QtZGF0YS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtZGF0YS1tb2RhbC90ZXN0LWRhdGEtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDZCQUE2QixHQUc5QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RSxPQUFPLEVBQ0wsc0JBQXNCLEdBRXZCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBRzNDLE1BQU0sWUFBWSxHQUFHO0lBQ25CLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQzVDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQzFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO0lBQzlDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0NBQ3ZDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFxRDtJQUM5RSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFB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Qjs7MEJBQzFCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9COzRDQWpEaEMsS0FBSztzQkFBZCxNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFLRSxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFpQkcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZywgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vZHluYW1pYy1zZWxlY3QvZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRFU1RfREFUQV9NT0RBTF9EQVRBLFxuICBURVNUX0RBVEFfTU9EQUxfRURJVF9JTl9ERVBUSCxcbiAgVGVzdERhdGFNb2RhbERhdGEsXG4gIFRlc3REYXRhTW9kYWxUYWIsXG59IGZyb20gJy4vdGVzdC1kYXRhLW1vZGFsLWRhdGEnO1xuaW1wb3J0IHsgVEVTVF9EQVRBX01PREFMX1JFRiwgVGVzdERhdGFNb2RhbFJlZiB9IGZyb20gJy4vdGVzdC1kYXRhLW1vZGFsLXJlZic7XG5pbXBvcnQgeyBUZXN0RGF0YU1vZGFsUmVzdWx0IH0gZnJvbSAnLi90ZXN0LWRhdGEtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQge1xuICBNT0NLX0VOVklST05NRU5UX0lURU1TLFxuICBFbnZpcm9ubWVudEl0ZW0sXG59IGZyb20gJy4vdGVzdC1kYXRhLW1vZGFsLWVudmlyb25tZW50Lm1vZGVsJztcbmltcG9ydCB7XG4gIE1PQ0tfUEFSQU1FVEVSUyxcbiAgUGFyYW1ldGVySXRlbSxcbiAgUGFyYW1ldGVyU2NvcGVGaWx0ZXIsXG59IGZyb20gJy4vdGVzdC1kYXRhLW1vZGFsLXBhcmFtZXRlci5tb2RlbCc7XG5pbXBvcnQgeyBDcWFMaXN0SXRlbUNvbmZpZyB9IGZyb20gJy4uLy4uL2l0ZW0tbGlzdC9pdGVtLWxpc3QubW9kZWwnO1xuXG5jb25zdCBUQUJfU0VHTUVOVFMgPSBbXG4gIHsgbGFiZWw6ICdQbGFpbiBUZXh0JywgdmFsdWU6ICdwbGFpbi10ZXh0JyB9LFxuICB7IGxhYmVsOiAnUGFyYW1ldGVyJywgdmFsdWU6ICdwYXJhbWV0ZXInIH0sXG4gIHsgbGFiZWw6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiAnZW52aXJvbm1lbnQnIH0sXG4gIHsgbGFiZWw6ICdSdW50aW1lJywgdmFsdWU6ICdydW50aW1lJyB9LFxuXTtcblxuY29uc3QgUEFSQU1FVEVSX0ZJTFRFUl9UQUJTOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBQYXJhbWV0ZXJTY29wZUZpbHRlciB9W10gPSBbXG4gIHsgbGFiZWw6ICdBbGwnLCB2YWx1ZTogJ2FsbCcgfSxcbiAgeyBsYWJlbDogJ0dsb2JhbCcsIHZhbHVlOiAnZ2xvYmFsJyB9LFxuICB7IGxhYmVsOiAnTG9jYWwnLCB2YWx1ZTogJ2xvY2FsJyB9LFxuXTtcblxuLyoqIE1vY2sgcnVudGltZSB2YXJpYWJsZSBzdWdnZXN0aW9ucyAocmVwbGFjZSB3aXRoIEFQSSB3aGVuIGludGVncmF0aW5nKS4gKi9cbmNvbnN0IFJVTlRJTUVfU1VHR0VTVEVEX1ZBTFVFUyA9IFtcbiAgJ3J1bnRpbWUuTWF4V2FpdFRpbWUnLFxuICAncnVudGltZS5zZXNzaW9uX2lkJyxcbiAgJ3J1bnRpbWUuYXV0aF90b2tlbicsXG4gICdydW50aW1lLnN0ZXBfaW5kZXgnLFxuICAncnVudGltZS50aW1lc3RhbXAnLFxuICAncnVudGltZS50ZXN0X25hbWUnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRlc3QtZGF0YS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0LWRhdGEtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0RGF0YU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCkgYXBwbHkgPSBuZXcgRXZlbnRFbWl0dGVyPHt2YWx1ZTogc3RyaW5nLCBhY3RpdmVUYWI6IFRlc3REYXRhTW9kYWxUYWJ9PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZWRpdEluRGVwdGggPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwYXJhbWV0ZXJDcmVhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwYXJhbWV0ZXJFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBlbnZpcm9ubWVudENyZWF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGVudmlyb25tZW50RWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IHRhYlNlZ21lbnRzID0gVEFCX1NFR01FTlRTO1xuICByZWFkb25seSBwYXJhbWV0ZXJGaWx0ZXJUYWJzID0gUEFSQU1FVEVSX0ZJTFRFUl9UQUJTO1xuICAvKiogUGFyYW1ldGVyIGxpc3QgZnJvbSBpbnB1dCwgZmFsbHMgYmFjayB0byBtb2NrIGRhdGEgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASW5wdXQoKSBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJJdGVtW10gPSBNT0NLX1BBUkFNRVRFUlM7XG4gIC8qKiBFbnZpcm9ubWVudCBsaXN0IGZyb20gaW5wdXQsIGZhbGxzIGJhY2sgdG8gbW9jayBkYXRhIGlmIG5vdCBwcm92aWRlZC4gKi9cbiAgQElucHV0KCkgZW52aXJvbm1lbnRJdGVtczogRW52aXJvbm1lbnRJdGVtW10gPSBNT0NLX0VOVklST05NRU5UX0lURU1TO1xuICAvKiogUnVudGltZSB0YWI6IHN1Z2dlc3RlZCB2YXJpYWJsZSBjaGlwcy4gKi9cbiAgcmVhZG9ubHkgcnVudGltZVN1Z2dlc3RlZFZhbHVlczogcmVhZG9ubHkgc3RyaW5nW10gPSBSVU5USU1FX1NVR0dFU1RFRF9WQUxVRVM7XG5cbiAgLyoqIEZvcm0gZm9yIGFsbCBtb2RhbCBjb250cm9scyAoc2FtZSBwYXR0ZXJuIGFzIExvb3AgU3RlcCBlZGl0Rm9ybSkuICovXG4gIGVkaXRGb3JtITogRm9ybUdyb3VwO1xuXG4gIC8qKiBDYWNoZWQgc2VsZWN0IGNvbmZpZ3MgKHN0YWJsZSByZWZzLCBzYW1lIG5hbWluZyBhcyBMb29wIFN0ZXA6IHh4eFNlbGVjdENvbmZpZykuICovXG4gIGFjdGl2ZVRhYlNlbGVjdENvbmZpZyE6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZztcbiAgcGFyYW1ldGVyU2NvcGVGaWx0ZXJTZWxlY3RDb25maWchOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWc7XG5cbiAgLyoqIExvY2FsIGNvcHkgb2YgZm9ybSB2YWx1ZSBmb3IgQ2FuY2VsIHJldmVydCAoc2FtZSBwYXR0ZXJuIGFzIExvb3AgU3RlcCBlZGl0U25hcHNob3QpLiAqL1xuICBwcml2YXRlIGVkaXRTbmFwc2hvdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgLyoqIFByZXNlcnZlIHVzZXItZW50ZXJlZCBwbGFpbiB0ZXh0IGluZGVwZW5kZW50bHkgZnJvbSBwYXJhbWV0ZXIvZW52aXJvbm1lbnQvcnVudGltZSBzZWxlY3Rpb25zLiAqL1xuICBwcml2YXRlIHBsYWluVGV4dFZhbHVlID0gJyc7XG5cbiAgLyoqIFN0YXRlIGRlcml2ZWQgZnJvbSBjb25maWcvZWRpdEZvcm0gZm9yIHRlbXBsYXRlIGFuZCBnZXR0ZXJzIChtaXJyb3JzIExvb3AgU3RlcCBpbnB1dHMpLiAqL1xuICBASW5wdXQoKSBhY3RpdmVUYWI6IFRlc3REYXRhTW9kYWxUYWIgPSAncGxhaW4tdGV4dCc7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIGhlbHBVcmwgPSAnJztcbiAgaGVscFRvb2x0aXBUZXh0ID0gJ05vdCBzdXJlIHdoYXQgdG8gZG8/IENsaWNrIHRvIGdvIHRvIG91ciBkZXRhaWxlZCBzdGVwIGNyZWF0aW9uIGRvY3VtZW50YXRpb24nO1xuICBzaG93SGVscFRvb2x0aXAgPSBmYWxzZTtcblxuICBwYXJhbWV0ZXJTY29wZUZpbHRlcjogUGFyYW1ldGVyU2NvcGVGaWx0ZXIgPSAnYWxsJztcbiAgcGFyYW1ldGVyU2VhcmNoUXVlcnkgPSAnJztcbiAgc2VsZWN0ZWRQYXJhbWV0ZXJJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZW52aXJvbm1lbnRTZWFyY2hRdWVyeSA9ICcnO1xuICBzZWxlY3RlZEVudmlyb25tZW50SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHJ1bnRpbWVWYWx1ZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KFRFU1RfREFUQV9NT0RBTF9SRUYpIHByaXZhdGUgcmVmOiBUZXN0RGF0YU1vZGFsUmVmPFRlc3REYXRhTW9kYWxSZXN1bHQ+LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEVTVF9EQVRBX01PREFMX0RBVEEpIGRhdGE/OiBUZXN0RGF0YU1vZGFsRGF0YVxuICApIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGRhdGEudmFsdWUgPz8gJyc7XG4gICAgICB0aGlzLmhlbHBVcmwgPSBkYXRhLmhlbHBVcmwgPz8gJyc7XG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9IChkYXRhLmFjdGl2ZVRhYiA/PyAncGxhaW4tdGV4dCcpIGFzIFRlc3REYXRhTW9kYWxUYWI7XG4gICAgICB0aGlzLnBhcmFtZXRlclNjb3BlRmlsdGVyID0gZGF0YS5wYXJhbWV0ZXJTY29wZUZpbHRlciA/PyAnYWxsJztcbiAgICAgIHRoaXMucGFyYW1ldGVyU2VhcmNoUXVlcnkgPSBkYXRhLnBhcmFtZXRlclNlYXJjaFF1ZXJ5ID8/ICcnO1xuICAgICAgdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkID0gZGF0YS5zZWxlY3RlZFBhcmFtZXRlcklkID8/IG51bGw7XG4gICAgICB0aGlzLmVudmlyb25tZW50U2VhcmNoUXVlcnkgPSBkYXRhLmVudmlyb25tZW50U2VhcmNoUXVlcnkgPz8gJyc7XG4gICAgICB0aGlzLnNlbGVjdGVkRW52aXJvbm1lbnRJZCA9IGRhdGEuc2VsZWN0ZWRFbnZpcm9ubWVudElkID8/IG51bGw7XG4gICAgICB0aGlzLnJ1bnRpbWVWYWx1ZSA9IGRhdGEucnVudGltZVZhbHVlID8/ICcnO1xuICAgICAgLy8gU2V0IHBhcmFtZXRlcnMgYW5kIGVudmlyb25tZW50SXRlbXMgZnJvbSBkYXRhIGlmIHByb3ZpZGVkXG4gICAgICBpZiAoZGF0YS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gZGF0YS5wYXJhbWV0ZXJzO1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEuZW52aXJvbm1lbnRJdGVtcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnRJdGVtcyA9IGRhdGEuZW52aXJvbm1lbnRJdGVtcztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wbGFpblRleHRWYWx1ZSA9IHRoaXMuYWN0aXZlVGFiID09PSAncGxhaW4tdGV4dCcgPyAodGhpcy52YWx1ZSA/PyAnJykgOiAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRFZGl0Rm9ybSgpO1xuICAgIHRoaXMuYnVpbGRTZWxlY3RDb25maWdzKCk7XG4gICAgdGhpcy5lZGl0U25hcHNob3QgPSB7IC4uLnRoaXMuZWRpdEZvcm0udmFsdWUgfTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWRpdEZvcm0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snYWN0aXZlVGFiJ10pIHtcbiAgICAgIHRoaXMuZWRpdEZvcm0uZ2V0KCdhY3RpdmVUYWInKT8uc2V0VmFsdWUodGhpcy5hY3RpdmVUYWIgPz8gJ3BsYWluLXRleHQnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddKSB7XG4gICAgICB0aGlzLmVkaXRGb3JtLmdldCgndmFsdWUnKT8uc2V0VmFsdWUodGhpcy52YWx1ZSA/PyAnJywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5wbGFpblRleHRWYWx1ZSA9IHRoaXMuYWN0aXZlVGFiID09PSAncGxhaW4tdGV4dCcgPyAodGhpcy52YWx1ZSA/PyAnJykgOiAnJztcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2hlbHBVcmwnXSkge1xuICAgICAgdGhpcy5oZWxwVXJsID0gdGhpcy5oZWxwVXJsID8/ICcnO1xuICAgIH1cblxuICAgIHRoaXMuc3luY1N0YXRlRnJvbUZvcm0oKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBCdWlsZCBmb3JtIHdpdGggYWxsIGNvbnRyb2wgdmFsdWVzIChzYW1lIHBhdHRlcm4gYXMgTG9vcCBTdGVwIGJ1aWxkRWRpdEZvcm0pLiAqL1xuICBwcml2YXRlIGJ1aWxkRWRpdEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdmFsdWU6IFt0aGlzLnZhbHVlID8/ICcnXSxcbiAgICAgIGFjdGl2ZVRhYjogW3RoaXMuYWN0aXZlVGFiID8/ICdwbGFpbi10ZXh0J10sXG4gICAgICBwYXJhbWV0ZXJTY29wZUZpbHRlcjogW3RoaXMucGFyYW1ldGVyU2NvcGVGaWx0ZXIgPz8gJ2FsbCddLFxuICAgICAgcGFyYW1ldGVyU2VhcmNoUXVlcnk6IFt0aGlzLnBhcmFtZXRlclNlYXJjaFF1ZXJ5ID8/ICcnXSxcbiAgICAgIHNlbGVjdGVkUGFyYW1ldGVySWQ6IFt0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQgPz8gbnVsbF0sXG4gICAgICBlbnZpcm9ubWVudFNlYXJjaFF1ZXJ5OiBbdGhpcy5lbnZpcm9ubWVudFNlYXJjaFF1ZXJ5ID8/ICcnXSxcbiAgICAgIHNlbGVjdGVkRW52aXJvbm1lbnRJZDogW3RoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkID8/IG51bGxdLFxuICAgICAgcnVudGltZVZhbHVlOiBbdGhpcy5ydW50aW1lVmFsdWUgPz8gJyddLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEJ1aWxkIHNlbGVjdCBjb25maWdzIG9uY2UgKHNhbWUgcGF0dGVybiBhcyBMb29wIFN0ZXAgYnVpbGRTZWxlY3RDb25maWdzKS4gKi9cbiAgcHJpdmF0ZSBidWlsZFNlbGVjdENvbmZpZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgdGFiT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBUQUJfU0VHTUVOVFMubWFwKChzKSA9PiAoe1xuICAgICAgaWQ6IHMudmFsdWUsXG4gICAgICB2YWx1ZTogcy52YWx1ZSxcbiAgICAgIG5hbWU6IHMubGFiZWwsXG4gICAgICBsYWJlbDogcy5sYWJlbCxcbiAgICB9KSk7XG4gICAgY29uc3QgZmlsdGVyT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBQQVJBTUVURVJfRklMVEVSX1RBQlMubWFwKChzKSA9PiAoe1xuICAgICAgaWQ6IHMudmFsdWUsXG4gICAgICB2YWx1ZTogcy52YWx1ZSxcbiAgICAgIG5hbWU6IHMubGFiZWwsXG4gICAgICBsYWJlbDogcy5sYWJlbCxcbiAgICB9KSk7XG4gICAgdGhpcy5hY3RpdmVUYWJTZWxlY3RDb25maWcgPSB7XG4gICAgICBrZXk6ICdhY3RpdmVUYWInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdUYWInLFxuICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB0YWJPcHRpb25zLFxuICAgIH07XG4gICAgdGhpcy5wYXJhbWV0ZXJTY29wZUZpbHRlclNlbGVjdENvbmZpZyA9IHtcbiAgICAgIGtleTogJ3BhcmFtZXRlclNjb3BlRmlsdGVyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2NvcGUnLFxuICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICBvcHRpb25zOiBmaWx0ZXJPcHRpb25zLFxuICAgIH07XG4gIH1cblxuICAvKiogVXBkYXRlIGZvcm0gY29udHJvbCBhbmQgc3luYyBjb21wb25lbnQgc3RhdGUgKHNhbWUgcGF0dGVybiBhcyBMb29wIFN0ZXAgb25FZGl0Rm9ybUZpZWxkQ2hhbmdlKS4gKi9cbiAgb25FZGl0Rm9ybUZpZWxkQ2hhbmdlKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0Rm9ybS5nZXQoY29udHJvbE5hbWUpPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKGNvbnRyb2xOYW1lID09PSAndmFsdWUnICYmIHRoaXMuYWN0aXZlVGFiID09PSAncGxhaW4tdGV4dCcpIHtcbiAgICAgIHRoaXMucGxhaW5UZXh0VmFsdWUgPSBTdHJpbmcodmFsdWUgPz8gJycpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNTdGF0ZUZyb21Gb3JtKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogU3luYyBjb21wb25lbnQgc3RhdGUgZnJvbSBlZGl0Rm9ybSBzbyBnZXR0ZXJzIChlLmcuIGZpbHRlcmVkUGFyYW1ldGVycykgc3RheSBjb3JyZWN0LiAqL1xuICBwcml2YXRlIHN5bmNTdGF0ZUZyb21Gb3JtKCk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB0aGlzLmVkaXRGb3JtLnZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2LnZhbHVlID8/ICcnO1xuICAgIHRoaXMuYWN0aXZlVGFiID0gKHYuYWN0aXZlVGFiID8/ICdwbGFpbi10ZXh0JykgYXMgVGVzdERhdGFNb2RhbFRhYjtcbiAgICB0aGlzLnBhcmFtZXRlclNjb3BlRmlsdGVyID0gKHYucGFyYW1ldGVyU2NvcGVGaWx0ZXIgPz8gJ2FsbCcpIGFzIFBhcmFtZXRlclNjb3BlRmlsdGVyO1xuICAgIHRoaXMucGFyYW1ldGVyU2VhcmNoUXVlcnkgPSB2LnBhcmFtZXRlclNlYXJjaFF1ZXJ5ID8/ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRQYXJhbWV0ZXJJZCA9IHYuc2VsZWN0ZWRQYXJhbWV0ZXJJZCA/PyBudWxsO1xuICAgIHRoaXMuZW52aXJvbm1lbnRTZWFyY2hRdWVyeSA9IHYuZW52aXJvbm1lbnRTZWFyY2hRdWVyeSA/PyAnJztcbiAgICB0aGlzLnNlbGVjdGVkRW52aXJvbm1lbnRJZCA9IHYuc2VsZWN0ZWRFbnZpcm9ubWVudElkID8/IG51bGw7XG4gICAgdGhpcy5ydW50aW1lVmFsdWUgPSB2LnJ1bnRpbWVWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIC8qKiBGaWx0ZXJlZCBwYXJhbWV0ZXJzIGJ5IHNjb3BlIGFuZCBzZWFyY2ggKFBhcmFtZXRlciB0YWIpLiAqL1xuICBnZXQgZmlsdGVyZWRQYXJhbWV0ZXJzKCk6IFBhcmFtZXRlckl0ZW1bXSB7XG4gICAgbGV0IGxpc3QgPSB0aGlzLnBhcmFtZXRlcnM7XG4gICAgaWYgKHRoaXMucGFyYW1ldGVyU2NvcGVGaWx0ZXIgPT09ICdnbG9iYWwnKSB7XG4gICAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKHApID0+IHAuc2NvcGUgPT09ICdHbG9iYWwnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFyYW1ldGVyU2NvcGVGaWx0ZXIgPT09ICdsb2NhbCcpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmZpbHRlcigocCkgPT4gcC5zY29wZSA9PT0gJ0xvY2FsJyk7XG4gICAgfVxuICAgIGNvbnN0IHEgPSB0aGlzLnBhcmFtZXRlclNlYXJjaFF1ZXJ5LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChxKSB7XG4gICAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKHApID0+IHAubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cblxuICAvKiogRmlsdGVyZWQgZW52aXJvbm1lbnQgaXRlbXMgYnkgc2VhcmNoIChFbnZpcm9ubWVudCB0YWIpLiAqL1xuICBnZXQgZmlsdGVyZWRFbnZpcm9ubWVudHMoKTogRW52aXJvbm1lbnRJdGVtW10ge1xuICAgIGNvbnN0IHEgPSB0aGlzLmVudmlyb25tZW50U2VhcmNoUXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFxKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudEl0ZW1zO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudEl0ZW1zLmZpbHRlcihcbiAgICAgIChlKSA9PlxuICAgICAgICBlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSB8fCBlLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSlcbiAgICApO1xuICB9XG5cbiAgLyoqIFBhcmFtZXRlciB0YWI6IGxpc3QgY29uZmlnIGZvciBjcWEtaXRlbS1saXN0IChzZWFyY2gtZnJpZW5kbHk6IGJpbmQgZmlsdGVyZWQgbGlzdCkuICovXG4gIGdldCBwYXJhbWV0ZXJMaXN0Q29uZmlnKCk6IENxYUxpc3RJdGVtQ29uZmlnW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkUGFyYW1ldGVycy5tYXAoKHApID0+ICh7XG4gICAgICBpZDogcC5pZCxcbiAgICAgIHRpdGxlOiBwLm5hbWUsXG4gICAgICBzdWJ0aXRsZTogcC52YWx1ZSxcbiAgICAgIGJhZGdlOiBwLnNjb3BlLFxuICAgICAgc2hvd0VkaXQ6IHRoaXMuc2VsZWN0ZWRQYXJhbWV0ZXJJZCA9PT0gcC5pZCxcbiAgICB9KSk7XG4gIH1cblxuICAvKiogRW52aXJvbm1lbnQgdGFiOiBsaXN0IGNvbmZpZyBmb3IgY3FhLWl0ZW0tbGlzdC4gKi9cbiAgZ2V0IGVudmlyb25tZW50TGlzdENvbmZpZygpOiBDcWFMaXN0SXRlbUNvbmZpZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEVudmlyb25tZW50cy5tYXAoKGUpID0+ICh7XG4gICAgICBpZDogZS5pZCxcbiAgICAgIHRpdGxlOiBlLm5hbWUsXG4gICAgICBzdWJ0aXRsZTogYFZhbHVlOiAke2UudmFsdWV9YCxcbiAgICAgIGJhZGdlOiBlLmVudmlyb25tZW50LFxuICAgICAgc2hvd0VkaXQ6IHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkID09PSBlLmlkICYmIChlLmVkaXRhYmxlID8/IHRydWUpLFxuICAgIH0pKTtcbiAgfVxuXG4gIG9uVGFiQ2hhbmdlKHRhYlZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09ICdwbGFpbi10ZXh0Jykge1xuICAgICAgdGhpcy5wbGFpblRleHRWYWx1ZSA9IHRoaXMuZWRpdEZvcm0uZ2V0KCd2YWx1ZScpPy52YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ2FjdGl2ZVRhYicsIHRhYlZhbHVlKTtcbiAgICBpZiAodGFiVmFsdWUgPT09ICdwbGFpbi10ZXh0Jykge1xuICAgICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3ZhbHVlJywgdGhpcy5wbGFpblRleHRWYWx1ZSA/PyAnJyk7XG4gICAgfVxuICB9XG5cbiAgb25QYXJhbWV0ZXJTY29wZUZpbHRlckNoYW5nZShmaWx0ZXI6IFBhcmFtZXRlclNjb3BlRmlsdGVyKTogdm9pZCB7XG4gICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3BhcmFtZXRlclNjb3BlRmlsdGVyJywgZmlsdGVyKTtcbiAgfVxuXG4gIG9uUGFyYW1ldGVyU2VhcmNoSW5wdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCdwYXJhbWV0ZXJTZWFyY2hRdWVyeScsIHZhbHVlKTtcbiAgfVxuXG4gIG9uUGFyYW1ldGVyU2VsZWN0KHBhcmFtSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtID0gdGhpcy5wYXJhbWV0ZXJzLmZpbmQoKHApID0+IHAuaWQgPT09IHBhcmFtSWQpO1xuICAgIGlmIChwYXJhbSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkID0gdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkID09PSBwYXJhbS5pZCA/IG51bGwgOiBwYXJhbS5pZDtcbiAgICAgIHRoaXMub25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCdzZWxlY3RlZFBhcmFtZXRlcklkJywgdGhpcy5zZWxlY3RlZFBhcmFtZXRlcklkKTtcbiAgICAgIHRoaXMub25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCd2YWx1ZScsIHBhcmFtLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIYW5kbGUgcm93IGNsaWNrIChzZWxlY3QgcGFyYW1ldGVyKS4gRWRpdCBidXR0b24gdXNlcyBvblBhcmFtZXRlckVkaXRDbGljayB0byBhdm9pZCB0cmlnZ2VyaW5nIHRoaXMuICovXG4gIG9uUGFyYW1ldGVyUm93Q2xpY2soZXZlbnQ6IEV2ZW50LCBpdGVtOiB7IGlkOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGFyZ2V0LmNsb3Nlc3QoJ2J1dHRvbiwgbWF0LWljb24sIFthcmlhLWxhYmVsPVwiRWRpdFwiXScpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub25QYXJhbWV0ZXJTZWxlY3QoaXRlbS5pZCk7XG4gIH1cblxuICAvKiogSGFuZGxlIEVkaXQgYnV0dG9uIGNsaWNrIC0gc3RvcCBwcm9wYWdhdGlvbiBhbmQgZW1pdCBzbyBwYXJlbnQgY2FuIG5hdmlnYXRlLiAqL1xuICBvblBhcmFtZXRlckVkaXRDbGljayhldmVudDogTW91c2VFdmVudCwgcGFyYW1JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9uUGFyYW1ldGVyRWRpdChwYXJhbUlkKTtcbiAgfVxuXG4gIG9uUGFyYW1ldGVyRWRpdChwYXJhbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtZXRlckVkaXQuZW1pdChwYXJhbUlkKTtcbiAgfVxuXG4gIG9uQ3JlYXRlTmV3VmFyaWFibGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnBhcmFtZXRlckNyZWF0ZS5lbWl0KCk7XG4gIH1cblxuICBvbkVudmlyb25tZW50U2VhcmNoSW5wdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCdlbnZpcm9ubWVudFNlYXJjaFF1ZXJ5JywgdmFsdWUpO1xuICB9XG5cbiAgb25FbnZpcm9ubWVudFNlbGVjdChpdGVtSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmVudmlyb25tZW50SXRlbXMuZmluZCgoZSkgPT4gZS5pZCA9PT0gaXRlbUlkKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEVudmlyb25tZW50SWQgPVxuICAgICAgICB0aGlzLnNlbGVjdGVkRW52aXJvbm1lbnRJZCA9PT0gaXRlbS5pZCA/IG51bGwgOiBpdGVtLmlkO1xuICAgICAgdGhpcy5vbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3NlbGVjdGVkRW52aXJvbm1lbnRJZCcsIHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkKTtcbiAgICAgIHRoaXMub25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCd2YWx1ZScsIGl0ZW0ubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgb25FbnZpcm9ubWVudEVkaXQoaXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVudmlyb25tZW50RWRpdC5lbWl0KGl0ZW1JZCk7XG4gIH1cblxuICBvbkNyZWF0ZU5ld0Vudmlyb25tZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5lbnZpcm9ubWVudENyZWF0ZS5lbWl0KCk7XG4gIH1cblxuICAvKiogUnVudGltZSB0YWI6IHJlcGxhY2UgdGhlIHJ1bnRpbWUgaW5wdXQgd2l0aCB0aGUgc2VsZWN0ZWQgc3VnZ2VzdGlvbi4gKi9cbiAgb25SdW50aW1lQ2hpcEluc2VydChzbmlwcGV0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9uRWRpdEZvcm1GaWVsZENoYW5nZSgncnVudGltZVZhbHVlJywgc25pcHBldCk7XG4gIH1cblxuICBvbkFwcGx5KCk6IHZvaWQge1xuICAgIHRoaXMuc3luY1N0YXRlRnJvbUZvcm0oKTtcbiAgICBsZXQgdmFsdWVUb0FwcGx5ID0gdGhpcy5hY3RpdmVUYWIgPT09ICdydW50aW1lJyA/IHRoaXMucnVudGltZVZhbHVlIDogdGhpcy52YWx1ZTtcblxuICAgIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BhcmFtZXRlcicpIHtcbiAgICAgIHZhbHVlVG9BcHBseSA9IHRoaXMuc2VsZWN0ZWRQYXJhbWV0ZXJJZCA/IHRoaXMucGFyYW1ldGVycy5maW5kKChwKSA9PiBwLmlkID09PSB0aGlzLnNlbGVjdGVkUGFyYW1ldGVySWQpPy5uYW1lID8/ICcnIDogJyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ2Vudmlyb25tZW50Jykge1xuICAgICAgdmFsdWVUb0FwcGx5ID0gdGhpcy5zZWxlY3RlZEVudmlyb25tZW50SWQgPyB0aGlzLmVudmlyb25tZW50SXRlbXMuZmluZCgoZSkgPT4gZS5pZCA9PT0gdGhpcy5zZWxlY3RlZEVudmlyb25tZW50SWQpPy5uYW1lID8/ICcnIDogJyc7XG4gICAgfVxuXG4gICAgLy8gV3JhcCB2YWx1ZVRvQXBwbHkgYmFzZWQgb24gYWN0aXZlIHRhYlxuICAgIGlmICh0aGlzLmFjdGl2ZVRhYiA9PT0gJ3BhcmFtZXRlcicgJiYgdmFsdWVUb0FwcGx5KSB7XG4gICAgICB2YWx1ZVRvQXBwbHkgPSBgQHwke3ZhbHVlVG9BcHBseX18YDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVGFiID09PSAncnVudGltZScgJiYgdmFsdWVUb0FwcGx5KSB7XG4gICAgICB2YWx1ZVRvQXBwbHkgPSBgJHwke3ZhbHVlVG9BcHBseX18YDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVGFiID09PSAnZW52aXJvbm1lbnQnICYmIHZhbHVlVG9BcHBseSkge1xuICAgICAgdmFsdWVUb0FwcGx5ID0gYCp8JHt2YWx1ZVRvQXBwbHl9fGA7XG4gICAgfVxuICAgIC8vIHBsYWluLXRleHQgdGFiOiBubyB3cmFwcGluZywgdXNlIHZhbHVlIGFzIGlzXG5cbiAgICAvLyBCdWlsZCByZXN1bHQgd2l0aCBvbmx5IHRoZSBhY3RpdmUgdGFiJ3MgZGF0YSwgY2xlYXIgb3RoZXIgdGFicycgZGF0YVxuICAgIGNvbnN0IHJlc3VsdDogVGVzdERhdGFNb2RhbERhdGEgPSB7XG4gICAgICB2YWx1ZTogdmFsdWVUb0FwcGx5LFxuICAgICAgYWN0aXZlVGFiOiB0aGlzLmFjdGl2ZVRhYixcbiAgICAgIC8vIE9ubHkgaW5jbHVkZSBwYXJhbWV0ZXIgZGF0YSBpZiBwYXJhbWV0ZXIgdGFiIGlzIGFjdGl2ZVxuICAgICAgcGFyYW1ldGVyU2NvcGVGaWx0ZXI6IHRoaXMuYWN0aXZlVGFiID09PSAncGFyYW1ldGVyJyA/IHRoaXMucGFyYW1ldGVyU2NvcGVGaWx0ZXIgOiB1bmRlZmluZWQsXG4gICAgICBwYXJhbWV0ZXJTZWFyY2hRdWVyeTogdGhpcy5hY3RpdmVUYWIgPT09ICdwYXJhbWV0ZXInID8gdGhpcy5wYXJhbWV0ZXJTZWFyY2hRdWVyeSA6IHVuZGVmaW5lZCxcbiAgICAgIHNlbGVjdGVkUGFyYW1ldGVySWQ6IHRoaXMuYWN0aXZlVGFiID09PSAncGFyYW1ldGVyJyA/IHRoaXMuc2VsZWN0ZWRQYXJhbWV0ZXJJZCA6IHVuZGVmaW5lZCxcbiAgICAgIC8vIE9ubHkgaW5jbHVkZSBlbnZpcm9ubWVudCBkYXRhIGlmIGVudmlyb25tZW50IHRhYiBpcyBhY3RpdmVcbiAgICAgIGVudmlyb25tZW50U2VhcmNoUXVlcnk6IHRoaXMuYWN0aXZlVGFiID09PSAnZW52aXJvbm1lbnQnID8gdGhpcy5lbnZpcm9ubWVudFNlYXJjaFF1ZXJ5IDogdW5kZWZpbmVkLFxuICAgICAgc2VsZWN0ZWRFbnZpcm9ubWVudElkOiB0aGlzLmFjdGl2ZVRhYiA9PT0gJ2Vudmlyb25tZW50JyA/IHRoaXMuc2VsZWN0ZWRFbnZpcm9ubWVudElkIDogdW5kZWZpbmVkLFxuICAgICAgLy8gT25seSBpbmNsdWRlIHJ1bnRpbWUgZGF0YSBpZiBydW50aW1lIHRhYiBpcyBhY3RpdmVcbiAgICAgIHJ1bnRpbWVWYWx1ZTogdGhpcy5hY3RpdmVUYWIgPT09ICdydW50aW1lJyA/IHRoaXMucnVudGltZVZhbHVlIDogdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICB0aGlzLmFwcGx5LmVtaXQoe3ZhbHVlOiB2YWx1ZVRvQXBwbHksIGFjdGl2ZVRhYjogdGhpcy5hY3RpdmVUYWIgYXMgVGVzdERhdGFNb2RhbFRhYn0pO1xuICAgIHRoaXMucmVmLmNsb3NlKHJlc3VsdCk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRGb3JtLnBhdGNoVmFsdWUodGhpcy5lZGl0U25hcHNob3QpO1xuICAgIHRoaXMuc3luY1N0YXRlRnJvbUZvcm0oKTtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgdGhpcy5yZWYuY2xvc2UodW5kZWZpbmVkKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5vbkNhbmNlbCgpO1xuICB9XG5cbiAgb25FZGl0SW5EZXB0aChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuZWRpdEluRGVwdGguZW1pdCgpO1xuICAgIHRoaXMucmVmLmNsb3NlKFRFU1RfREFUQV9NT0RBTF9FRElUX0lOX0RFUFRIIGFzIGFueSk7XG4gIH1cblxuICBvbkhlbHAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGVscFVybCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMuaGVscFVybCwgJ19ibGFuaycpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bMTJweF0gY3FhLXNoYWRvdy1sZyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXctWzUwMHB4XSBjcWEtbWF4LWgtWzc3dmhdIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLVsxMnB4XSBjcWEtcC0yIGNxYS1ib3gtYm9yZGVyIGNxYS1taW4taC0wXCI+XG4gIDwhLS0gSGVhZGVyOiB0aXRsZSBsZWZ0OyBOZWVkIGhlbHA/ICsgY2xvc2UgaWNvbiByaWdodCAobm8gb3ZlcmZsb3cgaGVyZSBzbyB0b29sdGlwIGlzIG5vdCBjbGlwcGVkKSAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LXNocmluay0wIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLXB4LTRcIj5cbiAgICA8aDIgY2xhc3M9XCJjcWEtdGV4dC1bMTZweF0gY3FhLWxlYWRpbmctWzI0cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtWyMxMTE4MjddIGNxYS1tLTAgY3FhLWZvbnQtWzYwMF1cIj5cbiAgICAgIFRlc3QgRGF0YVxuICAgIDwvaDI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1taW4taC1bMjhweF1cIj5cbiAgICAgIDwhLS0gTmVlZCBoZWxwPyB3aXRoIGN1c3RvbSB0b29sdGlwOiBzaG93IGJlbG93IHRyaWdnZXIgc28gaXQgaXMgbm90IGNsaXBwZWQgYnkgbW9kYWwgb3ZlcmZsb3cteS1hdXRvIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1yZWxhdGl2ZSBjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cInNob3dIZWxwVG9vbHRpcCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJzaG93SGVscFRvb2x0aXAgPSBmYWxzZVwiPlxuICAgICAgICA8YSAqbmdJZj1cImhlbHBVcmxcIiBocmVmPVwiI1wiIChjbGljayk9XCJvbkhlbHAoJGV2ZW50KVwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsyMXB4XSBjcWEtbm8tdW5kZXJsaW5lIGhvdmVyOmNxYS11bmRlcmxpbmUgY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCN0ZXN0LWRhdGEtaGVscC1jbGlwKVwiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNTAwMzMgMTQuNjY2M0MxMi40MTIzIDE0LjY2NjMgMTUuNTgzNyAxMS42ODE2IDE1LjU4MzcgNy45OTk2N0MxNS41ODM3IDQuMzE3NzggMTIuNDEyMyAxLjMzMzAxIDguNTAwMzMgMS4zMzMwMUM0LjU4ODMxIDEuMzMzMDEgMS40MTY5OSA0LjMxNzc4IDEuNDE2OTkgNy45OTk2N0MxLjQxNjk5IDExLjY4MTYgNC41ODgzMSAxNC42NjYzIDguNTAwMzMgMTQuNjY2M1pcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi40Mzg0OCA2LjAwMDM4QzYuNjA1MDEgNS41NTQ4MyA2LjkzMzcxIDUuMTc5MTIgNy4zNjYzNiA0LjkzOThDNy43OTkwMSA0LjcwMDQ5IDguMzA3NjkgNC42MTMwMSA4LjgwMjMxIDQuNjkyODVDOS4yOTY5MyA0Ljc3MjcgOS43NDU1NiA1LjAxNDczIDEwLjA2ODcgNS4zNzYwN0MxMC4zOTE5IDUuNzM3NCAxMC41Njg4IDYuMTk0NzMgMTAuNTY4MSA2LjY2NzA1QzEwLjU2ODEgOC4wMDAzOCA4LjQ0MzA2IDguNjY3MDUgOC40NDMwNiA4LjY2NzA1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNSAxMS4zMzNIOC41MDk2NlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJ0ZXN0LWRhdGEtaGVscC1jbGlwXCI+XG4gICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIE5lZWQgaGVscCA/XG4gICAgICAgIDwvYT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVscFVybFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtZm9udC1bNTAwXSBjcWEtdGV4dC1bMTBweF0gY3FhLWN1cnNvci1kZWZhdWx0XCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMCBjcWEtdGV4dC1bIzNGNDNFRV1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjdGVzdC1kYXRhLWhlbHAtY2xpcC1ub2xpbmspXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC41MDAzMyAxNC42NjYzQzEyLjQxMjMgMTQuNjY2MyAxNS41ODM3IDExLjY4MTYgMTUuNTgzNyA3Ljk5OTY3QzE1LjU4MzcgNC4zMTc3OCAxMi40MTIzIDEuMzMzMDEgOC41MDAzMyAxLjMzMzAxQzQuNTg4MzEgMS4zMzMwMSAxLjQxNjk5IDQuMzE3NzggMS40MTY5OSA3Ljk5OTY3QzEuNDE2OTkgMTEuNjgxNiA0LjU4ODMxIDE0LjY2NjMgOC41MDAzMyAxNC42NjYzWlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjQzODQ4IDYuMDAwMzhDNi42MDUwMSA1LjU1NDgzIDYuOTMzNzEgNS4xNzkxMiA3LjM2NjM2IDQuOTM5OEM3Ljc5OTAxIDQuNzAwNDkgOC4zMDc2OSA0LjYxMzAxIDguODAyMzEgNC42OTI4NUM5LjI5NjkzIDQuNzcyNyA5Ljc0NTU2IDUuMDE0NzMgMTAuMDY4NyA1LjM3NjA3QzEwLjM5MTkgNS43Mzc0IDEwLjU2ODggNi4xOTQ3MyAxMC41NjgxIDYuNjY3MDVDMTAuNTY4MSA4LjAwMDM4IDguNDQzMDYgOC42NjcwNSA4LjQ0MzA2IDguNjY3MDVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC41IDExLjMzM0g4LjUwOTY2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cInRlc3QtZGF0YS1oZWxwLWNsaXAtbm9saW5rXCI+XG4gICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIE5lZWQgaGVscCA/XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPCEtLSBUb29sdGlwIGFib3ZlIHRyaWdnZXIgKHNhbWUgYXMgZWxlbWVudC1wb3B1cCk7IGhlYWRlciBoYXMgbm8gb3ZlcmZsb3cgc28gdG9vbHRpcCBpcyBub3QgY2xpcHBlZCAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dIZWxwVG9vbHRpcFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLXBvaW50ZXItZXZlbnRzLW5vbmUgY3FhLXotWzEwMF0gY3FhLWJvdHRvbS1bMTAwJV0gY3FhLW1iLTEgY3FhLWxlZnQtMFwiXG4gICAgICAgICAgcm9sZT1cInRvb2x0aXBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtd2hpdGUgY3FhLXRleHQtbGVmdCBjcWEtdy1bMzA2cHhdIGNxYS1tYXgtdy1bMzA2cHhdIGNxYS1taW4taC1bMjBweF0gY3FhLXJvdW5kZWQtWzZweF0gY3FhLXB5LTEgY3FhLXB4LTIgY3FhLWJnLVsjMEEwQTBBXSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLXRleHQtWzhweF0gY3FhLWJyZWFrLXdvcmRzXCI+XG4gICAgICAgICAgICB7eyBoZWxwVG9vbHRpcFRleHQgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxjcWEtYnV0dG9uIHR5cGU9XCJidXR0b25cIiB2YXJpYW50PVwidGV4dFwiIGJ0blNpemU9XCJtZFwiXG4gICAgICAgIFt0ZXh0XT1cIicnXCJcbiAgICAgICAgaWNvbj1cImNsb3NlXCJcbiAgICAgICAgKGNsaWNrZWQpPVwib25DbG9zZSgpXCJcbiAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtbWluLWgtWzI4cHhdIGNxYS1taW4tdy1bMjhweF0gY3FhLXAtMCBjcWEtdGV4dC1bIzZCNzI4MF0gaG92ZXI6Y3FhLWJnLVsjRjNGNEY2XSdcIlxuICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICA8L2NxYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gTGluZSBiZWxvdyBoZWFkZXIgKGZ1bGwgd2lkdGggb2YgbW9kYWwsIG5vIHNpZGUgbWFyZ2luKSAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS0tbXgtMiBjcWEtdy1bY2FsYygxMDAlKzFyZW0pXSBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtaC1weCBjcWEtdy1mdWxsIGNxYS1iZy1bI0U1RTdFQl1cIiByb2xlPVwicHJlc2VudGF0aW9uXCI+PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVGFiczogUGxhaW4gVGV4dCwgUGFyYW1ldGVyLCBFbnZpcm9ubWVudCwgUnVudGltZSAoZnVsbC13aWR0aCwgY3FhLWJ1dHRvbikgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1taW4tdy0wIGNxYS10ZXN0LWRhdGEtbW9kYWwtdGFicyBjcWEtZmxleCBjcWEtZmxleC1yb3cgY3FhLXAtWzMuNXB4XSBjcWEtaC1bMzEuNXB4XSBjcWEtcm91bmRlZC1bOHB4XSBjcWEtYmctWyNGM0Y0RjZdIGNxYS1nYXAtMFwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgc2VnbWVudCBvZiB0YWJTZWdtZW50c1wiIGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtZmxleFwiPlxuICAgICAgPGNxYS1idXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwiJ3RhYidcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIihlZGl0Rm9ybS5nZXQoJ2FjdGl2ZVRhYicpPy52YWx1ZSA/PyBhY3RpdmVUYWIpID09PSBzZWdtZW50LnZhbHVlXCJcbiAgICAgICAgW3RleHRdPVwic2VnbWVudC5sYWJlbFwiXG4gICAgICAgIFt2YXJpYW50XT1cIihlZGl0Rm9ybS5nZXQoJ2FjdGl2ZVRhYicpPy52YWx1ZSA/PyBhY3RpdmVUYWIpID09PSBzZWdtZW50LnZhbHVlID8gJ2ZpbGxlZCcgOiAndGV4dCdcIlxuICAgICAgICBidG5TaXplPVwibWRcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAoY2xpY2tlZCk9XCJvblRhYkNoYW5nZShzZWdtZW50LnZhbHVlKVwiXG4gICAgICAgIFtjdXN0b21DbGFzc109XCIoZWRpdEZvcm0uZ2V0KCdhY3RpdmVUYWInKT8udmFsdWUgPz8gYWN0aXZlVGFiKSA9PT0gc2VnbWVudC52YWx1ZSA/ICdjcWEtaC1bMjVweF0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLXRleHQtWzEycHhdIGNxYS1iZy1bIzNGNDNFRV0gY3FhLXRleHQtd2hpdGUgY3FhLWZvbnQtbWVkaXVtJyA6ICdjcWEtaC1bMjVweF0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLXRleHQtWzEycHhdIGNxYS10ZXh0LVsjNkI3MjgwXSBob3ZlcjpjcWEtdGV4dC1bIzExMTgyN10nXCI+XG4gICAgICA8L2NxYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ29udGVudCBwZXIgdGFiOiBvbmx5IHRoaXMgc2VjdGlvbiBzY3JvbGxzIChvdmVyZmxvdyBoZXJlLCBub3Qgb24gcm9vdCksIHNvIGhlYWRlciB0b29sdGlwIGlzIG5ldmVyIGNsaXBwZWQgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xLjUgY3FhLW1pbi1oLTAgY3FhLW92ZXJmbG93LXktYXV0b1wiXG4gICAgW2NsYXNzLmNxYS1mbGV4LTFdPVwiYWN0aXZlVGFiID09PSAncGFyYW1ldGVyJyB8fCBhY3RpdmVUYWIgPT09ICdlbnZpcm9ubWVudCcgfHwgYWN0aXZlVGFiID09PSAncnVudGltZSdcIj5cbiAgICA8IS0tIFBsYWluIFRleHQgdGFiIChmb3JtLWJvdW5kIGxpa2UgTG9vcCBTdGVwIGVkaXRGb3JtICsgb25FZGl0Rm9ybUZpZWxkQ2hhbmdlKSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlVGFiID09PSAncGxhaW4tdGV4dCdcIj5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIGxhYmVsPVwiVmFsdWVcIlxuICAgICAgICBbdmFsdWVdPVwiZWRpdEZvcm0uZ2V0KCd2YWx1ZScpPy52YWx1ZSA/PyAnJ1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkVkaXRGb3JtRmllbGRDaGFuZ2UoJ3ZhbHVlJywgJGV2ZW50KVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiaHR0cHM6Ly9leGFtcGxlLmNvbS9kYXNoYm9hcmRcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBzaXplPVwibWRcIj5cbiAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLW0tMFwiPlxuICAgICAgICBFbnRlciBhIHN0YXRpYyB0ZXh0IHZhbHVlIHRoYXQgd29uJ3QgY2hhbmdlIGR1cmluZyBleGVjdXRpb24uXG4gICAgICA8L3A+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFBhcmFtZXRlciB0YWI6IFZhcmlhYmxlIExpYnJhcnkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ3BhcmFtZXRlcidcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1taW4taC0wIGNxYS1mbGV4LTEgY3FhLW1pbi1oLVsxOHJlbV1cIj5cbiAgICAgICAgPCEtLSBWYXJpYWJsZSBMaWJyYXJ5IGhlYWRlciAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMxMTE4MjddIGNxYS1tLTBcIj5cbiAgICAgICAgICAgIFBhcmFtZXRlcnNcbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cIm9uQ3JlYXRlTmV3VmFyaWFibGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS10ZXh0LVsjM0Y0M0VFXSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtbm8tdW5kZXJsaW5lIGhvdmVyOmNxYS1vcGFjaXR5LTkwIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgQ3JlYXRlIE5ldyArXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBTZWFyY2g6IGJvdW5kIHRvIGVkaXRGb3JtIChzYW1lIHBhdHRlcm4gYXMgTG9vcCBTdGVwIGNvbnRyb2wgYmluZGluZykgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxjcWEtc2VhcmNoLWJhclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggbGlicmFyeSdcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImVkaXRGb3JtLmdldCgncGFyYW1ldGVyU2VhcmNoUXVlcnknKT8udmFsdWUgPz8gJydcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidTZWFyY2ggbGlicmFyeSdcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGFyYW1ldGVyU2VhcmNoSW5wdXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY3FhLXNlYXJjaC1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFBhcmFtZXRlciBsaXN0IChzY3JvbGxhYmxlLCBzZWFyY2gtaW50ZWdyYXRlZCB2aWEgZmlsdGVyZWQgbGlzdCBiaW5kaW5nKSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1taW4taC1bMjAwcHhdIGNxYS1mbGV4LTEgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMSBjcWEtbWluLWgtMCBjcWEtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFyYW1ldGVyTGlzdENvbmZpZ1wiXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25QYXJhbWV0ZXJSb3dDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uUGFyYW1ldGVyUm93Q2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvblBhcmFtZXRlclJvd0NsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgW2NsYXNzLmNxYS1iZy1bI0Q4RDlGQ11dPVwic2VsZWN0ZWRQYXJhbWV0ZXJJZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MuY3FhLWJvcmRlcl09XCJzZWxlY3RlZFBhcmFtZXRlcklkID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5jcWEtYm9yZGVyLXNvbGlkXT1cInNlbGVjdGVkUGFyYW1ldGVySWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgW2NsYXNzLmNxYS1ib3JkZXItWyMzRjQzRUVdXT1cInNlbGVjdGVkUGFyYW1ldGVySWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS10ZXh0LWxlZnQgY3FhLXJvdW5kZWQtbGcgY3FhLXAtMSBjcWEtdHJhbnNpdGlvbi1jb2xvcnMgY3FhLWJnLXdoaXRlIGhvdmVyOmNxYS1iZy1bI0Y5RkFGQl0gZm9jdXM6Y3FhLW91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOmNxYS1yaW5nLTIgZm9jdXMtdmlzaWJsZTpjcWEtcmluZy1bI0Q4RDlGQ10gY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wXCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbS0wIGNxYS10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIml0ZW0uc3VidGl0bGVcIiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLXRleHQtWyM2QjcyODBdIGNxYS1tLTAgY3FhLW10LTAuNSBjcWEtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3VidGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1lbmQgY3FhLWdhcC0xIGNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLXB4LTIgY3FhLXJvdW5kZWQtWzhweF0gY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LW5vcm1hbCBjcWEtd2hpdGVzcGFjZS1ub3dyYXAgY3FhLWJnLVsjZWZmNmZmXSBjcWEtdGV4dC1bIzE0NDdFNl0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNjOGUwZmZdXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zaG93RWRpdFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1wLTEgY3FhLW1pbi13LTAgY3FhLXRleHQtWyMxNDQ3RTZdIGhvdmVyOmNxYS1iZy1bI0U1RTdFQl0gY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1ib3JkZXItbm9uZSBjcWEtcm91bmRlZC1bNnB4XSBjcWEtY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUGFyYW1ldGVyRWRpdENsaWNrKCRldmVudCwgaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0XCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFZGl0XCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhY3FhLXctNCAhY3FhLWgtNCAhY3FhLXRleHQtWzE2cHhdXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUGFyYW1ldGVyRWRpdENsaWNrKCRldmVudCwgaXRlbS5pZClcIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCAqbmdJZj1cInBhcmFtZXRlckxpc3RDb25maWcubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtbS0wIGNxYS1weS00IGNxYS10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgTm8gcGFyYW1ldGVycyBtYXRjaCB5b3VyIHNlYXJjaC5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEVudmlyb25tZW50IHRhYjogVmFyaWFibGUgbGlicmFyeSBieSBlbnZpcm9ubWVudCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlVGFiID09PSAnZW52aXJvbm1lbnQnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtbWluLWgtMCBjcWEtZmxleC0xIGNxYS1taW4taC1bMThyZW1dXCI+XG4gICAgICAgIDwhLS0gU2VjdGlvbiBoZWFkZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbS0wXCI+XG4gICAgICAgICAgICBFbnZpcm9ubWVudFxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPGEgaHJlZj1cIiNcIiAoY2xpY2spPVwib25DcmVhdGVOZXdFbnZpcm9ubWVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWyMzRjQzRUVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1uby11bmRlcmxpbmUgaG92ZXI6Y3FhLW9wYWNpdHktOTAgY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICBDcmVhdGUgTmV3ICtcbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFNlYXJjaDogYm91bmQgdG8gZWRpdEZvcm0gKHNhbWUgcGF0dGVybiBhcyBMb29wIFN0ZXAgY29udHJvbCBiaW5kaW5nKSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgPGNxYS1zZWFyY2gtYmFyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBFbnZpcm9ubWVudCdcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImVkaXRGb3JtLmdldCgnZW52aXJvbm1lbnRTZWFyY2hRdWVyeScpPy52YWx1ZSA/PyAnJ1wiXG4gICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ1NlYXJjaCBFbnZpcm9ubWVudCdcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRW52aXJvbm1lbnRTZWFyY2hJbnB1dCgkZXZlbnQpXCI+XG4gICAgICAgICAgPC9jcWEtc2VhcmNoLWJhcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gRW52aXJvbm1lbnQgbGlzdCAoc2Nyb2xsYWJsZSwgc2VhcmNoLWludGVncmF0ZWQgdmlhIGZpbHRlcmVkIGxpc3QgYmluZGluZykgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWluLWgtWzIyMHB4XSBjcWEtZmxleC0xIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLW1pbi1oLTAgY3FhLW92ZXJmbG93LXktYXV0b1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVudmlyb25tZW50TGlzdENvbmZpZ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkVudmlyb25tZW50U2VsZWN0KGl0ZW0uaWQpXCJcbiAgICAgICAgICAgIFtjbGFzcy5jcWEtYmctWyNEOEQ5RkNdXT1cInNlbGVjdGVkRW52aXJvbm1lbnRJZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MuY3FhLWJvcmRlcl09XCJzZWxlY3RlZEVudmlyb25tZW50SWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgW2NsYXNzLmNxYS1ib3JkZXItc29saWRdPVwic2VsZWN0ZWRFbnZpcm9ubWVudElkID09PSBpdGVtLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5jcWEtYm9yZGVyLVsjM0Y0M0VFXV09XCJzZWxlY3RlZEVudmlyb25tZW50SWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS10ZXh0LWxlZnQgY3FhLXJvdW5kZWQtbGcgY3FhLXAtMSBjcWEtdHJhbnNpdGlvbi1jb2xvcnMgY3FhLWJnLXdoaXRlIGhvdmVyOmNxYS1iZy1bI0Y5RkFGQl0gZm9jdXM6Y3FhLW91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOmNxYS1yaW5nLTIgZm9jdXMtdmlzaWJsZTpjcWEtcmluZy1bI0Q4RDlGQ11cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLXRleHQtWyMxMTE4MjddIGNxYS1tLTAgY3FhLXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZVwiIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLW0tMCBjcWEtbXQtMC41IGNxYS10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5zdWJ0aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWVuZCBjcWEtZ2FwLTEgY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtcHgtMiBjcWEtcm91bmRlZC1bOHB4XSBjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtbm9ybWFsIGNxYS13aGl0ZXNwYWNlLW5vd3JhcCBjcWEtYmctWyNlZmY2ZmZdIGNxYS10ZXh0LVsjMTQ0N0U2XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI2M4ZTBmZl1cIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHAgKm5nSWY9XCJlbnZpcm9ubWVudExpc3RDb25maWcubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtbS0wIGNxYS1weS00IGNxYS10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzIG1hdGNoIHlvdXIgc2VhcmNoLlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gUnVudGltZSB0YWI6IGR5bmFtaWMgdmFsdWUgaW5qZWN0b3IgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ3J1bnRpbWUnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMyBjcWEtbWluLWgtMCBjcWEtaC1mdWxsIGNxYS1vdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzExMTgyN10gY3FhLW0tMCBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIFJ1bnRpbWVcbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICAgIFt2YWx1ZV09XCJlZGl0Rm9ybS5nZXQoJ3J1bnRpbWVWYWx1ZScpPy52YWx1ZSA/PyAnJ1wiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25FZGl0Rm9ybUZpZWxkQ2hhbmdlKCdydW50aW1lVmFsdWUnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiaW5wdXQgdGV4dFwiXG4gICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgc2l6ZT1cIm1kXCI+XG4gICAgICAgICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLW10LTEuNSBjcWEtbWItMFwiPlxuICAgICAgICAgICAgVmFsdWVzIHJlc29sdmVkIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbiBiYXNlZCBvbiBzZXNzaW9uIGFuZCBzdGVwIHN0YXRlLlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gUmVjb21tZW5kZWQ6IHN1Z2dlc3Rpb24gY2hpcHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy00ICFjcWEtaC00ICFjcWEtdGV4dC1bMTZweF0gY3FhLXRleHQtWyM5Q0EzQUZdXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+c2NoZWR1bGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzZCNzI4MF1cIj5SZWNvbW1lbmRlZDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRlc3QtZGF0YS1ydW50aW1lLWNoaXBzLXNjcm9sbCBjcWEtZmxleCBjcWEtZ2FwLTIgY3FhLW92ZXJmbG93LXgtYXV0byBjcWEtbWluLXctMCBjcWEtcGItMVwiPlxuICAgICAgICAgICAgPGNxYS1idXR0b25cbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNuaXBwZXQgb2YgcnVudGltZVN1Z2dlc3RlZFZhbHVlc1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICBidG5TaXplPVwibWRcIlxuICAgICAgICAgICAgICBbdGV4dF09XCJzbmlwcGV0XCJcbiAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25SdW50aW1lQ2hpcEluc2VydChzbmlwcGV0KVwiXG4gICAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLWZsZXgtc2hyaW5rLTAgY3FhLXB4LTIgY3FhLXB5LTEgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMzNzQxNTFdIGNxYS1iZy1bI0ZGRkZGRl0gY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLXdoaXRlc3BhY2Utbm93cmFwJ1wiPlxuICAgICAgICAgICAgPC9jcWEtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8IS0tIExpbmUgYmVsb3cgY29udGVudCAoZnVsbCB3aWR0aCBvZiBtb2RhbCwgbm8gc2lkZSBtYXJnaW4pIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLS1teC0yIGNxYS13LVtjYWxjKDEwMCUrMXJlbSldIGNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1oLXB4IGNxYS13LWZ1bGwgY3FhLWJnLVsjRTVFN0VCXVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBGb290ZXI6IENhbmNlbCwgQXBwbHkgKGZ1bGwgd2lkdGggaW4gb25lIHJvdykgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdHJldGNoIGNxYS1nYXAtMiBjcWEtdy1mdWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIiBidG5TaXplPVwibGdcIiBbdGV4dF09XCInQ2FuY2VsJ1wiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzEycHhdIGNxYS1weS1bOXB4XSBjcWEtYm9yZGVyLVsjNDE0MTQ2XSdcIj48L2NxYS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wXCI+XG4gICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJmaWxsZWRcIiBidG5TaXplPVwibGdcIiBbdGV4dF09XCInQXBwbHknXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgKGNsaWNrZWQpPVwib25BcHBseSgpXCJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS10ZXh0LVsxMnB4XSBjcWEtcHktWzlweF0gY3FhLWJvcmRlci1bIzNGNDNFRV0nXCI+PC9jcWEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGEgaHJlZj1cIiNcIiAoY2xpY2spPVwib25FZGl0SW5EZXB0aCgkZXZlbnQpXCJcbiAgICAgIGNsYXNzPVwiY3FhLXRleHQtWyMzRjQzRUVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLW5vLXVuZGVybGluZSBob3ZlcjpjcWEtbm8tdW5kZXJsaW5lIGNxYS1zZWxmLWNlbnRlclwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS13LTQgIWNxYS1oLTQgIWNxYS10ZXh0LVsxNnB4XVwiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cbiAgICAgIEVkaXQgaW4gZGVwdGggKG9wZW4gZGV0YWlsZWQgcmlnaHQgcGFuZWwpXG4gICAgPC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -21529,13 +21529,9 @@ class TestDataModalComponent {
|
|
|
21529
21529
|
event.preventDefault();
|
|
21530
21530
|
this.environmentCreate.emit();
|
|
21531
21531
|
}
|
|
21532
|
-
/** Runtime tab:
|
|
21532
|
+
/** Runtime tab: replace the runtime input with the selected suggestion. */
|
|
21533
21533
|
onRuntimeChipInsert(snippet) {
|
|
21534
|
-
|
|
21535
|
-
const next = ((_a = this.editForm.get('runtimeValue')) === null || _a === void 0 ? void 0 : _a.value)
|
|
21536
|
-
? ((_b = this.editForm.get('runtimeValue')) === null || _b === void 0 ? void 0 : _b.value) + ' ' + snippet
|
|
21537
|
-
: snippet;
|
|
21538
|
-
this.onEditFormFieldChange('runtimeValue', next);
|
|
21534
|
+
this.onEditFormFieldChange('runtimeValue', snippet);
|
|
21539
21535
|
}
|
|
21540
21536
|
onApply() {
|
|
21541
21537
|
var _a, _b, _c, _d;
|