@bizdoc/core 1.13.0-next.8 → 1.13.4
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/assets/bizdoc-schema.json +1 -14
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +5 -2
- package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -2
- package/esm2020/lib/admin/positions/positions-popup.component.mjs +1 -1
- package/esm2020/lib/browse/browse-items.component.mjs +11 -8
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +39 -30
- package/esm2020/lib/compose/action/action-picker.component.mjs +15 -14
- package/esm2020/lib/compose/action/action.base.mjs +8 -7
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +12 -11
- package/esm2020/lib/compose/action/assign-action.component.mjs +52 -26
- package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -4
- package/esm2020/lib/compose/form.component.mjs +5 -6
- package/esm2020/lib/compose/trace/flow.component.mjs +78 -81
- package/esm2020/lib/compose/trace/trace.component.mjs +44 -36
- package/esm2020/lib/core/controls/file.input.mjs +6 -7
- package/esm2020/lib/core/layout/layout.component.mjs +2 -2
- package/esm2020/lib/core/mailbox.service.mjs +1 -1
- package/esm2020/lib/core/models.mjs +2 -9
- package/esm2020/lib/core/translations.mjs +12 -2
- package/esm2020/lib/cube/cube.service.mjs +13 -5
- package/esm2020/lib/cube/explore/explore-items.component.mjs +25 -14
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +62 -62
- package/fesm2015/bizdoc-core.mjs +485 -413
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +479 -412
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/diff/configuration-diff.component.d.ts +1 -0
- package/lib/browse/expanded-item/expanded-item.component.d.ts +1 -0
- package/lib/compose/action/action-picker.component.d.ts +2 -1
- package/lib/compose/action/action.base.d.ts +4 -2
- package/lib/compose/action/action.pane.dialog.exp.d.ts +2 -1
- package/lib/compose/action/assign-action.component.d.ts +16 -5
- package/lib/compose/trace/flow.component.d.ts +0 -1
- package/lib/compose/trace/trace.component.d.ts +5 -4
- package/lib/core/mailbox.service.d.ts +0 -1
- package/lib/core/models.d.ts +5 -13
- package/lib/core/translations.d.ts +10 -0
- package/lib/cube/cube.service.d.ts +7 -1
- package/package.json +1 -2
@@ -413,13 +413,16 @@ export class BrowseItemsComponent {
|
|
413
413
|
if (i.folderId !== this.folderId)
|
414
414
|
this.dataSource.data.remove(i);
|
415
415
|
})), 'SendErr').
|
416
|
-
subscribe(
|
417
|
-
if (
|
418
|
-
this._sb.toast('SentMany',
|
419
|
-
else
|
420
|
-
|
421
|
-
|
422
|
-
|
416
|
+
subscribe(e => {
|
417
|
+
if (e.length > 1)
|
418
|
+
this._sb.toast('SentMany', e.length.toString(), this._actionAdjective(action, true));
|
419
|
+
else {
|
420
|
+
const origin = e[0].recipients.filter(r => r.originId === e[0].id);
|
421
|
+
if (origin.length)
|
422
|
+
this._accounts.getAll(origin.map(r => r.userId)).subscribe(u => this._sb.toast('SentTo', e[0].number, this._actionAdjective(action), this._translate.join(u.map(u => u.name))));
|
423
|
+
else
|
424
|
+
this._sb.toast('Sent', e[0].number, this._actionAdjective(action));
|
425
|
+
}
|
423
426
|
});
|
424
427
|
}
|
425
428
|
_actionAdjective(name, plural) {
|
@@ -468,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
468
471
|
type: ViewChild,
|
469
472
|
args: [MatPaginator, { static: true }]
|
470
473
|
}] } });
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYnJvd3NlL2Jyb3dzZS1pdGVtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Jyb3dzZS9icm93c2UtaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBK0MsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBYyxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUE2RCxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFTckgsT0FBTyxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVC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QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0QsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksSUFBSyxJQUF1QixDQUFDLFFBQVE7Z0JBQzFDLElBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENB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QUFPLDBGQUNQLFlBQVksbUZDM0N6Qiw2MlRBMktBLHlvT0RoSmM7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLHVCQUF1QjtRQUN2Qix3QkFBd0I7S0FDekI7MkZBR1Usb0JBQW9CO2tCQVpoQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQjt3QkFDVixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7cUJBQ3pCOzswQkF5Q0UsTUFBTTsyQkFBQyxhQUFhOzRDQXJDRSxNQUFNO3NCQUE5QixNQUFNO3VCQUFDLE1BQU07Z0JBQ1csTUFBTTtzQkFBOUIsTUFBTTt1QkFBQyxNQUFNO2dCQUNMLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRWdDLElBQUk7c0JBQXpDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDTyxTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBJbnB1dCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YsIFN1YmplY3QsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCwgc2hhcmVSZXBsYXksIGZpbmFsaXplLCBtYXAsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGb2xkZXIsIEhlYWRlck1vZGVsLCBSZWNpcGllbnRNb2RlbCwgQWN0aW9uLCBGb2xkZXJDb2x1bW4sIERSQUZUIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc01vYmlsZSwgcXVlcnlQYXJhbXMgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IGV4cGFuZExpc3RJdGVtQW5pbWF0aW9uLCBpdGVtQW5pbWF0aW9uLCBsaXN0QW5pbWF0aW9uLCBsaXN0SXRlbVVwZGF0ZWRBbmltYXRpb24gfSBmcm9tICcuLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlLCBJdGVtRXh0cmEsIE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSAnLi4vY3ViZS9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJyb3dzZUZpbHRlckFyZ3MgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gJy4uL2NvcmUvcm91dGVyJztcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBCSVpET0NfQ09ORklHLCBPcGVuUG9saWN5IH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVEFLRSA9IDIwMCwgU0laRSA9IDIwLCBIRUFERVJfQ09MVU1OX05BTUVTID0gWydudW1iZXInLCAnc3ViamVjdCcsICd2YWx1ZScsICdvd25lcicsICdzZW5kZXInLCAncmVjZWl2ZWQnLCAncmVjZWl2ZWRBZ28nLCAncmVwbGllZCcsICdzdGF0ZScsICdpc3N1ZWQnLCAnaXNzdWVkQWdvJ107XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJyb3dzZS1pdGVtcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jyb3dzZS1pdGVtcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnJvd3NlLWl0ZW1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgbGlzdEFuaW1hdGlvbixcclxuICAgIGl0ZW1BbmltYXRpb24sXHJcbiAgICBleHBhbmRMaXN0SXRlbUFuaW1hdGlvbixcclxuICAgIGxpc3RJdGVtVXBkYXRlZEFuaW1hdGlvblxyXG4gIF1cclxufSlcclxuLyoqIGJyb3dzZSBpdGVtcyBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQnJvd3NlSXRlbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KCdvcGVuJykgcmVhZG9ubHkgb25vcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGllbnRNb2RlbD4oKTtcclxuICBAT3V0cHV0KCd2aWV3JykgcmVhZG9ubHkgb252aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGllbnRNb2RlbD4oKTtcclxuICBASW5wdXQoKSBmb2xkZXJJZDogc3RyaW5nID0gbnVsbDtcclxuICBASW5wdXQoKSBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlID0gbnVsbDtcclxuICBASW5wdXQoKSBmaWx0ZXJzOiBCcm93c2VGaWx0ZXJBcmdzO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxIZWFkZXJNb2RlbD47XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XHJcbiAgY3VzdG9tQ29sdW1ucz86IEZvbGRlckNvbHVtbltdO1xyXG4gIGV4cGFuZGVkRWxlbWVudD86IEhlYWRlck1vZGVsO1xyXG4gIHVwZGF0ZWRFbGVtZW50PzogSGVhZGVyTW9kZWw7XHJcbiAgc2VsZWN0ZWRFbGVtZW50PzogSGVhZGVyTW9kZWw7XHJcbiAgc2hhcmVkQWN0aW9uczogQWN0aW9uW10gPSBbXTtcclxuICBkcmFnRGlzYWJsZWQgPSB0cnVlO1xyXG4gIHJlYWRvbmx5IFBBR0VfU0laRSA9IFNJWkU7XHJcbiAgcmVhZG9ubHkgRFJBRlQgPSBEUkFGVDtcclxuICByZWFkb25seSBjdXJyZW5jeUZvcm1hdCA9IHRoaXMuX2N1YmUuZGlnaXRzSW5mbztcclxuICByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XHJcbiAgcmVhZG9ubHkgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPEhlYWRlck1vZGVsPih0cnVlLCBbXSk7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9wZW5kaW5nSXRlbXM6IHsgW2lkOiBzdHJpbmddOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPGFueT4+OyB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGVuYWJsZUFuYWx5c2lzOiBib29sZWFuO1xyXG4gIC8qKiBicm93c2UgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jdWJlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlckltcGwsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdpbmc6IEh1YlNlcnZpY2UsXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogQml6RG9jQ29uZmlnKSB7XHJcbiAgICB0aGlzLmVuYWJsZUFuYWx5c2lzID0gX3Nlc3Npb24ucHJvZmlsZS52aWV3cy5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zaGFyZWRBY3Rpb25zKCkpO1xyXG4gICAgdGhpcy5fbWFpbGJveC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5kYXRhU291cmNlKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmQoYyA9PiBjLmlkID09PSBtLmlkKTtcclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBjb25zdCBleHRyYSA9IGl0ZW0gYXMgSXRlbUV4dHJhO1xyXG4gICAgICAgIGlmICghZXh0cmEud29ya2luZykge1xyXG4gICAgICAgICAgaWYgKG0uZm9sZGVySWQgJiYgbS5mb2xkZXJJZCAhPT0gdGhpcy5mb2xkZXJJZClcclxuICAgICAgICAgICAgdGhpcy5fcmVtb3ZlKGl0ZW0pO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnbihpdGVtLCBtKTtcclxuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgbS5tb2RlbCAmJlxyXG4gICAgICAgIHRoaXMuX2FkZChtKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWFpbGJveC5kZWxldGVkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoaWQgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGMgPT4gYy5pZCA9PT0gaWQpO1xyXG4gICAgICBpdGVtICYmXHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcubmV3JC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSB8fCBtLnVzZXJJZCAhPT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZClcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGMgPT4gYy5pZCA9PT0gbS5tb2RlbC5pZCk7XHJcbiAgICAgIGlmICghaXRlbSAmJiB0aGlzLmZvbGRlcklkID09PSBtLm1vZGVsLmZvbGRlcklkKSB7XHJcbiAgICAgICAgdGhpcy5fcGVuZGluZ0l0ZW1zW20ubW9kZWwuaWRdID0gb2YobS5tb2RlbCBhcyBSZWNpcGllbnRNb2RlbCk7XHJcbiAgICAgICAgdGhpcy5fYWRkKG0ubW9kZWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy51cGRhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5kYXRhU291cmNlKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmQoYyA9PiBjLmlkID09PSBtLm1vZGVsLmlkKTtcclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpZiAoaXRlbS5mb2xkZXJJZCA9PT0gbS5tb2RlbC5mb2xkZXJJZCkge1xyXG4gICAgICAgICAgdGhpcy5fYXNzaWduKGl0ZW0sIG0ubW9kZWwpO1xyXG4gICAgICAgICAgdGhpcy5fcGVuZGluZ0l0ZW1zW20ubW9kZWwuaWRdID0gb2YoaXRlbSBhcyBSZWNpcGllbnRNb2RlbCk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRFbGVtZW50ID0gaXRlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5fcmVtb3ZlKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5kZWxldGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGMgPT4gYy5pZCA9PT0gbS5pZCk7XHJcbiAgICAgIGl0ZW0gJiYgdGhpcy5fcmVtb3ZlKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuY29tbWVudCQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmQoaSA9PiBpLmlkID09PSBjLmlkKTtcclxuICAgICAgaWYgKGl0ZW0gJiYgKGl0ZW0gYXMgUmVjaXBpZW50TW9kZWwpLmNvbW1lbnRzKVxyXG4gICAgICAgIChpdGVtIGFzIFJlY2lwaWVudE1vZGVsPGFueT4pLmNvbW1lbnRzLnB1c2goYy5tb2RlbCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy52b3RlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZChjID0+IGMuaWQgPT09IHYuaWQpO1xyXG4gICAgICBpZiAoaXRlbSAmJiAoaXRlbSBhcyBSZWNpcGllbnRNb2RlbCkuY29tbWVudHMpIHtcclxuICAgICAgICBjb25zdCBjb21tZW50ID0gKGl0ZW0gYXMgUmVjaXBpZW50TW9kZWw8YW55PikuY29tbWVudHMuZmluZChjID0+IGMuaWQgPT09IHYuY29tbWVudElkKTtcclxuICAgICAgICBjb21tZW50LnZvdGVzID0gdi52b3RlcztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZXNzaW9uLmxvYWRlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2goKSk7XHJcbiAgICB0aGlzLl9sb2FkaW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDEwMCkpLlxyXG4gICAgICBzdWJzY3JpYmUoZSA9PiB0aGlzLmxvYWRpbmcgPSBlKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoXzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5fY29sdW1ucygpO1xyXG4gICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Fzc2lnbihtb2RlbDE6IEhlYWRlck1vZGVsLCBtb2RlbDI6IEhlYWRlck1vZGVsKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKG1vZGVsMSwgbW9kZWwyLCB7XHJcbiAgICAgIG1vZGVsOiBPYmplY3QuZGVlcEFzc2lnbihtb2RlbDEubW9kZWwsIG1vZGVsMS5tb2RlbClcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXQgZm9sZGVyKCk6IEZvbGRlciB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2xkZXJJZCA/XHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLlxyXG4gICAgICAgIGZpbmQoZiA9PiBmLm5hbWUgPT09IHRoaXMuZm9sZGVySWQpIDogbnVsbDtcclxuICB9XHJcbiAgLy9kcm9wKGV2dDogQ2RrRHJhZ0Ryb3A8c3RyaW5nLCBzdHJpbmc+KSB7XHJcbiAgLy8gIChldnQucHJldmlvdXNDb250YWluZXIuaWQgPT09ICd0YWdzJykgJiZcclxuICAvLyAgICB0aGlzLnRhZyhldnQuY3VycmVudEluZGV4LCBldnQuaXRlbS5kYXRhKTtcclxuICAvL31cclxuICBkcmFnU3RhcnRlZChldmVudDogYW55KSB7XHJcbiAgfVxyXG4gIHRvZ2dsZVJlYWQoaXRlbTogUmVjaXBpZW50TW9kZWwpIHtcclxuICAgIHRoaXMuX21haWxib3gucmVhZChpdGVtLmlkLCAhaXRlbS5yZWFkLCBpdGVtLmZvbGRlcklkLCBpdGVtLnJlY2VpdmVkKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IGl0ZW0ucmVhZCA9ICFpdGVtLnJlYWQpXHJcbiAgfVxyXG4gIHNlbGVjdChpZDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhU291cmNlKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRWxlbWVudCAmJiB0aGlzLnNlbGVjdGVkRWxlbWVudC5pZCA9PT0gaWQpIHJldHVybjtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0YWcoY3VycmVudEluZGV4OiBudW1iZXIsIHRhZzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhU291cmNlLnNvcnREYXRhKHRoaXMuZGF0YVNvdXJjZS5kYXRhLCB0aGlzLnNvcnQpLFxyXG4gICAgICBtYWlsID0gZGF0YVt0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yLnBhZ2VJbmRleCAqIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IucGFnZVNpemUgKyBjdXJyZW50SW5kZXhdO1xyXG4gICAgdGhpcy5fcmV0cmlldmUobWFpbCkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoaXRlbS50YWdzICYmIGl0ZW0udGFncy5pbmRleE9mKHRhZykgPiAtMSkgcmV0dXJuO1xyXG4gICAgICB0aGlzLl9tYWlsYm94LnRhZ3MobWFpbC5pZCwgaXRlbS50YWdzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICghaXRlbS50YWdzKSBpdGVtLnRhZ3MgPSBbdGFnXTtcclxuICAgICAgICBlbHNlIGl0ZW0udGFncy5wdXNoKHRhZylcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb3BlbihpdGVtOiBSZWNpcGllbnRNb2RlbDxhbnk+LCBldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9yZXRyaWV2ZShpdGVtKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy5vbm9wZW4ubmV4dChpdGVtKSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHZpZXcoaXRlbTogUmVjaXBpZW50TW9kZWw8YW55PiwgZXZ0OiBFdmVudCkge1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5fcmV0cmlldmUoaXRlbSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMub252aWV3Lm5leHQoaXRlbSksICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5fcGVuZGluZ0l0ZW1zID0ge307XHJcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guZmluZEFsbCh7IC4uLnRoaXMuZmlsdGVycywgZm9sZGVySWQ6IHRoaXMuZm9sZGVySWQsIHR5cGU6IHRoaXMuZmlsdGVyVHlwZSB9LCB7IHRha2U6IFRBS0UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT5cclxuICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKVxyXG4gICAgICApKS5cclxuICAgICAgc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShyKTtcclxuICAgICAgICB0aGlzLnNvcnQuYWN0aXZlID0gdGhpcy5zb3J0aW5nO1xyXG4gICAgICAgIHRoaXMuc29ydC5zdGFydCA9IHRoaXMuZGlyZWN0aW9uIGFzIGFueTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ID4gMCAmJiB0aGlzLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcclxuICAgICAgfSwgKCkgPT5cclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dyb3VwKGRhdGE6IEhlYWRlck1vZGVsW10pIHtcclxuICAgIGNvbnN0IGdyb3VwcyA9IHt9O1xyXG4gICAgZGF0YS5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBpZiAoIWdyb3Vwc1tpLmRvY3VtZW50SWRdKVxyXG4gICAgICAgIGdyb3Vwc1tpLmRvY3VtZW50SWRdID0gW2ldO1xyXG4gICAgICBlbHNlIChncm91cHNbaS5kb2N1bWVudElkXSBhcyBIZWFkZXJNb2RlbFtdKS5wdXNoKGkpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBpc0dyb3VwKF8sIGl0ZW0pIHtcclxuICB9XHJcbiAgc29ydERhdGEoKSB7XHJcbiAgICB0aGlzLnNvcnRpbmcgPSB0aGlzLnNvcnQuYWN0aXZlO1xyXG4gICAgdGhpcy5kaXJlY3Rpb24gPSB0aGlzLnNvcnQuZGlyZWN0aW9uO1xyXG4gIH1cclxuICBpc0FsbERyYWZ0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCAmJiB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5ldmVyeShtID0+IG0uZHJhZnQpO1xyXG4gIH1cclxuICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCkgOlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoLi4udGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gIH1cclxuICBmbGFnKGl0ZW06IEhlYWRlck1vZGVsLCBldnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBleHRyYSA9IGl0ZW0gYXMgSXRlbUV4dHJhO1xyXG4gICAgZXh0cmEud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9tYWlsYm94LmZsYWcoaXRlbS5pZCwgIWl0ZW0uZmxhZykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaXRlbS5mbGFnID0gIWl0ZW0uZmxhZztcclxuICAgICAgZXh0cmEud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSwgKCkgPT4gZXh0cmEud29ya2luZyA9IGZhbHNlKTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgZ2V0IHNvcnRpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc29ydGluZycpO1xyXG4gIH1cclxuICBzZXQgc29ydGluZyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc29ydGluZycsIHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGRpcmVjdGlvbigpOiBTb3J0RGlyZWN0aW9uIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZGlyZWN0aW9uJykgYXMgU29ydERpcmVjdGlvbiB8fCAnZGVzYyc7XHJcbiAgfVxyXG4gIHNldCBkaXJlY3Rpb24odmFsdWU6IFNvcnREaXJlY3Rpb24pIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdkaXJlY3Rpb24nLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIHN1Ym1pdEFsbCgpIHtcclxuICAgIHRoaXMuX2ZvckVhY2goaSA9PiB0aGlzLl9tYWlsYm94LnN1Ym1pdChpLmlkLCBpLnZlcnNpb24sIGkuZm9ybUlkKS5waXBlKHRhcCgoKSA9PiB0aGlzLmRhdGFTb3VyY2UuZGF0YS5yZW1vdmUoaSkpKSwgJ1N1Ym1pdEVycicpLlxyXG4gICAgICBzdWJzY3JpYmUoaXMgPT4gaXMubGVuZ3RoID4gMSA/IHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICdTdWJtaXR0ZWRNYW55JywgaXMubGVuZ3RoKSA6XHJcbiAgICAgICAgdGhpcy5fc2IudG9hc3QoJ1N1Ym1pdHRlZCcsIGlzWzBdLm51bWJlcikpO1xyXG4gIH1cclxuICBkaXNjYXJkQWxsKCkge1xyXG4gICAgdGhpcy5fc2IuYXNrKCdEaXNjYXJkQXNrJywgJ0Rpc2NhcmQnLCB7XHJcbiAgICAgIGNvbG9yOiAnd2FybicsXHJcbiAgICAgIG9rOiAnRGlzY2FyZCdcclxuICAgIH0pLnN1YnNjcmliZShvayA9PiBvayAmJlxyXG4gICAgICB0aGlzLl9mb3JFYWNoKGkgPT4gdGhpcy5fbWFpbGJveC5kZWxldGUoaS5pZCkucGlwZSh0YXAoKCkgPT4gdGhpcy5kYXRhU291cmNlLmRhdGEucmVtb3ZlKGkpKSksICdFcnInKS5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG4gIHRvZ2dsZUV4cGFuZGVkKGl0ZW06IEhlYWRlck1vZGVsLCBldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmV4cGFuZGVkRWxlbWVudCAhPSBpdGVtKSB7XHJcbiAgICAgIHRoaXMuX3JldHJpZXZlKGl0ZW0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy9wbGF5QXVkaW8oJ25hdmlnYXRpb25faG92ZXItdGFwJyk7XHJcbiAgICAgICAgdGhpcy5leHBhbmRlZEVsZW1lbnQgPSBpdGVtO1xyXG4gICAgICB9LCAoKSA9PiB0aGlzLl9zYi5lcnJvcigpKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5leHBhbmRlZEVsZW1lbnQgPSBudWxsO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBmdWxsIG1lc2FnZSBib2R5IGVpdGhlciBmcm9tIGNhY2hlIG9yIG5ldHdvcmtcclxuICAgKiBAcGFyYW0gaXRlbVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JldHJpZXZlKGl0ZW06IEhlYWRlck1vZGVsKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICBpZiAodGhpcy5fcGVuZGluZ0l0ZW1zW2l0ZW0uaWRdKVxyXG4gICAgICByZXR1cm4gdGhpcy5fcGVuZGluZ0l0ZW1zW2l0ZW0uaWRdO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIChpdGVtIGFzIEl0ZW1FeHRyYSkubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLl9wZW5kaW5nSXRlbXNbaXRlbS5pZF0gPVxyXG4gICAgICAgIHRoaXMuX21haWxib3guZ2V0KGl0ZW0uaWQsIGl0ZW0ucmVhZCkucGlwZShmaXJzdCgpLCBtYXAobSA9PiBPYmplY3QuYXNzaWduKGl0ZW0sIG0pKSxcclxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgKGl0ZW0gYXMgSXRlbUV4dHJhKS5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgfSksIHNoYXJlUmVwbGF5KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9zaGFyZWRBY3Rpb25zKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIXRoaXMuaXNBbGxEcmFmdCgpKSB7XHJcbiAgICAgIHRoaXMuc2hhcmVkQWN0aW9ucyA9IFtdO1xyXG4gICAgICBmb3JrSm9pbih0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5tYXAoaSA9PiB0aGlzLl9yZXRyaWV2ZShpKSkpLnN1YnNjcmliZSgobTogUmVjaXBpZW50TW9kZWw8YW55PltdKSA9PiB7XHJcbiAgICAgICAgaWYgKCFtWzBdLmFjdGlvbnMpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IG1bMF0uYWN0aW9ucy5zbGljZSgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbSA9IG1baV07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0uYWN0aW9ucylcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBhY3Rpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmFjdGlvbnMuaW5kZXhPZihhY3Rpb25zW2pdKSA9PT0gLTEpXHJcbiAgICAgICAgICAgICAgYWN0aW9ucy5zcGxpY2UoaiwgMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2hhcmVkQWN0aW9ucyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbHRlcihhID0+IGFjdGlvbnMuaW5kZXhPZihhLm5hbWUpID4gLTEgJiYgKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMSB8fCBhLm11bHRpcGxlICE9PSBmYWxzZSkpO1xyXG4gICAgICB9LCB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnNoYXJlZEFjdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgY29weShpdGVtOiBSZWNpcGllbnRNb2RlbCkge1xyXG4gICAgdGhpcy5fbWFpbGJveC5jb3B5KGl0ZW0uZG9jdW1lbnRJZCkuc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQ29waWVkJywgaS5udW1iZXIgfHwgZm9ybVRpdGxlKGl0ZW0uZm9ybUlkKSk7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGkuaWQuZW5jb2RlSWQoKV0sIHtcclxuICAgICAgICBzdGF0ZTogeyBpdGVtOiBpIH0sXHJcbiAgICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkNsZWFyXHJcbiAgICAgIH0pO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICBmdW5jdGlvbiBmb3JtVGl0bGUobmFtZSkge1xyXG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvcm1zLmZpbmQoZiA9PiBmLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgICByZXR1cm4gZm9ybS50aXRsZTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAqIGV4ZWN1dGUgZnVuY3Rpb24gcGVyIHNlbGVjdGVkIGl0ZW1cclxuICogQHBhcmFtIGZuXHJcbiAqIEBwYXJhbSBlcnJvclxyXG4gKi9cclxuICBwcml2YXRlIF9mb3JFYWNoKGZuOiAoaXRlbTogSGVhZGVyTW9kZWwpID0+IE9ic2VydmFibGU8YW55PiwgZXJyb3I6IHN0cmluZyk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWxbXT4ge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5zbGljZSgpO1xyXG4gICAgY29uc3QgZXJyb3JzID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gICAgZXJyb3JzLnBpcGUoKS5zdWJzY3JpYmUobSA9PiB0aGlzLl9zYi5lcnJvclN0cmluZyhtKSk7XHJcbiAgICBjb25zdCBwcm9taXNlcyA9IGl0ZW1zLm1hcChtID0+IGZuKG0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgIH0sIChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgICBzd2l0Y2ggKGUuc3RhdHVzKSB7XHJcbiAgICAgICAgY2FzZSA0MDQ6XHJcbiAgICAgICAgICBtZXNzYWdlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXJyJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDQwNjpcclxuICAgICAgICAgIG1lc3NhZ2UgPSBlLmVycm9yO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0MDk6XHJcbiAgICAgICAgICBtZXNzYWdlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnVmVyc2lvbkVycicsIG0ubnVtYmVyKTtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24obSwgZS5lcnJvcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgbWVzc2FnZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICAgIGVycm9ycy5uZXh0KG1lc3NhZ2UpO1xyXG4gICAgfSksIGZpbmFsaXplKCgpID0+IChtIGFzIEl0ZW1FeHRyYSkud29ya2luZyA9IGZhbHNlKSkpO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKHByb21pc2VzKS5waXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgIGVycm9ycy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gJyc7XHJcbiAgICB9KSwgbWFwKCgpID0+IGl0ZW1zIGFzIGFueSkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9hZGQobTogUmVjaXBpZW50TW9kZWw8YW55Pikge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEuc3BsaWNlKDAsIDAsIG0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlKGl0ZW06IEhlYWRlck1vZGVsKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdChpdGVtKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnJlbW92ZShpdGVtKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSAnJztcclxuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29sdW1ucygpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBjb2x1bW5zID0gWydzZWxlY3QnXTtcclxuICAgIGlmICh0aGlzLmZvbGRlciAmJiB0aGlzLmZvbGRlci5jb2x1bW5zKVxyXG4gICAgICB0aGlzLl9hcHBlbmRjb2x1bW5zKHRoaXMuZm9sZGVyLmNvbHVtbnMsIGNvbHVtbnMpO1xyXG4gICAgZWxzZSBpZiAoIXRoaXMuZm9sZGVyKSB7XHJcbiAgICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09ICdmYXYnKTtcclxuICAgICAgaWYgKGZvbGRlciAmJiBmb2xkZXIuY29sdW1ucylcclxuICAgICAgICB0aGlzLl9hcHBlbmRjb2x1bW5zKGZvbGRlci5jb2x1bW5zLCBjb2x1bW5zKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuX2NvbmZpZy5mb2xkZXJzICYmIHRoaXMuX2NvbmZpZy5mb2xkZXJzLmNvbHVtbnMpXHJcbiAgICAgIHRoaXMuX2FwcGVuZGNvbHVtbnModGhpcy5fY29uZmlnLmZvbGRlcnMuY29sdW1ucywgY29sdW1ucyk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29sdW1ucy5wdXNoKCdudW1iZXInKTtcclxuICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgICAgY29sdW1ucy5wdXNoKCdzdWJqZWN0Jyk7XHJcbiAgICAgIH1cclxuICAgICAgY29sdW1ucy5wdXNoKCd2YWx1ZScpO1xyXG4gICAgfVxyXG4gICAgY29sdW1ucy5wdXNoKCdvcHRpb25zJyk7XHJcbiAgICByZXR1cm4gY29sdW1ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FwcGVuZGNvbHVtbnMoc291cmNlOiBGb2xkZXJDb2x1bW5bXSwgY29sdW1uczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuY3VzdG9tQ29sdW1ucyA9IFtdO1xyXG4gICAgc291cmNlLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGlmIChIRUFERVJfQ09MVU1OX05BTUVTLmluZGV4T2YoYy5uYW1lKSA+IC0xKVxyXG4gICAgICAgIGNvbHVtbnMucHVzaChjLm5hbWUpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5jdXN0b21Db2x1bW5zLnB1c2goYyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbmRBbGwoYWN0aW9uOiBzdHJpbmcsIGFyZ3M6IGFueSkge1xyXG4gICAgY29uc3QgcGFyYW1zID0gcXVlcnlQYXJhbXMoYXJncyk7XHJcbiAgICB0aGlzLl9mb3JFYWNoKGkgPT5cclxuICAgICAgdGhpcy5fbWFpbGJveC5zZW5kKGkuaWQsIGkudmVyc2lvbiwgaS5mb3JtSWQsIG51bGwsIGFjdGlvbiwgcGFyYW1zLCBpLnJlYWQsIGkuZm9sZGVySWQsIGkucmVjZWl2ZWQpLlxyXG4gICAgICAgIHBpcGUodGFwKCgpID0+IHtcclxuICAgICAgICAgIGlmIChpLmZvbGRlcklkICE9PSB0aGlzLmZvbGRlcklkKSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5yZW1vdmUoaSlcclxuICAgICAgICB9KSksICdTZW5kRXJyJykuXHJcbiAgICAgIHN1YnNjcmliZShpcyA9PiB7XHJcbiAgICAgICAgaWYgKGlzLmxlbmd0aCA+IDEpIHRoaXMuX3NiLnRvYXN0KCdTZW50TWFueScsIGlzLmxlbmd0aC50b1N0cmluZygpLFxyXG4gICAgICAgICAgdGhpcy5fYWN0aW9uQWRqZWN0aXZlKGFjdGlvbiwgdHJ1ZSkpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGlmIChpc1swXS50b0lkKVxyXG4gICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5nZXQoaXNbMF0udG9JZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudFRvJywgaXNbMF0ubnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aW9uQWRqZWN0aXZlKGFjdGlvbiksIHUubmFtZSkpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudCcsIGlzWzBdLm51bWJlcixcclxuICAgICAgICAgICAgICB0aGlzLl9hY3Rpb25BZGplY3RpdmUoYWN0aW9uKSlcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FjdGlvbkFkamVjdGl2ZShuYW1lOiBzdHJpbmcsIHBsdXJhbD86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gKChwbHVyYWwgPyAoYWN0aW9uLmFkamVjdGl2ZVBsdXJhbCB8fCBhY3Rpb24uYWRqZWN0aXZlKSA6IGFjdGlvbi5hZGplY3RpdmUpIHx8IGFjdGlvbi50aXRsZSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGJpemRvYy1ub25lICpuZ0lmPVwiZGF0YVNvdXJjZT8uZGF0YS5sZW5ndGggPT09IDBcIiB0aXRsZT1cIk5vTWVzc2FnZXNcIiBbc3VidGl0bGVdPVwiIWlzTW9iaWxlICYmIGZvbGRlcklkID09PSBEUkFGVCA/ICdBbHROJyA6IG51bGxcIiBpY29uPVwibWFpbF9vdXRsaW5lXCI+PC9iaXpkb2Mtbm9uZT5cclxuPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cInF1ZXJ5XCIgW3N0eWxlLnZpc2liaWxpdHldPVwibG9hZGluZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG1hdC10YWJsZSBjZGtEcm9wTGlzdCBjbGFzcz1cImRhdGEtdGFibGVcIlxyXG4gICAgICAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cImlzTW9iaWxlXCJcclxuICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRhdGFTb3VyY2U/LmRhdGFcIlxyXG4gICAgICAgICAgIGNka0Ryb3BMaXN0Q29ubmVjdGVkVG89XCJmb2xkZXJzXCJcclxuICAgICAgICAgICBjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZFxyXG4gICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBtYXRTb3J0IG11bHRpVGVtcGxhdGVEYXRhUm93cyAobWF0U29ydENoYW5nZSk9XCJzb3J0RGF0YSgpXCJcclxuICAgICAgICAgICBpZD1cImJyb3dzZS10YWJsZVwiIFtAbGlzdF09XCJkYXRhU291cmNlXCIgW3N0eWxlLmRpc3BsYXldPVwiZGF0YVNvdXJjZT8uZGF0YS5sZW5ndGggPycnOidub25lJ1wiPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+PC9kaXY+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIiBbYXJpYS1sYWJlbF09XCInQ2hlY2snfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCI+XHJcbiAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbYXJpYS1sYWJlbF09XCInQ2hlY2snfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKGl0ZW0pIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQoaXRlbSlcIj5cclxuICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwhLS0gZHJhZyAtLT5cclxuICAgICAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIGNka0RyYWdIYW5kbGVcclxuICAgICAgICAgICAgICAobW91c2Vkb3duKT1cImRyYWdEaXNhYmxlZCA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAobW91c2V1cCk9XCJkcmFnRGlzYWJsZWQgPSB0cnVlXCJcclxuICAgICAgICAgICAgICAodG91Y2hzdGFydCk9XCJkcmFnRGlzYWJsZWQgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKHRvdWNoZW5kKT1cImRyYWdEaXNhYmxlZCA9IHRydWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJhZ1wiIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgZnhIaWRlLnhzPlxyXG4gICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPi0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoaXRlbSwgJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidEZXRhaWxzJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RldGFpbHMnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPnt7aXRlbSA9PSBleHBhbmRlZEVsZW1lbnQgPyAndW5mb2xkX2xlc3MnIDogJ3VuZm9sZF9tb3JlJ319PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPCEtLSBOdW1iZXIgY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibnVtYmVyXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydOdW1iZXInIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0ubnVtYmVyfX0gPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBTdWJqZWN0IGNvbHVtbiAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YmplY3RcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J1N1YmplY3QnIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0uc3ViamVjdH19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib3duZXJcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J093bmVyJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj5cclxuICAgICAgPGJpemRvYy1pZGVudGl0eS1uYW1lICpuZ0lmPVwiaXRlbS5vd25lcklkXCIgW2lkZW50aXR5XT1cIml0ZW0ub3duZXJJZFwiIFtieV09XCJpdGVtLm93bmVyQnlJZFwiPjwvYml6ZG9jLWlkZW50aXR5LW5hbWU+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VuZGVyXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydTZW5kZXInIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPlxyXG4gICAgICA8Yml6ZG9jLWlkZW50aXR5LW5hbWUgKm5nSWY9XCJpdGVtLnNlbmRlcklkXCIgW2lkZW50aXR5XT1cIml0ZW0uc2VuZGVySWRcIiBbYnldPVwiaXRlbS5ieUlkXCI+PC9iaXpkb2MtaWRlbnRpdHktbmFtZT5cclxuICAgIDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVjZWl2ZWRcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J1JlY2VpdmVkJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj4ge3tpdGVtLnJlY2VpdmVkIHwgYW1DYWxlbmRhcn19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVjZWl2ZWRBZ29cIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPVwicmVjZWl2ZWRcIj57eydSZWNlaXZlZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbS5yZWNlaXZlZCB8IGFtQ2FsZW5kYXJcIj57e2l0ZW0ucmVjZWl2ZWQgfCBhbVRpbWVBZ299fTwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVwbGllZFwiPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3snUmVwbGllZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+IHt7aXRlbS5yZXBsaWVkIHwgYW1DYWxlbmRhcn19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNzdWVkXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydJc3N1ZWQnIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0uaXNzdWVkIHwgYW1DYWxlbmRhcn19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNzdWVkQWdvXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj1cImlzc3VlZFwiPnt7J0lzc3VlZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbS5pc3N1ZWQgfCBhbUNhbGVuZGFyXCI+IHt7aXRlbS5pc3N1ZWQgfCBhbVRpbWVBZ299fSA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXRlXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj1cInN0YXRlSWRcIj57eydTdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj5cclxuICAgICAgPGJpemRvYy1zdGF0dXMgW3N0YXRlSWRdPVwiaXRlbS5zdGF0ZUlkXCI+PC9iaXpkb2Mtc3RhdHVzPlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNvbHVtbnNcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgY3VzdG9tQ29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiYy5uYW1lXCI+XHJcbiAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiB7e2MudGl0bGV9fSA8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYy50eXBlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0RhdGUnXCI+XHJcbiAgICAgICAgICAgIHt7aXRlbS5tb2RlbFtjLm5hbWVdIHwgYW1DYWxlbmRhciB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidEZWNpbWFsJ1wiPlxyXG4gICAgICAgICAgICB7e2l0ZW0ubW9kZWxbYy5uYW1lXSB8IG51bWJlciB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidCb29sZWFuJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cIml0ZW0ubW9kZWxbYy5uYW1lXVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICB7e2l0ZW0ubW9kZWxbYy5uYW1lXX19elxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1jZWxsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gVmFsdWUgY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmFsdWVcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J0Ftb3VudCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+IHt7aXRlbS52YWx1ZSB8IGN1cnJlbmN5IDogaXRlbS5jdXJyZW5jeUNvZGUgOiAnc3ltYm9sJyA6IGN1cnJlbmN5Rm9ybWF0fX0gPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBvcHRpb25zIGNvbHVtbiAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9wdGlvbnNcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmxhZyhpdGVtLCAkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZsYWdnZWQnfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidUb2dnbGVGbGFnZ2VkJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbiBbY2xhc3MuZG9jdW1lbnQtZmxhZ109XCJpdGVtLmZsYWdcIj57e2l0ZW0uZmxhZyA/ICdzdGFyJyA6ICdzdGFyX2JvcmRlcid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ2aWV3KGl0ZW0sICRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInVmlldycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiICpuZ0lmPVwiZW5hYmxlQW5hbHlzaXNcIj48bWF0LWljb24+ZGF0YV91c2FnZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGZ4SGlkZS54cyBbbWF0TWVudVRyaWdnZXJEYXRhXT1cIntpdGVtOiBpdGVtfVwiIFtiaXpkb2NUb29sdGlwXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09wdGlvbnMnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCBDb2x1bW4gLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJleHBhbmRlZERldGFpbFwiPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBbYXR0ci5jb2xzcGFuXT1cImRpc3BsYXllZENvbHVtbnMubGVuZ3RoXCIgW0B1cGRhdGVkXT1cIml0ZW0gPT0gdXBkYXRlZEVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5yZWFkLXJvd109XCJpdGVtLnJlYWRcIj5cclxuICAgICAgPGRpdiBbQGRldGFpbEV4cGFuZF09XCJpdGVtID09IGV4cGFuZGVkRWxlbWVudCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICA8Yml6ZG9jLWV4cGFuZGVkLWl0ZW0gW21vZGVsXT1cIml0ZW1cIiAqbmdJZj1cIml0ZW0gPT0gZXhwYW5kZWRFbGVtZW50XCI+PC9iaXpkb2MtZXhwYW5kZWQtaXRlbT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICA8bWF0LXJvdyBAaXRlbSBbQHVwZGF0ZWRdPVwiaXRlbSA9PSB1cGRhdGVkRWxlbWVudFwiXHJcbiAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBsZXQgZGF0YUluZGV4ID0gZGF0YUluZGV4OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIGNsYXNzPVwiZWxlbWVudC1yb3dcIlxyXG4gICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZHJhZ0Rpc2FibGVkXCJcclxuICAgICAgICAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cImRyYWdEaXNhYmxlZCA9IHRydWVcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRlZC1yb3cnOiBzZWxlY3RlZEVsZW1lbnQgPT09IGl0ZW0sXHJcbiAgICAgICdleHBhbmRlZC1yb3cnOiBleHBhbmRlZEVsZW1lbnQgPT09IGl0ZW0sXHJcbiAgICAgICAgICAgJ29kZC1yb3cnOiBkYXRhSW5kZXggJSAyLFxyXG4gICAgICAncmVhZC1yb3cnOiBpdGVtLnJlYWR9XCIgbWF0UmlwcGxlXHJcbiAgICAgICAgICAgKGNsaWNrKT1cIm9wZW4oaXRlbSwgJGV2ZW50KVwiPlxyXG4gICAgPGRpdiAqY2RrRHJhZ1ByZXZpZXc+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCI+PG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj48L2J1dHRvbj4gPHNwYW4+I3t7aXRlbS5udW1iZXJ9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyPlxyXG4gICAgICA8IS0tIG5vbmUgLS0+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1yb3c+XHJcbiAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBpdGVtOyA7IGxldCBkYXRhSW5kZXggPSBkYXRhSW5kZXg7IGNvbHVtbnM6IFsnZXhwYW5kZWREZXRhaWwnXVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJkZXRhaWwtcm93XCIgbWF0UmlwcGxlXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWRlZC1yb3cnOiBzZWxlY3RlZEVsZW1lbnQgPT09IGl0ZW0sXHJcbiAgICAgICAgICAgJ29kZC1yb3cnOiBkYXRhSW5kZXggJSAyXHJcbiAgICAgICAgICAgfVwiPjwvbWF0LXJvdz5cclxuPC9tYXQtdGFibGU+XHJcbjxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW2hpZGVQYWdlU2l6ZV09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cIlBBR0VfU0laRVwiIFtzdHlsZS5kaXNwbGF5XT1cIiFpc01vYmlsZSAmJiBkYXRhU291cmNlPy5kYXRhLmxlbmd0aD5QQUdFX1NJWkUgPyAnJzonbm9uZSdcIj48L21hdC1wYWdpbmF0b3I+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9wZW4oaXRlbSwgJGV2ZW50KVwiPnt7J09wZW4nfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwidG9nZ2xlUmVhZChpdGVtKVwiPnt7KGl0ZW0ucmVhZCA/J01hcmtBc1VucmVhZCc6J01hcmtBc1JlYWQnKXx0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvcHkoaXRlbSlcIj57eydDb3B5J3wgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L21hdC1tZW51PlxyXG4iXX0=
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYnJvd3NlL2Jyb3dzZS1pdGVtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Jyb3dzZS9icm93c2UtaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBK0MsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBYyxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUE2RCxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFTckgsT0FBTyxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVC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QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0QsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzRCxJQUFJLElBQUksSUFBSyxJQUF1QixDQUFDLFFBQVE7Z0JBQzFDLElBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENB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U0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEgsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7aUhBL1pVLG9CQUFvQix5UkFzQ3JCLGFBQWE7cUdBdENaLG9CQUFvQiw4TkFPcEIsT0FBTywwRkFDUCxZQUFZLG1GQzNDekIsNjJUQTJLQSx5b09EaEpjO1FBQ1YsYUFBYTtRQUNiLGFBQWE7UUFDYix1QkFBdUI7UUFDdkIsd0JBQXdCO0tBQ3pCOzJGQUdVLG9CQUFvQjtrQkFaaEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkI7d0JBQ1YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3FCQUN6Qjs7MEJBeUNFLE1BQU07MkJBQUMsYUFBYTs0Q0FyQ0UsTUFBTTtzQkFBOUIsTUFBTTt1QkFBQyxNQUFNO2dCQUNXLE1BQU07c0JBQTlCLE1BQU07dUJBQUMsTUFBTTtnQkFDTCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVnQyxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ08sU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE91dHB1dCwgSW5wdXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mLCBTdWJqZWN0LCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCB0YXAsIHNoYXJlUmVwbGF5LCBmaW5hbGl6ZSwgbWFwLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRm9sZGVyLCBIZWFkZXJNb2RlbCwgUmVjaXBpZW50TW9kZWwsIEFjdGlvbiwgRm9sZGVyQ29sdW1uLCBEUkFGVCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgaXNNb2JpbGUsIHF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBleHBhbmRMaXN0SXRlbUFuaW1hdGlvbiwgaXRlbUFuaW1hdGlvbiwgbGlzdEFuaW1hdGlvbiwgbGlzdEl0ZW1VcGRhdGVkQW5pbWF0aW9uIH0gZnJvbSAnLi4vY29yZS9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgSXRlbUV4dHJhLCBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gJy4uL2N1YmUvY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCcm93c2VGaWx0ZXJBcmdzIH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tICcuLi9jb3JlL3JvdXRlcic7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRywgT3BlblBvbGljeSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRBS0UgPSAyMDAsIFNJWkUgPSAyMCwgSEVBREVSX0NPTFVNTl9OQU1FUyA9IFsnbnVtYmVyJywgJ3N1YmplY3QnLCAndmFsdWUnLCAnb3duZXInLCAnc2VuZGVyJywgJ3JlY2VpdmVkJywgJ3JlY2VpdmVkQWdvJywgJ3JlcGxpZWQnLCAnc3RhdGUnLCAnaXNzdWVkJywgJ2lzc3VlZEFnbyddO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1icm93c2UtaXRlbXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9icm93c2UtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Jyb3dzZS1pdGVtcy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIGxpc3RBbmltYXRpb24sXHJcbiAgICBpdGVtQW5pbWF0aW9uLFxyXG4gICAgZXhwYW5kTGlzdEl0ZW1BbmltYXRpb24sXHJcbiAgICBsaXN0SXRlbVVwZGF0ZWRBbmltYXRpb25cclxuICBdXHJcbn0pXHJcbi8qKiBicm93c2UgaXRlbXMgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEJyb3dzZUl0ZW1zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgnb3BlbicpIHJlYWRvbmx5IG9ub3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjaXBpZW50TW9kZWw+KCk7XHJcbiAgQE91dHB1dCgndmlldycpIHJlYWRvbmx5IG9udmlldyA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjaXBpZW50TW9kZWw+KCk7XHJcbiAgQElucHV0KCkgZm9sZGVySWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgQElucHV0KCkgZmlsdGVyVHlwZTogRmlsdGVyVHlwZSA9IG51bGw7XHJcbiAgQElucHV0KCkgZmlsdGVyczogQnJvd3NlRmlsdGVyQXJncztcclxuXHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KSBzb3J0OiBNYXRTb3J0O1xyXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8SGVhZGVyTW9kZWw+O1xyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xyXG4gIGN1c3RvbUNvbHVtbnM/OiBGb2xkZXJDb2x1bW5bXTtcclxuICBleHBhbmRlZEVsZW1lbnQ/OiBIZWFkZXJNb2RlbDtcclxuICB1cGRhdGVkRWxlbWVudD86IEhlYWRlck1vZGVsO1xyXG4gIHNlbGVjdGVkRWxlbWVudD86IEhlYWRlck1vZGVsO1xyXG4gIHNoYXJlZEFjdGlvbnM6IEFjdGlvbltdID0gW107XHJcbiAgZHJhZ0Rpc2FibGVkID0gdHJ1ZTtcclxuICByZWFkb25seSBQQUdFX1NJWkUgPSBTSVpFO1xyXG4gIHJlYWRvbmx5IERSQUZUID0gRFJBRlQ7XHJcbiAgcmVhZG9ubHkgY3VycmVuY3lGb3JtYXQgPSB0aGlzLl9jdWJlLmRpZ2l0c0luZm87XHJcbiAgcmVhZG9ubHkgaXNNb2JpbGUgPSBpc01vYmlsZSgpO1xyXG4gIHJlYWRvbmx5IHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxIZWFkZXJNb2RlbD4odHJ1ZSwgW10pO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfcGVuZGluZ0l0ZW1zOiB7IFtpZDogc3RyaW5nXTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PjsgfSA9IHt9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmckID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBlbmFibGVBbmFseXNpczogYm9vbGVhbjtcclxuICAvKiogYnJvd3NlIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY3ViZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy5lbmFibGVBbmFseXNpcyA9IF9zZXNzaW9uLnByb2ZpbGUudmlld3MubGVuZ3RoID4gMDtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc2hhcmVkQWN0aW9ucygpKTtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGMgPT4gYy5pZCA9PT0gbS5pZCk7XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgY29uc3QgZXh0cmEgPSBpdGVtIGFzIEl0ZW1FeHRyYTtcclxuICAgICAgICBpZiAoIWV4dHJhLndvcmtpbmcpIHtcclxuICAgICAgICAgIGlmIChtLmZvbGRlcklkICYmIG0uZm9sZGVySWQgIT09IHRoaXMuZm9sZGVySWQpXHJcbiAgICAgICAgICAgIHRoaXMuX3JlbW92ZShpdGVtKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9hc3NpZ24oaXRlbSwgbSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIG0ubW9kZWwgJiZcclxuICAgICAgICB0aGlzLl9hZGQobSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21haWxib3guZGVsZXRlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGlkID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZChjID0+IGMuaWQgPT09IGlkKTtcclxuICAgICAgaXRlbSAmJlxyXG4gICAgICAgIHRoaXMuX3JlbW92ZShpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLm5ldyQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UgfHwgbS51c2VySWQgIT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZChjID0+IGMuaWQgPT09IG0ubW9kZWwuaWQpO1xyXG4gICAgICBpZiAoIWl0ZW0gJiYgdGhpcy5mb2xkZXJJZCA9PT0gbS5tb2RlbC5mb2xkZXJJZCkge1xyXG4gICAgICAgIHRoaXMuX3BlbmRpbmdJdGVtc1ttLm1vZGVsLmlkXSA9IG9mKG0ubW9kZWwgYXMgUmVjaXBpZW50TW9kZWwpO1xyXG4gICAgICAgIHRoaXMuX2FkZChtLm1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcudXBkYXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGMgPT4gYy5pZCA9PT0gbS5tb2RlbC5pZCk7XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZm9sZGVySWQgPT09IG0ubW9kZWwuZm9sZGVySWQpIHtcclxuICAgICAgICAgIHRoaXMuX2Fzc2lnbihpdGVtLCBtLm1vZGVsKTtcclxuICAgICAgICAgIHRoaXMuX3BlbmRpbmdJdGVtc1ttLm1vZGVsLmlkXSA9IG9mKGl0ZW0gYXMgUmVjaXBpZW50TW9kZWwpO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVkRWxlbWVudCA9IGl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuX3JlbW92ZShpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuZGVsZXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZChjID0+IGMuaWQgPT09IG0uaWQpO1xyXG4gICAgICBpdGVtICYmIHRoaXMuX3JlbW92ZShpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gYy5pZCk7XHJcbiAgICAgIGlmIChpdGVtICYmIChpdGVtIGFzIFJlY2lwaWVudE1vZGVsKS5jb21tZW50cylcclxuICAgICAgICAoaXRlbSBhcyBSZWNpcGllbnRNb2RlbDxhbnk+KS5jb21tZW50cy5wdXNoKGMubW9kZWwpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcudm90ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmQoYyA9PiBjLmlkID09PSB2LmlkKTtcclxuICAgICAgaWYgKGl0ZW0gJiYgKGl0ZW0gYXMgUmVjaXBpZW50TW9kZWwpLmNvbW1lbnRzKSB7XHJcbiAgICAgICAgY29uc3QgY29tbWVudCA9IChpdGVtIGFzIFJlY2lwaWVudE1vZGVsPGFueT4pLmNvbW1lbnRzLmZpbmQoYyA9PiBjLmlkID09PSB2LmNvbW1lbnRJZCk7XHJcbiAgICAgICAgY29tbWVudC52b3RlcyA9IHYudm90ZXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5sb2FkZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoKCkpO1xyXG4gICAgdGhpcy5fbG9hZGluZyQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgxMDApKS5cclxuICAgICAgc3Vic2NyaWJlKGUgPT4gdGhpcy5sb2FkaW5nID0gZSk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuX2NvbHVtbnMoKTtcclxuICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9hc3NpZ24obW9kZWwxOiBIZWFkZXJNb2RlbCwgbW9kZWwyOiBIZWFkZXJNb2RlbCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbihtb2RlbDEsIG1vZGVsMiwge1xyXG4gICAgICBtb2RlbDogT2JqZWN0LmRlZXBBc3NpZ24obW9kZWwxLm1vZGVsLCBtb2RlbDEubW9kZWwpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0IGZvbGRlcigpOiBGb2xkZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9sZGVySWQgP1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5cclxuICAgICAgICBmaW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLmZvbGRlcklkKSA6IG51bGw7XHJcbiAgfVxyXG4gIC8vZHJvcChldnQ6IENka0RyYWdEcm9wPHN0cmluZywgc3RyaW5nPikge1xyXG4gIC8vICAoZXZ0LnByZXZpb3VzQ29udGFpbmVyLmlkID09PSAndGFncycpICYmXHJcbiAgLy8gICAgdGhpcy50YWcoZXZ0LmN1cnJlbnRJbmRleCwgZXZ0Lml0ZW0uZGF0YSk7XHJcbiAgLy99XHJcbiAgZHJhZ1N0YXJ0ZWQoZXZlbnQ6IGFueSkge1xyXG4gIH1cclxuICB0b2dnbGVSZWFkKGl0ZW06IFJlY2lwaWVudE1vZGVsKSB7XHJcbiAgICB0aGlzLl9tYWlsYm94LnJlYWQoaXRlbS5pZCwgIWl0ZW0ucmVhZCwgaXRlbS5mb2xkZXJJZCwgaXRlbS5yZWNlaXZlZCkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiBpdGVtLnJlYWQgPSAhaXRlbS5yZWFkKVxyXG4gIH1cclxuICBzZWxlY3QoaWQ6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEVsZW1lbnQgJiYgdGhpcy5zZWxlY3RlZEVsZW1lbnQuaWQgPT09IGlkKSByZXR1cm47XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZChpID0+IGkuaWQgPT09IGlkKTtcclxuICAgIH1cclxuICB9XHJcbiAgdGFnKGN1cnJlbnRJbmRleDogbnVtYmVyLCB0YWc6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YVNvdXJjZS5zb3J0RGF0YSh0aGlzLmRhdGFTb3VyY2UuZGF0YSwgdGhpcy5zb3J0KSxcclxuICAgICAgbWFpbCA9IGRhdGFbdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvci5wYWdlSW5kZXggKiB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yLnBhZ2VTaXplICsgY3VycmVudEluZGV4XTtcclxuICAgIHRoaXMuX3JldHJpZXZlKG1haWwpLnN1YnNjcmliZShpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0udGFncyAmJiBpdGVtLnRhZ3MuaW5kZXhPZih0YWcpID4gLTEpIHJldHVybjtcclxuICAgICAgdGhpcy5fbWFpbGJveC50YWdzKG1haWwuaWQsIGl0ZW0udGFncykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAoIWl0ZW0udGFncykgaXRlbS50YWdzID0gW3RhZ107XHJcbiAgICAgICAgZWxzZSBpdGVtLnRhZ3MucHVzaCh0YWcpXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9wZW4oaXRlbTogUmVjaXBpZW50TW9kZWw8YW55PiwgZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fcmV0cmlldmUoaXRlbSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMub25vcGVuLm5leHQoaXRlbSksICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICB2aWV3KGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT4sIGV2dDogRXZlbnQpIHtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuX3JldHJpZXZlKGl0ZW0pLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLm9udmlldy5uZXh0KGl0ZW0pLCAoKSA9PiB0aGlzLl9zYi5lcnJvcigpKTtcclxuICB9XHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuX3BlbmRpbmdJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5fbG9hZGluZyQubmV4dCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LmZpbmRBbGwoeyAuLi50aGlzLmZpbHRlcnMsIGZvbGRlcklkOiB0aGlzLmZvbGRlcklkLCB0eXBlOiB0aGlzLmZpbHRlclR5cGUgfSwgeyB0YWtlOiBUQUtFIH0pLlxyXG4gICAgICBwaXBlKGZpbmFsaXplKCgpID0+XHJcbiAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSlcclxuICAgICAgKSkuXHJcbiAgICAgIHN1YnNjcmliZShyID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2Uocik7XHJcbiAgICAgICAgdGhpcy5zb3J0LmFjdGl2ZSA9IHRoaXMuc29ydGluZztcclxuICAgICAgICB0aGlzLnNvcnQuc3RhcnQgPSB0aGlzLmRpcmVjdGlvbiBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA+IDAgJiYgdGhpcy5wYWdpbmF0b3IuZmlyc3RQYWdlKCk7XHJcbiAgICAgIH0sICgpID0+XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIF9ncm91cChkYXRhOiBIZWFkZXJNb2RlbFtdKSB7XHJcbiAgICBjb25zdCBncm91cHMgPSB7fTtcclxuICAgIGRhdGEuZm9yRWFjaChpID0+IHtcclxuICAgICAgaWYgKCFncm91cHNbaS5kb2N1bWVudElkXSlcclxuICAgICAgICBncm91cHNbaS5kb2N1bWVudElkXSA9IFtpXTtcclxuICAgICAgZWxzZSAoZ3JvdXBzW2kuZG9jdW1lbnRJZF0gYXMgSGVhZGVyTW9kZWxbXSkucHVzaChpKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgaXNHcm91cChfLCBpdGVtKSB7XHJcbiAgfVxyXG4gIHNvcnREYXRhKCkge1xyXG4gICAgdGhpcy5zb3J0aW5nID0gdGhpcy5zb3J0LmFjdGl2ZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5zb3J0LmRpcmVjdGlvbjtcclxuICB9XHJcbiAgaXNBbGxEcmFmdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggJiYgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZXZlcnkobSA9PiBtLmRyYWZ0KTtcclxuICB9XHJcbiAgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aDtcclxuICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcclxuICB9XHJcbiAgbWFzdGVyVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKCkgP1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpIDpcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuZGF0YVNvdXJjZS5kYXRhKTtcclxuICB9XHJcbiAgZmxhZyhpdGVtOiBIZWFkZXJNb2RlbCwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgZXh0cmEgPSBpdGVtIGFzIEl0ZW1FeHRyYTtcclxuICAgIGV4dHJhLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5mbGFnKGl0ZW0uaWQsICFpdGVtLmZsYWcpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGl0ZW0uZmxhZyA9ICFpdGVtLmZsYWc7XHJcbiAgICAgIGV4dHJhLndvcmtpbmcgPSBmYWxzZTtcclxuICAgIH0sICgpID0+IGV4dHJhLndvcmtpbmcgPSBmYWxzZSk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIGdldCBzb3J0aW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NvcnRpbmcnKTtcclxuICB9XHJcbiAgc2V0IHNvcnRpbmcodmFsdWU6IHN0cmluZykge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NvcnRpbmcnLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBkaXJlY3Rpb24oKTogU29ydERpcmVjdGlvbiB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2RpcmVjdGlvbicpIGFzIFNvcnREaXJlY3Rpb24gfHwgJ2Rlc2MnO1xyXG4gIH1cclxuICBzZXQgZGlyZWN0aW9uKHZhbHVlOiBTb3J0RGlyZWN0aW9uKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZGlyZWN0aW9uJywgdmFsdWUpO1xyXG4gIH1cclxuICBzdWJtaXRBbGwoKSB7XHJcbiAgICB0aGlzLl9mb3JFYWNoKGkgPT4gdGhpcy5fbWFpbGJveC5zdWJtaXQoaS5pZCwgaS52ZXJzaW9uLCBpLmZvcm1JZCkucGlwZSh0YXAoKCkgPT4gdGhpcy5kYXRhU291cmNlLmRhdGEucmVtb3ZlKGkpKSksICdTdWJtaXRFcnInKS5cclxuICAgICAgc3Vic2NyaWJlKGlzID0+IGlzLmxlbmd0aCA+IDEgPyB0aGlzLl9zYi50b2FzdChcclxuICAgICAgICAnU3VibWl0dGVkTWFueScsIGlzLmxlbmd0aCkgOlxyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTdWJtaXR0ZWQnLCBpc1swXS5udW1iZXIpKTtcclxuICB9XHJcbiAgZGlzY2FyZEFsbCgpIHtcclxuICAgIHRoaXMuX3NiLmFzaygnRGlzY2FyZEFzaycsICdEaXNjYXJkJywge1xyXG4gICAgICBjb2xvcjogJ3dhcm4nLFxyXG4gICAgICBvazogJ0Rpc2NhcmQnXHJcbiAgICB9KS5zdWJzY3JpYmUob2sgPT4gb2sgJiZcclxuICAgICAgdGhpcy5fZm9yRWFjaChpID0+IHRoaXMuX21haWxib3guZGVsZXRlKGkuaWQpLnBpcGUodGFwKCgpID0+IHRoaXMuZGF0YVNvdXJjZS5kYXRhLnJlbW92ZShpKSkpLCAnRXJyJykuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuICB0b2dnbGVFeHBhbmRlZChpdGVtOiBIZWFkZXJNb2RlbCwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5leHBhbmRlZEVsZW1lbnQgIT0gaXRlbSkge1xyXG4gICAgICB0aGlzLl9yZXRyaWV2ZShpdGVtKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIC8vcGxheUF1ZGlvKCduYXZpZ2F0aW9uX2hvdmVyLXRhcCcpO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWRFbGVtZW50ID0gaXRlbTtcclxuICAgICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuZXhwYW5kZWRFbGVtZW50ID0gbnVsbDtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgZnVsbCBtZXNhZ2UgYm9keSBlaXRoZXIgZnJvbSBjYWNoZSBvciBuZXR3b3JrXHJcbiAgICogQHBhcmFtIGl0ZW1cclxuICAgKi9cclxuICBwcml2YXRlIF9yZXRyaWV2ZShpdGVtOiBIZWFkZXJNb2RlbCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8YW55Pj4ge1xyXG4gICAgaWYgKHRoaXMuX3BlbmRpbmdJdGVtc1tpdGVtLmlkXSlcclxuICAgICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdJdGVtc1tpdGVtLmlkXTtcclxuICAgIGVsc2Uge1xyXG4gICAgICAoaXRlbSBhcyBJdGVtRXh0cmEpLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fcGVuZGluZ0l0ZW1zW2l0ZW0uaWRdID1cclxuICAgICAgICB0aGlzLl9tYWlsYm94LmdldChpdGVtLmlkLCBpdGVtLnJlYWQpLnBpcGUoZmlyc3QoKSwgbWFwKG0gPT4gT2JqZWN0LmFzc2lnbihpdGVtLCBtKSksXHJcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIChpdGVtIGFzIEl0ZW1FeHRyYSkubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIH0pLCBzaGFyZVJlcGxheSgpKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfc2hhcmVkQWN0aW9ucygpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICF0aGlzLmlzQWxsRHJhZnQoKSkge1xyXG4gICAgICB0aGlzLnNoYXJlZEFjdGlvbnMgPSBbXTtcclxuICAgICAgZm9ya0pvaW4odGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubWFwKGkgPT4gdGhpcy5fcmV0cmlldmUoaSkpKS5zdWJzY3JpYmUoKG06IFJlY2lwaWVudE1vZGVsPGFueT5bXSkgPT4ge1xyXG4gICAgICAgIGlmICghbVswXS5hY3Rpb25zKVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBtWzBdLmFjdGlvbnMuc2xpY2UoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IG0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBtW2ldO1xyXG4gICAgICAgICAgaWYgKCFpdGVtLmFjdGlvbnMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYWN0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5hY3Rpb25zLmluZGV4T2YoYWN0aW9uc1tqXSkgPT09IC0xKVxyXG4gICAgICAgICAgICAgIGFjdGlvbnMuc3BsaWNlKGosIDEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNoYXJlZEFjdGlvbnMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maWx0ZXIoYSA9PiBhY3Rpb25zLmluZGV4T2YoYS5uYW1lKSA+IC0xICYmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggPT09IDEgfHwgYS5tdWx0aXBsZSAhPT0gZmFsc2UpKTtcclxuICAgICAgfSwgdW5kZWZpbmVkKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zaGFyZWRBY3Rpb25zID0gW107XHJcbiAgfVxyXG4gIGNvcHkoaXRlbTogUmVjaXBpZW50TW9kZWwpIHtcclxuICAgIHRoaXMuX21haWxib3guY29weShpdGVtLmRvY3VtZW50SWQpLnN1YnNjcmliZShpID0+IHtcclxuICAgICAgdGhpcy5fc2IudG9hc3QoJ0NvcGllZCcsIGkubnVtYmVyIHx8IGZvcm1UaXRsZShpdGVtLmZvcm1JZCkpO1xyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpLmlkLmVuY29kZUlkKCldLCB7XHJcbiAgICAgICAgc3RhdGU6IHsgaXRlbTogaSB9LFxyXG4gICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhclxyXG4gICAgICB9KTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gICAgZnVuY3Rpb24gZm9ybVRpdGxlKG5hbWUpIHtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBuYW1lKTtcclxuICAgICAgcmV0dXJuIGZvcm0udGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gKiBleGVjdXRlIGZ1bmN0aW9uIHBlciBzZWxlY3RlZCBpdGVtXHJcbiAqIEBwYXJhbSBmblxyXG4gKiBAcGFyYW0gZXJyb3JcclxuICovXHJcbiAgcHJpdmF0ZSBfZm9yRWFjaChmbjogKGl0ZW06IEhlYWRlck1vZGVsKSA9PiBPYnNlcnZhYmxlPGFueT4sIGVycm9yOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsW10+IHtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuc2xpY2UoKTtcclxuICAgIGNvbnN0IGVycm9ycyA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAgIGVycm9ycy5waXBlKCkuc3Vic2NyaWJlKG0gPT4gdGhpcy5fc2IuZXJyb3JTdHJpbmcobSkpO1xyXG4gICAgY29uc3QgcHJvbWlzZXMgPSBpdGVtcy5tYXAobSA9PiBmbihtKS5waXBlKHRhcCgoKSA9PiB7XHJcbiAgICB9LCAoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgc3dpdGNoIChlLnN0YXR1cykge1xyXG4gICAgICAgIGNhc2UgNDA0OlxyXG4gICAgICAgICAgbWVzc2FnZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0VycicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0MDY6XHJcbiAgICAgICAgICBtZXNzYWdlID0gZS5lcnJvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDA5OlxyXG4gICAgICAgICAgbWVzc2FnZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZlcnNpb25FcnInLCBtLm51bWJlcik7XHJcbiAgICAgICAgICBPYmplY3QuYXNzaWduKG0sIGUuZXJyb3IpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIG1lc3NhZ2UgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICBlcnJvcnMubmV4dChtZXNzYWdlKTtcclxuICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiAobSBhcyBJdGVtRXh0cmEpLndvcmtpbmcgPSBmYWxzZSkpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihwcm9taXNlcykucGlwZSh0YXAoKCkgPT4ge1xyXG4gICAgICBlcnJvcnMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9ICcnO1xyXG4gICAgfSksIG1hcCgoKSA9PiBpdGVtcyBhcyBhbnkpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfYWRkKG06IFJlY2lwaWVudE1vZGVsPGFueT4pIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnNwbGljZSgwLCAwLCBtKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbW92ZShpdGVtOiBIZWFkZXJNb2RlbCkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoaXRlbSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5yZW1vdmUoaXRlbSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gJyc7XHJcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbHVtbnMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgY29sdW1ucyA9IFsnc2VsZWN0J107XHJcbiAgICBpZiAodGhpcy5mb2xkZXIgJiYgdGhpcy5mb2xkZXIuY29sdW1ucylcclxuICAgICAgdGhpcy5fYXBwZW5kY29sdW1ucyh0aGlzLmZvbGRlci5jb2x1bW5zLCBjb2x1bW5zKTtcclxuICAgIGVsc2UgaWYgKCF0aGlzLmZvbGRlcikge1xyXG4gICAgICBjb25zdCBmb2xkZXIgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSAnZmF2Jyk7XHJcbiAgICAgIGlmIChmb2xkZXIgJiYgZm9sZGVyLmNvbHVtbnMpXHJcbiAgICAgICAgdGhpcy5fYXBwZW5kY29sdW1ucyhmb2xkZXIuY29sdW1ucywgY29sdW1ucyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLl9jb25maWcuZm9sZGVycyAmJiB0aGlzLl9jb25maWcuZm9sZGVycy5jb2x1bW5zKVxyXG4gICAgICB0aGlzLl9hcHBlbmRjb2x1bW5zKHRoaXMuX2NvbmZpZy5mb2xkZXJzLmNvbHVtbnMsIGNvbHVtbnMpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbHVtbnMucHVzaCgnbnVtYmVyJyk7XHJcbiAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xyXG4gICAgICAgIGNvbHVtbnMucHVzaCgnc3ViamVjdCcpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbHVtbnMucHVzaCgndmFsdWUnKTtcclxuICAgIH1cclxuICAgIGNvbHVtbnMucHVzaCgnb3B0aW9ucycpO1xyXG4gICAgcmV0dXJuIGNvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hcHBlbmRjb2x1bW5zKHNvdXJjZTogRm9sZGVyQ29sdW1uW10sIGNvbHVtbnM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmN1c3RvbUNvbHVtbnMgPSBbXTtcclxuICAgIHNvdXJjZS5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBpZiAoSEVBREVSX0NPTFVNTl9OQU1FUy5pbmRleE9mKGMubmFtZSkgPiAtMSlcclxuICAgICAgICBjb2x1bW5zLnB1c2goYy5uYW1lKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuY3VzdG9tQ29sdW1ucy5wdXNoKGMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZW5kQWxsKGFjdGlvbjogc3RyaW5nLCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHF1ZXJ5UGFyYW1zKGFyZ3MpO1xyXG4gICAgdGhpcy5fZm9yRWFjaChpID0+XHJcbiAgICAgIHRoaXMuX21haWxib3guc2VuZChpLmlkLCBpLnZlcnNpb24sIGkuZm9ybUlkLCBudWxsLCBhY3Rpb24sIHBhcmFtcywgaS5yZWFkLCBpLmZvbGRlcklkLCBpLnJlY2VpdmVkKS5cclxuICAgICAgICBwaXBlKHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoaS5mb2xkZXJJZCAhPT0gdGhpcy5mb2xkZXJJZCkgdGhpcy5kYXRhU291cmNlLmRhdGEucmVtb3ZlKGkpXHJcbiAgICAgICAgfSkpLCAnU2VuZEVycicpLlxyXG4gICAgICBzdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgaWYgKGUubGVuZ3RoID4gMSkgdGhpcy5fc2IudG9hc3QoJ1NlbnRNYW55JywgZS5sZW5ndGgudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHRoaXMuX2FjdGlvbkFkamVjdGl2ZShhY3Rpb24sIHRydWUpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IGVbMF0ucmVjaXBpZW50cy5maWx0ZXIociA9PiByLm9yaWdpbklkID09PSBlWzBdLmlkKTtcclxuICAgICAgICAgIGlmIChvcmlnaW4ubGVuZ3RoKVxyXG4gICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5nZXRBbGwob3JpZ2luLm1hcChyID0+IHIudXNlcklkKSkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudFRvJywgZVswXS5udW1iZXIsXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3Rpb25BZGplY3RpdmUoYWN0aW9uKSwgdGhpcy5fdHJhbnNsYXRlLmpvaW4odS5tYXAodSA9PiB1Lm5hbWUpKSkpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudCcsIGVbMF0ubnVtYmVyLFxyXG4gICAgICAgICAgICAgIHRoaXMuX2FjdGlvbkFkamVjdGl2ZShhY3Rpb24pKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FjdGlvbkFkamVjdGl2ZShuYW1lOiBzdHJpbmcsIHBsdXJhbD86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gKChwbHVyYWwgPyAoYWN0aW9uLmFkamVjdGl2ZVBsdXJhbCB8fCBhY3Rpb24uYWRqZWN0aXZlKSA6IGFjdGlvbi5hZGplY3RpdmUpIHx8IGFjdGlvbi50aXRsZSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGJpemRvYy1ub25lICpuZ0lmPVwiZGF0YVNvdXJjZT8uZGF0YS5sZW5ndGggPT09IDBcIiB0aXRsZT1cIk5vTWVzc2FnZXNcIiBbc3VidGl0bGVdPVwiIWlzTW9iaWxlICYmIGZvbGRlcklkID09PSBEUkFGVCA/ICdBbHROJyA6IG51bGxcIiBpY29uPVwibWFpbF9vdXRsaW5lXCI+PC9iaXpkb2Mtbm9uZT5cclxuPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cInF1ZXJ5XCIgW3N0eWxlLnZpc2liaWxpdHldPVwibG9hZGluZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG1hdC10YWJsZSBjZGtEcm9wTGlzdCBjbGFzcz1cImRhdGEtdGFibGVcIlxyXG4gICAgICAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cImlzTW9iaWxlXCJcclxuICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRhdGFTb3VyY2U/LmRhdGFcIlxyXG4gICAgICAgICAgIGNka0Ryb3BMaXN0Q29ubmVjdGVkVG89XCJmb2xkZXJzXCJcclxuICAgICAgICAgICBjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZFxyXG4gICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBtYXRTb3J0IG11bHRpVGVtcGxhdGVEYXRhUm93cyAobWF0U29ydENoYW5nZSk9XCJzb3J0RGF0YSgpXCJcclxuICAgICAgICAgICBpZD1cImJyb3dzZS10YWJsZVwiIFtAbGlzdF09XCJkYXRhU291cmNlXCIgW3N0eWxlLmRpc3BsYXldPVwiZGF0YVNvdXJjZT8uZGF0YS5sZW5ndGggPycnOidub25lJ1wiPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+PC9kaXY+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIiBbYXJpYS1sYWJlbF09XCInQ2hlY2snfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCI+XHJcbiAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbYXJpYS1sYWJlbF09XCInQ2hlY2snfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKGl0ZW0pIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQoaXRlbSlcIj5cclxuICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwhLS0gZHJhZyAtLT5cclxuICAgICAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIGNka0RyYWdIYW5kbGVcclxuICAgICAgICAgICAgICAobW91c2Vkb3duKT1cImRyYWdEaXNhYmxlZCA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAobW91c2V1cCk9XCJkcmFnRGlzYWJsZWQgPSB0cnVlXCJcclxuICAgICAgICAgICAgICAodG91Y2hzdGFydCk9XCJkcmFnRGlzYWJsZWQgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKHRvdWNoZW5kKT1cImRyYWdEaXNhYmxlZCA9IHRydWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJhZ1wiIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgZnhIaWRlLnhzPlxyXG4gICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPi0tPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoaXRlbSwgJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidEZXRhaWxzJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RldGFpbHMnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPnt7aXRlbSA9PSBleHBhbmRlZEVsZW1lbnQgPyAndW5mb2xkX2xlc3MnIDogJ3VuZm9sZF9tb3JlJ319PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPCEtLSBOdW1iZXIgY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibnVtYmVyXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydOdW1iZXInIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0ubnVtYmVyfX0gPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBTdWJqZWN0IGNvbHVtbiAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YmplY3RcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J1N1YmplY3QnIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0uc3ViamVjdH19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib3duZXJcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J093bmVyJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj5cclxuICAgICAgPGJpemRvYy1pZGVudGl0eS1uYW1lICpuZ0lmPVwiaXRlbS5vd25lcklkXCIgW2lkZW50aXR5XT1cIml0ZW0ub3duZXJJZFwiIFtieV09XCJpdGVtLm93bmVyQnlJZFwiPjwvYml6ZG9jLWlkZW50aXR5LW5hbWU+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VuZGVyXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydTZW5kZXInIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPlxyXG4gICAgICA8Yml6ZG9jLWlkZW50aXR5LW5hbWUgKm5nSWY9XCJpdGVtLnNlbmRlcklkXCIgW2lkZW50aXR5XT1cIml0ZW0uc2VuZGVySWRcIiBbYnldPVwiaXRlbS5ieUlkXCI+PC9iaXpkb2MtaWRlbnRpdHktbmFtZT5cclxuICAgIDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVjZWl2ZWRcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J1JlY2VpdmVkJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj4ge3tpdGVtLnJlY2VpdmVkIHwgYW1DYWxlbmRhcn19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVjZWl2ZWRBZ29cIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPVwicmVjZWl2ZWRcIj57eydSZWNlaXZlZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbS5yZWNlaXZlZCB8IGFtQ2FsZW5kYXJcIj57e2l0ZW0ucmVjZWl2ZWQgfCBhbVRpbWVBZ299fTwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVwbGllZFwiPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3snUmVwbGllZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+IHt7aXRlbS5yZXBsaWVkIHwgYW1DYWxlbmRhcn19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNzdWVkXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57eydJc3N1ZWQnIHwgdHJhbnNsYXRlfX08L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJkYXRhLWNvbHVtblwiPiB7e2l0ZW0uaXNzdWVkIHwgYW1DYWxlbmRhcn19IDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNzdWVkQWdvXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj1cImlzc3VlZFwiPnt7J0lzc3VlZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbS5pc3N1ZWQgfCBhbUNhbGVuZGFyXCI+IHt7aXRlbS5pc3N1ZWQgfCBhbVRpbWVBZ299fSA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXRlXCI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj1cInN0YXRlSWRcIj57eydTdGF0dXMnIHwgdHJhbnNsYXRlIH19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiZGF0YS1jb2x1bW5cIj5cclxuICAgICAgPGJpemRvYy1zdGF0dXMgW3N0YXRlSWRdPVwiaXRlbS5zdGF0ZUlkXCI+PC9iaXpkb2Mtc3RhdHVzPlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNvbHVtbnNcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgY3VzdG9tQ29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiYy5uYW1lXCI+XHJcbiAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiB7e2MudGl0bGV9fSA8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYy50eXBlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0RhdGUnXCI+XHJcbiAgICAgICAgICAgIHt7aXRlbS5tb2RlbFtjLm5hbWVdIHwgYW1DYWxlbmRhciB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidEZWNpbWFsJ1wiPlxyXG4gICAgICAgICAgICB7e2l0ZW0ubW9kZWxbYy5uYW1lXSB8IG51bWJlciB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidCb29sZWFuJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cIml0ZW0ubW9kZWxbYy5uYW1lXVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICB7e2l0ZW0ubW9kZWxbYy5uYW1lXX19elxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1jZWxsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gVmFsdWUgY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmFsdWVcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7J0Ftb3VudCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBjbGFzcz1cImRhdGEtY29sdW1uXCI+IHt7aXRlbS52YWx1ZSB8IGN1cnJlbmN5IDogaXRlbS5jdXJyZW5jeUNvZGUgOiAnc3ltYm9sJyA6IGN1cnJlbmN5Rm9ybWF0fX0gPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBvcHRpb25zIGNvbHVtbiAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9wdGlvbnNcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmxhZyhpdGVtLCAkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZsYWdnZWQnfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidUb2dnbGVGbGFnZ2VkJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbiBbY2xhc3MuZG9jdW1lbnQtZmxhZ109XCJpdGVtLmZsYWdcIj57e2l0ZW0uZmxhZyA/ICdzdGFyJyA6ICdzdGFyX2JvcmRlcid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ2aWV3KGl0ZW0sICRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInVmlldycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiICpuZ0lmPVwiZW5hYmxlQW5hbHlzaXNcIj48bWF0LWljb24+ZGF0YV91c2FnZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGZ4SGlkZS54cyBbbWF0TWVudVRyaWdnZXJEYXRhXT1cIntpdGVtOiBpdGVtfVwiIFtiaXpkb2NUb29sdGlwXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09wdGlvbnMnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCBDb2x1bW4gLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJleHBhbmRlZERldGFpbFwiPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBbYXR0ci5jb2xzcGFuXT1cImRpc3BsYXllZENvbHVtbnMubGVuZ3RoXCIgW0B1cGRhdGVkXT1cIml0ZW0gPT0gdXBkYXRlZEVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5yZWFkLXJvd109XCJpdGVtLnJlYWRcIj5cclxuICAgICAgPGRpdiBbQGRldGFpbEV4cGFuZF09XCJpdGVtID09IGV4cGFuZGVkRWxlbWVudCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICA8Yml6ZG9jLWV4cGFuZGVkLWl0ZW0gW21vZGVsXT1cIml0ZW1cIiAqbmdJZj1cIml0ZW0gPT0gZXhwYW5kZWRFbGVtZW50XCI+PC9iaXpkb2MtZXhwYW5kZWQtaXRlbT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICA8bWF0LXJvdyBAaXRlbSBbQHVwZGF0ZWRdPVwiaXRlbSA9PSB1cGRhdGVkRWxlbWVudFwiXHJcbiAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBsZXQgZGF0YUluZGV4ID0gZGF0YUluZGV4OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIGNsYXNzPVwiZWxlbWVudC1yb3dcIlxyXG4gICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZHJhZ0Rpc2FibGVkXCJcclxuICAgICAgICAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cImRyYWdEaXNhYmxlZCA9IHRydWVcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRlZC1yb3cnOiBzZWxlY3RlZEVsZW1lbnQgPT09IGl0ZW0sXHJcbiAgICAgICdleHBhbmRlZC1yb3cnOiBleHBhbmRlZEVsZW1lbnQgPT09IGl0ZW0sXHJcbiAgICAgICAgICAgJ29kZC1yb3cnOiBkYXRhSW5kZXggJSAyLFxyXG4gICAgICAncmVhZC1yb3cnOiBpdGVtLnJlYWR9XCIgbWF0UmlwcGxlXHJcbiAgICAgICAgICAgKGNsaWNrKT1cIm9wZW4oaXRlbSwgJGV2ZW50KVwiPlxyXG4gICAgPGRpdiAqY2RrRHJhZ1ByZXZpZXc+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCI+PG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj48L2J1dHRvbj4gPHNwYW4+I3t7aXRlbS5udW1iZXJ9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyPlxyXG4gICAgICA8IS0tIG5vbmUgLS0+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1yb3c+XHJcbiAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBpdGVtOyA7IGxldCBkYXRhSW5kZXggPSBkYXRhSW5kZXg7IGNvbHVtbnM6IFsnZXhwYW5kZWREZXRhaWwnXVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJkZXRhaWwtcm93XCIgbWF0UmlwcGxlXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWRlZC1yb3cnOiBzZWxlY3RlZEVsZW1lbnQgPT09IGl0ZW0sXHJcbiAgICAgICAgICAgJ29kZC1yb3cnOiBkYXRhSW5kZXggJSAyXHJcbiAgICAgICAgICAgfVwiPjwvbWF0LXJvdz5cclxuPC9tYXQtdGFibGU+XHJcbjxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW2hpZGVQYWdlU2l6ZV09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cIlBBR0VfU0laRVwiIFtzdHlsZS5kaXNwbGF5XT1cIiFpc01vYmlsZSAmJiBkYXRhU291cmNlPy5kYXRhLmxlbmd0aD5QQUdFX1NJWkUgPyAnJzonbm9uZSdcIj48L21hdC1wYWdpbmF0b3I+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9wZW4oaXRlbSwgJGV2ZW50KVwiPnt7J09wZW4nfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwidG9nZ2xlUmVhZChpdGVtKVwiPnt7KGl0ZW0ucmVhZCA/J01hcmtBc1VucmVhZCc6J01hcmtBc1JlYWQnKXx0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNvcHkoaXRlbSlcIj57eydDb3B5J3wgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L21hdC1tZW51PlxyXG4iXX0=
|