survery-lib 2.1.12 → 2.1.14

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.
@@ -4,7 +4,6 @@ import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
4
  import { questionSelectors } from '../../core/states/survey-store/question.selector';
5
5
  import { surveyActions } from '../../core/states/survey-store/survey.action';
6
6
  import { distinctUntilChanged, take } from 'rxjs';
7
- import { SurveyLanguageEnum } from '../../../shared/enums/survey-language.enum';
8
7
  import { surveySelectors } from '../../core/states/survey-store/survey.selector';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "@ngrx/store";
@@ -46,19 +45,15 @@ export class QuestionInstitutionsTemplateComponent {
46
45
  this.institutionsQuestion = null;
47
46
  this.pageQuestions$ = this._Store.selectSignal(questionSelectors.pageQuestions);
48
47
  this.institutionsArr$ = this._Store.selectSignal(surveySelectors.institutionArr);
48
+ this.isArabicLang = false;
49
49
  this.institutionsQuestionArr = computed(() => {
50
50
  return this.institutionsArr$().map(x => {
51
51
  return {
52
52
  id: x.submissionId,
53
- name: this.surveyLanguageId == SurveyLanguageEnum.Arabic ? x.institutionNameArabic : x.institutionNameEnglish
53
+ name: this.isArabicLang == true ? x.institutionNameArabic : x.institutionNameEnglish
54
54
  };
55
55
  });
56
56
  });
57
- this.pageId = null;
58
- this.questionGroupId = null;
59
- this.isPre = false;
60
- this.surveyLanguageId = null;
61
- this.applicantKey = null;
62
57
  this.rForm = this._formBuilder.group({
63
58
  id: new FormControl(null),
64
59
  title: new FormControl(null),
@@ -182,7 +177,7 @@ export class QuestionInstitutionsTemplateComponent {
182
177
  group.controls.answers.setValue(res.responseDetails.map(x => {
183
178
  return {
184
179
  id: x.branchSubmissionId,
185
- name: this.surveyLanguageId == SurveyLanguageEnum.Arabic ? x.branchNameInArabic : x.branchNameInEnglish
180
+ name: this.isArabicLang == true ? x.branchNameInArabic : x.branchNameInEnglish
186
181
  };
187
182
  }));
188
183
  });
@@ -192,7 +187,7 @@ export class QuestionInstitutionsTemplateComponent {
192
187
  group.controls.answers.setValue(res.responseDetails.map(x => {
193
188
  return {
194
189
  id: x.collageSubmissionId,
195
- name: this.surveyLanguageId == SurveyLanguageEnum.Arabic ? x.collageNameInArabic : x.collageNameInEnglish
190
+ name: this.isArabicLang == true ? x.collageNameInArabic : x.collageNameInEnglish
196
191
  };
197
192
  }));
198
193
  });
@@ -202,7 +197,7 @@ export class QuestionInstitutionsTemplateComponent {
202
197
  group.controls.answers.setValue(res.responseDetails.map(x => {
203
198
  return {
204
199
  id: x.sectionSubmissionId,
205
- name: this.surveyLanguageId == SurveyLanguageEnum.Arabic ? x.sectionNameInArabic : x.sectionNameInEnglish
200
+ name: this.isArabicLang == true ? x.sectionNameInArabic : x.sectionNameInEnglish
206
201
  };
207
202
  }));
208
203
  });
@@ -212,7 +207,7 @@ export class QuestionInstitutionsTemplateComponent {
212
207
  group.controls.answers.setValue(res.responseDetails.map(x => {
213
208
  return {
214
209
  id: x.generatedId,
215
- name: this.surveyLanguageId == SurveyLanguageEnum.Arabic ? x.programNameArabic : x.programNameEnglish
210
+ name: this.isArabicLang == true ? x.programNameArabic : x.programNameEnglish
216
211
  };
217
212
  }));
218
213
  });
@@ -231,22 +226,14 @@ export class QuestionInstitutionsTemplateComponent {
231
226
  });
232
227
  }
233
228
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionInstitutionsTemplateComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }, { token: i3.ApiService }], target: i0.ɵɵFactoryTarget.Component }); }
234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionInstitutionsTemplateComponent, selector: "lib-question-institutions-template", inputs: { pageId: "pageId", questionGroupId: "questionGroupId", isPre: "isPre", surveyLanguageId: "surveyLanguageId", applicantKey: "applicantKey", setQuestion: "setQuestion" }, ngImport: i0, template: "<div class=\"quastion\">\n <h3 class=\"quastion-title mb-2\">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n </h3>\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"item.value.title\"></span>\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\n [multiple]=\"false\">\n </ng-select>\n </div>\n </div>\n\n </ng-container>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: QuestionInstitutionsTemplateComponent, selector: "lib-question-institutions-template", inputs: { isArabicLang: "isArabicLang", setQuestion: "setQuestion" }, ngImport: i0, template: "<div class=\"quastion\">\n <h3 class=\"quastion-title mb-2\">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n </h3>\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"item.value.title\"></span>\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\n [multiple]=\"false\">\n </ng-select>\n </div>\n </div>\n\n </ng-container>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
235
230
  }
236
231
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: QuestionInstitutionsTemplateComponent, decorators: [{
237
232
  type: Component,
238
233
  args: [{ selector: 'lib-question-institutions-template', template: "<div class=\"quastion\">\n <h3 class=\"quastion-title mb-2\">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n </h3>\n <ng-container *ngFor=\"let item of questionFormArray.controls; trackBy:identify ; let i = index\">\n <div class=\"quastion\" [attr.id]=\"'question_'+item.value.id\"\n *ngIf=\"item.value.level == 1 || ( item.value.level > 1 && item.value.answers.length > 0 )\"\n [ngClass]=\"{'invalid-question': item.controls.answerId.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"item.value.title\"></span>\n <span style=\"color: red;\" *ngIf=\"fCtrls.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"item.value.level ==1 ? institutionsQuestionArr() : item.value.answers\" bindValue=\"id\" bindLabel=\"name\" class=\"form-control\"\n [formControl]=\"item.controls.answerId\" [virtualScroll]=\"true\" [disabled]=\"fCtrls.isDisabled.value\" (change)=\"onUpdateAnswer($event,i)\"\n [multiple]=\"false\">\n </ng-select>\n </div>\n </div>\n\n </ng-container>\n</div>\n\n" }]
239
- }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.FormBuilder }, { type: i3.ApiService }]; }, propDecorators: { pageId: [{
240
- type: Input
241
- }], questionGroupId: [{
242
- type: Input
243
- }], isPre: [{
244
- type: Input
245
- }], surveyLanguageId: [{
246
- type: Input
247
- }], applicantKey: [{
234
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.FormBuilder }, { type: i3.ApiService }]; }, propDecorators: { isArabicLang: [{
248
235
  type: Input
249
236
  }], setQuestion: [{
250
237
  type: Input
251
238
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBT3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUk3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQVksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQU9qRixNQUFNLE9BQU8scUNBQXFDO0lBT2hELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8s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LEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGNvbXB1dGVkLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IHF1ZXN0aW9uU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3F1ZXN0aW9uLnNlbGVjdG9yJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgUXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZSxcbiAgUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2Vcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1JbnN0aXR1dGlvbnMtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25OZ3J4TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eSc7XG5pbXBvcnQgeyBzdXJ2ZXlBY3Rpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5hY3Rpb24nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFN1cnZleVN1YlF1ZXN0aW9uTGV2ZWxEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktc3ViLXF1ZXN0aW9uLWxldmVsLmR0byc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHBhaXJ3aXNlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdXJ2ZXlMYW5ndWFnZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvc3VydmV5LWxhbmd1YWdlLmVudW0nO1xuaW1wb3J0IHsgc3VydmV5U2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS9zdGF0ZXMvc3VydmV5LXN0b3JlL3N1cnZleS5zZWxlY3Rvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaW5zdGl0dXRpb25zUXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvID0gbnVsbDtcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT47XG4gIHBhZ2VRdWVzdGlvbnMkID0gdGhpcy5fU3RvcmUuc2VsZWN0U2lnbmFsKHF1ZXN0aW9uU2VsZWN0b3JzLnBhZ2VRdWVzdGlvbnMpO1xuICBpbnN0aXR1dGlvbnNBcnIkID0gdGhpcy5fU3RvcmUuc2VsZWN0U2lnbmFsKHN1cnZleVNlbGVjdG9ycy5pbnN0aXR1dGlvbkFycik7XG5cblxuICBnZXQgZkN0cmxzKCkge1xuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XG4gIH1cblxuICBnZXQgcXVlc3Rpb25Gb3JtQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyXG4gIH1cblxuICBpbnN0aXR1dGlvbnNRdWVzdGlvbkFyciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbnN0aXR1dGlvbnNBcnIkKCkubWFwKHggPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHguc3VibWlzc2lvbklkLFxuICAgICAgICBuYW1lOiB0aGlzLnN1cnZleUxhbmd1YWdlSWQgPT0gU3VydmV5TGFuZ3VhZ2VFbnVtLkFyYWJpYyA/IHguaW5zdGl0dXRpb25OYW1lQXJhYmljIDogeC5pbnN0aXR1dGlvbk5hbWVFbmdsaXNoXG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIEBJbnB1dCgpIHBhZ2VJZDogbnVtYmVyID0gbnVsbDtcbiAgQElucHV0KCkgcXVlc3Rpb25Hcm91cElkOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBpc1ByZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdXJ2ZXlMYW5ndWFnZUlkOiBTdXJ2ZXlMYW5ndWFnZUVudW0gPSBudWxsO1xuICBASW5wdXQoKSBhcHBsaWNhbnRLZXk6IHN0cmluZyA9IG51bGw7XG5cbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBRdWVzdGlvbk5ncnhNb2RlbCkge1xuICAgIGlmICh0aGlzLmluc3RpdHV0aW9uc1F1ZXN0aW9uID09IG51bGwpIHtcbiAgICAgIHRoaXMuaW5zdGl0dXRpb25zUXVlc3Rpb24gPSB2YWx1ZS5xdWVzdGlvbkFsbEluZm87XG5cbiAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgICB0aXRsZTogIHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5xdWVzdGlvblRpdGxlICAsXG4gICAgICAgIG1heExldmVsVmFsdWU6IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5tYXhMZXZlbFZhbHVlLFxuICAgICAgICBpc1JlcXVpcmVkOiB2YWx1ZS5pc1JlcXVpcmVkLFxuICAgICAgICBpc0Rpc2FibGVkOiB2YWx1ZS5pc0Rpc2FibGVkLFxuICAgICAgICBpc1Nob3c6IHZhbHVlLmlzU2hvd1xuICAgICAgfSk7XG5cbiAgICAgIHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlTdWJRdWVzdGlvbkxldmVscy5mb3JFYWNoKHN1cnZleVN1YlF1ZXN0aW9uTGV2ZWwgPT4ge1xuXG4gICAgICAgIHZhciBxdWVzdGlvbiA9IHRoaXMucGFnZVF1ZXN0aW9ucyQoKS5maW5kKHggPT4geC5xdWVzdGlvbklkID09IHZhbHVlLnF1ZXN0aW9uSWQpO1xuICAgICAgICB0aGlzLnNldFF1ZXN0aW9uRm9ybUdyb3VwKHN1cnZleVN1YlF1ZXN0aW9uTGV2ZWwsIHF1ZXN0aW9uPy5pc1JlcXVpcmVkLCBxdWVzdGlvbj8uYW5zd2VySWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfU3RvcmU6IFN0b3JlLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX0FwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICB0aXRsZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgbWF4TGV2ZWxWYWx1ZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgaXNEaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGlzU2hvdzogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGlzUmVxdWlyZWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGluc3RpdHV0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGJyYW5jaElkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICBjb2xsYWdlSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIHNlY3Rpb25JZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgcXVlc3Rpb25BcnI6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPj4oW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFycigpKTtcbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2VyKG1vZGVsOiB7IGlkOiBudW1iZXIsIG5hbWU6IHN0cmluZyB9LCBncm91cEluZGV4OiBudW1iZXIpIHtcbiAgICB2YXIgZ3JvdXAgPXRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KGdyb3VwSW5kZXgpO1xuICAgIGdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgYW5zd2VySWQ6IG1vZGVsLmlkLFxuICAgICAgYW5zd2VyVmFsdWU6IG1vZGVsLm5hbWVcbiAgICB9KTtcblxuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlSW5zdGl0dXRpb25RdWVzdGlvbkFuc3dlcih7XG4gICAgICBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCxcbiAgICAgIGFuc3dlcklkOiBncm91cC52YWx1ZS5hbnN3ZXJJZCxcbiAgICAgIGFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyVmFsdWUsXG4gICAgICBpc1ZhbGlkOiBncm91cC5jb250cm9scy5hbnN3ZXJJZC52YWxpZCxcbiAgICAgIGFuc3dlckxldmVsSWQ6IGdyb3VwLnZhbHVlLmxldmVsQW5zd2VySWQsXG4gICAgfSkpO1xuICB9XG5cbiAgaWRlbnRpZnkoaW5kZXgsIGl0ZW06IEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPikge1xuICAgIHJldHVybiBpdGVtLnZhbHVlLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRRdWVzdGlvbkZvcm1Hcm91cCh2YWx1ZTogU3VydmV5U3ViUXVlc3Rpb25MZXZlbER0bywgaXNScXVpcmVkOiBib29sZWFuLCBhbnN3ZXJJZDogbnVtYmVyKSB7XG4gICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbklkKSxcbiAgICAgIHR5cGVJZDogbmV3IEZvcm1Db250cm9sKHZhbHVlLnF1ZXN0aW9uVHlwZUlkKSxcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbk5hbWUpLFxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uKSxcbiAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wodmFsdWUucXVlc3Rpb25UaXRsZSksXG4gICAgICBsZXZlbDogbmV3IEZvcm1Db250cm9sKHZhbHVlLmxldmVsKSxcbiAgICAgIGxldmVsQW5zd2VySWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5sZXZlbEFuc3dlci5hbnN3ZXJJZCksXG4gICAgICBhbnN3ZXJJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgYW5zd2VyVmFsdWU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGFuc3dlcnM6IG5ldyBGb3JtQ29udHJvbChbXSksXG4gICAgfSk7XG5cbiAgICBpZiAoaXNScXVpcmVkID09IHRydWUpIHtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBncm91cC5jb250cm9scy5hbnN3ZXJJZC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoYW5zd2VySWQgPT4ge1xuICAgICAgaWYgKGFuc3dlcklkKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZXZlbCA9PSAxKSB7XG4gICAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGluc3RpdHV0aW9uSWQ6IGFuc3dlcklkLFxuICAgICAgICAgICAgYnJhbmNoSWQ6IG51bGwsXG4gICAgICAgICAgICBjb2xsYWdlSWQ6IG51bGwsXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IG51bGxcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUubGV2ZWwgPT0gMikge1xuICAgICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBicmFuY2hJZDogYW5zd2VySWQsXG4gICAgICAgICAgICBjb2xsYWdlSWQ6IG51bGwsXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IG51bGxcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUubGV2ZWwgPT0gMykge1xuICAgICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBjb2xsYWdlSWQ6IGFuc3dlcklkLFxuICAgICAgICAgICAgc2VjdGlvbklkOiBudWxsXG4gICAgICAgICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlLmxldmVsID09IDQpIHtcbiAgICAgICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgc2VjdGlvbklkOiBhbnN3ZXJJZFxuICAgICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxldmVsID0gZ3JvdXAudmFsdWUubGV2ZWw7XG4gICAgICAgIHRoaXMucmVzZXRBbnN3ZXJzT2ZGb3JtR3JvdXBpbkhpZ2hlckxldmVsKGxldmVsKTtcblxuICAgICAgICB2YXIgbmV4dEdyb3VwSW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5maW5kSW5kZXgoeCA9PiB4LnZhbHVlLmxldmVsID09IGxldmVsICsgMSk7XG4gICAgICAgIGlmIChuZXh0R3JvdXBJbmRleCkge1xuICAgICAgICAgIHRoaXMuZmlsbFF1ZXN0aW9uQW5zd2VycyhuZXh0R3JvdXBJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwSW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5maW5kSW5kZXgoeCA9PiB4LnZhbHVlLmxldmVsID09IGdyb3VwLnZhbHVlLmxldmVsKTtcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnIuYXQoZ3JvdXBJbmRleCk7XG5cbiAgICAgIGlmIChxdWVzdGlvbkdyb3VwKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZkN0cmxzLmlzUmVxdWlyZWQudmFsdWUgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJJZC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblJlcXVpcmVkKHsgcXVlc3Rpb25JZDogZ3JvdXAudmFsdWUuaWQsIGlzUmVxdWlyZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyVmFsdWUuY2xlYXJWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uUmVxdWlyZWQoeyBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCwgaXNSZXF1aXJlZDogZmFsc2UgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJJZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyVmFsdWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICBpZiAoYW5zd2VySWQpIHtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnNldFZhbHVlKGFuc3dlcklkKTtcbiAgICB9XG5cbiAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5wdXNoKGdyb3VwKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFF1ZXN0aW9uQW5zd2VycyhuZXh0R3JvdXBJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICB2YXIgZ3JvdXAgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5hdChuZXh0R3JvdXBJbmRleCk7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPT0gMikge1xuICAgICAgICB0aGlzLl9BcGlTZXJ2aWNlLmdldEFsbEJyYW5jaGVzKHsgc3VibWlzc2lvbklkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25JZCB9KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMuc2V0VmFsdWUocmVzLnJlc3BvbnNlRGV0YWlscy5tYXAoeCA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBpZDogeC5icmFuY2hTdWJtaXNzaW9uSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuc3VydmV5TGFuZ3VhZ2VJZCA9PSBTdXJ2ZXlMYW5ndWFnZUVudW0uQXJhYmljID8geC5icmFuY2hOYW1lSW5BcmFiaWMgOiB4LmJyYW5jaE5hbWVJbkVuZ2xpc2hcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPT0gMykge1xuICAgICAgICB0aGlzLl9BcGlTZXJ2aWNlLmdldEFsbENvbGxhZ2VzKHsgc3VibWlzc2lvbklkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25JZCwgYnJhbmNoU3VibWlzc2lvbklkOiBmb3JtVmFsdWUuYnJhbmNoSWQgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguY29sbGFnZVN1Ym1pc3Npb25JZCxcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5zdXJ2ZXlMYW5ndWFnZUlkID09IFN1cnZleUxhbmd1YWdlRW51bS5BcmFiaWMgPyB4LmNvbGxhZ2VOYW1lSW5BcmFiaWMgOiB4LmNvbGxhZ2VOYW1lSW5FbmdsaXNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGdyb3VwLnZhbHVlLmxldmVsID09IDQpIHtcbiAgICAgICAgdGhpcy5fQXBpU2VydmljZS5nZXRBbGxTZWN0aW9ucyh7IHN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmluc3RpdHV0aW9uSWQsIGNvbGxhZ2VTdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5jb2xsYWdlSWQgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguc2VjdGlvblN1Ym1pc3Npb25JZCxcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5zdXJ2ZXlMYW5ndWFnZUlkID09IFN1cnZleUxhbmd1YWdlRW51bS5BcmFiaWMgPyB4LnNlY3Rpb25OYW1lSW5BcmFiaWMgOiB4LnNlY3Rpb25OYW1lSW5FbmdsaXNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGdyb3VwLnZhbHVlLmxldmVsID09IDUpIHtcbiAgICAgICAgdGhpcy5fQXBpU2VydmljZS5nZXRBbGxQcm9ncmFtcyh7IHN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmluc3RpdHV0aW9uSWQsIHNlY3Rpb25HZW5lcmF0ZWRLZXk6IGZvcm1WYWx1ZS5zZWN0aW9uSWQgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguZ2VuZXJhdGVkSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuc3VydmV5TGFuZ3VhZ2VJZCA9PSBTdXJ2ZXlMYW5ndWFnZUVudW0uQXJhYmljID8geC5wcm9ncmFtTmFtZUFyYWJpYyA6IHgucHJvZ3JhbU5hbWVFbmdsaXNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0QW5zd2Vyc09mRm9ybUdyb3VwaW5IaWdoZXJMZXZlbChsZXZlbDogbnVtYmVyKSB7XG4gICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnIuY29udHJvbHMuZm9yRWFjaCgoZ3JvdXA6IEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPikgPT4ge1xuICAgICAgaWYgKGdyb3VwLnZhbHVlLmxldmVsID4gbGV2ZWwpIHtcbiAgICAgICAgZ3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgYW5zd2VySWQ6IG51bGwsXG4gICAgICAgICAgYW5zd2VyVmFsdWU6IG51bGwsXG4gICAgICAgICAgYW5zd2VyczogW11cbiAgICAgICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCI+XG4gIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIG1iLTJcIj5cbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImZDdHJscy50aXRsZS52YWx1ZVwiPjwvc3Bhbj5cbiAgPC9oMz5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbkZvcm1BcnJheS5jb250cm9sczsgdHJhY2tCeTppZGVudGlmeSA7IGxldCBpID0gaW5kZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytpdGVtLnZhbHVlLmlkXCJcbiAgICAgICpuZ0lmPVwiaXRlbS52YWx1ZS5sZXZlbCA9PSAxIHx8ICggaXRlbS52YWx1ZS5sZXZlbCA+IDEgJiYgaXRlbS52YWx1ZS5hbnN3ZXJzLmxlbmd0aCA+IDAgKVwiXG4gICAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBpdGVtLmNvbnRyb2xzLmFuc3dlcklkLmludmFsaWQgICwgJ2Qtbm9uZSc6ZkN0cmxzLmlzU2hvdy52YWx1ZSAhPSB0cnVlfVwiPlxuICAgICAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiaXRlbS52YWx1ZS50aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkO1wiICpuZ0lmPVwiZkN0cmxzLmlzUmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgPC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uIHRleHQtcXVhc3Rpb25fX2Ryb3Bkb3duXCI+XG4gICAgICAgIDxuZy1zZWxlY3QgW2l0ZW1zXT1cIml0ZW0udmFsdWUubGV2ZWwgPT0xID8gaW5zdGl0dXRpb25zUXVlc3Rpb25BcnIoKSA6IGl0ZW0udmFsdWUuYW5zd2Vyc1wiIGJpbmRWYWx1ZT1cImlkXCIgYmluZExhYmVsPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaXRlbS5jb250cm9scy5hbnN3ZXJJZFwiIFt2aXJ0dWFsU2Nyb2xsXT1cInRydWVcIiBbZGlzYWJsZWRdPVwiZkN0cmxzLmlzRGlzYWJsZWQudmFsdWVcIiAoY2hhbmdlKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudCxpKVwiXG4gICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCI+XG4gICAgICAgIDwvbmctc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuIl19
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUvcXVlc3Rpb24taW5zdGl0dXRpb25zLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBT3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUk3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQVksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQU9qRixNQUFNLE9BQU8scUNBQXFDO0lBUWhELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25C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O3dCQUMxRCxPQUFPOzRCQUNMLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVzs0QkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7eUJBQzdFLENBQUE7b0JBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDTixDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sb0NBQW9DLENBQUMsS0FBYTtRQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBK0UsRUFBRSxFQUFFO1lBQzNILElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFO2dCQUM3QixLQUFLLENBQUMsVUFBVSxDQUFDO29CQUNmLFFBQVEsRUFBRSxJQUFJO29CQUNkLFdBQVcsRUFBRSxJQUFJO29CQUNqQixPQUFPLEVBQUUsRUFBRTtpQkFDWixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7OEdBaFBVLHFDQUFxQztrR0FBckMscUNBQXFDLGdKQ3hCbEQsZ3FDQXVCQTs7MkZEQ2EscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNFLG9DQUFvQzsrSUFVckMsWUFBWTtzQkFBcEIsS0FBSztnQkF1Qk8sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgcXVlc3Rpb25TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvcXVlc3Rpb24uc2VsZWN0b3InO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlLFxuICBRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZVxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLUluc3RpdHV0aW9ucy10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvbk5ncnhNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvc3RhdGVzL2VudGl0ZXMvcXVlc3Rpb24uZW50aXR5JztcbmltcG9ydCB7IHN1cnZleUFjdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvc3VydmV5LmFjdGlvbic7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgU3VydmV5U3ViUXVlc3Rpb25MZXZlbER0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1zdWItcXVlc3Rpb24tbGV2ZWwuZHRvJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcGFpcndpc2UsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1cnZleUxhbmd1YWdlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9zdXJ2ZXktbGFuZ3VhZ2UuZW51bSc7XG5pbXBvcnQgeyBzdXJ2ZXlTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvc3VydmV5LnNlbGVjdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXF1ZXN0aW9uLWluc3RpdHV0aW9ucy10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi1pbnN0aXR1dGlvbnMtdGVtcGxhdGUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpbnN0aXR1dGlvbnNRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG8gPSBudWxsO1xuICByRm9ybTogRm9ybUdyb3VwPFF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcbiAgcGFnZVF1ZXN0aW9ucyQgPSB0aGlzLl9TdG9yZS5zZWxlY3RTaWduYWwocXVlc3Rpb25TZWxlY3RvcnMucGFnZVF1ZXN0aW9ucyk7XG4gIGluc3RpdHV0aW9uc0FyciQgPSB0aGlzLl9TdG9yZS5zZWxlY3RTaWduYWwoc3VydmV5U2VsZWN0b3JzLmluc3RpdHV0aW9uQXJyKTtcblxuICBASW5wdXQoKSBpc0FyYWJpY0xhbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgZkN0cmxzKCkge1xuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XG4gIH1cblxuICBnZXQgcXVlc3Rpb25Gb3JtQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyXG4gIH1cblxuICBpbnN0aXR1dGlvbnNRdWVzdGlvbkFyciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbnN0aXR1dGlvbnNBcnIkKCkubWFwKHggPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHguc3VibWlzc2lvbklkLFxuICAgICAgICBuYW1lOiB0aGlzLmlzQXJhYmljTGFuZyA9PSB0cnVlID8geC5pbnN0aXR1dGlvbk5hbWVBcmFiaWMgOiB4Lmluc3RpdHV0aW9uTmFtZUVuZ2xpc2hcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBRdWVzdGlvbk5ncnhNb2RlbCkge1xuICAgIGlmICh0aGlzLmluc3RpdHV0aW9uc1F1ZXN0aW9uID09IG51bGwpIHtcbiAgICAgIHRoaXMuaW5zdGl0dXRpb25zUXVlc3Rpb24gPSB2YWx1ZS5xdWVzdGlvbkFsbEluZm87XG5cbiAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgICB0aXRsZTogIHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5xdWVzdGlvblRpdGxlICAsXG4gICAgICAgIG1heExldmVsVmFsdWU6IHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5tYXhMZXZlbFZhbHVlLFxuICAgICAgICBpc1JlcXVpcmVkOiB2YWx1ZS5pc1JlcXVpcmVkLFxuICAgICAgICBpc0Rpc2FibGVkOiB2YWx1ZS5pc0Rpc2FibGVkLFxuICAgICAgICBpc1Nob3c6IHZhbHVlLmlzU2hvd1xuICAgICAgfSk7XG5cbiAgICAgIHZhbHVlLnF1ZXN0aW9uQWxsSW5mby5zdXJ2ZXlTdWJRdWVzdGlvbkxldmVscy5mb3JFYWNoKHN1cnZleVN1YlF1ZXN0aW9uTGV2ZWwgPT4ge1xuXG4gICAgICAgIHZhciBxdWVzdGlvbiA9IHRoaXMucGFnZVF1ZXN0aW9ucyQoKS5maW5kKHggPT4geC5xdWVzdGlvbklkID09IHZhbHVlLnF1ZXN0aW9uSWQpO1xuICAgICAgICB0aGlzLnNldFF1ZXN0aW9uRm9ybUdyb3VwKHN1cnZleVN1YlF1ZXN0aW9uTGV2ZWwsIHF1ZXN0aW9uPy5pc1JlcXVpcmVkLCBxdWVzdGlvbj8uYW5zd2VySWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfU3RvcmU6IFN0b3JlLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX0FwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICB0aXRsZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgbWF4TGV2ZWxWYWx1ZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgaXNEaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGlzU2hvdzogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICAgIGlzUmVxdWlyZWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGluc3RpdHV0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGJyYW5jaElkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgICBjb2xsYWdlSWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIHNlY3Rpb25JZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgcXVlc3Rpb25BcnI6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPj4oW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLmxvYWRJbnN0aXR1dGlvbkFycigpKTtcbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2VyKG1vZGVsOiB7IGlkOiBudW1iZXIsIG5hbWU6IHN0cmluZyB9LCBncm91cEluZGV4OiBudW1iZXIpIHtcbiAgICB2YXIgZ3JvdXAgPXRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyLmF0KGdyb3VwSW5kZXgpO1xuICAgIGdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgYW5zd2VySWQ6IG1vZGVsLmlkLFxuICAgICAgYW5zd2VyVmFsdWU6IG1vZGVsLm5hbWVcbiAgICB9KTtcblxuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlSW5zdGl0dXRpb25RdWVzdGlvbkFuc3dlcih7XG4gICAgICBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCxcbiAgICAgIGFuc3dlcklkOiBncm91cC52YWx1ZS5hbnN3ZXJJZCxcbiAgICAgIGFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyVmFsdWUsXG4gICAgICBpc1ZhbGlkOiBncm91cC5jb250cm9scy5hbnN3ZXJJZC52YWxpZCxcbiAgICAgIGFuc3dlckxldmVsSWQ6IGdyb3VwLnZhbHVlLmxldmVsQW5zd2VySWQsXG4gICAgfSkpO1xuICB9XG5cbiAgaWRlbnRpZnkoaW5kZXgsIGl0ZW06IEZvcm1Hcm91cDxRdWVzdGlvbkdyb3VwQ2hpbGRPZlF1ZXN0aW9uSW5zdGl0dXRpb25zVGVtcGxhdGVGb3JtSW50ZXJmYWNlPikge1xuICAgIHJldHVybiBpdGVtLnZhbHVlLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRRdWVzdGlvbkZvcm1Hcm91cCh2YWx1ZTogU3VydmV5U3ViUXVlc3Rpb25MZXZlbER0bywgaXNScXVpcmVkOiBib29sZWFuLCBhbnN3ZXJJZDogbnVtYmVyKSB7XG4gICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25Hcm91cENoaWxkT2ZRdWVzdGlvbkluc3RpdHV0aW9uc1RlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbklkKSxcbiAgICAgIHR5cGVJZDogbmV3IEZvcm1Db250cm9sKHZhbHVlLnF1ZXN0aW9uVHlwZUlkKSxcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbk5hbWUpLFxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uKSxcbiAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wodmFsdWUucXVlc3Rpb25UaXRsZSksXG4gICAgICBsZXZlbDogbmV3IEZvcm1Db250cm9sKHZhbHVlLmxldmVsKSxcbiAgICAgIGxldmVsQW5zd2VySWQ6IG5ldyBGb3JtQ29udHJvbCh2YWx1ZS5sZXZlbEFuc3dlci5hbnN3ZXJJZCksXG4gICAgICBhbnN3ZXJJZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgYW5zd2VyVmFsdWU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgIGFuc3dlcnM6IG5ldyBGb3JtQ29udHJvbChbXSksXG4gICAgfSk7XG5cbiAgICBpZiAoaXNScXVpcmVkID09IHRydWUpIHtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBncm91cC5jb250cm9scy5hbnN3ZXJJZC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoYW5zd2VySWQgPT4ge1xuICAgICAgaWYgKGFuc3dlcklkKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZXZlbCA9PSAxKSB7XG4gICAgICAgICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGluc3RpdHV0aW9uSWQ6IGFuc3dlcklkLFxuICAgICAgICAgICAgYnJhbmNoSWQ6IG51bGwsXG4gICAgICAgICAgICBjb2xsYWdlSWQ6IG51bGwsXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IG51bGxcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUubGV2ZWwgPT0gMikge1xuICAgICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBicmFuY2hJZDogYW5zd2VySWQsXG4gICAgICAgICAgICBjb2xsYWdlSWQ6IG51bGwsXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IG51bGxcbiAgICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUubGV2ZWwgPT0gMykge1xuICAgICAgICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBjb2xsYWdlSWQ6IGFuc3dlcklkLFxuICAgICAgICAgICAgc2VjdGlvbklkOiBudWxsXG4gICAgICAgICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlLmxldmVsID09IDQpIHtcbiAgICAgICAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgc2VjdGlvbklkOiBhbnN3ZXJJZFxuICAgICAgICAgIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxldmVsID0gZ3JvdXAudmFsdWUubGV2ZWw7XG4gICAgICAgIHRoaXMucmVzZXRBbnN3ZXJzT2ZGb3JtR3JvdXBpbkhpZ2hlckxldmVsKGxldmVsKTtcblxuICAgICAgICB2YXIgbmV4dEdyb3VwSW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5maW5kSW5kZXgoeCA9PiB4LnZhbHVlLmxldmVsID09IGxldmVsICsgMSk7XG4gICAgICAgIGlmIChuZXh0R3JvdXBJbmRleCkge1xuICAgICAgICAgIHRoaXMuZmlsbFF1ZXN0aW9uQW5zd2VycyhuZXh0R3JvdXBJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwSW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5maW5kSW5kZXgoeCA9PiB4LnZhbHVlLmxldmVsID09IGdyb3VwLnZhbHVlLmxldmVsKTtcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnIuYXQoZ3JvdXBJbmRleCk7XG5cbiAgICAgIGlmIChxdWVzdGlvbkdyb3VwKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZkN0cmxzLmlzUmVxdWlyZWQudmFsdWUgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJJZC5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlclZhbHVlLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvblJlcXVpcmVkKHsgcXVlc3Rpb25JZDogZ3JvdXAudmFsdWUuaWQsIGlzUmVxdWlyZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyVmFsdWUuY2xlYXJWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uUmVxdWlyZWQoeyBxdWVzdGlvbklkOiBncm91cC52YWx1ZS5pZCwgaXNSZXF1aXJlZDogZmFsc2UgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXJJZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyVmFsdWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICBpZiAoYW5zd2VySWQpIHtcbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcklkLnNldFZhbHVlKGFuc3dlcklkKTtcbiAgICB9XG5cbiAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5wdXNoKGdyb3VwKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFF1ZXN0aW9uQW5zd2VycyhuZXh0R3JvdXBJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICB2YXIgZ3JvdXAgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5hdChuZXh0R3JvdXBJbmRleCk7XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPT0gMikge1xuICAgICAgICB0aGlzLl9BcGlTZXJ2aWNlLmdldEFsbEJyYW5jaGVzKHsgc3VibWlzc2lvbklkOiBmb3JtVmFsdWUuaW5zdGl0dXRpb25JZCB9KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMuc2V0VmFsdWUocmVzLnJlc3BvbnNlRGV0YWlscy5tYXAoeCA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBpZDogeC5icmFuY2hTdWJtaXNzaW9uSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LmJyYW5jaE5hbWVJbkFyYWJpYyA6IHguYnJhbmNoTmFtZUluRW5nbGlzaFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChncm91cC52YWx1ZS5sZXZlbCA9PSAzKSB7XG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsQ29sbGFnZXMoeyBzdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5pbnN0aXR1dGlvbklkLCBicmFuY2hTdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5icmFuY2hJZCB9KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlcnMuc2V0VmFsdWUocmVzLnJlc3BvbnNlRGV0YWlscy5tYXAoeCA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBpZDogeC5jb2xsYWdlU3VibWlzc2lvbklkLFxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmlzQXJhYmljTGFuZyA9PSB0cnVlID8geC5jb2xsYWdlTmFtZUluQXJhYmljIDogeC5jb2xsYWdlTmFtZUluRW5nbGlzaFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChncm91cC52YWx1ZS5sZXZlbCA9PSA0KSB7XG4gICAgICAgIHRoaXMuX0FwaVNlcnZpY2UuZ2V0QWxsU2VjdGlvbnMoeyBzdWJtaXNzaW9uSWQ6IGZvcm1WYWx1ZS5pbnN0aXR1dGlvbklkLCBjb2xsYWdlU3VibWlzc2lvbklkOiBmb3JtVmFsdWUuY29sbGFnZUlkIH0pLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2Vycy5zZXRWYWx1ZShyZXMucmVzcG9uc2VEZXRhaWxzLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB4LnNlY3Rpb25TdWJtaXNzaW9uSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LnNlY3Rpb25OYW1lSW5BcmFiaWMgOiB4LnNlY3Rpb25OYW1lSW5FbmdsaXNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGdyb3VwLnZhbHVlLmxldmVsID09IDUpIHtcbiAgICAgICAgdGhpcy5fQXBpU2VydmljZS5nZXRBbGxQcm9ncmFtcyh7IHN1Ym1pc3Npb25JZDogZm9ybVZhbHVlLmluc3RpdHV0aW9uSWQsIHNlY3Rpb25HZW5lcmF0ZWRLZXk6IGZvcm1WYWx1ZS5zZWN0aW9uSWQgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXJzLnNldFZhbHVlKHJlcy5yZXNwb25zZURldGFpbHMubWFwKHggPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguZ2VuZXJhdGVkSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuaXNBcmFiaWNMYW5nID09IHRydWUgPyB4LnByb2dyYW1OYW1lQXJhYmljIDogeC5wcm9ncmFtTmFtZUVuZ2xpc2hcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRBbnN3ZXJzT2ZGb3JtR3JvdXBpbkhpZ2hlckxldmVsKGxldmVsOiBudW1iZXIpIHtcbiAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFyci5jb250cm9scy5mb3JFYWNoKChncm91cDogRm9ybUdyb3VwPFF1ZXN0aW9uR3JvdXBDaGlsZE9mUXVlc3Rpb25JbnN0aXR1dGlvbnNUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KSA9PiB7XG4gICAgICBpZiAoZ3JvdXAudmFsdWUubGV2ZWwgPiBsZXZlbCkge1xuICAgICAgICBncm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcbiAgICAgICAgICBhbnN3ZXJWYWx1ZTogbnVsbCxcbiAgICAgICAgICBhbnN3ZXJzOiBbXVxuICAgICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicXVhc3Rpb25cIj5cbiAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgbWItMlwiPlxuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZkN0cmxzLnRpdGxlLnZhbHVlXCI+PC9zcGFuPlxuICA8L2gzPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uRm9ybUFycmF5LmNvbnRyb2xzOyB0cmFja0J5OmlkZW50aWZ5IDsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2l0ZW0udmFsdWUuaWRcIlxuICAgICAgKm5nSWY9XCJpdGVtLnZhbHVlLmxldmVsID09IDEgfHwgKCBpdGVtLnZhbHVlLmxldmVsID4gMSAmJiBpdGVtLnZhbHVlLmFuc3dlcnMubGVuZ3RoID4gMCApXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGl0ZW0uY29udHJvbHMuYW5zd2VySWQuaW52YWxpZCAgLCAnZC1ub25lJzpmQ3RybHMuaXNTaG93LnZhbHVlICE9IHRydWV9XCI+XG4gICAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJpdGVtLnZhbHVlLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCIgKm5nSWY9XCJmQ3RybHMuaXNSZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICA8L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtcXVhc3Rpb24gdGV4dC1xdWFzdGlvbl9fZHJvcGRvd25cIj5cbiAgICAgICAgPG5nLXNlbGVjdCBbaXRlbXNdPVwiaXRlbS52YWx1ZS5sZXZlbCA9PTEgPyBpbnN0aXR1dGlvbnNRdWVzdGlvbkFycigpIDogaXRlbS52YWx1ZS5hbnN3ZXJzXCIgYmluZFZhbHVlPVwiaWRcIiBiaW5kTGFiZWw9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpdGVtLmNvbnRyb2xzLmFuc3dlcklkXCIgW3ZpcnR1YWxTY3JvbGxdPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJmQ3RybHMuaXNEaXNhYmxlZC52YWx1ZVwiIChjaGFuZ2UpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50LGkpXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9uZy1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG4iXX0=
@@ -1,23 +1,38 @@
1
1
  import { createFeatureSelector, createSelector } from "@ngrx/store";
2
2
  import { questionAdapter } from "../entites/question.entity";
3
+ import { QuestionTypeEnum } from "../../../../shared/enums/question-type.enum";
3
4
  const { selectAll, selectIds } = questionAdapter.getSelectors();
4
5
  const selectSurveyData = createFeatureSelector('survey-lib');
5
6
  const allQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr));
6
7
  const pageQuestions = createSelector(selectSurveyData, (state) => selectAll(state.questionArr).filter(x => x.surveyPageId == state.selectedPageId));
7
- const questionAnswers = createSelector(selectSurveyData, (state) => selectAll(state.questionArr).filter(x => x.isQuestionGroup != true).map(x => {
8
- return {
9
- SurveyPageIndex: x.surveyPageId,
10
- QuestionId: x.questionId,
11
- QuestionType: x.questionType,
12
- AnswerId: x.answerId,
13
- AnswerText: x.answerText,
14
- AnswerIdArr: x.answerIdArr,
15
- AnswerLevelId: x.answerLevelId
16
- };
8
+ const questionAnswers = createSelector(selectSurveyData, (state) => selectAll(state.questionArr)
9
+ .filter(x => x.isQuestionGroup != true).map(x => {
10
+ if (x.questionType == QuestionTypeEnum.Institutions) {
11
+ return {
12
+ SurveyPageIndex: x.surveyPageId,
13
+ QuestionId: x.questionId,
14
+ QuestionType: x.questionType,
15
+ AnswerId: x.answerLevelId,
16
+ AnswerText: x.answerText,
17
+ AnswerIdArr: x.answerIdArr,
18
+ AnswerLevelId: x.answerId
19
+ };
20
+ }
21
+ else {
22
+ return {
23
+ SurveyPageIndex: x.surveyPageId,
24
+ QuestionId: x.questionId,
25
+ QuestionType: x.questionType,
26
+ AnswerId: x.answerId,
27
+ AnswerText: x.answerText,
28
+ AnswerIdArr: x.answerIdArr,
29
+ AnswerLevelId: x.answerLevelId
30
+ };
31
+ }
17
32
  }));
18
33
  export const questionSelectors = {
19
34
  allQuestions,
20
35
  pageQuestions,
21
36
  questionAnswers
22
37
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUk3RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUdoRSxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFjLFlBQVksQ0FBQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRXBKLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUM1SSxPQUFPO1FBQ0gsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQy9CLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtRQUN4QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7UUFDNUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtRQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7UUFDMUIsYUFBYSxFQUFDLENBQUMsQ0FBQyxhQUFhO0tBQ1IsQ0FBQTtBQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsWUFBWTtJQUNaLGFBQWE7SUFDYixlQUFlO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uR3JvdXBBZGFwdGVyIH0gZnJvbSBcIi4uL2VudGl0ZXMvcXVlc3Rpb24tZ3JvdXAuZW50aXR5XCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uQWRhcHRlciB9IGZyb20gXCIuLi9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eVwiO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTdGF0ZSB9IGZyb20gXCIuL3N1cnZleS5yZWR1Y2VyXCI7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uUmVzdWx0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvc3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWxcIjtcclxuXHJcbmNvbnN0IHsgc2VsZWN0QWxsLCBzZWxlY3RJZHMgfSA9IHF1ZXN0aW9uQWRhcHRlci5nZXRTZWxlY3RvcnMoKTtcclxuXHJcblxyXG5jb25zdCBzZWxlY3RTdXJ2ZXlEYXRhID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPFN1cnZleVN0YXRlPignc3VydmV5LWxpYicpO1xyXG5cclxuY29uc3QgYWxsUXVlc3Rpb25zID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3VydmV5RGF0YSwgKHN0YXRlKSA9PiBzZWxlY3RBbGwoc3RhdGUucXVlc3Rpb25BcnIpKTtcclxuXHJcbmNvbnN0IHBhZ2VRdWVzdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdXJ2ZXlEYXRhLCAoc3RhdGUpID0+IHNlbGVjdEFsbChzdGF0ZS5xdWVzdGlvbkFycikuZmlsdGVyKHggPT4geC5zdXJ2ZXlQYWdlSWQgPT0gc3RhdGUuc2VsZWN0ZWRQYWdlSWQpKTtcclxuXHJcbmNvbnN0IHF1ZXN0aW9uQW5zd2VycyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN1cnZleURhdGEsIChzdGF0ZSkgPT4gc2VsZWN0QWxsKHN0YXRlLnF1ZXN0aW9uQXJyKS5maWx0ZXIoeCA9PiB4LmlzUXVlc3Rpb25Hcm91cCAhPSB0cnVlKS5tYXAoeCA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSWQsXHJcbiAgICAgICAgUXVlc3Rpb25JZDogeC5xdWVzdGlvbklkLFxyXG4gICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXHJcbiAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VySWQsXHJcbiAgICAgICAgQW5zd2VyVGV4dDogeC5hbnN3ZXJUZXh0LFxyXG4gICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyICxcclxuICAgICAgICBBbnN3ZXJMZXZlbElkOnguYW5zd2VyTGV2ZWxJZCBcclxuICAgIH0gYXMgU3VydmV5UXVlc3Rpb25SZXN1bHRcclxufSkpXHJcblxyXG5leHBvcnQgY29uc3QgcXVlc3Rpb25TZWxlY3RvcnMgPSB7XHJcbiAgICBhbGxRdWVzdGlvbnMsXHJcbiAgICBwYWdlUXVlc3Rpb25zICxcclxuICAgIHF1ZXN0aW9uQW5zd2Vyc1xyXG59Il19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvcmUvc3RhdGVzL3N1cnZleS1zdG9yZS9xdWVzdGlvbi5zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUvRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUdoRSxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFjLFlBQVksQ0FBQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRXBKLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7S0FDL0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDNUMsSUFBRyxDQUFDLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBQztRQUMvQyxPQUFPO1lBQ0gsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZO1lBQy9CLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDNUIsUUFBUSxFQUFDLENBQUMsQ0FBQyxhQUFhO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7WUFDMUIsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRO1NBQ0osQ0FBQTtLQUM1QjtTQUFJO1FBQ0QsT0FBTztZQUNILGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWTtZQUMvQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7WUFDeEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO1lBQzVCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7WUFDeEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQzFCLGFBQWEsRUFBQyxDQUFDLENBQUMsYUFBYTtTQUNSLENBQUE7S0FDNUI7QUFFTCxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsWUFBWTtJQUNaLGFBQWE7SUFDYixlQUFlO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uR3JvdXBBZGFwdGVyIH0gZnJvbSBcIi4uL2VudGl0ZXMvcXVlc3Rpb24tZ3JvdXAuZW50aXR5XCI7XHJcbmltcG9ydCB7IHF1ZXN0aW9uQWRhcHRlciB9IGZyb20gXCIuLi9lbnRpdGVzL3F1ZXN0aW9uLmVudGl0eVwiO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTdGF0ZSB9IGZyb20gXCIuL3N1cnZleS5yZWR1Y2VyXCI7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uUmVzdWx0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvc3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWxcIjtcclxuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtXCI7XHJcblxyXG5jb25zdCB7IHNlbGVjdEFsbCwgc2VsZWN0SWRzIH0gPSBxdWVzdGlvbkFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCk7XHJcblxyXG5cclxuY29uc3Qgc2VsZWN0U3VydmV5RGF0YSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxTdXJ2ZXlTdGF0ZT4oJ3N1cnZleS1saWInKTtcclxuXHJcbmNvbnN0IGFsbFF1ZXN0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN1cnZleURhdGEsIChzdGF0ZSkgPT4gc2VsZWN0QWxsKHN0YXRlLnF1ZXN0aW9uQXJyKSk7XHJcblxyXG5jb25zdCBwYWdlUXVlc3Rpb25zID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3VydmV5RGF0YSwgKHN0YXRlKSA9PiBzZWxlY3RBbGwoc3RhdGUucXVlc3Rpb25BcnIpLmZpbHRlcih4ID0+IHguc3VydmV5UGFnZUlkID09IHN0YXRlLnNlbGVjdGVkUGFnZUlkKSk7XHJcblxyXG5jb25zdCBxdWVzdGlvbkFuc3dlcnMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdXJ2ZXlEYXRhLCAoc3RhdGUpID0+IHNlbGVjdEFsbChzdGF0ZS5xdWVzdGlvbkFycilcclxuLmZpbHRlcih4ID0+IHguaXNRdWVzdGlvbkdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcclxuICAgIGlmKHgucXVlc3Rpb25UeXBlID09IFF1ZXN0aW9uVHlwZUVudW0uSW5zdGl0dXRpb25zKXtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBTdXJ2ZXlQYWdlSW5kZXg6IHguc3VydmV5UGFnZUlkLFxyXG4gICAgICAgICAgICBRdWVzdGlvbklkOiB4LnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXHJcbiAgICAgICAgICAgIEFuc3dlcklkOnguYW5zd2VyTGV2ZWxJZCAsXHJcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcclxuICAgICAgICAgICAgQW5zd2VySWRBcnI6IHguYW5zd2VySWRBcnIgLFxyXG4gICAgICAgICAgICBBbnN3ZXJMZXZlbElkOiB4LmFuc3dlcklkIFxyXG4gICAgICAgIH0gYXMgU3VydmV5UXVlc3Rpb25SZXN1bHRcclxuICAgIH1lbHNle1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSWQsXHJcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcclxuICAgICAgICAgICAgUXVlc3Rpb25UeXBlOiB4LnF1ZXN0aW9uVHlwZSxcclxuICAgICAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VySWQsXHJcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcclxuICAgICAgICAgICAgQW5zd2VySWRBcnI6IHguYW5zd2VySWRBcnIgLFxyXG4gICAgICAgICAgICBBbnN3ZXJMZXZlbElkOnguYW5zd2VyTGV2ZWxJZCBcclxuICAgICAgICB9IGFzIFN1cnZleVF1ZXN0aW9uUmVzdWx0XHJcbiAgICB9XHJcbiAgIFxyXG59KSlcclxuXHJcbmV4cG9ydCBjb25zdCBxdWVzdGlvblNlbGVjdG9ycyA9IHtcclxuICAgIGFsbFF1ZXN0aW9ucyxcclxuICAgIHBhZ2VRdWVzdGlvbnMgLFxyXG4gICAgcXVlc3Rpb25BbnN3ZXJzXHJcbn0iXX0=
@@ -30,7 +30,7 @@ export class ApiService {
30
30
  }
31
31
  getAllPrograms(filter) {
32
32
  var queryString = $.param(filter);
33
- return this._HttpClient.get(`${this.url}/api/v1/Institutions/Programs?${queryString}`, { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });
33
+ return this._HttpClient.get(`${this.url}/api/v1/Institutions/GetPrograms?${queryString}`, { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ApiService, deps: [{ token: i1.HttpClient }, { token: LibConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
36
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ApiService, providedIn: 'root' }); }
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
44
44
  type: Inject,
45
45
  args: [LibConfigService]
46
46
  }] }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7OztBQWdCeEUsTUFBTSxPQUFPLFVBQVU7SUFHckIsWUFBb0IsV0FBdUIsRUFDUCxpQkFBaUM7UUFEakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDUCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQ25FLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBMkQ7UUFDekUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUF3QixHQUFHLElBQUksQ0FBQyxHQUFHLGtDQUFrQyxXQUFXLEVBQUUsRUFDNUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcseUNBQXlDLEVBQzFHLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE0QjtRQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQWtDLEdBQUcsSUFBSSxDQUFDLEdBQUcsb0NBQW9DLFdBQVcsRUFBRSxFQUN4SCxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjLENBQUUsTUFBd0Q7UUFDdEUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFtQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9DQUFvQyxXQUFXLEVBQUUsRUFDekgsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYyxDQUFFLE1BQXlEO1FBQ3ZFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxvQ0FBb0MsV0FBVyxFQUFFLEVBQ3pILEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUF5RDtRQUN0RSxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcsaUNBQWlDLFdBQVcsRUFBRSxFQUN0SCxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBekNVLFVBQVUsNENBSVgsZ0JBQWdCO2tIQUpmLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpYkNvbmZpZ1NlcnZpY2UsIExpYkNvbmZpZ01vZGVsIH0gZnJvbSAnLi9saWItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IER0b0Jhc2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9iYXNlL2R0by5iYXNlJztcclxuaW1wb3J0IHsgR2V0TmV4dFF1ZXN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3Jlc3VsdHMvYXBpLnJlc3VsdCc7XHJcbmltcG9ydCB7IFJlc3VsdER0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL2Jhc2UvcmVzdWx0LmR0byc7XHJcbmltcG9ydCB7IEluc3RpdHV0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvaW5zdGl0dXRpb24uZHRvJztcclxuaW1wb3J0IHsgSW5zdGl0dXRpb25CcmFuY2hEdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9pbnN0aXR1dGlvbi1icmFuY2guZHRvJztcclxuaW1wb3J0IHsgSW5zdGl0dXRpb25Db2xsYWdlRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvaW5zdGl0dXRpb24tY29sbGFnZS5kdG8nO1xyXG5pbXBvcnQgeyBJbnN0aXR1dGlvblNlY3Rpb25EdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9pbnN0aXR1dGlvbi1zZWN0aW9uLmR0byc7XHJcbmltcG9ydCB7IEluc3RpdHV0aW9uUHJvZ3JhbUR0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL2luc3RpdHV0aW9uLXByb2dyYW0uZHRvJztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cmw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX0h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KExpYkNvbmZpZ1NlcnZpY2UpIHByaXZhdGUgX0xpYkNvbmZpZ1NlcnZpY2U6IExpYkNvbmZpZ01vZGVsKSB7XHJcbiAgICB0aGlzLnVybCA9IF9MaWJDb25maWdTZXJ2aWNlLmFwaVVybDtcclxuICB9XHJcblxyXG4gIGdldE5leHRRdWVzdGlvbihmaWx0ZXI6IHsgYW5zd2VySWQsIHN1cnZleUxhbmd1YWdlSWQsIGFwcGxpY2FudEtleSwgaXNQcmUgfSk6IE9ic2VydmFibGU8R2V0TmV4dFF1ZXN0aW9uUmVzdWx0PiB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8R2V0TmV4dFF1ZXN0aW9uUmVzdWx0PihgJHt0aGlzLnVybH0vYXBpL3YxL1N1cnZleS9HZXROZXh0UXVlc3Rpb24/JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxJbnN0aXR1dGlvbnMoICkge1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvbkR0bz4+KGAke3RoaXMudXJsfS9hcGkvdjEvSW5zdGl0dXRpb25zL0dldEFsbEluc3RpdHV0aW9uc2AsXHJcbiAgICAgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnZGlzYWJsZS1lcnJvci1hbGVydCc6ICd0cnVlJyB9KSB9KTtcclxuICB9XHJcblxyXG4gIGdldEFsbEJyYW5jaGVzKGZpbHRlcjp7c3VibWlzc2lvbklkOnN0cmluZ30gKSB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8UmVzdWx0RHRvPEluc3RpdHV0aW9uQnJhbmNoRHRvPj4oYCR7dGhpcy51cmx9L2FwaS92MS9JbnN0aXR1dGlvbnMvR2V0QnJhbmNoZXM/JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb2xsYWdlcyggZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxicmFuY2hTdWJtaXNzaW9uSWQ6c3RyaW5nIH0pIHtcclxuICAgIHZhciBxdWVyeVN0cmluZyA9ICQucGFyYW0oZmlsdGVyKTtcclxuICAgIHJldHVybiB0aGlzLl9IdHRwQ2xpZW50LmdldDxSZXN1bHREdG88SW5zdGl0dXRpb25Db2xsYWdlRHRvPj4oYCR7dGhpcy51cmx9L2FwaS92MS9JbnN0aXR1dGlvbnMvR2V0Q29sbGFnZXM/JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxTZWN0aW9ucyggZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxjb2xsYWdlU3VibWlzc2lvbklkOnN0cmluZyB9KSB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8UmVzdWx0RHRvPEluc3RpdHV0aW9uU2VjdGlvbkR0bz4+KGAke3RoaXMudXJsfS9hcGkvdjEvSW5zdGl0dXRpb25zL0dldFNlY3Rpb25zPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsUHJvZ3JhbXMoZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxzZWN0aW9uR2VuZXJhdGVkS2V5OnN0cmluZyB9ICkge1xyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJC5wYXJhbShmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvblByb2dyYW1EdG8+PihgJHt0aGlzLnVybH0vYXBpL3YxL0luc3RpdHV0aW9ucy9Qcm9ncmFtcz8ke3F1ZXJ5U3RyaW5nfWAsXHJcbiAgICAgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnZGlzYWJsZS1lcnJvci1hbGVydCc6ICd0cnVlJyB9KSB9KTtcclxuICB9XHJcbn1cclxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3NlcnZpY2VzL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7OztBQWdCeEUsTUFBTSxPQUFPLFVBQVU7SUFHckIsWUFBb0IsV0FBdUIsRUFDUCxpQkFBaUM7UUFEakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDUCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQ25FLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBMkQ7UUFDekUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUF3QixHQUFHLElBQUksQ0FBQyxHQUFHLGtDQUFrQyxXQUFXLEVBQUUsRUFDNUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcseUNBQXlDLEVBQzFHLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE0QjtRQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQWtDLEdBQUcsSUFBSSxDQUFDLEdBQUcsb0NBQW9DLFdBQVcsRUFBRSxFQUN4SCxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjLENBQUUsTUFBd0Q7UUFDdEUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFtQyxHQUFHLElBQUksQ0FBQyxHQUFHLG9DQUFvQyxXQUFXLEVBQUUsRUFDekgsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYyxDQUFFLE1BQXlEO1FBQ3ZFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBbUMsR0FBRyxJQUFJLENBQUMsR0FBRyxvQ0FBb0MsV0FBVyxFQUFFLEVBQ3pILEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUF5RDtRQUN0RSxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQW1DLEdBQUcsSUFBSSxDQUFDLEdBQUcsb0NBQW9DLFdBQVcsRUFBRSxFQUN6SCxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBekNVLFVBQVUsNENBSVgsZ0JBQWdCO2tIQUpmLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpYkNvbmZpZ1NlcnZpY2UsIExpYkNvbmZpZ01vZGVsIH0gZnJvbSAnLi9saWItY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XHJcbmltcG9ydCB7IER0b0Jhc2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9iYXNlL2R0by5iYXNlJztcclxuaW1wb3J0IHsgR2V0TmV4dFF1ZXN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3Jlc3VsdHMvYXBpLnJlc3VsdCc7XHJcbmltcG9ydCB7IFJlc3VsdER0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL2Jhc2UvcmVzdWx0LmR0byc7XHJcbmltcG9ydCB7IEluc3RpdHV0aW9uRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvaW5zdGl0dXRpb24uZHRvJztcclxuaW1wb3J0IHsgSW5zdGl0dXRpb25CcmFuY2hEdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9pbnN0aXR1dGlvbi1icmFuY2guZHRvJztcclxuaW1wb3J0IHsgSW5zdGl0dXRpb25Db2xsYWdlRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3MvaW5zdGl0dXRpb24tY29sbGFnZS5kdG8nO1xyXG5pbXBvcnQgeyBJbnN0aXR1dGlvblNlY3Rpb25EdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9pbnN0aXR1dGlvbi1zZWN0aW9uLmR0byc7XHJcbmltcG9ydCB7IEluc3RpdHV0aW9uUHJvZ3JhbUR0byB9IGZyb20gJy4uLy4uL3NoYXJlZC9kdG9zL2luc3RpdHV0aW9uLXByb2dyYW0uZHRvJztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cmw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX0h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KExpYkNvbmZpZ1NlcnZpY2UpIHByaXZhdGUgX0xpYkNvbmZpZ1NlcnZpY2U6IExpYkNvbmZpZ01vZGVsKSB7XHJcbiAgICB0aGlzLnVybCA9IF9MaWJDb25maWdTZXJ2aWNlLmFwaVVybDtcclxuICB9XHJcblxyXG4gIGdldE5leHRRdWVzdGlvbihmaWx0ZXI6IHsgYW5zd2VySWQsIHN1cnZleUxhbmd1YWdlSWQsIGFwcGxpY2FudEtleSwgaXNQcmUgfSk6IE9ic2VydmFibGU8R2V0TmV4dFF1ZXN0aW9uUmVzdWx0PiB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8R2V0TmV4dFF1ZXN0aW9uUmVzdWx0PihgJHt0aGlzLnVybH0vYXBpL3YxL1N1cnZleS9HZXROZXh0UXVlc3Rpb24/JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxJbnN0aXR1dGlvbnMoICkge1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvbkR0bz4+KGAke3RoaXMudXJsfS9hcGkvdjEvSW5zdGl0dXRpb25zL0dldEFsbEluc3RpdHV0aW9uc2AsXHJcbiAgICAgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnZGlzYWJsZS1lcnJvci1hbGVydCc6ICd0cnVlJyB9KSB9KTtcclxuICB9XHJcblxyXG4gIGdldEFsbEJyYW5jaGVzKGZpbHRlcjp7c3VibWlzc2lvbklkOnN0cmluZ30gKSB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8UmVzdWx0RHRvPEluc3RpdHV0aW9uQnJhbmNoRHRvPj4oYCR7dGhpcy51cmx9L2FwaS92MS9JbnN0aXR1dGlvbnMvR2V0QnJhbmNoZXM/JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb2xsYWdlcyggZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxicmFuY2hTdWJtaXNzaW9uSWQ6c3RyaW5nIH0pIHtcclxuICAgIHZhciBxdWVyeVN0cmluZyA9ICQucGFyYW0oZmlsdGVyKTtcclxuICAgIHJldHVybiB0aGlzLl9IdHRwQ2xpZW50LmdldDxSZXN1bHREdG88SW5zdGl0dXRpb25Db2xsYWdlRHRvPj4oYCR7dGhpcy51cmx9L2FwaS92MS9JbnN0aXR1dGlvbnMvR2V0Q29sbGFnZXM/JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ2Rpc2FibGUtZXJyb3ItYWxlcnQnOiAndHJ1ZScgfSkgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxTZWN0aW9ucyggZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxjb2xsYWdlU3VibWlzc2lvbklkOnN0cmluZyB9KSB7XHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAkLnBhcmFtKGZpbHRlcik7XHJcbiAgICByZXR1cm4gdGhpcy5fSHR0cENsaWVudC5nZXQ8UmVzdWx0RHRvPEluc3RpdHV0aW9uU2VjdGlvbkR0bz4+KGAke3RoaXMudXJsfS9hcGkvdjEvSW5zdGl0dXRpb25zL0dldFNlY3Rpb25zPyR7cXVlcnlTdHJpbmd9YCxcclxuICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdkaXNhYmxlLWVycm9yLWFsZXJ0JzogJ3RydWUnIH0pIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsUHJvZ3JhbXMoZmlsdGVyOntzdWJtaXNzaW9uSWQ6c3RyaW5nICxzZWN0aW9uR2VuZXJhdGVkS2V5OnN0cmluZyB9ICkge1xyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJC5wYXJhbShmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHRoaXMuX0h0dHBDbGllbnQuZ2V0PFJlc3VsdER0bzxJbnN0aXR1dGlvblByb2dyYW1EdG8+PihgJHt0aGlzLnVybH0vYXBpL3YxL0luc3RpdHV0aW9ucy9HZXRQcm9ncmFtcz8ke3F1ZXJ5U3RyaW5nfWAsXHJcbiAgICAgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnZGlzYWJsZS1lcnJvci1hbGVydCc6ICd0cnVlJyB9KSB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -58,6 +58,15 @@ export class SurveyLibService {
58
58
  isValid: true
59
59
  }));
60
60
  }
61
+ else if (answer.QuestionType == QuestionTypeEnum.Institutions) {
62
+ this._Store.dispatch(surveyActions.updateInstitutionQuestionAnswer({
63
+ questionId: answer.QuestionId,
64
+ answer: answer.AnswerText,
65
+ answerId: answer.AnswerId,
66
+ answerLevelId: answer.AnswerLevelId,
67
+ isValid: true
68
+ }));
69
+ }
61
70
  else {
62
71
  this._Store.dispatch(surveyActions.updateQuestionAnswer({
63
72
  questionId: answer.QuestionId,
@@ -161,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
161
170
  providedIn: 'root'
162
171
  }]
163
172
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUloRCxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFLN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBb0IsTUFBYTtRQUFiLFdBQU0sR0FBTixNQUFNLENBQU87UUFOekIsd0JBQW1CLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7SUFNaEMsQ0FBQztJQUV0QyxhQUFhLENBQUMsTUFBaUI7UUFDN0IsSUFBSSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLGdCQUFnQixHQUE2QixFQUFFLENBQUM7UUFFcEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNwQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7b0JBQ3RDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7b0JBQzFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyx3QkFBd0I7b0JBQ3hELFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDMUIsQ0FBQyxDQUFDO2dCQUVILEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2QyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtvQkFDakYsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQzVDLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVztZQUMzQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBOEI7UUFFN0MsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFFcEMsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLFNBQVM7Z0JBQ25ELE1BQU0sQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUMsUUFBUSxFQUFFO2dCQUVsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7b0JBQ3RELFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVO29CQUN6QixPQUFPLEVBQUUsSUFBSTtpQkFDZCxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUNJLElBQUksTUFBTSxDQUFDLFlBQVksSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRO21CQUNwRCxNQUFNLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLGFBQWEsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO29CQUN0RCxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7b0JBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVztvQkFDMUIsT0FBTyxFQUFFLElBQUk7aUJBQ2QsQ0FBQyxDQUFDLENBQUM7YUFDTDtpQkFDSTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7b0JBQ3RELFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRO29CQUN2QixPQUFPLEVBQUUsSUFBSTtpQkFDZCxDQUFDLENBQUMsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQTJCLEVBQUUsU0FBaUIsRUFBRSxlQUF1QjtRQUN6RixJQUFJLFdBQVcsR0FBd0IsRUFBRSxDQUFDO1FBRTFDLElBQUksaUJBQWlCLEdBQXNCO1lBQ3pDLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUMvQixZQUFZLEVBQUUsUUFBUSxDQUFDLGNBQWM7WUFDckMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUNsRCxlQUFlLEVBQUUsUUFBUSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZO1lBQy9ILFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLE9BQU8sRUFBRSxJQUFJO1lBQ2IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUztZQUMxQixrQkFBa0IsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUN2QyxjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQVM7WUFDbEMsZUFBZSxFQUFFLGVBQWU7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixhQUFhLEVBQUMsSUFBSTtZQUNsQixlQUFlLEVBQUUsUUFBUTtTQUMxQixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsY0FBYyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtZQUN4RCxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksa0JBQWtCLENBQUMsS0FBSyxFQUFFO2dCQUMxRSxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQTthQUNwRDtpQkFDSSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksa0JBQWtCLENBQUMsVUFBVSxFQUFFO2dCQUNwRixpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQTthQUN6RDtTQUNGO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDdEQsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDZixZQUFZLEVBQUUsU0FBUztvQkFDdkIsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO29CQUNsQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGNBQWM7b0JBQ3JDLFdBQVcsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7b0JBQ2xELGVBQWUsRUFBRSxLQUFLO29CQUN0QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxXQUFXLEVBQUUsSUFBSTtvQkFDakIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDL0IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUMvQixNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQzFCLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUN2QyxjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQ2xDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUNyQyxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsZUFBZSxFQUFFLFFBQVE7b0JBQ3pCLGFBQWEsRUFBRSxJQUFJO2lCQUNwQixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBRyxRQUFRLENBQUMsY0FBYyxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBQztZQUMxRCxpQkFBaUIsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUV6RCxRQUFRLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNyRCxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNmLFlBQVksRUFBRSxTQUFTO29CQUN2QixVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7b0JBQ2xDLFlBQVksRUFBRSxRQUFRLENBQUMsY0FBYztvQkFDckMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztvQkFDbEQsZUFBZSxFQUFFLEtBQUs7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFdBQVcsRUFBRSxJQUFJO29CQUNqQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsVUFBVSxFQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQyxLQUFLO29CQUM5RCxPQUFPLEVBQUUsSUFBSTtvQkFDYixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQy9CLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDMUIsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQ3ZDLGNBQWMsRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDbEMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQ3JDLGVBQWUsRUFBRSxlQUFlO29CQUNoQyxlQUFlLEVBQUUsUUFBUTtvQkFDekIsYUFBYSxFQUFFLElBQUk7aUJBQ3BCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzhHQXBLVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlEdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXkuZHRvJztcclxuaW1wb3J0IHsgc3VydmV5QW5zd2Vyc1N1YmplY3REdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2Vycy1zdWJqZWN0LmR0byc7XHJcbmltcG9ydCB7IFN1cnZleUxhbmd1YWdlRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWxhbmd1YWdlLmR0byc7XHJcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IHN1cnZleUFjdGlvbnMgfSBmcm9tICcuLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvc3VydmV5LmFjdGlvbic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTmdyeE1vZGVsIH0gZnJvbSAnLi4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi5lbnRpdHknO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWwgfSBmcm9tICcuLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLWdyb3VwLmVudGl0eSc7XHJcbmltcG9ydCB7IElucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRXZhbHVhdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2V2YWx1YXRpb24tdHlwZS5lbnVtJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUxpYlNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlbG9hZFN1cnZleVN1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgZ2V0IHJlbG9hZFN1cnZleU9ic3J2KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkU3VydmV5U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX1N0b3JlOiBTdG9yZSkgeyB9XHJcblxyXG4gIHNldFN1cnZleURhdGEoc3VydmV5OiBTdXJ2ZXlEdG8pIHtcclxuICAgIHZhciBxdWVzdGlvbkFycjogUXVlc3Rpb25OZ3J4TW9kZWxbXSA9IFtdO1xyXG4gICAgdmFyIHF1ZXN0aW9uR3JvdXBBcnI6IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIHN1cnZleS5zdXJ2ZXlQYWdlcy5mb3JFYWNoKChwYWdlLCBwYWdlSW5kZXgpID0+IHtcclxuICAgICAgcGFnZS5zdXJ2ZXlRdWVzdGlvbkdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcclxuICAgICAgICBxdWVzdGlvbkdyb3VwQXJyLnB1c2goe1xyXG4gICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiBncm91cC5xdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwTmFtZTogZ3JvdXAucXVlc3Rpb25Hcm91cE5hbWUsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwRGVzY3JpcHRpb246IGdyb3VwLnF1ZXN0aW9uR3JvdXBEZXNjcmlwdGlvbixcclxuICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZS5wYWdlSWRcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZ3JvdXAuc3VydmV5UXVlc3Rpb25zLmZvckVhY2gocXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgdmFyIG5ld1F1ZXN0aW9ucyA9IHRoaXMuYWRkUXVlc3Rpb24ocXVlc3Rpb24sIHBhZ2UucGFnZUlkLCBncm91cC5xdWVzdGlvbkdyb3VwSWQpXHJcbiAgICAgICAgICBxdWVzdGlvbkFyci5wdXNoKC4uLm5ld1F1ZXN0aW9ucyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHZhciBwYWdlSWRBcnIgPSBzdXJ2ZXkuc3VydmV5UGFnZXMubWFwKHggPT4geC5wYWdlSWQpO1xyXG5cclxuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMubG9hZFN1cnZleSh7XHJcbiAgICAgIHF1ZXN0aW9uQXJyOiBxdWVzdGlvbkFycixcclxuICAgICAgcnVsZUFycjogc3VydmV5LnN1cnZleVJ1bGVzLFxyXG4gICAgICBxdWVzdGlvbkdyb3VwQXJyOiBxdWVzdGlvbkdyb3VwQXJyLFxyXG4gICAgICBzZWxlY3RlZFBhZ2VJZDogTWF0aC5taW4oLi4ucGFnZUlkQXJyKVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgc2V0c3VydmV5QW5zd2Vycyhtb2RlbDogc3VydmV5QW5zd2Vyc1N1YmplY3REdG8pIHtcclxuXHJcbiAgICBtb2RlbC5kZWZhdWx0QW5zd2Vycy5mb3JFYWNoKGFuc3dlciA9PiB7XHJcblxyXG4gICAgICBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dCB8fFxyXG4gICAgICAgIGFuc3dlci5RdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5GZWVkQmFjaykge1xyXG5cclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VyVGV4dCxcclxuICAgICAgICAgIGlzVmFsaWQ6IHRydWVcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94XHJcbiAgICAgICAgfHwgYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkRyb3BEb3duTXVsdGkpIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VySWRBcnIsXHJcbiAgICAgICAgICBpc1ZhbGlkOiB0cnVlXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMudXBkYXRlUXVlc3Rpb25BbnN3ZXIoe1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogYW5zd2VyLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGFuc3dlci5BbnN3ZXJJZCxcclxuICAgICAgICAgIGlzVmFsaWQ6IHRydWVcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZXRSZWxvYWRTdXJ2ZXkoKSB7XHJcbiAgICB0aGlzLnJlbG9hZFN1cnZleVN1YmplY3QubmV4dChndWlkR2VuZXJhdG9yKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRRdWVzdGlvbihxdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG8sIHBhZ2VJbmRleDogbnVtYmVyLCBxdWVzdGlvbkdyb3VwSWQ6IG51bWJlcik6IFF1ZXN0aW9uTmdyeE1vZGVsW10ge1xyXG4gICAgdmFyIHF1ZXN0aW9uQXJyOiBRdWVzdGlvbk5ncnhNb2RlbFtdID0gW107XHJcblxyXG4gICAgdmFyIHF1ZXN0aW9uTmdyeE1vZGVsOiBRdWVzdGlvbk5ncnhNb2RlbCA9IHtcclxuICAgICAgc3VydmV5UGFnZUlkOiBwYWdlSW5kZXgsXHJcbiAgICAgIHF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgIHF1ZXN0aW9uVHlwZTogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgIGlucHV0VHlwZUlkOiBxdWVzdGlvbi5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkLFxyXG4gICAgICBpc1F1ZXN0aW9uR3JvdXA6IHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4IHx8IHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IFF1ZXN0aW9uVHlwZUVudW0uSW5zdGl0dXRpb25zLFxyXG4gICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgYW5zd2VySWRBcnI6IG51bGwsXHJcbiAgICAgIGFuc3dlclRleHQ6IG51bGwsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uLmlzUmVxdWlyZWQsXHJcbiAgICAgIGlzVmFsaWQ6IG51bGwsXHJcbiAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uLmlzUmVhZE9ubHksXHJcbiAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IHF1ZXN0aW9uLmlzUmVhZE9ubHksXHJcbiAgICAgIGlzU2hvd19kZWZhdWx0OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgIHF1ZXN0aW9uR3JvdXBJZDogcXVlc3Rpb25Hcm91cElkLFxyXG4gICAgICBwYXJlbnRRdWVzdGlvbklkOiBudWxsLFxyXG4gICAgICBtYXhMZXZlbFZhbHVlOm51bGwsXHJcbiAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcXVlc3Rpb24gLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5GZWVkQmFjaykge1xyXG4gICAgICBpZiAocXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5ldmFsdWF0aW9uVHlwZUlkID09IEV2YWx1YXRpb25UeXBlRW51bS5TdGFycykge1xyXG4gICAgICAgIHF1ZXN0aW9uTmdyeE1vZGVsLmlucHV0VHlwZUlkID0gSW5wdXRUeXBlRW51bS5TdGFyc1xyXG4gICAgICB9IFxyXG4gICAgICBlbHNlIGlmIChxdWVzdGlvbi5zdXJ2ZXlBbnN3ZXJzWzBdLmV2YWx1YXRpb25UeXBlSWQgPT0gRXZhbHVhdGlvblR5cGVFbnVtLlBhZ2luYXRpb24pIHtcclxuICAgICAgICBxdWVzdGlvbk5ncnhNb2RlbC5pbnB1dFR5cGVJZCA9IElucHV0VHlwZUVudW0uUGFnaW5hdGlvblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcXVlc3Rpb25BcnIucHVzaChxdWVzdGlvbk5ncnhNb2RlbCk7XHJcblxyXG4gICAgaWYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IFF1ZXN0aW9uVHlwZUVudW0uTWF0cml4KSB7XHJcbiAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuICAgICAgICBxdWVzdGlvbkFyci5wdXNoKHtcclxuICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZUluZGV4LFxyXG4gICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgIHF1ZXN0aW9uVHlwZTogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgICBpbnB1dFR5cGVJZDogcXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCxcclxuICAgICAgICAgIGlzUXVlc3Rpb25Hcm91cDogZmFsc2UsXHJcbiAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlcklkQXJyOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyVGV4dDogbnVsbCxcclxuICAgICAgICAgIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uLmlzUmVxdWlyZWQsXHJcbiAgICAgICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIHBhcmVudFF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwSWQ6IHF1ZXN0aW9uR3JvdXBJZCxcclxuICAgICAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcXVlc3Rpb24gLFxyXG4gICAgICAgICAgbWF4TGV2ZWxWYWx1ZTogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZihxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBRdWVzdGlvblR5cGVFbnVtLkluc3RpdHV0aW9ucyl7XHJcbiAgICAgIHF1ZXN0aW9uTmdyeE1vZGVsLm1heExldmVsVmFsdWUgPSBxdWVzdGlvbi5tYXhMZXZlbFZhbHVlO1xyXG5cclxuICAgICAgcXVlc3Rpb24uc3VydmV5U3ViUXVlc3Rpb25MZXZlbHMuZm9yRWFjaChzdWJRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgcXVlc3Rpb25BcnIucHVzaCh7XHJcbiAgICAgICAgICBzdXJ2ZXlQYWdlSWQ6IHBhZ2VJbmRleCxcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvblR5cGU6IHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkLFxyXG4gICAgICAgICAgaW5wdXRUeXBlSWQ6IHF1ZXN0aW9uLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQsXHJcbiAgICAgICAgICBpc1F1ZXN0aW9uR3JvdXA6IGZhbHNlLFxyXG4gICAgICAgICAgYW5zd2VySWQ6IG51bGwsXHJcbiAgICAgICAgICBhbnN3ZXJJZEFycjogbnVsbCxcclxuICAgICAgICAgIGFuc3dlclRleHQ6IG51bGwsXHJcbiAgICAgICAgICBpc1JlcXVpcmVkOnN1YlF1ZXN0aW9uLmxldmVsID09IDEgPyBxdWVzdGlvbi5pc1JlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgIGlzVmFsaWQ6IG51bGwsXHJcbiAgICAgICAgICBpc0Rpc2FibGVkOiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgaXNTaG93OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IHF1ZXN0aW9uLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICAgICAgcGFyZW50UXVlc3Rpb25JZDogcXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgIHF1ZXN0aW9uR3JvdXBJZDogcXVlc3Rpb25Hcm91cElkLFxyXG4gICAgICAgICAgcXVlc3Rpb25BbGxJbmZvOiBxdWVzdGlvbiAsXHJcbiAgICAgICAgICBtYXhMZXZlbFZhbHVlOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVzdGlvbkFycjtcclxuICB9XHJcbn1cclxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWxpYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUloRCxPQUFPLEVBQUUsRUFBRSxJQUFJLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFLN0UsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBb0IsTUFBYTtRQUFiLFdBQU0sR0FBTixNQUFNLENBQU87UUFOekIsd0JBQW1CLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7SUFNaEMsQ0FBQztJQUV0QyxhQUFhLENBQUMsTUFBaUI7UUFDN0IsSUFBSSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLGdCQUFnQixHQUE2QixFQUFFLENBQUM7UUFFcEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNwQixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7b0JBQ3RDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUI7b0JBQzFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyx3QkFBd0I7b0JBQ3hELFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDMUIsQ0FBQyxDQUFDO2dCQUVILEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2QyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtvQkFDakYsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQzVDLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVztZQUMzQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBOEI7UUFFN0MsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFFcEMsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLFNBQVM7Z0JBQ25ELE1BQU0sQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUMsUUFBUSxFQUFFO2dCQUVsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7b0JBQ3RELFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVO29CQUN6QixPQUFPLEVBQUUsSUFBSTtpQkFDZCxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUNJLElBQUksTUFBTSxDQUFDLFlBQVksSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRO21CQUNwRCxNQUFNLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLGFBQWEsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO29CQUN0RCxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7b0JBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVztvQkFDMUIsT0FBTyxFQUFFLElBQUk7aUJBQ2QsQ0FBQyxDQUFDLENBQUM7YUFDTDtpQkFDSSxJQUFJLE1BQU0sQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUMsWUFBWSxFQUFFO2dCQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUM7b0JBQ2pFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVO29CQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7b0JBQ3pCLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtvQkFDbkMsT0FBTyxFQUFFLElBQUk7aUJBQ2QsQ0FBQyxDQUFDLENBQUM7YUFFTDtpQkFDSTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7b0JBQ3RELFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtvQkFDN0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRO29CQUN2QixPQUFPLEVBQUUsSUFBSTtpQkFDZCxDQUFDLENBQUMsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQTJCLEVBQUUsU0FBaUIsRUFBRSxlQUF1QjtRQUN6RixJQUFJLFdBQVcsR0FBd0IsRUFBRSxDQUFDO1FBRTFDLElBQUksaUJBQWlCLEdBQXNCO1lBQ3pDLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUMvQixZQUFZLEVBQUUsUUFBUSxDQUFDLGNBQWM7WUFDckMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUNsRCxlQUFlLEVBQUUsUUFBUSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZO1lBQy9ILFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLE9BQU8sRUFBRSxJQUFJO1lBQ2IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUztZQUMxQixrQkFBa0IsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUN2QyxjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQVM7WUFDbEMsZUFBZSxFQUFFLGVBQWU7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixhQUFhLEVBQUUsSUFBSTtZQUNuQixlQUFlLEVBQUUsUUFBUTtTQUMxQixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsY0FBYyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtZQUN4RCxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksa0JBQWtCLENBQUMsS0FBSyxFQUFFO2dCQUMxRSxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQTthQUNwRDtpQkFDSSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksa0JBQWtCLENBQUMsVUFBVSxFQUFFO2dCQUNwRixpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQTthQUN6RDtTQUNGO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxDQUFDLGNBQWMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDdEQsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDZixZQUFZLEVBQUUsU0FBUztvQkFDdkIsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO29CQUNsQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGNBQWM7b0JBQ3JDLFdBQVcsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7b0JBQ2xELGVBQWUsRUFBRSxLQUFLO29CQUN0QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxXQUFXLEVBQUUsSUFBSTtvQkFDakIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDL0IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUMvQixNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQzFCLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUN2QyxjQUFjLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQ2xDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxVQUFVO29CQUNyQyxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsZUFBZSxFQUFFLFFBQVE7b0JBQ3pCLGFBQWEsRUFBRSxJQUFJO2lCQUNwQixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxRQUFRLENBQUMsY0FBYyxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBRTtZQUM1RCxpQkFBaUIsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUV6RCxRQUFRLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNyRCxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNmLFlBQVksRUFBRSxTQUFTO29CQUN2QixVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVU7b0JBQ2xDLFlBQVksRUFBRSxRQUFRLENBQUMsY0FBYztvQkFDckMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztvQkFDbEQsZUFBZSxFQUFFLEtBQUs7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFdBQVcsRUFBRSxJQUFJO29CQUNqQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsVUFBVSxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLO29CQUNoRSxPQUFPLEVBQUUsSUFBSTtvQkFDYixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQy9CLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDMUIsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQ3ZDLGNBQWMsRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDbEMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQ3JDLGVBQWUsRUFBRSxlQUFlO29CQUNoQyxlQUFlLEVBQUUsUUFBUTtvQkFDekIsYUFBYSxFQUFFLElBQUk7aUJBQ3BCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzhHQTlLVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlEdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXkuZHRvJztcclxuaW1wb3J0IHsgc3VydmV5QW5zd2Vyc1N1YmplY3REdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2Vycy1zdWJqZWN0LmR0byc7XHJcbmltcG9ydCB7IFN1cnZleUxhbmd1YWdlRHRvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWxhbmd1YWdlLmR0byc7XHJcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IHN1cnZleUFjdGlvbnMgfSBmcm9tICcuLi9jb3JlL3N0YXRlcy9zdXJ2ZXktc3RvcmUvc3VydmV5LmFjdGlvbic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uTmdyeE1vZGVsIH0gZnJvbSAnLi4vY29yZS9zdGF0ZXMvZW50aXRlcy9xdWVzdGlvbi5lbnRpdHknO1xyXG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWwgfSBmcm9tICcuLi9jb3JlL3N0YXRlcy9lbnRpdGVzL3F1ZXN0aW9uLWdyb3VwLmVudGl0eSc7XHJcbmltcG9ydCB7IElucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRXZhbHVhdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2V2YWx1YXRpb24tdHlwZS5lbnVtJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUxpYlNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlbG9hZFN1cnZleVN1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgZ2V0IHJlbG9hZFN1cnZleU9ic3J2KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkU3VydmV5U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX1N0b3JlOiBTdG9yZSkgeyB9XHJcblxyXG4gIHNldFN1cnZleURhdGEoc3VydmV5OiBTdXJ2ZXlEdG8pIHtcclxuICAgIHZhciBxdWVzdGlvbkFycjogUXVlc3Rpb25OZ3J4TW9kZWxbXSA9IFtdO1xyXG4gICAgdmFyIHF1ZXN0aW9uR3JvdXBBcnI6IFF1ZXN0aW9uR3JvdXBOZ3J4TW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIHN1cnZleS5zdXJ2ZXlQYWdlcy5mb3JFYWNoKChwYWdlLCBwYWdlSW5kZXgpID0+IHtcclxuICAgICAgcGFnZS5zdXJ2ZXlRdWVzdGlvbkdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcclxuICAgICAgICBxdWVzdGlvbkdyb3VwQXJyLnB1c2goe1xyXG4gICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiBncm91cC5xdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwTmFtZTogZ3JvdXAucXVlc3Rpb25Hcm91cE5hbWUsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwRGVzY3JpcHRpb246IGdyb3VwLnF1ZXN0aW9uR3JvdXBEZXNjcmlwdGlvbixcclxuICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZS5wYWdlSWRcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZ3JvdXAuc3VydmV5UXVlc3Rpb25zLmZvckVhY2gocXVlc3Rpb24gPT4ge1xyXG4gICAgICAgICAgdmFyIG5ld1F1ZXN0aW9ucyA9IHRoaXMuYWRkUXVlc3Rpb24ocXVlc3Rpb24sIHBhZ2UucGFnZUlkLCBncm91cC5xdWVzdGlvbkdyb3VwSWQpXHJcbiAgICAgICAgICBxdWVzdGlvbkFyci5wdXNoKC4uLm5ld1F1ZXN0aW9ucyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHZhciBwYWdlSWRBcnIgPSBzdXJ2ZXkuc3VydmV5UGFnZXMubWFwKHggPT4geC5wYWdlSWQpO1xyXG5cclxuICAgIHRoaXMuX1N0b3JlLmRpc3BhdGNoKHN1cnZleUFjdGlvbnMubG9hZFN1cnZleSh7XHJcbiAgICAgIHF1ZXN0aW9uQXJyOiBxdWVzdGlvbkFycixcclxuICAgICAgcnVsZUFycjogc3VydmV5LnN1cnZleVJ1bGVzLFxyXG4gICAgICBxdWVzdGlvbkdyb3VwQXJyOiBxdWVzdGlvbkdyb3VwQXJyLFxyXG4gICAgICBzZWxlY3RlZFBhZ2VJZDogTWF0aC5taW4oLi4ucGFnZUlkQXJyKVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgc2V0c3VydmV5QW5zd2Vycyhtb2RlbDogc3VydmV5QW5zd2Vyc1N1YmplY3REdG8pIHtcclxuXHJcbiAgICBtb2RlbC5kZWZhdWx0QW5zd2Vycy5mb3JFYWNoKGFuc3dlciA9PiB7XHJcblxyXG4gICAgICBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dCB8fFxyXG4gICAgICAgIGFuc3dlci5RdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5GZWVkQmFjaykge1xyXG5cclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VyVGV4dCxcclxuICAgICAgICAgIGlzVmFsaWQ6IHRydWVcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94XHJcbiAgICAgICAgfHwgYW5zd2VyLlF1ZXN0aW9uVHlwZSA9PSBRdWVzdGlvblR5cGVFbnVtLkRyb3BEb3duTXVsdGkpIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZVF1ZXN0aW9uQW5zd2VyKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGFuc3dlci5RdWVzdGlvbklkLFxyXG4gICAgICAgICAgYW5zd2VyOiBhbnN3ZXIuQW5zd2VySWRBcnIsXHJcbiAgICAgICAgICBpc1ZhbGlkOiB0cnVlXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGFuc3dlci5RdWVzdGlvblR5cGUgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMpIHtcclxuICAgICAgICB0aGlzLl9TdG9yZS5kaXNwYXRjaChzdXJ2ZXlBY3Rpb25zLnVwZGF0ZUluc3RpdHV0aW9uUXVlc3Rpb25BbnN3ZXIoe1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogYW5zd2VyLlF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGFuc3dlci5BbnN3ZXJUZXh0LFxyXG4gICAgICAgICAgYW5zd2VySWQ6IGFuc3dlci5BbnN3ZXJJZCxcclxuICAgICAgICAgIGFuc3dlckxldmVsSWQ6IGFuc3dlci5BbnN3ZXJMZXZlbElkLFxyXG4gICAgICAgICAgaXNWYWxpZDogdHJ1ZVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fU3RvcmUuZGlzcGF0Y2goc3VydmV5QWN0aW9ucy51cGRhdGVRdWVzdGlvbkFuc3dlcih7XHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBhbnN3ZXIuUXVlc3Rpb25JZCxcclxuICAgICAgICAgIGFuc3dlcjogYW5zd2VyLkFuc3dlcklkLFxyXG4gICAgICAgICAgaXNWYWxpZDogdHJ1ZVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNldFJlbG9hZFN1cnZleSgpIHtcclxuICAgIHRoaXMucmVsb2FkU3VydmV5U3ViamVjdC5uZXh0KGd1aWRHZW5lcmF0b3IoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFF1ZXN0aW9uKHF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bywgcGFnZUluZGV4OiBudW1iZXIsIHF1ZXN0aW9uR3JvdXBJZDogbnVtYmVyKTogUXVlc3Rpb25OZ3J4TW9kZWxbXSB7XHJcbiAgICB2YXIgcXVlc3Rpb25BcnI6IFF1ZXN0aW9uTmdyeE1vZGVsW10gPSBbXTtcclxuXHJcbiAgICB2YXIgcXVlc3Rpb25OZ3J4TW9kZWw6IFF1ZXN0aW9uTmdyeE1vZGVsID0ge1xyXG4gICAgICBzdXJ2ZXlQYWdlSWQ6IHBhZ2VJbmRleCxcclxuICAgICAgcXVlc3Rpb25JZDogcXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgcXVlc3Rpb25UeXBlOiBxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCxcclxuICAgICAgaW5wdXRUeXBlSWQ6IHF1ZXN0aW9uLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQsXHJcbiAgICAgIGlzUXVlc3Rpb25Hcm91cDogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5NYXRyaXggfHwgcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMsXHJcbiAgICAgIGFuc3dlcklkOiBudWxsLFxyXG4gICAgICBhbnN3ZXJJZEFycjogbnVsbCxcclxuICAgICAgYW5zd2VyVGV4dDogbnVsbCxcclxuICAgICAgaXNSZXF1aXJlZDogcXVlc3Rpb24uaXNSZXF1aXJlZCxcclxuICAgICAgaXNWYWxpZDogbnVsbCxcclxuICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgaXNTaG93OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgaXNTaG93X2RlZmF1bHQ6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgcXVlc3Rpb25Hcm91cElkOiBxdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgIHBhcmVudFF1ZXN0aW9uSWQ6IG51bGwsXHJcbiAgICAgIG1heExldmVsVmFsdWU6IG51bGwsXHJcbiAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcXVlc3Rpb24sXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBRdWVzdGlvblR5cGVFbnVtLkZlZWRCYWNrKSB7XHJcbiAgICAgIGlmIChxdWVzdGlvbi5zdXJ2ZXlBbnN3ZXJzWzBdLmV2YWx1YXRpb25UeXBlSWQgPT0gRXZhbHVhdGlvblR5cGVFbnVtLlN0YXJzKSB7XHJcbiAgICAgICAgcXVlc3Rpb25OZ3J4TW9kZWwuaW5wdXRUeXBlSWQgPSBJbnB1dFR5cGVFbnVtLlN0YXJzXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAocXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5ldmFsdWF0aW9uVHlwZUlkID09IEV2YWx1YXRpb25UeXBlRW51bS5QYWdpbmF0aW9uKSB7XHJcbiAgICAgICAgcXVlc3Rpb25OZ3J4TW9kZWwuaW5wdXRUeXBlSWQgPSBJbnB1dFR5cGVFbnVtLlBhZ2luYXRpb25cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHF1ZXN0aW9uQXJyLnB1c2gocXVlc3Rpb25OZ3J4TW9kZWwpO1xyXG5cclxuICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBRdWVzdGlvblR5cGVFbnVtLk1hdHJpeCkge1xyXG4gICAgICBxdWVzdGlvbi5zdXJ2ZXlTdWJRdWVzdGlvbnMuZm9yRWFjaChzdWJRdWVzdGlvbiA9PiB7XHJcbiAgICAgICAgcXVlc3Rpb25BcnIucHVzaCh7XHJcbiAgICAgICAgICBzdXJ2ZXlQYWdlSWQ6IHBhZ2VJbmRleCxcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvblR5cGU6IHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkLFxyXG4gICAgICAgICAgaW5wdXRUeXBlSWQ6IHF1ZXN0aW9uLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQsXHJcbiAgICAgICAgICBpc1F1ZXN0aW9uR3JvdXA6IGZhbHNlLFxyXG4gICAgICAgICAgYW5zd2VySWQ6IG51bGwsXHJcbiAgICAgICAgICBhbnN3ZXJJZEFycjogbnVsbCxcclxuICAgICAgICAgIGFuc3dlclRleHQ6IG51bGwsXHJcbiAgICAgICAgICBpc1JlcXVpcmVkOiBxdWVzdGlvbi5pc1JlcXVpcmVkLFxyXG4gICAgICAgICAgaXNWYWxpZDogbnVsbCxcclxuICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uLmlzUmVhZE9ubHksXHJcbiAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIGlzU2hvd19kZWZhdWx0OiBxdWVzdGlvbi5pc1Zpc2FibGUsXHJcbiAgICAgICAgICBwYXJlbnRRdWVzdGlvbklkOiBxdWVzdGlvbi5xdWVzdGlvbklkLFxyXG4gICAgICAgICAgcXVlc3Rpb25Hcm91cElkOiBxdWVzdGlvbkdyb3VwSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkFsbEluZm86IHF1ZXN0aW9uLFxyXG4gICAgICAgICAgbWF4TGV2ZWxWYWx1ZTogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gUXVlc3Rpb25UeXBlRW51bS5JbnN0aXR1dGlvbnMpIHtcclxuICAgICAgcXVlc3Rpb25OZ3J4TW9kZWwubWF4TGV2ZWxWYWx1ZSA9IHF1ZXN0aW9uLm1heExldmVsVmFsdWU7XHJcblxyXG4gICAgICBxdWVzdGlvbi5zdXJ2ZXlTdWJRdWVzdGlvbkxldmVscy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcclxuICAgICAgICBxdWVzdGlvbkFyci5wdXNoKHtcclxuICAgICAgICAgIHN1cnZleVBhZ2VJZDogcGFnZUluZGV4LFxyXG4gICAgICAgICAgcXVlc3Rpb25JZDogc3ViUXVlc3Rpb24ucXVlc3Rpb25JZCxcclxuICAgICAgICAgIHF1ZXN0aW9uVHlwZTogcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQsXHJcbiAgICAgICAgICBpbnB1dFR5cGVJZDogcXVlc3Rpb24uc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCxcclxuICAgICAgICAgIGlzUXVlc3Rpb25Hcm91cDogZmFsc2UsXHJcbiAgICAgICAgICBhbnN3ZXJJZDogbnVsbCxcclxuICAgICAgICAgIGFuc3dlcklkQXJyOiBudWxsLFxyXG4gICAgICAgICAgYW5zd2VyVGV4dDogbnVsbCxcclxuICAgICAgICAgIGlzUmVxdWlyZWQ6IHN1YlF1ZXN0aW9uLmxldmVsID09IDEgPyBxdWVzdGlvbi5pc1JlcXVpcmVkIDogZmFsc2UsXHJcbiAgICAgICAgICBpc1ZhbGlkOiBudWxsLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb24uaXNSZWFkT25seSxcclxuICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb24uaXNWaXNhYmxlLFxyXG4gICAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBxdWVzdGlvbi5pc1JlYWRPbmx5LFxyXG4gICAgICAgICAgaXNTaG93X2RlZmF1bHQ6IHF1ZXN0aW9uLmlzVmlzYWJsZSxcclxuICAgICAgICAgIHBhcmVudFF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbkdyb3VwSWQ6IHF1ZXN0aW9uR3JvdXBJZCxcclxuICAgICAgICAgIHF1ZXN0aW9uQWxsSW5mbzogcXVlc3Rpb24sXHJcbiAgICAgICAgICBtYXhMZXZlbFZhbHVlOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVzdGlvbkFycjtcclxuICB9XHJcbn1cclxuIl19