kwikid-forms 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,7 +57,7 @@ export class KwikIDFormsListComponent {
57
57
  }
58
58
  }
59
59
  /** @nocollapse */ KwikIDFormsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
- /** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}#sidebar-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}#sidebar{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch}.uf-section-item{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;padding:1rem;grid-gap:1rem;gap:1rem;cursor:pointer;box-shadow:0 .1rem .5rem -.25rem gray;border-radius:.5rem;background-color:var(--tui-base-02)}.uf-section-item:hover{box-shadow:0 .2rem .75rem -.5rem #656565}#submit-sidebar-btn-container{width:100%;bottom:0px;z-index:1;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}#submit-sidebar-btn-container *{flex-grow:1}#uf-sections-container{display:flex;flex-direction:column;height:100%;grid-row-gap:20px;row-gap:20px;padding:1rem;overflow-y:auto}.uf-form-section-card{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:10px;column-gap:10px;border:none;border-radius:8px;background-color:#e9e9e9;height:-moz-fit-content;height:fit-content;min-height:60px;padding:10px 15px;width:100%;max-width:350px;margin:0 auto}.uf-section-item.locked{-webkit-user-select:none;user-select:none;cursor:not-allowed}.uf-form-section-card .uf-form-section-card-title{font-size:1.2em;text-align:left;line-height:1.25em}.uf-form-section-card .uf-form-section-card-action{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.uf-form-section-card .uf-form-section-card-action .uf-form-section-card-action-img{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;border-radius:100%;color:#fff;font-weight:bold}.uf-form-section-card-action-img.completed{background-color:#228b22;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.edit{background-color:#dc143c;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.locked{background-color:gray;padding:.25rem;border-radius:50%;color:#fff}#uf-progress{display:flex;padding:1rem;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;grid-gap:.5rem;gap:.5rem}#uf-progress-steps{font-size:1em;text-align:right;color:#3d3d3d}.uf-form-section-card-title{font-size:1em;font-weight:bold;color:#121212}@media screen and (max-width: 600px){#sidebar-container{max-width:unset}}.kwikid-form-header{height:70px;z-index:6}.kwikid-form-header hr{width:calc(100% - 1rem);margin-left:auto;margin-right:auto}#uf-header{display:flex;flex-direction:row;align-content:center;align-items:center;justify-content:flex-start;grid-column-gap:10px;column-gap:10px;padding:10px 20px;width:100%;max-width:calc(400px + 50vw + 2rem);margin:0 auto;height:70px;z-index:1}#uf-header #uf-header-goback-container{display:none}#uf-header #uf-header-goback-container:hover{border-radius:50%;background-color:#d3d3d3}#uf-header #uf-header-goback-container #uf-header-goback{width:100%;height:auto}#uf-header #uf-header-logo-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}#uf-header #uf-header-logo-container #uf-header-logo.small-icon{width:100%;height:50px}#uf-header #uf-header-logo-container #uf-header-logo.large-icon{width:100%;height:50px}#uf-header #uf-header-title-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;grid-row-gap:4px;row-gap:4px}#uf-header #uf-header-title-container #uf-header-title{font-size:1.4em;color:#121212}#uf-header #uf-header-title-container #uf-header-subtitle{font-size:1.2em;color:#121212}\n"], components: [{ type: i1.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["value", "max", "size", "colors"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
60
+ /** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}#sidebar-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}#sidebar{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch}.uf-section-item{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;padding:1rem;grid-gap:1rem;gap:1rem;cursor:pointer;box-shadow:0 .1rem .5rem -.25rem gray;border-radius:.5rem;background-color:var(--tui-base-02)}.uf-section-item:hover{box-shadow:0 .2rem .75rem -.5rem #656565}#submit-sidebar-btn-container{width:100%;bottom:0px;z-index:1;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}#submit-sidebar-btn-container *{flex-grow:1}#uf-sections-container{display:flex;flex-direction:column;height:100%;grid-row-gap:20px;row-gap:20px;padding:1rem;overflow-y:auto}.uf-form-section-card{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:10px;column-gap:10px;border:none;border-radius:8px;background-color:#e9e9e9;height:-moz-fit-content;height:fit-content;min-height:60px;padding:10px 15px;width:100%;max-width:350px;margin:0 auto}.uf-section-item.locked{-webkit-user-select:none;user-select:none;cursor:not-allowed}.uf-form-section-card .uf-form-section-card-title{font-size:1.2em;text-align:left;line-height:1.25em}.uf-form-section-card .uf-form-section-card-action{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.uf-form-section-card .uf-form-section-card-action .uf-form-section-card-action-img{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;border-radius:100%;color:#fff;font-weight:bold}.uf-form-section-card-action-img.completed{background-color:#228b22;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.edit{background-color:#dc143c;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.locked{background-color:gray;padding:.25rem;border-radius:50%;color:#fff}#uf-progress{display:flex;padding:1rem;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;grid-gap:.5rem;gap:.5rem}#uf-progress-steps{font-size:1em;text-align:right;color:#3d3d3d}.uf-form-section-card-title{font-size:1em;font-weight:bold;color:#121212}@media screen and (max-width: 600px){#sidebar-container{max-width:unset}}.kwikid-form-header{height:70px;z-index:6}.kwikid-form-header hr{width:calc(100% - 1rem);margin-left:auto;margin-right:auto}#uf-header{display:flex;flex-direction:row;align-content:center;align-items:center;justify-content:flex-start;grid-column-gap:10px;column-gap:10px;padding:10px 20px;width:100%;max-width:calc(400px + 50vw + 2rem);margin:0 auto;height:70px;z-index:1}#uf-header #uf-header-goback-container{display:none}#uf-header #uf-header-goback-container:hover{border-radius:50%;background-color:#d3d3d3}#uf-header #uf-header-goback-container #uf-header-goback{width:100%;height:auto}#uf-header #uf-header-logo-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}#uf-header #uf-header-logo-container #uf-header-logo.small-icon{width:100%;height:50px}#uf-header #uf-header-logo-container #uf-header-logo.large-icon{width:100%;height:50px}#uf-header #uf-header-title-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;grid-row-gap:4px;row-gap:4px}#uf-header #uf-header-title-container #uf-header-title{font-size:1.4em;color:#121212}#uf-header #uf-header-title-container #uf-header-subtitle{font-size:1.2em;color:#121212}\n"], components: [{ type: i1.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["value", "max", "size", "colors"] }, { type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsListComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
82
82
  }], onClickSubmitForms: [{
83
83
  type: Output
84
84
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3Jtcy1saXN0L2Zvcm1zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybXMtbGlzdC9mb3Jtcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQU83QyxNQUFNLE9BQU8sd0JBQXdCO0lBNkJuQztRQTNCQSxtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUd6QixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBR3JCLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFHdEIsdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBRy9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLHlCQUFvQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2xFLHlCQUFvQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2xFLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFN0MsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO0lBRXJCLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNuQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzNELENBQUMsQ0FBQztRQUNGLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztTQUMzRDtRQUNELElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDaEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUU7UUFDRCxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLFNBQWdCO1FBQ3ZDLElBQUksbUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBRXhDLEtBQUssSUFBSSxLQUFLLElBQUksU0FBUyxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQ2hDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztnQkFDNUIsTUFBTTthQUNQO1NBQ0Y7UUFFRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxZQUFvQjtRQUM3QyxJQUNFLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWTtZQUNsQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDbEQ7WUFDQSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDOzt5SUE1RVUsd0JBQXdCOzZIQUF4Qix3QkFBd0IseVlDaEJyQyxtekZBbUZBOzRGRG5FYSx3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDOzBFQUdDLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixNQUFNO2dCQUlQLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGhhc0tleSB9IGZyb20gXCIuL2Zvcm1zLWxpc3QuaGVscGVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJrd2lraWQtZm9ybXMtbGlzdFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZm9ybXMtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9mb3Jtcy1saXN0LmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLd2lrSURGb3Jtc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KClcclxuICBzaG93Rm9ybUZpZWxkczogYW55ID0ge307XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdXNlckNvbmZpZzogYW55ID0ge307XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZm9ybXNMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZvcm1zTGlzdENvbXBsZXRlZDogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBpc01vYmlsZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25DbGlja1NldEFjdGl2ZUZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xpY2tIaWRlRm9ybXNMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsaWNrU3VibWl0Rm9ybXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgc2VsZWN0ZWRGb3JtOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBpc0FsbEZvcm1zQ29tcGxldGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNBbGxGb3Jtc0NvbXBsZXRlZCA9IHRoaXMuY2hlY2tJc0FsbEZvcm1zQ29tcGxldGVkKHRoaXMuZm9ybXNMaXN0KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gaGFzS2V5KGNoYW5nZXMsIGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcclxuICAgIH07XHJcbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic2hvd0Zvcm1GaWVsZHNcIikpIHtcclxuICAgICAgdGhpcy5zaG93Rm9ybUZpZWxkcyA9IGNoYW5nZXMuc2hvd0Zvcm1GaWVsZHMuY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImZvcm1zTGlzdFwiKSkge1xyXG4gICAgICB0aGlzLmZvcm1zTGlzdCA9IGNoYW5nZXMuZm9ybXNMaXN0LmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5pc0FsbEZvcm1zQ29tcGxldGVkID0gdGhpcy5jaGVja0lzQWxsRm9ybXNDb21wbGV0ZWQodGhpcy5mb3Jtc0xpc3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImlzTW9iaWxlVmlld1wiKSkge1xyXG4gICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IGNoYW5nZXMuaXNNb2JpbGVWaWV3LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZChmb3Jtc0xpc3Q6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNBbGxGb3Jtc0NvbXBsZXRlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgZm9yIChsZXQgZm9ybXMgb2YgZm9ybXNMaXN0KSB7XHJcbiAgICAgIGlmIChmb3Jtcy5zdGF0dXMgIT09IFwiY29tcGxldGVkXCIpIHtcclxuICAgICAgICBpc0FsbEZvcm1zQ29tcGxldGVkID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNBbGxGb3Jtc0NvbXBsZXRlZDtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uQ2xpY2tTZXRBY3RpdmVGb3JtKHNlbGVjdGVkRm9ybTogc3RyaW5nKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtICE9PSBzZWxlY3RlZEZvcm0gfHxcclxuICAgICAgKHRoaXMuaXNBbGxGb3Jtc0NvbXBsZXRlZCAmJiAhdGhpcy5zaG93Rm9ybUZpZWxkcylcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRm9ybSA9IHNlbGVjdGVkRm9ybTtcclxuICAgICAgdGhpcy5vbkNsaWNrU2V0QWN0aXZlRm9ybS5lbWl0KHNlbGVjdGVkRm9ybSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPblN1Ym1pdEZvcm1zKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNsaWNrU3VibWl0Rm9ybXMuZW1pdChlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInNpZGViYXItY29udGFpbmVyXCI+XHJcbiAgPGRpdiBpZD1cInNpZGViYXJcIj5cclxuICAgIDxkaXYgbmdDbGFzcz1cImt3aWtpZC1mb3JtLWhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGlkPVwidWYtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBpZD1cInVmLWhlYWRlci1sb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBpZD1cInVmLWhlYWRlci1sb2dvXCJcclxuICAgICAgICAgICAgc3JjPVwie3sgdGhpcy51c2VyQ29uZmlnLnRoZW1lLmNsaWVudExvZ28gfX1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCInbGFyZ2UtaWNvbidcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxociAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwidWYtcHJvZ3Jlc3NcIj5cclxuICAgICAgPGRpdiBpZD1cInVmLXByb2dyZXNzLXN0ZXBzXCI+XHJcbiAgICAgICAge3sgdGhpcy5mb3Jtc0xpc3RDb21wbGV0ZWQubGVuZ3RoIH19IC8ge3sgdGhpcy5mb3Jtc0xpc3QubGVuZ3RoIH19IFN0ZXBzXHJcbiAgICAgICAgQ29tcGxldGVkXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8a3dpa3VpLXByb2dyZXNzLXNlZ21lbnRlZFxyXG4gICAgICAgIFttYXhdPVwidGhpcy5mb3Jtc0xpc3QubGVuZ3RoXCJcclxuICAgICAgICBzaXplPVwibVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRoaXMuZm9ybXNMaXN0Q29tcGxldGVkLmxlbmd0aFwiXHJcbiAgICAgID48L2t3aWt1aS1wcm9ncmVzcy1zZWdtZW50ZWQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJ1Zi1zZWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBmb3JtIG9mIGZvcm1zTGlzdDsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIid1Zi1zZWN0aW9uLWl0ZW0nXCJcclxuICAgICAgICBbY2xhc3MuY29tcGxldGVkXT1cImZvcm0uc3RhdHVzID09PSAnY29tcGxldGVkJyAmJiAhZm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzLmVkaXRdPVwiZm9ybS5zdGF0dXMgPT09ICdlZGl0YWJsZScgJiYgIWZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgIFtjbGFzcy5sb2NrZWRdPVwiZm9ybS5zdGF0dXMgPT09ICdsb2NrZWQnICYmIGZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgIGZvcm0uc3RhdHVzID09PSAnbG9ja2VkJyAmJiBmb3JtLmRpc2FibGVkXHJcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIDogaGFuZGxlT25DbGlja1NldEFjdGl2ZUZvcm0oZm9ybS5rZXkpXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAge3sgZm9ybS50aXRsZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC1hY3Rpb25cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgJiYgIWZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLWFjdGlvbi1pbWcgY29tcGxldGVkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkNoZWNrTGFyZ2VcIj48L3R1aS1zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtLnN0YXR1cyAhPT0gJ2NvbXBsZXRlZCcgJiYgIWZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLWFjdGlvbi1pbWcgZWRpdFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25FZGl0XCI+PC90dWktc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5zdGF0dXMgIT09ICdjb21wbGV0ZWQnICYmIGZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLWFjdGlvbi1pbWcgbG9ja2VkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkxvY2tcIj48L3R1aS1zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJzdWJtaXQtc2lkZWJhci1idG4tY29udGFpbmVyXCI+XHJcbiAgICAgIDxrd2lrdWktYnV0dG9uXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICBpZD1cIlwiXHJcbiAgICAgICAgbGFiZWw9XCJTdWJtaXRcIlxyXG4gICAgICAgIFtzaG93TG9hZGVyXT1cImZhbHNlXCJcclxuICAgICAgICBzdHlsZXM9XCJcIlxyXG4gICAgICAgIGNsYXNzPVwiXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgaWNvbj1cIlwiXHJcbiAgICAgICAgaWNvblJpZ2h0PVwiXCJcclxuICAgICAgICBzaGFwZT1cIm51bGxcIlxyXG4gICAgICAgIHNpemU9XCJtXCJcclxuICAgICAgICBzdHlsZXM9XCJ3aWR0aDogMTAwJVwiXHJcbiAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlT25TdWJtaXRGb3JtcygkZXZlbnQpXCJcclxuICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3Jtcy1saXN0L2Zvcm1zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybXMtbGlzdC9mb3Jtcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQU83QyxNQUFNLE9BQU8sd0JBQXdCO0lBNkJuQztRQTNCQSxtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUd6QixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBR3JCLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFHdEIsdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBRy9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLHlCQUFvQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2xFLHlCQUFvQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2xFLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFN0MsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO0lBRXJCLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNuQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzNELENBQUMsQ0FBQztRQUNGLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztTQUMzRDtRQUNELElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDaEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUU7UUFDRCxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLFNBQWdCO1FBQ3ZDLElBQUksbUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBRXhDLEtBQUssSUFBSSxLQUFLLElBQUksU0FBUyxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQ2hDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztnQkFDNUIsTUFBTTthQUNQO1NBQ0Y7UUFFRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxZQUFvQjtRQUM3QyxJQUNFLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWTtZQUNsQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDbEQ7WUFDQSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDOzt5SUE1RVUsd0JBQXdCOzZIQUF4Qix3QkFBd0IseVlDaEJyQyxxekZBbUZBOzRGRG5FYSx3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDOzBFQUdDLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixNQUFNO2dCQUlQLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGhhc0tleSB9IGZyb20gXCIuL2Zvcm1zLWxpc3QuaGVscGVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJrd2lraWQtZm9ybXMtbGlzdFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZm9ybXMtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9mb3Jtcy1saXN0LmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLd2lrSURGb3Jtc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KClcclxuICBzaG93Rm9ybUZpZWxkczogYW55ID0ge307XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdXNlckNvbmZpZzogYW55ID0ge307XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZm9ybXNMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZvcm1zTGlzdENvbXBsZXRlZDogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBpc01vYmlsZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25DbGlja1NldEFjdGl2ZUZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xpY2tIaWRlRm9ybXNMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsaWNrU3VibWl0Rm9ybXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgc2VsZWN0ZWRGb3JtOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBpc0FsbEZvcm1zQ29tcGxldGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNBbGxGb3Jtc0NvbXBsZXRlZCA9IHRoaXMuY2hlY2tJc0FsbEZvcm1zQ29tcGxldGVkKHRoaXMuZm9ybXNMaXN0KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gaGFzS2V5KGNoYW5nZXMsIGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcclxuICAgIH07XHJcbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic2hvd0Zvcm1GaWVsZHNcIikpIHtcclxuICAgICAgdGhpcy5zaG93Rm9ybUZpZWxkcyA9IGNoYW5nZXMuc2hvd0Zvcm1GaWVsZHMuY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImZvcm1zTGlzdFwiKSkge1xyXG4gICAgICB0aGlzLmZvcm1zTGlzdCA9IGNoYW5nZXMuZm9ybXNMaXN0LmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5pc0FsbEZvcm1zQ29tcGxldGVkID0gdGhpcy5jaGVja0lzQWxsRm9ybXNDb21wbGV0ZWQodGhpcy5mb3Jtc0xpc3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImlzTW9iaWxlVmlld1wiKSkge1xyXG4gICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IGNoYW5nZXMuaXNNb2JpbGVWaWV3LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZChmb3Jtc0xpc3Q6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNBbGxGb3Jtc0NvbXBsZXRlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgZm9yIChsZXQgZm9ybXMgb2YgZm9ybXNMaXN0KSB7XHJcbiAgICAgIGlmIChmb3Jtcy5zdGF0dXMgIT09IFwiY29tcGxldGVkXCIpIHtcclxuICAgICAgICBpc0FsbEZvcm1zQ29tcGxldGVkID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNBbGxGb3Jtc0NvbXBsZXRlZDtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uQ2xpY2tTZXRBY3RpdmVGb3JtKHNlbGVjdGVkRm9ybTogc3RyaW5nKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtICE9PSBzZWxlY3RlZEZvcm0gfHxcclxuICAgICAgKHRoaXMuaXNBbGxGb3Jtc0NvbXBsZXRlZCAmJiAhdGhpcy5zaG93Rm9ybUZpZWxkcylcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRm9ybSA9IHNlbGVjdGVkRm9ybTtcclxuICAgICAgdGhpcy5vbkNsaWNrU2V0QWN0aXZlRm9ybS5lbWl0KHNlbGVjdGVkRm9ybSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPblN1Ym1pdEZvcm1zKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNsaWNrU3VibWl0Rm9ybXMuZW1pdChlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInNpZGViYXItY29udGFpbmVyXCI+XHJcbiAgPGRpdiBpZD1cInNpZGViYXJcIj5cclxuICAgIDxkaXYgbmdDbGFzcz1cImt3aWtpZC1mb3JtLWhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGlkPVwidWYtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBpZD1cInVmLWhlYWRlci1sb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBpZD1cInVmLWhlYWRlci1sb2dvXCJcclxuICAgICAgICAgICAgc3JjPVwie3sgdGhpcy51c2VyQ29uZmlnLnRoZW1lLmNsaWVudExvZ28gfX1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCInbGFyZ2UtaWNvbidcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxociAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwidWYtcHJvZ3Jlc3NcIj5cclxuICAgICAgPGRpdiBpZD1cInVmLXByb2dyZXNzLXN0ZXBzXCI+XHJcbiAgICAgICAge3sgdGhpcy5mb3Jtc0xpc3RDb21wbGV0ZWQubGVuZ3RoIH19IC8ge3sgdGhpcy5mb3Jtc0xpc3QubGVuZ3RoIH19IFN0ZXBzXHJcbiAgICAgICAgQ29tcGxldGVkXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8a3dpa3VpLXByb2dyZXNzLXNlZ21lbnRlZFxyXG4gICAgICAgIFttYXhdPVwidGhpcy5mb3Jtc0xpc3QubGVuZ3RoXCJcclxuICAgICAgICBzaXplPVwibVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRoaXMuZm9ybXNMaXN0Q29tcGxldGVkLmxlbmd0aFwiXHJcbiAgICAgID48L2t3aWt1aS1wcm9ncmVzcy1zZWdtZW50ZWQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJ1Zi1zZWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBmb3JtIG9mIGZvcm1zTGlzdDsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIid1Zi1zZWN0aW9uLWl0ZW0nXCJcclxuICAgICAgICBbY2xhc3MuY29tcGxldGVkXT1cImZvcm0uc3RhdHVzID09PSAnY29tcGxldGVkJyAmJiAhZm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzLmVkaXRdPVwiZm9ybS5zdGF0dXMgPT09ICdlZGl0YWJsZScgJiYgIWZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgIFtjbGFzcy5sb2NrZWRdPVwiZm9ybS5zdGF0dXMgPT09ICdsb2NrZWQnICYmIGZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgIGZvcm0uc3RhdHVzID09PSAnbG9ja2VkJyAmJiBmb3JtLmRpc2FibGVkXHJcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIDogaGFuZGxlT25DbGlja1NldEFjdGl2ZUZvcm0oZm9ybS5rZXkpXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAge3sgZm9ybS50aXRsZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC1hY3Rpb25cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgJiYgIWZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLWFjdGlvbi1pbWcgY29tcGxldGVkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkNoZWNrTGFyZ2VcIj48L3R1aS1zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtLnN0YXR1cyAhPT0gJ2NvbXBsZXRlZCcgJiYgIWZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLWFjdGlvbi1pbWcgZWRpdFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25FZGl0XCI+PC90dWktc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5zdGF0dXMgIT09ICdjb21wbGV0ZWQnICYmIGZvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLWFjdGlvbi1pbWcgbG9ja2VkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkxvY2tcIj48L3R1aS1zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJzdWJtaXQtc2lkZWJhci1idG4tY29udGFpbmVyXCI+XHJcbiAgICAgIDxrd2lrdWktYnV0dG9uXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICBpZD1cIlwiXHJcbiAgICAgICAgbGFiZWw9XCJTdWJtaXRcIlxyXG4gICAgICAgIFtzaG93TG9hZGVyXT1cImZhbHNlXCJcclxuICAgICAgICBzdHlsZXM9XCJcIlxyXG4gICAgICAgIGNsYXNzPVwiXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgaWNvbj1cIlwiXHJcbiAgICAgICAgaWNvblJpZ2h0PVwiXCJcclxuICAgICAgICBbc2hhcGVdPVwibnVsbFwiXHJcbiAgICAgICAgc2l6ZT1cIm1cIlxyXG4gICAgICAgIHN0eWxlcz1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVPblN1Ym1pdEZvcm1zKCRldmVudClcIlxyXG4gICAgICA+PC9rd2lrdWktYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -325,6 +325,8 @@ export class Converter {
325
325
  if (isEmpty((_e = field.validators) === null || _e === void 0 ? void 0 : _e.pattern)) {
326
326
  delete field.validators.pattern;
327
327
  }
328
+ field.focus = false;
329
+ field.invalid = false;
328
330
  }
329
331
  return field;
330
332
  };
@@ -578,4 +580,4 @@ export class Converter {
578
580
  __decorate([
579
581
  log
580
582
  ], Converter.prototype, "convertFormConfig", null);
581
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXIuY29uZmlnLWNvbnZlcnRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9yZW5kZXJlci5jb25maWctY29udmVydGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEUsTUFBTSxPQUFPLFNBQVM7SUFBdEI7UUFDRSxrQkFBYSxHQUFHLENBQUMsVUFBZSxFQUFTLEVBQUU7WUFDekMsSUFBSSxNQUFhLENBQUM7WUFFbEIsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDNUI7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRiw0QkFBdUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxHQUFXLEVBQUUsS0FBVSxFQUFPLEVBQUU7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDcEI7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVGLHFCQUFnQixHQUFHLENBQUMsS0FBVSxFQUFFLEdBQVcsRUFBRSxLQUFVLEVB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QUF5RTtZQUN6RSxXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXhELEtBQUssR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxLQUFLLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXRDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFekQsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBdnNCQztJQURDLEdBQUc7a0RBdXNCSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aURheSB9IGZyb20gXCJAdGFpZ2EtdWkvY2RrXCI7XHJcbmltcG9ydCB7IGxvZyB9IGZyb20gXCIuL2Zvcm0tdmlldy9mb3JtLXZpZXcuZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBjb252ZXJ0RGF0ZVN0cmluZ1RvVHVpRGF5Rm9ybWF0IH0gZnJvbSBcIi4vZm9ybS12aWV3L2hlbHBlcnMvZm9ybS12aWV3LmZpZWxkcy5oZWxwZXJcIjtcclxuaW1wb3J0IHsgaGFzS2V5LCBpc0VtcHR5LCBpc05vdEVtcHR5IH0gZnJvbSBcIi4vcmVuZGVyZXIuaGVscGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udmVydGVyIHtcclxuICBnZXRGb3JtRmllbGRzID0gKGZvcm1Db25maWc6IGFueSk6IGFueVtdID0+IHtcclxuICAgIGxldCBmaWVsZHM6IGFueVtdO1xyXG5cclxuICAgIGlmIChoYXNLZXkoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcclxuICAgICAgZmllbGRzID0gZm9ybUNvbmZpZy5tdWx0aUZvcm0uZmllbGRzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmllbGRzID0gZm9ybUNvbmZpZy5maWVsZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkcztcclxuICB9O1xyXG5cclxuICBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XHJcbiAgICBpZiAoIWhhc0tleShmaWVsZCwga2V5KSkge1xyXG4gICAgICBmaWVsZFtrZXldID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfTtcclxuXHJcbiAgc2V0RmllbGRLZXlWYWx1ZSA9IChmaWVsZDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGFueSA9PiB7XHJcbiAgICBmaWVsZFtrZXldID0gdmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH07XHJcblxyXG4gIHJlbW92ZUZpZWxkS2V5ID0gKGZpZWxkOiBhbnksIGtleTogc3RyaW5nKTogYW55ID0+IHtcclxuICAgIGlmIChoYXNLZXkoZmllbGQsIGtleSkpIHtcclxuICAgICAgZGVsZXRlIGZpZWxkW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH07XHJcblxyXG4gIEBsb2dcclxuICBjb252ZXJ0Rm9ybUNvbmZpZyhmb3JtQ29uZmlnOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgdXBkYXRlT25GaWVsZFR5cGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRpdGxlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWVsZDtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUmFkaW8gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgXCJzaXplXCIsXHJcbiAgICAgICAgICBcIm1cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgXCJvcmllbnRhdGlvblwiLFxyXG4gICAgICAgICAgXCJ2ZXJ0aWNhbFwiXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xyXG5cclxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHgsIGRpc2FibGVkOiBmYWxzZSB9O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGhhc0tleSh4LCBcImxhYmVsXCIpICYmIGhhc0tleSh4LCBcImRpc2FibGVkXCIpKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVPdHAgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgXCJtYXNrXCIsXHJcbiAgICAgICAgICBuZXcgQXJyYXkoZmllbGQucHJvcGVydGllcy5vdHBMZW5ndGgpLmZpbGwoXCIjXCIpLmpvaW4oXCIgXCIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgaWYgKGhhc0tleShmaWVsZCwgXCJtaW5cIikpIHtcclxuICAgICAgICAgIGNvbnN0IHR1aURheSA9IGNvbnZlcnREYXRlU3RyaW5nVG9UdWlEYXlGb3JtYXQoZmllbGRbXCJtaW5cIl0pO1xyXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgXCJtaW5cIixcclxuICAgICAgICAgICAgdHVpRGF5XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgXCJtaW5cIixcclxuICAgICAgICAgICAgbmV3IFR1aURheSgwLCAwLCAxKVxyXG4gICAgICAgICAgKTsgLy8gWWVhciAtIDAwMDAsIE1vbnRoIC0gMCAoMCBJbmRleGluZyksIERheSAtIDFcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwibWF4XCIpKSB7XHJcbiAgICAgICAgICBjb25zdCB0dWlEYXkgPSBjb252ZXJ0RGF0ZVN0cmluZ1RvVHVpRGF5Rm9ybWF0KGZpZWxkW1wibWF4XCJdKTtcclxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgIFwibWF4XCIsXHJcbiAgICAgICAgICAgIHR1aURheVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgIFwibWF4XCIsXHJcbiAgICAgICAgICAgIG5ldyBUdWlEYXkoXHJcbiAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLCAvLyBZZWFyIC0gOTk5OVxyXG4gICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSwgLy8gTW9udGggLSAxMSAoMCBJbmRleGluZylcclxuICAgICAgICAgICAgICBuZXcgRGF0ZSgpLmdldERhdGUoKSAvLyBEYXkgLSAzMVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVOdW1iZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgaWYgKGhhc0tleShmaWVsZCwgXCJrZXlcIikpIHtcclxuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiYWFkaGFhcl9udW1iZXJcIikge1xyXG4gICAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYWFkaGFhcl9udW1iZXJcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZmllbGQua2V5ID09PSBcImNvbnRhY3RfbnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcInBob25lXCIpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInBob25lXCIgfHwgZmllbGQudHlwZSA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICAgIFwiY291bnRyeUNvZGVcIixcclxuICAgICAgICAgICAgICBcIis5MVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgICAgXCJwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXCIsXHJcbiAgICAgICAgICAgICAgXCIjIyMjLSMjIyMjI1wiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgICAgXCJyZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZVwiLFxyXG4gICAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcImRlY2ltYWxcIixcclxuICAgICAgICAgICAgICBcIm5ldmVyXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcInByZWZpeFwiLFxyXG4gICAgICAgICAgICAgIFwiXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcInBvc3RmaXhcIixcclxuICAgICAgICAgICAgICBcIlwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgICAgXCJtaW5cIixcclxuICAgICAgICAgICAgICAtSW5maW5pdHlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcIm1heFwiLFxyXG4gICAgICAgICAgICAgIEluZmluaXR5XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgICAgXCJwcmVjaXNpb25cIixcclxuICAgICAgICAgICAgICAyXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUFwaUNhbGwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgaWYgKCFoYXNLZXkoZmllbGQucHJvcGVydGllcywgXCJzaGFwZVwiKSkge1xyXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgXCJzaGFwZVwiLFxyXG4gICAgICAgICAgICBudWxsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWhhc0tleShmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XHJcbiAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJzaG93TG9hZGVyXCIsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFoYXNLZXkoZmllbGQucHJvcGVydGllcywgXCJzaXplXCIpKSB7XHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBcInNpemVcIixcclxuICAgICAgICAgICAgXCJtXCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaGFzS2V5KGZpZWxkLCBcImFwaVwiKSkge1xyXG4gICAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiYXBpXCIsIHt9KTtcclxuXHJcbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJ1cmxcIiwgXCJcIik7XHJcbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJyZXF1ZXN0XCIsIFwiXCIpO1xyXG4gICAgICAgICAgZmllbGQuYXBpID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZC5hcGksIFwicmVzcG9uc2VcIiwgXCJcIik7XHJcbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJzdGF0dXNcIiwgXCJcIik7XHJcblxyXG4gICAgICAgICAgZmllbGQuYXBpLnN0YXR1cyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgIGZpZWxkLmFwaS5zdGF0dXMsXHJcbiAgICAgICAgICAgIFwidmFsdWVcIixcclxuICAgICAgICAgICAgXCJkZWZhdWx0XCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQuYXBpLnN0YXR1cyxcclxuICAgICAgICAgICAgXCJsYWJlbHNcIixcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6IFwiQ2FsbCBBUElcIixcclxuICAgICAgICAgICAgICBsb2FkaW5nOiBcIkNhbGwgQVBJXCIsXHJcbiAgICAgICAgICAgICAgc3VjY2VzczogXCJBUEkgU3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgIGZhaWxlZDogXCJBUEkgRmFpbGVkXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTZWFyY2hUZXh0ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwidHlwZVwiKSkge1xyXG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFwic2VhcmNoLXRleHRcIikge1xyXG4gICAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgICBmaWVsZCxcclxuICAgICAgICAgICAgICBcInR5cGVcIixcclxuICAgICAgICAgICAgICBcImRyb3Bkb3duLXdpdGgtc2VhcmNoXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmaWVsZDtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGV4dCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgICBjYXNlIFwidGl0bGVcIjpcclxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGl0bGUoZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcInJhZGlvXCI6XHJcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVJhZGlvKGZpZWxkKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJvdHBcIjpcclxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlT3RwKGZpZWxkKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZURhdGUoZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxyXG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVOdW1iZXIoZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImFwaS1jYWxsXCI6XHJcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaUNhbGwoZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcInNlYXJjaC10ZXh0XCI6XHJcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVNlYXJjaFRleHQoZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGdldENvbm5lY3RlZEVsZW1lbnRLZXlWYWx1ZU9iamVjdCA9IChrZXk6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGNvbnN0IG9iamVjdCA9IHtcclxuICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICBjb25kaXRpb25zOiB7IGZvcm11bGE6IFwiXCIsIHJ1bGVzOiBbXSB9LFxyXG4gICAgICAgIGFjdGlvbnM6IHsgc3VjY2VzczogW10sIGZhaWx1cmU6IFtdIH1cclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIG9iamVjdDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZm9ybWF0RmllbGRLZXlzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoaGFzS2V5KGZpZWxkLCBcImNvbm5lY3RlZFRvXCIpKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZFtcImNvbm5lY3RlZFRvXCJdID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZEVsZW1lbnRzXCJdID0gW1xyXG4gICAgICAgICAgICBnZXRDb25uZWN0ZWRFbGVtZW50S2V5VmFsdWVPYmplY3QoZmllbGRbXCJjb25uZWN0ZWRUb1wiXSlcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkVG9cIl0gPSBmaWVsZFtcImNvbm5lY3RlZFRvXCJdLm1hcCgoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGdldENvbm5lY3RlZEVsZW1lbnRLZXlWYWx1ZU9iamVjdChrZXkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZEVsZW1lbnRzXCJdID0gZmllbGRbXCJjb25uZWN0ZWRUb1wiXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZW1vdmVGaWVsZEtleShmaWVsZCwgXCJjb25uZWN0ZWRUb1wiKTtcclxuXHJcbiAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiY29ubmVjdGVkVG9QYXJlbnRcIikpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkW1wiY29ubmVjdGVkVG9QYXJlbnRcIl0gPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkUGFyZW50RmllbGRzXCJdID0gW1xyXG4gICAgICAgICAgICBnZXRDb25uZWN0ZWRFbGVtZW50S2V5VmFsdWVPYmplY3QoZmllbGRbXCJjb25uZWN0ZWRUb1BhcmVudFwiXSlcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkUGFyZW50RmllbGRzXCJdID0gZ2V0Q29ubmVjdGVkRWxlbWVudEtleVZhbHVlT2JqZWN0KFxyXG4gICAgICAgICAgICBmaWVsZFtcImNvbm5lY3RlZFRvUGFyZW50XCJdXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlbW92ZUZpZWxkS2V5KGZpZWxkLCBcImNvbm5lY3RlZFRvUGFyZW50XCIpO1xyXG5cclxuICAgICAgdGhpcy5yZW1vdmVGaWVsZEtleShmaWVsZCwgXCJzaWRlRWZmZWN0XCIpO1xyXG5cclxuICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBnZXRDb25uZWN0ZWRFbGVtZW50RmllbGRNYXBwaW5nID0gKFxyXG4gICAgICBmaWVsZDogYW55LFxyXG4gICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmc6IGFueVxyXG4gICAgKTogYW55ID0+IHtcclxuICAgICAgY29uc3QgZ2V0Q29ubmVjdGVkRWxlbWVudENoaWxkRmllbGRNYXBwaW5nID0gKFxyXG4gICAgICAgIGZpZWxkOiBhbnksXHJcbiAgICAgICAgY29ubmVjdGVkRmllbGRNYXBwaW5nOiBhbnlcclxuICAgICAgKTogYW55ID0+IHtcclxuICAgICAgICBpZiAoaGFzS2V5KGZpZWxkLCBcImNvbm5lY3RlZEVsZW1lbnRzXCIpKSB7XHJcbiAgICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJjaGlsZFwiXVtmaWVsZC5rZXldID0gZmllbGQuY29ubmVjdGVkRWxlbWVudHM7XHJcbiAgICAgICAgfSBlbHNlIGlmIChoYXNLZXkoY29ubmVjdGVkRmllbGRNYXBwaW5nW1wiY2hpbGRcIl0sIGZpZWxkLmtleSkpIHtcclxuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkRWxlbWVudHNcIl0gPVxyXG4gICAgICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJjaGlsZFwiXVtmaWVsZC5rZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgZmllbGQ6IGZpZWxkLCBjb25uZWN0ZWRGaWVsZE1hcHBpbmc6IGNvbm5lY3RlZEZpZWxkTWFwcGluZyB9O1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29uc3QgZ2V0Q29ubmVjdGVkRWxlbWVudFBhcmVudEZpZWxkTWFwcGluZyA9IChcclxuICAgICAgICBmaWVsZDogYW55LFxyXG4gICAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZzogYW55XHJcbiAgICAgICk6IGFueSA9PiB7XHJcbiAgICAgICAgaWYgKGhhc0tleShjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJjaGlsZFwiXSwgZmllbGQua2V5KSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgY29ubmVjdGVkUGFyZW50S2V5IG9mIGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcImNoaWxkXCJdW1xyXG4gICAgICAgICAgICBmaWVsZC5rZXlcclxuICAgICAgICAgIF0pIHtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIGhhc0tleShjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJwYXJlbnRcIl0sIGNvbm5lY3RlZFBhcmVudEtleVtcImtleVwiXSlcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgY29ubmVjdGVkRmllbGRNYXBwaW5nW1wicGFyZW50XCJdW2Nvbm5lY3RlZFBhcmVudEtleVtcImtleVwiXV0ucHVzaChcclxuICAgICAgICAgICAgICAgIGZpZWxkLmtleVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29ubmVjdGVkRmllbGRNYXBwaW5nW1wicGFyZW50XCJdW2Nvbm5lY3RlZFBhcmVudEtleVtcImtleVwiXV0gPSBbXHJcbiAgICAgICAgICAgICAgICBmaWVsZC5rZXlcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBmaWVsZDogZmllbGQsIGNvbm5lY3RlZEZpZWxkTWFwcGluZzogY29ubmVjdGVkRmllbGRNYXBwaW5nIH07XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBjb25uZWN0ZWRDaGlsZEZpZWxkTWFwcGluZyA9IGdldENvbm5lY3RlZEVsZW1lbnRDaGlsZEZpZWxkTWFwcGluZyhcclxuICAgICAgICBmaWVsZCxcclxuICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmdcclxuICAgICAgKTtcclxuICAgICAgZmllbGQgPSBjb25uZWN0ZWRDaGlsZEZpZWxkTWFwcGluZ1tcImZpZWxkXCJdO1xyXG4gICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmcgPVxyXG4gICAgICAgIGNvbm5lY3RlZENoaWxkRmllbGRNYXBwaW5nW1wiY29ubmVjdGVkRmllbGRNYXBwaW5nXCJdO1xyXG5cclxuICAgICAgY29uc3QgY29ubmVjdGVkUGFyZW50RmllbGRNYXBwaW5nID0gZ2V0Q29ubmVjdGVkRWxlbWVudFBhcmVudEZpZWxkTWFwcGluZyhcclxuICAgICAgICBmaWVsZCxcclxuICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmdcclxuICAgICAgKTtcclxuICAgICAgZmllbGQgPSBjb25uZWN0ZWRQYXJlbnRGaWVsZE1hcHBpbmdbXCJmaWVsZFwiXTtcclxuICAgICAgY29ubmVjdGVkRmllbGRNYXBwaW5nID1cclxuICAgICAgICBjb25uZWN0ZWRQYXJlbnRGaWVsZE1hcHBpbmdbXCJjb25uZWN0ZWRGaWVsZE1hcHBpbmdcIl07XHJcblxyXG4gICAgICByZXR1cm4gY29ubmVjdGVkRmllbGRNYXBwaW5nO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVDb25uZWN0ZWRFbGVtZW50c0tleVZhbHVlID0gKFxyXG4gICAgICBmaWVsZDogYW55LFxyXG4gICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmc6IGFueVxyXG4gICAgKTogYW55ID0+IHtcclxuICAgICAgaWYgKGhhc0tleShjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJjaGlsZFwiXSwgZmllbGQua2V5KSkge1xyXG4gICAgICAgIGZpZWxkW1wiY29ubmVjdGVkRWxlbWVudHNcIl0gPSBjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJjaGlsZFwiXVtmaWVsZC5rZXldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaGFzS2V5KGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcInBhcmVudFwiXSwgZmllbGQua2V5KSkge1xyXG4gICAgICAgIGZpZWxkW1wiY29ubmVjdGVkUGFyZW50RmllbGRzXCJdID1cclxuICAgICAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcInBhcmVudFwiXVtmaWVsZC5rZXldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkVmFsaWRhdG9yQ29uZmlnID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPT0gXCJ0aXRsZVwiKSB7XHJcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGhhc0tleShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIpID8gZmllbGQudmFsaWRhdG9ycyA6IHt9O1xyXG5cclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7fSk7XHJcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7XHJcbiAgICAgICAgICAuLi5maWVsZFtcInZhbGlkYXRvcnNcIl0sXHJcbiAgICAgICAgICBtaW46IGhhc0tleSh2YWxpZGF0b3JzLCBcIm1pblwiKVxyXG4gICAgICAgICAgICA/IGlzTm90RW1wdHkodmFsaWRhdG9ycy5taW4pXHJcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5taW4pXHJcbiAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICAgIDogaGFzS2V5KGZpZWxkLCBcIm1pblwiKVxyXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW4pXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICAgIG1heDogaGFzS2V5KHZhbGlkYXRvcnMsIFwibWF4XCIpXHJcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eSh2YWxpZGF0b3JzLm1heClcclxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgICAgOiBoYXNLZXkoZmllbGQsIFwibWF4XCIpXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1heClcclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IGhhc0tleSh2YWxpZGF0b3JzLCBcInJlcXVpcmVkXCIpXHJcbiAgICAgICAgICAgID8gQm9vbGVhbih2YWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgICAgICA6IGhhc0tleShmaWVsZCwgXCJyZXF1aXJlZFwiKVxyXG4gICAgICAgICAgICA/IEJvb2xlYW4oZmllbGQucmVxdWlyZWQpXHJcbiAgICAgICAgICAgIDogZmFsc2UsXHJcbiAgICAgICAgICBtaW5MZW5ndGg6IGhhc0tleSh2YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKVxyXG4gICAgICAgICAgICA/IGlzTm90RW1wdHkodmFsaWRhdG9ycy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICAgIDogaGFzS2V5KGZpZWxkLCBcIm1pbkxlbmd0aFwiKVxyXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICAgIG1heExlbmd0aDogaGFzS2V5KHZhbGlkYXRvcnMsIFwibWF4TGVuZ3RoXCIpXHJcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eSh2YWxpZGF0b3JzLm1heExlbmd0aClcclxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heExlbmd0aClcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgICAgOiBoYXNLZXkoZmllbGQsIFwibGVuZ3RoXCIpXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLmxlbmd0aClcclxuICAgICAgICAgICAgOiBoYXNLZXkoZmllbGQsIFwibWF4TGVuZ3RoXCIpXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1heExlbmd0aClcclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgICAgcGF0dGVybjogaGFzS2V5KHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxyXG4gICAgICAgICAgICA/IGlzTm90RW1wdHkodmFsaWRhdG9ycy5wYXR0ZXJuKVxyXG4gICAgICAgICAgICAgID8gdmFsaWRhdG9ycy5wYXR0ZXJuXHJcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgICAgICAgICAgOiBoYXNLZXkoZmllbGQsIFwicGF0dGVyblwiKVxyXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucGF0dGVybikgfVxyXG4gICAgICAgICAgICA6IGhhc0tleShmaWVsZCwgXCJyZWdleFwiKVxyXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucmVnZXgpIH1cclxuICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1pbjtcclxuICAgICAgICBkZWxldGUgZmllbGQubWF4O1xyXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5yZXF1aXJlZDtcclxuICAgICAgICBkZWxldGUgZmllbGQubWluTGVuZ3RoO1xyXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5sZW5ndGg7XHJcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1heExlbmd0aDtcclxuICAgICAgICBkZWxldGUgZmllbGQucGF0dGVybjtcclxuICAgICAgICBkZWxldGUgZmllbGQucmVnZXg7XHJcblxyXG4gICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBcInRleHRcIjpcclxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xyXG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaXNFbXB0eShmaWVsZC52YWxpZGF0b3JzPy5taW4pKSB7XHJcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0VtcHR5KGZpZWxkLnZhbGlkYXRvcnM/Lm1heCkpIHtcclxuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzRW1wdHkoZmllbGQudmFsaWRhdG9ycz8ubWluTGVuZ3RoKSkge1xyXG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNFbXB0eShmaWVsZC52YWxpZGF0b3JzPy5tYXhMZW5ndGgpKSB7XHJcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0VtcHR5KGZpZWxkLnZhbGlkYXRvcnM/LnBhdHRlcm4pKSB7XHJcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVGaWVsZERlZmF1bHRWYWx1ZUNvbmZpZyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgaWYgKGZpZWxkLnR5cGUgIT09IFwidGl0bGVcIikge1xyXG4gICAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiZGVmYXVsdFZhbHVlXCIpKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgICAgfSBlbHNlIGlmIChoYXNLZXkoZmllbGQsIFwiZGVmYXVsdFwiKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaGFzS2V5KGZpZWxkLCBcImRlZmF1bHRWYWxcIikpIHtcclxuICAgICAgICAgICAgLy8gQ3VycmVudGx5IGJlbG93IGxpbmUgaXMgY29tbWVudGVkIGJlY2F1c2UgaXQgY2F1c2VkIGlzc3VlcyBpbiBzZXR0aW5nIERlZmF1bHQgVmFsdWUuXHJcbiAgICAgICAgICAgIC8vIGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdID0gZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xyXG4gICAgICAgICAgICAvLyBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIFRPRE86IENvbmRpdGlvbiBmb3IgYWxsX2Zvcm1zX2RhdGEgaXMgbm90IGNvbnNpZGVyZWQgeWV0LlxyXG4gICAgICAgICAgaWYgKGZpZWxkLmF1dG9Qb3B1bGF0ZUZyb21TdW1tYXJ5RGF0YSkge1xyXG4gICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcclxuICAgICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgc291cmNlczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IFwic3VtbWFyeV9kYXRhXCIsXHJcbiAgICAgICAgICAgICAgICAgIHN1bW1hcnlfZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWAsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RfZW1wdHk6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRfdmFsdWVfZm91bmQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMSBPUiBOT1QoMSlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVfZmllbGQ6IHsgdmFsdWU6IHRydWUgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChoYXNLZXkoZmllbGQsIFwiYXV0b2ZpbGxcIikpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0tleShmaWVsZC5hdXRvZmlsbCwgXCJ0eXBlXCIpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpZWxkLmF1dG9maWxsLnR5cGUgPT09IFwic3RvcmFnZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcclxuICAgICAgICAgICAgICAgICAgaXNfZm91bmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcclxuICAgICAgICAgICAgICAgICAgc291cmNlczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJicm93c2VyX3N0b3JhZ2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfc3RvcmFnZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbm90X2VtcHR5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjEgT1IgTk9UKDEpXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQuYXV0b2ZpbGwudHlwZSA9PT0gXCJjb25maWdcIikge1xyXG4gICAgICAgICAgICAgICAgZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IFwiZmllbGRfY29uZmlnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9jb25maWc6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaXNfbm90X2VtcHR5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW5hYmxlX2ZpZWxkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVfZmllbGQ6IHsgdmFsdWU6IHRydWUgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdID0ge1xyXG4gICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcclxuICAgICAgICAgICAgICBzb3VyY2VzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJmb3JtX2RhdGFcIixcclxuICAgICAgICAgICAgICAgICAgZm9ybV9kYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBydWxlczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlzX25vdF9lbXB0eVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImVuYWJsZV9maWVsZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkTWVzc2FnZXMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9PSBcInRpdGxlXCIpIHtcclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwibWVzc2FnZXNcIiwgW10pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInRpdGxlXCIpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBoYXNLZXkoZmllbGQsIFwiYWN0aW9uXCIpICYmXHJcbiAgICAgICAgICBmaWVsZC5hY3Rpb24gPT09IFwicmVzZXRcIiAmJlxyXG4gICAgICAgICAgaGFzS2V5KGZpZWxkLCBcImZpZWxkc1wiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwicmVzZXRcIiwge1xyXG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkc1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNldEZvcm1GaWVsZHMgPSAoZm9ybUNvbmZpZzogYW55LCBmaWVsZHM6IGFueVtdKTogYW55ID0+IHtcclxuICAgICAgaWYgKGhhc0tleShmb3JtQ29uZmlnLCBcIm11bHRpRm9ybVwiKSkge1xyXG4gICAgICAgIGZvcm1Db25maWcubXVsdGlGb3JtW1wiZmllbGRzXCJdID0gZmllbGRzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvcm1Db25maWdbXCJmaWVsZHNcIl0gPSBmaWVsZHM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmb3JtQ29uZmlnO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzZXRGb3JtRmllbGRHcm91cHMgPSAoZm9ybUNvbmZpZzogYW55LCBncm91cHM6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGZvcm1Db25maWdbXCJmaWVsZEdyb3Vwc1wiXSA9IGdyb3VwcztcclxuXHJcbiAgICAgIHJldHVybiBmb3JtQ29uZmlnO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVGb3JtRmllbGRHcm91cHMgPSAoZmllbGRHcm91cHM6IGFueSwgZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiZ3JvdXBLZXlcIikpIHtcclxuICAgICAgICBpZiAoaGFzS2V5KGZpZWxkR3JvdXBzLCBmaWVsZC5ncm91cEtleSkpIHtcclxuICAgICAgICAgIGZpZWxkR3JvdXBzW2ZpZWxkLmdyb3VwS2V5XS5wdXNoKGZpZWxkLmtleSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpZWxkR3JvdXBzW2ZpZWxkLmdyb3VwS2V5XSA9IFtmaWVsZC5rZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGZpZWxkR3JvdXBzO1xyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgY29ubmVjdGVkRmllbGRNYXBwaW5nOiBhbnkgPSB7XHJcbiAgICAgIHBhcmVudDoge30sXHJcbiAgICAgIGNoaWxkOiB7fVxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgZmllbGRzOiBhbnlbXSA9IHRoaXMuZ2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnKTtcclxuXHJcbiAgICBsZXQgZmllbGRHcm91cHM6IGFueSA9IHt9O1xyXG5cclxuICAgIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgICBmaWVsZCA9IHVwZGF0ZU9uRmllbGRUeXBlKGZpZWxkKTtcclxuXHJcbiAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRLZXlzKGZpZWxkKTtcclxuXHJcbiAgICAgIC8vIGNvbm5lY3RlZEZpZWxkTWFwcGluZyA9IGdldENvbm5lY3RlZEVsZW1lbnRGaWVsZE1hcHBpbmcoXHJcbiAgICAgIC8vICAgZmllbGQsXHJcbiAgICAgIC8vICAgY29ubmVjdGVkRmllbGRNYXBwaW5nXHJcbiAgICAgIC8vICk7XHJcbiAgICAgIC8vIGZpZWxkID0gdXBkYXRlQ29ubmVjdGVkRWxlbWVudHNLZXlWYWx1ZShmaWVsZCwgY29ubmVjdGVkRmllbGRNYXBwaW5nKTtcclxuICAgICAgZmllbGRHcm91cHMgPSB1cGRhdGVGb3JtRmllbGRHcm91cHMoZmllbGRHcm91cHMsIGZpZWxkKTtcclxuXHJcbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGREZWZhdWx0VmFsdWVDb25maWcoZmllbGQpO1xyXG5cclxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZFZhbGlkYXRvckNvbmZpZyhmaWVsZCk7XHJcblxyXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24oZmllbGQpO1xyXG5cclxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZE1lc3NhZ2VzKGZpZWxkKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkR3JvdXBzKGZvcm1Db25maWcsIGZpZWxkR3JvdXBzKTtcclxuXHJcbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnLCBmaWVsZHMpO1xyXG5cclxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xyXG4gIH1cclxufVxyXG4iXX0=
583
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXIuY29uZmlnLWNvbnZlcnRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9yZW5kZXJlci5jb25maWctY29udmVydGVyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEUsTUFBTSxPQUFPLFNBQVM7SUFBdEI7UUFDRSxrQkFBYSxHQUFHLENBQUMsVUFBZSxFQUFTLEVBQUU7WUFDekMsSUFBSSxNQUFhLENBQUM7WUFFbEIsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDNUI7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRiw0QkFBdUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxHQUFXLEVBQUUsS0FBVSxFQUFPLEVBQUU7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDcEI7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVGLHFCQUFnQixHQUFHLENBQUMsS0FBVSxFQUFFLEdBQVcsRUFBRSxLQUFVLEVB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Q0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQiwyREFBMkQ7WUFDM0QsV0FBVztZQUNYLDBCQUEwQjtZQUMxQixLQUFLO1lBQ0wseUVBQXlFO1lBQ3pFLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFeEQsS0FBSyxHQUFHLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdDLEtBQUssR0FBRywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQyxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV6RCxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUExc0JDO0lBREMsR0FBRztrREEwc0JIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVpRGF5IH0gZnJvbSBcIkB0YWlnYS11aS9jZGtcIjtcclxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcIi4vZm9ybS12aWV3L2Zvcm0tdmlldy5kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IGNvbnZlcnREYXRlU3RyaW5nVG9UdWlEYXlGb3JtYXQgfSBmcm9tIFwiLi9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xyXG5pbXBvcnQgeyBoYXNLZXksIGlzRW1wdHksIGlzTm90RW1wdHkgfSBmcm9tIFwiLi9yZW5kZXJlci5oZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb252ZXJ0ZXIge1xyXG4gIGdldEZvcm1GaWVsZHMgPSAoZm9ybUNvbmZpZzogYW55KTogYW55W10gPT4ge1xyXG4gICAgbGV0IGZpZWxkczogYW55W107XHJcblxyXG4gICAgaWYgKGhhc0tleShmb3JtQ29uZmlnLCBcIm11bHRpRm9ybVwiKSkge1xyXG4gICAgICBmaWVsZHMgPSBmb3JtQ29uZmlnLm11bHRpRm9ybS5maWVsZHM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWVsZHMgPSBmb3JtQ29uZmlnLmZpZWxkcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmllbGRzO1xyXG4gIH07XHJcblxyXG4gIHNldE1pc3NpbmdGaWVsZEtleVZhbHVlID0gKGZpZWxkOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55ID0+IHtcclxuICAgIGlmICghaGFzS2V5KGZpZWxkLCBrZXkpKSB7XHJcbiAgICAgIGZpZWxkW2tleV0gPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZDtcclxuICB9O1xyXG5cclxuICBzZXRGaWVsZEtleVZhbHVlID0gKGZpZWxkOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55ID0+IHtcclxuICAgIGZpZWxkW2tleV0gPSB2YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfTtcclxuXHJcbiAgcmVtb3ZlRmllbGRLZXkgPSAoZmllbGQ6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkgPT4ge1xyXG4gICAgaWYgKGhhc0tleShmaWVsZCwga2V5KSkge1xyXG4gICAgICBkZWxldGUgZmllbGRba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfTtcclxuXHJcbiAgQGxvZ1xyXG4gIGNvbnZlcnRGb3JtQ29uZmlnKGZvcm1Db25maWc6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCB1cGRhdGVPbkZpZWxkVHlwZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGl0bGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSYWRpbyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBcInNpemVcIixcclxuICAgICAgICAgIFwibVwiXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBcIm9yaWVudGF0aW9uXCIsXHJcbiAgICAgICAgICBcInZlcnRpY2FsXCJcclxuICAgICAgICApO1xyXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zLm1hcCgoeDogYW55KTogYW55ID0+IHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlIH07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaGFzS2V5KHgsIFwibGFiZWxcIikgJiYgaGFzS2V5KHgsIFwiZGlzYWJsZWRcIikpIHtcclxuICAgICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU90cCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBcIm1hc2tcIixcclxuICAgICAgICAgIG5ldyBBcnJheShmaWVsZC5wcm9wZXJ0aWVzLm90cExlbmd0aCkuZmlsbChcIiNcIikuam9pbihcIiBcIilcclxuICAgICAgICApO1xyXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWVsZDtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRGF0ZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgICBpZiAoaGFzS2V5KGZpZWxkLCBcIm1pblwiKSkge1xyXG4gICAgICAgICAgY29uc3QgdHVpRGF5ID0gY29udmVydERhdGVTdHJpbmdUb1R1aURheUZvcm1hdChmaWVsZFtcIm1pblwiXSk7XHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBcIm1pblwiLFxyXG4gICAgICAgICAgICB0dWlEYXlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBcIm1pblwiLFxyXG4gICAgICAgICAgICBuZXcgVHVpRGF5KDAsIDAsIDEpXHJcbiAgICAgICAgICApOyAvLyBZZWFyIC0gMDAwMCwgTW9udGggLSAwICgwIEluZGV4aW5nKSwgRGF5IC0gMVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGhhc0tleShmaWVsZCwgXCJtYXhcIikpIHtcclxuICAgICAgICAgIGNvbnN0IHR1aURheSA9IGNvbnZlcnREYXRlU3RyaW5nVG9UdWlEYXlGb3JtYXQoZmllbGRbXCJtYXhcIl0pO1xyXG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgXCJtYXhcIixcclxuICAgICAgICAgICAgdHVpRGF5XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgXCJtYXhcIixcclxuICAgICAgICAgICAgbmV3IFR1aURheShcclxuICAgICAgICAgICAgICBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIC8vIFllYXIgLSA5OTk5XHJcbiAgICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRNb250aCgpLCAvLyBNb250aCAtIDExICgwIEluZGV4aW5nKVxyXG4gICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC8vIERheSAtIDMxXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU51bWJlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgICBpZiAoaGFzS2V5KGZpZWxkLCBcImtleVwiKSkge1xyXG4gICAgICAgICAgaWYgKGZpZWxkLmtleSA9PT0gXCJhYWRoYWFyX251bWJlclwiKSB7XHJcbiAgICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJhYWRoYWFyX251bWJlclwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiY29udGFjdF9udW1iZXJcIikge1xyXG4gICAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwicGhvbmVcIik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFwicGhvbmVcIiB8fCBmaWVsZC50eXBlID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgICAgXCJjb3VudHJ5Q29kZVwiLFxyXG4gICAgICAgICAgICAgIFwiKzkxXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcInBob25lTWFza0FmdGVyQ291bnRyeUNvZGVcIixcclxuICAgICAgICAgICAgICBcIiMjIyMtIyMjIyMjXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcInJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlXCIsXHJcbiAgICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICAgIFwiZGVjaW1hbFwiLFxyXG4gICAgICAgICAgICAgIFwibmV2ZXJcIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICAgIFwicHJlZml4XCIsXHJcbiAgICAgICAgICAgICAgXCJcIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICAgIFwicG9zdGZpeFwiLFxyXG4gICAgICAgICAgICAgIFwiXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcIm1pblwiLFxyXG4gICAgICAgICAgICAgIC1JbmZpbml0eVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICAgIFwibWF4XCIsXHJcbiAgICAgICAgICAgICAgSW5maW5pdHlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgICAgZmllbGQucHJvcGVydGllcyxcclxuICAgICAgICAgICAgICBcInByZWNpc2lvblwiLFxyXG4gICAgICAgICAgICAgIDJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImhpZGRlblwiLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWVsZDtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQXBpQ2FsbCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgICBpZiAoIWhhc0tleShmaWVsZC5wcm9wZXJ0aWVzLCBcInNoYXBlXCIpKSB7XHJcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBcInNoYXBlXCIsXHJcbiAgICAgICAgICAgIG51bGxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaGFzS2V5KGZpZWxkLCBcInNob3dMb2FkZXJcIikpIHtcclxuICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWhhc0tleShmaWVsZC5wcm9wZXJ0aWVzLCBcInNpemVcIikpIHtcclxuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoXHJcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICAgIFwic2l6ZVwiLFxyXG4gICAgICAgICAgICBcIm1cIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFoYXNLZXkoZmllbGQsIFwiYXBpXCIpKSB7XHJcbiAgICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJhcGlcIiwge30pO1xyXG5cclxuICAgICAgICAgIGZpZWxkLmFwaSA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQuYXBpLCBcInVybFwiLCBcIlwiKTtcclxuICAgICAgICAgIGZpZWxkLmFwaSA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQuYXBpLCBcInJlcXVlc3RcIiwgXCJcIik7XHJcbiAgICAgICAgICBmaWVsZC5hcGkgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLmFwaSwgXCJyZXNwb25zZVwiLCBcIlwiKTtcclxuICAgICAgICAgIGZpZWxkLmFwaSA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQuYXBpLCBcInN0YXR1c1wiLCBcIlwiKTtcclxuXHJcbiAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShcclxuICAgICAgICAgICAgZmllbGQuYXBpLnN0YXR1cyxcclxuICAgICAgICAgICAgXCJ2YWx1ZVwiLFxyXG4gICAgICAgICAgICBcImRlZmF1bHRcIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGZpZWxkLmFwaS5zdGF0dXMgPSB0aGlzLnNldE1pc3NpbmdGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICBmaWVsZC5hcGkuc3RhdHVzLFxyXG4gICAgICAgICAgICBcImxhYmVsc1wiLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDogXCJDYWxsIEFQSVwiLFxyXG4gICAgICAgICAgICAgIGxvYWRpbmc6IFwiQ2FsbCBBUElcIixcclxuICAgICAgICAgICAgICBzdWNjZXNzOiBcIkFQSSBTdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgZmFpbGVkOiBcIkFQSSBGYWlsZWRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNlYXJjaFRleHQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgICAgaWYgKGhhc0tleShmaWVsZCwgXCJ0eXBlXCIpKSB7XHJcbiAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gXCJzZWFyY2gtdGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGZpZWxkID0gdGhpcy5zZXRGaWVsZEtleVZhbHVlKFxyXG4gICAgICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgICAgIFwidHlwZVwiLFxyXG4gICAgICAgICAgICAgIFwiZHJvcGRvd24td2l0aC1zZWFyY2hcIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUZXh0ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBmaWVsZDtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJ0aXRsZVwiOlxyXG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUaXRsZShmaWVsZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwicmFkaW9cIjpcclxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUmFkaW8oZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm90cFwiOlxyXG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVPdHAoZmllbGQpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImRhdGVcIjpcclxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0ZShmaWVsZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZU51bWJlcihmaWVsZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiYXBpLWNhbGxcIjpcclxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQXBpQ2FsbChmaWVsZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwic2VhcmNoLXRleHRcIjpcclxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VhcmNoVGV4dChmaWVsZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmaWVsZDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZ2V0Q29ubmVjdGVkRWxlbWVudEtleVZhbHVlT2JqZWN0ID0gKGtleTogYW55KTogYW55ID0+IHtcclxuICAgICAgY29uc3Qgb2JqZWN0ID0ge1xyXG4gICAgICAgIGtleToga2V5LFxyXG4gICAgICAgIGNvbmRpdGlvbnM6IHsgZm9ybXVsYTogXCJcIiwgcnVsZXM6IFtdIH0sXHJcbiAgICAgICAgYWN0aW9uczogeyBzdWNjZXNzOiBbXSwgZmFpbHVyZTogW10gfVxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gb2JqZWN0O1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBmb3JtYXRGaWVsZEtleXMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiY29ubmVjdGVkVG9cIikpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkW1wiY29ubmVjdGVkVG9cIl0gPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkRWxlbWVudHNcIl0gPSBbXHJcbiAgICAgICAgICAgIGdldENvbm5lY3RlZEVsZW1lbnRLZXlWYWx1ZU9iamVjdChmaWVsZFtcImNvbm5lY3RlZFRvXCJdKVxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRUb1wiXSA9IGZpZWxkW1wiY29ubmVjdGVkVG9cIl0ubWFwKChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29ubmVjdGVkRWxlbWVudEtleVZhbHVlT2JqZWN0KGtleSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkRWxlbWVudHNcIl0gPSBmaWVsZFtcImNvbm5lY3RlZFRvXCJdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlbW92ZUZpZWxkS2V5KGZpZWxkLCBcImNvbm5lY3RlZFRvXCIpO1xyXG5cclxuICAgICAgaWYgKGhhc0tleShmaWVsZCwgXCJjb25uZWN0ZWRUb1BhcmVudFwiKSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZmllbGRbXCJjb25uZWN0ZWRUb1BhcmVudFwiXSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRQYXJlbnRGaWVsZHNcIl0gPSBbXHJcbiAgICAgICAgICAgIGdldENvbm5lY3RlZEVsZW1lbnRLZXlWYWx1ZU9iamVjdChmaWVsZFtcImNvbm5lY3RlZFRvUGFyZW50XCJdKVxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRQYXJlbnRGaWVsZHNcIl0gPSBnZXRDb25uZWN0ZWRFbGVtZW50S2V5VmFsdWVPYmplY3QoXHJcbiAgICAgICAgICAgIGZpZWxkW1wiY29ubmVjdGVkVG9QYXJlbnRcIl1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtb3ZlRmllbGRLZXkoZmllbGQsIFwiY29ubmVjdGVkVG9QYXJlbnRcIik7XHJcblxyXG4gICAgICB0aGlzLnJlbW92ZUZpZWxkS2V5KGZpZWxkLCBcInNpZGVFZmZlY3RcIik7XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGdldENvbm5lY3RlZEVsZW1lbnRGaWVsZE1hcHBpbmcgPSAoXHJcbiAgICAgIGZpZWxkOiBhbnksXHJcbiAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZzogYW55XHJcbiAgICApOiBhbnkgPT4ge1xyXG4gICAgICBjb25zdCBnZXRDb25uZWN0ZWRFbGVtZW50Q2hpbGRGaWVsZE1hcHBpbmcgPSAoXHJcbiAgICAgICAgZmllbGQ6IGFueSxcclxuICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmc6IGFueVxyXG4gICAgICApOiBhbnkgPT4ge1xyXG4gICAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiY29ubmVjdGVkRWxlbWVudHNcIikpIHtcclxuICAgICAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcImNoaWxkXCJdW2ZpZWxkLmtleV0gPSBmaWVsZC5jb25uZWN0ZWRFbGVtZW50cztcclxuICAgICAgICB9IGVsc2UgaWYgKGhhc0tleShjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJjaGlsZFwiXSwgZmllbGQua2V5KSkge1xyXG4gICAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRFbGVtZW50c1wiXSA9XHJcbiAgICAgICAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcImNoaWxkXCJdW2ZpZWxkLmtleV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBmaWVsZDogZmllbGQsIGNvbm5lY3RlZEZpZWxkTWFwcGluZzogY29ubmVjdGVkRmllbGRNYXBwaW5nIH07XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBnZXRDb25uZWN0ZWRFbGVtZW50UGFyZW50RmllbGRNYXBwaW5nID0gKFxyXG4gICAgICAgIGZpZWxkOiBhbnksXHJcbiAgICAgICAgY29ubmVjdGVkRmllbGRNYXBwaW5nOiBhbnlcclxuICAgICAgKTogYW55ID0+IHtcclxuICAgICAgICBpZiAoaGFzS2V5KGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcImNoaWxkXCJdLCBmaWVsZC5rZXkpKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBjb25uZWN0ZWRQYXJlbnRLZXkgb2YgY29ubmVjdGVkRmllbGRNYXBwaW5nW1wiY2hpbGRcIl1bXHJcbiAgICAgICAgICAgIGZpZWxkLmtleVxyXG4gICAgICAgICAgXSkge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgaGFzS2V5KGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcInBhcmVudFwiXSwgY29ubmVjdGVkUGFyZW50S2V5W1wia2V5XCJdKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJwYXJlbnRcIl1bY29ubmVjdGVkUGFyZW50S2V5W1wia2V5XCJdXS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgZmllbGQua2V5XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmdbXCJwYXJlbnRcIl1bY29ubmVjdGVkUGFyZW50S2V5W1wia2V5XCJdXSA9IFtcclxuICAgICAgICAgICAgICAgIGZpZWxkLmtleVxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGZpZWxkOiBmaWVsZCwgY29ubmVjdGVkRmllbGRNYXBwaW5nOiBjb25uZWN0ZWRGaWVsZE1hcHBpbmcgfTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnN0IGNvbm5lY3RlZENoaWxkRmllbGRNYXBwaW5nID0gZ2V0Q29ubmVjdGVkRWxlbWVudENoaWxkRmllbGRNYXBwaW5nKFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZ1xyXG4gICAgICApO1xyXG4gICAgICBmaWVsZCA9IGNvbm5lY3RlZENoaWxkRmllbGRNYXBwaW5nW1wiZmllbGRcIl07XHJcbiAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZyA9XHJcbiAgICAgICAgY29ubmVjdGVkQ2hpbGRGaWVsZE1hcHBpbmdbXCJjb25uZWN0ZWRGaWVsZE1hcHBpbmdcIl07XHJcblxyXG4gICAgICBjb25zdCBjb25uZWN0ZWRQYXJlbnRGaWVsZE1hcHBpbmcgPSBnZXRDb25uZWN0ZWRFbGVtZW50UGFyZW50RmllbGRNYXBwaW5nKFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZ1xyXG4gICAgICApO1xyXG4gICAgICBmaWVsZCA9IGNvbm5lY3RlZFBhcmVudEZpZWxkTWFwcGluZ1tcImZpZWxkXCJdO1xyXG4gICAgICBjb25uZWN0ZWRGaWVsZE1hcHBpbmcgPVxyXG4gICAgICAgIGNvbm5lY3RlZFBhcmVudEZpZWxkTWFwcGluZ1tcImNvbm5lY3RlZEZpZWxkTWFwcGluZ1wiXTtcclxuXHJcbiAgICAgIHJldHVybiBjb25uZWN0ZWRGaWVsZE1hcHBpbmc7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZUNvbm5lY3RlZEVsZW1lbnRzS2V5VmFsdWUgPSAoXHJcbiAgICAgIGZpZWxkOiBhbnksXHJcbiAgICAgIGNvbm5lY3RlZEZpZWxkTWFwcGluZzogYW55XHJcbiAgICApOiBhbnkgPT4ge1xyXG4gICAgICBpZiAoaGFzS2V5KGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcImNoaWxkXCJdLCBmaWVsZC5rZXkpKSB7XHJcbiAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRFbGVtZW50c1wiXSA9IGNvbm5lY3RlZEZpZWxkTWFwcGluZ1tcImNoaWxkXCJdW2ZpZWxkLmtleV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChoYXNLZXkoY29ubmVjdGVkRmllbGRNYXBwaW5nW1wicGFyZW50XCJdLCBmaWVsZC5rZXkpKSB7XHJcbiAgICAgICAgZmllbGRbXCJjb25uZWN0ZWRQYXJlbnRGaWVsZHNcIl0gPVxyXG4gICAgICAgICAgY29ubmVjdGVkRmllbGRNYXBwaW5nW1wicGFyZW50XCJdW2ZpZWxkLmtleV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmaWVsZDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdXBkYXRlRmllbGRWYWxpZGF0b3JDb25maWcgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9PSBcInRpdGxlXCIpIHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gaGFzS2V5KGZpZWxkLCBcInZhbGlkYXRvcnNcIikgPyBmaWVsZC52YWxpZGF0b3JzIDoge307XHJcblxyXG4gICAgICAgIGZpZWxkID0gdGhpcy5zZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHt9KTtcclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHtcclxuICAgICAgICAgIC4uLmZpZWxkW1widmFsaWRhdG9yc1wiXSxcclxuICAgICAgICAgIG1pbjogaGFzS2V5KHZhbGlkYXRvcnMsIFwibWluXCIpXHJcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eSh2YWxpZGF0b3JzLm1pbilcclxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbilcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgICAgOiBoYXNLZXkoZmllbGQsIFwibWluXCIpXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1pbilcclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgICAgbWF4OiBoYXNLZXkodmFsaWRhdG9ycywgXCJtYXhcIilcclxuICAgICAgICAgICAgPyBpc05vdEVtcHR5KHZhbGlkYXRvcnMubWF4KVxyXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4KVxyXG4gICAgICAgICAgICAgIDogbnVsbFxyXG4gICAgICAgICAgICA6IGhhc0tleShmaWVsZCwgXCJtYXhcIilcclxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4KVxyXG4gICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgICByZXF1aXJlZDogaGFzS2V5KHZhbGlkYXRvcnMsIFwicmVxdWlyZWRcIilcclxuICAgICAgICAgICAgPyBCb29sZWFuKHZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgICAgICAgICAgIDogaGFzS2V5KGZpZWxkLCBcInJlcXVpcmVkXCIpXHJcbiAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcclxuICAgICAgICAgICAgOiBmYWxzZSxcclxuICAgICAgICAgIG1pbkxlbmd0aDogaGFzS2V5KHZhbGlkYXRvcnMsIFwibWluTGVuZ3RoXCIpXHJcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eSh2YWxpZGF0b3JzLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgICAgOiBoYXNLZXkoZmllbGQsIFwibWluTGVuZ3RoXCIpXHJcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgICAgbWF4TGVuZ3RoOiBoYXNLZXkodmFsaWRhdG9ycywgXCJtYXhMZW5ndGhcIilcclxuICAgICAgICAgICAgPyBpc05vdEVtcHR5KHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIDogbnVsbFxyXG4gICAgICAgICAgICA6IGhhc0tleShmaWVsZCwgXCJsZW5ndGhcIilcclxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubGVuZ3RoKVxyXG4gICAgICAgICAgICA6IGhhc0tleShmaWVsZCwgXCJtYXhMZW5ndGhcIilcclxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgICBwYXR0ZXJuOiBoYXNLZXkodmFsaWRhdG9ycywgXCJwYXR0ZXJuXCIpXHJcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eSh2YWxpZGF0b3JzLnBhdHRlcm4pXHJcbiAgICAgICAgICAgICAgPyB2YWxpZGF0b3JzLnBhdHRlcm5cclxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA6IGhhc0tleShmaWVsZCwgXCJwYXR0ZXJuXCIpXHJcbiAgICAgICAgICAgID8geyBrZXk6IFwiQ1VTVE9NXCIsIHBhdHRlcm46IFN0cmluZyhmaWVsZC5wYXR0ZXJuKSB9XHJcbiAgICAgICAgICAgIDogaGFzS2V5KGZpZWxkLCBcInJlZ2V4XCIpXHJcbiAgICAgICAgICAgID8geyBrZXk6IFwiQ1VTVE9NXCIsIHBhdHRlcm46IFN0cmluZyhmaWVsZC5yZWdleCkgfVxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBkZWxldGUgZmllbGQubWluO1xyXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXg7XHJcbiAgICAgICAgZGVsZXRlIGZpZWxkLnJlcXVpcmVkO1xyXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW5MZW5ndGg7XHJcbiAgICAgICAgZGVsZXRlIGZpZWxkLmxlbmd0aDtcclxuICAgICAgICBkZWxldGUgZmllbGQubWF4TGVuZ3RoO1xyXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5wYXR0ZXJuO1xyXG4gICAgICAgIGRlbGV0ZSBmaWVsZC5yZWdleDtcclxuXHJcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwidGV4dFwiOlxyXG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XHJcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpc0VtcHR5KGZpZWxkLnZhbGlkYXRvcnM/Lm1pbikpIHtcclxuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzRW1wdHkoZmllbGQudmFsaWRhdG9ycz8ubWF4KSkge1xyXG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNFbXB0eShmaWVsZC52YWxpZGF0b3JzPy5taW5MZW5ndGgpKSB7XHJcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0VtcHR5KGZpZWxkLnZhbGlkYXRvcnM/Lm1heExlbmd0aCkpIHtcclxuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzRW1wdHkoZmllbGQudmFsaWRhdG9ycz8ucGF0dGVybikpIHtcclxuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLnBhdHRlcm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWVsZC5mb2N1cyA9IGZhbHNlO1xyXG4gICAgICAgIGZpZWxkLmludmFsaWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVGaWVsZERlZmF1bHRWYWx1ZUNvbmZpZyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcclxuICAgICAgaWYgKGZpZWxkLnR5cGUgIT09IFwidGl0bGVcIikge1xyXG4gICAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiZGVmYXVsdFZhbHVlXCIpKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICAgICAgfSBlbHNlIGlmIChoYXNLZXkoZmllbGQsIFwiZGVmYXVsdFwiKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaGFzS2V5KGZpZWxkLCBcImRlZmF1bHRWYWxcIikpIHtcclxuICAgICAgICAgICAgLy8gQ3VycmVudGx5IGJlbG93IGxpbmUgaXMgY29tbWVudGVkIGJlY2F1c2UgaXQgY2F1c2VkIGlzc3VlcyBpbiBzZXR0aW5nIERlZmF1bHQgVmFsdWUuXHJcbiAgICAgICAgICAgIC8vIGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdID0gZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xyXG4gICAgICAgICAgICAvLyBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIFRPRE86IENvbmRpdGlvbiBmb3IgYWxsX2Zvcm1zX2RhdGEgaXMgbm90IGNvbnNpZGVyZWQgeWV0LlxyXG4gICAgICAgICAgaWYgKGZpZWxkLmF1dG9Qb3B1bGF0ZUZyb21TdW1tYXJ5RGF0YSkge1xyXG4gICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcclxuICAgICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgc291cmNlczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IFwic3VtbWFyeV9kYXRhXCIsXHJcbiAgICAgICAgICAgICAgICAgIHN1bW1hcnlfZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWAsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc19ub3RfZW1wdHk6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRfdmFsdWVfZm91bmQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMSBPUiBOT1QoMSlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVfZmllbGQ6IHsgdmFsdWU6IHRydWUgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChoYXNLZXkoZmllbGQsIFwiYXV0b2ZpbGxcIikpIHtcclxuICAgICAgICAgICAgaWYgKGhhc0tleShmaWVsZC5hdXRvZmlsbCwgXCJ0eXBlXCIpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpZWxkLmF1dG9maWxsLnR5cGUgPT09IFwic3RvcmFnZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXSA9IHtcclxuICAgICAgICAgICAgICAgICAgaXNfZm91bmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcclxuICAgICAgICAgICAgICAgICAgc291cmNlczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJicm93c2VyX3N0b3JhZ2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfc3RvcmFnZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpc19ub3RfZW1wdHlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbm90X2VtcHR5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJlbmFibGVfZmllbGRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjEgT1IgTk9UKDEpXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQuYXV0b2ZpbGwudHlwZSA9PT0gXCJjb25maWdcIikge1xyXG4gICAgICAgICAgICAgICAgZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IFwiZmllbGRfY29uZmlnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9jb25maWc6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCIxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaXNfbm90X2VtcHR5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZW5hYmxlX2ZpZWxkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVfZmllbGQ6IHsgdmFsdWU6IHRydWUgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdID0ge1xyXG4gICAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcclxuICAgICAgICAgICAgICBzb3VyY2VzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogXCJmb3JtX2RhdGFcIixcclxuICAgICAgICAgICAgICAgICAgZm9ybV9kYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YCxcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBydWxlczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIjFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlzX25vdF9lbXB0eVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzX25vdF9lbXB0eToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNldF9kZWZhdWx0X3ZhbHVlX2ZvdW5kXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcIjFcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfZGVmYXVsdF92YWx1ZV9mb3VuZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImVuYWJsZV9maWVsZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxIE9SIE5PVCgxKVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV9maWVsZDogeyB2YWx1ZTogdHJ1ZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkTWVzc2FnZXMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9PSBcInRpdGxlXCIpIHtcclxuICAgICAgICBmaWVsZCA9IHRoaXMuc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwibWVzc2FnZXNcIiwgW10pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInRpdGxlXCIpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBoYXNLZXkoZmllbGQsIFwiYWN0aW9uXCIpICYmXHJcbiAgICAgICAgICBmaWVsZC5hY3Rpb24gPT09IFwicmVzZXRcIiAmJlxyXG4gICAgICAgICAgaGFzS2V5KGZpZWxkLCBcImZpZWxkc1wiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZmllbGQgPSB0aGlzLnNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwicmVzZXRcIiwge1xyXG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkc1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNldEZvcm1GaWVsZHMgPSAoZm9ybUNvbmZpZzogYW55LCBmaWVsZHM6IGFueVtdKTogYW55ID0+IHtcclxuICAgICAgaWYgKGhhc0tleShmb3JtQ29uZmlnLCBcIm11bHRpRm9ybVwiKSkge1xyXG4gICAgICAgIGZvcm1Db25maWcubXVsdGlGb3JtW1wiZmllbGRzXCJdID0gZmllbGRzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvcm1Db25maWdbXCJmaWVsZHNcIl0gPSBmaWVsZHM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmb3JtQ29uZmlnO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBzZXRGb3JtRmllbGRHcm91cHMgPSAoZm9ybUNvbmZpZzogYW55LCBncm91cHM6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGZvcm1Db25maWdbXCJmaWVsZEdyb3Vwc1wiXSA9IGdyb3VwcztcclxuXHJcbiAgICAgIHJldHVybiBmb3JtQ29uZmlnO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVGb3JtRmllbGRHcm91cHMgPSAoZmllbGRHcm91cHM6IGFueSwgZmllbGQ6IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIGlmIChoYXNLZXkoZmllbGQsIFwiZ3JvdXBLZXlcIikpIHtcclxuICAgICAgICBpZiAoaGFzS2V5KGZpZWxkR3JvdXBzLCBmaWVsZC5ncm91cEtleSkpIHtcclxuICAgICAgICAgIGZpZWxkR3JvdXBzW2ZpZWxkLmdyb3VwS2V5XS5wdXNoKGZpZWxkLmtleSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpZWxkR3JvdXBzW2ZpZWxkLmdyb3VwS2V5XSA9IFtmaWVsZC5rZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGZpZWxkR3JvdXBzO1xyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgY29ubmVjdGVkRmllbGRNYXBwaW5nOiBhbnkgPSB7XHJcbiAgICAgIHBhcmVudDoge30sXHJcbiAgICAgIGNoaWxkOiB7fVxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgZmllbGRzOiBhbnlbXSA9IHRoaXMuZ2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnKTtcclxuXHJcbiAgICBsZXQgZmllbGRHcm91cHM6IGFueSA9IHt9O1xyXG5cclxuICAgIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgICBmaWVsZCA9IHVwZGF0ZU9uRmllbGRUeXBlKGZpZWxkKTtcclxuXHJcbiAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRLZXlzKGZpZWxkKTtcclxuXHJcbiAgICAgIC8vIGNvbm5lY3RlZEZpZWxkTWFwcGluZyA9IGdldENvbm5lY3RlZEVsZW1lbnRGaWVsZE1hcHBpbmcoXHJcbiAgICAgIC8vICAgZmllbGQsXHJcbiAgICAgIC8vICAgY29ubmVjdGVkRmllbGRNYXBwaW5nXHJcbiAgICAgIC8vICk7XHJcbiAgICAgIC8vIGZpZWxkID0gdXBkYXRlQ29ubmVjdGVkRWxlbWVudHNLZXlWYWx1ZShmaWVsZCwgY29ubmVjdGVkRmllbGRNYXBwaW5nKTtcclxuICAgICAgZmllbGRHcm91cHMgPSB1cGRhdGVGb3JtRmllbGRHcm91cHMoZmllbGRHcm91cHMsIGZpZWxkKTtcclxuXHJcbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGREZWZhdWx0VmFsdWVDb25maWcoZmllbGQpO1xyXG5cclxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZFZhbGlkYXRvckNvbmZpZyhmaWVsZCk7XHJcblxyXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24oZmllbGQpO1xyXG5cclxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZE1lc3NhZ2VzKGZpZWxkKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkR3JvdXBzKGZvcm1Db25maWcsIGZpZWxkR3JvdXBzKTtcclxuXHJcbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnLCBmaWVsZHMpO1xyXG5cclxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -2011,7 +2011,7 @@ class KwikIDFormViewComponent {
2011
2011
  }
2012
2012
  }
2013
2013
  /** @nocollapse */ KwikIDFormViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormViewComponent, deps: [{ token: TuiPushService }, { token: TuiAlertService }, { token: KwikIDFormViewService }], target: i0.ɵɵFactoryTarget.Component });
2014
- /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", apiCallResponse: "apiCallResponse", isMobileView: "isMobileView", allFormsData: "allFormsData", formsList: "formsList" }, outputs: { onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", getActiveFormData: "getActiveFormData" }, providers: [KwikIDFormViewService], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n <hr />\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div\r\n class=\"title\"\r\n [class.hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n<tui-push\r\n id=\"field-error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Missing/Incorrect Fields!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.kwikid-form-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}.kwikid-form.show{width:100%;height:100%;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-row-gap:1rem;row-gap:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:10px;column-gap:10px}.kwikid-form-buttons *{flex-grow:1}#uf-form-fields-header-container{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:.5rem;row-gap:.5rem;padding:1rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1em}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:.5rem;gap:.5rem}.title:not(:first-child){margin-top:.5rem}.title.hidden{display:none}.large-wrapper{width:100%;height:60px}.large-wrapper:first-child{margin-bottom:auto}.large-wrapper:last-child{margin-top:auto}.kwikid-form-container-loading{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;grid-row-gap:1rem;row-gap:1rem;padding:1rem}#field-error-notification{background-color:var(--tui-error-fill);color:#fff!important}#field-error-notification .t-top{color:#fff!important}#field-error-notification .t-close{color:#fff!important}\n"], components: [{ type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i2.KwikUICheckboxBlockComponent, selector: "kwikui-checkbox-block", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "contentAlign", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "countryCode", "phoneMaskAfterCountryCode", "removeCountryCodeFromValue", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i2.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "orientation", "items", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i2.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i4.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4.TuiPushDirective, selector: "tui-push" }] });
2014
+ /** @nocollapse */ KwikIDFormViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: { formConfig: "formConfig", formData: "formData", apiCallResponse: "apiCallResponse", isMobileView: "isMobileView", allFormsData: "allFormsData", formsList: "formsList" }, outputs: { onClickViewForms: "onClickViewForms", onClickSaveForm: "onClickSaveForm", onClickApiCall: "onClickApiCall", getActiveFormData: "getActiveFormData" }, providers: [KwikIDFormViewService], usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n <hr />\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div\r\n class=\"title\"\r\n [class.hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n<tui-push\r\n id=\"field-error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Missing/Incorrect Fields!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.kwikid-form-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}.kwikid-form.show{width:100%;height:100%;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch;grid-row-gap:1rem;row-gap:1rem}.kwikid-form-buttons{width:100%;bottom:0px;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-column-gap:10px;column-gap:10px}.kwikid-form-buttons *{flex-grow:1}#uf-form-fields-header-container{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:flex-start;grid-row-gap:.5rem;row-gap:.5rem;padding:1rem}#uf-form-fields-header-container hr{width:100%}#uf-form-fields-title{color:#000;font-size:1.75em;font-weight:bold}#uf-form-fields-steps{color:var(--color-on-secondary-container);font-size:1em}.title{border-left:.25rem solid var(--tui-primary);padding:.75rem;font-size:1.4em;font-weight:bold;background-color:var(--tui-secondary);display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-gap:.5rem;gap:.5rem}.title:not(:first-child){margin-top:.5rem}.title.hidden{display:none}.large-wrapper{width:100%;height:60px}.large-wrapper:first-child{margin-bottom:auto}.large-wrapper:last-child{margin-top:auto}.kwikid-form-container-loading{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;grid-row-gap:1rem;row-gap:1rem;padding:1rem}#field-error-notification{background-color:var(--tui-error-fill);color:#fff!important}#field-error-notification .t-top{color:#fff!important}#field-error-notification .t-close{color:#fff!important}\n"], components: [{ type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i2.KwikUIInputComponent, selector: "kwikui-input", inputs: ["label", "id", "type", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "validators", "case", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIMessagesComponent, selector: "kwikui-messages", inputs: ["messages", "id"] }, { type: i2.KwikUICheckboxBlockComponent, selector: "kwikui-checkbox-block", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "contentAlign", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputNumberComponent, selector: "kwikui-input-number", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "prefix", "postfix", "precision", "decimal", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputDateComponent, selector: "kwikui-input-date", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "min", "max", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputPhoneComponent, selector: "kwikui-input-phone", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "countryCode", "phoneMaskAfterCountryCode", "removeCountryCodeFromValue", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { type: i2.KwikUIRadioListComponent, selector: "kwikui-radio-list", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "size", "orientation", "items", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUISelectComboboxComponent, selector: "kwikui-select-combobox", inputs: ["label", "id", "formControlName", "formControl", "placeholder", "focus", "invalid", "disabled", "options", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIButtonApiCallComponent, selector: "kwikui-button-api-call", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "shape", "size", "apiStatus"], outputs: ["onClick"] }, { type: i2.KwikUIInputOtpComponent, selector: "kwikui-input-otp", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i2.KwikUIInputAadhaarComponent, selector: "kwikui-input-aadhaar", inputs: ["label", "id", "formControlName", "formControl", "focus", "invalid", "disabled", "placeholder", "mask", "validators", "properties"], outputs: ["getKeyValue"] }, { type: i4.TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "timestamp"], outputs: ["close"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.TuiPushAlertDirective, selector: "[tuiPush]", inputs: ["tuiPush"] }, { type: i4.TuiPushDirective, selector: "tui-push" }] });
2015
2015
  __decorate([
2016
2016
  log
2017
2017
  ], KwikIDFormViewComponent.prototype, "ngOnInit", null);
@@ -2222,7 +2222,7 @@ class KwikIDFormsListComponent {
2222
2222
  }
2223
2223
  }
2224
2224
  /** @nocollapse */ KwikIDFormsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2225
- /** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}#sidebar-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}#sidebar{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch}.uf-section-item{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;padding:1rem;grid-gap:1rem;gap:1rem;cursor:pointer;box-shadow:0 .1rem .5rem -.25rem gray;border-radius:.5rem;background-color:var(--tui-base-02)}.uf-section-item:hover{box-shadow:0 .2rem .75rem -.5rem #656565}#submit-sidebar-btn-container{width:100%;bottom:0px;z-index:1;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}#submit-sidebar-btn-container *{flex-grow:1}#uf-sections-container{display:flex;flex-direction:column;height:100%;grid-row-gap:20px;row-gap:20px;padding:1rem;overflow-y:auto}.uf-form-section-card{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:10px;column-gap:10px;border:none;border-radius:8px;background-color:#e9e9e9;height:-moz-fit-content;height:fit-content;min-height:60px;padding:10px 15px;width:100%;max-width:350px;margin:0 auto}.uf-section-item.locked{-webkit-user-select:none;user-select:none;cursor:not-allowed}.uf-form-section-card .uf-form-section-card-title{font-size:1.2em;text-align:left;line-height:1.25em}.uf-form-section-card .uf-form-section-card-action{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.uf-form-section-card .uf-form-section-card-action .uf-form-section-card-action-img{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;border-radius:100%;color:#fff;font-weight:bold}.uf-form-section-card-action-img.completed{background-color:#228b22;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.edit{background-color:#dc143c;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.locked{background-color:gray;padding:.25rem;border-radius:50%;color:#fff}#uf-progress{display:flex;padding:1rem;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;grid-gap:.5rem;gap:.5rem}#uf-progress-steps{font-size:1em;text-align:right;color:#3d3d3d}.uf-form-section-card-title{font-size:1em;font-weight:bold;color:#121212}@media screen and (max-width: 600px){#sidebar-container{max-width:unset}}.kwikid-form-header{height:70px;z-index:6}.kwikid-form-header hr{width:calc(100% - 1rem);margin-left:auto;margin-right:auto}#uf-header{display:flex;flex-direction:row;align-content:center;align-items:center;justify-content:flex-start;grid-column-gap:10px;column-gap:10px;padding:10px 20px;width:100%;max-width:calc(400px + 50vw + 2rem);margin:0 auto;height:70px;z-index:1}#uf-header #uf-header-goback-container{display:none}#uf-header #uf-header-goback-container:hover{border-radius:50%;background-color:#d3d3d3}#uf-header #uf-header-goback-container #uf-header-goback{width:100%;height:auto}#uf-header #uf-header-logo-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}#uf-header #uf-header-logo-container #uf-header-logo.small-icon{width:100%;height:50px}#uf-header #uf-header-logo-container #uf-header-logo.large-icon{width:100%;height:50px}#uf-header #uf-header-title-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;grid-row-gap:4px;row-gap:4px}#uf-header #uf-header-title-container #uf-header-title{font-size:1.4em;color:#121212}#uf-header #uf-header-title-container #uf-header-subtitle{font-size:1.2em;color:#121212}\n"], components: [{ type: i2.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["value", "max", "size", "colors"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2225
+ /** @nocollapse */ KwikIDFormsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KwikIDFormsListComponent, selector: "kwikid-forms-list", inputs: { showFormFields: "showFormFields", userConfig: "userConfig", formsList: "formsList", formsListCompleted: "formsListCompleted", isMobileView: "isMobileView" }, outputs: { onClickSetActiveForm: "onClickSetActiveForm", onClickHideFormsList: "onClickHideFormsList", onClickSubmitForms: "onClickSubmitForms" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n [shape]=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}#sidebar-container{width:100%;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center}#sidebar{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:stretch}.uf-section-item{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;align-content:center;padding:1rem;grid-gap:1rem;gap:1rem;cursor:pointer;box-shadow:0 .1rem .5rem -.25rem gray;border-radius:.5rem;background-color:var(--tui-base-02)}.uf-section-item:hover{box-shadow:0 .2rem .75rem -.5rem #656565}#submit-sidebar-btn-container{width:100%;bottom:0px;z-index:1;padding:1rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;grid-gap:1rem;gap:1rem}#submit-sidebar-btn-container *{flex-grow:1}#uf-sections-container{display:flex;flex-direction:column;height:100%;grid-row-gap:20px;row-gap:20px;padding:1rem;overflow-y:auto}.uf-form-section-card{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:10px;column-gap:10px;border:none;border-radius:8px;background-color:#e9e9e9;height:-moz-fit-content;height:fit-content;min-height:60px;padding:10px 15px;width:100%;max-width:350px;margin:0 auto}.uf-section-item.locked{-webkit-user-select:none;user-select:none;cursor:not-allowed}.uf-form-section-card .uf-form-section-card-title{font-size:1.2em;text-align:left;line-height:1.25em}.uf-form-section-card .uf-form-section-card-action{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.uf-form-section-card .uf-form-section-card-action .uf-form-section-card-action-img{width:30px;height:30px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;border-radius:100%;color:#fff;font-weight:bold}.uf-form-section-card-action-img.completed{background-color:#228b22;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.edit{background-color:#dc143c;padding:.25rem;border-radius:50%;color:#fff}.uf-form-section-card-action-img.locked{background-color:gray;padding:.25rem;border-radius:50%;color:#fff}#uf-progress{display:flex;padding:1rem;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;grid-gap:.5rem;gap:.5rem}#uf-progress-steps{font-size:1em;text-align:right;color:#3d3d3d}.uf-form-section-card-title{font-size:1em;font-weight:bold;color:#121212}@media screen and (max-width: 600px){#sidebar-container{max-width:unset}}.kwikid-form-header{height:70px;z-index:6}.kwikid-form-header hr{width:calc(100% - 1rem);margin-left:auto;margin-right:auto}#uf-header{display:flex;flex-direction:row;align-content:center;align-items:center;justify-content:flex-start;grid-column-gap:10px;column-gap:10px;padding:10px 20px;width:100%;max-width:calc(400px + 50vw + 2rem);margin:0 auto;height:70px;z-index:1}#uf-header #uf-header-goback-container{display:none}#uf-header #uf-header-goback-container:hover{border-radius:50%;background-color:#d3d3d3}#uf-header #uf-header-goback-container #uf-header-goback{width:100%;height:auto}#uf-header #uf-header-logo-container{display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}#uf-header #uf-header-logo-container #uf-header-logo.small-icon{width:100%;height:50px}#uf-header #uf-header-logo-container #uf-header-logo.large-icon{width:100%;height:50px}#uf-header #uf-header-title-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;grid-row-gap:4px;row-gap:4px}#uf-header #uf-header-title-container #uf-header-title{font-size:1.4em;color:#121212}#uf-header #uf-header-title-container #uf-header-subtitle{font-size:1.2em;color:#121212}\n"], components: [{ type: i2.KwikUIProgressSegmentedComponent, selector: "kwikui-progress-segmented", inputs: ["value", "max", "size", "colors"] }, { type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i2.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2226
2226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: KwikIDFormsListComponent, decorators: [{
2227
2227
  type: Component,
2228
2228
  args: [{
@@ -2803,6 +2803,8 @@ class Converter {
2803
2803
  if (isEmpty$1((_e = field.validators) === null || _e === void 0 ? void 0 : _e.pattern)) {
2804
2804
  delete field.validators.pattern;
2805
2805
  }
2806
+ field.focus = false;
2807
+ field.invalid = false;
2806
2808
  }
2807
2809
  return field;
2808
2810
  };