@vgroup/dialbox 0.4.113 → 0.4.115

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.
@@ -1,6 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { environment } from '../environments/environments';
4
+ import { INCOMING_CALL_AUDIO_BASE64 } from '../components/call-progress/audio_base64.base64';
4
5
  import * as i0 from "@angular/core";
5
6
  export class IncomeingCallSocketService {
6
7
  constructor() {
@@ -41,6 +42,38 @@ export class IncomeingCallSocketService {
41
42
  setTimeout(() => this.connect(), 100); // Auto-reconnect
42
43
  };
43
44
  }
45
+ createAudioBase() {
46
+ this.incomingAudio = this.createAudioFromBase64(INCOMING_CALL_AUDIO_BASE64, 'audio/mpeg');
47
+ }
48
+ createAudioFromBase64(base64, mimeType = 'audio/mpeg') {
49
+ const byteCharacters = atob(base64);
50
+ const byteNumbers = new Array(byteCharacters.length);
51
+ for (let i = 0; i < byteCharacters.length; i++) {
52
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
53
+ }
54
+ const byteArray = new Uint8Array(byteNumbers);
55
+ const blob = new Blob([byteArray], { type: mimeType });
56
+ const blobUrl = URL.createObjectURL(blob);
57
+ const audio = new Audio(blobUrl);
58
+ audio.loop = true; // ringing loop
59
+ audio.load();
60
+ return audio;
61
+ }
62
+ play() {
63
+ this.incomingAudio.volume = 0;
64
+ this.incomingAudio.play().then(() => {
65
+ this.incomingAudio.volume = 1;
66
+ })
67
+ .catch(async (err) => {
68
+ console.error(err);
69
+ });
70
+ return true;
71
+ }
72
+ pause() {
73
+ this.incomingAudio.pause();
74
+ this.incomingAudio.currentTime = 0;
75
+ return false;
76
+ }
44
77
  listen() {
45
78
  return this.eventSubject.asObservable();
46
79
  }
@@ -53,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
53
86
  providedIn: 'root'
54
87
  }]
55
88
  }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21laW5nLWNhbGwtc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsYm94L3NyYy9saWIvc2VydmljZS9pbmNvbWVpbmctY2FsbC1zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUszRCxNQUFNLE9BQU8sMEJBQTBCO0lBSHZDO1FBTVUsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0tBNkMzQztJQTNDQyxPQUFPO1FBQ0wsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxXQUFXLENBQUMsWUFBWSxlQUFlLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRW5DLDJCQUEyQjtZQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFDLGNBQWMsRUFBQztvQkFDbEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2lCQUN6QyxFQUFDLENBQUE7WUFDRixJQUFJO1lBQ0osNENBQTRDO1lBQzVDLCtDQUErQztZQUMvQyxLQUFLO1lBQ0wsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFBO1FBQ1QsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM5QixvQ0FBb0M7WUFDcEMsSUFBSTtnQkFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUI7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QztRQUNILENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7UUFDMUQsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7d0hBL0NVLDBCQUEwQjs0SEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5jb21laW5nQ2FsbFNvY2tldFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHNvY2tldD86IFdlYlNvY2tldDtcclxuICBwcml2YXRlIGV2ZW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29ubmVjdCgpIHtcclxuICAgIC8vIFJlcGxhY2Ugd2l0aCB5b3VyIFdlYlNvY2tldCBVUkxcclxuICAgIHRoaXMuc29ja2V0ID0gbmV3IFdlYlNvY2tldChgJHtlbnZpcm9ubWVudC53ZWJzb2NrZXRVcmx9aW5jb21pbmcvY2FsbGApO1xyXG5cclxuICAgIHRoaXMuc29ja2V0Lm9ub3BlbiA9ICgpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJXZWJTb2NrZXQgY29ubmVjdGVkXCIpO1xyXG5cclxuICAgICAgLy8gQXV0aGVudGljYXRlIChpZiBuZWVkZWQpXHJcbiAgICAgIGNvbnN0IGF1dGhNZXNzYWdlID0ge1wiaW5jb21pbmdDYWxsXCI6e1xyXG4gICAgICAgIFwidXNlcklkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKVxyXG4gICAgICB9fVxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgdXNlcklkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJyksXHJcbiAgICAgIC8vICAgYXV0aEtleTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2V4dF90b2tlbicpXHJcbiAgICAgIC8vIH07XHJcbiAgICAgIHNldEludGVydmFsKCgpID0+e1xyXG4gICAgICAgIHRoaXMuc29ja2V0Py5zZW5kKEpTT04uc3RyaW5naWZ5KGF1dGhNZXNzYWdlKSk7XHJcbiAgICAgIH0sMTAwMClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zb2NrZXQub25tZXNzYWdlID0gKG1zZykgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIldTIFJBVzpcIiwgbXNnLmRhdGEpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKG1zZy5kYXRhKTtcclxuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KGRhdGEpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIldTIFBBUlNFIEVSUk9SOlwiLCBtc2cuZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zb2NrZXQub25lcnJvciA9IChlcnIpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIldlYlNvY2tldCBFcnJvcjpcIiwgZXJyKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zb2NrZXQub25jbG9zZSA9ICgpID0+IHtcclxuICAgICAgY29uc29sZS53YXJuKFwiV2ViU29ja2V0IGRpc2Nvbm5lY3RlZFwiKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNvbm5lY3QoKSwgMTAwKTsgLy8gQXV0by1yZWNvbm5lY3RcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBsaXN0ZW4oKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmV2ZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcbn1cclxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21laW5nLWNhbGwtc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsYm94L3NyYy9saWIvc2VydmljZS9pbmNvbWVpbmctY2FsbC1zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQUs3RixNQUFNLE9BQU8sMEJBQTBCO0lBSHZDO1FBTVUsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0tBcUYzQztJQW5GQyxPQUFPO1FBQ0wsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxXQUFXLENBQUMsWUFBWSxlQUFlLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRW5DLDJCQUEyQjtZQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFDLGNBQWMsRUFBQztvQkFDbEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2lCQUN6QyxFQUFDLENBQUE7WUFDRixJQUFJO1lBQ0osNENBQTRDO1lBQzVDLCtDQUErQztZQUMvQyxLQUFLO1lBQ0wsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQyxFQUFDLElBQUks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RyxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzt3SEF2RlUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGekIsTUFBTTs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cyc7XHJcbmltcG9ydCB7IElOQ09NSU5HX0NBTExfQVVESU9fQkFTRTY0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYWxsLXByb2dyZXNzL2F1ZGlvX2Jhc2U2NC5iYXNlNjQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5jb21laW5nQ2FsbFNvY2tldFNlcnZpY2Uge1xyXG4gIGluY29taW5nQXVkaW8hOiBIVE1MQXVkaW9FbGVtZW50O1xyXG4gIHByaXZhdGUgc29ja2V0PzogV2ViU29ja2V0O1xyXG4gIHByaXZhdGUgZXZlbnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICBjb25uZWN0KCkge1xyXG4gICAgLy8gUmVwbGFjZSB3aXRoIHlvdXIgV2ViU29ja2V0IFVSTFxyXG4gICAgdGhpcy5zb2NrZXQgPSBuZXcgV2ViU29ja2V0KGAke2Vudmlyb25tZW50LndlYnNvY2tldFVybH1pbmNvbWluZy9jYWxsYCk7XHJcblxyXG4gICAgdGhpcy5zb2NrZXQub25vcGVuID0gKCkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIldlYlNvY2tldCBjb25uZWN0ZWRcIik7XHJcblxyXG4gICAgICAvLyBBdXRoZW50aWNhdGUgKGlmIG5lZWRlZClcclxuICAgICAgY29uc3QgYXV0aE1lc3NhZ2UgPSB7XCJpbmNvbWluZ0NhbGxcIjp7XHJcbiAgICAgICAgXCJ1c2VySWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpXHJcbiAgICAgIH19XHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICB1c2VySWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKSxcclxuICAgICAgLy8gICBhdXRoS2V5OiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJylcclxuICAgICAgLy8gfTtcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT57XHJcbiAgICAgICAgdGhpcy5zb2NrZXQ/LnNlbmQoSlNPTi5zdHJpbmdpZnkoYXV0aE1lc3NhZ2UpKTtcclxuICAgICAgfSwxMDAwKVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNvY2tldC5vbm1lc3NhZ2UgPSAobXNnKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiV1MgUkFXOlwiLCBtc2cuZGF0YSk7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UobXNnLmRhdGEpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoZGF0YSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiV1MgUEFSU0UgRVJST1I6XCIsIG1zZy5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNvY2tldC5vbmVycm9yID0gKGVycikgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiV2ViU29ja2V0IEVycm9yOlwiLCBlcnIpO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNvY2tldC5vbmNsb3NlID0gKCkgPT4ge1xyXG4gICAgICBjb25zb2xlLndhcm4oXCJXZWJTb2NrZXQgZGlzY29ubmVjdGVkXCIpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29ubmVjdCgpLCAxMDApOyAvLyBBdXRvLXJlY29ubmVjdFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUF1ZGlvQmFzZSgpIHtcclxuICAgIHRoaXMuaW5jb21pbmdBdWRpbyA9IHRoaXMuY3JlYXRlQXVkaW9Gcm9tQmFzZTY0KElOQ09NSU5HX0NBTExfQVVESU9fQkFTRTY0LCdhdWRpby9tcGVnJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUF1ZGlvRnJvbUJhc2U2NChiYXNlNjQ6IHN0cmluZywgbWltZVR5cGUgPSAnYXVkaW8vbXBlZycpOiBIVE1MQXVkaW9FbGVtZW50IHtcclxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjQpO1xyXG4gICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoYnl0ZUNoYXJhY3RlcnMubGVuZ3RoKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogbWltZVR5cGUgfSk7XHJcbiAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuXHJcbiAgICBjb25zdCBhdWRpbyA9IG5ldyBBdWRpbyhibG9iVXJsKTtcclxuICAgIGF1ZGlvLmxvb3AgPSB0cnVlOyAgICAgICAgLy8gcmluZ2luZyBsb29wXHJcbiAgICBhdWRpby5sb2FkKCk7XHJcblxyXG4gICAgcmV0dXJuIGF1ZGlvO1xyXG4gIH1cclxuXHJcbiAgcGxheSgpIHtcclxuICAgICB0aGlzLmluY29taW5nQXVkaW8udm9sdW1lID0gMDtcclxuICAgICAgdGhpcy5pbmNvbWluZ0F1ZGlvLnBsYXkoKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmluY29taW5nQXVkaW8udm9sdW1lID0gMTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGFzeW5jIChlcnIpID0+e1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcGF1c2UoKSB7XHJcbiAgICB0aGlzLmluY29taW5nQXVkaW8ucGF1c2UoKTtcclxuICAgIHRoaXMuaW5jb21pbmdBdWRpby5jdXJyZW50VGltZSA9IDA7XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcblxyXG4gIGxpc3RlbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=