@valtimo/task 5.10.0 → 5.12.0

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.
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Component, EventEmitter, Input, Output, } from '@angular/core';
17
- import { BehaviorSubject, combineLatest } from 'rxjs';
17
+ import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
18
18
  import { take, tap } from 'rxjs/operators';
19
19
  import * as i0 from "@angular/core";
20
20
  import * as i1 from "../task.service";
@@ -30,9 +30,10 @@ export class AssignUserToTaskComponent {
30
30
  this.assignedEmailOnServer$ = new BehaviorSubject(null);
31
31
  this.userEmailToAssign = null;
32
32
  this.assignedUserFullName$ = new BehaviorSubject(null);
33
+ this._subscriptions = new Subscription();
33
34
  }
34
35
  ngOnInit() {
35
- this.taskService.getCandidateUsers(this.taskId).subscribe(candidateUsers => {
36
+ this._subscriptions.add(this.taskService.getCandidateUsers(this.taskId).subscribe(candidateUsers => {
36
37
  this.candidateUsersForTask$.next(candidateUsers);
37
38
  if (this.assigneeEmail) {
38
39
  this.assignedEmailOnServer$.next(this.assigneeEmail);
@@ -40,7 +41,7 @@ export class AssignUserToTaskComponent {
40
41
  this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers, this.assigneeEmail));
41
42
  }
42
43
  this.enable();
43
- });
44
+ }));
44
45
  }
45
46
  ngOnChanges(changes) {
46
47
  const assigneeEmail = changes.assigneeEmail;
@@ -56,6 +57,9 @@ export class AssignUserToTaskComponent {
56
57
  this.clear();
57
58
  }
58
59
  }
60
+ ngOnDestroy() {
61
+ this._subscriptions.unsubscribe();
62
+ }
59
63
  assignTask(userEmail) {
60
64
  this.disable();
61
65
  combineLatest([
@@ -122,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
122
126
  }], assignmentOfTaskChanged: [{
123
127
  type: Output
124
128
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXVzZXItdG8tdGFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9hc3NpZ24tdXNlci10by10YXNrL2Fzc2lnbi11c2VyLXRvLXRhc2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvYXNzaWduLXVzZXItdG8tdGFzay9hc3NpZ24tdXNlci10by10YXNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFTekMsTUFBTSxPQUFPLHlCQUF5QjtJQVdwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVJsQyw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUMvQywyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUMzRCxzQkFBaUIsR0FBVyxJQUFJLENBQUM7UUFDakMsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7SUFFWCxDQUFDO0lBRWhELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElB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LFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOzt1SEEzR1UseUJBQXlCOzJHQUF6Qix5QkFBeUIsdU5DcEN0QyxnbUVBc0RBOzRGRGxCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsNkJBQTZCO2tHQUs5QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEcm9wZG93bkl0ZW19IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VGFza1NlcnZpY2V9IGZyb20gJy4uL3Rhc2suc2VydmljZSc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tYXNzaWduLXVzZXItdG8tdGFzaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NpZ24tdXNlci10by10YXNrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXNzaWduLXVzZXItdG8tdGFzay5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBc3NpZ25Vc2VyVG9UYXNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0YXNrSWQ6IHN0cmluZztcbiAgQElucHV0KCkgYXNzaWduZWVFbWFpbDogc3RyaW5nO1xuICBAT3V0cHV0KCkgYXNzaWdubWVudE9mVGFza0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY2FuZGlkYXRlVXNlcnNGb3JUYXNrJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VXNlcltdPih1bmRlZmluZWQpO1xuICBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBhc3NpZ25lZEVtYWlsT25TZXJ2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICB1c2VyRW1haWxUb0Fzc2lnbjogc3RyaW5nID0gbnVsbDtcbiAgYXNzaWduZWRVc2VyRnVsbE5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFza1NlcnZpY2U6IFRhc2tTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFza1NlcnZpY2UuZ2V0Q2FuZGlkYXRlVXNlcnModGhpcy50YXNrSWQpLnN1YnNjcmliZShjYW5kaWRhdGVVc2VycyA9PiB7XG4gICAgICB0aGlzLmNhbmRpZGF0ZVVzZXJzRm9yVGFzayQubmV4dChjYW5kaWRhdGVVc2Vycyk7XG4gICAgICBpZiAodGhpcy5hc3NpZ25lZUVtYWlsKSB7XG4gICAgICAgIHRoaXMuYXNzaWduZWRFbWFpbE9uU2VydmVyJC5uZXh0KHRoaXMuYXNzaWduZWVFbWFpbCk7XG4gICAgICAgIHRoaXMudXNlckVtYWlsVG9Bc3NpZ24gPSB0aGlzLmFzc2lnbmVlRW1haWw7XG4gICAgICAgIHRoaXMuYXNzaWduZWRVc2VyRnVsbE5hbWUkLm5leHQoXG4gICAgICAgICAgdGhpcy5nZXRBc3NpZ25lZFVzZXJOYW1lKGNhbmRpZGF0ZVVzZXJzLCB0aGlzLmFzc2lnbmVlRW1haWwpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmVuYWJsZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IGFzc2lnbmVlRW1haWwgPSBjaGFuZ2VzLmFzc2lnbmVlRW1haWw7XG4gICAgaWYgKGFzc2lnbmVlRW1haWwpIHtcbiAgICAgIHRoaXMuY2FuZGlkYXRlVXNlcnNGb3JUYXNrJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjYW5kaWRhdGVVc2VycyA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRVc2VyRW1haWwgPSBhc3NpZ25lZUVtYWlsLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgdGhpcy5hc3NpZ25lZEVtYWlsT25TZXJ2ZXIkLm5leHQoY3VycmVudFVzZXJFbWFpbCB8fCBudWxsKTtcbiAgICAgICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IGN1cnJlbnRVc2VyRW1haWwgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5hc3NpZ25lZFVzZXJGdWxsTmFtZSQubmV4dCh0aGlzLmdldEFzc2lnbmVkVXNlck5hbWUoY2FuZGlkYXRlVXNlcnMsIGN1cnJlbnRVc2VyRW1haWwpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgYXNzaWduVGFzayh1c2VyRW1haWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jYW5kaWRhdGVVc2Vyc0ZvclRhc2skLFxuICAgICAgdGhpcy50YXNrU2VydmljZS5hc3NpZ25UYXNrKHRoaXMudGFza0lkLCB7YXNzaWduZWU6IHVzZXJFbWFpbH0pLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKChbY2FuZGlkYXRlVXNlcnNdKSA9PiB7XG4gICAgICAgICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IHVzZXJFbWFpbDtcbiAgICAgICAgICB0aGlzLmFzc2lnbmVkRW1haWxPblNlcnZlciQubmV4dCh1c2VyRW1haWwpO1xuICAgICAgICAgIHRoaXMuYXNzaWduZWRVc2VyRnVsbE5hbWUkLm5leHQodGhpcy5nZXRBc3NpZ25lZFVzZXJOYW1lKGNhbmRpZGF0ZVVzZXJzLCB1c2VyRW1haWwpKTtcbiAgICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdW5hc3NpZ25UYXNrKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgIHRoaXMudGFza1NlcnZpY2VcbiAgICAgIC51bmFzc2lnblRhc2sodGhpcy50YXNrSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldEFzc2lnbmVkVXNlck5hbWUodXNlcnM6IFVzZXJbXSwgdXNlckVtYWlsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh1c2VycyAmJiB1c2VyRW1haWwpIHtcbiAgICAgIGNvbnN0IGZpbmRVc2VyID0gdXNlcnMuZmluZCh1c2VyID0+IHVzZXIuZW1haWwgPT09IHVzZXJFbWFpbCk7XG4gICAgICByZXR1cm4gZmluZFVzZXIgPyBmaW5kVXNlci5mdWxsTmFtZSA6ICcnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBtYXBVc2Vyc0ZvckRyb3Bkb3duKHVzZXJzOiBVc2VyW10pOiBEcm9wZG93bkl0ZW1bXSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHVzZXJzICYmXG4gICAgICB1c2Vyc1xuICAgICAgICAubWFwKHVzZXIgPT4gKHsuLi51c2VyLCBsYXN0TmFtZTogdXNlci5sYXN0TmFtZT8uc3BsaXQoJyAnKS5zcGxpY2UoLTEpWzBdIHx8ICcnfSkpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhc3ROYW1lLmxvY2FsZUNvbXBhcmUoYi5sYXN0TmFtZSkpXG4gICAgICAgIC5tYXAodXNlciA9PiAoe3RleHQ6IHVzZXIuZnVsbE5hbWUsIGlkOiB1c2VyLmVtYWlsfSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5hc3NpZ25lZEVtYWlsT25TZXJ2ZXIkLm5leHQobnVsbCk7XG4gICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5hc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHRydWUpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgY2FuZGlkYXRlVXNlcnM6IGNhbmRpZGF0ZVVzZXJzRm9yVGFzayQgfCBhc3luYyxcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgZW1haWxPblNlcnZlcjogYXNzaWduZWRFbWFpbE9uU2VydmVyJCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMiBtYi0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHBsLTAgZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmNhbmRpZGF0ZVVzZXJzOyBlbHNlIGxvYWRpbmdcIj5cbiAgICAgICAgICA8dmFsdGltby1zZWFyY2hhYmxlLWRyb3Bkb3duLXNlbGVjdFxuICAgICAgICAgICAgW3N0eWxlXT1cIid1bmRlcmxpbmVkVGV4dCdcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIm1hcFVzZXJzRm9yRHJvcGRvd24ob2JzLmNhbmRpZGF0ZVVzZXJzKVwiXG4gICAgICAgICAgICBbYnV0dG9uVGV4dF09XCInYXNzaWduVGFzay5oZWFkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzZWFyY2hUZXh0XT1cIidpbnRlcmZhY2UudHlwZVRvU2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbm9SZXN1bHRzVGV4dF09XCInaW50ZXJmYWNlLm5vU2VhcmNoUmVzdWx0cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRUZXh0XT1cIidhc3NpZ25UYXNrLmFzc2lnbmVkVG8nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZFRleHRWYWx1ZV09XCJhc3NpZ25lZFVzZXJGdWxsTmFtZSQgfCBhc3luY1wiXG4gICAgICAgICAgICBbY2xlYXJTZWxlY3Rpb25CdXR0b25UaXRsZV09XCInYXNzaWduVGFzay5yZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtoYXNTZWxlY3Rpb25dPVwidXNlckVtYWlsVG9Bc3NpZ24gPT09IG9icy5lbWFpbE9uU2VydmVyICYmIG9icy5lbWFpbE9uU2VydmVyICE9PSBudWxsXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIyNTBcIlxuICAgICAgICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJhc3NpZ25UYXNrKCRldmVudClcIlxuICAgICAgICAgICAgKGNsZWFyU2VsZWN0aW9uKT1cInVuYXNzaWduVGFzaygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC92YWx0aW1vLXNlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxoNT5cbiAgICA8Yj57eyAnYXNzaWduVGFzay5mZXRjaGluZ1VzZXJzJyB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgPC9oNT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXVzZXItdG8tdGFzay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9hc3NpZ24tdXNlci10by10YXNrL2Fzc2lnbi11c2VyLXRvLXRhc2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvYXNzaWduLXVzZXItdG8tdGFzay9hc3NpZ24tdXNlci10by10YXNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU3pDLE1BQU0sT0FBTyx5QkFBeUI7SUFXcEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFSbEMsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUNoRSxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDL0MsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDM0Qsc0JBQWlCLEdBQVcsSUFBSSxDQUFDO1FBQ2pDLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQ2xELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNHLENBQUM7SUFF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QyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOzt1SEFqSFUseUJBQXlCOzJHQUF6Qix5QkFBeUIsdU5DckN0QyxnbUVBc0RBOzRGRGpCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsNkJBQTZCO2tHQUs5QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Ryb3Bkb3duSXRlbX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Rhc2tTZXJ2aWNlfSBmcm9tICcuLi90YXNrLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWFzc2lnbi11c2VyLXRvLXRhc2snLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLXVzZXItdG8tdGFzay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2lnbi11c2VyLXRvLXRhc2suY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXNzaWduVXNlclRvVGFza0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0YXNrSWQ6IHN0cmluZztcbiAgQElucHV0KCkgYXNzaWduZWVFbWFpbDogc3RyaW5nO1xuICBAT3V0cHV0KCkgYXNzaWdubWVudE9mVGFza0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY2FuZGlkYXRlVXNlcnNGb3JUYXNrJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VXNlcltdPih1bmRlZmluZWQpO1xuICBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBhc3NpZ25lZEVtYWlsT25TZXJ2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICB1c2VyRW1haWxUb0Fzc2lnbjogc3RyaW5nID0gbnVsbDtcbiAgYXNzaWduZWRVc2VyRnVsbE5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFza1NlcnZpY2UuZ2V0Q2FuZGlkYXRlVXNlcnModGhpcy50YXNrSWQpLnN1YnNjcmliZShjYW5kaWRhdGVVc2VycyA9PiB7XG4gICAgICAgIHRoaXMuY2FuZGlkYXRlVXNlcnNGb3JUYXNrJC5uZXh0KGNhbmRpZGF0ZVVzZXJzKTtcbiAgICAgICAgaWYgKHRoaXMuYXNzaWduZWVFbWFpbCkge1xuICAgICAgICAgIHRoaXMuYXNzaWduZWRFbWFpbE9uU2VydmVyJC5uZXh0KHRoaXMuYXNzaWduZWVFbWFpbCk7XG4gICAgICAgICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IHRoaXMuYXNzaWduZWVFbWFpbDtcbiAgICAgICAgICB0aGlzLmFzc2lnbmVkVXNlckZ1bGxOYW1lJC5uZXh0KFxuICAgICAgICAgICAgdGhpcy5nZXRBc3NpZ25lZFVzZXJOYW1lKGNhbmRpZGF0ZVVzZXJzLCB0aGlzLmFzc2lnbmVlRW1haWwpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IGFzc2lnbmVlRW1haWwgPSBjaGFuZ2VzLmFzc2lnbmVlRW1haWw7XG4gICAgaWYgKGFzc2lnbmVlRW1haWwpIHtcbiAgICAgIHRoaXMuY2FuZGlkYXRlVXNlcnNGb3JUYXNrJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjYW5kaWRhdGVVc2VycyA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRVc2VyRW1haWwgPSBhc3NpZ25lZUVtYWlsLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgdGhpcy5hc3NpZ25lZEVtYWlsT25TZXJ2ZXIkLm5leHQoY3VycmVudFVzZXJFbWFpbCB8fCBudWxsKTtcbiAgICAgICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IGN1cnJlbnRVc2VyRW1haWwgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5hc3NpZ25lZFVzZXJGdWxsTmFtZSQubmV4dCh0aGlzLmdldEFzc2lnbmVkVXNlck5hbWUoY2FuZGlkYXRlVXNlcnMsIGN1cnJlbnRVc2VyRW1haWwpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYXNzaWduVGFzayh1c2VyRW1haWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jYW5kaWRhdGVVc2Vyc0ZvclRhc2skLFxuICAgICAgdGhpcy50YXNrU2VydmljZS5hc3NpZ25UYXNrKHRoaXMudGFza0lkLCB7YXNzaWduZWU6IHVzZXJFbWFpbH0pLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKChbY2FuZGlkYXRlVXNlcnNdKSA9PiB7XG4gICAgICAgICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IHVzZXJFbWFpbDtcbiAgICAgICAgICB0aGlzLmFzc2lnbmVkRW1haWxPblNlcnZlciQubmV4dCh1c2VyRW1haWwpO1xuICAgICAgICAgIHRoaXMuYXNzaWduZWRVc2VyRnVsbE5hbWUkLm5leHQodGhpcy5nZXRBc3NpZ25lZFVzZXJOYW1lKGNhbmRpZGF0ZVVzZXJzLCB1c2VyRW1haWwpKTtcbiAgICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdW5hc3NpZ25UYXNrKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSgpO1xuICAgIHRoaXMudGFza1NlcnZpY2VcbiAgICAgIC51bmFzc2lnblRhc2sodGhpcy50YXNrSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldEFzc2lnbmVkVXNlck5hbWUodXNlcnM6IFVzZXJbXSwgdXNlckVtYWlsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh1c2VycyAmJiB1c2VyRW1haWwpIHtcbiAgICAgIGNvbnN0IGZpbmRVc2VyID0gdXNlcnMuZmluZCh1c2VyID0+IHVzZXIuZW1haWwgPT09IHVzZXJFbWFpbCk7XG4gICAgICByZXR1cm4gZmluZFVzZXIgPyBmaW5kVXNlci5mdWxsTmFtZSA6ICcnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBtYXBVc2Vyc0ZvckRyb3Bkb3duKHVzZXJzOiBVc2VyW10pOiBEcm9wZG93bkl0ZW1bXSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHVzZXJzICYmXG4gICAgICB1c2Vyc1xuICAgICAgICAubWFwKHVzZXIgPT4gKHsuLi51c2VyLCBsYXN0TmFtZTogdXNlci5sYXN0TmFtZT8uc3BsaXQoJyAnKS5zcGxpY2UoLTEpWzBdIHx8ICcnfSkpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhc3ROYW1lLmxvY2FsZUNvbXBhcmUoYi5sYXN0TmFtZSkpXG4gICAgICAgIC5tYXAodXNlciA9PiAoe3RleHQ6IHVzZXIuZnVsbE5hbWUsIGlkOiB1c2VyLmVtYWlsfSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5hc3NpZ25lZEVtYWlsT25TZXJ2ZXIkLm5leHQobnVsbCk7XG4gICAgdGhpcy51c2VyRW1haWxUb0Fzc2lnbiA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5hc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHRydWUpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgY2FuZGlkYXRlVXNlcnM6IGNhbmRpZGF0ZVVzZXJzRm9yVGFzayQgfCBhc3luYyxcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgZW1haWxPblNlcnZlcjogYXNzaWduZWRFbWFpbE9uU2VydmVyJCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMiBtYi0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHBsLTAgZC1mbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmNhbmRpZGF0ZVVzZXJzOyBlbHNlIGxvYWRpbmdcIj5cbiAgICAgICAgICA8dmFsdGltby1zZWFyY2hhYmxlLWRyb3Bkb3duLXNlbGVjdFxuICAgICAgICAgICAgW3N0eWxlXT1cIid1bmRlcmxpbmVkVGV4dCdcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIm1hcFVzZXJzRm9yRHJvcGRvd24ob2JzLmNhbmRpZGF0ZVVzZXJzKVwiXG4gICAgICAgICAgICBbYnV0dG9uVGV4dF09XCInYXNzaWduVGFzay5oZWFkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzZWFyY2hUZXh0XT1cIidpbnRlcmZhY2UudHlwZVRvU2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbbm9SZXN1bHRzVGV4dF09XCInaW50ZXJmYWNlLm5vU2VhcmNoUmVzdWx0cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRUZXh0XT1cIidhc3NpZ25UYXNrLmFzc2lnbmVkVG8nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZFRleHRWYWx1ZV09XCJhc3NpZ25lZFVzZXJGdWxsTmFtZSQgfCBhc3luY1wiXG4gICAgICAgICAgICBbY2xlYXJTZWxlY3Rpb25CdXR0b25UaXRsZV09XCInYXNzaWduVGFzay5yZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtoYXNTZWxlY3Rpb25dPVwidXNlckVtYWlsVG9Bc3NpZ24gPT09IG9icy5lbWFpbE9uU2VydmVyICYmIG9icy5lbWFpbE9uU2VydmVyICE9PSBudWxsXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIyNTBcIlxuICAgICAgICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJhc3NpZ25UYXNrKCRldmVudClcIlxuICAgICAgICAgICAgKGNsZWFyU2VsZWN0aW9uKT1cInVuYXNzaWduVGFzaygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC92YWx0aW1vLXNlYXJjaGFibGUtZHJvcGRvd24tc2VsZWN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxoNT5cbiAgICA8Yj57eyAnYXNzaWduVGFzay5mZXRjaGluZ1VzZXJzJyB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgPC9oNT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -26,12 +26,13 @@ import * as i4 from "ngx-logger";
26
26
  import * as i5 from "../task.service";
27
27
  import * as i6 from "@valtimo/security";
28
28
  import * as i7 from "@valtimo/components";
29
- import * as i8 from "../assign-user-to-task/assign-user-to-task.component";
30
- import * as i9 from "@angular/common";
31
- import * as i10 from "@ngx-translate/core";
29
+ import * as i8 from "@valtimo/document";
30
+ import * as i9 from "@ngx-translate/core";
31
+ import * as i10 from "../assign-user-to-task/assign-user-to-task.component";
32
+ import * as i11 from "@angular/common";
32
33
  moment.locale(localStorage.getItem('langKey') || '');
33
34
  export class TaskDetailModalComponent {
34
- constructor(toastr, formLinkService, formFlowService, router, logger, route, taskService, userProviderService, modalService) {
35
+ constructor(toastr, formLinkService, formFlowService, router, logger, route, taskService, userProviderService, modalService, documentService, translateService) {
35
36
  this.toastr = toastr;
36
37
  this.formLinkService = formLinkService;
37
38
  this.formFlowService = formFlowService;
@@ -41,19 +42,21 @@ export class TaskDetailModalComponent {
41
42
  this.taskService = taskService;
42
43
  this.userProviderService = userProviderService;
43
44
  this.modalService = modalService;
45
+ this.documentService = documentService;
46
+ this.translateService = translateService;
44
47
  this.formSubmit = new EventEmitter();
45
48
  this.assignmentOfTaskChanged = new EventEmitter();
46
49
  this.task = null;
47
50
  this.page = null;
48
51
  this.errorMessage = null;
52
+ this.isAdmin$ = this.userProviderService
53
+ .getUserSubject()
54
+ .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));
49
55
  this.taskProcessLinkType$ = new BehaviorSubject(null);
50
56
  this.processLinkIsForm$ = this.taskProcessLinkType$.pipe(map(type => type === 'form'));
51
57
  this.processLinkIsFormFlow$ = this.taskProcessLinkType$.pipe(map(type => type === 'form-flow'));
52
58
  this.formFlowStepType$ = new BehaviorSubject(null);
53
59
  this.formFlowStepTypeIsForm$ = this.formFlowStepType$.pipe(map(type => type === 'form'));
54
- this.isAdmin$ = this.userProviderService
55
- .getUserSubject()
56
- .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));
57
60
  this.formioOptions = new FormioOptionsImpl();
58
61
  this.formioOptions.disableAlerts = true;
59
62
  }
@@ -61,10 +64,11 @@ export class TaskDetailModalComponent {
61
64
  this.resetTaskProcessLinkType();
62
65
  this.resetFormDefinition();
63
66
  this.getTaskProcessLink(task.id);
67
+ this.setDocumentDefinitionNameInService(task);
64
68
  this.task = task;
65
69
  this.page = {
66
70
  title: task.name,
67
- subtitle: `Created ${task.created}`,
71
+ subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task.created}`
68
72
  };
69
73
  this.formLinkService
70
74
  .getPreFilledFormDefinitionByFormLinkId(task.processDefinitionKey, task.businessKey, task.taskDefinitionKey, task.id // taskInstanceId
@@ -161,7 +165,7 @@ export class TaskDetailModalComponent {
161
165
  }
162
166
  }
163
167
  completeTask() {
164
- this.toastr.success(this.task.name + ' has successfully been completed');
168
+ this.toastr.success(`${this.task.name} ${this.translateService.instant('taskDetail.taskCompleted')}`);
165
169
  this.modal.hide();
166
170
  this.task = null;
167
171
  this.formSubmit.emit();
@@ -189,13 +193,20 @@ export class TaskDetailModalComponent {
189
193
  });
190
194
  });
191
195
  }
196
+ setDocumentDefinitionNameInService(task) {
197
+ this.documentService
198
+ .getProcessDocumentDefinitionFromProcessInstanceId(task.processInstanceId)
199
+ .subscribe(processDocumentDefinition => {
200
+ this.modalService.setDocumentDefinitionName(processDocumentDefinition.id.documentDefinitionId.name);
201
+ });
202
+ }
192
203
  }
193
- TaskDetailModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskDetailModalComponent, deps: [{ token: i1.ToastrService }, { token: i2.FormLinkService }, { token: i2.FormFlowService }, { token: i3.Router }, { token: i4.NGXLogger }, { token: i3.ActivatedRoute }, { token: i5.TaskService }, { token: i6.UserProviderService }, { token: i7.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component });
194
- TaskDetailModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: { formSubmit: "formSubmit", assignmentOfTaskChanged: "assignmentOfTaskChanged" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["taskDetailModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #taskDetailModal\n elementId=\"taskDetailModal\"\n [title]=\"page?.title\"\n [subtitle]=\"page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div\n body\n *ngIf=\"formDefinition && ((processLinkIsForm$ | async) || (formFlowStepTypeIsForm$ | async))\"\n >\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && !errorMessage\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n </div>\n <div body *ngIf=\"errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!formDefinition\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeEmail]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#taskDetailModal .formio-component-submit{text-align:right}\n"], components: [{ type: i7.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "formRefresh$"], outputs: ["submit", "change"] }, { type: i8.AssignUserToTaskComponent, selector: "valtimo-assign-user-to-task", inputs: ["taskId", "assigneeEmail"], outputs: ["assignmentOfTaskChanged"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9.AsyncPipe, "translate": i10.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
204
+ TaskDetailModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskDetailModalComponent, deps: [{ token: i1.ToastrService }, { token: i2.FormLinkService }, { token: i2.FormFlowService }, { token: i3.Router }, { token: i4.NGXLogger }, { token: i3.ActivatedRoute }, { token: i5.TaskService }, { token: i6.UserProviderService }, { token: i7.ValtimoModalService }, { token: i8.DocumentService }, { token: i9.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
205
+ TaskDetailModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: { formSubmit: "formSubmit", assignmentOfTaskChanged: "assignmentOfTaskChanged" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "modal", first: true, predicate: ["taskDetailModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #taskDetailModal\n elementId=\"taskDetailModal\"\n [title]=\"page?.title\"\n [subtitle]=\"page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div\n body\n *ngIf=\"formDefinition && ((processLinkIsForm$ | async) || (formFlowStepTypeIsForm$ | async))\"\n >\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && !errorMessage\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n </div>\n <div body *ngIf=\"errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!formDefinition\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeEmail]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#taskDetailModal .formio-component-submit{text-align:right}\n"], components: [{ type: i7.ModalComponent, selector: "valtimo-modal", inputs: ["elementId", "title", "subtitle", "templateBelowSubtitle", "showFooter"] }, { type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "formRefresh$"], outputs: ["submit", "change"] }, { type: i10.AssignUserToTaskComponent, selector: "valtimo-assign-user-to-task", inputs: ["taskId", "assigneeEmail"], outputs: ["assignmentOfTaskChanged"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i11.AsyncPipe, "translate": i9.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
195
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskDetailModalComponent, decorators: [{
196
207
  type: Component,
197
208
  args: [{ selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #taskDetailModal\n elementId=\"taskDetailModal\"\n [title]=\"page?.title\"\n [subtitle]=\"page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div\n body\n *ngIf=\"formDefinition && ((processLinkIsForm$ | async) || (formFlowStepTypeIsForm$ | async))\"\n >\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"!formDefinition && !errorMessage\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n </div>\n <div body *ngIf=\"errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!formDefinition\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeEmail]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */#taskDetailModal .formio-component-submit{text-align:right}\n"] }]
198
- }], ctorParameters: function () { return [{ type: i1.ToastrService }, { type: i2.FormLinkService }, { type: i2.FormFlowService }, { type: i3.Router }, { type: i4.NGXLogger }, { type: i3.ActivatedRoute }, { type: i5.TaskService }, { type: i6.UserProviderService }, { type: i7.ValtimoModalService }]; }, propDecorators: { form: [{
209
+ }], ctorParameters: function () { return [{ type: i1.ToastrService }, { type: i2.FormLinkService }, { type: i2.FormFlowService }, { type: i3.Router }, { type: i4.NGXLogger }, { type: i3.ActivatedRoute }, { type: i5.TaskService }, { type: i6.UserProviderService }, { type: i7.ValtimoModalService }, { type: i8.DocumentService }, { type: i9.TranslateService }]; }, propDecorators: { form: [{
199
210
  type: ViewChild,
200
211
  args: ['form']
201
212
  }], modal: [{
@@ -206,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
206
217
  }], assignmentOfTaskChanged: [{
207
218
  type: Output
208
219
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1kZXRhaWwtbW9kYWwvdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1kZXRhaWwtbW9kYWwvdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFFTCxpQkFBaUIsR0FLbEIsTUFBTSxxQkFBcUIsQ0FBQztBQVc3QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFHakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBUXJELE1BQU0sT0FBTyx3QkFBd0I7SUEyQm5DLFlBQ21CLE1BQXFCLEVBQ3JCLGVBQWdDLEVBQ2hDLGVBQWdDLEVBQ2hDLE1BQWMsRUFDZCxNQUFpQixFQUNqQixLQUFxQixFQUNyQixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsWUFBaUM7UUFSakMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FB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QUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO1lBRXRDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xFLEtBQUssRUFBRTtvQkFDTCxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUMsTUFBTSxFQUFDLENBQUM7b0JBQ3ZCLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBQyxVQUFVLEVBQUMsQ0FBQztpQkFDaEM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3NIQXROVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixxVkNwRHJDLGl2RUFzRUE7NEZEbEJhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSwyQkFBMkIsaUJBR3RCLGlCQUFpQixDQUFDLElBQUk7d1VBR2xCLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDYSxLQUFLO3NCQUFsQyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDbEIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRm9ybWlvQ29tcG9uZW50LFxuICBGb3JtaW9PcHRpb25zSW1wbCxcbiAgRm9ybWlvU3VibWlzc2lvbixcbiAgTW9kYWxDb21wb25lbnQsXG4gIFZhbHRpbW9Gb3JtaW9PcHRpb25zLFxuICBWYWx0aW1vTW9kYWxTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VGFzaywgVGFza1Byb2Nlc3NMaW5rVHlwZX0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEZvcm1Bc3NvY2lhdGlvbixcbiAgRm9ybUZsb3dJbnN0YW5jZSxcbiAgRm9ybUZsb3dTZXJ2aWNlLFxuICBGb3JtRmxvd1N0ZXBUeXBlLFxuICBGb3JtTGlua1NlcnZpY2UsXG4gIEZvcm1TdWJtaXNzaW9uUmVzdWx0LFxufSBmcm9tICdAdmFsdGltby9mb3JtLWxpbmsnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7bWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Rhc2tTZXJ2aWNlfSBmcm9tICcuLi90YXNrLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5cbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tdGFzay1kZXRhaWwtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YXNrLWRldGFpbC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrRGV0YWlsTW9kYWxDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybTogRm9ybWlvQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsTW9kYWwnKSBtb2RhbDogTW9kYWxDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYXNzaWdubWVudE9mVGFza0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHRhc2s6IFRhc2sgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGZvcm1EZWZpbml0aW9uOiBGb3JtaW9Gb3JtO1xuICBwdWJsaWMgZm9ybUZsb3dJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtRmxvd1N0ZXBJbnN0YW5jZUlkPzogc3RyaW5nO1xuICBwdWJsaWMgcGFnZTogYW55ID0gbnVsbDtcbiAgcHVibGljIGZvcm1pb09wdGlvbnM6IFZhbHRpbW9Gb3JtaW9PcHRpb25zO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgZm9ybUFzc29jaWF0aW9uOiBGb3JtQXNzb2NpYXRpb247XG4gIHByaXZhdGUgdGFza1Byb2Nlc3NMaW5rVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhc2tQcm9jZXNzTGlua1R5cGUgfCBudWxsPihudWxsKTtcblxuICBwcm9jZXNzTGlua0lzRm9ybSQgPSB0aGlzLnRhc2tQcm9jZXNzTGlua1R5cGUkLnBpcGUobWFwKHR5cGUgPT4gdHlwZSA9PT0gJ2Zvcm0nKSk7XG4gIHByb2Nlc3NMaW5rSXNGb3JtRmxvdyQgPSB0aGlzLnRhc2tQcm9jZXNzTGlua1R5cGUkLnBpcGUobWFwKHR5cGUgPT4gdHlwZSA9PT0gJ2Zvcm0tZmxvdycpKTtcblxuICBwcml2YXRlIGZvcm1GbG93U3RlcFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRmxvd1N0ZXBUeXBlIHwgbnVsbD4obnVsbCk7XG4gIGZvcm1GbG93U3RlcFR5cGVJc0Zvcm0kID0gdGhpcy5mb3JtRmxvd1N0ZXBUeXBlJC5waXBlKG1hcCh0eXBlID0+IHR5cGUgPT09ICdmb3JtJykpO1xuXG4gIHJlYWRvbmx5IGlzQWRtaW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlXG4gICAgLmdldFVzZXJTdWJqZWN0KClcbiAgICAucGlwZShtYXAodXNlcklkZW50aXR5ID0+IHVzZXJJZGVudGl0eT8ucm9sZXM/LmluY2x1ZGVzKCdST0xFX0FETUlOJykpKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1MaW5rU2VydmljZTogRm9ybUxpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZsb3dTZXJ2aWNlOiBGb3JtRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTkdYTG9nZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza1NlcnZpY2U6IFRhc2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclByb3ZpZGVyU2VydmljZTogVXNlclByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogVmFsdGltb01vZGFsU2VydmljZVxuICApIHtcbiAgICB0aGlzLmZvcm1pb09wdGlvbnMgPSBuZXcgRm9ybWlvT3B0aW9uc0ltcGwoKTtcbiAgICB0aGlzLmZvcm1pb09wdGlvbnMuZGlzYWJsZUFsZXJ0cyA9IHRydWU7XG4gIH1cblxuICBvcGVuVGFza0RldGFpbHModGFzazogVGFzaykge1xuICAgIHRoaXMucmVzZXRUYXNrUHJvY2Vzc0xpbmtUeXBlKCk7XG4gICAgdGhpcy5yZXNldEZvcm1EZWZpbml0aW9uKCk7XG4gICAgdGhpcy5nZXRUYXNrUHJvY2Vzc0xpbmsodGFzay5pZCk7XG5cbiAgICB0aGlzLnRhc2sgPSB0YXNrO1xuICAgIHRoaXMucGFnZSA9IHtcbiAgICAgIHRpdGxlOiB0YXNrLm5hbWUsXG4gICAgICBzdWJ0aXRsZTogYENyZWF0ZWQgJHt0YXNrLmNyZWF0ZWR9YCxcbiAgICB9O1xuXG4gICAgdGhpcy5mb3JtTGlua1NlcnZpY2VcbiAgICAgIC5nZXRQcmVGaWxsZWRGb3JtRGVmaW5pdGlvbkJ5Rm9ybUxpbmtJZChcbiAgICAgICAgdGFzay5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgdGFzay5idXNpbmVzc0tleSxcbiAgICAgICAgdGFzay50YXNrRGVmaW5pdGlvbktleSxcbiAgICAgICAgdGFzay5pZCAvLyB0YXNrSW5zdGFuY2VJZFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgZm9ybURlZmluaXRpb24gPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybUFzc29jaWF0aW9uID0gZm9ybURlZmluaXRpb24uZm9ybUFzc29jaWF0aW9uO1xuXG4gICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5mb3JtQXNzb2NpYXRpb24uZm9ybUxpbmsuY2xhc3NOYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgICAgY29uc3QgbGlua1R5cGUgPSBjbGFzc05hbWVbY2xhc3NOYW1lLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgc3dpdGNoIChsaW5rVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnQnBtbkVsZW1lbnRGb3JtSWRMaW5rJzpcbiAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtRGVmaW5pdGlvbkFuZE9wZW5Nb2RhbChmb3JtRGVmaW5pdGlvbik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQnBtbkVsZW1lbnRGb3JtRmxvd0lkTGluayc6XG4gICAgICAgICAgICAgIC8vIFdlIGNhbid0IHVzZSB0aGUgZm9ybURlZmluaXRpb24gaGVyZSBiZWNhdXNlIHRoZSBmb3JtIGRlZmluaXRpb24gaXMgcHJvdmlkZWQgcGVyIGZvcm0gZmxvdyBzdGVwXG4gICAgICAgICAgICAgIC8vIEknbSBzdGlsbCBsZWF2aW5nIHRoaXMgaW4gaGVyZSBpbiBjYXNlIHdlIHdhbnQgdG8gYWRkIGZvcm0gZmxvdyBzcGVjaWZpYyBjb2RlLlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JwbW5FbGVtZW50VXJsTGluayc6XG4gICAgICAgICAgICAgIHRoaXMub3BlblVybExpbmsoZm9ybURlZmluaXRpb24pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JwbW5FbGVtZW50QW5ndWxhclN0YXRlVXJsTGluayc6XG4gICAgICAgICAgICAgIHRoaXMub3BlbkFuZ3VsYXJTdGF0ZVVybExpbmsodGFzaywgZm9ybURlZmluaXRpb24pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmZhdGFsKCdVbnN1cHBvcnRlZCBjbGFzcyBuYW1lJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcnMgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcnM/LmVycm9yPy5kZXRhaWwpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JzLmVycm9yLmRldGFpbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLm1vZGFsLnNob3coKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnb3RvRm9ybUxpbmtTY3JlZW4oKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydmb3JtLWxpbmtzJ10pO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5nZXRWYWx1ZSgpID09PSAnZm9ybScpIHtcbiAgICAgIHRoaXMuZm9ybUxpbmtTZXJ2aWNlXG4gICAgICAgIC5vblN1Ym1pdChcbiAgICAgICAgICB0aGlzLnRhc2sucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgdGhpcy5mb3JtQXNzb2NpYXRpb24uZm9ybUxpbmsuaWQsXG4gICAgICAgICAgc3VibWlzc2lvbi5kYXRhLFxuICAgICAgICAgIHRoaXMudGFzay5idXNpbmVzc0tleSxcbiAgICAgICAgICB0aGlzLnRhc2suaWRcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChfOiBGb3JtU3VibWlzc2lvblJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZVRhc2soKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9ycyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5nZXRWYWx1ZSgpID09PSAnZm9ybS1mbG93Jykge1xuICAgICAgaWYgKHN1Ym1pc3Npb24uZGF0YS5zdWJtaXQpIHtcbiAgICAgICAgdGhpcy5mb3JtRmxvd1NlcnZpY2VcbiAgICAgICAgICAuc3VibWl0U3RlcCh0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCwgdGhpcy5mb3JtRmxvd1N0ZXBJbnN0YW5jZUlkLCBzdWJtaXNzaW9uLmRhdGEpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXN1bHQ6IEZvcm1GbG93SW5zdGFuY2UpID0+IHRoaXMuaGFuZGxlRm9ybUZsb3dTdGVwKHJlc3VsdCksXG4gICAgICAgICAgICBlcnJvcnMgPT4gdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHN1Ym1pc3Npb24uZGF0YVsnYmFjayddKSB7XG4gICAgICAgIHRoaXMuZm9ybUZsb3dTZXJ2aWNlLmJhY2sodGhpcy5mb3JtRmxvd0luc3RhbmNlSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzdWx0OiBGb3JtRmxvd0luc3RhbmNlKSA9PiB0aGlzLmhhbmRsZUZvcm1GbG93U3RlcChyZXN1bHQpLFxuICAgICAgICAgIGVycm9ycyA9PiB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZvcm1EZWZpbml0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXNrUHJvY2Vzc0xpbmsodGFza0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tTZXJ2aWNlLmdldFRhc2tQcm9jZXNzTGluayh0YXNrSWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgc3dpdGNoIChyZXM/LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgICAgdGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KCdmb3JtJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zvcm0tZmxvdyc6XG4gICAgICAgICAgdGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KCdmb3JtLWZsb3cnKTtcbiAgICAgICAgICB0aGlzLmdldEZvcm1GbG93U3RlcChyZXM/LnByb3BlcnRpZXMuZm9ybUZsb3dJbnN0YW5jZUlkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybUZsb3dTdGVwKGZvcm1GbG93SW5zdGFuY2VJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRmxvd1NlcnZpY2VcbiAgICAgIC5nZXRGb3JtRmxvd1N0ZXAoZm9ybUZsb3dJbnN0YW5jZUlkKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBGb3JtRmxvd0luc3RhbmNlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlRm9ybUZsb3dTdGVwKHJlc3VsdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRm9ybUZsb3dTdGVwKGZvcm1GbG93SW5zdGFuY2U6IEZvcm1GbG93SW5zdGFuY2UpIHtcbiAgICBpZiAoZm9ybUZsb3dJbnN0YW5jZS5zdGVwID09PSBudWxsKSB7XG4gICAgICB0aGlzLmZvcm1GbG93U3RlcFR5cGUkLm5leHQobnVsbCk7XG4gICAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IG51bGw7XG4gICAgICB0aGlzLmZvcm1GbG93U3RlcEluc3RhbmNlSWQgPSBudWxsO1xuICAgICAgdGhpcy5jb21wbGV0ZVRhc2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIHRoaXMuZm9ybUZsb3dTdGVwVHlwZSQubmV4dChmb3JtRmxvd0luc3RhbmNlLnN0ZXAudHlwZSk7XG4gICAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IGZvcm1GbG93SW5zdGFuY2UuaWQ7XG4gICAgICB0aGlzLmZvcm1GbG93U3RlcEluc3RhbmNlSWQgPSBmb3JtRmxvd0luc3RhbmNlLnN0ZXAuaWQ7XG4gICAgICB0aGlzLnNldEZvcm1EZWZpbml0aW9uQW5kT3Blbk1vZGFsKGZvcm1GbG93SW5zdGFuY2Uuc3RlcC50eXBlUHJvcGVydGllcy5kZWZpbml0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBsZXRlVGFzaygpIHtcbiAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudGFzay5uYW1lICsgJyBoYXMgc3VjY2Vzc2Z1bGx5IGJlZW4gY29tcGxldGVkJyk7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy50YXNrID0gbnVsbDtcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRhc2tQcm9jZXNzTGlua1R5cGUoKTogdm9pZCB7XG4gICAgdGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtRGVmaW5pdGlvbkFuZE9wZW5Nb2RhbChmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IGZvcm1EZWZpbml0aW9uO1xuICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVXJsTGluayhmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKFxuICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbZm9ybURlZmluaXRpb24uZm9ybUFzc29jaWF0aW9uLmZvcm1MaW5rLnVybF0pXG4gICAgKTtcblxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQW5ndWxhclN0YXRlVXJsTGluayh0YXNrOiBUYXNrLCBmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGNvbnN0IHRhc2tJZCA9IHRhc2s/LmlkO1xuICAgICAgY29uc3QgZG9jdW1lbnRJZCA9IHBhcmFtcz8uZG9jdW1lbnRJZDtcblxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Zvcm1EZWZpbml0aW9uLmZvcm1Bc3NvY2lhdGlvbi5mb3JtTGluay51cmxdLCB7XG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgLi4uKHRhc2tJZCAmJiB7dGFza0lkfSksXG4gICAgICAgICAgLi4uKGRvY3VtZW50SWQgJiYge2RvY3VtZW50SWR9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2YWx0aW1vLW1vZGFsXG4gICN0YXNrRGV0YWlsTW9kYWxcbiAgZWxlbWVudElkPVwidGFza0RldGFpbE1vZGFsXCJcbiAgW3RpdGxlXT1cInBhZ2U/LnRpdGxlXCJcbiAgW3N1YnRpdGxlXT1cInBhZ2U/LnN1YnRpdGxlXCJcbiAgW3RlbXBsYXRlQmVsb3dTdWJ0aXRsZV09XCJhc3NpZ25Vc2VyVG9UYXNrXCJcbj5cbiAgPGRpdlxuICAgIGJvZHlcbiAgICAqbmdJZj1cImZvcm1EZWZpbml0aW9uICYmICgocHJvY2Vzc0xpbmtJc0Zvcm0kIHwgYXN5bmMpIHx8IChmb3JtRmxvd1N0ZXBUeXBlSXNGb3JtJCB8IGFzeW5jKSlcIlxuICA+XG4gICAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICAgI2Zvcm1cbiAgICAgIFtmb3JtXT1cImZvcm1EZWZpbml0aW9uXCJcbiAgICAgIChzdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiXG4gICAgICBbb3B0aW9uc109XCJmb3JtaW9PcHRpb25zXCJcbiAgICA+PC92YWx0aW1vLWZvcm0taW8+XG4gIDwvZGl2PlxuICA8ZGl2IGJvZHkgKm5nSWY9XCIhZm9ybURlZmluaXRpb24gJiYgIWVycm9yTWVzc2FnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIj5cbiAgICAgIHt7XG4gICAgICAgIChpc0FkbWluJCB8IGFzeW5jKVxuICAgICAgICAgID8gKCdmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRBZG1pbicgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZFVzZXInIHwgdHJhbnNsYXRlKVxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgYm9keSAqbmdJZj1cImVycm9yTWVzc2FnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiZy1kYW5nZXIgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiPlxuICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGZvb3Rlcj5cbiAgICA8ZGl2IGNsYXNzPVwibWItMCBwLTMgdGV4dC1jZW50ZXJcIiAqbmdJZj1cIiFmb3JtRGVmaW5pdGlvblwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zcGFjZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZ290b0Zvcm1MaW5rU2NyZWVuKClcIlxuICAgICAgICBpZD1cImZvcm0tbGluay1idXR0b25cIlxuICAgICAgPlxuICAgICAgICB7eyAnZm9ybU1hbmFnZW1lbnQuZ290b0Zvcm1MaW5rc0J1dHRvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdmFsdGltby1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNhc3NpZ25Vc2VyVG9UYXNrPlxuICA8dmFsdGltby1hc3NpZ24tdXNlci10by10YXNrXG4gICAgKm5nSWY9XCJ0YXNrICYmIGFzc2lnbm1lbnRPZlRhc2tDaGFuZ2VkXCJcbiAgICBbdGFza0lkXT1cInRhc2suaWRcIlxuICAgIFthc3NpZ25lZUVtYWlsXT1cInRhc2suYXNzaWduZWVcIlxuICAgIChhc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZCk9XCJhc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZC5lbWl0KClcIlxuICA+PC92YWx0aW1vLWFzc2lnbi11c2VyLXRvLXRhc2s+XG48L25nLXRlbXBsYXRlPlxuIl19
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1kZXRhaWwtbW9kYWwvdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1kZXRhaWwtbW9kYWwvdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFFTCxpQkFBaUIsR0FLbEIsTUFBTSxxQkFBcUIsQ0FBQztBQVc3QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7O0FBS2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQVFyRCxNQUFNLE9BQU8sd0JBQXdCO0lBdUJuQyxZQUNtQixNQUFxQixFQUNyQixlQUFnQyxFQUNoQyxlQUFnQyxFQUNoQyxNQUFjLEVBQ2QsTUFBaUIsRUFDakIsS0FBcUIsRUFDckIsV0FBd0IsRUFDeEIsbUJBQXdDLEVBQ3hDLFlBQWlDLEVBQ2pDLGVBQWdDLEVBQ2hDLGdCQUFrQztRQVZsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFm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QUFTO3VCQUFDLE1BQU07Z0JBQ2EsS0FBSztzQkFBbEMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ2xCLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csdUJBQXVCO3NCQUFoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEZvcm1pb0NvbXBvbmVudCxcbiAgRm9ybWlvT3B0aW9uc0ltcGwsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIE1vZGFsQ29tcG9uZW50LFxuICBWYWx0aW1vRm9ybWlvT3B0aW9ucyxcbiAgVmFsdGltb01vZGFsU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1Rhc2ssIFRhc2tQcm9jZXNzTGlua1R5cGV9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBGb3JtQXNzb2NpYXRpb24sXG4gIEZvcm1GbG93SW5zdGFuY2UsXG4gIEZvcm1GbG93U2VydmljZSxcbiAgRm9ybUZsb3dTdGVwVHlwZSxcbiAgRm9ybUxpbmtTZXJ2aWNlLFxuICBGb3JtU3VibWlzc2lvblJlc3VsdCxcbn0gZnJvbSAnQHZhbHRpbW8vZm9ybS1saW5rJztcbmltcG9ydCB7Rm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQge21hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUYXNrU2VydmljZX0gZnJvbSAnLi4vdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VXNlclByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tdGFzay1kZXRhaWwtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YXNrLWRldGFpbC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrRGV0YWlsTW9kYWxDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybTogRm9ybWlvQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsTW9kYWwnKSBtb2RhbDogTW9kYWxDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYXNzaWdubWVudE9mVGFza0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHRhc2s6IFRhc2sgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGZvcm1EZWZpbml0aW9uOiBGb3JtaW9Gb3JtO1xuICBwdWJsaWMgZm9ybUZsb3dJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtRmxvd1N0ZXBJbnN0YW5jZUlkPzogc3RyaW5nO1xuICBwdWJsaWMgcGFnZTogYW55ID0gbnVsbDtcbiAgcHVibGljIGZvcm1pb09wdGlvbnM6IFZhbHRpbW9Gb3JtaW9PcHRpb25zO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xuICByZWFkb25seSBpc0FkbWluJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudXNlclByb3ZpZGVyU2VydmljZVxuICAgIC5nZXRVc2VyU3ViamVjdCgpXG4gICAgLnBpcGUobWFwKHVzZXJJZGVudGl0eSA9PiB1c2VySWRlbnRpdHk/LnJvbGVzPy5pbmNsdWRlcygnUk9MRV9BRE1JTicpKSk7XG4gIHByaXZhdGUgZm9ybUFzc29jaWF0aW9uOiBGb3JtQXNzb2NpYXRpb247XG4gIHByaXZhdGUgdGFza1Byb2Nlc3NMaW5rVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhc2tQcm9jZXNzTGlua1R5cGUgfCBudWxsPihudWxsKTtcbiAgcHJvY2Vzc0xpbmtJc0Zvcm0kID0gdGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5waXBlKG1hcCh0eXBlID0+IHR5cGUgPT09ICdmb3JtJykpO1xuICBwcm9jZXNzTGlua0lzRm9ybUZsb3ckID0gdGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5waXBlKG1hcCh0eXBlID0+IHR5cGUgPT09ICdmb3JtLWZsb3cnKSk7XG4gIHByaXZhdGUgZm9ybUZsb3dTdGVwVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1GbG93U3RlcFR5cGUgfCBudWxsPihudWxsKTtcbiAgZm9ybUZsb3dTdGVwVHlwZUlzRm9ybSQgPSB0aGlzLmZvcm1GbG93U3RlcFR5cGUkLnBpcGUobWFwKHR5cGUgPT4gdHlwZSA9PT0gJ2Zvcm0nKSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtTGlua1NlcnZpY2U6IEZvcm1MaW5rU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GbG93U2VydmljZTogRm9ybUZsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQcm92aWRlclNlcnZpY2U6IFVzZXJQcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IFZhbHRpbW9Nb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5mb3JtaW9PcHRpb25zID0gbmV3IEZvcm1pb09wdGlvbnNJbXBsKCk7XG4gICAgdGhpcy5mb3JtaW9PcHRpb25zLmRpc2FibGVBbGVydHMgPSB0cnVlO1xuICB9XG5cbiAgb3BlblRhc2tEZXRhaWxzKHRhc2s6IFRhc2spIHtcbiAgICB0aGlzLnJlc2V0VGFza1Byb2Nlc3NMaW5rVHlwZSgpO1xuICAgIHRoaXMucmVzZXRGb3JtRGVmaW5pdGlvbigpO1xuICAgIHRoaXMuZ2V0VGFza1Byb2Nlc3NMaW5rKHRhc2suaWQpO1xuICAgIHRoaXMuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZUluU2VydmljZSh0YXNrKTtcblxuICAgIHRoaXMudGFzayA9IHRhc2s7XG4gICAgdGhpcy5wYWdlID0ge1xuICAgICAgdGl0bGU6IHRhc2submFtZSxcbiAgICAgIHN1YnRpdGxlOiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndGFza0RldGFpbC50YXNrQ3JlYXRlZCcpfSAke3Rhc2suY3JlYXRlZH1gXG4gICAgfTtcblxuICAgIHRoaXMuZm9ybUxpbmtTZXJ2aWNlXG4gICAgICAuZ2V0UHJlRmlsbGVkRm9ybURlZmluaXRpb25CeUZvcm1MaW5rSWQoXG4gICAgICAgIHRhc2sucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgIHRhc2suYnVzaW5lc3NLZXksXG4gICAgICAgIHRhc2sudGFza0RlZmluaXRpb25LZXksXG4gICAgICAgIHRhc2suaWQgLy8gdGFza0luc3RhbmNlSWRcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGZvcm1EZWZpbml0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm1Bc3NvY2lhdGlvbiA9IGZvcm1EZWZpbml0aW9uLmZvcm1Bc3NvY2lhdGlvbjtcblxuICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRoaXMuZm9ybUFzc29jaWF0aW9uLmZvcm1MaW5rLmNsYXNzTmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgIGNvbnN0IGxpbmtUeXBlID0gY2xhc3NOYW1lW2NsYXNzTmFtZS5sZW5ndGggLSAxXTtcblxuICAgICAgICAgIHN3aXRjaCAobGlua1R5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0JwbW5FbGVtZW50Rm9ybUlkTGluayc6XG4gICAgICAgICAgICAgIHRoaXMuc2V0Rm9ybURlZmluaXRpb25BbmRPcGVuTW9kYWwoZm9ybURlZmluaXRpb24pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JwbW5FbGVtZW50Rm9ybUZsb3dJZExpbmsnOlxuICAgICAgICAgICAgICAvLyBXZSBjYW4ndCB1c2UgdGhlIGZvcm1EZWZpbml0aW9uIGhlcmUgYmVjYXVzZSB0aGUgZm9ybSBkZWZpbml0aW9uIGlzIHByb3ZpZGVkIHBlciBmb3JtIGZsb3cgc3RlcFxuICAgICAgICAgICAgICAvLyBJJ20gc3RpbGwgbGVhdmluZyB0aGlzIGluIGhlcmUgaW4gY2FzZSB3ZSB3YW50IHRvIGFkZCBmb3JtIGZsb3cgc3BlY2lmaWMgY29kZS5cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCcG1uRWxlbWVudFVybExpbmsnOlxuICAgICAgICAgICAgICB0aGlzLm9wZW5VcmxMaW5rKGZvcm1EZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCcG1uRWxlbWVudEFuZ3VsYXJTdGF0ZVVybExpbmsnOlxuICAgICAgICAgICAgICB0aGlzLm9wZW5Bbmd1bGFyU3RhdGVVcmxMaW5rKHRhc2ssIGZvcm1EZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5mYXRhbCgnVW5zdXBwb3J0ZWQgY2xhc3MgbmFtZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JzID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3JzPy5lcnJvcj8uZGV0YWlsKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9ycy5lcnJvci5kZXRhaWw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ290b0Zvcm1MaW5rU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZm9ybS1saW5rcyddKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdChzdWJtaXNzaW9uOiBGb3JtaW9TdWJtaXNzaW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFza1Byb2Nlc3NMaW5rVHlwZSQuZ2V0VmFsdWUoKSA9PT0gJ2Zvcm0nKSB7XG4gICAgICB0aGlzLmZvcm1MaW5rU2VydmljZVxuICAgICAgICAub25TdWJtaXQoXG4gICAgICAgICAgdGhpcy50YXNrLnByb2Nlc3NEZWZpbml0aW9uS2V5LFxuICAgICAgICAgIHRoaXMuZm9ybUFzc29jaWF0aW9uLmZvcm1MaW5rLmlkLFxuICAgICAgICAgIHN1Ym1pc3Npb24uZGF0YSxcbiAgICAgICAgICB0aGlzLnRhc2suYnVzaW5lc3NLZXksXG4gICAgICAgICAgdGhpcy50YXNrLmlkXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoXzogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVUYXNrKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcnMgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFza1Byb2Nlc3NMaW5rVHlwZSQuZ2V0VmFsdWUoKSA9PT0gJ2Zvcm0tZmxvdycpIHtcbiAgICAgIGlmIChzdWJtaXNzaW9uLmRhdGEuc3VibWl0KSB7XG4gICAgICAgIHRoaXMuZm9ybUZsb3dTZXJ2aWNlXG4gICAgICAgICAgLnN1Ym1pdFN0ZXAodGhpcy5mb3JtRmxvd0luc3RhbmNlSWQsIHRoaXMuZm9ybUZsb3dTdGVwSW5zdGFuY2VJZCwgc3VibWlzc2lvbi5kYXRhKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzdWx0OiBGb3JtRmxvd0luc3RhbmNlKSA9PiB0aGlzLmhhbmRsZUZvcm1GbG93U3RlcChyZXN1bHQpLFxuICAgICAgICAgICAgZXJyb3JzID0+IHRoaXMuZm9ybS5zaG93RXJyb3JzKGVycm9ycylcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzdWJtaXNzaW9uLmRhdGFbJ2JhY2snXSkge1xuICAgICAgICB0aGlzLmZvcm1GbG93U2VydmljZS5iYWNrKHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKHJlc3VsdDogRm9ybUZsb3dJbnN0YW5jZSkgPT4gdGhpcy5oYW5kbGVGb3JtRmxvd1N0ZXAocmVzdWx0KSxcbiAgICAgICAgICBlcnJvcnMgPT4gdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGb3JtRGVmaW5pdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFza1Byb2Nlc3NMaW5rKHRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YXNrU2VydmljZS5nZXRUYXNrUHJvY2Vzc0xpbmsodGFza0lkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHN3aXRjaCAocmVzPy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICAgIHRoaXMudGFza1Byb2Nlc3NMaW5rVHlwZSQubmV4dCgnZm9ybScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmb3JtLWZsb3cnOlxuICAgICAgICAgIHRoaXMudGFza1Byb2Nlc3NMaW5rVHlwZSQubmV4dCgnZm9ybS1mbG93Jyk7XG4gICAgICAgICAgdGhpcy5nZXRGb3JtRmxvd1N0ZXAocmVzPy5wcm9wZXJ0aWVzLmZvcm1GbG93SW5zdGFuY2VJZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1GbG93U3RlcChmb3JtRmxvd0luc3RhbmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUZsb3dTZXJ2aWNlXG4gICAgICAuZ2V0Rm9ybUZsb3dTdGVwKGZvcm1GbG93SW5zdGFuY2VJZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogRm9ybUZsb3dJbnN0YW5jZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUZvcm1GbG93U3RlcChyZXN1bHQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcm1GbG93U3RlcChmb3JtRmxvd0luc3RhbmNlOiBGb3JtRmxvd0luc3RhbmNlKSB7XG4gICAgaWYgKGZvcm1GbG93SW5zdGFuY2Uuc3RlcCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5mb3JtRmxvd1N0ZXBUeXBlJC5uZXh0KG51bGwpO1xuICAgICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQgPSBudWxsO1xuICAgICAgdGhpcy5mb3JtRmxvd1N0ZXBJbnN0YW5jZUlkID0gbnVsbDtcbiAgICAgIHRoaXMuY29tcGxldGVUYXNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLnNjcm9sbFRvVG9wKCk7XG4gICAgICB0aGlzLmZvcm1GbG93U3RlcFR5cGUkLm5leHQoZm9ybUZsb3dJbnN0YW5jZS5zdGVwLnR5cGUpO1xuICAgICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQgPSBmb3JtRmxvd0luc3RhbmNlLmlkO1xuICAgICAgdGhpcy5mb3JtRmxvd1N0ZXBJbnN0YW5jZUlkID0gZm9ybUZsb3dJbnN0YW5jZS5zdGVwLmlkO1xuICAgICAgdGhpcy5zZXRGb3JtRGVmaW5pdGlvbkFuZE9wZW5Nb2RhbChmb3JtRmxvd0luc3RhbmNlLnN0ZXAudHlwZVByb3BlcnRpZXMuZGVmaW5pdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZVRhc2soKSB7XG4gICAgdGhpcy50b2FzdHIuc3VjY2VzcyhgJHt0aGlzLnRhc2submFtZX0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndGFza0RldGFpbC50YXNrQ29tcGxldGVkJyl9YCk7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgdGhpcy50YXNrID0gbnVsbDtcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRhc2tQcm9jZXNzTGlua1R5cGUoKTogdm9pZCB7XG4gICAgdGhpcy50YXNrUHJvY2Vzc0xpbmtUeXBlJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtRGVmaW5pdGlvbkFuZE9wZW5Nb2RhbChmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IGZvcm1EZWZpbml0aW9uO1xuICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVXJsTGluayhmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKFxuICAgICAgdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbZm9ybURlZmluaXRpb24uZm9ybUFzc29jaWF0aW9uLmZvcm1MaW5rLnVybF0pXG4gICAgKTtcblxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQW5ndWxhclN0YXRlVXJsTGluayh0YXNrOiBUYXNrLCBmb3JtRGVmaW5pdGlvbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGNvbnN0IHRhc2tJZCA9IHRhc2s/LmlkO1xuICAgICAgY29uc3QgZG9jdW1lbnRJZCA9IHBhcmFtcz8uZG9jdW1lbnRJZDtcblxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Zvcm1EZWZpbml0aW9uLmZvcm1Bc3NvY2lhdGlvbi5mb3JtTGluay51cmxdLCB7XG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgLi4uKHRhc2tJZCAmJiB7dGFza0lkfSksXG4gICAgICAgICAgLi4uKGRvY3VtZW50SWQgJiYge2RvY3VtZW50SWR9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREb2N1bWVudERlZmluaXRpb25OYW1lSW5TZXJ2aWNlKHRhc2s6IFRhc2spOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZVxuICAgICAgLmdldFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25Gcm9tUHJvY2Vzc0luc3RhbmNlSWQodGFzay5wcm9jZXNzSW5zdGFuY2VJZClcbiAgICAgIC5zdWJzY3JpYmUocHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbiA9PiB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLnNldERvY3VtZW50RGVmaW5pdGlvbk5hbWUoXG4gICAgICAgICAgcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1tb2RhbFxuICAjdGFza0RldGFpbE1vZGFsXG4gIGVsZW1lbnRJZD1cInRhc2tEZXRhaWxNb2RhbFwiXG4gIFt0aXRsZV09XCJwYWdlPy50aXRsZVwiXG4gIFtzdWJ0aXRsZV09XCJwYWdlPy5zdWJ0aXRsZVwiXG4gIFt0ZW1wbGF0ZUJlbG93U3VidGl0bGVdPVwiYXNzaWduVXNlclRvVGFza1wiXG4+XG4gIDxkaXZcbiAgICBib2R5XG4gICAgKm5nSWY9XCJmb3JtRGVmaW5pdGlvbiAmJiAoKHByb2Nlc3NMaW5rSXNGb3JtJCB8IGFzeW5jKSB8fCAoZm9ybUZsb3dTdGVwVHlwZUlzRm9ybSQgfCBhc3luYykpXCJcbiAgPlxuICAgIDx2YWx0aW1vLWZvcm0taW9cbiAgICAgICNmb3JtXG4gICAgICBbZm9ybV09XCJmb3JtRGVmaW5pdGlvblwiXG4gICAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgICAgW29wdGlvbnNdPVwiZm9ybWlvT3B0aW9uc1wiXG4gICAgPjwvdmFsdGltby1mb3JtLWlvPlxuICA8L2Rpdj5cbiAgPGRpdiBib2R5ICpuZ0lmPVwiIWZvcm1EZWZpbml0aW9uICYmICFlcnJvck1lc3NhZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2FybmluZyB0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCI+XG4gICAgICB7e1xuICAgICAgICAoaXNBZG1pbiQgfCBhc3luYylcbiAgICAgICAgICA/ICgnZm9ybU1hbmFnZW1lbnQubm9Gb3JtRGVmaW5pdGlvbkZvdW5kQWRtaW4nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKCdmb3JtTWFuYWdlbWVudC5ub0Zvcm1EZWZpbml0aW9uRm91bmRVc2VyJyB8IHRyYW5zbGF0ZSlcbiAgICAgIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGJvZHkgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctZGFuZ2VyIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIj5cbiAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBmb290ZXI+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTAgcC0zIHRleHQtY2VudGVyXCIgKm5nSWY9XCIhZm9ybURlZmluaXRpb25cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc3BhY2VcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImdvdG9Gb3JtTGlua1NjcmVlbigpXCJcbiAgICAgICAgaWQ9XCJmb3JtLWxpbmstYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Zvcm1NYW5hZ2VtZW50LmdvdG9Gb3JtTGlua3NCdXR0b24nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3ZhbHRpbW8tbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjYXNzaWduVXNlclRvVGFzaz5cbiAgPHZhbHRpbW8tYXNzaWduLXVzZXItdG8tdGFza1xuICAgICpuZ0lmPVwidGFzayAmJiBhc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZFwiXG4gICAgW3Rhc2tJZF09XCJ0YXNrLmlkXCJcbiAgICBbYXNzaWduZWVFbWFpbF09XCJ0YXNrLmFzc2lnbmVlXCJcbiAgICAoYXNzaWdubWVudE9mVGFza0NoYW5nZWQpPVwiYXNzaWdubWVudE9mVGFza0NoYW5nZWQuZW1pdCgpXCJcbiAgPjwvdmFsdGltby1hc3NpZ24tdXNlci10by10YXNrPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -22,25 +22,33 @@ import * as i1 from "../task.service";
22
22
  import * as i2 from "@angular/router";
23
23
  import * as i3 from "ngx-logger";
24
24
  import * as i4 from "@ngx-translate/core";
25
- import * as i5 from "@valtimo/components";
26
- import * as i6 from "../task-detail-modal/task-detail-modal.component";
27
- import * as i7 from "@ng-bootstrap/ng-bootstrap";
25
+ import * as i5 from "@valtimo/config";
26
+ import * as i6 from "@valtimo/components";
27
+ import * as i7 from "../task-detail-modal/task-detail-modal.component";
28
+ import * as i8 from "@angular/common";
29
+ import * as i9 from "@ng-bootstrap/ng-bootstrap";
28
30
  moment.locale(localStorage.getItem('langKey') || '');
29
31
  export class TaskListComponent {
30
- constructor(taskService, router, logger, translateService) {
32
+ constructor(taskService, router, logger, translateService, configService) {
31
33
  this.taskService = taskService;
32
34
  this.router = router;
33
35
  this.logger = logger;
34
36
  this.translateService = translateService;
37
+ this.configService = configService;
35
38
  this.tasks = {
36
39
  mine: new TaskList(),
37
40
  open: new TaskList(),
38
41
  all: new TaskList(),
39
42
  };
43
+ this.visibleTabs = null;
40
44
  this.currentTaskType = 'mine';
41
45
  this.listTitle = null;
42
46
  this.listDescription = null;
43
47
  this.sortState = null;
48
+ this.visibleTabs = this.configService.config?.visibleTaskListTabs || null;
49
+ if (this.visibleTabs != null) {
50
+ this.currentTaskType = this.visibleTabs[0];
51
+ }
44
52
  this.setDefaultSorting();
45
53
  }
46
54
  paginationClicked(page, type) {
@@ -59,19 +67,7 @@ export class TaskListComponent {
59
67
  }
60
68
  tabChange(tab) {
61
69
  this.clearPagination(this.currentTaskType);
62
- switch (tab.nextId) {
63
- case 1:
64
- this.getTasks('mine');
65
- break;
66
- case 2:
67
- this.getTasks('open');
68
- break;
69
- case 3:
70
- this.getTasks('all');
71
- break;
72
- default:
73
- this.logger.fatal('Unreachable case');
74
- }
70
+ this.getTasks(tab.nextId);
75
71
  }
76
72
  showTask(task) {
77
73
  this.router.navigate(['tasks', task.id]);
@@ -189,13 +185,13 @@ export class TaskListComponent {
189
185
  this.translationSubscription.unsubscribe();
190
186
  }
191
187
  }
192
- TaskListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskListComponent, deps: [{ token: i1.TaskService }, { token: i2.Router }, { token: i3.NGXLogger }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
193
- TaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TaskListComponent, selector: "valtimo-task-list", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"tasks[currentTaskType].tasks\"\n [fields]=\"tasks[currentTaskType].fields\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n [viewMode]=\"true\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet()\"\n paginationIdentifier=\"taskList\"\n [isSearchable]=\"true\"\n [header]=\"true\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ listTitle }}</h3>\n <h5 class=\"list-header-description\">{{ listDescription }}</h5>\n </div>\n <div tabs>\n <ul ngbNav [destroyOnHide]=\"false\" (navChange)=\"tabChange($event)\" class=\"nav-tabs\">\n <li [ngbNavItem]=\"1\" [title]=\"'task-list.mine.title' | translate\">\n <a ngbNavLink>{{ 'task-list.mine.title' | translate }}</a>\n </li>\n <li [ngbNavItem]=\"2\" [title]=\"'task-list.open.title' | translate\">\n <a ngbNavLink>{{ 'task-list.open.title' | translate }}</a>\n </li>\n <li [ngbNavItem]=\"3\" [title]=\"'task-list.all.title' | translate\">\n <a ngbNavLink>{{ 'task-list.all.title' | translate }}</a>\n </li>\n </ul>\n </div>\n </valtimo-list>\n </valtimo-widget>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.tab-content{padding:0;margin:0}.nav.nav-tabs{background-color:#f5f5f5}\n"], components: [{ type: i5.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { type: i5.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { type: i6.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }], directives: [{ type: i7.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i7.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i7.NgbNavLink, selector: "a[ngbNavLink]" }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
188
+ TaskListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskListComponent, deps: [{ token: i1.TaskService }, { token: i2.Router }, { token: i3.NGXLogger }, { token: i4.TranslateService }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
189
+ TaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TaskListComponent, selector: "valtimo-task-list", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"tasks[currentTaskType].tasks\"\n [fields]=\"tasks[currentTaskType].fields\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n [viewMode]=\"true\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet()\"\n paginationIdentifier=\"taskList\"\n [isSearchable]=\"true\"\n [header]=\"true\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ listTitle }}</h3>\n <h5 class=\"list-header-description\">{{ listDescription }}</h5>\n </div>\n <div tabs>\n <ul *ngIf=\"visibleTabs === null; else configuredTabs\" ngbNav [destroyOnHide]=\"false\" (navChange)=\"tabChange($event)\" class=\"nav-tabs\">\n <li ngbNavItem=\"mine\" [title]=\"'task-list.mine.title' | translate\">\n <a ngbNavLink>{{ 'task-list.mine.title' | translate }}</a>\n </li>\n <li ngbNavItem=\"open\" [title]=\"'task-list.open.title' | translate\">\n <a ngbNavLink>{{ 'task-list.open.title' | translate }}</a>\n </li>\n <li ngbNavItem=\"all\" [title]=\"'task-list.all.title' | translate\">\n <a ngbNavLink>{{ 'task-list.all.title' | translate }}</a>\n </li>\n </ul>\n </div>\n </valtimo-list>\n </valtimo-widget>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n\n<ng-template #configuredTabs>\n <ul ngbNav [destroyOnHide]=\"false\" (navChange)=\"tabChange($event)\" class=\"nav-tabs\">\n <li *ngFor=\"let tab of visibleTabs;\" [ngbNavItem]=\"tab\"\n [title]=\"'task-list.' + tab + '.title' | translate\">\n <a ngbNavLink>{{ 'task-list.' + tab + '.title' | translate }}</a>\n </li>\n </ul>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.tab-content{padding:0;margin:0}.nav.nav-tabs{background-color:#f5f5f5}\n"], components: [{ type: i6.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { type: i6.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { type: i7.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { type: i9.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { type: i9.NgbNavLink, selector: "a[ngbNavLink]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
194
190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TaskListComponent, decorators: [{
195
191
  type: Component,
196
- args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"tasks[currentTaskType].tasks\"\n [fields]=\"tasks[currentTaskType].fields\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n [viewMode]=\"true\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet()\"\n paginationIdentifier=\"taskList\"\n [isSearchable]=\"true\"\n [header]=\"true\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ listTitle }}</h3>\n <h5 class=\"list-header-description\">{{ listDescription }}</h5>\n </div>\n <div tabs>\n <ul ngbNav [destroyOnHide]=\"false\" (navChange)=\"tabChange($event)\" class=\"nav-tabs\">\n <li [ngbNavItem]=\"1\" [title]=\"'task-list.mine.title' | translate\">\n <a ngbNavLink>{{ 'task-list.mine.title' | translate }}</a>\n </li>\n <li [ngbNavItem]=\"2\" [title]=\"'task-list.open.title' | translate\">\n <a ngbNavLink>{{ 'task-list.open.title' | translate }}</a>\n </li>\n <li [ngbNavItem]=\"3\" [title]=\"'task-list.all.title' | translate\">\n <a ngbNavLink>{{ 'task-list.all.title' | translate }}</a>\n </li>\n </ul>\n </div>\n </valtimo-list>\n </valtimo-widget>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.tab-content{padding:0;margin:0}.nav.nav-tabs{background-color:#f5f5f5}\n"] }]
197
- }], ctorParameters: function () { return [{ type: i1.TaskService }, { type: i2.Router }, { type: i3.NGXLogger }, { type: i4.TranslateService }]; }, propDecorators: { taskDetail: [{
192
+ args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"tasks[currentTaskType].tasks\"\n [fields]=\"tasks[currentTaskType].fields\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n [viewMode]=\"true\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet()\"\n paginationIdentifier=\"taskList\"\n [isSearchable]=\"true\"\n [header]=\"true\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ listTitle }}</h3>\n <h5 class=\"list-header-description\">{{ listDescription }}</h5>\n </div>\n <div tabs>\n <ul *ngIf=\"visibleTabs === null; else configuredTabs\" ngbNav [destroyOnHide]=\"false\" (navChange)=\"tabChange($event)\" class=\"nav-tabs\">\n <li ngbNavItem=\"mine\" [title]=\"'task-list.mine.title' | translate\">\n <a ngbNavLink>{{ 'task-list.mine.title' | translate }}</a>\n </li>\n <li ngbNavItem=\"open\" [title]=\"'task-list.open.title' | translate\">\n <a ngbNavLink>{{ 'task-list.open.title' | translate }}</a>\n </li>\n <li ngbNavItem=\"all\" [title]=\"'task-list.all.title' | translate\">\n <a ngbNavLink>{{ 'task-list.all.title' | translate }}</a>\n </li>\n </ul>\n </div>\n </valtimo-list>\n </valtimo-widget>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n\n<ng-template #configuredTabs>\n <ul ngbNav [destroyOnHide]=\"false\" (navChange)=\"tabChange($event)\" class=\"nav-tabs\">\n <li *ngFor=\"let tab of visibleTabs;\" [ngbNavItem]=\"tab\"\n [title]=\"'task-list.' + tab + '.title' | translate\">\n <a ngbNavLink>{{ 'task-list.' + tab + '.title' | translate }}</a>\n </li>\n </ul>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.tab-content{padding:0;margin:0}.nav.nav-tabs{background-color:#f5f5f5}\n"] }]
193
+ }], ctorParameters: function () { return [{ type: i1.TaskService }, { type: i2.Router }, { type: i3.NGXLogger }, { type: i4.TranslateService }, { type: i5.ConfigService }]; }, propDecorators: { taskDetail: [{
198
194
  type: ViewChild,
199
195
  args: ['taskDetail']
200
196
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQU8sUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSXpDLE9BQU8sRUFBQyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQUdqRCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFRckQsTUFBTSxPQUFPLGlCQUFpQjtJQWtCNUIsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsTUFBaUIsRUFDakIsZ0JBQWtDO1FBSGxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFwQnJDLFVBQUssR0FBRztZQUNiLElBQUksRUFBRSxJQUFJLFFBQVEsRUFBRTtZQUNwQixJQUFJLEVBQUUsSUFBSSxRQUFRLEVBQUU7WUFDcEIsR0FBRyxFQUFFLElBQUksUUFBUSxFQUFFO1NBQ3BCLENBQUM7UUFDSyxvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQUN6QixjQUFTLEdBQWtCLElBQUks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QUN2QzthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxtQkFBbUIsSUFBSSxJQUFJLENBQUM7SUFDM0YsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUFvQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWU7UUFDM0IsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs7K0dBMUxVLGlCQUFpQjttR0FBakIsaUJBQWlCLG1LQ25DOUIsNjJFQTBEQTs0RkR2QmEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJOzhLQUdaLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Rhc2tTZXJ2aWNlfSBmcm9tICcuLi90YXNrLnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtUYXNrLCBUYXNrTGlzdH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7VGFza0RldGFpbE1vZGFsQ29tcG9uZW50fSBmcm9tICcuLi90YXNrLWRldGFpbC1tb2RhbC90YXNrLWRldGFpbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7U29ydFN0YXRlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5tb21lbnQubG9jYWxlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nS2V5JykgfHwgJycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRhc2stbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YXNrLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFza0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsJykgdGFza0RldGFpbDogVGFza0RldGFpbE1vZGFsQ29tcG9uZW50O1xuICBwdWJsaWMgdGFza3MgPSB7XG4gICAgbWluZTogbmV3IFRhc2tMaXN0KCksXG4gICAgb3BlbjogbmV3IFRhc2tMaXN0KCksXG4gICAgYWxsOiBuZXcgVGFza0xpc3QoKSxcbiAgfTtcbiAgcHVibGljIGN1cnJlbnRUYXNrVHlwZSA9ICdtaW5lJztcbiAgcHVibGljIGxpc3RUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBsaXN0RGVzY3JpcHRpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgc29ydFN0YXRlOiBTb3J0U3RhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uQ2xpY2tlZChwYWdlOiBudW1iZXIsIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudGFza3NbdHlwZV0ucGFnZSA9IHBhZ2UgLSAxO1xuICAgIHRoaXMuZ2V0VGFza3ModHlwZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2V0RGVmYXVsdFNvcnRpbmcoKTtcbiAgfVxuXG4gIHBhZ2luYXRpb25TZXQoKSB7XG4gICAgdGhpcy50YXNrcy5taW5lLnBhZ2luYXRpb24uc2l6ZSA9XG4gICAgICB0aGlzLnRhc2tzLmFsbC5wYWdpbmF0aW9uLnNpemUgPVxuICAgICAgdGhpcy50YXNrcy5vcGVuLnBhZ2luYXRpb24uc2l6ZSA9XG4gICAgICAgIHRoaXMudGFza3NbdGhpcy5jdXJyZW50VGFza1R5cGVdLnBhZ2luYXRpb24uc2l6ZTtcbiAgICB0aGlzLmdldFRhc2tzKHRoaXMuY3VycmVudFRhc2tUeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJQYWdpbmF0aW9uKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudGFza3NbdHlwZV0ucGFnZSA9IDA7XG4gIH1cblxuICB0YWJDaGFuZ2UodGFiKSB7XG4gICAgdGhpcy5jbGVhclBhZ2luYXRpb24odGhpcy5jdXJyZW50VGFza1R5cGUpO1xuXG4gICAgc3dpdGNoICh0YWIubmV4dElkKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuZ2V0VGFza3MoJ21pbmUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZ2V0VGFza3MoJ29wZW4nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIHRoaXMuZ2V0VGFza3MoJ2FsbCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMubG9nZ2VyLmZhdGFsKCdVbnJlYWNoYWJsZSBjYXNlJyk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1Rhc2sodGFzaykge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndGFza3MnLCB0YXNrLmlkXSk7XG4gIH1cblxuICBnZXRUYXNrcyh0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgcGFyYW1zOiBhbnk7XG5cbiAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuJHt0eXBlfS50aXRsZWApLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LiR7dHlwZX0uZGVzY3JpcHRpb25gKSxcbiAgICBdKS5zdWJzY3JpYmUoKFt0aXRsZSwgZGVzY3JpcHRpb25dKSA9PiB7XG4gICAgICB0aGlzLmxpc3RUaXRsZSA9IHRpdGxlO1xuICAgICAgdGhpcy5saXN0RGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICB9KTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnbWluZSc6XG4gICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICBwYWdlOiB0aGlzLnRhc2tzLm1pbmUucGFnZSxcbiAgICAgICAgICBzaXplOiB0aGlzLnRhc2tzLm1pbmUucGFnaW5hdGlvbi5zaXplLFxuICAgICAgICAgIGZpbHRlcjogJ21pbmUnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRUYXNrVHlwZSA9ICdtaW5lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcGVuJzpcbiAgICAgICAgcGFyYW1zID0ge1xuICAgICAgICAgIHBhZ2U6IHRoaXMudGFza3Mub3Blbi5wYWdlLFxuICAgICAgICAgIHNpemU6IHRoaXMudGFza3Mub3Blbi5wYWdpbmF0aW9uLnNpemUsXG4gICAgICAgICAgZmlsdGVyOiAnb3BlbicsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3VycmVudFRhc2tUeXBlID0gJ29wZW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgIHBhcmFtcyA9IHtwYWdlOiB0aGlzLnRhc2tzLmFsbC5wYWdlLCBzaXplOiB0aGlzLnRhc2tzLm9wZW4ucGFnaW5hdGlvbi5zaXplLCBmaWx0ZXI6ICdhbGwnfTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFza1R5cGUgPSAnYWxsJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmxvZ2dlci5mYXRhbCgnVW5yZWFjaGFibGUgY2FzZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNvcnRTdGF0ZSkge1xuICAgICAgcGFyYW1zLnNvcnQgPSB0aGlzLmdldFNvcnRTdHJpbmcodGhpcy5zb3J0U3RhdGUpO1xuICAgIH1cblxuICAgIHRoaXMudGFza1NlcnZpY2UucXVlcnlUYXNrcyhwYXJhbXMpLnN1YnNjcmliZSgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICB0aGlzLnRhc2tzW3R5cGVdLnBhZ2luYXRpb24uY29sbGVjdGlvblNpemUgPSByZXN1bHRzLmhlYWRlcnMuZ2V0KCd4LXRvdGFsLWNvdW50Jyk7XG4gICAgICB0aGlzLnRhc2tzW3R5cGVdLnRhc2tzID0gcmVzdWx0cy5ib2R5IGFzIEFycmF5PFRhc2s+O1xuICAgICAgdGhpcy50YXNrc1t0eXBlXS50YXNrcy5tYXAoKHRhc2s6IFRhc2spID0+IHtcbiAgICAgICAgdGFzay5jcmVhdGVkID0gbW9tZW50KHRhc2suY3JlYXRlZCkuZm9ybWF0KCdERCBNTU0gWVlZWSBISDptbScpO1xuICAgICAgICBpZiAodGFzay5kdWUpIHtcbiAgICAgICAgICB0YXNrLmR1ZSA9IG1vbWVudCh0YXNrLmR1ZSkuZm9ybWF0KCdERCBNTU0gWVlZWSBISDptbScpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21UYXNrTGlzdEZpZWxkcyh0eXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFRhc2tMaXN0RmllbGRzKHR5cGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlZmF1bHRUYXNrTGlzdEZpZWxkcyh0eXBlKSB7XG4gICAgdGhpcy50cmFuc2xhdGlvblN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LmZpZWxkTGFiZWxzLmNyZWF0ZWRgKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC5maWVsZExhYmVscy5uYW1lYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMudmFsdGltb0Fzc2lnbmVlLmZ1bGxOYW1lYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuZHVlYCksXG4gICAgXSkuc3Vic2NyaWJlKChbY3JlYXRlZCwgbmFtZSwgYXNzaWduZWUsIGR1ZV0pID0+IHtcbiAgICAgIHRoaXMudGFza3NbdHlwZV0uZmllbGRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnY3JlYXRlZCcsXG4gICAgICAgICAgbGFiZWw6IGNyZWF0ZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICduYW1lJyxcbiAgICAgICAgICBsYWJlbDogbmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ3ZhbHRpbW9Bc3NpZ25lZS5mdWxsTmFtZScsXG4gICAgICAgICAgbGFiZWw6IGFzc2lnbmVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnZHVlJyxcbiAgICAgICAgICBsYWJlbDogZHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjdXN0b21UYXNrTGlzdEZpZWxkcyh0eXBlKSB7XG4gICAgY29uc3QgY3VzdG9tVGFza0xpc3RGaWVsZHMgPSB0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCkuZmllbGRzO1xuXG4gICAgdGhpcy50cmFuc2xhdGlvblN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBjdXN0b21UYXNrTGlzdEZpZWxkcy5tYXAoY29sdW1uID0+XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC5maWVsZExhYmVscy4ke2NvbHVtbi50cmFuc2xhdGlvbktleX1gKVxuICAgICAgKVxuICAgICkuc3Vic2NyaWJlKGxhYmVscyA9PiB7XG4gICAgICB0aGlzLnRhc2tzW3R5cGVdLmZpZWxkcyA9IGN1c3RvbVRhc2tMaXN0RmllbGRzLm1hcCgoY29sdW1uLCBpbmRleCkgPT4gKHtcbiAgICAgICAga2V5OiBjb2x1bW4ucHJvcGVydHlOYW1lLFxuICAgICAgICBsYWJlbDogbGFiZWxzW2luZGV4XSxcbiAgICAgICAgc29ydGFibGU6IGNvbHVtbi5zb3J0YWJsZSxcbiAgICAgICAgLi4uKGNvbHVtbi52aWV3VHlwZSAmJiB7dmlld1R5cGU6IGNvbHVtbi52aWV3VHlwZX0pLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJvd09wZW5UYXNrQ2xpY2sodGFzaykge1xuICAgIGlmICghdGFzay5lbmRUaW1lKSB7XG4gICAgICB0aGlzLnRhc2tEZXRhaWwub3BlblRhc2tEZXRhaWxzKHRhc2spO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc2V0RGVmYXVsdFNvcnRpbmcoKSB7XG4gICAgdGhpcy5zb3J0U3RhdGUgPSB0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCk/LmRlZmF1bHRTb3J0ZWRDb2x1bW4gfHwgbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0Q2hhbmdlZChzb3J0U3RhdGU6IFNvcnRTdGF0ZSkge1xuICAgIHRoaXMuc29ydFN0YXRlID0gc29ydFN0YXRlO1xuICAgIHRoaXMuZ2V0VGFza3ModGhpcy5jdXJyZW50VGFza1R5cGUpO1xuICB9XG5cbiAgZ2V0U29ydFN0cmluZyhzb3J0OiBTb3J0U3RhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzb3J0LnN0YXRlLm5hbWV9LCR7c29ydC5zdGF0ZS5kaXJlY3Rpb259YDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICA8dmFsdGltby13aWRnZXQ+XG4gICAgICA8dmFsdGltby1saXN0XG4gICAgICAgIFtpdGVtc109XCJ0YXNrc1tjdXJyZW50VGFza1R5cGVdLnRhc2tzXCJcbiAgICAgICAgW2ZpZWxkc109XCJ0YXNrc1tjdXJyZW50VGFza1R5cGVdLmZpZWxkc1wiXG4gICAgICAgIFtwYWdpbmF0aW9uXT1cInRhc2tzW2N1cnJlbnRUYXNrVHlwZV0ucGFnaW5hdGlvblwiXG4gICAgICAgIFt2aWV3TW9kZV09XCJ0cnVlXCJcbiAgICAgICAgKHBhZ2luYXRpb25DbGlja2VkKT1cInBhZ2luYXRpb25DbGlja2VkKCRldmVudCwgY3VycmVudFRhc2tUeXBlKVwiXG4gICAgICAgIChwYWdpbmF0aW9uU2V0KT1cInBhZ2luYXRpb25TZXQoKVwiXG4gICAgICAgIHBhZ2luYXRpb25JZGVudGlmaWVyPVwidGFza0xpc3RcIlxuICAgICAgICBbaXNTZWFyY2hhYmxlXT1cInRydWVcIlxuICAgICAgICBbaGVhZGVyXT1cInRydWVcIlxuICAgICAgICAocm93Q2xpY2tlZCk9XCJyb3dPcGVuVGFza0NsaWNrKCRldmVudClcIlxuICAgICAgICAoc29ydENoYW5nZWQpPVwic29ydENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgaGVhZGVyPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImxpc3QtaGVhZGVyLXRpdGxlXCI+e3sgbGlzdFRpdGxlIH19PC9oMz5cbiAgICAgICAgICA8aDUgY2xhc3M9XCJsaXN0LWhlYWRlci1kZXNjcmlwdGlvblwiPnt7IGxpc3REZXNjcmlwdGlvbiB9fTwvaDU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHRhYnM+XG4gICAgICAgICAgPHVsIG5nYk5hdiBbZGVzdHJveU9uSGlkZV09XCJmYWxzZVwiIChuYXZDaGFuZ2UpPVwidGFiQ2hhbmdlKCRldmVudClcIiBjbGFzcz1cIm5hdi10YWJzXCI+XG4gICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiMVwiIFt0aXRsZV09XCIndGFzay1saXN0Lm1pbmUudGl0bGUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3sgJ3Rhc2stbGlzdC5taW5lLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiMlwiIFt0aXRsZV09XCIndGFzay1saXN0Lm9wZW4udGl0bGUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3sgJ3Rhc2stbGlzdC5vcGVuLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgW25nYk5hdkl0ZW1dPVwiM1wiIFt0aXRsZV09XCIndGFzay1saXN0LmFsbC50aXRsZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluaz57eyAndGFzay1saXN0LmFsbC50aXRsZScgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC92YWx0aW1vLWxpc3Q+XG4gICAgPC92YWx0aW1vLXdpZGdldD5cbiAgICA8dmFsdGltby10YXNrLWRldGFpbC1tb2RhbFxuICAgICAgI3Rhc2tEZXRhaWxcbiAgICAgIChmb3JtU3VibWl0KT1cImdldFRhc2tzKGN1cnJlbnRUYXNrVHlwZSlcIlxuICAgICAgKGFzc2lnbm1lbnRPZlRhc2tDaGFuZ2VkKT1cImdldFRhc2tzKGN1cnJlbnRUYXNrVHlwZSlcIlxuICAgID48L3ZhbHRpbW8tdGFzay1kZXRhaWwtbW9kYWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQU8sUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSXpDLE9BQU8sRUFBQyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBR2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQVFyRCxNQUFNLE9BQU8saUJBQWlCO0lBYzVCLFlBQ1UsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLE1BQWlCLEVBQ2pCLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUo1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBakIvQixVQUFLLEdBQUc7WUFDYixJQUFJLEVBQUUsSUFBSSxRQUFRLEVBQUU7WUFDcEIsSUFBSSxFQUFFLElBQUksUUFBUSxFQUFFO1lBQ3BCLEdBQUcsRUFBRSxJQUFJLFFBQVEsRUFBRTtTQUNwQixDQUFDO1FBQ0ssZ0JBQVcsR0FBOEIsSUFBSSxDQUFDO1FBQzlDLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLG9CQUFlLEdBQWtCLElBQUksQ0FBQztRQUN0QyxjQUFTLEdBQXFCLElBQUksQ0FBQztRQVV4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTtZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSTtnQkFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7b0JBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUc7UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQUk7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsSUFBSSxNQUFXLENBQUM7UUFFaEIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGFBQWEsQ0FBQztZQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxRQUFRLENBQUM7WUFDdkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksY0FBYyxDQUFDO1NBQzlELENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsTUFBTSxHQUFHO29CQUNQLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJO29CQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7b0JBQ3JDLE1BQU0sRUFBRSxNQUFNO2lCQUNmLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsTUFBTSxHQUFHO29CQUNQLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJO29CQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7b0JBQ3JDLE1BQU0sRUFBRSxNQUFNO2lCQUNmLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsTUFBTSxHQUFHLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLENBQUM7Z0JBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFtQixDQUFDO1lBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2hFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3pEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHFCQUFxQixDQUFDLElBQUk7UUFDL0IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGFBQWEsQ0FBQztZQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLCtCQUErQixDQUFDO1lBQzdELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7WUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxnREFBZ0QsQ0FBQztZQUM5RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDO1NBQzFELENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUc7Z0JBQ3hCO29CQUNFLEdBQUcsRUFBRSxTQUFTO29CQUNkLEtBQUssRUFBRSxPQUFPO2lCQUNmO2dCQUNEO29CQUNFLEdBQUcsRUFBRSxNQUFNO29CQUNYLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLEdBQUcsRUFBRSwwQkFBMEI7b0JBQy9CLEtBQUssRUFBRSxRQUFRO2lCQUNoQjtnQkFDRDtvQkFDRSxHQUFHLEVBQUUsS0FBSztvQkFDVixLQUFLLEVBQUUsR0FBRztpQkFDWDthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxJQUFJO1FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUUvRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsYUFBYSxDQUMxQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQy9FLENBQ0YsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDckUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxZQUFZO2dCQUN4QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFDLENBQUM7YUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztJQUMzRixDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQW9CO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBZTtRQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzsrR0FuTFUsaUJBQWlCO21HQUFqQixpQkFBaUIsbUtDbkM5QixveUZBb0VBOzRGRGpDYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUdkLGlCQUFpQixDQUFDLElBQUk7ME1BR1osVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VGFza1NlcnZpY2V9IGZyb20gJy4uL3Rhc2suc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1Rhc2ssIFRhc2tMaXN0fSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtUYXNrRGV0YWlsTW9kYWxDb21wb25lbnR9IGZyb20gJy4uL3Rhc2stZGV0YWlsLW1vZGFsL3Rhc2stZGV0YWlsLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlLCBTb3J0U3RhdGUsIFRhc2tMaXN0VGFifSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5tb21lbnQubG9jYWxlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nS2V5JykgfHwgJycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRhc2stbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YXNrLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFza0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsJykgdGFza0RldGFpbDogVGFza0RldGFpbE1vZGFsQ29tcG9uZW50O1xuICBwdWJsaWMgdGFza3MgPSB7XG4gICAgbWluZTogbmV3IFRhc2tMaXN0KCksXG4gICAgb3BlbjogbmV3IFRhc2tMaXN0KCksXG4gICAgYWxsOiBuZXcgVGFza0xpc3QoKSxcbiAgfTtcbiAgcHVibGljIHZpc2libGVUYWJzOiBBcnJheTxUYXNrTGlzdFRhYj4gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGN1cnJlbnRUYXNrVHlwZSA9ICdtaW5lJztcbiAgcHVibGljIGxpc3RUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBsaXN0RGVzY3JpcHRpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgc29ydFN0YXRlOiBTb3J0U3RhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGFza1NlcnZpY2U6IFRhc2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudmlzaWJsZVRhYnMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnPy52aXNpYmxlVGFza0xpc3RUYWJzIHx8IG51bGw7XG4gICAgaWYgKHRoaXMudmlzaWJsZVRhYnMgIT0gbnVsbCkge1xuICAgICAgdGhpcy5jdXJyZW50VGFza1R5cGUgPSB0aGlzLnZpc2libGVUYWJzWzBdO1xuICAgIH1cbiAgICB0aGlzLnNldERlZmF1bHRTb3J0aW5nKCk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvbkNsaWNrZWQocGFnZTogbnVtYmVyLCB0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhc2tzW3R5cGVdLnBhZ2UgPSBwYWdlIC0gMTtcbiAgICB0aGlzLmdldFRhc2tzKHR5cGUpO1xuICB9XG5cbiAgcGFnaW5hdGlvblNldCgpIHtcbiAgICB0aGlzLnRhc2tzLm1pbmUucGFnaW5hdGlvbi5zaXplID1cbiAgICAgIHRoaXMudGFza3MuYWxsLnBhZ2luYXRpb24uc2l6ZSA9XG4gICAgICB0aGlzLnRhc2tzLm9wZW4ucGFnaW5hdGlvbi5zaXplID1cbiAgICAgICAgdGhpcy50YXNrc1t0aGlzLmN1cnJlbnRUYXNrVHlwZV0ucGFnaW5hdGlvbi5zaXplO1xuICAgIHRoaXMuZ2V0VGFza3ModGhpcy5jdXJyZW50VGFza1R5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclBhZ2luYXRpb24odHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy50YXNrc1t0eXBlXS5wYWdlID0gMDtcbiAgfVxuXG4gIHRhYkNoYW5nZSh0YWIpIHtcbiAgICB0aGlzLmNsZWFyUGFnaW5hdGlvbih0aGlzLmN1cnJlbnRUYXNrVHlwZSk7XG4gICAgdGhpcy5nZXRUYXNrcyh0YWIubmV4dElkKTtcbiAgfVxuXG4gIHNob3dUYXNrKHRhc2spIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Rhc2tzJywgdGFzay5pZF0pO1xuICB9XG5cbiAgZ2V0VGFza3ModHlwZTogc3RyaW5nKSB7XG4gICAgbGV0IHBhcmFtczogYW55O1xuXG4gICAgdGhpcy50cmFuc2xhdGlvblN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LiR7dHlwZX0udGl0bGVgKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC4ke3R5cGV9LmRlc2NyaXB0aW9uYCksXG4gICAgXSkuc3Vic2NyaWJlKChbdGl0bGUsIGRlc2NyaXB0aW9uXSkgPT4ge1xuICAgICAgdGhpcy5saXN0VGl0bGUgPSB0aXRsZTtcbiAgICAgIHRoaXMubGlzdERlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ21pbmUnOlxuICAgICAgICBwYXJhbXMgPSB7XG4gICAgICAgICAgcGFnZTogdGhpcy50YXNrcy5taW5lLnBhZ2UsXG4gICAgICAgICAgc2l6ZTogdGhpcy50YXNrcy5taW5lLnBhZ2luYXRpb24uc2l6ZSxcbiAgICAgICAgICBmaWx0ZXI6ICdtaW5lJyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFza1R5cGUgPSAnbWluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3Blbic6XG4gICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICBwYWdlOiB0aGlzLnRhc2tzLm9wZW4ucGFnZSxcbiAgICAgICAgICBzaXplOiB0aGlzLnRhc2tzLm9wZW4ucGFnaW5hdGlvbi5zaXplLFxuICAgICAgICAgIGZpbHRlcjogJ29wZW4nLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRUYXNrVHlwZSA9ICdvcGVuJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGwnOlxuICAgICAgICBwYXJhbXMgPSB7cGFnZTogdGhpcy50YXNrcy5hbGwucGFnZSwgc2l6ZTogdGhpcy50YXNrcy5vcGVuLnBhZ2luYXRpb24uc2l6ZSwgZmlsdGVyOiAnYWxsJ307XG4gICAgICAgIHRoaXMuY3VycmVudFRhc2tUeXBlID0gJ2FsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5sb2dnZXIuZmF0YWwoJ1VucmVhY2hhYmxlIGNhc2UnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0U3RhdGUpIHtcbiAgICAgIHBhcmFtcy5zb3J0ID0gdGhpcy5nZXRTb3J0U3RyaW5nKHRoaXMuc29ydFN0YXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhc2tTZXJ2aWNlLnF1ZXJ5VGFza3MocGFyYW1zKS5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgdGhpcy50YXNrc1t0eXBlXS5wYWdpbmF0aW9uLmNvbGxlY3Rpb25TaXplID0gcmVzdWx0cy5oZWFkZXJzLmdldCgneC10b3RhbC1jb3VudCcpO1xuICAgICAgdGhpcy50YXNrc1t0eXBlXS50YXNrcyA9IHJlc3VsdHMuYm9keSBhcyBBcnJheTxUYXNrPjtcbiAgICAgIHRoaXMudGFza3NbdHlwZV0udGFza3MubWFwKCh0YXNrOiBUYXNrKSA9PiB7XG4gICAgICAgIHRhc2suY3JlYXRlZCA9IG1vbWVudCh0YXNrLmNyZWF0ZWQpLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW0nKTtcbiAgICAgICAgaWYgKHRhc2suZHVlKSB7XG4gICAgICAgICAgdGFzay5kdWUgPSBtb21lbnQodGFzay5kdWUpLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW0nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy50YXNrU2VydmljZS5nZXRDb25maWdDdXN0b21UYXNrTGlzdCgpKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tVGFza0xpc3RGaWVsZHModHlwZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlZmF1bHRUYXNrTGlzdEZpZWxkcyh0eXBlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0VGFza0xpc3RGaWVsZHModHlwZSkge1xuICAgIHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC5maWVsZExhYmVscy5jcmVhdGVkYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMubmFtZWApLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LmZpZWxkTGFiZWxzLnZhbHRpbW9Bc3NpZ25lZS5mdWxsTmFtZWApLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LmZpZWxkTGFiZWxzLmR1ZWApLFxuICAgIF0pLnN1YnNjcmliZSgoW2NyZWF0ZWQsIG5hbWUsIGFzc2lnbmVlLCBkdWVdKSA9PiB7XG4gICAgICB0aGlzLnRhc2tzW3R5cGVdLmZpZWxkcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2NyZWF0ZWQnLFxuICAgICAgICAgIGxhYmVsOiBjcmVhdGVkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnbmFtZScsXG4gICAgICAgICAgbGFiZWw6IG5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICd2YWx0aW1vQXNzaWduZWUuZnVsbE5hbWUnLFxuICAgICAgICAgIGxhYmVsOiBhc3NpZ25lZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2R1ZScsXG4gICAgICAgICAgbGFiZWw6IGR1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3VzdG9tVGFza0xpc3RGaWVsZHModHlwZSkge1xuICAgIGNvbnN0IGN1c3RvbVRhc2tMaXN0RmllbGRzID0gdGhpcy50YXNrU2VydmljZS5nZXRDb25maWdDdXN0b21UYXNrTGlzdCgpLmZpZWxkcztcblxuICAgIHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgY3VzdG9tVGFza0xpc3RGaWVsZHMubWFwKGNvbHVtbiA9PlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuJHtjb2x1bW4udHJhbnNsYXRpb25LZXl9YClcbiAgICAgIClcbiAgICApLnN1YnNjcmliZShsYWJlbHMgPT4ge1xuICAgICAgdGhpcy50YXNrc1t0eXBlXS5maWVsZHMgPSBjdXN0b21UYXNrTGlzdEZpZWxkcy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+ICh7XG4gICAgICAgIGtleTogY29sdW1uLnByb3BlcnR5TmFtZSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIHNvcnRhYmxlOiBjb2x1bW4uc29ydGFibGUsXG4gICAgICAgIC4uLihjb2x1bW4udmlld1R5cGUgJiYge3ZpZXdUeXBlOiBjb2x1bW4udmlld1R5cGV9KSxcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByb3dPcGVuVGFza0NsaWNrKHRhc2spIHtcbiAgICBpZiAoIXRhc2suZW5kVGltZSkge1xuICAgICAgdGhpcy50YXNrRGV0YWlsLm9wZW5UYXNrRGV0YWlscyh0YXNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHNldERlZmF1bHRTb3J0aW5nKCkge1xuICAgIHRoaXMuc29ydFN0YXRlID0gdGhpcy50YXNrU2VydmljZS5nZXRDb25maWdDdXN0b21UYXNrTGlzdCgpPy5kZWZhdWx0U29ydGVkQ29sdW1uIHx8IG51bGw7XG4gIH1cblxuICBwdWJsaWMgc29ydENoYW5nZWQoc29ydFN0YXRlOiBTb3J0U3RhdGUpIHtcbiAgICB0aGlzLnNvcnRTdGF0ZSA9IHNvcnRTdGF0ZTtcbiAgICB0aGlzLmdldFRhc2tzKHRoaXMuY3VycmVudFRhc2tUeXBlKTtcbiAgfVxuXG4gIGdldFNvcnRTdHJpbmcoc29ydDogU29ydFN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7c29ydC5zdGF0ZS5uYW1lfSwke3NvcnQuc3RhdGUuZGlyZWN0aW9ufWA7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgPHZhbHRpbW8td2lkZ2V0PlxuICAgICAgPHZhbHRpbW8tbGlzdFxuICAgICAgICBbaXRlbXNdPVwidGFza3NbY3VycmVudFRhc2tUeXBlXS50YXNrc1wiXG4gICAgICAgIFtmaWVsZHNdPVwidGFza3NbY3VycmVudFRhc2tUeXBlXS5maWVsZHNcIlxuICAgICAgICBbcGFnaW5hdGlvbl09XCJ0YXNrc1tjdXJyZW50VGFza1R5cGVdLnBhZ2luYXRpb25cIlxuICAgICAgICBbdmlld01vZGVdPVwidHJ1ZVwiXG4gICAgICAgIChwYWdpbmF0aW9uQ2xpY2tlZCk9XCJwYWdpbmF0aW9uQ2xpY2tlZCgkZXZlbnQsIGN1cnJlbnRUYXNrVHlwZSlcIlxuICAgICAgICAocGFnaW5hdGlvblNldCk9XCJwYWdpbmF0aW9uU2V0KClcIlxuICAgICAgICBwYWdpbmF0aW9uSWRlbnRpZmllcj1cInRhc2tMaXN0XCJcbiAgICAgICAgW2lzU2VhcmNoYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICAgICAgKHJvd0NsaWNrZWQpPVwicm93T3BlblRhc2tDbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGhlYWRlcj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJsaXN0LWhlYWRlci10aXRsZVwiPnt7IGxpc3RUaXRsZSB9fTwvaDM+XG4gICAgICAgICAgPGg1IGNsYXNzPVwibGlzdC1oZWFkZXItZGVzY3JpcHRpb25cIj57eyBsaXN0RGVzY3JpcHRpb24gfX08L2g1PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiB0YWJzPlxuICAgICAgICAgIDx1bCAqbmdJZj1cInZpc2libGVUYWJzID09PSBudWxsOyBlbHNlIGNvbmZpZ3VyZWRUYWJzXCIgbmdiTmF2IFtkZXN0cm95T25IaWRlXT1cImZhbHNlXCIgKG5hdkNoYW5nZSk9XCJ0YWJDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwibmF2LXRhYnNcIj5cbiAgICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW09XCJtaW5lXCIgW3RpdGxlXT1cIid0YXNrLWxpc3QubWluZS50aXRsZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7ICd0YXNrLWxpc3QubWluZS50aXRsZScgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtPVwib3BlblwiIFt0aXRsZV09XCIndGFzay1saXN0Lm9wZW4udGl0bGUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgPGEgbmdiTmF2TGluaz57eyAndGFzay1saXN0Lm9wZW4udGl0bGUnIHwgdHJhbnNsYXRlIH19PC9hPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGkgbmdiTmF2SXRlbT1cImFsbFwiIFt0aXRsZV09XCIndGFzay1saXN0LmFsbC50aXRsZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7ICd0YXNrLWxpc3QuYWxsLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdmFsdGltby1saXN0PlxuICAgIDwvdmFsdGltby13aWRnZXQ+XG4gICAgPHZhbHRpbW8tdGFzay1kZXRhaWwtbW9kYWxcbiAgICAgICN0YXNrRGV0YWlsXG4gICAgICAoZm9ybVN1Ym1pdCk9XCJnZXRUYXNrcyhjdXJyZW50VGFza1R5cGUpXCJcbiAgICAgIChhc3NpZ25tZW50T2ZUYXNrQ2hhbmdlZCk9XCJnZXRUYXNrcyhjdXJyZW50VGFza1R5cGUpXCJcbiAgICA+PC92YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbjxuZy10ZW1wbGF0ZSAjY29uZmlndXJlZFRhYnM+XG4gIDx1bCBuZ2JOYXYgW2Rlc3Ryb3lPbkhpZGVdPVwiZmFsc2VcIiAobmF2Q2hhbmdlKT1cInRhYkNoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJuYXYtdGFic1wiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgdGFiIG9mIHZpc2libGVUYWJzO1wiIFtuZ2JOYXZJdGVtXT1cInRhYlwiXG4gICAgICAgIFt0aXRsZV09XCIndGFzay1saXN0LicgKyB0YWIgKyAnLnRpdGxlJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPGEgbmdiTmF2TGluaz57eyAndGFzay1saXN0LicgKyB0YWIgKyAnLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==