ngx-st-sap-bp 1.0.1 → 1.0.2
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/components/sap-bp-base-create-edit.mjs +2 -4
- package/esm2020/lib/components/sap-bp-create/sap-bp-create.component.mjs +6 -4
- package/esm2020/lib/components/sap-bp-edit/sap-bp-edit.component.mjs +5 -3
- package/fesm2015/ngx-st-sap-bp.mjs +7 -5
- package/fesm2015/ngx-st-sap-bp.mjs.map +1 -1
- package/fesm2020/ngx-st-sap-bp.mjs +7 -5
- package/fesm2020/ngx-st-sap-bp.mjs.map +1 -1
- package/lib/components/sap-bp-create/sap-bp-create.component.d.ts +3 -2
- package/lib/components/sap-bp-edit/sap-bp-edit.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UntypedFormControl, UntypedFormGroup, Validators, } from '@angular/forms';
|
|
2
|
-
import { Injectable,
|
|
2
|
+
import { Injectable, QueryList, ViewChildren } from '@angular/core';
|
|
3
3
|
import { MatPaginator } from '@angular/material/paginator';
|
|
4
4
|
import { SapBpTypeTranslateEnum } from '../models/sap-bp-type-translate.enum';
|
|
5
5
|
import { SapBpTypeEnum } from '../models/sap-bp-type.enum';
|
|
@@ -482,7 +482,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
482
482
|
}], ctorParameters: function () { return [{ type: i1.SapBpService }, { type: i2.MatDialog }, { type: i3.SapBpHelperService }]; }, propDecorators: { paginator: [{
|
|
483
483
|
type: ViewChildren,
|
|
484
484
|
args: [MatPaginator]
|
|
485
|
-
}], userSettings: [{
|
|
486
|
-
type: Input
|
|
487
485
|
}] } });
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWJhc2UtY3JlYXRlLWVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3Qtc2FwLWJwL3NyYy9saWIvY29tcG9uZW50cy9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQVd4QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU8zRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUkzRCxNQUFNLE9BQWdCLG1CQUFtQjtJQXVEdkMsWUFDWSxZQUEwQixFQUMxQixNQUFpQixFQUNqQixrQkFBc0M7UUFGdEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBekR0QixjQUFTLEdBQUcsSUFBSSxTQUFTLEVBQWdCLENBQUM7UUFvQnRFLDBCQUFxQixHQUE4QixFQUFFLENBQUM7UUFDdEQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRzdCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBRXhDLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBRXhDLGlC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QUE0QjtRQUNoRCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssc0JBQXNCLENBQUMsUUFBUTtnQkFDbEMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssc0JBQXNCLENBQUMsSUFBSTtnQkFDOUIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQzVCLEtBQUssc0JBQXNCLENBQUMsUUFBUTtnQkFDbEMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QixDQUM5QixJQUFtQjtRQUVuQixRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssYUFBYSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sc0JBQXNCLENBQUMsUUFBUSxDQUFDO1lBQ3pDLEtBQUssYUFBYSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDO1lBQ3JDLEtBQUssYUFBYSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sc0JBQXNCLENBQUMsUUFBUSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQzs7Z0hBdm9CbUIsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsVUFBVTs0SkFFbUIsU0FBUztzQkFBcEMsWUFBWTt1QkFBQyxZQUFZO2dCQUcxQixZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYXBCcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYXAtYnAuc2VydmljZSc7XHJcbmltcG9ydCB7IFNhcEJwR3JvdXBDb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLWdyb3VwLWNvZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFNoaXBUeXBlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXNoaXAtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwSW5kdXN0cnlNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtaW5kdXN0cnkubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFRlY2huaWNpYW5Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtdGVjaG5pY2lhbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwU2FsZXNFbXBsb3llZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1icC1zYWxlcy1lbXBsb3llZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwVGVycml0b3J5TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXRlcnJpdG9yeS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwR2xvYmFsSWRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtZ2xvYmFsLWlkLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBDb250YWN0UGVyc29uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLWNvbnRhY3QtcGVyc29uLm1vZGVsJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNhcEJwQWRkcmVzc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1icC1hZGRyZXNzLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBQYXltZW50VGVybXNNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtcGF5bWVudC10ZXJtcy5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwUHJpY2VsaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXByaWNlbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwUXJ5R3JvdXBNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtcXJ5LWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBDcmVhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtY3JlYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1icC10eXBlLXRyYW5zbGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgU2FwQnBUeXBlRW51bSB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU2FwQnBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FwLWJwLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2FwQnBUYXggfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXRheC5tb2RlbCc7XHJcbmltcG9ydCB7IEJwVGF4VHlwZUVudW0gfSBmcm9tICcuLi9tb2RlbHMvYnAtdGF4LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNhcEJwRWRpdEF1dGhGbGFnc0VudW0gfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLWVkaXQtYXV0aC1mbGFncy5lbnVtJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhcEJwQmFzZUNyZWF0ZUVkaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3IgPSBuZXcgUXVlcnlMaXN0PE1hdFBhZ2luYXRvcj4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICB1c2VyU2V0dGluZ3M6IFNhcEJwVXNlclNldHRpbmdzO1xyXG5cclxuICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBncm91cENvZGVMaXN0OiBTYXBCcEdyb3VwQ29kZU1vZGVsW107XHJcbiAgc2hpcFR5cGVMaXN0OiBTYXBCcFNoaXBUeXBlTW9kZWxbXTtcclxuICBpbmR1c3RyeUxpc3Q6IFNhcEJwSW5kdXN0cnlNb2RlbFtdO1xyXG4gIHRlY2huaWNpYW5MaXN0OiBTYXBCcFRlY2huaWNpYW5Nb2RlbFtdO1xyXG4gIHNhbGVzRW1wbG95ZWVMaXN0OiBTYXBCcFNhbGVzRW1wbG95ZWVNb2RlbFtdO1xyXG4gIHRlcnJpdG9yeUxpc3Q6IFNhcEJwVGVycml0b3J5TW9kZWxbXTtcclxuICBnbG9iYWxJZExpc3Q6IFNhcEJwR2xvYmFsSWRNb2RlbFtdO1xyXG4gIHBheW1lbnRUZXJtc0xpc3Q6IFNhcEJwUGF5bWVudFRlcm1zTW9kZWxbXTtcclxuICBwcmljZUxpc3Q6IFNhcEJwUHJpY2VsaXN0TW9kZWxbXTtcclxuICBxcnlHcm91cExpc3Q6IFNhcEJwUXJ5R3JvdXBNb2RlbFtdO1xyXG4gIGN1cnJlbmN5TGlzdDogc3RyaW5nW107XHJcbiAgYnBUeXBlQWxsb3dlZDogU2FwQnBUeXBlRW51bVtdO1xyXG5cclxuICBpbml0Q29udGFjdFBlcnNvbkxpc3Q6IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsW10gPSBbXTtcclxuICBjb250YWN0UGVyc29uQ2hhbmdlZCA9IGZhbHNlO1xyXG4gIGNvbnRhY3RQZXJzb25zOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdO1xyXG5cclxuICBhZGRyZXNzQ2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICBpbml0QmlsbFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWxbXSA9IFtdO1xyXG4gIGJpbGxUb0FkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsW10gPSBbXTtcclxuXHJcbiAgaW5pdFNoaXBUb0FkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsW10gPSBbXTtcclxuICBzaGlwVG9BZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbFtdID0gW107XHJcblxyXG4gIHNob3dRcnlHcm91cCA9IGZhbHNlO1xyXG5cclxuICByZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuXHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcblxyXG4gIHNhbGVzUGVyc29uT25seU9uQWRkcmVzcyA9IGZhbHNlO1xyXG4gIGJwVGF4VHlwZSA9IEJwVGF4VHlwZUVudW07XHJcblxyXG4gIHRheGVzTGlzdDogU2FwQnBUYXhbXSA9IFtdO1xyXG4gIHJlZnJlc2hpbmdUYXggPSBmYWxzZTtcclxuXHJcbiAgcGhvbmVNYXhMZW5ndGggPSAyMDtcclxuICBwaG9uZVBsYWNlaG9sZGVyID0gJyc7XHJcbiAgcGhvbmVNYXNrID0gJyc7XHJcblxyXG4gIHNob3dMb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgcHJvdGVjdGVkIG9sZENhcmRDb2RlID0gJyc7XHJcbiAgcHJvdGVjdGVkIGVkaXRNb2RlID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIGNvbnZlcnROb3RVUyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBzYXBCcFNlcnZpY2U6IFNhcEJwU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByb3RlY3RlZCBzYXBCcEhlbHBlclNlcnZpY2U6IFNhcEJwSGVscGVyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgaW5pdEZvcm0oYnBEZXRhaWxzPzogU2FwQnBNb2RlbCkge1xyXG4gICAgaWYgKGJwRGV0YWlscykge1xyXG4gICAgICB0aGlzLmVkaXRNb2RlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy51c2VyU2V0dGluZ3MucGhvbmVNYXNrKSB7XHJcbiAgICAgIHRoaXMucGhvbmVQbGFjZWhvbGRlciA9ICcoOTk5KSA5OTkgOTk5OSBleHQuIDk5OTk5OTknO1xyXG4gICAgICB0aGlzLnBob25lTWFzayA9ICcoMDAwKSAwMDAgMDAwMCBleHQuIDAwMDAwMDAnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zYWxlc1BlcnNvbk9ubHlPbkFkZHJlc3MgPVxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5icEVkaXRTYWxlc1BlcnNvbk9uQWRkcmVzcztcclxuXHJcbiAgICBpZiAodGhpcy51c2VyU2V0dGluZ3MuYnBUYXhUeXBlID09PSBCcFRheFR5cGVFbnVtLkV1KSB7XHJcbiAgICAgIHRoaXMubG9hZFRheGVzKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGJwRGV0YWlscz8uY2FyZFR5cGUgPT09IFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uTGVhZCAmJlxyXG4gICAgICAhdGhpcy51c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb252ZXJ0Tm90VVMgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgY2FyZENvZGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5jYXJkQ29kZSA/IGJwRGV0YWlscy5jYXJkQ29kZSA6ICcnLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oTC18Qy18Uy0pLiokJyldXHJcbiAgICAgICksXHJcbiAgICAgIGNhcmROYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uY2FyZE5hbWUgPyBicERldGFpbHMuY2FyZE5hbWUgOiAnJyxcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICksXHJcbiAgICAgIGNhcmRUeXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uY2FyZFR5cGVcclxuICAgICAgICAgID8gdGhpcy5jb252ZXJ0QnBUeXBlKGJwRGV0YWlscy5jYXJkVHlwZSlcclxuICAgICAgICAgIDogdGhpcy51c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0XHJcbiAgICAgICAgICAgID8gU2FwQnBUeXBlRW51bS5MZWFkXHJcbiAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxyXG4gICAgICApLFxyXG4gICAgICBjYXJkRm9yZWlnbk5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5jYXJkRm9yaWduTmFtZSA/IGJwRGV0YWlscy5jYXJkRm9yaWduTmFtZSA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIGdyb3VwQ29kZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/Lmdyb3VwQ29kZSA/IGJwRGV0YWlscy5ncm91cENvZGUgOiBudWxsLFxyXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICAgKSxcclxuICAgICAgY3VycmVuY3k6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5jdXJyZW5jeSA/IGJwRGV0YWlscy5jdXJyZW5jeSA6IHRoaXMudXNlclNldHRpbmdzLmN1cnJlbmN5LFxyXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICAgKSxcclxuICAgICAgbGljVHJhZE51bTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmxpY1RyYWROdW0gPyBicERldGFpbHMubGljVHJhZE51bSA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIHBob25lMTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnBob25lMSA/IGJwRGV0YWlscy5waG9uZTEgOiAnJyxcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICksXHJcbiAgICAgIHBob25lMjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChicERldGFpbHM/LnBob25lMiA/IGJwRGV0YWlscy5waG9uZTIgOiAnJyksXHJcbiAgICAgIGNlbGx1bGFyOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uY2VsbHVsYXIgPyBicERldGFpbHMuY2VsbHVsYXIgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBmYXg6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woYnBEZXRhaWxzPy5mYXggPyBicERldGFpbHMuZmF4IDogJycpLFxyXG4gICAgICBlbWFpbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChicERldGFpbHM/LmVtYWlsID8gYnBEZXRhaWxzLmVtYWlsIDogJycpLFxyXG4gICAgICB3ZWJTaXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8ud2ViU2l0ZSA/IGJwRGV0YWlscy53ZWJTaXRlIDogJydcclxuICAgICAgKSxcclxuICAgICAgc2hpcFR5cGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5zaGlwVHlwZUNvZGUgPyBicERldGFpbHMuc2hpcFR5cGVDb2RlIDogbnVsbFxyXG4gICAgICApLFxyXG4gICAgICBpbmR1c3RyeUNvZGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5pbmR1c3RyeUNvZGUgPyBicERldGFpbHMuaW5kdXN0cnlDb2RlIDogbnVsbFxyXG4gICAgICApLFxyXG4gICAgICBhZGRJZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChicERldGFpbHM/LmFkZElkID8gYnBEZXRhaWxzLmFkZElkIDogJycpLFxyXG4gICAgICB2YXRJZFVuaWZpZWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy52YXRJZFVuaWZpZWQgPyBicERldGFpbHMudmF0SWRVbmlmaWVkIDogJydcclxuICAgICAgKSxcclxuICAgICAgcmVnaXN0ZXJObzogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnJlZ2lzdGVyTm8gPyBicERldGFpbHMucmVnaXN0ZXJObyA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIG5vdGVzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGJwRGV0YWlscz8ubm90ZXMgPyBicERldGFpbHMubm90ZXMgOiAnJyksXHJcbiAgICAgIHRlY2huaWNpYW46IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy50ZWNobmljaWFuQ29kZSA/IGJwRGV0YWlscy50ZWNobmljaWFuQ29kZSA6IG51bGxcclxuICAgICAgKSxcclxuICAgICAgc2FsZXNFbXBsb3llZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnNhbGVzUGVyc29uQ29kZSA/IGJwRGV0YWlscy5zYWxlc1BlcnNvbkNvZGUgOiBudWxsLFxyXG4gICAgICAgICF0aGlzLnNhbGVzUGVyc29uT25seU9uQWRkcmVzcyA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBudWxsXHJcbiAgICAgICksXHJcbiAgICAgIHRlcnJpdG9yeTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnRlcnJpdG9yeUNvZGUgPyBicERldGFpbHMudGVycml0b3J5Q29kZSA6IG51bGxcclxuICAgICAgKSxcclxuICAgICAgZ2xvYmFsQWNjb3VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/Lmdsb2JhbEFjY291bnQgPyBicERldGFpbHMuZ2xvYmFsQWNjb3VudCA6ICcnLFxyXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICAgKSxcclxuICAgICAgZ2xvYmFsSWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5nbG9iYWxJZCA/IGJwRGV0YWlscy5nbG9iYWxJZCA6IG51bGxcclxuICAgICAgKSxcclxuICAgICAgcGF5bWVudENvZGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5wYXltZW50Q29kZSA/IGJwRGV0YWlscy5wYXltZW50Q29kZSA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIHByaWNlTGlzdDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnByaWNlbGlzdENvZGUgPyBicERldGFpbHMucHJpY2VsaXN0Q29kZSA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIGRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uZGVsaXZlcnlJbnN0cnVjdGlvbnMgPyBicERldGFpbHMuZGVsaXZlcnlJbnN0cnVjdGlvbnMgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBmcmVlVGV4dDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmZyZWVUZXh0ID8gYnBEZXRhaWxzLmZyZWVUZXh0IDogJydcclxuICAgICAgKSxcclxuICAgICAgaW5hY3RpdmVDb21tZW50OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uaW5hY3RpdmVDb21tZW50ID8gYnBEZXRhaWxzLmluYWN0aXZlQ29tbWVudCA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXR1czogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmluYWN0aXZlUmVhc29uID8gYnBEZXRhaWxzLmluYWN0aXZlUmVhc29uIDogJ0FjdGl2ZSdcclxuICAgICAgKSxcclxuICAgICAgdmF0U3RhdHVzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8udmF0U3RhdHVzID8gYnBEZXRhaWxzLnZhdFN0YXR1cyA6ICcnLFxyXG4gICAgICAgIHRoaXMudXNlclNldHRpbmdzLmJwVGF4VHlwZSAhPT0gQnBUYXhUeXBlRW51bS5Ob1RheFxyXG4gICAgICAgICAgPyBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICAgICA6IG51bGxcclxuICAgICAgKSxcclxuICAgICAgdGF4Q29kZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnRheENvZGUgPyBicERldGFpbHMudGF4Q29kZSA6ICcnXHJcbiAgICAgICksXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgJ2NvdW50cnlDb2RlUGhvbmUxJyxcclxuICAgICAgICBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZTEnKSEuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjb3VudHJ5Q29kZVBob25lMScpIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUxJykhLmVuYWJsZSgpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnVzZXJTZXR0aW5ncy5waG9uZU1hc2spIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQaG9uZVBsYWNlaG9sZGVyKHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lMScpIS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldEJwVHlwZUFsbG93ZWQoKTtcclxuXHJcbiAgICBpZiAoYnBEZXRhaWxzKSB7XHJcbiAgICAgIHRoaXMuaW5pdENvbnRhY3RQZXJzb25MaXN0ID0gYnBEZXRhaWxzLmNvbnRhY3RQZXJzb25MaXN0O1xyXG4gICAgICB0aGlzLmluaXRCaWxsVG9BZGRyZXNzID0gYnBEZXRhaWxzLmFkZHJlc3NCaWxsVG9MaXN0O1xyXG4gICAgICB0aGlzLmluaXRTaGlwVG9BZGRyZXNzID0gYnBEZXRhaWxzLmFkZHJlc3NTaGlwVG9MaXN0O1xyXG5cclxuICAgICAgdGhpcy5sb2FkR3JvdXBDb2RlTGlzdCgpO1xyXG4gICAgICB0aGlzLmxvYWRRcnlHcm91cChmYWxzZSwgYnBEZXRhaWxzLnFyeUdyb3VwTGlzdCk7XHJcblxyXG4gICAgICBpZiAodGhpcy51c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0KSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZFR5cGUnKSEuZGlzYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhcmRDb2RlJykhLmRpc2FibGUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5kaXNhYmxlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbnZlcnROb3RVUykge1xyXG4gICAgICAgICAgdGhpcy5vbGRDYXJkQ29kZSA9IGJwRGV0YWlscy5jYXJkQ29kZTtcclxuXHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGJwRGV0YWlscz8uY2FyZFR5cGUgPT09IFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uTGVhZCAmJlxyXG4gICAgICAgICAgICAhdGhpcy51c2VyU2V0dGluZ3MuYnBFZGl0QWxsb3dDb252ZXJ0TGVhZFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhcmRUeXBlJykhLmRpc2FibGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZFR5cGUnKSEuZGlzYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzSW5FZGl0KGJwRGV0YWlscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy51c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0KSB7XHJcbiAgICAgICAgdGhpcy5zZXROZXdCcElkKFNhcEJwVHlwZUVudW0uTGVhZCk7XHJcbiAgICAgICAgdGhpcy5sb2FkR3JvdXBDb2RlTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFBheW1lbnRUZXJtKFNhcEJwVHlwZUVudW0uTGVhZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkVHlwZScpIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWw6IFNhcEJwVHlwZUVudW0pID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29udmVydE5vdFVTKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkR3JvdXBDb2RlTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFBheW1lbnRUZXJtKHZhbCk7XHJcblxyXG4gICAgICAgIGlmICh2YWwgPT09IFNhcEJwVHlwZUVudW0uQ3VzdG9tZXIpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhcmRDb2RlJykhLmVuYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy5zZXROZXdCcElkKFNhcEJwVHlwZUVudW0uQ3VzdG9tZXIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5zZXRWYWx1ZSh0aGlzLm9sZENhcmRDb2RlKTtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhcmRDb2RlJykhLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbCB8fCB2YWwgPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZXROZXdCcElkKHZhbCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRHcm91cENvZGVMaXN0KCk7XHJcbiAgICAgICAgICB0aGlzLnNldERlZmF1bHRQYXltZW50VGVybSh2YWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtLmdldCgnZ2xvYmFsQWNjb3VudCcpIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT09ICdZZXMnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnZ2xvYmFsSWQnKSEuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2dsb2JhbElkJykhLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW5pdExvYWRlcnMoKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hDYXJkQ29kZSgpIHtcclxuICAgIHRoaXMuc2V0TmV3QnBJZCh0aGlzLmZvcm0uZ2V0KCdjYXJkVHlwZScpIS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBsb2FkR3JvdXBDb2RlTGlzdChyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cENvZGUodGhpcy5mb3JtLmdldCgnY2FyZFR5cGUnKSEudmFsdWUsIHJlZnJlc2gpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLmdyb3VwQ29kZUxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnZ3JvdXBDb2RlJykhLnNldFZhbHVlKHJlcyA/IHJlc1swXS5pZCA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFNoaXBUeXBlKHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0U2hpcFR5cGUocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc2hpcFR5cGVMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkSW5kdXN0cnkocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHRydWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRJbmR1c3RyeShyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5pbmR1c3RyeUxpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRUZWNobmljaWFuKHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0VGVjaG5pY2lhbihyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy50ZWNobmljaWFuTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFNhbGVzRW1wbG95ZWUocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHRydWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRTYWxlc0VtcGxveWVlKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNhbGVzRW1wbG95ZWVMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGVycml0b3J5KHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0VGVycml0b3J5KHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnRlcnJpdG9yeUxpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRHbG9iYWxJZChyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldEdsb2JhbElkKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmdsb2JhbElkTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFBheW1lbnRUZXJtcyhyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFBheW1lbnRUZXJtcyhyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5wYXltZW50VGVybXNMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmVkaXRNb2RlKSB7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IHRoaXMuZm9ybS5nZXQoJ2NhcmRUeXBlJykhLnZhbHVlO1xyXG4gICAgICAgIGlmICh0eXBlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldERlZmF1bHRQYXltZW50VGVybSh0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFByaWNlTGlzdChyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFByaWNlbGlzdChyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5wcmljZUxpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0UEwgPSB0aGlzLnByaWNlTGlzdC5maW5kKHBsID0+IHBsLmlzRGVmYXVsdCk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQTCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgncHJpY2VMaXN0JykhLnNldFZhbHVlKGRlZmF1bHRQTC5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRRcnlHcm91cChyZWZyZXNoID0gZmFsc2UsIGJhc2VWYWx1ZXM/OiBTYXBCcFFyeUdyb3VwTW9kZWxbXSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0UXJ5R3JvdXAocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMucXJ5R3JvdXBMaXN0ID0gcmVzLm1hcCgoZ3JvdXAsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgZ3JvdXAudmFsdWUgPSBiYXNlVmFsdWVzID8gYmFzZVZhbHVlc1tpbmRleF0udmFsdWUgOiAnTic7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZEN1cnJlbmN5KHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0Q3VycmVuY3kocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuY3VycmVuY3lMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGF4ZXMocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdUYXggPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0VGF4ZXMocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudGF4ZXNMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdUYXggPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0U2hpcFRvQWRkcmVzcyhldmVudDogU2FwQnBBZGRyZXNzTW9kZWxbXSkge1xyXG4gICAgdGhpcy5zaGlwVG9BZGRyZXNzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBzZXRCaWxsVG9BZGRyZXNzKGV2ZW50OiBTYXBCcEFkZHJlc3NNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmJpbGxUb0FkZHJlc3MgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHNldEFkZHJlc3NDaGFuZ2VkKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmFkZHJlc3NDaGFuZ2VkID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlRWRpdEluZm9ybWF0aW9uRGF0YShicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlRWRpdEluZm9ybWF0aW9uRGF0YShcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICBicERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlRWRpdENvbnRhY3RQZXJzb24oYnBEZXRhaWxzOiBTYXBCcE1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUVkaXRDb250YWN0UGVyc29uKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmZvcm0sXHJcbiAgICAgIGJwRGV0YWlsc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVFZGl0QmlsbFRvQWRkcmVzcyhicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlRWRpdEJpbGxUb0FkZHJlc3MoXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVkaXRTaGlwVG9BZGRyZXNzKGJwRGV0YWlsczogU2FwQnBNb2RlbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVFZGl0U2hpcFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICBicERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlQWRkU2hpcFRvQWRkcmVzcyhicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlQWRkU2hpcFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICBicERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlQWRkQ29udGFjdFBlcnNvbihicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlQWRkQ29udGFjdFBlcnNvbihcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICBicERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlQWRkQmlsbFRvQWRkcmVzcyhicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlQWRkQmlsbFRvQWRkcmVzcyhcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICBicERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaW5pdExvYWRlcnMoKSB7XHJcbiAgICAvLyB0aGlzLmxvYWRHcm91cENvZGVMaXN0KCk7XHJcbiAgICB0aGlzLmxvYWRTaGlwVHlwZSgpO1xyXG4gICAgdGhpcy5sb2FkSW5kdXN0cnkoKTtcclxuICAgIHRoaXMubG9hZFRlY2huaWNpYW4oKTtcclxuICAgIHRoaXMubG9hZFNhbGVzRW1wbG95ZWUoKTtcclxuICAgIHRoaXMubG9hZFRlcnJpdG9yeSgpO1xyXG4gICAgdGhpcy5sb2FkUGF5bWVudFRlcm1zKCk7XHJcbiAgICB0aGlzLmxvYWRQcmljZUxpc3QoKTtcclxuICAgIHRoaXMubG9hZEN1cnJlbmN5KCk7XHJcbiAgICB0aGlzLmxvYWRHbG9iYWxJZCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICB0aGlzLmxvYWRRcnlHcm91cCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWxpZGF0b3JzSW5FZGl0KGJwRGV0YWlsczogU2FwQnBNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZUVkaXRJbmZvcm1hdGlvbkRhdGEoYnBEZXRhaWxzKSkge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkTmFtZScpIS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkVHlwZScpIS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdncm91cENvZGUnKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY3VycmVuY3knKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUxJykhLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NhbGVzRW1wbG95ZWUnKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnZ2xvYmFsQWNjb3VudCcpIS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRQaG9uZVBsYWNlaG9sZGVyKGNvdW50cnlDb2RlOiBzdHJpbmcpIHtcclxuICAgIC8vIDIwIHNhcCBsZW5ndGgsIC00IHNwYWNlcywgKzEwIGV4dHJhIGNoYXIgZm9yIHZpc2libGVcclxuICAgIHRoaXMucGhvbmVNYXhMZW5ndGggPSAyMCAtIGNvdW50cnlDb2RlLmxlbmd0aCAtIDQgKyAxMDtcclxuICAgIGNvbnN0IGV4dExlbmd0aCA9IHRoaXMucGhvbmVNYXhMZW5ndGggLSAyMDtcclxuXHJcbiAgICBsZXQgcGhvbmVQbGFjZWhvbGRlciA9ICcoOTk5KSA5OTkgOTk5OSBleHQuICc7XHJcbiAgICBsZXQgcGhvbmVNYXNrID0gJygwMDApIDAwMCAwMDAwIGV4dC4gJztcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4dExlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHBob25lUGxhY2Vob2xkZXIgKz0gJzknO1xyXG4gICAgICBwaG9uZU1hc2sgKz0gJzknO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGhvbmVQbGFjZWhvbGRlciA9IHBob25lUGxhY2Vob2xkZXI7XHJcbiAgICB0aGlzLnBob25lTWFzayA9IHBob25lTWFzaztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcmVwYXJlRGF0YVRvU2VuZCgpOiBTYXBCcENyZWF0ZU1vZGVsIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgIGxldCBwaG9uZTEgPSB2YWx1ZXMucGhvbmUxO1xyXG5cclxuICAgIGlmICghdGhpcy5lZGl0TW9kZSAmJiB0aGlzLnBob25lTWFzaykge1xyXG4gICAgICBwaG9uZTEgPVxyXG4gICAgICAgIHZhbHVlcy5jb3VudHJ5Q29kZVBob25lMSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICB2YWx1ZXMucGhvbmUxLnNsaWNlKDAsIDMpICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIHZhbHVlcy5waG9uZTEuc2xpY2UoMywgNikgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgdmFsdWVzLnBob25lMS5zbGljZSg2LCAxMCkgK1xyXG4gICAgICAgICh2YWx1ZXMucGhvbmUxLnNwbGl0KCd0JylbMV0gPyAneCcgKyB2YWx1ZXMucGhvbmUxLnNwbGl0KCd0JylbMV0gOiAnJyk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmVkaXRNb2RlKSB7XHJcbiAgICAgIHBob25lMSA9IHZhbHVlcy5jb3VudHJ5Q29kZVBob25lMSArICcgJyArIHBob25lMTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjYXJkRm9yaWduTmFtZTogdmFsdWVzLmNhcmRGb3JlaWduTmFtZSxcclxuICAgICAgZ3JvdXBDb2RlOiB2YWx1ZXMuZ3JvdXBDb2RlLFxyXG4gICAgICBjdXJyZW5jeTogdmFsdWVzLmN1cnJlbmN5LFxyXG4gICAgICBsaWNUcmFkTnVtOiB2YWx1ZXMubGljVHJhZE51bSxcclxuICAgICAgcGhvbmUxOiBwaG9uZTEsXHJcbiAgICAgIHBob25lMjogdmFsdWVzLnBob25lMixcclxuICAgICAgY2VsbHVsYXI6IHZhbHVlcy5jZWxsdWxhcixcclxuICAgICAgZmF4OiB2YWx1ZXMuZmF4LFxyXG4gICAgICBlbWFpbDogdmFsdWVzLmVtYWlsLFxyXG4gICAgICB3ZWJTaXRlOiB2YWx1ZXMud2ViU2l0ZSxcclxuICAgICAgc2hpcFR5cGVDb2RlOiB2YWx1ZXMuc2hpcFR5cGUsXHJcbiAgICAgIGluZHVzdHJ5Q29kZTogdmFsdWVzLmluZHVzdHJ5Q29kZSxcclxuICAgICAgYWRkSWQ6IHZhbHVlcy5hZGRJZCxcclxuICAgICAgdmF0SWRVbmlmaWVkOiB2YWx1ZXMudmF0SWRVbmlmaWVkLFxyXG4gICAgICByZWdpc3Rlck5vOiB2YWx1ZXMucmVnaXN0ZXJObyxcclxuICAgICAgbm90ZXM6IHZhbHVlcy5ub3RlcyxcclxuICAgICAgdGVjaG5pY2lhbkNvZGU6IHZhbHVlcy50ZWNobmljaWFuLFxyXG4gICAgICBzYWxlc1BlcnNvbkNvZGU6IHZhbHVlcy5zYWxlc0VtcGxveWVlLFxyXG4gICAgICB0ZXJyaXRvcnlDb2RlOiB2YWx1ZXMudGVycml0b3J5LFxyXG4gICAgICBnbG9iYWxBY2NvdW50OiB2YWx1ZXMuZ2xvYmFsQWNjb3VudCxcclxuICAgICAgZ2xvYmFsSWQ6IHZhbHVlcy5nbG9iYWxJZCxcclxuICAgICAgdmFsaWRGb3I6IHZhbHVlcy5zdGF0dXMgPT09ICdBY3RpdmUnID8gJ1knIDogJ04nLFxyXG4gICAgICBwYXltZW50Q29kZTogdmFsdWVzLnBheW1lbnRDb2RlLFxyXG4gICAgICBwcmljZWxpc3RDb2RlOiB2YWx1ZXMucHJpY2VMaXN0LFxyXG4gICAgICBkZWxpdmVyeUluc3RydWN0aW9uczogdmFsdWVzLmRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zLFxyXG4gICAgICBmcmVlVGV4dDogdmFsdWVzLmZyZWVUZXh0LFxyXG4gICAgICBjb250YWN0UGVyc29uTGlzdDogdGhpcy5jb250YWN0UGVyc29ucyB8fCBbXSxcclxuICAgICAgYWRkcmVzc1NoaXBUb0xpc3Q6IHRoaXMuc2hpcFRvQWRkcmVzcyB8fCBbXSxcclxuICAgICAgYWRkcmVzc0JpbGxUb0xpc3Q6IHRoaXMuYmlsbFRvQWRkcmVzcyB8fCBbXSxcclxuICAgICAgcXJ5R3JvdXBMaXN0OiB0aGlzLnFyeUdyb3VwTGlzdCxcclxuICAgICAgYWRkcmVzc0NoYW5nZTogdGhpcy5hZGRyZXNzQ2hhbmdlZCxcclxuICAgICAgY29udGFjdENoYW5nZTogdGhpcy5jb250YWN0UGVyc29uQ2hhbmdlZCxcclxuICAgICAgY2FyZENvZGU6IHZhbHVlcy5jYXJkQ29kZSxcclxuICAgICAgY2FyZE5hbWU6IHZhbHVlcy5jYXJkTmFtZSxcclxuICAgICAgY2FyZFR5cGU6IHRoaXMuY29udmVydFRvVHJhbnNsYXRlQnBUeXBlKHZhbHVlcy5jYXJkVHlwZSksXHJcbiAgICAgIG9sZENhcmRDb2RlOiB0aGlzLm9sZENhcmRDb2RlIHx8IG51bGwsXHJcbiAgICAgIGluYWN0aXZlUmVhc29uOiB2YWx1ZXMuc3RhdHVzLFxyXG4gICAgICBpbmFjdGl2ZUNvbW1lbnQ6IHZhbHVlcy5zdGF0dXMgPT09ICdBY3RpdmUnID8gJycgOiB2YWx1ZXMuaW5hY3RpdmVDb21tZW50LFxyXG4gICAgICB2YXRTdGF0dXM6IHZhbHVlcy52YXRTdGF0dXMsXHJcbiAgICAgIHRheENvZGU6IHZhbHVlcy50YXhDb2RlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TmV3QnBJZChicFR5cGU6IFNhcEJwVHlwZUVudW0pIHtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldE5leHRCcElkKGJwVHlwZSkuc3Vic2NyaWJlKG5ld0JwSWQgPT4ge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5zZXRWYWx1ZShuZXdCcElkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0UGF5bWVudFRlcm0odmFsOiBTYXBCcFR5cGVFbnVtKSB7XHJcbiAgICBpZiAodGhpcy5wYXltZW50VGVybXNMaXN0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IFNhcEJwVHlwZUVudW0uU3VwcGxpZXIpIHtcclxuICAgICAgICBjb25zdCBwYXltZW50VGVybUZvdW5kID0gdGhpcy5wYXltZW50VGVybXNMaXN0LmZpbmQoXHJcbiAgICAgICAgICBwYXltZW50VGVybSA9PiBwYXltZW50VGVybS5pc0RlZmF1bHRGb3JTdXBwbGllclxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHBheW1lbnRUZXJtRm91bmQpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3BheW1lbnRDb2RlJykhLnNldFZhbHVlKHBheW1lbnRUZXJtRm91bmQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwYXltZW50VGVybUZvdW5kID0gdGhpcy5wYXltZW50VGVybXNMaXN0LmZpbmQoXHJcbiAgICAgICAgICBwYXltZW50VGVybSA9PiBwYXltZW50VGVybS5pc0RlZmF1bHRGb3JDdXN0b21lclxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHBheW1lbnRUZXJtRm91bmQpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3BheW1lbnRDb2RlJykhLnNldFZhbHVlKHBheW1lbnRUZXJtRm91bmQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRCcFR5cGVBbGxvd2VkKCkge1xyXG4gICAgdGhpcy5icFR5cGVBbGxvd2VkID0gW107XHJcbiAgICBjb25zdCBjYXJkVHlwZSA9IHRoaXMuZm9ybS5nZXQoJ2NhcmRUeXBlJykhLnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmVkaXRNb2RlKSB7XHJcbiAgICAgIGlmICh0aGlzLnVzZXJTZXR0aW5ncy5vcmFjbGVCcEVkaXQpIHtcclxuICAgICAgICB0aGlzLmJwVHlwZUFsbG93ZWQucHVzaChjYXJkVHlwZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGNhcmRUeXBlID09PSBTYXBCcFR5cGVFbnVtLkxlYWQpIHtcclxuICAgICAgICAgIHRoaXMuYnBUeXBlQWxsb3dlZC5wdXNoKFNhcEJwVHlwZUVudW0uTGVhZCk7XHJcbiAgICAgICAgICB0aGlzLmJwVHlwZUFsbG93ZWQucHVzaChTYXBCcFR5cGVFbnVtLkN1c3RvbWVyKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGNhcmRUeXBlID09PSBTYXBCcFR5cGVFbnVtLlN1cHBsaWVyKSB7XHJcbiAgICAgICAgICB0aGlzLmJwVHlwZUFsbG93ZWQucHVzaChTYXBCcFR5cGVFbnVtLlN1cHBsaWVyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5icFR5cGVBbGxvd2VkLnB1c2goU2FwQnBUeXBlRW51bS5DdXN0b21lcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5icEVkaXRUeXBlQWxsb3dlZC5mb3JFYWNoKGJwVHlwZSA9PiB7XHJcbiAgICAgICAgdGhpcy5icFR5cGVBbGxvd2VkLnB1c2goYnBUeXBlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRCcFR5cGUodHlwZTogU2FwQnBUeXBlVHJhbnNsYXRlRW51bSk6IFNhcEJwVHlwZUVudW0ge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgU2FwQnBUeXBlVHJhbnNsYXRlRW51bS5DdXN0b21lcjpcclxuICAgICAgICByZXR1cm4gU2FwQnBUeXBlRW51bS5DdXN0b21lcjtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLkxlYWQ6XHJcbiAgICAgICAgcmV0dXJuIFNhcEJwVHlwZUVudW0uTGVhZDtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLlN1cHBsaWVyOlxyXG4gICAgICAgIHJldHVybiBTYXBCcFR5cGVFbnVtLlN1cHBsaWVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0VG9UcmFuc2xhdGVCcFR5cGUoXHJcbiAgICB0eXBlOiBTYXBCcFR5cGVFbnVtXHJcbiAgKTogU2FwQnBUeXBlVHJhbnNsYXRlRW51bSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVFbnVtLkN1c3RvbWVyOlxyXG4gICAgICAgIHJldHVybiBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLkN1c3RvbWVyO1xyXG4gICAgICBjYXNlIFNhcEJwVHlwZUVudW0uTGVhZDpcclxuICAgICAgICByZXR1cm4gU2FwQnBUeXBlVHJhbnNsYXRlRW51bS5MZWFkO1xyXG4gICAgICBjYXNlIFNhcEJwVHlwZUVudW0uU3VwcGxpZXI6XHJcbiAgICAgICAgcmV0dXJuIFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uU3VwcGxpZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNhcEJwVXNlclNldHRpbmdzIHtcclxuICBwaG9uZU1hc2s6IGJvb2xlYW47XHJcbiAgYnBFZGl0U2FsZXNQZXJzb25PbkFkZHJlc3M6IGJvb2xlYW47XHJcbiAgYnBUYXhUeXBlOiBCcFRheFR5cGVFbnVtO1xyXG4gIG9yYWNsZUJwRWRpdDogYm9vbGVhbjtcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIGJwRWRpdEFsbG93Q29udmVydExlYWQ6IGJvb2xlYW47XHJcbiAgc2FwQnBFZGl0QXV0aDogU2FwQnBFZGl0QXV0aEZsYWdzRW51bTtcclxuICBicEVkaXRUeXBlQWxsb3dlZDogU2FwQnBUeXBlRW51bVtdO1xyXG4gIGNvdW50cnk6IHN0cmluZztcclxufVxyXG4iXX0=
|
|
486
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWJhc2UtY3JlYXRlLWVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3Qtc2FwLWJwL3NyYy9saWIvY29tcG9uZW50cy9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQVd4QixPQUFPLEVBQUUsVUFBVSxFQUFTLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBSTNELE1BQU0sT0FBZ0IsbUJBQW1CO0lBc0R2QyxZQUNZLFlBQTBCLEVBQzFCLE1BQWlCLEVBQ2pCLGtCQUFzQztRQUZ0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF4RHRCLGNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBZ0IsQ0FBQztRQW1CdEUsMEJBQXFCLEdBQThCLEVBQUUsQ0FBQztRQUN0RCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFHN0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQUM1QyxrQkFBYSxHQUF3QixFQUFFLENBQUM7UUFFeEMsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQUM1QyxrQkFBYSxHQUF3QixFQUFFLENBQUM7UUFFeEMsaUJBQVksR0FBRyxL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LFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxzQkFBc0IsQ0FBQyxRQUFRO2dCQUNsQyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsS0FBSyxzQkFBc0IsQ0FBQyxJQUFJO2dCQUM5QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDNUIsS0FBSyxzQkFBc0IsQ0FBQyxRQUFRO2dCQUNsQyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU8sd0JBQXdCLENBQzlCLElBQW1CO1FBRW5CLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxhQUFhLENBQUMsUUFBUTtnQkFDekIsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUM7WUFDekMsS0FBSyxhQUFhLENBQUMsSUFBSTtnQkFDckIsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7WUFDckMsS0FBSyxhQUFhLENBQUMsUUFBUTtnQkFDekIsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUM7U0FDMUM7SUFDSCxDQUFDOztnSEF0b0JtQixtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUR4QyxVQUFVOzRKQUVtQixTQUFTO3NCQUFwQyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYXBCcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYXAtYnAuc2VydmljZSc7XHJcbmltcG9ydCB7IFNhcEJwR3JvdXBDb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLWdyb3VwLWNvZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFNoaXBUeXBlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXNoaXAtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwSW5kdXN0cnlNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtaW5kdXN0cnkubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFRlY2huaWNpYW5Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtdGVjaG5pY2lhbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwU2FsZXNFbXBsb3llZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1icC1zYWxlcy1lbXBsb3llZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwVGVycml0b3J5TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXRlcnJpdG9yeS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwR2xvYmFsSWRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtZ2xvYmFsLWlkLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBDb250YWN0UGVyc29uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLWNvbnRhY3QtcGVyc29uLm1vZGVsJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNhcEJwQWRkcmVzc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1icC1hZGRyZXNzLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBQYXltZW50VGVybXNNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtcGF5bWVudC10ZXJtcy5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwUHJpY2VsaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXByaWNlbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEJwUXJ5R3JvdXBNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtcXJ5LWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBDcmVhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtY3JlYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQnBNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1icC10eXBlLXRyYW5zbGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgU2FwQnBUeXBlRW51bSB9IGZyb20gJy4uL21vZGVscy9zYXAtYnAtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU2FwQnBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2FwLWJwLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2FwQnBUYXggfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLXRheC5tb2RlbCc7XHJcbmltcG9ydCB7IEJwVGF4VHlwZUVudW0gfSBmcm9tICcuLi9tb2RlbHMvYnAtdGF4LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFNhcEJwRWRpdEF1dGhGbGFnc0VudW0gfSBmcm9tICcuLi9tb2RlbHMvc2FwLWJwLWVkaXQtYXV0aC1mbGFncy5lbnVtJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhcEJwQmFzZUNyZWF0ZUVkaXQge1xyXG4gIEBWaWV3Q2hpbGRyZW4oTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3IgPSBuZXcgUXVlcnlMaXN0PE1hdFBhZ2luYXRvcj4oKTtcclxuXHJcbiAgdXNlclNldHRpbmdzOiBTYXBCcFVzZXJTZXR0aW5ncztcclxuXHJcbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgZ3JvdXBDb2RlTGlzdDogU2FwQnBHcm91cENvZGVNb2RlbFtdO1xyXG4gIHNoaXBUeXBlTGlzdDogU2FwQnBTaGlwVHlwZU1vZGVsW107XHJcbiAgaW5kdXN0cnlMaXN0OiBTYXBCcEluZHVzdHJ5TW9kZWxbXTtcclxuICB0ZWNobmljaWFuTGlzdDogU2FwQnBUZWNobmljaWFuTW9kZWxbXTtcclxuICBzYWxlc0VtcGxveWVlTGlzdDogU2FwQnBTYWxlc0VtcGxveWVlTW9kZWxbXTtcclxuICB0ZXJyaXRvcnlMaXN0OiBTYXBCcFRlcnJpdG9yeU1vZGVsW107XHJcbiAgZ2xvYmFsSWRMaXN0OiBTYXBCcEdsb2JhbElkTW9kZWxbXTtcclxuICBwYXltZW50VGVybXNMaXN0OiBTYXBCcFBheW1lbnRUZXJtc01vZGVsW107XHJcbiAgcHJpY2VMaXN0OiBTYXBCcFByaWNlbGlzdE1vZGVsW107XHJcbiAgcXJ5R3JvdXBMaXN0OiBTYXBCcFFyeUdyb3VwTW9kZWxbXTtcclxuICBjdXJyZW5jeUxpc3Q6IHN0cmluZ1tdO1xyXG4gIGJwVHlwZUFsbG93ZWQ6IFNhcEJwVHlwZUVudW1bXTtcclxuXHJcbiAgaW5pdENvbnRhY3RQZXJzb25MaXN0OiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdID0gW107XHJcbiAgY29udGFjdFBlcnNvbkNoYW5nZWQgPSBmYWxzZTtcclxuICBjb250YWN0UGVyc29uczogU2FwQnBDb250YWN0UGVyc29uTW9kZWxbXTtcclxuXHJcbiAgYWRkcmVzc0NoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgaW5pdEJpbGxUb0FkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsW10gPSBbXTtcclxuICBiaWxsVG9BZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbFtdID0gW107XHJcblxyXG4gIGluaXRTaGlwVG9BZGRyZXNzOiBTYXBCcEFkZHJlc3NNb2RlbFtdID0gW107XHJcbiAgc2hpcFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWxbXSA9IFtdO1xyXG5cclxuICBzaG93UXJ5R3JvdXAgPSBmYWxzZTtcclxuXHJcbiAgcmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcblxyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG5cclxuICBzYWxlc1BlcnNvbk9ubHlPbkFkZHJlc3MgPSBmYWxzZTtcclxuICBicFRheFR5cGUgPSBCcFRheFR5cGVFbnVtO1xyXG5cclxuICB0YXhlc0xpc3Q6IFNhcEJwVGF4W10gPSBbXTtcclxuICByZWZyZXNoaW5nVGF4ID0gZmFsc2U7XHJcblxyXG4gIHBob25lTWF4TGVuZ3RoID0gMjA7XHJcbiAgcGhvbmVQbGFjZWhvbGRlciA9ICcnO1xyXG4gIHBob25lTWFzayA9ICcnO1xyXG5cclxuICBzaG93TG9hZGVyID0gZmFsc2U7XHJcblxyXG4gIHByb3RlY3RlZCBvbGRDYXJkQ29kZSA9ICcnO1xyXG4gIHByb3RlY3RlZCBlZGl0TW9kZSA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBjb252ZXJ0Tm90VVMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgc2FwQnBTZXJ2aWNlOiBTYXBCcFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcm90ZWN0ZWQgc2FwQnBIZWxwZXJTZXJ2aWNlOiBTYXBCcEhlbHBlclNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGluaXRGb3JtKGJwRGV0YWlscz86IFNhcEJwTW9kZWwpIHtcclxuICAgIGlmIChicERldGFpbHMpIHtcclxuICAgICAgdGhpcy5lZGl0TW9kZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudXNlclNldHRpbmdzLnBob25lTWFzaykge1xyXG4gICAgICB0aGlzLnBob25lUGxhY2Vob2xkZXIgPSAnKDk5OSkgOTk5IDk5OTkgZXh0LiA5OTk5OTk5JztcclxuICAgICAgdGhpcy5waG9uZU1hc2sgPSAnKDAwMCkgMDAwIDAwMDAgZXh0LiAwMDAwMDAwJztcclxuICAgIH1cclxuICAgIHRoaXMuc2FsZXNQZXJzb25Pbmx5T25BZGRyZXNzID1cclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3MuYnBFZGl0U2FsZXNQZXJzb25PbkFkZHJlc3M7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlclNldHRpbmdzLmJwVGF4VHlwZSA9PT0gQnBUYXhUeXBlRW51bS5FdSkge1xyXG4gICAgICB0aGlzLmxvYWRUYXhlcyhmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBicERldGFpbHM/LmNhcmRUeXBlID09PSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLkxlYWQgJiZcclxuICAgICAgIXRoaXMudXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY29udmVydE5vdFVTID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICAgIGNhcmRDb2RlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uY2FyZENvZGUgPyBicERldGFpbHMuY2FyZENvZGUgOiAnJyxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKEwtfEMtfFMtKS4qJCcpXVxyXG4gICAgICApLFxyXG4gICAgICBjYXJkTmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmNhcmROYW1lID8gYnBEZXRhaWxzLmNhcmROYW1lIDogJycsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxyXG4gICAgICApLFxyXG4gICAgICBjYXJkVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmNhcmRUeXBlXHJcbiAgICAgICAgICA/IHRoaXMuY29udmVydEJwVHlwZShicERldGFpbHMuY2FyZFR5cGUpXHJcbiAgICAgICAgICA6IHRoaXMudXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdFxyXG4gICAgICAgICAgICA/IFNhcEJwVHlwZUVudW0uTGVhZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICAgKSxcclxuICAgICAgY2FyZEZvcmVpZ25OYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uY2FyZEZvcmlnbk5hbWUgPyBicERldGFpbHMuY2FyZEZvcmlnbk5hbWUgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBncm91cENvZGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5ncm91cENvZGUgPyBicERldGFpbHMuZ3JvdXBDb2RlIDogbnVsbCxcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICksXHJcbiAgICAgIGN1cnJlbmN5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uY3VycmVuY3kgPyBicERldGFpbHMuY3VycmVuY3kgOiB0aGlzLnVzZXJTZXR0aW5ncy5jdXJyZW5jeSxcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICksXHJcbiAgICAgIGxpY1RyYWROdW06IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5saWNUcmFkTnVtID8gYnBEZXRhaWxzLmxpY1RyYWROdW0gOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBwaG9uZTE6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5waG9uZTEgPyBicERldGFpbHMucGhvbmUxIDogJycsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxyXG4gICAgICApLFxyXG4gICAgICBwaG9uZTI6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woYnBEZXRhaWxzPy5waG9uZTIgPyBicERldGFpbHMucGhvbmUyIDogJycpLFxyXG4gICAgICBjZWxsdWxhcjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmNlbGx1bGFyID8gYnBEZXRhaWxzLmNlbGx1bGFyIDogJydcclxuICAgICAgKSxcclxuICAgICAgZmF4OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGJwRGV0YWlscz8uZmF4ID8gYnBEZXRhaWxzLmZheCA6ICcnKSxcclxuICAgICAgZW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woYnBEZXRhaWxzPy5lbWFpbCA/IGJwRGV0YWlscy5lbWFpbCA6ICcnKSxcclxuICAgICAgd2ViU2l0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LndlYlNpdGUgPyBicERldGFpbHMud2ViU2l0ZSA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIHNoaXBUeXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uc2hpcFR5cGVDb2RlID8gYnBEZXRhaWxzLnNoaXBUeXBlQ29kZSA6IG51bGxcclxuICAgICAgKSxcclxuICAgICAgaW5kdXN0cnlDb2RlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uaW5kdXN0cnlDb2RlID8gYnBEZXRhaWxzLmluZHVzdHJ5Q29kZSA6IG51bGxcclxuICAgICAgKSxcclxuICAgICAgYWRkSWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woYnBEZXRhaWxzPy5hZGRJZCA/IGJwRGV0YWlscy5hZGRJZCA6ICcnKSxcclxuICAgICAgdmF0SWRVbmlmaWVkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8udmF0SWRVbmlmaWVkID8gYnBEZXRhaWxzLnZhdElkVW5pZmllZCA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIHJlZ2lzdGVyTm86IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5yZWdpc3Rlck5vID8gYnBEZXRhaWxzLnJlZ2lzdGVyTm8gOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBub3RlczogbmV3IFVudHlwZWRGb3JtQ29udHJvbChicERldGFpbHM/Lm5vdGVzID8gYnBEZXRhaWxzLm5vdGVzIDogJycpLFxyXG4gICAgICB0ZWNobmljaWFuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8udGVjaG5pY2lhbkNvZGUgPyBicERldGFpbHMudGVjaG5pY2lhbkNvZGUgOiBudWxsXHJcbiAgICAgICksXHJcbiAgICAgIHNhbGVzRW1wbG95ZWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5zYWxlc1BlcnNvbkNvZGUgPyBicERldGFpbHMuc2FsZXNQZXJzb25Db2RlIDogbnVsbCxcclxuICAgICAgICAhdGhpcy5zYWxlc1BlcnNvbk9ubHlPbkFkZHJlc3MgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogbnVsbFxyXG4gICAgICApLFxyXG4gICAgICB0ZXJyaXRvcnk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy50ZXJyaXRvcnlDb2RlID8gYnBEZXRhaWxzLnRlcnJpdG9yeUNvZGUgOiBudWxsXHJcbiAgICAgICksXHJcbiAgICAgIGdsb2JhbEFjY291bnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5nbG9iYWxBY2NvdW50ID8gYnBEZXRhaWxzLmdsb2JhbEFjY291bnQgOiAnJyxcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICksXHJcbiAgICAgIGdsb2JhbElkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8uZ2xvYmFsSWQgPyBicERldGFpbHMuZ2xvYmFsSWQgOiBudWxsXHJcbiAgICAgICksXHJcbiAgICAgIHBheW1lbnRDb2RlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxyXG4gICAgICAgIGJwRGV0YWlscz8ucGF5bWVudENvZGUgPyBicERldGFpbHMucGF5bWVudENvZGUgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBwcmljZUxpc3Q6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5wcmljZWxpc3RDb2RlID8gYnBEZXRhaWxzLnByaWNlbGlzdENvZGUgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBkZWxpdmVyeUluc3RydWN0aW9uczogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zID8gYnBEZXRhaWxzLmRlbGl2ZXJ5SW5zdHJ1Y3Rpb25zIDogJydcclxuICAgICAgKSxcclxuICAgICAgZnJlZVRleHQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5mcmVlVGV4dCA/IGJwRGV0YWlscy5mcmVlVGV4dCA6ICcnXHJcbiAgICAgICksXHJcbiAgICAgIGluYWN0aXZlQ29tbWVudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LmluYWN0aXZlQ29tbWVudCA/IGJwRGV0YWlscy5pbmFjdGl2ZUNvbW1lbnQgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgICBzdGF0dXM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy5pbmFjdGl2ZVJlYXNvbiA/IGJwRGV0YWlscy5pbmFjdGl2ZVJlYXNvbiA6ICdBY3RpdmUnXHJcbiAgICAgICksXHJcbiAgICAgIHZhdFN0YXR1czogbmV3IFVudHlwZWRGb3JtQ29udHJvbChcclxuICAgICAgICBicERldGFpbHM/LnZhdFN0YXR1cyA/IGJwRGV0YWlscy52YXRTdGF0dXMgOiAnJyxcclxuICAgICAgICB0aGlzLnVzZXJTZXR0aW5ncy5icFRheFR5cGUgIT09IEJwVGF4VHlwZUVudW0uTm9UYXhcclxuICAgICAgICAgID8gVmFsaWRhdG9ycy5yZXF1aXJlZFxyXG4gICAgICAgICAgOiBudWxsXHJcbiAgICAgICksXHJcbiAgICAgIHRheENvZGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgYnBEZXRhaWxzPy50YXhDb2RlID8gYnBEZXRhaWxzLnRheENvZGUgOiAnJ1xyXG4gICAgICApLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmVkaXRNb2RlKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAgICdjb3VudHJ5Q29kZVBob25lMScsXHJcbiAgICAgICAgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUxJykhLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY291bnRyeUNvZGVQaG9uZTEnKSEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lMScpIS5lbmFibGUoKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy51c2VyU2V0dGluZ3MucGhvbmVNYXNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGhvbmVQbGFjZWhvbGRlcihyZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZTEnKSEuZGlzYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRCcFR5cGVBbGxvd2VkKCk7XHJcblxyXG4gICAgaWYgKGJwRGV0YWlscykge1xyXG4gICAgICB0aGlzLmluaXRDb250YWN0UGVyc29uTGlzdCA9IGJwRGV0YWlscy5jb250YWN0UGVyc29uTGlzdDtcclxuICAgICAgdGhpcy5pbml0QmlsbFRvQWRkcmVzcyA9IGJwRGV0YWlscy5hZGRyZXNzQmlsbFRvTGlzdDtcclxuICAgICAgdGhpcy5pbml0U2hpcFRvQWRkcmVzcyA9IGJwRGV0YWlscy5hZGRyZXNzU2hpcFRvTGlzdDtcclxuXHJcbiAgICAgIHRoaXMubG9hZEdyb3VwQ29kZUxpc3QoKTtcclxuICAgICAgdGhpcy5sb2FkUXJ5R3JvdXAoZmFsc2UsIGJwRGV0YWlscy5xcnlHcm91cExpc3QpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdCkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhcmRUeXBlJykhLmRpc2FibGUoKTtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5kaXNhYmxlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZENvZGUnKSEuZGlzYWJsZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb252ZXJ0Tm90VVMpIHtcclxuICAgICAgICAgIHRoaXMub2xkQ2FyZENvZGUgPSBicERldGFpbHMuY2FyZENvZGU7XHJcblxyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBicERldGFpbHM/LmNhcmRUeXBlID09PSBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLkxlYWQgJiZcclxuICAgICAgICAgICAgIXRoaXMudXNlclNldHRpbmdzLmJwRWRpdEFsbG93Q29udmVydExlYWRcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkVHlwZScpIS5kaXNhYmxlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhcmRUeXBlJykhLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2V0VmFsaWRhdG9yc0luRWRpdChicERldGFpbHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudXNlclNldHRpbmdzLm9yYWNsZUJwRWRpdCkge1xyXG4gICAgICAgIHRoaXMuc2V0TmV3QnBJZChTYXBCcFR5cGVFbnVtLkxlYWQpO1xyXG4gICAgICAgIHRoaXMubG9hZEdyb3VwQ29kZUxpc3QoKTtcclxuICAgICAgICB0aGlzLnNldERlZmF1bHRQYXltZW50VGVybShTYXBCcFR5cGVFbnVtLkxlYWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtLmdldCgnY2FyZFR5cGUnKSEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsOiBTYXBCcFR5cGVFbnVtKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnZlcnROb3RVUykge1xyXG4gICAgICAgIHRoaXMubG9hZEdyb3VwQ29kZUxpc3QoKTtcclxuICAgICAgICB0aGlzLnNldERlZmF1bHRQYXltZW50VGVybSh2YWwpO1xyXG5cclxuICAgICAgICBpZiAodmFsID09PSBTYXBCcFR5cGVFbnVtLkN1c3RvbWVyKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc2V0TmV3QnBJZChTYXBCcFR5cGVFbnVtLkN1c3RvbWVyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZENvZGUnKSEuc2V0VmFsdWUodGhpcy5vbGRDYXJkQ29kZSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjYXJkQ29kZScpIS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWwgfHwgdmFsID49IDApIHtcclxuICAgICAgICAgIHRoaXMuc2V0TmV3QnBJZCh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkR3JvdXBDb2RlTGlzdCgpO1xyXG4gICAgICAgICAgdGhpcy5zZXREZWZhdWx0UGF5bWVudFRlcm0odmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybS5nZXQoJ2dsb2JhbEFjY291bnQnKSEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAocmVzID09PSAnWWVzJykge1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2dsb2JhbElkJykhLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdnbG9iYWxJZCcpIS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluaXRMb2FkZXJzKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ2FyZENvZGUoKSB7XHJcbiAgICB0aGlzLnNldE5ld0JwSWQodGhpcy5mb3JtLmdldCgnY2FyZFR5cGUnKSEudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbG9hZEdyb3VwQ29kZUxpc3QocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHRydWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBDb2RlKHRoaXMuZm9ybS5nZXQoJ2NhcmRUeXBlJykhLnZhbHVlLCByZWZyZXNoKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5ncm91cENvZGVMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2dyb3VwQ29kZScpIS5zZXRWYWx1ZShyZXMgPyByZXNbMF0uaWQgOiBudWxsKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRTaGlwVHlwZShyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFNoaXBUeXBlKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNoaXBUeXBlTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZEluZHVzdHJ5KHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0SW5kdXN0cnkocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaW5kdXN0cnlMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGVjaG5pY2lhbihyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFRlY2huaWNpYW4ocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudGVjaG5pY2lhbkxpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRTYWxlc0VtcGxveWVlKHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXBCcFNlcnZpY2UuZ2V0U2FsZXNFbXBsb3llZShyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zYWxlc0VtcGxveWVlTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFRlcnJpdG9yeShyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFRlcnJpdG9yeShyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy50ZXJyaXRvcnlMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkR2xvYmFsSWQocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHRydWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRHbG9iYWxJZChyZWZyZXNoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5nbG9iYWxJZExpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRQYXltZW50VGVybXMocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHRydWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRQYXltZW50VGVybXMocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMucGF5bWVudFRlcm1zTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm0uZ2V0KCdjYXJkVHlwZScpIS52YWx1ZTtcclxuICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXREZWZhdWx0UGF5bWVudFRlcm0odHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRQcmljZUxpc3QocmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IHRydWU7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXRQcmljZWxpc3QocmVmcmVzaCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMucHJpY2VMaXN0ID0gcmVzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hpbmdEYXRhRnJvbVNhcCA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmVkaXRNb2RlKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBMID0gdGhpcy5wcmljZUxpc3QuZmluZChwbCA9PiBwbC5pc0RlZmF1bHQpO1xyXG4gICAgICAgIGlmIChkZWZhdWx0UEwpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3ByaWNlTGlzdCcpIS5zZXRWYWx1ZShkZWZhdWx0UEwuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkUXJ5R3JvdXAocmVmcmVzaCA9IGZhbHNlLCBiYXNlVmFsdWVzPzogU2FwQnBRcnlHcm91cE1vZGVsW10pIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFFyeUdyb3VwKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnFyeUdyb3VwTGlzdCA9IHJlcy5tYXAoKGdyb3VwLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGdyb3VwLnZhbHVlID0gYmFzZVZhbHVlcyA/IGJhc2VWYWx1ZXNbaW5kZXhdLnZhbHVlIDogJ04nO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRDdXJyZW5jeShyZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIHRoaXMucmVmcmVzaGluZ0RhdGFGcm9tU2FwID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldEN1cnJlbmN5KHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmN1cnJlbmN5TGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nRGF0YUZyb21TYXAgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFRheGVzKHJlZnJlc2ggPSBmYWxzZSkge1xyXG4gICAgdGhpcy5yZWZyZXNoaW5nVGF4ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2FwQnBTZXJ2aWNlLmdldFRheGVzKHJlZnJlc2gpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnRheGVzTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5yZWZyZXNoaW5nVGF4ID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFNoaXBUb0FkZHJlc3MoZXZlbnQ6IFNhcEJwQWRkcmVzc01vZGVsW10pIHtcclxuICAgIHRoaXMuc2hpcFRvQWRkcmVzcyA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgc2V0QmlsbFRvQWRkcmVzcyhldmVudDogU2FwQnBBZGRyZXNzTW9kZWxbXSkge1xyXG4gICAgdGhpcy5iaWxsVG9BZGRyZXNzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBzZXRBZGRyZXNzQ2hhbmdlZChldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5hZGRyZXNzQ2hhbmdlZCA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVkaXRJbmZvcm1hdGlvbkRhdGEoYnBEZXRhaWxzOiBTYXBCcE1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUVkaXRJbmZvcm1hdGlvbkRhdGEoXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUVkaXRDb250YWN0UGVyc29uKGJwRGV0YWlsczogU2FwQnBNb2RlbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwQnBIZWxwZXJTZXJ2aWNlLmRpc2FibGVFZGl0Q29udGFjdFBlcnNvbihcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3Muc2FwQnBFZGl0QXV0aCxcclxuICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICBicERldGFpbHNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlRWRpdEJpbGxUb0FkZHJlc3MoYnBEZXRhaWxzOiBTYXBCcE1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUVkaXRCaWxsVG9BZGRyZXNzKFxyXG4gICAgICB0aGlzLnVzZXJTZXR0aW5ncy5zYXBCcEVkaXRBdXRoLFxyXG4gICAgICB0aGlzLmZvcm0sXHJcbiAgICAgIGJwRGV0YWlsc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVFZGl0U2hpcFRvQWRkcmVzcyhicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLnNhcEJwSGVscGVyU2VydmljZS5kaXNhYmxlRWRpdFNoaXBUb0FkZHJlc3MoXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUFkZFNoaXBUb0FkZHJlc3MoYnBEZXRhaWxzOiBTYXBCcE1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUFkZFNoaXBUb0FkZHJlc3MoXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUFkZENvbnRhY3RQZXJzb24oYnBEZXRhaWxzOiBTYXBCcE1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUFkZENvbnRhY3RQZXJzb24oXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzYWJsZUFkZEJpbGxUb0FkZHJlc3MoYnBEZXRhaWxzOiBTYXBCcE1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYXBCcEhlbHBlclNlcnZpY2UuZGlzYWJsZUFkZEJpbGxUb0FkZHJlc3MoXHJcbiAgICAgIHRoaXMudXNlclNldHRpbmdzLnNhcEJwRWRpdEF1dGgsXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgYnBEZXRhaWxzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGluaXRMb2FkZXJzKCkge1xyXG4gICAgLy8gdGhpcy5sb2FkR3JvdXBDb2RlTGlzdCgpO1xyXG4gICAgdGhpcy5sb2FkU2hpcFR5cGUoKTtcclxuICAgIHRoaXMubG9hZEluZHVzdHJ5KCk7XHJcbiAgICB0aGlzLmxvYWRUZWNobmljaWFuKCk7XHJcbiAgICB0aGlzLmxvYWRTYWxlc0VtcGxveWVlKCk7XHJcbiAgICB0aGlzLmxvYWRUZXJyaXRvcnkoKTtcclxuICAgIHRoaXMubG9hZFBheW1lbnRUZXJtcygpO1xyXG4gICAgdGhpcy5sb2FkUHJpY2VMaXN0KCk7XHJcbiAgICB0aGlzLmxvYWRDdXJyZW5jeSgpO1xyXG4gICAgdGhpcy5sb2FkR2xvYmFsSWQoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy5sb2FkUXJ5R3JvdXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsaWRhdG9yc0luRWRpdChicERldGFpbHM6IFNhcEJwTW9kZWwpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVFZGl0SW5mb3JtYXRpb25EYXRhKGJwRGV0YWlscykpIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZENvZGUnKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZE5hbWUnKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZFR5cGUnKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnZ3JvdXBDb2RlJykhLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2N1cnJlbmN5JykhLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lMScpIS5zZXRWYWxpZGF0b3JzKG51bGwpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzYWxlc0VtcGxveWVlJykhLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2dsb2JhbEFjY291bnQnKSEuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UGhvbmVQbGFjZWhvbGRlcihjb3VudHJ5Q29kZTogc3RyaW5nKSB7XHJcbiAgICAvLyAyMCBzYXAgbGVuZ3RoLCAtNCBzcGFjZXMsICsxMCBleHRyYSBjaGFyIGZvciB2aXNpYmxlXHJcbiAgICB0aGlzLnBob25lTWF4TGVuZ3RoID0gMjAgLSBjb3VudHJ5Q29kZS5sZW5ndGggLSA0ICsgMTA7XHJcbiAgICBjb25zdCBleHRMZW5ndGggPSB0aGlzLnBob25lTWF4TGVuZ3RoIC0gMjA7XHJcblxyXG4gICAgbGV0IHBob25lUGxhY2Vob2xkZXIgPSAnKDk5OSkgOTk5IDk5OTkgZXh0LiAnO1xyXG4gICAgbGV0IHBob25lTWFzayA9ICcoMDAwKSAwMDAgMDAwMCBleHQuICc7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBleHRMZW5ndGg7IGkrKykge1xyXG4gICAgICBwaG9uZVBsYWNlaG9sZGVyICs9ICc5JztcclxuICAgICAgcGhvbmVNYXNrICs9ICc5JztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBob25lUGxhY2Vob2xkZXIgPSBwaG9uZVBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5waG9uZU1hc2sgPSBwaG9uZU1hc2s7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJlcGFyZURhdGFUb1NlbmQoKTogU2FwQnBDcmVhdGVNb2RlbCB7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmZvcm0udmFsdWU7XHJcbiAgICBsZXQgcGhvbmUxID0gdmFsdWVzLnBob25lMTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdE1vZGUgJiYgdGhpcy5waG9uZU1hc2spIHtcclxuICAgICAgcGhvbmUxID1cclxuICAgICAgICB2YWx1ZXMuY291bnRyeUNvZGVQaG9uZTEgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgdmFsdWVzLnBob25lMS5zbGljZSgwLCAzKSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICB2YWx1ZXMucGhvbmUxLnNsaWNlKDMsIDYpICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIHZhbHVlcy5waG9uZTEuc2xpY2UoNiwgMTApICtcclxuICAgICAgICAodmFsdWVzLnBob25lMS5zcGxpdCgndCcpWzFdID8gJ3gnICsgdmFsdWVzLnBob25lMS5zcGxpdCgndCcpWzFdIDogJycpO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICBwaG9uZTEgPSB2YWx1ZXMuY291bnRyeUNvZGVQaG9uZTEgKyAnICcgKyBwaG9uZTE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2FyZEZvcmlnbk5hbWU6IHZhbHVlcy5jYXJkRm9yZWlnbk5hbWUsXHJcbiAgICAgIGdyb3VwQ29kZTogdmFsdWVzLmdyb3VwQ29kZSxcclxuICAgICAgY3VycmVuY3k6IHZhbHVlcy5jdXJyZW5jeSxcclxuICAgICAgbGljVHJhZE51bTogdmFsdWVzLmxpY1RyYWROdW0sXHJcbiAgICAgIHBob25lMTogcGhvbmUxLFxyXG4gICAgICBwaG9uZTI6IHZhbHVlcy5waG9uZTIsXHJcbiAgICAgIGNlbGx1bGFyOiB2YWx1ZXMuY2VsbHVsYXIsXHJcbiAgICAgIGZheDogdmFsdWVzLmZheCxcclxuICAgICAgZW1haWw6IHZhbHVlcy5lbWFpbCxcclxuICAgICAgd2ViU2l0ZTogdmFsdWVzLndlYlNpdGUsXHJcbiAgICAgIHNoaXBUeXBlQ29kZTogdmFsdWVzLnNoaXBUeXBlLFxyXG4gICAgICBpbmR1c3RyeUNvZGU6IHZhbHVlcy5pbmR1c3RyeUNvZGUsXHJcbiAgICAgIGFkZElkOiB2YWx1ZXMuYWRkSWQsXHJcbiAgICAgIHZhdElkVW5pZmllZDogdmFsdWVzLnZhdElkVW5pZmllZCxcclxuICAgICAgcmVnaXN0ZXJObzogdmFsdWVzLnJlZ2lzdGVyTm8sXHJcbiAgICAgIG5vdGVzOiB2YWx1ZXMubm90ZXMsXHJcbiAgICAgIHRlY2huaWNpYW5Db2RlOiB2YWx1ZXMudGVjaG5pY2lhbixcclxuICAgICAgc2FsZXNQZXJzb25Db2RlOiB2YWx1ZXMuc2FsZXNFbXBsb3llZSxcclxuICAgICAgdGVycml0b3J5Q29kZTogdmFsdWVzLnRlcnJpdG9yeSxcclxuICAgICAgZ2xvYmFsQWNjb3VudDogdmFsdWVzLmdsb2JhbEFjY291bnQsXHJcbiAgICAgIGdsb2JhbElkOiB2YWx1ZXMuZ2xvYmFsSWQsXHJcbiAgICAgIHZhbGlkRm9yOiB2YWx1ZXMuc3RhdHVzID09PSAnQWN0aXZlJyA/ICdZJyA6ICdOJyxcclxuICAgICAgcGF5bWVudENvZGU6IHZhbHVlcy5wYXltZW50Q29kZSxcclxuICAgICAgcHJpY2VsaXN0Q29kZTogdmFsdWVzLnByaWNlTGlzdCxcclxuICAgICAgZGVsaXZlcnlJbnN0cnVjdGlvbnM6IHZhbHVlcy5kZWxpdmVyeUluc3RydWN0aW9ucyxcclxuICAgICAgZnJlZVRleHQ6IHZhbHVlcy5mcmVlVGV4dCxcclxuICAgICAgY29udGFjdFBlcnNvbkxpc3Q6IHRoaXMuY29udGFjdFBlcnNvbnMgfHwgW10sXHJcbiAgICAgIGFkZHJlc3NTaGlwVG9MaXN0OiB0aGlzLnNoaXBUb0FkZHJlc3MgfHwgW10sXHJcbiAgICAgIGFkZHJlc3NCaWxsVG9MaXN0OiB0aGlzLmJpbGxUb0FkZHJlc3MgfHwgW10sXHJcbiAgICAgIHFyeUdyb3VwTGlzdDogdGhpcy5xcnlHcm91cExpc3QsXHJcbiAgICAgIGFkZHJlc3NDaGFuZ2U6IHRoaXMuYWRkcmVzc0NoYW5nZWQsXHJcbiAgICAgIGNvbnRhY3RDaGFuZ2U6IHRoaXMuY29udGFjdFBlcnNvbkNoYW5nZWQsXHJcbiAgICAgIGNhcmRDb2RlOiB2YWx1ZXMuY2FyZENvZGUsXHJcbiAgICAgIGNhcmROYW1lOiB2YWx1ZXMuY2FyZE5hbWUsXHJcbiAgICAgIGNhcmRUeXBlOiB0aGlzLmNvbnZlcnRUb1RyYW5zbGF0ZUJwVHlwZSh2YWx1ZXMuY2FyZFR5cGUpLFxyXG4gICAgICBvbGRDYXJkQ29kZTogdGhpcy5vbGRDYXJkQ29kZSB8fCBudWxsLFxyXG4gICAgICBpbmFjdGl2ZVJlYXNvbjogdmFsdWVzLnN0YXR1cyxcclxuICAgICAgaW5hY3RpdmVDb21tZW50OiB2YWx1ZXMuc3RhdHVzID09PSAnQWN0aXZlJyA/ICcnIDogdmFsdWVzLmluYWN0aXZlQ29tbWVudCxcclxuICAgICAgdmF0U3RhdHVzOiB2YWx1ZXMudmF0U3RhdHVzLFxyXG4gICAgICB0YXhDb2RlOiB2YWx1ZXMudGF4Q29kZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE5ld0JwSWQoYnBUeXBlOiBTYXBCcFR5cGVFbnVtKSB7XHJcbiAgICB0aGlzLnNhcEJwU2VydmljZS5nZXROZXh0QnBJZChicFR5cGUpLnN1YnNjcmliZShuZXdCcElkID0+IHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY2FyZENvZGUnKSEuc2V0VmFsdWUobmV3QnBJZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGVmYXVsdFBheW1lbnRUZXJtKHZhbDogU2FwQnBUeXBlRW51bSkge1xyXG4gICAgaWYgKHRoaXMucGF5bWVudFRlcm1zTGlzdD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodmFsID09PSBTYXBCcFR5cGVFbnVtLlN1cHBsaWVyKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bWVudFRlcm1Gb3VuZCA9IHRoaXMucGF5bWVudFRlcm1zTGlzdC5maW5kKFxyXG4gICAgICAgICAgcGF5bWVudFRlcm0gPT4gcGF5bWVudFRlcm0uaXNEZWZhdWx0Rm9yU3VwcGxpZXJcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChwYXltZW50VGVybUZvdW5kKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwYXltZW50Q29kZScpIS5zZXRWYWx1ZShwYXltZW50VGVybUZvdW5kLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcGF5bWVudFRlcm1Gb3VuZCA9IHRoaXMucGF5bWVudFRlcm1zTGlzdC5maW5kKFxyXG4gICAgICAgICAgcGF5bWVudFRlcm0gPT4gcGF5bWVudFRlcm0uaXNEZWZhdWx0Rm9yQ3VzdG9tZXJcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChwYXltZW50VGVybUZvdW5kKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdwYXltZW50Q29kZScpIS5zZXRWYWx1ZShwYXltZW50VGVybUZvdW5kLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QnBUeXBlQWxsb3dlZCgpIHtcclxuICAgIHRoaXMuYnBUeXBlQWxsb3dlZCA9IFtdO1xyXG4gICAgY29uc3QgY2FyZFR5cGUgPSB0aGlzLmZvcm0uZ2V0KCdjYXJkVHlwZScpIS52YWx1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICBpZiAodGhpcy51c2VyU2V0dGluZ3Mub3JhY2xlQnBFZGl0KSB7XHJcbiAgICAgICAgdGhpcy5icFR5cGVBbGxvd2VkLnB1c2goY2FyZFR5cGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjYXJkVHlwZSA9PT0gU2FwQnBUeXBlRW51bS5MZWFkKSB7XHJcbiAgICAgICAgICB0aGlzLmJwVHlwZUFsbG93ZWQucHVzaChTYXBCcFR5cGVFbnVtLkxlYWQpO1xyXG4gICAgICAgICAgdGhpcy5icFR5cGVBbGxvd2VkLnB1c2goU2FwQnBUeXBlRW51bS5DdXN0b21lcik7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjYXJkVHlwZSA9PT0gU2FwQnBUeXBlRW51bS5TdXBwbGllcikge1xyXG4gICAgICAgICAgdGhpcy5icFR5cGVBbGxvd2VkLnB1c2goU2FwQnBUeXBlRW51bS5TdXBwbGllcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYnBUeXBlQWxsb3dlZC5wdXNoKFNhcEJwVHlwZUVudW0uQ3VzdG9tZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51c2VyU2V0dGluZ3MuYnBFZGl0VHlwZUFsbG93ZWQuZm9yRWFjaChicFR5cGUgPT4ge1xyXG4gICAgICAgIHRoaXMuYnBUeXBlQWxsb3dlZC5wdXNoKGJwVHlwZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0QnBUeXBlKHR5cGU6IFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0pOiBTYXBCcFR5cGVFbnVtIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uQ3VzdG9tZXI6XHJcbiAgICAgICAgcmV0dXJuIFNhcEJwVHlwZUVudW0uQ3VzdG9tZXI7XHJcbiAgICAgIGNhc2UgU2FwQnBUeXBlVHJhbnNsYXRlRW51bS5MZWFkOlxyXG4gICAgICAgIHJldHVybiBTYXBCcFR5cGVFbnVtLkxlYWQ7XHJcbiAgICAgIGNhc2UgU2FwQnBUeXBlVHJhbnNsYXRlRW51bS5TdXBwbGllcjpcclxuICAgICAgICByZXR1cm4gU2FwQnBUeXBlRW51bS5TdXBwbGllcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFRvVHJhbnNsYXRlQnBUeXBlKFxyXG4gICAgdHlwZTogU2FwQnBUeXBlRW51bVxyXG4gICk6IFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0ge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgU2FwQnBUeXBlRW51bS5DdXN0b21lcjpcclxuICAgICAgICByZXR1cm4gU2FwQnBUeXBlVHJhbnNsYXRlRW51bS5DdXN0b21lcjtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVFbnVtLkxlYWQ6XHJcbiAgICAgICAgcmV0dXJuIFNhcEJwVHlwZVRyYW5zbGF0ZUVudW0uTGVhZDtcclxuICAgICAgY2FzZSBTYXBCcFR5cGVFbnVtLlN1cHBsaWVyOlxyXG4gICAgICAgIHJldHVybiBTYXBCcFR5cGVUcmFuc2xhdGVFbnVtLlN1cHBsaWVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTYXBCcFVzZXJTZXR0aW5ncyB7XHJcbiAgcGhvbmVNYXNrOiBib29sZWFuO1xyXG4gIGJwRWRpdFNhbGVzUGVyc29uT25BZGRyZXNzOiBib29sZWFuO1xyXG4gIGJwVGF4VHlwZTogQnBUYXhUeXBlRW51bTtcclxuICBvcmFjbGVCcEVkaXQ6IGJvb2xlYW47XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBicEVkaXRBbGxvd0NvbnZlcnRMZWFkOiBib29sZWFuO1xyXG4gIHNhcEJwRWRpdEF1dGg6IFNhcEJwRWRpdEF1dGhGbGFnc0VudW07XHJcbiAgYnBFZGl0VHlwZUFsbG93ZWQ6IFNhcEJwVHlwZUVudW1bXTtcclxuICBjb3VudHJ5OiBzdHJpbmc7XHJcbn1cclxuIl19
|