@hmcts/media-viewer 3.1.1 → 3.1.4
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.
- package/esm2020/lib/icp/icp-session-api.service.mjs +3 -3
- package/esm2020/lib/icp/icp-update.service.mjs +12 -4
- package/esm2020/lib/icp/icp.interfaces.mjs +1 -1
- package/esm2020/lib/icp/icp.service.mjs +5 -3
- package/esm2020/lib/store/actions/icp.actions.mjs +1 -1
- package/esm2020/lib/store/effects/icp.effects.mjs +2 -2
- package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +11 -13
- package/fesm2015/hmcts-media-viewer.mjs +24 -19
- package/fesm2015/hmcts-media-viewer.mjs.map +1 -1
- package/fesm2020/hmcts-media-viewer.mjs +27 -20
- package/fesm2020/hmcts-media-viewer.mjs.map +1 -1
- package/lib/icp/icp-session-api.service.d.ts +4 -1
- package/lib/icp/icp-session-api.service.d.ts.map +1 -1
- package/lib/icp/icp-update.service.d.ts.map +1 -1
- package/lib/icp/icp.interfaces.d.ts +1 -0
- package/lib/icp/icp.interfaces.d.ts.map +1 -1
- package/lib/icp/icp.service.d.ts +1 -0
- package/lib/icp/icp.service.d.ts.map +1 -1
- package/lib/store/actions/icp.actions.d.ts +8 -2
- package/lib/store/actions/icp.actions.d.ts.map +1 -1
- package/lib/store/effects/icp.effects.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +2 -1
- package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,9 +7,9 @@ export class IcpSessionApiService {
|
|
|
7
7
|
this.httpClient = httpClient;
|
|
8
8
|
this.ICP_SESSION_API = '/icp/sessions';
|
|
9
9
|
}
|
|
10
|
-
loadSession(
|
|
10
|
+
loadSession(payload) {
|
|
11
11
|
return this.httpClient
|
|
12
|
-
.get(`${this.ICP_SESSION_API}/${caseId}`, { observe: 'response', withCredentials: true })
|
|
12
|
+
.get(`${this.ICP_SESSION_API}/${payload.caseId}/${payload.documentId}`, { observe: 'response', withCredentials: true })
|
|
13
13
|
.pipe(map(response => response.body));
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -18,4 +18,4 @@ export class IcpSessionApiService {
|
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpSessionApiService, decorators: [{
|
|
19
19
|
type: Injectable
|
|
20
20
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXNlc3Npb24tYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9pY3AvaWNwLXNlc3Npb24tYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUtyQyxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQTZCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGNUMsb0JBQWUsR0FBRyxlQUFlLENBQUM7SUFFYyxDQUFDO0lBRWpELFdBQVcsQ0FBQyxPQUErQztRQUNoRSxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FBNEMsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUMvRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDOztxSUFYVSxvQkFBb0I7eUlBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcFNlc3Npb24gfSBmcm9tICcuL2ljcC5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcFNlc3Npb25BcGlTZXJ2aWNlIHtcblxuICBwdWJsaWMgSUNQX1NFU1NJT05fQVBJID0gJy9pY3Avc2Vzc2lvbnMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCkgeyB9XG5cbiAgcHVibGljIGxvYWRTZXNzaW9uKHBheWxvYWQ6IHsgY2FzZUlkOiBzdHJpbmcsIGRvY3VtZW50SWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PHsgdXNlcm5hbWU6IHN0cmluZywgc2Vzc2lvbjogSWNwU2Vzc2lvbiB9PihgJHt0aGlzLklDUF9TRVNTSU9OX0FQSX0vJHtwYXlsb2FkLmNhc2VJZH0vJHtwYXlsb2FkLmRvY3VtZW50SWR9YCxcbiAgICAgICAgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5ib2R5KSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -27,7 +27,9 @@ export class IcpUpdateService {
|
|
|
27
27
|
}
|
|
28
28
|
removeParticipant(participantId) {
|
|
29
29
|
this.socket.emit(IcpEvents.REMOVE_PARTICIPANT, {
|
|
30
|
-
participantId: participantId,
|
|
30
|
+
participantId: participantId,
|
|
31
|
+
caseId: this.session.caseId,
|
|
32
|
+
documentId: this.session.documentId
|
|
31
33
|
});
|
|
32
34
|
}
|
|
33
35
|
participantListUpdated() {
|
|
@@ -35,14 +37,20 @@ export class IcpUpdateService {
|
|
|
35
37
|
}
|
|
36
38
|
updatePresenter(presenter) {
|
|
37
39
|
this.socket.emit(IcpEvents.UPDATE_PRESENTER, {
|
|
38
|
-
...this.session,
|
|
40
|
+
...this.session,
|
|
41
|
+
presenterId: presenter.id,
|
|
42
|
+
presenterName: presenter.username
|
|
39
43
|
});
|
|
40
44
|
}
|
|
41
45
|
presenterUpdated() {
|
|
42
46
|
return this.socket.listen(IcpEvents.PRESENTER_UPDATED);
|
|
43
47
|
}
|
|
44
48
|
updateScreen(screen) {
|
|
45
|
-
const update = {
|
|
49
|
+
const update = {
|
|
50
|
+
body: screen,
|
|
51
|
+
caseId: this.session.caseId,
|
|
52
|
+
documentId: this.session.documentId
|
|
53
|
+
};
|
|
46
54
|
this.socket.emit(IcpEvents.UPDATE_SCREEN, update);
|
|
47
55
|
}
|
|
48
56
|
screenUpdated() {
|
|
@@ -54,4 +62,4 @@ export class IcpUpdateService {
|
|
|
54
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpUpdateService, decorators: [{
|
|
55
63
|
type: Injectable
|
|
56
64
|
}], ctorParameters: function () { return [{ type: i1.SocketService }]; } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLXVwZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvaWNwL2ljcC11cGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUd6QyxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBSSxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE9BQW1CO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM5QyxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ2pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRTtZQUM3QyxhQUFhLEVBQUUsYUFBYTtZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBeUI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1lBQzNDLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDekIsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBdUI7UUFDbEMsTUFBTSxNQUFNLEdBQUc7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtTQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O2lJQWhFVSxnQkFBZ0I7cUlBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4vc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwUGFydGljaXBhbnQsIEljcFNjcmVlblVwZGF0ZSwgSWNwU2Vzc2lvbiB9IGZyb20gJy4vaWNwLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWNwRXZlbnRzIH0gZnJvbSAnLi9pY3AuZXZlbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcFVwZGF0ZVNlcnZpY2Uge1xuXG4gIHNlc3Npb246IEljcFNlc3Npb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzb2NrZXQ6IFNvY2tldFNlcnZpY2UpIHsgfVxuXG4gIGpvaW5TZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcsIHNlc3Npb246IEljcFNlc3Npb24pIHtcbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgIHRoaXMuc29ja2V0LmNvbm5lY3Qoc2Vzc2lvbi5jb25uZWN0aW9uVXJsKTtcbiAgICB0aGlzLnNvY2tldC5jb25uZWN0ZWQoKS5zdWJzY3JpYmUoaXNDb25uZWN0ZWQgPT4ge1xuICAgICAgaWYgKGlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuc29ja2V0LmpvaW4oeyAuLi50aGlzLnNlc3Npb24sIHVzZXJuYW1lIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5saXN0ZW4oSWNwRXZlbnRzLlNFU1NJT05fSk9JTkVEKTtcbiAgfVxuXG4gIGxlYXZlU2Vzc2lvbigpIHtcbiAgICB0aGlzLnNvY2tldC5sZWF2ZSh0aGlzLnNlc3Npb24pO1xuICB9XG5cbiAgbmV3UGFydGljaXBhbnRKb2luZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuTkVXX1BBUlRJQ0lQQU5UX0pPSU5FRCk7XG4gIH1cblxuICBjbGllbnREaXNjb25uZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuQ0xJRU5UX0RJU0NPTk5FQ1RFRCk7XG4gIH1cblxuICByZW1vdmVQYXJ0aWNpcGFudChwYXJ0aWNpcGFudElkKSB7XG4gICAgdGhpcy5zb2NrZXQuZW1pdChJY3BFdmVudHMuUkVNT1ZFX1BBUlRJQ0lQQU5ULCB7XG4gICAgICBwYXJ0aWNpcGFudElkOiBwYXJ0aWNpcGFudElkLFxuICAgICAgY2FzZUlkOiB0aGlzLnNlc3Npb24uY2FzZUlkLFxuICAgICAgZG9jdW1lbnRJZDogdGhpcy5zZXNzaW9uLmRvY3VtZW50SWRcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnRpY2lwYW50TGlzdFVwZGF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0Lmxpc3RlbihJY3BFdmVudHMuUEFSVElDSVBBTlRTX1VQREFURUQpO1xuICB9XG5cbiAgdXBkYXRlUHJlc2VudGVyKHByZXNlbnRlcjogSWNwUGFydGljaXBhbnQpIHtcbiAgICB0aGlzLnNvY2tldC5lbWl0KEljcEV2ZW50cy5VUERBVEVfUFJFU0VOVEVSLCB7XG4gICAgICAuLi50aGlzLnNlc3Npb24sXG4gICAgICBwcmVzZW50ZXJJZDogcHJlc2VudGVyLmlkLFxuICAgICAgcHJlc2VudGVyTmFtZTogcHJlc2VudGVyLnVzZXJuYW1lXG4gICAgfSk7XG4gIH1cblxuICBwcmVzZW50ZXJVcGRhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5saXN0ZW4oSWNwRXZlbnRzLlBSRVNFTlRFUl9VUERBVEVEKTtcbiAgfVxuXG4gIHVwZGF0ZVNjcmVlbihzY3JlZW46IEljcFNjcmVlblVwZGF0ZSkge1xuICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgIGJvZHk6IHNjcmVlbixcbiAgICAgIGNhc2VJZDogdGhpcy5zZXNzaW9uLmNhc2VJZCxcbiAgICAgIGRvY3VtZW50SWQ6IHRoaXMuc2Vzc2lvbi5kb2N1bWVudElkXG4gICAgfTtcbiAgICB0aGlzLnNvY2tldC5lbWl0KEljcEV2ZW50cy5VUERBVEVfU0NSRUVOLCB1cGRhdGUpO1xuICB9XG5cbiAgc2NyZWVuVXBkYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQubGlzdGVuKEljcEV2ZW50cy5TQ1JFRU5fVVBEQVRFRCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9pY3AvaWNwLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBkZlBvc2l0aW9uIH0gZnJvbSAnLi4vc3RvcmUvcmVkdWNlcnMvZG9jdW1lbnQucmVkdWNlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwU3RhdGUge1xuICBzZXNzaW9uOiBJY3BTZXNzaW9uO1xuICBwcmVzZW50ZXI6IEljcFBhcnRpY2lwYW50O1xuICBjbGllbnQ6IEljcFBhcnRpY2lwYW50O1xuICBwYXJ0aWNpcGFudHM6IEljcFBhcnRpY2lwYW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwU2Vzc2lvbiB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG4gIGNhc2VJZDogc3RyaW5nO1xuICBkYXRlT2ZIZWFyaW5nOiBEYXRlO1xuICBjb25uZWN0aW9uVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwUGFydGljaXBhbnQge1xuICBpZDogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcFNjcmVlblVwZGF0ZSB7XG4gIHBkZlBvc2l0aW9uOiBQZGZQb3NpdGlvbjtcbiAgZG9jdW1lbnQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { select } from '@ngrx/store';
|
|
3
3
|
import * as fromIcpActions from '../store/actions/icp.actions';
|
|
4
4
|
import * as fromIcpSelectors from '../store/selectors/icp.selectors';
|
|
5
|
+
import * as fromDocument from '../store/selectors/document.selectors';
|
|
5
6
|
import { filter, take } from 'rxjs/operators';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../toolbar/toolbar-event.service";
|
|
@@ -21,8 +22,9 @@ export class IcpService {
|
|
|
21
22
|
this.subscription = this.store.pipe(select(fromIcpSelectors.getCaseId), filter(value => !!value)).subscribe(caseId => {
|
|
22
23
|
this.caseId = caseId;
|
|
23
24
|
});
|
|
25
|
+
this.subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));
|
|
24
26
|
this.subscription.add(this.toolbarEvents.icp.sessionLaunch.subscribe(() => {
|
|
25
|
-
if (this.caseId) {
|
|
27
|
+
if (this.caseId && this.documentId) {
|
|
26
28
|
this.launchSession();
|
|
27
29
|
}
|
|
28
30
|
}));
|
|
@@ -32,7 +34,7 @@ export class IcpService {
|
|
|
32
34
|
this.subscription.unsubscribe();
|
|
33
35
|
}
|
|
34
36
|
launchSession() {
|
|
35
|
-
this.store.dispatch(new fromIcpActions.LoadIcpSession(this.caseId));
|
|
37
|
+
this.store.dispatch(new fromIcpActions.LoadIcpSession({ caseId: this.caseId, documentId: this.documentId }));
|
|
36
38
|
this.subscription.add(this.store.pipe(select(fromIcpSelectors.getIcpSession), filter(value => !!value && Object.keys(value).length > 1), take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));
|
|
37
39
|
}
|
|
38
40
|
setUpSessionSubscriptions() {
|
|
@@ -90,4 +92,4 @@ export class IcpService {
|
|
|
90
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpService, decorators: [{
|
|
91
93
|
type: Injectable
|
|
92
94
|
}], ctorParameters: function () { return [{ type: i1.ToolbarEventService }, { type: i2.ViewerEventService }, { type: i3.IcpUpdateService }, { type: i4.IcpPresenterService }, { type: i5.IcpFollowerService }, { type: i6.Store }]; } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9pY3AvaWNwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQVF0RCxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxjQUFjLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBRzlDLE1BQU0sT0FBTyxVQUFVO0lBVXJCLFlBQTZCLGFBQWtDLEVBQ2xDLFlBQWdDLEVBQ2hDLGFBQStCLEVBQy9CLHNCQUEyQyxFQUMzQyxxQkFBeUMsRUFDbEQsS0FBc0I7UUFMYixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXFCO1FBQzNDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUFDbEQsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25ILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlB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QUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sU0FBUyxHQUFtQixFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFNO1FBQ3ZCLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsYUFBYTtRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7OzJIQTVGVSxVQUFVOytIQUFWLFVBQVU7NEZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNwUGFydGljaXBhbnQsIEljcFN0YXRlIH0gZnJvbSAnLi9pY3AuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3ZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi92aWV3ZXJzL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFVwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2ljcC11cGRhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BQcmVzZW50ZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY3AtcHJlc2VudGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwRm9sbG93ZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY3AtZm9sbG93ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbUljcEFjdGlvbnMgZnJvbSAnLi4vc3RvcmUvYWN0aW9ucy9pY3AuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tSWNwU2VsZWN0b3JzIGZyb20gJy4uL3N0b3JlL3NlbGVjdG9ycy9pY3Auc2VsZWN0b3JzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kgIHtcblxuICBjYXNlSWQ6IHN0cmluZztcbiAgY2xpZW50OiBJY3BQYXJ0aWNpcGFudDtcbiAgcHJlc2VudGVyOiBJY3BQYXJ0aWNpcGFudDtcbiAgaXNQcmVzZW50ZXI6IGJvb2xlYW47XG5cbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHNlc3Npb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld2VyRXZlbnRzOiBWaWV3ZXJFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc29ja2V0U2VydmljZTogSWNwVXBkYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcmVzZW50ZXJTdWJzY3JpcHRpb25zOiBJY3BQcmVzZW50ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvbGxvd2VyU3Vic2NyaXB0aW9uczogSWNwRm9sbG93ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxJY3BTdGF0ZT4pIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUljcFNlbGVjdG9ycy5nZXRDYXNlSWQpLCBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSkpLnN1YnNjcmliZShjYXNlSWQgPT4ge1xuICAgICAgdGhpcy5jYXNlSWQgPSBjYXNlSWQ7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMudG9vbGJhckV2ZW50cy5pY3Auc2Vzc2lvbkxhdW5jaC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FzZUlkKSB7IHRoaXMubGF1bmNoU2Vzc2lvbigpOyB9XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZVNlc3Npb24oKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbGF1bmNoU2Vzc2lvbigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tSWNwQWN0aW9ucy5Mb2FkSWNwU2Vzc2lvbih0aGlzLmNhc2VJZCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21JY3BTZWxlY3RvcnMuZ2V0SWNwU2Vzc2lvbiksXG4gICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID4gMSApLFxuICAgICAgdGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHsgdGhpcy5zZXRVcFNlc3Npb25TdWJzY3JpcHRpb25zKCk7IH0pKTtcbiAgfVxuXG4gIHNldFVwU2Vzc2lvblN1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uID0gdGhpcy50b29sYmFyRXZlbnRzLmljcC5iZWNvbWluZ1ByZXNlbnRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5iZWNvbWVQcmVzZW50ZXIoKSk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuaWNwLnN0b3BwaW5nUHJlc2VudGluZy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdG9wUHJlc2VudGluZygpKSk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMuaWNwLnNlc3Npb25FeGl0Q29uZmlybWVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxlYXZlUHJlc2VudGF0aW9uKCkpKTtcbiAgICB0aGlzLnNlc3Npb25TdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tSWNwU2VsZWN0b3JzLmdldFByZXNlbnRlcikpLnN1YnNjcmliZShwcmVzZW50ZXIgPT4gdGhpcy5wcmVzZW50ZXIgPSBwcmVzZW50ZXIgKVxuICAgICk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21JY3BTZWxlY3RvcnMuZ2V0Q2xpZW50KSkuc3Vic2NyaWJlKGNsaWVudCA9PiB0aGlzLmNsaWVudCA9IGNsaWVudCkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tSWNwU2VsZWN0b3JzLmlzUHJlc2VudGVyKSkuc3Vic2NyaWJlKGlzUHJlc2VudGVyID0+IHtcbiAgICAgICAgdGhpcy5pc1ByZXNlbnRlciA9IGlzUHJlc2VudGVyO1xuICAgICAgICB0aGlzLnByZXNlbnRlclN1YnNjcmlwdGlvbnMudXBkYXRlKGlzUHJlc2VudGVyKTtcbiAgICAgICAgdGhpcy5mb2xsb3dlclN1YnNjcmlwdGlvbnMudXBkYXRlKCFpc1ByZXNlbnRlcik7XG4gICAgfSkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy5zb2NrZXRTZXJ2aWNlLmNsaWVudERpc2Nvbm5lY3RlZCgpLnN1YnNjcmliZShjbGkgPT4gdGhpcy5jbGllbnREaXNjb25uZWN0ZWQoY2xpKSkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy5zb2NrZXRTZXJ2aWNlLnByZXNlbnRlclVwZGF0ZWQoKS5zdWJzY3JpYmUocHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21JY3BBY3Rpb25zLkljcFByZXNlbnRlclVwZGF0ZWQocHJlcykpO1xuICAgIH0pKTtcbiAgICB0aGlzLnNlc3Npb25TdWJzY3JpcHRpb24uYWRkKHRoaXMuc29ja2V0U2VydmljZS5wYXJ0aWNpcGFudExpc3RVcGRhdGVkKCkuc3Vic2NyaWJlKHBhcnRpY2lwYW50cyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21JY3BBY3Rpb25zLkljcFBhcnRpY2lwYW50TGlzdFVwZGF0ZWQocGFydGljaXBhbnRzKSk7XG4gICAgfSkpO1xuICB9XG5cbiAgdW5zdWJzY3JpYmVTZXNzaW9uKCkge1xuICAgIHRoaXMucHJlc2VudGVyU3Vic2NyaXB0aW9ucy51cGRhdGUoZmFsc2UpO1xuICAgIHRoaXMuZm9sbG93ZXJTdWJzY3JpcHRpb25zLnVwZGF0ZShmYWxzZSk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBsZWF2ZVByZXNlbnRhdGlvbigpIHtcbiAgICBpZiAodGhpcy5pc1ByZXNlbnRlcikge1xuICAgICAgdGhpcy5zdG9wUHJlc2VudGluZygpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVBhcnRpY2lwYW50KHRoaXMuY2xpZW50LmlkKTtcbiAgICB0aGlzLnNvY2tldFNlcnZpY2UubGVhdmVTZXNzaW9uKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUljcEFjdGlvbnMuTGVhdmVJY3BTb2NrZXRTZXNzaW9uKCkpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVTZXNzaW9uKCk7XG4gIH1cblxuICBzdG9wUHJlc2VudGluZygpIHtcbiAgICBjb25zdCBwcmVzZW50ZXI6IEljcFBhcnRpY2lwYW50ID0ge3VzZXJuYW1lOiAnJywgaWQ6ICcnfTtcbiAgICB0aGlzLnNvY2tldFNlcnZpY2UudXBkYXRlUHJlc2VudGVyKHByZXNlbnRlcik7XG4gIH1cblxuICBiZWNvbWVQcmVzZW50ZXIoKSB7XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVwZGF0ZVByZXNlbnRlcih0aGlzLmNsaWVudCk7XG4gIH1cblxuICBjbGllbnREaXNjb25uZWN0ZWQoY2xpZW50KSB7XG4gICAgaWYgKGNsaWVudCA9PT0gdGhpcy5wcmVzZW50ZXIuaWQpIHtcbiAgICAgIHRoaXMuc3RvcFByZXNlbnRpbmcoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVQYXJ0aWNpcGFudChjbGllbnQpO1xuICB9XG5cbiAgcmVtb3ZlUGFydGljaXBhbnQocGFydGljaXBhbnRJZCkge1xuICAgIHRoaXMuc29ja2V0U2VydmljZS5yZW1vdmVQYXJ0aWNpcGFudChwYXJ0aWNpcGFudElkKTtcbiAgfVxufVxuIl19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9pY3AvaWNwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQVF0RCxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxjQUFjLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxZQUFZLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFHOUMsTUFBTSxPQUFPLFVBQVU7SUFXckIsWUFBNkIsYUFBa0MsRUFDNUMsWUFBZ0MsRUFDaEMsYUFBK0IsRUFDL0Isc0JBQTJDLEVBQzNDLHFCQUF5QyxFQUNsRCxLQUFzQjtRQUxILGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUM1QyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBcUI7UUFDM0MsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQjtRQUNsRCxVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkgsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7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Qzs7MkhBL0ZVLFVBQVU7K0hBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY3BQYXJ0aWNpcGFudCwgSWNwU3RhdGUgfSBmcm9tICcuL2ljcC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFZpZXdlckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3ZpZXdlcnMvdmlld2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwVXBkYXRlU2VydmljZSB9IGZyb20gJy4vaWNwLXVwZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFByZXNlbnRlclNlcnZpY2UgfSBmcm9tICcuL2ljcC1wcmVzZW50ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJY3BGb2xsb3dlclNlcnZpY2UgfSBmcm9tICcuL2ljcC1mb2xsb3dlci5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tSWNwQWN0aW9ucyBmcm9tICcuLi9zdG9yZS9hY3Rpb25zL2ljcC5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGZyb21JY3BTZWxlY3RvcnMgZnJvbSAnLi4vc3RvcmUvc2VsZWN0b3JzL2ljcC5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50IGZyb20gJy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWNwU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgY2FzZUlkOiBzdHJpbmc7XG4gIGNsaWVudDogSWNwUGFydGljaXBhbnQ7XG4gIHByZXNlbnRlcjogSWNwUGFydGljaXBhbnQ7XG4gIGlzUHJlc2VudGVyOiBib29sZWFuO1xuICBkb2N1bWVudElkOiBzdHJpbmc7XG5cbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHNlc3Npb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3ZXJFdmVudHM6IFZpZXdlckV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNvY2tldFNlcnZpY2U6IEljcFVwZGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVzZW50ZXJTdWJzY3JpcHRpb25zOiBJY3BQcmVzZW50ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9sbG93ZXJTdWJzY3JpcHRpb25zOiBJY3BGb2xsb3dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8SWNwU3RhdGU+KSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21JY3BTZWxlY3RvcnMuZ2V0Q2FzZUlkKSwgZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpKS5zdWJzY3JpYmUoY2FzZUlkID0+IHtcbiAgICAgIHRoaXMuY2FzZUlkID0gY2FzZUlkO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudC5nZXREb2N1bWVudElkKSkuc3Vic2NyaWJlKGRvY0lkID0+IHRoaXMuZG9jdW1lbnRJZCA9IGRvY0lkKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMudG9vbGJhckV2ZW50cy5pY3Auc2Vzc2lvbkxhdW5jaC5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICBpZiAodGhpcy5jYXNlSWQgJiYgdGhpcy5kb2N1bWVudElkKSB7IHRoaXMubGF1bmNoU2Vzc2lvbigpOyB9XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZVNlc3Npb24oKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbGF1bmNoU2Vzc2lvbigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tSWNwQWN0aW9ucy5Mb2FkSWNwU2Vzc2lvbih7IGNhc2VJZDogdGhpcy5jYXNlSWQsIGRvY3VtZW50SWQ6IHRoaXMuZG9jdW1lbnRJZCB9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUljcFNlbGVjdG9ycy5nZXRJY3BTZXNzaW9uKSxcbiAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPiAxKSxcbiAgICAgIHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMuc2V0VXBTZXNzaW9uU3Vic2NyaXB0aW9ucygpOyB9KSk7XG4gIH1cblxuICBzZXRVcFNlc3Npb25TdWJzY3JpcHRpb25zKCkge1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbiA9IHRoaXMudG9vbGJhckV2ZW50cy5pY3AuYmVjb21pbmdQcmVzZW50ZXIuc3Vic2NyaWJlKCgpID0+IHRoaXMuYmVjb21lUHJlc2VudGVyKCkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLmljcC5zdG9wcGluZ1ByZXNlbnRpbmcuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RvcFByZXNlbnRpbmcoKSkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLmljcC5zZXNzaW9uRXhpdENvbmZpcm1lZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sZWF2ZVByZXNlbnRhdGlvbigpKSk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbUljcFNlbGVjdG9ycy5nZXRQcmVzZW50ZXIpKS5zdWJzY3JpYmUocHJlc2VudGVyID0+IHRoaXMucHJlc2VudGVyID0gcHJlc2VudGVyKVxuICAgICk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21JY3BTZWxlY3RvcnMuZ2V0Q2xpZW50KSkuc3Vic2NyaWJlKGNsaWVudCA9PiB0aGlzLmNsaWVudCA9IGNsaWVudCkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tSWNwU2VsZWN0b3JzLmlzUHJlc2VudGVyKSkuc3Vic2NyaWJlKGlzUHJlc2VudGVyID0+IHtcbiAgICAgIHRoaXMuaXNQcmVzZW50ZXIgPSBpc1ByZXNlbnRlcjtcbiAgICAgIHRoaXMucHJlc2VudGVyU3Vic2NyaXB0aW9ucy51cGRhdGUoaXNQcmVzZW50ZXIpO1xuICAgICAgdGhpcy5mb2xsb3dlclN1YnNjcmlwdGlvbnMudXBkYXRlKCFpc1ByZXNlbnRlcik7XG4gICAgfSkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy5zb2NrZXRTZXJ2aWNlLmNsaWVudERpc2Nvbm5lY3RlZCgpLnN1YnNjcmliZShjbGkgPT4gdGhpcy5jbGllbnREaXNjb25uZWN0ZWQoY2xpKSkpO1xuICAgIHRoaXMuc2Vzc2lvblN1YnNjcmlwdGlvbi5hZGQodGhpcy5zb2NrZXRTZXJ2aWNlLnByZXNlbnRlclVwZGF0ZWQoKS5zdWJzY3JpYmUocHJlcyA9PiB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tSWNwQWN0aW9ucy5JY3BQcmVzZW50ZXJVcGRhdGVkKHByZXMpKTtcbiAgICB9KSk7XG4gICAgdGhpcy5zZXNzaW9uU3Vic2NyaXB0aW9uLmFkZCh0aGlzLnNvY2tldFNlcnZpY2UucGFydGljaXBhbnRMaXN0VXBkYXRlZCgpLnN1YnNjcmliZShwYXJ0aWNpcGFudHMgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbUljcEFjdGlvbnMuSWNwUGFydGljaXBhbnRMaXN0VXBkYXRlZChwYXJ0aWNpcGFudHMpKTtcbiAgICB9KSk7XG4gIH1cblxuICB1bnN1YnNjcmliZVNlc3Npb24oKSB7XG4gICAgdGhpcy5wcmVzZW50ZXJTdWJzY3JpcHRpb25zLnVwZGF0ZShmYWxzZSk7XG4gICAgdGhpcy5mb2xsb3dlclN1YnNjcmlwdGlvbnMudXBkYXRlKGZhbHNlKTtcbiAgICB0aGlzLnNlc3Npb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGxlYXZlUHJlc2VudGF0aW9uKCkge1xuICAgIGlmICh0aGlzLmlzUHJlc2VudGVyKSB7XG4gICAgICB0aGlzLnN0b3BQcmVzZW50aW5nKCk7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlUGFydGljaXBhbnQodGhpcy5jbGllbnQuaWQpO1xuICAgIHRoaXMuc29ja2V0U2VydmljZS5sZWF2ZVNlc3Npb24oKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBmcm9tSWNwQWN0aW9ucy5MZWF2ZUljcFNvY2tldFNlc3Npb24oKSk7XG4gICAgdGhpcy51bnN1YnNjcmliZVNlc3Npb24oKTtcbiAgfVxuXG4gIHN0b3BQcmVzZW50aW5nKCkge1xuICAgIGNvbnN0IHByZXNlbnRlcjogSWNwUGFydGljaXBhbnQgPSB7IHVzZXJuYW1lOiAnJywgaWQ6ICcnIH07XG4gICAgdGhpcy5zb2NrZXRTZXJ2aWNlLnVwZGF0ZVByZXNlbnRlcihwcmVzZW50ZXIpO1xuICB9XG5cbiAgYmVjb21lUHJlc2VudGVyKCkge1xuICAgIHRoaXMuc29ja2V0U2VydmljZS51cGRhdGVQcmVzZW50ZXIodGhpcy5jbGllbnQpO1xuICB9XG5cbiAgY2xpZW50RGlzY29ubmVjdGVkKGNsaWVudCkge1xuICAgIGlmIChjbGllbnQgPT09IHRoaXMucHJlc2VudGVyLmlkKSB7XG4gICAgICB0aGlzLnN0b3BQcmVzZW50aW5nKCk7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlUGFydGljaXBhbnQoY2xpZW50KTtcbiAgfVxuXG4gIHJlbW92ZVBhcnRpY2lwYW50KHBhcnRpY2lwYW50SWQpIHtcbiAgICB0aGlzLnNvY2tldFNlcnZpY2UucmVtb3ZlUGFydGljaXBhbnQocGFydGljaXBhbnRJZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -53,4 +53,4 @@ export class IcpParticipantListUpdated {
|
|
|
53
53
|
this.type = ICP_PARTICIPANT_LIST_UPDATED;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9hY3Rpb25zL2ljcC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyw0QkFBNEIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRywyQkFBMkIsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyw0QkFBNEIsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx5QkFBeUIsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUU3RSxNQUFNLE9BQU8sU0FBUztJQUVwQixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUR6QixTQUFJLEdBQUcsV0FBVyxDQUFDO0lBQ1UsQ0FBQztDQUN4QztBQUVELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW1CLE9BQStDO1FBQS9DLFlBQU8sR0FBUCxPQUFPLENBQXdDO1FBRHpELFNBQUksR0FBRyxnQkFBZ0IsQ0FBQztJQUNxQyxDQUFDO0NBQ3hFO0FBRUQsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUFtQixPQUFjO1FBQWQsWUFBTyxHQUFQLE9BQU8sQ0FBTztRQUR4QixTQUFJLEdBQUcscUJBQXFCLENBQUM7SUFDRCxDQUFDO0NBQ3ZDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFtQixPQUFrRDtRQUFsRCxZQUFPLEdBQVAsT0FBTyxDQUEyQztRQUQ1RCxTQUFJLEdBQUcsdUJBQXVCLENBQUM7SUFDaUMsQ0FBQztDQUMzRTtBQUVELE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBbUIsT0FBd0c7UUFBeEcsWUFBTyxHQUFQLE9BQU8sQ0FBaUc7UUFEbEgsU0FBSSxHQUFHLHlCQUF5QixDQUFDO0lBQ3FGLENBQUM7Q0FDakk7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDO1FBRFMsU0FBSSxHQUFHLHdCQUF3QixDQUFDO0lBQ3pCLENBQUM7Q0FDbEI7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW1CLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBRGpDLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUNRLENBQUM7Q0FDaEQ7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQW1CLE9BQVk7UUFBWixZQUFPLEdBQVAsT0FBTyxDQUFLO1FBRHRCLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUNWLENBQUM7Q0FDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBJY3BQYXJ0aWNpcGFudCwgSWNwU2Vzc2lvbiB9IGZyb20gJy4uLy4uL2ljcC9pY3AuaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBTRVRfQ0FTRV9JRCA9ICdbSWNwXSBTZXQgQ2FzZSBJZCc7XG5leHBvcnQgY29uc3QgTE9BRF9JQ1BfU0VTU0lPTiA9ICdbSWNwXSBMb2FkIFNlc3Npb24nO1xuZXhwb3J0IGNvbnN0IExPQURfSUNQX1NFU1NJT05fRkFJTCA9ICdbSWNwXSBMb2FkIFNlc3Npb24gRmFpbHVyZSc7XG5leHBvcnQgY29uc3QgSk9JTl9JQ1BfU09DS0VUX1NFU1NJT04gPSAnW0ljcF0gSm9pbiBTb2NrZXQgU2Vzc2lvbic7XG5leHBvcnQgY29uc3QgSUNQX1NPQ0tFVF9TRVNTSU9OX0pPSU5FRCA9ICdbSWNwXSBTb2NrZXQgU2Vzc2lvbiBKb2luZWQnO1xuZXhwb3J0IGNvbnN0IExFQVZFX0lDUF9TT0NLRVRfU0VTU0lPTiA9ICdbSWNwXSBMZWF2ZSBTb2NrZXQgU2Vzc2lvbic7XG5leHBvcnQgY29uc3QgSUNQX1BSRVNFTlRFUl9VUERBVEVEID0gJ1tJY3BdIFByZXNlbnRlciBVcGRhdGVkJztcbmV4cG9ydCBjb25zdCBJQ1BfUEFSVElDSVBBTlRfTElTVF9VUERBVEVEID0gJ1tJY3BdIFBhcnRpY2lwYW50IExpc3QgVXBkYXRlZCc7XG5cbmV4cG9ydCBjbGFzcyBTZXRDYXNlSWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gU0VUX0NBU0VfSUQ7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZEljcFNlc3Npb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gTE9BRF9JQ1BfU0VTU0lPTjtcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgY2FzZUlkOiBzdHJpbmcsIGRvY3VtZW50SWQ6IHN0cmluZyB9KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRJY3BTZXNzaW9uRmFpbHVyZSBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBMT0FEX0lDUF9TRVNTSU9OX0ZBSUw7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBFcnJvcikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBKb2luSWNwU29ja2V0U2Vzc2lvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBKT0lOX0lDUF9TT0NLRVRfU0VTU0lPTjtcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgdXNlcm5hbWU6IHN0cmluZywgc2Vzc2lvbjogSWNwU2Vzc2lvbiB9KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEljcFNvY2tldFNlc3Npb25Kb2luZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gSUNQX1NPQ0tFVF9TRVNTSU9OX0pPSU5FRDtcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgc2Vzc2lvbjogSWNwU2Vzc2lvbiwgcGFydGljaXBhbnRJbmZvOiB7IGNsaWVudDogSWNwUGFydGljaXBhbnQsIHByZXNlbnRlcjogSWNwUGFydGljaXBhbnQgfSB9KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExlYXZlSWNwU29ja2V0U2Vzc2lvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBMRUFWRV9JQ1BfU09DS0VUX1NFU1NJT047XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBJY3BQcmVzZW50ZXJVcGRhdGVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgdHlwZSA9IElDUF9QUkVTRU5URVJfVVBEQVRFRDtcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEljcFBhcnRpY2lwYW50KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEljcFBhcnRpY2lwYW50TGlzdFVwZGF0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSB0eXBlID0gSUNQX1BBUlRJQ0lQQU5UX0xJU1RfVVBEQVRFRDtcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IGFueSkgeyB9XG59XG5cbmV4cG9ydCB0eXBlIEljcEFjdGlvbnMgPVxuICB8IFNldENhc2VJZFxuICB8IExvYWRJY3BTZXNzaW9uXG4gIHwgTG9hZEljcFNlc3Npb25GYWlsdXJlXG4gIHwgSm9pbkljcFNvY2tldFNlc3Npb25cbiAgfCBJY3BTb2NrZXRTZXNzaW9uSm9pbmVkXG4gIHwgTGVhdmVJY3BTb2NrZXRTZXNzaW9uXG4gIHwgSWNwUHJlc2VudGVyVXBkYXRlZFxuICB8IEljcFBhcnRpY2lwYW50TGlzdFVwZGF0ZWQ7XG4iXX0=
|
|
@@ -12,7 +12,7 @@ export class IcpEffects {
|
|
|
12
12
|
this.actions$ = actions$;
|
|
13
13
|
this.icpApiService = icpApiService;
|
|
14
14
|
this.icpUpdateService = icpUpdateService;
|
|
15
|
-
this.loadIcpSession$ = createEffect(() => this.actions$.pipe(ofType(icpActions.LOAD_ICP_SESSION), map((action) => action.payload), exhaustMap((
|
|
15
|
+
this.loadIcpSession$ = createEffect(() => this.actions$.pipe(ofType(icpActions.LOAD_ICP_SESSION), map((action) => action.payload), exhaustMap((payload) => this.icpApiService.loadSession(payload)
|
|
16
16
|
.pipe(map(res => new icpActions.JoinIcpSocketSession(res)), catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))))));
|
|
17
17
|
this.joinIcpSocketSession$ = createEffect(() => this.actions$.pipe(ofType(icpActions.JOIN_ICP_SOCKET_SESSION), map((action) => action.payload), switchMap((res) => this.icpUpdateService.joinSession(res.username, res.session)
|
|
18
18
|
.pipe(map(participants => new icpActions.IcpSocketSessionJoined({ session: res.session, participantInfo: participants }))))));
|
|
@@ -23,4 +23,4 @@ export class IcpEffects {
|
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IcpEffects, decorators: [{
|
|
24
24
|
type: Injectable
|
|
25
25
|
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.IcpSessionApiService }, { type: i3.IcpUpdateService }]; } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2ljcC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUIsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFJckQsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsUUFBaUIsRUFDM0IsYUFBbUMsRUFDbkMsZ0JBQWtDO1FBRnhCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFFNUMsb0JBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQ25DLEdBQUcsQ0FBQyxDQUFDLE1BQWlDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDMUQsVUFBVSxDQUFDLENBQUMsT0FBK0MsRUFBRSxFQUFFLENBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUNwQyxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDcEQsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDckUsQ0FDSixDQUFDLENBQ0wsQ0FBQztRQUdGLDBCQUFxQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsRUFDMUMsR0FBRyxDQUFDLENBQUMsTUFBdUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNoRSxTQUFTLENBQUMsQ0FBQyxHQUE4QyxFQUFFLEVBQUUsQ0FDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUM3SCxDQUFDLENBQ0wsQ0FBQztJQXhCOEMsQ0FBQzs7MkhBSnRDLFVBQVU7K0hBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGV4aGF1c3RNYXAsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljcFNlc3Npb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaWNwL2ljcC1zZXNzaW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEljcFVwZGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9pY3AvaWNwLXVwZGF0ZS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGljcEFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucy9pY3AuYWN0aW9ucyc7XG5pbXBvcnQgeyBJY3BTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaWNwL2ljcC5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEljcEVmZmVjdHMge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBpY3BBcGlTZXJ2aWNlOiBJY3BTZXNzaW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGljcFVwZGF0ZVNlcnZpY2U6IEljcFVwZGF0ZVNlcnZpY2UpIHsgfVxuXG4gIGxvYWRJY3BTZXNzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShpY3BBY3Rpb25zLkxPQURfSUNQX1NFU1NJT04pLFxuICAgICAgbWFwKChhY3Rpb246IGljcEFjdGlvbnMuTG9hZEljcFNlc3Npb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICAgIGV4aGF1c3RNYXAoKHBheWxvYWQ6IHsgY2FzZUlkOiBzdHJpbmcsIGRvY3VtZW50SWQ6IHN0cmluZyB9KSA9PlxuICAgICAgICB0aGlzLmljcEFwaVNlcnZpY2UubG9hZFNlc3Npb24ocGF5bG9hZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcChyZXMgPT4gbmV3IGljcEFjdGlvbnMuSm9pbkljcFNvY2tldFNlc3Npb24ocmVzKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IG9mKG5ldyBpY3BBY3Rpb25zLkxvYWRJY3BTZXNzaW9uRmFpbHVyZShlcnJvcikpKVxuICAgICAgICAgIClcbiAgICAgICkpXG4gICk7XG5cblxuICBqb2luSWNwU29ja2V0U2Vzc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoaWNwQWN0aW9ucy5KT0lOX0lDUF9TT0NLRVRfU0VTU0lPTiksXG4gICAgICBtYXAoKGFjdGlvbjogaWNwQWN0aW9ucy5Kb2luSWNwU29ja2V0U2Vzc2lvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgICAgc3dpdGNoTWFwKChyZXM6IHsgdXNlcm5hbWU6IHN0cmluZywgc2Vzc2lvbjogSWNwU2Vzc2lvbiB9KSA9PlxuICAgICAgICB0aGlzLmljcFVwZGF0ZVNlcnZpY2Uuam9pblNlc3Npb24ocmVzLnVzZXJuYW1lLCByZXMuc2Vzc2lvbilcbiAgICAgICAgICAucGlwZShtYXAocGFydGljaXBhbnRzID0+IG5ldyBpY3BBY3Rpb25zLkljcFNvY2tldFNlc3Npb25Kb2luZWQoeyBzZXNzaW9uOiByZXMuc2Vzc2lvbiwgcGFydGljaXBhbnRJbmZvOiBwYXJ0aWNpcGFudHMgfSkpKVxuICAgICAgKSlcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -31,7 +31,8 @@ export class BookmarksComponent {
|
|
|
31
31
|
this._bookmarkNodes = [];
|
|
32
32
|
// expansion model tracks expansion state
|
|
33
33
|
this.expansionModel = new SelectionModel(true);
|
|
34
|
-
this.
|
|
34
|
+
this.isDraggingOn = false;
|
|
35
|
+
this.isUserdragging = false;
|
|
35
36
|
this.expandDelay = 1000;
|
|
36
37
|
this.pageLookup = {};
|
|
37
38
|
this.BOOKMARK_CHAR_LIMIT = 30;
|
|
@@ -148,12 +149,14 @@ export class BookmarksComponent {
|
|
|
148
149
|
}
|
|
149
150
|
positionSortBookmarks() {
|
|
150
151
|
this.bookmarkNodes.sort((a, b) => a.pageNumber === b.pageNumber ? a.yCoordinate - b.yCoordinate : a.pageNumber - b.pageNumber);
|
|
152
|
+
this.isDraggingOn = false;
|
|
151
153
|
this.rebuildTreeForData(this.bookmarkNodes);
|
|
152
154
|
}
|
|
153
155
|
customSortBookmarks() {
|
|
154
156
|
if (this.bookmarkNodes.length > 1) {
|
|
155
157
|
this.bookmarkNodes.sort((a, b) => a.index - b.index);
|
|
156
158
|
}
|
|
159
|
+
this.isDraggingOn = true;
|
|
157
160
|
this.rebuildTreeForData(this.bookmarkNodes);
|
|
158
161
|
}
|
|
159
162
|
scaledY(yCoordinate, height, page) {
|
|
@@ -256,13 +259,13 @@ export class BookmarksComponent {
|
|
|
256
259
|
dragStart() {
|
|
257
260
|
this.dragNodeInsertToParent = false;
|
|
258
261
|
this.hoveredNode = null;
|
|
259
|
-
this.
|
|
262
|
+
this.isUserdragging = true;
|
|
260
263
|
}
|
|
261
264
|
dragEnd() {
|
|
262
|
-
this.
|
|
265
|
+
this.isUserdragging = false;
|
|
263
266
|
}
|
|
264
267
|
dragHover(event, node) {
|
|
265
|
-
if (this.
|
|
268
|
+
if (this.isUserdragging) {
|
|
266
269
|
const newEvent = event;
|
|
267
270
|
const percentageX = newEvent.offsetX / newEvent.target.clientWidth;
|
|
268
271
|
if (percentageX > .55) {
|
|
@@ -273,19 +276,14 @@ export class BookmarksComponent {
|
|
|
273
276
|
this.hoveredNode = null;
|
|
274
277
|
this.dragNodeInsertToParent = false;
|
|
275
278
|
}
|
|
276
|
-
clearTimeout(this.expandTimeout);
|
|
277
|
-
this.expandTimeout = setTimeout(() => {
|
|
278
|
-
this.treeControl.expand(node);
|
|
279
|
-
}, this.expandDelay);
|
|
280
279
|
}
|
|
281
280
|
}
|
|
282
281
|
dragHoverEnd(event, node) {
|
|
283
|
-
if (this.
|
|
282
|
+
if (this.isUserdragging) {
|
|
284
283
|
if (!node || this.hoveredNode?.id !== node.id) {
|
|
285
284
|
this.dragNodeInsertToParent = false;
|
|
286
285
|
this.hoveredNode = null;
|
|
287
286
|
}
|
|
288
|
-
clearTimeout(this.expandTimeout);
|
|
289
287
|
}
|
|
290
288
|
}
|
|
291
289
|
onNodeExpand(node) {
|
|
@@ -338,10 +336,10 @@ export class BookmarksComponent {
|
|
|
338
336
|
}
|
|
339
337
|
}
|
|
340
338
|
/** @nocollapse */ BookmarksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BookmarksComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
|
|
341
|
-
/** @nocollapse */ BookmarksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BookmarksComponent, selector: "mv-bookmarks", inputs: { bookmarkNodes: "bookmarkNodes", zoom: "zoom", rotate: "rotate" }, outputs: { goToDestination: "goToDestination" }, ngImport: i0, template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkNestedTreeNode, selector: "cdk-nested-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i3.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i3.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] });
|
|
339
|
+
/** @nocollapse */ BookmarksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BookmarksComponent, selector: "mv-bookmarks", inputs: { bookmarkNodes: "bookmarkNodes", zoom: "zoom", rotate: "rotate" }, outputs: { goToDestination: "goToDestination" }, ngImport: i0, template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkNestedTreeNode, selector: "cdk-nested-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["cdkNestedTreeNode"] }, { kind: "directive", type: i3.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i3.CdkTreeNodeToggle, selector: "[cdkTreeNodeToggle]", inputs: ["cdkTreeNodeToggleRecursive"] }, { kind: "component", type: i3.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "trackBy"], exportAs: ["cdkTree"] }, { kind: "directive", type: i3.CdkTreeNodeOutlet, selector: "[cdkTreeNodeOutlet]" }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] });
|
|
342
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BookmarksComponent, decorators: [{
|
|
343
341
|
type: Component,
|
|
344
|
-
args: [{ selector: 'mv-bookmarks', template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n" }]
|
|
342
|
+
args: [{ selector: 'mv-bookmarks', template: "<a *ngIf=\"bookmarkNodes?.length === 0\" class=\"highlightedOutlineItem\"\n >No bookmarks created yet</a\n>\n<cdk-tree\n cdkDropList\n [cdkDropListDisabled]=\"!isDraggingOn\"\n class=\"bookmarks-tree\"\n *ngIf=\"datasource\"\n [dataSource]=\"datasource\"\n [treeControl]=\"treeControl\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <!-- This is the tree node template for leaf nodes -->\n <cdk-nested-tree-node class=\"node-wrapper\" *cdkTreeNodeDef=\"let node\">\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n </cdk-nested-tree-node>\n <!-- This is the tree node template for expandable nodes -->\n <cdk-nested-tree-node\n class=\"node-wrapper\"\n *cdkTreeNodeDef=\"let node; when: hasChild\"\n >\n <div *ngIf=\"node.id !== editableBookmark; else inputBookmark2\">\n <div\n class=\"node-content-wrapper nested-tree-node\"\n cdkDrag\n [cdkDragData]=\"node\"\n (mouseenter)=\"dragHover($event, node)\"\n (mouseleave)=\"dragHoverEnd($event, node)\"\n (cdkDragStarted)=\"dragStart()\"\n (cdkDragReleased)=\"dragEnd()\"\n >\n <div class=\"outlineItem\">\n <span\n cdkTreeNodeToggle\n class=\"toggle-children-wrapper\"\n [ngClass]=\"onNodeExpand(node)\"\n ><span class=\"toggle-children\"></span\n ></span>\n <a (click)=\"goToBookmark(node)\">\n {{ node.name }}\n </a>\n </div>\n <button\n class=\"bookmark__rename\"\n (click)=\"editBookmark(node.id)\"\n ></button>\n <button\n class=\"bookmark__delete\"\n (click)=\"deleteBookmark2(node)\"\n ></button>\n </div>\n <div class=\"node-drop-slot\"></div>\n </div>\n <ng-template #inputBookmark2>\n <input\n #bookmarkName\n class=\"bookmark__input\"\n [value]=\"node.name\"\n [maxLength]=\"BOOKMARK_CHAR_LIMIT\"\n />\n <button\n class=\"bookmark__save\"\n (click)=\"updateBookmark(node, bookmarkName.value)\"\n ></button>\n </ng-template>\n <div class=\"nested-tree-node-children\" *ngIf=\"treeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n</cdk-tree>\n" }]
|
|
345
343
|
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { bookmarkNodes: [{
|
|
346
344
|
type: Input
|
|
347
345
|
}], zoom: [{
|
|
@@ -351,4 +349,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
351
349
|
}], goToDestination: [{
|
|
352
350
|
type: Output
|
|
353
351
|
}] } });
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFHNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFILE9BQU8sS0FBSyxrQkFBa0IsTUFBTSxnREFBZ0QsQ0FBQztBQUdyRixPQUFPLEtBQUssWUFBWSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLElBQ0ksYUFBYSxDQUFDLEtBQWlCO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFL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QUMsV0FBVyxHQUFHLElBQUksaUJBQWlCLENBQVcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHVCQUF1QixDQUFDLGdCQUE0QixFQUFFLE1BQWdCO1FBRXBFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7O21JQTNZVSxrQkFBa0I7dUhBQWxCLGtCQUFrQixpTEN4Qi9CLHMwR0EwR0E7NEZEbEZhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxjQUFjOzRGQU9wQixhQUFhO3NCQURoQixLQUFLO2dCQVlHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVNb2NrQWN0aW9ucyB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMvdGVzdGluZyc7XG5pbXBvcnQgeyBCb29rbWFyayB9IGZyb20gJy4vLi4vLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIERlbGV0ZUJvb2ttYXJrLCBNb3ZlQm9va21hcmssIFVwZGF0ZUJvb2ttYXJrIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCAqIGFzIGJvb2ttYXJrc1NlbGVjdG9ycyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvYm9va21hcmsuc2VsZWN0b3JzJztcbmltcG9ydCB7IEFubm90YXRpb25TZXRTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2Fubm90YXRpb25zLnJlZHVjZXInO1xuaW1wb3J0IHsgRG9jdW1lbnRQYWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXInO1xuaW1wb3J0ICogYXMgZnJvbURvY3VtZW50IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9kb2N1bWVudC5zZWxlY3RvcnMnO1xuaW1wb3J0ICogYXMgZnJvbUJvb2ttYXJrcyBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9ib29rbWFya3MucmVkdWNlcic7XG5pbXBvcnQgeyBnZXRCb29rbWFya0NoaWxkcmVuIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYm9va21hcmtzLXN0b3JlLXV0aWxzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB7IEFycmF5RGF0YVNvdXJjZSwgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sLCBOZXN0ZWRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LWJvb2ttYXJrcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib29rbWFya3MuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgQm9va21hcmtzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIHNldCBib29rbWFya05vZGVzKHZhbHVlOiBCb29rbWFya1tdKSB7XG4gICAgdGhpcy5yZWJ1aWxkVHJlZUZvckRhdGEodmFsdWUpO1xuICAgIGlmICh0aGlzLl9ib29rbWFya05vZGVzICYmIHRoaXMuc29ydE1vZGUgIT09IHRoaXMuY3VzdG9tU29ydCkge1xuICAgICAgdGhpcy5zb3J0Qm9va21hcmtzKCk7XG4gICAgfVxuICB9O1xuXG4gIGdldCBib29rbWFya05vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9ib29rbWFya05vZGVzO1xuICB9O1xuXG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBnb1RvRGVzdGluYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIHByaXZhdGUgX2Jvb2ttYXJrTm9kZXM6IEJvb2ttYXJrW10gPSBbXTtcbiAgZGF0YXNvdXJjZTogQXJyYXlEYXRhU291cmNlPEJvb2ttYXJrPjtcbiAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxCb29rbWFyaz47XG4gIGhvdmVyZWROb2RlOiBCb29rbWFyaztcbiAgLy8gZXhwYW5zaW9uIG1vZGVsIHRyYWNrcyBleHBhbnNpb24gc3RhdGVcbiAgZXhwYW5zaW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8Qm9va21hcms+KHRydWUpO1xuICBkcmFnZ2luZyA9IGZhbHNlO1xuICBleHBhbmRUaW1lb3V0OiBhbnk7XG4gIGV4cGFuZERlbGF5ID0gMTAwMDtcbiAgZHJhZ05vZGVJbnNlcnRUb1BhcmVudDogYm9vbGVhbjtcblxuICBwYWdlTG9va3VwOiB7IFtwYWdlSWQ6IG51bWJlcl06IERvY3VtZW50UGFnZXMgfSA9IHt9O1xuICBlZGl0YWJsZUJvb2ttYXJrOiBzdHJpbmc7XG4gIEJPT0tNQVJLX0NIQVJfTElNSVQgPSAzMDtcblxuICBkcmFnTm9kZTogYW55O1xuICBkcmFnTm9kZUV4cGFuZE92ZXJXYWl0VGltZU1zID0gMzAwO1xuICBkcmFnTm9kZUV4cGFuZE92ZXJOb2RlOiBhbnk7XG4gIGRyYWdOb2RlRXhwYW5kT3ZlclRpbWU6IG51bWJlcjtcbiAgZHJhZ05vZGVFeHBhbmRPdmVyQXJlYTogbnVtYmVyO1xuXG4gIG9wdGlvbnMgPSB7XG4gICAgYWxsb3dEcmFnOiB0cnVlLFxuICAgIGFsbG93RHJvcDogdHJ1ZVxuICB9O1xuXG4gICRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNvcnRNb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tU29ydCA9ICdDVVNUT00nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wb3NpdGlvblNvcnQgPSAnUE9TSVRJT04nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21Cb29rbWFya3MuQm9va21hcmtzU3RhdGUgfCBBbm5vdGF0aW9uU2V0U3RhdGU+KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRNb2RlID0gdGhpcy5jdXN0b21Tb3J0O1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEVkaXRhYmxlQm9va21hcmspKVxuICAgICAgLnN1YnNjcmliZShlZGl0YWJsZUlkID0+IHRoaXMuZWRpdGFibGVCb29rbWFyayA9IGVkaXRhYmxlSWQpO1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5zZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKVxuICAgICAgLnN1YnNjcmliZShwYWdlcyA9PiB7XG5cbiAgICAgICAgT2JqZWN0LmtleXMocGFnZXMpLm1hcChrZXkgPT4ge1xuICAgICAgICAgIHRoaXMucGFnZUxvb2t1cFtrZXldID0gcGFnZXNba2V5XTtcbiAgICAgICAgfSk7XG5cbiAgICAgIH0pKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuJHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZWRpdEJvb2ttYXJrKGlkKSB7XG4gICAgdGhpcy5lZGl0YWJsZUJvb2ttYXJrID0gaWQ7XG4gIH1cblxuICBvbkFkZEJvb2ttYXJrQ2xpY2soKSB7XG4gICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0Qm9va21hcmtJbmZvKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJvb2ttYXJrSW5mbykgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBDcmVhdGVCb29rbWFyayh7XG4gICAgICAgICAgLi4uYm9va21hcmtJbmZvLCBuYW1lOiAnJywgaWQ6IHV1aWQoKVxuICAgICAgICB9IGFzIGFueSkpO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGVCb29rbWFyazIobm9kZTogQm9va21hcmspIHtcbiAgICB0aGlzLmN1c3RvbVNvcnRCb29rbWFya3MoKTtcbiAgICBsZXQgbmV4dDogQm9va21hcms7XG5cbiAgICBjb25zdCBjaGFuZ2VkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ib29rbWFya05vZGVzKSk7XG4gICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLmZpbmROb2RlU2libGluZ3MoY2hhbmdlZERhdGEsIG5vZGUuaWQpO1xuICAgIGlmIChzaWJsaW5ncyAmJiBzaWJsaW5ncy5sZW5ndGggPiBub2RlLmluZGV4ICsgMSkge1xuICAgICAgbmV4dCA9IHNpYmxpbmdzW25vZGUuaW5kZXggKyAxXTtcbiAgICAgIG5leHQucHJldmlvdXMgPSBub2RlLnByZXZpb3VzO1xuICAgIH1cbiAgICBjb25zdCB0b0RlbGV0ZSA9IFtub2RlLmlkLCAuLi5nZXRCb29rbWFya0NoaWxkcmVuKG5vZGUuY2hpbGRyZW4pXTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBEZWxldGVCb29rbWFyayh7XG4gICAgICBkZWxldGVkOiB0b0RlbGV0ZSwgdXBkYXRlZDogbmV4dFxuICAgIH0pKTtcbiAgfVxuXG4gIHVwZGF0ZUJvb2ttYXJrKGJvb2ttYXJrOiBCb29rbWFyaywgbmFtZSkge1xuICAgIGNvbnN0IGVkaXRlZEJvb2ttYXJrID0ge1xuICAgICAgLi4uYm9va21hcmssXG4gICAgICBuYW1lXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQm9va21hcmsoZWRpdGVkQm9va21hcmspKTtcbiAgICAgIHRoaXMuZWRpdGFibGVCb29rbWFyayA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBnb1RvQm9va21hcmsoYm9va21hcms6IEJvb2ttYXJrKSB7XG4gICAgY29uc3QgdGhpc1BhZ2UgPSB0aGlzLnBhZ2VMb29rdXBbYm9va21hcmsucGFnZU51bWJlciArIDFdO1xuICAgIGNvbnN0IGRlZmF1bHRIZWlnaHQgPSB0aGlzUGFnZS5zdHlsZXMuaGVpZ2h0O1xuICAgIGNvbnN0IGRlZmF1bHRTY2FsZVkgPSB0aGlzLnNjYWxlZFkoYm9va21hcmsueUNvb3JkaW5hdGUsIGRlZmF1bHRIZWlnaHQsIHRoaXNQYWdlKTtcblxuICAgIGxldCB0b3AgPSAwLCBsZWZ0ID0gMDtcbiAgICBzd2l0Y2ggKHRoaXMucm90YXRlKSB7XG4gICAgICBjYXNlIDkwOlxuICAgICAgICBsZWZ0ID0gLSBkZWZhdWx0U2NhbGVZO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTgwOlxuICAgICAgICB0b3AgPSB0aGlzLnNjYWxlZFkoYm9va21hcmsueUNvb3JkaW5hdGUsIChkZWZhdWx0SGVpZ2h0IC0gKDI0ICogdGhpcy56b29tKSksIHRoaXNQYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI3MDpcbiAgICAgICAgbGVmdCA9IGRlZmF1bHRTY2FsZVk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdG9wID0gZGVmYXVsdFNjYWxlWTtcbiAgICB9XG5cbiAgICB0aGlzLmdvVG9EZXN0aW5hdGlvbi5lbWl0KFtcbiAgICAgIGJvb2ttYXJrLnBhZ2VOdW1iZXIsXG4gICAgICB7ICduYW1lJzogJ1hZWicgfSxcbiAgICAgIGxlZnQsXG4gICAgICB0b3BcbiAgICBdKTtcbiAgfVxuXG4gIGdldCBjdXN0b21Tb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21Tb3J0O1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uU29ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25Tb3J0O1xuICB9XG5cbiAgc29ydChtb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRNb2RlID0gbW9kZTtcbiAgICB0aGlzLnNvcnRCb29rbWFya3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydEJvb2ttYXJrcygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc29ydE1vZGUpIHtcbiAgICAgIGNhc2UgdGhpcy5jdXN0b21Tb3J0OiB7XG4gICAgICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgdGhpcy5wb3NpdGlvblNvcnQ6IHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblNvcnRCb29rbWFya3MoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uU29ydEJvb2ttYXJrcygpIHtcbiAgICB0aGlzLmJvb2ttYXJrTm9kZXMuc29ydCgoYSwgYikgPT4gYS5wYWdlTnVtYmVyID09PSBiLnBhZ2VOdW1iZXIgPyBhLnlDb29yZGluYXRlIC0gYi55Q29vcmRpbmF0ZSA6IGEucGFnZU51bWJlciAtIGIucGFnZU51bWJlcik7XG4gICAgdGhpcy5yZWJ1aWxkVHJlZUZvckRhdGEodGhpcy5ib29rbWFya05vZGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VzdG9tU29ydEJvb2ttYXJrcygpIHtcbiAgICBpZiAodGhpcy5ib29rbWFya05vZGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuYm9va21hcmtOb2Rlcy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleCk7XG4gICAgfVxuICAgIHRoaXMucmVidWlsZFRyZWVGb3JEYXRhKHRoaXMuYm9va21hcmtOb2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlZFkoeUNvb3JkaW5hdGU6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHBhZ2U6IERvY3VtZW50UGFnZXMpOiBudW1iZXIge1xuICAgIGNvbnN0IHZpZXdwb3J0U2NhbGUgPSBwYWdlLnZpZXdwb3J0U2NhbGUgLyB0aGlzLnpvb207XG4gICAgcmV0dXJuICgoaGVpZ2h0IC8gdGhpcy56b29tKSAtIHlDb29yZGluYXRlKSAvIHZpZXdwb3J0U2NhbGU7XG4gIH1cblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEJvb2ttYXJrKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0Tm9kZShib29rbWFya3MsIHBhcmVudElkKSB7XG4gICAgaWYgKHR5cGVvZiBib29rbWFya3MgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJvb2ttYXJrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYm9va21hcmtzW2ldLmlkID09PSBwYXJlbnRJZCkge1xuICAgICAgICAgIHJldHVybiBbYm9va21hcmtzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhID0gdGhpcy5nZXROb2RlKGJvb2ttYXJrc1tpXS5jaGlsZHJlbiwgcGFyZW50SWQpO1xuICAgICAgICBpZiAoYSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8Qm9va21hcms+KSB7XG5cbiAgICBpZiAoIWV2ZW50LmlzUG9pbnRlck92ZXJDb250YWluZXIgfHwgKGV2ZW50LnByZXZpb3VzSW5kZXggPT09IGV2ZW50LmN1cnJlbnRJbmRleCkpIHJldHVybjtcblxuICAgIGNvbnN0IGhhc01vdmVkVXBUaGVUcmVlID0gZXZlbnQucHJldmlvdXNJbmRleCA+IGV2ZW50LmN1cnJlbnRJbmRleDtcbiAgICBjb25zdCBib29rbWFya05vZGVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5fYm9va21hcmtOb2Rlcyk7XG4gICAgY29uc3QgY2hhbmdlZERhdGEgPSBKU09OLnBhcnNlKGJvb2ttYXJrTm9kZXNTdHJpbmcpO1xuICAgIGNvbnN0IHZpc2libGVOb2RlcyA9IHRoaXMudmlzaWJsZU5vZGVzKHRoaXMuX2Jvb2ttYXJrTm9kZXMpO1xuICAgIGNvbnN0IHRvTm9kZSA9IHZpc2libGVOb2Rlc1tldmVudC5jdXJyZW50SW5kZXhdIGFzIEJvb2ttYXJrO1xuICAgIGNvbnN0IHRvTm9kZVNpYmxpbmdzID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGNoYW5nZWREYXRhLCB0b05vZGUuaWQpO1xuXG4gICAgY29uc3QgdG9Ob2RlUGFyZW50ID0gdG9Ob2RlU2libGluZ3NbMF0ucGFyZW50O1xuICAgIGNvbnN0IHRvSW5kZXggPSB0b05vZGVTaWJsaW5ncy5maW5kSW5kZXgocyA9PiBzLmlkID09PSB0b05vZGUuaWQpO1xuXG4gICAgY29uc3QgZnJvbU5vZGUgPSBldmVudC5pdGVtLmRhdGEgYXMgQm9va21hcms7XG4gICAgY29uc3QgZnJvbU5vZGVTaWJsaW5ncyA9IHRoaXMuZmluZE5vZGVTaWJsaW5ncyhjaGFuZ2VkRGF0YSwgZnJvbU5vZGUuaWQpO1xuICAgIGNvbnN0IGZyb21JbmRleCA9IGZyb21Ob2RlU2libGluZ3MuZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gZnJvbU5vZGUuaWQpO1xuXG4gICAgaWYgKHRoaXMuaXNUb05vZGVDaGlsZE9mRnJvbU5vZGUoZnJvbU5vZGU/LmNoaWxkcmVuLCB0b05vZGUpKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50KSB7XG5cbiAgICAgIGNvbnN0IGluZGV4T2ZQYXJlbnQgPSB0b05vZGVTaWJsaW5ncy5maW5kSW5kZXgoZWxlbWVudCA9PiBlbGVtZW50LmlkID09PSB0b05vZGUuaWQpO1xuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRvTm9kZVNpYmxpbmdzW2luZGV4T2ZQYXJlbnRdO1xuICAgICAgY29uc3QgZmlyc3RDaGlsZCA9IHBhcmVudE5vZGU/LmNoaWxkcmVuICYmIHBhcmVudE5vZGU/LmNoaWxkcmVuLmxlbmd0aCA+IDAgPyBwYXJlbnROb2RlLmNoaWxkcmVuWzBdIDogbnVsbDtcbiAgICAgIGxldCBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbeyAuLi5mcm9tTm9kZSwgcGFyZW50OiBwYXJlbnROb2RlLmlkLCBwcmV2aW91czogbnVsbCB9XTtcblxuICAgICAgaWYgKGZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbW92ZWRCb29rbWFya3NXaXRoUGFyZW50ID0gWy4uLm1vdmVkQm9va21hcmtzV2l0aFBhcmVudCwgeyAuLi5maXJzdENoaWxkLCBwcmV2aW91czogZnJvbU5vZGUuaWQgfV07XG4gICAgICB9XG5cbiAgICAgIGxldCBmcm9tTm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIGZyb21JbmRleCArIDEpO1xuICAgICAgY29uc3QgbmV4dEZyb21pbmRleGZvclBhcmVudCA9IGZyb21JbmRleCArIDE7XG4gICAgICBmcm9tTm9kZVNpYmxpbmcgPSBmcm9tTm9kZVNpYmxpbmcgJiYgZnJvbU5vZGVTaWJsaW5nLmlkID09PSBmcm9tTm9kZS5wcmV2aW91cyA/IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3MoZnJvbU5vZGVTaWJsaW5ncywgbmV4dEZyb21pbmRleGZvclBhcmVudCArIDEpIDogZnJvbU5vZGVTaWJsaW5nO1xuXG4gICAgICBpZiAoZnJvbU5vZGVTaWJsaW5nICYmIGZyb21Ob2RlU2libGluZy5pZCAhPT0gcGFyZW50Tm9kZS5pZCkge1xuICAgICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLmZyb21Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLnByZXZpb3VzIH1dO1xuICAgICAgfVxuXG4gICAgICBsZXQgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPSB0b0luZGV4IC0gMTtcbiAgICAgIGxldCBwYXJlbnROb2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3ModG9Ob2RlU2libGluZ3MsIHByZXZpb3VzU2libGluZ0ZvclBhcmVudEluZGV4KTtcblxuICAgICAgaWYgKHBhcmVudE5vZGVTaWJsaW5nICYmIHBhcmVudE5vZGVTaWJsaW5nLmlkID09IGZyb21Ob2RlLmlkKSB7XG4gICAgICAgIHByZXZpb3VzU2libGluZ0ZvclBhcmVudEluZGV4ID0gcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggLSAxO1xuICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPj0gMCkge1xuICAgICAgICAgIHBhcmVudE5vZGVTaWJsaW5nID0gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyh0b05vZGVTaWJsaW5ncywgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHBhcmVudE5vZGVTaWJsaW5nID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLnBhcmVudE5vZGUsIHByZXZpb3VzOiBwYXJlbnROb2RlU2libGluZz8uaWQgfV07XG5cbiAgICAgIGNvbnN0IGhhc1BhcmVudER1cHMgPSAobW92ZWRCb29rbWFya3NXaXRoUGFyZW50IGFzIEJvb2ttYXJrW10pLm1hcCh4ID0+IHguaWQpLnNvbWUoZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLnNvbWUgd2lsbCBicmVhayBhcyBzb29uIGFzIGR1cGxpY2F0ZSBmb3VuZCAobm8gbmVlZCB0byBpdHRlcmF0ZSBvdmVyIGFsbCBhcnJheSlcbiAgICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YodmFsdWUpICE9PSBhcnJheS5sYXN0SW5kZXhPZih2YWx1ZSk7ICAgLy8gY29tcGFyaW5nIGZpcnN0IGFuZCBsYXN0IGluZGV4ZXMgb2YgdGhlIHNhbWUgdmFsdWVcbiAgICAgIH0pXG4gICAgICBpZiAoaGFzUGFyZW50RHVwcyB8fCBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgJiYgbW92ZWRCb29rbWFya3NXaXRoUGFyZW50Lmxlbmd0aCA8PSAxKSByZXR1cm47XG5cbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE1vdmVCb29rbWFyayhtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRvTm9kZVNpYmxpbmdzKSByZXR1cm47XG5cbiAgICBjb25zdCBmcm9tTm9kZVByZXZpb3VzID0gaGFzTW92ZWRVcFRoZVRyZWUgPyB0b05vZGUucHJldmlvdXMgOiB0b05vZGUuaWQ7XG4gICAgbGV0IG1vdmVkQm9va21hcmtzID0gW3tcbiAgICAgIC4uLmZyb21Ob2RlLFxuICAgICAgcHJldmlvdXM6IHRvTm9kZS5pbmRleCA+IDAgPyBmcm9tTm9kZVByZXZpb3VzIDogdW5kZWZpbmVkLFxuICAgICAgcGFyZW50OiB0b05vZGVQYXJlbnRcbiAgICB9XTtcblxuICAgIGxldCBmcm9tTm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIGZyb21JbmRleCArIDEpO1xuICAgIGNvbnN0IG5leHRGcm9taW5kZXggPSBmcm9tSW5kZXggKyAxO1xuICAgIGZyb21Ob2RlU2libGluZyA9IGZyb21Ob2RlU2libGluZyAmJiBmcm9tTm9kZVNpYmxpbmcuaWQgPT09IGZyb21Ob2RlLnByZXZpb3VzID8gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyhmcm9tTm9kZVNpYmxpbmdzLCBuZXh0RnJvbWluZGV4ICsgMSkgOiBmcm9tTm9kZVNpYmxpbmc7XG5cbiAgICBpZiAoZnJvbU5vZGVTaWJsaW5nKSB7XG4gICAgICBtb3ZlZEJvb2ttYXJrcyA9IFsuLi5tb3ZlZEJvb2ttYXJrcywgeyAuLi5mcm9tTm9kZVNpYmxpbmcsIHByZXZpb3VzOiBmcm9tTm9kZS5wcmV2aW91cyB9XTtcbiAgICB9XG5cblxuICAgIGxldCB0b05vZGVTaWJsaW5nSW5kZXggPSBoYXNNb3ZlZFVwVGhlVHJlZSA/IHRvSW5kZXggOiB0b0luZGV4ICsgMTtcbiAgICBsZXQgdG9Ob2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3ModG9Ob2RlU2libGluZ3MsIHRvTm9kZVNpYmxpbmdJbmRleCk7XG5cbiAgICBpZiAodG9Ob2RlU2libGluZykge1xuICAgICAgbW92ZWRCb29rbWFya3MgPSBbLi4ubW92ZWRCb29rbWFya3MsIHsgLi4udG9Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLmlkIH1dO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0R1cHMgPSAobW92ZWRCb29rbWFya3MgYXMgQm9va21hcmtbXSkubWFwKHggPT4geC5pZCkuc29tZShmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnJheSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuc29tZSB3aWxsIGJyZWFrIGFzIHNvb24gYXMgZHVwbGljYXRlIGZvdW5kIChubyBuZWVkIHRvIGl0dGVyYXRlIG92ZXIgYWxsIGFycmF5KVxuICAgICAgcmV0dXJuIGFycmF5LmluZGV4T2YodmFsdWUpICE9PSBhcnJheS5sYXN0SW5kZXhPZih2YWx1ZSk7ICAgLy8gY29tcGFyaW5nIGZpcnN0IGFuZCBsYXN0IGluZGV4ZXMgb2YgdGhlIHNhbWUgdmFsdWVcbiAgICB9KVxuICAgIGlmIChoYXNEdXBzIHx8IG1vdmVkQm9va21hcmtzICYmIG1vdmVkQm9va21hcmtzLmxlbmd0aCA8PSAxKSByZXR1cm47XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBNb3ZlQm9va21hcmsobW92ZWRCb29rbWFya3MpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3Moc2libGluZzogQm9va21hcmtbXSwgaW5kZXgpIHtcbiAgICByZXR1cm4gc2libGluZy5sZW5ndGggPiBpbmRleCA/IHNpYmxpbmdbaW5kZXhdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZHJhZ1N0YXJ0KCkge1xuICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgIHRoaXMuaG92ZXJlZE5vZGUgPSBudWxsO1xuICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICB9XG5cbiAgZHJhZ0VuZCgpIHtcbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gIH1cblxuICBkcmFnSG92ZXIoZXZlbnQ6IGFueSwgbm9kZTogQm9va21hcmspIHtcbiAgICBpZiAodGhpcy5kcmFnZ2luZykge1xuICAgICAgY29uc3QgbmV3RXZlbnQ6IGFueSA9IGV2ZW50O1xuICAgICAgY29uc3QgcGVyY2VudGFnZVggPSBuZXdFdmVudC5vZmZzZXRYIC8gbmV3RXZlbnQudGFyZ2V0LmNsaWVudFdpZHRoO1xuICAgICAgaWYgKHBlcmNlbnRhZ2VYID4gLjU1KSB7XG4gICAgICAgIHRoaXMuaG92ZXJlZE5vZGUgPSBub2RlO1xuICAgICAgICB0aGlzLmRyYWdOb2RlSW5zZXJ0VG9QYXJlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhwYW5kVGltZW91dCk7XG4gICAgICB0aGlzLmV4cGFuZFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XG4gICAgICB9LCB0aGlzLmV4cGFuZERlbGF5KTtcbiAgICB9XG4gIH1cblxuICBkcmFnSG92ZXJFbmQoZXZlbnQ6IGFueSwgbm9kZTogQm9va21hcmspIHtcbiAgICBpZiAodGhpcy5kcmFnZ2luZykge1xuICAgICAgaWYgKCFub2RlIHx8IHRoaXMuaG92ZXJlZE5vZGU/LmlkICE9PSBub2RlLmlkKSB7XG4gICAgICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhvdmVyZWROb2RlID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmV4cGFuZFRpbWVvdXQpO1xuICAgIH1cbiAgfVxuXG4gIG9uTm9kZUV4cGFuZChub2RlOiBCb29rbWFyaykge1xuICAgIGNvbnN0IGlzRXhwYW5kZWQgPSB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSk7XG4gICAgcmV0dXJuIGlzRXhwYW5kZWQgPyBcInRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWV4cGFuZGVkXCIgOiBcInRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWNvbGxhcHNlZFwiO1xuICB9XG5cbiAgdmlzaWJsZU5vZGVzKGJvb2ttYXJrczogQm9va21hcmtbXSk6IEJvb2ttYXJrW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgZnVuY3Rpb24gYWRkRXhwYW5kZWRDaGlsZHJlbihub2RlOiBCb29rbWFyaywgZXhwYW5kZWQ6IEJvb2ttYXJrW10pIHtcbiAgICAgIHJlc3VsdC5wdXNoKG5vZGUpO1xuICAgICAgaWYgKGV4cGFuZGVkLnNvbWUoYm9va21hcmsgPT4gYm9va21hcmsgJiYgYm9va21hcmsuaWQgPT09IG5vZGUuaWQpICYmIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgbm9kZS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiBhZGRFeHBhbmRlZENoaWxkcmVuKGNoaWxkLCBleHBhbmRlZCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBib29rbWFya3MuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgYWRkRXhwYW5kZWRDaGlsZHJlbihub2RlLCB0aGlzLnRyZWVDb250cm9sLmV4cGFuc2lvbk1vZGVsLnNlbGVjdGVkKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZmluZE5vZGVTaWJsaW5ncyhhcnI6IEFycmF5PGFueT4sIGlkOiBzdHJpbmcpOiBBcnJheTxhbnk+IHtcbiAgICBsZXQgcmVzdWx0LCBzdWJSZXN1bHQ7XG4gICAgYXJyLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgIGlmIChpdGVtLmlkID09PSBpZCkge1xuICAgICAgICByZXN1bHQgPSBhcnI7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0/LmNoaWxkcmVuKSB7XG4gICAgICAgIHN1YlJlc3VsdCA9IHRoaXMuZmluZE5vZGVTaWJsaW5ncyhpdGVtLmNoaWxkcmVuLCBpZCk7XG4gICAgICAgIGlmIChzdWJSZXN1bHQpIHJlc3VsdCA9IHN1YlJlc3VsdDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVidWlsZFRyZWVGb3JEYXRhKGRhdGE6IGFueSkge1xuICAgIHRoaXMuX2Jvb2ttYXJrTm9kZXMgPSBkYXRhID8/IFtdO1xuICAgIHRoaXMuZGF0YXNvdXJjZSA9IG5ldyBBcnJheURhdGFTb3VyY2UodGhpcy5fYm9va21hcmtOb2Rlcyk7XG4gICAgdGhpcy50cmVlQ29udHJvbCA9IG5ldyBOZXN0ZWRUcmVlQ29udHJvbDxCb29rbWFyaz4obm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcbiAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2RlcyA9IHRoaXMuX2Jvb2ttYXJrTm9kZXM7XG4gICAgdGhpcy5leHBhbnNpb25Nb2RlbC5zZWxlY3RlZC5mb3JFYWNoKChib29rbWFyaykgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQoKG4pID0+IG4uaWQgPT09IGJvb2ttYXJrLmlkKTtcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNUb05vZGVDaGlsZE9mRnJvbU5vZGUoZnJvbU5vZGVDaGlsZHJlbjogQm9va21hcmtbXSwgdG9Ob2RlOiBCb29rbWFyaykge1xuXG4gICAgaWYgKCFmcm9tTm9kZUNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXROb2RlKGZyb21Ob2RlQ2hpbGRyZW4sIHRvTm9kZS5pZCk7XG4gICAgcmV0dXJuIHJlc3VsdCA/IHRydWUgOiBmYWxzZTtcbiAgfVxufVxuIiwiPGEgKm5nSWY9XCJib29rbWFya05vZGVzPy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImhpZ2hsaWdodGVkT3V0bGluZUl0ZW1cIlxuICA+Tm8gYm9va21hcmtzIGNyZWF0ZWQgeWV0PC9hXG4+XG48Y2RrLXRyZWVcbiAgY2RrRHJvcExpc3RcbiAgY2xhc3M9XCJib29rbWFya3MtdHJlZVwiXG4gICpuZ0lmPVwiZGF0YXNvdXJjZVwiXG4gIFtkYXRhU291cmNlXT1cImRhdGFzb3VyY2VcIlxuICBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIlxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBsZWFmIG5vZGVzIC0tPlxuICA8Y2RrLW5lc3RlZC10cmVlLW5vZGUgY2xhc3M9XCJub2RlLXdyYXBwZXJcIiAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJub2RlLmlkICE9PSBlZGl0YWJsZUJvb2ttYXJrOyBlbHNlIGlucHV0Qm9va21hcmtcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlciBuZXN0ZWQtdHJlZS1ub2RlXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cImRyYWdIb3ZlcigkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwiZHJhZ0hvdmVyRW5kKCRldmVudCwgbm9kZSlcIlxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0KClcIlxuICAgICAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cImRyYWdFbmQoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdXRsaW5lSXRlbVwiPlxuICAgICAgICAgIDxhIChjbGljayk9XCJnb1RvQm9va21hcmsobm9kZSlcIj5cbiAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19yZW5hbWVcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0Qm9va21hcmsobm9kZS5pZClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19kZWxldGVcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVCb29rbWFyazIobm9kZSlcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWRyb3Atc2xvdFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRCb29rbWFyaz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxuICA8Y2RrLW5lc3RlZC10cmVlLW5vZGVcbiAgICBjbGFzcz1cIm5vZGUtd3JhcHBlclwiXG4gICAgKmNka1RyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJub2RlLmlkICE9PSBlZGl0YWJsZUJvb2ttYXJrOyBlbHNlIGlucHV0Qm9va21hcmsyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXIgbmVzdGVkLXRyZWUtbm9kZVwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdEYXRhXT1cIm5vZGVcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJkcmFnSG92ZXIoJGV2ZW50LCBub2RlKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImRyYWdIb3ZlckVuZCgkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydCgpXCJcbiAgICAgICAgKGNka0RyYWdSZWxlYXNlZCk9XCJkcmFnRW5kKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3V0bGluZUl0ZW1cIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2RrVHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ob2RlRXhwYW5kKG5vZGUpXCJcbiAgICAgICAgICAgID48c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlblwiPjwvc3BhblxuICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPGEgKGNsaWNrKT1cImdvVG9Cb29rbWFyayhub2RlKVwiPlxuICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX3JlbmFtZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCb29rbWFyayhub2RlLmlkKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2RlbGV0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUJvb2ttYXJrMihub2RlKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtZHJvcC1zbG90XCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNpbnB1dEJvb2ttYXJrMj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm5lc3RlZC10cmVlLW5vZGUtY2hpbGRyZW5cIiAqbmdJZj1cInRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgY2RrVHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG48L2Nkay10cmVlPlxuIl19
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9ib29rbWFya3MvYm9va21hcmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFHNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFILE9BQU8sS0FBSyxrQkFBa0IsTUFBTSxnREFBZ0QsQ0FBQztBQUdyRixPQUFPLEtBQUssWUFBWSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLElBQ0ksYUFBYSxDQUFDLEtBQWlCO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFL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Y0FBYyxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsZ0JBQTRCLEVBQUUsTUFBZ0I7UUFFcEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7bUlBellVLGtCQUFrQjt1SEFBbEIsa0JBQWtCLGlMQ3ZCL0IsaTNHQTJHQTs0RkRwRmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGNBQWM7NEZBT3BCLGFBQWE7c0JBRGhCLEtBQUs7Z0JBWUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9va21hcmsgfSBmcm9tICcuLy4uLy4uLy4uLy4uL3N0b3JlL21vZGVscy9ib29rbWFya3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENyZWF0ZUJvb2ttYXJrLCBEZWxldGVCb29rbWFyaywgTW92ZUJvb2ttYXJrLCBVcGRhdGVCb29rbWFyayB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMvYm9va21hcmsuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBib29rbWFya3NTZWxlY3RvcnMgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2Jvb2ttYXJrLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uU2V0U3RhdGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9hbm5vdGF0aW9ucy5yZWR1Y2VyJztcbmltcG9ydCB7IERvY3VtZW50UGFnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9kb2N1bWVudC5yZWR1Y2VyJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21Cb29rbWFya3MgZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvYm9va21hcmtzLnJlZHVjZXInO1xuaW1wb3J0IHsgZ2V0Qm9va21hcmtDaGlsZHJlbiB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2Jvb2ttYXJrcy1zdG9yZS11dGlscyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBBcnJheURhdGFTb3VyY2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCwgTmVzdGVkVHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1ib29rbWFya3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYm9va21hcmtzLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBzZXQgYm9va21hcmtOb2Rlcyh2YWx1ZTogQm9va21hcmtbXSkge1xuICAgIHRoaXMucmVidWlsZFRyZWVGb3JEYXRhKHZhbHVlKTtcbiAgICBpZiAodGhpcy5fYm9va21hcmtOb2RlcyAmJiB0aGlzLnNvcnRNb2RlICE9PSB0aGlzLmN1c3RvbVNvcnQpIHtcbiAgICAgIHRoaXMuc29ydEJvb2ttYXJrcygpO1xuICAgIH1cbiAgfTtcblxuICBnZXQgYm9va21hcmtOb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fYm9va21hcmtOb2RlcztcbiAgfTtcblxuICBASW5wdXQoKSB6b29tOiBudW1iZXI7XG4gIEBJbnB1dCgpIHJvdGF0ZTogbnVtYmVyO1xuICBAT3V0cHV0KCkgZ29Ub0Rlc3RpbmF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICBwcml2YXRlIF9ib29rbWFya05vZGVzOiBCb29rbWFya1tdID0gW107XG4gIGRhdGFzb3VyY2U6IEFycmF5RGF0YVNvdXJjZTxCb29rbWFyaz47XG4gIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8Qm9va21hcms+O1xuICBob3ZlcmVkTm9kZTogQm9va21hcms7XG4gIC8vIGV4cGFuc2lvbiBtb2RlbCB0cmFja3MgZXhwYW5zaW9uIHN0YXRlXG4gIGV4cGFuc2lvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsPEJvb2ttYXJrPih0cnVlKTtcbiAgaXNEcmFnZ2luZ09uID0gZmFsc2U7XG4gIGlzVXNlcmRyYWdnaW5nID0gZmFsc2U7XG4gIGV4cGFuZFRpbWVvdXQ6IGFueTtcbiAgZXhwYW5kRGVsYXkgPSAxMDAwO1xuICBkcmFnTm9kZUluc2VydFRvUGFyZW50OiBib29sZWFuO1xuXG4gIHBhZ2VMb29rdXA6IHsgW3BhZ2VJZDogbnVtYmVyXTogRG9jdW1lbnRQYWdlcyB9ID0ge307XG4gIGVkaXRhYmxlQm9va21hcms6IHN0cmluZztcbiAgQk9PS01BUktfQ0hBUl9MSU1JVCA9IDMwO1xuXG4gIGRyYWdOb2RlOiBhbnk7XG4gIGRyYWdOb2RlRXhwYW5kT3ZlcldhaXRUaW1lTXMgPSAzMDA7XG4gIGRyYWdOb2RlRXhwYW5kT3Zlck5vZGU6IGFueTtcbiAgZHJhZ05vZGVFeHBhbmRPdmVyVGltZTogbnVtYmVyO1xuICBkcmFnTm9kZUV4cGFuZE92ZXJBcmVhOiBudW1iZXI7XG5cbiAgb3B0aW9ucyA9IHtcbiAgICBhbGxvd0RyYWc6IHRydWUsXG4gICAgYWxsb3dEcm9wOiB0cnVlXG4gIH07XG5cbiAgJHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgc29ydE1vZGU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jdXN0b21Tb3J0ID0gJ0NVU1RPTSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Bvc2l0aW9uU29ydCA9ICdQT1NJVElPTic7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbUJvb2ttYXJrcy5Cb29rbWFya3NTdGF0ZSB8IEFubm90YXRpb25TZXRTdGF0ZT4pIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc29ydE1vZGUgPSB0aGlzLmN1c3RvbVNvcnQ7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChib29rbWFya3NTZWxlY3RvcnMuZ2V0RWRpdGFibGVCb29rbWFyaykpXG4gICAgICAuc3Vic2NyaWJlKGVkaXRhYmxlSWQgPT4gdGhpcy5lZGl0YWJsZUJvb2ttYXJrID0gZWRpdGFibGVJZCk7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnNlbGVjdChmcm9tRG9jdW1lbnQuZ2V0UGFnZXMpXG4gICAgICAuc3Vic2NyaWJlKHBhZ2VzID0+IHtcblxuICAgICAgICBPYmplY3Qua2V5cyhwYWdlcykubWFwKGtleSA9PiB7XG4gICAgICAgICAgdGhpcy5wYWdlTG9va3VwW2tleV0gPSBwYWdlc1trZXldO1xuICAgICAgICB9KTtcblxuICAgICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4kc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBlZGl0Qm9va21hcmsoaWQpIHtcbiAgICB0aGlzLmVkaXRhYmxlQm9va21hcmsgPSBpZDtcbiAgfVxuXG4gIG9uQWRkQm9va21hcmtDbGljaygpIHtcbiAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRCb29rbWFya0luZm8pLCB0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoYm9va21hcmtJbmZvKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENyZWF0ZUJvb2ttYXJrKHtcbiAgICAgICAgICAuLi5ib29rbWFya0luZm8sIG5hbWU6ICcnLCBpZDogdXVpZCgpXG4gICAgICAgIH0gYXMgYW55KSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUJvb2ttYXJrMihub2RlOiBCb29rbWFyaykge1xuICAgIHRoaXMuY3VzdG9tU29ydEJvb2ttYXJrcygpO1xuICAgIGxldCBuZXh0OiBCb29rbWFyaztcblxuICAgIGNvbnN0IGNoYW5nZWREYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJvb2ttYXJrTm9kZXMpKTtcbiAgICBjb25zdCBzaWJsaW5ncyA9IHRoaXMuZmluZE5vZGVTaWJsaW5ncyhjaGFuZ2VkRGF0YSwgbm9kZS5pZCk7XG4gICAgaWYgKHNpYmxpbmdzICYmIHNpYmxpbmdzLmxlbmd0aCA+IG5vZGUuaW5kZXggKyAxKSB7XG4gICAgICBuZXh0ID0gc2libGluZ3Nbbm9kZS5pbmRleCArIDFdO1xuICAgICAgbmV4dC5wcmV2aW91cyA9IG5vZGUucHJldmlvdXM7XG4gICAgfVxuICAgIGNvbnN0IHRvRGVsZXRlID0gW25vZGUuaWQsIC4uLmdldEJvb2ttYXJrQ2hpbGRyZW4obm9kZS5jaGlsZHJlbildO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IERlbGV0ZUJvb2ttYXJrKHtcbiAgICAgIGRlbGV0ZWQ6IHRvRGVsZXRlLCB1cGRhdGVkOiBuZXh0XG4gICAgfSkpO1xuICB9XG5cbiAgdXBkYXRlQm9va21hcmsoYm9va21hcms6IEJvb2ttYXJrLCBuYW1lKSB7XG4gICAgY29uc3QgZWRpdGVkQm9va21hcmsgPSB7XG4gICAgICAuLi5ib29rbWFyayxcbiAgICAgIG5hbWVcbiAgICB9O1xuICAgIGlmIChuYW1lKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVCb29rbWFyayhlZGl0ZWRCb29rbWFyaykpO1xuICAgICAgdGhpcy5lZGl0YWJsZUJvb2ttYXJrID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGdvVG9Cb29rbWFyayhib29rbWFyazogQm9va21hcmspIHtcbiAgICBjb25zdCB0aGlzUGFnZSA9IHRoaXMucGFnZUxvb2t1cFtib29rbWFyay5wYWdlTnVtYmVyICsgMV07XG4gICAgY29uc3QgZGVmYXVsdEhlaWdodCA9IHRoaXNQYWdlLnN0eWxlcy5oZWlnaHQ7XG4gICAgY29uc3QgZGVmYXVsdFNjYWxlWSA9IHRoaXMuc2NhbGVkWShib29rbWFyay55Q29vcmRpbmF0ZSwgZGVmYXVsdEhlaWdodCwgdGhpc1BhZ2UpO1xuXG4gICAgbGV0IHRvcCA9IDAsIGxlZnQgPSAwO1xuICAgIHN3aXRjaCAodGhpcy5yb3RhdGUpIHtcbiAgICAgIGNhc2UgOTA6XG4gICAgICAgIGxlZnQgPSAtIGRlZmF1bHRTY2FsZVk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxODA6XG4gICAgICAgIHRvcCA9IHRoaXMuc2NhbGVkWShib29rbWFyay55Q29vcmRpbmF0ZSwgKGRlZmF1bHRIZWlnaHQgLSAoMjQgKiB0aGlzLnpvb20pKSwgdGhpc1BhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjcwOlxuICAgICAgICBsZWZ0ID0gZGVmYXVsdFNjYWxlWTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0b3AgPSBkZWZhdWx0U2NhbGVZO1xuICAgIH1cblxuICAgIHRoaXMuZ29Ub0Rlc3RpbmF0aW9uLmVtaXQoW1xuICAgICAgYm9va21hcmsucGFnZU51bWJlcixcbiAgICAgIHsgJ25hbWUnOiAnWFlaJyB9LFxuICAgICAgbGVmdCxcbiAgICAgIHRvcFxuICAgIF0pO1xuICB9XG5cbiAgZ2V0IGN1c3RvbVNvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbVNvcnQ7XG4gIH1cblxuICBnZXQgcG9zaXRpb25Tb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblNvcnQ7XG4gIH1cblxuICBzb3J0KG1vZGU6IHN0cmluZykge1xuICAgIHRoaXMuc29ydE1vZGUgPSBtb2RlO1xuICAgIHRoaXMuc29ydEJvb2ttYXJrcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0Qm9va21hcmtzKCkge1xuICAgIHN3aXRjaCAodGhpcy5zb3J0TW9kZSkge1xuICAgICAgY2FzZSB0aGlzLmN1c3RvbVNvcnQ6IHtcbiAgICAgICAgdGhpcy5jdXN0b21Tb3J0Qm9va21hcmtzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSB0aGlzLnBvc2l0aW9uU29ydDoge1xuICAgICAgICB0aGlzLnBvc2l0aW9uU29ydEJvb2ttYXJrcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhpcy5jdXN0b21Tb3J0Qm9va21hcmtzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Tb3J0Qm9va21hcmtzKCkge1xuICAgIHRoaXMuYm9va21hcmtOb2Rlcy5zb3J0KChhLCBiKSA9PiBhLnBhZ2VOdW1iZXIgPT09IGIucGFnZU51bWJlciA/IGEueUNvb3JkaW5hdGUgLSBiLnlDb29yZGluYXRlIDogYS5wYWdlTnVtYmVyIC0gYi5wYWdlTnVtYmVyKTtcbiAgICB0aGlzLmlzRHJhZ2dpbmdPbiA9IGZhbHNlO1xuICAgIHRoaXMucmVidWlsZFRyZWVGb3JEYXRhKHRoaXMuYm9va21hcmtOb2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIGN1c3RvbVNvcnRCb29rbWFya3MoKSB7XG4gICAgaWYgKHRoaXMuYm9va21hcmtOb2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmJvb2ttYXJrTm9kZXMuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpO1xuICAgIH1cbiAgICB0aGlzLmlzRHJhZ2dpbmdPbiA9IHRydWU7XG4gICAgdGhpcy5yZWJ1aWxkVHJlZUZvckRhdGEodGhpcy5ib29rbWFya05vZGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2NhbGVkWSh5Q29vcmRpbmF0ZTogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgcGFnZTogRG9jdW1lbnRQYWdlcyk6IG51bWJlciB7XG4gICAgY29uc3Qgdmlld3BvcnRTY2FsZSA9IHBhZ2Uudmlld3BvcnRTY2FsZSAvIHRoaXMuem9vbTtcbiAgICByZXR1cm4gKChoZWlnaHQgLyB0aGlzLnpvb20pIC0geUNvb3JkaW5hdGUpIC8gdmlld3BvcnRTY2FsZTtcbiAgfVxuXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogQm9va21hcmspID0+IHtcbiAgICByZXR1cm4gbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gIH1cblxuICBnZXROb2RlKGJvb2ttYXJrcywgcGFyZW50SWQpIHtcbiAgICBpZiAodHlwZW9mIGJvb2ttYXJrcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYm9va21hcmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChib29rbWFya3NbaV0uaWQgPT09IHBhcmVudElkKSB7XG4gICAgICAgICAgcmV0dXJuIFtib29rbWFya3NbaV1dO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGEgPSB0aGlzLmdldE5vZGUoYm9va21hcmtzW2ldLmNoaWxkcmVuLCBwYXJlbnRJZCk7XG4gICAgICAgIGlmIChhICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxCb29rbWFyaz4pIHtcblxuICAgIGlmICghZXZlbnQuaXNQb2ludGVyT3ZlckNvbnRhaW5lciB8fCAoZXZlbnQucHJldmlvdXNJbmRleCA9PT0gZXZlbnQuY3VycmVudEluZGV4KSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaGFzTW92ZWRVcFRoZVRyZWUgPSBldmVudC5wcmV2aW91c0luZGV4ID4gZXZlbnQuY3VycmVudEluZGV4O1xuICAgIGNvbnN0IGJvb2ttYXJrTm9kZXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLl9ib29rbWFya05vZGVzKTtcbiAgICBjb25zdCBjaGFuZ2VkRGF0YSA9IEpTT04ucGFyc2UoYm9va21hcmtOb2Rlc1N0cmluZyk7XG4gICAgY29uc3QgdmlzaWJsZU5vZGVzID0gdGhpcy52aXNpYmxlTm9kZXModGhpcy5fYm9va21hcmtOb2Rlcyk7XG4gICAgY29uc3QgdG9Ob2RlID0gdmlzaWJsZU5vZGVzW2V2ZW50LmN1cnJlbnRJbmRleF0gYXMgQm9va21hcms7XG4gICAgY29uc3QgdG9Ob2RlU2libGluZ3MgPSB0aGlzLmZpbmROb2RlU2libGluZ3MoY2hhbmdlZERhdGEsIHRvTm9kZS5pZCk7XG5cbiAgICBjb25zdCB0b05vZGVQYXJlbnQgPSB0b05vZGVTaWJsaW5nc1swXS5wYXJlbnQ7XG4gICAgY29uc3QgdG9JbmRleCA9IHRvTm9kZVNpYmxpbmdzLmZpbmRJbmRleChzID0+IHMuaWQgPT09IHRvTm9kZS5pZCk7XG5cbiAgICBjb25zdCBmcm9tTm9kZSA9IGV2ZW50Lml0ZW0uZGF0YSBhcyBCb29rbWFyaztcbiAgICBjb25zdCBmcm9tTm9kZVNpYmxpbmdzID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGNoYW5nZWREYXRhLCBmcm9tTm9kZS5pZCk7XG4gICAgY29uc3QgZnJvbUluZGV4ID0gZnJvbU5vZGVTaWJsaW5ncy5maW5kSW5kZXgobiA9PiBuLmlkID09PSBmcm9tTm9kZS5pZCk7XG5cbiAgICBpZiAodGhpcy5pc1RvTm9kZUNoaWxkT2ZGcm9tTm9kZShmcm9tTm9kZT8uY2hpbGRyZW4sIHRvTm9kZSkpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmRyYWdOb2RlSW5zZXJ0VG9QYXJlbnQpIHtcblxuICAgICAgY29uc3QgaW5kZXhPZlBhcmVudCA9IHRvTm9kZVNpYmxpbmdzLmZpbmRJbmRleChlbGVtZW50ID0+IGVsZW1lbnQuaWQgPT09IHRvTm9kZS5pZCk7XG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gdG9Ob2RlU2libGluZ3NbaW5kZXhPZlBhcmVudF07XG4gICAgICBjb25zdCBmaXJzdENoaWxkID0gcGFyZW50Tm9kZT8uY2hpbGRyZW4gJiYgcGFyZW50Tm9kZT8uY2hpbGRyZW4ubGVuZ3RoID4gMCA/IHBhcmVudE5vZGUuY2hpbGRyZW5bMF0gOiBudWxsO1xuICAgICAgbGV0IG1vdmVkQm9va21hcmtzV2l0aFBhcmVudCA9IFt7IC4uLmZyb21Ob2RlLCBwYXJlbnQ6IHBhcmVudE5vZGUuaWQsIHByZXZpb3VzOiBudWxsIH1dO1xuXG4gICAgICBpZiAoZmlyc3RDaGlsZCkge1xuICAgICAgICBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgPSBbLi4ubW92ZWRCb29rbWFya3NXaXRoUGFyZW50LCB7IC4uLmZpcnN0Q2hpbGQsIHByZXZpb3VzOiBmcm9tTm9kZS5pZCB9XTtcbiAgICAgIH1cblxuICAgICAgbGV0IGZyb21Ob2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3MoZnJvbU5vZGVTaWJsaW5ncywgZnJvbUluZGV4ICsgMSk7XG4gICAgICBjb25zdCBuZXh0RnJvbWluZGV4Zm9yUGFyZW50ID0gZnJvbUluZGV4ICsgMTtcbiAgICAgIGZyb21Ob2RlU2libGluZyA9IGZyb21Ob2RlU2libGluZyAmJiBmcm9tTm9kZVNpYmxpbmcuaWQgPT09IGZyb21Ob2RlLnByZXZpb3VzID8gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyhmcm9tTm9kZVNpYmxpbmdzLCBuZXh0RnJvbWluZGV4Zm9yUGFyZW50ICsgMSkgOiBmcm9tTm9kZVNpYmxpbmc7XG5cbiAgICAgIGlmIChmcm9tTm9kZVNpYmxpbmcgJiYgZnJvbU5vZGVTaWJsaW5nLmlkICE9PSBwYXJlbnROb2RlLmlkKSB7XG4gICAgICAgIG1vdmVkQm9va21hcmtzV2l0aFBhcmVudCA9IFsuLi5tb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQsIHsgLi4uZnJvbU5vZGVTaWJsaW5nLCBwcmV2aW91czogZnJvbU5vZGUucHJldmlvdXMgfV07XG4gICAgICB9XG5cbiAgICAgIGxldCBwcmV2aW91c1NpYmxpbmdGb3JQYXJlbnRJbmRleCA9IHRvSW5kZXggLSAxO1xuICAgICAgbGV0IHBhcmVudE5vZGVTaWJsaW5nID0gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyh0b05vZGVTaWJsaW5ncywgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXgpO1xuXG4gICAgICBpZiAocGFyZW50Tm9kZVNpYmxpbmcgJiYgcGFyZW50Tm9kZVNpYmxpbmcuaWQgPT0gZnJvbU5vZGUuaWQpIHtcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nRm9yUGFyZW50SW5kZXggPSBwcmV2aW91c1NpYmxpbmdGb3JQYXJlbnRJbmRleCAtIDE7XG4gICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmdGb3JQYXJlbnRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgcGFyZW50Tm9kZVNpYmxpbmcgPSB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKHRvTm9kZVNpYmxpbmdzLCBwcmV2aW91c1NpYmxpbmdGb3JQYXJlbnRJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcGFyZW50Tm9kZVNpYmxpbmcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG1vdmVkQm9va21hcmtzV2l0aFBhcmVudCA9IFsuLi5tb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQsIHsgLi4ucGFyZW50Tm9kZSwgcHJldmlvdXM6IHBhcmVudE5vZGVTaWJsaW5nPy5pZCB9XTtcblxuICAgICAgY29uc3QgaGFzUGFyZW50RHVwcyA9IChtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQgYXMgQm9va21hcmtbXSkubWFwKHggPT4geC5pZCkuc29tZShmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnJheSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuc29tZSB3aWxsIGJyZWFrIGFzIHNvb24gYXMgZHVwbGljYXRlIGZvdW5kIChubyBuZWVkIHRvIGl0dGVyYXRlIG92ZXIgYWxsIGFycmF5KVxuICAgICAgICByZXR1cm4gYXJyYXkuaW5kZXhPZih2YWx1ZSkgIT09IGFycmF5Lmxhc3RJbmRleE9mKHZhbHVlKTsgICAvLyBjb21wYXJpbmcgZmlyc3QgYW5kIGxhc3QgaW5kZXhlcyBvZiB0aGUgc2FtZSB2YWx1ZVxuICAgICAgfSlcbiAgICAgIGlmIChoYXNQYXJlbnREdXBzIHx8IG1vdmVkQm9va21hcmtzV2l0aFBhcmVudCAmJiBtb3ZlZEJvb2ttYXJrc1dpdGhQYXJlbnQubGVuZ3RoIDw9IDEpIHJldHVybjtcblxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTW92ZUJvb2ttYXJrKG1vdmVkQm9va21hcmtzV2l0aFBhcmVudCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdG9Ob2RlU2libGluZ3MpIHJldHVybjtcblxuICAgIGNvbnN0IGZyb21Ob2RlUHJldmlvdXMgPSBoYXNNb3ZlZFVwVGhlVHJlZSA/IHRvTm9kZS5wcmV2aW91cyA6IHRvTm9kZS5pZDtcbiAgICBsZXQgbW92ZWRCb29rbWFya3MgPSBbe1xuICAgICAgLi4uZnJvbU5vZGUsXG4gICAgICBwcmV2aW91czogdG9Ob2RlLmluZGV4ID4gMCA/IGZyb21Ob2RlUHJldmlvdXMgOiB1bmRlZmluZWQsXG4gICAgICBwYXJlbnQ6IHRvTm9kZVBhcmVudFxuICAgIH1dO1xuXG4gICAgbGV0IGZyb21Ob2RlU2libGluZyA9IHRoaXMuZ2V0U2libGluZ0Zyb21BbGxTaWJsaWluZ3MoZnJvbU5vZGVTaWJsaW5ncywgZnJvbUluZGV4ICsgMSk7XG4gICAgY29uc3QgbmV4dEZyb21pbmRleCA9IGZyb21JbmRleCArIDE7XG4gICAgZnJvbU5vZGVTaWJsaW5nID0gZnJvbU5vZGVTaWJsaW5nICYmIGZyb21Ob2RlU2libGluZy5pZCA9PT0gZnJvbU5vZGUucHJldmlvdXMgPyB0aGlzLmdldFNpYmxpbmdGcm9tQWxsU2libGlpbmdzKGZyb21Ob2RlU2libGluZ3MsIG5leHRGcm9taW5kZXggKyAxKSA6IGZyb21Ob2RlU2libGluZztcblxuICAgIGlmIChmcm9tTm9kZVNpYmxpbmcpIHtcbiAgICAgIG1vdmVkQm9va21hcmtzID0gWy4uLm1vdmVkQm9va21hcmtzLCB7IC4uLmZyb21Ob2RlU2libGluZywgcHJldmlvdXM6IGZyb21Ob2RlLnByZXZpb3VzIH1dO1xuICAgIH1cblxuXG4gICAgbGV0IHRvTm9kZVNpYmxpbmdJbmRleCA9IGhhc01vdmVkVXBUaGVUcmVlID8gdG9JbmRleCA6IHRvSW5kZXggKyAxO1xuICAgIGxldCB0b05vZGVTaWJsaW5nID0gdGhpcy5nZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyh0b05vZGVTaWJsaW5ncywgdG9Ob2RlU2libGluZ0luZGV4KTtcblxuICAgIGlmICh0b05vZGVTaWJsaW5nKSB7XG4gICAgICBtb3ZlZEJvb2ttYXJrcyA9IFsuLi5tb3ZlZEJvb2ttYXJrcywgeyAuLi50b05vZGVTaWJsaW5nLCBwcmV2aW91czogZnJvbU5vZGUuaWQgfV07XG4gICAgfVxuXG4gICAgY29uc3QgaGFzRHVwcyA9IChtb3ZlZEJvb2ttYXJrcyBhcyBCb29rbWFya1tdKS5tYXAoeCA9PiB4LmlkKS5zb21lKGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgsIGFycmF5KSB7XG4gICAgICByZXR1cm4gYXJyYXkuaW5kZXhPZih2YWx1ZSkgIT09IGFycmF5Lmxhc3RJbmRleE9mKHZhbHVlKTsgICAvLyBjb21wYXJpbmcgZmlyc3QgYW5kIGxhc3QgaW5kZXhlcyBvZiB0aGUgc2FtZSB2YWx1ZVxuICAgIH0pXG4gICAgaWYgKGhhc0R1cHMgfHwgbW92ZWRCb29rbWFya3MgJiYgbW92ZWRCb29rbWFya3MubGVuZ3RoIDw9IDEpIHJldHVybjtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE1vdmVCb29rbWFyayhtb3ZlZEJvb2ttYXJrcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaWJsaW5nRnJvbUFsbFNpYmxpaW5ncyhzaWJsaW5nOiBCb29rbWFya1tdLCBpbmRleCkge1xuICAgIHJldHVybiBzaWJsaW5nLmxlbmd0aCA+IGluZGV4ID8gc2libGluZ1tpbmRleF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBkcmFnU3RhcnQoKSB7XG4gICAgdGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50ID0gZmFsc2U7XG4gICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG51bGw7XG4gICAgdGhpcy5pc1VzZXJkcmFnZ2luZyA9IHRydWU7XG4gIH1cblxuICBkcmFnRW5kKCkge1xuICAgIHRoaXMuaXNVc2VyZHJhZ2dpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIGRyYWdIb3ZlcihldmVudDogYW55LCBub2RlOiBCb29rbWFyaykge1xuICAgIGlmICh0aGlzLmlzVXNlcmRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBuZXdFdmVudDogYW55ID0gZXZlbnQ7XG4gICAgICBjb25zdCBwZXJjZW50YWdlWCA9IG5ld0V2ZW50Lm9mZnNldFggLyBuZXdFdmVudC50YXJnZXQuY2xpZW50V2lkdGg7XG4gICAgICBpZiAocGVyY2VudGFnZVggPiAuNTUpIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG5vZGU7XG4gICAgICAgIHRoaXMuZHJhZ05vZGVJbnNlcnRUb1BhcmVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhvdmVyZWROb2RlID0gbnVsbDtcbiAgICAgICAgdGhpcy5kcmFnTm9kZUluc2VydFRvUGFyZW50ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZHJhZ0hvdmVyRW5kKGV2ZW50OiBhbnksIG5vZGU6IEJvb2ttYXJrKSB7XG4gICAgaWYgKHRoaXMuaXNVc2VyZHJhZ2dpbmcpIHtcbiAgICAgIGlmICghbm9kZSB8fCB0aGlzLmhvdmVyZWROb2RlPy5pZCAhPT0gbm9kZS5pZCkge1xuICAgICAgICB0aGlzLmRyYWdOb2RlSW5zZXJ0VG9QYXJlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTm9kZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Ob2RlRXhwYW5kKG5vZGU6IEJvb2ttYXJrKSB7XG4gICAgY29uc3QgaXNFeHBhbmRlZCA9IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKTtcbiAgICByZXR1cm4gaXNFeHBhbmRlZCA/IFwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItZXhwYW5kZWRcIiA6IFwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItY29sbGFwc2VkXCI7XG4gIH1cblxuICB2aXNpYmxlTm9kZXMoYm9va21hcmtzOiBCb29rbWFya1tdKTogQm9va21hcmtbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICBmdW5jdGlvbiBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGU6IEJvb2ttYXJrLCBleHBhbmRlZDogQm9va21hcmtbXSkge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgICBpZiAoZXhwYW5kZWQuc29tZShib29rbWFyayA9PiBib29rbWFyayAmJiBib29rbWFyay5pZCA9PT0gbm9kZS5pZCkgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBub2RlLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IGFkZEV4cGFuZGVkQ2hpbGRyZW4oY2hpbGQsIGV4cGFuZGVkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGJvb2ttYXJrcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGUsIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuc2VsZWN0ZWQpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmaW5kTm9kZVNpYmxpbmdzKGFycjogQXJyYXk8YW55PiwgaWQ6IHN0cmluZyk6IEFycmF5PGFueT4ge1xuICAgIGxldCByZXN1bHQsIHN1YlJlc3VsdDtcbiAgICBhcnIuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaWQgPT09IGlkKSB7XG4gICAgICAgIHJlc3VsdCA9IGFycjtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY2hpbGRyZW4pIHtcbiAgICAgICAgc3ViUmVzdWx0ID0gdGhpcy5maW5kTm9kZVNpYmxpbmdzKGl0ZW0uY2hpbGRyZW4sIGlkKTtcbiAgICAgICAgaWYgKHN1YlJlc3VsdCkgcmVzdWx0ID0gc3ViUmVzdWx0O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZWJ1aWxkVHJlZUZvckRhdGEoZGF0YTogYW55KSB7XG4gICAgdGhpcy5fYm9va21hcmtOb2RlcyA9IGRhdGEgPz8gW107XG4gICAgdGhpcy5kYXRhc291cmNlID0gbmV3IEFycmF5RGF0YVNvdXJjZSh0aGlzLl9ib29rbWFya05vZGVzKTtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IE5lc3RlZFRyZWVDb250cm9sPEJvb2ttYXJrPihub2RlID0+IG5vZGUuY2hpbGRyZW4pO1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzID0gdGhpcy5fYm9va21hcmtOb2RlcztcbiAgICB0aGlzLmV4cGFuc2lvbk1vZGVsLnNlbGVjdGVkLmZvckVhY2goKGJvb2ttYXJrKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZCgobikgPT4gbi5pZCA9PT0gYm9va21hcmsuaWQpO1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XG4gICAgfSk7XG4gIH1cblxuICBpc1RvTm9kZUNoaWxkT2ZGcm9tTm9kZShmcm9tTm9kZUNoaWxkcmVuOiBCb29rbWFya1tdLCB0b05vZGU6IEJvb2ttYXJrKSB7XG5cbiAgICBpZiAoIWZyb21Ob2RlQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldE5vZGUoZnJvbU5vZGVDaGlsZHJlbiwgdG9Ob2RlLmlkKTtcbiAgICByZXR1cm4gcmVzdWx0ID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG59XG4iLCI8YSAqbmdJZj1cImJvb2ttYXJrTm9kZXM/Lmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiaGlnaGxpZ2h0ZWRPdXRsaW5lSXRlbVwiXG4gID5ObyBib29rbWFya3MgY3JlYXRlZCB5ZXQ8L2Fcbj5cbjxjZGstdHJlZVxuICBjZGtEcm9wTGlzdFxuICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhaXNEcmFnZ2luZ09uXCJcbiAgY2xhc3M9XCJib29rbWFya3MtdHJlZVwiXG4gICpuZ0lmPVwiZGF0YXNvdXJjZVwiXG4gIFtkYXRhU291cmNlXT1cImRhdGFzb3VyY2VcIlxuICBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIlxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBsZWFmIG5vZGVzIC0tPlxuICA8Y2RrLW5lc3RlZC10cmVlLW5vZGUgY2xhc3M9XCJub2RlLXdyYXBwZXJcIiAqY2RrVHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJub2RlLmlkICE9PSBlZGl0YWJsZUJvb2ttYXJrOyBlbHNlIGlucHV0Qm9va21hcmtcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlciBuZXN0ZWQtdHJlZS1ub2RlXCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0RhdGFdPVwibm9kZVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cImRyYWdIb3ZlcigkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwiZHJhZ0hvdmVyRW5kKCRldmVudCwgbm9kZSlcIlxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0KClcIlxuICAgICAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cImRyYWdFbmQoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdXRsaW5lSXRlbVwiPlxuICAgICAgICAgIDxhIChjbGljayk9XCJnb1RvQm9va21hcmsobm9kZSlcIj5cbiAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19yZW5hbWVcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0Qm9va21hcmsobm9kZS5pZClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19kZWxldGVcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVCb29rbWFyazIobm9kZSlcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWRyb3Atc2xvdFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRCb29rbWFyaz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxuICA8Y2RrLW5lc3RlZC10cmVlLW5vZGVcbiAgICBjbGFzcz1cIm5vZGUtd3JhcHBlclwiXG4gICAgKmNka1RyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJub2RlLmlkICE9PSBlZGl0YWJsZUJvb2ttYXJrOyBlbHNlIGlucHV0Qm9va21hcmsyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXIgbmVzdGVkLXRyZWUtbm9kZVwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdEYXRhXT1cIm5vZGVcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJkcmFnSG92ZXIoJGV2ZW50LCBub2RlKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImRyYWdIb3ZlckVuZCgkZXZlbnQsIG5vZGUpXCJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydCgpXCJcbiAgICAgICAgKGNka0RyYWdSZWxlYXNlZCk9XCJkcmFnRW5kKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3V0bGluZUl0ZW1cIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2RrVHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ob2RlRXhwYW5kKG5vZGUpXCJcbiAgICAgICAgICAgID48c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlblwiPjwvc3BhblxuICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPGEgKGNsaWNrKT1cImdvVG9Cb29rbWFyayhub2RlKVwiPlxuICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX3JlbmFtZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCb29rbWFyayhub2RlLmlkKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2RlbGV0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUJvb2ttYXJrMihub2RlKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtZHJvcC1zbG90XCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNpbnB1dEJvb2ttYXJrMj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjYm9va21hcmtOYW1lXG4gICAgICAgIGNsYXNzPVwiYm9va21hcmtfX2lucHV0XCJcbiAgICAgICAgW3ZhbHVlXT1cIm5vZGUubmFtZVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiQk9PS01BUktfQ0hBUl9MSU1JVFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJvb2ttYXJrX19zYXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUJvb2ttYXJrKG5vZGUsIGJvb2ttYXJrTmFtZS52YWx1ZSlcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm5lc3RlZC10cmVlLW5vZGUtY2hpbGRyZW5cIiAqbmdJZj1cInRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgY2RrVHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvY2RrLW5lc3RlZC10cmVlLW5vZGU+XG48L2Nkay10cmVlPlxuIl19
|