@resolveio/client-lib-core 1.4.0 → 1.4.1

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.
@@ -131,7 +131,7 @@ export class SocketManagerService {
131
131
  if (!this._runningQueue) {
132
132
  if (this._sendQueue.length) {
133
133
  this._runningQueue = true;
134
- if (this._socket && this._socket.ws && this.socketStatus === WebSocket.OPEN) {
134
+ if (this._socket && this._socket.ws) {
135
135
  let nextSendItem = this._sendQueue[this._sendQueue.length - 1];
136
136
  let sendStatus = this._socket.send(...nextSendItem);
137
137
  if (sendStatus) {
@@ -235,14 +235,7 @@ export class SocketManagerService {
235
235
  }
236
236
  send(...data) {
237
237
  if (data[3] === 'subscription') {
238
- if (this.socketStatus === WebSocket.OPEN) {
239
- this._socket.send(...data);
240
- }
241
- else {
242
- if (!this._sendQueue.filter(a => JSON.stringify(a) === JSON.stringify(data)).length) {
243
- this._sendQueue.splice(0, 0, data);
244
- }
245
- }
238
+ this._socket.send(...data);
246
239
  }
247
240
  else if (data[3] === 'method') {
248
241
  if (this.socketStatus === WebSocket.OPEN) {
@@ -327,9 +320,7 @@ export class SocketManagerService {
327
320
  }
328
321
  }
329
322
  else if (data[3] === 'offline') {
330
- if (this.socketStatus === WebSocket.OPEN) {
331
- this._socket.send(...data);
332
- }
323
+ this._socket.send(...data);
333
324
  }
334
325
  }
335
326
  getStatus() {
@@ -341,4 +332,4 @@ SocketManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
341
332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: SocketManagerService, decorators: [{
342
333
  type: Injectable
343
334
  }], ctorParameters: function () { return [{ type: i1.SocketService }, { type: i2.OfflineManagerService }, { type: i3.AlertService }, { type: i4.Router }]; } });
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBR3pDLE1BQU0sT0FBTyxvQkFBb0I7SUFnQmhDLFlBQW9CLE9BQXNCLEVBQVUsUUFBK0IsRUFBVSxNQUFvQixFQUFVLE9BQWU7UUFBdEgsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFibEksY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQW9DLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUVoQyxZQUFPLEdBQWUsY0FBYSxDQUFDLENBQUM7SUFFaUcsQ0FBQztJQUV2SSxXQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBRU0saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ2hELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUVsRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUU7Z0JBQ3ZDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO2FBQ2xFO2lCQUNJLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxvQkFBb0IsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN6QjtpQkFDSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNuQjtZQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUYsSUFBSSxZQUFZLElBQUksQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN6SCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDN0M7WUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN0RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3BFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBRTVFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTt3QkFDZixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFFNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRTs0QkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUN4RyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDdkU7NkJBQ0k7NEJBQ0osSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO2dDQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7NkJBQzVDO2lDQUNJO2dDQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs2QkFDN0M7eUJBQ0Q7d0JBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUMvQjtpQkFDRDtxQkFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBRTdFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTt3QkFDZixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNqRDtpQkFDRDthQUNEO1FBQ0YsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztnQkFFcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWhDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRW5FLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDbEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUVqQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQzt3QkFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxHQUFHO3dCQUMxQixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsSUFBSSxFQUFFLGtCQUFrQjtxQkFDeEIsQ0FBQyxDQUFDO29CQUVILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUUzQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7d0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsdUJBQXVCLENBQUM7d0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQy9DO3lCQUNJLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFBRTt3QkFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyw0QkFBNEIsQ0FBQzt3QkFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDL0M7eUJBQ0k7d0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDL0M7Z0JBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzdJO2dCQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNwSCxDQUFDLENBQUMsQ0FBQztpQkFDSDtnQkFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDVixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQWMsRUFBRSxFQUFFO1lBQ3pDLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO2dCQUNqQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7YUFDM0M7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQWMsRUFBRSxFQUFFO1lBQ3pDLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO2dCQUNqQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7YUFDM0M7UUFDRixDQUFDLENBQUE7UUFFRCxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7d0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO3dCQUUxQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFOzRCQUM1RSxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUMvRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDOzRCQUVwRCxJQUFJLFVBQVUsRUFBRTtnQ0FDZixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDOzZCQUN0Qjt5QkFDRDt3QkFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztxQkFDM0I7aUJBQ0Q7YUFDRDtRQUNGLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTSxVQUFVLENBQUMsV0FBVyxFQUFFLFNBQVM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxXQUFXO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLElBQUksQ0FBQyxNQUFjLEVBQUUsR0FBRyxVQUFpQjtRQUMvQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzdDLFNBQVMsR0FBRyxPQUFPLENBQUM7WUFDcEIsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxJQUFJLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDO2FBQzlMO2lCQUNJO2dCQUNKLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2QjtRQUNGLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVULElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksT0FBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQ2xHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNsQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsRUFBRSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFFBQVEsRUFBRSxDQUFDO2FBQ1gsQ0FBQyxDQUFDO1NBQ0g7YUFDSTtZQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNsQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsRUFBRSxFQUFFLElBQUk7Z0JBQ1IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsUUFBUSxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7U0FDSDtRQUVELElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ2xILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBRXRMLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsWUFBb0IsRUFBRSxHQUFHLFVBQVU7UUFDbkQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFdEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDaEksWUFBWSxFQUFFLFlBQVk7WUFDMUIsVUFBVSxFQUFFLGNBQWM7WUFDMUIsT0FBTyxFQUFFLFVBQVU7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1FBRTdNLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxZQUFvQixFQUFFLEdBQUcsVUFBVTtRQUM5RCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUV0QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsVUFBVSxFQUFFLGNBQWM7WUFDMUIsT0FBTyxFQUFFLFVBQVU7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUVuRyxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQVMsRUFBRSxZQUFvQixFQUFFLEdBQUcsVUFBVTtRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDNU0sQ0FBQztJQUVPLElBQUksQ0FBQyxHQUFHLElBQVc7UUFDMUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssY0FBYyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQzNCO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQkFDcEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDbkM7YUFDRDtTQUNEO2FBQ0ksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ25DO2FBQ0Q7aUJBQ0k7Z0JBQ0osSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLEVBQUU7b0JBQ2pDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksRUFBRTt3QkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLG9MQUFvTCxDQUFDLENBQUM7cUJBQ3ROO29CQUVELElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFO3dCQUNoRCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsSUFBSTt3QkFDVixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7cUJBQ2hCLENBQUMsQ0FBQztvQkFFSCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXpELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDaEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBRWpCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDL0U7aUJBQ0Q7cUJBQ0ksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxvTEFBb0wsQ0FBQyxDQUFDO29CQUN0TixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDaEQsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsSUFBSSxFQUFFLElBQUk7d0JBQ1YsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO3FCQUNoQixDQUFDLENBQUM7b0JBRUgsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUU7d0JBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDL0M7eUJBQ0k7d0JBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzdEO29CQUVELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDaEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUMvRTtpQkFDRDtxQkFDSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxxQkFBcUIsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLG9MQUFvTCxDQUFDLENBQUM7b0JBQ3ROLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFO3dCQUNoRCxJQUFJLEVBQUUscUJBQXFCO3dCQUMzQixJQUFJLEVBQUUsSUFBSTt3QkFDVixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7cUJBQ2hCLENBQUMsQ0FBQztvQkFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFO3dCQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN0RTt5QkFDSTt3QkFDSixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDN0Q7b0JBRUQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNoQixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQy9FO2lCQUNEO3FCQUNJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixFQUFFO29CQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsb0xBQW9MLENBQUMsQ0FBQztvQkFDdE4sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUU7d0JBQ2hELElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLElBQUksRUFBRSxJQUFJO3dCQUNWLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtxQkFDaEIsQ0FBQyxDQUFDO29CQUVILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUU7d0JBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDL0M7eUJBQ0k7d0JBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzdEO29CQUVELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDaEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUMvRTtpQkFDRDthQUNEO1NBQ0Q7YUFDSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDM0I7U0FDRDtJQUNGLENBQUM7SUFFRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDOztpSEFqWVcsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZlQ2xpZW50U3Vic2NyaXB0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVscy9zdWJzY3JpcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgZGF0ZVJldml2ZXIsIGRlZXBDb3B5IH0gZnJvbSAnLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgT2ZmbGluZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9vZmZsaW5lLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ja2V0TWFuYWdlclNlcnZpY2Uge1xuXHRwcml2YXRlIHNvY2tldFN0YXR1cztcblxuXHRwcml2YXRlIG1lc3NhZ2VJZCA9IDA7XG5cdHByaXZhdGUgX2NiQXJyYXkgPSBbXTtcblx0cHJpdmF0ZSBfc3ViQXJyYXk6IEFjdGl2ZUNsaWVudFN1YnNjcmlwdGlvbk1vZGVsW10gPSBbXTtcblx0cHJpdmF0ZSBfc2VuZFF1ZXVlID0gW107XG5cdHByaXZhdGUgX29mZmxpbmVVcGRhdGVzID0gW107XG5cblx0cHJpdmF0ZSBfcnVubmluZ1F1ZXVlID0gZmFsc2U7XG5cdHByaXZhdGUgaW5pdENvbm5lY3Rpb24gPSBmYWxzZTtcblxuXHRwcml2YXRlIF9jb25uZWN0aW9uRGVsYXlUaW1lb3V0ID0gbnVsbDtcblxuXHRwdWJsaWMgb25lcnJvcjogKCkgPT4gdm9pZCA9IGZ1bmN0aW9uICgpIHt9O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3NvY2tldDogU29ja2V0U2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9hbGVydDogQWxlcnRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcikge31cblxuXHRwdWJsaWMgZ2V0U3ViQXJyYXkoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3N1YkFycmF5O1xuXHR9XG5cblx0cHVibGljIGluaXRTb2NrZXRNYW5hZ2VyKCk6IHZvaWQge1xuXHRcdHRoaXMuX3NvY2tldC5yZWFkeVN0YXRlJC5zdWJzY3JpYmUoc29ja2V0U3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc29ja2V0U3RhdHVzID0gc29ja2V0U3RhdHVzO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG5cdFx0XHRsZXQgcmVzRGF0YSA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSwgZGF0ZVJldml2ZXIpO1xuXG5cdFx0XHRpZiAocmVzRGF0YS5kYXRhID09PSAncmVsb2FkV1NDb21tYW5kJykge1xuXHRcdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgJz9mb3JjZVJlbG9hZD10cnVlJztcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHJlc0RhdGEuZGF0YSA9PT0gJ3JlY29ubmVjdFdTQ29tbWFuZCcpIHtcblx0XHRcdFx0dGhpcy5fc29ja2V0LnJlY29ubmVjdCgpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAocmVzRGF0YS5kYXRhID09PSAnZGlzY29ubmVjdFdTQ29tbWFuZCcpIHtcblx0XHRcdFx0dGhpcy5jbG9zZVNvY2tldCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgb2ZmbGluZUluZGV4ID0gdGhpcy5fb2ZmbGluZVVwZGF0ZXMuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IHJlc0RhdGEubWVzc2FnZUlkKTtcblx0XHRcdGlmIChvZmZsaW5lSW5kZXggPj0gMCkge1xuXHRcdFx0XHR0aGlzLl9vZmZsaW5lLnJlbW92ZURvY3VtZW50KHRoaXMuX29mZmxpbmVVcGRhdGVzW29mZmxpbmVJbmRleF0udHlwZSwgdGhpcy5fb2ZmbGluZVVwZGF0ZXNbb2ZmbGluZUluZGV4XS5pZF9vZmZsaW5lX2RvYyk7XG5cdFx0XHRcdHRoaXMuX29mZmxpbmVVcGRhdGVzLnNwbGljZShvZmZsaW5lSW5kZXgsIDEpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocmVzRGF0YS5kYXRhICE9PSAnQUNLJyAmJiByZXNEYXRhLmRhdGEgIT09ICdOQUNLJykge1xuXHRcdFx0XHRpZiAodGhpcy5fY2JBcnJheS5tYXAoYSA9PiBhLm1lc3NhZ2VJZCkuaW5jbHVkZXMocmVzRGF0YS5tZXNzYWdlSWQpKSB7XHRcblx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLl9jYkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSByZXNEYXRhLm1lc3NhZ2VJZCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5fY2JBcnJheVtpbmRleF0udGltZXJJZCk7XG5cblx0XHRcdFx0XHRcdGlmICh0aGlzLl9jYkFycmF5W2luZGV4XS5jYikge1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5W2luZGV4XS5jYihyZXNEYXRhLmhhc0Vycm9yID8gcmVzRGF0YS5kYXRhIDogbnVsbCwgcmVzRGF0YS5oYXNFcnJvciA/IG51bGwgOiByZXNEYXRhLmRhdGEpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5W2luZGV4XS5yZXNvbHZlRm4ocmVzRGF0YS5oYXNFcnJvciA/IHJlc0RhdGEuZGF0YSA6IG51bGwpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNEYXRhLmhhc0Vycm9yKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0ucmVqZWN0Rm4ocmVzRGF0YS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5W2luZGV4XS5yZXNvbHZlRm4ocmVzRGF0YS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5LnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuX3N1YkFycmF5Lm1hcChhID0+IGEubWVzc2FnZUlkKS5pbmNsdWRlcyhyZXNEYXRhLm1lc3NhZ2VJZCkpIHtcdFxuXHRcdFx0XHRcdGxldCBpbmRleCA9IHRoaXMuX3N1YkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSByZXNEYXRhLm1lc3NhZ2VJZCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0XHRcdHRoaXMuX3N1YkFycmF5W2luZGV4XS5zdWJqZWN0Lm5leHQocmVzRGF0YS5kYXRhKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5fc29ja2V0Lm9ub3BlbiA9IChldmVudDogRXZlbnQpID0+IHtcblx0XHRcdHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5fY29ubmVjdGlvbkRlbGF5VGltZW91dCA9IG51bGw7XG5cblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5zZXRPZmZsaW5lKGZhbHNlKTtcblx0XHRcdFx0XG5cdFx0XHRcdGxldCBjb2xsZWN0aW9uVXBkYXRlcyA9IHRoaXMuX29mZmxpbmUuZmluZCgnY29sbGVjdGlvblVwZGF0ZScsIHt9KTtcblxuXHRcdFx0XHRjb2xsZWN0aW9uVXBkYXRlcy5mb3JFYWNoKHVwZGF0ZSA9PiB7XG5cdFx0XHRcdFx0bGV0IG1lc3NhZ2VJZCA9IHRoaXMubWVzc2FnZUlkKys7XG5cblx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lVXBkYXRlcy5wdXNoKHtcblx0XHRcdFx0XHRcdGlkX29mZmxpbmVfZG9jOiB1cGRhdGUuX2lkLFxuXHRcdFx0XHRcdFx0bWVzc2FnZUlkOiBtZXNzYWdlSWQsXG5cdFx0XHRcdFx0XHR0eXBlOiAnY29sbGVjdGlvblVwZGF0ZSdcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzJdID0gbWVzc2FnZUlkO1xuXG5cdFx0XHRcdFx0aWYgKHVwZGF0ZS50eXBlID09PSAndXBkYXRlRG9jdW1lbnQnKSB7XG5cdFx0XHRcdFx0XHR1cGRhdGUuZGF0YVs0XSA9ICd1cGRhdGVEb2N1bWVudE9mZmxpbmUnO1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbMF0gPSAnT2ZmbGluZSAtICcgKyB1cGRhdGUuZGF0YVswXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSBpZiAodXBkYXRlLnR5cGUgPT09ICd1cGRhdGVEb2N1bWVudFByb3BzJykge1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbNF0gPSAndXBkYXRlRG9jdW1lbnRQcm9wc09mZmxpbmUnO1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbMF0gPSAnT2ZmbGluZSAtICcgKyB1cGRhdGUuZGF0YVswXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHR1cGRhdGUuZGF0YVswXSA9ICdPZmZsaW5lIC0gJyArIHVwZGF0ZS5kYXRhWzBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0aWYgKGNvbGxlY3Rpb25VcGRhdGVzLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuc2VuZCgnT2ZmbGluZSBVcGRhdGVzJywgbmV3IERhdGUoKSwgdGhpcy5tZXNzYWdlSWQrKywgJ29mZmxpbmUnLCBjb2xsZWN0aW9uVXBkYXRlcy5zb3J0KChhLCBiKSA9PiBhLmRhdGUuZ2V0VGltZSgpIC0gYi5kYXRlLmdldFRpbWUoKSkpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHRoaXMuaW5pdENvbm5lY3Rpb24pIHtcblx0XHRcdFx0XHR0aGlzLl9zdWJBcnJheS5mb3JFYWNoKHN1YiA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnNlbmQoc3ViLm1lc3NhZ2VSb3V0ZSwgbmV3IERhdGUoKSwgc3ViLm1lc3NhZ2VJZCwgJ3N1YnNjcmlwdGlvbicsICdzdWInLCBzdWIuc3Vic2NyaXB0aW9uLCAuLi5zdWIucGFyYW1ldGVycyk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLmluaXRDb25uZWN0aW9uID0gdHJ1ZTtcblx0XHRcdH0sIDEwMDApO1xuXHRcdH07XG5cblx0XHR0aGlzLl9zb2NrZXQub25lcnJvciA9IChldjogRXJyb3JFdmVudCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQpIHtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc29sZS5sb2cobmV3IERhdGUoKSwgJ1NPQ0tFVCBFUlJPUicsIGV2KTtcblx0XHRcdHRoaXMub25lcnJvcigpO1xuXHRcdH07XG5cblx0XHR0aGlzLl9zb2NrZXQub25jbG9zZSA9IChldjogQ2xvc2VFdmVudCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQpIHtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmluaXRDb25uZWN0aW9uKSB7XG5cdFx0XHRcdGlmICghdGhpcy5fcnVubmluZ1F1ZXVlKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX3NlbmRRdWV1ZS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3J1bm5pbmdRdWV1ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGlmICh0aGlzLl9zb2NrZXQgJiYgdGhpcy5fc29ja2V0LndzICYmIHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1x0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0bGV0IG5leHRTZW5kSXRlbSA9IHRoaXMuX3NlbmRRdWV1ZVt0aGlzLl9zZW5kUXVldWUubGVuZ3RoIC0gMV07XG5cdFx0XHRcdFx0XHRcdGxldCBzZW5kU3RhdHVzID0gdGhpcy5fc29ja2V0LnNlbmQoLi4ubmV4dFNlbmRJdGVtKTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoc2VuZFN0YXR1cykge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX3NlbmRRdWV1ZS5wb3AoKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR0aGlzLl9ydW5uaW5nUXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCAyNSk7XG5cdH1cblxuXHRwdWJsaWMgb3BlblNvY2tldChlbnZpcm9ubWVudCwgcHJvdG9jb2xzKSB7XG5cdFx0dGhpcy5fc29ja2V0Lm9wZW5Tb2NrZXQoZW52aXJvbm1lbnQsIHByb3RvY29scyk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VTb2NrZXQoKSB7XG5cdFx0dGhpcy5fc29ja2V0LmNsb3NlKCk7XG5cdH1cblxuXHRwdWJsaWMgY2FsbChtZXRob2Q6IHN0cmluZywgLi4ucGFyYW1ldGVyczogYW55W10pIHtcblx0XHRsZXQgcmVzb2x2ZUZuID0gbnVsbDtcblx0XHRsZXQgcmVqZWN0Rm4gPSBudWxsO1xuXG5cdFx0bGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRyZXNvbHZlRm4gPSByZXNvbHZlO1xuXHRcdFx0cmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdGxldCB0aW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IG1lc3NhZ2VJZClbMF0pIHtcblx0XHRcdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnbWV0aG9kUmVzcG9uc2UnLCBtZXRob2QsIC4uLnBhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGltZXJJZCk7XG5cdFx0XHR9XG5cdFx0fSwgNTAwMCk7XG5cblx0XHRpZiAocGFyYW1ldGVyc1twYXJhbWV0ZXJzLmxlbmd0aCAtIDFdICYmIHR5cGVvZihwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0pID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHR0aGlzLl9jYkFycmF5LnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0Y2I6IHBhcmFtZXRlcnMucG9wKCksXG5cdFx0XHRcdHJlc29sdmVGbjogcmVzb2x2ZUZuLFxuXHRcdFx0XHRyZWplY3RGbjogcmVqZWN0Rm4sXG5cdFx0XHRcdHRpbWVySWQ6IHRpbWVySWQsXG5cdFx0XHRcdHJldHJ5Q250OiAwXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLl9jYkFycmF5LnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0Y2I6IG51bGwsXG5cdFx0XHRcdHJlc29sdmVGbjogcmVzb2x2ZUZuLFxuXHRcdFx0XHRyZWplY3RGbjogcmVqZWN0Rm4sXG5cdFx0XHRcdHRpbWVySWQ6IHRpbWVySWQsXG5cdFx0XHRcdHJldHJ5Q250OiAwXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRsZXQgY250ID0gcGFyYW1ldGVycy5sZW5ndGg7XG5cdFx0d2hpbGUgKChwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gPT09IHVuZGVmaW5lZCB8fCBwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gPT09IG51bGwpICYmIGNudCA+IDApIHtcblx0XHRcdHBhcmFtZXRlcnMucG9wKCk7XG5cdFx0XHRjbnQgPSBwYXJhbWV0ZXJzLmxlbmd0aDtcblx0XHR9XG5cblx0XHR0aGlzLnNlbmQoKHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMoJz8nKSA/IHRoaXMuX3JvdXRlci51cmwuc3Vic3RyaW5nKDAsIHRoaXMuX3JvdXRlci51cmwuaW5kZXhPZignPycpKSA6IHRoaXMuX3JvdXRlci51cmwpLCBuZXcgRGF0ZSgpLCBtZXNzYWdlSWQsICdtZXRob2QnLCBtZXRob2QsIC4uLnBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIHByb21pc2U7XG5cdH1cblxuXHRwdWJsaWMgc3Vic2NyaWJlKHN1YnNjcmlwdGlvbjogc3RyaW5nLCAuLi5wYXJhbWV0ZXJzKSB7XG5cdFx0Y29uc3QgY29weVBhcmFtZXRlcnMgPSBkZWVwQ29weShwYXJhbWV0ZXJzKTtcblx0XHRjb25zdCBuZXdTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG5cdFx0bGV0IG1lc3NhZ2VJZCA9IHRoaXMubWVzc2FnZUlkKys7XG5cblx0XHR0aGlzLl9zdWJBcnJheS5wdXNoKHtcblx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0bWVzc2FnZVJvdXRlOiAodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksXG5cdFx0XHRzdWJzY3JpcHRpb246IHN1YnNjcmlwdGlvbixcblx0XHRcdHBhcmFtZXRlcnM6IGNvcHlQYXJhbWV0ZXJzLFxuXHRcdFx0c3ViamVjdDogbmV3U3ViamVjdFxuXHRcdH0pO1xuXG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZSA9IG5ld1N1YmplY3QucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG5cdFx0XHR0aGlzLnVuc3Vic2NyaWJlKG1lc3NhZ2VJZCwgc3Vic2NyaXB0aW9uLCAuLi5jb3B5UGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLl9zdWJBcnJheS5zcGxpY2UodGhpcy5fc3ViQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluZGV4T2YobWVzc2FnZUlkKSwgMSk7XG5cdFx0fSkpO1xuXG5cdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblxuXHRwdWJsaWMgc3Vic2NyaWJlQnlwYXNzUm91dGUoc3Vic2NyaXB0aW9uOiBzdHJpbmcsIC4uLnBhcmFtZXRlcnMpIHtcblx0XHRjb25zdCBjb3B5UGFyYW1ldGVycyA9IGRlZXBDb3B5KHBhcmFtZXRlcnMpO1xuXHRcdGNvbnN0IG5ld1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdHRoaXMuX3N1YkFycmF5LnB1c2goe1xuXHRcdFx0bWVzc2FnZUlkOiBtZXNzYWdlSWQsXG5cdFx0XHRtZXNzYWdlUm91dGU6ICdCeXBhc3MnLFxuXHRcdFx0c3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb24sXG5cdFx0XHRwYXJhbWV0ZXJzOiBjb3B5UGFyYW1ldGVycyxcblx0XHRcdHN1YmplY3Q6IG5ld1N1YmplY3Rcblx0XHR9KTtcblxuXHRcdGNvbnN0IG9ic2VydmFibGUgPSBuZXdTdWJqZWN0LnBpcGUoZmluYWxpemUoKCkgPT4ge1xuXHRcdFx0dGhpcy51bnN1YnNjcmliZShtZXNzYWdlSWQsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXHRcdFx0dGhpcy5fc3ViQXJyYXkuc3BsaWNlKHRoaXMuX3N1YkFycmF5Lm1hcChhID0+IGEubWVzc2FnZUlkKS5pbmRleE9mKG1lc3NhZ2VJZCksIDEpO1xuXHRcdH0pKTtcblxuXHRcdHRoaXMuc2VuZCgnQnlwYXNzJywgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblxuXHRwdWJsaWMgdW5zdWJzY3JpYmUobWVzc2FnZUlkLCBzdWJzY3JpcHRpb246IHN0cmluZywgLi4ucGFyYW1ldGVycykge1xuXHRcdHRoaXMuc2VuZCgodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksIG5ldyBEYXRlKCksIG1lc3NhZ2VJZCwgJ3N1YnNjcmlwdGlvbicsICd1bnN1YicsIHN1YnNjcmlwdGlvbiwgLi4ucGFyYW1ldGVycyk7XG5cdH1cblx0XG5cdHByaXZhdGUgc2VuZCguLi5kYXRhOiBhbnlbXSkge1xuXHRcdGlmIChkYXRhWzNdID09PSAnc3Vic2NyaXB0aW9uJykge1xuXHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHR0aGlzLl9zb2NrZXQuc2VuZCguLi5kYXRhKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAoIXRoaXMuX3NlbmRRdWV1ZS5maWx0ZXIoYSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoZGF0YSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuX3NlbmRRdWV1ZS5zcGxpY2UoMCwgMCwgZGF0YSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSBpZiAoZGF0YVszXSA9PT0gJ21ldGhvZCcpIHtcblx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9zZW5kUXVldWUuZmlsdGVyKGEgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGRhdGEpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLl9zZW5kUXVldWUuc3BsaWNlKDAsIDAsIGRhdGEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKGRhdGFbNF0gPT09ICdpbnNlcnREb2N1bWVudCcpIHtcblx0XHRcdFx0XHRpZiAoZGF0YVs1XSAhPT0gJ2RyaXZlci1ncHMnKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnd2FybmluZycsICdUaGlzIGluc2VydCBjb21tYW5kIGhhcyBub3QgdGFrZW4gcGxhY2Ugb24gdGhlIHNlcnZlciB5ZXQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc3luYyB1cCBuZXh0IHRpbWUgeW91IGFyZSBvbmxpbmUgYXMgbG9uZyBhcyB5b3UgZG8gbm90IGNsZWFyIHlvdXIgY2FjaGUhJyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudCgnY29sbGVjdGlvblVwZGF0ZScsIHtcblx0XHRcdFx0XHRcdHR5cGU6ICdpbnNlcnQnLFxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGxldCByZXMgPSB0aGlzLl9vZmZsaW5lLmluc2VydERvY3VtZW50KGRhdGFbNV0sIGRhdGFbNl0pO1xuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCByZXMpO1xuXG5cdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5LnNwbGljZSh0aGlzLl9jYkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKSwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGRhdGFbNF0gPT09ICd1cGRhdGVEb2N1bWVudCcpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnd2FybmluZycsICdUaGlzIHVwZGF0ZSBjb21tYW5kIGhhcyBub3QgdGFrZW4gcGxhY2Ugb24gdGhlIHNlcnZlciB5ZXQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc3luYyB1cCBuZXh0IHRpbWUgeW91IGFyZSBvbmxpbmUgYXMgbG9uZyBhcyB5b3UgZG8gbm90IGNsZWFyIHlvdXIgY2FjaGUhJyk7XG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudCgnY29sbGVjdGlvblVwZGF0ZScsIHtcblx0XHRcdFx0XHRcdHR5cGU6ICd1cGRhdGVEb2N1bWVudCcsXG5cdFx0XHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRcdFx0ZGF0ZTogbmV3IERhdGUoKVxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuX29mZmxpbmUuZmluZE9uZShkYXRhWzVdLCB7X2lkOiBkYXRhWzZdLl9pZH0pKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnVwZGF0ZURvY3VtZW50KGRhdGFbNV0sIGRhdGFbNl0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdDb3VsZCBub3QgZmluZCBPZmZsaW5lIGRhdGEnLCBkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsZXQgY2IgPSB0aGlzLl9jYkFycmF5LmZpbHRlcihhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKVswXTtcblx0XHRcdFx0XHRpZiAoY2IgJiYgY2IuY2IpIHtcblx0XHRcdFx0XHRcdGNiLmNiKG51bGwsIDEpO1xuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UodGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSksIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChkYXRhWzRdID09PSAndXBkYXRlRG9jdW1lbnRQcm9wcycpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnd2FybmluZycsICdUaGlzIHVwZGF0ZSBjb21tYW5kIGhhcyBub3QgdGFrZW4gcGxhY2Ugb24gdGhlIHNlcnZlciB5ZXQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc3luYyB1cCBuZXh0IHRpbWUgeW91IGFyZSBvbmxpbmUgYXMgbG9uZyBhcyB5b3UgZG8gbm90IGNsZWFyIHlvdXIgY2FjaGUhJyk7XG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudCgnY29sbGVjdGlvblVwZGF0ZScsIHtcblx0XHRcdFx0XHRcdHR5cGU6ICd1cGRhdGVEb2N1bWVudFByb3BzJyxcblx0XHRcdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdFx0XHRkYXRlOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5fb2ZmbGluZS5maW5kT25lKGRhdGFbNV0sIHtfaWQ6IGRhdGFbNl19KSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS51cGRhdGVEb2N1bWVudFByb3BzKGRhdGFbNV0sIGRhdGFbNl0sIGRhdGFbN10sIGRhdGFbOF0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdDb3VsZCBub3QgZmluZCBPZmZsaW5lIGRhdGEnLCBkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsZXQgY2IgPSB0aGlzLl9jYkFycmF5LmZpbHRlcihhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKVswXTtcblx0XHRcdFx0XHRpZiAoY2IgJiYgY2IuY2IpIHtcblx0XHRcdFx0XHRcdGNiLmNiKG51bGwsIDEpO1xuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UodGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSksIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChkYXRhWzRdID09PSAncmVtb3ZlRG9jdW1lbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyByZW1vdmUgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmUuaW5zZXJ0RG9jdW1lbnQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7XG5cdFx0XHRcdFx0XHR0eXBlOiAncmVtb3ZlRG9jdW1lbnQnLFxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9vZmZsaW5lLmZpbmRPbmUoZGF0YVs1XSwge19pZDogZGF0YVs2XX0pKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnJlbW92ZURvY3VtZW50KGRhdGFbNV0sIGRhdGFbNl0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdDb3VsZCBub3QgZmluZCBPZmZsaW5lIGRhdGEnLCBkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsZXQgY2IgPSB0aGlzLl9jYkFycmF5LmZpbHRlcihhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKVswXTtcblx0XHRcdFx0XHRpZiAoY2IgJiYgY2IuY2IpIHtcblx0XHRcdFx0XHRcdGNiLmNiKG51bGwsIDEpO1xuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UodGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSksIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRlbHNlIGlmIChkYXRhWzNdID09PSAnb2ZmbGluZScpIHtcblx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0dGhpcy5fc29ja2V0LnNlbmQoLi4uZGF0YSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Z2V0U3RhdHVzKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb2NrZXQucmVhZHlTdGF0ZSQ7XG5cdH1cbn1cbiJdfQ==
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBR3pDLE1BQU0sT0FBTyxvQkFBb0I7SUFnQmhDLFlBQW9CLE9BQXNCLEVBQVUsUUFBK0IsRUFBVSxNQUFvQixFQUFVLE9BQWU7UUFBdEgsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFibEksY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQW9DLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLDRCQUF1QixHQUFHLElBQUks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LEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQy9ELElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ2hCLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDL0U7aUJBQ0Q7YUFDRDtTQUNEO2FBQ0ksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDRixDQUFDO0lBRUQsU0FBUztRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDakMsQ0FBQzs7aUhBeFhXLG9CQUFvQjtxSEFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi9zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGl2ZUNsaWVudFN1YnNjcmlwdGlvbk1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvc3Vic2NyaXB0aW9uLm1vZGVsJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyLCBkZWVwQ29weSB9IGZyb20gJy4vdXRpbC9jb21tb24uaGVscGVyJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vb2ZmbGluZS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXRzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNvY2tldE1hbmFnZXJTZXJ2aWNlIHtcblx0cHJpdmF0ZSBzb2NrZXRTdGF0dXM7XG5cblx0cHJpdmF0ZSBtZXNzYWdlSWQgPSAwO1xuXHRwcml2YXRlIF9jYkFycmF5ID0gW107XG5cdHByaXZhdGUgX3N1YkFycmF5OiBBY3RpdmVDbGllbnRTdWJzY3JpcHRpb25Nb2RlbFtdID0gW107XG5cdHByaXZhdGUgX3NlbmRRdWV1ZSA9IFtdO1xuXHRwcml2YXRlIF9vZmZsaW5lVXBkYXRlcyA9IFtdO1xuXG5cdHByaXZhdGUgX3J1bm5pbmdRdWV1ZSA9IGZhbHNlO1xuXHRwcml2YXRlIGluaXRDb25uZWN0aW9uID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBfY29ubmVjdGlvbkRlbGF5VGltZW91dCA9IG51bGw7XG5cblx0cHVibGljIG9uZXJyb3I6ICgpID0+IHZvaWQgPSBmdW5jdGlvbiAoKSB7fTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zb2NrZXQ6IFNvY2tldFNlcnZpY2UsIHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSwgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIpIHt9XG5cblx0cHVibGljIGdldFN1YkFycmF5KCkge1xuXHRcdHJldHVybiB0aGlzLl9zdWJBcnJheTtcblx0fVxuXG5cdHB1YmxpYyBpbml0U29ja2V0TWFuYWdlcigpOiB2b2lkIHtcblx0XHR0aGlzLl9zb2NrZXQucmVhZHlTdGF0ZSQuc3Vic2NyaWJlKHNvY2tldFN0YXR1cyA9PiB7XG5cdFx0XHR0aGlzLnNvY2tldFN0YXR1cyA9IHNvY2tldFN0YXR1cztcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NvY2tldC5vbm1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuXHRcdFx0bGV0IHJlc0RhdGEgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEsIGRhdGVSZXZpdmVyKTtcblxuXHRcdFx0aWYgKHJlc0RhdGEuZGF0YSA9PT0gJ3JlbG9hZFdTQ29tbWFuZCcpIHtcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArICc/Zm9yY2VSZWxvYWQ9dHJ1ZSc7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmIChyZXNEYXRhLmRhdGEgPT09ICdyZWNvbm5lY3RXU0NvbW1hbmQnKSB7XG5cdFx0XHRcdHRoaXMuX3NvY2tldC5yZWNvbm5lY3QoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHJlc0RhdGEuZGF0YSA9PT0gJ2Rpc2Nvbm5lY3RXU0NvbW1hbmQnKSB7XG5cdFx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IG9mZmxpbmVJbmRleCA9IHRoaXMuX29mZmxpbmVVcGRhdGVzLmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSByZXNEYXRhLm1lc3NhZ2VJZCk7XG5cdFx0XHRpZiAob2ZmbGluZUluZGV4ID49IDApIHtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5yZW1vdmVEb2N1bWVudCh0aGlzLl9vZmZsaW5lVXBkYXRlc1tvZmZsaW5lSW5kZXhdLnR5cGUsIHRoaXMuX29mZmxpbmVVcGRhdGVzW29mZmxpbmVJbmRleF0uaWRfb2ZmbGluZV9kb2MpO1xuXHRcdFx0XHR0aGlzLl9vZmZsaW5lVXBkYXRlcy5zcGxpY2Uob2ZmbGluZUluZGV4LCAxKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHJlc0RhdGEuZGF0YSAhPT0gJ0FDSycgJiYgcmVzRGF0YS5kYXRhICE9PSAnTkFDSycpIHtcblx0XHRcdFx0aWYgKHRoaXMuX2NiQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluY2x1ZGVzKHJlc0RhdGEubWVzc2FnZUlkKSkge1x0XG5cdFx0XHRcdFx0bGV0IGluZGV4ID0gdGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gcmVzRGF0YS5tZXNzYWdlSWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0XHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMuX2NiQXJyYXlbaW5kZXhdLnRpbWVySWQpO1xuXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5fY2JBcnJheVtpbmRleF0uY2IpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0uY2IocmVzRGF0YS5oYXNFcnJvciA/IHJlc0RhdGEuZGF0YSA6IG51bGwsIHJlc0RhdGEuaGFzRXJyb3IgPyBudWxsIDogcmVzRGF0YS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0ucmVzb2x2ZUZuKHJlc0RhdGEuaGFzRXJyb3IgPyByZXNEYXRhLmRhdGEgOiBudWxsKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRpZiAocmVzRGF0YS5oYXNFcnJvcikge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXlbaW5kZXhdLnJlamVjdEZuKHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0ucmVzb2x2ZUZuKHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLl9zdWJBcnJheS5tYXAoYSA9PiBhLm1lc3NhZ2VJZCkuaW5jbHVkZXMocmVzRGF0YS5tZXNzYWdlSWQpKSB7XHRcblx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLl9zdWJBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gcmVzRGF0YS5tZXNzYWdlSWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zdWJBcnJheVtpbmRleF0uc3ViamVjdC5uZXh0KHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMuX3NvY2tldC5vbm9wZW4gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG5cdFx0XHR0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQgPSBudWxsO1xuXG5cdFx0XHRcdHRoaXMuX29mZmxpbmUuc2V0T2ZmbGluZShmYWxzZSk7XG5cdFx0XHRcdFxuXHRcdFx0XHRsZXQgY29sbGVjdGlvblVwZGF0ZXMgPSB0aGlzLl9vZmZsaW5lLmZpbmQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7fSk7XG5cblx0XHRcdFx0Y29sbGVjdGlvblVwZGF0ZXMuZm9yRWFjaCh1cGRhdGUgPT4ge1xuXHRcdFx0XHRcdGxldCBtZXNzYWdlSWQgPSB0aGlzLm1lc3NhZ2VJZCsrO1xuXG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZVVwZGF0ZXMucHVzaCh7XG5cdFx0XHRcdFx0XHRpZF9vZmZsaW5lX2RvYzogdXBkYXRlLl9pZCxcblx0XHRcdFx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0XHRcdFx0dHlwZTogJ2NvbGxlY3Rpb25VcGRhdGUnXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHR1cGRhdGUuZGF0YVsyXSA9IG1lc3NhZ2VJZDtcblxuXHRcdFx0XHRcdGlmICh1cGRhdGUudHlwZSA9PT0gJ3VwZGF0ZURvY3VtZW50Jykge1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbNF0gPSAndXBkYXRlRG9jdW1lbnRPZmZsaW5lJztcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzBdID0gJ09mZmxpbmUgLSAnICsgdXBkYXRlLmRhdGFbMF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2UgaWYgKHVwZGF0ZS50eXBlID09PSAndXBkYXRlRG9jdW1lbnRQcm9wcycpIHtcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzRdID0gJ3VwZGF0ZURvY3VtZW50UHJvcHNPZmZsaW5lJztcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzBdID0gJ09mZmxpbmUgLSAnICsgdXBkYXRlLmRhdGFbMF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbMF0gPSAnT2ZmbGluZSAtICcgKyB1cGRhdGUuZGF0YVswXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGlmIChjb2xsZWN0aW9uVXBkYXRlcy5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLnNlbmQoJ09mZmxpbmUgVXBkYXRlcycsIG5ldyBEYXRlKCksIHRoaXMubWVzc2FnZUlkKyssICdvZmZsaW5lJywgY29sbGVjdGlvblVwZGF0ZXMuc29ydCgoYSwgYikgPT4gYS5kYXRlLmdldFRpbWUoKSAtIGIuZGF0ZS5nZXRUaW1lKCkpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLmluaXRDb25uZWN0aW9uKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3ViQXJyYXkuZm9yRWFjaChzdWIgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5zZW5kKHN1Yi5tZXNzYWdlUm91dGUsIG5ldyBEYXRlKCksIHN1Yi5tZXNzYWdlSWQsICdzdWJzY3JpcHRpb24nLCAnc3ViJywgc3ViLnN1YnNjcmlwdGlvbiwgLi4uc3ViLnBhcmFtZXRlcnMpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5pbml0Q29ubmVjdGlvbiA9IHRydWU7XG5cdFx0XHR9LCAxMDAwKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fc29ja2V0Lm9uZXJyb3IgPSAoZXY6IEVycm9yRXZlbnQpID0+IHtcblx0XHRcdGlmICh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KTtcblx0XHRcdH1cblx0XHRcdGNvbnNvbGUubG9nKG5ldyBEYXRlKCksICdTT0NLRVQgRVJST1InLCBldik7XG5cdFx0XHR0aGlzLm9uZXJyb3IoKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fc29ja2V0Lm9uY2xvc2UgPSAoZXY6IENsb3NlRXZlbnQpID0+IHtcblx0XHRcdGlmICh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pbml0Q29ubmVjdGlvbikge1xuXHRcdFx0XHRpZiAoIXRoaXMuX3J1bm5pbmdRdWV1ZSkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9zZW5kUXVldWUubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9ydW5uaW5nUXVldWUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRpZiAodGhpcy5fc29ja2V0ICYmIHRoaXMuX3NvY2tldC53cykge1x0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0bGV0IG5leHRTZW5kSXRlbSA9IHRoaXMuX3NlbmRRdWV1ZVt0aGlzLl9zZW5kUXVldWUubGVuZ3RoIC0gMV07XG5cdFx0XHRcdFx0XHRcdGxldCBzZW5kU3RhdHVzID0gdGhpcy5fc29ja2V0LnNlbmQoLi4ubmV4dFNlbmRJdGVtKTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoc2VuZFN0YXR1cykge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX3NlbmRRdWV1ZS5wb3AoKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR0aGlzLl9ydW5uaW5nUXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCAyNSk7XG5cdH1cblxuXHRwdWJsaWMgb3BlblNvY2tldChlbnZpcm9ubWVudCwgcHJvdG9jb2xzKSB7XG5cdFx0dGhpcy5fc29ja2V0Lm9wZW5Tb2NrZXQoZW52aXJvbm1lbnQsIHByb3RvY29scyk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VTb2NrZXQoKSB7XG5cdFx0dGhpcy5fc29ja2V0LmNsb3NlKCk7XG5cdH1cblxuXHRwdWJsaWMgY2FsbChtZXRob2Q6IHN0cmluZywgLi4ucGFyYW1ldGVyczogYW55W10pIHtcblx0XHRsZXQgcmVzb2x2ZUZuID0gbnVsbDtcblx0XHRsZXQgcmVqZWN0Rm4gPSBudWxsO1xuXG5cdFx0bGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRyZXNvbHZlRm4gPSByZXNvbHZlO1xuXHRcdFx0cmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdGxldCB0aW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IG1lc3NhZ2VJZClbMF0pIHtcblx0XHRcdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnbWV0aG9kUmVzcG9uc2UnLCBtZXRob2QsIC4uLnBhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGltZXJJZCk7XG5cdFx0XHR9XG5cdFx0fSwgNTAwMCk7XG5cblx0XHRpZiAocGFyYW1ldGVyc1twYXJhbWV0ZXJzLmxlbmd0aCAtIDFdICYmIHR5cGVvZihwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0pID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHR0aGlzLl9jYkFycmF5LnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0Y2I6IHBhcmFtZXRlcnMucG9wKCksXG5cdFx0XHRcdHJlc29sdmVGbjogcmVzb2x2ZUZuLFxuXHRcdFx0XHRyZWplY3RGbjogcmVqZWN0Rm4sXG5cdFx0XHRcdHRpbWVySWQ6IHRpbWVySWQsXG5cdFx0XHRcdHJldHJ5Q250OiAwXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLl9jYkFycmF5LnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0Y2I6IG51bGwsXG5cdFx0XHRcdHJlc29sdmVGbjogcmVzb2x2ZUZuLFxuXHRcdFx0XHRyZWplY3RGbjogcmVqZWN0Rm4sXG5cdFx0XHRcdHRpbWVySWQ6IHRpbWVySWQsXG5cdFx0XHRcdHJldHJ5Q250OiAwXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRsZXQgY250ID0gcGFyYW1ldGVycy5sZW5ndGg7XG5cdFx0d2hpbGUgKChwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gPT09IHVuZGVmaW5lZCB8fCBwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gPT09IG51bGwpICYmIGNudCA+IDApIHtcblx0XHRcdHBhcmFtZXRlcnMucG9wKCk7XG5cdFx0XHRjbnQgPSBwYXJhbWV0ZXJzLmxlbmd0aDtcblx0XHR9XG5cblx0XHR0aGlzLnNlbmQoKHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMoJz8nKSA/IHRoaXMuX3JvdXRlci51cmwuc3Vic3RyaW5nKDAsIHRoaXMuX3JvdXRlci51cmwuaW5kZXhPZignPycpKSA6IHRoaXMuX3JvdXRlci51cmwpLCBuZXcgRGF0ZSgpLCBtZXNzYWdlSWQsICdtZXRob2QnLCBtZXRob2QsIC4uLnBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIHByb21pc2U7XG5cdH1cblxuXHRwdWJsaWMgc3Vic2NyaWJlKHN1YnNjcmlwdGlvbjogc3RyaW5nLCAuLi5wYXJhbWV0ZXJzKSB7XG5cdFx0Y29uc3QgY29weVBhcmFtZXRlcnMgPSBkZWVwQ29weShwYXJhbWV0ZXJzKTtcblx0XHRjb25zdCBuZXdTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG5cdFx0bGV0IG1lc3NhZ2VJZCA9IHRoaXMubWVzc2FnZUlkKys7XG5cblx0XHR0aGlzLl9zdWJBcnJheS5wdXNoKHtcblx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0bWVzc2FnZVJvdXRlOiAodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksXG5cdFx0XHRzdWJzY3JpcHRpb246IHN1YnNjcmlwdGlvbixcblx0XHRcdHBhcmFtZXRlcnM6IGNvcHlQYXJhbWV0ZXJzLFxuXHRcdFx0c3ViamVjdDogbmV3U3ViamVjdFxuXHRcdH0pO1xuXG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZSA9IG5ld1N1YmplY3QucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG5cdFx0XHR0aGlzLnVuc3Vic2NyaWJlKG1lc3NhZ2VJZCwgc3Vic2NyaXB0aW9uLCAuLi5jb3B5UGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLl9zdWJBcnJheS5zcGxpY2UodGhpcy5fc3ViQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluZGV4T2YobWVzc2FnZUlkKSwgMSk7XG5cdFx0fSkpO1xuXG5cdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblxuXHRwdWJsaWMgc3Vic2NyaWJlQnlwYXNzUm91dGUoc3Vic2NyaXB0aW9uOiBzdHJpbmcsIC4uLnBhcmFtZXRlcnMpIHtcblx0XHRjb25zdCBjb3B5UGFyYW1ldGVycyA9IGRlZXBDb3B5KHBhcmFtZXRlcnMpO1xuXHRcdGNvbnN0IG5ld1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdHRoaXMuX3N1YkFycmF5LnB1c2goe1xuXHRcdFx0bWVzc2FnZUlkOiBtZXNzYWdlSWQsXG5cdFx0XHRtZXNzYWdlUm91dGU6ICdCeXBhc3MnLFxuXHRcdFx0c3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb24sXG5cdFx0XHRwYXJhbWV0ZXJzOiBjb3B5UGFyYW1ldGVycyxcblx0XHRcdHN1YmplY3Q6IG5ld1N1YmplY3Rcblx0XHR9KTtcblxuXHRcdGNvbnN0IG9ic2VydmFibGUgPSBuZXdTdWJqZWN0LnBpcGUoZmluYWxpemUoKCkgPT4ge1xuXHRcdFx0dGhpcy51bnN1YnNjcmliZShtZXNzYWdlSWQsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXHRcdFx0dGhpcy5fc3ViQXJyYXkuc3BsaWNlKHRoaXMuX3N1YkFycmF5Lm1hcChhID0+IGEubWVzc2FnZUlkKS5pbmRleE9mKG1lc3NhZ2VJZCksIDEpO1xuXHRcdH0pKTtcblxuXHRcdHRoaXMuc2VuZCgnQnlwYXNzJywgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblxuXHRwdWJsaWMgdW5zdWJzY3JpYmUobWVzc2FnZUlkLCBzdWJzY3JpcHRpb246IHN0cmluZywgLi4ucGFyYW1ldGVycykge1xuXHRcdHRoaXMuc2VuZCgodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksIG5ldyBEYXRlKCksIG1lc3NhZ2VJZCwgJ3N1YnNjcmlwdGlvbicsICd1bnN1YicsIHN1YnNjcmlwdGlvbiwgLi4ucGFyYW1ldGVycyk7XG5cdH1cblx0XG5cdHByaXZhdGUgc2VuZCguLi5kYXRhOiBhbnlbXSkge1xuXHRcdGlmIChkYXRhWzNdID09PSAnc3Vic2NyaXB0aW9uJykge1xuXHRcdFx0dGhpcy5fc29ja2V0LnNlbmQoLi4uZGF0YSk7XG5cdFx0fVxuXHRcdGVsc2UgaWYgKGRhdGFbM10gPT09ICdtZXRob2QnKSB7XG5cdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdGlmICghdGhpcy5fc2VuZFF1ZXVlLmZpbHRlcihhID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShkYXRhKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VuZFF1ZXVlLnNwbGljZSgwLCAwLCBkYXRhKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmIChkYXRhWzRdID09PSAnaW5zZXJ0RG9jdW1lbnQnKSB7XG5cdFx0XHRcdFx0aWYgKGRhdGFbNV0gIT09ICdkcml2ZXItZ3BzJykge1xuXHRcdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyBpbnNlcnQgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmUuaW5zZXJ0RG9jdW1lbnQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7XG5cdFx0XHRcdFx0XHR0eXBlOiAnaW5zZXJ0Jyxcblx0XHRcdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdFx0XHRkYXRlOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRsZXQgcmVzID0gdGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudChkYXRhWzVdLCBkYXRhWzZdKTtcblxuXHRcdFx0XHRcdGxldCBjYiA9IHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pWzBdO1xuXHRcdFx0XHRcdGlmIChjYiAmJiBjYi5jYikge1xuXHRcdFx0XHRcdFx0Y2IuY2IobnVsbCwgcmVzKTtcblxuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UodGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSksIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChkYXRhWzRdID09PSAndXBkYXRlRG9jdW1lbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyB1cGRhdGUgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmUuaW5zZXJ0RG9jdW1lbnQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7XG5cdFx0XHRcdFx0XHR0eXBlOiAndXBkYXRlRG9jdW1lbnQnLFxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9vZmZsaW5lLmZpbmRPbmUoZGF0YVs1XSwge19pZDogZGF0YVs2XS5faWR9KSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS51cGRhdGVEb2N1bWVudChkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnQ291bGQgbm90IGZpbmQgT2ZmbGluZSBkYXRhJywgZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCAxKTtcblx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXkuc3BsaWNlKHRoaXMuX2NiQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pLCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAoZGF0YVs0XSA9PT0gJ3VwZGF0ZURvY3VtZW50UHJvcHMnKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyB1cGRhdGUgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmUuaW5zZXJ0RG9jdW1lbnQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7XG5cdFx0XHRcdFx0XHR0eXBlOiAndXBkYXRlRG9jdW1lbnRQcm9wcycsXG5cdFx0XHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRcdFx0ZGF0ZTogbmV3IERhdGUoKVxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuX29mZmxpbmUuZmluZE9uZShkYXRhWzVdLCB7X2lkOiBkYXRhWzZdfSkpIHtcblx0XHRcdFx0XHRcdHRoaXMuX29mZmxpbmUudXBkYXRlRG9jdW1lbnRQcm9wcyhkYXRhWzVdLCBkYXRhWzZdLCBkYXRhWzddLCBkYXRhWzhdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnQ291bGQgbm90IGZpbmQgT2ZmbGluZSBkYXRhJywgZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCAxKTtcblx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXkuc3BsaWNlKHRoaXMuX2NiQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pLCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAoZGF0YVs0XSA9PT0gJ3JlbW92ZURvY3VtZW50Jykge1xuXHRcdFx0XHRcdHRoaXMuX2FsZXJ0LnNldEFsZXJ0KCd3YXJuaW5nJywgJ1RoaXMgcmVtb3ZlIGNvbW1hbmQgaGFzIG5vdCB0YWtlbiBwbGFjZSBvbiB0aGUgc2VydmVyIHlldCBiZWNhdXNlIHlvdSBhcmUgb2ZmbGluZS4gIEl0IHdpbGwgYXV0b21hdGljYWxseSBzeW5jIHVwIG5leHQgdGltZSB5b3UgYXJlIG9ubGluZSBhcyBsb25nIGFzIHlvdSBkbyBub3QgY2xlYXIgeW91ciBjYWNoZSEnKTtcblx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLmluc2VydERvY3VtZW50KCdjb2xsZWN0aW9uVXBkYXRlJywge1xuXHRcdFx0XHRcdFx0dHlwZTogJ3JlbW92ZURvY3VtZW50Jyxcblx0XHRcdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdFx0XHRkYXRlOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5fb2ZmbGluZS5maW5kT25lKGRhdGFbNV0sIHtfaWQ6IGRhdGFbNl19KSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5yZW1vdmVEb2N1bWVudChkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnQ291bGQgbm90IGZpbmQgT2ZmbGluZSBkYXRhJywgZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCAxKTtcblx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXkuc3BsaWNlKHRoaXMuX2NiQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pLCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSBpZiAoZGF0YVszXSA9PT0gJ29mZmxpbmUnKSB7XG5cdFx0XHR0aGlzLl9zb2NrZXQuc2VuZCguLi5kYXRhKTtcblx0XHR9XG5cdH1cblxuXHRnZXRTdGF0dXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NvY2tldC5yZWFkeVN0YXRlJDtcblx0fVxufVxuIl19
@@ -19,7 +19,7 @@ export class SocketService {
19
19
  this.pingInterval = null;
20
20
  this.pongTimeout = null;
21
21
  this.pingIntervalTime = 15000; // Time between each ping (e.g., 30 seconds)
22
- this.pongTimeoutTime = 15000; // Time to wait for pong before closing connection (e.g., 10 seconds)
22
+ this.pongTimeoutTime = 12000; // Time to wait for pong before closing connection (e.g., 10 seconds)
23
23
  //Set up the default 'noop' event handlers
24
24
  this.onopen = function (event) { };
25
25
  this.onclose = function (event) { };
@@ -116,9 +116,6 @@ export class SocketService {
116
116
  return false;
117
117
  }
118
118
  }
119
- /**
120
- * Returns boolean, whether websocket was FORCEFULLY closed.
121
- */
122
119
  close() {
123
120
  if (this.ws) {
124
121
  this.log(new Date(), 'WS', 'closing socket');
@@ -157,4 +154,4 @@ SocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
157
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: SocketService, decorators: [{
158
155
  type: Injectable
159
156
  }], ctorParameters: function () { return [{ type: i1.LocalStorageService }]; } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHdkMsTUFBTSxPQUFPLGFBQWE7SUFrQ3pCLFlBQW9CLFFBQTZCO1FBQTdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBakNqRCxzQ0FBc0M7UUFDL0IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVyQix3REFBd0Q7UUFDakQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBRWhDLG1FQUFtRTtRQUM1RCxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSWhCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUMsaUNBQWlDO1FBQ3pCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFNekIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUMsNENBQTRDO1FBQ3RFLG9CQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMscUVBQXFFO1FBRXpHLDBDQUEwQztRQUNuQyxXQUFNLEdBQXdCLFVBQVUsS0FBWSxJQUFHLENBQUMsQ0FBQztRQUN6RCxZQUFPLEdBQTZCLFVBQVUsS0FBaUIsSUFBRyxDQUFDLENBQUM7UUFDcEUsaUJBQVksR0FBZSxjQUFhLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQStCLFVBQVUsS0FBbUIsSUFBRyxDQUFDLENBQUM7UUFDMUUsWUFBTyxHQUE2QixVQUFVLEtBQWlCLElBQUcsQ0FBQyxDQUFDO0lBRXZCLENBQUM7SUFFOUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxTQUFTO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE9BQU87UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNqRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0I7WUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWxELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDakMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRW5CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUM7WUFFRixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNqQixZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQjtnQkFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFFcEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBRWYsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRXZDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FBQztZQUVGLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO29CQUM1QyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUMvQjtxQkFDSTtvQkFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN0QjtZQUNGLENBQUMsQ0FBQztZQUVGLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQixDQUFDLENBQUM7U0FDRjtJQUNGLENBQUM7SUFFTyxZQUFZO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDckQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMseURBQXlEO2dCQUU1RixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUNBQXVDLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNkLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDekI7UUFDRixDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFdBQVc7UUFDbEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQjtJQUNGLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRTtZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUM7U0FDWjthQUNJO1lBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUM7U0FDYjtJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWhCLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFTSxTQUFTO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNiO2FBQ0ksSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNmO0lBQ0YsQ0FBQztJQUVNLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUM5QjthQUNJO1lBQ0osT0FBTyxLQUFLLENBQUM7U0FDYjtJQUNGLENBQUM7SUFFTyxHQUFHLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNyQjtJQUNGLENBQUM7OzBHQXhMVyxhQUFhOzhHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtbG9jYWxzdG9yYWdlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ja2V0U2VydmljZSB7XG5cdC8vVGhlc2UgY2FuIGJlIGFsdGVyZWQgYnkgY2FsbGluZyBjb2RlXG5cdHB1YmxpYyBkZWJ1ZyA9IGZhbHNlO1xuXG5cdC8vVGltZSB0byB3YWl0IGJlZm9yZSBhdHRlbXB0aW5nIHJlY29ubmVjdCAoYWZ0ZXIgY2xvc2UpXG5cdHB1YmxpYyByZWNvbm5lY3RJbnRlcnZhbCA9IDEwMDA7XG5cdFxuXHQvL1RpbWUgdG8gd2FpdCBmb3IgV2ViU29ja2V0IHRvIG9wZW4gKGJlZm9yZSBhYm9ydGluZyBhbmQgcmV0cnlpbmcpXG5cdHB1YmxpYyB0aW1lb3V0SW50ZXJ2YWwgPSA1MDAwO1xuXHRwcml2YXRlIHRpbWVvdXQgPSBudWxsO1xuXG5cdC8vU2hvdWxkIG9ubHkgYmUgdXNlZCB0byByZWFkIFdlYlNvY2tldCByZWFkeVN0YXRlXG5cdHB1YmxpYyByZWFkeVN0YXRlOiBudW1iZXI7XG5cdHB1YmxpYyByZWFkeVN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cblx0Ly9MaXN0IG9mIFdlYlNvY2tldCBzdWItcHJvdG9jb2xzXG5cdHByaXZhdGUgcHJvdG9jb2xzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdC8vVGhlIHVuZGVybHlpbmcgV2ViU29ja2V0XG5cdHB1YmxpYyB3czogV2ViU29ja2V0O1xuXHRwcml2YXRlIHVybDogc3RyaW5nO1xuXG5cdHByaXZhdGUgcGluZ0ludGVydmFsID0gbnVsbDtcbiAgICBwcml2YXRlIHBvbmdUaW1lb3V0ID0gbnVsbDtcbiAgICBwcml2YXRlIHBpbmdJbnRlcnZhbFRpbWUgPSAxNTAwMDsgLy8gVGltZSBiZXR3ZWVuIGVhY2ggcGluZyAoZS5nLiwgMzAgc2Vjb25kcylcbiAgICBwcml2YXRlIHBvbmdUaW1lb3V0VGltZSA9IDE1MDAwOyAvLyBUaW1lIHRvIHdhaXQgZm9yIHBvbmcgYmVmb3JlIGNsb3NpbmcgY29ubmVjdGlvbiAoZS5nLiwgMTAgc2Vjb25kcylcblxuXHQvL1NldCB1cCB0aGUgZGVmYXVsdCAnbm9vcCcgZXZlbnQgaGFuZGxlcnNcblx0cHVibGljIG9ub3BlbjogKGV2OiBFdmVudCkgPT4gdm9pZCA9IGZ1bmN0aW9uIChldmVudDogRXZlbnQpIHt9O1xuXHRwdWJsaWMgb25jbG9zZTogKGV2OiBDbG9zZUV2ZW50KSA9PiB2b2lkID0gZnVuY3Rpb24gKGV2ZW50OiBDbG9zZUV2ZW50KSB7fTtcblx0cHVibGljIG9uY29ubmVjdGluZzogKCkgPT4gdm9pZCA9IGZ1bmN0aW9uICgpIHt9O1xuXHRwdWJsaWMgb25tZXNzYWdlOiAoZXY6IE1lc3NhZ2VFdmVudCkgPT4gdm9pZCA9IGZ1bmN0aW9uIChldmVudDogTWVzc2FnZUV2ZW50KSB7fTtcblx0cHVibGljIG9uZXJyb3I6IChldjogRXJyb3JFdmVudCkgPT4gdm9pZCA9IGZ1bmN0aW9uIChldmVudDogRXJyb3JFdmVudCkge307XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSkge31cblxuXHRwdWJsaWMgb3BlblNvY2tldChlbnZpcm9ubWVudCwgcHJvdG9jb2xzKSB7XG5cdFx0dGhpcy51cmwgPSBlbnZpcm9ubWVudC5XU19VUkw7XG5cdFx0dGhpcy5wcm90b2NvbHMgPSBwcm90b2NvbHM7XG5cdFx0dGhpcy5jb25uZWN0KCk7XG5cdH1cblxuXHRwcml2YXRlIGNvbm5lY3QoKSB7XG5cdFx0aWYgKCF0aGlzLndzICYmIHRoaXMuX3N0b3JhZ2UuZ2V0KCdhY2Nlc3NUb2tlbicpKSB7XG5cdFx0XHRpZiAodGhpcy50aW1lb3V0KSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLndzID0gbmV3IFdlYlNvY2tldCh0aGlzLnVybCwgdGhpcy5wcm90b2NvbHMpO1xuXHRcdFx0XG5cdFx0XHR0aGlzLnJlYWR5U3RhdGUgPSBXZWJTb2NrZXQuQ09OTkVDVElORztcblx0XHRcdHRoaXMucmVhZHlTdGF0ZSQubmV4dCh0aGlzLnJlYWR5U3RhdGUpO1xuXHRcdFx0dGhpcy5vbmNvbm5lY3RpbmcoKTtcblx0XHRcdHRoaXMubG9nKG5ldyBEYXRlKCksICdXUycsICdhdHRlbXB0LWNvbm5lY3QnLCB0aGlzLnVybCk7XG5cblx0XHRcdHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmxvZyhuZXcgRGF0ZSgpLCAnV1MnLCAnY29ubmVjdGlvbi10aW1lb3V0JywgdGhpcy51cmwpO1xuXHRcdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0XHR9LCB0aGlzLnRpbWVvdXRJbnRlcnZhbCk7XG5cblx0XHRcdHRoaXMud3Mub25vcGVuID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcblx0XHRcdFx0dGhpcy50aW1lb3V0ID0gbnVsbDtcblx0XHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ29ub3BlbicsIHRoaXMudXJsKTtcblx0XHRcdFx0dGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0Lk9QRU47XG5cdFx0XHRcdHRoaXMucmVhZHlTdGF0ZSQubmV4dCh0aGlzLnJlYWR5U3RhdGUpO1xuXHRcdFx0XHR0aGlzLm9ub3BlbihldmVudCk7XG5cblx0XHRcdFx0dGhpcy5zdGFydFBpbmdpbmcoKTtcblx0XHRcdH07XG5cblx0XHRcdHRoaXMud3Mub25jbG9zZSA9IChldmVudDogQ2xvc2VFdmVudCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy50aW1lb3V0KSB7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdHRoaXMudGltZW91dCA9IG51bGw7XG5cblx0XHRcdFx0dGhpcy53cyA9IG51bGw7XG5cblx0XHRcdFx0dGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0LkNMT1NFRDtcblx0XHRcdFx0dGhpcy5yZWFkeVN0YXRlJC5uZXh0KHRoaXMucmVhZHlTdGF0ZSk7XG5cdFx0XHRcdFxuXHRcdFx0XHR0aGlzLmxvZyhuZXcgRGF0ZSgpLCAnV1MnLCAnb25jbG9zZScsIHRoaXMudXJsKTtcblx0XHRcdFx0dGhpcy5vbmNsb3NlKGV2ZW50KTtcblxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3QoKTtcblx0XHRcdFx0fSwgdGhpcy5yZWNvbm5lY3RJbnRlcnZhbCk7XG5cblx0XHRcdFx0dGhpcy5zdG9wUGluZ2luZygpO1xuXHRcdFx0fTtcblxuXHRcdFx0dGhpcy53cy5vbm1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoZXZlbnQuZGF0YSA9PT0gJ3BvbmcnKSB7XG5cdFx0XHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ3BvbmcgcmVjZWl2ZWQnKTtcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5wb25nVGltZW91dCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5vbm1lc3NhZ2UoZXZlbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0XHR0aGlzLndzLm9uZXJyb3IgPSAoZXZlbnQ6IEVycm9yRXZlbnQpID0+IHtcblx0XHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ29uZXJyb3InLCB0aGlzLCBldmVudCk7XG5cdFx0XHRcdHRoaXMub25lcnJvcihldmVudCk7XG5cdFx0XHRcdHRoaXMucmVjb25uZWN0KCk7XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc3RhcnRQaW5naW5nKCkge1xuXHRcdHRoaXMucGluZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMud3MgJiYgdGhpcy53cy5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHR0aGlzLndzLnNlbmQoWydwaW5nJ10udG9TdHJpbmcoKSk7IC8vIFlvdSBjYW4gYWRqdXN0IHRoaXMgYmFzZWQgb24gdGhlIHNlcnZlcidzIGV4cGVjdGF0aW9uc1xuXG5cdFx0XHRcdHRoaXMucG9uZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmxvZyhuZXcgRGF0ZSgpLCAnV1MnLCAncG9uZyBub3QgcmVjZWl2ZWQsIGNsb3NpbmcgY29ubmVjdGlvbicpO1xuXHRcdFx0XHRcdHRoaXMuY2xvc2UoKTtcblx0XHRcdFx0fSwgdGhpcy5wb25nVGltZW91dFRpbWUpO1xuXHRcdFx0fVxuXHRcdH0sIHRoaXMucGluZ0ludGVydmFsVGltZSk7XG5cdH1cblxuXHRwcml2YXRlIHN0b3BQaW5naW5nKCkge1xuXHRcdGlmICh0aGlzLnBpbmdJbnRlcnZhbCkge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnBpbmdJbnRlcnZhbCk7XG5cdFx0fVxuXHRcdFxuXHRcdGlmICh0aGlzLnBvbmdUaW1lb3V0KSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5wb25nVGltZW91dCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHNlbmQoLi4uZGF0YTogYW55W10pIHtcblx0XHRpZiAodGhpcy53cyAmJiB0aGlzLndzLnJlYWR5U3RhdGUgPT09IHRoaXMud3MuT1BFTikge1xuXHRcdFx0dGhpcy53cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0gXG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLmxvZyhuZXcgRGF0ZSgpLCAnV1MnLCAnc2VuZCBlcnJvcicsIHRoaXMud3MucmVhZHlTdGF0ZSk7XG5cdFx0XHR0aGlzLnJlY29ubmVjdCgpO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGJvb2xlYW4sIHdoZXRoZXIgd2Vic29ja2V0IHdhcyBGT1JDRUZVTExZIGNsb3NlZC5cblx0ICovXG5cdHB1YmxpYyBjbG9zZSgpOiBib29sZWFuIHtcblx0XHRpZiAodGhpcy53cykge1xuXHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ2Nsb3Npbmcgc29ja2V0Jyk7XG5cdFx0XHR0aGlzLnJlYWR5U3RhdGUgPSBXZWJTb2NrZXQuQ0xPU0lORztcblx0XHRcdHRoaXMucmVhZHlTdGF0ZSQubmV4dCh0aGlzLnJlYWR5U3RhdGUpO1xuXHRcdFx0dGhpcy53cy5jbG9zZSgpO1xuXHRcdFx0XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cHVibGljIHJlY29ubmVjdCgpIHtcblx0XHR0aGlzLmxvZyhuZXcgRGF0ZSgpLCAnV1MnLCAncmVjb25uZWN0JywgdGhpcy5yZWFkeVN0YXRlKTtcblx0XHRpZiAodGhpcy5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH1cblx0XHRlbHNlIGlmICh0aGlzLnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8IHRoaXMucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NFRCkge1xuXHRcdFx0dGhpcy5jb25uZWN0KCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldEJ1ZmZlckFtb3VudCgpIHtcblx0XHRpZiAodGhpcy53cykge1xuXHRcdFx0cmV0dXJuIHRoaXMud3MuYnVmZmVyZWRBbW91bnQ7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0cmV0dXJuIDIwNDgwO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgbG9nKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0aWYgKHRoaXMuZGVidWcpIHtcblx0XHRcdGNvbnNvbGUubG9nKC4uLmFyZ3MpO1xuXHRcdH1cblx0fVxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHdkMsTUFBTSxPQUFPLGFBQWE7SUFrQ3pCLFlBQW9CLFFBQTZCO1FBQTdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBakNqRCxzQ0FBc0M7UUFDL0IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVyQix3REFBd0Q7UUFDakQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBRWhDLG1FQUFtRTtRQUM1RCxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN0QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSWhCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUMsaUNBQWlDO1FBQ3pCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFNekIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUMsNENBQTRDO1FBQ3RFLG9CQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMscUVBQXFFO1FBRXpHLDBDQUEwQztRQUNuQyxXQUFNLEdBQXdCLFVBQVUsS0FBWSxJQUFHLENBQUMsQ0FBQztRQUN6RCxZQUFPLEdBQTZCLFVBQVUsS0FBaUIsSUFBRyxDQUFDLENBQUM7UUFDcEUsaUJBQVksR0FBZSxjQUFhLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQStCLFVBQVUsS0FBbUIsSUFBRyxDQUFDLENBQUM7UUFDMUUsWUFBTyxHQUE2QixVQUFV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Q0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVoQixPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRU0sU0FBUztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDYjthQUNJLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUN2RixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDZjtJQUNGLENBQUM7SUFFTSxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDOUI7YUFDSTtZQUNKLE9BQU8sS0FBSyxDQUFDO1NBQ2I7SUFDRixDQUFDO0lBRU8sR0FBRyxDQUFDLEdBQUcsSUFBVztRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDckI7SUFDRixDQUFDOzswR0FyTFcsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LWxvY2Fsc3RvcmFnZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2Uge1xuXHQvL1RoZXNlIGNhbiBiZSBhbHRlcmVkIGJ5IGNhbGxpbmcgY29kZVxuXHRwdWJsaWMgZGVidWcgPSBmYWxzZTtcblxuXHQvL1RpbWUgdG8gd2FpdCBiZWZvcmUgYXR0ZW1wdGluZyByZWNvbm5lY3QgKGFmdGVyIGNsb3NlKVxuXHRwdWJsaWMgcmVjb25uZWN0SW50ZXJ2YWwgPSAxMDAwO1xuXHRcblx0Ly9UaW1lIHRvIHdhaXQgZm9yIFdlYlNvY2tldCB0byBvcGVuIChiZWZvcmUgYWJvcnRpbmcgYW5kIHJldHJ5aW5nKVxuXHRwdWJsaWMgdGltZW91dEludGVydmFsID0gNTAwMDtcblx0cHJpdmF0ZSB0aW1lb3V0ID0gbnVsbDtcblxuXHQvL1Nob3VsZCBvbmx5IGJlIHVzZWQgdG8gcmVhZCBXZWJTb2NrZXQgcmVhZHlTdGF0ZVxuXHRwdWJsaWMgcmVhZHlTdGF0ZTogbnVtYmVyO1xuXHRwdWJsaWMgcmVhZHlTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuXG5cdC8vTGlzdCBvZiBXZWJTb2NrZXQgc3ViLXByb3RvY29sc1xuXHRwcml2YXRlIHByb3RvY29sczogc3RyaW5nW10gPSBbXTtcblxuXHQvL1RoZSB1bmRlcmx5aW5nIFdlYlNvY2tldFxuXHRwdWJsaWMgd3M6IFdlYlNvY2tldDtcblx0cHJpdmF0ZSB1cmw6IHN0cmluZztcblxuXHRwcml2YXRlIHBpbmdJbnRlcnZhbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBwb25nVGltZW91dCA9IG51bGw7XG4gICAgcHJpdmF0ZSBwaW5nSW50ZXJ2YWxUaW1lID0gMTUwMDA7IC8vIFRpbWUgYmV0d2VlbiBlYWNoIHBpbmcgKGUuZy4sIDMwIHNlY29uZHMpXG4gICAgcHJpdmF0ZSBwb25nVGltZW91dFRpbWUgPSAxMjAwMDsgLy8gVGltZSB0byB3YWl0IGZvciBwb25nIGJlZm9yZSBjbG9zaW5nIGNvbm5lY3Rpb24gKGUuZy4sIDEwIHNlY29uZHMpXG5cblx0Ly9TZXQgdXAgdGhlIGRlZmF1bHQgJ25vb3AnIGV2ZW50IGhhbmRsZXJzXG5cdHB1YmxpYyBvbm9wZW46IChldjogRXZlbnQpID0+IHZvaWQgPSBmdW5jdGlvbiAoZXZlbnQ6IEV2ZW50KSB7fTtcblx0cHVibGljIG9uY2xvc2U6IChldjogQ2xvc2VFdmVudCkgPT4gdm9pZCA9IGZ1bmN0aW9uIChldmVudDogQ2xvc2VFdmVudCkge307XG5cdHB1YmxpYyBvbmNvbm5lY3Rpbmc6ICgpID0+IHZvaWQgPSBmdW5jdGlvbiAoKSB7fTtcblx0cHVibGljIG9ubWVzc2FnZTogKGV2OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQgPSBmdW5jdGlvbiAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkge307XG5cdHB1YmxpYyBvbmVycm9yOiAoZXY6IEVycm9yRXZlbnQpID0+IHZvaWQgPSBmdW5jdGlvbiAoZXZlbnQ6IEVycm9yRXZlbnQpIHt9O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHt9XG5cblx0cHVibGljIG9wZW5Tb2NrZXQoZW52aXJvbm1lbnQsIHByb3RvY29scykge1xuXHRcdHRoaXMudXJsID0gZW52aXJvbm1lbnQuV1NfVVJMO1xuXHRcdHRoaXMucHJvdG9jb2xzID0gcHJvdG9jb2xzO1xuXHRcdHRoaXMuY29ubmVjdCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBjb25uZWN0KCkge1xuXHRcdGlmICghdGhpcy53cyAmJiB0aGlzLl9zdG9yYWdlLmdldCgnYWNjZXNzVG9rZW4nKSkge1xuXHRcdFx0aWYgKHRoaXMudGltZW91dCkge1xuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy53cyA9IG5ldyBXZWJTb2NrZXQodGhpcy51cmwsIHRoaXMucHJvdG9jb2xzKTtcblx0XHRcdFxuXHRcdFx0dGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0LkNPTk5FQ1RJTkc7XG5cdFx0XHR0aGlzLnJlYWR5U3RhdGUkLm5leHQodGhpcy5yZWFkeVN0YXRlKTtcblx0XHRcdHRoaXMub25jb25uZWN0aW5nKCk7XG5cdFx0XHR0aGlzLmxvZyhuZXcgRGF0ZSgpLCAnV1MnLCAnYXR0ZW1wdC1jb25uZWN0JywgdGhpcy51cmwpO1xuXG5cdFx0XHR0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ2Nvbm5lY3Rpb24tdGltZW91dCcsIHRoaXMudXJsKTtcblx0XHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0fSwgdGhpcy50aW1lb3V0SW50ZXJ2YWwpO1xuXG5cdFx0XHR0aGlzLndzLm9ub3BlbiA9IChldmVudDogRXZlbnQpID0+IHtcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG5cdFx0XHRcdHRoaXMudGltZW91dCA9IG51bGw7XG5cdFx0XHRcdHRoaXMubG9nKG5ldyBEYXRlKCksICdXUycsICdvbm9wZW4nLCB0aGlzLnVybCk7XG5cdFx0XHRcdHRoaXMucmVhZHlTdGF0ZSA9IFdlYlNvY2tldC5PUEVOO1xuXHRcdFx0XHR0aGlzLnJlYWR5U3RhdGUkLm5leHQodGhpcy5yZWFkeVN0YXRlKTtcblx0XHRcdFx0dGhpcy5vbm9wZW4oZXZlbnQpO1xuXG5cdFx0XHRcdHRoaXMuc3RhcnRQaW5naW5nKCk7XG5cdFx0XHR9O1xuXG5cdFx0XHR0aGlzLndzLm9uY2xvc2UgPSAoZXZlbnQ6IENsb3NlRXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudGltZW91dCkge1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHR0aGlzLnRpbWVvdXQgPSBudWxsO1xuXG5cdFx0XHRcdHRoaXMud3MgPSBudWxsO1xuXG5cdFx0XHRcdHRoaXMucmVhZHlTdGF0ZSA9IFdlYlNvY2tldC5DTE9TRUQ7XG5cdFx0XHRcdHRoaXMucmVhZHlTdGF0ZSQubmV4dCh0aGlzLnJlYWR5U3RhdGUpO1xuXHRcdFx0XHRcblx0XHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ29uY2xvc2UnLCB0aGlzLnVybCk7XG5cdFx0XHRcdHRoaXMub25jbG9zZShldmVudCk7XG5cblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0KCk7XG5cdFx0XHRcdH0sIHRoaXMucmVjb25uZWN0SW50ZXJ2YWwpO1xuXG5cdFx0XHRcdHRoaXMuc3RvcFBpbmdpbmcoKTtcblx0XHRcdH07XG5cblx0XHRcdHRoaXMud3Mub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKGV2ZW50LmRhdGEgPT09ICdwb25nJykge1xuXHRcdFx0XHRcdHRoaXMubG9nKG5ldyBEYXRlKCksICdXUycsICdwb25nIHJlY2VpdmVkJyk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMucG9uZ1RpbWVvdXQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMub25tZXNzYWdlKGV2ZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0dGhpcy53cy5vbmVycm9yID0gKGV2ZW50OiBFcnJvckV2ZW50KSA9PiB7XG5cdFx0XHRcdHRoaXMubG9nKG5ldyBEYXRlKCksICdXUycsICdvbmVycm9yJywgdGhpcywgZXZlbnQpO1xuXHRcdFx0XHR0aGlzLm9uZXJyb3IoZXZlbnQpO1xuXHRcdFx0XHR0aGlzLnJlY29ubmVjdCgpO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHN0YXJ0UGluZ2luZygpIHtcblx0XHR0aGlzLnBpbmdJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdGlmICh0aGlzLndzICYmIHRoaXMud3MucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0dGhpcy53cy5zZW5kKFsncGluZyddLnRvU3RyaW5nKCkpOyAvLyBZb3UgY2FuIGFkanVzdCB0aGlzIGJhc2VkIG9uIHRoZSBzZXJ2ZXIncyBleHBlY3RhdGlvbnNcblxuXHRcdFx0XHR0aGlzLnBvbmdUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ3Bvbmcgbm90IHJlY2VpdmVkLCBjbG9zaW5nIGNvbm5lY3Rpb24nKTtcblx0XHRcdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0XHRcdH0sIHRoaXMucG9uZ1RpbWVvdXRUaW1lKTtcblx0XHRcdH1cblx0XHR9LCB0aGlzLnBpbmdJbnRlcnZhbFRpbWUpO1xuXHR9XG5cblx0cHJpdmF0ZSBzdG9wUGluZ2luZygpIHtcblx0XHRpZiAodGhpcy5waW5nSW50ZXJ2YWwpIHtcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5waW5nSW50ZXJ2YWwpO1xuXHRcdH1cblx0XHRcblx0XHRpZiAodGhpcy5wb25nVGltZW91dCkge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMucG9uZ1RpbWVvdXQpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZW5kKC4uLmRhdGE6IGFueVtdKSB7XG5cdFx0aWYgKHRoaXMud3MgJiYgdGhpcy53cy5yZWFkeVN0YXRlID09PSB0aGlzLndzLk9QRU4pIHtcblx0XHRcdHRoaXMud3Muc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IFxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ3NlbmQgZXJyb3InLCB0aGlzLndzLnJlYWR5U3RhdGUpO1xuXHRcdFx0dGhpcy5yZWNvbm5lY3QoKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgY2xvc2UoKTogYm9vbGVhbiB7XG5cdFx0aWYgKHRoaXMud3MpIHtcblx0XHRcdHRoaXMubG9nKG5ldyBEYXRlKCksICdXUycsICdjbG9zaW5nIHNvY2tldCcpO1xuXHRcdFx0dGhpcy5yZWFkeVN0YXRlID0gV2ViU29ja2V0LkNMT1NJTkc7XG5cdFx0XHR0aGlzLnJlYWR5U3RhdGUkLm5leHQodGhpcy5yZWFkeVN0YXRlKTtcblx0XHRcdHRoaXMud3MuY2xvc2UoKTtcblx0XHRcdFxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHB1YmxpYyByZWNvbm5lY3QoKSB7XG5cdFx0dGhpcy5sb2cobmV3IERhdGUoKSwgJ1dTJywgJ3JlY29ubmVjdCcsIHRoaXMucmVhZHlTdGF0ZSk7XG5cdFx0aWYgKHRoaXMucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdHRoaXMuY2xvc2UoKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuQ0xPU0lORyB8fCB0aGlzLnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHtcblx0XHRcdHRoaXMuY29ubmVjdCgpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRCdWZmZXJBbW91bnQoKSB7XG5cdFx0aWYgKHRoaXMud3MpIHtcblx0XHRcdHJldHVybiB0aGlzLndzLmJ1ZmZlcmVkQW1vdW50O1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHJldHVybiAyMDQ4MDtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGxvZyguLi5hcmdzOiBhbnlbXSkge1xuXHRcdGlmICh0aGlzLmRlYnVnKSB7XG5cdFx0XHRjb25zb2xlLmxvZyguLi5hcmdzKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -264,7 +264,7 @@ class SocketService {
264
264
  this.pingInterval = null;
265
265
  this.pongTimeout = null;
266
266
  this.pingIntervalTime = 15000; // Time between each ping (e.g., 30 seconds)
267
- this.pongTimeoutTime = 15000; // Time to wait for pong before closing connection (e.g., 10 seconds)
267
+ this.pongTimeoutTime = 12000; // Time to wait for pong before closing connection (e.g., 10 seconds)
268
268
  //Set up the default 'noop' event handlers
269
269
  this.onopen = function (event) { };
270
270
  this.onclose = function (event) { };
@@ -361,9 +361,6 @@ class SocketService {
361
361
  return false;
362
362
  }
363
363
  }
364
- /**
365
- * Returns boolean, whether websocket was FORCEFULLY closed.
366
- */
367
364
  close() {
368
365
  if (this.ws) {
369
366
  this.log(new Date(), 'WS', 'closing socket');
@@ -1216,7 +1213,7 @@ class SocketManagerService {
1216
1213
  if (!this._runningQueue) {
1217
1214
  if (this._sendQueue.length) {
1218
1215
  this._runningQueue = true;
1219
- if (this._socket && this._socket.ws && this.socketStatus === WebSocket.OPEN) {
1216
+ if (this._socket && this._socket.ws) {
1220
1217
  let nextSendItem = this._sendQueue[this._sendQueue.length - 1];
1221
1218
  let sendStatus = this._socket.send(...nextSendItem);
1222
1219
  if (sendStatus) {
@@ -1320,14 +1317,7 @@ class SocketManagerService {
1320
1317
  }
1321
1318
  send(...data) {
1322
1319
  if (data[3] === 'subscription') {
1323
- if (this.socketStatus === WebSocket.OPEN) {
1324
- this._socket.send(...data);
1325
- }
1326
- else {
1327
- if (!this._sendQueue.filter(a => JSON.stringify(a) === JSON.stringify(data)).length) {
1328
- this._sendQueue.splice(0, 0, data);
1329
- }
1330
- }
1320
+ this._socket.send(...data);
1331
1321
  }
1332
1322
  else if (data[3] === 'method') {
1333
1323
  if (this.socketStatus === WebSocket.OPEN) {
@@ -1412,9 +1402,7 @@ class SocketManagerService {
1412
1402
  }
1413
1403
  }
1414
1404
  else if (data[3] === 'offline') {
1415
- if (this.socketStatus === WebSocket.OPEN) {
1416
- this._socket.send(...data);
1417
- }
1405
+ this._socket.send(...data);
1418
1406
  }
1419
1407
  }
1420
1408
  getStatus() {