asp-lib 1.0.47 → 1.0.49

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.
@@ -23,7 +23,10 @@ export class HeaderComponent {
23
23
  this.moduleList = [];
24
24
  this.auto = false;
25
25
  this.servicesConfig = {
26
- baseUrl: ''
26
+ baseUrl: '',
27
+ isDev: false,
28
+ username: '',
29
+ password: ''
27
30
  };
28
31
  this.isMobile = false;
29
32
  this.returnClick = new EventEmitter();
@@ -84,6 +87,23 @@ export class HeaderComponent {
84
87
  else {
85
88
  return false;
86
89
  }
90
+ }), catchError(() => {
91
+ if (this.servicesConfig.isDev) {
92
+ return this.doLogin();
93
+ }
94
+ else {
95
+ return of(false);
96
+ }
97
+ }));
98
+ }
99
+ doLogin() {
100
+ return this.services.login(this.servicesConfig.baseUrl, this.servicesConfig.username, this.servicesConfig.password).pipe(map((response) => {
101
+ if (response.code == 200) {
102
+ return true;
103
+ }
104
+ else {
105
+ return false;
106
+ }
87
107
  }), catchError(() => {
88
108
  return of(false);
89
109
  }));
@@ -344,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
344
364
  }], lastOption: [{
345
365
  type: Output
346
366
  }] } });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBWSxNQUFNLGtDQUFrQyxDQUFDO0FBSTFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBbUJ0QyxNQUFNLE9BQU8sZUFBZTtJQWlEMUIsWUFBb0IsUUFBeUIsRUFBUyxNQUFjO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhEM0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQVcsU0FBUyxDQUFDO1FBQzFCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGFBQVEsR0FBUyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixtQkFBYyxHQUFtQjtZQUN4QyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDTyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHL0Msb0JBQWUsR0FBRyxxQkFBcUIsQ0FBQztRQUN4Qyx3QkFBbUIsR0FBRywyQkFBMkIsQ0FBQztRQUNsRCxzQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQztRQUU3Qyx3QkFBbUIsR0FBc0I7WUFDdkM7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFO29CQUN4RCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO29CQUN0RCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFO2lCQUNwRDthQUNGO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO29CQUNoRCxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtvQkFDL0MsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTtvQkFDbkQsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtpQkFDckQ7YUFDRjtTQUNGLENBQUM7SUFHRixDQUFDO0lBRUQsUUFBUTtRQUVOLElBQUcsSUFBSSxDQUFDLElBQUksRUFBQztZQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLGVBQWUsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNyQixJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQzt3QkFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7cUJBQzVCO2lCQUNGO3FCQUFNO29CQUNMLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBVztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQztZQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFRO1FBQ2xCLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDO1lBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7YUFBSTtZQUNILE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUV4QixJQUFJLEtBQUssRUFBRTtnQkFDVCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN6QjtZQUVELElBQUcsTUFBTSxDQUFDLEdBQUcsRUFBQztnQkFDWixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBQyxFQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3BGLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQ1osSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTt3QkFDdkIsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDOzRCQUNmLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxTQUFTLEVBQUU7Z0NBQ2IsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7NkJBQ3pCO3lCQUNGOzZCQUFLLElBQUcsTUFBTSxDQUFDLE1BQU0sRUFBQzs0QkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQzlCOzZCQUFJOzRCQUNMLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxTQUFTLEVBQUU7Z0NBQ2IsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7NkJBQ3pCO3lCQUNGO3FCQUVGO3lCQUFNO3dCQUNMLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQzs0QkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7eUJBQ2xDOzZCQUFJOzRCQUNILElBQUcsTUFBTSxDQUFDLE1BQU0sRUFBQztnQ0FDZixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzs2QkFDOUI7aUNBQUssSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBQztnQ0FDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDOzZCQUNuQztpQ0FBSTtnQ0FDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7NkJBQ2xDO3lCQUVGO3FCQUVGO2dCQUNILENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FDRixDQUFDO2FBQ0g7WUFFRDs7Ozs7OztjQU9FO1NBQ0g7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWtCO1FBQzNCLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQztZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNsQzthQUFJO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUI7SUFFSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ25FLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDWixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFHLElBQUksQ0FBQyxJQUFJLEVBQUM7b0JBQ1QsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDeEMsSUFBRyxHQUFHLElBQUksR0FBRyxFQUFDO3dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7NEJBQzNCLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0NBQzVCLElBQUcsQ0FBQyxDQUFDLFVBQVUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUM7b0NBQzdDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lDQUNqQjs0QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQztxQkFDSjtvQkFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQzdCO2FBQ0Y7aUJBQU07YUFFTjtRQUNILENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQzdELENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDWixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFHLElBQUksQ0FBQyxJQUFJLEVBQUM7b0JBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMvQixJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQzt3QkFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzdDO2lCQUNGO2dCQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQjtpQkFBTTthQUVOO1FBQ0gsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUNyRSxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFDO29CQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztpQkFDckI7YUFFRjtpQkFBTTthQUVOO1FBQ0gsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBRyxJQUFJLElBQUksT0FBTyxFQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUM5RSxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNaLElBQUksSUFBSSxFQUFFO29CQUNSLElBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUM7d0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3FCQUMvQjtpQkFFRjtxQkFBTTtpQkFFTjtZQUNILENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUVILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDN0QsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDYixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDN0I7WUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RCxJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFDO29CQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3pEO3FCQUFJO29CQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtpQkFDMUM7YUFFRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDMUM7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUVSLENBQUMsQ0FDRixDQUFDO1FBQ0Y7Ozs7Ozs7Ozs7VUFVRTtJQUVKLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDM0UsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRztvQkFDZixVQUFVLEVBQ1IsSUFBSSxDQUFDLElBQUk7aUJBQ1osQ0FBQTtnQkFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzthQUMxQjtpQkFBTTthQUNOO1FBQ0gsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7UUFFUixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBVztRQUN2QixPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFVO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUM5RCxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFDO29CQUNULE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDckMsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUNsQzthQUNGO2lCQUFNO2FBRU47UUFDSCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOytHQXRWVSxlQUFlO21HQUFmLGVBQWUsbWZDekI1QixtMUNBNEJTOzs0RkRISSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7NEhBS2IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkcm9wZG93bkNvbXBhbmllc09wdGlvbnMsIGRyb3Bkb3duTm90aWZpY2F0aW9uT3B0aW9ucywgZHJvcGRvd25SZWNlbnRPcHRpb25zLCBtZW51RGF0YSB9IGZyb20gJy4uL2Fzc2V0cy9tZW51LWRhdGEvbWVudURhdGFUZXN0JztcclxuaW1wb3J0IHsgRGF0YSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2VydmljZXNDb25maWcgfSBmcm9tICcuLi91dGlscy9tb2RlbHMvU2VydmljZXNDb25maWcnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2VzIH0gZnJvbSAnLi4vdXRpbHMvc2VydmljZXMvU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9ucyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHBhcmVudElkOiBhbnk7XHJcbiAgb3B0aW9uczogRHJvcGRvd25PcHRpb25DYXRlcmdvcnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbkNhdGVyZ29yeSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2Fzc2V0cy9mb250cy9zdHlsZS5jc3MnLCAnLi4vYXNzZXRzL3RoZW1lLnNjc3MnLCcuL2hlYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGFwcExvZ286IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1lbnVEYXRhOiBEYXRhID0ge2NhdGVnb3JpZXM6IFtdfTtcclxuICBASW5wdXQoKSByZWNlbnRPcHRpb25zIDphbnkgPSBbXTtcclxuICBASW5wdXQoKSBjb21wYW5pZXMgOmFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIG1vZHVsZUxpc3Q6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGF1dG86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXJ2aWNlc0NvbmZpZzogU2VydmljZXNDb25maWcgPSB7XHJcbiAgICBiYXNlVXJsOiAnJ1xyXG4gIH07XHJcbiAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmV0dXJuQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgbWVudUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBtZW51TmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcmVjZW50TmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTsgIFxyXG4gIEBPdXRwdXQoKSBtb2R1bGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgbGFzdE9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG4gIGlzQXV0aCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCB1bmRlZmluZWQ7XHJcbiAgZHJvcGRvd25PcHRpb25zID0gZHJvcGRvd25SZWNlbnRPcHRpb25zO1xyXG4gIG5vdGlmaWNhdGlvbk9wdGlvbnMgPSBkcm9wZG93bk5vdGlmaWNhdGlvbk9wdGlvbnM7XHJcbiAgY29tcGFuaWVzRHJvcGRvd24gPSBkcm9wZG93bkNvbXBhbmllc09wdGlvbnM7XHJcbiAgc2VsZWN0ZWRPcHRpb246IGFueTtcclxuICBkcm9wZG93bk9wdGlvbnNNZW51OiBEcm9wZG93bk9wdGlvbnNbXSA9IFsgXHJcbiAgICB7XHJcbiAgICAgIGlkOiAwLFxyXG4gICAgICBsYWJlbDogJ0xvcmVtIElwc3VtJyxcclxuICAgICAgcGFyZW50SWQ6IG51bGwsXHJcbiAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtY29uZmlndXJhdGlvbicgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtYnVzLWdhdmlvdGEnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLXNhdGVsaXRlJyB9LFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMCxcclxuICAgICAgbGFiZWw6ICdMb3JlbSBJcHN1bScsXHJcbiAgICAgIHBhcmVudElkOiBudWxsLFxyXG4gICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLXZpZGVvJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1ydXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1jYWxlbmRhcicgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtZGFzaGJvYXJkJyB9LCAgXHJcbiAgICAgIF1cclxuICAgIH1cclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2VzOlNlY3VyaXR5U2VydmljZXMscHJpdmF0ZSByb3V0ZXI6IFJvdXRlcil7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgaWYodGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5pc0F1dGgkID0gdGhpcy5pc0F1dGgoKTtcclxuICAgICAgdGhpcy5pc0F1dGgkLnN1YnNjcmliZShpc0F1dGhlbnRpY2F0ZWQgPT4ge1xyXG4gICAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tSZXNvdXJjZSgpO1xyXG4gICAgICAgICAgaWYoIXRoaXMuaXNNb2JpbGUpe1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrUmVzb3VyY2VCeVJvbGUoKTtcclxuICAgICAgICAgIH0gICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oJy8nLCAnX3NlbGYnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNBdXRoKCl7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlcy5pc0F1dGhlbnRpY2F0ZWQodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHsgICAgICAgICAgXHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb246IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmKCF0aGlzLmF1dG8pe1xyXG4gICAgICB0aGlzLnJlY2VudE5hdmlnYXRlLmVtaXQob3B0aW9uKTtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBvbkl0ZW1DbGljayh1cmw6IGFueSkge1xyXG4gICAgaWYoIXRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMubWVudU5hdmlnYXRlLmVtaXQodXJsKTtcclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zdCB1cmxPYmogPSB1cmwudXJsU2VuZDtcclxuICAgICAgY29uc3QgZXZlbnQgPSB1cmwuZXZlbnQ7XHJcbiAgICBcclxuICAgICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIGlmKHVybE9iai51cmwpe1xyXG4gICAgICAgIHRoaXMuc2VydmljZXMuc2F2ZUhpc3RvcnkodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsLHtvcHRpb25JZDogdXJsT2JqLmlkfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodXJsT2JqLm5ldyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuaXNNb2JpbGUpe1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3V2luZG93ID0gd2luZG93Lm9wZW4odXJsT2JqLnVybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld1dpbmRvdykge1xyXG4gICAgICAgICAgICAgICAgICBuZXdXaW5kb3cub3BlbmVyID0gbnVsbDsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfWVsc2UgaWYodXJsT2JqLmlzV2lzZSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXV0aENvZGUodXJsT2JqLnVybCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfYmxhbmsnKTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgICAgbmV3V2luZG93Lm9wZW5lciA9IG51bGw7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzTW9iaWxlKXtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfc2VsZicpO1xyXG4gICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgaWYodXJsT2JqLmlzV2lzZSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXV0aENvZGUodXJsT2JqLnVybCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZih0aGlzLmlzRXh0ZXJuYWxVcmwodXJsT2JqLnVybCkpe1xyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cub3Blbih1cmxPYmoudXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsT2JqLnVybCwgJ19zZWxmJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8qXHJcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlLnNhdmVIaXN0b3J5KHtvcHRpb25JZDogdXJsT2JqLmlkfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHsgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgICovXHJcbiAgICB9ICBcclxuICB9XHJcblxyXG4gIGFycm93Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZighdGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5yZXR1cm5DbGljay5lbWl0KCRldmVudCk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgb25JdGVtTW9kdWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSl7XHJcbiAgICBpZighdGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5tb2R1bGVTZWxlY3QuZW1pdChldmVudC5pZCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jdXJyZW50TW9kdWxlKGV2ZW50LmlkKTtcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGFuaWVzKCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldENvbXBhbmllc0luZm8odGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgICBjb25zdCBjYWMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ0FDJyk7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2NjID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NDQycpO1xyXG4gICAgICAgICAgICAgIGlmKGNhYyAmJiBjY2Mpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5sb2FkLmZvckVhY2goKGM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjLmFnZW5jaWVzLmZvckVhY2goKGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGEuYWdlbmN5Q29kZSA9PSBjYWMgJiYgYy5jb21wYW55Q29kZSA9PSBjY2Mpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgYy5pc09wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICB0aGlzLmNvbXBhbmllcyA9IGRhdGEubG9hZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEhpc3RvcnkoKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0SGlzdG9yeSh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBpZihkYXRhLmxvYWQpe1xyXG4gICAgICAgICAgICB0aGlzLnJlY2VudE9wdGlvbnMgPSBkYXRhLmxvYWQ7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVjZW50T3B0aW9ucy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImxhc3Qgb3B0aW9uIGVtaXRcIik7XHJcbiAgICAgICAgICAgICAgdGhpcy5sYXN0T3B0aW9uLmVtaXQodGhpcy5yZWNlbnRPcHRpb25zWzBdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuZ2V0TW9kdWxlcygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tSZXNvdXJjZSgpe1xyXG4gICAgdGhpcy5zZXJ2aWNlcy5nZXRSZXNvdXJjZXNCeVVzZXIodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YS5sb2FkKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRIaXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29tcGFuaWVzKCk7XHJcbiAgICAgICAgICB9ICAgICAgICAgIFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGVja1Jlc291cmNlQnlSb2xlKCl7XHJcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKCk7XHJcbiAgICBpZihwYXRoICE9ICcvaG9tZScpe1xyXG4gICAgICB0aGlzLnNlcnZpY2VzLmdldFJlc291cmNlc0J5Um9sZVVzZXIodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsLHBhdGgpLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICBpZihkYXRhLmxvYWQgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgIHdpbmRvdy5vcGVuKCcvaG9tZScsICdfc2VsZicpO1xyXG4gICAgICAgICAgICB9ICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGdldFBhdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXTtcclxuICB9XHJcblxyXG4gIGdldE1vZHVsZXMoKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0TW9kdWxlcyh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxvYWQpIHtcclxuICAgICAgICAgIHRoaXMubW9kdWxlTGlzdCA9IGRhdGEubG9hZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucmVjZW50T3B0aW9ucyAmJiB0aGlzLnJlY2VudE9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgaWYodGhpcy5yZWNlbnRPcHRpb25zWzBdLmFwcGxpY2F0aW9uSWQpe1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2R1bGUodGhpcy5yZWNlbnRPcHRpb25zWzBdLmFwcGxpY2F0aW9uSWQpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZHVsZSh0aGlzLm1vZHVsZUxpc3RbMF0uaWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50TW9kdWxlKHRoaXMubW9kdWxlTGlzdFswXS5pZClcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIC8qXHJcbiAgICBpZiAodGhpcy5yZWNlbnREYXRhKSB7XHJcbiAgICAgIHRoaXMubW9kdWxlU2VsZWN0KHRoaXMucmVjZW50RGF0YVswXS5hcHBsaWNhdGlvbklkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCB0aGlzLmRyb3Bkb3duT3B0aW9uc01lbnUpXHJcbiAgICAgIC8vIGNvbnN0IGZpcnN0T3B0aW9uSWQgPSB0aGlzLmRyb3Bkb3duT3B0aW9uc01lbnU/LlswXT8uaWQ7XHJcbiAgICAgIC8vIGlmIChmaXJzdE9wdGlvbklkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gICB0aGlzLm1vZHVsZVNlbGVjdChmaXJzdE9wdGlvbklkKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgKi9cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgY3VycmVudE1vZHVsZShldmVudDogYW55KXtcclxuICAgIHRoaXMuc2VydmljZXMubWVudU1vZHVsZVNlbGVjdGVkKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCxldmVudCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEubG9hZCkge1xyXG4gICAgICAgICAgY29uc3QgbWVudURhdGEgPSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFxyXG4gICAgICAgICAgICAgIGRhdGEubG9hZFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMubWVudURhdGEgPSBtZW51RGF0YTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNFeHRlcm5hbFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1cmwpICYmICF1cmwuaW5jbHVkZXMod2luZG93LmxvY2F0aW9uLm9yaWdpbik7XHJcbiAgfVxyXG5cclxuICBnZXRBdXRoQ29kZSh1cmw6c3RyaW5nKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0QXV0aENvZGUodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XHJcbiAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnYXV0aGNvZGUnLCBkYXRhLmxvYWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpc2VVcmwgPSB1cmwgKyAnJicgKyBwYXJhbXMudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB3aW5kb3cub3Blbih3aXNlVXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iLCI8aGVhZGVyIFthdHRyLmRhdGEtdGhlbWVdPVwidGhlbWVcIiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiAobWVudUl0ZW1DbGljayk9XCJtZW51SXRlbUNsaWNrXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1tZW51LWRhc2hib2FyZC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93QmFja0J1dHRvblwiIGNsYXNzPVwiaGVhZGVyLWJ1dHRvblwiIChjbGljayk9XCJhcnJvd0NsaWNrKCRldmVudClcIj5cclxuICAgICAgPGkgY2xhc3M9XCJtZW51LWFycm93LWxlZnRcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxsaWItbWVudSBjbGFzcz1cImhlYWRlci1tZW51LWxpYlwiIFtkYXRhXT1cIm1lbnVEYXRhXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuICAgICAgW2Ryb3Bkb3duT3B0aW9uc109XCJtb2R1bGVMaXN0XCIgKG1lbnVJdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiIChtb2R1bGVTZWxlY3RlZCk9XCJvbkl0ZW1Nb2R1bGVTZWxlY3RlZCgkZXZlbnQpXCIgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCI+PC9saWItbWVudT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxvZ29cIj5cclxuICAgIDxzcGFuIFtjbGFzc109XCJhcHBMb2dvXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1yZWNlbnRzLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bGliLXJlY2VudHMtZHJvcGRvd24gW29wdGlvbnNdPVwicmVjZW50T3B0aW9uc1wiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItcmVjZW50cy1kcm9wZG93bj5cclxuICAgIDwvZGl2PlxyXG4gICAgICA8IS0tXHJcbiAgICAgIDxsaWItbm90aWZpY2F0aW9ucyBbb3B0aW9uc109XCJub3RpZmljYXRpb25PcHRpb25zXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImhhbmRsZU9wdGlvblNlbGVjdGVkKCRldmVudClcIj48L2xpYi1ub3RpZmljYXRpb25zPlxyXG4gICAgICAtLT5cclxuICAgIFxyXG5cclxuICAgIDxsaWItY29tcGFueS1kcm9wZG93biBbY29tcGFuaWVzXT1cImNvbXBhbmllc1wiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItY29tcGFueS1kcm9wZG93bj5cclxuXHJcbiAgICA8bGliLXVzZXItZHJvcGRvd24gW2Jhc2VVcmxdPVwic2VydmljZXNDb25maWcuYmFzZVVybFwiIFtpc01vYmlsZV09XCJpc01vYmlsZVwiPjwvbGliLXVzZXItZHJvcGRvd24+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPiJdfQ==
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBWSxNQUFNLGtDQUFrQyxDQUFDO0FBSTFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBbUJ0QyxNQUFNLE9BQU8sZUFBZTtJQW9EMUIsWUFBb0IsUUFBeUIsRUFBUyxNQUFjO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQW5EM0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQVcsU0FBUyxDQUFDO1FBQzFCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGFBQVEsR0FBUyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixtQkFBYyxHQUFtQjtZQUN4QyxPQUFPLEVBQUUsRUFBRTtZQUNYLEtBQUssRUFBRSxLQUFLO1lBQ1osUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVB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ZkN6QjVCLG0xQ0E0QlM7OzRGREhJLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTs0SEFLYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRyb3Bkb3duQ29tcGFuaWVzT3B0aW9ucywgZHJvcGRvd25Ob3RpZmljYXRpb25PcHRpb25zLCBkcm9wZG93blJlY2VudE9wdGlvbnMsIG1lbnVEYXRhIH0gZnJvbSAnLi4vYXNzZXRzL21lbnUtZGF0YS9tZW51RGF0YVRlc3QnO1xyXG5pbXBvcnQgeyBEYXRhLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZXJ2aWNlc0NvbmZpZyB9IGZyb20gJy4uL3V0aWxzL21vZGVscy9TZXJ2aWNlc0NvbmZpZyc7XHJcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZXMgfSBmcm9tICcuLi91dGlscy9zZXJ2aWNlcy9TZWN1cml0eVNlcnZpY2VzRGVmYXVsdCc7XHJcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb25zIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgcGFyZW50SWQ6IGFueTtcclxuICBvcHRpb25zOiBEcm9wZG93bk9wdGlvbkNhdGVyZ29yeVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9uQ2F0ZXJnb3J5IHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGVhZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi4vYXNzZXRzL2ZvbnRzL3N0eWxlLmNzcycsICcuLi9hc3NldHMvdGhlbWUuc2NzcycsJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgYXBwTG9nbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdGhlbWU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbWVudURhdGE6IERhdGEgPSB7Y2F0ZWdvcmllczogW119O1xyXG4gIEBJbnB1dCgpIHJlY2VudE9wdGlvbnMgOmFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNvbXBhbmllcyA6YW55ID0gW107XHJcbiAgQElucHV0KCkgbW9kdWxlTGlzdDogYW55ID0gW107XHJcbiAgQElucHV0KCkgYXV0bzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlcnZpY2VzQ29uZmlnOiBTZXJ2aWNlc0NvbmZpZyA9IHtcclxuICAgIGJhc2VVcmw6ICcnLFxyXG4gICAgaXNEZXY6IGZhbHNlLFxyXG4gICAgdXNlcm5hbWU6ICcnLFxyXG4gICAgcGFzc3dvcmQ6ICcnXHJcbiAgfTtcclxuICBASW5wdXQoKSBpc01vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZXR1cm5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG1lbnVOYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSByZWNlbnROYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyAgXHJcbiAgQE91dHB1dCgpIG1vZHVsZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBsYXN0T3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgXHJcbiAgaXNBdXRoJDogT2JzZXJ2YWJsZTxib29sZWFuPiB8IHVuZGVmaW5lZDtcclxuICBkcm9wZG93bk9wdGlvbnMgPSBkcm9wZG93blJlY2VudE9wdGlvbnM7XHJcbiAgbm90aWZpY2F0aW9uT3B0aW9ucyA9IGRyb3Bkb3duTm90aWZpY2F0aW9uT3B0aW9ucztcclxuICBjb21wYW5pZXNEcm9wZG93biA9IGRyb3Bkb3duQ29tcGFuaWVzT3B0aW9ucztcclxuICBzZWxlY3RlZE9wdGlvbjogYW55O1xyXG4gIGRyb3Bkb3duT3B0aW9uc01lbnU6IERyb3Bkb3duT3B0aW9uc1tdID0gWyBcclxuICAgIHtcclxuICAgICAgaWQ6IDAsXHJcbiAgICAgIGxhYmVsOiAnTG9yZW0gSXBzdW0nLFxyXG4gICAgICBwYXJlbnRJZDogbnVsbCxcclxuICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1jb25maWd1cmF0aW9uJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1idXMtZ2F2aW90YScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtc2F0ZWxpdGUnIH0sXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAwLFxyXG4gICAgICBsYWJlbDogJ0xvcmVtIElwc3VtJyxcclxuICAgICAgcGFyZW50SWQ6IG51bGwsXHJcbiAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtdmlkZW8nIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLXJ1dGUnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLWNhbGVuZGFyJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1kYXNoYm9hcmQnIH0sICBcclxuICAgICAgXVxyXG4gICAgfVxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZXM6U2VjdXJpdHlTZXJ2aWNlcyxwcml2YXRlIHJvdXRlcjogUm91dGVyKXtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICBpZih0aGlzLmF1dG8pe1xyXG4gICAgICB0aGlzLmlzQXV0aCQgPSB0aGlzLmlzQXV0aCgpO1xyXG4gICAgICB0aGlzLmlzQXV0aCQuc3Vic2NyaWJlKGlzQXV0aGVudGljYXRlZCA9PiB7XHJcbiAgICAgICAgaWYgKGlzQXV0aGVudGljYXRlZCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja1Jlc291cmNlKCk7XHJcbiAgICAgICAgICBpZighdGhpcy5pc01vYmlsZSl7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSZXNvdXJjZUJ5Um9sZSgpO1xyXG4gICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICAgICAgICB3aW5kb3cub3BlbignLycsICdfc2VsZicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0F1dGgoKXtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VzLmlzQXV0aGVudGljYXRlZCh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIGlmKHRoaXMuc2VydmljZXNDb25maWcuaXNEZXYpe1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZG9Mb2dpbigpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZG9Mb2dpbigpe1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXMubG9naW4odGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VzQ29uZmlnLnVzZXJuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VzQ29uZmlnLnBhc3N3b3JkKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOmFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2UgeyAgICAgICBcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpOyAgICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XHJcbiAgICBpZighdGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5yZWNlbnROYXZpZ2F0ZS5lbWl0KG9wdGlvbik7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgb25JdGVtQ2xpY2sodXJsOiBhbnkpIHtcclxuICAgIGlmKCF0aGlzLmF1dG8pe1xyXG4gICAgICB0aGlzLm1lbnVOYXZpZ2F0ZS5lbWl0KHVybCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc3QgdXJsT2JqID0gdXJsLnVybFNlbmQ7XHJcbiAgICAgIGNvbnN0IGV2ZW50ID0gdXJsLmV2ZW50O1xyXG4gICAgXHJcbiAgICAgIGlmIChldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBpZih1cmxPYmoudXJsKXtcclxuICAgICAgICB0aGlzLnNlcnZpY2VzLnNhdmVIaXN0b3J5KHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCx7b3B0aW9uSWQ6IHVybE9iai5pZH0pLnN1YnNjcmliZShcclxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHVybE9iai5uZXcgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzTW9iaWxlKXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfYmxhbmsnKTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgICAgbmV3V2luZG93Lm9wZW5lciA9IG51bGw7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1lbHNlIGlmKHVybE9iai5pc1dpc2Upe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEF1dGhDb2RlKHVybE9iai51cmwpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdXaW5kb3cgPSB3aW5kb3cub3Blbih1cmxPYmoudXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3V2luZG93KSB7XHJcbiAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdy5vcGVuZXIgPSBudWxsOyBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5pc01vYmlsZSl7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cub3Blbih1cmxPYmoudXJsLCAnX3NlbGYnKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKHVybE9iai5pc1dpc2Upe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEF1dGhDb2RlKHVybE9iai51cmwpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYodGhpcy5pc0V4dGVybmFsVXJsKHVybE9iai51cmwpKXtcclxuICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsT2JqLnVybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfc2VsZicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvKlxyXG4gICAgICB0aGlzLmluYm94U2VydmljZS5zYXZlSGlzdG9yeSh7b3B0aW9uSWQ6IHVybE9iai5pZH0pLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7ICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICAqL1xyXG4gICAgfSAgXHJcbiAgfVxyXG5cclxuICBhcnJvd0NsaWNrKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYoIXRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMucmV0dXJuQ2xpY2suZW1pdCgkZXZlbnQpO1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIG9uSXRlbU1vZHVsZVNlbGVjdGVkKGV2ZW50OiBhbnkpe1xyXG4gICAgaWYoIXRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMubW9kdWxlU2VsZWN0LmVtaXQoZXZlbnQuaWQpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vZHVsZShldmVudC5pZCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGdldENvbXBhbmllcygpe1xyXG4gICAgdGhpcy5zZXJ2aWNlcy5nZXRDb21wYW5pZXNJbmZvKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2FjID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NBQycpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNjYyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDQ0MnKTtcclxuICAgICAgICAgICAgICBpZihjYWMgJiYgY2NjKXtcclxuICAgICAgICAgICAgICAgIGRhdGEubG9hZC5mb3JFYWNoKChjOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgYy5hZ2VuY2llcy5mb3JFYWNoKChhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihhLmFnZW5jeUNvZGUgPT0gY2FjICYmIGMuY29tcGFueUNvZGUgPT0gY2NjKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgdGhpcy5jb21wYW5pZXMgPSBkYXRhLmxvYWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRIaXN0b3J5KCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldEhpc3RvcnkodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgdGhpcy5yZWNlbnRPcHRpb25zID0gZGF0YS5sb2FkO1xyXG4gICAgICAgICAgICBpZih0aGlzLnJlY2VudE9wdGlvbnMubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJsYXN0IG9wdGlvbiBlbWl0XCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGFzdE9wdGlvbi5lbWl0KHRoaXMucmVjZW50T3B0aW9uc1swXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmdldE1vZHVsZXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoZWNrUmVzb3VyY2UoKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0UmVzb3VyY2VzQnlVc2VyKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEubG9hZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SGlzdG9yeSgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldENvbXBhbmllcygpO1xyXG4gICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tSZXNvdXJjZUJ5Um9sZSgpe1xyXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aCgpO1xyXG4gICAgaWYocGF0aCAhPSAnL2hvbWUnKXtcclxuICAgICAgdGhpcy5zZXJ2aWNlcy5nZXRSZXNvdXJjZXNCeVJvbGVVc2VyKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCxwYXRoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgaWYoZGF0YS5sb2FkID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICB3aW5kb3cub3BlbignL2hvbWUnLCAnX3NlbGYnKTtcclxuICAgICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBnZXRQYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCc/JylbMF07XHJcbiAgfVxyXG5cclxuICBnZXRNb2R1bGVzKCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldE1vZHVsZXModGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5sb2FkKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZHVsZUxpc3QgPSBkYXRhLmxvYWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnJlY2VudE9wdGlvbnMgJiYgdGhpcy5yZWNlbnRPcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGlmKHRoaXMucmVjZW50T3B0aW9uc1swXS5hcHBsaWNhdGlvbklkKXtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TW9kdWxlKHRoaXMucmVjZW50T3B0aW9uc1swXS5hcHBsaWNhdGlvbklkKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2R1bGUodGhpcy5tb2R1bGVMaXN0WzBdLmlkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudE1vZHVsZSh0aGlzLm1vZHVsZUxpc3RbMF0uaWQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICAvKlxyXG4gICAgaWYgKHRoaXMucmVjZW50RGF0YSkge1xyXG4gICAgICB0aGlzLm1vZHVsZVNlbGVjdCh0aGlzLnJlY2VudERhdGFbMF0uYXBwbGljYXRpb25JZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZyggdGhpcy5kcm9wZG93bk9wdGlvbnNNZW51KVxyXG4gICAgICAvLyBjb25zdCBmaXJzdE9wdGlvbklkID0gdGhpcy5kcm9wZG93bk9wdGlvbnNNZW51Py5bMF0/LmlkO1xyXG4gICAgICAvLyBpZiAoZmlyc3RPcHRpb25JZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vICAgdGhpcy5tb2R1bGVTZWxlY3QoZmlyc3RPcHRpb25JZCk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICAgICovXHJcbiAgICBcclxuICB9XHJcblxyXG4gIGN1cnJlbnRNb2R1bGUoZXZlbnQ6IGFueSl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLm1lbnVNb2R1bGVTZWxlY3RlZCh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwsZXZlbnQpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxvYWQpIHtcclxuICAgICAgICAgIGNvbnN0IG1lbnVEYXRhID0ge1xyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBcclxuICAgICAgICAgICAgICBkYXRhLmxvYWRcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLm1lbnVEYXRhID0gbWVudURhdGE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzRXh0ZXJuYWxVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJsKSAmJiAhdXJsLmluY2x1ZGVzKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXV0aENvZGUodXJsOnN0cmluZyl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldEF1dGhDb2RlKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xyXG4gICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2F1dGhjb2RlJywgZGF0YS5sb2FkKTtcclxuICAgICAgICAgICAgICBjb25zdCB3aXNlVXJsID0gdXJsICsgJyYnICsgcGFyYW1zLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgd2luZG93Lm9wZW4od2lzZVVybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuXHJcbn1cclxuIiwiPGhlYWRlciBbYXR0ci5kYXRhLXRoZW1lXT1cInRoZW1lXCIgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCIgKG1lbnVJdGVtQ2xpY2spPVwibWVudUl0ZW1DbGlja1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbWVudS1kYXNoYm9hcmQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0JhY2tCdXR0b25cIiBjbGFzcz1cImhlYWRlci1idXR0b25cIiAoY2xpY2spPVwiYXJyb3dDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwibWVudS1hcnJvdy1sZWZ0XCI+PC9pPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bGliLW1lbnUgY2xhc3M9XCJoZWFkZXItbWVudS1saWJcIiBbZGF0YV09XCJtZW51RGF0YVwiIFt0aGVtZV09XCJ0aGVtZVwiXHJcbiAgICAgIFtkcm9wZG93bk9wdGlvbnNdPVwibW9kdWxlTGlzdFwiIChtZW51SXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIiAobW9kdWxlU2VsZWN0ZWQpPVwib25JdGVtTW9kdWxlU2VsZWN0ZWQoJGV2ZW50KVwiIFtpc01vYmlsZV09XCJpc01vYmlsZVwiPjwvbGliLW1lbnU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1sb2dvXCI+XHJcbiAgICA8c3BhbiBbY2xhc3NdPVwiYXBwTG9nb1wiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1ub3RpZmljYXRpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtcmVjZW50cy1jb250YWluZXJcIj5cclxuICAgICAgPGxpYi1yZWNlbnRzLWRyb3Bkb3duIFtvcHRpb25zXT1cInJlY2VudE9wdGlvbnNcIlxyXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiPjwvbGliLXJlY2VudHMtZHJvcGRvd24+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgPCEtLVxyXG4gICAgICA8bGliLW5vdGlmaWNhdGlvbnMgW29wdGlvbnNdPVwibm90aWZpY2F0aW9uT3B0aW9uc1wiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItbm90aWZpY2F0aW9ucz5cclxuICAgICAgLS0+XHJcbiAgICBcclxuXHJcbiAgICA8bGliLWNvbXBhbnktZHJvcGRvd24gW2NvbXBhbmllc109XCJjb21wYW5pZXNcIlxyXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiPjwvbGliLWNvbXBhbnktZHJvcGRvd24+XHJcblxyXG4gICAgPGxpYi11c2VyLWRyb3Bkb3duIFtiYXNlVXJsXT1cInNlcnZpY2VzQ29uZmlnLmJhc2VVcmxcIiBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIj48L2xpYi11c2VyLWRyb3Bkb3duPlxyXG4gIDwvZGl2PlxyXG48L2hlYWRlcj4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZXNDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXRpbHMvbW9kZWxzL1NlcnZpY2VzQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VzQ29uZmlnIHtcclxuICAgIGJhc2VVcmw6IHN0cmluZztcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZXNDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXRpbHMvbW9kZWxzL1NlcnZpY2VzQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VzQ29uZmlnIHtcclxuICAgIGJhc2VVcmw6IHN0cmluZztcclxuICAgIGlzRGV2OiBib29sZWFuO1xyXG4gICAgdXNlcm5hbWU6IHN0cmluZztcclxuICAgIHBhc3N3b3JkOiBzdHJpbmc7XHJcbn0iXX0=
@@ -8,6 +8,7 @@ export class SecurityServices {
8
8
  static { this.COMPANIES_INFO = '/security/secure/getCompaniesInfo'; }
9
9
  static { this.VERIFY_AUTH = '/security/secure/validatesession'; }
10
10
  static { this.RESOURCES_BY_USER = '/security/secure/resourcesbyuser'; }
11
+ static { this.LOGIN = '/security/login'; }
11
12
  static { this.LOGOUT = '/security/secure/logOut'; }
12
13
  static { this.SAVE_HISTORY = '/security/secure/savehistory'; }
13
14
  static { this.VERIFY_RESOURCES_BY_USERROLE = '/security/secure/validateresourcesbyRole'; }
@@ -41,6 +42,13 @@ export class SecurityServices {
41
42
  params.append('path', path);
42
43
  return this.http.get(baseUrl + SecurityServices.VERIFY_RESOURCES_BY_USERROLE + '?' + params.toString());
43
44
  }
45
+ login(baseUrl, username, password) {
46
+ const log = {
47
+ 'username': username,
48
+ 'password': password
49
+ };
50
+ return this.http.post(baseUrl + SecurityServices.LOGIN, log);
51
+ }
44
52
  logOut(baseUrl) {
45
53
  return this.http.post(baseUrl + SecurityServices.LOGOUT, null);
46
54
  }
@@ -62,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
62
70
  providedIn: 'root'
63
71
  }]
64
72
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXRpbHMvc2VydmljZXMvU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3pDLE1BQU0sT0FBTyxnQkFBZ0I7YUFFWCxZQUFPLEdBQUcsNkJBQTZCLEFBQWhDLENBQWlDO2FBQ3hDLFlBQU8sR0FBRyxnQ0FBZ0MsQUFBbkMsQ0FBb0M7YUFDM0Msa0JBQWEsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7YUFDbkQsbUJBQWMsR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7YUFDckQsZ0JBQVcsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7YUFDakQsc0JBQWlCLEdBQUcsa0NBQWtDLEFBQXJDLENBQXNDO2FBQ3ZELFdBQU0sR0FBRyx5QkFBeUIsQUFBNUIsQ0FBNkI7YUFDbkMsaUJBQVksR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7YUFDOUMsaUNBQTRCLEdBQUcsMENBQTBDLEFBQTdDLENBQThDO2FBQzFFLG9CQUFlLEdBQUcsaUNBQWlDLEFBQXBDLENBQXFDO2FBQ3BELGtCQUFhLEdBQUcsOEJBQThCLEFBQWpDLENBQWlDO0lBRTlELFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUdBLFVBQVUsQ0FBQyxPQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxVQUFVLENBQUMsT0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBYyxFQUFDLEtBQVU7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFjO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBYztRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBYztRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFjLEVBQUMsSUFBUTtRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLDRCQUE0QixHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBYyxFQUFDLE1BQVU7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBYyxFQUFDLEVBQU07UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRSxDQUFDOytHQWhFUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbiAgfSlcclxuICBleHBvcnQgY2xhc3MgU2VjdXJpdHlTZXJ2aWNlcyB7XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IEhJU1RPUlkgPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRoaXN0b3J5JztcclxuICAgIHN0YXRpYyByZWFkb25seSBNT0RVTEVTID0gJy9zZWN1cml0eS9zZWN1cmUvbW9kdWxlc2J5dXNlcic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTU9EVUxFX09QVElPTiA9ICcvc2VjdXJpdHkvc2VjdXJlL29wdGlvbnNieW1vZHVsZSc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgQ09NUEFOSUVTX0lORk8gPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRDb21wYW5pZXNJbmZvJztcclxuICAgIHN0YXRpYyByZWFkb25seSBWRVJJRllfQVVUSCA9ICcvc2VjdXJpdHkvc2VjdXJlL3ZhbGlkYXRlc2Vzc2lvbic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgUkVTT1VSQ0VTX0JZX1VTRVIgPSAnL3NlY3VyaXR5L3NlY3VyZS9yZXNvdXJjZXNieXVzZXInO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IExPR09VVCA9ICcvc2VjdXJpdHkvc2VjdXJlL2xvZ091dCc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgU0FWRV9ISVNUT1JZID0gJy9zZWN1cml0eS9zZWN1cmUvc2F2ZWhpc3RvcnknO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFZFUklGWV9SRVNPVVJDRVNfQllfVVNFUlJPTEUgPSAnL3NlY3VyaXR5L3NlY3VyZS92YWxpZGF0ZXJlc291cmNlc2J5Um9sZSc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgQ0hBTkdFX1BBU1NXT1JEID0gJy9zZWN1cml0eS9zZWN1cmUvY2hhbmdlUGFzc3dvcmQnO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IEdFVF9BVVRIX0NPREUgPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRhdXRoY29kZSdcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIH1cclxuXHJcblxyXG4gICAgIGdldEhpc3RvcnkoYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLkhJU1RPUlkpO1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgZ2V0TW9kdWxlcyhiYXNlVXJsOnN0cmluZyl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuTU9EVUxFUyk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBtZW51TW9kdWxlU2VsZWN0ZWQoYmFzZVVybDpzdHJpbmcsYXBwSWQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcclxuICAgICAgICBwYXJhbXMuYXBwZW5kKCdhcHBJZCcsIGFwcElkKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5NT0RVTEVfT1BUSU9OICsgJz8nICsgcGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBnZXRDb21wYW5pZXNJbmZvKGJhc2VVcmw6c3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuQ09NUEFOSUVTX0lORk8pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpc0F1dGhlbnRpY2F0ZWQoYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLlZFUklGWV9BVVRIKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ2V0UmVzb3VyY2VzQnlVc2VyKGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5SRVNPVVJDRVNfQllfVVNFUik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdldFJlc291cmNlc0J5Um9sZVVzZXIoYmFzZVVybDpzdHJpbmcscGF0aDphbnkpe1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcclxuICAgICAgICBwYXJhbXMuYXBwZW5kKCdwYXRoJywgcGF0aCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuVkVSSUZZX1JFU09VUkNFU19CWV9VU0VSUk9MRSArICc/JyArIHBhcmFtcy50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbG9nT3V0KGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuTE9HT1VULG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzYXZlSGlzdG9yeShiYXNlVXJsOnN0cmluZyxvcHRpb246YW55KXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuU0FWRV9ISVNUT1JZLG9wdGlvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNoYW5nZVBhc3N3b3JkKGJhc2VVcmw6c3RyaW5nLGNwOmFueSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLkNIQU5HRV9QQVNTV09SRCxjcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdldEF1dGhDb2RlKGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5HRVRfQVVUSF9DT0RFKTtcclxuICAgICAgfVxyXG5cclxuICB9Il19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXRpbHMvc2VydmljZXMvU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3pDLE1BQU0sT0FBTyxnQkFBZ0I7YUFFWCxZQUFPLEdBQUcsNkJBQTZCLEFBQWhDLENBQWlDO2FBQ3hDLFlBQU8sR0FBRyxnQ0FBZ0MsQUFBbkMsQ0FBb0M7YUFDM0Msa0JBQWEsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7YUFDbkQsbUJBQWMsR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7YUFDckQsZ0JBQVcsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7YUFDakQsc0JBQWlCLEdBQUcsa0NBQWtDLEFBQXJDLENBQXNDO2FBQ3ZELFVBQUssR0FBRyxpQkFBaUIsQUFBcEIsQ0FBcUI7YUFDMUIsV0FBTSxHQUFHLHlCQUF5QixBQUE1QixDQUE2QjthQUNuQyxpQkFBWSxHQUFHLDhCQUE4QixBQUFqQyxDQUFrQzthQUM5QyxpQ0FBNEIsR0FBRywwQ0FBMEMsQUFBN0MsQ0FBOEM7YUFDMUUsb0JBQWUsR0FBRyxpQ0FBaUMsQUFBcEMsQ0FBcUM7YUFDcEQsa0JBQWEsR0FBRyw4QkFBOEIsQUFBakMsQ0FBaUM7SUFFOUQsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBR0EsVUFBVSxDQUFDLE9BQWM7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFjLEVBQUMsS0FBVTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFjO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWMsRUFBQyxJQUFRO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsNEJBQTRCLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBYyxFQUFDLFFBQWUsRUFBQyxRQUFlO1FBQ2xELE1BQU0sR0FBRyxHQUFHO1lBQ1YsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLFFBQVE7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBYyxFQUFDLE1BQVU7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBYyxFQUFDLEVBQU07UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRSxDQUFDOytHQXpFUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbiAgfSlcclxuICBleHBvcnQgY2xhc3MgU2VjdXJpdHlTZXJ2aWNlcyB7XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IEhJU1RPUlkgPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRoaXN0b3J5JztcclxuICAgIHN0YXRpYyByZWFkb25seSBNT0RVTEVTID0gJy9zZWN1cml0eS9zZWN1cmUvbW9kdWxlc2J5dXNlcic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTU9EVUxFX09QVElPTiA9ICcvc2VjdXJpdHkvc2VjdXJlL29wdGlvbnNieW1vZHVsZSc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgQ09NUEFOSUVTX0lORk8gPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRDb21wYW5pZXNJbmZvJztcclxuICAgIHN0YXRpYyByZWFkb25seSBWRVJJRllfQVVUSCA9ICcvc2VjdXJpdHkvc2VjdXJlL3ZhbGlkYXRlc2Vzc2lvbic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgUkVTT1VSQ0VTX0JZX1VTRVIgPSAnL3NlY3VyaXR5L3NlY3VyZS9yZXNvdXJjZXNieXVzZXInO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IExPR0lOID0gJy9zZWN1cml0eS9sb2dpbic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTE9HT1VUID0gJy9zZWN1cml0eS9zZWN1cmUvbG9nT3V0JztcclxuICAgIHN0YXRpYyByZWFkb25seSBTQVZFX0hJU1RPUlkgPSAnL3NlY3VyaXR5L3NlY3VyZS9zYXZlaGlzdG9yeSc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgVkVSSUZZX1JFU09VUkNFU19CWV9VU0VSUk9MRSA9ICcvc2VjdXJpdHkvc2VjdXJlL3ZhbGlkYXRlcmVzb3VyY2VzYnlSb2xlJztcclxuICAgIHN0YXRpYyByZWFkb25seSBDSEFOR0VfUEFTU1dPUkQgPSAnL3NlY3VyaXR5L3NlY3VyZS9jaGFuZ2VQYXNzd29yZCc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgR0VUX0FVVEhfQ09ERSA9ICcvc2VjdXJpdHkvc2VjdXJlL2dldGF1dGhjb2RlJ1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgZ2V0SGlzdG9yeShiYXNlVXJsOnN0cmluZyl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuSElTVE9SWSk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBnZXRNb2R1bGVzKGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5NT0RVTEVTKTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIG1lbnVNb2R1bGVTZWxlY3RlZChiYXNlVXJsOnN0cmluZyxhcHBJZDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xyXG4gICAgICAgIHBhcmFtcy5hcHBlbmQoJ2FwcElkJywgYXBwSWQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLk1PRFVMRV9PUFRJT04gKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdldENvbXBhbmllc0luZm8oYmFzZVVybDpzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5DT01QQU5JRVNfSU5GTyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlzQXV0aGVudGljYXRlZChiYXNlVXJsOnN0cmluZyl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuVkVSSUZZX0FVVEgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBnZXRSZXNvdXJjZXNCeVVzZXIoYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLlJFU09VUkNFU19CWV9VU0VSKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ2V0UmVzb3VyY2VzQnlSb2xlVXNlcihiYXNlVXJsOnN0cmluZyxwYXRoOmFueSl7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xyXG4gICAgICAgIHBhcmFtcy5hcHBlbmQoJ3BhdGgnLCBwYXRoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5WRVJJRllfUkVTT1VSQ0VTX0JZX1VTRVJST0xFICsgJz8nICsgcGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsb2dpbihiYXNlVXJsOnN0cmluZyx1c2VybmFtZTpzdHJpbmcscGFzc3dvcmQ6c3RyaW5nKXtcclxuICAgICAgICBjb25zdCBsb2cgPSB7XHJcbiAgICAgICAgICAndXNlcm5hbWUnOiB1c2VybmFtZSxcclxuICAgICAgICAgICdwYXNzd29yZCc6IHBhc3N3b3JkXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuTE9HSU4sbG9nKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbG9nT3V0KGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuTE9HT1VULG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzYXZlSGlzdG9yeShiYXNlVXJsOnN0cmluZyxvcHRpb246YW55KXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuU0FWRV9ISVNUT1JZLG9wdGlvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNoYW5nZVBhc3N3b3JkKGJhc2VVcmw6c3RyaW5nLGNwOmFueSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLkNIQU5HRV9QQVNTV09SRCxjcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdldEF1dGhDb2RlKGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5HRVRfQVVUSF9DT0RFKTtcclxuICAgICAgfVxyXG5cclxuICB9Il19