@uiapplibct/ngx-reusa-app-lib 0.0.17 → 0.0.20

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.
@@ -22,13 +22,16 @@ export class HttpErrorInterceptor {
22
22
  }
23
23
  intercept(req, next) {
24
24
  return next.handle(req).pipe(tap(evt => {
25
+ console.log("In http intercept tap", evt);
25
26
  if (evt instanceof HttpResponse) {
27
+ console.log("Tap is an instanceof httpResponse", req);
26
28
  this.logger.log('[HttpErrorInterceptor] response ->', evt);
27
29
  if (evt.status >= 200 && evt.status < 300) {
28
30
  //this.util.hideLoader();
29
31
  }
30
32
  }
31
33
  }), catchError((error) => {
34
+ console.log("In http intercept", error);
32
35
  let errorModel = new ErrorModel();
33
36
  errorModel.msg = 'Something went wrong. Please check your network connection or try again later.';
34
37
  errorModel.timestamp = new Date().toDateString();
@@ -57,6 +60,8 @@ export class HttpErrorInterceptor {
57
60
  case 0:
58
61
  errorModel.msg = 'Connection Problem. Please check your network connection or try again later.';
59
62
  break;
63
+ case 200:
64
+ return;
60
65
  case 400:
61
66
  errorModel.msg = 'We could not process your request. Please try again later.';
62
67
  break;
@@ -165,4 +170,4 @@ export class HttpErrorInterceptor {
165
170
  providedIn: 'root'
166
171
  }]
167
172
  }], () => [{ type: i1.Router }, { type: i2.UtilService }, { type: i3.NavController }, { type: i4.LoginService }, { type: i5.LoggerService }, { type: i6.MaintenanceService }], null); })();
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Vycm9yLWludGVyY2VwdG9yL2h0dHAtZXJyb3ItaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXFELFlBQVksRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hILE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUt6RCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQW1CLE1BQWUsRUFBVSxJQUFrQixFQUFVLEdBQW1CLEVBQVUsRUFBaUIsRUFBVSxNQUFxQixFQUFTLEVBQXVCO1FBQWxLLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLE9BQUUsR0FBRixFQUFFLENBQXFCO0lBQUksQ0FBQztJQUUxTCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDTixJQUFJLEdBQUcsWUFBWSxZQUFZLEVBQUU7Z0JB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dWxhci9jb3JlJztcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLEh0dHBSZXF1ZXN0LEh0dHBSZXNwb25zZSxIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtjYXRjaEVycm9yLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRXJyb3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9FcnJvck1vZGVsJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IE1haW50ZW5hbmNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21haW50ZW5hbmNlL21haW50ZW5hbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9ye1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXIgOiBSb3V0ZXIsIHByaXZhdGUgdXRpbCA6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIG5hdiA6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUgbHMgOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwdWJsaWMgbXMgOiBNYWludGVuYW5jZVNlcnZpY2UpIHsgfVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICAgICAgICB0YXAoZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZ0IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0h0dHBFcnJvckludGVyY2VwdG9yXSByZXNwb25zZSAtPicsIGV2dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmKGV2dC5zdGF0dXMgPj0gMjAwICYmIGV2dC5zdGF0dXMgPCAzMDApe1xuICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgIGxldCBlcnJvck1vZGVsIDogRXJyb3JNb2RlbCA9IG5ldyBFcnJvck1vZGVsKCk7XG4gICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIGNoZWNrIHlvdXIgbmV0d29yayBjb25uZWN0aW9uIG9yIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgICAgICAgICAgICAgZXJyb3JNb2RlbC50aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICAgICAgICAgIGxldCB0ZW1wRXJyb3JNb2RlbDogRXJyb3JNb2RlbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JJZDogJ05BJyxcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG1zZzogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgdHJ5IGFnYWluIGxhdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsczogJycsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdbSHR0cEVycm9ySW50ZXJjZXB0b3JdIEVycm9yIG9jY3VyZWQnLCBlcnJvcik7XG4gICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHx8IChlcnJvci5lcnJvciBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiW0h0dHBFcnJvckludGVyY2VwdG9yXSBFcnJvciBFdmVudFwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIGlmKCghcmVxLnVybC5pbmNsdWRlcygnbG9jYWxob3N0JykgfHwgdGhpcy51dGlsLmlzUGxheWZvcm1DYXBhY2l0b3IoKSkgJiYgTGliQ29uc3RhbnRzLm1haW50ZW5hbmNlTW9kZUZlYXR1cmVFbmFibGVkID09ICd0cnVlJyl7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zLmNoZWNrZm9yTWFpbnRlbmFuY2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcy5pc0FwcFVuZGVyTWFpbnRlbmFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnbWFpbnRlbmFuY2UnKS50aGVuKCgpID0+IHt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYFtIdHRwRXJyb3JJbnRlcmNlcHRvcl0gZXJyb3Igc3RhdHVzIDogJHtlcnJvci5zdGF0dXN9ICR7ZXJyb3Iuc3RhdHVzVGV4dH1gKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnQ29ubmVjdGlvbiBQcm9ibGVtLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQwMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdXZSBjb3VsZCBub3QgcHJvY2VzcyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJzsgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDAxOiAgICAgIC8vbG9naW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGVycm9yLmVycm9yLmVycm9yID09ICdpbnZhbGlkX3JlcXVlc3QnICYmIGVycm9yLmVycm9yLnJvbGVzID09ICdQUkVfQVVUSCcpIHx8IHRoaXMuc2hvdWxkU3RheU9uUGFnZSgpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJbSHR0cEVycm9ySW50ZXJjZXB0b3JdIGludmFsaWQgcmVxdWVzdCwgc3RheWluZyBvbiBzYW1lIHBhZ2VcIiwgZXJyb3JNb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCJsb2dpblwiKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGVycm9yTW9kZWwubXNnID09ICd1bmF1dGhvcml6ZWQnIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlcnJvck1vZGVsLm1zZyA9PSAnaW52YWxpZF90b2tlbicgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWwubXNnID09ICd0b2tlbl9leHBpcmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlcnJvck1vZGVsWydlcnJvciddID09ICdpbnZhbGlkX3Rva2VuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlcnJvck1vZGVsWydlcnJvciddID09ICd0b2tlbl9leHBpcmVkJyl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1Nlc3Npb24gRXhwaXJlZC4gUGxlYXNlIGxvZ2luIGFnYWluLic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubHMubG9nb3V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQwMzogICAgIC8vZm9yYmlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCJ1bmF1dGhvcml6ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQwNDogICAgIC8vTm90IEZvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQyMjogICAgIC8vVW5wcm9jZXNzYWJsZSBFbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdFcnJvcjUwMCA9IGVycm9yPy5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmF3RXJyb3I1MDAgJiYgdHlwZW9mIHJhd0Vycm9yNTAwID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWNrZW5kTXNnID0gcmF3RXJyb3I1MDAubXNnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiYWNrZW5kTXNnKSAmJiBiYWNrZW5kTXNnLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gYmFja2VuZE1zZy5qb2luKCcsICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBiYWNrZW5kTXNnID09PSAnc3RyaW5nJyAmJiBiYWNrZW5kTXNnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9IGJhY2tlbmRNc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5lcnJvcklkID0gcmF3RXJyb3I1MDAuZXJyb3JJZCB8fCBlcnJvck1vZGVsLmVycm9ySWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwudGltZXN0YW1wID0gcmF3RXJyb3I1MDAudGltZXN0YW1wIHx8IGVycm9yTW9kZWwudGltZXN0YW1wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLmRldGFpbHMgPSByYXdFcnJvcjUwMC5kZXRhaWxzIHx8IGVycm9yTW9kZWwuZGV0YWlscztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1MDE6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnRmVhdHVyZSBub3QgYXZhaWxhYmxlJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1dlXFwncmUgaGF2aW5nIHRyb3VibGUgY29ubmVjdGluZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdUZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXJyb3JNb2RlbCA9IGVycm9yLmVycm9yID8gZXJyb3IuZXJyb3IgOiBlcnJvck1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0Vycm9yID0gZXJyb3I/LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYXdFcnJvciAmJiB0eXBlb2YgcmF3RXJyb3IgPT09ICdvYmplY3QnICYmIHJhd0Vycm9yICE9PSBudWxsKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEVycm9yTW9kZWwubXNnID0gcmF3RXJyb3IubXNnIHx8IHJhd0Vycm9yLm1lc3NhZ2UgfHwgdGVtcEVycm9yTW9kZWwubXNnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC5kZXRhaWxzID0gcmF3RXJyb3IuZGV0YWlscyB8fCByYXdFcnJvci5kZXNjcmlwdGlvbiB8fCB0ZW1wRXJyb3JNb2RlbC5kZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC5lcnJvcklkID0gcmF3RXJyb3IuZXJyb3JJZCB8fCB0ZW1wRXJyb3JNb2RlbC5lcnJvcklkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC50aW1lc3RhbXAgPSByYXdFcnJvci50aW1lc3RhbXAgfHwgdGVtcEVycm9yTW9kZWwudGltZXN0YW1wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmF3RXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzZXJ2ZXIganVzdCBzZW50IGEgc2ltcGxlIHRleHQgbWVzc2FnZSwgd2UnbGwgdXNlIHRoYXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLm1zZyA9IHJhd0Vycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsID0gdGVtcEVycm9yTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXJyb3JNb2RlbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JJZDogdHlwZW9mIHJhd0Vycm9yID09PSAnb2JqZWN0JyAmJiByYXdFcnJvcj8uZXJyb3JJZCA/IHJhd0Vycm9yLmVycm9ySWQgOiAnTkEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHR5cGVvZiByYXdFcnJvciA9PT0gJ29iamVjdCcgJiYgcmF3RXJyb3I/LnRpbWVzdGFtcCA/IHJhd0Vycm9yLnRpbWVzdGFtcCA6IG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZzogdHlwZW9mIHJhd0Vycm9yID09PSAnc3RyaW5nJyA/ICdBbiBlcnJvciBvY2N1cmVkIHdoaWxlIHByb2Nlc3NpbmcgeW91ciByZXF1ZXN0LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiB0eXBlb2YgcmF3RXJyb3IgPT09ICdvYmplY3QnICYmIHJhd0Vycm9yPy5kZXRhaWxzID8gcmF3RXJyb3IuZGV0YWlscyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiW0h0dHBFcnJvckludGVyY2VwdG9yXSBzb21lIHRoaW5nIGVsc2UgaGFwcGVuZWRcIiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy90aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JNb2RlbCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzaG91bGRTdGF5T25QYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdhY2NvdW50LXN1Y2Nlc3MnKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnbGFuZGluZycpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsb2dpbicpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCd3ZWxjb21lLXNwbGFzaCcpO1xuICAgIH1cbn1cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Vycm9yLWludGVyY2VwdG9yL2h0dHAtZXJyb3ItaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXFELFlBQVksRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hILE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUt6RCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQW1CLE1BQWUsRUFBVSxJQUFrQixFQUFVLEdBQW1CLEVBQVUsRUFBaUIsRUFBVSxNQUFxQixFQUFTLEVBQXVCO1FBQWxLLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLE9BQUUsR0FBRixFQUFFLENBQXFCO0lBQUksQ0FBQztJQUUxTCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3hELElBQUksR0FBRyxZQUFZLFlBQVksRUFBRTtnQkFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBQyxHQUFHLENBQUMsQ0FBQTtnQkFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzNELElBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUM7b0JBQ3JDLHlCQUF5QjtpQkFDNUI7YUFDSjtRQUNMLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUMsS0FBSyxDQUFDLENBQUE7WUFDdkMsSUFBSSxVQUFVLEdBQWdCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDL0MsVUFBVSxDQUFDLEdBQUcsR0FBRyxnRkFBZ0YsQ0FBQztZQUNsRyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEQsSUFBSSxjQUFjLEdBQWU7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtnQkFDbkMsR0FBRyxFQUFFLCtFQUErRTtnQkFDcEYsT0FBTyxFQUFFLEVBQUU7YUFDZCxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEUsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFBRTtvQkFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQy9ELElBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyw2QkFBNkIsSUFBSSxNQUFNLEVBQUM7d0JBQzNILElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUU7NkJBQ3BCLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDakIsSUFBRyxHQUFHLENBQUMscUJBQXFCLEVBQUU7Z0NBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7NkJBQy9FO3dCQUFBLENBQUMsQ0FBQyxDQUFDO3FCQUNmO2lCQUNKO3FCQUFNO29CQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUUvRixRQUFRLEtBQUssQ0FBQyxNQUFNLEVBQUU7d0JBQ2xCLEtBQUssQ0FBQzs0QkFDRixVQUFVLENBQUMsR0FBRyxHQUFHLDhFQUE4RSxDQUFDOzRCQUNoRyxNQUFNO3dCQUNWLEtBQUssR0FBRzs0QkFDSixPQUFPO3dCQUNYLEtBQUssR0FBRzs0QkFDSixVQUFVLENBQUMsR0FBRyxHQUFHLDREQUE0RCxDQUFDOzRCQUM5RSxNQUFNO3dCQUNWLEtBQUssR0FBRyxFQUFPLE9BQU87NEJBQ2xCLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDOzRCQUN6QixJQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksaUJBQWlCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUM7Z0NBQ3RHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhEQUE4RCxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dDQUM5RixNQUFNOzZCQUNUO2lDQUFJO2dDQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0IsR0FBRyxFQUFFO29DQUNELElBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSSxjQUFjOzJDQUM1QixVQUFVLENBQUMsR0FBRyxJQUFJLGVBQWU7MkNBQ2pDLFVBQVUsQ0FBQyxHQUFHLElBQUksZUFBZTsyQ0FDakMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWU7MkNBQ3RDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxlQUFlLEVBQUM7d0NBQzFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsc0NBQXNDLENBQUM7cUNBQzNEO29DQUNELElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7b0NBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dDQUN2QyxDQUFDLENBQ0osQ0FBQzs2QkFDTDs0QkFDRCxNQUFNO3dCQUNWLEtBQUssR0FBRyxFQUFNLFdBQVc7NEJBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDOzRCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQzs0QkFDdEMsTUFBTTt3QkFDVixLQUFLLEdBQUcsQ0FBQyxDQUFLLFdBQVc7d0JBQ3pCLEtBQUssR0FBRyxFQUFNLHNCQUFzQjs0QkFDaEMsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7NEJBQ3pCLE1BQU07d0JBQ1YsS0FBSyxHQUFHOzRCQUNKLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7NEJBQ2pDLElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtnQ0FDaEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQ0FDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29DQUNwRCxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUNBQzFDO3FDQUFNLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsRUFBRTtvQ0FDckQsVUFBVSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUM7aUNBQy9CO3FDQUFNO29DQUNILFVBQVUsQ0FBQyxHQUFHLEdBQUcsOENBQThDLENBQUM7aUNBQ25FO2dDQUNELFVBQVUsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO2dDQUMvRCxVQUFVLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQztnQ0FDckUsVUFBVSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUM7NkJBQ2xFO2lDQUFNO2dDQUNILFVBQVUsQ0FBQyxHQUFHLEdBQUcsOENBQThDLENBQUM7NkJBQ25FOzRCQUNELE1BQU07d0JBQ1YsS0FBSyxHQUFHOzRCQUNKLFVBQVUsQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUM7NEJBQ3pDLE1BQU07d0JBQ1YsS0FBSyxHQUFHLENBQUM7d0JBQ1QsS0FBSyxHQUFHOzRCQUNKLFVBQVUsQ0FBQyxHQUFHLEdBQUcsMERBQTBELENBQUM7NEJBQzVFLE1BQU07d0JBQ1YsS0FBSyxHQUFHOzRCQUNKLFVBQVUsQ0FBQyxHQUFHLEdBQUcsaURBQWlELENBQUM7NEJBQ25FLE1BQU07d0JBQ1Y7NEJBQ0ksc0RBQXNEOzRCQUN0RCxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDOzRCQUM5QixJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLElBQUksRUFBQztnQ0FDOUQsY0FBYyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQztnQ0FDNUUsY0FBYyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxXQUFXLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQztnQ0FDNUYsY0FBYyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUM7Z0NBQ3BFLGNBQWMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFBOzZCQUM1RTtpQ0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtnQ0FDckMsaUVBQWlFO2dDQUNqRSxjQUFjLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQzs2QkFDakM7NEJBQ0QsVUFBVSxHQUFHLGNBQWMsQ0FBQzs0QkFDNUI7Ozs7O2lDQUtLOzRCQUNMLE1BQU07cUJBQ2I7aUJBQ0o7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMvRTtZQUNELHlCQUF5QjtZQUN6QixPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO3FGQS9JUSxvQkFBb0I7dUVBQXBCLG9CQUFvQixXQUFwQixvQkFBb0IsbUJBRm5CLE1BQU07O2lGQUVQLG9CQUFvQjtjQUhoQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvcixIdHRwUmVxdWVzdCxIdHRwUmVzcG9uc2UsSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Y2F0Y2hFcnJvciwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JNb2RlbCc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNYWludGVuYW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWludGVuYW5jZS9tYWludGVuYW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIdHRwRXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvcntcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyIDogUm91dGVyLCBwcml2YXRlIHV0aWwgOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGxzIDogTG9naW5TZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHVibGljIG1zIDogTWFpbnRlbmFuY2VTZXJ2aWNlKSB7IH1cblxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxuICAgICAgICAgICAgdGFwKGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSW4gaHR0cCBpbnRlcmNlcHQgdGFwXCIsZXZ0KVxuICAgICAgICAgICAgICAgIGlmIChldnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVGFwIGlzIGFuIGluc3RhbmNlb2YgaHR0cFJlc3BvbnNlXCIscmVxKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ1tIdHRwRXJyb3JJbnRlcmNlcHRvcl0gcmVzcG9uc2UgLT4nLCBldnQpO1xuICAgICAgICAgICAgICAgICAgICBpZihldnQuc3RhdHVzID49IDIwMCAmJiBldnQuc3RhdHVzIDwgMzAwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvciggKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJJbiBodHRwIGludGVyY2VwdFwiLGVycm9yKVxuICAgICAgICAgICAgICAgbGV0IGVycm9yTW9kZWwgOiBFcnJvck1vZGVsID0gbmV3IEVycm9yTW9kZWwoKTtcbiAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgICAgICAgICAgICBlcnJvck1vZGVsLnRpbWVzdGFtcCA9IG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgbGV0IHRlbXBFcnJvck1vZGVsOiBFcnJvck1vZGVsID0ge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcklkOiAnTkEnLFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgbXNnOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSBjaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGlvbiBvciB0cnkgYWdhaW4gbGF0ZXInLFxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiAnJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1tIdHRwRXJyb3JJbnRlcmNlcHRvcl0gRXJyb3Igb2NjdXJlZCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBpZiAoKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkgfHwgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJbSHR0cEVycm9ySW50ZXJjZXB0b3JdIEVycm9yIEV2ZW50XCIsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgaWYoKCFyZXEudXJsLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSB8fCB0aGlzLnV0aWwuaXNQbGF5Zm9ybUNhcGFjaXRvcigpKSAmJiBMaWJDb25zdGFudHMubWFpbnRlbmFuY2VNb2RlRmVhdHVyZUVuYWJsZWQgPT0gJ3RydWUnKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXMuY2hlY2tmb3JNYWludGVuYW5jZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLmlzQXBwVW5kZXJNYWludGVuYW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdtYWludGVuYW5jZScpLnRoZW4oKCkgPT4ge3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgW0h0dHBFcnJvckludGVyY2VwdG9yXSBlcnJvciBzdGF0dXMgOiAke2Vycm9yLnN0YXR1c30gJHtlcnJvci5zdGF0dXNUZXh0fWApO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvci5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdDb25uZWN0aW9uIFByb2JsZW0uIFBsZWFzZSBjaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGlvbiBvciB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1dlIGNvdWxkIG5vdCBwcm9jZXNzIHlvdXIgcmVxdWVzdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nOyAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0MDE6ICAgICAgLy9sb2dpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigoZXJyb3IuZXJyb3IuZXJyb3IgPT0gJ2ludmFsaWRfcmVxdWVzdCcgJiYgZXJyb3IuZXJyb3Iucm9sZXMgPT0gJ1BSRV9BVVRIJykgfHwgdGhpcy5zaG91bGRTdGF5T25QYWdlKCkpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIltIdHRwRXJyb3JJbnRlcmNlcHRvcl0gaW52YWxpZCByZXF1ZXN0LCBzdGF5aW5nIG9uIHNhbWUgcGFnZVwiLCBlcnJvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdChcImxvZ2luXCIpLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZXJyb3JNb2RlbC5tc2cgPT0gJ3VuYXV0aG9yaXplZCcgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWwubXNnID09ICdpbnZhbGlkX3Rva2VuJyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZXJyb3JNb2RlbC5tc2cgPT0gJ3Rva2VuX2V4cGlyZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWxbJ2Vycm9yJ10gPT0gJ2ludmFsaWRfdG9rZW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWxbJ2Vycm9yJ10gPT0gJ3Rva2VuX2V4cGlyZWQnKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnU2Vzc2lvbiBFeHBpcmVkLiBQbGVhc2UgbG9naW4gYWdhaW4uJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5scy5sb2dvdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycm9yTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDAzOiAgICAgLy9mb3JiaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycm9yTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdChcInVuYXV0aG9yaXplZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDA0OiAgICAgLy9Ob3QgRm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDIyOiAgICAgLy9VbnByb2Nlc3NhYmxlIEVudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0Vycm9yNTAwID0gZXJyb3I/LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYXdFcnJvcjUwMCAmJiB0eXBlb2YgcmF3RXJyb3I1MDAgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhY2tlbmRNc2cgPSByYXdFcnJvcjUwMC5tc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGJhY2tlbmRNc2cpICYmIGJhY2tlbmRNc2cubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSBiYWNrZW5kTXNnLmpvaW4oJywgJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJhY2tlbmRNc2cgPT09ICdzdHJpbmcnICYmIGJhY2tlbmRNc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gYmFja2VuZE1zZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLmVycm9ySWQgPSByYXdFcnJvcjUwMC5lcnJvcklkIHx8IGVycm9yTW9kZWwuZXJyb3JJZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC50aW1lc3RhbXAgPSByYXdFcnJvcjUwMC50aW1lc3RhbXAgfHwgZXJyb3JNb2RlbC50aW1lc3RhbXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwuZGV0YWlscyA9IHJhd0Vycm9yNTAwLmRldGFpbHMgfHwgZXJyb3JNb2RlbC5kZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdGZWF0dXJlIG5vdCBhdmFpbGFibGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1MDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnV2VcXCdyZSBoYXZpbmcgdHJvdWJsZSBjb25uZWN0aW5nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1RlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJvck1vZGVsID0gZXJyb3IuZXJyb3IgPyBlcnJvci5lcnJvciA6IGVycm9yTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmF3RXJyb3IgPSBlcnJvcj8uZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhd0Vycm9yICYmIHR5cGVvZiByYXdFcnJvciA9PT0gJ29iamVjdCcgJiYgcmF3RXJyb3IgIT09IG51bGwpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC5tc2cgPSByYXdFcnJvci5tc2cgfHwgcmF3RXJyb3IubWVzc2FnZSB8fCB0ZW1wRXJyb3JNb2RlbC5tc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLmRldGFpbHMgPSByYXdFcnJvci5kZXRhaWxzIHx8IHJhd0Vycm9yLmRlc2NyaXB0aW9uIHx8IHRlbXBFcnJvck1vZGVsLmRldGFpbHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLmVycm9ySWQgPSByYXdFcnJvci5lcnJvcklkIHx8IHRlbXBFcnJvck1vZGVsLmVycm9ySWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLnRpbWVzdGFtcCA9IHJhd0Vycm9yLnRpbWVzdGFtcCB8fCB0ZW1wRXJyb3JNb2RlbC50aW1lc3RhbXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByYXdFcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHNlcnZlciBqdXN0IHNlbnQgYSBzaW1wbGUgdGV4dCBtZXNzYWdlLCB3ZSdsbCB1c2UgdGhhdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEVycm9yTW9kZWwubXNnID0gcmF3RXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwgPSB0ZW1wRXJyb3JNb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlcnJvck1vZGVsID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcklkOiB0eXBlb2YgcmF3RXJyb3IgPT09ICdvYmplY3QnICYmIHJhd0Vycm9yPy5lcnJvcklkID8gcmF3RXJyb3IuZXJyb3JJZCA6ICdOQScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogdHlwZW9mIHJhd0Vycm9yID09PSAnb2JqZWN0JyAmJiByYXdFcnJvcj8udGltZXN0YW1wID8gcmF3RXJyb3IudGltZXN0YW1wIDogbmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnOiB0eXBlb2YgcmF3RXJyb3IgPT09ICdzdHJpbmcnID8gJ0FuIGVycm9yIG9jY3VyZWQgd2hpbGUgcHJvY2Vzc2luZyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJzogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHM6IHR5cGVvZiByYXdFcnJvciA9PT0gJ29iamVjdCcgJiYgcmF3RXJyb3I/LmRldGFpbHMgPyByYXdFcnJvci5kZXRhaWxzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OyAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJbSHR0cEVycm9ySW50ZXJjZXB0b3JdIHNvbWUgdGhpbmcgZWxzZSBoYXBwZW5lZFwiLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL3RoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1vZGVsKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNob3VsZFN0YXlPblBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2FjY291bnQtc3VjY2VzcycpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsYW5kaW5nJykgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2xvZ2luJykgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ3dlbGNvbWUtc3BsYXNoJyk7XG4gICAgfVxufVxuIl19