@piserve-tech/form-submission 1.2.19 → 1.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/form-submission/submission-container/submission-container.component.mjs +1 -4
- package/esm2022/form-submission/submit-form/submit-form.component.mjs +6 -7
- package/esm2022/models/publicForm.model.mjs +1 -1
- package/esm2022/services/mapper.service.mjs +3 -2
- package/fesm2022/piserve-tech-form-submission.mjs +7 -10
- package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
- package/form-submission/submission-container/submission-container.component.d.ts +0 -1
- package/form-submission/submit-form/submit-form.component.d.ts +1 -0
- package/models/publicForm.model.d.ts +1 -0
- package/package.json +1 -1
|
@@ -5,9 +5,6 @@ export class SubmissionContainerComponent {
|
|
|
5
5
|
isImageUrl(url) {
|
|
6
6
|
return url.match(/\.(jpeg|jpg|gif|png)$/) != null;
|
|
7
7
|
}
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
console.log('sadas', this.parentQuestionAnswers);
|
|
10
|
-
}
|
|
11
8
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmissionContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
9
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmissionContainerComponent, selector: "lib-submission-container", inputs: { parentQuestionAnswers: "parentQuestionAnswers" }, ngImport: i0, template: "<div class=\"subModule\">\n <div class=\"submission-container\">\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\n <div class=\"key\">{{ qa.question }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\n </ng-container>\n <ng-template #fileLink>\n <p>{{ attachment.fileName }}</p>\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\n <i class=\"bi bi-file-earmark\"></i>\n </a>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #text>\n <ng-container [ngSwitch]=\"qa.elementType\">\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchDefault>{{ qa.values }}</p>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n </div>", styles: [".subModule{width:100%;position:relative;padding-left:3rem;padding-right:3rem;padding-top:4rem}@media (max-width: 1024px){.subModule{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.subModule{padding:2rem .5rem}}.submission-container{background:#fff;display:flex;flex-wrap:wrap;box-shadow:0 4px 4px #00000040;border-radius:6px}.submission-item{flex:1 0 15%;margin:5px;padding:10px;border-radius:4px;display:flex;flex-direction:column}.key{font-weight:700;margin-bottom:5px}.value{word-break:break-word}.image{max-width:100%;height:auto;max-height:100px;margin-top:5px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px}.files{display:flex;flex-direction:row}.fileName{text-decoration:none;margin-left:2%}.fileName i{font-size:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
|
|
13
10
|
}
|
|
@@ -17,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17
14
|
}], propDecorators: { parentQuestionAnswers: [{
|
|
18
15
|
type: Input
|
|
19
16
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWlzc2lvbi1jb250YWluZXIvc3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWlzc2lvbi1jb250YWluZXIvc3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNwRCxDQUFDOytHQUxVLDRCQUE0QjttR0FBNUIsNEJBQTRCLDRIQ1B6QywrMkNBNkJROzs0RkR0QkssNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDBCQUEwQjs4QkFLM0IscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3VibWlzc2lvbi1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWJtaXNzaW9uLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1Ym1pc3Npb25Db250YWluZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBwYXJlbnRRdWVzdGlvbkFuc3dlcnM6YW55O1xuXG4gIGlzSW1hZ2VVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXJsLm1hdGNoKC9cXC4oanBlZ3xqcGd8Z2lmfHBuZykkLykgIT0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInN1Yk1vZHVsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWJtaXNzaW9uLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHFhIG9mIHBhcmVudFF1ZXN0aW9uQW5zd2Vyc1wiIGNsYXNzPVwic3VibWlzc2lvbi1pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcWEucXVlc3Rpb24gfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicWEuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUic7IGVsc2UgdGV4dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlc1wiICpuZ0Zvcj1cImxldCBhdHRhY2htZW50IG9mIHFhLmF0dGFjaG1lbnRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJbWFnZVVybChhdHRhY2htZW50LmZpbGVOYW1lKTsgZWxzZSBmaWxlTGlua1wiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiYXR0YWNobWVudC5maWxlVXJsXCIgYWx0PVwie3sgYXR0YWNobWVudC5maWxlTmFtZSB9fVwiIGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmaWxlTGluaz5cbiAgICAgICAgICAgICAgPHA+e3sgYXR0YWNobWVudC5maWxlTmFtZSB9fTwvcD5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmaWxlTmFtZVwiIFtocmVmXT1cImF0dGFjaG1lbnQuZmlsZVVybFwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrXCI+PC9pPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInFhLmVsZW1lbnRUeXBlXCI+XG4gICAgICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ1JJQ0hfVEVYVF9FRElUT1InXCIgW2lubmVySFRNTF09XCJxYS52YWx1ZXNcIj48L3A+XG4gICAgICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ0RST1BfRE9XTidcIj57eyBxYS52YWx1ZXMuam9pbignLCAnKSB9fTwvcD5cbiAgICAgICAgICAgIDxwICpuZ1N3aXRjaENhc2U9XCInU0VMRUNUSU9OX01BVFJJWCdcIj57eyBxYS52YWx1ZXMuam9pbignLCAnKSB9fTwvcD5cbiAgICAgICAgICAgIDxwICpuZ1N3aXRjaERlZmF1bHQ+e3sgcWEudmFsdWVzIH19PC9wPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiAgPC9kaXY+Il19
|
|
@@ -45,6 +45,7 @@ export class SubmitFormComponent {
|
|
|
45
45
|
this.questionAnswers = { parentId: '', answers: [], forms: [] };
|
|
46
46
|
this.files = [];
|
|
47
47
|
this.submission = {};
|
|
48
|
+
this.parentSubmissionId = '';
|
|
48
49
|
this.updateSubForm = (pages, updatedSubForm) => {
|
|
49
50
|
pages.forEach((page) => {
|
|
50
51
|
page.rows.forEach((row) => {
|
|
@@ -73,6 +74,7 @@ export class SubmitFormComponent {
|
|
|
73
74
|
};
|
|
74
75
|
const navigation = this.router.getCurrentNavigation();
|
|
75
76
|
this.submission = navigation?.extras.state?.['submission'];
|
|
77
|
+
this.parentSubmissionId = this.submission?.id;
|
|
76
78
|
this.parentQuestionAnswers = this.submission?.questionAnswers;
|
|
77
79
|
this.parentQuestions = navigation?.extras.state?.['parentQuestions'];
|
|
78
80
|
this.dataService.setParentQuestions(this.parentQuestions);
|
|
@@ -102,9 +104,8 @@ export class SubmitFormComponent {
|
|
|
102
104
|
assignQuestionProperties(question) {
|
|
103
105
|
this.name = question.name;
|
|
104
106
|
this.pages = question.pages;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
107
|
+
this.parentQuestionAnswers = question?.questionAnswers;
|
|
108
|
+
this.parentSubmissionId = question?.parentId;
|
|
108
109
|
this.currentPage = this.pages[0];
|
|
109
110
|
this.nextPage = this.pages[1];
|
|
110
111
|
this.saveAutomatically = question.formConfiguration.saveAutomatically;
|
|
@@ -306,9 +307,7 @@ export class SubmitFormComponent {
|
|
|
306
307
|
this.generateQuestionAnswers();
|
|
307
308
|
if (validationResponse.isValid) {
|
|
308
309
|
const formData = new FormData();
|
|
309
|
-
|
|
310
|
-
this.questionAnswers.parentId = this.submission.id;
|
|
311
|
-
}
|
|
310
|
+
this.questionAnswers.parentId = this.parentSubmissionId;
|
|
312
311
|
formData.append('json', JSON.stringify(this.questionAnswers));
|
|
313
312
|
if (this.files.length > 0) {
|
|
314
313
|
this.files.forEach((fileItem) => {
|
|
@@ -497,4 +496,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
497
496
|
}], submit: [{
|
|
498
497
|
type: Output
|
|
499
498
|
}] } });
|
|
500
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssTUFBTSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQW1DeEQsTUFBTSxPQUFPLG1CQUFtQjtJQWtDOUIsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjLEVBQ2QsV0FBd0I7UUFIeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFyQ2xDLGFBQVEsR0FBc0IsSUFBSSxDQUFDO1FBQzFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFcEUsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVcsQ0FBQyxDQUFD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b250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIG1hcHBlciBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXBwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQdWJsaWNGb3JtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3B1YmxpY0Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIEFuc3dlciB7XG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcbiAgYW5zd2VyOiBhbnk7XG4gIGFuc3dlcklkPzogc3RyaW5nO1xuICBkZWxldGVGaWxlcz86IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgU3VibWlzc2lvbiB7XG4gIHN1Ym1pc3Npb25JZDogc3RyaW5nO1xuICBhbnN3ZXJzOiBBbnN3ZXJbXTtcbn1cblxuaW50ZXJmYWNlIEZvcm0ge1xuICBmb3JtSWQ6IHN0cmluZztcbiAgZGVsZXRlZFN1Ym1pc3Npb25zOiBhbnlbXTtcbiAgc3VibWlzc2lvbnM6IFN1Ym1pc3Npb25bXTtcbn1cblxuaW50ZXJmYWNlIFF1ZXN0aW9uQW5zd2Vyc1dyYXBwZXIge1xuICBwYXJlbnRJZDpzdHJpbmc7XG4gIGFuc3dlcnM6IEFuc3dlcltdO1xuICBmb3JtczogRm9ybVtdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3VibWl0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VibWl0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWJtaXQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdWJtaXRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcXVlc3Rpb246IFB1YmxpY0Zvcm0gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbW9kdWxlTmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3VibWlzc2lvbklkOiBzdHJpbmcgPSAnJztcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBuYW1lOiBzdHJpbmcgPSAnJztcbiAgc2F2ZUF1dG9tYXRpY2FsbHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2F2ZUludGVydmFsOiBudW1iZXIgPSAwO1xuICBjdXN0b21pemVGb250OiBib29sZWFuID0gZmFsc2U7XG4gIGZvbnRGYW1pbHk6IHN0cmluZyA9ICcnO1xuICBmb250U2l6ZTogbnVtYmVyID0gMDtcbiAgZW5hYmxlRGF0YUV4cG9ydDogYm9vbGVhbiA9IGZhbHNlO1xuICBmaWxlRm9ybWF0czogc3RyaW5nW10gPSBbXTtcbiAgZW5hYmxlUXVlc3Rpb25OdW1iZXJpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcXVlc3Rpb25OdW1iZXJpbmc6IHN0cmluZyA9ICcnO1xuICBlbmFibGVHb29nbGVSZWNhcHRjaGE6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZ29vZ2xlUmVjYXB0Y2hhS2V5OiBzdHJpbmcgPSAnJztcbiAgZ29vZ2xlUmVjYXB0Y2hhU2VjcmV0OiBzdHJpbmcgPSAnJztcbiAgbmF2aWdhdGlvbjogc3RyaW5nID0gJyc7XG4gIG1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHBhZ2VzOiBhbnkgPSBbXTtcbiAgY3VycmVudFBhZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgcHJldmlvdXNQYWdlOiBhbnkgPSB7fTtcbiAgY3VycmVudFBhZ2U6IGFueSA9IHt9O1xuICBuZXh0UGFnZTogYW55ID0ge307XG4gIGxhc3RUYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcXVlc3Rpb25BbnN3ZXJzOiBRdWVzdGlvbkFuc3dlcnNXcmFwcGVyID0geyBwYXJlbnRJZDonJyxhbnN3ZXJzOiBbXSwgZm9ybXM6IFtdIH07XG4gIGZpbGVzOiB7IHF1ZXN0aW9uSWQ6IHN0cmluZzsgZmlsZTogYW55IH1bXSA9IFtdO1xuICBwYXJlbnRRdWVzdGlvbnM6YW55O1xuICBzdWJtaXNzaW9uOmFueT17fTtcbiAgcGFyZW50UXVlc3Rpb25BbnN3ZXJzOmFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IG5hdmlnYXRpb24gPSB0aGlzLnJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpO1xuICAgIHRoaXMuc3VibWlzc2lvbj0gbmF2aWdhdGlvbj8uZXh0cmFzLnN0YXRlPy5bJ3N1Ym1pc3Npb24nXSBcbiAgICB0aGlzLnBhcmVudFF1ZXN0aW9uQW5zd2Vycz10aGlzLnN1Ym1pc3Npb24/LnF1ZXN0aW9uQW5zd2Vyc1xuICAgIHRoaXMucGFyZW50UXVlc3Rpb25zPW5hdmlnYXRpb24/LmV4dHJhcy5zdGF0ZT8uWydwYXJlbnRRdWVzdGlvbnMnXTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnNldFBhcmVudFF1ZXN0aW9ucyh0aGlzLnBhcmVudFF1ZXN0aW9ucyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5lZGl0ICYmIHRoaXMuc3VibWlzc2lvbklkKSB7XG4gICAgICB0aGlzLmdldFN1Ym1pdHRlZEZvcm1EYXRhKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0Rm9ybURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBcblxuICBnZXRGb3JtRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlLmdldFF1ZXN0aW9ucyh0aGlzLm1vZHVsZU5hbWUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMucXVlc3Rpb24gPSBtYXBwZXIubWFwUHVibGljRm9ybVRvTW9kZWwocmVzcG9uc2UpO1xuICAgICAgdGhpcy5hc3NpZ25RdWVzdGlvblByb3BlcnRpZXModGhpcy5xdWVzdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTdWJtaXR0ZWRGb3JtRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1TZXJ2aWNlXG4gICAgICAuZ2V0U3VibWl0dGVkRm9ybSh0aGlzLm1vZHVsZU5hbWUsIHRoaXMuc3VibWlzc2lvbklkKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5xdWVzdGlvbiA9IG1hcHBlci5tYXBQdWJsaWNGb3JtVG9Nb2RlbChyZXNwb25zZSk7XG4gICAgICAgIHRoaXMuYXNzaWduUXVlc3Rpb25Qcm9wZXJ0aWVzKHRoaXMucXVlc3Rpb24pO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3NpZ25RdWVzdGlvblByb3BlcnRpZXMocXVlc3Rpb246IFB1YmxpY0Zvcm0pIHtcbiAgICB0aGlzLm5hbWUgPSBxdWVzdGlvbi5uYW1lO1xuICAgIHRoaXMucGFnZXMgPSBxdWVzdGlvbi5wYWdlcztcbiAgICBpZih0aGlzLnBhcmVudFF1ZXN0aW9ucyl7XG4gICAgdGhpcy5wYXJlbnRRdWVzdGlvbkFuc3dlcnM9cXVlc3Rpb24/LnF1ZXN0aW9uQW5zd2VycztcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbMF07XG4gICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbMV07XG4gICAgdGhpcy5zYXZlQXV0b21hdGljYWxseSA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLnNhdmVBdXRvbWF0aWNhbGx5O1xuICAgIHRoaXMuc2F2ZUludGVydmFsID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uc2F2ZUludGVydmFsO1xuICAgIHRoaXMuY3VzdG9taXplRm9udCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmN1c3RvbWl6ZUZvbnQ7XG4gICAgdGhpcy5mb250RmFtaWx5ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZm9udEZhbWlseTtcbiAgICB0aGlzLmZvbnRTaXplID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZm9udFNpemU7XG4gICAgdGhpcy5lbmFibGVEYXRhRXhwb3J0ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlRGF0YUV4cG9ydDtcbiAgICB0aGlzLmZpbGVGb3JtYXRzID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZmlsZUZvcm1hdHM7XG4gICAgdGhpcy5lbmFibGVRdWVzdGlvbk51bWJlcmluZyA9XG4gICAgICBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5lbmFibGVRdWVzdGlvbk51bWJlcmluZztcbiAgICB0aGlzLnF1ZXN0aW9uTnVtYmVyaW5nID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ucXVlc3Rpb25OdW1iZXJpbmc7XG4gICAgdGhpcy5lbmFibGVHb29nbGVSZWNhcHRjaGEgPVxuICAgICAgcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlR29vZ2xlUmVjYXB0Y2hhO1xuICAgIHRoaXMuZ29vZ2xlUmVjYXB0Y2hhS2V5ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZ29vZ2xlUmVjYXB0Y2hhS2V5O1xuICAgIHRoaXMuZ29vZ2xlUmVjYXB0Y2hhU2VjcmV0ID1cbiAgICAgIHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmdvb2dsZVJlY2FwdGNoYVNlY3JldDtcbiAgICB0aGlzLm5hdmlnYXRpb24gPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5uYXZpZ2F0aW9uO1xuICAgIHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQgPVxuICAgICAgcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQ7XG4gIH1cblxuICBuYXZpZ2F0ZVRvTmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VJbmRleCA8IHRoaXMucGFnZXMubGVuZ3RoIC0gMSkge1xuICAgICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3BvbnNlLmlzVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4Kys7XG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcbiAgICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggKyAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci53YXJuaW5nKHZhbGlkYXRpb25SZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXgrKztcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcbiAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4ICsgMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGVUb1ByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUluZGV4ID4gMCkge1xuICAgICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3BvbnNlLmlzVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXgtLTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggLSAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci53YXJuaW5nKHZhbGlkYXRpb25SZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleC0tO1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4IC0gMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0Q3VycmVudFBhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkKSB7XG4gICAgICBjb25zdCBjdXJyZW50UGFnZURhdGEgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPVxuICAgICAgICB0aGlzLnZhbGlkYXRlUmVxdWlyZWRRdWVzdGlvbnMoY3VycmVudFBhZ2VEYXRhKTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXggPSBpbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcodmFsaWRhdGlvblJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXggPSBpbmRleDtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZVF1ZXN0aW9uQW5zd2VycygpIHtcbiAgICB0aGlzLmZpbGVzID0gW107XG5cbiAgICBjb25zdCBleHRyYWN0UXVlc3Rpb25zID0gKFxuICAgICAgZm9ybUVsZW1lbnRzOiBhbnlbXSxcbiAgICAgIHBhcmVudEZvcm1JZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgICBpc0luU3ViRm9ybTogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgc3ViRm9ybUluZGV4OiBudW1iZXIgPSAwXG4gICAgKTogeyBhbnN3ZXJzOiBBbnN3ZXJbXTsgZm9ybXM6IEZvcm1bXSB9ID0+IHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uczogQW5zd2VyW10gPSBbXTtcbiAgICAgIGNvbnN0IGZvcm1zOiBGb3JtW10gPSBbXTtcblxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGxldCBiYXNlUXVlc3Rpb246IGFueTtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInKSB7XG4gICAgICAgICAgICBiYXNlUXVlc3Rpb24gPSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgYW5zd2VyOiAnJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbGVtZW50LmVsZW1lbnQuYW5zd2VyKSkge1xuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbklkID0gaXNJblN1YkZvcm1cbiAgICAgICAgICAgICAgICA/IGAke3BhcmVudEZvcm1JZH1fJHtzdWJGb3JtSW5kZXh9XyR7ZWxlbWVudC5lbGVtZW50LmlkfWBcbiAgICAgICAgICAgICAgICA6IGVsZW1lbnQuZWxlbWVudC5pZDtcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgICAgICAgICAgIGZpbGU6IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlUXVlc3Rpb24gPSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGVtZW50LmVsZW1lbnQuYW5zd2VyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZWRpdCkge1xuICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAuLi5iYXNlUXVlc3Rpb24sXG4gICAgICAgICAgICAgIGFuc3dlcklkOiBlbGVtZW50LmVsZW1lbnQuYW5zd2VySWQgfHwgJycsXG4gICAgICAgICAgICAgIGRlbGV0ZUZpbGVzOiBlbGVtZW50LmVsZW1lbnQuZGVsZXRlRmlsZXMgfHwgW10sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goYmFzZVF1ZXN0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBsb2dpYyBvZiBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4dHJhY3RRdWVzdGlvbnMoXG4gICAgICAgICAgICAgICAgICBsb2dpYy5mb3JtRWxlbWVudHMsXG4gICAgICAgICAgICAgICAgICBwYXJlbnRGb3JtSWQsXG4gICAgICAgICAgICAgICAgICBpc0luU3ViRm9ybSxcbiAgICAgICAgICAgICAgICAgIHN1YkZvcm1JbmRleFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goLi4ucmVzdWx0LmFuc3dlcnMpO1xuICAgICAgICAgICAgICAgIGZvcm1zLnB1c2goLi4ucmVzdWx0LmZvcm1zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJykge1xuICAgICAgICAgIGNvbnN0IHN1YmZvcm1JZCA9IGVsZW1lbnQuZWxlbWVudC5pZDtcbiAgICAgICAgICBjb25zdCBzdWJtaXNzaW9uSWQgPSBlbGVtZW50LmVsZW1lbnQuc3VibWlzc2lvbklkO1xuXG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5zdWJGb3JtU3RydWN0dXJlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgY29uc3Qgc3ViZm9ybVF1ZXN0aW9ucyA9IGV4dHJhY3RRdWVzdGlvbnMoXG4gICAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMsXG4gICAgICAgICAgICAgIHN1YmZvcm1JZCxcbiAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgZm9ybXMubGVuZ3RoXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3Qgc3ViZm9ybTogRm9ybSA9IHtcbiAgICAgICAgICAgICAgZm9ybUlkOiBzdWJmb3JtSWQsXG4gICAgICAgICAgICAgIGRlbGV0ZWRTdWJtaXNzaW9uczogW10sXG4gICAgICAgICAgICAgIHN1Ym1pc3Npb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc3VibWlzc2lvbklkOiBzdWJtaXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgICBhbnN3ZXJzOiBzdWJmb3JtUXVlc3Rpb25zLmFuc3dlcnMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3Jtcy5wdXNoKHN1YmZvcm0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbGVtZW50LnN1YkZvcm1TdHJ1Y3R1cmUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YmZvcm1BbnN3ZXJzOiBBbnN3ZXJbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3Qgc3ViZm9ybVF1ZXN0aW9ucyA9IGV4dHJhY3RRdWVzdGlvbnMoXG4gICAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMsXG4gICAgICAgICAgICAgIHN1YmZvcm1JZCxcbiAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgZm9ybXMubGVuZ3RoXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdTdWJmb3JtID0gZm9ybXMuZmluZChcbiAgICAgICAgICAgICAgKGZvcm0pID0+IGZvcm0uZm9ybUlkID09PSBzdWJmb3JtSWRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5zdWJtaXNzaW9ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAoc3VibWlzc2lvbjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgc3VibWlzc2lvbi5hbnN3ZXJzLmZvckVhY2goKGFuc3dlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbnN3ZXIuZmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uSWQgPSBgJHtzdWJmb3JtSWR9XyR7aW5kZXh9XyR7YW5zd2VyLnF1ZXN0aW9uSWR9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGFuc3dlci5maWxlcyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBhbnN3ZXIuZmlsZXM7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBkZWxldGUgYW5zd2VyLmF0dGFjaG1lbnRzO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBzdWJmb3JtOiBGb3JtID0ge1xuICAgICAgICAgICAgICBmb3JtSWQ6IHN1YmZvcm1JZCxcbiAgICAgICAgICAgICAgZGVsZXRlZFN1Ym1pc3Npb25zOiBlbGVtZW50LmVsZW1lbnQuZGVsZXRlZFN1Ym1pc3Npb25zLFxuICAgICAgICAgICAgICBzdWJtaXNzaW9uczogZWxlbWVudC5lbGVtZW50LnN1Ym1pc3Npb25zLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvcm1zLnB1c2goc3ViZm9ybSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IGFuc3dlcnM6IHF1ZXN0aW9ucywgZm9ybXM6IGZvcm1zIH07XG4gICAgfTtcblxuICAgIGNvbnN0IHByb2Nlc3NQYWdlcyA9IChcbiAgICAgIHBhZ2VzOiBhbnlbXVxuICAgICk6IHsgYW5zd2VyczogQW5zd2VyW107IGZvcm1zOiBGb3JtW10gfSA9PiB7XG4gICAgICBjb25zdCBxdWVzdGlvbnM6IEFuc3dlcltdID0gW107XG4gICAgICBjb25zdCBmb3JtczogRm9ybVtdID0gW107XG5cbiAgICAgIHBhZ2VzLmZvckVhY2goKHBhZ2UpID0+IHtcbiAgICAgICAgcGFnZS5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0cmFjdFF1ZXN0aW9ucyhyb3cuZ3JpZCk7XG4gICAgICAgICAgcXVlc3Rpb25zLnB1c2goLi4ucmVzdWx0LmFuc3dlcnMpO1xuICAgICAgICAgIGZvcm1zLnB1c2goLi4ucmVzdWx0LmZvcm1zKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHsgYW5zd2VyczogcXVlc3Rpb25zLCBmb3JtczogZm9ybXMgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gcHJvY2Vzc1BhZ2VzKHRoaXMucGFnZXMpO1xuXG4gICAgdGhpcy5xdWVzdGlvbkFuc3dlcnMgPSB7XG4gICAgICBwYXJlbnRJZDonJyxcbiAgICAgIGFuc3dlcnM6IHJlc3VsdC5hbnN3ZXJzLFxuICAgICAgZm9ybXM6IHJlc3VsdC5mb3JtcyxcbiAgICB9O1xuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICBjb25zb2xlLmxvZygncGFnZXMnLHRoaXMucGFnZXMpO1xuICAgIFxuICAgIGxldCB2YWxpZGF0aW9uUmVzcG9uc2UgPSB0aGlzLnZhbGlkYXRlRm9ybSh0aGlzLnBhZ2VzKTtcbiAgICB0aGlzLmdlbmVyYXRlUXVlc3Rpb25BbnN3ZXJzKCk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXNwb25zZS5pc1ZhbGlkKSB7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgaWYodGhpcy5zdWJtaXNzaW9uKXsgICAgXG4gICAgICAgIHRoaXMucXVlc3Rpb25BbnN3ZXJzLnBhcmVudElkPXRoaXMuc3VibWlzc2lvbi5pZDtcbiAgICAgIH1cbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnanNvbicsIEpTT04uc3RyaW5naWZ5KHRoaXMucXVlc3Rpb25BbnN3ZXJzKSk7XG4gICAgICBpZiAodGhpcy5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZmlsZXMuZm9yRWFjaCgoZmlsZUl0ZW0pID0+IHtcbiAgICAgICAgICBmaWxlSXRlbS5maWxlLmZvckVhY2goKGZpbGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpbGVJdGVtLnF1ZXN0aW9uSWQsIGZpbGUuX2ZpbGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmVkaXQgJiYgdGhpcy5zdWJtaXNzaW9uSWQpIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZVxuICAgICAgICAgIC51cGRhdGVGb3JtKHRoaXMubW9kdWxlTmFtZSwgdGhpcy5zdWJtaXNzaW9uSWQsIGZvcm1EYXRhKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRm9ybSB1cGRhdGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdG8gdXBkYXRlIGZvcm0nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5zdWJtaXRGb3JtKHRoaXMubW9kdWxlTmFtZSwgZm9ybURhdGEpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0Zvcm0gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCgnc3VjY2VzcycpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHRvIHN1Ym1pdCBmb3JtJyk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcih2YWxpZGF0aW9uUmVzcG9uc2UubWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVGb3JtKGpzb25EYXRhOiBhbnkpOiB7XG4gICAgaXNWYWxpZDogYm9vbGVhbjtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgcGFnZUluZGV4OiBudW1iZXIgfCAwO1xuICB9IHtcbiAgICBjb25zdCB2YWxpZGF0ZVF1ZXN0aW9ucyA9IChcbiAgICAgIGZvcm1FbGVtZW50czogYW55W11cbiAgICApOiB7IGlzVmFsaWQ6IGJvb2xlYW47IG1lc3NhZ2U6IHN0cmluZzsgcGFnZUluZGV4OiBudW1iZXIgfCAwIH0gPT4ge1xuICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBmb3JtRWxlbWVudHMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkID0gZWxlbWVudC5lbGVtZW50LnJlcXVpcmVkO1xuICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XG4gICAgICAgICAgY29uc3QgdmFsaWRhdGlvbiA9IGVsZW1lbnQuZWxlbWVudC52YWxpZGF0aW9uO1xuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBlbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHM7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCghYW5zd2VyIHx8IGFuc3dlci5sZW5ndGggPT09IDApICYmIGF0dGFjaG1lbnQubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRm9ybSBpcyBpbnZhbGlkIC0gUmVxdWlyZWQgZmlsZSBxdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaGFzIG5vIGZpbGVzIHVwbG9hZGVkLmAsXG4gICAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIgfHwgT2JqZWN0LmtleXMoYW5zd2VyKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRm9ybSBpcyBpbnZhbGlkIC0gUXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGlzIHJlcXVpcmVkIGJ1dCBubyBhbnN3ZXIgcHJvdmlkZWQuYCxcbiAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyByZXF1aXJlZCBidXQgdmFsaWRhdGlvbiBpcyBmYWxzZS5gLFxuICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJlcXVpcmVkICYmIGFuc3dlciAmJiBPYmplY3Qua2V5cyhhbnN3ZXIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyBub3QgcmVxdWlyZWQgYnV0IGFuc3dlciBwcm92aWRlZCB3aXRoIHZhbGlkYXRpb24gZmFsc2UuYCxcbiAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGxvZ2ljIG9mIGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xuICAgICAgICAgICAgICBpZiAobG9naWMuc2hvd0xvZ2ljKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVzdGlvbnMobG9naWMuZm9ybUVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1NVQkZPUk0nKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIG1lc3NhZ2U6ICcnLCBwYWdlSW5kZXg6IDAgfTtcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgcGFnZUluZGV4ID0gMDsgcGFnZUluZGV4IDwganNvbkRhdGEubGVuZ3RoOyBwYWdlSW5kZXgrKykge1xuICAgICAgY29uc3QgcGFnZSA9IGpzb25EYXRhW3BhZ2VJbmRleF07XG4gICAgICBmb3IgKGxldCByb3cgb2YgcGFnZS5yb3dzKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKHJvdy5ncmlkKTtcbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBQYWdlICR7cGFnZUluZGV4ICsgMX06ICR7cmVzdWx0Lm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIHBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICBtZXNzYWdlOiAnRm9ybSBpcyB2YWxpZC4nLFxuICAgICAgcGFnZUluZGV4OiAwLFxuICAgIH07XG4gIH1cblxuICB2YWxpZGF0ZVJlcXVpcmVkUXVlc3Rpb25zKHBhZ2U6IGFueSk6IHsgaXNWYWxpZDogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHZhbGlkYXRlUXVlc3Rpb25zID0gKFxuICAgICAgZm9ybUVsZW1lbnRzOiBhbnlbXVxuICAgICk6IHsgaXNWYWxpZDogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nIH0gPT4ge1xuICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBmb3JtRWxlbWVudHMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkID0gZWxlbWVudC5lbGVtZW50LnJlcXVpcmVkO1xuICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJykge1xuICAgICAgICAgICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIGlmICghYW5zd2VyIHx8IGFuc3dlci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgUmVxdWlyZWQgZmlsZSBxdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaXMgbm90IGFuc3dlcmVkLmAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIgfHwgT2JqZWN0LmtleXMoYW5zd2VyKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgUmVxdWlyZWQgcXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGlzIG5vdCBhbnN3ZXJlZC5gLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xuICAgICAgICAgICAgZm9yIChsZXQgbG9naWMgb2YgZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICAgIGlmIChsb2dpYy5zaG93TG9naWMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhsb2dpYy5mb3JtRWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScpIHtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVzdGlvbnMoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50cyk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSwgbWVzc2FnZTogJ0FsbCByZXF1aXJlZCBxdWVzdGlvbnMgYXJlIGFuc3dlcmVkLicgfTtcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgcm93IG9mIHBhZ2Uucm93cykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVzdGlvbnMocm93LmdyaWQpO1xuICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBtZXNzYWdlOiAnQWxsIHJlcXVpcmVkIHF1ZXN0aW9ucyBhcmUgYW5zd2VyZWQuJyB9O1xuICB9XG5cbiAgdXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucyhldmVudDogYW55KSB7XG4gICAgdGhpcy51cGRhdGVTdWJGb3JtKHRoaXMucGFnZXMsIGV2ZW50KTtcbiAgfVxuXG4gIHVwZGF0ZVN1YkZvcm0gPSAocGFnZXM6IGFueVtdLCB1cGRhdGVkU3ViRm9ybTogYW55KSA9PiB7XG4gICAgcGFnZXMuZm9yRWFjaCgocGFnZSkgPT4ge1xuICAgICAgcGFnZS5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XG4gICAgICAgIHJvdy5ncmlkLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1NVQkZPUk0nICYmXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQuaWQgPT09IHVwZGF0ZWRTdWJGb3JtLmZvcm1JZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBleGlzdGluZyBzdWJmb3JtIHdpdGggdGhlIG5ldyBkYXRhXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQgPSB1cGRhdGVkU3ViRm9ybTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScgJiZcbiAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5pZCAhPT0gdXBkYXRlZFN1YkZvcm0uZm9ybUlkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgbXVsdGlwbGUgc3ViZm9ybXMgbG9naWMgaGVyZSBpZiBuZWVkZWRcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nICYmXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3NcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IHVwZGF0ZSBjaGlsZCBsb2dpY3NcbiAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChsb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChsb2dpYy5zaG93TG9naWMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN1YkZvcm0obG9naWMuZm9ybUVsZW1lbnRzLCB1cGRhdGVkU3ViRm9ybSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJvdXRlci1jb250YWluZXJcIj5cbiAgXG4gIFxuICA8ZGl2IGNsYXNzPVwiaGVhZCBjb250YWluZXJcIj5cbiAgICA8bGliLWhlYWRlciBbbmFtZV09XCJuYW1lXCI+PC9saWItaGVhZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvZHkgY29udGFpbmVyXCI+XG4gICAgXG4gICAgPGxpYi1zdWJtaXNzaW9uLWNvbnRhaW5lciBbcGFyZW50UXVlc3Rpb25BbnN3ZXJzXT1cInBhcmVudFF1ZXN0aW9uQW5zd2Vyc1wiXG4gICAgKm5nSWY9XCJwYXJlbnRRdWVzdGlvbkFuc3dlcnNcIj48L2xpYi1zdWJtaXNzaW9uLWNvbnRhaW5lcj5cbiAgICBcbiAgICA8bGliLW5hdmlnYXRpb24tdGFic1xuICAgICAgKm5nSWY9XCJuYXZpZ2F0aW9uID09ICdUQUInXCJcbiAgICAgIFtwYWdlc109XCJwYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VJbmRleF09XCJjdXJyZW50UGFnZUluZGV4XCJcbiAgICAgIChwYWdlQ2hhbmdlZCk9XCJzZXRDdXJyZW50UGFnZSgkZXZlbnQpXCJcbiAgICAgIChzdWJtaXRFbWl0KT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICBbZWRpdF09XCJlZGl0XCJcbiAgICAgIChzdWJGb3JtQ2hhbmdlKT1cInVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoJGV2ZW50KVwiXG4gICAgPjwvbGliLW5hdmlnYXRpb24tdGFicz5cbiAgICA8bGliLW5leHQtcHJldi1uYXZpZ2F0aW9uXG4gICAgICAqbmdJZj1cIm5hdmlnYXRpb24gPT0gJ05FWFRfQU5EX1BSRVZJT1VTX0JVVFRPTidcIlxuICAgICAgW2N1cnJlbnRQYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VJbmRleFwiXG4gICAgICBbcGFnZXNdPVwicGFnZXNcIlxuICAgICAgW3ByZXZpb3VzUGFnZV09XCJwcmV2aW91c1BhZ2VcIlxuICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgIFtuZXh0UGFnZV09XCJuZXh0UGFnZVwiXG4gICAgICAobmF2aWdhdGVOZXh0KT1cIm5hdmlnYXRlVG9OZXh0UGFnZSgpXCJcbiAgICAgIChuYXZpZ2F0ZVByZXZpb3VzKT1cIm5hdmlnYXRlVG9QcmV2aW91c1BhZ2UoKVwiXG4gICAgICAoc3VibWl0RW1pdCk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgW2VkaXRdPVwiZWRpdFwiXG4gICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxuICAgID48L2xpYi1uZXh0LXByZXYtbmF2aWdhdGlvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
499
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWl0LWZvcm0vc3VibWl0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssTUFBTSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7OztBQW1DeEQsTUFBTSxPQUFPLG1CQUFtQjtJQW1DOUIsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjLEVBQ2QsV0FBd0I7UUFIeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF0Q2xDLGFBQVEsR0FBc0IsSUFBSSxDQUFDO1FBQzFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFcEUsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVcsQ0FBQyxDQUFD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QUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgbWFwcGVyIGZyb20gJy4uLy4uL3NlcnZpY2VzL21hcHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFB1YmxpY0Zvcm0gfSBmcm9tICcuLi8uLi9tb2RlbHMvcHVibGljRm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQW5zd2VyIHtcbiAgcXVlc3Rpb25JZDogc3RyaW5nO1xuICBhbnN3ZXI6IGFueTtcbiAgYW5zd2VySWQ/OiBzdHJpbmc7XG4gIGRlbGV0ZUZpbGVzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBTdWJtaXNzaW9uIHtcbiAgc3VibWlzc2lvbklkOiBzdHJpbmc7XG4gIGFuc3dlcnM6IEFuc3dlcltdO1xufVxuXG5pbnRlcmZhY2UgRm9ybSB7XG4gIGZvcm1JZDogc3RyaW5nO1xuICBkZWxldGVkU3VibWlzc2lvbnM6IGFueVtdO1xuICBzdWJtaXNzaW9uczogU3VibWlzc2lvbltdO1xufVxuXG5pbnRlcmZhY2UgUXVlc3Rpb25BbnN3ZXJzV3JhcHBlciB7XG4gIHBhcmVudElkOnN0cmluZztcbiAgYW5zd2VyczogQW5zd2VyW107XG4gIGZvcm1zOiBGb3JtW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdWJtaXQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJtaXQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1Ym1pdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN1Ym1pdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBxdWVzdGlvbjogUHVibGljRm9ybSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBtb2R1bGVOYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSWQ6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIG5hbWU6IHN0cmluZyA9ICcnO1xuICBzYXZlQXV0b21hdGljYWxseTogYm9vbGVhbiA9IGZhbHNlO1xuICBzYXZlSW50ZXJ2YWw6IG51bWJlciA9IDA7XG4gIGN1c3RvbWl6ZUZvbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9udEZhbWlseTogc3RyaW5nID0gJyc7XG4gIGZvbnRTaXplOiBudW1iZXIgPSAwO1xuICBlbmFibGVEYXRhRXhwb3J0OiBib29sZWFuID0gZmFsc2U7XG4gIGZpbGVGb3JtYXRzOiBzdHJpbmdbXSA9IFtdO1xuICBlbmFibGVRdWVzdGlvbk51bWJlcmluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBxdWVzdGlvbk51bWJlcmluZzogc3RyaW5nID0gJyc7XG4gIGVuYWJsZUdvb2dsZVJlY2FwdGNoYTogYm9vbGVhbiA9IGZhbHNlO1xuICBnb29nbGVSZWNhcHRjaGFLZXk6IHN0cmluZyA9ICcnO1xuICBnb29nbGVSZWNhcHRjaGFTZWNyZXQ6IHN0cmluZyA9ICcnO1xuICBuYXZpZ2F0aW9uOiBzdHJpbmcgPSAnJztcbiAgbWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGFnZXM6IGFueSA9IFtdO1xuICBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSAwO1xuICBwcmV2aW91c1BhZ2U6IGFueSA9IHt9O1xuICBjdXJyZW50UGFnZTogYW55ID0ge307XG4gIG5leHRQYWdlOiBhbnkgPSB7fTtcbiAgbGFzdFRhYjogYm9vbGVhbiA9IGZhbHNlO1xuICBxdWVzdGlvbkFuc3dlcnM6IFF1ZXN0aW9uQW5zd2Vyc1dyYXBwZXIgPSB7IHBhcmVudElkOicnLGFuc3dlcnM6IFtdLCBmb3JtczogW10gfTtcbiAgZmlsZXM6IHsgcXVlc3Rpb25JZDogc3RyaW5nOyBmaWxlOiBhbnkgfVtdID0gW107XG4gIHBhcmVudFF1ZXN0aW9uczphbnk7XG4gIHN1Ym1pc3Npb246YW55PXt9O1xuICBwYXJlbnRRdWVzdGlvbkFuc3dlcnM6YW55O1xuICBwYXJlbnRTdWJtaXNzaW9uSWQ6c3RyaW5nPScnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgbmF2aWdhdGlvbiA9IHRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG4gICAgdGhpcy5zdWJtaXNzaW9uPSBuYXZpZ2F0aW9uPy5leHRyYXMuc3RhdGU/Llsnc3VibWlzc2lvbiddIFxuICAgIHRoaXMucGFyZW50U3VibWlzc2lvbklkPXRoaXMuc3VibWlzc2lvbj8uaWQ7XG4gICAgdGhpcy5wYXJlbnRRdWVzdGlvbkFuc3dlcnM9dGhpcy5zdWJtaXNzaW9uPy5xdWVzdGlvbkFuc3dlcnNcbiAgICB0aGlzLnBhcmVudFF1ZXN0aW9ucz1uYXZpZ2F0aW9uPy5leHRyYXMuc3RhdGU/LlsncGFyZW50UXVlc3Rpb25zJ107XG4gICAgdGhpcy5kYXRhU2VydmljZS5zZXRQYXJlbnRRdWVzdGlvbnModGhpcy5wYXJlbnRRdWVzdGlvbnMpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZWRpdCAmJiB0aGlzLnN1Ym1pc3Npb25JZCkge1xuICAgICAgdGhpcy5nZXRTdWJtaXR0ZWRGb3JtRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldEZvcm1EYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgXG5cbiAgZ2V0Rm9ybURhdGEoKSB7XG4gICAgdGhpcy5mb3JtU2VydmljZS5nZXRRdWVzdGlvbnModGhpcy5tb2R1bGVOYW1lKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLnF1ZXN0aW9uID0gbWFwcGVyLm1hcFB1YmxpY0Zvcm1Ub01vZGVsKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMuYXNzaWduUXVlc3Rpb25Qcm9wZXJ0aWVzKHRoaXMucXVlc3Rpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U3VibWl0dGVkRm9ybURhdGEoKSB7XG4gICAgdGhpcy5mb3JtU2VydmljZVxuICAgICAgLmdldFN1Ym1pdHRlZEZvcm0odGhpcy5tb2R1bGVOYW1lLCB0aGlzLnN1Ym1pc3Npb25JZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMucXVlc3Rpb24gPSBtYXBwZXIubWFwUHVibGljRm9ybVRvTW9kZWwocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmFzc2lnblF1ZXN0aW9uUHJvcGVydGllcyh0aGlzLnF1ZXN0aW9uKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXNzaWduUXVlc3Rpb25Qcm9wZXJ0aWVzKHF1ZXN0aW9uOiBQdWJsaWNGb3JtKSB7XG4gICAgdGhpcy5uYW1lID0gcXVlc3Rpb24ubmFtZTtcbiAgICB0aGlzLnBhZ2VzID0gcXVlc3Rpb24ucGFnZXM7XG4gICAgdGhpcy5wYXJlbnRRdWVzdGlvbkFuc3dlcnM9cXVlc3Rpb24/LnF1ZXN0aW9uQW5zd2VycztcbiAgICB0aGlzLnBhcmVudFN1Ym1pc3Npb25JZD1xdWVzdGlvbj8ucGFyZW50SWQ7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbMF07XG4gICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbMV07XG4gICAgdGhpcy5zYXZlQXV0b21hdGljYWxseSA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLnNhdmVBdXRvbWF0aWNhbGx5O1xuICAgIHRoaXMuc2F2ZUludGVydmFsID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uc2F2ZUludGVydmFsO1xuICAgIHRoaXMuY3VzdG9taXplRm9udCA9IHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmN1c3RvbWl6ZUZvbnQ7XG4gICAgdGhpcy5mb250RmFtaWx5ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZm9udEZhbWlseTtcbiAgICB0aGlzLmZvbnRTaXplID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZm9udFNpemU7XG4gICAgdGhpcy5lbmFibGVEYXRhRXhwb3J0ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlRGF0YUV4cG9ydDtcbiAgICB0aGlzLmZpbGVGb3JtYXRzID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZmlsZUZvcm1hdHM7XG4gICAgdGhpcy5lbmFibGVRdWVzdGlvbk51bWJlcmluZyA9XG4gICAgICBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5lbmFibGVRdWVzdGlvbk51bWJlcmluZztcbiAgICB0aGlzLnF1ZXN0aW9uTnVtYmVyaW5nID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ucXVlc3Rpb25OdW1iZXJpbmc7XG4gICAgdGhpcy5lbmFibGVHb29nbGVSZWNhcHRjaGEgPVxuICAgICAgcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlR29vZ2xlUmVjYXB0Y2hhO1xuICAgIHRoaXMuZ29vZ2xlUmVjYXB0Y2hhS2V5ID0gcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24uZ29vZ2xlUmVjYXB0Y2hhS2V5O1xuICAgIHRoaXMuZ29vZ2xlUmVjYXB0Y2hhU2VjcmV0ID1cbiAgICAgIHF1ZXN0aW9uLmZvcm1Db25maWd1cmF0aW9uLmdvb2dsZVJlY2FwdGNoYVNlY3JldDtcbiAgICB0aGlzLm5hdmlnYXRpb24gPSBxdWVzdGlvbi5mb3JtQ29uZmlndXJhdGlvbi5uYXZpZ2F0aW9uO1xuICAgIHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQgPVxuICAgICAgcXVlc3Rpb24uZm9ybUNvbmZpZ3VyYXRpb24ubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQ7XG4gIH1cblxuICBuYXZpZ2F0ZVRvTmV4dFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VJbmRleCA8IHRoaXMucGFnZXMubGVuZ3RoIC0gMSkge1xuICAgICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3BvbnNlLmlzVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4Kys7XG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcbiAgICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggKyAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci53YXJuaW5nKHZhbGlkYXRpb25SZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXgrKztcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4XTtcbiAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4ICsgMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGVUb1ByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUluZGV4ID4gMCkge1xuICAgICAgaWYgKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMudmFsaWRhdGVSZXF1aXJlZFF1ZXN0aW9ucyhjdXJyZW50UGFnZURhdGEpO1xuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3BvbnNlLmlzVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLm5leHRQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXgtLTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXggLSAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci53YXJuaW5nKHZhbGlkYXRpb25SZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5uZXh0UGFnZSA9IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleC0tO1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSA9IHRoaXMucGFnZXNbdGhpcy5jdXJyZW50UGFnZUluZGV4IC0gMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0Q3VycmVudFBhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkKSB7XG4gICAgICBjb25zdCBjdXJyZW50UGFnZURhdGEgPSB0aGlzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VJbmRleF07XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzcG9uc2UgPVxuICAgICAgICB0aGlzLnZhbGlkYXRlUmVxdWlyZWRRdWVzdGlvbnMoY3VycmVudFBhZ2VEYXRhKTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UuaXNWYWxpZCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXggPSBpbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9hc3RyLndhcm5pbmcodmFsaWRhdGlvblJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXggPSBpbmRleDtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZVF1ZXN0aW9uQW5zd2VycygpIHtcbiAgICB0aGlzLmZpbGVzID0gW107XG5cbiAgICBjb25zdCBleHRyYWN0UXVlc3Rpb25zID0gKFxuICAgICAgZm9ybUVsZW1lbnRzOiBhbnlbXSxcbiAgICAgIHBhcmVudEZvcm1JZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgICBpc0luU3ViRm9ybTogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgc3ViRm9ybUluZGV4OiBudW1iZXIgPSAwXG4gICAgKTogeyBhbnN3ZXJzOiBBbnN3ZXJbXTsgZm9ybXM6IEZvcm1bXSB9ID0+IHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uczogQW5zd2VyW10gPSBbXTtcbiAgICAgIGNvbnN0IGZvcm1zOiBGb3JtW10gPSBbXTtcblxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGxldCBiYXNlUXVlc3Rpb246IGFueTtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRklMRV9QSUNLRVInKSB7XG4gICAgICAgICAgICBiYXNlUXVlc3Rpb24gPSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgYW5zd2VyOiAnJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbGVtZW50LmVsZW1lbnQuYW5zd2VyKSkge1xuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbklkID0gaXNJblN1YkZvcm1cbiAgICAgICAgICAgICAgICA/IGAke3BhcmVudEZvcm1JZH1fJHtzdWJGb3JtSW5kZXh9XyR7ZWxlbWVudC5lbGVtZW50LmlkfWBcbiAgICAgICAgICAgICAgICA6IGVsZW1lbnQuZWxlbWVudC5pZDtcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgICAgICAgICAgIGZpbGU6IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlUXVlc3Rpb24gPSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGVtZW50LmVsZW1lbnQuYW5zd2VyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZWRpdCkge1xuICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAuLi5iYXNlUXVlc3Rpb24sXG4gICAgICAgICAgICAgIGFuc3dlcklkOiBlbGVtZW50LmVsZW1lbnQuYW5zd2VySWQgfHwgJycsXG4gICAgICAgICAgICAgIGRlbGV0ZUZpbGVzOiBlbGVtZW50LmVsZW1lbnQuZGVsZXRlRmlsZXMgfHwgW10sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goYmFzZVF1ZXN0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBsb2dpYyBvZiBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgICAgaWYgKGxvZ2ljLnNob3dMb2dpYykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4dHJhY3RRdWVzdGlvbnMoXG4gICAgICAgICAgICAgICAgICBsb2dpYy5mb3JtRWxlbWVudHMsXG4gICAgICAgICAgICAgICAgICBwYXJlbnRGb3JtSWQsXG4gICAgICAgICAgICAgICAgICBpc0luU3ViRm9ybSxcbiAgICAgICAgICAgICAgICAgIHN1YkZvcm1JbmRleFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcXVlc3Rpb25zLnB1c2goLi4ucmVzdWx0LmFuc3dlcnMpO1xuICAgICAgICAgICAgICAgIGZvcm1zLnB1c2goLi4ucmVzdWx0LmZvcm1zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJykge1xuICAgICAgICAgIGNvbnN0IHN1YmZvcm1JZCA9IGVsZW1lbnQuZWxlbWVudC5pZDtcbiAgICAgICAgICBjb25zdCBzdWJtaXNzaW9uSWQgPSBlbGVtZW50LmVsZW1lbnQuc3VibWlzc2lvbklkO1xuXG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5zdWJGb3JtU3RydWN0dXJlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgY29uc3Qgc3ViZm9ybVF1ZXN0aW9ucyA9IGV4dHJhY3RRdWVzdGlvbnMoXG4gICAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMsXG4gICAgICAgICAgICAgIHN1YmZvcm1JZCxcbiAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgZm9ybXMubGVuZ3RoXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3Qgc3ViZm9ybTogRm9ybSA9IHtcbiAgICAgICAgICAgICAgZm9ybUlkOiBzdWJmb3JtSWQsXG4gICAgICAgICAgICAgIGRlbGV0ZWRTdWJtaXNzaW9uczogW10sXG4gICAgICAgICAgICAgIHN1Ym1pc3Npb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc3VibWlzc2lvbklkOiBzdWJtaXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgICBhbnN3ZXJzOiBzdWJmb3JtUXVlc3Rpb25zLmFuc3dlcnMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3Jtcy5wdXNoKHN1YmZvcm0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbGVtZW50LnN1YkZvcm1TdHJ1Y3R1cmUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YmZvcm1BbnN3ZXJzOiBBbnN3ZXJbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3Qgc3ViZm9ybVF1ZXN0aW9ucyA9IGV4dHJhY3RRdWVzdGlvbnMoXG4gICAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMsXG4gICAgICAgICAgICAgIHN1YmZvcm1JZCxcbiAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgZm9ybXMubGVuZ3RoXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdTdWJmb3JtID0gZm9ybXMuZmluZChcbiAgICAgICAgICAgICAgKGZvcm0pID0+IGZvcm0uZm9ybUlkID09PSBzdWJmb3JtSWRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5zdWJtaXNzaW9ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAoc3VibWlzc2lvbjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgc3VibWlzc2lvbi5hbnN3ZXJzLmZvckVhY2goKGFuc3dlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbnN3ZXIuZmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uSWQgPSBgJHtzdWJmb3JtSWR9XyR7aW5kZXh9XyR7YW5zd2VyLnF1ZXN0aW9uSWR9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGFuc3dlci5maWxlcyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBhbnN3ZXIuZmlsZXM7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBkZWxldGUgYW5zd2VyLmF0dGFjaG1lbnRzO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBzdWJmb3JtOiBGb3JtID0ge1xuICAgICAgICAgICAgICBmb3JtSWQ6IHN1YmZvcm1JZCxcbiAgICAgICAgICAgICAgZGVsZXRlZFN1Ym1pc3Npb25zOiBlbGVtZW50LmVsZW1lbnQuZGVsZXRlZFN1Ym1pc3Npb25zLFxuICAgICAgICAgICAgICBzdWJtaXNzaW9uczogZWxlbWVudC5lbGVtZW50LnN1Ym1pc3Npb25zLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvcm1zLnB1c2goc3ViZm9ybSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IGFuc3dlcnM6IHF1ZXN0aW9ucywgZm9ybXM6IGZvcm1zIH07XG4gICAgfTtcblxuICAgIGNvbnN0IHByb2Nlc3NQYWdlcyA9IChcbiAgICAgIHBhZ2VzOiBhbnlbXVxuICAgICk6IHsgYW5zd2VyczogQW5zd2VyW107IGZvcm1zOiBGb3JtW10gfSA9PiB7XG4gICAgICBjb25zdCBxdWVzdGlvbnM6IEFuc3dlcltdID0gW107XG4gICAgICBjb25zdCBmb3JtczogRm9ybVtdID0gW107XG5cbiAgICAgIHBhZ2VzLmZvckVhY2goKHBhZ2UpID0+IHtcbiAgICAgICAgcGFnZS5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0cmFjdFF1ZXN0aW9ucyhyb3cuZ3JpZCk7XG4gICAgICAgICAgcXVlc3Rpb25zLnB1c2goLi4ucmVzdWx0LmFuc3dlcnMpO1xuICAgICAgICAgIGZvcm1zLnB1c2goLi4ucmVzdWx0LmZvcm1zKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHsgYW5zd2VyczogcXVlc3Rpb25zLCBmb3JtczogZm9ybXMgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gcHJvY2Vzc1BhZ2VzKHRoaXMucGFnZXMpO1xuXG4gICAgdGhpcy5xdWVzdGlvbkFuc3dlcnMgPSB7XG4gICAgICBwYXJlbnRJZDonJyxcbiAgICAgIGFuc3dlcnM6IHJlc3VsdC5hbnN3ZXJzLFxuICAgICAgZm9ybXM6IHJlc3VsdC5mb3JtcyxcbiAgICB9O1xuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICBjb25zb2xlLmxvZygncGFnZXMnLHRoaXMucGFnZXMpO1xuICAgIFxuICAgIGxldCB2YWxpZGF0aW9uUmVzcG9uc2UgPSB0aGlzLnZhbGlkYXRlRm9ybSh0aGlzLnBhZ2VzKTtcbiAgICB0aGlzLmdlbmVyYXRlUXVlc3Rpb25BbnN3ZXJzKCk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXNwb25zZS5pc1ZhbGlkKSB7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOyAgIFxuICAgICAgICB0aGlzLnF1ZXN0aW9uQW5zd2Vycy5wYXJlbnRJZD10aGlzLnBhcmVudFN1Ym1pc3Npb25JZDtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnanNvbicsIEpTT04uc3RyaW5naWZ5KHRoaXMucXVlc3Rpb25BbnN3ZXJzKSk7XG4gICAgICBpZiAodGhpcy5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZmlsZXMuZm9yRWFjaCgoZmlsZUl0ZW0pID0+IHtcbiAgICAgICAgICBmaWxlSXRlbS5maWxlLmZvckVhY2goKGZpbGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpbGVJdGVtLnF1ZXN0aW9uSWQsIGZpbGUuX2ZpbGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmVkaXQgJiYgdGhpcy5zdWJtaXNzaW9uSWQpIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZVxuICAgICAgICAgIC51cGRhdGVGb3JtKHRoaXMubW9kdWxlTmFtZSwgdGhpcy5zdWJtaXNzaW9uSWQsIGZvcm1EYXRhKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRm9ybSB1cGRhdGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KCdzdWNjZXNzJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdG8gdXBkYXRlIGZvcm0nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5zdWJtaXRGb3JtKHRoaXMubW9kdWxlTmFtZSwgZm9ybURhdGEpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ0Zvcm0gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCgnc3VjY2VzcycpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHRvIHN1Ym1pdCBmb3JtJyk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcih2YWxpZGF0aW9uUmVzcG9uc2UubWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVGb3JtKGpzb25EYXRhOiBhbnkpOiB7XG4gICAgaXNWYWxpZDogYm9vbGVhbjtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgcGFnZUluZGV4OiBudW1iZXIgfCAwO1xuICB9IHtcbiAgICBjb25zdCB2YWxpZGF0ZVF1ZXN0aW9ucyA9IChcbiAgICAgIGZvcm1FbGVtZW50czogYW55W11cbiAgICApOiB7IGlzVmFsaWQ6IGJvb2xlYW47IG1lc3NhZ2U6IHN0cmluZzsgcGFnZUluZGV4OiBudW1iZXIgfCAwIH0gPT4ge1xuICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBmb3JtRWxlbWVudHMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkID0gZWxlbWVudC5lbGVtZW50LnJlcXVpcmVkO1xuICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XG4gICAgICAgICAgY29uc3QgdmFsaWRhdGlvbiA9IGVsZW1lbnQuZWxlbWVudC52YWxpZGF0aW9uO1xuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBlbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHM7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCghYW5zd2VyIHx8IGFuc3dlci5sZW5ndGggPT09IDApICYmIGF0dGFjaG1lbnQubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRm9ybSBpcyBpbnZhbGlkIC0gUmVxdWlyZWQgZmlsZSBxdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaGFzIG5vIGZpbGVzIHVwbG9hZGVkLmAsXG4gICAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIgfHwgT2JqZWN0LmtleXMoYW5zd2VyKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRm9ybSBpcyBpbnZhbGlkIC0gUXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGlzIHJlcXVpcmVkIGJ1dCBubyBhbnN3ZXIgcHJvdmlkZWQuYCxcbiAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyByZXF1aXJlZCBidXQgdmFsaWRhdGlvbiBpcyBmYWxzZS5gLFxuICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJlcXVpcmVkICYmIGFuc3dlciAmJiBPYmplY3Qua2V5cyhhbnN3ZXIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEZvcm0gaXMgaW52YWxpZCAtIFF1ZXN0aW9uICR7ZWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uTnVtYmVyfSBpcyBub3QgcmVxdWlyZWQgYnV0IGFuc3dlciBwcm92aWRlZCB3aXRoIHZhbGlkYXRpb24gZmFsc2UuYCxcbiAgICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGxvZ2ljIG9mIGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xuICAgICAgICAgICAgICBpZiAobG9naWMuc2hvd0xvZ2ljKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVzdGlvbnMobG9naWMuZm9ybUVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1NVQkZPUk0nKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIG1lc3NhZ2U6ICcnLCBwYWdlSW5kZXg6IDAgfTtcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgcGFnZUluZGV4ID0gMDsgcGFnZUluZGV4IDwganNvbkRhdGEubGVuZ3RoOyBwYWdlSW5kZXgrKykge1xuICAgICAgY29uc3QgcGFnZSA9IGpzb25EYXRhW3BhZ2VJbmRleF07XG4gICAgICBmb3IgKGxldCByb3cgb2YgcGFnZS5yb3dzKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlUXVlc3Rpb25zKHJvdy5ncmlkKTtcbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBQYWdlICR7cGFnZUluZGV4ICsgMX06ICR7cmVzdWx0Lm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIHBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICBtZXNzYWdlOiAnRm9ybSBpcyB2YWxpZC4nLFxuICAgICAgcGFnZUluZGV4OiAwLFxuICAgIH07XG4gIH1cblxuICB2YWxpZGF0ZVJlcXVpcmVkUXVlc3Rpb25zKHBhZ2U6IGFueSk6IHsgaXNWYWxpZDogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHZhbGlkYXRlUXVlc3Rpb25zID0gKFxuICAgICAgZm9ybUVsZW1lbnRzOiBhbnlbXVxuICAgICk6IHsgaXNWYWxpZDogYm9vbGVhbjsgbWVzc2FnZTogc3RyaW5nIH0gPT4ge1xuICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBmb3JtRWxlbWVudHMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkID0gZWxlbWVudC5lbGVtZW50LnJlcXVpcmVkO1xuICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJykge1xuICAgICAgICAgICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIGlmICghYW5zd2VyIHx8IGFuc3dlci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgUmVxdWlyZWQgZmlsZSBxdWVzdGlvbiAke2VsZW1lbnQuZWxlbWVudC5xdWVzdGlvbk51bWJlcn0gaXMgbm90IGFuc3dlcmVkLmAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIgfHwgT2JqZWN0LmtleXMoYW5zd2VyKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgUmVxdWlyZWQgcXVlc3Rpb24gJHtlbGVtZW50LmVsZW1lbnQucXVlc3Rpb25OdW1iZXJ9IGlzIG5vdCBhbnN3ZXJlZC5gLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcykge1xuICAgICAgICAgICAgZm9yIChsZXQgbG9naWMgb2YgZWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgICAgIGlmIChsb2dpYy5zaG93TG9naWMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXN0aW9ucyhsb2dpYy5mb3JtRWxlbWVudHMpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScpIHtcbiAgICAgICAgICBpZiAoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50cykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVzdGlvbnMoZWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50cyk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSwgbWVzc2FnZTogJ0FsbCByZXF1aXJlZCBxdWVzdGlvbnMgYXJlIGFuc3dlcmVkLicgfTtcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgcm93IG9mIHBhZ2Uucm93cykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVzdGlvbnMocm93LmdyaWQpO1xuICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBtZXNzYWdlOiAnQWxsIHJlcXVpcmVkIHF1ZXN0aW9ucyBhcmUgYW5zd2VyZWQuJyB9O1xuICB9XG5cbiAgdXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucyhldmVudDogYW55KSB7XG4gICAgdGhpcy51cGRhdGVTdWJGb3JtKHRoaXMucGFnZXMsIGV2ZW50KTtcbiAgfVxuXG4gIHVwZGF0ZVN1YkZvcm0gPSAocGFnZXM6IGFueVtdLCB1cGRhdGVkU3ViRm9ybTogYW55KSA9PiB7XG4gICAgcGFnZXMuZm9yRWFjaCgocGFnZSkgPT4ge1xuICAgICAgcGFnZS5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XG4gICAgICAgIHJvdy5ncmlkLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1NVQkZPUk0nICYmXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQuaWQgPT09IHVwZGF0ZWRTdWJGb3JtLmZvcm1JZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBleGlzdGluZyBzdWJmb3JtIHdpdGggdGhlIG5ldyBkYXRhXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQgPSB1cGRhdGVkU3ViRm9ybTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZWxlbWVudC5lbnRpdHlUeXBlID09PSAnU1VCRk9STScgJiZcbiAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5pZCAhPT0gdXBkYXRlZFN1YkZvcm0uZm9ybUlkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgbXVsdGlwbGUgc3ViZm9ybXMgbG9naWMgaGVyZSBpZiBuZWVkZWRcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nICYmXG4gICAgICAgICAgICBlbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3NcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IHVwZGF0ZSBjaGlsZCBsb2dpY3NcbiAgICAgICAgICAgIGVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChsb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChsb2dpYy5zaG93TG9naWMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN1YkZvcm0obG9naWMuZm9ybUVsZW1lbnRzLCB1cGRhdGVkU3ViRm9ybSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJvdXRlci1jb250YWluZXJcIj5cbiAgXG4gIFxuICA8ZGl2IGNsYXNzPVwiaGVhZCBjb250YWluZXJcIj5cbiAgICA8bGliLWhlYWRlciBbbmFtZV09XCJuYW1lXCI+PC9saWItaGVhZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvZHkgY29udGFpbmVyXCI+XG4gICAgXG4gICAgPGxpYi1zdWJtaXNzaW9uLWNvbnRhaW5lciBbcGFyZW50UXVlc3Rpb25BbnN3ZXJzXT1cInBhcmVudFF1ZXN0aW9uQW5zd2Vyc1wiXG4gICAgKm5nSWY9XCJwYXJlbnRRdWVzdGlvbkFuc3dlcnNcIj48L2xpYi1zdWJtaXNzaW9uLWNvbnRhaW5lcj5cbiAgICBcbiAgICA8bGliLW5hdmlnYXRpb24tdGFic1xuICAgICAgKm5nSWY9XCJuYXZpZ2F0aW9uID09ICdUQUInXCJcbiAgICAgIFtwYWdlc109XCJwYWdlc1wiXG4gICAgICBbY3VycmVudFBhZ2VJbmRleF09XCJjdXJyZW50UGFnZUluZGV4XCJcbiAgICAgIChwYWdlQ2hhbmdlZCk9XCJzZXRDdXJyZW50UGFnZSgkZXZlbnQpXCJcbiAgICAgIChzdWJtaXRFbWl0KT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICBbZWRpdF09XCJlZGl0XCJcbiAgICAgIChzdWJGb3JtQ2hhbmdlKT1cInVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoJGV2ZW50KVwiXG4gICAgPjwvbGliLW5hdmlnYXRpb24tdGFicz5cbiAgICA8bGliLW5leHQtcHJldi1uYXZpZ2F0aW9uXG4gICAgICAqbmdJZj1cIm5hdmlnYXRpb24gPT0gJ05FWFRfQU5EX1BSRVZJT1VTX0JVVFRPTidcIlxuICAgICAgW2N1cnJlbnRQYWdlSW5kZXhdPVwiY3VycmVudFBhZ2VJbmRleFwiXG4gICAgICBbcGFnZXNdPVwicGFnZXNcIlxuICAgICAgW3ByZXZpb3VzUGFnZV09XCJwcmV2aW91c1BhZ2VcIlxuICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgIFtuZXh0UGFnZV09XCJuZXh0UGFnZVwiXG4gICAgICAobmF2aWdhdGVOZXh0KT1cIm5hdmlnYXRlVG9OZXh0UGFnZSgpXCJcbiAgICAgIChuYXZpZ2F0ZVByZXZpb3VzKT1cIm5hdmlnYXRlVG9QcmV2aW91c1BhZ2UoKVwiXG4gICAgICAoc3VibWl0RW1pdCk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgW2VkaXRdPVwiZWRpdFwiXG4gICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxuICAgID48L2xpYi1uZXh0LXByZXYtbmF2aWdhdGlvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljRm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvbW9kZWxzL3B1YmxpY0Zvcm0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi9mb3JtQ29uZmlndXJhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAnLi9wYWdlLm1vZGVsJztcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyIH0gZnJvbSAnLi9xdWVzdGlvbkFuc3dlci5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljRm9ybSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZm9ybUNvbmZpZ3VyYXRpb246IEZvcm1Db25maWd1cmF0aW9uO1xuICBwYWdlczogUGFnZVtdO1xuICBxdWVzdGlvbkFuc3dlcnM6UXVlc3Rpb25BbnN3ZXJbXTtcbiAgcGFyZW50SWQ6c3RyaW5nO1xufVxuIl19
|
|
@@ -3,7 +3,8 @@ export function mapPublicFormToModel(apiPublicForm) {
|
|
|
3
3
|
name: apiPublicForm.result.name,
|
|
4
4
|
formConfiguration: mapFormConfigurationToModel(apiPublicForm.result.formConfiguration),
|
|
5
5
|
pages: apiPublicForm.result.pages.map((apiPage) => mapPageToModel(apiPage)),
|
|
6
|
-
questionAnswers: apiPublicForm.result.questionAnswers
|
|
6
|
+
questionAnswers: apiPublicForm.result.questionAnswers,
|
|
7
|
+
parentId: apiPublicForm.result.parentId
|
|
7
8
|
};
|
|
8
9
|
}
|
|
9
10
|
function mapFormConfigurationToModel(apiFormConfiguration) {
|
|
@@ -282,4 +283,4 @@ function mapOptionToModel(apiOption) {
|
|
|
282
283
|
api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,
|
|
283
284
|
};
|
|
284
285
|
}
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3NlcnZpY2VzL21hcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCQSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsYUFBa0I7SUFDckQsT0FBTztRQUNMLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDL0IsaUJBQWlCLEVBQUUsMkJBQTJCLENBQzVDLGFBQWEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQ3ZDO1FBQ0QsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQ3JELGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDeEI7UUFDRCxlQUFlLEVBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxlQUFlO0tBQ3JELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FDbEMsb0JBQXlCO0lBRXpCLE9BQU87UUFDTCxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUI7UUFDekQsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFlBQVk7UUFDL0MsYUFBYSxFQUFFLG9CQUFvQixDQUFDLGFBQWE7UUFDakQsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFVBQVU7UUFDM0MsUUFBUSxFQUFFLG9CQUFvQixDQUFDLFFBQVE7UUFDdkMsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsZ0JBQWdCO1FBQ3ZELFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXO1FBQzdDLHVCQUF1QixFQUFFLG9CQUFvQixDQUFDLHVCQUF1QjtRQUNyRSxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUI7UUFDekQscUJBQXFCLEVBQUUsb0JBQW9CLENBQUMscUJBQXFCO1FBQ2pFLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLGtC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UUFDdkUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxHQUFHLENBQ25ELDhCQUE4QixDQUMvQjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyw4QkFBOEIsQ0FDckMsdUJBQTRCO0lBRTVCLE9BQU87UUFDTCxPQUFPLEVBQUUsdUJBQXVCLENBQUMsT0FBTztRQUN4QyxXQUFXLEVBQUUsdUJBQXVCLENBQUMsV0FBVztRQUNoRCxVQUFVLEVBQUUsdUJBQXVCLENBQUMsVUFBVTtLQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsU0FBYztJQUN0QyxPQUFPO1FBQ0wsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVO1FBQ2pDLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVztRQUNuQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztTQUNwQixDQUFDLENBQUM7UUFDSCxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVE7WUFDM0IsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFNBQVM7UUFDYixHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzVFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwZWFyYW5jZSB9IGZyb20gJy4uL21vZGVscy9hcHBlYXJhbmNlLm1vZGVsJztcbmltcG9ydCB7IEVsZW1lbnRPcHRpb25BUEkgfSBmcm9tICcuLi9tb2RlbHMvZWxlbWVudE9wdGlvbkFQSS5tb2RlbCc7XG5pbXBvcnQgeyBlbGVtZW50T3B0aW9uQVBJRGF0YSB9IGZyb20gJy4uL21vZGVscy9lbGVtZW50T3B0aW9uQVBJRGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBFbGVtZW50T3B0aW9uREIgfSBmcm9tICcuLi9tb2RlbHMvZWxlbWVudE9wdGlvbkRCLm1vZGVsJztcbmltcG9ydCB7IEVsZW1lbnRPcHRpb25EQkNyaXRlcmlhIH0gZnJvbSAnLi4vbW9kZWxzL2VsZW1lbnRPcHRpb25EQkNyaXRlcmlhLm1vZGVsJztcbmltcG9ydCB7IEZvcm1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1Db25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1FbGVtZW50Lm1vZGVsJztcbmltcG9ydCB7IEdyaWQgfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAnLi4vbW9kZWxzL3BhZ2UubW9kZWwnO1xuaW1wb3J0IHsgUHVibGljRm9ybSB9IGZyb20gJy4uL21vZGVscy9wdWJsaWNGb3JtLm1vZGVsJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3F1ZXN0aW9uLm1vZGVsJztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL21vZGVscy9yb3cubW9kZWwnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL21vZGVscy92YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL21vZGVscy9zZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IFN1YkZvcm0gfSBmcm9tICcuLi9tb2RlbHMvc3ViRm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybUVsZW1lbnRUeXBlLm1vZGVsJztcbmltcG9ydCB7IExvZ2ljIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2ljLm1vZGVsJztcbmltcG9ydCB7IEF0dGFjaG1lbnQgfSBmcm9tICcuLi9tb2RlbHMvYXR0YWNobWVudC5tb2RlbCc7XG5pbXBvcnQgeyBTdWJtaXNzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3N1Ym1pc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgQW5zd2VyIH0gZnJvbSAnLi4vbW9kZWxzL2Fuc3dlci5tb2RlbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBQdWJsaWNGb3JtVG9Nb2RlbChhcGlQdWJsaWNGb3JtOiBhbnkpOiBQdWJsaWNGb3JtIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBhcGlQdWJsaWNGb3JtLnJlc3VsdC5uYW1lLFxuICAgIGZvcm1Db25maWd1cmF0aW9uOiBtYXBGb3JtQ29uZmlndXJhdGlvblRvTW9kZWwoXG4gICAgICBhcGlQdWJsaWNGb3JtLnJlc3VsdC5mb3JtQ29uZmlndXJhdGlvblxuICAgICksXG4gICAgcGFnZXM6IGFwaVB1YmxpY0Zvcm0ucmVzdWx0LnBhZ2VzLm1hcCgoYXBpUGFnZTogYW55KSA9PlxuICAgICAgbWFwUGFnZVRvTW9kZWwoYXBpUGFnZSlcbiAgICApLFxuICAgIHF1ZXN0aW9uQW5zd2VyczphcGlQdWJsaWNGb3JtLnJlc3VsdC5xdWVzdGlvbkFuc3dlcnNcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwRm9ybUNvbmZpZ3VyYXRpb25Ub01vZGVsKFxuICBhcGlGb3JtQ29uZmlndXJhdGlvbjogYW55XG4pOiBGb3JtQ29uZmlndXJhdGlvbiB7XG4gIHJldHVybiB7XG4gICAgc2F2ZUF1dG9tYXRpY2FsbHk6IGFwaUZvcm1Db25maWd1cmF0aW9uLnNhdmVBdXRvbWF0aWNhbGx5LFxuICAgIHNhdmVJbnRlcnZhbDogYXBpRm9ybUNvbmZpZ3VyYXRpb24uc2F2ZUludGVydmFsLFxuICAgIGN1c3RvbWl6ZUZvbnQ6IGFwaUZvcm1Db25maWd1cmF0aW9uLmN1c3RvbWl6ZUZvbnQsXG4gICAgZm9udEZhbWlseTogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZm9udEZhbWlseSxcbiAgICBmb250U2l6ZTogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZm9udFNpemUsXG4gICAgZW5hYmxlRGF0YUV4cG9ydDogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlRGF0YUV4cG9ydCxcbiAgICBmaWxlRm9ybWF0czogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZmlsZUZvcm1hdHMsXG4gICAgZW5hYmxlUXVlc3Rpb25OdW1iZXJpbmc6IGFwaUZvcm1Db25maWd1cmF0aW9uLmVuYWJsZVF1ZXN0aW9uTnVtYmVyaW5nLFxuICAgIHF1ZXN0aW9uTnVtYmVyaW5nOiBhcGlGb3JtQ29uZmlndXJhdGlvbi5xdWVzdGlvbk51bWJlcmluZyxcbiAgICBlbmFibGVHb29nbGVSZWNhcHRjaGE6IGFwaUZvcm1Db25maWd1cmF0aW9uLmVuYWJsZUdvb2dsZVJlY2FwdGNoYSxcbiAgICBnb29nbGVSZWNhcHRjaGFLZXk6IGFwaUZvcm1Db25maWd1cmF0aW9uLmdvb2dsZVJlY2FwdGNoYUtleSxcbiAgICBnb29nbGVSZWNhcHRjaGFTZWNyZXQ6IGFwaUZvcm1Db25maWd1cmF0aW9uLmdvb2dsZVJlY2FwdGNoYVNlY3JldCxcbiAgICBuYXZpZ2F0aW9uOiBhcGlGb3JtQ29uZmlndXJhdGlvbi5uYXZpZ2F0aW9uLFxuICAgIG1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkOiBhcGlGb3JtQ29uZmlndXJhdGlvbi5tYXJrQWxsUXVlc3Rpb25zQXNSZXF1aXJlZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwUGFnZVRvTW9kZWwoYXBpUGFnZTogYW55KTogUGFnZSB7XG4gIHJldHVybiB7XG4gICAgdGl0bGU6IGFwaVBhZ2UudGl0bGUsXG4gICAgcm93czogYXBpUGFnZS5yb3dzLm1hcCgoYXBpUm93OiBhbnkpID0+IG1hcFJvd1RvTW9kZWwoYXBpUm93KSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcFJvd1RvTW9kZWwoYXBpUm93OiBhbnkpOiBSb3cge1xuICByZXR1cm4ge1xuICAgIGdyaWQ6IGFwaVJvdy5ncmlkLm1hcCgoYXBpR3JpZDogYW55KSA9PiBtYXBHcmlkVG9Nb2RlbChhcGlHcmlkKSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEdyaWRUb01vZGVsKGFwaUdyaWQ6IGFueSk6IEdyaWQge1xuICBsZXQgZW50aXR5OiBTZWN0aW9uIHwgUXVlc3Rpb24gfCBTdWJGb3JtIHwgdW5kZWZpbmVkO1xuXG4gIHN3aXRjaCAoYXBpR3JpZC5lbnRpdHlUeXBlKSB7XG4gICAgY2FzZSAnUVVFU1RJT04nOlxuICAgICAgZW50aXR5ID0gbWFwUXVlc3Rpb25Ub01vZGVsKGFwaUdyaWQuZWxlbWVudCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdTRUNUSU9OJzpcbiAgICAgIGVudGl0eSA9IG1hcFNlY3Rpb25Ub01vZGVsKGFwaUdyaWQuZWxlbWVudCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdTVUJGT1JNJzpcbiAgICAgIGVudGl0eSA9IG1hcFN1YkZvcm1Ub01vZGVsKGFwaUdyaWQuZWxlbWVudCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGVudGl0eSB0eXBlOiAke2FwaUdyaWQuZW50aXR5VHlwZX1gKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW50aXR5VHlwZTogYXBpR3JpZC5lbnRpdHlUeXBlLFxuICAgIGVsZW1lbnQ6IGVudGl0eSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFNlY3Rpb25Ub01vZGVsKGFwaVNlY3Rpb246IGFueSk6IFNlY3Rpb24ge1xuICByZXR1cm4ge1xuICAgIGlkOiBhcGlTZWN0aW9uLmlkLFxuICAgIHRpdGxlOiBhcGlTZWN0aW9uLnRpdGxlLFxuICAgIGRlc2NyaXB0aW9uOiBhcGlTZWN0aW9uLmRlc2NyaXB0aW9uLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwUXVlc3Rpb25Ub01vZGVsKGFwaVF1ZXN0aW9uOiBhbnkpOiBRdWVzdGlvbiB7XG4gIHJldHVybiB7XG4gICAgY291bnQ6IGFwaVF1ZXN0aW9uLmNvdW50LFxuICAgIGlkOiBhcGlRdWVzdGlvbi5pZCxcbiAgICBxdWVzdGlvbk51bWJlcjogYXBpUXVlc3Rpb24ucXVlc3Rpb25OdW1iZXIsXG4gICAgcmVxdWlyZWQ6IGFwaVF1ZXN0aW9uLnJlcXVpcmVkLFxuICAgIGhpbnQ6IGFwaVF1ZXN0aW9uLmhpbnQsXG4gICAgcXVlc3Rpb246IGFwaVF1ZXN0aW9uLnF1ZXN0aW9uLFxuICAgIGFuc3dlcjogYXBpUXVlc3Rpb24/LmFuc3dlcixcbiAgICB2YWxpZGF0aW9uOiB0cnVlLFxuICAgIGZvcm1FbGVtZW50OiBtYXBGb3JtRWxlbWVudFRvTW9kZWwoYXBpUXVlc3Rpb24uZm9ybUVsZW1lbnQpLFxuICAgIGNoaWxkTG9naWNzOiBhcGlRdWVzdGlvbj8uY2hpbGRMb2dpY3M/Lm1hcCgobG9naWM6IGFueSkgPT5cbiAgICAgIG1hcExvZ2ljVG9Nb2RlbChsb2dpYylcbiAgICApLFxuICAgIGFuc3dlcklkOiBhcGlRdWVzdGlvbj8uYW5zd2VySWQsXG4gICAgYXR0YWNobWVudHM6IGFwaVF1ZXN0aW9uPy5hdHRhY2htZW50cz8ubWFwKChhdHRhY2htZW50OiBhbnkpID0+IG1hcEF0dGFjaG1lbnRUb01vZGVsKGF0dGFjaG1lbnQpKSB8fCBbXSxcbiAgICBkZWxldGVGaWxlczogW10sXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEF0dGFjaG1lbnRUb01vZGVsKGFwaUF0dGFjaG1lbnQ6IGFueSk6IEF0dGFjaG1lbnQge1xuICByZXR1cm4ge1xuICAgIGZpbGVJZDogYXBpQXR0YWNobWVudC5maWxlSWQsXG4gICAgZmlsZU5hbWU6IGFwaUF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgZmlsZVVybDogYXBpQXR0YWNobWVudC5maWxlVXJsLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBGb3JtRWxlbWVudFRvTW9kZWwoYXBpRm9ybUVsZW1lbnQ6IGFueSk6IEZvcm1FbGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICBlbGVtZW50VHlwZTogYXBpRm9ybUVsZW1lbnQuZWxlbWVudFR5cGUsXG4gICAgYXBwZWFyYW5jZTogbWFwQXBwZWFyYW5jZVRvTW9kZWwoYXBpRm9ybUVsZW1lbnQuYXBwZWFyYW5jZSksXG4gICAgdmFsaWRhdGlvbjogbWFwVmFsaWRhdGlvblRvTW9kZWwoYXBpRm9ybUVsZW1lbnQudmFsaWRhdGlvbiksXG4gICAgb3B0aW9uOiBtYXBPcHRpb25Ub01vZGVsKGFwaUZvcm1FbGVtZW50Py5vcHRpb24pLFxuICAgIHNlbGVjdGlvbk1hdHJpeExhYmVsOiBhcGlGb3JtRWxlbWVudC5zZWxlY3Rpb25NYXRyaXhMYWJlbCxcbiAgICBzZWxlY3Rpb25NYXRyaXhDb2x1bW46IGFwaUZvcm1FbGVtZW50LnNlbGVjdGlvbk1hdHJpeENvbHVtbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwTG9naWNUb01vZGVsKGFwaUxvZ2ljOiBhbnkpOiBMb2dpYyB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGFwaUxvZ2ljLmlkLFxuICAgIGlucHV0VmFsdWU6IGFwaUxvZ2ljLmlucHV0VmFsdWUsXG4gICAgY29uZGl0aW9uOiBhcGlMb2dpYy5jb25kaXRpb24sXG4gICAgc2hvd0xvZ2ljOiBmYWxzZSxcbiAgICBmb3JtRWxlbWVudHM6IGFwaUxvZ2ljPy5mb3JtRWxlbWVudHM/Lm1hcCgoZWxlbWVudDogYW55KSA9PlxuICAgICAgbWFwRm9ybUVsZW1lbnRUeXBlVG9Nb2RlbChlbGVtZW50KVxuICAgICksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBTdWJGb3JtVG9Nb2RlbChhcGlTdWJGb3JtOiBhbnkpOiBTdWJGb3JtIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogYXBpU3ViRm9ybS5pZCxcbiAgICBjb3VudDogYXBpU3ViRm9ybS5jb3VudCxcbiAgICB0aXRsZTogYXBpU3ViRm9ybS50aXRsZSxcbiAgICBkZXNjcmlwdGlvbjogYXBpU3ViRm9ybS5kZXNjcmlwdGlvbixcbiAgICBzdWJGb3JtU3RydWN0dXJlOiBhcGlTdWJGb3JtLnN1YkZvcm1TdHJ1Y3R1cmUsXG4gICAgZm9ybUVsZW1lbnRzOiBhcGlTdWJGb3JtLmZvcm1FbGVtZW50cy5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gbWFwRm9ybUVsZW1lbnRUeXBlVG9Nb2RlbChlbGVtZW50KSksXG4gICAgc3VibWlzc2lvbnM6IGFwaVN1YkZvcm0/LnN1Ym1pc3Npb25zPy5tYXAoKHN1Ym1pc3Npb246IGFueSkgPT4gbWFwU3VibWlzc2lvblRvTW9kZWwoc3VibWlzc2lvbikpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBTdWJtaXNzaW9uVG9Nb2RlbChhcGlTdWJtaXNzaW9uOiBhbnkpOiBTdWJtaXNzaW9uIHtcbiAgcmV0dXJuIHtcbiAgICBzdWJtaXNzaW9uSWQ6IGFwaVN1Ym1pc3Npb24uc3VibWlzc2lvbklkLFxuICAgIGFuc3dlcnM6IGFwaVN1Ym1pc3Npb24/LmFuc3dlcnM/Lm1hcCgoYW5zd2VyOiBhbnkpID0+IG1hcEFuc3dlclRvTW9kZWwoYW5zd2VyKSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEFuc3dlclRvTW9kZWwoYXBpQW5zd2VyOiBhbnkpOiBBbnN3ZXIge1xuICByZXR1cm4ge1xuICAgIHF1ZXN0aW9uSWQ6IGFwaUFuc3dlci5xdWVzdGlvbklkLFxuICAgIGFuc3dlcjogYXBpQW5zd2VyPy5hbnN3ZXIsXG4gICAgYW5zd2VySWQ6IGFwaUFuc3dlcj8uYW5zd2VySWQsXG4gICAgYXR0YWNobWVudHM6IGFwaUFuc3dlcj8uYXR0YWNobWVudHM/Lm1hcCgoYXR0YWNobWVudDogYW55KSA9PiBtYXBBdHRhY2htZW50VG9Nb2RlbChhdHRhY2htZW50KSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBGb3JtRWxlbWVudFR5cGVUb01vZGVsKFxuICBhcGlGb3JtRWxlbWVudFR5cGU6IGFueVxuKTogRm9ybUVsZW1lbnRUeXBlPGFueT4ge1xuICByZXR1cm4ge1xuICAgIGVudGl0eVR5cGU6IGFwaUZvcm1FbGVtZW50VHlwZS5lbnRpdHlUeXBlLFxuICAgIGVsZW1lbnQ6IGFwaUZvcm1FbGVtZW50VHlwZS5lbGVtZW50LFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBBcHBlYXJhbmNlVG9Nb2RlbChhcGlBcHBlYXJhbmNlOiBhbnkpOiBBcHBlYXJhbmNlIHtcbiAgcmV0dXJuIHtcbiAgICBwbGFjZWhvbGRlcjogYXBpQXBwZWFyYW5jZT8ucGxhY2Vob2xkZXIsXG4gICAgZm9udFNpemU6IGFwaUFwcGVhcmFuY2U/LmZvbnRTaXplLFxuICAgIHRleHRBbGlnbjogYXBpQXBwZWFyYW5jZT8udGV4dEFsaWduLFxuICAgIGZvbnQ6IGFwaUFwcGVhcmFuY2U/LmZvbnQsXG4gICAgdW5kZXJsaW5lOiBhcGlBcHBlYXJhbmNlPy51bmRlcmxpbmUsXG4gICAgYm9sZDogYXBpQXBwZWFyYW5jZT8uYm9sZCxcbiAgICBpdGFsaWNzOiBhcGlBcHBlYXJhbmNlPy5pdGFsaWNzLFxuICAgIGRlZmF1bHRWYWx1ZTogYXBpQXBwZWFyYW5jZT8uZGVmYXVsdFZhbHVlLFxuICAgIG51bWJlck9mUm93czogYXBpQXBwZWFyYW5jZT8ubnVtYmVyT2ZSb3dzLFxuICAgIHNpbmdsZVNlbGVjdGlvbjogYXBpQXBwZWFyYW5jZT8uc2luZ2xlU2VsZWN0aW9uLFxuICAgIGRpc3BsYXlDb3VudHJ5Q29kZTogYXBpQXBwZWFyYW5jZT8uZGlzcGxheUNvdW50cnlDb2RlLFxuICAgIGRpc3BsYXlGbGFnOiBhcGlBcHBlYXJhbmNlPy5kaXNwbGF5RmxhZyxcbiAgICBkaXNwbGF5Q29kZTogYXBpQXBwZWFyYW5jZT8uZGlzcGxheUNvZGUsXG4gICAgc2hvd0NvdW50cnlOYW1lOiBhcGlBcHBlYXJhbmNlPy5zaG93Q291bnRyeU5hbWUsXG4gICAgYmVhdXRpZnlOdW1iZXJzOiBhcGlBcHBlYXJhbmNlPy5iZWF1dGlmeU51bWJlcnMsXG4gICAgdXBBbmREb3duQnV0dG9uOiBhcGlBcHBlYXJhbmNlPy51cEFuZERvd25CdXR0b24sXG4gICAgYWxsb3dOZWdhdGl2ZVZhbHVlczogYXBpQXBwZWFyYW5jZT8uYWxsb3dOZWdhdGl2ZVZhbHVlcyxcbiAgICBzaG93UHJldmlld0J1dHRvbjogYXBpQXBwZWFyYW5jZT8uc2hvd1ByZXZpZXdCdXR0b24sXG4gICAgY29uZmlybVBhc3N3b3JkOiBhcGlBcHBlYXJhbmNlPy5jb25maXJtUGFzc3dvcmQsXG4gICAgdmlld0J1dHRvbjogYXBpQXBwZWFyYW5jZT8udmlld0J1dHRvbixcbiAgICBkaXNwbGF5U3Ryb25nOiBhcGlBcHBlYXJhbmNlPy5kaXNwbGF5U3Ryb25nLFxuICAgIGRhdGVUeXBlOiBhcGlBcHBlYXJhbmNlPy5kYXRlVHlwZSxcbiAgICBmb3JtYXQ6IGFwaUFwcGVhcmFuY2U/LmZvcm1hdCxcbiAgICBzZXRDdXJyZW50UG9zaXRpb246IGFwaUFwcGVhcmFuY2U/LnNldEN1cnJlbnRQb3NpdGlvbixcbiAgICBkZWZhdWx0Wm9vbUxldmVsOiBhcGlBcHBlYXJhbmNlPy5kZWZhdWx0Wm9vbUxldmVsLFxuICAgIGFsbG93RnVsbFNjcmVlbjogYXBpQXBwZWFyYW5jZT8uYWxsb3dGdWxsU2NyZWVuLFxuICAgIGxhdGl0dWRlOiBhcGlBcHBlYXJhbmNlPy5sYXRpdHVkZSxcbiAgICBsb25naXR1ZGU6IGFwaUFwcGVhcmFuY2U/LmxvbmdpdHVkZSxcbiAgICBzaG93QWNjZXB0QnV0dG9uOiBhcGlBcHBlYXJhbmNlPy5zaG93QWNjZXB0QnV0dG9uLFxuICAgIGxhYmVsT25WYWx1ZTogYXBpQXBwZWFyYW5jZT8ubGFiZWxPblZhbHVlLFxuICAgIGxhYmVsT2ZmVmFsdWU6IGFwaUFwcGVhcmFuY2U/LmxhYmVsT2ZmVmFsdWUsXG4gICAgbGFiZWxPbkNvbG9yOiBhcGlBcHBlYXJhbmNlPy5sYWJlbE9uQ29sb3IsXG4gICAgbGFiZWxPZmZDb2xvcjogYXBpQXBwZWFyYW5jZT8ubGFiZWxPZmZDb2xvcixcbiAgICBtaW5WYWx1ZTogYXBpQXBwZWFyYW5jZT8ubWluVmFsdWUsXG4gICAgbWF4VmFsdWU6IGFwaUFwcGVhcmFuY2U/Lm1heFZhbHVlLFxuICAgIHN0ZXBWYWx1ZTogYXBpQXBwZWFyYW5jZT8uc3RlcFZhbHVlLFxuICAgIGNoYW5nZVNsaWRlckNvbG9yOiBhcGlBcHBlYXJhbmNlPy5jaGFuZ2VTbGlkZXJDb2xvcixcbiAgICBzbGlkZXJDb2xvcjogYXBpQXBwZWFyYW5jZT8uc2xpZGVyQ29sb3IsXG4gICAgY2FudmFzT3B0aW9uOiBhcGlBcHBlYXJhbmNlPy5jYW52YXNPcHRpb24sXG4gICAgc2VsZWN0aW9uVHlwZTogYXBpQXBwZWFyYW5jZT8uc2VsZWN0aW9uVHlwZSxcbiAgICBkcmFnQW5kRHJvcDogYXBpQXBwZWFyYW5jZT8uZHJhZ0FuZERyb3AsXG4gICAgcHJldmlld1VwbG9hZGVkRmlsZXM6IGFwaUFwcGVhcmFuY2U/LnByZXZpZXdVcGxvYWRlZEZpbGVzLFxuICAgIG11bHRpRmlsZVVwbG9hZHM6IGFwaUFwcGVhcmFuY2U/Lm11bHRpRmlsZVVwbG9hZHMsXG4gICAgc2VsZWN0aW9uQ29sb3JSZXF1aXJlZDogYXBpQXBwZWFyYW5jZT8uc2VsZWN0aW9uQ29sb3JSZXF1aXJlZCxcbiAgICBzZWxlY3Rpb25Db2xvcjogYXBpQXBwZWFyYW5jZT8uc2VsZWN0aW9uQ29sb3IsXG4gICAgY29sb3I6IGFwaUFwcGVhcmFuY2U/LmNvbG9yLFxuICAgIGF2YXRhclBpY2tlcjphcGlBcHBlYXJhbmNlPy5hdmF0YXJQaWNrZXJcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwVmFsaWRhdGlvblRvTW9kZWwoYXBpVmFsaWRhdGlvbjogYW55KTogVmFsaWRhdGlvbiB7XG4gIHJldHVybiB7XG4gICAgcmVnZXhWYWxpZGF0aW9uOiBhcGlWYWxpZGF0aW9uPy5yZWdleFZhbGlkYXRpb24sXG4gICAgcmVnZXg6IGFwaVZhbGlkYXRpb24/LnJlZ2V4LFxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBhcGlWYWxpZGF0aW9uPy52YWxpZGF0aW9uTWVzc2FnZSxcbiAgICBsaW1pdGVkQ2hhcmFjdGVyczogYXBpVmFsaWRhdGlvbj8ubGltaXRlZENoYXJhY3RlcnMsXG4gICAgY291bnQ6IGFwaVZhbGlkYXRpb24/LmNvdW50LFxuICAgIG1pbmltdW1TZWxlY3Rpb246IGFwaVZhbGlkYXRpb24/Lm1pbmltdW1TZWxlY3Rpb24sXG4gICAgbWF4aW11bVNlbGVjdGlvbjogYXBpVmFsaWRhdGlvbj8ubWF4aW11bVNlbGVjdGlvbixcbiAgICBjb3VudHJ5V2lzZVZhbGlkYXRpb246IGFwaVZhbGlkYXRpb24/LmNvdW50cnlXaXNlVmFsaWRhdGlvbixcbiAgICByZXN0cmljdENvdW50cnk6IGFwaVZhbGlkYXRpb24/LnJlc3RyaWN0Q291bnRyeSxcbiAgICBhbGxvd2VkQ291bnRyaWVzOiBhcGlWYWxpZGF0aW9uPy5hbGxvd2VkQ291bnRyaWVzLFxuICAgIGJsb2NrZWRDb3VudHJpZXM6IGFwaVZhbGlkYXRpb24/LmJsb2NrZWRDb3VudHJpZXMsXG4gICAgcmVndWxhckV4cHJlc3Npb246IGFwaVZhbGlkYXRpb24/LnJlZ3VsYXJFeHByZXNzaW9uLFxuICAgIGV4cGVjdGVkRG9tYWluczogYXBpVmFsaWRhdGlvbj8uZXhwZWN0ZWREb21haW5zLFxuICAgIG1pbjogYXBpVmFsaWRhdGlvbj8ubWluLFxuICAgIG1heDogYXBpVmFsaWRhdGlvbj8ubWF4LFxuICAgIG1pbkxlbmd0aDogYXBpVmFsaWRhdGlvbj8ubWluTGVuZ3RoLFxuICAgIG1heExlbmd0aDogYXBpVmFsaWRhdGlvbj8ubWF4TGVuZ3RoLFxuICAgIHJlcXVpcmVMb3dlcmNhc2VMZXR0ZXJzOiBhcGlWYWxpZGF0aW9uPy5yZXF1aXJlTG93ZXJjYXNlTGV0dGVycyxcbiAgICByZXF1aXJlVXBwZXJjYXNlTGV0dGVyczogYXBpVmFsaWRhdGlvbj8ucmVxdWlyZVVwcGVyY2FzZUxldHRlcnMsXG4gICAgcmVxdWlyZU51bWJlcnM6IGFwaVZhbGlkYXRpb24/LnJlcXVpcmVOdW1iZXJzLFxuICAgIHJlcXVpcmVTcGVjaWFsQ2hhcmFjdGVyczogYXBpVmFsaWRhdGlvbj8ucmVxdWlyZVNwZWNpYWxDaGFyYWN0ZXJzLFxuICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogYXBpVmFsaWRhdGlvbj8uYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzLFxuICAgIG1pbkRhdGVPcHRpb246IGFwaVZhbGlkYXRpb24/Lm1pbkRhdGVPcHRpb24sXG4gICAgbWluRGF0ZTogYXBpVmFsaWRhdGlvbj8ubWluRGF0ZSxcbiAgICBtYXhEYXRlT3B0aW9uOiBhcGlWYWxpZGF0aW9uPy5tYXhEYXRlT3B0aW9uLFxuICAgIG1heERhdGU6IGFwaVZhbGlkYXRpb24/Lm1heERhdGUsXG4gICAgcmVnaW9uQm91bmRhcnk6IGFwaVZhbGlkYXRpb24/LnJlZ2lvbkJvdW5kYXJ5LFxuICAgIHJlZ2lvbjogYXBpVmFsaWRhdGlvbj8ucmVnaW9uLFxuICAgIHByZXZlbnRGcm9tUHJvY2VlZGluZ1dpdGhvdXRBZ3JlZTpcbiAgICAgIGFwaVZhbGlkYXRpb24/LnByZXZlbnRGcm9tUHJvY2VlZGluZ1dpdGhvdXRBZ3JlZSxcbiAgICBidXR0b25Db2xvdXI6IGFwaVZhbGlkYXRpb24/LmJ1dHRvbkNvbG91cixcbiAgICBtYXhGaWxlU2l6ZTogYXBpVmFsaWRhdGlvbj8ubWF4RmlsZVNpemUsXG4gICAgbWluRmlsZVNpemU6IGFwaVZhbGlkYXRpb24/Lm1pbkZpbGVTaXplLFxuICAgIG1pblNlbGVjdGlvbjogYXBpVmFsaWRhdGlvbj8ubWluU2VsZWN0aW9uLFxuICAgIG1heFNlbGVjdGlvbjogYXBpVmFsaWRhdGlvbj8ubWF4U2VsZWN0aW9uLFxuICAgIGZpbGVUeXBlczogYXBpVmFsaWRhdGlvbj8uZmlsZVR5cGVzLFxuICAgIGZpbGVTaXplOiBhcGlWYWxpZGF0aW9uPy5maWxlU2l6ZSxcbiAgICBmaWxlU2l6ZVVuaXQ6IGFwaVZhbGlkYXRpb24/LmZpbGVTaXplVW5pdCxcbiAgICB0b3RhbEZpbGVTaXplOiBhcGlWYWxpZGF0aW9uPy50b3RhbEZpbGVTaXplLFxuICAgIG1pblNlbGVjdGlvblJlcXVpcmVkOiBhcGlWYWxpZGF0aW9uPy5taW5TZWxlY3Rpb25SZXF1aXJlZCxcbiAgICBtaW5TZWxlY3Rpb25WYWx1ZTogYXBpVmFsaWRhdGlvbj8ubWluU2VsZWN0aW9uVmFsdWUsXG4gICAgdmFsaWRhdGlvblR5cGU6IGFwaVZhbGlkYXRpb24/LnZhbGlkYXRpb25UeXBlLFxuICAgIHZhbGlkYXRpb246IGFwaVZhbGlkYXRpb24/LnZhbGlkYXRpb24sXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEVsZW1lbnRPcHRpb25EQlRvTW9kZWwoYXBpRWxlbWVudE9wdGlvbkRCOiBhbnkpOiBFbGVtZW50T3B0aW9uREIge1xuICByZXR1cm4ge1xuICAgIHRhYmxlTmFtZTogYXBpRWxlbWVudE9wdGlvbkRCLnRhYmxlTmFtZSxcbiAgICB2YWx1ZUZpZWxkOiBhcGlFbGVtZW50T3B0aW9uREIudmFsdWVGaWVsZCxcbiAgICBsYWJlbEZpZWxkOiBhcGlFbGVtZW50T3B0aW9uREIubGFiZWxGaWVsZCxcbiAgICBjcml0ZXJpYTogYXBpRWxlbWVudE9wdGlvbkRCLmNyaXRlcmlhLm1hcCgoYXBpQ3JpdGVyaWE6IGFueSkgPT5cbiAgICAgIG1hcEVsZW1lbnRPcHRpb25EQkNyaXRlcmlhVG9Nb2RlbChhcGlDcml0ZXJpYSlcbiAgICApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBFbGVtZW50T3B0aW9uREJDcml0ZXJpYVRvTW9kZWwoXG4gIGFwaUVsZW1lbnRPcHRpb25EQkNyaXRlcmlhOiBhbnlcbik6IEVsZW1lbnRPcHRpb25EQkNyaXRlcmlhIHtcbiAgcmV0dXJuIHtcbiAgICBmaWVsZDogYXBpRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWEuZmllbGQsXG4gICAgY29uZGl0aW9uOiBhcGlFbGVtZW50T3B0aW9uREJDcml0ZXJpYS5jb25kaXRpb24sXG4gICAgdmFsdWVTb3VyY2U6IGFwaUVsZW1lbnRPcHRpb25EQkNyaXRlcmlhLnZhbHVlU291cmNlLFxuICAgIGlucHV0VmFsdWU6IGFwaUVsZW1lbnRPcHRpb25EQkNyaXRlcmlhLmlucHV0VmFsdWUsXG4gICAgbG9naWNhbE9wZXJhdG9yOiBhcGlFbGVtZW50T3B0aW9uREJDcml0ZXJpYS5sb2dpY2FsT3BlcmF0b3IsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEVsZW1lbnRPcHRpb25BUElUb01vZGVsKFxuICBhcGlFbGVtZW50T3B0aW9uQVBJOiBhbnlcbik6IEVsZW1lbnRPcHRpb25BUEkge1xuICByZXR1cm4ge1xuICAgIGV4dGVybmFsOiBhcGlFbGVtZW50T3B0aW9uQVBJLmV4dGVybmFsLFxuICAgIHVybDogYXBpRWxlbWVudE9wdGlvbkFQSS51cmwsXG4gICAgdmFsdWVGaWVsZDogYXBpRWxlbWVudE9wdGlvbkFQSS52YWx1ZUZpZWxkLFxuICAgIGxhYmVsRmllbGQ6IGFwaUVsZW1lbnRPcHRpb25BUEkubGFiZWxGaWVsZCxcbiAgICBwYXRoVG9WYWx1ZTogYXBpRWxlbWVudE9wdGlvbkFQSS5wYXRoVG9WYWx1ZSxcbiAgICBoZWFkZXJzOiBhcGlFbGVtZW50T3B0aW9uQVBJLmhlYWRlcnM/Lm1hcChtYXBFbGVtZW50T3B0aW9uQVBJRGF0YVRvTW9kZWwpLFxuICAgIHBhcmFtczogYXBpRWxlbWVudE9wdGlvbkFQSS5wYXJhbXM/Lm1hcChtYXBFbGVtZW50T3B0aW9uQVBJRGF0YVRvTW9kZWwpLFxuICAgIHBhdGhWYXJpYWJsZXM6IGFwaUVsZW1lbnRPcHRpb25BUEkucGF0aFZhcmlhYmxlcz8ubWFwKFxuICAgICAgbWFwRWxlbWVudE9wdGlvbkFQSURhdGFUb01vZGVsXG4gICAgKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwRWxlbWVudE9wdGlvbkFQSURhdGFUb01vZGVsKFxuICBhcGlFbGVtZW50T3B0aW9uQVBJRGF0YTogYW55XG4pOiBlbGVtZW50T3B0aW9uQVBJRGF0YSB7XG4gIHJldHVybiB7XG4gICAga2V5TmFtZTogYXBpRWxlbWVudE9wdGlvbkFQSURhdGEua2V5TmFtZSxcbiAgICB2YWx1ZVNvdXJjZTogYXBpRWxlbWVudE9wdGlvbkFQSURhdGEudmFsdWVTb3VyY2UsXG4gICAgaW5wdXRWYWx1ZTogYXBpRWxlbWVudE9wdGlvbkFQSURhdGEuaW5wdXRWYWx1ZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwT3B0aW9uVG9Nb2RlbChhcGlPcHRpb246IGFueSk6IE9wdGlvbiB7XG4gIHJldHVybiB7XG4gICAgb3B0aW9uVHlwZTogYXBpT3B0aW9uPy5vcHRpb25UeXBlLFxuICAgIGxvb2t1cFRhYmxlOiBhcGlPcHRpb24/Lmxvb2t1cFRhYmxlLFxuICAgIGN1c3RvbU9wdGlvbnM6IGFwaU9wdGlvbj8uY3VzdG9tT3B0aW9ucz8ubWFwKChvcHRpb246IHsgdmFsdWU6IGFueSB9KSA9PiAoe1xuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICB9KSksXG4gICAgZGF0YWJhc2U6IGFwaU9wdGlvbj8uZGF0YWJhc2VcbiAgICAgID8gbWFwRWxlbWVudE9wdGlvbkRCVG9Nb2RlbChhcGlPcHRpb24uZGF0YWJhc2UpXG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBhcGk6IGFwaU9wdGlvbj8uYXBpID8gbWFwRWxlbWVudE9wdGlvbkFQSVRvTW9kZWwoYXBpT3B0aW9uLmFwaSkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cblxuIl19
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3NlcnZpY2VzL21hcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNCQSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsYUFBa0I7SUFDckQsT0FBTztRQUNMLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDL0IsaUJBQWlCLEVBQUUsMkJBQTJCLENBQzVDLGFBQWEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQ3ZDO1FBQ0QsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQ3JELGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FDeEI7UUFDRCxlQUFlLEVBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxlQUFlO1FBQ3BELFFBQVEsRUFBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVE7S0FDdkMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUNsQyxvQkFBeUI7SUFFekIsT0FBTztRQUNMLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDLGlCQUFpQjtRQUN6RCxZQUFZLEVBQUUsb0JBQW9CLENBQUMsWUFBWTtRQUMvQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsYUFBYTtRQUNqRCxVQUFVLEVBQUUsb0JBQW9CLENBQUMsVUFBVTtRQUMzQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsUUFBUTtRQUN2QyxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyxnQkFBZ0I7UUFDdkQsV0FBVyxFQUFFLG9CQUFvQixDQUFDLFdBQVc7UUFDN0MsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUMsdUJBQXVCO1FBQ3JFLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDLGlCQUFpQjtRQUN6RCxxQkFBcUIsRUFBRSxvQkFBb0IsQ0FB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QW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQztRQUN2RSxhQUFhLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FDbkQsOEJBQThCLENBQy9CO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDhCQUE4QixDQUNyQyx1QkFBNEI7SUFFNUIsT0FBTztRQUNMLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO1FBQ3hDLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxXQUFXO1FBQ2hELFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxVQUFVO0tBQy9DLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxTQUFjO0lBQ3RDLE9BQU87UUFDTCxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVU7UUFDakMsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXO1FBQ25DLGFBQWEsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQXNCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1NBQ3BCLENBQUMsQ0FBQztRQUNILFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUTtZQUMzQixDQUFDLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUMvQyxDQUFDLENBQUMsU0FBUztRQUNiLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDNUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBlYXJhbmNlIH0gZnJvbSAnLi4vbW9kZWxzL2FwcGVhcmFuY2UubW9kZWwnO1xuaW1wb3J0IHsgRWxlbWVudE9wdGlvbkFQSSB9IGZyb20gJy4uL21vZGVscy9lbGVtZW50T3B0aW9uQVBJLm1vZGVsJztcbmltcG9ydCB7IGVsZW1lbnRPcHRpb25BUElEYXRhIH0gZnJvbSAnLi4vbW9kZWxzL2VsZW1lbnRPcHRpb25BUElEYXRhLm1vZGVsJztcbmltcG9ydCB7IEVsZW1lbnRPcHRpb25EQiB9IGZyb20gJy4uL21vZGVscy9lbGVtZW50T3B0aW9uREIubW9kZWwnO1xuaW1wb3J0IHsgRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWEgfSBmcm9tICcuLi9tb2RlbHMvZWxlbWVudE9wdGlvbkRCQ3JpdGVyaWEubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZm9ybUNvbmZpZ3VyYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybUVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgR3JpZCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICcuLi9tb2RlbHMvcGFnZS5tb2RlbCc7XG5pbXBvcnQgeyBQdWJsaWNGb3JtIH0gZnJvbSAnLi4vbW9kZWxzL3B1YmxpY0Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvcXVlc3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy5tb2RlbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3ZhbGlkYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL29wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3NlY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgU3ViRm9ybSB9IGZyb20gJy4uL21vZGVscy9zdWJGb3JtLm1vZGVsJztcbmltcG9ydCB7IEZvcm1FbGVtZW50VHlwZSB9IGZyb20gJy4uL21vZGVscy9mb3JtRWxlbWVudFR5cGUubW9kZWwnO1xuaW1wb3J0IHsgTG9naWMgfSBmcm9tICcuLi9tb2RlbHMvbG9naWMubW9kZWwnO1xuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJy4uL21vZGVscy9hdHRhY2htZW50Lm1vZGVsJztcbmltcG9ydCB7IFN1Ym1pc3Npb24gfSBmcm9tICcuLi9tb2RlbHMvc3VibWlzc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBBbnN3ZXIgfSBmcm9tICcuLi9tb2RlbHMvYW5zd2VyLm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFB1YmxpY0Zvcm1Ub01vZGVsKGFwaVB1YmxpY0Zvcm06IGFueSk6IFB1YmxpY0Zvcm0ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGFwaVB1YmxpY0Zvcm0ucmVzdWx0Lm5hbWUsXG4gICAgZm9ybUNvbmZpZ3VyYXRpb246IG1hcEZvcm1Db25maWd1cmF0aW9uVG9Nb2RlbChcbiAgICAgIGFwaVB1YmxpY0Zvcm0ucmVzdWx0LmZvcm1Db25maWd1cmF0aW9uXG4gICAgKSxcbiAgICBwYWdlczogYXBpUHVibGljRm9ybS5yZXN1bHQucGFnZXMubWFwKChhcGlQYWdlOiBhbnkpID0+XG4gICAgICBtYXBQYWdlVG9Nb2RlbChhcGlQYWdlKVxuICAgICksXG4gICAgcXVlc3Rpb25BbnN3ZXJzOmFwaVB1YmxpY0Zvcm0ucmVzdWx0LnF1ZXN0aW9uQW5zd2VycyxcbiAgICBwYXJlbnRJZDphcGlQdWJsaWNGb3JtLnJlc3VsdC5wYXJlbnRJZFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBGb3JtQ29uZmlndXJhdGlvblRvTW9kZWwoXG4gIGFwaUZvcm1Db25maWd1cmF0aW9uOiBhbnlcbik6IEZvcm1Db25maWd1cmF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBzYXZlQXV0b21hdGljYWxseTogYXBpRm9ybUNvbmZpZ3VyYXRpb24uc2F2ZUF1dG9tYXRpY2FsbHksXG4gICAgc2F2ZUludGVydmFsOiBhcGlGb3JtQ29uZmlndXJhdGlvbi5zYXZlSW50ZXJ2YWwsXG4gICAgY3VzdG9taXplRm9udDogYXBpRm9ybUNvbmZpZ3VyYXRpb24uY3VzdG9taXplRm9udCxcbiAgICBmb250RmFtaWx5OiBhcGlGb3JtQ29uZmlndXJhdGlvbi5mb250RmFtaWx5LFxuICAgIGZvbnRTaXplOiBhcGlGb3JtQ29uZmlndXJhdGlvbi5mb250U2l6ZSxcbiAgICBlbmFibGVEYXRhRXhwb3J0OiBhcGlGb3JtQ29uZmlndXJhdGlvbi5lbmFibGVEYXRhRXhwb3J0LFxuICAgIGZpbGVGb3JtYXRzOiBhcGlGb3JtQ29uZmlndXJhdGlvbi5maWxlRm9ybWF0cyxcbiAgICBlbmFibGVRdWVzdGlvbk51bWJlcmluZzogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlUXVlc3Rpb25OdW1iZXJpbmcsXG4gICAgcXVlc3Rpb25OdW1iZXJpbmc6IGFwaUZvcm1Db25maWd1cmF0aW9uLnF1ZXN0aW9uTnVtYmVyaW5nLFxuICAgIGVuYWJsZUdvb2dsZVJlY2FwdGNoYTogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZW5hYmxlR29vZ2xlUmVjYXB0Y2hhLFxuICAgIGdvb2dsZVJlY2FwdGNoYUtleTogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZ29vZ2xlUmVjYXB0Y2hhS2V5LFxuICAgIGdvb2dsZVJlY2FwdGNoYVNlY3JldDogYXBpRm9ybUNvbmZpZ3VyYXRpb24uZ29vZ2xlUmVjYXB0Y2hhU2VjcmV0LFxuICAgIG5hdmlnYXRpb246IGFwaUZvcm1Db25maWd1cmF0aW9uLm5hdmlnYXRpb24sXG4gICAgbWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQ6IGFwaUZvcm1Db25maWd1cmF0aW9uLm1hcmtBbGxRdWVzdGlvbnNBc1JlcXVpcmVkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBQYWdlVG9Nb2RlbChhcGlQYWdlOiBhbnkpOiBQYWdlIHtcbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogYXBpUGFnZS50aXRsZSxcbiAgICByb3dzOiBhcGlQYWdlLnJvd3MubWFwKChhcGlSb3c6IGFueSkgPT4gbWFwUm93VG9Nb2RlbChhcGlSb3cpKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwUm93VG9Nb2RlbChhcGlSb3c6IGFueSk6IFJvdyB7XG4gIHJldHVybiB7XG4gICAgZ3JpZDogYXBpUm93LmdyaWQubWFwKChhcGlHcmlkOiBhbnkpID0+IG1hcEdyaWRUb01vZGVsKGFwaUdyaWQpKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwR3JpZFRvTW9kZWwoYXBpR3JpZDogYW55KTogR3JpZCB7XG4gIGxldCBlbnRpdHk6IFNlY3Rpb24gfCBRdWVzdGlvbiB8IFN1YkZvcm0gfCB1bmRlZmluZWQ7XG5cbiAgc3dpdGNoIChhcGlHcmlkLmVudGl0eVR5cGUpIHtcbiAgICBjYXNlICdRVUVTVElPTic6XG4gICAgICBlbnRpdHkgPSBtYXBRdWVzdGlvblRvTW9kZWwoYXBpR3JpZC5lbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1NFQ1RJT04nOlxuICAgICAgZW50aXR5ID0gbWFwU2VjdGlvblRvTW9kZWwoYXBpR3JpZC5lbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1NVQkZPUk0nOlxuICAgICAgZW50aXR5ID0gbWFwU3ViRm9ybVRvTW9kZWwoYXBpR3JpZC5lbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZW50aXR5IHR5cGU6ICR7YXBpR3JpZC5lbnRpdHlUeXBlfWApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbnRpdHlUeXBlOiBhcGlHcmlkLmVudGl0eVR5cGUsXG4gICAgZWxlbWVudDogZW50aXR5LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwU2VjdGlvblRvTW9kZWwoYXBpU2VjdGlvbjogYW55KTogU2VjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGFwaVNlY3Rpb24uaWQsXG4gICAgdGl0bGU6IGFwaVNlY3Rpb24udGl0bGUsXG4gICAgZGVzY3JpcHRpb246IGFwaVNlY3Rpb24uZGVzY3JpcHRpb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBRdWVzdGlvblRvTW9kZWwoYXBpUXVlc3Rpb246IGFueSk6IFF1ZXN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBjb3VudDogYXBpUXVlc3Rpb24uY291bnQsXG4gICAgaWQ6IGFwaVF1ZXN0aW9uLmlkLFxuICAgIHF1ZXN0aW9uTnVtYmVyOiBhcGlRdWVzdGlvbi5xdWVzdGlvbk51bWJlcixcbiAgICByZXF1aXJlZDogYXBpUXVlc3Rpb24ucmVxdWlyZWQsXG4gICAgaGludDogYXBpUXVlc3Rpb24uaGludCxcbiAgICBxdWVzdGlvbjogYXBpUXVlc3Rpb24ucXVlc3Rpb24sXG4gICAgYW5zd2VyOiBhcGlRdWVzdGlvbj8uYW5zd2VyLFxuICAgIHZhbGlkYXRpb246IHRydWUsXG4gICAgZm9ybUVsZW1lbnQ6IG1hcEZvcm1FbGVtZW50VG9Nb2RlbChhcGlRdWVzdGlvbi5mb3JtRWxlbWVudCksXG4gICAgY2hpbGRMb2dpY3M6IGFwaVF1ZXN0aW9uPy5jaGlsZExvZ2ljcz8ubWFwKChsb2dpYzogYW55KSA9PlxuICAgICAgbWFwTG9naWNUb01vZGVsKGxvZ2ljKVxuICAgICksXG4gICAgYW5zd2VySWQ6IGFwaVF1ZXN0aW9uPy5hbnN3ZXJJZCxcbiAgICBhdHRhY2htZW50czogYXBpUXVlc3Rpb24/LmF0dGFjaG1lbnRzPy5tYXAoKGF0dGFjaG1lbnQ6IGFueSkgPT4gbWFwQXR0YWNobWVudFRvTW9kZWwoYXR0YWNobWVudCkpIHx8IFtdLFxuICAgIGRlbGV0ZUZpbGVzOiBbXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwQXR0YWNobWVudFRvTW9kZWwoYXBpQXR0YWNobWVudDogYW55KTogQXR0YWNobWVudCB7XG4gIHJldHVybiB7XG4gICAgZmlsZUlkOiBhcGlBdHRhY2htZW50LmZpbGVJZCxcbiAgICBmaWxlTmFtZTogYXBpQXR0YWNobWVudC5maWxlTmFtZSxcbiAgICBmaWxlVXJsOiBhcGlBdHRhY2htZW50LmZpbGVVcmwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEZvcm1FbGVtZW50VG9Nb2RlbChhcGlGb3JtRWxlbWVudDogYW55KTogRm9ybUVsZW1lbnQge1xuICByZXR1cm4ge1xuICAgIGVsZW1lbnRUeXBlOiBhcGlGb3JtRWxlbWVudC5lbGVtZW50VHlwZSxcbiAgICBhcHBlYXJhbmNlOiBtYXBBcHBlYXJhbmNlVG9Nb2RlbChhcGlGb3JtRWxlbWVudC5hcHBlYXJhbmNlKSxcbiAgICB2YWxpZGF0aW9uOiBtYXBWYWxpZGF0aW9uVG9Nb2RlbChhcGlGb3JtRWxlbWVudC52YWxpZGF0aW9uKSxcbiAgICBvcHRpb246IG1hcE9wdGlvblRvTW9kZWwoYXBpRm9ybUVsZW1lbnQ/Lm9wdGlvbiksXG4gICAgc2VsZWN0aW9uTWF0cml4TGFiZWw6IGFwaUZvcm1FbGVtZW50LnNlbGVjdGlvbk1hdHJpeExhYmVsLFxuICAgIHNlbGVjdGlvbk1hdHJpeENvbHVtbjogYXBpRm9ybUVsZW1lbnQuc2VsZWN0aW9uTWF0cml4Q29sdW1uLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBMb2dpY1RvTW9kZWwoYXBpTG9naWM6IGFueSk6IExvZ2ljIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogYXBpTG9naWMuaWQsXG4gICAgaW5wdXRWYWx1ZTogYXBpTG9naWMuaW5wdXRWYWx1ZSxcbiAgICBjb25kaXRpb246IGFwaUxvZ2ljLmNvbmRpdGlvbixcbiAgICBzaG93TG9naWM6IGZhbHNlLFxuICAgIGZvcm1FbGVtZW50czogYXBpTG9naWM/LmZvcm1FbGVtZW50cz8ubWFwKChlbGVtZW50OiBhbnkpID0+XG4gICAgICBtYXBGb3JtRWxlbWVudFR5cGVUb01vZGVsKGVsZW1lbnQpXG4gICAgKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFN1YkZvcm1Ub01vZGVsKGFwaVN1YkZvcm06IGFueSk6IFN1YkZvcm0ge1xuICByZXR1cm4ge1xuICAgIGlkOiBhcGlTdWJGb3JtLmlkLFxuICAgIGNvdW50OiBhcGlTdWJGb3JtLmNvdW50LFxuICAgIHRpdGxlOiBhcGlTdWJGb3JtLnRpdGxlLFxuICAgIGRlc2NyaXB0aW9uOiBhcGlTdWJGb3JtLmRlc2NyaXB0aW9uLFxuICAgIHN1YkZvcm1TdHJ1Y3R1cmU6IGFwaVN1YkZvcm0uc3ViRm9ybVN0cnVjdHVyZSxcbiAgICBmb3JtRWxlbWVudHM6IGFwaVN1YkZvcm0uZm9ybUVsZW1lbnRzLm1hcCgoZWxlbWVudDogYW55KSA9PiBtYXBGb3JtRWxlbWVudFR5cGVUb01vZGVsKGVsZW1lbnQpKSxcbiAgICBzdWJtaXNzaW9uczogYXBpU3ViRm9ybT8uc3VibWlzc2lvbnM/Lm1hcCgoc3VibWlzc2lvbjogYW55KSA9PiBtYXBTdWJtaXNzaW9uVG9Nb2RlbChzdWJtaXNzaW9uKSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcFN1Ym1pc3Npb25Ub01vZGVsKGFwaVN1Ym1pc3Npb246IGFueSk6IFN1Ym1pc3Npb24ge1xuICByZXR1cm4ge1xuICAgIHN1Ym1pc3Npb25JZDogYXBpU3VibWlzc2lvbi5zdWJtaXNzaW9uSWQsXG4gICAgYW5zd2VyczogYXBpU3VibWlzc2lvbj8uYW5zd2Vycz8ubWFwKChhbnN3ZXI6IGFueSkgPT4gbWFwQW5zd2VyVG9Nb2RlbChhbnN3ZXIpKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwQW5zd2VyVG9Nb2RlbChhcGlBbnN3ZXI6IGFueSk6IEFuc3dlciB7XG4gIHJldHVybiB7XG4gICAgcXVlc3Rpb25JZDogYXBpQW5zd2VyLnF1ZXN0aW9uSWQsXG4gICAgYW5zd2VyOiBhcGlBbnN3ZXI/LmFuc3dlcixcbiAgICBhbnN3ZXJJZDogYXBpQW5zd2VyPy5hbnN3ZXJJZCxcbiAgICBhdHRhY2htZW50czogYXBpQW5zd2VyPy5hdHRhY2htZW50cz8ubWFwKChhdHRhY2htZW50OiBhbnkpID0+IG1hcEF0dGFjaG1lbnRUb01vZGVsKGF0dGFjaG1lbnQpKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEZvcm1FbGVtZW50VHlwZVRvTW9kZWwoXG4gIGFwaUZvcm1FbGVtZW50VHlwZTogYW55XG4pOiBGb3JtRWxlbWVudFR5cGU8YW55PiB7XG4gIHJldHVybiB7XG4gICAgZW50aXR5VHlwZTogYXBpRm9ybUVsZW1lbnRUeXBlLmVudGl0eVR5cGUsXG4gICAgZWxlbWVudDogYXBpRm9ybUVsZW1lbnRUeXBlLmVsZW1lbnQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEFwcGVhcmFuY2VUb01vZGVsKGFwaUFwcGVhcmFuY2U6IGFueSk6IEFwcGVhcmFuY2Uge1xuICByZXR1cm4ge1xuICAgIHBsYWNlaG9sZGVyOiBhcGlBcHBlYXJhbmNlPy5wbGFjZWhvbGRlcixcbiAgICBmb250U2l6ZTogYXBpQXBwZWFyYW5jZT8uZm9udFNpemUsXG4gICAgdGV4dEFsaWduOiBhcGlBcHBlYXJhbmNlPy50ZXh0QWxpZ24sXG4gICAgZm9udDogYXBpQXBwZWFyYW5jZT8uZm9udCxcbiAgICB1bmRlcmxpbmU6IGFwaUFwcGVhcmFuY2U/LnVuZGVybGluZSxcbiAgICBib2xkOiBhcGlBcHBlYXJhbmNlPy5ib2xkLFxuICAgIGl0YWxpY3M6IGFwaUFwcGVhcmFuY2U/Lml0YWxpY3MsXG4gICAgZGVmYXVsdFZhbHVlOiBhcGlBcHBlYXJhbmNlPy5kZWZhdWx0VmFsdWUsXG4gICAgbnVtYmVyT2ZSb3dzOiBhcGlBcHBlYXJhbmNlPy5udW1iZXJPZlJvd3MsXG4gICAgc2luZ2xlU2VsZWN0aW9uOiBhcGlBcHBlYXJhbmNlPy5zaW5nbGVTZWxlY3Rpb24sXG4gICAgZGlzcGxheUNvdW50cnlDb2RlOiBhcGlBcHBlYXJhbmNlPy5kaXNwbGF5Q291bnRyeUNvZGUsXG4gICAgZGlzcGxheUZsYWc6IGFwaUFwcGVhcmFuY2U/LmRpc3BsYXlGbGFnLFxuICAgIGRpc3BsYXlDb2RlOiBhcGlBcHBlYXJhbmNlPy5kaXNwbGF5Q29kZSxcbiAgICBzaG93Q291bnRyeU5hbWU6IGFwaUFwcGVhcmFuY2U/LnNob3dDb3VudHJ5TmFtZSxcbiAgICBiZWF1dGlmeU51bWJlcnM6IGFwaUFwcGVhcmFuY2U/LmJlYXV0aWZ5TnVtYmVycyxcbiAgICB1cEFuZERvd25CdXR0b246IGFwaUFwcGVhcmFuY2U/LnVwQW5kRG93bkJ1dHRvbixcbiAgICBhbGxvd05lZ2F0aXZlVmFsdWVzOiBhcGlBcHBlYXJhbmNlPy5hbGxvd05lZ2F0aXZlVmFsdWVzLFxuICAgIHNob3dQcmV2aWV3QnV0dG9uOiBhcGlBcHBlYXJhbmNlPy5zaG93UHJldmlld0J1dHRvbixcbiAgICBjb25maXJtUGFzc3dvcmQ6IGFwaUFwcGVhcmFuY2U/LmNvbmZpcm1QYXNzd29yZCxcbiAgICB2aWV3QnV0dG9uOiBhcGlBcHBlYXJhbmNlPy52aWV3QnV0dG9uLFxuICAgIGRpc3BsYXlTdHJvbmc6IGFwaUFwcGVhcmFuY2U/LmRpc3BsYXlTdHJvbmcsXG4gICAgZGF0ZVR5cGU6IGFwaUFwcGVhcmFuY2U/LmRhdGVUeXBlLFxuICAgIGZvcm1hdDogYXBpQXBwZWFyYW5jZT8uZm9ybWF0LFxuICAgIHNldEN1cnJlbnRQb3NpdGlvbjogYXBpQXBwZWFyYW5jZT8uc2V0Q3VycmVudFBvc2l0aW9uLFxuICAgIGRlZmF1bHRab29tTGV2ZWw6IGFwaUFwcGVhcmFuY2U/LmRlZmF1bHRab29tTGV2ZWwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBhcGlBcHBlYXJhbmNlPy5hbGxvd0Z1bGxTY3JlZW4sXG4gICAgbGF0aXR1ZGU6IGFwaUFwcGVhcmFuY2U/LmxhdGl0dWRlLFxuICAgIGxvbmdpdHVkZTogYXBpQXBwZWFyYW5jZT8ubG9uZ2l0dWRlLFxuICAgIHNob3dBY2NlcHRCdXR0b246IGFwaUFwcGVhcmFuY2U/LnNob3dBY2NlcHRCdXR0b24sXG4gICAgbGFiZWxPblZhbHVlOiBhcGlBcHBlYXJhbmNlPy5sYWJlbE9uVmFsdWUsXG4gICAgbGFiZWxPZmZWYWx1ZTogYXBpQXBwZWFyYW5jZT8ubGFiZWxPZmZWYWx1ZSxcbiAgICBsYWJlbE9uQ29sb3I6IGFwaUFwcGVhcmFuY2U/LmxhYmVsT25Db2xvcixcbiAgICBsYWJlbE9mZkNvbG9yOiBhcGlBcHBlYXJhbmNlPy5sYWJlbE9mZkNvbG9yLFxuICAgIG1pblZhbHVlOiBhcGlBcHBlYXJhbmNlPy5taW5WYWx1ZSxcbiAgICBtYXhWYWx1ZTogYXBpQXBwZWFyYW5jZT8ubWF4VmFsdWUsXG4gICAgc3RlcFZhbHVlOiBhcGlBcHBlYXJhbmNlPy5zdGVwVmFsdWUsXG4gICAgY2hhbmdlU2xpZGVyQ29sb3I6IGFwaUFwcGVhcmFuY2U/LmNoYW5nZVNsaWRlckNvbG9yLFxuICAgIHNsaWRlckNvbG9yOiBhcGlBcHBlYXJhbmNlPy5zbGlkZXJDb2xvcixcbiAgICBjYW52YXNPcHRpb246IGFwaUFwcGVhcmFuY2U/LmNhbnZhc09wdGlvbixcbiAgICBzZWxlY3Rpb25UeXBlOiBhcGlBcHBlYXJhbmNlPy5zZWxlY3Rpb25UeXBlLFxuICAgIGRyYWdBbmREcm9wOiBhcGlBcHBlYXJhbmNlPy5kcmFnQW5kRHJvcCxcbiAgICBwcmV2aWV3VXBsb2FkZWRGaWxlczogYXBpQXBwZWFyYW5jZT8ucHJldmlld1VwbG9hZGVkRmlsZXMsXG4gICAgbXVsdGlGaWxlVXBsb2FkczogYXBpQXBwZWFyYW5jZT8ubXVsdGlGaWxlVXBsb2FkcyxcbiAgICBzZWxlY3Rpb25Db2xvclJlcXVpcmVkOiBhcGlBcHBlYXJhbmNlPy5zZWxlY3Rpb25Db2xvclJlcXVpcmVkLFxuICAgIHNlbGVjdGlvbkNvbG9yOiBhcGlBcHBlYXJhbmNlPy5zZWxlY3Rpb25Db2xvcixcbiAgICBjb2xvcjogYXBpQXBwZWFyYW5jZT8uY29sb3IsXG4gICAgYXZhdGFyUGlja2VyOmFwaUFwcGVhcmFuY2U/LmF2YXRhclBpY2tlclxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBWYWxpZGF0aW9uVG9Nb2RlbChhcGlWYWxpZGF0aW9uOiBhbnkpOiBWYWxpZGF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICByZWdleFZhbGlkYXRpb246IGFwaVZhbGlkYXRpb24/LnJlZ2V4VmFsaWRhdGlvbixcbiAgICByZWdleDogYXBpVmFsaWRhdGlvbj8ucmVnZXgsXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IGFwaVZhbGlkYXRpb24/LnZhbGlkYXRpb25NZXNzYWdlLFxuICAgIGxpbWl0ZWRDaGFyYWN0ZXJzOiBhcGlWYWxpZGF0aW9uPy5saW1pdGVkQ2hhcmFjdGVycyxcbiAgICBjb3VudDogYXBpVmFsaWRhdGlvbj8uY291bnQsXG4gICAgbWluaW11bVNlbGVjdGlvbjogYXBpVmFsaWRhdGlvbj8ubWluaW11bVNlbGVjdGlvbixcbiAgICBtYXhpbXVtU2VsZWN0aW9uOiBhcGlWYWxpZGF0aW9uPy5tYXhpbXVtU2VsZWN0aW9uLFxuICAgIGNvdW50cnlXaXNlVmFsaWRhdGlvbjogYXBpVmFsaWRhdGlvbj8uY291bnRyeVdpc2VWYWxpZGF0aW9uLFxuICAgIHJlc3RyaWN0Q291bnRyeTogYXBpVmFsaWRhdGlvbj8ucmVzdHJpY3RDb3VudHJ5LFxuICAgIGFsbG93ZWRDb3VudHJpZXM6IGFwaVZhbGlkYXRpb24/LmFsbG93ZWRDb3VudHJpZXMsXG4gICAgYmxvY2tlZENvdW50cmllczogYXBpVmFsaWRhdGlvbj8uYmxvY2tlZENvdW50cmllcyxcbiAgICByZWd1bGFyRXhwcmVzc2lvbjogYXBpVmFsaWRhdGlvbj8ucmVndWxhckV4cHJlc3Npb24sXG4gICAgZXhwZWN0ZWREb21haW5zOiBhcGlWYWxpZGF0aW9uPy5leHBlY3RlZERvbWFpbnMsXG4gICAgbWluOiBhcGlWYWxpZGF0aW9uPy5taW4sXG4gICAgbWF4OiBhcGlWYWxpZGF0aW9uPy5tYXgsXG4gICAgbWluTGVuZ3RoOiBhcGlWYWxpZGF0aW9uPy5taW5MZW5ndGgsXG4gICAgbWF4TGVuZ3RoOiBhcGlWYWxpZGF0aW9uPy5tYXhMZW5ndGgsXG4gICAgcmVxdWlyZUxvd2VyY2FzZUxldHRlcnM6IGFwaVZhbGlkYXRpb24/LnJlcXVpcmVMb3dlcmNhc2VMZXR0ZXJzLFxuICAgIHJlcXVpcmVVcHBlcmNhc2VMZXR0ZXJzOiBhcGlWYWxpZGF0aW9uPy5yZXF1aXJlVXBwZXJjYXNlTGV0dGVycyxcbiAgICByZXF1aXJlTnVtYmVyczogYXBpVmFsaWRhdGlvbj8ucmVxdWlyZU51bWJlcnMsXG4gICAgcmVxdWlyZVNwZWNpYWxDaGFyYWN0ZXJzOiBhcGlWYWxpZGF0aW9uPy5yZXF1aXJlU3BlY2lhbENoYXJhY3RlcnMsXG4gICAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiBhcGlWYWxpZGF0aW9uPy5hbGxvd2VkU3BlY2lhbENoYXJhY3RlcnMsXG4gICAgbWluRGF0ZU9wdGlvbjogYXBpVmFsaWRhdGlvbj8ubWluRGF0ZU9wdGlvbixcbiAgICBtaW5EYXRlOiBhcGlWYWxpZGF0aW9uPy5taW5EYXRlLFxuICAgIG1heERhdGVPcHRpb246IGFwaVZhbGlkYXRpb24/Lm1heERhdGVPcHRpb24sXG4gICAgbWF4RGF0ZTogYXBpVmFsaWRhdGlvbj8ubWF4RGF0ZSxcbiAgICByZWdpb25Cb3VuZGFyeTogYXBpVmFsaWRhdGlvbj8ucmVnaW9uQm91bmRhcnksXG4gICAgcmVnaW9uOiBhcGlWYWxpZGF0aW9uPy5yZWdpb24sXG4gICAgcHJldmVudEZyb21Qcm9jZWVkaW5nV2l0aG91dEFncmVlOlxuICAgICAgYXBpVmFsaWRhdGlvbj8ucHJldmVudEZyb21Qcm9jZWVkaW5nV2l0aG91dEFncmVlLFxuICAgIGJ1dHRvbkNvbG91cjogYXBpVmFsaWRhdGlvbj8uYnV0dG9uQ29sb3VyLFxuICAgIG1heEZpbGVTaXplOiBhcGlWYWxpZGF0aW9uPy5tYXhGaWxlU2l6ZSxcbiAgICBtaW5GaWxlU2l6ZTogYXBpVmFsaWRhdGlvbj8ubWluRmlsZVNpemUsXG4gICAgbWluU2VsZWN0aW9uOiBhcGlWYWxpZGF0aW9uPy5taW5TZWxlY3Rpb24sXG4gICAgbWF4U2VsZWN0aW9uOiBhcGlWYWxpZGF0aW9uPy5tYXhTZWxlY3Rpb24sXG4gICAgZmlsZVR5cGVzOiBhcGlWYWxpZGF0aW9uPy5maWxlVHlwZXMsXG4gICAgZmlsZVNpemU6IGFwaVZhbGlkYXRpb24/LmZpbGVTaXplLFxuICAgIGZpbGVTaXplVW5pdDogYXBpVmFsaWRhdGlvbj8uZmlsZVNpemVVbml0LFxuICAgIHRvdGFsRmlsZVNpemU6IGFwaVZhbGlkYXRpb24/LnRvdGFsRmlsZVNpemUsXG4gICAgbWluU2VsZWN0aW9uUmVxdWlyZWQ6IGFwaVZhbGlkYXRpb24/Lm1pblNlbGVjdGlvblJlcXVpcmVkLFxuICAgIG1pblNlbGVjdGlvblZhbHVlOiBhcGlWYWxpZGF0aW9uPy5taW5TZWxlY3Rpb25WYWx1ZSxcbiAgICB2YWxpZGF0aW9uVHlwZTogYXBpVmFsaWRhdGlvbj8udmFsaWRhdGlvblR5cGUsXG4gICAgdmFsaWRhdGlvbjogYXBpVmFsaWRhdGlvbj8udmFsaWRhdGlvbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwRWxlbWVudE9wdGlvbkRCVG9Nb2RlbChhcGlFbGVtZW50T3B0aW9uREI6IGFueSk6IEVsZW1lbnRPcHRpb25EQiB7XG4gIHJldHVybiB7XG4gICAgdGFibGVOYW1lOiBhcGlFbGVtZW50T3B0aW9uREIudGFibGVOYW1lLFxuICAgIHZhbHVlRmllbGQ6IGFwaUVsZW1lbnRPcHRpb25EQi52YWx1ZUZpZWxkLFxuICAgIGxhYmVsRmllbGQ6IGFwaUVsZW1lbnRPcHRpb25EQi5sYWJlbEZpZWxkLFxuICAgIGNyaXRlcmlhOiBhcGlFbGVtZW50T3B0aW9uREIuY3JpdGVyaWEubWFwKChhcGlDcml0ZXJpYTogYW55KSA9PlxuICAgICAgbWFwRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWFUb01vZGVsKGFwaUNyaXRlcmlhKVxuICAgICksXG4gIH07XG59XG5cbmZ1bmN0aW9uIG1hcEVsZW1lbnRPcHRpb25EQkNyaXRlcmlhVG9Nb2RlbChcbiAgYXBpRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWE6IGFueVxuKTogRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWEge1xuICByZXR1cm4ge1xuICAgIGZpZWxkOiBhcGlFbGVtZW50T3B0aW9uREJDcml0ZXJpYS5maWVsZCxcbiAgICBjb25kaXRpb246IGFwaUVsZW1lbnRPcHRpb25EQkNyaXRlcmlhLmNvbmRpdGlvbixcbiAgICB2YWx1ZVNvdXJjZTogYXBpRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWEudmFsdWVTb3VyY2UsXG4gICAgaW5wdXRWYWx1ZTogYXBpRWxlbWVudE9wdGlvbkRCQ3JpdGVyaWEuaW5wdXRWYWx1ZSxcbiAgICBsb2dpY2FsT3BlcmF0b3I6IGFwaUVsZW1lbnRPcHRpb25EQkNyaXRlcmlhLmxvZ2ljYWxPcGVyYXRvcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWFwRWxlbWVudE9wdGlvbkFQSVRvTW9kZWwoXG4gIGFwaUVsZW1lbnRPcHRpb25BUEk6IGFueVxuKTogRWxlbWVudE9wdGlvbkFQSSB7XG4gIHJldHVybiB7XG4gICAgZXh0ZXJuYWw6IGFwaUVsZW1lbnRPcHRpb25BUEkuZXh0ZXJuYWwsXG4gICAgdXJsOiBhcGlFbGVtZW50T3B0aW9uQVBJLnVybCxcbiAgICB2YWx1ZUZpZWxkOiBhcGlFbGVtZW50T3B0aW9uQVBJLnZhbHVlRmllbGQsXG4gICAgbGFiZWxGaWVsZDogYXBpRWxlbWVudE9wdGlvbkFQSS5sYWJlbEZpZWxkLFxuICAgIHBhdGhUb1ZhbHVlOiBhcGlFbGVtZW50T3B0aW9uQVBJLnBhdGhUb1ZhbHVlLFxuICAgIGhlYWRlcnM6IGFwaUVsZW1lbnRPcHRpb25BUEkuaGVhZGVycz8ubWFwKG1hcEVsZW1lbnRPcHRpb25BUElEYXRhVG9Nb2RlbCksXG4gICAgcGFyYW1zOiBhcGlFbGVtZW50T3B0aW9uQVBJLnBhcmFtcz8ubWFwKG1hcEVsZW1lbnRPcHRpb25BUElEYXRhVG9Nb2RlbCksXG4gICAgcGF0aFZhcmlhYmxlczogYXBpRWxlbWVudE9wdGlvbkFQSS5wYXRoVmFyaWFibGVzPy5tYXAoXG4gICAgICBtYXBFbGVtZW50T3B0aW9uQVBJRGF0YVRvTW9kZWxcbiAgICApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBFbGVtZW50T3B0aW9uQVBJRGF0YVRvTW9kZWwoXG4gIGFwaUVsZW1lbnRPcHRpb25BUElEYXRhOiBhbnlcbik6IGVsZW1lbnRPcHRpb25BUElEYXRhIHtcbiAgcmV0dXJuIHtcbiAgICBrZXlOYW1lOiBhcGlFbGVtZW50T3B0aW9uQVBJRGF0YS5rZXlOYW1lLFxuICAgIHZhbHVlU291cmNlOiBhcGlFbGVtZW50T3B0aW9uQVBJRGF0YS52YWx1ZVNvdXJjZSxcbiAgICBpbnB1dFZhbHVlOiBhcGlFbGVtZW50T3B0aW9uQVBJRGF0YS5pbnB1dFZhbHVlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYXBPcHRpb25Ub01vZGVsKGFwaU9wdGlvbjogYW55KTogT3B0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBvcHRpb25UeXBlOiBhcGlPcHRpb24/Lm9wdGlvblR5cGUsXG4gICAgbG9va3VwVGFibGU6IGFwaU9wdGlvbj8ubG9va3VwVGFibGUsXG4gICAgY3VzdG9tT3B0aW9uczogYXBpT3B0aW9uPy5jdXN0b21PcHRpb25zPy5tYXAoKG9wdGlvbjogeyB2YWx1ZTogYW55IH0pID0+ICh7XG4gICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgIH0pKSxcbiAgICBkYXRhYmFzZTogYXBpT3B0aW9uPy5kYXRhYmFzZVxuICAgICAgPyBtYXBFbGVtZW50T3B0aW9uREJUb01vZGVsKGFwaU9wdGlvbi5kYXRhYmFzZSlcbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGFwaTogYXBpT3B0aW9uPy5hcGkgPyBtYXBFbGVtZW50T3B0aW9uQVBJVG9Nb2RlbChhcGlPcHRpb24uYXBpKSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuXG4iXX0=
|
|
@@ -73,7 +73,8 @@ function mapPublicFormToModel(apiPublicForm) {
|
|
|
73
73
|
name: apiPublicForm.result.name,
|
|
74
74
|
formConfiguration: mapFormConfigurationToModel(apiPublicForm.result.formConfiguration),
|
|
75
75
|
pages: apiPublicForm.result.pages.map((apiPage) => mapPageToModel(apiPage)),
|
|
76
|
-
questionAnswers: apiPublicForm.result.questionAnswers
|
|
76
|
+
questionAnswers: apiPublicForm.result.questionAnswers,
|
|
77
|
+
parentId: apiPublicForm.result.parentId
|
|
77
78
|
};
|
|
78
79
|
}
|
|
79
80
|
function mapFormConfigurationToModel(apiFormConfiguration) {
|
|
@@ -2985,9 +2986,6 @@ class SubmissionContainerComponent {
|
|
|
2985
2986
|
isImageUrl(url) {
|
|
2986
2987
|
return url.match(/\.(jpeg|jpg|gif|png)$/) != null;
|
|
2987
2988
|
}
|
|
2988
|
-
ngOnInit() {
|
|
2989
|
-
console.log('sadas', this.parentQuestionAnswers);
|
|
2990
|
-
}
|
|
2991
2989
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmissionContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2992
2990
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmissionContainerComponent, selector: "lib-submission-container", inputs: { parentQuestionAnswers: "parentQuestionAnswers" }, ngImport: i0, template: "<div class=\"subModule\">\n <div class=\"submission-container\">\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\n <div class=\"key\">{{ qa.question }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\n </ng-container>\n <ng-template #fileLink>\n <p>{{ attachment.fileName }}</p>\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\n <i class=\"bi bi-file-earmark\"></i>\n </a>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #text>\n <ng-container [ngSwitch]=\"qa.elementType\">\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchDefault>{{ qa.values }}</p>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n </div>", styles: [".subModule{width:100%;position:relative;padding-left:3rem;padding-right:3rem;padding-top:4rem}@media (max-width: 1024px){.subModule{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.subModule{padding:2rem .5rem}}.submission-container{background:#fff;display:flex;flex-wrap:wrap;box-shadow:0 4px 4px #00000040;border-radius:6px}.submission-item{flex:1 0 15%;margin:5px;padding:10px;border-radius:4px;display:flex;flex-direction:column}.key{font-weight:700;margin-bottom:5px}.value{word-break:break-word}.image{max-width:100%;height:auto;max-height:100px;margin-top:5px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px}.files{display:flex;flex-direction:row}.fileName{text-decoration:none;margin-left:2%}.fileName i{font-size:20px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
|
|
2993
2991
|
}
|
|
@@ -3033,6 +3031,7 @@ class SubmitFormComponent {
|
|
|
3033
3031
|
this.questionAnswers = { parentId: '', answers: [], forms: [] };
|
|
3034
3032
|
this.files = [];
|
|
3035
3033
|
this.submission = {};
|
|
3034
|
+
this.parentSubmissionId = '';
|
|
3036
3035
|
this.updateSubForm = (pages, updatedSubForm) => {
|
|
3037
3036
|
pages.forEach((page) => {
|
|
3038
3037
|
page.rows.forEach((row) => {
|
|
@@ -3061,6 +3060,7 @@ class SubmitFormComponent {
|
|
|
3061
3060
|
};
|
|
3062
3061
|
const navigation = this.router.getCurrentNavigation();
|
|
3063
3062
|
this.submission = navigation?.extras.state?.['submission'];
|
|
3063
|
+
this.parentSubmissionId = this.submission?.id;
|
|
3064
3064
|
this.parentQuestionAnswers = this.submission?.questionAnswers;
|
|
3065
3065
|
this.parentQuestions = navigation?.extras.state?.['parentQuestions'];
|
|
3066
3066
|
this.dataService.setParentQuestions(this.parentQuestions);
|
|
@@ -3090,9 +3090,8 @@ class SubmitFormComponent {
|
|
|
3090
3090
|
assignQuestionProperties(question) {
|
|
3091
3091
|
this.name = question.name;
|
|
3092
3092
|
this.pages = question.pages;
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
}
|
|
3093
|
+
this.parentQuestionAnswers = question?.questionAnswers;
|
|
3094
|
+
this.parentSubmissionId = question?.parentId;
|
|
3096
3095
|
this.currentPage = this.pages[0];
|
|
3097
3096
|
this.nextPage = this.pages[1];
|
|
3098
3097
|
this.saveAutomatically = question.formConfiguration.saveAutomatically;
|
|
@@ -3294,9 +3293,7 @@ class SubmitFormComponent {
|
|
|
3294
3293
|
this.generateQuestionAnswers();
|
|
3295
3294
|
if (validationResponse.isValid) {
|
|
3296
3295
|
const formData = new FormData();
|
|
3297
|
-
|
|
3298
|
-
this.questionAnswers.parentId = this.submission.id;
|
|
3299
|
-
}
|
|
3296
|
+
this.questionAnswers.parentId = this.parentSubmissionId;
|
|
3300
3297
|
formData.append('json', JSON.stringify(this.questionAnswers));
|
|
3301
3298
|
if (this.files.length > 0) {
|
|
3302
3299
|
this.files.forEach((fileItem) => {
|