@touchpoll/tp-survey 0.0.4 → 0.0.6

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.
@@ -111,7 +111,7 @@ export class ContainerAnswerComponent {
111
111
  break;
112
112
  }
113
113
  case QuestionsType.eqOL: {
114
- this.answerForm.controls.answer.addValidators(answerOLValidator());
114
+ this.answerForm.controls.answer.addValidators(answerOLValidator(question.OLTypeTel));
115
115
  break;
116
116
  }
117
117
  case QuestionsType.eqSL: {
@@ -293,7 +293,7 @@ export class ContainerAnswerComponent {
293
293
  return resArray;
294
294
  }
295
295
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ContainerAnswerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
296
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ContainerAnswerComponent, isStandalone: true, selector: "tp-survey-container-answer", inputs: { question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: true, transformFunction: null }, viewModel: { classPropertyName: "viewModel", publicName: "viewModel", isSignal: true, isRequired: true, transformFunction: null }, answers: { classPropertyName: "answers", publicName: "answers", isSignal: true, isRequired: false, transformFunction: null }, developerMode: { classPropertyName: "developerMode", publicName: "developerMode", isSignal: true, isRequired: false, transformFunction: null }, languageList: { classPropertyName: "languageList", publicName: "languageList", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { logicChanged: "logicChanged", answerChanged: "answerChanged", onLanguageChange: "onLanguageChange" }, ngImport: i0, template: "<div class=\"container-main\" [formGroup]=\"answerForm\">\r\n @switch (question().QuestionType) {\r\n <!-- @case ('LANG') {-->\r\n <!-- <app-answer-lang [question]=\"question\" [langArray]=\"sc.questionary.BaseParams.LanguageList\"/>-->\r\n <!-- }-->\r\n\r\n @case (questionsType.eqLANG) {\r\n <tp-survey-answer-lang\r\n [languageList]=\"languageList()\"\r\n [language]=\"2\"\r\n [viewModel]=\"viewModel()\"\r\n (onLanguageChange)=\"onLanguageChange.emit($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqINFO) {\r\n <tp-survey-answer-info\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"/>\r\n }\r\n\r\n @case (questionsType.eqSS) {\r\n <tp-survey-answer-ss\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqMS) {\r\n <tp-survey-answer-ms\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeMaxAnswersCount]=\"question().AlternativeMaxAnswersCount\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqOD) {\r\n <tp-survey-answer-od\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [minValue]=\"question().ODMinValue\"\r\n [maxValue]=\"question().ODMaxValue\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqOL) {\r\n <tp-survey-answer-ol\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [telephoneInput]=\"question().OLTypeTel\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqSL) {\r\n <tp-survey-answer-sl\r\n formControlName=\"answer\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n [sectionList]=\"visibleSectionList()\"\r\n [multiSelect]=\"question().MultiSelect\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [maxCount]=\"this.question().SLSectionMaxAnswersCount\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqEND) {\r\n <tp-survey-answer-end\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n />\r\n }\r\n }\r\n\r\n <div class=\"container-additional-answer\">\r\n @for (addAnswer of answerForm.controls.additionalAnswers.controls | keyValues; track addAnswer) {\r\n @if (addAnswer.name | getAdditionalValueByValue:visibleAdditionalAnswerList(); as additionalAnswerObject ) {\r\n <tp-survey-answer-additional\r\n [control]=\"addAnswer.control\"\r\n [class.full-width]=\"additionalAnswerObject.AnswerType===AdditionalAnswerType.aatText\"\r\n [answerType]=\"additionalAnswerObject.AnswerType\"\r\n [caption]=\"additionalAnswerObject.MultiLangCaptions | multiLangObjectToHtml:language()\"\r\n [numberMinValue]=\"additionalAnswerObject.NumberMinValue\"\r\n [numberMaxValue]=\"additionalAnswerObject.NumberMaxValue\"\r\n [textMultiline]=\"additionalAnswerObject.TextMultiline\"\r\n [captionPosition]=\"additionalAnswerObject.CaptionPosition\"/>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n", styles: [".container-main{display:flex;flex-flow:column;align-items:center}tp-survey-answer-sl{width:100%}.full-width{width:100%}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto;padding:0 1em}:host-context(.tp-view-desktop) .container-additional-answer{padding:1em;display:flex;flex-flow:column;align-items:baseline;gap:2em}:host-context(.tp-view-tablet) .container-main{width:100%;height:100%;overflow:hidden;display:block}:host-context(.tp-view-tablet) .container-additional-answer{position:absolute;width:80%;left:10%;bottom:0}@media (max-width: 480px){:host-context(.tp-view-desktop) .container-additional-answer{width:100%}}\n"], dependencies: [{ kind: "component", type: AnswerODComponent, selector: "tp-survey-answer-od", inputs: ["minValue", "maxValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AnswerSSComponent, selector: "tp-survey-answer-ss", inputs: ["question", "alternativeList"], outputs: ["onAlternativeClick"] }, { kind: "component", type: AnswerInfoComponent, selector: "tp-survey-answer-info" }, { kind: "component", type: AnswerMSComponent, selector: "tp-survey-answer-ms", inputs: ["question", "alternativeList", "alternativeMaxAnswersCount"], outputs: ["onAlternativeClick"] }, { kind: "component", type: AnswerAdditionalComponent, selector: "tp-survey-answer-additional", inputs: ["control", "answerType", "caption", "numberMinValue", "numberMaxValue", "textMultiline", "captionPosition"] }, { kind: "pipe", type: MultiLangObjectToHtmlPipe, name: "multiLangObjectToHtml" }, { kind: "component", type: AnswerEndComponent, selector: "tp-survey-answer-end" }, { kind: "component", type: AnswerOLComponent, selector: "tp-survey-answer-ol", inputs: ["telephoneInput"] }, { kind: "component", type: AnswerSLComponent, selector: "tp-survey-answer-sl", inputs: ["alternativeList", "sectionList", "multiSelect", "maxCount"] }, { kind: "pipe", type: GetAdditionalValueByValuePipe, name: "getAdditionalValueByValue" }, { kind: "pipe", type: KeyValuesPipe, name: "keyValues" }, { kind: "component", type: AnswerLangComponent, selector: "tp-survey-answer-lang", inputs: ["languageList"], outputs: ["onLanguageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ContainerAnswerComponent, isStandalone: true, selector: "tp-survey-container-answer", inputs: { question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: true, transformFunction: null }, viewModel: { classPropertyName: "viewModel", publicName: "viewModel", isSignal: true, isRequired: true, transformFunction: null }, answers: { classPropertyName: "answers", publicName: "answers", isSignal: true, isRequired: false, transformFunction: null }, developerMode: { classPropertyName: "developerMode", publicName: "developerMode", isSignal: true, isRequired: false, transformFunction: null }, languageList: { classPropertyName: "languageList", publicName: "languageList", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { logicChanged: "logicChanged", answerChanged: "answerChanged", onLanguageChange: "onLanguageChange" }, ngImport: i0, template: "<div class=\"container-main\" [formGroup]=\"answerForm\">\r\n @switch (question().QuestionType) {\r\n\r\n @case (questionsType.eqLANG) {\r\n <tp-survey-answer-lang\r\n [languageList]=\"languageList()\"\r\n [language]=\"2\"\r\n [viewModel]=\"viewModel()\"\r\n (onLanguageChange)=\"onLanguageChange.emit($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqINFO) {\r\n <tp-survey-answer-info\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"/>\r\n }\r\n\r\n @case (questionsType.eqSS) {\r\n <tp-survey-answer-ss\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqMS) {\r\n <tp-survey-answer-ms\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeMaxAnswersCount]=\"question().AlternativeMaxAnswersCount\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqOD) {\r\n <tp-survey-answer-od\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [minValue]=\"question().ODMinValue\"\r\n [maxValue]=\"question().ODMaxValue\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqOL) {\r\n <tp-survey-answer-ol\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [telephoneInput]=\"question().OLTypeTel\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqSL) {\r\n <tp-survey-answer-sl\r\n formControlName=\"answer\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n [sectionList]=\"visibleSectionList()\"\r\n [multiSelect]=\"question().MultiSelect\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [maxCount]=\"this.question().SLSectionMaxAnswersCount\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqEND) {\r\n <tp-survey-answer-end\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n />\r\n }\r\n }\r\n\r\n <div class=\"container-additional-answer\">\r\n @for (addAnswer of answerForm.controls.additionalAnswers.controls | keyValues; track addAnswer) {\r\n @if (addAnswer.name | getAdditionalValueByValue:visibleAdditionalAnswerList(); as additionalAnswerObject ) {\r\n <tp-survey-answer-additional\r\n [control]=\"addAnswer.control\"\r\n [class.full-width]=\"additionalAnswerObject.AnswerType===AdditionalAnswerType.aatText\"\r\n [answerType]=\"additionalAnswerObject.AnswerType\"\r\n [caption]=\"additionalAnswerObject.MultiLangCaptions | multiLangObjectToHtml:language()\"\r\n [numberMinValue]=\"additionalAnswerObject.NumberMinValue\"\r\n [numberMaxValue]=\"additionalAnswerObject.NumberMaxValue\"\r\n [textMultiline]=\"additionalAnswerObject.TextMultiline\"\r\n [captionPosition]=\"additionalAnswerObject.CaptionPosition\"/>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n", styles: [".container-main{display:flex;flex-flow:column;align-items:center}tp-survey-answer-sl{width:100%}.full-width{width:100%}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto;padding:0 1em}:host-context(.tp-view-desktop) .container-additional-answer{padding:1em;display:flex;flex-flow:column;align-items:baseline;gap:2em}:host-context(.tp-view-tablet) .container-main{width:100%;height:100%;overflow:hidden;display:block}:host-context(.tp-view-tablet) .container-additional-answer{position:absolute;width:80%;left:10%;bottom:0}@media (max-width: 480px){:host-context(.tp-view-desktop) .container-additional-answer{width:100%}}\n"], dependencies: [{ kind: "component", type: AnswerODComponent, selector: "tp-survey-answer-od", inputs: ["minValue", "maxValue"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AnswerSSComponent, selector: "tp-survey-answer-ss", inputs: ["question", "alternativeList"], outputs: ["onAlternativeClick"] }, { kind: "component", type: AnswerInfoComponent, selector: "tp-survey-answer-info" }, { kind: "component", type: AnswerMSComponent, selector: "tp-survey-answer-ms", inputs: ["question", "alternativeList", "alternativeMaxAnswersCount"], outputs: ["onAlternativeClick"] }, { kind: "component", type: AnswerAdditionalComponent, selector: "tp-survey-answer-additional", inputs: ["control", "answerType", "caption", "numberMinValue", "numberMaxValue", "textMultiline", "captionPosition"] }, { kind: "pipe", type: MultiLangObjectToHtmlPipe, name: "multiLangObjectToHtml" }, { kind: "component", type: AnswerEndComponent, selector: "tp-survey-answer-end" }, { kind: "component", type: AnswerOLComponent, selector: "tp-survey-answer-ol", inputs: ["telephoneInput"] }, { kind: "component", type: AnswerSLComponent, selector: "tp-survey-answer-sl", inputs: ["alternativeList", "sectionList", "multiSelect", "maxCount"] }, { kind: "pipe", type: GetAdditionalValueByValuePipe, name: "getAdditionalValueByValue" }, { kind: "pipe", type: KeyValuesPipe, name: "keyValues" }, { kind: "component", type: AnswerLangComponent, selector: "tp-survey-answer-lang", inputs: ["languageList"], outputs: ["onLanguageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
297
297
  }
298
298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ContainerAnswerComponent, decorators: [{
299
299
  type: Component,
@@ -312,6 +312,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
312
312
  GetAdditionalValueByValuePipe,
313
313
  KeyValuesPipe,
314
314
  AnswerLangComponent
315
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-main\" [formGroup]=\"answerForm\">\r\n @switch (question().QuestionType) {\r\n <!-- @case ('LANG') {-->\r\n <!-- <app-answer-lang [question]=\"question\" [langArray]=\"sc.questionary.BaseParams.LanguageList\"/>-->\r\n <!-- }-->\r\n\r\n @case (questionsType.eqLANG) {\r\n <tp-survey-answer-lang\r\n [languageList]=\"languageList()\"\r\n [language]=\"2\"\r\n [viewModel]=\"viewModel()\"\r\n (onLanguageChange)=\"onLanguageChange.emit($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqINFO) {\r\n <tp-survey-answer-info\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"/>\r\n }\r\n\r\n @case (questionsType.eqSS) {\r\n <tp-survey-answer-ss\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqMS) {\r\n <tp-survey-answer-ms\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeMaxAnswersCount]=\"question().AlternativeMaxAnswersCount\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqOD) {\r\n <tp-survey-answer-od\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [minValue]=\"question().ODMinValue\"\r\n [maxValue]=\"question().ODMaxValue\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqOL) {\r\n <tp-survey-answer-ol\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [telephoneInput]=\"question().OLTypeTel\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqSL) {\r\n <tp-survey-answer-sl\r\n formControlName=\"answer\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n [sectionList]=\"visibleSectionList()\"\r\n [multiSelect]=\"question().MultiSelect\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [maxCount]=\"this.question().SLSectionMaxAnswersCount\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqEND) {\r\n <tp-survey-answer-end\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n />\r\n }\r\n }\r\n\r\n <div class=\"container-additional-answer\">\r\n @for (addAnswer of answerForm.controls.additionalAnswers.controls | keyValues; track addAnswer) {\r\n @if (addAnswer.name | getAdditionalValueByValue:visibleAdditionalAnswerList(); as additionalAnswerObject ) {\r\n <tp-survey-answer-additional\r\n [control]=\"addAnswer.control\"\r\n [class.full-width]=\"additionalAnswerObject.AnswerType===AdditionalAnswerType.aatText\"\r\n [answerType]=\"additionalAnswerObject.AnswerType\"\r\n [caption]=\"additionalAnswerObject.MultiLangCaptions | multiLangObjectToHtml:language()\"\r\n [numberMinValue]=\"additionalAnswerObject.NumberMinValue\"\r\n [numberMaxValue]=\"additionalAnswerObject.NumberMaxValue\"\r\n [textMultiline]=\"additionalAnswerObject.TextMultiline\"\r\n [captionPosition]=\"additionalAnswerObject.CaptionPosition\"/>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n", styles: [".container-main{display:flex;flex-flow:column;align-items:center}tp-survey-answer-sl{width:100%}.full-width{width:100%}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto;padding:0 1em}:host-context(.tp-view-desktop) .container-additional-answer{padding:1em;display:flex;flex-flow:column;align-items:baseline;gap:2em}:host-context(.tp-view-tablet) .container-main{width:100%;height:100%;overflow:hidden;display:block}:host-context(.tp-view-tablet) .container-additional-answer{position:absolute;width:80%;left:10%;bottom:0}@media (max-width: 480px){:host-context(.tp-view-desktop) .container-additional-answer{width:100%}}\n"] }]
315
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"container-main\" [formGroup]=\"answerForm\">\r\n @switch (question().QuestionType) {\r\n\r\n @case (questionsType.eqLANG) {\r\n <tp-survey-answer-lang\r\n [languageList]=\"languageList()\"\r\n [language]=\"2\"\r\n [viewModel]=\"viewModel()\"\r\n (onLanguageChange)=\"onLanguageChange.emit($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqINFO) {\r\n <tp-survey-answer-info\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"/>\r\n }\r\n\r\n @case (questionsType.eqSS) {\r\n <tp-survey-answer-ss\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqMS) {\r\n <tp-survey-answer-ms\r\n formControlName=\"answer\"\r\n [question]=\"question()\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [alternativeMaxAnswersCount]=\"question().AlternativeMaxAnswersCount\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n (onAlternativeClick)=\"onAlternativeClick($event)\"/>\r\n }\r\n\r\n @case (questionsType.eqOD) {\r\n <tp-survey-answer-od\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [minValue]=\"question().ODMinValue\"\r\n [maxValue]=\"question().ODMaxValue\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqOL) {\r\n <tp-survey-answer-ol\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [telephoneInput]=\"question().OLTypeTel\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqSL) {\r\n <tp-survey-answer-sl\r\n formControlName=\"answer\"\r\n [alternativeList]=\"visibleAlternativeList()\"\r\n [sectionList]=\"visibleSectionList()\"\r\n [multiSelect]=\"question().MultiSelect\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n [maxCount]=\"this.question().SLSectionMaxAnswersCount\"\r\n />\r\n }\r\n\r\n @case (questionsType.eqEND) {\r\n <tp-survey-answer-end\r\n formControlName=\"answer\"\r\n [language]=\"language()\"\r\n [viewModel]=\"viewModel()\"\r\n />\r\n }\r\n }\r\n\r\n <div class=\"container-additional-answer\">\r\n @for (addAnswer of answerForm.controls.additionalAnswers.controls | keyValues; track addAnswer) {\r\n @if (addAnswer.name | getAdditionalValueByValue:visibleAdditionalAnswerList(); as additionalAnswerObject ) {\r\n <tp-survey-answer-additional\r\n [control]=\"addAnswer.control\"\r\n [class.full-width]=\"additionalAnswerObject.AnswerType===AdditionalAnswerType.aatText\"\r\n [answerType]=\"additionalAnswerObject.AnswerType\"\r\n [caption]=\"additionalAnswerObject.MultiLangCaptions | multiLangObjectToHtml:language()\"\r\n [numberMinValue]=\"additionalAnswerObject.NumberMinValue\"\r\n [numberMaxValue]=\"additionalAnswerObject.NumberMaxValue\"\r\n [textMultiline]=\"additionalAnswerObject.TextMultiline\"\r\n [captionPosition]=\"additionalAnswerObject.CaptionPosition\"/>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n", styles: [".container-main{display:flex;flex-flow:column;align-items:center}tp-survey-answer-sl{width:100%}.full-width{width:100%}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto;padding:0 1em}:host-context(.tp-view-desktop) .container-additional-answer{padding:1em;display:flex;flex-flow:column;align-items:baseline;gap:2em}:host-context(.tp-view-tablet) .container-main{width:100%;height:100%;overflow:hidden;display:block}:host-context(.tp-view-tablet) .container-additional-answer{position:absolute;width:80%;left:10%;bottom:0}@media (max-width: 480px){:host-context(.tp-view-desktop) .container-additional-answer{width:100%}}\n"] }]
316
316
  }], ctorParameters: () => [] });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2NvbnRhaW5lci5hbnN3ZXIvY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2NvbnRhaW5lci5hbnN3ZXIvY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDbEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDakgsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFD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dGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBhZGRpdGlvbmFsQW5zd2VyRGVmYXVsdFZhbGlkYXRvcixcclxuICBhZGRpdGlvbmFsQW5zd2VyTnVtYmVyVmFsaWRhdG9yLFxyXG4gIGFuc3dlckRlZmF1bHRWYWxpZGF0b3IsXHJcbiAgYW5zd2VyTVNWYWxpZGF0b3IsXHJcbiAgYW5zd2VyT0RWYWxpZGF0b3IsXHJcbiAgYW5zd2VyT0xWYWxpZGF0b3IsXHJcbiAgYW5zd2VyU2xWYWxpZGF0b3IsXHJcbiAgYW5zd2VyU1NWYWxpZGF0b3JcclxufSBmcm9tICcuL2NvbnRhaW5lci5hbnN3ZXIudmFsaWRhdG9yJztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtBbnN3ZXJTU0NvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLnNzL2Fuc3dlci5zcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Fuc3dlckluZm9Db21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5pbmZvL2Fuc3dlci5pbmZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QW5zd2VyTVNDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5tcy9hbnN3ZXIubXMuY29tcG9uZW50JztcclxuaW1wb3J0IHtLZXlWYWx1ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TXVsdGlMYW5nT2JqZWN0VG9IdG1sUGlwZX0gZnJvbSAnLi4vLi4vLi4vcGlwZS9tdWx0aS5sYW5nLm9iamVjdC50by5odG1sL211bHRpLmxhbmcub2JqZWN0LnRvLmh0bWwucGlwZSc7XHJcbmltcG9ydCB7QW5zd2VyQWRkaXRpb25hbENvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLmFkZGl0aW9uYWwvYW5zd2VyLmFkZGl0aW9uYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtBbnN3ZXJFbmRDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5lbmQvYW5zd2VyLmVuZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZSwgdGFwfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtBbnN3ZXJPTENvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLm9sL2Fuc3dlci5vbC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Fuc3dlclNMQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIuc2wvYW5zd2VyLnNsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0FkZGl0aW9uYWxBbnN3ZXIsIEFuc3dlclNsVHlwZSwgQW5zd2VyVH0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LnR5cGUnO1xyXG5pbXBvcnQge0Fuc3dlck9EQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIub2QvYW5zd2VyLm9kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QW5zd2VyQ2hhbmdlLCBJQ3VycmVudFF1ZXN0aW9uQW5zd2VyLCBJZGJBZGRpdGlvbmFsQW5zd2VyLCBJZGJBbHRlcm5hdGl2ZSwgSWRiQmFzZVBhcmFtc0xhbmd1YWdlLCBJZGJRdWVzdGlvbiwgSWRiU2VjdGlvbn0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LmludGVyZmFjZSc7XHJcbmltcG9ydCB7QWRkaXRpb25hbEFuc3dlclR5cGUsIFF1ZXN0aW9uc1R5cGUsIFZpZXdNb2RlbH0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LmVudW0nO1xyXG5pbXBvcnQge1RwU3VydmV5TG9naWNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3RwLnN1cnZleS5sb2dpYy90cC5zdXJ2ZXkubG9naWMuc2VydmljZSc7XHJcbmltcG9ydCB7TUlTU0lOR19WQUxVRX0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LmNvbnN0JztcclxuaW1wb3J0IHtHZXRBZGRpdGlvbmFsVmFsdWVCeVZhbHVlUGlwZX0gZnJvbSAnLi4vLi4vLi4vcGlwZS9nZXQuYWRkaXRpb25hbC52YWx1ZS5ieS52YWx1ZS9nZXQuYWRkaXRpb25hbC52YWx1ZS5ieS52YWx1ZS5waXBlJztcclxuaW1wb3J0IHtLZXlWYWx1ZXNQaXBlfSBmcm9tICcuLi8uLi8uLi9waXBlL2tleS52YWx1ZXMva2V5LnZhbHVlcy5waXBlJztcclxuaW1wb3J0IHtBbnN3ZXJMYW5nQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIubGFuZy9hbnN3ZXIubGFuZy5jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIElBbnN3ZXJGb3JtIHtcclxuICBhbnN3ZXI6IEZvcm1Db250cm9sPEFuc3dlclQ+O1xyXG4gIGFkZGl0aW9uYWxBbnN3ZXJzOiBGb3JtR3JvdXA8e1xyXG4gICAgW2tleTogc3RyaW5nXTogRm9ybUNvbnRyb2w8QWRkaXRpb25hbEFuc3dlcj5cclxuICB9PjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cC1zdXJ2ZXktY29udGFpbmVyLWFuc3dlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBbnN3ZXJPRENvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBBbnN3ZXJTU0NvbXBvbmVudCxcclxuICAgIEFuc3dlckluZm9Db21wb25lbnQsXHJcbiAgICBBbnN3ZXJNU0NvbXBvbmVudCxcclxuICAgIEFuc3dlckFkZGl0aW9uYWxDb21wb25lbnQsXHJcbiAgICBLZXlWYWx1ZVBpcGUsXHJcbiAgICBNdWx0aUxhbmdPYmplY3RUb0h0bWxQaXBlLFxyXG4gICAgQW5zd2VyRW5kQ29tcG9uZW50LFxyXG4gICAgQW5zd2VyT0xDb21wb25lbnQsXHJcbiAgICBBbnN3ZXJTTENvbXBvbmVudCxcclxuICAgIEdldEFkZGl0aW9uYWxWYWx1ZUJ5VmFsdWVQaXBlLFxyXG4gICAgS2V5VmFsdWVzUGlwZSxcclxuICAgIEFuc3dlckxhbmdDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWluZXIuYW5zd2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckFuc3dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBxdWVzdGlvbiA9IGlucHV0LnJlcXVpcmVkPElkYlF1ZXN0aW9uPigpO1xyXG4gIGxhbmd1YWdlID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xyXG4gIHZpZXdNb2RlbCA9IGlucHV0LnJlcXVpcmVkPFZpZXdNb2RlbD4oKTtcclxuICBhbnN3ZXJzID0gaW5wdXQ8SUN1cnJlbnRRdWVzdGlvbkFuc3dlcj4oKTtcclxuICBkZXZlbG9wZXJNb2RlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGxhbmd1YWdlTGlzdCA9IGlucHV0LnJlcXVpcmVkPEFycmF5PElkYkJhc2VQYXJhbXNMYW5ndWFnZT4+KCk7XHJcbiAgdmlzaWJsZUFsdGVybmF0aXZlTGlzdCA9IHNpZ25hbDxBcnJheTxJZGJBbHRlcm5hdGl2ZT4+KFtdKTtcclxuICB2aXNpYmxlU2VjdGlvbkxpc3QgPSBzaWduYWw8QXJyYXk8SWRiU2VjdGlvbj4+KFtdKTtcclxuICB2aXNpYmxlQWRkaXRpb25hbEFuc3dlckxpc3QgPSBzaWduYWw8QXJyYXk8SWRiQWRkaXRpb25hbEFuc3dlcj4+KFtdKTtcclxuICBsb2dpY0NoYW5nZWQgPSBvdXRwdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuICBhbnN3ZXJDaGFuZ2VkID0gb3V0cHV0PEFuc3dlckNoYW5nZT4oKTtcclxuICBvbkxhbmd1YWdlQ2hhbmdlID0gb3V0cHV0PG51bWJlcj4oKTtcclxuXHJcbiAgcXVlc3Rpb25zVHlwZSA9IFF1ZXN0aW9uc1R5cGU7XHJcbiAgYW5zd2VyRm9ybTogRm9ybUdyb3VwPElBbnN3ZXJGb3JtPjtcclxuICByZWFkb25seSBBZGRpdGlvbmFsQW5zd2VyVHlwZSA9IEFkZGl0aW9uYWxBbnN3ZXJUeXBlO1xyXG4gICNhbHRlcm5hdGl2ZVNlcXVlbmNlQ2xpY2tzOiBBcnJheTxbbnVtYmVyLCBudW1iZXJdPiA9IFtdO1xyXG4gIHJlYWRvbmx5ICNsb2dpYyA9IGluamVjdChUcFN1cnZleUxvZ2ljU2VydmljZSk7XHJcbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hbnN3ZXJGb3JtID0gbmV3IEZvcm1Hcm91cDxJQW5zd2VyRm9ybT4oe1xyXG4gICAgICBhbnN3ZXI6IG5ldyBGb3JtQ29udHJvbDxBbnN3ZXJUPihudWxsICksXHJcbiAgICAgIGFkZGl0aW9uYWxBbnN3ZXJzOiBuZXcgRm9ybUdyb3VwKHt9KSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbnN3ZXJWYWx1ZSA9IHRoaXMuYW5zd2VycygpPy5xdWVzdGlvbj8uQW5zd2VyVmFsdWUgPz8gbnVsbDtcclxuICAgIGNvbnN0IGFuc3dlclZhbHVlQ2xlYXIgPSBhbnN3ZXJWYWx1ZSA9PT0gTUlTU0lOR19WQUxVRSA/IG51bGwgOiBhbnN3ZXJWYWx1ZTtcclxuICAgIHRoaXMuYW5zd2VyRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgYW5zd2VyOiBhbnN3ZXJWYWx1ZUNsZWFyLFxyXG4gICAgICBhZGRpdGlvbmFsQW5zd2VyczogdGhpcy5hbnN3ZXJzKCk/LnF1ZXN0aW9uPy5BbnN3ZXJBZGRpdGlvbmFsXHJcbiAgICB9LCB7ZW1pdEV2ZW50OmZhbHNlfSk7XHJcblxyXG4gICAgdGhpcy4jYWx0ZXJuYXRpdmVTZXF1ZW5jZUNsaWNrcyA9IHRoaXMuYW5zd2VycygpPy5xdWVzdGlvbj8uQWx0ZXJuYXRpdmVTZXF1ZW5jZUNsaWNrcyA/PyBbXTtcclxuICAgIHRoaXMuI3VwZGF0ZUFsdGVybmF0aXZlc0FuZFNlY3Rpb25zKCk7XHJcbiAgICB0aGlzLiN1cGRhdGVBZGRpdGlvbmFsQW5zd2Vycyh0cnVlKTtcclxuICAgIHRoaXMuI2FkZFZhbGlkYXRvcigpO1xyXG5cclxuICAgIHRoaXMuYW5zd2VyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcclxuICAgICB0YXAoKCkgPT4gdGhpcy5sb2dpY0NoYW5nZWQuZW1pdCh0aGlzLiNnZXRMb2dpY1ZhcnMoKSkpLCAvL9GI0LvRkdC8INC90L7QstGL0LUg0LvQvtCz0LjRh9C10YHQutC40LUg0L/QtdGA0LXQvNC10L3QvdGL0LUo0LzQvtC20LXRgiDQvtCx0L3QvtCy0LjRgtGM0YHRjyDRgdC/0LjRgdC+0LogYWRkaXRpb25hbEFuc3dlcnMpXHJcbiAgICAgdGFwKCgpID0+IHRoaXMuI3VwZGF0ZUFkZGl0aW9uYWxBbnN3ZXJzKGZhbHNlKSksIC8v0L/QtdGA0LXRgdGC0YDQsNC40LLQsNC10LwgYWRkaXRpb25hbEFuc3dlcnNcclxuICAgICBtYXAodmFsdWVzID0+IHtcclxuICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9ICh0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYWRkaXRpb25hbEFuc3dlcnMgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgIGNvbnN0IGFkZGl0aW9uYWxBbnN3ZXJOb3JtYWxpemVkOiBSZWNvcmQ8bnVtYmVyLCBBZGRpdGlvbmFsQW5zd2VyPiA9IHt9O1xyXG4gICAgICAgdGhpcy5xdWVzdGlvbigpLkFkZGl0aW9uYWxBbnN3ZXJsaXN0LmZvckVhY2goYWEgPT4ge1xyXG4gICAgICAgICBjb25zdCBpc1Zpc2libGUgPSB0aGlzLnZpc2libGVBZGRpdGlvbmFsQW5zd2VyTGlzdCgpLmZpbmQoZmFhID0+IGZhYS5WYWx1ZSA9PT0gYWEuVmFsdWUpO1xyXG4gICAgICAgICBpZiAoaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgYWRkaXRpb25hbEFuc3dlck5vcm1hbGl6ZWRbYWEuVmFsdWVdID0gISF2YWx1ZXMuYWRkaXRpb25hbEFuc3dlcnMgPyB2YWx1ZXMuYWRkaXRpb25hbEFuc3dlcnNbYWEuVmFsdWVdISA6IE1JU1NJTkdfVkFMVUU7XHJcbiAgICAgICAgICAgZm9ybUdyb3VwLmdldChhYS5WYWx1ZS50b1N0cmluZygpKT8uZW5hYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSlcclxuICAgICAgICAgfSBlbHNlICB7XHJcbiAgICAgICAgICAgYWRkaXRpb25hbEFuc3dlck5vcm1hbGl6ZWRbYWEuVmFsdWVdID0gTUlTU0lOR19WQUxVRTtcclxuICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KGFhLlZhbHVlLnRvU3RyaW5nKCkpPy5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSlcclxuICAgICAgICAgfVxyXG4gICAgICAgfSk7XHJcbiAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICBhbnN3ZXI6dmFsdWVzLmFuc3dlcixcclxuICAgICAgICAgYWRkaXRpb25hbEFuc3dlcnM6IGFkZGl0aW9uYWxBbnN3ZXJOb3JtYWxpemVkLFxyXG4gICAgICAgfVxyXG4gICAgIH0pLFxyXG4gICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxyXG4gICAgKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuYW5zd2VyQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICBndWlkOiB0aGlzLnF1ZXN0aW9uKCkuUXVlc3Rpb25HdWlkLFxyXG4gICAgICAgIGlzQ29tcGxldGU6IHRoaXMuYW5zd2VyRm9ybS52YWxpZCxcclxuICAgICAgICBhbnN3ZXI6IGRhdGEuYW5zd2VyISxcclxuICAgICAgICBhZGRpdGlvbmFsQW5zd2VyczogZGF0YS5hZGRpdGlvbmFsQW5zd2VycyBhcyBSZWNvcmQ8bnVtYmVyLCBBZGRpdGlvbmFsQW5zd2VyPixcclxuICAgICAgICBsb2dpY1ZhcnM6IHRoaXMuI2dldExvZ2ljVmFycygpLFxyXG4gICAgICAgIHZpZXdlZEFsdGVybmF0aXZlVmFsdWVzOiB0aGlzLnZpc2libGVBbHRlcm5hdGl2ZUxpc3QoKS5tYXAoYWx0ID0+IGFsdC5WYWx1ZSksXHJcbiAgICAgICAgdmlld2VkU2VjdGlvbkd1aWRzOiAgdGhpcy52aXNpYmxlU2VjdGlvbkxpc3QoKS5tYXAoYWx0ID0+IGFsdC5TZWN0aW9uR3VpZCksXHJcbiAgICAgICAgYWx0ZXJuYXRpdmVTZXF1ZW5jZUNsaWNrczogQXJyYXkuZnJvbSh0aGlzLiNhbHRlcm5hdGl2ZVNlcXVlbmNlQ2xpY2tzKVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy4jc2V0RGVmYXVsdEFuc3dlcnMoKTtcclxuICB9XHJcblxyXG4gICNhZGRWYWxpZGF0b3IoKTogdm9pZHtcclxuICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbigpO1xyXG4gICAgdGhpcy5hbnN3ZXJGb3JtLmNvbnRyb2xzLmFuc3dlci5hZGRWYWxpZGF0b3JzKGFuc3dlckRlZmF1bHRWYWxpZGF0b3IoKSk7XHJcblxyXG4gICAgc3dpdGNoIChxdWVzdGlvbi5RdWVzdGlvblR5cGUpe1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFTUzoge1xyXG4gICAgICAgIHRoaXMuYW5zd2VyRm9ybS5jb250cm9scy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhhbnN3ZXJTU1ZhbGlkYXRvcigpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxTVM6IHtcclxuICAgICAgICB0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoYW5zd2VyTVNWYWxpZGF0b3IodGhpcy52aXNpYmxlQWx0ZXJuYXRpdmVMaXN0KCkubGVuZ3RoLCAgdGhpcy5xdWVzdGlvbigpLkFsdGVybmF0aXZlTWluQW5zd2Vyc0NvdW50LCB0aGlzLnF1ZXN0aW9uKCkuQWx0ZXJuYXRpdmVNYXhBbnN3ZXJzQ291bnQpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxT0Q6IHtcclxuICAgICAgICB0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoYW5zd2VyT0RWYWxpZGF0b3IocXVlc3Rpb24uT0RNaW5WYWx1ZSwgcXVlc3Rpb24uT0RNYXhWYWx1ZSkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFPTDoge1xyXG4gICAgICAgIHRoaXMuYW5zd2VyRm9ybS5jb250cm9scy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhhbnN3ZXJPTFZhbGlkYXRvcigpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxU0w6IHtcclxuICAgICAgICB0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoYW5zd2VyU2xWYWxpZGF0b3IodGhpcy5xdWVzdGlvbigpLlJlcXVpcmVBbGxBbnN3ZXJzLCB0aGlzLnF1ZXN0aW9uKCkuU0xTZWN0aW9uTWluQW5zd2Vyc0NvdW50LCB0aGlzLnZpc2libGVTZWN0aW9uTGlzdCgpKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICNzZXREZWZhdWx0QW5zd2VycygpOiB2b2lke1xyXG4gICAgY29uc3QgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uKCk7XHJcbiAgICBjb25zdCBpc0xhbmcgPSBxdWVzdGlvbi5RdWVzdGlvblR5cGUgPT09IFF1ZXN0aW9uc1R5cGUuZXFMQU5HO1xyXG4gICAgY29uc3QgaXNJbmZvID0gcXVlc3Rpb24uUXVlc3Rpb25UeXBlID09PSBRdWVzdGlvbnNUeXBlLmVxSU5GTztcclxuICAgIGNvbnN0IGlzRW5kICA9IHF1ZXN0aW9uLlF1ZXN0aW9uVHlwZSA9PT0gUXVlc3Rpb25zVHlwZS5lcUVORDtcclxuICAgIGNvbnN0IGlzU1NNUyA9IChxdWVzdGlvbi5RdWVzdGlvblR5cGUgPT09IFF1ZXN0aW9uc1R5cGUuZXFTUyB8fCBxdWVzdGlvbi5RdWVzdGlvblR5cGUgPT09IFF1ZXN0aW9uc1R5cGUuZXFNUykgJiYgKHRoaXMudmlzaWJsZUFsdGVybmF0aXZlTGlzdCgpLmxlbmd0aCA9PT0gMCk7XHJcblxyXG4gICAgaWYgKGlzSW5mbyB8fCBpc0VuZCB8fCBpc1NTTVMgfHwgaXNMYW5nKSB7XHJcbiAgICAgIGxldCBkZWZhdWx0QW5zd2VyO1xyXG4gICAgICBzd2l0Y2ggKHF1ZXN0aW9uLlF1ZXN0aW9uVHlwZSkge1xyXG4gICAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcU1TOiBkZWZhdWx0QW5zd2VyID0gW107IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcVNTOiBkZWZhdWx0QW5zd2VyID0gMDsgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDogZGVmYXVsdEFuc3dlciA9IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8v0LzQvtC20LXRgiDQstC+0LfQvdC40LrQvdGD0YLRjCDRgdC40YLRg9Cw0YbQuNGPLCDQutC+0LPQtNCwINC90LXRgiDQsNC70YzRgtC10YDQvdCw0YLQuNCyINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPLtCyINGN0YLQvtC8INGB0LvRg9GH0LDQtSDQstC+0L/RgNC+0YEg0L/QvtC60LDQt9GL0LLQsNGC0Ywg0L3QtSDQvdGD0LbQvdC+LCDQutCw0Log0L7RgtCy0LXRgiDQt9Cw0L/QuNGB0YvQstCw0LXQvCAwINC4INC/0LXRgNC10YXQvtC00LjQvCDQvdCwINGB0LvQtdC00YPRjtGJ0LjQuVxyXG4gICAgICB0aGlzLmFuc3dlckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgYW5zd2VyOiBkZWZhdWx0QW5zd2VyXHJcbiAgICAgIH0sIHtlbWl0RXZlbnQ6IHRydWV9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvL9GB0L7QsdC40YDQsNC10Lwg0LLRgdC1INC70L7Qs9C40YfQtdGB0LrQuNC1INC/0LXRgNC10LzQtdC90L3Ri9C1LCDQutC+0YLQvtGA0YvQtSDQs9C10L3QtdGA0LjRgiDQstC+0L/RgNC+0YFcclxuICAjZ2V0TG9naWNWYXJzKCk6IFJlY29yZDxzdHJpbmcsIGFueT57XHJcbiAgICBjb25zdCBxdWVzdGlvblR5cGUgPSB0aGlzLnF1ZXN0aW9uKCkuUXVlc3Rpb25UeXBlO1xyXG4gICAgY29uc3QgYW5zd2VyID0gdGhpcy5hbnN3ZXJGb3JtLmNvbnRyb2xzLmFuc3dlci52YWx1ZTtcclxuICAgIGNvbnN0IGxvZ2ljT2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcblxyXG4gICAgLy/Qv9C10YDQtdC80LXQvdC90LDRjyDRgdCw0LzQvtCz0L4g0LLQvtC/0YDQvtGB0LBcclxuICAgIGNvbnN0IHF1ZXN0aW9uU3lzTmFtZSA9IHRoaXMucXVlc3Rpb24oKS5TeXNOYW1lO1xyXG5cclxuICAgIC8v0L7RgtCy0LXRgiDQvdCwINC+0YHQvdC+0LLQvdC+0Lkg0LLQvtC/0YDQvtGBXHJcbiAgICBsb2dpY09ialtxdWVzdGlvblN5c05hbWVdID0gdGhpcy5hbnN3ZXJGb3JtLnZhbHVlLmFuc3dlcjtcclxuXHJcbiAgICBzd2l0Y2ggKHF1ZXN0aW9uVHlwZSkge1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFTUzoge1xyXG4gICAgICAgIC8v0LrQsNC20LTQsNGPINCw0LvRjNGC0LXRgNC90LDRgtC40LLQsCDQuNC80LXQtdGCINGB0LLQvtGOINC/0LXRgNC10LzQtdC90L3Rg9GOLCAxINC90LDQttCw0YLQsCwgMCDQvdC1INC90LDQttCw0YLQsCDQuNC70Lgg0YHQutGA0YvRgtCwKNGB0LrRgNGL0YLQsCDRgdC+0LzQvdC40YLQtdC70YzQvdC+LCDRh9GC0L4g0Y3RgtC+INC/0YDQsNCy0LjQu9GM0L3QvilcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uKCkuQWx0ZXJuYXRpdmVsaXN0LmZvckVhY2goIGFsdCA9PiBsb2dpY09ialtgJHtxdWVzdGlvblN5c05hbWV9JHthbHQuU3lzTmFtZX1gXSA9IGFuc3dlciA9PT0gYWx0LlZhbHVlID8gMSA6IDApOyAvLyDQv9C10YDQtdC80LXQvdC90YvQtSDQsNC70YzRgtC10YDQvdCw0YLQuNCyXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcU1TOiB7XHJcbiAgICAgICAgY29uc3QgYW5zd2VycyA9IEFycmF5LmlzQXJyYXkodGhpcy5hbnN3ZXJGb3JtLnZhbHVlLmFuc3dlcikgPyB0aGlzLmFuc3dlckZvcm0udmFsdWUuYW5zd2VyIDogW107XHJcbiAgICAgICAgLy/QutCw0LbQtNCw0Y8g0LDQu9GM0YLQtdGA0L3QsNGC0LjQstCwINC40LzQtdC10YIg0YHQstC+0Y4g0L/QtdGA0LXQvNC10L3QvdGD0Y4sIDEg0L3QsNC20LDRgtCwLCAwINC90LUg0L3QsNC20LDRgtCwINC40LvQuCDRgdC60YDRi9GC0LAo0YHQutGA0YvRgtCwINGB0L7QvNC90LjRgtC10LvRjNC90L4sINGH0YLQviDRjdGC0L4g0L/RgNCw0LLQuNC70YzQvdC+KVxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24oKS5BbHRlcm5hdGl2ZWxpc3QuZm9yRWFjaCggYWx0ID0+IGxvZ2ljT2JqW2Ake3F1ZXN0aW9uU3lzTmFtZX0ke2FsdC5TeXNOYW1lfWBdID0gYW5zd2Vycy5maW5kKHZhbCA9PiB2YWwgPT09IGFsdC5WYWx1ZSkgPyAxIDogMCk7IC8vINC/0LXRgNC10LzQtdC90L3Ri9C1INCw0LvRjNGC0LXRgNC90LDRgtC40LJcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxT0w6IHtcclxuICAgICAgICAvL9C70L7Qs9C40YfQtdGB0LrQsNGPINC/0LXRgNC10LzQtdC90L3QsNGPINC00LvRjyBPTCDQstC+0L/RgNC+0YHQsCAtIDEsINCwINC90LUg0YLQviDRh9GC0L4g0LLQstC10LvQuFxyXG4gICAgICAgIGxvZ2ljT2JqW3F1ZXN0aW9uU3lzTmFtZV0gPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFTTDoge1xyXG4gICAgICAgIC8q0KLRg9GCINGB0LvQvtC20L3QtdC1INGH0LXQvCDQsiDQvtGB0YLQsNC70YzQvdGL0YUg0YLQuNC/0LDRhSDQstC+0L/RgNC+0YHQvtCyLlxyXG4gICAgICAgICogMS4g0JvQvtCz0LjRh9C10YHQutCw0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LTQu9GPIFNMINCy0L7Qv9GA0L7RgdCwXHJcbiAgICAgICAgKiAyLiDQm9C+0LPQuNGH0LXRgdC60LDRjyDQv9C10YDQtdC80LXQvdC90LDRjyDQtNC70Y8g0LrQsNC20LTQvtC5INGB0LXQutGG0LjQuFxyXG4gICAgICAgICogMy4g0JvQvtCz0LjRh9C10YHQutC40LUg0L/QtdGA0LXQvNC10L3QvdGL0LUg0LTQu9GPINC60LDQttC00L7QuSDQsNC70YzRgtC10YDQvdCw0YLQuNCy0YsgKyDRgdC10LrRhtC40LhcclxuICAgICAgICAqICovXHJcblxyXG4gICAgICAgIC8vMS4g0JvQvtCz0LjRh9C10YHQutCw0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LTQu9GPIFNMINCy0L7Qv9GA0L7RgdCwIC0gMSwg0LAg0L3QtSDRgtC+INGH0YLQviDQstCy0LXQu9C4XHJcbiAgICAgICAgbG9naWNPYmpbcXVlc3Rpb25TeXNOYW1lXSA9IDE7XHJcblxyXG4gICAgICAgIC8v0JrQsNC20LTQsNGPINGB0LXQutGG0LjRjyDQtNC+0LvQttC90Ysg0LjQvNC10YLRjCDRgdCy0L7RjiDQu9C+0LPQuNGH0LXRgdC60YPRjiDQv9C10YDQtdC80LXQvdC90YPRjiwgYXJyYXk8bnVtYmVyPiDQtdGB0LvQuCBtdWx0aXNlbGVjdCwgbnVtYmVyINC10YHQu9C4IG11bHRpc2VsZWN0ID0gZmFsc2UsIC05NyDQtdGB0LvQuCDRgdC10LrRhtC40Y8g0L3QtSDQsdGL0LvQsCDQv9C+0LrQsNC30LDQvdCwLlxyXG4gICAgICAgIC8vKyDQtNC70Y8g0LrQsNC20LTQvtC5INGB0LXQutGG0LjQuCDQvdGD0LbQvdC+INC00L7QsdCw0LLQu9GP0YLRjCDQu9C+0LPQuNGH0LXRgdC60LjQtSDQv9C10YDQtdC80LXQvdC90YvQtSDQtNC70Y8g0LrQsNC20LTQvtC5INCw0LvRjNGC0LXRgNC90LDRgtC40LLRiy4gMSDQvdCw0LbQsNGC0LAsIDAg0L7RgtC20LDRgtCwLCAtOTcg0LXRgdC70Lgg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstCwINC90LUg0LHRi9C70LAg0L/QvtC60LDQt9Cw0L3QsC5cclxuICAgICAgICBjb25zdCBmdWxsQW5zd2VycyA9IHRoaXMuYW5zd2VyRm9ybS52YWx1ZS5hbnN3ZXIgYXMgQW5zd2VyU2xUeXBlO1xyXG4gICAgICAgIGNvbnN0IHZpc2libGVBbHRlcm5hdGl2ZUxpc3QgPSB0aGlzLnZpc2libGVBbHRlcm5hdGl2ZUxpc3QoKS5tYXAoYWx0ID0+IGFsdC5WYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbigpLlNlY3Rpb25saXN0LmZvckVhY2goc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzZWN0aW9uU3lzTmFtZSA9IHNlY3Rpb24uU3lzTmFtZTtcclxuXHJcbiAgICAgICAgICAvL9C10YHQu9C4IHVuZGVmaW5lZCwg0YLQviDQt9Cw0LzQtdC90LjQvCDQvdCwIC05NyDRjdGC0L4g0LfQvdCw0YfQuNGCINGB0LXQutGG0LjRjyDQvdC1INCx0YvQu9CwINC/0L7QutCw0LfQsNC90LAuXHJcbiAgICAgICAgICBjb25zdCBzZWN0aW9uQW5zd2VyID0gZnVsbEFuc3dlcnNbc2VjdGlvbi5TZWN0aW9uR3VpZC50b1N0cmluZygpXSA/PyBNSVNTSU5HX1ZBTFVFO1xyXG5cclxuICAgICAgICAgIC8vMi4g0LTQvtCx0LDQstC70Y/QtdC8INC/0LXRgNC10LzQtdC90L3Rg9GOINGB0LDQvNC+0Lkg0YHQtdC60YbQuNC4LlxyXG4gICAgICAgICAgbG9naWNPYmpbc2VjdGlvblN5c05hbWVdID0gc2VjdGlvbkFuc3dlcjtcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb24oKS5BbHRlcm5hdGl2ZWxpc3QuZm9yRWFjaChhbHRlcm5hdGl2ZSA9PiB7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uQWx0ZXJuYXRpdmVTeXNOYW1lID0gYCR7c2VjdGlvblN5c05hbWV9JHthbHRlcm5hdGl2ZS5TeXNOYW1lfWA7XHJcbiAgICAgICAgICAgIC8v0YHQtdC60YbQuNGPINC90LUg0LHRi9C70LAg0L/QvtC60LDQt9Cw0L3QsCwg0LfQvdCw0YfQuNGCINCw0LvRjNGC0LXRgNC90LDRgtC40LLRiyDRgtC+0LbQtVxyXG4gICAgICAgICAgICBpZiAoc2VjdGlvbkFuc3dlciA9PT0gTUlTU0lOR19WQUxVRSkgIHtcclxuICAgICAgICAgICAgICBsb2dpY09ialtzZWN0aW9uQWx0ZXJuYXRpdmVTeXNOYW1lXSA9IE1JU1NJTkdfVkFMVUU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgLy/RgdC90LDRh9Cw0LvQsCDQvdGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCDQsdGL0LvQsCDQu9C4INC/0L7QutCw0LfQsNC90LAg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstCwLCDQtdGB0LvQuCDQvdC10YJcclxuICAgICAgICAgICAgICAvL9Cw0LvRjNGC0LXRgNC90LDRgtC40LLRiyDQvdC10YIg0LIg0YHQv9C40YHQutC1INC/0L7QutCw0LfQsNC90L3Ri9GFXHJcbiAgICAgICAgICAgICAgaWYgKCF2aXNpYmxlQWx0ZXJuYXRpdmVMaXN0LmZpbmQodmlzaWJsZVZhbCA9PiB2aXNpYmxlVmFsID09PSBhbHRlcm5hdGl2ZS5WYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGxvZ2ljT2JqW3NlY3Rpb25BbHRlcm5hdGl2ZVN5c05hbWVdID0gTUlTU0lOR19WQUxVRTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy/QsNC70YzRgtC10YDQvdCw0YLQuNCy0Ysg0LXRgdGC0Ywg0LIg0YHQv9C40YHQutC1INC/0L7QutCw0LfQsNC90L3Ri9GFLCDQvdGD0LbQvdC+INGD0LfQvdCw0YLRjCDQsdGL0LvQsCDQvdCw0LbQsNGC0LAg0LjQu9C4INC90LXRgi5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzUHJlc3NlZCA9IEFycmF5LmlzQXJyYXkoc2VjdGlvbkFuc3dlcikgPyBzZWN0aW9uQW5zd2VyLmluY2x1ZGVzKGFsdGVybmF0aXZlLlZhbHVlKSA6IHNlY3Rpb25BbnN3ZXIgPT09IGFsdGVybmF0aXZlLlZhbHVlO1xyXG4gICAgICAgICAgICAgICAgbG9naWNPYmpbc2VjdGlvbkFsdGVybmF0aXZlU3lzTmFtZV0gPSBpc1ByZXNzZWQgPyAxIDogMDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/Qu9C+0LPQuNGH0LXRgdC60LjQtSDQv9C10YDQtdC80LXQvdC90YvQtSDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9GFINCy0L7Qv9GA0L7RgdC+0LIuXHJcbiAgICB0aGlzLnF1ZXN0aW9uKCkuQWRkaXRpb25hbEFuc3dlcmxpc3QuZm9yRWFjaChhYSA9PiB7XHJcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxBbnN3ZXIgPSAhIXRoaXMuYW5zd2VyRm9ybS52YWx1ZS5hZGRpdGlvbmFsQW5zd2VycyA/IHRoaXMuYW5zd2VyRm9ybS52YWx1ZS5hZGRpdGlvbmFsQW5zd2VycyFbYWEuVmFsdWUudG9TdHJpbmcoKV0gOiBNSVNTSU5HX1ZBTFVFO1xyXG4gICAgICBjb25zdCBhZGRpdGlvbmFsQW5zd2VyU3lzTmFtZSA9IGAke3F1ZXN0aW9uU3lzTmFtZX0ke2FhLlN5c05hbWV9YDtcclxuICAgICAgaWYgKGFkZGl0aW9uYWxBbnN3ZXIgPT09IE1JU1NJTkdfVkFMVUUpIHtcclxuICAgICAgICAvL9C00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0Lkg0L7RgtCy0LXRgiDQvdC1INCx0YvQuyDQv9C+0LrQsNC30LDQvSwgKNGB0LrRgNGL0YIg0L/QviDQu9C+0LPQuNC60LUpXHJcbiAgICAgICAgbG9naWNPYmpbYWRkaXRpb25hbEFuc3dlclN5c05hbWVdID0gTUlTU0lOR19WQUxVRTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvL9C10YHQu9C4INC90LAg0LLQvtC/0YDQvtGBINC90LUg0L7RgtCy0LXRh9Cw0LvQuChudWxsKSwg0Y3RgtC+0YIg0YHQsNC80YvQuSBudWxsINC4INC00L7QsdCw0LLQu9GP0LXQvCDQutCw0Log0L7RgtCy0LXRgi5cclxuICAgICAgICBpZiAoYWRkaXRpb25hbEFuc3dlciA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgbG9naWNPYmpbYWRkaXRpb25hbEFuc3dlclN5c05hbWVdID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy/QtdGB0LvQuCDQstC+0L/RgNC+0YEg0YLQuNC/0LAg0YLQtdC60YHRgiwg0LrQsNC6INC/0LXRgNC10LzQtdC90L3Rg9GOINC00L7QsdCw0LLQuNC8IDEsINCyINC+0YHRgtCw0LvRjNC90YvRhSDRgdC70YPRh9Cw0Y/RhSDRgdCw0Lwg0L7RgtCy0LXRgi5cclxuICAgICAgICAgIGxvZ2ljT2JqW2FkZGl0aW9uYWxBbnN3ZXJTeXNOYW1lXSA9IGFhLkFuc3dlclR5cGUgPT09IEFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdFRleHQgPyAxIDogYWRkaXRpb25hbEFuc3dlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxvZ2ljT2JqO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZUFsdGVybmF0aXZlc0FuZFNlY3Rpb25zKCk6IHZvaWR7XHJcbiAgICBjb25zdCBkZXZlbG9wZXJNb2RlID0gdGhpcy5kZXZlbG9wZXJNb2RlKCk7XHJcbiAgICAvL9GE0LjQu9GM0YLRgNGD0LXQvCDQsNC70YzRgtC10YDQvdCw0YLQuNCy0YssXHJcbiAgICBjb25zdCBmaWx0ZXJlZEFsdGVybmF0aXZlTGlzdCA9IHRoaXMucXVlc3Rpb24oKS5BbHRlcm5hdGl2ZWxpc3QuZmlsdGVyKGFsdCA9PiBkZXZlbG9wZXJNb2RlIHx8IHRoaXMuI2xvZ2ljLmV4ZWN1dGVMb2dpYyhhbHQuRW5hYmxlRXhwcmVzc2lvbikpO1xyXG5cclxuICAgIC8v0YTQuNC70YzRgtGA0YPQtdC8INGB0LXQutGG0LjQuCxcclxuICAgIGNvbnN0IGZpbHRlcmVkU2VjdGlvbkxpc3QgPSB0aGlzLnF1ZXN0aW9uKCkuU2VjdGlvbmxpc3QuZmlsdGVyKHNlYyA9PiBkZXZlbG9wZXJNb2RlIHx8IHRoaXMuI2xvZ2ljLmV4ZWN1dGVMb2dpYyhzZWMuRW5hYmxlRXhwcmVzc2lvbikpO1xyXG5cclxuICAgIC8v0LzQtdC90Y/QtdC8INGA0LDRgdC/0L7Qu9C+0LbQtdC90LjQtSDRgtC10YUsINC60L7RgtC+0YDRi9C1INGN0YLQvtCz0L4g0YLRgNC10LHRg9GO0YIg0Lgg0L7QsdC90L7QstC70Y/QtdC8INCz0LvQvtCx0LDQu9GM0L3Rg9GOINC/0LXRgNC10LzQtdC90L3Rg9GOXHJcbiAgICB0aGlzLnZpc2libGVBbHRlcm5hdGl2ZUxpc3Quc2V0KHRoaXMuI2FycmFuZ2VSb3RhdGVkTGlzdChmaWx0ZXJlZEFsdGVybmF0aXZlTGlzdCkpO1xyXG4gICAgLy/QtNC70Y8g0YHQtdC60YbQuNC5INGC0L7QttC1INGB0LDQvNC+0LVcclxuICAgIHRoaXMudmlzaWJsZVNlY3Rpb25MaXN0LnNldCh0aGlzLiNhcnJhbmdlUm90YXRlZExpc3QoZmlsdGVyZWRTZWN0aW9uTGlzdCkpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZUFkZGl0aW9uYWxBbnN3ZXJzKGlzSW5pdDogYm9vbGVhbik6IHZvaWR7XHJcbiAgICBjb25zdCBkZXZlbG9wZXJNb2RlID0gdGhpcy5kZXZlbG9wZXJNb2RlKCk7XHJcbiAgICBjb25zdCBmb3JtR3JvdXAgPSAodGhpcy5hbnN3ZXJGb3JtLmNvbnRyb2xzLmFkZGl0aW9uYWxBbnN3ZXJzIGFzIEZvcm1Hcm91cCk7XHJcblxyXG4gICAgaWYgKGlzSW5pdCkge1xyXG4gICAgICB0aGlzLnF1ZXN0aW9uKCkuQWRkaXRpb25hbEFuc3dlcmxpc3QuZm9yRWFjaChhYSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChhYS5BbnN3ZXJUeXBlKSB7XHJcbiAgICAgICAgICBjYXNlIEFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdE51bWJlcjogIGZvcm1Hcm91cC5hZGRDb250cm9sKGFhLlZhbHVlLnRvU3RyaW5nKCksIG5ldyBGb3JtQ29udHJvbDxudW1iZXIgIHwgbnVsbD4obnVsbCx7dmFsaWRhdG9yczogW2FkZGl0aW9uYWxBbnN3ZXJEZWZhdWx0VmFsaWRhdG9yKGFhLklzUmVxdWlyZWQpLCBhZGRpdGlvbmFsQW5zd2VyTnVtYmVyVmFsaWRhdG9yKGFhLklzUmVxdWlyZWQsIGFhLk51bWJlck1pblZhbHVlLCBhYS5OdW1iZXJNYXhWYWx1ZSldfSksIHtlbWl0RXZlbnQ6IGZhbHNlfSk7IGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBBZGRpdGlvbmFsQW5zd2VyVHlwZS5hYXRUZXh0OiAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChhYS5WYWx1ZS50b1N0cmluZygpLCBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nICB8IG51bGw+KG51bGwse3ZhbGlkYXRvcnM6IFthZGRpdGlvbmFsQW5zd2VyRGVmYXVsdFZhbGlkYXRvcihhYS5Jc1JlcXVpcmVkKV19KSwge2VtaXRFdmVudDogZmFsc2V9KTsgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdEJvb2xlYW46IGZvcm1Hcm91cC5hZGRDb250cm9sKGFhLlZhbHVlLnRvU3RyaW5nKCksIG5ldyBGb3JtQ29udHJvbDxib29sZWFuIHwgbnVsbD4obnVsbCx7dmFsaWRhdG9yczogW2FkZGl0aW9uYWxBbnN3ZXJEZWZhdWx0VmFsaWRhdG9yKGFhLklzUmVxdWlyZWQpXX0pLCB7ZW1pdEV2ZW50OiBmYWxzZX0pOyBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICAvL9GE0LjQu9GM0YLRgNGD0LXQvCxcclxuICAgIGNvbnN0IGZpbHRlcmVkQWRkaXRpb25hbEFuc3dlckxpc3QgPSB0aGlzLnF1ZXN0aW9uKCkuQWRkaXRpb25hbEFuc3dlcmxpc3QuZmlsdGVyKGFkZEFuc3dlciA9PiBkZXZlbG9wZXJNb2RlIHx8IHRoaXMuI2xvZ2ljLmV4ZWN1dGVMb2dpYyhhZGRBbnN3ZXIuRW5hYmxlRXhwcmVzc2lvbikpO1xyXG5cclxuICAgIC8v0L7QsdC90L7QstC70Y/QtdC8INCz0LvQvtCx0LDQu9GM0L3Ri9C5INGB0L/QuNGB0L7QulxyXG4gICAgdGhpcy52aXNpYmxlQWRkaXRpb25hbEFuc3dlckxpc3Quc2V0KGZpbHRlcmVkQWRkaXRpb25hbEFuc3dlckxpc3QpO1xyXG4gIH1cclxuXHJcbiAgb25BbHRlcm5hdGl2ZUNsaWNrKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuI2FsdGVybmF0aXZlU2VxdWVuY2VDbGlja3MucHVzaChbdmFsdWUsIG5ldyBEYXRlKCkuZ2V0VGltZSgpXSk7XHJcbiAgfVxyXG5cclxuICAjYXJyYW5nZVJvdGF0ZWRMaXN0PFQgZXh0ZW5kcyBJZGJBbHRlcm5hdGl2ZSB8IElkYlNlY3Rpb24+KGlucHV0QXJyYXk6IEFycmF5PFQ+KTogQXJyYXkgPFQ+IHtcclxuICAgIC8v0KMg0LrQsNC20LTQvtC5INCw0LvRjNGC0LXRgNC90LDRgtC40LLRiyDQuCDRgdC10LrRhtC40Lgg0LXRgdGC0Ywg0L/RgNC40LfQvdCw0LogUm90YXRpb24sINC60L7RgtC+0YDRi9C5INC/0L7Qt9Cy0L7Qu9GP0LXQvCDQvNC10L3Rj9GC0Ywg0L/QvtGA0Y/QtNC+0Log0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQsNC70YzRgtC10YDQvdCw0YLQuNCy0Ysg0LjQu9C4INGB0LXQutGG0LjQuFxyXG4gICAgLy/QtdGB0LvQuCDQvtC9IHRydWUsINGC0L4g0LDQu9GM0YLQtdGA0L3QsNGC0LjQstCwINC4INGB0LXQutGG0LjRjyDQtNC+0LvQttC90LAg0L/QvtC80LXQvdGP0YLRjCDRgNCw0YHQv9C+0LvQvtC20LXQvdC40LVcclxuICAgIGNvbnN0IHJlc0FycmF5OiBBcnJheTxUIHwgbnVtYmVyPiA9IFtdO1xyXG5cclxuICAgIC8v0YDQsNC30LzQtdGAINC80LDRgdGB0LjQstCwXHJcbiAgICBjb25zdCBpbnB1dEFycmF5TGVuZ3RoID0gaW5wdXRBcnJheS5sZW5ndGg7XHJcblxyXG4gICAgLy/Qv9GA0L7RhdC+0LTQuNC80YHRjyDQv9C+INC60LDQttC00L7QvNGDINGN0LvQtdC80LXQvdGC0YMg0LLRhdC+0LTQvdC+0LPQviDQvNCw0YHRgdC40LLQsCwg0Lgg0LrQvtC/0LjRgNGD0LXQvCDQsiDRgNC10LfRg9C70YzRgtC40YDRg9GO0YnQuNC5LCDQldGB0LvQuCBSb3RhdGlvbiwg0LrQvtC/0LjRgNGD0LXQvCDQtdCz0L4g0LjQvdC00LXQutGBLCDQtdGB0LvQuCBSb3RhdGlvbiDQvdC1INGD0LrQsNC30LDQvSwg0LrQvtC/0LjRgNGD0LXQvCDRgdCw0Lwg0L7QsdGK0LXQutGCXHJcbiAgICBpbnB1dEFycmF5LmZvckVhY2goKG9iaiwgaW5kZXgpID0+IHJlc0FycmF5LnB1c2gob2JqLlJvdGF0aW9uID8gaW5kZXggOiBvYmopKTtcclxuXHJcbiAgICAvL9GC0LXQv9C10YDRjCDRgSDQv9C+0LzQvtGJ0YzRjiDRgNCw0L3QtNC+0LzQsCwg0YDQsNGB0YHRgtCw0LLQuNC8INC+0YHRgtCw0LvRjNC90YvQtSDRjdC7LdGC0YtcclxuICAgIHJlc0FycmF5LmZvckVhY2goKG9iaiwgaW5kZXgsIGFycmF5KSA9PiB7XHJcbiAgICAgIGlmICgodHlwZW9mIG9iaiA9PT0gJ251bWJlcicpICYmIChvYmogPj0gMCkpIHtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgLy/QtdGB0LvQuCDQsiDQvdC+0LLQvtC8INC80LDRgdGB0LjQstC1INC90LXRgiDRjdC70LXQvNC10L3RgtCwINC40Lcg0YHRgtCw0YDQvtCz0L4g0LzQsNGB0YHQuNCy0LAg0L/QviByYW5kb20g0LjQvdC00LXQutGB0YMsINGC0L7Qs9C00LAg0LrQvtC/0LjRgNGD0LXQvCDQsiDQvdC+0LLRi9C5INC80LDRgdGB0LjQsiDRgdGC0LDRgNGL0Lkg0LXQu9C10LzQtdC90YIg0LIg0L3QvtCy0YvQuSDQsNC00YDQtdGBXHJcbiAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IE1hdGguZmxvb3IoIE1hdGgucmFuZG9tKCkgKiBpbnB1dEFycmF5TGVuZ3RoICk7XHJcbiAgICAgICAgICBpZiAoYXJyYXkuaW5kZXhPZihpbnB1dEFycmF5W25ld0luZGV4XSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIGFycmF5W2luZGV4XSA9IGlucHV0QXJyYXlbbmV3SW5kZXhdO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc0FycmF5IGFzIEFycmF5PFQ+O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIiBbZm9ybUdyb3VwXT1cImFuc3dlckZvcm1cIj5cclxuIEBzd2l0Y2ggKHF1ZXN0aW9uKCkuUXVlc3Rpb25UeXBlKSB7XHJcbiA8IS0tIEBjYXNlICgnTEFORycpIHstLT5cclxuIDwhLS0gIDxhcHAtYW5zd2VyLWxhbmcgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2xhbmdBcnJheV09XCJzYy5xdWVzdGlvbmFyeS5CYXNlUGFyYW1zLkxhbmd1YWdlTGlzdFwiLz4tLT5cclxuIDwhLS0gfS0tPlxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcUxBTkcpIHtcclxuICAgPHRwLXN1cnZleS1hbnN3ZXItbGFuZ1xyXG4gICBbbGFuZ3VhZ2VMaXN0XT1cImxhbmd1YWdlTGlzdCgpXCJcclxuICAgW2xhbmd1YWdlXT1cIjJcIlxyXG4gICBbdmlld01vZGVsXT1cInZpZXdNb2RlbCgpXCJcclxuICAgKG9uTGFuZ3VhZ2VDaGFuZ2UpPVwib25MYW5ndWFnZUNoYW5nZS5lbWl0KCRldmVudClcIi8+XHJcbiAgfVxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcUlORk8pIHtcclxuICAgPHRwLXN1cnZleS1hbnN3ZXItaW5mb1xyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCJcclxuICAgIFtsYW5ndWFnZV09XCJsYW5ndWFnZSgpXCJcclxuICAgIFt2aWV3TW9kZWxdPVwidmlld01vZGVsKClcIi8+XHJcbiAgfVxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcVNTKSB7XHJcbiAgIDx0cC1zdXJ2ZXktYW5zd2VyLXNzXHJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uKClcIlxyXG4gICAgW2xhbmd1YWdlXT1cImxhbmd1YWdlKClcIlxyXG4gICAgW3ZpZXdNb2RlbF09XCJ2aWV3TW9kZWwoKVwiXHJcbiAgICBbYWx0ZXJuYXRpdmVMaXN0XT1cInZpc2libGVBbHRlcm5hdGl2ZUxpc3QoKVwiXHJcbiAgICAob25BbHRlcm5hdGl2ZUNsaWNrKT1cIm9uQWx0ZXJuYXRpdmVDbGljaygkZXZlbnQpXCJcclxuICAgLz5cclxuICB9XHJcblxyXG4gIEBjYXNlIChxdWVzdGlvbnNUeXBlLmVxTVMpIHtcclxuICAgPHRwLXN1cnZleS1hbnN3ZXItbXNcclxuICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiXHJcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb24oKVwiXHJcbiAgICBbbGFuZ3VhZ2VdPVwibGFuZ3VhZ2UoKVwiXHJcbiAgICBbdmlld01vZGVsXT1cInZpZXdNb2RlbCgpXCJcclxuICAgIFthbHRlcm5hdGl2ZU1heEFuc3dlcnNDb3VudF09XCJxdWVzdGlvbigpLkFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50XCJcclxuICAgIFthbHRlcm5hdGl2ZUxpc3RdPVwidmlzaWJsZUFsdGVybmF0aXZlTGlzdCgpXCJcclxuICAgIChvbkFsdGVybmF0aXZlQ2xpY2spPVwib25BbHRlcm5hdGl2ZUNsaWNrKCRldmVudClcIi8+XHJcbiAgfVxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcU9EKSB7XHJcbiAgIDx0cC1zdXJ2ZXktYW5zd2VyLW9kXHJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIlxyXG4gICAgW2xhbmd1YWdlXT1cImxhbmd1YWdlKClcIlxyXG4gICAgW3ZpZXdNb2RlbF09XCJ2aWV3TW9kZWwoKVwiXHJcbiAgICBbbWluVmFsdWVdPVwicXVlc3Rpb24oKS5PRE1pblZhbHVlXCJcclxuICAgIFttYXhWYWx1ZV09XCJxdWVzdGlvbigpLk9ETWF4VmFsdWVcIlxyXG4gICAvPlxyXG4gIH1cclxuXHJcbiAgQGNhc2UgKHF1ZXN0aW9uc1R5cGUuZXFPTCkge1xyXG4gICA8dHAtc3VydmV5LWFuc3dlci1vbFxyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCJcclxuICAgIFtsYW5ndWFnZV09XCJsYW5ndWFnZSgpXCJcclxuICAgIFt2aWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gICAgW3RlbGVwaG9uZUlucHV0XT1cInF1ZXN0aW9uKCkuT0xUeXBlVGVsXCJcclxuICAgLz5cclxuICB9XHJcblxyXG4gIEBjYXNlIChxdWVzdGlvbnNUeXBlLmVxU0wpIHtcclxuICAgPHRwLXN1cnZleS1hbnN3ZXItc2xcclxuICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiXHJcbiAgICBbYWx0ZXJuYXRpdmVMaXN0XT1cInZpc2libGVBbHRlcm5hdGl2ZUxpc3QoKVwiXHJcbiAgICBbc2VjdGlvbkxpc3RdPVwidmlzaWJsZVNlY3Rpb25MaXN0KClcIlxyXG4gICAgW211bHRpU2VsZWN0XT1cInF1ZXN0aW9uKCkuTXVsdGlTZWxlY3RcIlxyXG4gICAgW2xhbmd1YWdlXT1cImxhbmd1YWdlKClcIlxyXG4gICAgW3ZpZXdNb2RlbF09XCJ2aWV3TW9kZWwoKVwiXHJcbiAgICBbbWF4Q291bnRdPVwidGhpcy5xdWVzdGlvbigpLlNMU2VjdGlvbk1heEFuc3dlcnNDb3VudFwiXHJcbiAgIC8+XHJcbiAgfVxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcUVORCkge1xyXG4gICA8dHAtc3VydmV5LWFuc3dlci1lbmRcclxuICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiXHJcbiAgICBbbGFuZ3VhZ2VdPVwibGFuZ3VhZ2UoKVwiXHJcbiAgICBbdmlld01vZGVsXT1cInZpZXdNb2RlbCgpXCJcclxuICAgLz5cclxuICB9XHJcbiB9XHJcblxyXG4gPGRpdiBjbGFzcz1cImNvbnRhaW5lci1hZGRpdGlvbmFsLWFuc3dlclwiPlxyXG4gICBAZm9yIChhZGRBbnN3ZXIgb2YgYW5zd2VyRm9ybS5jb250cm9scy5hZGRpdGlvbmFsQW5zd2Vycy5jb250cm9scyB8IGtleVZhbHVlczsgdHJhY2sgYWRkQW5zd2VyKSB7XHJcbiAgICBAaWYgKGFkZEFuc3dlci5uYW1lIHwgZ2V0QWRkaXRpb25hbFZhbHVlQnlWYWx1ZTp2aXNpYmxlQWRkaXRpb25hbEFuc3dlckxpc3QoKTsgYXMgYWRkaXRpb25hbEFuc3dlck9iamVjdCApIHtcclxuICAgICA8dHAtc3VydmV5LWFuc3dlci1hZGRpdGlvbmFsXHJcbiAgICAgIFtjb250cm9sXT1cImFkZEFuc3dlci5jb250cm9sXCJcclxuICAgICAgW2NsYXNzLmZ1bGwtd2lkdGhdPVwiYWRkaXRpb25hbEFuc3dlck9iamVjdC5BbnN3ZXJUeXBlPT09QWRkaXRpb25hbEFuc3dlclR5cGUuYWF0VGV4dFwiXHJcbiAgICAgIFthbnN3ZXJUeXBlXT1cImFkZGl0aW9uYWxBbnN3ZXJPYmplY3QuQW5zd2VyVHlwZVwiXHJcbiAgICAgIFtjYXB0aW9uXT1cImFkZGl0aW9uYWxBbnN3ZXJPYmplY3QuTXVsdGlMYW5nQ2FwdGlvbnMgfCBtdWx0aUxhbmdPYmplY3RUb0h0bWw6bGFuZ3VhZ2UoKVwiXHJcbiAgICAgIFtudW1iZXJNaW5WYWx1ZV09XCJhZGRpdGlvbmFsQW5zd2VyT2JqZWN0Lk51bWJlck1pblZhbHVlXCJcclxuICAgICAgW251bWJlck1heFZhbHVlXT1cImFkZGl0aW9uYWxBbnN3ZXJPYmplY3QuTnVtYmVyTWF4VmFsdWVcIlxyXG4gICAgICBbdGV4dE11bHRpbGluZV09XCJhZGRpdGlvbmFsQW5zd2VyT2JqZWN0LlRleHRNdWx0aWxpbmVcIlxyXG4gICAgICBbY2FwdGlvblBvc2l0aW9uXT1cImFkZGl0aW9uYWxBbnN3ZXJPYmplY3QuQ2FwdGlvblBvc2l0aW9uXCIvPlxyXG4gICAgfVxyXG4gICB9XHJcbiA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2NvbnRhaW5lci5hbnN3ZXIvY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2NvbnRhaW5lci5hbnN3ZXIvY29udGFpbmVyLmFuc3dlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDbEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDakgsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFD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QUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIGFkZGl0aW9uYWxBbnN3ZXJEZWZhdWx0VmFsaWRhdG9yLFxyXG4gIGFkZGl0aW9uYWxBbnN3ZXJOdW1iZXJWYWxpZGF0b3IsXHJcbiAgYW5zd2VyRGVmYXVsdFZhbGlkYXRvcixcclxuICBhbnN3ZXJNU1ZhbGlkYXRvcixcclxuICBhbnN3ZXJPRFZhbGlkYXRvcixcclxuICBhbnN3ZXJPTFZhbGlkYXRvcixcclxuICBhbnN3ZXJTbFZhbGlkYXRvcixcclxuICBhbnN3ZXJTU1ZhbGlkYXRvclxyXG59IGZyb20gJy4vY29udGFpbmVyLmFuc3dlci52YWxpZGF0b3InO1xyXG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge0Fuc3dlclNTQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIuc3MvYW5zd2VyLnNzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QW5zd2VySW5mb0NvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLmluZm8vYW5zd2VyLmluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHtBbnN3ZXJNU0NvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLm1zL2Fuc3dlci5tcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0tleVZhbHVlUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtNdWx0aUxhbmdPYmplY3RUb0h0bWxQaXBlfSBmcm9tICcuLi8uLi8uLi9waXBlL211bHRpLmxhbmcub2JqZWN0LnRvLmh0bWwvbXVsdGkubGFuZy5vYmplY3QudG8uaHRtbC5waXBlJztcclxuaW1wb3J0IHtBbnN3ZXJBZGRpdGlvbmFsQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIuYWRkaXRpb25hbC9hbnN3ZXIuYWRkaXRpb25hbC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Fuc3dlckVuZENvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLmVuZC9hbnN3ZXIuZW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCB0YXB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0Fuc3dlck9MQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIub2wvYW5zd2VyLm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QW5zd2VyU0xDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5zbC9hbnN3ZXIuc2wuY29tcG9uZW50JztcclxuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7QWRkaXRpb25hbEFuc3dlciwgQW5zd2VyU2xUeXBlLCBBbnN3ZXJUfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkudHlwZSc7XHJcbmltcG9ydCB7QW5zd2VyT0RDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5vZC9hbnN3ZXIub2QuY29tcG9uZW50JztcclxuaW1wb3J0IHtBbnN3ZXJDaGFuZ2UsIElDdXJyZW50UXVlc3Rpb25BbnN3ZXIsIElkYkFkZGl0aW9uYWxBbnN3ZXIsIElkYkFsdGVybmF0aXZlLCBJZGJCYXNlUGFyYW1zTGFuZ3VhZ2UsIElkYlF1ZXN0aW9uLCBJZGJTZWN0aW9ufSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtBZGRpdGlvbmFsQW5zd2VyVHlwZSwgUXVlc3Rpb25zVHlwZSwgVmlld01vZGVsfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuZW51bSc7XHJcbmltcG9ydCB7VHBTdXJ2ZXlMb2dpY1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHAuc3VydmV5LmxvZ2ljL3RwLnN1cnZleS5sb2dpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHtNSVNTSU5HX1ZBTFVFfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuY29uc3QnO1xyXG5pbXBvcnQge0dldEFkZGl0aW9uYWxWYWx1ZUJ5VmFsdWVQaXBlfSBmcm9tICcuLi8uLi8uLi9waXBlL2dldC5hZGRpdGlvbmFsLnZhbHVlLmJ5LnZhbHVlL2dldC5hZGRpdGlvbmFsLnZhbHVlLmJ5LnZhbHVlLnBpcGUnO1xyXG5pbXBvcnQge0tleVZhbHVlc1BpcGV9IGZyb20gJy4uLy4uLy4uL3BpcGUva2V5LnZhbHVlcy9rZXkudmFsdWVzLnBpcGUnO1xyXG5pbXBvcnQge0Fuc3dlckxhbmdDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5sYW5nL2Fuc3dlci5sYW5nLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgSUFuc3dlckZvcm0ge1xyXG4gIGFuc3dlcjogRm9ybUNvbnRyb2w8QW5zd2VyVD47XHJcbiAgYWRkaXRpb25hbEFuc3dlcnM6IEZvcm1Hcm91cDx7XHJcbiAgICBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbDxBZGRpdGlvbmFsQW5zd2VyPlxyXG4gIH0+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RwLXN1cnZleS1jb250YWluZXItYW5zd2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFuc3dlck9EQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEFuc3dlclNTQ29tcG9uZW50LFxyXG4gICAgQW5zd2VySW5mb0NvbXBvbmVudCxcclxuICAgIEFuc3dlck1TQ29tcG9uZW50LFxyXG4gICAgQW5zd2VyQWRkaXRpb25hbENvbXBvbmVudCxcclxuICAgIEtleVZhbHVlUGlwZSxcclxuICAgIE11bHRpTGFuZ09iamVjdFRvSHRtbFBpcGUsXHJcbiAgICBBbnN3ZXJFbmRDb21wb25lbnQsXHJcbiAgICBBbnN3ZXJPTENvbXBvbmVudCxcclxuICAgIEFuc3dlclNMQ29tcG9uZW50LFxyXG4gICAgR2V0QWRkaXRpb25hbFZhbHVlQnlWYWx1ZVBpcGUsXHJcbiAgICBLZXlWYWx1ZXNQaXBlLFxyXG4gICAgQW5zd2VyTGFuZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhaW5lci5hbnN3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb250YWluZXIuYW5zd2VyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyQW5zd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHF1ZXN0aW9uID0gaW5wdXQucmVxdWlyZWQ8SWRiUXVlc3Rpb24+KCk7XHJcbiAgbGFuZ3VhZ2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcbiAgdmlld01vZGVsID0gaW5wdXQucmVxdWlyZWQ8Vmlld01vZGVsPigpO1xyXG4gIGFuc3dlcnMgPSBpbnB1dDxJQ3VycmVudFF1ZXN0aW9uQW5zd2VyPigpO1xyXG4gIGRldmVsb3Blck1vZGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgbGFuZ3VhZ2VMaXN0ID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8SWRiQmFzZVBhcmFtc0xhbmd1YWdlPj4oKTtcclxuICB2aXNpYmxlQWx0ZXJuYXRpdmVMaXN0ID0gc2lnbmFsPEFycmF5PElkYkFsdGVybmF0aXZlPj4oW10pO1xyXG4gIHZpc2libGVTZWN0aW9uTGlzdCA9IHNpZ25hbDxBcnJheTxJZGJTZWN0aW9uPj4oW10pO1xyXG4gIHZpc2libGVBZGRpdGlvbmFsQW5zd2VyTGlzdCA9IHNpZ25hbDxBcnJheTxJZGJBZGRpdGlvbmFsQW5zd2VyPj4oW10pO1xyXG4gIGxvZ2ljQ2hhbmdlZCA9IG91dHB1dDxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xyXG4gIGFuc3dlckNoYW5nZWQgPSBvdXRwdXQ8QW5zd2VyQ2hhbmdlPigpO1xyXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UgPSBvdXRwdXQ8bnVtYmVyPigpO1xyXG5cclxuICBxdWVzdGlvbnNUeXBlID0gUXVlc3Rpb25zVHlwZTtcclxuICBhbnN3ZXJGb3JtOiBGb3JtR3JvdXA8SUFuc3dlckZvcm0+O1xyXG4gIHJlYWRvbmx5IEFkZGl0aW9uYWxBbnN3ZXJUeXBlID0gQWRkaXRpb25hbEFuc3dlclR5cGU7XHJcbiAgI2FsdGVybmF0aXZlU2VxdWVuY2VDbGlja3M6IEFycmF5PFtudW1iZXIsIG51bWJlcl0+ID0gW107XHJcbiAgcmVhZG9ubHkgI2xvZ2ljID0gaW5qZWN0KFRwU3VydmV5TG9naWNTZXJ2aWNlKTtcclxuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFuc3dlckZvcm0gPSBuZXcgRm9ybUdyb3VwPElBbnN3ZXJGb3JtPih7XHJcbiAgICAgIGFuc3dlcjogbmV3IEZvcm1Db250cm9sPEFuc3dlclQ+KG51bGwgKSxcclxuICAgICAgYWRkaXRpb25hbEFuc3dlcnM6IG5ldyBGb3JtR3JvdXAoe30pLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFuc3dlclZhbHVlID0gdGhpcy5hbnN3ZXJzKCk/LnF1ZXN0aW9uPy5BbnN3ZXJWYWx1ZSA/PyBudWxsO1xyXG4gICAgY29uc3QgYW5zd2VyVmFsdWVDbGVhciA9IGFuc3dlclZhbHVlID09PSBNSVNTSU5HX1ZBTFVFID8gbnVsbCA6IGFuc3dlclZhbHVlO1xyXG4gICAgdGhpcy5hbnN3ZXJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICBhbnN3ZXI6IGFuc3dlclZhbHVlQ2xlYXIsXHJcbiAgICAgIGFkZGl0aW9uYWxBbnN3ZXJzOiB0aGlzLmFuc3dlcnMoKT8ucXVlc3Rpb24/LkFuc3dlckFkZGl0aW9uYWxcclxuICAgIH0sIHtlbWl0RXZlbnQ6ZmFsc2V9KTtcclxuXHJcbiAgICB0aGlzLiNhbHRlcm5hdGl2ZVNlcXVlbmNlQ2xpY2tzID0gdGhpcy5hbnN3ZXJzKCk/LnF1ZXN0aW9uPy5BbHRlcm5hdGl2ZVNlcXVlbmNlQ2xpY2tzID8/IFtdO1xyXG4gICAgdGhpcy4jdXBkYXRlQWx0ZXJuYXRpdmVzQW5kU2VjdGlvbnMoKTtcclxuICAgIHRoaXMuI3VwZGF0ZUFkZGl0aW9uYWxBbnN3ZXJzKHRydWUpO1xyXG4gICAgdGhpcy4jYWRkVmFsaWRhdG9yKCk7XHJcblxyXG4gICAgdGhpcy5hbnN3ZXJGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgIGRlYm91bmNlVGltZSgyNTApLFxyXG4gICAgIHRhcCgoKSA9PiB0aGlzLmxvZ2ljQ2hhbmdlZC5lbWl0KHRoaXMuI2dldExvZ2ljVmFycygpKSksIC8v0YjQu9GR0Lwg0L3QvtCy0YvQtSDQu9C+0LPQuNGH0LXRgdC60LjQtSDQv9C10YDQtdC80LXQvdC90YvQtSjQvNC+0LbQtdGCINC+0LHQvdC+0LLQuNGC0YzRgdGPINGB0L/QuNGB0L7QuiBhZGRpdGlvbmFsQW5zd2VycylcclxuICAgICB0YXAoKCkgPT4gdGhpcy4jdXBkYXRlQWRkaXRpb25hbEFuc3dlcnMoZmFsc2UpKSwgLy/Qv9C10YDQtdGB0YLRgNCw0LjQstCw0LXQvCBhZGRpdGlvbmFsQW5zd2Vyc1xyXG4gICAgIG1hcCh2YWx1ZXMgPT4ge1xyXG4gICAgICAgY29uc3QgZm9ybUdyb3VwID0gKHRoaXMuYW5zd2VyRm9ybS5jb250cm9scy5hZGRpdGlvbmFsQW5zd2VycyBhcyBGb3JtR3JvdXApO1xyXG4gICAgICAgY29uc3QgYWRkaXRpb25hbEFuc3dlck5vcm1hbGl6ZWQ6IFJlY29yZDxudW1iZXIsIEFkZGl0aW9uYWxBbnN3ZXI+ID0ge307XHJcbiAgICAgICB0aGlzLnF1ZXN0aW9uKCkuQWRkaXRpb25hbEFuc3dlcmxpc3QuZm9yRWFjaChhYSA9PiB7XHJcbiAgICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHRoaXMudmlzaWJsZUFkZGl0aW9uYWxBbnN3ZXJMaXN0KCkuZmluZChmYWEgPT4gZmFhLlZhbHVlID09PSBhYS5WYWx1ZSk7XHJcbiAgICAgICAgIGlmIChpc1Zpc2libGUpIHtcclxuICAgICAgICAgICBhZGRpdGlvbmFsQW5zd2VyTm9ybWFsaXplZFthYS5WYWx1ZV0gPSAhIXZhbHVlcy5hZGRpdGlvbmFsQW5zd2VycyA/IHZhbHVlcy5hZGRpdGlvbmFsQW5zd2Vyc1thYS5WYWx1ZV0hIDogTUlTU0lOR19WQUxVRTtcclxuICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KGFhLlZhbHVlLnRvU3RyaW5nKCkpPy5lbmFibGUoe2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgICAgICB9IGVsc2UgIHtcclxuICAgICAgICAgICBhZGRpdGlvbmFsQW5zd2VyTm9ybWFsaXplZFthYS5WYWx1ZV0gPSBNSVNTSU5HX1ZBTFVFO1xyXG4gICAgICAgICAgIGZvcm1Hcm91cC5nZXQoYWEuVmFsdWUudG9TdHJpbmcoKSk/LmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9KTtcclxuICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgIGFuc3dlcjp2YWx1ZXMuYW5zd2VyLFxyXG4gICAgICAgICBhZGRpdGlvbmFsQW5zd2VyczogYWRkaXRpb25hbEFuc3dlck5vcm1hbGl6ZWQsXHJcbiAgICAgICB9XHJcbiAgICAgfSksXHJcbiAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXHJcbiAgICApLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5hbnN3ZXJDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgIGd1aWQ6IHRoaXMucXVlc3Rpb24oKS5RdWVzdGlvbkd1aWQsXHJcbiAgICAgICAgaXNDb21wbGV0ZTogdGhpcy5hbnN3ZXJGb3JtLnZhbGlkLFxyXG4gICAgICAgIGFuc3dlcjogZGF0YS5hbnN3ZXIhLFxyXG4gICAgICAgIGFkZGl0aW9uYWxBbnN3ZXJzOiBkYXRhLmFkZGl0aW9uYWxBbnN3ZXJzIGFzIFJlY29yZDxudW1iZXIsIEFkZGl0aW9uYWxBbnN3ZXI+LFxyXG4gICAgICAgIGxvZ2ljVmFyczogdGhpcy4jZ2V0TG9naWNWYXJzKCksXHJcbiAgICAgICAgdmlld2VkQWx0ZXJuYXRpdmVWYWx1ZXM6IHRoaXMudmlzaWJsZUFsdGVybmF0aXZlTGlzdCgpLm1hcChhbHQgPT4gYWx0LlZhbHVlKSxcclxuICAgICAgICB2aWV3ZWRTZWN0aW9uR3VpZHM6ICB0aGlzLnZpc2libGVTZWN0aW9uTGlzdCgpLm1hcChhbHQgPT4gYWx0LlNlY3Rpb25HdWlkKSxcclxuICAgICAgICBhbHRlcm5hdGl2ZVNlcXVlbmNlQ2xpY2tzOiBBcnJheS5mcm9tKHRoaXMuI2FsdGVybmF0aXZlU2VxdWVuY2VDbGlja3MpXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLiNzZXREZWZhdWx0QW5zd2VycygpO1xyXG4gIH1cclxuXHJcbiAgI2FkZFZhbGlkYXRvcigpOiB2b2lke1xyXG4gICAgY29uc3QgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uKCk7XHJcbiAgICB0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoYW5zd2VyRGVmYXVsdFZhbGlkYXRvcigpKTtcclxuXHJcbiAgICBzd2l0Y2ggKHF1ZXN0aW9uLlF1ZXN0aW9uVHlwZSl7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcVNTOiB7XHJcbiAgICAgICAgdGhpcy5hbnN3ZXJGb3JtLmNvbnRyb2xzLmFuc3dlci5hZGRWYWxpZGF0b3JzKGFuc3dlclNTVmFsaWRhdG9yKCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFNUzoge1xyXG4gICAgICAgIHRoaXMuYW5zd2VyRm9ybS5jb250cm9scy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhhbnN3ZXJNU1ZhbGlkYXRvcih0aGlzLnZpc2libGVBbHRlcm5hdGl2ZUxpc3QoKS5sZW5ndGgsICB0aGlzLnF1ZXN0aW9uKCkuQWx0ZXJuYXRpdmVNaW5BbnN3ZXJzQ291bnQsIHRoaXMucXVlc3Rpb24oKS5BbHRlcm5hdGl2ZU1heEFuc3dlcnNDb3VudCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFPRDoge1xyXG4gICAgICAgIHRoaXMuYW5zd2VyRm9ybS5jb250cm9scy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhhbnN3ZXJPRFZhbGlkYXRvcihxdWVzdGlvbi5PRE1pblZhbHVlLCBxdWVzdGlvbi5PRE1heFZhbHVlKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcU9MOiB7XHJcbiAgICAgICAgdGhpcy5hbnN3ZXJGb3JtLmNvbnRyb2xzLmFuc3dlci5hZGRWYWxpZGF0b3JzKGFuc3dlck9MVmFsaWRhdG9yKHF1ZXN0aW9uLk9MVHlwZVRlbCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFTTDoge1xyXG4gICAgICAgIHRoaXMuYW5zd2VyRm9ybS5jb250cm9scy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhhbnN3ZXJTbFZhbGlkYXRvcih0aGlzLnF1ZXN0aW9uKCkuUmVxdWlyZUFsbEFuc3dlcnMsIHRoaXMucXVlc3Rpb24oKS5TTFNlY3Rpb25NaW5BbnN3ZXJzQ291bnQsIHRoaXMudmlzaWJsZVNlY3Rpb25MaXN0KCkpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI3NldERlZmF1bHRBbnN3ZXJzKCk6IHZvaWR7XHJcbiAgICBjb25zdCBxdWVzdGlvbiA9IHRoaXMucXVlc3Rpb24oKTtcclxuICAgIGNvbnN0IGlzTGFuZyA9IHF1ZXN0aW9uLlF1ZXN0aW9uVHlwZSA9PT0gUXVlc3Rpb25zVHlwZS5lcUxBTkc7XHJcbiAgICBjb25zdCBpc0luZm8gPSBxdWVzdGlvbi5RdWVzdGlvblR5cGUgPT09IFF1ZXN0aW9uc1R5cGUuZXFJTkZPO1xyXG4gICAgY29uc3QgaXNFbmQgID0gcXVlc3Rpb24uUXVlc3Rpb25UeXBlID09PSBRdWVzdGlvbnNUeXBlLmVxRU5EO1xyXG4gICAgY29uc3QgaXNTU01TID0gKHF1ZXN0aW9uLlF1ZXN0aW9uVHlwZSA9PT0gUXVlc3Rpb25zVHlwZS5lcVNTIHx8IHF1ZXN0aW9uLlF1ZXN0aW9uVHlwZSA9PT0gUXVlc3Rpb25zVHlwZS5lcU1TKSAmJiAodGhpcy52aXNpYmxlQWx0ZXJuYXRpdmVMaXN0KCkubGVuZ3RoID09PSAwKTtcclxuXHJcbiAgICBpZiAoaXNJbmZvIHx8IGlzRW5kIHx8IGlzU1NNUyB8fCBpc0xhbmcpIHtcclxuICAgICAgbGV0IGRlZmF1bHRBbnN3ZXI7XHJcbiAgICAgIHN3aXRjaCAocXVlc3Rpb24uUXVlc3Rpb25UeXBlKSB7XHJcbiAgICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxTVM6IGRlZmF1bHRBbnN3ZXIgPSBbXTsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxU1M6IGRlZmF1bHRBbnN3ZXIgPSAwOyBicmVhaztcclxuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0QW5zd2VyID0gMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy/QvNC+0LbQtdGCINCy0L7Qt9C90LjQutC90YPRgtGMINGB0LjRgtGD0LDRhtC40Y8sINC60L7Qs9C00LAg0L3QtdGCINCw0LvRjNGC0LXRgNC90LDRgtC40LIg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8u0LIg0Y3RgtC+0Lwg0YHQu9GD0YfQsNC1INCy0L7Qv9GA0L7RgSDQv9C+0LrQsNC30YvQstCw0YLRjCDQvdC1INC90YPQttC90L4sINC60LDQuiDQvtGC0LLQtdGCINC30LDQv9C40YHRi9Cy0LDQtdC8IDAg0Lgg0L/QtdGA0LXRhdC+0LTQuNC8INC90LAg0YHQu9C10LTRg9GO0YnQuNC5XHJcbiAgICAgIHRoaXMuYW5zd2VyRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICBhbnN3ZXI6IGRlZmF1bHRBbnN3ZXJcclxuICAgICAgfSwge2VtaXRFdmVudDogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8v0YHQvtCx0LjRgNCw0LXQvCDQstGB0LUg0LvQvtCz0LjRh9C10YHQutC40LUg0L/QtdGA0LXQvNC10L3QvdGL0LUsINC60L7RgtC+0YDRi9C1INCz0LXQvdC10YDQuNGCINCy0L7Qv9GA0L7RgVxyXG4gICNnZXRMb2dpY1ZhcnMoKTogUmVjb3JkPHN0cmluZywgYW55PntcclxuICAgIGNvbnN0IHF1ZXN0aW9uVHlwZSA9IHRoaXMucXVlc3Rpb24oKS5RdWVzdGlvblR5cGU7XHJcbiAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYW5zd2VyLnZhbHVlO1xyXG4gICAgY29uc3QgbG9naWNPYmo6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgICAvL9C/0LXRgNC10LzQtdC90L3QsNGPINGB0LDQvNC+0LPQviDQstC+0L/RgNC+0YHQsFxyXG4gICAgY29uc3QgcXVlc3Rpb25TeXNOYW1lID0gdGhpcy5xdWVzdGlvbigpLlN5c05hbWU7XHJcblxyXG4gICAgLy/QvtGC0LLQtdGCINC90LAg0L7RgdC90L7QstC90L7QuSDQstC+0L/RgNC+0YFcclxuICAgIGxvZ2ljT2JqW3F1ZXN0aW9uU3lzTmFtZV0gPSB0aGlzLmFuc3dlckZvcm0udmFsdWUuYW5zd2VyO1xyXG5cclxuICAgIHN3aXRjaCAocXVlc3Rpb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcVNTOiB7XHJcbiAgICAgICAgLy/QutCw0LbQtNCw0Y8g0LDQu9GM0YLQtdGA0L3QsNGC0LjQstCwINC40LzQtdC10YIg0YHQstC+0Y4g0L/QtdGA0LXQvNC10L3QvdGD0Y4sIDEg0L3QsNC20LDRgtCwLCAwINC90LUg0L3QsNC20LDRgtCwINC40LvQuCDRgdC60YDRi9GC0LAo0YHQutGA0YvRgtCwINGB0L7QvNC90LjRgtC10LvRjNC90L4sINGH0YLQviDRjdGC0L4g0L/RgNCw0LLQuNC70YzQvdC+KVxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24oKS5BbHRlcm5hdGl2ZWxpc3QuZm9yRWFjaCggYWx0ID0+IGxvZ2ljT2JqW2Ake3F1ZXN0aW9uU3lzTmFtZX0ke2FsdC5TeXNOYW1lfWBdID0gYW5zd2VyID09PSBhbHQuVmFsdWUgPyAxIDogMCk7IC8vINC/0LXRgNC10LzQtdC90L3Ri9C1INCw0LvRjNGC0LXRgNC90LDRgtC40LJcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBRdWVzdGlvbnNUeXBlLmVxTVM6IHtcclxuICAgICAgICBjb25zdCBhbnN3ZXJzID0gQXJyYXkuaXNBcnJheSh0aGlzLmFuc3dlckZvcm0udmFsdWUuYW5zd2VyKSA/IHRoaXMuYW5zd2VyRm9ybS52YWx1ZS5hbnN3ZXIgOiBbXTtcclxuICAgICAgICAvL9C60LDQttC00LDRjyDQsNC70YzRgtC10YDQvdCw0YLQuNCy0LAg0LjQvNC10LXRgiDRgdCy0L7RjiDQv9C10YDQtdC80LXQvdC90YPRjiwgMSDQvdCw0LbQsNGC0LAsIDAg0L3QtSDQvdCw0LbQsNGC0LAg0LjQu9C4INGB0LrRgNGL0YLQsCjRgdC60YDRi9GC0LAg0YHQvtC80L3QuNGC0LXQu9GM0L3Qviwg0YfRgtC+INGN0YLQviDQv9GA0LDQstC40LvRjNC90L4pXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbigpLkFsdGVybmF0aXZlbGlzdC5mb3JFYWNoKCBhbHQgPT4gbG9naWNPYmpbYCR7cXVlc3Rpb25TeXNOYW1lfSR7YWx0LlN5c05hbWV9YF0gPSBhbnN3ZXJzLmZpbmQodmFsID0+IHZhbCA9PT0gYWx0LlZhbHVlKSA/IDEgOiAwKTsgLy8g0L/QtdGA0LXQvNC10L3QvdGL0LUg0LDQu9GM0YLQtdGA0L3QsNGC0LjQslxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIFF1ZXN0aW9uc1R5cGUuZXFPTDoge1xyXG4gICAgICAgIC8v0LvQvtCz0LjRh9C10YHQutCw0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LTQu9GPIE9MINCy0L7Qv9GA0L7RgdCwIC0gMSwg0LAg0L3QtSDRgtC+INGH0YLQviDQstCy0LXQu9C4XHJcbiAgICAgICAgbG9naWNPYmpbcXVlc3Rpb25TeXNOYW1lXSA9IDE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgUXVlc3Rpb25zVHlwZS5lcVNMOiB7XHJcbiAgICAgICAgLyrQotGD0YIg0YHQu9C+0LbQvdC10LUg0YfQtdC8INCyINC+0YHRgtCw0LvRjNC90YvRhSDRgtC40L/QsNGFINCy0L7Qv9GA0L7RgdC+0LIuXHJcbiAgICAgICAgKiAxLiDQm9C+0LPQuNGH0LXRgdC60LDRjyDQv9C10YDQtdC80LXQvdC90LDRjyDQtNC70Y8gU0wg0LLQvtC/0YDQvtGB0LBcclxuICAgICAgICAqIDIuINCb0L7Qs9C40YfQtdGB0LrQsNGPINC/0LXRgNC10LzQtdC90L3QsNGPINC00LvRjyDQutCw0LbQtNC+0Lkg0YHQtdC60YbQuNC4XHJcbiAgICAgICAgKiAzLiDQm9C+0LPQuNGH0LXRgdC60LjQtSDQv9C10YDQtdC80LXQvdC90YvQtSDQtNC70Y8g0LrQsNC20LTQvtC5INCw0LvRjNGC0LXRgNC90LDRgtC40LLRiyArINGB0LXQutGG0LjQuFxyXG4gICAgICAgICogKi9cclxuXHJcbiAgICAgICAgLy8xLiDQm9C+0LPQuNGH0LXRgdC60LDRjyDQv9C10YDQtdC80LXQvdC90LDRjyDQtNC70Y8gU0wg0LLQvtC/0YDQvtGB0LAgLSAxLCDQsCDQvdC1INGC0L4g0YfRgtC+INCy0LLQtdC70LhcclxuICAgICAgICBsb2dpY09ialtxdWVzdGlvblN5c05hbWVdID0gMTtcclxuXHJcbiAgICAgICAgLy/QmtCw0LbQtNCw0Y8g0YHQtdC60YbQuNGPINC00L7Qu9C20L3RiyDQuNC80LXRgtGMINGB0LLQvtGOINC70L7Qs9C40YfQtdGB0LrRg9GOINC/0LXRgNC10LzQtdC90L3Rg9GOLCBhcnJheTxudW1iZXI+INC10YHQu9C4IG11bHRpc2VsZWN0LCBudW1iZXIg0LXRgdC70LggbXVsdGlzZWxlY3QgPSBmYWxzZSwgLTk3INC10YHQu9C4INGB0LXQutGG0LjRjyDQvdC1INCx0YvQu9CwINC/0L7QutCw0LfQsNC90LAuXHJcbiAgICAgICAgLy8rINC00LvRjyDQutCw0LbQtNC+0Lkg0YHQtdC60YbQuNC4INC90YPQttC90L4g0LTQvtCx0LDQstC70Y/RgtGMINC70L7Qs9C40YfQtdGB0LrQuNC1INC/0LXRgNC10LzQtdC90L3Ri9C1INC00LvRjyDQutCw0LbQtNC+0Lkg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLLiAxINC90LDQttCw0YLQsCwgMCDQvtGC0LbQsNGC0LAsIC05NyDQtdGB0LvQuCDQsNC70YzRgtC10YDQvdCw0YLQuNCy0LAg0L3QtSDQsdGL0LvQsCDQv9C+0LrQsNC30LDQvdCwLlxyXG4gICAgICAgIGNvbnN0IGZ1bGxBbnN3ZXJzID0gdGhpcy5hbnN3ZXJGb3JtLnZhbHVlLmFuc3dlciBhcyBBbnN3ZXJTbFR5cGU7XHJcbiAgICAgICAgY29uc3QgdmlzaWJsZUFsdGVybmF0aXZlTGlzdCA9IHRoaXMudmlzaWJsZUFsdGVybmF0aXZlTGlzdCgpLm1hcChhbHQgPT4gYWx0LlZhbHVlKTtcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uKCkuU2VjdGlvbmxpc3QuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgIGNvbnN0IHNlY3Rpb25TeXNOYW1lID0gc2VjdGlvbi5TeXNOYW1lO1xyXG5cclxuICAgICAgICAgIC8v0LXRgdC70LggdW5kZWZpbmVkLCDRgtC+INC30LDQvNC10L3QuNC8INC90LAgLTk3INGN0YLQviDQt9C90LDRh9C40YIg0YHQtdC60YbQuNGPINC90LUg0LHRi9C70LAg0L/QvtC60LDQt9Cw0L3QsC5cclxuICAgICAgICAgIGNvbnN0IHNlY3Rpb25BbnN3ZXIgPSBmdWxsQW5zd2Vyc1tzZWN0aW9uLlNlY3Rpb25HdWlkLnRvU3RyaW5nKCldID8/IE1JU1NJTkdfVkFMVUU7XHJcblxyXG4gICAgICAgICAgLy8yLiDQtNC+0LHQsNCy0LvRj9C10Lwg0L/QtdGA0LXQvNC10L3QvdGD0Y4g0YHQsNC80L7QuSDRgdC10LrRhtC40LguXHJcbiAgICAgICAgICBsb2dpY09ialtzZWN0aW9uU3lzTmFtZV0gPSBzZWN0aW9uQW5zd2VyO1xyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbigpLkFsdGVybmF0aXZlbGlzdC5mb3JFYWNoKGFsdGVybmF0aXZlID0+IHtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25BbHRlcm5hdGl2ZVN5c05hbWUgPSBgJHtzZWN0aW9uU3lzTmFtZX0ke2FsdGVybmF0aXZlLlN5c05hbWV9YDtcclxuICAgICAgICAgICAgLy/RgdC10LrRhtC40Y8g0L3QtSDQsdGL0LvQsCDQv9C+0LrQsNC30LDQvdCwLCDQt9C90LDRh9C40YIg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLINGC0L7QttC1XHJcbiAgICAgICAgICAgIGlmIChzZWN0aW9uQW5zd2VyID09PSBNSVNTSU5HX1ZBTFVFKSAge1xyXG4gICAgICAgICAgICAgIGxvZ2ljT2JqW3NlY3Rpb25BbHRlcm5hdGl2ZVN5c05hbWVdID0gTUlTU0lOR19WQUxVRTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvL9GB0L3QsNGH0LDQu9CwINC90YPQttC90L4g0L/RgNC+0LLQtdGA0LjRgtGMINCx0YvQu9CwINC70Lgg0L/QvtC60LDQt9Cw0L3QsCDQsNC70YzRgtC10YDQvdCw0YLQuNCy0LAsINC10YHQu9C4INC90LXRglxyXG4gICAgICAgICAgICAgIC8v0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLINC90LXRgiDQsiDRgdC/0LjRgdC60LUg0L/QvtC60LDQt9Cw0L3QvdGL0YVcclxuICAgICAgICAgICAgICBpZiAoIXZpc2libGVBbHRlcm5hdGl2ZUxpc3QuZmluZCh2aXNpYmxlVmFsID0+IHZpc2libGVWYWwgPT09IGFsdGVybmF0aXZlLlZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgbG9naWNPYmpbc2VjdGlvbkFsdGVybmF0aXZlU3lzTmFtZV0gPSBNSVNTSU5HX1ZBTFVFO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL9Cw0LvRjNGC0LXRgNC90LDRgtC40LLRiyDQtdGB0YLRjCDQsiDRgdC/0LjRgdC60LUg0L/QvtC60LDQt9Cw0L3QvdGL0YUsINC90YPQttC90L4g0YPQt9C90LDRgtGMINCx0YvQu9CwINC90LDQttCw0YLQsCDQuNC70Lgg0L3QtdGCLlxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNQcmVzc2VkID0gQXJyYXkuaXNBcnJheShzZWN0aW9uQW5zd2VyKSA/IHNlY3Rpb25BbnN3ZXIuaW5jbHVkZXMoYWx0ZXJuYXRpdmUuVmFsdWUpIDogc2VjdGlvbkFuc3dlciA9PT0gYWx0ZXJuYXRpdmUuVmFsdWU7XHJcbiAgICAgICAgICAgICAgICBsb2dpY09ialtzZWN0aW9uQWx0ZXJuYXRpdmVTeXNOYW1lXSA9IGlzUHJlc3NlZCA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL9C70L7Qs9C40YfQtdGB0LrQuNC1INC/0LXRgNC10LzQtdC90L3Ri9C1INC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0YUg0LLQvtC/0YDQvtGB0L7Qsi5cclxuICAgIHRoaXMucXVlc3Rpb24oKS5BZGRpdGlvbmFsQW5zd2VybGlzdC5mb3JFYWNoKGFhID0+IHtcclxuICAgICAgY29uc3QgYWRkaXRpb25hbEFuc3dlciA9ICEhdGhpcy5hbnN3ZXJGb3JtLnZhbHVlLmFkZGl0aW9uYWxBbnN3ZXJzID8gdGhpcy5hbnN3ZXJGb3JtLnZhbHVlLmFkZGl0aW9uYWxBbnN3ZXJzIVthYS5WYWx1ZS50b1N0cmluZygpXSA6IE1JU1NJTkdfVkFMVUU7XHJcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxBbnN3ZXJTeXNOYW1lID0gYCR7cXVlc3Rpb25TeXNOYW1lfSR7YWEuU3lzTmFtZX1gO1xyXG4gICAgICBpZiAoYWRkaXRpb25hbEFuc3dlciA9PT0gTUlTU0lOR19WQUxVRSkge1xyXG4gICAgICAgIC8v0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQuSDQvtGC0LLQtdGCINC90LUg0LHRi9C7INC/0L7QutCw0LfQsNC9LCAo0YHQutGA0YvRgiDQv9C+INC70L7Qs9C40LrQtSlcclxuICAgICAgICBsb2dpY09ialthZGRpdGlvbmFsQW5zd2VyU3lzTmFtZV0gPSBNSVNTSU5HX1ZBTFVFO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8v0LXRgdC70Lgg0L3QsCDQstC+0L/RgNC+0YEg0L3QtSDQvtGC0LLQtdGH0LDQu9C4KG51bGwpLCDRjdGC0L7RgiDRgdCw0LzRi9C5IG51bGwg0Lgg0LTQvtCx0LDQstC70Y/QtdC8INC60LDQuiDQvtGC0LLQtdGCLlxyXG4gICAgICAgIGlmIChhZGRpdGlvbmFsQW5zd2VyID09PSBudWxsKSB7XHJcbiAgICAgICAgICBsb2dpY09ialthZGRpdGlvbmFsQW5zd2VyU3lzTmFtZV0gPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL9C10YHQu9C4INCy0L7Qv9GA0L7RgSDRgtC40L/QsCDRgtC10LrRgdGCLCDQutCw0Log0L/QtdGA0LXQvNC10L3QvdGD0Y4g0LTQvtCx0LDQstC40LwgMSwg0LIg0L7RgdGC0LDQu9GM0L3Ri9GFINGB0LvRg9GH0LDRj9GFINGB0LDQvCDQvtGC0LLQtdGCLlxyXG4gICAgICAgICAgbG9naWNPYmpbYWRkaXRpb25hbEFuc3dlclN5c05hbWVdID0gYWEuQW5zd2VyVHlwZSA9PT0gQWRkaXRpb25hbEFuc3dlclR5cGUuYWF0VGV4dCA/IDEgOiBhZGRpdGlvbmFsQW5zd2VyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbG9naWNPYmo7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlQWx0ZXJuYXRpdmVzQW5kU2VjdGlvbnMoKTogdm9pZHtcclxuICAgIGNvbnN0IGRldmVsb3Blck1vZGUgPSB0aGlzLmRldmVsb3Blck1vZGUoKTtcclxuICAgIC8v0YTQuNC70YzRgtGA0YPQtdC8INCw0LvRjNGC0LXRgNC90LDRgtC40LLRiyxcclxuICAgIGNvbnN0IGZpbHRlcmVkQWx0ZXJuYXRpdmVMaXN0ID0gdGhpcy5xdWVzdGlvbigpLkFsdGVybmF0aXZlbGlzdC5maWx0ZXIoYWx0ID0+IGRldmVsb3Blck1vZGUgfHwgdGhpcy4jbG9naWMuZXhlY3V0ZUxvZ2ljKGFsdC5FbmFibGVFeHByZXNzaW9uKSk7XHJcblxyXG4gICAgLy/RhNC40LvRjNGC0YDRg9C10Lwg0YHQtdC60YbQuNC4LFxyXG4gICAgY29uc3QgZmlsdGVyZWRTZWN0aW9uTGlzdCA9IHRoaXMucXVlc3Rpb24oKS5TZWN0aW9ubGlzdC5maWx0ZXIoc2VjID0+IGRldmVsb3Blck1vZGUgfHwgdGhpcy4jbG9naWMuZXhlY3V0ZUxvZ2ljKHNlYy5FbmFibGVFeHByZXNzaW9uKSk7XHJcblxyXG4gICAgLy/QvNC10L3Rj9C10Lwg0YDQsNGB0L/QvtC70L7QttC10L3QuNC1INGC0LXRhSwg0LrQvtGC0L7RgNGL0LUg0Y3RgtC+0LPQviDRgtGA0LXQsdGD0Y7RgiDQuCDQvtCx0L3QvtCy0LvRj9C10Lwg0LPQu9C+0LHQsNC70YzQvdGD0Y4g0L/QtdGA0LXQvNC10L3QvdGD0Y5cclxuICAgIHRoaXMudmlzaWJsZUFsdGVybmF0aXZlTGlzdC5zZXQodGhpcy4jYXJyYW5nZVJvdGF0ZWRMaXN0KGZpbHRlcmVkQWx0ZXJuYXRpdmVMaXN0KSk7XHJcbiAgICAvL9C00LvRjyDRgdC10LrRhtC40Lkg0YLQvtC20LUg0YHQsNC80L7QtVxyXG4gICAgdGhpcy52aXNpYmxlU2VjdGlvbkxpc3Quc2V0KHRoaXMuI2FycmFuZ2VSb3RhdGVkTGlzdChmaWx0ZXJlZFNlY3Rpb25MaXN0KSk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlQWRkaXRpb25hbEFuc3dlcnMoaXNJbml0OiBib29sZWFuKTogdm9pZHtcclxuICAgIGNvbnN0IGRldmVsb3Blck1vZGUgPSB0aGlzLmRldmVsb3Blck1vZGUoKTtcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9ICh0aGlzLmFuc3dlckZvcm0uY29udHJvbHMuYWRkaXRpb25hbEFuc3dlcnMgYXMgRm9ybUdyb3VwKTtcclxuXHJcbiAgICBpZiAoaXNJbml0KSB7XHJcbiAgICAgIHRoaXMucXVlc3Rpb24oKS5BZGRpdGlvbmFsQW5zd2VybGlzdC5mb3JFYWNoKGFhID0+IHtcclxuICAgICAgICBzd2l0Y2ggKGFhLkFuc3dlclR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgQWRkaXRpb25hbEFuc3dlclR5cGUuYWF0TnVtYmVyOiAgZm9ybUdyb3VwLmFkZENvbnRyb2woYWEuVmFsdWUudG9TdHJpbmcoKSwgbmV3IEZvcm1Db250cm9sPG51bWJlciAgfCBudWxsPihudWxsLHt2YWxpZGF0b3JzOiBbYWRkaXRpb25hbEFuc3dlckRlZmF1bHRWYWxpZGF0b3IoYWEuSXNSZXF1aXJlZCksIGFkZGl0aW9uYWxBbnN3ZXJOdW1iZXJWYWxpZGF0b3IoYWEuSXNSZXF1aXJlZCwgYWEuTnVtYmVyTWluVmFsdWUsIGFhLk51bWJlck1heFZhbHVlKV19KSwge2VtaXRFdmVudDogZmFsc2V9KTsgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdFRleHQ6ICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKGFhLlZhbHVlLnRvU3RyaW5nKCksIG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgIHwgbnVsbD4obnVsbCx7dmFsaWRhdG9yczogW2FkZGl0aW9uYWxBbnN3ZXJEZWZhdWx0VmFsaWRhdG9yKGFhLklzUmVxdWlyZWQpXX0pLCB7ZW1pdEV2ZW50OiBmYWxzZX0pOyBicmVhaztcclxuICAgICAgICAgIGNhc2UgQWRkaXRpb25hbEFuc3dlclR5cGUuYWF0Qm9vbGVhbjogZm9ybUdyb3VwLmFkZENvbnRyb2woYWEuVmFsdWUudG9TdHJpbmcoKSwgbmV3IEZvcm1Db250cm9sPGJvb2xlYW4gfCBudWxsPihudWxsLHt2YWxpZGF0b3JzOiBbYWRkaXRpb25hbEFuc3dlckRlZmF1bHRWYWxpZGF0b3IoYWEuSXNSZXF1aXJlZCldfSksIHtlbWl0RXZlbnQ6IGZhbHNlfSk7IGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIC8v0YTQuNC70YzRgtGA0YPQtdC8LFxyXG4gICAgY29uc3QgZmlsdGVyZWRBZGRpdGlvbmFsQW5zd2VyTGlzdCA9IHRoaXMucXVlc3Rpb24oKS5BZGRpdGlvbmFsQW5zd2VybGlzdC5maWx0ZXIoYWRkQW5zd2VyID0+IGRldmVsb3Blck1vZGUgfHwgdGhpcy4jbG9naWMuZXhlY3V0ZUxvZ2ljKGFkZEFuc3dlci5FbmFibGVFeHByZXNzaW9uKSk7XHJcblxyXG4gICAgLy/QvtCx0L3QvtCy0LvRj9C10Lwg0LPQu9C+0LHQsNC70YzQvdGL0Lkg0YHQv9C40YHQvtC6XHJcbiAgICB0aGlzLnZpc2libGVBZGRpdGlvbmFsQW5zd2VyTGlzdC5zZXQoZmlsdGVyZWRBZGRpdGlvbmFsQW5zd2VyTGlzdCk7XHJcbiAgfVxyXG5cclxuICBvbkFsdGVybmF0aXZlQ2xpY2sodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy4jYWx0ZXJuYXRpdmVTZXF1ZW5jZUNsaWNrcy5wdXNoKFt2YWx1ZSwgbmV3IERhdGUoKS5nZXRUaW1lKCldKTtcclxuICB9XHJcblxyXG4gICNhcnJhbmdlUm90YXRlZExpc3Q8VCBleHRlbmRzIElkYkFsdGVybmF0aXZlIHwgSWRiU2VjdGlvbj4oaW5wdXRBcnJheTogQXJyYXk8VD4pOiBBcnJheSA8VD4ge1xyXG4gICAgLy/QoyDQutCw0LbQtNC+0Lkg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLINC4INGB0LXQutGG0LjQuCDQtdGB0YLRjCDQv9GA0LjQt9C90LDQuiBSb3RhdGlvbiwg0LrQvtGC0L7RgNGL0Lkg0L/QvtC30LLQvtC70Y/QtdC8INC80LXQvdGP0YLRjCDQv9C+0YDRj9C00L7QuiDQvtGC0L7QsdGA0LDQttC10L3QuNGPINCw0LvRjNGC0LXRgNC90LDRgtC40LLRiyDQuNC70Lgg0YHQtdC60YbQuNC4XHJcbiAgICAvL9C10YHQu9C4INC+0L0gdHJ1ZSwg0YLQviDQsNC70YzRgtC10YDQvdCw0YLQuNCy0LAg0Lgg0YHQtdC60YbQuNGPINC00L7Qu9C20L3QsCDQv9C+0LzQtdC90Y/RgtGMINGA0LDRgdC/0L7Qu9C+0LbQtdC90LjQtVxyXG4gICAgY29uc3QgcmVzQXJyYXk6IEFycmF5PFQgfCBudW1iZXI+ID0gW107XHJcblxyXG4gICAgLy/RgNCw0LfQvNC10YAg0LzQsNGB0YHQuNCy0LBcclxuICAgIGNvbnN0IGlucHV0QXJyYXlMZW5ndGggPSBpbnB1dEFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAvL9C/0YDQvtGF0L7QtNC40LzRgdGPINC/0L4g0LrQsNC20LTQvtC80YMg0Y3Qu9C10LzQtdC90YLRgyDQstGF0L7QtNC90L7Qs9C+INC80LDRgdGB0LjQstCwLCDQuCDQutC+0L/QuNGA0YPQtdC8INCyINGA0LXQt9GD0LvRjNGC0LjRgNGD0Y7RidC40LksINCV0YHQu9C4IFJvdGF0aW9uLCDQutC+0L/QuNGA0YPQtdC8INC10LPQviDQuNC90LTQtdC60YEsINC10YHQu9C4IFJvdGF0aW9uINC90LUg0YPQutCw0LfQsNC9LCDQutC+0L/QuNGA0YPQtdC8INGB0LDQvCDQvtCx0YrQtdC60YJcclxuICAgIGlucHV0QXJyYXkuZm9yRWFjaCgob2JqLCBpbmRleCkgPT4gcmVzQXJyYXkucHVzaChvYmouUm90YXRpb24gPyBpbmRleCA6IG9iaikpO1xyXG5cclxuICAgIC8v0YLQtdC/0LXRgNGMINGBINC/0L7QvNC+0YnRjNGOINGA0LDQvdC00L7QvNCwLCDRgNCw0YHRgdGC0LDQstC40Lwg0L7RgdGC0LDQu9GM0L3Ri9C1INGN0Lst0YLRi1xyXG4gICAgcmVzQXJyYXkuZm9yRWFjaCgob2JqLCBpbmRleCwgYXJyYXkpID0+IHtcclxuICAgICAgaWYgKCh0eXBlb2Ygb2JqID09PSAnbnVtYmVyJykgJiYgKG9iaiA+PSAwKSkge1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICAvL9C10YHQu9C4INCyINC90L7QstC+0Lwg0LzQsNGB0YHQuNCy0LUg0L3QtdGCINGN0LvQtdC80LXQvdGC0LAg0LjQtyDRgdGC0LDRgNC+0LPQviDQvNCw0YHRgdC40LLQsCDQv9C+IHJhbmRvbSDQuNC90LTQtdC60YHRgywg0YLQvtCz0LTQsCDQutC+0L/QuNGA0YPQtdC8INCyINC90L7QstGL0Lkg0LzQsNGB0YHQuNCyINGB0YLQsNGA0YvQuSDQtdC70LXQvNC10L3RgiDQsiDQvdC+0LLRi9C5INCw0LTRgNC10YFcclxuICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gTWF0aC5mbG9vciggTWF0aC5yYW5kb20oKSAqIGlucHV0QXJyYXlMZW5ndGggKTtcclxuICAgICAgICAgIGlmIChhcnJheS5pbmRleE9mKGlucHV0QXJyYXlbbmV3SW5kZXhdKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gaW5wdXRBcnJheVtuZXdJbmRleF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzQXJyYXkgYXMgQXJyYXk8VD47XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiIFtmb3JtR3JvdXBdPVwiYW5zd2VyRm9ybVwiPlxyXG4gQHN3aXRjaCAocXVlc3Rpb24oKS5RdWVzdGlvblR5cGUpIHtcclxuXHJcbiAgQGNhc2UgKHF1ZXN0aW9uc1R5cGUuZXFMQU5HKSB7XHJcbiAgIDx0cC1zdXJ2ZXktYW5zd2VyLWxhbmdcclxuICAgW2xhbmd1YWdlTGlzdF09XCJsYW5ndWFnZUxpc3QoKVwiXHJcbiAgIFtsYW5ndWFnZV09XCIyXCJcclxuICAgW3ZpZXdNb2RlbF09XCJ2aWV3TW9kZWwoKVwiXHJcbiAgIChvbkxhbmd1YWdlQ2hhbmdlKT1cIm9uTGFuZ3VhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCIvPlxyXG4gIH1cclxuXHJcbiAgQGNhc2UgKHF1ZXN0aW9uc1R5cGUuZXFJTkZPKSB7XHJcbiAgIDx0cC1zdXJ2ZXktYW5zd2VyLWluZm9cclxuICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiXHJcbiAgICBbbGFuZ3VhZ2VdPVwibGFuZ3VhZ2UoKVwiXHJcbiAgICBbdmlld01vZGVsXT1cInZpZXdNb2RlbCgpXCIvPlxyXG4gIH1cclxuXHJcbiAgQGNhc2UgKHF1ZXN0aW9uc1R5cGUuZXFTUykge1xyXG4gICA8dHAtc3VydmV5LWFuc3dlci1zc1xyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCJcclxuICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvbigpXCJcclxuICAgIFtsYW5ndWFnZV09XCJsYW5ndWFnZSgpXCJcclxuICAgIFt2aWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gICAgW2FsdGVybmF0aXZlTGlzdF09XCJ2aXNpYmxlQWx0ZXJuYXRpdmVMaXN0KClcIlxyXG4gICAgKG9uQWx0ZXJuYXRpdmVDbGljayk9XCJvbkFsdGVybmF0aXZlQ2xpY2soJGV2ZW50KVwiXHJcbiAgIC8+XHJcbiAgfVxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcU1TKSB7XHJcbiAgIDx0cC1zdXJ2ZXktYW5zd2VyLW1zXHJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIlxyXG4gICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uKClcIlxyXG4gICAgW2xhbmd1YWdlXT1cImxhbmd1YWdlKClcIlxyXG4gICAgW3ZpZXdNb2RlbF09XCJ2aWV3TW9kZWwoKVwiXHJcbiAgICBbYWx0ZXJuYXRpdmVNYXhBbnN3ZXJzQ291bnRdPVwicXVlc3Rpb24oKS5BbHRlcm5hdGl2ZU1heEFuc3dlcnNDb3VudFwiXHJcbiAgICBbYWx0ZXJuYXRpdmVMaXN0XT1cInZpc2libGVBbHRlcm5hdGl2ZUxpc3QoKVwiXHJcbiAgICAob25BbHRlcm5hdGl2ZUNsaWNrKT1cIm9uQWx0ZXJuYXRpdmVDbGljaygkZXZlbnQpXCIvPlxyXG4gIH1cclxuXHJcbiAgQGNhc2UgKHF1ZXN0aW9uc1R5cGUuZXFPRCkge1xyXG4gICA8dHAtc3VydmV5LWFuc3dlci1vZFxyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCJcclxuICAgIFtsYW5ndWFnZV09XCJsYW5ndWFnZSgpXCJcclxuICAgIFt2aWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gICAgW21pblZhbHVlXT1cInF1ZXN0aW9uKCkuT0RNaW5WYWx1ZVwiXHJcbiAgICBbbWF4VmFsdWVdPVwicXVlc3Rpb24oKS5PRE1heFZhbHVlXCJcclxuICAgLz5cclxuICB9XHJcblxyXG4gIEBjYXNlIChxdWVzdGlvbnNUeXBlLmVxT0wpIHtcclxuICAgPHRwLXN1cnZleS1hbnN3ZXItb2xcclxuICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiXHJcbiAgICBbbGFuZ3VhZ2VdPVwibGFuZ3VhZ2UoKVwiXHJcbiAgICBbdmlld01vZGVsXT1cInZpZXdNb2RlbCgpXCJcclxuICAgIFt0ZWxlcGhvbmVJbnB1dF09XCJxdWVzdGlvbigpLk9MVHlwZVRlbFwiXHJcbiAgIC8+XHJcbiAgfVxyXG5cclxuICBAY2FzZSAocXVlc3Rpb25zVHlwZS5lcVNMKSB7XHJcbiAgIDx0cC1zdXJ2ZXktYW5zd2VyLXNsXHJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIlxyXG4gICAgW2FsdGVybmF0aXZlTGlzdF09XCJ2aXNpYmxlQWx0ZXJuYXRpdmVMaXN0KClcIlxyXG4gICAgW3NlY3Rpb25MaXN0XT1cInZpc2libGVTZWN0aW9uTGlzdCgpXCJcclxuICAgIFttdWx0aVNlbGVjdF09XCJxdWVzdGlvbigpLk11bHRpU2VsZWN0XCJcclxuICAgIFtsYW5ndWFnZV09XCJsYW5ndWFnZSgpXCJcclxuICAgIFt2aWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gICAgW21heENvdW50XT1cInRoaXMucXVlc3Rpb24oKS5TTFNlY3Rpb25NYXhBbnN3ZXJzQ291bnRcIlxyXG4gICAvPlxyXG4gIH1cclxuXHJcbiAgQGNhc2UgKHF1ZXN0aW9uc1R5cGUuZXFFTkQpIHtcclxuICAgPHRwLXN1cnZleS1hbnN3ZXItZW5kXHJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIlxyXG4gICAgW2xhbmd1YWdlXT1cImxhbmd1YWdlKClcIlxyXG4gICAgW3ZpZXdNb2RlbF09XCJ2aWV3TW9kZWwoKVwiXHJcbiAgIC8+XHJcbiAgfVxyXG4gfVxyXG5cclxuIDxkaXYgY2xhc3M9XCJjb250YWluZXItYWRkaXRpb25hbC1hbnN3ZXJcIj5cclxuICAgQGZvciAoYWRkQW5zd2VyIG9mIGFuc3dlckZvcm0uY29udHJvbHMuYWRkaXRpb25hbEFuc3dlcnMuY29udHJvbHMgfCBrZXlWYWx1ZXM7IHRyYWNrIGFkZEFuc3dlcikge1xyXG4gICAgQGlmIChhZGRBbnN3ZXIubmFtZSB8IGdldEFkZGl0aW9uYWxWYWx1ZUJ5VmFsdWU6dmlzaWJsZUFkZGl0aW9uYWxBbnN3ZXJMaXN0KCk7IGFzIGFkZGl0aW9uYWxBbnN3ZXJPYmplY3QgKSB7XHJcbiAgICAgPHRwLXN1cnZleS1hbnN3ZXItYWRkaXRpb25hbFxyXG4gICAgICBbY29udHJvbF09XCJhZGRBbnN3ZXIuY29udHJvbFwiXHJcbiAgICAgIFtjbGFzcy5mdWxsLXdpZHRoXT1cImFkZGl0aW9uYWxBbnN3ZXJPYmplY3QuQW5zd2VyVHlwZT09PUFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdFRleHRcIlxyXG4gICAgICBbYW5zd2VyVHlwZV09XCJhZGRpdGlvbmFsQW5zd2VyT2JqZWN0LkFuc3dlclR5cGVcIlxyXG4gICAgICBbY2FwdGlvbl09XCJhZGRpdGlvbmFsQW5zd2VyT2JqZWN0Lk11bHRpTGFuZ0NhcHRpb25zIHwgbXVsdGlMYW5nT2JqZWN0VG9IdG1sOmxhbmd1YWdlKClcIlxyXG4gICAgICBbbnVtYmVyTWluVmFsdWVdPVwiYWRkaXRpb25hbEFuc3dlck9iamVjdC5OdW1iZXJNaW5WYWx1ZVwiXHJcbiAgICAgIFtudW1iZXJNYXhWYWx1ZV09XCJhZGRpdGlvbmFsQW5zd2VyT2JqZWN0Lk51bWJlck1heFZhbHVlXCJcclxuICAgICAgW3RleHRNdWx0aWxpbmVdPVwiYWRkaXRpb25hbEFuc3dlck9iamVjdC5UZXh0TXVsdGlsaW5lXCJcclxuICAgICAgW2NhcHRpb25Qb3NpdGlvbl09XCJhZGRpdGlvbmFsQW5zd2VyT2JqZWN0LkNhcHRpb25Qb3NpdGlvblwiLz5cclxuICAgIH1cclxuICAgfVxyXG4gPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
@@ -24,12 +24,18 @@ export const answerODValidator = (minValue, maxValue) => (control) => {
24
24
  //ошибок нет, всё корректно
25
25
  return null;
26
26
  };
27
- export const answerOLValidator = () => (control) => {
27
+ export const answerOLValidator = (isPhoneNumber) => (control) => {
28
28
  const text = typeof control.value !== 'string' ? '' : control.value.trim();
29
29
  //Нужно чтобы в поле ввели хоть что-то.
30
30
  if (text.length === 0) {
31
31
  return { answerOlAnswerError: true };
32
32
  }
33
+ if (isPhoneNumber) {
34
+ const res = text.length === 9 && !isNaN(Number(text));
35
+ if (!res) {
36
+ return { answerOlTelephoneFormatError: true };
37
+ }
38
+ }
33
39
  //ошибок нет, всё корректно
34
40
  return null;
35
41
  };
@@ -121,4 +127,4 @@ export const additionalAnswerNumberValidator = (required, minValue, maxValue) =>
121
127
  //ошибок нет, всё корректно
122
128
  return null;
123
129
  };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmFuc3dlci52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2NvbnRhaW5lci5hbnN3ZXIvY29udGFpbmVyLmFuc3dlci52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQWdCLEVBQUU7SUFDdEQsT0FBTyxDQUFDLE9BQXdCLEVBQWlDLEVBQUU7UUFDakUsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUMsRUFBRyxDQUFDO1lBQ25FLE9BQU8sRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUE7UUFDL0IsQ0FBQztRQUVELDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsUUFBdUIsRUFBRSxRQUF1QixFQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7SUFDNUosa0RBQWtEO0lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBQ0QsNkJBQTZCO0lBQzdCLDZGQUE2RjtJQUM3Riw2RkFBNkY7SUFDN0YsaURBQWlEO0lBQ2pELElBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFL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QUksUUFBUSxFQUFFLENBQUM7WUFDdkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBQyxDQUFBO1FBQzFDLENBQUM7UUFDRCwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFFBQWlCLEVBQUUsUUFBdUIsRUFBRSxRQUF1QixFQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7SUFDN0wsZ0RBQWdEO0lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFDLENBQUE7SUFDckMsQ0FBQztJQUVELDZCQUE2QjtJQUM3Qiw2RkFBNkY7SUFDN0YsNkZBQTZGO0lBQzdGLGlEQUFpRDtJQUNqRCxJQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLFFBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLFFBQVMsQ0FBQyxFQUFJLENBQUM7UUFDdEksT0FBTyxFQUFDLG1CQUFtQixFQUFFLElBQUksRUFBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtNSVNTSU5HX1ZBTFVFfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuY29uc3QnO1xyXG5pbXBvcnQge0lkYlNlY3Rpb259IGZyb20gJy4uLy4uLy4uL3RwLnN1cnZleS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlckRlZmF1bHRWYWxpZGF0b3IgPSAoKTogVmFsaWRhdG9yRm4gPT4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgLy/QvtGC0LLQtdGCINC90LUg0YfQuNGB0LvQviwg0YLQsNC60L7Qs9C+INCx0YvRgtGMINC90LUg0LzQvtC20LXRgiwg0Y3RgtC+INC+0YjQuNCx0LrQsFxyXG4gICAgaWYgKChjb250cm9sLnZhbHVlID09PSBudWxsKSB8fCAoY29udHJvbC52YWx1ZSA9PT0gTUlTU0lOR19WQUxVRSkgKSB7XHJcbiAgICAgIHJldHVybiB7YW5zd2VyUmVxdWlyZWQ6IHRydWV9XHJcbiAgICB9XHJcblxyXG4gICAgLy/QvtGI0LjQsdC+0Log0L3QtdGCLCDQstGB0ZEg0LrQvtGA0YDQtdC60YLQvdC+XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlck9EVmFsaWRhdG9yID0gKG1pblZhbHVlOiBudW1iZXIgfCBudWxsLCBtYXhWYWx1ZTogbnVtYmVyIHwgbnVsbCk6IFZhbGlkYXRvckZuID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgPT4ge1xyXG4gIC8v0L7RgtCy0LXRgiDQvdC1INGH0LjRgdC70L4sINGC0LDQutC+0LPQviDQsdGL0YLRjCDQvdC1INC80L7QttC10YIsINGN0YLQviDQvtGI0LjQsdC60LBcclxuICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck9kQW5zd2VyVHlwZTogdHJ1ZX1cclxuICB9XHJcbiAgLy/QndGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCAyINGB0LjRgtGD0LDRhtC40LguXHJcbiAgLy8xINCSINC90LDRgdGC0YDQvtC50LrQsNGFINCy0L7Qv9GA0L7RgdCwINGD0LrQsNC30LDQu9C4IG1pblZhbHVlLCDRgtC+0LPQtNCwINCy0LLQtdC00ZHQvdC90L7QtSDRh9C40YHQu9C+INC00L7Qu9C20L3QviDQsdGL0YLRjCDQsdC+0LvRjNGI0LUgbWluVmFsdWUuXHJcbiAgLy8yINCSINC90LDRgdGC0YDQvtC50LrQsNGFINCy0L7Qv9GA0L7RgdCwINGD0LrQsNC30LDQu9C4IG1heFZhbHVlLCDRgtC+0LPQtNCwINCy0LLQtdC00ZHQvdC90L7QtSDRh9C40YHQu9C+INC00L7Qu9C20L3QviDQsdGL0YLRjCDQvNC10L3RjNGI0LUgbWF4VmFsdWUuXHJcbiAgLy/QldGB0LvQuCDRjdGC0Lgg0YPRgdC70L7QstC40Y8g0L3QtSDQstGL0L/QvtC70L3Rj9GO0YLRgdGPLCDRgtC+INGN0YLQviDQvtGI0LjQsdC60LAuXHJcbiAgaWYgKCAoTnVtYmVyLmlzU2FmZUludGVnZXIobWluVmFsdWUpICYmIGNvbnRyb2wudmFsdWUgPCBtaW5WYWx1ZSEpIHx8IChOdW1iZXIuaXNTYWZlSW50ZWdlcihtYXhWYWx1ZSkgJiYgKG1heFZhbHVlID8/IDAgPiAwKSAmJiBjb250cm9sLnZhbHVlID4gbWF4VmFsdWUhKSApICB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck9kQW5zd2VyRXJyb3I6IHRydWV9XHJcbiAgfVxyXG4gIFxyXG4gIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlck9MVmFsaWRhdG9yID0gKCk6IFZhbGlkYXRvckZuID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgPT4ge1xyXG4gIGNvbnN0IHRleHQgPSB0eXBlb2YgY29udHJvbC52YWx1ZSAhPT0gJ3N0cmluZycgPyAnJyA6IGNvbnRyb2wudmFsdWUudHJpbSgpO1xyXG5cclxuICAvL9Cd0YPQttC90L4g0YfRgtC+0LHRiyDQsiDQv9C+0LvQtSDQstCy0LXQu9C4INGF0L7RgtGMINGH0YLQvi3RgtC+LlxyXG4gIGlmICggdGV4dC5sZW5ndGggPT09IDAgKSAge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJPbEFuc3dlckVycm9yOiB0cnVlfVxyXG4gIH1cclxuXHJcbiAgLy/QvtGI0LjQsdC+0Log0L3QtdGCLCDQstGB0ZEg0LrQvtGA0YDQtdC60YLQvdC+XHJcbiAgcmV0dXJuIG51bGw7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlclNTVmFsaWRhdG9yID0gKCk6IFZhbGlkYXRvckZuID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgPT4ge1xyXG4gIC8v0L7RgtCy0LXRgiDQvdC1INGH0LjRgdC70L4sINGC0LDQutC+0LPQviDQsdGL0YLRjCDQvdC1INC80L7QttC10YIsINGN0YLQviDQvtGI0LjQsdC60LBcclxuICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlclNzQW5zd2VyVHlwZTogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0L3QtdGCINC+0YLQstC10YLQsFxyXG4gIGlmIChjb250cm9sLnZhbHVlIDwgMCkge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJNaXNzaW5nOiB0cnVlfVxyXG4gIH1cclxuXHJcbiAgLy/QvtGI0LjQsdC+0Log0L3QtdGCLCDQstGB0ZEg0LrQvtGA0YDQtdC60YLQvdC+XHJcbiAgcmV0dXJuIG51bGw7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlck1TVmFsaWRhdG9yID0gKHZpc2libGVBbHRlcm5hdGl2ZUNvdW50OiBudW1iZXIsIG1pbkNvdW50OiBudW1iZXIgPSAxLCBtYXhDb3VudDogbnVtYmVyID0gMCk6IFZhbGlkYXRvckZuID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgPT4ge1xyXG4gIC8vdmlzaWJsZUFsdGVybmF0aXZlQ291bnQgLSDQutC+0LvQuNGH0LXRgdGC0LLQviDQsNC70YzRgtC10YDQvdCw0YLQuNCyINC90LAg0Y3QutGA0LDQvdC1LCDQtdGB0LvQuCAwLCDRgtC+INGB0LzRi9GB0LvQsCDQv9C+0LrQsNC30YvQstCw0YLRjCDQstC+0L/RgNC+0YEg0L3QtdGCXHJcbiAgLy9taW5Db3VudCAtINCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtCy0LXRgtC+0LIsINC60L7RgtC+0YDQvtC1INC80L7QttC10YIg0LLRi9Cx0YDQsNGC0Ywg0YDQtdGB0L/QvtC90LTQtdC90YIsINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIDEuXHJcbiAgLy9tYXhDb3VudCAtINCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQvtGC0LLQtdGC0L7Qsiwg0LrQvtGC0L7RgNGL0LUg0LzQvtC20LXRgiDQstGL0LHRgNCw0YLRjCDRgNC10YHQv9C+0L3QtNC10L3Rgi4g0JXRgdC70Lgg0YPQutCw0LfQsNC90L4gMCwg0LrQvtC70LjRh9C10YHRgtCy0L4g0L3QtSDQvtCz0YDQsNC90LjRh9C10L3Qvi4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4gMFxyXG5cclxuICBpZiAodmlzaWJsZUFsdGVybmF0aXZlQ291bnQgPT09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy/QvtGC0LLQtdGCINC90LUg0LzQsNGB0YHQuNCyLCDRgtCw0LrQvtCz0L4g0LHRi9GC0Ywg0L3QtSDQvNC+0LbQtdGCLCDRjdGC0L4g0L7RiNC40LHQutCwXHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck1zQW5zd2VyVHlwZTogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0LrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtCy0LXRgtC+0LJcclxuICBjb25zdCBjb3VudCA9IGNvbnRyb2wudmFsdWUubGVuZ3RoO1xyXG4gIFxyXG4gIC8v0L/RgNC+0LLQtdGA0Y/QtdC8IG1pbkNvdW50XHJcbiAgaWYgKGNvdW50IDwgbWluQ291bnQpIHtcclxuICAgIHJldHVybiB7YW5zd2VyTXNNaW5Db3VudDogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0L/RgNC+0LLQtdGA0Y/QtdC8IG1heENvdW50XHJcbiAgaWYgKG1heENvdW50ID4gMCAmJiBjb3VudCA+IG1heENvdW50KSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck1zTWF4Q291bnQ6IHRydWV9XHJcbiAgfVxyXG5cclxuICAvL9C+0YjQuNCx0L7QuiDQvdC10YIsINCy0YHRkSDQutC+0YDRgNC10LrRgtC90L5cclxuICByZXR1cm4gbnVsbDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBhbnN3ZXJTbFZhbGlkYXRvciA9IChyZXF1aXJlZDogYm9vbGVhbiwgbWluQW5zd2Vyc0NvdW50OiBudW1iZXIsIHNlY3Rpb25MaXN0OiBBcnJheTxJZGJTZWN0aW9uPik6IFZhbGlkYXRvckZuID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgPT4ge1xyXG4gIC8v0LXRgdC70Lgg0L7RgtCy0LXRgtGLINC00LvRjyDQutCw0LbQtNC+0Lkg0YHQtdC60YbQuNC4INC90LXQvtCx0Y/Qt9Cw0YLQtdC70YzQvdGLLCDQvdC40YfQtdCz0L4g0L3QtSDQv9GA0L7QstC10YDRj9C10Lwg0Lgg0LLRi9GF0L7QtNC40LwuXHJcbiAgaWYgKCFyZXF1aXJlZCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGlmICghY29udHJvbC52YWx1ZSkge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJNaXNzaW5nOiB0cnVlfTtcclxuICB9XHJcblxyXG4gIC8v0LXRgdC70Lgg0YXQvtGC0YwgMSDRgdC10YHRgdC40Y8g0L3QtSDQuNC80LXQtdGCINC30L3QsNGH0LXQvdC40Y8o0LjQu9C4INC60L7Qu9C40YfQtdGB0YLQstC+INCy0YvQsdGA0LDQvdC90YvRhSDQsNC70YzRgtC10YDQvdCw0YLQuNCyINC80LXQvdGM0YjQtSBtaW5BbnN3ZXJzQ291bnQpLCDRgtC+0LPQtNCwINC+0YLQstC10YIg0L3QsCDQstC+0L/RgNC+0YEg0L3QtSDQv9C+0LvQvdGL0LkuXHJcbiAgY29uc3QgaGFzTWlzc2luZ0Fuc3dlcnMgPSBzZWN0aW9uTGlzdC5zb21lKHNlY3Rpb24gPT4ge1xyXG4gICAgY29uc3Qgc2VjdGlvbkFuc3dlcnMgPSBjb250cm9sLnZhbHVlW3NlY3Rpb24uU2VjdGlvbkd1aWQudG9TdHJpbmcoKV07XHJcbiAgICBpZiAoIXNlY3Rpb25BbnN3ZXJzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShzZWN0aW9uQW5zd2VycykgPyBzZWN0aW9uQW5zd2Vycy5sZW5ndGggPT09IDAgfHwgKG1pbkFuc3dlcnNDb3VudCA+IDEgJiYgc2VjdGlvbkFuc3dlcnMubGVuZ3RoIDwgbWluQW5zd2Vyc0NvdW50KSA6IHNlY3Rpb25BbnN3ZXJzID09PSAwO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChoYXNNaXNzaW5nQW5zd2Vycykge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJNaXNzaW5nOiB0cnVlfTtcclxuICB9XHJcblxyXG4gIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFkZGl0aW9uYWxBbnN3ZXJEZWZhdWx0VmFsaWRhdG9yID0gKHJlcXVpcmVkOiBib29sZWFuKTogVmFsaWRhdG9yRm4gPT4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgaWYgKCAgKGNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnc3RyaW5nJyAmJiBjb250cm9sLnZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApKSAmJiByZXF1aXJlZCkge1xyXG4gICAgICByZXR1cm4geyBhZGRpdGlvbmFsQW5zd2VyUmVxdWlyZWQ6IHRydWV9XHJcbiAgICB9XHJcbiAgICAvL9C+0YjQuNCx0L7QuiDQvdC10YIsINCy0YHRkSDQutC+0YDRgNC10LrRgtC90L5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYWRkaXRpb25hbEFuc3dlck51bWJlclZhbGlkYXRvciA9IChyZXF1aXJlZDogYm9vbGVhbiwgbWluVmFsdWU6IG51bWJlciB8IG51bGwsIG1heFZhbHVlOiBudW1iZXIgfCBudWxsKTogVmFsaWRhdG9yRm4gPT4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHwgbnVsbCA9PiB7XHJcbiAgLy/QvtGC0LLQtdGCINC90LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C5LCDQvNC+0LbQvdC+INC90LUg0LrQvtC90YLRgNC+0LvQuNGA0L7QstCw0YLRjFxyXG4gIGlmICghcmVxdWlyZWQpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy/QvtGC0LLQtdGCINC90LUg0YfQuNGB0LvQviwg0YLQsNC60L7Qs9C+INCx0YvRgtGMINC90LUg0LzQvtC20LXRgiwg0Y3RgtC+INC+0YjQuNCx0LrQsFxyXG4gIGlmICghTnVtYmVyLmlzU2FmZUludGVnZXIoY29udHJvbC52YWx1ZSkpIHtcclxuICAgIHJldHVybiB7YWRkaXRpb25hbEFuc3dlclR5cGU6IHRydWV9XHJcbiAgfVxyXG5cclxuICAvL9Cd0YPQttC90L4g0L/RgNC+0LLQtdGA0LjRgtGMIDIg0YHQuNGC0YPQsNGG0LjQuC5cclxuICAvLzEg0JIg0L3QsNGB0YLRgNC+0LnQutCw0YUg0LLQvtC/0YDQvtGB0LAg0YPQutCw0LfQsNC70LggbWluVmFsdWUsINGC0L7Qs9C00LAg0LLQstC10LTRkdC90L3QvtC1INGH0LjRgdC70L4g0LTQvtC70LbQvdC+INCx0YvRgtGMINCx0L7Qu9GM0YjQtSBtaW5WYWx1ZS5cclxuICAvLzIg0JIg0L3QsNGB0YLRgNC+0LnQutCw0YUg0LLQvtC/0YDQvtGB0LAg0YPQutCw0LfQsNC70LggbWF4VmFsdWUsINGC0L7Qs9C00LAg0LLQstC10LTRkdC90L3QvtC1INGH0LjRgdC70L4g0LTQvtC70LbQvdC+INCx0YvRgtGMINC80LXQvdGM0YjQtSBtYXhWYWx1ZS5cclxuICAvL9CV0YHQu9C4INGN0YLQuCDRg9GB0LvQvtCy0LjRjyDQvdC1INCy0YvQv9C+0LvQvdGP0Y7RgtGB0Y8sINGC0L4g0Y3RgtC+INC+0YjQuNCx0LrQsC5cclxuICBpZiAoIChOdW1iZXIuaXNTYWZlSW50ZWdlcihtaW5WYWx1ZSkgJiYgY29udHJvbC52YWx1ZSA8IG1pblZhbHVlISkgfHwgKE51bWJlci5pc1NhZmVJbnRlZ2VyKG1heFZhbHVlKSAmJiBjb250cm9sLnZhbHVlID4gbWF4VmFsdWUhKSApICB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck9kQW5zd2VyRXJyb3I6IHRydWV9XHJcbiAgfVxyXG5cclxuICAvL9C+0YjQuNCx0L7QuiDQvdC10YIsINCy0YHRkSDQutC+0YDRgNC10LrRgtC90L5cclxuICByZXR1cm4gbnVsbDtcclxufTtcclxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmFuc3dlci52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2NvbnRhaW5lci5hbnN3ZXIvY29udGFpbmVyLmFuc3dlci52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQWdCLEVBQUU7SUFDdEQsT0FBTyxDQUFDLE9BQXdCLEVBQWlDLEVBQUU7UUFDakUsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUMsRUFBRyxDQUFDO1lBQ25FLE9BQU8sRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUE7UUFDL0IsQ0FBQztRQUVELDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsUUFBdUIsRUFBRSxRQUF1QixFQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7SUFDNUosa0RBQWtEO0lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBQ0QsNkJBQTZCO0lBQzdCLDZGQUE2RjtJQUM3Riw2RkFBNkY7SUFDN0YsaURBQWlEO0lBQ2pELElBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFL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LG1CQUFtQixFQUFFLElBQUksRUFBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtNSVNTSU5HX1ZBTFVFfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuY29uc3QnO1xyXG5pbXBvcnQge0lkYlNlY3Rpb259IGZyb20gJy4uLy4uLy4uL3RwLnN1cnZleS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlckRlZmF1bHRWYWxpZGF0b3IgPSAoKTogVmFsaWRhdG9yRm4gPT4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgLy/QvtGC0LLQtdGCINC90LUg0YfQuNGB0LvQviwg0YLQsNC60L7Qs9C+INCx0YvRgtGMINC90LUg0LzQvtC20LXRgiwg0Y3RgtC+INC+0YjQuNCx0LrQsFxyXG4gICAgaWYgKChjb250cm9sLnZhbHVlID09PSBudWxsKSB8fCAoY29udHJvbC52YWx1ZSA9PT0gTUlTU0lOR19WQUxVRSkgKSB7XHJcbiAgICAgIHJldHVybiB7YW5zd2VyUmVxdWlyZWQ6IHRydWV9XHJcbiAgICB9XHJcblxyXG4gICAgLy/QvtGI0LjQsdC+0Log0L3QtdGCLCDQstGB0ZEg0LrQvtGA0YDQtdC60YLQvdC+XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlck9EVmFsaWRhdG9yID0gKG1pblZhbHVlOiBudW1iZXIgfCBudWxsLCBtYXhWYWx1ZTogbnVtYmVyIHwgbnVsbCk6IFZhbGlkYXRvckZuID0+IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7W2tleTogc3RyaW5nXTogYW55fSB8IG51bGwgPT4ge1xyXG4gIC8v0L7RgtCy0LXRgiDQvdC1INGH0LjRgdC70L4sINGC0LDQutC+0LPQviDQsdGL0YLRjCDQvdC1INC80L7QttC10YIsINGN0YLQviDQvtGI0LjQsdC60LBcclxuICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck9kQW5zd2VyVHlwZTogdHJ1ZX1cclxuICB9XHJcbiAgLy/QndGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCAyINGB0LjRgtGD0LDRhtC40LguXHJcbiAgLy8xINCSINC90LDRgdGC0YDQvtC50LrQsNGFINCy0L7Qv9GA0L7RgdCwINGD0LrQsNC30LDQu9C4IG1pblZhbHVlLCDRgtC+0LPQtNCwINCy0LLQtdC00ZHQvdC90L7QtSDRh9C40YHQu9C+INC00L7Qu9C20L3QviDQsdGL0YLRjCDQsdC+0LvRjNGI0LUgbWluVmFsdWUuXHJcbiAgLy8yINCSINC90LDRgdGC0YDQvtC50LrQsNGFINCy0L7Qv9GA0L7RgdCwINGD0LrQsNC30LDQu9C4IG1heFZhbHVlLCDRgtC+0LPQtNCwINCy0LLQtdC00ZHQvdC90L7QtSDRh9C40YHQu9C+INC00L7Qu9C20L3QviDQsdGL0YLRjCDQvNC10L3RjNGI0LUgbWF4VmFsdWUuXHJcbiAgLy/QldGB0LvQuCDRjdGC0Lgg0YPRgdC70L7QstC40Y8g0L3QtSDQstGL0L/QvtC70L3Rj9GO0YLRgdGPLCDRgtC+INGN0YLQviDQvtGI0LjQsdC60LAuXHJcbiAgaWYgKCAoTnVtYmVyLmlzU2FmZUludGVnZXIobWluVmFsdWUpICYmIGNvbnRyb2wudmFsdWUgPCBtaW5WYWx1ZSEpIHx8IChOdW1iZXIuaXNTYWZlSW50ZWdlcihtYXhWYWx1ZSkgJiYgKG1heFZhbHVlID8/IDAgPiAwKSAmJiBjb250cm9sLnZhbHVlID4gbWF4VmFsdWUhKSApICB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck9kQW5zd2VyRXJyb3I6IHRydWV9XHJcbiAgfVxyXG5cclxuICAvL9C+0YjQuNCx0L7QuiDQvdC10YIsINCy0YHRkSDQutC+0YDRgNC10LrRgtC90L5cclxuICByZXR1cm4gbnVsbDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBhbnN3ZXJPTFZhbGlkYXRvciA9IChpc1Bob25lTnVtYmVyOiBib29sZWFuKTogVmFsaWRhdG9yRm4gPT4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHwgbnVsbCA9PiB7XHJcbiAgY29uc3QgdGV4dCA9IHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAnc3RyaW5nJyA/ICcnIDogY29udHJvbC52YWx1ZS50cmltKCk7XHJcbiAgLy/QndGD0LbQvdC+INGH0YLQvtCx0Ysg0LIg0L/QvtC70LUg0LLQstC10LvQuCDRhdC+0YLRjCDRh9GC0L4t0YLQvi5cclxuICBpZiAoIHRleHQubGVuZ3RoID09PSAwICkgIHtcclxuICAgIHJldHVybiB7YW5zd2VyT2xBbnN3ZXJFcnJvcjogdHJ1ZX1cclxuICB9XHJcblxyXG4gIGlmIChpc1Bob25lTnVtYmVyKSB7XHJcbiAgICBjb25zdCByZXMgPSB0ZXh0Lmxlbmd0aCA9PT0gOSAmJiAhaXNOYU4oTnVtYmVyKHRleHQpKTtcclxuICAgIGlmICghcmVzKSB7XHJcbiAgICAgIHJldHVybiB7YW5zd2VyT2xUZWxlcGhvbmVGb3JtYXRFcnJvcjogdHJ1ZX1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBhbnN3ZXJTU1ZhbGlkYXRvciA9ICgpOiBWYWxpZGF0b3JGbiA9PiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKToge1trZXk6IHN0cmluZ106IGFueX0gfCBudWxsID0+IHtcclxuICAvL9C+0YLQstC10YIg0L3QtSDRh9C40YHQu9C+LCDRgtCw0LrQvtCz0L4g0LHRi9GC0Ywg0L3QtSDQvNC+0LbQtdGCLCDRjdGC0L4g0L7RiNC40LHQutCwXHJcbiAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihjb250cm9sLnZhbHVlKSkge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJTc0Fuc3dlclR5cGU6IHRydWV9XHJcbiAgfVxyXG5cclxuICAvL9C90LXRgiDQvtGC0LLQtdGC0LBcclxuICBpZiAoY29udHJvbC52YWx1ZSA8IDApIHtcclxuICAgIHJldHVybiB7YW5zd2VyTWlzc2luZzogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBhbnN3ZXJNU1ZhbGlkYXRvciA9ICh2aXNpYmxlQWx0ZXJuYXRpdmVDb3VudDogbnVtYmVyLCBtaW5Db3VudDogbnVtYmVyID0gMSwgbWF4Q291bnQ6IG51bWJlciA9IDApOiBWYWxpZGF0b3JGbiA9PiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKToge1trZXk6IHN0cmluZ106IGFueX0gfCBudWxsID0+IHtcclxuICAvL3Zpc2libGVBbHRlcm5hdGl2ZUNvdW50IC0g0LrQvtC70LjRh9C10YHRgtCy0L4g0LDQu9GM0YLQtdGA0L3QsNGC0LjQsiDQvdCwINGN0LrRgNCw0L3QtSwg0LXRgdC70LggMCwg0YLQviDRgdC80YvRgdC70LAg0L/QvtC60LDQt9GL0LLQsNGC0Ywg0LLQvtC/0YDQvtGBINC90LXRglxyXG4gIC8vbWluQ291bnQgLSDQnNC40L3QuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INC+0YLQstC10YLQvtCyLCDQutC+0YLQvtGA0L7QtSDQvNC+0LbQtdGCINCy0YvQsdGA0LDRgtGMINGA0LXRgdC/0L7QvdC00LXQvdGCLCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAxLlxyXG4gIC8vbWF4Q291bnQgLSDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtCy0LXRgtC+0LIsINC60L7RgtC+0YDRi9C1INC80L7QttC10YIg0LLRi9Cx0YDQsNGC0Ywg0YDQtdGB0L/QvtC90LTQtdC90YIuINCV0YHQu9C4INGD0LrQsNC30LDQvdC+IDAsINC60L7Qu9C40YfQtdGB0YLQstC+INC90LUg0L7Qs9GA0LDQvdC40YfQtdC90L4uINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIDBcclxuXHJcbiAgaWYgKHZpc2libGVBbHRlcm5hdGl2ZUNvdW50ID09PSAwKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8v0L7RgtCy0LXRgiDQvdC1INC80LDRgdGB0LjQsiwg0YLQsNC60L7Qs9C+INCx0YvRgtGMINC90LUg0LzQvtC20LXRgiwg0Y3RgtC+INC+0YjQuNCx0LrQsFxyXG4gIGlmICghQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKSkge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJNc0Fuc3dlclR5cGU6IHRydWV9XHJcbiAgfVxyXG5cclxuICAvL9C60L7Qu9C40YfQtdGB0YLQstC+INC+0YLQstC10YLQvtCyXHJcbiAgY29uc3QgY291bnQgPSBjb250cm9sLnZhbHVlLmxlbmd0aDtcclxuXHJcbiAgLy/Qv9GA0L7QstC10YDRj9C10LwgbWluQ291bnRcclxuICBpZiAoY291bnQgPCBtaW5Db3VudCkge1xyXG4gICAgcmV0dXJuIHthbnN3ZXJNc01pbkNvdW50OiB0cnVlfVxyXG4gIH1cclxuXHJcbiAgLy/Qv9GA0L7QstC10YDRj9C10LwgbWF4Q291bnRcclxuICBpZiAobWF4Q291bnQgPiAwICYmIGNvdW50ID4gbWF4Q291bnQpIHtcclxuICAgIHJldHVybiB7YW5zd2VyTXNNYXhDb3VudDogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFuc3dlclNsVmFsaWRhdG9yID0gKHJlcXVpcmVkOiBib29sZWFuLCBtaW5BbnN3ZXJzQ291bnQ6IG51bWJlciwgc2VjdGlvbkxpc3Q6IEFycmF5PElkYlNlY3Rpb24+KTogVmFsaWRhdG9yRm4gPT4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHwgbnVsbCA9PiB7XHJcbiAgLy/QtdGB0LvQuCDQvtGC0LLQtdGC0Ysg0LTQu9GPINC60LDQttC00L7QuSDRgdC10LrRhtC40Lgg0L3QtdC+0LHRj9C30LDRgtC10LvRjNC90YssINC90LjRh9C10LPQviDQvdC1INC/0YDQvtCy0LXRgNGP0LXQvCDQuCDQstGL0YXQvtC00LjQvC5cclxuICBpZiAoIXJlcXVpcmVkKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgaWYgKCFjb250cm9sLnZhbHVlKSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck1pc3Npbmc6IHRydWV9O1xyXG4gIH1cclxuXHJcbiAgLy/QtdGB0LvQuCDRhdC+0YLRjCAxINGB0LXRgdGB0LjRjyDQvdC1INC40LzQtdC10YIg0LfQvdCw0YfQtdC90LjRjyjQuNC70Lgg0LrQvtC70LjRh9C10YHRgtCy0L4g0LLRi9Cx0YDQsNC90L3Ri9GFINCw0LvRjNGC0LXRgNC90LDRgtC40LIg0LzQtdC90YzRiNC1IG1pbkFuc3dlcnNDb3VudCksINGC0L7Qs9C00LAg0L7RgtCy0LXRgiDQvdCwINCy0L7Qv9GA0L7RgSDQvdC1INC/0L7Qu9C90YvQuS5cclxuICBjb25zdCBoYXNNaXNzaW5nQW5zd2VycyA9IHNlY3Rpb25MaXN0LnNvbWUoc2VjdGlvbiA9PiB7XHJcbiAgICBjb25zdCBzZWN0aW9uQW5zd2VycyA9IGNvbnRyb2wudmFsdWVbc2VjdGlvbi5TZWN0aW9uR3VpZC50b1N0cmluZygpXTtcclxuICAgIGlmICghc2VjdGlvbkFuc3dlcnMpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHNlY3Rpb25BbnN3ZXJzKSA/IHNlY3Rpb25BbnN3ZXJzLmxlbmd0aCA9PT0gMCB8fCAobWluQW5zd2Vyc0NvdW50ID4gMSAmJiBzZWN0aW9uQW5zd2Vycy5sZW5ndGggPCBtaW5BbnN3ZXJzQ291bnQpIDogc2VjdGlvbkFuc3dlcnMgPT09IDA7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKGhhc01pc3NpbmdBbnN3ZXJzKSB7XHJcbiAgICByZXR1cm4ge2Fuc3dlck1pc3Npbmc6IHRydWV9O1xyXG4gIH1cclxuXHJcbiAgLy/QvtGI0LjQsdC+0Log0L3QtdGCLCDQstGB0ZEg0LrQvtGA0YDQtdC60YLQvdC+XHJcbiAgcmV0dXJuIG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYWRkaXRpb25hbEFuc3dlckRlZmF1bHRWYWxpZGF0b3IgPSAocmVxdWlyZWQ6IGJvb2xlYW4pOiBWYWxpZGF0b3JGbiA9PiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoICAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCAodHlwZW9mIGNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnICYmIGNvbnRyb2wudmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCkpICYmIHJlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiB7IGFkZGl0aW9uYWxBbnN3ZXJSZXF1aXJlZDogdHJ1ZX1cclxuICAgIH1cclxuICAgIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBhZGRpdGlvbmFsQW5zd2VyTnVtYmVyVmFsaWRhdG9yID0gKHJlcXVpcmVkOiBib29sZWFuLCBtaW5WYWx1ZTogbnVtYmVyIHwgbnVsbCwgbWF4VmFsdWU6IG51bWJlciB8IG51bGwpOiBWYWxpZGF0b3JGbiA9PiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKToge1trZXk6IHN0cmluZ106IGFueX0gfCBudWxsID0+IHtcclxuICAvL9C+0YLQstC10YIg0L3QtSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdGL0LksINC80L7QttC90L4g0L3QtSDQutC+0L3RgtGA0L7Qu9C40YDQvtCy0LDRgtGMXHJcbiAgaWYgKCFyZXF1aXJlZCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvL9C+0YLQstC10YIg0L3QtSDRh9C40YHQu9C+LCDRgtCw0LrQvtCz0L4g0LHRi9GC0Ywg0L3QtSDQvNC+0LbQtdGCLCDRjdGC0L4g0L7RiNC40LHQutCwXHJcbiAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihjb250cm9sLnZhbHVlKSkge1xyXG4gICAgcmV0dXJuIHthZGRpdGlvbmFsQW5zd2VyVHlwZTogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0J3Rg9C20L3QviDQv9GA0L7QstC10YDQuNGC0YwgMiDRgdC40YLRg9Cw0YbQuNC4LlxyXG4gIC8vMSDQkiDQvdCw0YHRgtGA0L7QudC60LDRhSDQstC+0L/RgNC+0YHQsCDRg9C60LDQt9Cw0LvQuCBtaW5WYWx1ZSwg0YLQvtCz0LTQsCDQstCy0LXQtNGR0L3QvdC+0LUg0YfQuNGB0LvQviDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0LHQvtC70YzRiNC1IG1pblZhbHVlLlxyXG4gIC8vMiDQkiDQvdCw0YHRgtGA0L7QudC60LDRhSDQstC+0L/RgNC+0YHQsCDRg9C60LDQt9Cw0LvQuCBtYXhWYWx1ZSwg0YLQvtCz0LTQsCDQstCy0LXQtNGR0L3QvdC+0LUg0YfQuNGB0LvQviDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0LzQtdC90YzRiNC1IG1heFZhbHVlLlxyXG4gIC8v0JXRgdC70Lgg0Y3RgtC4INGD0YHQu9C+0LLQuNGPINC90LUg0LLRi9C/0L7Qu9C90Y/RjtGC0YHRjywg0YLQviDRjdGC0L4g0L7RiNC40LHQutCwLlxyXG4gIGlmICggKE51bWJlci5pc1NhZmVJbnRlZ2VyKG1pblZhbHVlKSAmJiBjb250cm9sLnZhbHVlIDwgbWluVmFsdWUhKSB8fCAoTnVtYmVyLmlzU2FmZUludGVnZXIobWF4VmFsdWUpICYmIGNvbnRyb2wudmFsdWUgPiBtYXhWYWx1ZSEpICkgIHtcclxuICAgIHJldHVybiB7YW5zd2VyT2RBbnN3ZXJFcnJvcjogdHJ1ZX1cclxuICB9XHJcblxyXG4gIC8v0L7RiNC40LHQvtC6INC90LXRgiwg0LLRgdGRINC60L7RgNGA0LXQutGC0L3QvlxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG4iXX0=
@@ -6,10 +6,10 @@ export class QuestionCaptionComponent {
6
6
  this.captionHelp = input();
7
7
  }
8
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: QuestionCaptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.6", type: QuestionCaptionComponent, isStandalone: true, selector: "tp-survey-question-caption", inputs: { caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, captionHelp: { classPropertyName: "captionHelp", publicName: "captionHelp", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"container-main\">\r\n <div [innerHTML]= \"caption()\" class=\"question-caption-font\"></div>\r\n <div [innerHTML]= \"captionHelp()\" class=\"question-caption-helper-font\"></div>\r\n</div>\r\n", styles: [".container-main{display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;gap:1em;width:100%;white-space:pre-wrap;line-height:1;box-sizing:border-box;padding:1em}.question-caption-font{font-size:1.2em;line-height:1.2;width:100%;text-align:center}.question-caption-helper-font{font-size:1.1em;font-style:italic;width:100%;text-align:center}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.6", type: QuestionCaptionComponent, isStandalone: true, selector: "tp-survey-question-caption", inputs: { caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, captionHelp: { classPropertyName: "captionHelp", publicName: "captionHelp", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"container-main\">\r\n <div [innerHTML]= \"caption()\" class=\"question-caption-font survey-object-caption\"></div>\r\n <div [innerHTML]= \"captionHelp()\" class=\"question-caption-helper-font survey-object-caption\"></div>\r\n</div>\r\n", styles: [".container-main{display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;gap:1em;width:100%;white-space:pre-wrap;line-height:1;box-sizing:border-box;padding:1em}.question-caption-font{font-size:1.2em;line-height:1.2;width:100%;text-align:center}.question-caption-helper-font{font-size:1.1em;font-style:italic;width:100%;text-align:center}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
10
  }
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: QuestionCaptionComponent, decorators: [{
12
12
  type: Component,
13
- args: [{ selector: 'tp-survey-question-caption', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"container-main\">\r\n <div [innerHTML]= \"caption()\" class=\"question-caption-font\"></div>\r\n <div [innerHTML]= \"captionHelp()\" class=\"question-caption-helper-font\"></div>\r\n</div>\r\n", styles: [".container-main{display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;gap:1em;width:100%;white-space:pre-wrap;line-height:1;box-sizing:border-box;padding:1em}.question-caption-font{font-size:1.2em;line-height:1.2;width:100%;text-align:center}.question-caption-helper-font{font-size:1.1em;font-style:italic;width:100%;text-align:center}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto}\n"] }]
13
+ args: [{ selector: 'tp-survey-question-caption', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"container-main\">\r\n <div [innerHTML]= \"caption()\" class=\"question-caption-font survey-object-caption\"></div>\r\n <div [innerHTML]= \"captionHelp()\" class=\"question-caption-helper-font survey-object-caption\"></div>\r\n</div>\r\n", styles: [".container-main{display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;gap:1em;width:100%;white-space:pre-wrap;line-height:1;box-sizing:border-box;padding:1em}.question-caption-font{font-size:1.2em;line-height:1.2;width:100%;text-align:center}.question-caption-helper-font{font-size:1.1em;font-style:italic;width:100%;text-align:center}:host-context(.tp-view-desktop) .container-main{max-width:896px;margin:0 auto}\n"] }]
14
14
  }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY2FwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvcXVlc3Rpb24uY2FwdGlvbi9xdWVzdGlvbi5jYXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9xdWVzdGlvbi5jYXB0aW9uL3F1ZXN0aW9uLmNhcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBVXhFLE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRRSxZQUFPLEdBQUcsS0FBSyxFQUFZLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxLQUFLLEVBQVksQ0FBQztLQUNqQzs4R0FIWSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwV0NWckMsK01BSUE7OzJGRE1hLHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LXF1ZXN0aW9uLWNhcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi5jYXB0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi5jYXB0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQ2FwdGlvbkNvbXBvbmVudCB7XHJcbiAgY2FwdGlvbiA9IGlucHV0PFNhZmVIdG1sPigpO1xyXG4gIGNhcHRpb25IZWxwID0gaW5wdXQ8U2FmZUh0bWw+KCk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCI+XHJcbiA8ZGl2IFtpbm5lckhUTUxdPSBcImNhcHRpb24oKVwiIGNsYXNzPVwicXVlc3Rpb24tY2FwdGlvbi1mb250XCI+PC9kaXY+XHJcbiA8ZGl2IFtpbm5lckhUTUxdPSBcImNhcHRpb25IZWxwKClcIiBjbGFzcz1cInF1ZXN0aW9uLWNhcHRpb24taGVscGVyLWZvbnRcIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uY2FwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvcXVlc3Rpb24uY2FwdGlvbi9xdWVzdGlvbi5jYXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9xdWVzdGlvbi5jYXB0aW9uL3F1ZXN0aW9uLmNhcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBVXhFLE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRRSxZQUFPLEdBQUcsS0FBSyxFQUFZLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxLQUFLLEVBQVksQ0FBQztLQUNqQzs4R0FIWSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwV0NWckMsMlBBSUE7OzJGRE1hLHdCQUF3QjtrQkFQcEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LXF1ZXN0aW9uLWNhcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi5jYXB0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi5jYXB0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uQ2FwdGlvbkNvbXBvbmVudCB7XHJcbiAgY2FwdGlvbiA9IGlucHV0PFNhZmVIdG1sPigpO1xyXG4gIGNhcHRpb25IZWxwID0gaW5wdXQ8U2FmZUh0bWw+KCk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCI+XHJcbiA8ZGl2IFtpbm5lckhUTUxdPSBcImNhcHRpb24oKVwiIGNsYXNzPVwicXVlc3Rpb24tY2FwdGlvbi1mb250IHN1cnZleS1vYmplY3QtY2FwdGlvblwiPjwvZGl2PlxyXG4gPGRpdiBbaW5uZXJIVE1MXT0gXCJjYXB0aW9uSGVscCgpXCIgY2xhc3M9XCJxdWVzdGlvbi1jYXB0aW9uLWhlbHBlci1mb250IHN1cnZleS1vYmplY3QtY2FwdGlvblwiPjwvZGl2PlxyXG48L2Rpdj5cclxuIl19