survery-lib 2.1.30 → 2.1.32
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/esm2022/lib/components/question-cascade-template/question-cascade-template.component.mjs +112 -100
- package/esm2022/lib/services/api.service.mjs +1 -1
- package/esm2022/lib/survery-lib.component.mjs +6 -3
- package/fesm2022/survery-lib.mjs +116 -101
- package/fesm2022/survery-lib.mjs.map +1 -1
- package/lib/components/question-cascade-template/question-cascade-template.component.d.ts +4 -1
- package/lib/services/api.service.d.ts +2 -0
- package/lib/survery-lib.component.d.ts +2 -1
- package/package.json +1 -1
package/esm2022/lib/components/question-cascade-template/question-cascade-template.component.mjs
CHANGED
|
@@ -47,6 +47,7 @@ export class QuestionCascadeTemplateComponent {
|
|
|
47
47
|
this.questionGroupId = null;
|
|
48
48
|
this.isPre = false;
|
|
49
49
|
this.surveyLanguageId = null;
|
|
50
|
+
this.surveyKey = null;
|
|
50
51
|
this.applicantKey = null;
|
|
51
52
|
this.rForm = this._formBuilder.group({
|
|
52
53
|
questionArr: this._formBuilder.array([])
|
|
@@ -77,56 +78,57 @@ export class QuestionCascadeTemplateComponent {
|
|
|
77
78
|
var selectedAnswerObj = this.surveyQuestionArr
|
|
78
79
|
.find(x => x.questionId == model.QuestionId)?.surveyAnswers.find(x => x.answerId === model.SurveyAnswerId);
|
|
79
80
|
if (selectedAnswerObj?.isOther == true) {
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
81
|
+
this.isOtherQuestion(model);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.getNextQuestion(model);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
identify(index, item) {
|
|
89
|
+
return item.value.id;
|
|
90
|
+
}
|
|
91
|
+
setQuestions(value) {
|
|
92
|
+
this.surveyQuestionArr.push(value);
|
|
93
|
+
var group = this._formBuilder.group({
|
|
94
|
+
id: new FormControl(value.questionId),
|
|
95
|
+
typeId: new FormControl(value.questionTypeId),
|
|
96
|
+
answer: new FormControl(null)
|
|
97
|
+
});
|
|
98
|
+
if (value.isRequired == true) {
|
|
99
|
+
group.controls.answer.addValidators([Validators.required]);
|
|
100
|
+
group.controls.answer.updateValueAndValidity();
|
|
101
|
+
}
|
|
102
|
+
this.fCtrls.questionArr.push(group);
|
|
103
|
+
}
|
|
104
|
+
isOtherQuestion(model) {
|
|
105
|
+
this._ApiService.getIsOtherQuestion({
|
|
106
|
+
parentQId: model.QuestionId,
|
|
107
|
+
groupId: this.questionGroupId,
|
|
108
|
+
surveyKey: this.surveyKey,
|
|
109
|
+
surveyLanguageId: this.surveyLanguageId
|
|
110
|
+
}).subscribe(res => {
|
|
111
|
+
if (res.errors.filter(x => x.code == 17).length == 0) {
|
|
112
|
+
res.questionTypeId = QuestionTypeEnum.TextInput;
|
|
113
|
+
this._Store.dispatch(surveyActions.addQuestion({
|
|
114
|
+
question: {
|
|
115
|
+
surveyPageId: this.pageId,
|
|
116
|
+
questionId: res.questionId,
|
|
117
|
+
questionType: res.questionTypeId,
|
|
118
|
+
inputTypeId: InputTypeEnum.Text,
|
|
119
|
+
isQuestionGroup: false,
|
|
120
|
+
answerId: null,
|
|
121
|
+
answerIdArr: null,
|
|
122
|
+
answerText: null,
|
|
123
|
+
isRequired: res.isRequired,
|
|
124
|
+
isValid: null,
|
|
125
|
+
isDisabled: res.isReadOnly,
|
|
126
|
+
isShow: res.isVisable,
|
|
127
|
+
isDisabled_default: res.isReadOnly,
|
|
128
|
+
isShow_default: res.isVisable,
|
|
129
|
+
questionGroupId: this.questionGroupId,
|
|
130
|
+
parentQuestionId: model.QuestionId,
|
|
131
|
+
questionAllInfo: {
|
|
130
132
|
questionId: res.questionId,
|
|
131
133
|
questionTypeId: res.questionTypeId,
|
|
132
134
|
questionName: res.questionName,
|
|
@@ -148,63 +150,71 @@ export class QuestionCascadeTemplateComponent {
|
|
|
148
150
|
],
|
|
149
151
|
surveySubQuestions: res.surveySubQuestions,
|
|
150
152
|
surveySubQuestionLevels: res.surveySubQuestionLevels
|
|
151
|
-
}
|
|
153
|
+
}
|
|
152
154
|
}
|
|
155
|
+
}));
|
|
156
|
+
this.setQuestions({
|
|
157
|
+
questionId: res.questionId,
|
|
158
|
+
questionTypeId: res.questionTypeId,
|
|
159
|
+
questionName: res.questionName,
|
|
160
|
+
questionTitle: res.questionTitle,
|
|
161
|
+
questionDescription: res.questionDescription,
|
|
162
|
+
isRequired: res.isRequired,
|
|
163
|
+
isVisable: res.isVisable,
|
|
164
|
+
isEditable: res.isEditable,
|
|
165
|
+
isOTPOption: res.isOtpOption,
|
|
166
|
+
isAdvanceTextArea: res.isAdvanceTextArea,
|
|
167
|
+
isReadOnly: res.isReadOnly,
|
|
168
|
+
isPreDefine: res.isPreDefine,
|
|
169
|
+
maxLevelValue: res.maxLevelValue,
|
|
170
|
+
surveyAnswers: [
|
|
171
|
+
{
|
|
172
|
+
answerId: res.answerId,
|
|
173
|
+
inputTypeId: InputTypeEnum.Text
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
surveySubQuestions: res.surveySubQuestions,
|
|
177
|
+
surveySubQuestionLevels: res.surveySubQuestionLevels
|
|
153
178
|
});
|
|
179
|
+
this.getNextQuestion(model);
|
|
154
180
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
this.setQuestions(res);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
getNextQuestion(model) {
|
|
184
|
+
this._ApiService.getNextQuestion({
|
|
185
|
+
answerId: model.Answer,
|
|
186
|
+
applicantKey: this.applicantKey,
|
|
187
|
+
isPre: this.isPre,
|
|
188
|
+
surveyLanguageId: this.surveyLanguageId
|
|
189
|
+
}).subscribe(res => {
|
|
190
|
+
if (res.errors.filter(x => x.code == 17).length == 0) {
|
|
191
|
+
this._Store.dispatch(surveyActions.addQuestion({
|
|
192
|
+
question: {
|
|
193
|
+
surveyPageId: this.pageId,
|
|
194
|
+
questionId: res.questionId,
|
|
195
|
+
questionType: res.questionTypeId,
|
|
196
|
+
inputTypeId: res.surveyAnswers[0].inputTypeId,
|
|
197
|
+
isQuestionGroup: false,
|
|
198
|
+
answerId: null,
|
|
199
|
+
answerIdArr: null,
|
|
200
|
+
answerText: null,
|
|
201
|
+
isRequired: res.isRequired,
|
|
202
|
+
isValid: null,
|
|
203
|
+
isDisabled: res.isReadOnly,
|
|
204
|
+
isShow: res.isVisable,
|
|
205
|
+
isDisabled_default: res.isReadOnly,
|
|
206
|
+
isShow_default: res.isVisable,
|
|
207
|
+
questionGroupId: this.questionGroupId,
|
|
208
|
+
parentQuestionId: model.QuestionId,
|
|
209
|
+
questionAllInfo: res
|
|
185
210
|
}
|
|
186
|
-
});
|
|
211
|
+
}));
|
|
212
|
+
this.setQuestions(res);
|
|
187
213
|
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
identify(index, item) {
|
|
191
|
-
return item.value.id;
|
|
192
|
-
}
|
|
193
|
-
setQuestions(value) {
|
|
194
|
-
this.surveyQuestionArr.push(value);
|
|
195
|
-
var group = this._formBuilder.group({
|
|
196
|
-
id: new FormControl(value.questionId),
|
|
197
|
-
typeId: new FormControl(value.questionTypeId),
|
|
198
|
-
answer: new FormControl(null)
|
|
199
214
|
});
|
|
200
|
-
if (value.isRequired == true) {
|
|
201
|
-
group.controls.answer.addValidators([Validators.required]);
|
|
202
|
-
group.controls.answer.updateValueAndValidity();
|
|
203
|
-
}
|
|
204
|
-
this.fCtrls.questionArr.push(group);
|
|
205
215
|
}
|
|
206
216
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionCascadeTemplateComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SurveyLibService }, { token: i3.ApiService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionCascadeTemplateComponent, selector: "lib-question-cascade-template", inputs: { pageId: "pageId", questionGroupId: "questionGroupId", isPre: "isPre", surveyLanguageId: "surveyLanguageId", applicantKey: "applicantKey", setQuestion: "setQuestion" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <lib-question-dropdown-template #questionDropdownTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType != questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \" (emitter)=\"onUpdateAnswer($event)\">\r\n </lib-question-dropdown-template>\r\n\r\n <lib-question-text-template #questionTextTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType == questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \"\r\n [isArabicLang]=\"true\"></lib-question-text-template>\r\n\r\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isArabicLang", "setQuestion", "isDisabled"] }, { kind: "component", type: i7.QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "pipe", type: i8.FindQuestionPipe, name: "findQuestion" }] }); }
|
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionCascadeTemplateComponent, selector: "lib-question-cascade-template", inputs: { pageId: "pageId", questionGroupId: "questionGroupId", isPre: "isPre", surveyLanguageId: "surveyLanguageId", surveyKey: "surveyKey", applicantKey: "applicantKey", setQuestion: "setQuestion" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\r\n <lib-question-dropdown-template #questionDropdownTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType != questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \" (emitter)=\"onUpdateAnswer($event)\">\r\n </lib-question-dropdown-template>\r\n\r\n <lib-question-text-template #questionTextTemplate\r\n *ngIf=\"(pageQuestions$() |findQuestion :item.value.id)?.questionType == questionTypeEnum.TextInput\"\r\n [setQuestion]=\"pageQuestions$() |findQuestion :item.value.id \"\r\n [isArabicLang]=\"true\"></lib-question-text-template>\r\n\r\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isArabicLang", "setQuestion", "isDisabled"] }, { kind: "component", type: i7.QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "pipe", type: i8.FindQuestionPipe, name: "findQuestion" }] }); }
|
|
208
218
|
}
|
|
209
219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionCascadeTemplateComponent, decorators: [{
|
|
210
220
|
type: Component,
|
|
@@ -217,9 +227,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
217
227
|
type: Input
|
|
218
228
|
}], surveyLanguageId: [{
|
|
219
229
|
type: Input
|
|
230
|
+
}], surveyKey: [{
|
|
231
|
+
type: Input
|
|
220
232
|
}], applicantKey: [{
|
|
221
233
|
type: Input
|
|
222
234
|
}], setQuestion: [{
|
|
223
235
|
type: Input
|
|
224
236
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZS9xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlL3F1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBZSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7OztBQVF0RSxNQUFNLE9BQU8sZ0NBQWdDO0lBSzNDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUE7SUFDaEMsQ0FBQztJQVNELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFekMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0YsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUVsRCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxjQUFjLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUNuRDthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsWUFBb0IsWUFBeUIsRUFBVSxpQkFBbUMsRUFDaEYsV0FBdUIsRUFBVSxNQUFhO1FBRHBDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNoRixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQU87UUF4Q3hELHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFFNUMsbUJBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQWVsRSxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBQ3RCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIscUJBQWdCLEdBQVcsSUFBSSxDQUFDO1FBQ2hDLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBb0JuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUF1QztZQUN6RSxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQXNFLEVBQUUsQ0FBQztTQUM5RyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLHlEQUF5RDtRQUN6RCxvQkFBb0I7UUFDcEIsS0FBSztJQUNQLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBMEI7UUFDdkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVwRyxJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQTtZQUN6QixLQUFLLElBQUksS0FBSyxHQUFHLG1CQUFtQixHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDeEYsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1lBRUQsSUFBSSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUVuRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFL0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9DO1NBQ0Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCO2lCQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDN0csSUFBSSxpQkFBaUIsRUFBRSxPQUFPLElBQUksSUFBSSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVU7b0JBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZTtpQkFDOUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDakIsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTt3QkFDcEQsR0FBRyxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7d0JBRWhELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7NEJBQzdDLFFBQVEsRUFBRTtnQ0FDUixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0NBQ3pCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtnQ0FDMUIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxjQUFjO2dDQUNoQyxXQUFXLEVBQUUsYUFBYSxDQUFDLElBQUk7Z0NBQy9CLGVBQWUsRUFBRSxLQUFLO2dDQUN0QixRQUFRLEVBQUUsSUFBSTtnQ0FDZCxXQUFXLEVBQUUsSUFBSTtnQ0FDakIsVUFBVSxFQUFFLElBQUk7Z0NBQ2hCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtnQ0FDMUIsT0FBTyxFQUFFLElBQUk7Z0NBQ2IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO2dDQUMxQixNQUFNLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0NBQ3JCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxVQUFVO2dDQUNsQyxjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0NBQzdCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQ0FDckMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0NBQ2xDLGVBQWUsRUFBRTtvQ0FDZixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7b0NBQzFCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztvQ0FDbEMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO29DQUM5QixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7b0NBQ2hDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUI7b0NBQzVDLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtvQ0FDMUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO29DQUN4QixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7b0NBQzFCLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztvQ0FDNUIsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjtvQ0FDeEMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO29DQUMxQixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7b0NBQzVCLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtvQ0FDaEMsYUFBYSxFQUFFO3dDQUNiOzRDQUNFLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTs0Q0FDdEIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxJQUFJO3lDQUNiO3FDQUNyQjtvQ0FDRCxrQkFBa0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCO29DQUMxQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsdUJBQXVCO2lDQUNyRDs2QkFDRjt5QkFDRixDQUFDLENBQUMsQ0FBQzt3QkFFSixJQUFJLENBQUMsWUFBWSxDQUFDOzRCQUNoQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7NEJBQzFCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYzs0QkFDbEMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZOzRCQUM5QixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7NEJBQ2hDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUI7NEJBQzVDLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTs0QkFDMUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTOzRCQUN4QixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7NEJBQzFCLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVzs0QkFDNUIsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLGlCQUFpQjs0QkFDeEMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVOzRCQUMxQixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7NEJBQzVCLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTs0QkFDaEMsYUFBYSxFQUFFO2dDQUNiO29DQUNFLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtvQ0FDdEIsV0FBVyxFQUFFLGFBQWEsQ0FBQyxJQUFJO2lDQUNiOzZCQUNyQjs0QkFDRCxrQkFBa0IsRUFBRSxHQUFHLENBQUMsa0JBQWtCOzRCQUMxQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsdUJBQXVCO3lCQUNyRCxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFDSTtnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUN0QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQkFDeEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDakIsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTt3QkFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQzs0QkFDN0MsUUFBUSxFQUFFO2dDQUNSLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTTtnQ0FDekIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO2dDQUMxQixZQUFZLEVBQUUsR0FBRyxDQUFDLGNBQWM7Z0NBQ2hDLFdBQVcsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7Z0NBQzdDLGVBQWUsRUFBRSxLQUFLO2dDQUN0QixRQUFRLEVBQUUsSUFBSTtnQ0FDZCxXQUFXLEVBQUUsSUFBSTtnQ0FDakIsVUFBVSxFQUFFLElBQUk7Z0NBQ2hCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtnQ0FDMUIsT0FBTyxFQUFFLElBQUk7Z0NBQ2IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO2dDQUMxQixNQUFNLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0NBQ3JCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxVQUFVO2dDQUNsQyxjQUFjLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0NBQzdCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQ0FDckMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0NBQ2xDLGVBQWUsRUFBRSxHQUFHOzZCQUNyQjt5QkFDRixDQUFDLENBQUMsQ0FBQzt3QkFFSixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUN4QjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUF5RTtRQUN2RixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBd0I7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBMkQ7WUFDNUYsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDckMsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDN0MsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztTQUM5QixDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzNELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs4R0FuTlUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsdVBDcEI3Qyxtd0JBV2U7OzJGRFNGLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSwrQkFBK0I7OEtBc0JoQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRU8sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25DYXNjYWRlVGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1jYXNjYWRlLmZvcm0taW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlc3Rpb25OZ3J4TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eSc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5hY3Rpb24nO1xyXG5pbXBvcnQgeyBxdWVzdGlvblNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvcic7XHJcbmltcG9ydCB7IElucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU3VydmV5QW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWFuc3dlci5kdG8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25DYXNjYWRlVGVtcGxhdGVDb21wb25lbnQge1xyXG4gIHN1cnZleVF1ZXN0aW9uQXJyOiBTdXJ2ZXlRdWVzdGlvbkR0b1tdID0gW107XHJcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xyXG4gIHBhZ2VRdWVzdGlvbnMkID0gdGhpcy5fU3RvcmUuc2VsZWN0U2lnbmFsKHF1ZXN0aW9uU2VsZWN0b3JzLnBhZ2VRdWVzdGlvbnMpO1xyXG5cclxuICBnZXQgZkN0cmxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcclxuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uRm9ybUFycmF5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyXHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgcGFnZUlkOiBudW1iZXIgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uR3JvdXBJZDogbnVtYmVyID0gbnVsbDtcclxuICBASW5wdXQoKSBpc1ByZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN1cnZleUxhbmd1YWdlSWQ6IG51bWJlciA9IG51bGw7XHJcbiAgQElucHV0KCkgYXBwbGljYW50S2V5OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFF1ZXN0aW9uTmdyeE1vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5zdXJ2ZXlRdWVzdGlvbkFycj8ubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zZXRRdWVzdGlvbnModmFsdWUucXVlc3Rpb25BbGxJbmZvKTtcclxuXHJcbiAgICAgIHZhciBjaGlsZFF1ZXN0aW9uMSA9IHRoaXMucGFnZVF1ZXN0aW9ucyQoKS5maW5kKHggPT4geC5wYXJlbnRRdWVzdGlvbklkID09IHZhbHVlLnF1ZXN0aW9uSWQpO1xyXG4gICAgICBpZiAoY2hpbGRRdWVzdGlvbjEpIHtcclxuICAgICAgICB0aGlzLnNldFF1ZXN0aW9ucyhjaGlsZFF1ZXN0aW9uMS5xdWVzdGlvbkFsbEluZm8pO1xyXG5cclxuICAgICAgICB2YXIgY2hpbGRRdWVzdGlvbjIgPSB0aGlzLnBhZ2VRdWVzdGlvbnMkKCkuZmluZCh4ID0+IHgucGFyZW50UXVlc3Rpb25JZCA9PSBjaGlsZFF1ZXN0aW9uMS5xdWVzdGlvbklkKTtcclxuICAgICAgICBpZiAoY2hpbGRRdWVzdGlvbjIpIHtcclxuICAgICAgICAgIHRoaXMuc2V0UXVlc3Rpb25zKGNoaWxkUXVlc3Rpb24yLnF1ZXN0aW9uQWxsSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9BcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLCBwcml2YXRlIF9TdG9yZTogU3RvcmUpIHtcclxuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgcXVlc3Rpb25BcnI6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uQ2FzY2FkZVRlbXBsYXRlRm9ybUludGVyZmFjZT4+KFtdKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyh2KTtcclxuICAgIC8vIH0pXHJcbiAgfVxyXG5cclxuICBvblVwZGF0ZUFuc3dlcihtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuc3VydmV5UXVlc3Rpb25BcnIubGVuZ3RoID4gMSkge1xyXG4gICAgICBjb25zdCBzdXJ2ZXlRdWVzdGlvbkluZGV4ID0gdGhpcy5zdXJ2ZXlRdWVzdGlvbkFyci5maW5kSW5kZXgoYyA9PiBjLnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCk7XHJcblxyXG4gICAgICB2YXIgZGVsZXRlZFF1ZXN0aW9ucyA9IFtdXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gc3VydmV5UXVlc3Rpb25JbmRleCArIDE7IGluZGV4IDwgdGhpcy5zdXJ2ZXlRdWVzdGlvbkFyci5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBkZWxldGVkUXVlc3Rpb25zLnB1c2goaW5kZXgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgc29ydERlbGV0ZWRBcnIgPSBkZWxldGVkUXVlc3Rpb25zLnNvcnQoKGEsIGIpID0+IChhID4gYiA/IC0xIDogMSkpO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc29ydERlbGV0ZWRBcnIubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudEluZGV4ID0gc29ydERlbGV0ZWRBcnJbaW5kZXhdO1xyXG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uSWQgPSB0aGlzLnN1cnZleVF1ZXN0aW9uQXJyW2VsZW1lbnRJbmRleF0ucXVlc3Rpb25JZDtcclxuXHJcbiAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy5yZW1vdmVRdWVzdGlvbih7IHF1ZXN0aW9uSWQ6IHF1ZXN0aW9uSWQgfSkpO1xyXG5cclxuICAgICAgICB0aGlzLnN1cnZleVF1ZXN0aW9uQXJyID0gdGhpcy5zdXJ2ZXlRdWVzdGlvbkFyci5maWx0ZXIoeCA9PiB4LnF1ZXN0aW9uSWQgIT0gcXVlc3Rpb25JZCk7XHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbkZvcm1BcnJheS5yZW1vdmVBdChlbGVtZW50SW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1vZGVsLkFuc3dlcikge1xyXG4gICAgICB2YXIgc2VsZWN0ZWRBbnN3ZXJPYmogPSB0aGlzLnN1cnZleVF1ZXN0aW9uQXJyXHJcbiAgICAgICAgLmZpbmQoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCk/LnN1cnZleUFuc3dlcnMuZmluZCh4ID0+IHguYW5zd2VySWQgPT09IG1vZGVsLlN1cnZleUFuc3dlcklkKTtcclxuICAgICAgaWYgKHNlbGVjdGVkQW5zd2VyT2JqPy5pc090aGVyID09IHRydWUpIHtcclxuICAgICAgICB0aGlzLl9BcGlTZXJ2aWNlLmdldElzT3RoZXJRdWVzdGlvbih7XHJcbiAgICAgICAgICBwYXJlbnRRSWQ6IG1vZGVsLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBncm91cElkOiB0aGlzLnF1ZXN0aW9uR3JvdXBJZFxyXG4gICAgICAgIH0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5lcnJvcnMuZmlsdGVyKHggPT4geC5jb2RlID09IDE3KS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXMucXVlc3Rpb25UeXBlSWQgPSBRdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMuYWRkUXVlc3Rpb24oe1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICBzdXJ2ZXlQYWdlSWQ6IHRoaXMucGFnZUlkLFxyXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvblR5cGU6IHJlcy5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICAgICAgICAgIGlucHV0VHlwZUlkOiBJbnB1dFR5cGVFbnVtLlRleHQsXHJcbiAgICAgICAgICAgICAgICBpc1F1ZXN0aW9uR3JvdXA6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYW5zd2VySWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBhbnN3ZXJJZEFycjogbnVsbCxcclxuICAgICAgICAgICAgICAgIGFuc3dlclRleHQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBpc1JlcXVpcmVkOiByZXMuaXNSZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIGlzVmFsaWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiByZXMuaXNSZWFkT25seSxcclxuICAgICAgICAgICAgICAgIGlzU2hvdzogcmVzLmlzVmlzYWJsZSxcclxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogcmVzLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogcmVzLmlzVmlzYWJsZSxcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXBJZDogdGhpcy5xdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRRdWVzdGlvbklkOiBtb2RlbC5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25BbGxJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJlcy5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICBxdWVzdGlvblR5cGVJZDogcmVzLnF1ZXN0aW9uVHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgICBxdWVzdGlvbk5hbWU6IHJlcy5xdWVzdGlvbk5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uVGl0bGU6IHJlcy5xdWVzdGlvblRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICBxdWVzdGlvbkRlc2NyaXB0aW9uOiByZXMucXVlc3Rpb25EZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogcmVzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIGlzVmlzYWJsZTogcmVzLmlzVmlzYWJsZSxcclxuICAgICAgICAgICAgICAgICAgaXNFZGl0YWJsZTogcmVzLmlzRWRpdGFibGUsXHJcbiAgICAgICAgICAgICAgICAgIGlzT1RQT3B0aW9uOiByZXMuaXNPdHBPcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgIGlzQWR2YW5jZVRleHRBcmVhOiByZXMuaXNBZHZhbmNlVGV4dEFyZWEsXHJcbiAgICAgICAgICAgICAgICAgIGlzUmVhZE9ubHk6IHJlcy5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgICAgICAgICBpc1ByZURlZmluZTogcmVzLmlzUHJlRGVmaW5lLFxyXG4gICAgICAgICAgICAgICAgICBtYXhMZXZlbFZhbHVlOiByZXMubWF4TGV2ZWxWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgc3VydmV5QW5zd2VyczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGFuc3dlcklkOiByZXMuYW5zd2VySWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGVJZDogSW5wdXRUeXBlRW51bS5UZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBTdXJ2ZXlBbnN3ZXJEdG9cclxuICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgc3VydmV5U3ViUXVlc3Rpb25zOiByZXMuc3VydmV5U3ViUXVlc3Rpb25zLFxyXG4gICAgICAgICAgICAgICAgICBzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsczogcmVzLnN1cnZleVN1YlF1ZXN0aW9uTGV2ZWxzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNldFF1ZXN0aW9ucyh7XHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25JZDogcmVzLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25UeXBlSWQ6IHJlcy5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICAgICAgICBxdWVzdGlvbk5hbWU6IHJlcy5xdWVzdGlvbk5hbWUsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25UaXRsZTogcmVzLnF1ZXN0aW9uVGl0bGUsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25EZXNjcmlwdGlvbjogcmVzLnF1ZXN0aW9uRGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgaXNSZXF1aXJlZDogcmVzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgaXNWaXNhYmxlOiByZXMuaXNWaXNhYmxlLFxyXG4gICAgICAgICAgICAgIGlzRWRpdGFibGU6IHJlcy5pc0VkaXRhYmxlLFxyXG4gICAgICAgICAgICAgIGlzT1RQT3B0aW9uOiByZXMuaXNPdHBPcHRpb24sXHJcbiAgICAgICAgICAgICAgaXNBZHZhbmNlVGV4dEFyZWE6IHJlcy5pc0FkdmFuY2VUZXh0QXJlYSxcclxuICAgICAgICAgICAgICBpc1JlYWRPbmx5OiByZXMuaXNSZWFkT25seSxcclxuICAgICAgICAgICAgICBpc1ByZURlZmluZTogcmVzLmlzUHJlRGVmaW5lLFxyXG4gICAgICAgICAgICAgIG1heExldmVsVmFsdWU6IHJlcy5tYXhMZXZlbFZhbHVlLFxyXG4gICAgICAgICAgICAgIHN1cnZleUFuc3dlcnM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgYW5zd2VySWQ6IHJlcy5hbnN3ZXJJZCxcclxuICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlSWQ6IElucHV0VHlwZUVudW0uVGV4dFxyXG4gICAgICAgICAgICAgICAgfSBhcyBTdXJ2ZXlBbnN3ZXJEdG9cclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHN1cnZleVN1YlF1ZXN0aW9uczogcmVzLnN1cnZleVN1YlF1ZXN0aW9ucyxcclxuICAgICAgICAgICAgICBzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsczogcmVzLnN1cnZleVN1YlF1ZXN0aW9uTGV2ZWxzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0TmV4dFF1ZXN0aW9uKHtcclxuICAgICAgICAgIGFuc3dlcklkOiBtb2RlbC5BbnN3ZXIsXHJcbiAgICAgICAgICBhcHBsaWNhbnRLZXk6IHRoaXMuYXBwbGljYW50S2V5LFxyXG4gICAgICAgICAgaXNQcmU6IHRoaXMuaXNQcmUsXHJcbiAgICAgICAgICBzdXJ2ZXlMYW5ndWFnZUlkOiB0aGlzLnN1cnZleUxhbmd1YWdlSWRcclxuICAgICAgICB9KS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmIChyZXMuZXJyb3JzLmZpbHRlcih4ID0+IHguY29kZSA9PSAxNykubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy5hZGRRdWVzdGlvbih7XHJcbiAgICAgICAgICAgICAgcXVlc3Rpb246IHtcclxuICAgICAgICAgICAgICAgIHN1cnZleVBhZ2VJZDogdGhpcy5wYWdlSWQsXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiByZXMucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uVHlwZTogcmVzLnF1ZXN0aW9uVHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgaW5wdXRUeXBlSWQ6IHJlcy5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgaXNRdWVzdGlvbkdyb3VwOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGFuc3dlcklkOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgYW5zd2VySWRBcnI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBhbnN3ZXJUZXh0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgaXNSZXF1aXJlZDogcmVzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogcmVzLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICAgICAgICBpc1Nob3c6IHJlcy5pc1Zpc2FibGUsXHJcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IHJlcy5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IHJlcy5pc1Zpc2FibGUsXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwSWQ6IHRoaXMucXVlc3Rpb25Hcm91cElkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50UXVlc3Rpb25JZDogbW9kZWwuUXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcmVzXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNldFF1ZXN0aW9ucyhyZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZGVudGlmeShpbmRleCwgaXRlbTogRm9ybUdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25DYXNjYWRlVGVtcGxhdGVGb3JtSW50ZXJmYWNlPikge1xyXG4gICAgcmV0dXJuIGl0ZW0udmFsdWUuaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1ZXN0aW9ucyh2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcclxuICAgIHRoaXMuc3VydmV5UXVlc3Rpb25BcnIucHVzaCh2YWx1ZSk7XHJcblxyXG4gICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcclxuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbklkKSxcclxuICAgICAgdHlwZUlkOiBuZXcgRm9ybUNvbnRyb2wodmFsdWUucXVlc3Rpb25UeXBlSWQpLFxyXG4gICAgICBhbnN3ZXI6IG5ldyBGb3JtQ29udHJvbChudWxsKVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xyXG4gICAgICBncm91cC5jb250cm9scy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgICBncm91cC5jb250cm9scy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLnB1c2goZ3JvdXApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbkZvcm1BcnJheS5jb250cm9sczsgdHJhY2tCeTppZGVudGlmeSA7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUgI3F1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZVxyXG4gICAgICAgICpuZ0lmPVwiKHBhZ2VRdWVzdGlvbnMkKCkgfGZpbmRRdWVzdGlvbiA6aXRlbS52YWx1ZS5pZCk/LnF1ZXN0aW9uVHlwZSAhPSBxdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dFwiXHJcbiAgICAgICAgW3NldFF1ZXN0aW9uXT1cInBhZ2VRdWVzdGlvbnMkKCkgfGZpbmRRdWVzdGlvbiA6aXRlbS52YWx1ZS5pZCBcIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCI+XHJcbiAgICA8L2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGUgI3F1ZXN0aW9uVGV4dFRlbXBsYXRlXHJcbiAgICAgICAgKm5nSWY9XCIocGFnZVF1ZXN0aW9ucyQoKSB8ZmluZFF1ZXN0aW9uIDppdGVtLnZhbHVlLmlkKT8ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0XCJcclxuICAgICAgICBbc2V0UXVlc3Rpb25dPVwicGFnZVF1ZXN0aW9ucyQoKSB8ZmluZFF1ZXN0aW9uIDppdGVtLnZhbHVlLmlkIFwiXHJcbiAgICAgICAgW2lzQXJhYmljTGFuZ109XCJ0cnVlXCI+PC9saWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZT5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZS9xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlL3F1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBZSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7OztBQVF0RSxNQUFNLE9BQU8sZ0NBQWdDO0lBSzNDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUE7SUFDaEMsQ0FBQztJQVVELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUks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QWUsRUFBRSxJQUFJLENBQUMsZUFBZTt3QkFDckMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVU7d0JBQ2xDLGVBQWUsRUFBRSxHQUFHO3FCQUNyQjtpQkFDRixDQUFDLENBQUMsQ0FBQztnQkFFSixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWpPVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywrUUNwQjdDLG13QkFXZTs7MkZEU0YsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLCtCQUErQjs4S0FzQmhDLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUXVlc3Rpb25DYXNjYWRlVGVtcGxhdGVGb3JtSW50ZXJmYWNlLCBRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uQ2FzY2FkZVRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tY2FzY2FkZS5mb3JtLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcclxuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTmdyeE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi5lbnRpdHknO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgc3VydmV5QWN0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9zdXJ2ZXkuYWN0aW9uJztcclxuaW1wb3J0IHsgcXVlc3Rpb25TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvcXVlc3Rpb24uc2VsZWN0b3InO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFN1cnZleUFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1hbnN3ZXIuZHRvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLWNhc2NhZGUtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQ2FzY2FkZVRlbXBsYXRlQ29tcG9uZW50IHtcclxuICBzdXJ2ZXlRdWVzdGlvbkFycjogU3VydmV5UXVlc3Rpb25EdG9bXSA9IFtdO1xyXG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25DYXNjYWRlVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcclxuICBwYWdlUXVlc3Rpb25zJCA9IHRoaXMuX1N0b3JlLnNlbGVjdFNpZ25hbChxdWVzdGlvblNlbGVjdG9ycy5wYWdlUXVlc3Rpb25zKTtcclxuXHJcbiAgZ2V0IGZDdHJscygpIHtcclxuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XHJcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVzdGlvbkZvcm1BcnJheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZDdHJscy5xdWVzdGlvbkFyclxyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHBhZ2VJZDogbnVtYmVyID0gbnVsbDtcclxuICBASW5wdXQoKSBxdWVzdGlvbkdyb3VwSWQ6IG51bWJlciA9IG51bGw7XHJcbiAgQElucHV0KCkgaXNQcmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdXJ2ZXlMYW5ndWFnZUlkOiBudW1iZXIgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHN1cnZleUtleTogc3RyaW5nID0gbnVsbDtcclxuICBASW5wdXQoKSBhcHBsaWNhbnRLZXk6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogUXVlc3Rpb25OZ3J4TW9kZWwpIHtcclxuICAgIGlmICh0aGlzLnN1cnZleVF1ZXN0aW9uQXJyPy5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLnNldFF1ZXN0aW9ucyh2YWx1ZS5xdWVzdGlvbkFsbEluZm8pO1xyXG5cclxuICAgICAgdmFyIGNoaWxkUXVlc3Rpb24xID0gdGhpcy5wYWdlUXVlc3Rpb25zJCgpLmZpbmQoeCA9PiB4LnBhcmVudFF1ZXN0aW9uSWQgPT0gdmFsdWUucXVlc3Rpb25JZCk7XHJcbiAgICAgIGlmIChjaGlsZFF1ZXN0aW9uMSkge1xyXG4gICAgICAgIHRoaXMuc2V0UXVlc3Rpb25zKGNoaWxkUXVlc3Rpb24xLnF1ZXN0aW9uQWxsSW5mbyk7XHJcblxyXG4gICAgICAgIHZhciBjaGlsZFF1ZXN0aW9uMiA9IHRoaXMucGFnZVF1ZXN0aW9ucyQoKS5maW5kKHggPT4geC5wYXJlbnRRdWVzdGlvbklkID09IGNoaWxkUXVlc3Rpb24xLnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgIGlmIChjaGlsZFF1ZXN0aW9uMikge1xyXG4gICAgICAgICAgdGhpcy5zZXRRdWVzdGlvbnMoY2hpbGRRdWVzdGlvbjIucXVlc3Rpb25BbGxJbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfc3VydmV5TGliU2VydmljZTogU3VydmV5TGliU2VydmljZSxcclxuICAgIHByaXZhdGUgX0FwaVNlcnZpY2U6IEFwaVNlcnZpY2UsIHByaXZhdGUgX1N0b3JlOiBTdG9yZSkge1xyXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2FzY2FkZVRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBxdWVzdGlvbkFycjogdGhpcy5fZm9ybUJ1aWxkZXIuYXJyYXk8Rm9ybUdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25DYXNjYWRlVGVtcGxhdGVGb3JtSW50ZXJmYWNlPj4oW10pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnIuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHYpO1xyXG4gICAgLy8gfSlcclxuICB9XHJcblxyXG4gIG9uVXBkYXRlQW5zd2VyKG1vZGVsOiBRdWVzdGlvbkFuc3dlck1vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5zdXJ2ZXlRdWVzdGlvbkFyci5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGNvbnN0IHN1cnZleVF1ZXN0aW9uSW5kZXggPSB0aGlzLnN1cnZleVF1ZXN0aW9uQXJyLmZpbmRJbmRleChjID0+IGMucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKTtcclxuXHJcbiAgICAgIHZhciBkZWxldGVkUXVlc3Rpb25zID0gW11cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSBzdXJ2ZXlRdWVzdGlvbkluZGV4ICsgMTsgaW5kZXggPCB0aGlzLnN1cnZleVF1ZXN0aW9uQXJyLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGRlbGV0ZWRRdWVzdGlvbnMucHVzaChpbmRleCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciBzb3J0RGVsZXRlZEFyciA9IGRlbGV0ZWRRdWVzdGlvbnMuc29ydCgoYSwgYikgPT4gKGEgPiBiID8gLTEgOiAxKSk7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzb3J0RGVsZXRlZEFyci5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50SW5kZXggPSBzb3J0RGVsZXRlZEFycltpbmRleF07XHJcbiAgICAgICAgY29uc3QgcXVlc3Rpb25JZCA9IHRoaXMuc3VydmV5UXVlc3Rpb25BcnJbZWxlbWVudEluZGV4XS5xdWVzdGlvbklkO1xyXG5cclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnJlbW92ZVF1ZXN0aW9uKHsgcXVlc3Rpb25JZDogcXVlc3Rpb25JZCB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3VydmV5UXVlc3Rpb25BcnIgPSB0aGlzLnN1cnZleVF1ZXN0aW9uQXJyLmZpbHRlcih4ID0+IHgucXVlc3Rpb25JZCAhPSBxdWVzdGlvbklkKTtcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uRm9ybUFycmF5LnJlbW92ZUF0KGVsZW1lbnRJbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAobW9kZWwuQW5zd2VyKSB7XHJcbiAgICAgIHZhciBzZWxlY3RlZEFuc3dlck9iaiA9IHRoaXMuc3VydmV5UXVlc3Rpb25BcnJcclxuICAgICAgICAuZmluZCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKT8uc3VydmV5QW5zd2Vycy5maW5kKHggPT4geC5hbnN3ZXJJZCA9PT0gbW9kZWwuU3VydmV5QW5zd2VySWQpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWRBbnN3ZXJPYmo/LmlzT3RoZXIgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuaXNPdGhlclF1ZXN0aW9uKG1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmdldE5leHRRdWVzdGlvbihtb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlkZW50aWZ5KGluZGV4LCBpdGVtOiBGb3JtR3JvdXA8UXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KSB7XHJcbiAgICByZXR1cm4gaXRlbS52YWx1ZS5pZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVlc3Rpb25zKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbkFyci5wdXNoKHZhbHVlKTtcclxuXHJcbiAgICB2YXIgZ3JvdXAgPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uQ2FzY2FkZVRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xyXG4gICAgICBpZDogbmV3IEZvcm1Db250cm9sKHZhbHVlLnF1ZXN0aW9uSWQpLFxyXG4gICAgICB0eXBlSWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvblR5cGVJZCksXHJcbiAgICAgIGFuc3dlcjogbmV3IEZvcm1Db250cm9sKG51bGwpXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnIucHVzaChncm91cCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzT3RoZXJRdWVzdGlvbihtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbCkge1xyXG4gICAgdGhpcy5fQXBpU2VydmljZS5nZXRJc090aGVyUXVlc3Rpb24oe1xyXG4gICAgICBwYXJlbnRRSWQ6IG1vZGVsLlF1ZXN0aW9uSWQsXHJcbiAgICAgIGdyb3VwSWQ6IHRoaXMucXVlc3Rpb25Hcm91cElkICxcclxuICAgICAgc3VydmV5S2V5IDogdGhpcy5zdXJ2ZXlLZXkgLFxyXG4gICAgICBzdXJ2ZXlMYW5ndWFnZUlkIDogdGhpcy5zdXJ2ZXlMYW5ndWFnZUlkXHJcbiAgICB9KS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgaWYgKHJlcy5lcnJvcnMuZmlsdGVyKHggPT4geC5jb2RlID09IDE3KS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHJlcy5xdWVzdGlvblR5cGVJZCA9IFF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0O1xyXG5cclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLmFkZFF1ZXN0aW9uKHtcclxuICAgICAgICAgIHF1ZXN0aW9uOiB7XHJcbiAgICAgICAgICAgIHN1cnZleVBhZ2VJZDogdGhpcy5wYWdlSWQsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJlcy5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICBxdWVzdGlvblR5cGU6IHJlcy5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICAgICAgaW5wdXRUeXBlSWQ6IElucHV0VHlwZUVudW0uVGV4dCxcclxuICAgICAgICAgICAgaXNRdWVzdGlvbkdyb3VwOiBmYWxzZSxcclxuICAgICAgICAgICAgYW5zd2VySWQ6IG51bGwsXHJcbiAgICAgICAgICAgIGFuc3dlcklkQXJyOiBudWxsLFxyXG4gICAgICAgICAgICBhbnN3ZXJUZXh0OiBudWxsLFxyXG4gICAgICAgICAgICBpc1JlcXVpcmVkOiByZXMuaXNSZXF1aXJlZCxcclxuICAgICAgICAgICAgaXNWYWxpZDogbnVsbCxcclxuICAgICAgICAgICAgaXNEaXNhYmxlZDogcmVzLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICAgIGlzU2hvdzogcmVzLmlzVmlzYWJsZSxcclxuICAgICAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiByZXMuaXNSZWFkT25seSxcclxuICAgICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IHJlcy5pc1Zpc2FibGUsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXBJZDogdGhpcy5xdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICAgIHBhcmVudFF1ZXN0aW9uSWQ6IG1vZGVsLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uQWxsSW5mbzoge1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJlcy5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uVHlwZUlkOiByZXMucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25OYW1lOiByZXMucXVlc3Rpb25OYW1lLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uVGl0bGU6IHJlcy5xdWVzdGlvblRpdGxlLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uRGVzY3JpcHRpb246IHJlcy5xdWVzdGlvbkRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IHJlcy5pc1JlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGlzVmlzYWJsZTogcmVzLmlzVmlzYWJsZSxcclxuICAgICAgICAgICAgICBpc0VkaXRhYmxlOiByZXMuaXNFZGl0YWJsZSxcclxuICAgICAgICAgICAgICBpc09UUE9wdGlvbjogcmVzLmlzT3RwT3B0aW9uLFxyXG4gICAgICAgICAgICAgIGlzQWR2YW5jZVRleHRBcmVhOiByZXMuaXNBZHZhbmNlVGV4dEFyZWEsXHJcbiAgICAgICAgICAgICAgaXNSZWFkT25seTogcmVzLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICAgICAgaXNQcmVEZWZpbmU6IHJlcy5pc1ByZURlZmluZSxcclxuICAgICAgICAgICAgICBtYXhMZXZlbFZhbHVlOiByZXMubWF4TGV2ZWxWYWx1ZSxcclxuICAgICAgICAgICAgICBzdXJ2ZXlBbnN3ZXJzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGFuc3dlcklkOiByZXMuYW5zd2VySWQsXHJcbiAgICAgICAgICAgICAgICAgIGlucHV0VHlwZUlkOiBJbnB1dFR5cGVFbnVtLlRleHRcclxuICAgICAgICAgICAgICAgIH0gYXMgU3VydmV5QW5zd2VyRHRvXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBzdXJ2ZXlTdWJRdWVzdGlvbnM6IHJlcy5zdXJ2ZXlTdWJRdWVzdGlvbnMsXHJcbiAgICAgICAgICAgICAgc3VydmV5U3ViUXVlc3Rpb25MZXZlbHM6IHJlcy5zdXJ2ZXlTdWJRdWVzdGlvbkxldmVsc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0aGlzLnNldFF1ZXN0aW9ucyh7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiByZXMucXVlc3Rpb25JZCxcclxuICAgICAgICAgIHF1ZXN0aW9uVHlwZUlkOiByZXMucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbk5hbWU6IHJlcy5xdWVzdGlvbk5hbWUsXHJcbiAgICAgICAgICBxdWVzdGlvblRpdGxlOiByZXMucXVlc3Rpb25UaXRsZSxcclxuICAgICAgICAgIHF1ZXN0aW9uRGVzY3JpcHRpb246IHJlcy5xdWVzdGlvbkRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgaXNSZXF1aXJlZDogcmVzLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgICBpc1Zpc2FibGU6IHJlcy5pc1Zpc2FibGUsXHJcbiAgICAgICAgICBpc0VkaXRhYmxlOiByZXMuaXNFZGl0YWJsZSxcclxuICAgICAgICAgIGlzT1RQT3B0aW9uOiByZXMuaXNPdHBPcHRpb24sXHJcbiAgICAgICAgICBpc0FkdmFuY2VUZXh0QXJlYTogcmVzLmlzQWR2YW5jZVRleHRBcmVhLFxyXG4gICAgICAgICAgaXNSZWFkT25seTogcmVzLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICBpc1ByZURlZmluZTogcmVzLmlzUHJlRGVmaW5lLFxyXG4gICAgICAgICAgbWF4TGV2ZWxWYWx1ZTogcmVzLm1heExldmVsVmFsdWUsXHJcbiAgICAgICAgICBzdXJ2ZXlBbnN3ZXJzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBhbnN3ZXJJZDogcmVzLmFuc3dlcklkLFxyXG4gICAgICAgICAgICAgIGlucHV0VHlwZUlkOiBJbnB1dFR5cGVFbnVtLlRleHRcclxuICAgICAgICAgICAgfSBhcyBTdXJ2ZXlBbnN3ZXJEdG9cclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzdXJ2ZXlTdWJRdWVzdGlvbnM6IHJlcy5zdXJ2ZXlTdWJRdWVzdGlvbnMsXHJcbiAgICAgICAgICBzdXJ2ZXlTdWJRdWVzdGlvbkxldmVsczogcmVzLnN1cnZleVN1YlF1ZXN0aW9uTGV2ZWxzXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0TmV4dFF1ZXN0aW9uKG1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBnZXROZXh0UXVlc3Rpb24obW9kZWw6IFF1ZXN0aW9uQW5zd2VyTW9kZWwpIHtcclxuICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0TmV4dFF1ZXN0aW9uKHtcclxuICAgICAgYW5zd2VySWQ6IG1vZGVsLkFuc3dlcixcclxuICAgICAgYXBwbGljYW50S2V5OiB0aGlzLmFwcGxpY2FudEtleSxcclxuICAgICAgaXNQcmU6IHRoaXMuaXNQcmUsXHJcbiAgICAgIHN1cnZleUxhbmd1YWdlSWQ6IHRoaXMuc3VydmV5TGFuZ3VhZ2VJZFxyXG4gICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmIChyZXMuZXJyb3JzLmZpbHRlcih4ID0+IHguY29kZSA9PSAxNykubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLmFkZFF1ZXN0aW9uKHtcclxuICAgICAgICAgIHF1ZXN0aW9uOiB7XHJcbiAgICAgICAgICAgIHN1cnZleVBhZ2VJZDogdGhpcy5wYWdlSWQsXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHJlcy5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgICBxdWVzdGlvblR5cGU6IHJlcy5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgICAgICAgaW5wdXRUeXBlSWQ6IHJlcy5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkLFxyXG4gICAgICAgICAgICBpc1F1ZXN0aW9uR3JvdXA6IGZhbHNlLFxyXG4gICAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgICAgICAgYW5zd2VySWRBcnI6IG51bGwsXHJcbiAgICAgICAgICAgIGFuc3dlclRleHQ6IG51bGwsXHJcbiAgICAgICAgICAgIGlzUmVxdWlyZWQ6IHJlcy5pc1JlcXVpcmVkLFxyXG4gICAgICAgICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICAgICAgICBpc0Rpc2FibGVkOiByZXMuaXNSZWFkT25seSxcclxuICAgICAgICAgICAgaXNTaG93OiByZXMuaXNWaXNhYmxlLFxyXG4gICAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IHJlcy5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogcmVzLmlzVmlzYWJsZSxcclxuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiB0aGlzLnF1ZXN0aW9uR3JvdXBJZCxcclxuICAgICAgICAgICAgcGFyZW50UXVlc3Rpb25JZDogbW9kZWwuUXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgcXVlc3Rpb25BbGxJbmZvOiByZXNcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UXVlc3Rpb25zKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbkZvcm1BcnJheS5jb250cm9sczsgdHJhY2tCeTppZGVudGlmeSA7IGxldCBpID0gaW5kZXhcIj5cclxuICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUgI3F1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZVxyXG4gICAgICAgICpuZ0lmPVwiKHBhZ2VRdWVzdGlvbnMkKCkgfGZpbmRRdWVzdGlvbiA6aXRlbS52YWx1ZS5pZCk/LnF1ZXN0aW9uVHlwZSAhPSBxdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dFwiXHJcbiAgICAgICAgW3NldFF1ZXN0aW9uXT1cInBhZ2VRdWVzdGlvbnMkKCkgfGZpbmRRdWVzdGlvbiA6aXRlbS52YWx1ZS5pZCBcIiAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCI+XHJcbiAgICA8L2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGUgI3F1ZXN0aW9uVGV4dFRlbXBsYXRlXHJcbiAgICAgICAgKm5nSWY9XCIocGFnZVF1ZXN0aW9ucyQoKSB8ZmluZFF1ZXN0aW9uIDppdGVtLnZhbHVlLmlkKT8ucXVlc3Rpb25UeXBlID09IHF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0XCJcclxuICAgICAgICBbc2V0UXVlc3Rpb25dPVwicGFnZVF1ZXN0aW9ucyQoKSB8ZmluZFF1ZXN0aW9uIDppdGVtLnZhbHVlLmlkIFwiXHJcbiAgICAgICAgW2lzQXJhYmljTGFuZ109XCJ0cnVlXCI+PC9saWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZT5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
52
52
|
type: Inject,
|
|
53
53
|
args: [LibConfigService]
|
|
54
54
|
}] }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7OztBQWlCeEUsTUFBTSxPQUFPLFVBQVU7SUFHckIsWUFBb0IsV0FBdUIsRUFDUCxpQkFBaUM7UUFEakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDUCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQ25FLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBMkQ7UUFDekUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUF3QixHQUFHLElBQUksQ0FBQyxHQUFHLDJCQUEyQixXQUFXLEVBQUUsRUFDckcsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsa0JBQWtCLENBQUUsTUFBOEQ7UUFDaEYsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLDhCQUE4QixXQUFXLEVBQUUsRUFDM0csRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcsa0NBQWtDLEVBQ25HLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELG1DQUFtQyxDQUFDLE1BQXlFO1FBQzNHLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBNkMsR0FBRyxJQUFJLENBQUMsR0FBRywyQ0FBMkMsV0FBVyxFQUFFLEVBQzFJLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFxRDtRQUNsRSxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQWtDLEdBQUcsSUFBSSxDQUFDLEdBQUcsNkJBQTZCLFdBQVcsRUFBRSxFQUNqSCxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjLENBQUUsTUFBZ0Y7UUFDOUYsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFtQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixXQUFXLEVBQUUsRUFDbEgsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYyxDQUFFLE1BQWlGO1FBQy9GLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsV0FBVyxFQUFFLEVBQ2xILEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFpRjtRQUM5RixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcsNkJBQTZCLFdBQVcsRUFBRSxFQUNsSCxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBckRVLFVBQVUsNENBSVgsZ0JBQWdCO2tIQUpmLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpYkNvbmZpZ1NlcnZpY2UsIExpYkNvbmZpZ01vZGVsIH0gZnJvbSAnLi9saWItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IER0b0Jhc2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9iYXNlL2R0by5iYXNlJztcclxuaW1wb3J0IHsgR2V0SXNPdGhlclF1ZXN0aW9uUmVzdWx0LCBHZXROZXh0UXVlc3Rpb25SZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzdWx0cy9hcGkucmVzdWx0JztcclxuaW1wb3J0IHsgUmVzdWx0RHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvYmFzZS9yZXN1bHQuZHRvJztcclxuaW1wb3J0IHsgSW5zdGl0dXRpb25EdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9pbnN0aXR1dGlvbi5kdG8nO1xyXG5pbXBvcnQgeyBJbnN0aXR1dGlvbkJyYW5jaER0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL2luc3RpdHV0aW9uLWJyYW5jaC5kdG8nO1xyXG5pbXBvcnQgeyBJbnN0aXR1dGlvbkNvbGxhZ2VEdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9pbnN0aXR1dGlvbi1jb2xsYWdlLmR0byc7XHJcbmltcG9ydCB7IEluc3RpdHV0aW9uU2VjdGlvbkR0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL2luc3RpdHV0aW9uLXNlY3Rpb24uZHRvJztcclxuaW1wb3J0IHsgSW5zdGl0dXRpb25Qcm9ncmFtRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvaW5zdGl0dXRpb24tcHJvZ3JhbS5kdG8nO1xyXG5pbXBvcnQgeyBQcm9ncmFtc1JlbGF0ZWRUb0luc3RpdHV0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvcHJvZ3JhbXMtcmVsYXRlZC10by1pbnN0aXR1dGlvbi5kdG8nO1xyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlIHtcclxuICBwcml2YXRlIHVybDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfSHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoTGliQ29uZmlnU2VydmljZSkgcHJpdmF0ZSBfTGliQ29uZmlnU2VydmljZTogTGliQ29uZmlnTW9kZWwpIHtcclxuICAgIHRoaXMudXJsID0gX0xpYkNvbmZpZ1NlcnZpY2UuYXBpVXJsO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV4dFF1ZXN0aW9uKGZpbHRlcjogeyBhbnN3ZXJJZCwgc3VydmV5TGFuZ3VhZ2VJZCwgYXBwbGljYW50S2V5LCBpc1ByZSB9KTogT2JzZXJ2YWJsZTxHZXROZXh0UXVlc3Rpb25SZXN1bHQ+IHtcclxuICAgIHZhciBxdWVyeVN0cmluZyA9ICQucGFyYW0oZmlsdGVyKTtcclxuICAgIHJldHVybiB0aGlzLl9IdHRwQ2xpZW50LmdldDxHZXROZXh0UXVlc3Rpb25SZXN1bHQ+KGAke3RoaXMudXJsfS9TdXJ2ZXkvR2V0TmV4dFF1ZXN0aW9uPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNPdGhlclF1ZXN0aW9uIChmaWx0ZXI6IHsgcGFyZW50UUlkICwgZ3JvdXBJZCAsIHN1cnZleUxhbmd1YWdlSWQgLCBzdXJ2ZXlLZXkgfSk6IE9ic2VydmFibGU8R2V0SXNPdGhlclF1ZXN0aW9uUmVzdWx0PiB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8R2V0SXNPdGhlclF1ZXN0aW9uUmVzdWx0PihgJHt0aGlzLnVybH0vU3VydmV5L0dldElzT3RoZXJRdWVzdGlvbj8ke3F1ZXJ5U3RyaW5nfWAsXHJcbiAgICAgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnZGlzYWJsZS1lcnJvci1hbGVydCc6ICd0cnVlJyB9KSB9KTtcclxuICB9XHJcblxyXG4gIGdldEFsbEluc3RpdHV0aW9ucyggKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8UmVzdWx0RHRvPEluc3RpdHV0aW9uRHRvPj4oYCR7dGhpcy51cmx9L0luc3RpdHV0aW9ucy9HZXRBbGxJbnN0aXR1dGlvbnNgLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxQcm9ncmFtc1JlbGF0ZWRUb0luc3RpdHV0aW9ucyhmaWx0ZXI6e3N1Ym1pc3Npb25JZDpzdHJpbmcgLGdlbmVyYXRlZElkOnN0cmluZyxyZXF1ZXN0VGltZXN0YW1wOnN0cmluZyB9ICkge1xyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJC5wYXJhbShmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxQcm9ncmFtc1JlbGF0ZWRUb0luc3RpdHV0aW9uRHRvPj4oYCR7dGhpcy51cmx9L0luc3RpdHV0aW9ucy9HZXRQcm9ncmFtc0Zvckluc3RpdHV0aW9uPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQnJhbmNoZXMoZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxyZXF1ZXN0VGltZXN0YW1wOnN0cmluZ30gKSB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8UmVzdWx0RHRvPEluc3RpdHV0aW9uQnJhbmNoRHRvPj4oYCR7dGhpcy51cmx9L0luc3RpdHV0aW9ucy9HZXRCcmFuY2hlcz8ke3F1ZXJ5U3RyaW5nfWAsXHJcbiAgICAgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnZGlzYWJsZS1lcnJvci1hbGVydCc6ICd0cnVlJyB9KSB9KTtcclxuICB9XHJcblxyXG4gIGdldEFsbENvbGxhZ2VzKCBmaWx0ZXI6e3N1Ym1pc3Npb25JZDpzdHJpbmcgLGJyYW5jaFN1Ym1pc3Npb25JZDpzdHJpbmcscmVxdWVzdFRpbWVzdGFtcDpzdHJpbmcgfSkge1xyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJC5wYXJhbShmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvbkNvbGxhZ2VEdG8+PihgJHt0aGlzLnVybH0vSW5zdGl0dXRpb25zL0dldENvbGxhZ2VzPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU2VjdGlvbnMoIGZpbHRlcjp7c3VibWlzc2lvbklkOnN0cmluZyAsY29sbGFnZVN1Ym1pc3Npb25JZDpzdHJpbmcscmVxdWVzdFRpbWVzdGFtcDpzdHJpbmcgfSkge1xyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJC5wYXJhbShmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvblNlY3Rpb25EdG8+PihgJHt0aGlzLnVybH0vSW5zdGl0dXRpb25zL0dldFNlY3Rpb25zPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsUHJvZ3JhbXMoZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxzZWN0aW9uR2VuZXJhdGVkS2V5OnN0cmluZyxyZXF1ZXN0VGltZXN0YW1wOnN0cmluZyB9ICkge1xyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJC5wYXJhbShmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvblByb2dyYW1EdG8+PihgJHt0aGlzLnVybH0vSW5zdGl0dXRpb25zL0dldFByb2dyYW1zPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|