@colijnit/sharedcomponents 254.1.1 → 254.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdpartylicenses.txt +1408 -0
- package/bundles/colijnit-sharedcomponents.umd.js +609 -153
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +2 -0
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +3 -1
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +8 -7
- package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +15 -21
- package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +8 -10
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +2 -2
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +5 -5
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +2 -2
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +7 -4
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +7 -4
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +39 -13
- package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +10 -3
- package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +42 -57
- package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +5 -3
- package/esm2015/lib/components/simple-tags/simple-tags.component.js +5 -147
- package/esm2015/lib/components/simple-tags/simple-tags.module.js +4 -2
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +196 -0
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +26 -0
- package/esm2015/lib/components/task-modifyer/task-modifier.component.js +9 -9
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +45 -0
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +22 -0
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +55 -0
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +22 -0
- package/esm2015/lib/enum/icon.enum.js +1 -1
- package/esm2015/lib/model/icon-svg.js +1 -1
- package/esm2015/lib/service/shared-connector.service.js +93 -1
- package/esm2015/lib/service/shared.service.js +44 -1
- package/esm2015/public-api.js +5 -1
- package/favicon.ico +0 -0
- package/fesm2015/colijnit-sharedcomponents.js +565 -218
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/index.html +12 -0
- package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +3 -1
- package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +3 -8
- package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +3 -4
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +2 -2
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +3 -1
- package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +3 -1
- package/lib/components/modify-task-form/modify-task-form.component.d.ts +9 -4
- package/lib/components/modify-task-form/style/_layout.scss +4 -0
- package/lib/components/open-activity-list/component-activity-list.component.d.ts +9 -11
- package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +2 -0
- package/lib/components/simple-tags/simple-tags.component.d.ts +1 -8
- package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +29 -0
- package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +2 -0
- package/lib/components/simple-tags-form/style/_layout.scss +257 -0
- package/lib/components/simple-tags-form/style/_material-definition.scss +39 -0
- package/lib/components/simple-tags-form/style/_theme.scss +4 -0
- package/lib/components/simple-tags-form/style/material.scss +4 -0
- package/lib/components/task-modifyer/task-modifier.component.d.ts +3 -5
- package/lib/components/workflow-info-tiles/components/style/_layout.scss +49 -0
- package/lib/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
- package/lib/components/workflow-info-tiles/components/style/_theme.scss +4 -0
- package/lib/components/workflow-info-tiles/components/style/material.scss +4 -0
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +15 -0
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +2 -0
- package/lib/components/workflow-info-tiles/style/_layout.scss +16 -0
- package/lib/components/workflow-info-tiles/style/_material-definition.scss +0 -0
- package/lib/components/workflow-info-tiles/style/_theme.scss +4 -0
- package/lib/components/workflow-info-tiles/style/material.scss +4 -0
- package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +21 -0
- package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +2 -0
- package/lib/service/shared-connector.service.d.ts +10 -0
- package/lib/service/shared.service.d.ts +12 -0
- package/main.894c3ac9caba556953e2.js +1 -0
- package/package.json +2 -1
- package/polyfills.907fe9d1887c5de17993.js +1 -0
- package/public-api.d.ts +4 -0
- package/runtime.8aac21847ed3d3829cca.js +1 -0
- package/styles.b92683eab3a233f3fb51.css +1 -0
|
@@ -11,9 +11,11 @@ import { ActivitySortType } from "@colijnit/mainapi/build/enum/activity-sort-typ
|
|
|
11
11
|
import { OperationWithAlwaysSuccessCallback } from "../../interface/operation-callback-simple-function";
|
|
12
12
|
import { PersonalActivityOverviewComponent } from "./components/personal-activity-overview/personal-activity-overview.component";
|
|
13
13
|
import { OperationWithValidationCallback } from "../../interface/operation-callback-function-with-validation";
|
|
14
|
+
import { SharedService } from "../../service/shared.service";
|
|
14
15
|
export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
15
|
-
constructor() {
|
|
16
|
+
constructor(sharedService) {
|
|
16
17
|
super();
|
|
18
|
+
this.sharedService = sharedService;
|
|
17
19
|
this.tabs = PersonalActivityTabEnum;
|
|
18
20
|
this.icons = Icon;
|
|
19
21
|
this.activityClass = Activity;
|
|
@@ -21,19 +23,12 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
21
23
|
this.hideTitle = false;
|
|
22
24
|
this.noFreeTasks = false;
|
|
23
25
|
this.componentActivitiesMethod = OperationWithAlwaysSuccessCallback;
|
|
24
|
-
this.fireGenericTriggerOperation = OperationWithValidationCallback;
|
|
25
|
-
this.fireTriggerOperation = OperationWithValidationCallback;
|
|
26
|
-
this.canFireTriggerOperation = OperationWithAlwaysSuccessCallback;
|
|
27
26
|
this.setHasPausedNotificationsForWorkflowProcessOperation = OperationWithValidationCallback;
|
|
28
|
-
this.lockTaskOperation = OperationWithAlwaysSuccessCallback;
|
|
29
|
-
this.deleteActivityOperation = OperationWithAlwaysSuccessCallback;
|
|
30
|
-
this.upsertActivityOperation = OperationWithAlwaysSuccessCallback;
|
|
31
27
|
this.openLinkClick = new EventEmitter();
|
|
32
28
|
this.amountActivityChanged = new EventEmitter();
|
|
33
29
|
this.linkClicked = new EventEmitter();
|
|
34
30
|
this.formCreated = new EventEmitter();
|
|
35
|
-
this.
|
|
36
|
-
this.triggerFired = new EventEmitter();
|
|
31
|
+
this.refreshRequested = new EventEmitter();
|
|
37
32
|
this.showUsergroupActivitiesChanged = new EventEmitter();
|
|
38
33
|
this.activeTab = PersonalActivityTabEnum.TODO;
|
|
39
34
|
/*public activitySortList: boolean[] = [];*/
|
|
@@ -61,24 +56,38 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
61
56
|
trackByFn(index, vm) {
|
|
62
57
|
return vm.activity.id + '_' + vm.activity.workflow.combinedTriggerIds;
|
|
63
58
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this.
|
|
68
|
-
this.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}*/
|
|
59
|
+
ngOnInit() {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
this.getTheActivities();
|
|
62
|
+
/*this._subs.push(
|
|
63
|
+
this._appEventService.taskCreated.subscribe(() => {
|
|
64
|
+
this.getTheActivities();
|
|
65
|
+
}),
|
|
66
|
+
this._appEventService.taskModified.subscribe(() => {
|
|
67
|
+
this.getTheActivities();
|
|
68
|
+
})
|
|
69
|
+
);*/
|
|
70
|
+
});
|
|
71
|
+
}
|
|
78
72
|
ngOnDestroy() {
|
|
79
|
-
this._subs.forEach(s => s.unsubscribe());
|
|
73
|
+
//this._subs.forEach(s => s.unsubscribe());
|
|
80
74
|
super.ngOnDestroy();
|
|
81
75
|
}
|
|
76
|
+
getActivities() {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
if (this.table && this.key) {
|
|
79
|
+
const allActivities = yield this.sharedService.getComponentActivitiesWithoutRelationFiltering(this.table, this.key);
|
|
80
|
+
if (allActivities) {
|
|
81
|
+
this.activities = this.noFreeTasks ? allActivities.filter(aa => !aa.task && aa.activityType !== ActivityType.WorkflowTask) :
|
|
82
|
+
allActivities.filter(aa => aa.activityType !== ActivityType.WorkflowTask);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.activities = [];
|
|
86
|
+
}
|
|
87
|
+
this.amountActivityChanged.next(this.activities.length);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
82
91
|
set activitiesList(allActivities) {
|
|
83
92
|
this._activitiesList = allActivities;
|
|
84
93
|
if (allActivities) {
|
|
@@ -92,18 +101,6 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
92
101
|
get activitiesList() {
|
|
93
102
|
return this._activitiesList;
|
|
94
103
|
}
|
|
95
|
-
/*public async getActivities(): Promise<void> {
|
|
96
|
-
if (this.table && this.key) {
|
|
97
|
-
const allActivities: Activity[] = await this._activityRepo.getComponentActivities(this.table, this.key);
|
|
98
|
-
if (allActivities) {
|
|
99
|
-
this.activities = this.noFreeTasks ? allActivities.filter(aa => !aa.task && aa.activityType !== ActivityType.WorkflowTask) :
|
|
100
|
-
allActivities.filter(aa => aa.activityType !== ActivityType.WorkflowTask);
|
|
101
|
-
} else {
|
|
102
|
-
this.activities = [];
|
|
103
|
-
}
|
|
104
|
-
this.amountActivityChanged.next(this.activities.length);
|
|
105
|
-
}
|
|
106
|
-
}*/
|
|
107
104
|
getDelegatedActivities() {
|
|
108
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
106
|
// const allActivities: Activity[] = await this._activityRepo.getComponentActivities(this.table, this.key);
|
|
@@ -118,10 +115,12 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
118
115
|
this.showUsergroupActivitiesChanged.next();
|
|
119
116
|
}
|
|
120
117
|
handleTriggerFired(activity) {
|
|
121
|
-
this.
|
|
118
|
+
this.getTheActivities();
|
|
119
|
+
this.refreshRequested.emit();
|
|
122
120
|
}
|
|
123
121
|
handleGenericTriggerFired(activity) {
|
|
124
|
-
this.
|
|
122
|
+
this.getTheActivities();
|
|
123
|
+
this.refreshRequested.emit();
|
|
125
124
|
}
|
|
126
125
|
handleFormCreation() {
|
|
127
126
|
this.formCreated.next();
|
|
@@ -197,15 +196,9 @@ ComponentActivityListComponent.decorators = [
|
|
|
197
196
|
[(expanded)]="activityListViewModel.expanded">
|
|
198
197
|
<ng-container *ngFor="let activityViewModel of activityListViewModel.activities; trackBy: trackByFn; let index = index">
|
|
199
198
|
<co-component-activity-overview *ngIf="activityViewModel.showing"
|
|
200
|
-
[fireGenericTriggerOperation]="fireGenericTriggerOperation"
|
|
201
|
-
[fireTriggerOperation]="fireTriggerOperation"
|
|
202
|
-
[canFireTriggerOperation]="canFireTriggerOperation"
|
|
203
199
|
[viewModel]="activityViewModel"
|
|
204
200
|
[userRelationId]="relationId"
|
|
205
201
|
[userGroupId]="userGroupId"
|
|
206
|
-
[lockTaskOperation]="lockTaskOperation"
|
|
207
|
-
[deleteActivityOperation]="deleteActivityOperation"
|
|
208
|
-
[upsertActivityOperation]="upsertActivityOperation"
|
|
209
202
|
(activityChange)="handleChangedActivity(index, $event)"
|
|
210
203
|
(activityDeleted)="deleteActivity($event)"
|
|
211
204
|
(genericTriggerFired)="handleGenericTriggerFired($event)"
|
|
@@ -223,9 +216,6 @@ ComponentActivityListComponent.decorators = [
|
|
|
223
216
|
[(expanded)]="activityListViewModel.expanded">
|
|
224
217
|
<ng-container *ngFor="let activityViewModel of activityListViewModel.activities; trackBy: trackByFn; let index = index">
|
|
225
218
|
<co-component-activity-overview *ngIf="activityViewModel.showing"
|
|
226
|
-
[fireGenericTriggerOperation]="fireGenericTriggerOperation"
|
|
227
|
-
[fireTriggerOperation]="fireTriggerOperation"
|
|
228
|
-
[canFireTriggerOperation]="canFireTriggerOperation"
|
|
229
219
|
[viewModel]="activityViewModel"
|
|
230
220
|
[userRelationId]="relationId"
|
|
231
221
|
[userGroupId]="userGroupId"
|
|
@@ -256,7 +246,9 @@ ComponentActivityListComponent.decorators = [
|
|
|
256
246
|
]
|
|
257
247
|
},] }
|
|
258
248
|
];
|
|
259
|
-
ComponentActivityListComponent.ctorParameters = () => [
|
|
249
|
+
ComponentActivityListComponent.ctorParameters = () => [
|
|
250
|
+
{ type: SharedService }
|
|
251
|
+
];
|
|
260
252
|
ComponentActivityListComponent.propDecorators = {
|
|
261
253
|
activityOverviewList: [{ type: ViewChildren, args: [PersonalActivityOverviewComponent,] }],
|
|
262
254
|
showClass: [{ type: HostBinding, args: ["class.co-component-activity-list",] }],
|
|
@@ -268,19 +260,12 @@ ComponentActivityListComponent.propDecorators = {
|
|
|
268
260
|
userGroupId: [{ type: Input }],
|
|
269
261
|
relationId: [{ type: Input }],
|
|
270
262
|
componentActivitiesMethod: [{ type: Input }],
|
|
271
|
-
fireGenericTriggerOperation: [{ type: Input }],
|
|
272
|
-
fireTriggerOperation: [{ type: Input }],
|
|
273
|
-
canFireTriggerOperation: [{ type: Input }],
|
|
274
263
|
setHasPausedNotificationsForWorkflowProcessOperation: [{ type: Input }],
|
|
275
|
-
lockTaskOperation: [{ type: Input }],
|
|
276
|
-
deleteActivityOperation: [{ type: Input }],
|
|
277
|
-
upsertActivityOperation: [{ type: Input }],
|
|
278
264
|
openLinkClick: [{ type: Output }],
|
|
279
265
|
amountActivityChanged: [{ type: Output }],
|
|
280
266
|
linkClicked: [{ type: Output }],
|
|
281
267
|
formCreated: [{ type: Output }],
|
|
282
|
-
|
|
283
|
-
triggerFired: [{ type: Output }],
|
|
268
|
+
refreshRequested: [{ type: Output }],
|
|
284
269
|
showUsergroupActivitiesChanged: [{ type: Output }],
|
|
285
270
|
activitiesList: [{ type: Input }]
|
|
286
271
|
};
|
|
@@ -290,4 +275,4 @@ __decorate([
|
|
|
290
275
|
__decorate([
|
|
291
276
|
InputBoolean()
|
|
292
277
|
], ComponentActivityListComponent.prototype, "noFreeTasks", void 0);
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudC1hY3Rpdml0eS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUN0RixPQUFPLEVBRUwsa0NBQWtDLEVBQ25DLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxFQUNMLGlDQUFpQyxFQUNsQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RGLE9BQU8sRUFFTCwrQkFBK0IsRUFDaEMsTUFBTSw2REFBNkQsQ0FBQztBQW9GckUsTUFBTSxPQUFPLDhCQUErQixTQUFRLHlCQUF5QjtJQWdIM0U7UUFFTSxL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LENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQyxDQUFDLENBQUM7d0JBQ3hFLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDakUsQ0FBQztpQkFDTDthQUNKOzs7O21DQU9JLFlBQVksU0FBQyxpQ0FBaUM7d0JBRzlDLFdBQVcsU0FBQyxrQ0FBa0M7b0JBSzlDLEtBQUs7a0JBVUwsS0FBSzt3QkFVTCxLQUFLOzBCQUlMLEtBQUs7MEJBSUwsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7d0NBR0wsS0FBSzswQ0FHTCxLQUFLO21DQUdMLEtBQUs7c0NBR0wsS0FBSzttRUFHTCxLQUFLO2dDQUdMLEtBQUs7c0NBR0wsS0FBSztzQ0FHTCxLQUFLOzRCQUdMLE1BQU07b0NBR04sTUFBTTswQkFHTixNQUFNOzBCQUdOLE1BQU07a0NBR04sTUFBTTsyQkFHTixNQUFNOzZDQUdOLE1BQU07NkJBMkNOLEtBQUs7O0FBcEdOO0lBREMsWUFBWSxFQUFFO2lFQUNtQjtBQUlsQztJQURDLFlBQVksRUFBRTttRUFDcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtCYXNlQWN0aXZpdHlMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2Jhc2Utb3Blbi1hY3Rpdml0eS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtQZXJzb25hbEFjdGl2aXR5VGFiRW51bX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vcGVyc29uYWwtYWN0aXZpdHktdGFiLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVNvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS1zb3J0LXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24sXHJcbiAgT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvblwiO1xyXG5pbXBvcnQge1xyXG4gIFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uLFxyXG4gIE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2tcclxufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1mdW5jdGlvbi13aXRoLXZhbGlkYXRpb25cIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1hY3Rpdml0eS1saXN0LWhlYWRlclxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBQ1RJVklUSUVTJ1wiXHJcbiAgICAgICAgICAgICAgICBbdGFibGVdPVwidGFibGVcIlxyXG4gICAgICAgICAgICAgICAgW2tleV09XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgWyhzaG93VXNlcmdyb3VwQWN0aXZpdGllcyldPVwic2hvd1VzZXJncm91cEFjdGl2aXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgWyhzZWFyY2hUZXh0KV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgICAgICAgICAgIChwZXJpb2RGaWx0ZXJDbGlja2VkKT1cImRvRmlsdGVyQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChzZWFyY2hUZXh0Q2hhbmdlKT1cImFwcGx5RmlsdGVyKClcIlxyXG4gICAgICAgICAgICAgICAgKHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlKT1cInNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW3NldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb25dPVwic2V0SGFzUGF1c2VkTm90aWZpY2F0aW9uc0ZvcldvcmtmbG93UHJvY2Vzc09wZXJhdGlvblwiXHJcbiAgICAgICAgPjwvY28tYWN0aXZpdHktbGlzdC1oZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWxpc3QtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktd3JhcHBlclwiIFtAc2hvd0hpZGVUYWJdPVwiYWN0aXZlVGFiXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGFiLWNvbnRlbnQgbWluaS1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eUxpc3RWaWV3TW9kZWwgb2YgcHJpdmF0ZUFjdGl2aXR5TGlzdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSAqbmdJZj1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5zaG93aW5nXCIgI2NvbGxhcHNlYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwubGFiZWwgKyAnICcgKyBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGV4cGFuZGVkKV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5Vmlld01vZGVsIG9mIGFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzOyB0cmFja0J5OiB0cmFja0J5Rm47IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3ICpuZ0lmPVwiYWN0aXZpdHlWaWV3TW9kZWwuc2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaXJlR2VuZXJpY1RyaWdnZXJPcGVyYXRpb25dPVwiZmlyZUdlbmVyaWNUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpcmVUcmlnZ2VyT3BlcmF0aW9uXT1cImZpcmVUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXT1cImNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NrVGFza09wZXJhdGlvbl09XCJsb2NrVGFza09wZXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVsZXRlQWN0aXZpdHlPcGVyYXRpb25dPVwiZGVsZXRlQWN0aXZpdHlPcGVyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Vwc2VydEFjdGl2aXR5T3BlcmF0aW9uXT1cInVwc2VydEFjdGl2aXR5T3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWNvbGxhcHNpYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGFiLWNvbnRlbnQgbWluaS1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eUxpc3RWaWV3TW9kZWwgb2YgcHJpdmF0ZURlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlICpuZ0lmPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLnNob3dpbmdcIiAjY29sbGFwc2VhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsICsgJyAnICsgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGV4cGFuZGVkKV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5Vmlld01vZGVsIG9mIGFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzOyB0cmFja0J5OiB0cmFja0J5Rm47IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3ICpuZ0lmPVwiYWN0aXZpdHlWaWV3TW9kZWwuc2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyZUdlbmVyaWNUcmlnZ2VyT3BlcmF0aW9uXT1cImZpcmVHZW5lcmljVHJpZ2dlck9wZXJhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyZVRyaWdnZXJPcGVyYXRpb25dPVwiZmlyZVRyaWdnZXJPcGVyYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXT1cImNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlQ29udGVudFwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihgdm9pZCA8PT4gKmAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVUYWJcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcIlRPRE9cIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDApXCJ9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiREVMRUdBVEVEXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCkpXCJ9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oYFRPRE8gPD0+IERFTEVHQVRFRGAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFiczogdHlwZW9mIFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW07XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eUNsYXNzOiB0eXBlb2YgQWN0aXZpdHkgPSBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eVNvcnRUeXBlOiB0eXBlb2YgQWN0aXZpdHlTb3J0VHlwZSA9IEFjdGl2aXR5U29ydFR5cGU7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgYWN0aXZpdHlPdmVydmlld0xpc3Q6IFF1ZXJ5TGlzdDxQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQ+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YWJsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGtleSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBrZXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlVGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9GcmVlVGFza3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbVRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29tcG9uZW50QWN0aXZpdGllc01ldGhvZDogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaXJlR2VuZXJpY1RyaWdnZXJPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbiA9IE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaXJlVHJpZ2dlck9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uID0gT3BlcmF0aW9uV2l0aFZhbGlkYXRpb25DYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNhbkZpcmVUcmlnZ2VyT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbiA9IE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsb2NrVGFza09wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkZWxldGVBY3Rpdml0eU9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1cHNlcnRBY3Rpdml0eU9wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb3BlbkxpbmtDbGljazogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYW1vdW50QWN0aXZpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxpbmtDbGlja2VkOiBFdmVudEVtaXR0ZXI8e21vZHVsZTogc3RyaW5nLCBpZDogc3RyaW5nfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBnZW5lcmljVHJpZ2dlckZpcmVkOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0cmlnZ2VyRmlyZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBhY3RpdmVUYWI6IFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW0uVE9ETztcclxuXHJcbiAgICAvKnB1YmxpYyBhY3Rpdml0eVNvcnRMaXN0OiBib29sZWFuW10gPSBbXTsqL1xyXG5cclxuICAgIHB1YmxpYyBhY3Rpdml0eUxpc3Q6IEFjdGl2aXR5Vmlld01vZGVsW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZtOiBBY3Rpdml0eVZpZXdNb2RlbCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZtLmFjdGl2aXR5LmlkICsgJ18nICsgdm0uYWN0aXZpdHkud29ya2Zsb3cuY29tYmluZWRUcmlnZ2VySWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3RhYmxlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9rZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgICBwcml2YXRlIF9hY3Rpdml0aWVzTGlzdDogQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETyBkbyB3ZSBzdGlsbCBuZWVkIHRoaXM/XHJcbiAgICAvKmFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLnRhc2tDcmVhdGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS50YXNrTW9kaWZpZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLnRyaWdnZXJGaXJlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0qL1xyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2aXRpZXNMaXN0KGFsbEFjdGl2aXRpZXM6IEFjdGl2aXR5W10pIHtcclxuICAgICAgdGhpcy5fYWN0aXZpdGllc0xpc3QgPSBhbGxBY3Rpdml0aWVzO1xyXG4gICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdGllcyA9IHRoaXMubm9GcmVlVGFza3MgPyBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiAhYWEudGFzayAmJiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spIDpcclxuICAgICAgICAgIGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+IGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzayk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2aXRpZXNMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWN0aXZpdGllc0xpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLypwdWJsaWMgYXN5bmMgZ2V0QWN0aXZpdGllcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy50YWJsZSAmJiB0aGlzLmtleSkge1xyXG4gICAgICAgICAgICBjb25zdCBhbGxBY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gYXdhaXQgdGhpcy5fYWN0aXZpdHlSZXBvLmdldENvbXBvbmVudEFjdGl2aXRpZXModGhpcy50YWJsZSwgdGhpcy5rZXkpO1xyXG4gICAgICAgICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5ub0ZyZWVUYXNrcyA/IGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+ICFhYS50YXNrICYmIGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzaykgOlxyXG4gICAgICAgICAgICAgICAgICAgIGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+IGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzayk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgIH0qL1xyXG5cclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuX2FjdGl2aXR5UmVwby5nZXRDb21wb25lbnRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICAvLyB0aGlzLmRlbGVnYXRlZEFjdGl2aXRpZXMgPSBhbGxBY3Rpdml0aWVzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gYWEuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrKSA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qLy9UT0RPIHRoZXJlIHdlcmUgYWxyZWFkeSB1bnVzZWQgYmVmb3JlIHRoZSBtb3ZlLiBDYW4gdGhleSBnbz9cclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGluayhhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9wZW5MaW5rQ2xpY2submV4dChhY3Rpdml0eSk7XHJcbiAgICB9Ki9cclxuXHJcbiAgICBwdWJsaWMgc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZWQubmV4dCgpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVRyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJGaXJlZC5uZXh0KGFjdGl2aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlR2VuZXJpY1RyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdlbmVyaWNUcmlnZ2VyRmlyZWQubmV4dChhY3Rpdml0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUZvcm1DcmVhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlZEFjdGl2aXR5KGlkeDogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdGllc1tpZHhdID0gYWN0aXZpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TGlzdCA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb0ZpbHRlckNsaWNrZWQoZmlsdGVyOiB7IGZyb206IERhdGUsIHRvOiBEYXRlIH0pOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsdGVyLmZyb20gJiYgZmlsdGVyLnRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbSA9IG5ldyBEYXRlKGZpbHRlci5mcm9tKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0TWludXRlcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSBuZXcgRGF0ZShmaWx0ZXIudG8pO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0U2Vjb25kcygwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbkZpcnN0VGFzaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZpdGllcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRhc2tzOiBBY3Rpdml0eVtdID0gdGhpcy5hY3Rpdml0aWVzLmZpbHRlcigodmFsdWUgPT4gdmFsdWUuSXNUYXNrKSk7XHJcbiAgICAgICAgaWYgKHRhc2tzICYmIHRhc2tzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlPdmVydmlld3M6IFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFtdID0gdGhpcy5hY3Rpdml0eU92ZXJ2aWV3TGlzdC50b0FycmF5KCk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpdml0eU92ZXJ2aWV3cyAmJiBhY3Rpdml0eU92ZXJ2aWV3cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gYWN0aXZpdHlPdmVydmlld3MubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5T3ZlcnZpZXdzW2ldLmFjdGl2aXR5LmdldElkKCkgPT09IHRhc2tzWzBdLmdldElkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlPdmVydmlld3NbaV0uc3RhcnRNb2RpZnlpbmdUYXNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudC1hY3Rpdml0eS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUN0RixPQUFPLEVBRUwsa0NBQWtDLEVBQ25DLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxFQUNMLGlDQUFpQyxFQUNsQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RGLE9BQU8sRUFFTCwrQkFBK0IsRUFDaEMsTUFBTSw2REFBNkQsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUE0RTNE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Q29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtCYXNlQWN0aXZpdHlMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2Jhc2Utb3Blbi1hY3Rpdml0eS1saXN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtQZXJzb25hbEFjdGl2aXR5VGFiRW51bX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vcGVyc29uYWwtYWN0aXZpdHktdGFiLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVNvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS1zb3J0LXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrU2ltcGxlRnVuY3Rpb24sXHJcbiAgT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLXNpbXBsZS1mdW5jdGlvblwiO1xyXG5pbXBvcnQge1xyXG4gIFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcvcGVyc29uYWwtYWN0aXZpdHktb3ZlcnZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tGdW5jdGlvbldpdGhWYWxpZGF0aW9uLFxyXG4gIE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2tcclxufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1mdW5jdGlvbi13aXRoLXZhbGlkYXRpb25cIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1jb21wb25lbnQtYWN0aXZpdHktbGlzdFwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tYWN0aXZpdHktbGlzdC1oZWFkZXJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQUNUSVZJVElFUydcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlXT1cInRhYmxlXCJcclxuICAgICAgICAgICAgICAgIFtrZXldPVwia2V5XCJcclxuICAgICAgICAgICAgICAgIFsoc2hvd1VzZXJncm91cEFjdGl2aXRpZXMpXT1cInNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzXCJcclxuICAgICAgICAgICAgICAgIFsoc2VhcmNoVGV4dCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAocGVyaW9kRmlsdGVyQ2xpY2tlZCk9XCJkb0ZpbHRlckNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoc2VhcmNoVGV4dENoYW5nZSk9XCJhcHBseUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgIChzaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZSk9XCJzaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgIFtzZXRIYXNQYXVzZWROb3RpZmljYXRpb25zRm9yV29ya2Zsb3dQcm9jZXNzT3BlcmF0aW9uXT1cInNldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb25cIlxyXG4gICAgICAgID48L2NvLWFjdGl2aXR5LWxpc3QtaGVhZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1saXN0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXdyYXBwZXJcIiBbQHNob3dIaWRlVGFiXT1cImFjdGl2ZVRhYlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXRhYi1jb250ZW50IG1pbmktc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlMaXN0Vmlld01vZGVsIG9mIHByaXZhdGVBY3Rpdml0eUxpc3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tY29sbGFwc2libGUgKm5nSWY9XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuc2hvd2luZ1wiICNjb2xsYXBzZWFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsICsgJyAnICsgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhleHBhbmRlZCldPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eVZpZXdNb2RlbCBvZiBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllczsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldyAqbmdJZj1cImFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlbF09XCJhY3Rpdml0eVZpZXdNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlclJlbGF0aW9uSWRdPVwicmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlckdyb3VwSWRdPVwidXNlckdyb3VwSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImhhbmRsZUNoYW5nZWRBY3Rpdml0eShpbmRleCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlEZWxldGVkKT1cImRlbGV0ZUFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyaWNUcmlnZ2VyRmlyZWQpPVwiaGFuZGxlR2VuZXJpY1RyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmlnZ2VyRmlyZWQpPVwiaGFuZGxlVHJpZ2dlckZpcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtDbGlja2VkKT1cImxpbmtDbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybUNyZWF0ZWQpPVwiaGFuZGxlRm9ybUNyZWF0aW9uKClcIj48L2NvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS10YWItY29udGVudCBtaW5pLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5TGlzdFZpZXdNb2RlbCBvZiBwcml2YXRlRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29sbGFwc2libGUgKm5nSWY9XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuc2hvd2luZ1wiICNjb2xsYXBzZWFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwubGFiZWwgKyAnICcgKyBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZXhwYW5kZWQpXT1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5leHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlWaWV3TW9kZWwgb2YgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFjdGl2aXRpZXM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcgKm5nSWY9XCJhY3Rpdml0eVZpZXdNb2RlbC5zaG93aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlQ29udGVudFwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihgdm9pZCA8PT4gKmAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVUYWJcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcIlRPRE9cIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDApXCJ9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiREVMRUdBVEVEXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCkpXCJ9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oYFRPRE8gPD0+IERFTEVHQVRFRGAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFiczogdHlwZW9mIFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW07XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eUNsYXNzOiB0eXBlb2YgQWN0aXZpdHkgPSBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eVNvcnRUeXBlOiB0eXBlb2YgQWN0aXZpdHlTb3J0VHlwZSA9IEFjdGl2aXR5U29ydFR5cGU7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgYWN0aXZpdHlPdmVydmlld0xpc3Q6IFF1ZXJ5TGlzdDxQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQ+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YWJsZSh2YWx1ZTogVGFibGVOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCk6IFRhYmxlTmFtZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGtleSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBrZXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlVGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9GcmVlVGFza3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbVRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29tcG9uZW50QWN0aXZpdGllc01ldGhvZDogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXRIYXNQYXVzZWROb3RpZmljYXRpb25zRm9yV29ya2Zsb3dQcm9jZXNzT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24gPSBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9wZW5MaW5rQ2xpY2s6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFtb3VudEFjdGl2aXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBsaW5rQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7bW9kdWxlOiBzdHJpbmcsIGlkOiBzdHJpbmd9PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZvcm1DcmVhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVmcmVzaFJlcXVlc3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBhY3RpdmVUYWI6IFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW0uVE9ETztcclxuXHJcbiAgICAvKnB1YmxpYyBhY3Rpdml0eVNvcnRMaXN0OiBib29sZWFuW10gPSBbXTsqL1xyXG5cclxuICAgIHB1YmxpYyBhY3Rpdml0eUxpc3Q6IEFjdGl2aXR5Vmlld01vZGVsW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZtOiBBY3Rpdml0eVZpZXdNb2RlbCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZtLmFjdGl2aXR5LmlkICsgJ18nICsgdm0uYWN0aXZpdHkud29ya2Zsb3cuY29tYmluZWRUcmlnZ2VySWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3RhYmxlOiBUYWJsZU5hbWU7XHJcbiAgICBwcml2YXRlIF9rZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgICBwcml2YXRlIF9hY3Rpdml0aWVzTGlzdDogQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgLyp0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS50YXNrQ3JlYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2UudGFza01vZGlmaWVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApOyovXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy90aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlICYmIHRoaXMua2V5KSB7XHJcbiAgICAgICAgY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRDb21wb25lbnRBY3Rpdml0aWVzV2l0aG91dFJlbGF0aW9uRmlsdGVyaW5nKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5ub0ZyZWVUYXNrcyA/IGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+ICFhYS50YXNrICYmIGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzaykgOlxyXG4gICAgICAgICAgICBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hbW91bnRBY3Rpdml0eUNoYW5nZWQubmV4dCh0aGlzLmFjdGl2aXRpZXMubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2aXRpZXNMaXN0KGFsbEFjdGl2aXRpZXM6IEFjdGl2aXR5W10pIHtcclxuICAgICAgdGhpcy5fYWN0aXZpdGllc0xpc3QgPSBhbGxBY3Rpdml0aWVzO1xyXG4gICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdGllcyA9IHRoaXMubm9GcmVlVGFza3MgPyBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiAhYWEudGFzayAmJiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spIDpcclxuICAgICAgICAgIGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+IGFhLmFjdGl2aXR5VHlwZSAhPT0gQWN0aXZpdHlUeXBlLldvcmtmbG93VGFzayk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2aXRpZXNMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWN0aXZpdGllc0xpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuX2FjdGl2aXR5UmVwby5nZXRDb21wb25lbnRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICAvLyB0aGlzLmRlbGVnYXRlZEFjdGl2aXRpZXMgPSBhbGxBY3Rpdml0aWVzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gYWEuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrKSA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qLy9UT0RPIHRoZXJlIHdlcmUgYWxyZWFkeSB1bnVzZWQgYmVmb3JlIHRoZSBtb3ZlLiBDYW4gdGhleSBnbz9cclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGluayhhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9wZW5MaW5rQ2xpY2submV4dChhY3Rpdml0eSk7XHJcbiAgICB9Ki9cclxuXHJcbiAgICBwdWJsaWMgc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZWQubmV4dCgpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVRyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hSZXF1ZXN0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVHZW5lcmljVHJpZ2dlckZpcmVkKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFJlcXVlc3RlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUZvcm1DcmVhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1DcmVhdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlZEFjdGl2aXR5KGlkeDogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdGllc1tpZHhdID0gYWN0aXZpdHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGVBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5TGlzdCA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb0ZpbHRlckNsaWNrZWQoZmlsdGVyOiB7IGZyb206IERhdGUsIHRvOiBEYXRlIH0pOiB2b2lkIHtcclxuICAgICAgICBpZiAoZmlsdGVyLmZyb20gJiYgZmlsdGVyLnRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbSA9IG5ldyBEYXRlKGZpbHRlci5mcm9tKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0TWludXRlcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSBuZXcgRGF0ZShmaWx0ZXIudG8pO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclRvLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0U2Vjb25kcygwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbkZpcnN0VGFzaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZpdGllcykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRhc2tzOiBBY3Rpdml0eVtdID0gdGhpcy5hY3Rpdml0aWVzLmZpbHRlcigodmFsdWUgPT4gdmFsdWUuSXNUYXNrKSk7XHJcbiAgICAgICAgaWYgKHRhc2tzICYmIHRhc2tzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlPdmVydmlld3M6IFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudFtdID0gdGhpcy5hY3Rpdml0eU92ZXJ2aWV3TGlzdC50b0FycmF5KCk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpdml0eU92ZXJ2aWV3cyAmJiBhY3Rpdml0eU92ZXJ2aWV3cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gYWN0aXZpdHlPdmVydmlld3MubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5T3ZlcnZpZXdzW2ldLmFjdGl2aXR5LmdldElkKCkgPT09IHRhc2tzWzBdLmdldElkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlPdmVydmlld3NbaV0uc3RhcnRNb2RpZnlpbmdUYXNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js
CHANGED
|
@@ -14,6 +14,7 @@ export class BaseActivityListComponent {
|
|
|
14
14
|
this.privateDelegatedActivityListViewModels = [];
|
|
15
15
|
this.filteredActivityListViewModels = [];
|
|
16
16
|
this.filteredDelegatedActivityListViewModels = [];
|
|
17
|
+
this._showUsergroupActivities = false;
|
|
17
18
|
this._activities = [];
|
|
18
19
|
this._delegatedActivities = [];
|
|
19
20
|
//protected userService: UserService
|
|
@@ -42,9 +43,10 @@ export class BaseActivityListComponent {
|
|
|
42
43
|
}
|
|
43
44
|
// TODO: return this.userService.showUsergroupActivities and allow to set properly;
|
|
44
45
|
get showUsergroupActivities() {
|
|
45
|
-
return
|
|
46
|
+
return this._showUsergroupActivities;
|
|
46
47
|
}
|
|
47
48
|
set showUsergroupActivities(value) {
|
|
49
|
+
this._showUsergroupActivities = value;
|
|
48
50
|
}
|
|
49
51
|
ngOnDestroy() {
|
|
50
52
|
clearInterval(this._updateInterval);
|
|
@@ -64,7 +66,7 @@ export class BaseActivityListComponent {
|
|
|
64
66
|
afterFilterApplied() {
|
|
65
67
|
}
|
|
66
68
|
getTheActivities() {
|
|
67
|
-
|
|
69
|
+
this.getActivities();
|
|
68
70
|
this.getDelegatedActivities();
|
|
69
71
|
}
|
|
70
72
|
_removeNotShowing(listViewModels) {
|
|
@@ -261,4 +263,4 @@ BaseActivityListComponent.propDecorators = {
|
|
|
261
263
|
__decorate([
|
|
262
264
|
InputBoolean()
|
|
263
265
|
], BaseActivityListComponent.prototype, "handleOpenLinkSidebar", void 0);
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudHMvYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFJeEUsTUFBTSxPQUFnQix5QkFBeUI7SUE2RDNDO1FBM0RVLGdCQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsMkJBQTJCO1FBSTNELDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQW9DOUMsWUFBWTtRQUNMLGtDQUE2QixHQUE0QixFQUFFLENBQUM7UUFDNUQsMkNBQXNDLEdBQTRCLEVBQUUsQ0FBQztRQUNyRSxtQ0FBOEIsR0FBNEIsRUFBRSxDQUFDO1FBQzdELDRDQUF1QyxHQUE0QixFQUFFLENBQUM7UUFXckUsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQWUsRUFBRSxDQUFDO1FBSTVDLG9DQUFvQztJQUN0QyxDQUFDO0lBdkRELElBQVcsVUFBVSxDQUFDLEtBQWlCO1FBQ25DLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFD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WixTQUFTLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzlCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLHlCQUF5QixDQUFDLDhCQUF1RCxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ25ILElBQUksTUFBTSxHQUEwQiw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakQsOEJBQThCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxpQkFBb0MsRUFBRSxRQUFrQjtRQUNwRixpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RDLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQzs7O1lBL1JKLFNBQVM7WUFDVCxVQUFVOzs7O29DQUtOLEtBQUs7O0FBRU47SUFEQyxZQUFZLEVBQUU7d0VBQytCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtBY3Rpdml0eUxpc3RWaWV3TW9kZWx9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS1saXN0LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlbG9hZFRpbWVyOiBudW1iZXIgPSA2MDAwMDsgLy8gMSBtaW51dGUgaW4gbWlsbGlzZWNvbmRzXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzZXQgYWN0aXZpdGllcyh2YWx1ZTogQWN0aXZpdHlbXSkge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVJbnRlcnZhbCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZpdGllcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzID0gdGhpcy5fYWN0aXZpdGllcy5zbGljZSgpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB0aGlzLl9zdGFydEludGVydmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3Rpdml0aWVzKCk6IEFjdGl2aXR5W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpdml0aWVzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgZGVsZWdhdGVkQWN0aXZpdGllcyh2YWx1ZTogQWN0aXZpdHlbXSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlZEFjdGl2aXRpZXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXRpZXMgPSB0aGlzLl9kZWxlZ2F0ZWRBY3Rpdml0aWVzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRJbnRlcnZhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRlbGVnYXRlZEFjdGl2aXRpZXMoKTogQWN0aXZpdHlbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlZEFjdGl2aXRpZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZpbHRlckZyb206IERhdGU7XHJcbiAgICBwdWJsaWMgZmlsdGVyVG86IERhdGU7XHJcbiAgICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8vZmlsdGVyZWQgbGlzdHNcclxuICAgIHB1YmxpYyBmaWx0ZXJlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W107XHJcbiAgICBwdWJsaWMgZmlsdGVyZWREZWxlZ2F0ZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdO1xyXG5cclxuICAgIC8vdmlld21vZGVsc1xyXG4gICAgcHVibGljIHByaXZhdGVBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIHByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsczogQWN0aXZpdHlMaXN0Vmlld01vZGVsW10gPSBbXTtcclxuICAgIHB1YmxpYyBmaWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdID0gW107XHJcblxyXG4gICAvLyBUT0RPOiByZXR1cm4gdGhpcy51c2VyU2VydmljZS5zaG93VXNlcmdyb3VwQWN0aXZpdGllcyBhbmQgYWxsb3cgdG8gc2V0IHByb3Blcmx5O1xyXG4gICBwdWJsaWMgZ2V0IHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzKHZhbHVlOiBib29sZWFuKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FjdGl2aXRpZXM6IEFjdGl2aXR5W10gPSBbXTtcclxuICAgIHByaXZhdGUgX2RlbGVnYXRlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W10gPSBbXTtcclxuICAgIHByaXZhdGUgX3VwZGF0ZUludGVydmFsOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIC8vcHJvdGVjdGVkIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fdXBkYXRlSW50ZXJ2YWwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vcHVibGljIGFic3RyYWN0IGdldEFjdGl2aXRpZXMoKTtcclxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXREZWxlZ2F0ZWRBY3Rpdml0aWVzKCk7XHJcblxyXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICB0aGlzLl9hY3Rpdml0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy5fZGVsZWdhdGVkQWN0aXZpdGllcyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhcHBseUZpbHRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9hcHBseUZpbHRlcih0aGlzLmFjdGl2aXRpZXMsIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzLCB0aGlzLmZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXIodGhpcy5kZWxlZ2F0ZWRBY3Rpdml0aWVzLCB0aGlzLmZpbHRlcmVkRGVsZWdhdGVkQWN0aXZpdGllcywgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2hBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5hZnRlckZpbHRlckFwcGxpZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYWZ0ZXJGaWx0ZXJBcHBsaWVkKCk6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0VGhlQWN0aXZpdGllcygpOiB2b2lkIHtcclxuICAgICAgICAvL3RoaXMuZ2V0QWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMuZ2V0RGVsZWdhdGVkQWN0aXZpdGllcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlbW92ZU5vdFNob3dpbmcobGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IGxpc3RWaWV3TW9kZWxzLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gbGlzdFZpZXdNb2RlbHNbaV07XHJcbiAgICAgICAgICAgIGlmICghbGlzdFZpZXdNb2RlbC5zaG93aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0Vmlld01vZGVscy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIGl0ZXJhdGUgdGhyb3VnaCBhY3Rpdml0eVZpZXdNb2RlbHNcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMubGVuZ3RoIC0gMTsgaiA+IDA7IGotLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCA9IGxpc3RWaWV3TW9kZWwuYWN0aXZpdGllc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByaXZhdGVMaXN0c1dpdGhGaWx0ZXJlZExpc3RzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZUFjdGl2aXR5TGlzdFZpZXdNb2RlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQcml2YXRlTGlzdFdpdGhGaWx0ZXJlZExpc3QodGhpcy5wcml2YXRlQWN0aXZpdHlMaXN0Vmlld01vZGVscywgdGhpcy5maWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZURlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQcml2YXRlTGlzdFdpdGhGaWx0ZXJlZExpc3QodGhpcy5wcml2YXRlRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVscywgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FwcGx5RmlsdGVyKGFjdGl2aXRpZXM6IEFjdGl2aXR5W10sIGZpbHRlcmVkQWN0aXZpdGllczogQWN0aXZpdHlbXSwgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc05pbGwoYWN0aXZpdGllcykpIHtcclxuICAgICAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzID0gYWN0aXZpdGllcy5zbGljZSgwKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyRnJvbSAmJiB0aGlzLmZpbHRlclRvKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdGllcyA9XHJcbiAgICAgICAgICAgICAgICBhY3Rpdml0aWVzLmZpbHRlcigoYTogQWN0aXZpdHkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5leGVjdXRpb25EYXRlVGltZSA9PT0gbnVsbCB8fCBhLm92ZXJEdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVVdGlscy5Jc0luQmV0d2VlbihhLmV4ZWN1dGlvbkRhdGVUaW1lLCB0aGlzLmZpbHRlckZyb20sIHRoaXMuZmlsdGVyVG8sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzLnNvcnQoKGE6IEFjdGl2aXR5LCBiOiBBY3Rpdml0eSkgPT4gYS5kZWFkbGluZURhdGVUaW1lID4gYi5kZWFkbGluZURhdGVUaW1lID8gMSA6IC0xKTtcclxuICAgICAgICB0aGlzLl9zZWFyY2hUZXh0KGZpbHRlcmVkQWN0aXZpdGllcyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZpZXdNb2RlbHMoZmlsdGVyZWRBY3Rpdml0aWVzLCBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NlYXJjaFRleHQoZmlsdGVyZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gZmlsdGVyZWRBY3Rpdml0aWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IGZpbHRlcmVkQWN0aXZpdGllc1tpXTtcclxuICAgICAgICAgICAgbGV0IGZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBhY3Rpdml0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5Lmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdHlba2V5XS50b1N0cmluZygpLmluZGV4T2YodGhpcy5zZWFyY2hUZXh0KSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghZm91bmQpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdGllcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlUHJpdmF0ZUxpc3RXaXRoRmlsdGVyZWRMaXN0KFxyXG4gICAgICAgIGxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSxcclxuICAgICAgICBmaWx0ZXJlZExpc3Q6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdXHJcbiAgICApOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogQWN0aXZpdHlMaXN0Vmlld01vZGVsW107XHJcbiAgICAgICAgaWYgKGxpc3RWaWV3TW9kZWxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBmaWx0ZXJlZExpc3Quc2xpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBsaXN0Vmlld01vZGVscy5zbGljZSgpO1xyXG4gICAgICAgICAgICAvLyBzZXQgc2hvd2luZyB0byBmYWxzZSBmb3IgaXRlbXMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbGlzdCBhbnltb3JlXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0Vmlld01vZGVsOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWwgPSByZXN1bHRbaV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gZmlsdGVyZWRMaXN0LmZpbmQoZiA9PiBmLnBvc2l0aW9uID09PSBsaXN0Vmlld01vZGVsLnBvc2l0aW9uKTtcclxuICAgICAgICAgICAgICAgIGlmICghZmlsdGVyZWRWaWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmbGFnIGFzIHJlbW92ZWQgd2hlbiBsaXN0dmlld21vZGVsIGlzIG5vIGxvbmdlciBpbiB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgIGxpc3RWaWV3TW9kZWwuc2hvd2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RWaWV3TW9kZWwuYWN0aXZpdGllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3TW9kZWw6IEFjdGl2aXR5Vmlld01vZGVsID0gbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcmVkVmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChmYSA9PiBmYS5ndWlkID09PSB2aWV3TW9kZWwuZ3VpZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZsYWcgYXMgcmVtb3ZlZCB3aGVuIHZpZXdtb2RlbCBpcyBubyBsb25nZXIgaW4gdGhlIGxpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlbC5zaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gYWRkIG5ldyBpdGVtc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmVkTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IGZpbHRlcmVkTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IHJlc3VsdC5maW5kKGx2bSA9PiBsdm0ubGFiZWwgPT09IGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsKTtcclxuICAgICAgICAgICAgICAgIGlmICghbGlzdFZpZXdNb2RlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQWN0aXZpdHlWaWV3TW9kZWw6IEFjdGl2aXR5Vmlld01vZGVsID0gZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChhID0+IGEuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gZmlsdGVyZWRBY3Rpdml0eVZpZXdNb2RlbC5hY3Rpdml0eS5nZXRJZCgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnB1c2goZmlsdGVyZWRBY3Rpdml0eVZpZXdNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0LnNvcnQodGhpcy5fc29ydEJ5UG9zaXRpb24pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaEFjdGl2aXRpZXMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZmlyc3QgcmVtb3ZlIGl0ZW1zIHdoaWNoIGFyZSBzZXQgaW52aXNpYmxlIGJlZm9yZVxyXG4gICAgICAgIHRoaXMuX3JlbW92ZU5vdFNob3dpbmcodGhpcy5wcml2YXRlQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlTm90U2hvd2luZyh0aGlzLnByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzKTtcclxuICAgICAgICAvLyB1cGRhdGUgcHJpdmF0ZSBsaXN0IHdpdGggKG5ldykgZmlsdGVyZWQgbGlzdFxyXG4gICAgICAgIHRoaXMudXBkYXRlUHJpdmF0ZUxpc3RzV2l0aEZpbHRlcmVkTGlzdHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlVmlld01vZGVscyhmaWx0ZXJlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W10sIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsczogQWN0aXZpdHlMaXN0Vmlld01vZGVsW10pOiB2b2lkIHtcclxuICAgICAgICBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMubWFwKGFsbSA9PiB7XHJcbiAgICAgICAgICAgIGFsbS5zaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGFsbS5hY3Rpdml0aWVzLm1hcChhYSA9PiBhYS5zaG93aW5nID0gZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChmaWx0ZXJlZEFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEFjdGl2aXRpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IGZpbHRlcmVkQWN0aXZpdGllc1tpXTtcclxuICAgICAgICAgICAgICAgIGlmICghYWN0aXZpdHkub3ZlckR1ZSAmJiBEYXRlVXRpbHMuSXNUb2RheShhY3Rpdml0eS5kZWFkbGluZURhdGVUaW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZFRvQWN0aXZpdHlMaXN0Vmlld01vZGVsKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscywgJ1RPREFZJywgMSwgYWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpdml0eS5vdmVyRHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkVG9BY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLCAnVE9PX0xBVEUnLCAyLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGl2aXR5LmRlYWRsaW5lRGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRUb0FjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMsICdORVhUMicsIDMsIGFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkVG9BY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLCAnVU5TQ0hFRFVMRUQnLCA0LCBhY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLnNvcnQodGhpcy5fc29ydEJ5UG9zaXRpb24pO1xyXG4gICAgICAgIHRoaXMuX3NldEFtb3VudExpc3RWaWV3TW9kZWxzKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0QW1vdW50TGlzdFZpZXdNb2RlbHMoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsc1tpXS5zZXRBbW91bnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc29ydEJ5UG9zaXRpb24oYTogQWN0aXZpdHlMaXN0Vmlld01vZGVsLCBiOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWwpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBhLnBvc2l0aW9uID4gYi5wb3NpdGlvbiA/IDEgOiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hZGRUb0FjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdLCBsYWJlbDogc3RyaW5nLCBvcmRlcjogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhY3Rpdml0eUxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IHRoaXMuX2dldEFjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMsIGxhYmVsLCBvcmRlcik7XHJcbiAgICAgICAgYWN0aXZpdHlMaXN0Vmlld01vZGVsLnNob3dpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCA9IHRoaXMuX2dldEFjdGl2aXR5Vmlld01vZGVsKGFjdGl2aXR5TGlzdFZpZXdNb2RlbCwgYWN0aXZpdHkpO1xyXG4gICAgICAgIGFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmcgPSAhYWN0aXZpdHlWaWV3TW9kZWwuZGVsZXRlZDtcclxuICAgICAgICB0aGlzLl91cGRhdGVWaWV3TW9kZWxDb250ZW50KGFjdGl2aXR5Vmlld01vZGVsLCBhY3Rpdml0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0QWN0aXZpdHlWaWV3TW9kZWwobGlzdFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsLCBhY3Rpdml0eTogQWN0aXZpdHkpOiBBY3Rpdml0eVZpZXdNb2RlbCB7XHJcbiAgICAgICAgbGV0IHZpZXdNb2RlbDogQWN0aXZpdHlWaWV3TW9kZWwgPSBsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChhID0+IGEuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0SWQoKSk7XHJcbiAgICAgICAgaWYgKCF2aWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgdmlld01vZGVsID0gbmV3IEFjdGl2aXR5Vmlld01vZGVsKCk7XHJcbiAgICAgICAgICAgIHZpZXdNb2RlbC5hY3Rpdml0eSA9IGFjdGl2aXR5O1xyXG4gICAgICAgICAgICB2aWV3TW9kZWwucGFyZW50ID0gbGlzdFZpZXdNb2RlbDtcclxuICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnB1c2godmlld01vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZpZXdNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRBY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSwgbGFiZWw6IHN0cmluZywgb3JkZXI6IG51bWJlcik6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLmZpbmQoYSA9PiBhLmxhYmVsID09PSBsYWJlbCk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEFjdGl2aXR5TGlzdFZpZXdNb2RlbChsYWJlbCwgb3JkZXIpO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0YXJ0SW50ZXJ2YWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICB9LCB0aGlzLnJlbG9hZFRpbWVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVWaWV3TW9kZWxDb250ZW50KGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCwgYWN0aXZpdHk6IEFjdGl2aXR5KTogQWN0aXZpdHlWaWV3TW9kZWwge1xyXG4gICAgICAgIGFjdGl2aXR5Vmlld01vZGVsLmFjdGl2aXR5ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgcmV0dXJuIGFjdGl2aXR5Vmlld01vZGVsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudHMvYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFJeEUsTUFBTSxPQUFnQix5QkFBeUI7SUErRDNDO1FBN0RVLGdCQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsMkJBQTJCO1FBSTNELDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQW9DOUMsWUFBWTtRQUNMLGtDQUE2QixHQUE0QixFQUFFLENBQUM7UUFDNUQsMkNBQXNDLEdBQTRCLEVBQUUsQ0FBQztRQUNyRSxtQ0FBOEIsR0FBNEIsRUFBRSxDQUFDO1FBQzdELDRDQUF1QyxHQUE0QixFQUFFLENBQUM7UUFFckUsNkJBQXdCLEdBQVksS0FBSyxDQUFBO1FBV3pDLGdCQUFXLEdBQWUsRUFBRSxDQUFDO1FBQzdCLHlCQUFvQixHQUFlLEVBQUUsQ0FBQztRQUk1QyxvQ0FBb0M7SUFDdEMsQ0FBQztJQXpERCxJQUFXLFVBQVUsQ0FBQyxLQUFpQjtRQUNuQyxZQUFZLENBQUMs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QyxZQUFZLEVBQUU7d0VBQytCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtBY3Rpdml0eUxpc3RWaWV3TW9kZWx9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS1saXN0LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtBY3Rpdml0eVZpZXdNb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LXZpZXctbW9kZWxcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlbG9hZFRpbWVyOiBudW1iZXIgPSA2MDAwMDsgLy8gMSBtaW51dGUgaW4gbWlsbGlzZWNvbmRzXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzZXQgYWN0aXZpdGllcyh2YWx1ZTogQWN0aXZpdHlbXSkge1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVJbnRlcnZhbCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZpdGllcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRBY3Rpdml0aWVzID0gdGhpcy5fYWN0aXZpdGllcy5zbGljZSgpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB0aGlzLl9zdGFydEludGVydmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBhY3Rpdml0aWVzKCk6IEFjdGl2aXR5W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpdml0aWVzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgZGVsZWdhdGVkQWN0aXZpdGllcyh2YWx1ZTogQWN0aXZpdHlbXSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVJbnRlcnZhbCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlZEFjdGl2aXRpZXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXRpZXMgPSB0aGlzLl9kZWxlZ2F0ZWRBY3Rpdml0aWVzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRJbnRlcnZhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRlbGVnYXRlZEFjdGl2aXRpZXMoKTogQWN0aXZpdHlbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlZEFjdGl2aXRpZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZpbHRlckZyb206IERhdGU7XHJcbiAgICBwdWJsaWMgZmlsdGVyVG86IERhdGU7XHJcbiAgICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8vZmlsdGVyZWQgbGlzdHNcclxuICAgIHB1YmxpYyBmaWx0ZXJlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W107XHJcbiAgICBwdWJsaWMgZmlsdGVyZWREZWxlZ2F0ZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdO1xyXG5cclxuICAgIC8vdmlld21vZGVsc1xyXG4gICAgcHVibGljIHByaXZhdGVBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIHByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsczogQWN0aXZpdHlMaXN0Vmlld01vZGVsW10gPSBbXTtcclxuICAgIHB1YmxpYyBmaWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd1VzZXJncm91cEFjdGl2aXRpZXM6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICAgLy8gVE9ETzogcmV0dXJuIHRoaXMudXNlclNlcnZpY2Uuc2hvd1VzZXJncm91cEFjdGl2aXRpZXMgYW5kIGFsbG93IHRvIHNldCBwcm9wZXJseTtcclxuICAgcHVibGljIGdldCBzaG93VXNlcmdyb3VwQWN0aXZpdGllcygpOiBib29sZWFuIHtcclxuICAgICByZXR1cm4gdGhpcy5fc2hvd1VzZXJncm91cEFjdGl2aXRpZXNcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgIHRoaXMuX3Nob3dVc2VyZ3JvdXBBY3Rpdml0aWVzID0gdmFsdWVcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gW107XHJcbiAgICBwcml2YXRlIF9kZWxlZ2F0ZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gW107XHJcbiAgICBwcml2YXRlIF91cGRhdGVJbnRlcnZhbDogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAvL3Byb3RlY3RlZCB1c2VyU2VydmljZTogVXNlclNlcnZpY2VcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuX3VwZGF0ZUludGVydmFsKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWN0aXZpdGllcygpO1xyXG4gICAgcHVibGljIGFic3RyYWN0IGdldERlbGVnYXRlZEFjdGl2aXRpZXMoKTtcclxuXHJcbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGVsZWdhdGVkQWN0aXZpdGllcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2FjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgICB0aGlzLl9kZWxlZ2F0ZWRBY3Rpdml0aWVzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFwcGx5RmlsdGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2FwcGx5RmlsdGVyKHRoaXMuYWN0aXZpdGllcywgdGhpcy5maWx0ZXJlZEFjdGl2aXRpZXMsIHRoaXMuZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzKTtcclxuICAgICAgICB0aGlzLl9hcHBseUZpbHRlcih0aGlzLmRlbGVnYXRlZEFjdGl2aXRpZXMsIHRoaXMuZmlsdGVyZWREZWxlZ2F0ZWRBY3Rpdml0aWVzLCB0aGlzLmZpbHRlcmVkRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICAgICAgdGhpcy5fcmVmcmVzaEFjdGl2aXRpZXMoKTtcclxuICAgICAgICB0aGlzLmFmdGVyRmlsdGVyQXBwbGllZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhZnRlckZpbHRlckFwcGxpZWQoKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRUaGVBY3Rpdml0aWVzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMuZ2V0RGVsZWdhdGVkQWN0aXZpdGllcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlbW92ZU5vdFNob3dpbmcobGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IGxpc3RWaWV3TW9kZWxzLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gbGlzdFZpZXdNb2RlbHNbaV07XHJcbiAgICAgICAgICAgIGlmICghbGlzdFZpZXdNb2RlbC5zaG93aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0Vmlld01vZGVscy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIGl0ZXJhdGUgdGhyb3VnaCBhY3Rpdml0eVZpZXdNb2RlbHNcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMubGVuZ3RoIC0gMTsgaiA+IDA7IGotLSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCA9IGxpc3RWaWV3TW9kZWwuYWN0aXZpdGllc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByaXZhdGVMaXN0c1dpdGhGaWx0ZXJlZExpc3RzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZUFjdGl2aXR5TGlzdFZpZXdNb2RlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQcml2YXRlTGlzdFdpdGhGaWx0ZXJlZExpc3QodGhpcy5wcml2YXRlQWN0aXZpdHlMaXN0Vmlld01vZGVscywgdGhpcy5maWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZURlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMgPVxyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVQcml2YXRlTGlzdFdpdGhGaWx0ZXJlZExpc3QodGhpcy5wcml2YXRlRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVscywgdGhpcy5maWx0ZXJlZERlbGVnYXRlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FwcGx5RmlsdGVyKGFjdGl2aXRpZXM6IEFjdGl2aXR5W10sIGZpbHRlcmVkQWN0aXZpdGllczogQWN0aXZpdHlbXSwgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc05pbGwoYWN0aXZpdGllcykpIHtcclxuICAgICAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzID0gYWN0aXZpdGllcy5zbGljZSgwKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyRnJvbSAmJiB0aGlzLmZpbHRlclRvKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdGllcyA9XHJcbiAgICAgICAgICAgICAgICBhY3Rpdml0aWVzLmZpbHRlcigoYTogQWN0aXZpdHkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5leGVjdXRpb25EYXRlVGltZSA9PT0gbnVsbCB8fCBhLm92ZXJEdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVVdGlscy5Jc0luQmV0d2VlbihhLmV4ZWN1dGlvbkRhdGVUaW1lLCB0aGlzLmZpbHRlckZyb20sIHRoaXMuZmlsdGVyVG8sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0aWVzLnNvcnQoKGE6IEFjdGl2aXR5LCBiOiBBY3Rpdml0eSkgPT4gYS5kZWFkbGluZURhdGVUaW1lID4gYi5kZWFkbGluZURhdGVUaW1lID8gMSA6IC0xKTtcclxuICAgICAgICB0aGlzLl9zZWFyY2hUZXh0KGZpbHRlcmVkQWN0aXZpdGllcyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZpZXdNb2RlbHMoZmlsdGVyZWRBY3Rpdml0aWVzLCBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NlYXJjaFRleHQoZmlsdGVyZWRBY3Rpdml0aWVzOiBBY3Rpdml0eVtdKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gZmlsdGVyZWRBY3Rpdml0aWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IGZpbHRlcmVkQWN0aXZpdGllc1tpXTtcclxuICAgICAgICAgICAgbGV0IGZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBhY3Rpdml0eSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5Lmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdHlba2V5XS50b1N0cmluZygpLmluZGV4T2YodGhpcy5zZWFyY2hUZXh0KSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghZm91bmQpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdGllcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlUHJpdmF0ZUxpc3RXaXRoRmlsdGVyZWRMaXN0KFxyXG4gICAgICAgIGxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSxcclxuICAgICAgICBmaWx0ZXJlZExpc3Q6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdXHJcbiAgICApOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogQWN0aXZpdHlMaXN0Vmlld01vZGVsW107XHJcbiAgICAgICAgaWYgKGxpc3RWaWV3TW9kZWxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBmaWx0ZXJlZExpc3Quc2xpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBsaXN0Vmlld01vZGVscy5zbGljZSgpO1xyXG4gICAgICAgICAgICAvLyBzZXQgc2hvd2luZyB0byBmYWxzZSBmb3IgaXRlbXMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbGlzdCBhbnltb3JlXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0Vmlld01vZGVsOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWwgPSByZXN1bHRbaV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gZmlsdGVyZWRMaXN0LmZpbmQoZiA9PiBmLnBvc2l0aW9uID09PSBsaXN0Vmlld01vZGVsLnBvc2l0aW9uKTtcclxuICAgICAgICAgICAgICAgIGlmICghZmlsdGVyZWRWaWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmbGFnIGFzIHJlbW92ZWQgd2hlbiBsaXN0dmlld21vZGVsIGlzIG5vIGxvbmdlciBpbiB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgICAgIGxpc3RWaWV3TW9kZWwuc2hvd2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RWaWV3TW9kZWwuYWN0aXZpdGllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3TW9kZWw6IEFjdGl2aXR5Vmlld01vZGVsID0gbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcmVkVmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChmYSA9PiBmYS5ndWlkID09PSB2aWV3TW9kZWwuZ3VpZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZsYWcgYXMgcmVtb3ZlZCB3aGVuIHZpZXdtb2RlbCBpcyBubyBsb25nZXIgaW4gdGhlIGxpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlbC5zaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gYWRkIG5ldyBpdGVtc1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmVkTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IGZpbHRlcmVkTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IHJlc3VsdC5maW5kKGx2bSA9PiBsdm0ubGFiZWwgPT09IGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsKTtcclxuICAgICAgICAgICAgICAgIGlmICghbGlzdFZpZXdNb2RlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQWN0aXZpdHlWaWV3TW9kZWw6IEFjdGl2aXR5Vmlld01vZGVsID0gZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChhID0+IGEuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gZmlsdGVyZWRBY3Rpdml0eVZpZXdNb2RlbC5hY3Rpdml0eS5nZXRJZCgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnB1c2goZmlsdGVyZWRBY3Rpdml0eVZpZXdNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0LnNvcnQodGhpcy5fc29ydEJ5UG9zaXRpb24pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaEFjdGl2aXRpZXMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gZmlyc3QgcmVtb3ZlIGl0ZW1zIHdoaWNoIGFyZSBzZXQgaW52aXNpYmxlIGJlZm9yZVxyXG4gICAgICAgIHRoaXMuX3JlbW92ZU5vdFNob3dpbmcodGhpcy5wcml2YXRlQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlTm90U2hvd2luZyh0aGlzLnByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzKTtcclxuICAgICAgICAvLyB1cGRhdGUgcHJpdmF0ZSBsaXN0IHdpdGggKG5ldykgZmlsdGVyZWQgbGlzdFxyXG4gICAgICAgIHRoaXMudXBkYXRlUHJpdmF0ZUxpc3RzV2l0aEZpbHRlcmVkTGlzdHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlVmlld01vZGVscyhmaWx0ZXJlZEFjdGl2aXRpZXM6IEFjdGl2aXR5W10sIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsczogQWN0aXZpdHlMaXN0Vmlld01vZGVsW10pOiB2b2lkIHtcclxuICAgICAgICBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMubWFwKGFsbSA9PiB7XHJcbiAgICAgICAgICAgIGFsbS5zaG93aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGFsbS5hY3Rpdml0aWVzLm1hcChhYSA9PiBhYS5zaG93aW5nID0gZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChmaWx0ZXJlZEFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEFjdGl2aXRpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IGZpbHRlcmVkQWN0aXZpdGllc1tpXTtcclxuICAgICAgICAgICAgICAgIGlmICghYWN0aXZpdHkub3ZlckR1ZSAmJiBEYXRlVXRpbHMuSXNUb2RheShhY3Rpdml0eS5kZWFkbGluZURhdGVUaW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZFRvQWN0aXZpdHlMaXN0Vmlld01vZGVsKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscywgJ1RPREFZJywgMSwgYWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpdml0eS5vdmVyRHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkVG9BY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLCAnVE9PX0xBVEUnLCAyLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGl2aXR5LmRlYWRsaW5lRGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRUb0FjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMsICdORVhUMicsIDMsIGFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkVG9BY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLCAnVU5TQ0hFRFVMRUQnLCA0LCBhY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLnNvcnQodGhpcy5fc29ydEJ5UG9zaXRpb24pO1xyXG4gICAgICAgIHRoaXMuX3NldEFtb3VudExpc3RWaWV3TW9kZWxzKGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0QW1vdW50TGlzdFZpZXdNb2RlbHMoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkQWN0aXZpdHlMaXN0Vmlld01vZGVsc1tpXS5zZXRBbW91bnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc29ydEJ5UG9zaXRpb24oYTogQWN0aXZpdHlMaXN0Vmlld01vZGVsLCBiOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWwpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBhLnBvc2l0aW9uID4gYi5wb3NpdGlvbiA/IDEgOiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hZGRUb0FjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHM6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbFtdLCBsYWJlbDogc3RyaW5nLCBvcmRlcjogbnVtYmVyLCBhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhY3Rpdml0eUxpc3RWaWV3TW9kZWw6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCA9IHRoaXMuX2dldEFjdGl2aXR5TGlzdFZpZXdNb2RlbChmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMsIGxhYmVsLCBvcmRlcik7XHJcbiAgICAgICAgYWN0aXZpdHlMaXN0Vmlld01vZGVsLnNob3dpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCA9IHRoaXMuX2dldEFjdGl2aXR5Vmlld01vZGVsKGFjdGl2aXR5TGlzdFZpZXdNb2RlbCwgYWN0aXZpdHkpO1xyXG4gICAgICAgIGFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmcgPSAhYWN0aXZpdHlWaWV3TW9kZWwuZGVsZXRlZDtcclxuICAgICAgICB0aGlzLl91cGRhdGVWaWV3TW9kZWxDb250ZW50KGFjdGl2aXR5Vmlld01vZGVsLCBhY3Rpdml0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0QWN0aXZpdHlWaWV3TW9kZWwobGlzdFZpZXdNb2RlbDogQWN0aXZpdHlMaXN0Vmlld01vZGVsLCBhY3Rpdml0eTogQWN0aXZpdHkpOiBBY3Rpdml0eVZpZXdNb2RlbCB7XHJcbiAgICAgICAgbGV0IHZpZXdNb2RlbDogQWN0aXZpdHlWaWV3TW9kZWwgPSBsaXN0Vmlld01vZGVsLmFjdGl2aXRpZXMuZmluZChhID0+IGEuYWN0aXZpdHkuZ2V0SWQoKSA9PT0gYWN0aXZpdHkuZ2V0SWQoKSk7XHJcbiAgICAgICAgaWYgKCF2aWV3TW9kZWwpIHtcclxuICAgICAgICAgICAgdmlld01vZGVsID0gbmV3IEFjdGl2aXR5Vmlld01vZGVsKCk7XHJcbiAgICAgICAgICAgIHZpZXdNb2RlbC5hY3Rpdml0eSA9IGFjdGl2aXR5O1xyXG4gICAgICAgICAgICB2aWV3TW9kZWwucGFyZW50ID0gbGlzdFZpZXdNb2RlbDtcclxuICAgICAgICAgICAgbGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzLnB1c2godmlld01vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZpZXdNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRBY3Rpdml0eUxpc3RWaWV3TW9kZWwoZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzOiBBY3Rpdml0eUxpc3RWaWV3TW9kZWxbXSwgbGFiZWw6IHN0cmluZywgb3JkZXI6IG51bWJlcik6IEFjdGl2aXR5TGlzdFZpZXdNb2RlbCB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogQWN0aXZpdHlMaXN0Vmlld01vZGVsID0gZmlsdGVyZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzLmZpbmQoYSA9PiBhLmxhYmVsID09PSBsYWJlbCk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IEFjdGl2aXR5TGlzdFZpZXdNb2RlbChsYWJlbCwgb3JkZXIpO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZEFjdGl2aXR5TGlzdFZpZXdNb2RlbHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0YXJ0SW50ZXJ2YWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlSW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICB9LCB0aGlzLnJlbG9hZFRpbWVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVWaWV3TW9kZWxDb250ZW50KGFjdGl2aXR5Vmlld01vZGVsOiBBY3Rpdml0eVZpZXdNb2RlbCwgYWN0aXZpdHk6IEFjdGl2aXR5KTogQWN0aXZpdHlWaWV3TW9kZWwge1xyXG4gICAgICAgIGFjdGl2aXR5Vmlld01vZGVsLmFjdGl2aXR5ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgcmV0dXJuIGFjdGl2aXR5Vmlld01vZGVsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|