ezlibrary_v2 2.0.7 → 2.0.8

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.
@@ -77,7 +77,7 @@ export class CommanServiceService {
77
77
  }
78
78
  menuList(reqObj, headers) {
79
79
  JSON.stringify(reqObj);
80
- return this.http.post(this.glbEnv.baseUrl + 'login/loadMenu', JSON.stringify(reqObj), { headers })
80
+ return this.http.post(this.glbEnv.baseUrl + 'login/loadMenu', JSON.stringify(reqObj), headers)
81
81
  .toPromise()
82
82
  .then((response) => response);
83
83
  }
@@ -675,4 +675,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
675
675
  providedIn: 'root'
676
676
  }]
677
677
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.HttpClient }, { type: i3.GlobleEnvService }, { type: i4.DatePipe }]; } });
678
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuLXNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6LWxpYi9zcmMvbGliL2NvbW1hbi1zZXJ2aWNlL2NvbW1hbi1zZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakQsa0VBQWtFO0FBQ2xFLGtFQUFrRTtBQUNsRSxrREFBa0Q7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU3JDLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFDUyxNQUFjLEVBQ2IsSUFBZ0IsRUFDakIsTUFBd0I7SUFDL0Isc0RBQXNEO0lBQ3RELG9EQUFvRDtJQUM1QyxRQUFpQjtRQUxsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUd2QixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBWGxCLFVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTVCLE1BQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsTixNQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFF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QUcsR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNyRCxHQUFHLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzVFLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQzNHLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQzlHLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQzVHLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBSTlHLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNiLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxH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LEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEksT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFHRCxZQUFZO1FBQ1YsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFZQSxXQUFXLENBQUMsR0FBRztRQUNkLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDcEIsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNqQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDOztrSEE3dEJVLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGNBSG5CLE1BQU07NEZBR1Asb0JBQW9CO2tCQUpoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEdsb2JsZUVudlNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvZ2xvYmxlLWVudi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4vLyBpbXBvcnQgeyBOZzRMb2FkaW5nU3Bpbm5lclNlcnZpY2UgfSBmcm9tICduZzQtbG9hZGluZy1zcGlubmVyJztcclxuLy8gaW1wb3J0IHsgRmxhc2hNZXNzYWdlc1NlcnZpY2UgfSBmcm9tICdhbmd1bGFyMi1mbGFzaC1tZXNzYWdlcyc7XHJcbi8vIGltcG9ydCB7IFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEhlYWRPYmplY3RPdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ29tbWFuU2VydmljZVNlcnZpY2Uge1xyXG5cclxuICByZWFkb25seSBjRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgaGVhZGVyO1xyXG4gIGEgPSBbJycsICdvbmUgJywgJ3R3byAnLCAndGhyZWUgJywgJ2ZvdXIgJywgJ2ZpdmUgJywgJ3NpeCAnLCAnc2V2ZW4gJywgJ2VpZ2h0ICcsICduaW5lICcsICd0ZW4gJywgJ2VsZXZlbiAnLCAndHdlbHZlICcsICd0aGlydGVlbiAnLCAnZm91cnRlZW4gJywgJ2ZpZnRlZW4gJywgJ3NpeHRlZW4gJywgJ3NldmVudGVlbiAnLCAnZWlnaHRlZW4gJywgJ25pbmV0ZWVuICddO1xyXG4gIGIgPSBbJycsICcnLCAndHdlbnR5JywgJ3RoaXJ0eScsICdmb3J0eScsICdmaWZ0eScsICdzaXh0eScsICdzZXZlbnR5JywgJ2VpZ2h0eScsICduaW5ldHknXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwdWJsaWMgZ2xiRW52OiBHbG9ibGVFbnZTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSBGbGFzaE1lc3NhZ2VzU2VydmljZTogRmxhc2hNZXNzYWdlc1NlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZzRMb2FkaW5nU3Bpbm5lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOkRhdGVQaXBlXHJcbiAgKSB7IH1cclxuXHJcbiAgbG9hZExpc3QocmVxT2JqLCBoZWFkZXJzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArICdkYXNoYm9yZC9tb2R1bGUnLCBKU09OLnN0cmluZ2lmeShyZXFPYmopLCB7aGVhZGVyczpoZWFkZXJzfSlcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgbWVudUxpc3QocmVxT2JqLCBoZWFkZXJzKSB7XHJcbiAgICBKU09OLnN0cmluZ2lmeShyZXFPYmopO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2xiRW52LmJhc2VVcmwgKyAnbG9naW4vbG9hZE1lbnUnLCBKU09OLnN0cmluZ2lmeShyZXFPYmopLCB7aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIGxvYWRtZW51TGlzdChyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIEpTT04uc3RyaW5naWZ5KHJlcU9iaik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArICdsb2dpbi9nZXRNZW51JywgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwge2hlYWRlcnM6aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIGxvZ291dChyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdsYkVudi5iYXNlVXJsICsgJ2xvZ2luL2F1dGhlbnRpY2F0aW9uJywgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwge2hlYWRlcnM6aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIGF1dGhMb2dvdXQocmVxT2JqLCBoZWFkZXJzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArICdsb2dpbi9hdXRoTG9nb3V0JywgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwge2hlYWRlcnM6aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGFzeW5jIGdldFZubXNlcShyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiaGVhZGVyc1wiLGhlYWRlcnMpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2xiRW52LmJhc2VVcmwgKyAnYWNjb3VudHMvbWFzdGVyZGF0YScsIEpTT04uc3RyaW5naWZ5KHJlcU9iaiksIHtoZWFkZXJzOmhlYWRlcnN9KVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBDU1ZDb252ZXJ0b3IoSlNPTkRhdGEsIFJlcG9ydFRpdGxlLCBTaG93TGFiZWwpIHtcclxuICAgIGxldCBhcnJEYXRhID0gdHlwZW9mIEpTT05EYXRhICE9ICdvYmplY3QnID8gSlNPTi5wYXJzZShKU09ORGF0YSkgOiBKU09ORGF0YTtcclxuICAgIGNvbnNvbGUubG9nKFwiYXJyRGF0YVwiLCBhcnJEYXRhKTtcclxuXHJcbiAgICBsZXQgQ1NWID0gJyc7XHJcbiAgICBpZiAoU2hvd0xhYmVsKSB7XHJcbiAgICAgIGxldCByb3cgPSBcIlwiO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCBpbiBhcnJEYXRhWzBdKSB7XHJcbiAgICAgICAgcm93ICs9IGluZGV4ICsgJywnO1xyXG4gICAgICB9XHJcbiAgICAgIHJvdyA9IHJvdy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcm93ID0gXCJcIjtcclxuICAgICAgaWYgKGFyckRhdGFbaV0gIT0gJ2JyJykge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4IGluIGFyckRhdGFbaV0pIHtcclxuICAgICAgICAgIHJvdyArPSAnXCInICsgYXJyRGF0YVtpXVtpbmRleF0gKyAnXCIsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcm93LnNsaWNlKDAsIHJvdy5sZW5ndGggLSAxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQ1NWICs9IHJvdyArICdcXHJcXG4nO1xyXG4gICAgfVxyXG4gICAgaWYgKENTViA9PSAnJykge1xyXG4gICAgICBhbGVydChcIkludmFsaWQgZGF0YVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2coXCJhcnJEYXRhXCIsIGFyckRhdGEpO1xyXG4gICAgbGV0IGZpbGVOYW1lID0gXCJSZXBvcnRfXCI7XHJcbiAgICBsZXQgY1RpbWUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDE5KTtcclxuICAgIGZpbGVOYW1lICs9IFJlcG9ydFRpdGxlLnJlcGxhY2UoLyAvZywgXCJfXCIpICsgY1RpbWUgKyBcIi5jc3ZcIjtcclxuICAgIHZhciBibG9iID0gbmV3IEJsb2IoW0NTVl0sIHtcclxuICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9jc3Y7Y2hhcnNldD11dGYtODtcIlxyXG4gICAgfSk7XHJcblxyXG4gICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIHZhciBjc3ZVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgbGluay5ocmVmID0gY3N2VXJsO1xyXG4gICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICAvL2xldCB1cmkgPSAnZGF0YTp0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04LCcgKyBlc2NhcGUoQ1NWKTtcclxuICAgIC8vIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAvL2xpbmsuaHJlZiA9IHVyaTtcclxuICAgIC8vIGxpbmsuc3R5bGUgPSBcInZpc2liaWxpdHk6aGlkZGVuXCI7XHJcbiAgICAvLyBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWUgKyBcIi5jc3ZcIjtcclxuICAgIC8vICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgLy8gbGluay5jbGljaygpO1xyXG4gICAgLy8gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICB9XHJcblxyXG4gIENPbXBhcmlzaW9uQ1NWQ29udmVydG9yKEhlYWRlcnMsIEhkckR0bCwgSlNPTkRhdGEsIFJlcG9ydFRpdGxlLCBTaG93TGFiZWwpIHtcclxuICAgIGxldCBhcnJEYXRhID0gdHlwZW9mIEpTT05EYXRhICE9ICdvYmplY3QnID8gSlNPTi5wYXJzZShKU09ORGF0YSkgOiBKU09ORGF0YTtcclxuICAgIGxldCBDU1YgPSAnJztcclxuICAgIGlmIChTaG93TGFiZWwpIHtcclxuICAgICAgbGV0IHJvdyA9IFwiXCI7XHJcbiAgICAgIHJvdyArPSAnU3InICsgJywnO1xyXG4gICAgICByb3cgKz0gJ0VtcGxveWVlJyArICcsJztcclxuICAgICAgcm93ICs9ICdUcmFucyBJZCcgKyAnLCc7XHJcbiAgICAgIHJvdyArPSAnUHJvY2VzcyBOYW1lJyArICcsJztcclxuICAgICAgcm93ICs9ICdTdGF0dXMnICsgJywnO1xyXG4gICAgICByb3cgKz0gJ1BhY2tldCBDb2RlJyArICcsJztcclxuICAgICAgcm93ICs9ICdEYXRlJyArICcsJztcclxuXHJcbiAgICAgIEhlYWRlcnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICByb3cgKz0gSGRyRHRsW2VsZW1lbnRdICsgJywnO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJvdyA9IHJvdy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcm93ID0gXCJcIjtcclxuXHJcbiAgICAgIHJvdyArPSAnXCInICsgYXJyRGF0YVtpXVsnc3InXSArICdcIiwnO1xyXG4gICAgICByb3cgKz0gJ1wiJyArIGFyckRhdGFbaV1bJ2VtcGxveWVlJ10gKyAnXCIsJztcclxuICAgICAgcm93ICs9ICdcIicgKyBhcnJEYXRhW2ldWyd0cmFuc2FjdGlvbl9xY19pZG4nXSArICdcIiwnO1xyXG4gICAgICByb3cgKz0gJ1wiJyArIGFyckRhdGFbaV1bJ3Byb2Nlc3NObWUnXSArICdcIiwnO1xyXG4gICAgICByb3cgKz0gJ1wiJyArIGFyckRhdGFbaV1bJ3N0YXR1cyddICsgJ1wiLCc7XHJcbiAgICAgIHJvdyArPSAnXCInICsgYXJyRGF0YVtpXVsncGt0X2NvZGUnXSArICdcIiwnO1xyXG5cclxuICAgICAgcm93ICs9ICdcIicgKyBhcnJEYXRhW2ldWydpc3N1ZV90cyddICsgJ1xcbicgKyBhcnJEYXRhW2ldWydtb2RpZmllZF90cyddICsgJ1wiLCc7XHJcblxyXG4gICAgICBIZWFkZXJzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgbGV0IGlzc3ZhbCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IHJ0dmFsID0gXCJcIjtcclxuICAgICAgICBpc3N2YWwgPSBhcnJEYXRhW2ldWydpc3N2YWwnXVtlbGVtZW50XSA9PSB1bmRlZmluZWQgPyAnJyA6IGFyckRhdGFbaV1bJ2lzc3ZhbCddW2VsZW1lbnRdO1xyXG4gICAgICAgIHJ0dmFsID0gYXJyRGF0YVtpXVsncnRudmFsJ11bZWxlbWVudF0gPT0gdW5kZWZpbmVkID8gJycgOiBhcnJEYXRhW2ldWydydG52YWwnXVtlbGVtZW50XTtcclxuICAgICAgICByb3cgKz0gJ1wiJyArIGlzc3ZhbCArICdcXG4nICsgcnR2YWwgKyAnXCIsJztcclxuICAgICAgfSk7XHJcbiAgICBcclxuICAgICAgcm93LnNsaWNlKDAsIHJvdy5sZW5ndGggLSAxKTtcclxuXHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuICAgIGlmIChDU1YgPT0gJycpIHtcclxuICAgICAgYWxlcnQoXCJJbnZhbGlkIGRhdGFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZSA9IFwiUmVwb3J0X1wiO1xyXG4gICAgbGV0IGNUaW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxOSk7XHJcbiAgICBmaWxlTmFtZSArPSBSZXBvcnRUaXRsZS5yZXBsYWNlKC8gL2csIFwiX1wiKSArIGNUaW1lICsgXCIuY3N2XCI7XHJcbiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtDU1ZdLCB7XHJcbiAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vY3N2O2NoYXJzZXQ9dXRmLTg7XCJcclxuICAgIH0pO1xyXG5cclxuICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICB2YXIgY3N2VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGxpbmsuaHJlZiA9IGNzdlVybDtcclxuICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG5cclxuICB9XHJcblxyXG4gIC8vVGl0bGUsIGdyb3VwU3VtbWFyeSwgYXR0ckR0bCwgYXR0ckRpc3BsYXlEdGwsIEdycExpc3QsIGZpbmFsR3JwVmFsXHJcbiAgQ1NWQ29udmVydG9yR3JwV2lzZShncm91cFN1bW1hcnksIGF0dHJEdGwsIGF0dHJEaXNwbGF5RHRsLCBHcnBMaXN0LCBmaW5hbEdycFZhbCwgUmVwb3J0VGl0bGUsIFNob3dMYWJlbCkge1xyXG5cclxuICAgIGxldCBPdmFscyA9IE9iamVjdC52YWx1ZXMoYXR0ckRpc3BsYXlEdGwpO1xyXG5cclxuICAgIGxldCBhcnJEYXRhID0gdHlwZW9mIGZpbmFsR3JwVmFsICE9ICdvYmplY3QnID8gSlNPTi5wYXJzZShmaW5hbEdycFZhbCkgOiBmaW5hbEdycFZhbDtcclxuICAgIGNvbnNvbGUubG9nKFwiYXJyRGF0YVwiLCBhcnJEYXRhKTtcclxuXHJcblxyXG4gICAgbGV0IENTViA9ICcnO1xyXG4gICAgaWYgKFNob3dMYWJlbCkge1xyXG4gICAgICBsZXQgcm93ID0gXCJcIjtcclxuICAgICAgZm9yIChsZXQgaW5kZXggaW4gT3ZhbHMpIHtcclxuICAgICAgICByb3cgKz0gT3ZhbHNbaW5kZXhdICsgJywnO1xyXG4gICAgICB9XHJcbiAgICAgIHJvdyA9IHJvdy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIEdycExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgbGV0IGdycCA9ICcnLCBxdHkgPSAnJywgY3RzID0gJycsIHJ0ZSA9ICcnLCBhbXQgPSAnJztcclxuICAgICAgZ3JwID0gXCJHcm91cCA6IFwiICsgZWxlbWVudC5ncnAgPT0gdW5kZWZpbmVkID8gXCJcIiA6IFwiR3JvdXAgOiBcIiArIGVsZW1lbnQuZ3JwO1xyXG4gICAgICBxdHkgPSBncm91cFN1bW1hcnlbZWxlbWVudC5ncnAgKyAnX1FUWSddID09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIlFUWSA6IFwiICsgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19RVFknXTtcclxuICAgICAgY3RzID0gZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19DVFMnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJDYXJhdHMgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQ1RTJ107XHJcbiAgICAgIHJ0ZSA9IGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfUlRFJ10gPT0gdW5kZWZpbmVkID8gXCJcIiA6IFwiUmF0ZSA6IFwiICsgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19SVEUnXTtcclxuICAgICAgYW10ID0gZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19BTVQnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJBbW91bnQgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQU1UJ107XHJcblxyXG5cclxuXHJcbiAgICAgIGxldCByb3cgPSBcIlwiO1xyXG4gICAgICByb3cgPSBncnAgKyBcIiAgXCIgKyBxdHkgKyBcIiAgXCIgKyBjdHMgKyBcIiAgXCIgKyBydGUgKyBcIiAgXCIgKyBhbXQ7XHJcbiAgICAgIC8vcm93ID0gXCJHcm91cCA6IFwiICsgZWxlbWVudC5ncnAgK1xyXG4gICAgICAvLyBncm91cFN1bW1hcnlbZWxlbWVudC5ncnAgKyAnX1FUWSddID09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIlFUWSA6IFwiICsgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19RVFknXSArXHJcbiAgICAgIC8vICAgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19DVFMnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJDYXJhdHMgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQ1RTJ10gK1xyXG4gICAgICAvLyAgICAgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19SVEUnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJSYXRlIDogXCIgKyBncm91cFN1bW1hcnlbZWxlbWVudC5ncnAgKyAnX1JURSddICtcclxuICAgICAgLy8gICAgICAgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19BTVQnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJBbW91bnQgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQU1UJ107XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgICAgZmluYWxHcnBWYWxbZWxlbWVudC5ncnBdLmZvckVhY2gocGt0ZHRsID0+IHtcclxuICAgICAgICBsZXQgciA9IFwiXCI7XHJcbiAgICAgICAgYXR0ckR0bC5mb3JFYWNoKGF0dCA9PiB7XHJcbiAgICAgICAgICByICs9IHBrdGR0bFthdHRdICsgJywnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHIgPSByLnNsaWNlKDAsIC0xKTtcclxuICAgICAgICBDU1YgKz0gciArICdcXHJcXG4nO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChDU1YgPT0gJycpIHtcclxuICAgICAgYWxlcnQoXCJJbnZhbGlkIGRhdGFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coXCJhcnJEYXRhXCIsIGFyckRhdGEpO1xyXG4gICAgbGV0IGZpbGVOYW1lID0gXCJSZXBvcnRfXCI7XHJcbiAgICBmaWxlTmFtZSArPSBSZXBvcnRUaXRsZS5yZXBsYWNlKC8gL2csIFwiX1wiKSArIFwiLmNzdlwiO1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbQ1NWXSwge1xyXG4gICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL2NzdjtjaGFyc2V0PXV0Zi04O1wiXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgdmFyIGNzdlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBsaW5rLmhyZWYgPSBjc3ZVcmw7XHJcbiAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgbGluay5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgbW9kaWZ5RGF0YUJ5SGVhZGVyKHNlYXJjaFJlc3VsdER0bCwgcmVzdWx0VmlldywgcmVzdWx0Vmlld0R0bCkge1xyXG4gICAgbGV0IG9iaiA9IHt9XHJcbiAgICBsZXQgbW9kaWZpZWRPYmpBcnIgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VhcmNoUmVzdWx0RHRsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzdWx0Vmlldy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGxldCB2YWxzID0gc2VhcmNoUmVzdWx0RHRsW2ldW3Jlc3VsdFZpZXdbal1dO1xyXG4gICAgICAgIG9ialtyZXN1bHRWaWV3RHRsW3Jlc3VsdFZpZXdbal1dXSA9IHZhbHM7XHJcbiAgICAgIH1cclxuICAgICAgbW9kaWZpZWRPYmpBcnIucHVzaChvYmopO1xyXG4gICAgICBvYmogPSB7fTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKG1vZGlmaWVkT2JqQXJyKTtcclxuICAgIHJldHVybiBtb2RpZmllZE9iakFycjtcclxuICB9XHJcblxyXG4gIG1vZGlmeUdycERhdGFCeUhlYWRlcihzZWFyY2hSZXN1bHREdGwsIHJlc3VsdFZpZXcsIHJlc3VsdFZpZXdEdGwpIHtcclxuICAgIGxldCBvYmogPSB7fVxyXG4gICAgbGV0IG1vZGlmaWVkT2JqQXJyID0gW107XHJcbiAgICBmb3IgKGxldCBncnBrIGluIHNlYXJjaFJlc3VsdER0bCkge1xyXG4gICAgICBzZWFyY2hSZXN1bHREdGxbZ3Jwa10uZm9yRWFjaChwa3RzID0+IHtcclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHJlc3VsdFZpZXcubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGxldCB2YWxzID0gcGt0c1tyZXN1bHRWaWV3W2pdXTtcclxuICAgICAgICAgIG9ialtyZXN1bHRWaWV3RHRsW3Jlc3VsdFZpZXdbal1dXSA9IHZhbHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1vZGlmaWVkT2JqQXJyLnB1c2gob2JqKTtcclxuICAgICAgICBvYmogPSB7fTtcclxuICAgICAgfSk7XHJcbiAgICAgIG1vZGlmaWVkT2JqQXJyLnB1c2goXCJiclwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtb2RpZmllZE9iakFycjtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoZGF0ZSkge1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZShkYXRlKSxcclxuICAgICAgbW9udGggPSAnJyArIChkLmdldE1vbnRoKCkgKyAxKSxcclxuICAgICAgZGF5ID0gJycgKyBkLmdldERhdGUoKSxcclxuICAgICAgeWVhciA9IGQuZ2V0RnVsbFllYXIoKTtcclxuICAgIGlmIChtb250aC5sZW5ndGggPCAyKSBtb250aCA9ICcwJyArIG1vbnRoO1xyXG4gICAgaWYgKGRheS5sZW5ndGggPCAyKSBkYXkgPSAnMCcgKyBkYXk7XHJcblxyXG4gICAgcmV0dXJuIFtkYXksIG1vbnRoLCB5ZWFyXS5qb2luKCctJyk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREYXRlU0MoZGF0ZSkge1xyXG4gICAgXHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpLFxyXG4gICAgICBtb250aCA9ICcnICsgKGQuZ2V0TW9udGgoKSArIDEpLFxyXG4gICAgICBkYXkgPSAnJyArIGQuZ2V0RGF0ZSgpLFxyXG4gICAgICB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgIGlmIChtb250aC5sZW5ndGggPCAyKSBtb250aCA9ICcwJyArIG1vbnRoO1xyXG4gICAgaWYgKGRheS5sZW5ndGggPCAyKSBkYXkgPSAnMCcgKyBkYXk7XHJcblxyXG4gICAgcmV0dXJuIFt5ZWFyLCBtb250aCwgZGF5XS5qb2luKCctJyk7XHJcbiAgfVxyXG5cclxuICBkZE1NWVlZWShkYXRlKSB7XHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpLFxyXG4gICAgICBtb250aCA9ICcnICsgKGQuZ2V0TW9udGgoKSArIDEpLFxyXG4gICAgICBkYXkgPSAnJyArIGQuZ2V0RGF0ZSgpLFxyXG4gICAgICB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgIGlmIChtb250aC5sZW5ndGggPCAyKSBtb250aCA9ICcwJyArIG1vbnRoO1xyXG4gICAgaWYgKGRheS5sZW5ndGggPCAyKSBkYXkgPSAnMCcgKyBkYXk7XHJcblxyXG4gICAgcmV0dXJuIFtkYXksIG1vbnRoLCB5ZWFyXS5qb2luKCctJyk7XHJcbiAgfVxyXG4gXHJcbiAgRm9ybWF0RGF0ZShkYXRlLGZvcm1hdCl7XHJcbiAgICBsZXQgZCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIGZvcm1hdCk7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcblxyXG4gIGRkTU1ZWVlZbnVtKGRhdGUpIHtcclxuICAgIGxldCBkID0gbmV3IERhdGUoZGF0ZSksXHJcbiAgICAgIG1vbnRoID0gJycgKyAoZC5nZXRNb250aCgpICsgMSksXHJcbiAgICAgIGRheSA9ICcnICsgZC5nZXREYXRlKCksXHJcbiAgICAgIHllYXIgPSBkLmdldEZ1bGxZZWFyKCk7XHJcbmRlYnVnZ2VyXHJcbiAgICBpZiAobW9udGgubGVuZ3RoIDwgMikgbW9udGggPSAnMCcgKyBtb250aDtcclxuICAgIGlmIChkYXkubGVuZ3RoIDwgMikgZGF5ID0gJzAnICsgZGF5O1xyXG5cclxuICAgIHJldHVybiB5ZWFyK21vbnRoK2RheTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGVTQ01vbnRoQmVmb3JlKGRhdGUpIHtcclxuICAgIGlmKGRhdGUhPXVuZGVmaW5lZCAmJiBkYXRlIT1cIlwiKXtcclxuXHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpLFxyXG4gICAgICBtb250aCA9ICcnICsgKGQuZ2V0TW9udGgoKSksXHJcbiAgICAgIGRheSA9ICcnICsgZC5nZXREYXRlKCksXHJcbiAgICAgIHllYXIgPSBkLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBkLnNldERhdGUoZC5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG4gICAgaWYgKG1vbnRoLmxlbmd0aCA8IDIpIG1vbnRoID0gJzAnICsgbW9udGg7XHJcbiAgICBpZiAoZGF5Lmxlbmd0aCA8IDIpIGRheSA9ICcwJyArIGRheTtcclxuXHJcbiAgICByZXR1cm4gW3llYXIsIG1vbnRoLCBkYXldLmpvaW4oJy0nKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgbnVtYmVyRmxvYXQobnVtYmVyKXtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBudW1iZXI9bnVtYmVyfHwwO1xyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtYmVyKTtcclxuXHJcbiAgfVxyXG4gIFxyXG4gZGF0ZVZhbGlkYXRpb24oZGF0ZSxmb3JtYXRlKXtcclxuICAgZGVidWdnZXI7XHJcbiAgdmFyIGRkOyBcclxuICB2YXIgbW07IFxyXG4gIHZhciB5eTsgXHJcbiAgZGF0ZT1kYXRlLnJlcGxhY2UoJy0nLCcvJylcclxuICBkYXRlPWRhdGUucmVwbGFjZSgnLScsJy8nKVxyXG4gIHZhciBwYXJ0cyA9IGRhdGUuc3BsaXQoJy8nKTtcclxuICBcclxuICBpZiAoZm9ybWF0ZSA9PSAnZGQvbW0veXknKSB7XHJcbiAgICBkZCA9IHBhcnRzWzBdO1xyXG4gICAgbW0gPSBwYXJ0c1sxXTtcclxuICAgIHl5ID0gIHBhcnRzWzJdOyAgXHQgIFxyXG4gIH0gZWxzZSBpZihmb3JtYXRlID09ICdtbS9kZC95eScpe1xyXG4gICAgbW0gPSBwYXJ0c1swXTtcclxuICAgIGRkID0gcGFydHNbMV07XHJcbiAgICB5eSA9ICBwYXJ0c1syXTsgIFxyXG4gIH1lbHNlIGlmKGZvcm1hdGUgPT0gJ2RkL01vbi95eScpeyBcclxuICAgIGRkID0gcGFydHNbMF07XHJcbiAgICBtbSA9IHBhcnRzWzFdO1xyXG4gICAgeXkgPSAgcGFydHNbMl07ICBcclxuICAgIGxldCBkID0gbmV3IERhdGUoZGF0ZSlcclxuICAgIG1tID0gIChkLmdldE1vbnRoKCkpKzFcclxuICAgIG1tID1tbS50b1N0cmluZygpO1xyXG4gIH1cclxuICBcclxuICBpZihtbS5sZW5ndGggPCAyKVxyXG4gIG1tID0gJzAnK21tO1xyXG4gIGlmKGRkLmxlbmd0aCA8IDIpXHJcbiAgZGQgPSAnMCcrZGQ7XHJcbiAgaWYoeXkubGVuZ3RoIDwgNClcclxuICB5eSA9ICcyMCcreXk7XHJcblxyXG4gIGxldCBtbWludCA9IHBhcnNlSW50KG1tKTtcclxuXHJcbiAgbGV0IGRkaW50ID0gcGFyc2VJbnQoZGQpO1xyXG4gIGlmKGRkaW50ID4gMzEpXHJcbiAgIHJldHVybiAnaW52YWlsZCdcclxuICBlbHNlIGlmKG1taW50ID4gMTIpXHJcbiAgIHJldHVybiAnaW52YWlsZCdcclxuIGVsc2VcclxuICByZXR1cm4geXkrbW0rZGQ7XHJcbiB9XHJcblxyXG4gIHNwbGl0VG9Ud29EZWNpbWFsKGlucHV0dmFsKSB7XHJcbiAgICBpZiAoaW5wdXR2YWwgJiYgaW5wdXR2YWwgIT0gSW5maW5pdHkpIHtcclxuICAgICAgcmV0dXJuIGlucHV0dmFsLnRvU3RyaW5nKCkudG9TdHJpbmcoKS5tYXRjaCgvXi0/XFxkKyg/OlxcLlxcZHswLDJ9KT8vKVswXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNwbGl0VG9UaHJlZURlY2ltYWwoaW5wdXR2YWwpIHtcclxuICAgIGlmIChpbnB1dHZhbCAmJiBpbnB1dHZhbCAhPSBJbmZpbml0eSkge1xyXG4gICAgICByZXR1cm4gaW5wdXR2YWwudG9TdHJpbmcoKS50b1N0cmluZygpLm1hdGNoKC9eLT9cXGQrKD86XFwuXFxkezAsM30pPy8pWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHJvdW5kdmFsKGlucHV0dmFsKSB7XHJcbiAgICBpZiAoaW5wdXR2YWwpIHtcclxuICAgICAgcmV0dXJuIE1hdGgucm91bmQoaW5wdXR2YWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcm91bmRVcChudW0sIHByZWNpc2lvbikge1xyXG4gICAgcHJlY2lzaW9uID0gTWF0aC5wb3coMTAsIHByZWNpc2lvbilcclxuICAgIHJldHVybiBNYXRoLmNlaWwobnVtICogcHJlY2lzaW9uKSAvIHByZWNpc2lvblxyXG4gIH1cclxuXHJcbiAgZ2V0U2lnbmVkVXJsKHMzZGV0YWlscyxkb2Nfbm1lLGJ1Y2tldCl7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgbGV0IHVybFBhcmFtcyA9IHtcclxuICAgICAgQnVja2V0OiBzM2RldGFpbHNbXCJkb2NidWNrZXRcIl0sXHJcbiAgICAgIEtleTogczNkZXRhaWxzW1wiZG9jZm9sZGVyXCJdK1wiL1wiK2RvY19ubWVcclxuICAgIH07XHJcbiAgICBidWNrZXQuZ2V0U2lnbmVkVXJsKFwiZ2V0T2JqZWN0XCIsIHVybFBhcmFtcywgZnVuY3Rpb24oIGVyciwgdXJsICkge1xyXG4gICAgICByZXR1cm4gdXJsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG51bWJlcnRvZml4ZWQoaW5wdXR2YWwsZGVjaW1hbCkge1xyXG4gICAgaWYgKGlucHV0dmFsKSB7XHJcbiAgICAgICAgaW5wdXR2YWw9aW5wdXR2YWwudG9GaXhlZChkZWNpbWFsKTtcclxuICAgICAgcmV0dXJuIGlucHV0dmFsO1xyXG4gICAgfWVsc2V7XHJcbiAgICByZXR1cm4gaW5wdXR2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgZmxvb3JGaWd1cmUoZmlndXJlLCBkZWNpbWFscykge1xyXG4gICAgbGV0IGE7XHJcbiAgICBpZihmaWd1cmUhPW51bGwgJiYgZmlndXJlIT11bmRlZmluZWQgKXtcclxuICAgIGlmIChkZWNpbWFscyA9PSAtMSlcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihmaWd1cmUpO1xyXG4gICAgaWYgKGRlY2ltYWxzID09IDApXHJcbiAgICAgICAgcmV0dXJuIE1hdGgudHJ1bmMoZmlndXJlKTtcclxuICAgIGlmICghZGVjaW1hbHMpIGRlY2ltYWxzID0gMjtcclxuICAgIGxldCBkID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuXHJcbiAgICB2YXIgc3RyID0gZmlndXJlLnRvU3RyaW5nKCk7IFxyXG4gICAgYT0gcGFyc2VGbG9hdChzdHIpOyBcclxuICAgIGRlY2ltYWxzID0gcGFyc2VJbnQoZGVjaW1hbHMpO1xyXG4gICAgaWYoc3RyLmluZGV4T2YoXCIuXCIpICE9IC0xKXtcclxuICAgICAgICB2YXIgZmN0ciA7XHJcbiBkZWJ1Z2dlclxyXG4gICAgICAgIGlmICgoKGZpZ3VyZS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXSkubGVuZ3RoKSA9PSAyKSB7XHJcbiAgICAgICAgICAgIGZjdHIgPSBmaWd1cmUudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV07XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICAgICAgaWYgKCgoZmlndXJlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdKS5sZW5ndGgpID09IDEpIHtcclxuICAgICAgICAgICAgZmN0ciA9IGZpZ3VyZS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXS5jb25jYXQoXCIwXCIpO1xyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgXHJcbiAgICAgICAgaWYgKCgoZmlndXJlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdKS5sZW5ndGgpID4gMikge1xyXG4gICAgICAgICAgICBmY3RyID0gZmlndXJlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdLnN1YnN0cmluZygwLGRlY2ltYWxzKTtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgIFxyXG4gICAgICAgIGEgPSBNYXRoLnRydW5jKGZpZ3VyZSkgKyBcIi5cIiArIGZjdHI7XHJcbiAgICB9ICBcclxuICAgIFxyXG59ZWxzZXtcclxuICAgIGE9ZmlndXJlO1xyXG59XHJcbiAgICByZXR1cm4gYTtcclxufVxyXG5cclxuICBzY3JvbGxUb0RpdihlbCkge1xyXG4gICAgbGV0IHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbCk7XHJcbiAgICByZXR1cm4geC5zY3JvbGxJbnRvVmlldygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXAoKSA6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcImh0dHA6Ly9pcGluZm8uaW8vanNvbi9cIilcclxuICAgICAgLnBpcGUobWFwKChyZXM6IGFueSkgPT4gcmVzKSlcclxuICB9XHJcblxyXG4gIHBhZ2VCY2sgPSAoKSA9PiB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XHJcblxyXG4gIGdldEJyb3dzZXJJbmZvKCkge1xyXG4gICAgbGV0IG5WZXIgPSBuYXZpZ2F0b3IuYXBwVmVyc2lvbjtcclxuICAgIGxldCBuQWd0ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgIGxldCBicm93c2VyTmFtZSA9IG5hdmlnYXRvci5hcHBOYW1lO1xyXG4gICAgbGV0IGZ1bGxWZXJzaW9uID0gJycgKyBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uKTtcclxuICAgIGxldCBtYWpvclZlcnNpb24gPSBwYXJzZUludChuYXZpZ2F0b3IuYXBwVmVyc2lvbiwgMTApO1xyXG4gICAgbGV0IG5hbWVPZmZzZXQsIHZlck9mZnNldCwgaXg7XHJcblxyXG4gICAgLy8gSW4gT3BlcmEgMTUrLCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyIFwiT1BSL1wiIFxyXG4gICAgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJPUFIvXCIpKSAhPSAtMSkge1xyXG4gICAgICBicm93c2VyTmFtZSA9IFwiT3BlcmFcIjtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyA0KTtcclxuICAgIH1cclxuICAgIC8vIEluIG9sZGVyIE9wZXJhLCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyIFwiT3BlcmFcIiBvciBhZnRlciBcIlZlcnNpb25cIlxyXG4gICAgZWxzZSBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIk9wZXJhXCIpKSAhPSAtMSkge1xyXG4gICAgICBicm93c2VyTmFtZSA9IFwiT3BlcmFcIjtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyA2KTtcclxuICAgICAgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJWZXJzaW9uXCIpKSAhPSAtMSlcclxuICAgICAgICBmdWxsVmVyc2lvbiA9IG5BZ3Quc3Vic3RyaW5nKHZlck9mZnNldCArIDgpO1xyXG4gICAgfVxyXG4gICAgLy8gSW4gTVNJRSwgdGhlIHRydWUgdmVyc2lvbiBpcyBhZnRlciBcIk1TSUVcIiBpbiB1c2VyQWdlbnRcclxuICAgIGVsc2UgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJNU0lFXCIpKSAhPSAtMSkge1xyXG4gICAgICBicm93c2VyTmFtZSA9IFwiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyXCI7XHJcbiAgICAgIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0ICsgNSk7XHJcbiAgICB9XHJcbiAgICAvLyBJbiBDaHJvbWUsIHRoZSB0cnVlIHZlcnNpb24gaXMgYWZ0ZXIgXCJDaHJvbWVcIiBcclxuICAgIGVsc2UgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJDaHJvbWVcIikpICE9IC0xKSB7XHJcbiAgICAgIGJyb3dzZXJOYW1lID0gXCJDaHJvbWVcIjtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyA3KTtcclxuICAgIH1cclxuICAgIC8vIEluIFNhZmFyaSwgdGhlIHRydWUgdmVyc2lvbiBpcyBhZnRlciBcIlNhZmFyaVwiIG9yIGFmdGVyIFwiVmVyc2lvblwiIFxyXG4gICAgZWxzZSBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIlNhZmFyaVwiKSkgIT0gLTEpIHtcclxuICAgICAgYnJvd3Nlck5hbWUgPSBcIlNhZmFyaVwiO1xyXG4gICAgICBmdWxsVmVyc2lvbiA9IG5BZ3Quc3Vic3RyaW5nKHZlck9mZnNldCArIDcpO1xyXG4gICAgICBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIlZlcnNpb25cIikpICE9IC0xKVxyXG4gICAgICAgIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0ICsgOCk7XHJcbiAgICB9XHJcbiAgICAvLyBJbiBGaXJlZm94LCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyIFwiRmlyZWZveFwiIFxyXG4gICAgZWxzZSBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIkZpcmVmb3hcIikpICE9IC0xKSB7XHJcbiAgICAgIGJyb3dzZXJOYW1lID0gXCJGaXJlZm94XCI7XHJcbiAgICAgIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0ICsgOCk7XHJcbiAgICB9XHJcbiAgICAvLyBJbiBtb3N0IG90aGVyIGJyb3dzZXJzLCBcIm5hbWUvdmVyc2lvblwiIGlzIGF0IHRoZSBlbmQgb2YgdXNlckFnZW50IFxyXG4gICAgZWxzZSBpZiAoKG5hbWVPZmZzZXQgPSBuQWd0Lmxhc3RJbmRleE9mKCcgJykgKyAxKSA8XHJcbiAgICAgICh2ZXJPZmZzZXQgPSBuQWd0Lmxhc3RJbmRleE9mKCcvJykpKSB7XHJcbiAgICAgIGJyb3dzZXJOYW1lID0gbkFndC5zdWJzdHJpbmcobmFtZU9mZnNldCwgdmVyT2Zmc2V0KTtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyAxKTtcclxuICAgICAgaWYgKGJyb3dzZXJOYW1lLnRvTG93ZXJDYXNlKCkgPT0gYnJvd3Nlck5hbWUudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgIGJyb3dzZXJOYW1lID0gbmF2aWdhdG9yLmFwcE5hbWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHRyaW0gdGhlIGZ1bGxWZXJzaW9uIHN0cmluZyBhdCBzZW1pY29sb24vc3BhY2UgaWYgcHJlc2VudFxyXG4gICAgaWYgKChpeCA9IGZ1bGxWZXJzaW9uLmluZGV4T2YoXCI7XCIpKSAhPSAtMSlcclxuICAgICAgZnVsbFZlcnNpb24gPSBmdWxsVmVyc2lvbi5zdWJzdHJpbmcoMCwgaXgpO1xyXG4gICAgaWYgKChpeCA9IGZ1bGxWZXJzaW9uLmluZGV4T2YoXCIgXCIpKSAhPSAtMSlcclxuICAgICAgZnVsbFZlcnNpb24gPSBmdWxsVmVyc2lvbi5zdWJzdHJpbmcoMCwgaXgpO1xyXG5cclxuICAgIG1ham9yVmVyc2lvbiA9IHBhcnNlSW50KCcnICsgZnVsbFZlcnNpb24sIDEwKTtcclxuICAgIGlmIChpc05hTihtYWpvclZlcnNpb24pKSB7XHJcbiAgICAgIGZ1bGxWZXJzaW9uID0gJycgKyBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uKTtcclxuICAgICAgbWFqb3JWZXJzaW9uID0gcGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24sIDEwKTtcclxuICAgIH1cclxuICAgIGxldCBPYmogPSB7XHJcbiAgICAgICdicm93c2VyTmFtZSc6IGJyb3dzZXJOYW1lLFxyXG4gICAgICAndmVyc2lvbic6IGZ1bGxWZXJzaW9uLFxyXG4gICAgICAnbWFqb3JWZXJzaW9uJzogbWFqb3JWZXJzaW9uLFxyXG4gICAgICAnYXBwTmFtZSc6IG5hdmlnYXRvci5hcHBOYW1lLFxyXG4gICAgICAndXNlckFnZW50JzogbmF2aWdhdG9yLnVzZXJBZ2VudFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIE9iajtcclxuICB9XHJcblxyXG4gIGVkaXRvckNvbmZpZyA9IHtcclxuICAgIFwiZWRpdGFibGVcIjogdHJ1ZSxcclxuICAgIFwic3BlbGxjaGVja1wiOiB0cnVlLFxyXG4gICAgXCJoZWlnaHRcIjogXCIxMTBweFwiLFxyXG4gICAgXCJtaW5IZWlnaHRcIjogXCIxMTBweFwiLFxyXG4gICAgXCJ3aWR0aFwiOiBcImF1dG9cIixcclxuICAgIFwibWluV2lkdGhcIjogXCIwXCIsXHJcbiAgICBcInRyYW5zbGF0ZVwiOiBcInllc1wiLFxyXG4gICAgXCJlbmFibGVUb29sYmFyXCI6IHRydWUsXHJcbiAgICBcInNob3dUb29sYmFyXCI6IHRydWUsXHJcbiAgICBcInBsYWNlaG9sZGVyXCI6IFwiRW50ZXIgdGV4dCBoZXJlLi4uXCIsXHJcbiAgICBcImltYWdlRW5kUG9pbnRcIjogXCJcIixcclxuICAgIFwidG9vbGJhclwiOiBbXHJcbiAgICAgIFtcImJvbGRcIiwgXCJpdGFsaWNcIiwgXCJ1bmRlcmxpbmVcIiwgXCJzdHJpa2VUaHJvdWdoXCIsIFwic3VwZXJzY3JpcHRcIiwgXCJzdWJzY3JpcHRcIl0sXHJcbiAgICAgIFtcImZvbnROYW1lXCIsIFwiZm9udFNpemVcIiwgXCJjb2xvclwiXSxcclxuICAgICAgW1wianVzdGlmeUxlZnRcIiwgXCJqdXN0aWZ5Q2VudGVyXCIsIFwianVzdGlmeVJpZ2h0XCIsIFwianVzdGlmeUZ1bGxcIiwgXCJpbmRlbnRcIiwgXCJvdXRkZW50XCJdLFxyXG4gICAgICBbXCJjdXRcIiwgXCJjb3B5XCIsIFwiZGVsZXRlXCIsIFwicmVtb3ZlRm9ybWF0XCIsIFwidW5kb1wiLCBcInJlZG9cIl0sXHJcbiAgICAgIFtcInBhcmFncmFwaFwiLCBcImJsb2NrcXVvdGVcIiwgXCJyZW1vdmVCbG9ja3F1b3RlXCIsIFwiaG9yaXpvbnRhbExpbmVcIiwgXCJvcmRlcmVkTGlzdFwiLCBcInVub3JkZXJlZExpc3RcIl0sXHJcbiAgICAgIFtcImxpbmtcIiwgXCJ1bmxpbmtcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCJdXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBmb3JtYXRlU3RyKHN0cikge1xyXG4gICAgc3RyID0gc3RyLnRyaW0oKTtcclxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9bICxdKy9nLCBcIixcIik7XHJcbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvXFxuL2csIFwiLFwiKTtcclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuICBzdGFydFJGSURTY2FuKGRldmljZUlkLCBmb3JtTm1lKSB7XHJcbiAgICBsZXQgbWRsayA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21kbEtleScpKTtcclxuICAgIGxldCBjVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IG1kbGtbY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ21ldGhvZCc6ICdzdGFydEJhckNvZGVSZWFkaW5nJyxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9IGZvcm1ObWU7XHJcbiAgICByZXFPYmpbJ2RldmljZUlkJ10gPSBkZXZpY2VJZDtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfTtcclxuXHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgdGhpcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9iYXJDb2RlUmVhZGVyJykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIC8vIHRoaXMuRmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdygnU2NhbiBTdGFydGVkLi4uJywgeyBjc3NDbGFzczogJ2FsZXJ0LXN1Y2Nlc3MnLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZS5zY2FuX2lkbjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBTdG9wUkZJRFNjYW4oc2Nhbl9pZG4sIGZvcm1ObWUpIHtcclxuICAgIGxldCBtZGxrID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWRsS2V5JykpO1xyXG4gICAgbGV0IGNVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnbW9kdWxla2V5JzogbWRsa1tjVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAnbWV0aG9kJzogJ3N0b3BCYXJDb2RlUmVhZGluZycsXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqWydmb3JtTm1lJ10gPSBmb3JtTm1lO1xyXG4gICAgcmVxT2JqWydzY2FuSWQnXSA9IHNjYW5faWRuO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIGxldCBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9O1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIHRoaXMubG9hZChyZXFPYmosIG9wdGlvbnMsICdtYXJrZXRpbmcvYmFyQ29kZVJlYWRlcicpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAvLyB0aGlzLkZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coJ1NjYW4gU3RvcHBlZC4uLicsIHsgY3NzQ2xhc3M6ICdhbGVydC1zdWNjZXNzJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2Uuc2Nhbl9pZG47XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbi8veyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9XHJcbiAgbG9hZChyZXFPYmosIGhlYWRlcnMsIHVybCkge1xyXG4gICAgY29uc29sZS5sb2coaGVhZGVycyk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArIHVybCwgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwgeyBoZWFkZXJzOiBoZWFkZXJzIH0pXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArIHVybCwgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwgIHsgaGVhZGVyczogaGVhZGVycyB9KVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSkuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLkZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRpRmlsZShyZXFPYmosIGhlYWRlciwgdXJsKSB7XHJcbiAgICAvLyBsZXQgb3B0aW9uczogYW55ID0gbmV3IFJlcXVlc3RPcHRpb25zKHsgaGVhZGVyczogaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnM6IGFueSA9IG5ldyBIdHRwSGVhZGVycyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdsYkVudi5iYXNlVXJsICsgdXJsLCBKU09OLnN0cmluZ2lmeShyZXFPYmopLCBvcHRpb25zKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSkuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLkZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIFxyXG4gICBudW1iZXJXaXRoQ29tbWFzKHgpIHtcclxuICAgIHZhciBwYXJ0cyA9IHgudG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XHJcbiAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTtcclxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgfVxyXG5cclxuICAgIC8vIG5ldyBmdW5jdGlvbiBmb3IgaW5kaWFuIGFuZCBlbmdsaXNoIGZvcm1hdCBjb21tYXNcclxuICBudW1iZXJXaXRoQ29tbWFzRm9ybWF0KG51bSkge1xyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb21tYUZvcm1hdCcpID09ICdlbmcnKSB7XHJcbiAgICAgIHZhciBwYXJ0cyA9IG51bS50b1N0cmluZygpLnNwbGl0KFwiLlwiKTtcclxuICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIik7XHJcbiAgICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgcGFydHMgPSBudW0udG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XHJcbiAgICAgIGxldCB4ID0gcGFydHNbMF07XHJcbiAgICAgIHggPSB4LnJlcGxhY2VBbGwoJywnLCAnJyk7IC8vcmVtb3ZpbmcgcHJlIGV4aXN0aW5nIGNvbW1hcyBpZiBhbnlcclxuICAgICAgdmFyIGxhc3RUaHJlZSA9IHguc3Vic3RyaW5nKHgubGVuZ3RoLTMpO1xyXG4gICAgICB2YXIgb3RoZXJOdW1iZXJzID0geC5zdWJzdHJpbmcoMCx4Lmxlbmd0aC0zKTtcclxuICAgICAgaWYob3RoZXJOdW1iZXJzICE9ICcnKVxyXG4gICAgICAgICAgbGFzdFRocmVlID0gJywnICsgbGFzdFRocmVlO1xyXG4gICAgICB2YXIgcmVzID0gb3RoZXJOdW1iZXJzLnJlcGxhY2UoL1xcQig/PShcXGR7Mn0pKyg/IVxcZCkpL2csIFwiLFwiKSArIGxhc3RUaHJlZTtcclxuICAgICAgcGFydHNbMF0gPSByZXM7XHJcbiAgICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgIH1cclxufVxyXG5cclxuICBpbldvcmRzSU5SKG51bSkge1xyXG4gICAgaWYgKChudW0gPSBudW0udG9TdHJpbmcoKSkubGVuZ3RoID4gOSkgcmV0dXJuICdvdmVyZmxvdyc7XHJcbiAgICBsZXQgbiA9IFtdO1xyXG4gICAgbiA9ICgnMDAwMDAwMDAwJyArIG51bSkuc3Vic3RyKC05KS5tYXRjaCgvXihcXGR7Mn0pKFxcZHsyfSkoXFxkezJ9KShcXGR7MX0pKFxcZHsyfSkkLyk7XHJcbiAgICBpZiAoIW4pIHJldHVybjsgdmFyIHN0ciA9ICcnO1xyXG4gICAgc3RyICs9IChuWzFdICE9IDApID8gKHRoaXMuYVtOdW1iZXIoblsxXSldIHx8IHRoaXMuYltuWzFdWzBdXSArICcgJyArIHRoaXMuYVtuWzFdWzFdXSkgKyAnY3JvcmUgJyA6ICcnO1xyXG4gICAgc3RyICs9IChuWzJdICE9IDApID8gKHRoaXMuYVtOdW1iZXIoblsyXSldIHx8IHRoaXMuYltuWzJdWzBdXSArICcgJyArIHRoaXMuYVtuWzJdWzFdXSkgKyAnbGFraCAnIDogJyc7XHJcbiAgICBzdHIgKz0gKG5bM10gIT0gMCkgPyAodGhpcy5hW051bWJlcihuWzNdKV0gfHwgdGhpcy5iW25bM11bMF1dICsgJyAnICsgdGhpcy5hW25bM11bMV1dKSArICd0aG91c2FuZCAnIDogJyc7XHJcbiAgICBzdHIgKz0gKG5bNF0gIT0gMCkgPyAodGhpcy5hW051bWJlcihuWzRdKV0gfHwgdGhpcy5iW25bNF1bMF1dICsgJyAnICsgdGhpcy5hW25bNF1bMV1dKSArICdodW5kcmVkICcgOiAnJztcclxuICAgIHN0ciArPSAobls1XSAhPSAwKSA/ICgoc3RyICE9ICcnKSA/ICdhbmQgJyA6ICcnKSArICh0aGlzLmFbTnVtYmVyKG5bNV0pXSB8fCB0aGlzLmJbbls1XVswXV0gKyAnICcgKyB0aGlzLmFbbls1XVsxXV0pICsgJ29ubHkgJyA6ICcnO1xyXG4gICAgY29uc29sZS5sb2coc3RyKTtcclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmFuZG9tbnVtYmVyKCkge1xyXG4gICAgbGV0IG51bSA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAxMDAwMCkgKyAxMDApO1xyXG4gICAgcmV0dXJuIG51bTtcclxuICB9XHJcblxyXG4gIHRhZ2JveFNldHRpbmdzOiB7XHJcbiAgICBlbmFibGVGaWx0ZXJTZWxlY3RBbGw6IGZhbHNlLFxyXG4gICAgc2luZ2xlU2VsZWN0aW9uOiBmYWxzZSxcclxuICAgIHRleHQ6IFwiU2VsZWN0IHN0YXR1c1wiLFxyXG4gICAgc2VsZWN0QWxsVGV4dDogJ1NlbGVjdCBBbGwnLFxyXG4gICAgdW5TZWxlY3RBbGxUZXh0OiAnVW5TZWxlY3QgQWxsJyxcclxuICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogdHJ1ZSxcclxuICAgIGNsYXNzZXM6IFwibXljbGFzcyBjdXN0b20tY2xhc3NcIlxyXG4gIH1cclxuXHJcbiAgIHJlbW92ZUVtcHR5KG9iaikge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcclxuICAgICAgLmZpbHRlcihmdW5jdGlvbiAoaykge1xyXG4gICAgICAgIHJldHVybiBvYmpba118fCcnICE9ICcnO1xyXG4gICAgICB9KVxyXG4gICAgICAucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGspIHtcclxuICAgICAgICBhY2Nba10gPSBvYmpba107XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfSwge30pO1xyXG4gIH1cclxuXHJcbiAgY29uZmlnID0ge1xyXG4gICAgZWRpdGFibGU6IHRydWUsXHJcbiAgICBzcGVsbGNoZWNrOiB0cnVlLFxyXG4gICAgaGVpZ2h0OiAnMTVyZW0nLFxyXG4gICAgbWluSGVpZ2h0OiAnNXJlbScsXHJcbiAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHRleHQgaGVyZS4uLicsXHJcbiAgICB0cmFuc2xhdGU6ICdubycsXHJcbiAgICBkZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yOiAncCcsXHJcbiAgICBkZWZhdWx0Rm9udE5hbWU6ICdBcmlhbCcsXHJcbiAgICBjdXN0b21DbGFzc2VzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInF1b3RlXCIsXHJcbiAgICAgICAgY2xhc3M6IFwicXVvdGVcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdyZWRUZXh0JyxcclxuICAgICAgICBjbGFzczogJ3JlZFRleHQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIGNsYXNzOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIHRhZzogXCJoMVwiLFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcblxyXG59Il19
678
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuLXNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6LWxpYi9zcmMvbGliL2NvbW1hbi1zZXJ2aWNlL2NvbW1hbi1zZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakQsa0VBQWtFO0FBQ2xFLGtFQUFrRTtBQUNsRSxrREFBa0Q7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU3JDLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFDUyxNQUFjLEVBQ2IsSUFBZ0IsRUFDakIsTUFBd0I7SUFDL0Isc0RBQXNEO0lBQ3RELG9EQUFvRDtJQUM1QyxRQUFpQjtRQUxsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUd2QixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBWGxCLFVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTVCLE1BQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsTixNQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFF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QUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3JELEdBQUcsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDNUUsR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDM0csR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDOUcsR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDNUcsR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFJOUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2IsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxD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QUFDO0lBRUQsWUFBWSxDQUFDLElBQUk7UUFFZixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDcEIsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDL0IsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQ3RCLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUMxQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRXBDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQUk7UUFDWCxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDcEIsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDL0IsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQ3RCLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUMxQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRXBDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lB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LENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwSSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQVlBLFdBQVcsQ0FBQyxHQUFHO1FBQ2QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNwQixNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2pCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7O2tIQTd0QlUsb0JBQW9CO3NIQUFwQixvQkFBb0IsY0FIbkIsTUFBTTs0RkFHUCxvQkFBb0I7a0JBSmhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSxDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgR2xvYmxlRW52U2VydmljZSB9IGZyb20gJy4uL2dsb2JsZS9nbG9ibGUtZW52LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb29raWUgfSBmcm9tICduZzItY29va2llcy9uZzItY29va2llcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbi8vIGltcG9ydCB7IE5nNExvYWRpbmdTcGlubmVyU2VydmljZSB9IGZyb20gJ25nNC1sb2FkaW5nLXNwaW5uZXInO1xyXG4vLyBpbXBvcnQgeyBGbGFzaE1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ2FuZ3VsYXIyLWZsYXNoLW1lc3NhZ2VzJztcclxuLy8gaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVhZE9iamVjdE91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XHJcblxyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb21tYW5TZXJ2aWNlU2VydmljZSB7XHJcblxyXG4gIHJlYWRvbmx5IGNEYXRlID0gbmV3IERhdGUoKTtcclxuICBoZWFkZXI7XHJcbiAgYSA9IFsnJywgJ29uZSAnLCAndHdvICcsICd0aHJlZSAnLCAnZm91ciAnLCAnZml2ZSAnLCAnc2l4ICcsICdzZXZlbiAnLCAnZWlnaHQgJywgJ25pbmUgJywgJ3RlbiAnLCAnZWxldmVuICcsICd0d2VsdmUgJywgJ3RoaXJ0ZWVuICcsICdmb3VydGVlbiAnLCAnZmlmdGVlbiAnLCAnc2l4dGVlbiAnLCAnc2V2ZW50ZWVuICcsICdlaWdodGVlbiAnLCAnbmluZXRlZW4gJ107XHJcbiAgYiA9IFsnJywgJycsICd0d2VudHknLCAndGhpcnR5JywgJ2ZvcnR5JywgJ2ZpZnR5JywgJ3NpeHR5JywgJ3NldmVudHknLCAnZWlnaHR5JywgJ25pbmV0eSddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBnbGJFbnY6IEdsb2JsZUVudlNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIEZsYXNoTWVzc2FnZXNTZXJ2aWNlOiBGbGFzaE1lc3NhZ2VzU2VydmljZSxcclxuICAgIC8vIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5nNExvYWRpbmdTcGlubmVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6RGF0ZVBpcGVcclxuICApIHsgfVxyXG5cclxuICBsb2FkTGlzdChyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdsYkVudi5iYXNlVXJsICsgJ2Rhc2hib3JkL21vZHVsZScsIEpTT04uc3RyaW5naWZ5KHJlcU9iaiksIHtoZWFkZXJzOmhlYWRlcnN9KVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBtZW51TGlzdChyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIEpTT04uc3RyaW5naWZ5KHJlcU9iaik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArICdsb2dpbi9sb2FkTWVudScsIEpTT04uc3RyaW5naWZ5KHJlcU9iaiksIGhlYWRlcnMpXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIGxvYWRtZW51TGlzdChyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIEpTT04uc3RyaW5naWZ5KHJlcU9iaik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArICdsb2dpbi9nZXRNZW51JywgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwge2hlYWRlcnM6aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIGxvZ291dChyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdsYkVudi5iYXNlVXJsICsgJ2xvZ2luL2F1dGhlbnRpY2F0aW9uJywgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwge2hlYWRlcnM6aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIGF1dGhMb2dvdXQocmVxT2JqLCBoZWFkZXJzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArICdsb2dpbi9hdXRoTG9nb3V0JywgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwge2hlYWRlcnM6aGVhZGVyc30pXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGFzeW5jIGdldFZubXNlcShyZXFPYmosIGhlYWRlcnMpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiaGVhZGVyc1wiLGhlYWRlcnMpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2xiRW52LmJhc2VVcmwgKyAnYWNjb3VudHMvbWFzdGVyZGF0YScsIEpTT04uc3RyaW5naWZ5KHJlcU9iaiksIHtoZWFkZXJzOmhlYWRlcnN9KVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBDU1ZDb252ZXJ0b3IoSlNPTkRhdGEsIFJlcG9ydFRpdGxlLCBTaG93TGFiZWwpIHtcclxuICAgIGxldCBhcnJEYXRhID0gdHlwZW9mIEpTT05EYXRhICE9ICdvYmplY3QnID8gSlNPTi5wYXJzZShKU09ORGF0YSkgOiBKU09ORGF0YTtcclxuICAgIGNvbnNvbGUubG9nKFwiYXJyRGF0YVwiLCBhcnJEYXRhKTtcclxuXHJcbiAgICBsZXQgQ1NWID0gJyc7XHJcbiAgICBpZiAoU2hvd0xhYmVsKSB7XHJcbiAgICAgIGxldCByb3cgPSBcIlwiO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCBpbiBhcnJEYXRhWzBdKSB7XHJcbiAgICAgICAgcm93ICs9IGluZGV4ICsgJywnO1xyXG4gICAgICB9XHJcbiAgICAgIHJvdyA9IHJvdy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcm93ID0gXCJcIjtcclxuICAgICAgaWYgKGFyckRhdGFbaV0gIT0gJ2JyJykge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4IGluIGFyckRhdGFbaV0pIHtcclxuICAgICAgICAgIHJvdyArPSAnXCInICsgYXJyRGF0YVtpXVtpbmRleF0gKyAnXCIsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcm93LnNsaWNlKDAsIHJvdy5sZW5ndGggLSAxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQ1NWICs9IHJvdyArICdcXHJcXG4nO1xyXG4gICAgfVxyXG4gICAgaWYgKENTViA9PSAnJykge1xyXG4gICAgICBhbGVydChcIkludmFsaWQgZGF0YVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2coXCJhcnJEYXRhXCIsIGFyckRhdGEpO1xyXG4gICAgbGV0IGZpbGVOYW1lID0gXCJSZXBvcnRfXCI7XHJcbiAgICBsZXQgY1RpbWUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDE5KTtcclxuICAgIGZpbGVOYW1lICs9IFJlcG9ydFRpdGxlLnJlcGxhY2UoLyAvZywgXCJfXCIpICsgY1RpbWUgKyBcIi5jc3ZcIjtcclxuICAgIHZhciBibG9iID0gbmV3IEJsb2IoW0NTVl0sIHtcclxuICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9jc3Y7Y2hhcnNldD11dGYtODtcIlxyXG4gICAgfSk7XHJcblxyXG4gICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIHZhciBjc3ZVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgbGluay5ocmVmID0gY3N2VXJsO1xyXG4gICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICAvL2xldCB1cmkgPSAnZGF0YTp0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04LCcgKyBlc2NhcGUoQ1NWKTtcclxuICAgIC8vIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAvL2xpbmsuaHJlZiA9IHVyaTtcclxuICAgIC8vIGxpbmsuc3R5bGUgPSBcInZpc2liaWxpdHk6aGlkZGVuXCI7XHJcbiAgICAvLyBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWUgKyBcIi5jc3ZcIjtcclxuICAgIC8vICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgLy8gbGluay5jbGljaygpO1xyXG4gICAgLy8gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICB9XHJcblxyXG4gIENPbXBhcmlzaW9uQ1NWQ29udmVydG9yKEhlYWRlcnMsIEhkckR0bCwgSlNPTkRhdGEsIFJlcG9ydFRpdGxlLCBTaG93TGFiZWwpIHtcclxuICAgIGxldCBhcnJEYXRhID0gdHlwZW9mIEpTT05EYXRhICE9ICdvYmplY3QnID8gSlNPTi5wYXJzZShKU09ORGF0YSkgOiBKU09ORGF0YTtcclxuICAgIGxldCBDU1YgPSAnJztcclxuICAgIGlmIChTaG93TGFiZWwpIHtcclxuICAgICAgbGV0IHJvdyA9IFwiXCI7XHJcbiAgICAgIHJvdyArPSAnU3InICsgJywnO1xyXG4gICAgICByb3cgKz0gJ0VtcGxveWVlJyArICcsJztcclxuICAgICAgcm93ICs9ICdUcmFucyBJZCcgKyAnLCc7XHJcbiAgICAgIHJvdyArPSAnUHJvY2VzcyBOYW1lJyArICcsJztcclxuICAgICAgcm93ICs9ICdTdGF0dXMnICsgJywnO1xyXG4gICAgICByb3cgKz0gJ1BhY2tldCBDb2RlJyArICcsJztcclxuICAgICAgcm93ICs9ICdEYXRlJyArICcsJztcclxuXHJcbiAgICAgIEhlYWRlcnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICByb3cgKz0gSGRyRHRsW2VsZW1lbnRdICsgJywnO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJvdyA9IHJvdy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcm93ID0gXCJcIjtcclxuXHJcbiAgICAgIHJvdyArPSAnXCInICsgYXJyRGF0YVtpXVsnc3InXSArICdcIiwnO1xyXG4gICAgICByb3cgKz0gJ1wiJyArIGFyckRhdGFbaV1bJ2VtcGxveWVlJ10gKyAnXCIsJztcclxuICAgICAgcm93ICs9ICdcIicgKyBhcnJEYXRhW2ldWyd0cmFuc2FjdGlvbl9xY19pZG4nXSArICdcIiwnO1xyXG4gICAgICByb3cgKz0gJ1wiJyArIGFyckRhdGFbaV1bJ3Byb2Nlc3NObWUnXSArICdcIiwnO1xyXG4gICAgICByb3cgKz0gJ1wiJyArIGFyckRhdGFbaV1bJ3N0YXR1cyddICsgJ1wiLCc7XHJcbiAgICAgIHJvdyArPSAnXCInICsgYXJyRGF0YVtpXVsncGt0X2NvZGUnXSArICdcIiwnO1xyXG5cclxuICAgICAgcm93ICs9ICdcIicgKyBhcnJEYXRhW2ldWydpc3N1ZV90cyddICsgJ1xcbicgKyBhcnJEYXRhW2ldWydtb2RpZmllZF90cyddICsgJ1wiLCc7XHJcblxyXG4gICAgICBIZWFkZXJzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgbGV0IGlzc3ZhbCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IHJ0dmFsID0gXCJcIjtcclxuICAgICAgICBpc3N2YWwgPSBhcnJEYXRhW2ldWydpc3N2YWwnXVtlbGVtZW50XSA9PSB1bmRlZmluZWQgPyAnJyA6IGFyckRhdGFbaV1bJ2lzc3ZhbCddW2VsZW1lbnRdO1xyXG4gICAgICAgIHJ0dmFsID0gYXJyRGF0YVtpXVsncnRudmFsJ11bZWxlbWVudF0gPT0gdW5kZWZpbmVkID8gJycgOiBhcnJEYXRhW2ldWydydG52YWwnXVtlbGVtZW50XTtcclxuICAgICAgICByb3cgKz0gJ1wiJyArIGlzc3ZhbCArICdcXG4nICsgcnR2YWwgKyAnXCIsJztcclxuICAgICAgfSk7XHJcbiAgICBcclxuICAgICAgcm93LnNsaWNlKDAsIHJvdy5sZW5ndGggLSAxKTtcclxuXHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuICAgIGlmIChDU1YgPT0gJycpIHtcclxuICAgICAgYWxlcnQoXCJJbnZhbGlkIGRhdGFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZSA9IFwiUmVwb3J0X1wiO1xyXG4gICAgbGV0IGNUaW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxOSk7XHJcbiAgICBmaWxlTmFtZSArPSBSZXBvcnRUaXRsZS5yZXBsYWNlKC8gL2csIFwiX1wiKSArIGNUaW1lICsgXCIuY3N2XCI7XHJcbiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtDU1ZdLCB7XHJcbiAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vY3N2O2NoYXJzZXQ9dXRmLTg7XCJcclxuICAgIH0pO1xyXG5cclxuICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICB2YXIgY3N2VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGxpbmsuaHJlZiA9IGNzdlVybDtcclxuICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG5cclxuICB9XHJcblxyXG4gIC8vVGl0bGUsIGdyb3VwU3VtbWFyeSwgYXR0ckR0bCwgYXR0ckRpc3BsYXlEdGwsIEdycExpc3QsIGZpbmFsR3JwVmFsXHJcbiAgQ1NWQ29udmVydG9yR3JwV2lzZShncm91cFN1bW1hcnksIGF0dHJEdGwsIGF0dHJEaXNwbGF5RHRsLCBHcnBMaXN0LCBmaW5hbEdycFZhbCwgUmVwb3J0VGl0bGUsIFNob3dMYWJlbCkge1xyXG5cclxuICAgIGxldCBPdmFscyA9IE9iamVjdC52YWx1ZXMoYXR0ckRpc3BsYXlEdGwpO1xyXG5cclxuICAgIGxldCBhcnJEYXRhID0gdHlwZW9mIGZpbmFsR3JwVmFsICE9ICdvYmplY3QnID8gSlNPTi5wYXJzZShmaW5hbEdycFZhbCkgOiBmaW5hbEdycFZhbDtcclxuICAgIGNvbnNvbGUubG9nKFwiYXJyRGF0YVwiLCBhcnJEYXRhKTtcclxuXHJcblxyXG4gICAgbGV0IENTViA9ICcnO1xyXG4gICAgaWYgKFNob3dMYWJlbCkge1xyXG4gICAgICBsZXQgcm93ID0gXCJcIjtcclxuICAgICAgZm9yIChsZXQgaW5kZXggaW4gT3ZhbHMpIHtcclxuICAgICAgICByb3cgKz0gT3ZhbHNbaW5kZXhdICsgJywnO1xyXG4gICAgICB9XHJcbiAgICAgIHJvdyA9IHJvdy5zbGljZSgwLCAtMSk7XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIEdycExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgbGV0IGdycCA9ICcnLCBxdHkgPSAnJywgY3RzID0gJycsIHJ0ZSA9ICcnLCBhbXQgPSAnJztcclxuICAgICAgZ3JwID0gXCJHcm91cCA6IFwiICsgZWxlbWVudC5ncnAgPT0gdW5kZWZpbmVkID8gXCJcIiA6IFwiR3JvdXAgOiBcIiArIGVsZW1lbnQuZ3JwO1xyXG4gICAgICBxdHkgPSBncm91cFN1bW1hcnlbZWxlbWVudC5ncnAgKyAnX1FUWSddID09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIlFUWSA6IFwiICsgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19RVFknXTtcclxuICAgICAgY3RzID0gZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19DVFMnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJDYXJhdHMgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQ1RTJ107XHJcbiAgICAgIHJ0ZSA9IGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfUlRFJ10gPT0gdW5kZWZpbmVkID8gXCJcIiA6IFwiUmF0ZSA6IFwiICsgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19SVEUnXTtcclxuICAgICAgYW10ID0gZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19BTVQnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJBbW91bnQgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQU1UJ107XHJcblxyXG5cclxuXHJcbiAgICAgIGxldCByb3cgPSBcIlwiO1xyXG4gICAgICByb3cgPSBncnAgKyBcIiAgXCIgKyBxdHkgKyBcIiAgXCIgKyBjdHMgKyBcIiAgXCIgKyBydGUgKyBcIiAgXCIgKyBhbXQ7XHJcbiAgICAgIC8vcm93ID0gXCJHcm91cCA6IFwiICsgZWxlbWVudC5ncnAgK1xyXG4gICAgICAvLyBncm91cFN1bW1hcnlbZWxlbWVudC5ncnAgKyAnX1FUWSddID09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIlFUWSA6IFwiICsgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19RVFknXSArXHJcbiAgICAgIC8vICAgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19DVFMnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJDYXJhdHMgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQ1RTJ10gK1xyXG4gICAgICAvLyAgICAgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19SVEUnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJSYXRlIDogXCIgKyBncm91cFN1bW1hcnlbZWxlbWVudC5ncnAgKyAnX1JURSddICtcclxuICAgICAgLy8gICAgICAgZ3JvdXBTdW1tYXJ5W2VsZW1lbnQuZ3JwICsgJ19BTVQnXSA9PSB1bmRlZmluZWQgPyBcIlwiIDogXCJBbW91bnQgOiBcIiArIGdyb3VwU3VtbWFyeVtlbGVtZW50LmdycCArICdfQU1UJ107XHJcbiAgICAgIENTViArPSByb3cgKyAnXFxyXFxuJztcclxuICAgICAgZmluYWxHcnBWYWxbZWxlbWVudC5ncnBdLmZvckVhY2gocGt0ZHRsID0+IHtcclxuICAgICAgICBsZXQgciA9IFwiXCI7XHJcbiAgICAgICAgYXR0ckR0bC5mb3JFYWNoKGF0dCA9PiB7XHJcbiAgICAgICAgICByICs9IHBrdGR0bFthdHRdICsgJywnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHIgPSByLnNsaWNlKDAsIC0xKTtcclxuICAgICAgICBDU1YgKz0gciArICdcXHJcXG4nO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChDU1YgPT0gJycpIHtcclxuICAgICAgYWxlcnQoXCJJbnZhbGlkIGRhdGFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coXCJhcnJEYXRhXCIsIGFyckRhdGEpO1xyXG4gICAgbGV0IGZpbGVOYW1lID0gXCJSZXBvcnRfXCI7XHJcbiAgICBmaWxlTmFtZSArPSBSZXBvcnRUaXRsZS5yZXBsYWNlKC8gL2csIFwiX1wiKSArIFwiLmNzdlwiO1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbQ1NWXSwge1xyXG4gICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL2NzdjtjaGFyc2V0PXV0Zi04O1wiXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgdmFyIGNzdlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBsaW5rLmhyZWYgPSBjc3ZVcmw7XHJcbiAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgbGluay5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgbW9kaWZ5RGF0YUJ5SGVhZGVyKHNlYXJjaFJlc3VsdER0bCwgcmVzdWx0VmlldywgcmVzdWx0Vmlld0R0bCkge1xyXG4gICAgbGV0IG9iaiA9IHt9XHJcbiAgICBsZXQgbW9kaWZpZWRPYmpBcnIgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VhcmNoUmVzdWx0RHRsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzdWx0Vmlldy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGxldCB2YWxzID0gc2VhcmNoUmVzdWx0RHRsW2ldW3Jlc3VsdFZpZXdbal1dO1xyXG4gICAgICAgIG9ialtyZXN1bHRWaWV3RHRsW3Jlc3VsdFZpZXdbal1dXSA9IHZhbHM7XHJcbiAgICAgIH1cclxuICAgICAgbW9kaWZpZWRPYmpBcnIucHVzaChvYmopO1xyXG4gICAgICBvYmogPSB7fTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKG1vZGlmaWVkT2JqQXJyKTtcclxuICAgIHJldHVybiBtb2RpZmllZE9iakFycjtcclxuICB9XHJcblxyXG4gIG1vZGlmeUdycERhdGFCeUhlYWRlcihzZWFyY2hSZXN1bHREdGwsIHJlc3VsdFZpZXcsIHJlc3VsdFZpZXdEdGwpIHtcclxuICAgIGxldCBvYmogPSB7fVxyXG4gICAgbGV0IG1vZGlmaWVkT2JqQXJyID0gW107XHJcbiAgICBmb3IgKGxldCBncnBrIGluIHNlYXJjaFJlc3VsdER0bCkge1xyXG4gICAgICBzZWFyY2hSZXN1bHREdGxbZ3Jwa10uZm9yRWFjaChwa3RzID0+IHtcclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHJlc3VsdFZpZXcubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGxldCB2YWxzID0gcGt0c1tyZXN1bHRWaWV3W2pdXTtcclxuICAgICAgICAgIG9ialtyZXN1bHRWaWV3RHRsW3Jlc3VsdFZpZXdbal1dXSA9IHZhbHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1vZGlmaWVkT2JqQXJyLnB1c2gob2JqKTtcclxuICAgICAgICBvYmogPSB7fTtcclxuICAgICAgfSk7XHJcbiAgICAgIG1vZGlmaWVkT2JqQXJyLnB1c2goXCJiclwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtb2RpZmllZE9iakFycjtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoZGF0ZSkge1xyXG4gICAgbGV0IGQgPSBuZXcgRGF0ZShkYXRlKSxcclxuICAgICAgbW9udGggPSAnJyArIChkLmdldE1vbnRoKCkgKyAxKSxcclxuICAgICAgZGF5ID0gJycgKyBkLmdldERhdGUoKSxcclxuICAgICAgeWVhciA9IGQuZ2V0RnVsbFllYXIoKTtcclxuICAgIGlmIChtb250aC5sZW5ndGggPCAyKSBtb250aCA9ICcwJyArIG1vbnRoO1xyXG4gICAgaWYgKGRheS5sZW5ndGggPCAyKSBkYXkgPSAnMCcgKyBkYXk7XHJcblxyXG4gICAgcmV0dXJuIFtkYXksIG1vbnRoLCB5ZWFyXS5qb2luKCctJyk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREYXRlU0MoZGF0ZSkge1xyXG4gICAgXHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpLFxyXG4gICAgICBtb250aCA9ICcnICsgKGQuZ2V0TW9udGgoKSArIDEpLFxyXG4gICAgICBkYXkgPSAnJyArIGQuZ2V0RGF0ZSgpLFxyXG4gICAgICB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgIGlmIChtb250aC5sZW5ndGggPCAyKSBtb250aCA9ICcwJyArIG1vbnRoO1xyXG4gICAgaWYgKGRheS5sZW5ndGggPCAyKSBkYXkgPSAnMCcgKyBkYXk7XHJcblxyXG4gICAgcmV0dXJuIFt5ZWFyLCBtb250aCwgZGF5XS5qb2luKCctJyk7XHJcbiAgfVxyXG5cclxuICBkZE1NWVlZWShkYXRlKSB7XHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpLFxyXG4gICAgICBtb250aCA9ICcnICsgKGQuZ2V0TW9udGgoKSArIDEpLFxyXG4gICAgICBkYXkgPSAnJyArIGQuZ2V0RGF0ZSgpLFxyXG4gICAgICB5ZWFyID0gZC5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgIGlmIChtb250aC5sZW5ndGggPCAyKSBtb250aCA9ICcwJyArIG1vbnRoO1xyXG4gICAgaWYgKGRheS5sZW5ndGggPCAyKSBkYXkgPSAnMCcgKyBkYXk7XHJcblxyXG4gICAgcmV0dXJuIFtkYXksIG1vbnRoLCB5ZWFyXS5qb2luKCctJyk7XHJcbiAgfVxyXG4gXHJcbiAgRm9ybWF0RGF0ZShkYXRlLGZvcm1hdCl7XHJcbiAgICBsZXQgZCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIGZvcm1hdCk7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcblxyXG4gIGRkTU1ZWVlZbnVtKGRhdGUpIHtcclxuICAgIGxldCBkID0gbmV3IERhdGUoZGF0ZSksXHJcbiAgICAgIG1vbnRoID0gJycgKyAoZC5nZXRNb250aCgpICsgMSksXHJcbiAgICAgIGRheSA9ICcnICsgZC5nZXREYXRlKCksXHJcbiAgICAgIHllYXIgPSBkLmdldEZ1bGxZZWFyKCk7XHJcbmRlYnVnZ2VyXHJcbiAgICBpZiAobW9udGgubGVuZ3RoIDwgMikgbW9udGggPSAnMCcgKyBtb250aDtcclxuICAgIGlmIChkYXkubGVuZ3RoIDwgMikgZGF5ID0gJzAnICsgZGF5O1xyXG5cclxuICAgIHJldHVybiB5ZWFyK21vbnRoK2RheTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGVTQ01vbnRoQmVmb3JlKGRhdGUpIHtcclxuICAgIGlmKGRhdGUhPXVuZGVmaW5lZCAmJiBkYXRlIT1cIlwiKXtcclxuXHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlKGRhdGUpLFxyXG4gICAgICBtb250aCA9ICcnICsgKGQuZ2V0TW9udGgoKSksXHJcbiAgICAgIGRheSA9ICcnICsgZC5nZXREYXRlKCksXHJcbiAgICAgIHllYXIgPSBkLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBkLnNldERhdGUoZC5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG4gICAgaWYgKG1vbnRoLmxlbmd0aCA8IDIpIG1vbnRoID0gJzAnICsgbW9udGg7XHJcbiAgICBpZiAoZGF5Lmxlbmd0aCA8IDIpIGRheSA9ICcwJyArIGRheTtcclxuXHJcbiAgICByZXR1cm4gW3llYXIsIG1vbnRoLCBkYXldLmpvaW4oJy0nKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgbnVtYmVyRmxvYXQobnVtYmVyKXtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBudW1iZXI9bnVtYmVyfHwwO1xyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtYmVyKTtcclxuXHJcbiAgfVxyXG4gIFxyXG4gZGF0ZVZhbGlkYXRpb24oZGF0ZSxmb3JtYXRlKXtcclxuICAgZGVidWdnZXI7XHJcbiAgdmFyIGRkOyBcclxuICB2YXIgbW07IFxyXG4gIHZhciB5eTsgXHJcbiAgZGF0ZT1kYXRlLnJlcGxhY2UoJy0nLCcvJylcclxuICBkYXRlPWRhdGUucmVwbGFjZSgnLScsJy8nKVxyXG4gIHZhciBwYXJ0cyA9IGRhdGUuc3BsaXQoJy8nKTtcclxuICBcclxuICBpZiAoZm9ybWF0ZSA9PSAnZGQvbW0veXknKSB7XHJcbiAgICBkZCA9IHBhcnRzWzBdO1xyXG4gICAgbW0gPSBwYXJ0c1sxXTtcclxuICAgIHl5ID0gIHBhcnRzWzJdOyAgXHQgIFxyXG4gIH0gZWxzZSBpZihmb3JtYXRlID09ICdtbS9kZC95eScpe1xyXG4gICAgbW0gPSBwYXJ0c1swXTtcclxuICAgIGRkID0gcGFydHNbMV07XHJcbiAgICB5eSA9ICBwYXJ0c1syXTsgIFxyXG4gIH1lbHNlIGlmKGZvcm1hdGUgPT0gJ2RkL01vbi95eScpeyBcclxuICAgIGRkID0gcGFydHNbMF07XHJcbiAgICBtbSA9IHBhcnRzWzFdO1xyXG4gICAgeXkgPSAgcGFydHNbMl07ICBcclxuICAgIGxldCBkID0gbmV3IERhdGUoZGF0ZSlcclxuICAgIG1tID0gIChkLmdldE1vbnRoKCkpKzFcclxuICAgIG1tID1tbS50b1N0cmluZygpO1xyXG4gIH1cclxuICBcclxuICBpZihtbS5sZW5ndGggPCAyKVxyXG4gIG1tID0gJzAnK21tO1xyXG4gIGlmKGRkLmxlbmd0aCA8IDIpXHJcbiAgZGQgPSAnMCcrZGQ7XHJcbiAgaWYoeXkubGVuZ3RoIDwgNClcclxuICB5eSA9ICcyMCcreXk7XHJcblxyXG4gIGxldCBtbWludCA9IHBhcnNlSW50KG1tKTtcclxuXHJcbiAgbGV0IGRkaW50ID0gcGFyc2VJbnQoZGQpO1xyXG4gIGlmKGRkaW50ID4gMzEpXHJcbiAgIHJldHVybiAnaW52YWlsZCdcclxuICBlbHNlIGlmKG1taW50ID4gMTIpXHJcbiAgIHJldHVybiAnaW52YWlsZCdcclxuIGVsc2VcclxuICByZXR1cm4geXkrbW0rZGQ7XHJcbiB9XHJcblxyXG4gIHNwbGl0VG9Ud29EZWNpbWFsKGlucHV0dmFsKSB7XHJcbiAgICBpZiAoaW5wdXR2YWwgJiYgaW5wdXR2YWwgIT0gSW5maW5pdHkpIHtcclxuICAgICAgcmV0dXJuIGlucHV0dmFsLnRvU3RyaW5nKCkudG9TdHJpbmcoKS5tYXRjaCgvXi0/XFxkKyg/OlxcLlxcZHswLDJ9KT8vKVswXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNwbGl0VG9UaHJlZURlY2ltYWwoaW5wdXR2YWwpIHtcclxuICAgIGlmIChpbnB1dHZhbCAmJiBpbnB1dHZhbCAhPSBJbmZpbml0eSkge1xyXG4gICAgICByZXR1cm4gaW5wdXR2YWwudG9TdHJpbmcoKS50b1N0cmluZygpLm1hdGNoKC9eLT9cXGQrKD86XFwuXFxkezAsM30pPy8pWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHJvdW5kdmFsKGlucHV0dmFsKSB7XHJcbiAgICBpZiAoaW5wdXR2YWwpIHtcclxuICAgICAgcmV0dXJuIE1hdGgucm91bmQoaW5wdXR2YWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcm91bmRVcChudW0sIHByZWNpc2lvbikge1xyXG4gICAgcHJlY2lzaW9uID0gTWF0aC5wb3coMTAsIHByZWNpc2lvbilcclxuICAgIHJldHVybiBNYXRoLmNlaWwobnVtICogcHJlY2lzaW9uKSAvIHByZWNpc2lvblxyXG4gIH1cclxuXHJcbiAgZ2V0U2lnbmVkVXJsKHMzZGV0YWlscyxkb2Nfbm1lLGJ1Y2tldCl7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgbGV0IHVybFBhcmFtcyA9IHtcclxuICAgICAgQnVja2V0OiBzM2RldGFpbHNbXCJkb2NidWNrZXRcIl0sXHJcbiAgICAgIEtleTogczNkZXRhaWxzW1wiZG9jZm9sZGVyXCJdK1wiL1wiK2RvY19ubWVcclxuICAgIH07XHJcbiAgICBidWNrZXQuZ2V0U2lnbmVkVXJsKFwiZ2V0T2JqZWN0XCIsIHVybFBhcmFtcywgZnVuY3Rpb24oIGVyciwgdXJsICkge1xyXG4gICAgICByZXR1cm4gdXJsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG51bWJlcnRvZml4ZWQoaW5wdXR2YWwsZGVjaW1hbCkge1xyXG4gICAgaWYgKGlucHV0dmFsKSB7XHJcbiAgICAgICAgaW5wdXR2YWw9aW5wdXR2YWwudG9GaXhlZChkZWNpbWFsKTtcclxuICAgICAgcmV0dXJuIGlucHV0dmFsO1xyXG4gICAgfWVsc2V7XHJcbiAgICByZXR1cm4gaW5wdXR2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAgZmxvb3JGaWd1cmUoZmlndXJlLCBkZWNpbWFscykge1xyXG4gICAgbGV0IGE7XHJcbiAgICBpZihmaWd1cmUhPW51bGwgJiYgZmlndXJlIT11bmRlZmluZWQgKXtcclxuICAgIGlmIChkZWNpbWFscyA9PSAtMSlcclxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihmaWd1cmUpO1xyXG4gICAgaWYgKGRlY2ltYWxzID09IDApXHJcbiAgICAgICAgcmV0dXJuIE1hdGgudHJ1bmMoZmlndXJlKTtcclxuICAgIGlmICghZGVjaW1hbHMpIGRlY2ltYWxzID0gMjtcclxuICAgIGxldCBkID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuXHJcbiAgICB2YXIgc3RyID0gZmlndXJlLnRvU3RyaW5nKCk7IFxyXG4gICAgYT0gcGFyc2VGbG9hdChzdHIpOyBcclxuICAgIGRlY2ltYWxzID0gcGFyc2VJbnQoZGVjaW1hbHMpO1xyXG4gICAgaWYoc3RyLmluZGV4T2YoXCIuXCIpICE9IC0xKXtcclxuICAgICAgICB2YXIgZmN0ciA7XHJcbiBkZWJ1Z2dlclxyXG4gICAgICAgIGlmICgoKGZpZ3VyZS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXSkubGVuZ3RoKSA9PSAyKSB7XHJcbiAgICAgICAgICAgIGZjdHIgPSBmaWd1cmUudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV07XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICAgICAgaWYgKCgoZmlndXJlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdKS5sZW5ndGgpID09IDEpIHtcclxuICAgICAgICAgICAgZmN0ciA9IGZpZ3VyZS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXS5jb25jYXQoXCIwXCIpO1xyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgXHJcbiAgICAgICAgaWYgKCgoZmlndXJlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdKS5sZW5ndGgpID4gMikge1xyXG4gICAgICAgICAgICBmY3RyID0gZmlndXJlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdLnN1YnN0cmluZygwLGRlY2ltYWxzKTtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgIFxyXG4gICAgICAgIGEgPSBNYXRoLnRydW5jKGZpZ3VyZSkgKyBcIi5cIiArIGZjdHI7XHJcbiAgICB9ICBcclxuICAgIFxyXG59ZWxzZXtcclxuICAgIGE9ZmlndXJlO1xyXG59XHJcbiAgICByZXR1cm4gYTtcclxufVxyXG5cclxuICBzY3JvbGxUb0RpdihlbCkge1xyXG4gICAgbGV0IHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbCk7XHJcbiAgICByZXR1cm4geC5zY3JvbGxJbnRvVmlldygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXAoKSA6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcImh0dHA6Ly9pcGluZm8uaW8vanNvbi9cIilcclxuICAgICAgLnBpcGUobWFwKChyZXM6IGFueSkgPT4gcmVzKSlcclxuICB9XHJcblxyXG4gIHBhZ2VCY2sgPSAoKSA9PiB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XHJcblxyXG4gIGdldEJyb3dzZXJJbmZvKCkge1xyXG4gICAgbGV0IG5WZXIgPSBuYXZpZ2F0b3IuYXBwVmVyc2lvbjtcclxuICAgIGxldCBuQWd0ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgIGxldCBicm93c2VyTmFtZSA9IG5hdmlnYXRvci5hcHBOYW1lO1xyXG4gICAgbGV0IGZ1bGxWZXJzaW9uID0gJycgKyBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uKTtcclxuICAgIGxldCBtYWpvclZlcnNpb24gPSBwYXJzZUludChuYXZpZ2F0b3IuYXBwVmVyc2lvbiwgMTApO1xyXG4gICAgbGV0IG5hbWVPZmZzZXQsIHZlck9mZnNldCwgaXg7XHJcblxyXG4gICAgLy8gSW4gT3BlcmEgMTUrLCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyIFwiT1BSL1wiIFxyXG4gICAgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJPUFIvXCIpKSAhPSAtMSkge1xyXG4gICAgICBicm93c2VyTmFtZSA9IFwiT3BlcmFcIjtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyA0KTtcclxuICAgIH1cclxuICAgIC8vIEluIG9sZGVyIE9wZXJhLCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyIFwiT3BlcmFcIiBvciBhZnRlciBcIlZlcnNpb25cIlxyXG4gICAgZWxzZSBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIk9wZXJhXCIpKSAhPSAtMSkge1xyXG4gICAgICBicm93c2VyTmFtZSA9IFwiT3BlcmFcIjtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyA2KTtcclxuICAgICAgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJWZXJzaW9uXCIpKSAhPSAtMSlcclxuICAgICAgICBmdWxsVmVyc2lvbiA9IG5BZ3Quc3Vic3RyaW5nKHZlck9mZnNldCArIDgpO1xyXG4gICAgfVxyXG4gICAgLy8gSW4gTVNJRSwgdGhlIHRydWUgdmVyc2lvbiBpcyBhZnRlciBcIk1TSUVcIiBpbiB1c2VyQWdlbnRcclxuICAgIGVsc2UgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJNU0lFXCIpKSAhPSAtMSkge1xyXG4gICAgICBicm93c2VyTmFtZSA9IFwiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyXCI7XHJcbiAgICAgIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0ICsgNSk7XHJcbiAgICB9XHJcbiAgICAvLyBJbiBDaHJvbWUsIHRoZSB0cnVlIHZlcnNpb24gaXMgYWZ0ZXIgXCJDaHJvbWVcIiBcclxuICAgIGVsc2UgaWYgKCh2ZXJPZmZzZXQgPSBuQWd0LmluZGV4T2YoXCJDaHJvbWVcIikpICE9IC0xKSB7XHJcbiAgICAgIGJyb3dzZXJOYW1lID0gXCJDaHJvbWVcIjtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyA3KTtcclxuICAgIH1cclxuICAgIC8vIEluIFNhZmFyaSwgdGhlIHRydWUgdmVyc2lvbiBpcyBhZnRlciBcIlNhZmFyaVwiIG9yIGFmdGVyIFwiVmVyc2lvblwiIFxyXG4gICAgZWxzZSBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIlNhZmFyaVwiKSkgIT0gLTEpIHtcclxuICAgICAgYnJvd3Nlck5hbWUgPSBcIlNhZmFyaVwiO1xyXG4gICAgICBmdWxsVmVyc2lvbiA9IG5BZ3Quc3Vic3RyaW5nKHZlck9mZnNldCArIDcpO1xyXG4gICAgICBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIlZlcnNpb25cIikpICE9IC0xKVxyXG4gICAgICAgIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0ICsgOCk7XHJcbiAgICB9XHJcbiAgICAvLyBJbiBGaXJlZm94LCB0aGUgdHJ1ZSB2ZXJzaW9uIGlzIGFmdGVyIFwiRmlyZWZveFwiIFxyXG4gICAgZWxzZSBpZiAoKHZlck9mZnNldCA9IG5BZ3QuaW5kZXhPZihcIkZpcmVmb3hcIikpICE9IC0xKSB7XHJcbiAgICAgIGJyb3dzZXJOYW1lID0gXCJGaXJlZm94XCI7XHJcbiAgICAgIGZ1bGxWZXJzaW9uID0gbkFndC5zdWJzdHJpbmcodmVyT2Zmc2V0ICsgOCk7XHJcbiAgICB9XHJcbiAgICAvLyBJbiBtb3N0IG90aGVyIGJyb3dzZXJzLCBcIm5hbWUvdmVyc2lvblwiIGlzIGF0IHRoZSBlbmQgb2YgdXNlckFnZW50IFxyXG4gICAgZWxzZSBpZiAoKG5hbWVPZmZzZXQgPSBuQWd0Lmxhc3RJbmRleE9mKCcgJykgKyAxKSA8XHJcbiAgICAgICh2ZXJPZmZzZXQgPSBuQWd0Lmxhc3RJbmRleE9mKCcvJykpKSB7XHJcbiAgICAgIGJyb3dzZXJOYW1lID0gbkFndC5zdWJzdHJpbmcobmFtZU9mZnNldCwgdmVyT2Zmc2V0KTtcclxuICAgICAgZnVsbFZlcnNpb24gPSBuQWd0LnN1YnN0cmluZyh2ZXJPZmZzZXQgKyAxKTtcclxuICAgICAgaWYgKGJyb3dzZXJOYW1lLnRvTG93ZXJDYXNlKCkgPT0gYnJvd3Nlck5hbWUudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgIGJyb3dzZXJOYW1lID0gbmF2aWdhdG9yLmFwcE5hbWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIHRyaW0gdGhlIGZ1bGxWZXJzaW9uIHN0cmluZyBhdCBzZW1pY29sb24vc3BhY2UgaWYgcHJlc2VudFxyXG4gICAgaWYgKChpeCA9IGZ1bGxWZXJzaW9uLmluZGV4T2YoXCI7XCIpKSAhPSAtMSlcclxuICAgICAgZnVsbFZlcnNpb24gPSBmdWxsVmVyc2lvbi5zdWJzdHJpbmcoMCwgaXgpO1xyXG4gICAgaWYgKChpeCA9IGZ1bGxWZXJzaW9uLmluZGV4T2YoXCIgXCIpKSAhPSAtMSlcclxuICAgICAgZnVsbFZlcnNpb24gPSBmdWxsVmVyc2lvbi5zdWJzdHJpbmcoMCwgaXgpO1xyXG5cclxuICAgIG1ham9yVmVyc2lvbiA9IHBhcnNlSW50KCcnICsgZnVsbFZlcnNpb24sIDEwKTtcclxuICAgIGlmIChpc05hTihtYWpvclZlcnNpb24pKSB7XHJcbiAgICAgIGZ1bGxWZXJzaW9uID0gJycgKyBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uKTtcclxuICAgICAgbWFqb3JWZXJzaW9uID0gcGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24sIDEwKTtcclxuICAgIH1cclxuICAgIGxldCBPYmogPSB7XHJcbiAgICAgICdicm93c2VyTmFtZSc6IGJyb3dzZXJOYW1lLFxyXG4gICAgICAndmVyc2lvbic6IGZ1bGxWZXJzaW9uLFxyXG4gICAgICAnbWFqb3JWZXJzaW9uJzogbWFqb3JWZXJzaW9uLFxyXG4gICAgICAnYXBwTmFtZSc6IG5hdmlnYXRvci5hcHBOYW1lLFxyXG4gICAgICAndXNlckFnZW50JzogbmF2aWdhdG9yLnVzZXJBZ2VudFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIE9iajtcclxuICB9XHJcblxyXG4gIGVkaXRvckNvbmZpZyA9IHtcclxuICAgIFwiZWRpdGFibGVcIjogdHJ1ZSxcclxuICAgIFwic3BlbGxjaGVja1wiOiB0cnVlLFxyXG4gICAgXCJoZWlnaHRcIjogXCIxMTBweFwiLFxyXG4gICAgXCJtaW5IZWlnaHRcIjogXCIxMTBweFwiLFxyXG4gICAgXCJ3aWR0aFwiOiBcImF1dG9cIixcclxuICAgIFwibWluV2lkdGhcIjogXCIwXCIsXHJcbiAgICBcInRyYW5zbGF0ZVwiOiBcInllc1wiLFxyXG4gICAgXCJlbmFibGVUb29sYmFyXCI6IHRydWUsXHJcbiAgICBcInNob3dUb29sYmFyXCI6IHRydWUsXHJcbiAgICBcInBsYWNlaG9sZGVyXCI6IFwiRW50ZXIgdGV4dCBoZXJlLi4uXCIsXHJcbiAgICBcImltYWdlRW5kUG9pbnRcIjogXCJcIixcclxuICAgIFwidG9vbGJhclwiOiBbXHJcbiAgICAgIFtcImJvbGRcIiwgXCJpdGFsaWNcIiwgXCJ1bmRlcmxpbmVcIiwgXCJzdHJpa2VUaHJvdWdoXCIsIFwic3VwZXJzY3JpcHRcIiwgXCJzdWJzY3JpcHRcIl0sXHJcbiAgICAgIFtcImZvbnROYW1lXCIsIFwiZm9udFNpemVcIiwgXCJjb2xvclwiXSxcclxuICAgICAgW1wianVzdGlmeUxlZnRcIiwgXCJqdXN0aWZ5Q2VudGVyXCIsIFwianVzdGlmeVJpZ2h0XCIsIFwianVzdGlmeUZ1bGxcIiwgXCJpbmRlbnRcIiwgXCJvdXRkZW50XCJdLFxyXG4gICAgICBbXCJjdXRcIiwgXCJjb3B5XCIsIFwiZGVsZXRlXCIsIFwicmVtb3ZlRm9ybWF0XCIsIFwidW5kb1wiLCBcInJlZG9cIl0sXHJcbiAgICAgIFtcInBhcmFncmFwaFwiLCBcImJsb2NrcXVvdGVcIiwgXCJyZW1vdmVCbG9ja3F1b3RlXCIsIFwiaG9yaXpvbnRhbExpbmVcIiwgXCJvcmRlcmVkTGlzdFwiLCBcInVub3JkZXJlZExpc3RcIl0sXHJcbiAgICAgIFtcImxpbmtcIiwgXCJ1bmxpbmtcIiwgXCJpbWFnZVwiLCBcInZpZGVvXCJdXHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBmb3JtYXRlU3RyKHN0cikge1xyXG4gICAgc3RyID0gc3RyLnRyaW0oKTtcclxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9bICxdKy9nLCBcIixcIik7XHJcbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvXFxuL2csIFwiLFwiKTtcclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuICBzdGFydFJGSURTY2FuKGRldmljZUlkLCBmb3JtTm1lKSB7XHJcbiAgICBsZXQgbWRsayA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21kbEtleScpKTtcclxuICAgIGxldCBjVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IG1kbGtbY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ21ldGhvZCc6ICdzdGFydEJhckNvZGVSZWFkaW5nJyxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9IGZvcm1ObWU7XHJcbiAgICByZXFPYmpbJ2RldmljZUlkJ10gPSBkZXZpY2VJZDtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfTtcclxuXHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgdGhpcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9iYXJDb2RlUmVhZGVyJykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIC8vIHRoaXMuRmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdygnU2NhbiBTdGFydGVkLi4uJywgeyBjc3NDbGFzczogJ2FsZXJ0LXN1Y2Nlc3MnLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZS5zY2FuX2lkbjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBTdG9wUkZJRFNjYW4oc2Nhbl9pZG4sIGZvcm1ObWUpIHtcclxuICAgIGxldCBtZGxrID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWRsS2V5JykpO1xyXG4gICAgbGV0IGNVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnbW9kdWxla2V5JzogbWRsa1tjVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAnbWV0aG9kJzogJ3N0b3BCYXJDb2RlUmVhZGluZycsXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqWydmb3JtTm1lJ10gPSBmb3JtTm1lO1xyXG4gICAgcmVxT2JqWydzY2FuSWQnXSA9IHNjYW5faWRuO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIGxldCBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9O1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIHRoaXMubG9hZChyZXFPYmosIG9wdGlvbnMsICdtYXJrZXRpbmcvYmFyQ29kZVJlYWRlcicpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAvLyB0aGlzLkZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coJ1NjYW4gU3RvcHBlZC4uLicsIHsgY3NzQ2xhc3M6ICdhbGVydC1zdWNjZXNzJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2Uuc2Nhbl9pZG47XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbi8veyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9XHJcbiAgbG9hZChyZXFPYmosIGhlYWRlcnMsIHVybCkge1xyXG4gICAgY29uc29sZS5sb2coaGVhZGVycyk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArIHVybCwgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwgeyBoZWFkZXJzOiBoZWFkZXJzIH0pXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nbGJFbnYuYmFzZVVybCArIHVybCwgSlNPTi5zdHJpbmdpZnkocmVxT2JqKSwgIHsgaGVhZGVyczogaGVhZGVycyB9KVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSkuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLkZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRpRmlsZShyZXFPYmosIGhlYWRlciwgdXJsKSB7XHJcbiAgICAvLyBsZXQgb3B0aW9uczogYW55ID0gbmV3IFJlcXVlc3RPcHRpb25zKHsgaGVhZGVyczogaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnM6IGFueSA9IG5ldyBIdHRwSGVhZGVycyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdsYkVudi5iYXNlVXJsICsgdXJsLCBKU09OLnN0cmluZ2lmeShyZXFPYmopLCBvcHRpb25zKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZSkuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAvLyB0aGlzLkZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIFxyXG4gICBudW1iZXJXaXRoQ29tbWFzKHgpIHtcclxuICAgIHZhciBwYXJ0cyA9IHgudG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XHJcbiAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTtcclxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgfVxyXG5cclxuICAgIC8vIG5ldyBmdW5jdGlvbiBmb3IgaW5kaWFuIGFuZCBlbmdsaXNoIGZvcm1hdCBjb21tYXNcclxuICBudW1iZXJXaXRoQ29tbWFzRm9ybWF0KG51bSkge1xyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb21tYUZvcm1hdCcpID09ICdlbmcnKSB7XHJcbiAgICAgIHZhciBwYXJ0cyA9IG51bS50b1N0cmluZygpLnNwbGl0KFwiLlwiKTtcclxuICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIik7XHJcbiAgICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgcGFydHMgPSBudW0udG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XHJcbiAgICAgIGxldCB4ID0gcGFydHNbMF07XHJcbiAgICAgIHggPSB4LnJlcGxhY2VBbGwoJywnLCAnJyk7IC8vcmVtb3ZpbmcgcHJlIGV4aXN0aW5nIGNvbW1hcyBpZiBhbnlcclxuICAgICAgdmFyIGxhc3RUaHJlZSA9IHguc3Vic3RyaW5nKHgubGVuZ3RoLTMpO1xyXG4gICAgICB2YXIgb3RoZXJOdW1iZXJzID0geC5zdWJzdHJpbmcoMCx4Lmxlbmd0aC0zKTtcclxuICAgICAgaWYob3RoZXJOdW1iZXJzICE9ICcnKVxyXG4gICAgICAgICAgbGFzdFRocmVlID0gJywnICsgbGFzdFRocmVlO1xyXG4gICAgICB2YXIgcmVzID0gb3RoZXJOdW1iZXJzLnJlcGxhY2UoL1xcQig/PShcXGR7Mn0pKyg/IVxcZCkpL2csIFwiLFwiKSArIGxhc3RUaHJlZTtcclxuICAgICAgcGFydHNbMF0gPSByZXM7XHJcbiAgICAgIHJldHVybiBwYXJ0cy5qb2luKFwiLlwiKTtcclxuICAgIH1cclxufVxyXG5cclxuICBpbldvcmRzSU5SKG51bSkge1xyXG4gICAgaWYgKChudW0gPSBudW0udG9TdHJpbmcoKSkubGVuZ3RoID4gOSkgcmV0dXJuICdvdmVyZmxvdyc7XHJcbiAgICBsZXQgbiA9IFtdO1xyXG4gICAgbiA9ICgnMDAwMDAwMDAwJyArIG51bSkuc3Vic3RyKC05KS5tYXRjaCgvXihcXGR7Mn0pKFxcZHsyfSkoXFxkezJ9KShcXGR7MX0pKFxcZHsyfSkkLyk7XHJcbiAgICBpZiAoIW4pIHJldHVybjsgdmFyIHN0ciA9ICcnO1xyXG4gICAgc3RyICs9IChuWzFdICE9IDApID8gKHRoaXMuYVtOdW1iZXIoblsxXSldIHx8IHRoaXMuYltuWzFdWzBdXSArICcgJyArIHRoaXMuYVtuWzFdWzFdXSkgKyAnY3JvcmUgJyA6ICcnO1xyXG4gICAgc3RyICs9IChuWzJdICE9IDApID8gKHRoaXMuYVtOdW1iZXIoblsyXSldIHx8IHRoaXMuYltuWzJdWzBdXSArICcgJyArIHRoaXMuYVtuWzJdWzFdXSkgKyAnbGFraCAnIDogJyc7XHJcbiAgICBzdHIgKz0gKG5bM10gIT0gMCkgPyAodGhpcy5hW051bWJlcihuWzNdKV0gfHwgdGhpcy5iW25bM11bMF1dICsgJyAnICsgdGhpcy5hW25bM11bMV1dKSArICd0aG91c2FuZCAnIDogJyc7XHJcbiAgICBzdHIgKz0gKG5bNF0gIT0gMCkgPyAodGhpcy5hW051bWJlcihuWzRdKV0gfHwgdGhpcy5iW25bNF1bMF1dICsgJyAnICsgdGhpcy5hW25bNF1bMV1dKSArICdodW5kcmVkICcgOiAnJztcclxuICAgIHN0ciArPSAobls1XSAhPSAwKSA/ICgoc3RyICE9ICcnKSA/ICdhbmQgJyA6ICcnKSArICh0aGlzLmFbTnVtYmVyKG5bNV0pXSB8fCB0aGlzLmJbbls1XVswXV0gKyAnICcgKyB0aGlzLmFbbls1XVsxXV0pICsgJ29ubHkgJyA6ICcnO1xyXG4gICAgY29uc29sZS5sb2coc3RyKTtcclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmFuZG9tbnVtYmVyKCkge1xyXG4gICAgbGV0IG51bSA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAxMDAwMCkgKyAxMDApO1xyXG4gICAgcmV0dXJuIG51bTtcclxuICB9XHJcblxyXG4gIHRhZ2JveFNldHRpbmdzOiB7XHJcbiAgICBlbmFibGVGaWx0ZXJTZWxlY3RBbGw6IGZhbHNlLFxyXG4gICAgc2luZ2xlU2VsZWN0aW9uOiBmYWxzZSxcclxuICAgIHRleHQ6IFwiU2VsZWN0IHN0YXR1c1wiLFxyXG4gICAgc2VsZWN0QWxsVGV4dDogJ1NlbGVjdCBBbGwnLFxyXG4gICAgdW5TZWxlY3RBbGxUZXh0OiAnVW5TZWxlY3QgQWxsJyxcclxuICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogdHJ1ZSxcclxuICAgIGNsYXNzZXM6IFwibXljbGFzcyBjdXN0b20tY2xhc3NcIlxyXG4gIH1cclxuXHJcbiAgIHJlbW92ZUVtcHR5KG9iaikge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcclxuICAgICAgLmZpbHRlcihmdW5jdGlvbiAoaykge1xyXG4gICAgICAgIHJldHVybiBvYmpba118fCcnICE9ICcnO1xyXG4gICAgICB9KVxyXG4gICAgICAucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGspIHtcclxuICAgICAgICBhY2Nba10gPSBvYmpba107XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfSwge30pO1xyXG4gIH1cclxuXHJcbiAgY29uZmlnID0ge1xyXG4gICAgZWRpdGFibGU6IHRydWUsXHJcbiAgICBzcGVsbGNoZWNrOiB0cnVlLFxyXG4gICAgaGVpZ2h0OiAnMTVyZW0nLFxyXG4gICAgbWluSGVpZ2h0OiAnNXJlbScsXHJcbiAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHRleHQgaGVyZS4uLicsXHJcbiAgICB0cmFuc2xhdGU6ICdubycsXHJcbiAgICBkZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yOiAncCcsXHJcbiAgICBkZWZhdWx0Rm9udE5hbWU6ICdBcmlhbCcsXHJcbiAgICBjdXN0b21DbGFzc2VzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInF1b3RlXCIsXHJcbiAgICAgICAgY2xhc3M6IFwicXVvdGVcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdyZWRUZXh0JyxcclxuICAgICAgICBjbGFzczogJ3JlZFRleHQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIGNsYXNzOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIHRhZzogXCJoMVwiLFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcblxyXG59Il19
@@ -229,7 +229,7 @@ class CommanServiceService {
229
229
  }
230
230
  menuList(reqObj, headers) {
231
231
  JSON.stringify(reqObj);
232
- return this.http.post(this.glbEnv.baseUrl + 'login/loadMenu', JSON.stringify(reqObj), { headers })
232
+ return this.http.post(this.glbEnv.baseUrl + 'login/loadMenu', JSON.stringify(reqObj), headers)
233
233
  .toPromise()
234
234
  .then((response) => response);
235
235
  }