keevo-components 1.8.391 → 1.8.393

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.
@@ -14,10 +14,10 @@ export class KvButtonComponent {
14
14
  this.onClick = output();
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvButtonComponent, selector: "kv-button", inputs: { fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n pButton\r\n class=\"kv-button {{ size() }} {{ severity() }} {{ type() }}\"\r\n [style.width]=\"fullWidth() && '100%'\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick.emit($event)\"\r\n [loading]=\"loading()\"\r\n>\r\n @if(!loading()) {\r\n <span class=\"material-symbols-outlined kv-button-icon\">{{ icon() }}</span>\r\n } @if(label()) {\r\n <span class=\"kv-button-label\">{{ label() }}</span>\r\n }\r\n</button>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep .kv-button .p-button-loading-icon svg{width:100%;height:100%;display:block}::ng-deep .kv-button .p-button-loading-icon svg g{transform:translate(0)}::ng-deep .kv-button{border:none;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.125rem}::ng-deep .kv-button .kv-button-label{font-weight:500}::ng-deep .small{height:1.625rem;min-width:1.625rem}::ng-deep .small .kv-button-label{font-size:.625rem}::ng-deep .small .kv-button-icon{font-size:.75rem}::ng-deep .small .p-button-loading-icon{width:.55rem;height:.55rem}::ng-deep .normal{height:1.875rem;min-width:1.875rem}::ng-deep .normal .kv-button-label{font-size:.825rem}::ng-deep .normal .kv-button-icon{font-size:1rem}::ng-deep .normal .p-button-loading-icon{width:.75rem;height:.75rem}::ng-deep .large{height:2.125rem;min-width:2.125rem}::ng-deep .large .kv-button-label{font-size:1rem}::ng-deep .large .kv-button-icon{font-size:1.25rem}::ng-deep .large .p-button-loading-icon{width:.875rem;height:.875rem}::ng-deep .primary{background-color:rgb(var(--kv-primary-color))}::ng-deep .primary:hover{background-color:rgba(var(--kv-primary-color),.8)}::ng-deep .primary:active{background-color:rgba(var(--kv-primary-color),.95)}.primary.outline{border:solid .5px rgb(var(--kv-primary-color));background-color:#fff;color:rgb(var(--kv-primary-color))}.primary.outline:hover{background-color:rgb(var(--kv-primary-color));color:#fff}.primary.outline:active{background-color:rgba(var(--kv-primary-color),.8)}.primary.text{opacity:.9;background-color:transparent;color:rgb(var(--kv-primary-color))}.primary.text:hover{background-color:rgba(var(--kv-primary-color),.1)}.primary.text:active{background-color:rgba(var(--kv-primary-color),.2)}::ng-deep .secondary{background-color:rgb(var(--kv-secondary-color))}::ng-deep .secondary:hover{background-color:rgba(var(--kv-secondary-color),.8)}::ng-deep .secondary:active{background-color:rgba(var(--kv-secondary-color),.95)}.secondary.outline{border:solid .5px rgb(var(--kv-secondary-color));background-color:#fff;color:rgb(var(--kv-secondary-color))}.secondary.outline:hover{background-color:rgb(var(--kv-secondary-color));color:#fff}.secondary.outline:active{background-color:rgba(var(--kv-secondary-color),.8)}.secondary.text{background-color:transparent;color:rgb(var(--kv-secondary-color))}.secondary.text:hover{background-color:rgba(var(--kv-secondary-color),.1)}.secondary.text:active{background-color:rgba(var(--kv-secondary-color),.2)}::ng-deep .tertiary{color:#212121;background-color:rgba(var(--kv-tertiary-color),.3)}::ng-deep .tertiary:hover{background-color:rgba(var(--kv-tertiary-color),.8)}::ng-deep .tertiary:active{background-color:rgba(var(--kv-tertiary-color),.95)}.tertiary.outline{border:solid .5px rgb(var(--kv-tertiary-color));background-color:#fff;color:rgb(var(--kv-tertiary-color))}.tertiary.outline:hover{background-color:rgb(var(--kv-tertiary-color));color:#fff}.tertiary.outline:active{background-color:rgba(var(--kv-tertiary-color),.8)}.tertiary.text{background-color:transparent;color:rgb(var(--kv-tertiary-color))}.tertiary.text:hover{background-color:rgba(var(--kv-tertiary-color),.1)}.tertiary.text:active{background-color:rgba(var(--kv-tertiary-color),.2)}\n"], dependencies: [{ kind: "directive", type: i1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvButtonComponent, selector: "kv-button", inputs: { fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n pButton\r\n class=\"kv-button {{ size() }} {{ severity() }} {{ type() }}\"\r\n [style.width]=\"'100%'\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick.emit($event)\"\r\n [loading]=\"loading()\"\r\n>\r\n @if(!loading()) {\r\n <span class=\"material-symbols-outlined kv-button-icon\">{{ icon() }}</span>\r\n } @if(label()) {\r\n <span class=\"kv-button-label\">{{ label() }}</span>\r\n }\r\n</button>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep .kv-button .p-button-loading-icon svg{width:100%;height:100%;display:block}::ng-deep .kv-button .p-button-loading-icon svg g{transform:translate(0)}::ng-deep .kv-button{border:none;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.125rem}::ng-deep .kv-button .kv-button-label{font-weight:500}::ng-deep .small{height:1.625rem;min-width:1.625rem}::ng-deep .small .kv-button-label{font-size:.625rem}::ng-deep .small .kv-button-icon{font-size:.75rem}::ng-deep .small .p-button-loading-icon{width:.55rem;height:.55rem}::ng-deep .normal{height:1.875rem;min-width:1.875rem}::ng-deep .normal .kv-button-label{font-size:.825rem}::ng-deep .normal .kv-button-icon{font-size:1rem}::ng-deep .normal .p-button-loading-icon{width:.75rem;height:.75rem}::ng-deep .large{height:2.125rem;min-width:2.125rem}::ng-deep .large .kv-button-label{font-size:1rem}::ng-deep .large .kv-button-icon{font-size:1.25rem}::ng-deep .large .p-button-loading-icon{width:.875rem;height:.875rem}::ng-deep .primary{background-color:rgb(var(--kv-primary-color))}::ng-deep .primary:hover{background-color:rgba(var(--kv-primary-color),.8)}::ng-deep .primary:active{background-color:rgba(var(--kv-primary-color),.95)}.primary.outline{border:solid .5px rgb(var(--kv-primary-color));background-color:#fff;color:rgb(var(--kv-primary-color))}.primary.outline:hover{background-color:rgb(var(--kv-primary-color));color:#fff}.primary.outline:active{background-color:rgba(var(--kv-primary-color),.8)}.primary.text{opacity:.9;background-color:transparent;color:rgb(var(--kv-primary-color))}.primary.text:hover{background-color:rgba(var(--kv-primary-color),.1)}.primary.text:active{background-color:rgba(var(--kv-primary-color),.2)}::ng-deep .secondary{background-color:rgb(var(--kv-secondary-color))}::ng-deep .secondary:hover{background-color:rgba(var(--kv-secondary-color),.8)}::ng-deep .secondary:active{background-color:rgba(var(--kv-secondary-color),.95)}.secondary.outline{border:solid .5px rgb(var(--kv-secondary-color));background-color:#fff;color:rgb(var(--kv-secondary-color))}.secondary.outline:hover{background-color:rgb(var(--kv-secondary-color));color:#fff}.secondary.outline:active{background-color:rgba(var(--kv-secondary-color),.8)}.secondary.text{background-color:transparent;color:rgb(var(--kv-secondary-color))}.secondary.text:hover{background-color:rgba(var(--kv-secondary-color),.1)}.secondary.text:active{background-color:rgba(var(--kv-secondary-color),.2)}::ng-deep .tertiary{color:#212121;background-color:rgba(var(--kv-tertiary-color),.3)}::ng-deep .tertiary:hover{background-color:rgba(var(--kv-tertiary-color),.8)}::ng-deep .tertiary:active{background-color:rgba(var(--kv-tertiary-color),.95)}.tertiary.outline{border:solid .5px rgb(var(--kv-tertiary-color));background-color:#fff;color:rgb(var(--kv-tertiary-color))}.tertiary.outline:hover{background-color:rgb(var(--kv-tertiary-color));color:#fff}.tertiary.outline:active{background-color:rgba(var(--kv-tertiary-color),.8)}.tertiary.text{background-color:transparent;color:rgb(var(--kv-tertiary-color))}.tertiary.text:hover{background-color:rgba(var(--kv-tertiary-color),.1)}.tertiary.text:active{background-color:rgba(var(--kv-tertiary-color),.2)}\n"], dependencies: [{ kind: "directive", type: i1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvButtonComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'kv-button', template: "<button\r\n pButton\r\n class=\"kv-button {{ size() }} {{ severity() }} {{ type() }}\"\r\n [style.width]=\"fullWidth() && '100%'\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick.emit($event)\"\r\n [loading]=\"loading()\"\r\n>\r\n @if(!loading()) {\r\n <span class=\"material-symbols-outlined kv-button-icon\">{{ icon() }}</span>\r\n } @if(label()) {\r\n <span class=\"kv-button-label\">{{ label() }}</span>\r\n }\r\n</button>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep .kv-button .p-button-loading-icon svg{width:100%;height:100%;display:block}::ng-deep .kv-button .p-button-loading-icon svg g{transform:translate(0)}::ng-deep .kv-button{border:none;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.125rem}::ng-deep .kv-button .kv-button-label{font-weight:500}::ng-deep .small{height:1.625rem;min-width:1.625rem}::ng-deep .small .kv-button-label{font-size:.625rem}::ng-deep .small .kv-button-icon{font-size:.75rem}::ng-deep .small .p-button-loading-icon{width:.55rem;height:.55rem}::ng-deep .normal{height:1.875rem;min-width:1.875rem}::ng-deep .normal .kv-button-label{font-size:.825rem}::ng-deep .normal .kv-button-icon{font-size:1rem}::ng-deep .normal .p-button-loading-icon{width:.75rem;height:.75rem}::ng-deep .large{height:2.125rem;min-width:2.125rem}::ng-deep .large .kv-button-label{font-size:1rem}::ng-deep .large .kv-button-icon{font-size:1.25rem}::ng-deep .large .p-button-loading-icon{width:.875rem;height:.875rem}::ng-deep .primary{background-color:rgb(var(--kv-primary-color))}::ng-deep .primary:hover{background-color:rgba(var(--kv-primary-color),.8)}::ng-deep .primary:active{background-color:rgba(var(--kv-primary-color),.95)}.primary.outline{border:solid .5px rgb(var(--kv-primary-color));background-color:#fff;color:rgb(var(--kv-primary-color))}.primary.outline:hover{background-color:rgb(var(--kv-primary-color));color:#fff}.primary.outline:active{background-color:rgba(var(--kv-primary-color),.8)}.primary.text{opacity:.9;background-color:transparent;color:rgb(var(--kv-primary-color))}.primary.text:hover{background-color:rgba(var(--kv-primary-color),.1)}.primary.text:active{background-color:rgba(var(--kv-primary-color),.2)}::ng-deep .secondary{background-color:rgb(var(--kv-secondary-color))}::ng-deep .secondary:hover{background-color:rgba(var(--kv-secondary-color),.8)}::ng-deep .secondary:active{background-color:rgba(var(--kv-secondary-color),.95)}.secondary.outline{border:solid .5px rgb(var(--kv-secondary-color));background-color:#fff;color:rgb(var(--kv-secondary-color))}.secondary.outline:hover{background-color:rgb(var(--kv-secondary-color));color:#fff}.secondary.outline:active{background-color:rgba(var(--kv-secondary-color),.8)}.secondary.text{background-color:transparent;color:rgb(var(--kv-secondary-color))}.secondary.text:hover{background-color:rgba(var(--kv-secondary-color),.1)}.secondary.text:active{background-color:rgba(var(--kv-secondary-color),.2)}::ng-deep .tertiary{color:#212121;background-color:rgba(var(--kv-tertiary-color),.3)}::ng-deep .tertiary:hover{background-color:rgba(var(--kv-tertiary-color),.8)}::ng-deep .tertiary:active{background-color:rgba(var(--kv-tertiary-color),.95)}.tertiary.outline{border:solid .5px rgb(var(--kv-tertiary-color));background-color:#fff;color:rgb(var(--kv-tertiary-color))}.tertiary.outline:hover{background-color:rgb(var(--kv-tertiary-color));color:#fff}.tertiary.outline:active{background-color:rgba(var(--kv-tertiary-color),.8)}.tertiary.text{background-color:transparent;color:rgb(var(--kv-tertiary-color))}.tertiary.text:hover{background-color:rgba(var(--kv-tertiary-color),.1)}.tertiary.text:active{background-color:rgba(var(--kv-tertiary-color),.2)}\n"] }]
21
+ args: [{ selector: 'kv-button', template: "<button\r\n pButton\r\n class=\"kv-button {{ size() }} {{ severity() }} {{ type() }}\"\r\n [style.width]=\"'100%'\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onClick.emit($event)\"\r\n [loading]=\"loading()\"\r\n>\r\n @if(!loading()) {\r\n <span class=\"material-symbols-outlined kv-button-icon\">{{ icon() }}</span>\r\n } @if(label()) {\r\n <span class=\"kv-button-label\">{{ label() }}</span>\r\n }\r\n</button>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep .kv-button .p-button-loading-icon svg{width:100%;height:100%;display:block}::ng-deep .kv-button .p-button-loading-icon svg g{transform:translate(0)}::ng-deep .kv-button{border:none;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.125rem}::ng-deep .kv-button .kv-button-label{font-weight:500}::ng-deep .small{height:1.625rem;min-width:1.625rem}::ng-deep .small .kv-button-label{font-size:.625rem}::ng-deep .small .kv-button-icon{font-size:.75rem}::ng-deep .small .p-button-loading-icon{width:.55rem;height:.55rem}::ng-deep .normal{height:1.875rem;min-width:1.875rem}::ng-deep .normal .kv-button-label{font-size:.825rem}::ng-deep .normal .kv-button-icon{font-size:1rem}::ng-deep .normal .p-button-loading-icon{width:.75rem;height:.75rem}::ng-deep .large{height:2.125rem;min-width:2.125rem}::ng-deep .large .kv-button-label{font-size:1rem}::ng-deep .large .kv-button-icon{font-size:1.25rem}::ng-deep .large .p-button-loading-icon{width:.875rem;height:.875rem}::ng-deep .primary{background-color:rgb(var(--kv-primary-color))}::ng-deep .primary:hover{background-color:rgba(var(--kv-primary-color),.8)}::ng-deep .primary:active{background-color:rgba(var(--kv-primary-color),.95)}.primary.outline{border:solid .5px rgb(var(--kv-primary-color));background-color:#fff;color:rgb(var(--kv-primary-color))}.primary.outline:hover{background-color:rgb(var(--kv-primary-color));color:#fff}.primary.outline:active{background-color:rgba(var(--kv-primary-color),.8)}.primary.text{opacity:.9;background-color:transparent;color:rgb(var(--kv-primary-color))}.primary.text:hover{background-color:rgba(var(--kv-primary-color),.1)}.primary.text:active{background-color:rgba(var(--kv-primary-color),.2)}::ng-deep .secondary{background-color:rgb(var(--kv-secondary-color))}::ng-deep .secondary:hover{background-color:rgba(var(--kv-secondary-color),.8)}::ng-deep .secondary:active{background-color:rgba(var(--kv-secondary-color),.95)}.secondary.outline{border:solid .5px rgb(var(--kv-secondary-color));background-color:#fff;color:rgb(var(--kv-secondary-color))}.secondary.outline:hover{background-color:rgb(var(--kv-secondary-color));color:#fff}.secondary.outline:active{background-color:rgba(var(--kv-secondary-color),.8)}.secondary.text{background-color:transparent;color:rgb(var(--kv-secondary-color))}.secondary.text:hover{background-color:rgba(var(--kv-secondary-color),.1)}.secondary.text:active{background-color:rgba(var(--kv-secondary-color),.2)}::ng-deep .tertiary{color:#212121;background-color:rgba(var(--kv-tertiary-color),.3)}::ng-deep .tertiary:hover{background-color:rgba(var(--kv-tertiary-color),.8)}::ng-deep .tertiary:active{background-color:rgba(var(--kv-tertiary-color),.95)}.tertiary.outline{border:solid .5px rgb(var(--kv-tertiary-color));background-color:#fff;color:rgb(var(--kv-tertiary-color))}.tertiary.outline:hover{background-color:rgb(var(--kv-tertiary-color));color:#fff}.tertiary.outline:active{background-color:rgba(var(--kv-tertiary-color),.8)}.tertiary.text{background-color:transparent;color:rgb(var(--kv-tertiary-color))}.tertiary.text:hover{background-color:rgba(var(--kv-tertiary-color),.1)}.tertiary.text:active{background-color:rgba(var(--kv-tertiary-color),.2)}\n"] }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbi9rdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtYnV0dG9uL2t2LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF3QixLQUFLLEVBQVMsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPOUYsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU9FLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMsU0FBSSxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUNuQyxZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQXVDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLFNBQUksR0FBRyxLQUFLLENBQStCLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELFNBQUksR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekIsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpDLFlBQU8sR0FBRyxNQUFNLEVBQU8sQ0FBQztLQUV6Qjs4R0FiWSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5akNDUDlCLCtiQWNBOzsyRkRQYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBJbnB1dCwgb3V0cHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2QnV0dG9uQ29tcG9uZW50IHtcclxuXHJcbiAgZnVsbFdpZHRoID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHR5cGUgPSBpbnB1dDwnb3V0bGluZScgfCAndGV4dCc+KCk7XHJcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzZXZlcml0eSA9IGlucHV0PCdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5Jz4oJ3ByaW1hcnknKTtcclxuICBzaXplID0gaW5wdXQ8J3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJz4oJ25vcm1hbCcpO1xyXG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBvbkNsaWNrID0gb3V0cHV0PGFueT4oKTtcclxuXHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIHBCdXR0b25cclxuICBjbGFzcz1cImt2LWJ1dHRvbiB7eyBzaXplKCkgfX0ge3sgc2V2ZXJpdHkoKSB9fSB7eyB0eXBlKCkgfX1cIlxyXG4gIFtzdHlsZS53aWR0aF09XCJmdWxsV2lkdGgoKSAmJiAnMTAwJSdcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudClcIlxyXG4gIFtsb2FkaW5nXT1cImxvYWRpbmcoKVwiXHJcbj5cclxuICBAaWYoIWxvYWRpbmcoKSkge1xyXG4gIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBrdi1idXR0b24taWNvblwiPnt7IGljb24oKSB9fTwvc3Bhbj5cclxuICB9IEBpZihsYWJlbCgpKSB7XHJcbiAgPHNwYW4gY2xhc3M9XCJrdi1idXR0b24tbGFiZWxcIj57eyBsYWJlbCgpIH19PC9zcGFuPlxyXG4gIH1cclxuPC9idXR0b24+XHJcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbi9rdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtYnV0dG9uL2t2LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF3QixLQUFLLEVBQVMsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPOUYsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU9FLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMsU0FBSSxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUNuQyxZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQXVDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLFNBQUksR0FBRyxLQUFLLENBQStCLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELFNBQUksR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekIsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWpDLFlBQU8sR0FBRyxNQUFNLEVBQU8sQ0FBQztLQUV6Qjs4R0FiWSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5akNDUDlCLGdiQWNBOzsyRkRQYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBJbnB1dCwgb3V0cHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2QnV0dG9uQ29tcG9uZW50IHtcclxuXHJcbiAgZnVsbFdpZHRoID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHR5cGUgPSBpbnB1dDwnb3V0bGluZScgfCAndGV4dCc+KCk7XHJcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzZXZlcml0eSA9IGlucHV0PCdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5Jz4oJ3ByaW1hcnknKTtcclxuICBzaXplID0gaW5wdXQ8J3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJz4oJ25vcm1hbCcpO1xyXG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBvbkNsaWNrID0gb3V0cHV0PGFueT4oKTtcclxuXHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIHBCdXR0b25cclxuICBjbGFzcz1cImt2LWJ1dHRvbiB7eyBzaXplKCkgfX0ge3sgc2V2ZXJpdHkoKSB9fSB7eyB0eXBlKCkgfX1cIlxyXG4gIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudClcIlxyXG4gIFtsb2FkaW5nXT1cImxvYWRpbmcoKVwiXHJcbj5cclxuICBAaWYoIWxvYWRpbmcoKSkge1xyXG4gIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBrdi1idXR0b24taWNvblwiPnt7IGljb24oKSB9fTwvc3Bhbj5cclxuICB9IEBpZihsYWJlbCgpKSB7XHJcbiAgPHNwYW4gY2xhc3M9XCJrdi1idXR0b24tbGFiZWxcIj57eyBsYWJlbCgpIH19PC9zcGFuPlxyXG4gIH1cclxuPC9idXR0b24+XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, contentChildren, effect, EventEmitter, HostListener, Input, model, Output, signal, ViewChild, } from '@angular/core';
1
+ import { Component, contentChildren, EventEmitter, HostListener, Input, model, Output, signal, ViewChild, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/forms";
4
4
  import * as i2 from "@angular/router";
@@ -43,10 +43,6 @@ export class KvLayoutComponent {
43
43
  this.topMenuActions = contentChildren('topMenuAction');
44
44
  this.widthPage = signal(0);
45
45
  this.menuSelecionado = signal(null);
46
- effect(() => {
47
- console.log(this.expandMenu(), 'expandMenu');
48
- console.log(this.widthPage(), 'widthPage');
49
- });
50
46
  }
51
47
  accessKeePass(event) {
52
48
  this.sistemasPanel.hide();
@@ -73,14 +69,10 @@ export class KvLayoutComponent {
73
69
  this.widthCard = Number(window.innerWidth);
74
70
  }
75
71
  callRoute(e, expand) {
76
- if (!expand && !this.expandMenu()) {
77
- console.log(this.expandMenu(), 'callRoute invertendo');
72
+ if (!expand && !this.expandMenu())
78
73
  this.expandMenu.update((currentValue) => !currentValue);
79
- }
80
- if (this.widthPage() != 0 && this.widthPage() < 800 && this.expandMenu()) {
81
- console.log(this.expandMenu(), 'callRoute 2 setando false');
74
+ if (this.widthPage() != 0 && this.widthPage() < 800 && this.expandMenu())
82
75
  this.expandMenu.set(false);
83
- }
84
76
  this.router.navigateByUrl(e);
85
77
  }
86
78
  changeEmpresa(event) {
@@ -90,13 +82,10 @@ export class KvLayoutComponent {
90
82
  this.changeLicenseEmit.emit(event);
91
83
  }
92
84
  verifyMenuBehavior() {
93
- if (this.widthPage() < 800) {
94
- console.log(this.expandMenu(), 'verifyMenuBehavior setando false');
85
+ if (this.widthPage() < 800)
95
86
  this.expandMenu.set(false);
96
- }
97
87
  }
98
88
  expandMenuEvent() {
99
- console.log(this.expandMenu(), 'expandMenuEvent emitindo');
100
89
  this.expandMenuEmit.emit(this.expandMenu());
101
90
  }
102
91
  logout(event) {
@@ -206,15 +195,12 @@ export class KvLayoutComponent {
206
195
  return this.showDropdownLicenca && (this.masters || []).length > 1;
207
196
  }
208
197
  toggleMenu() {
209
- console.log(this.expandMenu(), 'toggleMenu invertando');
210
198
  this.expandMenu.update((currentValue) => !currentValue);
211
199
  this.expandMenuEvent();
212
200
  }
213
201
  navigateToDefaultRoute() {
214
- if (this.widthPage() < 800 && this.expandMenu()) {
215
- console.log(this.expandMenu(), 'navigateToDefaultRoute setando false');
202
+ if (this.widthPage() < 800 && this.expandMenu())
216
203
  this.expandMenu.set(false);
217
- }
218
204
  this.navigateToDefaultRouteEmit.emit();
219
205
  }
220
206
  // getSidebarState() {
@@ -292,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
292
278
  type: HostListener,
293
279
  args: ['window:resize', ['$event']]
294
280
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxTQUFTLEVBRVQsZUFBZSxFQUNmLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUVaLEtBQUssRUFDTCxLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sRUFHTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkJ2QixNQUFNLE9BQU8saUJBQWlCO0lBZ0Y1QixZQUNVLEdBQXNCLEVBQ3RCLEVBQWUsRUFDYixNQUFjLEVBQ2QsY0FBOEI7UUFIaEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNiLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFuRmpDLFNBQUksR0FVUCxFQUFFLENBQUM7UUFFQSxvQkFBZSxHQUdsQixFQUFFLENBQUM7UUFFQSxZQUFPLEdBS1YsRUFBRSxDQUFDO1FBRUEsVUFBSyxHQVlSLEVBQUUsQ0FBQztRQUVULGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFTekIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0Isd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBQ3BDLGFB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Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDRixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQXNLbkIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBlZmZlY3QsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIC8vIGFuaW1hdGlvbnM6IFtcclxuICAvLyAgIHRyaWdnZXIoJ3NpZGViYXJXaWR0aFRyaWdnZXInLCBbXHJcbiAgLy8gICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7XHJcbiAgLy8gICAgICAgd2lkdGg6ICc2MHB4J1xyXG4gIC8vICAgICB9KSksXHJcbiAgLy8gICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHtcclxuICAvLyAgICAgICB3aWR0aDogJzM1OXB4J1xyXG4gIC8vICAgICB9KSksXHJcbiAgLy8gICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA8PT4gZXhwYW5kZWQnLCBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpKVxyXG4gIC8vICAgXSlcclxuICAvLyBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBhcHBzOiB7XHJcbiAgICBpZGFwbGljYXRpdm86IG51bWJlcjtcclxuICAgIGlkc2lzdGVtYTogbnVtYmVyO1xyXG4gICAgbm9tZWFwbGljYXRpdm86IHN0cmluZztcclxuICAgIGRlc2NyaWNhb2FwbGljYXRpdm86IHN0cmluZztcclxuICAgIHJvdGFwYWRyYW86IHN0cmluZztcclxuICAgIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICAgIGluZHB1YmxpY2FjYW9ncmFkYXRpdmE6IGJvb2xlYW47XHJcbiAgICBpbmRleGlnZWVtcHJlc2FlbnRyYWRhOiBib29sZWFuO1xyXG4gICAgdXJsaWNvbmU/OiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGJyZWFkQ3J1bWJJdGVtczoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHJvdXRlckxpbms6IHN0cmluZztcclxuICB9W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgbWFzdGVyczoge1xyXG4gICAgaWRtYXN0ZXI6IG51bWJlcjtcclxuICAgIGNwZmNucGo6IHN0cmluZztcclxuICAgIG5vbWU6IHN0cmluZztcclxuICAgIGlkbWFzdGVybm9tZTogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBtZW51czoge1xyXG4gICAgaWRtZW51OiBudW1iZXI7XHJcbiAgICBpZG1lbnVwYWk6IG51bWJlciB8IG51bGw7XHJcbiAgICBpZGFwbGljYXRpdm86IG51bWJlcjtcclxuICAgIGRlc2NyaWNhb21lbnU6IHN0cmluZztcclxuICAgIGxpbms6IHN0cmluZyB8IG51bGw7XHJcbiAgICBpY29uZTogc3RyaW5nIHwgbnVsbDtcclxuICAgIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICAgIGluZG1lbnVwYWk6IGJvb2xlYW47XHJcbiAgICBsaXN0YWlkdmlzYW9tZW51OiBudW1iZXJbXTtcclxuICAgIGJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIGV4cGFuZE1lbnUgPSBtb2RlbDxib29sZWFuPih0cnVlKTtcclxuICBcclxuICBASW5wdXQoKSBsb2dvTWVudUV4cGFuZCE6IGFueTtcclxuICBASW5wdXQoKSBsb2dvTWVudUhpZGUhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQXBwITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRW1wcmVzYSE6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZE1hc3RlciE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2hvd0J1dHRvbkFwcHM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25Vc2VyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RXhwYW5kTWVudTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0Ryb3Bkb3duTGljZW5jYTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd01lbnU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUcm9jYUVtcHJlc2E6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VyTmFtZTogc3RyaW5nID0gJ1VzdcOhcmlvJztcclxuICBASW5wdXQoKSBtYXN0ZXJOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVtcHJlc2FOYW1lITogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgYWNjZXNzS2VlUGFzc0VtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2VFbXByZXNhRW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2VMaWNlbnNlRW1pdDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGV4cGFuZE1lbnVFbWl0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGxvZ291dEVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RBcHBFbWl0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbmF2aWdhdGVUb0RlZmF1bHRSb3V0ZUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdtZXVzRGFkb3NQYW5lbCcpIG1ldXNEYWRvc1BhbmVsITogT3ZlcmxheVBhbmVsO1xyXG4gIEBWaWV3Q2hpbGQoJ3NpZGViYXJSZWYnKSBzaWRlYmFyUmVmITogU2lkZWJhcjtcclxuICBAVmlld0NoaWxkKCdzaXN0ZW1hc1BhbmVsJykgc2lzdGVtYXNQYW5lbCE6IE92ZXJsYXlQYW5lbDtcclxuXHJcbiAgdG9wTWVudUFjdGlvbnMgPSBjb250ZW50Q2hpbGRyZW48VGVtcGxhdGVSZWY8YW55Pj4oJ3RvcE1lbnVBY3Rpb24nKTtcclxuXHJcbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIGhlaWdodENhcmQhOiBudW1iZXI7XHJcbiAgbW91c2VPdmVyRmlsaG9JbmRleDogYW55O1xyXG4gIG1vdXNlT3ZlckluZGV4OiBhbnk7XHJcbiAgd2lkdGhDYXJkITogbnVtYmVyO1xyXG5cclxuICB3aWR0aFBhZ2UgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHsgXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmV4cGFuZE1lbnUoKSwgJ2V4cGFuZE1lbnUnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy53aWR0aFBhZ2UoKSwgJ3dpZHRoUGFnZScpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWNjZXNzS2VlUGFzcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xyXG4gICAgdGhpcy5hY2Nlc3NLZWVQYXNzRW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGp1c3RIZWlnaHRDYXJkKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy53aWR0aENhcmQgPiA0MDApIHtcclxuICAgICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgPCA5OTIgJiYgdGhpcy5zaG93TGljZW5jYXMoKSkgcmV0dXJuIDE0NTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmJyZWFkQ3J1bWJJdGVtcy5sZW5ndGggPiAwKSByZXR1cm4gOTU7XHJcbiAgICAgIGVsc2UgcmV0dXJuIDg1O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAxMjU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkanVzdFdpZHRoQ2FyZCgpIHtcclxuICAgIHRoaXMud2lkdGhQYWdlLnNldCh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcblxyXG4gICAgdGhpcy5oZWlnaHRDYXJkID0gTnVtYmVyKFxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1jb250ZW50Jyk/Lm9mZnNldEhlaWdodFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNob3dNZW51KVxyXG4gICAgICB0aGlzLndpZHRoQ2FyZCA9XHJcbiAgICAgICAgTnVtYmVyKHdpbmRvdy5pbm5lcldpZHRoKSAtICh0aGlzLmV4cGFuZE1lbnUoKSA/IDMzMyA6IDkzKTtcclxuICAgIGVsc2UgdGhpcy53aWR0aENhcmQgPSBOdW1iZXIod2luZG93LmlubmVyV2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGxSb3V0ZShlOiBhbnksIGV4cGFuZD86IGJvb2xlYW4pIHtcclxuXHJcbiAgICBpZiAoIWV4cGFuZCAmJiAhdGhpcy5leHBhbmRNZW51KCkpIHtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZXhwYW5kTWVudSgpICwnY2FsbFJvdXRlIGludmVydGVuZG8nKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUudXBkYXRlKChjdXJyZW50VmFsdWU6IGJvb2xlYW4pID0+ICFjdXJyZW50VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLndpZHRoUGFnZSgpICE9IDAgJiYgdGhpcy53aWR0aFBhZ2UoKSA8IDgwMCAmJiB0aGlzLmV4cGFuZE1lbnUoKSkge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmV4cGFuZE1lbnUoKSAsJ2NhbGxSb3V0ZSAyIHNldGFuZG8gZmFsc2UnKVxyXG5cclxuICAgICAgdGhpcy5leHBhbmRNZW51LnNldChmYWxzZSk7XHJcbiAgICBcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUVtcHJlc2EoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2VFbXByZXNhRW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMaWNlbnNlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlTGljZW5zZUVtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZlcmlmeU1lbnVCZWhhdmlvcigpIHtcclxuICAgIGlmICh0aGlzLndpZHRoUGFnZSgpIDwgODAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZXhwYW5kTWVudSgpICwndmVyaWZ5TWVudUJlaGF2aW9yIHNldGFuZG8gZmFsc2UnKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwYW5kTWVudUV2ZW50KCkge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5leHBhbmRNZW51KCkgLCdleHBhbmRNZW51RXZlbnQgZW1pdGluZG8nKVxyXG4gICAgdGhpcy5leHBhbmRNZW51RW1pdC5lbWl0KHRoaXMuZXhwYW5kTWVudSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcclxuICAgIHRoaXMubG9nb3V0RW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVudXNQZXJBcHAoKSB7XHJcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmIHRoaXMubWVudXMgJiYgdGhpcy5tZW51cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLnJvdXRlci51cmwgPT09ICcvJykge1xyXG4gICAgICAgIC8vIHRoaXMubmF2aWdhdGVUb0ZpcnN0TWVudSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG1lbnVTZWxlY2lvbmFkbyA9IHRoaXMubWVudXMuZmluZChcclxuICAgICAgICAgIChtZW51OiBhbnkpID0+XHJcbiAgICAgICAgICAgIG1lbnUubGluayAmJiBtZW51LmxpbmsuaW5jbHVkZXModGhpcy5yb3V0ZXIudXJsLnNsaWNlKDEpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKG1lbnVTZWxlY2lvbmFkbykge1xyXG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTWVudShtZW51U2VsZWNpb25hZG8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNpc3RlbWFzUGFuZWwpIHtcclxuICAgICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYW1lRW1wcmVzYShub21lTGljZW5jYTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChub21lTGljZW5jYSkge1xyXG4gICAgICBpZiAobm9tZUxpY2VuY2EubGVuZ3RoID4gMjMpIHJldHVybiBub21lTGljZW5jYS5zdWJzdHJpbmcoMCwgMjMpICsgJy4uLic7XHJcbiAgICAgIGVsc2UgcmV0dXJuIG5vbWVMaWNlbmNhO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb0ZpcnN0TWVudSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpcnN0TWVudSA9IHRoaXMubWVudXNbMF07XHJcbiAgICBpZiAoZmlyc3RNZW51LmluZG1lbnVwYWkpIHtcclxuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXR1cm5NZW51Q2hpbGQoZmlyc3RNZW51LmlkbWVudSk7XHJcbiAgICAgIGlmIChmaWxob3MpIHtcclxuICAgICAgICB0aGlzLmNhbGxSb3V0ZShmaWxob3NbMF0ubGluaywgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FsbFJvdXRlKGZpcnN0TWVudS5saW5rLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb01lbnUobWVudTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAobWVudS5tZW51cGFpKSB7XHJcbiAgICAgIGNvbnN0IGZpbGhvcyA9IHRoaXMucmV0dXJuTWVudUNoaWxkKG1lbnUuaWRtZW51KTtcclxuICAgICAgaWYgKGZpbGhvcykge1xyXG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYWxsUm91dGUobWVudS5saW5rLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lbnVTZWxlY2lvbmFkbyA9IHNpZ25hbDxhbnk+KG51bGwpO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCBsYXRlc3RSZXF1ZXN0ID0gY2hhbmdlc1snbWVudXMnXTtcclxuICAgIGlmIChsYXRlc3RSZXF1ZXN0Py5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5tZW51c1BlckFwcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWNpb25hck1lbnUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlkbWFzdGVyOiBbdGhpcy5zZWxlY3RlZE1hc3RlciwgW11dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGp1c3RXaWR0aENhcmQoKTtcclxuICAgIHRoaXMuZXhwYW5kTWVudUV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLmFkanVzdFdpZHRoQ2FyZCgpO1xyXG4gICAgdGhpcy52ZXJpZnlNZW51QmVoYXZpb3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0ZWRNZW51UGFpKG1lbnU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmV4cGFuZE1lbnUoKSAmJiBtZW51LmluZG1lbnVwYWkpXHJcbiAgICAgIHJldHVybiBtZW51LmlkbWVudSA9PT0gdGhpcy5tZW51U2VsZWNpb25hZG8oKT8uaWRtZW51cGFpO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjaW9uYXJNZW51KCkge1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnJvdXRlci51cmwsIHdpbmRvdy5vcmlnaW4pO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdXJsLnBhdGhuYW1lO1xyXG4gICAgY29uc3QgcHVyZVBhdGggPSBjdXJyZW50UGF0aC5tYXRjaCgvXlteO10qL2kpO1xyXG5cclxuICAgIGNvbnN0IHBhdGhzID0gcHVyZVBhdGghWzBdO1xyXG5cclxuICAgIHRoaXMubWVudXMgPSB0aGlzLm1lbnVzLm1hcCgobWVudSkgPT4ge1xyXG4gICAgICBpZiAobWVudS5saW5rKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLm1lbnUsXHJcbiAgICAgICAgICBiZ0NvbG9yOiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKSA/ICdyZ2IoNDEsIDE4NSwgNDUpJyA6ICcnLFxyXG4gICAgICAgICAgdGV4dENvbG9yOiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKSA/ICd0ZXh0LXdoaXRlJyA6ICcnLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1lbnU7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51cy5maW5kKChtZW51OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIG1lbnUubGluayAmJiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWVudVNlbGVjaW9uYWRvLnNldChtZW51KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXR1cm5NZW51Q2hpbGQoaWRtZW51OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLm1lbnVzLmZpbHRlcigoeDogYW55KSA9PiB4LmlkbWVudXBhaSA9PSBpZG1lbnUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEFwcChpZGFwbGljYXRpdm86IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RBcHBFbWl0LmVtaXQoaWRhcGxpY2F0aXZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93TGljZW5jYXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RHJvcGRvd25MaWNlbmNhICYmICh0aGlzLm1hc3RlcnMgfHwgW10pLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZXhwYW5kTWVudSgpICwndG9nZ2xlTWVudSBpbnZlcnRhbmRvJylcclxuXHJcbiAgICB0aGlzLmV4cGFuZE1lbnUudXBkYXRlKChjdXJyZW50VmFsdWU6IGJvb2xlYW4pID0+ICFjdXJyZW50VmFsdWUpO1xyXG4gICAgdGhpcy5leHBhbmRNZW51RXZlbnQoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9EZWZhdWx0Um91dGUoKSB7XHJcbiAgICBpZiAodGhpcy53aWR0aFBhZ2UoKSA8IDgwMCAmJiB0aGlzLmV4cGFuZE1lbnUoKSkge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmV4cGFuZE1lbnUoKSAsJ25hdmlnYXRlVG9EZWZhdWx0Um91dGUgc2V0YW5kbyBmYWxzZScpXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubmF2aWdhdGVUb0RlZmF1bHRSb3V0ZUVtaXQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0U2lkZWJhclN0YXRlKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuZXhwYW5kTWVudSgpID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0IGV4aWJpck5vbWVzKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnNob3dMaWNlbmNhcygpICYmICh0aGlzLm1hc3Rlck5hbWUgfHwgdGhpcy5lbXByZXNhTmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG92ZXJmbG93LXktaGlkZGVuIHctIGZ1bGwtY29udGFpbmVyXCI+XHJcbiAgPGRpdlxyXG4gICAgW25nQ2xhc3NdPVwieyAnb3ZlcmxheS1iYWNrZ3JvdW5kJzogZXhwYW5kTWVudSgpICYmIHdpZHRoUGFnZSgpIDwgODAwIH1cIlxyXG4gID48L2Rpdj5cclxuICBAaWYgKHNob3dNZW51KSB7XHJcbiAgPGRpdlxyXG4gICAgW3N0eWxlXT1cIntcclxuICAgICAgbWluV2lkdGg6IGV4cGFuZE1lbnUoKSAmJiB3aWR0aFBhZ2UoKSA+IDgwMCA/ICcxN3JlbScgOiAnMy42NXJlbSdcclxuICAgIH1cIlxyXG4gID48L2Rpdj5cclxuICB9IEBpZihzaG93TWVudSkge1xyXG4gIDxwLXNpZGViYXJcclxuICAgICNzaWRlYmFyUmVmXHJcbiAgICBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgIFtzaG93Q2xvc2VJY29uXT1cImZhbHNlXCJcclxuICAgIFttb2RhbF09XCJmYWxzZVwiXHJcbiAgICBbc3R5bGVdPVwieyB3aWR0aDogZXhwYW5kTWVudSgpID8gJzE3cmVtJyA6ICczLjY1cmVtJyB9XCJcclxuICAgIGNsYXNzPVwic2lkZWJhci1hbmltYXRpb25cIlxyXG4gICAgc3R5bGVDbGFzcz1cInRyYW5zaXRpb24tYWxsXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGxlc3NcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZsZXgtc2hyaW5rLTAgbXgtMiBvdmVyZmxvdy1oaWRkZW5cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHt7XHJcbiAgICAgICAgICAgICAgZXhwYW5kTWVudSgpID8gJ2ZsZXgtcm93JyA6ICdmbGV4LWNvbHVtbidcclxuICAgICAgICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7XHJcbiAgICAgICAgICAgICAgZXhwYW5kTWVudSgpXHJcbiAgICAgICAgICAgICAgICA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbidcclxuICAgICAgICAgICAgICAgIDogJ2p1c3RpZnktY29udGVudC1jZW50ZXInXHJcbiAgICAgICAgICAgIH19IHB5LTNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIExvZ28gcGFyYSBvIG1lbnUgZXhwYW5kaWRvIC0tPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51KCkgJiYgbG9nb01lbnVFeHBhbmRcIlxyXG4gICAgICAgICAgICAgIGFsdD1cIkNhcmRcIlxyXG4gICAgICAgICAgICAgIFtzcmNdPVwibG9nb01lbnVFeHBhbmRcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiJzNyZW0nXCJcclxuICAgICAgICAgICAgICB3aWR0aD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcC0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0RlZmF1bHRSb3V0ZSgpXCJcclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTG9nbyBwYXJhIG8gbWVudSBtaW5pbWl6YWRvLS0+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFleHBhbmRNZW51KCkgJiYgbG9nb01lbnVIaWRlXCJcclxuICAgICAgICAgICAgICBhbHQ9XCJDYXJkXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cImxvZ29NZW51SGlkZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCInM3JlbSdcIlxyXG4gICAgICAgICAgICAgIHdpZHRoPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yIHAtMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9EZWZhdWx0Um91dGUoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFRvZ2dsZSBtZW51IC0tPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0V4cGFuZE1lbnVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0b3AtbGF5b3V0LWljb25zIHAtMVwiXHJcbiAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImV4cGFuZE1lbnUoKSA/ICdPY3VsdGFyIE1lbnUnIDogJ0V4cGFuZGlyIE1lbnUnXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgbWVudVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICBAaWYoc2hvd1Ryb2NhRW1wcmVzYSl7XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIge3tcclxuICAgICAgICAgICAgICBleHBhbmRNZW51KClcclxuICAgICAgICAgICAgICAgID8gJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJ1xyXG4gICAgICAgICAgICAgICAgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcidcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnUoKSAmJiBzZWxlY3RlZEVtcHJlc2FcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VFbXByZXNhKCRldmVudClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIG1yLTJcIlxyXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cInRoaXMuc2VsZWN0ZWRFbXByZXNhLnJhemFvc29jaWFsXCJcclxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgbmFtZUVtcHJlc2EodGhpcy5zZWxlY3RlZEVtcHJlc2EucmF6YW9zb2NpYWwpIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBtdC0xXCI+e3tcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbXByZXNhLmNwZmNucGogfCBjcGZDbnBqXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCBwYWRkaW5nLXN0eWxlIGgtMnJlbSB3LTJyZW0gaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGUgaWNvbi1tZW51XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1Ryb2NhciBkZSBlbXByZXNhJ1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPiBzeW5jX2FsdCA8L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8cC1kaXZpZGVyIHR5cGU9XCJzb2xpZFwiPjwvcC1kaXZpZGVyPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ub25lIG0tMCBjYXJkLWNvbnRhaW5lciBvdmVyZmxvdy15LWF1dG8gbWF4LWgtZnVsbFwiPlxyXG4gICAgICAgICAgPCEtLSBtZW51cyAtLT5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVudSBvZiBtZW51czsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgIFtjbGFzc109XCJleHBhbmRNZW51KCkgPyAncHgtMicgOiAncHgtMSdcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIG1lbnUgcXVlIG7Do28gdGVtIGZpbGhvIC0tPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUobWVudS5saW5rKVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICFtZW51LmluZG1lbnVwYWkgJiYgKCFtZW51LmlkbWVudXBhaSB8fCBtZW51LmlkbWVudXBhaSA9PSAwKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgcFJpcHBsZVxyXG4gICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIhZXhwYW5kTWVudSgpID8gbWVudS5kZXNjcmljYW9tZW51IDogJydcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LW9wdGlvblwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwibWVudS5iZ0NvbG9yXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LWNlbnRlcl09XCIhZXhwYW5kTWVudSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtb3B0aW9uLW1lbnUgbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLW1lbnUge3tcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kTWVudSgpID8gJ21sLTEgbXItMicgOiAnJ1xyXG4gICAgICAgICAgICAgICAgfX0gIGljb24taG92ZXItY29sb3Ige3sgbWVudS50ZXh0Q29sb3IgfX1cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51Lmljb25lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBtZW51Lmljb25lIH19XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtb3B0aW9uLW1lbnUgdGV4dC1iYXNlIHRleHQtYmx1ZS05MDAgZm9udC1zZW1pYm9sZCB7e1xyXG4gICAgICAgICAgICAgICAgICBtZW51LnRleHRDb2xvclxyXG4gICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51KClcIlxyXG4gICAgICAgICAgICAgICAgPnt7IG1lbnUuZGVzY3JpY2FvbWVudSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8IS0tIG1lbnUgY29tIGZpbGhvIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWVudS5pbmRtZW51cGFpXCI+XHJcbiAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIHBSaXBwbGVcclxuICAgICAgICAgICAgICAgIHBTdHlsZUNsYXNzPVwiQG5leHRcIlxyXG4gICAgICAgICAgICAgICAgZW50ZXJDbGFzcz1cImhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICBlbnRlckFjdGl2ZUNsYXNzPVwic2xpZGVkb3duXCJcclxuICAgICAgICAgICAgICAgIGxlYXZlVG9DbGFzcz1cImhpZGRlblwiXHJcbiAgICAgICAgICAgICAgICBsZWF2ZUFjdGl2ZUNsYXNzPVwic2xpZGV1cFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpc1NlbGVjdGVkTWVudVBhaShtZW51KSA/ICdyZ2IoNDEsIDE4NSwgNDUpJyA6ICd3aGl0ZSdcIlxyXG5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1vcHRpb24ge3tcclxuICAgICAgICAgICAgICAgICAgIWV4cGFuZE1lbnUoKVxyXG4gICAgICAgICAgICAgICAgICAgID8gJ2p1c3RpZnktY29udGVudC1jZW50ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgOiAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nXHJcbiAgICAgICAgICAgICAgICB9fSBcIlxyXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIhZXhwYW5kTWVudSgpID8gbWVudS5kZXNjcmljYW9tZW51IDogJydcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBleHBhbmRNZW51LnNldCghZXhwYW5kTWVudSgpID8gIWV4cGFuZE1lbnUoKSA6IGV4cGFuZE1lbnUoKSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LW9wdGlvbi1tZW51IG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaWNvbi1tZW51IHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICBleHBhbmRNZW51KCkgPyAnbWwtMSBtci0yJyA6ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgfX0gaWNvbi1ob3Zlci1jb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51Lmljb25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC13aGl0ZV09XCJpc1NlbGVjdGVkTWVudVBhaShtZW51KVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyBtZW51Lmljb25lIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYmFzZSB0ZXh0LWJsdWUtOTAwIGZvbnQtc2VtaWJvbGQgY29udGVudC1vcHRpb24tbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51KClcIlxyXG4gICAgICAgICAgICAgICAgICAgID57eyBtZW51LmRlc2NyaWNhb21lbnUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInBpIHBpLWNoZXZyb24tZG93biB0ZXh0LWJsdWUtOTAwIG1yLTEgaWNvbi1ob3Zlci1jb2xvciBjb250ZW50LW9wdGlvbi1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51KClcIlxyXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gZmlsaG9zIC0tPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ub25lIHB5LTAgcGwtMyBwci0wIG0tMCB7e1xyXG4gICAgICAgICAgICAgICAgICAhKFxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVTZWxlY2lvbmFkbygpPy5pZG1lbnVwYWkgPT0gbWVudS5pZG1lbnUgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZE1lbnUoKVxyXG4gICAgICAgICAgICAgICAgICApICYmICdoaWRkZW4nXHJcbiAgICAgICAgICAgICAgICB9fSBvdmVyZmxvdy15LWhpZGRlbiB0cmFuc2l0aW9uLWFsbCB0cmFuc2l0aW9uLWR1cmF0aW9uLTQwMCB0cmFuc2l0aW9uLWVhc2UtaW4tb3V0XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGhvIG9mIHJldHVybk1lbnVDaGlsZChtZW51LmlkbWVudSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlGaWxobyA9IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51KClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUoZmlsaG8ubGluaylcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJmaWxoby5iZ0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtb3B0aW9uLW1lbnUgbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLW1lbnUge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTWVudSgpID8gJ21sLTEgbXItMicgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX0gaWNvbi1ob3Zlci1jb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZpbGhvLmljb25lXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBmaWxoby5pY29uZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LW9wdGlvbi1tZW51IHRleHQtbWVkaXVtIHRleHQtYmx1ZS05MDAgbWwtNCB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxoby50ZXh0Q29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgID57eyBmaWxoby5kZXNjcmljYW9tZW51IH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3Atc2lkZWJhcj5cclxuICB9XHJcblxyXG4gIDwhLS0gVG9wYmFyIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwidy1hdXRvIGgtc2NyZWVuIHBhZ2UtY29udGVudCBvdmVyZmxvdy15LWhpZGRlbiBmbGV4IGZsZXgtY29sdW1uXCJcclxuICAgIGlkPVwicGFnZS1jb250ZW50XCJcclxuICAgIHN0eWxlPVwid2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnRcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0yIG1kOm0tM1wiXHJcbiAgICA+XHJcbiAgICAgIEBpZighc2hvd01lbnUpIHtcclxuICAgICAgPCEtLSBMb2dvIGhvbWUgLS0+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImxvZ29NZW51RXhwYW5kXCIgd2lkdGg9XCIxNTBcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgIDwhLS0gQnJlYWRjcnVtYnMgLS0+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1ibHVlLTkwMCBicmVhZGNydW1iLXRpdGxlXCI+XHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICBicmVhZENydW1iSXRlbXNbYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtIDFdICYmXHJcbiAgICAgICAgICAgIGJyZWFkQ3J1bWJJdGVtc1ticmVhZENydW1iSXRlbXMubGVuZ3RoIC0gMV0ubGFiZWxcclxuICAgICAgICAgICAgICA/IGJyZWFkQ3J1bWJJdGVtc1ticmVhZENydW1iSXRlbXMubGVuZ3RoIC0gMV0ubGFiZWxcclxuICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxwLWJyZWFkY3J1bWJcclxuICAgICAgICAgICpuZ0lmPVwid2lkdGhDYXJkID4gNDAwXCJcclxuICAgICAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9uZSBwLTAgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgaC0ycmVtICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgIFttb2RlbF09XCJicmVhZENydW1iSXRlbXNcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cInsgYmFja2dyb3VuZENvbG9yOiAnI2VhZWFlYScgfVwiXHJcbiAgICAgICAgICAob25JdGVtQ2xpY2spPVwiY2FsbFJvdXRlKCRldmVudC5pdGVtLnJvdXRlckxpbmssIHRydWUpXCJcclxuICAgICAgICA+PC9wLWJyZWFkY3J1bWI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBpZiAoZXhpYmlyTm9tZXMpIHsgQGlmKHdpZHRoQ2FyZCA+PSA1MTcpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQGlmIChtYXN0ZXJOYW1lKSB7IDxzcGFuIGNsYXNzPVwibWFzdGVyLW5hbWVcIj57eyBtYXN0ZXJOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgQGlmIChlbXByZXNhTmFtZSkgezxzcGFuIGNsYXNzPVwiZW1wcmVzYS1uYW1lXCI+e3sgZW1wcmVzYU5hbWUgfX08L3NwYW4+IH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3LWF1dG8gZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIE5hdmVnYcOnw6NvIGRlIHNpc3RlbWFzIGUgdXN1w6FyaW9zIC0tPlxyXG4gICAgICAgIEBmb3IgKHRvcEFjdGlvbiBvZiB0b3BNZW51QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9wQWN0aW9uXCIgLz5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25BcHBzXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0b3AtbGF5b3V0LWljb25zIHAtMVwiXHJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1Npc3RlbWFzJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2lzdGVtYXNQYW5lbC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgYXBwc1xyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ0lmPVwic2hvd0J1dHRvblVzZXJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRvcC1sYXlvdXQtaWNvbnMgcC0xXCJcclxuICAgICAgICAgIFtwVG9vbHRpcF09XCInTWVudSBkbyBVc3XDoXJpbydcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm1ldXNEYWRvc1BhbmVsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBwZXJzb25cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICBAZm9yICh0b3BBY3Rpb24gb2YgdG9wTWVudUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEFjdGlvblwiIC8+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QnV0dG9uQXBwc1wiXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgdG9wLWxheW91dC1pY29ucyBwLTFcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cIidTaXN0ZW1hcydcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNpc3RlbWFzUGFuZWwudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIGFwcHNcclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25Vc2VyXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0b3AtbGF5b3V0LWljb25zIHAtMVwiXHJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiJ01lbnUgZG8gVXN1w6FyaW8nXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgIChjbGljayk9XCJtZXVzRGFkb3NQYW5lbC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgcGVyc29uXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgPlxyXG4gICAgICAgIEBpZiAobWFzdGVyTmFtZSkgeyA8c3BhbiBjbGFzcz1cIm1hc3Rlci1uYW1lXCI+e3sgbWFzdGVyTmFtZSB9fTwvc3Bhbj4gfVxyXG4gICAgICAgIEBpZiAoZW1wcmVzYU5hbWUpIHs8c3BhbiBjbGFzcz1cImVtcHJlc2EtbmFtZVwiPnt7IGVtcHJlc2FOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IH0gQGVsc2UgeyBAaWYod2lkdGhQYWdlKCkgPiA5OTIpe1xyXG4gICAgICA8IS0tIGRyb3Bkb3duIHBhcmEgc2VsZcOnw6NvIGRlIGVtcHJlc2EvbGljZW5jYSAtLT5cclxuICAgICAgPGRyb3Bkb3duLW1hc3RlclxyXG4gICAgICAgICpuZ0lmPVwic2hvd0xpY2VuY2FzKClcIlxyXG4gICAgICAgIGNsYXNzPVwibWF4LXctMjVyZW1cIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkbWFzdGVyXCJcclxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgICAgW21hc3RlcnNdPVwibWFzdGVyc1wiXHJcbiAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUxpY2Vuc2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uU2VsZWN0aW9uVmFsdWUpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L2Ryb3Bkb3duLW1hc3Rlcj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIEBmb3IgKHRvcEFjdGlvbiBvZiB0b3BNZW51QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9wQWN0aW9uXCIgLz5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25BcHBzXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0b3AtbGF5b3V0LWljb25zIHAtMVwiXHJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1Npc3RlbWFzJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2lzdGVtYXNQYW5lbC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgYXBwc1xyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ0lmPVwic2hvd0J1dHRvblVzZXJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRvcC1sYXlvdXQtaWNvbnMgcC0xXCJcclxuICAgICAgICAgIFtwVG9vbHRpcF09XCInTWVudSBkbyBVc3XDoXJpbydcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm1ldXNEYWRvc1BhbmVsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBwZXJzb25cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmKHdpZHRoUGFnZSgpIDwgOTkyKXtcclxuICAgICAgPCEtLSBkcm9wZG93biBwYXJhIHNlbGXDp8OjbyBkZSBlbXByZXNhL2xpY2VuY2EgLS0+XHJcbiAgICAgIDxkcm9wZG93bi1tYXN0ZXJcclxuICAgICAgICAqbmdJZj1cInNob3dMaWNlbmNhcygpXCJcclxuICAgICAgICBjbGFzcz1cInctZnVsbFwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRtYXN0ZXJcIlxyXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcclxuICAgICAgICBbbWFzdGVyc109XCJtYXN0ZXJzXCJcclxuICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgICAob25TZWxlY3Rpb25WYWx1ZSk9XCJjaGFuZ2VMaWNlbnNlKCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvZHJvcGRvd24tbWFzdGVyPlxyXG4gICAgICB9IH1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQ29udGFpbmVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiBmbGV4LTEgcC0yIG1kOnAtM1wiPlxyXG4gICAgICA8cC1jYXJkXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cIm92ZXJmbG93LXktYXV0byBoLWZ1bGwgbWF4LWgtZnVsbCB7e1xyXG4gICAgICAgICAgIXNob3dNZW51ICYmICdzbTpvdmVyZmxvdy15LWhpZGRlbidcclxuICAgICAgICB9fSBjYXJkLWNvbnRhaW5lclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvcC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFpbmVsIGRlIGFwbGljYXRpdm9zIC0tPlxyXG4gIDxwLW92ZXJsYXlQYW5lbFxyXG4gICAgI3Npc3RlbWFzUGFuZWxcclxuICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXHJcbiAgICBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cIicyNTBtcyBlYXNlLWluJ1wiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICA8cCBjbGFzcz1cInRpdGxlLXN0eWxlIG10LTNcIj5TaXN0ZW1hczwvcD5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTUgbWItM1wiXHJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjcwcHg7IGhlaWdodDogMTAwJVwiXHJcbiAgICAgID5cclxuICAgICAgICBAZm9yIChhcGxpY2F0aXZvIG9mIGFwcHM7IHRyYWNrICRpbmRleCkgeyBAaWYoYXBsaWNhdGl2by51cmxpY29uZSA9PVxyXG4gICAgICAgIFwiaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL2ljb25lLWtlZXZvY2VudGVyLnBuZ1wiKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tc2lzdGVtYSB0ZXh0LXhsIG1kOnRleHQtM3hsIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcChhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cImFwbGljYXRpdm8/LmRlc2NyaWNhb2FwbGljYXRpdm9cIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGFwbGljYXRpdm8uZGVzY3JpY2FvYXBsaWNhdGl2by5jaGFyQXQoMCkudG9Mb2NhbGVVcHBlckNhc2UoKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIFtzcmNdPVwiYXBsaWNhdGl2by51cmxpY29uZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1zaXN0ZW1hIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cImFwbGljYXRpdm8/LmRlc2NyaWNhb2FwbGljYXRpdm9cIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcChhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfSB9XHJcblxyXG4gICAgICAgIDwhLS0gPGJ1dHRvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGFwbGljYXRpdm8gb2YgYXBwc1wiXHJcbiAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICBwUmlwcGxlXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1zaXN0ZW1hLTIgYnRuLXNpc3RlbWEgaG92ZXItYnRuLWNvci1wYWRyYW8gcmVtb3ZlLWZvY3VzIGgtNHJlbSB3LTRyZW1cIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cImFwbGljYXRpdm8/LmRlc2NyaWNhb2FwbGljYXRpdm9cIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcChhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGFwbGljYXRpdm8ubm9tZWFwbGljYXRpdm8uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgfX1cclxuICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3Atb3ZlcmxheVBhbmVsPlxyXG5cclxuICA8IS0tIFBhaW5lbCBkbyB1c3XDoXJpbyAtLT5cclxuICA8cC1vdmVybGF5UGFuZWxcclxuICAgICNtZXVzRGFkb3NQYW5lbFxyXG4gICAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCInMzUwbXMgZWFzZS1vdXQnXCJcclxuICAgIFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwiJzI1MG1zIGVhc2UtaW4nXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGFpbmVyXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwidGl0bGUtc3R5bGUgbXQtM1wiPlxyXG4gICAgICAgIE9sw6EsIHt7IHVzZXJOYW1lID8gdXNlck5hbWUuc3BsaXQoXCIgXCIpWzBdIDogXCJVc3XDoXJpb1wiIH19IVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC01IG1iLTNcIj48L2Rpdj5cclxuXHJcbiAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgIGljb249XCJwaSBwaS1sb2NrXCJcclxuICAgICAgICBsYWJlbD1cIkFjZXNzYXIgS2VlcGFzc1wiXHJcbiAgICAgICAgKG9uQ2xpY2spPVwiYWNjZXNzS2VlUGFzcygkZXZlbnQpXCJcclxuICAgICAgICBzdHlsZUNsYXNzPVwiYm9yZGVyLW5vcm91bmQgdy1mdWxsIHRleHQtYmx1ZS05MDAgdGV4dC1zbVwiXHJcbiAgICAgICAgW3RleHRdPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgPC9wLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgIGljb249XCJwaSBwaS1zaWduLW91dFwiXHJcbiAgICAgICAgbGFiZWw9XCJTYWlyXCJcclxuICAgICAgICAob25DbGljayk9XCJsb2dvdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cImJvcmRlci1ub3JvdW5kIHctZnVsbCB0ZXh0LWJsdWUtOTAwIHRleHQtc21cIlxyXG4gICAgICAgIFt0ZXh0XT1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvcC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1vdmVybGF5UGFuZWw+XHJcbjwvZGl2PlxyXG4iXX0=
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxTQUFTLEVBRVQsZUFBZSxFQUVmLFlBQVksRUFDWixZQUFZLEVBRVosS0FBSyxFQUNMLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxFQUdOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QnZCLE1BQU0sT0FBTyxpQkFBaUI7SUFnRjVCLFlBQ1UsR0FBc0IsRUFDdEIsRUFBZSxFQUNiLE1BQWMsRUFDZCxjQUE4QjtRQUhoQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQW5GakMsU0FBSSxHQVVQLEVBQUUsQ0FBQztRQUVBLG9CQUFlLEdBR2xCLEVBQUUsQ0FBQztRQUVBLFlBQU8sR0FLVixFQUFFLENBQUM7UUFFQSxVQUFLLEdBWVIsRUFBRSxDQUFDO1FBRVQsZUFBVSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQVN6QixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQix3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFDcEMsYUFBUSxHQUFZLElB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YztzQkFBdEIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDRixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQXdKbkIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBlZmZlY3QsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIC8vIGFuaW1hdGlvbnM6IFtcclxuICAvLyAgIHRyaWdnZXIoJ3NpZGViYXJXaWR0aFRyaWdnZXInLCBbXHJcbiAgLy8gICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7XHJcbiAgLy8gICAgICAgd2lkdGg6ICc2MHB4J1xyXG4gIC8vICAgICB9KSksXHJcbiAgLy8gICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHtcclxuICAvLyAgICAgICB3aWR0aDogJzM1OXB4J1xyXG4gIC8vICAgICB9KSksXHJcbiAgLy8gICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA8PT4gZXhwYW5kZWQnLCBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpKVxyXG4gIC8vICAgXSlcclxuICAvLyBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBhcHBzOiB7XHJcbiAgICBpZGFwbGljYXRpdm86IG51bWJlcjtcclxuICAgIGlkc2lzdGVtYTogbnVtYmVyO1xyXG4gICAgbm9tZWFwbGljYXRpdm86IHN0cmluZztcclxuICAgIGRlc2NyaWNhb2FwbGljYXRpdm86IHN0cmluZztcclxuICAgIHJvdGFwYWRyYW86IHN0cmluZztcclxuICAgIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICAgIGluZHB1YmxpY2FjYW9ncmFkYXRpdmE6IGJvb2xlYW47XHJcbiAgICBpbmRleGlnZWVtcHJlc2FlbnRyYWRhOiBib29sZWFuO1xyXG4gICAgdXJsaWNvbmU/OiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGJyZWFkQ3J1bWJJdGVtczoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHJvdXRlckxpbms6IHN0cmluZztcclxuICB9W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgbWFzdGVyczoge1xyXG4gICAgaWRtYXN0ZXI6IG51bWJlcjtcclxuICAgIGNwZmNucGo6IHN0cmluZztcclxuICAgIG5vbWU6IHN0cmluZztcclxuICAgIGlkbWFzdGVybm9tZTogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBtZW51czoge1xyXG4gICAgaWRtZW51OiBudW1iZXI7XHJcbiAgICBpZG1lbnVwYWk6IG51bWJlciB8IG51bGw7XHJcbiAgICBpZGFwbGljYXRpdm86IG51bWJlcjtcclxuICAgIGRlc2NyaWNhb21lbnU6IHN0cmluZztcclxuICAgIGxpbms6IHN0cmluZyB8IG51bGw7XHJcbiAgICBpY29uZTogc3RyaW5nIHwgbnVsbDtcclxuICAgIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICAgIGluZG1lbnVwYWk6IGJvb2xlYW47XHJcbiAgICBsaXN0YWlkdmlzYW9tZW51OiBudW1iZXJbXTtcclxuICAgIGJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIGV4cGFuZE1lbnUgPSBtb2RlbDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgQElucHV0KCkgbG9nb01lbnVFeHBhbmQhOiBhbnk7XHJcbiAgQElucHV0KCkgbG9nb01lbnVIaWRlITogYW55O1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZEFwcCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBzZWxlY3RlZEVtcHJlc2EhOiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRNYXN0ZXIhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25BcHBzOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93QnV0dG9uVXNlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0V4cGFuZE1lbnU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dEcm9wZG93bkxpY2VuY2E6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93VHJvY2FFbXByZXNhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdXNlck5hbWU6IHN0cmluZyA9ICdVc3XDoXJpbyc7XHJcbiAgQElucHV0KCkgbWFzdGVyTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbXByZXNhTmFtZSE6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIGFjY2Vzc0tlZVBhc3NFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlRW1wcmVzYUVtaXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlTGljZW5zZUVtaXQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBleHBhbmRNZW51RW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2dvdXRFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0QXBwRW1pdDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG5hdmlnYXRlVG9EZWZhdWx0Um91dGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWV1c0RhZG9zUGFuZWwnKSBtZXVzRGFkb3NQYW5lbCE6IE92ZXJsYXlQYW5lbDtcclxuICBAVmlld0NoaWxkKCdzaWRlYmFyUmVmJykgc2lkZWJhclJlZiE6IFNpZGViYXI7XHJcbiAgQFZpZXdDaGlsZCgnc2lzdGVtYXNQYW5lbCcpIHNpc3RlbWFzUGFuZWwhOiBPdmVybGF5UGFuZWw7XHJcblxyXG4gIHRvcE1lbnVBY3Rpb25zID0gY29udGVudENoaWxkcmVuPFRlbXBsYXRlUmVmPGFueT4+KCd0b3BNZW51QWN0aW9uJyk7XHJcblxyXG4gIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICBoZWlnaHRDYXJkITogbnVtYmVyO1xyXG4gIG1vdXNlT3ZlckZpbGhvSW5kZXg6IGFueTtcclxuICBtb3VzZU92ZXJJbmRleDogYW55O1xyXG4gIHdpZHRoQ2FyZCE6IG51bWJlcjtcclxuXHJcbiAgd2lkdGhQYWdlID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWNjZXNzS2VlUGFzcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xyXG4gICAgdGhpcy5hY2Nlc3NLZWVQYXNzRW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGp1c3RIZWlnaHRDYXJkKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy53aWR0aENhcmQgPiA0MDApIHtcclxuICAgICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgPCA5OTIgJiYgdGhpcy5zaG93TGljZW5jYXMoKSkgcmV0dXJuIDE0NTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmJyZWFkQ3J1bWJJdGVtcy5sZW5ndGggPiAwKSByZXR1cm4gOTU7XHJcbiAgICAgIGVsc2UgcmV0dXJuIDg1O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAxMjU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkanVzdFdpZHRoQ2FyZCgpIHtcclxuICAgIHRoaXMud2lkdGhQYWdlLnNldCh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcblxyXG4gICAgdGhpcy5oZWlnaHRDYXJkID0gTnVtYmVyKFxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1jb250ZW50Jyk/Lm9mZnNldEhlaWdodFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNob3dNZW51KVxyXG4gICAgICB0aGlzLndpZHRoQ2FyZCA9XHJcbiAgICAgICAgTnVtYmVyKHdpbmRvdy5pbm5lcldpZHRoKSAtICh0aGlzLmV4cGFuZE1lbnUoKSA/IDMzMyA6IDkzKTtcclxuICAgIGVsc2UgdGhpcy53aWR0aENhcmQgPSBOdW1iZXIod2luZG93LmlubmVyV2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGxSb3V0ZShlOiBhbnksIGV4cGFuZD86IGJvb2xlYW4pIHtcclxuXHJcbiAgICBpZiAoIWV4cGFuZCAmJiAhdGhpcy5leHBhbmRNZW51KCkpXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS51cGRhdGUoKGN1cnJlbnRWYWx1ZTogYm9vbGVhbikgPT4gIWN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgIT0gMCAmJiB0aGlzLndpZHRoUGFnZSgpIDwgODAwICYmIHRoaXMuZXhwYW5kTWVudSgpKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUuc2V0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUVtcHJlc2EoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2VFbXByZXNhRW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMaWNlbnNlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlTGljZW5zZUVtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZlcmlmeU1lbnVCZWhhdmlvcigpIHtcclxuICAgIGlmICh0aGlzLndpZHRoUGFnZSgpIDwgODAwKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUuc2V0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwYW5kTWVudUV2ZW50KCkge1xyXG4gICAgdGhpcy5leHBhbmRNZW51RW1pdC5lbWl0KHRoaXMuZXhwYW5kTWVudSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2dvdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcclxuICAgIHRoaXMubG9nb3V0RW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVudXNQZXJBcHAoKSB7XHJcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmIHRoaXMubWVudXMgJiYgdGhpcy5tZW51cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLnJvdXRlci51cmwgPT09ICcvJykge1xyXG4gICAgICAgIC8vIHRoaXMubmF2aWdhdGVUb0ZpcnN0TWVudSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG1lbnVTZWxlY2lvbmFkbyA9IHRoaXMubWVudXMuZmluZChcclxuICAgICAgICAgIChtZW51OiBhbnkpID0+XHJcbiAgICAgICAgICAgIG1lbnUubGluayAmJiBtZW51LmxpbmsuaW5jbHVkZXModGhpcy5yb3V0ZXIudXJsLnNsaWNlKDEpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKG1lbnVTZWxlY2lvbmFkbykge1xyXG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTWVudShtZW51U2VsZWNpb25hZG8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNpc3RlbWFzUGFuZWwpIHtcclxuICAgICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYW1lRW1wcmVzYShub21lTGljZW5jYTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChub21lTGljZW5jYSkge1xyXG4gICAgICBpZiAobm9tZUxpY2VuY2EubGVuZ3RoID4gMjMpIHJldHVybiBub21lTGljZW5jYS5zdWJzdHJpbmcoMCwgMjMpICsgJy4uLic7XHJcbiAgICAgIGVsc2UgcmV0dXJuIG5vbWVMaWNlbmNhO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb0ZpcnN0TWVudSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpcnN0TWVudSA9IHRoaXMubWVudXNbMF07XHJcbiAgICBpZiAoZmlyc3RNZW51LmluZG1lbnVwYWkpIHtcclxuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXR1cm5NZW51Q2hpbGQoZmlyc3RNZW51LmlkbWVudSk7XHJcbiAgICAgIGlmIChmaWxob3MpIHtcclxuICAgICAgICB0aGlzLmNhbGxSb3V0ZShmaWxob3NbMF0ubGluaywgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FsbFJvdXRlKGZpcnN0TWVudS5saW5rLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb01lbnUobWVudTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAobWVudS5tZW51cGFpKSB7XHJcbiAgICAgIGNvbnN0IGZpbGhvcyA9IHRoaXMucmV0dXJuTWVudUNoaWxkKG1lbnUuaWRtZW51KTtcclxuICAgICAgaWYgKGZpbGhvcykge1xyXG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYWxsUm91dGUobWVudS5saW5rLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lbnVTZWxlY2lvbmFkbyA9IHNpZ25hbDxhbnk+KG51bGwpO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCBsYXRlc3RSZXF1ZXN0ID0gY2hhbmdlc1snbWVudXMnXTtcclxuICAgIGlmIChsYXRlc3RSZXF1ZXN0Py5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5tZW51c1BlckFwcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWNpb25hck1lbnUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlkbWFzdGVyOiBbdGhpcy5zZWxlY3RlZE1hc3RlciwgW11dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGp1c3RXaWR0aENhcmQoKTtcclxuICAgIHRoaXMuZXhwYW5kTWVudUV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLmFkanVzdFdpZHRoQ2FyZCgpO1xyXG4gICAgdGhpcy52ZXJpZnlNZW51QmVoYXZpb3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0ZWRNZW51UGFpKG1lbnU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmV4cGFuZE1lbnUoKSAmJiBtZW51LmluZG1lbnVwYWkpXHJcbiAgICAgIHJldHVybiBtZW51LmlkbWVudSA9PT0gdGhpcy5tZW51U2VsZWNpb25hZG8oKT8uaWRtZW51cGFpO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjaW9uYXJNZW51KCkge1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnJvdXRlci51cmwsIHdpbmRvdy5vcmlnaW4pO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdXJsLnBhdGhuYW1lO1xyXG4gICAgY29uc3QgcHVyZVBhdGggPSBjdXJyZW50UGF0aC5tYXRjaCgvXlteO10qL2kpO1xyXG5cclxuICAgIGNvbnN0IHBhdGhzID0gcHVyZVBhdGghWzBdO1xyXG5cclxuICAgIHRoaXMubWVudXMgPSB0aGlzLm1lbnVzLm1hcCgobWVudSkgPT4ge1xyXG4gICAgICBpZiAobWVudS5saW5rKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLm1lbnUsXHJcbiAgICAgICAgICBiZ0NvbG9yOiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKSA/ICdyZ2IoNDEsIDE4NSwgNDUpJyA6ICcnLFxyXG4gICAgICAgICAgdGV4dENvbG9yOiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKSA/ICd0ZXh0LXdoaXRlJyA6ICcnLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1lbnU7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51cy5maW5kKChtZW51OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIG1lbnUubGluayAmJiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWVudVNlbGVjaW9uYWRvLnNldChtZW51KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXR1cm5NZW51Q2hpbGQoaWRtZW51OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLm1lbnVzLmZpbHRlcigoeDogYW55KSA9PiB4LmlkbWVudXBhaSA9PSBpZG1lbnUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEFwcChpZGFwbGljYXRpdm86IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RBcHBFbWl0LmVtaXQoaWRhcGxpY2F0aXZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93TGljZW5jYXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RHJvcGRvd25MaWNlbmNhICYmICh0aGlzLm1hc3RlcnMgfHwgW10pLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuZXhwYW5kTWVudS51cGRhdGUoKGN1cnJlbnRWYWx1ZTogYm9vbGVhbikgPT4gIWN1cnJlbnRWYWx1ZSk7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnVFdmVudCgpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RlZmF1bHRSb3V0ZSgpIHtcclxuICAgIGlmICh0aGlzLndpZHRoUGFnZSgpIDwgODAwICYmIHRoaXMuZXhwYW5kTWVudSgpKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUuc2V0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRlVG9EZWZhdWx0Um91dGVFbWl0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vIGdldFNpZGViYXJTdGF0ZSgpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmV4cGFuZE1lbnUoKSA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJztcclxuICAvLyB9XHJcblxyXG4gIGdldCBleGliaXJOb21lcygpIHtcclxuICAgIHJldHVybiAhdGhpcy5zaG93TGljZW5jYXMoKSAmJiAodGhpcy5tYXN0ZXJOYW1lIHx8IHRoaXMuZW1wcmVzYU5hbWUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBvdmVyZmxvdy15LWhpZGRlbiB3LSBmdWxsLWNvbnRhaW5lclwiPlxyXG4gIDxkaXZcclxuICAgIFtuZ0NsYXNzXT1cInsgJ292ZXJsYXktYmFja2dyb3VuZCc6IGV4cGFuZE1lbnUoKSAmJiB3aWR0aFBhZ2UoKSA8IDgwMCB9XCJcclxuICA+PC9kaXY+XHJcbiAgQGlmIChzaG93TWVudSkge1xyXG4gIDxkaXZcclxuICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgIG1pbldpZHRoOiBleHBhbmRNZW51KCkgJiYgd2lkdGhQYWdlKCkgPiA4MDAgPyAnMTdyZW0nIDogJzMuNjVyZW0nXHJcbiAgICB9XCJcclxuICA+PC9kaXY+XHJcbiAgfSBAaWYoc2hvd01lbnUpIHtcclxuICA8cC1zaWRlYmFyXHJcbiAgICAjc2lkZWJhclJlZlxyXG4gICAgW3Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiXHJcbiAgICBbbW9kYWxdPVwiZmFsc2VcIlxyXG4gICAgW3N0eWxlXT1cInsgd2lkdGg6IGV4cGFuZE1lbnUoKSA/ICcxN3JlbScgOiAnMy42NXJlbScgfVwiXHJcbiAgICBjbGFzcz1cInNpZGViYXItYW5pbWF0aW9uXCJcclxuICAgIHN0eWxlQ2xhc3M9XCJ0cmFuc2l0aW9uLWFsbFwiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRsZXNzXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LXNocmluay0wIG14LTIgb3ZlcmZsb3ctaGlkZGVuXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCB7e1xyXG4gICAgICAgICAgICAgIGV4cGFuZE1lbnUoKSA/ICdmbGV4LXJvdycgOiAnZmxleC1jb2x1bW4nXHJcbiAgICAgICAgICAgIH19IGFsaWduLWl0ZW1zLWNlbnRlciB7e1xyXG4gICAgICAgICAgICAgIGV4cGFuZE1lbnUoKVxyXG4gICAgICAgICAgICAgICAgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nXHJcbiAgICAgICAgICAgICAgICA6ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xyXG4gICAgICAgICAgICB9fSBweS0zXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBMb2dvIHBhcmEgbyBtZW51IGV4cGFuZGlkbyAtLT5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudSgpICYmIGxvZ29NZW51RXhwYW5kXCJcclxuICAgICAgICAgICAgICBhbHQ9XCJDYXJkXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cImxvZ29NZW51RXhwYW5kXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIiczcmVtJ1wiXHJcbiAgICAgICAgICAgICAgd2lkdGg9XCJhdXRvXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHAtMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9EZWZhdWx0Um91dGUoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICA8IS0tIExvZ28gcGFyYSBvIG1lbnUgbWluaW1pemFkby0tPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhZXhwYW5kTWVudSgpICYmIGxvZ29NZW51SGlkZVwiXHJcbiAgICAgICAgICAgICAgYWx0PVwiQ2FyZFwiXHJcbiAgICAgICAgICAgICAgW3NyY109XCJsb2dvTWVudUhpZGVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiJzNyZW0nXCJcclxuICAgICAgICAgICAgICB3aWR0aD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWItMiBwLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvRGVmYXVsdFJvdXRlKClcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBUb2dnbGUgbWVudSAtLT5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dFeHBhbmRNZW51XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgdG9wLWxheW91dC1pY29ucyBwLTFcIlxyXG4gICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJleHBhbmRNZW51KCkgPyAnT2N1bHRhciBNZW51JyA6ICdFeHBhbmRpciBNZW51J1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIG1lbnVcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgQGlmKHNob3dUcm9jYUVtcHJlc2Epe1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHt7XHJcbiAgICAgICAgICAgICAgZXhwYW5kTWVudSgpXHJcbiAgICAgICAgICAgICAgICA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbidcclxuICAgICAgICAgICAgICAgIDogJ2p1c3RpZnktY29udGVudC1jZW50ZXInXHJcbiAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51KCkgJiYgc2VsZWN0ZWRFbXByZXNhXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCBtci0yXCJcclxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJ0aGlzLnNlbGVjdGVkRW1wcmVzYS5yYXphb3NvY2lhbFwiXHJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG5hbWVFbXByZXNhKHRoaXMuc2VsZWN0ZWRFbXByZXNhLnJhemFvc29jaWFsKSB9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gbXQtMVwiPnt7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRW1wcmVzYS5jcGZjbnBqIHwgY3BmQ25walxyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcGFkZGluZy1zdHlsZSBoLTJyZW0gdy0ycmVtIGhvdmVyOmJnLWdyZWVuLTYwMCBob3Zlcjp0ZXh0LXdoaXRlIGljb24tbWVudVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUVtcHJlc2EoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIidUcm9jYXIgZGUgZW1wcmVzYSdcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gc3luY19hbHQgPC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHAtZGl2aWRlciB0eXBlPVwic29saWRcIj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3Qtbm9uZSBtLTAgY2FyZC1jb250YWluZXIgb3ZlcmZsb3cteS1hdXRvIG1heC1oLWZ1bGxcIj5cclxuICAgICAgICAgIDwhLS0gbWVudXMgLS0+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1lbnUgb2YgbWVudXM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiZXhwYW5kTWVudSgpID8gJ3B4LTInIDogJ3B4LTEnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBtZW51IHF1ZSBuw6NvIHRlbSBmaWxobyAtLT5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2FsbFJvdXRlKG1lbnUubGluaylcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAhbWVudS5pbmRtZW51cGFpICYmICghbWVudS5pZG1lbnVwYWkgfHwgbWVudS5pZG1lbnVwYWkgPT0gMClcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIHBSaXBwbGVcclxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUoKSA/IG1lbnUuZGVzY3JpY2FvbWVudSA6ICcnXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWVudS1vcHRpb25cIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIm1lbnUuYmdDb2xvclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmp1c3RpZnktY29udGVudC1jZW50ZXJdPVwiIWV4cGFuZE1lbnUoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LW9wdGlvbi1tZW51IG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaWNvbi1tZW51IHt7XHJcbiAgICAgICAgICAgICAgICAgIGV4cGFuZE1lbnUoKSA/ICdtbC0xIG1yLTInIDogJydcclxuICAgICAgICAgICAgICAgIH19ICBpY29uLWhvdmVyLWNvbG9yIHt7IG1lbnUudGV4dENvbG9yIH19XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudS5pY29uZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgbWVudS5pY29uZSB9fVxyXG4gICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LW9wdGlvbi1tZW51IHRleHQtYmFzZSB0ZXh0LWJsdWUtOTAwIGZvbnQtc2VtaWJvbGQge3tcclxuICAgICAgICAgICAgICAgICAgbWVudS50ZXh0Q29sb3JcclxuICAgICAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudSgpXCJcclxuICAgICAgICAgICAgICAgID57eyBtZW51LmRlc2NyaWNhb21lbnUgfX08L3NwYW5cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPCEtLSBtZW51IGNvbSBmaWxobyAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lbnUuaW5kbWVudXBhaVwiPlxyXG4gICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICBwUmlwcGxlXHJcbiAgICAgICAgICAgICAgICBwU3R5bGVDbGFzcz1cIkBuZXh0XCJcclxuICAgICAgICAgICAgICAgIGVudGVyQ2xhc3M9XCJoaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgZW50ZXJBY3RpdmVDbGFzcz1cInNsaWRlZG93blwiXHJcbiAgICAgICAgICAgICAgICBsZWF2ZVRvQ2xhc3M9XCJoaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgbGVhdmVBY3RpdmVDbGFzcz1cInNsaWRldXBcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXNTZWxlY3RlZE1lbnVQYWkobWVudSkgPyAncmdiKDQxLCAxODUsIDQ1KScgOiAnd2hpdGUnXCJcclxuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtb3B0aW9uIHt7XHJcbiAgICAgICAgICAgICAgICAgICFleHBhbmRNZW51KClcclxuICAgICAgICAgICAgICAgICAgICA/ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJ1xyXG4gICAgICAgICAgICAgICAgfX0gXCJcclxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUoKSA/IG1lbnUuZGVzY3JpY2FvbWVudSA6ICcnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kTWVudS5zZXQoIWV4cGFuZE1lbnUoKSA/ICFleHBhbmRNZW51KCkgOiBleHBhbmRNZW51KCkpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1vcHRpb24tbWVudSBtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb24tbWVudSB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTWVudSgpID8gJ21sLTEgbXItMicgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIH19IGljb24taG92ZXItY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudS5pY29uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtd2hpdGVdPVwiaXNTZWxlY3RlZE1lbnVQYWkobWVudSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgbWVudS5pY29uZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ibHVlLTkwMCBmb250LXNlbWlib2xkIGNvbnRlbnQtb3B0aW9uLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudSgpXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgbWVudS5kZXNjcmljYW9tZW51IH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaSBwaS1jaGV2cm9uLWRvd24gdGV4dC1ibHVlLTkwMCBtci0xIGljb24taG92ZXItY29sb3IgY29udGVudC1vcHRpb24tbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudSgpXCJcclxuICAgICAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIGZpbGhvcyAtLT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3Qtbm9uZSBweS0wIHBsLTMgcHItMCBtLTAge3tcclxuICAgICAgICAgICAgICAgICAgIShcclxuICAgICAgICAgICAgICAgICAgICBtZW51U2VsZWNpb25hZG8oKT8uaWRtZW51cGFpID09IG1lbnUuaWRtZW51ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBhbmRNZW51KClcclxuICAgICAgICAgICAgICAgICAgKSAmJiAnaGlkZGVuJ1xyXG4gICAgICAgICAgICAgICAgfX0gb3ZlcmZsb3cteS1oaWRkZW4gdHJhbnNpdGlvbi1hbGwgdHJhbnNpdGlvbi1kdXJhdGlvbi00MDAgdHJhbnNpdGlvbi1lYXNlLWluLW91dFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWxobyBvZiByZXR1cm5NZW51Q2hpbGQobWVudS5pZG1lbnUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpRmlsaG8gPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FsbFJvdXRlKGZpbGhvLmxpbmspXCJcclxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LW9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZmlsaG8uYmdDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LW9wdGlvbi1tZW51IG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaWNvbi1tZW51IHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZE1lbnUoKSA/ICdtbC0xIG1yLTInIDogJydcclxuICAgICAgICAgICAgICAgICAgICAgIH19IGljb24taG92ZXItY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWxoby5pY29uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZmlsaG8uaWNvbmUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1vcHRpb24tbWVudSB0ZXh0LW1lZGl1bSB0ZXh0LWJsdWUtOTAwIG1sLTQge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsaG8udGV4dENvbG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+e3sgZmlsaG8uZGVzY3JpY2FvbWVudSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLXNpZGViYXI+XHJcbiAgfVxyXG5cclxuICA8IS0tIFRvcGJhciAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInctYXV0byBoLXNjcmVlbiBwYWdlLWNvbnRlbnQgb3ZlcmZsb3cteS1oaWRkZW4gZmxleCBmbGV4LWNvbHVtblwiXHJcbiAgICBpZD1cInBhZ2UtY29udGVudFwiXHJcbiAgICBzdHlsZT1cIndpZHRoOiAxMDB2dyAhaW1wb3J0YW50XCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG0tMiBtZDptLTNcIlxyXG4gICAgPlxyXG4gICAgICBAaWYoIXNob3dNZW51KSB7XHJcbiAgICAgIDwhLS0gTG9nbyBob21lIC0tPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJsb2dvTWVudUV4cGFuZFwiIHdpZHRoPVwiMTUwXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICA8IS0tIEJyZWFkY3J1bWJzIC0tPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC14bCBmb250LXNlbWlib2xkIHRleHQtYmx1ZS05MDAgYnJlYWRjcnVtYi10aXRsZVwiPlxyXG4gICAgICAgICAge3tcclxuICAgICAgICAgICAgYnJlYWRDcnVtYkl0ZW1zW2JyZWFkQ3J1bWJJdGVtcy5sZW5ndGggLSAxXSAmJlxyXG4gICAgICAgICAgICBicmVhZENydW1iSXRlbXNbYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtIDFdLmxhYmVsXHJcbiAgICAgICAgICAgICAgPyBicmVhZENydW1iSXRlbXNbYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtIDFdLmxhYmVsXHJcbiAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8cC1icmVhZGNydW1iXHJcbiAgICAgICAgICAqbmdJZj1cIndpZHRoQ2FyZCA+IDQwMFwiXHJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwiYm9yZGVyLW5vbmUgcC0wIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGgtMnJlbSAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICBbbW9kZWxdPVwiYnJlYWRDcnVtYkl0ZW1zXCJcclxuICAgICAgICAgIFtzdHlsZV09XCJ7IGJhY2tncm91bmRDb2xvcjogJyNlYWVhZWEnIH1cIlxyXG4gICAgICAgICAgKG9uSXRlbUNsaWNrKT1cImNhbGxSb3V0ZSgkZXZlbnQuaXRlbS5yb3V0ZXJMaW5rLCB0cnVlKVwiXHJcbiAgICAgICAgPjwvcC1icmVhZGNydW1iPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSBAaWYgKGV4aWJpck5vbWVzKSB7IEBpZih3aWR0aENhcmQgPj0gNTE3KSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgPlxyXG4gICAgICAgIEBpZiAobWFzdGVyTmFtZSkgeyA8c3BhbiBjbGFzcz1cIm1hc3Rlci1uYW1lXCI+e3sgbWFzdGVyTmFtZSB9fTwvc3Bhbj4gfVxyXG4gICAgICAgIEBpZiAoZW1wcmVzYU5hbWUpIHs8c3BhbiBjbGFzcz1cImVtcHJlc2EtbmFtZVwiPnt7IGVtcHJlc2FOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICBAZm9yICh0b3BBY3Rpb24gb2YgdG9wTWVudUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEFjdGlvblwiIC8+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QnV0dG9uQXBwc1wiXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgdG9wLWxheW91dC1pY29ucyBwLTFcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cIidTaXN0ZW1hcydcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNpc3RlbWFzUGFuZWwudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIGFwcHNcclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25Vc2VyXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0b3AtbGF5b3V0LWljb25zIHAtMVwiXHJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiJ01lbnUgZG8gVXN1w6FyaW8nXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgIChjbGljayk9XCJtZXVzRGFkb3NQYW5lbC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgcGVyc29uXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0gTmF2ZWdhw6fDo28gZGUgc2lzdGVtYXMgZSB1c3XDoXJpb3MgLS0+XHJcbiAgICAgICAgQGZvciAodG9wQWN0aW9uIG9mIHRvcE1lbnVBY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b3BBY3Rpb25cIiAvPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ0lmPVwic2hvd0J1dHRvbkFwcHNcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRvcC1sYXlvdXQtaWNvbnMgcC0xXCJcclxuICAgICAgICAgIFtwVG9vbHRpcF09XCInU2lzdGVtYXMnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgIChjbGljayk9XCJzaXN0ZW1hc1BhbmVsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBhcHBzXHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QnV0dG9uVXNlclwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgdG9wLWxheW91dC1pY29ucyBwLTFcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cIidNZW51IGRvIFVzdcOhcmlvJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwibWV1c0RhZG9zUGFuZWwudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHBlcnNvblxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3LWF1dG8gZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcbiAgICAgID5cclxuICAgICAgICBAaWYgKG1hc3Rlck5hbWUpIHsgPHNwYW4gY2xhc3M9XCJtYXN0ZXItbmFtZVwiPnt7IG1hc3Rlck5hbWUgfX08L3NwYW4+IH1cclxuICAgICAgICBAaWYgKGVtcHJlc2FOYW1lKSB7PHNwYW4gY2xhc3M9XCJlbXByZXNhLW5hbWVcIj57eyBlbXByZXNhTmFtZSB9fTwvc3Bhbj4gfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSB9IEBlbHNlIHsgQGlmKHdpZHRoUGFnZSgpID4gOTkyKXtcclxuICAgICAgPCEtLSBkcm9wZG93biBwYXJhIHNlbGXDp8OjbyBkZSBlbXByZXNhL2xpY2VuY2EgLS0+XHJcbiAgICAgIDxkcm9wZG93bi1tYXN0ZXJcclxuICAgICAgICAqbmdJZj1cInNob3dMaWNlbmNhcygpXCJcclxuICAgICAgICBjbGFzcz1cIm1heC13LTI1cmVtXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpZG1hc3RlclwiXHJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxyXG4gICAgICAgIFttYXN0ZXJzXT1cIm1hc3RlcnNcIlxyXG4gICAgICAgIChvblNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VMaWNlbnNlKCRldmVudClcIlxyXG4gICAgICAgIChvblNlbGVjdGlvblZhbHVlKT1cImNoYW5nZUxpY2Vuc2UoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgPC9kcm9wZG93bi1tYXN0ZXI+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDwhLS0gTmF2ZWdhw6fDo28gZGUgc2lzdGVtYXMgZSB1c3XDoXJpb3MgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWF1dG8gZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICBAZm9yICh0b3BBY3Rpb24gb2YgdG9wTWVudUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEFjdGlvblwiIC8+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QnV0dG9uQXBwc1wiXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgdG9wLWxheW91dC1pY29ucyBwLTFcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cIidTaXN0ZW1hcydcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNpc3RlbWFzUGFuZWwudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIGFwcHNcclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25Vc2VyXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0b3AtbGF5b3V0LWljb25zIHAtMVwiXHJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiJ01lbnUgZG8gVXN1w6FyaW8nXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgIChjbGljayk9XCJtZXVzRGFkb3NQYW5lbC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgcGVyc29uXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZih3aWR0aFBhZ2UoKSA8IDk5Mil7XHJcbiAgICAgIDwhLS0gZHJvcGRvd24gcGFyYSBzZWxlw6fDo28gZGUgZW1wcmVzYS9saWNlbmNhIC0tPlxyXG4gICAgICA8ZHJvcGRvd24tbWFzdGVyXHJcbiAgICAgICAgKm5nSWY9XCJzaG93TGljZW5jYXMoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkbWFzdGVyXCJcclxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgICAgW21hc3RlcnNdPVwibWFzdGVyc1wiXHJcbiAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUxpY2Vuc2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uU2VsZWN0aW9uVmFsdWUpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L2Ryb3Bkb3duLW1hc3Rlcj5cclxuICAgICAgfSB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIENvbnRhaW5lciAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW4gZmxleC0xIHAtMiBtZDpwLTNcIj5cclxuICAgICAgPHAtY2FyZFxyXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJvdmVyZmxvdy15LWF1dG8gaC1mdWxsIG1heC1oLWZ1bGwge3tcclxuICAgICAgICAgICFzaG93TWVudSAmJiAnc206b3ZlcmZsb3cteS1oaWRkZW4nXHJcbiAgICAgICAgfX0gY2FyZC1jb250YWluZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L3AtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFBhaW5lbCBkZSBhcGxpY2F0aXZvcyAtLT5cclxuICA8cC1vdmVybGF5UGFuZWxcclxuICAgICNzaXN0ZW1hc1BhbmVsXHJcbiAgICBbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cIiczNTBtcyBlYXNlLW91dCdcIlxyXG4gICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMjUwbXMgZWFzZS1pbidcIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250YWluZXJcIj5cclxuICAgICAgPHAgY2xhc3M9XCJ0aXRsZS1zdHlsZSBtdC0zXCI+U2lzdGVtYXM8L3A+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC01IG1iLTNcIlxyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDI3MHB4OyBoZWlnaHQ6IDEwMCVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQGZvciAoYXBsaWNhdGl2byBvZiBhcHBzOyB0cmFjayAkaW5kZXgpIHsgQGlmKGFwbGljYXRpdm8udXJsaWNvbmUgPT1cclxuICAgICAgICBcImh0dHBzOi8vd29yay1hc3NldHMua2Vldm8uY29tLmJyL2ltZy9pY29uZS1rZWV2b2NlbnRlci5wbmdcIikge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiYnRuLXNpc3RlbWEgdGV4dC14bCBtZDp0ZXh0LTN4bCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBcHAoYXBsaWNhdGl2by5pZGFwbGljYXRpdm8pXCJcclxuICAgICAgICAgIFtwVG9vbHRpcF09XCJhcGxpY2F0aXZvPy5kZXNjcmljYW9hcGxpY2F0aXZvXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBhcGxpY2F0aXZvLmRlc2NyaWNhb2FwbGljYXRpdm8uY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICBbc3JjXT1cImFwbGljYXRpdm8udXJsaWNvbmVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tc2lzdGVtYSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgIFtwVG9vbHRpcF09XCJhcGxpY2F0aXZvPy5kZXNjcmljYW9hcGxpY2F0aXZvXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBcHAoYXBsaWNhdGl2by5pZGFwbGljYXRpdm8pXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIH0gfVxyXG5cclxuICAgICAgICA8IS0tIDxidXR0b25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBhcGxpY2F0aXZvIG9mIGFwcHNcIlxyXG4gICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgcFJpcHBsZVxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tc2lzdGVtYS0yIGJ0bi1zaXN0ZW1hIGhvdmVyLWJ0bi1jb3ItcGFkcmFvIHJlbW92ZS1mb2N1cyBoLTRyZW0gdy00cmVtXCJcclxuICAgICAgICAgIFtwVG9vbHRpcF09XCJhcGxpY2F0aXZvPy5kZXNjcmljYW9hcGxpY2F0aXZvXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBcHAoYXBsaWNhdGl2by5pZGFwbGljYXRpdm8pXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBhcGxpY2F0aXZvLm5vbWVhcGxpY2F0aXZvLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpIH19XHJcbiAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLW92ZXJsYXlQYW5lbD5cclxuXHJcbiAgPCEtLSBQYWluZWwgZG8gdXN1w6FyaW8gLS0+XHJcbiAgPHAtb3ZlcmxheVBhbmVsXHJcbiAgICAjbWV1c0RhZG9zUGFuZWxcclxuICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXHJcbiAgICBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cIicyNTBtcyBlYXNlLWluJ1wiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICA8cCBjbGFzcz1cInRpdGxlLXN0eWxlIG10LTNcIj5cclxuICAgICAgICBPbMOhLCB7eyB1c2VyTmFtZSA/IHVzZXJOYW1lLnNwbGl0KFwiIFwiKVswXSA6IFwiVXN1w6FyaW9cIiB9fSFcclxuICAgICAgPC9wPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNSBtYi0zXCI+PC9kaXY+XHJcblxyXG4gICAgICA8cC1idXR0b25cclxuICAgICAgICBpY29uPVwicGkgcGktbG9ja1wiXHJcbiAgICAgICAgbGFiZWw9XCJBY2Vzc2FyIEtlZXBhc3NcIlxyXG4gICAgICAgIChvbkNsaWNrKT1cImFjY2Vzc0tlZVBhc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cImJvcmRlci1ub3JvdW5kIHctZnVsbCB0ZXh0LWJsdWUtOTAwIHRleHQtc21cIlxyXG4gICAgICAgIFt0ZXh0XT1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvcC1idXR0b24+XHJcblxyXG4gICAgICA8cC1idXR0b25cclxuICAgICAgICBpY29uPVwicGkgcGktc2lnbi1vdXRcIlxyXG4gICAgICAgIGxhYmVsPVwiU2FpclwiXHJcbiAgICAgICAgKG9uQ2xpY2spPVwibG9nb3V0KCRldmVudClcIlxyXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9yb3VuZCB3LWZ1bGwgdGV4dC1ibHVlLTkwMCB0ZXh0LXNtXCJcclxuICAgICAgICBbdGV4dF09XCJ0cnVlXCJcclxuICAgICAgPlxyXG4gICAgICA8L3AtYnV0dG9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3Atb3ZlcmxheVBhbmVsPlxyXG48L2Rpdj5cclxuIl19
@@ -136,11 +136,11 @@ export class KvPageFormComponent {
136
136
  }
137
137
  }
138
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair", showMessageCamposObrigatorios: "showMessageCamposObrigatorios" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [formGroup]=\"formGroup\" class=\"grid-nogutter m-0\" id=\"page-form-container\" #pageContainer>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column lg:flex-row lg:justify-content-end lg:align-items-center col-12 gap-2 barra-acoes \"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\"> <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span>\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full lg:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "component", type: i5.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair", showMessageCamposObrigatorios: "showMessageCamposObrigatorios" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [formGroup]=\"formGroup\" class=\"grid-nogutter m-0\" id=\"page-form-container\" #pageContainer>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column md:flex-row md:justify-content-end md:align-items-center col-12 gap-2 barra-acoes \"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\"> <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span>\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full md:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full md:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "component", type: i5.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
140
  }
141
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, decorators: [{
142
142
  type: Component,
143
- args: [{ selector: 'kv-page-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [formGroup]=\"formGroup\" class=\"grid-nogutter m-0\" id=\"page-form-container\" #pageContainer>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column lg:flex-row lg:justify-content-end lg:align-items-center col-12 gap-2 barra-acoes \"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\"> <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span>\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full lg:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"] }]
143
+ args: [{ selector: 'kv-page-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [formGroup]=\"formGroup\" class=\"grid-nogutter m-0\" id=\"page-form-container\" #pageContainer>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column md:flex-row md:justify-content-end md:align-items-center col-12 gap-2 barra-acoes \"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\"> <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span>\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full md:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full md:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"] }]
144
144
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { formGroup: [{
145
145
  type: Input
146
146
  }], TituloForm: [{
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
212
212
  }], onClickSecundary: [{
213
213
  type: Output
214
214
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVV4RCxNQUFNLE9BQU8sbUJBQW1CO0lBeUY5QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXhGbkM7O1dBRUc7UUFDTSxjQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFDcEMsa0JBQWEsR0FBdUIsRUFBRSxDQUFDO1FBRXZDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIseUJBQW9CLEdBQXNCLFFBQVEsQ0FBQztRQUM1RCxpQ0FBaUM7UUFFakM7O1dBRUc7UUFDTSxrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUNoQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixpQkFBWSxHQUFXLFVBQVUsQ0FBQztRQU1sQyx3QkFBbUIsR0FBVyxvQkFBb0IsQ0FBQztRQUNuRCx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsdUJBQWtCLEdBQVcsVUFBVSxDQUFDO1FBRWpEOztXQUVHO1FB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LEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBS0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgZWZmZWN0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hcGkvY29tcG9uZW50cy90YWJsZS9hY3Rpb24taXRlbSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXBhZ2UtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3YtcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBhZ2VGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBDb25maWd1cmHDp8O1ZXMgZG8gZm9ybXVsw6FyaW9cclxuICAgKi9cclxuICBASW5wdXQoKSBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEBJbnB1dCgpIFRpdHVsb0Zvcm06IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpIFN1YlRpdHVsb0Zvcm06IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzU2F2ZUxvYWRpbmchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9jYXRpb25Vc2VDb21wb25lbnQ6ICdwYWdlJyB8ICdkaWFsb2cnID0gJ2RpYWxvZyc7XHJcbiAgLy8gQElucHV0KCkgZXhwYW5kTWVudSE6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBjYW5jZWxhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGljb25CdG5DYW5jZWw6IHN0cmluZyA9ICdjbG9zZSc7XHJcbiAgQElucHV0KCkgc2hvd0J0bkNhbmNlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdHh0QnRuQ2FuY2VsOiBzdHJpbmcgPSAnQ2FuY2VsYXInO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZGUgY2FuY2VsYXIgY29tIG9ww6fDtWVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uc0NhbmNlbFRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSAncGkgcGktY2hldnJvbi1kb3duJztcclxuICBASW5wdXQoKSBzaG93QnRuQ2FuY2VsVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHh0QnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSAnQ2FuY2VsYXInO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gc2FsdmFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbkJ0blNhdmU6IHN0cmluZyA9ICdzYXZlJztcclxuICBASW5wdXQoKSBzaG93QnRuU2F2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdHh0QnRuU2F2ZTogc3RyaW5nID0gJ1NhbHZhcic7XHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGRlIHNhbHZhciBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zU2F2ZVRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZVRvb2dsZTogc3RyaW5nID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XHJcbiAgQElucHV0KCkgc2hvd0J0blNhdmVUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5TYXZlVG9vZ2xlOiBzdHJpbmcgPSAnQcOnw7Vlcyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBnZW7DqXJpY28gJ1NlY3VuZGFyeSdcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuU2VjdW5kYXJ5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5TZWN1bmRhcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5TZWN1bmRhcnkhOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIEVzc2EgbsOjbyDDqSBtYWlzIHV0aWxpemFkbywgZmF2b3IgdXRpbGl6YXIgYSBwcm9wcmllZGFkZSBzZXZlcml0eUJ0blNlY3VuZGFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbG9yQnRuU2VjdW5kYXJ5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGdlbsOpcmljbyBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xyXG4gIEBJbnB1dCgpIGljb25CdG5Ub29nbGU6IHN0cmluZyA9ICdwaSBwaS1jaGV2cm9uLWRvd24nO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5Ub29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5Ub29nbGU6IHN0cmluZyA9ICdBw6fDtWVzJztcclxuICBASW5wdXQoKSBjbGFzc0J0blRvb2dsZTogc3RyaW5nID0gJ2JnLWdsdWUtNTAwJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGZlY2hhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYWlyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgc2hvd01lc3NhZ2VDYW1wb3NPYnJpZ2F0b3Jpb3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTYWx2YXIgZGFkb3NcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VsYXJcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBBw6fDo28gZG8gYm90w6NvIFNlY3VuZGFyeVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrU2VjdW5kYXJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xyXG4gIHBhZ2VDb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3BhZ2VDb250YWluZXInKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcclxuICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5wb3B1cCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRXaWR0aEJhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5wYWdlQ29udGFpbmVyKCkpXHJcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMucGFnZUNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFkZFN1YlRpdGxlKCk7XHJcbiAgICAvLyB0aGlzLnNldFBhZ2VGb3JtQ29udGFpbmVyQXR0cmlidXRlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRpY2lvbmEgc3ViLXTDrXR1bG8gw6AgdGVsYVxyXG4gICAqL1xyXG4gIGFkZFN1YlRpdGxlKCkge1xyXG4gICAgaWYgKHRoaXMuU3ViVGl0dWxvRm9ybSkge1xyXG4gICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAnLnAtZGlhbG9nIC5wLWRpYWxvZy1oZWFkZXInXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc3VidGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuU3ViVGl0dWxvRm9ybTtcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUuZm9udFNpemUgPSAnMC43NXJlbSc7XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0ID0gJzJweCc7XHJcblxyXG4gICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoc3VidGl0bGVFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGFyYSBvIG3DqXRvZG8gZGUgY2FuY2VsYW1lbnRvIGRhIHRlbGFcclxuICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRvXHJcbiAgICovXHJcbiAgY2FuY2VsKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgbyBtw6l0b2RvIGRlIHNhbHZhciBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIHNhdmUoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGFjdGlvblNlY3VuZGFyeShldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DbGlja1NlY3VuZGFyeS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFqdXN0YSBvIHRhbWFuaG8gZGEgdGVsYSBjb25zaWRlcmFuZG8gbyBtZW51IGxhdGVyYWxcclxuICAgKi9cclxuICAvLyBzZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKSB7XHJcbiAgLy8gICBpZiAodGhpcy5sb2NhdGlvblVzZUNvbXBvbmVudCA9PSAncGFnZScpIHtcclxuICAvLyAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1mb3JtLWNvbnRhaW5lcicpO1xyXG5cclxuICAvLyAgICAgaWYgKGZvcm0pIHtcclxuICAvLyAgICAgICB2YXIgd2lkdGhGdWxsID0gZm9ybS5jbGllbnRXaWR0aDtcclxuICAvLyAgICAgICB2YXIgd2lkdGhBZGp1c3RlZDtcclxuXHJcbiAgLy8gICAgICAgd2lkdGhBZGp1c3RlZCA9IHdpZHRoRnVsbCAtIDMzMjtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgc2V0V2lkdGhCYXIoKSB7XHJcbiAgICBsZXQgZGl2Q2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWZvcm0tY29udGVudCcpO1xyXG5cclxuICAgIGxldCBkaXZCYXJyYUFjb2VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJhLWFjb2VzJyk7XHJcblxyXG4gICAgaWYgKGRpdkNhcmQgJiYgZGl2QmFycmFBY29lcykge1xyXG4gICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLmJvdHRvbSA9ICcwLjVyZW0nO1xyXG4gICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLm1hcmdpbiA9ICcwIDFyZW0gMCAwJztcclxuICAgICAgZGl2QmFycmFBY29lcy5zdHlsZS53aWR0aCA9IGRpdkNhcmQuY2xpZW50V2lkdGggKyA2ICsgJ3B4JztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIGNsYXNzPVwiZ3JpZC1ub2d1dHRlciBtLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250YWluZXJcIiAjcGFnZUNvbnRhaW5lcj5cclxuICA8IS0tIFJlbmRlcml6YcOnw6NvIGRvIGZvcm0gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250ZW50XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRGl2aWRlciAtLT5cclxuICA8IS0tIDxwLWRpdmlkZXIgY2xhc3M9XCJjb2wtMTJcIj48L3AtZGl2aWRlcj4gLS0+XHJcblxyXG4gIDwhLS0gQmFycmEgZGUgYcOnw7VlcyAtLT5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGxnOmZsZXgtcm93IGxnOmp1c3RpZnktY29udGVudC1lbmQgbGc6YWxpZ24taXRlbXMtY2VudGVyIGNvbC0xMiBnYXAtMiBiYXJyYS1hY29lcyBcIlxyXG4gICAgaWQ9XCJiYXJyYS1hY29lc1wiXHJcbiAgPlxyXG4gICAgQGlmKHNob3dNZXNzYWdlQ2FtcG9zT2JyaWdhdG9yaW9zKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidy1mdWxsIHRleHQtc21cIj4gPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj4qPC9zcGFuPiBDYW1wb3Mgb2JyaWdhdMOzcmlvczwvc3Bhbj5cclxuICAgIH1cclxuICAgIDxrdi1idXR0b25cclxuICAgICAgKm5nSWY9XCJzaG93QnRuQ2FuY2VsXCJcclxuICAgICAgW2xhYmVsXT1cInR4dEJ0bkNhbmNlbFwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5DYW5jZWxcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIChvbkNsaWNrKT1cImNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbj5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgKm5nSWY9XCJhY3Rpb25zQ2FuY2VsVG9vZ2xlICYmIHNob3dCdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgIChjbGljayk9XCJtZW51Q2FuY2VsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgW2NsYXNzQnRuXT1cIid0ZXJ0aWFyeSdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuICAgIDxwLW1lbnVcclxuICAgICAgI21lbnVDYW5jZWxcclxuICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICBbbW9kZWxdPVwiYWN0aW9uc0NhbmNlbFRvb2dsZVwiXHJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICA+PC9wLW1lbnU+XHJcblxyXG4gICAgPGt2LWJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNob3dCdG5TZWN1bmRhcnlcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2VjdW5kYXJ5XCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blNlY3VuZGFyeVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAob25DbGljayk9XCJhY3Rpb25TZWN1bmRhcnkoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICA+PC9rdi1idXR0b24+XHJcblxyXG4gICAgPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAqbmdJZj1cImFjdGlvbnNUb29nbGUgJiYgc2hvd0J0blRvb2dsZVwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5Ub29nbGVcIlxyXG4gICAgICBbaWNvbl09XCJpY29uQnRuVG9vZ2xlXCJcclxuICAgICAgKGNsaWNrKT1cIm1lbnVUb29nbGUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICBjbGFzc0J0bj1cInNlY29uZGFyeVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgID5cclxuICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgPHAtbWVudVxyXG4gICAgICAjbWVudVRvb2dsZVxyXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcclxuICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgID48L3AtbWVudT5cclxuXHJcbiAgICA8a3YtYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0J0blNhdmVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5TYXZlXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5TYXZlXCJcclxuICAgICAgW2xvYWRpbmddPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIChvbkNsaWNrKT1cInNhdmUoJGV2ZW50KVwiXHJcbiAgICAgIHNldmVyaXR5PVwicHJpbWFyeVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAvPlxyXG5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgKm5nSWY9XCJhY3Rpb25zU2F2ZVRvb2dsZSAmJiBzaG93QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blNhdmVUb29nbGVcIlxyXG4gICAgICAoY2xpY2spPVwibWVudVNhdmUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgW2NsYXNzQnRuXT1cIidwcmltYXJ5J1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuXHJcbiAgICA8cC1tZW51XHJcbiAgICAgICNtZW51U2F2ZVxyXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zU2F2ZVRvb2dsZVwiXHJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICA+PC9wLW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVV4RCxNQUFNLE9BQU8sbUJBQW1CO0lBeUY5QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXhGbkM7O1dBRUc7UUFDTSxjQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFDcEMsa0JBQWEsR0FBdUIsRUFBRSxDQUFDO1FBRXZDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIseUJBQW9CLEdBQXNCLFFBQVEsQ0FBQztRQUM1RCxpQ0FBaUM7UUFFakM7O1dBRUc7UUFDTSxrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUNoQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixpQkFBWSxHQUFXLFVBQVUsQ0FBQztRQU1sQyx3QkFBbUIsR0FBVyxvQkFBb0IsQ0FBQztRQUNuRCx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsdUJBQWtCLEdBQVcsVUFBVSxDQUFDO1FBRWpEOztXQUVHO1FB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LEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBS0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgZWZmZWN0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hcGkvY29tcG9uZW50cy90YWJsZS9hY3Rpb24taXRlbSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXBhZ2UtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3YtcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBhZ2VGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBDb25maWd1cmHDp8O1ZXMgZG8gZm9ybXVsw6FyaW9cclxuICAgKi9cclxuICBASW5wdXQoKSBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEBJbnB1dCgpIFRpdHVsb0Zvcm06IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpIFN1YlRpdHVsb0Zvcm06IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzU2F2ZUxvYWRpbmchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9jYXRpb25Vc2VDb21wb25lbnQ6ICdwYWdlJyB8ICdkaWFsb2cnID0gJ2RpYWxvZyc7XHJcbiAgLy8gQElucHV0KCkgZXhwYW5kTWVudSE6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBjYW5jZWxhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGljb25CdG5DYW5jZWw6IHN0cmluZyA9ICdjbG9zZSc7XHJcbiAgQElucHV0KCkgc2hvd0J0bkNhbmNlbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdHh0QnRuQ2FuY2VsOiBzdHJpbmcgPSAnQ2FuY2VsYXInO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZGUgY2FuY2VsYXIgY29tIG9ww6fDtWVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uc0NhbmNlbFRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSAncGkgcGktY2hldnJvbi1kb3duJztcclxuICBASW5wdXQoKSBzaG93QnRuQ2FuY2VsVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHh0QnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSAnQ2FuY2VsYXInO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gc2FsdmFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbkJ0blNhdmU6IHN0cmluZyA9ICdzYXZlJztcclxuICBASW5wdXQoKSBzaG93QnRuU2F2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdHh0QnRuU2F2ZTogc3RyaW5nID0gJ1NhbHZhcic7XHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGRlIHNhbHZhciBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zU2F2ZVRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZVRvb2dsZTogc3RyaW5nID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XHJcbiAgQElucHV0KCkgc2hvd0J0blNhdmVUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5TYXZlVG9vZ2xlOiBzdHJpbmcgPSAnQcOnw7Vlcyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBnZW7DqXJpY28gJ1NlY3VuZGFyeSdcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuU2VjdW5kYXJ5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5TZWN1bmRhcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5TZWN1bmRhcnkhOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIEVzc2EgbsOjbyDDqSBtYWlzIHV0aWxpemFkbywgZmF2b3IgdXRpbGl6YXIgYSBwcm9wcmllZGFkZSBzZXZlcml0eUJ0blNlY3VuZGFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbG9yQnRuU2VjdW5kYXJ5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGdlbsOpcmljbyBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xyXG4gIEBJbnB1dCgpIGljb25CdG5Ub29nbGU6IHN0cmluZyA9ICdwaSBwaS1jaGV2cm9uLWRvd24nO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5Ub29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5Ub29nbGU6IHN0cmluZyA9ICdBw6fDtWVzJztcclxuICBASW5wdXQoKSBjbGFzc0J0blRvb2dsZTogc3RyaW5nID0gJ2JnLWdsdWUtNTAwJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGZlY2hhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYWlyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgc2hvd01lc3NhZ2VDYW1wb3NPYnJpZ2F0b3Jpb3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTYWx2YXIgZGFkb3NcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VsYXJcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBBw6fDo28gZG8gYm90w6NvIFNlY3VuZGFyeVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrU2VjdW5kYXJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xyXG4gIHBhZ2VDb250YWluZXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3BhZ2VDb250YWluZXInKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcclxuICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5wb3B1cCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRXaWR0aEJhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5wYWdlQ29udGFpbmVyKCkpXHJcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMucGFnZUNvbnRhaW5lcigpPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFkZFN1YlRpdGxlKCk7XHJcbiAgICAvLyB0aGlzLnNldFBhZ2VGb3JtQ29udGFpbmVyQXR0cmlidXRlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRpY2lvbmEgc3ViLXTDrXR1bG8gw6AgdGVsYVxyXG4gICAqL1xyXG4gIGFkZFN1YlRpdGxlKCkge1xyXG4gICAgaWYgKHRoaXMuU3ViVGl0dWxvRm9ybSkge1xyXG4gICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAnLnAtZGlhbG9nIC5wLWRpYWxvZy1oZWFkZXInXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc3VidGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuU3ViVGl0dWxvRm9ybTtcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUuZm9udFNpemUgPSAnMC43NXJlbSc7XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0ID0gJzJweCc7XHJcblxyXG4gICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoc3VidGl0bGVFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGFyYSBvIG3DqXRvZG8gZGUgY2FuY2VsYW1lbnRvIGRhIHRlbGFcclxuICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRvXHJcbiAgICovXHJcbiAgY2FuY2VsKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgbyBtw6l0b2RvIGRlIHNhbHZhciBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIHNhdmUoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGFjdGlvblNlY3VuZGFyeShldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DbGlja1NlY3VuZGFyeS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFqdXN0YSBvIHRhbWFuaG8gZGEgdGVsYSBjb25zaWRlcmFuZG8gbyBtZW51IGxhdGVyYWxcclxuICAgKi9cclxuICAvLyBzZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKSB7XHJcbiAgLy8gICBpZiAodGhpcy5sb2NhdGlvblVzZUNvbXBvbmVudCA9PSAncGFnZScpIHtcclxuICAvLyAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1mb3JtLWNvbnRhaW5lcicpO1xyXG5cclxuICAvLyAgICAgaWYgKGZvcm0pIHtcclxuICAvLyAgICAgICB2YXIgd2lkdGhGdWxsID0gZm9ybS5jbGllbnRXaWR0aDtcclxuICAvLyAgICAgICB2YXIgd2lkdGhBZGp1c3RlZDtcclxuXHJcbiAgLy8gICAgICAgd2lkdGhBZGp1c3RlZCA9IHdpZHRoRnVsbCAtIDMzMjtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgc2V0V2lkdGhCYXIoKSB7XHJcbiAgICBsZXQgZGl2Q2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWZvcm0tY29udGVudCcpO1xyXG5cclxuICAgIGxldCBkaXZCYXJyYUFjb2VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJhLWFjb2VzJyk7XHJcblxyXG4gICAgaWYgKGRpdkNhcmQgJiYgZGl2QmFycmFBY29lcykge1xyXG4gICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLmJvdHRvbSA9ICcwLjVyZW0nO1xyXG4gICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLm1hcmdpbiA9ICcwIDFyZW0gMCAwJztcclxuICAgICAgZGl2QmFycmFBY29lcy5zdHlsZS53aWR0aCA9IGRpdkNhcmQuY2xpZW50V2lkdGggKyA2ICsgJ3B4JztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIGNsYXNzPVwiZ3JpZC1ub2d1dHRlciBtLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250YWluZXJcIiAjcGFnZUNvbnRhaW5lcj5cclxuICA8IS0tIFJlbmRlcml6YcOnw6NvIGRvIGZvcm0gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250ZW50XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRGl2aWRlciAtLT5cclxuICA8IS0tIDxwLWRpdmlkZXIgY2xhc3M9XCJjb2wtMTJcIj48L3AtZGl2aWRlcj4gLS0+XHJcblxyXG4gIDwhLS0gQmFycmEgZGUgYcOnw7VlcyAtLT5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1kOmZsZXgtcm93IG1kOmp1c3RpZnktY29udGVudC1lbmQgbWQ6YWxpZ24taXRlbXMtY2VudGVyIGNvbC0xMiBnYXAtMiBiYXJyYS1hY29lcyBcIlxyXG4gICAgaWQ9XCJiYXJyYS1hY29lc1wiXHJcbiAgPlxyXG4gICAgQGlmKHNob3dNZXNzYWdlQ2FtcG9zT2JyaWdhdG9yaW9zKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidy1mdWxsIHRleHQtc21cIj4gPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj4qPC9zcGFuPiBDYW1wb3Mgb2JyaWdhdMOzcmlvczwvc3Bhbj5cclxuICAgIH1cclxuICAgIDxrdi1idXR0b25cclxuICAgICAgKm5nSWY9XCJzaG93QnRuQ2FuY2VsXCJcclxuICAgICAgW2xhYmVsXT1cInR4dEJ0bkNhbmNlbFwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5DYW5jZWxcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIChvbkNsaWNrKT1cImNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcclxuICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbj5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgKm5nSWY9XCJhY3Rpb25zQ2FuY2VsVG9vZ2xlICYmIHNob3dCdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgIChjbGljayk9XCJtZW51Q2FuY2VsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcclxuICAgICAgW2NsYXNzQnRuXT1cIid0ZXJ0aWFyeSdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuICAgIDxwLW1lbnVcclxuICAgICAgI21lbnVDYW5jZWxcclxuICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICBbbW9kZWxdPVwiYWN0aW9uc0NhbmNlbFRvb2dsZVwiXHJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICA+PC9wLW1lbnU+XHJcblxyXG4gICAgPGt2LWJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNob3dCdG5TZWN1bmRhcnlcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2VjdW5kYXJ5XCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blNlY3VuZGFyeVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAob25DbGljayk9XCJhY3Rpb25TZWN1bmRhcnkoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICA+PC9rdi1idXR0b24+XHJcblxyXG4gICAgPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAqbmdJZj1cImFjdGlvbnNUb29nbGUgJiYgc2hvd0J0blRvb2dsZVwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5Ub29nbGVcIlxyXG4gICAgICBbaWNvbl09XCJpY29uQnRuVG9vZ2xlXCJcclxuICAgICAgKGNsaWNrKT1cIm1lbnVUb29nbGUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxyXG4gICAgICBjbGFzc0J0bj1cInNlY29uZGFyeVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgID5cclxuICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgPHAtbWVudVxyXG4gICAgICAjbWVudVRvb2dsZVxyXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcclxuICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcclxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgID48L3AtbWVudT5cclxuXHJcbiAgICA8a3YtYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0J0blNhdmVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5TYXZlXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5TYXZlXCJcclxuICAgICAgW2xvYWRpbmddPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIChvbkNsaWNrKT1cInNhdmUoJGV2ZW50KVwiXHJcbiAgICAgIHNldmVyaXR5PVwicHJpbWFyeVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAvPlxyXG5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgKm5nSWY9XCJhY3Rpb25zU2F2ZVRvb2dsZSAmJiBzaG93QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blNhdmVUb29nbGVcIlxyXG4gICAgICAoY2xpY2spPVwibWVudVNhdmUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcclxuICAgICAgW2NsYXNzQnRuXT1cIidwcmltYXJ5J1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuXHJcbiAgICA8cC1tZW51XHJcbiAgICAgICNtZW51U2F2ZVxyXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zU2F2ZVRvb2dsZVwiXHJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICA+PC9wLW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=